common.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. $(document).ready(function () {
  2. //initI18N();
  3. //bindEvents();
  4. function initI18N() {
  5. var path = getCommonScriptPath();
  6. var lan = utils.getLanguage();
  7. i18next
  8. .use(i18nextXHRBackend)
  9. .init({
  10. lng: lan,
  11. whitelist: ["zh-CN", "en"],//语言列表,跟locales下的目录名对应
  12. ns: "resources",//locales下的json文件名称
  13. defaultNS: "resources",//locales下的json文件名称
  14. fallbackLng: "zh-CN",//默认语言
  15. backend: {
  16. loadPath: path + './locales/{{lng}}/{{ns}}.json'
  17. }
  18. }, function (err, t) {
  19. if (window.isSite) {
  20. localize();
  21. }
  22. jqueryI18next.init(i18next, $);
  23. $('html').attr("lang", lan);
  24. $(".nav").localize();//翻译nav下所有的文档
  25. $(".icl-footer").localize();//翻译footer
  26. onLoadCallBack(); //设置标题栏当前语言
  27. });
  28. }
  29. function onLoadCallBack() {
  30. var lan = utils.getLanguage();
  31. var lang_text = $("[data-lang=" + lan + "]").html() || "中文";
  32. //$('#lang').html(lang_text);
  33. $('#lang').html("技术专题");
  34. resetCurrentVersionLink();
  35. }
  36. //重置当前版本链接,不带版本号
  37. function resetCurrentVersionLink() {
  38. if (!window.version) {
  39. return;
  40. }
  41. var version = window.version;
  42. version = version.toString();
  43. $(".icl-nav-version").each(function (key, item) {
  44. if (item.href) {
  45. var reg = new RegExp("(.*)\/(" + version + ")(\/.*)");
  46. var match = item.href.match(reg);
  47. if (match && match[1] && match[3]) {
  48. item.href = match[1] + match[3];
  49. }
  50. }
  51. });
  52. }
  53. function bindEvents() {
  54. $('.icl-header').on('click', '.lang-option', function () {
  55. var value = $(this).data('lang');
  56. utils.setLanguage(value);
  57. $('#lang').html($(this).html());
  58. //$('#lang').html("技术专题");
  59. i18next.changeLanguage(value);
  60. if (window.isSite) {
  61. localize();
  62. return;
  63. }
  64. window.location.reload();
  65. });
  66. }
  67. function localize() {
  68. var lang = utils.getLanguage();
  69. var pathname = window.location.pathname.replace("/", "/");
  70. var href = window.location.origin + pathname;
  71. // if (lang === "en") {
  72. // var match = pathname.match(/([^\/]*\/){2}([^\/]*)/);
  73. // if (match && match[2]) {
  74. // var versionReg = match[2].match(/dev|^(.*)\.(.*)$/);//匹配版本:dev/9.0.0
  75. // if (versionReg) {
  76. // // href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '$1$2/en');
  77. // href = window.location.origin + pathname.replace(/([^\/]*\/){2}([^\/]*)/, '/$1$2/en');
  78. // }
  79. // } else {
  80. // //href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '/en/$2');
  81. // href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '/$2/en');
  82. // }
  83. //
  84. // }
  85. if ((window.location.origin + window.location.pathname) === href) {
  86. return;
  87. }
  88. window.location = href;
  89. }
  90. function getCommonScriptPath() {
  91. var r = new RegExp("(^|(.*?\\/))(common\.js)(\\?|$)"),
  92. s = document.getElementsByTagName('script'), relativePath;
  93. for (var i = 0; i < s.length; i++) {
  94. var src = s[i].getAttribute('src');
  95. if (src) {
  96. var m = src.match(r);
  97. if (m) {
  98. relativePath = m[1] ? m[1].replace("js/", "") : "./";
  99. break;
  100. }
  101. }
  102. }
  103. return relativePath;
  104. }
  105. });