mvdmio · Translation Tools

Your .resx files, translated for you.

A browser-based translation grid that reads and writes your project's own .resx files, fills empty locales with AI, and ships a NuGet client and CLI so your .NET app just consumes the result.

€999 / year, excl. VAT — one project, every locale. See pricing →

KEY EN NL DE Save_Button Cancel_Button Welcome_Title tinted cells — auto translated · dashed — not yet filled origin: /Localizations.resx translations push --prune
translation gridone key, every locale, side by side
.resx-firstOrigin-awareAI auto-translationTerm bank NuGet clientCLILive updatesGit-free
01

Your .resx files stay the source of truth

No export step, no separate translation format to keep in sync — the CLI reads and writes the same .resx files your build already uses.

  • translations pull writes local, locale-specific .resx files from the server, keyed by the project-relative path of each neutral resource file (its "origin")
  • translations push scans those local files and posts only what changed since the last pull — human edits, not noise
  • translations pull --prune and push --prune keep local files and server rows aligned when a key is removed on either side
Localizations.resx Localizations.nl.resx Localizations.de.resx push pull translations.mvdm.io
pull & pushorigin-aware, sparse, no full-state overwrite
02

AI fills the gaps, never overwrites a human

EN — Save changes source locale NL — Wijzigingen opslaan Auto translated A human edit later never gets overwritten — even one that lands mid-fill. Term bank
auto-translationempty cells only, terms respected

A daily job — and an immediate one when a key first becomes translatable — fills every empty non-default locale value from your default-locale text.

  • Only empty or missing values are touched; anything a person, an import, or your API already wrote stays exactly as it is
  • Each fill is grounded in your account's shared term bank, so a name or product term translates the same way everywhere it appears
  • Filled cells carry an "Auto translated" badge in the grid and in the history, so you always know which values still need a human look
03

A NuGet client and a CLI built for .NET

Nothing to hand-roll: the client generates strongly-typed resource classes from your .resx files, and the CLI drives the whole pull/push cycle from a terminal or a build pipeline.

  • The NuGet client's source generator reads your neutral .resx files directly and emits one type per resource set — no manual key constants
  • Generated properties read a runtime cache first, then an embedded snapshot, so lookups never block on the network
  • The translations CLI (init, pull, push) runs from a single .mvdmio-translations.yml config — no Git integration or extra service to run
  • Built-in WebSocket live updates keep a running app's translations current without a redeploy
$ translations init $ translations pull ✓ wrote 3 .resx files $ translations push ✓ pushed 12 changes class Localizations { public static TranslationRef Save_Button; public static string Get() ... } source-generated, not hand-written
NuGet & CLIgenerated types, one config file

Plain pricing

Translation Tools — annual licenceincluded
AI auto-translation & term bankincluded
NuGet client & CLIincluded
Locales per projectunlimited
Per year, excl. VAT€999

Stop passing files around.

Point the CLI at your project, pull your keys, and let the grid — and the AI — take it from there.