2010-11-16 24 views
5

Để dịch ứng dụng PHP của tôi, tôi sử dụng được biên dịch trong mô-đun gettext. Dưới đây là một cây thư mục của bản dịch theo tài liệu:PHP: gettext có yêu cầu LC_MESSAGES dirs không?

locale/ 
    cs_CZ/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 
    de_DE/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 
    fr_FR/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 

Câu hỏi: là nó có thể để thoát khỏi Danh mục LC_MESSAGES? Liệu PHP có thể tìm thấy bản dịch nếu tôi sử dụng cấu trúc này không?

locale/ 
    cs_CZ/ 
    messages.po 
    messages.mo 
    de_DE/ 
    messages.po 
    messages.mo 
    fr_FR/ 
    messages.po 
    messages.mo 

PHP của tôi mà chuyển dịch:

<?php 
    setlocale(LC_ALL, 'fr_FR.UTF-8'); 
    bindtextdomain("messages", "locale"); 
    bind_textdomain_codeset("messages", 'UTF-8'); 
    textdomain("messages"); 
?> 

Cảm ơn bạn trước.

+3

Xin lỗi, không có cách nào xung quanh đó. Nó được hardwired trong thư viện gettext. – mario

Trả lời

4

Cách giải quyết khả thi duy nhất là tạo liên kết tượng trưng LC_MESSAGES -> . trong từng thư mục con ngôn ngữ. (Nhưng điều này phức tạp cài đặt ứng dụng PHP. FTP hiếm khi có thể tạo các liên kết tượng trưng.)

3

Tôi sợ LC_MESSAGES là một yêu cầu.

Sửa lỗi nếu tôi sai, nhưng tôi nghĩ rằng nó có liên quan đến bộ nhớ cache gettext.

0

Nếu bạn thực sự muốn làm điều đó, bạn có thể sử dụng gói nhà soạn nhạc này: gettext/gettext

Vì vậy, bạn có thể có tổ chức thư mục như bạn mong muốn hoặc thậm chí một cái gì đó như thế:

locales/ 
    cs_CZ.mo 
    cs_CZ.po 
    de_DE.mo 
    de_DE.po 
    fr_FR.mo 
    fr_FR.po 
Các vấn đề liên quan