From 49e185d1a99f93171d30f824ddb3e7b920e2b239 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Wed, 14 May 2025 01:19:01 +0300 Subject: [PATCH] List available ui languages --- config/initializers/i18n.rb | 2 + config/ui_languages.yml | 215 ++++++++++++++++++++++++++++++++++++ test/lib/i18n_test.rb | 21 +++- 3 files changed, 236 insertions(+), 2 deletions(-) create mode 100644 config/ui_languages.yml diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb index 2a1dd5179..839a85a18 100644 --- a/config/initializers/i18n.rb +++ b/config/initializers/i18n.rb @@ -45,3 +45,5 @@ Rails.configuration.after_initialize do I18n.available_locales end + +AVAILABLE_LANGUAGES = YAML.load_file(Rails.root.join("config/ui_languages.yml")) diff --git a/config/ui_languages.yml b/config/ui_languages.yml new file mode 100644 index 000000000..2dc8400b0 --- /dev/null +++ b/config/ui_languages.yml @@ -0,0 +1,215 @@ +--- +- :code: af + :native_name: Afrikaans +- :code: gsw + :native_name: Alemannisch +- :code: ast + :native_name: asturianu +- :code: az + :native_name: azərbaycanca +- :code: id + :native_name: Bahasa Indonesia +- :code: ms + :native_name: Bahasa Melayu +- :code: bs + :native_name: bosanski +- :code: br + :native_name: brezhoneg +- :code: ca + :native_name: català +- :code: cs + :native_name: čeština +- :code: cy + :native_name: Cymraeg +- :code: da + :native_name: dansk +- :code: de + :native_name: Deutsch +- :code: dsb + :native_name: dolnoserbski +- :code: et + :native_name: eesti +- :code: en + :native_name: English +- :code: en-GB + :native_name: English (United Kingdom) +- :code: es + :native_name: español +- :code: eo + :native_name: Esperanto +- :code: eu + :native_name: euskara +- :code: fr + :native_name: français +- :code: fy + :native_name: Frysk +- :code: fur + :native_name: furlan +- :code: ga + :native_name: Gaeilge +- :code: gd + :native_name: Gàidhlig +- :code: gl + :native_name: galego +- :code: aln + :native_name: Gegë +- :code: hsb + :native_name: hornjoserbsce +- :code: hr + :native_name: hrvatski +- :code: ia + :native_name: interlingua +- :code: is + :native_name: íslenska +- :code: it + :native_name: italiano +- :code: gcf + :native_name: kréyòl Gwadloup +- :code: ku-Latn + :native_name: kurdî (latînî) +- :code: lv + :native_name: latviešu +- :code: lb + :native_name: Lëtzebuergesch +- :code: lt + :native_name: lietuvių +- :code: hu + :native_name: magyar +- :code: fit + :native_name: meänkieli +- :code: nl + :native_name: Nederlands +- :code: nb + :native_name: norsk bokmål +- :code: nn + :native_name: norsk nynorsk +- :code: oc + :native_name: occitan +- :code: nds + :native_name: Plattdüütsch +- :code: pl + :native_name: polski +- :code: pt-PT + :native_name: português +- :code: pt + :native_name: português do Brasil +- :code: ksh + :native_name: Ripoarisch +- :code: ro + :native_name: română +- :code: sc + :native_name: sardu +- :code: sco + :native_name: Scots +- :code: sq + :native_name: shqip +- :code: scn + :native_name: sicilianu +- :code: sk + :native_name: slovenčina +- :code: sl + :native_name: slovenščina +- :code: sr-Latn + :native_name: srpski (latinica) +- :code: sh + :native_name: srpskohrvatski (latinica) +- :code: fi + :native_name: suomi +- :code: sv + :native_name: svenska +- :code: tl + :native_name: Tagalog +- :code: kab + :native_name: Taqbaylit +- :code: vi + :native_name: Tiếng Việt +- :code: tr + :native_name: Türkçe +- :code: yo + :native_name: Yorùbá +- :code: diq + :native_name: Zazaki +- :code: el + :native_name: Ελληνικά +- :code: ba + :native_name: башҡортса +- :code: be + :native_name: беларуская +- :code: be-Tarask + :native_name: беларуская (тарашкевіца) +- :code: bg + :native_name: български +- :code: mk + :native_name: македонски +- :code: mo + :native_name: молдовеняскэ +- :code: ce + :native_name: нохчийн +- :code: ru + :native_name: русский +- :code: sr + :native_name: српски (ћирилица) +- :code: tt + :native_name: татарча +- :code: uk + :native_name: українська +- :code: kk-cyrl + :native_name: қазақша (кирил) +- :code: yi + :native_name: ייִדיש +- :code: he + :native_name: עברית +- :code: ar + :native_name: العربية +- :code: skr-arab + :native_name: سرائیکی +- :code: fa + :native_name: فارسی +- :code: arz + :native_name: مصرى +- :code: pnb + :native_name: پنجابی +- :code: ps + :native_name: پښتو +- :code: nqo + :native_name: ߒߞߏ +- :code: ne + :native_name: नेपाली +- :code: mr + :native_name: मराठी +- :code: hi + :native_name: हिन्दी +- :code: bn + :native_name: বাংলা +- :code: pa + :native_name: ਪੰਜਾਬੀ +- :code: gu + :native_name: ગુજરાતી +- :code: ta + :native_name: தமிழ் +- :code: te + :native_name: తెలుగు +- :code: kn + :native_name: ಕನ್ನಡ +- :code: th + :native_name: ไทย +- :code: my + :native_name: မြန်မာဘာသာ +- :code: xmf + :native_name: მარგალური +- :code: ka + :native_name: ქართული +- :code: km + :native_name: ភាសាខ្មែរ +- :code: sat + :native_name: ᱥᱟᱱᱛᱟᱲᱤ +- :code: zh-CN + :native_name: 中文(简体) +- :code: zh-TW + :native_name: 中文(繁體) +- :code: zh-HK + :native_name: 中文(香港) +- :code: ja + :native_name: 日本語 +- :code: ko + :native_name: 한국어 diff --git a/test/lib/i18n_test.rb b/test/lib/i18n_test.rb index fe94cbdd3..90b815578 100644 --- a/test/lib/i18n_test.rb +++ b/test/lib/i18n_test.rb @@ -56,13 +56,30 @@ class I18nTest < ActiveSupport::TestCase end Rails.root.glob("config/locales/*.yml").each do |filename| - lang = File.basename(filename, ".yml") - test "#{lang} for raw html" do + code = File.basename(filename, ".yml") + test "#{code} for raw html" do yml = YAML.load_file(filename) assert_nothing_raised do check_values_for_raw_html(yml) end end + + test "#{code} present once in ui_languages.yml" do + assert_equal(1, AVAILABLE_LANGUAGES.count { |language| language[:code] == code }) + end + end + + def test_ui_languages_have_yml_files + AVAILABLE_LANGUAGES.each do |language| + assert_path_exists Rails.root.join("config/locales/#{language[:code]}.yml") + end + end + + def test_ui_languages_have_required_fields + AVAILABLE_LANGUAGES.each do |language| + assert language[:code] + assert language[:native_name] + end end def test_en_for_nil_values -- 2.39.5