PHP SDK

Lingo.dev PHP SDK fügt PHP-Anwendungen und Laravel-Projekten KI-gestützte Echtzeit-Übersetzung hinzu. Das SDK verarbeitet dynamische Inhalte wie Chat-Nachrichten, Benutzerkommentare und Live-Daten, die sofortige Übersetzung benötigen.

Im Gegensatz zur statischen Datei-Lokalisierung mit Lingo.dev CLI verarbeitet das SDK Inhalte bei Bedarf, was es ideal für Chat-Anwendungen, E-Mail-Clients und Social-Media-Tools macht, bei denen sich Inhalte ständig ändern.

Installation

composer require lingodotdev/sdk

Grundlegende Einrichtung

<?php

require 'vendor/autoload.php';

use LingoDotDev\Sdk\LingoDotDevEngine;

$engine = new LingoDotDevEngine([
    'apiKey' => 'your-api-key-here',
]);

Text-Übersetzung

Einfachen Text übersetzen:

$result = $engine->localizeText('Hello, world!', [
    'sourceLocale' => 'en',
    'targetLocale' => 'es',
]);
// Gibt zurück: "¡Hola, mundo!"

In mehrere Sprachen übersetzen:

$results = $engine->batchLocalizeText('Hello, world!', [
    'sourceLocale' => 'en',
    'targetLocales' => ['es', 'fr', 'de'],
]);
// Gibt zurück: ["¡Hola, mundo!", "Bonjour le monde!", "Hallo, Welt!"]

Objekt-Übersetzung

Strukturierte Daten übersetzen:

$content = [
    'greeting' => 'Hello',
    'farewell' => 'Goodbye',
    'messages' => [
        'welcome' => 'Welcome to our service',
        'thanks' => 'Thank you for your business'
    ]
];

$translated = $engine->localizeObject($content, [
    'sourceLocale' => 'en',
    'targetLocale' => 'fr',
]);
// Gibt übersetztes Array mit gleicher Struktur zurück

Diese Methode verarbeitet verschachtelte Arrays und behält die ursprüngliche Struktur bei, während Textwerte übersetzt werden.

Chat-Übersetzung

Konversations-Arrays übersetzen:

$conversation = [
    ['name' => 'Alice', 'text' => 'Hello, how are you?'],
    ['name' => 'Bob', 'text' => 'I am fine, thank you!'],
    ['name' => 'Alice', 'text' => 'What are you doing today?']
];

$translated = $engine->localizeChat($conversation, [
    'sourceLocale' => 'en',
    'targetLocale' => 'de',
]);
// Gibt übersetzte Konversation mit gleicher Struktur zurück

Die Chat-Methode behält Metadaten wie Benutzernamen bei und übersetzt nur die Textinhalte.

Spracherkennung

Automatische Erkennung der Quellsprache:

$locale = $engine->recognizeLocale('Bonjour le monde');
// Gibt zurück: 'fr'

Verwendung mit automatischer Erkennung:

$result = $engine->localizeText('Bonjour le monde', [
    'sourceLocale' => null, // Auto-Erkennung
    'targetLocale' => 'en',
]);
// Gibt zurück: "Hello world"

Die Spracherkennung erhöht die Verarbeitungszeit, daher sollte sie nur verwendet werden, wenn die Quellsprache unbekannt ist.

Konfigurationsoptionen

SDK-Verhalten konfigurieren:

$engine = new LingoDotDevEngine([
    'apiKey' => 'your-api-key-here',
    'batchSize' => 100, // Maximale Elemente pro API-Anfrage (Standard: 50, Maximum: 250)
    'idealBatchItemSize' => 1000, // Ziel-Wortanzahl pro Batch (Standard: 500, Maximum: 2500)
]);

Batch-Größe steuert, wie viele Elemente in jeder API-Anfrage gesendet werden. Höhere Werte reduzieren API-Aufrufe, erhöhen jedoch die Anfragegröße.

Ideale Batch-Elementgröße steuert die Ziel-Wortanzahl für optimale Verarbeitungseffizienz.

Übersetzungsparameter

Geschwindigkeit vs. Qualitätskontrolle:

$result = $engine->localizeText('Hello world', [
    'sourceLocale' => 'en',
    'targetLocale' => 'es',
    'fast' => true, // Priorisiert Geschwindigkeit gegenüber Qualität
]);

Der Parameter fast ermöglicht schnellere Übersetzungen mit potenziell reduzierter Qualität für zeitkritische Anwendungen.

Fortschrittsverfolgung

Überwachung großer Übersetzungsaufträge:

$engine->localizeText('Hello, world!', [
    'sourceLocale' => 'en',
    'targetLocale' => 'es',
], function ($progress, $chunk, $processedChunk) {
    echo "Übersetzungsfortschritt: $progress%\n";
    // UI aktualisieren oder Fortschritt protokollieren
});

Fortschritts-Callbacks bieten Echtzeit-Feedback für umfangreiche Übersetzungsvorgänge, nützlich für Benutzeroberflächen-Updates.

Fehlerbehandlung

Implementierung einer ordnungsgemäßen Fehlerbehandlung:

try {
    $result = $engine->localizeText('Hello', [
        'sourceLocale' => 'en',
        'targetLocale' => 'es',
    ]);
} catch (Exception $e) {
    error_log('Übersetzung fehlgeschlagen: ' . $e->getMessage());
    // Fehler angemessen behandeln
}

Das SDK beinhaltet automatische Wiederholungsversuche bei Netzwerkproblemen, aber die Fehlerbehandlung auf Anwendungsebene bleibt wichtig.

Laravel-Integration

Verwendung in Laravel-Anwendungen:

// In einem Laravel-Controller
class TranslationController extends Controller
{
    private $engine;

    public function __construct()
    {
        $this->engine = new LingoDotDevEngine([
            'apiKey' => config('services.lingodotdev.api_key'),
        ]);
    }

    public function translateMessage(Request $request)
    {
        $translated = $this->engine->localizeText($request->message, [
            'sourceLocale' => $request->source_locale,
            'targetLocale' => $request->target_locale,
        ]);

        return response()->json(['translated' => $translated]);
    }
}

Anforderungen

  • PHP 8.1 oder höher
  • Composer
  • GuzzleHttp Client
  • Respect Validation