Pseudolocalization ช่วยคุณได้อย่างไรในการทำให้เป็นสากล

Nov 28 2022
ก่อนที่จะลงลึกไปถึงการแปลแบบ psuodolocalization เรามาทำความเข้าใจคำนิยามพื้นฐานของการทำให้เป็นสากล การแปลเป็นภาษาท้องถิ่น และการแปลเป็นภาษาท้องถิ่นเสียก่อน การทำให้เป็นสากล: การทำให้เป็นสากลเป็นกระบวนการของการออกแบบแอปพลิเคชันซอฟต์แวร์เพื่อให้สามารถปรับให้เข้ากับภาษาและภูมิภาคอื่น ๆ ได้อย่างง่ายดาย โดยไม่ต้องเปลี่ยนแปลงโปรแกรมใด ๆ

ก่อนที่จะลงลึกไปถึงการแปลแบบ psuodolocalization ก่อนอื่นมาทำความเข้าใจกับคำจำกัดความพื้นฐานของการทำให้ เป็น สากลการแปล เป็นภาษาท้องถิ่น และ การแปลเป็นภาษา ท้องถิ่น

ความเป็นสากล:

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

การแปลเป็นภาษาท้องถิ่น:

โลคัลไลเซชันคือกระบวนการปรับซอฟต์แวร์ที่เป็นสากลสำหรับภูมิภาคหรือภาษาเฉพาะโดยเพิ่มส่วนประกอบเฉพาะโลแคล (€2.99 => 2,99€) และแปลข้อความ (Hello World! => Hallo Welt!)

Psuodo-การแปลเป็นภาษาท้องถิ่น

การแปล หลอกเป็นวิธีการทดสอบซอฟต์แวร์ที่ใช้ก่อนกระบวนการแปลเป็นภาษาท้องถิ่นซึ่งมีการสร้างการแปลปลอม (หรือหลอก) (ด้วยภูมิภาคและอักขระเฉพาะภาษา)Hello World!=[ Hellö Wörld! ÜüäßÖ ]>

ปัญหาที่พบในการแปลเป็นภาษาท้องถิ่น:

การแปลแบบดั้งเดิมเริ่มต้นเมื่อการพัฒนาเสร็จสิ้น เนื่องจากทั้งการพัฒนาและการแปลเป็นภาษาท้องถิ่นถือเป็นสองกระบวนการที่แตกต่างกัน ดังนั้นจึงมีปัญหามากมายที่เกี่ยวข้องกับแนวทางนี้ ซึ่งรวมถึงแต่ไม่จำกัดเพียง:

  1. สตริงบางสตริงถูกฮาร์ดโค้ดในซอร์สโค้ด:
    ทุกสตริงที่แปลเป็นภาษาท้องถิ่นได้ควรแก้ไขได้โดยไม่ต้องแตะโค้ดแม้แต่บรรทัดเดียว เช่น ใน Flutter เรามีไฟล์การแปล เช่น ไฟล์ .arb หรือไฟล์ json ที่แปลเป็นภาษาท้องถิ่น เมื่อทีมใช้วิธีแปลเป็นภาษาท้องถิ่นเมื่อสิ้นสุดการพัฒนา อาจทิ้งสตริงที่แปลเป็นภาษาท้องถิ่นไว้ในซอร์สโค้ดซึ่งยากต่อการเปลี่ยนแปลงในภายหลัง และในกรณีที่คุณรองรับหลายภาษา ความพยายามนี้จะทวีคูณด้วยจำนวนภาษา คุณกำลังสนับสนุน
  2. ข้อความที่แปลอาจยาวหรือสั้นกว่าภาษาที่ใช้ในการออกแบบ:
    ต่อไปนี้คืออัตราส่วนการขยาย/การย่อข้อความโดยสมาร์ทลิง :
  3. จีน ญี่ปุ่น : ลดขนาดตัวอักษรลง 50%
  4. ภาษาเกาหลี : ลดขนาดตัวอักษรลง 30%
  5. Baseline : แสดงการแปลหลอกโดยไม่มีการขยายข้อความ
  6. ภาษายุโรป ส่วนใหญ่ : เพิ่มขนาดตัวอักษร 15%
  7. ฝรั่งเศส อิตาลี : เพิ่มขนาดตัวอักษร 30%
  8. ดัตช์ เยอรมัน : เพิ่มขนาดตัวอักษร 50%
  9. ตัวอย่างปัญหาตำแหน่งโดย Shopify

    Psuodolocalization สามารถช่วยหลีกเลี่ยงปัญหาดังกล่าวข้างต้นได้อย่างไร

    ด้วย Psuodolocation คุณจะได้รับข้อความที่แปลเป็นภาษาท้องถิ่นของคุณเป็นการแปลแบบ psudo เช่น “Hello World” ได้รับการแปลเป็น "[!!! Hèℓℓô Wôřℓδ ℓô !!!]” (มีรูปแบบและมาตรฐานที่แตกต่างกันสำหรับการแปลเป็นภาษาท้องถิ่น Psuodolocalization ช่วยคุณในสิ่งต่อไปนี้:

    1. ระบุสตริงที่แปลเป็นภาษาท้องถิ่น เช่น "Hello World" ได้รับการแปลเป็น "[!!! Hèℓℓô Wôřℓδ ℓô !!!]” โดยที่ข้อความที่แปลนั้นเข้าใจได้โดยนักพัฒนาเมื่อเปรียบเทียบกับ ตัวอย่างเช่น ถ้าข้อความนั้นถูกแปลเป็นภาษาญี่ปุ่นซึ่งนักพัฒนาบางคนอาจไม่เข้าใจและไม่สามารถระบุได้ว่าองค์ประกอบ UI ใดที่ทำให้การออกแบบยุ่งเหยิง
    2. เพื่อทดสอบการแสดงผลของอักขระพิเศษทั้งหมดของภาษาเป้าหมาย เช่นภาษาเยอรมัน
    3. เพื่อทดสอบข้อความที่แปลเป็นภาษาท้องถิ่นว่าสามารถพอดีกับพื้นที่ว่างของกล่องหรือไม่ เช่น Text Container และตรวจสอบว่าสตริงที่แปลแล้วจะไม่ล้นหรือไม่
    4. ค้นหาสตริงฮาร์ดโค้ดที่ต้องการแปลเป็นภาษาท้องถิ่น
    5. Psuodolocalization ไม่ได้เน้นไปที่ภาษาใดภาษาหนึ่ง แต่คุณสามารถทำได้สำหรับพื้นที่เป้าหมายใดๆ โดยภาษาส่วนใหญ่มีการยืดหรือย่อข้อความที่ตรงกัน

    ตามที่ยกมาโดยShopify บล็อก

    การแปลหลอกเป็นภาษาท้องถิ่นช่วยให้ทีมวิศวกรรมสามารถทดสอบ UI ของพวกเขาได้อย่างต่อเนื่องสำหรับความสามารถในการแปลเป็นภาษาท้องถิ่นในระหว่างการพัฒนา เนื่องจากการแปลหลอกกลายเป็นภาษาเริ่มต้นสำหรับการพัฒนาของทีม

    Psuodolocalization ใน Flutter

    โชคดีที่มีปลั๊กอินใน Flutter สำหรับ Psudolocalization flutter_pseudolocalizorด้วย
    ด้วยปลั๊กอิน Flutter นี้ คุณสามารถสร้าง Psuodotranslation สำหรับหลายภาษาพร้อมกันได้ แต่คุณจำเป็นต้องแปลเป็นภาษาท้องถิ่นโดยใช้flutter_localization

    ขั้นตอนในการใช้flutter_pseudolocalizorเพื่อสร้าง psuodotranslation สำหรับหลายภาษา เนื่องจากขั้นตอนเหล่านี้มีการกล่าวถึงในเอกสารปลั๊กอินด้วย:

    1. เพิ่มปลั๊กอินเป็น dev_dependency ใน pubspec.yaml
    2. 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