aboutsummaryrefslogtreecommitdiffstats
path: root/community/gnome-desktop/hardcode-musl-locales.patch
blob: 3583f57c46b47bd1bffd9d0ff44c4a33817cb39d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Upstream: No, not applicable. musl should improve locale support in future releases
Source: Rasmus Thomsen <oss@cogitri.dev>

musl doesn't have a 'locale'  command nor does it have some directory that contains
all languages, so we just make an array with all glibc langs so users can set different
languages for their desktop anyway.

diff --git a/libgnome-desktop/gnome-languages.c b/libgnome-desktop/gnome-languages.c
index e27ccbd..f197c74 100644
--- a/libgnome-desktop/gnome-languages.c
+++ b/libgnome-desktop/gnome-languages.c
@@ -485,6 +485,100 @@ select_dirs (const struct dirent *dirent)
         return result;
 }
 
+#if !defined(__GLIBC__)
+static gboolean
+collect_locales_builtin (void)
+{
+       char locale_arr[][13] = {
+			"bho_IN.UTF-8", "om_KE.UTF-8", "ia_FR.UTF-8", "nl_BE.UTF-8",
+			"ur_PK.UTF-8", "en_BW.UTF-8", "he_IL.UTF-8", "es_SV.UTF-8",
+			"hak_TW.UTF-8", "anp_IN.UTF-8", "sid_ET.UTF-8", "niu_NU.UTF-8",
+			"tr_CY.UTF-8", "tg_TJ.UTF-8", "en_AU.UTF-8", "ku_TR.UTF-8",
+			"en_SG.UTF-8", "nhn_MX.UTF-8", "hif_FJ.UTF-8", "es_CO.UTF-8",
+			"el_CY.UTF-8", "tpi_PG.UTF-8", "so_SO.UTF-8", "tig_ER.UTF-8",
+			"gez_ET.UTF-8", "ks_IN.UTF-8", "lb_LU.UTF-8", "chr_US.UTF-8",
+			"sm_WS.UTF-8", "de_BE.UTF-8", "kk_KZ.UTF-8", "ro_RO.UTF-8",
+			"es_NI.UTF-8", "yuw_PG.UTF-8", "az_AZ.UTF-8", "ayc_PE.UTF-8",
+			"es_GT.UTF-8", "fy_DE.UTF-8", "de_LU.UTF-8", "my_MM.UTF-8",
+			"ar_QA.UTF-8", "sk_SK.UTF-8", "so_KE.UTF-8", "aa_ET.UTF-8",
+			"lzh_TW.UTF-8", "ca_AD.UTF-8", "wa_BE.UTF-8", "en_GB.UTF-8",
+			"en_IL.UTF-8", "hu_HU.UTF-8", "dz_BT.UTF-8", "si_LK.UTF-8",
+			"es_MX.UTF-8", "ber_MA.UTF-8", "yi_US.UTF-8", "de_AT.UTF-8",
+			"to_TO.UTF-8", "et_EE.UTF-8", "cv_RU.UTF-8", "es_DO.UTF-8",
+			"ky_KG.UTF-8", "uk_UA.UTF-8", "miq_NI.UTF-8", "ar_LY.UTF-8",
+			"raj_IN.UTF-8", "C.UTF-8", "rw_RW.UTF-8", "sq_AL.UTF-8",
+			"tn_ZA.UTF-8","unm_US.UTF-8","ug_CN.UTF-8", "tcy_IN.UTF-8",
+			"en_ZW.UTF-8", "nso_ZA.UTF-8", "en_PH.UTF-8", "de_IT.UTF-8",
+			"sw_TZ.UTF-8", "bho_NP.UTF-8", "kok_IN.UTF-8", "bn_BD.UTF-8",
+			"bs_BA.UTF-8", "ar_SY.UTF-8", "gv_GB.UTF-8", "es_PY.UTF-8",
+			"ar_SS.UTF-8", "fr_FR.UTF-8", "ff_SN.UTF-8", "ce_RU.UTF-8",
+			"li_NL.UTF-8", "ar_TN.UTF-8", "pt_PT.UTF-8", "pap_AW.UTF-8",
+			"wo_SN.UTF-8", "th_TH.UTF-8", "quz_PE.UTF-8", "ar_AE.UTF-8",
+			"pt_BR.UTF-8", "bi_VU.UTF-8", "ve_ZA.UTF-8", "mn_MN.UTF-8",
+			"es_BO.UTF-8", "hsb_DE.UTF-8", "kab_DZ.UTF-8", "en_ZM.UTF-8",
+			"mfe_MU.UTF-8", "ca_IT.UTF-8", "bem_ZM.UTF-8", "gd_GB.UTF-8",
+			"hr_HR.UTF-8", "crh_UA.UTF-8", "en_HK.UTF-8", "es_HN.UTF-8",
+			"mr_IN.UTF-8", "ar_IQ.UTF-8", "es_CR.UTF-8", "ti_ER.UTF-8",
+			"mhr_RU.UTF-8", "es_CL.UTF-8", "brx_IN.UTF-8", "cmn_TW.UTF-8",
+			"sgs_LT.UTF-8", "el_GR.UTF-8", "en_US.UTF-8", "cy_GB.UTF-8",
+			"ln_CD.UTF-8", "en_IE.UTF-8", "se_NO.UTF-8", "zh_HK.UTF-8",
+			"oc_FR.UTF-8", "lv_LV.UTF-8", "ga_IE.UTF-8", "dv_MV.UTF-8",
+			"hne_IN.UTF-8", "ar_DZ.UTF-8", "kl_GL.UTF-8", "csb_PL.UTF-8",
+			"the_NP.UTF-8", "sah_RU.UTF-8", "hi_IN.UTF-8", "nds_DE.UTF-8",
+			"pl_PL.UTF-8", "es_CU.UTF-8", "aa_DJ.UTF-8", "hy_AM.UTF-8",
+			"bo_CN.UTF-8", "de_CH.UTF-8", "ar_EG.UTF-8", "de_DE.UTF-8",
+			"nl_AW.UTF-8", "en_SC.UTF-8", "ar_YE.UTF-8", "ar_KW.UTF-8",
+			"fi_FI.UTF-8", "nb_NO.UTF-8", "fa_IR.UTF-8", "mag_IN.UTF-8",
+			"dsb_DE.UTF-8", "da_DK.UTF-8", "pa_IN.UTF-8", "ar_SD.UTF-8",
+			"ik_CA.UTF-8", "sr_RS.UTF-8", "it_IT.UTF-8", "sr_ME.UTF-8",
+			"sw_KE.UTF-8", "bhb_IN.UTF-8", "fil_PH.UTF-8", "ar_BH.UTF-8",
+			"en_AG.UTF-8", "mjw_IN.UTF-8", "ht_HT.UTF-8", "es_ES.UTF-8",
+			"mni_IN.UTF-8", "es_PR.UTF-8", "bg_BG.UTF-8", "fr_CA.UTF-8",
+			"ne_NP.UTF-8", "iu_CA.UTF-8", "nl_NL.UTF-8", "szl_PL.UTF-8",
+			"kw_GB.UTF-8", "nds_NL.UTF-8", "so_ET.UTF-8", "shs_CA.UTF-8",
+			"sv_FI.UTF-8", "gez_ER.UTF-8", "sa_IN.UTF-8", "ko_KR.UTF-8",
+			"lo_LA.UTF-8", "ta_IN.UTF-8", "doi_IN.UTF-8", "en_DK.UTF-8",
+			"lg_UG.UTF-8", "en_CA.UTF-8", "ber_DZ.UTF-8", "tr_TR.UTF-8",
+			"nr_ZA.UTF-8", "an_ES.UTF-8", "mt_MT.UTF-8", "ca_ES.UTF-8",
+			"wal_ET.UTF-8", "es_VE.UTF-8", "es_US.UTF-8", "ka_GE.UTF-8",
+			"ast_ES.UTF-8", "ur_IN.UTF-8", "en_NG.UTF-8", "ar_JO.UTF-8",
+			"shn_MM.UTF-8", "tk_TM.UTF-8", "st_ZA.UTF-8", "es_UY.UTF-8",
+			"lt_LT.UTF-8", "ak_GH.UTF-8", "sv_SE.UTF-8", "aa_ER.UTF-8",
+			"yo_NG.UTF-8", "id_ID.UTF-8", "be_BY.UTF-8", "uz_UZ.UTF-8",
+			"fo_FO.UTF-8", "es_PA.UTF-8", "nan_TW.UTF-8", "om_ET.UTF-8",
+			"lij_IT.UTF-8", "ar_SA.UTF-8", "am_ET.UTF-8", "fr_LU.UTF-8",
+			"tt_RU.UTF-8", "sl_SI.UTF-8", "zu_ZA.UTF-8", "sat_IN.UTF-8",
+			"ml_IN.UTF-8", "fr_BE.UTF-8", "zh_SG.UTF-8", "niu_NZ.UTF-8",
+			"ta_LK.UTF-8", "gl_ES.UTF-8", "eu_ES.UTF-8", "en_ZA.UTF-8",
+			"ja_JP.UTF-8", "vi_VN.UTF-8", "ru_UA.UTF-8", "so_DJ.UTF-8",
+			"it_CH.UTF-8", "i18n.UTF-8", "bo_IN.UTF-8", "af_ZA.UTF-8",
+			"ar_OM.UTF-8", "xh_ZA.UTF-8", "ms_MY.UTF-8", "wae_CH.UTF-8",
+			"byn_ER.UTF-8", "es_PE.UTF-8", "pa_PK.UTF-8","en_IN.UTF-8",
+			"li_BE.UTF-8", "fr_CH.UTF-8", "bn_IN.UTF-8", "yue_HK.UTF-8",
+			"mai_IN.UTF-8", "zh_CN.UTF-8", "ti_ET.UTF-8", "br_FR.UTF-8",
+			"km_KH.UTF-8", "kn_IN.UTF-8", "sc_IT.UTF-8", "sq_MK.UTF-8",
+			"mai_NP.UTF-8", "fy_NL.UTF-8", "fur_IT.UTF-8", "ar_IN.UTF-8",
+			"mk_MK.UTF-8", "or_IN.UTF-8", "en_NZ.UTF-8", "pap_CW.UTF-8",
+			"te_IN.UTF-8", "ca_FR.UTF-8", "agr_PE.UTF-8", "ig_NG.UTF-8",
+			"is_IS.UTF-8", "ps_AF.UTF-8", "de_LI.UTF-8", "ar_MA.UTF-8",
+			"mi_NZ.UTF-8", "gu_IN.UTF-8", "nn_NO.UTF-8", "sd_IN.UTF-8",
+			"tl_PH.UTF-8", "mg_MG.UTF-8", "os_RU.UTF-8", "es_EC.UTF-8",
+			"as_IN.UTF-8", "es_AR.UTF-8", "az_IR.UTF-8", "ss_ZA.UTF-8",
+			"ha_NG.UTF-8", "ru_RU.UTF-8", "ts_ZA.UTF-8", "ar_LB.UTF-8",
+			"zh_TW.UTF-8", "cs_CZ.UTF-8",
+       };
+
+	gboolean found_locales = TRUE;
+
+	int i;
+	for (i = 0; i < sizeof(locale_arr)/sizeof(locale_arr[0]); i++) {
+		add_locale(locale_arr[i], TRUE);
+	}
+
+	return found_locales;
+}
+#endif
+
 static gboolean
 collect_locales_from_directory (void)
 {
@@ -582,13 +676,20 @@ collect_locales (void)
 
         found_dir_locales = collect_locales_from_directory ();
 
+#if defined(__GLIBC)
         if (!(found_localebin_locales || found_dir_locales)) {
+#else
+        gboolean found_locales_builtin = FALSE;
+        found_locales_builtin = collect_locales_builtin ();
+
+        if (!(found_locales_builtin || found_localebin_locales || found_dir_locales)) {
+#endif
                 g_warning ("Could not read list of available locales from libc, "
                            "guessing possible locales from available translations, "
                            "but list may be incomplete!");
         }
 
-	count_languages_and_territories ();
+       count_languages_and_territories ();
 }
 
 static gint