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)