Страницы: 1
Добавляет пункты в контекстное меню.
Работает в и (после установки требуется перезапуск браузера). В замечена проблема: перевод в окне раскрывается на весь экран, так что закрывать приходится через панель задач. Проблема наблюдается не у всех.
При выделенном тексте предлагает перевод выделенного разными переводчиками и с разным способом вывода.
При отсутствии выделения предлагает перевести страницу различными переводчиками как в текущей так и в новой вкладке.
Создана okkamas_knife, здесь с косметическими изменениями.
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EContext%20translate%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAABv0lEQVR42o3TPWhTYRTG8efeLIZaEW1LKBQ3Fb8QwdqpWupQUGh1qILoIi7qUBoQQ10dpMVBSidTyNSh6uAi4mBAUdStiB+LNC6iUqFSIrd6n79DSHtvSUKHM7wv5/w4L+e8ArQxjlmMIgqIIuK5RcWiUW764J20O8NBizOIm4gS4rXFD4t4WfAhDSWKB5D3kHEbuxwyZHHDYg7x3uJPJLwoeCEoD5ACQo8hX0DSpoK5Lng7yRogTyFPbB6YzsKD4RogPyHwIwKXaglcXW+vXgDi3094VUASvhbCTH8d+EjgBQK/WU/eCNi1++q3GtAf4PHdeP4e0mqVMFpB0TKKlhoDiTvPF/H+Dnx0Kz7Vi1SB4IvRJ6MFmgN3HsPlaXwijzsPQ1sHbOtEKkPw1AQPjYq07uD8LO4ex+EI6CSoD6kEmjG6bTQGGoFWT2DfJOzIQ8/1xBgLRleMToMOQDYLKWAlTiOFl+lF0iWjIaNDJtgOOcGgWJv7Yu4v1bO/ifPf8d1Kk1U+YpQz2YzZKxhOAO8EvxQTdy/hc00AQOEW0yXTKxhNAGXBV5lVRVgtgHocl7koc0twX+aZzGfR8Dv/B7E8d2gwtTBzAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20mainicon%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAABv0lEQVR42o3TPWhTYRTG8efeLIZaEW1LKBQ3Fb8QwdqpWupQUGh1qILoIi7qUBoQQ10dpMVBSidTyNSh6uAi4mBAUdStiB+LNC6iUqFSIrd6n79DSHtvSUKHM7wv5/w4L+e8ArQxjlmMIgqIIuK5RcWiUW764J20O8NBizOIm4gS4rXFD4t4WfAhDSWKB5D3kHEbuxwyZHHDYg7x3uJPJLwoeCEoD5ACQo8hX0DSpoK5Lng7yRogTyFPbB6YzsKD4RogPyHwIwKXaglcXW+vXgDi3094VUASvhbCTH8d+EjgBQK/WU/eCNi1++q3GtAf4PHdeP4e0mqVMFpB0TKKlhoDiTvPF/H+Dnx0Kz7Vi1SB4IvRJ6MFmgN3HsPlaXwijzsPQ1sHbOtEKkPw1AQPjYq07uD8LO4ex+EI6CSoD6kEmjG6bTQGGoFWT2DfJOzIQ8/1xBgLRleMToMOQDYLKWAlTiOFl+lF0iWjIaNDJtgOOcGgWJv7Yu4v1bO/ifPf8d1Kk1U+YpQz2YzZKxhOAO8EvxQTdy/hc00AQOEW0yXTKxhNAGXBV5lVRVgtgHocl7koc0twX+aZzGfR8Dv/B7E8d2gwtTBzAAAAAElFTkSuQmCC%22%3B%0Avar%20gt1icon%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADPElEQVR4nGWTTWhjZRSG3/uTNr39mTqTn1KacagTqyKIlYJ2ExQCUhiprgpduRVFpLvZjOCsXEgWFqRk0RZcWLopmOnCQcPUsVBiTEZbalrGTJOZJm2aNGm++92b737fcdGZTfvAuznwnMV7OBouEI/HdSHEyNzcXCwajb7r8/n6T09P99bW1u4PDw8/SiQSbHd396IGBINBJJPJQDqdvssYK0kpO0SkiIiUUlII0SqVSr8lk8n3JycnjUsLZmdnb5bL5T+klPK5RNzp0BlzyHEFKXU+cxynubKy8tXExIQJABoAzM/PB6amptYikch70DRtv3iMh5kClPQglcKzozMMXhnAh7E3EL0RhCcEX19f/6xSqSxhdHRUT6VS39i2LYUQtJ7epm9/uEdHtSZJKUkpRa0zm75fvE+f3/mRmM3JcRyqVqulmZmZl7G6uhopl8sHtm3TduEpffH1T1Srn9FFavUmnTRaJKUkx3Go0WiojY2N22aj0Yj5fL6wJyVS6R289koYVwd7L3V07aUBAICUEkopSCk1v99/Sw+Hw5NSyi7OXZQrTQwFBy6f6DlKKSil4HkeOp0ODMO4btq23S+EgFQaAAKzO1BKQdd1AICmaSAiEBGUlBBCwHVduK4LzrlpHh4e7nHOVW+vofdbPmxkHuPWB6/D6vFD13UoRfj38TPsP6mBOxJjN64gdNUC5xz1er2l5/P5XxqNBvNEByPBLmS2n+LXzQK4zcH5ebp9GkAeEksPwJgNxhhs20axWMzo7Xb7US6Xyx7Xanh7LIhXRywklh7i9z/30Wy1YNsMfT0mrG4DGoCO64Ixhlqt5uTz+UVjZ2dHDA0NFYPB4Cd9fVb3W2MhnDZb+DldwD+FCk5OWvivVEX27ycY7APevHkNouNSNpu9l8vlvtMAIBQKGfF4/Mvp6em7oVCoxzAMOB0PjAsQEfxdPvi7DBgG4Dgu5fP5vxYWFj4uFAoHBgAwxmhvby8jpTywLOsdy7IGfKah9XSb56IOeJ7A0dGxs7m5mVpeXv60Xq8fcM7Pf+EFsVhMq1Qq18fHx2ej0ehHgUAgYpqm2W63W6VSKVMsFhe3trYeVKtV/sL5HwhICaDODiyAAAAAAElFTkSuQmCC%22%3B%0Avar%20promticon%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADQ0lEQVQ4jX2TX2xTdRTHT7O4GWL0gSwKmphoi3SsdFXHZiRjDExGSIxGHoTgwzDAUoM4skgEE6ckmiiEB2D8GYqbo2LLrmxZ51rWlob+W1e2ua2z2tp1ZVzrunZr161r7/3drw9TCLr4Sc7b+Zycc3IO0QNkY4M333LrD19zGbSc64aWc/VoOZepnnOZD3KuHi3nNB9rCQQcW2kl7CPjH3tPF7OUjpAxEbKDhNwEQUgSxBRBiD8GYWY/UlONzHO76YJery+4LwcmJmrHZtL5tlOVmGsjzPcQFgcIuRBBmCaIaYKYJIip18HyHiylv2Ae5wUtERGFef5ZZzQWS4sSmjgO060yzBsJi/2E3G8E4Y/lDpajDJIwDEkMwW2rHvf5fI/QlZHQFc+CBO8CQ9efOVw8s225gIewFCDkeRnEuSKwzGqw7PuQWAySlMFcrJ4NeIyv0SFv+N5nvIjdgSx2+NLYZ/Sio7nW4uTqdE7jIZ3TfFzntH6u03ON9g/aq9DQvgkftlfg5A+1aGk50EG77MHEK3cyKLHPQm6aRrkljqYu+/V/L/mNjroual0HuqwAnVeAzsix9og6Rg23xjmlLQm5OQ65OQ7FzRlstUyJtoHB7f/Ivf6+2kdNKpFMSlC3EvTjepDhBexo3tNLY+Ep9YaeyaX1tiSU9llscKSw0TOPPTecQ8FgsCgYDBZtt789Sv6NoGEVaKAU5C5F4fWSrHPIW05ERMetQxfV/fPQ+Bbw8nAWFaM5vDq6iK9tt9+77Pnu8NOz20AJDSimAd0tA4XVOGhovHR/vkgksqbqVjC5+VcBVSGGLb8zbAkxVHe642+OvpuQiSqQoAblNaClF1Hs2jQdjUbXPrSks1bHR5UjWZQPZqDxpKFyzEJ17VNckr5HIZOD2HMgUQHKrsOpn84e+c8p8zy/6qVzvZFnDJN46moYxedM+HKyGUPSCOpZI9awUjzBFCjr2+zneX7Viv/Q2tm3t+CEixWccKC68ygmhCj8wi8wCr04JnyCkruqfHd/984V5b+RnbxqbNj11VHLzrZ9kRr9O9ka614orTXseUPZvW8s39b9n/wQfr+/MBwOP+n+2V3huOOoTCQSj6+U9xeWlBixn0UlkAAAAABJRU5ErkJggg%3D%3D%22%3B%0Avar%20yndicon%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC8UlEQVQ4jY2TTWgcZQCGv1OLgkX0UlChaC8iEUo1kNJV0UiTNl1SFasYk2pELeohVkOgWkILDSTR2tWGjRILhigVoxIbf1oaWkJtIokmYWOa3253t2T/Z2dnZmfnm5nv8RZIhdIXnst7eE7vK+oH5JvPfSe5HfZ963SImxPsL9E45PD6r/KWvDYsCfaXnN2nzYp1gt2nDZqGbJqGbJrP2ixrPpZU+AoMR5GxFCNRj6Yhmxe/t6j9uji6TvDsV3kaBk1az5XQy4q0pbia8WgYNMmVFA2DJhdWXCypaPrJJPhNgere/ME1wZM9aQ78oOMrGItJlIJIyiVf8rFdxWLW4+UzBfSyImv5vDCg8URPKlf1afw+IYQQO07eIGv5jMcc+v+2OPhjnqThkbV89g9kee9njZzlM5Fw+GXOpueKwa4vU1R9dmNACCHEY91RMqbH5Ws2ZVcR01ySRY/OCwXq+5LU9yWJaS5ayeeV/hQ5y6e+L8nOkzG2dy3vEYETK8Q0l7pwgpThURdOUBdOkLc89vYmiGkug9MGe3sTRHMSWyrqwgme+fw6FccXF0XFsTl026cmFGUx7VATilITihK+lKfsKjr/yKx1CymHklTUhKIEupd4uH32H/HQRzMYZZ94XlJ2FasFyWpBcmneIFN0CYZWqO5e4vlT15CeQrM8qruXeKQ9woOHp3aKB1onieccaj9ZIKW7PNVxdY1dXfOkiy77Ty2TNVzmV21az8R59MgM93842SuEEGJzyxjVx/9Fs1xe+mKB85ECgaMRAkcj1HbOYTk+17Nl9nTNkdIljx+ZZnPLldym5j/vEUIIce+7o1R9PEWwaxbD9nA9RVqXzMRMpqImTx+bwSx7pHVJoH2aLe+Pcfc7o6+uDWnT2yNUtk1Q2TbBjsOTXJzVsKVPseRxcVYjrUtOnI1T2TbB1pbL3PXWyPop3/nGebYdGmf7B3/dkm2Hxrmj+Zyzsfn3resEGxqHOzYc+I3bonH4f3f+Dz63ssfSaOz4AAAAAElFTkSuQmCC%22%3B%0Avar%20bingicon%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABMUlEQVQ4jY2SsU7DMBCG/TJYYqpEPDojcbq0NGM7sXdnggnigYFOyVDqLLBAkRJLTIwJSwdYw8gj8AQ/Q0kaO6HNSZbPp/P332+ZkJ7hSo2uvNdFV2rwMEOVGw28UVjl5bZZaqi8hA3aqzB/KOBKDVWUrcZ6ir/dgLlSY/HxAx5mmD++d15u7jzMjDNxpcbZyzeE+mz563o4bteaY9nj2bktwP97F7upS72yUgdLfNDIA428g9SD/6APZG84SoDGwoDQeFurly3CEh+OEmBKIFgPcWwBCCHkKPJwt7nA+dvIFBg/C9wUV3VhsbnF4L4NmKYT0Fjg9HVoApgSSL/WBuBkZQKm6QQ08jDLgraF8ZPAdX6JJnCw3AFo5IHGArMs2NVsi44SYIkPlviozraFrvgFK3TyTsPvtF8AAAAASUVORK5CYII%3D%22%3B%0Avar%20lmricon%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADQ0lEQVQ4jX2TX2xTdRTHT7O4GWL0gSwKmphoi3SsdFXHZiRjDExGSIxGHoTgwzDAUoM4skgEE6ckmiiEB2D8GYqbo2LLrmxZ51rWlob+W1e2ua2z2tp1ZVzrunZr161r7/3drw9TCLr4Sc7b+Zycc3IO0QNkY4M333LrD19zGbSc64aWc/VoOZepnnOZD3KuHi3nNB9rCQQcW2kl7CPjH3tPF7OUjpAxEbKDhNwEQUgSxBRBiD8GYWY/UlONzHO76YJery+4LwcmJmrHZtL5tlOVmGsjzPcQFgcIuRBBmCaIaYKYJIip18HyHiylv2Ae5wUtERGFef5ZZzQWS4sSmjgO060yzBsJi/2E3G8E4Y/lDpajDJIwDEkMwW2rHvf5fI/QlZHQFc+CBO8CQ9efOVw8s225gIewFCDkeRnEuSKwzGqw7PuQWAySlMFcrJ4NeIyv0SFv+N5nvIjdgSx2+NLYZ/Sio7nW4uTqdE7jIZ3TfFzntH6u03ON9g/aq9DQvgkftlfg5A+1aGk50EG77MHEK3cyKLHPQm6aRrkljqYu+/V/L/mNjroual0HuqwAnVeAzsix9og6Rg23xjmlLQm5OQ65OQ7FzRlstUyJtoHB7f/Ivf6+2kdNKpFMSlC3EvTjepDhBexo3tNLY+Ep9YaeyaX1tiSU9llscKSw0TOPPTecQ8FgsCgYDBZtt789Sv6NoGEVaKAU5C5F4fWSrHPIW05ERMetQxfV/fPQ+Bbw8nAWFaM5vDq6iK9tt9+77Pnu8NOz20AJDSimAd0tA4XVOGhovHR/vkgksqbqVjC5+VcBVSGGLb8zbAkxVHe642+OvpuQiSqQoAblNaClF1Hs2jQdjUbXPrSks1bHR5UjWZQPZqDxpKFyzEJ17VNckr5HIZOD2HMgUQHKrsOpn84e+c8p8zy/6qVzvZFnDJN46moYxedM+HKyGUPSCOpZI9awUjzBFCjr2+zneX7Viv/Q2tm3t+CEixWccKC68ygmhCj8wi8wCr04JnyCkruqfHd/984V5b+RnbxqbNj11VHLzrZ9kRr9O9ka614orTXseUPZvW8s39b9n/wQfr+/MBwOP+n+2V3huOOoTCQSj6+U9xeWlBixn0UlkAAAAABJRU5ErkJggg%3D%3D%22%3B%0Avar%20maillicon%3D%22data%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAPeSAPt3d+9fX8kTE39xVP+wsCFiAP/hpv/Sd4NYAf/Rdf/Whf/Ufebe3v/Teo+Caf/Xh//hpEAYAHZWF/+3JtfSyf7s7P/cl//p6WolJakZD//Naf/19WJMIPBnZ/jOzoMkJPrY2P/GU+xxcU87FH9TEO+kDvv6+f+yGf39/NmzaJQyIKJMPO3554lXPm3OPP38/KSYImLKLehYWPeysvFubv+8NUa2C1a6H31EKox2SJSaOPaBgfbRhvbYnPt8fFpmFbN+FrCXY3UHB//HVjlTCf/BRf/pvG5SMq6Tk/F0dDOSAf/MZzGSAGhTKP/LZKx7Gv/dmT+JCPO3t8m3t4xhCf/x8ZsVFYEZBPyVleuWlvzd3fSSkko0DZVyK7ctJf/blJFsbIt9Ff++Pf/lsPOrq/LPiMctLfJ4eP/lsubk3v/YirOqmfauHGJQLd9CQlECAf7U1P/MzNnVzPnFV0AnAP23t//7+8leXkq8EJGFbPnBwfS3Pv+zG2NPKNSbKP+uDf+4K9K0d/yZmWFPK3o9FnRSJXZISG1dPPrS0rmyoreSR8MUEtytP+dQUNAhIfVsbN9AQNcwMP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJIALAAAAAAQABAAAAjbACUJFHghDgECdgYOrAKnjiAfACICwLJBoaQzjzJq1LijgsI7AUIm2TIDkZ4OAWhoGfihUSMQZES4nNlIhgeBGCDp3MlTpxspkgyZiUS0qNGiWcBYccS0aVMvK1ocGYFEiICrizKowFFIQhdFKcpQmPLmCiESVID42RPCSQIFX3pIYhABwZ8TE2oUGbLkwAMLEMageEGnBJ8wRH7M0dBADRQDaIwkksSFDSAYBQroWMAjUJAcTQblkTTgiRhGSphE4XDIwRo5JgamadNngI0beCzqFuiCRYzdkgICADs%3D%22%3B%0Avar%20lingvicon%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACBElEQVR42o2Sy04TYRiGJ+oFtNANKaXFTmmhB+i0DGBpNbIQ2ZpwCV6ArlwYbwA35ZDYHXFjIqh4DCalFKZIoQwWp6YxdlGSSjKLYuyiST28fP9UFPpr9Eue3fs8k0x+Qfh52uWo/P7q+MfCxRi0Y2JRvGNERw32RhkR5CORgtB6hfErn6rJ5NdGo4F/8cLj+c4F8rHot9zkJPbvTkF/9RK1chn1ev2PPO/pARfYGR7CbHs73l4YMdgdGcbexAQ+3LyB/UQCuqLgy+EharUanrlcfCAny5ihwC6FVMaQjB2ZMYjcICMMdWwM1WoVT0UnH9gKh43ASWE7zAhhK0RIErJSELquY8l5ng9s0mCmrc0QtpkQkkgKIhtkDGBzgNGPSqWCJ93dfCBDo2kKZKXTwpt+RgCZAOH3o0w/97HDwQfWacACp4SAHwpJis+HdYbXi1KphEd2Ox9I02DabDa+ovh9TYkExlpfn0G6txfFYhGLXV18YJUGcQoYgrcprJGQNvBg1cNwQ9M0LNhsfCBFg7jZ1CIQbjdSDHo8jHw+j4XOTj6w7HIdxE2m34K7Kaww6OEco6oqHlqtfGDObr+WsFg+p1qEJEMUf7GRyfy4ZbGsCH+7O4Jw5p7NdvuBw7Hx2ulsnJQZ9+fnszQ7K/zPXRKEc1MdHdfnrNblJVGsLQYCB62bI3TCqVl5ZBgZAAAAAElFTkSuQmCC%22%3B%0Avar%20pageurl%3B%0Avar%20trtext%3B%0Avar%20ctabpos%3B%20%0A//------------------------Page%20context%20menu-------------------------------------------------%20%20%0A%28function%20TranslatePage%28%29%7B%0Aconst%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0A%20%20%20%20var%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0A%20%20%20%20var%20separator%20%3D%20document.getElementById%28%22context-viewsource%22%29%3B%0A%20%20%20%20var%20eventTarget%20%3D%20null%3B%0A%20%20%20%20var%20menu%20%3D%20document.createElementNS%28kXULNS%2C%20%22menu%22%29%3B%0A%20%20%20%20menu.id%20%3D%20%22TranslatePage%22%3B%0A%20%20%20%20menu.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0421%u0442%u0440%u0430%u043D%u0438%u0446%u0443%22%29%3B%0A%20%20%20%20menu.setAttribute%28%22class%22%2C%20%22menu-iconic%22%29%3B%0A%20%20%20%20menu.setAttribute%28%22image%22%2C%20mainicon%29%3B%0A%20%20%20%20menu.hidden%20%3D%20true%3B%0A%20%20%20%20contextMenu.insertBefore%28menu%2C%20separator%20%29%3B%0A%20%20%20%20var%20menuPopup%20%3D%20document.createElementNS%28kXULNS%2C%20%22menupopup%22%29%3B%0A%20%20%20%20menu.appendChild%28menuPopup%29%3B%0Avar%20lst%20%3D%20%5B%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Google%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3A%20gtr%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Agt1icon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Promt%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Apromttr%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Apromticon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Yandex%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Ayndtr%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Ayndicon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Bing%20Translator%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Abingtr%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Abingicon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22separator%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Google%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3A%20gtrnew%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Agt1icon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Promt%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Apromttrnew%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Apromticon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Yandex%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Ayndtrnew%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Ayndicon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Bing%20Translator%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Abingtrnew%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Abingicon%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%3B%0A%20%20%20%0Afor%28var%20i%20%3D%200%2C%20m%3B%20m%20%3D%20lst%5Bi%5D%3B%20i++%29%7B%0A%20%20%20%20if%20%28m.label%3D%3D%22separator%22%29%7B%0A%20%20%20%20%20var%20menuItem%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuseparator%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.id%20%3D%20%22TranslatePage%22%20+%20m.label.toString%28%29%3B%0A%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20var%20menuItem%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22image%22%2C%20m.image%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22type%22%2C%20%22m.radio%22%29%3B%0A%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2C%20m.command%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20menuItem.id%20%3D%20%22TranslatePage%22%20+%20m.label.toString%28%29%3B%0A%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%7D%20%20%0A%20%20%20%20contextMenu.addEventListener%28%22popupshowing%22%2C%20setMenuDisplay%2C%20false%29%3B%0A%20%20%20%0A%20function%20setMenuDisplay%28aEvent%29%20%7B%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pageurl%3DencodeURIComponent%28content.document.location.href%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28gContextMenu.isTextSelected%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%22TranslatePage%22%29.hidden%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%22TranslatePage%22%29.hidden%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%0A%0A//--------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Google--------------%0Afunction%20gtr%28%29%7B%0Avar%20url%20%3D%20%22http%3A//translate.google.com/translate%3Fhl%3Dru%26ie%3DUTF8%26prev%3D_t%26sl%3Dauto%26tl%3Dru%26u%3D%22+pageurl%3B%0AloadURI%28url%29%3B%0A%7D%0A//---------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Promt---------------%0Afunction%20promttr%28%29%7B%0Avar%20url%20%3D%20%22http%3A//www.translate.ru/siteTranslation/autolink/%3Fdirection%3Dar%26template%3DGeneral%26sourceURL%3D%22+pageurl%3B%0AloadURI%28url%29%3B%0A%7D%0A//---------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Yandex---------------%0Afunction%20yndtr%28%29%7B%0Avar%20url%20%3D%20%22http%3A//translate.yandex.net/translate_f%3Fdir%3Dauto%26lang%3Dauto-ru%26ui%3Dru%26url%3D%22+pageurl%3B%0AloadURI%28url%29%3B%0A%7D%0A//---------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Bing%20Translator---------------%0Afunction%20bingtr%28%29%7B%0Avar%20url%20%3D%20%22http%3A//www.microsofttranslator.com/bv.aspx%3Ffrom%3D%26to%3Dru%26a%3D%22+pageurl%3B%0AloadURI%28url%29%3B%0A%7D%0A//--------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Google%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435--------------%0Afunction%20gtrnew%28%29%7B%0Avar%20url%20%3D%20%22http%3A//translate.google.com/translate%3Fhl%3Dru%26ie%3DUTF8%26prev%3D_t%26sl%3Dauto%26tl%3Dru%26u%3D%22+pageurl%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28url%29%3B%0A%7D%0A//---------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Promt%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435---------------%0Afunction%20promttrnew%28%29%7B%0Avar%20url%20%3D%20%22http%3A//www.translate.ru/siteTranslation/autolink/%3Fdirection%3Dar%26template%3DGeneral%26sourceURL%3D%22+pageurl%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28url%29%3B%0A%7D%0A//---------%u041F%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Yandex%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435---------------%0Afunction%20yndtrnew%28%29%7B%0Avar%20url%20%3D%20%22http%3A//translate.yandex.net/translate_f%3Fdir%3Dauto%26lang%3Dauto-ru%26ui%3Dru%26url%3D%22+pageurl%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28url%29%3B%0A%7D%0A//---------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0441%20Bing%20Translator%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435---------------%0Afunction%20bingtrnew%28%29%7B%0Avar%20url%20%3D%20%22http%3A//www.microsofttranslator.com/bv.aspx%3Ffrom%3D%26to%3Dru%26a%3D%22+pageurl%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28url%29%3B%0A%7D%0A%0A%7D%29%28%29%3B%0A%28function%20TranslateSelected%28%29%7B%0Aconst%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0A%20%20%20%20var%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0A%20%20%20%20var%20separator%20%3D%20document.getElementById%28%22context-searchselect%22%29%3B%0A%20%20%20%20var%20eventTarget%20%3D%20null%3B%0A%20%20%20%20var%20menu%20%3D%20document.createElementNS%28kXULNS%2C%20%22menu%22%29%3B%0A%20%20%20%20menu.id%20%3D%20%22TranslateSelected%22%3B%0A%20%20%20%20menu.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%22%29%3B%0A%20%20%20%20menu.setAttribute%28%22class%22%2C%20%22menu-iconic%22%29%3B%0A%20%20%20%20menu.setAttribute%28%22image%22%2C%20mainicon%29%3B%0A%20%20%20%20menu.hidden%20%3D%20true%3B%0A%20%20%20%20contextMenu.insertBefore%28menu%2C%20separator%20%29%3B%0A%20%20%20%20var%20menuPopup%20%3D%20document.createElementNS%28kXULNS%2C%20%22menupopup%22%29%3B%0A%20%20%20%20menu.appendChild%28menuPopup%29%3B%0Avar%20lst%20%3D%20%5B%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u0417%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u043E%u043C%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel01%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Agt1icon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u043E%u043A%u043D%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel02%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Agt1icon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22separator%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20Google%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel03%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Agt1icon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20PROMT%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel04%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Apromticon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20Bing%20Translator%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel05%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Abingicon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22separator%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0435%20%u0441%u043B%u043E%u0432%u043E%20%u0432%20%u042F%u043D%u0434%u0435%u043A%u0441%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel06%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Ayndicon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0435%20%u0441%u043B%u043E%u0432%u043E%20%u0432%20Lingvo%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel07%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Alingvicon%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20label%3A%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0435%20%u0441%u043B%u043E%u0432%u043E%20%u0432%20Mail.ru%22%2C%0A%20%20%20%20%20%20%20%20%20%20command%3Atrsel08%2C%0A%20%20%20%20%20%20%20%20%20%20image%3Amaillicon%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%3B%0A%20%20%20%0Afor%28var%20i%20%3D%200%2C%20m%3B%20m%20%3D%20lst%5Bi%5D%3B%20i++%29%7B%0A%20%20%20%20if%20%28m.label%3D%3D%22separator%22%29%7B%0A%20%20%20%20%20var%20menuItem%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuseparator%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.id%20%3D%20%22TranslateSelected%22%20+%20m.label.toString%28%29%3B%0A%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%20%20%20else%7B%0A%20%20%20%20%20%20%20%20var%20menuItem%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22image%22%2C%20m.image%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22type%22%2C%20%22m.radio%22%29%3B%0A%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2C%20m.command%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20menuItem.id%20%3D%20%22TranslateSelected%22%20+%20m.label.toString%28%29%3B%0A%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20contextMenu.addEventListener%28%22popupshowing%22%2C%20setMenuDisplay%2C%20false%29%3B%0A%20%20%20%20%20%0A%20%20%20%20function%20setMenuDisplay%28aEvent%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28gContextMenu.isTextSelected%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20getBrowser%20%28%29.%20contentDocument%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20trtext%20%3D%20doc.%20defaultView.%20getSelection%20%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ctabpos%20%3D%20gBrowser.mCurrentTab._tPos%20+1%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%22TranslateSelected%22%29.hidden%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%22TranslateSelected%22%29.hidden%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//----------%u0417%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u043E%u043C------------%0Afunction%20trsel01%28%29%7B%0Avar%20fullUrl%20%3D%20%22http%3A//translate.google.hu/translate_t%3Ftext%3D%22+trtext+%22%26hl%3Dru%22+%22%26langpair%3Dauto%7Cru%26tbb%3D1%22%20%3B%0A%20%20%20%20%20%20%20function%20removeHTMLTags%28mitkell%29%20%7B%20%20//clean%20up%20a%20string%20from%20html%20tags%0A%20%20%20%20%20%20%20var%20strInputCode%20%3D%20mitkell%3B%0A%20%20%20%20%20%20%20var%20strTagStrippedText%20%3D%20strInputCode.replace%28/%3C%5C/%3F%5B%5E%3E%5D+%28%3E%7C%24%29/g%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20return%20strTagStrippedText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20function%20infoReceived%28%29%20%7B%20%20//%20if%20there%20is%20response%20from%20Google%20then%20write%20out%20translation%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20var%20output%20%3D%20httpRequest.responseText%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28output.length%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20//%20Build%20the%20output%20string%20from%20Google%20Page%0A%20%20%20%20%20%20%20%20%20%20%20%20%20output%20%3D%20output.replace%28/%26quot%3B/gi%2C%27%22%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20output%20%3D%20output.replace%28/%26lt%3B/gi%2C%27%3C%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20output%20%3D%20output.replace%28/%26gt%3B/gi%2C%27%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20output%20%3D%20output.replace%28/%26amp%3B/gi%2C%27%26%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20output%20%3D%20output.replace%28/%27/gi%2C%22%27%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20var%20fieldArray%20%3D%20output.split%28%27%3C/head%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28fieldArray%5B1%5D.search%28%27class%3D%22short_text%22%27%29%21%3D-1%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tempResz%20%3D%20fieldArray%5B1%5D.split%28%27%3Cspan%20id%3Dresult_box%20class%3D%22short_text%22%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28fieldArray%5B1%5D.search%28%27class%3D%22medium_text%22%27%29%21%3D-1%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tempResz%20%3D%20fieldArray%5B1%5D.split%28%27%3Cspan%20id%3Dresult_box%20class%3D%22medium_text%22%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tempResz%20%3D%20fieldArray%5B1%5D.split%28%27%3Cspan%20id%3Dresult_box%20class%3D%22long_text%22%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20var%20kimenet%20%3D%20tempResz%5B1%5D.split%28%27%3C/span%3E%3C/div%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20var%20range%20%3D%20content.getSelection%28%29.getRangeAt%280%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20range.deleteContents%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20range.insertNode%28document.createTextNode%28removeHTMLTags%28kimenet%5B0%5D%29%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20httpRequest%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20%20%20httpRequest.open%28%22GET%22%2C%20fullUrl%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20httpRequest.onload%20%3D%20infoReceived%3B%0A%20%20%20%20%20%20%20%20httpRequest.send%28null%29%3B%0A%7D%20%20%20%20%0A%0A//----------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u043E%u043A%u043D%u0435------------%0Afunction%20trsel02%28%29%7B%0Avar%20url1%3D%22http%3A//translate.google.com/translate_t%3Fprev%3Dhp%26hl%3Dru%26js%3Dy%26text%3D%22%3B%0Avar%20url2%3D%22%26file%3D%26sl%3Den%26tl%3Dru%26history_state0%3D%23%22%3B%0Avar%20urltr%3Durl1+trtext+url2%3B%0A%0Avar%20xmlhttp%0Afunction%20gettransdata%28%29%0A%7B%0Axmlhttp%3DGetXmlHttpObject%28%29%3B%0Aif%20%28xmlhttp%3D%3Dnull%29%0A%20%20%7B%0A%20%20alert%20%28%22Your%20browser%20does%20not%20support%20AJAX%21%22%29%3B%0A%20%20return%3B%0A%20%20%7D%0A%0Axmlhttp.onreadystatechange%3DstateChanged%3B%0Axmlhttp.open%28%22GET%22%2Curltr%2Ctrue%29%3B%0Axmlhttp.send%28null%29%3B%0A%7D%0A%0Afunction%20stateChanged%28%29%0A%7B%0Aif%20%28xmlhttp.readyState%3D%3D4%29%0A%20%20%7B%0A%20%20var%20trin%3Dxmlhttp.responseText%3B%0A%0Avar%20chkpoint%3D%27%3Cspan%20id%3Dresult_box%27%3B%0Avar%20arrayOfStrings%20%3D%20trin.split%28chkpoint%29%3B%0A%0Avar%20trouttmp%3DarrayOfStrings%5B1%5D%3B%0Avar%20chkpoint%3D%27%3Cdiv%20id%3Dspell-place-holder%27%3B%0Avar%20arrayOfStrings%20%3D%20trouttmp.split%28chkpoint%29%3B%0A%0Atrouttmp1%3DarrayOfStrings%5B0%5D%3B%0Atrouttmp2%3Dtrouttmp1.replace%28/%3Cspan.+%3F%22%3E/g%2C%22%22%29%0Atrouttmp2%3Dtrouttmp2.replace%28/%3C%5C/span%3E/g%2C%22%22%29%0Atrouttmp2%3Dtrouttmp2.replace%28/class%3D%22long_text%22%3E/g%2C%22%22%29%0Atrouttmp2%3Dtrouttmp2.replace%28/class%3D%22short_text%22%3E/g%2C%22%22%29%0Atrouttmp2%3Dtrouttmp2.replace%28/class%3D%22medium_text%22%3E/g%2C%22%22%29%0Atrouttmp2%3Dtrouttmp2.replace%28/%3Cbr%3E%3C%5C/div%3E%3C%5C/div%3E/g%2C%22%22%29%0A%0Avar%20jurl%3D%27data%3Atext/html%2C%3C%21DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204.0//EN%22%3E%3Chtml%3E%3Chead%3E%3Ctitle%3E%3C/title%3E%3Cmeta%20charset%3D%22utf-8%22%3E%3Cmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text/html%3B%20charset%3Dutf-8%22%3E%3C/head%3E%3Cbody%3E%27+trouttmp2+%27%3C/body%3E%3C/html%3E%27%3B%0A%0Avar%20sizex%20%3D%20screen.width/2.2%0Avar%20sizey%20%3D%20screen.height/2.2%0Avar%20posx%3Dscreen.width-sizex%3B%0Avar%20posy%3Dscreen.height-sizey%3B%0Avar%20wnd%20%3D%20window.open%28jurl%2C%20this.name%2C%20%22width%3D%22+%28sizex-30%29+%22%2Cheight%3D%22+%28sizey-87%29+%22%2CscreenX%3D%22+posx+%22%2CscreenY%3D%22+posy+%22%2Cstatus%3Dno%2Cscrollbars%3Dyes%2Cresizable%3Dyes%22%29%3B%0Aif%20%28wnd.focus%29%20%7B%0A%20%20wnd.focus%28%29%3B%20%7D%3B%0A%0A%20%20%7D%0A%7D%0A%0Afunction%20GetXmlHttpObject%28%29%7B%0Aif%20%28window.XMLHttpRequest%29%0A%20%20%7B%20return%20new%20XMLHttpRequest%28%29%3B%7D%0Aif%20%28window.ActiveXObject%29%0A%20%20%7B%20return%20new%20ActiveXObject%28%22Microsoft.XMLHTTP%22%29%3B%7D%0Areturn%20null%3B%0A%7D%0Agettransdata%28%29%3B%0A%0A%7D%20%20%20%20%20%0A//--------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20Google--------------%0Afunction%20trsel03%28%29%7B%0Avar%20url%3D%22http%3A//translate.google.com/translate_t%3Fhl%3Dru%23auto%7Cru%7C%22+trtext%3B%0AgBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%2C%20ctabpos%29%3B%0A%7D%0A%0A//---------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20PROMT---------------%0Afunction%20trsel04%28%29%7B%0Avar%20url%3D%22http%3A//www.translate.ru/%3FExternal%3DIE8Accelerator%26formEncoding%3Dutf-8%26direction%3Dar%26prmtlang%3Dru%26status%3Dtranslate%26template%3DGeneral%26source%3D%22+trtext%3B%0AgBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%2C%20ctabpos%29%3B%0A%7D%0A%0A//---------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20Bing%20Translator---------------%0Afunction%20trsel05%28%29%7B%0Avar%20url%3D%22http%3A//www.microsofttranslator.com/%3Fref%3DIE8Activity%26to%3Dru%26SourceText%3D%22+trtext%3B%0AgBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%2C%20ctabpos%29%3B%0A%7D%0A//----------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u043B%u043E%u0432%u043E%20%u0432%20%u042F%u043D%u0434%u0435%u043A%u0441%u0435------------%0Afunction%20trsel06%28%29%7B%0Avar%20urltr%3D%22http%3A//translate.yandex.ru/tr.json/translate%3Fcallback%3Djson.c%286%29%26lang%3Den-ru%26text%3D%22+trtext%3B%0A%0Avar%20xmlhttp%0Afunction%20gettransdata%28%29%0A%7B%0Axmlhttp%3DGetXmlHttpObject%28%29%3B%0Aif%20%28xmlhttp%3D%3Dnull%29%0A%20%20%7B%0A%20%20alert%20%28%22Your%20browser%20does%20not%20support%20AJAX%21%22%29%3B%0A%20%20return%3B%0A%20%20%7D%0A%0Axmlhttp.onreadystatechange%3DstateChanged%3B%0Axmlhttp.open%28%22GET%22%2Curltr%2Ctrue%29%3B%0Axmlhttp.send%28null%29%3B%0A%7D%0A%0Afunction%20stateChanged%28%29%0A%7B%0Aif%20%28xmlhttp.readyState%3D%3D4%29%0A%20%20%7B%0A%20%20var%20tryain%3Dxmlhttp.responseText%3B%0Atryain%3Dtryain.replace%28/json%5C.c%5C%286%5C%29/g%2C%22%22%29%0Atryain%3Dtryain.slice%282%2C-2%29%0A%0Avar%20jurl%3D%27data%3Atext/html%2C%3C%21DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204.0//EN%22%3E%3Chtml%3E%3Chead%3E%3Ctitle%3E%3C/title%3E%3Cmeta%20charset%3D%22utf-8%22%3E%3Cmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text/html%3B%20charset%3Dutf-8%22%3E%3C/head%3E%3Cbody%3E%27+tryain+%27%3C/body%3E%3C/html%3E%27%3B%0A%0Avar%20sizex%20%3D%20screen.width/2.2%0Avar%20sizey%20%3D%20screen.height/2.2%0Avar%20posx%3Dscreen.width-sizex%3B%0Avar%20posy%3Dscreen.height-sizey%3B%0Avar%20wnd%20%3D%20window.open%28jurl%2C%20this.name%2C%20%22width%3D%22+%28sizex-30%29+%22%2Cheight%3D%22+%28sizey-87%29+%22%2CscreenX%3D%22+posx+%22%2CscreenY%3D%22+posy+%22%2Cstatus%3Dno%2Cscrollbars%3Dyes%2Cresizable%3Dyes%22%29%3B%0Aif%20%28wnd.focus%29%20%7B%0A%20%20wnd.focus%28%29%3B%20%7D%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20GetXmlHttpObject%28%29%7B%0Aif%20%28window.XMLHttpRequest%29%0A%20%20%7B%20return%20new%20XMLHttpRequest%28%29%3B%7D%0Aif%20%28window.ActiveXObject%29%0A%20%20%7B%20return%20new%20ActiveXObject%28%22Microsoft.XMLHTTP%22%29%3B%7D%0Areturn%20null%3B%0A%7D%0Agettransdata%28%29%3B%0A%0A%7D%0A%0A//-----------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u043B%u043E%u0432%u043E%20%u0432%20Lingvo--------------%0Afunction%20trsel07%28%29%7B%0Avar%20url%3D%22http%3A//lingvopro.abbyyonline.com/ru/Search/en-ru/%22+trtext%3B%0AgBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%2C%20ctabpos%29%3B%0A%7D%0A%0A//----------%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u043B%u043E%u0432%u043E%20%u0432%20Mail.ru------------%0Afunction%20trsel08%28%29%7B%0Avar%20url%3D%22http%3A//lingvo.mail.ru/%3Flang_id%3D1033%26translate%3D%26text%3D%22+trtext%3B%0AgBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%2C%20ctabpos%29%3B%0A%7D%0A%0A%0A%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Инициализация:
var mainicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAABv0lEQVR42o3TPWhTYRTG8efeLIZaEW1LKBQ3Fb8QwdqpWupQUGh1qILoIi7qUBoQQ10dpMVBSidTyNSh6uAi4mBAUdStiB+LNC6iUqFSIrd6n79DSHtvSUKHM7wv5/w4L+e8ArQxjlmMIgqIIuK5RcWiUW764J20O8NBizOIm4gS4rXFD4t4WfAhDSWKB5D3kHEbuxwyZHHDYg7x3uJPJLwoeCEoD5ACQo8hX0DSpoK5Lng7yRogTyFPbB6YzsKD4RogPyHwIwKXaglcXW+vXgDi3094VUASvhbCTH8d+EjgBQK/WU/eCNi1++q3GtAf4PHdeP4e0mqVMFpB0TKKlhoDiTvPF/H+Dnx0Kz7Vi1SB4IvRJ6MFmgN3HsPlaXwijzsPQ1sHbOtEKkPw1AQPjYq07uD8LO4ex+EI6CSoD6kEmjG6bTQGGoFWT2DfJOzIQ8/1xBgLRleMToMOQDYLKWAlTiOFl+lF0iWjIaNDJtgOOcGgWJv7Yu4v1bO/ifPf8d1Kk1U+YpQz2YzZKxhOAO8EvxQTdy/hc00AQOEW0yXTKxhNAGXBV5lVRVgtgHocl7koc0twX+aZzGfR8Dv/B7E8d2gwtTBzAAAAAElFTkSuQmCC"; var gt1icon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADPElEQVR4nGWTTWhjZRSG3/uTNr39mTqTn1KacagTqyKIlYJ2ExQCUhiprgpduRVFpLvZjOCsXEgWFqRk0RZcWLopmOnCQcPUsVBiTEZbalrGTJOZJm2aNGm++92b737fcdGZTfvAuznwnMV7OBouEI/HdSHEyNzcXCwajb7r8/n6T09P99bW1u4PDw8/SiQSbHd396IGBINBJJPJQDqdvssYK0kpO0SkiIiUUlII0SqVSr8lk8n3JycnjUsLZmdnb5bL5T+klPK5RNzp0BlzyHEFKXU+cxynubKy8tXExIQJABoAzM/PB6amptYikch70DRtv3iMh5kClPQglcKzozMMXhnAh7E3EL0RhCcEX19f/6xSqSxhdHRUT6VS39i2LYUQtJ7epm9/uEdHtSZJKUkpRa0zm75fvE+f3/mRmM3JcRyqVqulmZmZl7G6uhopl8sHtm3TduEpffH1T1Srn9FFavUmnTRaJKUkx3Go0WiojY2N22aj0Yj5fL6wJyVS6R289koYVwd7L3V07aUBAICUEkopSCk1v99/Sw+Hw5NSyi7OXZQrTQwFBy6f6DlKKSil4HkeOp0ODMO4btq23S+EgFQaAAKzO1BKQdd1AICmaSAiEBGUlBBCwHVduK4LzrlpHh4e7nHOVW+vofdbPmxkHuPWB6/D6vFD13UoRfj38TPsP6mBOxJjN64gdNUC5xz1er2l5/P5XxqNBvNEByPBLmS2n+LXzQK4zcH5ebp9GkAeEksPwJgNxhhs20axWMzo7Xb7US6Xyx7Xanh7LIhXRywklh7i9z/30Wy1YNsMfT0mrG4DGoCO64Ixhlqt5uTz+UVjZ2dHDA0NFYPB4Cd9fVb3W2MhnDZb+DldwD+FCk5OWvivVEX27ycY7APevHkNouNSNpu9l8vlvtMAIBQKGfF4/Mvp6em7oVCoxzAMOB0PjAsQEfxdPvi7DBgG4Dgu5fP5vxYWFj4uFAoHBgAwxmhvby8jpTywLOsdy7IGfKah9XSb56IOeJ7A0dGxs7m5mVpeXv60Xq8fcM7Pf+EFsVhMq1Qq18fHx2ej0ehHgUAgYpqm2W63W6VSKVMsFhe3trYeVKtV/sL5HwhICaDODiyAAAAAAElFTkSuQmCC"; var promticon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADQ0lEQVQ4jX2TX2xTdRTHT7O4GWL0gSwKmphoi3SsdFXHZiRjDExGSIxGHoTgwzDAUoM4skgEE6ckmiiEB2D8GYqbo2LLrmxZ51rWlob+W1e2ua2z2tp1ZVzrunZr161r7/3drw9TCLr4Sc7b+Zycc3IO0QNkY4M333LrD19zGbSc64aWc/VoOZepnnOZD3KuHi3nNB9rCQQcW2kl7CPjH3tPF7OUjpAxEbKDhNwEQUgSxBRBiD8GYWY/UlONzHO76YJery+4LwcmJmrHZtL5tlOVmGsjzPcQFgcIuRBBmCaIaYKYJIip18HyHiylv2Ae5wUtERGFef5ZZzQWS4sSmjgO060yzBsJi/2E3G8E4Y/lDpajDJIwDEkMwW2rHvf5fI/QlZHQFc+CBO8CQ9efOVw8s225gIewFCDkeRnEuSKwzGqw7PuQWAySlMFcrJ4NeIyv0SFv+N5nvIjdgSx2+NLYZ/Sio7nW4uTqdE7jIZ3TfFzntH6u03ON9g/aq9DQvgkftlfg5A+1aGk50EG77MHEK3cyKLHPQm6aRrkljqYu+/V/L/mNjroual0HuqwAnVeAzsix9og6Rg23xjmlLQm5OQ65OQ7FzRlstUyJtoHB7f/Ivf6+2kdNKpFMSlC3EvTjepDhBexo3tNLY+Ep9YaeyaX1tiSU9llscKSw0TOPPTecQ8FgsCgYDBZtt789Sv6NoGEVaKAU5C5F4fWSrHPIW05ERMetQxfV/fPQ+Bbw8nAWFaM5vDq6iK9tt9+77Pnu8NOz20AJDSimAd0tA4XVOGhovHR/vkgksqbqVjC5+VcBVSGGLb8zbAkxVHe642+OvpuQiSqQoAblNaClF1Hs2jQdjUbXPrSks1bHR5UjWZQPZqDxpKFyzEJ17VNckr5HIZOD2HMgUQHKrsOpn84e+c8p8zy/6qVzvZFnDJN46moYxedM+HKyGUPSCOpZI9awUjzBFCjr2+zneX7Viv/Q2tm3t+CEixWccKC68ygmhCj8wi8wCr04JnyCkruqfHd/984V5b+RnbxqbNj11VHLzrZ9kRr9O9ka614orTXseUPZvW8s39b9n/wQfr+/MBwOP+n+2V3huOOoTCQSj6+U9xeWlBixn0UlkAAAAABJRU5ErkJggg=="; var yndicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC8UlEQVQ4jY2TTWgcZQCGv1OLgkX0UlChaC8iEUo1kNJV0UiTNl1SFasYk2pELeohVkOgWkILDSTR2tWGjRILhigVoxIbf1oaWkJtIokmYWOa3253t2T/Z2dnZmfnm5nv8RZIhdIXnst7eE7vK+oH5JvPfSe5HfZ963SImxPsL9E45PD6r/KWvDYsCfaXnN2nzYp1gt2nDZqGbJqGbJrP2ixrPpZU+AoMR5GxFCNRj6Yhmxe/t6j9uji6TvDsV3kaBk1az5XQy4q0pbia8WgYNMmVFA2DJhdWXCypaPrJJPhNgere/ME1wZM9aQ78oOMrGItJlIJIyiVf8rFdxWLW4+UzBfSyImv5vDCg8URPKlf1afw+IYQQO07eIGv5jMcc+v+2OPhjnqThkbV89g9kee9njZzlM5Fw+GXOpueKwa4vU1R9dmNACCHEY91RMqbH5Ws2ZVcR01ySRY/OCwXq+5LU9yWJaS5ayeeV/hQ5y6e+L8nOkzG2dy3vEYETK8Q0l7pwgpThURdOUBdOkLc89vYmiGkug9MGe3sTRHMSWyrqwgme+fw6FccXF0XFsTl026cmFGUx7VATilITihK+lKfsKjr/yKx1CymHklTUhKIEupd4uH32H/HQRzMYZZ94XlJ2FasFyWpBcmneIFN0CYZWqO5e4vlT15CeQrM8qruXeKQ9woOHp3aKB1onieccaj9ZIKW7PNVxdY1dXfOkiy77Ty2TNVzmV21az8R59MgM93842SuEEGJzyxjVx/9Fs1xe+mKB85ECgaMRAkcj1HbOYTk+17Nl9nTNkdIljx+ZZnPLldym5j/vEUIIce+7o1R9PEWwaxbD9nA9RVqXzMRMpqImTx+bwSx7pHVJoH2aLe+Pcfc7o6+uDWnT2yNUtk1Q2TbBjsOTXJzVsKVPseRxcVYjrUtOnI1T2TbB1pbL3PXWyPop3/nGebYdGmf7B3/dkm2Hxrmj+Zyzsfn3resEGxqHOzYc+I3bonH4f3f+Dz63ssfSaOz4AAAAAElFTkSuQmCC"; var bingicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABMUlEQVQ4jY2SsU7DMBCG/TJYYqpEPDojcbq0NGM7sXdnggnigYFOyVDqLLBAkRJLTIwJSwdYw8gj8AQ/Q0kaO6HNSZbPp/P332+ZkJ7hSo2uvNdFV2rwMEOVGw28UVjl5bZZaqi8hA3aqzB/KOBKDVWUrcZ6ir/dgLlSY/HxAx5mmD++d15u7jzMjDNxpcbZyzeE+mz563o4bteaY9nj2bktwP97F7upS72yUgdLfNDIA428g9SD/6APZG84SoDGwoDQeFurly3CEh+OEmBKIFgPcWwBCCHkKPJwt7nA+dvIFBg/C9wUV3VhsbnF4L4NmKYT0Fjg9HVoApgSSL/WBuBkZQKm6QQ08jDLgraF8ZPAdX6JJnCw3AFo5IHGArMs2NVsi44SYIkPlviozraFrvgFK3TyTsPvtF8AAAAASUVORK5CYII="; var lmricon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADQ0lEQVQ4jX2TX2xTdRTHT7O4GWL0gSwKmphoi3SsdFXHZiRjDExGSIxGHoTgwzDAUoM4skgEE6ckmiiEB2D8GYqbo2LLrmxZ51rWlob+W1e2ua2z2tp1ZVzrunZr161r7/3drw9TCLr4Sc7b+Zycc3IO0QNkY4M333LrD19zGbSc64aWc/VoOZepnnOZD3KuHi3nNB9rCQQcW2kl7CPjH3tPF7OUjpAxEbKDhNwEQUgSxBRBiD8GYWY/UlONzHO76YJery+4LwcmJmrHZtL5tlOVmGsjzPcQFgcIuRBBmCaIaYKYJIip18HyHiylv2Ae5wUtERGFef5ZZzQWS4sSmjgO060yzBsJi/2E3G8E4Y/lDpajDJIwDEkMwW2rHvf5fI/QlZHQFc+CBO8CQ9efOVw8s225gIewFCDkeRnEuSKwzGqw7PuQWAySlMFcrJ4NeIyv0SFv+N5nvIjdgSx2+NLYZ/Sio7nW4uTqdE7jIZ3TfFzntH6u03ON9g/aq9DQvgkftlfg5A+1aGk50EG77MHEK3cyKLHPQm6aRrkljqYu+/V/L/mNjroual0HuqwAnVeAzsix9og6Rg23xjmlLQm5OQ65OQ7FzRlstUyJtoHB7f/Ivf6+2kdNKpFMSlC3EvTjepDhBexo3tNLY+Ep9YaeyaX1tiSU9llscKSw0TOPPTecQ8FgsCgYDBZtt789Sv6NoGEVaKAU5C5F4fWSrHPIW05ERMetQxfV/fPQ+Bbw8nAWFaM5vDq6iK9tt9+77Pnu8NOz20AJDSimAd0tA4XVOGhovHR/vkgksqbqVjC5+VcBVSGGLb8zbAkxVHe642+OvpuQiSqQoAblNaClF1Hs2jQdjUbXPrSks1bHR5UjWZQPZqDxpKFyzEJ17VNckr5HIZOD2HMgUQHKrsOpn84e+c8p8zy/6qVzvZFnDJN46moYxedM+HKyGUPSCOpZI9awUjzBFCjr2+zneX7Viv/Q2tm3t+CEixWccKC68ygmhCj8wi8wCr04JnyCkruqfHd/984V5b+RnbxqbNj11VHLzrZ9kRr9O9ka614orTXseUPZvW8s39b9n/wQfr+/MBwOP+n+2V3huOOoTCQSj6+U9xeWlBixn0UlkAAAAABJRU5ErkJggg=="; var maillicon="data:image/gif;base64,R0lGODlhEAAQAPeSAPt3d+9fX8kTE39xVP+wsCFiAP/hpv/Sd4NYAf/Rdf/Whf/Ufebe3v/Teo+Caf/Xh//hpEAYAHZWF/+3JtfSyf7s7P/cl//p6WolJakZD//Naf/19WJMIPBnZ/jOzoMkJPrY2P/GU+xxcU87FH9TEO+kDvv6+f+yGf39/NmzaJQyIKJMPO3554lXPm3OPP38/KSYImLKLehYWPeysvFubv+8NUa2C1a6H31EKox2SJSaOPaBgfbRhvbYnPt8fFpmFbN+FrCXY3UHB//HVjlTCf/BRf/pvG5SMq6Tk/F0dDOSAf/MZzGSAGhTKP/LZKx7Gv/dmT+JCPO3t8m3t4xhCf/x8ZsVFYEZBPyVleuWlvzd3fSSkko0DZVyK7ctJf/blJFsbIt9Ff++Pf/lsPOrq/LPiMctLfJ4eP/lsubk3v/YirOqmfauHGJQLd9CQlECAf7U1P/MzNnVzPnFV0AnAP23t//7+8leXkq8EJGFbPnBwfS3Pv+zG2NPKNSbKP+uDf+4K9K0d/yZmWFPK3o9FnRSJXZISG1dPPrS0rmyoreSR8MUEtytP+dQUNAhIfVsbN9AQNcwMP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJIALAAAAAAQABAAAAjbACUJFHghDgECdgYOrAKnjiAfACICwLJBoaQzjzJq1LijgsI7AUIm2TIDkZ4OAWhoGfihUSMQZES4nNlIhgeBGCDp3MlTpxspkgyZiUS0qNGiWcBYccS0aVMvK1ocGYFEiICrizKowFFIQhdFKcpQmPLmCiESVID42RPCSQIFX3pIYhABwZ8TE2oUGbLkwAMLEMageEGnBJ8wRH7M0dBADRQDaIwkksSFDSAYBQroWMAjUJAcTQblkTTgiRhGSphE4XDIwRo5JgamadNngI0beCzqFuiCRYzdkgICADs="; var lingvicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACBElEQVR42o2Sy04TYRiGJ+oFtNANKaXFTmmhB+i0DGBpNbIQ2ZpwCV6ArlwYbwA35ZDYHXFjIqh4DCalFKZIoQwWp6YxdlGSSjKLYuyiST28fP9UFPpr9Eue3fs8k0x+Qfh52uWo/P7q+MfCxRi0Y2JRvGNERw32RhkR5CORgtB6hfErn6rJ5NdGo4F/8cLj+c4F8rHot9zkJPbvTkF/9RK1chn1ev2PPO/pARfYGR7CbHs73l4YMdgdGcbexAQ+3LyB/UQCuqLgy+EharUanrlcfCAny5ihwC6FVMaQjB2ZMYjcICMMdWwM1WoVT0UnH9gKh43ASWE7zAhhK0RIErJSELquY8l5ng9s0mCmrc0QtpkQkkgKIhtkDGBzgNGPSqWCJ93dfCBDo2kKZKXTwpt+RgCZAOH3o0w/97HDwQfWacACp4SAHwpJis+HdYbXi1KphEd2Ox9I02DabDa+ovh9TYkExlpfn0G6txfFYhGLXV18YJUGcQoYgrcprJGQNvBg1cNwQ9M0LNhsfCBFg7jZ1CIQbjdSDHo8jHw+j4XOTj6w7HIdxE2m34K7Kaww6OEco6oqHlqtfGDObr+WsFg+p1qEJEMUf7GRyfy4ZbGsCH+7O4Jw5p7NdvuBw7Hx2ulsnJQZ9+fnszQ7K/zPXRKEc1MdHdfnrNblJVGsLQYCB62bI3TCqVl5ZBgZAAAAAElFTkSuQmCC"; var pageurl; var trtext; var ctabpos; //------------------------Page context menu------------------------------------------------- (function TranslatePage(){ const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var contextMenu = document.getElementById("contentAreaContextMenu"); var separator = document.getElementById("context-viewsource"); var eventTarget = null; var menu = document.createElementNS(kXULNS, "menu"); menu.id = "TranslatePage"; menu.setAttribute("label", "Перевести страницу"); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", mainicon); menu.hidden = true; contextMenu.insertBefore(menu, separator ); var menuPopup = document.createElementNS(kXULNS, "menupopup"); menu.appendChild(menuPopup); var lst = [ { label:"Перевести страницу в Google", command: gtr, image:gt1icon }, { label:"Перевести страницу в Promt ", command:promttr, image:promticon }, { label:"Перевести страницу в Yandex ", command:yndtr, image:yndicon }, { label:"Перевести страницу в Bing", command:bingtr, image:bingicon }, { label:"separator" }, { label:"Перевести страницу в Google в новой вкладке", command: gtrnew, image:gt1icon }, { label:"Перевести страницу в Promt в новой вкладке", command:promttrnew, image:promticon }, { label:"Перевести страницу в Yandex в новой вкладке", command:yndtrnew, image:yndicon }, { label:"Перевести страницу в Bing в новой вкладке", command:bingtrnew, image:bingicon } ]; for(var i = 0, m; m = lst[i]; i++){ if (m.label=="separator"){ var menuItem = document.createElementNS(kXULNS, "menuseparator"); menuItem.id = "TranslatePage" + m.label.toString(); menuPopup.appendChild(menuItem); } else { var menuItem = document.createElementNS(kXULNS, "menuitem"); menuItem.setAttribute("label", m.label); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", m.image); menuItem.setAttribute("type", "m.radio"); menuItem.addEventListener("command", m.command, false); menuItem.id = "TranslatePage" + m.label.toString(); menuPopup.appendChild(menuItem); } } contextMenu.addEventListener("popupshowing", setMenuDisplay, false); function setMenuDisplay(aEvent) { pageurl=encodeURIComponent(content.document.location.href) if (gContextMenu.isTextSelected) { document.getElementById("TranslatePage").hidden = true; } else document.getElementById("TranslatePage").hidden = false; } //--------Перевести страницу в Google-------------- function gtr(){ var url = "http://translate.google.com/translate?hl=ru&ie=UTF8&prev=_t&sl=auto&tl=ru&u="+pageurl; loadURI(url); } //---------Перевести страницу в Promt--------------- function promttr(){ var url = "http://www.translate.ru/siteTranslation/autolink/?direction=ar&template=General&sourceURL="+pageurl; loadURI(url); } //---------Перевести страницу в Yandex--------------- function yndtr(){ var url = "http://translate.yandex.net/translate_f?dir=auto&lang=auto-ru&ui=ru&url="+pageurl; loadURI(url); } //---------Перевести страницу в Bing--------------- function bingtr(){ var url = "http://www.microsofttranslator.com/bv.aspx?from=&to=ru&a="+pageurl; loadURI(url); } //--------Перевести страницу в Google в новой вкладке-------------- function gtrnew(){ var url = "http://translate.google.com/translate?hl=ru&ie=UTF8&prev=_t&sl=auto&tl=ru&u="+pageurl; getBrowser (). selectedTab = getBrowser (). addTab (url); } //---------Перевести страницу в Promt в новой вкладке--------------- function promttrnew(){ var url = "http://www.translate.ru/siteTranslation/autolink/?direction=ar&template=General&sourceURL="+pageurl; getBrowser (). selectedTab = getBrowser (). addTab (url); } //---------ППеревести страницу в Yandex в новой вкладке--------------- function yndtrnew(){ var url = "http://translate.yandex.net/translate_f?dir=auto&lang=auto-ru&ui=ru&url="+pageurl; getBrowser (). selectedTab = getBrowser (). addTab (url); } //---------Перевести страницу в Bing в новой вкладке--------------- function bingtrnew(){ var url = "http://www.microsofttranslator.com/bv.aspx?from=&to=ru&a="+pageurl; getBrowser (). selectedTab = getBrowser (). addTab (url); } })(); (function TranslateSelected(){ const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var contextMenu = document.getElementById("contentAreaContextMenu"); var separator = document.getElementById("context-searchselect"); var eventTarget = null; var menu = document.createElementNS(kXULNS, "menu"); menu.id = "TranslateSelected"; menu.setAttribute("label", "Перевести выделенный текст"); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", mainicon); menu.hidden = true; contextMenu.insertBefore(menu, separator ); var menuPopup = document.createElementNS(kXULNS, "menupopup"); menu.appendChild(menuPopup); var lst = [ { label:"Заменить выделенный текст переводом", command:trsel01, image:gt1icon }, { label:"Перевести выделенный текст в окне", command:trsel02, image:gt1icon }, { label:"separator" }, { label:"Перевести выделенный текст в Google", command:trsel03, image:gt1icon }, { label:"Перевести выделенный текст в PROMT", command:trsel04, image:promticon }, { label:"Перевести выделенный текст в Bing Translator", command:trsel05, image:bingicon }, { label:"separator" }, { label:"Перевести выделенное слово в Яндексе", command:trsel06, image:yndicon }, { label:"Перевести выделенное слово в Lingvo", command:trsel07, image:lingvicon }, { label:"Перевести выделенное слово в Mail.ru", command:trsel08, image:maillicon } ]; for(var i = 0, m; m = lst[i]; i++){ if (m.label=="separator"){ var menuItem = document.createElementNS(kXULNS, "menuseparator"); menuItem.id = "TranslateSelected" + m.label.toString(); menuPopup.appendChild(menuItem); } else{ var menuItem = document.createElementNS(kXULNS, "menuitem"); menuItem.setAttribute("label", m.label); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", m.image); menuItem.setAttribute("type", "m.radio"); menuItem.addEventListener("command", m.command, false); menuItem.id = "TranslateSelected" + m.label.toString(); menuPopup.appendChild(menuItem); } } contextMenu.addEventListener("popupshowing", setMenuDisplay, false); function setMenuDisplay(aEvent) { if (gContextMenu.isTextSelected) { var doc = getBrowser (). contentDocument; trtext = doc. defaultView. getSelection (); ctabpos = gBrowser.mCurrentTab._tPos +1; document.getElementById("TranslateSelected").hidden = false; } else document.getElementById("TranslateSelected").hidden = true; } //----------Заменить текст переводом------------ function trsel01(){ var fullUrl = "http://translate.google.hu/translate_t?text="+trtext+"&hl=ru"+"&langpair=auto|ru&tbb=1" ; function removeHTMLTags(mitkell) { //clean up a string from html tags var strInputCode = mitkell; var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, ""); return strTagStrippedText; } function infoReceived() { // if there is response from Google then write out translation var output = httpRequest.responseText; if (output.length) { // Build the output string from Google Page output = output.replace(/"/gi,'"'); output = output.replace(/</gi,'<'); output = output.replace(/>/gi,'>'); output = output.replace(/&/gi,'&'); output = output.replace(/'/gi,"'"); var fieldArray = output.split('</head>'); if (fieldArray[1].search('class="short_text"')!=-1) { var tempResz = fieldArray[1].split('<span id=result_box class="short_text">'); } else if (fieldArray[1].search('class="medium_text"')!=-1) { var tempResz = fieldArray[1].split('<span id=result_box class="medium_text">'); } else { var tempResz = fieldArray[1].split('<span id=result_box class="long_text">'); } var kimenet = tempResz[1].split('</span></div>'); var range = content.getSelection().getRangeAt(0); range.deleteContents(); range.insertNode(document.createTextNode(removeHTMLTags(kimenet[0]))); } } httpRequest = new XMLHttpRequest(); httpRequest.open("GET", fullUrl, true); httpRequest.onload = infoReceived; httpRequest.send(null); } //----------Перевести выделенный текст в окне------------ function trsel02(){ var url1="http://translate.google.com/translate_t?prev=hp&hl=ru&js=y&text="; var url2="&file=&sl=en&tl=ru&history_state0=#"; var urltr=url1+trtext+url2; var xmlhttp function gettransdata() { xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Your browser does not support AJAX!"); return; } xmlhttp.onreadystatechange=stateChanged; xmlhttp.open("GET",urltr,true); xmlhttp.send(null); } function stateChanged() { if (xmlhttp.readyState==4) { var trin=xmlhttp.responseText; var chkpoint='<span id=result_box'; var arrayOfStrings = trin.split(chkpoint); var trouttmp=arrayOfStrings[1]; var chkpoint='<div id=spell-place-holder'; var arrayOfStrings = trouttmp.split(chkpoint); trouttmp1=arrayOfStrings[0]; trouttmp2=trouttmp1.replace(/<span.+?">/g,"") trouttmp2=trouttmp2.replace(/<\/span>/g,"") trouttmp2=trouttmp2.replace(/class="long_text">/g,"") trouttmp2=trouttmp2.replace(/class="short_text">/g,"") trouttmp2=trouttmp2.replace(/class="medium_text">/g,"") trouttmp2=trouttmp2.replace(/<br><\/div><\/div>/g,"") var jurl='data:text/html,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><title></title><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>'+trouttmp2+'</body></html>'; var sizex = screen.width/2.2 var sizey = screen.height/2.2 var posx=screen.width-sizex; var posy=screen.height-sizey; var wnd = window.open(jurl, this.name, "width="+(sizex-30)+",height="+(sizey-87)+",screenX="+posx+",screenY="+posy+",status=no,scrollbars=yes,resizable=yes"); if (wnd.focus) { wnd.focus(); }; } } function GetXmlHttpObject(){ if (window.XMLHttpRequest) { return new XMLHttpRequest();} if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP");} return null; } gettransdata(); } //--------Перевести текст в Google-------------- function trsel03(){ var url="http://translate.google.com/translate_t?hl=ru#auto|ru|"+trtext; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); } //---------Перевести текст в PROMT--------------- function trsel04(){ var url="http://www.translate.ru/?External=IE8Accelerator&formEncoding=utf-8&direction=ar&prmtlang=ru&status=translate&template=General&source="+trtext; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); } //---------Перевести текст в Bing Translator--------------- function trsel05(){ var url="http://www.microsofttranslator.com/?ref=IE8Activity&to=ru&SourceText="+trtext; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); } //----------Перевести слово в Яндексе------------ function trsel06(){ var urltr="http://translate.yandex.ru/tr.json/translate?callback=json.c(6)&lang=en-ru&text="+trtext; var xmlhttp function gettransdata() { xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Your browser does not support AJAX!"); return; } xmlhttp.onreadystatechange=stateChanged; xmlhttp.open("GET",urltr,true); xmlhttp.send(null); } function stateChanged() { if (xmlhttp.readyState==4) { var tryain=xmlhttp.responseText; tryain=tryain.replace(/json\.c\(6\)/g,"") tryain=tryain.slice(2,-2) var jurl='data:text/html,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><title></title><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>'+tryain+'</body></html>'; var sizex = screen.width/2.2 var sizey = screen.height/2.2 var posx=screen.width-sizex; var posy=screen.height-sizey; var wnd = window.open(jurl, this.name, "width="+(sizex-30)+",height="+(sizey-87)+",screenX="+posx+",screenY="+posy+",status=no,scrollbars=yes,resizable=yes"); if (wnd.focus) { wnd.focus(); }; } } function GetXmlHttpObject(){ if (window.XMLHttpRequest) { return new XMLHttpRequest();} if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP");} return null; } gettransdata(); } //-----------Перевести слово в Lingvo-------------- function trsel07(){ var url="http://lingvopro.abbyyonline.com/ru/Search/en-ru/"+trtext; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); } //----------Перевести слово в Mail.ru------------ function trsel08(){ var url="http://lingvo.mail.ru/?lang_id=1033&translate=&text="+trtext; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); } })();
Отредактировано Пандёнок (16-09-2012 03:10:07)
Отсутствует
с косметическими изменениями
Пандёнок
Я писал об этой кнопке тут и тут, там была куча недостатков. Твои косметические изменения в чем состоят? Напиши подробнее, нет времени вникать в код. Недостатки исправлены или ты только иконки заменил?...
Я пользуюсь этой кнопкой, за неимением лучшего..., после достаточно крупных изменений и сокращений...
Все руки не доходят переделать пункты ее сабменю в обычные меню, мне так удобнее...
Отсутствует
LBra
Под «косметическими изменениями» я понимаю внешние изменения. Точно помню, что поменял «Перевести Страницу» на «Перевести страницу» и хотел подправить что-то ещё. Мелочи, которые лично мне трудно было терпеть.
1. Не во всех вариантах перевода задействован автовыбор языка исходного текста так как жестко забит исходный английский
2. Нельзя перевести кирилличные тексты и слова, отображаются крокозябры.
Английский нигде не забит, везде автоматическое определение языка онлайн-переводчиками. Возможность автовыбора зависит от самих используемых онлайн-сервисов перевода. Подскажите, где был только английский. По второй проблеме пока ничего не могу сказать.
нужен код, определяющий язык текста страницы, в виде en, de, ru, fr и т.д.
В этом я не силён. Притом и язык страницы не гарантирует, что такая-то строка написана на том же языке.
Отредактировано Пандёнок (16-10-2012 11:12:51)
Отсутствует
после достаточно крупных изменений и сокращений...
Все руки не доходят переделать пункты ее сабменю в обычные меню, мне так удобнее...
Мне кажется, Вам в тему «Дополнения-переводчики». Там есть хороший выбор готовых расширений.
Отсутствует
Ребята.я вабсолютный ноль в Promt!!! Подскажите кто-нибудь,как сделать что бы при наведении курсора на слово оно мгновенно переводилось,например читая документ в Adobe. Спасибо...
Отсутствует
Чуть переработал эту кнопку (тестовый вариант):
- перевод в окне в Google, Яндекс, Promt, Microsoft - за оcнову взято переводчик от lex1 и его окно перевода
- при нажатии на заголовок окна открывается перевод выделенного текста в новой вкладке
- перевод в окне Яндекс, Promt, Microsoft на основе их API
- замена текста и перевод теста в окне с форматированием текста, но без сохранения стиля
- переработан перевод текста в новой вкладке Яндекс
- перевод страницы в новой вкладке для Google, Яндекс, Promt без верхнего фрейма, Microsoft с укороченным фреймом
- в настройках можно задать язык перевода, пока только для окон
- в настройках можно задать горячие клавиши
- кнопку можно конструировать по своему желанию удаляя ненужные переводчики и пункты
/*Initialization Code*/ //--------------------------------Перевод---------------------------------------- //Здесь можно изменять параметры: //Выбираем язык перевода: //Google поддерживает 71 языков и auto //Microsoft поддерживает 45 языков- "" : auto,"en","ar","bg","hu","vi","ht","nl","el","da","he","id","es","it","ca","zh-CHT","zh-CHS","tlh","tlh-Qaak","ko","lv","lt","ms","mt","de","no","fa","pl","pt","ro","ru","sk","sl","th","tr","uk","ur","fi","fr","hi","mww","cs","sv","et","ja" //Promt поддерживает 7 языков- "a": "auto", "e": "en", "s": "es", "i": "it", "g": "de", "p": "pt", "r": "ru", "f": "fr", //Яндекс поддерживает 33 языка- "": auto,"az","sq","en","hy","be","bg","hu","nl","el","da","es","it","ca","lv","lt","mk","de","no","pl","pt","ro","ru","sr","sk","sl","tr","uk","fi","fr","hr","cs","sv","et" //Варианты выбора языка переводчика для перевода текста в окне. Нужное разкоментировать. Остальное закоментировать. //Google, var langFrom_google_text = "auto";//авто var langTo_google_text = "ru"; //Microsoft var langFrom_Microsoft_text = "";//авто var langTo_Microsoft_text = "ru"; //Promt var langFrom_PROMT_text = "a";//авто var langTo_PROMT_text = "r"; //Яндекс var langFrom_yandex_text = ""; //авто //var langFrom_yandex_text = "en-"; //английский, тире обязательно var langTo_yandex_text = "ru"; //Назначем горяче клавиши //Цифровые значения назначения клавиш //http://jquery.page2page.ru/index.php5/%D0%9A%D0%BE%D0%B4%D1%8B_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2_%D0%B8_%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88#.D0.9A.D0.BE.D0.B4.D1.8B_.D0.BA.D0.BB.D0.B0.D0.B2.D0.B8.D1.88var Key = 112 // Клавища F1 для перевода текста в окне // или var key = KeyEvent.DOM_VK_F9; // Клавища F9 var Key = 112; // Клавища F1 для перевода текста в окне var Key1 = 113; // Клавища F2 для перевода страницы в той же вкладке var Key2 = 119; // Клавища F8 замена текста переводом //var Key3 = 120; // Клавища F9 для перевода страницы в новой вкладке //var Key4 = 123; // Клавища F12 для перевода текста в новой вкладке //Варианты выбора переводчика для перевода текста в окне. Нужное разкоментировать. Остальное закоментировать. var ujs = ujs_google_translate; //Google //var ujs = ujs_PROMT_translate; //PROMT //var ujs = ujs_yandex_translate; //Яндекс //var ujs = ujs_Microsoft_translate; //Microsoft //Варианты выбора переводчика для перевода страниц в той же вкладке. Нужное разкоментировать. Остальное закоментировать. var ujs1 = ujs_googlePage_translate; //Google //var ujs1 = ujs_PromtPage_translate; //Promt //var ujs1 = ujs_YandexPage_translate; //Yandex //var ujs1 = ujs_MicrosoftPage_translate; //Microsoft //Варианты выбора переводчика для перевода страниц в новой вкладке. Нужное разкоментировать. Остальное закоментировать. //var ujs2 = ujs_GooglePageNew_translate; //Google //var ujs2 = ujs_PromtPageNew_translate; //Promt //var ujs2 = ujs_yandexPageNew_translate; //Yandex //var ujs2 = ujs_MicrosoftPageNew_translate; //Microsoft //Варианты выбора переводчика для перевода теста в новой вкладке. Нужное разкоментировать. Остальное закоментировать. //var ujs3 = ujs_GoogleTextPageNew_translate; // Google //var ujs3 = ujs_PromtTextPageNew_translate; //Promt //var ujs3 = ujs_yandexTextPageNew_translate; //Yandex //var ujs3 = ujs_MicrosoftTextPageNew_translate; //Microsoft //Назначаем иконки var mainicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQtJREFUKM9VkSFOhFEQg799/CjEihWAwKDgIFwAyWHgLDjuAGfZgMCQDQkG8abtQ/z8u9A0k4rOTCez2u0GB0gCsLELbCuxLduJy0zAZgOQBBqQALEbtOQoyRgjSZLt9nOaJyf5K2zPjr01SWst8ermZtzd5euLhCQ2Y9iOHXssIvZYr1f39x/T87Ourtr7O3ZUyK6KlN5HVRaOqlxcNGACJKRItigdHFXpFdXoPVWRGmSac0suRYWUWhz7zt5/BXh65Pi6Hr7rI/IopZyqpSqldLsq9onPX3iabuHYr6o3pCVHP2Sa11nIzZdnMAmOSpyejiocVEhtjrwc15L5l4HVDgReCGTR+V9n/AAByma0J+vVwwAAAABJRU5ErkJggg=="; //var mainicon1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAFuSURBVHjapJM/SEJRGMV/Lx9lWGoENjhkOCVBBUYRUUNZ0aBE2VbQHOLaoBA4GrRGEIoIgdLQ1GASGlTjW2oI4U06GCTRH8yQ2yKKPIdeHbj8uMN37uHjHkkIwX8kAd1AX4N6VAPeZcDi8RyV/f4Z0ul7OtF/dtjRYeD63CYBjuPjW7VQKLKw4CKXe9QwGt3sHF+SRmTAkEzeEAyuEovn8XndxON5vF43sVgOn2+K1/XdtsGuwQG+H54ADDLAxsY0qdQdK8sTJBJ5trZm27hzFdO8Xq/XQZaRAU5PswQCa5ycZNnentfwZXyxPbrVwmf5uXl3HhxciOHhfREOXwqrNahhJ1UqFQE4AZx2+56IRDLCbA6IUOhSw3Kvo+0828bEw5CrZaCqqtArVVUF4JQBSqNzmIwmRPXrd7/P2EOp+tHagaIouhMoitJMUCtPLpH5WxVqEmAB7EC/zuE3oCgBhkaRDDoN6kBN+m+dfwYAI5QcdaFOn+AAAAAASUVORK5CYII="; var gticon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADPElEQVR4nGWTTWhjZRSG3/uTNr39mTqTn1KacagTqyKIlYJ2ExQCUhiprgpduRVFpLvZjOCsXEgWFqRk0RZcWLopmOnCQcPUsVBiTEZbalrGTJOZJm2aNGm++92b737fcdGZTfvAuznwnMV7OBouEI/HdSHEyNzcXCwajb7r8/n6T09P99bW1u4PDw8/SiQSbHd396IGBINBJJPJQDqdvssYK0kpO0SkiIiUUlII0SqVSr8lk8n3JycnjUsLZmdnb5bL5T+klPK5RNzp0BlzyHEFKXU+cxynubKy8tXExIQJABoAzM/PB6amptYikch70DRtv3iMh5kClPQglcKzozMMXhnAh7E3EL0RhCcEX19f/6xSqSxhdHRUT6VS39i2LYUQtJ7epm9/uEdHtSZJKUkpRa0zm75fvE+f3/mRmM3JcRyqVqulmZmZl7G6uhopl8sHtm3TduEpffH1T1Srn9FFavUmnTRaJKUkx3Go0WiojY2N22aj0Yj5fL6wJyVS6R289koYVwd7L3V07aUBAICUEkopSCk1v99/Sw+Hw5NSyi7OXZQrTQwFBy6f6DlKKSil4HkeOp0ODMO4btq23S+EgFQaAAKzO1BKQdd1AICmaSAiEBGUlBBCwHVduK4LzrlpHh4e7nHOVW+vofdbPmxkHuPWB6/D6vFD13UoRfj38TPsP6mBOxJjN64gdNUC5xz1er2l5/P5XxqNBvNEByPBLmS2n+LXzQK4zcH5ebp9GkAeEksPwJgNxhhs20axWMzo7Xb7US6Xyx7Xanh7LIhXRywklh7i9z/30Wy1YNsMfT0mrG4DGoCO64Ixhlqt5uTz+UVjZ2dHDA0NFYPB4Cd9fVb3W2MhnDZb+DldwD+FCk5OWvivVEX27ycY7APevHkNouNSNpu9l8vlvtMAIBQKGfF4/Mvp6em7oVCoxzAMOB0PjAsQEfxdPvi7DBgG4Dgu5fP5vxYWFj4uFAoHBgAwxmhvby8jpTywLOsdy7IGfKah9XSb56IOeJ7A0dGxs7m5mVpeXv60Xq8fcM7Pf+EFsVhMq1Qq18fHx2ej0ehHgUAgYpqm2W63W6VSKVMsFhe3trYeVKtV/sL5HwhICaDODiyAAAAAAElFTkSuQmCC"; var promticon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADQ0lEQVQ4jX2TX2xTdRTHT7O4GWL0gSwKmphoi3SsdFXHZiRjDExGSIxGHoTgwzDAUoM4skgEE6ckmiiEB2D8GYqbo2LLrmxZ51rWlob+W1e2ua2z2tp1ZVzrunZr161r7/3drw9TCLr4Sc7b+Zycc3IO0QNkY4M333LrD19zGbSc64aWc/VoOZepnnOZD3KuHi3nNB9rCQQcW2kl7CPjH3tPF7OUjpAxEbKDhNwEQUgSxBRBiD8GYWY/UlONzHO76YJery+4LwcmJmrHZtL5tlOVmGsjzPcQFgcIuRBBmCaIaYKYJIip18HyHiylv2Ae5wUtERGFef5ZZzQWS4sSmjgO060yzBsJi/2E3G8E4Y/lDpajDJIwDEkMwW2rHvf5fI/QlZHQFc+CBO8CQ9efOVw8s225gIewFCDkeRnEuSKwzGqw7PuQWAySlMFcrJ4NeIyv0SFv+N5nvIjdgSx2+NLYZ/Sio7nW4uTqdE7jIZ3TfFzntH6u03ON9g/aq9DQvgkftlfg5A+1aGk50EG77MHEK3cyKLHPQm6aRrkljqYu+/V/L/mNjroual0HuqwAnVeAzsix9og6Rg23xjmlLQm5OQ65OQ7FzRlstUyJtoHB7f/Ivf6+2kdNKpFMSlC3EvTjepDhBexo3tNLY+Ep9YaeyaX1tiSU9llscKSw0TOPPTecQ8FgsCgYDBZtt789Sv6NoGEVaKAU5C5F4fWSrHPIW05ERMetQxfV/fPQ+Bbw8nAWFaM5vDq6iK9tt9+77Pnu8NOz20AJDSimAd0tA4XVOGhovHR/vkgksqbqVjC5+VcBVSGGLb8zbAkxVHe642+OvpuQiSqQoAblNaClF1Hs2jQdjUbXPrSks1bHR5UjWZQPZqDxpKFyzEJ17VNckr5HIZOD2HMgUQHKrsOpn84e+c8p8zy/6qVzvZFnDJN46moYxedM+HKyGUPSCOpZI9awUjzBFCjr2+zneX7Viv/Q2tm3t+CEixWccKC68ygmhCj8wi8wCr04JnyCkruqfHd/984V5b+RnbxqbNj11VHLzrZ9kRr9O9ka614orTXseUPZvW8s39b9n/wQfr+/MBwOP+n+2V3huOOoTCQSj6+U9xeWlBixn0UlkAAAAABJRU5ErkJggg=="; var yndicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC8UlEQVQ4jY2TTWgcZQCGv1OLgkX0UlChaC8iEUo1kNJV0UiTNl1SFasYk2pELeohVkOgWkILDSTR2tWGjRILhigVoxIbf1oaWkJtIokmYWOa3253t2T/Z2dnZmfnm5nv8RZIhdIXnst7eE7vK+oH5JvPfSe5HfZ963SImxPsL9E45PD6r/KWvDYsCfaXnN2nzYp1gt2nDZqGbJqGbJrP2ixrPpZU+AoMR5GxFCNRj6Yhmxe/t6j9uji6TvDsV3kaBk1az5XQy4q0pbia8WgYNMmVFA2DJhdWXCypaPrJJPhNgere/ME1wZM9aQ78oOMrGItJlIJIyiVf8rFdxWLW4+UzBfSyImv5vDCg8URPKlf1afw+IYQQO07eIGv5jMcc+v+2OPhjnqThkbV89g9kee9njZzlM5Fw+GXOpueKwa4vU1R9dmNACCHEY91RMqbH5Ws2ZVcR01ySRY/OCwXq+5LU9yWJaS5ayeeV/hQ5y6e+L8nOkzG2dy3vEYETK8Q0l7pwgpThURdOUBdOkLc89vYmiGkug9MGe3sTRHMSWyrqwgme+fw6FccXF0XFsTl026cmFGUx7VATilITihK+lKfsKjr/yKx1CymHklTUhKIEupd4uH32H/HQRzMYZZ94XlJ2FasFyWpBcmneIFN0CYZWqO5e4vlT15CeQrM8qruXeKQ9woOHp3aKB1onieccaj9ZIKW7PNVxdY1dXfOkiy77Ty2TNVzmV21az8R59MgM93842SuEEGJzyxjVx/9Fs1xe+mKB85ECgaMRAkcj1HbOYTk+17Nl9nTNkdIljx+ZZnPLldym5j/vEUIIce+7o1R9PEWwaxbD9nA9RVqXzMRMpqImTx+bwSx7pHVJoH2aLe+Pcfc7o6+uDWnT2yNUtk1Q2TbBjsOTXJzVsKVPseRxcVYjrUtOnI1T2TbB1pbL3PXWyPop3/nGebYdGmf7B3/dkm2Hxrmj+Zyzsfn3resEGxqHOzYc+I3bonH4f3f+Dz63ssfSaOz4AAAAAElFTkSuQmCC"; var bingicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABMUlEQVQ4jY2SsU7DMBCG/TJYYqpEPDojcbq0NGM7sXdnggnigYFOyVDqLLBAkRJLTIwJSwdYw8gj8AQ/Q0kaO6HNSZbPp/P332+ZkJ7hSo2uvNdFV2rwMEOVGw28UVjl5bZZaqi8hA3aqzB/KOBKDVWUrcZ6ir/dgLlSY/HxAx5mmD++d15u7jzMjDNxpcbZyzeE+mz563o4bteaY9nj2bktwP97F7upS72yUgdLfNDIA428g9SD/6APZG84SoDGwoDQeFurly3CEh+OEmBKIFgPcWwBCCHkKPJwt7nA+dvIFBg/C9wUV3VhsbnF4L4NmKYT0Fjg9HVoApgSSL/WBuBkZQKm6QQ08jDLgraF8ZPAdX6JJnCw3AFo5IHGArMs2NVsi44SYIkPlviozraFrvgFK3TyTsPvtF8AAAAASUVORK5CYII="; var lmricon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADQ0lEQVQ4jX2TX2xTdRTHT7O4GWL0gSwKmphoi3SsdFXHZiRjDExGSIxGHoTgwzDAUoM4skgEE6ckmiiEB2D8GYqbo2LLrmxZ51rWlob+W1e2ua2z2tp1ZVzrunZr161r7/3drw9TCLr4Sc7b+Zycc3IO0QNkY4M333LrD19zGbSc64aWc/VoOZepnnOZD3KuHi3nNB9rCQQcW2kl7CPjH3tPF7OUjpAxEbKDhNwEQUgSxBRBiD8GYWY/UlONzHO76YJery+4LwcmJmrHZtL5tlOVmGsjzPcQFgcIuRBBmCaIaYKYJIip18HyHiylv2Ae5wUtERGFef5ZZzQWS4sSmjgO060yzBsJi/2E3G8E4Y/lDpajDJIwDEkMwW2rHvf5fI/QlZHQFc+CBO8CQ9efOVw8s225gIewFCDkeRnEuSKwzGqw7PuQWAySlMFcrJ4NeIyv0SFv+N5nvIjdgSx2+NLYZ/Sio7nW4uTqdE7jIZ3TfFzntH6u03ON9g/aq9DQvgkftlfg5A+1aGk50EG77MHEK3cyKLHPQm6aRrkljqYu+/V/L/mNjroual0HuqwAnVeAzsix9og6Rg23xjmlLQm5OQ65OQ7FzRlstUyJtoHB7f/Ivf6+2kdNKpFMSlC3EvTjepDhBexo3tNLY+Ep9YaeyaX1tiSU9llscKSw0TOPPTecQ8FgsCgYDBZtt789Sv6NoGEVaKAU5C5F4fWSrHPIW05ERMetQxfV/fPQ+Bbw8nAWFaM5vDq6iK9tt9+77Pnu8NOz20AJDSimAd0tA4XVOGhovHR/vkgksqbqVjC5+VcBVSGGLb8zbAkxVHe642+OvpuQiSqQoAblNaClF1Hs2jQdjUbXPrSks1bHR5UjWZQPZqDxpKFyzEJ17VNckr5HIZOD2HMgUQHKrsOpn84e+c8p8zy/6qVzvZFnDJN46moYxedM+HKyGUPSCOpZI9awUjzBFCjr2+zneX7Viv/Q2tm3t+CEixWccKC68ygmhCj8wi8wCr04JnyCkruqfHd/984V5b+RnbxqbNj11VHLzrZ9kRr9O9ka614orTXseUPZvW8s39b9n/wQfr+/MBwOP+n+2V3huOOoTCQSj6+U9xeWlBixn0UlkAAAAABJRU5ErkJggg=="; var maillicon="data:image/gif;base64,R0lGODlhEAAQAPeSAPt3d+9fX8kTE39xVP+wsCFiAP/hpv/Sd4NYAf/Rdf/Whf/Ufebe3v/Teo+Caf/Xh//hpEAYAHZWF/+3JtfSyf7s7P/cl//p6WolJakZD//Naf/19WJMIPBnZ/jOzoMkJPrY2P/GU+xxcU87FH9TEO+kDvv6+f+yGf39/NmzaJQyIKJMPO3554lXPm3OPP38/KSYImLKLehYWPeysvFubv+8NUa2C1a6H31EKox2SJSaOPaBgfbRhvbYnPt8fFpmFbN+FrCXY3UHB//HVjlTCf/BRf/pvG5SMq6Tk/F0dDOSAf/MZzGSAGhTKP/LZKx7Gv/dmT+JCPO3t8m3t4xhCf/x8ZsVFYEZBPyVleuWlvzd3fSSkko0DZVyK7ctJf/blJFsbIt9Ff++Pf/lsPOrq/LPiMctLfJ4eP/lsubk3v/YirOqmfauHGJQLd9CQlECAf7U1P/MzNnVzPnFV0AnAP23t//7+8leXkq8EJGFbPnBwfS3Pv+zG2NPKNSbKP+uDf+4K9K0d/yZmWFPK3o9FnRSJXZISG1dPPrS0rmyoreSR8MUEtytP+dQUNAhIfVsbN9AQNcwMP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJIALAAAAAAQABAAAAjbACUJFHghDgECdgYOrAKnjiAfACICwLJBoaQzjzJq1LijgsI7AUIm2TIDkZ4OAWhoGfihUSMQZES4nNlIhgeBGCDp3MlTpxspkgyZiUS0qNGiWcBYccS0aVMvK1ocGYFEiICrizKowFFIQhdFKcpQmPLmCiESVID42RPCSQIFX3pIYhABwZ8TE2oUGbLkwAMLEMageEGnBJ8wRH7M0dBADRQDaIwkksSFDSAYBQroWMAjUJAcTQblkTTgiRhGSphE4XDIwRo5JgamadNngI0beCzqFuiCRYzdkgICADs="; var lingvicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACBElEQVR42o2Sy04TYRiGJ+oFtNANKaXFTmmhB+i0DGBpNbIQ2ZpwCV6ArlwYbwA35ZDYHXFjIqh4DCalFKZIoQwWp6YxdlGSSjKLYuyiST28fP9UFPpr9Eue3fs8k0x+Qfh52uWo/P7q+MfCxRi0Y2JRvGNERw32RhkR5CORgtB6hfErn6rJ5NdGo4F/8cLj+c4F8rHot9zkJPbvTkF/9RK1chn1ev2PPO/pARfYGR7CbHs73l4YMdgdGcbexAQ+3LyB/UQCuqLgy+EharUanrlcfCAny5ihwC6FVMaQjB2ZMYjcICMMdWwM1WoVT0UnH9gKh43ASWE7zAhhK0RIErJSELquY8l5ng9s0mCmrc0QtpkQkkgKIhtkDGBzgNGPSqWCJ93dfCBDo2kKZKXTwpt+RgCZAOH3o0w/97HDwQfWacACp4SAHwpJis+HdYbXi1KphEd2Ox9I02DabDa+ovh9TYkExlpfn0G6txfFYhGLXV18YJUGcQoYgrcprJGQNvBg1cNwQ9M0LNhsfCBFg7jZ1CIQbjdSDHo8jHw+j4XOTj6w7HIdxE2m34K7Kaww6OEco6oqHlqtfGDObr+WsFg+p1qEJEMUf7GRyfy4ZbGsCH+7O4Jw5p7NdvuBw7Hx2ulsnJQZ9+fnszQ7K/zPXRKEc1MdHdfnrNblJVGsLQYCB62bI3TCqVl5ZBgZAAAAAElFTkSuQmCC";
//Функция для горячих клавиш addEventListener('keydown', function(e){ if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == Key) ujs(); if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == Key1) ujs1(); if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == Key2) ujs_TexReplace_translate(); //if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == Key3) ujs2(); //if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == Key4) ujs3(); }, false); var btn = this; btn.lastClick = { X: 0, Y: 0 }; addEventListener("mouseup", function(e) { if (e && e.button == 0 && e.view.top == content) { var lc = btn.lastClick; lc.X = e.clientX; lc.Y = e.clientY; } }, false); var safeHTMLParser = function(code) { var gUnescapeHTML = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML); var doc = document.implementation.createDocument(xhtmlns, "html", null); var body = document.createElementNS(xhtmlns, "body"); doc.documentElement.appendChild(body); body.appendChild(gUnescapeHTML.parseFragment(code, false, null, body)); return doc; }; //Создаем окно для перевода var createWindow = function(text, status, title, id, pos, size){ var win = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content; var doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId); var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()}; if(w)w.closeWin(); w = doc.createElement('div'); w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");')); w.id = wId; w.closeWin = function(){ doc.removeEventListener('keydown', keyDown, false); this.parentNode.removeChild(this); }; w.addEle = function(str, style){ var ele = doc.createElement('div'); ele.setAttribute('style', style); if(str){ ele.innerHTML = str; for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){ el = all[i]; if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){ el.parentNode.removeChild(el); }else{ for(var att = el.attributes, j = att.length; j--;){ if(/^on[a-z]+$/i.test(att[j].name))att[j].value = ''; } } } }; return this.appendChild(ele); }; var img = doc.createElement('div'); img.setAttribute('style', 'display:block;float:right;width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");'); img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close'; img.addEventListener('click', function(){this.parentNode.closeWin()}, false); w.appendChild(img); w.addEle(title, 'display:table;color:#000;font:16px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;'); var cnt = w.addEle(text, 'display:block;border:1px solid #aaa;margin:2px 0 1px 0;padding:4px;background-color:#fafcfe;color:#000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;'); w.addEle(status, 'display:table;color:#555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;'); w.addEventListener('mousedown', function(e){ if(e.target == w){ e.preventDefault(); var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top); var mouseMove = function(ev){ w.style.left = origX+ev.clientX-grabX+'px'; w.style.top = origY+ev.clientY-grabY+'px'; }; doc.addEventListener('mousemove', mouseMove, false); doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false); } }, false); doc.documentElement.appendChild(w); if(size){ cnt.style.height = size.height; cnt.style.width = size.width; }else{ for(var i = 3; i < 10; i++){ if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){ cnt.style.height = 50*i+'px'; cnt.style.width = 100*i+'px'; }else break; } }; var docEle = doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body; var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight; if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0}; if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0}; var hW = parseInt(w.offsetWidth/2); w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px'; w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px'; w.style.visibility = 'visible'; doc.addEventListener('keydown', keyDown, false); }; //Функия выделения текста var getSel = function (w) { var s, d = w.document; if (d.selection) { var r = d.selection.createRange(); s = r ? r.text : '' } else { //s = d.getSelection().toString(); s = d.getSelection(); if (!s) { var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length; while(e = (i > 0) ? t[--i] : u[-i--])try{ if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break }catch(x){} } }; if (!s) for (var j = 0, f; f = w.frames[j]; j++) { try { if (s = getSel(f)) break } catch(x) {} }; return s }; function GetXmlHttpObject(){ if (window.XMLHttpRequest){ return new XMLHttpRequest();} if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP");} return null; };
//----------Перевести выделенный текст в окне Google------------ function ujs_google_translate() { var win = content, txt = getSel(win); if (txt) { var xhr = new XMLHttpRequest(); var encTxt = 'text=' + encodeURIComponent(txt), post = encTxt.length > 1024; var url="http://translate.google.com/translate_t?"+ (post ? '' : encTxt + '&')+"&sl="+langFrom_google_text+"&tl="+langTo_google_text+"&hl=ru&eotf=0&ujs=gtt"; xhr.open(post ? 'POST' : 'GET', url, true); if(post)xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function() { try{ if (xhr.readyState == 4 && xhr.status == 200) { var result = '', status = '', tmp = safeHTMLParser(xhr.responseText); var r = tmp.querySelector('#result_box'); result = r.innerHTML; var sl = tmp.querySelector('#nc_sl'), dl = tmp.querySelector('#nc_dl'), tl = tmp.querySelector('#nc_tl'); if(sl && dl && tl){ status = ((dl.value || sl.value)+' -\u203A '+tl.value).toUpperCase(); }; createWindow(result, status, '<a href="'+url.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Google Translate</a>', '_gt', btn.lastClick); } } catch (x){}; }; xhr.send(post ? encTxt : null); }; }; //----------Перевести выделенный текст в окне Microsoft------------ function ujs_Microsoft_translate() { var win = content, txt = getSel(win); if (txt) { var xhr = new XMLHttpRequest(); var encTxt = encodeURIComponent(txt), post = encTxt.length > 1024; var urlt = 'http://www.bing.com/translator/?from='+langFrom_Microsoft_text+'&to='+langTo_Microsoft_text+'&SourceText=' + encTxt; var keyus = "4A3CABC2D69C013FAB95D4E92B66F1AC2D6D2E11"; var uridetect = "http://api.microsofttranslator.com/V2/Ajax.svc/Detect?appId="+keyus+"&text="+ encTxt; var url="http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId="+keyus+"&from="+langFrom_Microsoft_text+"&to="+langTo_Microsoft_text+"&text="+ encTxt; if (txt && location. hostname != 'http://api.microsofttranslator.com/') { var result="Подождите идет перевод", status=""; createWindow(result, status,'<a href="'+url.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Bing</a>', '_gt', btn.lastClick); } function gettransdata(){ xmlhttp=GetXmlHttpObject(); xmlhttp.onreadystatechange=stateChanged; xmlhttp.open(post ? 'POST' : 'GET', url, true); if(post)xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.send(post ? encTxt : null); xmlhttp1=GetXmlHttpObject(); xmlhttp1.onreadystatechange=stateChanged; xmlhttp1.open('GET', uridetect, true); xmlhttp1.send(null); } function stateChanged(){ if (xmlhttp.readyState==4 && xmlhttp1.readyState==4) { var tryain=xmlhttp.responseText; tryain=tryain.replace(/\"/g, '').replace(/\\u000d/g, " ").replace(/\\u000a/g, "<br />").replace(/\//g, ''); var tryain1=xmlhttp1.responseText; tryain1=tryain1.replace(/\"/g, ''); var result = tryain; var status =(tryain1 +' -\u203A '+ "ru").toUpperCase(); createWindow(result, status, '<a href="'+urlt.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Bing</a>', '_gt', btn.lastClick); } } gettransdata(); } }; //----------Перевести текст в окне Яндекс------------ function ujs_yandex_translate() { var win = content, txt = getSel(win); if (txt) { var xhr = new XMLHttpRequest(); var encTxt = encodeURIComponent(txt); var keyuser = "trnsl.1.1.20130831T054804Z.3af58fbf2907f106.1b447e5894ddab0c2ec8625793c42e25f7526d35"; var url ="https://translate.yandex.net/api/v1.5/tr.json/translate?key="+keyuser+"&lang="+langFrom_yandex_text+langTo_yandex_text+"&text=" + encTxt; function gettransdata(){ xmlhttp=GetXmlHttpObject(); xmlhttp.onreadystatechange=stateChanged; xmlhttp.open('GET', url, true); xmlhttp.send(null); } function stateChanged(){ if (xmlhttp.readyState==4) { var tryain=xmlhttp.responseText; tryain=tryain.replace(/\\n/g, "<br />"); var data = JSON.parse( tryain ); var result = data.text; var status1 = data.lang; var status =(status1.replace(/\-/g, "-\u203A")).toUpperCase(); var urlt = 'http://translate.yandex.ru/?text=' + encTxt + '&lang=' + status1; createWindow(result, status, '<a href="'+urlt.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Яндекс</a>', '_gt', btn.lastClick); } } gettransdata(); } }; //----------Перевести выделенный текст в окне PROMT------------ function ujs_PROMT_translate() { var win = content, lng = win.navigator.language.slice(0, 2), txt = getSel(win); if (txt) { var xhr = new XMLHttpRequest(); var encTxt = encodeURIComponent(txt); var url = 'http://www.translate.ru/?External=prmtlang=ru&status=translate&source=' + encTxt; function gettransdata(){ xmlhttp=GetXmlHttpObject(); xmlhttp.onreadystatechange = stateChanged; xmlhttp.open( "POST", "http://www.translate.ru/services/TranslationService.asmx/GetTranslation", true ); var post = {}; post.dirCode = ""; post.template = "General"; post.text = encTxt; post.lang = "ru"; post.limit = 3000; post.useAutoDetect = true; post.key = ""; post.ts = "MainSite"; post.tid = ""; post.dirCode += langFrom_PROMT_text; post.dirCode += langTo_PROMT_text; post = JSON.stringify(post); xmlhttp.setRequestHeader("Referer", "http://www.translate.ru/"); xmlhttp.setRequestHeader("Content-type", "application/json; charset=utf-8"); xmlhttp.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01"); xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xmlhttp.setRequestHeader("DNT", "1"); xmlhttp.setRequestHeader("Content-Length", post.length); xmlhttp.send( post ); } function stateChanged(){ if (xmlhttp.readyState==4) { var tryain=xmlhttp.responseText; var data = JSON.parse( tryain ); var result1 = data.result; result1 = result1.replace (/Загружаем.../g, " ").replace(/Показать полную словарную статью/g, " ").replace(/Список сокращений/g, " ").replace(/powered by/g, " "); var status1 = data.dirNames; status1=status1.replace(/определен автоматически/g, " ").replace(/выполнен/g, " ").replace(/\(/g, '').replace(/\)/g, ''); status=(status1).toUpperCase(); createWindow(result1, status, '<a href="'+url.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Промт</a>', '_gt', btn.lastClick); } } gettransdata(); } }; //----------Заменить текст переводом------------ function ujs_TexReplace_translate() { var win = content, txt = getSel(win); if (txt) { var httpRequest = null; var baseUrl = "http://translate.google.hu/translate_t"; var urlParams = "text=" + encodeURIComponent(txt) + "&hl==ru&langpair=auto|ru&tbb=1"; function removeHTMLTags(mitkell) { var strTagStrippedText = mitkell.replace(/this.style.backgroundColor='#fff'/ig, "").replace(/this.style.backgroundColor='#ebeff9'/ig, ""); return strTagStrippedText; } function infoReceived() { var output = httpRequest.responseText; if (txt[0] == " ") { var kezdospace = " "; } else { var kezdospace = ""; } if (txt[txt.length - 1] == " ") { var vegespace = " "; } else { var vegespace = ""; } if (output.length) { output = output.replace(/"/gi,'"'); output = output.replace(/</gi,'<'); output = output.replace(/>/gi,'>'); output = output.replace(/&/gi,'&'); output = output.replace(/'/gi,"'"); var fieldArray = output.split('</head>'); if (fieldArray[1].search('class="short_text"')!=-1) { var tempResz = fieldArray[1].split('<span id=result_box class="short_text">'); } else if (fieldArray[1].search('class="medium_text"')!=-1) { var tempResz = fieldArray[1].split('<span id=result_box class="medium_text">'); } else { var tempResz = fieldArray[1].split('<span id=result_box class="long_text">'); } var kimenet = tempResz[1].split('</span></div>'); var range = content.getSelection().getRangeAt(0); range.deleteContents(); range.insertNode(range. createContextualFragment(kezdospace + removeHTMLTags(kimenet[0])+ vegespace)); } } httpRequest = new XMLHttpRequest(); httpRequest.open("POST", baseUrl, true); httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); httpRequest.setRequestHeader("Content-length", urlParams.length); httpRequest.setRequestHeader("Connection", "close"); httpRequest.onload = infoReceived; httpRequest.send(urlParams); } }; //--------Перевести страницу с Google-------------- function ujs_googlePage_translate() { var tab = document.getElementById('content'); var win = tab.selectedBrowser.contentWindow.top.window; d=win.document;b=d.body;o=d.createElement('scri'+'pt');o.setAttribute('src','http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&hl=ru');o.setAttribute('type','text/javascript');b.appendChild(o);v=b.insertBefore(d.createElement('div'),b.firstChild);v.id='google_translate_element';v.style.display='none';p=d.createElement('scri'+'pt');p.text='function googleTranslateElementInit(){var tElem = new google.translate.TranslateElement({pageLanguage:""},"google_translate_element");setTimeout(function() { tElem.showBanner(true); },100);}';p.setAttribute('type','text/javascript');b.appendChild(p); }; //---------Перевести страницу с Promt--------------- function ujs_PromtPage_translate() { var urlt = content.document.location.href; var url = "http://www.translate.ru/siteTranslation/autolink/?direction=ar&template=General&sourceURL="+encodeURIComponent(urlt); loadURI(url); }; //---------Перевести страницу с Yandex--------------- function ujs_YandexPage_translate() { var urlt = content.document.location.href; var url = "http://translate.yandex.net/translate_f?dir=auto&lang=en-ru&ui=ru&url="+encodeURIComponent(urlt); loadURI(url); }; //---------Перевести страницу с Microsoft--------------- function ujs_MicrosoftPage_translate() { var urlt = content.document.location.href; var url = "http://www.microsofttranslator.com/bv.aspx?from=&to=ru&a="+encodeURIComponent(urlt); loadURI(url); }; //---------Перевести страницу с Yandex в новой вкладке без фрейма--------------- function ujs_yandexPageNew_translate() { var urllink = content.location.href.replace(/^https:/, '').replace(/^http:/, '').replace(/\/\//, ''); var url = "http://translate.yandex.net/tr-url/ru.ru/"+urllink; var ctabpos = gBrowser.mCurrentTab._tPos +1; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); var css = '@-moz-document domain("translate.yandex.net") {\ #yandexTranslateWarning { display: none !important; }\ }'; var uri = makeURI("data:text/css," + encodeURIComponent(css)); var sss = Cc["@mozilla.org/content/style-sheet-service;1"]. getService(Ci.nsIStyleSheetService); try { sss.unregisterSheet(uri, sss.AGENT_SHEET) } catch(e) { sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET) }; }; //---------Перевести страницу с Microsoft в новой вкладке с укороченным фреймом--------------- function ujs_MicrosoftPageNew_translate() { if ( "noscriptUtil" in window ) { var autoReload = custombuttons.getPrefs("noscript.autoReload"); if ( autoReload ) custombuttons.setPrefs("noscript.autoReload", false); noscriptOverlay.allowPage(); if ( autoReload ) setTimeout(function() { custombuttons.setPrefs("noscript.autoReload", true) }, 10) } var newTab = gBrowser.duplicateTab(gBrowser.mCurrentTab); ++gBrowser.tabContainer.selectedIndex; gBrowser.selectedTab = newTab gBrowser.addEventListener("pageshow", function(event) { gBrowser.removeEventListener("pageshow", arguments.callee, true); content.document.location = "javascript:var s = content.document.createElement('script'); s.type = 'text/javascript'; s.src = 'http://labs.microsofttranslator.com/bookmarklet/default.aspx?f=js&to=ru'; content.document.body.insertBefore(s, document.body.firstChild); void(0);"; }, true); }; //---------Перевести страницу с Promt в новой вкладке без фрейма--------------- function ujs_PromtPageNew_translate() { var newTab = gBrowser.duplicateTab(gBrowser.mCurrentTab); ++gBrowser.tabContainer.selectedIndex; gBrowser.selectedTab = newTab gBrowser.addEventListener("pageshow", function(event) { gBrowser.removeEventListener("pageshow", arguments.callee, true); if ( "noscriptUtil" in window ) { noscriptOverlay.allowPage(); BrowserStop(); } content.document.location = "javascript:location=(location.hostname=='www.translate.ru'?unescape(location.search.split('url=')[1].split('&')[0]):'http://www.translate.ru/rus/url/tran_url.php?direction=er&template=General&url='+escape(location))"; }, true); }; //--------Перевести страницу с Google в новой вкладке без фрейма-------------- function ujs_GooglePageNew_translate() { var urlt = content.document.location.href; var url = "http://translate.google.com/translate?hl=ru&sl=auto&tl=ru&u="+ encodeURIComponent(urlt) + "&sandbox=1"; setTimeout(function() { gBrowser.selectedTab = gBrowser.duplicateTab( gBrowser.mCurrentTab ); gBrowser.addEventListener("pageshow", function(e) { this.removeEventListener("pageshow", arguments.callee, true); content.document.location = url; }, true); }, 50) var css = '@-moz-document domain("translate.google.com") {\ #gb, #gt-c:not([class="g-section"]) { display: none !important; }\ #contentframe { top: 0 !important; }\ }'; var uri = makeURI("data:text/css," + encodeURIComponent(css)); var sss = Cc["@mozilla.org/content/style-sheet-service;1"]. getService(Ci.nsIStyleSheetService); try { sss.unregisterSheet(uri, sss.AGENT_SHEET) } catch(e) { sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET) }; }; //--------Перевести текст в Google в новой вкладке-------------- function ujs_GoogleTextPageNew_translate() { var win = content, txt = getSel(win), encTxt = encodeURIComponent(txt); var ctabpos = gBrowser.mCurrentTab._tPos +1; var url="http://translate.google.com/translate_t?text="+encTxt+"&sl=auto&tl=ru&hl=ru&eotf=0&ujs=gtt"; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); }; //--------Перевести текст в Яндексе в новой вкладке-------------- function ujs_yandexTextPageNew_translate() { var win = content, txt = getSel(win), encTxt = encodeURIComponent(txt), post = encTxt.length > 1024; var ctabpos = gBrowser.mCurrentTab._tPos +1; if (txt) { var xhr = new XMLHttpRequest(); var keyuser = "trnsl.1.1.20130831T054804Z.3af58fbf2907f106.1b447e5894ddab0c2ec8625793c42e25f7526d35"; var url ="https://translate.yandex.net/api/v1.5/tr.json/detect?key="+keyuser+"&lang=ru&text=" + (post ? '' : encTxt); function gettransdata(){ xmlhttp=GetXmlHttpObject(); xmlhttp.onreadystatechange=stateChanged; xmlhttp.open(post ? 'POST' : 'GET', url, true); if(post)xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.send(post ? encTxt : null); } function stateChanged(){ if (xmlhttp.readyState==4) { var tryain=xmlhttp.responseText; var data = JSON.parse( tryain ); var status1 = data.lang; var urlt="http://translate.yandex.ru/?text=" + encTxt + "&lang=" + status1 + "-ru"; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(urlt), ctabpos); } } gettransdata(); } }; //---------Перевести текст в PROMT в новой вкладке--------------- function ujs_PROMTTextPageNew_translate(){ var win = content, txt = getSel(win), encTxt = encodeURIComponent(txt); var ctabpos = gBrowser.mCurrentTab._tPos +1; var url="http://www.translate.ru/?External=prmtlang=ru&status=translate&source="+encTxt; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); }; //---------Перевести текст в Microsoft в новой вкладке--------------- function ujs_MicrosoftTextPageNew_translate(){ var ctabpos = gBrowser.mCurrentTab._tPos +1; var win = content, txt = getSel(win), encTxt = encodeURIComponent(txt); var url="http://www.bing.com/translator/?to=ru&SourceText="+encTxt; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); }; //----------Перевести слово в Яндексе------------ function ujs_yandexWord_translate(){ var ctabpos = gBrowser.mCurrentTab._tPos +1; var win = content, txt = getSel(win), encTxt = encodeURIComponent(txt); var url="http://slovari.yandex.ru/"+encTxt; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); }; //-----------Перевести слово в Lingvo-------------- function ujs_LingvoWord_translate(){ var ctabpos = gBrowser.mCurrentTab._tPos +1; var win = content, txt = getSel(win), encTxt = encodeURIComponent(txt); var url="http://lingvopro.abbyyonline.com/ru/Search/en-ru/"+encTxt; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); }; //----------Перевести слово в Mail.ru------------ function ujs_MailWord_translate(){ var ctabpos = gBrowser.mCurrentTab._tPos +1; var win = content, txt = getSel(win), encTxt = encodeURIComponent(txt); var url="http://lingvo.mail.ru/?lang_id=1033&translate=&text="+encTxt; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), ctabpos); };
//Контекстное меню для перевода страниц------------------------------------------- (function () { if ( document.getElementById("TranslatePage") ) return; var menu = document.createElement("menu"); var menuPopup = document.createElement("menupopup"); var contextMenu = document.getElementById("contentAreaContextMenu"); menu.id = "TranslatePage"; menu.setAttribute("label", "Перевести страницу"); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", mainicon); contextMenu.insertBefore(menu, document.getElementById("context-sep-properties") ); menu.appendChild( menuPopup ); addDestructor(function() { contextMenu.removeChild( menu ) }); var array = [ {label:"Google", func: ujs_googlePage_translate, image:gticon}, {label:"Promt ", func: ujs_PromtPage_translate, image:promticon}, {label:"Yandex ", func: ujs_YandexPage_translate, image:yndicon}, {label:"Microsoft", func: ujs_MicrosoftPage_translate, image:bingicon}, { separator: '' }, {label:"Google в новой вкладке", func: ujs_GooglePageNew_translate, image:gticon}, {label:"Promt в новой вкладке", func: ujs_PromtPageNew_translate, image:promticon}, {label:"Yandex в новой вкладке", func: ujs_yandexPageNew_translate, image:yndicon}, {label:"Microsoft в новой вкладке", func: ujs_MicrosoftPageNew_translate, image:bingicon} ]; array.forEach(function( m ) { if ( "separator" in m ) { menuPopup.appendChild( document.createElement("menuseparator") ); return }; var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m.label); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", m.image); mItem.addEventListener("command", m.func, false); menuPopup.appendChild( mItem ); }); addEventListener("popupshowing", function() { menu.hidden = gContextMenu.isTextSelected || gContextMenu.onImage || gContextMenu.onTextInput ; }, true, contextMenu ); })(); //Контекстное меню для перевода текста------------------------------------------- (function () { if ( document.getElementById("TranslateSelected") ) return; var menu = document.createElement("menu"); var menuPopup = document.createElement("menupopup"); var contextMenu = document.getElementById("contentAreaContextMenu"); menu.id = "TranslateSelected"; menu.setAttribute("label", "Перевести выделенный текст"); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", mainicon); contextMenu.insertBefore(menu, document.getElementById("context-sep-properties") ); menu.appendChild( menuPopup ); addDestructor(function() { contextMenu.removeChild( menu ) }); var array = [ {label:"Заменить текст переводом", func: ujs_TexReplace_translate, image:gticon}, { separator: ''}, {label:"В окне Google", func: ujs_google_translate, image:gticon}, {label:"В окне Яндекс", func: ujs_yandex_translate, image:yndicon}, {label:"В окне PROMT", func: ujs_PROMT_translate, image:promticon}, {label:"В окне Microsoft", func: ujs_Microsoft_translate, image:bingicon}, { separator: ''}, {label:"В Google в новой вкладке", func: ujs_GoogleTextPageNew_translate, image:gticon}, {label:"В Яндексе в новой вкладке", func: ujs_yandexTextPageNew_translate, image:yndicon}, {label:"В PROMT в новой вкладке", func: ujs_PROMTTextPageNew_translate, image:promticon}, {label:"В Microsoft в новой вкладке", func: ujs_MicrosoftTextPageNew_translate, image:bingicon}, { separator: ''}, {label:"Слово в Яндексе в новой вкладке", func: ujs_yandexWord_translate, image:yndicon}, {label:"Слово в Lingvo в новой вкладке", func: ujs_LingvoWord_translate, image:lingvicon}, {label:"Слово в Mail.ru в новой вкладке", func: ujs_MailWord_translate, image:maillicon} ]; array.forEach(function( m ) { if ( "separator" in m ) { menuPopup.appendChild( document.createElement("menuseparator") ); return }; var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m.label); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", m.image); mItem.addEventListener("command", m.func, false); menuPopup.appendChild( mItem ); }); addEventListener("popupshowing", function() { menu.hidden = !gContextMenu.isTextSelected; }, false, contextMenu ); })();
Отредактировано Andrey_Krropotkin (22-10-2013 23:18:03)
Отсутствует
okkamas_knife можно создать, это не проблема, взять любую кнопку со сниппетами из вашей темы и подставить свой текст.
Функции этой кнопки еще не доработаны до конца.
В частности отсутствует система предупреждения об ошибках: например некоторые не поддерживают перевод например ru-ru или некоторые языки или превышение лимита теста, забанивание ключа API и т.д.
Можно добавить звуковое сопровождение и т.д.
Когда все доработается, тогда можно и говорить о создании нормального конструктора.
Отсутствует
Отсутствует
bunda1 Посмотрел, согласен, предложи варианты.
Отсутствует
bunda1 В смысле? Собирал и проверял только на Сustom Buttons.
Отсутствует
Andrey_Krropotkin
Ну в коде меню лишний код и я подумал что это что то значит.
Добавлено 22-10-2013 21:02:49
Andrey_Krropotkin
Вот пример кода меню который не дублируется и компактней:
// Добавляем подменю в контекстного меню на странице для выделенного текста ................................ (function () { var menu = document.createElement("menu"); var menuPopup = document.createElement("menupopup"); var contextMenu = document.getElementById("contentAreaContextMenu"); menu.setAttribute("label", "Find"); contextMenu.insertBefore(menu, document.getElementById("context-sep-properties") ); menu.appendChild( menuPopup ); addDestructor(function() { contextMenu.removeChild( menu ) }); var array = [ { label:"Найти на странице", func: findToContex }, { label:"Поиск по сайту(google)", func: searchToSite }, { label:"Выделить текст на странице", func: highlightSel }, { label:"Автовыделение, добавить текст", func: addSel } ]; array.forEach(function( m ) { var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m.label); mItem.addEventListener("command", m.func, false); menuPopup.appendChild( mItem ); }); contextMenu.addEventListener("popupshowing", function() { menu.hidden = !gContextMenu.isTextSelected; }, false); function findToContex() { alert("Найти на странице"); }; function searchToSite() { alert("Поиск по сайту(google)"); }; function highlightSel() { alert("Выделить текст на странице"); }; function addSel() { alert("Автовыделение, добавить текст"); } })();
Отредактировано bunda1 (22-10-2013 21:02:49)
Отсутствует
bunda1 Спасибо, если ты про блок var menuId = "context-ext-google-translate" - забыл удалить, был пункт в контекстном меню перевод на английский от кнопки Lex1. Сейчас удалю. Попробую переделать по твоему варианту. Спасибо.
Отредактировано Andrey_Krropotkin (22-10-2013 21:09:10)
Отсутствует
Andrey_Krropotkin
Вот с сепаратором:
// Добавляем подменю в контекстного меню на странице для выделенного текста ................................ (function () { var menu = document.createElement("menu"); var menuPopup = document.createElement("menupopup"); var contextMenu = document.getElementById("contentAreaContextMenu"); menu.setAttribute("label", "Find"); contextMenu.insertBefore(menu, document.getElementById("context-sep-properties") ); menu.appendChild( menuPopup ); addDestructor(function() { contextMenu.removeChild( menu ) }); var array = [ { label:"Найти на странице", func: findToContex }, { label:"Поиск по сайту(google)", func: searchToSite }, { separator: '' }, { label:"Выделить текст на странице", func: highlightSel }, { label:"Автовыделение, добавить текст", func: addSel } ]; array.forEach(function( m ) { if ( "separator" in m ) { menuPopup.appendChild( document.createElement("menuseparator") ); return }; var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m.label); mItem.addEventListener("command", m.func, false); menuPopup.appendChild( mItem ); }); addEventListener("popupshowing", function() { menu.hidden = !gContextMenu.isTextSelected; }, false, contextMenu ); function findToContex() { alert("Найти на странице"); }; function searchToSite() { alert("Поиск по сайту(google)"); }; function highlightSel() { alert("Выделить текст на странице"); }; function addSel() { alert("Автовыделение, добавить текст"); } })();
Отредактировано bunda1 (22-10-2013 22:21:46)
Отсутствует
bunda1 подправил меню.
Отредактировано Andrey_Krropotkin (22-10-2013 23:03:23)
Отсутствует
Andrey_Krropotkin
Я допустил ошибку, исправь:
contextMenu.addEventListener("popupshowing", function() { ......................... }, false);
на:
addEventListener("popupshowing", function() { ......................... }, false, contextMenu );
Отсутствует
bunda1 исправил
Отсутствует
Создание контекстного меню
Мне кажется это лишний код:
и
не влияет ни на что.
Отсутствует
bunda1 Если есть этот код, то не двоится меню. У меня по крайней мере. Перестраховка.
Отсутствует
Andrey_Krropotkin
Он не должен двоится, для этого там addDestructor(function() { contextMenu.removeChild( menu ) });
У меня не дублируется , попробуй без if ( document.getElementById(........
Отсутствует
bunda1 попробовал даже на чистом профиле - все равно двоится без этого кода. Может это только у меня.
Да, еще заметил, если открыть кнопку для редактирования и потом закрыть - остается одно меню, но после перезагрузки браузера опять два.
Отредактировано Andrey_Krropotkin (23-10-2013 22:00:32)
Отсутствует
Страницы: 1