Texte, Tasten und Dateien
Alle Texte stehen in einer Tabelle mit Deutsch und Englisch, die das Spiel zur Laufzeit liest. Die Tasten werden in Code angelegt, nach physischer Position. SaveStore verwaltet den Spielerschlüssel dieser Installation, schreibt den Speicherstand über eine temporäre Datei, legt unbrauchbare Stände beiseite und behält die zehn neuesten Aufzeichnungen. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
extends TestCase
|
||||
|
||||
|
||||
func _by_locale() -> Dictionary:
|
||||
var result := {}
|
||||
for translation in I18n.load_translations(I18n.TEXTS_FILE):
|
||||
result[translation.locale] = translation
|
||||
return result
|
||||
|
||||
|
||||
func test_german_and_english_exist() -> void:
|
||||
var translations := _by_locale()
|
||||
check(translations.has("de"), "German")
|
||||
check(translations.has("en"), "English")
|
||||
|
||||
|
||||
func test_every_text_exists_in_every_language() -> void:
|
||||
var translations := _by_locale()
|
||||
var german: Translation = translations["de"]
|
||||
var english: Translation = translations["en"]
|
||||
var keys := german.get_message_list()
|
||||
keys.sort()
|
||||
var english_keys := english.get_message_list()
|
||||
english_keys.sort()
|
||||
check_eq(english_keys, keys, "the same keys")
|
||||
for key in keys:
|
||||
check(not String(german.get_message(key)).is_empty(), "German text for %s" % key)
|
||||
check(not String(english.get_message(key)).is_empty(), "English text for %s" % key)
|
||||
|
||||
|
||||
func test_the_stone_count_has_a_slot_for_the_number() -> void:
|
||||
var translations := _by_locale()
|
||||
for locale: String in translations:
|
||||
var text := String(translations[locale].get_message("STONE_COUNT"))
|
||||
check(text.contains("%d"), "%s: %s" % [locale, text])
|
||||
Reference in New Issue
Block a user