## 翻訳可能文字列

### 基本

a-blog cms で文字列を翻訳可能にするには元の文字列を以下のコメントで囲みます。

    <!-- TRANS -->翻訳文字<!-- /TRANS -->

または

    <!--T-->翻訳文字<!--/T-->

### 変数の埋め込み

翻訳対象の中に変数が入ってくる場合は以下のように変数を<!--$1-->で囲みます。変数の数によって$数値を増やしていってください。

ソース

    <!--T-->こんにちは<!--$1-->{lastName}<!--/$1--> <!--$2-->{firstName}<!--/$2-->さん<!--/T-->

POファイル

    msgid "こんにちは$1 $2さん"
    msgstr "Hello, $2 $1"

### 文脈

文字列としては同じでも、文脈により意味が異なるケースがあります。その場合は以下のようにctx=""を振ることで、別のものとして翻訳することができます。

ソース

    <!--T ctx="show"-->表示<!--/T-->
    <!--T ctx="display"-->表示<!--/T-->

POファイル

    msgid "表示_CTX_show"
    msgstr "show"

    msgid "表示_CTX_display"
    msgstr "display"

## POTファイル

各テーマのadmin以下のテンプレートでマークした文字列を抽出します。 pot ダウンロードからPOTファイルをダウンロードして下さい。

## POファイル

ダウンロードしたPOTファイルから各言語に翻訳してPOファイルを生成します。

例: 英語に翻訳

    #: themes/system/admin/top.html
    msgid "ダッシュボード"
    msgstr "Dashboard"

## MOファイル

POファイルからMOファイルを生成してください。 出来上がったMOファイルを以下の場所（デフォルト）に設置してください。

    例 : /lang/en_US/LC_MESSAGES/messages.mo

    /a-blogcms設置ディレクトリ/lang/[言語]_[地域]/LC_MESSAGES/messages.mo

## config.server.php

config.server.php で以下の設定ができます。

    define('GETTEXT_TYPE', 'auto'); // fix|auto
    define('GETTEXT_APPLICATION_RANGE', 'admin'); // admin|login|all
    define('GETTEXT_DEFAULT_LOCALE', 'ja_JP.UTF-8');
    define('GETTEXT_DOMAIN', 'messages');
    define('GETTEXT_PATH', 'lang');

GETTEXT_TYPE

  fix: config.server.phpで指定した言語地域で固定します
  user: ユーザ毎に管理画面より言語地域を設定します。
  auto: ブラウザの言語地域の設定を反映します

  TYPEが"user"だった場合、ユーザ詳細ページのカスタマイズが必要になります。

      <!-- /独自テーマ/admin/user/field.html に用意 -->
      <tr>
      	<th>ロケール<i class="acms-admin-icon-tooltip js-acms-tooltip" data-acms-tooltip="ユーザー毎のロケールを設定します。"></i></th>
      	<td>
      		<select name="locale">
      			<option value="ja_JP.UTF-8"{locale:selected#ja_JP.UTF-8}>日本語</option>
      			<option value="en_US.UTF-8"{locale:selected#en_US.UTF-8}>English</option>
      		</select>
      		<input type="hidden" name="user[]" value="locale" />
      	</td>
      </tr>

GETTEXT_APPLICATION_RANGE

  admin: adminディレクトリ以下（管理ページ）のみ翻訳します
  login: ログインしている時のみ翻訳します
  all: すべてのページを翻訳対象にします

GETTEXT_DEFAULT_LOCALE

  基本の言語地域を設定します。GETTEXT_TYPEが固定だった場合やブラウザの言語地域のmoファイルが見つからない場合にこの言語地域が使用されます。

GETTEXT_DOMAIN

  gettextのグローバルドメインを設定します。（デフォルト: messages）

GETTEXT_PATH

  ドメインへのパスを設定します。（デフォルト: lang）