PHPackages                             ayacoo/xliff - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. ayacoo/xliff

ActiveTypo3-cms-extension[Localization &amp; i18n](/categories/localization)

ayacoo/xliff
============

TYPO3 XLIFF Migration

v2.x-dev(3y ago)17.0k↓46.7%2[3 issues](https://github.com/ayacoo/xliff/issues)MITPHPPHP &gt;=8.1

Since Aug 8Pushed 3y ago1 watchersCompare

[ Source](https://github.com/ayacoo/xliff)[ Packagist](https://packagist.org/packages/ayacoo/xliff)[ Docs](https://www.ayacoo.de)[ RSS](/packages/ayacoo-xliff/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

TYPO3 Extension / Utility xliff
===============================

[](#typo3-extension--utility-xliff)

1 Features
----------

[](#1-features)

- Migrates XLIFF files from version 1.0 to 1.2
- Generates XLIFF files in defined languages
- Generates XLIFF files in defined languages with automatic translation via Deepl
- Export XLIFF Files in csv or xlsx files

2 Usage
-------

[](#2-usage)

### 2.1 Installation

[](#21-installation)

#### Installation using Composer

[](#installation-using-composer)

The recommended way to install the extension is using Composer.

Run the following command within your [Composer](https://getcomposer.org/) based TYPO3 project:

```
composer require --dev ayacoo/xliff

```

Do not forget to activate the extension in the extension manager and define the deepl api settings if necessary/desired. And also: Since we use a cache for deepl, a DB Compare is also necessary.

Attention: This extension should only be active in development mode!

### 2.2 CLI Commands

[](#22-cli-commands)

#### Basics

[](#basics)

This utility searches for all extension xlf files in the Resources/Private/Language folder. Afterwards the XLIFF header is rebuilt and the trans-unit elements are used from the original file.

#### Migrate XLIFF 1.0 to 1.2

[](#migrate-xliff-10-to-12)

```
vendor/bin/typo3 xliff:migrate --extension=EXTENSION_NAME --overwrite=(1|0) --empty=(1|0) --path=SUBFOLDER --file==FILENAME

```

All XLIFF files will be migrated from version 1.0 to 1.2. If you want, you can also disable the overwriting of the file and a copy of the original file will be created.

The `empty` attribute can also be used to migrate empty XLIFF files.

If you want to customize a single file, use the `file` attribute. If this file is in a subfolder, add the `path`attribute.

#### Generate and/or translate XLIFF files for defined languages

[](#generate-andor-translate-xliff-files-for-defined-languages)

With this command, a translated variant of locallang.xlf, for example, is to be created from an extension. For this purpose you can specify a comma-separated list of isocodes in the `languages` argument. In course of this, a XLIFF in version 1.2 is also directly created.

Then target elements are automatically added with the text from the source of the original. CDATA is also taken into account. All xlf files that do not have a target-language attribute are migrated.

If you use the parameter translate with `true`, you can also have these texts automatically translated from the original. For this [deepl](https://www.deepl.com/de/docs-api/translating-text/example/) or [Google Translate](https://cloud.google.com/translate/docs/reference/rest/) is used. For this an API account incl. key must exist.

It is unclear here if there are any limitations on the part of the API of deepl. In case of doubt it is maybe better to translate file by file.

```
vendor/bin/typo3 xliff:generate --extension=EXTENSION_NAME --languages=ISOCODES --translate=(0|1)

```

#### Export xliff file

[](#export-xliff-file)

Translation agencies sometimes require a different file format. For this reason there is also a CSV export. You can export any xlf file or you can control exactly one file with the parameters `file` and `path`.

```
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --file=FILENAME --path=PATH

```

If you need to export to Excel format, this is how to do it:

```
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --format=xlsx

```

If you need to export to JSON format, this is how to do it:

```
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --format=json

```

By default, an export file is created from all xlf files at the end. If you want to have one generated file per xlf file you can use the parameter `singleFileExport`.

```
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --singleFileExport=(0|1)

```

3 Documentation
---------------

[](#3-documentation)

4 Thanks
--------

[](#4-thanks)

The development of the extension was supported by the TYPO3 agency [brandung](https://www.agentur-brandung.de/).

The DeeplService of the extension [wv\_translate](https://github.com/web-vision/wv_deepltranslate/blob/master/Classes/Service/DeeplService.php) was used and slightly adapted.

And of course thanks deepl for their outstanding service

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~139 days

Total

2

Last Release

1287d ago

Major Versions

v1.x-dev → v2.x-dev2022-12-25

### Community

Maintainers

![](https://www.gravatar.com/avatar/a3945184611089fcd30187b01bf574c07576ff77049b8272cd69b9a54f31a5b0?d=identicon)[ayacoo](/maintainers/ayacoo)

---

Top Contributors

[![ayacoo](https://avatars.githubusercontent.com/u/5963331?v=4)](https://github.com/ayacoo "ayacoo (26 commits)")[![brandung-gs](https://avatars.githubusercontent.com/u/97840058?v=4)](https://github.com/brandung-gs "brandung-gs (7 commits)")[![Fanor51](https://avatars.githubusercontent.com/u/10448557?v=4)](https://github.com/Fanor51 "Fanor51 (1 commits)")

---

Tags

hacktoberfest

### Embed Badge

![Health badge](/badges/ayacoo-xliff/health.svg)

```
[![Health](https://phpackages.com/badges/ayacoo-xliff/health.svg)](https://phpackages.com/packages/ayacoo-xliff)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[web-vision/wv_deepltranslate

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33304.3k](/packages/web-vision-wv-deepltranslate)[web-vision/deepltranslate-core

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33142.5k8](/packages/web-vision-deepltranslate-core)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)[leuchtfeuer/locate

Locate - The users country, preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. Locate also provides geo blocking for configurable pages in configurable countries.

1186.6k](/packages/leuchtfeuer-locate)[bedita/manager

BEdita Manager - official admin webapp for BEdita4 API

131.2k](/packages/bedita-manager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
