Helix Coreサーバ管理者ガイド: 基本 (2019.1)

サーバをUnicode用に構成する

Unicodeサーバとそこにアクセスするワークステーションの設定方法は、今回初めてサーバを起動するか、あるいは既存のUnicodeではないサーバをUnicodeモードへ変換するかにより異なります。以下のセクションではそれぞれの使用例を説明します。

Note

Perforceサービスでは、ジョブの説明へのインデックス、ファイル名とビューマッピングの指定、クライアントワークスペースとラベルその他のオブジェクトの識別に使用される文字列の長さが制限されています。最も一般的な制限は2,048バイトです。基本的なUnicode文字は3バイトを超えて拡張されないため、Unicodeモードのサーバでは、オブジェクト名およびビュー仕様の長さを682文字に制限することにより、どの名前でも制限を超えないように設定することができます。

Unicode用に新規サーバを構成する

Unicode用に新規サーバを構成するには、次のコマンドでサーバを起動します。

$ p4d -xi -r server_root [other options]

このコマンドを実行すると、既存のすべてのメタデータが有効なUTF8であるかどうかが確認され、サーバが現在Unicodeモードで稼働していることを示すプロテクションカウンタunicodeが設定されます。サーバを停止し、再起動するとサーバにUnicodeモードが維持されます。一度サーバをこのモードに変更するとUnicodeではないモードに変更することはできなくなります。

クライアントがサーバに接続すると、サーバの設定の確認を試行し、P4_port_CHARSETの変数を設定して、この設定を反映します。サーバがUnicodeモードではない場合、変数はnoneに設定されます。サーバがUnicodeモードに設定されている場合、変数はautoに設定されます。同様に、クライアントによりP4CHARSETの変数がautoに設定されます。その後クライアントは環境を確認し、必要な文字セットを判断します。

変数 P4_port_CHARSET.p4enviroというファイルに保存されます。デフォルトで、このファイルはユーザのホームディレクトリに保存されます。ファイルの場所を変更するには、変数P4ENVIROに目的のパスを設定する必要があります。

Unicode用に既存のサーバを構成する

既存のサーバをUnicodeモードに変換するには、以下の手順を実行します。

  1. p4 admin stopコマンドを発行してサーバを停止します。
  2. バックアップとリカバリに記述されているとおりサーバチェックポイントを作成します。
  3. サーバ(p4d)を起動し、-xiフラグを指定して、サーバをUnicodeモードに変換します。以下に例を示します。

    p4d -xi -r server_root

    p4d -xi -r server_root

    サーバは、既存のメタデータに有効なUTF-8文字のみが含まれていることを確認してから、unicodeという保護された構成可能変数の作成と設定を行います。次回にサーバを起動すると、この構成可能変数を使用して、サーバがUnicodeモードで実行されます。メタデータを検証して構成可能変数を設定した後、p4dは終了し、次のメッセージが表示されます。

    Server switched to Unicode mode.

    サーバがメタデータ内に無効な文字を検出した場合、次のようなエラーメッセージが表示されます。

    Table db.job has 7 rows with invalid UTF8.

  4. このようなエラーが発生した場合は、無効な文字の特定および修正の手順についてPerforceテクニカルサポートまでお問い合わせください。

通常使用しているサーバルートおよびポートを指定して、p4dを再起動します。これでサーバはUnicodeモードで稼動します。

クライアントがサーバに接続すると、サーバの設定の確認を試行し、P4_port_CHARSETの変数を設定して、この設定を反映します。サーバがUnicodeモードではない場合、変数はnoneに設定されます。サーバがUnicodeモードに設定されている場合、変数はautoに設定されます。同様に、クライアントによりP4CHARSETの変数がautoに設定されます。その後クライアントは環境を確認し、必要な文字セットを判断します。

  • 変数P4_port_CHARSETのデフォルトの場所はオペレーティングシステムにより異なります。
  • UNIXまたはMacでは、変数P4_port_CHARSET.p4enviroというファイルに保存されます。デフォルトで、このファイルはユーザのホームディレクトリに保存されます。ファイルの場所を変更するには、変数P4ENVIROに目的のパスを設定する必要があります。

Windowsでは、変数P4_port_CHARSETはレジストリに保存されます。これをファイルに保存するには、p4 set P4ENVIROコマンドで、この値を保存するファイルのパスを指定します。

サーバエラーメッセージをローカライズする

デフォルトでは、情報およびエラーのメッセージは英語で示されます。Helixサーバメッセージはローカライズが可能です。最善の結果を得るには、Perforceテクニカルサポートまでお問い合わせください。ローカライズプロセスの概要を以下に示します。

  1. Helixサーバメッセージをローカライズするには、
  2. Perforceテクニカルサポートからメッセージファイルを入手します。

    メッセージを目的の言語に翻訳して、メッセージファイルを編集します。各メッセージには2文字の言語コードが含まれます。言語コードを、en(英語)から目的の言語を表すコードに変更します。主要なパラメータまたは名前付きのパラメータ(%depot%のようにパーセント記号や単一引用符の間に指定される)は一切翻訳しないでください。メッセージ内でのパラメータの表示される順序は、変更が可能です。

    原文の英語

    @en@ 0 @db.message@ @en@ 822220833 @Depot '%depot%' unknown - use 'depot' to create it.@

    ポルトガル語への正しい訳文(パラメータの順序の変更に注意):

    @pt@ 0 @db.message@ @pt@ 822220833 @Depot '%depot' inexistente - use o comando 'depot' para criar-lo.@

    目的の言語の指定には、2文字の言語コードであればどのようなものでも(「en」以外であれば)使用することができますが、通常であれば次のページで解説されるような標準的な慣例に従います。

    http://www.w3schools.com/tags/ref_language_codes.asp

    メッセージの多くはHelixサーバのコマンド名が使用されています。コマンド名であるか、説明の文であるか判断できることが求められます。以下に例を示します。

    @Depot '%depot%' unknown - use 'depot' to create it.@

  3. この例では、depot%depot%は翻訳しません。

    次のコマンドを発行し、翻訳されたメッセージをサーバにロードします。

    $ p4d -jr /fullpath/message.txt

  4. このコマンドはサーバルートにdb.messageファイルを作成します。このデータベースファイルはエラーメッセージの表示のためにPerforceサービスが使用します。プロキシも、このdb.messageファイルを使用することができます。詳細については、『Helix Coreサーバ管理者ガイド: マルチサイト展開』のP4Pのローカライズについてのセクションを参照してください。

    Unicodeモードのサーバに対しては翻訳に使用される文字セットはUTF-8でなくてはなりません。このファイルには先頭バイトオーダーマーク(BOM)は含まないでください。

  5. サーバがUnicodeモードではない場合、翻訳ファイルはUTF-8である必要はありません。この場合、翻訳されたメッセージには複数の文字セットを複数回使用することができます。そのような効果は、言語コードのフィールドを文字セット名と関連させることで可能です。例えば、@ru_koi8-r@koi8-rエンコードのロシア語を示し、@ru_iso8859-5@はISQエンコードのロシア語を示します。

    翻訳されたメッセージファイルは、次のジャーナルリカバリコマンドでp4dサーバに読み込むことができます。

$ p4d -r server_root -jr translated_message_file

ローカライズされたメッセージを表示するには、ユーザ側のワークステーション上でP4LANGUAGE環境変数を、翻訳されたメッセージファイル内のメッセージに割り当てた言語コードに設定します。例えば、メッセージがポルトガル語で返されるようにするには、P4LANGUAGEptに設定します。