การโลคัลไลเซชันและการทำให้เป็นสากลมีความแตกต่างกันอย่างไร


208

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

ในการค้นหาคำถามที่มีอยู่ในหัวข้อที่ฉันกำลังคิดคำว่า "นานาชาติ" ดังนั้นฉันเลือกแท็กสากลและอ่านคำถามที่ตรงกัน

ในที่สุดฉันก็รู้ว่าฉันควรจะดูคำถามที่ติดแท็ก Localization แทน อย่างไรก็ตามดูเหมือนว่าฉันไม่ได้อยู่คนเดียวในการทำให้คำสองคำนี้สับสน

ดังนั้นอะไรคือความแตกต่างที่สำคัญระหว่าง Localization และ Internationalization

ความแตกต่างที่ชัดเจนระหว่างพวกเขาสำคัญจริงๆเหรอ?

คำตอบ:


232
สากล (i18n)
กระบวนการเปลี่ยนซอฟต์แวร์ของคุณเพื่อไม่ให้เป็นภาษา / สถานที่ / วัฒนธรรมหนึ่งเดียว
รองรับหลายภาษา (l10n)
กระบวนการเพิ่มทรัพยากรที่เหมาะสมลงในซอฟต์แวร์ของคุณเพื่อรองรับภาษา / โลแคลเฉพาะ มันใหญ่กว่าขอบเขตมากกว่ารายการ Wikipedia นี้แต่เป็นการเริ่มต้นที่ดี


คุณค่าของการแยกความแตกต่างระหว่างพวกเขาคือ (ในทางทฤษฎี) เมื่อโปรแกรมของคุณผ่านกระบวนการ i18n จากนั้นคุณสามารถทำซ้ำกระบวนการ l10n จำนวนมากตามที่คุณต้องการ นอกจากนี้ยังเป็นเรื่องดีที่จะต้องแม่นยำด้วยภาษา


9
เหตุผลอื่นที่ควรคำนึงถึงแยกต่างหาก: การทำให้เป็นสากล QA และการแปล QA มีกรณีทดสอบที่แตกต่างกันการทำให้เป็นสากลนั้นมีค่าใช้จ่ายเพียงครั้งเดียว (มากหรือน้อย) และดังนั้นภาษาที่คุณแปลให้มากขึ้น โดยทั่วไปแล้ว i18n จะมีราคาแพงกว่า l10n ไปยังสถานที่ใดก็ได้
Mike Sickler

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

แม้ว่ามันจะค่อนข้างเก่า แต่มุมมองระดับสูงของ W3C สูงที่เห็นด้วยกับเรื่องนี้
mkobit

1
โดยทั่วไปแล้วการทำให้เป็นสากล (i18n) จะทำโดยนักพัฒนาซอฟต์แวร์ / วิศวกรหนึ่งครั้งซึ่งการแปลเป็นภาษาท้องถิ่น (l10n) ดำเนินการโดยผู้เชี่ยวชาญด้านภาษา / วัฒนธรรมที่เกี่ยวข้องสำหรับแต่ละตลาด
Chetan

70

ตามที่Apple :

การทำให้เป็นสากลเป็นกระบวนการของการออกแบบและสร้างแอปพลิเคชันเพื่ออำนวยความสะดวกในการแปล การรองรับหลายภาษาในทางกลับกันเป็นการปรับตัวทางวัฒนธรรมและภาษาของแอพพลิเคชั่นสากลให้กับตลาดที่มีความแตกต่างทางวัฒนธรรมสองตลาดหรือมากกว่า


32

การทำให้เป็นสากลเตรียมแอปพลิเคชันของคุณสำหรับการแปล ตัวอย่างเช่นคุณอาจเข้ารหัสอักขระที่เก็บอยู่ในฐานข้อมูลของคุณใน Unicode ( utf8mb4แทนlatin1) ย้ายสตริงไปยังไฟล์ทรัพยากรการเปิดใช้งานการใช้รูปแบบวันที่เวลาและสกุลเงินเป็นต้น

เมื่อคุณต้องการขายแอปเวอร์ชันภาษาจีนของคุณคุณจะต้องแปลโดยการจ้างนักแปลเพื่อสร้างไฟล์ทรัพยากร zh-CN และใช้รูปแบบวันที่ / เวลา / สกุลเงินใหม่


13

L10n บางครั้งสามารถแสดงตำแหน่งที่ i18n ของคุณล้มเหลว - ตัวอย่างเช่นที่พจนานุกรมของคุณมีรายการเดียวสำหรับคำที่ใช้เป็นคำนามและคำกริยาในภาษาอังกฤษซึ่งไม่แปลเป็นคำเดียวกันในภาษาอื่นหรือองค์ประกอบ UI / design ไม่เหมาะสมสำหรับวัฒนธรรม (การวางแนว L / R)

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


11

ตามที่Wikipedia

สากลwithout engineering changesเป็นกระบวนการของการออกแบบโปรแกรมซอฟต์แวร์เพื่อที่จะสามารถอาจจะปรับให้เข้ากับภาษาต่างๆและภูมิภาค

การโลคัลไลซ์เซชันเป็นกระบวนการadapting internationalized softwareสำหรับภูมิภาคหรือภาษาเฉพาะโดยการเพิ่มส่วนประกอบเฉพาะโลแคลและการแปลข้อความ

นอกจากนี้ Localization (ซึ่งอาจดำเนินการหลายครั้งสำหรับตำแหน่งที่ตั้งอื่น) ใช้infrastructure or flexibility provided by internationalization(ซึ่งดำเนินการในอุดมคติเพียงครั้งเดียวหรือเป็นส่วนสำคัญของการพัฒนาต่อเนื่อง)


8

โลกาภิวัตน์ (G11n): เป็นกระบวนการพัฒนาและทำการตลาดผลิตภัณฑ์ซอฟต์แวร์หลายภาษาสู่ตลาดโลก

การพัฒนาซอฟต์แวร์หลายภาษาในปัจจุบันมีสองช่วงคือช่วงแรกคือการทำให้เป็นสากลและขั้นตอนที่สองคือการโลคัลไลเซชัน

การทำให้เป็นสากล (I18n): เป็นกระบวนการของการสรุปผลิตภัณฑ์เพื่อให้สามารถจัดการกับหลายภาษาและการประชุมทางวัฒนธรรมโดยไม่จำเป็นต้องออกแบบใหม่ (เช่นภาษาและวัฒนธรรมที่เป็นกลาง)

รองรับหลายภาษา (L10n): เป็นกระบวนการของการใช้ผลิตภัณฑ์และทำให้มันเหมาะสมทางภาษาและวัฒนธรรมเพื่อสถานที่เป้าหมาย (ประเทศ / ภูมิภาคและภาษา) ที่จะใช้และขาย (เช่นภาษาและวัฒนธรรมเฉพาะ)


8

มีคำตอบมากมายข้อมูลที่ถูกต้องมากมาย แต่คำตอบของฉันก็เป็นอีกมุมมองหนึ่ง

การทำให้เป็นสากล - คือเมื่อนักพัฒนาไม่ได้อยู่ในรหัสข้อความโดยตรง / ข้อความผิดพลาด / ชื่อปุ่ม / ป้ายคำอธิบายภาพ / ฯลฯ ในบางภาษา แต่มีคีย์ที่ส่งผ่านไปยังฟังก์ชั่นการแปลและฟังก์ชั่นการแปลตามภาษาของผู้ใช้ปัจจุบัน ในภาษาอังกฤษ / ฝรั่งเศส / ฯลฯ ...
ฟังก์ชั่นการแปลทำงานร่วมกับการจัดเก็บ (db / ไฟล์ / เชื่อมโยงอาร์เรย์ / ฯลฯ )
พื้นที่เก็บข้อมูลมีกุญแจซึ่งใช้ใน coode และค่าซึ่งเป็นข้อความในภาษาที่รองรับแอปพลิเคชัน

การโลคัลไลซ์เซชัน - เป็นกระบวนการเพิ่มค่าใหม่ในภาษาใหม่ (เช่นสเปน) ที่เหมาะสมกับคีย์ลงในหน่วยเก็บข้อมูลโดยไม่เกี่ยวข้องกับผู้พัฒนาในกระบวนการนี้

ตัวอย่างเช่นเรามีที่เก็บข้อมูล:

key   | english    | italian           |
------+------------+-------------------+
title | Welcome    | Benvenuto         |
agree | I agree    | Sono d'accordo    |
thank | Thank you  | Grazie            |

ความเป็นสากลที่ใช้ในรหัสบางอย่างเช่นconfirm(t(agree));แทนที่จะเป็นconfirm("I agree");หรือconfirm("Sono d'accordo");
รองรับหลายภาษา - มันเพิ่มสถานที่ใหม่ให้กับที่เก็บข้อมูลของเราเช่น:

key   | english    | italian           | spanish          |
------+------------+-------------------+------------------+
title | Welcome    | Benvenuto         | Bienvenido       |
agree | I agree    | Sono d'accordo    | Estoy de acuerdo |
thank | Thank you  | Grazie            | Gracias          |

และที่นี่นักพัฒนาซอฟต์แวร์ไม่จำเป็นต้องมีรหัสอัปเดตฟังก์ชั่นการแปลจะมีข้อความที่เหมาะสมอย่างถูกต้อง


3
เข้าใจง่ายมาก
Vinh Nguyen

1
ตัวอย่างที่ยอดเยี่ยม!
Jinjinov

6

มันง่ายมากถ้าคุณทำตามคำจำกัดความด้านล่าง

i18n (สากล)คือ

กระบวนการของการออกแบบแอปพลิเคชันเพื่อให้มี ฟังก์ชั่นในการเปลี่ยนเป็นภาษาอื่นโดยไม่ต้องหันไปใช้การเปลี่ยนแปลงเชิงแอปพลิเคชันแบบเป็นโปรแกรม

l10n (การแปลเป็นภาษาท้องถิ่น)คือ

กระบวนการของการสร้างจริงตำราเฉพาะภาษาและการจัดรูปแบบ


3

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

พอเพียงที่จะกล่าวว่าการทำให้เป็นสากลเกี่ยวข้องกับการเปลี่ยนแปลงแหล่งที่มาเพื่อสนับสนุนสถานที่ใด ๆ ตามความต้องการ หากความเป็นสากลทำได้ดี ...

... การโลคัลไลซ์เซชันเกี่ยวข้องกับการปรับเนื้อหาและการนำเสนอบางระดับ (เช่นแท็กตัวหนา) เพื่อให้เหมาะกับความต้องการของตลาดเป้าหมายเฉพาะ (โลแคล)

มีบทความและเอกสารไวท์เปเปอร์มากมายสำหรับการอ้างอิงที่นี่: http://www.lingoport.com/software-internationalization-articles


3

การทำให้เป็นสากล - i18n - สิ่งที่เป็นนามธรรมของแอปพลิเคชันจากภาษา / วัฒนธรรมใด ๆ โดยเฉพาะ

รองรับหลายภาษา - l10n- เสียบปลั๊กในการสนับสนุนที่เป็นรูปธรรมสำหรับภาษา / วัฒนธรรม / สถานที่เฉพาะกับกรอบ i18n ข้างต้น

โดยพื้นฐานแล้วการทำ i18n ก่อนอื่นคุณต้องทำ l10n ให้น้อยกว่า PITA

ในทางตรงกันข้ามถ้าคุณสร้างแอปพลิเคชันในสถานที่ที่เป็นรูปธรรมก่อนจากนั้นจึงลองทำให้เป็นสากลมันจะเป็น PITA ขนาดใหญ่ มันไม่ใช่เรื่องง่ายเพียงแค่สลับสายภาษาอังกฤษที่เป็นรูปธรรมว่า "Hello World" เป็น Resource.Global.HelloWorld

ภาษาที่แตกต่างกันจะมีความต้องการพื้นที่ที่แตกต่างกันเค้าโครงเน้นสี ฯลฯ

คุณต้องใช้เฟรมเวิร์ก i18n จากพื้นดินเพื่อรองรับการสลับระหว่างโลแคลสำหรับความแตกต่างข้างต้นได้อย่างง่ายดายหากคุณคิดว่าคุณอาจต้องการการสนับสนุนมากกว่าหนึ่งโลแคล

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


2

ฉันรู้สึกว่าการโลคัลไลซ์เซชั่นสามารถไปได้โดยไม่ทำให้เป็นสากล แต่ .. การทำให้เป็นสากลด้วยการโลคัลไลซ์เซชันไม่ควรทำ ...


2

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


2

ให้เข้าใจสถานที่ก่อน

locale - ชุดของพารามิเตอร์ที่กำหนดภาษาของผู้ใช้ภูมิภาคและการกำหนดลักษณะพิเศษต่าง ๆ ที่ผู้ใช้ต้องการเห็นในส่วนต่อประสานผู้ใช้ โดยทั่วไปตัวระบุตำแหน่งที่ตั้งจะประกอบด้วยตัวระบุภาษาอย่างน้อยและตัวระบุภูมิภาค

i18n - การออกแบบและพัฒนาซอฟต์แวร์เพื่อรองรับหลายภาษา

l10n - เป็นไปได้เฉพาะเมื่อซอฟต์แวร์ของคุณรองรับ i18n แต่ l10n ทำให้แน่ใจว่าภาษารูปแบบวันที่รูปแบบสกุลเงิน ฯลฯ จะแสดงในบริบทของสถานที่เฉพาะ

ตัวอย่างเช่น,

# 1 3 มิถุนายน 2520 จะถูกแปลเป็นภาษาสเปนในวันที่ 3 มิถุนายน 2520

# 2 สกุลเงินในบางประเทศถูกคั่นด้วย '.' vs ','

# 3 แสดงสัญลักษณ์สกุลเงินที่เกี่ยวข้องตามประเทศของสถานที่

# 1, # 2 และ # 3 เป็นกรณีใช้สำหรับการแปล

หากซอฟต์แวร์ถูกออกแบบมาเพื่อรองรับ # 1 หรือ # 2 หรือ # 3 ตามสถานที่ตั้งของผู้ใช้แสดงว่าผลิตภัณฑ์นั้นเปิดใช้งาน l10n

หากรองรับหลายภาษาก็จะเปิดใช้งาน i18n


1

เพียงแค่

การทำให้เป็นสากล (I18N)คือกระบวนการทำให้ซอฟต์แวร์ของคุณสามารถปรับให้เข้ากับภาษาภูมิภาคและวัฒนธรรมที่แตกต่างกัน

รองรับหลายภาษา (L10N)เป็นกระบวนการแปลซอฟต์แวร์ของคุณเป็นหลายภาษา แต่ก่อนที่คุณจะสามารถ จำกัด ซอฟต์แวร์ของคุณให้เป็นสากล


-1

มีคำจำกัดความของ i18n และ l10n มากมาย สิ่งที่ฉันใช้คือ:

การทำให้เป็นสากล (i18n) : การปรับภาษาเฉพาะสำหรับแอปพลิเคชันของคุณ (แปล)

รองรับหลายภาษา (l10n) : การปรับเฉพาะแอปพลิเคชันของคุณ (เงิน, รูปแบบตัวเลข, รูปแบบวันที่ ... )

ตัวอย่างเช่นเราสามารถมีภาษาเดียวกันสำหรับแอปพลิเคชันที่เผยแพร่ในฝรั่งเศสและสวิตเซอร์แลนด์ (เราทั้งคู่พูดภาษาฝรั่งเศสอย่างน้อยในบางส่วนของประเทศสวิสเซอร์แลนด์) แต่เรายังต้องปรับตัวเพื่อเปลี่ยน EUR เป็น CHF

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.