只会一点java

java持续学习者,每月一篇博客。罗列出技术栈,慢慢完善,持续学习,总有一天,你会追上甚至超越曾经的大神。
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

一文搞懂国际化(一)背景概览

Posted on 2024-03-11 11:47  只会一点java  阅读(314)  评论(2编辑  收藏  举报

专题目录

一文搞懂国际化(一)背景概览

一文搞懂国际化(二)架构设计

一文搞懂国际化(三)落地实践

一文搞懂国际化(四)总结提升

一、背景

  软硬件产品(互联网、产业互联网等等),在2019年后,特别是2020年后,由于国内行业过于卷(低价、噱头、资本、政策),很多业务都开始从国内转向国外、从新兴业务转向传统业务。笔者经历的就有消费金融、虚拟币平台、母婴社交、农牧养殖。本文的背景就是一个深耕养猪行业多年的产品,做国际化升级的经验总结。

  产品需要适配国际化,会遇到一系列复杂问题。本系列文章是笔者担任某国际化项目的项目经理、架构师岗,经历了从0到1落地全过程,总结而来。市面上的文章,要不只讲业务、要不只讲设计、要不就跳过业务、设计直接讲落地源码,让人看了比较懵。故笔者把这个过程记录下来,期望能给初次介入的小伙伴一些灵感和提前避坑。本专题文章遵循项目的落地过程,包含四部分:背景概览、架构设计、落地实践、总结提升。每部分的主要内容如下:

  • 背景概览:国际化项目背景介绍、项目规划、相关名词解释。
  • 架构设计:概设、详设。
  • 落地实践:框架落地+核心功能点详解(源码级)。
  • 总结提升:总结不足、展望未来。

 阅读本系列文章可解答疑问:

  • 【开荒原理】常见国际化相关词汇开荒?--见3.1 名词解释
  • 【架构设计】常见多语言设计方案?
  • 【架构设计】常见时区改造设计方案?见-3.1 时区改造方案
  • 【项目规划】谁来主导国际化项目?项目经理?产品?架构师?--见2.4 疑问解答
  • 【产品规划】国内国际是否必须两套产品,互相隔离?--见2.4 疑问解答
  • 架构设计】前端、后端是否代码要隔离?
  • 架构设计】如何拆国际化分支、合并回国内分支、何时去拆、何时合并?
  • 【避坑指南】国际化有什么常见的坑?

二、规划

国际化这个事一定要提前做规划,否则顾头不顾尾,中后期会爆发出许多无法承担的后果。画了一张思维导图如下:

建议:按照商务规划、产品运营、研发规划三步骤去做项目整体规划。 对于大多数软件项目来说:遵循业务->产品->技术的流水线作业关系 。 业务是产品的上游、产品是研发的上游、业务的上游是企业战略和资金支撑。所以商务规划很多时候会反过来牵制研发落地方案。想要掌控好带一些创新型项目时,商务规划绝对是第一位的。投入产出对等才是第一等要务。

2.1 商务规划

商务目标:规划投入多少资源,达成什么业务/系统建设目标。---这是项目的首要关注点。避免进入“一元造火箭”的尴尬境地。投入和目标要尽量对等,后续落地才有可能。

2.2 产品运营

根据业务目标和资源规划投入,做产品的整体规划、运营策略规划。--注意:有些人说国际化偏向技术线,不需要产品。这个论点会被打脸。实时证明,国际化项目产品是必不可少的一环

2.3 研发规划

根据提前梳理好的业务目标、产品规划、资源投入,架构师梳理出技术落地的规划。核心就是设计、研发、部署

2.4 疑问解答

1.【项目规划】谁来主导国际化项目?项目经理?产品?架构师?

答:项目经理、产品、架构师都是项目必不可少的角色。项目经理统筹项目、产品管需求,架构师负责技术。记住只要把握住核心: 【产品优先于技术】,项目只是管控过程而已,一切迎刃而解。

2.【产品规划】国内国际是否必须两套产品,互相隔离?

答:一般来说,国际版产品考虑到用户、监管要求不同,不管是APP(应用)还是WEB(域名),肯定产品是要拆开的合适。这也是为了将来区分国内国际化不同功能、不同版本上线提供了方便,产品上是隔离的。当然如果还处于试水初期,短时间共用一个兼容产品,也无可厚非。

三、概念

前两节讲了背景和规划,本节讲解国际化项目的核心概念。

3.1 名词解释

名词

解释

国际化
国际化(internationalization)是设计和制造领域适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
多语言
产品改造,适配各国语言,就叫多语言,通常根据用户习惯设置的语言、或者跟随客户端本地系统设置的语言,未设置就默认的
时区

地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早。为了方便各地区时间换算,国际会议将地球表面按经线从东到西,划成24个区域,并且规定相邻区域的时间相差1小时。当人们跨过一个区域,就将自己的时钟校正1小时(向西减1小时,向东加1小时)。

GMT

Greenwich Mean Time, 格林威治时间1972年之前,格林威治时间(GMT)一直是世界时间的标准。基于地球自转它规定太阳每天经过英国伦敦的皇家格林威治天文台的时间为中午12点。1884年10月国际子午线会议,将格林威治子午线设定为本初子午线,并将格林威治平时 (GMT, Greenwich Mean Time) 作为世界时间标准(UT, Universal Time)。确定了全球24小时自然时区划分,所有时区都以和 GMT 之间的偏移量做为参考。

UTC

Coodinated Universal Time,协调世界时,1972年之后生效。协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。

ISO 国际标准ISO 8601是日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》。典型格式为:2024-01-12T17:30:08+08:00
时间戳(Timestamp) 时间戳,也被称为 Unix 时间戳(Unix Timestamp)。是指格林威治时间GMT1970年01月01日00时00分00秒起至现在的总秒数
夏令时(DST) 夏令时,(Daylight Saving Time:DST),也叫夏时制,又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。

 3.2 核心概念

针对核心/难点概念,讲解清楚

1.国际化

产品推向国外用户使用时的改造过程,一般包含国家地区(行政区划、地图)、时区时间、语言、货币、数字等个性化设置和显示。其中语言、货币、数字、国家地区比较容易改造,时区时间由于涉及的面太广,改造起来十分费劲。

2.夏令时(DST)

夏令时,(Daylight Saving Time:DST),也叫夏时制,又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。全世界有近40%的国家实行夏令时。简单来说,日光节约时制:规定在夏天时钟拨快一小时,冬天再拨回标准时间。举例:美国夏令时为每年3月的第二个星期日至11月的第一个星期日,冬令时为每年11月的第一个星期日至次年3月的第二个星期日。目前世界上美国、欧洲时实行夏令时的。如下图: