Files
FreshRSS/lib/minz/Translate.php
Alexandre Alapetite 878e96202e Grosse refactorisation pour permettre le chargement automatique des classes
C'est parti de changements pour
https://github.com/marienfressinaud/FreshRSS/issues/255 et finalement
j'ai continué la refactorisation...

Ajout de préfixes FreshRSS_ et Minz_ sur le modèle de SimplePie_.
Toutes les classes sont maintenant en chargement automatique (devrait
améliorer les performances en évitant de charger plein de classes
inutilisées, et faciliter la maintenance).
Suppression de set_include_path().
Si souhaité, certaines classes de Minz pourraient être déplacées dans un
sous-répertoire, par exemple les exceptions.

Tests et relecture nécessaires.
2013-12-15 03:30:24 +01:00

72 lines
1.5 KiB
PHP

<?php
/**
* MINZ - Copyright 2011 Marien Fressinaud
* Sous licence AGPL3 <http://www.gnu.org/licenses/>
*/
/**
* La classe Translate se charge de la traduction
* Utilise les fichiers du répertoire /app/i18n/
*/
class Minz_Translate {
/**
* $language est la langue à afficher
*/
private static $language;
/**
* $translates est le tableau de correspondance
* $key => $traduction
*/
private static $translates = array ();
/**
* Inclus le fichier de langue qui va bien
* l'enregistre dans $translates
*/
public static function init () {
$l = Minz_Configuration::language ();
self::$language = Minz_Session::param ('language', $l);
$l_path = APP_PATH . '/i18n/' . self::$language . '.php';
if (file_exists ($l_path)) {
self::$translates = include ($l_path);
}
}
/**
* Alias de init
*/
public static function reset () {
self::init ();
}
/**
* Traduit une clé en sa valeur du tableau $translates
* @param $key la clé à traduire
* @return la valeur correspondante à la clé
* > si non présente dans le tableau, on retourne la clé elle-même
*/
public static function t ($key) {
$translate = $key;
if (isset (self::$translates[$key])) {
$translate = self::$translates[$key];
}
$args = func_get_args ();
unset($args[0]);
return vsprintf ($translate, $args);
}
/**
* Retourne la langue utilisée actuellement
* @return la langue
*/
public static function language () {
return self::$language;
}
}