الفرق بين المراجعتين لصفحة: «Cordova/cordova plugin globalization»

من موسوعة حسوب
لا ملخص تعديل
ط تدقيق
 
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:إضافة العولمة في كوردوفا}}</noinclude>
<noinclude>{{DISPLAYTITLE:إضافة العولمة في كوردوفا}}</noinclude>
[[تصنيف: Cordova]]
[[تصنيف: Cordova]]
[[تصنيف: Plugin]]
تمكّن إضافة العولمة (cordova-plugin-globalization) من الحصول على معلومات حول الإعدادات المحلية واللغوية والزمنية للمستخدم.  
تمكّن إضافة العولمة (cordova-plugin-globalization) من الحصول على معلومات حول الإعدادات المحلية واللغوية والزمنية للمستخدم. لاحظ الفرق بين الإعدادات المحلية (locale) وبين اللغة، فالإعدادات المحلية تتحكم في كيفية عرض الأرقام والتواريخ والأوقات في منطقة معيّنةٍ، بينما تحدد "اللغة" لغةَ النصوص، بصرف النظر عن الإعدادات المحلية. يستخدم المطورون في كثير من الأحيان الإعدادات المحلية لضبط كلا الإعدادين، ولكن لا يوجد سبب يمنع المستخدم من تعيين اللغة إلى "'''العربية'''"، مع تعيين الإعدادات المحلية إلى "'''الفرنسية'''"، بحيث يتم عرض النص باللغة العربية، ولكن يتم عرض التواريخ والأوقات وغيرها كما تُعرض في فرنسا. للأسف، لا تميز معظم منصات الجوّال حاليًا بين هذه الإعدادات.


تعرّف هذه الإضافة كائنًا عامًّا <code>navigator.globalization</code>.  
لاحظ الفرق بين الإعدادات المحلية (locale) وبين اللغة: الإعدادات المحلية تتحكم في كيفية عرض الأرقام والتواريخ والأوقات في منطقة معيّنةٍ، بينما تحدد "اللغة" لغةَ النصوص، بصرف النظر عن الإعدادات المحلية. يستخدم المطورون في كثير من الأحيان الإعدادات المحلية لضبط كلا الإعدادين، ولكن لا يوجد سبب يمنع المستخدم من تعيين اللغة إلى "'''العربية'''"، مع تعيين الإعدادات المحلية إلى "'''الفرنسية'''"، بحيث يتم عرض النص باللغة العربية، ولكن مع عرض التواريخ والأوقات وغيرها كما تُعرض في فرنسا. للأسف، لا تميز معظم منصات الجوّال حاليًا بين هذه الإعدادات.


على الرغم من أنّ هذا الكائن موجود في النطاق العام (global scope)، إلا أنه لن يكون متوفرًا إلا بعد إطلاق الحدث <code>[[Cordova/events#deviceready|deviceready]]</code>.  
تعرّف هذه الإضافة كائنًا عامًّا <code>navigator.globalization</code>. وعلى الرغم من أنّ هذا الكائن موجود في النطاق العام (global scope)، إلا أنه لن يكون متوفرًا إلا بعد إطلاق الحدث <code>[[Cordova/events#deviceready|deviceready]]</code>. <syntaxhighlight lang="javascript">document.addEventListener("deviceready", onDeviceReady, false);
<syntaxhighlight lang="javascript">document.addEventListener("deviceready", onDeviceReady, false);
     function onDeviceReady() {
     function onDeviceReady() {
         console.log(navigator.globalization);
         console.log(navigator.globalization);
     }‎</syntaxhighlight>
     }‎</syntaxhighlight>
== إشعار ==  
== ملاحظة متعلقة بالإهمال ==  


مع دعم [https://www.ecma-international.org/ecma-402/1.0/ واجهة العولمة البرمجية ECMA] على أجهزة iOS و أندرويد وويندوز، لم تعد هذه الإضافة ضروريةً بعد الآن. الانتقال من هذه الإضافة إلى هذه الواجهة البرمجية مُوضح في هذا [https://cordova.apache.org/news/2017/11/20/migrate-from-cordova-globalization-plugin.html المقال].  
مع دعم [https://www.ecma-international.org/ecma-402/1.0/ واجهة العولمة البرمجية من ECMA] على أجهزة iOS و أندرويد وويندوز، لم تعد هذه الإضافة ضروريةً بعد الآن. الانتقال من هذه الإضافة إلى تلك الواجهة البرمجية مُوضح في هذا [https://cordova.apache.org/news/2017/11/20/migrate-from-cordova-globalization-plugin.html المقال].  
== التثبيت ==  
== التثبيت ==
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-globalization‎</syntaxhighlight>  
يمكن تثبيت هذه الأضافة عبر الأمر:<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-globalization‎</syntaxhighlight>  
==الكائنات==  
==الكائنات==  
*<code>GlobalizationError</code>  
*<code>GlobalizationError</code>  
سطر 36: سطر 34:
<syntaxhighlight lang="javascript">navigator.globalization.getPreferredLanguage(successCallback, errorCallback);‎</syntaxhighlight>
<syntaxhighlight lang="javascript">navigator.globalization.getPreferredLanguage(successCallback, errorCallback);‎</syntaxhighlight>


===الوصف===  
=== الوصف ===
 
يُعيد هذا التابع وسم معرف اللغة وفق المعيار BCP-47، ويمرره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعاملٍ. يجب أن يملك هذا الكائن الخاصية <code>value</code> ذات قيمة نصية (<code>String</code>).  
يُعيد هذا التابع وسم معرف اللغة وفق المعيار BCP-47، ويمرره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعاملٍ. يجب أن يتوفر هذا الكائن على خاصية <code>value</code> ذات قيمة نصية (<code>String</code>).  


إن حدث خطأ أثناء محاولة الحصول على اللغة، فستُنفّذ الدالة <code>errorCallback</code> مع تمرير الكائن <code>GlobalizationError</code> إليها كمعاملٍ. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  
إن حدث خطأ أثناء محاولة الحصول على اللغة، فستُنفّذ الدالة <code>errorCallback</code> مع تمرير الكائن <code>GlobalizationError</code> إليها كمعاملٍ. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  
سطر 52: سطر 49:
=== مثال ===  
=== مثال ===  


عند ضبط لغة المتصفح إلى القيمة <code>en-US</code>، فستعرض الشيفرة البرمجية التالية مربع حوارٍ منبثقٍ يحتوي النص <code>language: en-US</code>:  
عند ضبط لغة المتصفح إلى القيمة <code>en-US</code>، فستعرضُ الشيفرةُ البرمجية التالية مربع حوارٍ منبثقٍ يحتوي النص <code>language: en-US</code>:  
<syntaxhighlight lang="javascript">navigator.globalization.getPreferredLanguage(
<syntaxhighlight lang="javascript">navigator.globalization.getPreferredLanguage(
         function (language) {alert('language: ' + language.value + '\n');},
         function (language) {alert('language: ' + language.value + '\n');},
سطر 58: سطر 55:
     );‎</syntaxhighlight>  
     );‎</syntaxhighlight>  
===ملاحظات خاصة بمنصة أندرويد ===  
===ملاحظات خاصة بمنصة أندرويد ===  
* في منصة أندرويد، يُعاد رمز اللغة، وهوم رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمزٌ يمثل البلد وفق المعيار ISO 3166-مفصولان بشرطةٍ. مثلًا: "<code>en</code>" و "<code>en-US</code>" و "<code>US</code>"  
* في منصة أندرويد، يُعاد رمز اللغة، وهوم رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمزٌ يمثل البلد وفق المعيار ISO 3166-1 مفصولان بشرطةٍ مثل: "<code>en</code>" و "<code>en-US</code>" و "<code>US</code>"  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
* في هذه المنصة، يُعاد رمز اللغة، وهو رمزٌ مكون من حرفين يمثلان اللغة وفق مع المعيار ISO 639-1، ورمز الدولة وفق معيار ISO 3166-1 الذي يمثل المتغيرات المحلية المقابلة للإعدادات اللغوية، مفصولة بشرطة.  
* في هذه المنصة، يُعاد رمز اللغة، وهو رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمز الدولة وفق المعيار ISO 3166-1 الذي يمثل المتغيرات المحلية المقابلة للإعدادات اللغوية، مفصولان بشرطة.  
* لاحظ أنّ المتغير الإقليمي (regional variant) هو أحد خصائص إعداد "اللغة"، ولا يتم تحديده من قبل الإعداد المنفصل "البلد/المنطقة" (Country/Region) في منصة Windows Phone.  
* لاحظ أنّ المتغير الإقليمي (regional variant) هو أحد خصائص إعداد "اللغة"، ولا يتم تحديده من قبل الإعداد المنفصل "البلد/المنطقة" (Country/Region) في منصة Windows Phone.  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* في هذه المنصة، يُعاد رمز اللغة، وهو رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمز الدولة وفق معيار ISO 3166-1 الذي يمثل المتغيرات المحلية المقابلة للإعدادات اللغوية، مفصولة بشرطة.  
* في هذه المنصة، يُعاد رمز اللغة، وهو رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمز الدولة وفق معيار ISO 3166-1 الذي يمثل المتغيرات المحلية المقابلة للإعدادات اللغوية، مفصولان بشرطة.  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
* في المتصفحات يتم الحصول على النتيجة من التابع <code>getLocaleName</code>  
* في المتصفحات، يتم الحصول على النتيجة من التابع <code>getLocaleName</code>.
==<code>navigator.globalization.getLocaleName</code>==  
==<code>navigator.globalization.getLocaleName</code>==  


يعيد هذا التابع الوسم الذي يمثل الإعدادات المحلية الحالية للعميل وفق المعيار BCP 47.  
يعيد هذا التابع الوسم الذي يمثل الإعدادات المحلية الحالية للعميل وفق المعيار BCP 47.  
<syntaxhighlight lang="javascript">navigator.globalization.getLocaleName(successCallback, errorCallback);‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">navigator.globalization.getLocaleName(successCallback, errorCallback);‎</syntaxhighlight>
===الوصف===


يعيد هذا التابع سلسلة نصية تمثل مُعرّف الإعدادات المحلية (locale identifier) وفق المعيار BCP 47، ثم يمررها إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>value</code> ذات قيمة نصية (<code>String</code>). الوسم المحلي يتكون من رمزٍ مكونٍ من حرفين صغيرين يمثلان اللغة، ورمز مكونٌ من حرفين كبيرين يمثلان البلد، ورمز متغير (variant code) (غير محدد)، مفصولة بشرطة.  
=== الوصف ===
يعيد هذا التابع سلسلة نصية تمثل مُعرّف الإعدادات المحلية (locale identifier) وفق المعيار BCP 47، ثم يمررها إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>value</code> ذات قيمة نصية (<code>String</code>). الوسم المحلي يتكون من رمزٍ مكونٍ من حرفين صغيرين يمثلان اللغة، ورمز مكونٌ من حرفين كبيرين يمثلان البلد، ورمز متغير (variant code) (غير محدد)، مفصولان بشرطة.  


إن حدث هناك خطأ أثناء محاولة الحصول على الإعدادات المحلية، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  
إن حدث هناك خطأ أثناء محاولة الحصول على الإعدادات المحلية، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  
سطر 92: سطر 89:
     );‎</syntaxhighlight>  
     );‎</syntaxhighlight>  
===ملاحظات خاصة بمنصة أندرويد ===  
===ملاحظات خاصة بمنصة أندرويد ===  
* لا تميز Java بين الإعدادين "<code>langauge</code>" و "<code>locale</code>"، لذلك فإنّ هذا التابع مكافئٌ للتابع <code>navigator.globalization.getPreferredLanguage()‎</code>.  
* لا تميز لغة Java بين الإعدادين "<code>langauge</code>" و "<code>locale</code>"، لذلك فإنّ هذا التابع مكافئٌ للتابع <code>navigator.globalization.getPreferredLanguage()‎</code>.  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
* في هذه المنصة، يُعاد رمز اللغة وفق المعيار ISO 639-1، والمكون من حرفين، ورمز الدولة وفق المعيار ISO 3166-1، والموافق للمتغير الإقليمي (Regional variant) المقابل لإعداد "التنسيق الإقليمي" (Regional Format)، مفصولة بشرطةٍ.  
* في هذه المنصة، يُعاد رمز اللغة وفق المعيار ISO 639-1، والمكون من حرفين، إضافة إلى رمز الدولة وفق المعيار ISO 3166-1، والموافق للمتغير الإقليمي (Regional variant) المقابل لإعداد "التنسيق الإقليمي" (Regional Format)، مفصولان بشرطةٍ.  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* يمكن تغيير إعدادات اللغة من الموضعين <code>Control Panel -> Clock و Language and Region -> Region -> Formats -> Format</code> و <code>Settings -> Region -> Regional Format</code> على منصة Windows Phone 8.1.
* يمكن تغيير إعدادات اللغة من الموضعين <code>Control Panel -> Clock و Language and Region -> Region -> Formats -> Format</code> و <code>Settings -> Region -> Regional Format</code> على منصة Windows Phone 8.1.
سطر 102: سطر 99:
==<code>navigator.globalization.dateToString</code>==  
==<code>navigator.globalization.dateToString</code>==  


يعيد هذا التابع تاريخًا (date) على هيئة سلسلة نصيةٍ مُنسّقةٍ وفقًا للإعدادات المحلية للعميل ومنطقته الزمنية.  
يعيد هذا التابع تاريخًا (date) على شكل سلسلة نصيةٍ مُنسّقةٍ وفقًا للإعدادات المحلية للعميل ومنطقته الزمنية.  
<syntaxhighlight lang="javascript">navigator.globalization.dateToString(date, successCallback, errorCallback, options);‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">navigator.globalization.dateToString(date, successCallback, errorCallback, options);‎</syntaxhighlight>
===الوصف===


=== الوصف ===
يعيد هذا التابع سلسلة نصية تحتوي التاريخ المنسق عبر خاصيةٍ <code>value</code> يمكن الوصول إليها من الكائن الذي مُرِّر كمُعامل إلى الدالة <code>successCallback</code>.  
يعيد هذا التابع سلسلة نصية تحتوي التاريخ المنسق عبر خاصيةٍ <code>value</code> يمكن الوصول إليها من الكائن الذي مُرِّر كمُعامل إلى الدالة <code>successCallback</code>.  


سطر 115: سطر 112:
<syntaxhighlight lang="javascript">{formatLength:'short', selector:'date and time'}‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">{formatLength:'short', selector:'date and time'}‎</syntaxhighlight>  


يمكن أن تساوي قيمة الخيار <code>options.formatLength</code> إما <code>short</code> أو <code>medium</code> أو <code>long</code> أو <code>full</code>.  
يمكن أن تساوي قيمة الخيار <code>options.formatLength</code> إمَّا <code>short</code> أو <code>medium</code> أو <code>long</code> أو <code>full</code>.  


ويمكن أن تساوي قيمةُ <code>options.selector</code> إما <code>date</code> أو <code>time</code> أو <code>date and time</code>.  
ويمكن أن تساوي قيمةُ الخيار <code>options.selector</code> إما <code>date</code> أو <code>time</code> أو <code>date and time</code>.  
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*Amazon Fire OS  
*Amazon Fire OS  
سطر 129: سطر 126:
=== مثال ===  
=== مثال ===  


إن ضُبط المتصفّح إلى الإعداد المحلي <code>en_US</code>، فسيُعرض مربع حوارٍ منبثقٍ يحتوي نصا مشابهًا للنص <code>date: 9/25/2012 4:21PM</code> باستخدام الخيارات الافتراضية:  
إن ضُبط المتصفّح إلى الإعداد المحلي <code>en_US</code>، فسيُعرض مربع حوارٍ منبثقٍ يحتوي نصًّا مشابهًا للنص <code>date: 9/25/2012 4:21PM</code> باستخدام الخيارات الافتراضية:  
<syntaxhighlight lang="javascript">navigator.globalization.dateToString(
<syntaxhighlight lang="javascript">navigator.globalization.dateToString(
         new Date(),
         new Date(),
سطر 137: سطر 134:
     );‎</syntaxhighlight>  
     );‎</syntaxhighlight>  
===ملاحظات خاصة بمنصة أندرويد ===  
===ملاحظات خاصة بمنصة أندرويد ===  
* الخيارات <code>formatLength</code> هي مجموعة فرعية من مجموعة اليونيكود [http://unicode.org/reports/tr35/tr35-4.html UTS #35]. يعتمد الخيار الافتراضي <code>short</code> على تنسيق التاريخ المحدد من قبل للمستخدم من الموضع <code>Settings -> System -> Date & time -> Choose date format</code>، والذي يعرض قيمة السنة <code>year</code> على شكل أربعة أرقام فقط، وليس رقمين. وهذا يعني أنه غير متوافقٍ بشكلٍ كاملٍ مع المعيار [http://demo.icu-project.org/icu-bin/locexp?d_=en_US&_=en_US ICU].  
* الخيارات <code>formatLength</code> هي مجموعة فرعية من مجموعة اليونيكود [http://unicode.org/reports/tr35/tr35-4.html UTS #35]. يعتمد الخيار الافتراضي <code>short</code> على تنسيق التاريخ الذي حدده المستخدمُ من الموضع <code>Settings -> System -> Date & time -> Choose date format</code>، والذي يعرض قيمة السنة <code>year</code> على شكل أربعة أرقام فقط، وليس رقمين. وهذا يعني أنه غير متوافقٍ بشكلٍ كاملٍ مع المعيار [http://demo.icu-project.org/icu-bin/locexp?d_=en_US&_=en_US ICU].  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
* لا يدعم الخيار <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code> فقط.  
* لا يدعم الخيار <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* التنسيق الذي يُحدّده الخيار "<code>date and time</code>" هو دائمًا تنسيق كامل للتاريخ (datetime).  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).  
* بناءً على لغة المستخدم، فقد لا تكون القيمة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.  
* بناءً على لغة المستخدم، فقد لا تكون القيمة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* لا يدعم الخيار <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code> فقط.  
* لا يدعم الخيار <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code> فقط.  
* التنسيق الذي يُحدّده الخيار "<code>date and time</code>" هو دائمًا تنسيق كامل للتاريخ (datetime).  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).  
* بناءً على لغة المستخدم، فقد لا تكون القيمة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.  
* بناءً على لغة المستخدم، فقد لا تكون القيمة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
سطر 151: سطر 148:
* لا يدعم المُحدِّد <code>time</code> إلا القيمتين <code>full</code> و <code>short</code> في الخيار <code>formatLength</code>.  
* لا يدعم المُحدِّد <code>time</code> إلا القيمتين <code>full</code> و <code>short</code> في الخيار <code>formatLength</code>.  
=== ملاحظات خاصة بمنصة Firefox ===  
=== ملاحظات خاصة بمنصة Firefox ===  
* لا تُميّز <code>formatLength</code> بين <code>long</code> و <code>full</code>  
* لا يُميّز الخيار <code>formatLength</code> بين <code>long</code> و <code>full</code>.
* هناك طريقة واحدةً فقط لعرض التاريخ (لا يوجد نمطٌ طويل <code>long</code> وآخر كامل <code>full</code>)  
* هناك طريقة واحدةً فقط لعرض التاريخ (لا يوجد نمطٌ طويل <code>long</code> وآخر كامل <code>full</code>).
==navigator.globalization.getCurrencyPattern==  
==<code>navigator.globalization.getCurrencyPattern</code>==  


يعيد هذا التابع سلسلة نصيةً تمثل التنسيق، لأجل تحليل (parse) وتنسيق قيم العملات وفقًا لتفضيلات المستخدم ورمز العملة وفق المعيار ISO 4217.  
يعيد هذا التابع سلسلةً نصيةً تمثل التنسيق الذي سيُستخدم لأجل تحليل (parse) وتنسيق قيم العملات وفقًا لتفضيلات المستخدم ورمز ISO 4217 الخاص بالعملة.  
<syntaxhighlight lang="javascript">navigator.globalization.getCurrencyPattern(currencyCode, successCallback, errorCallback);‎</syntaxhighlight>
<syntaxhighlight lang="javascript">navigator.globalization.getCurrencyPattern(currencyCode, successCallback, errorCallback);‎</syntaxhighlight>


===الوصف===  
=== الوصف ===
 
يُعيد هذا التابع النمط (pattern) ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يحتوي ذلك الكائن على الخاصيات التالية:  
يُعيد هذا التابع النمط (pattern) ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يحتوي ذلك الكائن على الخاصيات التالية:  
* <code>pattern</code>: تمثل هذه الخاصية نمط العملة الذي ستُنسّق العملات وتُحلّل قيمها بناءً عليه. الأنماط تتبع المعيار [http://unicode.org/reports/tr35/tr35-4.html Unicode Technical Standard #35]. (سلسلة نصية)
* <code>pattern</code>: سلسلة نصية تمثل هذه الخاصية نمط العملة الذي ستُنسّق العملات وتُحلّل قيمها بناءً عليه. الأنماط تتبع [http://unicode.org/reports/tr35/tr35-4.html معيار يونيكود التقني #35].  
* <code>code</code>: رمز العملة وفق المعيار ISO 4217 لأجل النمط. (سلسلة نصية)
* <code>code</code>: سلسلة نصية تمثِّل رمز العملة الخاص بالنمط وفق المعيار ISO 4217.  
* <code>fraction</code>: عدد المنازل العشرية التي ستُستخدم عند تحليل البيانات وتنسيقها. (عدد)
* <code>fraction</code>: عدد المنازل العشرية التي ستُستخدم عند تحليل البيانات وتنسيقها.  
* <code>rounding</code>: التقريب الزائد (rounding increment) الذي سيُستخدم عند التحليل والتنسيق. (عدد)
* <code>rounding</code>: عدد يحدِّد التقريب الزائد (rounding increment) الذي سيُستخدم عند التحليل والتنسيق.  
* <code>decimal</code>: الرمز العشري الذي سيُستخدم في التحليل والتنسيق. (سلسلة نصية)
* <code>decimal</code>: سلسلة نصية تمثِّل الرمز العشري الذي سيُستخدم في التحليل والتنسيق.  
* <code>grouping</code>: رمز التجميع (grouping symbol) الذي سيُستخدم في التحليل والتنسيق. (سلسلة نصية)
* <code>grouping</code>: سلسلة نصية تمثِّل رمز التجميع (grouping symbol) الذي سيُستخدَم في التحليل والتنسيق.  


يجب أن يكون المعامل المنفصل <code>currencyCode</code> سلسلة نصية (<code>String</code>) تتضمّن أحد رموز العملة وفق المعيار ISO 4217، على سبيل المثال "USD".  
يجب أن يكون المعامل المنفصل (inbound parameter) ‏<code>currencyCode</code> سلسلةً نصيةً (<code>String</code>) تتضمّن أحد رموز العملة وفق المعيار ISO 4217، على سبيل المثال "<code>USD</code>".  


إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها كائنًا <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.FORMATTING_ERROR</code>.  
إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.FORMATTING_ERROR</code>.  
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*Amazon Fire OS  
*Amazon Fire OS  
سطر 179: سطر 175:
=== مثال ===  
=== مثال ===  


عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، وعند اختيار العملة الأمريكية (الدولار)، فسيعرض هذا المثال مربع حوار منبثق يحتوي نصًا مشابهًا للنتائج التالية:  
عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، وعند اختيار العملة الأمريكية (الدولار)، فسيعرض هذا المثال مربع حوار منبثق يحتوي نصًّا مشابهًا للنتائج التالية:  
<syntaxhighlight lang="javascript">navigator.globalization.getCurrencyPattern(
<syntaxhighlight lang="javascript">navigator.globalization.getCurrencyPattern(
         'USD',
         'USD',
سطر 201: سطر 197:
     grouping: ,‎</syntaxhighlight>  
     grouping: ,‎</syntaxhighlight>  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* لا تدعم ويندوز إلا الخاصيتين "code" و "fraction"  
* لا يدعم ويندوز إلا الخاصيتين "<code>code</code>" و "<code>fraction</code>".
==<code>navigator.globalization.getDateNames</code>==  
==<code>navigator.globalization.getDateNames</code>==  


يُعيد هذا التابع مصفوفة تتألف من أسماء الأشهر أو أيام الأسبوع، بناءً على تفضيلات المستخدم والتقويم الخاص به.  
يُعيد هذا التابع مصفوفةً تتألف من أسماء الأشهر أو أيام الأسبوع، بناءً على تفضيلات المستخدم والتقويم الخاص به.  
<syntaxhighlight lang="javascript">navigator.globalization.getDateNames(successCallback, errorCallback, options);‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">navigator.globalization.getDateNames(successCallback, errorCallback, options);‎</syntaxhighlight>  
===الوصف===  
===الوصف===  


يُعيد هذا التابع مصفوفة من الأسماء ويمررها إلى الدالة <code>successCallback</code> مع إعطائها كائنًا <code>properties</code> كمعامل. يحتوي هذا الكائن على خاصية <code>value</code> تحتوي مصفوفةً من السلاسل النصية. تشتمل المصفوفة على أسماء تبدأ من الشهر الأول في السنة، أو اليوم الأول من الأسبوع، وفقًا للخيار المحدد.  
يُعيد هذا التابع مصفوفةً من الأسماء ويمررها إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يحتوي هذا الكائن على خاصية <code>value</code> تحتوي مصفوفةً من السلاسل النصية. تشتمل المصفوفة على أسماء تبدأ من الشهر الأول في السنة، أو اليوم الأول من الأسبوع، وفقًا للخيار المحدد.  


إن حدث خطأ أثناء محاولة الحصول على الأسماء، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها كائنًا <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  
إن حدث خطأ أثناء محاولة الحصول على الأسماء، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  


المُعامل <code>options</code> اختياري، وقيمه الافتراضية هي:  
المُعامل <code>options</code> اختياري، وقيمه الافتراضية هي:  
سطر 229: سطر 225:
=== مثال ===  
=== مثال ===  


عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، فسيعرض هذا المثال سلسلة من 12 مربع حوارٍ منبثقٍ، واحدًا لكل شهر، مع نص مشابه للسلسلة النصية "<code>month: January</code>":  
عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، فسيعرض هذا المثال سلسلة من 12 مربع حوارٍ منبثقٍ، واحدًا لكل شهر، مع نص مشابهٍ للسلسلة النصية "<code>month: January</code>":  
<syntaxhighlight lang="javascript">navigator.globalization.getDateNames(
<syntaxhighlight lang="javascript">navigator.globalization.getDateNames(
         function (names) {
         function (names) {
سطر 240: سطر 236:
     );‎</syntaxhighlight>  
     );‎</syntaxhighlight>  
=== ملاحظات خاصة بمنصة Firefox ===  
=== ملاحظات خاصة بمنصة Firefox ===  
* تدعم الخاصية <code>options.type</code> القيمة <code>genitive</code>، وهو أمرٌ هام لبعض اللغات.  
* تدعم الخاصية <code>options.type</code> القيمة <code>genitive</code>، وهو أمرٌ مهم لبعض اللغات.  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
* مصفوفة الشهور تحتوي على 13 عنصرًا.  
* مصفوفة الشهور تحتوي على 13 عنصرًا.  
سطر 252: سطر 248:
==<code>navigator.globalization.getDatePattern</code>==  
==<code>navigator.globalization.getDatePattern</code>==  


يُعيد هذا التابع سلسلة نصيةً تمثل النمط (pattern) الذي ستُنسّق التواريخ وتُحلّل على أساسه، ووفقًا لتفضيلات المستخدم.  
يُعيد هذا التابع سلسلةً نصيةً تمثل النمط (pattern) الذي ستُنسّق التواريخ وتُحلّل على أساسه، ووفقًا لتفضيلات المستخدم.  
<syntaxhighlight lang="javascript">navigator.globalization.getDatePattern(successCallback, errorCallback, options);‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">navigator.globalization.getDatePattern(successCallback, errorCallback, options);‎</syntaxhighlight>  
===الوصف===  
===الوصف===  


يُعيد هذا التابع نمطًا ويمرره إلى الدالة <code>successCallback</code>. يحتوي الكائن الذي تم تمريره كمعامل على الخاصيات التالية:  
يُعيد هذا التابع نمطًا ويمرره إلى الدالة <code>successCallback</code>. يحتوي الكائن الذي تم تمريره كمعامل على الخاصيات التالية:  
* <code>pattern</code>: نمط التاريخ والوقت الذي ستُنسّق التواريخ وتُحلل وِفقَه. تتّبع هذه الأنماط [http://unicode.org/reports/tr35/tr35-4.html معيار اليونيكود التقني #35]. (سلسلة نصية)
* <code>pattern</code>: سلسلة نصية تمثِّل نمط التاريخ والوقت الذي ستُنسّق التواريخ وتُحلل وِفقَه. تتّبع هذه الأنماط [http://unicode.org/reports/tr35/tr35-4.html معيار اليونيكود التقني 35#].  
* <code>timezone</code>: الاسم المختصر للمنطقة الزمنية للعميل. (سلسلة نصية)
* <code>timezone</code>: سلسلة نصية تمثِّل الاسم المختصر للمنطقة الزمنية للعميل.  
* <code>iana_timezone</code>: اسم [https://www.iana.org/ IANA] (هيئة تعيين أرقام الإنترنت) الخاص بالمنطقة الزمنية للعميل. (سلسلة نصية)
* <code>iana_timezone</code>: سلسلة نصية تمثِّل اسم [https://www.iana.org/ IANA] (هيئة تعيين أرقام الإنترنت) الخاص بالمنطقة الزمنية للعميل.  
* <code>utc_offset</code>: الاختلاف الحالي بعدد الثواني بين المنطقة الزمنية للعميل، والوقت العالمي المنسق (coordinated universal time). (عدد)
* <code>utc_offset</code>: عدد يحدِّد الاختلاف الحالي بعدد الثواني بين المنطقة الزمنية للعميل، والوقت العالمي المنسق (coordinated universal time).  
* <code>dst_offset</code>: فرق التوقيت الصيفي (daylight saving time) الحالي بالثواني بين المنطقة الزمنية غير الصيفية (non-daylight saving's time) للعميل والمنطقة الزمنية الصيفية (daylight saving's time) للعميل. (عدد)
* <code>dst_offset</code>: عدد يحدِّد فرق التوقيت الصيفي (daylight saving time) الحالي بالثواني بين المنطقة الزمنية غير الصيفية (non-daylight saving's time) والمنطقة الزمنية الصيفية (daylight saving's time) للعميل.  


إن حدث خطأ أثناء محاولة الحصول على النمط، ستُنفذ الدالة <code>errorCallback</code> مع إعطائها كائنًا <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PATTERN_ERROR</code>.  
إن حدث خطأ أثناء محاولة الحصول على النمط، ستُنفذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PATTERN_ERROR</code>.  


المعامل <code>options</code> اختياري، وقيمه الافتراضية هي:  
المعامل <code>options</code> اختياري، وقيمه الافتراضية هي:  
<syntaxhighlight lang="javascript">{formatLength:'short', selector:'date and time'}‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">{formatLength:'short', selector:'date and time'}‎</syntaxhighlight>  


يمكن أن تساوي قيمة الخيار <code>options.formatLength</code> إما <code>short</code> أو <code>medium</code> أو <code>long</code> أو <code>full</code>. كما يمكن أن تساوي قيمة الخيار الآخر <code>options.selector</code> إما <code>date</code> أو <code>time</code> أو <code>date and time</code>.  
يمكن أن تساوي قيمة الخيار <code>options.formatLength</code> إمَّا <code>short</code> أو <code>medium</code> أو <code>long</code> أو <code>full</code>. كما يمكن أن تساوي قيمة الخيار الآخر <code>options.selector</code> إمَّا <code>date</code> أو <code>time</code> أو <code>date and time</code>.  
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*Amazon Fire OS  
*Amazon Fire OS  
سطر 290: سطر 286:
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
* لا يدعم الخيار <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* لا يدعم الخيار <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (datetime).  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).  
* تعيد الخاصية <code>timezone</code> الاسم الكامل للمنطقة الزمنية.  
* تعيد الخاصية <code>timezone</code> الاسم الكامل للمنطقة الزمنية.  
* الخاصية <code>dst_offset</code> غير مدعومة، وتعيد دائمًا القيمة صفر.  
* الخاصية <code>dst_offset</code> غير مدعومة، وتعيد دائمًا القيمة صفر.  
سطر 296: سطر 292:
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* لا تدعم الخاصيةُ <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* لا تدعم الخاصيةُ <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (datetime).  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).  
* تعيد الخاصية <code>timezone</code> الاسم الكامل للمنطقة الزمنية.  
* تعيد الخاصية <code>timezone</code> الاسم الكامل للمنطقة الزمنية.  
* الخاصية <code>iana_timezone</code> غير مدعومة، وتُعيد دائمًا سلسلة نصية فارغة.  
* الخاصية <code>iana_timezone</code> غير مدعومة، وتُعيد دائمًا سلسلة نصية فارغة.  
سطر 303: سطر 299:
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
* الخاصية "<code>pattern</code>" غير مدعومة، وتعيد سلسلة نصية فارغة.  
* الخاصية "<code>pattern</code>" غير مدعومة، وتعيد سلسلة نصية فارغة.  
* Chrome هو المتصفح الوحيد الذي يعيد الخاصية <code>timezone</code>. صيغته هي "منطقة من العالم/مدينة" ("Part of the world/{City}"). المتصفحات الأخرى تعيد سلسلة نصيةً فارغة.  
* Chrome هو المتصفح الوحيد الذي يعيد الخاصية <code>timezone</code>. وفق الصيغة "منطقة من العالم/مدينة" ("{Part of the world/{City"). المتصفحات الأخرى تعيد سلسلةً نصيةً فارغةً.  
==<code>navigator.globalization.getFirstDayOfWeek</code>==  
==<code>navigator.globalization.getFirstDayOfWeek</code>==  


سطر 312: سطر 308:
يتم ترقيم أيام الأسبوع بدءًا من العدد <code>1</code>، الذي يُفترض أن يمثل يوم الأحد. يُعيد هذا التابع اليوم ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>value</code> ذات قيمة عددية (<code>Number</code>).  
يتم ترقيم أيام الأسبوع بدءًا من العدد <code>1</code>، الذي يُفترض أن يمثل يوم الأحد. يُعيد هذا التابع اليوم ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>value</code> ذات قيمة عددية (<code>Number</code>).  


إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها كائنًا <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  
إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.UNKNOWN_ERROR</code>.  
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*Amazon Fire OS  
*Amazon Fire OS  
سطر 324: سطر 320:
=== مثال ===  
=== مثال ===  


عند ضبط الإعدادات اللغوية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصا مشابها للسلسلة النصية <code>day: 1</code>.  
عند ضبط الإعدادات اللغوية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية <code>day: 1</code>.  
<syntaxhighlight lang="javascript">navigator.globalization.getFirstDayOfWeek(
<syntaxhighlight lang="javascript">navigator.globalization.getFirstDayOfWeek(
         function (day) {alert('day: ' + day.value + '\n');},
         function (day) {alert('day: ' + day.value + '\n');},
سطر 330: سطر 326:
     );‎</syntaxhighlight>  
     );‎</syntaxhighlight>  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* في منصتي ويندوز 8.0 و 8.1، تعتمد القيمة المعادة على تفضيلات التقويم الزمني للمستخدم. أما على منصة Windows Phone 8.1، فتعتمد القيمة على الإعدادات المحلية الحالية.  
* في منصتي ويندوز 8.0 و8.1، تعتمد القيمة المعادة على تفضيلات التقويم الزمني للمستخدم. أما في منصةWindows Phone 8.1، فتعتمد القيمة على الإعدادات المحلية الحالية.  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
* لا يتم دعم إلا 79 إعدادًا محليًا فقط، نظرًا لاستخدام الملف <code>moment.js</code> في هذا التابع.  
* لا يتم دعم إلا 79 إعدادًا محليًا فقط، نظرًا لاستخدام الملف <code>moment.js</code> في هذا التابع.  
سطر 340: سطر 336:


يُعيد هذا التابع النمط (pattern) ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يحتوي هذا الكائن على الخاصيات التالية:  
يُعيد هذا التابع النمط (pattern) ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يحتوي هذا الكائن على الخاصيات التالية:  
* <code>pattern</code>: نمط تنسيق الأرقام وتحليلها. الأنماط تتبع [http://unicode.org/reports/tr35/tr35-4.html معيار اليونيكود التقني #35]. (سلسلة نصية)
* <code>pattern</code>: سلسلة نصية تمثِّل نمط تنسيق الأرقام وتحليلها. الأنماط تتبع [http://unicode.org/reports/tr35/tr35-4.html معيار اليونيكود التقني 35#].  
* <code>symbol</code>: الرمز الذي سيتم استخدامه عند التنسيق والتحليل، مثل رمز النسبة المئوية أو العملة. (سلسلة نصية)
* <code>symbol</code>: سلسلة نصية تمثِّل الرمز الذي سيتم استخدامه عند التنسيق والتحليل، مثل رمز النسبة المئوية أو العملة.  
* <code>fraction</code>: عدد المنازل العشرية التي ستُستخدم عند تحليل البيانات وتنسيقها. (عدد)
* <code>fraction</code>: عدد المنازل العشرية التي ستُستخدم عند تحليل البيانات وتنسيقها.  
* <code>rounding</code>: التقريب الزائد (rounding increment) الذي سيُستخدم عند التحليل والتنسيق. (عدد)
* <code>rounding</code>: عدد يحدِّد التقريب الزائد (rounding increment) الذي سيُستخدم عند التحليل والتنسيق.  
* <code>positive</code>: الرمز الذي سيُستخدم مع الأرقام الموجبة عند التحليل والتنسيق. (سلسلة نصية)
* <code>positive</code>: سلسلة نصية تمثِّل الرمز الذي سيُستخدم مع الأرقام الموجبة عند التحليل والتنسيق.  
* <code>negative</code>: الرمز الذي سيُستخدم مع الأعداد السالبة عند التحليل والتنسيق. (سلسلة نصية)
* <code>negative</code>: سلسلة نصية تمثِّل الرمز الذي سيُستخدم مع الأعداد السالبة عند التحليل والتنسيق.  
* <code>decimal</code>: الرمز العشري الذي سيُستخدم في التحليل والتنسيق. (سلسلة نصية)
* <code>decimal</code>: سلسلة نصية تمثِّل الرمز العشري الذي سيُستخدم في التحليل والتنسيق.  
* <code>grouping</code>: رمز التجميع (grouping symbol) الذي سيُستخدم في التحليل والتنسيق. (سلسلة نصية)
* <code>grouping</code>: سلسلة نصية تمثِّل رمز التجميع (grouping symbol) الذي سيُستخدم في التحليل والتنسيق.  


إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها كائنًا <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PATTERN_ERROR</code>.  
إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PATTERN_ERROR</code>.  


المُعامل <code>options</code> اختياري، وقيمته الافتراضية هي:  
المُعامل <code>options</code> اختياري، وقيمته الافتراضية هي:  
سطر 365: سطر 361:
=== مثال ===  
=== مثال ===  


عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًا مشابهًا للنتائج التالية:  
عند ضبط الإعدادات المحلية للمتصفح إلى القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًا مشابهًا للنتائج التالية:  
<syntaxhighlight lang="javascript">navigator.globalization.getNumberPattern(
<syntaxhighlight lang="javascript">navigator.globalization.getNumberPattern(
         function (pattern) {alert('pattern: '  + pattern.pattern  + '\n' +
         function (pattern) {alert('pattern: '  + pattern.pattern  + '\n' +
سطر 379: سطر 375:
     );‎</syntaxhighlight>  
     );‎</syntaxhighlight>  


النتائج:  
ناتج تنفيذ هذا المثال هو:  
<syntaxhighlight lang="javascript">pattern: #,##0.###
<syntaxhighlight lang="text">pattern: #,##0.###
     symbol: .
     symbol: .
     fraction: 0
     fraction: 0
سطر 392: سطر 388:
* الخاصية <code>fraction</code> غير مدعومة، وتعيد الصفر.  
* الخاصية <code>fraction</code> غير مدعومة، وتعيد الصفر.  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* الخاصية <code>pattern</code> غير مدعومة، وتعيد سلسلة نصيةً فارغة.  
* الخاصية <code>pattern</code> غير مدعومة، وتعيد سلسلةً نصيةً فارغةً.  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
* التابع <code>getNumberPattern</code> غير مدعوم إلا في متصفح Chrome؛ والخاصية الوحيدة المُعرّفة هي <code>pattern</code>.  
* التابع <code>getNumberPattern</code> غير مدعوم إلا في متصفح Chrome؛ والخاصية الوحيدة المُعرّفة هي <code>pattern</code>.  
==<code>navigator.globalization.isDayLightSavingsTime</code>==  
==<code>navigator.globalization.isDayLightSavingsTime</code>==  


يشير هذا التابع إلى ما إذا كان التوقيت الصيفي (daylight savings time) ساري المفعول عند تاريخ معين بحسب المنطقة والتقويم الزمني للعميل.  
يتحقّق هذا التابع ممّا إذا كان التوقيت الصيفي (daylight savings time) ساري المفعول عند تاريخ معين، بحسب المنطقة والتقويم الزمني للعميل.  
<syntaxhighlight lang="javascript">navigator.globalization.isDayLightSavingsTime(date, successCallback, errorCallback);‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">navigator.globalization.isDayLightSavingsTime(date, successCallback, errorCallback);‎</syntaxhighlight>  
===الوصف===  
===الوصف===  


يعيد هذا التابع قيمة منطقية تحدد ما إذا كان التوقيت الصيفي ساري المفعول، ويمرر النتيجة إلى الدالة <code>successCallback</code> مع إعطائها كائنًا <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>dst</code> ذات قيمة منطقية (<code>Boolean</code>). القيمة <code>true</code> تشير إلى أنّ التوقيت الصيفي ساري المفعول عند التاريخ المحدد، فيما تشير القيمة <code>false</code> إلى عكس ذلك.  
يعيد هذا التابع قيمة منطقية تحدِّد ما إذا كان التوقيت الصيفي ساري المفعول، ويمرر النتيجة إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن الخاصية <code>dst</code> ذات قيمة منطقية (<code>Boolean</code>). القيمة <code>true</code> تشير إلى أنّ التوقيت الصيفي ساري المفعول عند التاريخ المحدد، فيما تشير القيمة <code>false</code> إلى عكس ذلك.  


المعامل المنفصل <code>date</code> يجب أن يكون من النوع <code>Date</code>.  
المعامل المنفصل <code>date</code> يجب أن يكون من النوع <code>Date</code>.  
سطر 417: سطر 413:
=== مثال ===  
=== مثال ===  


خلال فصل الصيف، وفي حال ضبْط المتصفح عند منطقة زمنية يسري فيها التوقيت الصيفي (DST-enabled timezone)، فستعرض هذه الشيفرة مربع حوار منبثقٍ يحتوي نصا مشابها للسلسلة النصية <code>dst: true</code>:  
خلال فصل الصيف، وفي حال ضبْط المتصفح عند منطقة زمنية يسري فيها التوقيت الصيفي (DST-enabled timezone)، فستعرض هذه الشيفرة مربع حوار منبثقٍ يحتوي نصًّا مشابها للسلسلة النصية <code>dst: true</code>:  
<syntaxhighlight lang="javascript">navigator.globalization.isDayLightSavingsTime(
<syntaxhighlight lang="javascript">navigator.globalization.isDayLightSavingsTime(
         new Date(),
         new Date(),
سطر 425: سطر 421:
==<code>navigator.globalization.numberToString</code>==  
==<code>navigator.globalization.numberToString</code>==  


يعيد هذا التابع عددًا منسقًا على شكل سلسلةٍ نصية وفقًا لتفضيلات المستخدم.  
يعيد هذا التابع عددًا منسقًا على شكل سلسلةٍ نصيةٍ وفقًا لتفضيلات المستخدم.  
<syntaxhighlight lang="javascript">navigator.globalization.numberToString(number, successCallback, errorCallback, options);‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">navigator.globalization.numberToString(number, successCallback, errorCallback, options);‎</syntaxhighlight>  
===الوصف===  
===الوصف===  


يعيد هذا التابع سلسلة نصية منسقة تمثل العدد، وتمررها إلى الدالة <code>successCallback</code> مع إعطائها كائنًا <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>value</code> ذات قيمة نصية (<code>String</code>).  
يعيد هذا التابع سلسلة نصية منسقة تمثل العدد، وتمررها إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>value</code> ذات قيمة نصية (<code>String</code>).  


إن حدث خطأ أثناء محاولة تنسيق العدد، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمُعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.FORMATTING_ERROR</code>.  
إن حدث خطأ أثناء محاولة تنسيق العدد، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمُعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.FORMATTING_ERROR</code>.  
سطر 436: سطر 432:
<syntaxhighlight lang="javascript">{type:'decimal'}‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">{type:'decimal'}‎</syntaxhighlight>  


يمكن أن تساوي قيمة الخيار <code>options.type</code> إما <code>decimal</code> أو <code>percent</code> أو <code>currency</code>.  
القيم الممكنة للخيار <code>options.type</code> هي <code>decimal</code> و <code>percent</code> و <code>currency</code>.  
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*Amazon Fire OS  
*Amazon Fire OS  
سطر 447: سطر 443:
=== مثال ===  
=== مثال ===  


عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصا مشابها للسلسلة النصية <code>number: 3.142</code>:  
عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية <code>number: 3.142</code>:  
<syntaxhighlight lang="javascript">navigator.globalization.numberToString(
<syntaxhighlight lang="javascript">navigator.globalization.numberToString(
         3.1415926,
         3.1415926,
سطر 456: سطر 452:
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* لا تدعم منصة Windows 8.0 تقريب الأعداد (number rounding)، وبالتالي لن يتم تقريب القيم تلقائيًا.  
* لا تدعم منصة Windows 8.0 تقريب الأعداد (number rounding)، وبالتالي لن يتم تقريب القيم تلقائيًا.  
* في منصتي Windows 8.1 و Windows Phone 8.1، يتم اقتطاع الجزء الكسري بدلاً من تقريبه في حالة الأعداد التي تمثل النسب المئوية (<code>percent</code>)، لذلك يُعيّن عدد كسور الأرقام إلى القيمة 0.  
* في منصتيWindows 8.1 و Windows Phone 8.1، يتم اقتطاع الجزء الكسري بدلًا من تقريبه في حالة الأعداد التي تمثل النسب المئوية (<code>percent</code>)، لذلك يُعيّن عدد كسور الأرقام إلى القيمة 0.  
* لا يتم تجميع الأرقام التي تمثل النسب المئوية <code>percent</code>، حيث لا يمكن تحليلها وتحويلها من نصٍّ إلى عدد (stringToNumber) في حال تجميعها.  
* لا يتم تجميع الأرقام التي تمثل النسب المئوية <code>percent</code>، إذ لا يمكن تحليلها وتحويلها من نصٍّ إلى عدد (stringToNumber) في حال تجميعها.  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
* النوع <code>currency</code> غير مدعوم.  
* النوع <code>currency</code> غير مدعوم.  
سطر 466: سطر 462:
===الوصف===  
===الوصف===  


يعيد هذا التابع التاريخ ويمرره إلى رد نداء النجاح (success callback)، مع إعطائه كائنًا <code>properties</code> كمعامل. يجب أن يحتوي ذلك الكائن على الخاصيات التالية:  
يعيد هذا التابع التاريخَ ويمرره إلى رد نداء النجاح (success callback)، مع إعطائه كائنًا <code>properties</code> كمعامل. يجب أن يحتوي ذلك الكائن على الخاصيات التالية:  
* <code>year</code>: تمثل هذه الخاصية السنةَ معبّرًا عنها بأربعة أرقام. (عدد)
* <code>year</code>: عدد يمثِّل السنةَ معبّرًا عنها بأربعة أرقام.  
* <code>month</code>: الشهر  (من 0 إلى 11). (عدد)
* <code>month</code>: عدد يمثِّل الشهر  (من 0 إلى 11).  
* <code>day</code>: اليوم (من 1 إلى 31). (عدد)
* <code>day</code>: عدد يمثِّل اليوم (من 1 إلى 31).  
* <code>hour</code>: الساعة (من 0 إلى 23). (عدد)
* <code>hour</code>: عدد يمثِّل الساعة (من 0 إلى 23).  
* <code>minute</code>: الدقيقة (من 0 إلى 59). (عدد)
* <code>minute</code>: عدد يمثِّل الدقيقة (من 0 إلى 59).  
* <code>second</code>: الثانية (من 0 إلى 59). (عدد)
* <code>second</code>: عدد يمثِّل الثانية (من 0 إلى 59).
* <code>millisecond</code>: ميليثانية (من 0 إلى 999)، غير متوفرة على جميع المنصات. (عدد)
* <code>millisecond</code>: عدد يمثِّل أجزاء الثانية (ميلي ثانية من 0 إلى 999)، وهي غير متوفرة على جميع المنصات.  


يجب أن يكون المُعامل المنفصل (inbound parameter) ‏<code>dateString</code> نصيًا (أي من النوع <code>String</code>).  
يجب أن يكون المُعامل المنفصل (inbound parameter) ‏<code>dateString</code> سلسلة نصية (أي من النوع <code>String</code>).  


المعامل <code>options</code> اختياري، وقيمه الافتراضية هي:  
المعامل <code>options</code> اختياري، وقيمه الافتراضية هي:  
<syntaxhighlight lang="javascript">{formatLength:'short', selector:'date and time'}‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">{formatLength:'short', selector:'date and time'}‎</syntaxhighlight>  


يمكن أن تساوي قيمة الخيار <code>options.formatLength</code> إما <code>short</code> أو <code>medium</code> أو <code>long</code> أو <code>full</code>. أما الخيار<code>options.selector</code> فقيمته تساوي إما <code>date</code> أو <code>time</code> أو <code>date and time</code>.  
يمكن أن تساوي قيمة الخيار <code>options.formatLength</code> إما <code>short</code> أو <code>medium</code> أو <code>long</code> أو <code>full</code>. أما الخيار <code>options.selector</code>، فقيمته يمكن أن تساوي إما <code>date</code> أو <code>time</code> أو <code>date and time</code>.  


إن حدث خطأ أثناء محاولة تنسيق السلسلة النصية التي تحتوي على التاريخ، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمُعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PARSING_ERROR</code>.  
إن حدث خطأ أثناء محاولة تنسيق السلسلة النصية التي تحتوي على التاريخ، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمُعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PARSING_ERROR</code>.  
سطر 494: سطر 490:
=== مثال ===  
=== مثال ===  


عند ضبط الإعدادات اللغوية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصا مشابها للسلسلة النصية <code>month:8 day:25 year:2012</code>. لاحظ أنّ العدد الصحيح الذي يمثل الشهر أقل بواحدٍ من القيمة المحتواة في السلسلة النصية، لأنّ العدد الصحيح الشهر يمثل فهرس المصفوفة.  
عند ضبط الإعدادات اللغوية للمتصفح إلى القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية <code>month:8 day:25 year:2012</code>. لاحظ أنّ العدد الصحيح الذي يمثل الشهر أقل بواحدٍ من القيمة المُحتواة في السلسلة النصية، لأنّ العدد الصحيح المقابل للشهر يمثل فهرس المصفوفة.  
<syntaxhighlight lang="javascript">navigator.globalization.stringToDate(
<syntaxhighlight lang="javascript">navigator.globalization.stringToDate(
         '9/25/2012',
         '9/25/2012',
سطر 505: سطر 501:
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
=== ملاحظات خاصة بمنصة Windows Phone 8 ===  
* لا تدعم الخاصيةُ <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* لا تدعم الخاصيةُ <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* التنسيق الذي يُحدّده الخيار "<code>date and time</code>" هو دائمًا تنسيق كامل للتاريخ (datetime).  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فسيُعاد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).  
* يجب أن يُصاغ المعامل المنفصل <code>dateString</code> بالتوافق مع النمط المُعاد من قِبل التابع <code>getDatePattern</code>. وبناءً على الإعدادات المحلية للمستخدم، فقد لا يكون النمط متوافقًا تمامًا مع المعيار ICU.  
* يجب أن يُصاغ المعامل المنفصل <code>dateString</code> بالتوافق مع النمط المُعاد من قِبل التابع <code>getDatePattern</code>. بناءً على الإعدادات المحلية للمستخدم، فقد لا يكون النمط متوافقًا تمامًا مع المعيار ICU.  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* لا تدعم الخاصيةُ <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* لا تدعم الخاصيةُ <code>formatLength</code> إلا القيمتين <code>short</code> و <code>full</code>.  
* التنسيق الذي يُحدّده الخيار "<code>date and time</code>" هو دائمًا تنسيق كامل للتاريخ (datetime).  
* عندما تساوي الخاصية <code>pattern</code> القيمة‏ <code>date and time</code>، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).  
* يجب أن يُصاغ المعامل المنفصل <code>dateString</code> بالتوافق مع النمط المُعاد من قِبل التابع <code>getDatePattern</code>. وبناءً على الإعدادات المحلية للمستخدم، فقد لا يكون هذا النمط متوافقًا تمامًا مع المعيار ICU.  
* يجب أن يُصاغ المعامل المنفصل <code>dateString</code> بالتوافق مع النمط المُعاد من قِبل التابع <code>getDatePattern</code>. بناءً على الإعدادات المحلية للمستخدم، فقد لا يكون هذا النمط متوافقًا تمامًا مع المعيار ICU.  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
* لا يتم دعم إلا 79 إعدادًا محليًا فقط، نظرًا لاستخدام الملف <code>moment.js</code> في هذا التابع.  
* لا يتم دعم إلا 79 إعدادًا محليًا فقط، نظرًا لاستخدام الملف <code>moment.js</code> في هذا التابع.  
* يجب أن تكون السلسلة النصية المنفصلة (Inbound string) متوافقة مع تنسيق المُخرجات <code>dateToString</code>، وقد لا تتماشى تماما مع المعيار ICU اعتمادا على الإعدادات المحلية للمستخدم.  
* يجب أن تكون السلسلة النصية المنفصلة (Inbound string) متوافقة مع تنسيق المُخرجات <code>dateToString</code>، وقد لا تتماشى تمامًا مع المعيار ICU اعتمادًا على الإعدادات المحلية للمستخدم.  
* لا يدعم المحدد <code>time</code> إلا القيمتين <code>full</code> و <code>short</code> الخاصتين بالخيار <code>formatLength</code>.  
* لا يدعم المحدد <code>time</code> إلا القيمتين <code>full</code> و <code>short</code> الخاصتين بالخيار <code>formatLength</code>.  
==<code>navigator.globalization.stringToNumber</code>==  
==<code>navigator.globalization.stringToNumber</code>==  


يحلل هذا التابع عدداً منسقاً على شكل سلسلة نصية وفقاً لتفضيلات المستخدم، ثم يعيد العدد المقابل.  
يحلل هذا التابع عددًا منسقًا على شكل سلسلة نصية وفقًا لتفضيلات المستخدم، ثم يعيد العدد المقابل.  
<syntaxhighlight lang="javascript">navigator.globalization.stringToNumber(string, successCallback, errorCallback, options);‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">navigator.globalization.stringToNumber(string, successCallback, errorCallback, options);‎</syntaxhighlight>  
===الوصف===  
===الوصف===  


يُعيد هذا التابع العدد ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن خاصية <code>value</code> ذات قيمة عددية (<code>Number</code>).  
يُعيد هذا التابع العدد ويمرّره إلى الدالة <code>successCallback</code> مع إعطائها الكائن <code>properties</code> كمعامل. يجب أن يكون لهذا الكائن الخاصية <code>value</code> ذات قيمة عددية (<code>Number</code>).  


إن حدث خطأ أثناء محاولة تحليل السلسلة النصية التي تحتوي العدد، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها كائنًا <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PARSING_ERROR</code>.  
إن حدث خطأ أثناء محاولة تحليل السلسلة النصية التي تحتوي العدد، فستُنفّذ الدالة <code>errorCallback</code> مع إعطائها الكائن <code>GlobalizationError</code> كمعامل. رمز الخطأ المتوقع هو <code>GlobalizationError.PARSING_ERROR</code>.  


المعامل <code>options</code> اختياري، وقيمته الافتراضية هي:  
المعامل <code>options</code> اختياري، وقيمته الافتراضية هي:  
<syntaxhighlight lang="javascript">{type:'decimal'}‎</syntaxhighlight>  
<syntaxhighlight lang="javascript">{type:'decimal'}‎</syntaxhighlight>  


يمكن أن تساوي قيمة الخاصية <code>options.type</code> إما <code>decimal</code> أو <code>percent</code> أو <code>currency</code>.  
يمكن أن تساوي قيمة الخاصية <code>options.type</code> إمَّا <code>decimal</code> أو <code>percent</code> أو <code>currency</code>.  
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*Amazon Fire OS  
*Amazon Fire OS  
سطر 538: سطر 534:
=== مثال ===  
=== مثال ===  


عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصا مشابها للسلسلة النصية <code>number: 1234.56</code>:  
عند ضبط الإعدادات المحلية للمتصفح عند القيمة <code>en_US</code>، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية <code>number: 1234.56</code>:  
<syntaxhighlight lang="javascript">navigator.globalization.stringToNumber(
<syntaxhighlight lang="javascript">navigator.globalization.stringToNumber(
         '1234.56',
         '1234.56',
سطر 548: سطر 544:
* بالنسبة للنوع <code>percent</code>، لا تُقسَّم القيمة المُعادة على 100.  
* بالنسبة للنوع <code>percent</code>، لا تُقسَّم القيمة المُعادة على 100.  
=== ملاحظات خاصة بمنصة ويندوز ===  
=== ملاحظات خاصة بمنصة ويندوز ===  
* يجب أن تتوافق السلسلة النصية بشكل تام مع تنسيق الإعدادات المحلية. على سبيل المثال، يجب فصل رمز النسبة المئوية في الإعداد المحلي 'en-US' إن كان المعامل <code>type</code> يساوي '<code>percent</code>'.  
* يجب أن تتوافق السلسلة النصية بشكل تام مع تنسيق الإعدادات المحلية. على سبيل المثال، يجب فصل رمز النسبة المئوية في الإعداد المحلي '<code>en-US</code>' إن كان المعامل <code>type</code> يساوي '<code>percent</code>'.  
* يجب ألا تُجمّع أرقام النسب المئوية <code>percent</code> لكي تُحلّل بالشكل الصحيح.  
* يجب ألا تُجمّع أرقام النسب المئوية <code>percent</code> لكي تُحلّل بالشكل الصحيح.  
==<code>GlobalizationError</code>==  
==<code>GlobalizationError</code>==  


يمثل هذا الكائن خطأ من الواجهة البرمجية لإضافة العولمة.  
يمثل هذا الكائن خطأ، ويُعرَّف من قبل الواجهة البرمجية لإضافة العولمة (Globalization API).  
=== خاصيات ===  
=== الخاصيات ===  
* <code>code</code>: تمثل الرموز التالية نوع الخطأ (عدد)
* <code>code</code>: عدد يمثل الرموز التالية التي تحدِّد نوع الخطأ:
**<code>GlobalizationError.UNKNOWN_ERROR</code>: 0  
**<code>GlobalizationError.UNKNOWN_ERROR</code>: 0  
**<code>GlobalizationError.FORMATTING_ERROR</code>: 1  
**<code>GlobalizationError.FORMATTING_ERROR</code>: 1  
**<code>GlobalizationError.PARSING_ERROR</code>: 2  
**<code>GlobalizationError.PARSING_ERROR</code>: 2  
**<code>GlobalizationError.PATTERN_ERROR</code>: 3  
**<code>GlobalizationError.PATTERN_ERROR</code>: 3  
* <code>message</code>: تمثل هذه الخاصية رسالة نصية تتضمن شرح الخطأ أو تفاصيله. (سلسلة نصية)
* <code>message</code>: تمثل هذه الخاصية سلسلة نصية تتضمن شرح الخطأ أو تفاصيله.  
===الوصف===  
===الوصف===  


يُنشأ هذا الكائن ويُملؤ من قبل كوردوفا، ثم يُعاد إلى رد نداءٍ (callback) في حالة حدوث خطأ.  
يُنشَأ هذا الكائن ويُملَأ من قبل كوردوفا، ثم يُعاد إلى رد نداءٍ (callback) في حالة حدوث خطأ.  
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*Amazon Fire OS  
*Amazon Fire OS  
سطر 573: سطر 569:
=== مثال ===  
=== مثال ===  


عند تنفيذ رد نداء الخطأ (error callback) التالي، فسيعرض مربع حوار منبثقٍ يحتوي نصا مشابها للسلسلتين النصيتين <code>code: 3</code> و <code>message:‎</code>  
عند تنفيذ رد نداء الخطأ (error callback) التالي، فسيعرض مربع حوار منبثقٍ يحتوي نصًّا مشابهًا للسلسلتين النصيتين <code>code: 3</code> و <code>message:‎</code>:
<syntaxhighlight lang="javascript">function errorCallback(error) {
<syntaxhighlight lang="javascript">function errorCallback(error) {
         alert('code: ' + error.code + '\n' +
         alert('code: ' + error.code + '\n' +
سطر 579: سطر 575:
     };‎</syntaxhighlight>
     };‎</syntaxhighlight>


== انظر أيضا ==
== انظر أيضًا ==
* إضافة [[Cordova/cordova plugin dialogs|مربعات الحوار]]
* إضافة [[Cordova/cordova plugin geolocation|تحديد الموقع الجغرافي]]
* [[Cordova/plugins|دليل تطوير الإضافات في كوردوفا]]
* [[Cordova/plugins|دليل تطوير الإضافات في كوردوفا]]


==مصادر==
==مصادر==
*[https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-globalization/ صفحة cordova-plugin-globalization في توثيق كوردوفا الرسمي.]
*[https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-globalization/ صفحة cordova-plugin-globalization في توثيق كوردوفا الرسمي.]
[[تصنيف:Cordova Plugin]]

المراجعة الحالية بتاريخ 12:01، 31 ديسمبر 2018

تمكّن إضافة العولمة (cordova-plugin-globalization) من الحصول على معلومات حول الإعدادات المحلية واللغوية والزمنية للمستخدم.

لاحظ الفرق بين الإعدادات المحلية (locale) وبين اللغة: الإعدادات المحلية تتحكم في كيفية عرض الأرقام والتواريخ والأوقات في منطقة معيّنةٍ، بينما تحدد "اللغة" لغةَ النصوص، بصرف النظر عن الإعدادات المحلية. يستخدم المطورون في كثير من الأحيان الإعدادات المحلية لضبط كلا الإعدادين، ولكن لا يوجد سبب يمنع المستخدم من تعيين اللغة إلى "العربية"، مع تعيين الإعدادات المحلية إلى "الفرنسية"، بحيث يتم عرض النص باللغة العربية، ولكن مع عرض التواريخ والأوقات وغيرها كما تُعرض في فرنسا. للأسف، لا تميز معظم منصات الجوّال حاليًا بين هذه الإعدادات.

تعرّف هذه الإضافة كائنًا عامًّا navigator.globalization. وعلى الرغم من أنّ هذا الكائن موجود في النطاق العام (global scope)، إلا أنه لن يكون متوفرًا إلا بعد إطلاق الحدث deviceready.

document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
        console.log(navigator.globalization);
    }

ملاحظة متعلقة بالإهمال

مع دعم واجهة العولمة البرمجية من ECMA على أجهزة iOS و أندرويد وويندوز، لم تعد هذه الإضافة ضروريةً بعد الآن. الانتقال من هذه الإضافة إلى تلك الواجهة البرمجية مُوضح في هذا المقال.

التثبيت

يمكن تثبيت هذه الأضافة عبر الأمر:

cordova plugin add cordova-plugin-globalization‎

الكائنات

  • GlobalizationError

التوابع

  • navigator.globalization.getPreferredLanguage
  • navigator.globalization.getLocaleName
  • navigator.globalization.dateToString
  • navigator.globalization.stringToDate
  • navigator.globalization.getDatePattern
  • navigator.globalization.getDateNames
  • navigator.globalization.isDayLightSavingsTime
  • navigator.globalization.getFirstDayOfWeek
  • navigator.globalization.numberToString
  • navigator.globalization.stringToNumber
  • navigator.globalization.getNumberPattern
  • navigator.globalization.getCurrencyPattern

navigator.globalization.getPreferredLanguage

يعيد هذا التابع وسم لغة المستخدم الحالية وفق المعيار BCP 47.

navigator.globalization.getPreferredLanguage(successCallback, errorCallback);

الوصف

يُعيد هذا التابع وسم معرف اللغة وفق المعيار BCP-47، ويمرره إلى الدالة successCallback مع إعطائها الكائن properties كمعاملٍ. يجب أن يملك هذا الكائن الخاصية value ذات قيمة نصية (String).

إن حدث خطأ أثناء محاولة الحصول على اللغة، فستُنفّذ الدالة errorCallback مع تمرير الكائن GlobalizationError إليها كمعاملٍ. رمز الخطأ المتوقع هو GlobalizationError.UNKNOWN_ERROR.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • Browser
  • فايرفكس
  • iOS
  • Windows Phone 8
  • ويندوز

مثال

عند ضبط لغة المتصفح إلى القيمة en-US، فستعرضُ الشيفرةُ البرمجية التالية مربع حوارٍ منبثقٍ يحتوي النص language: en-US:

navigator.globalization.getPreferredLanguage(
        function (language) {alert('language: ' + language.value + '\n');},
        function () {alert('Error getting language\n');}
    );

ملاحظات خاصة بمنصة أندرويد

  • في منصة أندرويد، يُعاد رمز اللغة، وهوم رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمزٌ يمثل البلد وفق المعيار ISO 3166-1 مفصولان بشرطةٍ مثل: "en" و "en-US" و "US"

ملاحظات خاصة بمنصة Windows Phone 8

  • في هذه المنصة، يُعاد رمز اللغة، وهو رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمز الدولة وفق المعيار ISO 3166-1 الذي يمثل المتغيرات المحلية المقابلة للإعدادات اللغوية، مفصولان بشرطة.
  • لاحظ أنّ المتغير الإقليمي (regional variant) هو أحد خصائص إعداد "اللغة"، ولا يتم تحديده من قبل الإعداد المنفصل "البلد/المنطقة" (Country/Region) في منصة Windows Phone.

ملاحظات خاصة بمنصة ويندوز

  • في هذه المنصة، يُعاد رمز اللغة، وهو رمزٌ مكون من حرفين يمثلان اللغة وفق المعيار ISO 639-1، ورمز الدولة وفق معيار ISO 3166-1 الذي يمثل المتغيرات المحلية المقابلة للإعدادات اللغوية، مفصولان بشرطة.

ملاحظات خاصة بالمتصفحات (Browsers)

  • في المتصفحات، يتم الحصول على النتيجة من التابع getLocaleName.

navigator.globalization.getLocaleName

يعيد هذا التابع الوسم الذي يمثل الإعدادات المحلية الحالية للعميل وفق المعيار BCP 47.

navigator.globalization.getLocaleName(successCallback, errorCallback);

الوصف

يعيد هذا التابع سلسلة نصية تمثل مُعرّف الإعدادات المحلية (locale identifier) وفق المعيار BCP 47، ثم يمررها إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يجب أن يكون لهذا الكائن خاصية value ذات قيمة نصية (String). الوسم المحلي يتكون من رمزٍ مكونٍ من حرفين صغيرين يمثلان اللغة، ورمز مكونٌ من حرفين كبيرين يمثلان البلد، ورمز متغير (variant code) (غير محدد)، مفصولان بشرطة.

إن حدث هناك خطأ أثناء محاولة الحصول على الإعدادات المحلية، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمعامل. رمز الخطأ المتوقع هو GlobalizationError.UNKNOWN_ERROR.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • فايرفوكس
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

عند ضبط المتصفح عند اللغة en-US، سيُعرض مربع حوار منبثق يحتوي النص locale: en-US.

navigator.globalization.getLocaleName(
        function (locale) {alert('locale: ' + locale.value + '\n');},
        function () {alert('Error getting locale\n');}
    );

ملاحظات خاصة بمنصة أندرويد

  • لا تميز لغة Java بين الإعدادين "langauge" و "locale"، لذلك فإنّ هذا التابع مكافئٌ للتابع navigator.globalization.getPreferredLanguage()‎.

ملاحظات خاصة بمنصة Windows Phone 8

  • في هذه المنصة، يُعاد رمز اللغة وفق المعيار ISO 639-1، والمكون من حرفين، إضافة إلى رمز الدولة وفق المعيار ISO 3166-1، والموافق للمتغير الإقليمي (Regional variant) المقابل لإعداد "التنسيق الإقليمي" (Regional Format)، مفصولان بشرطةٍ.

ملاحظات خاصة بمنصة ويندوز

  • يمكن تغيير إعدادات اللغة من الموضعين Control Panel -> Clock و Language and Region -> Region -> Formats -> Format و Settings -> Region -> Regional Format على منصة Windows Phone 8.1.

ملاحظات خاصة بالمتصفحات (Browsers)

  • يعيد المتصفح IE الإعدادات المحلية لنظام التشغيل. فيما يعيد متصفحا Chrome و Firefox وسم اللغة في المتصفح.

navigator.globalization.dateToString

يعيد هذا التابع تاريخًا (date) على شكل سلسلة نصيةٍ مُنسّقةٍ وفقًا للإعدادات المحلية للعميل ومنطقته الزمنية.

navigator.globalization.dateToString(date, successCallback, errorCallback, options);

الوصف

يعيد هذا التابع سلسلة نصية تحتوي التاريخ المنسق عبر خاصيةٍ value يمكن الوصول إليها من الكائن الذي مُرِّر كمُعامل إلى الدالة successCallback.

يجب أن يكون المُعامل المنفصل (inbound parameter) ‏date من النوع Date.

إن حدث خطأ أثناء محاولة تنسيق التاريخ، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمُعامل. رمز الخطأ المتوقع هو GlobalizationError.FORMATTING_ERROR.

المُعامل options اختياري، وقيمه الافتراضية هي:

{formatLength:'short', selector:'date and time'}

يمكن أن تساوي قيمة الخيار options.formatLength إمَّا short أو medium أو long أو full.

ويمكن أن تساوي قيمةُ الخيار options.selector إما date أو time أو date and time.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • فايرفوكس
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

إن ضُبط المتصفّح إلى الإعداد المحلي en_US، فسيُعرض مربع حوارٍ منبثقٍ يحتوي نصًّا مشابهًا للنص date: 9/25/2012 4:21PM باستخدام الخيارات الافتراضية:

navigator.globalization.dateToString(
        new Date(),
        function (date) { alert('date: ' + date.value + '\n'); },
        function () { alert('Error getting dateString\n'); },
        { formatLength: 'short', selector: 'date and time' }
    );

ملاحظات خاصة بمنصة أندرويد

  • الخيارات formatLength هي مجموعة فرعية من مجموعة اليونيكود UTS #35. يعتمد الخيار الافتراضي short على تنسيق التاريخ الذي حدده المستخدمُ من الموضع Settings -> System -> Date & time -> Choose date format، والذي يعرض قيمة السنة year على شكل أربعة أرقام فقط، وليس رقمين. وهذا يعني أنه غير متوافقٍ بشكلٍ كاملٍ مع المعيار ICU.

ملاحظات خاصة بمنصة Windows Phone 8

  • لا يدعم الخيار formatLength إلا القيمتين short و full.
  • عندما تساوي الخاصية pattern القيمة‏ date and time، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).
  • بناءً على لغة المستخدم، فقد لا تكون القيمة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.

ملاحظات خاصة بمنصة ويندوز

  • لا يدعم الخيار formatLength إلا القيمتين short و full فقط.
  • عندما تساوي الخاصية pattern القيمة‏ date and time، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).
  • بناءً على لغة المستخدم، فقد لا تكون القيمة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.

ملاحظات خاصة بالمتصفحات (Browsers)

  • لا يتم دعم إلا 79 إعدادًا محليًا فقط، نظرًا لاستخدام الملف moment.js في هذا التابع.
  • بناءً على لغة المستخدم، فقد لا تكون القيمة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.
  • لا يدعم المُحدِّد time إلا القيمتين full و short في الخيار formatLength.

ملاحظات خاصة بمنصة Firefox

  • لا يُميّز الخيار formatLength بين long و full.
  • هناك طريقة واحدةً فقط لعرض التاريخ (لا يوجد نمطٌ طويل long وآخر كامل full).

navigator.globalization.getCurrencyPattern

يعيد هذا التابع سلسلةً نصيةً تمثل التنسيق الذي سيُستخدم لأجل تحليل (parse) وتنسيق قيم العملات وفقًا لتفضيلات المستخدم ورمز ISO 4217 الخاص بالعملة.

navigator.globalization.getCurrencyPattern(currencyCode, successCallback, errorCallback);

الوصف

يُعيد هذا التابع النمط (pattern) ويمرّره إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يجب أن يحتوي ذلك الكائن على الخاصيات التالية:

  • pattern: سلسلة نصية تمثل هذه الخاصية نمط العملة الذي ستُنسّق العملات وتُحلّل قيمها بناءً عليه. الأنماط تتبع معيار يونيكود التقني #35.
  • code: سلسلة نصية تمثِّل رمز العملة الخاص بالنمط وفق المعيار ISO 4217.
  • fraction: عدد المنازل العشرية التي ستُستخدم عند تحليل البيانات وتنسيقها.
  • rounding: عدد يحدِّد التقريب الزائد (rounding increment) الذي سيُستخدم عند التحليل والتنسيق.
  • decimal: سلسلة نصية تمثِّل الرمز العشري الذي سيُستخدم في التحليل والتنسيق.
  • grouping: سلسلة نصية تمثِّل رمز التجميع (grouping symbol) الذي سيُستخدَم في التحليل والتنسيق.

يجب أن يكون المعامل المنفصل (inbound parameter) ‏currencyCode سلسلةً نصيةً (String) تتضمّن أحد رموز العملة وفق المعيار ISO 4217، على سبيل المثال "USD".

إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمعامل. رمز الخطأ المتوقع هو GlobalizationError.FORMATTING_ERROR.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • iOS
  • ويندوز

مثال

عند ضبط الإعدادات المحلية للمتصفح عند القيمة en_US، وعند اختيار العملة الأمريكية (الدولار)، فسيعرض هذا المثال مربع حوار منبثق يحتوي نصًّا مشابهًا للنتائج التالية:

navigator.globalization.getCurrencyPattern(
        'USD',
        function (pattern) {
            alert('pattern: '  + pattern.pattern  + '\n' +
                  'code: '     + pattern.code     + '\n' +
                  'fraction: ' + pattern.fraction + '\n' +
                  'rounding: ' + pattern.rounding + '\n' +
                  'decimal: '  + pattern.decimal  + '\n' +
                  'grouping: ' + pattern.grouping);
        },
        function () { alert('Error getting pattern\n'); }
    );

النتيجة المتوقعة:

pattern: $#,##0.##;($#,##0.##)
    code: USD
    fraction: 2
    rounding: 0
    decimal: .
    grouping: ,

ملاحظات خاصة بمنصة ويندوز

  • لا يدعم ويندوز إلا الخاصيتين "code" و "fraction".

navigator.globalization.getDateNames

يُعيد هذا التابع مصفوفةً تتألف من أسماء الأشهر أو أيام الأسبوع، بناءً على تفضيلات المستخدم والتقويم الخاص به.

navigator.globalization.getDateNames(successCallback, errorCallback, options);

الوصف

يُعيد هذا التابع مصفوفةً من الأسماء ويمررها إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يحتوي هذا الكائن على خاصية value تحتوي مصفوفةً من السلاسل النصية. تشتمل المصفوفة على أسماء تبدأ من الشهر الأول في السنة، أو اليوم الأول من الأسبوع، وفقًا للخيار المحدد.

إن حدث خطأ أثناء محاولة الحصول على الأسماء، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمعامل. رمز الخطأ المتوقع هو GlobalizationError.UNKNOWN_ERROR.

المُعامل options اختياري، وقيمه الافتراضية هي:

{type:'wide', item:'months'}

يمكن أن تساوي قيمة الخيار options.type إما narrow وإما wide.

يمكن أن تساوي قيمة الخيار options.item إما months وإما days.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • فايرفوكس
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

عند ضبط الإعدادات المحلية للمتصفح عند القيمة en_US، فسيعرض هذا المثال سلسلة من 12 مربع حوارٍ منبثقٍ، واحدًا لكل شهر، مع نص مشابهٍ للسلسلة النصية "month: January":

navigator.globalization.getDateNames(
        function (names) {
            for (var i = 0; i < names.value.length; i++) {
                alert('month: ' + names.value[i] + '\n');
            }
        },
        function () { alert('Error getting names\n'); },
        { type: 'wide', item: 'months' }
    );

ملاحظات خاصة بمنصة Firefox

  • تدعم الخاصية options.type القيمة genitive، وهو أمرٌ مهم لبعض اللغات.

ملاحظات خاصة بمنصة Windows Phone 8

  • مصفوفة الشهور تحتوي على 13 عنصرًا.
  • بناءً على الإعدادات المحلية للمستخدم، فقد لا تكون المصفوفة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.

ملاحظات خاصة بمنصة ويندوز

  • مصفوفة الشهور تحتوي على 12 عنصرًا.
  • بناءً على لغة المستخدم، فقد لا تكون المصفوفة المُعادة متوافقةً مع المعيار ICU بشكلٍ كاملٍ.

ملاحظات خاصة بالمتصفحات (Browsers)

  • لا تتماشى أسماء التواريخ تمامًا مع المعيار ICU.
  • مصفوفة الشهور تحتوي على 12 عنصرًا.

navigator.globalization.getDatePattern

يُعيد هذا التابع سلسلةً نصيةً تمثل النمط (pattern) الذي ستُنسّق التواريخ وتُحلّل على أساسه، ووفقًا لتفضيلات المستخدم.

navigator.globalization.getDatePattern(successCallback, errorCallback, options);

الوصف

يُعيد هذا التابع نمطًا ويمرره إلى الدالة successCallback. يحتوي الكائن الذي تم تمريره كمعامل على الخاصيات التالية:

  • pattern: سلسلة نصية تمثِّل نمط التاريخ والوقت الذي ستُنسّق التواريخ وتُحلل وِفقَه. تتّبع هذه الأنماط معيار اليونيكود التقني 35#.
  • timezone: سلسلة نصية تمثِّل الاسم المختصر للمنطقة الزمنية للعميل.
  • iana_timezone: سلسلة نصية تمثِّل اسم IANA (هيئة تعيين أرقام الإنترنت) الخاص بالمنطقة الزمنية للعميل.
  • utc_offset: عدد يحدِّد الاختلاف الحالي بعدد الثواني بين المنطقة الزمنية للعميل، والوقت العالمي المنسق (coordinated universal time).
  • dst_offset: عدد يحدِّد فرق التوقيت الصيفي (daylight saving time) الحالي بالثواني بين المنطقة الزمنية غير الصيفية (non-daylight saving's time) والمنطقة الزمنية الصيفية (daylight saving's time) للعميل.

إن حدث خطأ أثناء محاولة الحصول على النمط، ستُنفذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمعامل. رمز الخطأ المتوقع هو GlobalizationError.PATTERN_ERROR.

المعامل options اختياري، وقيمه الافتراضية هي:

{formatLength:'short', selector:'date and time'}

يمكن أن تساوي قيمة الخيار options.formatLength إمَّا short أو medium أو long أو full. كما يمكن أن تساوي قيمة الخيار الآخر options.selector إمَّا date أو time أو date and time.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

عند ضبط الإعدادات المحلية للمتصفح عند القيمة en_US، فسيعرضُ هذا المثالُ مربعَ حوارٍ منبثقٍ يحتوي على نصٍّ وفق الصيغة pattern: M/d/yyyy h:mm a:

function checkDatePattern() {
        navigator.globalization.getDatePattern(
            function (date) { alert('pattern: ' + date.pattern + '\n'); },
            function () { alert('Error getting pattern\n'); },
            { formatLength: 'short', selector: 'date and time' }
        );
    }

ملاحظات خاصة بمنصة Windows Phone 8

  • لا يدعم الخيار formatLength إلا القيمتين short و full.
  • عندما تساوي الخاصية pattern القيمة‏ date and time، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).
  • تعيد الخاصية timezone الاسم الكامل للمنطقة الزمنية.
  • الخاصية dst_offset غير مدعومة، وتعيد دائمًا القيمة صفر.
  • بناءً على الإعدادات المحلية للمستخدم، فقد لا يكون النمط متوافقًا تمامًا مع المعيار ICU.

ملاحظات خاصة بمنصة ويندوز

  • لا تدعم الخاصيةُ formatLength إلا القيمتين short و full.
  • عندما تساوي الخاصية pattern القيمة‏ date and time، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).
  • تعيد الخاصية timezone الاسم الكامل للمنطقة الزمنية.
  • الخاصية iana_timezone غير مدعومة، وتُعيد دائمًا سلسلة نصية فارغة.
  • الخاصية dst_offset غير مدعومة، وتعيد دائمًا الصفر.
  • بناءً على الإعدادات المحلية للمستخدم، فقد لا يكون النمط متوافقًا تمامًا مع المعيار ICU.

ملاحظات خاصة بالمتصفحات (Browsers)

  • الخاصية "pattern" غير مدعومة، وتعيد سلسلة نصية فارغة.
  • Chrome هو المتصفح الوحيد الذي يعيد الخاصية timezone. وفق الصيغة "منطقة من العالم/مدينة" ("{Part of the world/{City"). المتصفحات الأخرى تعيد سلسلةً نصيةً فارغةً.

navigator.globalization.getFirstDayOfWeek

يعيد هذا التابع أول يوم من الأسبوع وفقًا لتفضيلات المستخدم وتقويمه الزمني.

navigator.globalization.getFirstDayOfWeek(successCallback, errorCallback);

الوصف

يتم ترقيم أيام الأسبوع بدءًا من العدد 1، الذي يُفترض أن يمثل يوم الأحد. يُعيد هذا التابع اليوم ويمرّره إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يجب أن يكون لهذا الكائن خاصية value ذات قيمة عددية (Number).

إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمعامل. رمز الخطأ المتوقع هو GlobalizationError.UNKNOWN_ERROR.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

عند ضبط الإعدادات اللغوية للمتصفح عند القيمة en_US، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية day: 1.

navigator.globalization.getFirstDayOfWeek(
        function (day) {alert('day: ' + day.value + '\n');},
        function () {alert('Error getting day\n');}
    );

ملاحظات خاصة بمنصة ويندوز

  • في منصتي ويندوز 8.0 و8.1، تعتمد القيمة المعادة على تفضيلات التقويم الزمني للمستخدم. أما في منصةWindows Phone 8.1، فتعتمد القيمة على الإعدادات المحلية الحالية.

ملاحظات خاصة بالمتصفحات (Browsers)

  • لا يتم دعم إلا 79 إعدادًا محليًا فقط، نظرًا لاستخدام الملف moment.js في هذا التابع.

navigator.globalization.getNumberPattern

يُعيد هذا التابع سلسلة نصيةً تمثل النمط (pattern) الذي ستُنسّق الأعداد وتُحلّل على أساسه، ووفقًا لتفضيلات المستخدم.

navigator.globalization.getNumberPattern(successCallback, errorCallback, options);

الوصف

يُعيد هذا التابع النمط (pattern) ويمرّره إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يحتوي هذا الكائن على الخاصيات التالية:

  • pattern: سلسلة نصية تمثِّل نمط تنسيق الأرقام وتحليلها. الأنماط تتبع معيار اليونيكود التقني 35#.
  • symbol: سلسلة نصية تمثِّل الرمز الذي سيتم استخدامه عند التنسيق والتحليل، مثل رمز النسبة المئوية أو العملة.
  • fraction: عدد المنازل العشرية التي ستُستخدم عند تحليل البيانات وتنسيقها.
  • rounding: عدد يحدِّد التقريب الزائد (rounding increment) الذي سيُستخدم عند التحليل والتنسيق.
  • positive: سلسلة نصية تمثِّل الرمز الذي سيُستخدم مع الأرقام الموجبة عند التحليل والتنسيق.
  • negative: سلسلة نصية تمثِّل الرمز الذي سيُستخدم مع الأعداد السالبة عند التحليل والتنسيق.
  • decimal: سلسلة نصية تمثِّل الرمز العشري الذي سيُستخدم في التحليل والتنسيق.
  • grouping: سلسلة نصية تمثِّل رمز التجميع (grouping symbol) الذي سيُستخدم في التحليل والتنسيق.

إن حدث خطأ أثناء محاولة الحصول على النمط، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمعامل. رمز الخطأ المتوقع هو GlobalizationError.PATTERN_ERROR.

المُعامل options اختياري، وقيمته الافتراضية هي:

{type:'decimal'}

يمكن أن تساوي قيمة الخاصية options.type إما decimal أو percent أو currency.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

عند ضبط الإعدادات المحلية للمتصفح إلى القيمة en_US، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًا مشابهًا للنتائج التالية:

navigator.globalization.getNumberPattern(
        function (pattern) {alert('pattern: '  + pattern.pattern  + '\n' +
                                  'symbol: '   + pattern.symbol   + '\n' +
                                  'fraction: ' + pattern.fraction + '\n' +
                                  'rounding: ' + pattern.rounding + '\n' +
                                  'positive: ' + pattern.positive + '\n' +
                                  'negative: ' + pattern.negative + '\n' +
                                  'decimal: '  + pattern.decimal  + '\n' +
                                  'grouping: ' + pattern.grouping);},
        function () {alert('Error getting pattern\n');},
        {type:'decimal'}
    );

ناتج تنفيذ هذا المثال هو:

pattern: #,##0.###
    symbol: .
    fraction: 0
    rounding: 0
    positive:
    negative: -
    decimal: .
    grouping: ,‎

ملاحظات خاصة بمنصة Windows Phone 8

  • الخاصية pattern غير مدعومة، وتعيد سلسلة نصيةً فارغة.
  • الخاصية fraction غير مدعومة، وتعيد الصفر.

ملاحظات خاصة بمنصة ويندوز

  • الخاصية pattern غير مدعومة، وتعيد سلسلةً نصيةً فارغةً.

ملاحظات خاصة بالمتصفحات (Browsers)

  • التابع getNumberPattern غير مدعوم إلا في متصفح Chrome؛ والخاصية الوحيدة المُعرّفة هي pattern.

navigator.globalization.isDayLightSavingsTime

يتحقّق هذا التابع ممّا إذا كان التوقيت الصيفي (daylight savings time) ساري المفعول عند تاريخ معين، بحسب المنطقة والتقويم الزمني للعميل.

navigator.globalization.isDayLightSavingsTime(date, successCallback, errorCallback);

الوصف

يعيد هذا التابع قيمة منطقية تحدِّد ما إذا كان التوقيت الصيفي ساري المفعول، ويمرر النتيجة إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يجب أن يكون لهذا الكائن الخاصية dst ذات قيمة منطقية (Boolean). القيمة true تشير إلى أنّ التوقيت الصيفي ساري المفعول عند التاريخ المحدد، فيما تشير القيمة false إلى عكس ذلك.

المعامل المنفصل date يجب أن يكون من النوع Date.

إن حدث خطأ أثناء محاولة قراءة التاريخ، فستُنفّذ الدالة errorCallback. رمز الخطأ المتوقع هو GlobalizationError.UNKNOWN_ERROR.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

خلال فصل الصيف، وفي حال ضبْط المتصفح عند منطقة زمنية يسري فيها التوقيت الصيفي (DST-enabled timezone)، فستعرض هذه الشيفرة مربع حوار منبثقٍ يحتوي نصًّا مشابها للسلسلة النصية dst: true:

navigator.globalization.isDayLightSavingsTime(
        new Date(),
        function (date) {alert('dst: ' + date.dst + '\n');},
        function () {alert('Error getting names\n');}
    );

navigator.globalization.numberToString

يعيد هذا التابع عددًا منسقًا على شكل سلسلةٍ نصيةٍ وفقًا لتفضيلات المستخدم.

navigator.globalization.numberToString(number, successCallback, errorCallback, options);

الوصف

يعيد هذا التابع سلسلة نصية منسقة تمثل العدد، وتمررها إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يجب أن يكون لهذا الكائن خاصية value ذات قيمة نصية (String).

إن حدث خطأ أثناء محاولة تنسيق العدد، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمُعامل. رمز الخطأ المتوقع هو GlobalizationError.FORMATTING_ERROR.

المُعامل options اختياري، وقيمته الافتراضية هي:

{type:'decimal'}

القيم الممكنة للخيار options.type هي decimal و percent و currency.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

عند ضبط الإعدادات المحلية للمتصفح عند القيمة en_US، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية number: 3.142:

navigator.globalization.numberToString(
        3.1415926,
        function (number) {alert('number: ' + number.value + '\n');},
        function () {alert('Error getting number\n');},
        {type:'decimal'}
    );

ملاحظات خاصة بمنصة ويندوز

  • لا تدعم منصة Windows 8.0 تقريب الأعداد (number rounding)، وبالتالي لن يتم تقريب القيم تلقائيًا.
  • في منصتيWindows 8.1 و Windows Phone 8.1، يتم اقتطاع الجزء الكسري بدلًا من تقريبه في حالة الأعداد التي تمثل النسب المئوية (percent)، لذلك يُعيّن عدد كسور الأرقام إلى القيمة 0.
  • لا يتم تجميع الأرقام التي تمثل النسب المئوية percent، إذ لا يمكن تحليلها وتحويلها من نصٍّ إلى عدد (stringToNumber) في حال تجميعها.

ملاحظات خاصة بالمتصفحات (Browsers)

  • النوع currency غير مدعوم.

navigator.globalization.stringToDate

يحلّل (Parses) هذا التابع تاريخًا مُنسّقًا على هيئة سلسلة نصيةٍ، وفقًا لتفضيلات المستخدم وتقويمه الزمني باستخدام المنطقة الزمنية للعميل، ويعيد هذا التابع كائنَ التاريخ (date object) المقابل.

navigator.globalization.stringToDate(dateString, successCallback, errorCallback, options);

الوصف

يعيد هذا التابع التاريخَ ويمرره إلى رد نداء النجاح (success callback)، مع إعطائه كائنًا properties كمعامل. يجب أن يحتوي ذلك الكائن على الخاصيات التالية:

  • year: عدد يمثِّل السنةَ معبّرًا عنها بأربعة أرقام.
  • month: عدد يمثِّل الشهر (من 0 إلى 11).
  • day: عدد يمثِّل اليوم (من 1 إلى 31).
  • hour: عدد يمثِّل الساعة (من 0 إلى 23).
  • minute: عدد يمثِّل الدقيقة (من 0 إلى 59).
  • second: عدد يمثِّل الثانية (من 0 إلى 59).
  • millisecond: عدد يمثِّل أجزاء الثانية (ميلي ثانية من 0 إلى 999)، وهي غير متوفرة على جميع المنصات.

يجب أن يكون المُعامل المنفصل (inbound parameter) ‏dateString سلسلة نصية (أي من النوع String).

المعامل options اختياري، وقيمه الافتراضية هي:

{formatLength:'short', selector:'date and time'}

يمكن أن تساوي قيمة الخيار options.formatLength إما short أو medium أو long أو full. أما الخيار options.selector، فقيمته يمكن أن تساوي إما date أو time أو date and time.

إن حدث خطأ أثناء محاولة تنسيق السلسلة النصية التي تحتوي على التاريخ، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمُعامل. رمز الخطأ المتوقع هو GlobalizationError.PARSING_ERROR.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • ويندوز
  • Browser

مثال

عند ضبط الإعدادات اللغوية للمتصفح إلى القيمة en_US، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية month:8 day:25 year:2012. لاحظ أنّ العدد الصحيح الذي يمثل الشهر أقل بواحدٍ من القيمة المُحتواة في السلسلة النصية، لأنّ العدد الصحيح المقابل للشهر يمثل فهرس المصفوفة.

navigator.globalization.stringToDate(
        '9/25/2012',
        function (date) {alert('month:' + date.month +
                               ' day:'  + date.day   +
                               ' year:' + date.year  + '\n');},
        function () {alert('Error getting date\n');},
        {selector: 'date'}
    );

ملاحظات خاصة بمنصة Windows Phone 8

  • لا تدعم الخاصيةُ formatLength إلا القيمتين short و full.
  • عندما تساوي الخاصية pattern القيمة‏ date and time، فسيُعاد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).
  • يجب أن يُصاغ المعامل المنفصل dateString بالتوافق مع النمط المُعاد من قِبل التابع getDatePattern. بناءً على الإعدادات المحلية للمستخدم، فقد لا يكون النمط متوافقًا تمامًا مع المعيار ICU.

ملاحظات خاصة بمنصة ويندوز

  • لا تدعم الخاصيةُ formatLength إلا القيمتين short و full.
  • عندما تساوي الخاصية pattern القيمة‏ date and time، فستعيد دائمًا تنسيقًا كاملًا للتاريخ (full datetime format).
  • يجب أن يُصاغ المعامل المنفصل dateString بالتوافق مع النمط المُعاد من قِبل التابع getDatePattern. بناءً على الإعدادات المحلية للمستخدم، فقد لا يكون هذا النمط متوافقًا تمامًا مع المعيار ICU.

ملاحظات خاصة بالمتصفحات (Browsers)

  • لا يتم دعم إلا 79 إعدادًا محليًا فقط، نظرًا لاستخدام الملف moment.js في هذا التابع.
  • يجب أن تكون السلسلة النصية المنفصلة (Inbound string) متوافقة مع تنسيق المُخرجات dateToString، وقد لا تتماشى تمامًا مع المعيار ICU اعتمادًا على الإعدادات المحلية للمستخدم.
  • لا يدعم المحدد time إلا القيمتين full و short الخاصتين بالخيار formatLength.

navigator.globalization.stringToNumber

يحلل هذا التابع عددًا منسقًا على شكل سلسلة نصية وفقًا لتفضيلات المستخدم، ثم يعيد العدد المقابل.

navigator.globalization.stringToNumber(string, successCallback, errorCallback, options);

الوصف

يُعيد هذا التابع العدد ويمرّره إلى الدالة successCallback مع إعطائها الكائن properties كمعامل. يجب أن يكون لهذا الكائن الخاصية value ذات قيمة عددية (Number).

إن حدث خطأ أثناء محاولة تحليل السلسلة النصية التي تحتوي العدد، فستُنفّذ الدالة errorCallback مع إعطائها الكائن GlobalizationError كمعامل. رمز الخطأ المتوقع هو GlobalizationError.PARSING_ERROR.

المعامل options اختياري، وقيمته الافتراضية هي:

{type:'decimal'}

يمكن أن تساوي قيمة الخاصية options.type إمَّا decimal أو percent أو currency.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • iOS
  • Windows Phone 8
  • ويندوز

مثال

عند ضبط الإعدادات المحلية للمتصفح عند القيمة en_US، فستعرض هذه الشيفرة مربع حوار منبثق يحتوي نصًّا مشابهًا للسلسلة النصية number: 1234.56:

navigator.globalization.stringToNumber(
        '1234.56',
        function (number) {alert('number: ' + number.value + '\n');},
        function () {alert('Error getting number\n');},
        {type:'decimal'}
    );

ملاحظات خاصة بمنصة Windows Phone 8

  • بالنسبة للنوع percent، لا تُقسَّم القيمة المُعادة على 100.

ملاحظات خاصة بمنصة ويندوز

  • يجب أن تتوافق السلسلة النصية بشكل تام مع تنسيق الإعدادات المحلية. على سبيل المثال، يجب فصل رمز النسبة المئوية في الإعداد المحلي 'en-US' إن كان المعامل type يساوي 'percent'.
  • يجب ألا تُجمّع أرقام النسب المئوية percent لكي تُحلّل بالشكل الصحيح.

GlobalizationError

يمثل هذا الكائن خطأ، ويُعرَّف من قبل الواجهة البرمجية لإضافة العولمة (Globalization API).

الخاصيات

  • code: عدد يمثل الرموز التالية التي تحدِّد نوع الخطأ:
    • GlobalizationError.UNKNOWN_ERROR: 0
    • GlobalizationError.FORMATTING_ERROR: 1
    • GlobalizationError.PARSING_ERROR: 2
    • GlobalizationError.PATTERN_ERROR: 3
  • message: تمثل هذه الخاصية سلسلة نصية تتضمن شرح الخطأ أو تفاصيله.

الوصف

يُنشَأ هذا الكائن ويُملَأ من قبل كوردوفا، ثم يُعاد إلى رد نداءٍ (callback) في حالة حدوث خطأ.

المنصات المدعومة

  • Amazon Fire OS
  • أندرويد
  • بلاك بيري 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • ويندوز

مثال

عند تنفيذ رد نداء الخطأ (error callback) التالي، فسيعرض مربع حوار منبثقٍ يحتوي نصًّا مشابهًا للسلسلتين النصيتين code: 3 و message:‎:

function errorCallback(error) {
        alert('code: ' + error.code + '\n' +
              'message: ' + error.message + '\n');
    };

انظر أيضًا

مصادر