[FEATURE] Add XLIFF translation support (l10n)
authorXavier Perseguers <typo3@perseguers.ch>
Mon, 13 Jun 2011 11:09:47 +0000 (13:09 +0200)
committerXavier Perseguers <typo3@perseguers.ch>
Tue, 14 Jun 2011 13:49:40 +0000 (15:49 +0200)
commitcb390c7962576986cb01b06d42647f8fd40abb33
tree3472032d17b4cad66532739d2255573c31d12038
parent0cb97a21d41b0601aa1cf685d21c2edfaa6f2870
[FEATURE] Add XLIFF translation support (l10n)

Add a parser to support XLIFF + LLXML file as localization file format.

This patch includes:

* A parser factory to support multiple internationalization formats
(actually LLXML and XLIFF, parser for PHP array is not implemented,
yet). New parsers can be added in the future.
* A new parser for XLIFF (supporting plurals, based on the parser of
FLOW3)
* Autoload for sysext 'lang'
* Update the existing localization method (FE, BE, Extbase) to support
the new format of the LOCAL_LANG array
* New caching class based on the caching framework or file based
* Autodetection igbinary for cache un/serialization
* htmlArea RTE: update of the localization API

Currently the localization method works as before (only key-based
localization).

More functionality will be implemented in the new localization API
(plurals, ...). The current parser can be used on a TYPO3 instance with
LLXML and/or XLIFF files. However if an extension uses XLIFF, the
language pack (typo3conf/l10n) MUST use the same format.

The parser and the format priority (by default: xlf, xml, php), can be
configured in $TYPO3_CONF_VARS['SYS']['lang'].

Change-Id: I84d0a463f1b5448b4bca3f7d200315f397f4ea18
Resolves: #25397
Reviewed-on: http://review.typo3.org/2572
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
38 files changed:
t3lib/class.t3lib_div.php
t3lib/class.t3lib_pagerenderer.php
t3lib/config_default.php
t3lib/core_autoload.php
typo3/index.php
typo3/sysext/cms/tslib/class.tslib_fe.php
typo3/sysext/cms/tslib/class.tslib_pibase.php
typo3/sysext/em/res/js/em_app.js
typo3/sysext/em/res/js/em_components.js
typo3/sysext/em/res/js/em_files.js
typo3/sysext/em/res/js/em_languages.js
typo3/sysext/em/res/js/em_layouts.js
typo3/sysext/em/res/js/em_locallist.js
typo3/sysext/em/res/js/em_repositorylist.js
typo3/sysext/em/res/js/em_settings.js
typo3/sysext/em/res/js/em_ter.js
typo3/sysext/em/res/js/em_tools.js
typo3/sysext/em/res/js/em_usertools.js
typo3/sysext/indexed_search/modfunc2/class.tx_indexedsearch_modfunc2.php
typo3/sysext/lang/classes/cache/class.tx_lang_cache_abstract.php [new file with mode: 0644]
typo3/sysext/lang/classes/cache/class.tx_lang_cache_cachingframework.php [new file with mode: 0644]
typo3/sysext/lang/classes/cache/class.tx_lang_cache_file.php [new file with mode: 0644]
typo3/sysext/lang/classes/class.tx_lang_factory.php [new file with mode: 0644]
typo3/sysext/lang/classes/class.tx_lang_store.php [new file with mode: 0644]
typo3/sysext/lang/classes/exception/class.tx_lang_exception_filenotfound.php [new file with mode: 0644]
typo3/sysext/lang/classes/exception/class.tx_lang_exception_invalidparser.php [new file with mode: 0644]
typo3/sysext/lang/classes/exception/class.tx_lang_exception_invalidxmlfile.php [new file with mode: 0644]
typo3/sysext/lang/classes/interfaces/interface.tx_lang_parser.php [new file with mode: 0644]
typo3/sysext/lang/classes/parser/class.tx_lang_parser_abstractxml.php [new file with mode: 0644]
typo3/sysext/lang/classes/parser/class.tx_lang_parser_llphp.php [new file with mode: 0644]
typo3/sysext/lang/classes/parser/class.tx_lang_parser_llxml.php [new file with mode: 0644]
typo3/sysext/lang/classes/parser/class.tx_lang_parser_xliff.php [new file with mode: 0644]
typo3/sysext/lang/ext_autoload.php [new file with mode: 0644]
typo3/sysext/lang/lang.php
typo3/sysext/lang/res/js/be/typo3lang.js [new file with mode: 0644]
typo3/sysext/recycler/res/js/t3_recycler.js
typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js
typo3/sysext/setup/mod/index.php