bpierre / gtranslate Goto Github PK
View Code? Open in Web Editor NEWTranslate the selected text using Google Translate.
Home Page: https://addons.mozilla.org/firefox/addon/gtranslate/
License: Mozilla Public License 2.0
Translate the selected text using Google Translate.
Home Page: https://addons.mozilla.org/firefox/addon/gtranslate/
License: Mozilla Public License 2.0
This feature used to exist on gtranslate, but it disappeared with the rewrite.
When the user clicked on the result, instead of opening a new tab, the selected text was replaced by the translated text.
I think it could be more clear to add a new item under the translation, describing explicitly the action: “Replace the selection”.
Should gtranslate be available in private mode? It makes requests to an external service, but no cookies are sent so I guess it’s fine.
Hi there
Thanks for producing this extension - it really is one of the best!
I extensively use this extension by highlighting foreign text in a page and using the CTRL+SHIFT+L keyboard extension to open the gTranslate dialog. However, looking at the homepage on mozilla and the readme here, I don't actually know how I ever found this out, because I can't find it mentioned anywhere.
Would you mind documenting what the official shortcut is or how a user may configure one?
Thank you in advance
it happens again, results of about:support
{
"application": {
"name": "Firefox",
"version": "36.0.1",
"buildID": "20150305021524",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0",
"updateChannel": "release",
"supportURL": "https://support.mozilla.org/1/firefox/36.0.1/WINNT/en-US/",
"numTotalWindows": 1,
"numRemoteWindows": 0
},
"crashes": {
"submitted": [],
"pending": 0
},
"modifiedPreferences": {
"accessibility.typeaheadfind.flashBar": 0,
"browser.cache.disk.smart_size.first_run": false,
"browser.cache.disk.capacity": 358400,
"browser.cache.frecency_experiment": 1,
"browser.places.smartBookmarksVersion": 7,
"browser.sessionstore.upgradeBackup.latestBuildID": "20150305021524",
"browser.startup.homepage_override.mstone": "ignore",
"browser.startup.homepage_override.buildID": "20150305021524",
"dom.mozApps.used": true,
"extensions.lastAppVersion": "36.0.1",
"gfx.direct3d.last_used_feature_level_idx": 0,
"media.gmp-gmpopenh264.lastUpdate": 1434361047,
"media.gmp-gmpopenh264.version": "1.3",
"media.gmp-manager.lastCheck": 1435566307,
"network.cookie.prefsMigrated": true,
"places.database.lastMaintenance": 1435484644,
"places.history.expiration.transient_current_max_pages": 104858,
"plugin.importedState": true,
"plugin.disable_full_page_plugin_for_types": "application/pdf",
"privacy.sanitize.migrateFx3Prefs": true,
"storage.vacuum.last.places.sqlite": 1434361215,
"storage.vacuum.last.index": 1
},
"lockedPreferences": {},
"graphics": {
"numTotalWindows": 1,
"numAcceleratedWindows": 1,
"windowLayerManagerType": "Direct3D 11",
"windowLayerManagerRemote": true,
"adapterDescription": "NVIDIA GeForce 210 ",
"adapterVendorID": "0x10de",
"adapterDeviceID": "0x0a65",
"adapterSubsysID": "35301458",
"adapterRAM": "1024",
"adapterDrivers": "nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um",
"driverVersion": "9.18.13.1407",
"driverDate": "2-9-2013",
"adapterDescription2": "",
"adapterVendorID2": "",
"adapterDeviceID2": "",
"adapterSubsysID2": "",
"adapterRAM2": "",
"adapterDrivers2": "",
"driverVersion2": "",
"driverDate2": "",
"isGPU2Active": false,
"direct2DEnabled": true,
"directWriteEnabled": true,
"directWriteVersion": "6.2.9200.16571",
"webglRenderer": "Google Inc. -- ANGLE (NVIDIA GeForce 210 Direct3D9Ex vs_3_0 ps_3_0)",
"info": {
"AzureCanvasBackend": "direct2d",
"AzureSkiaAccelerated": 0,
"AzureFallbackCanvasBackend": "cairo",
"AzureContentBackend": "direct2d"
}
},
"javaScript": {
"incrementalGCEnabled": true
},
"accessibility": {
"isActive": false,
"forceDisabled": 0
},
"libraryVersions": {
"NSPR": {
"minVersion": "4.10.7",
"version": "4.10.7"
},
"NSS": {
"minVersion": "3.17.4 Basic ECC",
"version": "3.17.4 Basic ECC"
},
"NSSUTIL": {
"minVersion": "3.17.4",
"version": "3.17.4"
},
"NSSSSL": {
"minVersion": "3.17.4 Basic ECC",
"version": "3.17.4 Basic ECC"
},
"NSSSMIME": {
"minVersion": "3.17.4 Basic ECC",
"version": "3.17.4 Basic ECC"
}
},
"userJS": {
"exists": false
},
"extensions": [
{
"name": "gTranslate",
"version": "0.9.1-signed",
"isActive": true,
"id": "{aff87fa2-a58e-4edd-b852-0a20203c1e17}"
}
],
"experiments": []
}
Hi - I wonder if you could try to make gtranslate addon compatible with a Firefox fork called Pale Moon? It's a pre-Australis version of Firefox that is compatible with most other addons, but unfortunately not with gtranslate.
I read on their forum that the reason for incompatibility is something to do with chrome manifest GUID hardcoded to Firefox? That doesn't make a lot of sense to me, but they suggest it is simple to fix.
http://forum.palemoon.org/viewtopic.php?f=3&t=6473
Thanks - really appreciate the excellent addon!
Hi all,
Mozilla introduce a new way to develop add-on (again). Here comes the WebExtensions.
The main advantages of WebExtension for gTranslate are the following:
But we need to repackage and use the new common API.
There is already some issues that could be fixed with:
And some that could be easier with:
Moreover, this new extension format seems to be largely adopted by browser in the coming month.
It could be a good way to gTranstale to become even more popular throw the other browser.
So what do you think about porting the current add-on ?
hello,
I have a problem with gtranslate, time ago it simply stop working.
If I select any text on any web page and then right click, well, gtranslate do not appears as usual...
why?
I also tried to uninstall completely firefox but the problem is still present, with a "fresh" firefox just installed
I am searching for a solution..
Hi, bonsoir,
another issue with gtranslate :(
when i try to translate something to french it says "google translate service error".
Maybe it's time to change the translator (bing?). I don't know.
Your module is awesome and really simple, love it! Just one thing is missing - saving all my translation requests , so I could read them in a free time and learn the words I have translated in the past.
Can I have a feature request then - you add this simple feature to your module so we could also learn translated words and sentences in a free time and after remembering them - just delete each ?
I love this addons! Please make a port for Komodo.
Can you add some feature?
When I mark some text and press some shortcut like ctrl+y it could display window with translated text.
Now when I click the right mause button and choose gTranslate to see translated text, it takes too much time. Can you add shortcut, please? It will be awesome.
I really waiting for this feature.
Doesn't show translation, only "fetching translation" message. I've used your addon for a long time, and never saw this error before, please fix it.
I have the following issue under Firefox 8:
http://imageshack.us/photo/my-images/829/gtranslate.png/
Menu's label is empty and the submenu is missing.
Firefox 44 brings Ecmascript 6 support and include some breaking changes.
For more details, check the blog post about this topic.
The extension is affected (for example, no more translation due to code like:
// Context Menu
const LABEL_LOADING = 'Fetching translation…'
const LABEL_TRANSLATE = 'Translate “{0}”'
const LABEL_TRANSLATE_PAGE = 'Translate Page ({0} > {1})'
const LABEL_CHANGE_LANGUAGES = 'Change Languages ({0} > {1})'
This issue is a tracking issue for the Firefox 44 support.
gTranslate work for a while and is locked, you must enter the code to work again. User DDRPTP on page opinion, he wrote: "gtranslate not working properly, translate API has changed.
We Need to go to this website:http://translate.google.com/translate_a/t?client=gtranslate&sl=
Enter the code gtranslate resume normal operation."
Source: https://addons.mozilla.org/pl/firefox/addon/gtranslate/reviews/
Maybe this time will be repaired gTranslate to work in the private mode.
Thanks.
The current name “gTranslate” refers to Google translation service. As the translation API may change in a few versions, it may be time to call this dependency into question, and consequently to change the name. I believe that the name can be more precise and related to the extension function: easily accessible, right next to the mouse, contextual translation. I don’t have any ideas but I think @bpierre does. I can think about it as well.
By the way, Gtranslate is also a Joomla extension.
Currently, the gtranslate icon is a white “a” on a purple background. I think it is too far from the idea of translation and too far from the name too. If the name comes to change, This icon have to change too. We could imagine a simple symbol, related to the name (and chose a name that can be easily symbolised as well!).
I wonder what are the consequence for a name refresh, for the extension page and for the users. Is it a big deal, should we make a public announcement or communicate this change? If yes, where?
Let me know what you think about those possible changes and I will make a proposal if I have a “go”.
The mystery variable from https://github.com/bpierre/gtranslate/blob/master/providers/google-translate.js#L79 is taken from the html of the translate homepage, and seems to change every day. You can find it if you go to translate.google.com, view source, and search for TKK
Last 3 days the values are (at least for me, maybe they change regionally too): 402885, 402922, 402947
I suspect that the token will stop validating once we go to far away from the date our value was took from.
Proposed solutions:
Is there a need for text to speech support?
It could be designed as an icon to the right of the translation, if firefox supports splitting context menu entries like that, and which triggers on mouseover, if firefox supports that too, because when clicked the context menu will disappear.
I use this plugin all the time to translate from 4 languages to English. But it seems the auto language detect feature isn't working for me.
See screenshot here:
https://docs.google.com/open?id=0B8oIc_TxbpZncks5SFVCN1pGNEE
What could be going wrong?
I switched on the javascript debug, but the error console shows nothing.
If I switch the language from 'auto-detect' to 'French' it works fine.
I tried using firebug to debug the ajax but it's not showing up.
The addon stop working since some days, shows "service unavailable"
Please see: http://code.google.com/apis/language/translate/overview.html
A new API must be put into use with the extension to guarantee its working in the future.
I would like to explore the implications of adding another translation service.
Hello,
gtranslate is in the list of addons for Firefox Android.
But how do the right click on a touch screen after selecting the text ?
Thanks.
Hi there,
this is only a feature request.
I often switch languages from "auto detect -> english" to "auto detect -> german" and back.
So if we would have short links in the context menu we would be able to save time going through all the languages list.
I want to configure shown languages.
There are too many languages for me now.
To reproduce the problem:
1.Right click on a word and look for a translation
2.Hover translated summary, then yellow tooltip is showed
3.Wait about max. 12 seconds, tooltip is hidden by the parent contextual menu
What is the expected output? What do you see instead?
Make tooltip "always on top"?
Versions
mac OSX, gTranslate 0.8, Firefox 4.0
Otherwise it returns error 400
Cutoff seems to be around 1359 characters
When an image is displayed alone in Firefox, the alt
attribute contains the image URL, it does not make sense to translate that.
Your add-on spams alot "unsafe CPOW usage" warnings in the error/web console.
I have looked in the source and i suggest you change
const getSelectionFromWin = win => {
const popupNode = win.gContextMenuContentData.popupNode
return (popupNode && getSelectionFromNode(popupNode)) || ''
}
to
const getSelectionFromWin = win => {
return win.gContextMenu.linkTextStr || win.gContextMenu.textSelected || ''
}
then the warnings will disappear.
For the "unsafe CPOW usage" warnings:
http://blog.lassey.us/2015/01/10/unsafe-cpow-usage/
Because now, your add-on isn't compatible with e10s.
But the problem is "win.gContextMenu.textSelected" returns not the whole selected text (only 150 chars max).
Source: https://dxr.mozilla.org/mozilla-central/source/toolkit/modules/BrowserUtils.jsm#322
When opening multiple windows, the add-on only works in the first one. In the other ones, the context menu does not appear. I suspect this has to do with the use of the getMostRecentBrowserWindow()
function.
I updated the plugin to version 0.11.0 and I have no gTranslate item on the menu, and version 0.10.1 is - can you fix it?
Win XP SP3 - Firefox 38.0.1
Nazwa: Firefox
Wersja: 38.0.1
ID kompilacji: 20150513174244
Kanał aktualizacji: release
Identyfikator programu: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Firefox/38.0
Okna wieloprocesowe: 0/1 (domyślnie: false)
Wszystkie zgłoszenia awarii
Nazwa: Adblock Plus
Wersja: 2.6.9
Włączone: true
ID: {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
Nazwa: Classic Theme Restorer (Customize UI)
Wersja: 1.3.2
Włączone: true
ID: ClassicThemeRestorer@ArisT2Noia4dev
Nazwa: gtranslate
Wersja: 0.10.1
Włączone: true
ID: {aff87fa2-a58e-4edd-b852-0a20203c1e17}
Nazwa: HttpFox
Wersja: 0.8.14
Włączone: true
ID: {4093c4de-454a-4329-8aff-c6b0b123c386}
Nazwa: Converter
Wersja: 1.2.3
Włączone: false
ID: {8B72860F-C5F8-4286-865E-D2C2DB98A9E6}
Nazwa: Edit Cookies
Wersja: 0.3.8.1
Włączone: false
ID: {ea2b95c2-9be8-48ed-bdd1-5fcd2ad0ff99}
Nazwa: Element Hiding Helper dla Adblock Plusa
Wersja: 1.3.2
Włączone: false
ID: [email protected]
Nazwa: Exif Viewer
Wersja: 2.00
Włączone: false
ID: [email protected]
Nazwa: Greasemonkey
Wersja: 3.1
Włączone: false
ID: {e4a8a97b-f2ed-450b-b12d-ee082ba24781}
Nazwa: ImageHost Grabber
Wersja: 1.6.6.20140620
Włączone: false
ID: {E4091D66-127C-11DB-903A-DE80D2EFDFE8}
Nazwa: ImTranslator
Wersja: 8.11
Włączone: false
ID: {9AA46F4F-4DC7-4c06-97AF-5035170634FE}
Nazwa: MEGA
Wersja: 2.0.221
Włączone: false
ID: [email protected]
Nazwa: Mozilla Archive Format
Wersja: 3.1.0
Włączone: false
ID: {7f57cf46-4467-4c2d-adfa-0cba7c507e54}
Nazwa: PhotoME Extension
Wersja: 2.1
Włączone: false
ID: {01c29d60-f7f0-416c-844a-ec8b2e1841d0}
Nazwa: UnMHT
Wersja: 7.3.0.5
Włączone: false
ID: {f759ca51-3a91-4dd1-ae78-9db5eee9ebf0}
Data sterownika: 10-22-2006
GPU #2 Active: false
ID dostawcy: 0x10de
ID subsystemu: 00000000
ID urządzenia: 0x0185
Okna ze sprzętowym przyspieszeniem grafiki: 0/1 Basic (OMTC) Zablokowane dla zainstalowanej wersji sterownika grafiki. Zalecana jest aktualizacja sterownika do wersji 257.21 lub nowszej.
Opis adaptera: NVIDIA GeForce4 MX 4000
RAM adaptera: Unknown
Renderer WebGL: Zablokowane dla zainstalowanej wersji sterownika grafiki. Zalecana jest aktualizacja sterownika do wersji 257.21 lub nowszej.
Sterowniki adaptera: nv4_disp
Wersja sterownika: 6.14.10.9371
windowLayerManagerRemote: true
Włączone Direct2D: Zablokowane dla zainstalowanej wersji sterownika grafiki. Zalecana jest aktualizacja sterownika do wersji 257.21 lub nowszej.
Włączone DirectWrite: false (0.0.0.0)
AzureCanvasBackend: skia
AzureContentBackend: cairo
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0
accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.capacity: 215040
browser.cache.disk.smart_size_cached_value: 215040
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 2
browser.download.folderList: 2
browser.download.importedFromSqlite: true
browser.download.manager.alertOnEXEOpen: true
browser.download.manager.showWhenStarting: false
browser.history_expire_days.mirror: 180
browser.newtab.url: https://google.pl
browser.places.importBookmarksHTML: false
browser.places.importDefaults: false
browser.places.leftPaneFolderId: -1
browser.places.migratePostDataAnnotations: false
browser.places.smartBookmarksVersion: 7
browser.places.updateRecentTagsUri: false
browser.privatebrowsing.autostart: true
browser.privatebrowsing.dont_prompt_on_enter: true
browser.search.useDBForOrder: true
browser.sessionstore.upgradeBackup.latestBuildID: 20140923175406
browser.startup.homepage: https://google.pl
browser.startup.homepage_override.buildID: 20150513174244
browser.startup.homepage_override.mstone: 38.0.1
browser.tabs.animate: false
browser.tabs.closeButtons: 0
browser.tabs.loadInBackground: false
browser.urlbar.formatting.enabled: false
browser.urlbar.trimURLs: false
dom.ipc.plugins.flash.disable-protected-mode: true
dom.mozApps.used: true
dom.w3c_touch_events.expose: false
extensions.lastAppVersion: 38.0.1
font.internaluseonly.changed: true
general.autoScroll: false
gfx.blacklist.suggested-driver-version: 257.21
gfx.content.azure.enabled: false
gfx.direct2d.disabled: true
image.animation_mode: none
javascript.options.showInConsole: false
media.gmp-gmpopenh264.enabled: false
media.gmp-gmpopenh264.lastUpdate: 1431470441
media.gmp-gmpopenh264.version: 1.4
media.gmp-manager.buildID: 20150513174244
media.gmp-manager.lastCheck: 1431867569
mousewheel.enable_pixel_scrolling: false
mousewheel.system_scroll_override_on_root_content.enabled: false
network.cookie.cookieBehavior: 1
network.cookie.prefsMigrated: true
network.http.max-persistent-connections-per-server: 10
network.http.pipelining: true
network.http.pipelining.maxrequests: 8
network.http.proxy.pipelining: true
network.predictor.cleaned-up: true
places.database.lastMaintenance: 1431823638
places.history.expiration.transient_current_max_pages: 11311
places.history.expiration.transient_optimal_database_size: 3549675
places.last_vacuum: 1325853760
plugin.disable_full_page_plugin_for_types:
plugin.importedState: true
plugin.state.flash: 0
plugin.state.np-mswmp: 0
plugin.state.npdrmv: 0
plugin.state.npdsplay: 0
plugin.state.npgoogleupdate: 0
plugin.state.npuploadplugin: 0
plugin.state.npwmsdrm: 0
plugin.state.npwpf: 0
print.print_printer: Bullzip PDF Printer
print.printer_Bullzip_PDF_Printer.print_bgcolor: false
print.printer_Bullzip_PDF_Printer.print_bgimages: false
print.printer_Bullzip_PDF_Printer.print_command:
print.printer_Bullzip_PDF_Printer.print_downloadfonts: false
print.printer_Bullzip_PDF_Printer.print_edge_bottom: 0
print.printer_Bullzip_PDF_Printer.print_edge_left: 0
print.printer_Bullzip_PDF_Printer.print_edge_right: 0
print.printer_Bullzip_PDF_Printer.print_edge_top: 0
print.printer_Bullzip_PDF_Printer.print_evenpages: true
print.printer_Bullzip_PDF_Printer.print_footercenter:
print.printer_Bullzip_PDF_Printer.print_footerleft: &PT
print.printer_Bullzip_PDF_Printer.print_footerright: &D
print.printer_Bullzip_PDF_Printer.print_headercenter:
print.printer_Bullzip_PDF_Printer.print_headerleft: &T
print.printer_Bullzip_PDF_Printer.print_headerright: &U
print.printer_Bullzip_PDF_Printer.print_in_color: true
print.printer_Bullzip_PDF_Printer.print_margin_bottom: 0.5
print.printer_Bullzip_PDF_Printer.print_margin_left: 0.5
print.printer_Bullzip_PDF_Printer.print_margin_right: 0.5
print.printer_Bullzip_PDF_Printer.print_margin_top: 0.5
print.printer_Bullzip_PDF_Printer.print_oddpages: true
print.printer_Bullzip_PDF_Printer.print_orientation: 0
print.printer_Bullzip_PDF_Printer.print_pagedelay: 500
print.printer_Bullzip_PDF_Printer.print_paper_data: 9
print.printer_Bullzip_PDF_Printer.print_paper_height: 11,00
print.printer_Bullzip_PDF_Printer.print_paper_size_type: 0
print.printer_Bullzip_PDF_Printer.print_paper_size_unit: 1
print.printer_Bullzip_PDF_Printer.print_paper_width: 8,50
print.printer_Bullzip_PDF_Printer.print_reversed: false
print.printer_Bullzip_PDF_Printer.print_scaling: 1,00
print.printer_Bullzip_PDF_Printer.print_shrink_to_fit: true
print.printer_Bullzip_PDF_Printer.print_to_file: false
print.printer_Bullzip_PDF_Printer.print_unwriteable_margin_bottom: 0
print.printer_Bullzip_PDF_Printer.print_unwriteable_margin_left: 0
print.printer_Bullzip_PDF_Printer.print_unwriteable_margin_right: 0
print.printer_Bullzip_PDF_Printer.print_unwriteable_margin_top: 0
privacy.donottrackheader.enabled: true
privacy.popups.showBrowserMessage: false
privacy.sanitize.migrateFx3Prefs: true
security.disable_button.openCertManager: false
security.warn_viewing_mixed: false
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1430328706
Przyrostowy GC: true
Aktywne: false
Zablokuj ułatwienia dostępu: 0
NSPR
Oczekiwana wersja minimalna: 4.10.8
Wersja w użyciu: 4.10.8
NSS
Oczekiwana wersja minimalna: 3.18.1 Basic ECC
Wersja w użyciu: 3.18.1 Basic ECC
NSSSMIME
Oczekiwana wersja minimalna: 3.18.1 Basic ECC
Wersja w użyciu: 3.18.1 Basic ECC
NSSSSL
Oczekiwana wersja minimalna: 3.18.1 Basic ECC
Wersja w użyciu: 3.18.1 Basic ECC
NSSUTIL
Oczekiwana wersja minimalna: 3.18.1
Wersja w użyciu: 3.18.1
Hi there,
I am using this great addon for many years now and i am not changing for anything else. Great job. Congrats. I wonder if there is one for Google Chrome.
Thank you and keep doing your excellent job.
I may be missing something, but i cant translate a full page, i have no context menu without selection anything, and selecting the all page translate the text, not the page (like submitting a url to google translator )
IIRC, in the past i could translate the whole page and viewer it as a normal webpage.
For some languages, like Japanese and Chinese google also provides a latin script version of the translation, next to the usual symbols/signs. This could be easy to implement, but it should be decided where it should display this text.
It could be in the mouseover area, under the usual text, or in a separate menu entry, between the usual translation and the change language selector. Thoughts?
Would it be possible add support for Latin as a source language? It is supported by Google Translate, strange as it seems; and it would be tremendously useful in my work.
I love the add-on, and rely on it constantly. Thanks for your work.
Pre-jetpack the addon was translated in a bunch of languages, I'll see how this can be done now.
The latest Version 0.12.0 has gtranslate inherently contain the graphics within its code, turning a 22kB add-on into a 2MB one. I suggest that you upload the screenshots directly onto AMO and remove the graphics from the add-on, keeping it lightweight.
Please, add Bengali support.
It's a very useful add-on. Thanks in advance.
Hi,
Thanks for the add-on! It's still works well and quick :-)
A feature request: would be more helpfull to have more translation when only 1 word was selected.
Often, the more translations/meanings are showen, the better we can understand what is the meaning of the original word in the specific context.
Thanks!
Géza
The new tab should open just on the right on the current tab, not at the end of the tabs bar.
The tabs.open()
method opens a tab at the end of the tabs bar by default.
tabs.open()
inBackground
option does the same, despite its description: “If present and true, the new tab will be opened to the right of the active tab and will not be active.”Some information here: https://bugzilla.mozilla.org/show_bug.cgi?id=715560
Need to investigate to find a solid solution.
Good morning / afternoon / night.
forgive me for the mistakes, if any ,I do not speak English.
the program can specify only one direction of translation.(auto > any SET language.)
It would be great if it were possible to make in automatic mode the followng settings
for example:
This can be corrected in the code?
The Google Translate service is not responding properly, looks like they changed something again…
For some languages, google shows the definition and example usages. For example see https://translate.google.com/#en/en/home
These can get quite big, but can be added in the mouseover area.
For almost all(?) languages, google shows different possible translations, see
https://translate.google.com/#en/nl/home
These can be added to the mouseover area. For the 'match percentage', shown as grey bars, I'm not sure how to convert this to text compatible with the mouseover area, maybe some ascii art? Or just leave them out, or show the raw number?
When not translating to the same language, eg not from english to english, I would prioritize the different possible translations over the definition, as the definition is supposedly in a language that is not well known by the user, and when showing both, it would take a lot of screen space.
A setting should be provided so users can disable these features.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.