summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-08-04 19:58:17 +0200
committerhjk <hjk121@nokiamail.com>2014-08-20 10:22:06 +0200
commit32bb805deb7339918986a6305b769939b005e830 (patch)
tree98e53dc31e6898d2a2a182e2501e82a46f80bf76
parent33b79808bdce641a06b4cc8e4f1aa6e332742bf3 (diff)
downloadqttools-32bb805deb7339918986a6305b769939b005e830.tar.gz
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 <jan-arve.saether@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
-rw-r--r--src/linguist/shared/numerus.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/linguist/shared/numerus.cpp b/src/linguist/shared/numerus.cpp
index 5099e98b9..597a69abd 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,