سؤال

كنت أتساءل كيف تتعاملون مع الروابط الدائمة على المواقع الدولية.أعني بالرابط الثابت بعض الروابط الفريدة والتي يمكن للبشر قراءتها.

على سبيل المثالبالنسبة للعبارات الإنجليزية فلا توجد مشكلة على سبيل المثال. /المنتج/بعض العنوان/

ولكن ماذا تفعل إذا كان عنوان المنتج باللغة الصينية على سبيل المثال؟؟كيف تتعامل مع هذه المشكلة؟

أقوم بتنفيذ موقع دولي وأحد المتطلبات هو أن يكون لديك عناوين URL يمكن للبشر قراءتها.شكرا على كل تعليق

هل كانت مفيدة؟

المحلول

ماذا عن بعض المخططات مثل/productID/{product-id-number}/some-title/حيث ينظر الموقع إلى {number} ويتجاهل الجزء "some-title" تمامًا.يمكنك وضع ذلك في أي لغة أو أي ترميز تفضله، لأنه لا يتم استخدامه.

نصائح أخرى

لا يُسمح بالأحرف خارج مجموعة ISO Latin-1 في عناوين URL وفقًا لـ هذه المواصفات, ، لذلك ستخرج الأوتار الصينية على الفور.

حيث يمكن ترجمة اسم المنتج، يمكنك استخدام عناوين URL مثل <DOMAIN>/<LANGUAGE>/DIR/<PRODUCT_TRANSLATED>, ، على سبيل المثال:

http://www.example.com/en/products/cat/
http://www.example.com/fr/products/chat/

برفقة أ mod_rewrite حكم مفعول به:

RewriteRule ^([a-z]+)/product/([a-z]+)? product_lookup.php?lang=$1&product=$2

بالنسبة للمثال الأول أعلاه، سيتم استدعاء هذه القاعدة product_lookup.php?lang=أون&product=قطة.داخل هذا البرنامج النصي يمكنك الوصول إلى محرك الترجمة الداخلي (من ملف lang معامل، en في هذه الحالة) للقيام بنفس الترجمة التي تقوم بها على الجانب المواجه للمستخدم للترجمة، على سبيل المثال، "Chat" في الصفحة الفرنسية، و"Cat" في الصفحة الإنجليزية، وما إلى ذلك.

قد يكون استخدام واجهة برمجة تطبيقات الترجمة الخارجية فكرة جيدة، ولكن من الصعب الحصول على واجهة موثوقة تعمل بشكل صحيح في مجال عملك.لقد فتحت جوجل أ واجهة برمجة تطبيقات الترجمة, ، ولكنه يدعم حاليًا عددًا محدودًا فقط من اللغات.

  • الإنجليزية <=> العربية
  • الإنجليزية <=> الصينية
  • الإنجليزية <=> الروسية

نلقي نظرة على ويكيبيديا.يستخدمون الأحرف الوطنية في عناوين URL.

على سبيل المثال، عنوان URL للصفحة الرئيسية باللغة الروسية هو: http://ru.wikipedia.org/wiki/Заглавная_страница.يقوم المتصفح بتشفير جميع الأحرف غير ASCII بشفافية ويستبدلها برموزها عند إرسال عنوان URL إلى الخادم.ولكن على صفحة الويب تكون جميع عناوين URL قابلة للقراءة بواسطة الإنسان.

لذا، لا يتعين عليك القيام بأي شيء خاص -- ما عليك سوى وضع أسماء منتجاتك في عناوين URL كما هي.يجب أن يكون خادم الويب قادرًا على فك تشفيرها لتطبيقك تلقائيًا.

عادةً ما أقوم بترجمة الأحرف غير ascii.على سبيل المثال، "täst" ستصبح "taest".يمكن لـ GNU Iconv القيام بذلك نيابةً عنك (أنا متأكد من وجود مكتبات أخرى):

$ echo täst | iconv -t 'ascii//translit'
taest

للأسف، هذه الترجمات الصوتية تعتمد على اللغة:في لغات أخرى غير الألمانية، يمكن ترجمة حرف "ä" إلى حرف "a" ببساطة، على سبيل المثال.ولكن على الجانب الآخر، يجب أن يكون هناك تحويل صوتي لكل حرف (شائع الاستخدام) تم تعيينه في ASCII.

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

ومع ذلك، ستحتاج إلى جدول بحث حيث يمكنك تعيين ترجمات المنتجات/العناوين إلى أي كلمة ستكون موجودة في اللغة الأخرى.على سبيل المثال:

سيحتاج موقع foo.com/cat إلى البحث عن ترجمة لـ "cat" و"gato" و"neko" وما إلى ذلك.

ثم وحدة HTTP الخاصة بك والتي تقوم بتحليل كائنات القراءة البشرية هذه إلى عنوان URL محدد ستعرف الصفحة التي سيتم عرضها بناءً على الترجمات.

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

وبقدر ما أستطيع أن أرى، ليس من الممكن استخدام الأحرف الأجنبية في الرابط الثابت لأن محددات عنوان URL لا تسمح بذلك.

ما رأيك في ترميز الأحرف الخاصة؟هل تم التعرف على عناوين URL هذه بواسطة Google إذن؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top