💡 To localize an iOS app into Vietnamese: add
viin Xcode Project Settings, use String Catalogs (.xcstrings) for auto-tracked strings, write one plural branch (Vietnamese has a single CLDR plural category), localize Info.plist usage descriptions, and fill all App Store Connect metadata in Vietnamese. Test layouts before shipping - Vietnamese strings run 10-20% longer than English.
Key takeaways
- Add Vietnamese (
vi) under Project Settings > Localizations; Xcode creates avi.lproj/bundle folder automatically for each localized resource. - String Catalogs (.xcstrings) in Xcode 27 auto-sync with SwiftUI and UIKit code after every build, eliminating manual .strings file maintenance.
- Vietnamese has one CLDR plural category: other. Plural rules in both .stringsdict and String Catalogs need only one Vietnamese branch, simplifying translation files.
- App Store Connect metadata limits: app name 30 chars, subtitle 30 chars, description 4,000 chars, keywords 100 chars. Each accented Vietnamese character (ắ, ề, ộ) counts as 1 character.
- Info.plist usage description strings (NSCameraUsageDescription, NSMicrophoneUsageDescription, etc.) must be in Vietnamese - iOS shows them verbatim in permission dialogs and App Review checks them.
What does iOS Vietnamese localization require?
iOS Vietnamese localization covers four independent layers: code-level string extraction (NSLocalizedString / String(localized:)), pluralization rules (.stringsdict or String Catalog plural variants), resource localization (images, storyboards, Info.plist), and App Store product page metadata. All four must be complete before your app is production-ready for Vietnam.
To add Vietnamese, open your .xcodeproj in Xcode, select the project (not a target) in the Info tab, then click + under Localizations and select Vietnamese (vi). Xcode creates a vi.lproj/ folder for each localized resource and, for SwiftUI projects with String Catalogs, begins tracking Vietnamese strings automatically on the next build. The language identifier throughout the system is vi; there is no need to use vi-VN unless a third-party SDK requires it.
How do String Catalogs and Vietnamese plural rules work in Xcode 27?
String Catalogs (.xcstrings) are the recommended approach for new projects as of Xcode 16. The file is a structured JSON document storing all translation variants, plural rules, and device-specific text in one place. After you add Vietnamese and build, Xcode automatically scans SwiftUI views and UIKit calls for localizable strings and adds them to the catalog. No manual extraction step is needed.
Vietnamese has one CLDR plural category: other. Every count, 1, 2, 100, maps to the same word form. Vietnamese conveys quantity through classifiers and context, not inflected endings. "1 mục" and "5 mục" (1 and 5 items) are identical in form.
In a String Catalog, the Vietnamese plural slot shows only one branch: other. For older .stringsdict files, you only define the other key in the Vietnamese section. For specific zero-state messages, use the =0 exact-match key with text such as "Không có mục nào" (No items).
<!-- .stringsdict example for Vietnamese (single plural branch) -->
<key>item_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@item_count@</string>
<key>item_count</key>
<dict>
<key>NSStringPluralRuleType</key>
<string>other</string>
<key>other</key>
<string>%d mục</string>
</dict>
</dict>
How do you localize Info.plist usage descriptions into Vietnamese?
iOS displays usage description strings verbatim in system permission dialogs. If those strings remain in English, Vietnamese users see English in an iOS system popup, which looks unfinished and can trigger App Review rejection for incomplete localization.
With String Catalogs (Xcode 16+), create or open InfoPlist.xcstrings. Xcode automatically collects recognized keys: NSCameraUsageDescription, NSMicrophoneUsageDescription, NSLocationWhenInUseUsageDescription, NSPhotoLibraryUsageDescription, and others. Add a Vietnamese translation for each key used in your app.
Example Vietnamese usage description: "NSCameraUsageDescription" = "Ứng dụng cần truy cập camera để chụp ảnh hồ sơ của bạn.";
Be specific about why the app needs the permission. Both Apple guidelines and Vietnamese users expect a clear reason. Vague strings like "Cần quyền truy cập camera" may draw App Review scrutiny.
What App Store Connect metadata must be in Vietnamese?
Apple does not automatically show your English product page to users in Vietnam. Add the Vietnamese (vi) localization in App Store Connect under App Information > Localizations, then fill these fields:
- App name: up to 30 characters. Each Vietnamese diacritic character counts as 1 character. "Quản lý tài chính" is 18 characters, well within the limit.
- Subtitle: up to 30 characters. Appears below the app name in search results. Keep it to 1-2 short benefit phrases in Vietnamese.
- Description: up to 4,000 characters. The first three lines (~255 characters) show before the "more" fold in the App Store. Put your strongest value statement there in Vietnamese.
- Keywords: up to 100 characters total, comma-separated with no spaces. Vietnamese users often search without tone marks when typing quickly - consider including both "quan ly tai chinh" and "quản lý tài chính" if budget allows.
- Screenshots: upload screenshots showing the Vietnamese UI. App Review checks that screenshots and product page language match the submitted localization.
What breaks in Vietnamese iOS layouts, and how do you fix it?
iOS system fonts (San Francisco, Helvetica Neue) render Vietnamese correctly out of the box. Problems appear only with custom fonts and fixed-width label constraints.
- Custom fonts: verify the font covers all Vietnamese base letter variants (ă, â, ê, ô, ơ, ư, đ) plus the full set of combining tone marks. Missing glyphs fall back silently to the system font, creating mixed-font rendering mid-word. Test by displaying the string "ắ ề ộ ừ ẫ" in your custom font.
- Label truncation: Vietnamese strings run 10-20% longer than English. Any UILabel with numberOfLines = 1 and lineBreakMode = .byTruncatingTail cuts off Vietnamese text that fits in English. Run the Vietnamese scheme in Simulator and check every primary label at iPhone SE (375pt) width.
- NFC normalization: Vietnamese diacritics can be encoded as precomposed NFC or decomposed NFD. Both render identically but NFD fails string equality checks. Normalize to NFC in your localization files; in Swift, use
string.precomposedStringWithCanonicalMapping. - Text direction: Vietnamese is left-to-right. No RTL handling or bidi configuration is needed.
In-house vs. specialist: the honest line for iOS teams
The engineering work - adding vi to Xcode, wiring String Catalogs, localizing Info.plist, and setting up App Store Connect - is entirely in-house and can be completed in one to two developer days.
Machine translation works well for utility strings: form labels, error messages, settings screens. The strings are short, context is structural, and MT quality is good enough for a first ship.
Where a native Vietnamese specialist saves real money: App Store product page copy, onboarding flow, and domain-specific vocabulary. Vietnamese App Store users read product descriptions critically. Sino-Vietnamese terminology (Hán Việt vocabulary) is expected in finance, medical, and legal apps: "giao dịch" for transaction, "tài khoản" for account, "xác thực" for authentication. A native translator gets these right on the first draft; MT often returns pure Vietnamese equivalents that feel informal to professional users.
Practical split: use MT for all utility strings, and hire a native Vietnamese specialist for the App Store product page and the 20-30 onboarding or core-flow screens users see every session. For professional English-to-Vietnamese translation covering iOS apps and digital products, the Vietnamese website and app localization service on this site handles both technical strings and App Store copy.
FAQ
What is the Vietnamese language identifier in Xcode?
Use vi as the language identifier. Xcode adds a vi.lproj/ folder to your bundle. The vi tag covers all Vietnamese users per BCP 47. Use vi-VN only if a third-party SDK requires the full locale code for data lookup; for Xcode and App Store Connect, the short form vi is correct.
Do I need .stringsdict files for Vietnamese plural rules?
Only for pre-String Catalog projects. Vietnamese has one CLDR plural category (other), so a .stringsdict plural entry for Vietnamese needs only the other key. For projects on Xcode 16+, use String Catalogs (.xcstrings) instead - pluralization is handled there visually with the same single-branch structure. New projects can skip .stringsdict entirely.
How do Vietnamese characters affect App Store keyword budget?
App Store Connect allows 100 characters for the keywords field. Vietnamese diacritic characters each count as 1 character. A 100-character budget gives you roughly 8-12 meaningful Vietnamese keyword phrases. Separate with commas, no spaces. Consider that many Vietnamese users search without tone marks when typing quickly - "quan ly" may surface your app alongside "quản lý".
Should I target all three Vietnamese dialects (North, Central, South)?
For most apps, one localization in northern (Hanoi) standard Vietnamese is sufficient. The northern variety is the prestige register used in national media, formal writing, and digital products. Southern Vietnamese (Ho Chi Minh City) differs mainly in a few dozen everyday vocabulary items, not in grammar or writing system. For a general consumer or B2B app, standard Vietnamese covers all users.
How should I test the Vietnamese localization before submitting to App Review?
In Xcode, add Vietnamese as a test language in your scheme (Edit Scheme > Run > Options > App Language = Vietnamese). Launch in the iOS Simulator with this scheme. Walk through every screen and check: label truncation, permission dialogs, keyboard handling in text fields, and all images for locale-sensitive content. Specifically test at iPhone SE (375pt) width, which is the tightest common layout constraint in the iOS device fleet.
Official Sources
- Apple Developer: Localization - Xcode String Catalog features, App Store support across 50 languages and 175 regions, full localization workflow including String Catalogs and AI-assisted translation in Xcode 27. Verified Nov 2026.
- Apple Developer Documentation: Xcode Localization - .strings, .stringsdict, .xcstrings file types, NSLocalizedString and String(localized:) APIs, Info.plist localization workflow. Verified Nov 2026.
- Unicode CLDR: Language Plural Rules - Vietnamese (vi) plural categories: single "other" form, no morphological plural distinction. Verified Nov 2026.

Written by Dao Huy (Lucas), Vietnamese translator and localization specialist (English, Chinese and French into Vietnamese). See translation services →
