Helix Swarm管理者ガイド (2020.1)

ローカライズと非UTF8文字の表示

Swarmでは、ローカライズと一部の非UTF8文字の表示がサポートされています。

ヒント

構成情報を変更しても、構成キャッシュを再ロードしない限り、その構成情報がSwarmで使用されることはありません。構成キャッシュを再ロードすると、変更した構成情報がSwarmで強制的に使用されます。 Swarm構成キャッシュを再ロードするには、admin ユーザまたはsuper ユーザでなくてはなりません。 [ユーザID]ドロップダウンメニューに移動して[システム情報]を選択し、[キャッシュ情報]タブをクリックしてから[構成の再ロード]ボタンをクリックします。

ローカライズ

Swarmは、完全にローカライズされています。適切な言語パックをインストールすると、Swarmで複数の言語のユーザをサポートすることができます。

言語パックは、gettext-style default.poファイルとdefault.moファイルで構成されています。これらのファイルは、Swarmのルートディレクトリの言語フォルダ内で、その言語を表す名前の付いたフォルダに保管されています。 また、言語パックには、ブラウザ内のUIの翻訳文字列である2つのJavaScriptファイル(locale.jslocale.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配列に登録されていること。

上記の配列で、複数の文字エンコーディングを指定することができます。一致するエンコーディングが配列内に見つからない場合、Swarmwindows-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は、デフォルトの文字エンコーディングです。これは、常に配列内の最後のエントリでなければなりません。