.NETの.resxリソースファイルを翻訳してStrings.de.resxを生成
1つまたは複数の.resxファイルをアップロードするだけで、各ファイルがStrings.de.resxなどの言語別サテライトファイルとして出力され、すべての文字列値が翻訳されます。リソース名、resheaderブロック、コメント、画像などの非文字列リソースは完全に元のまま保持されます。300値までのジョブなら完全無料。それ以上のジョブも一回払いのみの$5でご利用いただけます。
- すべての文字列リソースの値を翻訳(name属性は変更されません)
- resheaderエントリおよびcomment要素は翻訳されません
- typeまたはmimetype属性を持つリソース(画像、バイト配列、その他のオブジェクト)はスキップ
- {0}や{name}などのプレースホルダーはすべての値でチェック
- Strings.resxは、.NETが参照するファイル名命名規則(Strings.de.resxなど)で出力
.resxファイルの翻訳手順
-
1
.resxファイルをアップロード
Strings.resxやErrors.resxなど、プロジェクトの基準となるニュートラルな.resxファイルをドロップし、翻訳先言語を選択します。
-
2
最初の値を無料で確認
原文の横に翻訳済みの先頭文字列が表示されます。支払い前に自由に編集可能です。
-
3
ロック解除してプロジェクトに追加
$5でジョブ全体をロック解除し、ファイル(複数の場合はZIP)をダウンロードして元のファイルの隣に配置します。
本ツールが.resxファイル内で変更する内容
.resxファイルはXML形式です。各文字列リソースはname属性を持つdata要素であり、その中にvalue要素が含まれています。翻訳されるのはvalue要素内のテキストのみです。翻訳者向けのメモが記載されることの多いcomment要素はそのまま維持され、.NETにファイルの読み込み方法を指示するresheaderエントリには一切手を加えません。
ファイルを再パースして書き直すのではなく、各値の文字部分のみを置き換えるため、リソースの順序、xml:space属性、フォーマットは完全に維持されます。翻訳文中の & や < といった文字も正しくエスケープされます。
プレースホルダーと命名規則
「{0}」や「{1}」などの複合書式プレースホルダーや「{count}」のような名前付きプレースホルダーは、翻訳時にすべて検証されます。プレースホルダーが欠落した値は再翻訳され、解決しない場合は原文が維持されるため、実行時に String.Format で例外が発生することはありません。
各ファイルは拡張子の前にカルチャコードが付加されて返されます(例:Strings.resx は Strings.de.resx)。これはリソースマネージャーがサテライトリソースを検出する際の命名規則に準拠しています。
ツールの仕組み、料金、ファイルの扱いについてはJSON・XML・YAML翻訳のページを、全ツールの料金は料金のページをご覧ください。
最終更新日
よくある質問
.resx ファイルを壊さずに翻訳できますか?
はい、可能です。変更されるのは各 value 要素のテキストのみです。name、header、comment、文字列以外のリソースはそのまま維持され、「{0}」などのプレースホルダーも自動検証されます。
複数の .resx ファイルを一度にアップロードできますか?
はい、可能です。まとめてアップロードすれば、それぞれの翻訳済みファイルが入った1つの ZIP ファイルとしてダウンロードできます。
コメントも翻訳されますか?
いいえ、comment 要素は翻訳されずそのまま維持されるため、翻訳者や開発者向けのメモは元の言語のまま残ります。
料金はいくらですか?
最大 300 件の値までは完全無料です。それ以上のファイルは最大 50,000 件まで一回払いのみの $5、週 $19 の使い放題(Unlimited プラン)なら最大 200,000 件まで対応します。