PHP SDK
KI-Übersetzung mit PHP und Lingo.dev
Einführung
Das 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 Dateilokalisierung 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
Das SDK benötigt einen API-Schlüssel von Lingo.dev.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
Textübersetzung
Übersetzen Sie einfache Textstrings in eine Zielsprache.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$result = $engine->localizeText('Hello, world!', [
'sourceLocale' => 'en',
'targetLocale' => 'es',
]);
echo $result;
// Ausgabe: ¡Hola, mundo!
Objektübersetzung
Übersetzen Sie verschachtelte Arrays unter Beibehaltung der Struktur. Das SDK verarbeitet rekursiv alle String-Werte.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$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',
]);
print_r($translated);
// Ausgabe: Array mit französischen Übersetzungen unter Beibehaltung der Struktur
Batch-Übersetzung in mehrere Sprachen
Übersetzen Sie Inhalte in einem einzigen Aufruf in mehrere Zielsprachen. Gibt ein Array mit einem Ergebnis pro Zielsprache zurück.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$results = $engine->batchLocalizeText('Hello, world!', [
'sourceLocale' => 'en',
'targetLocales' => ['es', 'fr', 'de'],
]);
print_r($results);
// Ausgabe: ["¡Hola, mundo!", "Bonjour le monde!", "Hallo, Welt!"]
Chat-Übersetzung
Übersetze Chat-Nachrichten unter Beibehaltung der Sprechernamen. Jede Nachricht muss sowohl "name"- als auch "text"-Felder haben.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$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',
]);
foreach ($translated as $message) {
echo $message['name'] . ': ' . $message['text'] . "\n";
}
// Output:
// Alice: Hallo, wie geht es dir?
// Bob: Mir geht es gut, danke!
// Alice: Was machst du heute?
Fortschrittsverfolgung
Überwache den Übersetzungsfortschritt mit einem Callback. Nützlich für die Aktualisierung der Benutzeroberfläche während großer Übersetzungsvorgänge.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$largeText = 'This is a very long text that needs translation...';
$result = $engine->localizeText($largeText, [
'sourceLocale' => 'en',
'targetLocale' => 'es',
], function ($progress, $chunk, $processedChunk) {
echo "Translation progress: $progress%\n";
});
// Output:
// Translation progress: 25%
// Translation progress: 50%
// Translation progress: 75%
// Translation progress: 100%
Übersetzungsparameter
Geschwindigkeit vs. Qualitätskontrolle für zeitkritische Anwendungen.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$result = $engine->localizeText('Hello world', [
'sourceLocale' => 'en',
'targetLocale' => 'es',
'fast' => true, // Prioritize speed over quality
]);
echo $result;
// Output: Hola mundo
Konfiguration
Steuere das Batching-Verhalten. Das SDK teilt große Payloads basierend auf Elementanzahl und Wortanzahlbeschränkungen auf.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
'batchSize' => 100, // Max items per API request (default: 50, max: 250)
'idealBatchItemSize' => 1000, // Target word count per batch (default: 500, max: 2500)
]);
$result = $engine->localizeText('Configuration test', [
'sourceLocale' => 'en',
'targetLocale' => 'es',
]);
echo $result;
// Output: Prueba de configuración
Spracherkennung
Erkennt die Sprache eines Textes. Nur verwenden, wenn die Quellsprache unbekannt ist, da die Erkennung zusätzliche Verarbeitungszeit benötigt.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$locale = $engine->recognizeLocale('Bonjour le monde');
echo $locale;
// Output: fr
Verwendung mit automatischer Erkennung:
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
$result = $engine->localizeText('Bonjour le monde', [
'sourceLocale' => null, // Auto-detect
'targetLocale' => 'en',
]);
echo $result;
// Output: Hello world
Laravel-Integration
Verwendung in Laravel-Anwendungen.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use LingoDotDev\Sdk\LingoDotDevEngine;
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]);
}
}
Fehlerbehandlung
Das SDK beinhaltet automatische Wiederholungsversuche bei Netzwerkproblemen. Implementieren Sie anwendungsspezifische Fehlerbehandlung für andere Fehler.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
try {
$result = $engine->localizeText('Hello', [
'sourceLocale' => 'en',
'targetLocale' => 'es',
]);
echo $result;
} catch (Exception $e) {
error_log('Übersetzung fehlgeschlagen: ' . $e->getMessage());
// Fehler angemessen behandeln
}