diff --git a/Userland/Libraries/LibUnicode/NumberFormat.cpp b/Userland/Libraries/LibUnicode/NumberFormat.cpp index 0b690124b6..842827a099 100644 --- a/Userland/Libraries/LibUnicode/NumberFormat.cpp +++ b/Userland/Libraries/LibUnicode/NumberFormat.cpp @@ -23,6 +23,16 @@ Optional __attribute__((weak)) get_standard_number_system_format(S Vector __attribute__((weak)) get_compact_number_system_formats(StringView, StringView, CompactNumberFormatType) { return {}; } Vector __attribute__((weak)) get_unit_formats(StringView, StringView, Style) { return {}; } +Optional get_default_number_system(StringView locale) +{ + if (auto systems = get_locale_key_mapping(locale, "nu"sv); systems.has_value()) { + auto index = systems->find(','); + return index.has_value() ? systems->substring_view(0, *index) : *systems; + } + + return {}; +} + String replace_digits_for_number_system(StringView system, StringView number) { // https://tc39.es/ecma402/#table-numbering-system-digits diff --git a/Userland/Libraries/LibUnicode/NumberFormat.h b/Userland/Libraries/LibUnicode/NumberFormat.h index b2eee5a059..e221ccb07c 100644 --- a/Userland/Libraries/LibUnicode/NumberFormat.h +++ b/Userland/Libraries/LibUnicode/NumberFormat.h @@ -65,6 +65,8 @@ enum class NumericSymbol : u8 { PlusSign, }; +Optional get_default_number_system(StringView locale); + Optional get_number_system_symbol(StringView locale, StringView system, NumericSymbol symbol); Optional get_number_system_groupings(StringView locale, StringView system); String replace_digits_for_number_system(StringView system, StringView number);