diff options
author | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2005-07-29 03:26:28 +0000 |
---|---|---|
committer | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2005-07-29 03:26:28 +0000 |
commit | e3f702e83a26468ee44f3f342a7a40a252f4603c (patch) | |
tree | 5ff76e9d11a9fdbdb493683d0f0840f46c67b6f8 /examples/example2.c | |
parent | cfaef1b6c9f33fbaa114628cf513d129bdff3c1c (diff) | |
download | librcc-e3f702e83a26468ee44f3f342a7a40a252f4603c.tar.gz librcc-e3f702e83a26468ee44f3f342a7a40a252f4603c.tar.bz2 librcc-e3f702e83a26468ee44f3f342a7a40a252f4603c.tar.xz librcc-e3f702e83a26468ee44f3f342a7a40a252f4603c.zip |
Translation
- Language Translation using libtranslate is implemented
- Autoengine sets current charset (option)
Diffstat (limited to 'examples/example2.c')
-rw-r--r-- | examples/example2.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/examples/example2.c b/examples/example2.c new file mode 100644 index 0000000..cc4a3fa --- /dev/null +++ b/examples/example2.c @@ -0,0 +1,60 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <locale.h> + +#include <librcc.h> + + +int main(int argc, char *argv[]) { + rcc_language_id language_id, current_language_id, english_language_id; + rcc_string rccstring; + const char *language; + char buf[255]; + char *recoded; + + rcc_class classes[] = { + { "input", RCC_CLASS_STANDARD, NULL, NULL, "Input Encoding", 0 }, + { "output", RCC_CLASS_STANDARD, "LC_CTYPE", NULL, "Output Encoding", 0 }, + { NULL } + }; + + setlocale(LC_ALL, ""); + + rccInit(); + rccInitDefaultContext(NULL, 0, 0, classes, 0); + rccInitDb4(NULL, "example", 0); + rccSetOption(NULL, RCC_OPTION_TRANSLATE, 1); + +// rccExternalInit(); +// rccExternalFree(); + + current_language_id = rccGetCurrentLanguage(NULL); + english_language_id = rccGetLanguageByName(NULL, "en"); + if (argc>1) rccSetLanguageByName(NULL, argv[1]); + language_id = rccGetCurrentLanguage(NULL); + + language = rccGetCurrentLanguageName(NULL); + if (language) printf("Current Language: %s\n\n", language); + else printf("Unable Detect Language\n\n"); + + while (fgets(buf,255,stdin)) { + if (strlen(buf)<2) break; + + rccSetLanguage(NULL, language_id); + rccstring = rccFrom(NULL, 0, buf); + if (rccstring) { + rccSetLanguage(NULL, english_language_id); + recoded = rccTo(NULL, 1, rccstring); + if (recoded) { + printf(recoded); + free(recoded); + } else printf("Recoding from UTF-8 is failed\n"); + free(rccstring); + } else printf("Recoding to UTF-8 is failed\n"); + } + + rccFree(); + + return 0; +} |