common.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /* Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.*/
  2. //目前只支持中英文
  3. window.initI18N= function (callback){
  4. var path = getCommonScriptPath();
  5. Localization.initializeI18N(path, function () {
  6. if (window.isSite) {
  7. localize();
  8. }
  9. $('html').attr("lang", utils.getLanguage());
  10. Localization.localize();
  11. onLoadCallBack(); //设置标题栏当前语言
  12. callback && callback();
  13. });
  14. $('.icl-header').on('click', '.lang-option', function () {
  15. var value = $(this).data('lang');
  16. utils.setLanguage(value);
  17. $('#lang').html($(this).html());
  18. i18next.changeLanguage(value);
  19. if (window.isSite) {
  20. localize();
  21. return;
  22. }
  23. window.location.reload();
  24. });
  25. }
  26. function onLoadCallBack() {
  27. var lan = utils.getLanguage();
  28. var lang_text = $("[data-lang=" + lan + "]").html() || "中文";
  29. $('#lang').html(lang_text);
  30. setCurrentVersion();
  31. resetCurrentVersionLink();
  32. }
  33. //设置头部版本号
  34. function setCurrentVersion() {
  35. var version = getVersion();
  36. if (!version && window.preRelease) {
  37. version = window.preRelease;
  38. }
  39. var versionText = version ? "" + version : " ";
  40. $('#version').html(versionText);
  41. }
  42. function getVersion() {
  43. var pathname = window.location.pathname.replace("/en/", "/");
  44. var match = pathname.match(/^\/(dev|(?:\d+\.)+\d)\/.*/);//匹配版本:dev|9.0.0
  45. return match && match[1] ? match[1] : null;
  46. }
  47. //重置当前版本链接,不带版本号
  48. function resetCurrentVersionLink() {
  49. if (!window.version) {
  50. return;
  51. }
  52. var version = window.version;
  53. version = version.toString();
  54. $(".icl-nav-version").each(function (key, item) {
  55. if (item.href) {
  56. var reg = new RegExp("(.*)\/(" + version + ")(\/.*)");
  57. var match = item.href.match(reg);
  58. if (match && match[1] && match[3]) {
  59. item.href = match[1] + match[3];
  60. }
  61. }
  62. });
  63. }
  64. function localize() {
  65. var lang = utils.getLanguage();
  66. var pathname = window.location.pathname.replace("/en/", "/");
  67. var hash = window.location.hash;
  68. var href = window.location.origin + pathname;
  69. if (lang === "en-US") {
  70. if (getVersion()) {
  71. href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '$1$2/en');
  72. //href = window.location.origin + pathname.replace(/([^\/]*\/){2}([^\/]*)/, '/$1$2/en');
  73. } else if (window.isLocal) {
  74. href = window.location.origin + pathname.replace(/(([^\/]*\/){3})([^\/]*)/, '$1$3/en')
  75. } else {
  76. href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '/en/$2');
  77. //href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '/$2/en');
  78. }
  79. }
  80. if ((window.location.origin + window.location.pathname + hash) === href + hash) {
  81. return;
  82. }
  83. window.location = href + hash;
  84. }
  85. function getCommonScriptPath() {
  86. var r = new RegExp("(^|(.*?\\/))(common\.js)(\\?|$)"),
  87. s = document.getElementsByTagName('script'), relativePath;
  88. for (var i = 0; i < s.length; i++) {
  89. var src = s[i].getAttribute('src');
  90. if (src) {
  91. var m = src.match(r);
  92. if (m) {
  93. relativePath = m[1] ? m[1].replace("js/", "") : "./";
  94. break;
  95. }
  96. }
  97. }
  98. return relativePath;
  99. }