- How do I install Laravel Lang Status Generator for my Laravel project?
- Run `composer require laravel-lang/status-generator --dev` in your project root. The package installs as a dev dependency and adds Artisan commands without modifying core Laravel files. Ensure your project uses Laravel 8.x–13.x for full compatibility.
- Can this package generate missing locale files automatically?
- Yes. Use `php artisan lang:create` to generate stubs for all missing locales, or specify a locale with `--locale=es` for targeted creation. The command mirrors Laravel’s default `resources/lang` structure, ensuring consistency.
- Does it support downloading translations from Laravel Framework or Jetstream?
- Absolutely. Use `php artisan lang:download` with `--url`, `--project` (e.g., `framework`), and `--ver` (e.g., `9.x`) to fetch translations. For Jetstream, specify its GitHub URL and version. Add `--copy=lang` to include only language files or `--copy=resources/lang` for broader paths.
- Will this work with Laravel 14 when it releases?
- The package officially supports Laravel 8–13. For Laravel 14, monitor the [GitHub repo](https://github.com/Laravel-Lang/status-generator) for updates or fork the package if needed. Test in a staging environment before upgrading to avoid compatibility issues.
- How does the translation key parser detect missing keys in PHP/Blade files?
- The parser scans for `__()`, `trans_choice()`, and Blade directives like `{{ __('key') }}` to identify translation keys. For complex cases (e.g., dynamic keys), run `php artisan lang:sync --dry-run` in CI to validate changes before applying them. Custom formats may require extending the parser via service binding.
- Can I integrate Google Translate for auto-translation?
- Yes, the `lang:translate` command supports Google Translate’s free tier. Set your API key in `.env` (e.g., `GOOGLE_TRANSLATE_API_KEY`) and run `php artisan lang:translate --locale=es`. Disable it with `--no-translate` or replace it with DeepL/AWS by binding a custom translator service.
- Is this package safe to run in CI/CD pipelines?
- Yes. All commands are idempotent and designed for CI. Add a step like `php artisan lang:sync` to your GitHub Actions or GitLab CI to auto-sync translations post-merge. Use `--dry-run` first to preview changes and avoid unintended overwrites.
- What if my project uses non-standard translation keys (e.g., namespaced or dynamic)?
- The parser may miss custom formats like `{{ __('app.custom.key') }}`. Extend functionality by binding a custom `TranslationKeyParser` service in your `AppServiceProvider` or override the default parser logic in a child class.
- How do I exclude vendor/test files from translation scans?
- Use the `--exclude` flag with paths like `vendor/*,tests/*` in commands such as `lang:sync`. For large projects, combine this with parallel processing (e.g., GitHub Actions matrix) to improve performance in CI.
- Are there alternatives to this package for Laravel localization?
- For manual workflows, tools like Crowdin or Transifex integrate with Laravel but require external accounts. For CLI-focused solutions, consider `spatie/laravel-translatable` (for database-backed translations) or `mcamara/laravel-localization` (for route/locale management). This package uniquely combines CLI automation with Laravel ecosystem syncing.