From c207bb7f72f7f5644beff5934e1b9b4121d936ee Mon Sep 17 00:00:00 2001 From: Evgeny Mezin Date: Wed, 4 Feb 2026 15:51:35 +0400 Subject: [PATCH] Add Russian and Georgian language support Add ru.json and ka.json translation files, register both languages in i18n.js, and add language name keys to all existing locale files. Co-Authored-By: Claude Opus 4.5 --- src/lang/de.json | 2 ++ src/lang/en.json | 2 ++ src/lang/es.json | 2 ++ src/lang/fr.json | 2 ++ src/lang/i18n.js | 10 ++++++-- src/lang/it.json | 2 ++ src/lang/ja.json | 2 ++ src/lang/ka.json | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ src/lang/ko.json | 2 ++ src/lang/nl.json | 2 ++ src/lang/pt.json | 2 ++ src/lang/ru.json | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 12 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 src/lang/ka.json create mode 100644 src/lang/ru.json diff --git a/src/lang/de.json b/src/lang/de.json index bd177590..15f72c03 100644 --- a/src/lang/de.json +++ b/src/lang/de.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "Höhe (m)", "station.settings.antenna": "Antenne", "station.settings.button.save": "Einstellungen Speichern", diff --git a/src/lang/en.json b/src/lang/en.json index 08a0d2a6..0208c2fd 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "Altitude (m)", "station.settings.antenna": "Antenna", "station.settings.button.save": "Save Settings", diff --git a/src/lang/es.json b/src/lang/es.json index dcd99e0a..6de1f450 100644 --- a/src/lang/es.json +++ b/src/lang/es.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "Altitud (m)", "station.settings.antenna": "Antena", "station.settings.button.save": "Guardar Configuración", diff --git a/src/lang/fr.json b/src/lang/fr.json index 5d330944..6186c668 100644 --- a/src/lang/fr.json +++ b/src/lang/fr.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "Altitude (m)", "station.settings.antenna": "Antenne", "station.settings.button.save": "Enregistrer les paramètres", diff --git a/src/lang/i18n.js b/src/lang/i18n.js index e7df127c..a813b00f 100644 --- a/src/lang/i18n.js +++ b/src/lang/i18n.js @@ -11,6 +11,8 @@ import translationJA from './ja.json'; import translationIT from './it.json'; import translationNL from './nl.json'; import translationKO from './ko.json'; +import translationRU from './ru.json'; +import translationKA from './ka.json'; export const LANGUAGES = [ { code: 'en', name: 'English', flag: '🇬🇧' }, @@ -21,7 +23,9 @@ export const LANGUAGES = [ { code: 'pt', name: 'Português', flag: '🇧🇷' }, { code: 'ja', name: '日本語', flag: '🇯🇵' }, { code: 'ko', name: '한국어', flag: '🇰🇷' }, - { code: 'it', name: 'Italiano', flag: '🇮🇹' } + { code: 'it', name: 'Italiano', flag: '🇮🇹' }, + { code: 'ru', name: 'Русский', flag: '🇷🇺' }, + { code: 'ka', name: 'ქართული', flag: '🇬🇪' } ]; export const resources = { @@ -33,7 +37,9 @@ export const resources = { pt: { translation: translationPT }, ja: { translation: translationJA }, ko: { translation: translationKO }, - it: { translation: translationIT } + it: { translation: translationIT }, + ru: { translation: translationRU }, + ka: { translation: translationKA } }; i18n diff --git a/src/lang/it.json b/src/lang/it.json index d2d24fa7..99428254 100644 --- a/src/lang/it.json +++ b/src/lang/it.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "Altitudine (m)", "station.settings.antenna": "Antenna", "station.settings.button.save": "Salva Impostazioni", diff --git a/src/lang/ja.json b/src/lang/ja.json index 1407a088..838c860a 100644 --- a/src/lang/ja.json +++ b/src/lang/ja.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "標高 (m)", "station.settings.antenna": "アンテナ", "station.settings.button.save": "設定を保存", diff --git a/src/lang/ka.json b/src/lang/ka.json new file mode 100644 index 00000000..5ec5c787 --- /dev/null +++ b/src/lang/ka.json @@ -0,0 +1,64 @@ +{ + "cancel": "გაუქმება", + "station.settings.language": "ენა", + "station.settings.language.en": "English", + "station.settings.language.fr": "Français", + "station.settings.language.es": "Español", + "station.settings.language.de": "Deutsch", + "station.settings.language.pt": "Português", + "station.settings.language.ja": "日本語", + "station.settings.language.it": "Italiano", + "station.settings.language.nl": "Nederlands", + "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", + "station.settings.altitude": "სიმაღლე (მ)", + "station.settings.antenna": "ანტენა", + "station.settings.button.save": "პარამეტრების შენახვა", + "station.settings.button.save.confirm": "პარამეტრები შენახულია თქვენს ბრაუზერში", + "station.settings.callsign": "თქვენი პოზიციური სიგნალი", + "station.settings.headerSize": "თქვენი პოზიციური სიგნალის ზომა", + "station.settings.describe": "შეიყვანეთ თქვენი პოზიციური სიგნალი და ლოკატორი დასაწყებად. პარამეტრები ინახება თქვენს ბრაუზერში.", + "station.settings.dx.describe": "→ DX Spider რეალურ დროში ჩვენი პროქსი სერვისის მეშვეობით", + "station.settings.dx.option1": "⭐ DX Spider პროქსი (რეკომენდებული)", + "station.settings.dx.option2": "HamQTH კლასტერი", + "station.settings.dx.option3": "DXWatch", + "station.settings.dx.option4": "ავტო (ყველა წყაროს მოსინჯვა)", + "station.settings.dx.title": "DX კლასტერის წყარო", + "station.settings.layout": "განლაგება", + "station.settings.layout.classic": "კლასიკური", + "station.settings.layout.classic.describe": "→ ორიგინალური HamClock-ის სტილის განლაგება", + "station.settings.layout.modern": "თანამედროვე", + "station.settings.layout.modern.describe": "→ თანამედროვე ადაპტიური ბადის განლაგება", + "station.settings.layout.tablet": "ტაბლეტი", + "station.settings.layout.tablet.describe": "→ ოპტიმიზირებული 7-10\" ფართო ეკრანებისთვის (16:9)", + "station.settings.layout.compact": "კომპაქტური", + "station.settings.layout.compact.describe": "→ მონაცემებზე ორიენტირებული განლაგება 4:3 და პატარა ეკრანებისთვის", + "station.settings.latitude": "განედი", + "station.settings.locator": "ლოკატორი (ან შეიყვანეთ განედი/გრძედი ქვემოთ)", + "station.settings.longitude": "გრძედი", + "station.settings.power": "სიმძლავრე (ვტ)", + "station.settings.theme": "თემა", + "station.settings.theme.dark": "მუქი", + "station.settings.theme.dark.describe": "→ თანამედროვე მუქი თემა (ნაგულისხმევი)", + "station.settings.theme.legacy": "კლასიკა", + "station.settings.theme.legacy.describe": "→ მწვანე CRT ტერმინალის სტილი", + "station.settings.theme.light": "ნათელი", + "station.settings.theme.light.describe": "→ ნათელი თემა დღის გამოყენებისთვის", + "station.settings.theme.retro": "რეტრო", + "station.settings.theme.retro.describe": "→ 90-იანების Windows რეტრო სტილი", + "station.settings.timezone": "დროის ზონა", + "station.settings.title": "⚙ სადგურის პარამეტრები", + "station.settings.tip.env": "💡 რჩევა: მუდმივი კონფიგურაციისთვის დააკოპირეთ .env.example ფაილი .env-ში და დააყენეთ CALLSIGN და LOCATOR", + "station.settings.useLocation": "📍 ჩემი მდებარეობის გამოყენება", + "station.settings.useLocation.error1": "მდებარეობის დადგენა ვერ მოხერხდა. გთხოვთ, შეიყვანეთ ხელით.", + "station.settings.useLocation.error2": "გეოლოკაცია არ არის მხარდაჭერილი თქვენს ბრაუზერში.", + "station.settings.welcome": "👋 კეთილი იყოს თქვენი მობრძანება OpenHamClock-ში!", + "plugins.layers.aurora.name": "პოლარული ნათების პროგნოზი", + "plugins.layers.aurora.description": "NOAA OVATION პოლარული ნათების ალბათობის პროგნოზი (30 წთ)", + "plugins.layers.earthquakes.name": "მიწისძვრები", + "plugins.layers.earthquakes.description": "USGS მიწისძვრების მონაცემები რეალურ დროში (M2.5+ ბოლო 24 საათში)", + "plugins.layers.wxradar.name": "ამინდის რადარი", + "plugins.layers.wxradar.description": "NEXRAD ამინდის რადარის გადაფარვა ჩრდილოეთ ამერიკისთვის", + "plugins.layers.wxradar.attribution": "ამინდის მონაცემები © Iowa State University Mesonet" +} diff --git a/src/lang/ko.json b/src/lang/ko.json index 21db5348..94bc918c 100644 --- a/src/lang/ko.json +++ b/src/lang/ko.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "고도 (m)", "station.settings.antenna": "안테나", "station.settings.button.save": "설정 저장하기", diff --git a/src/lang/nl.json b/src/lang/nl.json index b46b5d91..4af1b65a 100644 --- a/src/lang/nl.json +++ b/src/lang/nl.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiaans", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "Hoogte (m)", "station.settings.antenna": "Antenne", "station.settings.button.save": "Bewaar Settings", diff --git a/src/lang/pt.json b/src/lang/pt.json index 4cd8cb22..0fbc59aa 100644 --- a/src/lang/pt.json +++ b/src/lang/pt.json @@ -10,6 +10,8 @@ "station.settings.language.it": "Italiano", "station.settings.language.nl": "Nederlands", "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", "station.settings.altitude": "Altitude (m)", "station.settings.antenna": "Antena", "station.settings.button.save": "Salvar Configurações", diff --git a/src/lang/ru.json b/src/lang/ru.json new file mode 100644 index 00000000..2d5cd75b --- /dev/null +++ b/src/lang/ru.json @@ -0,0 +1,64 @@ +{ + "cancel": "Отмена", + "station.settings.language": "Язык", + "station.settings.language.en": "English", + "station.settings.language.fr": "Français", + "station.settings.language.es": "Español", + "station.settings.language.de": "Deutsch", + "station.settings.language.pt": "Português", + "station.settings.language.ja": "日本語", + "station.settings.language.it": "Italiano", + "station.settings.language.nl": "Nederlands", + "station.settings.language.ko": "한국어", + "station.settings.language.ru": "Русский", + "station.settings.language.ka": "ქართული", + "station.settings.altitude": "Высота (м)", + "station.settings.antenna": "Антенна", + "station.settings.button.save": "Сохранить настройки", + "station.settings.button.save.confirm": "Настройки сохранены в вашем браузере", + "station.settings.callsign": "Ваш позывной", + "station.settings.headerSize": "Размер вашего позывного", + "station.settings.describe": "Введите ваш позывной и локатор для начала работы. Настройки сохраняются в вашем браузере.", + "station.settings.dx.describe": "→ DX Spider в реальном времени через наш прокси-сервис", + "station.settings.dx.option1": "⭐ DX Spider Прокси (Рекомендуется)", + "station.settings.dx.option2": "HamQTH Кластер", + "station.settings.dx.option3": "DXWatch", + "station.settings.dx.option4": "Авто (попробовать все источники)", + "station.settings.dx.title": "Источник DX кластера", + "station.settings.layout": "Макет", + "station.settings.layout.classic": "Классический", + "station.settings.layout.classic.describe": "→ Оригинальный макет в стиле HamClock", + "station.settings.layout.modern": "Современный", + "station.settings.layout.modern.describe": "→ Современный адаптивный сеточный макет", + "station.settings.layout.tablet": "Планшет", + "station.settings.layout.tablet.describe": "→ Оптимизирован для широкоформатных дисплеев 7-10\" (16:9)", + "station.settings.layout.compact": "Компактный", + "station.settings.layout.compact.describe": "→ Макет для экранов 4:3 и меньше", + "station.settings.latitude": "Широта", + "station.settings.locator": "Локатор (или введите широту/долготу ниже)", + "station.settings.longitude": "Долгота", + "station.settings.power": "Мощность (Вт)", + "station.settings.theme": "ТЕМА", + "station.settings.theme.dark": "Тёмная", + "station.settings.theme.dark.describe": "→ Современная тёмная тема (по умолчанию)", + "station.settings.theme.legacy": "Классика", + "station.settings.theme.legacy.describe": "→ Стиль зелёного CRT-терминала", + "station.settings.theme.light": "Светлая", + "station.settings.theme.light.describe": "→ Светлая тема для дневного использования", + "station.settings.theme.retro": "Ретро", + "station.settings.theme.retro.describe": "→ Стиль Windows 90-х годов", + "station.settings.timezone": "Часовой пояс", + "station.settings.title": "⚙ Настройки станции", + "station.settings.tip.env": "💡 Совет: Для постоянной конфигурации скопируйте .env.example в .env и задайте CALLSIGN и LOCATOR", + "station.settings.useLocation": "📍 Использовать моё местоположение", + "station.settings.useLocation.error1": "Не удалось определить местоположение. Пожалуйста, введите вручную.", + "station.settings.useLocation.error2": "Геолокация не поддерживается вашим браузером.", + "station.settings.welcome": "👋 Добро пожаловать в OpenHamClock!", + "plugins.layers.aurora.name": "Прогноз полярного сияния", + "plugins.layers.aurora.description": "Прогноз вероятности полярного сияния NOAA OVATION (30 мин)", + "plugins.layers.earthquakes.name": "Землетрясения", + "plugins.layers.earthquakes.description": "Данные USGS о землетрясениях в реальном времени (M2,5+ за последние 24 часа)", + "plugins.layers.wxradar.name": "Метеорадар", + "plugins.layers.wxradar.description": "Наложение метеорадара NEXRAD для Северной Америки", + "plugins.layers.wxradar.attribution": "Метеоданные © Iowa State University Mesonet" +}