Skip to content

Commit 0529080

Browse files
committed
translations: Update translation files and integrate several new languages
1 parent d370c33 commit 0529080

File tree

203 files changed

+45834
-846
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

203 files changed

+45834
-846
lines changed

autoload/TranslationManager.gd

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ const SUPPORTED_LOCALES := [
1818
"de",
1919
"tr",
2020
"nl",
21+
"uk",
22+
"zh_Hant",
23+
"cs",
2124
]
2225

2326
const LOCALE_TO_LABEL := {
@@ -31,6 +34,9 @@ const LOCALE_TO_LABEL := {
3134
"de": "Deutsch",
3235
"tr": "Türkçe",
3336
"nl": "Nederlands",
37+
"uk": "Українська",
38+
"zh_Hant": "繁體中文",
39+
"cs": "Čeština",
3440
}
3541

3642

@@ -46,90 +52,90 @@ func _ready() -> void:
4652

4753
func get_available_languages() -> Array:
4854
var languages := []
49-
55+
5056
for locale_code in SUPPORTED_LOCALES:
5157
var language_name: String = LOCALE_TO_LABEL.get(locale_code, "")
5258
if language_name == "":
5359
language_name = TranslationServer.get_locale_name(locale_code)
54-
60+
5561
languages.append({
5662
"code": locale_code,
5763
"name": language_name,
5864
})
59-
65+
6066
return languages
6167

6268

6369
func set_language(language_code: String) -> void:
6470
if current_language == language_code:
6571
return
66-
72+
6773
current_language = language_code
6874
var current_profile := UserProfiles.get_profile()
69-
75+
7076
# Remove existing translations from the translation server.
7177
if _loaded_translations.size() > 0:
7278
for translation in _loaded_translations:
7379
TranslationServer.remove_translation(translation)
74-
80+
7581
_loaded_translations = []
76-
82+
7783
# If the language is set to the default locale, we don't need to do anything else.
7884
if current_language == DEFAULT_LOCALE:
7985
TranslationServer.set_locale(current_language)
8086
current_profile.language = current_language
8187
current_profile.save()
8288
emit_signal("translation_changed")
8389
return
84-
90+
8591
# Load order shouldn't be important, so we'll just load everything from the folder.
8692
var locale_dir_path := I18N_ROOT.plus_file(current_language)
87-
93+
8894
var fs := Directory.new()
8995
if not fs.dir_exists(locale_dir_path):
9096
printerr("Failed to change language to '%s': Language folder does not exist." % [ current_language ])
9197
_reset_language()
9298
return
93-
99+
94100
var error = fs.change_dir(locale_dir_path)
95101
if error:
96102
printerr("Failed to open language folder for '%s': Error code %d" % [ current_language, error ])
97103
_reset_language()
98104
return
99-
105+
100106
error = fs.list_dir_begin(true, true)
101107
if error:
102108
printerr("Failed to list language folder for '%s': Error code %d" % [ current_language, error ])
103109
_reset_language()
104110
return
105-
111+
106112
# Iterate through all PO files and try to load them.
107113
var file_path = fs.get_next()
108114
while file_path:
109115
if not file_path.get_extension() == PO_EXTENSION:
110116
file_path = fs.get_next()
111117
continue
112-
118+
113119
var full_path = locale_dir_path.plus_file(file_path)
114-
120+
115121
if not ResourceLoader.exists(full_path):
116122
printerr("Language file at '%s' is not recognized as a valid resource." % [ full_path ])
117123
file_path = fs.get_next()
118124
continue
119-
125+
120126
var translation := ResourceLoader.load(full_path, "Translation") as Translation
121127
if not translation:
122128
printerr("Language resource at '%s' has failed to load." % [ full_path ])
123129
file_path = fs.get_next()
124130
continue
125-
131+
126132
_loaded_translations.append(translation)
127133
file_path = fs.get_next()
128-
134+
129135
# Add loaded translations to the translation server.
130136
for translation in _loaded_translations:
131137
TranslationServer.add_translation(translation)
132-
138+
133139
# Set the language to update the app.
134140
TranslationServer.set_locale(current_language)
135141
current_profile.language = current_language
@@ -140,7 +146,7 @@ func set_language(language_code: String) -> void:
140146
func _reset_language() -> void:
141147
current_language = DEFAULT_LOCALE
142148
TranslationServer.set_locale(current_language)
143-
149+
144150
var current_profile := UserProfiles.get_profile()
145151
current_profile.language = current_language
146152
current_profile.save()

0 commit comments

Comments
 (0)