私が書いているプラグインで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プロセスで言語ファイルが見つからないことです。たとえば、行やそれを含める必要があるものが見つからないなどですが、他に必要なことを示す例は見つかりません。
前もって感謝します、
テリー
返信してから、いくつか確認しました。以下の改行をご覧ください。
プラグインで$this->loadLanguage($this->_name, [path/to/language/directory]);
呼び出しを呼び出していますか?
一見すると、Jtext::_()
呼び出しにタイプミスがあるように見えます。代わりにJText::_()
に置き換えてみてください。
これが機能しない場合:言語デバッグをオンにしましたか?
私が取り組んでいるプラグインでそれをチェックして、それに応じてアップデートを投稿しようとします。
**更新:** Jtext::_()
またはJText::_()
を呼び出すと、_PLG_MYPLUGIN_CONSTANTS
_ areが翻訳されることを確認できます。
だから、私はそれをチェックすることをお勧めします:
_language/en-GB.plg_system_[your_plugin_name].ini
language/en-GB.plg_system_[your_plugin_name].sys.ini
_
$this->loadLanguage()
methodで前述の__construct()
methodを使用して言語をロードしていますお役に立てば幸いです。
ゲズ