Android: การแก้ไขทรัพยากรภาษา (ในแอปและใน Play Store)

ฉันสับสนเล็กน้อยกับคำแนะนำที่นี่

ก่อน Android 7 ดูเหมือนว่าอุปกรณ์จะลองใช้ภาษาเฉพาะเช่น fr_FR และหากไม่มีแหล่งข้อมูลด้านภาษาดังกล่าว ระบบจะเพิกถอนประเทศและดูใน fr

บนพื้นฐานนี้ เนื่องจากฉันไม่มีนักแปลจำนวนมากที่จะแปลเป็นภาษาท้องถิ่นแต่ละภาษา ฉันจึงเก็บคำแปลไว้ในโฟลเดอร์หลัก เช่น fr, de ฯลฯ หากผู้ใช้ไม่ชอบรูปแบบที่จัดส่ง จะมีตัวเลือกในแอปให้เลือกแบบอื่น

สำหรับ Android 7 ขึ้นไป คำแนะนำน่าจะเป็น:

จัดเก็บทรัพยากรในภาษาถิ่นที่ใช้บ่อยที่สุด ตัวอย่างเช่น หากคุณเคยจัดเก็บทรัพยากรภาษาสเปนไว้ในไดเร็กทอรี values-es-rUS มาก่อน ให้ย้ายทรัพยากรเหล่านั้นไปไว้ในไดเร็กทอรี values-b+es+419 ซึ่งมีภาษาสเปนแบบละตินอเมริกา

แต่แน่นอนว่าหากคำแปลภาษาสเปนของคุณมีไว้สำหรับ es_US จริงๆ ก็ไม่สมเหตุสมผลเลยที่จะถือว่าคำแปลเหล่านี้เป็น es_419 (เพราะ es_US และ es_419 แตกต่างกัน) ทำไมไม่ปล่อยไว้ต่ำกว่า es_US เพราะดูเหมือนว่าสำหรับ Android 7 จะยังคงพบพวกมันอยู่ดี (โดยการเดินขึ้นแล้วลงต้นไม้) แม้ว่าอุปกรณ์จะตั้งค่าเป็น es_ES และ es_US เป็นเพียงสิ่งเดียวที่ใช้ได้

สำหรับนักพัฒนารายย่อย มีเพียงคำแปลเดียวสำหรับภาษาใดภาษาหนึ่ง (เช่น es_ES เท่านั้น) ยังคงเป็นกลยุทธ์ที่สมเหตุสมผลหรือไม่ที่จะรวมคำแปลนั้นไว้ในโฟลเดอร์ภาษาหลัก (เช่น es) ด้วยวิธีนี้ ควรส่งมอบสำหรับเวอร์ชันภาษาสเปนที่ร้องขอ ทั้งก่อนและหลัง Android 7 แต่สิ่งนี้ขัดกับคำแนะนำข้างต้น

และสำหรับการแปลคำอธิบายแอปใน Play Store สำหรับฉันแล้ว ดูเหมือนว่าไม่มีตรรกะในการแก้ปัญหาแบบลำดับชั้นเหมือนใน Android... ดูเหมือนว่าจะมีรายการภาษาไม่ชัดเจน . สมมติว่าคุณมีเฉพาะคำแปลสำหรับภาษาสเปน (สเปน) เท่านั้น ดังนั้นเพื่อที่จะนำไปใช้ในสหรัฐอเมริกา ละตินอเมริกา และสเปน (บนพื้นฐานที่ว่าภาษาสเปนในรูปแบบอื่นดีกว่าการแปลภาษาอังกฤษด้วยคอมพิวเตอร์) คุณจำเป็นต้องคัดลอกสิ่งนั้นลงในช่องภาษาสเปนของสหรัฐอเมริกา ละตินอเมริกาสเปน และสเปนสเปน... ไม่มีช่อง "สเปน" ทั่วไปหรือไม่


person drmrbrewer    schedule 22.11.2016    source แหล่งที่มา


คำตอบ (2)


แต่แน่นอนว่าหากการแปลภาษาสเปนของคุณมีไว้สำหรับ es_US จริง ๆ แล้วมันไม่สมเหตุสมผลเลยที่จะถือว่ามันเป็น es_419 (เพราะ es_US และ es_419 แตกต่างกัน)

มันอาจจะสมเหตุสมผลหากคุณมีคำแปลเพียงอันเดียวสำหรับทั้งสองอย่าง

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

ก็จะเจอแต่ก็จะช้ากว่าเล็กน้อย

สำหรับนักพัฒนารายเล็ก มีเพียงคำแปลเดียวสำหรับภาษาใดภาษาหนึ่ง (เช่น es_ES เท่านั้น) ยังคงเป็นกลยุทธ์ที่สมเหตุสมผลหรือไม่ที่จะติดมันไว้ในโฟลเดอร์ภาษาหลัก (เช่น es) ด้วยวิธีนี้ ควรส่งมอบสำหรับเวอร์ชันภาษาสเปนที่ร้องขอ ทั้งก่อนและหลัง Android 7

มีอุปกรณ์น้อยกว่าหนึ่งในพันที่ใช้ Android รุ่นก่อน 7 ดังนั้นจึงไม่เหมาะสมที่จะรองรับอุปกรณ์เหล่านั้น เว้นแต่คุณจะมีโค้ดเบสแบบเดิม เนื่องจากความซับซ้อนที่เพิ่มขึ้นของความเข้ากันได้แบบย้อนหลัง

หากคุณมีคำแปลเพียงคำเดียว และบอกว่าพวกเขาตั้งค่าอุปกรณ์เป็น es_MX ระบบจะค้นหา es_MX จากนั้น es จากนั้นตามด้วย es ลูกอื่นๆ เช่น es_ES หากคุณมีเพียงหนึ่งคำแปล es ก็ไม่เป็นไร คุณอาจต้องการใส่ความคิดเห็นใน XML ว่าเป็นการแปล es_ES แต่คุณใส่ไว้ใน es เนื่องจากคุณมีการแปลเพียงรายการเดียว (แม้ว่าจะปล่อยไว้ใน es_ES ก็ไม่เป็นไรเช่นกัน เนื่องจากอุปกรณ์ es_MX จะใช้ es_ES หากไม่พบ es_MX หรือไดเรกทอรี es)

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

person Dennis Sheil    schedule 23.11.2016
comment
จะพบมัน แต่จะช้ากว่าเล็กน้อย - ความล่าช้านั้นสำคัญขนาดนั้นจริงหรือ? ฉันกำลังจินตนาการว่าอาจจะเป็นหนึ่งหรือสองรอบนาฬิกา - person drmrbrewer; 24.11.2016
comment
แค่อยากเน้นย้ำว่าอุปกรณ์ 4 ใน 5 เป็นอุปกรณ์ Android รุ่นก่อน 7 ไม่ใช่ 1 ในพัน คุณอาจคิดถึงระดับ API แทนที่จะเป็นเวอร์ชัน Android (ที่มา: developer.android.com/about/dashboards/index.html#Platform) - person Can_of_awe; 20.11.2017

สำหรับแอป ให้ใช้โฟลเดอร์ทั่วไปตราบใดที่คุณไม่มีการเปลี่ยนแปลงภูมิภาค : หรือที่เรียกว่า "es" ไม่ใช่ "es-US" ดังนั้นผู้พูด ES ทุกคนจะใช้คำแปล (ไม่ว่าภูมิภาค)

จากนั้นคุณอาจเขียนทับคำบางคำเช่น "color vs colour" สำหรับ en-US และ en-GB

สำหรับ Google Play Store: ฉันไม่แน่ใจ เนื่องจากไม่มี "es" มีเพียง "es-ES", "es-xxx" เท่านั้น และตรรกะดูเหมือนจะแตกต่างออกไป

person Community    schedule 05.12.2017