Loading changes #60

Merged
asmeron merged 8 commits from YanTheKaller/ubl-settings-system:master into master 7 months ago

@ -72,81 +72,45 @@ int yon_load_proceed(YON_CONFIG_TYPE type){
}
void yon_config_local_load(GtkWidget *self, main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),"");
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),"");
gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),DEFAULT_LABEL);
int size;
GtkTreeIter iter;
config_str rtn = yon_file_open(get_id_command,&size);
rtn[0]=yon_char_divide_search(rtn[0],"\n",-1);
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),*rtn);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConsoleFontCombo),0);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
yon_load_proceed(YON_CONFIG_LOCAL);
char *hostname = yon_config_get_by_key(hostname_parameter);
if (!yon_char_is_empty(hostname)){
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),hostname);
}
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->languagelist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->languagelist),&iter)){
gtk_list_store_set(widgets->languagelist,&iter,2,0,-1);
}
char *id = yon_config_get_by_key(id_parameter);
if (id&&!strcmp(id,"random"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),1);
else if (id&&!strcmp(id,"hardware"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),2);
else if (id){
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),3);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),0);
gtk_widget_set_sensitive(widgets->IDEntry,0);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
yon_interface_update(widgets);
}
char *code;
char *cons_font = yon_config_get_by_key(console_font_parameter);
if (cons_font){
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->fontlist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->fontlist),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->fontlist),&iter,0,&code,-1);
if (code&&!strcmp(code,cons_font)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->ConsoleFontCombo),&iter);
}
}
char *lang = yon_config_get_by_key(language_parameter);
char *avlocale = yon_config_get_by_key(locale_parameter);
int locsize;
if (avlocale);
config_str locale_parsed = yon_char_parse(avlocale,&locsize,",");
gboolean is_active;
char *locale_string="";
char *loc_name;
if (lang){
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->languagelist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->languagelist),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1);
if (code&&!strcmp(code,lang)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->LanguageCombo),&iter);
if (avlocale)
for (int i=0;i<locsize;i++)
if (!strcmp(code,locale_parsed[i])) {
gtk_list_store_set(widgets->languagelist,&iter,2,1,-1);
locale_string = yon_char_unite(strcmp(locale_string,"") ? yon_char_append(locale_string,"; ") : locale_string, loc_name,NULL);
}
}
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
void yon_config_global_load(GtkWidget *self, main_window *widgets){
yon_load_proceed(YON_CONFIG_GLOBAL);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
main_config.load_mode=0;
yon_interface_update(widgets);
}
void yon_config_custom_load(GtkWidget *self, main_window *widgets){
if (!yon_load_proceed(YON_CONFIG_CUSTOM))
return;
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
yon_interface_update(widgets);
}
void yon_config_global_load(GtkWidget *self, main_window *widgets){
void yon_interface_update(main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->HostnameEntry),G_CALLBACK(on_hostname_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->ConsoleFontCombo),G_CALLBACK(on_console_font_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),widgets);
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),"");
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),"");
gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),DEFAULT_LABEL);
@ -157,7 +121,6 @@ void yon_config_global_load(GtkWidget *self, main_window *widgets){
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),*rtn);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConsoleFontCombo),0);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
yon_load_proceed(YON_CONFIG_GLOBAL);
char *hostname = yon_config_get_by_key(hostname_parameter);
if (!yon_char_is_empty(hostname)){
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),hostname);
@ -211,12 +174,9 @@ void yon_config_global_load(GtkWidget *self, main_window *widgets){
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=0;
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->HostnameEntry),G_CALLBACK(on_hostname_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ConsoleFontCombo),G_CALLBACK(on_console_font_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),widgets);
}
void yon_config_global_local_save(){
@ -231,81 +191,6 @@ void yon_config_global_local_save(){
}
void yon_config_custom_load(GtkWidget *self, main_window *widgets){
if (!yon_load_proceed(YON_CONFIG_CUSTOM))
return;
g_signal_handlers_block_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),"");
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),"");
gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),DEFAULT_LABEL);
int size;
GtkTreeIter iter;
config_str rtn = yon_file_open(get_id_command,&size);
rtn[0]=yon_char_divide_search(rtn[0],"\n",-1);
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),*rtn);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConsoleFontCombo),0);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
char *hostname = yon_config_get_by_key(hostname_parameter);
if (!yon_char_is_empty(hostname)){
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),hostname);
}
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->languagelist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->languagelist),&iter)){
gtk_list_store_set(widgets->languagelist,&iter,2,0,-1);
}
char *id = yon_config_get_by_key(id_parameter);
if (id&&!strcmp(id,"random"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),1);
else if (id&&!strcmp(id,"hardware"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),2);
else if (id){
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),3);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),0);
gtk_widget_set_sensitive(widgets->IDEntry,0);
}
char *code;
char *cons_font = yon_config_get_by_key(console_font_parameter);
if (cons_font){
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->fontlist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->fontlist),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->fontlist),&iter,0,&code,-1);
if (code&&!strcmp(code,cons_font)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->ConsoleFontCombo),&iter);
}
}
char *lang = yon_config_get_by_key(language_parameter);
char *avlocale = yon_config_get_by_key(locale_parameter);
int locsize;
if (avlocale);
config_str locale_parsed = yon_char_parse(avlocale,&locsize,",");
gboolean is_active;
char *locale_string="";
char *loc_name;
if (lang){
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->languagelist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->languagelist),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1);
if (code&&!strcmp(code,lang)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->LanguageCombo),&iter);
if (avlocale)
for (int i=0;i<locsize;i++)
if (!strcmp(code,locale_parsed[i])) {
gtk_list_store_set(widgets->languagelist,&iter,2,1,-1);
locale_string = yon_char_unite(strcmp(locale_string,"") ? yon_char_append(locale_string,"; ") : locale_string, loc_name,NULL);
}
}
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
}
void yon_config_local_save(){
main_config.save_config=1;
int changed = yon_config_get_status(id_parameter)==1;
@ -496,7 +381,12 @@ void on_language_changed(GtkComboBox *self, main_window *widgets){
void on_terminal_command_ended(VteTerminal *terminal, gint status, domain_info_window *window){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"success",SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
yon_ubl_status_box_despawn_infinite(GTK_CONTAINER(window->StatusBox));
if (!status)
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"success",yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
else {
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"failure",yon_char_get_localised_from_lib(FAIL_LABEL),BACKGROUND_IMAGE_FAIL_TYPE);
}
textdomain(LocaleName);
}
@ -546,6 +436,7 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window));
gtk_widget_show(dialog->Window);
gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress);
}
void on_status_clicked(GtkWidget *self, connection_window *window){
@ -561,11 +452,12 @@ void on_status_clicked(GtkWidget *self, connection_window *window){
}
void on_find_domains_clicked(GtkWidget *self, main_window *window){
yon_debug_output("%s\n",domains_seek_command);
domain_info_window *dialog = yon_information_window_new();
yon_terminal_integrated_start(dialog->ExecuteTerminal,domains_seek_command);
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window));
gtk_widget_show(dialog->Window);
// yon_terminal_window_launch(GTK_WINDOW(window->Window),yon_debug_output("%s\n",domains_seek_command),yon_char_get_localised_from_lib(SUCCESS_LABEL),yon_char_get_localised_from_lib(FAIL_LABEL));
}
@ -575,6 +467,7 @@ void on_main_window_domain_status_clicked(GtkWidget *self, GtkEntryIconPosition
if (!yon_char_is_empty(target)){
yon_debug_output("%s\n",get_domain_info_command);
domain_info_window *dialog = yon_information_window_new();
gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),INFO_TITLE_LABEL);
yon_terminal_integrated_start(dialog->ExecuteTerminal,get_domain_info_command);
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window));
gtk_widget_show(dialog->Window);
@ -596,16 +489,21 @@ gboolean on_main_window_domain_status_update(connection_window *window){
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(window->AdressEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
}
g_mutex_lock(&main_config.ThreadMutex);
update_thread_buzy = 0;
return GDK_EVENT_PROPAGATE;
g_mutex_unlock(&main_config.ThreadMutex);
return G_SOURCE_REMOVE;
}
// gboolean yon_update_thread(GtkWidget *self, GdkEvent *event, connection_window *window){
gboolean yon_update_thread(GtkWidget *self, connection_window *window){
g_mutex_lock(&main_config.ThreadMutex);
if (!update_thread_buzy){
update_thread_buzy=1;
pthread_t thread_id;
pthread_create(&thread_id, NULL, (void *)on_main_window_domain_status_update,window);
g_mutex_unlock(&main_config.ThreadMutex);
g_idle_add((GSourceFunc)on_main_window_domain_status_update,window);
} else {
g_mutex_unlock(&main_config.ThreadMutex);
}
return 1;
}
@ -754,11 +652,13 @@ void on_check_domain_connected(GtkWidget *self, main_window *widgets){
if (!ansv){
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_connected_icon);
gtk_button_set_label(GTK_BUTTON(widgets->DomainButton),DOMAIN_DISCONNECT_LABEL);
gtk_widget_set_tooltip_markup(widgets->DomainButton,DDISCONNECTION_LABEL);
gtk_entry_set_icon_tooltip_markup(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,DOMAIN_CONNECTED_LABEL);
main_config.domain_connected=1;
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
gtk_button_set_label(GTK_BUTTON(widgets->DomainButton),DOMAIN_CONNECT_LABEL);
gtk_widget_set_tooltip_markup(widgets->DomainButton,CONNECTION_LABEL);
gtk_entry_set_icon_tooltip_markup(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,DOMAIN_DISCONNECTED_LABEL);
main_config.domain_connected=0;
}
@ -900,6 +800,7 @@ int main(int argc, char *argv[]){
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
gtk_init(&argc,&argv);
template_main_window *widgets = yon_ubl_window_setup();
yon_root_button_setup(widgets,argv,argc);
yon_main_window_complete((main_window*)widgets);
yon_window_config_load(config_path);
gtk_main();

@ -100,6 +100,7 @@ typedef struct {
GtkListStore *localeslist;
int save_config;
int domain_connected;
GMutex ThreadMutex;
} config;
typedef struct {
@ -198,3 +199,9 @@ main_window *setup_window();
void on_id_changed(GtkEntry *self, main_window *widgets);
void on_check_domain_connected(GtkWidget *self, main_window *widgets);
void yon_interface_update(main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets);
void on_language_changed(GtkComboBox *self, main_window *widgets);
void on_console_font_changed(GtkComboBox *self, main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets);

@ -47,7 +47,9 @@
#define SAMBA_LABEL _("Samba client")
#define OFF_AUTOMATICALLY_LABEL _("Switch client off or automatically")
#define INFO_LABEL _("Domain information")
#define CONNECTION_LABEL _("Domain connection")
#define INFO_TITLE_LABEL _("Current domain information")
#define CONNECTION_LABEL _("Connect to domain")
#define DDISCONNECTION_LABEL _("Disconnect from domain")
#define CHECK_NAME_LABEL _("Check domain name")
#define LIST_ALL_LABEL _("List all domains")

@ -515,7 +515,7 @@
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System configuration</property>
<property name="label" translatable="yes">Connect to domain</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -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="ubl-settings-system">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-system.css -->
@ -215,7 +215,7 @@
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System configuration</property>
<property name="label" translatable="yes">Disconnect from domain</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -178,45 +178,53 @@ msgid "Domain information"
msgstr ""
#: source/ubl-strings.h:50
msgid "Domain connection"
msgid "Current domain information"
msgstr ""
#: source/ubl-strings.h:51
msgid "Check domain name"
msgid "Connect to domain"
msgstr ""
#: source/ubl-strings.h:52
msgid "List all domains"
msgid "Disconnect from domain"
msgstr ""
#: source/ubl-strings.h:53
msgid "Check domain name"
msgstr ""
#: source/ubl-strings.h:54
msgid "List all domains"
msgstr ""
#: source/ubl-strings.h:56
msgid "Connecting to domain"
msgstr ""
#: source/ubl-strings.h:55
#: source/ubl-strings.h:57
msgid "Disconnecting from domain"
msgstr ""
#: source/ubl-strings.h:56
#: source/ubl-strings.h:58
msgid "Join"
msgstr ""
#: source/ubl-strings.h:57
#: source/ubl-strings.h:59
msgid "Leave"
msgstr ""
#: source/ubl-strings.h:59
#: source/ubl-strings.h:61
msgid "Connected to domain"
msgstr ""
#: source/ubl-strings.h:60
#: source/ubl-strings.h:62
msgid "Disconnected from domain"
msgstr ""
#: source/ubl-strings.h:62
#: source/ubl-strings.h:64
msgid "Loading..."
msgstr ""
#: source/ubl-strings.h:63
#: source/ubl-strings.h:65
msgid "Check"
msgstr ""

@ -176,435 +176,446 @@ msgstr "Выключить клиент или автоматически"
#: source/ubl-strings.h:49
msgid "Domain information"
msgstr "Информация о домене"
msgstr "Информация о доменах"
#: source/ubl-strings.h:50
msgid "Domain connection"
msgstr "Соединение домена"
msgid "Current domain information"
msgstr "Информация о подключенном домене"
#: source/ubl-strings.h:51
msgid "Connect to domain"
msgstr "Присоединиться к домену"
#: source/ubl-strings.h:52
msgid "Disconnect from domain"
msgstr "Отсоединиться от домена"
#: source/ubl-strings.h:53
msgid "Check domain name"
msgstr "Проверить домен"
#: source/ubl-strings.h:52
#: source/ubl-strings.h:54
msgid "List all domains"
msgstr "Показать все домены"
#: source/ubl-strings.h:54
#: source/ubl-strings.h:56
msgid "Connecting to domain"
msgstr "Подключение к домену"
#: source/ubl-strings.h:55
#: source/ubl-strings.h:57
msgid "Disconnecting from domain"
msgstr "Отключение от домена"
#: source/ubl-strings.h:56
#: source/ubl-strings.h:58
msgid "Join"
msgstr "Присоединиться"
#: source/ubl-strings.h:57
#: source/ubl-strings.h:59
msgid "Leave"
msgstr "Отсоединиться"
#: source/ubl-strings.h:59
#: source/ubl-strings.h:61
msgid "Connected to domain"
msgstr "Подключен к домену"
#: source/ubl-strings.h:60
#: source/ubl-strings.h:62
msgid "Disconnected from domain"
msgstr "Не подключен к домену"
#: source/ubl-strings.h:62
#: source/ubl-strings.h:64
msgid "Loading..."
msgstr "Загрузка..."
#: source/ubl-strings.h:63
#: source/ubl-strings.h:65
msgid "Check"
msgstr "Проверка"
msgid "Afrikaans, South Africa"
msgstr "Африканский, Южная Африка"
#~ msgid "Domain connection"
#~ msgstr "Соединение домена"
#~ msgid "Afrikaans, South Africa"
#~ msgstr "Африканский, Южная Африка"
msgid "Arabic, United Arab Emirates"
msgstr "Арабский, ЮАР"
#~ msgid "Arabic, United Arab Emirates"
#~ msgstr "Арабский, ЮАР"
msgid "Arabic, Bahrain"
msgstr "Арабский, Бахрейн"
#~ msgid "Arabic, Bahrain"
#~ msgstr "Арабский, Бахрейн"
msgid "Arabic, Algeria"
msgstr "Арабский, Алжир"
#~ msgid "Arabic, Algeria"
#~ msgstr "Арабский, Алжир"
msgid "Arabic, Egypt"
msgstr "Арабский, Египет"
#~ msgid "Arabic, Egypt"
#~ msgstr "Арабский, Египет"
msgid "Arabic, Iraq"
msgstr "Арабский, Ирак"
#~ msgid "Arabic, Iraq"
#~ msgstr "Арабский, Ирак"
msgid "Arabic, Jordan"
msgstr "Арабский, Иордания"
#~ msgid "Arabic, Jordan"
#~ msgstr "Арабский, Иордания"
msgid "Arabic, Kuwait"
msgstr "Арабский, Кувейт"
#~ msgid "Arabic, Kuwait"
#~ msgstr "Арабский, Кувейт"
msgid "Arabic, Libya"
msgstr "Арабский, Ливия"
#~ msgid "Arabic, Libya"
#~ msgstr "Арабский, Ливия"
msgid "Arabic, Morocco"
msgstr "Арабский, Морокко"
#~ msgid "Arabic, Morocco"
#~ msgstr "Арабский, Морокко"
msgid "Arabic, Oman"
msgstr "Арабский, Оман"
#~ msgid "Arabic, Oman"
#~ msgstr "Арабский, Оман"
msgid "Arabic, Qatar"
msgstr "Арабский, Катар"
#~ msgid "Arabic, Qatar"
#~ msgstr "Арабский, Катар"
msgid "Arabic, Saudi Arabia"
msgstr "Арабский, Саудовская Аравия"
#~ msgid "Arabic, Saudi Arabia"
#~ msgstr "Арабский, Саудовская Аравия"
msgid "Arabic, Tunisia"
msgstr "Арабский, Тунис"
#~ msgid "Arabic, Tunisia"
#~ msgstr "Арабский, Тунис"
msgid "Arabic, Yemen"
msgstr "Арабский, Йемен"
#~ msgid "Arabic, Yemen"
#~ msgstr "Арабский, Йемен"
msgid "Assamese, India"
msgstr "Ассамский, Индия"
#~ msgid "Assamese, India"
#~ msgstr "Ассамский, Индия"
msgid "Azerbaijani, Azerbaijan"
msgstr "Азербайджанский,Азербайджан"
#~ msgid "Azerbaijani, Azerbaijan"
#~ msgstr "Азербайджанский,Азербайджан"
msgid "Belarusian, Belarus"
msgstr "Беларусский, Беларусь"
#~ msgid "Belarusian, Belarus"
#~ msgstr "Беларусский, Беларусь"
msgid "Bulgarian, Bulgaria"
msgstr "Болгарский, Болгария"
#~ msgid "Bulgarian, Bulgaria"
#~ msgstr "Болгарский, Болгария"
msgid "Bengali, India"
msgstr "Бенгальский, Индия"
#~ msgid "Bengali, India"
#~ msgstr "Бенгальский, Индия"
msgid "Bosnian, Bosnia and Herzegovina"
msgstr "Боснийский, Босния и Герцеговина"
#~ msgid "Bosnian, Bosnia and Herzegovina"
#~ msgstr "Боснийский, Босния и Герцеговина"
msgid "Catalan, Spain"
msgstr "Каталонский, Испания"
#~ msgid "Catalan, Spain"
#~ msgstr "Каталонский, Испания"
msgid "Czech, Czech Republic"
msgstr "Чешский, Чехия"
#~ msgid "Czech, Czech Republic"
#~ msgstr "Чешский, Чехия"
msgid "Danish, Denmark"
msgstr "Датский, Дания"
#~ msgid "Danish, Denmark"
#~ msgstr "Датский, Дания"
msgid "German, Austria"
msgstr "Немецкий, Австрия"
#~ msgid "German, Austria"
#~ msgstr "Немецкий, Австрия"
msgid "German, Belgium"
msgstr "Немецкий, Бельгия"
#~ msgid "German, Belgium"
#~ msgstr "Немецкий, Бельгия"
msgid "German, Switzerland"
msgstr "Немецкий, Швейцария"
#~ msgid "German, Switzerland"
#~ msgstr "Немецкий, Швейцария"
msgid "German, Germany"
msgstr "Немецкий, Германия"
#~ msgid "German, Germany"
#~ msgstr "Немецкий, Германия"
msgid "German, Liechtenstein"
msgstr "Немецкий, Лихтенштейн"
#~ msgid "German, Liechtenstein"
#~ msgstr "Немецкий, Лихтенштейн"
msgid "German, Luxembourg"
msgstr "Немецкий, Люксембург"
#~ msgid "German, Luxembourg"
#~ msgstr "Немецкий, Люксембург"
msgid "Greek, Cyprus"
msgstr "Греческий, Кипр"
#~ msgid "Greek, Cyprus"
#~ msgstr "Греческий, Кипр"
msgid "Greek, Greece"
msgstr "Греческий, Греция"
#~ msgid "Greek, Greece"
#~ msgstr "Греческий, Греция"
msgid "English, Australia"
msgstr "Английский, Австралия"
#~ msgid "English, Australia"
#~ msgstr "Английский, Австралия"
msgid "English, Botswana"
msgstr "Английский, ботсвана"
#~ msgid "English, Botswana"
#~ msgstr "Английский, ботсвана"
msgid "English, Canada"
msgstr "Английский, Канада"
#~ msgid "English, Canada"
#~ msgstr "Английский, Канада"
msgid "English, United Kingdom"
msgstr "Английский, Великобритания"
#~ msgid "English, United Kingdom"
#~ msgstr "Английский, Великобритания"
msgid "English, Hong Kong SAR China"
msgstr "Английский, Гонконг"
#~ msgid "English, Hong Kong SAR China"
#~ msgstr "Английский, Гонконг"
msgid "English, Ireland"
msgstr "Английский, Ирландия"
#~ msgid "English, Ireland"
#~ msgstr "Английский, Ирландия"
msgid "English, India"
msgstr "Английский, Индия"
#~ msgid "English, India"
#~ msgstr "Английский, Индия"
msgid "English, Malta"
msgstr "Английский, Мальта"
#~ msgid "English, Malta"
#~ msgstr "Английский, Мальта"
msgid "English, New Zealand"
msgstr "Английский, Новая Зеландия"
#~ msgid "English, New Zealand"
#~ msgstr "Английский, Новая Зеландия"
msgid "English, Philippines"
msgstr "Английский, Филиппины"
#~ msgid "English, Philippines"
#~ msgstr "Английский, Филиппины"
msgid "English, Singapore"
msgstr "Английский, Сингапур"
#~ msgid "English, Singapore"
#~ msgstr "Английский, Сингапур"
msgid "English, U.S.A."
msgstr "Английский, США"
#~ msgid "English, U.S.A."
#~ msgstr "Английский, США"
msgid "English, Zimbabwe"
msgstr "Английский, Зимбабве"
#~ msgid "English, Zimbabwe"
#~ msgstr "Английский, Зимбабве"
msgid "Spanish, Argentina"
msgstr "Испанский, Аргентина"
#~ msgid "Spanish, Argentina"
#~ msgstr "Испанский, Аргентина"
msgid "Spanish, Bolivia"
msgstr "Испанский, Боливия"
#~ msgid "Spanish, Bolivia"
#~ msgstr "Испанский, Боливия"
msgid "Spanish, Chile"
msgstr "Испанский, Чили"
#~ msgid "Spanish, Chile"
#~ msgstr "Испанский, Чили"
msgid "Spanish, Colombia"
msgstr "Испанский, Колумбия"
#~ msgid "Spanish, Colombia"
#~ msgstr "Испанский, Колумбия"
msgid "Spanish, Costa Rica"
msgstr "Испанский, Коста-Рика"
#~ msgid "Spanish, Costa Rica"
#~ msgstr "Испанский, Коста-Рика"
msgid "Spanish, Dominican Republic"
msgstr "Испанский, Доминиканская республика"
#~ msgid "Spanish, Dominican Republic"
#~ msgstr "Испанский, Доминиканская республика"
msgid "Spanish, Ecuador"
msgstr "Испанский, Эквадор"
#~ msgid "Spanish, Ecuador"
#~ msgstr "Испанский, Эквадор"
msgid "Spanish, Spain"
msgstr "Испанский, Испания"
#~ msgid "Spanish, Spain"
#~ msgstr "Испанский, Испания"
msgid "Spanish, Guatemala"
msgstr "Испанский, Гватемала"
#~ msgid "Spanish, Guatemala"
#~ msgstr "Испанский, Гватемала"
msgid "Spanish, Honduras"
msgstr "Испанский, Гондурас"
#~ msgid "Spanish, Honduras"
#~ msgstr "Испанский, Гондурас"
msgid "Spanish, Mexico"
msgstr "Испанский, Мексика"
#~ msgid "Spanish, Mexico"
#~ msgstr "Испанский, Мексика"
msgid "Spanish, Nicaragua"
msgstr "Испанский, Никарагуа"
#~ msgid "Spanish, Nicaragua"
#~ msgstr "Испанский, Никарагуа"
msgid "Spanish, Panama"
msgstr "Испанский, Панама"
#~ msgid "Spanish, Panama"
#~ msgstr "Испанский, Панама"
msgid "Spanish, Peru"
msgstr "Испанский, Перу"
#~ msgid "Spanish, Peru"
#~ msgstr "Испанский, Перу"
msgid "Spanish, Puerto Rico"
msgstr "Испанский, Пуэрто-Рико"
#~ msgid "Spanish, Puerto Rico"
#~ msgstr "Испанский, Пуэрто-Рико"
msgid "Spanish, Paraguay"
msgstr "Испанский, Парагвай"
#~ msgid "Spanish, Paraguay"
#~ msgstr "Испанский, Парагвай"
msgid "Spanish, El Salvador"
msgstr "Испанский, Сальвадор"
#~ msgid "Spanish, El Salvador"
#~ msgstr "Испанский, Сальвадор"
msgid "Spanish, U.S.A."
msgstr "Испанский, США"
#~ msgid "Spanish, U.S.A."
#~ msgstr "Испанский, США"
msgid "Spanish, Uruguay"
msgstr "Испанский, Уругвай"
#~ msgid "Spanish, Uruguay"
#~ msgstr "Испанский, Уругвай"
msgid "Spanish, Venezuela"
msgstr "Испанский, Венесуэла"
#~ msgid "Spanish, Venezuela"
#~ msgstr "Испанский, Венесуэла"
msgid "Estonian, Estonia"
msgstr "Эстонский, Эстония"
#~ msgid "Estonian, Estonia"
#~ msgstr "Эстонский, Эстония"
msgid "Finnish, Finland"
msgstr "Финский, Финляндия"
#~ msgid "Finnish, Finland"
#~ msgstr "Финский, Финляндия"
msgid "French, Belgium"
msgstr "Французский, Бельгия"
#~ msgid "French, Belgium"
#~ msgstr "Французский, Бельгия"
msgid "French, Canada"
msgstr "Французский, Канада"
#~ msgid "French, Canada"
#~ msgstr "Французский, Канада"
msgid "French, Switzerland"
msgstr "Французский, Швейцария"
#~ msgid "French, Switzerland"
#~ msgstr "Французский, Швейцария"
msgid "French, France"
msgstr "Французский, Франция"
#~ msgid "French, France"
#~ msgstr "Французский, Франция"
msgid "French, Luxembourg"
msgstr "Французский, Люксембург"
#~ msgid "French, Luxembourg"
#~ msgstr "Французский, Люксембург"
msgid "Gujarati, India"
msgstr "Гуджаратский, Индия"
#~ msgid "Gujarati, India"
#~ msgstr "Гуджаратский, Индия"
msgid "Hebrew, Israel"
msgstr "Иврит, Израиль"
#~ msgid "Hebrew, Israel"
#~ msgstr "Иврит, Израиль"
msgid "Hindi, India"
msgstr "Хинди, Индия"
#~ msgid "Hindi, India"
#~ msgstr "Хинди, Индия"
msgid "Croatian, Croatia"
msgstr "Хорватский, Хорватия"
#~ msgid "Croatian, Croatia"
#~ msgstr "Хорватский, Хорватия"
msgid "Hungarian, Hungary"
msgstr "Венгерский, Венгрия"
#~ msgid "Hungarian, Hungary"
#~ msgstr "Венгерский, Венгрия"
msgid "Armenian, Armenia"
msgstr "Армянский, Армения"
#~ msgid "Armenian, Armenia"
#~ msgstr "Армянский, Армения"
msgid "Indonesian, Indonesia"
msgstr "Индонезийский, Индонезия"
#~ msgid "Indonesian, Indonesia"
#~ msgstr "Индонезийский, Индонезия"
msgid "Icelandic, Iceland"
msgstr "Исландский, Исландия"
#~ msgid "Icelandic, Iceland"
#~ msgstr "Исландский, Исландия"
msgid "Italian, Switzerla"
msgstr "Итальянский, Швейцария"
#~ msgid "Italian, Switzerla"
#~ msgstr "Итальянский, Швейцария"
msgid "Italian, Italy"
msgstr "Итальянский, Италия"
#~ msgid "Italian, Italy"
#~ msgstr "Итальянский, Италия"
msgid "Japanese, Japan"
msgstr "Японский, Япония"
#~ msgid "Japanese, Japan"
#~ msgstr "Японский, Япония"
msgid "Georgian, Georgia"
msgstr "Грузинский, Грузия"
#~ msgid "Georgian, Georgia"
#~ msgstr "Грузинский, Грузия"
msgid "Kazakh, Kazakhstan"
msgstr "Казахский, Казахстан"
#~ msgid "Kazakh, Kazakhstan"
#~ msgstr "Казахский, Казахстан"
msgid "Kannada, India"
msgstr "Каннада, Индия"
#~ msgid "Kannada, India"
#~ msgstr "Каннада, Индия"
msgid "Korean, Korea"
msgstr "Корейский, Корея"
#~ msgid "Korean, Korea"
#~ msgstr "Корейский, Корея"
msgid "Kashmiri, India"
msgstr "Кашмирский, Индия"
#~ msgid "Kashmiri, India"
#~ msgstr "Кашмирский, Индия"
msgid "Kurdish, Turkey"
msgstr "Курдский, Турция"
#~ msgid "Kurdish, Turkey"
#~ msgstr "Курдский, Турция"
msgid "Kurdish (Sorani), Turkey"
msgstr "Курдский (Сорани), Турция"
#~ msgid "Kurdish (Sorani), Turkey"
#~ msgstr "Курдский (Сорани), Турция"
msgid "Kirghiz, Kyrgyzstan"
msgstr "Киргизский, Кыргызстан"
#~ msgid "Kirghiz, Kyrgyzstan"
#~ msgstr "Киргизский, Кыргызстан"
msgid "Lithuanian, Lithuania"
msgstr "Литовский, Литва"
#~ msgid "Lithuanian, Lithuania"
#~ msgstr "Литовский, Литва"
msgid "Latvian, Latvia"
msgstr "Латышский, Латвия"
#~ msgid "Latvian, Latvia"
#~ msgstr "Латышский, Латвия"
msgid "Macedonian, Macedonia"
msgstr "Македонский, Северная Македония"
#~ msgid "Macedonian, Macedonia"
#~ msgstr "Македонский, Северная Македония"
msgid "Malayalam, India"
msgstr "Малаялам, Индия"
#~ msgid "Malayalam, India"
#~ msgstr "Малаялам, Индия"
msgid "Marathi, India"
msgstr "Маратхи, Индия"
#~ msgid "Marathi, India"
#~ msgstr "Маратхи, Индия"
msgid "Malay, Malaysia"
msgstr "Малайский, Малайзия"
#~ msgid "Malay, Malaysia"
#~ msgstr "Малайский, Малайзия"
msgid "Maltese, Malta"
msgstr "Мальтийский, Мальта"
#~ msgid "Maltese, Malta"
#~ msgstr "Мальтийский, Мальта"
msgid "Bokmal, Norway"
msgstr "Букмол, Норвегия"
#~ msgid "Bokmal, Norway"
#~ msgstr "Букмол, Норвегия"
msgid "Dutch, Belgium"
msgstr "Нидерландский, Бельгия"
#~ msgid "Dutch, Belgium"
#~ msgstr "Нидерландский, Бельгия"
msgid "Dutch, Netherlands"
msgstr "Нидерландский, Нидерланды"
#~ msgid "Dutch, Netherlands"
#~ msgstr "Нидерландский, Нидерланды"
msgid "Nynorsk, Norway"
msgstr "Норвежский, Норвегия"
#~ msgid "Nynorsk, Norway"
#~ msgstr "Норвежский, Норвегия"
msgid "Oriya, India"
msgstr "Ория, Индия"
#~ msgid "Oriya, India"
#~ msgstr "Ория, Индия"
msgid "Punjabi, India"
msgstr "Панджаби, Индия"
#~ msgid "Punjabi, India"
#~ msgstr "Панджаби, Индия"
msgid "Polish, Poland"
msgstr "Польский, Польша"
#~ msgid "Polish, Poland"
#~ msgstr "Польский, Польша"
msgid "Portuguese, Brazil"
msgstr "Португальский, Бразилия"
#~ msgid "Portuguese, Brazil"
#~ msgstr "Португальский, Бразилия"
msgid "Portuguese, Portugal"
msgstr "Португальский, Португалия"
#~ msgid "Portuguese, Portugal"
#~ msgstr "Португальский, Португалия"
msgid "Romanian, Romania"
msgstr "Румынский, Румыния"
#~ msgid "Romanian, Romania"
#~ msgstr "Румынский, Румыния"
msgid "Russian, Russia"
msgstr "Русский, Россия"
#~ msgid "Russian, Russia"
#~ msgstr "Русский, Россия"
msgid "Russian, Ukraine"
msgstr "Русский, Украина"
#~ msgid "Russian, Ukraine"
#~ msgstr "Русский, Украина"
msgid "Sanskrit, India"
msgstr "Санскрит, Индия"
#~ msgid "Sanskrit, India"
#~ msgstr "Санскрит, Индия"
msgid "Slovak, Slovakia"
msgstr "Словацкий, Словакия"
#~ msgid "Slovak, Slovakia"
#~ msgstr "Словацкий, Словакия"
msgid "Slovenian, Slovenia"
msgstr "Словенский, Словения"
#~ msgid "Slovenian, Slovenia"
#~ msgstr "Словенский, Словения"
msgid "Albanian, Albania"
msgstr "Албанский, Албания"
#~ msgid "Albanian, Albania"
#~ msgstr "Албанский, Албания"
msgid "Serbian, Montenegro"
msgstr "Сербский, Черногория"
#~ msgid "Serbian, Montenegro"
#~ msgstr "Сербский, Черногория"
msgid "Serbian, Montenegro (Latin)"
msgstr "Сербский, Черногория"
#~ msgid "Serbian, Montenegro (Latin)"
#~ msgstr "Сербский, Черногория"
msgid "Serbian, Serbia"
msgstr "Сербский, Сербия"
#~ msgid "Serbian, Serbia"
#~ msgstr "Сербский, Сербия"
msgid "Serbian, Serbia (Latin)"
msgstr "Сербский, Сербия"
#~ msgid "Serbian, Serbia (Latin)"
#~ msgstr "Сербский, Сербия"
msgid "Swedish, Sweden"
msgstr "Шведский, Швеция"
#~ msgid "Swedish, Sweden"
#~ msgstr "Шведский, Швеция"
msgid "Tamil, India"
msgstr "Тамильский, Индия"
#~ msgid "Tamil, India"
#~ msgstr "Тамильский, Индия"
msgid "Telugu, India"
msgstr "Тулугу, Индия"
#~ msgid "Telugu, India"
#~ msgstr "Тулугу, Индия"
msgid "Thai, Thailand"
msgstr "Тайский, Тайланд"
#~ msgid "Thai, Thailand"
#~ msgstr "Тайский, Тайланд"
msgid "Turkish, Turkey"
msgstr "Турецкий, Турция"
#~ msgid "Turkish, Turkey"
#~ msgstr "Турецкий, Турция"
msgid "Ukrainian, Ukraine"
msgstr "Украинский, Украина"
#~ msgid "Ukrainian, Ukraine"
#~ msgstr "Украинский, Украина"
msgid "Vietnamese, Vietnam"
msgstr "Вьетнамский, Вьетнам"
#~ msgid "Vietnamese, Vietnam"
#~ msgstr "Вьетнамский, Вьетнам"
msgid "Simplified Chinese, China"
msgstr "Упрощённый Китайский, Китай"
#~ msgid "Simplified Chinese, China"
#~ msgstr "Упрощённый Китайский, Китай"
msgid "Traditional Chinese, Hong Kong SAR China"
msgstr "Традиционный Китайский, Гонконг"
#~ msgid "Traditional Chinese, Hong Kong SAR China"
#~ msgstr "Традиционный Китайский, Гонконг"
msgid "Chinese, Singapore"
msgstr "Китайский, Сингапур"
#~ msgid "Chinese, Singapore"
#~ msgstr "Китайский, Сингапур"
msgid "Traditional Chinese, Taiwan"
msgstr "Традиционный Китайский, Тайвань"
#~ msgid "Traditional Chinese, Taiwan"
#~ msgstr "Традиционный Китайский, Тайвань"

Loading…
Cancel
Save