| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/python/Lib/site-packages/translate/ |
Upload File : |
#!/usr/bin/env python
# encoding: utf-8
from textwrap import wrap
from .exceptions import InvalidProviderError
from .providers import MyMemoryProvider, MicrosoftProvider
DEFAULT_PROVIDER = MyMemoryProvider
TRANSLATION_API_MAX_LENGHT = 1000
PROVIDERS_CLASS = {
'mymemory': MyMemoryProvider,
'microsoft': MicrosoftProvider
}
class Translator:
def __init__(self, to_lang, from_lang='en', provider=None, secret_access_key=None, **kwargs):
self.available_providers = list(PROVIDERS_CLASS.keys())
self.from_lang = from_lang
self.to_lang = to_lang
if provider and provider not in self.available_providers:
raise InvalidProviderError(
'Provider class invalid. '
'Please check providers list bellow: {!r}'.format(self.available_providers)
)
provider_class = PROVIDERS_CLASS.get(provider, DEFAULT_PROVIDER)
self.provider = provider_class(
from_lang=from_lang,
to_lang=to_lang,
secret_access_key=secret_access_key,
**kwargs
)
def translate(self, text):
if self.from_lang == self.to_lang:
return text
text_list = wrap(text, TRANSLATION_API_MAX_LENGHT, replace_whitespace=False)
return ' '.join(self.provider.get_translation(text_wraped) for text_wraped in text_list)