سؤال

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

وعلى سبيل المثال:

والجملة قاعدة: "أنت تبحث في / على {0}"

وهذا يجب تهيئة ل: "كنت تبحث في بيضة" "أنت تبحث في الجزرة" أو

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

هل هناك أفضل الممارسات لمعالجة هذه المشكلة؟

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

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

المحلول

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

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

نصائح أخرى

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

وأفضل شيء نفعله هو الحصول على النطق بكلمة ليكون قادرا على اختيار.

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


ويكيبيديا :

<اقتباس فقرة>   

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

في أيام المغامرة النصية القديمة ألعاب الكمبيوتر ، وكانت طريقة واحدة لحل هذا جعل "أ"، "ب"، "و" الخ جزء من الاسم الفعلي للشيء. عندما تكون في هذه الألعاب تشاهد "صندوق بريد"، لا يوجد AI الذكية لتحديد "أ". اسم الكائن هو "صندوق بريد". في بعض الألعاب يمكن أن نقول "فتح علبة بريد"، الذي يبدو البكم، وفي حالات أخرى يمكن أن نقول "فتح صندوق البريد"، وهو ما يعني أن هناك اسم آخر من وجوه دخل، لاستخدامها في سياقات مختلفة grammatic. أقترح عليك أن تذهب في هذا الطريق بدلا من المسار كنت على الآن.

لغات أخرى تعاني من مشاكل مماثلة ولكن في سياقات مختلفة، على سبيل المثال تبعا لجنس الأشياء أو العدد الفعلي للكائنات (وبعض اللغات لا تفرق فقط بين واحد واثنين من الأشياء، ولكن قواعد مختلفة عن واحد أو اثنين أو أكثر من كائنين بالروسية).

لاستخدام مثال من اللغة الألمانية:

وأي ما يعادل "كنت تبحث في (ن) X" ستكون كما يلي:

و"دو siehst عين X"
أو "دو siehst eine X"
أو "دو siehst einen X"

وهذا يتوقف على جنس الكائن X. وجنس كائن هو شيء لا يمكنك تخمين، وربط بينه وبين اسم الكائن فقط على أساس التقاليد التاريخية.

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

و"كنت تبحث في كائن من نوع X"
أو "أنت تبحث في (ن) X"
أو "كنت تبحث في واحد X"

وكيف يكون هذا حساسة ثقافيا؟ ما نحاول القيام به <م> فقط المنطقي باللغة الإنجليزية. قد تتطلب تغييرات لغات أخرى مختلفة تماما إلى الجملة. البعض قد تعديل اسم، قد يكون بعض التغيير في بناء الجملة، قد يكون بعض إعادة ترتيب الكلمات وهلم جرا.

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

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

والطريقة مجدية الوحيدة لتجنب ذلك هو إعطاء السيطرة الترجمة على كامل الجملة. لا تفترض يمكنك فقط لسد في بضع كلمات التي تعتمد على الثقافة هنا وهناك.

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

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

وهناك مكتبة دعا . NET inflector الذي يستخدم لتعددية / singularization التي يمكن أن تكون أغراض أخرى أو تمديدها بنفس الطريقة لشيء من هذا القبيل. ما الذي تبحث عنه هنا هو القاعدة العامة التي يمكنك ثم قرص مع استثناءات ... على سبيل المثال، والكلمات التي تبدأ مع تركيبات الأحرف التي يتم ضوحا عموما حروف العلة. على الرغم من أن هذا ليس [بالمعنى الدقيق للكلمة] حساسة ثقافيا، وينبغي أن تحصل بدأ في اللغة الإنجليزية على الأقل.

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