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
- Installation
- Getting Started
- Supported Languages
- Debug Tips
- Star History
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 | 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 | 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 | 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
- 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.