Built for SaaS & Media-Tech

Software & App Localisation

We run software localisation as part of your CI pipeline — new strings hit our LingoSecure workspace the moment they are committed, are picked up by our qualified specialist linguists, translated in context inside our LingoSecure workspace, and merge back to your repo inside 24 hours. In plain terms — your developers ship new features, your translated app catches up automatically within hours, with no broken text, no layout breaks, and no manual file shuffling. One UK partner for 35+ languages, native Arabic and RTL handled in-house, ICU MessageFormat and pseudo-locale QA on every build. ISO 17100, GDPR-compliant, with the same project manager from kickoff to retainer.

ISO 17100 + GDPR Cardiff, UK

Last updated

What we do

Specialist capabilities for Software & App Localisation

Commit → Translate → Merge

Webhook-driven workflow on GitHub, GitLab, and Bitbucket. New strings detected, routed to the right specialist linguist, reviewed, and returned as a PR or file drop inside a 24-hour SLA.

Specialist Per Content Type

Technical strings to a technical linguist; legal copy to a qualified legal translator; UI to a UX-aware native writer; marketing to an in-market copywriter. The right specialist matched to each content type, not a one-size-fits-all freelancer.

Bring Your Own TMS

Work inside your Phrase, Lokalise, Crowdin, Transifex, or Smartcat — or inside our LingoSecure workspace. Zero lock-in, zero migration tax, full API integration.

Mobile & Cross-Platform

iOS (.strings, .stringsdict), Android (.xml), React Native, Flutter, .NET .resx, Java .properties. Plus App Store and Google Play listing optimisation for 150+ markets.

LQA & Pseudo-Localisation

Second-linguist review, screenshot-context QA, pseudo-locale builds to catch truncation and layout breaks before the strings ever hit staging. No surprises at release.

RTL Done Properly

Arabic, Persian, Urdu, Pashto with mirrored layouts, bidirectional text handling, font rendering verified on real devices. EN↔AR is our #1 pair — we don't subcontract it.

01 Deep dive · 01 / 07

The file formats that actually break in production

Software localisation looks simple until you ship it. A team writes en.json and assumes Spanish, German and Arabic will follow the same path. They will not. Every file format has a quirk that breaks the build of an unprepared agency. After 14 years and several thousand SaaS releases, we have a short list of the cases that catch even mature engineering teams.

01

JSON, YAML and the apostrophe problem

Plain JSON has no comments and no plural support — fine for English, fragile in production once translators add curly apostrophes (' vs '), narrow non-breaking spaces around French punctuation, or German guillemets (», «). A French translator who writes the correct L'application with a typographic apostrophe will pass linguistic QA and break a brittle JSON parser. We normalise apostrophes at import, validate UTF-8 BOM presence, and run a syntax pass before any locale ships.

02

Android strings.xml: the silent escape

Android stores apostrophes as \' and ampersands as &. Translators routinely paste in Microsoft Word's curly characters that look identical and ship — until the layout renders mojibake at runtime. We use a custom XLIFF round-trip for Android assets so the translator never sees raw XML, and re-escape on export.

03

iOS .strings and .stringsdict

The classic problem is plural rules. iOS uses CLDR plural categories (zero, one, two, few, many, other) through .stringsdict. A naïve translator will treat the file as one-to-one and lose plural variants — your German app then says "1 Nachrichten". We use a plural-aware editor that surfaces every CLDR category as required for the target locale and refuses export if any category is missing.

04

.NET .resx and Java .properties

.resx accepts XML comments and embedded code references; .properties uses ISO-8859-1 by default (modern toolchains do support UTF-8, but the wrong combination still ships \uXXXX escapes that defeat translators). We force UTF-8 at import and emit native escapes only at build time.

05

The XLIFF round trip

Whenever possible, we extract source files to XLIFF 1.2 or 2.0, translate inside our editor with context attached, and re-merge. This lets translators see the source comment, the screenshot, and the constraint (character limit, ICU plural form, RTL mirroring flag) without ever touching the source file. The build pipeline merges back into the format your developers committed.

02 Deep dive · 02 / 07

ICU MessageFormat, plurals and the gender bear-trap

If your product has a tagline like "Mary invited 3 friends to your event", you are about to discover ICU MessageFormat. English needs three variables. Russian needs four plural forms (1, 2-4, 5+, fractional). Arabic needs six. Polish has different rules again. Many products ship with a flat string like {name} invited {count} friends and quietly accept broken grammar in 80% of locales.

01

The correct pattern

{count, plural,
  one {# friend}
  few {# friends}
  many {# friends}
  other {# friends}
}

This is fine in English, French and German. In Arabic you need zero, one, two, few, many, other. In Polish few covers 2-4 only when the last digit is 2-4 and the number isn't 12-14 — Polish has roughly 5 plural categories. Welsh has its own. We translate against the CLDR plural rule set for each locale, not against the English template.

02

Gendered subjects

Spanish, Italian and Russian all need to know whether the subject is masculine, feminine or neutral to inflect the verb. A naïve translation of "You are invited" defaults to masculine; a feminine user sees broken grammar in 50% of locales. ICU's select handles this:

{gender, select,
  female {Estás invitada}
  male {Estás invitado}
  other {Te han invitado}
}

If your data model doesn't track gender, the safe path is the gender-neutral other branch. We flag gendered strings in source review so your team can decide whether to capture gender, default to neutral, or ship variants — before the translation budget is committed.

03

Why this matters for SEO and trust

App Store and Google Play reviews routinely call out broken plurals: "App is buggy, says '1 messages'". One-star reviews compound and demote ranking. Fixing plurals after launch costs more than ICU-aware translation up front.

03 Deep dive · 03 / 07

RTL done correctly — what most agencies still get wrong

Right-to-left is the single most-broken category in software localisation. We have 14 years of Arabic — it is our largest pair — and we still see polished SaaS products ship with two-character mistakes that make the UI unusable in MENA. The list below is from real audits we have run for clients before they engaged us.

01

Logical CSS properties

The most common production bug: developers write margin-left: 16px instead of margin-inline-start: 16px. In a left-to-right locale they are identical. In Arabic, the first pins the margin to the left of the screen; the second flips correctly to the right. We audit your stylesheet for physical properties (left, right, padding-left, border-right) before we touch the strings.

02

Bidirectional text inside paragraphs

An Arabic paragraph that mentions an English brand name, a URL, or a numeral becomes a mixed-direction string. Browsers handle this with the Unicode Bidirectional Algorithm, but the algorithm is heuristic and gets it wrong in predictable cases — most often when a sentence ends with a Latin number or punctuation. We insert U+202A/U+202C (LRE/PDF) marks or use <bdi> tags around opaque tokens like usernames and product IDs.

03

Icons that have a direction

Arrow icons, the "back" chevron, undo and redo, slider directions, progress bars — every directional icon needs an RTL variant or a CSS transform. Lucide and Heroicons have RTL-aware variants; Material's icon set requires a mirror class. We catalogue every directional icon in your design system and flag any that aren't mirrored in the audit.

04

Fonts and rendering

Western font stacks routinely lack Arabic glyphs — Helvetica Neue, Inter and Roboto all need an Arabic fallback. The system default (Geeza Pro on iOS, Noto Naskh Arabic on Android) renders, but the line-height is wrong and the kerning is poor. We test rendering on the actual devices your users have — not just Chrome on macOS — and flag font-stack fixes as part of pseudo-locale review.

05

Why this is our home pitch

Arabic is our largest single language pair. Our sister brand arabictranslation.co.uk has shipped Arabic localisation since 2012. The RTL surcharges most UK agencies add (20-30%) reflect that this is unusual work for them; it is the work we do most. We do not charge an RTL surcharge.

04 Deep dive · 04 / 07

Continuous localisation — the integration patterns that work

If your engineering team ships English every Tuesday, your German, French and Arabic should ship every Tuesday too. Anything else is a release coordination problem dressed up as a translation problem. There are three integration patterns we support; the right one depends on how your repo is structured.

01

Pattern 1: Webhook-driven PR workflow

Suits most SaaS teams. A GitHub webhook fires on every push to main. Our service inspects the diff for new or changed strings, drafts the locales, sends them to a linguist for review, and opens a return PR. Branch protection ensures the PR can't merge before review. Typical end-to-end time: 18-24 hours for 35 languages on a 200-string commit.

02

Pattern 2: CI step in your build

If your team prefers locale changes to flow through your build system (CircleCI, GitHub Actions, GitLab Runners), we expose a CLI: lingosecure pull pulls the latest translations into your repo as a build step, lingosecure push uploads any source-string changes for translation. Used by teams who run release trains and don't want translation PRs in their flow.

03

Pattern 3: TMS sync (Phrase / Lokalise / Crowdin)

If you already have a TMS we are happy to act as the linguist layer inside it — your developers continue to push strings to the TMS, our linguists translate inside the TMS, and the TMS sync runs as it always did. Zero workflow change for your engineers. The benefit: one supplier instead of stitching together a TMS subscription, a roster of freelancers, and a vendor for the regulated stuff.

04

Translation memory and termbase

All three patterns share one principle: your translation memory is yours. Every translated segment is logged into your TM, which we host inside LingoSecure or export to your TMS on demand. If you switch vendors next year, the TM goes with you. There is no lock-in.

05

Versioning and rollback

We version-pin translation memory to product release. Your v4.2 will never accidentally ship with v4.1's translated strings. If your team needs to revert a release, the TM reverts with it. This matters for regulated products where a translated disclosure must match the version of English it was approved against.

05 Deep dive · 05 / 07

Pseudo-locale QA — catch layout bugs before any human translates

Before we send a string to a translator, we run your product through a pseudo-locale build. Every English string is wrapped in accents and padded by 30%: "Submit" becomes "[Ŝûbmît⏎ⓅⒶⒹ]". The point is not to test translation quality; it is to test your product. The padding simulates German's 30-40% expansion; the accents force a Unicode rendering path; the brackets surface concatenated strings (a hard-coded English fragment will show up unwrapped).

01

What pseudo-locale catches

  • Truncation — buttons that fit "OK" but not "Aceptar"
  • Hard-coded strings — anything not wrapped in t()
  • Concatenation bugs"Hello " + username will break in languages with different word order
  • Fixed-width assumptions — date pickers, dropdowns, navigation tabs
  • Font fallbacks — text that turns into rectangles because the font doesn't cover Latin Extended-A
  • RTL flip bugs — every directional icon and layout flips in pseudo-RTL

We deliver the pseudo-locale build as a Storybook deployment or a feature branch your QA team can test against. The defect log goes straight into your Linear, Jira, or GitHub Issues. We fix the locale-side issues; your team fixes the product-side ones, before paying for a single word of human translation.

02

Visual QA with screenshot diffing

For mature products we run an additional pass: every screen is captured in English, pseudo-EN, German, Arabic, and Chinese, and the diffs are compared. Layout regressions show up immediately. The same workflow runs against every PR if you want it as a GitHub Action.

06 Deep dive · 06 / 07

Software localisation services compared — what we deliver

Most SaaS teams choose between three paths for localisation. None of them is wrong; each has a cost we want to be explicit about, because choosing the wrong one is the most expensive mistake in this space.

OptionStrengthWeak point
TMS-only (Phrase, Lokalise, Crowdin)Excellent developer ergonomics, branching, GitHub integrationYou still need translators. Most teams end up paying for the TMS + a roster of freelancers + a backup LSP for regulated content. Three suppliers, three contracts.
Freelancer rosterCheapest per wordNo memory, no glossary discipline, terminology drifts release-to-release. Coordination cost grows non-linearly past 5 languages. No NDA enforcement.
Big traditional LSPProcurement-friendly, framework agreements availablePer-seat fees on top of project work. PM rotation. Often subcontract the long tail. Slow integration with engineering tooling.
Lingo ServiceUK partner, one contract, one invoice. Direct TMS integration if you have one. Our own portal if you don't. Specialist linguist matching per content type. Arabic and RTL in-house.We are a small specialist agency. If you need 80 languages in 12 hours with no review, we are not the right vendor — buy raw MT instead.

The right choice depends on your stage. Early-stage SaaS with 3-5 markets gets the most out of LingoSecure and a flat monthly retainer. Series-B and later with 12+ languages usually keep their existing TMS and use us as the linguist layer. Regulated platforms with compliance audits want the LingoSecure portal and the per-segment audit trail. We will tell you honestly which path fits.

07 Deep dive · 07 / 07

What we will not do, and why

Honest scoping matters more than aggressive pitching. There are three things our software localisation service does not do, and we would rather be clear up front than over-promise.

01

We do not ship unreviewed machine translation

Every string passes under a qualified linguist before it leaves the portal. Our LingoSecure workspace accelerates the first draft so the linguist's time goes to nuance, terminology and tone — but no string ever ships without human signoff. If you only want unreviewed machine output for cost reasons, that is a different service we do not provide; we can point you to a pure-MT provider if it fits your use case.

02

We do not do same-day turnaround at enterprise volume

A 50-string emergency fix in 4 hours is realistic across most major locales. A 5,000-string product launch in 24 hours is not realistic and we will not commit to it. We schedule backwards from your release date with built-in QA buffer; if your timeline is shorter, we will tell you what is actually achievable.

03

We do not subcontract Arabic

Most UK agencies route Arabic to a Cairo or Beirut studio. We translate in-house with named linguists. The same person who translated your v1 strings is the person who translates v4.7. Terminology consistency is a function of continuity; continuity requires not subcontracting.

How it works

Our process, end to end

  1. 1

    1. Pipeline Audit & Scoping

    We inventory your strings, map your existing TMS or repo layout, and flag technical blockers (hardcoded text, missing locale keys, ICU plural issues). No word-count scramble the night before launch.

  2. 2

    2. Integration & Linguist Assignment

    Connect via webhook, API, or CLI. We assign the right specialist linguists per content type and lock in a glossary, style guide, and tone of voice up front.

  3. 3

    3. Translate, Review, Return

    Native linguists review every string inside LingoSecure with full context (screenshots, feature briefs). Second-linguist signoff. Terminology consistency enforced automatically against your TM.

  4. 4

    4. Pseudo-Locale & Visual QA

    We build a pseudo-localised version of your product to catch text-truncation, layout breaks, RTL flip bugs, and font rendering issues before release. Issues logged directly against your tracker.

  5. 5

    5. Merge & Ship

    Translations return as a pull request, merged file drop, or TMS sync. Version-pinned TM so your v4.2 release never ships with v4.1 strings. Rollback-safe at every step.

  6. 6

    6. Continuous Updates

    Monthly retainer keeps every locale fresh as your product evolves. New strings flow through the pipeline the same week they are committed. Your French, German, and Arabic never lag your English release.

Who we serve

Built for these teams

SaaS & Developer Tools

  • Product UI and dashboards
  • API and developer documentation
  • Onboarding flows and empty states
  • Help centres and knowledge bases
  • Changelogs and release notes
  • Transactional emails and in-app messaging

Media & Broadcast Tech

  • Control-room software UI
  • Captioning and subtitling systems
  • Rights management platforms
  • Streaming and OTT player strings
  • Production asset management tools
  • Broadcast monitoring dashboards

Fintech & Regulated Platforms

  • KYC and onboarding flows
  • Compliance copy and disclosures
  • Multi-jurisdiction terms and privacy
  • Payment and checkout localisation
  • Investor and trading platforms
  • Banking app notifications
Why teams pick us

What you get with Lingo Service

Enterprise-grade secure portal

LingoSecure is our own translation workspace with AES-256 encryption, TLS in transit, audit logs, team glossaries, IP allowlisting and optional BYOK for enterprise. ISO 17100, GDPR-compliant, DPA-ready.

Continuous pipeline, human-reviewed

Our LingoSecure pipeline drafts within minutes; qualified linguists review and sign off every string. Faster than purely-manual freelancer workflows, safer than unreviewed automated translation — without you having to manage either side.

One UK vendor, UK hours, UK invoicing

Cardiff HQ. UK legal, UK DPA, UK-invoiced. No follow-the-sun chain of anonymous subcontractors. You know the name of your PM and your linguist.

Arabic & MENA specialism

12 years of Arabic translation is why EN↔AR is our top language pair. If you are targeting the Middle East or North Africa, nobody in the UK knows this pair better or ships more of it.

FAQ

Frequently asked questions

How is this different from Lokalise, Phrase, or Crowdin?
They are TMS platforms — they hold your strings, but they don't translate them. You still need a vendor. Most SaaS teams end up stitching a TMS together with a roster of freelancers and one big LSP for the regulated bits. We collapse that into one UK partner with our own secure portal, our own linguists, specialist linguist matching per content type, and direct integration into your existing TMS if you already run one. Fewer suppliers, one contract, one invoice.
Can we see LingoSecure before we commit?
Yes. 15-minute demo, sandbox workspace, no sales theatre. You can run a test translation through our pipeline and see the output before you pick a plan. Book a demo.
Which file formats and platforms do you support?
Software: JSON, XML, XLIFF, PO/POT, YAML, .strings, .stringsdict, .resx, .properties, CSV, ICU MessageFormat. CMS: WordPress (WPML, Polylang, Weglot), Shopify, Headless (Contentful, Sanity, Strapi), Drupal, custom via API. Version control: GitHub, GitLab, Bitbucket. TMS: Phrase, Lokalise, Crowdin, Transifex, Smartcat, Memsource. E-learning: Articulate 360, Storyline, Rise, Captivate, SCORM.
How does continuous localisation actually work?
We connect to your repo or TMS via webhook. When developers commit a new string, our system detects it, routes it to the right specialist linguist via our LingoSecure workspace, and returns the finished translation — typically inside 24 hours. Translation memory ensures terminology stays consistent across every release. Localisation stops being a release bottleneck.
What is your quality assurance process?
Five stages: (1) Initial draft prepared inside LingoSecure and routed per content type. (2) Native linguist review with full context. (3) Second-linguist signoff for accuracy and tone. (4) Pseudo-locale and visual QA for truncation and layout. (5) In-market sanity check for cultural fit. Every stage is logged inside LingoSecure with a full audit trail. No unreviewed strings ever ship.
Can you localise for right-to-left languages?
Yes — Arabic, Persian, Urdu and Pashto are our core specialism. Mirrored layouts, bidirectional text handling (English numbers inside Arabic paragraphs), font verification on real devices, and RTL-specific visual QA. We don't charge the 20-30% RTL surcharge most agencies add because this is the work we do most.
How do you handle SEO for localised websites?
Local keyword research for each market — we translate search intent, not words. Proper hreflang implementation (the #1 cause of international SEO penalties). Localised meta titles, descriptions, URL structures, and Search Console setup per locale. First 100 words of every page engineered for AI search (ChatGPT, Perplexity, Google AI Overviews) which now trigger on 60%+ of queries before any click.
Can you integrate with our existing TMS?
Yes. We plug into Phrase, Smartcat, Lokalise, Transifex, Crowdin, Memsource and others. If you already have a TMS, we work inside it as your linguist layer. If you don't, you use LingoSecure. Either way you keep the translation memory — it is yours.
What does it cost?
We price per project, not per word, for enterprise pipelines — and the number depends on your content volume, language count, engine mix, and review depth. Starting budgets: a small SaaS product in 5 languages runs from a few thousand pounds to set up and a retainer after that. Larger programmes with 10+ languages and continuous updates are scoped directly. Tell us what you're shipping and we'll send a scoped number within 24 hours.
Do you sign DPAs and NDAs for sensitive product code?
Yes. We execute DPAs and NDAs before any file is uploaded. LingoSecure is GDPR-compliant with AES-256 encryption at rest, TLS in transit, per-user audit logs, IP allowlisting on request, and optional bring-your-own-key (BYOK) for enterprise. Source strings stay inside the portal — never on freelancer laptops.
Can you handle legal and regulatory content in different markets?
Yes. We adapt legal strings (terms, privacy, cookie notices, consent flows) for GDPR (EU), CCPA (California), LGPD (Brazil), DSA (EU), and other jurisdiction-specific regimes. For heavily regulated copy (finance, healthcare, gaming) we assign translators with subject-matter expertise and flag anything that needs target-market legal review.
What happens after launch?
We retain you monthly for ongoing updates: new features, blog posts, help centre articles, product launches. Quarterly audits flag outdated or stale translations. SEO performance monitoring per locale. Rapid fixes (24-hour turnaround) when something breaks. You get one named PM and one named account owner — not a ticketing queue.

Ready to talk?

Upload your files for an instant quote, or book a 15-minute call with a UK-based PM to scope a programme.

ISO 17100 accredited. GDPR-compliant. Based in Cardiff, UK.

Get Instant Quote
Lingo Pro

Lingo Pro

Online

Hey! I'm Lingo Pro. Ask me anything about translations, pricing, or turnaround times - I speak many languages!