Из того, что я понимаю, локализовать Раскадровка объектов довольно прост: у вас есть файл, который выглядит примерно так:Что такое «правильный» способ локализовать программно созданные строки в Swift/Xcode?
/* Class = "NSMenuItem"; title = "Superscript"; ObjectID = "Rqc-34-cIF"; */
"Rqc-34-cIF.title" = "Superscript";
/* Class = "NSMenuItem"; title = "Select All"; ObjectID = "Ruw-6m-B2m"; */
"Ruw-6m-B2m.title" = "Select All";
/* Class = "NSTextFieldCell"; placeholderString = "0"; ObjectID = "RxW-oS-gX3"; */
"RxW-oS-gX3.placeholderString" = "0";
/* Class = "NSTextFieldCell"; title = "0"; ObjectID = "RxW-oS-gX3"; */
"RxW-oS-gX3.title" = "0";
/* Class = "NSMenuItem"; title = "Jump to Selection"; ObjectID = "S0p-oC-mLd"; */
"S0p-oC-mLd.title" = "Jump to Selection";
/* Class = "NSButtonCell"; title = "Play"; ObjectID = "qjC-b0-dMe"; */
"qjC-b0-dMe.title" = "Play";
и локализовать каждую строку, вы просто заменить текст справа, с ее локализованным эквивалентом. Достаточно легко.
Однако, если код показывает метку или диалоговое окно, где строка определена в коде? Например:
if (dialogOKCancel("Invalid Path", text: "The file/path you selected does not exist, is not a valid sound file, or cannot be accessed by the program.")) {
self.dismissController(self)
}
или
let result = dialogOKCancel("Discard Changes?", text: "Press Cancel to close this window and save your changes to \(filename), or OK to create a new file.")
Я знаю, что есть много различных способов, которыми я мог бы сделать это (определение строки при запуске в соответствии с настройками локализации обнаруженных приложением была одна вещь, которую я думал), но мне интересно, есть ли «правильный»/официальный способ делать то, что я пытаюсь выполнить, или если нет, то какой лучший/самый эффективный метод.
Я понимаю, что [ 'NSLocalizedString'] (https://developer.apple .com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/index.html # // apple_ref/c/macro/NSLocalizedString) - это идиоматический способ справиться с этим. [Вот еще одна статья] (http://nshipster.com/nslocalizedstring/) Я нашел об этом. – icktoofay