blob: e9d1859d4fa134e5f9263423e55a6d0bca452d1b [file] [log] [blame]
Bert Frees84f9dbf2017-11-12 22:38:01 +01001package main
2
3import (
Bert Frees062c67b2021-06-07 14:10:19 +02004 "C"
Bert Frees84f9dbf2017-11-12 22:38:01 +01005 "golang.org/x/text/language"
6 "golang.org/x/text/language/display"
7)
8
9//export DisplayLanguage
10func DisplayLanguage(lang_c *C.char) *C.char {
11 var lang string
12 var ret string
13 lang = C.GoString(lang_c)
14 switch (lang) {
15 case "bh":
16 ret = "Bihari";
17 break;
18 case "bn":
19 ret = "Bengali";
20 break;
21 case "ckb":
22 ret = "Kurdish";
23 break;
24 case "dra":
25 ret = "Dravidian";
26 break;
27 case "en-GB":
28 ret = "U.K. English";
29 break;
30 case "en-US":
31 ret = "U.S. English";
32 break;
33 case "eo-xsistemo":
34 ret = "Esperanto x-system";;
35 break;
36 case "gez":
37 ret = "Ethiopic";
38 break;
39 case "mun":
40 ret = "Munda";
41 break;
42 case "no":
43 ret = "Norwegian";
44 break;
45 case "or":
46 ret = "Oriya";
47 break;
Bert Frees74f6e0d2021-04-26 10:31:56 +020048 case "sah":
49 ret = "Yakut"; // not "Sakha"
50 break;
Bert Frees062c67b2021-06-07 14:10:19 +020051 case "st":
52 ret = "Sesotho"; // South Africans say "Sesotho", not "Sotho" or "Southern Sotho"
53 break;
54 case "tn":
55 ret = "Setswana"; // South Africans say "Setswana", not "Tswana"
56 break;
57 case "xh":
58 ret = "isiXhosa"; // South Africans say "isiXhosa", not "Xhosa"
59 break;
60 case "zu":
61 ret = "isiZulu"; // South Africans say "isiZulu", not "Zulu"
62 break;
Bert Frees84f9dbf2017-11-12 22:38:01 +010063 default:
64 var namer display.Namer
65 namer = display.English.Languages()
66 ret = namer.Name(language.MustParse(lang))
67 }
68 return C.CString(ret)
69}
70
71//export NativeLanguage
72func NativeLanguage(lang_c *C.char) *C.char {
73 var lang string
74 var ret string
75 var namer display.Namer
76 lang = C.GoString(lang_c)
77 namer = display.Self
78 ret = namer.Name(language.MustParse(lang))
79 return C.CString(ret)
80}
81
82// main function required for interfacing with C
83func main() {}