mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-12 23:14:18 +01:00
72 lines
2.3 KiB
PHP
72 lines
2.3 KiB
PHP
<?php
|
|
/* SVN FILE: $Id: HamlException.php 61 2010-04-16 10:19:59Z chris.l.yates $ */
|
|
/**
|
|
* Phamlp.
|
|
* @author Chris Yates <chris.l.yates@gmail.com>
|
|
* @copyright Copyright (c) 2010 PBM Web Development
|
|
* @license http://phamlp.googlecode.com/files/license.txt
|
|
* @package PHamlP
|
|
*/
|
|
/**
|
|
* Phamlp class.
|
|
* Static support classes.
|
|
* @package PHamlP
|
|
*/
|
|
class Phamlp {
|
|
/**
|
|
* @var string Language used to translate messages
|
|
*/
|
|
public static $language;
|
|
/**
|
|
* @var array Messages used for translation
|
|
*/
|
|
public static $messages;
|
|
|
|
/**
|
|
* Translates a message to the specified language.
|
|
* @param string message category.
|
|
* @param string the original message
|
|
* @param array parameters to be applied to the message using <code>strtr</code>.
|
|
* @return string the translated message
|
|
*/
|
|
public static function t($category, $message, $params = array()) {
|
|
if (!empty(self::$language)) {
|
|
$message = self::translate($category, $message);
|
|
}
|
|
return $params!==array() ? strtr($message,$params) : $message;
|
|
}
|
|
|
|
/**
|
|
* Translates a message to the specified language.
|
|
* If the language or the message in the specified language is not defined the
|
|
* original message is returned.
|
|
* @param string message category
|
|
* @param string the original message
|
|
* @return string the translated message
|
|
*/
|
|
private static function translate($category, $message) {
|
|
if (empty(self::$messages[$category])) self::loadMessages($category);
|
|
return (empty(self::$messages[$category][$message]) ? $message : self::$messages[$category][$message]);
|
|
}
|
|
|
|
/**
|
|
* Loads the specified language message file for translation.
|
|
* Message files are PHP files in the "category/messages" directory and named
|
|
* "language.php", where category is either haml or sass, and language is the
|
|
* specified language.
|
|
* The message file returns an array of (source, translation) pairs; for example:
|
|
* <pre>
|
|
* return array(
|
|
* 'original message 1' => 'translated message 1',
|
|
* 'original message 2' => 'translated message 2',
|
|
* );
|
|
* </pre>
|
|
* @param string message category
|
|
*/
|
|
private static function loadMessages($category) {
|
|
$messageFile = dirname(__FILE__).DIRECTORY_SEPARATOR.$category.DIRECTORY_SEPARATOR.'messages'.DIRECTORY_SEPARATOR.self::$language.'.php';
|
|
if (file_exists($messageFile)) {
|
|
self::$messages[$category] = require_once($messageFile);
|
|
}
|
|
}
|
|
} |