当前位置:首页 > 技术分析 > 正文内容

国际化方案设计(国际化方案设计案例)

一、背景

公司目前各端的项目小组开发都有属于自己的一套国际化的开发流程。如:

  • java端使用messages.properties来存储国际化的内容。
  • ios端是分模块来存储国际化的内容,如用户模块:UserLanguage.strings。
  • android端是分模块来存储国际化的内容,如在模块下的目录创建各个语言的strings.xml。
  • web端是分页面来存储国际化的内容,如创建一个js文件来完成某个页面的国际化工作。

前期以业务开发为主,不管是前端还是后端,都是以快速实现为前提,所以多数只考虑到本端的实现,未考虑到流程的各个环节的衔接。导致现行的流程比较臃肿以及存在大量的人为工作量。现行的流程如下:

二、现状分析与痛点

  1. 目前虽然已经有国际化的能力,但各端的开发不一样,无法统一管理
  2. 现行的国际化流程过长,涉及团队多,而且对接方式与时间都不可控
  3. 各个小组的国际化需要自行实现,存在重复造轮子的情况
  4. 开发人员根据文档来替代其他语言的工作量大
  5. 各个角色关心的范围非常模糊,如产品需要关注什么内容需要翻译,开发人员需要关注各个词条对应各个语言的内容是什么,翻译人员需要关注什么时候来需求,以及什么时候会给开发人员提交翻译内容。存在大量的沟通成本
  6. 现所有的翻译对接点是一份在线的excel,无法灵活应对项目的配置与翻译的标准,也无法更好地维护与查看修改记录
  7. 大量的翻译工作基本都可以通过自动化完成,如调用第三方接口完成翻译。而现状是通过人工来翻译或查询资料(如通过google翻译,百度翻译等)来完成。

三、如何解决这些痛点

  1. 优化国际化的开发流程。
  2. 创建国际化后台管理系统(i18n-service、admin后台)
  3. 统一化管理各个端的国际化资源文件。(通过编写脚本完成)
    虽然各端项目组对于国际化有不同的实现,但也存在一些共性的东西。如国际化都是放到一个文件上集中管理,各个文件的内容都是Key-Value结构,不同的是,各端的存放位置与目录结构不一样。而这些共性的东西往往是能自动化处理的切入口。
  4. 使用自动化翻译工具来替代人工翻译,人工只需要校验翻译是否正确即可,解放大量的查询与翻译工作
  5. 通过流程化与自动化的管理来减少开发过程中频繁替换内容的工作,避免过大的工作量以及人为的原因带来的替换失误。
  6. 通过流程化来规范各个角色的工作范围,使产品人员只关注产品成果,开发人员只关注开发内容,翻译人员只关注翻译。

优化后的流程如下:

四、方案设计

1、总体架构

2、数据结构

3、脚本处理时序图

4、词条上传处理逻辑

4.1、上传时序图

4.2、上传处理逻辑(以java为例)

5、词条的导出与导入

6、客户端的实时加载

7、版本的发布与回滚

五、功能性目标

  1. 支持脚本工具扫描开发文件,并成功上传到i18n-service上
  2. i18n-service支持自动化翻译与校对翻译内容
  3. 支持翻译人员在后台进行词条国际化的确认与翻译工作
  4. 支持翻译人员上传与下载翻译内容
  5. 支持各个阶段的钉钉通知,如开发人员上传完词条通知、版本发布通知,回滚通知
  6. 完成产品需求文档中所有功能

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3681.html

标签: java 国际化
分享给朋友:

“国际化方案设计(国际化方案设计案例)” 的相关文章

几个linux发行版使用感受

linux发行版有哪些linux发行版有上千种,但每一种发行版并不是与其它的发行版没任何关系,有些发行版是基于其他发行版制作的。如果乐意,你自己也可以动手制作属于自己的发行版,然后分发给其他人使用,所以非常自由,可选择的非常多。常见的发行版有:RedHat、Ubuntu、OpenSUSE、Gento...

程序员开发必会之git常用命令,git配置、拉取、提交、分支管理

整理日常开发过程中经常使用的git命令![送心]git配置SSH刚进入项目开发中,我们首先需要配置git的config、配置SSH方式拉取代码,以后就免输入账号密码了!# 按顺序执行 git config --global user.name "自己的账号" git config -...

Gitlab之间进行同步备份

目前,我们公司有两个研发团队,分别在北京和武汉,考虑到访问速度的问题,原有武汉的研发环境在近端部署。也就是北京和武汉分别有两套独立的研发管理环境,虽然这解决了近端访问速度的问题,但是管理上较为分散,比如研发环境备份和恢复就是最重要的问题之一。最近,处于对安全性和合规性的考虑,希望将北京和武汉的源代码...

2024年,不断突破的一年

迈凯伦F1车队不久前拿下了2024年度总冠军,距离上一次还是二十几年前。在此期间,另一领域内,一个充满革新活力的腕表品牌——RICHARD MILLE理查米尔,正不断发展,与F1运动、帆船、古董车展等领域,共享着对速度与极限的无尽向往。RICHARD MILLE的发展与F1车手们在赛道上的卓越表现交...

vue中router常见的三种传参方式

目录:我们在使用vue开发的过程中使用router跳转的时候肯定会遇到传参的情况;一般情况就三种传参是最常见的;那我们就来看看都有那几种传参方式吧!第一种:{ path: '/mall:id', name: 'Mall', component:...

Vue2的16种传参通信方式

前言先直入主题列出有哪些传参方式,下面再通过事例一一讲解。props(父传子)$emit与v-on (子传父)EventBus (兄弟传参).sync与update: (父子双向)v-model (父子双向)ref$children与$parent$attrs与$listeners (爷孙双向)pr...