アドオンの言語変数
HINT
言語変数とその使用方法についてはこちらをご覧ください
言語変数を使用すると、CS-Cartのアドオンの翻訳(多言語化)を行うことが出来ます。 CS-Cartでは言語のテキストは、PHPコードやSmartyテンプレートファイルに直接記述されていません。言語を表示する際には特別な関数が呼び出されます。言語変数の名前が関数に渡され、ユーザーの環境に応じた言語でテキストが返されます。
アドオンの言語変数はPOファイルに保存されています。
POファイルは言語ごとに別々のフォルダにあります:var/langs/[言語コード]/addons/[アドオン名].po
たとえば、「アクセス制御」アドオンの英語翻訳のPOファイルはvar/langs/en/addons/access_restrictions.po
にあります。
POファイルのファイル名は、app/addons/<アドオン名>
にあるaddon.xml
のid
セクションの内容と同じでなければなりません。
この記事では、アドオンのインストール、アンインストール、またはアップグレードの際に言語変数がどのように処理されるかについて説明します。
アドオンのインストール時
アドオンがインストールされると、そのPOファイルが分析されます。 使用可能なすべての言語の言語変数の値がlanguage_valuesテーブルに書き込まれます。 このテーブルは次のフィールドで構成されています。
lang_code
—言語コードname
—プレフィックスなしの言語変数の名前value
—指定された言語コードの言語変数の値
POファイルの値もoriginal_values
テーブルに入れられます。
構造は次のとおりです。
msgctxt
— POファイルのmsgctxt
と同様に、プレフィックス付きの言語変数の名前。msgid
— POファイルのmsgid
と同様に、翻訳元の言語変数の値(原則として英語)。
アドオンの使用時
言語変数が初めて__
関数で使用されるとき、その値はlanguage_values
テーブルから取得され、キャッシュされます。以降、値はキャッシュから取得されます。言語変数は、CS-Cartの汎用キャッシュの一部です。キャッシングメカニズムは、CS-Cartの設定に依存します。
管理者は、管理パネルで言語変数の値を変更できます。これらの変更は、language_values
テーブルの値フィールドに記録されますが、original_values
テーブルは変更されません。
言語変数を管理パネルからのPOファイルにエクスポートする場合、msgtxt
とMSGID
の値はoriginal_values
から、msgStr
の値はlanguage_values
から取得されてエクスポートされます。
アドオンのアップグレード時
アドオンがアップグレードされると、アップグレードパッケージ内のPOファイルが分析されます。新しい言語変数は追加されますが、既存の言語変数は更新されません。これは、CS-Cart自体のアップグレードの際にも適用されます。
アドオンのアップグレードパッケージの作成についての詳細についてはこちらをご覧ください。
アドオンのアンインストール時
アドオンがアンインストールされると、POファイルが分析されます。アドオンのすべての言語変数がoriginal_values
とlanguage_values
がテーブルから削除されます。また、言語キャッシュからも削除されます。
最終更新