Локализация с %@

#localization #nsstring #system #uidevice

#локализация #nsstring #система #пользовательское устройство

Вопрос:

Я пытаюсь локализовать текст «Имя системы:» в приведенном ниже коде:

 NSString *systemName = [NSString stringWithFormat:@"System Name: %@", [[UIDevice
currentDevice] systemName];
  

Я делаю это, изменяя код на этот:

 NSString *systemName = NSLocalizedString(@"SystemNameKey", @"System Name Info");
  

В моем файле Localizable.strings я добавляю следующий код:

 "SystemNameKey" = "System Name: %@", [[UIDevice currentDevice] systemName];
  

Конечно, это не сработает, потому что UIKit не импортируется в Localizable.stings, и неудивительно, что когда я добавляю код импорта, он не работает. Я уверен, что есть альтернативный способ сделать это, о котором я просто не думаю в данный момент. Есть идеи? Я чувствую, что упускаю что-то действительно очевидное.

Ответ №1:

Вы должны попробовать сделать это таким образом:

 NSString *systemNameLocalized = NSLocalizedString(@"SystemNameKey", @"System Name Info");
NSString *systemName = [NSString stringWithFormat:systemNameLocalized, [[UIDevice currentDevice] systemName]];
  

и в вашем локализуемом файле.string:

 "SystemNameKey" = "System Name: %@";