الأسئلة الشائعة

    نظرة عامة

  1. ما هي Google Data API؟
  2. لديّ طلب ميزة أو تقرير خطأ. أين يجب أن أنشر المحتوى؟
  3. أين يمكنني طرح سؤال حول واجهة برمجة تطبيقات معيّنة؟
  4. ما هو JSON؟
  5. هل يجب استخدام XML؟ هل تتوفّر صيغ بيانات أخرى؟
  6. لماذا تستخدم REST؟
  7. هل لديك أي نصائح أو رمز نموذجي قصير للمشاكل الشائعة؟
  8. هل يتوفّر في Gmail واجهة برمجة تطبيقات للبيانات؟
  9. المصادقة

  10. ما هو اسم الخدمة في ClientLogin لكل واجهة Data API؟
  11. عندما يسجّل المستخدم خروجه من أحد التطبيقات، هل من الضروري إبلاغ خوادم واجهة برمجة التطبيقات بذلك؟
  12. هل يتضمّن رمز المصادقة المميز ClientLogin تاريخ انتهاء صلاحية؟
  13. لديّ سؤال عام حول حسابات Google. إلى أين يجب أن أذهب؟
  14. كيف يمكنني المصادقة على واجهة برمجة تطبيقات؟
  15. ما هي القيمة التي يجب استخدامها لمعلمة نطاق AuthSub/OAuth 1؟
  16. هل تتوفّر أنواع مختلفة من رموز AuthSub المميزة؟ هل تنتهي صلاحية الرموز المميزة؟
  17. ما هو الفرق الرئيسي بين ClientLogin وAuthSub/OAuth 1؟
  18. هل يمكنني استخدام مصادقة ClientLogin في تطبيقات الويب التابعة لجهات خارجية؟
  19. ما هو اختبار CAPTCHA؟
  20. كيف يمكنني إنشاء اختبار CAPTCHA؟
  21. هل يجب استخدام ClientLogin في تطبيق الويب؟
  22. كيف يمكنني معرفة اسم المستخدم عند استخدام AuthSub/OAuth 1؟
  23. كيف يمكنني استخدام OAuth 1 مع مكتبات عميل Google Data API؟
  24. كيف يمكنني استخدام AuthSub مع مكتبات عميل Google Data API؟
  25. كيف يمكنني استخدام ClientLogin مع مكتبات عميل Google Data API؟
  26. مكتبات العملاء

  27. ما هي لغات البرمجة التي تتوافق مع مكتبات البرامج التي توفّرها Google؟
  28. كيف يمكنني الإبلاغ عن خطأ أو طلب ميزة في إحدى مكتبات برامج Google Data؟
  29. كيف يمكنني تفعيل خيارات تصحيح الأخطاء في مكتبات البرامج؟
  30. أين يمكنني العثور على مستندات مرجعية لفئات مكتبة البرامج؟
  31. تحديد المشاكل وحلّها

  32. ما هي بعض الأدوات الجيدة لتصحيح أخطاء HTTP؟
  33. كيف يمكنني الحصول على معلومات تسجيل HTTP في مكتبة برامج Java؟
  34. كيف يمكنني الحصول على معلومات تسجيل HTTP في مكتبة برامج عميل ‎ .NET؟
  35. كيف يمكنني تفعيل ترميز gzip من خلاصات بيانات Google؟
  36. لماذا يظهر لي الخطأ "تعذّر الاتصال بـ sslv2" عند استخدام عميل PHP؟
  37. كيف يمكنني الحصول على مستند خدمة Atom الذي يصف خلاصة؟

نظرة عامة

ما هي Google Data API؟

واجهة Google Data API هي واجهة برمجة تطبيقات تستند إلى بروتوكول بيانات Google. يستند بروتوكول Google Data إلى تنسيقات مشاركة البيانات Atom 1.0 وRSS 2.0، بالإضافة إلى بروتوكول Atom للنشر (APP).

يوسّع بروتوكول Google Data هذه المعايير بطرق مختلفة، وذلك باستخدام آليات الإضافة المضمّنة في المعايير. تتّبع الخلاصات تنسيقات مشاركة Atom أو RSS. يتوافق نموذج النشر مع بروتوكول Atom Publishing Protocol.

يوفّر البروتوكول أيضًا نموذجًا عامًا للخلاصات وطلبات البحث والنتائج. يمكنك استخدامها لإرسال طلبات بحث وتعديلات إلى أيّ Data API.

لديّ طلب ميزة أو تقرير خطأ. أين يجب أن أنشر؟
يمكنك الاطّلاع على أداة تعقُّب المشاكل. ابحث عن طلب الميزة الذي أرسلته وانقر على رمز النجمة لإبداء موافقتك وتلقّي إشعارات بشأن حالته.
أين يمكنني طرح سؤال حول واجهة برمجة تطبيقات معيّنة؟
إذا لم تكن مشكلتك مُدرَجة هنا أو كنت تريد المزيد من التوضيح، تتوفّر مجموعات مناقشة خاصة بكل واجهة من واجهات Google Data API:
ما هو JSON؟

يشير JSON إلى JavaScript Object Notation.

‫JSON هو تنسيق خفيف الوزن لتبادل البيانات، وقد أدّت بساطته إلى انتشاره على نطاق واسع بين مطوّري الويب. يسهل قراءتها وكتابتها، ويمكنك تحليلها باستخدام أي لغة برمجة، كما أنّ بنيتها تتوافق مباشرةً مع بنى البيانات المستخدَمة في معظم لغات البرمجة.

يمكنك الاطّلاع على مزيد من المعلومات حول استخدام JSON مع واجهات Google Data APIs.

هل يجب استخدام XML؟ هل تتوفّر صيغ بيانات أخرى؟
تنسيق البيانات التلقائي في Google Data APIs هو XML، ويكون على شكل خلاصة Atom. ومع ذلك، عند طلب خلاصة، يمكنك تحديد تنسيق بديل باستخدام مَعلمة طلب البحث alt.
  • alt=rss
    يتم تنسيق بيانات الرد على شكل خلاصة RSS.
  • alt=json أو alt=json-in-script
    تعرض تمثيلاً بتنسيق JSON لبنية XML الخاصة بخلاصة Atom. تتمثّل الميزة الإضافية لتنسيق JSON في سهولة "تحليله" في رمز JavaScript البرمجي الخاص بالعميل. في الوقت الحالي، لا تتوفّر إمكانية استخدام JSON إلا كخيار للقراءة فقط. ومع ذلك، يتيح استخدام مكتبة برامج JavaScript للعميل مع خدمات Blogger أو جهات اتصال Google أو تقويم Google إمكانية قراءة البيانات وكتابتها.

    مزيد من المعلومات حول طلب خلاصات JSON واستخدامها

  • alt=atom-in-script
    يشبه alt=json-in-script، ولكن يتم عرض النتائج كسلسلة Atom XML بدلاً من JSON.
  • alt=rss-in-script
    يشبه هذا الحقل alt=atom-in-script، ولكن يتم عرض النتائج كسلسلة XML بتنسيق RSS بدلاً من Atom.

يمكنك الاطّلاع على مزيد من المعلومات حول التنسيقات البديلة في دليل مراجع بيانات Google.

لماذا تستخدم REST؟
إنّ REST بسيط وخفيف الوزن وقابل للتوسعة، كما أنّه يتوافق بشكل جيد جدًا مع تمثيل البيانات وعرضها.
هل لديك أي نصائح أو رمز نموذجي قصير للمشاكل الشائعة؟
ننصحك بتصفّح مدونة نصائح حول Google Data API للحصول على مساعدة بشأن مكتبات البرامج الخاصة بالعملاء وإجراء طلبات أولية.
هل يتوفّر في Gmail واجهة Data API؟

لا، ولكن يمكنك استخدام خلاصة Atom في Gmail مع AuthSub أو OAuth 1 لطلب إذن بالوصول للقراءة فقط إلى الرسائل غير المقروءة الخاصة بالمستخدم. يجب ضبط النطاق على https://mail.google.com/mail/feed/atom/. في ما يلي مثال على طلب بحث:

GET https://mail.google.com/mail/feed/atom/

إذا كنت مهتمًا بإدارة بريدك، يتيح Gmail أيضًا استخدام بروتوكولَي IMAP وPOP.


المصادقة

في مستندات Google Data APIs، يشير مصطلح "OAuth" إلى OAuth 1، ولمعرفة تفاصيل حول OAuth 2.0، يُرجى الاطّلاع على مستندات واجهة برمجة التطبيقات الفردية.

ما هو اسم الخدمة في ClientLogin لكل Data API؟
"اسم الخدمة" هو سلسلة مختصرة يستخدمها نظام المصادقة ClientLogin لتحديد إحدى خدمات Google.
Google API اسم الخدمة
Google Analytics Data APIs analytics
واجهات برمجة تطبيقات G Suite
(معلومات النطاق وإدارته)
apps
Google Sites Data API jotspot
Blogger Data API blogger
Book Search Data API print
Calendar Data API cl
Google Code Search Data API codesearch
Contacts Data API cp
واجهة برمجة تطبيقات المحتوى في Shopping structuredcontent
Documents List Data API writely
Finance Data API finance
موجز Atom في Gmail mail
Health Data API health
weaver (وضع حماية H9)
Maps Data APIs local
Picasa Web Albums Data API lh2
Sidewiki Data API annotateweb
Spreadsheets Data API wise
Webmaster Tools API sitemaps
YouTube Data API youtube

لمزيد من المعلومات عن المَعلمات الأخرى المستخدَمة في طلب ClientLogin، يُرجى الاطّلاع على مستندات ClientLogin.

عندما يسجّل المستخدم الخروج من أحد التطبيقات، هل من الضروري إبلاغ خوادم واجهة برمجة التطبيقات بذلك؟
لا، ليس من الضروري إبلاغ Google Data API عندما يسجّل المستخدم الخروج من تطبيق. ومع ذلك، إذا لم يعُد تطبيقك بحاجة إلى استخدام رمز مميز صادر من AuthSub، عليه إبطال الرمز المميز.
هل يتضمّن رمز المصادقة المميز ClientLogin تاريخ انتهاء صلاحية؟
يمكن أن تستمر صلاحية رمز ClientLogin لمدة أسبوعَين من تاريخ إصداره، ولكن هذا الحدّ يختلف حسب الخدمة وقد يكون أقصر.
لديّ سؤال عام حول حسابات Google. إلى أين أذهب؟
انتقِل إلى مركز المساعدة الخاص بحسابات Google.
كيف يمكنني المصادقة على واجهة برمجة تطبيقات؟
يجب أن يتضمّن طلب HTTP عنوان Authorization يحتوي على رمز مميّز تم الحصول عليه باستخدام ClientLogin أو AuthSub أو OAuth 1.
ما هي القيمة التي يجب استخدامها لمعلَمة النطاق AuthSub/Oauth 1؟
المَعلمة scope مطلوبة من AuthSub وOAuth 1 لتحديد خدمات Google التي سيتمكّن تطبيقك من الوصول إليها. لمعرفة تفاصيل حول بروتوكول OAuth 2.0، يُرجى الاطّلاع على مستندات واجهة برمجة التطبيقات المحدّدة.

Google API اسم خدمة ClientLogin
Google Analytics Data API https://www.google.com/analytics/feeds/
Google Sites Data API http(s)://sites.google.com/feeds/
Blogger Data API http://www.blogger.com/feeds/
Book Search Data API http://www.google.com/books/feeds/
Calendar Data API http(s)://www.google.com/calendar/feeds/
Contacts Data API http(s)://www.google.com/m8/feeds/
واجهة برمجة تطبيقات المحتوى في Shopping https://www.googleapis.com/auth/structuredcontent
Documents List Data API http(s)://docs.google.com/feeds/
Finance Data API http://finance.google.com/finance/feeds/
موجز Atom في Gmail https://mail.google.com/mail/feed/atom/
Health Data API https://www.google.com/health/feeds/
https://www.google.com/h9/feeds/ (وضع حماية H9)
Maps Data API http://maps.google.com/maps/feeds/
Picasa Web Albums Data API http://picasaweb.google.com/data/
Portable Contacts API http://www-opensocial.googleusercontent.com/api/people
Sidewiki Data API http://www.google.com/sidewiki/feeds/
Spreadsheets Data API http(s)://spreadsheets.google.com/feeds/
Webmaster Tools API http://www.google.com/webmasters/tools/feeds/
YouTube Data API http://gdata.youtube.com
هل هناك أنواع مختلفة من رموز AuthSub المميزة؟ هل تنتهي صلاحية الرموز المميّزة؟
هناك نوعان من رموز AuthSub المميزة. الأول هو رمز مميّز يُستخدَم مرة واحدة ويتم تقديمه إلى تطبيق الويب الخاص بك من خلال مَعلمة طلب البحث "token". تنتهي صلاحية هذا الرمز المميّز عند استخدامه لأول مرة مع الخدمة التي تم إصداره من أجلها أو عند استبداله برمز مميّز للجلسة.

لا تنتهي صلاحية الرموز المميزة للجلسة ما لم يتم إبطالها بشكل صريح من خلال المستخدم أو طلب البيانات من واجهة برمجة التطبيقات AuthSubRevokeToken. لا يمكن استبدال الرمز المميّز للاستخدام الفردي برمز مميّز للجلسة إلا إذا كان عنوان URL الأصلي AuthSubRequest يحدّد session=1 كمعلَمة طلب بحث.
ما هو الفرق الرئيسي بين ClientLogin وAuthSub/OAuth 1؟

تم تصميم AuthSub لتطبيقات الويب. وتضمن هذه الميزة إرسال بيانات اعتماد المستخدمين بشكل آمن مباشرةً من متصفّح الويب الخاص بالمستخدم إلى خوادم Google، وليس من خلال موقع إلكتروني تابع لجهة خارجية.

يُستخدَم ClientLogin لتطبيقات الكمبيوتر المكتبي المثبَّتة. ويتطلّب ذلك أن يرسل التطبيق الذي يقدّم الطلب بيانات اعتماد المستخدم إلى Google بالنيابة عن المستخدم.

يمكنك الاطّلاع على المستندات حول واجهة برمجة التطبيقات الخاصة بمصادقة حساب Google.

هل يمكنني استخدام مصادقة ClientLogin في تطبيقات الويب التابعة لجهات خارجية؟
يُسمح باستخدام ClientLogin في تطبيقات الويب التابعة لجهات خارجية، ولكن لا يُنصح بذلك بشدة. كإحدى أفضل الممارسات، يجب ألا يطلب تطبيق الويب من المستخدم بيانات اعتماد تسجيل الدخول (قد يكون ذلك عرضة للتجسس). بدلاً من ذلك، يجب أن يخزّن التطبيق بيانات اعتماد المستخدم من جانب الخادم، وأن يكون لديه "حساب خدمة" واحد يتم استخدامه دائمًا للمصادقة مع Google.
ما هو اختبار CAPTCHA؟
اختبار CAPTCHA (اختبار تورينغ العام المؤتمت بالكامل للتمييز بين الكمبيوتر والإنسان) هو نوع من اختبارات التحدي والاستجابة يُستخدم لتحديد ما إذا كان المستخدم إنسانًا أم لا. هذه العبارة مسجَّلة كعلامة تجارية لدى "جامعة كارنيغي ميلون". يمكنك الاطّلاع على مزيد من التفاصيل على Wikipedia. لقد نفّذنا اختبار CAPTCHA في ClientLogin.
كيف يمكنني إنشاء اختبار CAPTCHA؟
يتم استخدام خوارزمية خاصة لتحديد الوقت الذي يجب فيه عرض اختبار CAPTCHA أثناء المصادقة. ستؤدي محاولات المصادقة المتكررة باستخدام بيانات اعتماد غير صحيحة غالبًا إلى ظهور تحدّي CAPTCHA.
هل يجب استخدام ClientLogin في تطبيق الويب؟
لا، يجب أن تستخدم التطبيقات المثبَّتة على الأجهزة التي يملكها المستخدمون ClientLogin. إنّ استخدام واجهة ClientLogin API في تطبيقات الويب غير آمن وننصح بشدة بعدم استخدامه.
كيف يمكنني معرفة اسم المستخدم عند استخدام AuthSub/OAuth 1؟
بما أنّه يتم منحك رمزًا مميزًا من Google يتيح الوصول إلى خلاصات المستخدم، قد لا تعرف اسم المستخدم، ما قد يشكّل مشكلة إذا كان عنوان URL الخاص بالخلاصة الذي تريد استخدامه يتضمّن اسم المستخدم كجزء منه. في هذه الحالة، يمكنك استخدام اسم المستخدم الخاص default للإشارة إلى "المستخدم الذي أستخدم رمز المصادقة الخاص به".
كيف يمكنني استخدام OAuth 1 مع مكتبات عميل Google Data API؟
راجِع المقالة استخدام OAuth 1 مع مكتبات برامج Google Data API.
كيف يمكنني استخدام AuthSub مع مكتبات برامج Google Data API؟
اطّلِع على المقالة استخدام AuthSub مع مكتبات برامج Google Data API.
كيف يمكنني استخدام ClientLogin مع مكتبات برامج Google Data API؟
اطّلِع على المقالة استخدام ClientLogin مع مكتبات برامج Google Data API.

مكتبات العملاء

ما هي لغات البرمجة التي توفّر لها Google مكتبات برامج؟

تتوفّر مكتبات العملاء Java وNET. وPython وObjective-C رسميًا من Google. بالإضافة إلى ذلك، كتب شريكنا Zend مكتبة برامج PHP للعملاء. باستخدام هذه المكتبات، يمكنك إنشاء طلبات بروتوكول Google Data وإرسالها إلى إحدى الخدمات ومعالجة ردود الخادم. تتوفّر أيضًا مكتبة برامج JavaScript للعملاء التي تتوافق حاليًا مع Blogger و"تقويم Google" و"جهات اتصال Google" فقط.

إذا كنت تكتب مكتبة برامج بلغة أخرى غير Java أو .Net أو Python أو Objective-C، وتريد مشاركتها مع منتدى مطوّري Data API، يمكنك نشرها في مجموعة مناقشة Google Data APIs. يُسعدنا معرفة رأيك.

كيف يمكنني الإبلاغ عن خطأ أو طلب ميزة في إحدى المكتبات الخاصة بالعملاء؟

يمكن الإبلاغ عن الأخطاء أو طلبات الميزات لمكتبات البرامج الخاصة بالعملاء في المواقع الجغرافية التالية:

بعد نشر الخطأ، أنشئ سلسلة محادثات في منتدى المطوّرين لواجهة برمجة التطبيقات المناسبة.

كيف يمكنني تفعيل خيارات تصحيح الأخطاء في مكتبات برامج Google Data API؟
يُرجى الاطّلاع على المقالة التالية للحصول على معلومات حول تفعيل تصحيح الأخطاء باستخدام بعض مكتبات البرامج: تصحيح أخطاء برامج Google Data API: استكشاف الزيارات من داخل برنامجك
أين يمكنني العثور على مستندات مرجعية لفئات مكتبة البرامج؟
مكتبة العميل دليل مرجعي
Java Javadoc
JavaScript JSdoc
NET. NDoc
PHP phpDoc
Python PyDoc

تحديد المشاكل وحلّها

ما هي بعض الأدوات الجيدة لتصحيح الأخطاء في HTTP؟

تتوفّر أدوات عديدة مدرَجة أدناه، ولكن قد يهمّك أيضًا قراءة المقالة On the Wire: Network Capture Tools for API Developers التي تتضمّن أمثلة مفصّلة حول كل من WireShark وFiddler.

Wireshark
‫Wireshark هي "أداة تحليل بروتوكول الشبكة". توفّر هذه الأداة إمكانية تسجيل حركة البيانات على الشبكة وتحليل المحتوى. وهي مفيدة جدًا في تصحيح الأخطاء في الزيارات التي تحدث في المكتبات التي لا يمكنك الوصول مباشرةً إلى تدفقات طلبات واستجابات HTTP. لا يمكن تحليل حركة البيانات بين تطبيقك وخدمات المصادقة باستخدام Wireshark لأنّ الاتصال مشفَّر باستخدام طبقة المقابس الآمنة (SSL). يمكن أيضًا استخدام Wireshark لتحليل حركة البيانات التي تم التقاطها باستخدام أدوات مثل tcpdump. تتوفّر أداة Wireshark من المطوّرين على شكل رمز مصدر وبرنامج تثبيت على Windows. تتوفّر حِزم تابعة لجهات خارجية على العديد من المنصات.
Fiddler
‫Fiddler هو "خادم وكيل لتصحيح أخطاء HTTP". إذا كان بإمكانك ضبط الرمز أو بيئة وقت التشغيل لاستخدام خادم وكيل لحركة بيانات HTTP، سيتوسط Fiddler بين تطبيقك وخدمات "بيانات Google"، ما يتيح لك فحص حركة البيانات. يتوافق Fiddler 2 مع SSL. لا يتوفّر Fiddler حاليًا إلا على أجهزة Windows.
cURL
‫cURL هي أداة سطر أوامر يمكنها تنفيذ طلبات HTTP/HTTPS. وهي مفيدة جدًا لاختبار التفاعلات مع إحدى الخدمات بسرعة بدون الحاجة إلى إنشاء توافق مع بروتوكول HTTP في برنامج العميل أولاً.
كيف يمكنني الحصول على معلومات تسجيل HTTP في مكتبة برامج Java؟

تستخدم مكتبات برامج Java حزمة java.util.logging لتفعيل تسجيل طلبات HTTP. سيسمح لك ذلك بتفعيل تسجيل العناوين للطلبات والاستجابات، بالإضافة إلى رموز الحالة وعناوين URL للطلبات، ولكنّه لا يسجّل حاليًا عمليات نقل البيانات الكاملة للطلبات والاستجابات. اسم أداة تسجيل البيانات المستخدَمة لهذه السجلات هو com.google.gdata.client.http.HttpGDataRequest.

في حال عرض رمز خطأ من الخوادم، سيتم عرض Exception. تتضمّن فئات الاستثناءات فئة أساسية هي com.google.gdata.util.ServiceException، كما تتضمّن طريقة عامة تُسمى getResponseBody(). يمكنك الاطّلاع على Javadoc للحصول على مزيد من المعلومات.

كيف يمكنني الحصول على معلومات تسجيل HTTP في مكتبة برامج .NET؟
تستخدم مكتبة ‎ .NET طرق التتبُّع System.Diagnostics لتسجيل مسار التنفيذ، في حال تفعيل التتبُّع. في حال حدوث خطأ، يتم عرض GDataRequestException. يحتوي الاستثناء على ResponseString يتيح لك الوصول إلى نص استجابة HTTP.
كيف يمكنني تفعيل ترميز gzip من خلاصات بيانات Google؟

لكي تتلقّى ردًا بترميز gzip من إحدى واجهات Google Data API، عليك تنفيذ إجراءَين: ضبط عنوان "Accept-Encoding" وتعديل وكيل المستخدم ليتضمّن السلسلة "gzip". في ما يلي مثال على عناوين منسَّقة بشكل صحيح:

User-Agent: my program (gzip)
Accept-Encoding: gzip
لماذا تظهر لي رسالة الخطأ "تعذّر الاتصال بـ sslv2" عند استخدام برنامج PHP؟

بدءًا من يوليو 2009، بدأنا بإيقاف بروتوكول SSLv2 على خوادمنا كإجراء احترازي لتحسين الأمان. للأسف، هناك خطأ في الإصدارات المبكرة من مكتبة برامج PHP التي تم إصدارها قبل تموز (يوليو) 2007 (الإصدار 1.0.0 والإصدارات الأقدم) يفرض استخدام SSLv2 في عمليات الربط. عند الاتصال بخادم تم إيقاف SSLv2 عليه، سيظهر الخطأ التالي:

PHP Fatal error:  Uncaught exception 'Zend_Http_Client_Adapter_Exception' with message 'Unable to Connect to sslv2://www.google.com:443.'

لحلّ هذا الخطأ، عليك الترقية إلى إصدار أحدث من مكتبة برامج PHP، ويمكنك الحصول عليه من http://framework.zend.com/download.

إذا لم تتمكّن من الترقية إلى إصدار أحدث، يمكنك حلّ هذه المشكلة عن طريق إضافة الرمز التالي إلى تطبيقك، حيث يمثّل $gdata مثيل Zend_Gdata الحالي (أو فئة فرعية مناسبة):

$gdata->getHttpClient()->setConfig(array('ssltransport' => 'ssl'));
كيف يمكنني الحصول على مستند خدمة Atom الذي يصف خلاصة؟

يمكنك الحصول على مستند خدمة Atom عن طريق تمرير المَعلمة alt=atom-service في الطلب. ملاحظة: لن تعرض سوى الإصدار 2 من Google Data APIs مستند خدمة يتوافق مع بنية مستند خدمة AtomPub. سيظل الإصدار 1 من Google Data APIs يعرض مستند خدمة، ولكنّه يستند إلى مسودة مواصفات AtomPub سابقة (هناك تغييرات في بناء الجملة ومساحة الاسم بين الإصدارين).