اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

توجد أكثر من طريقة، وأولهم استخدام ملفات لكل لغة.

عليك أولاً إنشاء ملفات منفصلة لكل لغة تريد دعمها، مثل ar.php للغة العربية و en.php للغة الإنجليزية.

داخل كل ملف لغة، قم بتخزين الترجمات كمصفوفة ترابطية، حيث يكون المفتاح هو النص الأصلي والقيمة هي الترجمة.

للتوضيح:

<?php 
return [
    'Welcome' => 'أهلاً بك',
    'Login' => 'تسجيل الدخول',
];
?>

 

في سكربت PHP الرئيسي، قم بتحميل ملف اللغة المناسب حسب لغة المستخدم، وتستطيع الإعتماد على متغير $_SERVER['HTTP_ACCEPT_LANGUAGE'] لتحديد لغة متصفح المستخدم.

<?php
$lang = isset($_SESSION['lang']) ? $_SESSION['lang'] : 'en';
$translations = require_once "languages/$lang.php";
?>

ثم استخدم المفتاح من المصفوفة لعرض الترجمة المقابلة.

<?php
echo $translations['Welcome']; 
?>

وسيعرض "أهلاً بك" لو كانت لغة المستخدم هي العربية.

الطريقة الثانية الإعتماد على قاعدة البيانات،  بإنشاء جدول في قاعدة البيانات لتخزين الترجمات، ويجب أن يحتوي الجدول على حقول للنص الأصلي، واللغة، والترجمة.

لكن الطريقة الأفضل والإحترافية هي باستخدام مكتبة Gettext الموجودة في PHP، ستعمل على إنشاء ملفات PO (Portable Object) لكل لغة تريد دعمها، حيث تحتوي ملفات PO على النص الأصلي والترجمة.

ثم تحويل ملفات PO إلى ملفات MO (Machine Object) باستخدام الأمر msgfmt، بعد ذلك استخدم دوال Gettext لتحميل الترجمات من ملفات MO وعرضها.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...