0

Joomla 1.5 から 2.5 への JUMI 要素で実行されている小さな Web アプリ (PHP + Javascript) を移植しています。

基本的に 1.5 では、翻訳のために jsJText を使用して、翻訳された文字列を Javascript で使用できるようにしました。いくつかのチュートリアルで私が理解したことから、Javascript での翻訳のサポートが統合されているため、2.5 ではこれがより簡単になるはずです。

いくつかのサイトと Google の結果を確認した後、彼らはほとんど次のように言っています。まず JText::script('key'); を使用して、PHP の JavaScript 言語ストアに文字列を追加します 後で Joomla.JText._('key') または Joomla.JText.strings.key を使用して JavaScript でそれらを取得します。

ただし、これを機能させるにはかなりの問題があります。PHP での翻訳は問題なく機能しますが、Javascript では、正しい翻訳テキストではなく未定義になってしまいます。

私のアプローチと問題を示す小さなスクリーンショットを撮りました。 ここに画像の説明を入力

言語文字列を含む PHP ファイルは、コンテンツを表示するメインの PHP ページに含まれています。これは、ほぼ最初のインクルードです。

私はどこかでばかげた間違いを犯したと確信していますが、正直なところ、一生それを見つけることはできません. 検索する場所の正しい方向に私を向けることができる人なら誰でも大歓迎です.

ありがとうございました。

20130612-編集:

コメントで提案したことについてのもう少しの情報:

  • joomla debuggin を有効にしても解決しませんでした。エラーはありません。
  • バージョン 1.4.5 の Mootools がロードされます。

少し変わったものも試してみました。JText::script 行のリストは、別の PHP ファイルにあります。そのファイルをランダムなモジュールに含めて、そのモジュールを Web アプリと同じページに表示しようとしました。その時点で、それは機能しました。ただし、これは実際には問題の解決策ではなく、かなり汚い回避策です。

ただし、そのテストでは、コード自体に実際の問題がないことを確認しています。どこかが足りないだけです。何が欠けているのか、まだ困惑しています。それが何であるかについての指針はありますか?

20130612-Edit2:

インクルードがランダム モジュールにある場合と、webapp にある場合のページ ソースを比較しました。唯一の違いは、次の Javascript がページに追加されているように思われます。これは、JText::script コードによって生成されるべきだと私は信じています。

    <script type="text/javascript">
      (function() {
        var strings = {"PA_ITEM_BLOWD":"Blow-dryer"...};
        if (typeof Joomla == 'undefined') {
          Joomla = {};
          Joomla.JText = strings;
        }
        else {
          Joomla.JText.load(strings);
        }
      })();
    </script>
4

0 に答える 0