Translate.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * MINZ - Copyright 2011 Marien Fressinaud
  4. * Sous licence AGPL3 <http://www.gnu.org/licenses/>
  5. */
  6. /**
  7. * La classe Translate se charge de la traduction
  8. * Utilise les fichiers du répertoire /app/i18n/
  9. */
  10. class Minz_Translate {
  11. /**
  12. * $language est la langue à afficher
  13. */
  14. private static $language;
  15. /**
  16. * $translates est le tableau de correspondance
  17. * $key => $traduction
  18. */
  19. private static $translates = array ();
  20. /**
  21. * Inclus le fichier de langue qui va bien
  22. * l'enregistre dans $translates
  23. */
  24. public static function init () {
  25. $l = Minz_Configuration::language ();
  26. self::$language = Minz_Session::param ('language', $l);
  27. $l_path = APP_PATH . '/i18n/' . self::$language . '.php';
  28. if (file_exists ($l_path)) {
  29. self::$translates = include ($l_path);
  30. }
  31. }
  32. /**
  33. * Alias de init
  34. */
  35. public static function reset () {
  36. self::init ();
  37. }
  38. /**
  39. * Traduit une clé en sa valeur du tableau $translates
  40. * @param $key la clé à traduire
  41. * @return la valeur correspondante à la clé
  42. * > si non présente dans le tableau, on retourne la clé elle-même
  43. */
  44. public static function t ($key) {
  45. $translate = $key;
  46. if (isset (self::$translates[$key])) {
  47. $translate = self::$translates[$key];
  48. }
  49. $args = func_get_args ();
  50. unset($args[0]);
  51. return vsprintf ($translate, $args);
  52. }
  53. /**
  54. * Retourne la langue utilisée actuellement
  55. * @return la langue
  56. */
  57. public static function language () {
  58. return self::$language;
  59. }
  60. }