potsky / laravel-localization-helpers

šŸŽŒ Artisan commands to generate and update lang files automatically
GNU General Public License v3.0
187 stars 39 forks source link
bing-translator laravel laravel-package laravel-translation-manager manage-translations php translation

Laravel Localization Helpers

Latest Stable Version Latest Unstable Version Build Status Coverage Status Total Downloads Stories in Ready

This branch is the current dev branch

LLH is a set of artisan commands to manage translations in your Laravel project. Key features :

Table of contents

  1. Installation
  2. Configuration
  3. Usage
  4. Support
  5. Upgrade Notices
  6. Change Log
  7. Contribute

1. Installation

Laravel Lumen Package
4.2.x 2.0.x (EOL last version is 2.0.4)
5.0.x 2.1.x
5.1.x 5.1.x 2.2.x
5.2.x 5.2.x 2.3.x
5.3.x 5.3.x 2.4.x
5.4.x 5.4.x 2.5.x
5.5.x 5.5.x 2.6.x

In Laravel, you can add the facade in the Aliases if you need to manage translations in your code :

'LocalizationHelpers' => Potsky\LaravelLocalizationHelpers\Facade\LocalizationHelpers::class

2. Configuration

To configure your fresh installed package, please create a configuration file by executing :

php artisan vendor:publish

Then you can modify the configuration in file :

config/laravel-localization-helpers.php

Add new folders to search for, add your own lang methods or functions, ...

For Lumen, copy manually the configuration file as config/laravel-localization-helpers.php.

Backup files

You should not include backup lang files in GIT or other versioning systems.

In your laravel folder, add this in .gitignore file :

# Do not include backup lang files
resources/lang/*/[a-zA-Z]*20[0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9].php

3. Usage

3.1 Command localization:missing

This command parses all your code and generates translations according to lang files in all lang/XXX/ directories.

Use php artisan help localization:missing for more informations about options.

Examples

Generate all lang files
php artisan localization:missing
Generate all lang files without prompt
php artisan localization:missing -n
Generate all lang files without backuping old files
php artisan localization:missing -b
Generate all lang files with automatic translations
php artisan localization:missing -t

You need to set your Microsoft Bing Translator credentials More informations here : https://github.com/potsky/microsoft-translator-php-sdk#user-content-2-configuration

Generate all lang files without keeping obsolete lemmas
php artisan localization:missing -o
Generate all lang files without any comment for new found lemmas
php artisan localization:missing -c
Generate all lang files without header comment
php artisan localization:missing -d
Generate all lang files and set new lemma values

3 commands below produce the same output:

php artisan localization:missing
php artisan localization:missing -l
php artisan localization:missing -l "TODO: %LEMMA"

You can customize the default generated values for unknown lemmas.

The following command let new values empty:

php artisan localization:missing -l ""

The following command prefixes all lemma values with "Please translate this : "

php artisan localization:missing -l "Please translate this : %LEMMA"

The following command set all lemma values to null to provide fallback translations to all missing values.

php artisan localization:missing -l null

The following command set all lemma values to "Please translate this !"

php artisan localization:missing -l 'Please translate this !'
Silent option for shell integration
#!/bin/bash

php artisan localization:missing -s
if [ $? -eq 0 ]; then
echo "Nothing to do dude, GO for release"
else
echo "I will not release in production, lang files are not clean"
fi
Simulate all operations (do not write anything) with a dry run
php artisan localization:missing -r
Open all must-edit files at the end of the process
php artisan localization:missing -e

You can edit the editor path in your configuration file. By default, editor is Sublime Text on Mac OS X :

'editor_command_line' => '/Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl'

For PHPStorm on Mac OS X:

'editor_command_line' => '/usr/local/bin/phpstorm'

3.2 Command localization:find

This command will search in all your code for the argument as a lemma.

Use php artisan help localization:find for more informations about options.

Examples

Find regular lemma
php artisan localization:find Search
Find regular lemma with verbose
php artisan localization:find -v Search
Find regular lemma with short path displayed
php artisan localization:find -s "Search me"
Find lemma with a regular expression
php artisan localization:find -s -r "@Search.*@"
php artisan localization:find -s -r "/.*me$/"

PCRE functions are used

3.3 Command localization:clear

This command will remove all backup lang files.

Use php artisan help localization:clear for more informations about options.

Examples

Remove all backups
php artisan localization:clear
Remove backups older than 7 days
php artisan localization:clear -d 7

4. Support

Use the github issue tool to open an issue or ask for something.

5. Upgrade notices

From v2.x.5 to v2.x.6

From v2.x.4 to v2.x.5

From v2.x.1 to v2.x.2

From v1.x.x to v2.x.x

6. Change Log

v2.x.6

v2.x.5

v2.x.4

v2.x.3

v2.x.2

v2.x.1

v2.x.0

Internally :

v1.3.3

v1.3.2

v1.3.1

v1.3

v1.2.2

v1.2.1

v1.2

7. Contribute

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Tests are in tests. To run the tests: vendor/bin/phpunit.

Coverage cannot decrease next a merge. To track file coverage, run vendor/bin/phpunit --coverage-html coverage and open coverage/index.html to check uncovered lines of code.

Dev badges : Dev Status Dev Coverage Status