พัฒนาโปรแกรมเว็บแบบหลายภาษา โดยใช้รูปแบบ Mvc และเทคโนโลยีท้องถิ่น
Table of Contents
การพัฒนาโปรแกรมเว็บแบบหลายภาษานั้น ไม่มีทางเลือกอีกต่อไปในระบบภูมิทัศน์แบบดิจิทัลทุกวันนี้ ผู้ใช้คาดหวังจะโต้ตอบกับเนื้อหาในภาษาท้องถิ่นของตน และนําเสนอประสบการณ์ที่มีผลกระทบโดยตรงกับการใช้งาน การแปลงผลโดยตรง การเปลี่ยนและขยายตลาด รูปแบบ MVC (MVC) ผนวกเข้ากับเทคนิคที่ทนทานได้ ส่งผลให้สร้างโครงสร้างสําหรับอุปกรณ์สเกตที่สามารถใช้ได้ ประยุกต์นี้สามารถรักษาความจุได้โดยผ่านหลักหลักการหลัก, การจัดระบบ, และการฝึกที่ดีที่สุดสําหรับหลายภาษาต่าง ๆ ในโครงการ MV-C-Formopopy- ของคุณ
รูป แบบ ของ เอ็ม วี ซี: ลักษณะ นิสัย ของ การ เป็น คน ท้อง ถิ่น
สถาปัตยกรรม เอ็มวีซี แบ่งโปรแกรมออกเป็น 3 ส่วน คือ โมเดล มุมมอง และตัวควบคุม การแยกความกังวลนี้มีประโยชน์มาก
- [FLT: 0]. Model: จัดการข้อมูลและตรรกะทางธุรกิจ. สําหรับแอปพลิเคชันหลายภาษา โมเดลต้องเก็บหรือเรียกข้อมูลภาษา ⁇ language เนื้อหา ไม่ว่าจะเป็นจากฐานข้อมูล, API, หรือแฟ้มทรัพยากร.
- [FLT: 0]. ดู: จัดลําดับชั้นการนําเสนอ มุมมองใช้สตริงแบบท้องถิ่น, วันที่/ ตัวเลข, และทิศทาง directics (RT/LTR) เพื่อแสดงเนื้อหาในภาษาแต่ละภาษาอย่างถูกต้อง.
- [FLT: 0]Contlorer: โพรเซสผู้ใช้, ตรวจจับท้องที่ และเลือกทรัพยากรหรือข้อมูลที่เหมาะสม ก่อนที่จะส่งมันไปยังมุมมอง
การ แยก กัน อย่าง สะอาด นี้ หมาย ความ ว่า คุณ สามารถ เพิ่ม ภาษา ใหม่ ได้ โดย การ สร้าง แฟ้ม ทรัพยากร หรือ รายการ ใหม่, ปรับ แบบ จําลอง ภาพ เพื่อ อ้างอิง ทรัพยากร เหล่า นั้น, และ ทํา ให้ แน่ ใจ ว่า ตัว ควบคุม เลือก ภาษา ท้อง ถิ่น ได้ ถูก ต้อง — ทั้ง หมด นี้ ไม่ มี การ เขียน ตรรกะ ธุรกิจ หรือ ภาษา ฐานข้อมูล ใหม่.
เทคนิกของกุญแจท้องถิ่น
แฟ้มทรัพยากรสําหรับจัดเก็บข้อความ
แฟ้มทรัพยากร (Json, YAML, XML, หรือ resysx) เก็บภาษาต่าง ๆ ไว้จากโค้ด ตัวอย่างเช่น Larvol ใช้แฟ้ม[FLT: 0]; APT.NET Care ใช้แฟ้ม[FLT: 1]; และรูปแบบจาวาสคริปต์หลายอันใช้แฟ้มแปลภาษา Json. รูปแบบพื้นฐานคือ chart im: mixtimations (help).
- สําหรับภาษาอังกฤษ
- [FLT: 3] สําหรับภาษาฝรั่งเศส
การใช้แฟ้มทรัพยากรทําให้การแปลทํางาน ง่ายขึ้นโดยไม่ต้องแตะต้องตรรกะประยุกต์ และช่วยให้โค๊ดเบสสะอาด
การ ตรวจ และ การ ติด ต่อ
กลยุทธ์ ทั่ว ไป รวม อยู่ ด้วย:
- [FLT: 0] browser Uknown header: parcesing [FLT: 4] เพื่อรับรายการลําดับความสําคัญของผู้ใช้ (FLT:4).
- [FLT: 0] ตั้งค่าโพรไฟล์ผู้ใช้:[[FLT: 1) กําลังขโมยข้อมูลท้องถิ่นที่เลือกในวาระ หรือฐานข้อมูล หลังจากล็อกอินผู้ใช้แล้ว
- [FLT: 0] นําหน้าหรือย่อย ⁇ : e.g. หรือ.
- [FLT: 0]. Cooky หรือ local buffer: การดําเนินการคัดเลือกภาษาของผู้ใช้ผ่านวาระการใช้งาน
W3C International Profile (FLT: 0) W3C I18N ให้รายละเอียดเกี่ยวกับการเจรจาเนื้อหา
การ จัด ระบบ, การ จัด ระบบ, และ การ จัด เรียง
การแทนที่การใช้ภาษาท้องถิ่นนั้น เหนือกว่าการแทนที่ด้วยข้อความธรรมดา ภาษาต่าง ๆ มีกฏแบบ Proup (เช่น "1 รายการ" , "2 รายการ" ในภาษาอังกฤษ" แต่มีหลายรูปแบบเป็นภาษาโปแลนด์หรืออาหรับ) โครงสร้างหลายแบบเสนอกฎการสร้างภาพ: Laravol (FT: 7), Symfons [FTL: 8], และรูปแบบ EXIF, รูปแบบของเวลา, และเงินตราที่คล้ายกัน , และค่าประกอบการ (เช่น ⁇ [FLF] ในเยอรมนี: v[10][10] ใน ค.ศ.
กลยุทธ์ การ แปล เนื้อหา
สําหรับข้อมูลแบบไม่ตายตัวที่ถูกเก็บไว้ในฐานข้อมูล (เช่น รายละเอียดผลิตภัณฑ์, บล็อก) คุณมีตัวเลือกหลายอย่าง:
- [FLT: 0] คอลัมน์ Language: คอลัมน์ฐานข้อมูลหนึ่งตัวต่อภาษา (เช่น [FLT: 11]] [FLT: 11]] [FLT: 12]]. ง่ายแต่ไม่เรียงตามภาษาหลายๆ ภาษา.
- [FLT: 0] ตารางการแปลแบบเรียบเรียง: ตาราง พร้อมโพลีโมฟิกสัมพันธ์กับสิ่งมีชีวิตอื่น ๆ ที่สามารถแปลงได้ ยืดหยุ่นได้มากขึ้น และทําตามวิธีการทําฐานข้อมูลอย่างปกติ
- [FLT: 0] คอลัมน์ Json: เก็บวัตถุ Json กับคีย์ภาษา รวดเร็วสําหรับการกระตุ้น แต่สามารถเป็นที่ยากในการสอบถามและรักษา
เลือก วิธี การ ที่ ตรง กับ จํานวน ภาษา และ ขนาด เนื้อหา ของ คุณ.
การ ควบคุม เอ็ม วี ซี พร้อม ด้วย การ ใช้ ท้อง ถิ่น: คู่มือ ส เต ฟานี บี ○
ลอง สมมุติ ว่า คุณ กําลัง สร้าง โปรแกรม ที่ ใช้ หลาย ภาษา ใน แบบ PHP หรือ C# เฟรมเวิร์ก เอ็มวีซี.
1. ออกแบบโมเดลสําหรับข้อมูลแบบหลายภาษา
กําหนดองค์กรของคุณให้รองรับหลายภาษา ตัวอย่างเช่น รุ่นแบบ (FT:14) อาจมีความสัมพันธ์มากมายกับ รุ่นที่เก็บ [FT: 16] [FLT: 17] และ[FT: 18] ในแบบ OrT:18] เช่น an Larabels Elvoltties, คุณสามารถใช้คุณสมบัติหรือแพกเกจที่อุทิศให้ทําการโหลดให้ถูกต้องได้ เช่นเดียวกัน language files for FLTI continue are value are by local line. seconson. language. languages. language. สืบค้นเมื่อ ค.ศ.
2. ปรับแต่งตัวควบคุมสําหรับตรวจสอบท้องถิ่น
ในตัวควบคุมพื้นฐาน (หรือเครื่องเซนทน์) ใช้ตัวตรวจจับภายในเครื่อง ตั้งเครื่องหลักที่ใช้อยู่ในปัจจุบันตามความชอบของผู้ใช้ ตัวอย่างเช่น ในลาราเวล:
protected function setLocale(Request $request)
{
$locale = $request->segment(1); // from URL
if (in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
session(['locale' => $locale]);
}
}
ใน APET Care คุณสามารถเพิ่ม [FLT: 20] เครื่องกึ่งเพื่อจัดการการเจรจาอัตโนมัติ แล้วตัวควบคุมจะใช้ (FLT:21) วัตถุเพื่อคืนคําที่ถูกต้อง
3. ทัศนะ ของ ผู้ ที่ พัฒนา แล้ว จะ ใช้ ประโยชน์ จาก การ ทํา งาน ใน ท้อง ถิ่น
แทนการใช้สตริงแบบฮาร์ดคอปเตอร์ในมุมมอง ใช้โปรแกรมช่วยในท้องถิ่น ใน Laravl Belb คุณจะใช้ [FLT: 22]; ใน ART.NET มีดโกน [FLT: 23] สําหรับเนื้อหาที่ไม่ตายแบบไดรต ให้ส่งโมเดลที่แปลมาจากมุมมองและสนามแสดงโดยตรงจากพื้นที่ปัจจุบัน นอกจากนี้ยังแน่ใจว่าวันที่และจํานวนที่แปลงมานั้นใช้ [FLT: 24] หรือ.
ตัวอย่างเช่น การล็อกอินแบบธรรมดา หน้า genpet ใน Laravel Bade:
<h2>{{ __('auth.login_title') }}</h2>
<form>
<label>{{ __('auth.email') }}</label>
<input type="email" name="email">
<label>{{ __('auth.password') }}</label>
<input type="password" name="password">
<button type="submit">{{ __('auth.login_button') }}</button>
</form>
4 เปิดการใช้สลับภาษา
การตั้งค่าตัวเลือกภาษาที่มองเห็น (หากเลือกวางในถาดนําทางหรือท้ายบรรทัด) เมื่อผู้ใช้เลือกภาษา โปรแกรมควบคุมหรือจาวาสคริปต์จะปรับปรุงค่าท้องถิ่นปัจจุบัน และจัดเก็บค่าตัวเลือกต่าง ๆ ไว้ให้ผู้ใช้ใช้บนเส้นทางเดียวกันหากเป็นไปได้ ให้เปลี่ยนเส้นทางไปยังที่อยู่ URL เดิมโดยใช้คํานําหน้าเครื่องใหม่
การ ปฏิบัติ และ การ พิจารณา ที่ ดี ที่ สุด
การจัดการเนื้อหาที่สัมพันธ์กัน
เก็บการแปลให้ตรงกัน ใช้การควบคุมรุ่นสําหรับแฟ้มทรัพยากร และพิจารณาใช้ระบบการจัดการระบบการแปลภาษา (เช่น Lakalese, folder) สําหรับทีมที่มีขนาดใหญ่ขึ้น หลีกเลี่ยงการบีบข้อมูลของตัวช่วยแปล; ทําการแปลอีกครั้งตามที่ที่ทําได้
ผู้ ใช้ มี ประสบการณ์ ใน การ นั่ง อย่าง มี หลาย ภาษา
- [FLT: 0]. สืบค้นเมื่อ:[FLanguage cheeger: ใช้ปุ่มที่ชัดเจน หรือไอคอนธงที่มองเห็นได้ (ใช้ข้อความประกอบเพื่อความง่ายในการเข้าถึง).
- [FLT: 0] จําทางเลือกที่: ต่อเนื่องภาษาของผู้ใช้ผ่านทางวาระ, คุกกี้, หรือฐานข้อมูล
- [FLT: 0]] ตั้งค่าสําหรับเบราว์เซอร์:[[FLT: 1) ในครั้งแรก ให้ใช้ภาษาที่ชอบของเบราว์เซอร์โดยอัตโนมัติ หากมีใช้งาน
- [FLT: 0]. ESEO กับ AffifferLanguage: สืบค้นคุณสมบัติ [FLT: 27] ในภาษา HTML [FLT: 28] เพื่อบอกกลไกการค้นหาเกี่ยวกับภาษาอื่น ๆ ของแต่ละหน้า ตัวอย่างเช่น: .
การตั้งแนวร่วม
- [FLT: 0] แปล: โหลดแฟ้มทรัพยากรเข้าหน่วยความจํา (เช่น ใช้ Laravols [FLT: 30]).
- [FLT: 0]. eptember เรียกใช้: เมื่อสืบค้นรุ่นแบบทรานสลล็, ใช้การโหลดที่กระตือรือร้นเพื่อหลีกเลี่ยงการสืบค้น N+1.
- [FLT: 0] Miminisiize การตรวจสอบท้องที่ capitation เก็บพื้นที่ที่แก้ไขแล้วไว้ในตู้คอนเทนเนอร์หรือเซสชัน เพื่อให้มีทั่วโลกโดยไม่ต้องซ้ําตรรกะการตรวจสอบ
การ ช่วย ชีวิต และ การ ไม่ มี ส่วน ร่วม
เนื้อหาท้องถิ่นจะต้องยังคงเข้าถึงได้ โปรดแน่ใจว่าคุณสมบัติภาษา ([FLT: 31]] และ ถูกตั้งไว้อย่างถูกต้องบนแท็ก ใช้ป้าย ARAA ที่จําเป็นในหลายภาษา ทดสอบกับผู้อ่านหน้าจอในแต่ละภาษาที่รองรับ. [FLT: 0] W3C International FAQ[FLLT: 1] จัดทําการตั้งค่าภาษาของเอกสาร.
เครื่องมือและเฟรมเวิร์กที่รองรับการพัฒนาแบบหลายภาษา
โครงสร้าง MVC รุ่นใหม่ส่วนใหญ่ ถูกสร้างขึ้นอย่างทนทานหรือชุมชน รองรับแพกเกจที่รองรับระบบย่อยข้อมูลท้องถิ่น:
- [FLT: 0]. ลอราเวล (PP): รวมผู้ช่วยเหลือท้องถิ่น, กฎพหูพจน์ และการสนับสนุนไฟล์ข้อมูล Json และ PHP ดูเอกสารอย่างเป็นทางการ เอกสารท้องถิ่น Laravel[[FT:3].
- [FLT: 0]] ASTTA.NET Care (CR)): เสนอ และ [FLT: 34] ส่วนติดต่อ พร้อมข้อมูลทรัพยากรและระบบย่อยที่ชาญฉลาด . PDF. ไมโครซอ ไมโครซอ ไกด์ท้องถิ่น . ครอบคลุม.
- [FLT: 0] รูบี้ ออนราล (Raily):[FLT: 1) ใช้ไฟล์ YAML และ I18I ที่มีการขยายกฏการวางจําหน่ายและวันที่/ตัวเลข ดู มัคคุเทศก์นานาชาติ (FLT:3).
- [FLT: 0] แท็กแม่แบบ [FLTT:2] Djago สืบค้นเมื่อ 20 พฤษภาคม พ.ศ.
- [FLT: 0]. Sympfon (PP):[FLT: 1) ใช้ส่วนประกอบการแปลร่วมกับ XLIF, YAML และรูปแบบ PhP. ดู การแปล [FLT: ⁇ . สืบค้นเมื่อ 20 พฤษภาคม พ.ศ.
สําหรับ Fontact MVC เฟรมเวิร์กเช่น Recact with Redux, ไลบรารีเช่น (อาศัยรูปแบบข้อความของ ICU) ผนวกเข้ากับโครงสร้างแบบ MVCCC คล้ายกับแบบ MBCC โครงสร้าง
รูปแบบการวน
การสร้างโปรแกรมเว็บแบบหลายภาษา โดยใช้รูปแบบแฟ้มแบบ MVC เป็นวิธีตรวจสอบและรักษาได้ โดยจํากัดการแยกองค์ประกอบของความกังวลไปยัง MVC นักพัฒนาสามารถแนะนําการขยายพื้นที่ได้โดยไม่ต้องสร้างข้อมูลใหม่ ทั้งระบบโค้ดพื้นฐาน ข้อมูลทรัพยากร และการตรวจสอบฐานข้อมูลอย่างระวัง การออกแบบฐานข้อมูลสร้างเครื่องมือหลัก ในขณะที่เฟรมต่าง ๆ ยังให้การสนับสนุนอยู่ ขณะที่เว็บยังคงต้องการการแบ่งพื้นที่ในการจัดการอย่างกว้างขวางต่อ ๆ ไป การดําเนินการในท้องถิ่นนั้น ๆ จะให้บริการโครงสร้างแบบ MVC รองรับความเหมาะสมของผู้ใช้ และการจัดจําหน่ายได้โดยมีตลาด