source: titan/titan/language.h @ 39538

Last change on this file since 39538 was 37561, checked in by obi, 8 years ago

fix lang

File size: 2.1 KB
Line 
1#ifndef LANGUAGE_H
2#define LANGUAGE_H
3
4//flag 0: with reboot
5//flag 1: without reboot
6//flag 2: reload skin
7int screenlanguage(int flag)
8{
9        int rcret = 0, change = 0, reloadskin = 0;
10        struct skin* language = getscreen("language");
11        struct skin* listbox = getscreennode(language, "listbox");
12
13        if(listbox == NULL || language == NULL)
14        {
15                err("NULL detect");
16                return 1;
17        }
18
19        setlistboxselection(listbox, getconfig("lang", NULL));
20
21        drawscreen(language, 0, 0);
22        addscreenrc(language, listbox);
23
24        while(1)
25        {
26                rcret = waitrc(language, 0, 0);
27
28                if (rcret == getrcconfigint("rcexit", NULL)) break;
29
30                if(rcret == getrcconfigint("rcok", NULL) || rcret == getrcconfigint("rcgreen", NULL))
31                {
32                        if(listbox->select != NULL && ostrcmp(listbox->select->name, getconfig("lang", NULL)) != 0)
33                        {
34                                if(ostrcmp(listbox->select->name, "po/en") == 0)
35                                {
36                                        setlang(listbox->select->name);
37                                        initlocale(getconfig("localepath", NULL));
38                                        addconfig("lang", listbox->select->name);
39                                        change = 1;
40
41                                }
42                                else if(setlang(listbox->select->name) == 0 && initlocale(getconfig("localepath", NULL)) == 0)
43                                {
44                                        addconfig("lang", listbox->select->name);
45                                        change = 1;
46                                }
47                                else
48                                {
49                                        if(checkbox("UFS910") == 1 || checkbox("UFS922") == 1 || checkbox("UFC960") == 1)
50                                        {
51                                                char* file = ostrcat("/mnt/swapextensions/usr/local/share/titan/", listbox->select->name, 0, 0);
52                                                printf("file=%s\n",file);
53                                                if(!file_exist(file))
54                                                        textbox(_("Message"), _("Install language Package !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 10, 0);
55
56                                                free(file), file = NULL;
57                                        }
58                                }
59
60                                if(flag == 0 && change == 1)
61                                {
62                                        textbox(_("Message"), _("Change language needs reboot"), NULL, 0, NULL, 0, NULL, 0, NULL, 0, 1000, 200, 5, 0);
63                                        resettvpic();
64                                        oshutdown(3, 1);
65                                }
66
67                                if(flag == 2 && change == 1)
68                                        reloadskin = 1;
69                        }
70                        break;
71                }
72        }
73
74        delownerrc(language);
75        clearscreen(language);
76
77        if(reloadskin == 1)
78        {
79                status.skinerr = NULL;
80                freescreen();
81                if(createstartscreen() != 0) return 2;
82                readscreen(getconfig("skinfile", NULL), 0, 0);
83        }
84       
85        return 0;
86}
87
88#endif
Note: See TracBrowser for help on using the repository browser.