openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

Language.class.php (1935B)


      1 <?php
      2 // OpenRat Content Management System
      3 // Copyright (C) 2002-2012 Jan Dankert, cms@jandankert.de
      4 //
      5 // This program is free software; you can redistribute it and/or
      6 // modify it under the terms of the GNU General Public License
      7 // as published by the Free Software Foundation; either version 2
      8 // of the License, or (at your option) any later version.
      9 //
     10 // This program is distributed in the hope that it will be useful,
     11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
     12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13 // GNU General Public License for more details.
     14 //
     15 // You should have received a copy of the GNU General Public License
     16 // along with this program; if not, write to the Free Software
     17 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
     18 
     19 namespace cms\base;
     20 
     21 use logger\Logger;
     22 use util\text\variables\VariableResolver;
     23 
     24 class Language
     25 {
     26 	/**
     27 	 * Diese Funktion stellt ein Wort in der eingestellten
     28 	 * Sprache zur Verfuegung.
     29 	 *
     30 	 * @var String Name der Sprachvariablen
     31 	 * @var Array Liste (Assoziatives Array) von Variablen
     32 	 *
     33 	 * @package openrat.functions
     34 	 */
     35 	public static function lang($textVar, $vars = array())
     36 	{
     37 		$conf = Configuration::rawConfig();
     38 		$lang = $conf['language'];
     39 
     40 		$text = strtoupper($textVar);
     41 
     42 		// Abfrage, ob Textvariable vorhanden ist
     43 		if (isset($lang[$text])) {
     44 			$text = $lang[$text];
     45 
     46 			// Fill in variables
     47 			if ($vars) {
     48 				$resolver = new VariableResolver();
     49 
     50 				// Resolve variable
     51 				$resolver->addDefaultResolver(function ($var) use ($vars) {
     52 					return @$vars[$var];
     53 				});
     54 
     55 				$text = $resolver->resolveVariables($text);
     56 			}
     57 
     58 			return $text;
     59 		}
     60 
     61 		if   ( DEVELOPMENT ) {
     62 			Logger::warn('Message-Key not found: ' . $textVar);
     63 			return '??' . $textVar . '??';
     64 		}
     65 
     66 		// Wenn Textvariable nicht vorhanden ist, dann als letzten Ausweg nur den Variablennamen zurueckgeben
     67 		return $textVar;
     68 	}
     69 }