diff options
Diffstat (limited to 'gl/m4/locale-fr.m4')
-rw-r--r-- | gl/m4/locale-fr.m4 | 142 |
1 files changed, 95 insertions, 47 deletions
diff --git a/gl/m4/locale-fr.m4 b/gl/m4/locale-fr.m4 index 8c41fad..f8d7c54 100644 --- a/gl/m4/locale-fr.m4 +++ b/gl/m4/locale-fr.m4 | |||
@@ -1,5 +1,6 @@ | |||
1 | # locale-fr.m4 serial 20 | 1 | # locale-fr.m4 |
2 | dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. | 2 | # serial 23 |
3 | dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc. | ||
3 | dnl This file is free software; the Free Software Foundation | 4 | dnl This file is free software; the Free Software Foundation |
4 | dnl gives unlimited permission to copy and/or distribute it, | 5 | dnl gives unlimited permission to copy and/or distribute it, |
5 | dnl with or without modifications, as long as this notice is preserved. | 6 | dnl with or without modifications, as long as this notice is preserved. |
@@ -7,7 +8,7 @@ dnl with or without modifications, as long as this notice is preserved. | |||
7 | dnl From Bruno Haible. | 8 | dnl From Bruno Haible. |
8 | 9 | ||
9 | dnl Determine the name of a french locale with traditional encoding. | 10 | dnl Determine the name of a french locale with traditional encoding. |
10 | AC_DEFUN([gt_LOCALE_FR], | 11 | AC_DEFUN_ONCE([gt_LOCALE_FR], |
11 | [ | 12 | [ |
12 | AC_REQUIRE([AC_CANONICAL_HOST]) | 13 | AC_REQUIRE([AC_CANONICAL_HOST]) |
13 | AC_REQUIRE([AM_LANGINFO_CODESET]) | 14 | AC_REQUIRE([AM_LANGINFO_CODESET]) |
@@ -86,7 +87,7 @@ int main () { | |||
86 | # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", | 87 | # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", |
87 | # "ja" as "Japanese" or "Japanese_Japan.932", | 88 | # "ja" as "Japanese" or "Japanese_Japan.932", |
88 | # and similar. | 89 | # and similar. |
89 | mingw*) | 90 | mingw* | windows*) |
90 | # Test for the native Windows locale name. | 91 | # Test for the native Windows locale name. |
91 | if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | 92 | if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then |
92 | gt_cv_locale_fr=French_France.1252 | 93 | gt_cv_locale_fr=French_France.1252 |
@@ -116,7 +117,7 @@ int main () { | |||
116 | if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | 117 | if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then |
117 | gt_cv_locale_fr=fr_FR.iso88591 | 118 | gt_cv_locale_fr=fr_FR.iso88591 |
118 | else | 119 | else |
119 | # Test for the Solaris 7 locale name. | 120 | # Test for the Solaris 10 locale name. |
120 | if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | 121 | if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then |
121 | gt_cv_locale_fr=fr | 122 | gt_cv_locale_fr=fr |
122 | else | 123 | else |
@@ -133,15 +134,31 @@ int main () { | |||
133 | rm -fr conftest* | 134 | rm -fr conftest* |
134 | ]) | 135 | ]) |
135 | LOCALE_FR=$gt_cv_locale_fr | 136 | LOCALE_FR=$gt_cv_locale_fr |
137 | case $LOCALE_FR in #( | ||
138 | '' | *[[[:space:]\"\$\'*@<:@]]*) | ||
139 | dnl This locale name might cause trouble with sh or make. | ||
140 | AC_MSG_WARN([invalid locale "$LOCALE_FR"; assuming "none"]) | ||
141 | LOCALE_FR=none;; | ||
142 | esac | ||
136 | AC_SUBST([LOCALE_FR]) | 143 | AC_SUBST([LOCALE_FR]) |
137 | ]) | 144 | ]) |
138 | 145 | ||
139 | dnl Determine the name of a french locale with UTF-8 encoding. | 146 | dnl Determine the name of a french locale with UTF-8 encoding. |
140 | AC_DEFUN([gt_LOCALE_FR_UTF8], | 147 | AC_DEFUN_ONCE([gt_LOCALE_FR_UTF8], |
141 | [ | 148 | [ |
149 | AC_REQUIRE([AC_CANONICAL_HOST]) | ||
142 | AC_REQUIRE([AM_LANGINFO_CODESET]) | 150 | AC_REQUIRE([AM_LANGINFO_CODESET]) |
143 | AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ | 151 | AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ |
144 | AC_LANG_CONFTEST([AC_LANG_SOURCE([[ | 152 | case "$host_os" in |
153 | *-musl* | midipix*) | ||
154 | dnl On musl libc, all kinds of ll_CC.UTF-8 locales exist, even without | ||
155 | dnl any locale file on disk. But they are effectively equivalent to the | ||
156 | dnl C.UTF-8 locale, except for locale categories (such as LC_MESSSAGES) | ||
157 | dnl for which localizations (.mo files) have been installed. | ||
158 | gt_cv_locale_fr_utf8=fr_FR.UTF-8 | ||
159 | ;; | ||
160 | *) | ||
161 | AC_LANG_CONFTEST([AC_LANG_SOURCE([[ | ||
145 | #include <locale.h> | 162 | #include <locale.h> |
146 | #include <time.h> | 163 | #include <time.h> |
147 | #if HAVE_LANGINFO_CODESET | 164 | #if HAVE_LANGINFO_CODESET |
@@ -203,51 +220,82 @@ int main () { | |||
203 | #endif | 220 | #endif |
204 | return 0; | 221 | return 0; |
205 | } | 222 | } |
206 | ]])]) | 223 | ]])]) |
207 | if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then | 224 | if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then |
208 | case "$host_os" in | 225 | case "$host_os" in |
209 | # Handle native Windows specially, because there setlocale() interprets | 226 | # Handle native Windows specially, because there setlocale() interprets |
210 | # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", | 227 | # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", |
211 | # "fr" or "fra" as "French" or "French_France.1252", | 228 | # "fr" or "fra" as "French" or "French_France.1252", |
212 | # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", | 229 | # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", |
213 | # "ja" as "Japanese" or "Japanese_Japan.932", | 230 | # "ja" as "Japanese" or "Japanese_Japan.932", |
214 | # and similar. | 231 | # and similar. |
215 | mingw*) | 232 | mingw* | windows*) |
216 | # Test for the hypothetical native Windows locale name. | 233 | # Test for the hypothetical native Windows locale name. |
217 | if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | 234 | if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then |
218 | gt_cv_locale_fr_utf8=French_France.65001 | 235 | gt_cv_locale_fr_utf8=French_France.65001 |
219 | else | ||
220 | # None found. | ||
221 | gt_cv_locale_fr_utf8=none | ||
222 | fi | ||
223 | ;; | ||
224 | *) | ||
225 | # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because | ||
226 | # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the | ||
227 | # configure script would override the LC_ALL setting. Likewise for | ||
228 | # LC_CTYPE, which is also set at the beginning of the configure script. | ||
229 | # Test for the usual locale name. | ||
230 | if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | ||
231 | gt_cv_locale_fr_utf8=fr_FR | ||
232 | else | ||
233 | # Test for the locale name with explicit encoding suffix. | ||
234 | if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | ||
235 | gt_cv_locale_fr_utf8=fr_FR.UTF-8 | ||
236 | else | ||
237 | # Test for the Solaris 7 locale name. | ||
238 | if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | ||
239 | gt_cv_locale_fr_utf8=fr.UTF-8 | ||
240 | else | 236 | else |
241 | # None found. | 237 | # None found. |
242 | gt_cv_locale_fr_utf8=none | 238 | gt_cv_locale_fr_utf8=none |
243 | fi | 239 | fi |
244 | fi | 240 | ;; |
245 | fi | 241 | *) |
246 | ;; | 242 | # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because |
247 | esac | 243 | # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the |
248 | fi | 244 | # configure script would override the LC_ALL setting. Likewise for |
249 | rm -fr conftest* | 245 | # LC_CTYPE, which is also set at the beginning of the configure script. |
246 | # Test for the usual locale name. | ||
247 | if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | ||
248 | gt_cv_locale_fr_utf8=fr_FR | ||
249 | else | ||
250 | # Test for the locale name with explicit encoding suffix. | ||
251 | if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | ||
252 | gt_cv_locale_fr_utf8=fr_FR.UTF-8 | ||
253 | else | ||
254 | # Test for the Solaris 10 locale name. | ||
255 | if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then | ||
256 | gt_cv_locale_fr_utf8=fr.UTF-8 | ||
257 | else | ||
258 | # None found. | ||
259 | gt_cv_locale_fr_utf8=none | ||
260 | fi | ||
261 | fi | ||
262 | fi | ||
263 | ;; | ||
264 | esac | ||
265 | fi | ||
266 | rm -fr conftest* | ||
267 | ;; | ||
268 | esac | ||
250 | ]) | 269 | ]) |
251 | LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 | 270 | LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 |
271 | case $LOCALE_FR_UTF8 in #( | ||
272 | '' | *[[[:space:]\"\$\'*@<:@]]*) | ||
273 | dnl This locale name might cause trouble with sh or make. | ||
274 | AC_MSG_WARN([invalid locale "$LOCALE_FR_UTF8"; assuming "none"]) | ||
275 | LOCALE_FR_UTF8=none;; | ||
276 | esac | ||
252 | AC_SUBST([LOCALE_FR_UTF8]) | 277 | AC_SUBST([LOCALE_FR_UTF8]) |
278 | |||
279 | dnl Users of $LOCALE_FR_UTF8 need to know which of the locale categories they | ||
280 | dnl can rely on. | ||
281 | case "$host_os" in | ||
282 | *-musl* | midipix*) | ||
283 | dnl On musl libc, locale categories other than LC_CTYPE and LC_MESSAGES | ||
284 | dnl are effectively unimplemented. | ||
285 | LC_COLLATE_IMPLEMENTED=false | ||
286 | LC_NUMERIC_IMPLEMENTED=false | ||
287 | LC_TIME_IMPLEMENTED=false | ||
288 | LC_MONETARY_IMPLEMENTED=false | ||
289 | ;; | ||
290 | *) | ||
291 | LC_COLLATE_IMPLEMENTED=true | ||
292 | LC_NUMERIC_IMPLEMENTED=true | ||
293 | LC_TIME_IMPLEMENTED=true | ||
294 | LC_MONETARY_IMPLEMENTED=true | ||
295 | ;; | ||
296 | esac | ||
297 | AC_SUBST([LC_COLLATE_IMPLEMENTED]) | ||
298 | AC_SUBST([LC_NUMERIC_IMPLEMENTED]) | ||
299 | AC_SUBST([LC_TIME_IMPLEMENTED]) | ||
300 | AC_SUBST([LC_MONETARY_IMPLEMENTED]) | ||
253 | ]) | 301 | ]) |