Language Encounters Center (LEC) API

Visionary Software Solutions Language Encounters Center (LEC) API: messages written in RFC 5646 language tags, and the service that translates them

Messages written in RFC 5646 language tags, and the service that translates them. The module software.visionary.language.encounters.center holds Message, Messages, SupportedLanguages and TranslationService; the Tag a message is written in, and the registry's subtag types, are the IANA Language Subtag Registry's, which it requires transitively.

@Message(value = "Hola, parce", in = @Tag(language = Spanish.class, region = Colombia.class))
@Message(value = "Hello, friend", in = @Tag(language = English.class))
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
@interface Greeting { }

The subtags (Spanish, Colombia, ...) are iana-subtags', generated from the IANA Language Subtag Registry. The TranslationService that answers translate(Greeting.class, locale) is lec's.

Coordinates

software.visionary.lec:api:2026.10.13

Direct Dependencies

  • software.visionary.iana.language.subtag.registry:iana-subtag-registry, required transitively.

Why it is its own Gradle build

The Kompuwiz catalog, which every fleet module requires, requires static transitive this module, so every module can write messages without adding a dependency. The catalog cannot require a module that is itself described by a catalog token: javac rejects that as a cyclic dependence. So this module builds with Gradle and is listed in the catalog as an external token, like a third-party library.

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