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) } }