2010-05-25 17 views
6

Tôi có trang web hiện có tất cả bằng tiếng Anh. Nó là một trò chơi trực tuyến, do đó, nó có một loạt các trang khác nhau với văn bản tĩnh, cũng như rất nhiều nội dung trong cơ sở dữ liệu.Cách xử lý các bản địa hóa trang động?

Tôi đang cố gắng mở rộng hơn trên toàn cầu và đang hướng tới việc phát hành một số bản địa hóa trang web. Tuy nhiên, tôi không chắc chắn về cách tốt nhất để đi về thiết lập này lên để nó sẽ được dễ dàng nhất cho tôi để quản lý và dễ nhất cho người dùng sử dụng là tốt.

Tôi có nên lưu trữ các văn bản đã dịch trong cơ sở dữ liệu hay điều này nên được thực hiện theo cách hoàn toàn khác? Nếu nó quan trọng, trang web được viết bằng PHP và sử dụng MySQL.

Trả lời

1

Theo kinh nghiệm của tôi làm tất cả các bản dịch bằng tay có thể là một cơn ác mộng thật! % -)

tôi nghĩ bạn phải tập trung bản dịch của mình vào trang web lệnh bảng điều khiển như menu điều hướng và tất cả cài đặt hồ sơ người dùng khác và các nút xung quanh trang web và những thứ tương tự!

làm điều này bằng cách đưa vào vào trang của bạn tập tin như thế này:

include "./includes/languages/english.php"; 

trong một tập tin gọi là ex .: english.php đặt như cũ này

define('LAN_USER_LOGIN' , 'User Logged In'); 
define('LAN_USER_LOGOUT' , 'User Logged Out'); 
..... 

và vân vân italian.php, Tây Ban Nha .php, french.php ect ... và trong mỗi tệp này có cùng các biến được định nghĩa nhưng được dịch!

thì bạn có thể cho phép người dùng chọn từ danh sách các quốc gia! nhiều cách để làm btw này!

một cách có thể bằng cách sử dụng phiên

// if the user haven't selected a language before!! 
if (empty($_SESSION['language'])) { 
$_SESSION['language'] = "EN"; 
} else { 
$_SESSION['language'] = YOUR_LANG ; 
} 

cho tất cả các nội dung khác tôi khuyên bạn nên sử dụng các công cụ như

http://code.google.com/intl/it-IT/apis/ajaxlanguage/


LƯU Ý: tôi khuyên bạn nên bạn không sử dụng hệ thống nhận dạng tự động , gây ra nó có thể dẫn đến một kinh nghiệm rất khó chịu expecially nếu bạn đang xem các trang web từ một quốc gia khác !! hoặc chỉ bạn muốn chọn, nhanh chóng cho phép người dùng lựa chọn cuối cùng! ;-)

sử dụng tính năng nhận dạng tự động cho mục đích đăng ký tự động hoàn thành! ;-)

hy vọng trợ giúp này!

1

Tôi khuyên bạn nên sử dụng bộ nhớ tập trung (đây có thể là bảng cơ sở dữ liệu MySQL, với cột "ngôn ngữ" lưu trữ bản dịch ngôn ngữ trong đó). Đây cũng có thể là các tệp XML, một tệp cho mỗi ngôn ngữ.

Nếu bạn đang tìm kiếm nhiều hơn các định dạng tập tin có thể, nhìn vào trang tài liệu này từ Zend Framework: http://framework.zend.com/manual/en/zend.translate.adapter.html

Đối với bản dịch tôi hoặc là sẽ tạo ra một chức năng tùy chỉnh hoặc tùy chỉnh lớp, nếu bạn không sử dụng một khuôn khổ đã bao gồm bản dịch.

Một tùy chọn khác là sử dụng các hàm PHP chuẩn. Chỉ cần tìm hàm "_()". Tôi đã không làm việc với các chức năng này mặc dù và chỉ tìm thấy chúng, không chắc chắn như thế nào họ làm việc.

1

Tôi khuyên bạn nên sử dụng gettext với một khung tích hợp (ví dụ: Zend) và lưu trữ ở định dạng tệp .po. Định dạng .po có các trình chỉnh sửa làm cho bản dịch hoạt động công bằng. Nó cũng khá di động (do đó tên) và có thể di chuyển với bạn vào các trò chơi khác.

1

Chúng tôi sử dụng cách tiếp cận hỗn hợp với khung công tác Zend. Nội dung trang (các trang WYSIWYG) được lưu trữ trong DB (một bản ghi cho mỗi ngôn ngữ, dữ liệu không được bản địa hóa được tách ra khỏi dữ liệu được bản địa hóa và được lưu trữ trong các bảng khác nhau được liên kết), nhưng nhãn trường và thông báo lỗi/phản hồi chuẩn được lưu trữ trong XML hoặc tệp gettext (một tệp cho mỗi ngôn ngữ).

1

Chúng tôi sử dụng một cách tiếp cận hỗn hợp:

  • Cơ sở dữ liệu cho CMS trang dịch
  • XML cho bản dịch từ/câu (văn bản tĩnh, nhãn, thông báo lỗi, vv)

Đối với cơ sở dữ liệu chúng tôi generaly sử dụng 2 bảng: 1 cho nội dung chính, các bản dịch biểu mẫu khác, vì vậy chúng tôi có thể chọn phải làm gì nếu bản dịch không có sẵn: hiển thị nội dung bằng ngôn ngữ gốc hoặc ẩn nội dung.

Đối với XML, chúng tôi sử dụng XLIFF định dạng, có thể dễ dàng được hỗ trợ bởi nhiều khung và phần mềm