ローカライズと非UTF8文字の表示
Unicode文字を含むすべての文字を表示し、それらの文字をSwarmで正しく処理するには、HelixサーバをUnicodeモード用に設定します。HelixサーバをUnicodeモード用に設定する方法については、『Helix Coreサーバ管理者ガイド』の「Unicode環境の構成と管理」を参照してください。
構成情報を変更しても、構成キャッシュを再ロードしない限り、その構成情報がSwarmで使用されることはありません。構成キャッシュを再ロードすると、変更した構成情報がSwarmで強制的に使用されます。Swarm構成キャッシュを再ロードするには、admin ユーザまたはsuper ユーザでなくてはなりません。[ユーザID]ドロップダウンメニューに移動して[システム情報]を選択し、[キャッシュ情報]タブをクリックしてから[構成の再ロード]ボタンボタンをクリックします。
Swarmでは、ローカライズと一部の非UTF8文字の表示がサポートされています。
ローカライズ
Swarmは、完全にローカライズされています。適切な言語パックをインストールすると、Swarmで複数の言語のユーザをサポートすることができます。
言語パックは、gettext-style
default.po
ファイルとdefault.mo
ファイルで構成されています。これらのファイルは、Swarmのルートディレクトリの言語フォルダ内で、その言語を表す名前の付いたフォルダに保管されています。また、言語パックには、ブラウザ内のUIの翻訳文字列である2つのJavaScriptファイル(locale.js
とlocale.jsgz
)が含まれています。両方のファイルが、SWARM_ROOT/public/build/language
フォルダに表示されます。
以下の例では、言語パックのディレクトリレイアウトを示します。
SWARM_ROOT/
language/
locale/
default.mo
default.po
public/
build/
language/
locale.js
locale.jsgz
特定のローカライズ動作を、SWARM_ROOT/data/config.php
ファイルのtranslator
構成ブロックで設定します。以下に例を示します。
<?php
// this block should be a peer of 'p4'
'translator' => array(
'detect_locale' => true,
'locale' => "",
'translation_file_patterns' => array(),
),
detect_locale
キーにより、Swarmでブラウザのロケールを検出するかどうかを指定します。デフォルト値はtrue
です。値として「false
」を設定すると、ブラウザのロケール検出機能が無効になります。
locale
キーは、Swarmのデフォルトのロケールを指定する文字列です。代わりに、2文字の配列を使用してデフォルトロケールとフォールバックロケールを指定することができます。以下に例を示します。
<?php
// this block should be a peer of 'p4'
'translator' => array(
'locale' => array("en_GB", "en_US"),
),
translation_file_patterns
キーを使用して、独自の言語パックの開発時にLaminasの翻訳インフラストラクチャをカスタマイズすることができます。詳細については、Laminas\I18nを参照してください。
Swarmは、LICENSE.txtファイルに記載されているバージョンのLaminasコンポーネントをサポートしています。それ以降のバージョンのLaminasで導入されたLaminasドキュメントは、Swarmでは動作しません。LICENSE.txtファイルは、Swarmのインストール環境のreadmeフォルダに保管されています。
非UTF8文字の表示
以下の条件すべてに該当する場合、Swarmで非UTF8文字を表示することができます。
- Helix CoreサーバでUnicodeが有効になっていること。
- 文字エンコーディングがSwarmでサポートされていること。
- 文字エンコーディングがtranslator配列に登録されていること。
上記の配列で、複数の文字エンコーディングを指定することができます。一致するエンコーディングが配列内に見つからない場合、Swarmがwindows-1252にフォールバックします。サポートされていない文字エンコーディングや無効な文字エンコーディングが配列に含まれている場合、これらの文字エンコーディングは無視されます。
Swarmでサポートされている文字エンコーディングの詳細については、http://php.net/manual/en/mbstring.supported-encodings.phpを参照してください。
文字エンコーディングを設定するには、SWARM_ROOT/data/config.php
ファイルで以下のブロックを追加します。以下に例を示します。
<?php
// this block should be a peer of 'p4'
'translator' => array(
'non_utf8_encodings' => array('sjis', 'euc-jp', 'windows-1252'),
),
windows-1252は、デフォルトの文字エンコーディングです。これは、常に配列内の最後のエントリでなければなりません。
UTF8文字への変換
非Unicodeが有効になっているHelixサーバにSwarmが接続されている場合、Swarmにより、特殊文字がデフォルトでUTF8文字に変換されます。ANSIファイルとASCIIファイルの場合、差分ビューで一部の特殊文字が正しく表示されないことがあります(または、差分ビューに特殊文字が何も表示されない場合もあります)。Swarmによる特殊文字からUTF8文字への変換を停止し、特殊文字を不明な文字(�)として表示する場合は、utf8_convertの値を「false」に設定します。これにより、UTF8文字への変換機能が無効になります。
SWARM_ROOT/data/config.php
ファイルに以下のコードブロックを追加すると、UTF8文字への変換機能が無効になります。以下に例を示します。
<?php
// this block should be a peer of 'p4'
'translator' => array(
'utf8_convert' => false,
),
この構成可能変数のデフォルト値はtrueです。