blob: 62606aff821a1cf68336933d70778559bbbc71c5 [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;
Bert Frees708c67d2021-02-15 17:46:11 +010039 case "kmr":
40 ret = "Northern Kurdish";
41 break;
Bert Frees84f9dbf2017-11-12 22:38:01 +010042 case "mun":
43 ret = "Munda";
44 break;
45 case "no":
46 ret = "Norwegian";
47 break;
48 case "or":
49 ret = "Oriya";
50 break;
Bert Frees74f6e0d2021-04-26 10:31:56 +020051 case "sah":
52 ret = "Yakut"; // not "Sakha"
53 break;
Bert Frees062c67b2021-06-07 14:10:19 +020054 case "st":
55 ret = "Sesotho"; // South Africans say "Sesotho", not "Sotho" or "Southern Sotho"
56 break;
57 case "tn":
58 ret = "Setswana"; // South Africans say "Setswana", not "Tswana"
59 break;
60 case "xh":
61 ret = "isiXhosa"; // South Africans say "isiXhosa", not "Xhosa"
62 break;
Bert Freesf1622fd2021-08-30 11:23:40 +020063 case "ve":
64 ret = "Tshivenda"; // South Africans say "Tshivenda", not "Venda"
65 break;
Bert Frees062c67b2021-06-07 14:10:19 +020066 case "zu":
67 ret = "isiZulu"; // South Africans say "isiZulu", not "Zulu"
68 break;
Bert Frees84f9dbf2017-11-12 22:38:01 +010069 default:
70 var namer display.Namer
71 namer = display.English.Languages()
72 ret = namer.Name(language.MustParse(lang))
73 }
74 return C.CString(ret)
75}
76
77//export NativeLanguage
78func NativeLanguage(lang_c *C.char) *C.char {
79 var lang string
80 var ret string
81 var namer display.Namer
82 lang = C.GoString(lang_c)
83 namer = display.Self
84 ret = namer.Name(language.MustParse(lang))
85 return C.CString(ret)
86}
87
88// main function required for interfacing with C
89func main() {}