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

شرح لعمل موقع متعدد الغات ,,,,مشكلة بسيطة

بدأه fatmaali في 30 مايو 2013 · 2 رد · 488 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخوانى الافاضل

 

بحثت كثيرا عنطريقة عمل موقع متعدد الغات لكنى لم اجد غير الذى يسمح بتغير الصفحات فقط ولكن لنفرض ان كان للموقع لوحة تحكم بها مدخلات مثل مثلا اخبار

 

وطبعا اذا الموقع اتغير يجب ان تتغير الاخبار من العربي للغه الاخرى فكيف يكون ذلك

 

يعنى مثلا كيف تزيد حقول البرمجة على حسب الغات المضافة بالموقع

 

لنفرض مثلا عندنا 3 لغات

 

وعندنا جدول اخبار

 

كيف تلقائي تزيد الحقول الخاصة بالاخبار  مثلا اسم الخبر وتفاصيل الخبر يجب ان تتحول من العربي الى لغه اخرى كيف يكون ذلك

#2

- أسهل الطرق هي إنشاء نفس الجداول مرة أخرى للغة لحفظ البيانات الجديدة باللغة المستخدمة و عند تغيير لغة الموقع يتم تغيير الجداول التي سيتم جلب البيانات منها على حسب اللغة .

- أو إنشاء نفس الحقول لكل لغة داخل نفس الجدول ويتم تغيير الحقول التي يتم جلبها عند الإستعلام على حسب اللغة .

1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

بالنسبة للغة الواجهة فيمكنك استخدام أحد أدوات التعريب وتعدد اللغات i18n مثل gettext، استخدامها بسيط مع php، انظر لهذا الشرح هنا استخدام GNU Gettext في لغة PHP.

 

بالنسبة لتصميم الجدوال، أنشئ جدول عادي وأضف حقل للغة يشير لجدول للغات ومعلوماتها، كي لايضاف خبر مثلاً للغة غير مدعومة، واجعل معرف الخبر أو المقال primary key: المعرف مع رقم اللغة.

create table i18n (
 language char(2) primary key
);

create table news (
 id int unsigned not null,
 language char(2) not null,
 news text not null,
 foreign key(language) references i18n(language),
 primary key(id, language)
);

mysql> insert into i18n values('ar');
mysql> insert into i18n values('en');
mysql> insert into news values(1, 'ar', 'AAAA');
mysql> insert into news values(1, 'en', 'BBBB');
mysql> select * from news where id = 1 and language = 'ar';
+----+----------+------+
| id | language | news |
+----+----------+------+
|  1 | ar       | AAAA |
+----+----------+------+
mysql> select * from news where id = 1 and language = 'en';
+----+----------+------+
| id | language | news |
+----+----------+------+
|  1 | en       | BBBB |
+----+----------+------+
mysql>

تم تعديل هذه المشاركة بواسطة Mr.B في 30 مايو 2013 في 07:37

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…