Quốc tế hóa và địa phương hóa

Trong máy tính, quốc tế hóa (internationalization) và địa phương hóa (localization) là các thuật ngữ chỉ việc phát triển một phần mềm máy tính ở các ngôn ngữ khác nhau, các khu vực khác nhau cũng như yêu cầu kỹ thuật khác nhau của một địa phương mục tiêu. Quốc tế hóa là quá trình thiết kế một ứng dụng phần mềm để nó có thể được điều chỉnh cho nhiều ngôn ngữ và khu vực mà không có sự thay đổi về kỹ thuật. Địa phương hóa là quá trình đáp ứng một phần mềm đã quốc tế hóa cho một vùng hoặc ngôn ngữ cụ thể bằng cách bổ sung các thành phần của ngôn ngữ đang hướng đến, cũng như dịch các đoạn văn bản trong phần mềm qua ngôn ngữ đó.
Đặt tên.
Thông thường, vì các từ này quá dài nên người ta thường gọi tắt là "i18n "("18" viết tắt cho số các chữ cái giữa "i "và "n" trong từ "internationalization") và "L10n" đối với "localization."
Một số công ty như IBM và Sun Microsystem sử dụng thuật ngữ "toàn cầu hóa (globalization)", viết tắt là "g11n "để thay thế cho cả quốc tế hóa và địa phương hóa. Ngoài ra có khi người ta lại sử dụng thuật ngữ "glocalization" (một sự ghép chữ của "toàn cầu hóa" - "internationalization "và "địa phương hóa - localization").
Phạm vi.
Theo định nghĩa  Phần mềm không biên giới, các khía cạnh cần được xem xét khi quốc tế hóa một sản phẩm là "mã hóa dữ liệu, tài liệu, xây dựng phần mềm, hỗ trợ thiết bị phần cứng, tương tác người dùng".
Việc dịch thuật thường là giai đoạn tốn thời gian nhất của việc địa phương hóa. Việc này có thể liên quan đến những công việc sau:
Chuẩn dữ liệu địa phương.
Phần mềm máy tính có thể gặp phải các sự khác biệt ở trên và ngoài ra còn gặp những khó khăn khác nếu dịch các từ và cụm từ phức tạp, bởi vì các chương trình máy tính có thể tạo ra nội dung động. Những khác biệt này có thể cần phải được tính toán trước trong quá trình quốc tế hoá để chuẩn bị cho bản dịch. Một số sự khác biệt xảy ra thường xuyên đến nỗi việc chuyển đổi giữa các ngôn ngữ có thể được thực hiện một cách tự động. Kho lưu trữ dữ liệu địa phương dùng chung của Unicode có một tập hợp các sự khác biệt đó. Dữ liệu của nó được sử dụng bởi các hệ điều hành lớn, bao gồm Microsoft Windows, macOS, Debian, và bởi các công ty Internet hoặc các dự án lớn như Google và Wikimedia Foundation. Các ví dụ về những khác biệt đó bao gồm: 
Quy ước quốc gia.
Các quốc gia khác nhau có những quy ước khác nhau về mặt công nghiệp, bao gồm:
Múi giờ khác nhau trên toàn thế giới và điều này phải được tính đến nếu một sản phẩm ban đầu chỉ tương tác với những người trong một múi giờ và sau đó mở rộng thị trường ra quốc tế. Để quốc tế hóa, UTC thường được sử dụng nội bộ và sau đó chuyển đổi thành múi giờ địa phương để hiển thị.
Các quốc gia khác nhau có các khung pháp lý khác nhau, và việc địa phương hóa phần mềm phải tuân theo các khung pháp lý đó.
Việc địa phương hóa cũng cần xem xét các khác biệt trong văn hóa của địa phương đó, ví dụ:
Kỹ thuật.
Cả việc tái thiết kế một phần mềm đã có sẵn hoặc thiết kế một phần mềm mới, bước đầu tiên của quốc tế hóa là chia nhỏ từng phần phụ thuộc vào ngôn ngữ (cho dù là mã, văn bản hoặc dữ liệu) vào từng module riêng biệt rồi xử lý một cách độc lập các module đó.
Trong thực tiễn", i18n" được hiện thực hóa bằng cách đặt các chuỗi văn bản trong các file tài nguyên, và có thể được chỉnh sửa/dịch dễ dàng. Sau đó chương trình chỉ việc gọi địa chỉ của chuỗi và hiển thị ra cho người dùng.
Quá trình.
Phương pháp toàn cầu hoá bao gồm ba bước thực hiện sau khi lập kế hoạch, bao gồm quốc tế hóa, địa phương hóa và đảm bảo chất lượng.
Ở một mức độ nào đó (ví dụ như để đảm bảo chất lượng), nhóm phát triển xử lý các giai đoạn cơ bản/trung tâm của quy trình, sau đó mở rộng ra và cho phép tất cả những người khác kiểm tra, thường là những người hiểu tiếng nước ngoài và nền văn hóa và có một số hiểu biết nền tảng về kỹ thuật.
Khi dịch văn bản hiện tại sang các ngôn ngữ khác, rất khó để duy trì các phiên bản song song của văn bản trong suốt vòng đời của sản phẩm. Ví dụ, nếu một thông báo được sửa đổi, tất cả các phiên bản dịch khác cũng phải được thay đổi.
Cân nhắc về thương mại.
Trong bối cảnh thương mại, lợi ích từ việc địa phương hoá là tiếp cận được nhiều thị trường hơn. Vào đầu những năm 1980, Lotus 1-2-3 mất đến hai năm để tách mã chương trình và văn bản và mất vị trí dẫn đầu thị trường ở châu Âu vào tay Microsoft Multiplan.