Spatie Laravel 带有 Inertia JS 的翻译加载器
Spatie Laravel Translation Loader with Inertia JS
因为我需要将翻译文本存储在数据库中以便用户可以更新它,所以我使用了 spatie/laravel-translation-loader 包。在我的应用程序中,我结合了 Inertia JS 和 Vue 2。我正在寻找有关如何有效地将翻译数据传递给 Vue 组件的建议。
谢谢。
我使用了以下策略:
我分享了以下翻译数据:
class HandleInertiaRequests extends Middleware
...
public function share(Request $request)
{
...
'trans' => [
'common' => LanguageLine::getTranslationsForGroup(app()->currentLocale(),'common')
],
...
}
...
已创建 trans() 函数和全局混合
export default function(group, key) {
let value = _.get(this.$page.props.trans[group], key);
if (value) {
return value;
} else {
return key;
}
}
import trans from '@/utils/trans';
Vue.prototype.$trans = trans;
Vue.mixin({
methods: {
trans: trans
},
});
在 vue 组件中使用 trans() 作为:
<template>
...
<h1> trans('common', 'dashboard') </h1>
...
</template>
因为我需要将翻译文本存储在数据库中以便用户可以更新它,所以我使用了 spatie/laravel-translation-loader 包。在我的应用程序中,我结合了 Inertia JS 和 Vue 2。我正在寻找有关如何有效地将翻译数据传递给 Vue 组件的建议。
谢谢。
我使用了以下策略:
我分享了以下翻译数据:
class HandleInertiaRequests extends Middleware
...
public function share(Request $request)
{
...
'trans' => [
'common' => LanguageLine::getTranslationsForGroup(app()->currentLocale(),'common')
],
...
}
...
已创建 trans() 函数和全局混合
export default function(group, key) {
let value = _.get(this.$page.props.trans[group], key);
if (value) {
return value;
} else {
return key;
}
}
import trans from '@/utils/trans';
Vue.prototype.$trans = trans;
Vue.mixin({
methods: {
trans: trans
},
});
在 vue 组件中使用 trans() 作为:
<template>
...
<h1> trans('common', 'dashboard') </h1>
...
</template>