サーバをUnicode用に構成する
Unicodeサーバとそこにアクセスするワークステーションの設定方法は、今回初めてサーバを起動するか、あるいは既存のUnicodeではないサーバをUnicodeモードへ変換するかにより異なります。以下のセクションではそれぞれの使用例を説明します。
Perforceサービスでは、ジョブの説明へのインデックス、ファイル名とビューマッピングの指定、クライアントワークスペースとラベルその他のオブジェクトの識別に使用される文字列の長さが制限されています。最も一般的な制限は2,048バイトです。基本的なUnicode文字は3バイトを超えて拡張されないため、Unicodeモードのサーバでは、オブジェクト名およびビュー仕様の長さを682文字に制限することにより、どの名前でも制限を超えないように設定することができます。
Unicode用に新規サーバを構成する
Unicode用に新規サーバを構成するには、次のコマンドでサーバを起動します。
$ p4d -xi -r server_root [other options]
このコマンドを実行すると、既存のすべてのメタデータが有効なUTF8であるかどうかが確認され、サーバが現在Unicodeモードで稼働していることを示すプロテクションカウンタunicode
が設定されます。サーバを停止し、再起動するとサーバにUnicodeモードが維持されます。一度サーバをこのモードに変更するとUnicodeではないモードに変更することはできなくなります。
クライアントがサーバに接続すると、サーバの設定の確認を試行し、P4_
の変数を設定して、この設定を反映します。サーバがUnicodeモードではない場合、変数はport
_CHARSETnone
に設定されます。サーバがUnicodeモードに設定されている場合、変数はauto
に設定されます。同様に、クライアントによりP4CHARSET
の変数がauto
に設定されます。その後クライアントは環境を確認し、必要な文字セットを判断します。
変数 P4_
はport
_CHARSET.p4enviro
というファイルに保存されます。デフォルトで、このファイルはユーザのホームディレクトリに保存されます。ファイルの場所を変更するには、変数P4ENVIRO
に目的のパスを設定する必要があります。
Unicode用に既存のサーバを構成する
既存のサーバをUnicodeモードに変換するには、以下の手順を実行します。
p4 admin stop
コマンドを発行してサーバを停止します。- バックアップとリカバリに記述されているとおりサーバチェックポイントを作成します。
-
サーバ(
p4d
)を起動し、-xi
フラグを指定して、サーバをUnicodeモードに変換します。以下に例を示します。p4d -xi -r
server_root
p4d -xi -r
サーバは、既存のメタデータに有効なUTF-8文字のみが含まれていることを確認してから、server_root
unicode
という保護された構成可能変数の作成と設定を行います。次回にサーバを起動すると、この構成可能変数を使用して、サーバがUnicodeモードで実行されます。メタデータを検証して構成可能変数を設定した後、p4d
は終了し、次のメッセージが表示されます。
サーバがメタデータ内に無効な文字を検出した場合、次のようなエラーメッセージが表示されます。Server switched to Unicode mode.
Table db.job has 7 rows with invalid UTF8.
- このようなエラーが発生した場合は、無効な文字の特定および修正の手順についてPerforceテクニカルサポートまでお問い合わせください。
通常使用しているサーバルートおよびポートを指定して、p4d
を再起動します。これでサーバはUnicodeモードで稼動します。
クライアントがサーバに接続すると、サーバの設定の確認を試行し、P4_
の変数を設定して、この設定を反映します。サーバがUnicodeモードではない場合、変数はport
_CHARSETnone
に設定されます。サーバがUnicodeモードに設定されている場合、変数はauto
に設定されます。同様に、クライアントによりP4CHARSET
の変数がauto
に設定されます。その後クライアントは環境を確認し、必要な文字セットを判断します。
- 変数
P4_
のデフォルトの場所はオペレーティングシステムにより異なります。port
_CHARSET - UNIXまたはMacでは、変数
P4_
はport
_CHARSET.p4enviro
というファイルに保存されます。デフォルトで、このファイルはユーザのホームディレクトリに保存されます。ファイルの場所を変更するには、変数P4ENVIRO
に目的のパスを設定する必要があります。
Windowsでは、変数P4_port
_CHARSET
はレジストリに保存されます。これをファイルに保存するには、p4 set
P4ENVIRO
コマンドで、この値を保存するファイルのパスを指定します。
port
_CHARSETサーバエラーメッセージをローカライズする
デフォルトでは、情報およびエラーのメッセージは英語で示されます。Helixサーバメッセージはローカライズが可能です。最善の結果を得るには、Perforceテクニカルサポートまでお問い合わせください。ローカライズプロセスの概要を以下に示します。
- Helixサーバメッセージをローカライズするには、
-
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.@
-
この例では、
depot
と%depot%
は翻訳しません。次のコマンドを発行し、翻訳されたメッセージをサーバにロードします。
$ p4d -jr /fullpath/message.txt
-
このコマンドはサーバルートに
db.message
ファイルを作成します。このデータベースファイルはエラーメッセージの表示のためにPerforceサービスが使用します。プロキシも、このdb.message
ファイルを使用することができます。詳細については、『Helix Coreサーバ管理者ガイド: マルチサイト展開』のP4P
のローカライズについてのセクションを参照してください。Unicodeモードのサーバに対しては翻訳に使用される文字セットはUTF-8でなくてはなりません。このファイルには先頭バイトオーダーマーク(BOM)は含まないでください。
-
サーバがUnicodeモードではない場合、翻訳ファイルはUTF-8である必要はありません。この場合、翻訳されたメッセージには複数の文字セットを複数回使用することができます。そのような効果は、言語コードのフィールドを文字セット名と関連させることで可能です。例えば、
@ru_koi8-r@
はkoi8-r
エンコードのロシア語を示し、@ru_iso8859-5@
はISQエンコードのロシア語を示します。翻訳されたメッセージファイルは、次のジャーナルリカバリコマンドでp4dサーバに読み込むことができます。
$ p4d -r server_root -jr translated_message_file
ローカライズされたメッセージを表示するには、ユーザ側のワークステーション上でP4LANGUAGE
環境変数を、翻訳されたメッセージファイル内のメッセージに割り当てた言語コードに設定します。例えば、メッセージがポルトガル語で返されるようにするには、P4LANGUAGE
をpt
に設定します。