mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 01:37:35 +00:00
LibJS: Implement the Intl.DisplayNames constructor
There is notably FIXME notations in this commit regarding Unicode locale extensions. We are not parsing extensions (or private use extensions) at all yet.
This commit is contained in:
parent
1c2ac69e3c
commit
e8dd2eea74
7 changed files with 538 additions and 0 deletions
32
Userland/Libraries/LibJS/Runtime/Intl/AbstractOperations.h
Normal file
32
Userland/Libraries/LibJS/Runtime/Intl/AbstractOperations.h
Normal file
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* Copyright (c) 2021, Tim Flynn <trflynn89@pm.me>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/String.h>
|
||||
#include <AK/Variant.h>
|
||||
#include <AK/Vector.h>
|
||||
#include <LibJS/Forward.h>
|
||||
#include <LibJS/Runtime/Intl/DisplayNames.h>
|
||||
#include <LibJS/Runtime/Value.h>
|
||||
|
||||
namespace JS::Intl {
|
||||
|
||||
using Fallback = Variant<Empty, bool, StringView>;
|
||||
|
||||
struct LocaleOptions {
|
||||
Value locale_matcher;
|
||||
};
|
||||
|
||||
struct LocaleResult {
|
||||
String locale;
|
||||
};
|
||||
|
||||
Vector<String> canonicalize_locale_list(GlobalObject&, Value locales);
|
||||
Value get_option(GlobalObject& global_object, Value options, PropertyName const& property, Value::Type type, Vector<StringView> const& values, Fallback fallback);
|
||||
LocaleResult resolve_locale(Vector<String> const& requested_locales, LocaleOptions const& options, Vector<StringView> relevant_extension_keys);
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue