.. 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