Merge remote-tracking branch 'origin/6.1'
[scilab.git] / scilab / modules / localization / tests / unit_tests / gettext.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 //<-- CLI SHELL MODE -->
9 //<-- NO CHECK REF -->
10 //
11 //===============================
12 // unit tests gettext()
13 //===============================
14
15 // Void call
16 if execstr('gettext()','errcatch')==0 then pause,end
17
18 // one input argument
19 str1 = "plop";
20 assert_checktrue(execstr('gettext(str1)','errcatch')==0);
21
22 // three inputs arguments
23 str1 = "plop"; str2 = "plip"; str3 = "plup";
24 assert_checkfalse(execstr('gettext(str1, str2, str3)','errcatch')==0);
25
26 // Try to translate from en_US to en_US to a string which doesn't exist
27 lang = "en_US"; setlanguage(lang);
28 msg = "Localization does not exist";
29 assert_checkequal(gettext(msg), msg);
30
31 // Try to translate from en_US to fr_FR a string which doesn't exist
32 lang = "fr_FR"; setlanguage(lang);
33 msg = "Localization does not exist";
34 assert_checkequal(gettext(msg), msg);
35
36 msg = "Startup execution:";
37
38 lang = "fr_FR"; setlanguage(lang);
39 assert_checkequal(gettext(msg), "Initialisation :");
40 lang = "fr"; setlanguage(lang);
41 assert_checkequal(gettext(msg), "Initialisation :");
42 lang = "en"; setlanguage(lang);
43 assert_checkequal(gettext(msg), msg);
44 lang = "en_US"; setlanguage(lang);
45 assert_checkequal(gettext(msg), msg);
46
47 addlocalizationdomain("tbx", "SCI/modules/localization/tests/unit_tests/locale");
48 setlanguage("fr_FR");
49 assert_checkequal(gettext("%s: No more memory.\n"), "%s : Plus de mémoire disponible.\n");
50 assert_checkequal(gettext("tbx", "%s: No more memory.\n"), "%s : Overwrite Scilab translation.\n");
51 assert_checkequal(gettext("%s: something not in Scilab.\n"), "%s: something not in Scilab.\n");
52 assert_checkequal(gettext("tbx", "%s: something not in Scilab.\n"), "%s : it is true, that is not in Scilab.\n");
53
54 // ======================================================
55 // With a domain (formerly dgettext() < 5.5)
56 // ======================================================
57
58 // Try to translate from en_US to en_US to domain/string which doesn't exist
59 lang="en_US"; setlanguage(lang); domain="fake_domain"; msg="Localization does not exist";
60 if gettext(domain,msg) <> msg then pause, end
61
62 // Try to translate from en_US to fr_FR to a domain/string which doesn't exist
63 lang="fr_FR"; setlanguage(lang); domain="fake_domain"; msg="Localization does not exist";
64 if gettext(domain,msg) <> msg then pause, end
65
66
67 // Check if it is working with a good domain & good msgid
68 lang="fr_FR"; setlanguage(lang); domain="scilab"; msg="Startup execution:";
69 if gettext(domain,msg) <> "Initialisation :" then pause, end
70
71 // Check if it is working with a bad domain & good msgid
72 lang="fr_FR"; setlanguage(lang); domain="fake_domain"; msg="Startup execution:";
73 if gettext(domain,msg) == "Initialisation :" then pause, end
74
75 // Check if it is working with a good domain & good msgid and alias
76 lang="fr"; setlanguage(lang); domain="scilab"; msg="Startup execution:";
77 if gettext(domain,msg) <> "Initialisation :" then pause, end
78
79 // Check if it is working with a bad domain & good msgid and alias
80 lang="fr"; setlanguage(lang); domain="fake_domain"; msg="Startup execution:";
81 if gettext(domain,msg) == "Initialisation :" then pause, end
82
83
84 // Check if it is working with a good domain & good msgid
85 lang="en_US"; setlanguage(lang); domain="scilab"; msg="Startup execution:";
86 if gettext(domain,msg) <> msg then pause, end
87
88 // Check if it is working with a bad domain & good msgid
89 lang="en_US"; setlanguage(lang); domain="fake_domain"; msg="Startup execution:";
90 if gettext(domain,msg) <> msg then pause, end
91
92 // Check if it is working with a good domain & good msgid and alias
93 lang="en"; setlanguage(lang); domain="scilab"; msg="Startup execution:";
94 if gettext(domain,msg) <> msg then pause, end
95
96 // Check if it is working with a bad domain & good msgid and alias
97 lang="en"; setlanguage(lang); domain="fake_domain"; msg="Startup execution:";
98 if gettext(domain,msg) <> msg then pause, end
99
100 // @TODO :
101 // Add test to use other domain which are working (ie not fake_domain)