Пример #1
0
void
state_lang_menu(struct i_fn_args *a)
{
	struct dfui_form *f;
	struct dfui_response *r;
	int done = 0;
	char *id;
	int cancelled = 0;

	while (!done) {
		f = dfui_form_create(
			"main_menu",
			_("Select Language"),
			_("Please select the language you wish you use."),
			"",

			"p", "role", "menu",

			"a", "default", "English",
			"English Standard Default", "",
			"a", "ru", "Russian",
			"Russian KOI8-R", "",
			NULL
		);

		if (!dfui_be_present(a->c, f, &r))
			abort_backend();

		id = aura_strdup(dfui_response_get_action_id(r));

		if (strcmp(id, "default") == 0) {
			state = state_welcome;
			return;
		} else {
			state = state_welcome;
			done = 1;
		}

		dfui_form_free(f);
		dfui_response_free(r);
	}

	/* set keymap, scrnmap, fonts */
	if (!set_lang_syscons(id))
		return;

	/* set envars */
	if (!set_lang_envars(id))
		return;

	dfui_be_set_global_setting(a->c, "lang", id, &cancelled);

	/* XXX if (!cancelled) ... ? */

	/* let gettext know about changes */
	++_nl_msg_cat_cntr;
}
Пример #2
0
static int
lua_dfui_set_lang_envars(lua_State *L)
{
	struct dfui_connection *c;
	const char *id;
	int result;

	c = lua_check_dfui_connection(L, 1);	/* although note: not used */
	id = luaL_checkstring(L, 2);
	result = set_lang_envars(id);
	lua_pushnumber(L, result);

	return(1);
}