Skip to content

Commit f9a9443

Browse files
authored
Updated to v0.4!
- Added new translator engine (translate_dict) - Fixed _get_lang_name function accepting names lower than 3 characters
1 parent 612ea51 commit f9a9443

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,30 @@
22
```python
33
from py_trans import PyTranslator
44

5-
x = PyTranslator(provider="google")
5+
x = PyTranslator()
66
print(x.translate("Hi", "si"))
77
```
88

99
**py-trans** is a Free Python library for translate text into different languages.
1010

1111
## Supported Engines
12-
For now py-trans supported for four translate engines (providers)
12+
For now py-trans supported for 5 translate engines (providers)
1313
| Engine | Engine Code |
1414
| ------------------------------------------------ | --------------- |
1515
|[Google Translate](https://translate.google.com/) | `google` |
1616
|[LibreTranslate](https://libretranslate.com/) | `libre` |
1717
|[translate.com](https://www.translate.com/) | `translate.com` |
1818
|[MyMemory](https://mymemory.translated.net/) | `my_memory` |
19+
|[Translate Dict](https://www.translatedict.com/) | `translate_dict` |
1920

2021
## Installation
2122
**Install from pypi**
23+
2224
```
2325
pip3 install py-trans
2426
```
2527
**Install from source**
28+
2629
If you want to try out latest features then install py-trans from the [source](https://github.com/Itz-fork/py-trans).
2730
```
2831
pip install git+https://github.com/Itz-fork/py-trans.git

py_trans/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
from .translator import PyTranslator
55

6-
__version__ = "v0.3.4"
6+
__version__ = "v0.4"

py_trans/translator.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class PyTranslator:
1515
libre - LibreTranslate Engine
1616
translate.com - translate.com Translate
1717
my_memory - MyMemory Translate
18+
translate_dict - Translate Dict
1819
1920
Argument(s):
2021
provider - Provider of Translator. (Must be a supported provider)
@@ -23,7 +24,7 @@ class PyTranslator:
2324
pytranslator = PyTranslator(provider="google")
2425
"""
2526
def __init__(self, provider="google"):
26-
self.providers = ["google", "libre", "translate.com", "my_memory"]
27+
self.providers = ["google", "libre", "translate.com", "my_memory", "translate_dict"]
2728
if provider in self.providers:
2829
self.provider = provider
2930
else:
@@ -51,6 +52,8 @@ def translate(self, text, dest_lang="en"):
5152
return self.translate_com(text, dest_lang)
5253
elif self.provider == "my_memory":
5354
return self.my_memory(text, dest_lang)
55+
elif self.provider == "translate_dict":
56+
return self.translate_dict(text, dest_lang)
5457
else:
5558
return
5659

@@ -74,6 +77,7 @@ def _detect_lang(self, text, full_name=False):
7477
r_url = requests.post("https://libretranslate.com/detect", data={"q": str(text)}, headers=self.lheader).json()
7578
language_code = r_url[0]["language"]
7679
except:
80+
# If can't detect the language let's think it's just english (RIP moment)
7781
language_code = "en"
7882
if full_name is False:
7983
return language_code
@@ -117,9 +121,23 @@ def my_memory(self, text, dest_lang):
117121
except Exception as e:
118122
return {"status": "failed", "error": e}
119123

124+
# Translate Dict
125+
def translate_dict(self, text, dest_lang):
126+
try:
127+
r_url = requests.get(f"https://t3.translatedict.com/1.php?p1=auto&p2={dest_lang}&p3={text}").text
128+
origin_lang = self._detect_lang(text=text, full_name=True)
129+
dest_lang_f = self.get_lang_name(dest_lang)
130+
tr_dict = {"status": "success", "engine": "Translate Dict", "translation": r_url, "dest_lang": dest_lang_f, "orgin_text": str(text), "origin_lang": origin_lang}
131+
return tr_dict
132+
except Exception as e:
133+
return {"status": "failed", "error": e}
134+
120135
# Get Language Names
121136
def get_lang_name(self, text):
122137
if len(text) == 2:
123138
return _get_full_lang_name(text)
124139
else:
125-
return _get_lang_code(text)
140+
if len(text) <= 3:
141+
return "Not a full language name"
142+
else:
143+
return _get_lang_code(text)

0 commit comments

Comments
 (0)