///|
let messages : Map[String, String] = Map([])
///|
let default_messages : Map[String, String] = {
"intro": "Join the MLs!",
"new_game": "New Game",
"undo": "Undo",
"keep_going": "Keep Going",
"try_again": "Try Again",
"ok": "OK",
"cancel": "Cancel",
"start_a_new_game": "Start a new game?",
"undo_the_current_move": "Undo the current move?",
"you_win": "You win!",
"game_over": "Game over!",
}
///|
extern "js" fn find_get_parameter(name : String) -> Nullable[String] =
#|name => {
#| var r = null, tmp = [];
#| var items = location.search.substr(1).split('&');
#| for (var index = 0; index < items.length; index++) {
#| tmp = items[index].split('=');
#| if (tmp[0] === name) {
#| r = decodeURIComponent(tmp[1]);
#| }
#| }
#| return r;
#|}
///|
pub fn init_i18n_messages() -> Unit {
let lang = find_get_parameter("lang").to_option().unwrap_or("cn")
let localized_messages = match lang {
"cn" =>
{
"intro": "合并ML,得到 兔头!",
"new_game": "新游戏",
"undo": "撤销",
"keep_going": "继续游戏",
"try_again": "重新开始",
"ok": "确定",
"cancel": "取消",
"start_a_new_game": "开始新游戏?",
"undo_the_current_move": "撤销当前移动?",
"you_win": "你赢了!",
"game_over": "游戏结束!",
}
_ => {}
}
messages.merge_in_place(default_messages)
messages.merge_in_place(localized_messages)
}
///|
pub fn i18n(key : String) -> String {
messages.get(key).unwrap_or("")
}