OTA — update your mobile app's text instantly, no App Store release

Push translation fixes and new languages straight to your live iOS and Android apps. Translators update copy in Tarjim, and your users see it on the next launch — with no rebuild and no store review.

Get Started

Ship copy at the speed of translation

OTA (Over-the-Air) delivery decouples your app's text from its release cycle. Fix a typo, correct a mistranslation, or launch a new market without waiting for a new build to clear review.

No App Store release

Change wording in Tarjim and it reaches your users directly. No binary rebuild, no review queue, no waiting days for a fix to go live.

Delivered over a CDN

Translation bundles are served from a global CDN, so updates download fast wherever your users are.

Works offline

Your app ships with a baseline set of strings and caches every update locally. If the device is offline, it falls back to the last cached copy, then to the built-in defaults.

Lightweight update check

The app fetches a tiny manifest to check for changes. Only languages that actually changed are downloaded — nothing else touches the network.

iOS & Android

One publishing pipeline feeds both platforms. Drop in the SDK, point it at your project, and resolve keys the same way on each.

Environment-aware

Publish to staging and production separately. Test copy on a QA build before it ever reaches your production users.

How OTA (Over-the-Air) works

1. Publish from Tarjim

When you hit Publish, Tarjim prepares each language and delivers it over our global CDN, along with a small manifest that lists the current version of every language.

2. The app checks the manifest

On launch, the SDK fetches the manifest and compares it to what it has cached. An unchanged manifest is a cheap "not modified" response, so most launches cost almost nothing.

3. Only changes download

If a language changed, the SDK downloads just that bundle, swaps it into the local cache, and your UI resolves the new text. Everything else stays untouched.

For Developers

Add the Tarjim SDK, configure it with your project API key, and resolve keys through it. The SDK handles the manifest check, downloads, caching, and fallback for you.

Mobile SDKs are in early access — the examples below show the integration we're building. Talk to us to join the beta.

iOS (Swift)

Configure once at launch and call sync() to pull the latest copy. Resolve strings with a simple lookup that falls back to the app bundle.

import Tarjim

// AppDelegate / App init
Tarjim.configure(
    apiKey: "YOUR_PROJECT_API_KEY",
    environment: .production,
    fallbackBundle: .main      // baseline .strings shipped in the app
)

// Check the manifest and download only changed languages
Tarjim.sync(locale: Locale.current.languageCode) { result in
    switch result {
    case .updated:  print("New translations applied")
    case .upToDate: print("Already current")
    case .failed(let error): print("Using cache:", error)
    }
}

// Resolve a key anywhere in the UI
label.text = Tarjim.t("home.welcome_title")

Android (Kotlin)

Initialize in Application.onCreate() and sync in the background. Look up keys through the SDK, which falls back to res/values on a miss.

import io.tarjim.ota.Tarjim

// Application.onCreate()
Tarjim.configure(
    context = this,
    apiKey = "YOUR_PROJECT_API_KEY",
    environment = Environment.PRODUCTION
)

// Check the manifest and download only changed languages
lifecycleScope.launch {
    when (Tarjim.sync(locale = Locale.getDefault().language)) {
        SyncResult.UPDATED   -> Log.d("Tarjim", "New translations applied")
        SyncResult.UP_TO_DATE -> Log.d("Tarjim", "Already current")
        is SyncResult.Failed  -> Log.w("Tarjim", "Using cache")
    }
}

// Resolve a key anywhere in the UI
textView.text = Tarjim.t("home.welcome_title")

Stop shipping a build just to fix a word

Bring your app's copy under Tarjim and deliver it over the air. Update text and languages on your schedule, not the App Store's.

Start now

Centralize content and teams into one
collaborative localization platform

Tarjim for managers

Stay in full control and manage projects from one dashboard.

Learn More

Tarjim for translators

Translate faster with in-context editing, CAT tools, and quality checks.

Learn More

Tarjim for developers

Integrate localization once and manage updates without code changes.

Learn More

Tarjim for designers

Preview and sync translations in designs using Tarjim plugins and extension.

Learn More