Repository navigation
[Bug]: iPhone 1.2.0 voice input recognizes Korean speech as unrelated English words #12743
Description
Activity
- addedacceptedfeature request acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.Something is broken or behaving incorrectly.via-triageFiled through npx t3 triageFiled through npx t3 triage
on Sep 20, 2026 Triage
This looks like a real iOS voice-input locale bug, not translation and not keyboard dictation.
On 1.2.0 (and still on current
main/ 1.2.1), the composer mic binds Apple’s on-device transcriber with:Intl.DateTimeFormat().resolvedOptions().locale
There is no preferred-language read and no voice-language setting. T3 Code’s iOS app does not declare extra localizations, so a Korean-configured iPhone commonly gets an app locale like
en_KR/en-KR(English + Korea region). Apple’sSpeechTranscriber.supportedLocale(equivalentTo:)then picks an English equivalent. English is supported, so we never show “unsupported language” — we just transcribe Korean audio as English. That matches the phonetic-English result.Apple’s iOS 26
SpeechTranscribersupported list includesko_KR, so Korean should work once we request it.Not confirmed on device: no iPhone model / iOS version, and no dump of preferred languages, the
Intllocale, or the locale returned byAppleTranscription.prepare(). The macOSen_KRexperiment in the report is supporting evidence only.Related
- feat(mobile): add offline iPhone voice input #8614 — original iPhone voice input (“device language”)
- fix(mobile): allow choosing the voice input language #10519 — closed language picker (included Korean; System still used this
Intlpath) - [Feature]: Chinese (zh-CN) speech recognition and desktop composer voice #10489 — related Chinese language-selection ask; not a duplicate
Next step
Bind recognition to the user’s preferred language (
Locale.preferredLanguages/ equivalent), then keep Apple’s supported-locale and asset checks. A settings picker can come later; it does not fix the default. Addingko.lprojonly to flipLocale.currentis the wrong primary fix.If you can, please add iPhone model, iOS version, and (if easy) the
Intllocale plus preferred languages from the affected phone. Not required to start the fix.Hey @juliusmarminge, adding another data point here. I'm hitting the same bug with Brazilian Portuguese, so it's not only Korean or German.
My setup:
- iPhone, iOS 27
- T3 Code 2.0.0 (105) via TestFlight
- Device language Portuguese (Brazil), region Brazil
The mic button shows up and there is no "unsupported language" error, but when I talk in Portuguese the transcript is a bunch of wrong words, like the recognizer was expecting English. That matches your diagnosis.
I also looked at the sources to double check the root cause:
- Hermes getDefaultLocale() (lib/Platform/Intl/PlatformIntlApple.mm) returns [[NSLocale currentLocale] localeIdentifier], so Intl follows the app locale.
- React Native's RCTSettingsManager exposes [NSUserDefaults dictionaryRepresentation] as constants, so Settings.get("AppleLanguages") gives the preferred languages with no native change.
There is already an open PR for this: #13312, which reads AppleLanguages through Settings (JS only). Just linking it here since the comments don't mention it yet.
I have a Mac, so I can build a dev client and test #13312 on my phone. I can also log the real Intl locale and AppleLanguages on the device if you want that for the issue. Let me know.
Before submitting
Area
apps/mobile
Summary
On T3 Code for iPhone 1.2.0, speaking Korean into the built-in composer microphone produces unrelated English words that sound similar to the Korean speech. This is phonetic misrecognition, not translation into meaningful English. The iPhone is configured in Korean.
Steps to reproduce
These describe the reporter's observed workflow; independent reproduction on another iPhone has not been performed.
Expected behavior
Korean speech should produce Korean text when the recognition language is Korean. If the device/engine does not support Korean, show an explicit unsupported-language message rather than interpreting the audio as English.
Actual behavior
The resulting text consists of phonetically similar but unrelated English words.
Impact
Major degradation or frequent failure: built-in Korean voice input is unusable for the reporter.
Version or commit
Installed iPhone app: 1.2.0.
Source inspected: the commit bumping the mobile version to 1.2.0,
6dbea7ed0947. The exact App Store build/OTA revision has not been verified.Environment
Investigation: suspected locale selection issue, not a confirmed root cause
The implementation derives its recognition language from:
It then passes that locale to
AppleTranscription.prepare(locale)and transcribes with the resolved locale. There is no explicit voice-language override in this path.Source at the 1.2.0 version-bump commit
A separate, minimal Foundation test on a Korean-configured Mac demonstrated that the current app locale can differ from the user's preferred language:
For a test app bundle with
CFBundleDevelopmentRegion = enand only anen.lprojresource directory:After adding
ko.lprojto that same test bundle:This is supporting evidence for a locale mismatch hypothesis, not an iPhone reproduction or a runtime trace from T3.
en_KRrepresents English with the Korea region, not Korean. The affected iPhone's actualIntllocale and the locale returned byAppleTranscription.prepare()have not been captured.Suggested investigation
Intllocale, and the locale returned byAppleTranscription.prepare()on the affected iPhone.Logs or stack traces
No iPhone runtime logs or audio recordings are available. Source review and the separate macOS locale experiment were performed with AI assistance.
Workaround
No workaround has been verified on the affected iPhone.
Related discussion
Chinese speech recognition and desktop composer voice #10489 discusses a related language-selection concern; this report is specifically about Korean misrecognition on iPhone 1.2.0.