From: Oswald Buddenhagen Date: Mon, 4 Aug 2014 17:58:17 +0000 (+0200) Subject: fix gaelic plural rules X-Git-Tag: v5.3.99+beta1~18^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=32bb805deb7339918986a6305b769939b005e830;p=platform%2Fupstream%2Fqttools.git fix gaelic plural rules [ChangeLog][Linguist][Important Behavior Changes] The Gaelic plural rules now know four forms. To keep existing translations intact, set their language to Irish. Task-number: QTBUG-40566 Change-Id: Ia3c315bb4d9bda8fac57b39c9b1a5653a1a44260 Reviewed-by: Jan Arve Sæther Reviewed-by: hjk --- diff --git a/src/linguist/shared/numerus.cpp b/src/linguist/shared/numerus.cpp index 5099e98..597a69a 100644 --- a/src/linguist/shared/numerus.cpp +++ b/src/linguist/shared/numerus.cpp @@ -64,6 +64,10 @@ static const uchar icelandicRules[] = static const uchar irishStyleRules[] = { Q_EQ, 1, Q_NEWRULE, Q_EQ, 2 }; +static const uchar gaelicStyleRules[] = + { Q_EQ, 1, Q_OR, Q_EQ, 11, Q_NEWRULE, + Q_EQ, 2, Q_OR, Q_EQ, 12, Q_NEWRULE, + Q_BETWEEN, 3, 19 }; static const uchar slovakStyleRules[] = { Q_EQ, 1, Q_NEWRULE, Q_BETWEEN, 2, 4 }; @@ -114,6 +118,9 @@ static const char * const frenchStyleForms[] = { "Singular", "Plural", 0 }; static const char * const icelandicForms[] = { "Singular", "Plural", 0 }; static const char * const latvianForms[] = { "Singular", "Plural", "Nullar", 0 }; static const char * const irishStyleForms[] = { "Singular", "Dual", "Plural", 0 }; +// Gaelic uses the grammatical Singular for the Plural cardinality, +// so using the Latin terms is expected to cause confusion. +static const char * const gaelicStyleForms[] = { "1/11", "2/12", "Few", "Many", 0 }; static const char * const slovakStyleForms[] = { "Singular", "Paucal", "Plural", 0 }; static const char * const macedonianForms[] = { "Singular", "Dual", "Plural", 0 }; static const char * const lithuanianForms[] = { "Singular", "Paucal", "Plural", 0 }; @@ -267,7 +274,6 @@ static const QLocale::Language latvianLanguage[] = { QLocale::Latvian, EOL }; static const QLocale::Language icelandicLanguage[] = { QLocale::Icelandic, EOL }; static const QLocale::Language irishStyleLanguages[] = { QLocale::Divehi, - QLocale::Gaelic, QLocale::Inuktitut, QLocale::Inupiak, QLocale::Irish, @@ -278,6 +284,7 @@ static const QLocale::Language irishStyleLanguages[] = { QLocale::Sanskrit, EOL }; +static const QLocale::Language gaelicStyleLanguages[] = { QLocale::Gaelic, EOL }; static const QLocale::Language slovakStyleLanguages[] = { QLocale::Slovak, QLocale::Czech, EOL }; static const QLocale::Language macedonianLanguage[] = { QLocale::Macedonian, EOL }; static const QLocale::Language lithuanianLanguage[] = { QLocale::Lithuanian, EOL }; @@ -334,6 +341,8 @@ static const NumerusTableEntry numerusTable[] = { "nplurals=2; plural=(n%10==1 && n%100!=11 ? 0 : 1);" }, { irishStyleRules, sizeof(irishStyleRules), irishStyleForms, irishStyleLanguages, 0, "nplurals=3; plural=(n==1 ? 0 : n==2 ? 1 : 2);" }, + { gaelicStyleRules, sizeof(gaelicStyleRules), gaelicStyleForms, gaelicStyleLanguages, 0, + "nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;" }, { slovakStyleRules, sizeof(slovakStyleRules), slovakStyleForms, slovakStyleLanguages, 0, "nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);" }, { macedonianRules, sizeof(macedonianRules), macedonianForms, macedonianLanguage, 0,