Drupal 实现多语言站点的方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-12-05 13:49:56 浏览: 评论:0
文章给各位介绍两种实现多语言站点的方法,一种是利用javascript,另一种基于后面的站点设置中进行相关设置即可,具体操作如下.
javascript实现方法
Drupal 的架构是完全面向多语言的,连Javascript也例外,首先我们来看看Drupal中Javascript是怎么使用的.
Drupal.t('string')
其中string为Drupal需要在需要翻译的多语言字符串。
Drupal Javascript 实现多语言机制.
第一步:Drupal 中所有的Javascript文件都会通过drupal_add_js() function 来加载,仅限type为file的JS文件.
第二步:Drupal加载完所有Javascript文件后,并在render之前,可以通过hook_js_alter钩子来查看Javascript,遍历JS中的Drupal.t 和 Drupal.formatPlural.
第三步:解析完JS文件中的变量后,直接插入数据库locales_source中,可以在后台进行翻译工作.
第四步:全部解析过的JS文件变量存到variables变量javascript_parsed中,并在public文件夹中生成Drupal多语言的language JS文件,并将其加入到header中.
第五步:修改任何JS文件中的多语言变量后,需要rebuilt整个JS缓存,然后重新找到新变量,插入数据库.
注意事项:
出于Drupal性能原因,Drupal会解析JS文件并生成缓存。所以,当您添加或更改一个js文件中的字符串,你必须清除缓存Drupal才能重新找到这个新的字符串,并使其可用于翻译。
Drupal不会自动提取加密过的JS文件,出于这个原因,模块作者应该只包括其JS文件解压后的版本,Drupal的JS压缩功能反正会把这些文件压缩后生成一个版本.
JS文件中定义的多语言string可以通过后台translate 翻译自动找到,提前清空所有缓存,然后手动通过po文件导入或者在后台执行翻译成其他语言.
Drupal Javascript 使用多语言例子:
- var comments = Drupal.t('Comments');
- var commentsOnType = Drupal.t('Comments to @type posts', {'@type': typeName});
- var commentCount = Drupal.formatPlural(count, '1 comment', '@count comments'); //开源软件:phpfensi.com
- var commentCountOnType = Drupal.formatPlural(count, '1 comment on @type posts', '@count comments on @type posts', {'@type': typeName});
OK,总结完了,希望你可以顺利实现JS的多语言网站,另外清空缓存时,最好配备Drush工具,直接drush cc all 就搞定了.
本文的技术范围可以在Drupal6,Drupal7,Drupal8中实现.
方法二:使用站长配置
Drupal 6中包含了Content Translation模块,该模块允许网站内容翻译成不同语言,它和本地化模块,Locale模块,负责管理多语言,并提供多语言网站翻译接口,协同工作,它是创建和维护多语言内容站点的关键,Drupal默认并没有开启该模块功能,要正确开启该模块功能,需要进行以下操作.
在站点构建中的模块管理中启用“Content translation”模块,如果安装列i18n模块,建议同时启用“Content type translation”模块;
在“权限”配置页面权限给适当的用户角色分配“翻译内容”权限;
“语言”的配置页面中新增并启用的所需要的语言;
在管理->内容管理->内容类型页面中,点击要支持多语言功能的内容类型(例如:Page和Story)右侧的“编辑”按钮,然后在“流程设置”折叠框中的“多语言支持”选中“启用,与翻译一起”。
这样在创建或者编辑文章的时候会出现一个语言下拉框和翻译链接,如下图:
点击“翻译”链接进入翻译查看页面可以看到如下页面.
点击旁边“添加翻译”链接或者“编辑”页面就可以进入其他语言内容编辑页面了。
Tags: Drupal多语言 Drupal站点 Drupal
相关文章
- ·Drupal站点换服务器后除主页其他404错误如何解决(2015-05-07)
- ·Drupal中l()函数使用方法详解(2014-11-27)
- ·Drupal核心与模块版本及版本号选择技巧(2014-12-05)
- ·Drupal Schema 模块从现有数据库到hook_schema(2014-12-05)
- ·Drupal Overlay 应用到指定页面2种方法(2014-12-05)
- ·解决Drupal Overlay中margin-top无效问题(2014-12-05)
- ·Drupal 7操作数据库常用sql(更新,删除,查询)(2014-12-05)
- ·Drupal 7自定义表单开发要点与例子(2014-12-05)
- ·使用 Drupal Form Hooks 进行表单自定义修改(2014-12-05)
- ·Drupal Hooks Alter的先后顺序(2014-12-05)
- ·Drupal 7 实现上一篇下一篇的简单方法(2015-02-16)
- ·Drupal 7多站点共用同一个数据库如何配置(2015-04-04)
- ·Drupal如何正确的方式渲染Field(字段)实例(2015-04-04)
- ·总结Drupal电商平台 Commerce Ubercart 比较(2015-04-04)
- ·简单方法修改drupal运行时的php内存(2015-04-04)
- ·Drupal中如何使用JQuery和Ajax(2015-04-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)