2016-10-06 3 views
2

의 지역화 된 버전을 반환하지 않고 다음 코드는 Preview.app에 대한 지역화 된 이름을 반환해야하지만, 내가 체크 한 Preview.app스위프트 URLResourceKey.localizedNameKey 내가 이탈리아에있어

let url = URL(fileURLWithPath:"/Applications/Preview.app") 
let v = try! url.resourceValues(forKeys: [.localizedNameKey]) 
print(v.localizedName!) 

반환 언어를 반환하며 올바른

let language = NSLocale.preferredLanguages[0] 
print(language) 
목적-C 버전은 잘 작동하고 Anteprima /Applications/Preview.app

,174에 대한 이탈리아어 현지화를 반환

NSString* displayName = nil; 
NSURL* u = [NSURL fileURLWithPath:@"/Applications/Preview.app"]; 
[u getResourceValue:&displayName forKey:NSURLLocalizedNameKey error:nil]; 
NSLog(@"%@", displayName); 

어디서 오류가 있습니까?

+0

플롯을 두껍게하려면'/ Applications/"'로 시도하십시오. 나는 적당한'Applicazioni'을 얻는다. – BaseZen

+0

Xcode 8/Swift 3에서 맨손의 Mac OS X 프로젝트를 시작하고 "지역화 기본 개발 영역"을 "it"으로 설정하면 작동합니다. 대신에 :'UserDefaults.standard.set ([ "it"], forKey : "AppleLanguages")를 사용하면'NSLocale.preferredLanguages ​​[0]'이'it'을 반환하더라도 작동하지 않습니다. 그래서'CFBundleDevelopmentRegion'은 AppleBundle 이상의 것을합니다. – BaseZen

답변

1

코드는 정상입니다.

난 당신이 별도의 스위프트 프로젝트를 내기 그냥 CFBundleLocalizationsInfo.plist에서 설정하는 것을 잊었다 것 : 제대로 작동하지 않습니다이 배열에없는

<key>CFBundleLocalizations</key> 
<array> 
    <string>en</string> 
    <string>it</string> 
</array> 

아무것도.

+0

고마워요 !! 나는 Objective-C 프로젝트가이 설정을 필요로하지 않는 이유를 이해하지 못한다. 그러나 그것은 나에게 좋다. :) – dafi