2 votes

Swift ne renvoie pas la version localisée pour URLResourceKey.localizedNameKey

Je suis en Italie et le code suivant devrait retourner le nom localisé pour Preview.app mais il retourne Preview.app

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

J'ai vérifié la langue retournée et elle est correcte

let language = NSLocale.preferredLanguages[0]
print(language)

La version Objective-C fonctionne correctement et renvoie Anteprima la localisation en italien de /Applications/Preview.app

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

Où se trouve l'erreur ?

1voto

BaseZen Points 6460

Le code est correct.

Je parie que vous avez un projet Swift séparé, et que vous avez juste oublié de configurer CFBundleLocalizations en Info.plist :

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

Tout ce qui ne figure pas dans ce tableau ne fonctionnera pas correctement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X