Localize your views easily in Interface Builder with IBLocalizable.
With IBLocalizable, you can localize your views in Interface Builder easily.
Simply set the new Localizable String property that shows up in Interface builder to the value that you added in your Localizable .string file. Most views can be localized this way without a single line of code.
Installation
Swift package manager
Add .Package(url: "https://github.com/PiXeL16/IBLocalizable.git",majorVersion: 1) to your Package.swift
CocoaPods
Add pod 'IBLocalizable' to your Podfile.
Carthage
Add github "PiXeL16/IBLocalizable" to your Cartfile.
Supported Views
- UILabel
- UIButton
- UINavigationItem (Navigation titles)
- UIBarItem (BarButton, TabBarItem, etc)
- UITextField
- UITextView
Supporting custom views
Custom views can be supported easily. Just create an extension and implement the Localizable Protocol.
If your custom view extends from UIView you only need to extend your custom view and implement the localizableProperty.
For example: lets say that I have a custom view that contains several UILabel and a UIImageView. I will like to localize one of the UILabel.
import UIKit
extension MyCustomView {
public override var localizableProperty: String?{
get{
return self.label.text
}
set{
self.label.text = newValue
}
}
}Thats it! 😄.
Usage
After the package its installed simply open your Storyboard or Interface Builder. All of the supported views will show a new Localizable String property.
Since everything is extension based, IBLocalizable should play nice with other libraries or pods that you are using.
Build Performance
Since IBLocalizable only uses IBInspectable and never IBDesignable, your incremental builds will continue to work. (www.openradar.me/20690594)
Sample Project
In the Xcode Project you can find a sample project of a simple Login view controller. All of this is automatically localizable in English and Spanish by just using IBLocalizable.
English
Spanish
To do
- Support more views (SearchBar, TableView Cells, etc)
- Improve sample project.
Author
Chris Jimenez - code.chrisjimenez.net, @chrisjimeneznat
License
IBLocalizable is released under the MIT license. See LICENSE for details.

