.. include:: /Includes.rst.txt .. _custom-translation-server: ========================== Custom Translation Servers ========================== With the usage of XLIFF and the freely available `Pootle `__ translation server, companies and individuals may easily set up a custom translation server for their extensions. There is a signal that can be caught to change the translation server URL to use. The first step is to register one's code for handling the signal. Such code would be placed in an extension's :file:`ext_localconf.php` file: .. code-block:: php $signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class); $signalSlotDispatcher->connect( version_compare(TYPO3_version, '7.0', '<') ? 'TYPO3\\CMS\\Lang\\Service\\UpdateTranslationService' : 'TYPO3\\CMS\\Lang\\Service\\TranslationService', 'postProcessMirrorUrl', 'Company\\Extension\Slots\\CustomMirror', 'postProcessMirrorUrl' ); The class (slot) which receives the signal (:file:`EXT:myext/Classes/Slots/CustomMirror.php`) could look something like: .. code-block:: php `-- `-- -l10n |-- -l10n-de.zip |-- -l10n-fr.zip |-- -l10n-it.zip `-- -l10n.xml hence in our example: .. code-block:: text https://example.org/typo3-packages/ `-- m `-- y `-- myext-l10n |-- myext-l10n-de.zip |-- myext-l10n-fr.zip |-- myext-l10n-it.zip `-- myext-l10n.xml And the :file:`myext-l10n.xml` file contains something like: .. code-block:: xml 1374841386 2013-07-26 14:23:06 1cc7046c3b624ba1fb1ef565343b84a1 f00f73ae5c43cb68392e6c508b65de7a cd59530ce1ee0a38e6309544be6bcb3d