New application language switching applied

pull/207/head
parent b01b16881f
commit 44680cfe59

@ -435,6 +435,7 @@ void yon_bootloader_init(main_window *widgets){
gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL);
}
if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"yes")||!strcmp(autologin,"enable"))){
gtk_list_store_clear(widgets->BootloadUsersList);
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
int admins_size;
config_str admins_parsed = yon_char_parse(admins,&admins_size,",");

@ -51,6 +51,11 @@ void yon_keyboard_init(main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardModelCombo),G_CALLBACK(on_model_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),G_CALLBACK(on_layout_default_toggled),widgets);
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardModelCombo));
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo));
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo),NULL,DEFAULT_LABEL);
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo),NULL,ON_LABEL);
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo),NULL,OFF_LABEL);
int size;
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->KeyboardModelCombo),DEFAULT_LABEL);
config_str models = yon_config_load(get_keyboard_models_command,&size);

@ -322,6 +322,15 @@ void yon_network_init(main_window *widgets){
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkDomainPasswordEntry),domain_password);
}
}
{
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo));
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,DEFAULT_LABEL);
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,"DHCP");
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,"NTP (ntp.org)");
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,"NTP (vniiftri.ru)");
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,MANUAL_LABEL);
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,DO_NOT_CONFIGURE_LABEL);
}
if (!yon_char_is_empty(ntp)){
gtk_switch_set_active(GTK_SWITCH(widgets->NetworkNTPServerSwitch),1);
gtk_widget_set_sensitive(widgets->NetworkNTPEntry,0);

@ -53,6 +53,7 @@ GtkTreeIter *yon_subcategory_check(GtkTreeStore *target, GtkTreeIter *parent_ite
}
void yon_packages_tab_init(main_window *widgets){
gtk_tree_store_clear(widgets->PackagesList);
int size;
config_str packages = yon_resource_open_file(groups_list_path,&size);
for (int i=1;i<size;i++){

@ -176,6 +176,7 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
break;
case YON_PAGE_SECTIONS:
gtk_widget_show(widgets->SourceButton);
gtk_widget_show(widgets->BackButton);
gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_widget_set_sensitive(widgets->NextButton,1);
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
@ -418,7 +419,7 @@ enum YON_PAGES yon_recovery_get_next(main_window *widgets){
void yon_page_init(main_window *widgets, enum YON_PAGES page){
switch(page){
case YON_PAGE_WELCOME:
set_locales_list(widgets);
yon_set_locales_list(widgets);
break;
case YON_PAGE_CONFIG_HUB:
yon_configuration_hub_init(widgets);

@ -28,8 +28,11 @@ void on_zone_changed(GtkWidget *, main_window *widgets){
const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
char *timezone = yon_char_unite(region,"/",zone,NULL);
cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone);
if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){
char *timezone = yon_char_unite(region,"/",zone,NULL);
cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone);
free(timezone);
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
}
#endif
@ -65,6 +68,8 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind
#endif
void yon_region_init(main_window *widgets){
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->RegionCombo));
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo));
#ifdef TIMEZONEMAP_INCLUDE
yon_debug_output("%s\n","TIMEZONEMAP enabled");
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->RegionMapBox));

@ -52,7 +52,7 @@ void on_config_global_load(GtkWidget *,main_window *widgets){
main_config.config_load_path = yon_char_new("global");
yon_load_proceed(YON_CONFIG_GLOBAL);
main_config.load_mode=YON_CONFIG_GLOBAL;
// yon_main_window_update_locale(widgets);
yon_main_window_update_locale(widgets);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
}

@ -43,7 +43,7 @@ void on_startup_apps_remove(GtkWidget *self,main_window *widgets){
void yon_startup_apps_setup(main_window *widgets){
GtkTreeIter iter;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->StartupAppsList),&iter)){
gtk_list_store_clear(widgets->StartupAppsList);
int size;
config_str apps = yon_resource_open_file(apps_list_path,&size);
for (int i=1;i<size;i++){
@ -54,7 +54,7 @@ void yon_startup_apps_setup(main_window *widgets){
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1);
}
}
}
char *startup = config(SERVICES_ENABLE_parameter);
if (!yon_char_is_empty(startup)){
if (!strcmp(startup,"auto")){

@ -51,7 +51,7 @@ void on_startup_services_remove(GtkWidget *self,main_window *widgets){
void yon_startup_services_setup(main_window *widgets){
GtkTreeIter iter;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->StartupList),&iter)){
gtk_list_store_clear(widgets->StartupList);
int size;
config_str services = yon_resource_open_file(services_list_path,&size);
for (int i=1;i<size;i++){
@ -62,7 +62,7 @@ void yon_startup_services_setup(main_window *widgets){
gtk_list_store_set(widgets->StartupList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1);
}
}
}
char *startup = config(SERVICES_ENABLE_parameter);
if (!yon_char_is_empty(startup)){
if (!strcmp(startup,"auto")){

@ -4,11 +4,11 @@ void on_locale_changed(GtkWidget *,main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&model,&iter)) return;
{
GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter);
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0);
gtk_tree_path_free(path);
}
// {
// GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter);
// gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0);
// gtk_tree_path_free(path);
// }
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter));
char *config_code = config(installer_locale_parameter);
if (yon_char_is_empty(config_code)){
@ -47,7 +47,6 @@ void on_installer_language_changed(GtkWidget *self,GtkTreePath*,GtkTreeViewColum
config_str parameters = yon_config_get_save_parameters_by_key(&size,installer_locale_parameter,NULL);
char *command_parameters = yon_char_parsed_to_string(parameters,size," ");
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->MainWindow),G_CALLBACK(on_yon_exit),widgets);
if (!system(command)){};
yon_main_window_update_locale(widgets);
g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets);
@ -104,11 +103,12 @@ void yon_main_window_update_locale(main_window *widgets){
}
}
locale = setlocale(LC_ALL,locale);
yon_config_register(installer_locale_parameter,installer_locale_parameter_command,(char*)locale);
// gtk_widget_destroy(widgets->MainWindow);
textdomain(LocaleName);
g_setenv("LANGUAGE",locale,1);
yon_update_translation(widgets->builder);
yon_update_translation(widgets);
// yon_main_window_create(widgets);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_setup(GTK_WINDOW(widgets->MainWindow));
@ -145,7 +145,7 @@ gboolean on_languages_search_func(GtkTreeModel *model, gint ,const char *key, Gt
return !(g_str_has_prefix(target_normalized,string_normalized) || g_str_has_prefix(loc_target_normalized,string_normalized));
}
void set_locales_list(main_window *widgets){
void yon_set_locales_list(main_window *widgets){
gtk_list_store_clear(widgets->InstallerLanguageList);
gtk_list_store_clear(widgets->InstallerCountryList);
@ -189,14 +189,20 @@ void set_locales_list(main_window *widgets){
2,code,
3,_(title),
-1);
}
for_iter (GTK_TREE_MODEL(widgets->InstallerLanguageList), &iter){
char *compare_target;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter, 3, &compare_target, -1);
if (!yon_char_is_empty(config_code)){
char *temp = strstr(config_code,".");
if (temp) temp[0]='\0';
if (!strcmp(config_code,locales[i])){
if (!strcmp(config_code,compare_target)){
gtk_widget_realize(widgets->LanguagesTree);
GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter);
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0);
gtk_tree_path_free(path);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter);
on_locale_changed(NULL,widgets);
}
}
}
@ -232,25 +238,31 @@ void yon_translation_init(GtkBuilder *builder){
GSList *list = gtk_builder_get_objects(builder);
GSList *iter;
for (iter = list; iter; iter = iter->next){
GtkWidget *cur_widget = NULL;
GObject *cur_widget = NULL;
const char *widget_text = NULL;
if (GTK_IS_BUTTON(iter->data)){
cur_widget = GTK_WIDGET(iter->data);
cur_widget = G_OBJECT(iter->data);
widget_text = yon_char_new(gtk_button_get_label(GTK_BUTTON(cur_widget)));
} else if (GTK_IS_LABEL(iter->data)){
cur_widget = GTK_WIDGET(iter->data);
cur_widget = G_OBJECT(iter->data);
widget_text = yon_char_new(gtk_label_get_text(GTK_LABEL(cur_widget)));
} else if (GTK_IS_TREE_VIEW_COLUMN(iter->data)){
cur_widget = G_OBJECT(iter->data);
widget_text = yon_char_new(gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(cur_widget)));
} else continue;
g_object_set_data(G_OBJECT(cur_widget),"original_label",(void*)widget_text);
}
}
void yon_update_translation(GtkBuilder *builder){
void yon_update_translation(main_window *widgets){
GtkBuilder *builder = widgets->builder;
GSList *list = gtk_builder_get_objects(builder);
GSList *iter;
for (iter = list; iter; iter = iter->next){
if (GTK_IS_BUTTON(iter->data)){
if (iter->data == widgets->LicenceLabel){
yon_licence_load(widgets);
} else if (GTK_IS_BUTTON(iter->data)){
GtkWidget *cur_button = GTK_WIDGET(iter->data);
char *source_label = g_object_get_data(G_OBJECT(cur_button),"original_label");
if (!yon_char_is_empty(source_label)){
@ -263,7 +275,14 @@ void yon_update_translation(GtkBuilder *builder){
if (!yon_char_is_empty(source_label)){
gtk_label_set_text(GTK_LABEL(cur_label),_(source_label));
}
} else if (GTK_IS_TREE_VIEW_COLUMN(iter->data)){
GObject *cur_column = G_OBJECT(iter->data);
char *source_label = g_object_get_data(G_OBJECT(cur_column),"original_label");
if (!yon_char_is_empty(source_label)){
gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(cur_column),_(source_label));
}
} else if (iter->data == widgets->LanguagesTree){
yon_set_locales_list(widgets);
}
}
}

@ -106,6 +106,9 @@ yon_user_struct *yon_user_struct_new(){
}
void yon_user_init(main_window *widgets){
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo));
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo),NULL,DEFAULT_LABEL);
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo),NULL,SET_PASSWORD_LABEL);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->UserRootPasswordEntry));
char *root_password = config(root_password_parameter);
char *autologin = config(autologin_parameter);

@ -399,6 +399,20 @@ gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){
return 1;
}
void yon_licence_load(main_window *widgets){
int size;
config_str parsed = NULL;
parsed = yon_file_open(licence_path,&size);
if (size){
bind_textdomain_codeset("ublinux-init-eula","UTF-8");
textdomain("ublinux-init-eula");
char *licence = yon_char_parsed_to_string(parsed,size,"");
gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),_(licence));
free(licence);
yon_char_parsed_free(parsed,size);
textdomain(LocaleName);
}
}
void yon_main_window_create(main_window *widgets){
__attribute__((unused)) char *locale = setlocale(LC_ALL, "en_US.UTF-8");
@ -931,20 +945,6 @@ void yon_main_window_create(main_window *widgets){
gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL);
gtk_window_set_icon_name(GTK_WINDOW(widgets->MainWindow),icon_path);
}
{
int size;
config_str parsed = NULL;
parsed = yon_file_open(licence_path,&size);
if (size){
bind_textdomain_codeset("ublinux-init-eula","UTF-8");
textdomain("ublinux-init-eula");
char *licence = yon_char_parsed_to_string(parsed,size,"");
gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),_(licence));
free(licence);
yon_char_parsed_free(parsed,size);
textdomain(LocaleName);
}
}
gtk_builder_connect_signals(builder,NULL);
if (!yon_char_is_empty(config(AUTOINSTALL_TYPE_INSTALL))){
gtk_widget_show(widgets->StartScenarioButton);
@ -1009,7 +1009,7 @@ main_window *yon_main_window_complete(){
yon_startup_language_init();
yon_locale_init();
set_locales_list(widgets);
// yon_set_locales_list(widgets);
// yon_main_window_update_locale(widgets);
// // yon_window_config_custom_window_setup(GTK_WINDOW(widgets->MainWindow),"MainWindow");

@ -1350,7 +1350,7 @@ source_element *yon_source_element_new();
void on_rdp_toggled(GtkWidget *self, main_window *);
void on_vnc_toggled(GtkWidget *self, main_window *widgets);
void yon_main_window_create(main_window *widgets);
void set_locales_list(main_window *widgets);
void yon_set_locales_list(main_window *widgets);
void on_installer_language_changed(GtkWidget *self, GtkTreePath *, GtkTreeViewColumn *, main_window *widgets);
gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets);
int yon_char_parsed_compare(const void *a, const void *b);
@ -1469,5 +1469,6 @@ gboolean yon_progress_bar_start(main_window *widgets);
void *yon_progress_file_buzyfy(void*);
void yon_startup_language_init();
gboolean on_languages_search_func(GtkTreeModel *model, gint col,const char *key, GtkTreeIter *iter, main_window *widgets);
void yon_update_translation(GtkBuilder *builder);
void yon_translation_init(GtkBuilder *builder);
void yon_update_translation(main_window *widgets);
void yon_translation_init(GtkBuilder *builder);
void yon_licence_load(main_window *widgets);

@ -272,6 +272,9 @@ NULL)
#define GROUP_LABEL _("Group:")
#define APP_TABLE_LABEL _("Application")
#define GROUP_TABLE_LABEL _("Group")
#define ON_LABEL _("On")
#define OFF_LABEL _("Off")
#define DO_NOT_CONFIGURE_LABEL _("Do not configure")
// #define _LABEL _("Select your language:")
// #define _LABEL _("Selecting additional system kernel components")
@ -285,7 +288,6 @@ NULL)
// #define _LABEL _("File system type:")
// #define _LABEL _("File system label:")
// #define _LABEL _("Encryption:")
// #define _LABEL _("Off")
// #define _LABEL _("Encryption password:")
// #define _LABEL _("User name:")
// #define _LABEL _("User password:")
@ -368,7 +370,6 @@ NULL)
// #define _LABEL _("Domain administrator:")
// #define _LABEL _("NTP Server:")
// #define _LABEL _("Manual")
// #define _LABEL _("Do not configure")
// #define _LABEL _("auto")
// #define _LABEL _("Net interfaces")
// #define _LABEL _("Installation process")
@ -414,7 +415,6 @@ NULL)
// #define _LABEL _("Selecting software packages to install from the repository. Internet access is required")
// #define _LABEL _("Selecting software modules to install from the repository. Internet access is required")
// #define _LABEL _("Language")
// #define _LABEL _("On")
// #define _LABEL _("Selecting the software group to install from the repository. Internet access is required")
// #define _LABEL _("Recovery configuration has ended")
// #define _LABEL _("System recovery is about to begin")

@ -4668,11 +4668,6 @@ agreement</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">Default</item>
<item translatable="yes">On</item>
<item translatable="yes">Off</item>
</items>
</object>
<packing>
<property name="expand">True</property>

Loading…
Cancel
Save