الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

PHP, MySql & Arabic Language

بدأه Qswarh في 7 ديسمبر 2010 · 7 رد · 1,764 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

أرجو الإفادة بما هي التعريفات او الإجراءات الواجب مُراعاتها لتصميم نظام يدعم اللغتين العربية والإنجليزية بإستخدام لغة (PHP) وقاعدة البيانات (MySql)، وذلك من حيث نوع الترميز عند إنشاء قاعدة البيانات والدوال والتعريفات التي يجب إدراجها في بداية النظام أو ملفات الـ (PHP).

وما هي أفضل طريقة لتعريف أسماء قوائم النظام باللغتين، هل اعتمد طريقة حفظ الإسم العربي ومُقابله الإسم الإنجليزي في جدول (Table) او هناك طريقة أفضل يُنصح بها؟

وجزاكم الله خير

#3

إلى الآن لم يوجد حل جذري للمشكلة و لكن هناك العديد من الطرق و الوسائل المتشعبة لحل الموضوع و أنا أنصحك باشتراء هذا الكتاب و على مسؤليتي الخاصة حيث سيشرح لك كيفية تطوير التطبيقات بالـphp , mysql باللغة العربية لمؤلفه خالد شمعة واسم الكتاب php و اللغة العربية بحيث يغوص بك إلى عمق المشكلة و هو بالمناسبة كتاب صغير لا يتجاوز 100 صفحة .

موقع المؤلفرابط شراء الكتاب من دار شعاع

#4

جزاك الله خير اخي يحي

المشكلة اني ما اعرف أقرأ كتب الحاسب الآلي باللغة العربية فقد تعودت على اللغة الإنجليزية

حسب معرفتي فإن البعض يستخدم طريقة الجدول والبعض الآخر يُنشي صفحة خاصة للعربي وأخرى للإنجليزي

بالنسبة لطريقة الجدول فهي أسهل واكثر مرونة كما انك تستطيع إضافة العديد من اللغات بسهولة

المشكلة أني جديد على لغة PHP وبالتالي لستُ ملم بإمكانياتها واخشى ان أبدأ ثم اتورط لاحقاً ولذا فضلت سؤال أهل الخبرة اولاً

اشكرك على المشاركة والمساعدة

#5

السلام عليكم و رحمة الله و بركاته

الطريقة الاكثر عالمية و انتظاماً هى باستخدام gettext و لكنها احترافية نوعاً ما ففى البداية ما من داعى للدخول فيها و لكن يمكنك بداية تعلمها و المقالات منتشرة على الانترنت و لكن ابحث بالمقالات الانجليزية

و لكن هناك طرق اخرى و متعددة هناك من يستخدم Array مثلا يكون الـ key عبارة عن مقتاح للنص الذى تريده و القيمة هى معناها فى لغة معينة و كل لغة لها ملف معين و يتم استدعاء الملف تبعا للغة المراده مثلا :

English.php
<?php
$lang['hello'] = 'hello';
?>

Arabic.php
<?php
$lang['hello'] = 'السلام عليكم';
?>

espanol.php
<?php
$lang['hello'] = 'hola';
?>

francais.php
<?php
$lang['hello'] = 'salut';
?>

و عند الاستخدام اما ان تكتب اسم المصفوفة بالـ key مثلا echo $lang['hello'] او للسهولة تنشئ دالة تكتب لك القيمة بمجرد كتابة الـ key مثل :

<?php
function echoMe($key){
echo $lang[$key];
}
?>

ليست هذه هى الطريقة الوحيدة بل هناك من يستخدم قاعدة البيانات فى حفظ نفس الكلمات بعددة لغات مثل سكريبت VB للمنتديات المشهور ، ايضا هناك من يستخدم ملفات ini و التى تكون صيغتها مثل :

francais.ini
;this Is a Comment
hello=salut

بدلا من
francais.php
<?php
$lang['hello'] = 'salut';
?>

هناك ايضا من يستخدمون Constants بدلا من Array ، الحلول لن تنتهى مع PHP و هناك موقع سيسهل عليك هذه الاشياء من ناحية التنظيم و الادراة و يمكنك من دعوة اشخاص للترجمة معك و دعم عدة طرق للترجمة و مجانى

يمكنك تفقده :

http://mygengo.com/string

I don't care how you code , i have my own style and i like it

#7

شكرا جزيلا للإخوة SamDev والفيل الطائر ففي إجاباتكم الكفاية

وشكر خاص للأخ على التفصيل والكود والرابط.

من الطرق التي كنا نستخدمها هي طريقة قاعدة البيانات حيث يتم إنشاء جدول ( Table) له مفتاح وكل حقل يُستخدم لحفظ كلمة لغة.

#8

تستعرض الصفحة مجموعة من الإجابات والحلول المتعلقة بالعديد من الأسئلة الشائعة والمتكررة والتي كثيرا ما تردني حول قضايا متنوعة تختص بترميز النصوص العربية باستخدام مجموعة المحارف الدولية UTF-8 في مفاصل متعددة من بيئة تطوير تطبيقات الويب باستخدام لغة PHP وقاعدة MySQL للبيانات. لذا أحببت أن أجمعها معا في صفحة واحدة تخدم كمرجع أحيل إليه السائلين من جهة، وينشر المعلومة للجميع من جهة أخرى. وأتمنى في نهاية المطاف أن يكون هذا الاجتهاد مفيدا، فإن أصبت فأعينوني بنشرها وإن أخطأت فقوموني وصححوا لي معلوماتي. يمكنكم زيارة هذه الصفحة بالنقر على الرباط التالي:

http://www.ar-php.org/faq-php-arabic.html

مواضيع مشابهة