2012-08-31 61 views
0

我嘗試在Joomla中創建一個非常簡單的模塊。雖然我的整個代碼是正確的,並且模塊正常工作,但我無法支持I18n功能。Joomla |模塊國際化|新開發者

更具體的,我的模塊目錄是這樣的:

mod_mymodname: 
    languages: 
     en-GB.mod_mymodname.ini 
    mod_mymodname.php 
    mod_mymodname.xml 

,然後在我的mod_mymodname.xml我有代碼:

<?xml version="1.1" encoding="utf-8"?> 
<extension type="module" version="2.5.0" client="site"> 
    <name>MyModName</name> 
    ... Other Options ... 
    <files> 
     <filename module="mod_mymodname">mod_mymodname.php</filename> 
     <filename>mod_mymodname.xml</filename> 
    </files> 
    <languages folder="languages"> 
     <language tag="en-GB">en-GB.mod_mod_mymodname.ini</language> 
    </languages> 
    <config> 
     <fields name="params"> 
      <fieldset name="basic"> 
       <field name="modid" size="50" type="text" label="MODID" description="Description here" /> 
      </fieldset> 
     </fields> 
    </config> 
</extensions> 

和我的EN-GB.mod_mymodname.ini有它的內容

MODID=Module ID 

問題是,在我的管理部分字段標籤有值「MODID」而不是「模塊ID」

有什麼問題嗎?是我的第一個Joomla模塊,我不確定是否一切正確。

注意:該模塊不需要在前端任何翻譯。我只需要I18n的管理部分。

回答

2

確保您在語言文件中提到了MODID的正確文本。

en-GB.mod_mymodname.ini ---> This file was used for declaring the text what we given in that module 
  • 只需添加下面的行EN-GB.mod_mymodname.ini這種語言文件。

MODID = 「模塊ID」

保存和檢查模塊..希望這會工作....

+0

我只是做了,但沒有效果:( –

+0

請檢查語言文件是否添加到該文件夾​​中(管理員/語言/ en-GB /)。如果不是,那麼您必須創建新的語言文件與您在XML文件中提到的名稱相同 – Basith

1

確保你也有EN-GB.mod_mymodname.sys.ini用於翻譯文本從XML來。

我想到了別的東西。似乎有一個已知問題,即只有當語言文件位於主語言文件夾而不是擴展語言文件夾時,才能翻譯來自xml的某些字符串。所以我通常把這兩個地方複製,儘管把擴展文件放在覈心文件夾中被認爲是不好的做法。

1

第一添加module.xml語言標記

<languages folder="languages"> 
    <language tag="fr-FR">fr-FR.mod_mod_mymodname.ini</language> 
    <language tag="fr-FR">fr-FR.mod_mod_mymodname.sys.ini</language> 
</languages> 

然後創建你的模塊語言文件夾 FR-FR.mod_mod_mymodname.ini FR-FR兩個新的文件。mod_mod_mymodname.sys.ini 添加要在.ini文件翻譯像 MOD_MYMODULE_USERNAME文本=「這是我的MOD」

那麼這個常數添加到您的模塊如default.php像
JText文件:: _ ('MOD_MYMODULE_USERNAME')