web/lib/Zend/Translate/Adapter/Tmx.php
changeset 1230 68c69c656a2c
parent 807 877f952ae2bd
equal deleted inserted replaced
1229:5a6b6e770365 1230:68c69c656a2c
    12  * obtain it through the world-wide-web, please send an email
    12  * obtain it through the world-wide-web, please send an email
    13  * to license@zend.com so we can send you a copy immediately.
    13  * to license@zend.com so we can send you a copy immediately.
    14  *
    14  *
    15  * @category   Zend
    15  * @category   Zend
    16  * @package    Zend_Translate
    16  * @package    Zend_Translate
    17  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    17  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
    18  * @version    $Id: Tmx.php 24649 2012-02-26 03:37:54Z adamlundrigan $
    18  * @version    $Id$
    19  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    19  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    20  */
    20  */
    21 
    21 
    22 
    22 
    23 /** Zend_Locale */
    23 /** Zend_Locale */
    24 require_once 'Zend/Locale.php';
    24 require_once 'Zend/Locale.php';
    25 
    25 
    26 /** Zend_Translate_Adapter */
    26 /** Zend_Translate_Adapter */
    27 require_once 'Zend/Translate/Adapter.php';
    27 require_once 'Zend/Translate/Adapter.php';
    28 
    28 
       
    29 /** @see Zend_Xml_Security */
       
    30 require_once 'Zend/Xml/Security.php';
       
    31 
       
    32 /** @See Zend_Xml_Exception */
       
    33 require_once 'Zend/Xml/Exception.php';
    29 
    34 
    30 /**
    35 /**
    31  * @category   Zend
    36  * @category   Zend
    32  * @package    Zend_Translate
    37  * @package    Zend_Translate
    33  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    38  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
    34  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    39  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    35  */
    40  */
    36 class Zend_Translate_Adapter_Tmx extends Zend_Translate_Adapter {
    41 class Zend_Translate_Adapter_Tmx extends Zend_Translate_Adapter {
    37     // Internal variables
    42     // Internal variables
    38     private $_file    = false;
    43     private $_file    = false;
    71         xml_set_object($this->_file, $this);
    76         xml_set_object($this->_file, $this);
    72         xml_parser_set_option($this->_file, XML_OPTION_CASE_FOLDING, 0);
    77         xml_parser_set_option($this->_file, XML_OPTION_CASE_FOLDING, 0);
    73         xml_set_element_handler($this->_file, "_startElement", "_endElement");
    78         xml_set_element_handler($this->_file, "_startElement", "_endElement");
    74         xml_set_character_data_handler($this->_file, "_contentElement");
    79         xml_set_character_data_handler($this->_file, "_contentElement");
    75 
    80 
       
    81         try {
       
    82             Zend_Xml_Security::scanFile($filename);
       
    83         } catch (Zend_Xml_Exception $e) {
       
    84             require_once 'Zend/Translate/Exception.php';
       
    85             throw new Zend_Translate_Exception(
       
    86                 $e->getMessage()
       
    87             );
       
    88         }
       
    89  
    76         if (!xml_parse($this->_file, file_get_contents($filename))) {
    90         if (!xml_parse($this->_file, file_get_contents($filename))) {
    77             $ex = sprintf('XML error: %s at line %d of file %s',
    91             $ex = sprintf('XML error: %s at line %d of file %s',
    78                           xml_error_string(xml_get_error_code($this->_file)),
    92                           xml_error_string(xml_get_error_code($this->_file)),
    79                           xml_get_current_line_number($this->_file),
    93                           xml_get_current_line_number($this->_file),
    80                           $filename);
    94                           $filename);