Fixed language choosing

pull/155/head
parent 2da9386f8a
commit 6e8b5d9220

@ -114,7 +114,7 @@ void on_language_window_accept(GtkWidget *,dictionary *dict){
char *final = "";
for_iter(widgets->LanguagesList,&iter){
char *code, *labl;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&labl,2,&code,-1);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&code,2,&labl,-1);
if (yon_char_parsed_check_exist(lang_parsed,size,code)!=-1){
gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1);
char *tmp = yon_char_unite(final,!yon_char_is_empty(final)?";":"",labl,NULL);
@ -137,7 +137,7 @@ void on_language_window_accept(GtkWidget *,dictionary *dict){
for_iter(GTK_TREE_MODEL(window->liststore1),&iter){
char *current;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&current,-1);
gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,2,&current,-1);
if (status)
yon_char_parsed_add_or_create_if_exists(parsed,&size,current);
}

@ -80,24 +80,14 @@ void yon_region_init(main_window *widgets){
yon_locale_init();
parsed = yon_locale_get_all_codes(&size);
textdomain(LOCALES_DOMAIN_NAME);
config_str languages = yon_config_load(languages_command,&size);
for (int i=0;i<size;i++){
char *territory = yon_locale_get_parameter(parsed[i],YON_LOCALE_TERRITORY);
char *lang_name = yon_locale_get_parameter(parsed[i],YON_LOCALE_LANGUAGE);
char *full_name = NULL;
if (!yon_char_is_empty(lang_name)){
if (!yon_char_is_empty(territory)){
full_name = yon_char_unite(_(lang_name)," (",_(territory),")",NULL);
// free(territory);
} else {
full_name = yon_char_new(lang_name);
}
int parsed_size;
config_str parsed = yon_char_parse(languages[i],&parsed_size,"|");
gtk_list_store_append(widgets->LanguagesList,&iter);
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,1,full_name,2,parsed[i],-1);
}
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,1,parsed[0],2,parsed[1],3,parsed[2],-1);
}
textdomain(LocaleName);
yon_char_parsed_free(parsed,size);
if (lang)
yon_char_parsed_free(lang,langsize);

@ -554,6 +554,18 @@ void config_init(){
main_config.force_ini=NULL;
main_config.network_types = g_hash_table_new(g_str_hash,g_str_equal);
main_config.cur_slide=0;
main_config.languages = g_hash_table_new(g_str_hash,g_str_equal);
int size;
config_str languages = yon_config_load(languages_command,&size);
for (int i=0;i<size;i++){
yon_char_remove_last_symbol(languages[i],'\n');
int parsed_size;
config_str parsed = yon_char_parse(languages[i],&parsed_size,"|");
g_hash_table_insert(main_config.languages,yon_char_new(parsed[0]),yon_char_new(languages[i]));
yon_char_parsed_free(parsed,parsed_size);
}
yon_char_parsed_free(languages,size);
}
// void on_root_get_root(char *argline){

@ -272,6 +272,8 @@ layout && /description:/ {\
#define default_langs(size) yon_char_parsed_new(size,"en_US.UTF-8","ru_RU.UTF-8",NULL);
#define languages_command "while IFS= read -ru3 SELECT_LOCALE; do SELECT_LOCALE=\"${SELECT_LOCALE% *}\"; [[ $(< /usr/share/i18n/locales/${SELECT_LOCALE%.*}) =~ (\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"country_name\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\") ]] && echo \"${SELECT_LOCALE}|${BASH_REMATCH[2]}${BASH_REMATCH[7]}${BASH_REMATCH[11]}${BASH_REMATCH[5]:+ (${BASH_REMATCH[5]})}${BASH_REMATCH[9]:+ (${BASH_REMATCH[9]})}|${BASH_REMATCH[3]}${BASH_REMATCH[8]}${BASH_REMATCH[12]}${BASH_REMATCH[4]:+ (${BASH_REMATCH[4]})}\" || echo \"${SELECT_LOCALE}\"; done 3< \"/usr/share/i18n/SUPPORTED\""
#define install_common_parameters \
AUTOINSTALL_TYPE_INSTALL,\
AUTOINSTALL_DEVICE,\
@ -390,6 +392,8 @@ typedef struct {
int exit_accepted;
GMutex progress_mutex;
GMutex install_mutex;
GHashTable *languages;
int arg_size;
config_str arg_target;

@ -4,11 +4,13 @@
<requires lib="gtk+" version="3.24"/>
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name gboolean1 -->
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name gchararray1 -->
<!-- column-name Code -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<!-- column-name Name -->
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
</columns>
</object>
@ -73,16 +75,14 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<property name="headers-visible">False</property>
<property name="search-column">1</property>
<property name="tooltip-column">1</property>
<property name="enable-grid-lines">both</property>
<property name="activate-on-single-click">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="clickable">True</property>
<property name="sort-column-id">1</property>
<child>
<object class="GtkCellRendererToggle" id="ToggleRenderer"/>
<attributes>
@ -93,14 +93,51 @@
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Locale</property>
<child>
<object class="GtkCellRendererText"/>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="min-width">35</property>
<property name="title" translatable="yes">Language</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">100</property>
</object>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Territory</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">125</property>
</object>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
@ -108,11 +108,13 @@
</object>
<object class="GtkListStore" id="LanguagesList">
<columns>
<!-- column-name gboolean1 -->
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name gchararray1 -->
<!-- column-name Name -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<!-- column-name Code -->
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
</columns>
</object>

Loading…
Cancel
Save