多语言应用后台系统大家是怎么处理的

请教一下大家,比如我要开发一个多语言版本的视频app,需要投放到欧美市场,以及越南市场,还有就是国内,大家的后台系统是否要根据不同的语言分开做呢?因为app的内容是需要根据语言来变的。

比如:视频a
在欧美市场中,他的视频封面图就需要展示英文的,在国内展示中文的宣传图,在越南展示越南文;首页轮播图也是这样。

还有就是广告,欧美,越南使用谷歌的广告,在国内就使用国内的广告,比如穿山甲,优量汇之类的。

我之前的准备的做法有:

  1. 同一个字段设计成多语言版本的,比如标题,title,en_title,vi_title ,但是我感觉这样很有问题,后台系统页面太乱了,还有就是api中万一有个字段需要处理一下,那每个语言的字段都需要处理,扩展起来非常麻烦。
  2. 使用翻译文件加载,根据对应的语言写入到文件中,获取的时候,根据前台 Accept-Language 标识去找翻译文件进行翻译,缺点是:每条数据都要进行翻译,会导致后期翻译文件过大的问题,首页轮播图,视频封面图等还是没有解决。
  3. 后台系统根据不同的语言单独做,比如英文版本的一个后台,越南文一个后台,中文一个后台;优点:以上问题都解决了。缺点是:需要维护多个系统后台比较麻烦,并且用户体系变了,因为换库了

大家有啥好做法推荐呢。

本作品采用《CC 协议》,转载必须注明作者和本文链接
麦迪文
讨论数量: 13

i18n+render adapter

拿laravel来说,做个blade-compoent 模板中 <article:image /> 读取HTTP请求上下文的i18n配置。如果项目非常多,那必不可少的后台要有对应功能,甚至是nginx根据ip或语言转发请求到不同语言的站点。

4个月前 评论
麦迪文 (楼主) 4个月前

i18n

4个月前 评论
麦迪文 (楼主) 4个月前

你要分,数据肯定是要直接存的,至于界面上的用I18N之类的就行了

4个月前 评论
麦迪文 (楼主) 4个月前

搞一个仓库专门放多语言,一个页面一个json 文件,key -value,前端代码里面写死 key 前端代码 I18N 插件解决多语言加载问题

要做个后台专门用于翻译多语言,如果能机翻也行,不需要这个系统了

4个月前 评论

因为你有CMS业务,建议根据语言或者站点分库或分表设计cms业务,在数据表里设置那么多语言字段既臃肿也不利于后续扩展,后台增加语言选项便于切换,请求时前端需要将国家和语言放置在请求头(示例:Accept-Language:en-US)传递给后端,根据对应和国家语言处理对应CMS业务。

  • 分库设计示例
    // 1 按语言设计 
    # 优点:同一语言的国家可以共用,减少运营操作
    # 缺点:有差异化业务时,拆解比较麻烦
    app_cms_en   // 英文
    app_cms_vi   // 越南语
    // 2 按站点设计 
    # 优点:每个站点业务可以差异化,独立操作
    # 缺点:语言相同的站点,发布统一内容时,运营操作较多
    app_cms_us   // 美国
    app_cms_vn   // 越南
4个月前 评论
麦迪文 (楼主) 4个月前

API接openai自动翻译 :joy:

4个月前 评论
麦迪文 (楼主) 4个月前
xiusin (作者) 4个月前

应用是应用,数据的数据。 应用上的多语言就是文字映射,根据语言词库去替换输出。 其实只是很少的地方需要在数据上区分语言,可以在数据表里加语言标识,根据语言去拿数据。

3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!