Différences entre get() et getI18n()

GaboX est complètement multilingue de manière transparente. Vous l'utilisez de la même manière pour un site monolingue ou multilingue

La table gen_i18n permet de stocker toute traduction d'élément en fonction des langues activées :

CREATE TABLE `gen_i18n` (
  `id_i18n` mediumint(8) UNSIGNED NOT NULL,
  `module` varchar(25) NOT NULL DEFAULT 'commun',
  `field_name` varchar(30) NOT NULL DEFAULT 'lib',
  `id_element` mediumint(8) UNSIGNED NOT NULL,
  `id_locales` mediumint(8) UNSIGNED NOT NULL,
  `lib` mediumtext,
  `is_published` tinyint(1) NOT NULL DEFAULT '0',
  `level` tinyint(1) NOT NULL DEFAULT '1',
  `source` tinytext,
  `id_url` mediumint(8) UNSIGNED DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Ainsi pour chaque collector ($this->collector) vous pouvez utiliser les données strictes contenus dans la table de votre collector ou aller chercher la version traduite si elle existe.

Si aucune version traduite n'est trouvée, alors les données strictes de la table de votre collector vous seront retournées


print_r( $this->collector['produits']->getOne() );

Array
(
    [0] = Array
        (
            [id_produits] = 1
            [lib] = Crème hydratante pour le corps
        )

    [1] = Array
        (
            [id_produits] = 2
            [lib] = Crème pour le visage
        )

)

La version traduite peux être appelé via getOneI18n pour un enregistrement spécifique ou getI18n pour plusieurs enregistrements


print_r( $this->collector['produits']->getOneI18n() );

Array
(
    [0] = Array
        (
            [id_produits] = 1
            [lib] = Crema hidratante para el cuerpo
        )

    [1] = Array
        (
            [id_produits] = 2
            [lib] = Crema para la cara
        )

)

Notez que les methodes get() ne sont pas mises en cache contrairement aux méthodes getI18n.

N'hésitez pas à consulter notre documentation sur la traduction automatique.