format.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * 本地化对象的值
  3. * @param obj
  4. * @param key
  5. */
  6. export const localeFormat = (obj, key) => {
  7. const locale = uni.getLocale()
  8. const value = obj[key]
  9. if (value && typeof value === 'string') {
  10. if (value.includes('~~') && value.includes('**')) {
  11. const s = value.split('~~')
  12. if (locale.startsWith('zh')) {
  13. return s[0]
  14. } else if (locale.startsWith('ru')) {
  15. const s2 = s[2].split('**')
  16. return s2[1]
  17. } else {
  18. const s1 = s[1].split('**')
  19. return s1[1]
  20. }
  21. }
  22. }
  23. return value
  24. }
  25. /**
  26. * 递归对象进行本地化处理
  27. * @param obj
  28. */
  29. export const localeFormatObj = (obj) => {
  30. if (Array.isArray(obj)) {
  31. obj.forEach((item, index) => {
  32. obj[index] = localeFormatObj(item); // 更新数组元素
  33. });
  34. } else if (typeof obj === 'object' && obj !== null) {
  35. Object.keys(obj).forEach(key => {
  36. const processedValue = localeFormat(obj, key);
  37. obj[key] = localeFormatObj(processedValue); // 更新对象属性值
  38. });
  39. }
  40. return obj;
  41. }