Pseudolocalization ช่วยคุณได้อย่างไรในการทำให้เป็นสากล
ก่อนที่จะลงลึกไปถึงการแปลแบบ psuodolocalization ก่อนอื่นมาทำความเข้าใจกับคำจำกัดความพื้นฐานของการทำให้ เป็น สากลการแปล เป็นภาษาท้องถิ่น และ การแปลเป็นภาษา ท้องถิ่น
ความเป็นสากล:
การทำให้เป็น สากลคือกระบวนการของการออกแบบแอปพลิเคชันซอฟต์แวร์เพื่อให้สามารถปรับให้เข้ากับภาษาและภูมิภาคอื่น ๆ ได้อย่างง่ายดาย โดยไม่ต้องเปลี่ยนแปลงโปรแกรมใด ๆ
การแปลเป็นภาษาท้องถิ่น:
โลคัลไลเซชันคือกระบวนการปรับซอฟต์แวร์ที่เป็นสากลสำหรับภูมิภาคหรือภาษาเฉพาะโดยเพิ่มส่วนประกอบเฉพาะโลแคล (€2.99 => 2,99€) และแปลข้อความ (Hello World! => Hallo Welt!)
Psuodo-การแปลเป็นภาษาท้องถิ่น
การแปล หลอกเป็นวิธีการทดสอบซอฟต์แวร์ที่ใช้ก่อนกระบวนการแปลเป็นภาษาท้องถิ่นซึ่งมีการสร้างการแปลปลอม (หรือหลอก) (ด้วยภูมิภาคและอักขระเฉพาะภาษา)Hello World!
=[ Hellö Wörld! ÜüäßÖ ]
>
ปัญหาที่พบในการแปลเป็นภาษาท้องถิ่น:
การแปลแบบดั้งเดิมเริ่มต้นเมื่อการพัฒนาเสร็จสิ้น เนื่องจากทั้งการพัฒนาและการแปลเป็นภาษาท้องถิ่นถือเป็นสองกระบวนการที่แตกต่างกัน ดังนั้นจึงมีปัญหามากมายที่เกี่ยวข้องกับแนวทางนี้ ซึ่งรวมถึงแต่ไม่จำกัดเพียง:
- สตริงบางสตริงถูกฮาร์ดโค้ดในซอร์สโค้ด:
ทุกสตริงที่แปลเป็นภาษาท้องถิ่นได้ควรแก้ไขได้โดยไม่ต้องแตะโค้ดแม้แต่บรรทัดเดียว เช่น ใน Flutter เรามีไฟล์การแปล เช่น ไฟล์ .arb หรือไฟล์ json ที่แปลเป็นภาษาท้องถิ่น เมื่อทีมใช้วิธีแปลเป็นภาษาท้องถิ่นเมื่อสิ้นสุดการพัฒนา อาจทิ้งสตริงที่แปลเป็นภาษาท้องถิ่นไว้ในซอร์สโค้ดซึ่งยากต่อการเปลี่ยนแปลงในภายหลัง และในกรณีที่คุณรองรับหลายภาษา ความพยายามนี้จะทวีคูณด้วยจำนวนภาษา คุณกำลังสนับสนุน - ข้อความที่แปลอาจยาวหรือสั้นกว่าภาษาที่ใช้ในการออกแบบ:
ต่อไปนี้คืออัตราส่วนการขยาย/การย่อข้อความโดยสมาร์ทลิง : - จีน ญี่ปุ่น : ลดขนาดตัวอักษรลง 50%
- ภาษาเกาหลี : ลดขนาดตัวอักษรลง 30%
- Baseline : แสดงการแปลหลอกโดยไม่มีการขยายข้อความ
- ภาษายุโรป ส่วนใหญ่ : เพิ่มขนาดตัวอักษร 15%
- ฝรั่งเศส อิตาลี : เพิ่มขนาดตัวอักษร 30%
- ดัตช์ เยอรมัน : เพิ่มขนาดตัวอักษร 50%
- ระบุสตริงที่แปลเป็นภาษาท้องถิ่น เช่น "Hello World" ได้รับการแปลเป็น "[!!! Hèℓℓô Wôřℓδ ℓô !!!]” โดยที่ข้อความที่แปลนั้นเข้าใจได้โดยนักพัฒนาเมื่อเปรียบเทียบกับ ตัวอย่างเช่น ถ้าข้อความนั้นถูกแปลเป็นภาษาญี่ปุ่นซึ่งนักพัฒนาบางคนอาจไม่เข้าใจและไม่สามารถระบุได้ว่าองค์ประกอบ UI ใดที่ทำให้การออกแบบยุ่งเหยิง
- เพื่อทดสอบการแสดงผลของอักขระพิเศษทั้งหมดของภาษาเป้าหมาย เช่นภาษาเยอรมัน
- เพื่อทดสอบข้อความที่แปลเป็นภาษาท้องถิ่นว่าสามารถพอดีกับพื้นที่ว่างของกล่องหรือไม่ เช่น Text Container และตรวจสอบว่าสตริงที่แปลแล้วจะไม่ล้นหรือไม่
- ค้นหาสตริงฮาร์ดโค้ดที่ต้องการแปลเป็นภาษาท้องถิ่น
- Psuodolocalization ไม่ได้เน้นไปที่ภาษาใดภาษาหนึ่ง แต่คุณสามารถทำได้สำหรับพื้นที่เป้าหมายใดๆ โดยภาษาส่วนใหญ่มีการยืดหรือย่อข้อความที่ตรงกัน
- เพิ่มปลั๊กอินเป็น dev_dependency ใน pubspec.yaml
Psuodolocalization สามารถช่วยหลีกเลี่ยงปัญหาดังกล่าวข้างต้นได้อย่างไร
ด้วย Psuodolocation คุณจะได้รับข้อความที่แปลเป็นภาษาท้องถิ่นของคุณเป็นการแปลแบบ psudo เช่น “Hello World” ได้รับการแปลเป็น "[!!! Hèℓℓô Wôřℓδ ℓô !!!]” (มีรูปแบบและมาตรฐานที่แตกต่างกันสำหรับการแปลเป็นภาษาท้องถิ่น Psuodolocalization ช่วยคุณในสิ่งต่อไปนี้:
ตามที่ยกมาโดยShopify บล็อก
การแปลหลอกเป็นภาษาท้องถิ่นช่วยให้ทีมวิศวกรรมสามารถทดสอบ UI ของพวกเขาได้อย่างต่อเนื่องสำหรับความสามารถในการแปลเป็นภาษาท้องถิ่นในระหว่างการพัฒนา เนื่องจากการแปลหลอกกลายเป็นภาษาเริ่มต้นสำหรับการพัฒนาของทีม
Psuodolocalization ใน Flutter
โชคดีที่มีปลั๊กอินใน Flutter สำหรับ Psudolocalization flutter_pseudolocalizorด้วย
ด้วยปลั๊กอิน Flutter นี้ คุณสามารถสร้าง Psuodotranslation สำหรับหลายภาษาพร้อมกันได้ แต่คุณจำเป็นต้องแปลเป็นภาษาท้องถิ่นโดยใช้flutter_localization
ขั้นตอนในการใช้flutter_pseudolocalizorเพื่อสร้าง psuodotranslation สำหรับหลายภาษา เนื่องจากขั้นตอนเหล่านี้มีการกล่าวถึงในเอกสารปลั๊กอินด้วย:
dev_dependencies:
flutter_pseudolocalizor:
flutter_pseudolocalizor:
input_filepath: "test.arb"
replace_base: true
unicode_blocks:
- latinSupplement
- latinExtendedA
use_brackets: true
text_expansion_format: 'repeatVowels'
text_expansion_ratio: null
languages_to_generate:
- de
- pl
- ru
patterns_to_ignore:
- '%(\S*?)\$[ds]'
- 'Flutter'
keys_to_ignore:
- 'title'
arb_settings:
output_directory: 'l10n_pseudo'
csv_settings:
output_filepath: 'test_PSEUDO.csv'
delimiter: ";"
column_index: 1
flutter pub run flutter_pseudolocalizor