import * as Localization from "expo-localization"; import { i18n, keys } from "../language"; export default { state: { local: "", }, actions: ({ model, setState }) => ({ getWords() { const { local } = model(); if (local) { i18n.locale = local; } else { i18n.locale = Localization.locale; setState({ local: Localization.locale }); } const words = {}; keys.forEach(item => { words[item] = i18n.t(item); }); setState({ ...words }); }, getWordsStr(key) { const allWords = model(); return allWords[key]; }, weekWords() { const { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, every, } = model(); return { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, all: every, }; }, changeLocal() { const { local, getWords } = model(); const list = ["zh", "th", "en"]; const nowIndex = list.findIndex(item => { return local.indexOf(item) !== -1; }); if (nowIndex !== -1) { setState({ local: list[(nowIndex + 1) % 3] }); } else { setState({ local: Localization.locale }); } getWords(); }, }), }; // 国际化