diff --git a/src/en-US.h b/src/en-US.h index b2dc340db..0cb9c6afb 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -596,10 +596,31 @@ #define STRING_FEEDBACK_NO_MATCH "No matches." #define STRING_FEEDBACK_TASKS_SINGLE "(1 task)" #define STRING_FEEDBACK_TASKS_PLURAL "({1} tasks)" +#define STRING_FEEDBACK_DELETED "{1} will be deleted." +#define STRING_FEEDBACK_DEP_SET "Dependencies will be set to '{1}'." +#define STRING_FEEDBACK_DEP_MOD "Dependencies will be changed from '{1}' to '{2}'." +#define STRING_FEEDBACK_DEP_DEL "Dependencies '{1}' deleted." +#define STRING_FEEDBACK_DEP_WAS_SET "Dependencies set to '{1}'." +#define STRING_FEEDBACK_DEP_WAS_MOD "Dependencies changed from '{1}' to '{2}'." +#define STRING_FEEDBACK_ATT_SET "{1} will be set to '{2}'." +#define STRING_FEEDBACK_ATT_MOD "{1} will be changed from '{2}' to '{3}'." +#define STRING_FEEDBACK_ATT_DEL "{1} deleted." +#define STRING_FEEDBACK_ATT_WAS_SET "{1} set to '{2}'." +#define STRING_FEEDBACK_ATT_WAS_MOD "{1} changed from '{2}' to '{3}'." +#define STRING_FEEDBACK_ANN_ADD "Annotation of '{1}' added." +#define STRING_FEEDBACK_ANN_DEL "Annotation '{1} deleted." +#define STRING_FEEDBACK_ANN_WAS_MOD "Annotation changed to '{1}'." +#define STRING_FEEDBACK_NOP "No changes will be made." +#define STRING_FEEDBACK_WAS_NOP "No changes made." // File #define STRING_FILE_PERMS "Task does not have the correct permissions for '{1}'." +// helpers +#define STRING_HELPER_PROJECT_CHANGE "The project '{1}' has changed." +#define STRING_HELPER_PROJECT_COMPL "Project '{1}' is {2}% complete" +#define STRING_HELPER_PROJECT_REM "({1} of {2} tasks remaining)." + // interactive #define STRING_INTERACTIVE_WIDTH "Context::getWidth: determined width of {1} characters" #define STRING_INTERACTIVE_HEIGHT "Context::getHeight: determined height of {1} characters" diff --git a/src/feedback.cpp b/src/feedback.cpp index d84ddf0e7..b3d449b30 100644 --- a/src/feedback.cpp +++ b/src/feedback.cpp @@ -25,6 +25,8 @@ // //////////////////////////////////////////////////////////////////////////////// +#define L10N // Localization complete. + #include #include #include @@ -36,6 +38,7 @@ #include #include #include +#include #include extern Context context; @@ -94,8 +97,8 @@ std::string taskDifferences (const Task& before, const Task& after) std::vector ::iterator name; for (name = beforeOnly.begin (); name != beforeOnly.end (); ++name) out << " - " - << ucFirst(*name) - << " will be deleted.\n"; + << format (STRING_FEEDBACK_DELETED, ucFirst (*name)) + << "\n"; for (name = afterOnly.begin (); name != afterOnly.end (); ++name) { @@ -107,17 +110,15 @@ std::string taskDifferences (const Task& before, const Task& after) join (to, ", ", deps_after); out << " - " - << "Dependencies" - << " will be set to '" - << to - << "'.\n"; + << format (STRING_FEEDBACK_DEP_SET, to) + << "\n"; } else out << " - " - << ucFirst(*name) - << " will be set to '" - << renderAttribute (*name, after.get (*name)) - << "'.\n"; + << format (STRING_FEEDBACK_ATT_SET, + ucFirst (*name), + renderAttribute (*name, after.get (*name))) + << "\n"; } for (name = beforeAtts.begin (); name != beforeAtts.end (); ++name) @@ -142,27 +143,24 @@ std::string taskDifferences (const Task& before, const Task& after) join (to, ", ", deps_after); out << " - " - << "Dependencies" - << " will be changed from '" - << from - << "' to '" - << to - << "'.\n"; + << format (STRING_FEEDBACK_DEP_MOD, from, to) + << "\n"; } else out << " - " - << ucFirst(*name) - << " will be changed from '" - << renderAttribute (*name, before.get (*name)) - << "' to '" - << renderAttribute (*name, after.get (*name)) - << "'.\n"; + << format (STRING_FEEDBACK_ATT_MOD, + ucFirst (*name), + renderAttribute (*name, before.get (*name)), + renderAttribute (*name, after.get (*name))) + << "\n"; } } // Shouldn't just say nothing. if (out.str ().length () == 0) - out << " - No changes will be made.\n"; + out << " - " + << STRING_FEEDBACK_NOP + << "\n"; return out.str (); } @@ -197,20 +195,18 @@ std::string taskInfoDifferences (const Task& before, const Task& after) std::string from; join (from, ", ", deps_before); - out << "Dependencies '" - << from - << "' deleted.\n"; + out << format (STRING_FEEDBACK_DEP_DEL, from) + << "\n"; } else if (name->substr (0, 11) == "annotation_") { - out << "Annotation '" - << before.get (*name) - << "' deleted.\n"; + out << format (STRING_FEEDBACK_ANN_DEL, before.get (*name)) + << "\n"; } else { - out << ucFirst (*name) - << " deleted.\n"; + out << format (STRING_FEEDBACK_ATT_DEL, ucFirst (*name)) + << "\n"; } } @@ -223,22 +219,19 @@ std::string taskInfoDifferences (const Task& before, const Task& after) std::string to; join (to, ", ", deps_after); - out << "Dependencies" - << " set to '" - << to - << "'.\n"; + out << format (STRING_FEEDBACK_DEP_WAS_SET, to) + << "\n"; } else if (name->substr (0, 11) == "annotation_") { - out << "Annotation of '" - << after.get (*name) - << "' added.\n"; + out << format (STRING_FEEDBACK_ANN_ADD, after.get (*name)) + << "\n"; } else - out << ucFirst(*name) - << " set to '" - << renderAttribute (*name, after.get (*name)) - << "'.\n"; + out << format (STRING_FEEDBACK_ATT_WAS_SET, + ucFirst (*name), + renderAttribute (*name, after.get (*name))) + << "\n"; } for (name = beforeAtts.begin (); name != beforeAtts.end (); ++name) @@ -258,31 +251,26 @@ std::string taskInfoDifferences (const Task& before, const Task& after) std::string to; join (to, ", ", deps_after); - out << "Dependencies" - << " changed from '" - << from - << "' to '" - << to - << "'.\n"; + out << format (STRING_FEEDBACK_DEP_WAS_MOD, from, to) + << "\n"; } else if (name->substr (0, 11) == "annotation_") { - out << "Annotation changed to '" - << after.get (*name) - << "'.\n"; + out << format (STRING_FEEDBACK_ANN_WAS_MOD, after.get (*name)) + << "\n"; } else - out << ucFirst(*name) - << " changed from '" - << renderAttribute (*name, before.get (*name)) - << "' to '" - << renderAttribute (*name, after.get (*name)) - << "'.\n"; + out << format (STRING_FEEDBACK_ATT_WAS_MOD, + ucFirst (*name), + renderAttribute (*name, before.get (*name)), + renderAttribute (*name, after.get (*name))) + << "\n"; } // Shouldn't just say nothing. if (out.str ().length () == 0) - out << "No changes made.\n"; + out << STRING_FEEDBACK_WAS_NOP + << "\n"; return out.str (); } diff --git a/src/helpers.cpp b/src/helpers.cpp index ae7344494..e3e514038 100644 --- a/src/helpers.cpp +++ b/src/helpers.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#define L10N // Localization complete. #include #include @@ -46,6 +47,7 @@ #include #include #include +#include #include static void countTasks (const std::vector &, const std::string&, int&, int&); @@ -127,9 +129,8 @@ std::string onProjectChange (Task& task, bool scope /* = true */) if (project != "") { if (scope) - msg << "The project '" - << project - << "' has changed. "; + msg << format (STRING_HELPER_PROJECT_CHANGE, project) + << " "; // Count pending and done tasks, for this project. int count_pending = 0; @@ -151,15 +152,10 @@ std::string onProjectChange (Task& task, bool scope /* = true */) else percentage = (count_done * 100 / (count_done + count_pending)); - msg << "Project '" - << project - << "' is " - << percentage - << "% complete (" - << count_pending - << " of " - << (count_pending + count_done) - << " tasks remaining).\n"; + msg << format (STRING_HELPER_PROJECT_COMPL, project, percentage) + << " " + << format (STRING_HELPER_PROJECT_REM, count_pending, count_pending + count_done) + << "\n"; } return msg.str ();