Blog

¿Cómo organizamos los ficheros de traducciones en Rails?

24/05/2016

Los proyectos deberían ser fácilmente instalables y configurables, pero todos sabemos que esto muchas veces no es así.

En los últimos años han surgido varias aplicaciones que facilitan este proceso, haciendo que la producción de software sea más productiva y efectiva y hace posible que una persona pueda rotar de proyecto sin que el coste sea tan alto.

Hemos estado varios día debatiendo de qué manera agilizar los procesos de puesta en marcha de un proyecto y estas son algunas de las ideas y propuestas sobre las que estamos trabajando.

¿Cómo organizamos los ficheros de traducciones en Rails?

Cualquier aplicación no trivial acaba teniendo muchos literales. Gestionar esos literales en un único fichero acaba siendo muy difícil de gestionar, e introduce muchas dependencias y posibles merges a lo largo del desarrollo.

Para evitar en la medida de lo posible estos problemas, usaremos la siguiente estructura de directorios y ficheros:
 

  • config
      • locales
        • en
          • active_record.yml
          • formats.yml
          • accounts.yml
          • invoices.yml
          • layouts.yml
          • public.yml
          • users.yml
        • es
          • active_record.yml
          • formats.yml
          • rails-es.yml
          • accounts.yml
          • invoices.yml
          • layouts.yml
          • public.yml
          • users.yml
        •  

    El primer nivel dentro de locales es un directorio por cada uno de los locales soportados.

    Dentro de cada directorio existirá un fichero por cada uno de las carpetas dentro de app /views/ que tengamos en la aplicación.

    En el caso más simple, esto implica una por cada controller y una para los literales de los layouts, pero en el caso de que haya carpetas extras como por ejemplo “shared”, tendremos un fichero para esa carpeta.

    El objetivo es que dada una vista cualquiera (o un controller para los casos de mensajes flash), podamos saber rápidamente en qué fichero de traducciones está su literal,

    En el caso de que haya literales que son muy comunes a lo largo de toda la web (aceptar, cancelar, ver más…) estos se introducirán dentro del fichero de layouts, dentro de la sección :global.

    Tras un debate entre varios programadores, hemos acordado definir un fichero que contenga los literales comunes, pues había un proyectos con ficheros shared.yml, otros un common.yml, otros un layouts.yml.

    Y además tener todo lo relacionado en el mismo fichero, y de esta forma, hemos establecido esta jerarquía: common.yml -> layouts/[layout_name].yml -> resources/[resource_name].yml

     

     

    También te puede gustar…

    Caso de éxito: Fronda

    Caso de éxito: Fronda

    Fronda, es una cadena de centros de jardinería que cuenta con una tienda online que opera por toda España con la que hemos colaborado.

    ASPgems icon
    C/ Sextante, 9
    28023 Madrid,
    España

    Hablemos.

    A %d blogueros les gusta esto: