ทดสอบแอปด้วยภาษาจำลอง (pseudolocale)

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

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

รูปที่ 1 ภาษาจำลองภาษาอังกฤษ (XA)

ชื่อภาษาจำลองของ Android เป็นไปตามรูปแบบการตั้งชื่อภาษามาตรฐาน และภาษาโปรแกรมใดก็ได้ที่เป็นไปตามข้อกำหนด BCP 47 จะแยกวิเคราะห์รหัสภาษาได้ ในแง่นี้ ภาษาจำลองจึงเหมือนกับภาษาอื่นๆ เช่น ฝรั่งเศส จีน หรือรัสเซีย

แพลตฟอร์ม Android มีภาษาจำลอง 2 ภาษาต่อไปนี้เพื่อแสดงภาษาจากซ้ายไปขวา (LTR) และจากขวาไปซ้าย (RTL)

รูปที่ 2 ภาษาจำลอง AR (XB)

อังกฤษ (XA): เพิ่มเครื่องหมายกำกับการออกเสียงภาษาละตินลงในข้อความ UI ภาษาอังกฤษพื้นฐาน ขยายข้อความต้นฉบับด้วยการเพิ่มข้อความที่ไม่มีเครื่องหมายกำกับการออกเสียง และใส่วงเล็บเหลี่ยมรอบๆ แต่ละหน่วยข้อความเพื่อแสดงปัญหาที่อาจเกิดขึ้นจากข้อความที่ขยาย ปัญหาที่อาจเกิดขึ้นได้คือการจัดวางที่ขาดตอนและรูปแบบข้อความที่ไม่เป็นระเบียบ เช่น ประโยคที่แบ่งออกเป็นหลายส่วนซึ่งแสดงเป็นข้อความที่มีวงเล็บหลายรายการ ภาษาจำลองภาษาอังกฤษ (XA) จะแสดงในรูปที่ 1

AR (XB): ตั้งค่าทิศทางข้อความของข้อความต้นฉบับจากซ้ายไปขวาเป็นจากขวาไปซ้าย ซึ่งจะกลับลําดับของอักขระในข้อความต้นฉบับ ภาษาจำลอง AR (XB) แสดงในรูปที่ 2

ภาษาจำลองจะช่วยคุณสร้างแอปเวอร์ชัน RTL ได้ แม้ว่าคุณจะไม่ได้เขียนหรือพูดภาษา RTL ก็ตาม

เปิดใช้ภาษาจำลอง

โดยปกติแล้ว ระบบจะเพิ่มภาษาจำลองลงในบิลด์ที่มุ่งเน้นนักพัฒนาแอป เมื่อคุณเลือกภาษาจำลองในอุปกรณ์ แอปทั้งหมดที่รองรับภาษาจำลองจะมีลักษณะของภาษาจำลองที่เลือก รวมถึงแอประบบทั้งหมด เช่น แอปการตั้งค่าและแผงการตั้งค่าด่วน

หากต้องการใช้ภาษาจำลองของ Android คุณต้องใช้งาน Android 4.3 (API ระดับ 18) ขึ้นไปและเปิดใช้ตัวเลือกสำหรับนักพัฒนาแอปในอุปกรณ์ นอกจากนี้ คุณยังต้องรีบูตอุปกรณ์หลังจากเปิดใช้ตัวเลือกสำหรับนักพัฒนาแอปด้วย

ขั้นตอนต่อไปนี้จะอธิบายวิธีเปิดใช้ภาษาจำลอง

  1. ใน Android Studio ให้เปิดใช้ภาษาจำลองสําหรับแอปที่เฉพาะเจาะจงโดยเพิ่มการกําหนดค่าต่อไปนี้ลงในไฟล์ build.gradle

    Groovy

    android {
       ...
       buildTypes {
           debug {
               pseudoLocalesEnabled true
           }
       }
    }

    Kotlin

    android {
       ...
       buildTypes.getByName("debug") {
           isPseudoLocalesEnabled = true
       }
    }
  2. สร้างและเรียกใช้แอป

    รูปที่ 3 เลือกภาษาจำลอง

  3. ใช้แอปการตั้งค่าเพื่อเลือกภาษาจำลอง ขั้นตอนนี้จะแตกต่างกันไปตามเวอร์ชัน Android ดังนี้

    Android 5.0 (API ระดับ 21) ขึ้นไป

    1. เปิดแอปการตั้งค่าในอุปกรณ์ แล้วแตะภาษาและการป้อนข้อมูล > ค่ากำหนดภาษา
    2. ในรายการค่ากําหนดภาษา ให้ลากแท็บเพื่อย้ายภาษาจำลองไปที่ด้านบนของรายการ แล้วทําให้เป็นภาษาที่ใช้งานอยู่ โปรดดูรูปที่ 3

    Android 4.4.4 (API ระดับ 19) หรือต่ำกว่า

    1. ในอุปกรณ์ ให้เปิดแอปการตั้งค่า แล้วแตะภาษาและการป้อนข้อมูล > ค่ากำหนดภาษา > เพิ่มภาษา
    2. แตะภาษาจำลองเพื่อเพิ่มลงในรายการค่ากําหนดภาษา
    3. ในรายการค่ากําหนดภาษา ให้ลากแท็บเพื่อย้ายภาษาจำลองไปที่ด้านบนของรายการ แล้วทําให้เป็นภาษาที่ใช้งานอยู่ ดูรูปที่ 3

ปัญหาการแปลภาษาของจุด

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

  • สตริงแบบฮาร์ดโค้ดที่ส่งไปยังการแปลไม่ได้จะแสดงเป็นข้อความที่ไม่มีเครื่องหมายกำกับการออกเสียงในภาษาจำลองเพื่อให้สังเกตเห็นได้
  • ปัญหาเลย์เอาต์ UI ที่เกิดจากข้อความที่ขยาย ซึ่งแสดงตำแหน่งที่ UI อาจแบ่งบรรทัดเนื่องจากความยาวของข้อความ
  • การต่อสตริง ซึ่งจะแสดงเป็นข้อความเดียวที่แบ่งออกเป็นวงเล็บ 2 ตัวขึ้นไป ซึ่งอาจทำให้การแปลที่ถูกต้องทำได้ยาก เนื่องจากผู้แปลต้องแปลแต่ละส่วนแยกกันโดยไม่รู้ว่าส่วนต่างๆ นั้นเกี่ยวข้องกัน นอกจากนี้ การต่อสตริงยังทําให้แปลไม่ถูกต้องได้ เนื่องจากภาษาต่างๆ อาจต้องใช้ลําดับของส่วนต่างๆ ที่แตกต่างกันหรือโครงสร้างประโยคที่แตกต่างออกไปโดยสิ้นเชิง เช่น ภาษาเกาหลี ญี่ปุ่น และภาษาทมิฬจะวางกริยาไว้ที่ท้ายประโยค เมื่อมีการต่อประโยคกัน นักแปลจะเปลี่ยนลําดับคําตามต้องการไม่ได้

  • ปัญหาข้อความแบบ 2 ทิศทาง (BIDI) เช่น เมื่อเนื้อหาในทิศทางข้อความหนึ่งมีวลีในบรรทัดในทิศทางข้อความตรงข้าม ซึ่งทำให้อ่านสตริงได้ยาก

  • ปัญหาเกี่ยวกับภาษาจากขวาไปซ้าย (RTL) เช่น องค์ประกอบไม่ได้รับการมิเรอร์ ตัวอย่างบางส่วน ได้แก่ องค์ประกอบ UI ไม่เลื่อนไปทางซ้าย ข้อความไม่กลับด้านและเลื่อนไปทางซ้าย หรือเครื่องหมายวรรคตอนอยู่ผิดที่ เช่น "pseudolocales rule!" เปลี่ยนเป็น "elur selacoloduesp!" แทนที่จะเป็น "!elur selacoloduesp"