/rusxmms/librcc

To get this branch, use:
bzr branch http://suren.me/webbzr/rusxmms/librcc

« back to all changes in this revision

Viewing changes to examples/example2.c

  • Committer: Suren A. Chilingaryan
  • Date: 2005-07-29 03:26:28 UTC
  • Revision ID: Arch-1:ds@dside.dyndns.org--darksoft-2004%librcc--main--0.1--patch-23
Translation
    - Language Translation using libtranslate is implemented
    - Autoengine sets current charset (option)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include <stdlib.h>
 
3
#include <string.h>
 
4
#include <locale.h>
 
5
 
 
6
#include <librcc.h>
 
7
 
 
8
 
 
9
int main(int argc, char *argv[]) {
 
10
    rcc_language_id language_id, current_language_id, english_language_id;
 
11
    rcc_string rccstring;
 
12
    const char *language;
 
13
    char buf[255];
 
14
    char *recoded;
 
15
    
 
16
    rcc_class classes[] = {
 
17
        { "input", RCC_CLASS_STANDARD, NULL, NULL, "Input Encoding", 0 },
 
18
        { "output", RCC_CLASS_STANDARD, "LC_CTYPE", NULL, "Output Encoding", 0 },
 
19
        { NULL }
 
20
    };
 
21
 
 
22
    setlocale(LC_ALL, "");
 
23
    
 
24
    rccInit();
 
25
    rccInitDefaultContext(NULL, 0, 0, classes, 0);
 
26
    rccInitDb4(NULL, "example", 0);
 
27
    rccSetOption(NULL, RCC_OPTION_TRANSLATE, 1);
 
28
 
 
29
//    rccExternalInit();
 
30
//    rccExternalFree();
 
31
 
 
32
    current_language_id = rccGetCurrentLanguage(NULL);
 
33
    english_language_id = rccGetLanguageByName(NULL, "en");
 
34
    if (argc>1) rccSetLanguageByName(NULL, argv[1]);
 
35
    language_id = rccGetCurrentLanguage(NULL);
 
36
 
 
37
    language = rccGetCurrentLanguageName(NULL);
 
38
    if (language) printf("Current Language: %s\n\n", language);
 
39
    else printf("Unable Detect Language\n\n");
 
40
    
 
41
    while (fgets(buf,255,stdin)) {
 
42
        if (strlen(buf)<2) break;
 
43
        
 
44
        rccSetLanguage(NULL, language_id);
 
45
        rccstring = rccFrom(NULL, 0, buf);
 
46
        if (rccstring) {
 
47
            rccSetLanguage(NULL, english_language_id);
 
48
            recoded = rccTo(NULL, 1, rccstring);
 
49
            if (recoded) {
 
50
                printf(recoded);
 
51
                free(recoded);
 
52
            } else printf("Recoding from UTF-8 is failed\n");
 
53
            free(rccstring);
 
54
        } else printf("Recoding to UTF-8 is failed\n");
 
55
    }
 
56
 
 
57
    rccFree();
 
58
 
 
59
    return 0;
 
60
}