Представляем стройную оболочку для 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>

В стройный? Занимаетесь локализацией?

Покажи немного любви @svelte-i18next