viernes, 27 de abril de 2012

Drupal Multilingual, Nueva region en tema


  • En Drupal 6:
    • Por default viene el idioma inglés. Para hacer un site bilingue español-inglés:
      1. Habilitar el módulo locale
      2. Instalar el módulo i18n
      3. Ir a Site configuration, Languages (settings/language), agregar el idioma Spanish (Español) y establecerlo como default.
      4. Ir a Site building, Translate interface, Import (admin/build/translate/import), importar el .po en español correspondiente al core (se puede descargar de Drupal core translation downloads). Como ya está establecido el español por default, las traducciones disponibles se verán de inmediato.
      5. Ir de nuevo a Site configuration, Languages (settings/language) y editar el item English indicando que Path prefix: en
      6. Del mismo modo con el item Spanish, indicando que Path prefix: es
      7. Ir a Configure (settings/language/configure), e indicar Language negociation: Path prefix only.
      8. Ir a Multilingual system (settings/language/i18n), y asegurarse que Content selection mode: Current language and language neutralContent translation links: Hide content translation links (para que el cambio de idioma esté disponible sólo a través del bloque Alternador de idioma).
      9. Ir a Site Building, URL aliases, Automated alias settings (build/path/pathauto), Node paths, e indicar Default path pattern for Page: [title-raw]. (En mi caso es Page el tipo de contenido que estoy usando, podría ser cualquier otro).
      10. Habilitar el bloque Alternador de idioma. Comprobar que el idioma cambia en las páginas donde está disponible la traducción. (Como nota aparte, esto puede ser muy útil para quienes prefieren usar el menú de administración en inglés).
      11. Crear la página Inicio, e indicar que su path es inicio (deshabilitar el pathauto en la edición de este nodo).
      12. Crear la página Home, e indicar que su path es también inicio (deshabilitar el pathauto en la edición de este nodo).
      13. Volver a la página Inicio, e indicar que su traducción es Home.
      14. Ir a Site configuration, Site information (settings/site-information), e indicar Default front page: inicio
      15. Ir al frontpage y usar el bloque Alternador de idioma para comprobar las traducciones.
    • Para agregar una región a un tema:
      1. En el .info, declarar la nueva región. Por ejemplo header:
        regions[header] = header
        
      2. En el page.tpl.php, colocar el php que visualice la variable. Por ejemplo $header:
        <?php if($header): ?>
          <div id="header">
            <?php print $header; ?>
          </div><!-- /#header -->
        <?php endif; ?>
        
    • Un logo que cambie según el idioma se puede implementar usando un bloque con un contenido php similar a:
      <?php
      $lang = i18n_get_lang();
      echo '<a href="' . url('<front>') . '"><img src="' . base_path() . path_to_theme() . '/img/logo-' . $lang . '.png' . '"/></a>';
      ?>