summaryrefslogtreecommitdiffstats
path: root/examples/example2.c
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@dside.dyndns.org>2005-07-29 03:26:28 +0000
committerSuren A. Chilingaryan <csa@dside.dyndns.org>2005-07-29 03:26:28 +0000
commite3f702e83a26468ee44f3f342a7a40a252f4603c (patch)
tree5ff76e9d11a9fdbdb493683d0f0840f46c67b6f8 /examples/example2.c
parentcfaef1b6c9f33fbaa114628cf513d129bdff3c1c (diff)
downloadlibrcc-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.c60
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;
+}