translators
Translators is a library that aims to bring free, multiple, enjoyable translations to individuals and students in Python. 「翻译官」是一个旨在用Python为个人和学生带来免费、多样、愉快翻译的库。
Top Related Projects
(unofficial) Googletrans: Free and Unlimited Google translate API for Python. Translates totally free of charge.
A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators.
A free and unlimited API for Google Translate :dollar::no_entry_sign:
Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.
Quick Overview
UlionTse/translators is a Python library that provides a unified API for multiple translation services. It supports various translation engines including Google, Bing, Yandex, and others, allowing developers to easily integrate translation capabilities into their applications without being tied to a single service provider.
Pros
- Supports multiple translation services through a single API
- Easy to switch between different translation engines
- Provides both free and paid translation options
- Actively maintained with regular updates
Cons
- Some translation services may require API keys or have usage limits
- Performance may vary depending on the chosen translation engine
- Limited to the languages supported by each individual service
- May require additional setup for certain translation engines
Code Examples
- Basic translation using Google Translate:
import translators as ts
text = "Hello, world!"
result = ts.google(text, from_language='en', to_language='es')
print(result) # Outputs: "¡Hola Mundo!"
- Switching between different translation engines:
import translators as ts
text = "How are you?"
result_bing = ts.bing(text, from_language='en', to_language='fr')
result_yandex = ts.yandex(text, from_language='en', to_language='fr')
print(f"Bing: {result_bing}")
print(f"Yandex: {result_yandex}")
- Detecting the language of a text:
import translators as ts
text = "Bonjour, comment allez-vous?"
detected_lang = ts.google(text, to_language='en', if_use_cn_host=False, if_detect_language=True)
print(f"Detected language: {detected_lang}")
Getting Started
To get started with UlionTse/translators, follow these steps:
-
Install the library using pip:
pip install translators
-
Import the library in your Python script:
import translators as ts
-
Use the desired translation engine function:
result = ts.google("Hello", from_language='en', to_language='fr') print(result)
Note: Some translation services may require API keys or additional setup. Refer to the project's documentation for specific requirements and usage instructions for each supported translation engine.
Competitor Comparisons
(unofficial) Googletrans: Free and Unlimited Google translate API for Python. Translates totally free of charge.
Pros of py-googletrans
- Simpler API with fewer dependencies
- Faster execution for single language translations
- Lightweight and easy to integrate into existing projects
Cons of py-googletrans
- Limited to Google Translate service only
- Less reliable due to potential changes in Google's API
- Fewer features and customization options
Code Comparison
py-googletrans:
from googletrans import Translator
translator = Translator()
result = translator.translate('Hello', dest='es')
print(result.text)
translators:
import translators as ts
result = ts.google('Hello', to_language='es')
print(result)
Key Differences
translators offers support for multiple translation services, including Google, Bing, Yandex, and others. It provides a more comprehensive solution for developers who need flexibility in choosing translation providers.
py-googletrans is focused solely on Google Translate, making it a simpler option for those who only need this specific service.
translators has more robust error handling and fallback mechanisms, which can be crucial for production environments. It also offers additional features like language detection and pronunciation.
Overall, translators is more suitable for complex, multi-lingual projects, while py-googletrans may be preferable for simpler, Google-specific translation needs.
A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators.
Pros of deep-translator
- More extensive language support, covering over 100 languages
- Offers multiple translation engines beyond Google Translate
- Includes speech-to-text and text-to-speech capabilities
Cons of deep-translator
- Slower performance for bulk translations
- Less comprehensive documentation and examples
- Fewer options for customizing API requests
Code Comparison
deep-translator:
from deep_translator import GoogleTranslator
translated = GoogleTranslator(source='auto', target='es').translate("Hello, world!")
translators:
import translators as ts
translated = ts.google("Hello, world!", to_language='es')
Both libraries offer simple interfaces for translation, but deep-translator requires explicit instantiation of a translator object, while translators uses a more functional approach. translators generally provides a more concise syntax for basic translation tasks.
deep-translator shines in scenarios requiring multiple translation engines or speech-related features, while translators excels in performance-critical applications and offers more flexibility in API interactions.
A free and unlimited API for Google Translate :dollar::no_entry_sign:
Pros of google-translate-api
- Lightweight and focused specifically on Google Translate
- Simple API with straightforward usage
- Supports both free and paid Google Translate API options
Cons of google-translate-api
- Limited to Google Translate only, while translators supports multiple services
- Less actively maintained compared to translators
- Fewer features and customization options
Code Comparison
translators:
from translators import translate_text
result = translate_text('Hello, world!', to_language='es')
print(result) # Hola Mundo!
google-translate-api:
const translate = require('google-translate-api');
translate('Hello, world!', {to: 'es'}).then(res => {
console.log(res.text); // Hola Mundo!
}).catch(err => {
console.error(err);
});
Both repositories provide translation functionality, but translators offers a more comprehensive solution with support for multiple translation services. google-translate-api is simpler and more focused on Google Translate specifically. The choice between them depends on whether you need a multi-service solution or prefer a lightweight, Google-specific option.
Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.
Pros of LibreTranslate
- Self-hosted solution, offering more privacy and control over data
- Supports multiple translation engines, including Argos Translate and OpenNMT
- Provides a user-friendly web interface for easy translation
Cons of LibreTranslate
- Limited language support compared to translators
- May require more setup and maintenance as a self-hosted solution
- Potentially slower translation speed, especially for large-scale tasks
Code Comparison
LibreTranslate:
from libretranslatepy import LibreTranslateAPI
lt = LibreTranslateAPI("https://translate.argosopentech.com/")
result = lt.translate("Hello, world!", "en", "es")
print(result)
translators:
import translators as ts
result = ts.google("Hello, world!", from_language="en", to_language="es")
print(result)
LibreTranslate offers a more privacy-focused approach with self-hosting capabilities, while translators provides a wider range of translation services and languages. LibreTranslate may be preferred for organizations with strict data control requirements, whereas translators is more suitable for developers seeking a variety of translation options and broader language support in a single package.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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 | QQFanyi | 17 | support main languages | Tencent, China | stable |
25 | TranslateMe | 16 | good at English translation | TranslateMe / Neosus, Lithuania | / |
26 | Papago | 15 | good at Korean translation | Naver, South Korea | stable |
27 | Mirai | 15 | good at Japanese translation | MiraiTranslate, Japan | / |
28 | Youdao | 12 | support main languages, high quality | Netease, China | stable |
29 | Iflyrec | 12 | good at Chinese translation | Iflytek, China | stable |
30 | Hujiang | 12 | supported by baidu | Hujiang, China | stable |
31 | Yeekit | 10 | support main languages | CTC, China | / |
32 | LanguageWire | 8 | good at English translation | LanguageWire, Denmark | stable |
33 | Caiyun | 7 | high quality to translate but response slowly, support professional field | ColorfulClouds, China | 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 | 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 |
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
Top Related Projects
(unofficial) Googletrans: Free and Unlimited Google translate API for Python. Translates totally free of charge.
A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators.
A free and unlimited API for Google Translate :dollar::no_entry_sign:
Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot