CẬP NHẬT 2 : Tôi thực sự đã kết thúc việc sử dụng này và thật tuyệt vời sau một vài điều chỉnh. Đây là bài viết của tôi về thiết kế thực tế của nó và đang hoạt động: http://tim.hithlonde.com/2013/lemon-schema-works/
Tôi đang xây dựng một ứng dụng web và tôi muốn nó hỗ trợ nhiều ngôn ngữ. Cấu trúc này có hai thành phần:
- Kết nối ngôn ngữ ('tiếng Anh', 'Deutch', v.v.) với các thuật ngữ và có một viên đá Rosetta kết nối các thuật ngữ và thuật ngữ trong ngôn ngữ cụ thể.
- Nhóm điều khoản theo trang. Tôi không muốn nói, CHỌN term1, term2, v.v. thông qua hơn 30 thuật ngữ tôi có thể cần trên một trang. Tôi muốn hỏi trang mà họ đang kết nối.
Đây là cấu trúc bảng được đề xuất của tôi (lưu ý tất cả các id có mối quan hệ / chỉ mục trong số chúng để thực hiện các truy vấn rất hiệu quả):
* locale
* id
* value //English, Deutch, etc//
* terms
* id
* value //In English//
* page
* id
* value //Think add entry, menu//
* page_group //group all terms to a page, for easy pulling//
* id
* page.id
* term.id
* rosetta
* id
* locale.id
* term.id
* value //french word for amount, description, etc//
Điều này sẽ cho phép các truy vấn như:
SELECT localization.value,
terms.value
FROM localization
INNER JOIN terms ON terms.id=localization.termid
INNER JOIN page_group ON page_group.termid=localization.termid
INNER JOIN page ON page.id=page_group.pageid
INNER JOIN locale ON locale.id=localization.localeid
WHERE page.value='add_entry' AND locale.id=custlangid
ORDER BY terms.id
Tôi chỉ phải yêu cầu hai mục; id ngôn ngữ mà tôi cần và trang tôi cần. Nó sẽ phục vụ tất cả các điều khoản, bằng ngôn ngữ được chỉ định, là một phần của nhóm thuật ngữ cho trang đó.
Tôi nghĩ rằng đây là một cấu trúc thực sự tốt, nhưng tôi sẽ thích một số thông tin phản hồi.
CẬP NHẬT : Để làm rõ, chúng tôi chỉ nói về nội địa hóa các thành phần UI . (nhãn, điều hướng, văn bản hữu ích) Tất cả thông tin người dùng nhập vào sẽ được lưu trữ trong unicode, không phải trong lược đồ này.
CẬP NHẬT 2 : Tôi thực sự đã kết thúc bằng cách sử dụng này, và nó thật tuyệt. Đây là bài viết của tôi về thiết kế thực tế và đang hoạt động: http://tim.hithlonde.com/2013/lemon-schema-works/
<?php echo $term['term_in_english'];?>
tôi đang phấn đấu cho một cách tiếp cận MVC vững chắc.