wordsModel.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import * as Localization from "expo-localization";
  2. import { i18n, keys } from "../language";
  3. export default {
  4. state: {
  5. local: "",
  6. },
  7. actions: ({ model, setState }) => ({
  8. getWords() {
  9. const { local } = model();
  10. if (local) {
  11. i18n.locale = local;
  12. } else {
  13. i18n.locale = Localization.locale;
  14. }
  15. const words = {};
  16. keys.forEach(item => {
  17. words[item] = i18n.t(item);
  18. });
  19. setState({ ...words });
  20. },
  21. getWordsStr(key) {
  22. const allWords = model();
  23. return allWords[key];
  24. },
  25. weekWords() {
  26. const {
  27. MONDAY,
  28. TUESDAY,
  29. WEDNESDAY,
  30. THURSDAY,
  31. FRIDAY,
  32. SATURDAY,
  33. SUNDAY,
  34. every,
  35. } = model();
  36. return {
  37. MONDAY,
  38. TUESDAY,
  39. WEDNESDAY,
  40. THURSDAY,
  41. FRIDAY,
  42. SATURDAY,
  43. SUNDAY,
  44. all: every,
  45. };
  46. },
  47. changeLocal() {
  48. const { local } = model();
  49. if (local) {
  50. setState({ local: "" });
  51. } else {
  52. setState({ local: "th" });
  53. }
  54. },
  55. }),
  56. };
  57. // 国际化