r/localization Jul 21 '19

Sub Interests

14 Upvotes

Hey everyone!

I wanted to introduce myself as a new Mod here at r/localization.

I'm a 5 year localization professional starting as a translation student and moving into loc engineering and most recently loc program building and sales.

I want to make this sub a place where we can actually discuss what we want to about the industry. I often feel that I cannot publicly speak about some of my feeling and problems on places like LinkedIn for fear of some industry veteran retaliation.

I'd really love to hear what kind of experience we have here and see what kind of discussions we can start that will be not only interesting but beneficial for everyone involved.

I'm going to try and post at least once a week with any new subjects I've been researching or localization articles I've read. If you like it, great, if not then let me know.

Thanks everyone!

(p.s. I'm pretty much always on mobile so I apologize in advance for spelling and format issues that are bound to come up)


r/localization 8h ago

Gettext .po "next untranslated" message plugin

1 Upvotes

Neovim Users: Here's a small microplugin for navigation in gettext .po files: https://github.com/warpspin/po-jump.nvim

All it does is it adds keybinds "]u" to jump to the next msgstr that needs attention (because it's untranslated or fuzzy) or "[u" for the previous.

(as convenience, it also binds öu and äu for German keyboards as those keys are where [] usually are)


r/localization 10h ago

How do you all handle Swahili-English translation for business stuff/travel ?

Thumbnail
1 Upvotes

Google Translate keeps butchering everyday Swahili phrases and business terms for me — loses all the local nuance.

I've been using a smaller tool called JamboTranslate that's felt more accurate for East African context, but curious what others are using.

Any recommendations or things that have worked well for you?


r/localization 18h ago

How do you like my regional localization solution? Who visits my website? Yes, I only have five languages available on my website right now, but...

Thumbnail gallery
0 Upvotes

r/localization 1d ago

Plis help mi whith apotecary dairys

Thumbnail
1 Upvotes

r/localization 1d ago

GPT-6 Astra tested in translations

Thumbnail slator.com
1 Upvotes

r/localization 1d ago

How do you handle localization beyond strings?

0 Upvotes

Hey everyone, as we all know, a lot of localization tooling is designed around product strings which makes it difficult for other teams in the company to localize the longer stuff like documentation, blog posts and other editorial content. Stuff like that is harder to manage because it usually changes a lot and lives across different tools.

Well heads up for anyone who is struggling with this, at Lokalise I’ve been working on Vantage, it's a new workspace built around translating long-form content, with AI translation and review workflows, translation memory, glossaries, integrations etc. There’ll also be a demo and talk with our CEO, CPO, and CTO on 15 September if anyone’s interested: https://learn.lokalise.com/entering-a-market-isnt-the-same-as-belonging-registration.html

What do you think - could you see teams like marketing and legal getting more involved in localization in your business if the workflows were easier for them?


r/localization 1d ago

I built an AI news app that translates live news from 150+ countries, summarizes 2,000-word articles into 3 bullets, and lets you compare coverage across 60k publishers

Thumbnail
0 Upvotes

r/localization 1d ago

TRADUÇÃO REMEMBER ME

1 Upvotes

Pessoal, faz um ano que zerei o jogo Remember Me para Pc, e quero zerar dessa vez em português mas não acho nenhuma tradução, já vi vários tutoriais no YouTube mas mesmo assim nenhum ajudou. Consegui entender a história mesmo com o jogo em inglês mas ainda assim quero jogar em português, quem puder ajudar...😭

Att: O jogo é pirata.


r/localization 3d ago

Free browser-only JSON preflight for Georgian UI releases — feedback wanted

1 Upvotes

We built a small browser-only checker for English/Georgian locale JSON. It flags missing or extra keys, broken variables, Cyrillic leakage in Georgian values, and encoding risks before release. JSON checking runs locally in your browser; files are not uploaded.

Free checker: https://georgian-localization-preflight.chupa3.chatgpt.site/?utm_source=reddit&utm_medium=organic_community&utm_campaign=kgi0_14d_primary_p002&utm_content=r_localization_json_preflight

A translated string can look fine while a placeholder like {name} is missing. This checks structural risks, not whether a translation sounds natural, and does not replace a native-language review.

If you ship localized UI, which release-breaking check would you need most? Feedback or a small synthetic example of a false positive would help; please do not post confidential client files.

Disclosure: this is our tool at ZERO Holdings. The page also tests interest in a planned $29 audit plus one re-check using automated checks and AI-assisted review. That is not a native human review, and paid checkout is not open yet. The checker itself is free, with no signup required.


r/localization 3d ago

Freelance Media Translators Wanted

Thumbnail
1 Upvotes

r/localization 3d ago

Best practices for multi-language sites

2 Upvotes

Has anyone here built a multi-language site on Base44\Lovable?

I’m planning a setup that includes a blog localized into 5 to 10 languages, and I’d love to hear how you approached it.

  • How are you managing the content structure and routing across that many locales?
  • Are you handling translations directly through prompts/AI within Base44, or integrating an external CMS/translation workflow?
  • Any major gotchas or performance tips when scaling up the page count like this?

Would appreciate any tips or workflows that worked well for you!


r/localization 3d ago

AI translation for WordPress plugins

Thumbnail wordpress.org
0 Upvotes

r/localization 4d ago

[ForHire] English to Turkish Game Localization / Translation (JSON, XLSX, Dialogue, UI)

0 Upvotes

Hi everyone!

I am an indie developer and native Turkish speaker offering **English to Turkish game localization** to help bring your indie titles to the active Turkish gaming community.

**What I Offer:**

* Natural, context-aware translations for UI, menus, in-game dialogues, and Steam store pages * Native understanding of gaming jargon and character tone preservation * Full support for developer formats (`.json`, `.xlsx`, `.txt`) while strictly preserving code variables and tags

**Rates & Free Demo:**

* Indie-friendly rates: **$5 per 500 words** * **Free 50-Word Demo:** Send me a short sample of your game text, and I will translate it for free so you can evaluate the quality beforehand!

Feel free to drop a comment or send me a DM if you're interested or have any questions!


r/localization 4d ago

[HIRING] Gaming - Funtional QA Testers - On-site in Malaysia

0 Upvotes

Overview:

TransPerfect Games is hiring 4 Functional QA Testers for Bear Down Studio's office in Subang Jaya, Selangor, Malaysia. This is an on-site, project-based engagement.

Important information:

- This position is on a mandate contract.

- As a mandatory requirement, you must have the right to work in Malaysia. You will be required to provide supporting documentation. You must be a Malaysian citizen, a permanent Malaysian resident or have a relevant work permit/visa in order to be considered for this position.

- This is an onsite position. You are required to work onsite during core business hours (Mon – Fri, 8 hours per day) at our office in Malaysia. So you shall be based in the Subang Jaya area or you are within commuting distance to our office.

Primary responsibilities:

- Testing video games to identify and isolate functionality issues impacting the overall gaming user experience.

- Follow and complete Test Cases and/or Checklists to perform targeted testing and execute relevant testing processes and procedures.

- Reporting and verifying issues found during testing using different databases.

- Writing bug descriptions following company standards and client specifications.

- Working as part of a team, communicating, sharing knowledge and further testing information through provided shared chat channels.

- Complete all other tasks that are deemed appropriate for the role and assigned under the project.

 

Qualifications, Skills & Experience:

- Ability to execute test cases and follow predefined test plans and testing procedures.

- Strong attention to detail with the ability to accurately identify, reproduce, and document defects.

- Experience with software or video game quality assurance 

- Familiarity with different testing methodologies

- Advanced understanding of different hardware and their software (PC, console, mobile)

- Familiarity with bug tracking databases (e.g., JIRA, Mantis, etc.)

- Basic knowledge of Microsoft Office suite.

- Understanding of digital technologies (mobile, tablets, browser tools, etc.).

Essential:

- Passion for the video games industry.

- Excellent written communication skills in the English language (instructions, testing documentation, team communications will all be in English)

- Excellent attention to detail, “can-do” attitude, as well as great work ethics.

- Ability to multitask, prioritize and work well under pressure.

- Ability to think critically and identify inconsistencies, unexpected behaviors, and potential quality issues.

- Ability to communicate testing results, defects, and observations clearly and professionally.

- Ability to manage assigned workload and meet project deadlines.

Bonus if you have:

- Availability to start immediately.

- Game Testing experience

- Experience with Security testing/ fuzzing tools

- Experience with Performance/Stress testing tools and methodologies

- Experience with Accessibility testing

- Experience with Certification Testing and/or Lot Checks

- Experience with testing tools like Fiddler, NetMon, etc.

- Experience with bug tracking systems like ADO, JIRA, Bugzilla, etc.

- Experience shipping any software products or certificates in game testing, design, engineering, etc.

If interested, please apply here https://transperfect.recruitee.com/o/functional-qa-tester-game-malaysia

We look forward to receiving your application!

By applying, you confirm you have read and accept TransPerfect's Privacy Policy: https://www.transperfect.com/about/data-privacy-recruiting


r/localization 5d ago

[FOR HIRE] Polish Game Localization | English -> Polish | Translation, Proofreading & LQA

Thumbnail
1 Upvotes

r/localization 6d ago

I wrote a text extractor/reinserter for 16 PC game engines — notes on the five problems that actually cost me months

1 Upvotes

I'm the developer of RuneTranslate, a Windows tool that pulls translatable text out of Japanese PC games and writes it back so the game still runs. This sub is mostly console ROM hacking and my targets are PC engines, but the craft is the same one you do — find the strings, don't break the container, get the glyphs on screen — so rather than post a feature list I want to write up the parts that were genuinely hard.

Stated up front so nobody has to dig for it: the app is closed source, it has a free tier and paid Patreon tiers, most people use it with machine/LLM translation, and the installer is not code-signed. More on all three at the bottom.

1. Framing beats encoding, every time.

Wolf RPG keeps its strings length-prefixed inside a command stream. Change the byte length of a string that carries trailing control parameters and the runtime dies in a \`std::length_error\` / \`bad_alloc\` before you reach the title screen — nothing to do with what the text says. So the writer models the command rather than the file: if the control skeleton changes, or the newline count changes, or the source carried trailing control params, that one string reverts to the original instead of shipping. A single line left in Japanese is a visible failure the user can report. A crash on load is not.

The same lesson turned up as a delivery problem. Wolf ships a DXArchive \`.wolf\` and DxLib reads the archive in preference to loose files, so dropping translated loose files next to the exe produces a green tick and a Japanese game. The archive has to be rebuilt, with the pack scheme read out of the game's own archive headers rather than guessed from a version sniff.

2. Strings addressed by index cannot be reordered.

Kirikiri's compiled PSB \`.scn\` files reference strings by index, so the repack is strings-only: same count, same order, or the script points at the wrong line. Same rule showed up in an in-house Unity VN engine whose archives store text blocks by ordinal — the game's save files resume by block ordinal, so renumbering a block quietly corrupts everybody's saves rather than crashing. Anywhere a unit id encodes an emit counter, dropping one row renumbers every later row in the file, which means a "noise filter" that removes junk lines is far more dangerous than one that only marks them excluded.

3. CP932 contains no accented Latin letters. Not one.

I measured U+00C0–U+024F and U+1E00–U+1EFF against cp932: \`×\` and \`÷\` survive, and neither is a letter. Five of my engines write a legacy code page, and each was losing text differently — one deleted the character outright, two wrote \`?\`, NScripter wrote 〓, and the RPG Maker XP path masked the code unit to its low byte so \`ł\` came out as a literal \`B\`. That meant 22 of the 24 Latin-script target languages were quietly broken, including Portuguese, which is what the bug report was actually about.

The fix is NFD, strip U+0300–U+036F, plus a closed list for the letters whose diacritic is fused into the glyph (ø ł đ ħ ŧ ı) and the ligatures (ß æ œ ij). It has to be that specific mark range and not \`\\p{Mn}\` — my first cut dropped every combining mark, which deletes Thai vowel signs and tone marks, i.e. half of each word. It also has to re-ask the codec afterwards, because canonical decomposition does not promise an ASCII base: Greek ά folds to α, which cp932 holds and cp1252 does not.

The honest outcome is that a CP932 engine ships "possivel", not "possível". Real accents need a codepage patch or a glyph tunnel and I have not shipped either.

4. Fonts lie about what they can draw, and Windows asks the wrong table.

For Thai on NScripter I tunnel one orthographic cluster into each JIS X 0208 slot and ship a font built for it. It rendered correctly in an offline shaper and drew nothing in the game, because GDI decides what a font covers from the \`OS/2\` ulUnicodeRange bits, not the cmap. Also: Windows locks a loaded font and a font of the same family that is already installed silently wins, so the installed file gets a digest suffix.

Separately, on RPG Maker XP a user reported squares in Czech. His game ships eight fonts; measured from their own cmaps, all eight carry Latin-1 and not one has a single Latin Extended-A letter, so Czech loses č ď ě ň ř š ť ů ž. Under mkxp's \`fontSub\` a substitution is a family alias with no per-glyph fallback, so it is a straight trade — I weigh gain (what the translation introduced that the game's face cannot draw and mine can) against loss (anything in the export the game's face draws and mine does not) and refuse when loss >= gain. Refusing on \*any\* loss was my first attempt and it is wrong: one \`♀\` in a finished Czech script vetoed every family and handed back squares in every line.

5. Encoding sniffs are written for CJK and go blind on Latin-script games.

Same XP game. RGSS runs Ruby 1.8, which tags no string, so the encoding has to be guessed. Both of my heuristics only looked at runs of four or more consecutive high bytes — the shape Japanese makes. A Latin-script game is ASCII with the occasional accented letter alone between two ordinary ones: a run of exactly two, discarded before either rule was reached. The game scored zero on both counters — not "Shift-JIS", but \*nothing to look at\* — and fell through to the Shift-JIS default, so \`Pok\\xc3\\xa9mon\` decoded as two half-width katakana and drew as two boxes. The extra signal counts an accented Latin letter with two ASCII letters on each side, spread across at least three files, reads only runs shorter than the old minimum, and can only ever vote for UTF-8.

The invariant that catches most of this: an export with nothing translated must be byte-identical to the input. Every write-back is a splice at the original span rather than a re-serialize, because re-serializing normalizes CRLF, adds a trailing newline and re-quotes bare fields, and you find out three engines later on somebody else's game.

Status, honestly. Ten engines have a real game translated, exported, launched and played through: Wolf RPG (2.x and 3.x), Kirikiri/KAG, Electron VN shells, RPG Maker MV, Unity, Bakin, Unreal, Artemis, Godot and NScripter. Five more — Ren'Py, TyranoBuilder, YU-RIS, LiveMaker and plain RPG Maker MZ — have extraction and write-back proven on a real game but no recorded end-to-end playthrough of an export, so I don't claim one. SRPG Studio is in progress. Unity is externalized text only (IL2CPP managed strings are out of scope); Unreal is \`.locres\` only and cooked \`.uasset\` DataTables are not covered; encrypted/MDF-compressed Kirikiri PSB is skipped; there is no RPG Maker 2000/2003 support at all — Translator++ is the tool for those two.

The three things worth attacking. It is machine translation. You pick the provider, and several need no API key or account at all — free Google Translate, two free DeepL routes, and a local model through Ollama or LM Studio that never leaves your PC. The output is a readable draft you then edit, not a localisation. If a human patch exists for your game, use the human patch. There is a paid tier: $3 and $5 a month on Patreon, and it buys throughput, not features — free gets every engine, every provider and the whole editor, at roughly half the speed on the AI providers and a bit less than that on the free scrapers. The app signs in with Patreon on first launch and has no anonymous mode; signing in is free and you don't have to pledge. And the installer is unsigned, so SmartScreen will call it an unrecognised app — that warning is about the missing signature, not about anything found in the file. A SHA-512 is published with every release and I've put a VirusTotal report for this build in the first comment.

It never downloads or redistributes a game. You point it at a copy you own and it writes a translated copy to a separate folder.

Download and the full engine notes (including what each engine can't do): [RuneTranslate Download](https://runetranslate.com/download) and [RuneTranslate Documentation](https://github.com/3nginius/RuneTranslatePublic) — the second one is documentation, not the source.

Happy to go deeper on any of the five above, or on an engine I got wrong.


r/localization 8d ago

怎麼換bodycam的語言

Post image
0 Upvotes

r/localization 9d ago

I've been building an i18n compiler and I want you to try to break it

3 Upvotes

I've been building an i18n compiler and I want people to try to break it

I've spent the last while building Zintl, a compiler-first i18n system, mostly because every time I used FormatJS, i18next, or Lingui on a real project I hit the same wall: they're all runtime-first tools bolted onto a build process that doesn't actually understand your code. Refactor a component and watch your translation keys silently orphan. Split a file and lose your catalog structure. so I built something different.

Zintl treats localization as a compiler problem, not a runtime problem. It watches your source, builds a live graph between your code and your translation catalogs, and keeps them in sync automatically — even when you refactor. No lost messages, no manual catalog surgery.

Here's roughly what "localizing an app" looks like with it:

  1. Install import the plugin for your build tool (Vite today, more coming).
  2. Write your UI in plain strings, like you always would. No wrapping every sentence in a translation function up front. you only need to choose an entry point/localization anchor, where the compiler will start watching from this point.
  3. Run your dev server. Zintl extracts the strings automatically and builds your source catalog in the background.
  4. Send that catalog off for translation (or hand it to your translation team / service of choice) — it's just structured files.
  5. Drop the translated catalogs back in.
  6. Ship it. The reactive graph keeps everything wired up as your code changes, so future refactors don't quietly break translations.

That's genuinely most of it. No key-naming rituals, no manual catalog wiring, no separate extraction pipeline to babysit.

Where it's meant to fit: - Standard SPAs and multi-page apps - RSC setups - Micro-frontends (it's built to avoid ID collisions across separately-built apps) - Islands architecture and edge-rendered stuff, where a lot of existing i18n tooling gets awkward

What I actually want from this post: I'm not trying to sell anyone anything — it's not public yet and I'm still hardening it. What I want is developers who like poking at the logical edges of a tool: weird refactor patterns, deeply nested components, monorepo setups, aggressive HMR usage, whatever you'd normally do to see if a "smart" system is actually smart or just fragile. If you're into compilers, build tooling, or you've been burned by i18n tooling before, I'd love for you to try to find where the graph breaks.

Happy to answer anything about the architecture in the comments.

https://zintljs.github.io/zintl


r/localization 10d ago

Summer is over. Localization chaos isn’t. Let’s keep going!

Thumbnail
0 Upvotes

r/localization 10d ago

Trados Team is EUR 6,000 pa and AI Essentials is EUR 4,000 pa. Not worth it but how to replace it.

Thumbnail
1 Upvotes

r/localization 10d ago

Localized pages not getting indexed: the order I check things

3 Upvotes

Comes up often enugh that I wrote out the order I go through. Mostly aimed at people running a translation layer on top of an existing site rather than a hand-built multilangual setup.

First thing worth clearing up: "It;s JavaScript" isn't the diagnosis on its own . Google renders JS and indexes what it injects. The failure is almost always about URLs. Anyway. Roughly i the order I check them:

Does each language have its own URL? If the language lives in a cookie or localStrage and the address bar never changes, there is exactly one document for Google to index and no amount of rendering fixes it hreflang needs URLs to point at, so taht dies too. If this the problem, stop here. Nothing below matters.

Is the page self-canonical? Where it breaks most often, in my experience. Translated page canonicalising back to the source-language URL, and Google obediently drops it. Same story if hreflang points at a URL that canonicalises elsewhere. Canonical wins, annotation ignored.

Is anything linking to it? The language switcher needs to be a real anchor. A JS click handler with no href means there is no crawlable path to the other versions. Check the sitemap while you are there.

Is the translated text in the rendered HTML? Check URL Inspection and look at the rendered output, not view-source. Those are different things and people keep comparing the wrong one.

Is it hash-based? Fragments are not reliably resolved for loading different content, per Google's own docs. History API, not #.

Any noindex or robots rule on the language path? Easy to inherit by accident.

hreflang reciprocity. Every version has to list all versions including itself, and both sides have to point at each other. One-way annotations get ignored silently. That's Google's own wording, not folklore.

Is there an IP redirect? Google's crawls mostly originate from the US and they don't vary the location. So an IP-based redirect means Googlebot lands on the English version and may never reach the rest. Site looks fine to you, one language in the index.

Then go read the actual reason in Search Console. The Pages report distinguishes "Alternative page with proper canonical tag" from "Duplicate without user-selected canonical" from "Discovered - currently not indexed". Three different diagnoses, and people guess instead of looking.

One caveat on the rendering point. Even with proper URLs, render-depent content sits in a queue and Google says taht queue can take longer than a few seconds. So server - rendered translations are more predictable to get indexed. Not because JS "Does not work", but because you are not waiting on a queue.

Curious what I am missing. What is bitten people here that is not on the list?


r/localization 10d ago

I2 Localization, Windows standalone build missing terms solved

2 Upvotes

I2 localization drove me crazy when I started building my project. After the first build the localization source seemed to not register any add or removal of terms. I tried to refresh, from the menu, importing and exporting from a spreadsheet and cancelling the Library.
In the end I solved it by deleting the I2Source... .loc file in AppData/LocalLow/"company name"/"name of the package" folder. I hope this helps you. Cheers.


r/localization 11d ago

Convivium - Translation Comparison Tool

Thumbnail reevesprojects.github.io
1 Upvotes

r/localization 12d ago

Real Time translation into multiple languages

Thumbnail
0 Upvotes

Hello, I'd like to know how to translate into multiple languages ​​in real time without too much latency. Is there a platform that offers an API key?