goodmagma / laravel-translations
Export Localization strings and translate it via Google Translate for Laravel
Requires
- php: ^8.0
- ext-json: *
- illuminate/support: ^8|^9|^10.0
- illuminate/translation: ^8|^9|^10.0
- stichoza/google-translate-php: ^5.1
- symfony/finder: ^5|^6
Requires (Dev)
- nunomaduro/larastan: ^1.0|^2.0
- orchestra/testbench: ^6.0|^7.0|^8.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-10-05 22:39:52 UTC
README
You can use __('Translate me')
or @lang('Translate me')
with translations in JSON files to translate strings.
Laravel Translation Tools is composed by two commands:
- exporter: Collect all translatable strings of an application and create corresponding translation files in JSON format
- autotranslate: Translate all the strings of a specific language and save it to the corresponding JSON file. You may define a
persistent-strings
file in order to keep some translations.
Attribution
This project includes code from the following open-source projects:
Translatable String Exporter for Laravel
- Repository: https://github.com/kkomelin/laravel-translatable-string-exporter
- License: MIT License
Installation
You can install the package via composer:
composer require goodmagma/laravel-translations --dev
You can publish the config file with:
php artisan vendor:publish --tag="translations-config"
Click here to see the contents of the config file.
You should read through the config, which serves as additional documentation and make changes as needed.
Usage
Export translatable strings
php artisan translations:export <lang>
Where <lang>
is a language code or a comma-separated list of language codes.
For example:
php artisan translations:export es php artisan translations:export es,bg,de
The command with the "es,bg,de"
parameter passed will create es.json
, bg.json
, de.json
files with translatable strings or update the existing files in the lang/
folder of your project.
Translate strings
php artisan translations:translate <lang>
Where <lang>
is a language code or a comma-separated list of language codes.
For example:
php artisan translations:translate es php artisan translations:translate es,bg,de
Persistent Strings
Some strings are not included in the export, because they are being dynamically generated. For example:
{{ __(sprintf('Dear customer, your order has been %s', $orderStatus)) }}
Where $orderStatus
can be 'approved'
, 'paid'
, 'cancelled'
and so on.
In this case, you can add the strings to the <lang>.json
file manually. For example:
...,
"Dear customer, your order has been approved": "Dear customer, your order has been approved",
"Dear customer, your order has been paid": "Dear customer, your order has been paid",
...
In order for those, manually added, strings not to get removed the next time you run the export command, you should add them to a json file named persistent-strings-<lang>.json
. For example:
[
...,
"Dear customer, your order has been %s": "Gentile cliente, il tuo ordine è stato approvato",
...
]
You may also use the persistent-strings-<lang>.json
file to fix some translations when you use translate command.
When a translation is defined here will not be automatic translated via Google Translate. This is useful for example when the automatic translation output for a particular string is not accurate.
Contributing
Contributions are what makes the open source community such an amazing place to learn, inspire and create. Any contributions you make are greatly appreciated.
- Give us a star ⭐
- Fork and Clone! Awesome
- Select existing issues or create a new issue and give us a PR with your bugfix or improvement after. We love it ❤️
If you want to make a PR:
- Fork the Project and checkout
develop
branch - Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.