added english translation

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
2026-09-10 16:07:35 +02:00
parent d370249649
commit da54636680
46 changed files with 3008 additions and 247 deletions
+2 -2
View File
@@ -1,3 +1,3 @@
~ start
Albatross: Guten Tag, mein Name ist Albatross. Ich bin eine Künstliche Intelligenz, die entwickelt wurde um dieses Raumschiff zu steuern. Da KI nur verantwortungsvoll genutzt werden kann, wenn Menschen sie verstehen, habe ich den Auftrag Sie zu Ihrer KI-Schulung zu fliegen. Nach der Landung kann ich Sie erst wieder reinlassen und zurück fliegen, wenn Sie genug gelernt haben. Starten wir nun diese Reise! ([Enter/Leertaste/Klicken])
=> END
Albatross: Guten Tag, mein Name ist Albatross. Ich bin eine Künstliche Intelligenz, die entwickelt wurde um dieses Raumschiff zu steuern. Da KI nur verantwortungsvoll genutzt werden kann, wenn Menschen sie verstehen, habe ich den Auftrag Sie zu Ihrer KI-Schulung zu fliegen. Nach der Landung kann ich Sie erst wieder reinlassen und zurück fliegen, wenn Sie genug gelernt haben. Starten wir nun diese Reise! ([Enter/Leertaste/Klicken])
=> END
+33 -13
View File
@@ -1,28 +1,48 @@
extends Node
var voice_id
var _tts_locale := ""
func _ready():
var voices = DisplayServer.tts_get_voices_for_language("de")
if voices.size() > 0:
voice_id = "German+Robosoft6"
else:
voices = DisplayServer.tts_get_voices_for_language("en")
voice_id = voices[0]
# Connect with DialogueManager
_update_voice_for_locale()
DialogueManager.got_dialogue.connect(_on_dialogue)
func _notification(what: int) -> void:
if what == NOTIFICATION_TRANSLATION_CHANGED:
_update_voice_for_locale()
func _update_voice_for_locale() -> void:
var locale := TranslationServer.get_locale()
var lang := locale.substr(0, 2)
if lang == _tts_locale and voice_id != null:
return
_tts_locale = lang
var voices = DisplayServer.tts_get_voices_for_language(lang)
if voices.size() > 0:
# Prefer a known German robotic voice when available; otherwise first matching voice
if lang == "de" and "German+Robosoft6" in voices:
voice_id = "German+Robosoft6"
else:
voice_id = voices[0]
else:
# Fallback to English if current language has no TTS voices
voices = DisplayServer.tts_get_voices_for_language("en")
if voices.size() > 0:
voice_id = voices[0]
else:
voice_id = null
func _on_dialogue(line):
if voice_id == null:
return
# Stop earlier text (important!)
DisplayServer.tts_stop()
# Speak
DisplayServer.tts_speak(line.text, voice_id, 100)
func _stop_dialogue():
DisplayServer.tts_stop()
+3 -3
View File
@@ -22,7 +22,7 @@ func _process(delta: float) -> void:
if collider is Grabbable_Object:
if collider is Battery:
prompt.text = collider.battery_label
prompt.text = tr(collider.battery_label)
if collider.grabbable == true and Input.is_action_just_pressed("grab"):
grab(collider)
bob.play_sound('pickup')
@@ -40,7 +40,7 @@ func _process(delta: float) -> void:
elif collider is Interactable_Object or collider is NPC_interactable:
prompt.text = collider.prompt_message
prompt.text = tr(collider.prompt_message)
var thisTime = Time.get_unix_time_from_system()
var deltaTime = thisTime - DialogueState.time_since_dialoge_open
if collider.talkable == true and Input.is_action_just_pressed("talk") and (deltaTime > 0.5):
@@ -51,7 +51,7 @@ func _process(delta: float) -> void:
env.quiet_down_music()
prompt.hide()
elif bob.grabbed_item and bob.grabbed_item is Battery:
prompt.text = bob.grabbed_item.battery_label
prompt.text = tr(bob.grabbed_item.battery_label)
else:
prompt.text = ""