Skip to main content

Crate ferrocat_po

Crate ferrocat_po 

Source
Expand description

Performance-first PO parsing and serialization.

The crate exposes both owned and borrowed parsers for gettext PO files, plus helpers for serialization and higher-level catalog update workflows.

§Examples

use ferrocat_po::{PoFile, SerializeOptions, parse_po, stringify_po};

let input = "msgid \"Hello\"\nmsgstr \"Hallo\"\n";
let file = parse_po(input)?;
assert_eq!(file.items[0].msgid, "Hello");

let output = stringify_po(&file, &SerializeOptions::default());
assert!(output.contains("msgid \"Hello\""));
use ferrocat_po::{
    CompileCatalogArtifactOptions, CompileSelectedCatalogArtifactOptions,
    CompiledCatalogIdIndex, ParseCatalogOptions, compile_catalog_artifact_selected,
    parse_catalog,
};

let source = parse_catalog(ParseCatalogOptions {
    content: "msgid \"Hello\"\nmsgstr \"Hello\"\n",
    source_locale: "en",
    locale: Some("en"),
    ..ParseCatalogOptions::default()
})?
.into_normalized_view()?;
let requested = parse_catalog(ParseCatalogOptions {
    content: "msgid \"Hello\"\nmsgstr \"Hallo\"\n",
    source_locale: "en",
    locale: Some("de"),
    ..ParseCatalogOptions::default()
})?
.into_normalized_view()?;
let index = CompiledCatalogIdIndex::new(&[&requested, &source], ferrocat_po::CompiledKeyStrategy::FerrocatV1)?;
let compiled_ids = index.iter().map(|(id, _)| id.to_owned()).collect::<Vec<_>>();
let compiled = compile_catalog_artifact_selected(
    &[&requested, &source],
    &index,
    &CompileSelectedCatalogArtifactOptions {
        requested_locale: "de",
        source_locale: "en",
        compiled_ids: &compiled_ids,
        ..CompileSelectedCatalogArtifactOptions::default()
    },
)?;

assert_eq!(compiled.messages.len(), 1);

Structs§

BorrowedHeader
Borrowed header entry from the PO header block.
BorrowedPoFile
Borrowed PO document that reuses slices from the original input whenever possible.
BorrowedPoItem
Borrowed gettext message entry.
CatalogMessage
Public message representation returned by super::parse_catalog.
CatalogMessageExtra
Extra translator-facing metadata preserved on a catalog message.
CatalogMessageKey
Stable lookup key for catalog messages.
CatalogOrigin
File and line information for an extracted message origin.
CatalogStats
Basic counters describing an update operation.
CatalogUpdateResult
Result returned by catalog update operations.
CompileCatalogArtifactOptions
Options controlling high-level compiled catalog artifact generation.
CompileCatalogOptions
Options controlling runtime catalog compilation.
CompileSelectedCatalogArtifactOptions
Options controlling selected-subset compiled catalog artifact generation.
CompiledCatalog
Runtime-oriented lookup structure compiled from a normalized catalog.
CompiledCatalogArtifact
Host-neutral compiled runtime artifact for one requested locale.
CompiledCatalogDiagnostic
Diagnostic emitted by super::compile_catalog_artifact.
CompiledCatalogIdDescription
Metadata describing one compiled runtime ID for a specific catalog set.
CompiledCatalogIdIndex
Stable compiled runtime ID index built from one or more normalized catalogs.
CompiledCatalogMissingMessage
Missing-message record emitted by super::compile_catalog_artifact.
CompiledCatalogUnavailableId
Known compiled runtime ID that was not present in the provided catalog set.
CompiledMessage
A compiled runtime message keyed by a derived lookup key.
DescribeCompiledIdsReport
Report returned by CompiledCatalogIdIndex::describe_compiled_ids.
Diagnostic
Non-fatal issue collected while parsing or updating catalogs.
ExtractedPluralMessage
Structured plural message input used by catalog update operations.
ExtractedSingularMessage
Structured singular message input used by catalog update operations.
Header
A single header entry from the PO header block.
MergeExtractedMessage
Borrowed extracted message input for the lightweight merge helper.
MsgStrIter
Iterator over MsgStr values.
NormalizedParsedCatalog
Parsed catalog with fast key-based lookup helpers.
ParseCatalogOptions
Options for parsing a catalog into the higher-level message model.
ParseError
Error returned when parsing or unescaping PO content fails.
ParsedCatalog
Parsed catalog plus diagnostics and normalized headers.
PluralSource
Source-side plural forms for structured catalog messages.
PoFile
An owned PO document.
PoItem
A single gettext message entry.
SerializeOptions
Options controlling PO serialization.
SourceExtractedMessage
Source-first extractor input that lets ferrocat infer plural structure.
UpdateCatalogFileOptions
Options for updating a catalog file on disk.
UpdateCatalogOptions
Options for in-memory catalog updates.

Enums§

ApiError
Error returned by catalog parsing and update APIs.
BorrowedMsgStr
Borrowed translation payload for a PO item.
CatalogSemantics
High-level semantics used by the catalog API.
CatalogStorageFormat
Storage format used by the high-level catalog API.
CatalogUpdateInput
Input payload accepted by catalog update operations.
CompiledCatalogTranslationKind
High-level translation kind associated with a compiled runtime ID.
CompiledKeyStrategy
Built-in key strategy used when compiling runtime catalogs.
CompiledTranslation
Translation value stored in a compiled runtime catalog.
DiagnosticSeverity
Severity level attached to a Diagnostic.
EffectiveTranslation
Owned translation value materialized from a parsed catalog.
EffectiveTranslationRef
Borrowed view over a message translation.
ExtractedMessage
Structured extractor input accepted by super::update_catalog and super::update_catalog_file.
MsgStr
Message translation payload for a PO item.
ObsoleteStrategy
Strategy used for messages that disappear from the extracted input.
OrderBy
Sort order used when writing output catalogs.
PlaceholderCommentMode
Controls whether placeholder hints are emitted as extracted comments.
PluralEncoding
Encoding used for plural messages in PO files.
TranslationShape
Public translation shape returned from parsed catalogs.

Functions§

compile_catalog_artifact
Compiles one requested-locale runtime artifact from one or more normalized catalogs.
compile_catalog_artifact_selected
Compiles one requested-locale runtime artifact for a selected subset of compiled IDs.
compiled_key
Derives the default stable runtime lookup key for msgid and msgctxt.
escape_string
Escapes a PO string literal payload.
extract_quoted
Extracts and unescapes the first quoted PO string from line.
extract_quoted_cow
Extracts and unescapes the first quoted PO string from line, borrowing from the input when no escapes are present.
merge_catalog
Merges extracted messages into an existing PO catalog while preserving the existing translation payload.
parse_catalog
Parses catalog content into the higher-level representation used by ferrocat’s catalog APIs.
parse_po
Parses PO content into the owned PoFile representation.
parse_po_borrowed
Parses PO content into a borrowed representation.
stringify_po
Serializes a PoFile back into gettext PO text.
unescape_string
Unescapes a PO string literal payload.
update_catalog
Merges extracted messages into an existing catalog and returns updated catalog content.
update_catalog_file
Updates a catalog on disk and only writes the file when the rendered output changes.