翻訳の管理

ローカリゼーションファイル(Strings)のアップロードとダウンロード

本コンテンツはPhrase Language AIの機械翻訳により、英語から翻訳されています。

ローカリゼーションファイルのアップロード

ファイルをプロジェクトにアップロードすると、そのファイルからすべての新しいリソースが抽出され、プロジェクトに保存されます。アップロードするファイルのファイル形式は、プロジェクトに対して最初に設定されたファイル形式である必要はありません。リソースをグループ化するためにタグが提供されている場合、新しいキーにはそれらのタグが適用されます。

Gettextなどの一部のファイル形式では、コメント、説明、複数形に関する情報など、貴重なメタ情報が追加で提供されます。この情報は可能な限り抽出され、割り当てられたリソースとともに保存されるため、ローカリゼーションファイルで提供されるすべての貴重な情報を後の使用のために保存できます。

ファイルをアップロードするにはいくつかの方法があります。

  • アプリケーション内で、新しいプロジェクトを作成する際、またはプロジェクトページでアップロードを選択する際

  • API経由

  • CLI経由

アップロードオプション

  • Update_translations

    デフォルトでは、新しいコンテンツのみが抽出され、プロジェクト内の既存のキーは削除または更新されません。ファイルをアップロードしてもデータが失われることはありません。既存のデータを上書きする必要がある場合は、Update_translationsオプションを選択して、プロジェクトのリソースをローカリゼーションファイルのコンテンツで置換してください。既存の翻訳は、アップロードされたローカリゼーションファイルのコンテンツで上書きされます。

    このオプションはAPIでも利用可能です。

    備考

    データ損失を防ぐため、ファイルを変更してUpdate_translationsオプションで再度アップロードする前に、Phraseから最新の変更をローカリゼーションファイルにダウンロードしてください。

  • 翻訳キーのプレフィックスを使用

    アップロードする翻訳キー名の先頭に付加する一意の識別子(ファイルパスなど)を入力します。キー名を整理するために、プロジェクトやファイルに関連する意味のあるプレフィックスを使用してください。

    例えば、インポートされたキー hello_world にプレフィックス project_ を付けると、キー project_hello_world になります。

    翻訳キーのプレフィックスにより、キーが既存のものと照合され、異なるプロジェクトやファイル間での衝突が回避されます。

    このオプションは、API および CLI インターフェースでも利用できます。

  • 翻訳キーを作成して更新

    新しいキーを追加し、アップロードされたファイルのコンテンツで既存のキーを上書きします。

  • 原文の一致で翻訳を更新

    プロジェクトのデフォルト言語の既存の原文が、アップロードされた多言語ファイルの原文と一致する場合にのみ、訳文を更新します。

  • 説明を更新

    アップロードされたファイルからキーのすべての説明を更新する必要がある場合は、このオプションを選択します。空欄の説明は、既存の説明を上書きします。説明には、翻訳者向けの追加情報を含めることができ、エディタ 内で個々のキーを識別するのに役立ちます。

  • アップロード タグ<2> をスキップ

    翻訳を整理しておくために、意味のあるラベルを付けてキーに複数のタグを追加します。新しいキーがアップロードタグで自動的にタグ付けされるのを防ぐには、このオプションを選択します。

  • 新規翻訳及び更新された翻訳のためのタグキー

    新しいキーや翻訳が更新されたキーをアップロード時に自動的にタグ付けするには、このオプションを選択します。これは、新規、更新済み、および古い翻訳 Strings を区別するのに役立ち、関連するキーのみが後続の処理対象となるようにします。

    このオプションはAPIでも利用可能です。

  • エンコーディング

    ファイルのエンコーディング(例:UTF-8)を指定するか、自動選択させます(自動選択されたエンコーディングは誤ったエンコーディングになる可能性があり、アップロードを取り消すことで元に戻すことができます)。

  • 校正

    • 検証をスキップ は、翻訳を更新する際にメイン言語以外の翻訳を再度検証する必要を防ぎます。

    • レビュー済としてマーク は、アップロードされたすべての翻訳をレビュー済として扱います。このオプションは、高度なレビューワークフロー が有効になっている場合に使用できます。これは、キーが本番環境へ送信される準備が整っていることを示します。

    • 検証<1>された翻訳は、すべてのアップロード<2>された翻訳を検証済み<3>として扱います。

アップロード<2>ファイルをユーザー<3>インターフェース経由でアップロード<4>}

Stringsでファイルをアップロード<1>するには、以下の手順に従います。

  1. アップロード<1>の前に、ファイルがファイル形式<2>に基づいて正しくフォーマットされていることを確認してください。

  2. プロジェクト<1>から、その他<2>メニューのアップロード<3>ファイル選択<4>}します。

    アップロード<1>ファイルページが開きます。

  3. ファイルを選択<1>をクリックし、ディレクトリからファイルを選択<2>します。

    選択<1>されたファイルがファイル<2>フィールドに追加されます。

  4. ファイルのファイル形式を選択します。

    推奨されるファイル形式が、ファイルタイプに基づいて最初に表示されます。

  5. ドロップダウン一覧<1>から、ファイルコンテンツ<2>の言語<3>を選択します。

    この情報がファイル自体に含まれていない場合は、コンテンツ<2>用の新しい言語<3>を作成<4>するか、既存のものを使用<5>します。

  6. 必要に応じて、新しいキーに割り当てるタグやその他のオプションを指定します。

  7. 保存をクリックします。

    コンテンツ<1>がインポートされ、キーに変換されます。

アップロード<2>の概要

  • アップロード<3>失敗<2>

    ファイルが正常に処理されなかった場合、エラーを軽減するためのヘルプ<1>としてエラーの詳細が提供されます。

  • アップロード<3>成功<2>

    翻訳ファイルの処理が成功した後、アップロード<1>の概要を示すサマリーページが表示され、次へ<2>のステップへのリンクボタンが提供されます。アップロードタグをクリックして、エディタでファイルを開きます。

  • キーを削除

    ローカライズファイルからキーを削除して再度アップロードする際に、誤ってキーが削除されるのを防ぐため、それらのキーは自動的には削除されません。

    それらのキーを削除するには、次の手順に従います。

    1. ファイルをアップロードします。

    2. 削除をクリックし、未言及のキーを削除を選択します。

    3. 選択を確定します。

    未言及のキーとは、今回のアップロードには含まれていないものの、プロジェクトにはまだ存在するキーのことです。それらを削除することで、アップロードされたファイルに含まれていなかったすべてのキーと関連する翻訳がプロジェクトから削除されます。

    未言及のキーを削除する上限は100,000キーです。この上限を超えるプロジェクトでは、未言及のキーを削除オプションは使用できません。

  • アップロードの取り消し

    すべてのアップロードは複数のアクションをトリガーし、プロジェクト内の多くのデータを変更する可能性があるため、アップロードを取り消すことはできません。

    アップロードされたファイルによって(誤って)導入されたキーを削除するには、次の手順に従います。

    1. 影響を受けたアップロードのアップロード概要から、削除をクリックし、作成されたキーを削除を選択します。

    2. 選択を確定します。

    そのアップロードによって作成されたすべてのキーと関連する翻訳が削除されます。アップロード前に存在していたキーの翻訳は削除されません。個々の翻訳を削除するには、各翻訳のバージョン履歴を使用します。

アップロードアーカイブ

任意のプロジェクトページから、その他メニューのアップロードを選択して、アップロードアーカイブにアクセスします。

アップロードアーカイブには、すべての履歴上のアップロードが可能なすべてのステータスで一覧表示されます。すべてのステータスドロップダウンをクリックして、ステータス(成功失敗、および/または進捗中)でアップロードをフィルタします。特定のアップロードを見つけるには、上部の検索ボックスを使用して名前で検索します。

リストされたアップロードをクリックして、影響を受けるリソースの詳細なアップロード概要にアクセスします。すべての成功したアップロードは、プロジェクトのアクティビティストリームにも表示されます。

ローカリゼーションファイルのダウンロード

言語ファイルは、いつでも、またサポートされている任意のファイル形式でプロジェクトからエクスポートできます。

ファイルは、APIまたはCLIを介してアプリケーションからエクスポートできます。

ファイルは、任意のプロジェクトの言語タブから、それらを選択してダウンロード(複数のファイル)をクリックするか、言語のその他のオプション Open More Menu/ダウンロードボタンをクリックしてダウンロードできます。

ダウンロードオプション

ダウンロードオプションは、ダウンロードウィンドウでファイルをダウンロードする際に表示され、全般詳細エンコーディングのタブがあります。

異なるファイル形式を選択すると、異なるオプションが表示されます。詳細については、特定のファイル形式に関する関連する記事を参照してください。

オプションとして、全般タブのファイル名フィールドを使用してカスタムエクスポートファイル名を指定するか、空白のままにしてシステム定義の名前を生成します。

  • 翻訳キーのプレフィックスを削除

    ファイルのアップロード時に翻訳キーのプレフィックスが追加されている場合は、詳細タブでこのオプションを選択し、エクスポートされた翻訳キーの名前からプレフィックスを削除します。

    1. プレフィックスを入力してすべてのキーをダウンロードし、可能な場合は指定されたプレフィックスを削除します。

      注意

      プレフィックスが削除された後に他のキーが同じ名前を共有している場合、これにより重複するキー名が作成される可能性があります。

    2. 必要に応じて、翻訳キーのプレフィックスをフィルタとして使用を選択して、指定されたプレフィックスを含む翻訳キーのみをダウンロードし、ダウンロードしたファイルからプレフィックスを削除します。

    このオプションは、APIおよびCLIインターフェースでも使用できます。

使用例

ファイル構造の維持

デフォルトでは、翻訳可能なリソースは、元のファイル構造を維持するのではなく、キーと値として保存されます。これにより、1つのファイル形式にロック済の状態になることなく、交換可能なファイル形式が可能になり、タグを使用した柔軟なグループ化も可能になります。

一部のフレームワークや設定では複数の原文ファイルが必要となり、追加の設定も必要になります。

個別のファイルの維持

一般的に、各言語のすべての翻訳は1つのファイルにまとめてください。これにより、リソースのダウンロードが高速化され、堅牢性が向上します。翻訳はプロジェクト内で整理されて保持されるため、小さなファイルを個別に用意する必要はありません。

ローカリゼーションファイルを個別のファイルで維持する必要がある場合は、アップロード時にキーにタグを付け、翻訳されたキーを元のファイルにダウンロードする際にそのタグを参考資料として使用することで、ファイルベースのワークフローを使用できます。キーは複数のタグを持つことができ、複数のファイルに含めることで、再利用と一貫性を確保できます。タグベースのワークフローは柔軟であり、プロジェクトにアップロードすることなく翻訳リソースを再構成できます。

スムーズなワークフローを確保するために、すべてのファイルでキーに一意の名前を付けてください。キーと値に基づくアプローチでは、キーにはすべてのコンテキストで同じ値が割り当てられている必要があります。一部のフレームワークでは、複数のファイルにわたって一意ではないキーの使用が許可されています。Symfonyなどの一部のファイル形式は、メッセージドメインをサポートしています。これらのドメインはファイル名によって検出されます。キーはファイル名ベースのドメインによって自動的にスコープ設定されるわけではありませんが、ファイル内のキーに一意のドメインプレフィックスを使用することで解決できます。

CLI設定の例

CLIを使用する場合や、プロジェクトをリポジトリ(GitHub、GitLab、Bitbucketなど)に接続する場合は、アップロードとダウンロードを管理するための設定ファイルを設定してください。

この例では、プロジェクトには原文ロケール用に意味のある名前が付けられた翻訳ファイルがいくつかあります。例: accounts.en.ymlemails.en.yml など。これらのセマンティック名はタグを通じて管理されます。

.phrase.yml を設定して、ローカライズプロジェクト内のファイルの組織を反映させ、ファイルパスにタグのプレースホルダーを含めることで、それらをStringsプロジェクトのタグにリンクします。

phrase:
  access_token: "3d7e6598d955bfcab104c45c40af1b9459df5692ac4c28a17793"
  project_id: "23485c9c5dfb15d85b32d9c5f3d2hl54"
  file_format: yml
  push:
    sources:
      - file: ./path/to/locales/<tag>.en.yml
        params:
          locale_id: "abcd1234cdef1234abcd1234cdef1234"
  pull:
    targets:
      # accounts
      - file: ./path/to/locales/accounts.<locale_name>.yml
        params:
          tags: accounts
      # emails
      - file: ./path/to/locales/emails.<locale_name>.yml
        params:
          tags: emails

注意

サポートはされていますが、セキュリティ上の理由から、ファイル内にアクセス トークンを保存することは推奨されません。

PHRASE_ACCESS_TOKEN 環境変数を設定する方がより安全です。

パラメータタグは、<tag> プレースホルダーを使用する代わりに、pushセクションで使用することもできます。

この設定により、リポジトリからpushを実行したり同期をトリガーしたりする際に、ファイルに基づいたタグを持つキーが作成されます。pullを実行したりリポジトリへのエクスポートをトリガーしたりすると、タグに基づいてキーがファイルにグループ化されます。

異なる地域、クライアント、またはオーディエンス向けのプロジェクトのローカライズ

製品、ウェブサイト、またはアプリはさまざまな言語に翻訳されますが、場合によっては、ローカライズは選択された言語だけでなく、同一言語内の異なるバージョンを指すこともあります。

以下の場合、さらなる区別が必要になります。

  • 同じ言語が話されている地域で、製品のブランディングが異なる場合。

  • ホワイトラベルソリューションを使用したい異なるクライアントによって製品が使用される場合。

  • シンプル、フォーマル、インフォーマルなどの言語バリエーションが必要な場合。

静的製品のローカライズ

製品が完全に開発されており、めったに更新されない場合は、プロジェクト内に製品の個別のバージョンを存在させることができます。

  • 単一の出力または短期的なプロジェクトの場合:

    ブランチを作成し、プロジェクトの期間中は専らそのブランチで仕事をし、完了したらブランチを削除します。

  • 長期的なプロジェクトの場合:

    既存のプロジェクトの複製を維持します。これにより、クライアントのプロジェクトへのアクセスのみを提供することで、同じ組織内のクライアントを招待して仕事をし、他のプロジェクトを非表示にすることができます。

継続的な更新を伴うプロジェクトのローカライズ

製品が新しいコンテンツ(キー)で絶えず更新される場合、それらの更新を複数のプロジェクトに適用し、同期を維持することは困難です。プロジェクト内で専用の言語を使用して、それらを維持します。

ISO標準(例: en-US)に従う言語コードは一意である必要はないため、同じ言語の多くのバージョンをプロジェクト内で作成できます。固有の言語名を使用して、地域、クライアント、または対象読者を区別します。

セットアップすると、デフォルトのロケールで新しく導入されたキーはすべて、他の言語では未翻訳として表示され、それに応じてローカライズされます。クライアントおよびそのクライアントの翻訳者と仕事をする場合は、ユーザープロファイルまたはプロジェクトのユーザー管理で言語アクセスを更新することにより、そのクライアントの言語バージョンのみを編集できるように具体的に割り当てます。

同じプロジェクト内で、ジョブとレビューワークフローを使用して並行ローカライズプロセスを設定します。この柔軟性は、言語ファイルのアップロードとダウンロード、またはAPIを介した自動化プロセスにも拡張されます。

この記事は役に立ちましたか?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.