mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:37:46 +00:00
LibUnicode: Add special handling of hour cycle (hc) Unicode keywords
For other keywords, allowed values per locale are generated at compile time. But since the CLDR doesn't present hour cycles on a per-locale basis, and hour cycles lookups depend on runtime data, we must handle hour cycle keyword lookups differently than other keywords.
This commit is contained in:
parent
71903ea7e1
commit
6dbdfb6ba1
1 changed files with 13 additions and 0 deletions
|
@ -9,6 +9,7 @@
|
||||||
#include <AK/QuickSort.h>
|
#include <AK/QuickSort.h>
|
||||||
#include <AK/StringBuilder.h>
|
#include <AK/StringBuilder.h>
|
||||||
#include <LibUnicode/CharacterTypes.h>
|
#include <LibUnicode/CharacterTypes.h>
|
||||||
|
#include <LibUnicode/DateTimeFormat.h>
|
||||||
#include <LibUnicode/Locale.h>
|
#include <LibUnicode/Locale.h>
|
||||||
|
|
||||||
#if ENABLE_UNICODE_DATA
|
#if ENABLE_UNICODE_DATA
|
||||||
|
@ -806,6 +807,18 @@ Optional<StringView> get_locale_currency_mapping([[maybe_unused]] StringView loc
|
||||||
Vector<StringView> get_locale_key_mapping([[maybe_unused]] StringView locale, [[maybe_unused]] StringView keyword)
|
Vector<StringView> get_locale_key_mapping([[maybe_unused]] StringView locale, [[maybe_unused]] StringView keyword)
|
||||||
{
|
{
|
||||||
#if ENABLE_UNICODE_DATA
|
#if ENABLE_UNICODE_DATA
|
||||||
|
if (keyword == "hc"sv) {
|
||||||
|
auto hour_cycles = get_regional_hour_cycles(locale);
|
||||||
|
|
||||||
|
Vector<StringView> values;
|
||||||
|
values.ensure_capacity(hour_cycles.size());
|
||||||
|
|
||||||
|
for (auto hour_cycle : hour_cycles)
|
||||||
|
values.unchecked_append(hour_cycle_to_string(hour_cycle));
|
||||||
|
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
if (auto values = Detail::get_locale_key_mapping(locale, keyword); values.has_value())
|
if (auto values = Detail::get_locale_key_mapping(locale, keyword); values.has_value())
|
||||||
return values->split_view(',');
|
return values->split_view(',');
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue