.poファイルによる言語ファイルの作成

.poファイルとは?

CS-Cartの言語ファイルは多言語対応を意識してデータベースに保存されています。4.2.4以前のバージョンのCS-Cartでは、addon.xmlにそれぞれの言語変数を用意してインストールしていましたが、新しいCS-Cartでは、WordPress も利用しているgettext による多言語化を採用しています。

これは各言語毎に.poファイルを用意することでアドオンのインストール時に言語変数がインストールされる仕組みです。gettextについて詳しく (Wikipedia)

📘 ヒント

WordPressでは.poファイルを編集し、最終的に .poファイルは msgfmtコマンドにより バイナリファイルにコンパイルされた.moファイルを利用しますが、CS-Cartは.poファイルを使います。

.poファイル編集ツール

.poファイルを編集するにはテキストエディターでも可能ですが、Poeditというツールも無料で利用可能です。

<画像>

.poファイルの保存場所

翻訳を作成した.poファイルは以下のディレクトリに配置します。

/var/langs/[言語コード]/addons/[アドオンID].po
  • 言語コード 英語はen、日本語はjaのようなISO 639-1 の言語コードとなります。

  • アドオンID アドオンのaddon.xmlで定義した識別子です。 例)カタログモード アドオン・・・catalog_mode

.poファイルの構造

こちらに日本語版アドオンの.poファイルを掲載しています。 ダウンロード

.poファイルの構造

ヘッダー部分

以下は英語の.poファイルです。 日本語の場合は "Language: ja_JP\n" となります。ファイルはUTF-8で作成します。

言語変数の記述方法

  • msgctxt 言語の使用場所

  • msgid 言語の識別子

  • msgstr 翻訳

msgctxt 言語変数の使用箇所

  • Addons::name::[アドオンの識別子] - アドオン名を翻訳

  • Addons::description::[アドオンの識別子] - アドオンの説明文を翻訳

例)「高解像度ディスプレイ対応」 アドオン

アドオンの設定関連

  • SettingsSections::[アドオンの識別子]\::[設定セクション名] - アドオンの設定セクション名

    • SettingsOptions::[アドオンの識別子]\::[設定セクション名] - アドオンの設定オプション(変数)名

    • SettingsVariants::[アドオンの識別子]\::[設定セクション名]\::[設定値] - アドオンの設定値

例)「ポイント」アドオン設定用言語ファイル

<画像>

アドオンで使用する言語変数

  • Languages::[言語変数名]

例)「タグ」アドオンが使用する言語変数(テンプレートなどで利用する)

.tplファイルでの利用例

/design/themes/responsive/templates/addons/tags/views/tags/components/tags.tpl

コントローラーでの利用例

/app/addons/tags/controllers/frontend/tags.php

最終更新