Internacionalizacion

edited marzo 2011 in Principiantes
Hola, estuve haciendo un research en el foro sobre el tema de la internacionalizacion y como conclusion se llego a que si es un sitio pequeño es mejor usar gettext. Alguien me podria decir cual es la mejor estrategia para un sitio de mediano porte usando, hoy en dia, la beta 2?
Gracias.

Comentarios

  • edited 10:31
    no es tarea facil pero aqui van unas pistas:
    1) las urls deben tener este formato: dominio/idioma/... como lo hace apple por ejemplo "http://www.apple.com/es/mac/"
    2) gettext, http://wiki.kumbiaphp.com/KumbiaPHP_y_gettext
    * en enlaces externos de esa pagina tienes otras dos pistas mas.

    suerte!
  • edited marzo 2011
    Hola! gracias por la respuesta. Entiendo como debe ser la mecánica que propones, pero me cuesta imaginarme un poco el funcionamiento del controlador en esa url. Se me ocurre que voy a tener que jugar con las rutas no? (estuve leyendo que este formato propuesto favorece a los robots de búsqueda y el posicionamiento web asique errados no andamos :P)

    Con respecto a los links lamentablemente ya no funcionan. Yo lo que había pensado es directamente "comenzar" el sitio con una home donde seleccionas el idioma similar a este sitio: http://www.aerolineas.com.ar/home.asp

    Luego se le dará la posibilidad al usuario de seleccionar el idioma mediante un clásico combo. Finalmente, los textos mostrados desde el lado de las Views sería del estilo:
    echo _("nombre variable");
    Y bueno, luego toda la complejidad que se le quiera dar (guardar preferencias en sesión, cookies, db, etc)

    es muy fea esta solución?
    Gracias.

    Edit #1: recién ahora me di cuenta de que el primer link en la wiki tenía un error en la url, terminaba con un pipe (|), corregido y leyendo...
  • edited marzo 2011
    pon el htaccess como dice cachi y pon por defecto el idioma detectado del navegador del usuario y despues el usuario podria cambiar de idioma como dices, con un combo para despues guardarlo en session / cookie / bd.

    http://www.aerolineas.com.ar/ar/slug

    $url = slug
    $lang = ar

    [routes]
    /* = /pages/load/*

    donde el * seria el slug y la accion load cargaria en contenido de la bd por el campo idioma y el campo slug


  • edited 10:31
    Hola!, genial luego más tarde cuando llego del trabajo lo pruebo. Comento que pude leer el tutorial de cachi y me gusto la solución. Lo único que tengo que ha cambiado de 1b1 a 1b2 es que hace referencia al index.php de /app/public y tendré que adaptarlo a la ruta nueva. saludos!
  • edited 10:31
    si, eso es facil. son pocos cambios de la beta 1 a la 2 y viceversa.
  • edited abril 2011
    Hola demonio69!, perdón que insista con el tema pero no logro hacer que funcione bien. Te resumo los pasos que segui:
    - lei y seguí el tutorial
    http://cachi.temiga.org/2010/07/18/kumbiaphp-i18n-internacionalizacion/

    - dado que el tuto está para 1beta1, tuve que adaptarlo, por ejemplo el .htaccess que toco es el que está ubicado en /default/public/

    - el .htaccess me quedo así:
    # Para peticiones que no son archivos ni directorios
    # Reescribe a index.php?url=URL
    RewriteRule ^(es|en|fr)/(.*) index.php?_url=/$2&lang=$1 [QSA,L]
    #RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]

    - ahora viene la parte más complicada,
    la variable $URL_PATH ubicada en /default/public/index.php
    en 1beta2 se llama $url y vale:
    $url = isset($_GET['_url']) ? $_GET['_url'] : '/';

    y creo que aquí es donde se me complica. Jugando un poco con esta variable a lo máximo que llegué es que, me funciona bien la redirección a los controladores (la parte del seteo de idioma, por ahora la dejo secundaria) pero no hay manera por ejemplo que en la pagina por defecto de KPHP 1beta2 me muestre el formato.

    Cuando hago un "ver codigo fuente" en Chrome leo que la ruta al css está quedando asi:
    link href="css/bienvenida.css" ... (sin barra delante)
    es decir no está encontrando los archivos de recursos (y no me imagino que otra cosa más ya que aún no pude avanzar)

    Si a alguien le ha funcionado por favor, se agradecerá la ayuda.Gracias.

    PD: en el peor caso, que es lo peor que puede pasar de arrancar con la 1beta1?
  • edited abril 2011
    PUBLIC_PATH tiene que ser igual a '/' o '../' o a la carpeta por encima del dominio donde deajste kPHPb2 http://localhost/mi_app/ seria '/mi_app/'
    lo demas esta bien si lo pusiste como lo tiene CaChi

    si no usas vhost las rutas para public ( css ) son relativas ( ../img/mi_img.png ).
    si usas vhost PUBLIC_PATH es igual al root del dominio, '/'.
  • edited 10:31
    Hola demonio!, voy a probarlo al llegar a casa. El punto positivo de esto es que me esta obligando a entender como funciona por dentro el framework :P
    yo por ejemplo tengo todo alojado en un servidor compartido, y no se si me la mandé o que, pero tengo la carpeta core y default en el documentRoot, es decir tengo esto:

    http://midominio/core
    http://midominio/default/app

    según lo que entiendo mi PUBLIC_PATH debería ser / o http://midominio/

    Esta noche lo pruebo. Por otro lado ayer decidí seguir adelante de todas maneras asique comencé a jugar con las vistas, la verdad estoy entusiasmado. Gracias.
  • Buenas! 

    estoy usando el tutorial de Cachi en b2 como ha hecho JulianP, pero tengo una zona administrativa y aquí empiezan mis problemas.

    Si uso Html::linkAction la ruta no incluye el idioma. Si modifico el PUBLIC_PATH para que la ruta sea correcta, los js y css pierden la ruta base. 

    Por otra parte, si uso Html::link() debo estar indicando constantemente Html::link(idioma/module/controller/action/params) y es un mareo.

    ¿Alguna solución? He hecho todo menos modificar la ruta base PUBLIC_PATH. Mi variable _url ubicada en public/index.php

    $url = isset($_GET['_url']) ? $_GET['_url'] : $_GET['lang'].'/';


Sign In or Register to comment.