Translate.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 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 = Configuration::language ();
  26. self::$language = 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. return $translate;
  50. }
  51. /**
  52. * Retourne la langue utilisée actuellement
  53. * @return la langue
  54. */
  55. public static function language () {
  56. return self::$language;
  57. }
  58. }