App localization

Localizing an app for Norway is more than the strings file.

Most apps that come to us for Norwegian have already been translated once — by a freelancer, an agency, or a machine translation pass that someone on the team reviewed. The problem is rarely the individual words. The problem is that the Norwegian version of the app does not sound or behave like a Norwegian app would, and that is what users react to.

Launching or growing in Norway? Book a free 30-minute call
Scope

What we actually localize when you bring us your app.

When clients send us an app to localize, the strings file is the visible part of the work. But strings are only one input. The Norwegian version of an app touches a number of surfaces that users actually meet, and most of them are easy to forget about until they ship in the wrong tone, get truncated in the layout, or sit untouched in App Store Connect while the rest of the app is in Norwegian.

We work across all of it. The main surfaces are in-app strings, store listings, push and transactional notifications, onboarding, error states, and help content. If it ships to a Norwegian user, it is in scope.

  • iOS .strings, .stringsdict, .xcstrings
  • Android strings.xml (incl. plurals & arrays)
  • React Native, Flutter, Expo
  • JSON, YAML, XLIFF, gettext
  • App Store Connect metadata
  • Google Play store listing
  • Localized screenshots & captions
  • Push notifications
  • Transactional emails
  • Onboarding & empty states
  • Error messages
  • Help center content
  • Release notes
What we see

Where Norwegian app translations break down.

Apps that come to us for a second round of Norwegian usually have one of a few problems, and sometimes more than one at once. None of them are caught by automated QA, and most of them are invisible to a non-native speaker reviewing the build.

The tone is built for a different audience.

Norwegian users do not respond to urgency, big claims, or sales-driven framing the way users in other markets do. An onboarding flow that converts well in English with phrases like "Get started in seconds" or "Don't miss out" can read as pushy or hollow in Norwegian. The translation is grammatically correct. It just does not sound like something a Norwegian app would say, and users trust the app a little less for it.

The translator never saw the app.

Most app strings get translated inside a spreadsheet, a translation memory tool, or a flat file with one key per row. The translator does not know whether "Open" is a button label, a section heading, or part of an alert. The same English word can require three different Norwegian words depending on where it lands. When context is missing, the translator picks the most common interpretation, and you end up with strings that are technically correct but contextually wrong.

Store listings are an afterthought.

The app gets localized, but the App Store and Google Play listings stay in English, or get a rushed Norwegian version that does not match the in-app tone. The result is that users find the app through an English listing, expect English, and are mildly surprised when they open it. Or they search for it in Norwegian and never find it, because the keywords were never localized for how Norwegian users actually search.

Updates outpace the translation.

You launch in Norwegian, and the next sprint introduces new strings. They ship in English because Norwegian was a one-time project. Over time, the app becomes a patchwork of Norwegian and English text — small mismatches that erode the feeling of a localized product. The Norwegian users who downloaded the app expecting consistency stop trusting it as a Norwegian app.

Process

How we work with apps, specifically.

The workflow below is what we use on most app projects. We adjust based on how your team works and how the app is built, but these are the steps that make the difference between a Norwegian translation and a Norwegian app.

Before anything else, we see the app.

Before we touch the strings file, we want to see the app in use. Send us a TestFlight build, an APK, a staging link, or walk us through it on a call. We need to understand what users actually do in the app, what your product is, and where each string lives. Without that, we are translating in the dark.

We translate in context, not in a spreadsheet.

We work in the structure your developers use — .strings, .xcstrings, .stringsdict, strings.xml, JSON, YAML, XLIFF, or whatever your toolchain expects. We keep the keys intact, we handle plurals correctly, and we leave comments where we need to flag something. When context is missing for a specific string, we ask before we guess.

A second translator reviews everything.

Nothing goes back to you without a second pair of native Norwegian eyes on it. That is not because the first translator is unreliable. It is because review catches different things than translation does, and apps have enough small surfaces that small errors compound across them.

We check the result inside the actual build.

On larger projects, we go back into the build with the Norwegian strings in place and check that everything fits, reads, and makes sense in the layout. Norwegian is typically a little longer than English. Some labels need rewording, not just translating, to fit. We flag these and either propose alternatives or work with your designer to adjust.

Store listings are part of the project.

We localize the App Store Connect and Google Play metadata as a normal part of the work, not as an add-on you have to ask for. That includes the app name where permitted, subtitle, keywords, description, promotional text, and "what's new" for each release. Keyword research is part of the work, because Norwegian users search differently than English users, and direct translation of keywords leaves most of the opportunity on the table.

After launch, we stay involved.

Most app clients keep us on for ongoing localization, because new strings keep being added. We work inside whatever workflow your team uses — Lokalise, Crowdin, Phrase, a shared file, a Slack channel, or a pull request you tag us on. We fit your release rhythm, and the glossary and style guide we built for your app keep new work consistent with the old.

Deliverables

Concretely, here is what comes back to you.

  • Norwegian translation of all strings you send, returned in the original file format and structure your team uses
  • A glossary built specifically for your app, kept up to date as the product evolves
  • Review by a second native Norwegian translator before delivery
  • Localized App Store Connect and Google Play listings, with keyword research and promotional text
  • In-context QA on larger projects, where it makes a real difference to the result
  • Notes on anything we had to interpret without enough context, with proposed alternatives so your team can decide
  • Ongoing support for new strings as the app evolves, fitted to your release cycle
Pricing and scope

How we price app projects.

Pricing for app localization is project-based. The variables that matter most are how many strings there are, how much of it is genuinely new copy versus updates, and whether store listings, screenshots, and ongoing support are part of the scope. For most apps in the 5,000 to 25,000-word range, we can give you a fixed quote within a working day of seeing the files.

If you are not sure where to start, the most useful first step is usually a short audit. We look at the strings you already have, the store listings, and a build of the app, and tell you what is working, what is holding back the Norwegian version, and what we would prioritize first. The audit is paid, scoped up front, and has no obligation to do the rest of the work with us afterward.

FAQ

App-specific questions we hear often.

Yes. We work natively in the file formats Apple and Google use — .strings, .stringsdict, .xcstrings, String Catalogs, and strings.xml, including plurals and string arrays. We also work in the cross-platform formats most teams use today: React Native, Flutter, Expo, JSON, YAML, and XLIFF. If your toolchain uses something else, send it over and we will tell you whether we can work with it directly or whether a conversion step is needed.
Yes, and we recommend it. The store listing is the first piece of Norwegian text a user sees, and a mismatch between the listing and the in-app experience is one of the most common reasons localized apps underperform. We treat it as part of the project unless you tell us not to.
We flag them. If we cannot tell from the key, the surrounding strings, or a quick look at the app what a specific string is supposed to do, we either ask before we translate, or we provide our best guess with a note explaining the assumption. We never silently ship a translation we are not confident about.
Most app clients keep us on as the ongoing Norwegian partner. We work with the translation management system you already use, or with a simpler shared file if you do not have one. New strings come to us as part of your normal release cycle, and we turn them around in days. The glossary and style guide we built for your app stay with you, so each new round is consistent with the last one.
That is a common starting point for us. We can review your existing Norwegian — the in-app strings, the store listings, the screenshots — and tell you what is working, what is hurting the product, and what we would prioritize first. The review is scoped up front, has no commitment to further work, and you can take the findings to whoever you are working with today.
Get in touch

Talk to us about your app.

A 30-minute call is enough to figure out whether we are the right team for the project and what the next step looks like. There is nothing to prepare. Send us the App Store link, a build, or a short description of what the app does, and we take it from there.