From 1ad0cd20a14b29fa631fcbecc33ed3c6a5e108ec Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Mon, 4 Dec 2023 14:30:14 +0800 Subject: [PATCH] i18n(komga-tray): internationalization for desktop app tray menu --- komga-tray/src/main/kotlin/org/gotson/komga/RB.kt | 14 ++++++++++++++ .../gotson/komga/application/gui/TrayIconRunner.kt | 9 +++++---- .../resources/org/gotson/komga/messages.properties | 4 ++++ .../org/gotson/komga/messages_fr.properties | 4 ++++ 4 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 komga-tray/src/main/kotlin/org/gotson/komga/RB.kt create mode 100644 komga-tray/src/main/resources/org/gotson/komga/messages.properties create mode 100644 komga-tray/src/main/resources/org/gotson/komga/messages_fr.properties diff --git a/komga-tray/src/main/kotlin/org/gotson/komga/RB.kt b/komga-tray/src/main/kotlin/org/gotson/komga/RB.kt new file mode 100644 index 00000000..ec424947 --- /dev/null +++ b/komga-tray/src/main/kotlin/org/gotson/komga/RB.kt @@ -0,0 +1,14 @@ +package org.gotson.komga + +import org.slf4j.helpers.MessageFormatter +import java.util.ResourceBundle + +class RB private constructor() { + companion object { + private val BUNDLE: ResourceBundle = ResourceBundle.getBundle("org.gotson.komga.messages") + + fun getString(key: String, vararg args: Any?): String = + if (args.isEmpty()) BUNDLE.getString(key) + else MessageFormatter.arrayFormat(BUNDLE.getString(key), args).message + } +} diff --git a/komga-tray/src/main/kotlin/org/gotson/komga/application/gui/TrayIconRunner.kt b/komga-tray/src/main/kotlin/org/gotson/komga/application/gui/TrayIconRunner.kt index 78d0591b..2a055d59 100644 --- a/komga-tray/src/main/kotlin/org/gotson/komga/application/gui/TrayIconRunner.kt +++ b/komga-tray/src/main/kotlin/org/gotson/komga/application/gui/TrayIconRunner.kt @@ -4,6 +4,7 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.loadSvgPainter import androidx.compose.ui.window.Tray import androidx.compose.ui.window.application +import org.gotson.komga.RB import org.gotson.komga.openExplorer import org.gotson.komga.openUrl import org.springframework.beans.factory.annotation.Value @@ -41,10 +42,10 @@ class TrayIconRunner( Tray( icon = loadSvgPainter(ClassPathResource("icons/$iconFileName").inputStream, LocalDensity.current), menu = { - Item("Open Komga", onClick = { openUrl(komgaUrl) }) - Item("Show log file", onClick = { openExplorer(logFile) }) - Item("Open configuration directory", onClick = { openExplorer(komgaConfigDir) }) - Item("Quit Komga", onClick = ::exitApplication) + Item(RB.getString("menu.open_komga"), onClick = { openUrl(komgaUrl) }) + Item(RB.getString("menu.show_log"), onClick = { openExplorer(logFile) }) + Item(RB.getString("menu.show_conf_dir"), onClick = { openExplorer(komgaConfigDir) }) + Item(RB.getString("menu.quit"), onClick = ::exitApplication) }, ) } diff --git a/komga-tray/src/main/resources/org/gotson/komga/messages.properties b/komga-tray/src/main/resources/org/gotson/komga/messages.properties new file mode 100644 index 00000000..6c1b55f6 --- /dev/null +++ b/komga-tray/src/main/resources/org/gotson/komga/messages.properties @@ -0,0 +1,4 @@ +menu.open_komga=Open Komga +menu.quit=Quit Komga +menu.show_conf_dir=Open configuration directory +menu.show_log=Show log file diff --git a/komga-tray/src/main/resources/org/gotson/komga/messages_fr.properties b/komga-tray/src/main/resources/org/gotson/komga/messages_fr.properties new file mode 100644 index 00000000..4da329a9 --- /dev/null +++ b/komga-tray/src/main/resources/org/gotson/komga/messages_fr.properties @@ -0,0 +1,4 @@ +menu.open_komga=Ouvrir Komga +menu.quit=Quitter Komga +menu.show_conf_dir=Ouvrir le repertoire de configuration +menu.show_log=Révéler le fichier journal