├── .gitignore ├── LICENSE.md ├── README.md ├── bower.json ├── build ├── easy-tongue-icon.ico └── easy-tongue-icon@2x.icns ├── easy-tongue-icon@2x.png ├── main.js ├── package.json ├── renderer.js ├── test.html └── translation-app ├── settings-window ├── customize-settings-section │ ├── customize-settings-section.css │ ├── customize-settings-section.html │ └── customize-settings-section.js ├── general-settings-section │ ├── general-settings-section-locales.json │ ├── general-settings-section.css │ ├── general-settings-section.html │ └── general-settings-section.js ├── index.html ├── settings-tab │ ├── settings-tab.css │ ├── settings-tab.html │ └── settings-tab.js ├── settings-window-locales.json ├── settings-window.css ├── settings-window.html ├── settings-window.js └── shortcuts-settings-section │ ├── key-binding-selector │ ├── key-binding-selector.css │ ├── key-binding-selector.html │ ├── key-binding-selector.js │ └── mousetrap │ │ ├── mousetrap-record.js │ │ └── mousetrap.js │ ├── shortcuts-settings-section-locales.json │ ├── shortcuts-settings-section.css │ ├── shortcuts-settings-section.html │ └── shortcuts-settings-section.js ├── shared └── language-selection │ ├── language-selection.css │ ├── language-selection.html │ ├── language-selection.js │ └── languages │ ├── ad.svg │ ├── ae.svg │ ├── af.svg │ ├── ag.svg │ ├── ai.svg │ ├── al.svg │ ├── am.svg │ ├── ao.svg │ ├── aq.svg │ ├── ar.svg │ ├── as.svg │ ├── at.svg │ ├── au.svg │ ├── aw.svg │ ├── ax.svg │ ├── az.svg │ ├── ba.svg │ ├── bb.svg │ ├── bd.svg │ ├── be.svg │ ├── bf.svg │ ├── bg.svg │ ├── bh.svg │ ├── bi.svg │ ├── bj.svg │ ├── bl.svg │ ├── bm.svg │ ├── bn.svg │ ├── bo.svg │ ├── bq.svg │ ├── br.svg │ ├── bs.svg │ ├── bt.svg │ ├── bv.svg │ ├── bw.svg │ ├── by.svg │ ├── bz.svg │ ├── ca.svg │ ├── cc.svg │ ├── cd.svg │ ├── cf.svg │ ├── cg.svg │ ├── ch.svg │ ├── ci.svg │ ├── ck.svg │ ├── cl.svg │ ├── cm.svg │ ├── cn.svg │ ├── co.svg │ ├── cr.svg │ ├── cu.svg │ ├── cv.svg │ ├── cw.svg │ ├── cx.svg │ ├── cy.svg │ ├── cz.svg │ ├── de.svg │ ├── dj.svg │ ├── dk.svg │ ├── dm.svg │ ├── do.svg │ ├── dz.svg │ ├── ec.svg │ ├── ee.svg │ ├── eg.svg │ ├── eh.svg │ ├── er.svg │ ├── es.svg │ ├── et.svg │ ├── eu.svg │ ├── fi.svg │ ├── fj.svg │ ├── fk.svg │ ├── fm.svg │ ├── fo.svg │ ├── fr.svg │ ├── ga.svg │ ├── gb-eng.svg │ ├── gb-nir.svg │ ├── gb-sct.svg │ ├── gb-wls.svg │ ├── gb.svg │ ├── gd.svg │ ├── ge.svg │ ├── gf.svg │ ├── gg.svg │ ├── gh.svg │ ├── gi.svg │ ├── gl.svg │ ├── gm.svg │ ├── gn.svg │ ├── gp.svg │ ├── gq.svg │ ├── gr.svg │ ├── gs.svg │ ├── gt.svg │ ├── gu.svg │ ├── gw.svg │ ├── gy.svg │ ├── hk.svg │ ├── hm.svg │ ├── hn.svg │ ├── hr.svg │ ├── ht.svg │ ├── hu.svg │ ├── id.svg │ ├── ie.svg │ ├── il.svg │ ├── im.svg │ ├── in.svg │ ├── io.svg │ ├── iq.svg │ ├── ir.svg │ ├── is.svg │ ├── it.svg │ ├── je.svg │ ├── jm.svg │ ├── jo.svg │ ├── jp.svg │ ├── ke.svg │ ├── kg.svg │ ├── kh.svg │ ├── ki.svg │ ├── km.svg │ ├── kn.svg │ ├── kp.svg │ ├── kr.svg │ ├── kw.svg │ ├── ky.svg │ ├── kz.svg │ ├── la.svg │ ├── lb.svg │ ├── lc.svg │ ├── li.svg │ ├── lk.svg │ ├── lr.svg │ ├── ls.svg │ ├── lt.svg │ ├── lu.svg │ ├── lv.svg │ ├── ly.svg │ ├── ma.svg │ ├── mc.svg │ ├── md.svg │ ├── me.svg │ ├── mf.svg │ ├── mg.svg │ ├── mh.svg │ ├── mk.svg │ ├── ml.svg │ ├── mm.svg │ ├── mn.svg │ ├── mo.svg │ ├── mp.svg │ ├── mq.svg │ ├── mr.svg │ ├── ms.svg │ ├── mt.svg │ ├── mu.svg │ ├── mv.svg │ ├── mw.svg │ ├── mx.svg │ ├── my.svg │ ├── mz.svg │ ├── na.svg │ ├── nc.svg │ ├── ne.svg │ ├── nf.svg │ ├── ng.svg │ ├── ni.svg │ ├── nl.svg │ ├── no.svg │ ├── np.svg │ ├── nr.svg │ ├── nu.svg │ ├── nz.svg │ ├── om.svg │ ├── pa.svg │ ├── pe.svg │ ├── pf.svg │ ├── pg.svg │ ├── ph.svg │ ├── pk.svg │ ├── pl.svg │ ├── pm.svg │ ├── pn.svg │ ├── pr.svg │ ├── ps.svg │ ├── pt.svg │ ├── pw.svg │ ├── py.svg │ ├── qa.svg │ ├── re.svg │ ├── ro.svg │ ├── rs.svg │ ├── ru.svg │ ├── rw.svg │ ├── sa.svg │ ├── sb.svg │ ├── sc.svg │ ├── sd.svg │ ├── se.svg │ ├── sg.svg │ ├── sh.svg │ ├── si.svg │ ├── sj.svg │ ├── sk.svg │ ├── sl.svg │ ├── sm.svg │ ├── sn.svg │ ├── so.svg │ ├── sr.svg │ ├── ss.svg │ ├── st.svg │ ├── sv.svg │ ├── sx.svg │ ├── sy.svg │ ├── sz.svg │ ├── tc.svg │ ├── td.svg │ ├── tf.svg │ ├── tg.svg │ ├── th.svg │ ├── tj.svg │ ├── tk.svg │ ├── tl.svg │ ├── tm.svg │ ├── tn.svg │ ├── to.svg │ ├── tr.svg │ ├── tt.svg │ ├── tv.svg │ ├── tw.svg │ ├── tz.svg │ ├── ua.svg │ ├── ug.svg │ ├── um.svg │ ├── un.svg │ ├── us.svg │ ├── uy.svg │ ├── uz.svg │ ├── va.svg │ ├── vc.svg │ ├── ve.svg │ ├── vg.svg │ ├── vi.svg │ ├── vn.svg │ ├── vu.svg │ ├── wf.svg │ ├── ws.svg │ ├── ye.svg │ ├── yt.svg │ ├── za.svg │ ├── zm.svg │ └── zw.svg └── translation-window ├── index.html ├── mousetrap └── mousetrap.js ├── translation-request ├── translation-request.css ├── translation-request.html └── translation-request.js ├── translation-window-locals.json ├── translation-window.css ├── translation-window.html └── translation-window.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | bower_components 3 | dist -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EasyTongue 2 | 3 | ## ⚠️ Information ⚠️ 4 | This App doesn't work anymore, because the used translation API was shutdown. 5 | 6 | ## Preview 7 | 8 | ### Easy to use translation app 9 | ![screenshot 1](https://florianfe.github.io/screenshots/easy-tongue/screenshot-1.png) 10 | 11 | ### Available in twelve different languages 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
🇬🇧 English🇩🇪 German🇫🇷 French🇪🇸 Spanish🇹🇷 Turkish🇷🇺 Russian
🇮🇹 Italian🇧🇷 Portuguese🇯🇵 Japanese🇨🇳 Simplified Chinese🇮🇳 Hindi🇵🇱 Polish
31 | 32 | ![screenshot 2](https://florianfe.github.io/screenshots/easy-tongue/screenshot-2.png) 33 | 34 | 35 | ### Option to start on bootup 36 | ![screenshot 3](https://florianfe.github.io/screenshots/easy-tongue/screenshot-3.png) 37 | 38 | ### Define Shortcuts for a faster usage 39 | ![screenshot 4](https://florianfe.github.io/screenshots/easy-tongue/screenshot-4.png) 40 | 41 | 46 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EasyTongue", 3 | "description": "a menubar app for easy language translation", 4 | "main": "main.js", 5 | "authors": [ 6 | "FlorianFe" 7 | ], 8 | "license": "MIT", 9 | "keywords": [ 10 | "Electron", 11 | "translation" 12 | ], 13 | "homepage": "none", 14 | "dependencies": { 15 | "paper-input": "PolymerElements/paper-input#^1.1.23", 16 | "flag-icon": "Protoss78/flag-icon#^0.12.0", 17 | "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^1.5.0", 18 | "paper-item": "PolymerElements/paper-item#^1.2.1", 19 | "paper-listbox": "PolymerElements/paper-listbox#^1.1.2", 20 | "polymer": "Polymer/Polymer#^1.8.1", 21 | "paper-menu": "PolymerElements/paper-menu#^1.2.2", 22 | "paper-menu-button": "PolymerElements/paper-menu-button#^1.5.2", 23 | "iron-pages": "PolymerElements/iron-pages#^1.0.8", 24 | "iron-selector": "PolymerElements/iron-selector#^1.5.2", 25 | "paper-button": "PolymerElements/paper-button#^1.0.14", 26 | "iron-icons": "PolymerElements/iron-icons#^1.2.0", 27 | "paper-icon-button": "PolymerElements/paper-icon-button#^1.1.4", 28 | "iron-flex-layout": "^1.3.2", 29 | "paper-dialog": "PolymerElements/paper-dialog#^1.1.0", 30 | "paper-dialog-scrollable": "PolymerElements/paper-dialog-scrollable#^1.1.5", 31 | "paper-tabs": "PolymerElements/paper-tabs#^1.8.0", 32 | "paper-checkbox": "PolymerElements/paper-checkbox#^1.4.2", 33 | "paper-card": "PolymerElements/paper-card#^1.1.4", 34 | "paper-swatch-picker": "PolymerElements/paper-swatch-picker#^1.0.2", 35 | "iron-localstorage": "PolymerElements/iron-localstorage#^1.0.6", 36 | "iron-ajax": "PolymerElements/iron-ajax#^1.4.3", 37 | "app-localize-behavior": "PolymerElements/app-localize-behavior#^0.10.2", 38 | "iron-a11y-keys": "^2.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /build/easy-tongue-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlorianFe/EasyTongue/00f78ace376113fa8a8dacb8382136e53057dc07/build/easy-tongue-icon.ico -------------------------------------------------------------------------------- /build/easy-tongue-icon@2x.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlorianFe/EasyTongue/00f78ace376113fa8a8dacb8382136e53057dc07/build/easy-tongue-icon@2x.icns -------------------------------------------------------------------------------- /easy-tongue-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlorianFe/EasyTongue/00f78ace376113fa8a8dacb8382136e53057dc07/easy-tongue-icon@2x.png -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const electron = require('electron'); 2 | 3 | const BrowserWindow = electron.BrowserWindow; 4 | const globalShortcut = electron.globalShortcut; 5 | const ipcMain = electron.ipcMain; 6 | 7 | const path = require('path'); 8 | const url = require('url'); 9 | const createMenubar = require('menubar'); 10 | 11 | const menubar = createMenubar( 12 | { 13 | index: path.join('file://', __dirname, 'translation-app/translation-window/index.html'), 14 | preloadWindow: true, 15 | backgroundColor: '#fff', 16 | icon: path.join(__dirname, "easy-tongue-icon@2x.png") 17 | }); 18 | 19 | menubar.on('ready', () => 20 | { 21 | //menubar.window.toggleDevTools(); 22 | 23 | let settingsWindow = new BrowserWindow( 24 | { 25 | width: 500, 26 | height: 450, 27 | backgroundColor: '#fff', 28 | show: false 29 | }); 30 | 31 | settingsWindow.loadURL(path.join('file://', __dirname, 'translation-app/settings-window/index.html')); 32 | 33 | menubar.window.setResizable(false) 34 | 35 | ipcMain.on('openWindowKeyCombinationChange', (e, arg) => 36 | { 37 | let keyCombination = arg.keyCombination; 38 | 39 | globalShortcut.unregisterAll(); 40 | 41 | globalShortcut.register(keyCombination, () => 42 | { 43 | menubar.window.show(); 44 | }); 45 | }); 46 | 47 | ipcMain.on('swapLanguagesKeyCombinationChange', (e, arg) => 48 | { 49 | let keyCombination = arg.keyCombination; 50 | menubar.window.webContents.send('swapLanguagesKeyCombinationChange', {keyCombination: keyCombination}); 51 | }); 52 | 53 | menubar.app.on('window-all-closed', () => 54 | { 55 | menubar.app.quit(); 56 | }); 57 | 58 | menubar.app.on('before-quit', () => 59 | { 60 | settingsWindow.removeAllListeners('close'); 61 | settingsWindow.close(); 62 | }); 63 | 64 | settingsWindow.on('close', function(e) 65 | { 66 | e.preventDefault(); 67 | settingsWindow.hide(); 68 | }); 69 | 70 | ipcMain.on('settings-icon-click', (event, arg) => 71 | { 72 | settingsWindow.show(); 73 | //settingsWindow.toggleDevTools(); 74 | }); 75 | }); 76 | 77 | menubar.app.on('will-quit', () => 78 | { 79 | globalShortcut.unregisterAll() 80 | }); 81 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EasyTongue", 3 | "version": "1.0.4", 4 | "description": "a menubar app for easy language translation", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "ELECTRON_ENABLE_LOGGING=1 electron .", 8 | "pack": "build --dir", 9 | "dist": "build" 10 | }, 11 | "build": 12 | { 13 | "appId": "de.florianfe.easytongue", 14 | "mac": 15 | { 16 | "category": "public.app-category.utilities", 17 | "icon": "easy-tongue-icon@2x" 18 | }, 19 | "win": 20 | { 21 | "icon": "build/easy-tongue-icon" 22 | } 23 | }, 24 | "repository": "https://github.com/FlorianFe/EasyTongue", 25 | "keywords": [ 26 | "translation", 27 | "polymer", 28 | "electron" 29 | ], 30 | "author": "Florian Fechner", 31 | "license": "CC0-1.0", 32 | "devDependencies": { 33 | "electron": "^1.4.1" 34 | }, 35 | "dependencies": { 36 | "auto-launch": "^5.0.1", 37 | "electron-localshortcut": "^1.1.0", 38 | "ipc": "0.0.1", 39 | "menubar": "^5.2.3", 40 | "path": "^0.12.7" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /renderer.js: -------------------------------------------------------------------------------- 1 | // This file is required by the index.html file and will 2 | // be executed in the renderer process for that window. 3 | // All of the Node.js APIs are available in this process. 4 | -------------------------------------------------------------------------------- /test.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlorianFe/EasyTongue/00f78ace376113fa8a8dacb8382136e53057dc07/test.html -------------------------------------------------------------------------------- /translation-app/settings-window/customize-settings-section/customize-settings-section.css: -------------------------------------------------------------------------------- 1 | :host 2 | { 3 | width: 100%; 4 | } 5 | 6 | paper-card 7 | { 8 | width: calc(100% - 30px); 9 | margin: 15px; 10 | padding: 15px; 11 | } 12 | 13 | table 14 | { 15 | width: 100%; 16 | } 17 | 18 | td 19 | { 20 | text-align: left; 21 | padding: 10px; 22 | } 23 | 24 | td.icon-td 25 | { 26 | width: 10%; 27 | } 28 | 29 | td.name-td 30 | { 31 | width: 70%; 32 | } 33 | 34 | td.interaction-td 35 | { 36 | width: 20%; 37 | } 38 | -------------------------------------------------------------------------------- /translation-app/settings-window/customize-settings-section/customize-settings-section.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /translation-app/settings-window/customize-settings-section/customize-settings-section.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'customize-settings-section', 4 | properties: 5 | { 6 | 7 | }, 8 | ready: function() 9 | { 10 | 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /translation-app/settings-window/general-settings-section/general-settings-section-locales.json: -------------------------------------------------------------------------------- 1 | { 2 | "de": 3 | { 4 | "Auto Launch": "Automatischer Start", 5 | "Language": "Sprache", 6 | "Exit Application": "Applikation Beenden" 7 | }, 8 | "en": 9 | { 10 | "Auto Launch": "Auto Launch", 11 | "Language": "Language", 12 | "Exit Application": "Exit Application" 13 | }, 14 | "fr": 15 | { 16 | "Auto Launch": "Automatique lancement", 17 | "Language": "Langue", 18 | "Exit Application": "Sortie application" 19 | }, 20 | "es": 21 | { 22 | "Auto Launch": "Automático lanzamiento", 23 | "Language": "Idioma", 24 | "Exit Application": "Salida aplicación" 25 | }, 26 | "tr": 27 | { 28 | "Auto Launch": "Otomatik Başlama", 29 | "Language": "Dil", 30 | "Exit Application": "Program sonlandirma" 31 | }, 32 | "ru": 33 | { 34 | "Auto Launch": "Автоматически Запуск", 35 | "Language": "Язык", 36 | "Exit Application": "Выход применение" 37 | }, 38 | "it": 39 | { 40 | "Auto Launch": "Automatico lancio", 41 | "Language": "Lingua", 42 | "Exit Application": "Uscita applicazione" 43 | }, 44 | "pt-br": 45 | { 46 | "Auto Launch": "Lançamento automático", 47 | "Language": "Língua", 48 | "Exit Application": "Aplicativo de saída" 49 | }, 50 | "ja": 51 | { 52 | "Auto Launch": "自動 打ち上げ", 53 | "Language": "言語", 54 | "Exit Application": "出口 アプリケーション" 55 | }, 56 | "zh-CHS": 57 | { 58 | "Auto Launch": "自动 发射", 59 | "Language": "语言", 60 | "Exit Application": "退出 应用程序" 61 | }, 62 | "hi": 63 | { 64 | "Auto Launch": "ऑटो प्रक्षेपण", 65 | "Language": "भाषा", 66 | "Exit Application": "बाहर निकलें अनुप्रयोग" 67 | }, 68 | "pl": 69 | { 70 | "Auto Launch": "Automatyczny uruchomić", 71 | "Language": "Język", 72 | "Exit Application": "Wyjście podanie" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /translation-app/settings-window/general-settings-section/general-settings-section.css: -------------------------------------------------------------------------------- 1 | :host 2 | { 3 | width: 100%; 4 | } 5 | 6 | paper-card 7 | { 8 | width: calc(100% - 30px); 9 | margin: 15px; 10 | padding: 15px; 11 | } 12 | 13 | .buttom-container 14 | { 15 | text-align: right; 16 | padding: 10px; 17 | } 18 | 19 | table 20 | { 21 | width: 100%; 22 | } 23 | 24 | td 25 | { 26 | text-align: left; 27 | padding: 10px; 28 | } 29 | 30 | td.icon-td 31 | { 32 | width: 10%; 33 | } 34 | 35 | td.name-td 36 | { 37 | width: 70%; 38 | } 39 | 40 | td.interaction-td 41 | { 42 | width: 20%; 43 | } 44 | -------------------------------------------------------------------------------- /translation-app/settings-window/general-settings-section/general-settings-section.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /translation-app/settings-window/general-settings-section/general-settings-section.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'general-settings-section', 4 | properties: 5 | { 6 | autoLaunchEnabled: 7 | { 8 | type: Boolean, 9 | value: false 10 | }, 11 | language: 12 | { 13 | type: String, 14 | notify: true, 15 | value: 'en' 16 | } 17 | }, 18 | behaviors: 19 | [ 20 | Polymer.AppLocalizeBehavior 21 | ], 22 | attached: function() 23 | { 24 | const AutoLaunch = require('auto-launch'); 25 | 26 | let autoLaunch = new AutoLaunch({ name: 'EasyTongue' }); 27 | 28 | this.loadResources(this.resolveUrl('general-settings-section-locales.json')); 29 | 30 | autoLaunch.isEnabled().then((isEnabled) => 31 | { 32 | this.autoLaunchEnabled = isEnabled; 33 | this.$["autostart-checkbox"].checked = isEnabled; 34 | }); 35 | }, 36 | ready: function() 37 | { 38 | this.$['language-storage'].addEventListener('iron-localstorage-load', () => 39 | { 40 | let language = this.$['language-storage'].value; 41 | this.language = language; 42 | }); 43 | 44 | const app = require('electron').remote.app; 45 | const AutoLaunch = require('auto-launch'); 46 | 47 | let autoLaunch = new AutoLaunch({ name: 'EasyTongue' }); 48 | 49 | this.$["exit-button"].addEventListener('click', () => 50 | { 51 | console.log("Exit") 52 | app.quit(); 53 | }); 54 | 55 | this.$["autostart-checkbox"].addEventListener('click', () => 56 | { 57 | autoLaunch.isEnabled() 58 | .then((isEnabled) => 59 | { 60 | if(isEnabled) 61 | { 62 | autoLaunch.disable(); 63 | console.log("Translator autostart disabled!"); 64 | } 65 | else 66 | { 67 | autoLaunch.enable(); 68 | console.log("Translator autostart enabled!"); 69 | } 70 | }); 71 | }); 72 | } 73 | }) 74 | -------------------------------------------------------------------------------- /translation-app/settings-window/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Settings 6 | 7 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /translation-app/settings-window/settings-tab/settings-tab.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlorianFe/EasyTongue/00f78ace376113fa8a8dacb8382136e53057dc07/translation-app/settings-window/settings-tab/settings-tab.css -------------------------------------------------------------------------------- /translation-app/settings-window/settings-tab/settings-tab.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /translation-app/settings-window/settings-tab/settings-tab.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'settings-tab', 4 | properties: 5 | { 6 | 7 | }, 8 | ready: function() 9 | { 10 | 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /translation-app/settings-window/settings-window-locales.json: -------------------------------------------------------------------------------- 1 | { 2 | "de": 3 | { 4 | "General": "Allgemein", 5 | "Shortcuts": "Shortcuts", 6 | "Customize": "Anpassen" 7 | }, 8 | "en": 9 | { 10 | "General": "General", 11 | "Shortcuts": "Shortcuts", 12 | "Customize": "Customize" 13 | }, 14 | "fr": 15 | { 16 | "General": "Générales", 17 | "Shortcuts": "Shortcuts", 18 | "Customize": "???" 19 | }, 20 | "es": 21 | { 22 | "General": "General", 23 | "Shortcuts": "Shortcuts", 24 | "Customize": "???" 25 | }, 26 | "tr": 27 | { 28 | "General": "Genel", 29 | "Shortcuts": "Shortcuts", 30 | "Customize": "???" 31 | }, 32 | "ru": 33 | { 34 | "General": "Общие", 35 | "Shortcuts": "Shortcuts", 36 | "Customize": "???" 37 | }, 38 | "it": 39 | { 40 | "General": "Generale", 41 | "Shortcuts": "Shortcuts", 42 | "Customize": "???" 43 | }, 44 | "pt-br": 45 | { 46 | "General": "Geral", 47 | "Shortcuts": "Shortcuts", 48 | "Customize": "???" 49 | }, 50 | "ja": 51 | { 52 | "General": "一般的です", 53 | "Shortcuts": "Shortcuts", 54 | "Customize": "???" 55 | }, 56 | "zh-CHS": 57 | { 58 | "General": "一般", 59 | "Shortcuts": "Shortcuts", 60 | "Customize": "???" 61 | }, 62 | "hi": 63 | { 64 | "General": "सामान्य", 65 | "Shortcuts": "शॉर्टकट", 66 | "Customize": "???" 67 | }, 68 | "pl": 69 | { 70 | "General": "Generał", 71 | "Shortcuts": "Skróty", 72 | "Customize": "???" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /translation-app/settings-window/settings-window.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | iron-selector 4 | { 5 | display: flex; 6 | background-color: #f5f5f5; 7 | } 8 | 9 | general-settings-section 10 | { 11 | width: 100%; 12 | } 13 | 14 | settings-tab 15 | { 16 | width: 25%; 17 | background-color: #f5f5f5; 18 | cursor: pointer; 19 | border-right: 1px ridge #ddd; 20 | } 21 | 22 | .iron-selected 23 | { 24 | background-color: #fff; 25 | cursor: auto; 26 | } 27 | -------------------------------------------------------------------------------- /translation-app/settings-window/settings-window.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /translation-app/settings-window/settings-window.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'settings-window', 4 | properties: 5 | { 6 | ipc: 7 | { 8 | type: Object 9 | }, 10 | selectedSettingsSection: 11 | { 12 | type: Number, 13 | value: 0 14 | }, 15 | openWindowKeyCombination: 16 | { 17 | type: String, 18 | observer: "_onOpenWindowKeyCombinationChange", 19 | value: 'meta+shift+t' 20 | }, 21 | swapLanguagesKeyCombination: 22 | { 23 | type: String, 24 | observer: "_onSwapLanguagesKeyCombinationChange", 25 | value: 'ctrl+tab' 26 | }, 27 | language: 28 | { 29 | type: String 30 | } 31 | }, 32 | behaviors: 33 | [ 34 | Polymer.AppLocalizeBehavior 35 | ], 36 | attached: function() 37 | { 38 | this.loadResources(this.resolveUrl('settings-window-locales.json')); 39 | }, 40 | created: function() 41 | { 42 | this.ipc = require('electron').ipcRenderer; 43 | }, 44 | ready: function() 45 | { 46 | 47 | }, 48 | _onOpenWindowKeyCombinationChange: function(value) 49 | { 50 | this.ipc.send('openWindowKeyCombinationChange', { keyCombination: value }); 51 | }, 52 | _onSwapLanguagesKeyCombinationChange: function(value) 53 | { 54 | this.ipc.send('swapLanguagesKeyCombinationChange', { keyCombination: value }); 55 | } 56 | }) 57 | -------------------------------------------------------------------------------- /translation-app/settings-window/shortcuts-settings-section/key-binding-selector/key-binding-selector.css: -------------------------------------------------------------------------------- 1 | :host 2 | { 3 | display: inline; 4 | } 5 | 6 | #paper-dialog 7 | { 8 | width: 300px; 9 | } 10 | 11 | table 12 | { 13 | width: 100%; 14 | } 15 | -------------------------------------------------------------------------------- /translation-app/settings-window/shortcuts-settings-section/key-binding-selector/key-binding-selector.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /translation-app/settings-window/shortcuts-settings-section/key-binding-selector/key-binding-selector.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'key-binding-selector', 4 | properties: 5 | { 6 | selectedKeyCombination: 7 | { 8 | type: String, 9 | notify: true, 10 | value: "T" 11 | } 12 | }, 13 | ready: function() 14 | { 15 | this.$["key-button"].addEventListener('click', () => 16 | { 17 | this.$["paper-dialog"].open(); 18 | 19 | Mousetrap.record({recordSequence: false}, (sequence) => 20 | { 21 | if(sequence[0] != undefined) 22 | { 23 | this.selectedKeyCombination = sequence[0]; 24 | this.$["paper-dialog"].close(); 25 | } 26 | }); 27 | 28 | this.$["paper-dialog"].addEventListener('close', () => 29 | { 30 | Mousetrap.stopRecord(); 31 | }) 32 | 33 | }); 34 | } 35 | }) 36 | -------------------------------------------------------------------------------- /translation-app/settings-window/shortcuts-settings-section/shortcuts-settings-section-locales.json: -------------------------------------------------------------------------------- 1 | { 2 | "de": 3 | { 4 | "Open Window": "Fenster öffnen", 5 | "Swap Languages": "Sprachen vertauschen" 6 | }, 7 | "en": 8 | { 9 | "Open Window": "Open Window", 10 | "Swap Languages": "Swap Languages" 11 | }, 12 | "fr": 13 | { 14 | "Open Window": "Ouvrir fenêtre", 15 | "Swap Languages": "Échanger langues" 16 | }, 17 | "es": 18 | { 19 | "Open Window": "Abrir ventana", 20 | "Swap Languages": "Intercambiar Idiomas" 21 | }, 22 | "tr": 23 | { 24 | "Open Window": "Cami acmak", 25 | "Swap Languages": "Diller takas" 26 | }, 27 | "ru": 28 | { 29 | "Open Window": "Открыть окно", 30 | "Swap Languages": "Замена Языки" 31 | }, 32 | "it": 33 | { 34 | "Open Window": "Aprire finestra", 35 | "Swap Languages": "Scambiare Lingue" 36 | }, 37 | "pt-br": 38 | { 39 | "Open Window": "Janela aberta", 40 | "Swap Languages": "Trocar idiomas" 41 | }, 42 | "ja": 43 | { 44 | "Open Window": "開く 窓", 45 | "Swap Languages": "スワップ 言語" 46 | }, 47 | "zh-CHS": 48 | { 49 | "Open Window": "打开 窗口", 50 | "Swap Languages": "交换 语言" 51 | }, 52 | "hi": 53 | { 54 | "Open Window": "खुला खिड़की", 55 | "Swap Languages": "विनिमय भाषाओं" 56 | }, 57 | "pl": 58 | { 59 | "Open Window": "Otwórz okno", 60 | "Swap Languages": "Zamiana Języki" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /translation-app/settings-window/shortcuts-settings-section/shortcuts-settings-section.css: -------------------------------------------------------------------------------- 1 | :host 2 | { 3 | width: 100%; 4 | } 5 | 6 | paper-card 7 | { 8 | width: calc(100% - 30px); 9 | margin: 15px; 10 | padding: 15px; 11 | } 12 | 13 | table 14 | { 15 | width: 100%; 16 | } 17 | 18 | td 19 | { 20 | text-align: left; 21 | padding: 10px; 22 | } 23 | 24 | td.icon-td 25 | { 26 | width: 10%; 27 | } 28 | 29 | td.name-td 30 | { 31 | width: 70%; 32 | } 33 | 34 | td.interaction-td 35 | { 36 | width: 20%; 37 | } 38 | -------------------------------------------------------------------------------- /translation-app/settings-window/shortcuts-settings-section/shortcuts-settings-section.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /translation-app/settings-window/shortcuts-settings-section/shortcuts-settings-section.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'shortcuts-settings-section', 4 | properties: 5 | { 6 | openWindowKeyCombination: 7 | { 8 | type: String, 9 | notify: true, 10 | value: 'ctrl+t' 11 | }, 12 | swapLanguagesKeyCombination: 13 | { 14 | type: String, 15 | notify: true, 16 | value: 'ctrl+s' 17 | }, 18 | language: 19 | { 20 | type: String 21 | } 22 | }, 23 | behaviors: 24 | [ 25 | Polymer.AppLocalizeBehavior 26 | ], 27 | attached: function() 28 | { 29 | this.loadResources(this.resolveUrl('shortcuts-settings-section-locales.json')); 30 | }, 31 | ready: function() 32 | { 33 | this.$['open-window-key-combination-storage'].addEventListener('iron-localstorage-load', () => 34 | { 35 | let storedOpenWindowKeyCombination = this.$['open-window-key-combination-storage'].value; 36 | this.openWindowKeyCombination = storedOpenWindowKeyCombination; 37 | }); 38 | 39 | this.$['swap-languages-key-combination-storage'].addEventListener('iron-localstorage-load', () => 40 | { 41 | let storedSwapLanguagesKeyCombination = this.$['swap-languages-key-combination-storage'].value; 42 | this.swapLanguagesKeyCombination = storedSwapLanguagesKeyCombination; 43 | }); 44 | } 45 | }) 46 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/language-selection.css: -------------------------------------------------------------------------------- 1 | .container 2 | { 3 | display: flex; 4 | flex-wrap: wrap; 5 | flex-direction: row; 6 | } 7 | 8 | .container-item 9 | { 10 | flex-basis: 20%; 11 | flex-grow: 1; 12 | } 13 | 14 | #paper-dialog 15 | { 16 | width: 300px; 17 | } 18 | 19 | ::-webkit-scrollbar 20 | { 21 | display: none; 22 | } 23 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/language-selection.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'language-selection', 4 | properties: 5 | { 6 | iso: 7 | { 8 | type: String, 9 | notify: true, 10 | value: 'en' 11 | }, 12 | _opened: 13 | { 14 | type: Boolean, 15 | value: false 16 | } 17 | }, 18 | ready: function() 19 | { 20 | this.$['iron-selector'].addEventListener('click', () => 21 | { 22 | this.$['paper-dialog'].close(); 23 | this._opened = false; 24 | }); 25 | 26 | this.$['flag-button'].addEventListener('click', () => 27 | { 28 | this.$['paper-dialog'].open(); 29 | this._opened = true; 30 | }); 31 | }, 32 | attached: function() 33 | { 34 | 35 | } 36 | }) 37 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ae.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/am.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ao.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/at.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/au.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ax.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/az.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ba.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/be.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/bw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ca.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ci.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ck.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/co.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cx.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/cz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/de.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/dj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/dk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/dz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/eh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/et.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/eu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/fi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/fm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/fo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/fr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ga.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gb-eng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gb-sct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/gy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/hm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/hn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/hu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ie.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/il.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/iq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/is.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/it.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/jm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/jo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/jp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ke.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/km.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/kn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/kp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/kr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/kw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/la.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/lc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/lr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ls.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/lt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/lu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/lv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ly.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ma.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ml.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/my.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/mz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/na.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/nc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ne.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/nl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/np.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/nr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/nu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/nz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/pa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/pg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/pk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/pl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/pm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/pr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ps.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/pw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/qa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/re.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ru.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/rw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/se.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/si.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/so.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/st.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/sy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/td.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/th.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/to.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/tz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ua.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/uy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/uz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/vc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ve.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/vn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/wf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ws.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/ye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/yt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/za.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /translation-app/shared/language-selection/languages/zw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /translation-app/translation-window/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Translation App 6 | 7 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /translation-app/translation-window/translation-request/translation-request.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlorianFe/EasyTongue/00f78ace376113fa8a8dacb8382136e53057dc07/translation-app/translation-window/translation-request/translation-request.css -------------------------------------------------------------------------------- /translation-app/translation-window/translation-request/translation-request.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /translation-app/translation-window/translation-request/translation-request.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'translation-request', 4 | properties: 5 | { 6 | from: 7 | { 8 | type: String, 9 | value: 'de', 10 | observer: '_generateRequest' 11 | }, 12 | to: 13 | { 14 | type: String, 15 | value: 'en', 16 | observer: '_generateRequest' 17 | }, 18 | text: 19 | { 20 | type: String, 21 | value: "Hello", 22 | observer: '_generateRequest' 23 | }, 24 | translationText: 25 | { 26 | type: String, 27 | notify: true 28 | }, 29 | _response: 30 | { 31 | type: Object, 32 | observer: "_onResponseChange" 33 | } 34 | }, 35 | ready: function() 36 | { 37 | this.$['iron-ajax'].addEventListener('error', (data) => 38 | { 39 | let request = data.detail.request; 40 | 41 | console.log(request.status) 42 | 43 | switch(request.status) 44 | { 45 | case 0: 46 | this.translationText = "No Response from Server"; 47 | break; 48 | 49 | case 500: 50 | this.translationText = ""; 51 | break; 52 | 53 | default: 54 | this.translationText = request.statusText; 55 | } 56 | }); 57 | }, 58 | getTransltrURLParams: function(text, from, to) 59 | { 60 | return { 61 | text: text, 62 | from: from, 63 | to: to 64 | }; 65 | }, 66 | _onResponseChange: function(response) 67 | { 68 | if(response) 69 | { 70 | if(response.translationText) 71 | { 72 | if(response.text === this.text) 73 | { 74 | this.translationText = response.translationText; 75 | } 76 | } 77 | } 78 | }, 79 | _generateRequest: function() 80 | { 81 | this.translationText = ''; 82 | 83 | if(!this.from) return; 84 | if(!this.to) return; 85 | if(!this.text) return; 86 | 87 | if(this.from.length <= 0) return; 88 | if(this.to.length <= 0) return; 89 | if(this.text.length <= 0) return; 90 | 91 | this.$["iron-ajax"].generateRequest(); 92 | } 93 | }) 94 | -------------------------------------------------------------------------------- /translation-app/translation-window/translation-window-locals.json: -------------------------------------------------------------------------------- 1 | { 2 | "de": 3 | { 4 | "translation": "Übersetzung" 5 | }, 6 | "en": 7 | { 8 | "translation": "translation" 9 | }, 10 | "fr": 11 | { 12 | "translation": "???" 13 | }, 14 | "es": 15 | { 16 | "translation": "???" 17 | }, 18 | "tr": 19 | { 20 | "translation": "???" 21 | }, 22 | "ru": 23 | { 24 | "translation": "???" 25 | }, 26 | "zh-CHS": 27 | { 28 | "translation": "???" 29 | }, 30 | "hi": 31 | { 32 | "translation": "???" 33 | }, 34 | "pl": 35 | { 36 | "translation": "???" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /translation-app/translation-window/translation-window.css: -------------------------------------------------------------------------------- 1 | :host 2 | { 3 | margin: 15px; 4 | padding: 30px; 5 | } 6 | 7 | flag-icon 8 | { 9 | width: 50px; 10 | height: 50px; 11 | } 12 | 13 | paper-icon-button 14 | { 15 | width: 70px; 16 | height: 70px; 17 | } 18 | 19 | .fullwidth 20 | { 21 | width: 100%; 22 | } 23 | 24 | .row 25 | { 26 | display: flex; 27 | } 28 | 29 | .row paper-item 30 | { 31 | flex-grow: 1; 32 | } 33 | 34 | .row div 35 | { 36 | flex-grow: 1; 37 | } 38 | 39 | td 40 | { 41 | padding: 10px; 42 | } 43 | 44 | .row paper-input 45 | { 46 | flex-grow: 1; 47 | } 48 | 49 | .container 50 | { 51 | flex-grow: 1; 52 | } 53 | 54 | .content 55 | { 56 | padding: 30px; 57 | } 58 | 59 | paper-button 60 | { 61 | padding: 5px; 62 | margin: 5px; 63 | } 64 | 65 | footer 66 | { 67 | width: 100%; 68 | height: 25px; 69 | 70 | background-color: #ddd; 71 | } 72 | -------------------------------------------------------------------------------- /translation-app/translation-window/translation-window.js: -------------------------------------------------------------------------------- 1 | Polymer( 2 | { 3 | is: 'translation-window', 4 | property: 5 | { 6 | sourceLanguageIso: String, 7 | destinationLanguageIso: String 8 | }, 9 | behaviors: 10 | [ 11 | Polymer.AppLocalizeBehavior 12 | ], 13 | attached: function() 14 | { 15 | this.loadResources(this.resolveUrl('translation-window-locales.json')); 16 | }, 17 | ready: function() 18 | { 19 | this.$['source-language-iso-storage'].addEventListener('iron-localstorage-load', () => 20 | { 21 | let sourceLanguageIso = this.$['source-language-iso-storage'].value; 22 | this.sourceLanguageIso = sourceLanguageIso; 23 | console.log(this.sourceLanguageIso); 24 | }); 25 | 26 | this.$['source-language-iso-storage'].addEventListener('iron-localstorage-load-empty', () => 27 | { 28 | this.sourceLanguageIso = 'en'; 29 | console.log("empty"); 30 | }); 31 | 32 | this.$['destination-language-iso-storage'].addEventListener('iron-localstorage-load', () => 33 | { 34 | let destinationLanguageIso = this.$['destination-language-iso-storage'].value; 35 | this.destinationLanguageIso = destinationLanguageIso; 36 | }); 37 | 38 | this.$['destination-language-iso-storage'].addEventListener('iron-localstorage-load-empty', () => 39 | { 40 | this.destinationLanguageIso = 'de'; 41 | console.log("empty"); 42 | }); 43 | 44 | let from = document.getElementById('source-input'); 45 | let to = document.getElementById('destination-input'); 46 | 47 | this.$['source-language-selection'].addEventListener('iso-changed', (data) => 48 | { 49 | let languageIso = data.detail.value; 50 | this.sourceLanguageIso = languageIso; 51 | }); 52 | 53 | this.$['destination-language-selection'].addEventListener('iso-changed', (data) => 54 | { 55 | let languageIso = data.detail.value; 56 | this.destinationLanguageIso = languageIso; 57 | }); 58 | 59 | let remote = require('electron').remote; 60 | let currentWindow = remote.getCurrentWindow(); 61 | 62 | currentWindow.on('show', () => 63 | { 64 | from.value = ''; 65 | to.value = ''; 66 | 67 | from.focus(); 68 | }); 69 | 70 | const {ipcRenderer} = require('electron'); 71 | 72 | this.$['settings-icon'].addEventListener('click', () => 73 | { 74 | ipcRenderer.send('settings-icon-click', {}); 75 | }); 76 | 77 | ipcRenderer.on('swapLanguagesKeyCombinationChange', (e, arg) => 78 | { 79 | let keyCombination = arg.keyCombination; 80 | 81 | Mousetrap.bind(keyCombination, () => 82 | { 83 | let swapContainer = this.sourceLanguageIso; 84 | 85 | this.sourceLanguageIso = this.destinationLanguageIso; 86 | this.destinationLanguageIso = swapContainer; 87 | }); 88 | }); 89 | 90 | }, 91 | attached: function() 92 | { 93 | document.getElementById('source-input').focus(); 94 | }, 95 | add: function(summand1, summand2) 96 | { 97 | return summand1 + summand2; 98 | }, 99 | _escapePressed: function(data) 100 | { 101 | let remote = require('electron').remote; 102 | let currentWindow = remote.getCurrentWindow(); 103 | 104 | this.$["source-input"].value = ''; 105 | this.$["destination-input"].value = ''; 106 | 107 | currentWindow.hide(); 108 | } 109 | }); 110 | --------------------------------------------------------------------------------