Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Deepl Php Laravel Package

deeplcom/deepl-php

Official PHP client for the DeepL API. Translate text and documents with DeepL’s high-quality machine translation using a simple DeepLClient. Install via Composer, supports PHP 7.3+, and includes configurable options for requests.

View on GitHub
Deep Wiki
Context7

Official DeepL API Client Library

Frequently asked questions about Deepl Php
How do I integrate DeepL translation into a Laravel API for real-time responses?
Use the `DeepLClient` as a singleton in your Laravel service provider and inject it into controllers. For real-time needs, cache responses with Laravel’s cache system to reduce API calls. Example: `Cache::remember('translated_text', 3600, fn() => $deeplClient->translateText($text, null, 'es'))`.
Can I translate documents (e.g., PDFs) asynchronously in Laravel using this package?
Yes. Dispatch a job to Laravel’s queue with `TranslateDocumentJob::dispatch($filePath, $targetLang)`. Implement the job to use `uploadDocument()`, `checkDocumentStatus()`, and `downloadDocument()` methods. Monitor progress via the DeepL API’s status endpoint.
What’s the best way to manage DeepL API keys securely in Laravel?
Store the API key in Laravel’s `.env` file (e.g., `DEEPL_AUTH_KEY`) and inject it via the service container. Avoid hardcoding keys in source files. For added security, use Laravel’s encryption facade to encrypt the key in the database if needed.
Does this package support Laravel’s queue workers for bulk translations?
Absolutely. Create a job class (e.g., `TranslateTextJob`) that extends `ShouldQueue` and processes translations in the background. Use `dispatch()` to queue translations, and configure a worker to handle the queue. Ideal for batch processing or high-volume translations.
How do I handle DeepL API rate limits or failures in a Laravel app?
Configure retry logic using Laravel’s `retry()` helper or custom middleware. For example, wrap API calls in a try-catch block and retry failed requests up to 3 times. Cache responses during outages to maintain uptime. Log failures for monitoring.
Can I use this package with Laravel 9+ and PHP 8.1+ only?
Yes, the package officially supports PHP 7.3+ but recommends PHP 8.1+ for performance and security. Laravel 9+ requires PHP 8.0+, so upgrading to PHP 8.1+ aligns with both requirements. Check the [PHP version support policy](https://www.php.net/supported-versions.php) for details.
How do I enforce translation quotas to avoid DeepL API cost overruns?
Track billed characters by storing metadata (e.g., `billedCharacters`) in your Laravel models or a dedicated table. Use middleware to validate quotas before processing translations. For example, reject requests exceeding `config('services.deepl.monthly_limit')` characters.
Is there a way to create a facade for cleaner DeepL API calls in Laravel?
Yes. Generate a facade using Artisan: `php artisan make:facade DeepL`. Bind it to `DeepLClient` in your service provider. Now you can call translations like `DeepL::translateText($text, null, 'de')` instead of instantiating the client manually.
What alternatives exist for Laravel translation packages if DeepL’s pricing is prohibitive?
Consider open-source alternatives like `microsofttranslator/microsoft-translator-php` (Microsoft Translator) or `google/cloud-translate` (Google Cloud Translation). For budget-friendly options, self-host solutions like `translate-shell` or integrate with free-tier APIs like LibreTranslate.
How do I test DeepL translations in Laravel’s unit tests without hitting API limits?
Mock the `DeepLClient` using Laravel’s testing helpers. In your test, resolve the client with a mock that returns predefined responses. Example: `$this->app->instance(DeepLClient::class, Mockery::mock(DeepLClient::class)->shouldReceive('translateText')->andReturn(new TranslationResult('Mocked translation'))->getMock());`
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai