Added support for translation .csv files in the user://locale directory

This commit is contained in:
Rodolphe Suescun 2021-08-20 07:19:31 +02:00
parent a2ce919ed4
commit 90267698f4
1 changed files with 36 additions and 3 deletions

View File

@ -78,13 +78,46 @@ func _ready():
var dir = Directory.new()
if dir.open("user://locale") == OK:
var csv_files : Array = []
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != "":
if !dir.current_is_dir() and file_name.get_extension() in [ "po", "translation" ]:
var t : Translation = load("user://locale/"+file_name)
TranslationServer.add_translation(t)
if !dir.current_is_dir():
match file_name.get_extension():
"po", "translation":
var t : Translation = load("user://locale/"+file_name)
TranslationServer.add_translation(t)
"csv":
csv_files.push_back(file_name)
file_name = dir.get_next()
for fn in csv_files:
var f : File = File.new()
if f.open("user://locale/"+fn, File.READ) == OK:
var l : String = f.get_line()
if l.left(2) == "id":
var separator = l[2]
var languages : Array = l.split(separator)
languages[0] = null
for i in range(1, languages.size()):
if languages[i] == "en" or languages[i] in TranslationServer.get_loaded_locales():
languages[i] = null
else:
print("Adding translation for "+languages[i])
var translation : Translation = Translation.new()
translation.locale = languages[i]
languages[i] = translation
TranslationServer.add_translation(translation)
var stringcount : int = 0
while ! f.eof_reached():
l = f.get_line()
var strings : Array = l.split(separator)
if strings.size() == languages.size():
for i in range(1, languages.size()):
if languages[i] != null:
languages[i].add_message(strings[0], strings[i])
stringcount += 1
print(stringcount)
f.close()
set_process(true)
var thread = Thread.new()