Spec-Zone.ru › Yii 1.1

CGettextPoFile

Пакет system.i18n.gettext
Наследование class CGettextPoFile » CGettextFile » CComponent
С версии 1.0
Исходный код framework/i18n/gettext/CGettextPoFile.php
CGettextPoFile представляет файл сообщений PO Gettext.

Общедоступные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
asa() Возвращает объект именованного поведения. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли считать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые к этому компоненту поведения. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет PHP выражение или обратный вызов в контексте этого компонента. CComponent
getEventHandlers() Возвращает список присоединенных обработчиков событий для события. CComponent
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединённые обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
load() Загружает сообщения из файла PO. CGettextPoFile
raiseEvent() Вызывает событие. CComponent
save() Сохраняет сообщения в файл PO. CGettextPoFile

Защищенные методы

Метод Описание Определено в
decode() Декодирует специальные символы в сообщении. CGettextPoFile
encode() Кодирует специальные символы в сообщении. CGettextPoFile

Подробное описание методов

decode() метод

protected string decode(string $string)
$string string сообщение для декодирования
{return} string декодированное сообщение
Исходный код: framework/i18n/gettext/CGettextPoFile.php#89 (показать)
protected function decode($string)
{
    
$string=preg_replace(
        array(
'/"\s+"/','/\\\\n/','/\\\\r/','/\\\\t/','/\\\\"/'),
        array(
'',"\n","\r","\t",'"'),
        
$string
    
);
    return 
substr(rtrim($string),1,-1);
}

Декодирует специальные символы в сообщении.

encode() метод

protected string encode(string $string)
$string string сообщение для кодирования
{return} string закодированное сообщение
Исходный код: framework/i18n/gettext/CGettextPoFile.php#75 (показать)
protected function encode($string)
{
    return 
str_replace(
        array(
'"',"\n","\t","\r"),
        array(
'\\"',"\\n",'\\t','\\r'),
        
$string
    
);
}

Кодирует специальные символы в сообщении.

load() метод

public array load(string $file, string $context)
$file string путь к файлу
$context string контекст сообщения
{return} array переводы сообщений (исходное сообщение => переведенное сообщение)
Исходный код: framework/i18n/gettext/CGettextPoFile.php#26 (показать)
public function load($file,$context)
{
    
$pattern='/(msgctxt\s+"(.*?(?<!\\\\))")?\s+'
        
.'msgid\s+((?:".*(?<!\\\\)"\s*)+)\s+'
        
.'msgstr\s+((?:".*(?<!\\\\)"\s*)+)/';
    
$matches=array();
    
$n=preg_match_all($pattern,file_get_contents($file),$matches);

    
$messages=array();
    for(
$i=0; $i<$n; $i++)
    {
        if(
$matches[2][$i]===$context)
        {
            
$id=$this->decode($matches[3][$i]);
            
$message=$this->decode($matches[4][$i]);
            
$messages[$id]=$message;
        }
    }
    return 
$messages;
}

Загружает сообщения из файла PO.

save() метод

public void save(string $file, array $messages)
$file string путь к файлу
$messages array переводы сообщений (идентификатор сообщения => переведенное сообщение). Примечание: если сообщение имеет контекст, идентификатор сообщения должен быть префиксным контекстом с разделителем chr(4).
Исходный код: framework/i18n/gettext/CGettextPoFile.php#54 (показать)
public function save($file,$messages)
{
    
$content='';
    foreach(
$messages as $id=>$message)
    {
        if((
$pos=strpos($id,chr(4)))!==false)
        {
            
$content.='msgctxt "'.substr($id,0,$pos)."\"\n";
            
$id=substr($id,$pos+1);
        }
        
$content.='msgid "'.$this->encode($id)."\"\n";
        
$content.='msgstr "'.$this->encode($message)."\"\n\n";
    }
    
file_put_contents($file,$content);
}

Сохраняет сообщения в файл PO.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CGettextPoFile

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API