NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.36k stars 4.77k forks source link

国际化组件(vue-i18n)引入使用报错 #12166

Closed 893949088 closed 2 years ago

893949088 commented 2 years ago

相关平台

微信小程序

小程序基础库: 2.55.1 使用框架: Vue 3

复现步骤

环境: Taro 3.4.16 Vue3 UI NutUI Vue-i18n 9.1.10

在template中使用$t('')报错: image

期望结果

正常显示国际化

实际结果

template使用$('')报错

环境信息

Taro CLI 3.4.13 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 16.14.2 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.19 - E:\User\NPM\node_global\yarn.CMD
      npm: 8.7.0 - C:\Program Files\nodejs\npm.CMD

补充信息

编译成h5 国际化正常, 编译成微信小程序报错

Chen-jj commented 2 years ago

@893949088 麻烦提供一下 demo

893949088 commented 2 years ago

@Chen-jj https://github.com/893949088/taro_test.git

Chen-jj commented 2 years ago

@893949088 点进去报错就清楚了,这个库使用了 new Function,小程序是禁止这样做的。

image
893949088 commented 2 years ago

@Chen-jj 哪个库?vue-i18n? 那小程序端可以国际化的解决方案?

Chen-jj commented 2 years ago

@Chen-jj 哪个库?vue-i18n? 那小程序端可以国际化的解决方案?

或许你可以修改这个库,写一个兼容小程序环境的

1045598742 commented 1 year ago

可以使用https://www.i18next.com/这个库,只不过要自己创建一个响应式