Skip to content

🌏🌍🌎Translators🌎🌍🌏 is a library that aims to bring free, multiple, enjoyable translations to individuals and students in Python. Translators是一个旨在用Python为个人和学生带来免费、多样、愉快翻译的库。

License

Notifications You must be signed in to change notification settings

UlionTse/translators

Repository files navigation

PyPI - Version Conda - Version PyPI - License PyPI - Python PyPI - Status PyPI - Wheel PyPI - Downloads


Translators is a library that aims to bring free, multiple, enjoyable translations to individuals and students in Python.

Supported Translation Services

ID Translator Number of Supported Languages Advantage Service Status
1 Niutrans 452 support the most languages in the world Northeastern University / Niutrans, China /
2 MyMemory 330 support the most languages in the world Translated, Italy stable
3 Alibaba 221 support most languages, support professional field Alibaba, China stable
4 Baidu 201 support most languages, support professional field, support classical Chinese Baidu, China stable
5 ModernMt 200 open-source, support more languages in the world Modernmt / Translated, Italy stable
6 VolcEngine 189 support more languages in the world, support professional field ByteDance, China /
7 Iciba 187 support the most languages in the world Kingsoft / Xiaomi, China stable
8 Iflytek 137 support the most languages in the world Iflytek, China /
9 Google 134 support more languages in the world Google, America stable(offline in China inland)
10 Bing 128 support more languages in the world Microsoft, America stable
11 Lingvanex 112 support translation of different regions but the same language Lingvanex, Cyprus stable
12 Yandex 102 support more languages in the world, support word to emoji Yandex, Russia stable
13 Itranslate 101 support translation of different regions but the same language, such as en-US, en-UK, en-AU Itranslate, Austria stable
14 SysTran 52 support more languages in the world SysTran, France stable
15 Argos 46 open-source Argos / Libre, America stable
16 Apertium 45 open-source Apertium, Spain stable
17 Reverso 42 popular on Mac and Iphone Reverso, France stable
18 Deepl 30 high quality to translate but response slowly Deepl, Germany stable
19 CloudTranslation 28 support main languages Xiamen University / CloudTranslation, China stable
20 QQTranSmart 22 support main languages Tencent, China stable
21 TranslateCom 21 good at English translation TranslateCom, America stable
22 Sogou 20 support more languages in the world Tencent, China stable
23 Tilde 20 good at lv, de, fr translation Tilde, Latvia /
24 Caiyun 19 high quality to translate but response slowly, support professional field ColorfulClouds, China stable
25 QQFanyi 17 support main languages Tencent, China /
26 TranslateMe 16 good at English translation TranslateMe / Neosus, Lithuania /
27 Papago 15 good at Korean translation Naver, South Korea stable
28 Mirai 15 good at Japanese translation MiraiTranslate, Japan /
29 Youdao 12 support main languages, high quality Netease, China stable
30 Iflyrec 12 good at Chinese translation Iflytek, China stable
31 Hujiang 12 supported by baidu Hujiang, China stable
32 Yeekit 10 support main languages CTC, China /
33 LanguageWire 8 good at English translation LanguageWire, Denmark stable
34 Elia 6 good at Basque translation Elhuyar, Spain stable
35 Judic 4 good at European translation CrossLang, Belgium /
36 Mglip 3 good at Mongolia translation Inner Mongolia University, China stable
37 Utibet 2 good at Tibet translation Tibet University, China stable

Installation

# PYPI
pip install --upgrade translators

# Conda
conda install conda-forge::translators

# Source
git clone https://github.com/UlionTse/translators.git
cd translators
python setup.py install

Getting Started

import translators as ts

q_text = '季姬寂,集鸡,鸡即棘鸡。棘鸡饥叽,季姬及箕稷济鸡。'
q_html = '''<!DOCTYPE html><html><head><title>《季姬击鸡记》</title></head><body><p>还有另一篇文章《施氏食狮史》。</p></body></html>'''

### usage
_ = ts.preaccelerate_and_speedtest()  # Optional. Caching sessions in advance, which can help improve access speed.

print(ts.translators_pool)
print(ts.translate_text(q_text))
print(ts.translate_html(q_html, translator='alibaba'))

### parameters
help(ts.translate_text)

"""
translate_text(query_text: str, translator: str = 'bing', from_language: str = 'auto', to_language: str = 'en', **kwargs) -> Union[str, dict]
    :param query_text: str, must.
    :param translator: str, default 'bing'.
    :param from_language: str, default 'auto'.
    :param to_language: str, default 'en'.
    :param if_use_preacceleration: bool, default False.
    :param **kwargs:
            :param is_detail_result: bool, default False.
            :param professional_field: str, default None. Support alibaba(), baidu(), caiyun(), cloudTranslation(), elia(), sysTran(), youdao(), volcEngine() only.
            :param timeout: float, default None.
            :param proxies: dict, default None.
            :param sleep_seconds: float, default 0.
            :param update_session_after_freq: int, default 1000.
            :param update_session_after_seconds: float, default 1500.
            :param if_use_cn_host: bool, default False. Support google(), bing() only.                
            :param reset_host_url: str, default None. Support google(), yandex() only.
            :param if_check_reset_host_url: bool, default True. Support google(), yandex() only.
            :param if_ignore_empty_query: bool, default False.
            :param limit_of_length: int, default 20000.
            :param if_ignore_limit_of_length: bool, default False.
            :param if_show_time_stat: bool, default False.
            :param show_time_stat_precision: int, default 2.
            :param if_print_warning: bool, default True.
            :param lingvanex_mode: str, default 'B2C', choose from ("B2C", "B2B").
            :param myMemory_mode: str, default "web", choose from ("web", "api").
    :return: str or dict
"""

CLI

You can leverage a simple CLI that ships with translators.

> translate --help                                                                                                                                                                                                                               ─╯
usage: translate [-h] [-p PROVIDER] [-f FROM_LANGUAGE] [-t TO_LANGUAGE] [--version] input

Bring free, multiple, enjoyable translations to individuals and students.

positional arguments:
  input                 Raw text or path to a file to be translated

options:
  -h, --help            show this help message and exit
  -p PROVIDER, --provider PROVIDER
                        Choose one of the supported providers. e.g. bing, google, yandex, bing etc...
  -f FROM_LANGUAGE, --from FROM_LANGUAGE
                        Enforce the language of origin. By default it is auto detected.
  -t TO_LANGUAGE, --to TO_LANGUAGE
                        Set the destination language. Always default to english.
  --version             Show version information and exit.

Supported Languages

Language Language of Translator Google Yandex Bing Baidu Alibaba Tencent Youdao Sogou Deepl Caiyun Argos others...
english en Y Y Y Y Y Y Y Y Y Y Y ...
chinese zh Y Y Y Y Y Y Y Y Y Y Y
arabic ar Y Y Y Y(ara) Y Y Y Y Y
russian ru Y Y Y Y Y Y Y Y Y Y Y
french fr Y Y Y Y(fra) Y Y Y Y Y Y Y
german de Y Y Y Y Y Y Y Y Y
spanish es Y Y Y Y(spa) Y Y Y Y Y Y Y
portuguese pt Y Y Y(pt/pt-pt) Y Y Y Y Y Y Y
italian it Y Y Y Y Y Y Y Y Y Y
japanese ja Y Y Y Y(jp) Y Y Y Y Y Y
korean ko Y Y Y Y(kor) Y Y Y Y
greek el Y Y Y Y Y Y
dutch nl Y Y Y Y Y Y Y
hindi hi Y Y Y Y Y Y
turkish tr Y Y Y Y Y Y Y
malay ms Y Y Y Y Y
thai th Y Y Y Y Y Y Y
vietnamese vi Y Y Y Y(vie) Y Y Y Y Y
indonesian id Y Y Y Y Y Y Y Y
hebrew he Y(iw) Y Y Y
polish pl Y Y Y Y Y Y Y
mongolian mn Y Y
czech cs Y Y Y Y Y Y
hungarian hu Y Y Y Y Y Y
estonian et Y Y Y Y(est) Y Y
bulgarian bg Y Y Y Y(bul) Y Y
danish da Y Y Y Y(dan) Y Y
finnish fi Y Y Y Y(fin) Y Y
romanian ro Y Y Y Y(rom) Y Y
swedish sv Y Y Y Y(swe) Y Y
slovenian sl Y Y Y Y(slo) Y Y
persian/farsi fa Y Y Y Y
bosnian bs Y Y Y(bs-Latn) Y(bs-Latn)
serbian sr Y Y Y(sr-Latn/sr-Cyrl) Y(sr-Latn/sr-Cyrl)
fijian fj Y Y
filipino tl Y Y Y(fil) Y(fil)
haitiancreole ht Y Y Y Y
catalan ca Y Y Y Y
croatian hr Y Y Y Y
latvian lv Y Y Y Y Y
lithuanian lt Y Y Y Y Y
urdu ur Y Y Y Y
ukrainian uk Y Y Y Y
welsh cy Y Y Y Y
tahiti ty Y Y
tongan to Y Y
swahili sw Y Y Y Y
samoan sm Y Y Y
slovak sk Y Y Y Y Y
afrikaans af Y Y Y Y
norwegian no Y Y Y Y
bengali bn Y Y Y(bn-BD) Y
malagasy mg Y Y Y Y
maltese mt Y Y Y Y
queretaro otomi otq Y Y
klingon/tlhingan hol tlh Y Y
gujarati gu Y Y Y
tamil ta Y Y Y
telugu te Y Y Y
punjabi pa Y Y Y
amharic am Y Y
azerbaijani az Y Y
bashkir ba Y
belarusian be Y Y
cebuano ceb Y Y
chuvash cv Y
esperanto eo Y Y
basque eu Y Y
irish ga Y Y Y
emoji emj Y
... ...

About Chinese Language

Language Language of Translator Google Yandex Bing Baidu Alibaba Tencent Youdao Sogou Iciba Iflytek Caiyun Deepl Argos Itranslate Reverso TranslateCom Papago Utibet
Chinese(简体) zh-CHS Y(zh-CN) Y(zh) Y(zh-Hans) Y(zh) Y(zh) Y(zh) Y Y Y(zh) Y(zh) Y(zh) Y(zh) Y(zh) Y(zh-CN) Y(zh/chi) ... Y(zh-CN) Y(zh)
Chinese(繁体) zh-CHT Y(zh-TW) Y(zh-Hant) Y(cht) Y(zh-TW) Y Y(cnt) Y(zh-TW) Y(zh-TW)
Chinese(文言文) wyw Y
Chinese(粤语) yue Y Y Y Y Y Y(zh-HK)
Chinese(内蒙语) mn N[外蒙] N[外蒙] Y[内蒙] N[外蒙]
Chinese(维吾尔语) uy Y
Chinese(藏语) ti Y Y
Chinese(白苗文) mww Y Y Y
Chinese(彝语) ii Y
Chinese(苗语) hmn Y
Chinese(壮语) zyb

DNS

We support custom DNS server by setting the environment variable NIQUESTS_DNS_URL. See https://niquests.readthedocs.io/en/latest/user/quickstart.html#set-dns-via-environment for more information.

Debug Tips

Linux Runtime Environment

  1. To support javascript runtime environment, you should download and install Node.js.
  2. Function baidu() doesn't work on Linux without desktop.

HttpError 4xx

  1. Check whether you made high frequency requests, especially httperror 429.
  2. Check whether this service is provided in your region.
  3. Detail to solve HttpError itself.
  4. Issue me, thanks.

NetworkError or ProxyError

  1. Check whether the network is connected correctly.
  2. Check the proxy are enabled on your computer. If it is enabled, try turning it off or otherwise.

Star History

Star History Chart

About

🌏🌍🌎Translators🌎🌍🌏 is a library that aims to bring free, multiple, enjoyable translations to individuals and students in Python. Translators是一个旨在用Python为个人和学生带来免费、多样、愉快翻译的库。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages