[Python] Traductor Ingles-Español

Iniciado por AdeLax, 11 Marzo 2014, 23:50 PM

0 Miembros y 1 Visitante están viendo este tema.

AdeLax

Hola a todos,
Preguntaba si existe algo con lo que pudiera traducir texto en ingles a español con Python, desde que quitaron las apis de google ya no se que hacer  :(, espero que haya alguna solución...

Si alguien sabe algo por favor que me lo diga. Gracias!

Eleкtro

#1
A mi la ausencia de una API gratis no me impide seguir utilizando GoogleTranslate enviando peticiones por web, ¿te lo has planteado?, es reálmente sencillo, aunque, claro, más incómodo, y el grado de eficiencia resultante sería la eficacia que tu tengas al momento de parsear la respuesta.

Ahora, en Python no tengo ni conozco ningún código para esto, pero si te sirviera en VB.NET, solo dímelo.

PD: Aquí puedes encontrar muchos ejemplos en Python.

Saludos!








BigBear

me parecio interesante que lo tengas en .net , no lo podrias subir en algun lado? ,  para ver si lo puedo traducir a C#.

Eleкtro

Cita de: Doddy en 12 Marzo 2014, 00:32 AMme parecio interesante que lo tengas en .net , no lo podrias subir en algun lado? ,  para ver si lo puedo traducir a C#.

No se, teniendo en cuenta las cosas tan feas que me dijiste...  :rolleyes: ;)

No te costará convertirlo, el código es simple, el código original que escribí lo puedes ver aquí ~> Usar Google Translate sin comprar la API de pago xD

Óbviamente el método de parsing que empleo es muy básico y tiene sus fallas (caracteres escapados como la comilla doble los dejo como están), quien quiera puede perfeccionarlo, a mi me vale tal como está para seguir sacando las castañas del fuego.

De todas formas he tomado el código y lo acabo de documentar un poco y cambiar su modo de empleo, aquí tienes:

Código (vbnet) [Seleccionar]
' ***********************************************************************
' Author   : Elektro
' Modified : 03-12-2014
' ***********************************************************************
' <copyright file="GoogleTranslator.vb" company="Elektro Studios">
'     Copyright (c) Elektro Studios. All rights reserved.
' </copyright>
' ***********************************************************************

#Region " Usage Examples "

' MsgBox(GoogleTranslator.Translate("Hello Google!", GoogleTranslator.Language.en, GoogleTranslator.Language.es))   ' Result: Hola Google!

' MsgBox(GoogleTranslator.Translate("Hello Google!", GoogleTranslator.Language.auto, GoogleTranslator.Language.fr)) ' Result: Bonjour Google!

#End Region

#Region " Google Translator "

''' <summary>
''' Uses GoogleTranslate page to translate text from one Language to another.
''' </summary>
Public Class GoogleTranslator

#Region " Enumerations "

    ''' <summary>
    ''' Indicates a GoogleTranslate Language abbreviation.
    ''' </summary>
    Public Enum Language As Integer

        ''' <summary>
        ''' Let Google Detect The Language
        ''' </summary>
        auto

        ''' <summary>
        ''' afrikáans
        ''' </summary>
        af

        ''' <summary>
        ''' árabe
        ''' </summary>
        ar

        ''' <summary>
        ''' azerí
        ''' </summary>
        az

        ''' <summary>
        ''' bielorruso
        ''' </summary>
        be

        ''' <summary>
        ''' búlgaro
        ''' </summary>
        bg

        ''' <summary>
        ''' bengalí; bangla
        ''' </summary>
        bn

        ''' <summary>
        ''' bosnio
        ''' </summary>
        bs

        ''' <summary>
        ''' catalán
        ''' </summary>
        ca

        ''' <summary>
        ''' cebuano
        ''' </summary>
        ceb

        ''' <summary>
        ''' checo
        ''' </summary>
        cs

        ''' <summary>
        ''' galés
        ''' </summary>
        cy

        ''' <summary>
        ''' danés
        ''' </summary>
        da

        ''' <summary>
        ''' alemán
        ''' </summary>
        de

        ''' <summary>
        ''' griego
        ''' </summary>
        el

        ''' <summary>
        ''' inglés
        ''' </summary>
        en

        ''' <summary>
        ''' esperanto
        ''' </summary>
        eo

        ''' <summary>
        ''' español
        ''' </summary>
        es

        ''' <summary>
        ''' estonio
        ''' </summary>
        et

        ''' <summary>
        ''' euskera
        ''' </summary>
        eu

        ''' <summary>
        ''' persa
        ''' </summary>
        fa

        ''' <summary>
        ''' finlandés
        ''' </summary>
        fi

        ''' <summary>
        ''' francés
        ''' </summary>
        fr

        ''' <summary>
        ''' irlandés
        ''' </summary>
        ga

        ''' <summary>
        ''' gallego
        ''' </summary>
        gl

        ''' <summary>
        ''' gujarati
        ''' </summary>
        gu

        ''' <summary>
        ''' hindi
        ''' </summary>
        hi

        ''' <summary>
        ''' Hmong
        ''' </summary>
        hmn

        ''' <summary>
        ''' croata
        ''' </summary>
        hr

        ''' <summary>
        ''' criollo haitiano
        ''' </summary>
        ht

        ''' <summary>
        ''' húngaro
        ''' </summary>
        hu

        ''' <summary>
        ''' armenio
        ''' </summary>
        hy

        ''' <summary>
        ''' indonesio
        ''' </summary>
        id

        ''' <summary>
        ''' italiano
        ''' </summary>
        it

        ''' <summary>
        ''' hebreo
        ''' </summary>
        iw

        ''' <summary>
        ''' japonés
        ''' </summary>
        ja

        ''' <summary>
        ''' javanés
        ''' </summary>
        jw

        ''' <summary>
        ''' georgiano
        ''' </summary>
        ka

        ''' <summary>
        ''' Jemer
        ''' </summary>
        km

        ''' <summary>
        ''' canarés
        ''' </summary>
        kn

        ''' <summary>
        ''' coreano
        ''' </summary>
        ko

        ''' <summary>
        ''' latín
        ''' </summary>
        la

        ''' <summary>
        ''' lao
        ''' </summary>
        lo

        ''' <summary>
        ''' lituano
        ''' </summary>
        lt

        ''' <summary>
        ''' letón
        ''' </summary>
        lv

        ''' <summary>
        ''' macedonio
        ''' </summary>
        mk

        ''' <summary>
        ''' maratí
        ''' </summary>
        mr

        ''' <summary>
        ''' malayo
        ''' </summary>
        ms

        ''' <summary>
        ''' maltés
        ''' </summary>
        mt

        ''' <summary>
        ''' holandés
        ''' </summary>
        nl

        ''' <summary>
        ''' noruego
        ''' </summary>
        no

        ''' <summary>
        ''' polaco
        ''' </summary>
        pl

        ''' <summary>
        ''' portugués
        ''' </summary>
        pt

        ''' <summary>
        ''' rumano
        ''' </summary>
        ro

        ''' <summary>
        ''' ruso
        ''' </summary>
        ru

        ''' <summary>
        ''' eslovaco
        ''' </summary>
        sk

        ''' <summary>
        ''' esloveno
        ''' </summary>
        sl

        ''' <summary>
        ''' albanés
        ''' </summary>
        sq

        ''' <summary>
        ''' serbio
        ''' </summary>
        sr

        ''' <summary>
        ''' sueco
        ''' </summary>
        sv

        ''' <summary>
        ''' suajili
        ''' </summary>
        sw

        ''' <summary>
        ''' tamil
        ''' </summary>
        ta

        ''' <summary>
        ''' telugu
        ''' </summary>
        te

        ''' <summary>
        ''' tailandés
        ''' </summary>
        th

        ''' <summary>
        ''' tagalo
        ''' </summary>
        tl

        ''' <summary>
        ''' turco
        ''' </summary>
        tr

        ''' <summary>
        ''' ucraniano
        ''' </summary>
        uk

        ''' <summary>
        ''' urdu
        ''' </summary>
        ur

        ''' <summary>
        ''' vietnamita
        ''' </summary>
        vi

        ''' <summary>
        ''' yidis
        ''' </summary>
        yi

        ''' <summary>
        ''' chino
        ''' </summary>
        zh_CN

    End Enum

#End Region

#Region " Public Methods "

    ''' <summary>
    ''' Translates the specified text.
    ''' </summary>
    ''' <param name="String">Indicates the string to translate.</param>
    ''' <param name="From">Indicates the text lanuage.</param>
    ''' <param name="To">Indicates the resulting language.</param>
    ''' <returns>System.String.</returns>
    Public Shared Function Translate(ByVal [String] As String,
                                     ByVal From As Language,
                                     ByVal [To] As Language) As String

        Dim Query As String =
            String.Format("http://translate.google.com/translate_a/t?client=t&text={0}&sl={1}&tl={2}",
                          [String],
                          From.ToString.Replace("_", "-"),
                          [To].ToString.Replace("_", "-"))

        Using WebClient As New Net.WebClient
            [String] = WebClient.DownloadString(Query)
            WebClient.Dispose()
        End Using

        Return [String].Substring([String].IndexOf(ControlChars.Quote) + 1, [String].LastIndexOf(ControlChars.Quote)).
                        Split({ControlChars.Quote & "," & ControlChars.Quote}, StringSplitOptions.None).
                        First

    End Function

#End Region

End Class

#End Region


Saludos.








BigBear

uff , es facilismo , gracias por mostrarme el codigo , voy hacer como treinta traducciones con esto  ;D

AdeLax


0x5d

Yo programé un traductor español inglés sin internet. La cosa es que tu añades las palabras, luego es cosa de ponerse a escribir y traduce. Nunca lo he acabado, falta gente :P
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !