Is it possible to update a localized storyboard's strings?
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.
Introduction
Yes, localized storyboard strings can be updated. In fact, that is the normal workflow in Xcode: the base storyboard remains the layout source, while the language-specific .strings files hold the translated text extracted from that storyboard.
How Storyboard Localization Actually Works
With Base Internationalization enabled, Xcode keeps one base storyboard, typically under Base.lproj, and separate localized string files for each language:
At runtime, iOS loads the base storyboard structure and replaces user-facing text with values from the matching localized strings file.
That means you usually do not maintain a separate translated storyboard file by hand. You maintain translated strings derived from the storyboard.
Updating the Strings
When text in the base storyboard changes, the localized .strings files need to be refreshed. A practical workflow is:
- Edit the base storyboard in Xcode.
- Export or refresh localization data.
- Update the translated
.stringsor XLIFF resources. - Import the updated localization back into the project.
If you manage strings directly, a localized Main.strings file looks like this:
You can change the translated values on the right-hand side without editing the storyboard XML itself.
XLIFF Workflow in Xcode
For teams working with translators, XLIFF export and import is usually the cleanest route. Xcode can export localization data, translators update it, and Xcode imports the result while replacing the language-specific strings files.
This is much safer than trying to hand-edit multiple localized storyboard resources because Xcode manages the mapping keys for you.
What Happens When UI Elements Change
If you rename a label, remove a button, or add a new field in the base storyboard, the generated localization keys may change. That is why you should regenerate or re-export the localization data after structural UI changes, not just after text edits.
A new button means:
- a new key appears in the strings file
- translators need to provide a value
A deleted control means:
- the old key may become obsolete
- stale translations should be cleaned up
Ignoring this drift is how localization files become confusing and inconsistent over time.
Example: Using ibtool
If you need command-line extraction in a build or localization pipeline, ibtool can generate strings from a storyboard:
That output can then be merged into language-specific files or fed into a translation workflow. For many teams, though, Xcode's export and import flow is easier to manage because it keeps project resources in sync.
Common Pitfalls
The most common mistake is editing the localized storyboard file directly when the project is actually using Base Internationalization. In that setup, the .strings file is usually the correct place for text updates.
Another mistake is changing UI structure in the base storyboard and forgetting to refresh localization resources. Then translators never see the new keys, and the app falls back to the base language for those controls.
A third issue is manually editing object keys without understanding them. Keys such as "BYZ-38-t0r.text" are generated identifiers tied to interface objects. You should change the translated value, not invent new keys.
Summary
- Yes, storyboard-localized strings can and should be updated.
- Keep the base storyboard as the layout source and update language-specific
.stringsdata. - Refresh localization resources after structural UI changes, not only text edits.
- XLIFF import and export is a good workflow for translator collaboration.
- Edit translated values carefully and avoid inventing or renaming generated keys by hand.
Related reading
- Is it possible to update a view based of two values with the .task modifier
- is it possible to update UIButton title/text programmatically?
- Is it possible to use AutoLayout with UITableView's tableHeaderView?
- Is it possible to use Java 8 for Android development?
- Is it possible to use Java 8 for Android development?
- Is it possible to use Python to write cross-platform apps for both iOS and Android?
- Is it possible to use Swift's Enum in Obj-C?
- Is key-value observation KVO available in Swift?
.png&w=3840&q=75)
Tackling System Design Interview Problems
A short course that equips you with the skills to approach system design interviews methodically.
Start the free courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.