- Localized A3.
This commit is contained in:
Paul Beckingham 2011-09-26 23:17:33 -04:00
parent f2283b575f
commit e069503dff
2 changed files with 35 additions and 18 deletions

View file

@ -25,6 +25,8 @@
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#define L10N // Localization complete.
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <algorithm> #include <algorithm>
@ -314,7 +316,7 @@ void A3::rc_override (
else else
home = "."; home = ".";
context.header ("Using alternate .taskrc file " + rc._data); context.header (format (STRING_A3_ALTERNATE_RC, rc._data));
// Keep looping, because if there are multiple rc:file arguments, we // Keep looping, because if there are multiple rc:file arguments, we
// want the last one to dominate. // want the last one to dominate.
@ -339,7 +341,7 @@ void A3::get_data_location (std::string& data)
(arg->_raw[16] == ':' || arg->_raw[16] == '=')) (arg->_raw[16] == ':' || arg->_raw[16] == '='))
{ {
data = arg->_raw.substr (17); data = arg->_raw.substr (17);
context.header ("Using alternate data.location " + data); context.header (format (STRING_A3_ALTERNATE_DATA, data));
} }
} }
@ -424,10 +426,10 @@ void A3::apply_overrides ()
n.getUntilEOS (value); // May be blank. n.getUntilEOS (value); // May be blank.
context.config.set (name, value); context.config.set (name, value);
context.footnote ("Configuration override rc." + name + ":" + value); context.footnote (format (STRING_A3_OVERRIDE_RC, name, value));
} }
else else
context.footnote ("Problem with override: " + arg->_raw); context.footnote (format (STRING_A3_OVERRIDE_PROBLEM, arg->_raw));
} }
} }
} }
@ -1022,7 +1024,7 @@ const A3 A3::expand (const A3& input) const
expanded.push_back (Arg ("\\b" + value + "\\b", Arg::type_string, Arg::cat_rx)); expanded.push_back (Arg ("\\b" + value + "\\b", Arg::type_string, Arg::cat_rx));
} }
else else
throw std::string ("Error: unrecognized attribute modifier '") + mod + "'."; throw format (STRING_A3_UNKNOWN_ATTMOD, mod);
} }
// [+-]value --> tags ~/!~ value // [+-]value --> tags ~/!~ value
@ -1204,7 +1206,7 @@ const A3 A3::postfix (const A3& input) const
if (op_stack.size ()) if (op_stack.size ())
op_stack.pop_back (); op_stack.pop_back ();
else else
throw std::string ("Mismatched parentheses in expression"); throw std::string (STRING_A3_MISMATCHED_PARENS);
} }
else if (which_operator (arg->_raw, type, precedence, associativity)) else if (which_operator (arg->_raw, type, precedence, associativity))
{ {
@ -1232,7 +1234,7 @@ const A3 A3::postfix (const A3& input) const
{ {
if (op_stack.back ()._raw == "(" || if (op_stack.back ()._raw == "(" ||
op_stack.back ()._raw == ")") op_stack.back ()._raw == ")")
throw std::string ("Mismatched parentheses in expression"); throw std::string (STRING_A3_MISMATCHED_PARENS);
converted.push_back (op_stack.back ()); converted.push_back (op_stack.back ());
op_stack.pop_back (); op_stack.pop_back ();
@ -1764,12 +1766,12 @@ bool A3::extract_pattern (const std::string& input, std::string& pattern)
n.skip ('/')) n.skip ('/'))
{ {
if (!n.depleted ()) if (!n.depleted ())
throw std::string ("Unrecognized character(s) at end of pattern."); throw std::string (STRING_A3_PATTERN_GARBAGE);
return true; return true;
} }
else else
throw std::string ("Malformed pattern."); throw std::string (STRING_A3_MALFORMED_PATTERN);
return false; return false;
} }
@ -1917,10 +1919,10 @@ bool A3::extract_id (const std::string& input, std::vector <int>& sequence)
{ {
int end; int end;
if (!n.getUnsignedInt (end)) if (!n.getUnsignedInt (end))
throw std::string ("Unrecognized ID after hyphen."); throw std::string (STRING_A3_ID_AFTER_HYPHEN);
if (id > end) if (id > end)
throw std::string ("Inverted range 'high-low' instead of 'low-high'"); throw std::string (STRING_A3_RANGE_INVERTED);
for (int n = id + 1; n <= end; ++n) for (int n = id + 1; n <= end; ++n)
sequence.push_back (n); sequence.push_back (n);
@ -1936,21 +1938,21 @@ bool A3::extract_id (const std::string& input, std::vector <int>& sequence)
{ {
int end; int end;
if (!n.getUnsignedInt (end)) if (!n.getUnsignedInt (end))
throw std::string ("Unrecognized ID after hyphen."); throw std::string (STRING_A3_ID_AFTER_HYPHEN);
if (id > end) if (id > end)
throw std::string ("Inverted range 'high-low' instead of 'low-high'"); throw std::string (STRING_A3_RANGE_INVERTED);
for (int n = id + 1; n <= end; ++n) for (int n = id + 1; n <= end; ++n)
sequence.push_back (n); sequence.push_back (n);
} }
} }
else else
throw std::string ("Malformed ID"); throw std::string (STRING_A3_MALFORMED_ID);
} }
} }
else else
throw std::string ("Malformed ID"); throw std::string (STRING_A3_MALFORMED_ID);
return n.depleted (); return n.depleted ();
} }
@ -1970,16 +1972,16 @@ bool A3::extract_uuid (
while (n.skip (',')) while (n.skip (','))
{ {
if (!n.getUUID (uuid)) if (!n.getUUID (uuid))
throw std::string ("Unrecognized UUID after comma."); throw std::string (STRING_A3_UUID_AFTER_COMMA);
sequence.push_back (uuid); sequence.push_back (uuid);
} }
} }
else else
throw std::string ("Malformed UUID"); throw std::string (STRING_A3_MALFORMED_UUID);
if (!n.depleted ()) if (!n.depleted ())
throw std::string ("Unrecognized character(s) at end of pattern."); throw std::string (STRING_A3_PATTERN_GARBAGE);
return false; return false;
} }

View file

@ -93,6 +93,21 @@
#define INCLUDED_STRINGS #define INCLUDED_STRINGS
#define L10N // Localization complete. #define L10N // Localization complete.
// A3
#define STRING_A3_ALTERNATE_RC "Using alternate .taskrc file {1}"
#define STRING_A3_ALTERNATE_DATA "Using alternate date.location {1}"
#define STRING_A3_OVERRIDE_RC "Configuration override rc.{1}:{2}"
#define STRING_A3_OVERRIDE_PROBLEM "Problem with override: {1}"
#define STRING_A3_UNKNOWN_ATTMOD "Error: unrecognized attribute modifier '{1}'."
#define STRING_A3_MISMATCHED_PARENS "Mismatched parentheses in expression"
#define STRING_A3_PATTERN_GARBAGE "Unrecognized character(s) at end of pattern."
#define STRING_A3_MALFORMED_PATTERN "Malformed pattern."
#define STRING_A3_MALFORMED_ID "Malformed ID."
#define STRING_A3_MALFORMED_UUID "Malformed UUID."
#define STRING_A3_ID_AFTER_HYPHEN "Unrecognized ID after hyphen."
#define STRING_A3_RANGE_INVERTED "Inverted range 'high-low' instead of 'low-high'"
#define STRING_A3_UUID_AFTER_COMMA "Unrecognized UUID after comma."
// API // API
#define STRING_API_EXITING "Exiting." #define STRING_API_EXITING "Exiting."
#define STRING_API_NOFUNC "The Lua function '{1}' was not found." #define STRING_API_NOFUNC "The Lua function '{1}' was not found."