วิธีการแปลแอปพลิเคชัน ASP.NET MVC


121

แนวทางปฏิบัติที่ดีที่สุดในการแปลแอปพลิเคชัน ASP.NET MVC ของคุณคืออะไร

ฉันต้องการครอบคลุมสองสถานการณ์:

  • การปรับใช้แอปพลิเคชันเดียวใน IIS ซึ่งจะรองรับหลายภาษา
  • การปรับใช้ภาษา / แอปพลิเคชันเดียว

ในสถานการณ์แรกคุณควรใช้มุมมองแบบไหนเช่น ~ / View / EN, ~ / View / FI, ~ / View / SWE หรืออะไรที่แตกต่างออกไป?

แล้วกรณีที่สองเพียงแค่กำหนดค่าตามแอปพลิเคชันผ่าน Web.config แล้วชี้ภาษาต่างๆเหล่านี้ไปยัง URL ที่ต่างกัน


อีกวิธีหนึ่งในการดูซ้ำคุณสามารถใช้ไฟล์ ResX มาตรฐานสำหรับจัดเก็บสตริงเฉพาะวัฒนธรรม น่าเสียดายที่การจัดการและแก้ไขไฟล์นี้โดยเฉพาะนักแปลนั้นค่อนข้างอึดอัดและยุ่งยาก สามารถทำให้ง่ายขึ้นโดยการจัดเก็บทรัพยากรในฐานข้อมูลและใช้เครื่องมือโลคัลไลเซชันภายนอก คุณสามารถดูห้องสมุดฟรีที่ให้บริการทรัพยากรฐานข้อมูล: globsite.net/GlobsiteGlobalizationLibrary
Kryszal

คำตอบ:


72

คุณสามารถดูคู่มือฉบับสมบูรณ์ ASP.NET MVC 2 LocalizationและASP.NET MVC 2 Model Validation With Localizationสิ่งเหล่านี้จะช่วยคุณได้หากคุณทำงานกับ ASP.NET MVC 2


ขอบคุณสำหรับคำตอบที่อัปเดตนี้! ปีที่แล้วฉันใช้แนวทางของ Matt Hawley แต่ประสบปัญหาร้ายแรงกับการทดสอบหน่วย ฉันพยายามเยาะเย้ยบริบทคอนโทรลเลอร์ แต่มีอย่างอื่นหายไปและฉันก็ยอมแพ้ ฉันจะทำตามวิธีนี้ MVC2 และหวังว่าพวกเขาจะคิดออก
Lauri Larjo

ฉันเคยใช้แนวทางนี้ในโครงการของฉันฉันควรจะบอกว่าแนวทางนี้ดีกว่า
fyasar

@fyasar สวัสดีเรามีเว็บไซต์ช้อปปิ้งใน asp mvc ดังนั้นเมื่อผู้ใช้เลือกภาษาอาหรับเราต้องการทำให้ไซต์ทั้งหมดเป็นภาษาอาหรับเราสามารถใช้ microsoft bing translatorหรือ microsoft translator APIหรือฉันควรซื้อlocalize.jsเพื่อให้บรรลุผลอย่างรวดเร็ว ?
shaijut

22

คุณจะแปลแอปพลิเคชัน ASP.NET MVC ของคุณให้เข้ากับท้องถิ่นเป็นอย่างมากในลักษณะเดียวกับที่คุณทำกับแอปพลิเคชัน ASP.NET Web Form แบบคลาสสิก

คุณจะไม่ใช้เพจ / มุมมองที่แตกต่างกันสำหรับแต่ละภาษา แต่แต่ละเพจจะรองรับหลายภาษาโดยใช้แอสเซมบลีดาวเทียม

คุณสามารถดูรายการบล็อกของ Matt Hawleyเพื่อดูคำอธิบายและตัวอย่างเพิ่มเติม


9

น่าเสียดายที่โค้ดดั้งเดิมของ Matt Hawley ใช้ไม่ได้กับ ASP.NET MVC เวอร์ชันวางจำหน่าย ตรวจสอบโพสต์ที่อัปเดต: http://blog.eworldui.net/post/2008/10/ASPNET-MVC-Localization-via-View-Engines.aspx

โดยทั่วไปกระบวนการโลคัลไลเซชั่นจะไม่ราบรื่นในโลก VS 2008 / ASP.NET MVC เหมือนกับเว็บฟอร์มทั่วไป http://www.guysmithferrier.com/post/2009/05/Localizing-ASPNET-MVC.aspx



2

ฉันไม่เคยมั่นใจในการจัดการการแปลเป็นภาษาท้องถิ่นภายในรูปแบบตามที่เอลียาห์แนะนำ - ความยาวและทิศทางที่แตกต่างกันอาจนำไปสู่รูปแบบที่ดูซับซ้อนมากหรือแตกต่างกันไป

ฉันเพิ่งเริ่มต้นด้วย MVC แต่ใช้วิธีการแยกส่วนที่คุณต้องการใช้คอนโทรลเลอร์เดียวกันโดยไม่คำนึงถึงภาษา (ปฏิบัติต่อภาษาเป็นเพียงมุมมอง) - สิ่งนี้จะให้ / Controller / Action / language / form


2

มีบทช่วยสอนที่ดีพร้อมการอัปเดตล่าสุดเกี่ยวกับวิธีการแปลแอปพลิเคชัน asp.net mvc ซึ่งครอบคลุมทุกด้านรวมถึงการแปลชื่อดิสเพลย์การตรวจสอบการใช้เส้นทาง (การจัดเก็บชื่อวัฒนธรรมใน URL) ปัญหาเกี่ยวกับแคชเอาต์พุตและอื่น ๆ ... บล็อก Alex Adamyan - ในขณะที่ แป้นพิมพ์ของฉันร้องไห้เบา ๆ


1

เราจริงไปที่แตกต่างกันที่สมบูรณ์แบบด้วยเอาชนะ DataAnnotationsMetadaDataProvider ในนั้นคุณสามารถตรวจสอบให้แน่ใจว่าค่า DisplayNameAttribute ได้รับการแก้ไขเป็นภาษาที่ถูกต้อง จริงๆแล้วคุณสามารถกำจัดแอตทริบิวต์นั้นได้และแก้ไขด้วยชื่อฟิลด์ก็ต่อเมื่อนั่นจะช่วยได้


0

ฉันเขียนบทความนี้เมื่อไม่นานมานี้ ใช้เครื่องมือมุมมองที่กำหนดเอง http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/


1
ในความเป็นจริงแล้วบทความของคุณอาจตอบคำถามได้ แต่คุณควรระบุส่วนสำคัญของคำตอบไว้ที่นี่และระบุลิงก์เพื่อใช้อ้างอิง Stack Overflow มีประโยชน์พอ ๆ กับคำถามและคำตอบเท่านั้นและหากโฮสต์บล็อกของคุณหยุดทำงานหรือ URL ของคุณถูกเคลื่อนย้ายคำตอบนี้จะไม่มีประโยชน์ ขอบคุณ!
sarnold

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.