DemoApp/DemoApp/Multilingual.swift in xcmultilingual-0.3.0 vs DemoApp/DemoApp/Multilingual.swift in xcmultilingual-0.3.1
- old
+ new
@@ -7,10 +7,13 @@
//
import Foundation
struct Multilingual {
+
+ class ClassForBundle {}
+
enum Animal: String {
case CAT = "CAT"
case DOG = "DOG"
case BEAR = "BEAR"
case DEER = "DEER"
@@ -23,11 +26,11 @@
case RHINOCEROS = "RHINOCEROS"
case GORILLA = "GORILLA"
case MONKEY = "MONKEY"
var value: String {
- return NSLocalizedString(rawValue, tableName: Animal.name, bundle: NSBundle.mainBundle(), value: rawValue, comment: "")
+ return NSLocalizedString(rawValue, tableName: Animal.name, bundle: Multilingual.bundle(nil), value: rawValue, comment: "")
}
static let name = "Animal"
static var keys: [String] {
@@ -43,11 +46,11 @@
case HELLO = "HELLO"
case GOODMORNING = "GOODMORNING"
case GOODEVENING = "GOODEVENING"
var value: String {
- return NSLocalizedString(rawValue, tableName: Localizable.name, bundle: NSBundle.mainBundle(), value: rawValue, comment: "")
+ return NSLocalizedString(rawValue, tableName: Localizable.name, bundle: Multilingual.bundle(nil), value: rawValue, comment: "")
}
static let name = "Localizable"
static var keys: [String] {
@@ -61,11 +64,11 @@
enum Sample2Sample_Localization: String {
case SAMPLE_2 = "SAMPLE 2"
var value: String {
- return NSLocalizedString(rawValue, tableName: Sample2Sample_Localization.name, bundle: Multilingual.bundle("Loalizations/sample2.bundle"), value: rawValue, comment: "")
+ return NSLocalizedString(rawValue, tableName: Sample2Sample_Localization.name, bundle: Multilingual.bundle("sample2.bundle"), value: rawValue, comment: "")
}
static let name = "Sample Localization"
static var keys: [String] {
@@ -93,13 +96,17 @@
static var localizations: [String] {
return SampleSample.keys.map { SampleSample(rawValue: $0)!.value }
}
}
+}
- private static func bundle(relativePath: String) -> NSBundle {
- var components = (__FILE__ as String).pathComponents
- components.removeLast()
- let bundlePath = join("/", components) + "/" + relativePath
- return NSBundle(path: bundlePath) ?? NSBundle.mainBundle()
+extension Multilingual {
+ private static func bundle(bundleFile: String?) -> NSBundle {
+ if let bundleFile = bundleFile {
+ let path = NSBundle(forClass: Multilingual.ClassForBundle.self).resourcePath!.stringByAppendingPathComponent(bundleFile)
+ return NSBundle(path: path)!
+ }
+
+ return NSBundle(forClass: ClassForBundle.self)
}
}