String Localizer

UtilityLocalizationWeb

A web tool that translates a piece of interface copy into several target languages at once: paste the string, pick the source language, tick the languages you need, and read the results side by side.

Localizing an app means turning one sentence of interface copy into a dozen languages, and doing it one language at a time at a translation site means carrying the original string back and forth. String Localizer takes the string once: choose the source language, tick every language you need from the picker, and the output pane fills with one result per language so they can be compared against each other before any of them is pasted into a file.

String Localizer

How it was built

The problem

Interface copy has to be consistent across languages, and translating one string per visit to a general translation site makes it easy to drift in tone and easy to lose the original while editing.

The approach

One input, many targets: the source text and its language stay fixed in the top half of the page while the chosen languages fill the output half, so a whole set of translations is reviewed in one glance rather than one tab at a time.

What the current build does

Version 1.1 is a single scratch space: an input box, a source-language selector, a multi-select over the target languages, one TRANSLATE action and an output region that holds a result per language. Results can be copied out, and the page carries a short example of the same words rendered in three languages so the output format is clear before you type anything.

What it does not do

It does not read or write localization files. It holds no dictionary, keeps no project between visits and remembers no string once the tab closes — the source text is supplied every time. If you need a file of keys merged and re-serialised, that is a different tool from this one, and describing this page as that would be a claim the running app does not support.

Built to stay a small tool

The whole app is one React page served as static files, with translation behind a request rather than a server of its own. That is deliberate: a utility that translates a handful of strings has no state worth keeping, so there is no account, no storage and nothing to migrate when the interface changes.