larswiegers/laravel-translations-checker

Make sure your laravel translations are checked and are included in all languages.

v0.9.2 2024-09-04 16:11 UTC

README

Latest Version on Packagist Total Downloads GitHub Actions

Laravel translation checker

Ever feel that you are missing translations in some languages you support? Get users emailing you about weird strings on their screen?

Use the laravel translation checker and get direct feedback where and what translations you are missing!

Installation

You can install the package via composer:

composer require larswiegers/laravel-translations-checker

Usage

Use the command below, it is that easy!

php artisan translations:check

Different directory

Are your translations in a weird directory? use the --directory option like this:

php artisan translations:check --directory=resources/lang

Exclude directories

Some packages have their own language files, it is probably smart to exclude them.

php artisan translations:check --excludedDirectories=lang/vendor

This option is also available as configuration option 'excluded_directories'.

For example:

    'excluded_directories' => ['lang/vendor'],

Exclude languages

This section provides instructions on how to exclude specific languages from being checked.

To exclude languages, follow these steps:

  1. Open the project's configuration file.

  2. Locate the translation-checker file.

  3. Add the language codes of the languages you want to exclude to the exclude_languages field.

For example:

    exclude_languages = ["en", "fr", "es"]

Exclude file types

  1. Let's say you only want to run on the php or json files in your project than you can use the --excludedFileExtensions option like this:
php artisan translations:check --excludedFileExtensions=php

This option is also available as configuration option 'excluded_file_extensions'.

JSON support

The package supports both .php files and .json files for the translations.

Running in github actions?

  translations:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.0'
          extensions: mbstring, intl
          ini-values: post_max_size=256M, max_execution_time=180
          coverage: xdebug
          tools: php-cs-fixer, phpunit
      - name: Install Dependencies
        run: composer install -q --no-interaction --no-scripts
      - name: Run translations check
        run: php artisan translations:check --excludedDirectories=vendor

What does the output look like?

The language nl (resources/lang/nl) is missing the file ( passwords.php )
Missing the translation with key: nl.passwords.reset
Missing the translation with key: nl.passwords.sent
Missing the translation with key: nl.passwords.throttled
Missing the translation with key: nl.passwords.token
Missing the translation with key: nl.passwords.user

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email larswiegers@live.nl instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.