web-dev-qa-db-ja.com

JLayoutで言語定数が置き換えられない

私が書いているプラ​​グインでJlayoutを使用しようとしていますが、レイアウトファイルの言語定数が置き換えられないことを除いて、すべてが正常に動作します。

レイアウトをレンダリングするための私の呼び出しは次のとおりです。

$layout = new JLayoutFile($layoutname, $layoutpath);
$body = $layout->render($data);

私のレイアウトファイルには次のものが含まれています:

        <th><?php echo Jtext::_('COM_MEMBERSHIPS_FIELD_MEMBERSHIP_LABEL'); ?></th>
        <td><?php echo $displayData['membership']; ?></td>

レンダリング後に$ bodyをダンプすると、次のようになります。

COM_MEMBERSHIPS_FIELD_MEMBERSHIP_LABEL 911 

'911'はフィールドメンバーシップに期待されるデータですが、私は期待しています:

Membership: 911

私はこの問題を数時間追跡してきましたが、何が起こっているのかについての手掛かりを与えるものを見つけることができていないようです。

私が共有できることは、定数が他のビューで適切に置き換えられるため、定数がサイトと管理言語ファイルの両方の.iniファイルにあることです。

私の仮定は、何らかの理由でJlayoutプロセスで言語ファイルが見つからないことです。たとえば、行やそれを含める必要があるものが見つからないなどですが、他に必要なことを示す例は見つかりません。

前もって感謝します、

テリー

1
Irata

返信してから、いくつか確認しました。以下の改行をご覧ください。

プラグインで$this->loadLanguage($this->_name, [path/to/language/directory]);呼び出しを呼び出していますか?

一見すると、Jtext::_()呼び出しにタイプミスがあるように見えます。代わりにJText::_()に置き換えてみてください。

これが機能しない場合:言語デバッグをオンにしましたか?

私が取り組んでいるプラグインでそれをチェックして、それに応じてアップデートを投稿しようとします。


**更新:** Jtext::_()またはJText::_()を呼び出すと、_PLG_MYPLUGIN_CONSTANTS_ areが翻訳されることを確認できます。

だから、私はそれをチェックすることをお勧めします:

  1. 両方言語ファイル拡張のマニフェストファイル(.xml)の言語要素のサブ要素として指定されている)次の値を使用します。
_language/en-GB.plg_system_[your_plugin_name].ini
language/en-GB.plg_system_[your_plugin_name].sys.ini
_
  1. プラグインの$this->loadLanguage()methodで前述の__construct()methodを使用して言語をロードしています
  2. プラグインの翻訳に成功しました定数

お役に立てば幸いです。

ゲズ

0
JoomGuy