translations: translate language names

This commit is contained in:
Travis Abendshien
2026-07-01 21:37:16 -07:00
parent daaae17113
commit 4d49e9c270
3 changed files with 70 additions and 40 deletions

View File

@@ -134,12 +134,15 @@ class SettingsPanel(PanelWidget):
# Language
self.language_combobox = QComboBox()
for k in LANGUAGES:
self.language_combobox.addItem(k, LANGUAGES[k])
translated_langs = [(Translations[f"language.{lang}"], lang) for lang in LANGUAGES]
translated_langs.sort(key=lambda x: x[0])
for lang in translated_langs:
self.language_combobox.addItem(lang[0], lang[1])
current_lang: str = self.driver.settings.language
if current_lang not in LANGUAGES.values():
if current_lang not in LANGUAGES:
current_lang = DEFAULT_TRANSLATION
self.language_combobox.setCurrentIndex(list(LANGUAGES.values()).index(current_lang))
self.language_combobox.setCurrentIndex([x[1] for x in translated_langs].index(current_lang))
self.language_combobox.currentIndexChanged.connect(self.__update_restart_label)
form_layout.addRow(Translations["settings.language"], self.language_combobox)
@@ -311,12 +314,9 @@ class SettingsPanel(PanelWidget):
todo_label = QLabel("TODO")
form_layout.addRow(todo_label)
def __get_language(self) -> str:
return list(LANGUAGES.values())[self.language_combobox.currentIndex()]
def get_settings(self) -> dict[str, Any]: # pyright: ignore[reportExplicitAny]
return {
"language": self.__get_language(),
"language": self.language_combobox.currentData(),
"open_last_loaded_on_startup": self.open_last_lib_checkbox.isChecked(),
"generate_thumbs": self.generate_thumbs.isChecked(),
"thumb_cache_size": max(

View File

@@ -16,38 +16,38 @@ logger = structlog.get_logger(__name__)
DEFAULT_TRANSLATION = "en"
LANGUAGES = {
# "Amharic": "am", # Minimal
"Cebuano": "ceb",
"Chinese (Simplified)": "zh_Hans",
"Chinese (Traditional)": "zh_Hant",
"Czech": "cs",
# "Danish": "da", # Minimal
"Dutch": "nl",
"English": "en",
"Filipino": "fil",
"Finnish": "fi",
"French": "fr",
"German": "de",
"Greek": "el",
"Hungarian": "hu",
# "Icelandic": "is", # Minimal
"Italian": "it",
"Japanese": "ja",
"Norwegian Bokmål": "nb_NO",
"Polish": "pl",
"Portuguese (Brazil)": "pt_BR",
"Portuguese (Portugal)": "pt",
"Romanian": "ro",
"Russian": "ru",
"Spanish": "es",
"Swedish": "sv",
"Tamil": "ta",
# "Thai": "th", # Minimal
"Toki Pona": "tok",
"Turkish": "tr",
"Viossa": "qpv",
}
LANGUAGES = [
# "am", # Minimal
"ceb",
"cs",
# "da", # Minimal
"de",
"el",
"en",
"es",
"fi",
"fil",
"fr",
"hu",
# "is", # Minimal
"it",
"ja",
"nb_NO",
"nl",
"pl",
"pt_BR",
"pt",
"qpv",
"ro",
"ru",
"sv",
"ta",
# "th", # Minimal
"tok",
"tr",
"zh_Hans",
"zh_Hant",
]
# A map of field class names to their respective translation keys.
FIELD_TYPE_KEYS = {

View File

@@ -196,6 +196,36 @@
"json_migration.title.new_lib": "<h2>v9.5+ Library</h2>",
"json_migration.title.old_lib": "<h2>v9.4 Library</h2>",
"landing.open_create_library": "Open/Create Library {shortcut}",
"language.am": "Amharic",
"language.ceb": "Cebuano",
"language.cs": "Czech",
"language.da": "Danish",
"language.de": "German",
"language.el": "Greek",
"language.en": "English",
"language.es": "Spanish",
"language.fi": "Finnish",
"language.fil": "Filipino",
"language.fr": "French",
"language.hu": "Hungarian",
"language.is": "Icelandic",
"language.it": "Italian",
"language.ja": "Japanese",
"language.nb_NO": "Norwegian Bokmål",
"language.nl": "Dutch",
"language.pl": "Polish",
"language.pt": "Portuguese",
"language.pt_BR": "Portuguese (Brazil)",
"language.qpv": "Viossa",
"language.ro": "Romanian",
"language.ru": "Russian",
"language.sv": "Swedish",
"language.ta": "Tamil",
"language.th": "Thai",
"language.tok": "Toki Pona",
"language.tr": "Turkish",
"language.zh_Hans": "Chinese (Simplified)",
"language.zh_Hant": "Chinese (Traditional)",
"library_info.cleanup": "Cleanup",
"library_info.cleanup.backups": "Library Backups:",
"library_info.cleanup.dupe_files": "Duplicate Files:",