i18n 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of i18n might be problematic. Click here for more details.
- data/README.textile +24 -1
- data/Rakefile +6 -2
- data/lib/i18n.rb +13 -13
- data/lib/i18n/backend.rb +2 -0
- data/lib/i18n/backend/active_record.rb +9 -13
- data/lib/i18n/backend/active_record/missing.rb +1 -1
- data/lib/i18n/backend/active_record/store_procs.rb +5 -5
- data/lib/i18n/backend/active_record/translation.rb +6 -4
- data/lib/i18n/backend/base.rb +21 -14
- data/lib/i18n/backend/cache.rb +1 -0
- data/lib/i18n/backend/cascade.rb +22 -8
- data/lib/i18n/backend/chain.rb +2 -1
- data/lib/i18n/backend/cldr.rb +100 -0
- data/lib/i18n/backend/fallbacks.rb +15 -3
- data/lib/i18n/backend/fast.rb +14 -13
- data/lib/i18n/backend/gettext.rb +2 -1
- data/lib/i18n/backend/helpers.rb +4 -16
- data/lib/i18n/backend/interpolation_compiler.rb +2 -2
- data/lib/i18n/backend/links.rb +34 -0
- data/lib/i18n/backend/pluralization.rb +1 -1
- data/lib/i18n/core_ext/hash/except.rb +8 -0
- data/lib/i18n/core_ext/hash/slice.rb +8 -0
- data/lib/i18n/core_ext/string/interpolate.rb +6 -2
- data/lib/i18n/exceptions.rb +1 -1
- data/lib/i18n/helpers/gettext.rb +3 -2
- data/lib/i18n/version.rb +1 -1
- data/test/api.rb +18 -0
- data/test/{cases/api → api}/active_record_test.rb +6 -5
- data/test/{cases/api → api}/all_features_test.rb +22 -3
- data/test/{cases/api → api}/cascade_test.rb +4 -3
- data/test/{cases/api → api}/chain_test.rb +4 -3
- data/test/{cases/api → api}/fallbacks_test.rb +4 -3
- data/test/{cases/api → api}/fast_test.rb +4 -3
- data/test/{cases/api → api}/pluralization_test.rb +4 -3
- data/test/{cases/api → api}/simple_test.rb +5 -3
- data/test/api/{basics.rb → tests/basics.rb} +0 -0
- data/test/api/{defaults.rb → tests/defaults.rb} +1 -1
- data/test/api/{interpolation.rb → tests/interpolation.rb} +6 -6
- data/test/api/{link.rb → tests/link.rb} +4 -3
- data/test/api/{localization → tests/localization}/date.rb +6 -2
- data/test/api/{localization → tests/localization}/date_time.rb +7 -5
- data/test/api/{localization → tests/localization}/procs.rb +0 -0
- data/test/api/{localization → tests/localization}/time.rb +16 -12
- data/test/api/{lookup.rb → tests/lookup.rb} +20 -3
- data/test/api/{pluralization.rb → tests/pluralization.rb} +1 -1
- data/test/api/{procs.rb → tests/procs.rb} +10 -1
- data/test/{cases/backend → backend}/active_record/missing_test.rb +12 -21
- data/test/{cases/backend → backend}/active_record_test.rb +11 -6
- data/test/{cases/backend → backend}/cache_test.rb +9 -10
- data/test/backend/cascade_test.rb +73 -0
- data/test/{cases/backend → backend}/chain_test.rb +10 -11
- data/test/backend/cldr_test.rb +151 -0
- data/test/backend/exceptions_test.rb +25 -0
- data/test/backend/fallbacks_test.rb +107 -0
- data/test/{cases/backend → backend}/fast_test.rb +7 -7
- data/test/{cases/backend → backend}/helpers_test.rb +7 -6
- data/test/{cases/backend → backend}/interpolation_compiler_test.rb +3 -2
- data/test/{cases/backend → backend}/metadata_test.rb +11 -12
- data/test/{cases/backend → backend}/pluralization_test.rb +20 -16
- data/test/{cases/backend → backend}/simple_test.rb +15 -15
- data/test/{cases/core_ext → core_ext}/string/interpolate_test.rb +26 -21
- data/test/{cases/gettext → gettext}/api_test.rb +11 -5
- data/test/{cases/gettext → gettext}/backend_test.rb +4 -4
- data/test/{cases/i18n_exceptions_test.rb → i18n_exceptions_test.rb} +3 -3
- data/test/{cases/i18n_load_path_test.rb → i18n_load_path_test.rb} +2 -2
- data/test/{cases/i18n_test.rb → i18n_test.rb} +15 -15
- data/test/{cases/locale → locale}/fallbacks_test.rb +2 -2
- data/test/{cases/locale → locale}/tag/rfc4646_test.rb +3 -3
- data/test/{cases/locale → locale}/tag/simple_test.rb +2 -2
- data/test/test_data/locales/cldr/de/calendars.yml +152 -0
- data/test/test_data/locales/cldr/de/currencies.yml +8 -0
- data/test/test_data/locales/cldr/de/numbers.yml +31 -0
- data/test/{fixtures → test_data}/locales/de.po +0 -0
- data/test/{fixtures → test_data}/locales/en.rb +0 -0
- data/test/{fixtures → test_data}/locales/en.yml +0 -0
- data/test/{fixtures → test_data}/locales/plurals.rb +0 -0
- data/test/test_helper.rb +49 -36
- data/vendor/cldr/common/bcp47/calendar.xml +26 -0
- data/vendor/cldr/common/bcp47/collation.xml +72 -0
- data/vendor/cldr/common/bcp47/currency.xml +177 -0
- data/vendor/cldr/common/bcp47/number.xml +47 -0
- data/vendor/cldr/common/bcp47/timezone.xml +443 -0
- data/vendor/cldr/common/bcp47/variant.xml +14 -0
- data/vendor/cldr/common/collation/af.xml +17 -0
- data/vendor/cldr/common/collation/ar.xml +17 -0
- data/vendor/cldr/common/collation/as.xml +42 -0
- data/vendor/cldr/common/collation/az.xml +44 -0
- data/vendor/cldr/common/collation/be.xml +12 -0
- data/vendor/cldr/common/collation/bg.xml +12 -0
- data/vendor/cldr/common/collation/bn.xml +99 -0
- data/vendor/cldr/common/collation/bn_IN.xml +733 -0
- data/vendor/cldr/common/collation/ca.xml +49 -0
- data/vendor/cldr/common/collation/cs.xml +55 -0
- data/vendor/cldr/common/collation/cy.xml +55 -0
- data/vendor/cldr/common/collation/da.xml +90 -0
- data/vendor/cldr/common/collation/de.xml +42 -0
- data/vendor/cldr/common/collation/dz.xml +525 -0
- data/vendor/cldr/common/collation/el.xml +14 -0
- data/vendor/cldr/common/collation/en.xml +24 -0
- data/vendor/cldr/common/collation/en_BE.xml +15 -0
- data/vendor/cldr/common/collation/eo.xml +33 -0
- data/vendor/cldr/common/collation/es.xml +59 -0
- data/vendor/cldr/common/collation/et.xml +34 -0
- data/vendor/cldr/common/collation/fa.xml +34 -0
- data/vendor/cldr/common/collation/fa_AF.xml +13 -0
- data/vendor/cldr/common/collation/fi.xml +134 -0
- data/vendor/cldr/common/collation/fil.xml +21 -0
- data/vendor/cldr/common/collation/fo.xml +88 -0
- data/vendor/cldr/common/collation/fr.xml +25 -0
- data/vendor/cldr/common/collation/gu.xml +47 -0
- data/vendor/cldr/common/collation/haw.xml +41 -0
- data/vendor/cldr/common/collation/he.xml +14 -0
- data/vendor/cldr/common/collation/hi.xml +62 -0
- data/vendor/cldr/common/collation/hr.xml +70 -0
- data/vendor/cldr/common/collation/hu.xml +295 -0
- data/vendor/cldr/common/collation/is.xml +51 -0
- data/vendor/cldr/common/collation/it.xml +24 -0
- data/vendor/cldr/common/collation/ja.xml +2419 -0
- data/vendor/cldr/common/collation/kk.xml +35 -0
- data/vendor/cldr/common/collation/kl.xml +49 -0
- data/vendor/cldr/common/collation/km.xml +155 -0
- data/vendor/cldr/common/collation/kn.xml +765 -0
- data/vendor/cldr/common/collation/ko.xml +976 -0
- data/vendor/cldr/common/collation/kok.xml +45 -0
- data/vendor/cldr/common/collation/ln.xml +107 -0
- data/vendor/cldr/common/collation/lt.xml +47 -0
- data/vendor/cldr/common/collation/lv.xml +75 -0
- data/vendor/cldr/common/collation/mk.xml +12 -0
- data/vendor/cldr/common/collation/ml.xml +166 -0
- data/vendor/cldr/common/collation/mr.xml +52 -0
- data/vendor/cldr/common/collation/mt.xml +33 -0
- data/vendor/cldr/common/collation/my.xml +980 -0
- data/vendor/cldr/common/collation/nb.xml +46 -0
- data/vendor/cldr/common/collation/nn.xml +46 -0
- data/vendor/cldr/common/collation/om.xml +33 -0
- data/vendor/cldr/common/collation/or.xml +64 -0
- data/vendor/cldr/common/collation/pa.xml +28 -0
- data/vendor/cldr/common/collation/pl.xml +41 -0
- data/vendor/cldr/common/collation/ps.xml +58 -0
- data/vendor/cldr/common/collation/ro.xml +61 -0
- data/vendor/cldr/common/collation/root.xml +15 -0
- data/vendor/cldr/common/collation/ru.xml +14 -0
- data/vendor/cldr/common/collation/sa.xml +898 -0
- data/vendor/cldr/common/collation/si.xml +47 -0
- data/vendor/cldr/common/collation/sk.xml +70 -0
- data/vendor/cldr/common/collation/sl.xml +39 -0
- data/vendor/cldr/common/collation/sq.xml +112 -0
- data/vendor/cldr/common/collation/sr.xml +12 -0
- data/vendor/cldr/common/collation/sr_Latn.xml +13 -0
- data/vendor/cldr/common/collation/sv.xml +90 -0
- data/vendor/cldr/common/collation/ta.xml +82 -0
- data/vendor/cldr/common/collation/te.xml +46 -0
- data/vendor/cldr/common/collation/th.xml +58 -0
- data/vendor/cldr/common/collation/to.xml +52 -0
- data/vendor/cldr/common/collation/tr.xml +35 -0
- data/vendor/cldr/common/collation/uk.xml +18 -0
- data/vendor/cldr/common/collation/ur.xml +77 -0
- data/vendor/cldr/common/collation/vi.xml +37 -0
- data/vendor/cldr/common/collation/zh.xml +544 -0
- data/vendor/cldr/common/collation/zh_Hant.xml +13 -0
- data/vendor/cldr/common/dtd/cldrTest.dtd +46 -0
- data/vendor/cldr/common/dtd/ldml.dtd +1198 -0
- data/vendor/cldr/common/dtd/ldmlBCP47.dtd +36 -0
- data/vendor/cldr/common/dtd/ldmlICIR.dtd +142 -0
- data/vendor/cldr/common/dtd/ldmlICU.dtd +111 -0
- data/vendor/cldr/common/dtd/ldmlOpenOffice.dtd +192 -0
- data/vendor/cldr/common/dtd/ldmlSupplemental.dtd +423 -0
- data/vendor/cldr/common/main/aa.xml +221 -0
- data/vendor/cldr/common/main/aa_DJ.xml +26 -0
- data/vendor/cldr/common/main/aa_ER.xml +11 -0
- data/vendor/cldr/common/main/aa_ER_SAAHO.xml +39 -0
- data/vendor/cldr/common/main/aa_ET.xml +10 -0
- data/vendor/cldr/common/main/af.xml +827 -0
- data/vendor/cldr/common/main/af_NA.xml +75 -0
- data/vendor/cldr/common/main/af_ZA.xml +10 -0
- data/vendor/cldr/common/main/ak.xml +194 -0
- data/vendor/cldr/common/main/ak_GH.xml +10 -0
- data/vendor/cldr/common/main/am.xml +1413 -0
- data/vendor/cldr/common/main/am_ET.xml +10 -0
- data/vendor/cldr/common/main/ar.xml +3232 -0
- data/vendor/cldr/common/main/ar_AE.xml +15 -0
- data/vendor/cldr/common/main/ar_BH.xml +15 -0
- data/vendor/cldr/common/main/ar_DZ.xml +44 -0
- data/vendor/cldr/common/main/ar_EG.xml +10 -0
- data/vendor/cldr/common/main/ar_IQ.xml +15 -0
- data/vendor/cldr/common/main/ar_JO.xml +66 -0
- data/vendor/cldr/common/main/ar_KW.xml +15 -0
- data/vendor/cldr/common/main/ar_LB.xml +67 -0
- data/vendor/cldr/common/main/ar_LY.xml +15 -0
- data/vendor/cldr/common/main/ar_MA.xml +47 -0
- data/vendor/cldr/common/main/ar_OM.xml +15 -0
- data/vendor/cldr/common/main/ar_QA.xml +50 -0
- data/vendor/cldr/common/main/ar_SA.xml +50 -0
- data/vendor/cldr/common/main/ar_SD.xml +15 -0
- data/vendor/cldr/common/main/ar_SY.xml +82 -0
- data/vendor/cldr/common/main/ar_TN.xml +75 -0
- data/vendor/cldr/common/main/ar_YE.xml +50 -0
- data/vendor/cldr/common/main/as.xml +278 -0
- data/vendor/cldr/common/main/as_IN.xml +10 -0
- data/vendor/cldr/common/main/az.xml +2718 -0
- data/vendor/cldr/common/main/az_AZ.xml +11 -0
- data/vendor/cldr/common/main/az_Cyrl.xml +85 -0
- data/vendor/cldr/common/main/az_Cyrl_AZ.xml +11 -0
- data/vendor/cldr/common/main/az_Latn.xml +10 -0
- data/vendor/cldr/common/main/az_Latn_AZ.xml +11 -0
- data/vendor/cldr/common/main/be.xml +1096 -0
- data/vendor/cldr/common/main/be_BY.xml +10 -0
- data/vendor/cldr/common/main/bg.xml +3985 -0
- data/vendor/cldr/common/main/bg_BG.xml +10 -0
- data/vendor/cldr/common/main/bn.xml +3193 -0
- data/vendor/cldr/common/main/bn_BD.xml +10 -0
- data/vendor/cldr/common/main/bn_IN.xml +36 -0
- data/vendor/cldr/common/main/bo.xml +449 -0
- data/vendor/cldr/common/main/bo_CN.xml +10 -0
- data/vendor/cldr/common/main/bo_IN.xml +10 -0
- data/vendor/cldr/common/main/bs.xml +330 -0
- data/vendor/cldr/common/main/bs_BA.xml +10 -0
- data/vendor/cldr/common/main/byn.xml +502 -0
- data/vendor/cldr/common/main/byn_ER.xml +10 -0
- data/vendor/cldr/common/main/ca.xml +3284 -0
- data/vendor/cldr/common/main/ca_ES.xml +10 -0
- data/vendor/cldr/common/main/cch.xml +189 -0
- data/vendor/cldr/common/main/cch_NG.xml +10 -0
- data/vendor/cldr/common/main/cop.xml +201 -0
- data/vendor/cldr/common/main/cs.xml +2588 -0
- data/vendor/cldr/common/main/cs_CZ.xml +10 -0
- data/vendor/cldr/common/main/cy.xml +783 -0
- data/vendor/cldr/common/main/cy_GB.xml +10 -0
- data/vendor/cldr/common/main/da.xml +3379 -0
- data/vendor/cldr/common/main/da_DK.xml +10 -0
- data/vendor/cldr/common/main/de.xml +3092 -0
- data/vendor/cldr/common/main/de_AT.xml +70 -0
- data/vendor/cldr/common/main/de_BE.xml +115 -0
- data/vendor/cldr/common/main/de_CH.xml +65 -0
- data/vendor/cldr/common/main/de_DE.xml +10 -0
- data/vendor/cldr/common/main/de_LI.xml +23 -0
- data/vendor/cldr/common/main/de_LU.xml +19 -0
- data/vendor/cldr/common/main/dv.xml +228 -0
- data/vendor/cldr/common/main/dv_MV.xml +10 -0
- data/vendor/cldr/common/main/dz.xml +412 -0
- data/vendor/cldr/common/main/dz_BT.xml +10 -0
- data/vendor/cldr/common/main/ee.xml +197 -0
- data/vendor/cldr/common/main/ee_GH.xml +10 -0
- data/vendor/cldr/common/main/ee_TG.xml +10 -0
- data/vendor/cldr/common/main/el.xml +4148 -0
- data/vendor/cldr/common/main/el_CY.xml +20 -0
- data/vendor/cldr/common/main/el_GR.xml +10 -0
- data/vendor/cldr/common/main/el_POLYTON.xml +542 -0
- data/vendor/cldr/common/main/en.xml +4150 -0
- data/vendor/cldr/common/main/en_AS.xml +10 -0
- data/vendor/cldr/common/main/en_AU.xml +161 -0
- data/vendor/cldr/common/main/en_BE.xml +159 -0
- data/vendor/cldr/common/main/en_BW.xml +131 -0
- data/vendor/cldr/common/main/en_BZ.xml +161 -0
- data/vendor/cldr/common/main/en_CA.xml +127 -0
- data/vendor/cldr/common/main/en_Dsrt.xml +1029 -0
- data/vendor/cldr/common/main/en_Dsrt_US.xml +11 -0
- data/vendor/cldr/common/main/en_GB.xml +170 -0
- data/vendor/cldr/common/main/en_GU.xml +10 -0
- data/vendor/cldr/common/main/en_HK.xml +57 -0
- data/vendor/cldr/common/main/en_IE.xml +150 -0
- data/vendor/cldr/common/main/en_IN.xml +146 -0
- data/vendor/cldr/common/main/en_JM.xml +27 -0
- data/vendor/cldr/common/main/en_MH.xml +10 -0
- data/vendor/cldr/common/main/en_MP.xml +10 -0
- data/vendor/cldr/common/main/en_MT.xml +155 -0
- data/vendor/cldr/common/main/en_NA.xml +27 -0
- data/vendor/cldr/common/main/en_NZ.xml +158 -0
- data/vendor/cldr/common/main/en_PH.xml +17 -0
- data/vendor/cldr/common/main/en_PK.xml +154 -0
- data/vendor/cldr/common/main/en_SG.xml +48 -0
- data/vendor/cldr/common/main/en_Shaw.xml +188 -0
- data/vendor/cldr/common/main/en_TT.xml +27 -0
- data/vendor/cldr/common/main/en_UM.xml +10 -0
- data/vendor/cldr/common/main/en_US.xml +10 -0
- data/vendor/cldr/common/main/en_US_POSIX.xml +54 -0
- data/vendor/cldr/common/main/en_VI.xml +10 -0
- data/vendor/cldr/common/main/en_ZA.xml +153 -0
- data/vendor/cldr/common/main/en_ZW.xml +145 -0
- data/vendor/cldr/common/main/eo.xml +636 -0
- data/vendor/cldr/common/main/es.xml +3746 -0
- data/vendor/cldr/common/main/es_AR.xml +130 -0
- data/vendor/cldr/common/main/es_BO.xml +10 -0
- data/vendor/cldr/common/main/es_CL.xml +160 -0
- data/vendor/cldr/common/main/es_CO.xml +128 -0
- data/vendor/cldr/common/main/es_CR.xml +10 -0
- data/vendor/cldr/common/main/es_DO.xml +16 -0
- data/vendor/cldr/common/main/es_EC.xml +123 -0
- data/vendor/cldr/common/main/es_ES.xml +10 -0
- data/vendor/cldr/common/main/es_GT.xml +115 -0
- data/vendor/cldr/common/main/es_HN.xml +115 -0
- data/vendor/cldr/common/main/es_MX.xml +21 -0
- data/vendor/cldr/common/main/es_NI.xml +16 -0
- data/vendor/cldr/common/main/es_PA.xml +110 -0
- data/vendor/cldr/common/main/es_PE.xml +112 -0
- data/vendor/cldr/common/main/es_PR.xml +115 -0
- data/vendor/cldr/common/main/es_PY.xml +19 -0
- data/vendor/cldr/common/main/es_SV.xml +16 -0
- data/vendor/cldr/common/main/es_US.xml +148 -0
- data/vendor/cldr/common/main/es_UY.xml +24 -0
- data/vendor/cldr/common/main/es_VE.xml +19 -0
- data/vendor/cldr/common/main/et.xml +2045 -0
- data/vendor/cldr/common/main/et_EE.xml +10 -0
- data/vendor/cldr/common/main/eu.xml +1004 -0
- data/vendor/cldr/common/main/eu_ES.xml +10 -0
- data/vendor/cldr/common/main/fa.xml +3334 -0
- data/vendor/cldr/common/main/fa_AF.xml +309 -0
- data/vendor/cldr/common/main/fa_IR.xml +10 -0
- data/vendor/cldr/common/main/fi.xml +3870 -0
- data/vendor/cldr/common/main/fi_FI.xml +10 -0
- data/vendor/cldr/common/main/fil.xml +1031 -0
- data/vendor/cldr/common/main/fil_PH.xml +10 -0
- data/vendor/cldr/common/main/fo.xml +799 -0
- data/vendor/cldr/common/main/fo_FO.xml +10 -0
- data/vendor/cldr/common/main/fr.xml +5705 -0
- data/vendor/cldr/common/main/fr_BE.xml +104 -0
- data/vendor/cldr/common/main/fr_CA.xml +152 -0
- data/vendor/cldr/common/main/fr_CH.xml +125 -0
- data/vendor/cldr/common/main/fr_FR.xml +10 -0
- data/vendor/cldr/common/main/fr_LU.xml +23 -0
- data/vendor/cldr/common/main/fr_MC.xml +10 -0
- data/vendor/cldr/common/main/fr_SN.xml +10 -0
- data/vendor/cldr/common/main/fur.xml +1226 -0
- data/vendor/cldr/common/main/fur_IT.xml +10 -0
- data/vendor/cldr/common/main/ga.xml +1504 -0
- data/vendor/cldr/common/main/ga_IE.xml +10 -0
- data/vendor/cldr/common/main/gaa.xml +194 -0
- data/vendor/cldr/common/main/gaa_GH.xml +10 -0
- data/vendor/cldr/common/main/gez.xml +504 -0
- data/vendor/cldr/common/main/gez_ER.xml +10 -0
- data/vendor/cldr/common/main/gez_ET.xml +10 -0
- data/vendor/cldr/common/main/gl.xml +1364 -0
- data/vendor/cldr/common/main/gl_ES.xml +10 -0
- data/vendor/cldr/common/main/gsw.xml +2921 -0
- data/vendor/cldr/common/main/gsw_CH.xml +10 -0
- data/vendor/cldr/common/main/gu.xml +1165 -0
- data/vendor/cldr/common/main/gu_IN.xml +10 -0
- data/vendor/cldr/common/main/gv.xml +201 -0
- data/vendor/cldr/common/main/gv_GB.xml +10 -0
- data/vendor/cldr/common/main/ha.xml +380 -0
- data/vendor/cldr/common/main/ha_Arab.xml +95 -0
- data/vendor/cldr/common/main/ha_Arab_NG.xml +11 -0
- data/vendor/cldr/common/main/ha_Arab_SD.xml +11 -0
- data/vendor/cldr/common/main/ha_GH.xml +11 -0
- data/vendor/cldr/common/main/ha_Latn.xml +10 -0
- data/vendor/cldr/common/main/ha_Latn_GH.xml +11 -0
- data/vendor/cldr/common/main/ha_Latn_NE.xml +11 -0
- data/vendor/cldr/common/main/ha_Latn_NG.xml +11 -0
- data/vendor/cldr/common/main/ha_NE.xml +11 -0
- data/vendor/cldr/common/main/ha_NG.xml +11 -0
- data/vendor/cldr/common/main/ha_SD.xml +11 -0
- data/vendor/cldr/common/main/haw.xml +219 -0
- data/vendor/cldr/common/main/haw_US.xml +10 -0
- data/vendor/cldr/common/main/he.xml +2809 -0
- data/vendor/cldr/common/main/he_IL.xml +10 -0
- data/vendor/cldr/common/main/hi.xml +3376 -0
- data/vendor/cldr/common/main/hi_IN.xml +10 -0
- data/vendor/cldr/common/main/hr.xml +3765 -0
- data/vendor/cldr/common/main/hr_HR.xml +10 -0
- data/vendor/cldr/common/main/hu.xml +3767 -0
- data/vendor/cldr/common/main/hu_HU.xml +10 -0
- data/vendor/cldr/common/main/hy.xml +594 -0
- data/vendor/cldr/common/main/hy_AM.xml +10 -0
- data/vendor/cldr/common/main/hy_AM_REVISED.xml +40 -0
- data/vendor/cldr/common/main/ia.xml +553 -0
- data/vendor/cldr/common/main/id.xml +1342 -0
- data/vendor/cldr/common/main/id_ID.xml +10 -0
- data/vendor/cldr/common/main/ig.xml +198 -0
- data/vendor/cldr/common/main/ig_NG.xml +10 -0
- data/vendor/cldr/common/main/ii.xml +255 -0
- data/vendor/cldr/common/main/ii_CN.xml +10 -0
- data/vendor/cldr/common/main/in.xml +10 -0
- data/vendor/cldr/common/main/is.xml +2394 -0
- data/vendor/cldr/common/main/is_IS.xml +10 -0
- data/vendor/cldr/common/main/it.xml +3028 -0
- data/vendor/cldr/common/main/it_CH.xml +117 -0
- data/vendor/cldr/common/main/it_IT.xml +10 -0
- data/vendor/cldr/common/main/iu.xml +182 -0
- data/vendor/cldr/common/main/iw.xml +10 -0
- data/vendor/cldr/common/main/ja.xml +3816 -0
- data/vendor/cldr/common/main/ja_JP.xml +10 -0
- data/vendor/cldr/common/main/ka.xml +2160 -0
- data/vendor/cldr/common/main/ka_GE.xml +10 -0
- data/vendor/cldr/common/main/kaj.xml +189 -0
- data/vendor/cldr/common/main/kaj_NG.xml +10 -0
- data/vendor/cldr/common/main/kam.xml +188 -0
- data/vendor/cldr/common/main/kam_KE.xml +10 -0
- data/vendor/cldr/common/main/kcg.xml +189 -0
- data/vendor/cldr/common/main/kcg_NG.xml +10 -0
- data/vendor/cldr/common/main/kfo.xml +189 -0
- data/vendor/cldr/common/main/kfo_CI.xml +10 -0
- data/vendor/cldr/common/main/kk.xml +389 -0
- data/vendor/cldr/common/main/kk_Cyrl.xml +10 -0
- data/vendor/cldr/common/main/kk_Cyrl_KZ.xml +11 -0
- data/vendor/cldr/common/main/kk_KZ.xml +11 -0
- data/vendor/cldr/common/main/kl.xml +208 -0
- data/vendor/cldr/common/main/kl_GL.xml +10 -0
- data/vendor/cldr/common/main/km.xml +668 -0
- data/vendor/cldr/common/main/km_KH.xml +10 -0
- data/vendor/cldr/common/main/kn.xml +1166 -0
- data/vendor/cldr/common/main/kn_IN.xml +10 -0
- data/vendor/cldr/common/main/ko.xml +3961 -0
- data/vendor/cldr/common/main/ko_KR.xml +10 -0
- data/vendor/cldr/common/main/kok.xml +364 -0
- data/vendor/cldr/common/main/kok_IN.xml +10 -0
- data/vendor/cldr/common/main/kpe.xml +188 -0
- data/vendor/cldr/common/main/kpe_GN.xml +17 -0
- data/vendor/cldr/common/main/kpe_LR.xml +10 -0
- data/vendor/cldr/common/main/ku.xml +159 -0
- data/vendor/cldr/common/main/ku_Arab.xml +10 -0
- data/vendor/cldr/common/main/ku_Arab_IQ.xml +11 -0
- data/vendor/cldr/common/main/ku_Arab_IR.xml +11 -0
- data/vendor/cldr/common/main/ku_Arab_SY.xml +11 -0
- data/vendor/cldr/common/main/ku_IQ.xml +11 -0
- data/vendor/cldr/common/main/ku_IR.xml +11 -0
- data/vendor/cldr/common/main/ku_Latn.xml +190 -0
- data/vendor/cldr/common/main/ku_Latn_TR.xml +11 -0
- data/vendor/cldr/common/main/ku_SY.xml +11 -0
- data/vendor/cldr/common/main/ku_TR.xml +11 -0
- data/vendor/cldr/common/main/kw.xml +201 -0
- data/vendor/cldr/common/main/kw_GB.xml +10 -0
- data/vendor/cldr/common/main/ky.xml +276 -0
- data/vendor/cldr/common/main/ky_KG.xml +10 -0
- data/vendor/cldr/common/main/ln.xml +492 -0
- data/vendor/cldr/common/main/ln_CD.xml +10 -0
- data/vendor/cldr/common/main/ln_CG.xml +10 -0
- data/vendor/cldr/common/main/lo.xml +624 -0
- data/vendor/cldr/common/main/lo_LA.xml +10 -0
- data/vendor/cldr/common/main/lt.xml +3394 -0
- data/vendor/cldr/common/main/lt_LT.xml +10 -0
- data/vendor/cldr/common/main/lv.xml +3086 -0
- data/vendor/cldr/common/main/lv_LV.xml +10 -0
- data/vendor/cldr/common/main/mk.xml +2323 -0
- data/vendor/cldr/common/main/mk_MK.xml +10 -0
- data/vendor/cldr/common/main/ml.xml +4443 -0
- data/vendor/cldr/common/main/ml_IN.xml +10 -0
- data/vendor/cldr/common/main/mn.xml +320 -0
- data/vendor/cldr/common/main/mn_CN.xml +11 -0
- data/vendor/cldr/common/main/mn_Cyrl.xml +10 -0
- data/vendor/cldr/common/main/mn_Cyrl_MN.xml +11 -0
- data/vendor/cldr/common/main/mn_MN.xml +11 -0
- data/vendor/cldr/common/main/mn_Mong.xml +17 -0
- data/vendor/cldr/common/main/mn_Mong_CN.xml +11 -0
- data/vendor/cldr/common/main/mo.xml +10 -0
- data/vendor/cldr/common/main/mr.xml +1199 -0
- data/vendor/cldr/common/main/mr_IN.xml +10 -0
- data/vendor/cldr/common/main/ms.xml +558 -0
- data/vendor/cldr/common/main/ms_BN.xml +135 -0
- data/vendor/cldr/common/main/ms_MY.xml +10 -0
- data/vendor/cldr/common/main/mt.xml +1146 -0
- data/vendor/cldr/common/main/mt_MT.xml +10 -0
- data/vendor/cldr/common/main/my.xml +1590 -0
- data/vendor/cldr/common/main/my_MM.xml +10 -0
- data/vendor/cldr/common/main/nb.xml +3300 -0
- data/vendor/cldr/common/main/nb_NO.xml +10 -0
- data/vendor/cldr/common/main/nds.xml +1151 -0
- data/vendor/cldr/common/main/nds_DE.xml +10 -0
- data/vendor/cldr/common/main/ne.xml +1387 -0
- data/vendor/cldr/common/main/ne_IN.xml +10 -0
- data/vendor/cldr/common/main/ne_NP.xml +10 -0
- data/vendor/cldr/common/main/nl.xml +3888 -0
- data/vendor/cldr/common/main/nl_BE.xml +81 -0
- data/vendor/cldr/common/main/nl_NL.xml +10 -0
- data/vendor/cldr/common/main/nn.xml +2999 -0
- data/vendor/cldr/common/main/nn_NO.xml +10 -0
- data/vendor/cldr/common/main/no.xml +10 -0
- data/vendor/cldr/common/main/nr.xml +227 -0
- data/vendor/cldr/common/main/nr_ZA.xml +10 -0
- data/vendor/cldr/common/main/nso.xml +229 -0
- data/vendor/cldr/common/main/nso_ZA.xml +10 -0
- data/vendor/cldr/common/main/ny.xml +193 -0
- data/vendor/cldr/common/main/ny_MW.xml +10 -0
- data/vendor/cldr/common/main/oc.xml +280 -0
- data/vendor/cldr/common/main/oc_FR.xml +10 -0
- data/vendor/cldr/common/main/om.xml +328 -0
- data/vendor/cldr/common/main/om_ET.xml +10 -0
- data/vendor/cldr/common/main/om_KE.xml +10 -0
- data/vendor/cldr/common/main/or.xml +1146 -0
- data/vendor/cldr/common/main/or_IN.xml +10 -0
- data/vendor/cldr/common/main/pa.xml +314 -0
- data/vendor/cldr/common/main/pa_Arab.xml +135 -0
- data/vendor/cldr/common/main/pa_Arab_PK.xml +11 -0
- data/vendor/cldr/common/main/pa_Guru.xml +10 -0
- data/vendor/cldr/common/main/pa_Guru_IN.xml +11 -0
- data/vendor/cldr/common/main/pa_IN.xml +11 -0
- data/vendor/cldr/common/main/pa_PK.xml +11 -0
- data/vendor/cldr/common/main/pl.xml +3124 -0
- data/vendor/cldr/common/main/pl_PL.xml +10 -0
- data/vendor/cldr/common/main/ps.xml +425 -0
- data/vendor/cldr/common/main/ps_AF.xml +10 -0
- data/vendor/cldr/common/main/pt.xml +4373 -0
- data/vendor/cldr/common/main/pt_BR.xml +10 -0
- data/vendor/cldr/common/main/pt_PT.xml +1866 -0
- data/vendor/cldr/common/main/ro.xml +2515 -0
- data/vendor/cldr/common/main/ro_MD.xml +10 -0
- data/vendor/cldr/common/main/ro_RO.xml +10 -0
- data/vendor/cldr/common/main/root.xml +3193 -0
- data/vendor/cldr/common/main/ru.xml +3992 -0
- data/vendor/cldr/common/main/ru_RU.xml +10 -0
- data/vendor/cldr/common/main/ru_UA.xml +117 -0
- data/vendor/cldr/common/main/rw.xml +306 -0
- data/vendor/cldr/common/main/rw_RW.xml +10 -0
- data/vendor/cldr/common/main/sa.xml +152 -0
- data/vendor/cldr/common/main/sa_IN.xml +10 -0
- data/vendor/cldr/common/main/se.xml +745 -0
- data/vendor/cldr/common/main/se_FI.xml +250 -0
- data/vendor/cldr/common/main/se_NO.xml +10 -0
- data/vendor/cldr/common/main/sh.xml +10 -0
- data/vendor/cldr/common/main/sh_BA.xml +11 -0
- data/vendor/cldr/common/main/sh_CS.xml +11 -0
- data/vendor/cldr/common/main/sh_YU.xml +11 -0
- data/vendor/cldr/common/main/si.xml +242 -0
- data/vendor/cldr/common/main/si_LK.xml +10 -0
- data/vendor/cldr/common/main/sid.xml +249 -0
- data/vendor/cldr/common/main/sid_ET.xml +10 -0
- data/vendor/cldr/common/main/sk.xml +1923 -0
- data/vendor/cldr/common/main/sk_SK.xml +10 -0
- data/vendor/cldr/common/main/sl.xml +2573 -0
- data/vendor/cldr/common/main/sl_SI.xml +10 -0
- data/vendor/cldr/common/main/so.xml +560 -0
- data/vendor/cldr/common/main/so_DJ.xml +10 -0
- data/vendor/cldr/common/main/so_ET.xml +10 -0
- data/vendor/cldr/common/main/so_KE.xml +10 -0
- data/vendor/cldr/common/main/so_SO.xml +10 -0
- data/vendor/cldr/common/main/sq.xml +657 -0
- data/vendor/cldr/common/main/sq_AL.xml +10 -0
- data/vendor/cldr/common/main/sr.xml +5983 -0
- data/vendor/cldr/common/main/sr_BA.xml +11 -0
- data/vendor/cldr/common/main/sr_CS.xml +11 -0
- data/vendor/cldr/common/main/sr_Cyrl.xml +10 -0
- data/vendor/cldr/common/main/sr_Cyrl_BA.xml +104 -0
- data/vendor/cldr/common/main/sr_Cyrl_CS.xml +12 -0
- data/vendor/cldr/common/main/sr_Cyrl_ME.xml +11 -0
- data/vendor/cldr/common/main/sr_Cyrl_RS.xml +11 -0
- data/vendor/cldr/common/main/sr_Cyrl_YU.xml +12 -0
- data/vendor/cldr/common/main/sr_Latn.xml +5382 -0
- data/vendor/cldr/common/main/sr_Latn_BA.xml +11 -0
- data/vendor/cldr/common/main/sr_Latn_CS.xml +12 -0
- data/vendor/cldr/common/main/sr_Latn_ME.xml +55 -0
- data/vendor/cldr/common/main/sr_Latn_RS.xml +11 -0
- data/vendor/cldr/common/main/sr_Latn_YU.xml +12 -0
- data/vendor/cldr/common/main/sr_ME.xml +11 -0
- data/vendor/cldr/common/main/sr_RS.xml +11 -0
- data/vendor/cldr/common/main/sr_YU.xml +11 -0
- data/vendor/cldr/common/main/ss.xml +231 -0
- data/vendor/cldr/common/main/ss_SZ.xml +11 -0
- data/vendor/cldr/common/main/ss_ZA.xml +10 -0
- data/vendor/cldr/common/main/st.xml +321 -0
- data/vendor/cldr/common/main/st_LS.xml +17 -0
- data/vendor/cldr/common/main/st_ZA.xml +10 -0
- data/vendor/cldr/common/main/sv.xml +5088 -0
- data/vendor/cldr/common/main/sv_FI.xml +48 -0
- data/vendor/cldr/common/main/sv_SE.xml +10 -0
- data/vendor/cldr/common/main/sw.xml +400 -0
- data/vendor/cldr/common/main/sw_KE.xml +19 -0
- data/vendor/cldr/common/main/sw_TZ.xml +10 -0
- data/vendor/cldr/common/main/syr.xml +129 -0
- data/vendor/cldr/common/main/syr_SY.xml +10 -0
- data/vendor/cldr/common/main/ta.xml +1195 -0
- data/vendor/cldr/common/main/ta_IN.xml +10 -0
- data/vendor/cldr/common/main/te.xml +1159 -0
- data/vendor/cldr/common/main/te_IN.xml +10 -0
- data/vendor/cldr/common/main/tg.xml +224 -0
- data/vendor/cldr/common/main/tg_Cyrl.xml +10 -0
- data/vendor/cldr/common/main/tg_Cyrl_TJ.xml +11 -0
- data/vendor/cldr/common/main/tg_TJ.xml +11 -0
- data/vendor/cldr/common/main/th.xml +4466 -0
- data/vendor/cldr/common/main/th_TH.xml +10 -0
- data/vendor/cldr/common/main/ti.xml +326 -0
- data/vendor/cldr/common/main/ti_ER.xml +124 -0
- data/vendor/cldr/common/main/ti_ET.xml +10 -0
- data/vendor/cldr/common/main/tig.xml +501 -0
- data/vendor/cldr/common/main/tig_ER.xml +10 -0
- data/vendor/cldr/common/main/tl.xml +10 -0
- data/vendor/cldr/common/main/tn.xml +313 -0
- data/vendor/cldr/common/main/tn_ZA.xml +10 -0
- data/vendor/cldr/common/main/to.xml +613 -0
- data/vendor/cldr/common/main/to_TO.xml +10 -0
- data/vendor/cldr/common/main/tr.xml +3782 -0
- data/vendor/cldr/common/main/tr_TR.xml +10 -0
- data/vendor/cldr/common/main/trv.xml +562 -0
- data/vendor/cldr/common/main/trv_TW.xml +10 -0
- data/vendor/cldr/common/main/ts.xml +173 -0
- data/vendor/cldr/common/main/ts_ZA.xml +10 -0
- data/vendor/cldr/common/main/tt.xml +105 -0
- data/vendor/cldr/common/main/tt_RU.xml +10 -0
- data/vendor/cldr/common/main/ug.xml +40 -0
- data/vendor/cldr/common/main/ug_Arab.xml +10 -0
- data/vendor/cldr/common/main/ug_Arab_CN.xml +11 -0
- data/vendor/cldr/common/main/ug_CN.xml +11 -0
- data/vendor/cldr/common/main/uk.xml +3855 -0
- data/vendor/cldr/common/main/uk_UA.xml +10 -0
- data/vendor/cldr/common/main/ur.xml +1027 -0
- data/vendor/cldr/common/main/ur_IN.xml +33 -0
- data/vendor/cldr/common/main/ur_PK.xml +10 -0
- data/vendor/cldr/common/main/uz.xml +235 -0
- data/vendor/cldr/common/main/uz_AF.xml +11 -0
- data/vendor/cldr/common/main/uz_Arab.xml +172 -0
- data/vendor/cldr/common/main/uz_Arab_AF.xml +12 -0
- data/vendor/cldr/common/main/uz_Cyrl.xml +11 -0
- data/vendor/cldr/common/main/uz_Cyrl_UZ.xml +11 -0
- data/vendor/cldr/common/main/uz_Latn.xml +170 -0
- data/vendor/cldr/common/main/uz_Latn_UZ.xml +11 -0
- data/vendor/cldr/common/main/uz_UZ.xml +11 -0
- data/vendor/cldr/common/main/ve.xml +194 -0
- data/vendor/cldr/common/main/ve_ZA.xml +10 -0
- data/vendor/cldr/common/main/vi.xml +1065 -0
- data/vendor/cldr/common/main/vi_VN.xml +10 -0
- data/vendor/cldr/common/main/wal.xml +350 -0
- data/vendor/cldr/common/main/wal_ET.xml +10 -0
- data/vendor/cldr/common/main/wo.xml +42 -0
- data/vendor/cldr/common/main/wo_Latn.xml +10 -0
- data/vendor/cldr/common/main/wo_Latn_SN.xml +11 -0
- data/vendor/cldr/common/main/wo_SN.xml +10 -0
- data/vendor/cldr/common/main/xh.xml +261 -0
- data/vendor/cldr/common/main/xh_ZA.xml +10 -0
- data/vendor/cldr/common/main/yo.xml +240 -0
- data/vendor/cldr/common/main/yo_NG.xml +10 -0
- data/vendor/cldr/common/main/zh.xml +4612 -0
- data/vendor/cldr/common/main/zh_CN.xml +11 -0
- data/vendor/cldr/common/main/zh_HK.xml +11 -0
- data/vendor/cldr/common/main/zh_Hans.xml +10 -0
- data/vendor/cldr/common/main/zh_Hans_CN.xml +11 -0
- data/vendor/cldr/common/main/zh_Hans_HK.xml +18 -0
- data/vendor/cldr/common/main/zh_Hans_MO.xml +11 -0
- data/vendor/cldr/common/main/zh_Hans_SG.xml +88 -0
- data/vendor/cldr/common/main/zh_Hant.xml +3791 -0
- data/vendor/cldr/common/main/zh_Hant_HK.xml +191 -0
- data/vendor/cldr/common/main/zh_Hant_MO.xml +117 -0
- data/vendor/cldr/common/main/zh_Hant_TW.xml +11 -0
- data/vendor/cldr/common/main/zh_MO.xml +11 -0
- data/vendor/cldr/common/main/zh_SG.xml +11 -0
- data/vendor/cldr/common/main/zh_TW.xml +11 -0
- data/vendor/cldr/common/main/zu.xml +334 -0
- data/vendor/cldr/common/main/zu_ZA.xml +10 -0
- data/vendor/cldr/common/rbnf/af.xml +105 -0
- data/vendor/cldr/common/rbnf/am.xml +68 -0
- data/vendor/cldr/common/rbnf/ar.xml +247 -0
- data/vendor/cldr/common/rbnf/az.xml +109 -0
- data/vendor/cldr/common/rbnf/be.xml +159 -0
- data/vendor/cldr/common/rbnf/bg.xml +105 -0
- data/vendor/cldr/common/rbnf/bs.xml +129 -0
- data/vendor/cldr/common/rbnf/ca.xml +278 -0
- data/vendor/cldr/common/rbnf/cs.xml +138 -0
- data/vendor/cldr/common/rbnf/cy.xml +116 -0
- data/vendor/cldr/common/rbnf/da.xml +81 -0
- data/vendor/cldr/common/rbnf/de.xml +130 -0
- data/vendor/cldr/common/rbnf/el.xml +310 -0
- data/vendor/cldr/common/rbnf/en.xml +174 -0
- data/vendor/cldr/common/rbnf/eo.xml +52 -0
- data/vendor/cldr/common/rbnf/es.xml +266 -0
- data/vendor/cldr/common/rbnf/et.xml +51 -0
- data/vendor/cldr/common/rbnf/fa.xml +64 -0
- data/vendor/cldr/common/rbnf/fa_AF.xml +63 -0
- data/vendor/cldr/common/rbnf/fi.xml +53 -0
- data/vendor/cldr/common/rbnf/fil.xml +70 -0
- data/vendor/cldr/common/rbnf/fo.xml +124 -0
- data/vendor/cldr/common/rbnf/fr.xml +147 -0
- data/vendor/cldr/common/rbnf/fr_BE.xml +152 -0
- data/vendor/cldr/common/rbnf/fr_CH.xml +152 -0
- data/vendor/cldr/common/rbnf/ga.xml +240 -0
- data/vendor/cldr/common/rbnf/he.xml +401 -0
- data/vendor/cldr/common/rbnf/hi.xml +137 -0
- data/vendor/cldr/common/rbnf/hr.xml +159 -0
- data/vendor/cldr/common/rbnf/hu.xml +55 -0
- data/vendor/cldr/common/rbnf/hy.xml +50 -0
- data/vendor/cldr/common/rbnf/id.xml +57 -0
- data/vendor/cldr/common/rbnf/is.xml +124 -0
- data/vendor/cldr/common/rbnf/it.xml +237 -0
- data/vendor/cldr/common/rbnf/ja.xml +78 -0
- data/vendor/cldr/common/rbnf/ka.xml +76 -0
- data/vendor/cldr/common/rbnf/kl.xml +82 -0
- data/vendor/cldr/common/rbnf/ko.xml +82 -0
- data/vendor/cldr/common/rbnf/lo.xml +57 -0
- data/vendor/cldr/common/rbnf/lt.xml +89 -0
- data/vendor/cldr/common/rbnf/lv.xml +94 -0
- data/vendor/cldr/common/rbnf/mk.xml +105 -0
- data/vendor/cldr/common/rbnf/ms.xml +60 -0
- data/vendor/cldr/common/rbnf/mt.xml +418 -0
- data/vendor/cldr/common/rbnf/nb.xml +80 -0
- data/vendor/cldr/common/rbnf/nci.xml +109 -0
- data/vendor/cldr/common/rbnf/nl.xml +112 -0
- data/vendor/cldr/common/rbnf/nn.xml +79 -0
- data/vendor/cldr/common/rbnf/pl.xml +131 -0
- data/vendor/cldr/common/rbnf/pt.xml +221 -0
- data/vendor/cldr/common/rbnf/pt_PT.xml +206 -0
- data/vendor/cldr/common/rbnf/ro.xml +101 -0
- data/vendor/cldr/common/rbnf/root.xml +527 -0
- data/vendor/cldr/common/rbnf/ru.xml +144 -0
- data/vendor/cldr/common/rbnf/se.xml +47 -0
- data/vendor/cldr/common/rbnf/sk.xml +117 -0
- data/vendor/cldr/common/rbnf/sl.xml +141 -0
- data/vendor/cldr/common/rbnf/sq.xml +75 -0
- data/vendor/cldr/common/rbnf/sr.xml +161 -0
- data/vendor/cldr/common/rbnf/sr_Latn.xml +160 -0
- data/vendor/cldr/common/rbnf/sv.xml +241 -0
- data/vendor/cldr/common/rbnf/ta.xml +71 -0
- data/vendor/cldr/common/rbnf/th.xml +57 -0
- data/vendor/cldr/common/rbnf/tr.xml +121 -0
- data/vendor/cldr/common/rbnf/uk.xml +159 -0
- data/vendor/cldr/common/rbnf/vi.xml +51 -0
- data/vendor/cldr/common/rbnf/zh.xml +146 -0
- data/vendor/cldr/common/rbnf/zh_Hant.xml +147 -0
- data/vendor/cldr/common/segments/el.xml +18 -0
- data/vendor/cldr/common/segments/en_US_POSIX.xml +22 -0
- data/vendor/cldr/common/segments/ja.xml +23 -0
- data/vendor/cldr/common/segments/root.xml +629 -0
- data/vendor/cldr/common/segments/th.xml +25 -0
- data/vendor/cldr/common/supplemental/characters.xml +491 -0
- data/vendor/cldr/common/supplemental/likelySubtags.xml +463 -0
- data/vendor/cldr/common/supplemental/metazoneInfo.xml +1409 -0
- data/vendor/cldr/common/supplemental/numberingSystems.xml +42 -0
- data/vendor/cldr/common/supplemental/plurals.xml +76 -0
- data/vendor/cldr/common/supplemental/postalCodeData.xml +166 -0
- data/vendor/cldr/common/supplemental/supplementalData.xml +5611 -0
- data/vendor/cldr/common/supplemental/supplementalMetadata.xml +744 -0
- data/vendor/cldr/common/supplemental/telephoneCodeData.xml +846 -0
- data/vendor/cldr/common/transforms/Amharic-Latin-BGN.xml +580 -0
- data/vendor/cldr/common/transforms/Any-Accents.xml +277 -0
- data/vendor/cldr/common/transforms/Any-Publishing.xml +29 -0
- data/vendor/cldr/common/transforms/Arabic-Latin-BGN.xml +234 -0
- data/vendor/cldr/common/transforms/Arabic-Latin.xml +138 -0
- data/vendor/cldr/common/transforms/Armenian-Latin-BGN.xml +285 -0
- data/vendor/cldr/common/transforms/Azerbaijani-Latin-BGN.xml +212 -0
- data/vendor/cldr/common/transforms/Belarusian-Latin-BGN.xml +285 -0
- data/vendor/cldr/common/transforms/Bengali-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-InterIndic.xml +106 -0
- data/vendor/cldr/common/transforms/Bengali-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Bengali-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Bulgarian-Latin-BGN.xml +271 -0
- data/vendor/cldr/common/transforms/CanadianAboriginal-Latin.xml +191 -0
- data/vendor/cldr/common/transforms/Cyrillic-Latin.xml +277 -0
- data/vendor/cldr/common/transforms/Devanagari-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-InterIndic.xml +119 -0
- data/vendor/cldr/common/transforms/Devanagari-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Devanagari-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Fullwidth-Halfwidth.xml +268 -0
- data/vendor/cldr/common/transforms/Georgian-Latin-BGN.xml +96 -0
- data/vendor/cldr/common/transforms/Georgian-Latin.xml +60 -0
- data/vendor/cldr/common/transforms/Greek-Latin-BGN.xml +481 -0
- data/vendor/cldr/common/transforms/Greek-Latin.xml +257 -0
- data/vendor/cldr/common/transforms/Greek_Latin_UNGEGN.xml +186 -0
- data/vendor/cldr/common/transforms/Gujarati-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-InterIndic.xml +95 -0
- data/vendor/cldr/common/transforms/Gujarati-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Gujarati-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-InterIndic.xml +95 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Gurmukhi-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Han-Latin.xml +1439 -0
- data/vendor/cldr/common/transforms/Han-Spacedhan.xml +21 -0
- data/vendor/cldr/common/transforms/Hangul-Latin.xml +13 -0
- data/vendor/cldr/common/transforms/Hebrew-Latin-BGN.xml +132 -0
- data/vendor/cldr/common/transforms/Hebrew-Latin.xml +95 -0
- data/vendor/cldr/common/transforms/Hiragana-Katakana.xml +186 -0
- data/vendor/cldr/common/transforms/Hiragana-Latin.xml +16 -0
- data/vendor/cldr/common/transforms/InterIndic-Bengali.xml +142 -0
- data/vendor/cldr/common/transforms/InterIndic-Devanagari.xml +159 -0
- data/vendor/cldr/common/transforms/InterIndic-Gujarati.xml +143 -0
- data/vendor/cldr/common/transforms/InterIndic-Gurmukhi.xml +149 -0
- data/vendor/cldr/common/transforms/InterIndic-Kannada.xml +144 -0
- data/vendor/cldr/common/transforms/InterIndic-Latin.xml +497 -0
- data/vendor/cldr/common/transforms/InterIndic-Malayalam.xml +144 -0
- data/vendor/cldr/common/transforms/InterIndic-Oriya.xml +142 -0
- data/vendor/cldr/common/transforms/InterIndic-Tamil.xml +153 -0
- data/vendor/cldr/common/transforms/InterIndic-Telugu.xml +143 -0
- data/vendor/cldr/common/transforms/Jamo-Latin.xml +13 -0
- data/vendor/cldr/common/transforms/Kannada-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-InterIndic.xml +94 -0
- data/vendor/cldr/common/transforms/Kannada-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Kannada-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Katakana-Latin-BGN.xml +443 -0
- data/vendor/cldr/common/transforms/Kazakh-Latin-BGN.xml +366 -0
- data/vendor/cldr/common/transforms/Kirghiz-Latin-BGN.xml +235 -0
- data/vendor/cldr/common/transforms/Korean-Latin-BGN.xml +382 -0
- data/vendor/cldr/common/transforms/Latin-Armenian.xml +91 -0
- data/vendor/cldr/common/transforms/Latin-Bengali.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-ConjoiningJamo.xml +522 -0
- data/vendor/cldr/common/transforms/Latin-Devanagari.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-Ethiopic.xml +358 -0
- data/vendor/cldr/common/transforms/Latin-Gujarati.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-Gurmukhi.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-Hangul.xml +14 -0
- data/vendor/cldr/common/transforms/Latin-InterIndic.xml +384 -0
- data/vendor/cldr/common/transforms/Latin-Jamo.xml +13 -0
- data/vendor/cldr/common/transforms/Latin-Kannada.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-Katakana.xml +389 -0
- data/vendor/cldr/common/transforms/Latin-Malayalam.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-NumericPinyin.xml +36 -0
- data/vendor/cldr/common/transforms/Latin-Oriya.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-Tamil.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-Telugu.xml +15 -0
- data/vendor/cldr/common/transforms/Latin-Thai.xml +14 -0
- data/vendor/cldr/common/transforms/Macedonian-Latin-BGN.xml +198 -0
- data/vendor/cldr/common/transforms/Malayalam-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-InterIndic.xml +88 -0
- data/vendor/cldr/common/transforms/Malayalam-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Malayalam-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Maldivian-Latin-BGN.xml +141 -0
- data/vendor/cldr/common/transforms/Mongolian-Latin-BGN.xml +209 -0
- data/vendor/cldr/common/transforms/Oriya-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-InterIndic.xml +98 -0
- data/vendor/cldr/common/transforms/Oriya-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Oriya-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Pashto-Latin-BGN.xml +262 -0
- data/vendor/cldr/common/transforms/Persian-Latin-BGN.xml +233 -0
- data/vendor/cldr/common/transforms/Pinyin-NumericPinyin.xml +15 -0
- data/vendor/cldr/common/transforms/Russian-Latin-BGN.xml +347 -0
- data/vendor/cldr/common/transforms/Serbian-Latin-BGN.xml +136 -0
- data/vendor/cldr/common/transforms/Simplified-Traditional.xml +3576 -0
- data/vendor/cldr/common/transforms/Syriac-Latin.xml +59 -0
- data/vendor/cldr/common/transforms/Tamil-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-InterIndic.xml +77 -0
- data/vendor/cldr/common/transforms/Tamil-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Tamil-Telugu.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Bengali.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Devanagari.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Gujarati.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Gurmukhi.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-InterIndic.xml +94 -0
- data/vendor/cldr/common/transforms/Telugu-Kannada.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Latin.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Malayalam.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Oriya.xml +14 -0
- data/vendor/cldr/common/transforms/Telugu-Tamil.xml +14 -0
- data/vendor/cldr/common/transforms/Thaana-Latin.xml +440 -0
- data/vendor/cldr/common/transforms/Thai-Latin.xml +16 -0
- data/vendor/cldr/common/transforms/Thai-ThaiLogical.xml +23 -0
- data/vendor/cldr/common/transforms/Thai-ThaiSemi.xml +13 -0
- data/vendor/cldr/common/transforms/ThaiLogical-Latin.xml +153 -0
- data/vendor/cldr/common/transforms/Turkmen-Latin-BGN.xml +334 -0
- data/vendor/cldr/common/transforms/Ukrainian-Latin-BGN.xml +316 -0
- data/vendor/cldr/common/transforms/Uzbek-Latin-BGN.xml +290 -0
- metadata +906 -88
- data/test/cases/backend/cascade_test.rb +0 -66
- data/test/cases/backend/fallbacks_test.rb +0 -57
data/README.textile
CHANGED
@@ -51,6 +51,29 @@ The new i18n gem can be loaded from vendor/plugins like this:
|
|
51
51
|
|
52
52
|
Then you can `reload_i18n!` inside an i18n initializer.
|
53
53
|
|
54
|
+
h2. Tests
|
55
|
+
|
56
|
+
You can run tests both with
|
57
|
+
|
58
|
+
* `rake test` or just `rake`
|
59
|
+
* run any test file directly, e.g. `ruby test/api/simple_test.rb`
|
60
|
+
* run all tests with `ruby test/all.rb`
|
61
|
+
|
62
|
+
The structure of the test suite is a bit unusual as it uses modules to reuse
|
63
|
+
particular tests in different test cases.
|
64
|
+
|
65
|
+
The reason for this is that we need to enforce the I18n API across various
|
66
|
+
combinations of extensions. E.g. the Simple backend alone needs to support
|
67
|
+
the same API as any combination of feature and/or optimization modules included
|
68
|
+
to the Simple backend. We test this by reusing the same API defition (implemented
|
69
|
+
as test methods) in test cases with different setups.
|
70
|
+
|
71
|
+
You can find the test cases that enforce the API in test/api. And you can find
|
72
|
+
the API definition test methods in test/api/tests.
|
73
|
+
|
74
|
+
All other test cases (e.g. as defined in test/backend, test/core\_ext) etc.
|
75
|
+
follow the usual test setup and should be easy to grok.
|
76
|
+
|
54
77
|
h2. Authors
|
55
78
|
|
56
79
|
* "Sven Fuchs":http://www.artweb-design.de
|
@@ -78,4 +101,4 @@ h2. Contributors
|
|
78
101
|
|
79
102
|
h2. License
|
80
103
|
|
81
|
-
MIT License. See the included MIT-
|
104
|
+
MIT License. See the included MIT-LICENSE file.
|
data/Rakefile
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
|
1
3
|
task :default => [:test]
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
+
Rake::TestTask.new(:test) do |t|
|
6
|
+
t.pattern = "#{File.dirname(__FILE__)}/test/all.rb"
|
7
|
+
t.verbose = true
|
5
8
|
end
|
9
|
+
Rake::Task['test'].comment = "Run all i18n tests"
|
6
10
|
|
7
11
|
require File.expand_path("lib/i18n/version", File.dirname(__FILE__))
|
8
12
|
|
data/lib/i18n.rb
CHANGED
@@ -219,12 +219,22 @@ module I18n
|
|
219
219
|
|
220
220
|
# Localizes certain objects, such as dates and numbers to local formatting.
|
221
221
|
def localize(object, options = {})
|
222
|
-
locale = options
|
223
|
-
format = options
|
224
|
-
backend.localize(locale, object, format)
|
222
|
+
locale = options.delete(:locale) || I18n.locale
|
223
|
+
format = options.delete(:format) || :default
|
224
|
+
backend.localize(locale, object, format, options)
|
225
225
|
end
|
226
226
|
alias :l :localize
|
227
227
|
|
228
|
+
# Merges the given locale, key and scope into a single array of keys.
|
229
|
+
# Splits keys that contain dots into multiple keys. Makes sure all
|
230
|
+
# keys are Symbols.
|
231
|
+
def normalize_keys(locale, key, scope, separator = nil)
|
232
|
+
keys = [locale] + Array(scope) + Array(key)
|
233
|
+
keys = keys.map { |k| k.to_s.split(separator || I18n.default_separator) }
|
234
|
+
keys = keys.flatten - ['']
|
235
|
+
keys.map { |k| k.to_sym }
|
236
|
+
end
|
237
|
+
|
228
238
|
# making these private until Ruby 1.9.2 can send to protected methods again
|
229
239
|
# see http://redmine.ruby-lang.org/repositories/revision/ruby-19?rev=24280
|
230
240
|
private
|
@@ -263,15 +273,5 @@ module I18n
|
|
263
273
|
@@exception_handler.call(exception, locale, key, options)
|
264
274
|
end
|
265
275
|
end
|
266
|
-
|
267
|
-
# Merges the given locale, key and scope into a single array of keys.
|
268
|
-
# Splits keys that contain dots into multiple keys. Makes sure all
|
269
|
-
# keys are Symbols.
|
270
|
-
def normalize_translation_keys(locale, key, scope, separator = nil)
|
271
|
-
keys = [locale] + Array(scope) + Array(key)
|
272
|
-
keys = keys.map { |k| k.to_s.split(separator || I18n.default_separator) }
|
273
|
-
keys = keys.flatten - ['']
|
274
|
-
keys.map { |k| k.to_sym }
|
275
|
-
end
|
276
276
|
end
|
277
277
|
end
|
data/lib/i18n/backend.rb
CHANGED
@@ -5,10 +5,12 @@ module I18n
|
|
5
5
|
autoload :Cache, 'i18n/backend/cache'
|
6
6
|
autoload :Cascade, 'i18n/backend/cascade'
|
7
7
|
autoload :Chain, 'i18n/backend/chain'
|
8
|
+
autoload :Cldr, 'i18n/backend/cldr'
|
8
9
|
autoload :Fallbacks, 'i18n/backend/fallbacks'
|
9
10
|
autoload :Fast, 'i18n/backend/fast'
|
10
11
|
autoload :Gettext, 'i18n/backend/gettext'
|
11
12
|
autoload :Helpers, 'i18n/backend/helpers'
|
13
|
+
autoload :Links, 'i18n/backend/links'
|
12
14
|
autoload :InterpolationCompiler, 'i18n/backend/interpolation_compiler'
|
13
15
|
autoload :Metadata, 'i18n/backend/metadata'
|
14
16
|
autoload :Pluralization, 'i18n/backend/pluralization'
|
@@ -1,13 +1,6 @@
|
|
1
1
|
require 'i18n/backend/base'
|
2
2
|
require 'i18n/backend/active_record/translation'
|
3
3
|
|
4
|
-
#
|
5
|
-
# This backend reads translations from a Translations table in environment database. Note that the database
|
6
|
-
# will not automatically be prepopulated with missing keys. You can achieve this effect with the ActiveRecordMissing backend,
|
7
|
-
# as the following example shows:
|
8
|
-
#
|
9
|
-
# I18n.backend = I18n::Backend::Chain.new(I18n::Backend::ActiveRecord.new, I18.backend, I18n::Backend::ActiveRecordMissing.new)
|
10
|
-
#
|
11
4
|
module I18n
|
12
5
|
module Backend
|
13
6
|
class ActiveRecord
|
@@ -15,16 +8,17 @@ module I18n
|
|
15
8
|
autoload :StoreProcs, 'i18n/backend/active_record/store_procs'
|
16
9
|
autoload :Translation, 'i18n/backend/active_record/translation'
|
17
10
|
|
18
|
-
include Base
|
11
|
+
include Base, Links
|
19
12
|
|
20
13
|
def reload!
|
21
14
|
end
|
22
15
|
|
23
16
|
def store_translations(locale, data, options = {})
|
24
17
|
separator = options[:separator] || I18n.default_separator
|
25
|
-
wind_keys(data, separator).each do |key,
|
18
|
+
wind_keys(data, separator).each do |key, value|
|
19
|
+
store_link(locale, key, value) if value.is_a?(Symbol)
|
26
20
|
Translation.locale(locale).lookup(expand_keys(key, separator), separator).delete_all
|
27
|
-
Translation.create(:locale => locale.to_s, :key => key.to_s, :value =>
|
21
|
+
Translation.create(:locale => locale.to_s, :key => key.to_s, :value => value)
|
28
22
|
end
|
29
23
|
end
|
30
24
|
|
@@ -38,13 +32,15 @@ module I18n
|
|
38
32
|
|
39
33
|
protected
|
40
34
|
|
41
|
-
def lookup(locale, key, scope = [],
|
35
|
+
def lookup(locale, key, scope = [], options = {})
|
42
36
|
return unless key
|
43
37
|
|
44
|
-
separator
|
45
|
-
key = (Array(scope) + Array(key)).join(separator)
|
38
|
+
separator = options[:separator] || I18n.default_separator
|
46
39
|
|
40
|
+
key = resolve_link(locale, key)
|
41
|
+
key = (Array(scope) + Array(key)).join(separator)
|
47
42
|
result = Translation.locale(locale).lookup(key, separator).all
|
43
|
+
|
48
44
|
if result.empty?
|
49
45
|
return nil
|
50
46
|
elsif result.first.key == key
|
@@ -37,7 +37,7 @@ module I18n
|
|
37
37
|
count, scope, default, separator = options.values_at(:count, *Base::RESERVED_KEYS)
|
38
38
|
separator ||= I18n.default_separator
|
39
39
|
|
40
|
-
keys = I18n.
|
40
|
+
keys = I18n.normalize_keys(locale, key, scope, separator)[1..-1]
|
41
41
|
key = keys.join(separator || I18n.default_separator)
|
42
42
|
|
43
43
|
unless ActiveRecord::Translation.locale(locale).lookup(key, separator).exists?
|
@@ -23,11 +23,11 @@ module I18n
|
|
23
23
|
module StoreProcs
|
24
24
|
def value=(v)
|
25
25
|
case v
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
when Proc
|
27
|
+
write_attribute(:value, v.to_ruby)
|
28
|
+
write_attribute(:is_proc, true)
|
29
|
+
else
|
30
|
+
write_attribute(:value, v)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -56,9 +56,11 @@ module I18n
|
|
56
56
|
}
|
57
57
|
|
58
58
|
named_scope :lookup, lambda { |keys, *separator|
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
column_name = connection.quote_column_name('key')
|
60
|
+
keys = Array(keys).map! { |key| key.to_s }
|
61
|
+
separator = separator.first || I18n.default_separator
|
62
|
+
namespace = "#{keys.last}#{separator}%"
|
63
|
+
{ :conditions => ["#{column_name} IN (?) OR #{column_name} LIKE ?", keys, namespace] }
|
62
64
|
}
|
63
65
|
|
64
66
|
def self.available_locales
|
@@ -71,7 +73,7 @@ module I18n
|
|
71
73
|
|
72
74
|
def value
|
73
75
|
if is_proc
|
74
|
-
Kernel.eval
|
76
|
+
Kernel.eval(read_attribute(:value))
|
75
77
|
else
|
76
78
|
value = read_attribute(:value)
|
77
79
|
value == 'f' ? false : value
|
data/lib/i18n/backend/base.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'yaml'
|
4
|
+
require 'i18n/core_ext/hash/except'
|
4
5
|
|
5
6
|
module I18n
|
6
7
|
module Backend
|
7
8
|
module Base
|
8
9
|
include I18n::Backend::Helpers
|
9
10
|
|
10
|
-
RESERVED_KEYS = [:scope, :default, :separator]
|
11
|
+
RESERVED_KEYS = [:scope, :default, :separator, :resolve]
|
11
12
|
INTERPOLATION_SYNTAX_PATTERN = /(\\)?\{\{([^\}]+)\}\}/
|
12
13
|
|
13
14
|
# Accepts a list of paths to translation files. Loads translations from
|
@@ -22,7 +23,7 @@ module I18n
|
|
22
23
|
# translations will be overwritten by new ones only at the deepest
|
23
24
|
# level of the hash.
|
24
25
|
def store_translations(locale, data, options = {})
|
25
|
-
merge_translations(locale, data)
|
26
|
+
merge_translations(locale, data, options)
|
26
27
|
end
|
27
28
|
|
28
29
|
def translate(locale, key, options = {})
|
@@ -33,10 +34,10 @@ module I18n
|
|
33
34
|
entry = resolve(locale, key, lookup(locale, key), options)
|
34
35
|
raise(I18n::MissingTranslationData.new(locale, key, options)) if entry.nil?
|
35
36
|
else
|
36
|
-
count, scope, default
|
37
|
+
count, scope, default = options.values_at(:count, :scope, :default)
|
37
38
|
values = options.reject { |name, value| RESERVED_KEYS.include?(name) }
|
38
39
|
|
39
|
-
entry = lookup(locale, key, scope,
|
40
|
+
entry = lookup(locale, key, scope, options)
|
40
41
|
entry = entry.nil? && default ? default(locale, key, default, options) : resolve(locale, key, entry, options)
|
41
42
|
raise(I18n::MissingTranslationData.new(locale, key, options)) if entry.nil?
|
42
43
|
|
@@ -56,8 +57,7 @@ module I18n
|
|
56
57
|
if Symbol === format
|
57
58
|
key = format
|
58
59
|
type = object.respond_to?(:sec) ? 'time' : 'date'
|
59
|
-
format =
|
60
|
-
raise(MissingTranslationData.new(locale, key, options)) if format.nil?
|
60
|
+
format = I18n.t(:"#{type}.formats.#{key}", :locale => locale, :raise => true)
|
61
61
|
end
|
62
62
|
|
63
63
|
format = resolve(locale, object, format, options)
|
@@ -108,15 +108,15 @@ module I18n
|
|
108
108
|
# nested translations hash. Splits keys or scopes containing dots
|
109
109
|
# into multiple keys, i.e. <tt>currency.format</tt> is regarded the same as
|
110
110
|
# <tt>%w(currency format)</tt>.
|
111
|
-
def lookup(locale, key, scope = [],
|
111
|
+
def lookup(locale, key, scope = [], options = {})
|
112
112
|
return unless key
|
113
113
|
init_translations unless initialized?
|
114
|
-
keys = I18n.
|
114
|
+
keys = I18n.normalize_keys(locale, key, scope, options[:separator])
|
115
115
|
keys.inject(translations) do |result, key|
|
116
116
|
key = key.to_sym
|
117
117
|
return nil unless result.is_a?(Hash) && result.has_key?(key)
|
118
118
|
result = result[key]
|
119
|
-
result = resolve(locale, key, result,
|
119
|
+
result = resolve(locale, key, result, options) if result.is_a?(Symbol)
|
120
120
|
result
|
121
121
|
end
|
122
122
|
end
|
@@ -142,6 +142,7 @@ module I18n
|
|
142
142
|
# given options. If it is a Proc then it will be evaluated. All other
|
143
143
|
# subjects will be returned directly.
|
144
144
|
def resolve(locale, object, subject, options = nil)
|
145
|
+
return subject if options[:resolve] == false
|
145
146
|
case subject
|
146
147
|
when Symbol
|
147
148
|
I18n.translate(subject, (options || {}).merge(:locale => locale, :raise => true))
|
@@ -176,7 +177,7 @@ module I18n
|
|
176
177
|
# the <tt>{{...}}</tt> key in a string (once for the string and once for the
|
177
178
|
# interpolation).
|
178
179
|
def interpolate(locale, string, values = {})
|
179
|
-
return string unless string.is_a?(String) && !values.empty?
|
180
|
+
return string unless string.is_a?(::String) && !values.empty?
|
180
181
|
|
181
182
|
preserve_encoding(string) do
|
182
183
|
s = string.gsub(INTERPOLATION_SYNTAX_PATTERN) do
|
@@ -192,7 +193,7 @@ module I18n
|
|
192
193
|
|
193
194
|
values.each do |key, value|
|
194
195
|
value = value.call(values) if interpolate_lambda?(value, s, key)
|
195
|
-
value = value.to_s unless value.is_a?(String)
|
196
|
+
value = value.to_s unless value.is_a?(::String)
|
196
197
|
values[key] = value
|
197
198
|
end
|
198
199
|
|
@@ -227,7 +228,7 @@ module I18n
|
|
227
228
|
def load_file(filename)
|
228
229
|
type = File.extname(filename).tr('.', '').downcase
|
229
230
|
raise UnknownFileType.new(type, filename) unless respond_to?(:"load_#{type}")
|
230
|
-
data = send
|
231
|
+
data = send(:"load_#{type}", filename) # TODO raise a meaningful exception if this does not yield a Hash
|
231
232
|
data.each { |locale, d| merge_translations(locale, d) }
|
232
233
|
end
|
233
234
|
|
@@ -245,13 +246,19 @@ module I18n
|
|
245
246
|
|
246
247
|
# Deep merges the given translations hash with the existing translations
|
247
248
|
# for the given locale
|
248
|
-
def merge_translations(locale, data)
|
249
|
+
def merge_translations(locale, data, options = {})
|
249
250
|
locale = locale.to_sym
|
250
251
|
translations[locale] ||= {}
|
252
|
+
separator = options[:separator] || I18n.default_separator
|
253
|
+
data = unwind_keys(data, separator)
|
251
254
|
data = deep_symbolize_keys(data)
|
252
255
|
|
253
256
|
# deep_merge by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809
|
254
|
-
merger = proc
|
257
|
+
merger = proc do |key, v1, v2|
|
258
|
+
# TODO should probably be:
|
259
|
+
# raise TypeError.new("can't merge #{v1.inspect} and #{v2.inspect}") unless Hash === v1 && Hash === v2
|
260
|
+
Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : (v2 || v1)
|
261
|
+
end
|
255
262
|
translations[locale].merge!(data, &merger)
|
256
263
|
end
|
257
264
|
end
|
data/lib/i18n/backend/cache.rb
CHANGED
@@ -55,6 +55,7 @@ module I18n
|
|
55
55
|
def fetch(*args, &block)
|
56
56
|
result = I18n.cache_store.fetch(cache_key(*args), &block)
|
57
57
|
raise result if result.is_a?(Exception)
|
58
|
+
result = result.dup if result.frozen?
|
58
59
|
result
|
59
60
|
rescue MissingTranslationData => exception
|
60
61
|
I18n.cache_store.write(cache_key(*args), exception)
|
data/lib/i18n/backend/cascade.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# EXPERIMENTAL
|
4
4
|
#
|
5
|
-
# The
|
5
|
+
# The Cascade module adds the ability to do cascading lookups to backends that
|
6
6
|
# are compatible to the Simple backend.
|
7
7
|
#
|
8
8
|
# By cascading lookups we mean that for any key that can not be found the
|
@@ -15,7 +15,15 @@
|
|
15
15
|
# then the remaining scope segment :foo will be omitted, too, and again the
|
16
16
|
# key :baz will be looked up (now with no scope).
|
17
17
|
#
|
18
|
-
#
|
18
|
+
# To enable a cascading lookup one passes the :cascade option:
|
19
|
+
#
|
20
|
+
# I18n.t(:'foo.bar.baz', :cascade => true)
|
21
|
+
#
|
22
|
+
# This will return the first translation found for :"foo.bar.baz", :"foo.baz"
|
23
|
+
# or :baz in this order.
|
24
|
+
#
|
25
|
+
# The cascading lookup takes precedence over resolving any given defaults.
|
26
|
+
# I.e. defaults will kick in after the cascading lookups haven't succeeded.
|
19
27
|
#
|
20
28
|
# This behavior is useful for libraries like ActiveRecord validations where
|
21
29
|
# the library wants to give users a bunch of more or less fine-grained options
|
@@ -25,19 +33,25 @@
|
|
25
33
|
# http://github.com/clemens/i18n-cascading-backend
|
26
34
|
|
27
35
|
module I18n
|
28
|
-
@@fallbacks = nil
|
29
|
-
|
30
36
|
module Backend
|
31
37
|
module Cascade
|
32
|
-
def lookup(locale, key, scope = [],
|
38
|
+
def lookup(locale, key, scope = [], options = {})
|
33
39
|
return unless key
|
34
|
-
|
35
|
-
|
40
|
+
return super unless cascade = options[:cascade]
|
41
|
+
|
42
|
+
separator = options[:separator] || I18n.default_separator
|
43
|
+
skip_root = cascade.has_key?(:skip_root) ? cascade[:skip_root] : true
|
44
|
+
step = cascade[:step]
|
45
|
+
|
46
|
+
keys = I18n.normalize_keys(nil, key, nil, separator)
|
47
|
+
offset = options[:cascade][:offset] || keys.length
|
48
|
+
scope = I18n.normalize_keys(nil, nil, scope, separator) + keys
|
49
|
+
key = scope.slice!(-offset, offset).join(separator)
|
36
50
|
|
37
51
|
begin
|
38
52
|
result = super
|
39
53
|
return result unless result.nil?
|
40
|
-
end while scope.
|
54
|
+
end while scope.slice!(-step, step) && (!scope.empty? || !skip_root)
|
41
55
|
end
|
42
56
|
end
|
43
57
|
end
|
data/lib/i18n/backend/chain.rb
CHANGED
@@ -0,0 +1,100 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'cldr'
|
3
|
+
|
4
|
+
module I18n
|
5
|
+
module Backend
|
6
|
+
module Cldr
|
7
|
+
include ::Cldr::Format
|
8
|
+
|
9
|
+
def localize(locale, object, format = :default, options = {})
|
10
|
+
options[:as] ||= detect_type(object, options)
|
11
|
+
send(:"format_#{options[:as]}", locale, object, format, options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def format_decimal(locale, object, format = :default, options = {})
|
15
|
+
formatter(locale, :decimal, format).apply(object, options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def format_integer(locale, object, format = :default, options = {})
|
19
|
+
format_object(number, options.merge(:precision => 0))
|
20
|
+
end
|
21
|
+
|
22
|
+
def format_currency(locale, object, format = :default, options = {})
|
23
|
+
options.merge!(:currency => lookup_currency(locale, options[:currency], object)) if options[:currency].is_a?(Symbol)
|
24
|
+
formatter(locale, :currency, format).apply(object, options)
|
25
|
+
end
|
26
|
+
|
27
|
+
def format_percent(locale, object, format = :default, options = {})
|
28
|
+
formatter(locale, :percent, format).apply(object, options)
|
29
|
+
end
|
30
|
+
|
31
|
+
def format_date(locale, object, format = :default, options = {})
|
32
|
+
formatter(locale, :date, format).apply(object, options)
|
33
|
+
end
|
34
|
+
|
35
|
+
def format_time(locale, object, format = :default, options = {})
|
36
|
+
formatter(locale, :time, format).apply(object, options)
|
37
|
+
end
|
38
|
+
|
39
|
+
def format_datetime(locale, object, format = :default, options = {})
|
40
|
+
key = :"calendars.gregorian.formats.datetime.#{format}.pattern"
|
41
|
+
date = I18n.l(object, :format => options[:date_format] || format, :locale => locale, :as => :date)
|
42
|
+
time = I18n.l(object, :format => options[:time_format] || format, :locale => locale, :as => :time)
|
43
|
+
I18n.t(key, :date => date, :time => time, :locale => locale, :raise => true)
|
44
|
+
end
|
45
|
+
|
46
|
+
protected
|
47
|
+
|
48
|
+
def detect_type(object, options)
|
49
|
+
options.has_key?(:currency) ? :currency : case object
|
50
|
+
when ::Numeric
|
51
|
+
:decimal
|
52
|
+
when ::Date, ::DateTime, ::Time
|
53
|
+
object.class.name.downcase.to_sym
|
54
|
+
else
|
55
|
+
raise_unspecified_format_type!
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def formatter(locale, type, format)
|
60
|
+
(@formatters ||= {})[:"#{locale}.#{type}.#{format}"] ||= begin
|
61
|
+
format = lookup_format(locale, type, format)
|
62
|
+
data = lookup_format_data(locale, type)
|
63
|
+
::Cldr::Format.const_get(type.to_s.camelize).new(format, data)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def lookup_format(locale, type, format)
|
68
|
+
key = case type
|
69
|
+
when :date, :time, :datetime
|
70
|
+
:"calendars.gregorian.formats.#{type}.#{format}.pattern"
|
71
|
+
else
|
72
|
+
:"numbers.formats.#{type}.patterns.#{format || :default}"
|
73
|
+
end
|
74
|
+
I18n.t(key, :locale => locale, :raise => true)
|
75
|
+
end
|
76
|
+
|
77
|
+
def lookup_format_data(locale, type)
|
78
|
+
key = case type
|
79
|
+
when :date, :time, :datetime
|
80
|
+
:'calendars.gregorian'
|
81
|
+
else
|
82
|
+
:'numbers.symbols'
|
83
|
+
end
|
84
|
+
I18n.t(key, :locale => locale, :raise => true)
|
85
|
+
end
|
86
|
+
|
87
|
+
def lookup_currency(locale, currency, count)
|
88
|
+
I18n.t(:"currencies.#{currency}", :locale => locale, :count => count)
|
89
|
+
end
|
90
|
+
|
91
|
+
def raise_unspecified_format_type!
|
92
|
+
raise ArgumentError.new("You have to specify a format type, e.g. :as => :number.")
|
93
|
+
end
|
94
|
+
|
95
|
+
def raise_unspecified_currency!
|
96
|
+
raise ArgumentError.new("You have to specify a currency, e.g. :currency => 'EUR'.")
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|