PHPackages                             digitalcorehub/laravel-ai-translator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. digitalcorehub/laravel-ai-translator

ActiveLibrary[Localization &amp; i18n](/categories/localization)

digitalcorehub/laravel-ai-translator
====================================

Laravel package that translates missing language keys using OpenAI.

v0.5(6mo ago)18[5 PRs](https://github.com/DigitalCoreHub/laravel-ai-translator/pulls)MITPHPPHP ^8.3CI passing

Since Oct 15Pushed 2mo agoCompare

[ Source](https://github.com/DigitalCoreHub/laravel-ai-translator)[ Packagist](https://packagist.org/packages/digitalcorehub/laravel-ai-translator)[ RSS](/packages/digitalcorehub-laravel-ai-translator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (11)Versions (20)Used By (0)

🧠 Laravel AI Translator / Laravel AI Çevirmen
=============================================

[](#-laravel-ai-translator--laravel-ai-çevirmen)

Laravel AI Translator is a **Laravel 12** compatible package that scans your language files, detects missing keys, and automatically generates translations using multiple AI providers — **OpenAI**, **DeepL**, **Google Translate**, and **DeepSeek**. With **v0.5**, the Livewire-powered panel is integrated with Laravel's authentication system, e-mail allowlists, and granular access logs on top of the CLI toolkit.

Laravel AI Translator, **Laravel 12** ile uyumlu bir pakettir; uygulamanızın dil dosyalarını tarar, eksik çeviri anahtarlarını tespit eder ve **OpenAI**, **DeepL**, **Google Translate** veya **DeepSeek** API’lerini kullanarak bu eksikleri otomatik olarak tamamlar. **v0.5** sürümü ile Livewire tabanlı web paneli Laravel kullanıcı doğrulaması, e-posta yetkilendirme listesi ve ayrıntılı erişim logları ile güçlendirildi.

---

🚀 Features / Özellikler
-----------------------

[](#-features--özellikler)

- Detects and fills **missing translations** automatically / Eksik çevirileri otomatik olarak tamamlar
- Supports both **PHP** and **JSON** language files / Hem **PHP** hem de **JSON** dosyaları
- **Multiple providers:** OpenAI, DeepL, Google, DeepSeek
- **Provider fallback**: automatic fail-over mechanism
- **Translation cache** to prevent redundant API calls
- **Automatic file creation** for missing locale files
- 🔄 **Automated pipeline** with watch mode + queue-backed jobs
- 📡 **Real-time queue dashboard** (Livewire polling)
- 🗂️ **Sync history &amp; watch logs** for full traceability
- 🔐 **Secure panel access** with Laravel auth integration &amp; e-mail allowlist / Güvenli panel erişimi (Laravel auth + e-posta yetkilendirme)
- **CLI modes:** `--dry`, `--force`, `--review`
- **Detailed JSON report** + CLI progress table
- **Livewire 3 + Volt Dashboard** for visual management
- **Settings page** with provider test buttons
- **Logs &amp; statistics** page reading `ai-translator-report.json`
- **Manual edit** &amp; save workflow
- Optional **REST API** (`POST /api/translate`)

---

🔄 Automated Translation Pipeline (v0.6)
---------------------------------------

[](#-automated-translation-pipeline-v06)

- **Watch Mode (`php artisan ai:watch`)** — monitors `lang/` directories for PHP/JSON changes and pushes `ProcessTranslationJob` jobs to the queue. Watch targets can be configured per environment, and every detection is logged to `storage/logs/ai-translator-watch.log`.
- **Queue-backed translations** — `ProcessTranslationJob` orchestrates background translations, respects configurable concurrency limits, and stores progress snapshots in `storage/logs/ai-translator-report.json` for UI consumption.
- **Project Sync (`php artisan ai:sync`)** — runs bulk translations either immediately or via queue (`--queue`) and records detailed history inside `ai-translator-report.json` + `ai-translator-sync.log`.
- **Livewire Queue Dashboard** — `/ai-translator/queue` polls the queue state in real time, providing job status, provider usage, and duration metrics.
- **Sync &amp; Watch Logs** — new panel tabs surface background activity, ensuring the pipeline remains observable without tailing log files manually.
- **Real-time Progress Tracking** — Livewire components with auto-refresh show translation progress, completed jobs, and failed attempts.
- **Comprehensive Logging** — Separate log files for watch events, sync operations, and job execution with detailed context.

---

📦 Installation / Kurulum
------------------------

[](#-installation--kurulum)

```
composer require digitalcorehub/laravel-ai-translator
```

Publish the configuration file:

```
php artisan vendor:publish --tag=config --provider="DigitalCoreHub\\LaravelAiTranslator\\AiTranslatorServiceProvider"
```

---

⚙️ Environment Setup / Ortam Değişkenleri (`.env`)
--------------------------------------------------

[](#️-environment-setup--ortam-değişkenleri-env)

### 🌐 General Settings

[](#-general-settings)

```
AI_TRANSLATOR_PROVIDER=openai
AI_TRANSLATOR_CACHE_ENABLED=true
AI_TRANSLATOR_CACHE_DRIVER=file
AI_TRANSLATOR_PATHS="lang,resources/lang"
AI_TRANSLATOR_AUTH_ENABLED=true
AI_TRANSLATOR_AUTHORIZED_EMAILS=admin@digitalcorehub.com,batuhan@digitalcorehub.com
AI_TRANSLATOR_API_AUTH=true
AI_TRANSLATOR_WATCH_ENABLED=true
AI_TRANSLATOR_WATCH_TARGETS="tr,de,fr"
AI_TRANSLATOR_QUEUE=database
AI_TRANSLATOR_QUEUE_NAME=ai-translations
AI_TRANSLATOR_QUEUE_CONCURRENCY=5
```

### 🤖 OpenAI

[](#-openai)

```
OPENAI_API_KEY=sk-your-openai-key
OPENAI_MODEL=gpt-4o-mini
```

### 🧠 DeepL

[](#-deepl)

```
DEEPL_API_KEY=your-deepl-api-key
```

### 🌍 Google Translate

[](#-google-translate)

```
GOOGLE_API_KEY=your-google-api-key
```

> 💡 Enable **Cloud Translation API** here:
>

### 🐉 DeepSeek

[](#-deepseek)

```
DEEPSEEK_API_KEY=your-deepseek-api-key
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_API_BASE=https://api.deepseek.com/v1
```

---

⚙️ Configuration File / Yapılandırma Dosyası
--------------------------------------------

[](#️-configuration-file--yapılandırma-dosyası)

`config/ai-translator.php`

```
return [
    'provider' => env('AI_TRANSLATOR_PROVIDER', 'openai'),

    'providers' => [
        'openai' => [
            'api_key' => env('OPENAI_API_KEY'),
            'model'   => env('OPENAI_MODEL', 'gpt-4o-mini'),
        ],
        'deepl' => [
            'api_key' => env('DEEPL_API_KEY'),
        ],
        'google' => [
            'api_key' => env('GOOGLE_API_KEY'),
        ],
        'deepseek' => [
            'api_key' => env('DEEPSEEK_API_KEY'),
            'model'   => env('DEEPSEEK_MODEL', 'deepseek-chat'),
            'base_url'=> env('DEEPSEEK_API_BASE', 'https://api.deepseek.com/v1'),
        ],
    ],

    'auth_enabled' => (bool) env('AI_TRANSLATOR_AUTH_ENABLED', true),

    'authorized_emails' => (static function () {
        $configured = env('AI_TRANSLATOR_AUTHORIZED_EMAILS');

        if (is_string($configured) && trim($configured) !== '') {
            return collect(explode(',', $configured))
                ->map(static fn (string $email) => trim($email))
                ->filter()
                ->values()
                ->all();
        }

        return [
            'admin@digitalcorehub.com',
            'batuhan@digitalcorehub.com',
        ];
    })(),

    'cache_enabled' => (bool) env('AI_TRANSLATOR_CACHE_ENABLED', true),
    'cache_driver' => env('AI_TRANSLATOR_CACHE_DRIVER'),
    'paths' => [base_path('lang'), base_path('resources/lang')],
    'auto_create_missing_files' => true,
    'watch_enabled' => (bool) env('AI_TRANSLATOR_WATCH_ENABLED', true),
    'watch_paths' => [base_path('lang'), base_path('resources/lang')],
    'watch_targets' => env('AI_TRANSLATOR_WATCH_TARGETS'),
    'queue_connection' => env('AI_TRANSLATOR_QUEUE', env('QUEUE_CONNECTION', 'sync')),
    'queue_name' => env('AI_TRANSLATOR_QUEUE_NAME', 'ai-translations'),
    'queue_max_concurrent' => (int) env('AI_TRANSLATOR_QUEUE_CONCURRENCY', 5),
    'middleware' => ['web', 'auth', \DigitalCoreHub\LaravelAiTranslator\Http\Middleware\EnsureAiTranslatorAccess::class],
    'api_middleware' => ['api'],
    'api_auth' => (bool) env('AI_TRANSLATOR_API_AUTH', true),
];
```

---

🧠 Usage / Kullanım
------------------

[](#-usage--kullanım)

### CLI

[](#cli)

#### Basic Translation

[](#basic-translation)

```
php artisan ai:translate en tr
```

→ Translates all missing keys from English to Turkish.

More examples:

```
php artisan ai:translate en tr fr de      # Multi-language
php artisan ai:translate en tr --provider=deepl
php artisan ai:translate en tr --review   # Preview only
php artisan ai:translate en tr --force    # Force rewrite
php artisan ai:translate en tr --cache-clear
```

#### Watch Mode (v0.6)

[](#watch-mode-v06)

```
php artisan ai:watch --from=en --to=tr --provider=openai
```

→ Monitors language files for changes and automatically queues translations.

#### Sync Mode (v0.6)

[](#sync-mode-v06)

```
php artisan ai:sync en tr --queue --provider=openai
```

→ Bulk sync all language files with queue support.

```
php artisan ai:sync en tr fr de --queue --force
```

→ Sync multiple target languages with force retranslation.

### Web Panel

[](#web-panel)

- Sign in through your application's standard `/login` route using a Laravel user account.
- Navigate to `/ai-translator`; access is restricted to the e-mail allowlist when configured.
- Scan &amp; translate missing keys
- Edit manually or re-run translations
- View logs, provider connections, and settings
- Use the header menu to see who is signed in and to log out via Laravel's default form

### API (optional)

[](#api-optional)

```
POST /api/translate
Content-Type: application/json

{
  "from": "en",
  "to": "tr",
  "text": "Hello world",
  "provider": "openai"
}
```

---

📊 Logs &amp; Reports
--------------------

[](#-logs--reports)

Saved under:

```
storage/logs/ai-translator.log
storage/logs/ai-translator-report.json
storage/logs/ai-translator-watch.log
storage/logs/ai-translator-sync.log
storage/logs/ai-translator-queue.json

```

CLI and Web use the same TranslationManager for consistent results.

---

🧪 Testing / Testler
-------------------

[](#-testing--testler)

Run:

```
vendor/bin/pest
```

Covers:

- Multi-provider support
- Fallback system
- JSON/PHP translation
- Cache operations
- CLI review/force
- Livewire dashboard
- Provider connection tests
- Logs rendering

---

🗓️ v0.5 Highlights
------------------

[](#️-v05-highlights)

FeatureDescription🔐 **Secure Panel Access**Login form, session control, and e-mail authorization🧾 **Auth Logging**Dedicated `ai-translator.log` entries for login/logout🧭 **Guarded Routes**Middleware-protected dashboard, edit, settings, logs🌐 **Protected API**Optional `auth:sanctum` requirement for `/api/translate`🧑‍💻 **Livewire Dashboard**Scan &amp; translate missing keys⚙️ **Settings Page**Manage provider configs, test API connections📈 **Logs &amp; Statistics**Show provider, duration, file history---

💬 Example `.env`
----------------

[](#-example-env)

```
AI_TRANSLATOR_PROVIDER=openai
AI_TRANSLATOR_CACHE_ENABLED=true
AI_TRANSLATOR_CACHE_DRIVER=file
AI_TRANSLATOR_PATHS="lang,resources/lang"

OPENAI_API_KEY=sk-your-openai-key
OPENAI_MODEL=gpt-4o-mini
DEEPL_API_KEY=your-deepl-api-key
GOOGLE_API_KEY=your-google-api-key
DEEPSEEK_API_KEY=your-deepseek-api-key
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_API_BASE=https://api.deepseek.com/v1
```

---

> 🧾 Uses **Dependabot** for dependency updates
> 🪶 **Laravel Pint** for code style consistency
> 🧪 **Pest** for test coverage
> Maintained with ❤️ by [Digital Core Hub](https://github.com/digitalcorehub)

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance77

Regular maintenance activity

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

5

Last Release

206d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/32592602?v=4)[Batuhan Haymana](/maintainers/1batu)[@1batu](https://github.com/1batu)

---

Top Contributors

[![1batu](https://avatars.githubusercontent.com/u/32592602?v=4)](https://github.com/1batu "1batu (94 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (24 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (6 commits)")

---

Tags

ailaravellocalizationopenaipackagetranslationtranslator

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/digitalcorehub-laravel-ai-translator/health.svg)

```
[![Health](https://phpackages.com/badges/digitalcorehub-laravel-ai-translator/health.svg)](https://phpackages.com/packages/digitalcorehub-laravel-ai-translator)
```

###  Alternatives

[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[spatie/laravel-responsecache

Speed up a Laravel application by caching the entire response

2.8k8.2M51](/packages/spatie-laravel-responsecache)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[genealabs/laravel-model-caching

Automatic caching for Eloquent models.

2.4k4.8M26](/packages/genealabs-laravel-model-caching)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[mikebronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k127.1k1](/packages/mikebronner-laravel-model-caching)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
