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
Cloud Translate

Cloud Translate Laravel Package

google/cloud-translate

Idiomatic PHP client for Google Cloud Translation. Supports V2 (handwritten) and V3 (generated) APIs to translate text, detect language, and manage datasets/models. Auth via Google Cloud credentials; install with Composer for easy integration.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Cloud Translate
How do I install the Google Cloud Translation package in a Laravel project?
Run `composer require google/cloud-translate` in your Laravel project directory. Ensure your PHP version meets the package’s requirements (PHP 8.1+ recommended). Authentication is handled via Google Cloud credentials, which you’ll configure separately using the [Google Cloud PHP Authentication guide](https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md).
What’s the difference between V2 (REST) and V3 (gRPC) APIs in this package?
V2 is a handwritten REST client with broad compatibility, ideal for simple translations. V3 is a generated gRPC client offering better performance and advanced features like Adaptive MT (domain-specific translations). For Laravel, V3 is recommended for high-throughput apps (e.g., SaaS platforms), while V2 works for basic use cases. Both receive ongoing support.
Can I use Adaptive MT for HTML or JSON content in Laravel?
Yes. The `mime_type` field in Adaptive MT supports structured data like HTML (`text/html`) or JSON (`application/json`). In Laravel, auto-detect MIME types using regex (e.g., `Str::contains($text, ['<html>', '{'])`) or explicitly set them. Example: `$request->setMimeType('text/html')` for rich-text fields like CKEditor content.
How do I authenticate the package in Laravel?
Use Google Cloud service account credentials. Set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to point to your JSON key file or configure it in Laravel’s `.env` file. The package automatically reads credentials from these sources. For production, restrict the service account to the Translation API scope only.
Is this package compatible with Laravel 10+?
Yes, the package supports PHP 8.1+ and works with Laravel 10+. Tested features include V3’s gRPC client and Adaptive MT. For legacy Laravel versions (e.g., 8.x), ensure your PHP version aligns with the package’s requirements. Check the [GitHub repo](https://github.com/googleapis/google-cloud-php-translate) for version-specific notes.
How can I translate Eloquent model fields (e.g., product descriptions) with MIME-type awareness?
Use Eloquent observers to auto-translate fields like `description`. Detect MIME types (e.g., HTML via regex) and pass them to the client: `$client->translateText(['contents' => [$model->description], 'mime_type' => 'text/html']`. For JSON fields, use `application/json`. Example: Add an observer to trigger translations on `saved()` events.
What are the performance implications of Adaptive MT vs. standard translation?
Adaptive MT may add 50–100ms latency due to domain-specific processing but offers higher accuracy for structured data. For Laravel, benchmark your use case—e.g., e-commerce product catalogs may benefit from Adaptive MT for technical specs, while blogs can use standard translation. Monitor Google’s pricing (Adaptive MT is typically 2x costlier).
How do I handle errors if Adaptive MT fails in production?
Implement a fallback strategy: Catch `ApiException` and retry with standard translation or cache the original text. Use feature flags to toggle Adaptive MT (e.g., via Laravel’s `config('services.translate.use_adaptive_mt')`). Log failures to track usage patterns and adjust thresholds.
Are there Laravel-specific wrappers or helpers for this package?
No official Laravel wrapper exists, but you can create one. Extend the package with service providers, Blade directives (e.g., `@translate`), or jobs (e.g., `TranslateTextJob`). Example: A Blade directive could auto-detect MIME types and call `$client->translateText()`. Publish a custom package for reuse across projects.
What alternatives exist for Laravel translation if Google Cloud’s pricing is prohibitive?
Consider open-source alternatives like [Laravel Translatable](https://github.com/spatie/laravel-translatable) for database-driven translations or [DeepL API](https://www.deepl.com/pro-api) for higher-quality machine translation. For budget constraints, use Google Cloud’s free tier (500,000 characters/month) or self-host solutions like [Moses](https://www.moses-smt.org/).
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