管理者向けの導入

管理者向けの導入 -- Translation2_Admin の使用法

Translation2_Admin とは?

Translation2_Admin は、 翻訳の管理 (言語の追加/削除、文字列の追加/削除) を補助するためのクラスです。

新しい言語の追加

この例では、 MDB2 ドライバを使用して新しい言語を追加する [addLang()] 方法を示します。
// データベースに接続するためのパラメータを設定します
$dbinfo = array(
    'hostspec' => 'host',
    'database' => 'dbname',
    'phptype'  => 'mysql',
    'username' => 'user',
    'password' => 'pwd'
);

// デフォルト設定と異なる場合は、
// データベースのテーブル構成を Translation2 に教えます
$params = array(
    'langs_avail_table' => 'langs_avail',
    'lang_id_col'       => 'id',
    'lang_name_col'     => 'name',
    'lang_meta_col'     => 'meta',
    'lang_errmsg_col'   => 'error_text',
    'lang_encoding_col' => 'encoding',
    'strings_tables'    => array(
                            'it' => 'i18n',
                            'de' => 'i18n'
                         ),
    // あるいは、テーブルをひとつしか使用しないのなら
    //'strings_default_table' => 'i18n',
    'string_id_col'      => 'id',
    'string_page_id_col' => 'page_id',
    'string_page_id_col_length' => 50, // db のフィールドサイズ
    'string_text_col'    => '%s'  // '%s' は言語コードに置き換えられます
);

$driver = 'MDB2';

require_once 'Translation2/Admin.php';
$tr =& Translation2_Admin::factory($driver, $dbinfo, $params);

// 新しい言語についての情報を設定します
$newLang = array(
    'lang_id'    => 'en',
    'table_name' => 'i18n',
    'name'       => 'english',
    'meta'       => 'some meta info',
    'error_text' => 'not available',
    'encoding'   => 'iso-8859-1',
);

$tr->addLang($newLang);
これだけです。新しいテーブルを指定した場合はそのテーブルが作成されます。 他の翻訳用のテーブルと同じ名前を指定した場合は、 新しい言語用にそのテーブルが ALTER されます。

言語の更新

この例では、既存の言語を更新する [updateLang()] 方法を示します。
// 新しい言語についての情報を設定します
$langData = array(
    'lang_id'    => 'en',
    'table_name' => 'i18n',
    'name'       => 'English',
    'meta'       => 'some updated meta info',
    'error_text' => 'this text is not available in English',
    'encoding'   => 'iso-8859-15',
);

$tr->updateLang($langData);

既存の言語の削除

ある言語についての翻訳とその情報をすべて削除したい場合は、
$tr->removeLang('fr');
をコールすればいいだけです。 removeLang() には 2 番目のパラメータ ($force) を指定することができます。もし文字列テーブルをすべて削除したい場合 (それが他の言語で使用されているかどうかにかかわらず) は、このようにコールします。
$tr->removeLang('fr', true);
これは、一切のチェックを行わないことに注意しましょう。 自己責任で使用してください ;-)

新しい翻訳の追加

それでは、   add() を使用して新しい翻訳を追加する方法を見ていきましょう。
$stringArray = array(
    'en' => 'sample',
    'it' => 'esempio',
);

// stringID 'smallTest'、pageID 'testGroup' に対応する
// 英語とイタリア語の翻訳を追加します

$tr->add('smallTest', 'testGroup', $stringArray);

翻訳の削除

stringID を使用して、 remove() で翻訳を削除することも可能です。
$tr->remove('smallTest', 'testGroup');