00009 {
00010 rcc_language_id language_id, current_language_id, english_language_id;
00011 rcc_string rccstring;
00012 const char *language;
00013 char buf[255];
00014 char *recoded;
00015
00016 rcc_class classes[] = {
00017 { "input", RCC_CLASS_STANDARD, NULL, NULL, "Input Encoding", 0 },
00018 { "output", RCC_CLASS_TRANSLATE_LOCALE, "LC_CTYPE", NULL, "Output Encoding", 0 },
00019 { NULL }
00020 };
00021
00022 setlocale(LC_ALL, "");
00023
00024 rccInit();
00025 rccInitDefaultContext(NULL, 0, 0, classes, 0);
00026 rccInitDb4(NULL, "example", 0);
00027 rccSetOption(NULL, RCC_OPTION_TRANSLATE, RCC_OPTION_TRANSLATE_SKIP_PARRENT);
00028 rccSetOption(NULL, RCC_OPTION_AUTODETECT_LANGUAGE, 1);
00029
00030
00031
00032 current_language_id = rccGetCurrentLanguage(NULL);
00033 english_language_id = rccGetLanguageByName(NULL, "en");
00034 if (argc>1) rccSetLanguageByName(NULL, argv[1]);
00035 else rccSetOption(NULL, RCC_OPTION_AUTODETECT_LANGUAGE, 1);
00036 language_id = rccGetCurrentLanguage(NULL);
00037
00038 language = rccGetCurrentLanguageName(NULL);
00039 if (language) printf("Current Language: %s\n\n", language);
00040 else {
00041 printf("Unable Detect Language, using english\n\n");
00042 rccSetLanguageByName(NULL, "en");
00043 }
00044
00045 while (fgets(buf,255,stdin)) {
00046 if (strlen(buf)<2) break;
00047
00048 rccstring = rccFrom(NULL, 0, buf);
00049 if (rccstring) {
00050 recoded = rccTo(NULL, 1, rccstring);
00051 if (recoded) {
00052 printf(recoded);
00053 free(recoded);
00054 } else printf("Recoding from UTF-8 is failed\n");
00055 free(rccstring);
00056 } else printf("Recoding to UTF-8 is failed\n");
00057 }
00058
00059 rccFree();
00060
00061 return 0;
00062 }