2010-06-28 48 views
5

Tôi đang tìm kiếm lời khuyên về các phương pháp hay nhất để bản địa hóa dữ liệu được lưu trữ trong cơ sở dữ liệu. Tôi đang làm việc trên một ứng dụng web trong đó tất cả văn bản tĩnh được bản địa hóa bằng cách sử dụng các tệp. Chúng tôi có một số tùy chọn mà quản trị viên có thể định cấu hình bằng giao diện người dùng được lưu trữ trong cơ sở dữ liệu và cần phải bản địa hóa các giá trị này.nội địa hóa dữ liệu động

Chúng tôi đã đưa ra một vài ý tưởng có thể. Suy nghĩ của bạn về những giải pháp này là gì? Có một lựa chọn tốt hơn hoàn toàn hoặc thậm chí một tiêu chuẩn thực hành tốt nhất?

mỗi Dòng chuyên Localization

Đây là giải pháp đề xuất cho best practices for multilanguage database design. Chúng tôi sẽ tạo một bảng riêng cho từng trường được bản địa hoá. Ví dụ, giả sử chúng ta có bảng colors với color_id, color_namecolor_description cột, chúng ta có thể phá vỡ nó ra vào một bảng color với các dữ liệu phi cục bộ và một color_translations bảng color_id, locale, color_namecolor_description lĩnh vực.

Tuy nhiên, khách hàng của chúng tôi thường gửi các tệp bản địa hóa cho bên thứ ba để thực hiện việc dịch thuật trở nên phức tạp.

Độc Bảng Localization

Một lựa chọn khác là tạo ra một bảng duy nhất để đại diện cho tất cả các địa phương hóa cơ sở dữ liệu:

CREATE TABLE localized_text 
(
    key   VARCHAR(256) NOT NULL, 
    locale  CHAR(5) NOT NULL, 
    value  VARCHAR(256), 
    PRIMARY KEY (key, locale) 
); 

này sẽ dễ dàng hơn để xuất khẩu cho nội địa hóa off-site nhưng thêm một mức độ bất công.

+0

Có lý do nào khiến "một số tùy chọn" này không chỉ được lưu trữ dưới dạng mã trong DB và được dịch ở cấp bản trình bày ứng dụng? Dù sao tôi nghĩ tùy chọn một là sạch hơn nhiều, bởi vì một bảng khổng lồ với rất nhiều bản dịch khác nhau cho nhiều khác biệt. mô hình có thể biến địa ngục nhanh chóng –

+1

Tôi nghĩ rằng phản đối chính để chỉ lưu trữ mã trong cơ sở dữ liệu là người dùng sau đó phải đi đến hai nơi khác nhau để thiết lập điều này. Điều đó tốt cho những khách hàng lớn hơn của chúng tôi, những người gửi các tệp bản địa hóa để dịch nhưng không lý tưởng cho các khách hàng nhỏ hơn. Ngay cả các công ty lớn hơn cũng phải sao chép các khóa từ giao diện người dùng vào tệp để dịch. Một giải pháp khả thi cho điều đó có thể là cập nhật giao diện người dùng để sửa đổi các tệp bản địa hóa nếu cần. Có ai có bất kỳ suy nghĩ về điều đó? – Ross

+1

Thực hiện tùy chọn số 1 và triển khai công cụ nhập/xuất đơn giản cho khách hàng của bạn sử dụng để dịch nội dung tùy chỉnh bên ngoài ứng dụng. –

Trả lời

1

Chúng tôi sẽ tạo một bảng riêng cho từng trường được bản địa hóa. Ví dụ, giả sử chúng ta có các màu sắc bảng với color_id, color_namecolor_description cột ....

Giả sử bảng colors của bạn là chỉ văn bản tĩnh, sự lựa chọn rõ ràng là để thêm một cột với nó, có lẽ tên locale và thêm hàng cho mọi ngôn ngữ bạn quan tâm. Sau đó, tham gia vào miền địa phương của khách hàng để tạo ra mô tả duy nhất bạn muốn.

Để làm việc này, bạn phải tách riêng các mô tả tĩnh khỏi dữ liệu không phụ thuộc vào miền địa phương, vì các mô tả được bản địa hóa giới thiệu mối quan hệ nhiều-một. Là một stopgap bạn có thể để lại các mô tả bằng tiếng Anh trong bảng chính và thả chúng một khi tất cả các tham chiếu đến chúng đã biến mất.

Các vấn đề liên quan