One_Eleven_Android/addons/dialogic/Localization/translation_service.gd
2024-11-10 03:34:28 +03:00

54 lines
1.2 KiB
GDScript

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