dereuromark / cakephp-translate
A CakePHP plugin for managing translations
Installs: 5 673
Dependents: 1
Suggesters: 0
Security: 0
Stars: 17
Watchers: 3
Forks: 3
Open Issues: 8
Type:cakephp-plugin
Requires
- php: >=7.3
- cakephp/cakephp: ^4.2.0
- dereuromark/cakephp-tools: ^2.0
- friendsofcake/search: ^6.0
Requires (Dev)
- ext-json: *
- dereuromark/cakephp-queue: ^5.0
- fig-r/psr2r-sniffer: dev-master
- phpunit/phpunit: ^9.5
- sepia/po-parser: ^6.0.1
- yandex/translate-api: dev-master
Suggests
- dereuromark/cakephp-queue: To use background processing for e.g. PO file import
- yandex/translate-api: Free Translation API Alternative
README
A CakePHP plugin for managing translations DB driven.
This branch is for use with CakePHP 5.0+. For details see version map.
WARNING: Not fully upgraded yet, help needed!
Key features
- Import from POT, PO files or any service/API.
- Web-based and without external dependencies.
- Translate strings in all languages simultaneously.
- Allow others to help translating without having to know technical details.
- Auto-Translate and Auto-Suggest with Translate APIs (e.g. Google Translate PHP/JS, Yandex, ...) for efficiency.
Benefits over normal PO editing
- Prevent duplicates, missing translations, collisions.
- Auto-Features like
trim()
,h()
, newlines to<p>/<br>
, espacing of%s
. - Validate placeholders (
{0}
,%s
, ...). - Preview and code excerpts of references.
- Auto-Add Controller names (singular + plural).
- Manage in Groups (=Domains) and export/enable/disable them.
- Creates clean PO files with all translations in usage to easier diff changes.
Included translation services via APIs
- Google (free, limited)
- Yandex (free, limited)
- Transltr (free)
Add your translation engine here in a heartbeat.
Installation
Including the plugin is pretty much as with every other CakePHP plugin:
composer require dereuromark/cakephp-translate
Then, to load the plugin run the following command:
bin/cake plugin load Translate -b -r
# If you haven't loaded the Tools plugin already
bin/cake plugin load Tools -b -r
Routes are needed for the backed, the bootstrap sets up a few defaults.
Run this in console to create the necessary DB tables:
bin/cake migrations migrate -p Translate
Recommendations
Use dereuromark/cakephp-queue
for larger projects to avoid timeout issues when importing PO files.
Usage
Web Backend
- Navigate to
/admin/translate/
in your browser.
CLI
- Run
bin/cake translate
.
Tips
- Use TinyAuth or alike to manage access to the translation backend for user groups.
- Implement your own Translation engine if you want to have even better auto-suggest.