i18n

示例代码

https://github.com/ityuanfeng/i18n-demo

install

1
npm install vue-i18n@9
1
2
3
4
5
6
7
8
9
10
11
12
13
import { createApp } from 'vue'
import { createI18n } from 'vue-i18n'

const i18n = createI18n({
// something vue-i18n options here ...
})

const app = createApp({
// something vue options here ...
})

app.use(i18n)
app.mount('#app')

Start

方式一

列表的形式,{0},{1},以下标作为占位符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script>
const i18n = createI18n({
locale: 'ja',
fallbackLocale: 'en',
messages: {
en: {
message: {
hello: 'hello world {0}'
}
},
ja: {
message: {
hello: 'こんにちは、世界 {0}'
}
}
}
})
</script>

<template>
<h1>{{ $t('message.hello',['name']) }}</h1>
</template>

方式二

以键值对的形式,key为占位符

1
2
3
4
5
6
7
8
9
10
11
12
<script>
const messages = {
en: {
message: {
hello: '{msg} world'
}
}
}
</script>
<template>
<p>{{ $t('message.hello', { msg: 'hello' }) }}</p>
</template>

方式三

Link,引入其他的对象。

1
2
3
4
5
6
7
8
9
const messages = {
en: {
message: {
the_world: 'the world',
dio: 'DIO:',
linked: '@:message.dio @:message.the_world !!!!'
}
}
}
  • @:message.dio = DIO:
  • @:message.the_world = the world
    1
    2
    <p>{{ $t('message.linked') }}</p>
    <p>DIO: the world !!!!</p>

i18n
https://yifengtingyu.cn/2024/05/03/i18n/
作者
依风听雨
发布于
2024年5月3日
许可协议