sealed_language_extensions 1.201404.2 copy "sealed_language_extensions: ^1.201404.2" to clipboard
sealed_language_extensions: ^1.201404.2 copied to clipboard

IANA Language Tag Extensions Registry (BCP 47) as compile-time constant, tree-shakable, sealed Dart classes for the registered locale extensions.

example/sealed_language_extensions_example.dart

import 'package:sealed_language_extensions/sealed_language_extensions.dart';

void main() {
  print('Registered extensions: ${LanguageTagExtension.list.length}');
  print('Generated from registry dated ${LanguageTagExtension.fileDate}');

  for (final extension in LanguageTagExtension.list) {
    print('${extension.identifier}: ${extension.description} '
        '(${extension.rfc}, ${extension.authority})');
  }

  // Case-insensitive lookup.
  final unicode = LanguageTagExtension.maybeFromIdentifier('U');
  print('u -> ${unicode?.description}'); // u -> Unicode Locale

  // Throwing lookup and round-trip serialization.
  final transformed = LanguageTagExtension.fromIdentifier('t');
  final restored = LanguageTagExtension.fromJson(transformed.toJson());
  print('round-trip equal: ${restored == transformed}'); // true

  // Exhaustive pattern matching over the sealed hierarchy.
  final label = switch (transformed) {
    SpecifyingTransformedContentExtension() => 'transform',
    UnicodeLocaleExtension() => 'locale',
  };
  print('t -> $label'); // t -> transform
}
1
likes
160
points
56
downloads

Documentation

API reference

Publisher

verified publishertigerc10.dev

Weekly Downloads

IANA Language Tag Extensions Registry (BCP 47) as compile-time constant, tree-shakable, sealed Dart classes for the registered locale extensions.

Homepage
Repository (GitHub)
View/report issues

Topics

#i18n #l10n #bcp47 #extensions #locale

License

MIT (license)

More

Packages that depend on sealed_language_extensions