# IANA Language Subtag Registry

`software.visionary.iana.language.subtag.registry:iana-subtag-registry:2026.10.13` · https://codeberg.org/iana-language-subtag-registry/iana-subtag-registry/src/tag/java/2026.10.13

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](https://www.iana.org/assignments/language-subtag-registry)
as types, and the [RFC 5646](https://www.rfc-editor.org/rfc/rfc5646) language tag composed from them. The module
`software.visionary.iana.language.subtag.registry` depends on nothing but `java.base`.

```java
@Tag(language = Spanish.class, region = Colombia.class)   // es-CO
```

| Package | Holds |
|---|---|
| `…registry` | `Tag`, and what every record states: `Registered`, `Subtag`, `LanguageCode`, `Comments` |
| `…registry.type` | a record's `Type`: `Language`, `Extlang`, `Script`, `Region`, `Variant`, `Grandfathered`, `Redundant` |
| `…registry.deprecation` | `Deprecated`, and a whole tag's `PreferredValue` |
| `…registry.formation` | where a subtag goes in a tag: `Prefix`, `Prefixes`, `SuppressScript` |
| `…registry.classification` | `Macrolanguage`, `Scope` |

A registered subtag is a type implementing these: `Chinese implements Language, Scope.Macrolanguage`. The subtags
themselves are [iana-subtags](https://codeberg.org/iana-language-subtag-registry/iana-subtags)', generated from the
registry by [generate-language-subtags](https://codeberg.org/iana-language-subtag-registry/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](https://codeberg.org/language-encounters-center/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

```sh
./gradlew build publishToMavenLocal
```

## License

GPL-3.0-or-later. See `COPYING`.
