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); |