2013-09-03 26 views
5

Tôi đang phát triển Máy chủ API trong Go và máy chủ (hiện tại) xử lý tất cả bản dịch cho khách hàng. Khi một khách hàng API tìm nạp dữ liệu cụ thể, nó cũng yêu cầu các bản dịch có sẵn cho phần đã cho.Xuất tất cả các chuỗi ngôn ngữ trong Revel?

Lý tưởng nhất là tôi muốn có cấu trúc thư mục sau đây:

/messages 
    /home.en 
    /home.fr 
    /home.sv 
    /news.en 
    /news.fr 
    /news.sv 

đâu newshome những mô-đun riêng biệt.

Bây giờ câu hỏi tôi có cho Revel là có thể tìm nạp tất cả các chuỗi ngôn ngữ cho một mô-đun nhất định và được gán ngôn ngữ không? Ví dụ kéo tất cả các chuỗi trang chủ cho en-US.

CHỈNH SỬA:

Tôi muốn đầu ra (thứ tôi có thể trả lại cho khách hàng) là chuỗi khóa giá trị: dịch.

Mọi hướng dẫn sẽ được đánh giá cao.

+0

bạn có lưu trữ tất cả các thư mục en-US, en-UK, en-AU, v.v. trong thư mục 'home.en' hoặc' news.en' không? Hay chúng sẽ được tách ra thành các thư mục như 'home.en-US' và' home.en-UK'? Chỉ cần cố gắng xác định xem bạn có thể mở tất cả các tệp từ 'fmt.Sprintf ("/messages /% s.% S ", mô-đun, ngôn ngữ)'. – Intermernet

+0

Vâng, mỗi đề xuất Revel mỗi miền địa phương sẽ có một phần khác nhau trong cùng một tệp. Hiện tại tôi không lường trước có nhiều khác biệt chỉ là những thứ như "mã zip" và "mã bưu điện". Vì vậy, tôi không thể đảm bảo cần một tệp riêng cho mỗi ngôn ngữ. Nếu câu trả lời đó. – Peter

Trả lời

3

Dường như với tôi rằng revel sử dụng bản dịch dựa trên messaged (giống như gettext), vì vậy bạn cần chuỗi gốc để nhận bản dịch. Các chuỗi này được lưu trữ trong các đối tượng Config, được lưu trữ trong messages của i18n.go, được sắp xếp theo ngôn ngữ.

Như bạn có thể thấy, ánh xạ này không được xuất, do đó bạn không thể truy cập nó. Cách tốt nhất để khắc phục điều này là viết chức năng cho những gì bạn muốn (nhận cấu hình bằng cách cung cấp ngôn ngữ) hoặc xuất một trong các chức năng hiện có và tạo yêu cầu kéo cho vui chơi.

Bạn có thể giải quyết vấn đề này bằng cách sao chép mã số loadMessageFile hoặc bằng cách tắt phiên bản của bạn vui chơi và xuất khẩu loadMessageFile hoặc parseMessagesFile. Đây cũng là cơ hội tuyệt vời để tạo yêu cầu kéo.

Lưu ý rằng các bản địa hóa được lưu trữ ở định dạng tệp INI được phân tích cú pháp theo số robfig/config, để phân tích thủ công cũng là một tùy chọn (mặc dù không được khuyến nghị).

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