Language File Service Layer
Handles business logic for language file storage, retrieval and deletion
via the configured S3/MinIO bucket.
- Source:
Members
(static, constant) deleteLanguageFile
Delete a language file from the object store.
- Source:
(static, constant) filterJSON
MIME-type filter that accepts only JSON files.
- Source:
(static, constant) getLanguageFile
Retrieve a language file stream from the object store.
- Source:
(static, constant) keyComponents
Build the scoped storage key from a raw key and a UID prefix.
- Source:
(static, constant) languageKey
Build the storage key of a language file.
Two layers live in the bucket:
/languages/.json shared (all organizations)
/languages//.json organization
The shared file usually holds the translations; an organization file only
carries its own terminology and wins over the shared one.
- Source:
(static, constant) languageUrlGen
Generate the storage key for an uploaded language file.
`params.UIDroot` selects the organization layer; without it the file goes to
the shared layer.
- Source:
(static, constant) listLanguageFiles
List all language files across all applications.
- Source:
(static, constant) listLanguageFilesByApp
List the language files of an application.
Only the shared layer is listed: the recursive walk also sees the
organization sub-folders, which would otherwise show up as language
"names" in the settings picker.
- Source:
(static, constant) statLanguageFile
Read the object metadata (ETag, last modification) of a language file.
Used for cache validation: language files change rarely but are requested on
every app start, so a cheap HEAD lets us answer with 304 in the common case.
A missing object is not an error here — the caller decides.
- Source: