Localisation changing

pull/101/head
parent 103df1b592
commit 93ec5bf07f
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -1,66 +1,66 @@
LANG_GROUP;LANG;LANG_NAME
af;af_ZA.UTF-8;Afrikaans
ar;ar_AE.UTF-8;Arabic
as;as_IN.UTF-8;Assamese
az;az_AZ.UTF-8;Azerbaijani
be;be_BY.UTF-8;Belarusian
bg;bg_BG.UTF-8;Bulgarian
bn;bn_IN.UTF-8;Bengali
bs;bs_BA.UTF-8;Bosnian
ca;ca_ES.UTF-8;Catalan
cs;cs_CZ.UTF-8;Czech
da;da_DK.UTF-8;Danish
de;de_DE.UTF-8;German
el;el_GR.UTF-8;Greek
en;en_GB.UTF-8;English
es;es_ES.UTF-8;Spanish
et;et_EE.UTF-8;Estonian
fi;fi_FI.UTF-8;Finnish
fr;fr_FR.UTF-8;French
gu;gu_IN.UTF-8;Gujarati
he;he_IL.UTF-8;Hebrew
hi;hi_IN.UTF-8;Hindi
hr;hr_HR.UTF-8;Croatian
hu;hu_HU.UTF-8;Hungarian
hy;hy_AM.UTF-8;Armenian
id;id_ID.UTF-8;Indonesian
is;is_IS.UTF-8;Icelandic
it;it_IT.UTF-8;Italian
ja;ja_JP.UTF-8;Japanese
ka;ka_GE.UTF-8;Georgian
kk;kk_KZ.UTF-8;Kazakh
kn;kn_IN.UTF-8;Kannada
ko;ko_KR.UTF-8;Korean
ks;ks_IN.UTF-8;Kashmiri
ku;ku_TR.UTF-8;Kurdish
ky;ky_KG.UTF-8;Kirghiz
lt;lt_LT.UTF-8;Lithuanian
lv;lv_LV.UTF-8;Latvian
mk;mk_MK.UTF-8;Macedonian
ml;ml_IN.UTF-8;Malayalam
mr;mr_IN.UTF-8;Marathi
ms;ms_MY.UTF-8;Malay
mt;mt_MT.UTF-8;Maltese
nb;nb_NO.UTF-8;Bokmal
nl;nl_NL.UTF-8;Dutch
nn;nn_NO.UTF-8;Nynorsk
or;or_IN.UTF-8;Oriya
pa;pa_IN.UTF-8;Punjabi
pl;pl_PL.UTF-8;Polish
pt;pt_PT.UTF-8;Portuguese
ro;ro_RO.UTF-8;Romanian
ru;ru_RU.UTF-8;Russian
sa;sa_IN.UTF-8;Sanskrit
sk;sk_SK.UTF-8;Slovak
sl;sl_SI.UTF-8;Slovenian
sq;sq_AL.UTF-8;Albanian
sr;sr_ME.UTF-8;Serbian
sr;sr_RS.UTF-8;Serbian
sv;sv_SE.UTF-8;Swedish
ta;ta_IN.UTF-8;Tamil
te;te_IN.UTF-8;Telugu
th;th_TH.UTF-8;Thai
tr;tr_TR.UTF-8;Turkish
uk;uk_UA.UTF-8;Ukrainian
vi;vi_VN.UTF-8;Vietnamese
zh;zh_CN.UTF-8;Simplified Chinese
LANG;LANG_NAME
af_ZA.UTF-8;Afrikaans
ar_AE.UTF-8;Arabic
as_IN.UTF-8;Assamese
az_AZ.UTF-8;Azerbaijani
be_BY.UTF-8;Belarusian
bg_BG.UTF-8;Bulgarian
bn_IN.UTF-8;Bengali
bs_BA.UTF-8;Bosnian
ca_ES.UTF-8;Catalan
cs_CZ.UTF-8;Czech
da_DK.UTF-8;Danish
de_DE.UTF-8;German
el_GR.UTF-8;Greek
en_GB.UTF-8;English
es_ES.UTF-8;Spanish
et_EE.UTF-8;Estonian
fi_FI.UTF-8;Finnish
fr_FR.UTF-8;French
gu_IN.UTF-8;Gujarati
he_IL.UTF-8;Hebrew
hi_IN.UTF-8;Hindi
hr_HR.UTF-8;Croatian
hu_HU.UTF-8;Hungarian
hy_AM.UTF-8;Armenian
id_ID.UTF-8;Indonesian
is_IS.UTF-8;Icelandic
it_IT.UTF-8;Italian
ja_JP.UTF-8;Japanese
ka_GE.UTF-8;Georgian
kk_KZ.UTF-8;Kazakh
kn_IN.UTF-8;Kannada
ko_KR.UTF-8;Korean
ks_IN.UTF-8;Kashmiri
ku_TR.UTF-8;Kurdish
ky_KG.UTF-8;Kirghiz
lt_LT.UTF-8;Lithuanian
lv_LV.UTF-8;Latvian
mk_MK.UTF-8;Macedonian
ml_IN.UTF-8;Malayalam
mr_IN.UTF-8;Marathi
ms_MY.UTF-8;Malay
mt_MT.UTF-8;Maltese
nb_NO.UTF-8;Bokmal
nl_NL.UTF-8;Dutch
nn_NO.UTF-8;Nynorsk
or_IN.UTF-8;Oriya
pa_IN.UTF-8;Punjabi
pl_PL.UTF-8;Polish
pt_PT.UTF-8;Portuguese
ro_RO.UTF-8;Romanian
ru_RU.UTF-8;Russian
sa_IN.UTF-8;Sanskrit
sk_SK.UTF-8;Slovak
sl_SI.UTF-8;Slovenian
sq_AL.UTF-8;Albanian
sr_ME.UTF-8;Serbian
sr_RS.UTF-8;Serbian
sv_SE.UTF-8;Swedish
ta_IN.UTF-8;Tamil
te_IN.UTF-8;Telugu
th_TH.UTF-8;Thai
tr_TR.UTF-8;Turkish
uk_UA.UTF-8;Ukrainian
vi_VN.UTF-8;Vietnamese
zh_CN.UTF-8;Simplified Chinese
1 LANG_GROUP LANG LANG_NAME
2 af af_ZA.UTF-8 Afrikaans
3 ar ar_AE.UTF-8 Arabic
4 as as_IN.UTF-8 Assamese
5 az az_AZ.UTF-8 Azerbaijani
6 be be_BY.UTF-8 Belarusian
7 bg bg_BG.UTF-8 Bulgarian
8 bn bn_IN.UTF-8 Bengali
9 bs bs_BA.UTF-8 Bosnian
10 ca ca_ES.UTF-8 Catalan
11 cs cs_CZ.UTF-8 Czech
12 da da_DK.UTF-8 Danish
13 de de_DE.UTF-8 German
14 el el_GR.UTF-8 Greek
15 en en_GB.UTF-8 English
16 es es_ES.UTF-8 Spanish
17 et et_EE.UTF-8 Estonian
18 fi fi_FI.UTF-8 Finnish
19 fr fr_FR.UTF-8 French
20 gu gu_IN.UTF-8 Gujarati
21 he he_IL.UTF-8 Hebrew
22 hi hi_IN.UTF-8 Hindi
23 hr hr_HR.UTF-8 Croatian
24 hu hu_HU.UTF-8 Hungarian
25 hy hy_AM.UTF-8 Armenian
26 id id_ID.UTF-8 Indonesian
27 is is_IS.UTF-8 Icelandic
28 it it_IT.UTF-8 Italian
29 ja ja_JP.UTF-8 Japanese
30 ka ka_GE.UTF-8 Georgian
31 kk kk_KZ.UTF-8 Kazakh
32 kn kn_IN.UTF-8 Kannada
33 ko ko_KR.UTF-8 Korean
34 ks ks_IN.UTF-8 Kashmiri
35 ku ku_TR.UTF-8 Kurdish
36 ky ky_KG.UTF-8 Kirghiz
37 lt lt_LT.UTF-8 Lithuanian
38 lv lv_LV.UTF-8 Latvian
39 mk mk_MK.UTF-8 Macedonian
40 ml ml_IN.UTF-8 Malayalam
41 mr mr_IN.UTF-8 Marathi
42 ms ms_MY.UTF-8 Malay
43 mt mt_MT.UTF-8 Maltese
44 nb nb_NO.UTF-8 Bokmal
45 nl nl_NL.UTF-8 Dutch
46 nn nn_NO.UTF-8 Nynorsk
47 or or_IN.UTF-8 Oriya
48 pa pa_IN.UTF-8 Punjabi
49 pl pl_PL.UTF-8 Polish
50 pt pt_PT.UTF-8 Portuguese
51 ro ro_RO.UTF-8 Romanian
52 ru ru_RU.UTF-8 Russian
53 sa sa_IN.UTF-8 Sanskrit
54 sk sk_SK.UTF-8 Slovak
55 sl sl_SI.UTF-8 Slovenian
56 sq sq_AL.UTF-8 Albanian
57 sr sr_ME.UTF-8 Serbian
58 sr sr_RS.UTF-8 Serbian
59 sv sv_SE.UTF-8 Swedish
60 ta ta_IN.UTF-8 Tamil
61 te te_IN.UTF-8 Telugu
62 th th_TH.UTF-8 Thai
63 tr tr_TR.UTF-8 Turkish
64 uk uk_UA.UTF-8 Ukrainian
65 vi vi_VN.UTF-8 Vietnamese
66 zh zh_CN.UTF-8 Simplified Chinese

@ -79,7 +79,7 @@ hu;hu_HU.UTF-8;Hungarian, Hungary
hy;hy_AM.UTF-8;Armenian, Armenia
id;id_ID.UTF-8;Indonesian, Indonesia
is;is_IS.UTF-8;Icelandic, Iceland
it;it_CH.UTF-8;Italian, Switzerla;nd
it;it_CH.UTF-8;Italian, Switzerland
it;it_IT.UTF-8;Italian, Italy
ja;ja_JP.UTF-8;Japanese, Japan
ka;ka_GE.UTF-8;Georgian, Georgia

Can't render this file because it has a wrong number of fields in line 82.

@ -310,14 +310,28 @@ void config_init(){
// void *on_setup_system_configuration(void *data);
void on_locale_changed(GtkWidget *self,main_window *widgets){
char *window_language;
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;
gtk_tree_model_get(model,&iter,0,&window_language,-1);
if (!yon_char_is_empty(window_language)){
yon_config_register(installer_lang_parameter,installer_lang_parameter_command,(char*)window_language);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter));
char *config_code = config(installer_lang_parameter);
if (yon_char_is_empty(config_code)){
config_code = yon_char_new(setlocale(LC_ALL,NULL));
if (strstr(config_code,".")){
yon_char_divide_search_self(config_code,".",-1);
}
}
GtkTreeIter itar;
for_iter(widgets->InstallerCountryFilter,&iter){
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),&itar,&iter);
char *target;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->InstallerCountryList),&itar,2,&target,-1);
if (!strcmp(config_code,target)){
gtk_tree_model_filter_convert_child_iter_to_iter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),&iter,&itar);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CountryLanguagesTree)),&iter);
break;
}
}
}
@ -326,9 +340,8 @@ void on_installer_language_changed(GtkWidget *self, main_window *widgets){
char *window_language;
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&model,&iter)){
gtk_tree_model_get(model,&iter,0,&window_language,-1);
}
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CountryLanguagesTree)),&model,&iter)) return;
gtk_tree_model_get(model,&iter,2,&window_language,-1);
if (!yon_char_is_empty(window_language)){
yon_config_register(installer_lang_parameter,installer_lang_parameter_command,(char*)window_language);
}
@ -351,7 +364,6 @@ void on_installer_language_changed(GtkWidget *self, main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets);
model = GTK_TREE_MODEL(widgets->InstallerLanguageList);
gtk_tree_model_get_iter_from_string(model,&iter,active_lang_id);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter);
g_signal_handlers_unblock_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets);
}
@ -413,6 +425,7 @@ typedef struct{
char *locale_name;
char *code;
char *localised_name;
char *code_full;
} locale_struct;
void set_locales_list(main_window *widgets){
@ -435,6 +448,30 @@ void set_locales_list(main_window *widgets){
yon_char_remove_last_symbol(code,'"');
free(yon_char_divide_search(code,"\"",-1));
{
char *region = yon_char_parsed_check_exist_begins_with(code_info,info_size,"territory");
if (!yon_char_is_empty(region)){
yon_char_remove_last_symbol(region,'\n');
yon_char_remove_last_symbol(region,'"');
free(yon_char_divide_search(region,"\"",-1));
}
char *lang_name = yon_char_parsed_check_exist_begins_with(code_info,info_size,"language");
if (!yon_char_is_empty(lang_name)){
yon_char_remove_last_symbol(lang_name,'\n');
yon_char_remove_last_symbol(lang_name,'"');
free(yon_char_divide_search(lang_name,"\"",-1));
}
char *tooltip = yon_char_parsed_check_exist_begins_with(code_info,info_size,"title");
if (!yon_char_is_empty(tooltip)){
yon_char_remove_last_symbol(tooltip,'\n');
yon_char_remove_last_symbol(tooltip,'"');
free(yon_char_divide_search(tooltip,"\"",-1));
}
GtkTreeIter iter;
char *country = yon_char_unite(lang_name," (",region,")",NULL);
gtk_list_store_append(widgets->InstallerCountryList,&iter);
gtk_list_store_set(widgets->InstallerCountryList,&iter,0,code,1,_(country),2,locales[i],3,_(tooltip),-1);
}
if (!g_hash_table_contains(localisations,code)) {
locale_struct *locale = malloc(sizeof(locale_struct));
memset(locale,0,sizeof(locale_struct));
@ -442,6 +479,7 @@ void set_locales_list(main_window *widgets){
locale->locale_name = yon_char_parsed_check_exist_begins_with(code_info,info_size,"language");
locale->code = code;
locale->localised_name = yon_char_parsed_check_exist_begins_with(code_info,info_size,"lang_name");
locale->code_full = yon_char_new(locales[i]);
if (!yon_char_is_empty(locale->locale_name)){
yon_char_remove_last_symbol(locale->locale_name,'\n');
@ -462,11 +500,50 @@ void set_locales_list(main_window *widgets){
GtkTreeIter iter;
dictionary *dict;
char *config_val = yon_char_new(config(installer_lang_parameter));
char *config_code = NULL;
if (yon_char_is_empty(config_val)) config_val = yon_char_new(setlocale(LC_ALL,NULL));
if(strstr(config_val,"_")){
config_code = yon_char_divide_search(config_val,"_",-1);
free(config_val);
}
for_dictionaries(dict,locale_dict){
locale_struct *locale = yon_dictionary_get_data(dict,locale_struct*);
gtk_list_store_append(widgets->InstallerLanguageList,&iter);
gtk_list_store_set(widgets->InstallerLanguageList,&iter,0,locale->code,1,locale->locale_name,2,locale->localised_name,-1);
gtk_list_store_set(widgets->InstallerLanguageList,&iter,0,locale->code,1,locale->locale_name,2,_(locale->localised_name),3,locale->code_full,-1);
if (!yon_char_is_empty(config_code)){
if (!strcmp(config_code,locale->code)){
g_signal_handlers_block_by_func(G_OBJECT(widgets->CountryLanguagesTree),G_CALLBACK(on_installer_language_changed),widgets);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter);
on_locale_changed(NULL,widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->CountryLanguagesTree),G_CALLBACK(on_installer_language_changed),widgets);
}
}
}
}
gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets){
GtkTreeIter itar;
GtkTreeModel *model;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&model,&itar)) return 0;
char *cur_code,*country;
gtk_tree_model_get(self,iter,0,&cur_code,1,&country,-1);
char *code;
gtk_tree_model_get(model,&itar,0,&code,-1);
if (!strcmp(code,cur_code)){
char *config_lang = config(installer_lang_parameter);
if (!yon_char_is_empty(config_lang)&&!strcmp(cur_code,config_lang)){
if (gtk_tree_model_filter_convert_child_iter_to_iter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),iter,&itar)){
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CountryLanguagesTree)),&itar);
}
}
return 1;
}
return 0;
}
@ -625,6 +702,7 @@ void yon_main_window_create(main_window *widgets){
widgets->LanguagesTree=yon_gtk_builder_get_widget(builder,"LanguagesTree");
widgets->CountryLanguagesTree=yon_gtk_builder_get_widget(builder,"CountryLanguagesTree");
widgets->InstallerCountryList=GTK_LIST_STORE(gtk_builder_get_object(builder,"InstallerCountryList"));
widgets->InstallerCountryFilter=GTK_TREE_MODEL(gtk_builder_get_object(builder,"InstallerCountryFilter"));
widgets->InstallerLanguageList=GTK_LIST_STORE(gtk_builder_get_object(builder,"InstallerLanguageList"));
// widgets->LanguageCombo=yon_gtk_builder_get_widget(builder,"LanguageCombo");
widgets->RegionCombo=yon_gtk_builder_get_widget(builder,"RegionCombo");
@ -793,7 +871,7 @@ void yon_main_window_create(main_window *widgets){
gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),3);
g_signal_connect(G_OBJECT(widgets->LanguagesTree),"cursor-changed",G_CALLBACK(on_locale_changed),widgets);
g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"cursor-changed",G_CALLBACK(on_locale_changed),widgets);
g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"cursor-changed",G_CALLBACK(on_installer_language_changed),widgets);
// g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets);
g_signal_connect(G_OBJECT(widgets->AdditionalSoftwareCell),"toggled",G_CALLBACK(on_additional_software_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->StartupChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets);
@ -847,6 +925,7 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->SourceButton),"clicked",G_CALLBACK(on_source_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->SkipInstallationButton),"clicked",G_CALLBACK(on_system_setup_pass),widgets);
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),(GtkTreeModelFilterVisibleFunc)on_country_filter,widgets,NULL);
{
if (main_config.lock_load_global == 1){
@ -898,7 +977,6 @@ void yon_main_window_create(main_window *widgets){
}
gtk_builder_connect_signals(builder,NULL);
// yon_load_proceed(YON_CONFIG_LOCAL);
on_config_global_load(NULL,widgets);
// yon_interface_update(widgets);
if (!yon_char_is_empty(config(AUTOINSTALL_TYPE_INSTALL))){
gtk_widget_show(widgets->StartScenarioButton);
@ -951,6 +1029,7 @@ int main(int argc, char *argv[]){
gtk_init(&argc,&argv);
main_window *widgets = NULL;
widgets = yon_main_window_complete();
on_config_global_load(NULL,widgets);
if (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));

@ -59,7 +59,7 @@
#define licence_path "/usr/share/ublinux/agreement/EULA.txt"
#define languages_path "/usr/share/ubinstall-gtk/csv/locales.csv"
#define installer_languages_path "resource:///com/ublinux/csv/languages.csv"
// #define installer_languages_path "resource:///com/ublinux/csv/languages.csv"
#define zone_path "/usr/share/zoneinfo/"
@ -445,6 +445,7 @@ typedef struct {
GtkWidget *CountryLanguagesTree;
GtkListStore *InstallerCountryList;
GtkListStore *InstallerLanguageList;
GtkTreeModel *InstallerCountryFilter;
// GtkWidget *LanguageCombo;
GtkWidget *RegionCombo;
GtkWidget *ZoneCombo;
@ -1131,4 +1132,5 @@ void yon_resize_images_update(main_window *widgets);
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 on_installer_language_changed(GtkWidget *self, main_window *widgets);
void on_installer_language_changed(GtkWidget *self, main_window *widgets);
gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets);

@ -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 -->
@ -56,8 +56,15 @@
<column type="gchararray"/>
<!-- column-name Country -->
<column type="gchararray"/>
<!-- column-name LangCode -->
<column type="gchararray"/>
<!-- column-name Tooltip -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkTreeModelFilter" id="InstallerCountryFilter">
<property name="child-model">InstallerCountryList</property>
</object>
<object class="GtkListStore" id="InstallerLanguageList">
<columns>
<!-- column-name LangCode -->
@ -66,6 +73,8 @@
<column type="gchararray"/>
<!-- column-name LanguageLocalised -->
<column type="gchararray"/>
<!-- column-name LangCodeFull -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkRadioButton" id="KernelUnchosenRadio">
@ -878,13 +887,22 @@ and help you install UBLinux on your computer</property>
<object class="GtkTreeView" id="CountryLanguagesTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">InstallerCountryList</property>
<property name="model">InstallerCountryFilter</property>
<property name="headers-visible">False</property>
<property name="search-column">1</property>
<property name="tooltip-column">3</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn"/>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>

Loading…
Cancel
Save