mirror of https://github.com/IoTcat/ushio-img.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.2 KiB
106 lines
2.2 KiB
4 years ago
|
<?php
|
||
|
/**
|
||
|
* Typecho Blog Platform
|
||
|
*
|
||
|
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
|
||
|
* @license GNU General Public License 2.0
|
||
|
* @version $Id$
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* 用于解决一个多个mo文件带来的读写问题
|
||
|
* 我们重写了一个文件读取类
|
||
|
*
|
||
|
* @author qining
|
||
|
* @category typecho
|
||
|
* @package I18n
|
||
|
*/
|
||
|
class Typecho_I18n_GetTextMulti
|
||
|
{
|
||
|
/**
|
||
|
* 所有的文件读写句柄
|
||
|
*
|
||
|
* @access private
|
||
|
* @var array
|
||
|
*/
|
||
|
private $_handles = array();
|
||
|
|
||
|
/**
|
||
|
* 构造函数
|
||
|
*
|
||
|
* @access public
|
||
|
* @param string $fileName 语言文件名
|
||
|
* @return void
|
||
|
*/
|
||
|
public function __construct($fileName)
|
||
|
{
|
||
|
$this->addFile($fileName);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 增加一个语言文件
|
||
|
*
|
||
|
* @access public
|
||
|
* @param string $fileName 语言文件名
|
||
|
* @return void
|
||
|
*/
|
||
|
public function addFile($fileName)
|
||
|
{
|
||
|
$this->_handles[] = new Typecho_I18n_GetText($fileName, true);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Translates a string
|
||
|
*
|
||
|
* @access public
|
||
|
* @param string string to be translated
|
||
|
* @return string translated string (or original, if not found)
|
||
|
*/
|
||
|
public function translate($string)
|
||
|
{
|
||
|
foreach ($this->_handles as $handle) {
|
||
|
$string = $handle->translate($string, $count);
|
||
|
if (-1 != $count) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $string;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Plural version of gettext
|
||
|
*
|
||
|
* @access public
|
||
|
* @param string single
|
||
|
* @param string plural
|
||
|
* @param string number
|
||
|
* @return translated plural form
|
||
|
*/
|
||
|
public function ngettext($single, $plural, $number)
|
||
|
{
|
||
|
foreach ($this->_handles as $handle) {
|
||
|
$string = $handle->ngettext($single, $plural, $number, $count);
|
||
|
if (-1 != $count) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $string;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 关闭所有句柄
|
||
|
*
|
||
|
* @access public
|
||
|
* @return void
|
||
|
*/
|
||
|
public function __destruct()
|
||
|
{
|
||
|
foreach ($this->_handles as $handle) {
|
||
|
/** 显示的释放内存 */
|
||
|
unset($handle);
|
||
|
}
|
||
|
}
|
||
|
}
|