本文へスキップ
すべてのツール 料金 ブログ

トークとボイスメッセージ

ドキュメント

音声・動画

ログイン

言語

すべてのキー、プレースホルダー、複数形を保ったままJSON i18nファイルを翻訳

en.json(または複数の名前空間ファイル)をアップロードすると、キーの階層も順序もインデントもそのままの es.json が返ってきます。翻訳されるのは値だけで、すべての文字列で {name}、{{count}}、ICU 複数形をチェックします。最初の数文字列は、アカウント不要で無料です。ジョブ全体(最大 5,000 文字列)は $5 の一回払いのみです。

文字列ファイルを翻訳

トーン
用語集と保持する名前(任意)

ブランド名・製品名をカンマ区切りで入力してください。すべての翻訳で1つずつ確認されます。

1行に1語: 用語 = 訳語

登録不要。300件の文字列までは全部無料。それ以上は最初の数件の文字列が無料、ジョブ内のすべてのファイルが$5、一回払いのみ。

続行すると、利用規約 と プライバシーポリシー に同意したものとみなされます。

  • キーと階層は翻訳しません。配列、数値、真偽値もそのままです
  • プレースホルダーをチェック:{name}、{{count}}、%s、:attribute、$t(key)、@:key
  • ICU 複数形は構造を保ち、翻訳先の言語に必要なカテゴリーが追加されます
  • Flutter ARB:@metadata は保持して文脈として活用し、@@locale は更新します
  • ファイル名は言語に合わせて変わります:en.json は es.json に、app_en.arb は app_es.arb になります
デモを開く

PDFサンプルを見る

85 件の文字列 ・ キーは変更なし

{

"home.greeting": "Good morning, {name}Buenos días, {name}",

"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",

"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",

"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",

"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."

}

黄色:プレースホルダーと ICU の複数形構文を、すべての文字列で確認します。青緑:タグ、エスケープ、絵文字は、そのまま保持します。

キーも、プレースホルダーもそのまま。言語だけが新しく。

変わるのは値だけです。ファイルは階層も順序もそのままで、es.json という名前で戻ります。プレースホルダーが欠けた文字列は、ビルドに届く前に再度翻訳されます。

このページ用に作成したデモアプリです。スペイン語の文字列は、85件の文字列を含むファイルからのツールの実際の出力です。

翻訳されるもの、されないもの

文字列の値はすべて、完全なキーを文脈として添えて翻訳に送られます。そのため「settings.save」と「cart.save」が別の訳語になることもあります。キー自体は送信されません。URL、メールアドレス、「{count}」のようにプレースホルダーだけでできた値など、テキストではない値はそのまま残します。

react-intl などのライブラリで使われる <b>{name}</b> や <link>Undo</link> のようなリッチテキストタグは、翻訳前にマーカーへ置き換え、翻訳後に元へ戻します。リテラルの \n や絵文字も保持される必要があり、いずれかが失われた文字列は再翻訳されます。2回続けて失敗した場合は英語のまま残し、そのキーを一覧でお知らせします。

複数形

{count, plural, one {# trail} other {# trails}} のような ICU メッセージは、1つの文字列として翻訳されます。翻訳エンジンには、翻訳先の言語が使う複数形カテゴリー(ロシア語やポーランド語なら one、few、many、other など)が伝えられ、変数名と複数形キーワードが保たれているかを結果で確認します。trail_one や trail_other のようにキーが分かれている i18next ファイルは、キーごとに翻訳します。翻訳先の言語に足りないキー(trail_few、trail_many)は追加されません。

ツールの仕組み、料金、ファイルの扱いについてはローカライズファイル翻訳のページを、全ツールの料金は料金のページをご覧ください。

最終更新日

よくある質問

出力はフォーマットを保ってくれますか?

はい。インデント(スペース2つ、スペース4つ、タブ)、キーの順序、コロンの後のスペース、末尾の改行まで、お手持ちのファイルのとおりに再現します。minify 済みのファイルは1行のままです。

複数の名前空間ファイルを一度にアップロードできますか?

はい。common.json、cart.json、errors.json など、1つのジョブで最大20ファイルまで可能です。ダウンロードは1つの ZIP にまとめられます。

翻訳したくない文字列はどうなりますか?

製品名やブランド名を「翻訳しない語句」に登録すると、それを含む文字列がすべて、その語句を保ったまま翻訳されているかチェックされます。URL、メールアドレス、プレースホルダーだけの値は自動でスキップされます。

料金はいくらですか?

最初の数文字列は無料です。ジョブ全体(5,000 文字列まで)は、$5 の一回払いのみです。Unlimited プランは1ジョブあたり 15,000 文字列までに対応します。小規模な作業は例外で、300 文字列までの作業は、ダウンロードも含めてすべて無料です。

関連する作業

どのページが役立っているかを把握するため、分析用Cookieを使用します。よろしいですか?