Представляем стройную оболочку для i18next.
Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged, добавленный ресурс и т. д., чтобы иметь возможность отображать наши svelte-компоненты.
Пакет:-
GitHub:-
Реализация выглядит так:
Пакет создает Svelte с возможностью записи i18next и прослушивает события, вызванные любыми обновлениями экземпляра i18next.
Например, если приложение загружает новое пространство имен для своих переводов, пакет svelte_i18next инициирует
i18next.on(‘loaded’, function(loaded) {})
событие.
Проверьте события i18next здесь.
Использование:
i18n.js
import i18next from "i18next"; import { createI18nStore } from "svelte-i18next"; i18next.init({ lng: 'en', resources: { en: { translation: { "key": "hello world" } } } }); export const i18n = createI18nStore(i18next);
Приложение.svelte
<script> import i18n from './i18n.js'; </script> <div> {$i18n.t('key')}} </div>
См. пример использования здесь: Пример Svelte
Вы также можете использовать пространства имен, как если бы вы использовали i18next, и оболочка svelte повторно отобразит переводы на основе предоставленного пространства имен.
import { createI18nStore } from 'svelte-i18next' const i18n = createI18nStore(i18n_instance) i18n.loadNamespaces(['example']) // this triggers the re-render and loads translations from the provided namespace. <div> {$i18n.t(key)} </div>
В стройный? Занимаетесь локализацией?