utils.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. var utils = {
  2. //设置语言。参数:"zh_CN","en"
  3. setLanguage: null,
  4. //获取当前语言。默认从cookie读取,没有则读取浏览器默认语言
  5. getLanguage: null,
  6. //设置cookie
  7. setCookie: null,
  8. //获取cookie
  9. getCookie: null,
  10. //获取给定key在当前语言环境下对应的key所对应的值。如读取name字段的值在英语环境下应该变为读取name_en字段的值
  11. getLocalPairs: null,
  12. //加载模板文件,依赖art-template库
  13. loadTemplate: null
  14. };
  15. (function (utils) {
  16. var cKey = "userLanguage";
  17. //设置语言。参数:"zh_CN","en"
  18. function setLanguage(language) {
  19. //默认设置过期时间为1个小时
  20. setCookie(cKey, language, 60 * 60 * 1000);
  21. }
  22. //获取当前语言。默认从cookie读取,没有则读取浏览器默认语言
  23. function getLanguage() {
  24. var lang = getCookie(cKey);
  25. if (lang) {
  26. return lang;
  27. }
  28. if (navigator.appName === 'Netscape') {
  29. return navigator.language;
  30. }
  31. else {
  32. return navigator.browserLanguage;
  33. }
  34. }
  35. //设置cookie,参数分别为:key,value,过期时间(单位:ms),域
  36. function setCookie(cKey, cValue, exp, domain) {
  37. var cookie = cKey + "=" + cValue;
  38. if (exp) {
  39. var d = new Date();
  40. d.setTime(d.getTime() + exp);
  41. cookie += ";expires=" + d.toUTCString();
  42. }
  43. cookie += domain ? ";path=" + domain : ";path=/";
  44. document.cookie = cookie;
  45. }
  46. function getCookie(cKey) {
  47. var name = cKey + "=";
  48. var ca = document.cookie.split(';');
  49. for (var i = 0; i < ca.length; i++) {
  50. var c = ca[i];
  51. while (c.charAt(0) === ' ') c = c.substring(1);
  52. if (c.indexOf(name) !== -1) return c.substring(name.length, c.length);
  53. }
  54. return "";
  55. }
  56. //清除cookie
  57. function clearCookie(name) {
  58. setCookie(name, "", -1);
  59. }
  60. function getLocalKey(key) {
  61. var lang = getLanguage();
  62. var localKey = key;
  63. if (lang === "en") {
  64. localKey = key + "_" + lang;
  65. }
  66. return localKey;
  67. }
  68. function getLocalPairs(obj, key) {
  69. if (!obj) {
  70. return;
  71. }
  72. var localKey = getLocalKey(key);
  73. return obj[localKey] != null ? obj[localKey] : obj[key];
  74. }
  75. function loadTemplate(element, templateFilePath, data) {
  76. if (!window.$ || !window.jQuery) {
  77. throw new Error("jQuery is required")
  78. }
  79. if (!window.template) {
  80. throw new Error("art-template.js is required")
  81. }
  82. if (!element) {
  83. throw new Error("element is required")
  84. }
  85. $.get(templateFilePath, function (html) {
  86. $(element).html(window.template.compile(html)(data));
  87. });
  88. }
  89. utils.setLanguage = setLanguage;
  90. utils.getLanguage = getLanguage;
  91. utils.setCookie = setCookie;
  92. utils.getCookie = getCookie;
  93. utils.getLocalPairs = getLocalPairs;
  94. utils.loadTemplate = loadTemplate;
  95. })(utils);