我如何在5分钟内翻译277个字符串(真实案例研究)

发布: (2026年1月5日 GMT+8 02:44)
4 min read
原文: Dev.to

Source: Dev.to

How I Translated 277 Strings in 5 Minutes(真实案例研究)的封面图片

Nikolaos Protopapas

挑战

ShareX 是一款令人惊叹的开源截屏工具,拥有 35K+ GitHub 星标。它支持 24 种语言,拥有 170 条可翻译的字符串。

我想要:

  • 添加 希腊语 作为新语言
  • 完成 西班牙语 的翻译
  • 查找任何未使用的本地化键

……并且我想 免费 完成——不使用付费翻译 API。

工具:LRM

LRM (Localization Resource Manager) 是我构建的开源 CLI 工具,用于管理本地化文件。它支持:

  • .resx(ShareX 使用此格式),JSON,i18next,Android,iOS,PO,XLIFF
  • 免费翻译提供商:MyMemory,Lingva,LibreTranslate
  • 本地 LLM:Ollama(Llama,Mistral 等)
  • 付费提供商:DeepL,Google,Azure,OpenAI,Claude(如果需要的话)

第一步:检查当前状态

cd ~/ShareX/ShareX/Properties
lrm stats
┌─────────────────────────────────────────────────────────────────┐
│                     Localization Statistics                     │
├──────────┬──────┬────────────┬───────┬─────────┬─────────┬──────┤
│ Language │ Keys │ Translated │ Empty │ Missing │ Coverage│ Size │
├──────────┼──────┼────────────┼───────┼─────────┼─────────┼──────┤
│ default  │ 170 │ 170 │ 0 │ 0 │ 100.0% │ 48KB │
│ de       │ 163 │ 163 │ 0 │ 7 │ 95.9% │ 47KB │
│ es       │ 63  │ 63  │ 0 │ 107 │ 37.1% │ 20KB │
│ fr       │ 170 │ 170 │ 0 │ 0 │ 100.0% │ 50KB │
│ …        │ …   │ …   │ … │ …   │ …     │ …    │
└──────────┴──────┴────────────┴───────┴─────────┴─────────┴──────┘

西班牙语仅为 37 % —— 让我们来修复它。

步骤 2:添加希腊语(新语言)

lrm add-language el
✓ Created: Resources.el.resx
  Keys: 170 (copied from default)
  All values empty – ready for translation

第三步:使用免费提供商进行翻译

选项 A – MyMemory(免费,无 API 密钥)

# Translate Greek (all strings)
lrm translate "*" --provider mymemory --from en --to el

# Complete Spanish (only missing)
lrm translate "*" --provider mymemory --from en --to es --only-missing

选项 B – Lingva(免费 Google 翻译代理)

lrm translate "*" --provider lingva --from en --to el

选项 C – 本地 Ollama(100 % 离线)

如果您在本地运行 Ollama

# Use Llama 3.2 or any model you have
lrm translate "*" --provider ollama --from en --to el

lrm.json 中配置模型:

{
  "Translation": {
    "AIProviders": {
      "Ollama": {
        "Model": "llama3.2",
        "ApiUrl": "http://localhost:11434"
      }
    }
  }
}

第4步:验证

lrm validate
✓ Validation passed
  Files: 25
  Issues: 0
  Placeholder mismatches: 0

LRM 会自动检查 {0}{1} 占位符是否保持不变。

第5步:查找未使用的键

lrm scan --show-unused
Code Scan Results
─────────────────
Source files scanned: 847
Localization keys: 170

Unused Keys (5):
  • HotkeyType_DisableHotkeys
  • QuickTaskMenuEditorForm_Separator
  • TaskSettings_CaptureAutoHideTaskbar
  • …

.resx 文件中存在五个键,但在代码中未被使用。

结果

语言之前之后字符串
希腊语0 %100 %170 新增
西班牙语37 %100 %107 已添加

总计:277 条字符串在约 5 分钟内翻译完成

奖励:使用 LRM Cloud 的团队协作

对于团队项目,同步到 LRM Cloud(提供免费层):

lrm cloud push

LRM Cloud 仪表板

功能

  • 基于网页的翻译编辑器
  • 翻译记忆库与术语表
  • GitHub 集成
  • 基于角色的团队访问

完整案例研究

查看包含所有 CLI 输出的完整演练:
ShareX Case Study on GitHub

入门

# Download LRM
curl -L https://github.com/nickprotop/LocalizationManager/releases/latest/download/lrm-linux-x64.tar.gz | tar xz

或在 Windows

从 GitHub Releases 下载

检查你的项目

cd ./YourProject/Resources
lrm stats

链接

有问题吗?留下评论或打开一个 GitHub Discussion!

Back to Blog

相关文章

阅读更多 »

开源GitOps

文章 URL: https://opengitops.dev/ 评论 URL: https://news.ycombinator.com/item?id=46491765 积分: 6 评论: 0