mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 10:29:58 +02:00
Add localization/ — one strings.json is the source of truth for every
user-facing string, and a Bun CLI generates the platform files:
loc migrate rebuild strings.json from existing platform files (one-time)
loc validate structural checks (plural `other`, arg refs, coverage)
loc generate emit .xcstrings (Apple) + per-language strings.xml (KMP)
Canonical `{name}` placeholders are converted to each platform's positional
printf tokens using declared arg types. Plurals use CLDR categories and emit
native forms: xcstrings plural variations and Compose <plurals> blocks.
Migration folds the KMP `transfer_file_count_one`/`_other` pair into a single
plural key, so `transferFileCountResource` now returns the plural resource and
callers resolve it with pluralStringResource.
22 lines
501 B
TypeScript
22 lines
501 B
TypeScript
#!/usr/bin/env bun
|
|
import { migrate } from "./commands/migrate";
|
|
import { generate } from "./commands/generate";
|
|
import { validate } from "./commands/validate";
|
|
|
|
const [cmd] = process.argv.slice(2);
|
|
|
|
switch (cmd) {
|
|
case "migrate":
|
|
await migrate();
|
|
break;
|
|
case "generate":
|
|
await generate();
|
|
break;
|
|
case "validate":
|
|
await validate();
|
|
break;
|
|
default:
|
|
console.error(`Unknown command: ${cmd ?? "(none)"}\nUsage: loc <migrate|generate|validate>`);
|
|
process.exit(1);
|
|
}
|