Joomla 自定义组件翻译兼容性



使joomla3.1自定义组件多语言平台兼容的最佳解决方法是什么?我的意思是我让网站在 3 种语言上运行,我的组件应该能够显示我的组件的翻译项目

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

使用列translation扩展我的项目表将是一个很好的解决方法,每次查询都会考虑到这一点时保持翻译语言代码

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

或者有更好的方法可以做到这一点?

为了使您的组件是多语言的,您需要定义存储在网站管理员和公共端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

最新更新