- How do I install akeneo/crowdin-api in a Laravel application?
- Install it with Composer using composer require akeneo/crowdin-api, then bind the Crowdin client behind a first-party translation service or interface instead of injecting it into controllers and jobs. It is a framework-agnostic PHP SDK rather than a native Laravel package, so expect to wire configuration and credentials yourself. Note that symfony/http-client is not part of Laravel's default dependency set and will be added for this package.
- Does akeneo/crowdin-api support Laravel 11 and Laravel 12?
- The package is not Laravel-specific, so support depends on its PHP version and symfony/http-client constraint rather than a Laravel service provider. Laravel 11 and 12 use Symfony 7 components, so verify that the package allows symfony/http-client ^7.0; a pin to ^6 can create a split-Symfony-major dependency tree. Test Composer resolution in a branch before adopting it in an existing application.
- What is the difference between akeneo/crowdin-api and the official Crowdin PHP client?
- akeneo/crowdin-api is an Akeneo-maintained PHP wrapper around Crowdin's REST API, while crowdin/crowdin-api-client-php is the official client. The build-versus-adopt decision is still open, so compare endpoint coverage, authentication model, pagination, exception handling, retry behavior, and maintenance activity for your use case. The Akeneo package remains a thin SDK that you should isolate behind your own translation provider interface.
- What changed in akeneo/crowdin-api 2.0?
- Version 2.0 replaces Guzzle with symfony/http-client, changing the HTTP client abstraction and likely the constructor or type-hint surface. Error handling now involves Symfony HTTP client exceptions rather than GuzzleHttp exceptions, and timeout, redirect, and retry semantics must be configured explicitly. Treat this as a breaking release at client instantiation and verify the exact symfony/http-client constraint before upgrading.
- Can I inject a custom HTTP client into akeneo/crowdin-api for testing or proxying?
- The 2.0 assessment says the SDK can accept an injected PSR-18/PSR-17 client, which improves testability, proxying, and observability compared with a hard Guzzle coupling. Confirm whether the constructor requires Symfony's HttpClientInterface specifically or accepts any PSR-18 ClientInterface, because that affects portability. For tests, use Symfony's MockHttpClient where supported, or wrap the SDK behind your own adapter.
- How should I handle retries and errors with akeneo/crowdin-api?
- Do not write retry logic against Guzzle exception types after upgrading to 2.0, because the SDK now surfaces Symfony HTTP client exceptions. Shield callers with a package-level exception wrapper, classify 429 and 5xx responses, set explicit timeouts, and apply bounded exponential backoff. Check whether the package exposes configurable retry behavior or whether you should use Symfony's RetryableHttpClient or your own job-level retry policy.
- Is akeneo/crowdin-api production-ready for a Laravel localization workflow?
- It is a small MIT-licensed SDK suitable for automating Crowdin project, file, and translation operations, but it is maintained by one organization with a small community and no dependents listed. The 2.0 release shows maintainer engagement after a quiet period, yet you remain responsible for defects and for workflow design such as source extraction, mapping, pull cadence, and write-back. Isolate it behind a first-party interface and keep the fork option open for production resilience.
- Does akeneo/crowdin-api integrate directly with Akeneo PIM?
- It is described as suitable for Akeneo PIM projects and other applications that need automated translation operations, but it is a Crowdin API client rather than a turnkey PIM connector. You still need to design how PIM source data is extracted, mapped to Crowdin projects, files, and branches, and written back. Keep that orchestration in your application services or jobs, not inside the SDK.
- How do I manage Crowdin projects and files with akeneo/crowdin-api?
- The package wraps Crowdin REST endpoints for project management, source files, translations, uploads, downloads, and status checks. Build a small service layer that maps your application's entities to Crowdin project and file identifiers, then run upload and download workflows through queued jobs. Verify the targeted Crowdin API version, authentication model, pagination behavior, and endpoint coverage before relying on it for complex localization automation.
- Is akeneo/crowdin-api actively maintained?
- The package is maintained under the Akeneo organization, and the 2.0.0 release after roughly two quiet years indicates continued engagement and willingness to make breaking changes. It still has a small star count and no dependents, so maintenance is best treated as incidental organizational interest rather than a guarantee. MIT licensing lets you fork or patch it if your translation workflow depends on it.