PokerTH客户端设置与30+语言国际化:一份完整的i18n配置手册
PokerTH客户端设置与30+语言国际化:一份完整的i18n配置手册
【免费下载链接】pokerthPokerTH is a poker game written in C++/Qt.项目地址: https://gitcode.com/gh_mirrors/po/pokerth
🃏PokerTH是一款用 C++/Qt 编写的免费开源德州扑克游戏。它的客户端设置系统覆盖界面、音效、本地/网络/在线对局等 9 大分类,并通过i18n 国际化机制支持 30 多种语言的翻译文件。本文是一份面向新手的完整配置手册,带你快速掌握PokerTH 客户端设置与语言切换,5 分钟上手多语言扑克体验。
认识 PokerTH 的两种客户端界面
PokerTH 提供两套 UI,但共享同一份设置配置:
- Qt Widgets 经典界面:设置逻辑位于 settingsdialogimpl.cpp
- Qt6 QML 新版界面:设置页面位于 SettingsPage.qml,选项集中在 Parameters.qml
无论你在哪个界面修改设置,写入的都是同一个配置键(ConfigFile),因此语言、样式等偏好在两种界面间完全通用。
客户端设置分类逐步指南:9 大模块一次看懂
QML 新版的设置页采用左侧菜单 + 右侧内容区的布局,共9 个分类:
| 分类 | 内容 | 对应组件 |
|---|---|---|
| 🖥️ 界面 (Benutzeroberfläche) | 工具栏显示、动画、缩放、提示等 | GuiSettings |
| 🎨 样式 (Stil) | 桌面背景、卡牌样式、深色模式 | StyleSettings |
| 🔊 声音 (Sound) | 对局音效开关与音量 | SoundSettings |
| ♠️ 本地游戏 (Lokales Spiel) | 本地对局机器人、盲注等 | LocalGameSettings |
| 🌐 网络游戏 (Netzwerkspiel) | 自架服务器对局选项 | NetworkGameSettings |
| 🛜 在线游戏 (Internetspiel) | 联网对局、国家旗帜、状态色 | InternetGameSettings |
| 👤 昵称/头像 (Nicknamen/Avatare) | 昵称与头像选择 | NicknameAvatarSettings |
| 📜 日志 (Log-Nachrichten) | 对局日志消息开关 | LogSettings |
| ⬅️ 恢复默认 (Standardeinstellung) | 一键重置所有设置 | ResetSettings |
高频实用选项速查
以下选项定义在 Parameters.qml 中,是新手最常调整的几项:
- 显示盲注按钮 / 反向 F 键顺序:调整操作习惯
- 卡牌动画 / 弃牌淡出动画:追求流畅可关闭
- 表格缩放 (tableZoom):小屏幕放大牌桌视图
- 保留空座位 (keepEmptySeats):玩家掉线后牌桌是否保持座位布局
- 头像国家旗帜 / 网络状态色:在线对局时识别对手
- 防误点跟注 (preventAccidentalCallAfterBigRaise):大加注后二次确认,防手滑 🛡️
- 深色模式:支持 浅色 / 深色 / 跟随系统,定义在 StaticData.qml
选择桌面与卡牌样式:视觉个性化指南
样式(Stil)分类下可以切换牌桌背景与卡牌花色皮肤。项目内置了丰富的官方素材:
- 牌桌背景:
data/gfx/gui/table/下含default、terminus_hotel_2、danuxi1等多款桌面;QML 版另有data/gfx/qml/table/下的matrix、pirates、saloon、star_trek等 16 款主题 - 卡牌皮肤:
data/gfx/cards/提供default、default4c(四花色)等牌组,QML 版还有lemming、stardust、discworld等 10 款 SVG 卡牌 - 背面图案:
data/gfx/gui/backside/与data/gfx/qml/backside/各含 3/15 款牌背
下图就是经典的default 牌桌样式,宽幅比例在大屏上观感最佳:
i18n 国际化:30+ 语言是如何实现的
PokerTH 的国际化采用 Qt 标准的TS → QM 两段式翻译流程:
- 翻译源文件(.ts):位于 ts/ 目录,共 30 个文件,涵盖南非荷兰语、保加利亚语、加泰罗尼亚语、捷克语、德语、丹麦语、西班牙语、芬兰语、法语、西班牙语系、希腊语、匈牙利语、意大利语、日语、立陶宛语、荷兰语、挪威语、波兰语、葡语(巴西/葡萄牙)、俄语、斯洛伐克语、瑞典语、泰米尔语、土耳其语、越南语、简体中文等 28+ 种语言,外加
qt_*.ts系列 Qt 框架自带翻译 - 编译后翻译(.qm):位于
data/translations/目录,应用启动时按语言码加载对应.qm文件,例如简体中文加载pokerth_zhcn.qm - 源码标记:开发者用
tr()/qsTr()宏标记所有可翻译字符串(如 StaticData.qml 中的设置分类名),lupdate工具会从中自动提取待翻译词条
切换语言操作步骤:QML 与 Widgets 客户端如何联动
新版 QML 客户端在界面中直接提供语言下拉框,当前支持7 种完整本地化界面:
| 语言 | Locale 码 | 翻译文件 |
|---|---|---|
| 🇩🇪 德语 | de_DE | pokerth_de_DE.ts |
| 🇬🇧 英语 | en_US | pokerth_en_US.ts |
| 🇫🇷 法语 | fr_FR | pokerth_fr_FR.ts |
| 🇮🇹 意大利语 | it_IT | pokerth_it_IT.ts |
| 🇪🇸 西班牙语 | es_ES | pokerth_es_ES.ts |
| 🇵🇹 葡萄牙语 | pt_PT | pokerth_pt_PT.ts |
| 🇧🇷 巴西葡语 | pt_BR | pokerth_pt_BR.ts |
翻译文件位于 i18n/ 目录。切换流程很简单:
- 打开设置 → 界面,在语言下拉框中选择目标语言
- 选择立即写入配置键
Language(短码,如de、ptbr) - 应用自动在两个客户端间智能转码:QML 端用
de_DE加载 i18n/ 下的.qm,Widgets 端则用短码去data/translations/找pokerth_de.qm——转码逻辑就在 StaticData.qml 的languageConfigCodes映射表中
💡小提示:若系统语言不在支持列表中(例如设为中文但 QML 端暂无完整翻译),客户端会通过findSupportedLocale()自动回退到英文默认界面,而聊天翻译仍遵循你在设置中选择的语言。此外还有一个特色开关doNotTranslatePokerTerms(默认开启):让 Fold/Call/Raise 等扑克术语在所有语言中保持英文原文,方便国际牌桌沟通。
相关模块路径清单
| 用途 | 路径 |
|---|---|
| QML 设置页入口 | SettingsPage.qml |
| 设置选项定义 | Parameters.qml |
| 语言/主题静态数据 | StaticData.qml |
| Widgets 设置对话框 | settingsdialogimpl.cpp |
| 翻译源文件(30+ 语言) | ts/ |
| 编译后翻译文件 | data/translations/ |
| QML 端翻译 | i18n/ |
| 牌桌样式素材 | data/gfx/gui/table/ |
总结:PokerTH 的客户端设置通过统一的ConfigFile机制在双界面间共享,i18n 国际化则以标准 Qt 翻译流程覆盖 30+ 语言。只需进入设置页的对应分类,几分钟内即可完成语言、样式与操作习惯的全部个性化配置,轻松打造属于你的扑克牌桌。🎯
【免费下载链接】pokerthPokerTH is a poker game written in C++/Qt.项目地址: https://gitcode.com/gh_mirrors/po/pokerth
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
