GoLocal!
فتح لوحة المعلومات
دليل مطور Bubbleوقت تشغيل مجاني 4.1.23

بحث آمن متعدد اللغات باستخدام GoLocal Query

بحث سهل الاستخدام للمبتدئين دليل إلى عنصر GoLocal الرئيسي، وعنصر GoLocal Query الاختياري، وعناصر التحكم في البحث التلقائي لـ Bubble، والطريقة الأكثر أمانًا لإبقاء الواجهات المترجمة منفصلة عن منطق قاعدة البيانات.

المفهوم الأساسي

يحتوي تطبيق Bubble عادةً على لغة أساسية يتم من خلالها إنشاء تسميات قاعدة البيانات وقيم العرض Option Set وشروط النص المضمنة. قد يعرض GoLocal هذه القيم بلغة أخرى، لكن منطق Bubble لا يزال بإمكانه توقع القيمة الأساسية.

Project source

الإنجليزية

الفئة المخزنة: الأخبار

يرى الزائر

الفرنسية

التسمية المرئية: Actualités

عمليات البحث Bubble

الأخبار

قيمة المصدر المقيسة

السلامة القاعدة: يظل الإدخال المرئي هو القيمة التي تواجه المستخدم والقيمة التي تواجه الحفظ. يتم استخدام normalized_query منفصل فقط عندما يحتاج Bubble بشكل صريح إلى نص باللغة المصدر.

ما هو عنصر GoLocal الذي يجب أن أستخدمه؟

يحتوي المكون الإضافي على عنصرين Bubble مختلفين غير مرئيين. يحلون مشاكل مختلفة. تحتاج معظم الصفحات إلى العنصر GoLocal! الرئيسي؛ فقط الصفحات التي بها مشكلة محددة في البحث عن النص هي التي تحتاج إلى GoLocal Query.

توفر المكونات الإضافية: يتم تضمين العنصر GoLocal Query المنفصل في المكون الإضافي Free/API-key Bubble ويعمل مع مشروع GoLocal SaaS النشط.

مترجم مطلوب

GoLocal!

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

  • عادةً ما يتم وضع مثيل واحد في رأس قابل لإعادة الاستخدام أو عنصر آخر مشترك بواسطة الصفحة.
  • استخدم حقوله لمفتاح API، وعنصر واجهة المستخدم، والمعرفات/المحددات المستبعدة، وسلوك المصدر/الهدف.
  • استخدم حالاتها وأحداثها عندما يجب أن يعرف Bubble اللغة المحددة أو حالة الترجمة.

مساعد منطقي اختياري

GoLocal Query

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

  • أضفها فقط عندما يتعين على الإدخال العادي البحث أو مقارنة النص المخزن في لغة مصدر المشروع.
  • استخدم عنصر استعلام واحدًا لكل إدخال بحث مستقل.
  • لا تستخدم أبدًا normalized_query لحفظ الأسماء أو العناوين أو الأوصاف أو الرسائل التي أنشأها المستخدم.
عنصر أو مهمة Bubbleما يجب استخدامه
نص، زر، مجموعة، واجهة مستخدم قابلة لإعادة الاستخدامGoLocal! فقط
الإدخال الذي يحفظ بيانات المستخدمقيمة الإدخال الأصلية
تصفية الإدخال العادي لحقل نص باللغة الإنجليزيةواحد GoLocal Query
Bubble SearchBox أو القائمة المنسدلةتلقائي
الإصدار القديم أو Select2 MultiDropdownتلقائي
الإدخال متعدد الأسطر، Quill, contenteditableقيمة المحرر الأصلية
قيد المجموعة المتكررةThing/Option Set/ID أولاً
البريد الإلكتروني، الهاتف، كلمة المرور، الرقم، التاريخ، المعرف، الملفالقيمة الأصلية
بسيطة القرار: إذا كانت القيمة معروضة، فاستخدم المترجم الرئيسي. إذا تم حفظ القيمة، استخدم قيمة Bubble الأصلية. إذا كان يجب مطابقة العبارة المترجمة مع نص اللغة المصدر، فاستخدم عنصر تحكم تلقائي مدعوم أو عنصر GoLocal Query مخصص.

المفضل بنية Bubble

كلما كان ذلك ممكنًا، قم ببناء شروط حول أشياء Bubble أو خيارات Option Set أو المعرفات الفريدة أو الرموز الثابتة - وليس نص العرض المترجم. يجب أن تغير الترجمة ما يراه الشخص، وليس هوية السجل.

الأفضل: مقارنة الكائن

Current cell's Article's Category
is Category News

قد يرى الزائر "Actualités"، لكن Bubble يقارن بين خيار Category Thing أو خيار Option Set نفسه.

استخدم الاستعلام فقط لمطابقة النص

Category name contains
GoLocal Query Categories's normalized_query

يعتبر هذا مناسبًا عندما تقوم قاعدة البيانات أو شرط موجود بالبحث بشكل حقيقي النص الإنجليزي الأساسي.

مثال لمجموعة الفئات

اللغة الإنجليزية الأساسيةالعرض الفرنسي
الأخبارالوقائع
الرأيالرأي
البرنامج التعليميالبرنامج التعليمي
الدليلالدليل
المراجعةAvis
التاريخالتاريخ
أخرىAutre

البحث العكسي التلقائي

وقت تشغيل مجاني 4.1.23 يطبق البحث العكسي تلقائيًا فقط على عناصر تحكم Bubble التي يكون غرضها تحديد قيمة موجودة أو البحث عنها:

Bubble SearchBox
Bubble Dropdown
Bubble القديم MultiDropdown
Select2 الحالي MultiDropdown

أنواع الزائرين: الوقائع

مطابقات التحكم: الأخبار

يستمر الزائر في راجع: الوقائع

لدى كل عنصر تحكم مدعوم حالة عكسية معزولة، بما في ذلك عناصر تحكم متعددة في نفس الصفحة. لا تضف عنصر GoLocal Query فقط لتكرار هذا السلوك المضمن.

Bubble SearchBox

استخدمه عندما يبحث الزائر عن شيء Bubble موجود ويحدده. يساعد GoLocal العبارة المترجمة على مطابقة النص الأساسي الذي يستخدمه SearchBox.

Bubble Dropdown

استخدمه لتحديد واحد من قائمة ثابتة أو ديناميكية موجودة. يظل الخيار المحدد هو قيمة Bubble الحقيقية.

Bubble القديم MultiDropdown

استخدمه لتحديد العديد من الخيارات الموجودة في تطبيقات Bubble الأقدم. تتم تسوية كل عنصر تحكم بشكل مستقل.

Select2 MultiDropdown

استخدمه مع عناصر التحكم الحالية متعددة التحديد القابلة للبحث. يمكن أن يتطابق نص البحث المكتوب مع تسميات خيارات اللغة المصدر دون تغيير المدخلات العادية.

لا يكون الإدخال العادي Bubble تلقائيًا بشكل متعمد. لا يمكن للمكون الإضافي أن يخمن بشكل آمن ما إذا كان الإدخال هو مربع بحث، أو اسم شخص، أو عنوان قاعدة بيانات، أو قيمة شرطية، أو نص سيتم حفظه. أضف GoLocal Query فقط للإدخال المعين الذي يتطلب منطقه النهائي نصًا أساسيًا.

استخدام GoLocal Query

استخدم العنصر غير المرئي GoLocal Query عندما يقوم إدخال Bubble العادي بتشغيل البحث عن نص أو لغة المصدر الشرطية أو الخلفية/API عمدًا.

1

أضف عنصر استعلام واحدًا لهذا الإدخال

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

Element name: GoLocal Query Categories
2

ربط حقل الاستعلام الخاص به

Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180

يقوم Bubble بتحديث العنصر تلقائيًا عندما تتغير قيمة الإدخال الديناميكية. ليس هناك حاجة لسير عمل تم تغيير الإدخال فيه.

3

استخدم normalized_query فقط في منطق اللغة المصدر

GoLocal Query Categories's normalized_query

استخدم هذه القيمة في قيد مجموعة متكررة، أو عامل تصفية متقدم، أو نص شرطي، أو معلمة API التي تتوقع اللغة الإنجليزية.

4

احتفظ بعمليات الحفظ والتحقق من الصحة متصلة بالإدخال

Save Category Name = Input Category Search's value

لا تستبدل مطلقًا قيمة حفظ عادية، أو فحص البريد الإلكتروني، أو حساب الأرقام، أو فحص الحقول المطلوبة بـ normalized_query.

ماذا يحدث أثناء قيام الزائر بالكتابة؟

  1. 1تغييرات الإدخال: يمرر Bubble قيمة الإدخال الحالية المحددة في حقل الاستعلام.
  2. 2ينتظر الارتداد لفترة وجيزة: الإعداد الافتراضي 180 مللي ثانية تمنع طلبًا لكل ضغطة مفتاح.
  3. 3تتم تسوية العبارة الأحدث: على سبيل المثال، يتم تحويل "Actualités" إلى "News". لا يمكن للطلبات الأقدم غير المكتملة أن تحل محل النتيجة الأحدث.
  4. 4يستقبل Bubble الحالات: يتحول normalized_query إلى "News"، ويصبح is_normalizing "لا"، ويتم تشغيل الحدث المطبيع.
  5. 5يستهلكه المنطق المقصود فقط: يستخدم مرشح المجموعة المكررة أو الشرطية أو API normalized_query؛ لا تزال عمليات الحفظ تستخدم الإدخال الأصلي.

أمثلة عملية على Bubble

المجموعة المتكررة

البحث في فئات المقالات الإنجليزية من إدخال فرنسي

أنواع الزائرين الوقائع. تخزن قاعدة البيانات الأخبار. قم بتعيين قيد اسم الفئة للمجموعة المتكررة على:

GoLocal Query Categories's normalized_query

تفضيل تحديد فئة Thing/Option Set عندما يكون متاحًا؛ استخدم تسوية النص فقط عندما يكون الفلتر مستندًا بالفعل إلى النص.

Bubble شرطي

قارن مع قيمة لغة مصدر مشفرة

When GoLocal Query Status's is_normalizing is no
and GoLocal Query Status's normalized_query is "Archived"

إذا كان الشرط يتحكم في سير عمل مهم، فانتظر حتى تنتهي التسوية. بالنسبة لتصفية العرض فقط، قد يكون الإجراء الاحتياطي الأولي كافيًا.

الخلفية أو API

أرسل استعلامًا باللغة الأساسية إلى نقطة النهاية

API parameter q = GoLocal Query Products's normalized_query
Run only when is_normalizing is no

يجب تجاوز المعرفات وUUID ورسائل البريد الإلكتروني والرموز المميزة والتواريخ والقيم الرقمية GoLocal Query وسيتم إرساله دون تغيير.

إرشادات كاملة للمبتدئين

تصفية المقالات حسب اسم الفئة المترجم

افترض أن التطبيق تم إنشاؤه باللغة الإنجليزية. حقل قاعدة البيانات اسم الفئة يحتوي على الأخبار، لكن الزائر الفرنسي يكتب الوقائع في إدخال عادي.

1. قم بتسمية إدخال Bubble بوضوح
Input Category Search
2. إضافة وتسمية مساعد واحد غير مرئي
GoLocal Query Categories
3. ربط الحقل المساعد
GoLocal Query Categories → Query
= Input Category Search's value
4. قم بتعيين قيد النص للمجموعة المتكررة
Search for Articles
Category name = GoLocal Query Categories's normalized_query
5. احتفظ بمسارات عمل الإنشاء/التحرير دون تغيير
Create a new Article's title
= Input Article Title's value

النتيجة: يبحث الزائر باللغة الفرنسية، ويعثر Bubble على قيمة قاعدة البيانات باللغة الإنجليزية، ولا تتم إعادة كتابة أي نص أدخله المستخدم أو حفظه في نموذج آخر.

الصفحات ذات المدخلات المتعددة

قم بإنشاء مثيل GoLocal Query واحد لكل سياق بحث مستقل. كل مثيل له قيمته الخاصة، ومؤقت الارتداد، وحارس التسلسل، والحالات، والأحداث، لذلك لا يمكن لمدخل واحد أن يحل محل آخر.

إدخال بحث المقالةGoLocal Query المقالاتمجموعة المقالات المتكررة
أدخل بحث العملاءعملاء GoLocal Queryمرشح API للعميل
مرشح علامات الإدخالعلامات GoLocal Queryشرط العلامة
لا تعيد استخدام عنصر استعلام واحد لمدخلات غير ذات صلة. إذا كانت القيمة يجب أن تعبر حدود عنصر قابل لإعادة الاستخدام، فانسخ normalized_query لهذا العنصر المحدد إلى حالة مخصصة Bubble عندما يتم إطلاق normalized الحدث.

ما الذي يجب أن يبقى لم تمس

استخدم GoLocal Query لـ

  • نص حر الشكل يُستخدم للبحث في حقول قاعدة بيانات اللغة الأساسية
  • شروط النص التي تتوقع ثابتًا باللغة الإنجليزية
  • معلمات الاستعلام API التي تتوقع واجهتها الخلفية اللغة الإنجليزية
  • عناصر التحكم في بحث الطرف الثالث التي تعرض الاستعلام المكتوب الخاص بها إلى Bubble

لا تستخدمها لحفظ

  • الأسماء أو العناوين أو التعليقات أو الأوصاف أو العلامات التي أنشأها المستخدم
  • Quill أو نص منسق أو contenteditable أو محتوى الإدخال متعدد الأسطر
  • رسائل البريد الإلكتروني أو كلمات المرور أو الهواتف أو المعرفات أو التواريخ أو الأرقام أو الملفات أو التحقق من الصحة
  • أشياء Bubble أو كائنات Option Set التي يمكن مقارنتها مباشرة

يتم عرض محتوى المستخدم المحفوظ لاحقًا

لا يزال من الممكن عرض الإدخال المحمي لاحقًا داخل عنصر نص Bubble عادي. قم بتمييز حاوية العرض بفئة قابلة لإعادة الاستخدام مثل .gl-user-content وأضفها إلى عنصر GoLocal الرئيسي do_not_translate_selectors. بالنسبة للمجموعات المتكررة، استخدم فئة/محددًا بدلاً من تكرار معرف HTML نفسه عبر الصفوف.

الحقول والحالات والأحداث

الحقول

Querytext

اربط بقيمة إدخال Bubble واحدة مرئية.

Enabledyes/no

الافتراضي نعم. عند التعطيل، يمر النص المقصوص دون تغيير.

Debounce (ms)number

الافتراضي 180. النطاق الموصى به للبحث هو 150–250 مللي ثانية.

الحالات

original_querytext

القيمة الدقيقة المستلمة من Bubble قبل التسوية.

normalized_querytext

Canonical قيمة اللغة المصدر للبحث أو منطق المقارنة.

is_normalizingyes/no

نعم أثناء حل أحدث استعلام غير فارغ.

normalization_foundyes/no

نعم عند العثور على تعيين لغة المصدر.

last_errortext

رسالة فشل فني؛ فارغ أثناء التشغيل العادي.

مطبيع

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

normalization_failed

يُطلق النار بسبب عطل فني. يظل الاستعلام الأولي بمثابة بديل قابل للاستخدام وتظهر التفاصيل في last_error.

استكشاف أخطاء إعدادات Bubble الشائعة وإصلاحها

normalized_query يساوي دائمًا الإدخال الأولي

تأكد من أن عنصر GoLocal! الرئيسي موجود وجاهز، وأن اللغة المصدر للمشروع هي تم تكوينه بشكل صحيح، ويرتبط حقل الاستعلام بالإدخال المقصود. قد تستخدم عبارة غير معروفة النص الأولي عمدًا كبديل آمن.

تعرض المجموعة المكررة النتيجة السابقة لفترة وجيزة

للتصفية الصارمة، اعرض حالة التحميل أو قم بتشغيل البحث النهائي فقط عندما تكون حالة is_normalizing لعنصر الاستعلام المطابق هي "لا". يمنع حارس التسلسل الطلب الأقدم من استبدال نتيجة أحدث.

تم تغيير العنوان أو الوصف المحفوظ

يشير سير عمل الحفظ إلى normalized_query أو نص العرض المترجم. قم بتغييره مرة أخرى إلى قيمة الإدخال الأصلية، أو الإدخال المتعدد الأسطر، أو قيمة محرر النص المنسق. GoLocal Query مخصص لمطابقة المنطق فقط.

يتداخل مدخلان مع بعضهما البعض

امنح كل بحث مستقل مدخلات لعنصر GoLocal Query الخاص به. لا تقم بالتبديل ديناميكيًا لمساعد واحد بين المدخلات غير ذات الصلة.

لا يقوم محدد الجهة الخارجية بالمطابقة العكسية

يقتصر الدعم التلقائي على Bubble SearchBox وBubble Dropdown وMultiDropdown القديم وSelect2 MultiDropdown. إذا كشف عنصر التحكم التابع لجهة خارجية نصًا مكتوبًا إلى Bubble، فقم بتوصيل هذا النص بعنصر GoLocal Query مخصص.

تتم ترجمة محتوى المستخدم المحفوظ عند عرضه لاحقًا

أضف فئة قابلة لإعادة الاستخدام مثل .gl-user-content إلى حاوية العرض الخاصة به وقم بتضمين هذا المحدد في do_not_translate_selectors على الجانب الرئيسي عنصر GoLocal!.

الإدخال موجود داخل مجموعة متكررة

لا تضع عنصر استعلام واحدًا في كل خلية ولا تكرر معرفات HTML. تفضيل تصفية المجموعة المكررة قبل عرضها؛ بخلاف ذلك، احتفظ بمساعد الاستعلام خارج المجموعة المتكررة وقم بتمرير قيمة محددة/بحث واحدة فيها.

قائمة التحقق من القبول

  1. 1ابحث عن نفس السجل باللغتين الإنجليزية والفرنسية.
  2. 2اكتب بسرعة وتأكد من أن النتيجة الأقدم لا تحل محل نتيجة أحدث أبدًا.
  3. 3امسح الإدخال وأكد إعادة تعيين المجموعة المتكررة.
  4. 4تبديل اللغة عندما لا يكون الإدخال فارغًا.
  5. 5اختبر مدخلي بحث مستقلين في نفس الصفحة.
  6. 6احفظ عنوانًا فرنسيًا مع علامات التشكيل وتأكد من تخزين النص الدقيق.
  7. 7اكتب والصقه في Quill؛ لا ينبغي إعادة كتابة أي من المسارين.
  8. 8اختبر استعلامًا غير معروف وتأكد من أن الإجراء الاحتياطي الأولي يبقي الصفحة قابلة للاستخدام.
  9. 9تأكد من أن كل سير عمل حفظ يستخدم قيمة الإدخال الأصلية.
  10. 10تأكد من سير عمل اللغة المصدر المهمة، انتظر is_normalizing = no.

قاعدة القرار السريع

العرض والحفظ يستخدم الإدخال. تستخدم مطابقة النص الأساسية GoLocal Query.

إذا كان بإمكان Bubble مقارنة شيء أو خيار Option Set أو معرف أو رمز ثابت، فاستخدم هذا الكائن مباشرة. أضف GoLocal Query فقط عندما يجب مطابقة قيمة النص الحر المترجم مع نص اللغة المصدر الأساسي.