Description Details Locale Identifiers A Note on Default Locales Locale-Sensitive Functions in stringi References See Also
In this section we explain how we deal with locales in stringi. Locale is a fundamental concept in ICU. It identifies a specific user community, i.e. a group of users who have similar culture and language expectations for human-computer interaction.
Because a locale is just an identifier for a region, no validity check is performed when you specify a Locale. ICU is implemented as a set of services. If you want to see whether particular resources are available for the locale you asked for, you must query those resources. Note: When you ask for a resource for a particular locale, you get back the best available match, not necessarily precisely what you requested.
ICU services are parametrized by locale, to deliver
culturally correct results. Locales are identified by
character strings of the form Language
code,
Language_Country
code, or
Language_Country_Variant
code, e.g. "en_US".
The two-letter Language
code uses the ISO-639-1
standard, e.g. "en" stands for English, "pl" – Polish,
"fr" – French, and "de" for German.
Country
is a two-letter code following the
ISO-3166 standard. This is to reflect different language
conventions within the same language, for example in
US-English ("en_US") and Australian-English ("en_AU").
Differences may also appear in language conventions used
within the same country. For example, the Euro currency
may be used in several European countries while the
individual country's currency is still in circulation. In
such case, ICU Variant
"_EURO" could be used for
selecting locales that support the Euro currency.
For a list of locales that are recognized by ICU,
call stri_locale_list
.
Each locale-sensitive function in stringi selects
the current default locale if an empty string or
NULL
is given as as its locale
argument.
Default locales are available to all the functions: they
are initially set to be the system locale on that
platform, and may be changed with
stri_locale_set
, for example if automatic
detection fails to recognize your locale properly.
Sometimes it is suggested that your program should avoid
changing the default locale: it is not a good way to
request an international object, especially only for a
single function call.. All locale-sensitive functions may
request any desired locale per-call (by specifying the
locale
argument), i.e. without referencing to the
default locale. During many tests, however, we did not
observe any improper behavior of stringi while
using a modified default locale.
One of many examples of locale-dependent services is the
Collator, which performs a locale-aware string
comparison. It is used for string comparing, ordering,
sorting, and searching. See
stri_opts_collator
for the description on
how to tune its settings, and its locale
argument
in particular.
Other locale-sensitive functions include e.g.
stri_trans_tolower
(that does character
case mapping).
Locale – ICU User Guide, http://userguide.icu-project.org/locale
ISO 639: Language Codes, http://www.iso.org/iso/home/standards/language_codes.htm
ISO 3166: Country Codes, http://www.iso.org/iso/country_codes
Other locale_management: stri_locale_get
,
stri_locale_set
;
stri_locale_info
;
stri_locale_list
Other locale_sensitive: stri_cmp
,
stri_compare
; stri_count_fixed
;
stri_detect_fixed
;
stri_enc_detect2
;
stri_locate_all_fixed
,
stri_locate_all_fixed,
,
stri_locate_first_fixed
,
stri_locate_first_fixed,
,
stri_locate_last_fixed
,
stri_locate_last_fixed
;
stri_opts_collator
; stri_order
,
stri_sort
;
stri_replace_all_fixed
,
stri_replace_all_fixed
,
stri_replace_first_fixed
,
stri_replace_first_fixed
,
stri_replace_last_fixed
,
stri_replace_last_fixed
;
stri_split_fixed
,
stri_split_fixed
;
stri_trans_tolower
,
stri_trans_totitle
,
stri_trans_toupper
;
stringi-search-fixed
Other stringi_general_topics:
stringi-arguments
;
stringi-encoding
;
stringi-package
;
stringi-search-charclass
;
stringi-search-fixed
;
stringi-search-regex
;
stringi-search
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.