diff --git "a/\"" "b/\"" new file mode 100644 index 0000000..e69de29 diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..13116b8 Binary files /dev/null and b/.DS_Store differ diff --git a/deep_translator/__init__.py b/deep_translator/__init__.py index 2b0c9e0..fd29793 100644 --- a/deep_translator/__init__.py +++ b/deep_translator/__init__.py @@ -17,6 +17,9 @@ from deep_translator.tencent import TencentTranslator from deep_translator.yandex import YandexTranslator +from .glosbe import GlosbeTranslator +from .wikimedia import WikimediaTranslator + __author__ = """Nidhal Baccouri""" __email__ = "nidhalbacc@gmail.com" __version__ = "1.9.1" diff --git a/deep_translator/glosbe.py b/deep_translator/glosbe.py new file mode 100644 index 0000000..3af08ae --- /dev/null +++ b/deep_translator/glosbe.py @@ -0,0 +1,20 @@ +# glosbe.py + +import requests + +class GlosbeTranslator: + def __init__(self, source='auto', target='en'): + self.source = source + self.target = target + self.base_url = 'https://api.glosbe.com/translate' + + def translate(self, text): + params = { + 'from': self.source, + 'dest': self.target, + 'phrase': text, + 'format': 'json' + } + response = requests.get(self.base_url, params=params) + response.raise_for_status() + return response.json()['tuc'][0]['phrase']['text'] diff --git a/deep_translator/test_glosbe.py b/deep_translator/test_glosbe.py new file mode 100644 index 0000000..e69de29 diff --git a/deep_translator/test_wikimedia.py b/deep_translator/test_wikimedia.py new file mode 100644 index 0000000..2558862 --- /dev/null +++ b/deep_translator/test_wikimedia.py @@ -0,0 +1,13 @@ +# test_wikimedia.py + +import unittest +from deep_translator import WikimediaTranslator + +class TestWikimediaTranslator(unittest.TestCase): + def test_translate(self): + translator = WikimediaTranslator(source='en', target='fr') + result = translator.translate('hello') + self.assertEqual(result, 'Je vous salue .') # Adjust according to actual API response + +if __name__ == '__main__': + unittest.main() diff --git a/deep_translator/wikimedia.py b/deep_translator/wikimedia.py new file mode 100644 index 0000000..c615037 --- /dev/null +++ b/deep_translator/wikimedia.py @@ -0,0 +1,26 @@ +# wikimedia.py + +import requests + +class WikimediaTranslator: + def __init__(self, source='en', target='fr'): + self.source = source + self.target = target + self.base_url = 'https://translate.wmcloud.org/api/translate' + + def translate(self, text): + data = { + 'format': 'text', # Assuming the format is 'text' + 'content': text, + 'source_language': self.source, + 'target_language': self.target + } + headers = { + 'Content-Type': 'application/json' + } + response = requests.post(self.base_url, json=data, headers=headers) + print("Request Data:", data) # Debugging line + print("Response Status Code:", response.status_code) # Debugging line + print("Response Text:", response.text) # Debugging line + response.raise_for_status() + return response.json()['translation'] diff --git a/docs/README.rst b/docs/README.rst index aee43ff..a5ddde6 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -951,6 +951,28 @@ Here are some screenshots: :height: 300 :alt: screenshot3 +Glosbe Translator +================= + +.. code-block:: python + + from deep_translator import GlosbeTranslator + + translated = GlosbeTranslator(source='en', target='es').translate("hello") + print(translated) # Should print the translation of "hello" in Spanish + + +Wikimedia Translator +===================== + +.. code-block:: python + + from deep_translator import WikimediaTranslator + + translated = WikimediaTranslator(source='en', target='fr').translate("hello") + print(translated) # Should print the translation of "hello" in French + + =========================== Website & Desktop app ===========================