om/potrans
Laravel package to manage, store and sync translations. Provides tools to import/export language files, edit translations via a UI, and keep localization data consistent across environments and deployments.
Architecture fit remains limited as this is a standalone CLI tool rather than a Laravel-integrated package. The Symfony Console dependency (v7+/v8+) continues to conflict with Laravel's Symfony 6.x stack (Laravel 10 uses Symfony 6.4), requiring manual dependency overrides for integration. The package still lacks Laravel-specific integration points (e.g., service providers, facades, or event listeners) and does not leverage Laravel’s native translation system (Lang facade, filesystem structure).
Integration feasibility remains low due to Symfony version conflicts. While the package now includes unit tests and GitHub Actions CI, this does not resolve the core dependency conflict. The CLI nature means no native Laravel hooks or workflows (e.g., translation workflows, API key management via Laravel’s config). The PHP 8.3/8.5 compatibility fixes and htmlentities decoding improvements (#39) are irrelevant to Laravel integration but improve standalone usability.
Technical risks persist:
~/.potrans) still risks permission issues in containerized environments.Key questions:
config('app.cache_prefix'))?extra.allow_override: true or a custom alias?Schedule::command())?Stack fit remains poor due to Symfony version divergence. Laravel’s ecosystem (e.g., laravel/framework, symfony/console:6.4) is incompatible with the package’s symfony/console:^7.0||^8.0 requirement. No Laravel-specific adapters (e.g., facades, service bindings) exist.
Migration path:
composer.json:
"extra": {
"laravel": {
"dont-discover": ["OzzyCzech\\Potrans\\*"]
}
},
"config": {
"allow-plugins": {
"symfony/console": true
}
}
composer require symfony/console:^8.0 --ignore-platform-reqs (breaks Laravel core).namespace App\Console\Commands;
use Illuminate\Console\Command;
use Symfony\Component\Process\Process;
class PotransCommand extends Command {
protected $signature = 'potrans:translate';
public function handle() {
$process = new Process(['vendor/bin/potrans', ...]);
$process->run();
$this->output->write($process->getOutput());
}
}
Illuminate/Translation and Illuminate/Console instead of Symfony Console.Compatibility:
resources/lang and the package’s output.Sequencing:
Lang facade.Maintenance:
symfony/console).Support:
.env management outside Laravel’s config/services.php.~/.potrans cache directory may need chmod in Docker/Kubernetes.Scaling:
Failure modes:
symfony/console is upgraded.Lang and generated .po files.Ramp-up:
How can I help you explore Laravel packages today?