akexorcist / Localization

[Android] In-app language changing library
Apache License 2.0
983 stars 154 forks source link

view ยังใช้ค่า resource จากภาษาในตอนที่เปิดแอป #55

Closed James941108 closed 3 years ago

James941108 commented 4 years ago

phone : Huawei P10 plus (android 9), Huawei nova5t (android 10) หลังจากเปลี่ยนภาษาแล้ว view ยังใช้ค่า resource จากภาษาในตอนที่เปิดแอปครับ ต้อง kill แอปพลิเคชันแล้วเข้าใหม่จึงจะได้ค่าจาก resource ของภาษาที่เลือก ผมได้ลองเช็คจาก getCurrentLanguage แล้ว ได้ return ภาษาที่ถูกต้องนะครับ และอาการนี้ไม่ได้เป็นกับโทรศัพท์ทุกเครื่องซะด้วย

akexorcist commented 4 years ago

ถ้าอาการแบบนี้ น่าจะเป็นเฉพาะบาง View ด้วยใช่มั้ยครับ ถ้าเป็นไปได้อยากรู้ว่าเป็น View แบบไหน และกำหนดข้อความลงใน View ยังไง

ลองเช็คดูด้วยว่า View เหล่านั้นเวลากำหนดค่าเข้าไปมันกำหนดเป็น String Resource หรือ String เฉยๆ เพราะถ้ากำหนดเป็น String Resource เวลาเปลี่ยนภาษามันจะอัปเดตตามภาษาให้ แต่ถ้าโยน String เข้าไปเฉยๆ มันจะไม่เปลี่ยนให้อยู่แล้วครับ

James941108 commented 4 years ago

นี่เป็นตัวอย่าง view ที่ใช้นะครับ เป็น title text ที่ใช้ resource ตามรูปที่ 1 ครับ รูปที่ 2 คือ preview ของ view ตอนที่ใช้ภาษาอังกฤษ รูปที่ 3 คือ view ตอนที่เลือกเปลี่ยนเป็นภาษาไทยแล้ว จะเห็นว่า หลังคำว่า SINCE ที่เป็นวันที่กับคำว่า Walk เปลี่ยนเป็นภาษาไทยเรียบร้อยดี เพราะผมเช็คจาก getCurrentLanguage ของ LocalizationActivity น่ะครับ รูปที่ 4 คือ view เมื่อผม kill app และเปิดใหม่อีกครั้งนึง จะเห็นว่าทั้งหน้าเปลี่ยนเป็นภาษาที่ถูกต้องแล้ว ข้อมูลเพิ่มเติม นี่เป็น fragment ที่อยู่กับ activity อีกทีนึงครับ

หรืออาจจะผิดที่ผมเองที่ทำอะไรผิดขั้นตอนไปหรือเปล่าครับ

xml image1 image2 image3

akexorcist commented 4 years ago

ขอโทษด้วยครับ ไม่รู้ว่ายังทันหรือป่าว แต่มี Issue ที่คล้ายๆกันที่ผมเพิ่งแก้ไปใน 1.2.6 ครับ