Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Common Locale Data Repository (CLDR) ใน Java 9 คืออะไร

การปรับปรุง Internationalization ใน Java 9 รวมถึงการ เปิดใช้งาน CLDR Locale Data โดยค่าเริ่มต้น

มีแหล่งข้อมูล locale 4 แหล่ง ระบุด้วย keyword ด้านล่าง:

  • CLDR: ข้อมูล locale จาก Unicode Common Locale Data Repository (CLDR) project
  • HOST: การปรับแต่งของผู้ใช้งานปัจจุบันจากการตั้งค่า OS รองรับ format เช่น date, time, number, currency ขึ้นกับ OS
  • SPI: Locale-sensitive services ที่ implemented ใน SPI providers ที่ติดตั้ง
  • COMPAT (JRE): ข้อมูล locale ที่เข้ากันได้กับรุ่นก่อน Java 9 JRE ยังใช้เป็นค่าได้แต่ deprecated และจะลบในอนาคต

ใน Java 8 และก่อนหน้า JRE เป็น default locale data Java 9 ตั้ง CLDR เป็น priority สูงสุดโดยค่าเริ่มต้น สามารถเลือกแหล่งข้อมูล locale ตามลำดับความชอบด้วย system property java.locale.providers หาก provider ไหนล้มเหลว จะประมวลผล provider ถัดไป

การตั้งค่า java.locale.providers

java.locale.providers=COMPAT,CLDR,HOST,SPI

ค่าเริ่มต้น (ไม่ตั้งค่า property)

java.locale.providers=CLDR,COMPAT,SPI

เพื่อเข้ากันได้กับ Java 8 ให้วาง COMPAT หน้า CLDR

java.locale.providers=COMPAT,CLDR

ผลกระทบ

  • รูปแบบวันที่ เวลา ตัวเลข สกุลเงิน อาจเปลี่ยนไปตามข้อมูล CLDR
  • บาง locale อาจมีชื่อแสดงผล ตัวคั่น หรือลำดับฟิลด์ต่างจาก JRE เดิม
  • แอปที่พึ่งพารูปแบบเฉพาะของ JRE ควรตั้งค่า COMPAT ก่อน

CLDR เป็นมาตรฐานข้อมูล locale ของ Unicode Consortium ใช้กว้างขวางใน OS และไลบรารีต่างๆ ทำให้ Java สอดคล้องกับมาตรฐานสากล