كيف يمكنك توطين موقع ويب يعتمد على قاعدة البيانات

StackOverflow https://stackoverflow.com/questions/160335

  •  03-07-2019
  •  | 
  •  

سؤال

لقد كنت ألعب بميزات الترجمة المضمنة في .NET ويبدو أنها تعتمد جميعًا على وضع البيانات في ملفات resx.

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

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

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

المحلول

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

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

إليك بعض الروابط ذات الصلة:

نصائح أخرى

لبند معين في نموذج البيانات الخاص بك، وتقسيم من وصف جزء في جدول محلية مع رقم العمود لغة (LCID).

وهكذا طاولة المنتج لن في الحقيقة تحتوي على وصف المنتجات أو اسم، ولكن فقط القيم الجاد والسريع لها (معرف المنتج، EAN، NumberInStock، NextStockData، IsActive، IsPublished) وما إلى ذلك.

وPRODUCTDESCRIPTION يحتوي ثم  معرف المنتج والاسم والوصف، LCID

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

والخيار A

Item (ItemID, ...)
ItemLocal (ItemID,LocaleID,....)

والخيار B

Item (ItemID, ...)
Item_ENUS (ItemID,....)
Item_ENGB (ItemID,....)
Item_FR (ItemID,....)

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

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

ونحن نستخدم مزيج من الملفات والخيار RESX والاستجابة Kibbee ل. أنشأنا أداة بسيطة لإدارة ملفات RESX على الانترنت: http://blog.lavablast.com/post/ 2008/02 / RESX ملف ويب-Editor.aspx

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