システムプラグイン(Joomla 2.5)のインストール中に、ローカライズされた文字列を表示するのに非常に苦労しています。xmlファイルにローカライズされた文字列を使用する「通常の」方法は機能していないようです(この他の質問:言語ベースのインストールの説明を参照してください)。
ここで提案されている方法を試して、インストールスクリプトを介して説明を表示しました。この種の動作(テキストを正常にエコーできます)、ただし、そこにローカライズすることもできません。言語をデバッグすると、plugin.sys.iniがまだロードされていないことが示されます。ファイルを手動でロードしようとしましたが、プラグイン言語ファイルをロードできませんでした。これは私がこれまでに得たものです(setupscripts.phpという名前のファイルで):
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
class plgsystemmyplgnameInstallerScript {
static function loadLanguage() {
$lang =& JFactory::getLanguage();
$lang->load('plg_system_myname', JPATH_ADMINISTRATOR);
}
function install($parent)
{
self::loadLanguage();
echo JTEXT::_("PLG_MYNAME_TEST_TEXT");
}
function uninstall($parent)
{
self::loadLanguage();
echo JText::_('PLG_MYNAME_UNINSTALL_TEXT');
}
function update($parent)
{
self::loadLanguage();
echo JText::_('PLG_MYNAME_UPDATE_TEXT');
}
function preflight($type, $parent) {}
function postflight($type, $parent) {
self::loadLanguage();
echo JText::_('PLG_MYNAME_INSTALL_TEXT');
}
}
しかし、私は??PLG_MYNAME_TEST_TEXT??しか取得しません ?? PLG_MYNAME_INSTALL_TEXT ?? (言語デバッグがオンになっている)インストール中...奇妙なことに、ページ下部の「未翻訳の文字列」の下にある言語デバッグ機能には「なし」と表示されます(試行されたが失敗した場合は疑問符が表示されます)翻訳???)。
それのいくつかのバリエーションを試しました(プラグイン名の最後に.sysを付けて、セットアップ文字列は2番目のパラメーターなしで.sys.iniファイルにあるべきだと実際に思っているので(デフォルトのまま)、運がない-エラーはありません、ログには何もありません(実際、私のログファイルは存在しません。おそらくまだエントリがありませんか?Joomlaでログレベルを設定できますか?)しかし、ファイルがロードされることはありません(「ロードされた言語ファイル」では何も変更されません) 。
言語を正しくロードする方法を知っている人はいますか?
セットアップ中に言語をロードするときに考慮すべき特別なことはありますか?言語の読み込みに失敗してもエラーメッセージが表示されないのはなぜですか?インストール中に言語ファイルを認識させるために、言語ファイルを特別な場所にインストールする必要がありますか?私の現在のxmlは次のようになります:
<extension version="2.5" type="plugin" group="system" method="upgrade">
<name>PLG_MYNAME</name>
<!-- ... author, copyright, version, .. -->
<scriptfile>setupscripts.php</scriptfile>
<files>
<filename plugin="myname">myname.php</filename>
<filename>setupscripts.php</filename>
<filename>index.html</filename>
<folder>sql</folder>
</files>
<!-- ... install->sql->file ... -->
<!-- ... uninstall->sql->file ... -->
<!-- ... update->schemas->schemapath ... -->
<languages [folder="admin"]>
<language tag="en-GB">en-GB.plg_system_myname.ini</language>
<language tag="en-GB">en-GB.plg_system_myname.sys.ini</language>
<!-- ... other languages ... -->
</languages>
<!-- ... config->fields->fieldset->field ... -->
</extension>
(folder = "admin"の周りの四角い括弧は、この属性がある場合とない場合の両方を試したことを示しているはずです。何も変更されません)。