From c88bf590dbc465316b224c51e5494934387b3d4c Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Tue, 22 Nov 2016 19:39:55 +0000 Subject: [PATCH] Add plural forms support to dirty plugin messages --- resources/l10n/template.pot | 42 +++++++++++-------- scripts/git/pre-commit | 2 +- src/backend/metadata/plugin_cleaning_data.cpp | 34 ++++++++------- 3 files changed, 45 insertions(+), 33 deletions(-) diff --git a/resources/l10n/template.pot b/resources/l10n/template.pot index dbe13d5c..6236dfe2 100644 --- a/resources/l10n/template.pot +++ b/resources/l10n/template.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: LOOT 0.10.1\n" "Report-Msgid-Bugs-To: https://github.com/loot/loot/issues\n" -"POT-Creation-Date: 2016-11-22 19:11+0000\n" +"POT-Creation-Date: 2016-11-22 19:39+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: src/gui/html/js/events.js:18 msgid "Identifying conflicting plugins..." @@ -792,37 +793,42 @@ msgid "" "Failed to parse condition \"%1%\": only partially matched expected syntax." msgstr "" -#: src/backend/metadata/plugin_cleaning_data.cpp:88 -msgid "" -"%1% found %2% ITM records, %3% deleted references and %4% deleted navmeshes." -msgstr "" +#: src/backend/metadata/plugin_cleaning_data.cpp:89 +msgid "%1% ITM record" +msgid_plural "%1% ITM records" +msgstr[0] "" +msgstr[1] "" #: src/backend/metadata/plugin_cleaning_data.cpp:90 -msgid "%1% found dirty edits." -msgstr "" +msgid "%1% deleted reference" +msgid_plural "%1% deleted references" +msgstr[0] "" +msgstr[1] "" -#: src/backend/metadata/plugin_cleaning_data.cpp:93 -msgid "%1% found %2% deleted references and %3% deleted navmeshes." -msgstr "" +#: src/backend/metadata/plugin_cleaning_data.cpp:91 +msgid "%1% deleted navmesh" +msgid_plural "%1% deleted navmeshes" +msgstr[0] "" +msgstr[1] "" #: src/backend/metadata/plugin_cleaning_data.cpp:95 -msgid "%1% found %2% deleted navmeshes." +msgid "%1% found %2%, %3% and %4%." msgstr "" #: src/backend/metadata/plugin_cleaning_data.cpp:97 -msgid "%1% found %2% deleted references." +msgid "%1% found dirty edits." msgstr "" #: src/backend/metadata/plugin_cleaning_data.cpp:100 -msgid "%1% found %2% ITM records and %3% deleted navmeshes." -msgstr "" - #: src/backend/metadata/plugin_cleaning_data.cpp:102 -msgid "%1% found %2% ITM records." +#: src/backend/metadata/plugin_cleaning_data.cpp:104 +msgid "%1% found %2% and %3%." msgstr "" -#: src/backend/metadata/plugin_cleaning_data.cpp:105 -msgid "%1% found %2% ITM records and %3% deleted references." +#: src/backend/metadata/plugin_cleaning_data.cpp:107 +#: src/backend/metadata/plugin_cleaning_data.cpp:109 +#: src/backend/metadata/plugin_cleaning_data.cpp:111 +msgid "%1% found %2%." msgstr "" #: src/backend/plugin/plugin.cpp:115 diff --git a/scripts/git/pre-commit b/scripts/git/pre-commit index df6e6d82..0cb21509 100755 --- a/scripts/git/pre-commit +++ b/scripts/git/pre-commit @@ -5,7 +5,7 @@ # commit if more than one line in it has changed, otherwise discard any changes # to it. -xgettext -k"translate:1,1t" -k"translateFormatted:1" --add-location=full --from-code=utf-8 --package-name=LOOT --package-version=0.10.1 --copyright-holder="WrinklyNinja" --msgid-bugs-address="https://github.com/loot/loot/issues" -o resources/l10n/template.pot src/gui/html/js/*.* src/gui/*.cpp src/gui/query/*.h src/backend/*/*.* src/backend/*.* +xgettext --keyword="translate:1,1t" --keyword="translate:1,2,3t" --keyword="translateFormatted:1" --add-location=full --from-code=utf-8 --package-name=LOOT --package-version=0.10.1 --copyright-holder="WrinklyNinja" --msgid-bugs-address="https://github.com/loot/loot/issues" -o resources/l10n/template.pot src/gui/html/js/*.* src/gui/*.cpp src/gui/query/*.h src/backend/*/*.* src/backend/*.* sed -i 's|charset=CHARSET|charset=UTF-8|' resources/l10n/template.pot diff --git a/src/backend/metadata/plugin_cleaning_data.cpp b/src/backend/metadata/plugin_cleaning_data.cpp index 4fe97c58..9449281f 100644 --- a/src/backend/metadata/plugin_cleaning_data.cpp +++ b/src/backend/metadata/plugin_cleaning_data.cpp @@ -83,26 +83,32 @@ MessageContent PluginCleaningData::ChooseInfo(const LanguageCode language) const } Message PluginCleaningData::AsMessage() const { - boost::format f; + using boost::format; + using boost::locale::translate; + + const std::string itmRecords = (format(translate("%1% ITM record", "%1% ITM records", itm_)) % itm_).str(); + const std::string deletedReferences = (format(translate("%1% deleted reference", "%1% deleted references", ref_)) % ref_).str(); + const std::string deletedNavmeshes = (format(translate("%1% deleted navmesh", "%1% deleted navmeshes", nav_)) % nav_).str(); + + format f; if (itm_ > 0 && ref_ > 0 && nav_ > 0) - f = boost::format(boost::locale::translate("%1% found %2% ITM records, %3% deleted references and %4% deleted navmeshes.")) % utility_ % itm_ % ref_ % nav_; + f = format(translate("%1% found %2%, %3% and %4%.")) % utility_ % itmRecords % deletedReferences % deletedNavmeshes; else if (itm_ == 0 && ref_ == 0 && nav_ == 0) - f = boost::format(boost::locale::translate("%1% found dirty edits.")) % utility_; + f = format(translate("%1% found dirty edits.")) % utility_; else if (itm_ == 0 && ref_ > 0 && nav_ > 0) - f = boost::format(boost::locale::translate("%1% found %2% deleted references and %3% deleted navmeshes.")) % utility_ % ref_ % nav_; - else if (itm_ == 0 && ref_ == 0 && nav_ > 0) - f = boost::format(boost::locale::translate("%1% found %2% deleted navmeshes.")) % utility_ % nav_; - else if (itm_ == 0 && ref_ > 0 && nav_ == 0) - f = boost::format(boost::locale::translate("%1% found %2% deleted references.")) % utility_ % ref_; - + f = format(translate("%1% found %2% and %3%.")) % utility_ % deletedReferences % deletedNavmeshes; else if (itm_ > 0 && ref_ == 0 && nav_ > 0) - f = boost::format(boost::locale::translate("%1% found %2% ITM records and %3% deleted navmeshes.")) % utility_ % itm_ % nav_; - else if (itm_ > 0 && ref_ == 0 && nav_ == 0) - f = boost::format(boost::locale::translate("%1% found %2% ITM records.")) % utility_ % itm_; - + f = format(translate("%1% found %2% and %3%.")) % utility_ % itmRecords % deletedNavmeshes; else if (itm_ > 0 && ref_ > 0 && nav_ == 0) - f = boost::format(boost::locale::translate("%1% found %2% ITM records and %3% deleted references.")) % utility_ % itm_ % ref_; + f = format(translate("%1% found %2% and %3%.")) % utility_ % itmRecords % deletedReferences; + + else if (itm_ > 0) + f = format(translate("%1% found %2%.")) % utility_ % itmRecords; + else if (ref_ > 0) + f = format(translate("%1% found %2%.")) % utility_ % deletedReferences; + else if (nav_ > 0) + f = format(translate("%1% found %2%.")) % utility_ % deletedNavmeshes; std::string message = f.str(); auto info = info_;