Comments (7)
I think the definition of the example
function was ambiguous in the current version but should be well-defined in next
translate/translatepy/translators/base.py
Lines 959 to 975 in 6bd2237
translate/translatepy/models.py
Lines 634 to 733 in 6bd2237
This makes me think that RichDictionaryResult
should be able to optionally hold examples too.
I just checked on the next
branch, and it seems that no translator returns an example, might not be reimplemented yet…
As for the current stable version, those functions are hit are miss and are here because some translators such as Yandex are DeepL supported some kind of “example” feature, but which seemed to have different behaviors following the website used.
Note
For example, the use of a destination_language
doesn't feel right in this context, which is corrected in the new branch.
It might also be worth diving a bit more in the current web implementations of the example
feature in supported websites.
from translate.
As a result, I wrote my own simple function to get a list of sample sentences using your exceptions. I'll use it for now.
import requests
from translatepy.translators.yandex import YandexTranslateException
from translatepy.translators import BaseTranslator
def get_examples(text: str, source_language: str, destination_language: str) -> list:
link = (f"https://dictionary.yandex.net/dicservice.json/queryCorpus?ui=en&"
f"src={text}&lang={source_language}-{destination_language}&flags=7&srv=android&v=2&maxlen=200")
BaseTranslator._validate_language_pair(None, source_language, destination_language)
request = requests.get(link)
if request.status_code >= 400:
raise YandexTranslateException(request.status_code, request.json()["message"])
result = []
for example in request.json()["result"]["examples"]:
result.append({
"src": example["src"].replace("<", "").replace(">", ""),
"dst": example["dst"].replace("<", "").replace(">", "")
})
return result
from translate.
Don't mix different things - dictionary (словарь) и example (примеры). That documentation talks about a dictionary. But okay, that's not the problem, we use custom reverse engineered API endpoints, the endpoint in the documentation requires API keys for authorisation.
from translate.
Can you get the same behavior as you need (source language to source language) in Yandex Translate web application or Android application? If not, we can't help you.
from translate.
Don't mix different things - dictionary (словарь) и example (примеры). That documentation talks about a dictionary. But okay, that's not the problem, we use custom reverse engineered API endpoints, the endpoint in the documentation requires API keys for authorisation.
I'm sorry that I got something mixed up. But in the example
function of the YandexTranslate
class there was a link to https://dictionary.yandex.net where there was a link to the documentation that I referred to in the first post.
Can you get the same behavior as you need (source language to source language) in Yandex Translate web application or Android application? If not, we can't help you.
Unfortunately, I couldn't reproduce it. I will try to find a solution to my problem outside of your library. Maybe you can give me some advice?
from translate.
But in the example function of the YandexTranslate class there was a link to dictionary.yandex.net where there was a link to the documentation that I referred to in the first post.
The closest thing to the functionality mentioned in documentation is the dictionary
function in translatepy.
Unfortunately, I couldn't reproduce it. I will try to find a solution to my problem outside of your library. Maybe you can give me some advice?
I make some changes to the translatepy to get working Yandex dictionary function and I get this response for specific words:
hello
:
{'head': {},
'en': {'syn': [{'text': 'hello',
'pos': {'code': 'nn', 'text': 'n'},
'ts': 'həˈləʊ',
'tr': [{'text': 'hi',
'pos': {'code': 'nn', 'text': 'n'},
'fr': 1,
'syn': [{'text': 'hallo', 'pos': {'code': 'nn', 'text': 'n'}, 'fr': 1},
{'text': 'salut', 'pos': {'code': 'nn', 'text': 'n'}, 'fr': 1}]},
{'text': 'good day',
'pos': {'code': 'nn', 'text': 'n'},
'fr': 1,
'syn': [{'text': 'good afternoon',
'pos': {'code': 'nn', 'text': 'n'},
'fr': 1}]},
{'text': 'greetings',
'pos': {'code': 'nn', 'text': 'n'},
'fr': 1,
'syn': [{'text': 'hullo', 'pos': {'code': 'nn', 'text': 'n'}, 'fr': 1},
{'text': 'hiya', 'pos': {'code': 'nn', 'text': 'n'}, 'fr': 1},
{'text': 'hey', 'pos': {'code': 'nn', 'text': 'n'}, 'fr': 1},
{'text': 'howdy', 'pos': {'code': 'nn', 'text': 'n'}, 'fr': 1}]},
{'text': 'greet', 'pos': {'code': 'vrb', 'text': 'v'}, 'fr': 1},
{'text': 'yo', 'pos': {'code': 'inv', 'text': 'invar'}, 'fr': 1}]}]}}
regale
:
{'head': {},
'en': {'syn': [{'text': 'regale',
'pos': {'code': 'vrb', 'text': 'v'},
'ts': 'rɪˈgeɪl',
'tr': [{'text': 'treat',
'pos': {'code': 'vrb', 'text': 'v'},
'fr': 1,
'syn': [{'text': 'entertain',
'pos': {'code': 'vrb', 'text': 'v'},
'fr': 1},
{'text': 'feed', 'pos': {'code': 'vrb', 'text': 'v'}, 'fr': 1},
{'text': 'divert', 'pos': {'code': 'vrb', 'text': 'v'}, 'fr': 1}]},
{'text': 'feast', 'pos': {'code': 'nn', 'text': 'n'}, 'fr': 1}]}]}}
Is this something you were looking for?
from translate.
Is this something you were looking for?
No. I need to get examples of sentences with a certain word without having to translate it once again, as shown in the first code example in the first post. Maybe I said something wrong because I used a translator to write messages.
I also noticed that the Yandex API returns an example in the original language and its translation. Both would be useful to me, but the example
function returns only one translated one. Can I get both sentences (original and translated) for one example sentence in the translatepy
library or do I need to write my own function?
An example of a Yandex API response from the browser console:
from translate.
Related Issues (20)
- Bulk Translation support? HOT 2
- NoResult: No service has returned a valid result HOT 8
- Missing spaces between tags when using translate_html HOT 2
- Bing Translator throwing error code 205 HOT 5
- Not accurate source language autodetection HOT 14
- Language auto detecting is broken in MyMemory HOT 3
- example() not working HOT 1
- Next: 3.0 HOT 24
- Different Translation on Yandex HOT 11
- Result mismatch Google Translate HOT 5
- MicrosoftTranslate.text_to_speech is not working HOT 8
- Is the DeepL split text correct? HOT 3
- [SERVER]: cannot import name 'General' from 'nasse.config' HOT 1
- the lang tr is not supported by deepl error (even though it has) HOT 1
- How to set timeout for Translate requesting? HOT 8
- Links and hashtags seem to change after translation HOT 10
- ReversoTranslator BUG HOT 7
- No module named 'translatepy.utils' (on Windows) HOT 2
- Traditional Chinese HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from translate.