2013-09-23 100 views
4

什麼是最好的解決方案,以使joomla3.1自定義組件多語言平臺兼容?我的意思是我有3種語言運行的網站,我的組件應該能夠證明我的組件的翻譯項目joomla自定義組件翻譯compability

realestates 

    --realestate(items) - en-EN 
    --realestate(items) - de-DE 
    --realestate(items) - cn-CN 

將是一個很好的解決方法,以延長我的項目表列translation這使翻譯語言代碼每次查詢會考慮到這一點

select * item from realestets where translation = 'en-EN' 

或者有更好的方法來做到這一點?

回答

3

要使組件成爲多語言,您需要定義存儲在網站管理員和公共端的language文件夾中的語言文件。這些語言文件是.ini文件,應該爲您要包含的每種語言定義這些文件。所以,如果你英語和荷蘭語文件.ini文件應:

/language/en-GB/en-GB.com_yourcom.ini

/language/nl-NL/nl-NL.com_yourcom.ini

然後每個字符串應該被傳遞給翻譯方法_()(是的,這是一個下劃線)在JText類像這樣:

JText::_("COM_YOURCOM_STRING")其中COM_YOURCOM_STRING只是組件中的一個字符串。

如果您正在翻譯的字符串是大塊文本,我建議使用短字符串描述。

編輯: 對於您的具體情況,我會添加一列translation_id到您的表中的項目存儲。然後創建一個新表3(或4)列,其中翻譯存儲:

id, item_id, (language), translation

在你的組件的XML,你可以添加,產生一個下拉列表來定義您的項目是什麼語言的輸入如果它不是默認語言,它應該在翻譯表中創建一個新條目。

我也建議看看Joomla!在內部管理語言以及Joomfish如何工作!

好資源:

http://docs.joomla.org/Embedding_translatable_strings_in_the_template

http://docs.joomla.org/Specification_of_language_files

http://docs.joomla.org/Language_Guidelines_for_3rd_Party_Extensions

+0

,哪些哪些是動態創建的,你如何翻譯主題的記錄?惠特ini文件我沒有問題,這是行不通 – fefe

+0

你不應該動態生成語言。例如,如果你生成了這樣的東西:我有$ x蘋果,你需要使用'JText :: sprintf()'。 Google:jtext sprintf。然後您將該變量作爲參數傳遞給語言字符串。在語言字符串定義裏面,你可以使用'%d'作爲數字,'%s'作爲字符串。 – Ortix92

+0

也許不清楚我想要什麼。我希望能夠用不同的語言翻譯我的組件的內容。內容由mysql處理。 – fefe