红框中的句子 Welcome to Your Vue.js App 如果我们想要将其中的 Vue.js 变成随时可以替换时该怎麽办?
上一篇我们介绍的基础用法只适用於文字固定不变的字串,并没有办法处理上面的情况,所以今天我们就是要来分享如何加入插值 (Interpolations) 解决上面的问题以及其他的进阶语法!如果还没有看过上一篇 Vue i18n - 导入 & 基础用法 的朋友可以先看过再回来此篇做阅读,那我们开始罗!
在定义语系档时,如果要表示插值 (Interpolations),Vue i18n 有提供两种方式
{
"title": "Welcome to Your {appName} App"
}
Named interpolation 让我们在定义语系档时可以指定插值的名称,以至於後续在 JavaScript 中可以将 appName 作为参数将值传入 API 中。
所以在 template 的写法会是:
<p>{{ $t('title', { appName: 'Vue.js' }) }}</p>
得到的结果会是:
<p>Welcome to Your Vue.js App</p>
{
"title": "Welcome to Your {0} App"
}
List interpolation 让我们在定义语系档时是以 Array 的 index 来定义插值,所以後续在 JavaScript 中则是将 Array 作为参数传入 API 中。
所以在 template 的写法会是:
<p>{{ $t('title', ['Vue.js']) }}</p>
得到的结果就一样也会是:
<p>Welcome to Your Vue.js App</p>
如果有一个单字字词总是包含在另一个字句中,我们可以将两者链接在一起。
要链接到另一个字句中的方式就是在定义语系档时透过 @:key 将两者链接。
{
"word": {
"app": "App"
},
"title": "Welcome to Your {appName} @:word.app"
}
所以在 template 的写法会是:
<p>{{ $t('title', { appName: 'Vue.js' }) }}</p>
得到的结果会是:
<p>Welcome to Your Vue.js App</p>
在英文语系中,如果这个字词在单独使用的和链接一起使用时有大小写的差异,vue i18n 有提供三种内建的修饰符来帮助我们。
upper
: 将单字中的所有英文字母变成大写lower
: 将单字中的所有英文字母变成小写capitalize
: 将所有单字的第一个字母变成大写{
"homeAddress": "Home address",
"missingHomeAddress": "Please provide @.lower:homeAddress"
}
所以在 template 的写法会是:
<label>{{ $t('homeAddress') }}</label>
<p>{{ $t('missingHomeAddress') }}</p>
得到的结果会是:
<label>Home address</label>
<p>Please provide home address</p>
如果有需要,你也可以自己定义客制化的修饰符
export default createI18n({
locale: 'en',
...
modifiers: {
snakeCase: (str) => str.split(' ').join('_')
}
})
{
"snakeCase": "snake case",
"custom_modifier": "custom modifiers example: @.snakeCase:snakeCase"
}
因为一些进阶语法的格式需求,所以编译器会将以下字符作特殊处理:
{
}
@
$
|
所以如果遇到想要呈现的文字内容有这些字符时,需要用 {''}
将字符包起来。
// 错误
{
"email": "[email protected]"
}
// 正确
{
"email": "example{'@'}gmail.com"
}
今天的分享就到这边,如果大家对我分享的内容有兴趣欢迎点击追踪 & 订阅系列文章,如果对内容有任何疑问,或是文章内容有错误,都非常欢迎留言讨论或指教的!
明天要来分享的是 Vue i18n 主题的第三篇 Pluralization ,那我们明天见!
什麽是 Latch ? 前几篇在 if-else 以及 case 语句时有提到 latch,那什麽是...
在大大们的留言下 好心告诉我在哪边 我终於找到了 原来还要特别去永丰的网站填资料申请才会寄到信箱 今...
为AI而AI 要做AI 专案, 目前潮流下及高层推动, 容易为AI而AI, 以下可以参考 专案规章 ...
前言 那时候找不到完全符合需求的可以直接用或改,所以最後自己写了一个,供大家参考。 根据我爬文,要用...
热线你和我,这是一条情感的线路,属於你和我。 昨天我们认识了 PostMessage,它可以让我们...