Download the PHP package coding-partners/transla-genius without Composer
On this page you can find all versions of the php package coding-partners/transla-genius. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download coding-partners/transla-genius
More information about coding-partners/transla-genius
Files in coding-partners/transla-genius
Package transla-genius
Short Description A Laravel package for automatic translations.
License MIT
Informations about the package transla-genius
TranslaGenius Package
The TranslaGenius package is a Laravel package designed to automatically translate fields in your Eloquent models using an external translation API. It supports multiple languages and provides flexible translation management.
Features
- Multi-language support (configurable)
- Automatic field translation
- Queue-based translation processing
- Flexible API integration
- Comprehensive scope filters
Installation
To install the package, you can use Composer:
Configuration
After installing the package, you need to publish the configuration file:
This will create a translaGenius.php
file in your config
directory. You can modify this file to set your Supported Languages, and other translation settings:
Environment Variables
Make sure to set the following environment variables in your .env
file:
Usage
Step 1: Include the Translatable
Trait in Your Model
To enable automatic translation for your model, include the Translatable
trait in your Eloquent model:
Step 2: Update Your Migration
Ensure that the fields you want to translate are of type json
in your migration:
Step 3: Middleware Setup
To automatically set the locale based on the request, you can include the SetLocale
middleware in your bootstrap/app.php
:
Step 4: Making Requests
When making requests to your application, you can set the Accept-Language
header to specify the desired language:
This will set the locale to English (en
), which means the default language of the system is now English. When you add a new record, you should send the fields in English, and the package will automatically translate them into Arabic.
Step 5: Running the Queue
The translation process is handled by a job that is dispatched when a model is created or updated. To ensure that the translations are processed, you need to run the queue worker:
This will process the TranslateFields
job and perform the translations in the background.
Example of Using the fullyTranslated
Scope
The Translatable
trait provides a fullyTranslated
scope that allows you to filter models that are fully translated in the Supported Languages.
This scope checks if all translatable fields have a translation in the Supported Languages. It ensures that only records with complete translations are returned, which is useful for ensuring data consistency and completeness.
How It Works
- Model Events: When a model is created or updated, the
Translatable
trait automatically dispatches aTranslateFields
job. - Translation Job: The
TranslateFields
job uses theAutoTranslationService
to translate the specified fields into the target language. - Translation Service: The
AutoTranslationService
communicates with the external API to perform the translation and updates the model with the translated content.
Example Workflow
Here’s a complete example of how to use the package:
Model
Migration
Controller
Request
After the request, the name
and description
fields will be automatically translated into Supported Languages.
Troubleshooting
Common Issues
Missing translations:
- Verify queue worker is running
- Check API credentials
- Confirm language codes match config
Performance:
- Add indexes to JSON columns
- Consider caching frequent translations
Conclusion
The TranslaGenius package simplifies the process of adding multi-language support to your Laravel application. By following the steps outlined above, you can easily configure and use the package to automatically translate your model fields, ensuring that your application is accessible to a global audience.
All versions of transla-genius with dependencies
illuminate/support Version ^12.0
spatie/laravel-translatable Version ^6.0