0.3.1 • Published 6 months ago

bannerlord-helper v0.3.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

NodeJS Engines Install Size NPM Downloads XO code style License

English | 简体中文 | Türkçe

!IMPORTANT

仅支持 Windows。 详细信息请查阅 node-steam-librarywinreg.

📖 简介

Node.js 的实用终端工具集,致力于让《Mount & Blade II: Bannerlord》模组创作者能够更轻松地进行国际化工作。

💡 为什么使用 bannerlord-helper?

bannerlord-helper 可以帮助 翻译贡献者 快速创建符合官方标准目录结构和 XML 内容的本地化文件和翻译结果,让翻译工作只需要专注于翻译

即使源模组频繁更新,bannerlord-helper 的标识符算法也能让上个版本已翻译的结果被保留和复用,这意味着之前所作的努力永远不会被浪费

对于 玩家/游戏爱好者 来说,bannerlord-helper可以快速准确地将没有国际化的模组翻译成你的语言, 只需一行命令,然后打开游戏享受

⚙️ 先决条件

  • 确保电脑确保安装了大于 18 版本的 Node 程序。
  • 安装时勾选了添加到系统环境变量 (path) 的选项 (如有)。

📦 安装

  1. 在任意终端(cmd/bash/powershell/...)通过 NPM 安装本程序。

    npm install bannerlord-helper --global
  2. (如果安装成功则跳过此步) 如果安装失败,首先确保 Node 正确安装。

    # 打印版本号即正确安装,如:10.7.0
    # 出现 npm: command not found 则表示 Node 未正确安装,或路径不存在于用户环境变量
    npm -v
  3. (如果安装成功则跳过此步) 如果 Node 未正常安装,检查或新增安装路径和用户环境变量。

    如果不会操作的话可以查看这张引导图片 Node 环境变量,或直接安装 Node 官方提供的 预构建安装程序

  4. 中国大陆地区,某些特殊日期可能会因为网络问题导致 npm install 执行失败,使用 VPN 或执行命令将 NPM 源设置为淘宝技术团队公开的镜像。

    # 等同于我们向淘宝发送要求下载某个程序的消息,淘宝的服务器下载完后,我们再从淘宝的静态资源服务器安装 NPM 上的程序
    npm config set registry https://registry.npmmirror.com
    # 然后再次执行 NPM install
    npm install bannerlord-helper --global
  5. 运行帮助命令检查命令行是否安装成功。

    bh -h

🚀 使用

Bilingual Screenshot

bh <命令> [选项]

命令:
  bh search [keywords]      在 Nexusmod 上搜寻模组                   [aliases: browse]
  bh info                   检索本地模组详情和更新信息                       [aliases: query]
  bh identifier             填充和修复本地模组的翻译标识                      [aliases: ident]
  bh generate               生成本地模组的翻译模板文件                         [aliases: gen]
  bh translate              翻译本地模组的翻译模板文件                       [aliases: trans]
  bh external               翻译本地模组到外挂式翻译模组                        [aliases: ext]
  bh language [codeOrName]  显示受支持的语言列表                           [aliases: lang]
  bh completion             generate completion script

选项:
      --engine   翻译引擎 (Default by microsoft)
                 [字符串] [可选值: "microsoft", "google", "deeplx"] [默认值: "microsoft"]
  -h, --help     显示帮助信息                                                     [布尔]
  -v, --version  显示版本号                                                      [布尔]

示例:
  $ bh -h                         查看命令行帮助信息
  $ bh language -h                查看 language 命令的帮助信息
  $ bh [command] -h               查看指定 command 的帮助信息
  $ bh [command] --engine google  使用 Google 翻译引擎
  $ bh [command] --engine deeplx  使用 Deeplx 翻译

🕹️ 命令

环境变量

名称默认值描述
DEEPLX_PORT1188DeepLX 本地服务端口
DEEPLX_TOKEN-用于保护 API 的访问令牌

公共选项

名称类型缩写必需Choices默认值描述
engine字符串-"microsoft", "google", "deeplx""microsoft"翻译引擎 (默认使用 Microsoft)
help布尔h--显示帮助信息
version布尔v--显示版本号

search

别名: browse

Nexusmod 上搜寻模组

参数类型缩写必需默认值描述
keywords字符串k-模组名称关键字
language字符串l"EN"翻译 Nexusmod 模组列表名称的语言代码

Example

  • $ bh search "ButterLib": 在终端展示 Nexusmod 上 Butter Lib 模组的详细信息
  • $ bh search "改良驻军" --language="cns": 使用 简体中文 搜索模组并翻译搜索结果名称
  • $ bh search "Diplomacia" --language="sp" --engine="google": 过 Google 翻译并使用 西班牙语 查找和翻译模组
  • $ bh browse -k Diplomacy -l tr: 使用别名简化命令行

info

别名: query

检索本地模组详情和更新信息

参数类型缩写必需默认值描述
language字符串l"EN"翻译本地模组列表名称的语言代码
reset布尔rfalse重新设置所选模组与 Nexusmod 链接的索引

Example

  • $ bh info --language="cns": 使用 简体中文 翻译搜索结果名称
  • $ bh view -l cns: 使用别名简化命令行

identifier

别名: ident

填充和修复本地模组的翻译标识

参数类型缩写必需默认值描述
language字符串l"EN"翻译本地模组列表名称的语言代码

Example

  • $ bh identifier --language="cns": 使用 简体中文 翻译搜索结果名称
  • $ bh ident -l cns: 使用别名简化命令行

generate

别名: gen

生成本地模组的翻译模板文件

参数类型缩写必需默认值描述
language字符串l"EN"翻译本地模组列表名称的语言代码
to字符串t"EN"目标语言代码 (源文件文本的语言)
force布尔-false清除已存在的文件并重新生成模板

Example

  • $ bh generate: 生成翻译 英文 模板, 并导出到 Languages 根目录
  • $ bh generate -to="tr": 生成翻译 土耳其语 模板, 并导出到 Languages/TR 目录
  • $ bh generate -to="chinese simplified": 生成翻译 简体中文 模板, 并导出到 Languages/CNs 目录
  • $ bh gen -t cns: 使用别名简化命令行

translate

别名: trans

翻译本地模组的翻译模板文件

参数类型缩写必需默认值描述
to字符串t-目标语言代码
from字符串f"EN"源文本语言代码
prefix字符串p-为每项翻译文本添加前缀
force布尔-false清除已存在的文件并重新翻译

Example

  • $ bh translate --to="cns": 将 Languages 根目录的 英文 翻译模板翻译成 简体中文, 并导出到 Languages/CNs 目录
  • $ bh translate --from="cns" --to="Japanese": 将 Languages/CNs 目录的 简体中文 模板翻译成 日文, 并生成到 Languages/JP 根目录
  • $ bh translate --to="cns" --prefix="[CNS]": 将 英文 模板翻译成 简体中文 生成到 Languages/CNs 目录, 并为每项翻译文本添加 CNS 前缀
  • $ bh translate --to="cns" --force: 清空 Languages/CNs 目录并将 英文 模板翻译成 简体中文, 并导出到 Languages/CNs 目录
  • $ bh trans -f en -t cns -p [CNS]: 使用别名简化命令行

external

别名: ext

翻译本地模组到外挂式翻译模组

参数类型缩写必需默认值描述
to字符串t-目标语言代码
from字符串f"EN"源文本语言代码
prefix字符串p-为每项翻译文本添加前缀
force字符串-false清除已存在的文件并重新翻译

Example

  • $ bh external --to="cns": 将源文件翻译成 简体中文 模板, 并导出到 ../Module Name CNs/ModuleData 目录
  • $ bh external --to="cns" --prefix="[CNS]": 将源文件翻译成 简体中文, 导出到 ../Module Name CNs/ModuleData 目录, 并为每项翻译文本添加 CNS 前缀
  • $ bh external --to="cns" --force: 清空 ../Module Name CNs/ModuleData 目录, 将源文件翻译成 简体中文, 并生成到 Languages/CNs 目录
  • $ bh ext -f en -t cns -p [CNS]: 使用别名简化命令行

language

别名: lang

显示受支持的语言列表

参数类型缩写必需默认值描述
code-or-name字符串--语言代码或语言名称

Example

  • $ bh language: 在终端展示 Nexusmod 上 Butter Lib 模组的详细信息
  • $ bh language cns: 查看语言代码 CNs 的语言名称和本地化名称
  • $ bh lang: 使用别名简化命令行

♾️ 工作流程

Workflow Image

🌐 国际化

语言名称本地名称ISO-639-1ISO-3166-1 (Alpha-2)文件
English-enUSsrc/locale/en-US.ts
GermanDeutschdeDEsrc/locale/de-DE.ts
SpanishEspañolesESsrc/locale/es-ES.ts
FrenchFrançaisfrFRsrc/locale/fr-FR.ts
ItalianItalianoitITsrc/locale/it-IT.ts
Japanese日本語jaJPsrc/locale/ja-JP.ts
Korean한국어koKRsrc/locale/ko-KR.ts
PolishPolskiplPLsrc/locale/pl-PL.ts
PortuguesePortuguêsptPTsrc/locale/pt-PT.ts
RussianРусскийruRUsrc/locale/ru-RU.ts
TurkishTürkçetrTRsrc/locale/tr-TR.ts
Chinese Simplified简体中文zhCNsrc/locale/zh-CN.ts
Chinese Traditional繁體中文zhTWsrc/locale/zh-TW.ts

📍 计划项

  • 重构核心代码
  • 优化 i18n 管理
  • 实现细颗粒功能
  • 支持 DeepLX
  • 支持 xslt 文件
  • 支持生成外挂式翻译模组
  • 修复 {=!} 不应被翻译的问题
  • 解决 Nexusmod 数据时间为 UTC 的问题
  • 复用文本项的翻译标识
  • 优化可配置的 XML 识别路径
  • 命令糖
  • 新增单文件处理特性
  • 支持语言文件与 XLSX 双向转译

🏅 致谢

  • node-steam-library - 通过 Windows 注册表获取 Steam 的安装目录和应用列表。
  • node-translate - 🦜 一个强大、安全且功能丰富的 API,通过 Google 翻译
  • micro-translate-api - 适用于 Node.js 的 Microsoft Translator 的简单、强大且免费的 API
  • node-translate-i18n - 🌏 用于将本地化文件翻译为其他语言的命令行界面工具。

🤝 贡献

欢迎通过 Pull Requests 或 Issues 来贡献你的想法和代码。

📄 许可

本项目采用 MIT 许可证。详情请见 LICENSE 文件。