Câu hỏi cập nhật thay vì làm một câu hỏi mới ...Cách hiệu quả nhất để làm tệp ngôn ngữ trong PHP là gì?
Tôi thực sự muốn cung cấp một vài ngôn ngữ khác thay thế sau đó bằng tiếng Anh trên trang web mạng xã hội của tôi Tôi đang xây dựng, điều này sẽ được lần đầu tiên tôi làm bất kỳ loại dịch ngôn ngữ vì vậy hãy chịu với tôi.
Tôi đang nghiên cứu vì vậy tôi là al tai và mở cho các ý tưởng và tôi có rất nhiều đã ở đây là những câu hỏi.
1)
Ý nghĩa của i18n, tôi thường thấy khi nghiên cứu dịch ngôn ngữ trên SO?
2)
Hầu hết mọi người nói sử dụng gettext PHP có một phần mở rộng hoặc hỗ trợ cho nó,
tôi cũng đã được nghiên cứu nó và tôi có một sự hiểu biết cơ bản của nó, như xa như tôi có thể nói đó là một nhiều công việc phụ để đi tuyến đường này,
Tôi muốn viết mã trang web của mình để sử dụng các chức năng của nó, nghĩa là; _ ('Xin chào thế giới bây giờ tôi đang nói tiếng Anh') hoặc người khác gettext ('xin chào thế giới tôi đang nói tiếng Anh') là không có vấn đề như bất kỳ tuyến đường tôi đi sẽ yêu cầu đó.
Nhưng sau đó bạn phải cài đặt gettext trên máy chủ của bạn và làm cho nó hoạt động,
sau đó sử dụng một số trình chỉnh sửa đặc biệt để tạo các tệp đặc biệt và biên dịch chúng tôi nghĩ?
Nghe như một cơn đau, tôi hiểu điều này được cho là tuyến đường tốt nhất để đi, mặc dù tất cả mọi người dường như nói nó là.
Vì vậy, ai đó có thể cho tôi biết tại sao đây là tuyến đường để đi?
3)
Tôi thực sự thích sự đơn giản của phương pháp này, chỉ cần xây dựng một mảng ngôn ngữ và kêu gọi các cụm từ bạn cần trong một chức năng giống như ví dụ dưới đây , sau đó bạn sẽ chỉ bao gồm một tập tin với ngôn ngữ thích hợp mảng.
Điều tôi thực sự muốn biết là, đây có phải là phương pháp hiệu suất kém hơn trên lưu lượng truy cập cao và trang web khá lớn so với sử dụng gettext hay không và liệu bạn có thể giải thích tại sao không?
<?PHP
//Have seperate language files for each language I add, this would be english file
function lang($phrase){
static $lang = array(
'NO_PHOTO' => 'No photo\'s available',
'NEW_MEMBER' => 'This user is new'
);
return $lang[$phrase];
}
//Then in application where there is text from the site and not from users I would do something like this
echo lang('NO_PHOTO'); // No photo's available would show here
?>
* một số mã được sử dụng từ câu trả lời của brianreavis dưới
Bạn biết rằng bạn không phải sử dụng _ trong một mảng, nhưng có, bạn có lẽ nên sử dụng các phần mở rộng php chứ không phải là cuộn của riêng bạn. – SeanJA