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
+1 -2
View File
@@ -335,8 +335,7 @@ autoplay = "idle"
[node name="Label3D" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7864695, -0.07333246)
billboard = 1
text = "Interagieren
(t / Enter)"
text = "ALIEN_TALK"
font = ExtResource("4_0lt3b")
outline_size = 4
width = 80.0
+1 -1
View File
@@ -33,7 +33,7 @@ func _ready() -> void:
blink_timer.one_shot = false
blink_timer.timeout.connect(_on_blink_timeout)
add_child(blink_timer)
ai_threat.text = display_text
ai_threat.text = tr(display_text)
for lamp in status_lamps:
lamp.visible = true
if lamp.get_surface_override_material(0) == null:
+2 -6
View File
@@ -16,7 +16,7 @@ transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0
collision_layer = 8
collision_mask = 7
script = ExtResource("1_6jshr")
prompt_message = "drücken Sie [t] oder [Enter]"
prompt_message = "HELPER_PROMPT"
talkable = true
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
@@ -41,11 +41,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.3250453e-09, -0.54445666, -
[node name="Label3D" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3886542, 0)
billboard = 1
text = "Rede mit mir!
(t / Enter)
|
|
\\/"
text = "HELPER_TALK"
font_size = 42
outline_size = 8
+5 -5
View File
@@ -27,11 +27,11 @@ var answered_correctly := false
func _ready() -> void:
# Texte setzen
question_label.text = question
answer_0_label.text = answer_0
answer_1_label.text = answer_1
answer_2_label.text = answer_2
answer_3_label.text = answer_3
question_label.text = tr(question)
answer_0_label.text = tr(answer_0)
answer_1_label.text = tr(answer_1)
answer_2_label.text = tr(answer_2)
answer_3_label.text = tr(answer_3)
# Signale verbinden
answer_pad_0.body_entered.connect(_on_answer_entered.bind(0))
+13 -19
View File
@@ -52,17 +52,16 @@ func _process(delta: float) -> void:
if not_congratulated_1 and aliens.get_child_count() <= aliens_start_count-5:
not_congratulated_1 = false
show_congratulations("Glückwunsch!
Die erste Aufgabe ist geschafft.", "Definitionen von KI")
show_congratulations("TASK1_CONGRATS", "TOPIC_AI_DEFS")
func show_congratulations(text, text_2) -> void:
print(text)
$Player/helper/helper.celebrate()
$Hilfestellung/CanvasLayer.visible = false
$Congratulations/CanvasLayer/Panel/Label.text = text
$Congratulations/CanvasLayer/Panel/Label.text = tr(text)
$Congratulations/CanvasLayer.visible = true
$Congratulations/CanvasLayer/Panel/Label_repeat.text = "(Um die "+ text_2 + " noch einmal nachzulesen, sprechen Sie mit ihrem Helfer)"
$Congratulations/CanvasLayer/Panel/Label_repeat.text = tr("CONGRATS_REPEAT") % tr(text_2)
await get_tree().create_timer(5.0).timeout
$Player/helper/helper.stop_anim()
$Congratulations/CanvasLayer.visible = false
@@ -110,8 +109,8 @@ func _on_pressure_block_a3_activated() -> void:
func _on_pressure_block_a_1_activated() -> void:
current_task = 1
DialogueState.currentTask = 1
current_text = "[Enter] oder [t] drücken, um mit den Aliens zu reden"
$Hinweistexte/CanvasLayer/Panel/Label.text = "Wenn Sie weiterlaufen werden Ihnen einige Aliens begegnen. Sprechen Sie mit ihnen, um verschiedene Definitionen von Künstlicher Intelligenz (KI) kennenzulernen."
current_text = tr("HINT_TALK_ALIENS")
$Hinweistexte/CanvasLayer/Panel/Label.text = tr("HINT_ALIENS")
$Hinweistexte/CanvasLayer.visible = true
if $Tutorial:
$Tutorial.queue_free()
@@ -123,11 +122,8 @@ func _on_pressure_block_a_1_activated() -> void:
func _on_pressure_block_a_2_activated() -> void:
current_task = 2
current_text = "Zielen mit der Maus, Klicken zum Werfen, [r] zum Wechsel zwischen Wurf- und Kameramodus"
$Hinweistexte/CanvasLayer/Panel/Label.text = "Laufen Sie weiter zur Wurfzone.
Dort angekommen, können Sie die Ballons abwerfen, um zu entdecken, in was für Systemen KI bereits eingesetzt wird bzw. werden kann.
Sammeln Sie danach die Batterien, Sie werden sie im weiteren Verlauf benötigen.
Zur Erinnerung: Zielen mit der Maus (Fadenkreuz) und Werfen durch Klicken. Wenn Sie kein Fadenkreuz sehen, evtl. [r] drücken, um den Modus zu wechseln."
current_text = tr("HINT_THROW_CONTROLS")
$Hinweistexte/CanvasLayer/Panel/Label.text = tr("HINT_THROW_ZONE")
$Hinweistexte/CanvasLayer.visible = true
@@ -141,7 +137,7 @@ func _on_pressure_block_a_3_1_activated() -> void:
reset_music_volume()
current_task = 3
DialogueState.currentTask = 3
current_text = "Auswahl der Batterien im Inventar [c], Einfügen mit [f] - ([e] zum wieder rausholen, [q] ablegen)"
current_text = tr("HINT_BATTERY_CONTROLS")
$Objects/pressure_blocks/PressureBlock_A3_1.current_weight = 10.0
$AnimationPlayer.play("start_ordering_game")
_on_pressure_block_deactivated()
@@ -152,11 +148,10 @@ func _on_balloon_tree_exited() -> void:
if popped_balloons == Global.TOTAL_BALLOONS_A2 and current_task == 2:
not_congratulated_2 = false
DialogueState.batteriesFlag = true
show_congratulations("Glückwunsch!
Die 2. Aufgabe ist geschafft.", "KI-Systeme")
show_congratulations("TASK2_CONGRATS", "TOPIC_AI_SYSTEMS")
$Objects/arrows/after_throw.visible = true
$Objects/Fences/no_arrows/barrier_throw.position.x = 4.0
$Hilfestellung/CanvasLayer/Panel/Label.text = "Sammeln Sie die Batterien auf (durch Vorbeilaufen) - einen Counter dazu sehen Sie oben links"
$Hilfestellung/CanvasLayer/Panel/Label.text = tr("HINT_COLLECT_BATTERIES")
$Hilfestellung/CanvasLayer.visible = true
@@ -166,7 +161,7 @@ func _on_pressure_block_a_4_activated() -> void:
DialogueState.currentTask = 4
DialogueState.personalDataFlag = true
$Objects/spaceship/keypad.visible = true
current_text = "[k] drücken zum Starten des nächsten Minispiels"
current_text = tr("HINT_START_KEYPAD")
$Hilfestellung/CanvasLayer.visible = true
$Objects/pressure_blocks/PressureBlock_A4.current_weight = 10.0
DialogueManager.show_chosen_dialogue_balloon(load($Objects/pressure_blocks/PressureBlock_A4.text_on_activation), "/game_balloons/game_balloon_v_2.tscn", "start")
@@ -176,7 +171,7 @@ func _on_pressure_block_a_4_activated() -> void:
func _on_keypad_game_finished() -> void:
$Keypad.visible = false
$Objects/spaceship/keypad.visible = false
$Hilfestellung/CanvasLayer/Panel/Label.text = "Gehen Sie durch die Tür ins Raumschiff"
$Hilfestellung/CanvasLayer/Panel/Label.text = tr("HINT_ENTER_SHIP")
$Hilfestellung/CanvasLayer.visible = true
show_door.emit()
@@ -193,8 +188,7 @@ func _on_animation_player_animation_finished(anim_name: StringName) -> void:
$AnimationPlayer.play('rotate_label')
if anim_name == "ordering_finished":
generators.queue_free()
show_congratulations("Glückwunsch!
Die 3. Aufgabe ist geschafft.", "Risikostufen von KI")
show_congratulations("TASK3_CONGRATS", "TOPIC_AI_RISKS")
$Objects/pressure_blocks/PressureBlock_A4.position = Vector3(-87.26, 3.787, 209.9)
+32 -34
View File
@@ -2478,7 +2478,7 @@ mesh = SubResource("BoxMesh_e7rlp")
[node name="Label3D" type="Label3D" parent="Objects/accent3"]
transform = Transform3D(-0.4, 0, -6.039832e-08, 0, 0.4, 0, 6.039832e-08, 0, -0.4, -0.028839111, 0.6215837, -0.15538025)
text = "Wurfzone"
text = "THROW_ZONE"
font_size = 128
outline_size = 42
@@ -2524,7 +2524,7 @@ collision_mask = 0
[node name="Label3D" type="Label3D" parent="Objects/arrows/help1/Arrow8"]
transform = Transform3D(-4.37114e-08, 1, -4.37114e-08, -5.96046e-08, -4.37114e-08, -1, -1, -4.37114e-08, 5.96046e-08, 0.520177, -0.10141, 0.149384)
text = "Hier geht es weiter"
text = "CONTINUE_HERE"
font_size = 64
outline_size = 24
@@ -3138,7 +3138,7 @@ collision_mask = 0
[node name="Label3D" type="Label3D" parent="Objects/Chip0/block"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -28.6089, 3.01642, -2.88716)
text = "Einmal hier drauf springen"
text = "JUMP_HERE"
font_size = 64
outline_size = 24
@@ -3310,21 +3310,21 @@ transform = Transform3D(-0.3992129, 0, 0.025081253, 0, 0.4, 0, -0.025081253, 0,
[node name="BatteryBox" parent="Objects/generators" instance=ExtResource("11_n6emc")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -2.82359)
power_needed = 25
display_text = "Minimal"
display_text = "RISK_MINIMAL"
[node name="BatteryBox2" parent="Objects/generators" instance=ExtResource("11_n6emc")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -1.0177)
display_text = "Gering"
display_text = "RISK_LIMITED"
[node name="BatteryBox3" parent="Objects/generators" instance=ExtResource("11_n6emc")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 1.06367)
power_needed = 75
display_text = "Hoch"
display_text = "RISK_HIGH"
[node name="BatteryBox4" parent="Objects/generators" instance=ExtResource("11_n6emc")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 3.31763)
power_needed = 100
display_text = "Inakzeptabel"
display_text = "RISK_UNACCEPTABLE"
[node name="Fences" type="Node3D" parent="Objects"]
@@ -4109,7 +4109,7 @@ skeleton = NodePath("")
[node name="Label3D" type="Label3D" parent="Objects/spaceship/keypad"]
transform = Transform3D(1, 0, -5.96046e-08, 0, 1, 0, 5.96046e-08, 0, 1, 0.00621033, 0.764771, 0.267517)
modulate = Color(0, 0.948034, 0.903071, 1)
text = "Passcode erforderlich"
text = "PASSCODE_REQUIRED"
font_size = 24
[node name="door_cover" type="StaticBody3D" parent="Objects/spaceship"]
@@ -4201,13 +4201,13 @@ balloon_resource = "res://Resources/meshes/dino1.tres"
[node name="Label3D" type="Label3D" parent="Objects/Easter_Egg"]
transform = Transform3D(0.9063077, 0, 0.42261824, 0, 1, 0, -0.42261824, 0, 0.9063077, -1.0948029, -2.2045398, 2.7432632)
text = "Vorbeilaufen oder Abwerfen zum Auswählen"
text = "EASTER_SELECT"
outline_size = 8
[node name="Label3D2" type="Label3D" parent="Objects/Easter_Egg"]
transform = Transform3D(0.5917882, 0, 0.8060935, 0, 1, 0, -0.8060935, 0, 0.5917882, -1.2124329, -1.6598244, 3.0003967)
modulate = Color(0.15294118, 1, 1, 1)
text = "Verstecktes Lager mit Spezial-Accessoires gefunden!"
text = "EASTER_FOUND"
font_size = 38
outline_size = 8
@@ -4259,38 +4259,38 @@ transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, -119.335, 1.90521, 199.
[node name="Label3D" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0212021, 0.227379, 0.538483)
text = "Aufgabe 1"
text = "TASK_1"
[node name="Label3D2" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A1"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.462105, 0.227379, 0.0402069)
text = "Aufgabe 1"
text = "TASK_1"
[node name="Label3D3" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A1"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.0716324, 0.227379, -0.426834)
text = "Aufgabe 1"
text = "TASK_1"
[node name="Label3D4" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A1"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.421196, 0.227379, -0.0301208)
text = "Aufgabe 1"
text = "TASK_1"
[node name="PressureBlock_A2" parent="Objects/pressure_blocks" instance=ExtResource("15_n6emc")]
transform = Transform3D(-6.55671e-08, 0, -1.5, 0, 1.5, 0, 1.5, 0, -6.55671e-08, -99.9195, 2.05228, 170.424)
[node name="Label3D" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0157394, 0.227379, 0.491547)
text = "Aufgabe 2"
text = "TASK_2"
[node name="Label3D2" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A2"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.460144, 0.227379, 0.0241394)
text = "Aufgabe 2"
text = "TASK_2"
[node name="Label3D3" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A2"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0.0236588, 0.227379, -0.487915)
text = "Aufgabe 2"
text = "TASK_2"
[node name="Label3D4" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A2"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.438354, 0.227379, 0.0241394)
text = "Aufgabe 2"
text = "TASK_2"
[node name="PressureBlock_A3" parent="Objects/pressure_blocks" instance=ExtResource("15_n6emc")]
transform = Transform3D(-1.5, 0, -1.31134e-07, 0, 1.5, 0, 1.31134e-07, 0, -1.5, -82.7234, 3.78661, 200.859)
@@ -4298,19 +4298,19 @@ text_on_activation = "res://Interact/dialogue/explain_ordering_game.dialogue"
[node name="Label3D" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0716324, 0.227379, 0.500092)
text = "Aufgabe 3"
text = "TASK_3"
[node name="Label3D2" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A3"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.410625, 0.227379, 0.0306549)
text = "Aufgabe 3"
text = "TASK_3"
[node name="Label3D3" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A3"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.0290184, 0.227379, -0.518616)
text = "Aufgabe 3"
text = "TASK_3"
[node name="Label3D4" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A3"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.502998, 0.227379, 0.0580139)
text = "Aufgabe 3"
text = "TASK_3"
[node name="PressureBlock_A3_1" parent="Objects/pressure_blocks" instance=ExtResource("15_n6emc")]
transform = Transform3D(-2.79742, 0, -8.69725e-07, 0, 5, 0, 4.22398e-07, 0, -5.75993, -81.7063, 3.7075267, 209.986)
@@ -4324,19 +4324,19 @@ text_on_activation = "res://Interact/dialogue/keypad.dialogue"
[node name="Label3D" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0716324, 0.227379, 0.500092)
text = "Aufgabe 4"
text = "TASK_4"
[node name="Label3D2" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A4"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.410625, 0.227379, 0.0306549)
text = "Aufgabe 4"
text = "TASK_4"
[node name="Label3D3" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A4"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.0290184, 0.227379, -0.518616)
text = "Aufgabe 4"
text = "TASK_4"
[node name="Label3D4" type="Label3D" parent="Objects/pressure_blocks/PressureBlock_A4"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.502998, 0.227379, 0.0580139)
text = "Aufgabe 4"
text = "TASK_4"
[node name="npcs" type="Node3D" parent="."]
@@ -4548,8 +4548,7 @@ offset_bottom = 165.0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 2
theme_override_font_sizes/font_size = 32
text = "Mach dich mit der
Steuerung vertraut"
text = "TUTORIAL_TITLE"
autowrap_mode = 3
[node name="Panel2" type="Panel" parent="Tutorial/CanvasLayer"]
@@ -4565,7 +4564,7 @@ offset_top = 5.0
offset_right = 1308.0
offset_bottom = 72.0
theme_override_font_sizes/font_size = 48
text = "Probieren Sie die Steuerung aus"
text = "TUTORIAL_SUBTITLE"
horizontal_alignment = 1
vertical_alignment = 1
@@ -4610,8 +4609,7 @@ offset_bottom = 179.0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 5
theme_override_font_sizes/font_size = 64
text = "Glückwunsch!
Aufgabe ist geschafft."
text = "TASK_CONGRATS_DEFAULT"
horizontal_alignment = 1
vertical_alignment = 1
@@ -4624,7 +4622,7 @@ offset_bottom = 251.0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 5
theme_override_font_sizes/font_size = 32
text = "(Um die Definitionen noch einmal nachzulesen, sprechen Sie mit ihrem Helfer)"
text = "CONGRATS_REPEAT"
horizontal_alignment = 1
[node name="Hinweistexte" type="Node3D" parent="."]
@@ -4647,7 +4645,7 @@ offset_top = 140.0
offset_right = 1710.0
offset_bottom = 940.0
theme_override_font_sizes/font_size = 48
text = "In der nun folgenden Aufgabe..."
text = "HINT_NEXT_TASK"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
@@ -4667,7 +4665,7 @@ layout_mode = 0
offset_right = 1920.0
offset_bottom = 50.0
theme_override_font_sizes/font_size = 36
text = "...drücken"
text = "HINT_PRESS"
horizontal_alignment = 1
vertical_alignment = 1
File diff suppressed because one or more lines are too long
+16
View File
@@ -0,0 +1,16 @@
Datenschutzinformation
Verantwortliche Stelle:
Universität Greifswald
Domstraße 11
17489 Greifswald
Deutschland
Website: https://www.uni-greifswald.de
Dieses Spiel speichert lokal auf Ihrem Gerät Spieldaten (z. B. gewählte Spielfigur unter user://). Es werden keine personenbezogenen Daten an externe Server übermittelt, sofern Sie keine Online-Funktionen (z. B. Online-Chatbot) nutzen.
Bei Nutzung eines lokalen Sprachmodells verbleiben Ihre Eingaben auf Ihrem Gerät bzw. in der von Ihnen betriebenen Infrastruktur.
Bei Nutzung einer Online-Chatbot-Variante können Eingaben an den konfigurierten Server übermittelt werden. Geben Sie dort keine personenbezogenen Daten ein.
Weitere Informationen zum Datenschutz an der Universität Greifswald finden Sie auf den Seiten der Universität.
+16
View File
@@ -0,0 +1,16 @@
Privacy information
Controller:
University of Greifswald
Domstraße 11
17489 Greifswald
Germany
Website: https://www.uni-greifswald.de
This game stores game data locally on your device (e.g. chosen character under user://). No personal data is transmitted to external servers unless you use online features (e.g. an online chatbot).
When using a local language model, your inputs remain on your device or within the infrastructure you operate.
When using an online chatbot variant, inputs may be sent to the configured server. Do not enter personal data there.
Further information on data protection at the University of Greifswald is available on the university website.
+18
View File
@@ -0,0 +1,18 @@
Impressum
Angaben gemäß § 5 TMG
Universität Greifswald
Domstraße 11
17489 Greifswald
Deutschland
Kontakt:
Website: https://www.uni-greifswald.de
Dieses Spiel (GAIM – Spielerisches EU AI Act Training) steht unter der Lizenz GNU GPLv3.
Quellcode: https://git.uni-greifswald.de/GAIM/gaim
Haftungshinweis:
Die Inhalte dieses Spiels dienen ausschließlich der Einführung in Grundlagen von KI und dem EU AI Act.
Für konkrete Rechtsfragen ist eine fachkundige Beratung erforderlich. Es wird keine Haftung für Vollständigkeit oder Aktualität übernommen.
+18
View File
@@ -0,0 +1,18 @@
Legal notice
Information according to § 5 TMG (German Telemedia Act)
University of Greifswald
Domstraße 11
17489 Greifswald
Germany
Contact:
Website: https://www.uni-greifswald.de
This game (GAIM – Playful EU AI Act Training) is available under the GNU GPLv3 license.
Source code: https://git.uni-greifswald.de/GAIM/gaim
Disclaimer:
The content of this game is intended only as an introduction to the basics of AI and the EU AI Act.
Specific legal questions require professional advice. No liability is assumed for completeness or up-to-dateness.