CakePHP 3 で使用しているソリューションは次のとおりです。
あなたのレイアウトファイルで(私のものは default.ctp です):
if( isset( $translated_js ) && !empty( $translated_js ) ){
$this->Html->scriptStart($block_render);
echo "var translated_js = " . json_encode( $translated_js ) . ";";
$this->Html->scriptEnd();
}
次に、任意のコントローラーに beforeRender メソッドを追加します。
public function beforeRender(Event $event){
parent::beforeRender( $event );
$translated_js = [
'reinit_map' => __('Reinit map to default'),
];
$this->set( 'translated_js' , $translated_js );
}
このようにして、gettext 命令を使用できます。
JS ファイルでは、翻訳された要素を次のように使用できます。
translated_js.reinit_map
テキストを翻訳してJSに渡す方法を探している人に役立つことを願っています