Эпл ответили на мой баг-репорт. Стандартно: «не баг, а фича» ))
Как я понял, для точного определения строк, необходимых для экспорта локализаций, нужно использовать только NSLocalizedString! Функции и методы теперь не работают. Не объяснили они, правда, почему в xCode 9 всё нормально работало ))
Engineering has determined that this issue behaves as intended based on the following information:
It has long been a requirement (though not an enforced one) that the arguments to NSLocalizedString be string literals rather than variables. This is because the parsing used to extract strings from source code for localization is simple, and cannot do things like follow variable or function references; even if it were not simple in this fashion, generally determining the intent of your source code would not be possible.
You can write your extension using Bundle.main.localizedString(forKey: self, value: nil, table: nil) in place of NSLocalizedString(self, comment: “”), which is what NSLocalizedString() is a wrapper for in the first place.
Note that this will still not allow code like “some string”.localized to be picked up by Export For Localization; as stated, introspecting your source code to determine intent in that fashion is not generally possible. For Export For Localization to find localized strings, they must be in NSLocalizedString() or another function with congruent arguments; there is a build setting you can use to specify the names of additional macros/functions you would like Export For Localization to pick up.
We consider this issue closed. If you have any questions or concern regarding this issue, please update your report directly (https://bugreport.apple.com).
Thank you for taking the time to notify us of this issue.
Best Regards,
Developer Bug Reporting Team
Apple Worldwide Developer