統合機能

GitHub (Strings)

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

ヒント

Phrase TMSにおけるGitHub 統合機能の詳細については、GitHub (TMS)を参照してください。

Phrase StringsはGitHub リポジトリと統合し、PhraseとGitHub間でローカライズファイルを同期します。

デフォルトでは、リポジトリはGitHub OAuth Appを使用して接続されます。パーソナル アクセス トークンもサポートされており、主にセルフホスト型のインスタンスや、OAuth Appのインストールができない環境を対象としています。

前提条件

  • .phrase.yml 設定ファイルが、監視対象のブランチのルートに存在する必要があります。ファイルは、リポジトリからインポート(pull)またはエクスポート(push)するファイルを定義します。

  • リポジトリには読み取りおよび書き込みアクセスが必要です。

  • 設定ファイルの定義が正しくない場合、エラーが発生する可能性があります。ファイルに少なくとも1つのpushとpull訳文、正しいファイル形式、およびupdate_translationsパラメータの設定があることを確認してください。

  • GitHub OAuth App:

    • GitHub OAuth Appは、リポジトリを所有するGitHub 組織またはアカウントにインストールされている必要があります。

    • リポジトリはOAuth Appのインストールに含まれている必要があります。

    • 訳文の組織またはアカウントでGitHub Appsをインストールまたは承認する権限が必要です。

    • Stringsアカウントを複数のGitHub組織に接続することをサポートしています。統合機能の設定で、同期するGitHub組織を選択します。接続できる組織の数に厳密な制限はありません。

  • GitHub アクセス トークン:

    • Classic トークン

      repoスコープが必要です(パブリックリポジトリと同期する場合はpublic_repo)

    • Fine-grained トークン

      以下の権限が必要です:

      • Contents: 読み取りおよび書き込み

      • プルリクエスト: 読み取りおよび書き込み

    • リポジトリ設定で署名付きコミットが不要であることを確認してください。

  • GitHub で SSO が有効になっている場合は、アクセストークンも有効にする必要があります。

  • phrase_translations ブランチは保護できません。

備考

継続的な改善が行われているため、ユーザーインターフェイスは動画で紹介されているものと完全に同じではない可能性があります。

リポジトリを接続する

設定ファイルが配置されたら、以下の手順に従ってリポジトリを接続します。

  1. メインナビゲーションでAutomationsをクリックし、次にRepo Syncsをクリックします。

    または、IntegrationsページからRepo Syncまでスクロールし、設定をクリックします。

    Repo Syncsページが開きます。Repo Syncs一覧には、閲覧しているユーザーがアクセスできるプロジェクトのみが表示されます。

  2. Add Sync/GitHubをクリックします。

    GitHub sync設定ウィンドウが開きます。

  3. ドロップダウン一覧からプロジェクトを選択します。

  4. 認証方法を選択します:

    • GitHub App (推奨)

      GitHub Appがまだインストールされていない場合は、認証をクリックします。認証は一度実行すれば、複数のリポジトリ同期で再利用できます。

      GitHub Appが既にインストールされている場合は、インストールを管理をクリックして、対象の組織またはアカウントのアプリインストールを完了します。リポジトリへのアクセスは組織またはアカウントレベルで管理され、個々のGitHubユーザーには紐付けられません。

    • 個人用アクセストークン

      APIスコープを持つ個人用リポジトリアクセストークンを提供します。

      個人用アクセストークンを使用する場合、リポジトリへのアクセス権はトークンを作成したGitHubユーザーに依存します。

    • 自分でホストしているインスタンス

      GitHubのセルフホスト型APIエンドポイントと、APIスコープを持つ個人用リポジトリアクセストークンを提供します。

    対象のリポジトリで検証済み(署名済み)コミットが必要な場合は、GitHub App認証方法を使用する必要があります。個人アクセストークンを使用してプッシュされたコミットは署名されないため、同期は「The repository requires verified (signed) commits.」というエラーで失敗します。

  5. GitHub Appを使用する場合は、ドロップダウン一覧から接続されたGitHub組織を選択します。リポジトリ一覧はその選択に基づいて読み込まれます。

  6. ドロップダウン一覧からGitHubリポジトリを選択します。

  7. ドロップダウン一覧から、インポート(プッシュ)およびエクスポート(プル)を行うリポジトリブランチを選択します。これは通常、マスターブランチです。

  8. 必要に応じて、プルリクエストのブランチ名を指定します。空欄のままにすると、デフォルト値phrase-translationsでブランチが作成されます。

  9. 設定を検証をクリックして、認証設定と設定ファイルが正しいことを確認します。

  10. 必要に応じてインポート動作オプションを選択し、新規または更新されたファイルがプロジェクトに自動的にインポートされるタイミングを決定します。

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

    プロジェクトが選択したGitHubリポジトリに接続され、一覧に追加されました。

  12. (オプション)鉛筆アイコンをクリックして、統合機能の名前を変更します。

ファイルをインポート

.phrase.yml設定ファイル内でプッシュコマンドが正しく設定されていることを確認してください。プッシュオプションは、アップロードAPIエンドポイントの場合と同じです。

ファイルをインポートするには:

  • リポジトリ同期ページからプロジェクトを選択し、インポートSync Importをクリックします。

    言語ファイル(設定ファイルでプッシュの原文エントリとして定義されているもの)がプロジェクトにインポートされます。

    デフォルトのロケールが存在する必要があります。

    備考

    インポート時に問題が発生した場合は、CLIクライアントを使用して.phrase.yml設定ファイルをローカルでテストし、エラーメッセージを確認してください。

    必要に応じて、Phraseテクニカルサポートに連絡し、.phrase.yml設定ファイルをサポートリクエストに添付してください。

ファイルのエクスポート

プルコマンドが.phrase.yml設定ファイル内で正しく構成されていることを確認してください。プルオプション(例:include_empty_translationsパラメータ)は、ロケールダウンロードAPIエンドポイントと同じです。

ファイルをエクスポートするには:

  1. リポジトリ同期ページから、プロジェクトを選択し、エクスポートSync Exportをクリックします。

    エクスポートウィンドウが表示されます。

  2. PRブランチフィールドにターゲットブランチを指定します。

    リポジトリ内の最新のファイルが、新しいプルリクエストとして目的のブランチにエクスポートされます。

  3. ファイルがエクスポートされたら、リポジトリでプルリクエストを結合またはクローズし、ブランチを削除できます。

備考

エクスポート時に問題が発生した場合は、CLIクライアントを使用して.phrase.yml設定ファイルをローカルでテストし、エラーメッセージを確認してください。

必要に応じて、Phraseテクニカルサポートに連絡し、.phrase.yml設定ファイルをサポートリクエストに添付してください。

履歴

リポジトリ同期は、各Phrase Stringsプロジェクトの最新のインポートとエクスポートの履歴を保持します。

履歴を表示するには:

  • リポジトリ同期ページから、プロジェクトを選択し、履歴Sync Historyをクリックします。

    プロジェクトのインポートおよびエクスポート履歴が表示されます。履歴内のエクスポートエントリには、対応する結合リクエストへのリンクが含まれています。

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

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.