Changeset 15 in code for trunk/engines/reverso.go


Ignore:
Timestamp:
Aug 30, 2023, 11:57:46 AM (22 months ago)
Author:
manerakai
Message:

Added gofiber

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/engines/reverso.go

    r13 r15  
    1515func (_ *Reverso) DisplayName() string { return "Reverso" }
    1616
    17 var reversoLangs = []Language{
    18         {Name: "Arabic", Code: "ara"},
    19         {Name: "Chinese (Simplified)", Code: "chi"}, // marketed as just "Chinese"
    20         {Name: "Czech", Code: "cze"},
    21         {Name: "Danish", Code: "dan"},
    22         {Name: "Dutch", Code: "dut"},
    23         {Name: "English", Code: "eng"},
    24         {Name: "French", Code: "fra"},
    25         {Name: "German", Code: "ger"},
    26         {Name: "Hebrew", Code: "heb"},
    27         {Name: "Hindi", Code: "hin"},
    28         {Name: "Hungarian", Code: "hun"},
    29         {Name: "Italian", Code: "ita"},
    30         {Name: "Japanese", Code: "jpn"},
    31         {Name: "Korean", Code: "kor"},
    32         {Name: "Persian", Code: "per"},
    33         {Name: "Polish", Code: "pol"},
    34         {Name: "Portuguese", Code: "por"},
    35         {Name: "Romanian", Code: "rum"},
    36         {Name: "Russian", Code: "rus"},
    37         {Name: "Slovak", Code: "slo"},
    38         {Name: "Spanish", Code: "spa"},
    39         {Name: "Swedish", Code: "swe"},
    40         {Name: "Thai", Code: "tha"},
    41         {Name: "Turkish", Code: "tur"},
    42         {Name: "Ukrainian", Code: "ukr"},
     17var reversoLangs = Language{
     18        "ara": "Arabic",
     19        "chi": "Chinese (Simplified)", // marketed as just "Chinese"
     20        "cze": "Czech",
     21        "dan": "Danish",
     22        "dut": "Dutch",
     23        "eng": "English",
     24        "fra": "French",
     25        "ger": "German",
     26        "heb": "Hebrew",
     27        "hin": "Hindi",
     28        "hun": "Hungarian",
     29        "ita": "Italian",
     30        "jpn": "Japanese",
     31        "kor": "Korean",
     32        "per": "Persian",
     33        "pol": "Polish",
     34        "por": "Portuguese",
     35        "rum": "Romanian",
     36        "rus": "Russian",
     37        "slo": "Slovak",
     38        "spa": "Spanish",
     39        "swe": "Swedish",
     40        "tha": "Thai",
     41        "tur": "Turkish",
     42        "ukr": "Ukrainian",
    4343}
    4444
    45 func (_ *Reverso) SourceLanguages() ([]Language, error) { return reversoLangs, nil }
     45func (_ *Reverso) SourceLanguages() (Language, error) { return reversoLangs, nil }
    4646
    47 func (_ *Reverso) TargetLanguages() ([]Language, error) { return reversoLangs, nil }
    48 
    49 func (_ *Reverso) SupportsAutodetect() bool { return true }
     47func (_ *Reverso) TargetLanguages() (Language, error) { return reversoLangs, nil }
    5048
    5149type reversoAPIResponse struct {
     
    5654}
    5755
    58 func (e *Reverso) callAPI(text string, from, to Language) (reversoAPIResponse, error) {
     56func (e *Reverso) callAPI(text string, from, to string) (reversoAPIResponse, error) {
    5957        // `contextResults` must be false for language detection
    6058        formData := map[string]interface{}{
    6159                "format": "text",
    62                 "from":   from.Code,
    63                 "to":     to.Code,
     60                "from":   from,
     61                "to":     to,
    6462                "input":  text,
    6563                "options": map[string]interface{}{
     
    110108}
    111109
    112 func (e *Reverso) DetectLanguage(text string) (Language, error) {
     110func (e *Reverso) DetectLanguage(text string) (string, error) {
    113111        // Any language pair works here, does not affect result
    114         r, err := e.callAPI(text, reversoLangs[0], reversoLangs[1])
     112        r, err := e.callAPI(text, "ara", "chi")
    115113
    116114        if err != nil {
    117                 return Language{}, err
     115                return "", err
    118116        }
    119117
    120118        langCode := r.LanguageDetection.DetectedLanguage
    121119
    122         for _, lang := range reversoLangs {
    123                 if lang.Code == langCode {
    124                         return lang, nil
     120        for code := range reversoLangs {
     121                if code == langCode {
     122                        return code, nil
    125123                }
    126124        }
    127125
    128         return Language{}, fmt.Errorf("language code \"%s\" is not in Reverso's language list", langCode)
     126        return "", fmt.Errorf("language code \"%s\" is not in Reverso's language list", langCode)
    129127}
    130128
    131 func (e *Reverso) Translate(text string, from, to Language) (TranslationResult, error) {
    132         if from.Code == "auto" {
     129func (e *Reverso) Translate(text string, from, to string) (TranslationResult, error) {
     130        if from == "auto" {
    133131                from_, err := e.DetectLanguage(text)
    134132
     
    155153
    156154        return TranslationResult{
    157                 SourceLanguage: from,
    158155                TranslatedText: translation,
    159156        }, nil
Note: See TracChangeset for help on using the changeset viewer.