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])