nowfound

Dev tools · July 8, 2025

LF

Lokilizer – free tool for translating apps from two source langs to any

Our use case: our app has Russian (our native language) and English. We needed to quickly and easily add more languages (as requested by clients). Our translation files were a mess: duplicated strings, concatenation instead of placeholders, different string order in ru/en files, trailing spaces, and much more. So I wrote a helper tool to fix all of this. Now, adding a new language takes just 40 minutes and $2. It worked so well that I cleaned up the project and released it as open source. # Key feature: Translation into new languages happens from two source languages at once: the…

What it does

In the maker’s words, at launch

Our use case: our app has Russian (our native language) and English. We needed to quickly and easily add more languages (as requested by clients). Our translation files were a mess: duplicated strings, concatenation instead of placeholders, different string order in ru/en files, trailing spaces, and much more. So I wrote a helper tool to fix all of this. Now, adding a new language takes just 40 minutes and $2. It worked so well that I cleaned up the project and released it as open source. # Key feature: Translation into new languages happens from two source languages at once: the primary (Russian, in our case) and the secondary (English, for us). The secondary language isn’t strictly required, but highly recommended. No matter how many other languages you have, only the primary and secondary languages get sent to the LLM context for translation. By the way, the context also includes nearby strings and a glossary (more on that below), and the prompt is designed so the LLM first comments what the string is, where it’s used, and only then translates it. This combination, based on my tests, dramatically improves translation quality. # About translations: - Supported formats: for now, only JSON (flat & structured) + i18next-style pluralization, but it’s easy to add new formats. - Pluralization: supports both cardinal and ordinal forms. Example: { "key_one": "1 file", "key_other": "{{count}} files" } - Placeholders: ${likeJs}, {{doubleCurve}}, {singleCurve} — you can add new formats easily. Preferred format is set per project. - Order of strings is preserved! Important both for meaning and for LLM. - Multiline strings: supports both \r and \n (configurable). - String comments: you can add explanations, stored only in the app. By default, they’re generated by LLM. - Suggested translation: you can provide a recommended translation separately (e.g., from a professional translator or AI Suggest). - Bulk or single translation, with LLM selection per language. - Reuse of translations: for bulk translation, already translated identical strings are reused. - Old strings/translations aren’t deleted but kept in the DB. This partly covers branching scenarios in git, when some branches already have new translations, some don’t. Nothing gets lost. # String validation When we started seriously dealing with translation and localization, we quickly realized our translation files were a total mess. Not just untranslated strings, but also obsolete translations (strings deleted from the primary language), places where placeholders were replaced with string concatenation, translations where the primary (Russian) used “:”, but the secondary (English) didn’t, or line breaks existed only in one. Even cases where the primary had a placeholder but the secondary forgot it. All these cases are now checked, and any uploaded/translated string gets a Warning flag if: - The translation string is empty - There are leading or trailing spaces - String contains multiple consecutive spaces - The translation is identical to the primary or secondary (with exceptions for email, api, ip, url, uri, id) - A placeholder is missing that exists in the primary language - The translation has a placeholder that doesn’t exist in the primary - Number of line breaks (\r or \n) differs between primary and translation - Number of colons : differs between primary and translation - Pluralized value missing or extra for the language - Pluralized values differ in line breaks or colons Regardless of validation, the user can manually mark a string as verified, allowing flexible filtering and mass translation control. Gifs and more info at GitHub: https://github.com/XAKEPEHOK/lokilizer/

Does the same job

all alternatives →
  • Nitro2021 · ▲295

    Fast, professional translations by native speakers, open API

  • Localizer2020 · ▲119

    Free self-hosted open-source crowd-translating service

  • Lang2019 · ▲115

    Internationalization built for devs

  • Algebras AI2025 · ▲190

    Translate apps with AI, no proofreading

  • Translatespace2024 · ▲159

    Auto-localization for busy people - don't miss out on SEO

  • Multilingual2022 · ▲78

    A command line translation automation tool for developers

More dev tools this month

the category →
  • Dograh592

    The open source VAPI alternative

    Dev tools · 25d ago · dograh.com

  • Meridian530

    Don't let your work go unnoticed. Get promoted!

    Dev tools · 20d ago · meridiona.com

  • x1516

    Lovable for iPhone apps go from idea to App Store

    Dev tools · 11d ago · x1.new

  • Open-source GTM skills for technical founders

    Dev tools · 29d ago · gtmcofounder.com

  • OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.

    Dev tools · 1d ago · opentrailpaper.com

  • Nuphos380

    The AI-Native DevOps Workspace.

    Dev tools · 24d ago · nuphos.ai

Launched alongside, July 2025

the whole month →
  • Clueso1,298

    Create stunning product videos in minutes with AI

    AI · 2025 · clueso.io

  • The 1st Agentic Canvas for building apps visually with AI

    AI · 2025 · trickle.so

  • TB
  • TY

    Today marks ten years, 3653 consecutive days, of running at least one mile every day under the USRSA rules [1]. To celebrate, I built an interactive dashboard that turns a decade of GPX files into charts you can explore. Running has truly changed my life: I've made lifelong friends, explored beautiful places, and more importantly invested into my own health and fitness, which I'm starting to see the positive benefits as I get older. The stack is pretty simple: a NextJS app, with a Postgres database to keep all my running data, and all the stats are pre-computed and cached in Redis, so I…

    Dev tools · 2025 · nodaysoff.run

  • DA

    Made this website as an exercise in vibe-coding and GCP. It was posted about a few times around the internet, on sites like Morning Brew (https://www.morningbrew.com/issues/business-buzzkill), MetaFilter (https://www.metafilter.com/209703/Draw-A-Fish), boingboing.net, etc. I think it's cute! I built a basic CNN trained against penises and swastikas, and then anything that doesn't hit the 63% confidence score gets sent to a mod queue, a vibe-coded fish-tinder…

    Dev tools · 2025 · drawafish.com

  • AppStruct864

    No-code app builder

    Dev tools · 2025 · appstruct.ai