翻訳

.NETの.resxリソースファイルを翻訳する

.resxファイルはテキストとアイコンなどの型付きリソースを1つのXMLに混在させています。KAERISは文字列のみを翻訳し、それ以外はバイト単位でそのまま残し、{0}形式の項目をチェックします。

KAERISはこのページを翻訳し、すべての行を逆翻訳して確認しました。ネイティブスピーカーによるレビューはまだ行われていません。 英語原文

.resxファイルの構造

XMLの<root>内に<data name="…"><value>…</value></data>のエントリがあります。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翻訳で注意すべき点

実際の実行例:ドイツ語に翻訳しチェック

実際の実行例、2026年10月27日、手動編集なし: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 が行うこと

3ステップで実行する

  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