ladybird/Libraries/LibUnicode/DisplayNames.h
Andreas Kling b6bef6b688 Libraries: Use UTF-16 for JS-visible runtime strings
Produce JS-visible string results as UTF-16 at their source, including
numeric formatting, BigInt and BigFraction formatting, URI encoding,
console formatting, parser errors, regular expression errors, Intl and
Temporal records, LibUnicode locale boundaries, and LibWeb bindings.

Handle fractional radix formatting through the UTF-16 builder view.
2026-06-22 19:51:25 +02:00

35 lines
1.3 KiB
C++

/*
* Copyright (c) 2024-2025, Tim Flynn <trflynn89@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Optional.h>
#include <AK/StringView.h>
#include <AK/Utf16String.h>
#include <AK/Utf16View.h>
#include <LibUnicode/Locale.h>
#include <LibUnicode/TimeZone.h>
namespace Unicode {
enum class LanguageDisplay {
Standard,
Dialect,
};
LanguageDisplay language_display_from_string(Utf16View language_display);
Utf16String language_display_to_string(LanguageDisplay language_display);
Optional<Utf16String> language_display_name(StringView locale, Utf16View language, LanguageDisplay);
Optional<Utf16String> region_display_name(StringView locale, Utf16View region);
Optional<Utf16String> script_display_name(StringView locale, Utf16View script);
Optional<Utf16String> calendar_display_name(StringView locale, Utf16View calendar);
Optional<Utf16String> date_time_field_display_name(StringView locale, Utf16View field, Style);
Optional<Utf16String> time_zone_display_name(StringView locale, StringView time_zone_identifier, TimeZoneOffset::InDST, double time);
Optional<Utf16String> currency_display_name(StringView locale, Utf16View currency, Style);
Optional<Utf16String> currency_numeric_display_name(StringView locale, StringView currency);
}