Awesome
<p align="center">
<img src="https://github.com/UlionTse/translators/blob/master/docs/translators_logo.png" width="500"/>
</p>
<p align="center">
<a href="https://pypi.org/project/translators"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/translators.svg?color=blue"></a>
<a href="https://anaconda.org/conda-forge/translators"><img alt="Conda - Version" src="https://img.shields.io/conda/vn/conda-forge/translators.svg?color=blue"></a>
<a href="https://pypi.org/project/translators"><img alt="PyPI - License" src="https://img.shields.io/pypi/l/translators.svg?color=brightgreen"></a>
<a href="https://pypi.org/project/translators"><img alt="PyPI - Python" src="https://img.shields.io/pypi/pyversions/translators.svg?color=blue"></a>
<a href="https://pypi.org/project/translators"><img alt="PyPI - Status" src="https://img.shields.io/pypi/status/translators.svg?color=brightgreen"></a>
<a href="https://pypi.org/project/translators"><img alt="PyPI - Wheel" src="https://img.shields.io/badge/wheel-yes-brightgreen.svg"></a>
<a href="https://pypi.org/project/translators"><img alt="PyPI - Downloads" src="https://static.pepy.tech/personalized-badge/translators?period=total&units=international_system&left_text=downloads&left_color=grey&right_color=blue"></a>
</p>
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
"""
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
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
- To support javascript runtime environment, you should download and install Node.js.
- Function baidu() doesn't work on Linux without desktop.
HttpError 4xx
- Check whether you made high frequency requests, especially httperror 429.
- Check whether this service is provided in your region.
- Detail to solve HttpError itself.
- Issue me, thanks.
NetworkError or ProxyError
- Check whether the network is connected correctly.
- Check the proxy are enabled on your computer. If it is enabled, try turning it off or otherwise.
Star History