Skip to content

wtgg/translations4drupal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Drupal翻译

Drupal翻译方法

测试环境:php 5.5.17 + Drupal 7.50

安装好Drupal核心包之后,导入官方汉化文件(.po格式) 在配置>地区和语言>翻译>概览 中看到Drupal7.50的官方汉化率为4646/5071 (91.62%) 之后我们在使用Drupal的过程中还会安装启用新的模块。虽然大多数模块都有对应的中文汉化文件。但是汉化率没有100%的。所以还需要我们自己继续翻译。关于Drupal翻译(汉化)的规范请参考:Drupal 简体中文翻译规范指南 Translators’ Guideline 本文介绍几种汉化的方法。

一, 安装启用Localization update模块

为什么先讲这个模块。因为这个模块的作用就是自动检查并且更新导入Drupal官方服务器上的翻译文件。启用它之后可以减轻我们汉化的工作量,而且官方的翻译是经过校验审核的,相对准确。 安装启用Localization update模块之后,在配置>地区和语言>翻译 中会多一个更新的标签。点击手动检查,此模块会自动检查Drupal翻译服务器上对应的汉化文件。当发现更新时,会有提示发现以下模块的更新。点击更新翻译按钮 更新之后的状态: 更新之后的状态 还有一部分没有汉化。接下来就到我们出手的时候了。

二,逐个翻译方法

切换到翻译标签,点击过滤可翻译的字符串,选择未翻译的字符串,过滤。下面会显示未翻译的字符串。 点击 编辑进入翻译界面,例如:
点击保存翻译按钮,即可。 关于翻译中遇到的一些特殊字符,请参考下一节:Drupal翻译中一些特殊字符的含义及处理方法

三,导出-翻译-导入 方法

这里我们需要用到一个翻译软件——poedit
逐个导入方法,效率比较低。可以导出需要翻译的内容,编辑之后,再导入Drupal系统来进行翻译。 点击导出标签,导出.po文件,如图:
导出翻译之后,用poedit软件打开此po文件。如图: 打开po文件之后会提示您设置需要翻译的语言,选择中文,如图
翻译的文本框中输入对应的汉语翻译。可以参考右侧的翻译建议。poedit会记忆您曾保存的翻译,当您翻译同一内容的时候,会出现在右侧翻译建议的第1条,按Ctrl+1快捷键可快速输入翻译。Ctrl+↓进入下一条翻译。 在软件的最下面一栏会显示当前的翻译进度。 当您翻译完成之后,点击保存。切换到导入标签,选择您翻译好的po文件,在模式中选择已有字符串及复数格式将会保留,只添加新字符串。如图:

Drupal翻译中一些特殊字符的含义及处理方法

  1. html标签: 保留html标签及属性值,只翻译标签内容 如<a href=\"@blocks\">Blocks administration page</a> 译为<a href=\"@blocks\">区块管理</a>
    <em>vocabulary</em>译为<em>词汇表</em>
  2. @%的翻译

这3个符号是Drupal的占位符。出现在bootstrap.inc页面的format_string()函数中。(bootstrap.inc页面1788行左右)。3种占位符的含义和用处:

@variable这种占位符,在替换的时候要调用check_plain函数,过滤掉html的特殊字符比如< >等。这个多用于输出内容到drupal的页面。 !variable这个在进行键值替换的时候是完全按照值的原样输出,不做任何修改。这种占位符经常用于输出url和邮件地址。 %variable这个就更复杂些,会替换html的特殊字符同时还会突出加强显示,过程是hook这个theme_placeholder(),默认的hook实现是对值emphasized,即效果值。这个主要用来强调人名,邮件地址等。

翻译方法:保留,并且前后保留一个空格(出现在行首的占位符可以不留空格)。 如:By !author @time ago译为!author 于 @time 之前

其他: 当参数为单数时 为了能顺利被翻译,请使用"1 new comment" 而不要使用 "1 new",不要用在单数字符串中使用@count

About

Drupal翻译

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published