عولمة الصفحات النموذجية (تحديث)

يعرض 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/myfile_ar.php):

  <?php
  return [
    'uploading' => 'تحميل آخر إصدار',
    'whatsnew' => 'جديد الموقع'
  ];

اللغة الانكليزية (lang/myfile_en.php):

  <?php
  return [
    'uploading' => 'Upload the latest version',
    'whatsnew' => 'What\'s new'
  ];

يجب ان يتم نداء السلاسل المناسبة لتلك الأمثلة بإضافة سابقة «myfile» ليتم تفسيرها بشكل صحيح، فنكتب مثلاً <:myfile:uploading:> et <:myfile:whatsnew:>

كتابة ملفات اللغات
— كل سطر يجب ان ينتهي بفاصلة لكنها ليست ضرورية في السطر الأخير
— في اللغات اللاتينية يجب تحييد الفاصلة العليا (') بوضع خط مائل معاكس (\) قبلها مثل ما يظهر المثال الإنكليزي أعلاه
— يمكن عدم تحييد الفاصلة العليا اذا وضعنا الص ضمن علامتي اقتباس مفردة
— يجب ان تكون سلاسل اللغة ثابتة. فليس من الممكن انتاجها بأوامر PHP

ملفات اللغات الشخصية

يمكن إنشاء ملفات لغات شخصية إذا اردنا استخدام نصوص لا تأتي في ملفات اللغات الموزعة مع 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 وخاصة الكتابة الكاملة: https://programmer.spip.net/Syntaxe-complete-des-balises-de-langue

لمحة تاريخية

:

ملفات اللغة

يذكر انه في الإصدارات السابقة للإصدار ٤٫١ كان ملف اللغة يكتب كالتالي:

<?php
$GLOBALS[$GLOBALS['idx_lang']] = [
	'cle' => 'قيمة',
	'cle2' => 'قيمة٢',
	// ...
];

هذه الكتابة باستخدام العامل الشامل (GLOBALS$) ستصبح قديمة (deprecated) في الإصدار ٤٫٤ وسيتم إلغاؤها في الإصدار ٥.

حلول تاريخية قديمة

 صفحة نموذجية لكل لغة (تتطلب ملحق "squelettes_par_rubrique"): وهو حل معقد ويتطلب الكثير من الصيانة خاصة انه لا ينفع للاستخدام البسيط.
 الكتل متعددة اللغات: هذه الكتل التي تحدد بعلامة <multi> مفيدة جداً في التحرير كعرض عنوان مقال بعدة لغات مثلاً او عرض كلام صور بلغات مختلفة ولكنها يستحسن عدم استخدامها في البنية.

مؤلف George نُشر في: تم التحديث: 02/09/26

الترجمات: عربي, English, français, Português