feat: add support for multiple languages

- Update available locales to include Bengali, Hindi, Urdu, and Arabic
- Add new locale files for each language with translations for UI elements
- Ensure the application can now support a wider audience by providing
  localized content

This change enhances the application's accessibility and usability for
users who speak these languages, allowing for a more inclusive user
experience. The new translations cover key UI components and messages,
ensuring that users can interact with the application in their native
languages.
This commit is contained in:
songtianlun 2025-02-24 17:04:23 +08:00
parent 5f98d9ebfd
commit bd04bb63a1
6 changed files with 273 additions and 1 deletions

View File

@ -5,7 +5,7 @@ require "i18n/backend/fallbacks"
I18n.load_path += Dir[Rails.root.join("config", "locales", "*.{rb,yml}")]
# Permitted locales available for the application
I18n.available_locales = [ :en, :"zh-CN", :ja, :ko, :"pt-BR", :hr, :fa, :de, :es, :fr, :it, :tr, :ru, :uk, :pl ]
I18n.available_locales = [ :en, :"zh-CN", :ja, :ko, :"pt-BR", :hr, :fa, :de, :es, :fr, :it, :tr, :ru, :uk, :pl, :bn, :hi, :ur, :ar ]
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
# I18n::Backend::Simple.include I18n::Backend::Fallbacks

67
config/locales/ar.yml Normal file
View File

@ -0,0 +1,67 @@
ar:
hello: "مرحباً بالعالم"
brand:
name: "الطقس اليوم بالذكاء الاصطناعي"
title:
cities: "المدن"
arts: "الفنون"
sign_in: "تسجيل الدخول"
sign_out: "تسجيل الخروج"
settings: "الإعدادات"
admin_dashboard: "لوحة تحكم المشرف"
latest_weather_art: "أحدث فن الطقس"
popular_weather_art: "فن الطقس الشائع"
ai_prompt: "موجه الذكاء الاصطناعي"
text:
latest_from: "أحدث من"
search_cities: "البحث عن المدن..."
all_regions: "جميع المناطق"
all_countries: "جميع البلدان"
all_in: "الكل في"
showing: "عرض"
weather_arts: "فنون الطقس"
newest_first: "الأحدث أولاً"
oldest_first: "الأقدم أولاً"
cities:
title: "استكشف المدن"
arts:
title: "معرض فنون الطقس"
subtitle: "اكتشف فن الطقس المُنشأ بالذكاء الاصطناعي من مدن حول العالم"
home:
headline_html: حيث يلتقي الطقس<br>بالذكاء الاصطناعي
subtitle:
اختبر الطقس من خلال عدسة الفن المُنشأ بالذكاء الاصطناعي،
مما يجلب منظوراً جديداً للظواهر الجوية اليومية.
button:
explore_cities: "استكشف المدن"
view_detail: "عرض التفاصيل"
view_all_weather_arts: "عرض كل فنون الطقس"
back_to_cities: "العودة إلى المدن"
back_to: "العودة إلى"
card:
temperature: "درجة الحرارة"
wind: "الرياح"
humidity: "الرطوبة"
visibility: "الرؤية"
pressure: "الضغط"
cloud_cover: "الغطاء السحابي"
feel_like: "الشعور كأنها"
relative_humidity: "الرطوبة النسبية"
clear_view_distance: "مسافة الرؤية الواضحة"
atmospheric_pressure: "الضغط الجوي"
sky_coverage: "تغطية السماء"
pagination:
showing_items: "عرض %{from} إلى %{to} من %{total} %{items}"
items:
weather: "سجلات الطقس"
default: "العناصر"
time:
formats:
time_only: "%H:%M"
with_zone: "%{time} %{zone}"
date_and_time: "%{date} %{time}"
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"```

67
config/locales/bn.yml Normal file
View File

@ -0,0 +1,67 @@
bn:
hello: "ওহে বিশ্ব"
brand:
name: "টুডে এআই ওয়েদার"
title:
cities: "শহরগুলি"
arts: "শিল্প"
sign_in: "সাইন ইন"
sign_out: "সাইন আউট"
settings: "সেটিংস"
admin_dashboard: "অ্যাডমিন ড্যাশবোর্ড"
latest_weather_art: "সর্বশেষ আবহাওয়া শিল্প"
popular_weather_art: "জনপ্রিয় আবহাওয়া শিল্প"
ai_prompt: "এআই প্রম্পট"
text:
latest_from: "সর্বশেষ"
search_cities: "শহর অনুসন্ধান..."
all_regions: "সব অঞ্চল"
all_countries: "সব দেশ"
all_in: "সবগুলি"
showing: "দেখাচ্ছে"
weather_arts: "আবহাওয়া শিল্প"
newest_first: "নতুনগুলি প্রথমে"
oldest_first: "পুরানোগুলি প্রথমে"
cities:
title: "শহরগুলি অন্বেষণ করুন"
arts:
title: "আবহাওয়া শিল্প গ্যালারি"
subtitle: "বিশ্বজুড়ে শহরগুলি থেকে এআই-জেনারেটেড আবহাওয়া শিল্প আবিষ্কার করুন"
home:
headline_html: যেখানে আবহাওয়া মিলিত হয়<br>কৃত্রিম বুদ্ধিমত্তার সাথে
subtitle:
এআই-জেনারেটেড শিল্পের মাধ্যমে আবহাওয়া অনুভব করুন,
দৈনিক আবহাওয়া ঘটনার একটি নতুন দৃষ্টিভঙ্গি আনয়ন করে।
button:
explore_cities: "শহরগুলি অন্বেষণ করুন"
view_detail: "বিস্তারিত দেখুন"
view_all_weather_arts: "সমস্ত আবহাওয়া শিল্প দেখুন"
back_to_cities: "শহরগুলিতে ফিরে যান"
back_to: "ফিরে যান"
card:
temperature: "তাপমাত্রা"
wind: "বাতাস"
humidity: "আর্দ্রতা"
visibility: "দৃশ্যমানতা"
pressure: "চাপ"
cloud_cover: "মেঘাচ্ছন্নতা"
feel_like: "অনুভূত হয়"
relative_humidity: "আপেক্ষিক আর্দ্রতা"
clear_view_distance: "পরিষ্কার দৃষ্টির দূরত্ব"
atmospheric_pressure: "বায়ুমণ্ডলীয় চাপ"
sky_coverage: "আকাশ আচ্ছাদন"
pagination:
showing_items: "%{total} %{items}-এর মধ্যে %{from} থেকে %{to} দেখানো হচ্ছে"
items:
weather: "আবহাওয়া রেকর্ড"
default: "আইটেম"
time:
formats:
time_only: "%H:%M"
with_zone: "%{time} %{zone}"
date_and_time: "%{date} %{time}"
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"

View File

@ -45,6 +45,10 @@ en:
ru: "Русский" # 俄语
uk: "Українська" # 乌克兰语
pl: "Polski" # 波兰语
bn: "বাংলা" # 孟加拉
hi: "हिंदी" # 印地语
ur: " اردو" # 乌尔都语
ar: "العربية" # 阿拉伯
hello: "Hello world"
brand:
name: "Today AI Weather"

67
config/locales/hi.yml Normal file
View File

@ -0,0 +1,67 @@
hi:
hello: "नमस्ते दुनिया"
brand:
name: "टुडे एआई वेदर"
title:
cities: "शहर"
arts: "कला"
sign_in: "साइन इन"
sign_out: "साइन आउट"
settings: "सेटिंग्स"
admin_dashboard: "एडमिन डैशबोर्ड"
latest_weather_art: "नवीनतम मौसम कला"
popular_weather_art: "लोकप्रिय मौसम कला"
ai_prompt: "एआई प्रॉम्प्ट"
text:
latest_from: "से नवीनतम"
search_cities: "शहर खोजें..."
all_regions: "सभी क्षेत्र"
all_countries: "सभी देश"
all_in: "सभी में"
showing: "दिखा रहा है"
weather_arts: "मौसम कला"
newest_first: "नवीनतम पहले"
oldest_first: "सबसे पुराना पहले"
cities:
title: "शहरों की खोज करें"
arts:
title: "मौसम कला गैलरी"
subtitle: "दुनिया भर के शहरों से एआई-जनित मौसम कला की खोज करें"
home:
headline_html: जहां मौसम मिलता है<br>कृत्रिम बुद्धिमत्ता
subtitle:
एआई-जनित कला के माध्यम से मौसम का अनुभव करें,
दैनिक मौसम संबंधी घटनाओं को एक नया दृष्टिकोण प्रदान करें।
button:
explore_cities: "शहरों की खोज करें"
view_detail: "विवरण देखें"
view_all_weather_arts: "सभी मौसम कला देखें"
back_to_cities: "शहरों पर वापस जाएं"
back_to: "वापस जाएं"
card:
temperature: "तापमान"
wind: "हवा"
humidity: "नमी"
visibility: "दृश्यता"
pressure: "दबाव"
cloud_cover: "बादल छाए"
feel_like: "महसूस होता है"
relative_humidity: "सापेक्ष आर्द्रता"
clear_view_distance: "स्पष्ट दृश्य दूरी"
atmospheric_pressure: "वायुमंडलीय दबाव"
sky_coverage: "आकाश कवरेज"
pagination:
showing_items: "%{total} %{items} में से %{from} से %{to} तक दिखा रहा है"
items:
weather: "मौसम रिकॉर्ड"
default: "आइटम"
time:
formats:
time_only: "%H:%M"
with_zone: "%{time} %{zone}"
date_and_time: "%{date} %{time}"
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"

67
config/locales/ur.yml Normal file
View File

@ -0,0 +1,67 @@
ur:
hello: "ہیلو دنیا"
brand:
name: "ٹوڈے اے آئی ویدر"
title:
cities: "شہر"
arts: "فن"
sign_in: "سائن ان"
sign_out: "سائن آؤٹ"
settings: "ترتیبات"
admin_dashboard: "ایڈمن ڈیش بورڈ"
latest_weather_art: "تازہ ترین موسمی فن"
popular_weather_art: "مقبول موسمی فن"
ai_prompt: "اے آئی پرامپٹ"
text:
latest_from: "تازہ ترین"
search_cities: "شہروں کی تلاش..."
all_regions: "تمام علاقے"
all_countries: "تمام ممالک"
all_in: "تمام"
showing: "دکھا رہا ہے"
weather_arts: "موسمی فن"
newest_first: "نیا پہلے"
oldest_first: "پرانا پہلے"
cities:
title: "شہروں کی دریافت"
arts:
title: "موسمی فن گیلری"
subtitle: "دنیا بھر کے شہروں سے اے آئی سے تیار کردہ موسمی فن دریافت کریں"
home:
headline_html: جہاں موسم<br>مصنوعی ذہانت سے ملتا ہے
subtitle:
اے آئی سے تیار کردہ فن کے ذریعے موسم کا تجربہ کریں،
روزمرہ موسمیاتی مظاہر کو ایک نیا نظریہ فراہم کرتا ہے۔
button:
explore_cities: "شہروں کی دریافت"
view_detail: "تفصیلات دیکھیں"
view_all_weather_arts: "تمام موسمی فن دیکھیں"
back_to_cities: "شہروں کی طرف واپس"
back_to: "واپس"
card:
temperature: "درجہ حرارت"
wind: "ہوا"
humidity: "نمی"
visibility: "دید"
pressure: "دباؤ"
cloud_cover: "بادل"
feel_like: "محسوس ہوتا ہے"
relative_humidity: "اضافی نمی"
clear_view_distance: "صاف نظر کی دوری"
atmospheric_pressure: "ہوائی دباؤ"
sky_coverage: "آسمانی احاطہ"
pagination:
showing_items: "%{items} کے %{total} میں سے %{from} سے %{to} تک دکھا رہا ہے"
items:
weather: "موسمی ریکارڈز"
default: "آئٹمز"
time:
formats:
time_only: "%H:%M"
with_zone: "%{time} %{zone}"
date_and_time: "%{date} %{time}"
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"