-- SPDX-License-Identifier: GPL-3.0-or-later Fk:loadTranslationTable({ -- Lobby ["Room List"] = "Room List (currently have %1 rooms)", -- ["Enter"] = "进入", -- ["Observe"] = "旁观", -- ["Edit Profile"] = "编辑个人信息", -- ["Username"] = "用户名", -- ["Avatar"] = "头像", -- ["Old Password"] = "旧密码", -- ["New Password"] = "新密码", -- ["Update Avatar"] = "更新头像", -- ["Update Password"] = "更新密码", -- ["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", ["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", ["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", ["TotalGameTime: %1 min"] = "Played: %1 minutes", ["TotalGameTime: %1 h"] = "Played: %1 hours", ["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:"] = "Special use method:", ["Every suit & number:"] = "All suit and number:", ["Scenarios Overview"] = "Game modes", -- ["Replay"] = "录像", -- ["Replay Manager"] = "来欣赏潇洒的录像吧!", ["Game Win"] = "Win", ["Game Lose"] = "Lose", ["Play the Replay"] = "Play", ["Delete Replay"] = "Delete", -- ["About"] = "关于", ["about_freekill_description"] = "About FreeKill
" .. "FreeKill is an open-source Bang!-like board game, which is aim to be extensive.
" .. "
Repo: https://github.com/Notify-ctrl/FreeKill", ["about_qt_description"] = "About Qt
" .. "Qt是一个C++图形界面应用程序开发框架,拥有强大的跨平台能力以及易于使用的API。
" .. "
本程序使用Qt 6.2+,主要利用QtQuick开发UI,同时也使用Qt的网络库开发服务端程序。
" .. "
官网: https://www.qt.io", ["about_lua_description"] = "About Lua
" .. "Lua是一种小巧、灵活、高效的脚本语言,广泛用于游戏开发中。
" .. "
本程序使用Lua 5.4,利用其完全实现了整个游戏逻辑。
" .. "
官网: https://www.lua.org", ["about_ossl_description"] = "About OpenSSL
" .. "OpenSSL是一个开源包,用来提供安全通信与各种加密支持。
" .. "
本程序目前用到了crypto库,以获得RSA加密算法支持。
" .. "
官网: https://www.openssl.org", ["about_gplv3_description"] = "About GPLv3
" .. "GNU通用公共许可协议(简称GPL)是一个广泛使用的自由软件许可证条款,它确保广大用户自由地使用、学习、共享或修改软件。
" .. "
由于Qt是按照GPLv3协议开源的库,与此同时本程序用到的readline库也属于GPLv3库,再加上QSanguosha也是以GPLv3协议开源的软件(从中借鉴了不少代码和思路),因此这个项目也使用GPLv3协议开源。
" .. "
官网: https://gplv3.fsf.org", ["about_sqlite_description"] = "About SQLite
" .. "SQLite是一个轻量级的数据库,具有占用资源低、运行效率快、嵌入性好等优点。
" .. "
FreeKill使用sqlite3在服务端保存用户的各种信息。
" .. "
官网: https://www.sqlite.org", ["about_git2_description"] = "About Libgit2
" .. "Libgit2是一个轻量级的、跨平台的、纯C实现的库,支持Git的大部分核心操作,并且支持几乎任何能与C语言交互的编程语言。
" .. "
FreeKill使用的是libgit2的C API,与此同时使用Git完成拓展包的下载、更新、管理等等功能。
" .. "
官网: https://libgit2.org", -- ["Exit Lobby"] = "退出大厅", -- ["OK"] = "确定", -- ["Cancel"] = "取消", -- ["End"] = "结束", -- ["Quit"] = "退出", ["BanGeneral"] = "Ban", ["ResumeGeneral"] = "Unban", ["BanPackage"] = "Ban packages", ["$BanPkgHelp"] = "Banning packages", ["$BanCharaHelp"] = "Banning characters", -- ["Companions"] = "珠联璧合", -- ["Death audio"] = "阵亡", -- ["Win audio"] = "胜利语音", -- ["Official"] = "官方", ["Title"] = "Title: ", ["Designer"] = "Designer: ", ["Voice Actor"] = "Voice Actor: ", ["Illustrator"] = "Illustrator: ", ["$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"] = "Free assign enabled", ["IncludeDeputy"] = "Deputy character enabled", -- Room ["$EnterRoom"] = "Successfully entered the room.", ["#currentRoundNum"] = "Round #%1", ["$Choice"] = "%1: Please choose", ["$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"] = "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", ["#AskForChoices"] = "%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 character", ["AskForGuanxing"] = "Stargazing", ["AskForExchange"] = "Exchaging", ["AskForChoice"] = "Making choice", ["AskForChoices"] = "Making choice", ["AskForKingdom"] = "Choosing kingdom", ["AskForPindian"] = "Point fight", ["AskForMoveCardInBoard"] = "Moving cards", ["replaceEquip"] = "Replacing Equip", ["PlayCard"] = "Playing card", ["AskForCardChosen"] = "Choosing card", ["AskForCardsChosen"] = "Choosing card", ["#AskForChooseCard"] = "%1: please choose a card from %src", ["#AskForChooseCards"] = "%1: please choose %2~%3 cards from %src", ["$ChooseCard"] = "Choose a card", ["$ChooseCards"] = "Choose %1~%2 cards", ["$Hand"] = "Hand", ["$Equip"] = "Equip", ["$Judge"] = "Judge", ['$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"] = "Please discard %arg cards (%arg2 at least)", ["#AskForCard"] = "Please choose %arg cards (%arg2 at least)", ["#AskForDistribution"] = "Please distribute cards (%arg at least , %arg2 total)", ["@DistributionTo"] = "", ["#replaceEquip"] = "Please Choose a Equip Card to be replaced", ["#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", -- ["Chat"] = "聊天", ["Log"] = "Game Log", -- ["Trusting ..."] = "托管中 ...", -- ["Observing ..."] = "旁观中 ...", ["#NoCardDraw"] = "Card Pile is empty", ["#NoGeneralDraw"] = "General Pile is empty", ["#NoEventDraw"] = "All game events terminated", ["#NoEnoughGeneralDraw"] = "No enough generals! (%arg/%arg2)", ["#TimeOutDraw"] = "It's over 9999 Round!", ["$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 Fk:loadTranslationTable({ ["lord"] = "Lord", ["loyalist"] = "Loyalist", ["rebel"] = "Rebel", ["renegade"] = "Renegade", ["lord+loyalist"] = "Lord and Loyalist", ["normal_damage"] = "Normal", ["fire_damage"] = "Fire", ["thunder_damage"] = "Thunder", ["ice_damage"] = "Ice", ["hp_lost"] = "HP lost", ["lose_hp"] = "lose HP", ["phase_start"] = "Prepare phase", ["phase_judge"] = "Judge phase", ["phase_draw"] = "Draw 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 Fk:loadTranslationTable({ -- game processing ["$AppendSeparator"] = '------------------------------', ["$GameStart"] = "== Game Started ==", ["$GameEnd"] = "== Game Over ==", -- get/lose skill ["#AcquireSkill"] = '%from acquired the skill "%arg"', ["#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", ["$DiscardOther"] = "%to discarded %arg card(s) %card from %from", ["$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 %card,and the target was %to", ["#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 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 %arg2,target was %arg", ["#ResponsePlayV0Card"] = "%from played %arg", ["#FilterCard"] = "Due to %arg, %arg2 that related to %from was regarded as %arg3", -- skill ["#InvokeSkill"] = '%from used skill "%arg"', -- judge ["#StartJudgeReason"] = "%from started a judgement (%arg)", ["#InitialJudge"] = "Judge card of %from was %arg", ["#ChangedJudge"] = "%from invoked %arg, retrialed judgement of %to with %arg2", ["#JudgeResult"] = "The judge result of %from was %arg", -- turnOver ["#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 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 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"] = "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")