Bert Frees | 84f9dbf | 2017-11-12 22:38:01 +0100 | [diff] [blame] | 1 | package main |
| 2 | |
| 3 | import ( |
| 4 | "C" |
| 5 | "golang.org/x/text/language" |
| 6 | "golang.org/x/text/language/display" |
| 7 | ) |
| 8 | |
| 9 | //export DisplayLanguage |
| 10 | func 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 Frees | 708c67d | 2021-02-15 17:46:11 +0100 | [diff] [blame^] | 39 | case "kmr": |
| 40 | ret = "Northern Kurdish"; |
| 41 | break; |
Bert Frees | 84f9dbf | 2017-11-12 22:38:01 +0100 | [diff] [blame] | 42 | case "mun": |
| 43 | ret = "Munda"; |
| 44 | break; |
| 45 | case "no": |
| 46 | ret = "Norwegian"; |
| 47 | break; |
| 48 | case "or": |
| 49 | ret = "Oriya"; |
| 50 | break; |
Bert Frees | 74f6e0d | 2021-04-26 10:31:56 +0200 | [diff] [blame] | 51 | case "sah": |
| 52 | ret = "Yakut"; // not "Sakha" |
| 53 | break; |
Bert Frees | 84f9dbf | 2017-11-12 22:38:01 +0100 | [diff] [blame] | 54 | default: |
| 55 | var namer display.Namer |
| 56 | namer = display.English.Languages() |
| 57 | ret = namer.Name(language.MustParse(lang)) |
| 58 | } |
| 59 | return C.CString(ret) |
| 60 | } |
| 61 | |
| 62 | //export NativeLanguage |
| 63 | func NativeLanguage(lang_c *C.char) *C.char { |
| 64 | var lang string |
| 65 | var ret string |
| 66 | var namer display.Namer |
| 67 | lang = C.GoString(lang_c) |
| 68 | namer = display.Self |
| 69 | ret = namer.Name(language.MustParse(lang)) |
| 70 | return C.CString(ret) |
| 71 | } |
| 72 | |
| 73 | // main function required for interfacing with C |
| 74 | func main() {} |