Skip to main content

Crear Traductor usando API http://spa.hablaa.com/ con Primefaces

Crear Traductor usando API http://spa.hablaa.com/ con Primefaces

Hablaa.com es un direccionario en linea que ofrece un servicio de traducción grauito

Podemos implementar nuestro traductor, permitiendo al usuario que seleccione el idioma origen y el destino y realicemos la conversión.



Para las traducciones utilizamos el url, donde especificamos la palabra a traducir, el idioma origien (3 caracteres) y el idioma destino(3 caracteres)
En este ejemplo traducimos la palabra apple de ingles a español y nos devuelve un json
[{"text":"la manzana","pos":{"code":null,"title":null},"source":"Hablaa.com"},{"text":"manzana","pos":{"code":null,"title":null},"source":"Hablaa.com"}]


Luego solo nos queda procesar el json y obtener el atributo text que contiene la palabra.
Para ver la lista de idiomas soportados













LectorJSON.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.javscaz.girosjsd.generales;


import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.net.URL;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.json.Json;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParser.Event;


/**
*
* @author avbravo
*/
@Named(value = "lectorJSON")
@SessionScoped
public class LectorJSON implements Serializable {


   private String lectura;
   private String origen;
   private String destino;
   private String languageorigen;
   private String languagedestino;


   public String getLanguageorigen() {
       return languageorigen;
   }


   public void setLanguageorigen(String languageorigen) {
       this.languageorigen = languageorigen;
   }


   public String getLanguagedestino() {
       return languagedestino;
   }


   public void setLanguagedestino(String languagedestino) {
       this.languagedestino = languagedestino;
   }


   public String getOrigen() {
       return origen;
   }


   public void setOrigen(String origen) {
       this.origen = origen;
   }


   public String getDestino() {
       return destino;
   }


   public void setDestino(String destino) {
       this.destino = destino;
   }


   public String getLectura() {
       return lectura;
   }


   public void setLectura(String lectura) {
       this.lectura = lectura;
   }


   /**
    * Creates a new instance of LectorJSON
    */
   public LectorJSON() {
   }


   public String lector() throws IOException {
       try {
                 origen = origen.trim();
           destino = "";
           URL url = new URL("http://spa.hablaa.com/hs/translation/" + origen + "/" + languageorigen + "-" + languagedestino + "/");
           InputStream is = url.openStream();


           JsonParser parser = Json.createParser(is);
           while (parser.hasNext()) {
               Event e = parser.next();
               if (e == Event.KEY_NAME) {
                   switch (parser.getString()) {
                       case "text":
                           parser.next();                        
                           destino = parser.getString();
                           break;
                   }
               }
           }


       } catch (Exception ex) {
           JSFUtil.addErrorMessage("lector() " + ex.getLocalizedMessage());
       }
       return null;
   }


}

















Página .xhtml


<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
     xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
     xmlns:p="http://primefaces.org/ui"
     xmlns:h="http://xmlns.jcp.org/jsf/html"
     xmlns:f="http://xmlns.jcp.org/jsf/core"


     xmlns:b="http://bootsfaces.net/ui">


   <body>


       <ui:composition template="./template.xhtml">
           <ui:define name="content">
               <f:view>
                   <h:form>
                      <b:panel look="primary" title="#{app['application.title']}">
                     <h:panelGrid columns="4" cellpadding="5">
                              <h:outputText value="origen:"/>
                               <b:inputText value="#{lectorJSON.origen}">
                                   <f:facet name="prepend">
                                       <h:outputText value="" />
                                   </f:facet>
                               </b:inputText>
                               <h:outputText  value="traducida:"/>
                               <b:inputText id="salida" value="#{lectorJSON.destino}">
                               </b:inputText>
                               <h:outputText  value="De"/>
<b:selectOneMenu  value="#{lectorJSON.languageorigen}"                
                                                 required="true"
                                                 >
                             <f:selectItem itemLabel="Español" itemValue="spa" />
                            <f:selectItem itemLabel="Chino(simplificado)" itemValue="zho" />
                            <f:selectItem itemLabel="Ingles" itemValue="eng" />
</b:selectOneMenu>
                              <h:outputText  value="A"/>
             <b:selectOneMenu  value="#{lectorJSON.languagedestino}"                     
                                                 required="true"
                                                 >
                             <f:selectItem itemLabel="Chino(simplificado)" itemValue="zho" />
                             <f:selectItem itemLabel="Ingles" itemValue="eng" />
                             <f:selectItem itemLabel="Español" itemValue="spa" />
         </b:selectOneMenu>


<p:commandButton value="Traducir" actionListener="#{lectorJSON.lector()}"
                                              update="salida,growl"
                                               />
                           </h:panelGrid>
                       </b:panel>
                       <p:growl id="growl" showDetail="true" />
                       <p:growl id="messages" showDetail="true" life="2000" />
                   </h:form>
              </f:view>
           </ui:define>


           <!--            <ui:define name="bottom">
                           bottom
                       </ui:define>-->


       </ui:composition>


   </body>
</html>

















Comments

Popular posts from this blog

FileUpload con Primefaces

FileUpload con Primefaces

Si queremos subir imagenes a nuestra aplicación usaremos el componente FileUpload Debemos realizar los siguientes pasos:
Agregar al archivo web.xml

   <filter>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <filter-class>            org.primefaces.webapp.filter.FileUploadFilter        </filter-class>    </filter>    <filter-mapping>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <servlet-name>Faces Servlet</servlet-name>    </filter-mapping>



Crear dentro de resources el directorio donde deseamos almacenar las imagenes En este ejemplo: resources/fotos/clinicas y agregue una imagen llamada fotos.png que se usará como imagen inicial.



En JSFUtil u otro @Named Beans que usemos agregamos tres métodos uno para obtener el path de la aplicación web , otro para obtener el path relativo a /fotos/clinicas y el otro para copiar los archivos. /*

Tutorial básico de aplicaciones Web con NetBeans parte 1

NetBeans ofrece un excelente soporte para el desarrollo de aplicaciones Web, en esta ocasión lo haremos utilizando el Framework Java Server Faces 2.0.
En el Menu Seleccionamos Nuevo->Proyecto y luego en Categorias Java Web y en tipo de Proyectos Web  Application

indicamos el nombre del proyecto



Seleccinamos el servidor Web, usamos GlassFish ya que este soporta EJB3.0 y JSF 2.0

Framework Java Server Faces

El IDE genera el esquelto del proyecto
Web Pages   almacenamos las paginas .html, xhtml, jsf, los archivos de recursos, los scripts .js, imagenes Source Packages    Son las clases Java  Test Packages    Son las clases que usamos para los Test

Libraries     Tenemos las bibliotecas de Java y GlassFish necesarias para ejecutar la aplicación Web. Test Libraries     Están las bibliotecas usadas para los test 
Configuration Files    Archivos de configuración de la aplicación.

Ejecutamos la aplicación 

Esperamos que se inicie GlassFish y se cargue la aplicación
Este se ejecutara en nuestro servidor local y…

NetBeans 8.0.1 en Español

NetBeans 8.0.1 disponible en español
http://bits.netbeans.org/netbeans/8.0.1/community/
Esta disponible NetBeans 8.0.1 en varios idiomas .


Puedes descargar la nueva versión y utilizar las nuevas características