Bảng chuỗi theo ngôn ngữ, chuỗi có tham số, ngôn ngữ dự phòng.
Tiếp...
|
| bool | njin::i18n_load (context &ctx, const char *lang, const char *path) |
| | Nạp bảng chuỗi của một ngôn ngữ từ file JSON.
|
| void | njin::i18n_set_language (context &ctx, const char *lang) |
| | Chọn ngôn ngữ đang dùng.
|
| const char * | njin::i18n_language (const context &ctx) |
| | Mã ngôn ngữ đang dùng, hoặc chuỗi rỗng nếu chưa nạp ngôn ngữ nào.
|
| void | njin::i18n_set_fallback (context &ctx, const char *lang) |
| | Ngôn ngữ dự phòng: khi ngôn ngữ đang dùng thiếu một khóa thì lấy ở đây (thường là ngôn ngữ gốc của game).
|
| std::vector< std::string > | njin::i18n_languages (const context &ctx) |
| | Mã các ngôn ngữ đã nạp, theo thứ tự nạp.
|
| const char * | njin::i18n_language_name (const context &ctx, const char *lang) |
| | Tên hiện của một ngôn ngữ: khóa _name trong file của nó, hoặc chính mã.
|
| const char * | njin::tr (const context &ctx, const char *key) |
| | Chuỗi đã dịch của key trong ngôn ngữ đang dùng.
|
| std::string | njin::trf (const context &ctx, const char *key, std::initializer_list< std::string_view > args) |
| | Như tr(), rồi thay {0}, {1}... bằng các tham số theo thứ tự: câu dịch được đổi trật tự từ theo từng ngôn ngữ.
|
| bool | njin::i18n_has (const context &ctx, const char *key) |
| | Có khóa này trong ngôn ngữ đang dùng hoặc ngôn ngữ dự phòng không.
|
Bảng chuỗi theo ngôn ngữ, chuỗi có tham số, ngôn ngữ dự phòng.
◆ i18n_load()
| bool njin::i18n_load |
( |
context & | ctx, |
|
|
const char * | lang, |
|
|
const char * | path ) |
Nạp bảng chuỗi của một ngôn ngữ từ file JSON.
File là một object; object lồng nhau được nối tên bằng dấu chấm, nên hai cách viết sau là một:
{ "menu": { "play": "Chơi", "quit": "Thoát" }, "_name": "Tiếng Việt" }
{ "menu.play": "Chơi", "menu.quit": "Thoát", "_name": "Tiếng Việt" }
Khóa _name là tên ngôn ngữ để hiện trong menu (i18n_language_name()). Nạp lại cùng một ngôn ngữ thì chuỗi mới ghi đè chuỗi cũ, nên có thể chia bảng thành nhiều file. Ngôn ngữ nạp đầu tiên thành ngôn ngữ đang dùng.
- Các tham số
-
| ctx | Context của engine. |
| lang | Mã ngôn ngữ, ví dụ "vi", "en". |
| path | Đường dẫn file JSON. |
- Giá trị trả về
- false nếu không đọc được file (có ghi log).
◆ i18n_set_language()
| void njin::i18n_set_language |
( |
context & | ctx, |
|
|
const char * | lang ) |
Chọn ngôn ngữ đang dùng.
Ngôn ngữ chưa nạp bị bỏ qua (có ghi log).
- Các tham số
-
| ctx | Context của engine. |
| lang | Mã ngôn ngữ. |
◆ i18n_language()
| const char * njin::i18n_language |
( |
const context & | ctx | ) |
|
Mã ngôn ngữ đang dùng, hoặc chuỗi rỗng nếu chưa nạp ngôn ngữ nào.
- Các tham số
-
- Giá trị trả về
- Mã ngôn ngữ.
◆ i18n_set_fallback()
| void njin::i18n_set_fallback |
( |
context & | ctx, |
|
|
const char * | lang ) |
Ngôn ngữ dự phòng: khi ngôn ngữ đang dùng thiếu một khóa thì lấy ở đây (thường là ngôn ngữ gốc của game).
Mặc định là ngôn ngữ nạp đầu tiên.
- Các tham số
-
| ctx | Context của engine. |
| lang | Mã ngôn ngữ. |
◆ i18n_languages()
| std::vector< std::string > njin::i18n_languages |
( |
const context & | ctx | ) |
|
Mã các ngôn ngữ đã nạp, theo thứ tự nạp.
Dùng cho lựa chọn ngôn ngữ trong menu cài đặt.
- Các tham số
-
- Giá trị trả về
- Danh sách mã.
◆ i18n_language_name()
| const char * njin::i18n_language_name |
( |
const context & | ctx, |
|
|
const char * | lang ) |
Tên hiện của một ngôn ngữ: khóa _name trong file của nó, hoặc chính mã.
- Các tham số
-
| ctx | Context của engine. |
| lang | Mã ngôn ngữ. |
- Giá trị trả về
- Tên.
◆ tr()
| const char * njin::tr |
( |
const context & | ctx, |
|
|
const char * | key ) |
Chuỗi đã dịch của key trong ngôn ngữ đang dùng.
Thiếu thì lấy ở ngôn ngữ dự phòng; thiếu nữa thì trả về chính key (và ghi log một lần), nên chữ thiếu dịch hiện ra rõ ràng thay vì mất hẳn.
const char * tr(const context &ctx, const char *key)
Chuỗi đã dịch của key trong ngôn ngữ đang dùng.
bool ui_button(context &ctx, const char *label, bool enabled=true)
Một nút bấm.
Chuỗi trả về còn hợp lệ đến khi nạp thêm file hay đổi ngôn ngữ.
- Các tham số
-
| ctx | Context của engine. |
| key | Khóa. |
- Giá trị trả về
- Chuỗi UTF-8.
◆ trf()
| std::string njin::trf |
( |
const context & | ctx, |
|
|
const char * | key, |
|
|
std::initializer_list< std::string_view > | args ) |
Như tr(), rồi thay {0}, {1}... bằng các tham số theo thứ tự: câu dịch được đổi trật tự từ theo từng ngôn ngữ.
njin::trf(ctx,
"hud.coins", {std::to_string(coins), std::to_string(total)});
std::string trf(const context &ctx, const char *key, std::initializer_list< std::string_view > args)
Như tr(), rồi thay {0}, {1}... bằng các tham số theo thứ tự: câu dịch được đổi trật tự từ theo từng n...
- Các tham số
-
| ctx | Context của engine. |
| key | Khóa. |
| args | Giá trị thay vào. |
- Giá trị trả về
- Chuỗi đã thay.
◆ i18n_has()
| bool njin::i18n_has |
( |
const context & | ctx, |
|
|
const char * | key ) |
Có khóa này trong ngôn ngữ đang dùng hoặc ngôn ngữ dự phòng không.
- Các tham số
-
| ctx | Context của engine. |
| key | Khóa. |
- Giá trị trả về
- true nếu có.