void COsdLangSetup::showSetup() { CMenuWidget *osdl_setup = new CMenuWidget(LOCALE_LANGUAGESETUP_HEAD, NEUTRINO_ICON_LANGUAGE, width); osdl_setup->addItem(GenericMenuSeparator); osdl_setup->addItem(GenericMenuBack); osdl_setup->addItem(GenericMenuSeparatorLine); //search available languages.... struct dirent **namelist; int n; // printf("scanning locale dir now....(perhaps)\n"); const char *pfad[] = {DATADIR "/neutrino/locale","/var/tuxbox/config/locale"}; for(int p = 0;p < 2;p++) { n = scandir(pfad[p], &namelist, 0, alphasort); if(n < 0) { perror("loading locales: scandir"); } else { for(int count=0;count<n;count++) { char * locale = strdup(namelist[count]->d_name); char * pos = strstr(locale, ".locale"); if(pos != NULL) { *pos = '\0'; CMenuOptionLanguageChooser* oj = new CMenuOptionLanguageChooser((char*)locale, new COsdLangNotifier()); oj->addOption(locale); osdl_setup->addItem( oj ); } else free(locale); free(namelist[count]); } free(namelist); } } osdl_setup->exec(NULL, ""); osdl_setup->hide(); delete osdl_setup; }
//shows locale setup for language selection void COsdLangSetup::showLanguageSetup(CMenuWidget *osdl_setup) { struct dirent **namelist; int n; // printf("scanning locale dir now....(perhaps)\n"); char *pfad[] = {(char *) DATADIR "/neutrino/locale",(char *) "/var/tuxbox/config/locale"}; osdl_setup->addIntroItems(); for (int p = 0; p < 2; p++) { n = scandir(pfad[p], &namelist, 0, alphasort); if (n < 0) { perror("loading locales: scandir"); } else { for (int count=0; count<n; count++) { char * locale = strdup(namelist[count]->d_name); char * pos = strstr(locale, ".locale"); if (pos != NULL) { char iname[50]; *pos = '\0'; sprintf(iname, "%s", locale); CMenuOptionLanguageChooser* oj = new CMenuOptionLanguageChooser((char*)locale, this, iname); oj->addOption(locale); osdl_setup->addItem( oj ); } else free(locale); free(namelist[count]); } free(namelist); } } }