◉RORK LABJP
●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SDK 58 — Beta since 09/15 with no stable date yet; running projects in Expo Go has required login since 09/03●WIDGET — A write-up traces an iOS widget that renders black only in production builds●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SDK 58 — Beta since 09/15 with no stable date yet; running projects in Expo Go has required login since 09/03●WIDGET — A write-up traces an iOS widget that renders black only in production builds●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…
Articles/AI Models
◉ AI Models/2026-06-23Advanced

On-Device Translation in a Rork Max App with iOS 18 — Free, Offline, Multilingual

Add free, offline, real-time translation to a Rork Max Swift app using the iOS 18 Translation framework. Covers checking language availability, batch translation, and avoiding empty results — all with working Swift code.

Rork Max236iOS 184TranslationOn-device AISwift48

✦ Premium Article

Being able to read the reviews and in-app posts that arrive from overseas users, right where they appear — that has been a quiet frustration of mine for years. As an indie developer running several wallpaper and wellness apps, there are days when I reply to App Store reviews in close to thirty languages. Sending each one through an external translation API kept snagging on three things at once: network, cost, and privacy.

With iOS 18, Apple opened up the Translation framework. It runs entirely on device, costs nothing extra, and once a model is downloaded it keeps working offline. Because no text leaves the device, whatever a user wrote never travels to a third-party server. The catch is that React Native cannot touch this cleanly. From a Rork-generated Expo app, you would have to bridge into a Swift framework yourself, which means writing native modules. It only became a realistic option once Rork Max started generating Swift directly — and that is where this guide begins.

Why in-app real-time translation is a native-only feature

The Translation framework borrows the OS-integrated translation engine and language models directly. APIs like SwiftUI's .translationTask and TranslationSession are only callable from Swift. React Native's JavaScript layer has no built-in bridge for them, so you would have to write your own Expo config plugin and native module.

It is not strictly impossible in plain Rork (React Native / Expo). But wiring async results back to JS, monitoring model download state, and re-homing an API designed as a SwiftUI view modifier onto a bridge — by the time you finish, the "build it no-code" advantage is mostly gone. When Rork Max generates Swift, these pieces sit naturally inside a SwiftUI view instead. The code below assumes you are growing the screen code that Rork Max emitted, by hand.

What the Translation framework can and cannot do

Set expectations first. This is an area where over-promising leads to "that's not what I thought" later.

AspectBehavior
CostFree. No usage billing, no API key
OfflineSupported, but the language model must be downloaded first
PrivacyText is never sent off device (on-device processing)
LanguagesFollows the OS translation languages; some pairs are unsupported
Trigger modelView-scoped, user-initiated. Not meant for server-side batch jobs
OS requirediOS 18.0+ (some system-presented UI is 17.4+)

The biggest trap here is "not meant for server-side batch jobs." Translation is an API for foreground, in-app experiences — it is not designed for processing large volumes of text overnight in a backend. In my case I narrowed it to exactly the foreground job it is good at: drafting review replies, and showing an instant translation of a user post that is on screen.

✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦If you have been leaving overseas reviews and user posts unread, you can add free, offline in-app translation today
✦You will learn the real TranslationSession patterns — availability checks, batch translation, and handling un-downloaded models — as working Swift
✦You will understand why this is out of reach in React Native (plain Rork), making it a concrete reason to choose the $200/month Rork Max tier
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

Related Articles

◉ AI Models2026-09-15
Where the AI decision lives once Rork splits your app into two native codebases
New Rork apps are Swift on iPhone and Kotlin on Android — two separate codebases. Here is how I decide which AI-related judgments stay in each client and which move to the shared backend, plus the minimal contract both clients read the same way.
◉ AI Models2026-09-12
Ask Rork for an iOS 27 feature and you may get last year's code back, with no error at all
iOS 27 ships on September 14. When a model is asked for an API it has never seen, there are two kinds of failure: the kind that stops your build, and the kind that does not. Here is why standard Rork and Rork Max differ, and the order I check generated code in.
◉ AI Models2026-06-24
Pushing Rork Max's AI Beyond Vibe Coding — Patterns That Actually Improve Implementation Quality
A deep-dive on using Rork Max as an implementation partner: prompt patterns, context management, choosing between plain Rork and Rork Max, building without burning credits, and verifying AI-written native code before App Store submission — drawn from solo indie experience.