DEV Community

kamrandev-star
kamrandev-star

Posted on

I built a free tool to translate Android, iOS, and Flutter string files (and here's how the translation actually works under the hood)

Every time I've localized an app, it's gone one of two ways: hand-translate
the strings myself (slow, and my Spanish/French/whatever is not great), or
set up a full localization platform for what's really a five-minute job on
a small project.

So I built StringLingo AI — a free
tool that translates:

  • Android strings.xml
  • iOS Localizable.strings
  • Flutter .arb files
  • Or just plain pasted text

Upload the file, pick a target language, download a translated file with
the same keys and structure. No account, nothing stored.

The part I actually want feedback on

The interesting problem wasn't the UI, it was not breaking your strings
while translating them. Localization files are full of things a naive
translation pass will mangle:


xml
<string name="welcome_message">Hello %1$s, you have %2$d new messages</string>
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
amitfeldman profile image
Amit Feldman

Nice tool — a translator that handles XML, .strings, and ARB in one place is exactly the unglamorous utility mobile teams end up needing at 11pm. I ran my usual launch-day scan on string-lingo-ai.vercel.app while reading, sharing in case it's useful:

  • HSTS is preloaded and nosniff, Referrer-Policy, and Permissions-Policy are all set — you're ahead of most launches I scan.
  • Content-Security-Policy is missing — the one gap worth closing. On Vercel it's a small headers block in vercel.json (or headers() in next.config if it's Next.js). Even a starter default-src 'self' plus your API/AI endpoints mitigates XSS and data-injection.
  • X-Frame-Options is also unset — one line (frame-ancestors 'self' inside the CSP covers it too) and clickjacking is off the table.
  • SEO side is clean: title, meta description, exactly one H1, robots.txt and sitemap all good. TLS fine, 52 days on the cert.

I run these passive launch scans for free — happy to send the full report (14 checks with the timing breakdown) if you want it. Congrats on shipping!