多语言应用后台系统大家是怎么处理的
请教一下大家,比如我要开发一个多语言版本的视频app,需要投放到欧美市场,以及越南市场,还有就是国内,大家的后台系统是否要根据不同的语言分开做呢?因为app的内容是需要根据语言来变的。
比如:视频a
在欧美市场中,他的视频封面图就需要展示英文的,在国内展示中文的宣传图,在越南展示越南文;首页轮播图也是这样。
还有就是广告,欧美,越南使用谷歌的广告,在国内就使用国内的广告,比如穿山甲,优量汇之类的。
我之前的准备的做法有:
- 同一个字段设计成多语言版本的,比如标题,title,en_title,vi_title ,但是我感觉这样很有问题,后台系统页面太乱了,还有就是api中万一有个字段需要处理一下,那每个语言的字段都需要处理,扩展起来非常麻烦。
- 使用翻译文件加载,根据对应的语言写入到文件中,获取的时候,根据前台 Accept-Language 标识去找翻译文件进行翻译,缺点是:每条数据都要进行翻译,会导致后期翻译文件过大的问题,首页轮播图,视频封面图等还是没有解决。
- 后台系统根据不同的语言单独做,比如英文版本的一个后台,越南文一个后台,中文一个后台;优点:以上问题都解决了。缺点是:需要维护多个系统后台比较麻烦,并且用户体系变了,因为换库了
大家有啥好做法推荐呢。
本作品采用《CC 协议》,转载必须注明作者和本文链接
i18n+render adapter
拿laravel来说,做个blade-compoent 模板中 <article:image /> 读取HTTP请求上下文的i18n配置。如果项目非常多,那必不可少的后台要有对应功能,甚至是nginx根据ip或语言转发请求到不同语言的站点。
i18n
你要分,数据肯定是要直接存的,至于界面上的用I18N之类的就行了
搞一个仓库专门放多语言,一个页面一个json 文件,key -value,前端代码里面写死 key 前端代码 I18N 插件解决多语言加载问题
要做个后台专门用于翻译多语言,如果能机翻也行,不需要这个系统了
因为你有CMS业务,建议根据语言或者站点分库或分表设计cms业务,在数据表里设置那么多语言字段既臃肿也不利于后续扩展,后台增加语言选项便于切换,请求时前端需要将国家和语言放置在请求头(示例:
Accept-Language:en-US
)传递给后端,根据对应和国家语言处理对应CMS业务。API接openai自动翻译 :joy:
应用是应用,数据的数据。 应用上的多语言就是文字映射,根据语言词库去替换输出。 其实只是很少的地方需要在数据上区分语言,可以在数据表里加语言标识,根据语言去拿数据。