diff --git a/README.md b/README.md
index b32dcfa4..a9817c55 100644
--- a/README.md
+++ b/README.md
@@ -140,6 +140,7 @@ UpSnap is available in the following languages so far:
- 🇳🇴 **Norwegian** (nb-NO)
- 🇵🇱 **Polish** (pl-PL)
- 🇵🇹 **Portuguese** (pt-PT)
+- 🇺🇦 **Ukrainian** (uk-UA)
- 🇹🇼 **Chinese (Taiwan)** (zh-TW)
- 🇨🇳 **Chinese** (zh-CN)
diff --git a/frontend/project.inlang/settings.json b/frontend/project.inlang/settings.json
index 9c19830c..75c37b49 100644
--- a/frontend/project.inlang/settings.json
+++ b/frontend/project.inlang/settings.json
@@ -14,6 +14,7 @@
"nb-NO",
"pl-PL",
"pt-PT",
+ "uk-UA",
"zh-TW",
"zh-CN"
],
diff --git a/frontend/src/lib/stores/locale.ts b/frontend/src/lib/stores/locale.ts
index e9296ca4..43ccaf67 100644
--- a/frontend/src/lib/stores/locale.ts
+++ b/frontend/src/lib/stores/locale.ts
@@ -8,10 +8,11 @@ import { fr } from 'date-fns/locale/fr';
import { it } from 'date-fns/locale/it';
import { ja } from 'date-fns/locale/ja';
import { ko } from 'date-fns/locale/ko';
-import { nl } from 'date-fns/locale/nl';
import { nb } from 'date-fns/locale/nb';
+import { nl } from 'date-fns/locale/nl';
import { pl } from 'date-fns/locale/pl';
import { pt } from 'date-fns/locale/pt';
+import { uk } from 'date-fns/locale/uk';
import { zhCN } from 'date-fns/locale/zh-CN';
import { zhTW } from 'date-fns/locale/zh-TW';
@@ -58,6 +59,9 @@ localeStore.subscribe((l: string) => {
case 'pt':
dateFnsLocale.set(pt);
break;
+ case 'uk-UA':
+ dateFnsLocale.set(uk);
+ break;
case 'zh-CN':
dateFnsLocale.set(zhCN);
break;
diff --git a/frontend/src/routes/account/+page.svelte b/frontend/src/routes/account/+page.svelte
index 44395487..c915e75c 100644
--- a/frontend/src/routes/account/+page.svelte
+++ b/frontend/src/routes/account/+page.svelte
@@ -28,6 +28,7 @@
'nb-NO': '🇳🇴',
'pl-PL': '🇵🇱',
'pt-PT': '🇵🇹',
+ 'uk-UA': '🇺🇦',
'zh-TW': '🇹🇼',
'zh-CN': '🇨🇳'
};
diff --git a/frontend/translations/uk-UA.json b/frontend/translations/uk-UA.json
new file mode 100644
index 00000000..c856136d
--- /dev/null
+++ b/frontend/translations/uk-UA.json
@@ -0,0 +1,195 @@
+{
+ "$schema": "https://inlang.com/schema/inlang-message-format",
+ "account_account_type_admin": "Адміністратор",
+ "account_account_type_user": "Користувач",
+ "account_avatar_title": "Аватар",
+ "account_change_password_body": "Після зміни пароля необхідно буде увійти повторно.",
+ "account_change_password_confirm": "Підтвердіть пароль",
+ "account_change_password_label": "Старий пароль",
+ "account_change_password_new": "Новий пароль",
+ "account_change_password_title": "Змінити пароль",
+ "account_language_title": "Мова",
+ "account_page_title": "Обліковий запис",
+ "buttons_add": "Додати",
+ "buttons_cancel": "Скасувати",
+ "buttons_change": "Змінити",
+ "buttons_confirm": "Підтвердити",
+ "buttons_delete": "Видалити",
+ "buttons_reset": "Скинути",
+ "buttons_save": "Зберегти",
+ "device_card_btn_more_edit": "Редагувати",
+ "device_card_btn_more_reboot": "Перезавантаження",
+ "device_card_btn_more_sleep": "Сон",
+ "device_card_btn_more": "Більше",
+ "device_card_nic_tooltip_pending": "В очікуванні",
+ "device_card_nic_tooltip_power_no_permission": "Немає дозволу увімкнути цей пристрій",
+ "device_card_nic_tooltip_power": "Увімкнути",
+ "device_card_nic_tooltip_shutdown_no_cmd": "Не встановлено команду вимкнення",
+ "device_card_nic_tooltip_shutdown_no_permission": "Немає дозволу вимкнути цей пристрій",
+ "device_card_nic_tooltip_shutdown": "Вимкнути",
+ "device_card_password": "Пароль",
+ "device_card_tooltip_last_status_change": "Остання зміна статусу",
+ "device_card_tooltip_shutdown_cron": "Вимкнути cron",
+ "device_card_tooltip_wake_cron": "Розбудити cron",
+ "device_card_tooltip_wake_password": "Пароль пробудження",
+ "device_general_description_placeholder": "Опису пристрою",
+ "device_general_description": "Опис",
+ "device_general_ip": "IP",
+ "device_general_mac": "MAC адреса",
+ "device_general_name": "Ім'я",
+ "device_general_netmask": "Маска мережі",
+ "device_general_required_field": "Обов'язкове поле",
+ "device_general": "Основні",
+ "device_groups_desc": "Ви можете додати пристрої до групи, щоб вони були відсортовані за групами на інформаційній панелі.",
+ "device_groups_placeholder": "Наприклад «Підвал» або «Офіс»",
+ "device_groups": "Групи",
+ "device_link_desc": "Дає змогу використовувати назву вашого пристрою як посилання на яке можна натиснути, це чудово підходить наприклад для відкриття дашборд панелей.",
+ "device_link_open_new_tab": "Відкрити в новому вікні браузера",
+ "device_link_open_no": "Не обрано",
+ "device_link_open_same_tab": "Відкрити в поточному вікні браузера",
+ "device_link_open": "Автоматично відкрити посилання",
+ "device_link": "Посилання",
+ "device_modal_confirm_shutdown_desc": "Підтвердьте, щоб вимкнути {device}.",
+ "device_modal_confirm_shutdown_title": "Вимкнути {device}?",
+ "device_modal_confirm_wake_desc": "Будь ласка, підтвердьте, щоб розбудити {device}.",
+ "device_modal_confirm_wake_title": "Розбудити {device}?",
+ "device_network_scan_add_all": "Додайте всі пристрої",
+ "device_network_scan_desc": "Автоматично скануйте свою мережу на наявність пристроїв. Щоб це працювало, вам потрібно запустити UpSnap від імені root/admin і мати встановлений і доступний nmap у вашому $PATH (в Docker версії це вже виконано, нічого додатково робити не потрібно). Сканування може тривати кілька секунд.",
+ "device_network_scan_include_unknown": "Включати пристрої з назвою \"Невідомо\"",
+ "device_network_scan_ip_range": "Діапазон IP",
+ "device_network_scan_ip": "IP:",
+ "device_network_scan_mac_vendor": "Постачальник MAC:",
+ "device_network_scan_mac": "MAC:",
+ "device_network_scan_netmask": "Маска мережі:",
+ "device_network_scan_new_netmask": "Нова маска мережі",
+ "device_network_scan_no_range": "Немає діапазону сканування",
+ "device_network_scan_range_saved": "Діапазон сканування збережено",
+ "device_network_scan_replace_netmask": "Замінити маску мережі для всіх пристроїв?",
+ "device_network_scan_running": "Сканування запущено",
+ "device_network_scan_unsaved_changes": "Незбережені зміни",
+ "device_network_scan": "Сканувати",
+ "device_page_title": "Новий пристрій",
+ "device_password_desc": "Деякі мережеві карти мають можливість установити пароль для Magic пакетів, який також називається SecureON. Пароль може складатися лише з 0, 4 або 6 символів.",
+ "device_password": "Пароль",
+ "device_ping_cmd": "Спеціальна команда ping",
+ "device_ping_desc": "Ви можете використовувати спеціальну команду оболонки, щоб перевірити, чи ввімкнено пристрій. Команда має повертати код виходу 0, щоб вказати, що пристрій увімкнено, будь-який інший код виходу позначатиме пристрій як вимкнений.",
+ "device_ping": "Пінг",
+ "device_ports_add_new": "Додати новий порт",
+ "device_ports_desc": "UpSnap також може перевірити, чи відкриті дані порти.",
+ "device_ports_name": "Ім'я",
+ "device_ports_number": "Номер",
+ "device_ports": "Порти",
+ "device_require_confirmation": "Вимагати підтвердження",
+ "device_shutdown_cmd": "Команда вимкнення",
+ "device_shutdown_cron_desc": "Подібно до налаштування cron для пробудження пристрою, ви також можете запланувати завдання cron для вимкнення цього пристрою.",
+ "device_shutdown_cron_enable": "Увімкнути cron для завершення роботи",
+ "device_shutdown_cron": "Вимкнути cron",
+ "device_shutdown_desc": "Ця команда оболонки виконуватиметься у вашому контейнері (якщо ви використовуєте Docker) або на вашому хості (якщо ви використовуєте двійковий файл). Щоб переконатися, що це працює, ви можете спочатку запустити команду всередині контейнера або в оболонці хоста. Типовими командами є net rpc для Windows, sshpass для Linux або curl загалом для виконання веб-запитів.",
+ "device_shutdown_examples_linux": "Вимкнути віддалену машину Linux:",
+ "device_shutdown_examples_windows": "Вимкнути віддалену машину Windows:",
+ "device_shutdown_examples": "Приклади:",
+ "device_shutdown_timeout": "Час очікування вимкнення (секунди)",
+ "device_shutdown": "Вимкнення",
+ "device_sol_authorization": "Авторизація",
+ "device_sol_desc1": "Ви можете перевести комп’ютери в режим сну за допомогою інструмента Sleep-On-LAN. Sleep-On-LAN (SOL) — це зовнішній інструмент/демон, який працює на ПК, які потрібно перевести в режим сну, надаючи кінцеву точку REST. Щоб отримати вказівки щодо налаштування Sleep-On-LAN, перегляньте розділ Використання.",
+ "device_sol_desc2": "SOL налаштовано на надсилання запитів через HTTP замість UDP, щоб увімкнути авторизацію та зробити запити більш надійними.",
+ "device_sol_desc3": "Тому переконайтеся, що ви включили HTTP:<YOURPORT> у розділ Слухачі конфігурації SOL.",
+ "device_sol_enable": "Увімкніть Sleep-On-LAN",
+ "device_sol_password": "Пароль SOL",
+ "device_sol_port": "Порт SOL",
+ "device_sol_user": "Користувач SOL",
+ "device_sol": "Sleep-On-LAN",
+ "device_tabs.0": "Параметри",
+ "device_tabs.1": "Сканування мережі",
+ "device_wake_cmd": "Спеціальна команда пробудження",
+ "device_wake_cron_enable": "Увімкнути wake cron",
+ "device_wake_cron": "Пробудження cron",
+ "device_wake_desc": "Ви можете пробудити цей пристрій за допомогою запланованого завдання cron.",
+ "device_wake_timeout": "Час очікування пробудження (секунди)",
+ "device_wake": "Пробудження",
+ "home_add_first_device": "Додайте свій перший пристрій",
+ "home_grant_permissions": "Попросіть адміністратора надати вам дозволи на наявні пристрої або створити нові.",
+ "home_no_devices": "Тут немає пристроїв.",
+ "home_order_groups": "Групи",
+ "home_order_ip": "IP",
+ "home_order_name": "Ім'я",
+ "home_order_tooltip": "Порядок",
+ "home_page_title": "Головна",
+ "home_search_placeholder": "Пошук пристроїв",
+ "home_wake_group": "Пробудження групи",
+ "login_btn_login": "Увійти",
+ "login_btn_more": "Додатково",
+ "login_email_label": "Електронна пошта або ім'я користувача:",
+ "login_menu_title_auth_providers": "Інші методи авторизації",
+ "login_password_label": "Пароль:",
+ "login_welcome": "Ласкаво просимо",
+ "navbar_edit_account": "Редагувати обліковий запис",
+ "navbar_logout": "Вийти",
+ "navbar_new": "Додати",
+ "navbar_theme": "Тема",
+ "settings_icon_desc": "Встановіть спеціальну піктограму. Підтримувані типи файлів:",
+ "settings_icon_title": "Значок",
+ "settings_invalid_cron": "❌ Недійсний синтаксис cron",
+ "settings_lazy_ping_desc": "Коли ввімкнено відкладений пінг, UpSnap перевірятиме лише пристрої, якщо є активний користувач, який відвідує веб-сайт. Якщо його вимкнено, UpSnap завжди перевіряє пристрої.",
+ "settings_lazy_ping_enable": "Увімкнути",
+ "settings_lazy_ping_title": "Відкладений пінг",
+ "settings_page_title": "Налаштування",
+ "settings_ping_interval_desc1": "Встановлює інтервал, протягом якого пристрої перевіряються. Залиште поле порожнім, щоб використовувати значення за умовчанням */3 * * * * *.",
+ "settings_ping_interval_desc2": "Дізнайтеся більше про правильний синтаксис для cron у Вікіпедії або зверніться до документації пакета.",
+ "settings_ping_interval_title": "Інтервал ping",
+ "settings_upsnap_version": "Версія UpSnap",
+ "settings_website_title_desc": "Встановлює назву для веб-сайту та вкладки браузера.",
+ "settings_website_title_title": "Назва сайту",
+ "toasts_admin_saved": "Адміністратора збережено",
+ "toasts_device_created": "Створено {device}",
+ "toasts_device_deleted": "Видалено {device}",
+ "toasts_device_updated": "Оновлено {device}",
+ "toasts_devices_created_multiple": "Створено {count} пристроїв",
+ "toasts_group_created": "Створено групу {group}",
+ "toasts_group_deleted": "Видалено групу {group}",
+ "toasts_no_permission": "Ви не маєте дозволу відвідувати {url}",
+ "toasts_password_changed": "Пароль змінено. Увійдіть ще раз.",
+ "toasts_passwords_missmatch": "Паролі не збігаються",
+ "toasts_permissions_created": "Дозволи для {username} створено",
+ "toasts_permissions_deleted": "Дозволи для {username} видалено",
+ "toasts_permissions_updated_personal": "Ваші дозволи оновлено",
+ "toasts_permissions_updated": "Дозволи для {username} оновлено",
+ "toasts_settings_saved": "Збережені налаштування",
+ "toasts_user_created": "Користувача {username} створено",
+ "toasts_user_deleted": "Користувача {username} видалено",
+ "toasts_user_saved": "Користувача збережено",
+ "users_allow_create_devices": "Дозвольте {username} створювати нові пристрої та редагувати групи пристроїв",
+ "users_confirm_delete_desc": "Ви впевнені, що хочете видалити {username}?",
+ "users_confirm_delete_title": "Підтвердити видалення",
+ "users_create_new_device": "Створіть новий пристрій",
+ "users_create_new_user": "Створити нового користувача",
+ "users_delete": "Видалити",
+ "users_device_permissions": "Дозволи пристрою",
+ "users_page_title": "Користувачі",
+ "users_password_confirm": "Підтвердження пароля",
+ "users_password": "Пароль",
+ "users_power": "Керування живленням",
+ "users_read": "Читання",
+ "users_required_field": "Обов'язкове поле",
+ "users_toggle": "Перемикач",
+ "users_update": "Оновити",
+ "users_username": "Ім'я користувача",
+ "welcome_not_expected_back": "Відвези мене назад",
+ "welcome_not_expected_desc": "Ви вже закінчили налаштування! Нічого робити.",
+ "welcome_not_expected_title": "Я вас тут не чекав! 🧐",
+ "welcome_progress_step1": "Ласкаво просимо",
+ "welcome_progress_step2": "Створити акаунт",
+ "welcome_progress_step3": "Готово",
+ "welcome_step1_page_title": "Ласкаво просимо до UpSnap 🥳",
+ "welcome_step1_setup_btn_next": "Далі",
+ "welcome_step1_setup_desc": "Щоб завершити налаштування, виконайте наведені нижче дії.",
+ "welcome_step2_btn_create": "Створити",
+ "welcome_step2_label_email": "Електронна пошта:",
+ "welcome_step2_label_min_chars": "мінімум 10 символів",
+ "welcome_step2_label_password_confirm": "Підтвердження пароля:",
+ "welcome_step2_label_password": "Пароль:",
+ "welcome_step2_page_title": "Створіть обліковий запис адміністратора",
+ "welcome_step3_btn_done": "Приступити!",
+ "welcome_step3_page_desc": "Тепер можете додати кілька пристроїв на інформаційну панель.",
+ "welcome_step3_page_title": "Все готово! 🎉"
+}
\ No newline at end of file