diff --git a/Telegram/Resources/langs/rewrites/uk.json b/Telegram/Resources/langs/rewrites/uk.json new file mode 100644 index 000000000..1d8808bc5 --- /dev/null +++ b/Telegram/Resources/langs/rewrites/uk.json @@ -0,0 +1,175 @@ +// This file is used to override translation in Kotatogram. +// Please note that changes here won't be saved, because +// this file is bundled into application. +// Suggest any new translations or edits for existing here: +// https://github.com/kotatogram/kotatogram-desktop/issues + +{ + "ktg_intro_about": "Вітаємо в неофіційному додатку\nна основі Telegram Desktop.", + "ktg_about_text1": "Экспериментальний неофіційний форк {tdesktop_link}.", + "ktg_about_text3": "Щоб дізнатися більше, відвідайте {channel_link} або {faq_link} (англ.).", + "ktg_about_text3_channel": "канал Kotatogram", + "ktg_new_version": "Kotatogram Desktop оновився до версії {version} (TD {td_version})\n\nПовна історія змін доступна тут:\n{link}", + "ktg_open_from_tray": "Відкрити Kotatogram", + "ktg_quit_from_tray": "Закрити Kotatogram", + "ktg_tray_icon_text": "Kotatogram продовжує працювати,\nВи можете змінити це в налаштуваннях.\nЯкщо значок зникне звідси,\nйого можна перетягнути назад з прихованих значків.", + "ktg_error_start_minimized_passcoded": "Ви встановили локальний пароль, тому його неможливо запустити у фоні. Для входу в додаток потрібно спочатку ввести пароль.", + "ktg_proxy_unsupported": "Посилання некоректне або тип проксі-сервера не підтримуєтся в Kotatogram Desktop. Переконайтесь, що використовуєте останню версію програми.", + "ktg_update_telegram": "Оновити Kotatogram", + "ktg_settings_auto_start": "Запускати Kotatogram разом із системою", + "ktg_settings_add_sendto": "Додати у меню «Надіслати до»", + "ktg_theme_no_desktop": "На жаль, ця тема не підходить для Kotatogram Desktop.", + "ktg_download_path_default_radio": "Тека Kotatogram у «Завантаженнях» системи", + "ktg_passcode_about": "Коли локальний пароль встановлений, над списком чатів є значок замка для блокування програми.\n\nПамʼятайте: якщо ви забудете свій локальний пароль, вам потрібно буде вийти і заново увійти у свій акаунт в Kotatogram Desktop.", + "ktg_message_unsupported": "Це повідомлення не підтримується вашою версією Kotatogram. Оновіться до останньої версії в «Налаштуваннях» або встановіть її з {link}", + "ktg_bot_share_location_unavailable": "В Kotatogram Desktop поки що неможливо ділитися розташуванням.", + "ktg_theme_editor_need_unlock": "Щоб зберегти тему, необхідно розблокувати додаток.", + "ktg_payments_not_supported": "На жаль, Kotatogram Desktop ще не підтримує платежі.Будь ласка, використовуйте для цього мобільні додатки.", + "ktg_no_mic_permission": "Щоб Ви могли телефонувати та записувати голосові повідомлення, Kotatogram потребує доступу до мікрофона.", + "ktg_passport_app_out_of_date": "На жаль, ваша версія додатка застаріла і не може обробити запит. Будь ласка, оновіть Kotatogram.", + "ktg_export_progress": "Це вікно можна закрити. Але будь ласка, не закривайте Kotatogram, поки експорт даних не завершиться.", + "ktg_language_not_ready_about": "На жаль, в цьому неофіційному перекладі ({lang_name}) немає текстів додатка Kotatogram Desktop. Ви можете використовувати {link}, щоб допомогти з перекладом додатка.", + "ktg_outdated_soon": "Інакше додаток перестане оновлюватися з {date}.", + "ktg_outdated_now": "Щоб Kotatogram міг отримувати оновлення.", + "ktg_mac_menu_show": "Показати Kotatogram", + "ktg_settings_kotato": "Опції Kotatogram", + "ktg_user_status_unaccessible": "аккаунт недоступний", + "ktg_settings_show_json_settings": "Показати файл налаштувань", + "ktg_settings_restart": "Перезапустити Kotatogram", + "ktg_copy_btn_callback": "Копіювати callback-дані", + "ktg_pinned_message_show": "Показати закріплене повідомлення", + "ktg_pinned_message_hide": "Приховати закріплене повідомлення", + "ktg_settings_chats": "Чати", + "ktg_settings_sticker_height": "Висота наліпок: {pixels} пікс.", + "ktg_settings_sticker_scale_both": "Застосовувати до ширини наліпок", + "ktg_settings_sticker_scale_both_about": "Якщо увімкнено максимальна ширина наліпки буде змінюватися разом з висотою.", + "ktg_settings_emoji_outline": "Обведення у великих емодзі", + "ktg_settings_disable_up_edit": "Не редагувати клавішею вгору", + "ktg_settings_always_show_scheduled": "Завжди показувати відкладені", + "ktg_settings_chat_list_compact": "Компактний список чатів", + "ktg_fonts_title": "Шрифти", + "ktg_settings_fonts": "Змінити шрифти додатка", + "ktg_fonts_reset": "Скинути", + "ktg_fonts_about": "Для застосування і перегляду змін потрібен перезапуск.", + "ktg_fonts_main": "Основний шрифт", + "ktg_fonts_semibold": "Напівжирний шрифт", + "ktg_fonts_semibold_is_bold": "Жирне накреслення", + "ktg_fonts_monospaced": "Моноширинний шрифт", + "ktg_fonts_use_system_font": "Використовувати системний шрифт", + "ktg_fonts_use_original_metrics": "Висота Open Sans", + "ktg_settings_network": "Мережа", + "ktg_settings_net_speed_boost": "Прискорення завантаження", + "ktg_net_speed_boost_title": "Прискорення завантаження", + "ktg_net_speed_boost_desc": "Увага: високі значення параметра при повільному інтернеті можуть зробити ще гірше. Використовуйте на свій страх і ризик. \n\nДля збереження змін потрібен перезапуск.", + "ktg_net_speed_boost_default": "Відключено", + "ktg_net_speed_boost_slight": "Трішки", + "ktg_net_speed_boost_medium": "Середнє", + "ktg_net_speed_boost_big": "Високе", + "ktg_settings_system": "Система", + "ktg_settings_use_native_decorations": "Системна рамка вікна", + "ktg_settings_other": "Інші", + "ktg_profile_copy_id": "Копіювати ID", + "ktg_profile_bot_id": "ID бота", + "ktg_profile_user_id": "ID користувача", + "ktg_profile_group_id": "ID групи", + "ktg_profile_supergroup_id": "ID супергрупи", + "ktg_profile_channel_id": "ID канала", + "ktg_settings_show_phone_number": "Телефон в головному меню", + "ktg_settings_call_confirm": "Підтвердження перед дзвінком", + "ktg_call_sure": "Ви впевнені, що хочете зателефонувати цьому користувачу?", + "ktg_call_button": "Зателефонувати", + "ktg_settings_adaptive_bubbles": "Адаптивна ширина повідомлень", + "ktg_settings_disable_sound_from_tray": "Відключити звук", + "ktg_settings_enable_sound_from_tray": "Включити звук", + "ktg_settings_recent_stickers_limit": { + "one": "Недавні наліпки: показувати {count} шт.", + "few": "Недавні наліпки: показувати {count} шт.", + "many": "Недавні наліпки: показувати {count} шт.", + "other": "Недавні наліпки: показувати {count} шт." + }, + "ktg_settings_recent_stickers_limit_none": "Недавні наліпки: приховати всі", + "ktg_filters_default": "Папка за замовчуванням", + "ktg_filters_context_edit_all": "Змінити папки", + "ktg_filters_context_make_default": "Зробити папкою за замовчуванням", + "ktg_filters_context_reset_default": "Відновити папку за замовчуванням", + "ktg_settings_filters": "Папки", + "ktg_settings_filters_only_unmuted_counter": "Не враховувати чати без сповіщень", + "ktg_settings_filters_hide_edit": "Приховати кнопку «Змінити»", + "ktg_settings_filters_hide_folder_names": "Компактні папки", + "ktg_settings_top_bar_mute": "Сповіщення вгорі профіля", + "ktg_settings_messages": "Повідомлення", + "ktg_settings_filters_hide_all": "Приховати папку «Усі чати»", + "ktg_hide_pinned_message": "Приховати", + "ktg_stickers_copy_title": "Копіювати назву", + "ktg_stickers_title_copied": "Назва набору наліпок скопійовано в буфер обміну.", + "ktg_context_show_messages_from": "Повідомлення користувача", + "ktg_settings_userpic_rounding": "Скруглення фото профіля", + "ktg_settings_userpic_rounding_none": "Квадрат", + "ktg_settings_userpic_rounding_small": "Трохи", + "ktg_settings_userpic_rounding_big": "Сильно", + "ktg_settings_userpic_rounding_full": "Круг", + "ktg_settings_userpic_rounding_desc": "Для застосування і перегляду змін потрібен перезапуск.", + "ktg_settings_tray_icon": "Іконка в треї", + "ktg_settings_tray_icon_default": "Стандартна", + "ktg_settings_tray_icon_blue": "Синя", + "ktg_settings_tray_icon_green": "Зелена", + "ktg_settings_tray_icon_orange": "Помаранчева", + "ktg_settings_tray_icon_red": "Червона", + "ktg_settings_tray_icon_legacy": "Стара", + "ktg_settings_tray_icon_desc": "Якщо вам не подобається жодна з цих іконок, ви можете покласти icon.png в каталог профіля, але для її перегляду потрібно перезапуск. \n\nІконкам нижче перезапуск не потрібно.", + "ktg_settings_disable_tray_counter": "Сховати лічильник на іконці в треї", + "ktg_settings_use_telegram_panel_icon": "Запитувати у системи іконку Telegram", + "ktg_settings_chat_id": "ID чата в профілі", + "ktg_settings_chat_id_desc": "Тут можна вибрати бажаний вид ID. \n\nTelegram API використовує ID як є на справді, а Bot API додає мінус в початок для груп і -100 для каналів і супергруп, щоб вмістити все в одне поле. \n\nЯкщо у вас відкрита панель профілю , закрийте її і відкрийте заново, щоб побачити зміни.", + "ktg_settings_chat_id_disable": "Приховати", + "ktg_settings_chat_id_telegram": "Telegram API", + "ktg_settings_chat_id_bot": "Bot API", + "ktg_message_id": "ID повідомлення: {id}", + "ktg_emoji_panel_hover": "Панель емодзі по наведенню", + "ktg_local_storage_limit_days": { + "one": "{count} день", + "few": "{count} дні", + "many": "{count} днів", + "other": "{count} дня" + } + "ktg_settings_monospace_large_bubbles": "Розширювати моноширинні повідомлення", + "ktg_bot_id_copied": "ID бота скопійовано.", + "ktg_user_id_copied": "ID користувача скопійовано.", + "ktg_group_id_copied": "D групи скопійовано.", + "ktg_supergroup_id_copied": "ID супергрупи скопійовано", + "ktg_channel_id_copied": "ID каналу скопійовано.", + "ktg_phone_copied": "Номер телефону скопійовано.", + "ktg_mention_copied": "Ім'я користувача скопійовано.", + "ktg_status_mutual_contact": "взаємний контакт", + "ktg_status_contact": "контакт", + "ktg_status_non_contact": "не контакт", + "ktg_supergroup_status": "супергрупа", + "ktg_group_status_not_in": "не учасник", + "ktg_channel_status_not_in": "не підписник", + "ktg_group_status_owner": "ви власник", + "ktg_group_status_admin": "ви адмін", + "ktg_too_many_accounts_warning": "Увага! Не рекомендується використання великої кількості акаунтів одночасно, можливе високий споживання оперативної пам'яті, а також зависань додатку через це. \n\nВи дійсно хочете додати акаунт?", + "ktg_account_add_anyway": "Все одно додати", + "ktg_media_selected_gif": { + "one": "{count} GIF", + "few": "{count} GIF", + "many": "{count} GIF", + "other": "{count} GIF" + }, + "ktg_media_type_gif": "GIF", + "ktg_profile_gif": { + "one": "{count} GIF", + "few": "{count} GIF", + "many": "{count} GIF", + "other": "{count} GIF" + }, + "ktg_media_gif_empty": "Тут немає жодного GIF", + "ktg_rights_chat_send_stickers": "Надсилати наліпки", + "ktg_rights_chat_send_gif": "Надсилати GIF", + "ktg_rights_chat_send_games": "Надсилати ігри", + "ktg_rights_chat_use_inline": "Використання інлайн-ботів", + "ktg_admin_log_banned_send_stickers": "Надсилати наліпки", + "ktg_admin_log_banned_send_gif": "Надсилати GIF", + "ktg_admin_log_banned_send_games": "Надсилати ігри", + "ktg_admin_log_banned_use_inline": "Використання інлайн-ботів", +} \ No newline at end of file diff --git a/Telegram/Resources/qrc/telegram/telegram.qrc b/Telegram/Resources/qrc/telegram/telegram.qrc index 1d213cafa..96aa7db07 100644 --- a/Telegram/Resources/qrc/telegram/telegram.qrc +++ b/Telegram/Resources/qrc/telegram/telegram.qrc @@ -73,5 +73,6 @@ ../../langs/rewrites/ru.json + ../../langs/rewrites/uk.json diff --git a/Telegram/SourceFiles/lang/lang_instance.cpp b/Telegram/SourceFiles/lang/lang_instance.cpp index d2dc60277..4b1612af5 100644 --- a/Telegram/SourceFiles/lang/lang_instance.cpp +++ b/Telegram/SourceFiles/lang/lang_instance.cpp @@ -565,23 +565,25 @@ QString Instance::jsonLangDir() { void Instance::fillDefaultJson() { if (!QDir().exists(jsonLangDir())) QDir().mkpath(jsonLangDir()); - const auto path = jsonLangDir() + "ru.default.json"; - const auto pathRaw = jsonLangDir() + "ru-raw.default.json"; - auto input = QFile(":/ktg_lang/ru.json"); - auto output = QFile(path); - auto outputRaw = QFile(pathRaw); - if (input.open(QIODevice::ReadOnly)) { - auto inputData = input.readAll(); - if (output.open(QIODevice::WriteOnly)) { - output.write(inputData); - output.close(); - } + for (const auto language : { "ru", "uk" }) { + const auto path = jsonLangDir() + language + ".default.json"; + const auto pathRaw = jsonLangDir() + language + "-raw.default.json"; + auto input = QFile(qsl(":/ktg_lang/%1.json").arg(language)); + auto output = QFile(path); + auto outputRaw = QFile(pathRaw); + if (input.open(QIODevice::ReadOnly)) { + auto inputData = input.readAll(); + if (output.open(QIODevice::WriteOnly)) { + output.write(inputData); + output.close(); + } - if (outputRaw.open(QIODevice::WriteOnly)) { - outputRaw.write(inputData); - outputRaw.close(); + if (outputRaw.open(QIODevice::WriteOnly)) { + outputRaw.write(inputData); + outputRaw.close(); + } + input.close(); } - input.close(); } }