翻译

翻译 .NET .resx 资源文件

一个 .resx 文件将文本与图标和其他类型化资源混合在一个 XML 文件中。KAERIS 只翻译字符串,其余部分逐字节保留,并检查 {0} 格式项。

KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文

.resx 文件是如何构建的

一个带有 <data name="…"><value>…</value></data> 条目的 XML <root>。带有 type 或 mimetype 属性的条目(图标、图像)不是文本。像 SaveButton.Text 这样的名称是 WinForms 中的控件属性。

源文件Strings.resx
<?xml version="1.0" encoding="utf-8"?>
<root>
  <resheader name="resmimetype"><value>text/microsoft-resx</value></resheader>
  <data name="WelcomeMessage" xml:space="preserve">
    <value>Welcome back, {0}!</value>
    <comment>{0} is the user's first name</comment>
  </data>
  <data name="ItemsInCart" xml:space="preserve">
    <value>You have {0} items in your cart.</value>
  </data>
  <data name="SaveButton.Text" xml:space="preserve">
    <value>Save and close</value>
  </data>
  <data name="AppIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\app.ico;System.Drawing.Icon, System.Drawing</value>
  </data>
</root>

.resx 翻译中需要注意的事项

实际运行:翻译为德语并进行检查

实际运行,27 October 2026,未手动编辑任何内容:kaeris translate Strings.resx --langs de 使用 kaeris 0.2.35,2.6 秒,模型 openai/gpt-4.1-mini(服务的回退模型处理了此任务)。下方是它写入的德语文件以及 kaeris check 的报告。

德语结果de/Strings.resx
<?xml version="1.0" encoding="utf-8"?>
<root>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="WelcomeMessage" xml:space="preserve">
    <value>Willkommen zurück, {0}!</value>
  </data>
  <data name="ItemsInCart" xml:space="preserve">
    <value>Sie haben {0} Artikel in Ihrem Warenkorb.</value>
  </data>
  <data name="SaveButton.Text" xml:space="preserve">
    <value>Speichern und schließen</value>
  </data>
  <data name="AppIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\app.ico;System.Drawing.Icon, System.Drawing</value>
  </data>
</root>
kaeris 检查exit code 0
$ kaeris check --source Strings.resx --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

KAERIS 的处理方式

分三步运行

  1. 安装 CLI

    运行 pip install kaeris。

  2. 翻译资源文件

    运行 kaeris translate Resources/Strings.resx --langs de,ja。

  3. 检查结果

    在免费检查页面上上传源文件和翻译后的 .resx 文件。

pip install kaeris
kaeris translate Resources/Strings.resx --langs de,ja --verify

问题

图标和其他类型化资源会被处理吗?

不会。带有 type 或 mimetype 属性的条目按原样保留。

元素会被保留吗?

不会:翻译后的文件在没有它们的情况下写入。您的源文件保留了它们。

免费吗?

是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格

我可以在终端或 CI 中运行它吗?

是的。pip install kaeris,然后 kaeris translate Resources/Strings.resx --langs de,ja。GitHub Action 在拉取请求中运行相同的翻译。 CLI 文档 · GitHub Action

继续

CLI 参考 · 检查参考 · 在浏览器中翻译 · 免费检查 · 格式转换 · 伪本地化

其他格式: JSON · YAML · .po · ARB · XLIFF · .strings · .xcstrings · .properties · CSV · Markdown · Fluent · Android XML