当前位置

Drupal中文网站简体版本自动生成一个对应的繁体版本

James Qi 在 2017年3月3日 - 14:14 提交
内容摘要:很久前用MediaWiki网站的时候发现中文Wiki站有一个很方便的简体/繁体转换功能,是MediaWiki自带的,我们用这种办法做了好几个站的繁体版本,还获得了不少港台海外用户来访问。 转用D......

  很久前用MediaWiki网站的时候发现中文Wiki站有一个很方便的简体/繁体转换功能,是MediaWiki自带的,我们用这种办法做了好几个站的繁体版本,还获得了不少港台海外用户来访问。

  转用Drupal后,Drupal有更强大、更通用的多语言支持,但没有中文Wiki站那样的简体/繁体自动转换功能,我们自己也一直没有尝试做这种转换。

  在商量准备做更多的实用查询词典类网站的时候,想到要是Drupal站也有简体/繁体转换这个功能就好了,这两天花了一些时间来尝试,还基本上可以成功!现在记录一些步骤和要点:

  • 在一个现有的中文Drupal站中增加繁体正体语言(管理 » 配置 » 地区和语言);
    批量设置的时候用drush dl drush_language添加drush language命令,然后用drush language-add zh-hant添加;
  • 简体中文依然是默认,English设置为不启用;
    批量设置办法:drush language-disable en;
  • 简体中文的设置“路径前缀语言代码”设置为空;
    批量设置办法:drush language-prefix zh-hans ''
  • 繁体中文的设置“路径前缀语言代码”设置为zh-hant;
    批量设置办法:无需设置
  • “管理 » 配置 » 地区和语言 » 语言”设置“用户界面文本语言检测”,勾选“网址”;
    批量设置办法:drush ev '$negotation = array(  LOCALE_LANGUAGE_NEGOTIATION_URL => 2);language_negotiation_set(LANGUAGE_TYPE_INTERFACE, $negotation);'
  • 配置“网址”的“URL片段确定语言”为“路径前缀”(默认就是这样);
    批量设置办法:无需设置
  • 如果安装了语言更新模块,可以使用“管理 » 配置 » 地区和语言 » 语言”的“更新翻译”功能来添加繁体翻译;
    批量设置办法:drush en l10n_update -y(如果一个系列网站共用翻译库则只安装在一个站)
  • 修改内容类型设置,将“多语言支持”设置为“已启用”(如果是批量导入的内容类型,默认里面内容都是“不区分语种”,可以不改这里);
    批量设置办法:drush vset language_content_type_page 1
  • 查看“内容”,要把“简体中文”内容修改为“不区分语种”,页面数量少可以直接编辑修改,如果页面数量太多可以在数据库中批量修改(UPDATE `node`  SET `language` ='und' WHERE `language` = 'zh-hans';UPDATE `url_alias`  SET `language` ='und' WHERE `language` = 'zh-hans';);
  • 修改“区块”设置,添加“语言切换器(用户界面文本)”都合适的位置。
    批量设置办法:drush sql-query "update block set status='1', region='sidebar_first', weight='-20' where module ='locale' and delta = 'language' and theme = 'responsive_bartik';"

   这样就完成了基本设置,另外还有一个重要工作是修改显示模板,用php来对简体的内容进行转换,这个有点复杂,我是在自建的“中文简体繁体转换的模块”中添加一个转换函数,然后在各个地方调用这个函数(PHP程序请看我另外一篇博文《一个独立可用的中文简体繁体转换PHP程序》)。

  还剩下一些细节,例如:

  • html.tpl.php修改:$head_title, <link rel="alternate" hreflang=...;
    • page.tpl.php修改:对html.tpl.php进行全面转换后,本文件可以不改;
    • node.tpl.php修改:对html.tpl.php进行全面转换后,本文件可以不改;
    • Block的修改:对html.tpl.php进行全面转换后,可以不改;
    • Views的修改:对html.tpl.php进行全面转换后,可以不改;
  • xmlsitemap修改:xmlsitemap.page.inc,<xhtml:link rel="alternate" hreflang=...;
  • robots.txt处理;
  • 自动识别跳转;
  • 百度站长、Google Webmaster Tools添加。

  今天又花了一些时间把我的这个博客网站改为简体/繁体对照的站点了,以后还可以把已经建好的中文简体站点做这样的扩展,新建的站点可以直接从开始就设置为简体/繁体对照。


  补充:已经这样处理的案例:

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符