我在安裝系統插件(在Joomla 2.5中)時顯示一個本地化的字符串真的很難。在xml文件中使用本地化字符串的「正常」方式似乎無效,(請參閱此其他問題:Language based installation description)。joomla(2.5)系統插件安裝時加載語言文件
我現在嘗試了那裏提出的方式,通過安裝腳本顯示描述。這種工作(我可以成功地回顯文本),但是,我也無法在那裏進行本地化 - 調試語言時,它顯示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,因爲我實際上認爲安裝字符串應該在.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>
(約文件夾=「admin」的平方brackes都應該表明,我既沒有這個屬性試過它不會改變任何東西。)。
我該怎麼做,複製到管理語言文件夾?任何具體的延伸,我可以看看這是什麼?使用我上面的xml,他們實際上*會被複制到管理員/語言/ ...文件夾中,但他們只是在安裝過程中未加載。 – codeling
嘗試這樣的: \t \t <語言文件夾= 「管理員」> \t \t <語言標記= 「EN-GB」>語言/ EN-GB.com_contact.ini \t –
Elin
我猜你沒是不是要寫重複的開標籤? – codeling