--- a/compare_locales/plurals.py
+++ b/compare_locales/plurals.py
@@ -1,76 +1,79 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
'Mapping of locales to CLDR plural categories as implemented by PluralForm.jsm'
-CATEGORIES_BY_INDEX = (
+CATEGORIES_BY_INDEX = {
# 0 (Chinese)
- ('other',),
+ 0: ('other',),
# 1 (English)
- ('one', 'other'),
+ 1: ('one', 'other'),
# 2 (French)
- ('one', 'other'),
+ 2: ('one', 'other'),
# 3 (Latvian)
- ('zero', 'one', 'other'),
+ 3: ('zero', 'one', 'other'),
# 4 (Scottish Gaelic)
- ('one', 'two', 'few', 'other'),
+ 4: ('one', 'two', 'few', 'other'),
# 5 (Romanian)
- ('one', 'few', 'other'),
+ 5: ('one', 'few', 'other'),
# 6 (Lithuanian)
# CLDR: one, few, many (fractions), other
- ('one', 'other', 'few'),
+ 6: ('one', 'other', 'few'),
# 7 (Russian)
# CLDR: one, few, many, other (fractions)
- ('one', 'few', 'many'),
+ 7: ('one', 'few', 'many'),
# 8 (Slovak)
# CLDR: one, few, many (fractions), other
- ('one', 'few', 'other'),
+ 8: ('one', 'few', 'other'),
# 9 (Polish)
# CLDR: one, few, many, other (fractions)
- ('one', 'few', 'many'),
+ 9: ('one', 'few', 'many'),
# 10 (Slovenian)
- ('one', 'two', 'few', 'other'),
+ 10: ('one', 'two', 'few', 'other'),
# 11 (Irish Gaelic)
- ('one', 'two', 'few', 'many', 'other'),
+ 11: ('one', 'two', 'few', 'many', 'other'),
# 12 (Arabic)
# CLDR: zero, one, two, few, many, other
- ('one', 'two', 'few', 'many', 'other', 'zero'),
+ 12: ('one', 'two', 'few', 'many', 'other', 'zero'),
# 13 (Maltese)
- ('one', 'few', 'many', 'other'),
+ 13: ('one', 'few', 'many', 'other'),
# 14 (Unused)
# CLDR: one, other
- ('one', 'two', 'other'),
+ 14: ('one', 'two', 'other'),
# 15 (Icelandic, Macedonian)
- ('one', 'other'),
+ 15: ('one', 'other'),
# 16 (Breton)
- ('one', 'two', 'few', 'many', 'other'),
+ 16: ('one', 'two', 'few', 'many', 'other'),
# 17 (Shuar)
# CLDR: (missing)
- ('zero', 'other'),
+ 17: ('zero', 'other'),
# 18 (Welsh),
- ('zero', 'one', 'two', 'few', 'many', 'other'),
-)
+ 18: ('zero', 'one', 'two', 'few', 'many', 'other'),
+ # Fake plural rules to match the different CLDR order
+ # Used for bs, hr, sr instead of rule 7
+ 100: ('one', 'few', 'other'),
+}
CATEGORIES_BY_LOCALE = {
'ach': CATEGORIES_BY_INDEX[1],
'af': CATEGORIES_BY_INDEX[1],
'an': CATEGORIES_BY_INDEX[1],
'ar': CATEGORIES_BY_INDEX[12],
'as': CATEGORIES_BY_INDEX[1],
'ast': CATEGORIES_BY_INDEX[1],
'az': CATEGORIES_BY_INDEX[1],
'be': CATEGORIES_BY_INDEX[7],
'bg': CATEGORIES_BY_INDEX[1],
'bn-BD': CATEGORIES_BY_INDEX[2],
'bn-IN': CATEGORIES_BY_INDEX[2],
'br': CATEGORIES_BY_INDEX[1],
- 'bs': CATEGORIES_BY_INDEX[7],
+ 'bs': CATEGORIES_BY_INDEX[100],
'ca': CATEGORIES_BY_INDEX[1],
'cak': CATEGORIES_BY_INDEX[1],
'cs': CATEGORIES_BY_INDEX[8],
'cy': CATEGORIES_BY_INDEX[18],
'da': CATEGORIES_BY_INDEX[1],
'de': CATEGORIES_BY_INDEX[1],
'dsb': CATEGORIES_BY_INDEX[10],
'el': CATEGORIES_BY_INDEX[1],
@@ -91,17 +94,17 @@ CATEGORIES_BY_LOCALE = {
'fy-NL': CATEGORIES_BY_INDEX[1],
'ga-IE': CATEGORIES_BY_INDEX[11],
'gd': CATEGORIES_BY_INDEX[4],
'gl': CATEGORIES_BY_INDEX[1],
'gn': CATEGORIES_BY_INDEX[1],
'gu-IN': CATEGORIES_BY_INDEX[2],
'he': CATEGORIES_BY_INDEX[1],
'hi-IN': CATEGORIES_BY_INDEX[2],
- 'hr': CATEGORIES_BY_INDEX[7],
+ 'hr': CATEGORIES_BY_INDEX[100],
'hsb': CATEGORIES_BY_INDEX[10],
'hu': CATEGORIES_BY_INDEX[1],
'hy-AM': CATEGORIES_BY_INDEX[1],
'ia': CATEGORIES_BY_INDEX[1],
'id': CATEGORIES_BY_INDEX[0],
'is': CATEGORIES_BY_INDEX[15],
'it': CATEGORIES_BY_INDEX[1],
'ja': CATEGORIES_BY_INDEX[0],
@@ -114,16 +117,17 @@ CATEGORIES_BY_LOCALE = {
'kn': CATEGORIES_BY_INDEX[1],
'ko': CATEGORIES_BY_INDEX[0],
'lij': CATEGORIES_BY_INDEX[1],
'lo': CATEGORIES_BY_INDEX[0],
'lt': CATEGORIES_BY_INDEX[6],
'ltg': CATEGORIES_BY_INDEX[3],
'lv': CATEGORIES_BY_INDEX[3],
'mai': CATEGORIES_BY_INDEX[1],
+ 'meh': CATEGORIES_BY_INDEX[0],
'mk': CATEGORIES_BY_INDEX[15],
'ml': CATEGORIES_BY_INDEX[1],
'mr': CATEGORIES_BY_INDEX[1],
'ms': CATEGORIES_BY_INDEX[0],
'my': CATEGORIES_BY_INDEX[0],
'nb-NO': CATEGORIES_BY_INDEX[1],
'ne-NP': CATEGORIES_BY_INDEX[1],
'nl': CATEGORIES_BY_INDEX[1],
@@ -137,26 +141,62 @@ CATEGORIES_BY_LOCALE = {
'rm': CATEGORIES_BY_INDEX[1],
'ro': CATEGORIES_BY_INDEX[5],
'ru': CATEGORIES_BY_INDEX[7],
'si': CATEGORIES_BY_INDEX[1],
'sk': CATEGORIES_BY_INDEX[8],
'sl': CATEGORIES_BY_INDEX[10],
'son': CATEGORIES_BY_INDEX[1],
'sq': CATEGORIES_BY_INDEX[1],
- 'sr': CATEGORIES_BY_INDEX[7],
+ 'sr': CATEGORIES_BY_INDEX[100],
'sv-SE': CATEGORIES_BY_INDEX[1],
'ta': CATEGORIES_BY_INDEX[1],
'te': CATEGORIES_BY_INDEX[1],
'th': CATEGORIES_BY_INDEX[0],
'tl': CATEGORIES_BY_INDEX[1],
'tr': CATEGORIES_BY_INDEX[1],
'trs': CATEGORIES_BY_INDEX[1],
'uk': CATEGORIES_BY_INDEX[7],
'ur': CATEGORIES_BY_INDEX[1],
'uz': CATEGORIES_BY_INDEX[1],
'vi': CATEGORIES_BY_INDEX[0],
'wo': CATEGORIES_BY_INDEX[0],
'xh': CATEGORIES_BY_INDEX[1],
'zam': CATEGORIES_BY_INDEX[1],
'zh-CN': CATEGORIES_BY_INDEX[1],
- 'zh-TW': CATEGORIES_BY_INDEX[0]
+ 'zh-TW': CATEGORIES_BY_INDEX[0],
+ # Non building locales
+ 'ace': CATEGORIES_BY_INDEX[0],
+ 'ak': CATEGORIES_BY_INDEX[2],
+ 'arn': CATEGORIES_BY_INDEX[1],
+ 'brx': CATEGORIES_BY_INDEX[1],
+ 'crh': CATEGORIES_BY_INDEX[1],
+ 'csb': CATEGORIES_BY_INDEX[9],
+ 'cv': CATEGORIES_BY_INDEX[1],
+ 'fur': CATEGORIES_BY_INDEX[1],
+ 'hto': CATEGORIES_BY_INDEX[1],
+ 'ks': CATEGORIES_BY_INDEX[1],
+ 'ku': CATEGORIES_BY_INDEX[1],
+ 'lb': CATEGORIES_BY_INDEX[1],
+ 'lg': CATEGORIES_BY_INDEX[1],
+ 'mix': CATEGORIES_BY_INDEX[0],
+ 'mn': CATEGORIES_BY_INDEX[1],
+ 'nr': CATEGORIES_BY_INDEX[1],
+ 'nso': CATEGORIES_BY_INDEX[2],
+ 'ny': CATEGORIES_BY_INDEX[1],
+ 'pai': CATEGORIES_BY_INDEX[0],
+ 'quy': CATEGORIES_BY_INDEX[1],
+ 'qvi': CATEGORIES_BY_INDEX[1],
+ 'rw': CATEGORIES_BY_INDEX[1],
+ 'sah': CATEGORIES_BY_INDEX[0],
+ 'sat': CATEGORIES_BY_INDEX[1],
+ 'sc': CATEGORIES_BY_INDEX[1],
+ 'scn': CATEGORIES_BY_INDEX[1],
+ 'ss': CATEGORIES_BY_INDEX[1],
+ 'st': CATEGORIES_BY_INDEX[1],
+ 'sw': CATEGORIES_BY_INDEX[1],
+ 'ta-LK': CATEGORIES_BY_INDEX[1],
+ 'tn': CATEGORIES_BY_INDEX[1],
+ 'ts': CATEGORIES_BY_INDEX[1],
+ 'tsz': CATEGORIES_BY_INDEX[1],
+ 've': CATEGORIES_BY_INDEX[1],
+ 'zu': CATEGORIES_BY_INDEX[2],
}