IANA Language Subtag Registry

Visionary Software Solutions IANA Language Subtag Registry: the registry's records as types, and the RFC 5646 language tag composed from them

The records of the IANA Language Subtag Registry as types, and the RFC 5646 language tag composed from them. The module software.visionary.iana.language.subtag.registry depends on nothing but java.base.

@Tag(language = Spanish.class, region = Colombia.class)   // es-CO
PackageHolds
…registryTag, and what every record states: Registered, Subtag, LanguageCode, Comments
…registry.typea record's Type: Language, Extlang, Script, Region, Variant, Grandfathered, Redundant
…registry.deprecationDeprecated, and a whole tag's PreferredValue
…registry.formationwhere a subtag goes in a tag: Prefix, Prefixes, SuppressScript
…registry.classificationMacrolanguage, Scope

A registered subtag is a type implementing these: Chinese implements Language, Scope.Macrolanguage. The subtags themselves are iana-subtags', generated from the registry by generate-language-subtags.

Coordinates

software.visionary.iana.language.subtag.registry:iana-subtag-registry:2026.10.13

Why it is its own Gradle build

The Kompuwiz catalog requires static transitive the LEC API, which requires transitive this module. A module the catalog requires cannot be described by a catalog token, since javac rejects the cyclic dependence, so this module builds with Gradle and is listed in the catalog as an external token.

Build

./gradlew build publishToMavenLocal

License

GPL-3.0-or-later. See COPYING.

Views

Drawn from the release. A link in a view opens its source at the release tag.

architecture.svg
architecture.svg
classes.svg
classes.svg
packages.svg
packages.svg