diff -r dab01678626d -r 1c858879d3d0 Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py Sun Dec 10 16:23:29 2017 +0100 @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2014 - 2017 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Package containing the various translation engines. +""" + +from __future__ import unicode_literals + +import os + +from PyQt5.QtCore import QCoreApplication +from PyQt5.QtGui import QIcon + +import UI.PixmapCache + + +def supportedEngineNames(): + """ + Module function to get the list of supported translation engines. + + @return names of supported engines (list of string) + """ + return ["googlev1", "mymemory", "glosbe", "promt", "yandex", "googlev2", + "microsoft", "deepl"] + + +def engineDisplayName(name): + """ + Module function to get a translated name for an engine. + + @param name name of a translation engine (string) + @return translated engine name (string) + """ + if name == "googlev1": + return QCoreApplication.translate("TranslatorEngines", "Google V.1") + elif name == "mymemory": + return QCoreApplication.translate("TranslatorEngines", "MyMemory") + elif name == "glosbe": + return QCoreApplication.translate("TranslatorEngines", "Glosbe") + elif name == "promt": + return QCoreApplication.translate("TranslatorEngines", "PROMT") + elif name == "yandex": + return QCoreApplication.translate("TranslatorEngines", "Yandex") + elif name == "googlev2": + return QCoreApplication.translate("TranslatorEngines", "Google V.2") + elif name == "microsoft": + return QCoreApplication.translate("TranslatorEngines", "Microsoft") + elif name == "deepl": + return QCoreApplication.translate("TranslatorEngines", "DeepL") + else: + return QCoreApplication.translate( + "TranslatorEngines", "Unknow translation service name ({0})")\ + .format(name) + + +def getTranslationEngine(name, plugin, parent=None): + """ + Module function to instantiate an engine object for the named service. + + @param name name of the online translation service (string) + @param plugin reference to the plugin object (TranslatorPlugin) + @param parent reference to the parent object + @return translation engine (TranslatorEngine) + """ + if name == "googlev1": + from .GoogleV1Engine import GoogleV1Engine + engine = GoogleV1Engine(plugin, parent) + elif name == "mymemory": + from .MyMemoryEngine import MyMemoryEngine + engine = MyMemoryEngine(plugin, parent) + elif name == "glosbe": + from .GlosbeEngine import GlosbeEngine + engine = GlosbeEngine(plugin, parent) + elif name == "promt": + from .PromtEngine import PromtEngine + engine = PromtEngine(plugin, parent) + elif name == "yandex": + from .YandexEngine import YandexEngine + engine = YandexEngine(plugin, parent) + elif name == "googlev2": + from .GoogleV2Engine import GoogleV2Engine + engine = GoogleV2Engine(plugin, parent) + elif name == "microsoft": + from .MicrosoftEngine import MicrosoftEngine + engine = MicrosoftEngine(plugin, parent) + elif name == "deepl": + from .DeepLEngine import DeepLEngine + engine = DeepLEngine(plugin, parent) + else: + engine = None + return engine + + +def getEngineIcon(name): + """ + Module function to get the icon of the named engine. + + @param name name of the translation engine + @type str + @return engine icon + @rtype QIcon + """ + if name in supportedEngineNames(): + return UI.PixmapCache.getIcon(os.path.join( + os.path.dirname(__file__), "..", "icons", "engines", + "{0}.png".format(name))) + else: + return QIcon() + + +def getKeyUrl(name): + """ + Module function to get an URL to request a user key. + + @param name name of the online translation service (string) + @return key request URL (string) + """ + if name == "mymemory": + return "http://mymemory.translated.net/doc/keygen.php" + elif name == "yandex": + return "http://api.yandex.com/key/form.xml?service=trnsl" + elif name == "googlev2": + return "https://console.developers.google.com/" + elif name == "microsoft": + return "https://portal.azure.com" + else: + return ""