دليل الإعداد الكامل
كل ما تحتاجه لتثبيت GoLocal! وتهيئته واستخدامه لجعل تطبيق Bubble.io متعدد اللغات.
بيانات Bubble آمنة، واجهة مستخدم مستقرة الترجمة والمنطق الصريح متعدد اللغات
قم بتحديث المكون الإضافي من علامة التبويب المكونات الإضافية Bubble قبل اختبار الميزات أدناه. يظل تكوين Project والترجمات والفوترة مرتبطًا بمشروع GoLocal. لا يحتاج مطورو التطبيقات إلى لصق برنامج نصي أو الاحتفاظ به في رأس Bubble الخاص بـ HTML؛ يحتوي إصدار البرنامج الإضافي المنشور على وقت التشغيل المدعوم.
تبقى البيانات القابلة للتحرير دون تغيير
لا تتم ترجمة المدخلات العادية والمدخلات متعددة الأسطر ومحررات Quill ومناطق contenteditable الأخرى عكسيًا أثناء قيام المستخدم بالكتابة.
المحتوى القابل لإعادة الاستخدام الاستثناءات
احمِ قيم قاعدة البيانات التي يدخلها المستخدم وخلايا المجموعة المتكررة باستخدام do_not_translate_selectors بدلاً من معرفات HTML المكررة.
البحث العكسي التلقائي الآمن
Bubble SearchBox، القائمة المنسدلة، يمكن لـ MultiDropdown وSelect2 MultiDropdown مطابقة الاختيارات المترجمة مقابل قيم اللغة المصدر.
عنصر GoLocal Query
استخدم عنصر GoLocal Query مستقلًا واحدًا لكل إدخال عادي فقط عندما يقوم هذا الإدخال بتشغيل بحث نصي باللغة المصدر أو شرط أو مرشح API.
1 تثبيت المكون الإضافي
يتوفر GoLocal! باعتباره مكونًا إضافيًا مجانيًا في سوق Bubble.io. لا تدفع أي شيء لتثبيته، فالمكون الإضافي نفسه يكلف 0 دولار. تنطبق الفوترة فقط عند توصيله بمشروع GoLocal! باستخدام مفتاح API.
افتح محرر Bubble ← علامة التبويب "المكونات الإضافية".
انقر فوق "+ إضافة مكونات إضافية" وابحث عن "GoLocal" أو "Auto Translator".
قم بتثبيت GoLocal! - المترجم التلقائي. إذا كان مثبتًا بالفعل، فقم بتحديثه إلى أحدث إصدار منشور.
اسحب عنصر GoLocal! إلى أي صفحة (عادةً رأس قابل لإعادة الاستخدام). العنصر غير مرئي.
2 قم بإنشاء حسابك وProject
لتفعيل البرنامج المساعد، تحتاج إلى مفتاح API. يتم إنشاء مفاتيح API في لوحة معلومات GoLocal! الخاصة بك عند إنشاء مشروع.
أ نسخة تجريبية مجانية لمدة 5 أيام يبدأ تلقائيا. لا حاجة لبطاقة الائتمان. لك مفتاح API يتم إنشاؤه على الفور.
انسخ مفتاح API — ستحتاج إليه عند تكوين المكون الإضافي في Bubble.
myapp.bubbleapps.io، أدخل ذلك بالضبط.3 تكوين البرنامج المساعد
انقر فوق العنصر GoLocal!. على الأقل، تعيين حقل واحد:
الحد الأدنى من الإعداد المطلوب:
api_key→ الصق مفتاح API من مشروع GoLocal! الخاص بكباستخدام مفتاح API فقط، يقوم GoLocal! بتحميل تكوين المشروع، ويستخدم متصفح الزائر أو تحديد عناصر واجهة المستخدم المحفوظة، ويترجم نص واجهة المستخدم المرئي، ويعرض محول اللغة.
4 حقول البرنامج المساعد - مرجع
api_keyمطلوبمفتاح API الخاص بمشروعك من لوحة معلومات GoLocal!.
مرتبط بالمجال - آمن للتضمين في التعليمات البرمجية من جانب العميل.
source_languageاختياريرمز مكون من حرفين للغة الأصلية لتطبيقك. أمثلة: en, uk, de.
عادة، اترك هذا فارغًا عندما تكون اللغة المصدر قد تم تكوينها بالفعل في مشروع GoLocal. قم بتعيينه فقط عندما تحتاج عمدًا إلى تجاوز قيمة المشروع/العامل.
target_languageاختياريعادة اترك هذا الحقل فارغا. يتحكم عنصر واجهة المستخدم والاختيار المستمر للزائر في اللغة النشطة عبر عمليات تحميل الصفحة.
قيمة مشفرة مثل fr يفرض تلك اللغة عند تهيئة العنصر ويمكنه تجاوز اختيار الزائر. ربط قيمة ديناميكية فقط عندما يمتلك تطبيق Bubble حالة اللغة عن قصد ويوفر رمز لغة ثابتًا واحدًا في كل صفحة.
enabledاختياريخانة الاختيار التي تتحكم في ما إذا كانت الترجمة نشطة أم لا. تقصير: فحص.
show_widgetاختياريإظهار أداة تحويل اللغة المضمنة. تقصير: فحص. قم بإيقاف تشغيله فقط عندما يوفر تطبيق Bubble عناصر التحكم والمكالمات اللغوية الخاصة به switch_language.
widget_positionاختياريموقف القطعة: bottom-right (تقصير)، bottom-left, top-right, top-left.
dataset_1اختياريقم بترجمة قاعدة بيانات Bubble مسبقًا للتحميل الفوري.
التنسيق المنظم (موصى به):
// إعداد Bubble:
قم بالبحث عن (الفئات): التنسيق كنص
محتوى: {عنوان هذه الفئة ; إسم هذه الفئة ; هيئة هذه الفئة}
المحدد: ,
// إلحاق نوع آخر:
:إلحاق قم بالبحث عن (علاجات): تنسيق كنص
محتوى: {عنوان هذا العلاج؛ اسم هذا العلاج؛ وصفة هذا العلاج}
المحدد: ,
الحقول في الداخل { } مفصولة بها ; — كتل مفصولة ,. يرى مجموعات البيانات للحصول على التفاصيل.
do_not_translate_idsاختياريمعرفات العناصر المفصولة بفواصل إلى لا تترجم أبدا. يؤدي تحديد معرف المجموعة/الحاوية إلى استبعاد كافة العناصر الفرعية.
مثال: user-bio, code-block, brand-section
يجب أن تكون معرفات HTML فريدة. لا تقم بإعادة استخدام نفس المعرف في خلايا المجموعة المتكررة؛ استخدم do_not_translate_selectors مع فئة بدلاً من ذلك.
do_not_translate_selectorsاختياريمحددات CSS للمحتوى القابل لإعادة الاستخدام أو المتكرر الذي يجب أن يظل كما هو مُخزن تمامًا. يتم استبعاد العنصر المطابق وجميع أبنائه.
أمثلة: .gl-user-content, [data-user-content], [id^="gl-user-content-"]
يوصى به لقيم قاعدة البيانات التي يدخلها المستخدم والمجموعات المتكررة. يمكن لمحدد الفئة أو بادئة المعرف مطابقة العديد من الصفوف بأمان دون إنشاء معرفات HTML مكررة.
private_translate_idsاختياريالعناصر التي يتم ترجمتها لكن الترجمات لا يتم تخزينها مؤقتًا على مستوى العالم. يستخدم للبيانات لكل مستخدم (الأسماء والعناوين).
مثال: user-name, order-address
إذا كان المحتوى يجب أن يظل تمامًا كما أدخله المستخدم، فلا تستخدم هذا الحقل. استبعده باستخدام do_not_translate_selectors بدلاً من ذلك.
5 مجموعات البيانات - ترجمة قاعدة بيانات Bubble الخاصة بك
تعرض معظم تطبيقات Bubble البيانات من قاعدة البيانات. بدون مجموعات البيانات، تتم ترجمة المحتوى الديناميكي عند العرض الأول - مما يتسبب في تأخير واضح. تقوم مجموعات البيانات بترجمة كل شيء مسبقًا التحميل الفوري.
التنسيق 1: منظم - للعناصر متعددة الحقول (مستحسن)
لف كل عنصر فيه {}، حقول منفصلة مع ; (فاصلة منقوطة)، استخدم , كمحدد بين العناصر.
// Bubble: قم بالبحث عن (الفئات): التنسيق كنص
محتوى: {عنوان هذه الفئة ; إسم هذه الفئة ; هيئة هذه الفئة}
المحدد: ,
// إلحاق: قم بالبحث عن (الشفاء): تنسيق كنص
محتوى: {عنوان هذا العلاج؛ اسم هذا العلاج؛ وصفة هذا العلاج}
المحدد: ,
// نتيجة: {الصحة;العافية;الدليل...},{الجمال;العناية بالبشرة;الروتين...},{الأسبرين;Relief;خذ مرتين...}
{} مقسم على ; — الكتل المقسمة حسب , — الفواصل في النص الخاص بك آمنة.التنسيق 2: بسيط - لقوائم القيمة الفردية
بالنسبة للقيم القصيرة بدون فواصل (أسماء الفئات، العلامات):
محتوى: اسم هذه الفئة المحدد: ,
// الإخراج: إلكترونيات، ملابس، كتب، ألعاب
هام: إذا كان النص قد يحتوي على فواصل، فاستخدم دائمًا التنسيق المنظم مع {field;field} التغليف.
normalized_query عنصرًا واحدًا فقط في الفلتر أو الشرط. راجع دليل Bubble الكامل.6 حالات Bubble والأحداث والإجراءات
يمتلك عنصر GoLocal! الرئيسي ترجمة الصفحة ويكشف اللغة النشطة لـ Bubble. استخدم حالاتها في الشروط وأحداثها لبدء سير العمل عند النقطة الصحيحة في دورة حياة الترجمة.
1. وقت التشغيل جاهز
translator_ready = yes يعني أنه تمت تهيئة GoLocal. وهذا لا يعني أن كل عنصر Bubble الديناميكي قد انتهى من الترجمة.
2. تم تغيير اللغة
language_changed يتم تنشيطه عند تغيير اللغة النشطة. اقرأ current_language هنا.
3. يتم تفعيل التمريرة المكتملة
translation_complete بعد اكتمال مجموعة الترجمة. قد يُنشئ المحتوى الديناميكي دفعات لاحقة.
current_languagetextرمز اللغة النشط المكون من حرفين. استخدمه لروابط PDF، وشروط Bubble، وواجهة مستخدم اللغة المملوكة للتطبيق.
detected_languagetextلغة المصدر/المتصفح المكتشفة والتي تم الإبلاغ عنها بواسطة وقت التشغيل.
translator_readyyes/noنعم بعد الترجمة تمت تهيئة وقت التشغيل.
is_translatingyes/noنعم بينما يقوم GoLocal بمعالجة تصريح الترجمة.
translation_completeyes/noعلامة الإكمال لأحدث تمرير.
total_textsnumberعدد العناصر النصية التي تمت ملاحظتها في جلسة وقت التشغيل الحالية.
cached_local / cached_bundle / cached_servernumberعدادات ذاكرة التخزين المؤقت التشخيصية. مفيد لفحوصات الدعم والأداء.
مترجم / الأخطاء / tokens_usednumberترجمة وقت التشغيل وعدادات الأخطاء.
last_error / preload_statustextأحدث خطأ في وقت التشغيل وحالة التحميل المسبق للتشخيصات.
إجراءات العنصر
switch_language— قم بالتبديل إلى حقل الإجراء المطلوبtarget_lang، على سبيل المثالfr.Start_translation— ابدأ أو استأنف المراقبة والترجمة.Stop_translation— توقف عن المراقبة والترجمة حتى يتم إعادة التشغيل.rescan_dom— افحص المحتوى الذي يتم عرضه بشكل صريح بعد نافذة Bubble المنبثقة، أو العنصر القابل لإعادة الاستخدام، أو تحديث المجموعة المتكررة.
مثال: عرض رابط PDF فرنسي
إنشاء شرط Bubble على الرابط أو المجموعة: When GoLocal! A's current_language is "fr". إذا كان يجب تشغيل سير العمل عندما يقوم الزائر بتبديل اللغة، فاستخدم When GoLocal! A language_changed. لا تحتاج إلى الانتظار translation_complete فقط لقراءة اللغة المحددة.
7 بيانات المستخدم والنماذج والمجموعات المتكررة
يترجم GoLocal نص الواجهة، ولكن البيانات المكتوبة أو المنشأة بواسطة المستخدمين يجب أن تظل مستقرة. يحمي وقت التشغيل الحالي المدخلات العادية، والمدخلات المتعددة الأسطر، ومحرري Quill، وغيرها من contenteditable المناطق أثناء قيام الشخص بالكتابة.
آمنة بشكل افتراضي
- • يتم حفظ قيم الإدخال والإدخال متعدد الأسطر تمامًا كما تمت كتابتها.
- • Quill
.ql-editorيتم تخطي المناطق الأخرى القابلة للتحرير أثناء الكتابة. - • يجب أن تستخدم رسائل البريد الإلكتروني وكلمات المرور والأرقام والتواريخ والمعرفات والملفات دائمًا قيم Bubble الأصلية الخاصة بها.
يحتاج العرض إلى استبعاد
عندما يكون محتوى المستخدم المحفوظ يتم عرضه لاحقًا بواسطة عنصر نص Bubble عادي، ولا يمكن لـ GoLocal معرفة ما إذا كانت نسخة من واجهة المستخدم أو بيانات المستخدم. قم بتمييز عنصر العرض هذا أو أصغر حاوية به كمنطقة ممنوع الترجمة.
إعداد المجموعة المتكررة الموصى به
- 1. حدد فقط عنصر النص الذي يعرض محتوى المستخدم. لا تستبعد المجموعة المكررة بأكملها إذا كان من المفترض أن تستمر ترجمة الأزرار والعناوين والتسميات الثابتة الخاصة بها.
- 2. امنح كل صف معرفًا ديناميكيًا فريدًا.gl-user-content-المعرف الفريد للخلية الحالية
- 3. أضف محددًا واحدًا إلى عنصر GoLocal.do_not_translate_selectors = [id^="gl-user-content-"]
إذا كان إعداد Bubble أو عنصر قابل لإعادة الاستخدام يمكنه تطبيق فئة مخصصة، .gl-user-content فإن الأمر أكثر بساطة. أضف هذه الفئة مرة واحدة إلى do_not_translate_selectors.
علامات عدم الترجمة المدعومة
يحترم وقت التشغيل data-tr-skip, data-no-translate, translate="no"، ومتداخل .notranslate عناصر. يظل المعرف الذي تم تكوينه وحقول محدد CSS أسهل طريقة Bubble الأصلية.
تخطي مقابل الترجمة الخاصة
do_not_translate_* يحافظ على القيمة الأصلية. private_translate_ids لا يزال يترجم القيمة ولكنه يمنع ذاكرة التخزين المؤقت العمومية المشتركة. استخدم الترجمة الخاصة فقط عندما يكون المحتوى مترجمًا بشكل حقيقي.
home أو check_box. إذا كان الرمز مدعومًا بالنص، فاستبعد أصغر حاوية رمز/عنصر تحكم حتى لا تتم ترجمة الكلمة الرمزية مطلقًا.8 محرر الترجمة والتصحيحات اليدوية
استخدم محرر الترجمة لنسخة المنتج الثابتة: ملصقات التنقل والعناوين والأزرار ونص المساعدة والعبارات الأخرى التي يجب أن تحتوي على ترجمة واحدة تمت مراجعتها. يتم قفل الإدخالات اليدوية ولا يتم استبدالها بالترجمة الآلية اللاحقة.
تصحيح يدوي جيد
مصدر خطة الترقية → مراجعة عبارة المنتج الفرنسية تحسين الخطة. هذه نسخة واجهة مستقرة وتنتمي إلى المحرر.
لا تصحح بيانات المستخدم صفًا واحدًا في كل مرة
الاسم الذي أنشأه العميل مثل العمل في المنزل يجب استبعاده من عنصر العرض Bubble. لا تعد إضافة الآلاف من ترجمات الهوية بديلاً آمنًا لمنطقة عدم الترجمة.
- 1. افتح المشروع في لوحة معلومات GoLocal واختر ترجمات.
- 2. ابحث في العبارة المصدر والزوج اللغوي الدقيق.
- 3. قم بتحرير القيمة المستهدفة، أو استخدمها أضف الترجمة للحصول على عبارة المصدر الدقيق الجديدة.
- 4. يحفظ. تم وضع علامة على الإدخال يدوييتغير إصدار الحزمة، ويقوم وقت التشغيل بتحديث قاموس المشروع.
- 5. أعد اختبار مسار Bubble الدقيق حيث يتم عرض العبارة. يستخدم
rescan_domفقط إذا ظهرت العبارة بعد عرض غير عادي من طرف ثالث.
en → fr، لا auto → fr. يطلب وقت التشغيل زوج المصدر الذي تم حله للمشروع.9 كيف تعمل الترجمة
يراقب GoLocal Bubble DOM، ويطبق الترجمات من حزمة المشروع وذاكرة التخزين المؤقت المحلية أولاً، ويطلب فقط العبارات المفقودة أو المتغيرة. ويستمر في ملاحظة النوافذ المنبثقة، والعناصر القابلة لإعادة الاستخدام، والمجموعات المتكررة التي يعرضها Bubble لاحقًا.
التحميل الأولي للصفحة
يعمل وقت التشغيل على حل اللغات المصدر والهدف، وتحميل حزمة المشروع الحالية، ومسح نص واجهة المستخدم المرئي، ويكشف الصفحة من خلال التدفق المدمج المضاد للوميض.
نسخة مخبأة الترجمات
يتم تطبيق العبارات المعروفة من الحزمة أو ذاكرة التخزين المؤقت للمتصفح دون إعادة إنشائها. يؤدي إصدار الحزمة المتغير إلى إبطال القيم المخزنة مؤقتًا التي لا معنى لها.
محتوى Bubble الديناميكي
يلتقط مراقب DOM النوافذ المنبثقة المعروضة حديثًا، والعناصر القابلة لإعادة الاستخدام، والمجموعات المرئية بشروط، وخلايا المجموعة المتكررة. rescan_dom هو بديل صريح.
10 استكشاف الأخطاء وإصلاحها واختبار الإصدار
يتم إعادة تعيين الصفحة إلى لغة واحدة
اترك target_language فارغًا في كل صفحة وعنصر GoLocal القابل لإعادة الاستخدام ما لم يكن تطبيق Bubble يمتلك اللغة عمدًا. تتم إعادة تطبيق قيمة مشفرة عند التهيئة.
الأداة مفقودة
تأكد من تحديد show_widget، وتثبيت أحدث إصدار للمكون الإضافي، ويتحكم عنصر GoLocal واحد فقط في الصفحة. ثم اختبر خارج وضع مصحح الأخطاء خطوة بخطوة Bubble.
تظل النافذة المنبثقة أو صف المجموعة المتكررة الجديد غير مترجم
انتظر حتى يصبح العنصر مرئيًا. عادةً ما يجده المراقب تلقائيًا؛ إذا تم عرض عنصر تابع لجهة خارجية بشكل غير معتاد، فقم بتشغيل rescan_dom بعد ظهور النافذة المنبثقة أو المجموعة.
يتغير الإدخال أو النص المنسق أثناء الكتابة
قم بتحديث المكون الإضافي، وأكد وقت التشغيل الحالي، وتحقق من أن سير عمل الحفظ يقرأ قيمة الإدخال/المحرر الأصلية - وليس نص العرض المترجم أو normalized_query.
تتم ترجمة النص الفرنسي الذي أنشأه المستخدم مرة أخرى
استبعاد النص/الحاوية المعروضة من خلال do_not_translate_selectors. احمِ اكتشف أصغر قيمة ديناميكية، وليس كل واجهة المستخدم الثابتة المحيطة بها.
يعود التصحيح اليدوي إلى الوضع التلقائي
الإدخالات اليدوية الحالية مقفلة. تأكد من تحرير نفس النص المصدر وزوج اللغة الدقيق المستخدم في وقت التشغيل، ثم أرسل المشروع والمسار والعبارة ووقت الاختبار إلى الدعم.
تظل أسماء الشهر/اليوم باللغة الإنجليزية
المتصفح الأصلي أو Bubble يتبع كروم منتقي التاريخ لغة المتصفح/التحكم. يقوم GoLocal بترجمة التسميات المحيطة ولكنه لا يعيد كتابة واجهة مستخدم منتقي التاريخ الداخلي.
تقدم Chrome ترجمة للصفحات الخاصة بها
يقوم المكون الإضافي بالفعل بوضع علامة على المستند كـ notranslate لترجمة المتصفح مع السماح بتشغيل GoLocal نفسه. تحديث البرنامج المساعد. لا تقم بإضافة ملحق ترجمة أو برنامج نصي ثانٍ.
يلتف النص بشكل مختلف بعد الترجمة
يحتفظ GoLocal بطباعة Bubble. يمكن أن تكون العبارات المترجمة أطول، لذا تحقق من الحد الأدنى لعرض Bubble والحد الأقصى للعرض والارتفاع المناسب والتجاوز وقواعد الاستجابة عند كل نقطة توقف.
قائمة التحقق من قبول Bubble
- ✓تبديل المصدر → الهدف → المصدر بدون تحديث.
- ✓تنقل بين جميع صفحات Bubble رؤوس قابلة لإعادة الاستخدام.
- ✓افتح النوافذ المنبثقة وحمّل صفوف المجموعة المتكررة بعد تحميل الصفحة.
- ✓اكتب الحقول العادية وحقول النص المنسق والصقها وحررها واحفظها وأعد فتحها.
- ✓اختبر قيمة بيانات مستخدم واحدة مستبعدة داخل كل مجموعة متكررة.
- ✓اختبر SearchBox، القائمة المنسدلة، البحث القديم/Select2 MultiDropdown.
- ✓اختبر كل رابط current_language الشرطي ورابط PDF/المورد.
- ✓أعد اختبار Chrome وSafari وعرض الجوال وجلسة خاصة.
[GoLocal v4].11 السعروالفوترة
ثلاث خطط، جميعها كلمات ترجمة غير محدودة ولغات مستهدفة غير محدودة.
| الميزة | Starter | Pro | Business |
|---|---|---|---|
| السعر الشهري | $15/mo | $35/mo | $89/mo |
| السعر السنوي | $149/yr | $349/yr | $890/yr |
| اللغات المستهدفة | غير محدود | غير محدود | غير محدود |
| حد MAU | 30K | 150K | 1M |
| Projects | 1 | 1 | 2 |
MAU
الزائرون الفريدون الذين شاهدوا الترجمات. تمت تصفية الروبوتات. 10% مجانًا، ثم 3/10 آلاف دولار إضافية.
اللغات
تتضمن جميع الخطط المدفوعة عددًا غير محدود من اللغات المستهدفة دون أي رسوم إضافية لكل لغة.
تجربة مجانية لمدة 5 أيام
يبدأ كل مشروع جديد بفترة تجريبية مجانية. لا حاجة لبطاقة ائتمان.
12 الشريك Program
اكسب المال عن طريق التوصية بـ GoLocal!
شارك رابط الإحالة الخاص بك - اكسب عمولات متكررة لكل العميل الذي يدفع الثمن الذي تحضره.
التسجيل كشريك
لوحة التحكم ← علامة التبويب "الشريك" ← "الانضمام إلى الشريك Program". احصل على رابط الإحالة الفريد الخاص بك.
شارك الرابط الخاص بك
المدونة، أو YouTube، أو منتدى Bubble، أو وسائل التواصل الاجتماعي، أو البرامج التعليمية، أو مباشرة مع العملاء.
اكسب العمولات
عمولة متكررة طوال مدة اشتراك كل مستخدم مُحال.
احصل على الأموال
اطلب الدفع عن طريق التحويل المصرفي أو PayPal عندما يصل الرصيد إلى الحد الأدنى.
هل أنت مستعد لجعل تطبيقك متعدد اللغات؟
قم بتثبيت المكون الإضافي المجاني، وإنشاء مشروع، ولصق مفتاح API - وسيتحدث تطبيق Bubble بكل اللغات.