jquery 多语言js方法

发布于:2021-04-24 16:27:32

使用方法:

URL 后面加上 语言参数 ?language=HK

```html
<div class="p-con1 flex" data-lang="lang_1">Too many actions, please try again later.</div>
<div class="p-con1 flex" data-lang="lang_2">System busy. Try again later.</div>
```
```javascript
var language
var defaultLanguageCode = 'EN'
var GLanguage = {
  'EN': {
    "lang_1":"Too many actions, please try again later.",
    "lang_2":"System busy. Try again later.",
  },
  'RU': {
    "lang_1":"Достигнут лимит действий. Повторите попытку позже.",
    "lang_2":"Система занята. Повторите попытку позже.",
  },
  'DE': {
    "lang_1":"Zu viele Aktionen. Bitte später erneut versuchen.",
    "lang_2":"System beschäftigt Bitte später wieder versuchen.",
  },
  'HK': {
    "lang_1":"点击频率太快,请稍后操作",
    "lang_2":"系统繁忙,请稍候再试",
  },
  'TW': {
    "lang_1":"点击频率太快,请稍后操作",
    "lang_2":"系统繁忙,请稍候再试",
  },
  'TH': {
    "lang_1":"ดำเนินการบ่อยเกินไป กรุณาลองอีกครั้งในภายหลัง",
    "lang_2":"ระบบไม่ว่าง กรุณาลองอีกครั้งภายหลัง",
  },
  'VI': {
    "lang_1":"Thao tác quá nhiều lần, vui lòng thử lại sau.",
    "lang_2":"Hệ thống bận, vui lòng thử lại sau.",
  },
  'ID': {
    "lang_1":"Terlalu banyak tindakan, harap coba lagi nanti.",
    "lang_2":"Sistem sibuk. Coba lagi nanti.",
  },
  'PT': {
    "lang_1":"Realizou muitas ações, por favor tente novamente mais tarde.",
    "lang_2":"Sistema ocupado. Tente novamente mais tarde.",
  },
  'FR': {
    "lang_1":"Trop de requêtes, veuillez réessayer ultérieurement.",
    "lang_2":"Le système est occupé. Veuillez réessayer plus tard.",
  },
  'ES': {
    "lang_1":"Has realizado demasiadas acciones. Inténtalo de nuevo más tarde.",
    "lang_2":"Sistema saturado. Inténtalo de nuevo más tarde.",
  },
  'TR': {
    "lang_1":"Çok fazla işlem yapıldı, lütfen daha sonra tekrar dene.",
    "lang_2":"Sistem meşgul. Daha sonra tekrar dene.",
  },
  'AR': {
    "lang_1":"قمت بإجراءات أكثر مما ينبغي، يُرجى المحاولة مجددًا لاحقًا.",
    "lang_2":"النظام مشغول. يُرجى المحاولة لاحقًا.",
  },
  'MS': {
    "lang_1":"Terlalu banyak tindakan, sila cuba lagi nanti.",
    "lang_2":"Sistem sibuk. Cuba lagi nanti.",
  },
}

var language = 'EN'
function isEmpty (val) {
  return val == null || val == '' || val == undefined
}
var langObj = null
var areaLan = ['EN', 'RU', 'DE', 'HK', 'TW', 'TH', 'VI', 'ID', 'PT', 'FR', 'ES', 'TR', 'AR', 'MS']
var queryString = $.trim(getQueryString('language'))
if (!isEmpty(queryString)) {
  queryString = queryString.toUpperCase()
}
if (areaLan.indexOf(queryString) < 0) {
  language = 'EN'
} else {
  language = queryString
}

if (language == 'EN') {
  $('body').addClass('lang_en')
} else {
  $('body').removeClass('lang_en')
}
if (language == 'RU') {
  $('body').addClass('lang_ru')
} else {
  $('body').removeClass('lang_ru')
}
if (language == 'DE') {
  $('body').addClass('lang_de')
} else {
  $('body').removeClass('lang_de')
}
if (language == 'HK') {
  $('body').addClass('lang_hk')
} else {
  $('body').removeClass('lang_hk')
}
if (language == 'TW') {
  $('body').addClass('lang_tw')
} else {
  $('body').removeClass('lang_tw')
}
if (language == 'TH') {
  $('body').addClass('lang_th')
} else {
  $('body').removeClass('lang_th')
}
if (language == 'VI') {
  $('body').addClass('lang_vi')
} else {
  $('body').removeClass('lang_vi')
}
if (language == 'ID') {
  $('body').addClass('lang_id')
} else {
  $('body').removeClass('lang_id')
}
if (language == 'PT') {
  $('body').addClass('lang_pt')
} else {
  $('body').removeClass('lang_pt')
}
if (language == 'FR') {
  $('body').addClass('lang_fr')
} else {
  $('body').removeClass('lang_fr')
}
if (language == 'ES') {
  $('body').addClass('lang_es')
} else {
  $('body').removeClass('lang_es')
}
if (language == 'TR') {
  $('body').addClass('lang_tr')
} else {
  $('body').removeClass('lang_tr')
}
if (language == 'AR') {
  $('body').addClass('lang_ar')
} else {
  $('body').removeClass('lang_ar')
}
if (language == 'MS') {
  $('body').addClass('lang_my')
} else {
  $('body').removeClass('lang_my')
}
// ['EN', 'RU', 'DE', 'HK', 'TW', 'TH', 'VI', 'ID', 'PT', 'FR', 'ES', 'TR', 'AR', 'MS']

langObj = GLanguage[language]
document.title = GLanguage[language]['lang_30']
initLang(langObj)

function initLang (obj) {

  $('[data-lang]').each(function (index) {
    var texts = $(this).attr('data-lang')
    $(this).html(obj[texts])
  
  })
}
console.log(window.location);
function getQueryString (name) {
  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
  var reg_rewrite = new RegExp('(^|/)' + name + '/([^/]*)(/|$)', 'i')
  var r = window.location.search.substr(1).match(reg)
  var q = window.location.pathname.substr(1).match(reg_rewrite)
  console.log(q);
  if (r != null) {
    return unescape(r[2])
  } else if (q != null) {
    return unescape(q[2])
  } else {
    return ''
  }
}

```
# 游戏内多语言
游戏内多语言采用方式是dom上使用lang_xxx获取属性便利生成dom


觉得有用请点个赞吧!
0 466