我一直在寻找一个简单的无插件解决方案。
我使用laravel的字符串作为翻译文件的关键格式。我有fr.json
文件,在这个文件中我有所有文本和它的翻译。
它适用于刀片,但无法在我的.vue
文件中使用它。
请帮助我如何在我的所有.vue文件中使用此fr.json文件。 谢谢。
答案 0 :(得分:1)
如果您想在Vue中获取翻译文件,则必须在javascript中导入它们。
首先。使用当前语言在头部设置元标记:
<meta name='locale' content='{{app()->getLocale()}}' />
然后在您的javascript中为此示例resources/assets/js/app.js
:
var locale = document.head.querySelector('meta[name="csrf-token"]').content;
var lang = {
locale: require('../../lang/' + locale + '.json')
}
也许你可以为默认/后备语言做同样的事情。那么翻译函数将如下所示:
function trans(key, replace) {
var message;
if (lang[locale][key] != undefined) {
message = lang[locale][key];
} else if (lang[defaultLocale][key] != undefined) {
message = lang[defaultLocale][key];
}
if (message) {
// Loop through each item of replace and string replace the message.
return message;
}
return key;
}
我认为这样的事情可行。没有测试它,需要一些调整,但我认为这应该是解决这个问题的想法。