โปรแกรมแก้ไขการแปลจะแสดงมุมมองแบบรวมและแก้ไขได้ของทรัพยากรสตริงทั้งหมดที่เป็นค่าเริ่มต้นและที่แปลแล้ว
หากต้องการดูข้อมูลเบื้องต้นเกี่ยวกับการแปลแอปเป็นภาษาต่างๆ โปรดอ่านรองรับภาษาและวัฒนธรรมอื่น
รูปที่ 1 เครื่องมือแก้ไขการแปลแสดงข้อความแอปก่อน การแปล
ทรัพยากรสตริง
ทรัพยากรสตริงสำหรับโปรเจ็กต์จะอยู่ในไฟล์ strings.xml โปรเจ็กต์ของคุณมีไฟล์ strings.xml เริ่มต้นที่มีทรัพยากรสตริงใน
ภาษาเริ่มต้นสำหรับแอป ซึ่งเป็นภาษาที่คุณคาดหวังว่าผู้ใช้แอปส่วนใหญ่จะพูด
นอกจากนี้ คุณยังมีstrings.xmlไฟล์ที่แปลแล้วซึ่งมี
แหล่งข้อมูลสตริงสำหรับภาษาอื่นๆ ที่ต้องการให้แอปของคุณรองรับได้ด้วย
เมื่อสร้างไฟล์ strings.xml เริ่มต้นเสร็จแล้ว คุณจะเพิ่มคำแปลด้วยตนเองหรือจ่ายค่าบริการจากผู้เชี่ยวชาญเพื่อแปลก็ได้
ไม่ว่าจะด้วยวิธีใด คุณควรใช้ประโยชน์จากฟีเจอร์ของ Android Studio เพื่อช่วยจัดการและทดสอบข้อความที่แปลได้ ดูข้อมูลเกี่ยวกับ
บริการแปลภาษาแบบมืออาชีพได้ที่บริการแปลภาษา
เปิดเครื่องมือแก้ไขการแปล
คุณเข้าถึงเครื่องมือแก้ไขการแปลได้จากตำแหน่งต่อไปนี้ใน Android Studio
เปิดจากมุมมอง Android
- ในแผงโปรเจ็กต์ > Android ทางด้านซ้าย ให้เลือก ModuleName > res > values
- คลิกขวาที่ไฟล์ strings.xml แล้วเลือกเปิดตัวแก้ไขการแปล
เครื่องมือแก้ไขการแปลจะแสดงคู่คีย์และค่าจาก
strings.xmlหมายเหตุ: เมื่อแปลไฟล์
strings.xmlแล้ว โปรเจ็กต์จะมีโฟลเดอร์ values ที่สอดคล้องกันหลายโฟลเดอร์ พร้อมด้วยคำต่อท้ายที่ระบุภาษา เช่น values-es สำหรับภาษาสเปน ไฟล์strings.xmlเริ่มต้นจะอยู่ในโฟลเดอร์ values (ไม่มีคำต่อท้าย) เสมอ
รูปที่ 1 แสดงข้อความแอปเริ่มต้น (ในกรณีนี้คือภาษาอังกฤษ) ใน
โปรแกรมแก้ไขการแปลสำหรับแอปอย่างง่ายก่อนที่จะมีการแปล เนื้อหาของไฟล์ที่แปลstrings.xmlจะปรากฏทางด้านขวาของคอลัมน์แปลไม่ได้ โดยมี 1 คอลัมน์ต่อ 1 ภาษา ดังที่แสดงในรูปที่ 2
เปิดจากภายใน strings.xml
คุณเข้าถึงโปรแกรมแก้ไขการแปลได้จากภายในstrings.xml
ไฟล์
- ในแผงโปรเจ็กต์ > Android ทางด้านซ้าย ให้เลือก ModuleName > res > values
- ดับเบิลคลิก strings.xml เพื่อเปิดไฟล์สำหรับแก้ไข
- ใน strings.xml ให้คลิกลิงก์เปิดเครื่องมือแก้ไขที่มุมขวาบน
กำหนดค่าแถวที่แปลไม่ได้
ในโปรแกรมแก้ไขการแปล คุณสามารถเลือกแปลไม่ได้เพื่อระบุ ว่าคุณไม่ต้องการให้แปลข้อความในแถวนี้ ข้อความที่คุณไม่ต้องการให้แปลอาจเป็นข้อความที่เฉพาะเจาะจงกับผลิตภัณฑ์ เช่น ชื่อทางการค้าและเครื่องหมายการค้า หรือคำศัพท์ทางเทคนิคที่ไม่มีคำแปล
เมื่อเลือกแปลไม่ได้ บรรทัดที่เกี่ยวข้องในไฟล์ strings.xml เริ่มต้น
จะเพิ่ม translatable="false" ในตัวอย่างต่อไปนี้
EasyApp ในบรรทัดบนจะไม่ได้รับการแปลเนื่องจากเป็นชื่อผลิตภัณฑ์
<resources>
<string name="app_name" translatable="false">EasyApp</string>
<string name="action_settings">Settings</string>
<string name="easy_app">I am a Simple App!</string>
<string name="next_page">Next Page</string>
<string name="second_page_message">I am the Second Page!</string>
<string name="title_activity_second">SecondActivity</string>
</resources>
เพิ่มและลบภาษา
โปรแกรมแก้ไขการแปลรองรับ BCP 47 และรวมรหัสภาษาและรหัสภูมิภาค (ประเทศ) ไว้ในการเลือกรายการเดียวสำหรับ การแปลที่กำหนดเป้าหมาย ภาษาถิ่นไม่ได้กำหนดแค่ภาษา ภาษา ประกอบด้วยการจัดรูปแบบที่ขึ้นอยู่กับประเทศสำหรับสิ่งต่างๆ เช่น วันที่และเวลา สกุลเงิน และทศนิยม
วิธีเพิ่มภาษา
- ในเครื่องมือแก้ไขการแปล ให้คลิกไอคอนลูกโลก

- เลือกภาษาที่ต้องการเพิ่มจากรายการแบบเลื่อนลง ภาษาใหม่จะปรากฏในโปรแกรมแก้ไขการแปล และระบบจะเพิ่มโฟลเดอร์ values-* พร้อมไฟล์ `strings.xml` ลงในโปรเจ็กต์ เช่น values-es สำหรับภาษาสเปน
หากต้องการลบภาษา ให้ทำดังนี้
คุณลบภาษาในเครื่องมือแก้ไขคำแปลได้โดยลบค่าทั้งหมดในคอลัมน์ (ดูแก้ไข เพิ่ม และลบข้อความ) หรือจะลบโฟลเดอร์โปรเจ็กต์สำหรับภาษานั้นก็ได้ โดยทำดังนี้
- ในแผงโปรเจ็กต์ > Android ทางด้านซ้าย ให้เลือก ModuleName > res
- คลิกขวาโฟลเดอร์ values-* สำหรับภาษาที่ต้องการลบ เช่น values-hi สำหรับภาษาฮินดี
- จากรายการ ให้เลือกลบเพื่อลบโฟลเดอร์และไฟล์ strings.xml
แก้ไข เพิ่ม และลบข้อความ
คุณสามารถดำเนินการกับการตั้งค่าข้อความได้โดยตรงในstrings.xmlไฟล์หรือ
ผ่านเครื่องมือแก้ไขคำแปล ส่วนนี้จะอธิบายแนวทางของโปรแกรมแก้ไข
การแปล ในโปรแกรมแก้ไขคำแปล คุณสามารถแก้ไข เพิ่ม หรือลบ
ข้อความผ่านมุมมองรายการหรือผ่านช่องคำแปลที่ด้านล่าง
ของโปรแกรมแก้ไขคำแปล
รูปที่ 2 มุมมองรายการที่ด้านบนและช่องการแปลที่ด้านล่าง
มุมมองรายการ
หากต้องการแก้ไขหรือเพิ่มข้อความ ให้ทำดังนี้
- ดับเบิลคลิกเซลล์ที่ต้องการแก้ไขหรือ เพิ่มข้อความ
- คัดลอกและวางโดยใช้แป้นพิมพ์ หรือหากมีแป้นพิมพ์ที่รองรับเครื่องหมายกำกับ ให้พิมพ์ลงในมุมมองรายการโดยตรง
- กด Tab หรือเลื่อนเคอร์เซอร์ออกจากช่อง
หากต้องการลบข้อความ ให้ทำดังนี้
- ดับเบิลคลิกเซลล์ที่ต้องการลบ
- ในมุมมองรายการ ให้เลือกข้อความแล้วกดลบ
- กด Tab หรือเลื่อนเคอร์เซอร์ออกจากช่อง
ฟิลด์การแปล
หากต้องการแก้ไขหรือเพิ่มข้อความ ให้ทำดังนี้
- ในมุมมองรายการ ให้คลิกเซลล์ที่ต้องการแก้ไขหรือเพิ่มข้อความ เพียงครั้งเดียว
- ในช่องการแปล ให้คัดลอกและวางจากแป้นพิมพ์ หรือหากมีแป้นพิมพ์ที่รองรับเครื่องหมายกำกับ ให้พิมพ์ลงในช่องการแปลโดยตรง
- กด Tab หรือเลื่อนเคอร์เซอร์ออกจากช่อง
หากต้องการลบข้อความ ให้ทำดังนี้
- คลิกเซลล์ที่ต้องการลบ 1 ครั้ง
- ในช่องคำแปล ให้เลือกข้อความแล้วกดลบ
เพิ่มและลบคีย์
ในเครื่องมือแก้ไขการแปล คอลัมน์คีย์จะแสดงรายการตัวระบุที่ไม่ซ้ำกันสำหรับ
แต่ละรายการข้อมูลในไฟล์ strings.xml คุณเพิ่มและลบคีย์ได้ผ่าน
เครื่องมือแก้ไขการแปล เมื่อคุณลบคีย์ ตัวแก้ไขการแปลจะลบ
คีย์นั้นและคำแปลที่เชื่อมโยงทั้งหมด โปรแกรมแก้ไขการแปลใช้การจัดระเบียบโค้ด Safe
Delete เพื่อลบคีย์ คุณจึงทราบว่ามีการใช้ข้อความคีย์ที่อื่นหรือไม่
และมีโอกาสปรับเปลี่ยนที่จำเป็นก่อนที่จะลบคีย์ การจัดระเบียบโค้ดใหม่ด้วย
การลบอย่างปลอดภัยช่วยให้มั่นใจว่าโค้ดจะยังคอมไพล์ได้หลังจากที่คุณลบ
คีย์
วิธีเพิ่มคีย์
- ในโปรแกรมแก้ไขการแปล ให้คลิกเพิ่มคีย์

- ในกล่องโต้ตอบ ให้ป้อนชื่อคีย์ ค่าเริ่มต้น และตำแหน่งของไฟล์ strings.xml เริ่มต้น

รูปที่ 3 เพิ่มคีย์
หากต้องการลบคีย์ ให้ทำดังนี้
- ในเครื่องมือแก้ไขการแปล ให้เลือกคีย์ที่ต้องการลบ
- คลิกนำคีย์ออก

- ในกล่องโต้ตอบลบ ให้เลือกว่าต้องการลบอย่างปลอดภัยหรือไม่ และต้องการค้นหาในความคิดเห็นและสตริงหรือไม่ แล้วคลิกตกลง

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

รูปที่ 6 การใช้งานที่ไม่ปลอดภัย
- คลิกขวาที่การใช้งานเพื่อแสดงเมนูตามบริบท แล้วเลือกไปที่แหล่งที่มาเพื่อให้คุณทำการเปลี่ยนแปลงที่จำเป็นได้
- ในแผงค้นหาความขัดแย้งในการลบอย่างปลอดภัย ให้เลือกเรียกใช้การลบอย่างปลอดภัยอีกครั้งเพื่อ ตรวจสอบว่าไม่มีการใช้งานอื่นๆ ที่ต้องดำเนินการ
- เมื่อล้างข้อมูลการใช้งานแล้ว ให้คลิกทำการปรับโครงสร้างเพื่อลบคีย์
แก้ไขข้อผิดพลาด
รูปที่ 7 แสดงเครื่องมือแก้ไขการแปลที่แสดงเนื้อหาของไฟล์ภาษาอังกฤษ ฝรั่งเศส และสเปน strings.xml ข้อความสีแดงแสดงบรรทัด
ที่มีข้อผิดพลาด
รูปที่ 7 ข้อความสีแดงแสดงถึงข้อผิดพลาดที่คุณ ต้องแก้ไข
หากต้องการแก้ไขข้อผิดพลาด ให้วางเมาส์เหนือข้อความสีแดงเพื่อแสดงคำอธิบายของปัญหาและวิธีแก้ไข
เมื่อคุณทำการเปลี่ยนแปลงในเครื่องมือแก้ไขคำแปล ไฟล์strings.xml ที่เกี่ยวข้องจะอัปเดตตามการเปลี่ยนแปลงของคุณ เมื่อคุณทำการเปลี่ยนแปลงในstrings.xmlไฟล์ คอลัมน์ที่เกี่ยวข้องในเครื่องมือแก้ไขคำแปล
จะอัปเดตตามการเปลี่ยนแปลงของคุณ
ตัวอย่างการแก้ไขในโปรแกรมแก้ไขการแปล
- รูปที่ 7 แสดงให้เห็นว่าแถว app_name มีช่องแปลไม่ได้ที่เลือกไว้ แต่มีคำแปลภาษาสเปนให้ ลบคำแปลภาษาสเปนเพื่อแก้ไขข้อผิดพลาด
- รูปที่ 7 แสดงให้เห็นว่าแถว next_page ไม่มีคำแปลภาษาฝรั่งเศส ใช้แป้นพิมพ์เพื่อคัดลอก Page Suivante ลงในเซลล์เพื่อแก้ไขข้อผิดพลาด การคัดลอกและวางด้วยแป้นพิมพ์ จะคัดลอกข้อความพร้อมเครื่องหมายกำกับเสียงไปยังเซลล์
จัดการและทดสอบข้อความที่แปลได้
แพลตฟอร์ม Android และ Android Studio มีฟีเจอร์หลายอย่างที่จะช่วยคุณ จัดการและทดสอบข้อความในแอปที่แปลได้ ฟีเจอร์เหล่านี้มีตัวเลือกที่จะช่วย คุณแก้ปัญหาเกี่ยวกับสคริปต์ที่อ่านจากขวาไปซ้าย (RTL) เช่น ภาษาอาหรับหรือฮีบรู การทดสอบข้อความที่แปลได้จะช่วยให้คุณปรับข้อความ UI และ เลย์เอาต์ก่อนที่จะส่งข้อความไปยังที่เก็บแหล่งข้อมูลเพื่อส่ง ไปแปลในภายหลัง
รองรับภาษา RTL
Jetpack Compose จัดการเลย์เอาต์จากขวาไปซ้าย (RTL) โดยค่าเริ่มต้น ตัวแก้ไขเลย์เอาต์
และ API สร้างขึ้นโดยอิงตามแนวคิดเชิงทิศทาง เช่น start และ end มากกว่า
ทิศทางสัมบูรณ์ เช่น left และ right เมื่อภาษาของระบบ
เปลี่ยนเป็นภาษา RTL Compose จะมิเรอร์เลย์เอาต์เหล่านี้ให้คุณโดยอัตโนมัติ
หากต้องการให้แอปจดจำภาษา RTL และทริกเกอร์การมิเรอร์นี้ คุณต้อง เลือกใช้โดยใช้ไฟล์ Manifest ของแอป
หากต้องการเปิดใช้การรองรับ RTL ให้ทำดังนี้
- เปิดไฟล์
AndroidManifest.xml - เพิ่มแอตทริบิวต์
android:supportsRtl="true"ลงในองค์ประกอบ<application>
<manifest ... >
<application
...
android:supportsRtl="true">
</application>
</manifest>
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Compose จัดการเลย์เอาต์ข้อความ การมิเรอร์ และการกำหนดค่า RTL ที่กำหนดเองได้ที่การทำงานกับภาษา RTL
ตั้งค่าทิศทางข้อความด้วยตนเอง
ใน Jetpack Compose คุณไม่ต้องใช้หน้าต่างคุณสมบัติภาพเพื่อบังคับเลย์เอาต์หรือ ทิศทางข้อความ Compose จะจัดการการมิเรอร์ RTL โดยอัตโนมัติตามภาษาของระบบ
อย่างไรก็ตาม หากต้องการลบล้างทิศทางสำหรับองค์ประกอบข้อความที่เฉพาะเจาะจงด้วยตนเอง (เช่น การแสดงสตริง LTR ในเลย์เอาต์ RTL) คุณสามารถส่งออบเจ็กต์ TextDirection
TextStyle ไปยัง TextStyle ได้
ค่าที่รองรับมีดังนี้
TextDirection.Content: (Default): อนุมานทิศทางจากอักขระทิศทางที่แข็งแกร่งตัวแรกTextDirection.Ltr: บังคับทิศทางจากซ้ายไปขวาTextDirection.Rtl: บังคับทิศทางจากขวาไปซ้าย
ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดรูปแบบข้อความและการกำหนดค่าทิศทางข้อความด้วยตนเองใน Compose ได้ที่จัดรูปแบบข้อความ
ใช้สตริงที่แปลแล้วในแอป
เมื่อเพิ่มและแปลสตริงโดยใช้โปรแกรมแก้ไขการแปลแล้ว
ระบบจะอัปเดตไฟล์ res/values/strings.xml ที่เกี่ยวข้องโดยอัตโนมัติ และคุณ
จะใช้ทรัพยากรที่แปลแล้วใน UI ได้โดยตรง
ดูวิธีแสดงข้อความที่แปล จัดการ RTL โดยตรง และใช้ @Preview
เพื่อทดสอบภาษาต่างๆ และภาษาจำลองได้ที่ส่วนสตริงของ
ทรัพยากรใน Compose
Pseudolocale
Pseudolocale คือภาษาจำลองที่ออกแบบมาเพื่อจำลองลักษณะของภาษาที่ทำให้เกิดปัญหาเกี่ยวกับ UI, เลย์เอาต์, RTL และการแปลอื่นๆ เมื่อมีการแปลแอป ภาษาจำลองจะให้การแปลภาษาโดยอัตโนมัติในทันที ซึ่งอ่านเป็นภาษาอังกฤษได้สำหรับข้อความทั้งหมดที่แปลได้ ซึ่งช่วยให้คุณตรวจพบข้อความที่แปลไม่ได้ในซอร์สโค้ด
ดูข้อมูลเกี่ยวกับวิธีใช้ภาษาจำลองได้ที่ทดสอบแอปด้วยภาษาจำลอง