blob: e56b6c870f0db66cb8713f1dc613c99dcc080074 [file]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:js_interop';
import 'locale.dart';
@JS('Intl.Locale')
extension type LocaleJS._(JSObject _) implements JSObject {
external factory LocaleJS(String s);
external factory LocaleJS.constructor(String language, JSAny options);
external LocaleJS minimize();
external LocaleJS maximize();
external String get language;
external String? get script;
external String? get region;
}
Locale parseLocale(String s) => LocaleEcma(LocaleJS(s));
class LocaleEcma implements Locale {
final LocaleJS _locale;
LocaleEcma(this._locale);
@override
String toLanguageTag([String separator = '-']) => _locale.toString();
}