diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index 0d00c1b..c620b80 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -8,14 +8,24 @@ int yon_char_parsed_compare(const void *a, const void *b){ const config_str str_a = (const config_str)a; const config_str str_b = (const config_str)b; - if ((strstr(*str_a,"-")||strstr(*str_a,"+"))&&(strstr(*str_b,"-")||strstr(*str_b,"+"))){ - int a = atoi(*str_a+3); - int b = atoi(*str_b+3); + if ((strstr(_(*str_a),"-")||strstr(_(*str_a),"+"))&&(strstr(_(*str_b),"-")||strstr(_(*str_b),"+"))){ + int a = atoi(_(*str_a)+3); + int b = atoi(_(*str_b)+3); if (a>b) return 1; else if (b>a) return -1; else return 0; } - return strcmp(*str_a, *str_b); + return strcoll(_(*str_a), _(*str_b)); +} + +config_str yon_char_parsed_localize(config_str parsed, int size){ + config_str new_parsed = yon_char_parsed_copy(parsed,size); + for (int i=0;iRegionCombo),parsed[i],_(parsed[i])); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->RegionCombo),sorted[i],(localized[i])); } free(path); } @@ -486,6 +498,7 @@ void yon_main_window_complete(main_window *widgets){ } int main(int argc, char *argv[]){ + setlocale(LC_COLLATE, "ru_RU.UTF-8"); local=setlocale(LC_ALL, ""); textdomain (LocaleName); config_init(); diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index d6104d9..2791519 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -140,6 +140,7 @@ void on_date_accept(GtkWidget *,main_window *widgets); void on_date_cancel(GtkWidget *, main_window *widgets); +config_str yon_char_parsed_localize(config_str parsed, int size); config_str yon_char_parsed_sort(config_str parsed, int size); int yon_char_parsed_compare(const void *a, const void *b);