|
|
|
@ -4,11 +4,11 @@ void on_locale_changed(GtkWidget *,main_window *widgets){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeModel *model;
|
|
|
|
GtkTreeModel *model;
|
|
|
|
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&model,&iter)) return;
|
|
|
|
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);
|
|
|
|
// 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_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0);
|
|
|
|
gtk_tree_path_free(path);
|
|
|
|
// gtk_tree_path_free(path);
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter));
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter));
|
|
|
|
char *config_code = config(installer_locale_parameter);
|
|
|
|
char *config_code = config(installer_locale_parameter);
|
|
|
|
if (yon_char_is_empty(config_code)){
|
|
|
|
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);
|
|
|
|
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_parameters = yon_char_parsed_to_string(parameters,size," ");
|
|
|
|
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
|
|
|
|
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)){};
|
|
|
|
if (!system(command)){};
|
|
|
|
yon_main_window_update_locale(widgets);
|
|
|
|
yon_main_window_update_locale(widgets);
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),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);
|
|
|
|
locale = setlocale(LC_ALL,locale);
|
|
|
|
|
|
|
|
yon_config_register(installer_locale_parameter,installer_locale_parameter_command,(char*)locale);
|
|
|
|
|
|
|
|
|
|
|
|
// gtk_widget_destroy(widgets->MainWindow);
|
|
|
|
// gtk_widget_destroy(widgets->MainWindow);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
g_setenv("LANGUAGE",locale,1);
|
|
|
|
g_setenv("LANGUAGE",locale,1);
|
|
|
|
yon_update_translation(widgets->builder);
|
|
|
|
yon_update_translation(widgets);
|
|
|
|
// yon_main_window_create(widgets);
|
|
|
|
// yon_main_window_create(widgets);
|
|
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
|
|
yon_window_config_setup(GTK_WINDOW(widgets->MainWindow));
|
|
|
|
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));
|
|
|
|
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->InstallerLanguageList);
|
|
|
|
gtk_list_store_clear(widgets->InstallerCountryList);
|
|
|
|
gtk_list_store_clear(widgets->InstallerCountryList);
|
|
|
|
|
|
|
|
|
|
|
|
@ -189,14 +189,20 @@ void set_locales_list(main_window *widgets){
|
|
|
|
2,code,
|
|
|
|
2,code,
|
|
|
|
3,_(title),
|
|
|
|
3,_(title),
|
|
|
|
-1);
|
|
|
|
-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)){
|
|
|
|
if (!yon_char_is_empty(config_code)){
|
|
|
|
char *temp = strstr(config_code,".");
|
|
|
|
char *temp = strstr(config_code,".");
|
|
|
|
if (temp) temp[0]='\0';
|
|
|
|
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);
|
|
|
|
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_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0);
|
|
|
|
gtk_tree_path_free(path);
|
|
|
|
gtk_tree_path_free(path);
|
|
|
|
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter);
|
|
|
|
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 *list = gtk_builder_get_objects(builder);
|
|
|
|
GSList *iter;
|
|
|
|
GSList *iter;
|
|
|
|
for (iter = list; iter; iter = iter->next){
|
|
|
|
for (iter = list; iter; iter = iter->next){
|
|
|
|
GtkWidget *cur_widget = NULL;
|
|
|
|
GObject *cur_widget = NULL;
|
|
|
|
const char *widget_text = NULL;
|
|
|
|
const char *widget_text = NULL;
|
|
|
|
if (GTK_IS_BUTTON(iter->data)){
|
|
|
|
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)));
|
|
|
|
widget_text = yon_char_new(gtk_button_get_label(GTK_BUTTON(cur_widget)));
|
|
|
|
} else if (GTK_IS_LABEL(iter->data)){
|
|
|
|
} 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)));
|
|
|
|
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;
|
|
|
|
} else continue;
|
|
|
|
g_object_set_data(G_OBJECT(cur_widget),"original_label",(void*)widget_text);
|
|
|
|
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 *list = gtk_builder_get_objects(builder);
|
|
|
|
GSList *iter;
|
|
|
|
GSList *iter;
|
|
|
|
for (iter = list; iter; iter = iter->next){
|
|
|
|
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);
|
|
|
|
GtkWidget *cur_button = GTK_WIDGET(iter->data);
|
|
|
|
char *source_label = g_object_get_data(G_OBJECT(cur_button),"original_label");
|
|
|
|
char *source_label = g_object_get_data(G_OBJECT(cur_button),"original_label");
|
|
|
|
if (!yon_char_is_empty(source_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)){
|
|
|
|
if (!yon_char_is_empty(source_label)){
|
|
|
|
gtk_label_set_text(GTK_LABEL(cur_label),_(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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|