46 lines
1.4 KiB
GDScript
46 lines
1.4 KiB
GDScript
# For more information on translation using PO files,
|
|
# search Godot's online documentation "Localization using gettext", or visit
|
|
# https://docs.godotengine.org/en/latest/tutorials/i18n/localization_using_gettext.html
|
|
|
|
extends Panel
|
|
|
|
func _ready() -> void:
|
|
_print_intro()
|
|
|
|
|
|
func _on_english_pressed() -> void:
|
|
TranslationServer.set_locale("en")
|
|
_print_intro()
|
|
|
|
|
|
func _on_spanish_pressed() -> void:
|
|
TranslationServer.set_locale("es")
|
|
_print_intro()
|
|
|
|
|
|
func _on_japanese_pressed() -> void:
|
|
TranslationServer.set_locale("ja")
|
|
_print_intro()
|
|
|
|
|
|
func _on_play_audio_pressed() -> void:
|
|
$Audio.play()
|
|
|
|
|
|
func _print_intro() -> void:
|
|
print_rich("\n[b]Language:[/b] %s (%s)" % [TranslationServer.get_locale_name(TranslationServer.get_locale()), TranslationServer.get_locale()])
|
|
|
|
# In PO translation, you would use source string as the 'key' for the Object.tr() function.
|
|
# This is the same for scene nodes containing user-facing texts to be translated.
|
|
print(tr("Hello, this is a translation demo project."))
|
|
|
|
# PO plural translation example.
|
|
# The difference with CSV is that you must add the "plural_message" argument, because PO files
|
|
# expect the data (else undefine behaviour might occur).
|
|
var days_passed := randi_range(1, 3)
|
|
print(tr_n("One day ago.", "{days} days ago.", days_passed).format({ days = days_passed }))
|
|
|
|
|
|
func _on_go_to_csv_translation_demo_pressed() -> void:
|
|
get_tree().change_scene_to_packed(load("res://translation_demo_csv.tscn"))
|