تفعيل شبكة الإعلانات للتوافق مع ميزات ""بحث Google" المتعلقة بالترجمة
يقدّم محرّك بحث Google عدة ميزات متعلقة بالترجمة تتيح للمستخدمين الوصول إلى المحتوى المترجَم. إذا كنت تدير شبكة إعلانات وكانت إعلاناتك لا تظهر بشكل صحيح على صفحات الويب المترجَمة، ستحتاج إلى اتّباع الخطوات الواردة في هذا الدليل للتأكّد من عرض إعلاناتك أو إضافة سماتها بشكل صحيح.
الأسلوب الذي نتّبعه
عند وصول المستخدمين إلى المحتوى المترجَم الذي توفّره ترجمة Google من نتائج البحث، يستردّ محرّك بحث Google الصفحة من الناشر ويعيد كتابة عنوان URL الخاص بالمصدر ويترجم صفحة الويب بعد أن ينقر المستخدم على النتيجة المترجَمة.
تحويل عنوان URL الخاص بخدمة "ترجمة Google" إلى عنوان URL الأصلي
إذا كنت تدير شبكة إعلانات تعتمد على عنوان URL المصدر الخاص بالناشر، ستحتاج إلى تحويل عنوان URL الخاص بخدمة "ترجمة Google" للتأكد من عرض إعلاناتك بشكل صحيح. اتّبِع الخطوات التالية لفكّ ترميز اسم المضيف الخاص بالناشر:
- استخرِج بادئة النطاق من اسم المضيف، وذلك عبر إزالة اللاحقة
.translate.goog
. - اقسِم المعلَمة
_x_tr_enc
باستخدام الحرف,
(فاصلة) واحفظها باسمencoding_list
. - أضِف قيمة المعلَمة
_x_tr_hp
إلى بادئة النطاق، في حال توفّرها. - إذا كانت السمة
encoding_list
تحتوي على1
والناتج يبدأ بـ1-
، أزِل البادئة1-
من الناتج في الخطوة 2. - إذا كانت السمة
encoding_list
تحتوي على0
والناتج يبدأ بـ0-
، أزِل البادئة0-
من الناتج في الخطوة 3. إذا أزلت البادئة، اضبط السمةis_idn
علىtrue
. ويمكنك بدلاً من ذلك ضبط السمةis_idn
علىfalse
. - استبدِل
/\b-\b/
(التعبير العادي) بحرف.
(نقطة). - استبدِل الحرف
--
(واصلة مزدوجة) بحرف-
(واصلة). - إذا تم ضبط
is_idn
علىtrue
، أضِف بادئة punycodexn--
. - اختياري: يمكنك التحويل إلى يونيكود.
نموذج رمز JavaScript لفك ترميز اسم المضيف من عنوان URL خاص بخدمة "ترجمة Google"
function decodeHostname(proxyUrl) { const parsedProxyUrl = new URL(proxyUrl); const fullHost = parsedProxyUrl.hostname; // 1. Extract the domain prefix from the hostname, by removing the ".translate.goog" suffix let domainPrefix = fullHost.substring(0, fullHost.indexOf('.')); // 2. Split _x_tr_enc parameter by "," (comma), save as encodingList const encodingList = parsedProxyUrl.searchParams.has('_x_tr_enc') ? parsedProxyUrl.searchParams.get('_x_tr_enc').split(',') : []; // 3. Prepend value of _x_tr_hp parameter to the domain prefix, if it exists if (parsedProxyUrl.searchParams.has('_x_tr_hp')) { domainPrefix = parsedProxyUrl.searchParams.get('_x_tr_hp') + domainPrefix; } // 4. Remove '1-' prefix from the output of step 2 if encodingList contains // '1' and the output begins with '1-'. if (encodingList.includes('1') && domainPrefix.startsWith('1-')) { domainPrefix = domainPrefix.substring(2); } // 5. Remove '0-' prefix from the output of step 3 if encodingList contains // '0' and the output begins with '0-'. // Set isIdn to true if removed, false otherwise. let isIdn = false; if (encodingList.includes('0') && domainPrefix.startsWith('0-')) { isIdn = true; domainPrefix = domainPrefix.substring(2); } // 6. Replace /\b-\b/ (regex) with '.' (dot) character. // 7. Replace '--' (double hyphen) with '-' (hyphen). let decodedSegment = domainPrefix.replaceAll(/\b-\b/g, '.').replaceAll('--', '-'); // 8. If isIdn equals true, add the punycode prefix 'xn--'. if (isIdn) { decodedSegment = 'xn--' + decodedSegment; } return decodedSegment; }
إعادة إنشاء عنوان URL
- باستخدام عنوان URL للصفحة الأصلية، استبدِل اسم المضيف باسم المضيف الذي تم فك ترميزه.
- أزِل جميع معلَمات
_x_tr_*
.
اختبار الرمز
يمكنك إنشاء اختبارات الوحدة للرمز باستخدام الجدول التالي. ويجب أن تتطابق السمة decodeHostname
مع القيمة المتوقّعة، وذلك حسب proxyUrl
.
لا يمكن استخدام الجدول التالي إلا لاختبار فك ترميز اسم المضيف. وعليك التأكّد من عدم تغيير المسار والجزء والمعلَمات الأصلية لعنوان URL.
proxyUrl
|
decodeHostname
|
---|---|
https://example-com.translate.goog
|
example.com
|
https://foo-example-com.translate.goog
|
foo.example.com
|
https://foo--example-com.translate.goog
|
foo-example.com
|
https://0-57hw060o-com.translate.goog/?_x_tr_enc=0
|
xn--57hw060o.com (⚡😊.com)
|
https://1-en--us-example-com/?_x_tr_enc=1
|
en-us.example.com
|
https://0-en----w45as309w-com.translate.goog/?_x_tr_enc=0
|
xn--en--w45as309w.com (en-⚡😊.com)
|
https://1-0-----16pw588q-com.translate.goog/?_x_tr_enc=0,1
|
xn----16pw588q.com (⚡-😊.com)
|
https://lanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch-co-uk.translate.goog/?_x_tr_hp=l
|
llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.co.uk
|
https://lanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch-co-uk.translate.goog/?_x_tr_hp=www-l
|
www.llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.co.uk
|
https://a--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-com.translate.goog/?_x_tr_hp=a--xn--xn--xn--xn--xn--------------------------a
|
a-xn-xn-xn-xn-xn-------------aa-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com
|
https://g5h3969ntadg44juhyah3c9aza87iiar4i410avdl8d3f1fuq3nz05dg5b-com.translate.goog/?_x_tr_enc=0&_x_tr_hp=0-
|
xn--g5h3969ntadg44juhyah3c9aza87iiar4i410avdl8d3f1fuq3nz05dg5b.com (💖🌲😊💞🤷♂️💗🌹😍🌸🌺😂😩😉😒😘💕🐶🐱🐭🐹🐰🐻🦊🐇😺.com)
|