LangUtils.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import zh from '../i18n/zh-CN.js'
  2. import en from '../i18n/en-US.js'
  3. import Constants from '../utils/Constants';
  4. module.exports = {
  5. //初始化语言设置。在 app.js 里调用这个方法。
  6. initLang() {
  7. //先获取是不是已存在语言的设置
  8. let lang = wx.getStorageSync('lang')
  9. if (!lang) {
  10. //如果不存在,设置默认语言为中文
  11. this.setLang(Constants.lang.langCN)
  12. }
  13. },
  14. //设置语言
  15. setLang(lang) {
  16. try {
  17. wx.setStorageSync('lang', lang)
  18. } catch (e) {
  19. console.log('设置语言失败', e)
  20. }
  21. },
  22. //获取语言设置
  23. getLang() {
  24. try {
  25. let lang = wx.getStorageSync('lang')
  26. return lang;
  27. } catch (e) {
  28. console.log('获取语言设置失败', e)
  29. }
  30. },
  31. //获取当前语言下的资源文件
  32. getLangSrc() {
  33. let lang = this.getLang();
  34. if (lang === Constants.lang.langCN) {
  35. return zh;
  36. } else if (lang === Constants.lang.langEN) {
  37. return en;
  38. } else {
  39. return zh;
  40. }
  41. },
  42. //设置 NavigationBarTitle
  43. setNavigationBarTitle(title) {
  44. wx.setNavigationBarTitle({
  45. title: title
  46. })
  47. },
  48. /**
  49. * 设置 tabBar。因为 tabBar 是在 app.json 里写死的,需要使用 wx.setTabBarItem
  50. * 循环设置 tabBar
  51. */
  52. setTabBarLang() {
  53. let tabBarTitles = this.getLangSrc().tabBarTitles;
  54. console.log('tabBarTitles', tabBarTitles)
  55. tabBarTitles.forEach((item, index) => {
  56. console.log(item, index)
  57. wx.setTabBarItem({
  58. index: index,
  59. text: item,
  60. success: (res) => {
  61. console.log('setTabBarItem success', res)
  62. },
  63. fail: (err) => {
  64. console.log('setTabBarItem fail', err)
  65. }
  66. });
  67. });
  68. },
  69. }