aboutsummaryrefslogtreecommitdiff
path: root/lib/minz/Translate.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-07-04 19:38:29 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-07-04 19:38:29 +0200
commiteb5f05304c253df90873b94ba52d7093115f3850 (patch)
tree1152ab618aa5cf884a1f2f2e2d1926da4167a6be /lib/minz/Translate.php
parent8dd5fd51f74a47e5c80052f27a74cdcd5dd044b9 (diff)
parentb5f233f6d524ca9f74e9d33bf5692a1a678d7fec (diff)
Merge branch 'dev'0.4.0
Diffstat (limited to 'lib/minz/Translate.php')
-rw-r--r--lib/minz/Translate.php71
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/minz/Translate.php b/lib/minz/Translate.php
new file mode 100644
index 000000000..e8cbe4852
--- /dev/null
+++ b/lib/minz/Translate.php
@@ -0,0 +1,71 @@
+<?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 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 = Configuration::language ();
+ self::$language = 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;
+ }
+}