From 1da7c0405e16988db915d188a17fcb559baa446f Mon Sep 17 00:00:00 2001 From: ykarpenko Date: Sun, 20 Jul 2025 20:47:07 +0300 Subject: [PATCH] Feature: Ukrainian translation --- src/bin/edit/localization.rs | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/bin/edit/localization.rs b/src/bin/edit/localization.rs index f42838625b6f..052dbcc001fb 100644 --- a/src/bin/edit/localization.rs +++ b/src/bin/edit/localization.rs @@ -109,6 +109,7 @@ enum LangId { ko, pt_br, ru, + uk, zh_hans, zh_hant, @@ -128,6 +129,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "Ctrl", /* pt_br */ "Ctrl", /* ru */ "Ctrl", + /* uk */ "Ctrl", /* zh_hans */ "Ctrl", /* zh_hant */ "Ctrl", ], @@ -142,6 +144,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "Alt", /* pt_br */ "Alt", /* ru */ "Alt", + /* uk */ "Alt", /* zh_hans */ "Alt", /* zh_hant */ "Alt", ], @@ -156,6 +159,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "Shift", /* pt_br */ "Shift", /* ru */ "Shift", + /* uk */ "Shift", /* zh_hans */ "Shift", /* zh_hant */ "Shift", ], @@ -185,6 +189,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "예", /* pt_br */ "Sim", /* ru */ "Да", + /* uk */ "Так", /* zh_hans */ "是", /* zh_hant */ "是", ], @@ -199,6 +204,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "아니오", /* pt_br */ "Não", /* ru */ "Нет", + /* uk */ "Ні", /* zh_hans */ "否", /* zh_hant */ "否", ], @@ -213,6 +219,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "취소", /* pt_br */ "Cancelar", /* ru */ "Отмена", + /* uk */ "Скасувати", /* zh_hans */ "取消", /* zh_hant */ "取消", ], @@ -227,6 +234,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "항상", /* pt_br */ "Sempre", /* ru */ "Всегда", + /* uk */ "Завжди", /* zh_hans */ "总是", /* zh_hant */ "總是", ], @@ -242,6 +250,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "파일", /* pt_br */ "Arquivo", /* ru */ "Файл", + /* uk */ "Файл", /* zh_hans */ "文件", /* zh_hant */ "檔案", ], @@ -256,6 +265,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "새 파일", /* pt_br */ "Novo arquivo", /* ru */ "Новый файл", + /* uk */ "Новий файл", /* zh_hans */ "新建文件", /* zh_hant */ "新增檔案", ], @@ -270,6 +280,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "파일 열기…", /* pt_br */ "Abrir arquivo…", /* ru */ "Открыть файл…", + /* uk */ "Відкрити файл…" /* zh_hans */ "打开文件…", /* zh_hant */ "開啟檔案…", ], @@ -284,6 +295,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "저장", /* pt_br */ "Salvar", /* ru */ "Сохранить", + /* uk */ "Зберегти", /* zh_hans */ "保存", /* zh_hant */ "儲存", ], @@ -298,6 +310,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "다른 이름으로 저장…", /* pt_br */ "Salvar como…", /* ru */ "Сохранить как…", + /* uk */ "Зберегти як…", /* zh_hans */ "另存为…", /* zh_hant */ "另存新檔…", ], @@ -312,6 +325,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "파일 닫기", /* pt_br */ "Fechar arquivo", /* ru */ "Закрыть файл", + /* uk */ "Закрити файл", /* zh_hans */ "关闭文件", /* zh_hant */ "關閉檔案", ], @@ -326,6 +340,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "종료", /* pt_br */ "Sair", /* ru */ "Выход", + /* uk */ "Вихід", /* zh_hans */ "退出", /* zh_hant */ "退出", ], @@ -340,6 +355,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "행:열로 이동…", /* pt_br */ "Ir para linha:coluna…", /* ru */ "Перейти к строке:столбцу…", + /* uk */ "Перейти на рядок:стовпчик…", /* zh_hans */ "转到行:列…", /* zh_hant */ "跳至行:列…", ], @@ -355,6 +371,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "편집", /* pt_br */ "Editar", /* ru */ "Правка", + /* uk */ "Редагувати", /* zh_hans */ "编辑", /* zh_hant */ "編輯", ], @@ -369,6 +386,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "실행 취소", /* pt_br */ "Desfazer", /* ru */ "Отменить", + /* uk */ "Скасувати", /* zh_hans */ "撤销", /* zh_hant */ "復原", ], @@ -383,6 +401,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "다시 실행", /* pt_br */ "Refazer", /* ru */ "Повторить", + /* uk */ "Повторити", /* zh_hans */ "重做", /* zh_hant */ "重做", ], @@ -397,6 +416,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "잘라내기", /* pt_br */ "Cortar", /* ru */ "Вырезать", + /* uk */ "Вирізати", /* zh_hans */ "剪切", /* zh_hant */ "剪下", ], @@ -411,6 +431,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "복사", /* pt_br */ "Copiar", /* ru */ "Копировать", + /* uk */ "Копіювати", /* zh_hans */ "复制", /* zh_hant */ "複製", ], @@ -425,6 +446,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "붙여넣기", /* pt_br */ "Colar", /* ru */ "Вставить", + /* uk */ "Вставити", /* zh_hans */ "粘贴", /* zh_hant */ "貼上", ], @@ -439,6 +461,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "찾기", /* pt_br */ "Encontrar", /* ru */ "Найти", + /* uk */ "Знайти", /* zh_hans */ "查找", /* zh_hant */ "尋找", ], @@ -453,6 +476,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "바꾸기", /* pt_br */ "Substituir", /* ru */ "Заменить", + /* uk */ "Замінити", /* zh_hans */ "替换", /* zh_hant */ "取代", ], @@ -467,6 +491,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "모두 선택", /* pt_br */ "Selecionar tudo", /* ru */ "Выделить всё", + /* uk */ "Вибрати все", /* zh_hans */ "全选", /* zh_hant */ "全選" ], @@ -482,6 +507,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "보기", /* pt_br */ "Exibir", /* ru */ "Вид", + /* uk */ "Вигляд", /* zh_hans */ "视图", /* zh_hant */ "檢視", ], @@ -496,6 +522,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "상태 표시줄로 포커스 이동", /* pt_br */ "Focar barra de status", /* ru */ "Фокус на строку состояния", + /* uk */ "Фокус на рядок стану", /* zh_hans */ "聚焦状态栏", /* zh_hant */ "聚焦狀態列", ], @@ -510,6 +537,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "자동 줄 바꿈", /* pt_br */ "Quebra de linha", /* ru */ "Перенос слов", + /* uk */ "Переніс слів", /* zh_hans */ "自动换行", /* zh_hant */ "自動換行", ], @@ -524,6 +552,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "파일로 이동…", /* pt_br */ "Ir para arquivo…", /* ru */ "Перейти к файлу…", + /* uk */ "Перейти до файлу…", /* zh_hans */ "转到文件…", /* zh_hant */ "跳至檔案…", ], @@ -539,6 +568,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "도움말", /* pt_br */ "Ajuda", /* ru */ "Помощь", + /* uk */ "Допомога", /* zh_hans */ "帮助", /* zh_hant */ "幫助", ], @@ -553,6 +583,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "정보", /* pt_br */ "Sobre", /* ru */ "О программе", + /* uk */ "Про програму", /* zh_hans */ "关于", /* zh_hant */ "關於", ], @@ -568,6 +599,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "저장되지 않은 변경 사항", /* pt_br */ "Alterações não salvas", /* ru */ "Несохраненные изменения", + /* uk */ "Незбережені зміни", /* zh_hans */ "未保存的更改", /* zh_hant */ "未儲存的變更", ], @@ -582,6 +614,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "변경한 내용을 저장하시겠습니까?", /* pt_br */ "Deseja salvar as alterações feitas?", /* ru */ "Вы хотите сохранить внесённые изменения?", + /* uk */ "Зберегти внесені зміни?", /* zh_hans */ "您要保存所做的更改吗?", /* zh_hant */ "您要保存所做的變更嗎?", ], @@ -596,6 +629,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "저장", /* pt_br */ "Salvar", /* ru */ "Сохранить", + /* uk */ "Зберегти", /* zh_hans */ "保存", /* zh_hant */ "儲存", ], @@ -610,6 +644,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "저장 안 함", /* pt_br */ "Não salvar", /* ru */ "Не сохранять", + /* uk */ "Не зберігати", /* zh_hans */ "不保存", /* zh_hant */ "不儲存", ], @@ -625,6 +660,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "정보", /* pt_br */ "Sobre", /* ru */ "О программе", + /* uk */ "Про програму", /* zh_hans */ "关于", /* zh_hant */ "關於", ], @@ -639,6 +675,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "버전: ", /* pt_br */ "Versão: ", /* ru */ "Версия: ", + /* uk */ "Версія: ", /* zh_hans */ "版本: ", /* zh_hant */ "版本: ", ], @@ -655,6 +692,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "복사한 텍스트가 터미널 클립보드와 공유됩니다.", /* pt_br */ "O texto copiado é compartilhado com a área de transferência do terminal.", /* ru */ "Скопированный текст передаётся в буфер обмена терминала.", + /* uk */ "Скопійований текст доступний в буфері обміну терміналу.", /* zh_hans */ "你复制的文本将共享到终端剪贴板。", /* zh_hant */ "您複製的文字將會與終端機剪貼簿分享。", ], @@ -669,6 +707,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "{size}를 복사했습니다. 공유하는 데 시간이 오래 걸릴 수 있습니다.", /* pt_br */ "Você copiou {size}, o que pode demorar para compartilhar.", /* ru */ "Вы скопировали {size}; передача может занять много времени.", + /* uk */ "Скопійовано {size}, передача може зайняти дещо часу.", /* zh_hans */ "你复制了 {size},共享可能需要较长时间。", /* zh_hant */ "您已複製 {size},共享可能需要較長時間。", ], @@ -683,6 +722,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "그래도 전송하시겠습니까?", /* pt_br */ "Deseja enviar mesmo assim?", /* ru */ "Отправить в любом случае?", + /* uk */ "Все одно надіслати?", /* zh_hans */ "仍要发送吗?", /* zh_hant */ "仍要傳送嗎?", ], @@ -697,6 +737,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "복사한 텍스트가 너무 커서 공유할 수 없습니다.", /* pt_br */ "O texto copiado é grande demais para ser compartilhado.", /* ru */ "Скопированный текст слишком велик для передачи.", + /* uk */ "Скопійований текст завеликий для передачі.", /* zh_hans */ "你复制的文本过大,无法共享。", /* zh_hant */ "您複製的文字過大,無法分享。", ], @@ -712,6 +753,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "경고", /* pt_br */ "Aviso", /* ru */ "Предупреждение", + /* uk */ "Попередження", /* zh_hans */ "警告", /* zh_hant */ "警告", ], @@ -727,6 +769,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "오류", /* pt_br */ "Erro", /* ru */ "Ошибка", + /* uk */ "Помилка", /* zh_hans */ "错误", /* zh_hant */ "錯誤", ], @@ -741,6 +784,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "이 작업에는 ICU 라이브러리가 필요합니다", /* pt_br */ "Esta operação requer a biblioteca ICU", /* ru */ "Эта операция требует наличия библиотеки ICU", + /* uk */ "Ця операція потребує наявності бібліотеки ICU", /* zh_hans */ "此操作需要 ICU 库", /* zh_hant */ "此操作需要 ICU 庫", ], @@ -756,6 +800,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "찾기:", /* pt_br */ "Encontrar:", /* ru */ "Найти:", + /* uk */ "Знайти:", /* zh_hans */ "查找:", /* zh_hant */ "尋找:", ], @@ -770,6 +815,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "바꾸기:", /* pt_br */ "Substituir:", /* ru */ "Замена:", + /* uk */ "Заміна:", /* zh_hans */ "替换:", /* zh_hant */ "替換:", ], @@ -784,6 +830,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "대소문자", /* pt_br */ "Maius/minus", /* ru */ "Регистр", + /* uk */ "Регістр", /* zh_hans */ "区分大小写", /* zh_hant */ "區分大小寫", ], @@ -798,6 +845,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "전체 단어", /* pt_br */ "Palavra", /* ru */ "Слово", + /* uk */ "Ціле слово", /* zh_hans */ "全字匹配", /* zh_hant */ "全字匹配", ], @@ -812,6 +860,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "정규식", /* pt_br */ "RegEx", /* ru */ "RegEx", + /* uk */ "RegEx", /* zh_hans */ "正则", /* zh_hant */ "正則", ], @@ -826,6 +875,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "모두 바꾸기", /* pt_br */ "Substituir tudo", /* ru */ "Заменить все", + /* uk */ "Замінити все", /* zh_hans */ "全部替换", /* zh_hant */ "全部取代", ], @@ -840,6 +890,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "닫기", /* pt_br */ "Fechar", /* ru */ "Закрыть", + /* uk */ "Закрити", /* zh_hans */ "关闭", /* zh_hant */ "關閉", ], @@ -855,6 +906,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "인코딩으로 다시 열기…", /* pt_br */ "Reabrir com codificação…", /* ru */ "Открыть снова с кодировкой…", + /* uk */ "Відкрити наново з кодуванням…", /* zh_hans */ "使用编码重新打开…", /* zh_hant */ "使用編碼重新打開…", ], @@ -869,6 +921,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "인코딩으로 변환…", /* pt_br */ "Converter para codificação…", /* ru */ "Преобразовать в кодировку…", + /* uk */ "Перетворити в кодування…", /* zh_hans */ "转换为编码…", /* zh_hant */ "轉換為編碼…", ], @@ -884,6 +937,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "탭", /* pt_br */ "Tabulações", /* ru */ "Табы", + /* uk */ "Табуляція", /* zh_hans */ "制表符", /* zh_hant */ "製表符", ], @@ -898,6 +952,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "공백", /* pt_br */ "Espaços", /* ru */ "Пробелы", + /* uk */ "Пробіли", /* zh_hans */ "空格", /* zh_hant */ "空格", ], @@ -913,6 +968,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "폴더:", /* pt_br */ "Pasta:", /* ru */ "Папка:", + /* uk */ "Папка:", /* zh_hans */ "文件夹:", /* zh_hant */ "資料夾:", ], @@ -927,6 +983,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "파일 이름:", /* pt_br */ "Nome do arquivo:", /* ru */ "Имя файла:", + /* uk */ "Ім'я файлу:'", /* zh_hans */ "文件名:", /* zh_hant */ "檔案名稱:", ], @@ -942,6 +999,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "다른 이름으로 저장 확인", /* pt_br */ "Confirmar Salvar como", /* ru */ "Подтвердите «Сохранить как…»", + /* uk */ "Підтвердьте «Зберегти як…»", /* zh_hans */ "确认另存为", /* zh_hant */ "確認另存新檔", ], @@ -956,6 +1014,7 @@ const S_LANG_LUT: [[&str; LangId::Count as usize]; LocId::Count as usize] = [ /* ko */ "파일이 이미 존재합니다. 덮어쓰시겠습니까?", /* pt_br */ "O arquivo já existe. Deseja sobrescrevê-lo?", /* ru */ "Файл уже существует. Перезаписать?", + /* uk */ "Файл вже існує. Перезаписати?", /* zh_hans */ "文件已存在。要覆盖它吗?", /* zh_hant */ "檔案已存在。要覆蓋它嗎?", ], @@ -978,6 +1037,7 @@ pub fn init() { ("ko", LangId::ko), ("pt-br", LangId::pt_br), ("ru", LangId::ru), + ("uk", LangId::uk), ("zh-hant", LangId::zh_hant), ("zh-tw", LangId::zh_hant), ("zh", LangId::zh_hans),