generated from Seekra/repository-template
Use vue-i18n #68
+17
-1
@@ -24,4 +24,20 @@ export const i18n = createI18n({
|
|||||||
locale: getCurrentLanguage(),
|
locale: getCurrentLanguage(),
|
||||||
fallbackLocale: fallbackLocale,
|
fallbackLocale: fallbackLocale,
|
||||||
messages: {}
|
messages: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const loadedLanguages = new Set();
|
||||||
|
|
||||||
|
export async function loadLanguage (locale) {
|
||||||
|
if (loadedLanguages.has(locale)) {
|
||||||
|
i18n.global.locale.value = locale;
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
const messages = (await import(`./locales/${locale}.json`)).default;
|
||||||
|
|
||||||
|
i18n.global.setLocaleMessage(locale, messages);
|
||||||
|
i18n.global.locale.value = locale;
|
||||||
|
|
||||||
|
loadedLanguages.add(locale);
|
||||||
|
};
|
||||||
+4
-1
@@ -16,11 +16,14 @@ limitations under the License.
|
|||||||
|
|
||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import { i18n } from './i18n';
|
import { i18n, loadLanguage } from './i18n';
|
||||||
|
import getCurrentLanguage from './utils/currentLanguage';
|
||||||
import router from './router'
|
import router from './router'
|
||||||
import './styles/common.css'
|
import './styles/common.css'
|
||||||
import './styles/variables/colors.css'
|
import './styles/variables/colors.css'
|
||||||
|
|
||||||
|
await loadLanguage(getCurrentLanguage());
|
||||||
|
|
||||||
createApp(App)
|
createApp(App)
|
||||||
.use(router)
|
.use(router)
|
||||||
.use(i18n)
|
.use(i18n)
|
||||||
|
|||||||
Reference in New Issue
Block a user