大家新年好,请问微信小程序 如果想做成多语言的,一般用什么语言包?

大家新年好,请问微信小程序 如果想做成多语言的,一般用什么语言包?
一些简单的语言json配置,然后切换不同语言的,这种手动配置的方法,我大概知道了,只是我们公司商品产品很多,请问有什么那种现成的多语言json包可以用的?

阅读 1.7k
3 个回答

你这算是动态内容,没有这种现成的东西,

  • 要么让你们运营上传商品的时候配置好不同的语言的商品名
  • 要么借助ai/各种翻译api,动态把商品名翻译成对应的语言

一. 本地静态内容i18n

  1. 英文

    {
      "confirm": "confirm",
      "cancel": "cancel",
      "cartDeleteTips": "Delete this shopping cart item?",
      "logoutTips": "Do you want to log out?"
    }
  2. 中文

    {
      "confirm": "确认",
      "cancel": "取消",
      "cartDeleteTips": "是否删除此购物车商品?",
      "logoutTips": "是否退出登录?"
    }

可能你也发现了一个叫做cartDeleteTips/logoutTips的key,在你们的需求里没有类似的功能.

所以,本地静态内容i18n的json文件并没有通用的语言包,基本都是开发人员用血汗一条一条自己写的.

二. 请求商品信息的时候,告诉后端当前是哪个语言

至于后端怎么根据前端需要的语言拿到不同语言的商品信息,你完全不用管
  1. 在请求头中携带当前的语言请求后端

    wx.request({
      url: 'https://www.xxxx.com/api/goods/detail', // 开发者服务器接口地址
      data: {
     goodsID: 1, // 请求的商品ID
      },
      header: {
     'Accept-Language': 'zh-CN', // 设置请求头,指定接受中文或其他语言(或者你和后端约定一种其他的方式)
      },
      success: (res) => {
     this.setData({ goodsDetail: res.data })
      },
      fail: (err) => {
     // 请求失败的处理
     console.error('网络请求错误:', err);
      },
    });
    
  2. 渲染wxml

    <view>{{goodsDetail.title}}<view>
    <view>{{goodsDetail.desc}}<view>

找你用的小程序框架,能不能vue通用的i18的国际化包,或者专门的国际化语言支持包,应该都有。
至于你说的现成的json语言包,应该是没有,需要你自己翻译,找产品部门懂外语的看看用词语法的问题。

翻译肯定是要人工翻译的,只不过基础的可能可以借用一些通用翻译。
但是你的需求是商品、产品的翻译。这个肯定就不能借用通用翻译了。

所以我的建议是:

  1. 做一个简单的网页版本的词条翻译后台,比如说:[vue-i18n-generator]一款方便编辑语言包代码的工具。翻译人员维护好之后导出为json文件给到你就行。
  2. 提供一个翻译文本的Excel交给翻译人员,按照列来区分语言,然后写一个Node的脚本读取Excel文件,按照列输出成对应语言的json文件就好了。
推荐问题
宣传栏