web-dev-qa-db-ja.com

JavaScript内で言語変数を管理する方法は?

私のカスタムコンポーネントでは、各ビューに対して多くの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コードを組み込む最善の方法について、いくつかの指示が必要です。

8
Malaiselvan

Joomlaはこれのための特定の方法を持っています。まず、view.html.phpすべての文字列を追加します。これで翻訳する必要があるもの:

JText::script('VALIDATION_ERROR');

これにより、JavaScriptオブジェクトに文字列が追加され、後で使用できるようになります。

そしてJavaScriptでは、次を使用します:

Joomla.JText._('VALIDATION_ERROR')

現在の言語で一致する翻訳を提供します。このようにして、JSとPHPを別々のファイルに保存できます。

12
Rene Korss