This commit is contained in:
notify 2023-11-07 12:49:31 +08:00 committed by GitHub
parent 85c3217ecf
commit 379ea06970
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 699 additions and 114 deletions

View File

@ -75,7 +75,9 @@ jobs:
- name: Copy android assets
run: |
${Qt6_DIR}/../gcc_64/bin/lrelease lang/zh_CN.ts
${Qt6_DIR}/../gcc_64/bin/lrelease lang/en_US.ts
cp lang/zh_CN.qm .
cp lang/en_US.qm .
FKVER=$(cat CMakeLists.txt | grep 'project(FreeKill' | cut -d ' ' -f 3)
cd android
sed -i 's/function //g' copy_assets.sh # FIX THIS

View File

@ -72,6 +72,7 @@ jobs:
cd ..
cp lib/win/* FreeKill-release
cp build/zh_CN.qm FreeKill-release
cp build/en_US.qm FreeKill-release
cp ../Qt/6.4.2/mingw_64/bin/li*.dll FreeKill-release
cp '/c/Program Files/OpenSSL/bin/libcrypto-1_1-x64.dll' FreeKill-release
7z a -t7z FreeKill-release.7z FreeKill-release -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on

1
.gitignore vendored
View File

@ -4,6 +4,7 @@
/docs/.venv
/*.o
/zh_CN.qm
/en_US.qm
/fk_ver
# IDE & LSP

View File

@ -70,6 +70,9 @@ if (NOT DEFINED FK_SERVER_ONLY)
qt_add_translations(FreeKill
TS_FILES lang/zh_CN.ts
QM_FILES_OUTPUT_VARIABLE zh_CN.qm
TS_FILES lang/en_US.ts
QM_FILES_OUTPUT_VARIABLE en_US.qm
)
endif()

View File

@ -68,10 +68,11 @@ QtObject {
bgmFile = conf.bgmFile ?? AppPath + "/audio/system/bgm.mp3";
language = conf.language ?? (() => {
let ret = SysLocale;
if (['zh_CN', 'en_US'].includes(ret)) {
return ret;
}
if (ret.startsWith('zh_')) {
return 'zh_CN';
} else {
return 'en_US';
}
})();
disabledPack = conf.disabledPack ?? [ "test_p_0" ];
preferedMode = conf.preferedMode ?? "aaa_role_mode";

View File

@ -279,13 +279,13 @@ Item {
let cardpack = JSON.parse(Backend.callLuaFunction("GetAllCardPack", []));
cardpack = cardpack.filter(p => !data.disabledPack.includes(p));
text = "游戏模式:" + Backend.translate(data.gameMode) + "<br />"
text = Backend.translate("GameMode") + Backend.translate(data.gameMode) + "<br />"
+ Backend.translate("LuckCardNum") + "<b>" + data.luckTime + "</b><br />"
+ Backend.translate("ResponseTime") + "<b>" + config.roomTimeout + "</b><br />"
+ Backend.translate("GeneralBoxNum") + "<b>" + data.generalNum + "</b>"
+ (data.enableFreeAssign ? "<br />" + Backend.translate("IncludeFreeAssign") : "")
+ (data.enableDeputy ? " " + Backend.translate("IncludeDeputy") : "")
+ '<br />使用牌堆:' + cardpack.map(e => {
+ '<br />' + Backend.translate('CardPackages') + cardpack.map(e => {
let ret = Backend.translate(e);
if (ret.search(/特殊牌|衍生牌/) === -1) { // TODO: 西= =
ret = "<b>" + ret + "</b>";

View File

@ -34,7 +34,8 @@ Flickable {
height: grid0.height + grid1.height + grid2.height
Grid {
id: grid0
columns: 2
// FIXME: mark
columns: config.language.startsWith('zh') ? 2 : 1
columnSpacing: 2
rowSpacing: 2
Repeater {
@ -61,7 +62,7 @@ Flickable {
Grid {
id: grid1
anchors.top: grid0.bottom
columns: 2
columns: config.language.startsWith('zh') ? 2 : 1
columnSpacing: 2
rowSpacing: 2
Repeater {
@ -86,7 +87,7 @@ Flickable {
id: grid2
anchors.top: grid1.bottom
anchors.topMargin: 2
columns: 3
columns: config.language.startsWith('zh') ? 3 : 1
columnSpacing: 2
rowSpacing: 2
Repeater {

176
lang/en_US.ts Normal file
View File

@ -0,0 +1,176 @@
<!DOCTYPE TS><TS>
<context>
<name>Init</name>
<message>
<source>Console start</source>
<translation>Single Player (Not recommended)</translation>
</message>
<message>
<source>PackageManage</source>
<translation>Package Manager</translation>
</message>
<message>
<source>updated packages for md5</source>
<translation>Updating done, please try to connect to server again now.</translation>
</message>
</context>
<context>
<name>JoinServer</name>
<message>
<source>@VersionMismatch</source>
<translation>&lt;font color="red" size="4">&lt;b>Mismatch version: server is at v%1&lt;/b>&lt;/font></translation>
</message>
<message>
<source>@NewServer</source>
<translation>Add new server</translation>
</message>
<message>
<source>@NewServerHint</source>
<translation>Please enter server's IP or domain name, then enter you username and password in this server. If you haven't played this server before, the server will register an account automaticly for you. Don't forget your password!</translation>
</message>
<message>
<source>@EditServer</source>
<translation>Edit server</translation>
</message>
<message>
<source>@EditServerHint</source>
<translation>You can edit your username and password now.
You may not edit server IP here, if you really want, please delete and add a new one.</translation>
</message>
</context>
<context>
<name>Logic</name>
<message>
<source>you have been temporarily banned!</source>
<translation>you have been temporarily banned for running away from a started room!</translation>
</message>
</context>
<context>
<name>ModInit</name>
<message>
<source>ModMaker</source>
<translation>Mod制作器 - </translation>
</message>
<message>
<source>Delete</source>
<translation></translation>
</message>
<message>
<source>config is incomplete</source>
<translation>
Mod制作器还未正确配置
</translation>
</message>
<message>
<source>cannot use this mod name</source>
<translation>mod取这个名字</translation>
</message>
</context>
<context>
<name>UserInfo</name>
<message>
<source>help_text</source>
<translation>git服务器上相同的名字和邮箱</translation>
</message>
<message>
<source>username</source>
<translation></translation>
</message>
<message>
<source>email</source>
<translation></translation>
</message>
<message>
<source>key_help_text</source>
<translation>git服务器证明身份的手段SSH密钥Mod制作器教程</translation>
</message>
<message>
<source>copy pubkey</source>
<translation></translation>
</message>
<message>
<source>pubkey copied</source>
<translation></translation>
</message>
</context>
<context>
<name>CreateSomething</name>
<message>
<source>validator_hint</source>
<translation>线4</translation>
</message>
<message>
<source>create_mod</source>
<translation>Mod</translation>
</message>
<message>
<source>create_mod_hint</source>
<translation>mod的名称</translation>
</message>
<message>
<source>create_package</source>
<translation></translation>
</message>
<message>
<source>create_package_hint</source>
<translation></translation>
</message>
</context>
<context>
<name>Tutorial</name>
<message>
<source>tutor_msg_1</source>
<translation>Welcome to FreeKill! &lt;br>
Since you are running this app for the first time, here is a short tutorial. &lt;br>
</translation>
</message>
<message>
<source>tutor_msg_2</source>
<translation>FreeKill is a free version of Sanguosha game, &lt;br>
and it is open-source with the GPLv3 license. &lt;br>
Repo: &lt;a href="https://github.com/Qsgs-Fans/FreeKill">https://github.com/Qsgs-Fans/FreeKill&lt;/a>&lt;br>
</translation>
</message>
<message>
<source>tutor_msg_3</source>
<translation>By default this game only has Standard package. &lt;br>
If you want to play more character you need to connect to a server.&lt;br>
</translation>
</message>
<message>
<source>tutor_msg_4</source>
<translation>&lt;br>
&lt;br>
IP等等&lt;br>
</translation>
</message>
<message>
<source>tutor_msg_5</source>
<translation>pdf
pdf都是由开发者们编写的
</translation>
</message>
<message>
<source>tutor_msg_6</source>
<translation>If you want to contact us: &lt;br>
Baidu Tieba: 新月杀吧&lt;br>
Discord server: &lt;a href="https://discord.gg/tp35GrQR6v">https://discord.gg/tp35GrQR6v&lt;/a>&lt;br>
QQ channel: freekill01&lt;br>
</translation>
</message>
<message>
<source>tutor_msg_7</source>
<translation>Thanks for reading this!&lt;br>
Have a good time!</translation>
</message>
</context>
</TS>

View File

@ -16,20 +16,88 @@ Fk:loadTranslationTable({
-- ["Lobby BG"] = "大厅壁纸",
-- ["Room BG"] = "房间背景",
-- ["Game BGM"] = "游戏BGM",
-- ["Poster Girl"] = "看板娘",
-- ["BGM Volume"] = "BGM音量",
-- ["Effect Volume"] = "音效音量",
-- ["Userinfo Settings"] = "个人信息",
-- ["BG Settings"] = "游戏背景",
-- ["Audio Settings"] = "音频",
-- ["Disable message audio"] = "禁用聊天语音",
-- ["Hide unselectable cards"] = "下移不可选卡牌",
["Ban General Settings"] = "Ban character settings",
-- ["Search"] = "搜索",
-- ["Back"] = "返回",
-- ["Refresh Room List"] = "刷新房间列表",
["Disable Extension"] = "Please ignore this checkbox",
-- ["Create Room"] = "创建房间",
-- ["Room Name"] = "房间名字",
["$RoomName"] = "%1's room",
["Player num"] = "Player Count",
["Player num"] = "Player count",
["Select generals num"] = "Character selection count",
-- ["No enough generals"] = "可用武将不足!",
["Operation timeout"] = "Operation timeout (sec)",
["Luck Card Times"] = "Luck card count",
["Has Password"] = "(PW) ",
-- ["Room Password"] = "房间密码",
-- ["Please input room's password"] = "请输入房间的密码",
["Add Robot"] = "Add robot",
["Start Game"] = "Start game",
-- ["Ready"] = "准备",
["Cancel Ready"] = "Cancel ready",
["Game Mode"] = "Game mode",
-- ["Enable free assign"] = "自由选将",
["Enable deputy general"] = "Enable deputy character",
-- ["General Settings"] = "通常设置",
-- ["Package Settings"] = "拓展包设置",
["General Packages"] = "Character packages",
["Card Packages"] = "Card packages",
-- ["Select All"] = "全选",
["Choose one handcard"] = "Sel. card",
["Revert Selection"] = "Rev. Sel.",
["Handcard selector"] = "Handcard selector, which is useful when have too many cards",
-- ["Generals Overview"] = "武将一览",
-- ["Cards Overview"] = "卡牌一览",
-- ["Scenarios Overview"] = "玩法一览",
["Give Flower"] = "Flower",
["Give Egg"] = "Egg",
["Give Wine"] = "Wine",
["Give Shoe"] = "Shoe",
["Block Chatter"] = "Block chatter",
["Unblock Chatter"] = "Unblock chatter",
["Kick From Room"] = "Kick",
--["Newbie"] = "新手保护ing",
["Win=%1 Run=%2 Total=%3"] = "Win=%1% Run=%2% Total=%3",
["Win=%1\nRun=%2\nTotal=%3"] = "Win: %1%\nRun: %2%\nTotal: %3",
["Ban List"] = "Ban character scheme",
["List"] = "Scheme",
-- ["New"] = "新建",
-- ["Clear"] = "清空",
["Help_Ban_List"] = "The 'Export' button will copy this scheme to clipboard." ..
"And the 'Import' button will read the clipboard and import scheme from it, or report an error.",
-- ["Export"] = "导出",
["Export Success"] = "OK, you ban character schema has been copied to your clipboard.",
-- ["Import"] = "导入",
["Not Legal"] = "Error: invalid JSON string.",
["Not JSON"] = "Error: improper JSON format.",
["Import Success"] = "Imported ban scheme successfully.",
["$OnlineInfo"] = "Lobby: %1, Online: %2",
["Generals Overview"] = "Characters",
["Cards Overview"] = "Cards",
["Special card skills:"] = "<b>Special use method:</b>",
["Every suit & number:"] = "<b>All suit and number:</b>",
["Scenarios Overview"] = "Game modes",
-- ["Replay"] = "录像",
-- ["Replay Manager"] = "来欣赏潇洒的录像吧!",
["Game Win"] = "Win",
["Game Lose"] = "Lose",
["Play the Replay"] = "Play",
["Delete Replay"] = "Delete",
-- ["About"] = "关于",
["about_freekill_description"] = "<b>About FreeKill</b><br/>" ..
"FreeKill is an open-source Bang!-like board game, which is aim to extensive.<br/>" ..
"FreeKill is an open-source Bang!-like board game, which is aim to be extensive.<br/>" ..
"<br/>Repo: https://github.com/Notify-ctrl/FreeKill",
["about_qt_description"] = "<b>About Qt</b><br/>" ..
"Qt是一个C++图形界面应用程序开发框架拥有强大的跨平台能力以及易于使用的API。<br/>" ..
@ -62,47 +130,104 @@ Fk:loadTranslationTable({
-- ["Cancel"] = "取消",
-- ["End"] = "结束",
-- ["Quit"] = "退出",
["BanGeneral"] = "Ban",
["ResumeGeneral"] = "Unban",
-- ["Companions"] = "珠联璧合",
-- ["Death audio"] = "阵亡",
["$WelcomeToLobby"] = "Welcome to FreeKill lobby!",
["GameMode"] = "Game mode: ",
["LuckCardNum"] = "Luck card count: ",
["ResponseTime"] = "Operation time (sec): ",
["GeneralBoxNum"] = "Character selection count: ",
["CardPackages"] = "Enabled card pacakges: ",
["IncludeFreeAssign"] = "<font color=\"red\">Free assign enabled</font>",
["IncludeDeputy"] = "<font color=\"red\">Deputy character enabled</font>",
-- Room
["$EnterRoom"] = "Successfully entered the room.",
["#currentRoundNum"] = "Round #%1",
["$Choice"] = "%1: Please choose",
["$ChooseGeneral"] = "Please choose %1 general(s)",
["$ChooseGeneral"] = "Please choose %1 character(s)",
["Same General Convert"] = "Convert character",
-- ["Fight"] = "出战",
["Show General Detail"] = "View skills",
["#PlayCard"] = "Your turn now, please use a card",
["#AskForGeneral"] = "",
["#AskForGeneral"] = "Please choose a character",
["#AskForSkillInvoke"] = "Do you want to use skill %1?",
["#AskForLuckCard"] = "Do you want to use luck card (%1 times left)?",
["AskForLuckCard"] = "Luck card",
["#AskForChoice"] = "%1: Please choose",
["#choose-trigger"] = "Please choose the skill to use",
["trigger"] = "Trigger skill",
-- ["Please arrange cards"] = "请拖拽移动卡牌",
-- ["Please click to move card"] = "请点击移动卡牌",
-- [" thinking..."] = " 思考中...",
["AskForGeneral"] = "Choosing general",
["AskForGeneral"] = "Choosing character",
["AskForGuanxing"] = "Stargazing",
["AskForExchange"] = "Exchaging",
["AskForChoice"] = "Making choice",
["AskForPindian"] = "pindian",
["AskForKingdom"] = "Choosing kingdom",
["AskForPindian"] = "Point fight",
["AskForMoveCardInBoard"] = "Moving cards",
["PlayCard"] = "Playing card",
["AskForCardChosen"] = "Choosing card",
["#AskForChooseCard"] = "%1请选择其一张卡牌",
["$ChooseCard"] = "请选择一张卡牌",
["AskForCardsChosen"] = "Choosing card",
["#AskForChooseCard"] = "%1: please choose a card",
["#AskForChooseCards"] = "%1: please choose %2~%3 cards",
["$ChooseCard"] = "Choose a card",
["$ChooseCards"] = "Choose %1~%2 cards",
["$Hand"] = "Hand",
["$Equip"] = "Equip",
["$Judge"] = "Judge",
["#AskForUseActiveSkill"] = "请使用技能 %1",
["#AskForUseCard"] = "请使用卡牌 %1",
["#AskForResponseCard"] = "请打出卡牌 %1",
["#AskForNullification"] = "是否为目标为 %dest 的 %arg 使用无懈可击?",
["#AskForNullificationWithoutTo"] = "是否对 %src 使用的 %arg 使用无懈可击?",
['$Selected'] = "Selected",
["#AskForUseActiveSkill"] = "Please use skill %1",
["#AskForUseCard"] = "Please use card %1",
["#AskForResponseCard"] = "Please play card %1",
["#AskForNullification"] = "Do you want to use Nullification to %arg that targets to %dest?",
["#AskForNullificationWithoutTo"] = "Do you want to use Nullification to %arg that used by %src?",
["#AskForPeaches"] = "%src is dying, please use %arg Peach(es) to save him",
["#AskForPeachesSelf"] = "You are dying, please use %arg Peach(es)/Alcohol to save yourself",
["#AskForDiscard"] = "请弃置 %arg 张牌,最少 %arg2 张",
["#askForPindian"] = "%arg请选择一张手牌作为拼点牌",
["#AskForDiscard"] = "Please discard %arg cards (at least %arg2)",
["#AskForCard"] = "Please choose %arg cards (at least %arg2)",
["#askForPindian"] = "%arg: please choose a hand card for point fight",
["#StartPindianReason"] = "%from started point fight (%arg)",
["#ShowPindianCard"] = "The point fight card of %from is %card",
["#ShowPindianResult"] = "%from %arg the point fight between %from and %to",
["pindianwin"] = "won",
["pindiannotwin"] = "lost",
["#ChooseInitialKingdom"] = "Please choose your kingdom in this game",
["#RevealGeneral"] = "%from revealed %arg %arg2",
["mainGeneral"] = "main character",
["deputyGeneral"] = "deputy character",
["seat#1"] = "Seat#1",
["seat#2"] = "Seat#2",
["seat#3"] = "Seat#3",
["seat#4"] = "Seat#4",
["seat#5"] = "Seat#5",
["seat#6"] = "Seat#6",
["seat#7"] = "Seat#7",
["seat#8"] = "Seat#8",
["seat#9"] = "Seat#9",
["seat#10"] = "Seat#10",
["seat#11"] = "Seat#11",
["seat#12"] = "Seat#12",
["@ControledBy"] = "Controller",
-- ["Menu"] = "菜单",
-- ["Surrender"] = "投降",
-- ["Surrender is disabled in this mode"] = "投降在该模式不可用",
-- ["Quit"] = "退出",
-- ["Are you sure to quit?"] = "是否确认退出对局(若对局开始则将计入逃跑次数)?",
-- ["Trust"] = "托管",
-- ["Sort Cards"] = "牌序",
["Sort Cards"] = "Sort",
-- ["Chat"] = "聊天",
["Log"] = "Game Log",
-- ["Trusting ..."] = "托管中 ...",
@ -110,7 +235,20 @@ Fk:loadTranslationTable({
["$GameOver"] = "Game Over",
["$Winner"] = "Winner is %1",
["$NoWinner"] = "Draw!",
-- ["Back To Room"] = "回到房间",
-- ["Back To Lobby"] = "返回大厅",
-- ["Save Replay"] = "保存录像",
["Speed Resume"] = "Uniform",
-- ["Speed Up"] = "加速",
-- ["Speed Down"] = "减速",
-- ["Pause"] = "暂停",
-- ["Resume"] = "继续",
["Bulletin Info"] = [==[
Hello, world!
]==],
}, "en_US")
-- Game concepts
@ -124,11 +262,56 @@ Fk:loadTranslationTable({
["normal_damage"] = "Normal",
["fire_damage"] = "Fire",
["thunder_damage"] = "Thunder",
["ice_damage"] = "Ice",
["hp_lost"] = "HP lost",
["phase_start"] = "Prepare phase",
["phase_judge"] = "Judge phase",
["phase_draw"] = "Draw phase",
["phase_play"] = "Play phase",
["phase_play"] = "Action phase",
["phase_discard"] = "Discard phase",
["phase_finish"] = "Finish phase",
-- ["chained"] = "横置",
-- ["un-chained"] = "重置",
["reset-general"] = "reset",
["yang"] = "Yang",
["yin"] = "Yin",
["quest_succeed"] = "succeed",
["quest_failed"] = "failed",
-- ["card"] = "牌",
["hand_card"] = "hand card",
["pile_draw"] = "draw pile",
["pile_discard"] = "discard pile",
["processing_area"] = "processing area",
["Pile"] = "pile",
-- ["Top"] = "牌堆顶",
-- ["Bottom"] = "牌堆底",
-- ["Shuffle"] = "洗牌",
["general_card"] = "character card",
["General"] = "character",
["noGeneral"] = "no character",
["Hp"] = "HP",
["Damage"] = "DMG",
["Lost"] = "lost",
["Distance"] = "distance",
["Judge"] = "judge",
["Retrial"] = "retrial",
["_sealed"] = "Seal",
["weapon_sealed"] = "Weapon sealed",
["armor_sealed"] = "Armor sealed",
["treasure_sealed"] = "treasure sealed",
["WeaponSlot"] = "Weapon slot",
["ArmorSlot"] = "Armor slot",
["OffensiveRideSlot"] = "-1 horse slot",
["DefensiveRideSlot"] = "+1 horse slot",
["TreasureSlot"] = "Treasure slot",
["JudgeSlot"] = "Judge area",
}, "en_US")
-- related to sendLog
@ -143,57 +326,96 @@ Fk:loadTranslationTable({
["#LoseSkill"] = '%from lost the skill "%arg"',
-- moveCards (they are sent by notifyMoveCards)
["$PutCard"] = "%arg card(s) of %from were put into draw pile",
["$PutKnownCard"] = "%card of %from were put into draw pile",
["$RemoveCardFromGame"] = "%arg2 card(s) were removed from game (as %arg)",
["$AddToPile"] = "%card were removed from game (as %arg)",
["$GetCardsFromPile"] = "%from got %arg2 card(s) %card from %arg",
["$DrawCards"] = "%from drew %arg card(s) %card",
["$PreyCardsFromPile"] = "%from got %arg card(s) %card",
["$GotCardBack"] = "%from took back %arg card(s) %card",
["$RecycleCard"] = "%from took back %arg card(s) %card from discard pile",
["$MoveCards"] = "%to got %arg card(s) %card from %from",
["$LightningMove"] = "%card transfered from %from to %to",
["$PasteCard"] = "%from used %card to %to",
["$DiscardCards"] = "%from discarded %arg card(s) %card",
["$InstallEquip"] = "%from equipped %card",
["$UninstallEquip"] = "%from uninstalled %card",
["#ShowCard"] = "%from showed card(s) %card",
["#Recast"] = "%from recasted %card",
["#RecastBySkill"] = "%from recasted %card by %arg",
-- phase
["#PhaseSkipped"] = "%from skipped %arg",
["#GainAnExtraTurn"] = "%from started to play an extra turn",
["#GainAnExtraPhase"] = "%from started to play an extra phase (%arg)",
-- useCard
["#UseCard"] = "%from used card %card",
["#UseCardToTargets"] = "%from used card %cardand the target was %to",
["#CardUseCollaborator"] = "%from 在此次 %arg 中的子目标是 %to",
["#UseCardToCard"] = "%from 使用了牌 %card目标是 %arg",
["#ResponsePlayCard"] = "%from 打出了牌 %card",
["#CardUseCollaborator"] = "%from choosed %to as the sub-target of %arg",
["#UseCardToCard"] = "%from used card %card, and the target was %arg",
["#ResponsePlayCard"] = "%from played card %card",
["#UseVCard"] = "%from 将 %card 当 %arg 使用",
["#UseVCardToTargets"] = "%from 将 %card 当 %arg 使用,目标是 %to",
["#UseVCardToCard"] = "%from 将 %card 当 %arg2 使用,目标是 %arg",
["#ResponsePlayVCard"] = "%from 将 %card 当 %arg 打出",
["#UseV0Card"] = "%from 使用了 %arg",
["#UseV0CardToTargets"] = "%from 使用了 %arg目标是 %to",
["#UseV0CardToCard"] = "%from 使用了 %arg2目标是 %arg",
["#ResponsePlayV0Card"] = "%from 打出了 %arg",
["#UseVCard"] = "%from used card %card as %arg",
["#UseVCardToTargets"] = "%from used card %card as %arg, and the target was %to",
["#UseVCardToCard"] = "%from used card %card as %arg2, and the target was %arg",
["#ResponsePlayVCard"] = "%from played %card as %arg",
["#UseV0Card"] = "%from used %arg",
["#UseV0CardToTargets"] = "%from used %arg, target was %to",
["#UseV0CardToCard"] = "%from used %arg2target was %arg",
["#ResponsePlayV0Card"] = "%from played %arg",
["#FilterCard"] = "由于 %arg 的效果,与 %from 相关的 %arg2 被视为了 %arg3",
["#FilterCard"] = "Due to %arg, %arg2 that related to %from was regarded as %arg3",
-- skill
["#InvokeSkill"] = '%from used skill "%arg"',
-- judge
["#StartJudgeReason"] = "%from 开始了 %arg 的判定",
["#InitialJudge"] = "%from 的判定牌为 %card",
["#ChangedJudge"] = "%from 发动“%arg”把 %to 的判定牌改为 %card",
["#JudgeResult"] = "%from 的判定结果为 %card",
["#StartJudgeReason"] = "%from started a judgement (%arg)",
["#InitialJudge"] = "Judge card of %from was %card",
["#ChangedJudge"] = "%from invoked %arg, retrialed judgement of %to with %card",
["#JudgeResult"] = "The judge result of %from was %card",
-- turnOver
["#TurnOver"] = "%from 将武将牌翻面,现在是 %arg",
["#TurnOver"] = "%from turned over character card, now his status is %arg",
["face_up"] = "face up",
["face_down"] = "face down",
-- damage, heal and lose HP
["#Damage"] = "%to 对 %from 造成了 %arg 点 %arg2 伤害",
["#DamageWithNoFrom"] = "%from 受到了 %arg 点 %arg2 伤害",
["#LoseHP"] = "%from 失去了 %arg 点体力",
["#HealHP"] = "%from 回复了 %arg 点体力",
["#ShowHPAndMaxHP"] = "%from 现在的体力值为 %arg体力上限为 %arg2",
["#Damage"] = "%to dealt %arg %arg2 DMG to %from",
["#DamageWithNoFrom"] = "%from took %arg %arg2 DMG",
["#LoseHP"] = "%from lost %arg HP",
["#HealHP"] = "%from healed %arg HP",
["#ShowHPAndMaxHP"] = "%from now has %arg HP (max HP = %arg2)",
["#LoseMaxHP"] = "%from lost %arg max HP",
["#HealMaxHP"] = "%from healed %arg max HP",
-- dying and death
["#EnterDying"] = "%from 进入了濒死阶段",
["#KillPlayer"] = "%from [%arg] 阵亡,凶手是 %to",
["#KillPlayerWithNoKiller"] = "%from [%arg] 阵亡,无伤害来源",
["#EnterDying"] = "%from is dying now",
["#KillPlayer"] = "%from [%arg] died, the killer was %to",
["#KillPlayerWithNoKiller"] = "%from [%arg] died without a killer",
["#Revive"] = "Wow, %from revived!",
-- change hero
["#ChangeHero"] = "%from changed his %arg3 %arg to %arg2",
-- misc
["#GuanxingResult"] = "%from 的观星结果为 %arg 上 %arg2 下",
["#GuanxingResult"] = "The stargazing result of %from was %arg top, %arg2 bottom",
["#ChainStateChange"] = "%from %arg his character card",
["#ChainDamage"] = "%from is chained, so he will suffer damage too",
["#ChangeKingdom"] = "%from changed kingdom from %arg to %arg2",
}, "en_US")
-- card footnote
Fk:loadTranslationTable({
["$$DiscardCards"] = "%from discards",
["$$PutCard"] = "%from puts",
["##UseCard"] = "%from uses",
["##UseCardTo"] = "%from to %to",
["##ResponsePlayCard"] = "%from plays",
["##ShowCard"] = "%from shows",
["##JudgeCard"] = "%arg judge",
}, "en_US")

View File

@ -182,9 +182,11 @@ FreeKill使用的是libgit2的C API与此同时使用Git完成拓展包的下
["Death audio"] = "阵亡",
["$WelcomeToLobby"] = "欢迎进入新月杀游戏大厅!",
["GameMode"] = "游戏模式",
["LuckCardNum"] = "手气卡次数:",
["ResponseTime"] = "出手时间:",
["GeneralBoxNum"] = "选将框数:",
["CardPackages"] = "使用牌堆:",
["IncludeFreeAssign"] = "<font color=\"red\">可自由点将</font>",
["IncludeDeputy"] = "<font color=\"red\">启用副将机制</font>",

View File

@ -0,0 +1,43 @@
return {
["maneuvering"] = "Maneuvering",
["thunder__slash"] = "Thunder Slash",
[":thunder__slash"] = "Thunder Slash (basic card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player within your ATK range<br /><b>Effect</b>: Deal 1 Thunder DMG to the targets.<br/><b>Note</b>: You can only use 1 Slash per action phase.",
["fire__slash"] = "Fire Slash",
[":fire__slash"] = "Fire Slash (basic card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player within your ATK range<br /><b>Effect</b>: Deal 1 Fire DMG to the targets.<br/><b>Note</b>: You can only use 1 Slash per action phase.",
["analeptic"] = "Alcohol",
[":analeptic"] = "Alcohol (basic card)<br /><b>Phase</b>: 1. Action phase 2. When you are dying<br /><b>Target</b>: Yourself<br /><b>Effect</b>: 1. the DMG of the next Slash you use this turn is increased by +1. (This effect can only be used once per turn) 2. You heal 1 HP.",
["iron_chain"] = "Iron Chain",
[":iron_chain"] = "Iron Chain (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: 1~2 players<br /><b>Effect</b>: Change chain state of the targets.",
["_normal_use"] = "Normally use",
["recast"] = "Recast",
[":recast"] = "Put this card into discard pile, then draw 1 card.",
["fire_attack"] = "Fire Attack",
["fire_attack_skill"] = "Fire Attack",
[":fire_attack"] = "Fire Attack (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: A player with hand cards<br /><b>Effect</b>: That player shows 1 hand card; then, if you discard 1 card with the same suit, you deal 1 Fire DMG to him.",
["#fire_attack-show"] = "%src used Fire Attack to you, please show 1 hand card",
["#fire_attack-discard"] = "You can discard 1 %arg hand card, then deal 1 Fire DMG to %src",
["supply_shortage"] = "Supply Shortage",
[":supply_shortage"] = "Supply Shortage (delayed trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player at distance 1<br /><b>Effect</b>: Place this card in target's judgement area. He performs a judgement in his judge phase: if result is not club, he skips his draw phase.",
["guding_blade"] = "Ancient Scimitar",
[":guding_blade"] = "Ancient Scimitar (equip card, weapon)<br /><b>ATK range</b>: 2<br /><b>Weapon skill</b>: When your used Slash is about to cause DMG, if the target player has no hand cards: the DMG is increased by +1.",
["fan"] = "Fan",
[":fan"] = "Fan (equip card, weapon)<br /><b>ATK range</b>: 4<br /><b>Weapon skill</b>: You can use any basic Slash as Fire Slash.",
["#fan_skill"] = "Fan",
["vine"] = "Vine",
[":vine"] = "Vine (equip card, armor)<br /><b>Armor skill</b>: Savage Assault, Archery Attack and basic Slash have no effect on you. When you are about to suffer Fire DMG, the DMG is increased by +1.",
["silver_lion"] = "Sliver Lion",
[":silver_lion"] = "Sliver Lion (equip card, armor)<br /><b>Armor skill</b>: When you are about to suffer DMG: that DMG is reduced to 1. When you lose this card in your equipment area: you heal 1 HP.",
["hualiu"] = "Hua Liu",
[":hualiu"] = "Hua Liu (equip card, horse)<br /><b>Horse skill</b>: The distance from other players to you is increased by +1.",
}

View File

@ -485,4 +485,6 @@ Fk:loadTranslationTable{
[":hualiu"] = "装备牌·坐骑<br /><b>坐骑技能</b>:其他角色与你的距离+1。",
}
Fk:loadTranslationTable(require 'packages/maneuvering/i18n/en_US', 'en_US')
return extension

View File

@ -2,10 +2,10 @@
Fk:loadTranslationTable({
["standard"] = "Standard",
["wei"] = "Wei",
["shu"] = "Shu",
["wu"] = "Wu",
["qun"] = "Qun",
["wei"] = "*Wei*",
["shu"] = "*Shu*",
["wu"] = "*Wu*",
["qun"] = "*Neutral*",
["black"] = "Black",
["red"] = '<font color="#CC3131">Red</font>',
@ -13,134 +13,193 @@ Fk:loadTranslationTable({
["caocao"] = "Cao Cao",
["jianxiong"] = "Villainous Hero",
[":jianxiong"] = "当你受到伤害后,你可以获得对你造成伤害的牌。",
[":jianxiong"] = "After you suffer DMG: you can take the card(s) that caused it.",
["hujia"] = "Royal Escort",
[":hujia"] = "<b>Lord skill</b>, when you need to use/play Dodge: you can ask other Wei characters to play Dodge, which is regard as you use/play that.",
["#hujia-ask"] = "Royal Escort: you can play a jink, which is regarded as %src uses/plays",
["simayi"] = "Sima Yi",
["guicai"] = "Demonic Talent",
[":guicai"] = "当一名角色的判定牌生效前,你可以打出一张手牌代替之。",
["#guicai-ask"] = "是否发动“鬼才”,打出一张手牌修改 %dest 的判定?",
[":guicai"] = "When a player performs a judgement, before it takes effect: you can play a hand card. It becomes the judgement result.",
["#guicai-ask"] = "Demonic Talent: you can play a hand card to retrial the judgement of %dest",
["fankui"] = "Retaliation",
[":fankui"] = "当你受到伤害后,你可以获得伤害来源的一张牌。",
[":fankui"] = "After you suffer DMG: you can take 1 card from the damage source.",
["xiahoudun"] = "Xiahou Dun",
["ganglie"] = "Unyielding",
[":ganglie"] = "当你受到伤害后你可以进行判定若结果不为红桃则伤害来源选择一项弃置两张手牌或受到1点伤害。",
["ganglie"] = "Eye for an Eye",
[":ganglie"] = "After you suffer DMG: you can perform a judgment; if it's not heart, the DMG source must choose: 1. Suffer 1 DMG from you. 2. Discard 2 hand cards.",
["zhangliao"] = "Zhang Liao",
["tuxi"] = "Sudden Strike",
[":tuxi"] = "摸牌阶段,你可以改为获得至多两名其他角色的各一张手牌。",
["#tuxi-ask"] = "是否发动“突袭”改为获得1-2名角色各一张手牌",
[":tuxi"] = "During your draw phase, you can change to take 1 hand card from up to 2 players.",
["#tuxi-ask"] = "Sudden Strike: you can change draw card to take 1 hand card from up to 2 players",
["xuchu"] = "Xu Chu",
["luoyi"] = "Bare Chested",
[":luoyi"] = "摸牌阶段,你可以少摸一张牌,若如此做,本回合你使用【杀】或【决斗】对目标角色造成伤害时,此伤害+1。",
[":luoyi"] = "In your draw phase, you can draw 1 fewer card. In this turn, the DMG of your Slash and Duel is increased by +1.",
["guojia"] = "Guo Jia",
["tiandu"] = "Envy of Heaven",
[":tiandu"] = "当你的判定牌生效后,你可以获得之。",
[":tiandu"] = "After your judgement takes effect: you can take the result card.",
["yiji"] = "Bequeathed Strategy",
[":yiji"] = "每当你受到1点伤害后你可以观看牌堆顶的两张牌并任意分配它们。",
[":yiji"] = "After you suffer 1 DMG: you can look at the top 2 cards of the draw pile; then, you can distribute them to any player(s).",
["yiji_active"] = "Bequeathed Strategy",
["#yiji-give"] = "Bequeathed Strategy: You may distribute these cards to any players, or click Cancel to reserve",
["zhenji"] = "Zhen Ji",
["luoshen"] = "Goddess Luo",
[":luoshen"] = "准备阶段开始时,你可以进行判定:若结果为黑色,判定牌生效后你获得之,然后你可以再次发动“洛神”。",
[":luoshen"] = 'In your prepare phase: you can perform a judgment; if it\'s black, you get the card and you can activate "Goddess Luo" again.',
["#luoshen_obtain"] = "Goddess Luo",
["qingguo"] = "Helen of Troy",
[":qingguo"] = "你可以将一张黑色手牌当【闪】使用或打出。",
[":qingguo"] = "You can use/play any black hand card as Dodge.",
["liubei"] = "Liu Bei",
["rende"] = "Benevolence",
[":rende"] = "出牌阶段你可以将至少一张手牌任意分配给其他角色。你于本阶段内以此法给出的手牌首次达到两张或更多后你回复1点体力。",
[":rende"] = "In your Action Phase: you can give any # of hand cards to other players; then, if you have given a total of 2 or more cards, you heal 1 HP (only once).",
["jijiang"] = "Rouse",
[":jijiang"] = "<b>Lord skill</b>, when you need to use/play Slash: you can ask other Shu characters to play Slash, which is regard as you use/play that.",
["#jijiang-ask"] = "Rouse: you can play a Slash, which is regarded as %src uses/plays",
["guanyu"] = "Guan Yu",
["wusheng"] = "Warrior Saint",
[":wusheng"] = "你可以将一张红色牌当【杀】使用或打出。",
[":wusheng"] = "You can use/play any red card as Slash.",
["zhangfei"] = "Zhang Fei",
["paoxiao"] = "Roar",
[":paoxiao"] = "锁定技,出牌阶段,你使用【杀】无次数限制。",
[":paoxiao"] = "<b>Compulsory skill</b>, you can use any # of Slash.",
["zhugeliang"] = "Zhuge Liang",
["guanxing"] = "Stargaze",
[":guanxing"] = "准备阶段开始时你可以观看牌堆顶的X张牌然后将任意数量的牌置于牌堆顶将其余的牌置于牌堆底。X为存活角色数且至多为5",
[":guanxing"] = "In your Beginning Phase: you can examine X cards from the deck; then, you can place any # of them at the top of the deck and the rest at the bottom. (X = # of living players, max. 5)",
["kongcheng"] = "Empty Fort",
[":kongcheng"] = "锁定技,若你没有手牌,你不能被选择为【杀】或【决斗】的目标。",
[":kongcheng"] = "<b>Compulsory skill</b>, if you dont have hand cards, you cannot be the target of Sha or Duel.",
["zhaoyun"] = "Zhao Yun",
["longdan"] = "Dragon Heart",
[":longdan"] = "你可以将一张【杀】当【闪】使用或打出,或将一张【闪】当普通【杀】使用或打出。",
[":longdan"] = "You can use/play Slash as Dodge. You can use/play Dodge as Slash.",
["machao"] = "Ma Chao",
["mashu"] = "Horsemanship",
[":mashu"] = "锁定技。你与其他角色的距离-1。",
[":mashu"] = "<b>Compulsory skill</b>, the distance from you to other players is reduced by -1.",
["tieqi"] = "Iron Cavalry",
[":tieqi"] = "每当你指定【杀】的目标后,你可以进行判定:若结果为红色,该角色不能使用【闪】响应此【杀】。",
[":tieqi"] = "After you use Slash to target a player: you can perform a judgment; if its red, he can't use Dodge.",
["huangyueying"] = "Huang Yueying",
["jizhi"] = "Wisdom",
[":jizhi"] = "每当你使用一张非延时锦囊牌时,你可以摸一张牌。",
[":jizhi"] = "When you use a non-delay trick card, you can draw 1 card.",
["qicai"] = "Genius",
[":qicai"] = "锁定技。你使用锦囊牌无距离限制。",
[":qicai"] = "<b>Compulsory skill</b>, your trick cards have unlimited range.",
["sunquan"] = "Sun Quan",
["zhiheng"] = "Balance of Power",
[":zhiheng"] = "阶段技,你可以弃置至少一张牌然后摸等量的牌。",
[":zhiheng"] = "Once per Action Phase: you can discard any # of cards; then, draw the same # of cards.",
["jiuyuan"] = "Rescued",
[":jiuyuan"] = "<b>Lord skill, compulsory skill</b>, when another Wu character uses Peach to you, you heal +1 HP.",
["ganning"] = "Gan Ning",
["qixi"] = "Surprise Raid",
[":qixi"] = "你可以将一张黑色牌当【过河拆桥】使用。",
[":qixi"] = "You can use any black card as Dismantlement.",
["lvmeng"] = "Lv Meng",
["keji"] = "Self Mastery",
[":keji"] = "若你未于出牌阶段内使用或打出【杀】,你可以跳过弃牌阶段。",
[":keji"] = "If you haven't used/played Slash in your Action Phase, you can skip your Discard Phase.",
["huanggai"] = "Huang Gai",
["kurou"] = "Self Injury",
[":kurou"] = "出牌阶段你可以失去1点体力然后摸两张牌。",
["kurou"] = "Trojan Flesh",
[":kurou"] = "In your Action Phase: you can lose 1 HP; then, draw 2 cards.",
["zhouyu"] = "Zhou Yu",
["yingzi"] = "Handsome",
[":yingzi"] = "摸牌阶段,你可以多摸一张牌。",
[":yingzi"] = "In your Draw Phase: you can draw +1 additional card.",
["fanjian"] = "Sow Dissension",
[":fanjian"] = "阶段技。你可以令一名其他角色选择一种花色然后正面朝上获得你的一张手牌。若此牌花色与该角色所选花色不同你对其造成1点伤害。",
[":fanjian"] = "Once per Action Phase: you can make another player choose 1 suit; then, that player takes 1 hand card from you and displays it. If the guess was wrong, you cause him 1 DMG.",
["daqiao"] = "Da Qiao",
["guose"] = "National Beauty",
[":guose"] = "你可以将一张方块牌当【乐不思蜀】使用。",
[":guose"] = "You can use any diamond card as Indulgence.",
["liuli"] = "Shirk",
[":liuli"] = "每当你成为【杀】的目标时,你可以弃置一张牌并选择你攻击范围内为此【杀】合法目标(无距离限制)的一名角色:若如此做,该角色代替你成为此【杀】的目标。",
["#liuli-target"] = "流离:你可以弃置一张牌,将【杀】的目标转移给一名其他角色",
[":liuli"] = "When you become the target of Slash: you can discard 1 card and select another player (except the attacker) within your attack range; then, that player becomes the target of the Slash instead.",
["#liuli-target"] = "Shirk: you can discard 1 card and transfer the Slash",
["luxun"] = "Lu Xun",
["qianxun"] = "Humility",
[":qianxun"] = "锁定技,你不能被选择为【顺手牵羊】与【乐不思蜀】的目标。",
[":qianxun"] = "<b>Compulsory skill</b>, you can't be the target of Snatch or Indulgence.",
["lianying"] = "One After Another",
[":lianying"] = "每当你失去最后的手牌后,你可以摸一张牌。",
[":lianying"] = "When you lose your last hand card: you can draw 1 card.",
["sunshangxiang"] = "Sun Shangxiang",
["xiaoji"] = "Warrior Lady",
[":xiaoji"] = "每当你失去一张装备区的装备牌后,你可以摸两张牌。",
[":xiaoji"] = "After you lose 1 card in your equipment area: you can draw 2 cards.",
["jieyin"] = "Marriage",
[":jieyin"] = "阶段技你可以弃置两张手牌并选择一名已受伤的男性角色若如此做你和该角色各回复1点体力。",
[":jieyin"] = "Once per Action Phase: you can discard 2 hand cards and select a hurt male character; then, both of you heal 1 HP.",
["huatuo"] = "Hua Tuo",
["qingnang"] = "Green Salve",
[":qingnang"] = "阶段技你可以弃置一张手牌并选择一名已受伤的角色若如此做该角色回复1点体力。",
[":qingnang"] = "Once per Action Phase: you can discard 1 hand card and select a wounded player; then, he heals 1 HP.",
["jijiu"] = "First Aid",
[":jijiu"] = "你的回合外,你可以将一张红色牌当【桃】使用。",
[":jijiu"] = "Outside of your turn: you can use any red card as Peach.",
["lvbu"] = "Lv Bu",
["wushuang"] = "Without Equal",
[":wushuang"] = "<b>Compulsory skill</b>, if you use Slash to target a player, the target needs to use 2 Dodge to evade it. During Duel, the opponent must play 2 Slash per round.",
["diaochan"] = "Diao Chan",
["lijian"] = "Seed of Animosity",
[":lijian"] = "阶段技,你可以弃置一张牌并选择两名其他男性角色,后选择的角色视为对先选择的角色使用了一张不能被无懈可击的决斗。",
[":lijian"] = "Once per Action Phase: you may discard 1 card and select 2 male characters; then, this is regarded as one of them having used Duel to target the other. This Duel can't be countered by Nullification.",
["biyue"] = "Envious by Moon",
[":biyue"] = "结束阶段开始时,你可以摸一张牌。",
[":biyue"] = "In your Finish Phase, you can draw 1 card.",
["fastchat_m"] = "快捷短语",
["fastchat_f"] = "快捷短语",
["$fastchat_m1"] = "能不能快一点啊,兵贵神速啊。",
["$fastchat_m2"] = "主公,别开枪,自己人!",
["$fastchat_m3"] = "小内再不跳,后面还怎么玩啊?",
["$fastchat_m4"] = "你们忍心,就这么让我酱油了?",
["$fastchat_m5"] = "我……我惹你们了吗!?",
["$fastchat_m6"] = "姑娘,你真是条汉子。",
["$fastchat_m7"] = "三十六计走为上,容我去去便回。",
["$fastchat_m8"] = "人心散了,队伍不好带啊。",
["$fastchat_m9"] = "昏君,昏君呐!",
["$fastchat_m10"] = "风吹鸡蛋壳,牌去人安乐。",
["$fastchat_m11"] = "小内啊,你老悠着点。",
["$fastchat_m12"] = "啊,不好意思,刚才卡了。",
["$fastchat_m13"] = "你可以打的再烂一点吗?",
["$fastchat_m14"] = "哥们,给力点行吗?",
["$fastchat_m15"] = "哥哥,交个朋友吧。",
["$fastchat_m16"] = "妹子,交个朋友吧。",
["$fastchat_f1"] = "能不能快一点啊,兵贵神速啊。",
["$fastchat_f2"] = "主公,别开枪,自己人!",
["$fastchat_f3"] = "小内再不跳,后面还怎么玩啊?",
["$fastchat_f4"] = "嗯嘛~你们忍心,就这么让我酱油了?",
["$fastchat_f5"] = "我……我惹你们了吗?",
["$fastchat_f6"] = "姑娘,你真是条汉子。",
["$fastchat_f7"] = "三十六计走为上,容我去去便回。",
["$fastchat_f8"] = "人心散了,队伍不好带啊。",
["$fastchat_f9"] = "昏君,昏君呐!",
["$fastchat_f10"] = "风吹鸡蛋壳,牌去人安乐。",
["$fastchat_f11"] = "小内啊,你老悠着点儿。",
["$fastchat_f12"] = "不好意思,刚才卡了。",
["$fastchat_f13"] = "你可以打的再烂一点吗?",
["$fastchat_f14"] = "哥们,给力点行吗?",
["$fastchat_f15"] = "哥,交个朋友吧。",
["$fastchat_f16"] = "妹子,交个朋友吧。",
["aaa_role_mode"] = "Role mode",
[":aaa_role_mode"] = [[
There should be some text to introduce rule of role mode, buy currently have nothing.
]],
}, "en_US")
-- aux skills
Fk:loadTranslationTable({
["discard_skill"] = "Discard",
["choose_cards_skill"] = "Choose card",
["choose_players_skill"] = "Choose players",
["choose_players_to_move_card_in_board"] = "Choose players",
["reveal_skill"] = "Reveal",
["#reveal_skill"] = "Choose a character to reveal",
[":reveal_skill"] = "In action phase, you can reveal a character who has Compulsory skills.",
["game_rule"] = "Discard",
}, "en_US")

View File

@ -10,85 +10,153 @@ Fk:loadTranslationTable({
["log_diamond"] = '<font color="#CC3131">♦</font>',
["log_nosuit"] = "No suit",
["nosuit"] = "No suit",
["spade"] = "Spade",
["heart"] = "Heart",
["club"] = "Club",
["diamond"] = "Diamond",
-- ["spade"] = "Spade",
-- ["heart"] = "Heart",
-- ["club"] = "Club",
-- ["diamond"] = "Diamond",
-- ["suit"] = "花色",
-- ["color"] = "颜色",
-- ["number"] = "点数",
["basic_char"] = "Ba.",
["trick_char"] = "Tr.",
["equip_char"] = "Eq.",
-- ["basic"] = "基本牌",
-- ["trick"] = " (trick card)",
-- ["equip"] = "装备牌",
-- ["weapon"] = "武器牌",
-- ["armor"] = "防具牌",
["defensive_horse"] = "+1 horse",
["offensive_horse"] = "-1 horse",
["equip_horse"] = "horse",
-- ["treasure"] = "宝物牌",
["delayed_trick"] = "delayed trick",
["damage_card-"] = "DMG card",
["multiple_targets-"] = "multiple targets",
["type_weapon"] = "weapon",
["type_armor"] = "armor",
["type_defensive_horse"] = "+1 horse",
["type_offensive_horse"] = "-1 horse",
["type_horse"] = "horse",
["method_use"] = "use",
["method_response_play"] = "play",
["method_response"] = "respond",
["method_draw"] = "draw",
["method_discard"] = "discard",
["slash"] = "Slash",
["#slash-jink"] = "%src used Slash to you, please use %arg Jink(s)",
[":slash"] = "Slash (basic card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player within your ATK range<br /><b>Effect</b>: Deal 1 DMG to the targets.<br/><b>Note</b>: You can only use 1 Slash per action phase.",
["#slash-jink"] = "%src used Slash to you, please use %arg Dodge(s)",
["jink"] = "Jink",
["jink"] = "Dodge",
[":jink"] = "Dodge (basic card)<br /><b>Phase</b>: When Slash is about to effect on you<br /><b>Target</b>: This Slash<br /><b>Effect</b>: Counter the target Slash.",
["peach"] = "Peach",
[":peach"] = "Peach (basic card)<br /><b>Phase</b>: 1. Action phase 2. When a player is dying<br /><b>Target</b>: Wounded yourself/the player who is dying<br /><b>Effect</b>: The target heals 1 HP.",
["dismantlement"] = "Dismantlement",
[":dismantlement"] = "Dismantlement (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player with cards in any area<br /><b>Effect</b>: Discard 1 card in one of the areas of the target player.",
["dismantlement_skill"] = "Dismantlement",
["snatch"] = "Snatch",
[":snatch"] = "Snatch (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player at distance 1 with cards in any area<br /><b>Effect</b>: Take 1 card in one of the areas of the target player.",
["snatch_skill"] = "Snatch",
["duel"] = "Duel",
[":duel"] = "Duel (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player<br /><b>Effect</b>: In turns (starting with the target player), both of you play Slash successively. The first player who doesn't play Slash suffers 1 DMG from the other player.",
["collateral"] = "Collateral",
["#collateral-slash"] = "CollateralYou shall play Slash to %dest , or %src obtain your weapon",
[":collateral"] = "Collateral (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player with an equipped weapon (Player A)<br /><b>Sub-target</b>: A player within Player A's ATK range (Player B)<br /><b>Effect</b>: Unless A uses Slash to B, he gives you his equipped weapon.",
["#collateral-slash"] = "Collateral: You shall use Slash to %dest , or %src takes your weapon",
["ex_nihilo"] = "Ex Nihilo",
[":ex_nihilo"] = "Ex Nihilo (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Yourself<br /><b>Effect</b>: The target draws 2 cards.",
["nullification"] = "Nullification",
[":nullification"] = "Nullification (trick card)<br /><b>Phase</b>: When a trick card is about to take effect (including Nullification itself)<br /><b>Target</b>: This trick card<br /><b>Effect</b>: Counter the target trick card.",
["savage_assault"] = "Savage Assault",
[":savage_assault"] = "Savage Assault (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: All other players<br /><b>Effect</b>: Each target player needs to play Slash, otherwise they suffer 1 DMG from you.",
["archery_attack"] = "Archery Attach",
["archery_attack"] = "Archery Attack",
[":archery_attack"] = "Archery Attack (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: All other players<br /><b>Effect</b>: Each target player needs to play Dodge, otherwise they suffer 1 DMG from you.",
["god_salvation"] = "God Salvation",
[":god_salvation"] = "God Salvation (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: All players<br /><b>Effect</b>: Each target player heals 1 HP.",
["amazing_grace"] = "Amazing_grace",
["amazing_grace"] = "Amazing Grace",
[":amazing_grace"] = "Amazing Grace (trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: All players<br /><b>Effect</b>: Reveal as many cards from the draw pile as target players; then, each target player takes 1 of those cards.",
["amazing_grace_skill"] = "AG",
["Please choose cards"] = "Please choose a card",
["lightning"] = "Lighining",
["lightning"] = "Lightning",
[":lightning"] = "Lightning (delayed trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Yourself<br /><b>Effect</b>: Place this card in target's judgement area. He performs a judgement in his judge phase: If the judgement result is 2-9♠, he suffers 3 Thunder DMG, otherwise move Lightning to his next player's judgement area.",
["indulgence"] = "Indulgence",
[":indulgence"] = "Indulgence (delayed trick card)<br /><b>Phase</b>: Action phase<br /><b>Target</b>: Another player<br /><b>Effect</b>: Place this card in target's judgement area. He performs a judgement in his judge phase: if result is not heart, he skips his action phase.",
["crossbow"] = "Crossbow",
[":crossbow"] = "Crossbow (equip card, weapon)<br /><b>ATK range</b>: 1<br /><b>Weapon skill</b>: You can use any amount of Slash in your action phase.",
["qinggang_sword"] = "Qinggang Sword",
[":qinggang_sword"] = "Qinggang Sword (equip card, weapon)<br /><b>ATK range</b>: 2<br /><b>Weapon skill</b>: Your Slash ignores the target's armor.",
["ice_sword"] = "Ice Sword",
[":ice_sword"] = "Ice Sword (equip card, weapon)<br /><b>ATK range</b>: 2<br /><b>Weapon skill</b>: When your used Slash is about to cause DMG to a player who has cards, you can prevent this DMG and discard him 2 cards successively.",
["#ice_sword_skill"] = "Ice Sword",
["double_swords"] = "Double Sword",
[":double_swords"] = "Double Sword (equip card, weapon)<br /><b>ATK range</b>: 2<br /><b>Weapon skill</b>: After your used Slash targets a character of the opposite gender, you can make him choose: 1. discard 1 hand card; 2. you draw 1 card.",
["#double_swords_skill"] = "Double Sword",
["#double_swords-invoke"] = "Double SwordYou shall discard 1 handcardor %src draw 1",
["#double_swords-invoke"] = "Double Sword: You shall discard 1 handcardor %src draws 1",
["blade"] = "Blade",
[":blade"] = "Blade (equip card, weapon)<br /><b>ATK range</b>: 3<br /><b>Weapon skill</b>: When your used Slash is countered by Dodge, you can use another Slash immediately on the same target.",
["#blade_skill"] = "Blade",
["#blade_slash"] = "Blade: You may use Slash to %src again",
["#blade_slash"] = "Blade: You can use another Slash to %src",
["spear"] = "Spear",
[":spear"] = "Spear (equip card, weapon)<br /><b>ATK range</b>: 3<br /><b>Weapon skill</b>: You can use/play 2 hand cards as Slash.",
["spear_skill"] = "Spear",
[":spear_skill"] = "You can use/play 2 hand cards as Slash.",
["axe"] = "Axe",
[":axe"] = "Axe (equip card, weapon)<br /><b>ATK range</b>: 3<br /><b>Weapon skill</b>: When your used Slash is countered by Dodge, you can discard 2 cards (except equipped Axe), then make this Slash still effective to the target.",
["#axe_skill"] = "Axe",
["#axe-invoke"] = "AxeYou may discard 2 cards to ensure your Slash effective to %dest",
["#axe-invoke"] = "Axe: You may discard 2 cards to ensure your Slash effective to %dest",
["halberd"] = "Halberd",
[":halberd"] = "Halberd (equip card, weapon)<br /><b>ATK range</b>: 4<br /><b>Weapon skill</b>: When you are about to use Slash which is your last hand card, you can target up to +2 extra targets.",
["kylin_bow"] = "Kylin Bow",
[":kylin_bow"] = "Kylin Bow (equip card, weapon)<br /><b>ATK range</b>: 5<br /><b>Weapon skill</b>: When your used Slash is about to cause DMG, you can discard 1 of his equipped horse.",
["#kylin_bow_skill"] = "Kylin Bow",
["eight_diagram"] = "Eight Diagram",
[":eight_diagram"] = "Eight Diagram (equip card, armor)<br /><b>Armor skill</b>: When you need to use/play Dodge: you can perform a judgement; if it's red, you are regarded as having used/played Dodge.",
["#eight_diagram_skill"] = "Eight Diagram",
["nioh_shield"] = "Nioh Shield",
[":nioh_shield"] = "Nioh Shield (equip card, armor)<br /><b>Armor skill</b>: Black Slash has no effect on you.",
["dilu"] = "Di Lu",
[":dilu"] = "Di Lu (equip card, horse)<br /><b>Horse skill</b>: The distance from other players to you is increased by +1.",
["jueying"] = "Jue Ying",
[":jueying"] = "Jue Ying (equip card, horse)<br /><b>Horse skill</b>: The distance from other players to you is increased by +1.",
["zhuahuangfeidian"] = "Zhua Huang Fei Dian",
[":zhuahuangfeidian"] = "Zhua Huang Fei Dian (equip card, horse)<br /><b>Horse skill</b>: The distance from other players to you is increased by +1.",
["chitu"] = "Chi Tu",
[":chitu"] = "Chi Tu (equip card, horse)<br /><b>Horse skill</b>: The distance from you to other players is reduced by -1.",
["dayuan"] = "Da Yuan",
[":dayuan"] = "Da Yuan (equip card, horse)<br /><b>Horse skill</b>: The distance from you to other players is reduced by -1.",
["zixing"] = "Zi Xing",
[":zixing"] = "Zi Xing (equip card, horse)<br /><b>Horse skill</b>: The distance from you to other players is reduced by -1.",
}, "en_US")

View File

@ -303,7 +303,11 @@ int main(int argc, char *argv[]) {
#endif
QTranslator translator;
if (localeName.startsWith("zh_")) {
Q_UNUSED(translator.load("zh_CN.qm"));
} else {
Q_UNUSED(translator.load("en_US.qm"));
}
QCoreApplication::installTranslator(&translator);
QmlBackend backend;