[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]
此API返回plist中的Bundle Display Name。如何獲得本地化的CFBundleDisplayName
但是我的應用程序已本地化,並有不同的顯示名稱。
所以我需要得到本地化的顯示名稱InfoPlist.strings
應該隨設備語言設置而變化。
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]
此API返回plist中的Bundle Display Name。如何獲得本地化的CFBundleDisplayName
但是我的應用程序已本地化,並有不同的顯示名稱。
所以我需要得到本地化的顯示名稱InfoPlist.strings
應該隨設備語言設置而變化。
你試過-[NSBundle localizedInfoDictionary]
?
[[[NSBundle mainBundle] localizedInfoDictionary]
objectForKey:@"CFBundleDisplayName"]
我建議使用kCFBundleNameKey
:
[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleNameKey]
雨燕3.0
class Utils {
static var localizedAppName: String? {
return Bundle.main.localizedInfoDictionary?["CFBundleDisplayName"] as! String?
}
}
嘗試此斯威夫特:
// Localized
if let displayName = Bundle.main.localizedInfoDictionary?["CFBundleDisplayName"] as? String {
print("App Display Name - \(displayName)")
}
// Non-Localized
if let displayName = Bundle.main.infoDictionary?["CFBundleDisplayName"] as? String {
print("App Display Name - \(displayName)")
}
此外,如果嘗試此,Y ou've筆記設置顯示名稱
// Localized
if let appName = Bundle.main. localizedInfoDictionary?["CFBundleName"] as? String {
print("App Name - \(appName)")
}
// Non-Localized
if let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String {
print("App Name - \(appName)")
}
有用的技巧:
// Print bundle info dictionary to get complete details about app
print("Bundle.main.infoDictionary - \(Bundle.main.infoDictionary)")
print("Bundle.main.localizedInfoDictionary - \(Bundle.main.localizedInfoDictionary)")
Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String ?? ""
使用這種方法優於其他接入方式,因爲它返回鍵的本地化值時,一個可用。 。
簡單的解決辦法:(感謝 – Umgre 2012-02-06 05:55:50
@Umgre歡迎你有一噸的API的 - 大量的背誦=) – justin 2012-02-06 05:59:18
這種方法更直接返回一個本地化的字符串太: '[一個NSBundle mainBundle] objectForInfoDictionaryKey:@ 「CFBundleDisplayName」]' – artur 2014-07-22 20:18:59