2010-12-03 79 views
0

J'utilise Kohana Framework 3.x. Il prend en charge I18n et vous pouvez localiser votre WebApplication en définissant un tableau pour chaque langue donnée comme ceci:I18n dans Kohana 3.x: Traduction de chaînes contenant des valeurs supplémentaires telles que la date et l'heure

// application/i18n/de.php adds support for the german language like so 
return array 
(
    'language' => 'Sprache', 
    'house' => 'Haus' 
    //more key-value pairs 
); 

Dans mon code PHP je peux obtenir la traduction appropriée comme ceci:

// define current language somewhere, for example german 
i18n::lang("de"); 

// get the translation for a given key 
echo I18n::get('house'); // the key "house" obviously has to be the same for all languages 

Mais ce si j'ai besoin de traduire des phrases contenant une date ou une heure. Par exemple: "2 jours auparavant" doit être traduit en "vor 2 Tagen" en allemand. Je reçois le numéro "2" à l'exécution (il peut s'agir d'un nombre donné), donc je ne peux pas le spécifier dans mon tableau de traduction. Est-ce que Kohana prend en charge une sorte de localisation dans laquelle je peux ajouter des valeurs lors de l'exécution?

Répondre

4

Utilisez la fonction __() de SYSPATH/base.php:

echo __('house'); // just translate 'house' 
echo __(':count days ago', array(':count' => 2)); // translate with values replacement