Initial Android commit
This commit is contained in:
commit
1e2b80c13d
8521 changed files with 231475 additions and 0 deletions
54
addons/dialogic/Localization/translation_service.gd
Normal file
54
addons/dialogic/Localization/translation_service.gd
Normal file
|
@ -0,0 +1,54 @@
|
|||
|
||||
|
||||
|
||||
|
||||
tool
|
||||
class_name DTS
|
||||
|
||||
|
||||
|
||||
static func translate(message:String)->String:
|
||||
var translation
|
||||
|
||||
translation = _get_translation(message)
|
||||
|
||||
return translation
|
||||
|
||||
|
||||
|
||||
static func get_translations()->Dictionary:
|
||||
var translations_resources = ["en", "zh_CN", "es", "fr", "de"]
|
||||
var translations = {}
|
||||
|
||||
for resource in translations_resources:
|
||||
var t:PHashTranslation = load("res://addons/dialogic/Localization/dialogic." + resource + ".translation")
|
||||
if translations.has(t.locale):
|
||||
translations[t.locale].append(t)
|
||||
else :
|
||||
translations[t.locale] = [t]
|
||||
return translations
|
||||
|
||||
|
||||
static func _get_translation(message)->String:
|
||||
var returned_translation = message
|
||||
var translations = get_translations()
|
||||
var default_fallback = "en"
|
||||
|
||||
var editor_plugin = EditorPlugin.new()
|
||||
var editor_settings = editor_plugin.get_editor_interface().get_editor_settings()
|
||||
var locale = editor_settings.get("interface/editor/editor_language")
|
||||
|
||||
var cases = translations.get(
|
||||
locale,
|
||||
translations.get(default_fallback, [PHashTranslation.new()])
|
||||
)
|
||||
for case in cases:
|
||||
returned_translation = (case as PHashTranslation).get_message(message)
|
||||
if returned_translation:
|
||||
break
|
||||
else :
|
||||
|
||||
returned_translation = message
|
||||
|
||||
|
||||
return returned_translation
|
Loading…
Add table
Add a link
Reference in a new issue