私のカスタムコンポーネントでは、各ビューに対して多くのJavaScript検証を行います。検証によってさまざまなエラーメッセージがスローされ、それらのメッセージは言語ファイルen-GB.com_mycomp.ini内で構成されます。JavaScriptのインクルードをPHPファイル内に以下のように記述します。
view.html.php
_require_once JPATH_COMPONENT.'/views/send/tmpl/validation.php';
_
validation.php
_function doValidation(){
// do some checking
alert("<?php echo JText::_( 'VALIDATION_ERROR'); ?>");
}
_
このようにすることで、JavaScriptコードがPHPファイルとともにレンダリングされます。
私が考えていたのは、標準の$document->addScript(...)
関数を使用して、.jsファイルがヘッダーの一部としてロードされるようにすることです。インラインPHPステートメントを取得したので、そのようにすることはできません。
注:コンポーネントは言語に依存しないため、.jsファイル内のエラーメッセージをハードコーディングしたくありません。
言語固有の値を持つJavaScriptコードを組み込む最善の方法について、いくつかの指示が必要です。
Joomlaはこれのための特定の方法を持っています。まず、view.html.php
すべての文字列を追加します。これで翻訳する必要があるもの:
JText::script('VALIDATION_ERROR');
これにより、JavaScriptオブジェクトに文字列が追加され、後で使用できるようになります。
そしてJavaScriptでは、次を使用します:
Joomla.JText._('VALIDATION_ERROR')
現在の言語で一致する翻訳を提供します。このようにして、JSとPHPを別々のファイルに保存できます。