Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/01/2010, 04:25
Avatar de navarone86
navarone86
 
Fecha de Ingreso: octubre-2009
Mensajes: 62
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Cambiar idioma en Struts

hola

googleando llegue hasta aquí, y he intentado seguir esos pasos, pero no me funciona (tampoco es todo exactamente igual)

para empezar, los ficheros de idiomas los tengo dentro de la carpeta "conf", y se llaman "proyecto.properties" y "proyecto_en.properties". por tanto, y segun he entendido, en el struts.xml deberia poner lo siguiente:

Código HTML:
Ver original
  1. <message-resources parameter="conf.proyecto"/>

no me queda claro, si tengo que poner solo la carpeta, o si tambien como se llaman los ficheros

por otro lado, el action que tengo es el siguiente:

Código PHP:
Ver original
  1. public class ChangeLangAction extends ActionSupport {
  2.  
  3.     private static final long serialVersionUID = 1L;
  4.  
  5.     private String lang = null;
  6.    
  7.     public String execute(){
  8.         ActionContext.getContext().getSession().put(Globals.LOCALE_KEY, new Locale(lang));
  9.         return SUCCESS;
  10.     }
  11.  
  12.     public String getLang() {
  13.         return lang;
  14.     }
  15.  
  16.     public void setLang(String lang) {
  17.         this.lang = lang;
  18.     }
  19. }


y la declaración del action es la siguiente:

Código HTML:
Ver original
  1. <action name="changeLang" class="ruta.paquete.ChangeLangAction">
  2.             <result name="success" type="redirectAction">showInit</result>
  3.         </action>

de todas formas, también me gustaría saber, como puedo hacer para que el action me deje en el mismo jsp, sea cual sea el jsp desde el que se llame al action, ya que mi intención es poner en todas las cabeceras estos enlaces para cambiar de idioma

y la llamada al action es esta:

Código HTML:
Ver original
  1. <table class="lang">
  2.         <td>
  3.             <s:url id="urlEs" action="changeLang" escapeAmp="false">
  4.                 <s:param name="lang" value="es"/>
  5.             </s:url>
  6.             <a class="langURL" href="<s:property value="#urlEs"/>">es</a>
  7.         </td>
  8.         <td>
  9.             <s:url id="urlEn" action="changeLang" escapeAmp="false">
  10.                 <s:param name="lang" value="en"/>
  11.             </s:url>
  12.             <a class="langURL" href="<s:property value="#urlEn"/>">en</a>
  13.         </td>
  14.     </table>

en vez botones, uno enlaces, pero supongo que debería funcionar igual

el error que me suelta es el siguiente:

Código:
El recurso requerido () no está disponible.
se que es por el struts.xml, donde le indico donde deberían encontrarse los ficheros de idiomas, pero la verdad que no se como seguir

a ver si podéis echarme una mano

muchas gracias