教程栏目

joomla中文网出品的官方教程

在本节中,我们将完成让我们的组件支持多语言。

 关于joomla实现joomla的理论,在前面的章节已经介绍了。请查看相关章节的。在这里简单的描述一下,将guestbook进行国际化需要做的步骤。

1,在编码过程中使用相关的规则和函数让组件使用joomla的多语言支持机制。

joomla 对多语言的支持,其实是对字符串的替换。首先在源代码中提供一个带翻译的字符串例如COM_GUESTBOOK_MENU_NAME.然后在各个语言文件 中分别对其进行描述。例如,在zh-CN/zh-CN.com_guestbook.sys.ini有 COM_GUESTBOOK_MENU_NAME =“ZMAX留言板”。在en-GB/en-GB.com_guestbook.sys.ini有 COM_GUESTBOOK_MENU_NAME="ZMAX GuestBook".我们只需要将文件放到正确的位置,joomla多语言机制就会帮我们实现。

需要注意的时,我们会遇到两种需要翻译的语言,一种是XML中的语言。比喻下面的代码:

<metadata>
    <layout title="COM_GUESTBOOK_VIEW_POST_MESSAGE_TITLE">
        <message>
            COM_GUESTBOOK_VIEW_POST_MESSAGE_DESCRIPTION
        </message>
    </layout>
</metadata>

另一种是php源代码中,例如下面的代码:

<div class="title subject">
       <?php echo JText::_('COM_GUESTBOOK_MESSAGE_LABEL_SUBJECT');?>//JText::_()这个函数负责joomla在php代码中的多语言
</div>

很明显,第二种是动态加载的,只要没执行一次系统就会动态的加载一次。也就是,当我们改了语言文件的时候,只需要刷新就可以看见效果。但是第一种却不是这样的。

实际使用中,发现在修改第一种语言文件的时候,需要重新安装整个扩展才能够使用新的语言。具体为什么是这样,还没有弄清楚。

2,增加语言文件夹。

有 了上面的介绍。增加语言文件夹就很自然了。joomla的语言文件是分两部分的,一部分是前台语言,一部分是后台语言。在每一部分,有分为两种语言类型, 一种是.sys.ini (系统使用),一种是.ini(普通使用)。在本组件中,分别在site目录下建立language文件夹,在admin目录下建立language文件 夹。然后放入对应的语言文件即可。例如:zh-CN/zh-CN.com_guestbook.sys.ini,zh- CN.com_guestbook.ini.

3,修改XML文件,让其包含语言文件夹。

做完了上面的部分,剩下的就是告诉安装脚本,叫语言文件拷贝到对应的位置。一个典型的xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="2.5.0" method="upgrade">
        <name>COM_GUESTBOOK</name>
        <!-- The following elements are optional and free of formatting constraints -->
        <creationDate>2013-9-26</creationDate>
        <author>min.zhang</author>
        <authorEmail>这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。</authorEmail>
        <authorUrl>http://www.zmax99.com</authorUrl>
        <copyright>All right @zmax</copyright>
        <license>License</license>
        <!--  The version string is recorded in the components table -->
        <version>0.0.1</version>
        <!-- The description is optional and defaults to the name -->
        <description>COM_GUESTBOOK_DESCRIPTION</description>
        
        <install> <!--  run on install-->
            <sql>
                <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
            </sql>
        </install>
        
        <uninstall>
            <sql>
                <file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
            </sql>
        </uninstall>
        
        <update>
            <schemas>
                <schemapath type="mysql">sql/updates/mysql</schemapath>
            </schemas>
        </update>
        
        <!-- Site Main File Copy Section -->
        <!--
            注意folder属性:这个属性指定了安装包中需要被copy的目录的名称,下面的代码说明需要copysite目录下的文件
        -->
        <files folder="site">
            <filename>guestbook.php</filename>
            <filename>controller.php</filename>
            <filename>index.html</filename>
            <folder>css</folder>        
            <folder>models</folder>
            <folder>views</folder>
            <folder>language</folder>
        </files>
 
        <administration>
                <!-- Administration Menu Section-->
                <menu>COM_GUESTBOOK_MENU</menu>
                
                <!--  Administration Main File Copy Section -->
                <files folder="admin">
                    <folder>models</folder>
                    <folder>sql</folder>
                    <folder>tables</folder>
                    <folder>views</folder>
                    <folder>language</folder>
                    <filename>guestbook.php</filename>
                    <filename>controller.php</filename>
                    <filename>index.html</filename>
                </files>
                
                <languages folder="admin">
                     <language tag="zh-CN">language/zh-CN/zh-CN.com_guestbook.ini</language>
                     <language tag="zh-CN">language/zh-CN/zh-CN.com_guestbook.sys.ini</language>
                </languages>
        </administration>
</extension>

到此,就完成了组件的国际化了。如果要增减语言,只需要在language文件夹下增加对应语言对字符串的翻译就行了。

 

 

评论 (0)

  • 最新在前
  • 最佳在前

第1章 Joomla入门教程

第3章 C计划

第5章 E计划

第6章 H计划

第7章 G计划

第9章 运行环境

第11章 主从与集群

第12章 模块开发

第13章 插件开发

第14章 j2.x组件开发教程

第15章 页面定制教程

第16章 页面构造器

第17章 joomla升级