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
.
Add .Package(url: "https://github.com/PiXeL16/IBLocalizable.git",majorVersion: 1)
to your Package.swift
Add pod 'IBLocalizable'
to your Podfile.
Add github "PiXeL16/IBLocalizable"
to your Cartfile.
- Please note, installation via CocoaPods or Carthage is much simpler and recommended.
Download and drop /IBLocalizable
in your project.
- UILabel
- UIButton
- UINavigationItem (Navigation titles)
- UIBarItem (BarButton, TabBarItem, etc)
- UITextField
- UITextView
- UISearchBar
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! 😄.
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.
Since IBLocalizable
only uses IBInspectable
and never IBDesignable
, your incremental builds will continue to work. (http://www.openradar.me/20690594)
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
.
- Support more views (TableView Cells, etc)
- Improve sample project.
Chris Jimenez - http://code.chrisjimenez.net, @chrisjimeneznat
IBLocalizable
is released under the MIT license. See LICENSE for details.