Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Copyright 2011 Google */
- (function() {
- var injectionScript = fillInTemplate("(function(){({{$code}})();})();", {
- code: window.injection.toString()
- }),
- injectorScript = fillInTemplate("(function(){({{$code}})();})();", {
- code: window.injector.toString()
- });
- delete window.injector;
- delete window.injection;
- function injectIntoPage(tabId, userLang, color) {
- map = {
- userLang: userLang,
- color: color,
- translateHeader: chrome.i18n.getMessage("translate_header")
- };
- map.content = escapeStrings(fillInTemplate(injectionScript, map));
- chrome.tabs.insertCSS(tabId, {
- 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'}"
- });
- chrome.tabs.executeScript(tabId, {
- code: fillInTemplate(injectorScript, map)
- })
- }
- function addTranslateToTab(tabId, b, origin) {
- var langcode = getNormalizedLangcode(),
- color = "#ff9";
- localStorage["gt-lang"] && (langcode = localStorage["gt-lang"]);
- localStorage["gt-color"] && (color = localStorage["gt-color"]);
- (origin == "user_click" || localStorage["gt-autoAdd"] != "false") && injectIntoPage(tabId, langcode, color)
- }
- function exportSymbols() {
- for (var obj = addTranslateToTab, symbols = "addTranslateToTab", symbols = symbols.split("."), namespace = window, d = 0; d < symbols.length - 1; ++d)
- namespace = namespace[symbols[d]] || (namespace[symbols[d]] = {});
- namespace[symbols[symbols.length - 1]] = obj
- }
- function fillInTemplate(template, map) {
- return template.replace(/\{\{\$.*?\}\}/g, function(template) {
- template = template.substr(3, template.length - 5);
- return String(map[template]) || ""
- })
- }
- function escapeStrings(a) {
- return a.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\n/g, "\\n")
- }
- function getNormalizedLangcode() {
- var a = window.navigator.language;
- 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"
- }
- exportSymbols();
- })();
Add Comment
Please, Sign In to add comment