Đối với một hệ thống nhúng có GUI, chúng tôi đang sử dụng hệ thống dịch tùy chỉnh của chúng tôi. Các chuỗi được lưu trữ trong ROM mã của một vi điều khiển.Gettext không có hệ thống tập tin
Hiện tại chúng tôi có tối đa 10 ngôn ngữ và khoảng 400 chuỗi đã dịch (thay đổi tùy theo biến thể sản phẩm).
Hệ thống hiện tại của chúng tôi khá cồng kềnh và tôi tin rằng gettext sẽ là giải pháp tốt hơn.
Theo như tôi hiểu gettext, nó yêu cầu sử dụng bindtextdomain
để đặt thư mục chứa các tệp bản dịch đã biên dịch (* .mo).
Có cách nào để đọc bản dịch từ bộ nhớ không? Đó là tôi muốn bao gồm các tập tin * .mo biên dịch trong nhị phân, và thiết lập gettext để sử dụng chúng. Ngoài ra, các dữ liệu dịch sẽ được lưu trữ trong một EEPROM dữ liệu mà không có một hệ thống tập tin.
Hoặc bạn có thể giới thiệu một hệ thống dịch khác để sử dụng trong hệ thống vi điều khiển (16 hoặc 32 bit, 256 đến 512 byte ROM) với giao diện C không?
Chỉnh sửa: Tôi nên thêm rằng có thể duy trì bản dịch ngoài phần mềm vi điều khiển sẽ là lý do để chuyển sang gettext. Dữ liệu dịch phù hợp sẽ được người dùng tải bằng phần mềm cấu hình mà chúng tôi đã cung cấp với hệ thống của chúng tôi.
Có lẽ gettext sẽ quá thừa trong trường hợp của bạn? Có thể bạn sẽ làm một cái gì đó như [this] (http://code.google.com/p/bta-meteo-logger/source/browse/C/daemon/lang.h)? –
Bạn có thể thiết lập một đĩa RAM trên đầu trang của tệp nhị phân hoặc tệp giả mạo I/O. –