ie8 及以下 引 di18n-translate 相关坑

  bug相关背景:应业务需求,现需要将 jsp文件老项目,运用国际化,经过讨论选用di18n-translate。但是di18n-translate通过npm下载后拿到的di18n.js在现代浏览器运行正常,ie8 及以下无法运行。

  • SCRIPT1028: 缺少标识符、字符串或数字

这个报错一看,很熟悉吧。很多情况下是因为在旧版ie下json最后一项是不允许有逗号的,那么找到对应报错位置,去掉对象末尾的  “ , ”即可。但是,我们找到报错的行列,内容为如下:

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

可以发现,并没有常规的多余逗号或其他,但是 default 作为关键字被命名给对象属性,这里 ie 下不能正常识别。我们可以利用对象另一种方法进行修改这个问题,只需改为如下:

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

再运行会报错如下:

  • SCRIPT1010: 缺少标识符

找到发现还是关键字default的原因

文中另两处一起修改:

_translate2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您想了解关于 Vue 3 如何使用 vue3-18n 吗?那我可以为您提供一些信息。 首先,vue3-18n 是一个支持 Vue 3 的国际化插件,它可以帮助您管理应用程序中的多语言文本。 要使用 vue3-18n,您需要先安装它。您可以使用 npm 安装它,命令如下: ``` npm install vue3-18n ``` 然后,在您的 Vue 3 项目中,您需要在 main.js 文件中导入 vue3-18n,并且在创建 Vue 实例之前,您需要先创建一个 `i18n` 实例,用于管理多语言文本。您可以按照以下代码示例创建 `i18n` 实例: ```javascript import { createApp } from 'vue' import { createI18n } from 'vue3-18n' const i18n = createI18n({ locale: 'en', // 默认语言 messages: { en: { message: { hello: 'Hello World!' } }, zh: { message: { hello: '你好,世界!' } } } }) const app = createApp(App) app.use(i18n) app.mount('#app') ``` 在上面的示例中,我们创建了一个 `i18n` 实例,设置了默认语言为英语,然后定义了两种语言的文本信息。接着,我们通过 `app.use(i18n)` 将 `i18n` 实例注册到 Vue 应用程序中。 现在,您可以在应用程序中使用 `$t` 方法来访问多语言文本了。例如,在组件中,您可以按照以下方式使用 `$t` 方法: ```javascript <template> <div>{{ $t('message.hello') }}</div> </template> ``` 在上面的示例中,我们使用 `$t('message.hello')` 访问了 `i18n` 实例中的 `message.hello` 文本,并将其显示在了组件中。 希望这些信息对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值