feat(translator-tools): add locale review and glossary workflow
This commit is contained in:
+11
-4
@@ -1,9 +1,16 @@
|
||||
# Architecture
|
||||
|
||||
Text Tools is a static React/Vite application wrapped in the shared Toolbox shell. `text/pipeline.ts` defines an ordered, typed list of transformations. `applyPipeline` starts from the exact source, applies enabled steps one at a time, checks expansion after every step, and returns the last successful output with per-step before/after counts and warnings.
|
||||
Translator Tools is a static React/Vite application wrapped in the shared Toolbox shell.
|
||||
|
||||
Text encoding/decoding, line-ending conversion, bounded CSV parsing and Unicode-aware case primitives come from `@add-ideas/toolbox-helpers`. File decoding uses an explicit encoding and fatal-or-replacement choice; it does not guess a charset. Inverse JSON/HTML/URL/Base64/hex stages are strict: malformed syntax and non-UTF-8 byte output fail the step rather than being silently repaired. Column selection offers a quoted CSV mode that preserves embedded delimiters/newlines and a separate literal-delimiter-per-line mode. Recipe JSON carries a schema/app identity, accepts at most 100 supported steps, discards supplied IDs and assigns local monotonic IDs.
|
||||
The workbench parses a single imported locale file in-browser, normalizes either:
|
||||
|
||||
`text/evidence.ts` inspects original bytes before decoding, including BOM, exact UTF-8 validity/first invalid offset, zero-byte parity and CR/LF/CRLF counts. Artifact export emits the selected output bytes and a deterministic evidence document containing canonical-source and exact-output SHA-256 values, inventories, recipe and step reports. The document records that direct Toolbox handoff is unavailable in this release; the SDK 0.3.0 transfer contract is intentionally not activated until the Portal consumer rollout is coordinated.
|
||||
- i18next-like language maps (`{ "en": {...}, "de": {...} }`)
|
||||
- single-locale objects (`{ "key": "value" }`, or JS-style assignment forms like `const de = {...}`).
|
||||
|
||||
Version 0.2 operations are synchronous and bounded, so the app creates no worker and has no persistence or server API. Relative entry and asset URLs keep the build relocatable below a nested portal path.
|
||||
Strings are flattened into stable dot paths for review/editing and can be serialized
|
||||
back with an inverse unflattening step. Suggestions come from local glossary entries
|
||||
and are matched by language pair and fuzzy string distance.
|
||||
|
||||
No background workers are required today. Persistent state is limited to a local
|
||||
Storage glossary cache; everything else remains in process memory until download or
|
||||
transfer.
|
||||
|
||||
Reference in New Issue
Block a user