JSON 翻訳ツール: キーを壊さずにロケールファイルを翻訳する

Smartcatはプロダクトチーム向けのJSON翻訳ツールです。お客様のJSONロケールファイルを解析し、値の文字列のみを翻訳して、280以上の言語のいずれでも同じキーとネスト化を保持して返します。一度定義した正規表現ルールを使用することで、プレースホルダートークンはタグとして固定されたままになります。

あらゆるファイルを翻訳。数秒で。
画像、ドキュメント、動画、音声、コース — 形式を選んでファイルをドロップしてください。
ここにドキュメントをドロップ
または ファイルを参照 · .docx, .pdf, .pptx, .xlsx などに対応
翻訳元
翻訳先

翻訳

世界最大級の企業80社以上がSmartcatを選んでいます

JSON翻訳ツールとは何ですか?

JSON翻訳ツールは、JSONファイルの構造に手を加えることなく、そのファイル内の人間が読める文字列を別の言語に変換するツールです。Smartcatはロケールファイル内の文字列の値を翻訳します。キーとネスト化は完全に元のまま維持され、プレースホルダートークンは編集不可のタグとしてロックされるため、翻訳されたファイルはそのままi18nパイプラインにスムーズに戻ります。

JSON ファイルの翻訳者として、Smartcat は en.json、translation.json、およびお使いの i18n ライブラリが読み込むその他のすべてのロケールファイルを処理します。JSON のローカリゼーションはさらに一歩進んでいます。ロケールファイルは UI、REST API、または CLI を通じてインポートおよびエクスポートする Smartcat プロジェクト内のキーとなるため、各リリースでは新規および変更された文字列のみが翻訳に送信されます。

1つのファイルを、1回だけ翻訳しますか?無料のJSON翻訳ツールは、ブラウザで同じエンジンを実行します。

92%

そのまま承認された機械翻訳のワードの

Smartcat AIによって翻訳された単語の92%が、人による修正を一切受けることなく承認されています。

280+

言語

1つのen.jsonから、280以上の言語のいずれかでde.json、ja.json、pt-BR.jsonを生成します。

80+

ファイル形式

JSONは同じワークスペース内で、YAML、Android、XML、iOS、.strings、そしてXLIFFの次へ座っています。

インタラクティブなデモ:インポートされたロケールファイルからのキー、Smartcatソフトウェアローカリゼーションプロジェクトでレビュー済み。

なぜJSONファイルは一般的な翻訳ツールで壊れてしまうのでしょうか?

通常の翻訳ツールではJSONファイルが壊れてしまいます。これは、それらのツールがファイル全体を散文として扱うため、テキストと一緒にキー、プレースホルダー、複数形の構文まで翻訳されてしまうからです。

en.jsonを一般的な翻訳ツールに貼り付けると、文書全体が散文として扱われてしまいます。戻るものはエディターで解析されるか、あるいは解析されず、本番環境で失敗します。これらはどれもレビューに表示されません。それらは実行時に、一度に1つのロケールずつ表示されます。

汎用的な翻訳ツール

文章としてのファイル全体実行時にエラーが発生します

Smartcat

キーによって解析済み文字列値のみ

キーが翻訳される

「checkout_button」が「bouton_de_paiement」になり、コード内のすべての参照がundefinedを返すようになります。

キーはロックされたままです

Smartcatはキーをテキストとしてではなく、IDとしてインポートします。文字列の値のみがセグメントになるため、すべてのルックアップは引き続き解決されます。

プレースホルダーが文字化けする

「Hello, {{userName}}」は「Bonjour, {{nomUtilisateur}}」として戻り、文字列は生のトークンを描画します。

プレースホルダーはタグになります

プレースホルダーのルールに一致するトークンは、ロックされたタグとしてインポートされます。翻訳者はそれらを移動できますが、編集することはできません。

複数形の消失

{count, plural, one {# item} other {# items}} のような ICU メッセージは1つの文にフラット化され、英語以外のすべての言語で複数形が機能しなくなります。

複数形はそのままの形を保ちます

ICUの複数形は各言語で必要な複数形へと解析され、エクスポートによってそれらはICU互換の文字列として戻る形で書き出されます。

エスケープ処理を行うとファイルが破損します

エスケープされた見積もり、\n、および \uXXXX シーケンスが「親切にも」正規化され、diff では問題なく見えたファイルが JSON.parse でエラーを発生させます。

構造は変更されずに戻る

文字列の値のみがセグメントになります。キーおよびネスト化は翻訳の対象として提示されないため、エクスポートされたファイルは出典ファイルの形状を維持します。

JSON 翻訳ツールが保持しなければならないもの

JSON ファイル翻訳ツールは、キー、ネスト化、プレースホルダー、および ICU の複数形をそのまま維持し、文字列の値のみを翻訳する必要があります。これを実行するJSON翻訳ツールは、ビルドが読み取り可能なJSONファイル翻訳を提供します。ファイル内の各部分に必要なものは以下の通りです。

要素例汎用的な翻訳ツールSmartcat
鍵"checkout.title"頻繁に翻訳されるため、検索に失敗しますキーIDとしてロックされ、翻訳へ送信されることはありません
文字列の値"Your cart"それらを囲むコードと一緒に翻訳されました翻訳メモリと用語集を使用してセグメントとして翻訳済み
ネスト化されたオブジェクト{"nav": {"home": "Home"}}括弧や見積もりは変動することがあります形状を保持。フラットまたは構造化データとしてエクスポート JSON
プレースホルダー{{userName}}、%s、{0}翻訳済みまたは削除済み一度設定したプレースホルダールールにより、タグとしてロックされました
ICU 複数形{count, plural, one {…} other {…}}1つの文にまとめられた言語ごとの複数形に解析され、ICU としてエクスポートされました
コンテクストLocJSON コメントと最大長失われた文字列の次へ翻訳者に表示されます

同じソフトウェアローカリゼーションプロジェクトは、YAML、Android、XML、iOS、.strings、およびLocJSONのキーもインポートします。

Smartcat が JSON ロケールファイルを翻訳する方法

SmartcatでJSONファイルの翻訳を行うには、ファイルをアップロードし、ターゲット言語を選択し、プレースホルダーをロックして機械翻訳させ、翻訳レビューを行って、すべての言語で同じキーをダウンロードします。同じフローがCLIとREST APIで実行され、JSONファイルの翻訳のステップバイステップガイドではフラット、ネスト化、およびi18nextファイルを網羅しています。

  1. JSONファイルをアップロードしてください

    en.json、または複数のロケールファイルを一度にアップロードしてください。開発者は、代わりにCLIまたはREST APIを使用してキーをインポートできます。

    JSON ファイルが追加されている、Smartcat 内のドラッグ&ドロップ アップロード領域
  2. ターゲット言語を選択してください

    ソース言語を1つ選択し、必要なすべてのターゲット言語を選択してください。ターゲット言語は後からいつでも追加できます。

    Smartcatでソース言語の英語、およびターゲット言語のスペイン語とフランス語が選択されました
  3. プレースホルダーをロックしてください

    {{名前}}、%s、または {0} など、コードで使用されている各トークン形式にルールを追加してください。一致するトークンはロックされたタグとしてインポートされます。

    文字列の英語版とスペイン語版でタグとして保持されている名前プレースホルダー
  4. AIに翻訳させる

    Smartcat AIはお客様の翻訳メモリと用語集を使用してすべての文字列を下書きするため、以前のリリースで承認された文字列が再利用されます。

    Smartcatワークフローの機械翻訳ステージにおけるJSONファイル
  5. 重要なことをレビューする

    文字列の確認、用語集の用語の適用、または人間によるレビューへの言語の割り当てを行うには、エディターを開いてください。AIの下書きで十分な場合は、スキップしてください。

    Smartcatエディター内の一致スコア付き翻訳済みセグメント
  6. JSON をダウンロード

    同じキー、同じネスト化、新しい言語。言語ごとに1つのファイルをエクスポートするか、プロジェクト全体を選択してフォルダーごとに分類された1つのZIPをダウンロードします。

    Smartcat プロジェクトメニューでのファイルダウンロードアクション

ご自身のJSONファイルの1つで、これら6つのステップをご確認ください

JSON プロダクトチーム向けローカリゼーションソフトウェア

JSON ローカリゼーションソフトウェアは文字列をキーとして保存するため、リリースごとに承認済みの翻訳が再利用されます。Smartcatでは、そのソフトウェアローカリゼーションプラットフォームの一部として、1つのプロジェクトにキー、翻訳メモリ、用語集が保持されます。違う仕事?1つのファイルを無料で翻訳、JSONファイルの翻訳方法に関するステップバイステップのガイドに従うか、またはJSONファイルを英語やその他の言語に翻訳します。

デモに本物のロケールファイルを1つ持ち込む

JSON ローカリゼーション:ネスト化されたキー、複数形、フレームワークファイル

Smartcatは、パス区切り文字を含むネスト化されたJSONキー、言語ごとの複数形としてのICU複数形、および標準的なキー/値JSONとしてのi18nextまたはReact Nativeロケールファイルを処理します。JSONローカリゼーションが失敗しがちな3つのポイントがこれらです。

キーと構造

ネスト化されたキー

Smartcatは、ネスト化されたJSONオブジェクトをそのまま保持します。Structured JSON はパス区切り文字を使用して、ネスト化された各キーを checkout.button.label などの1つの ID にマッピングし、同じネスト構造を戻るようにエクスポートします。

  • checkout.button.label
    キーID、ロック中
  • "Pay now"
    文字列の値、翻訳済み

フラット形式または構造化エクスポート

お使いのi18nライブラリが読み込む形式に応じて、同じキーをドット区切りのIDを持つフラットなJSONとして、またはネスト化されたオブジェクトを持つ構造化されたJSONとしてエクスポートします。

平らな
"nav.home": "ホーム"
構造化された
"nav": { "home": "ホーム" }

複数形と変数

ICU 複数形

別々の複数形に解析されたICU MessageFormatの複数形をインポートするか、そのまま維持します。各言語は必要な形式を取得し、エクスポートはそれらをICU互換の文字列として書き戻る。

  • oneother
    英語の出典: 2つの形式
  • onefewmanyother
    ロシア語またはポーランド語:4つの形式
  • other
    日本語:1つの形式

プレースホルダーと変数

{{userName}}、%s、{0} などのトークンは、一度設定したプレースホルダーのルールに一致すると、ロックされたタグとしてインポートされます。翻訳者は文の中でタグを移動することはできますが、変更したり削除したりすることはできません。

  • {{userName}}
    名前付き変数
  • %s%d
    printf形式の
  • {0}
    インデックス付き引数

フレームワークファイル

i18nextおよびReactネイティブJSON

translation.json などの i18next JSON 翻訳ファイルは、あらゆる React Native ロケールファイルと同様に、標準的なキーと値の JSON です。ロケールごとに1つのJSON言語ファイルを持つマルチ言語JSONセットアップは、そのネスト化を維持したままキーとして直接インポートされます。

ロケールごとに1つのファイル

en.jsonde.jsonja.jsonpt-BR.json

YAML、Android XML、およびiOS .strings、JSONの次へ

1つのソフトウェアローカリゼーションプロジェクトでJSON、YAML、Android XMLおよびiOS .stringsキーを保持できるため、ウェブとモバイルの文字列で1つの翻訳メモリと用語集を共有します。

1つのプロジェクト内の形式

.json.ymlstrings.xml.strings

文脈のためのLocJSON

LocJSONは、SmartcatのJSONベースの統合フォーマットです。各ユニットにはコメントと最大長を設定でき、翻訳者は文字列の次へこれらを確認できます。

  • キーと出典テキスト
  • 既存の翻訳(任意)
  • ユニットあたりのコメント
  • 1ユニットあたりの最大長

TJSONおよびその他のファイル形式

TJSONファイルは、同じワークスペース内のgettext、PO、XLIFF、およびJava .propertiesファイルと並んで、通常のファイルプロジェクトとして翻訳されます。

ファイルプロジェクト

TJSONPO/POTXLIFF.properties

業務を支えるAIの同僚たち

同僚各自が初稿から最終チェックに至るまで、JSONのローカライズの各工程を1つずつ担当します。エクスポートの前に、レビュー担当者がすべての言語を承認します。

Smartcatを文字列が保存されているツールに接続します

リポジトリ、CLI、またはREST APIからJSONのロケールファイルをプッシュおよびプルし、チームがすでに使用しているツールから製品に関するコンテンツを翻訳します。

Smartcatですべての言語を出荷するチーム

Huelは、ウェブサイト、CRM、クリエイティブ、テクニカルローカリゼーションを1つのSmartcatワークスペースで実行します。以下の各数値は、Huelの公開されたケーススタディからの引用です。

5分

ウェブサイトの記事1本あたり(1.5〜2時間から短縮)

Contentful統合により、Webサイトの記事を1本準備するのにかかっていた時間が1.5〜2時間から約5分に短縮されました。

21

年間に数週間分もの手作業が削除された

Huelは年間21週間分の手作業によるローカライゼーション業務(フルタイム従業員のほぼ半人分に相当)を削減しました。

10 h

チームごと、1週間ごとに保存済み

自動化と統合により、ウェブ、CRM、パフォーマンスマーケティング全体で、Huelの各チームはそれぞれ週に10時間を保存しています。

50%

代理店と比較した全体的なコスト節約

「Smartcatは私たちにとって単なる翻訳ツールにとどまらず、当社の技術スタックと統合されています。」

Huelは、CRM、パフォーマンスマーケティング、クリエイティブ、ウェブ、およびテクニカルの各チームをSmartcatにオンボーディングしました。機械翻訳は約500エントリーの用語集を使用して実行され、最も重要な部分に人間によるレビューが適用されます。

Magdalena Tumulka
Magdalena Tumulkaローカリゼーションリード、Huel

すべての言語でJSONファイルがどのように表示されるか確認しましょう

プロダクトチームおよびローカリゼーションチームがG2について語ること

開発者がJSONファイルをSmartcatに移行する前に尋ねる質問

エンジニアリングチームがJSON翻訳ツールを選ぶ前に提起する疑問への短い回答、およびAIがあなたのために行えない1つのことを含む。

「エクスポートされたJSONは引き続き解析可能ですか?」

はい。Smartcatは文字列の値のみを翻訳します。キーとネスト化はインポート時にロックされるため、ダウンロードするファイルはアップロードしたものと同じ構造になります。

  • キーがIDとしてロックされました
  • タグとしてのプレースホルダー
  • エクスポート時と同じネスト化

「私たちの翻訳はすでにリポジトリにあります。」

彼らはそこに留まることができます。CI/CDパイプラインからCLIまたはREST APIを使用してキーをプッシュおよびプルするか、GitHub、GitLab、またはBitbucketを接続します。リポジトリには、ビルドが読み取るファイルが保持されます。

「既に翻訳した文字列に対して、再度支払う必要がありますか?」

いいえ。新規の文字列および変更された文字列のみが請求の対象となります。翻訳メモリは以前のリリースで承認したすべての文字列を入力するため、レビュー担当者は変更された箇所のみを確認できます。

「AIは2つのワードからなるUIの文字列が何を意味しているのか判別できるのか?」

いつもそうとは限りません。「保存」は、ボタン、割引、または名詞になり得ます。短い文字列にスクリーンショットまたはコメントを追加し、リリース前にお客様独自のレビュー担当者またはSmartcat言語専門家に回送してください。

Smartcat があなたの翻訳する文字列を保護する方法

SmartcatはSOC 2 Type IIに準拠し、ISO 27001の認証を取得しています。ロケールファイルと翻訳メモリは、隔離されたワークスペース内に保持されます。Smartcatのセキュリティについて読む。

ロールベースのアクセス制御

エンタープライズプランでは、チーム、役割、または地域ごとに、誰が文字列の表示、翻訳、レビュー、および承認を行えるかを設定できます。

シングルサインオン(SSO)

エンタープライズプランでは、既存のIDプロバイダーを通じてサインインできます。

SOC 2 Type II準拠

SmartcatはSOC 2 Type IIに準拠しており、すべてのワークスペースを分離しています。

公開AIモデルのトレーニングに使用されることは一切ありません

お客様の文字列や出典ファイルが、公開AIモデルのトレーニングに使用されることは決してありません。

監査証跡

エンタープライズプランでは、翻訳およびレビュー全体で、誰が、何を、いつ変更したかを確認できます。

要求に応じた暗号化および削除

コンテンツは転送中および保存時に暗号化され、書面による要求から30日以内に削除または返却されます。

JSON ローカリゼーション用リソース

リリースごとにJSONロケールファイルを翻訳するチーム向けの、i18n、継続的ローカリゼーション、およびソフトウェアローカリゼーションに関するガイド。

JSONの翻訳に関するよくある質問

JSONファイルとは何ですか?

JSON ファイル(JavaScript Object Notation)は、構造化データのための軽量なテキストベースのフォーマットであり、Smartcat はその中のテキストを翻訳します。アプリは、en.json などの JSON ロケールファイル内で、コードとは別にキーと値のペアとしてインターフェースのテキストを保持します。Smartcat は、キーとネスト化をそのまま維持しながら、値である文字列を翻訳します。

最高のJSON翻訳ツールは何ですか?

最良のJSON翻訳ツールは文字列の値のみを変更し、Smartcatはその規則に基づいて構築されています。4つの基準でツールを比較します。キーとネスト化が正確に保持されること、プレースホルダーがタグとしてロックされること、言語ごとにICUの複数形が処理されること、そして以前のリリースを再利用する翻訳メモリがあることです。ロケールファイルがCI/CDパイプラインを通過できるように、CLIまたはAPIも確認してください。

JSONのローカリゼーションとは何ですか?

JSONのローカリゼーションとは、リリースを重ねるごとに、各言語および市場に合わせてJSONのロケールファイル内の文字列を適応させるプロセスのことです。Smartcatにおいて、ロケールファイルはソフトウェアローカリゼーションプロジェクト内のキーとなるため、各リリースでは新規および変更された文字列のみが翻訳に送られます。1回限りの単一のファイルであれば、無料のブラウザ版で十分です。

i18nextまたはReactアプリのJSONファイルをローカライズするにはどうすればよいですか?

en.json、またはi18next用のtranslation.jsonを出典として保持し、キーとしてSmartcatソフトウェアローカリゼーションプロジェクトにインポートします。ターゲット言語を追加します。用語集と翻訳メモリを使用してAIが各文字列を下書きし、レビュー担当者が承認します。de.json、fr.json、および残りを同じキーでエクスポートするか、CI/CDでCLIを使用してプルします。React ネイティブのロケールファイルも同様に機能します。

翻訳されたJSONファイルは、それでもパースできますか?

はい。Smartcatは文字列の値のみを翻訳し、構造には一切手を加えません。ファイルのインポート時にキーとネスト化はロックされ、文字列の値に含まれるテキストのみが翻訳可能なセグメントになります。エクスポートされたファイルは同じ解析済み構造から書き出されるため、出典ファイルと同じ形状になります。

Smartcatはネスト化されたJSONキーをどのように処理しますか?

Smartcatはネスト化されたオブジェクトをそのまま保持します。ソフトウェアローカリゼーションプロジェクトにおいて、構造化されたJSONはパス区切り文字を使用して、ネスト化された各キーをcheckout.button.labelのような1つのIDに変換し、その結果をフラットまたは構造化されたJSONとしてエクスポートできます。主要なIDは各文字列とともに移動するため、翻訳メモリがそれを一致させるのに役立ちます。

SmartcatはICU MessageFormatの複数形をサポートしていますか?

はい。Smartcatは2つの方法で複数形をサポートしています。ネイティブでは各複数形を個別のセグメントとして扱う方法、またはICU MessageFormat構文としての方法です。インポート時には、ICU構文を持つキーを個々の複数形に解析するか、そのまま保持するかを選択し、エクスポート時には、複数形がICU MessageFormat互換の文字列として書き戻るされます。

前回のリリース以降に変更されたキーのみを翻訳することはできますか?

はい。Smartcatは新規および変更された文字列のみを請求します。UI、CLIまたはREST APIから更新されたファイルまたはキーをプッシュすると、承認済みのすべての文字列が翻訳メモリによって入力されます。その後、翻訳者とレビュー担当者は変更された箇所のみを作業し、エクスポートには引き続きすべての言語のすべてのキーが含まれます。

SmartcatはどのJSONフォーマットおよびフレームワークに対応していますか?

Smartcatは標準的なキー・値のJSON、キーとしてのネスト化されたJSONおよびLocJSONをインポートし、ファイル形式としてTJSONを翻訳します。i18nextの翻訳ファイルおよびReactのネイティブロケールファイルは標準的なJSONであるため、直接インポートされます。同じプロジェクトでは、YAML、Android XML、およびiOS .stringsも受け取り、フラットファイルまたは構造化ファイルとしてJSONまたはYAMLをエクスポートします。

JSONの翻訳のためのAPIまたはCLIはありますか?

はい。Smartcatには、キーのインポートおよびエクスポート用のREST APIとコマンドラインインターフェイス(CLI)があり、どちらもCI/CDスクリプトから実行できます。開発者はビルド後に出典文字列をプッシュし、リリース前に翻訳されたJSONをプルできます。GitHub、GitLab、およびBitbucketの統合により、カスタムスクリプトを使用せずにリポジトリが同期されます。開発者向けドキュメントを参照してください。

Smartcatは{{名前}}のようなプレースホルダーをどのように保護しますか?

Smartcatはプレースホルダーをロックされたタグに変換します。プレースホルダー設定で、{{名前}}、%s、{0} など、コードが使用するトークン形式ごとに正規表現を一度追加します。一致するトークンはタグとしてインポートされ、翻訳者は文内で移動できますが、編集や削除はできません。

私の出典コンテンツは安全ですか?

はい。SmartcatはSOC 2 Type IIに準拠しており、ISO 27001の認証を取得しています。ファイルは転送時および保存時に暗号化され、ワークスペースは分離されており、アクセスはロールベースで行われます。お客様の文字列が公開AIモデルのトレーニングに使用されることは決してなく、書面による要求から30日以内にコンテンツは削除または返却されます。詳細はセキュリティページに記載されています。

AIJSON翻訳ツールはどのような点で劣っているのでしょうか?

Smartcat AIはキーの名前からUIの文脈を常に推測できるとは限りません。「保存」はボタン、割引、または名詞である可能性があり、適切な権限翻訳はほとんどの言語で異なります。約3ワード未満の文字列については、AIの下書きを出発点として扱い、スクリーンショットやコメントを追加し、リリース前にその言語をレビュー担当者に回送してください。

お探しの回答は見つかりませんでしたか?ローカリゼーションの専門家に相談する

1つの出典ファイルからすべてのロケールを出荷する

Smartcatをお使いのJSON翻訳ツールとしてご利用ください。en.jsonをアップロードすれば、キー、プレースホルダー、およびネスト化を維持したまま、他のすべてのロケールをダウンロードできます。ご自身のロケールファイルの一つで確認するか、クレジットカード不要の15,000Smartwords付き15日間無料トライアルをお試しください。