UNPKG

piral-translate

Version:

Plugin for providing translated messages in Piral.

50 lines 1.81 kB
export function createActions(localizer) { return { selectLanguage(ctx, selected) { ctx.dispatch((state) => { localizer.language = selected; const previousLanguage = state.language.selected; const currentLanguage = selected; // emit this event *after* we changed the state container setTimeout(() => { ctx.emit('select-language', { previousLanguage, currentLanguage, }); }, 0); return { ...state, language: { ...state.language, loading: selected === undefined, selected, }, }; }); }, translate(_, key, variables) { return localizer && localizer.localizeGlobal(key, variables); }, setTranslations(ctx, language, data) { localizer.messages[language] = data.global; for (const item of data.locals) { const api = ctx.apis[item.name]; if (api) { const translations = api.getTranslations(); translations[language] = item.value; api.setTranslations(translations); } } }, getTranslations(ctx, language) { return { global: localizer.messages[language], locals: Object.keys(ctx.apis).map((name) => ({ name, value: ctx.apis[name].getTranslations()[language], })), }; }, }; } //# sourceMappingURL=actions.js.map