VUE i18n 中长文本段落的国际化
Internazionalization in VUE i18n for long text paragraph
将 VUE i18n 用于长文本段落的最佳方法是什么?
我知道我可以使用反引号 (``) 甚至保留回车符 return 但这是要走的路吗?或者根据区域设置有条件地加载不同的 JSON 文件更好?
您可以在模板中使用以下内容来对某些内容进行国际化:{{ $t('deeply.nested.key') }}
并引用具有超长值的 JSON。如果您的块只需要纯文本,就可以了。
如果您需要添加一些样式、新行、一些条件渲染或除文本以外的任何内容,我建议您使用 component interpolation。它将防止在 JSON.
中出现难看的内联 html/css
在一个完全不同的话题上,确实,延迟加载语言环境也是一个好主意。
这里是关于如何实现它的一小段代码,更多细节可以在 dedicated page.
上找到
// If the language hasn't been loaded yet
return import(/* webpackChunkName: "lang-[request]" */ `@/i18n/messages/${lang}.js`).then(
messages => {
i18n.setLocaleMessage(lang, messages.default)
loadedLanguages.push(lang)
return setI18nLanguage(lang)
}
)
将 VUE i18n 用于长文本段落的最佳方法是什么? 我知道我可以使用反引号 (``) 甚至保留回车符 return 但这是要走的路吗?或者根据区域设置有条件地加载不同的 JSON 文件更好?
您可以在模板中使用以下内容来对某些内容进行国际化:{{ $t('deeply.nested.key') }}
并引用具有超长值的 JSON。如果您的块只需要纯文本,就可以了。
如果您需要添加一些样式、新行、一些条件渲染或除文本以外的任何内容,我建议您使用 component interpolation。它将防止在 JSON.
中出现难看的内联 html/css在一个完全不同的话题上,确实,延迟加载语言环境也是一个好主意。
这里是关于如何实现它的一小段代码,更多细节可以在 dedicated page.
上找到// If the language hasn't been loaded yet
return import(/* webpackChunkName: "lang-[request]" */ `@/i18n/messages/${lang}.js`).then(
messages => {
i18n.setLocaleMessage(lang, messages.default)
loadedLanguages.push(lang)
return setI18nLanguage(lang)
}
)