293 lines
19 KiB
Python
293 lines
19 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
TH1 Multilingual.xlsx 翻译数据
|
||
规则:
|
||
- 占位符 **<xxx>** 全部替换为 **<>** (内容留空,外壳保留)
|
||
- Staff 姓名/异常数据: 四语言全填原样 (在 KEEP_RAW_IDS)
|
||
- 19746 版本日志: 仅繁中+英文,日韩留空 (在 ZH_TW_EN_ONLY_IDS)
|
||
- 其余: 四语言完整翻译,繁中走 opencc s2tw
|
||
"""
|
||
|
||
# 这些 ID 四语言全部保留中文/英文原样
|
||
KEEP_RAW_IDS = {
|
||
'19739', # asfasfasf 测试输入
|
||
'19759', # Shenlan 调试命令
|
||
'19760', # Toggle Shenlan visual skill on/off
|
||
'19773', # 天火人雪糕
|
||
'19785', # 白哉
|
||
'19787', # 久九
|
||
'19789', # BING
|
||
'19791', # P君
|
||
'19793', # 娇阳
|
||
'19795', # 蛋卷
|
||
'19797', # 深澜
|
||
'19798', # 绝壁的夜鹭子
|
||
'19799', # 亮蓝
|
||
'19801', # 黎玄
|
||
'19803', # 阿令
|
||
'19805', # 星期六上线
|
||
'19807', # Q群群友
|
||
'19821', # X 推特图标
|
||
'19822', # QQ群:952618884
|
||
}
|
||
|
||
# 这些 ID 仅做繁中+英文,日韩留空
|
||
ZH_TW_EN_ONLY_IDS = {
|
||
'19746', # Beta 0.7.1g 版本日志
|
||
}
|
||
|
||
# 英/日/韩 翻译表 (key=ID, value=(en, ja, ko))
|
||
# 注意: 占位符 **<>** 由脚本统一处理,这里翻译文本中的占位符也写成 **<>**
|
||
TRANSLATIONS = {
|
||
# ---- 技能/能力描述 ----
|
||
'19734': (
|
||
"Can move within 1 hex of any **<>**, granting **<>** within **<>** and 1 **<>** to that **<>**. Stacks if used multiple times in the same turn. Each **<>** also accumulates **<>** equal to the current stack count.",
|
||
"任意の**<>**から1マス以内に移動でき、**<>**にいる**<>**に**<>**と1の**<>**を付与する。同一ターン内で複数回使用すると層数が累積する。**<>**を使用するたび、現在の層数と同じ**<>**が蓄積される。",
|
||
"임의의 **<>** 주변 1칸 범위 내로 이동할 수 있으며, **<>**의 **<>**에게 **<>**과 1의 **<>**을 부여한다. 같은 턴 내 반복 사용 시 누적된다. **<>**을 사용할 때마다 현재 누적 수치와 동일한 **<>**이 누적된다.",
|
||
),
|
||
'19740': (
|
||
"Free Mode",
|
||
"フリーモード",
|
||
"자유 모드",
|
||
),
|
||
'19741': (
|
||
"Enemy Control",
|
||
"敵勢力支配",
|
||
"적 통제",
|
||
),
|
||
'19742': (
|
||
"Can only attack enemy city centers. Spawns a number of **<>** based on the city's level, and steals that city's gold income for this turn. The user vanishes. While stealthed, movement ignores **<>**, and grants 1 **<>** after moving,",
|
||
"敵の都市中心のみ攻撃可能。都市レベルに応じた数の**<>**を生み出し、その都市の今ターンの金収入を奪う。使用後、自身は消滅する。隠密状態での移動は**<>**を無視し、移動後に1の**<>**を獲得する、",
|
||
"적 도시 중심만 공격 가능. 도시 레벨에 따라 일정 수의 **<>**를 생성하며, 해당 도시의 이번 턴 골드 수입을 탈취한다. 사용 후 자신은 소멸한다. 은신 상태에서의 이동은 **<>**의 영향을 받지 않으며, 이동 후 1의 **<>**을 획득한다,",
|
||
),
|
||
'19743': (
|
||
"If you did not move last turn, gain 1 **<>** at the start of this turn. Moving costs 1 **<>**, climbing mountains costs 2 **<>**. If stamina is insufficient, lose 3 HP instead. Moving costs no stamina when a friendly hero is nearby.",
|
||
"前ターンに移動しなかった場合、ターン開始時に1の**<>**を獲得する。 移動は**<>**を1、登山は**<>**を2消費する。体力が不足する場合は代わりにHPを3失う。移動時に近くに味方英雄がいる場合は体力を消費しない。",
|
||
"지난 턴에 이동하지 않았다면, 턴 시작 시 1의 **<>**을 획득한다. 이동은 **<>**을 1, 등산은 **<>**을 2 소모한다. 체력이 부족하면 대신 HP를 3 소모한다. 이동 시 주변에 아군 영웅이 있으면 체력을 소모하지 않는다.",
|
||
),
|
||
'19744': (
|
||
"Each stack grants: +0.5 ATK, +0.5 DEF, +1 sight, +1 HP auto-regen. When stamina ≥ 2, range +1. Stamina cap is 2 (4 at Lv.3).",
|
||
"1層ごとに:攻撃+0.5、防御+0.5、視界+1、HP自動回復+1。 体力が2以上の時、射程+1。体力上限は2(Lv.3で4)。",
|
||
"각 누적층마다: 공격 +0.5, 방어 +0.5, 시야 +1, HP 자동 회복 +1. 체력 ≥2일 때 사거리 +1. 체력 상한은 2 (Lv.3에서 4).",
|
||
),
|
||
'19745': (
|
||
"At the start of the turn, gain **<>** based on terrain. On plains: gain **<>**, can heal an ally for 5 HP. If the land is adjacent to water, also gain **<>**, blocking 1 instance of damage. If the land is mountainous, also gain **<>**, range +1. Each stone type can be stored up to 1 (2 at Lv.4), consumed automatically.",
|
||
"ターン開始時、地形に応じて**<>**を獲得する。陸地では**<>**を獲得:味方を5回復できる。陸地が水域に隣接する場合、追加で**<>**を獲得し、1回の被ダメージを防ぐ。陸地が山脈の場合、追加で**<>**を獲得し、射程+1。各種の魔力石は最大1個まで保管できる(Lv.4で2)、自動で消費される。",
|
||
"턴 시작 시 지형에 따라 **<>**을 획득한다. 육지: **<>**을 획득, 아군을 5 회복할 수 있다. 육지가 수역에 인접하면 추가로 **<>**을 획득, 피해 1회를 차단한다. 육지가 산맥이면 추가로 **<>**을 획득, 사거리 +1. 각 마력석은 최대 1개까지 보관 가능 (Lv.4에서 2), 자동으로 소모된다.",
|
||
),
|
||
'19747': ("Target Language", "対象言語", "대상 언어"),
|
||
'19748': ("Reference Language", "参照言語", "참조 언어"),
|
||
'19749': ("Step 2: Export Template & Fill In", "ステップ2:テンプレート出力と入力", "Step 2: 템플릿 내보내기 및 작성"),
|
||
'19750': ("1. Export Name", "1. 出力名", "1. 내보내기 이름"),
|
||
'19751': ("2. Export Template", "2. テンプレート出力", "2. 템플릿 내보내기"),
|
||
'19752': ("3. Fill In Template", "3. テンプレート入力", "3. 템플릿 작성"),
|
||
'19753': ("Step 3: Upload / Update Mod", "ステップ3:MODをアップロード/更新", "Step 3: 모드 업로드/업데이트"),
|
||
'19754': (
|
||
"After attacking a unit, apply 1 stack of **<>** to the target. When infantry attack a unit with **<>**, each stack grants +0.5 ATK.",
|
||
"ユニットを攻撃した後、対象に**<>**を1層付与する。歩兵が**<>**を持つユニットを攻撃する際、層ごとに攻撃+0.5を得る。",
|
||
"유닛을 공격한 후 대상에게 **<>** 1층을 부여한다. 보병이 **<>**을 가진 유닛을 공격할 때, 각 층마다 공격력 +0.5를 얻는다.",
|
||
),
|
||
'19755': (
|
||
"Like infantry, artillery can also apply **<>**, and gain the attack bonus when attacking.",
|
||
"歩兵と同様、砲兵も**<>**を付与でき、攻撃時に攻撃力ボーナスを得る。",
|
||
"보병과 마찬가지로 포병도 **<>**을 부여할 수 있으며, 공격 시 공격력 보너스를 얻는다.",
|
||
),
|
||
'19757': (
|
||
"Shenlan's Color Show",
|
||
"深瀾の色彩ショー",
|
||
"Shenlan의 색채 쇼",
|
||
),
|
||
'19765': ("#0 Tutorial", "#0 チュートリアル", "#0 튜토리얼"),
|
||
'19766': (
|
||
"Master Empire Gensokyo in just 5 steps!",
|
||
"わずか5ステップで帝国幻想郷を完全マスター!",
|
||
"단 5단계로 제국 환상향을 완전 마스터!",
|
||
),
|
||
'19767': (
|
||
"Just 5 steps to master it, really?!",
|
||
"本当に5ステップでマスターできるの!?",
|
||
"정말로 5단계만에 마스터할 수 있다고?!",
|
||
),
|
||
'19768': (
|
||
"With my Lady's skill, there's no doubt!",
|
||
"お嬢様のお力なら、きっと大丈夫です!",
|
||
"아가씨의 실력이라면, 분명 문제없을 거예요!",
|
||
),
|
||
'19769': (
|
||
"A color effect arranged by tournament staff Shenlan for the players. Trigger again to dismiss.",
|
||
"大会スタッフ深瀾が選手のために用意した色彩エフェクト。再度発動で解除。",
|
||
"대회 스태프 Shenlan이 선수를 위해 마련한 색채 효과. 다시 발동하면 해제된다.",
|
||
),
|
||
'19774': (
|
||
"Game Design / Development / Art / UI / Writing",
|
||
"ゲームデザイン / 開発 / アート / UI / シナリオ",
|
||
"게임 디자인 / 개발 / 아트 / UI / 시나리오",
|
||
),
|
||
'19775': ("Music & SFX", "音楽&効果音", "음악 & 효과음"),
|
||
'19777': ("Credits", "スタッフロール", "스태프 명단"),
|
||
'19778': ("Core Team", "コアチーム", "코어 팀"),
|
||
'19779': ("Game Design", "ゲームデザイン", "게임 디자인"),
|
||
'19784': (
|
||
"Game Design / Programming / Art / UI / Writing",
|
||
"ゲームデザイン / プログラミング / アート / UI / シナリオ",
|
||
"게임 디자인 / 프로그래밍 / 아트 / UI / 시나리오",
|
||
),
|
||
'19786': ("Programming", "プログラム開発", "프로그램 개발"),
|
||
'19788': ("Character Art // Main Key Visual", "キャラクター立ち絵 // メインキービジュアル", "캐릭터 일러스트 // 메인 키 비주얼"),
|
||
'19790': ("Character Art", "キャラクター立ち絵", "캐릭터 일러스트"),
|
||
'19792': (
|
||
"Illustrations / Story Comics / Scenes / Tokens",
|
||
"イラスト / シナリオ漫画 / 背景 / 駒",
|
||
"일러스트 / 스토리 만화 / 배경 / 말",
|
||
),
|
||
'19794': ("Scenes", "背景", "배경"),
|
||
'19796': ("Tokens", "駒", "말"),
|
||
'19800': ("Localization", "多言語ローカライズ", "다국어 현지화"),
|
||
'19802': ("English Localization", "英語ローカライズ", "영문 현지화"),
|
||
'19804': (
|
||
"UI Style Design / Interaction Design",
|
||
"UIスタイルデザイン / インタラクションデザイン",
|
||
"UI 스타일 디자인 / 인터랙션 디자인",
|
||
),
|
||
'19806': ("Setting Consultant", "設定考証", "설정 자문"),
|
||
'19808': ("I love you all!", "みんな大好きだー!", "여러분 정말 사랑해요!"),
|
||
'19809': (
|
||
"Friends from Discord",
|
||
"Discordの友人たち",
|
||
"디스코드의 친구들",
|
||
),
|
||
'19810': ("Thank you for your support!", "ご支援ありがとうございます!", "여러분의 성원에 감사드립니다!"),
|
||
'19811': (
|
||
"Every player who joined the playtest",
|
||
"テストプレイに参加してくれた全てのプレイヤー",
|
||
"테스트 플레이에 참여해주신 모든 플레이어",
|
||
),
|
||
'19832': ("You", "あなた", "당신"),
|
||
'19816': (
|
||
"Click End Turn to gain gold income!",
|
||
"「次のターン」をクリックして金収入を獲得しよう!",
|
||
"다음 턴을 클릭하여 골드 수입을 얻어보세요!",
|
||
),
|
||
'19817': (
|
||
'Click the "End Turn" button at the bottom-right',
|
||
"右下の「次のターン」ボタンをクリック",
|
||
'오른쪽 아래의 "다음 턴" 버튼을 클릭',
|
||
),
|
||
'19818': (
|
||
"Click your city and train 1 Infantry!",
|
||
"都市をクリックして歩兵を1体訓練しよう!",
|
||
"도시를 클릭하여 보병 1명을 훈련하세요!",
|
||
),
|
||
'19819': (
|
||
'Click the city, then click "Train Infantry" in the left info panel',
|
||
"都市をクリックし、左の情報パネルで「歩兵を訓練」をクリック",
|
||
'도시를 클릭하고 왼쪽 정보 패널에서 "보병 훈련"을 클릭',
|
||
),
|
||
'19823': ("Art", "アート", "아트"),
|
||
'19824': ("Art Support", "アート協力", "아트 협력"),
|
||
'19825': ("Game Design Support", "ゲームデザイン協力", "게임 디자인 협력"),
|
||
'19826': ("Localization Support", "ローカライズ協力", "현지화 협력"),
|
||
'19827': ("Music & Sound", "音楽・効果音", "음악·효과음"),
|
||
'19828': ("UI & Interaction", "UI・インタラクション", "UI · 인터랙션"),
|
||
'19829': ("Special Thanks", "スペシャルサンクス", "스페셜 땡스"),
|
||
'19830': (
|
||
"<b>Presented by</b>: Remilia Command\n<b>Original Work</b>: Team Shanghai Alice\n<color=grey>This is a derivative doujin work of Touhou Project</color>",
|
||
"<b>制作</b>:レミリア司令部\n<b>原作</b>:上海アリス幻樂団\n<color=grey>本作品は東方Projectの二次創作です</color>",
|
||
"<b>제작</b>: 레미리아 사령부\n<b>원작</b>: 상하이 앨리스 환악단\n<color=grey>본 작품은 동방 프로젝트의 2차 동인 창작물입니다</color>",
|
||
),
|
||
'19831': (
|
||
"Thanks for your feedback during the test!",
|
||
"体験&フィードバックをありがとう!",
|
||
"체험과 피드백에 감사드립니다!",
|
||
),
|
||
'19833': (
|
||
"Thank you for playing this game!",
|
||
"ゲームをプレイしてくれてありがとう!",
|
||
"이 게임을 플레이해주셔서 감사합니다!",
|
||
),
|
||
'19836': (
|
||
"Open the Tech Tree, research **<>**, and upgrade the city to Lv.4!",
|
||
"テックツリーを開き、**<>**を研究して都市をLv.4まで強化しよう!",
|
||
"기술 트리를 열어 **<>**을 연구하고, 도시를 Lv.4까지 업그레이드하세요!",
|
||
),
|
||
'19837': (
|
||
'Click the "Tech" button at the bottom-right, find **<>** and research it. Then select a **<>** tile and gather **<>** to raise the city level!',
|
||
"右下の「テック」ボタンをクリックし、**<>**を見つけて研究しよう。次に**<>**マスを選択し、**<>**を採集して都市レベルを上げよう!",
|
||
'오른쪽 아래의 "기술" 버튼을 클릭하여 **<>**을 찾아 연구하세요. 그런 다음 **<>** 타일을 선택하여 **<>**을 채집해 도시 레벨을 올리세요!',
|
||
),
|
||
'19838': (
|
||
"You've completed the entire tutorial! Feel free to quit or keep playing~",
|
||
"チュートリアルをすべて完了しました!終了するも、続けて遊ぶも自由です~",
|
||
"튜토리얼을 모두 완료했습니다! 종료하거나 계속 플레이해도 됩니다~",
|
||
),
|
||
'19839': (
|
||
"The game will end automatically on turn 30",
|
||
"ゲームは30ターン目で自動的に終了します",
|
||
"게임은 30번째 턴에 자동으로 종료됩니다",
|
||
),
|
||
'19840': (
|
||
"For matching entries, MODs on top will override MODs below",
|
||
"同一の翻訳項目では、上にあるMODが下のMODを上書きします",
|
||
"동일한 번역 항목의 경우, 위쪽의 MOD가 아래쪽의 MOD를 덮어씁니다",
|
||
),
|
||
'19841': (
|
||
"Convert **<>** into **<>** and upgrade your city!",
|
||
"**<>**を**<>**に改造して都市をアップグレードしよう!",
|
||
"**<>**을 **<>**으로 개조하여 도시를 업그레이드하세요!",
|
||
),
|
||
'19842': (
|
||
'Click a **<>** tile, then select "Convert to Farm" in the left info panel.',
|
||
"**<>**マスをクリックし、左の情報パネルで「農田に改造」を選択する。",
|
||
'**<>** 타일을 클릭하고 왼쪽 정보 패널에서 "농지로 개조"를 선택하세요.',
|
||
),
|
||
'19843': (
|
||
"Move your Infantry, explore the surroundings, and capture 1 new **<>**!",
|
||
"歩兵を移動して周囲を探索し、新たな**<>**を1つ占領しよう!",
|
||
"보병을 이동시켜 주변을 탐색하고, 새로운 **<>**을 하나 점령하세요!",
|
||
),
|
||
'19844': (
|
||
"Each unit can only move once per turn! Click End Turn to keep moving. Can't find a **<>**? Try exploring further out!",
|
||
"1ターンに移動できるのは1回のみ!「次のターン」をクリックして移動を続けよう!**<>**が見つからない場合は、もっと外側を探索してみよう!",
|
||
"각 유닛은 턴당 한 번만 이동할 수 있습니다! 다음 턴을 클릭해 계속 이동하세요! **<>**을 찾을 수 없다면 더 멀리 탐색해보세요!",
|
||
),
|
||
}
|
||
|
||
# 19746 版本日志 (仅繁中+英文)
|
||
VERSION_LOG_EN = """[Beta 0.7.1g]
|
||
Release Date: 2026.5.11
|
||
|
||
------- [New Content] -------
|
||
1. New BGM: Tenma Empire, Lunar Empire
|
||
2. New encyclopedia sub-module: Music Room.
|
||
3. New multilingual MOD module — you can create translation versions in other languages via Steam Workshop (accessed through Settings).
|
||
4. Match history can now be filtered by Komeiji Empire, Classic Mode, Free Mode, and 2–17 player count.
|
||
|
||
------- [Bug Fixes] -------
|
||
1. Fixed a bug where Reisen would incorrectly command non-allied Lunar Rabbit illusions to shoot.
|
||
2. Fixed a bug where Houraisan Kaguya's "Eternal Night Return" skill was not displayed in the skill bar.
|
||
3. Fixed a bug with incorrect Lv.4 values for Hakushiki Zanmu (puppet).
|
||
4. Fixed a bug where Reiuji Utsuho could enter an ally's city center directly.
|
||
5. Fixed a bug where allied cities could not be captured after the ally retired.
|
||
6. Fixed a bug where the game might not end properly after defeating all enemies in non-Classic Mode.
|
||
7. Fixed a bug where Izayoi Sakuya at Lv.4 would not accumulate Fatigue.
|
||
8. Fixed a bug with miscounted achievements for some heroes.
|
||
9. Fixed a bug where Komeiji Satori's upgrade quest was miscounted when killing units.
|
||
10. Fixed a bug where Komeiji Koishi could enter stealth again by moving after leveling up on a turn she had already moved.
|
||
11. Fixed a bug where the popup hint was incorrect when encountering a newly-met enemy whose portrait was already shown.
|
||
12. Fixed a bug with incorrect token symbols for Komeiji Empire common units.
|
||
13. Fixed incorrect pricing on Hero Shrines (Forest Shrine 15, others unified to 20).
|
||
14. Fixed a bug where splash damage did not put two nations into a War diplomatic state.
|
||
15. Fixed a bug in online lobbies where repeated player join/leave caused 1P/2P numbering to go out of order.
|
||
16. Fixed a bug where viewing another empire's diplomatic relations could display incorrectly.
|
||
17. Fixed a bug where Komeiji Koishi's "Echoes of Black Heaven" would error out when allies were present at trigger time.
|
||
18. Fixed a bug where the surrounding Udonge Courtyard level did not update in time when new Youkai Rabbits were created.
|
||
19. Fixed a bug where the Komeiji Empire's initial score was miscalculated (higher than normal).
|
||
|
||
------- [Improvements] -------
|
||
1. Improved scroll speed on the ranking screen.
|
||
2. Improved encyclopedia display — heroes now show their signature actions.
|
||
3. Added a kick button in online lobbies.
|
||
4. Clarified the description of Patchouli's Stamina cap and Magic Stone storage cap.
|
||
5. Added a chat log viewing button in online lobbies.
|
||
6. Added a new diplomatic relation "Aware" alongside Neutral, War, Betrayed, Allied — this relation applies when you have encountered the other side but they have not yet encountered you."""
|