ek9_query_localisations
Answers first: status, moduleCount, inconsistencyCount, workspaceLocales, then modules[] {name, locales, percentTranslated, methodCount} and inconsistencies[] {locale, supportedIn, missingIn}.
When to use it
'What languages does this app support, and which modules are missing one' is one call with no arguments - the whole i18n surface at module granularity.
When not to use it
- per-method translation status (translated / stubbed / missing) for ONE module (use
ek9_query_translation_completeness, the deep per-module dive - call it second, after this one finds the module of interest) - finding a specific verbatim string in i18n source (use
ek9_search_text) - MUTATING the i18n surface (use
ek9_edit_localized_textorek9_organize_localized_text)
Details
empty = zero 'defines text for' blocks anywhere (a legitimate greenfield state, not an error); an all-unmatched moduleFilter also yields empty, with meta.unmatchedFilters[] so a typo reads differently from greenfield. A module 'supports' a locale when it has at least one 'defines text for "L"' block; zero-block modules are auto-excluded from inconsistency analysis (excludeModules forces further exclusions). percentTranslated and methodCount (method × locale tuples) match ek9_query_translation_completeness byte-for-byte at module granularity; aggregates stop at module level (no per-method rows) to bound response size.
Arguments
| Argument | Type | Required | What it is |
|---|---|---|---|
excludeModules | array of string | Modules to treat as intentionally non-i18n — removed from modules[] AND from inconsistencies[].missingIn. (Modules with zero text blocks are auto-excluded already.) Default: none. | |
includeFileDistribution | boolean | Include i18nFiles[] (the .ek9 files holding each module's text blocks). Default off to keep responses compact; turn on when planning a ek9_organize_localized_text call. | |
includeInconsistencies | boolean | Include the inconsistencies[] array flagging cross-module locale support gaps. Set false to suppress. | |
localeFilter | array of string | Restrict per-module metrics + inconsistencies to specific locales (e.g. ["fr_FR", "de"]). workspaceLocales still lists the full discovered set. Default: all discovered locales. | |
moduleFilter | array of string | Restrict the response to specific modules (exact names). Default: all i18n modules. |
Recorded calls
Real calls, recorded against small projects and checked on every build - a changed answer fails it.
List all
Request
{ }
Response
{
"inconsistencies" : [ {
"locale" : "fr_FR",
"missingIn" : [ "com.example.billing" ],
"supportedIn" : [ "com.example.auth" ]
} ],
"inconsistencyCount" : 1,
"meta" : {
"serverMs" : "<timing>"
},
"moduleCount" : 2,
"modules" : [ {
"locales" : [ "de", "en_GB", "fr_FR" ],
"methodCount" : 6,
"name" : "com.example.auth",
"percentTranslated" : 100.0,
"textTypeCount" : 1
}, {
"locales" : [ "de", "en_GB" ],
"methodCount" : 2,
"name" : "com.example.billing",
"percentTranslated" : 50.0,
"textTypeCount" : 1
} ],
...
Cut short here: 8 more lines. The whole recorded call.