index.ts 903 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * @Author: weisheng
  3. * @Date: 2024-01-25 23:06:48
  4. * @LastEditTime: 2024-03-30 11:30:55
  5. * @LastEditors: weisheng
  6. * @Description:
  7. * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/locale/index.ts
  8. * 记得注释
  9. */
  10. import { reactive, ref } from 'vue'
  11. import zhCN from './lang/zh-CN'
  12. import { deepAssign } from '../components/common/util'
  13. type Message = Record<string, any>
  14. type Messages = Record<string, Message>
  15. const lang = ref<string>('zh-CN')
  16. const messages = reactive<Messages>({
  17. 'zh-CN': zhCN
  18. })
  19. export const Locale = {
  20. messages(): Message {
  21. return messages[lang.value]
  22. },
  23. use(newLang: string, newMessage?: Message) {
  24. lang.value = newLang
  25. if (newMessage) {
  26. this.add({ [newLang]: newMessage })
  27. }
  28. },
  29. add(newMessages: Messages = {}) {
  30. deepAssign(messages, newMessages)
  31. }
  32. }
  33. export const useCurrentLang = () => lang
  34. export default Locale