Broken translations in open source — a running tally | Shipi18n

Shipi18n

5 min read Original article ↗
ACINQ/phoenix869★Android XML + Apple .xcstrings15in repo55Fixed · our PR merged →Android: format-argument mismatches in 7 locales — PR #829 merged 2026-09-23 (maintainer's cause: lnurl work and the it/pl/ja/ko/uk localisations done in parallel against older files, never reconciled). iOS follow-up issue #831: 48 malformed format specifiers in Localizable.xcstrings (ar 39, fr 4, es 3, cs 2)solidusio/solidus5.3k★Rails YAML33in repo36Fixed · our PR merged →pt-BR: 13 strings dropped %{…} (PR #6626 merged same day, 3 approvals); nl/pl follow-up PR #6637 merged 2026-09-22 (3 approvals). Re-scan of main: nl/pl clean, the same %{names} drop remains in 19 other locales; also say_yes/say_no parsed as booleans in ko/pt and duplicate keys in 6 locale files. 09-30: their i18n-tasks interpolation spec never covered i18n/ (en.yml lives in core) — PR #6655 points it there + fixes 21 strings incl. a ja validation that raised and fr order emails showing a literal %{total}24pullrequests/24pullrequests1.7k★Rails YAML16in repo20Fixed · our PR merged →%{contributing_path} primer link dropped in 13 locales + hi variable names; merged same day (~2.5h after filing). 4 more in pt_br/zh_Hans/zh_Hant (our checker had skipped underscore-named files) → follow-up #5085 merged 09-30. Their i18n spec now checks interpolations too (i18n-tasks, #5086 merged 10-01)hoppscotch/hoppscotch81k★JSON (vue-i18n)33in repo7Fixed · our PR merged →af: {naam}→{name}, {team}→{workspace} ×3, hard-coded 10MB → {sizeLimit} ×2 — PR merged 2026-09-21 into next; re-scan of the merged tree: af clean, same drops still in 25 of the other 33 locales (123 strings)makeplane/plane60k★JSON (react-i18next)19in repo3Fixed · our PR merged →cs template toasts: {templateName}/{templateType} restored; merged same day by a co-foundermattogodoy/nametag1.1k★JSON (next-intl)9in repo3Fixed · our PR merged →de/ja/nb kept the pre-6ed69b9 wording: {name} the code no longer passes, and the relationship described from the wrong side; merged 10-03 by the maintainer, same dayscambra/devise_invitable2.7k★Rails YAML24in repo2Fixed · our PR merged →Now checked in their CI →zh-HK/zh-TW closed the interpolation with a paren — %{email) — so Rails never substituted the address; merged same day by the maintainernocodb/nocodb65k★JSON (vue-i18n)37Crowdin186Fixed · by maintainer →our issue #14573 → maintainer swept 39 locale files (+300/−300). 10-01 re-scan: 182 plural strings in 13 locales (pt_BR 22, sv 23, da/no/pt 22, nl 21, it 16, ar/ro 14, fi 3, eu, ja, zh-Hant) had the | separator machine-translated into <unk>, ●, +, £… — both forms render run together; not covered by eloqnt #14639. Issue #14717 (10-01) confirmed by the team and fixed the same day by maintainer PR #14718 (13 locales, +181/−182); develop re-checked clean, 0 errors in 39 localesifmeorg/ifme1.6k★Rails YAML17in repo20PR open →%{typename} renamed in 5 locales; hi/id/vi/zh translated variable names; ko refill date droppedbulwarkmail/webmail1.2k★JSON (next-intl)26in repo15PR open →mn showed the words 'Email'/'Server' instead of the user's email and server (value keys held label text); hu translated {delimiter} to {elválasztó}; mn {from}/{to} for {before}/{after}; fa/sk descriptions cut shortKochava-Studios/witsy2.0k★JSON (vue-i18n)8in repo7PR open →fr/pl/pt translated the variable names ({raccourci}, {uzasadnienie}…)HemantKArya/BloomeeTunes2.2k★Flutter ARB6in repo6PR open →de/es drop {title}; ja/ko drop {name}excalidraw/excalidraw133k★JSON (i18next)56Crowdin4PR open →our issue #12097 → contributor fixed es-ES {{mix}} and added a placeholder-parity test suiteAppFlowy-IO/AppFlowy77k★JSON (easy_localization)35in repo3PR open →de-DE: {Name}/{Zeit} translated variable names (cs/pl {}→{count} queued)thunder-app/thunder1.0k★Flutter ARB26in repo3PR open →es/it/sk drop {username}KRTirtho/spotube49k★Flutter ARB29in repo1PR open →ko: {error} droppedAnxcye/anx-reader8.9k★Flutter ARB15in repo1PR open →zh-TW collapsed the statisticYesterday ICU plural to the singular, so every value rendered as 昨天mastodon/mastodon50k★JSON (react-intl) + Rails YAML105Crowdin7Issue open →7 invalid ICU strings (de double-brace, ta translated 'other' keyword…) fall back to Englishchatwoot/chatwoot37k★JSON (vue-i18n) + Rails YAML52Crowdin2Reported in thread →zh drops {assigneeName}; all-locale pipe-plural collapse (export config) — commented on the open issue. 10-01 re-scan: pt_BR help-center views count merged both plural formsimmich-app/immich116k★JSON (ICU)79Weblate11Verified · TMS-managed3 invalid ICU + hy {user}; Weblate-managed, deploy-only issue form. 10-01 re-scan (underscore files now read): add_upload_to_stack drops its {isStack, select} in 7 locales, so it always says add to stacklouislam/uptime-kuma92k★JSON (vue-i18n)75Weblate6Verified · TMS-managedes {aquí}, fr {virgule}… translated variable names; Weblate-manageddiaspora/diaspora14k★Rails YAML92WebTranslateIt3Verified · TMS-managedar {community_spotlight}% mangled; WebTranslateIt, no-PR policycalcom/cal.com49k★JSON (next-i18next)43Lingo.dev1Verified · TMS-managedar drops {{appName}}; locales regenerated by Lingo.dev on every pushtwentyhq/twenty58k★gettext .po31Crowdin0Verified · TMS-managedCrowdin auto-pull every 2h; sr invents {dayOrDays}ente-io/ente29k★JSON (i18next)51Crowdin0Verified · TMS-managedCrowdin bot commits; findings unverifiedwe-promise/sure9.9k★Rails YAML117in repo0Vendored upstreamhits are in vendored rails-i18n defaults — belongs upstreamusememos/memos63k★JSON44in repo0Scanned · not verifiedlaurent22/joplin57k★JSON10in repo0Scanned · not verifiedRocketChat/Rocket.Chat46k★JSON58in repo0Scanned · not verifiedwg-easy/wg-easy27k★JSON25in repo0Scanned · not verifiedactivepieces/activepieces25k★JSON10in repo?Scanned · not verifiedgetmaxun/maxun18k★JSON8in repo0Scanned · not verifiedai-shifu/ChatALL16k★JSON9in repo0Scanned · not verifiedYishenTu/claudian16k★JSON9in repo0Scanned · not verifiedapexcharts/apexcharts.js15k★JSON47in repo0Scanned · not verifiedmealie-recipes/mealie13k★JSON41in repo0Scanned · not verifiedformbricks/formbricks13k★JSON24in repo0Scanned · not verifiedNotsfsssf/pixez-flutter13k★Flutter ARB15in repo0Scanned · not verifiedzyronon/TypeWords10k★JSON13in repo0Scanned · not verifiedCyberTimon/RapidRAW10k★JSON13in repo0Scanned · not verifiediib0011/omni-tools10k★JSON10in repo?Scanned · not verifiedgitalk/gitalk7.2k★JSON10in repo0Scanned · not verifiedal1abb/invoify6.4k★JSON17in repo0Scanned · not verifiedvalhalla/valhalla6.3k★gettext .po34in repo0Scanned · not verifiedelk-zone/elk6.0k★JSON42in repo?Scanned · not verifiedsdras/cssgridgenerator5.4k★JSON5in repo0Scanned · not verifiednanbingxyz/5ire5.3k★JSON6in repo?Scanned · not verifieddeckerst/aves5.3k★Android XML56in repo0Scanned · not verifieddromara/carbon5.2k★JSON33in repo0Scanned · not verifiedunovue/inspira-ui5.0k★JSON36in repo0Scanned · not verifiedGitJournal/GitJournal4.2k★Flutter ARB21in repo0Scanned · not verifiedstringer-rss/stringer4.1k★JSON16in repo0Scanned · not verifiednpmx-dev/npmx.dev3.6k★JSON40in repo?Scanned · not verifiedbdlukaa/fluent_ui3.5k★Flutter ARB40in repo0Scanned · not verifiedchrisvel/tududi3.4k★JSON24in repo0Scanned · not verifiedbensheldon/good_job3.0k★JSON12in repo0Scanned · not verifiedklembot/twinejs2.9k★JSON22in repo?Scanned · not verifiedgamosoft/NoteDiscovery2.8k★JSON11in repo0Scanned · not verifiedApipie/apipie-rails2.5k★JSON12in repo0Scanned · not verifiedhoochanlon/Free-NTFS-for-Mac2.4k★JSON4in repo0Scanned · not verifiedwalterlow/freecut2.2k★JSON8in repo0Scanned · not verifieddaodao97/chatmcp2.2k★Flutter ARB3in repo0Scanned · not verifiedNatLabRockies/api-umbrella2.2k★gettext .po58in repo?Scanned · not verifiedcogwheel0/conduit2.1k★JSON12in repo0Scanned · not verifiedkanriapp/kanri2.0k★JSON10in repo?Scanned · not verifiedfossasia/badgemagic-app2.0k★Flutter ARB23in repo0Scanned · not verifiedastrofox-io/astrofox2.0k★JSON8in repo0Scanned · not verifiedpublify/publify1.9k★JSON17in repo0Scanned · not verifiedJHubi1/ollama-app1.8k★Flutter ARB5in repo?Scanned · not verifiedCcSimple/vue-plugin-hiprint1.7k★JSON7in repo0Scanned · not verifiedshakacode/react-webpack-rails-tutorial1.7k★JSON4in repo0Scanned · not verifiedquick123official/quick_redis_blog1.7k★JSON16in repo?Scanned · not verifiedthredded/thredded1.6k★JSON9in repo0Scanned · not verifiedBrisklyDev/brisk1.5k★Flutter ARB8in repo0Scanned · not verifiedxpavle00/Habo1.5k★Flutter ARB26in repo?Scanned · not verifiedbaotlake/office-website1.4k★JSON51in repo0Scanned · not verifiedmubaraknumann/unifideck1.4k★JSON15in repo?Scanned · not verifiedokisdev/ChatChat1.3k★JSON12in repo0Scanned · not verifiedBlockstream/esplora1.3k★gettext .po17in repo?Scanned · not verifiedpolychromatic/polychromatic1.2k★gettext .po11in repo0Scanned · not verifiedTracksApp/tracks1.2k★JSON11in repo0Scanned · not verifiedigorkasyanchuk/active_storage_validations1.2k★JSON16in repo0Scanned · not verifiedhrfee/jfa-go1.2k★JSON25in repo?Scanned · not verifiedmatthiasn/lotti1.2k★Flutter ARB11in repo?Scanned · not verifiedGisto/Gisto1.2k★JSON6in repo0Scanned · not verifiedcommetchat/commet1.1k★Flutter ARB27in repo0Scanned · not verifiedfloatpane/matcha1.1k★JSON10in repo0Scanned · not verifiedfossasia/magic-epaper-app1.1k★Flutter ARB21in repo0Scanned · not verifiedopennookorg/screenshot-studio985★JSON7in repo0Scanned · not verifiedianho7/maptoposter-online938★JSON7in repo?Scanned · not verifiedsharatsachin/ytplaylist-len916★JSON26in repo0Scanned · not verifiedAQBot-Desktop/AQBot902★JSON10in repo0Scanned · not verifiedjamaljsr/polar858★JSON9in repo0Scanned · not verifiedGetStream/stream-chat-react844★JSON11in repo?Scanned · not verifiedlocalsend/localsend93k★JSON (slang)57Weblate + PRs0Clean0 placeholder findings