Repository: tauri-apps/tauri (language: rust)

Issue:
[feat] Ukrainian translation for custom tauri messages in the nsis bundle
### Describe the problem

I just bundled my app using NSIS, specifying English and Ukrainian, and noticed the warning that [custom tauri messages](https://github.com/tauri-apps/tauri/blob/dev/crates/tauri-bundler/src/bundle/windows/nsis/languages/English.nsh) aren't available in Ukrainian.

### Describe the solution you'd like

I would like to contribute a translation of those messages so that everyone can use it out of the box.

### Alternatives considered

_No response_

### Additional context

_No response_


Discussion / hints:

Fix patch:
diff --git a/.changes/nsis-ukranian.md b/.changes/nsis-ukranian.md
new file mode 100644
index 000000000000..645c93213238
--- /dev/null
+++ b/.changes/nsis-ukranian.md
@@ -0,0 +1,5 @@
+---
+'tauri-bundler': 'patch:enhance'
+---
+
+Added Ukrainian translation for the custom tauri messages in the nsis bundle
diff --git a/crates/tauri-bundler/src/bundle/windows/nsis/languages/Ukrainian.nsh b/crates/tauri-bundler/src/bundle/windows/nsis/languages/Ukrainian.nsh
new file mode 100644
index 000000000000..d0792515bcb2
--- /dev/null
+++ b/crates/tauri-bundler/src/bundle/windows/nsis/languages/Ukrainian.nsh
@@ -0,0 +1,27 @@
+LangString addOrReinstall ${LANG_UKRAINIAN} "Додати/Перевстановити компоненти"
+LangString alreadyInstalled ${LANG_UKRAINIAN} "Вже встановлено"
+LangString alreadyInstalledLong ${LANG_UKRAINIAN} "${PRODUCTNAME} ${VERSION} вже встановлено. Виберіть дію, яку ви хочете виконати, і натисніть Далі, щоб продовжити."
+LangString appRunning ${LANG_UKRAINIAN} "${PRODUCTNAME} запущено! Будь ласка, спочатку закрийте його, а потім спробуйте ще раз."
+LangString appRunningOkKill ${LANG_UKRAINIAN} "${PRODUCTNAME} запущено!$\nНатисніть ОК, щоб примусово закрити його"
+LangString chooseMaintenanceOption ${LANG_UKRAINIAN} "Виберіть дію, яку треба виконати."
+LangString choowHowToInstall ${LANG_UKRAINIAN} "Виберіть, як ви хочете встановити ${PRODUCTNAME}."
+LangString createDesktop ${LANG_UKRAINIAN} "Створити ярлик на робочому столі"
+LangString dontUninstall ${LANG_UKRAINIAN} "Не видаляти"
+LangString dontUninstallDowngrade ${LANG_UKRAINIAN} "Не видаляти (для цього встановлювача вимкнено зниження версії без видалення)"
+LangString failedToKillApp ${LANG_UKRAINIAN} "Не вдалося примусово закрити ${PRODUCTNAME}. Будь ласка, спочатку закрийте його, а потім спробуйте ще раз"
+LangString installingWebview2 ${LANG_UKRAINIAN} "Встановлення WebView2..."
+LangString newerVersionInstalled ${LANG_UKRAINIAN} "Новіша версія ${PRODUCTNAME} вже встановлена! Встановлювати старішу версію не рекомендується. Якщо ви дійсно хочете встановити цю версію, краще спочатку видаліть поточну. Виберіть дію, яку ви хочете виконати, і натисніть Далі, щоб продовжити."
+LangString older ${LANG_UKRAINIAN} "старішу"
+LangString olderOrUnknownVersionInstalled ${LANG_UKRAINIAN} "У вашій системі вже встановлено $R4 версію ${PRODUCTNAME}. Рекомендується видалити поточну версію перед встановленням. Виберіть дію, яку ви хочете виконати, і натисніть Далі, щоб продовжити."
+LangString silentDowngrades ${LANG_UKRAINIAN} "Для цього встановлювача вимкнено зниження версій. Неможливо продовжити роботу з фоновим встановлювачем. Будь ласка, скористайтеся встановлювачем з графічним інтерфейсом.$\n"
+LangString unableToUninstall ${LANG_UKRAINIAN} "Не вдалося видалити!"
+LangString uninstallApp ${LANG_UKRAINIAN} "Видалити ${PRODUCTNAME}"
+LangString uninstallBeforeInstalling ${LANG_UKRAINIAN} "Видалити перед встановленням"
+LangString unknown ${LANG_UKRAINIAN} "невідому"
+LangString webview2AbortError ${LANG_UKRAINIAN} "Не вдалося встановити WebView2! Без нього програма не може працювати. Спробуйте перезапустити встановлювач."
+LangString webview2DownloadError ${LANG_UKRAINIAN} "Помилка: не вдалося завантажити WebView2 - $0"
+LangString webview2DownloadSuccess ${LANG_UKRAINIAN} "WebView2 успішно завантажено"
+LangString webview2Downloading ${LANG_UKRAINIAN} "Завантаження WebView2..."
+LangString webview2InstallError ${LANG_UKRAINIAN} "Помилка: не вдалося встановити WebView2, код виходу - $1"
+LangString webview2InstallSuccess ${LANG_UKRAINIAN} "WebView2 успішно встановлено "
+LangString deleteAppData ${LANG_UKRAINIAN} "Видалити дані програми"
diff --git a/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs b/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs
index a61625af3ddb..7dd1a26cc0ce 100644
--- a/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs
+++ b/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs
@@ -720,6 +720,7 @@ fn get_lang_data(lang: &str) -> Option<(String, &[u8])> {
     "turkish" => include_bytes!("./languages/Turkish.nsh"),
     "swedish" => include_bytes!("./languages/Swedish.nsh"),
     "portuguese" => include_bytes!("./languages/Portuguese.nsh"),
+    "ukrainian" => include_bytes!("./languages/Ukrainian.nsh"),
     _ => return None,
   };
   Some((path, content))


Test patch: