المفهوم الأساسي
يحتوي تطبيق Bubble عادةً على لغة أساسية يتم من خلالها إنشاء تسميات قاعدة البيانات وقيم العرض Option Set وشروط النص المضمنة. قد يعرض GoLocal هذه القيم بلغة أخرى، لكن منطق Bubble لا يزال بإمكانه توقع القيمة الأساسية.
Project source
الإنجليزية
الفئة المخزنة: الأخبار
يرى الزائر
الفرنسية
التسمية المرئية: Actualités
عمليات البحث Bubble
الأخبار
قيمة المصدر المقيسة
normalized_query منفصل فقط عندما يحتاج Bubble بشكل صريح إلى نص باللغة المصدر.ما هو عنصر GoLocal الذي يجب أن أستخدمه؟
يحتوي المكون الإضافي على عنصرين Bubble مختلفين غير مرئيين. يحلون مشاكل مختلفة. تحتاج معظم الصفحات إلى العنصر GoLocal! الرئيسي؛ فقط الصفحات التي بها مشكلة محددة في البحث عن النص هي التي تحتاج إلى GoLocal Query.
مترجم مطلوب
GoLocal!
هذا هو محرك الترجمة الرئيسي. فهو يقوم بتحميل مشروعك، ويترجم محتوى الصفحة، ويعرض أداة اللغة، وينشر أحداث اللغة والترجمة الحالية.
- عادةً ما يتم وضع مثيل واحد في رأس قابل لإعادة الاستخدام أو عنصر آخر مشترك بواسطة الصفحة.
- استخدم حقوله لمفتاح API، وعنصر واجهة المستخدم، والمعرفات/المحددات المستبعدة، وسلوك المصدر/الهدف.
- استخدم حالاتها وأحداثها عندما يجب أن يعرف Bubble اللغة المحددة أو حالة الترجمة.
مساعد منطقي اختياري
GoLocal Query
هذا لا يترجم الصفحة ولا يعرض أداة. فهو يحول عبارة بحث واحدة يدخلها الزائر إلى عبارة لغة المصدر الأساسية لتطبيقك لمنطق Bubble.
- أضفها فقط عندما يتعين على الإدخال العادي البحث أو مقارنة النص المخزن في لغة مصدر المشروع.
- استخدم عنصر استعلام واحدًا لكل إدخال بحث مستقل.
- لا تستخدم أبدًا normalized_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يعتبر هذا مناسبًا عندما تقوم قاعدة البيانات أو شرط موجود بالبحث بشكل حقيقي النص الإنجليزي الأساسي.
مثال لمجموعة الفئات
البحث العكسي التلقائي
وقت تشغيل مجاني 4.1.23 يطبق البحث العكسي تلقائيًا فقط على عناصر تحكم Bubble التي يكون غرضها تحديد قيمة موجودة أو البحث عنها:
أنواع الزائرين: الوقائع
مطابقات التحكم: الأخبار
يستمر الزائر في راجع: الوقائع
لدى كل عنصر تحكم مدعوم حالة عكسية معزولة، بما في ذلك عناصر تحكم متعددة في نفس الصفحة. لا تضف عنصر GoLocal Query فقط لتكرار هذا السلوك المضمن.
Bubble SearchBox
استخدمه عندما يبحث الزائر عن شيء Bubble موجود ويحدده. يساعد GoLocal العبارة المترجمة على مطابقة النص الأساسي الذي يستخدمه SearchBox.
Bubble Dropdown
استخدمه لتحديد واحد من قائمة ثابتة أو ديناميكية موجودة. يظل الخيار المحدد هو قيمة Bubble الحقيقية.
Bubble القديم MultiDropdown
استخدمه لتحديد العديد من الخيارات الموجودة في تطبيقات Bubble الأقدم. تتم تسوية كل عنصر تحكم بشكل مستقل.
Select2 MultiDropdown
استخدمه مع عناصر التحكم الحالية متعددة التحديد القابلة للبحث. يمكن أن يتطابق نص البحث المكتوب مع تسميات خيارات اللغة المصدر دون تغيير المدخلات العادية.
استخدام GoLocal Query
استخدم العنصر غير المرئي GoLocal Query عندما يقوم إدخال Bubble العادي بتشغيل البحث عن نص أو لغة المصدر الشرطية أو الخلفية/API عمدًا.
أضف عنصر استعلام واحدًا لهذا الإدخال
ضعه مرة واحدة على الصفحة أو في العنصر القابل لإعادة الاستخدام الذي يمتلك الإدخال. لا تضعه في كل خلية مجموعة متكررة.
Element name: GoLocal Query Categoriesربط حقل الاستعلام الخاص به
Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180يقوم Bubble بتحديث العنصر تلقائيًا عندما تتغير قيمة الإدخال الديناميكية. ليس هناك حاجة لسير عمل تم تغيير الإدخال فيه.
استخدم normalized_query فقط في منطق اللغة المصدر
GoLocal Query Categories's normalized_queryاستخدم هذه القيمة في قيد مجموعة متكررة، أو عامل تصفية متقدم، أو نص شرطي، أو معلمة API التي تتوقع اللغة الإنجليزية.
احتفظ بعمليات الحفظ والتحقق من الصحة متصلة بالإدخال
Save Category Name = Input Category Search's valueلا تستبدل مطلقًا قيمة حفظ عادية، أو فحص البريد الإلكتروني، أو حساب الأرقام، أو فحص الحقول المطلوبة بـ normalized_query.
ماذا يحدث أثناء قيام الزائر بالكتابة؟
- 1تغييرات الإدخال: يمرر Bubble قيمة الإدخال الحالية المحددة في حقل الاستعلام.
- 2ينتظر الارتداد لفترة وجيزة: الإعداد الافتراضي 180 مللي ثانية تمنع طلبًا لكل ضغطة مفتاح.
- 3تتم تسوية العبارة الأحدث: على سبيل المثال، يتم تحويل "Actualités" إلى "News". لا يمكن للطلبات الأقدم غير المكتملة أن تحل محل النتيجة الأحدث.
- 4يستقبل Bubble الحالات: يتحول normalized_query إلى "News"، ويصبح is_normalizing "لا"، ويتم تشغيل الحدث المطبيع.
- 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 وسيتم إرساله دون تغيير.
إرشادات كاملة للمبتدئين
تصفية المقالات حسب اسم الفئة المترجم
افترض أن التطبيق تم إنشاؤه باللغة الإنجليزية. حقل قاعدة البيانات اسم الفئة يحتوي على الأخبار، لكن الزائر الفرنسي يكتب الوقائع في إدخال عادي.
Input Category SearchGoLocal Query CategoriesGoLocal Query Categories → Query
= Input Category Search's valueSearch for Articles
Category name = GoLocal Query Categories's normalized_queryCreate a new Article's title
= Input Article Title's valueالنتيجة: يبحث الزائر باللغة الفرنسية، ويعثر Bubble على قيمة قاعدة البيانات باللغة الإنجليزية، ولا تتم إعادة كتابة أي نص أدخله المستخدم أو حفظه في نموذج آخر.
الصفحات ذات المدخلات المتعددة
قم بإنشاء مثيل GoLocal Query واحد لكل سياق بحث مستقل. كل مثيل له قيمته الخاصة، ومؤقت الارتداد، وحارس التسلسل، والحالات، والأحداث، لذلك لا يمكن لمدخل واحد أن يحل محل آخر.
إدخال بحث المقالةGoLocal Query المقالاتمجموعة المقالات المتكررةأدخل بحث العملاءعملاء GoLocal Queryمرشح API للعميلمرشح علامات الإدخالعلامات GoLocal Queryشرط العلامة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_querytextCanonical قيمة اللغة المصدر للبحث أو منطق المقارنة.
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ابحث عن نفس السجل باللغتين الإنجليزية والفرنسية.
- 2اكتب بسرعة وتأكد من أن النتيجة الأقدم لا تحل محل نتيجة أحدث أبدًا.
- 3امسح الإدخال وأكد إعادة تعيين المجموعة المتكررة.
- 4تبديل اللغة عندما لا يكون الإدخال فارغًا.
- 5اختبر مدخلي بحث مستقلين في نفس الصفحة.
- 6احفظ عنوانًا فرنسيًا مع علامات التشكيل وتأكد من تخزين النص الدقيق.
- 7اكتب والصقه في Quill؛ لا ينبغي إعادة كتابة أي من المسارين.
- 8اختبر استعلامًا غير معروف وتأكد من أن الإجراء الاحتياطي الأولي يبقي الصفحة قابلة للاستخدام.
- 9تأكد من أن كل سير عمل حفظ يستخدم قيمة الإدخال الأصلية.
- 10تأكد من سير عمل اللغة المصدر المهمة، انتظر is_normalizing = no.
قاعدة القرار السريع
العرض والحفظ يستخدم الإدخال. تستخدم مطابقة النص الأساسية GoLocal Query.
إذا كان بإمكان Bubble مقارنة شيء أو خيار Option Set أو معرف أو رمز ثابت، فاستخدم هذا الكائن مباشرة. أضف GoLocal Query فقط عندما يجب مطابقة قيمة النص الحر المترجم مع نص اللغة المصدر الأساسي.