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 publishToMavenLocalLicense
GPL-3.0-or-later. See COPYING.
Views
Drawn from the release. A link in a view opens its source at the release tag.