我有一個應用程序,我想改變應用程序內的語言,這與localize.strings工作正常,但此代碼不會觸發main.strings文件。切換語言在故事板中的視圖元素運行應用程序
的下面是在settingsLanguageVC
import UIKit
let AppLanguageKey = "AppLanguage"
let AppLanguageDefaultValue = "en"
var appLanguage: String {
get {
if let language = NSUserDefaults.standardUserDefaults().stringForKey(AppLanguageKey) {
return language
} else {
NSUserDefaults.standardUserDefaults().setValue(AppLanguageDefaultValue, forKey: AppLanguageKey)
return AppLanguageDefaultValue
}
}
set(value) {
NSUserDefaults.standardUserDefaults().setValue((value), forKey: AppLanguageKey)
}
}
class ViewController: UIViewController {
在這裏所使用的代碼是在stringsExtenstion.swift
import Foundation
extension String {
var localizeString: String {
return localizeString(appLanguage)
}
var localizeStringUsingSystemLang: String {
return NSLocalizedString(self, comment: "")
}
func localizeString(lang:String?) -> String {
if let lang = lang {
if let path = NSBundle.mainBundle().pathForResource(lang, ofType: "lproj") {
let bundle = NSBundle(path: path)
return NSLocalizedString(self, tableName: nil, bundle: bundle!, value: "", comment: "")
}
}
return localizeStringUsingSystemLang
}
}
所以,你要使用不同的字符串的文件嗎?或者,您使用例如系統按鈕「完成」,並且您想翻譯系統元素? –
我想要使用main.strings(storyboard)和localized.strings。目前,只有本地化的字符串正在被輸入。主要字符串具有選項卡名稱,以及某些選項卡上的菜單項。這就是爲什麼我需要這兩個。我嘗試將菜單項添加到localize.strings,但這不起作用 –
我建議你以編程方式設置視圖元素的所有標題。一小時後,我會爲你製作樣品。 –