UNPKG

@sejhey/svelte-i18n

Version:

The SejHey i18n SDK for Svelte

29 lines (28 loc) 1.05 kB
import { GetSejHeyCoreHelper } from '@sejhey/core-web'; import { getSejHeyContext } from './Context.js'; import { writable } from 'svelte/store'; const fallback = (key, params, defaultValue) => ''; export function useTranslate() { const context = getSejHeyContext(); const helper = GetSejHeyCoreHelper(context.i18n); // Create writable stores for reactive values const t = writable(helper.getT() || fallback); const currentLanguage = writable(helper.getLanguage() || ''); const changeLanguage = writable((lang) => { helper.setLanguage(lang); }); // Subscribe to provider rerender trigger context.rerender.subscribe(() => { t.set(helper.getT() || fallback); currentLanguage.set(helper.getLanguage() || ''); }); return { t, currentLanguage: currentLanguage, availableLanguages: helper.getLanguages(), changeLanguage: changeLanguage, onLanguageChanged: (callback) => { helper.subscribeLanguageChanged(callback); } }; }