Files
mtgodot-poc/project/test_chinese_locale.gd
T

105 lines
2.8 KiB
GDScript

extends SceneTree
const Locale = preload("res://locale.gd")
const ItemTooltip = preload("res://ui/item_tooltip.gd")
func _init() -> void:
print("=== Starting test_chinese_locale ===")
var assets := AssetRoot.path()
var passed := 0
var failed := 0
# 1. Default language
var default_lang := Locale.get_default_lang()
if default_lang == "zh":
print("PASS: Default language is 'zh'")
passed += 1
else:
printerr("FAIL: Default language expected 'zh', got '%s'" % default_lang)
failed += 1
# 2. Locale setup
var loc = Locale.new()
loc.setup(assets, "zh")
if loc.lang() == "zh":
print("PASS: Locale lang is 'zh'")
passed += 1
else:
printerr("FAIL: Locale lang expected 'zh', got '%s'" % loc.lang())
failed += 1
# 3. Item names
var sword_name := loc.item_name(10)
if sword_name == "武士刀+0":
print("PASS: Item 10 name is 武士刀+0")
passed += 1
else:
printerr("FAIL: Item 10 name expected '武士刀+0', got '%s'" % sword_name)
failed += 1
var yang_name := loc.item_name(1)
if yang_name == "金币":
print("PASS: Item 1 name is 金币")
passed += 1
else:
printerr("FAIL: Item 1 name expected '金币', got '%s'" % yang_name)
failed += 1
var dress_name := loc.item_name(11901)
if dress_name == "礼服":
print("PASS: Item 11901 name is 礼服")
passed += 1
else:
printerr("FAIL: Item 11901 name expected '礼服', got '%s'" % dress_name)
failed += 1
# 4. Mob names
var dog_name := loc.mob_name(101)
if dog_name == "幼狼":
print("PASS: Mob 101 name is 幼狼")
passed += 1
else:
printerr("FAIL: Mob 101 name expected '幼狼', got '%s'" % dog_name)
failed += 1
# 5. System messages
var arrow_msg := loc.t("CANNOT_SHOOT_EMPTY_ARROW")
if arrow_msg == "没有箭了,请装备箭":
print("PASS: CANNOT_SHOOT_EMPTY_ARROW translation matches")
passed += 1
else:
printerr("FAIL: CANNOT_SHOOT_EMPTY_ARROW expected '没有箭了,请装备箭', got '%s'" % arrow_msg)
failed += 1
var align_msg := loc.t("ALIGNMENT_NAME")
if align_msg == "善恶值 :":
print("PASS: ALIGNMENT_NAME translation matches")
passed += 1
else:
printerr("FAIL: ALIGNMENT_NAME expected '善恶值 :', got '%s'" % align_msg)
failed += 1
# 6. ItemTooltip integration
var tt = ItemTooltip.new()
var tt_ok := tt.setup(assets, "zh")
if tt_ok:
print("PASS: ItemTooltip setup succeeded for zh")
passed += 1
else:
printerr("FAIL: ItemTooltip setup failed")
failed += 1
var model := tt.build_model(10, 1, {})
if String(model.get("title", "")) == "武士刀+0":
print("PASS: ItemTooltip build_model resolved title 武士刀+0 without proto")
passed += 1
else:
printerr("FAIL: Expected title '武士刀+0', got '%s'" % model.get("title", ""))
failed += 1
print("\n=== %d / %d CHINESE LOCALE TESTS PASSED (Failed: %d) ===" % [passed, passed + failed, failed])
if failed > 0:
quit(1)
else:
quit(0)