CakePHP3めも

bake コマンドで作成されるテンプレートファイル内によく

<?= __('Actions') ?>

などと __ で始まる書き方が見受けられます。
変数でも無いのになんじゃこりゃと思っていましたが、多言語対応するための便利な書き方でした。

言語ファイルを作成する

まずは対応表となるファイルを作成します。

src/Locale/ja 以下に default.po ファイルを作成します。
あとはUTF-8のテキストファイルで対応する文言を書いていきます。

msgid "Invalid username or password, try again"
msgstr "ユーザー名かパスワードが間違っています。"

msgid "Actions"
msgstr "操作"

言語設定をする

config/app.php の App => defaultLocale を変更します。

    'App' => [
        'namespace' => 'App',
        'encoding' => env('APP_ENCODING', 'UTF-8'),
        'defaultLocale' => env('APP_DEFAULT_LOCALE', 'ja_JP'), // ここ
        'base' => false,
        'dir' => 'src',
        'webroot' => 'webroot',
        'wwwRoot' => WWW_ROOT,
        // 'baseUrl' => env('SCRIPT_NAME'),
        'fullBaseUrl' => false,
        'imageBaseUrl' => 'img/',
        'cssBaseUrl' => 'css/',
        'jsBaseUrl' => 'js/',
        'paths' => [
            'plugins' => [ROOT . DS . 'plugins' . DS],
            'templates' => [APP . 'Template' . DS],
            'locales' => [APP . 'Locale' . DS],
        ],
    ],

これで完了です。

コマンドで言語ファイルを生成する

コマンドを使用するとソースから拾ってきてくれるみたいです。

$ bin/cake i18n

何も考えずに進めると src/Locale 以下に default.pot ファイルが生成されます。
default.po にリネームして ja 以下に置き直しましょう。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-19 (日) 19:09:18