Bottelet / translation-checker

find translations you forgot to add to your language files, check, and maintain translations in yor Laravel application
MIT License
101 stars 6 forks source link

Translation Checker

Translation Checker is tool designed to help you find translations you forgot to add to your language files, check, and maintain translations in your project. It provides a set of commands to help with language files, ensuring consistency and completeness across your translations.

It works with Laravel and supports various frontend frameworks like Vue.js, React, and Svelte.

How it works

  1. Scan Source Files: The system looks through your code for strings that need translation.
  2. Check Language Files: It then checks if these strings exist in your language files.
  3. Add missing translation keys: It adds the missing key with empty values if there is no translation service used.

Example:

lang.json

{
  "test.value": "Value"
}

lang.php

return [
  'test.value' => 'Value',
];

TestClass.php

class TestClass
{
    public function getValue()
    {
        return __('translate this string');
    }
}
php artisan translations:check en

lang.json

{
  "test.value": "Value",
  "translate this string": null
}

lang.php

return [
  'test.value' => 'Value',
  'translate this string' => null,
];

The reason we default to null when no translation service are used is because it defaults to the key used in the function call.

Quick Start

Install the package via composer:

composer require bottelet/translation-checker --dev

Usage

Translation Checker provides several commands to manage your translations. The most versatile is the check command:

php artisan translations:check en 

For detailed information on all available commands and their usage, refer to the documentation.

Testing

Run the tests with:

./vendor/bin/phpunit

Documentation

For full documentation, visit our GitHub documentation page.

If you encounter any issues or have suggestions, please create an issue on GitHub.

License

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