Guest User

Untitled

a guest
Jan 22nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. /* Copyright 2011 Google */
  2. (function() {
  3. var injectionScript = fillInTemplate("(function(){({{$code}})();})();", {
  4. code: window.injection.toString()
  5. }),
  6. injectorScript = fillInTemplate("(function(){({{$code}})();})();", {
  7. code: window.injector.toString()
  8. });
  9. delete window.injector;
  10. delete window.injection;
  11.  
  12. function injectIntoPage(tabId, userLang, color) {
  13. map = {
  14. userLang: userLang,
  15. color: color,
  16. translateHeader: chrome.i18n.getMessage("translate_header")
  17. };
  18. map.content = escapeStrings(fillInTemplate(injectionScript, map));
  19. chrome.tabs.insertCSS(tabId, {
  20. code: ".goog-te-sectional-gadget-link,.goog-te-sectional-gadget-link div {display:inline}.goog-te-sectional-gadget-link-text {font-size:13px !important;font-weight:normal !important}.goog-trans-control:before {content: '\u00a0\u00a0-\u00a0\u00a0'}"
  21. });
  22. chrome.tabs.executeScript(tabId, {
  23. code: fillInTemplate(injectorScript, map)
  24. })
  25. }
  26.  
  27. function addTranslateToTab(tabId, b, origin) {
  28. var langcode = getNormalizedLangcode(),
  29. color = "#ff9";
  30. localStorage["gt-lang"] && (langcode = localStorage["gt-lang"]);
  31. localStorage["gt-color"] && (color = localStorage["gt-color"]);
  32. (origin == "user_click" || localStorage["gt-autoAdd"] != "false") && injectIntoPage(tabId, langcode, color)
  33. }
  34. function exportSymbols() {
  35. for (var obj = addTranslateToTab, symbols = "addTranslateToTab", symbols = symbols.split("."), namespace = window, d = 0; d < symbols.length - 1; ++d)
  36. namespace = namespace[symbols[d]] || (namespace[symbols[d]] = {});
  37. namespace[symbols[symbols.length - 1]] = obj
  38. }
  39. function fillInTemplate(template, map) {
  40. return template.replace(/\{\{\$.*?\}\}/g, function(template) {
  41. template = template.substr(3, template.length - 5);
  42. return String(map[template]) || ""
  43. })
  44. }
  45. function escapeStrings(a) {
  46. return a.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\n/g, "\\n")
  47. }
  48.  
  49. function getNormalizedLangcode() {
  50. var a = window.navigator.language;
  51. return a.toLowerCase() == "zh-tw" ? "zh-TW" : a.toLowerCase() == "zh-cn" ? "zh-CN" : a.toLowerCase() == "pt-pt" ? "pt-PT" : a.toLowerCase() == "pt-br" ? "pt-BR" : a.length >= 2 ? a.substr(0, 2) : "en"
  52. }
  53. exportSymbols();
  54. })();
Add Comment
Please, Sign In to add comment