nitsan / ns-t3al
AI-Powered XLIFF Translation - AI translation for TYPO3 extension language files. Translate XLIFF / locallang.xlf labels with AI right in the TYPO3 backend, with no more copying labels into external tools. Auto-translate missing labels with DeepL, OpenAI ChatGPT, Google Gemini or Google Translate, r
Package info
github.com/nitsan-technologies/ns_t3al
Type:typo3-cms-extension
pkg:composer/nitsan/ns-t3al
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- nitsan/ns-license: ^14.5.4
- typo3/cms-backend: ^12.4.18 || ^13.4 || ^14.3
- typo3/cms-core: ^12.4.18 || ^13.4 || ^14.3
- typo3/cms-extbase: ^12.4.18 || ^13.4 || ^14.3
- typo3/cms-extensionmanager: ^12.4.18 || ^13.4 || ^14.3
- typo3/cms-fluid: ^12.4.18 || ^13.4 || ^14.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.94
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.5 || ^11.2 || ^12.1
- typo3/testing-framework: ^8.2 || ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
AI-Powered XLIFF Translation for TYPO3 Extension ns_t3al
TYPO3 backend module (Admin Tools → AI Localization) for translating extension XLIFF files
(Resources/Private/Language/*.xlf) in a spreadsheet-style grid:
- edit source and target labels of several languages side by side;
- fill empty targets with AI: OpenAI, Gemini, DeepL or Google Translate;
- save locally, or upload translations of TYPO3 system extensions to Crowdin;
- import / export CSV, export all language files as ZIP;
- search labels across extensions;
- translation logs with a diff of every saved change.
| URL | |
|---|---|
| Repository: | https://github.com/nitsan-technologies/ns_t3al |
| Issues: | https://github.com/nitsan-technologies/ns_t3al/issues |
| Product Page: | https://t3planet.de/t3al-typo3-erweiterung |
| Support: | https://t3planet.de/support |
| License: | LICENSE (GPL-2.0-or-later) |
Requirements
- TYPO3 12.4 LTS, 13.4 LTS or 14.3 LTS (classic or Composer mode)
- PHP version supported by the TYPO3 version
nitsan/ns-license14.5.4 or later 14.x (installed automatically; no license key needed — the extension is free)
Installation
Composer mode:
composer require nitsan/ns-t3al vendor/bin/typo3 extension:setup
Classic mode: install the extension in Admin Tools → Extensions, then run Analyze Database Structure.
Configuration
Admin Tools → Settings → Extension Configuration → ns_t3al
| Setting | Purpose |
|---|---|
openaiApiKey, openaiApiModel |
OpenAI |
geminiApiKey, geminiApiModel |
Gemini |
deeplApiKey, deeplApiUrl |
DeepL (Free: https://api-free.deepl.com/v2/translate) |
googleApiKey, googleApiUrl |
Google Translate v2 |
accessToken, crowdinApiUrl, crowdinSystemExtensionPath |
Crowdin API (upload of system-extension translations) |
enableLogs, logRetentionDays |
Translation logs; logs older than the retention period are deleted (0 = keep all) |
enableExport |
"Export ZIP" action |
Non-admin editors need access to the module and the extensions they may edit: Backend user group → Access Rights → Custom module options → AI Localization: editable extensions.
Development
composer install composer test # unit tests (Build/phpunit/UnitTests.xml) composer ci # unit tests + PHPStan + coding standards
GitHub Actions (.github/workflows/core12.yml, core13.yml, core14.yml) run the same checks per TYPO3 major
through the Docker test runner, which you can also use locally:
Build/Scripts/runTests.sh -t 13 -p 8.3 -s composerInstallHighest
Build/Scripts/runTests.sh -t 13 -p 8.3 -s unit
Build/Scripts/runTests.sh -h # all suites and options
Architecture notes for contributors: AGENTS.md and context/ (git repository only; like Build/ and
Tests/ they are export-ignored in .gitattributes and not part of release archives).
License
GPL-2.0-or-later
