Bản địa hóa và quốc tế hóa, sự khác biệt là gì?


208

Tôi sẽ hỏi một câu hỏi về việc chuẩn bị một ứng dụng máy tính để bàn để hỗ trợ nhiều ngôn ngữ trên UI.

Trong quá trình tìm kiếm các câu hỏi hiện có về chủ đề này, tôi đã nghĩ đến từ "Quốc tế", vì vậy tôi đã chọn thẻ Quốc tế hóa và đọc qua một số câu hỏi phù hợp.

Cuối cùng, tôi nhận ra rằng có lẽ tôi nên tìm kiếm theo các câu hỏi được gắn thẻ Bản địa hóa. Tuy nhiên, có vẻ như tôi không đơn độc trong việc kết hợp hai thuật ngữ này.

Vì vậy, những điểm khác biệt chính giữa nội địa hóa và quốc tế hóa là gì?

Ngoài ra, một sự phân biệt rõ ràng giữa họ thực sự quan trọng?

Câu trả lời:


232
Quốc tế hóa (i18n)
quá trình thay đổi phần mềm của bạn để nó không bị ảnh hưởng bởi một ngôn ngữ / ngôn ngữ / văn hóa.
Bản địa hóa (l10n)
quá trình thêm các tài nguyên phù hợp vào phần mềm của bạn để ngôn ngữ / ngôn ngữ cụ thể được hỗ trợ. Nó có phạm vi lớn hơn chỉ mục Wikipedia này , nhưng đó là một khởi đầu tốt.


Giá trị của việc phân biệt giữa chúng là (về mặt lý thuyết) một khi chương trình của bạn trải qua quá trình i18n, sau đó bạn có thể lặp lại nhiều quy trình l10n khi bạn cần chúng; Ngoài ra, thật tuyệt khi nói chính xác với ngôn ngữ.


9
Một số lý do khác để nghĩ riêng về chúng: QA quốc tế hóa và QA nội địa hóa có các trường hợp kiểm tra khác nhau, Quốc tế hóa là chi phí một lần (nhiều hơn hoặc ít hơn), và do đó, càng nhiều ngôn ngữ bạn sử dụng, ROI của bạn càng cao. i18n thường tốn kém hơn l10n cho bất kỳ một địa phương nào.
Mike Sickler

@Hank, @Mike, câu trả lời rất hữu ích, cảm ơn. Vì vậy, tôi đã thực sự đúng khi nhìn vào quốc tế hóa đầu tiên. Mục tiêu của tôi là đảm bảo thiết kế ứng dụng ít nhất sẽ hỗ trợ nhiều ngôn ngữ trong tương lai, ngay cả khi thực tế tôi chỉ tập trung vào tiếng Anh.
Tro

Mặc dù nó hơi cũ, nhưng mức độ cao của W3C này về cơ bản đồng ý với điều này.
mkobit

1
Nói chung, quốc tế hóa (i18n) được thực hiện bởi nhà phát triển / kỹ sư phần mềm một lần, trong đó việc bản địa hóa (l10n) được thực hiện bởi chuyên gia Ngôn ngữ / Văn hóa tương ứng cho từng thị trường.
Chetan

70

Theo Apple :

Quốc tế hóa là quá trình thiết kế và xây dựng một ứng dụng để tạo điều kiện cho nội địa hóa. Ngược lại, nội địa hóa là sự thích ứng về văn hóa và ngôn ngữ của một ứng dụng quốc tế hóa cho hai hoặc nhiều thị trường khác biệt về văn hóa.


32

Quốc tế hóa chuẩn bị ứng dụng của bạn để nội địa hóa. Ví dụ: bạn có thể mã hóa các ký tự được lưu trữ trong cơ sở dữ liệu của mình bằng Unicode ( utf8mb4thay vì latin1), di chuyển chuỗi sang tệp tài nguyên, cho phép sử dụng các định dạng ngày, giờ và tiền tệ, v.v.

Ví dụ: khi bạn muốn bán phiên bản tiếng Trung của ứng dụng, bạn sẽ bản địa hóa nó bằng cách thuê người dịch để xây dựng các tệp tài nguyên zh-CN và sử dụng định dạng ngày / giờ / tiền tệ mới.


13

L10n đôi khi có thể hiển thị nơi i18n của bạn bị lỗi - ví dụ, trong đó từ điển của bạn có một mục nhập duy nhất cho một từ được sử dụng như một danh từ và một động từ trong tiếng Anh không dịch sang cùng một từ trong ngôn ngữ khác hoặc các thành phần UI / thiết kế không phù hợp với văn hóa (định hướng L / R).

Vì vậy, l10n "nói chung" xảy ra sau i18n, nhưng có thể phản hồi lại i18n của bạn và yêu cầu thiết kế lại, do đó bạn không thể xem xét ứng dụng của mình được quốc tế hóa hoàn toàn cho đến khi bạn thực hiện một vài nội địa hóa.


11

Theo Wikipedia

Quốc tế hóa là quá trình thiết kế một ứng dụng phần mềm để nó có khả năng thích ứng với các ngôn ngữ và khu vực khác nhau without engineering changes.

Bản địa hóa là quá trình adapting internationalized softwarecho một khu vực hoặc ngôn ngữ cụ thể bằng cách thêm các thành phần cụ thể của địa phương và dịch văn bản.

Ngoài ra , Bản địa hóa (có khả năng được thực hiện nhiều lần, cho các địa phương khác nhau) sử dụng infrastructure or flexibility provided by internationalization(chỉ được thực hiện lý tưởng một lần hoặc là một phần không thể thiếu của sự phát triển đang diễn ra).


8

Toàn cầu hóa (G11n): là quá trình phát triển và tiếp thị các sản phẩm phần mềm đa ngôn ngữ cho thị trường toàn cầu.

Sự phát triển của phần mềm đa ngôn ngữ hiện đang trải qua hai giai đoạn: giai đoạn đầu tiên là quốc tế hóa, và giai đoạn thứ hai là nội địa hóa.

Quốc tế hóa (I18n): là quá trình khái quát hóa một sản phẩm để nó có thể xử lý nhiều ngôn ngữ và quy ước văn hóa mà không cần thiết kế lại (tức là ngôn ngữ & văn hóa trung lập).

Bản địa hóa (L10n): là quá trình lấy sản phẩm và làm cho sản phẩm phù hợp về mặt ngôn ngữ và văn hóa với ngôn ngữ đích (quốc gia / khu vực và ngôn ngữ) nơi sản phẩm sẽ được sử dụng và bán (cụ thể là ngôn ngữ & văn hóa).


8

Rất nhiều câu trả lời, rất nhiều thông tin chính xác, nhưng câu trả lời của tôi chỉ là một quan điểm khác.

Quốc tế hóa - đó là khi nhà phát triển không có mã thông báo trực tiếp / thông báo lỗi / tên nút / chú thích nhãn / vv bằng ngôn ngữ nhất định nhưng có một khóa được chuyển cho chức năng dịch và chức năng dịch theo ngôn ngữ của người dùng hiện tại sẽ trả về văn bản cuối cùng bằng tiếng Anh / Pháp / v.v ...
Chức năng dịch hoạt động với bộ lưu trữ (db / files / mảng kết hợp / etc).
Bộ lưu trữ chứa các khóa được sử dụng trong coode và các giá trị, là các văn bản trong ngôn ngữ nhất định mà ứng dụng hỗ trợ.

Bản địa hóa - đó là quá trình thêm các giá trị mới bằng ngôn ngữ mới (ví dụ như Tây Ban Nha) phù hợp với các khóa vào bộ lưu trữ mà không liên quan đến nhà phát triển trong quy trình này.

Ví dụ: chúng tôi có bộ lưu trữ:

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

Quốc tế hóa nó đang sử dụng trong mã một cái gì đó như confirm(t(agree));thay vì confirm("I agree");hoặcconfirm("Sono d'accordo");
địa hóa - đó là thêm ngôn ngữ mới vào bộ lưu trữ của chúng tôi, như:

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

và ở đây nhà phát triển không cần mã cập nhật, chức năng dịch sẽ mang chính xác các văn bản phù hợp.


3
Rất dễ hiểu.
Vinh Nguyễn

1
Những ví dụ tuyệt vời!
Jinjinov

6

Rất đơn giản nếu bạn đi theo các định nghĩa dưới đây,

i18n (quốc tế hóa)

quá trình thiết kế một ứng dụng sao cho nó có chức năng thay đổi sang một ngôn ngữ khác mà không cần dùng đến sự thay đổi theo chương trình của ứng dụng.

l10n (nội địa hóa)

quá trình tạo các văn bản và định dạng ngôn ngữ cụ thể .


3

Có một vài câu trả lời rất hay ở đây, vì vậy tôi sẽ không tái chế chúng. Tuy nhiên, tại một số điểm, điển hình giữa kiểm tra quốc tế hóa và kiểm tra ngôn ngữ địa phương hóa, quốc tế hóa và nội địa hóa có xu hướng chồng chéo. Một người đề cập đến l10n cho ăn trở lại quốc tế hóa, nhưng nếu bạn đang thực hiện kiểm tra i18n chất lượng và tạo nội dung giả địa phương, thì việc lặp lại các vấn đề phát triển trong quá trình bản địa hóa phải là ngoại lệ, không phải là quy tắc. Thay đổi kích thước giao diện và các trang đặc biệt thích ứng để hỗ trợ các ngôn ngữ hai chiều như tiếng Ả Rập và tiếng Do Thái cũng có xu hướng pha trộn cả các vấn đề nội địa hóa và kỹ thuật quốc tế hóa.

Có thể nói, Quốc tế hóa bao gồm việc thay đổi nguồn để hỗ trợ bất kỳ miền địa phương nào dựa trên các yêu cầu. Nếu quốc tế hóa được thực hiện tốt ...

... Bản địa hóa liên quan đến việc điều chỉnh nội dung và một số cấp độ trình bày (ví dụ: thẻ in đậm) để nó đáp ứng tốt nhất nhu cầu của các thị trường được nhắm mục tiêu cụ thể (địa phương).

Rất nhiều bài báo và sách trắng để tham khảo tại đây: http://www.lingoport.com/software-i quốc tế -articles


3

Quốc tế hóa - i18n - Sự trừu tượng của một ứng dụng từ bất kỳ ngôn ngữ / văn hóa cụ thể nào.

Bản địa hóa - l10n- Cắm hỗ trợ cụ thể cho một ngôn ngữ / văn hóa / ngôn ngữ cụ thể vào khung i18n ở trên.

Về cơ bản bằng cách thực hiện i18n trước tiên, bạn tạo ra l10n ít hơn nhiều so với PITA.

Ngược lại, nếu bạn tạo một ứng dụng trong một địa điểm cụ thể trước và sau đó cố gắng quốc tế hóa nó, nó sẽ là một PITA lớn. Nó không phải là một vấn đề đơn giản chỉ cần hoán đổi một chuỗi tiếng Anh cụ thể nói "Xin chào thế giới" với Resource.Global.HelloWorld.

Các ngôn ngữ khác nhau sẽ có các yêu cầu không gian, bố cục, điểm nhấn, màu sắc khác nhau, v.v.

Bạn cần có khung i18n từ đầu để dễ dàng hỗ trợ việc chuyển đổi giữa các địa phương cho những khác biệt ở trên nếu bạn thậm chí nghĩ rằng bạn có thể cần hỗ trợ nhiều hơn một miền.

Trang bị thêm vào ứng dụng sau này thực sự khó khăn. Bạn sẽ phải xem lại một loạt các cân nhắc về kiến ​​trúc và các ràng buộc mà bạn (hoặc người khác) thực hiện lần đầu tiên.


2

Tôi cảm thấy nội địa hóa có thể đi mà không cần quốc tế hóa nhưng .. quốc tế hóa với nội địa hóa không nên được thực hiện ...


2

tương tự POV: Hãy tưởng tượng một kệ trên thư viện của bạn chỉ có thể lấy một cuốn sách kích thước 4 x 4 inch. Quốc tế hóa sẽ xây dựng kệ với tất cả các loại ngăn khác nhau có thể cho phép nó xử lý bất kỳ kích thước hoặc hình dạng sách. Và nội địa hóa sẽ được thiết lập tất cả các cuốn sách trên các phần bên phải. Hãy nghĩ về Cơ sở dữ liệu của bạn, logic kinh doanh và giao diện người dùng như giá sách và các ngôn ngữ, tiền tệ và định hướng văn bản khác nhau như sách.


2

Hãy hiểu miền địa phương trước

miền địa phương - một tập hợp các tham số xác định ngôn ngữ, vùng và bất kỳ tùy chọn biến thể đặc biệt nào mà người dùng muốn thấy trong giao diện người dùng của họ. Thông thường một định danh ngôn ngữ bao gồm ít nhất một định danh ngôn ngữ và một định danh khu vực.

i18n - Thiết kế và phát triển phần mềm để hỗ trợ nhiều địa phương.

l10n - Điều này chỉ có thể khi phần mềm của bạn hỗ trợ i18n. Nhưng l10n đảm bảo rằng ngôn ngữ, định dạng ngày tháng, định dạng tiền tệ, vv được hiển thị trong ngữ cảnh cho một miền địa phương cụ thể.

Ví dụ,

# 1. Ngày 3 tháng 6 năm 1977 sẽ được dịch sang tiếng Tây Ban Nha là 3 de Junio ​​de 1977.

# 2. Tiền tệ ở một số quốc gia được phân tách bằng '.' so với ','

# 3. Hiển thị biểu tượng tiền tệ tương ứng dựa trên quốc gia của địa phương

# 1, # 2 và # 3 là các trường hợp sử dụng để bản địa hóa.

Nếu phần mềm được thiết kế để hỗ trợ # 1 HOẶC # 2 HOẶC 3 dựa trên ngôn ngữ người dùng, thì sản phẩm được kích hoạt l10n.

Nếu nó hỗ trợ nhiều địa điểm thì i18n của nó được kích hoạt.


1

Đơn giản,

Quốc tế hóa (I18N) là quá trình làm cho phần mềm của bạn có thể thích ứng với các ngôn ngữ, khu vực và văn hóa khác nhau.

Bản địa hóa (L10N) là quá trình dịch phần mềm của bạn sang nhiều ngôn ngữ. Nhưng trước khi bạn có thể bản địa hóa phần mềm của mình, bạn quốc tế hóa nó.


-1

Có nhiều định nghĩa về i18n và l10n. Cái tôi sử dụng là:

quốc tế hóa (i18n) : thích ứng ngôn ngữ cụ thể của ứng dụng của bạn (bản dịch)

bản địa hóa (l10n) : bản địa thích ứng cụ thể của ứng dụng của bạn (tiền, định dạng số, định dạng ngày ...).

Ví dụ: chúng tôi có thể có cùng ngôn ngữ cho một ứng dụng được phân phối ở Pháp và Thụy Sĩ (cả hai chúng tôi đều nói tiếng Pháp, ít nhất là ở một số vùng của Thụy Sĩ), nhưng chúng tôi vẫn sẽ cần một số điều chỉnh để thay đổi EUR thành CHF.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.