用户工具

站点工具


程序:本地化处理

======本地化处理====== [[本地化推进]] =====Overview===== ====流程==== {{:程序:pasted:20170919-102035.png}} ====步骤==== 大的步骤包含: * 标记 * 提取 * 翻译 * 替换 * 验证 {{:程序:pasted:20170919-103243.png}} =====标记===== ====原型标记==== 在原型数据库的结构里面对需要本地化的文本进行定义 定义方式是在 注释字段加上[loc] 的标签 例如: {{:程序:pasted:20170919-103833.png}} 然后自动工具导出到localization_config中,有一个source 标签 类似这样: {{:程序:pasted:20170919-112636.png}} ====图片标记==== 需要在\trunk\UnlimitedTower\Assets\UINew\ 下面 Texture相关的目录中进行文本采集 {{:程序:pasted:20170919-120324.png}} 然后把包含文本的 和 不包含中文的图片 重新归类合图。这样替换英文之后只要原样替换 文字合图就行了。 把 这些合图需要的图片和文本提取出来,文本填写到[[generated:art_message_config]]中 翻译本身就可以按照普通文本方式进行翻译 ====服务器错误码==== 人工提取到[[generated:message_config]]中,开若干个字段 =====提取===== 原型表格:[[generated:localization_config]] 在 docs\原型表\localization_config.xlsm 进行提取操作 {{:程序:pasted:20170919-121041.png}} - 数字列表项目根据source标签,从prototype数据库提取文本索引 - 数字列表项目然后根据 表名+字段名+中文 进行去重复 - 数字列表项目根据 表名+字段名+中文 查找翻译文本,如果命中则摘取 提取的结果长这样 {{:程序:pasted:20170919-121150.png}} ====增量和修改标记==== 如果有必要可以做这样的内容,但是一般来说,检查还未翻译的空白部分,就是增量或者修改的内容 =====翻译===== ====翻译位置==== 填写到[[generated:localization_config]] 的 cht/eng/jpn 字段 ====翻译规则==== * 普通列表项目%num% 之类的符号,中间的内容不能变。并且大小写敏感 * 普通列表项目<color=#F06300FF> 之类的符号,保持不变 * 䶏 这样的文本,是特定的表情符号,也保持不变 ====翻译信息==== 策划需要对翻译者提供基础支持 ====批量翻译==== (仅程序员看) 2013可以直接用这个功能 [[http://blog.csdn.net/LiuYuan_BJTU/article/details/70209193]] 低版本自己写API 我采用了两种方式, youdao的翻译无法指定语言来源,对于控制符翻译不行,一个小时限制1000条 微软bing的翻译格式可以,但是限制更严格,一次只能200条左右。 =====替换===== ====策略==== 在翻译完成之后,对于客户端多语言的支持,有若干种策略。 === 模式 === 在制定策略之前,先有几个模式问题要确认 ^ 模式 ^ 优点 ^ 缺点 ^ 实现方式 ^ | A同一台服务器支持多种语言 | 可以减少部署成本和**测试**成本 \\ 更新比较统一 | 内容维护容易混乱 \\ 任何中文添加都需要同步的英文翻译\\ 用户名问题 | 下放客户端多种的语言包 \\ 根据客户端类型选择何种提示文字 | | B同一台服务器只支持一种语言 | 贴近实际的运营状况,没有必要不同 | 测试的时候需要部署多台服务器 \\ 内容更新的时候需要同步更新 | 在服务器部署的时候,直接用指定语言更新redis | | C客户端支持切换语言 | 减少客户端发布成本和工序 | 美术资源数据多份 \\ 文本数据多份\\ 额外的代码修改工作(5d) | 根据设定的开关或用户选择,采用特定的图片,然后根据语言选用特定的资源 | | D客户端发布时候确定一种语言 | 干净,不受干扰 \\ 数据唯一一份 | 更新测试需要新的客户端\\ 每次出版本有额外的发布流程工作(2h/ver) | 采用不同的product_id \\ 设定build machine ,选择性发布 | === 策略 === * 服务器客户端都按字段还原到表格/图片中 , 支持B D模式 , 一种语言需要一套环境 * 客户端都按字段还原到平行图片中 , C模式, 有冗余数据 * 按字段还原到redis中 , 支持B D模式 , 通过后台工具更新redis, 制作成本最小化, 默认采用这种 * 平行构造Redis, 每一种语言用一个redis,不会相互覆盖, 可以支持A模式 * 客户端替换原来字段读取方式,改为二次索引 支持 A B C D ,但是大量代码改动 // 以往本地化的经验,最大的工作量来自于, 提交翻译之后的文本更新 以及 平行多个版本发布。 \\ 前者需要约束文本的修改,并提供了比较工具帮助翻译减少工作量 \\ 后者可以靠build machine 缓解 // ====原型替换==== 翻译完成进行提交 {{:程序:pasted:20170919-134431.png}} 这个时候只是把多语言文本和中文对照关系保存在localization config 提交成功后,需要在服务器上进行redis替换 {{:程序:pasted:20170919-134513.png}} ====美术替换==== 将对应的文本重新做图,并同名替换 =====测试===== 在服务器切换语言之后,替换对应的美术图片 直接客户端启动,就可以进行预览 繁体: {{:程序:pasted:20170919-124430.png?200}} 英文: {{:程序:pasted:20170919-124441.png?200}}

程序/本地化处理.txt · 最后更改: 2020/04/13 21:17 (外部编辑)