nwnrs-localization 0.0.8

Shared Neverwinter Nights localization vocabulary and language helpers
Documentation
# nwnrs-localization

`nwnrs-localization` defines the small vocabulary that recurs across TLK, GFF,
SSF, and installation-facing resource loading.

## Scope

- represent NWN language identifiers
- represent dialog string references
- represent the male/female selector used by TLK lookup
- keep those foundational concepts consistent across the workspace

The relevant entry points are [`Language`], [`StrRef`], and
[`resolve_language`].

## Public Surface

### Core types

- `StrRef`
- `Language`
- `Gender`

### Constants and parsing

- `BAD_STRREF`
- `ParseLanguageError`
- `resolve_language`

### Important `Language` operations

- `Language::id`
- `Language::short_code`
- `Language::from_id`
- `FromStr for Language`

## Logical Edges

- `BAD_STRREF` is the sentinel for "no string" and must be treated as such by
  higher layers
- `Language` is an NWN-specific vocabulary, not a general i18n abstraction
- `Gender` is here because TLK lookup has male/female layering semantics
- `resolve_language` and `FromStr` form the normalization boundary between user
  input, install directory naming, and the typed language enum

## See also

- [`nwnrs-tlk`]https://docs.rs/nwnrs-tlk, which uses `Language`, `Gender`,
  and `StrRef` for dialog-table lookup
- [`nwnrs-gff`]https://docs.rs/nwnrs-gff, which uses `StrRef` and `Language`
  for localized string fields
- [`nwnrs-ssf`]https://docs.rs/nwnrs-ssf, which stores `StrRef` values in
  soundset slot entries
- [`nwnrs-encoding`]https://docs.rs/nwnrs-encoding, which provides the
  byte-level text encoding that this crate builds on

## Why This Crate Exists

Without a single localization vocabulary, every crate that touched `TLK` or
language roots would reinterpret the same concepts independently.