ludus::localization¶
Ludus Wiki · API overview · Browse API
Namespace
Declared in modules/localization/include/ludus/localization/catalog.hpp
Related declarations¶
- ludus::localization::ArgumentDescriptor
- ludus::localization::ArgumentValue
- ludus::localization::Catalog
- ludus::localization::Diagnostic
- ludus::localization::FormatResult
- ludus::localization::FormatterContext
- ludus::localization::MessageBinding
- ludus::localization::MessageDescriptor
- ludus::localization::MessageKey
- ludus::localization::ResolvedText
Enumerations¶
Status¶
enum class Status : uint8
Related types: uint8
Ok¶
Ok
Invalid¶
Invalid
Unsupported¶
Unsupported
Limit¶
Limit
OutOfMemory¶
OutOfMemory
NotFound¶
NotFound
WrongCatalog¶
WrongCatalog
TokenExhausted¶
TokenExhausted
SchemaMismatch¶
SchemaMismatch
RequiresArguments¶
RequiresArguments
InvalidArguments¶
InvalidArguments
BufferTooSmall¶
BufferTooSmall
NotPrepared¶
NotPrepared
BackendUnavailable¶
BackendUnavailable
LinguisticDataMismatch¶
LinguisticDataMismatch
BackendFailure¶
BackendFailure
Declared in modules/localization/include/ludus/localization/catalog.hpp
ArgumentType¶
enum class ArgumentType : uint8
ludus-icu-mf1-v1 message argument. Related types: uint8
Text¶
Text
Count¶
Count
int64 within the declared bounds; plural selector or integer display. Number¶
Number
float64 measurement within the declared bounds; display only. Enum¶
Enum
select. Declared in modules/localization/include/ludus/localization/catalog.hpp
TextOrigin¶
enum class TextOrigin : uint8
Related types: uint8
Game¶
Game
User¶
User
Declared in modules/localization/include/ludus/localization/catalog.hpp
UnknownPolicy¶
enum class UnknownPolicy : uint8
Related types: uint8
Other¶
Other
other branch. Reject¶
Reject
Declared in modules/localization/include/ludus/localization/catalog.hpp
Origin¶
enum class Origin : uint8
Related types: uint8
Source¶
Source
Translation¶
Translation
SourceFallback¶
SourceFallback
Fallback¶
Fallback
Declared in modules/localization/include/ludus/localization/catalog.hpp
ArgumentValueKind¶
enum class ArgumentValueKind : uint8
Related types: uint8
Text¶
Text
Integer¶
Integer
int64: a Count, or a Number with an integral value. Number¶
Number
float64: a Number only. Declared in modules/localization/include/ludus/localization/formatter.hpp
Constants and variables¶
kMaxCatalogBytes¶
constexpr usize ludus::localization::kMaxCatalogBytes = usize{32} * 1024 * 1024
Related types: usize
Declared in modules/localization/include/ludus/localization/catalog.hpp
kMaxMessages¶
constexpr uint32 ludus::localization::kMaxMessages = 65536
Related types: uint32
Declared in modules/localization/include/ludus/localization/catalog.hpp
kMaxTextBytes¶
constexpr usize ludus::localization::kMaxTextBytes = usize{64} * 1024
Related types: usize
Declared in modules/localization/include/ludus/localization/catalog.hpp
kMaxIdentifierBytes¶
constexpr usize ludus::localization::kMaxIdentifierBytes = 128
Related types: usize
Declared in modules/localization/include/ludus/localization/catalog.hpp
MAX_PATTERN_BYTES¶
constexpr usize ludus::localization::MAX_PATTERN_BYTES = usize{16} * 1024
ludus-icu-mf1-v1 pattern stored in a package, in UTF-8 bytes. Related types: usize
Declared in modules/localization/include/ludus/localization/catalog.hpp
MAX_ARGUMENTS¶
constexpr usize ludus::localization::MAX_ARGUMENTS = 32
ludus-icu-mf1-v1 message may have. Related types: usize
Declared in modules/localization/include/ludus/localization/catalog.hpp
MAX_FALLBACK_PROVIDERS¶
constexpr usize ludus::localization::MAX_FALLBACK_PROVIDERS = 8
Related types: usize
Declared in modules/localization/include/ludus/localization/catalog.hpp
MAX_FORMATTED_BYTES¶
constexpr usize ludus::localization::MAX_FORMATTED_BYTES = usize{64} * 1024
Related types: usize
Declared in modules/localization/include/ludus/localization/formatter.hpp
MAX_PREPARED_MESSAGES¶
constexpr usize ludus::localization::MAX_PREPARED_MESSAGES = 4096
Related types: usize
Declared in modules/localization/include/ludus/localization/formatter.hpp
Functions¶
PrepareCatalog¶
Status ludus::localization::PrepareCatalog(std::span< const uint8 > bytes, const foundation::AllocationDomain &domain, Catalog &output, Diagnostic &diagnostic)
ludus-static-utf8-v1) and version 2 (ludus-icu-mf1-v1, static text plus dynamic patterns and their argument schemas); see docs/modules/localization.md for both layouts. Every offset, count, label, key order, UTF-8 range, schema field and provider index is checked before one allocation from domain. Transactional, including an input that borrows the previous output. No I/O and no ICU. Caller must not mutate input concurrently. Failure preserves output; diagnostic reports a byte offset, including malformed cooked files without allocating. Related types: foundation::AllocationDomain · Catalog · uint8 · Status · Diagnostic
Declared in modules/localization/include/ludus/localization/catalog.hpp
MakeTextArgument¶
constexpr ArgumentValue ludus::localization::MakeTextArgument(std::string_view name, std::string_view text) noexcept
Related types: ArgumentValue
Declared in modules/localization/include/ludus/localization/formatter.hpp
MakeEnumArgument¶
constexpr ArgumentValue ludus::localization::MakeEnumArgument(std::string_view name, std::string_view token) noexcept
unknown: other declaration. Related types: ArgumentValue
Declared in modules/localization/include/ludus/localization/formatter.hpp
MakeCountArgument¶
constexpr ArgumentValue ludus::localization::MakeCountArgument(std::string_view name, int64 count) noexcept
Related types: int64 · ArgumentValue
Declared in modules/localization/include/ludus/localization/formatter.hpp
MakeNumberArgument¶
constexpr ArgumentValue ludus::localization::MakeNumberArgument(std::string_view name, float64 number) noexcept
Related types: float64 · ArgumentValue
Declared in modules/localization/include/ludus/localization/formatter.hpp
PrepareFormatterContext¶
Status ludus::localization::PrepareFormatterContext(const Catalog &lease, std::span< const MessageBinding > messages, const foundation::AllocationDomain &domain, FormatterContext &outContext)
| Parameter | Description |
|---|---|
lease |
Catalog to retain; copied, so the caller may replace its own.
|
messages |
Bindings of lease to prepare, at most MAX_PREPARED_MESSAGES.
|
domain |
Storage for the context state. Borrowed; it must outlive the context.
|
outContext |
Replaced only on Ok; every failure leaves it unchanged.
|
Related types: foundation::AllocationDomain · Catalog · FormatterContext · MessageBinding · Status
Declared in modules/localization/include/ludus/localization/formatter.hpp
Format¶
Status ludus::localization::Format(FormatterContext &inoutContext, MessageBinding binding, std::span< const ArgumentValue > arguments, std::span< char > output, FormatResult &outResult)
max_bytes, and user text without C0/C1 controls, bidi embeddings/overrides (U+202A-U+202E) or isolates (U+2066-U+2069); Enum tokens declared, or mapped to other for unknown: other. Inserted text is wrapped in FSI (U+2068) ... PDI (U+2069). A static record copies its cooked text without ICU; it still rejects arguments.| Parameter | Description |
|---|---|
inoutContext |
Prepared context; its ICU scratch is reused.
|
binding |
Binding made by the context's lease (or a copy of it).
|
arguments |
Values in any order.
|
output |
Receives complete UTF-8 on Ok only; never NUL-terminated or truncated.
|
outResult |
Reset on every call; see FormatResult.
|
Returns
Related types: FormatterContext · MessageBinding · Status · ArgumentValue · FormatResult
Declared in modules/localization/include/ludus/localization/formatter.hpp
Aliases¶
int64¶
using ludus::foundation::core::int64 = std::int64_t
Declared in modules/localization/include/ludus/localization/catalog.hpp
uint32¶
using ludus::foundation::core::uint32 = std::uint32_t
Declared in modules/localization/include/ludus/localization/catalog.hpp
uint64¶
using ludus::foundation::core::uint64 = std::uint64_t
Declared in modules/localization/include/ludus/localization/catalog.hpp
uint8¶
using ludus::foundation::core::uint8 = std::uint8_t
Declared in modules/localization/include/ludus/localization/catalog.hpp
usize¶
using ludus::foundation::core::usize = std::size_t
Declared in modules/localization/include/ludus/localization/catalog.hpp
float64¶
using ludus::foundation::core::float64 = double
Declared in modules/localization/include/ludus/localization/formatter.hpp