Compare commits

...
Author SHA1 Message Date
fschade 563b4800ee added english pictures and fixed text translations 2026-10-06 12:06:24 +02:00
fschade 21c73df3eb translation update 2026-09-10 16:02:12 +02:00
fschade 6743f4210a translation fixes 2026-09-10 12:01:35 +02:00
fschade 520a3dce25 translation improvements 2026-08-31 13:03:24 +02:00
fschade 2a6f2b0e52 added translations 2026-07-29 11:34:28 +02:00
74 changed files with 1929 additions and 675 deletions

No files matched your search

+29 -9
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")
_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:
voices = DisplayServer.tts_get_voices_for_language("en")
voice_id = voices[0]
# Connect with DialogueManager
DialogueManager.got_dialogue.connect(_on_dialogue)
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 = ""
+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
+11 -2
View File
@@ -3,7 +3,13 @@ class_name Balloon
@export var pop_up_text = ""
@export var wait_time = 4.0
@export var image_path = "res://assets/Images/spiel_ballon_text2.png"
@export var image_path: String = "res://assets/Images/spiel_ballon_text2.png"
const ENGLISH_BALLOON_IMAGES: Dictionary[String, String] = {
"res://assets/Images/spiel_ballon_mail3.png": "res://assets/Images/spiel_ballon_mail_englisch.png",
"res://assets/Images/spiel_ballon_mrt3.png": "res://assets/Images/spiel_ballon_mrt_englisch.png",
"res://assets/Images/spiel_ballon_bot3a.png": "res://assets/Images/spiel_ballon_bot_englisch.png",
"res://assets/Images/spiel_ballon_surveillance3b.png": "res://assets/Images/spiel_ballon_recognition_englisch.png",
}
@onready var label_3d: Label3D = $Label3D
@onready var balloon_model: MeshInstance3D = $Balloon_model
@onready var collision_shape_3d: CollisionShape3D = $CollisionShape3D
@@ -15,7 +21,10 @@ func _ready() -> void:
if child is RigidBody3D:
child.freeze = true
child.gravity_scale = 0.0
$label.texture = load(image_path)
var shown_image: String = image_path
if TranslationServer.get_locale().begins_with("en") and ENGLISH_BALLOON_IMAGES.has(image_path):
shown_image = ENGLISH_BALLOON_IMAGES[image_path]
$label.texture = load(shown_image)
func _on_area_3d_body_entered(body: Node3D) -> void:
if not body.is_in_group("throwable"):
+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))
+19 -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
@@ -71,9 +70,15 @@ func openLinkinBrowser(link):
OS.shell_open(link)
func openAIActinBrowser():
if TranslationServer.get_locale().begins_with("en"):
openLinkinBrowser("https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32024R1689")
else:
openLinkinBrowser("https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32024R1689")
func openDSGVOinBrowser():
if TranslationServer.get_locale().begins_with("en"):
openLinkinBrowser("https://gdpr-info.eu/")
else:
openLinkinBrowser("https://dsgvo-gesetz.de/")
func _on_openChatBot():
@@ -110,8 +115,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 +128,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 +143,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 +154,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 +167,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 +177,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 +194,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
@@ -40,8 +40,8 @@ normal_texture = ExtResource("6_0ubgh")
[sub_resource type="Image" id="Image_c0pv3"]
data = {
"data": PackedByteArray(255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 186, 214, 182, 181, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36,Line truncated
"format": "DXT5 RGBA8",
"data": PackedByteArray(203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, 255, 203, 204, 203, Line truncated
"format": "RGBA8",
"height": 1024,
"mipmaps": true,
"width": 1024
@@ -52,8 +52,8 @@ image = SubResource("Image_c0pv3")
[sub_resource type="Image" id="Image_pd7rv"]
data = {
"data": PackedByteArray(255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146, 36, 73, 146, 36, 95, 132, 95, 115, 170, 170, 170, 170, 255, 255, 73, 146Line truncated
"format": "DXT5 RGBA8",
"data": PackedByteArray(126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, 255, 126, 127, 255, Line truncated
"format": "RGBA8",
"height": 1024,
"mipmaps": true,
"width": 1024
+49
View File
@@ -0,0 +1,49 @@
[b]Datenschutzinformation[/b]
Wir verarbeiten personenbezogene Daten, die beim Besuch unserer Website erhoben werden, unter Beachtung der geltenden datenschutzrechtlichen Bestimmungen, insbesondere der EU-Datenschutz-Grundverordnung (DSGVO) und des Landesdatenschutzgesetzes Mecklenburg-Vorpommern (DSG MV).
Der Verantwortliche im Sinne der Datenschutz-Grundverordnung und anderer nationaler Datenschutzgesetze der Mitgliedsstaaten sowie sonstiger datenschutzrechtlicher Bestimmungen sind die:
Universität Greifswald
Gesetzlich vertreten durch die Rektorin
Prof. Dr. Katharina Riedel
Postanschrift: 17487 Greifswald
Hausanschrift: Domstraße 11, Eingang 2, 17489 Greifswald
Telefon +49 3834 420 0
Telefax +49 3834 420 1105
rektorin@uni-greifswald.de
[b]Rechtsgrundlagen[/b]
Soweit die Universität für die Verarbeitung personenbezogener Daten eine Einwilligung (u. a. allgemeine Anfragen, Kontaktformular, Newsletter) der betroffenen Person einholt, dient Art. 6 Abs. 1 lit. a DSGVO als Rechtsgrundlage.
[b]Protokollierung[/b]
Das Spiel wird auf internen Ressourcen der Universität Greifswald gehostet. Bei der Nutzung des Spiel geben sie möglicherweise personenbezogene Daten an. Das können Ihr Spielername sowie alle Texte die Sie eingeben, um sich mit dem Helfer im Spiel zu unterhalten sein. Weder die Nachrichten die Sie mit dem Helfer im Spiel austauschen, ihr Spielername oder IP-Adresse werden gespeichert. Wir weisen außederm ausdrücklich darauf hin, dass es sich bei dem Helfer im Spiel um eine Form von künstlicher Intelligenz, ein Sprachmodell, handelt.
[b]Cookies[/b]
Wir nutzen keine Cookies.
[b]Ihre Rechte[/b]
Sie haben das Recht, eine erteilte Einwilligung in die Verarbeitung personenbezogener Daten jederzeit und ohne Angaben von Gründen mit Wirkung für die Zukunft schriftlich gegenüber der Universität Greifswald, Domstraße 11, 17489 Greifswald oder per E-Mail an hochschulkommunikation@uni-greifswald.de zu widerrufen.
Darüber hinaus haben Sie das Recht, auf Antrag unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger, den Zweck und die Dauer der Datenverarbeitung zu erhalten. Zusätzlich haben Sie unter bestimmten Voraussetzungen das Recht auf Berichtigung, auf Einschränkung der Verarbeitung (z. B. Sperrung), auf Löschung sowie auf die Datenübertragbarkeit Ihrer Daten.
Ferner haben Sie das Recht, bei der zuständigen Aufsichtsbehörde für den Datenschutz eine Beschwerde einzureichen, wenn Sie der Ansicht sind, dass die Verarbeitung Ihrer personenbezogenen Daten nicht rechtmäßig erfolgt. Zuständige Aufsichtsbehörde ist:
Der Landesbeauftragte für Datenschutz und Informationsfreiheit Mecklenburg-Vorpommern
Werderstraße 74a, 19055 Schwerin
Telefon: +49 385 59494 0
info@datenschutz-mv.de
Bei Fragen zum Datenschutz können Sie sich an den behördlichen Datenschutzbeauftragten der Universität wenden:
Behördliche Datenschutzbeauftragte
Dominique Kandzia
SIS – Schweriner IT- und Servicegesellschaft mbH
Eckdrift 93, 19061 Schwerin
Telefon +49 385 20092 1218
datenschuetzer@uni-greifswald.de
Letzte Änderung: 22.05.2026.
+49
View File
@@ -0,0 +1,49 @@
[b]Privacy information[/b]
We process personal data collected when you visit our website in compliance with the applicable data protection provisions, in particular the EU General Data Protection Regulation (GDPR) and the State Data Protection Act of Mecklenburg-Vorpommern (DSG MV).
The controller within the meaning of the General Data Protection Regulation and other national data protection laws of the Member States as well as other data protection provisions is:
University of Greifswald
Legally represented by the Rector
Prof. Dr. Katharina Riedel
Postal address: 17487 Greifswald
Street address: Domstraße 11, Entrance 2, 17489 Greifswald
Telephone +49 3834 420 0
Fax +49 3834 420 1105
rektorin@uni-greifswald.de
[b]Legal bases[/b]
Where the university obtains the consent of the data subject for the processing of personal data (including general enquiries, contact form, newsletter), Art. 6 (1) (a) GDPR serves as the legal basis.
[b]Logging[/b]
The game is hosted on internal resources of the University of Greifswald. When using the game you may provide personal data. This may be your player name as well as any text you enter in order to talk to the helper in the game. Neither the messages you exchange with the helper in the game, your player name, nor your IP address are stored. We also expressly point out that the helper in the game is a form of artificial intelligence, a language model.
[b]Cookies[/b]
We do not use cookies.
[b]Your rights[/b]
You have the right to withdraw any consent given to the processing of personal data at any time and without giving reasons, with effect for the future, in writing to the University of Greifswald, Domstraße 11, 17489 Greifswald, or by email to hochschulkommunikation@uni-greifswald.de.
In addition, you have the right, upon request, to receive free information about your stored personal data, its origin and recipients, and the purpose and duration of the data processing. You also have, under certain conditions, the right to rectification, to restriction of processing (e.g. blocking), to erasure and to data portability.
Furthermore, you have the right to lodge a complaint with the competent data protection supervisory authority if you believe that the processing of your personal data is not lawful. The competent supervisory authority is:
The State Commissioner for Data Protection and Freedom of Information of Mecklenburg-Vorpommern
Werderstraße 74a, 19055 Schwerin
Telephone: +49 385 59494 0
info@datenschutz-mv.de
If you have questions about data protection, you can contact the university's data protection officer:
Data protection officer
Dominique Kandzia
SIS – Schweriner IT- und Servicegesellschaft mbH
Eckdrift 93, 19061 Schwerin
Telephone +49 385 20092 1218
datenschuetzer@uni-greifswald.de
Last updated: 22.05.2026.
+34
View File
@@ -0,0 +1,34 @@
[b]Impressum[/b]
Diese Website enthält ein von der Universität Greifswald intern gehostetes Spiel zum Erlernen des EU AI Acts.
[b]Herausgeberin:[/b]
Universität Greifswald
Gesetzlich vertreten durch die Rektorin
Prof. Dr. Katharina Riedel
Postanschrift: 17487 Greifswald
Hausanschrift: Domstraße 11, Eingang 2, 17489 Greifswald
Telefon +49 3834 420 0
Telefax +49 3834 420 1105
rektorin@uni-greifswald.de
Umsatzsteuer-ID-Nummer: DE 137 584 813
[b]Haftung für Inhalte[/b]
Dieses Spiel dient einer Einführung in den AI Act. Wir haben uns bemüht es verständlich und korrekt darzustellen. Die Universität Greifswald übernimmt keinerlei Gewähr für die Aktualität, Korrektheit, Vollständigkeit oder Qualität der bereitgestellten Informationen. Haftungsansprüche gegen die Universität, die sich auf Schäden materieller oder ideeller Art beziehen, die durch die Nutzung oder Nichtnutzung der dargebotenen Informationen bzw. durch die Nutzung fehlerhafter und unvollständiger Informationen verursacht wurden, sind grundsätzlich ausgeschlossen, sofern seitens der Universität kein nachweislich vorsätzliches oder grob fahrlässiges Verschulden vorliegt. Alle Angebote sind freibleibend und unverbindlich. Die Universität behält es sich ausdrücklich vor, Teile des Spiels oder das gesamte Angebot ohne gesonderte Ankündigung zu verändern, zu ergänzen, zu löschen oder die Veröffentlichung zeitweise oder endgültig einzustellen. Gleiches gilt wenn Sie das Spiel von unserem Repository unter https://git.uni-greifswald.de/GAIM/gaim downloaden und nutzen.
Wenn Sie konkrete Fragen zum EU AI Act haben, verlassen Sie sich nicht auf das Spiel sondern konsultieren Sie den offiziellen Gesetzestext (Stand 05.2026 verfügbar unter https://artificialintelligenceact.eu/de/ai-act-explorer/) und fragen Sie eine:n Expert:in.
Hinweise und Korrekturen inhaltlicher Art senden Sie bitte an hochschulkommunikation@uni-greifswald.de .
[b]Links zu Internetseiten von Dritten[/b]
Verweise und Links Bei direkten oder indirekten Verweisen auf fremde Webseiten („Hyperlinks“), die außerhalb des Verantwortungsbereiches der Universität liegen, würde eine Haftungsverpflichtung ausschließlich in dem Fall in Kraft treten, in dem der/die Autor/in von den Inhalten Kenntnis hat und es ihm/ihr technisch möglich und zumutbar wäre, die Nutzung im Falle rechtswidriger Inhalte zu verhindern. Die Universität erklärt hiermit ausdrücklich, dass zum Zeitpunkt der Linksetzung keine illegalen Inhalte auf den zu verlinkenden Seiten erkennbar waren. Auf die aktuelle und zukünftige Gestaltung, die Inhalte oder die Urheberschaft der verlinkten/verknüpften Seiten hat die Universität keinerlei Einfluss. Deshalb distanziert sie sich hiermit ausdrücklich von allen Inhalten aller verlinkten/verknüpften Seiten, die nach der Linksetzung verändert wurden. Diese Feststellung gilt für alle innerhalb des eigenen Internetangebotes gesetzten Links und Verweise sowie für Fremdeinträge in von der Universität eingerichteten Gästebüchern, Diskussionsforen, Linkverzeichnissen, Mailinglisten und in allen anderen Formen von Datenbanken, auf deren Inhalt externe Schreibzugriffe möglich sind. Für illegale, fehlerhafte oder unvollständige Inhalte und insbesondere für Schäden, die aus der Nutzung oder Nichtnutzung solcherart dargebotener Informationen entstehen, haftet allein der Anbieter der Seite, auf welche verwiesen wurde, nicht derjenige, der über Links auf die jeweilige Veröffentlichung lediglich verweist.
[b]Urheberrecht[/b]
Das hier zur Verfügung gestellte Spiel ist unter der Lizenz GNU GPLv3 frei verfügbar und darf heruntergeladen, verändert und entsprechend der Lizenz weiterentwickelt werden.
[b]Musik[/b]
Musik stammt von : https://opengameart.org/, Credits gehen unter anderem an Peachtea@You're Perfect Studio (Intro), syncopika (Musik im Spiel) und Metaruka (Weltraum).
Sound-Effekte von Juhani Junkala.
Beachten Sie auch das Impressum der Universität Greifswald.
+34
View File
@@ -0,0 +1,34 @@
[b]Legal notice[/b]
This website contains a game for learning about the EU AI Act, hosted internally by the University of Greifswald.
[b]Publisher:[/b]
University of Greifswald
Legally represented by the Rector
Prof. Dr. Katharina Riedel
Postal address: 17487 Greifswald
Street address: Domstraße 11, Entrance 2, 17489 Greifswald
Telephone +49 3834 420 0
Fax +49 3834 420 1105
rektorin@uni-greifswald.de
VAT ID number: DE 137 584 813
[b]Liability for content[/b]
This game is intended as an introduction to the AI Act. We have tried to present it in a way that is understandable and correct. The University of Greifswald accepts no liability for the timeliness, correctness, completeness or quality of the information provided. Claims for liability against the university relating to material or immaterial damage caused by the use or non-use of the information presented, or by the use of incorrect and incomplete information, are excluded in principle, unless the university is demonstrably guilty of intent or gross negligence. All offers are subject to change and non-binding. The university expressly reserves the right to change, supplement or delete parts of the game or the entire offering without separate notice, or to suspend publication temporarily or permanently. The same applies if you download and use the game from our repository at https://git.uni-greifswald.de/GAIM/gaim.
If you have specific questions about the EU AI Act, do not rely on the game. Consult the official legal text (as of 05.2026 available at https://artificialintelligenceact.eu/de/ai-act-explorer/) and ask an expert.
Please send comments and corrections regarding the content to hochschulkommunikation@uni-greifswald.de.
[b]Links to third-party websites[/b]
References and links: In the case of direct or indirect references to external websites ("hyperlinks") that lie outside the university's area of responsibility, a liability obligation would arise only if the author knew of the content and it were technically possible and reasonable for them to prevent use in the case of unlawful content. The university hereby expressly declares that, at the time the links were set, no illegal content was identifiable on the pages to be linked. The university has no influence on the current or future design, the content or the authorship of the linked pages. It therefore expressly dissociates itself from all content of all linked pages that was changed after the link was set. This statement applies to all links and references set within the university's own online offering as well as to third-party entries in guest books, discussion forums, link directories, mailing lists and all other forms of databases set up by the university to whose content external write access is possible. The provider of the page referred to is solely liable for illegal, incorrect or incomplete content and in particular for damage arising from the use or non-use of information presented in this way, not the party who merely refers to the respective publication via links.
[b]Copyright[/b]
The game made available here is freely available under the GNU GPLv3 license and may be downloaded, modified and developed further in accordance with the license.
[b]Music[/b]
Music comes from: https://opengameart.org/. Credits go, among others, to Peachtea@You're Perfect Studio (intro), syncopika (in-game music) and Metaruka (space).
Sound effects by Juhani Junkala.
Please also note the legal notice of the University of Greifswald.
@@ -1,12 +1,15 @@
extends RichTextLabel
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
_update_head_text()
func _notification(what: int) -> void:
if what == NOTIFICATION_TRANSLATION_CHANGED:
_update_head_text()
func _update_head_text() -> void:
var scene_name = get_tree().current_scene.name
text = "/" + scene_name + "/"
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
text = "/" + tr(String(scene_name)) + "/"
+4 -2
View File
@@ -8,7 +8,7 @@ var _pending_user_text := ""
var _chat_history: Array[Dictionary] = []
var _saved_state_blob := PackedByteArray()
const DEFAULT_SYSTEM_PROMPT := "Antworte auf Deutsch. Antworte kurz und präzise in 1-2 Sätzen nur basierend auf dem bereitgestellten Dokument. Wenn die Antwort nicht im Dokument steht, antworte nur mit: 'Darauf kann ich nicht antworten, bitte stelle mir eine Frage zum EU AI Act'."
const DEFAULT_SYSTEM_PROMPT := "CHATBOT_SYSTEM_PROMPT"
const DEFAULT_MAX_HISTORY_TURNS := 0
@@ -46,6 +46,8 @@ func _ready() -> void:
_generate_button.pressed.connect(_on_generate_pressed)
_close_button.pressed.connect(_on_close_pressed)
_prompt_edit.connect("input_event", _on_prompt_edit_gui_input)
for i in range(option_button.item_count):
option_button.set_item_text(i, tr(option_button.get_item_text(i)))
_llama = GodotLlama.new()
_llama.context.token_generated.connect(_on_token_generated)
_llama.context.generation_finished.connect(_on_generation_finished)
@@ -225,7 +227,7 @@ func _load_txt(path: String) -> String:
func _build_chat_prompt(user_text: String) -> String:
var parts := PackedStringArray()
var clean_system := DEFAULT_SYSTEM_PROMPT.strip_edges()
var clean_system := tr(DEFAULT_SYSTEM_PROMPT).strip_edges()
# Llama 3 Header
parts.append("<|begin_of_text|>")
+23 -23
View File
@@ -116,7 +116,7 @@ offset_top = 950.0
offset_right = 1930.0
offset_bottom = 1050.0
theme_override_font_sizes/normal_font_size = 27
text = "Bitte beachten: Sie sprechen mit einer künstlichen Intelligenz. Verlassen Sie sich nie auf die Antworten."
text = "CHATBOT_DISCLAIMER"
fit_content = true
[node name="VBoxContainer" type="VBoxContainer" parent="."]
@@ -189,12 +189,12 @@ texture = ExtResource("2_ujr2t")
[node name="Title" type="Label" parent="MarginContainer/Scroll/VBox/HBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 30
text = "Frag mich etwas zum EU AI Act und ich versuche es dir zu beantworten! "
text = "CHATBOT_INTRO"
horizontal_alignment = 1
[node name="Label" type="Label" parent="MarginContainer/Scroll/VBox"]
layout_mode = 2
text = "Wähle ein Kapitel des EU AI Acts, zu dem du eine Frage hast:"
text = "CHATBOT_CHOOSE_CHAPTER"
[node name="OptionButton" type="OptionButton" parent="MarginContainer/Scroll/VBox"]
layout_mode = 2
@@ -202,48 +202,48 @@ size_flags_horizontal = 0
selected = 0
allow_reselect = true
item_count = 16
popup/item_0/text = "Kapitelübersicht und Kurzfassung"
popup/item_0/text = "CHATBOT_CH0"
popup/item_0/id = 0
popup/item_1/text = "Erwägungsgründe"
popup/item_1/text = "CHATBOT_CH1"
popup/item_1/id = 1
popup/item_2/text = "Kapitel 1 - Allgemeine Bestimmungen"
popup/item_2/text = "CHATBOT_CH2"
popup/item_2/id = 2
popup/item_3/text = "Kapitel 2 - Verbotene Praktiken im KI-Bereich"
popup/item_3/text = "CHATBOT_CH3"
popup/item_3/id = 3
popup/item_4/text = "Kapitel 3 - Hochrisiko-KI-Systeme"
popup/item_4/text = "CHATBOT_CH4"
popup/item_4/id = 4
popup/item_5/text = "Kapitel 4 - Transparenzpflichten für Anbieter und Betreiber bestimmter KI-Systeme"
popup/item_5/text = "CHATBOT_CH5"
popup/item_5/id = 5
popup/item_6/text = "Kapitel 5 - KI-Modelle mit allgemeinem Verwendungszweck"
popup/item_6/text = "CHATBOT_CH6"
popup/item_6/id = 6
popup/item_7/text = "Kapitel 6 - Massnahmen zur Innovationsförderung"
popup/item_7/text = "CHATBOT_CH7"
popup/item_7/id = 7
popup/item_8/text = "Kapitel 7 - Governance"
popup/item_8/text = "CHATBOT_CH8"
popup/item_8/id = 8
popup/item_9/text = "Kapitel 8 - EU-Datenbank für Hochrisiko-KI-Systeme"
popup/item_9/text = "CHATBOT_CH9"
popup/item_9/id = 9
popup/item_10/text = "Kapitel 9 - Beobachtung nach dem Inverkehrbringen, Informationsaustausch und Marktüberwachung"
popup/item_10/text = "CHATBOT_CH10"
popup/item_10/id = 10
popup/item_11/text = "Kapitel 10 - Verhaltenskodizes und Leitlinien"
popup/item_11/text = "CHATBOT_CH11"
popup/item_11/id = 11
popup/item_12/text = "Kapitel 11 - Befugnisübertragung und Ausschussverfahren"
popup/item_12/text = "CHATBOT_CH12"
popup/item_12/id = 12
popup/item_13/text = "Kapitel 12 - Sanktionen"
popup/item_13/text = "CHATBOT_CH13"
popup/item_13/id = 13
popup/item_14/text = "Kapitel 13 - Schlussbestimmungen"
popup/item_14/text = "CHATBOT_CH14"
popup/item_14/id = 14
popup/item_15/text = "Anhang"
popup/item_15/text = "CHATBOT_CH15"
popup/item_15/id = 15
[node name="PromptLabel" type="Label" parent="MarginContainer/Scroll/VBox"]
layout_mode = 2
text = "Frage:"
text = "CHATBOT_QUESTION"
[node name="PromptEdit" type="TextEdit" parent="MarginContainer/Scroll/VBox"]
custom_minimum_size = Vector2(0, 140)
layout_mode = 2
theme_override_styles/normal = SubResource("StyleBoxFlat_h7bxb")
placeholder_text = "Schreib hier deine Frage..."
placeholder_text = "CHATBOT_QUESTION_PLACEHOLDER"
tab_input_mode = false
[node name="GenerateRow" type="HBoxContainer" parent="MarginContainer/Scroll/VBox"]
@@ -257,7 +257,7 @@ text = "Enter"
[node name="OutputLabel" type="Label" parent="MarginContainer/Scroll/VBox"]
layout_mode = 2
text = "Antwort"
text = "CHATBOT_ANSWER"
[node name="OutputText" type="RichTextLabel" parent="MarginContainer/Scroll/VBox"]
custom_minimum_size = Vector2(0, 220)
@@ -271,7 +271,7 @@ theme_override_constants/separation = 8
[node name="CloseButton" type="Button" parent="MarginContainer/Scroll/VBox/GenerateRow2"]
z_index = 999
layout_mode = 2
text = "Schließen"
text = "CHATBOT_CLOSE"
[node name="StatusLabel" type="Label" parent="MarginContainer/Scroll/VBox"]
layout_mode = 2
+58 -46
View File
@@ -8,8 +8,10 @@ extends Control
@onready var generate_button: Button = $MarginContainer/Scroll/VBox/GenerateRow/GenerateButton
@onready var helper = $VBoxContainer/SubViewportContainer/SubViewport/base_node/helper
const API_URL := "" #TODO insert your url to the llm / api-gateway here
const API_URL := "https://apphubai.wolke.uni-greifswald.de/v1" #TODO insert your url to the llm / api-gateway here
const API_TOKEN := ""
const API_MODEL := "unsloth/gemma-4-31B-it-qat-GGUF:UD-Q4_K_XL"
const MAX_RESPONSE_TOKENS := 200
var document_id
signal closing_chatbot
@@ -17,6 +19,7 @@ signal closing_chatbot
func _ready():
_http.request_completed.connect(Callable(self, "_on_request_completed"))
_http.timeout = 180.0
document_id = option_button.selected
helper.play_idle()
@@ -35,8 +38,6 @@ func _unhandled_input(event: InputEvent) -> void:
func _on_generate_pressed() -> void:
$VBoxContainer/SubViewportContainer/SubViewport/AnimationPlayer.play("walk_helper")
helper.play_think_walk()
var user_text := _prompt_edit.text.strip_edges()
document_id = option_button.selected
TextToSpeech._stop_dialogue()
@@ -44,73 +45,84 @@ func _on_generate_pressed() -> void:
print("Prompt ist leer")
return
var document = _load_txt("res://addons/godot_llama/demo/documents/%s.md" % [document_id]).strip_edges()
print(document_id)
print(document)
var combined_user_message := ""
var document := _load_txt("res://addons/godot_llama/demo/documents/%s.md" % [document_id]).strip_edges()
var combined_user_message := user_text
if not document.is_empty():
combined_user_message = "Dokument:\n%s\n\nFrage: %s" % [document, user_text]
else:
combined_user_message = user_text
var body := {
"question": combined_user_message
"model": API_MODEL,
"messages": [
{"role": "system", "content": tr("CHATBOT_SYSTEM_PROMPT")},
{"role": "user", "content": combined_user_message},
],
"max_tokens": MAX_RESPONSE_TOKENS,
"temperature": 0.1,
}
var headers = [
var headers := PackedStringArray([
"Content-Type: application/json",
#"Authorization: Bearer %s" % API_TOKEN
]
var json_body := JSON.stringify(body)
var err = _http.request(
API_URL,
headers,
HTTPClient.METHOD_POST,
json_body
)
"Authorization: Bearer %s" % API_TOKEN,
])
var endpoint := API_URL.trim_suffix("/") + "/chat/completions"
var err := _http.request(endpoint, headers, HTTPClient.METHOD_POST, JSON.stringify(body))
if err != OK:
print("HTTP Fehler: ", err)
_stop_helper_animation()
output_text.text = _request_failed("HTTP %s" % error_string(err))
generate_button.disabled = false
return
$VBoxContainer/SubViewportContainer/SubViewport/AnimationPlayer.play("walk_helper")
helper.play_think_walk()
generate_button.disabled = true
func _on_request_completed(
result: int,
response_code: int,
headers: PackedStringArray,
_headers: PackedStringArray,
body: PackedByteArray
) -> void:
$VBoxContainer/SubViewportContainer/SubViewport/AnimationPlayer.stop()
helper.play_idle()
_stop_helper_animation()
generate_button.disabled = false
var txt := body.get_string_from_utf8()
if result != HTTPRequest.RESULT_SUCCESS:
output_text.text = _request_failed("result %s" % result)
return
if response_code != 200:
output_text.text = _request_failed("HTTP %s" % response_code)
push_warning("Chatbot HTTP %s: %s" % [response_code, txt.left(300)])
return
var json = JSON.parse_string(txt)
if json == null:
print("JSON Fehler")
var response_text := _extract_reply(json)
if response_text.is_empty():
output_text.text = _request_failed("empty response")
return
if json.has("content"):
print('content:')
print(json["content"])
var response_text = json["content"]
output_text.text = response_text
TextToSpeech._on_dialogue({"text": response_text})
if json.has("message"):
print('message:')
print(json["message"])
var response_text = json["message"]["content"]
output_text.text = response_text
var line = {"text": output_text.text}
TextToSpeech._on_dialogue(line)
generate_button.disabled = false
func _extract_reply(json) -> String:
if typeof(json) != TYPE_DICTIONARY:
return ""
if json.has("choices") and json["choices"] is Array and not json["choices"].is_empty():
var choice = json["choices"][0]
if choice is Dictionary and choice.get("message") is Dictionary:
return str(choice["message"].get("content", "")).strip_edges()
if json.has("content"):
return str(json["content"]).strip_edges()
if json.get("message") is Dictionary:
return str(json["message"].get("content", "")).strip_edges()
return ""
func _request_failed(detail: String) -> String:
if TranslationServer.get_locale().begins_with("en"):
return "The request failed (%s)." % detail
return "Die Anfrage ist fehlgeschlagen (%s)." % detail
func _stop_helper_animation() -> void:
$VBoxContainer/SubViewportContainer/SubViewport/AnimationPlayer.stop()
helper.play_idle()
func _load_txt(path: String) -> String:
var file := FileAccess.open(path, FileAccess.READ)
+1 -6
View File
@@ -4,12 +4,7 @@ extends Node3D
var current_displayed_text : String = ""
func _ready() -> void:
floating_text_component.set_text(
"Seit dem ersten Star Wars Film hat sich die Erde ca. 50 mal um die Sonne gedreht und viel ist seitdem passiert.
Intelligente Roboter wie R2D2 und C3PO sind keine ferne Science Fiction mehr und Künstliche Intelligenz ist in unserem Alltag angekommen. \n
Die Europäische Union hat daher das weltweit erste Gesetz zur Regulierung von Künstlicher Intelligenz erlassen, den EU AI Act.\n
Dieses Spiel soll Ihnen helfen grundlegende Kenntnisse zu Künstlicher Intelligenz und den Regelungen des EU AI Acts zu erlernen.
Bitte beachten Sie, dass dieses Spiel nur als Einführung dienen kann, konkrete Fragen sind meist nicht allgemein zu beantworten und sollten von einer Fachperson eingeschätzt werden.")
floating_text_component.set_text(tr("FLOAT_TEXT"))
floating_text_component.emit_spawn_text.emit()
await get_tree().create_timer(33.0).timeout
$start_btn.visible = true
+2 -2
View File
@@ -121,13 +121,13 @@ shape = SubResource("BoxShape3D_bs0kb")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.481889, 0.5644746)
modulate = Color(0, 0, 0, 1)
outline_modulate = Color(1, 1, 1, 1)
text = "Los geht's!"
text = "START_GAME"
font_size = 42
outline_size = 3
[node name="Label3D" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.846555, 3.2089822, -1.8559549)
text = "normalen Text anzeigen"
text = "CHANGE_FLOAT"
font_size = 42
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
+21 -13
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=4 format=3 uid="uid://msxftb40b7ks"]
[gd_scene load_steps=5 format=3 uid="uid://msxftb40b7ks"]
[ext_resource type="Script" uid="uid://vbi6iri04xbh" path="res://ai_act_text.gd" id="1_fvpwc"]
@@ -6,8 +6,19 @@
bg_color = Color(0, 0.2, 0.6, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fvpwc"]
content_margin_left = 12.0
content_margin_top = 6.0
content_margin_right = 12.0
content_margin_bottom = 6.0
bg_color = Color(1, 0.8, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_finished_hover"]
content_margin_left = 12.0
content_margin_top = 6.0
content_margin_right = 12.0
content_margin_bottom = 6.0
bg_color = Color(1, 0.85, 0.2, 1)
[node name="ai_act_text_static" type="Control"]
layout_mode = 3
anchors_preset = 0
@@ -30,14 +41,8 @@ theme_override_colors/font_color = Color(1, 0.8, 0, 1)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 3
theme_override_font_sizes/font_size = 58
text = "Seit dem ersten Star Wars Film hat sich die Erde
ca. 50 mal um die Sonne gedreht und viel ist passiert.
Intelligente Roboter wie R2D2 und C3PO sind keine ferne Science Fiction mehr und Künstliche Intelligenz ist in unserem Alltag angekommen.
Die Europäische Union hat daher das weltweit erste Gesetz zur Regulierung von Künstlicher Intelligenz erlassen, den EU AI Act.
Dieses Spiel soll Ihnen helfen grundlegende Kenntnisse zu Künstlicher Intelligenz und den Regelungen des EU AI Acts zu erlernen.
Bitte beachten Sie, dass dieses Spiel nur als Einführung dienen kann, konkrete Fragen sind meist nicht allgemein zu beantworten und sollten von einer Fachperson eingeschätzt werden."
text = "FLOAT_TEXT"
autowrap_mode = 2
clip_text = true
[node name="Button" type="Button" parent="."]
layout_mode = 0
@@ -46,19 +51,22 @@ offset_top = 13.0
offset_right = 1908.0
offset_bottom = 66.0
theme_override_font_sizes/font_size = 32
text = "Fliegenden Text
anzeigen"
text = "CHANGE_STATIC"
[node name="Button2" type="Button" parent="."]
layout_mode = 0
offset_left = 1684.0
offset_left = 1580.0
offset_top = 999.0
offset_right = 1907.0
offset_right = 1910.0
offset_bottom = 1052.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 32
theme_override_styles/normal = SubResource("StyleBoxFlat_fvpwc")
text = "Fertig gelesen"
theme_override_styles/hover = SubResource("StyleBoxFlat_finished_hover")
theme_override_styles/pressed = SubResource("StyleBoxFlat_fvpwc")
theme_override_styles/focus = SubResource("StyleBoxFlat_fvpwc")
clip_text = false
text = "TEXT_FINISHED"
[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]
[connection signal="pressed" from="Button2" to="." method="_on_button_2_pressed"]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

-41
View File
@@ -1,41 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dmehin8bsv6t4"
path.s3tc="res://.godot/imported/spiel_ballon.png-7b74233f801940b7a2c37ec294e908a8.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/Images/spiel_ballon.png"
dest_files=["res://.godot/imported/spiel_ballon.png-7b74233f801940b7a2c37ec294e908a8.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

-41
View File
@@ -1,41 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fw6n01e1esjp"
path.s3tc="res://.godot/imported/spiel_ballon2.png-52f28e182b33c934184341fdd77b2c4b.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/Images/spiel_ballon2.png"
dest_files=["res://.godot/imported/spiel_ballon2.png-52f28e182b33c934184341fdd77b2c4b.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b20r8q4nfs730"
path="res://.godot/imported/spiel_ballon_bot2.png-7042d6f6e2d805bfa516db7ead25bf96.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_bot2.png"
dest_files=["res://.godot/imported/spiel_ballon_bot2.png-7042d6f6e2d805bfa516db7ead25bf96.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cm4rb6esfqle0"
path="res://.godot/imported/spiel_ballon_bot.png-b91e7e91f12910e0bf97ec7a577b6434.ctex"
uid="uid://bbgun8o622y1x"
path="res://.godot/imported/spiel_ballon_bot_englisch.png-b4ddc87c9752fd192fb12264ec13ec6e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_bot.png"
dest_files=["res://.godot/imported/spiel_ballon_bot.png-b91e7e91f12910e0bf97ec7a577b6434.ctex"]
source_file="res://assets/Images/spiel_ballon_bot_englisch.png"
dest_files=["res://.godot/imported/spiel_ballon_bot_englisch.png-b4ddc87c9752fd192fb12264ec13ec6e.ctex"]
[params]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cxkveqhihg7kl"
path="res://.godot/imported/spiel_ballon_mail2.png-ffd9eca7e0879dfa959a541ac2cafe79.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_mail2.png"
dest_files=["res://.godot/imported/spiel_ballon_mail2.png-ffd9eca7e0879dfa959a541ac2cafe79.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bsf5yvmlqcg1g"
path="res://.godot/imported/spiel_ballon_surveillance3.png-47a209166efc7bc0d4abc75885a14775.ctex"
uid="uid://6dwol30vd626"
path="res://.godot/imported/spiel_ballon_mail_englisch.png-9029e196d2452dec408be8127b88c732.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_surveillance3.png"
dest_files=["res://.godot/imported/spiel_ballon_surveillance3.png-47a209166efc7bc0d4abc75885a14775.ctex"]
source_file="res://assets/Images/spiel_ballon_mail_englisch.png"
dest_files=["res://.godot/imported/spiel_ballon_mail_englisch.png-9029e196d2452dec408be8127b88c732.ctex"]
[params]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

-40
View File
@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2brlwiis5hqe"
path="res://.godot/imported/spiel_ballon_mrt.png-222fd5a10a270e888342c2e251ef1498.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_mrt.png"
dest_files=["res://.godot/imported/spiel_ballon_mrt.png-222fd5a10a270e888342c2e251ef1498.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 KiB

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cugpm2bwpm22v"
path="res://.godot/imported/spiel_ballon_mrt2.png-749449397872616a97949b979b6c905e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_mrt2.png"
dest_files=["res://.godot/imported/spiel_ballon_mrt2.png-749449397872616a97949b979b6c905e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://rkv3piap6mlp"
path="res://.godot/imported/spiel_ballon_mail.png-c9e935997a40cde136efec167a2f0f6f.ctex"
uid="uid://d3a6io1gelme2"
path="res://.godot/imported/spiel_ballon_mrt_englisch.png-9fa994bdc3343f0c8fa7f6c53212fa50.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_mail.png"
dest_files=["res://.godot/imported/spiel_ballon_mail.png-c9e935997a40cde136efec167a2f0f6f.ctex"]
source_file="res://assets/Images/spiel_ballon_mrt_englisch.png"
dest_files=["res://.godot/imported/spiel_ballon_mrt_englisch.png-9fa994bdc3343f0c8fa7f6c53212fa50.ctex"]
[params]
Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://ds8uc06db7ftt"
path="res://.godot/imported/spiel_ballon_bot3.png-c1fc9f9d6c5b9f05119ad57bd4130fa9.ctex"
uid="uid://cq388o5pf0s3d"
path="res://.godot/imported/spiel_ballon_recognition_englisch.png-8ae39a304a3675ee57839ac575fcbf4f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_bot3.png"
dest_files=["res://.godot/imported/spiel_ballon_bot3.png-c1fc9f9d6c5b9f05119ad57bd4130fa9.ctex"]
source_file="res://assets/Images/spiel_ballon_recognition_englisch.png"
dest_files=["res://.godot/imported/spiel_ballon_recognition_englisch.png-8ae39a304a3675ee57839ac575fcbf4f.ctex"]
[params]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brcmkadaa3iby"
path="res://.godot/imported/spiel_ballon_surveillance.png-a85e19531d876554bbf553b3e5c3736d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_surveillance.png"
dest_files=["res://.godot/imported/spiel_ballon_surveillance.png-a85e19531d876554bbf553b3e5c3736d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cxagf1qeoccxh"
path="res://.godot/imported/spiel_ballon_surveillance3a.png-0014c82f9aedb11d3ae4e28489af803c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_surveillance3a.png"
dest_files=["res://.godot/imported/spiel_ballon_surveillance3a.png-0014c82f9aedb11d3ae4e28489af803c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dcyoaa3vdsc8h"
path="res://.godot/imported/spiel_ballon_text.png-dd8a24914d0ff18888e257ef364a5592.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Images/spiel_ballon_text.png"
dest_files=["res://.godot/imported/spiel_ballon_text.png-dd8a24914d0ff18888e257ef364a5592.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+2 -2
View File
@@ -1,10 +1,10 @@
extends Control
var congrats_text_bottom = "Sie haben alle Aufgaben erfolgreich gemeistert und konnten zur Erde zurück kehren. \n Wir hoffen Sie konnten etwas über KI und den EU AI Act lernen."
var congrats_text_bottom = tr("CONGRATS_TEXT")
var jumped_back = false
func _ready() -> void:
var congrats_text = "Herzlichen Glückwunsch " + Global.player_name + "!\n\n\n\n\n"
var congrats_text = tr("CONGRATS_SHORT") + Global.player_name + "!\n\n\n\n\n"
$Panel/Label.text = congrats_text
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
$Panel/SubViewportContainer/SubViewport/astronaut/Armature/Skeleton3D/Cube_001.mesh = load(Global.mesh_resource_player)
+3 -10
View File
@@ -710,12 +710,7 @@ theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 8
theme_override_font_sizes/font_size = 74
text = "Herzlichen Glückwunsch!
"
text = "CONGRATS_SHORT"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
@@ -728,9 +723,7 @@ theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
theme_override_constants/outline_size = 3
theme_override_font_sizes/font_size = 48
text = "Sie haben alle Aufgaben erfolgreich gemeistert und konnten zur Erde zurück kehren.
Wir hoffen Sie konnten etwas über KI und den EU AI Act lernen.
"
text = "CONGRATS_TEXT"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
@@ -742,7 +735,7 @@ offset_top = 850.0
offset_right = 1145.0
offset_bottom = 916.0
theme_override_font_sizes/font_size = 42
text = "Nochmal spielen"
text = "PLAY_AGAIN"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
+1 -1
View File
@@ -568,7 +568,7 @@ mesh = SubResource("SphereMesh_i6slr")
[node name="Label3D" type="Label3D" parent="MeshInstance3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.67804193, 0.1867795)
text = "Erde"
text = "EARTH"
font_size = 48
outline_size = 16
+17
View File
@@ -8,6 +8,23 @@ var PlayerSelection := 0
var batteries := 0
const mesh_resource_player := "user://player_anim.tres"
var player_name = "Spieler1"
const DEFAULT_PLAYER_NAMES: Array[String] = ["Spieler1", "Player1"]
var chatbot_opened = false
var balloon_collected = false
var resource_balloon = ""
var locale := ""
func _ready() -> void:
if locale.is_empty():
var os_lang := OS.get_locale_language()
locale = "de" if os_lang == "de" else "en"
apply_locale(locale)
func apply_locale(new_locale: String) -> void:
var using_default_name := player_name.is_empty() or player_name in DEFAULT_PLAYER_NAMES or player_name == tr("Spieler1")
locale = new_locale
TranslationServer.set_locale(locale)
if using_default_name:
player_name = tr("Spieler1")
+1 -2
View File
@@ -553,6 +553,5 @@ theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 2
theme_override_font_sizes/font_size = 21
text = "[h] drücken für Hilfe
[r] für Wechsel zwischen Kamera- und Wurfmodus"
text = "HUD_HELP"
horizontal_alignment = 2
+1 -1
View File
@@ -36,7 +36,7 @@ func _on_arrow_right_pressed() -> void:
func update_label() -> void:
print(index_shown_battery)
$Panel/BatteryLabel.text = batteries[index_shown_battery].battery_label
$Panel/BatteryLabel.text = tr(batteries[index_shown_battery].battery_label)
func _on_button_pressed() -> void:
+7 -7
View File
@@ -48,7 +48,7 @@ transform = Transform3D(1, 0, 0, 0, 0.5844338, -0.81144136, 0, 0.81144136, 0.584
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3)
gravity_scale = 0.0
freeze = true
battery_label = "Chatbot"
battery_label = "BATTERY_CHATBOT"
image_path = "res://assets/Images/bot.jpg"
[node name="Battery2" parent="Panel/SubViewportContainer/SubViewport/batteries" instance=ExtResource("1_pohso")]
@@ -56,7 +56,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -3)
gravity_scale = 0.0
freeze = true
stored_power = 100
battery_label = "biometrische Überwachung im öffentlichem Raum"
battery_label = "BATTERY_BIOMETRIC"
image_path = "res://assets/Images/surveillance.jpg"
[node name="Battery3" parent="Panel/SubViewportContainer/SubViewport/batteries" instance=ExtResource("1_pohso")]
@@ -64,7 +64,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3)
gravity_scale = 0.0
freeze = true
stored_power = 25
battery_label = "Spamfilter"
battery_label = "BATTERY_SPAMFILTER"
image_path = "res://assets/Images/mail.jpg"
[node name="Battery4" parent="Panel/SubViewportContainer/SubViewport/batteries" instance=ExtResource("1_pohso")]
@@ -72,7 +72,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -3)
gravity_scale = 0.0
freeze = true
stored_power = 75
battery_label = "Diagnose von Krankheiten auf MRT-Bildern"
battery_label = "BATTERY_DIAGNOSIS"
image_path = "res://assets/Images/mrt.jpg"
[node name="ArrowLeft" type="Button" parent="Panel"]
@@ -116,7 +116,7 @@ offset_right = 1098.0
offset_bottom = 157.0
theme_override_constants/outline_size = 15
theme_override_font_sizes/font_size = 64
text = "Inventar"
text = "INVENTORY_TITLE"
[node name="Button" type="Button" parent="."]
layout_mode = 0
@@ -125,7 +125,7 @@ offset_top = 840.0
offset_right = 1079.0
offset_bottom = 906.0
theme_override_font_sizes/font_size = 42
text = "Auswählen"
text = "INVENTORY_SELECT"
[node name="Label" type="Label" parent="."]
layout_mode = 0
@@ -134,7 +134,7 @@ offset_top = 983.0
offset_right = 1906.0
offset_bottom = 1028.0
theme_override_font_sizes/font_size = 32
text = "[c] zum Schließen ohne etwas auszuwählen"
text = "INVENTORY_CLOSE_HINT"
[connection signal="gui_input" from="." to="." method="_on_gui_input"]
[connection signal="gui_input" from="Panel" to="." method="_on_panel_gui_input"]
+1 -1
View File
@@ -36,4 +36,4 @@ func _on_wrong_button_toggled(toggled_on: bool) -> void:
missing_btns = NR_CORRECT_BTNS - correct_buttons_pressed
func change_hint() -> void:
$Panel/Panel/Label/missing.text = "[noch " + str(missing_btns) + "]"
$Panel/Panel/Label/missing.text = tr("KEYPAD_MISSING") % str(missing_btns)
+20 -16
View File
@@ -75,7 +75,8 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Ausweis"
text = "KEYPAD_ID"
autowrap_mode = 3
[node name="Button2" type="Button" parent="Panel/Panel/Buttons"]
layout_mode = 0
@@ -88,7 +89,8 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Foto"
text = "KEYPAD_PHOTO"
autowrap_mode = 3
[node name="Button3" type="Button" parent="Panel/Panel/Buttons"]
layout_mode = 0
@@ -101,7 +103,8 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Wohnort"
text = "KEYPAD_RESIDENCE"
autowrap_mode = 3
[node name="Button4" type="Button" parent="Panel/Panel/Buttons"]
layout_mode = 0
@@ -114,7 +117,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_updv8")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Relativitätstheorie"
text = "KEYPAD_RELATIVITY"
autowrap_mode = 3
[node name="Button5" type="Button" parent="Panel/Panel/Buttons"]
@@ -128,7 +131,8 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Arbeit"
text = "KEYPAD_WORK"
autowrap_mode = 3
[node name="Button6" type="Button" parent="Panel/Panel/Buttons"]
layout_mode = 0
@@ -141,7 +145,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_updv8")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Aktienkurs"
text = "KEYPAD_STOCK"
autowrap_mode = 3
[node name="Button7" type="Button" parent="Panel/Panel/Buttons"]
@@ -155,7 +159,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_updv8")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "aktuelles Datum"
text = "KEYPAD_DATE"
autowrap_mode = 3
[node name="Button8" type="Button" parent="Panel/Panel/Buttons"]
@@ -169,7 +173,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Geburtstdatum"
text = "KEYPAD_BIRTHDATE"
autowrap_mode = 3
[node name="Button9" type="Button" parent="Panel/Panel/Buttons"]
@@ -183,7 +187,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "IP-Adresse"
text = "KEYPAD_IP"
autowrap_mode = 3
[node name="Button10" type="Button" parent="Panel/Panel/Buttons"]
@@ -197,7 +201,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Personalausweisnummer"
text = "KEYPAD_ID_NUMBER"
autowrap_mode = 3
[node name="Button11" type="Button" parent="Panel/Panel/Buttons"]
@@ -211,7 +215,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "politische Meinung"
text = "KEYPAD_POLITICAL"
autowrap_mode = 3
[node name="Button12" type="Button" parent="Panel/Panel/Buttons"]
@@ -225,7 +229,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_w41gr")
theme_override_styles/pressed = SubResource("StyleBoxFlat_3c3sr")
theme_override_styles/hover = SubResource("StyleBoxFlat_8rcbr")
toggle_mode = true
text = "Religion"
text = "KEYPAD_RELIGION"
autowrap_mode = 3
[node name="Label" type="Label" parent="Panel/Panel"]
@@ -236,7 +240,7 @@ offset_right = 1040.0
offset_bottom = 260.0
theme_override_font_sizes/font_size = 42
theme_override_styles/normal = SubResource("StyleBoxFlat_4swqm")
text = "Wählen Sie aus den untenstehenden Optionen diejenigen aus, die persönliche Daten enthalten."
text = "KEYPAD_INSTRUCTION"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
@@ -249,7 +253,7 @@ offset_top = 178.0
offset_right = 1047.0
offset_bottom = 208.0
theme_override_font_sizes/font_size = 21
text = "[noch x]"
text = "KEYPAD_MISSING"
[node name="Panel2" type="Panel" parent="Panel"]
visible = false
@@ -267,7 +271,7 @@ offset_bottom = 700.0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 2
theme_override_font_sizes/font_size = 62
text = "Glückwunsch! Alles wurde richtig ausgewählt, die Aufgabe ist gelöst."
text = "KEYPAD_SUCCESS"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
@@ -279,7 +283,7 @@ offset_top = 639.0
offset_right = 1399.0
offset_bottom = 692.0
theme_override_font_sizes/font_size = 38
text = "Sie dürfen nun zurück ins Raumschiff gehen."
text = "KEYPAD_RETURN"
[connection signal="toggled" from="Panel/Panel/Buttons/Button" to="." method="_on_correct_button_toggled"]
[connection signal="toggled" from="Panel/Panel/Buttons/Button2" to="." method="_on_correct_button_toggled"]
+2
View File
@@ -173,7 +173,9 @@ Screenshot={
[internationalization]
locale/translations=PackedStringArray("res://translations/en_de_translation.de.translation", "res://translations/en_de_translation.en.translation", "res://translations/en.po")
locale/translations_pot_files=PackedStringArray("res://Interact/dialogue/simple_dialogue.dialogue", "res://Interact/dialogue/contact_info.dialogue", "res://Interact/dialogue/intro.dialogue", "res://Interact/dialogue/ai_v1.dialogue", "res://Interact/dialogue/ai_v4.dialogue", "res://Interact/dialogue/ai_v3.dialogue", "res://Interact/dialogue/ai_v2.dialogue", "res://Interact/dialogue/explain_ordering_game.dialogue", "res://Interact/dialogue/ai_v5.dialogue", "res://Interact/dialogue/helper_intro.dialogue", "res://Interact/dialogue/helper.dialogue", "res://Interact/dialogue/keypad.dialogue", "res://Interact/dialogue/albatross.dialogue", "res://Interact/dialogue/quiz_explainer.dialogue")
locale/fallback="de"
[layer_names]
+6
View File
@@ -28,9 +28,15 @@ func openLinkinBrowser(link):
OS.shell_open(link)
func openAIActinBrowser():
if TranslationServer.get_locale().begins_with("en"):
openLinkinBrowser("https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32024R1689")
else:
openLinkinBrowser("https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32024R1689")
func openDSGVOinBrowser():
if TranslationServer.get_locale().begins_with("en"):
openLinkinBrowser("https://gdpr-info.eu/")
else:
openLinkinBrowser("https://dsgvo-gesetz.de/")
+15 -15
View File
@@ -253,30 +253,30 @@ shape = SubResource("BoxShape3D_p60ki")
[node name="quiz_module" parent="." instance=ExtResource("1_k7kv1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -17.726673)
question = "Ist der EU AI Act wichtig?"
question = "QUIZ1_Q"
correct = 1
answer_0 = "Nein."
answer_1 = "Ja, denn er ist das weltweit erste Gesetz zur Regulierung von KI."
answer_2 = "Nein, KI ist super und unbedenklich."
answer_3 = "Mir egal."
answer_0 = "QUIZ1_A0"
answer_1 = "QUIZ1_A1"
answer_2 = "QUIZ1_A2"
answer_3 = "QUIZ1_A3"
[node name="quiz_module2" parent="." instance=ExtResource("1_k7kv1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -31.685097)
question = "Stellen Sie sich vor, Sie wollen ein Sprachmodell nutzen um Entwürfe für offizielle Schreiben der Universität zu erstellen. Was ist im Hinblick auf den AI Act dabei zu beachten?"
question = "QUIZ2_Q"
correct = 3
answer_0 = "Die Verwendung eines LLM ist verboten, da es sich um eine nicht autorisierte Software handelt. "
answer_1 = "Die Verwendung des LLM spart Zeit und ist daher unbedenklich."
answer_2 = "Es ist irrelevant, wie die Entwürfe entstanden sind, solange das Ergebnis professionell aussieht."
answer_3 = "Der Inhalt der Entwürfe muss sorgfältig geprüft werden, um sicherzustellen, dass er korrekt, vollständig und nicht irreführend ist. Zudem kann ich ein lokal betriebens LLM an der Uni Greifswald nutzen werden und so verhindern, dass Firmen wie Google oder Apple Informationen über meine Arbeit und meine Person erhalten. "
answer_0 = "QUIZ2_A0"
answer_1 = "QUIZ2_A1"
answer_2 = "QUIZ2_A2"
answer_3 = "QUIZ2_A3"
[node name="quiz_module3" parent="." instance=ExtResource("1_k7kv1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -45.584503)
question = "Ein Mitarbeiter möchte ein Sprachmodel nutzen, um eine Zusammenfassung von Feedback-Antworten zu einer Vorlesung von Studierenden zu erstellen. Die Antworten enthalten Namen, Matrikelnummern und persönliche Meinungen, außerdem den Name der Vorlesung und der Universität. Was sollte der Mitarbeiter unbedingt tun? "
question = "QUIZ3_Q"
correct = 2
answer_0 = "Die vollständigen Antworten direkt in das Sprachmodell eingeben, um eine möglichst vollständige Analyse zu erhalten."
answer_1 = "Die Antworten zunächst in ein anonymisiertes Format überführen, bevor sie dem LLM zugeführt werden. Der Name der Universität und der Vorlesung muss nicht anonymisiert werden, weil es 2 Vorlesungen zum selben Thema gibt."
answer_2 = "Die Antworten sind zunächst in ein anonymisiertes Format zu überführen, bevor sie dem Sprachmodell zugeführt werden. Auch der Name der Universität und der Vorlesung muss anonymisiert werden, denn daraus kann auf Teilnehmende oder Lehrende geschlossen werden."
answer_3 = "Die Namen und Matrikelnummern manuell aus den Antworten entfernen, bevor sie dem Sprachmodell zugeführt werden."
answer_0 = "QUIZ3_A0"
answer_1 = "QUIZ3_A1"
answer_2 = "QUIZ3_A2"
answer_3 = "QUIZ3_A3"
[node name="PressureBlock" parent="." instance=ExtResource("4_ngcn3")]
transform = Transform3D(5, 0, 0, 0, 5, 0, 0, 0, 5, 0, -0.34563518, -54.785778)
+1 -1
View File
@@ -51,7 +51,7 @@ func _ready() -> void:
func set_question() -> void:
# Set texts
var full_question_text = question + "\na) "+answer_0+ "\nb) "+answer_1+ "\nc) "+answer_2+ "\nd) "+answer_3 + "\n"
var full_question_text = tr(question) + "\na) "+tr(answer_0)+ "\nb) "+tr(answer_1)+ "\nc) "+tr(answer_2)+ "\nd) "+tr(answer_3) + "\n"
question_label.text = full_question_text
question_panel.visible = true
+23 -6
View File
@@ -6,10 +6,10 @@ extends Control
$Panel/SubViewportContainer/SubViewport/Players/Player3/MeshInstance3D]
func _ready() -> void:
$AnimationPlayer.play("turning")
func selected_via_click(chosen_player: int) -> void:
player_panel_array[Global.PlayerSelection].get_theme_stylebox('panel').border_color = Color('cccccc')
players_turning[Global.PlayerSelection].visible = false
@@ -28,6 +28,13 @@ func _on_button_2_pressed() -> void:
func _on_button_3_pressed() -> void:
selected_via_click(2)
func _change_language() -> void:
if Global.locale == "de":
Global.apply_locale("en")
else:
Global.apply_locale("de")
func _on_start_pressed() -> void:
var mesh = players_turning[Global.PlayerSelection].mesh.duplicate()
@@ -46,19 +53,29 @@ func _on_line_edit_text_changed(new_text: String) -> void:
func _on_impressum_pressed() -> void:
$Panel2.visible = true
$Panel2/Label.text = load_text_file('res://Resources/documents/impressum.txt')
$Panel2/Label.text = load_localized_document("impressum")
func _on_datenschutz_pressed() -> void:
$Panel2.visible = true
$Panel2/Label.text = load_text_file('res://Resources/documents/datenschutz.txt')
$Panel2/Label.text = load_localized_document("datenschutz")
func _on_button_pressed() -> void:
$Panel2.visible = false
func load_text_file(path: String):
func load_localized_document(base_name: String) -> String:
var locale := TranslationServer.get_locale().substr(0, 2)
var localized_path := "res://Resources/documents/%s_%s.txt" % [base_name, locale]
var fallback_path := "res://Resources/documents/%s.txt" % base_name
if FileAccess.file_exists(localized_path):
return load_text_file(localized_path)
return load_text_file(fallback_path)
func load_text_file(path: String) -> String:
var file = FileAccess.open(path, FileAccess.READ)
var content = file.get_as_text()
return content
if file == null:
return ""
return file.get_as_text()
+34 -19
View File
@@ -23,7 +23,8 @@ draw_center = false
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_46sda"]
bg_color = Color(0.578181, 0.264114, 0.329346, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ed5hy"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xfn3p"]
bg_color = Color(0.5764706, 0.2627451, 0.32941177, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5yj1t"]
draw_center = false
@@ -123,7 +124,7 @@ offset_bottom = 950.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 48
theme_override_styles/normal = SubResource("StyleBoxFlat_d4505")
text = "Start"
text = "START"
[node name="Panel" type="Panel" parent="."]
layout_mode = 0
@@ -138,7 +139,7 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_efoot")
layout_mode = 0
offset_left = -20.8333
offset_top = -70.0
offset_right = 253.0
offset_right = 253.00002
offset_bottom = -3.0
theme_override_font_sizes/font_size = 48
theme_override_styles/normal = SubResource("StyleBoxFlat_46sda")
@@ -149,9 +150,11 @@ layout_mode = 0
offset_right = 274.167
offset_bottom = 67.0
theme_override_font_sizes/font_size = 40
theme_override_styles/normal = SubResource("StyleBoxEmpty_ed5hy")
placeholder_text = "Name wählen..."
theme_override_styles/normal = SubResource("StyleBoxFlat_xfn3p")
placeholder_text = "NAME_PLACEHOLDER"
alignment = 1
max_length = 15
expand_to_text_length = true
caret_blink = true
[node name="SubViewportContainer" type="SubViewportContainer" parent="Panel"]
@@ -386,7 +389,7 @@ offset_right = 624.0
offset_bottom = 459.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 48
text = "Vorlage wählen"
text = "CHOOSE_TEMPLATE"
[node name="Label2" type="Label" parent="Control"]
layout_mode = 0
@@ -396,7 +399,7 @@ offset_right = 1412.0
offset_bottom = 798.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 36
text = "(optional: Farben personalisieren)"
text = "OPTIONAL_COLORS"
[node name="Signet2018RgbGross" type="Sprite2D" parent="."]
position = Vector2(963, 89)
@@ -419,14 +422,16 @@ texture = ExtResource("9_kvwfe")
[node name="title" type="RichTextLabel" parent="."]
layout_mode = 0
offset_left = 620.0
offset_left = 4.0
offset_top = 193.0
offset_right = 1420.0
offset_right = 1917.0
offset_bottom = 293.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 3
theme_override_font_sizes/normal_font_size = 58
text = "Spielerisches AI Act Training"
bbcode_enabled = true
text = "GAME_TITLE"
fit_content = true
[node name="welcome" type="RichTextLabel" parent="."]
layout_mode = 0
@@ -436,7 +441,9 @@ offset_right = 1730.0
offset_bottom = 331.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
theme_override_font_sizes/normal_font_size = 32
text = "Herzlich Willkommen! Suchen Sie sich Ihre Spielfigur aus und lernen Sie den EU AI Act kennen."
bbcode_enabled = true
text = "WELCOME_TEXT"
fit_content = true
[node name="copyright" type="RichTextLabel" parent="."]
layout_mode = 0
@@ -445,8 +452,15 @@ offset_top = 1002.0
offset_right = 512.0
offset_bottom = 1052.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
text = "Verfügbar unter Lizenz GNU GPLv3
https://git.uni-greifswald.de/GAIM/gaim"
text = "LICENSE_TEXT"
[node name="language" type="Button" parent="."]
layout_mode = 0
offset_left = 1552.0
offset_top = 1017.0
offset_right = 1609.0
offset_bottom = 1048.0
text = "DE/EN"
[node name="impressum" type="Button" parent="."]
layout_mode = 0
@@ -454,7 +468,7 @@ offset_left = 1614.0
offset_top = 1017.0
offset_right = 1714.0
offset_bottom = 1048.0
text = "Impressum"
text = "IMPRESSUM"
[node name="datenschutz" type="Button" parent="."]
layout_mode = 0
@@ -462,7 +476,7 @@ offset_left = 1719.0
offset_top = 1017.0
offset_right = 1917.0
offset_bottom = 1048.0
text = "Datenschutzinformation"
text = "PRIVACY"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
@@ -481,7 +495,7 @@ layout_mode = 0
offset_left = -8.0
offset_top = -298.0
offset_right = 290.0
offset_bottom = 309.0
offset_bottom = 282.0
scale = Vector2(0.9, 0.9)
picker_shape = 2
sampler_visible = false
@@ -500,7 +514,7 @@ offset_bottom = 76.0
scale = Vector2(0.9, 0.9)
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 42
text = "Farbe Anzug"
text = "COLOR_SUIT"
[node name="Control3" type="Control" parent="."]
anchors_preset = 0
@@ -515,7 +529,7 @@ layout_mode = 0
offset_left = 10.0
offset_top = -290.0
offset_right = 308.0
offset_bottom = 317.0
offset_bottom = 288.88892
picker_shape = 2
sampler_visible = false
color_modes_visible = false
@@ -532,7 +546,7 @@ offset_right = 314.0
offset_bottom = 115.889
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 42
text = "Farbe Details"
text = "COLOR_DETAILS"
[node name="Panel2" type="Panel" parent="."]
visible = false
@@ -572,6 +586,7 @@ autoplay = true
[connection signal="pressed" from="Control/Panel4/Button1" to="." method="_on_button_1_pressed"]
[connection signal="pressed" from="Control/Panel2/Button2" to="." method="_on_button_2_pressed"]
[connection signal="pressed" from="Control/Panel3/Button3" to="." method="_on_button_3_pressed"]
[connection signal="pressed" from="language" to="." method="_change_language"]
[connection signal="pressed" from="impressum" to="." method="_on_impressum_pressed"]
[connection signal="pressed" from="datenschutz" to="." method="_on_datenschutz_pressed"]
[connection signal="color_changed" from="Control2/ColorPicker" to="Panel/SubViewportContainer/SubViewport/Players/Player1/MeshInstance3D" method="_on_color_picker_color_changed"]
+16 -22
View File
@@ -925,7 +925,7 @@ offset_bottom = 949.9867
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 48
theme_override_styles/normal = SubResource("StyleBoxFlat_d4505")
text = "Start"
text = "START"
[node name="Panel" type="Panel" parent="."]
layout_mode = 0
@@ -952,7 +952,7 @@ offset_right = 258.0
offset_bottom = 67.0
theme_override_font_sizes/font_size = 42
theme_override_styles/normal = SubResource("StyleBoxEmpty_ed5hy")
placeholder_text = "Name"
placeholder_text = "NAME_PLACEHOLDER"
alignment = 1
editable = false
caret_blink = true
@@ -1000,17 +1000,7 @@ offset_right = 624.0
offset_bottom = 459.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 48
text = "Vorlage wählen"
[node name="Label2" type="Label" parent="Vorlagen"]
layout_mode = 0
offset_left = 701.0
offset_top = 401.0
offset_right = 907.0
offset_bottom = 468.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 36
text = "oder"
text = "CHOOSE_TEMPLATE"
[node name="Panel4" type="Panel" parent="Vorlagen"]
layout_mode = 0
@@ -1212,14 +1202,16 @@ texture = ExtResource("6_rbr0u")
[node name="title" type="RichTextLabel" parent="Header"]
layout_mode = 0
offset_left = 650.0
offset_left = 4.0
offset_top = 193.0
offset_right = 1270.0
offset_right = 1917.0
offset_bottom = 293.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 3
theme_override_font_sizes/normal_font_size = 58
text = "AI Act Explorer GAME"
bbcode_enabled = true
text = "GAME_TITLE"
fit_content = true
[node name="welcome" type="RichTextLabel" parent="Header"]
layout_mode = 0
@@ -1229,7 +1221,9 @@ offset_right = 1730.0
offset_bottom = 331.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
theme_override_font_sizes/normal_font_size = 32
text = "Herzlich Willkommen! Suchen Sie sich Ihre Spielfigur aus und lernen sie den EU AI Act kennen"
bbcode_enabled = true
text = "WELCOME_TEXT"
fit_content = true
[node name="Foot" type="Control" parent="."]
anchors_preset = 0
@@ -1245,7 +1239,7 @@ offset_top = 561.0
offset_right = 289.0
offset_bottom = 586.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
text = "copyright Universität Greifswald (übernehmen keine Haftung)"
text = "COPYRIGHT_UNI"
[node name="description" type="RichTextLabel" parent="Foot"]
layout_mode = 0
@@ -1255,7 +1249,7 @@ offset_right = 1689.0
offset_bottom = 589.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
theme_override_font_sizes/normal_font_size = 24
text = "Ein Tool entwickelt von der Universität Greifswald zum spielerischen Verstehen / Entdecken des EU AI Acts"
text = "TOOL_DESC"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
@@ -1302,7 +1296,7 @@ offset_right = 313.99994
offset_bottom = 115.88888
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 42
text = "Farbe Details"
text = "COLOR_DETAILS"
[node name="Control2" type="Control" parent="ColorWheels"]
anchors_preset = 0
@@ -1335,7 +1329,7 @@ offset_bottom = 76.0
scale = Vector2(0.9, 0.9)
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 42
text = "Farbe Anzug"
text = "COLOR_SUIT"
[node name="Panel" type="Panel" parent="ColorWheels"]
layout_mode = 0
@@ -1352,7 +1346,7 @@ offset_top = 11.0
offset_right = 484.0
offset_bottom = 77.0
theme_override_font_sizes/font_size = 42
text = "Farben personalisieren"
text = "CUSTOMIZE_COLORS"
[node name="Shuttle" type="SubViewportContainer" parent="."]
layout_mode = 0
+565
View File
@@ -0,0 +1,565 @@
# LANGUAGE translation for AI-Training for the following files:
# res://Interact/dialogue/simple_dialogue.dialogue
# res://Interact/dialogue/contact_info.dialogue
# res://Interact/dialogue/intro.dialogue
# res://Interact/dialogue/ai_v1.dialogue
# res://Interact/dialogue/ai_v4.dialogue
# res://Interact/dialogue/ai_v3.dialogue
# res://Interact/dialogue/ai_v2.dialogue
# res://Interact/dialogue/explain_ordering_game.dialogue
# res://Interact/dialogue/ai_v5.dialogue
# res://Interact/dialogue/helper_intro.dialogue
# res://Interact/dialogue/helper.dialogue
# res://Interact/dialogue/keypad.dialogue
# res://Interact/dialogue/albatross.dialogue
# res://Interact/dialogue/quiz_explainer.dialogue
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: AI-Training\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
#. TRANSLATORS: Character name
#: Interact/dialogue/simple_dialogue.dialogue
#: Interact/dialogue/intro.dialogue
msgctxt "dialogue"
msgid "Nathan"
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "[[Hi|Hello|Howdy]], this is some dialogue."
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "Here are some choices."
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "You picked the first one."
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "First one"
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "You picked the second one."
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "Second one"
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "Start again"
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "End the conversation"
msgstr ""
#: Interact/dialogue/simple_dialogue.dialogue
msgid "For more information see the online documentation."
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Hallo. Ich bin Datenschutzbeauftragter. Ich würde gerne ein paar Infos geben."
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Wozu soll ich etwas erzählen"
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Wenn Sie etwas sehen /etwas melden wollen, bezogen auf folgenden [url=https://artificialintelligenceact.eu/de/recital/172/]Artikel[/url] bzw. [url=https://eur-lex.europa.eu/eli/dir/2019/1937/oj?locale=de]Richtlinie[/url]"
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Verstöße melden / Whistleblowing"
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Link"
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "aktuelle Gerichtsverfahren"
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Kontaktinfo für weitere Fragen"
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Nichts weiter, ich hab alles schon gehört"
msgstr ""
#: Interact/dialogue/contact_info.dialogue
msgid "Danke für Ihre Zeit. Viel Spaß beim weiteren Erkunden."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/intro.dialogue
msgctxt "dialogue"
msgid "Boss"
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Hallo! Vielen Dank, dass du hier bist."
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Deine Aufgabe ist es, den EU Ai Act besser zu verstehen."
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Dafür senden wir dich auf den KI Planeten."
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Dort wirst du lernen, was KI ist, in welchen Bereichen sie Anwendung findet, welche Einstufungen es gibt und vieles mehr."
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Wenn du alle Aufgaben erledigt hast, kannst du zurück kommen."
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Viel Spaß auf der Reise! Wir sehen uns danach wieder."
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Starten der Reise"
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Viel Spaß beim weiteren austesten der Steuerung. Wenn du bereit bist, klicke auf Button(?)/rede wieder mit mir."
msgstr ""
#: Interact/dialogue/intro.dialogue
msgid "Noch weiter hier bleiben"
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v1.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien001"
msgstr ""
#: Interact/dialogue/ai_v1.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Ich finde es schwierig künstliche Intelligenz zu definieren. Die Menschen sind sich ja nichtmal einig was Intelligenz ist."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v4.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien004"
msgstr ""
#: Interact/dialogue/ai_v4.dialogue
msgid "In der Stanford Enzyklopädie für Philosophie steht: Künstliche Intelligenz (KI) ist das Gebiet, das sich mit der Erschaffung künstlicher Tiere (oder zumindest künstlicher Lebewesen, die - in geeigneten Kontexten - wie Tiere erscheinen) und für viele auch künstlicher Personen (oder zumindest künstlicher Lebewesen, die - in geeigneten Kontexten - wie Personen erscheinen) befasst."
msgstr ""
#: Interact/dialogue/ai_v4.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Ich glaube das heißt KI möchte Lebewesen erschaffen, die für Menschen nicht von natürlichen Lebewesen unterscheidbar sind."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v3.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien003"
msgstr ""
#: Interact/dialogue/ai_v3.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Modelle Künstlicher Intelligenz können komplexe Funktionen über sehr viele Parameter abbilden. Die Parameter werden aus Daten gelernt."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v2.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien002"
msgstr ""
#: Interact/dialogue/ai_v2.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Künstliche Intelligenz lernt aus großen Datenmengen. Die Ergebnisse sind nicht deterministisch, also es kommt nie genau das gleiche raus, wenn ich einen Algorithmus zweimal lernen lasse."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Die vier Risikostufen"
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Minimales Risiko"
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Geringes Risiko"
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Hohes Risiko"
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Inakzeptables Risiko"
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Der EU AI Act bewertet KI Systeme in vier Risikostufen, von minimalem bis zu inakzeptablem Risiko für Grundrechte und Sicherheit."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Je höher das Risiko, umso strenger die Regulierung. KI Systeme mit inakzeptablem Risiko sind verboten."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
msgid ""
"In der folgenden Aufgabe geht es darum, die eben gesammelten Batterien zu ihren passenden Generatoren zuzuordnen. Dadurch wird das Raumschiff geladen und kann wieder starten. \n"
"Die Batterien befinden sich im Inventar, welches sich mit [c] öffnen (und auch wieder schließen) lässt."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
msgid ""
"Zum Zuordnen eine Batterie auswählen (über den Button) und anschließend zu den Generatoren transportieren und dort (mit [f]) wieder loslassen und einsetzen. \n"
"Jeder Generator steht für eine der vier Risikostufen. \n"
"Die Batterien bilden je ein KI-System ab."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid "[speed=1]Lernen Sie nun die einzelnen Stufen genauer kennen. Eine der Stufen mit der Maus oder den Pfeiltasten auswählen und klicken/Enter/Leertaste drücken."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"Keine spezifischen Anforderungen. \n"
"Ein Beispiel für diese Kategorie wäre ein Schachcomputer."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"Informationspflicht über die Benutzung der KI. \n"
"Ein Beispiel für diese Kategorie wäre ein Programmierbot."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"Strenge Anforderungen an Transparenz, Dokumentation, Überwachung des Systems durch Menschen! \n"
"Ein Beispiel für diese Kategorie wäre ein KI-System, dass automatisch Arbeiten von Studierenden oder Schülern/Schülerinnen bewertet."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"KI ist verboten! \n"
"Ein Beispiel für diese Kategorie wäre der Einsatz eines KI-Systems, dass das Risiko, dass eine Person in Zukunft eine Straftat begeht, vorhersagt."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
msgid "Ich habe alles gelernt, beginne mit dem Spiel."
msgstr ""
#: Interact/dialogue/explain_ordering_game.dialogue
msgid "[speed=-1]Lernen Sie nun die einzelnen Stufen genauer kennen. Eine der Stufen mit der Maus oder den Pfeiltasten auswählen und klicken/Enter/Leertaste drücken. Wenn Sie fertig sind, können Sie durch Wählen der untersten Option das Spiel fortsetzen."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v5.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien005"
msgstr ""
#: Interact/dialogue/ai_v5.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Die Stanford 100 year study of AI sagt: Künstliche Intelligenz ist die Tätigkeit, die darauf abzielt, Maschinen intelligent zu machen, und Intelligenz ist die Eigenschaft, die es einem Wesen ermöglicht, in seiner Umgebung angemessen und vorausschauend zu handeln."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/helper_intro.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Helfer"
msgstr ""
#: Interact/dialogue/helper_intro.dialogue
msgid "Hallo! Ich bin Ihr Helfer. Ich werde Sie ab jetzt auf Ihrer Reise auf diesem Planeten begleiten, und bei Fragen zu Verfügung stehen."
msgstr ""
#: Interact/dialogue/helper_intro.dialogue
msgid "Ich kann helfen, wenn Fragen zum Spiel aufkommen, sei es zur genauen Steuerung oder was genau die aktuelle Aufgabe ist."
msgstr ""
#: Interact/dialogue/helper_intro.dialogue
msgid "Ebenso habe ich den gesamten Text des EU AI Acts und der Datenschutzgrundverordnung zum Nachschlagen parat, zusätzlich können Sie eigene Fragen zu diesen Texten stellen, die ich dann versuchen werde zu beantworten."
msgstr ""
#: Interact/dialogue/helper_intro.dialogue
msgid "Dazu einfach [h] drücken und die passende Option auswählen. Das geht jederzeit, solange gerade kein anderer Dialog offen ist."
msgstr ""
#: Interact/dialogue/helper_intro.dialogue
msgid "Um zurück zum Raumschiff zu gelangen und dieses Starten zu können und im Anschluss zurück auf die Erde zu fliegen, müssen vier Aufgaben bewältigt werden. Jede wird vorher genau erklärt."
msgstr ""
#: Interact/dialogue/helper_intro.dialogue
msgid "Oben stehen auch für die Dauer einer jeden Aufgabe nochmal Hinweise zur Steuerung bzw. was gerade gemacht werden soll."
msgstr ""
#: Interact/dialogue/helper_intro.dialogue
msgid "Los geht's, laufen Sie einfach weiter und schon werden Sie zur ersten Aufgabe gelangen! Viel Erfolg und Vergnügen"
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgctxt "dialogue"
msgid ""
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Zur Erinnerung"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "bisher gelerntes nochmal ansehen"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Fragen zum EU AI Act stellen"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Hilfe zum Spiel (Steuerung, aktuelle Aufabe, ...)"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "gesamter Text des EU AI Acts (öffnet Link im Browser)"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "gesamter Text der DSGVO (öffnet Link im Browser)"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Musik an/aus"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Schließen"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Alien-Dialoge wiederholen"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Mögliche Anwendungen von KI"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Risikostufen"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "personenbezogene Daten"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "zurück"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "In der Stanford Enzyklopädie für Philosophie steht: Künstliche Intelligenz (KI) ist das Gebiet, das sich mit der Erschaffung künstlicher Tiere (oder zumindest künstlicher Lebewesen, die – in geeigneten Kontexten – wie Tiere erscheinen) und für viele auch künstlicher Personen (oder zumindest künstlicher Lebewesen, die – in geeigneten Kontexten – wie Personen erscheinen) befasst."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Spamfilter, Diagnose von Krankheiten auf MRT-Bildern, Chatbots, biometrische Überwachung im öffentlichen Raum."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Zurück"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "[speed=-1]Lernen Sie nun die einzelnen Stufen genauer kennen."
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "KI im Alltag: Wahrscheinlich sind die bisherigen Beispiele für Sie im Berufsalltag noch nicht relevant, sicher kennen Sie aber und vielleicht nutzen Sie auch schon sogenannte Sprachmodelle, die uns Fragen beantworten, Texte schreiben, übersetzen und vieles mehr. Beispiele hierfür sind ChatGPT oder Gemini."
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Erste wichtige Regel: Jegliche Eingabe von personenbezogenen Daten in kommerzielle Sprachmodelle ist verboten (laut Datenschutzgrundverordnung, hier ist nicht unbedingt der AI Act die Grundlage). Wollen Sie sich davor schützen, dass aus Ihren Anfragen von Firmen Rückschlüsse über Ihre eigene Person gezogen werden, nutzen sie am besten gar keine kommerziellen Modelle."
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Glücklicherweise bietet die Universität Greifswald eine Alternative. Das Rechenzentrum stellt uns eine ganze Reihe von Sprachmodellen zur Verfügung, die auf der Infrastruktur der Universität installiert sind und Daten nicht nach außen lassen. Ihre Anfragen sind damit so sicher wie Ihre Daten, die Sie in der Cloud der Universität speichern. https://open-webui.wolke.uni-greifswald.de"
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Dürfen Sie hier jetzt persönliche Daten eingeben? Nein, nur mit Zustimmung der Person, von der die Daten stammen, und unter der Voraussetzung, dass die Person vollständig informiert ist und genau der Eingabe für diesen Zweck zugestimmt hat."
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Ein weiteres Problem mit Ki und Sprachmodellen ist Ihre Zuverlässigkeit. Seien Sie daher kritisch bei jeder Information, die Ihnen ein Modell liefert und prüfen Sie nach. Nutzen Sie z.B. nicht ungelesen Texte für Emails oder ungeprüfte Informationen für Vorträge."
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Was sind denn eigentlich personenbezogene Daten?"
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Alle Informationen, die Sie in ein KI System eingeben, sind Daten. Personenbezogene Daten können Menschen direkt oder indirekt (durch Zusammenführung verschiedener Daten) identifizieren."
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Direkt identifizierende Daten sind z.B. Name, Adresse, Personalausweisnummer. Indirekt identifizierende Informationen sind z.B. Geburtsdatum, Geschlecht, Standortdaten, Online-Kennungen (IP-Adresse, Cookie-ID), biometrische Daten (Gesichtserkennung, Fingerabdruck), Gesundheitsdaten, finanzielle Informationen, politische Meinungen, religiöse Überzeugung."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Steuerung"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "aktuelle Aufgabe"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Verwenden Sie die Pfeiltasten oder w,a,s,d zum Bewegen. Mit der Leertaste können Sie springen."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Bewegen"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Mit [r] schalten Sie zwischen Kamera- und Wurfmodus um. Im Wurfmodus können Sie jederzeit Bälle werfen. Durch Bewegen der Mause können Sie zielen (Sie sollten ein Fadenkreuz sehen) und klicken zum Werfen."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Werfen"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Um Objekte aufzuheben nutzen Sie die Taste [e]. Mit [q] können sie wieder abgelegt werden."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Objekte aufheben"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Um mit Personen zu reden, drücken Sie [Enter] oder [t]. Personen sind ansprechbar, wenn unten links eine Aufforderung zum Reden steht."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Reden"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Mit [r] schalten Sie zwischen Kamera- und Wurfmodus um. Im Kameramodus können Sie durch Bewegen der Maus die Kamera steueren, durch scrollen kann gezoomt werden."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Kamera"
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Sprechen Sie mit den Aliens, um verschiedene Definitionen von Künstlicher Intelligenz (KI) kennenzulernen."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Start einer Unterhaltung mit [t] oder Enter."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "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."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Werfen mit [r] und Zielen mit der Maus (Fadenkreuz)."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid ""
"In der folgenden Aufgabe geht es darum, die eben gesammelten Batterien zu ihren passenden Generatoren zuzuordnen. Dadurch wird das Raumschiff geladen und kann wieder starten. \n"
"Die Batterien befinden sich im Inventar, welches sich mit [c] öffnen (und auch wieder schließen) lässt. Zum Zuordnen eine Batterie auswählen (über den Button) und anschließend zu den Generatoren transportieren und dort (mit [f]) wieder loslassen und einsetzen. \n"
"Jeder Generator steht für eine der vier Risikostufen. \n"
"Die Batterien bilden je ein KI-System ab."
msgstr ""
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Um in das Raumschiff zu gelangen, müssen Sie gleich als Passscode einmal alle personenbezogenen Daten auf dem Keypad auswählen. Zum Starten dieses Spiels, drücken Sie [k]."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Beantworten Sie die unten stehen Fragen, indem Sie sich auf das Feld stellen, dass zur richtigen Antwortmöglichkeit gehört. Bei richtiger Antwort öffnet sich die Tür und Sie glangen zur nächsten Frage."
msgstr ""
#: Interact/dialogue/helper.dialogue
msgid "Lernen Sie die Steuerung kennen."
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/albatross.dialogue
#: Interact/dialogue/quiz_explainer.dialogue
msgctxt "dialogue"
msgid "Albatross"
msgstr ""
#: Interact/dialogue/albatross.dialogue
msgid "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])"
msgstr ""
#: Interact/dialogue/quiz_explainer.dialogue
msgid "Willkommen zurück! Ich hoffe, Sie konnten einiges lernen, sowohl über KI im allgemeinen als auch speziell den EU AI Act. Bevor ich Sie zurück zur Erde fliegen kann, muss ich dieses Wissen allerdings einmal überprüfen."
msgstr ""
#: Interact/dialogue/quiz_explainer.dialogue
msgid "Dazu werde ich Ihnen 3 Fragen stellen. Vor Ihnen auf dem Boden befinden sich Antwortplatten. Wählen Sie die zur Frage richtige Antwort aus, und stellen Sie sich auf die zugehörige Platform. Wurde richtig geantwortet, wird sich die Tür öffen und Sie gelangen zur nächsten Frage. Bei einer falschen Antwort denken Sie nochmal genau nach und wählen dann eine andere Antwort-Platform. Nach Abschluss des Quizzes können wir gemeinsam zur Erde zurückfliegen. Viel Erfolg!"
msgstr ""
+603
View File
@@ -0,0 +1,603 @@
# English translation for AI-Training for the following files:
# res://Interact/dialogue/simple_dialogue.dialogue
# res://Interact/dialogue/contact_info.dialogue
# res://Interact/dialogue/intro.dialogue
# res://Interact/dialogue/ai_v1.dialogue
# res://Interact/dialogue/ai_v4.dialogue
# res://Interact/dialogue/ai_v3.dialogue
# res://Interact/dialogue/ai_v2.dialogue
# res://Interact/dialogue/explain_ordering_game.dialogue
# res://Interact/dialogue/ai_v5.dialogue
# res://Interact/dialogue/helper_intro.dialogue
# res://Interact/dialogue/helper.dialogue
# res://Interact/dialogue/keypad.dialogue
# res://Interact/dialogue/albatross.dialogue
# res://Interact/dialogue/quiz_explainer.dialogue
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: AI-Training\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
#. TRANSLATORS: Character name
#: Interact/dialogue/simple_dialogue.dialogue
#: Interact/dialogue/intro.dialogue
msgctxt "dialogue"
msgid "Nathan"
msgstr "Nathan"
#: Interact/dialogue/simple_dialogue.dialogue
msgid "[[Hi|Hello|Howdy]], this is some dialogue."
msgstr "[[Hi|Hello|Howdy]], this is some dialogue."
#: Interact/dialogue/simple_dialogue.dialogue
msgid "Here are some choices."
msgstr "Here are some choices."
#: Interact/dialogue/simple_dialogue.dialogue
msgid "You picked the first one."
msgstr "You picked the first one."
#: Interact/dialogue/simple_dialogue.dialogue
msgid "First one"
msgstr "First one"
#: Interact/dialogue/simple_dialogue.dialogue
msgid "You picked the second one."
msgstr "You picked the second one."
#: Interact/dialogue/simple_dialogue.dialogue
msgid "Second one"
msgstr "Second one"
#: Interact/dialogue/simple_dialogue.dialogue
msgid "Start again"
msgstr "Start again"
#: Interact/dialogue/simple_dialogue.dialogue
msgid "End the conversation"
msgstr "End the conversation"
#: Interact/dialogue/simple_dialogue.dialogue
msgid "For more information see the online documentation."
msgstr "For more information see the online documentation."
#: Interact/dialogue/contact_info.dialogue
msgid "Hallo. Ich bin Datenschutzbeauftragter. Ich würde gerne ein paar Infos geben."
msgstr "Hello. I am the data protection officer. I would like to share some information."
#: Interact/dialogue/contact_info.dialogue
msgid "Wozu soll ich etwas erzählen"
msgstr "What should I tell you about"
#: Interact/dialogue/contact_info.dialogue
msgid "Wenn Sie etwas sehen /etwas melden wollen, bezogen auf folgenden [url=https://artificialintelligenceact.eu/de/recital/172/]Artikel[/url] bzw. [url=https://eur-lex.europa.eu/eli/dir/2019/1937/oj?locale=de]Richtlinie[/url]"
msgstr "If you see something / want to report something related to the following [url=https://artificialintelligenceact.eu/recital/172/]Article[/url] or [url=https://eur-lex.europa.eu/eli/dir/2019/1937/oj?locale=en]Directive[/url]"
#: Interact/dialogue/contact_info.dialogue
msgid "Verstöße melden / Whistleblowing"
msgstr "Report violations / Whistleblowing"
#: Interact/dialogue/contact_info.dialogue
msgid "Link"
msgstr "Link"
#: Interact/dialogue/contact_info.dialogue
msgid "aktuelle Gerichtsverfahren"
msgstr "Current court cases"
#: Interact/dialogue/contact_info.dialogue
msgid "Kontaktinfo für weitere Fragen"
msgstr "Contact info for further questions"
#: Interact/dialogue/contact_info.dialogue
msgid "Nichts weiter, ich hab alles schon gehört"
msgstr "Nothing more, I have already heard everything"
#: Interact/dialogue/contact_info.dialogue
msgid "Danke für Ihre Zeit. Viel Spaß beim weiteren Erkunden."
msgstr "Thank you for your time. Enjoy exploring further."
#. TRANSLATORS: Character name
#: Interact/dialogue/intro.dialogue
msgctxt "dialogue"
msgid "Boss"
msgstr "Boss"
#: Interact/dialogue/intro.dialogue
msgid "Hallo! Vielen Dank, dass du hier bist."
msgstr "Hello! Thank you for being here."
#: Interact/dialogue/intro.dialogue
msgid "Deine Aufgabe ist es, den EU Ai Act besser zu verstehen."
msgstr "Your task is to better understand the EU AI Act."
#: Interact/dialogue/intro.dialogue
msgid "Dafür senden wir dich auf den KI Planeten."
msgstr "To that end, we are sending you to the AI planet."
#: Interact/dialogue/intro.dialogue
msgid "Dort wirst du lernen, was KI ist, in welchen Bereichen sie Anwendung findet, welche Einstufungen es gibt und vieles mehr."
msgstr "There you will learn what AI is, in which areas it is used, what classifications exist, and much more."
#: Interact/dialogue/intro.dialogue
msgid "Wenn du alle Aufgaben erledigt hast, kannst du zurück kommen."
msgstr "Once you have completed all tasks, you can return."
#: Interact/dialogue/intro.dialogue
msgid "Viel Spaß auf der Reise! Wir sehen uns danach wieder."
msgstr "Have fun on your journey! We will see each other again afterwards."
#: Interact/dialogue/intro.dialogue
msgid "Starten der Reise"
msgstr "Start the journey"
#: Interact/dialogue/intro.dialogue
msgid "Viel Spaß beim weiteren austesten der Steuerung. Wenn du bereit bist, klicke auf Button(?)/rede wieder mit mir."
msgstr "Have fun testing the controls further. When you are ready, click the button / talk to me again."
#: Interact/dialogue/intro.dialogue
msgid "Noch weiter hier bleiben"
msgstr "Stay here a bit longer"
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v1.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien001"
msgstr "Alien001"
#: Interact/dialogue/ai_v1.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Ich finde es schwierig künstliche Intelligenz zu definieren. Die Menschen sind sich ja nichtmal einig was Intelligenz ist."
msgstr "I find it difficult to define artificial intelligence. Humans cannot even agree on what intelligence is."
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v4.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien004"
msgstr "Alien004"
#: Interact/dialogue/ai_v4.dialogue
msgid "In der Stanford Enzyklopädie für Philosophie steht: Künstliche Intelligenz (KI) ist das Gebiet, das sich mit der Erschaffung künstlicher Tiere (oder zumindest künstlicher Lebewesen, die - in geeigneten Kontexten - wie Tiere erscheinen) und für viele auch künstlicher Personen (oder zumindest künstlicher Lebewesen, die - in geeigneten Kontexten - wie Personen erscheinen) befasst."
msgstr "The Stanford Encyclopedia of Philosophy says: Artificial intelligence (AI) is the field that deals with the creation of artificial animals (or at least artificial beings that — in suitable contexts — appear like animals) and for many also artificial persons (or at least artificial beings that — in suitable contexts — appear like persons)."
#: Interact/dialogue/ai_v4.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Ich glaube das heißt KI möchte Lebewesen erschaffen, die für Menschen nicht von natürlichen Lebewesen unterscheidbar sind."
msgstr "I think that means AI wants to create beings that humans cannot distinguish from natural living beings."
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v3.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien003"
msgstr "Alien003"
#: Interact/dialogue/ai_v3.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Modelle Künstlicher Intelligenz können komplexe Funktionen über sehr viele Parameter abbilden. Die Parameter werden aus Daten gelernt."
msgstr "Artificial intelligence models can represent complex functions across a very large number of parameters. The parameters are learned from data."
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v2.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien002"
msgstr "Alien002"
#: Interact/dialogue/ai_v2.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Künstliche Intelligenz lernt aus großen Datenmengen. Die Ergebnisse sind nicht deterministisch, also es kommt nie genau das gleiche raus, wenn ich einen Algorithmus zweimal lernen lasse."
msgstr "Artificial intelligence learns from large amounts of data. The results are not deterministic, so you never get exactly the same outcome if you train an algorithm twice."
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Die vier Risikostufen"
msgstr "The four risk levels"
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Minimales Risiko"
msgstr "Minimal risk"
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Geringes Risiko"
msgstr "Limited risk"
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Hohes Risiko"
msgstr "High risk"
#. TRANSLATORS: Character name
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Inakzeptables Risiko"
msgstr "Unacceptable risk"
msgid "Minimales Risiko"
msgstr "Minimal risk"
msgid "Geringes Risiko"
msgstr "Limited risk"
msgid "Hohes Risiko"
msgstr "High risk"
msgid "Inakzeptables Risiko"
msgstr "Unacceptable risk"
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Der EU AI Act bewertet KI Systeme in vier Risikostufen, von minimalem bis zu inakzeptablem Risiko für Grundrechte und Sicherheit."
msgstr "The EU AI Act assesses AI systems in four risk levels, from minimal to unacceptable risk to fundamental rights and safety."
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Je höher das Risiko, umso strenger die Regulierung. KI Systeme mit inakzeptablem Risiko sind verboten."
msgstr "The higher the risk, the stricter the regulation. AI systems with unacceptable risk are prohibited."
#: Interact/dialogue/explain_ordering_game.dialogue
msgid ""
"In der folgenden Aufgabe geht es darum, die eben gesammelten Batterien zu ihren passenden Generatoren zuzuordnen. Dadurch wird das Raumschiff geladen und kann wieder starten. \n"
"Die Batterien befinden sich im Inventar, welches sich mit [c] öffnen (und auch wieder schließen) lässt."
msgstr ""
"In the following task, assign the batteries you just collected to their matching generators. This will charge the spaceship so it can take off again. \n"
"The batteries are in the inventory, which you can open (and close again) with [c]."
#: Interact/dialogue/explain_ordering_game.dialogue
msgid ""
"Zum Zuordnen eine Batterie auswählen (über den Button) und anschließend zu den Generatoren transportieren und dort (mit [f]) wieder loslassen und einsetzen. \n"
"Jeder Generator steht für eine der vier Risikostufen. \n"
"Die Batterien bilden je ein KI-System ab."
msgstr ""
"To assign one, select a battery (via the button), then carry it to the generators and insert it there (with [f]). \n"
"Each generator represents one of the four risk levels. \n"
"Each battery represents an AI system."
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid "[speed=1]Lernen Sie nun die einzelnen Stufen genauer kennen. Eine der Stufen mit der Maus oder den Pfeiltasten auswählen und klicken/Enter/Leertaste drücken."
msgstr "[speed=1]Now learn more about the individual levels. Select one of the levels with the mouse or arrow keys and click / press Enter / Space."
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"Keine spezifischen Anforderungen. \n"
"Ein Beispiel für diese Kategorie wäre ein Schachcomputer."
msgstr ""
"No specific requirements. \n"
"An example of this category would be a chess computer."
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"Informationspflicht über die Benutzung der KI. \n"
"Ein Beispiel für diese Kategorie wäre ein Programmierbot."
msgstr ""
"Obligation to inform about the use of AI. \n"
"An example of this category would be a coding bot."
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"Strenge Anforderungen an Transparenz, Dokumentation, Überwachung des Systems durch Menschen! \n"
"Ein Beispiel für diese Kategorie wäre ein KI-System, dass automatisch Arbeiten von Studierenden oder Schülern/Schülerinnen bewertet."
msgstr ""
"Strict requirements for transparency, documentation, and human oversight of the system! \n"
"An example of this category would be an AI system that automatically grades work by students."
#: Interact/dialogue/explain_ordering_game.dialogue
#: Interact/dialogue/helper.dialogue
msgid ""
"KI ist verboten! \n"
"Ein Beispiel für diese Kategorie wäre der Einsatz eines KI-Systems, dass das Risiko, dass eine Person in Zukunft eine Straftat begeht, vorhersagt."
msgstr ""
"AI is prohibited! \n"
"An example of this category would be the use of an AI system that predicts the risk that a person will commit a crime in the future."
#: Interact/dialogue/explain_ordering_game.dialogue
msgid "Ich habe alles gelernt, beginne mit dem Spiel."
msgstr "I have learned everything, start the game."
#: Interact/dialogue/explain_ordering_game.dialogue
msgid "[speed=-1]Lernen Sie nun die einzelnen Stufen genauer kennen. Eine der Stufen mit der Maus oder den Pfeiltasten auswählen und klicken/Enter/Leertaste drücken. Wenn Sie fertig sind, können Sie durch Wählen der untersten Option das Spiel fortsetzen."
msgstr "[speed=-1]Now learn more about the individual levels. Select one of the levels with the mouse or arrow keys and click / press Enter / Space. When you are done, you can continue the game by choosing the bottom option."
#. TRANSLATORS: Character name
#: Interact/dialogue/ai_v5.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Alien005"
msgstr "Alien005"
#: Interact/dialogue/ai_v5.dialogue
#: Interact/dialogue/helper.dialogue
msgid "Die Stanford 100 year study of AI sagt: Künstliche Intelligenz ist die Tätigkeit, die darauf abzielt, Maschinen intelligent zu machen, und Intelligenz ist die Eigenschaft, die es einem Wesen ermöglicht, in seiner Umgebung angemessen und vorausschauend zu handeln."
msgstr "The Stanford 100 Year Study of AI says: Artificial intelligence is the activity devoted to making machines intelligent, and intelligence is the quality that enables an entity to function appropriately and with foresight in its environment."
#. TRANSLATORS: Character name
#: Interact/dialogue/helper_intro.dialogue
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Helfer"
msgstr "Helper"
#: Interact/dialogue/helper_intro.dialogue
msgid "Hallo! Ich bin Ihr Helfer. Ich werde Sie ab jetzt auf Ihrer Reise auf diesem Planeten begleiten, und bei Fragen zu Verfügung stehen."
msgstr "Hello! I am your helper. From now on I will accompany you on your journey on this planet and be available if you have questions."
#: Interact/dialogue/helper_intro.dialogue
msgid "Ich kann helfen, wenn Fragen zum Spiel aufkommen, sei es zur genauen Steuerung oder was genau die aktuelle Aufgabe ist."
msgstr "I can help if questions about the game come up, whether about the exact controls or what the current task is."
#: Interact/dialogue/helper_intro.dialogue
msgid "Ebenso habe ich den gesamten Text des EU AI Acts und der Datenschutzgrundverordnung zum Nachschlagen parat, zusätzlich können Sie eigene Fragen zu diesen Texten stellen, die ich dann versuchen werde zu beantworten."
msgstr "I also have the full text of the EU AI Act and the General Data Protection Regulation ready for reference. In addition, you can ask your own questions about these texts, which I will then try to answer."
#: Interact/dialogue/helper_intro.dialogue
msgid "Dazu einfach [h] drücken und die passende Option auswählen. Das geht jederzeit, solange gerade kein anderer Dialog offen ist."
msgstr "To do so, simply press [h] and select the appropriate option. You can do this at any time as long as no other dialogue is open."
#: Interact/dialogue/helper_intro.dialogue
msgid "Um zurück zum Raumschiff zu gelangen und dieses Starten zu können und im Anschluss zurück auf die Erde zu fliegen, müssen vier Aufgaben bewältigt werden. Jede wird vorher genau erklärt."
msgstr "To get back to the spaceship, launch it, and then fly back to Earth, you must complete four tasks. Each one will be explained beforehand."
#: Interact/dialogue/helper_intro.dialogue
msgid "Oben stehen auch für die Dauer einer jeden Aufgabe nochmal Hinweise zur Steuerung bzw. was gerade gemacht werden soll."
msgstr "At the top you will also see hints for the duration of each task about the controls or what you should do next."
#: Interact/dialogue/helper_intro.dialogue
msgid "Los geht's, laufen Sie einfach weiter und schon werden Sie zur ersten Aufgabe gelangen! Viel Erfolg und Vergnügen"
msgstr "Let's go — just keep walking and you will reach the first task! Good luck and have fun"
#. TRANSLATORS: Character name
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgctxt "dialogue"
msgid ""
msgstr ""
#. TRANSLATORS: Character name
#: Interact/dialogue/helper.dialogue
msgctxt "dialogue"
msgid "Zur Erinnerung"
msgstr "As a reminder"
#: Interact/dialogue/helper.dialogue
msgid "bisher gelerntes nochmal ansehen"
msgstr "Review what you have learned so far"
#: Interact/dialogue/helper.dialogue
msgid "Fragen zum EU AI Act stellen"
msgstr "Ask questions about the EU AI Act"
#: Interact/dialogue/helper.dialogue
msgid "Hilfe zum Spiel (Steuerung, aktuelle Aufabe, ...)"
msgstr "Help with the game (controls, current task, ...)"
#: Interact/dialogue/helper.dialogue
msgid "gesamter Text des EU AI Acts (öffnet Link im Browser)"
msgstr "Full text of the EU AI Act (opens link in browser)"
#: Interact/dialogue/helper.dialogue
msgid "gesamter Text der DSGVO (öffnet Link im Browser)"
msgstr "Full text of the GDPR (opens link in browser)"
#: Interact/dialogue/helper.dialogue
msgid "Musik an/aus"
msgstr "Music on/off"
#: Interact/dialogue/helper.dialogue
msgid "Schließen"
msgstr "Close"
#: Interact/dialogue/helper.dialogue
msgid "Alien-Dialoge wiederholen"
msgstr "Replay alien dialogues"
#: Interact/dialogue/helper.dialogue
msgid "Mögliche Anwendungen von KI"
msgstr "Possible applications of AI"
#: Interact/dialogue/helper.dialogue
msgid "Risikostufen"
msgstr "Risk levels"
#: Interact/dialogue/helper.dialogue
msgid "personenbezogene Daten"
msgstr "Personal data"
#: Interact/dialogue/helper.dialogue
msgid "zurück"
msgstr "Back"
#: Interact/dialogue/helper.dialogue
msgid "In der Stanford Enzyklopädie für Philosophie steht: Künstliche Intelligenz (KI) ist das Gebiet, das sich mit der Erschaffung künstlicher Tiere (oder zumindest künstlicher Lebewesen, die – in geeigneten Kontexten – wie Tiere erscheinen) und für viele auch künstlicher Personen (oder zumindest künstlicher Lebewesen, die – in geeigneten Kontexten – wie Personen erscheinen) befasst."
msgstr "The Stanford Encyclopedia of Philosophy says: Artificial intelligence (AI) is the field that deals with the creation of artificial animals (or at least artificial beings that — in suitable contexts — appear like animals) and for many also artificial persons (or at least artificial beings that — in suitable contexts — appear like persons)."
#: Interact/dialogue/helper.dialogue
msgid "Spamfilter, Diagnose von Krankheiten auf MRT-Bildern, Chatbots, biometrische Überwachung im öffentlichen Raum."
msgstr "Spam filters, diagnosing diseases from MRI images, chatbots, biometric surveillance in public spaces."
#: Interact/dialogue/helper.dialogue
msgid "Zurück"
msgstr "Back"
#: Interact/dialogue/helper.dialogue
msgid "[speed=-1]Lernen Sie nun die einzelnen Stufen genauer kennen."
msgstr "[speed=-1]Now learn more about the individual levels."
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "KI im Alltag: Wahrscheinlich sind die bisherigen Beispiele für Sie im Berufsalltag noch nicht relevant, sicher kennen Sie aber und vielleicht nutzen Sie auch schon sogenannte Sprachmodelle, die uns Fragen beantworten, Texte schreiben, übersetzen und vieles mehr. Beispiele hierfür sind ChatGPT oder Gemini."
msgstr "AI in everyday life: The examples so far may not yet be relevant to your professional routine, but you certainly know — and may already use — so-called language models that answer questions, write texts, translate, and much more. Examples include ChatGPT or Gemini."
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Erste wichtige Regel: Jegliche Eingabe von personenbezogenen Daten in kommerzielle Sprachmodelle ist verboten (laut Datenschutzgrundverordnung, hier ist nicht unbedingt der AI Act die Grundlage). Wollen Sie sich davor schützen, dass aus Ihren Anfragen von Firmen Rückschlüsse über Ihre eigene Person gezogen werden, nutzen sie am besten gar keine kommerziellen Modelle."
msgstr "First important rule: Entering any personal data into commercial language models is prohibited (under the GDPR; the AI Act is not necessarily the legal basis here). If you want to prevent companies from drawing conclusions about you from your queries, it is best not to use commercial models at all."
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Glücklicherweise bietet die Universität Greifswald eine Alternative. Das Rechenzentrum stellt uns eine ganze Reihe von Sprachmodellen zur Verfügung, die auf der Infrastruktur der Universität installiert sind und Daten nicht nach außen lassen. Ihre Anfragen sind damit so sicher wie Ihre Daten, die Sie in der Cloud der Universität speichern. https://open-webui.wolke.uni-greifswald.de"
msgstr "Fortunately, the University of Greifswald offers an alternative. The computing center provides us with a range of language models installed on the university's infrastructure that do not send data outside. Your queries are thus as secure as data you store in the university cloud. https://open-webui.wolke.uni-greifswald.de"
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Dürfen Sie hier jetzt persönliche Daten eingeben? Nein, nur mit Zustimmung der Person, von der die Daten stammen, und unter der Voraussetzung, dass die Person vollständig informiert ist und genau der Eingabe für diesen Zweck zugestimmt hat."
msgstr "May you enter personal data here now? No — only with the consent of the person the data belongs to, and only if that person is fully informed and has specifically consented to the entry for this purpose."
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Ein weiteres Problem mit Ki und Sprachmodellen ist Ihre Zuverlässigkeit. Seien Sie daher kritisch bei jeder Information, die Ihnen ein Modell liefert und prüfen Sie nach. Nutzen Sie z.B. nicht ungelesen Texte für Emails oder ungeprüfte Informationen für Vorträge."
msgstr "Another problem with AI and language models is their reliability. Be critical of every piece of information a model gives you and verify it. For example, do not use unread texts for emails or unchecked information for presentations."
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Was sind denn eigentlich personenbezogene Daten?"
msgstr "What actually counts as personal data?"
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Alle Informationen, die Sie in ein KI System eingeben, sind Daten. Personenbezogene Daten können Menschen direkt oder indirekt (durch Zusammenführung verschiedener Daten) identifizieren."
msgstr "All information you enter into an AI system is data. Personal data can identify people directly or indirectly (by combining different pieces of data)."
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Direkt identifizierende Daten sind z.B. Name, Adresse, Personalausweisnummer. Indirekt identifizierende Informationen sind z.B. Geburtsdatum, Geschlecht, Standortdaten, Online-Kennungen (IP-Adresse, Cookie-ID), biometrische Daten (Gesichtserkennung, Fingerabdruck), Gesundheitsdaten, finanzielle Informationen, politische Meinungen, religiöse Überzeugung."
msgstr "Directly identifying data includes, for example, name, address, and ID card number. Indirectly identifying information includes, for example, date of birth, gender, location data, online identifiers (IP address, cookie ID), biometric data (facial recognition, fingerprint), health data, financial information, political opinions, and religious beliefs."
#: Interact/dialogue/helper.dialogue
msgid "Steuerung"
msgstr "Controls"
#: Interact/dialogue/helper.dialogue
msgid "aktuelle Aufgabe"
msgstr "Current task"
#: Interact/dialogue/helper.dialogue
msgid "Verwenden Sie die Pfeiltasten oder w,a,s,d zum Bewegen. Mit der Leertaste können Sie springen."
msgstr "Use the arrow keys or w,a,s,d to move. You can jump with the space bar."
#: Interact/dialogue/helper.dialogue
msgid "Bewegen"
msgstr "Move"
#: Interact/dialogue/helper.dialogue
msgid "Mit [r] schalten Sie zwischen Kamera- und Wurfmodus um. Im Wurfmodus können Sie jederzeit Bälle werfen. Durch Bewegen der Mause können Sie zielen (Sie sollten ein Fadenkreuz sehen) und klicken zum Werfen."
msgstr "Press [r] to switch between camera and throw mode. In throw mode you can throw balls at any time. Move the mouse to aim (you should see a crosshair) and click to throw."
#: Interact/dialogue/helper.dialogue
msgid "Werfen"
msgstr "Throw"
#: Interact/dialogue/helper.dialogue
msgid "Um Objekte aufzuheben nutzen Sie die Taste [e]. Mit [q] können sie wieder abgelegt werden."
msgstr "To pick up objects, use the [e] key. You can drop them again with [q]."
#: Interact/dialogue/helper.dialogue
msgid "Objekte aufheben"
msgstr "Pick up objects"
#: Interact/dialogue/helper.dialogue
msgid "Um mit Personen zu reden, drücken Sie [Enter] oder [t]. Personen sind ansprechbar, wenn unten links eine Aufforderung zum Reden steht."
msgstr "To talk to people, press [Enter] or [t]. People can be spoken to when a talk prompt appears at the bottom left."
#: Interact/dialogue/helper.dialogue
msgid "Reden"
msgstr "Talk"
#: Interact/dialogue/helper.dialogue
msgid "Mit [r] schalten Sie zwischen Kamera- und Wurfmodus um. Im Kameramodus können Sie durch Bewegen der Maus die Kamera steueren, durch scrollen kann gezoomt werden."
msgstr "Press [r] to switch between camera and throw mode. In camera mode you can control the camera by moving the mouse, and zoom by scrolling."
#: Interact/dialogue/helper.dialogue
msgid "Kamera"
msgstr "Camera"
#: Interact/dialogue/helper.dialogue
msgid "Sprechen Sie mit den Aliens, um verschiedene Definitionen von Künstlicher Intelligenz (KI) kennenzulernen."
msgstr "Talk to the aliens to learn different definitions of artificial intelligence (AI)."
#: Interact/dialogue/helper.dialogue
msgid "Start einer Unterhaltung mit [t] oder Enter."
msgstr "Start a conversation with [t] or Enter."
#: Interact/dialogue/helper.dialogue
msgid "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."
msgstr "Keep walking to the throw zone. Once there, you can pop the balloons to discover in which systems AI is already used or can be used. Then collect the batteries — you will need them later."
#: Interact/dialogue/helper.dialogue
msgid "Werfen mit [r] und Zielen mit der Maus (Fadenkreuz)."
msgstr "Throw with [r] and aim with the mouse (crosshair)."
#: Interact/dialogue/helper.dialogue
msgid ""
"In der folgenden Aufgabe geht es darum, die eben gesammelten Batterien zu ihren passenden Generatoren zuzuordnen. Dadurch wird das Raumschiff geladen und kann wieder starten. \n"
"Die Batterien befinden sich im Inventar, welches sich mit [c] öffnen (und auch wieder schließen) lässt. Zum Zuordnen eine Batterie auswählen (über den Button) und anschließend zu den Generatoren transportieren und dort (mit [f]) wieder loslassen und einsetzen. \n"
"Jeder Generator steht für eine der vier Risikostufen. \n"
"Die Batterien bilden je ein KI-System ab."
msgstr ""
"In the following task, assign the batteries you just collected to their matching generators. This will charge the spaceship so it can take off again. \n"
"The batteries are in the inventory, which you can open (and close again) with [c]. To assign one, select a battery (via the button), then carry it to the generators and insert it there (with [f]). \n"
"Each generator represents one of the four risk levels. \n"
"Each battery represents an AI system."
#: Interact/dialogue/helper.dialogue
#: Interact/dialogue/keypad.dialogue
msgid "Um in das Raumschiff zu gelangen, müssen Sie gleich als Passscode einmal alle personenbezogenen Daten auf dem Keypad auswählen. Zum Starten dieses Spiels, drücken Sie [k]."
msgstr "To enter the spaceship, you will need to select all personal data on the keypad as a passcode. To start this game, press [k]."
#: Interact/dialogue/helper.dialogue
msgid "Beantworten Sie die unten stehen Fragen, indem Sie sich auf das Feld stellen, dass zur richtigen Antwortmöglichkeit gehört. Bei richtiger Antwort öffnet sich die Tür und Sie glangen zur nächsten Frage."
msgstr "Answer the questions below by standing on the pad that belongs to the correct answer. If the answer is correct, the door opens and you proceed to the next question."
#: Interact/dialogue/helper.dialogue
msgid "Lernen Sie die Steuerung kennen."
msgstr "Get to know the controls."
#. TRANSLATORS: Character name
#: Interact/dialogue/albatross.dialogue
#: Interact/dialogue/quiz_explainer.dialogue
msgctxt "dialogue"
msgid "Albatross"
msgstr "Albatross"
msgid "Willkommen"
msgstr "Welcome"
msgid "Raumschiff"
msgstr "Spaceship"
msgid "Spieler1"
msgstr "Player1"
#: Interact/dialogue/albatross.dialogue
msgid "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])"
msgstr "Good day, my name is Albatross. I am an artificial intelligence developed to pilot this spaceship. Since AI can only be used responsibly when humans understand it, I have been tasked with flying you to your AI training. After landing, I can only let you back in and fly you home once you have learned enough. Let us begin this journey! ([Enter/Space/Click])"
#: Interact/dialogue/quiz_explainer.dialogue
msgid "Willkommen zurück! Ich hoffe, Sie konnten einiges lernen, sowohl über KI im allgemeinen als auch speziell den EU AI Act. Bevor ich Sie zurück zur Erde fliegen kann, muss ich dieses Wissen allerdings einmal überprüfen."
msgstr "Welcome back! I hope you were able to learn a lot, both about AI in general and specifically about the EU AI Act. Before I can fly you back to Earth, however, I need to check this knowledge once."
#: Interact/dialogue/quiz_explainer.dialogue
msgid "Dazu werde ich Ihnen 3 Fragen stellen. Vor Ihnen auf dem Boden befinden sich Antwortplatten. Wählen Sie die zur Frage richtige Antwort aus, und stellen Sie sich auf die zugehörige Platform. Wurde richtig geantwortet, wird sich die Tür öffen und Sie gelangen zur nächsten Frage. Bei einer falschen Antwort denken Sie nochmal genau nach und wählen dann eine andere Antwort-Platform. Nach Abschluss des Quizzes können wir gemeinsam zur Erde zurückfliegen. Viel Erfolg!"
msgstr "To do so, I will ask you 3 questions. In front of you on the floor are answer pads. Choose the correct answer to the question and stand on the corresponding platform. If you answer correctly, the door will open and you will proceed to the next question. If you answer incorrectly, think carefully again and then choose a different answer platform. After completing the quiz, we can fly back to Earth together. Good luck!"
+178
View File
@@ -0,0 +1,178 @@
keys,de,en
FLOAT_TEXT,"Seit dem ersten Star Wars Film hat sich die Erde ca. 50 mal um die Sonne gedreht und viel ist seitdem passiert.
Intelligente Roboter wie R2D2 und C3PO sind keine ferne Science Fiction mehr und Künstliche Intelligenz ist in unserem Alltag angekommen.
Die Europäische Union hat daher das weltweit erste Gesetz zur Regulierung von Künstlicher Intelligenz erlassen, den EU AI Act.
Dieses Spiel soll Ihnen helfen grundlegende Kenntnisse zu Künstlicher Intelligenz und den Regelungen des EU AI Acts zu erlernen.
Bitte beachten Sie, dass dieses Spiel nur als Einführung dienen kann, konkrete Fragen sind meist nicht allgemein zu beantworten und sollten von einer Fachperson eingeschätzt werden.","Since the first Star Wars movie, the Earth has orbited the Sun about 50 times, and a lot has happened since then.
Intelligent robots like R2-D2 and C-3PO are no longer things of distant science fiction, and artificial intelligence has become part of our everyday lives.
The European Union has therefore enacted the world's first law regulating artificial intelligence, the EU AI Act.
This game is designed to help you learn the basics of artificial intelligence and the provisions of the EU AI Act.
Please note that this game is intended only as an introduction, specific questions usually cannot be answered in general terms and should be evaluated by a specialist."
START_GAME,Los geht's!,Let's go!
CHANGE_FLOAT,normalen Text anzeigen,Show normal text
CHANGE_STATIC,"Fliegenden Text
anzeigen","Show
scrolling text"
TEXT_FINISHED,Fertig gelesen,Finished reading
CONGRATS_TEXT,Sie haben alle Aufgaben erfolgreich gemeistert und konnten zur Erde zurück kehren. \n Wir hoffen Sie konnten etwas über KI und den EU AI Act lernen.,You have successfully completed all the tasks and have returned to Earth. \n We hope you learned something about AI and the EU AI Act.
CONGRATS_SHORT,Herzlichen Glückwunsch ,Congratulations
PLAY_AGAIN,Nochmal spielen,Play again
START,Start,Start
NAME_PLACEHOLDER,Name wählen...,Choose a name...
CHOOSE_TEMPLATE,Vorlage wählen,Choose a template
OPTIONAL_COLORS,(optional: Farben personalisieren),(optional: customize colors)
CUSTOMIZE_COLORS,Farben personalisieren,Customize colors
OR,oder,or
GAME_TITLE,[center]Spielerisches AI Act Training,[center]Playful AI Act Training
WELCOME_TEXT,[center]Herzlich Willkommen! Suchen Sie sich Ihre Spielfigur aus und lernen Sie den EU AI Act kennen.,[center]Welcome! Choose your character and learn about the EU AI Act.
LICENSE_TEXT,"Verfügbar unter Lizenz GNU GPLv3
https://git.uni-greifswald.de/GAIM/gaim","Available under GNU GPLv3 license
https://git.uni-greifswald.de/GAIM/gaim"
CHANGE_LANGUAGE,Sprache ändern, Change language
IMPRESSUM,Impressum,Legal notice
PRIVACY,Datenschutzinformation,Privacy information
COLOR_SUIT,Farbe Anzug,Suit color
COLOR_DETAILS,Farbe Details,Details color
COPYRIGHT_UNI,copyright Universität Greifswald (übernehmen keine Haftung),copyright University of Greifswald (no liability assumed)
TOOL_DESC,Ein Tool entwickelt von der Universität Greifswald zum spielerischen Verstehen / Entdecken des EU AI Acts,A tool developed by the University of Greifswald for playfully understanding / exploring the EU AI Act
TUTORIAL_STEP_0,"Nutzen Sie die Pfeiltasten (oder a,s,d,w), um einmal in alle Richtungen zu laufen.
Sie können sie bei längeren Strecken auch gedrückt halten.","Use the arrow keys (or a,s,d,w) to walk once in all directions.
You can also hold them down for longer distances."
TUTORIAL_STEP_1,Mit der Leertaste können Sie springen.,You can jump with the space bar.
TUTORIAL_STEP_2,Durch Bewegen der Maus lässt sich die Kamera steuern. Mit [r] können Sie zwischen dem Kamera und Wurfmodus wechseln.,Move the mouse to control the camera. Press [r] to switch between camera and throw mode.
TUTORIAL_STEP_3,"Im Wurfmodus können Sie mit der Maus zielen und durch Klicken Bälle werfen (Sie sollten dabei ein Fadenkreuz sehen).
Versuchen Sie, die Ballons zum platzen zu bringen.","In throw mode you can aim with the mouse and throw balls by clicking (you should see a crosshair).
Try to pop the balloons."
TUTORIAL_STEP_4,"Um Objekte, wie z.B. die blauen Blöcke, aufzuheben, nutzen Sie die Taste [e] (sobald Sie nah genug davor stehen)","To pick up objects such as the blue blocks, use the [e] key (once you are close enough)"
TUTORIAL_STEP_5,Ablegen geht mit [q],Drop items with [q]
TUTORIAL_STEP_6,"Um mit anderen Lebewesen zu reden, drücken Sie [Enter] oder [t].","To talk to other beings, press [Enter] or [t]."
TUTORIAL_TITLE,"Mach dich mit der
Steuerung vertraut","Get familiar with
the controls"
TUTORIAL_SUBTITLE,Probieren Sie die Steuerung aus,Try out the controls
HUD_HELP,"[h] drücken für Hilfe
[r] für Wechsel zwischen Kamera- und Wurfmodus","Press [h] for help
[r] to switch between camera and throw mode"
INVENTORY_TITLE,Inventar,Inventory
INVENTORY_SELECT,Auswählen,Select
INVENTORY_CLOSE_HINT,[c] zum Schließen ohne etwas auszuwählen,[c] to close without selecting anything
BATTERY_CHATBOT,Chatbot,Chatbot
BATTERY_BIOMETRIC,biometrische Überwachung im öffentlichem Raum,biometric surveillance in public spaces
BATTERY_SPAMFILTER,Spamfilter,Spam filter
BATTERY_DIAGNOSIS,Diagnose von Krankheiten auf MRT-Bildern,Diagnosing diseases from MRI images
HELPER_PROMPT,drücken Sie [t] oder [Enter],press [t] or [Enter]
HELPER_TALK,"Rede mit mir!
(t / Enter)
|
|
\/","Talk to me!
(t / Enter)
|
|
\/"
KEYPAD_ID,Ausweis,ID card
KEYPAD_PHOTO,Foto,Photo
KEYPAD_RESIDENCE,Wohnort,Place of residence
KEYPAD_RELATIVITY,Relativitätstheorie,Theory of relativity
KEYPAD_WORK,Arbeit,Work
KEYPAD_STOCK,Aktienkurs,Stock price
KEYPAD_DATE,aktuelles Datum,current date
KEYPAD_BIRTHDATE,Geburtstdatum,Date of birth
KEYPAD_IP,IP-Adresse,IP address
KEYPAD_ID_NUMBER,Personalausweisnummer,ID card number
KEYPAD_POLITICAL,politische Meinung,political opinion
KEYPAD_RELIGION,Religion,Religion
KEYPAD_INSTRUCTION,"Wählen Sie aus den untenstehenden Optionen diejenigen aus, die persönliche Daten enthalten.",Select from the options below those that contain personal data.
KEYPAD_MISSING,[noch %s],[%s left]
KEYPAD_SUCCESS,"Glückwunsch! Alles wurde richtig ausgewählt, die Aufgabe ist gelöst.","Congratulations! Everything was selected correctly, the task is solved."
KEYPAD_RETURN,Sie dürfen nun zurück ins Raumschiff gehen.,You may now return to the spaceship.
QUIZ1_Q,Ist der EU AI Act wichtig?,Is the EU AI Act important?
QUIZ1_A0,Nein.,No.
QUIZ1_A1,"Ja, denn er ist das weltweit erste Gesetz zur Regulierung von KI.","Yes, because it is the world's first law regulating AI."
QUIZ1_A2,"Nein, KI ist super und unbedenklich.","No, AI is great and harmless."
QUIZ1_A3,Mir egal.,I do not care.
QUIZ2_Q,"Stellen Sie sich vor, Sie wollen ein Sprachmodell nutzen um Entwürfe für offizielle Schreiben der Universität zu erstellen. Was ist im Hinblick auf den AI Act dabei zu beachten?",Imagine you want to use a language model to draft official university documents. What should you keep in mind regarding the AI Act?
QUIZ2_A0,"Die Verwendung eines LLM ist verboten, da es sich um eine nicht autorisierte Software handelt.",Using an LLM is prohibited because it is unauthorized software.
QUIZ2_A1,Die Verwendung des LLM spart Zeit und ist daher unbedenklich.,Using the LLM saves time and is therefore harmless.
QUIZ2_A2,"Es ist irrelevant, wie die Entwürfe entstanden sind, solange das Ergebnis professionell aussieht.",It does not matter how the drafts were created as long as the result looks professional.
QUIZ2_A3,"Der Inhalt der Entwürfe muss sorgfältig geprüft werden, um sicherzustellen, dass er korrekt, vollständig und nicht irreführend ist. Zudem kann ich ein lokal betriebenes LLM an der Uni Greifswald nutzen und so verhindern, dass Firmen wie Google oder Apple Informationen über meine Arbeit und meine Person erhalten.","The content of the drafts must be carefully checked to ensure it is correct, complete and not misleading. In addition, I can use a locally operated LLM at the University of Greifswald and thus prevent companies like Google or Apple from obtaining information about my work and my person."
QUIZ3_Q,"Ein Mitarbeiter möchte ein Sprachmodell nutzen, um eine Zusammenfassung von Feedback-Antworten zu einer Vorlesung von Studierenden zu erstellen. Die Antworten enthalten Namen, Matrikelnummern und persönliche Meinungen, außerdem den Name der Vorlesung und der Universität. Was sollte der Mitarbeiter unbedingt tun?","An employee wants to use a language model to summarize student feedback on a lecture. The responses contain names, student IDs and personal opinions, as well as the name of the lecture and the university. What should the employee definitely do?"
QUIZ3_A0,"Die vollständigen Antworten direkt in das Sprachmodell eingeben, um eine möglichst vollständige Analyse zu erhalten.",Enter the complete responses directly into the language model to obtain the most complete analysis possible.
QUIZ3_A1,"Die Antworten zunächst in ein anonymisiertes Format überführen, bevor sie dem LLM zugeführt werden. Der Name der Universität und der Vorlesung muss nicht anonymisiert werden, weil es 2 Vorlesungen zum selben Thema gibt.",First convert the responses into an anonymized format before feeding them to the LLM. The name of the university and the lecture do not need to be anonymized because there are 2 lectures on the same topic.
QUIZ3_A2,"Die Antworten sind zunächst in ein anonymisiertes Format zu überführen, bevor sie dem Sprachmodell zugeführt werden. Auch der Name der Universität und der Vorlesung muss anonymisiert werden, denn daraus kann auf Teilnehmende oder Lehrende geschlossen werden.","The responses must first be converted into an anonymized format before being fed to the language model. The name of the university and the lecture must also be anonymized, because participants or instructors could be inferred from them."
QUIZ3_A3,"Die Namen und Matrikelnummern manuell aus den Antworten entfernen, bevor sie dem Sprachmodell zugeführt werden.",Manually remove names and student IDs from the responses before feeding them to the language model.
EARTH,Erde,Earth
THROW_ZONE,Wurfzone,Throw zone
CONTINUE_HERE,Hier geht es weiter,Continue here
JUMP_HERE,Einmal hier drauf springen,Jump onto this once
RISK_MINIMAL,Minimal,Minimal
RISK_LIMITED,Gering,Limited
RISK_HIGH,Hoch,High
RISK_UNACCEPTABLE,Inakzeptabel,Unacceptable
PASSCODE_REQUIRED,Passcode erforderlich,Passcode required
EASTER_SELECT,Vorbeilaufen oder Abwerfen zum Auswählen,Walk past or throw to select
EASTER_FOUND,Verstecktes Lager mit Spezial-Accessoires gefunden!,Hidden stash of special accessories found!
TASK_1,Aufgabe 1,Task 1
TASK_2,Aufgabe 2,Task 2
TASK_3,Aufgabe 3,Task 3
TASK_4,Aufgabe 4,Task 4
TASK1_CONGRATS,"Glückwunsch!
Die erste Aufgabe ist geschafft.","Congratulations!
The first task is complete."
TASK2_CONGRATS,"Glückwunsch!
Die 2. Aufgabe ist geschafft.","Congratulations!
The 2nd task is complete."
TASK3_CONGRATS,"Glückwunsch!
Die 3. Aufgabe ist geschafft.","Congratulations!
The 3rd task is complete."
TASK_CONGRATS_DEFAULT,"Glückwunsch!
Aufgabe ist geschafft.","Congratulations!
Task complete."
TOPIC_AI_DEFS,Definitionen von KI,Definitions of AI
TOPIC_AI_SYSTEMS,KI-Systeme,AI systems
TOPIC_AI_RISKS,Risikostufen von KI,AI risk levels
CONGRATS_REPEAT,"(Um die %s noch einmal nachzulesen, sprechen Sie mit ihrem Helfer)","(To reread the %s, talk to your helper)"
HINT_ALIENS,"Wenn Sie weiterlaufen werden Ihnen einige Aliens begegnen. Sprechen Sie mit ihnen, um verschiedene Definitionen von Künstlicher Intelligenz (KI) kennenzulernen.",If you keep walking you will encounter some aliens. Talk to them to learn different definitions of artificial intelligence (AI).
HINT_TALK_ALIENS,"[Enter] oder [t] drücken, um mit den Aliens zu reden",Press [Enter] or [t] to talk to the aliens
HINT_THROW_CONTROLS,"Zielen mit der Maus, Klicken zum Werfen, [r] zum Wechsel zwischen Wurf- und Kameramodus","Aim with the mouse, click to throw, [r] to switch between throw and camera mode"
HINT_THROW_ZONE,"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.","Keep walking to the throw zone.
Once there, you can pop the balloons to discover in which systems AI is already used or can be used.
Then collect the batteries, you will need them later.
Reminder: Aim with the mouse (crosshair) and throw by clicking. If you do not see a crosshair, try pressing [r] to switch modes."
HINT_BATTERY_CONTROLS,"Auswahl der Batterien im Inventar [c], Einfügen mit [f] - ([e] zum wieder rausholen, [q] ablegen)","Select batteries in the inventory [c], insert with [f] - ([e] to take out again, [q] to drop)"
HINT_COLLECT_BATTERIES,Sammeln Sie die Batterien auf (durch Vorbeilaufen) - einen Counter dazu sehen Sie oben links,Collect the batteries (by walking past them) - you can see a counter for this at the top left
HINT_START_KEYPAD,[k] drücken zum Starten des nächsten Minispiels,Press [k] to start the next minigame
HINT_ENTER_SHIP,Gehen Sie durch die Tür ins Raumschiff,Go through the door into the spaceship
HINT_NEXT_TASK,In der nun folgenden Aufgabe...,In the following task...
HINT_PRESS,...drücken,...press
CHATBOT_DISCLAIMER,Bitte beachten: Sie sprechen mit einer künstlichen Intelligenz. Verlassen Sie sich nie auf die Antworten.,Please note: You are talking to an artificial intelligence. Never rely solely on the answers.
CHATBOT_INTRO,Frag mich etwas zum EU AI Act und ich versuche es dir zu beantworten!,Ask me something about the EU AI Act and I will try to answer!
CHATBOT_CHOOSE_CHAPTER,"Wähle ein Kapitel des EU AI Acts, zu dem du eine Frage hast:",Choose a chapter of the EU AI Act you want to ask about:
CHATBOT_QUESTION,Frage:,Question:
CHATBOT_QUESTION_PLACEHOLDER,Schreib hier deine Frage...,Write your question here...
CHATBOT_ANSWER,Antwort,Answer
CHATBOT_CLOSE,Schließen,Close
CHATBOT_CH0,Kapitelübersicht und Kurzfassung,Chapter overview and summary
CHATBOT_CH1,Erwägungsgründe,Recitals
CHATBOT_CH2,Kapitel 1 - Allgemeine Bestimmungen,Chapter 1 - General provisions
CHATBOT_CH3,Kapitel 2 - Verbotene Praktiken im KI-Bereich,Chapter 2 - Prohibited AI practices
CHATBOT_CH4,Kapitel 3 - Hochrisiko-KI-Systeme,Chapter 3 - High-risk AI systems
CHATBOT_CH5,Kapitel 4 - Transparenzpflichten für Anbieter und Betreiber bestimmter KI-Systeme,Chapter 4 - Transparency obligations for providers and deployers of certain AI systems
CHATBOT_CH6,Kapitel 5 - KI-Modelle mit allgemeinem Verwendungszweck,Chapter 5 - General-purpose AI models
CHATBOT_CH7,Kapitel 6 - Massnahmen zur Innovationsförderung,Chapter 6 - Measures to support innovation
CHATBOT_CH8,Kapitel 7 - Governance,Chapter 7 - Governance
CHATBOT_CH9,Kapitel 8 - EU-Datenbank für Hochrisiko-KI-Systeme,Chapter 8 - EU database for high-risk AI systems
CHATBOT_CH10,"Kapitel 9 - Beobachtung nach dem Inverkehrbringen, Informationsaustausch und Marktüberwachung","Chapter 9 - Post-market monitoring, information sharing and market surveillance"
CHATBOT_CH11,Kapitel 10 - Verhaltenskodizes und Leitlinien,Chapter 10 - Codes of conduct and guidelines
CHATBOT_CH12,Kapitel 11 - Befugnisübertragung und Ausschussverfahren,Chapter 11 - Delegation of power and committee procedure
CHATBOT_CH13,Kapitel 12 - Sanktionen,Chapter 12 - Penalties
CHATBOT_CH14,Kapitel 13 - Schlussbestimmungen,Chapter 13 - Final provisions
CHATBOT_CH15,Anhang,Annex
CHATBOT_SYSTEM_PROMPT,"Antworte auf Deutsch. Antworte kurz und präzise in 1-2 Sätzen nur basierend auf dem bereitgestellten Dokument. Wenn die Antwort nicht im Dokument steht, antworte nur mit: 'Darauf kann ich nicht antworten, bitte stelle mir eine Frage zum EU AI Act'.","Answer in English. Answer briefly and precisely in 1-2 sentences based only on the provided document. If the answer is not in the document, reply only with: 'I cannot answer that, please ask me a question about the EU AI Act'."
ALIEN_TALK,"Interagieren
(t / Enter)","Interact
(t / Enter)"
KI-Schulung,KI-Schulung,AI Training
1 keys de en
2 FLOAT_TEXT Seit dem ersten Star Wars Film hat sich die Erde ca. 50 mal um die Sonne gedreht und viel ist seitdem passiert. Intelligente Roboter wie R2D2 und C3PO sind keine ferne Science Fiction mehr und Künstliche Intelligenz ist in unserem Alltag angekommen. Die Europäische Union hat daher das weltweit erste Gesetz zur Regulierung von Künstlicher Intelligenz erlassen, den EU AI Act. Dieses Spiel soll Ihnen helfen grundlegende Kenntnisse zu Künstlicher Intelligenz und den Regelungen des EU AI Acts zu erlernen. Bitte beachten Sie, dass dieses Spiel nur als Einführung dienen kann, konkrete Fragen sind meist nicht allgemein zu beantworten und sollten von einer Fachperson eingeschätzt werden. Since the first Star Wars movie, the Earth has orbited the Sun about 50 times, and a lot has happened since then. Intelligent robots like R2-D2 and C-3PO are no longer things of distant science fiction, and artificial intelligence has become part of our everyday lives. The European Union has therefore enacted the world's first law regulating artificial intelligence, the EU AI Act. This game is designed to help you learn the basics of artificial intelligence and the provisions of the EU AI Act. Please note that this game is intended only as an introduction, specific questions usually cannot be answered in general terms and should be evaluated by a specialist.
3 START_GAME Los geht's! Let's go!
4 CHANGE_FLOAT normalen Text anzeigen Show normal text
5 CHANGE_STATIC Fliegenden Text anzeigen Show scrolling text
6 TEXT_FINISHED Fertig gelesen Finished reading
7 CONGRATS_TEXT Sie haben alle Aufgaben erfolgreich gemeistert und konnten zur Erde zurück kehren. \n Wir hoffen Sie konnten etwas über KI und den EU AI Act lernen. You have successfully completed all the tasks and have returned to Earth. \n We hope you learned something about AI and the EU AI Act.
8 CONGRATS_SHORT Herzlichen Glückwunsch Congratulations
9 PLAY_AGAIN Nochmal spielen Play again
10 START Start Start
11 NAME_PLACEHOLDER Name wählen... Choose a name...
12 CHOOSE_TEMPLATE Vorlage wählen Choose a template
13 OPTIONAL_COLORS (optional: Farben personalisieren) (optional: customize colors)
14 CUSTOMIZE_COLORS Farben personalisieren Customize colors
15 OR oder or
16 GAME_TITLE [center]Spielerisches AI Act Training [center]Playful AI Act Training
17 WELCOME_TEXT [center]Herzlich Willkommen! Suchen Sie sich Ihre Spielfigur aus und lernen Sie den EU AI Act kennen. [center]Welcome! Choose your character and learn about the EU AI Act.
18 LICENSE_TEXT Verfügbar unter Lizenz GNU GPLv3 https://git.uni-greifswald.de/GAIM/gaim Available under GNU GPLv3 license https://git.uni-greifswald.de/GAIM/gaim
19 CHANGE_LANGUAGE Sprache ändern Change language
20 IMPRESSUM Impressum Legal notice
21 PRIVACY Datenschutzinformation Privacy information
22 COLOR_SUIT Farbe Anzug Suit color
23 COLOR_DETAILS Farbe Details Details color
24 COPYRIGHT_UNI copyright Universität Greifswald (übernehmen keine Haftung) copyright University of Greifswald (no liability assumed)
25 TOOL_DESC Ein Tool entwickelt von der Universität Greifswald zum spielerischen Verstehen / Entdecken des EU AI Acts A tool developed by the University of Greifswald for playfully understanding / exploring the EU AI Act
26 TUTORIAL_STEP_0 Nutzen Sie die Pfeiltasten (oder a,s,d,w), um einmal in alle Richtungen zu laufen. Sie können sie bei längeren Strecken auch gedrückt halten. Use the arrow keys (or a,s,d,w) to walk once in all directions. You can also hold them down for longer distances.
27 TUTORIAL_STEP_1 Mit der Leertaste können Sie springen. You can jump with the space bar.
28 TUTORIAL_STEP_2 Durch Bewegen der Maus lässt sich die Kamera steuern. Mit [r] können Sie zwischen dem Kamera und Wurfmodus wechseln. Move the mouse to control the camera. Press [r] to switch between camera and throw mode.
29 TUTORIAL_STEP_3 Im Wurfmodus können Sie mit der Maus zielen und durch Klicken Bälle werfen (Sie sollten dabei ein Fadenkreuz sehen). Versuchen Sie, die Ballons zum platzen zu bringen. In throw mode you can aim with the mouse and throw balls by clicking (you should see a crosshair). Try to pop the balloons.
30 TUTORIAL_STEP_4 Um Objekte, wie z.B. die blauen Blöcke, aufzuheben, nutzen Sie die Taste [e] (sobald Sie nah genug davor stehen) To pick up objects such as the blue blocks, use the [e] key (once you are close enough)
31 TUTORIAL_STEP_5 Ablegen geht mit [q] Drop items with [q]
32 TUTORIAL_STEP_6 Um mit anderen Lebewesen zu reden, drücken Sie [Enter] oder [t]. To talk to other beings, press [Enter] or [t].
33 TUTORIAL_TITLE Mach dich mit der Steuerung vertraut Get familiar with the controls
34 TUTORIAL_SUBTITLE Probieren Sie die Steuerung aus Try out the controls
35 HUD_HELP [h] drücken für Hilfe [r] für Wechsel zwischen Kamera- und Wurfmodus Press [h] for help [r] to switch between camera and throw mode
36 INVENTORY_TITLE Inventar Inventory
37 INVENTORY_SELECT Auswählen Select
38 INVENTORY_CLOSE_HINT [c] zum Schließen ohne etwas auszuwählen [c] to close without selecting anything
39 BATTERY_CHATBOT Chatbot Chatbot
40 BATTERY_BIOMETRIC biometrische Überwachung im öffentlichem Raum biometric surveillance in public spaces
41 BATTERY_SPAMFILTER Spamfilter Spam filter
42 BATTERY_DIAGNOSIS Diagnose von Krankheiten auf MRT-Bildern Diagnosing diseases from MRI images
43 HELPER_PROMPT drücken Sie [t] oder [Enter] press [t] or [Enter]
44 HELPER_TALK Rede mit mir! (t / Enter) | | \/ Talk to me! (t / Enter) | | \/
45 KEYPAD_ID Ausweis ID card
46 KEYPAD_PHOTO Foto Photo
47 KEYPAD_RESIDENCE Wohnort Place of residence
48 KEYPAD_RELATIVITY Relativitätstheorie Theory of relativity
49 KEYPAD_WORK Arbeit Work
50 KEYPAD_STOCK Aktienkurs Stock price
51 KEYPAD_DATE aktuelles Datum current date
52 KEYPAD_BIRTHDATE Geburtstdatum Date of birth
53 KEYPAD_IP IP-Adresse IP address
54 KEYPAD_ID_NUMBER Personalausweisnummer ID card number
55 KEYPAD_POLITICAL politische Meinung political opinion
56 KEYPAD_RELIGION Religion Religion
57 KEYPAD_INSTRUCTION Wählen Sie aus den untenstehenden Optionen diejenigen aus, die persönliche Daten enthalten. Select from the options below those that contain personal data.
58 KEYPAD_MISSING [noch %s] [%s left]
59 KEYPAD_SUCCESS Glückwunsch! Alles wurde richtig ausgewählt, die Aufgabe ist gelöst. Congratulations! Everything was selected correctly, the task is solved.
60 KEYPAD_RETURN Sie dürfen nun zurück ins Raumschiff gehen. You may now return to the spaceship.
61 QUIZ1_Q Ist der EU AI Act wichtig? Is the EU AI Act important?
62 QUIZ1_A0 Nein. No.
63 QUIZ1_A1 Ja, denn er ist das weltweit erste Gesetz zur Regulierung von KI. Yes, because it is the world's first law regulating AI.
64 QUIZ1_A2 Nein, KI ist super und unbedenklich. No, AI is great and harmless.
65 QUIZ1_A3 Mir egal. I do not care.
66 QUIZ2_Q Stellen Sie sich vor, Sie wollen ein Sprachmodell nutzen um Entwürfe für offizielle Schreiben der Universität zu erstellen. Was ist im Hinblick auf den AI Act dabei zu beachten? Imagine you want to use a language model to draft official university documents. What should you keep in mind regarding the AI Act?
67 QUIZ2_A0 Die Verwendung eines LLM ist verboten, da es sich um eine nicht autorisierte Software handelt. Using an LLM is prohibited because it is unauthorized software.
68 QUIZ2_A1 Die Verwendung des LLM spart Zeit und ist daher unbedenklich. Using the LLM saves time and is therefore harmless.
69 QUIZ2_A2 Es ist irrelevant, wie die Entwürfe entstanden sind, solange das Ergebnis professionell aussieht. It does not matter how the drafts were created as long as the result looks professional.
70 QUIZ2_A3 Der Inhalt der Entwürfe muss sorgfältig geprüft werden, um sicherzustellen, dass er korrekt, vollständig und nicht irreführend ist. Zudem kann ich ein lokal betriebenes LLM an der Uni Greifswald nutzen und so verhindern, dass Firmen wie Google oder Apple Informationen über meine Arbeit und meine Person erhalten. The content of the drafts must be carefully checked to ensure it is correct, complete and not misleading. In addition, I can use a locally operated LLM at the University of Greifswald and thus prevent companies like Google or Apple from obtaining information about my work and my person.
71 QUIZ3_Q Ein Mitarbeiter möchte ein Sprachmodell nutzen, um eine Zusammenfassung von Feedback-Antworten zu einer Vorlesung von Studierenden zu erstellen. Die Antworten enthalten Namen, Matrikelnummern und persönliche Meinungen, außerdem den Name der Vorlesung und der Universität. Was sollte der Mitarbeiter unbedingt tun? An employee wants to use a language model to summarize student feedback on a lecture. The responses contain names, student IDs and personal opinions, as well as the name of the lecture and the university. What should the employee definitely do?
72 QUIZ3_A0 Die vollständigen Antworten direkt in das Sprachmodell eingeben, um eine möglichst vollständige Analyse zu erhalten. Enter the complete responses directly into the language model to obtain the most complete analysis possible.
73 QUIZ3_A1 Die Antworten zunächst in ein anonymisiertes Format überführen, bevor sie dem LLM zugeführt werden. Der Name der Universität und der Vorlesung muss nicht anonymisiert werden, weil es 2 Vorlesungen zum selben Thema gibt. First convert the responses into an anonymized format before feeding them to the LLM. The name of the university and the lecture do not need to be anonymized because there are 2 lectures on the same topic.
74 QUIZ3_A2 Die Antworten sind zunächst in ein anonymisiertes Format zu überführen, bevor sie dem Sprachmodell zugeführt werden. Auch der Name der Universität und der Vorlesung muss anonymisiert werden, denn daraus kann auf Teilnehmende oder Lehrende geschlossen werden. The responses must first be converted into an anonymized format before being fed to the language model. The name of the university and the lecture must also be anonymized, because participants or instructors could be inferred from them.
75 QUIZ3_A3 Die Namen und Matrikelnummern manuell aus den Antworten entfernen, bevor sie dem Sprachmodell zugeführt werden. Manually remove names and student IDs from the responses before feeding them to the language model.
76 EARTH Erde Earth
77 THROW_ZONE Wurfzone Throw zone
78 CONTINUE_HERE Hier geht es weiter Continue here
79 JUMP_HERE Einmal hier drauf springen Jump onto this once
80 RISK_MINIMAL Minimal Minimal
81 RISK_LIMITED Gering Limited
82 RISK_HIGH Hoch High
83 RISK_UNACCEPTABLE Inakzeptabel Unacceptable
84 PASSCODE_REQUIRED Passcode erforderlich Passcode required
85 EASTER_SELECT Vorbeilaufen oder Abwerfen zum Auswählen Walk past or throw to select
86 EASTER_FOUND Verstecktes Lager mit Spezial-Accessoires gefunden! Hidden stash of special accessories found!
87 TASK_1 Aufgabe 1 Task 1
88 TASK_2 Aufgabe 2 Task 2
89 TASK_3 Aufgabe 3 Task 3
90 TASK_4 Aufgabe 4 Task 4
91 TASK1_CONGRATS Glückwunsch! Die erste Aufgabe ist geschafft. Congratulations! The first task is complete.
92 TASK2_CONGRATS Glückwunsch! Die 2. Aufgabe ist geschafft. Congratulations! The 2nd task is complete.
93 TASK3_CONGRATS Glückwunsch! Die 3. Aufgabe ist geschafft. Congratulations! The 3rd task is complete.
94 TASK_CONGRATS_DEFAULT Glückwunsch! Aufgabe ist geschafft. Congratulations! Task complete.
95 TOPIC_AI_DEFS Definitionen von KI Definitions of AI
96 TOPIC_AI_SYSTEMS KI-Systeme AI systems
97 TOPIC_AI_RISKS Risikostufen von KI AI risk levels
98 CONGRATS_REPEAT (Um die %s noch einmal nachzulesen, sprechen Sie mit ihrem Helfer) (To reread the %s, talk to your helper)
99 HINT_ALIENS Wenn Sie weiterlaufen werden Ihnen einige Aliens begegnen. Sprechen Sie mit ihnen, um verschiedene Definitionen von Künstlicher Intelligenz (KI) kennenzulernen. If you keep walking you will encounter some aliens. Talk to them to learn different definitions of artificial intelligence (AI).
100 HINT_TALK_ALIENS [Enter] oder [t] drücken, um mit den Aliens zu reden Press [Enter] or [t] to talk to the aliens
101 HINT_THROW_CONTROLS Zielen mit der Maus, Klicken zum Werfen, [r] zum Wechsel zwischen Wurf- und Kameramodus Aim with the mouse, click to throw, [r] to switch between throw and camera mode
102 HINT_THROW_ZONE 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. Keep walking to the throw zone. Once there, you can pop the balloons to discover in which systems AI is already used or can be used. Then collect the batteries, you will need them later. Reminder: Aim with the mouse (crosshair) and throw by clicking. If you do not see a crosshair, try pressing [r] to switch modes.
103 HINT_BATTERY_CONTROLS Auswahl der Batterien im Inventar [c], Einfügen mit [f] - ([e] zum wieder rausholen, [q] ablegen) Select batteries in the inventory [c], insert with [f] - ([e] to take out again, [q] to drop)
104 HINT_COLLECT_BATTERIES Sammeln Sie die Batterien auf (durch Vorbeilaufen) - einen Counter dazu sehen Sie oben links Collect the batteries (by walking past them) - you can see a counter for this at the top left
105 HINT_START_KEYPAD [k] drücken zum Starten des nächsten Minispiels Press [k] to start the next minigame
106 HINT_ENTER_SHIP Gehen Sie durch die Tür ins Raumschiff Go through the door into the spaceship
107 HINT_NEXT_TASK In der nun folgenden Aufgabe... In the following task...
108 HINT_PRESS ...drücken ...press
109 CHATBOT_DISCLAIMER Bitte beachten: Sie sprechen mit einer künstlichen Intelligenz. Verlassen Sie sich nie auf die Antworten. Please note: You are talking to an artificial intelligence. Never rely solely on the answers.
110 CHATBOT_INTRO Frag mich etwas zum EU AI Act und ich versuche es dir zu beantworten! Ask me something about the EU AI Act and I will try to answer!
111 CHATBOT_CHOOSE_CHAPTER Wähle ein Kapitel des EU AI Acts, zu dem du eine Frage hast: Choose a chapter of the EU AI Act you want to ask about:
112 CHATBOT_QUESTION Frage: Question:
113 CHATBOT_QUESTION_PLACEHOLDER Schreib hier deine Frage... Write your question here...
114 CHATBOT_ANSWER Antwort Answer
115 CHATBOT_CLOSE Schließen Close
116 CHATBOT_CH0 Kapitelübersicht und Kurzfassung Chapter overview and summary
117 CHATBOT_CH1 Erwägungsgründe Recitals
118 CHATBOT_CH2 Kapitel 1 - Allgemeine Bestimmungen Chapter 1 - General provisions
119 CHATBOT_CH3 Kapitel 2 - Verbotene Praktiken im KI-Bereich Chapter 2 - Prohibited AI practices
120 CHATBOT_CH4 Kapitel 3 - Hochrisiko-KI-Systeme Chapter 3 - High-risk AI systems
121 CHATBOT_CH5 Kapitel 4 - Transparenzpflichten für Anbieter und Betreiber bestimmter KI-Systeme Chapter 4 - Transparency obligations for providers and deployers of certain AI systems
122 CHATBOT_CH6 Kapitel 5 - KI-Modelle mit allgemeinem Verwendungszweck Chapter 5 - General-purpose AI models
123 CHATBOT_CH7 Kapitel 6 - Massnahmen zur Innovationsförderung Chapter 6 - Measures to support innovation
124 CHATBOT_CH8 Kapitel 7 - Governance Chapter 7 - Governance
125 CHATBOT_CH9 Kapitel 8 - EU-Datenbank für Hochrisiko-KI-Systeme Chapter 8 - EU database for high-risk AI systems
126 CHATBOT_CH10 Kapitel 9 - Beobachtung nach dem Inverkehrbringen, Informationsaustausch und Marktüberwachung Chapter 9 - Post-market monitoring, information sharing and market surveillance
127 CHATBOT_CH11 Kapitel 10 - Verhaltenskodizes und Leitlinien Chapter 10 - Codes of conduct and guidelines
128 CHATBOT_CH12 Kapitel 11 - Befugnisübertragung und Ausschussverfahren Chapter 11 - Delegation of power and committee procedure
129 CHATBOT_CH13 Kapitel 12 - Sanktionen Chapter 12 - Penalties
130 CHATBOT_CH14 Kapitel 13 - Schlussbestimmungen Chapter 13 - Final provisions
131 CHATBOT_CH15 Anhang Annex
132 CHATBOT_SYSTEM_PROMPT Antworte auf Deutsch. Antworte kurz und präzise in 1-2 Sätzen nur basierend auf dem bereitgestellten Dokument. Wenn die Antwort nicht im Dokument steht, antworte nur mit: 'Darauf kann ich nicht antworten, bitte stelle mir eine Frage zum EU AI Act'. Answer in English. Answer briefly and precisely in 1-2 sentences based only on the provided document. If the answer is not in the document, reply only with: 'I cannot answer that, please ask me a question about the EU AI Act'.
133 ALIEN_TALK Interagieren (t / Enter) Interact (t / Enter)
134 KI-Schulung KI-Schulung AI Training
+17
View File
@@ -0,0 +1,17 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://df8vw84keijdw"
[deps]
files=["res://translations/en_de_translation.de.translation", "res://translations/en_de_translation.en.translation"]
source_file="res://translations/en_de_translation.csv"
dest_files=["res://translations/en_de_translation.de.translation", "res://translations/en_de_translation.en.translation"]
[params]
compress=true
delimiter=0
Binary file not shown.
Binary file not shown.
+8 -10
View File
@@ -22,15 +22,13 @@ var turned = {
}
var steps = [
"Nutzen Sie die Pfeiltasten (oder a,s,d,w), um einmal in alle Richtungen zu laufen.
Sie können sie bei längeren Strecken auch gedrückt halten.",
"Mit der Leertaste können Sie springen.",
"Durch Bewegen der Maus lässt sich die Kamera steuern. Mit [r] können Sie zwischen dem Kamera und Wurfmodus wechseln.",
"Im Wurfmodus können Sie mit der Maus zielen und durch Klicken Bälle werfen (Sie sollten dabei ein Fadenkreuz sehen).
Versuchen Sie, die Ballons zum platzen zu bringen.",
"Um Objekte, wie z.B. die blauen Blöcke, aufzuheben, nutzen Sie die Taste [e] (sobald Sie nah genug davor stehen)",
"Ablegen geht mit [q]",
"Um mit anderen Lebewesen zu reden, drücken Sie [Enter] oder [t]."
"TUTORIAL_STEP_0",
"TUTORIAL_STEP_1",
"TUTORIAL_STEP_2",
"TUTORIAL_STEP_3",
"TUTORIAL_STEP_4",
"TUTORIAL_STEP_5",
"TUTORIAL_STEP_6",
]
func _ready():
@@ -100,7 +98,7 @@ func next_step():
func update_label():
if current_step < steps.size():
label.text = steps[current_step]
label.text = tr(steps[current_step])
await get_tree().process_frame
var text_size = label.get_minimum_size()
$CanvasLayer/Panel.custom_minimum_size = text_size + Vector2(40, 40)