Flatten a YAML language file into an Excel sheet a translator can edit, then load it straight back to YAML — nested keys, sequences, placeholders, escapes and key order all preserved, refill never drifts, hierarchy never collapses. Not generic YAML-to-table — the one step a localization workflow actually needs.
This conversion exists so engineers and translators each use the tool they're comfortable with — without losing anything in between.
The language file back-end, Rails, Flutter and CI teams use: indented key-value pairs, often nested (menu.start.label), with sequences and plural branches (items[0]), values carrying placeholders ({name}, %{count}, %s). Clean for engineers — not something to hand-edit row by row.
The interface translators, reviewers and vendors find most natural: one row per string, key and translation side by side, easy to filter, bulk-edit and annotate. The catch: raw Excel flattens the nesting, treats {name} as plain text, and an unquoted NO or 42 gets re-typed into a boolean or number — and then it won't load back into the codebase.
What this tool guards is exactly that "won't load back": on export it carries nested keys, sequence indices, placeholders and escapes faithfully into the sheet, and keeps every scalar's type — so a quoted "42" stays a string and an unquoted NO never flips to a boolean; on import it refills by key and restores the hierarchy. A few YAML constructs can't survive a spreadsheet and are reported, never silently dropped: comments, anchors / aliases / merge keys (expanded to their values), multi-document streams (only the first is converted) and block-scalar styling (the value is kept, the byte-exact style is not).