.\" This manpage content is licensed under Creative Commons
.\"  Attribution 4.0 International (CC BY 4.0)
.\"   https://creativecommons.org/licenses/by/4.0/
.\" This manpage was generated from SDL's wiki page for SDL_GetPreferredLocales:
.\"   https://wiki.libsdl.org/SDL_GetPreferredLocales
.\" Generated with SDL/build-scripts/wikiheaders.pl
.\"  revision release-3.2.8-0-gf6864924f
.\" Please report issues in this manpage's content at:
.\"   https://github.com/libsdl-org/sdlwiki/issues/new
.\" Please report issues in the generation of this manpage from the wiki at:
.\"   https://github.com/libsdl-org/SDL/issues/new?title=Misgenerated%20manpage%20for%20SDL_GetPreferredLocales
.\" SDL can be found at https://libsdl.org/
.de URL
\$2 \(laURL: \$1 \(ra\$3
..
.if \n[.g] .mso www.tmac
.TH SDL_GetPreferredLocales 3 "SDL 3.2.8" "Simple Directmedia Layer" "SDL3 FUNCTIONS"
.SH NAME
SDL_GetPreferredLocales \- Report the user's preferred locale\[char46]
.SH HEADER FILE
Defined in SDL3/SDL_locale\[char46]h

.SH SYNOPSIS
.nf
.B #include \(dqSDL3/SDL.h\(dq
.PP
.BI "SDL_Locale ** SDL_GetPreferredLocales(int *count);
.fi
.SH DESCRIPTION
Returned language strings are in the format xx, where 'xx' is an ISO-639
language specifier (such as "en" for English, "de" for German, etc)\[char46]
Country strings are in the format YY, where "YY" is an ISO-3166 country
code (such as "US" for the United States, "CA" for Canada, etc)\[char46] Country
might be NULL if there's no specific guidance on them (so you might get {
"en", "US" } for American English, but { "en", NULL } means "English
language, generically")\[char46] Language strings are never NULL, except to
terminate the array\[char46]

Please note that not all of these strings are 2 characters; some are three
or more\[char46]

The returned list of locales are in the order of the user's preference\[char46] For
example, a German citizen that is fluent in US English and knows enough
Japanese to navigate around Tokyo might have a list like: { "de", "en_US",
"jp", NULL }\[char46] Someone from England might prefer British English (where
"color" is spelled "colour", etc), but will settle for anything like it: {
"en_GB", "en", NULL }\[char46]

This function returns NULL on error, including when the platform does not
supply this information at all\[char46]

This might be a "slow" call that has to query the operating system\[char46] It's
best to ask for this once and save the results\[char46] However, this list can
change, usually because the user has changed a system preference outside of
your program; SDL will send an

.BR SDL_EVENT_LOCALE_CHANGED
 event in this case, if
possible, and you can call this function again to get an updated copy of
preferred locales\[char46]

.SH FUNCTION PARAMETERS
.TP
.I count
a pointer filled in with the number of locales returned, may be NULL\[char46]
.SH RETURN VALUE
(
.BR SDL_Locale
.I 
) Returns a NULL terminated array of locale
pointers, or NULL on failure; call 
.BR SDL_GetError
() for more
information\[char46] This is a single allocation that should be freed with

.BR SDL_free
() when it is no longer needed\[char46]

.SH AVAILABILITY
This function is available since SDL 3\[char46]2\[char46]0\[char46]