يعرض SPIP بتكوينه عناصر الواجهة (التواريخ وأسماء الأزرار الخ) باللغة التي يختارها المستخدمون.
إنشاء صفحات نموذجية متعددة اللغات
لدى إنشاء صفحة نموذجية متعددة اللغات، يصبح من المحتم استخدام سلاسل اللغة لكي يتم عرض محتوى الصفحة باللغة المطلوبة.
ويقدم SPIP السلاسل الأكثر استخداماً (مثل «خريطة الموقع» و«الرد على هذا المقال» الخ).
ويفصل هذا المقال كيفية إضافة سلاسل نصوص جديدة حسب حاجة المستخدم.
إضافة الى ذلك، يسهل استخدام سلاسل اللغة صيانة الصفحات النموذجية (عندما نقوم بتعديل سلسلة يتم عديل كل الصفحات التي تحتويها تلقائياً).
استخدام ملفات اللغات
إنشاء ملف لغة
مهما كانت البنية المطبقة على الموقع (قسم أساسي لكل لغة اما غير ذلك) يكفي إدخال «سلسلة لغة» هكذا <:سلسلة لغة:>
فيقوم SPIP بجلب النص المترجم المناسب لهذه السلسلة في احد ملفات اللغات التي تأتي مع SPIP او في احد ملفات local_xx.php (حيث xx هو رمز اللغة) والتي نكون قد أنشأناها.
يتم استخدام رمز اللغة xx من معايير مقياس ISO. مثلاً يكون رمز اللغة العربية «ar».
يدعم SPIP أيضاً التنوعات المناطقية للغة الواحدة مثلاً «ar_sy» للعربية السورية.
على سبيل المثال، نريد عرض قسم موسيقى في موقعنا
<h4>موسيقى</h4>
للاستفادة من تعدد اللغات نستبدل كلمة «موسيقى» بسلسلة لغة
<h4><:music:></h4>
وحسب اللغة النشطة، سيتم عرض السلسلة <:music:>
:
— بالعربية هكذا «موسيقى»
— بالإنكليزية هكذا «Music»
— باليابانية هكذا «音楽»
الخ
يجب إذاً إنشاء عدد من ملفات اللغات يعادل عدد اللغات المستخدمة في الموقع. في المثال السابق يتم إنشاء ملفات lang/local_ar.php
وlang/local_en.php
وlang/local_ja.php
بنية ملف لغة
يتم وضع ملف اللغة في مجلد lang
تحتوي ملفات اللغات على الترجمات المختلفة المستخدمة في الموقع. لأنها ملفات بتنسيق PHP وينتج عن كل منها جدول يقابل كل متغير لغة النص المناسب لكل لغة.
تحذير:
لا يجب ان تحتوي أسماء ملفات اللغات على رمز «_
» («underscore») الا اذا استخدم ليفصل بين اسم الملف ورمز اللغة التي يحتويها (ar، en ...). مثلاً يمكن إنشاء ملف «myfile_ar.php» وليس «my_file_ar.php».
وعلى سبيل المثال، تحتوي تلك الملفات
اللغة العربية (lang/my_file_ar.php):
<?php
return [
'uploading' => 'تحميل آخر إصدار',
'whatsnew' => 'جديد الموقع'
];
اللغة الانكليزية (lang/my_file_en.php):
<?php
return [
'uploading' => 'Upload the latest version',
'whatsnew' => 'What\'s new'
];
كتابة ملفات اللغات
— كل سطر يجب ان ينتهس بفاصلة لكنها ليست ضرورية في السطر الأخير
— في اللغات اللاتينية يجب تحييد الفاصلة العليا ('
) بوضع خط مائل معاكس (\) قبلها مثل ما يظهر المثال الانكليزي أعلاه
— يمكن عدم تحييد الفاصلة العليا اذا وضعنا الص ضمن علامتي اقتباس مفردة ’
ملفات اللغات الشخصية
يمكن إنشاء ملفات لغات شخصية إذا اردنا استخدام نصوص لا تأتي في ملفات اللغات الموزعة مع SPIP.
هذه الملفات تشبه ملفات public_xx.php التي تأتي مع SPIP ويتم وضعها في مجلد squelettes/lang (يتم إنشاءه لذلك) ويتم تسميتها local_xx.php حيث xx هو رمز اللغة.
— local_ar.php للغة العربية،
— local_en.php للانكليزية،
— ...
اما الجزء الذي يجب تغذيته في الملف فيتكون من عدة اسطر تحديد لمتغييرات اللغة على الشكل التالي:
'code' => 'النص الذي سيعرض',
الملحقات وملفات اللغات
العديد من الوظائف تؤمنها الملحقات منها ملحقات نواة SPIP مثل الريشة او الإحصاءات ومنها ملحقات يثبتها المشرف على الموقع لإدخال وظائف محددة يحتاجها. كل تلك الملحاقات تأتي مع ملفات لغات، منها ما خو مترجم بالعديد من اللغات ومنها ما هو مترجم بلغات أقل.
للمزيد
للتعرف اكثر على سلاسل اللغات يمكن زيارة https://programmer.spip.net/-Linguistic-elements-
لمحة تاريخية:
يذكر انه في الإصدارات السابقة للإصدار ٤٫١ كان ملف اللغة يكتب كالتالي:
<?php
$GLOBALS[$GLOBALS['idx_lang']] = [
'key' => 'value',
'key2' => 'value2',
// ...
];
هذه الكتابة باستخدام العامل الشامل (GLOBALS$) ستصبح قديمة (deprecated) في الإصدار ٥ وسيتم إلغاؤها في الإصدار ٦.
حلول تاريخية قديمة
– صفحة نموذجية لكل لغة (تتطلب ملحق "squelettes_par_rubrique"): وهو حل معقد ويتطلب الكثير من الصيانة خاصة انه لا ينفع للاستخدام البسيط.
– الكتل متعددة اللغات: هذه الكتل التي تحدد بعلامة <multi>
مفيدة جداً في التحرير كعرض عنوان مقال بعدة لغات مثلاً او عرض كلام صور بلغات مختلفة ولكنها لا تنفع في التصميم متعدد اللغات.