مجموعة أدوات تطوير PHP
الترجمة بالذكاء الاصطناعي مع PHP و Lingo.dev
مقدمة
تضيف مكتبة Lingo.dev PHP ترجمة فورية مدعومة بالذكاء الاصطناعي إلى تطبيقات PHP ومشاريع Laravel. تتعامل المكتبة مع المحتوى الديناميكي مثل رسائل الدردشة وتعليقات المستخدمين والبيانات المباشرة التي تحتاج إلى ترجمة فورية.
على عكس ترجمة الملفات الثابتة باستخدام واجهة سطر أوامر Lingo.dev، تعالج المكتبة المحتوى عند الطلب، مما يجعلها مثالية لتطبيقات الدردشة وعملاء البريد الإلكتروني وأدوات وسائل التواصل الاجتماعي حيث يتغير المحتوى باستمرار.
التثبيت
composer require lingodotdev/sdk
الإعداد الأساسي
تتطلب المكتبة مفتاح API من Lingo.dev.
<?php
require 'vendor/autoload.php';
use LingoDotDev\Sdk\LingoDotDevEngine;
$engine = new LingoDotDevEngine([
'apiKey' => $_ENV['LINGODOTDEV_API_KEY'],
]);
ترجمة النصوص
ترجمة سلاسل نصية بسيطة إلى لغة الهدف.
<?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;
// النتيجة: ¡Hola, mundo!
ترجمة الكائنات
ترجمة المصفوفات المتداخلة مع الحفاظ على البنية. تعالج المكتبة جميع القيم النصية بشكل متكرر.
<?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);
// النتيجة: مصفوفة بالترجمات الفرنسية مع الحفاظ على البنية
الترجمة الجماعية إلى لغات متعددة
ترجمة المحتوى إلى لغات هدف متعددة في استدعاء واحد. تعيد مصفوفة تحتوي على نتيجة واحدة لكل لغة مستهدفة.
<?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);
// النتيجة: ["¡Hola, mundo!", "Bonjour le monde!", "Hallo, Welt!"]
ترجمة الدردشة
ترجمة رسائل الدردشة مع الحفاظ على أسماء المتحدثين. يجب أن تحتوي كل رسالة على حقلي "name" و"text".
<?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?
تتبع التقدم
مراقبة تقدم الترجمة باستخدام دالة رد الاتصال. مفيدة لتحديث واجهة المستخدم أثناء عمليات الترجمة الكبيرة.
<?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%
معلمات الترجمة
التحكم في السرعة مقابل الجودة للتطبيقات الحساسة للوقت.
<?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
الإعدادات
التحكم في سلوك التجميع. يقوم SDK بتقسيم البيانات الكبيرة بناءً على قيود عدد العناصر وعدد الكلمات.
<?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
اكتشاف اللغة
اكتشاف لغة سلسلة نصية. استخدم هذه الميزة فقط عندما تكون لغة المصدر غير معروفة، حيث أن الاكتشاف يضيف وقتًا للمعالجة.
<?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
استخدام مع الاكتشاف التلقائي:
<?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
تكامل لارافيل
استخدام في تطبيقات لارافيل.
<?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]);
}
}
معالجة الأخطاء
تتضمن مجموعة أدوات التطوير (SDK) إعادة المحاولات التلقائية لمشاكل الشبكة. قم بتنفيذ معالجة الأخطاء على مستوى التطبيق للإخفاقات الأخرى.
<?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('Translation failed: ' . $e->getMessage());
// Handle error appropriately
}
تتضمن مجموعة أدوات التطوير (SDK) إعادة المحاولات التلقائية لمشاكل الشبكة. قم بتنفيذ معالجة الأخطاء على مستوى التطبيق للإخفاقات الأخرى.
<?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('Translation failed: ' . $e->getMessage());
// Handle error appropriately
}