Ответ 1
Здесь действительно нелегко исправить ситуацию. Для каждого языка должны быть индивидуально размещены НИБ. В какой-то мере это улучшает общий пользовательский интерфейс, потому что разные языки на самом деле часто нуждаются в разной компоновке, чтобы выглядеть лучше. Русские и немецкие языки являются "более крупными" в экранной недвижимости, чем английский. Китайцы часто могут быть намного меньше, а другой макет выглядит лучше с китайскими иероглифами. Арабский и иврит - справа налево и могут нуждаться в радикальных изменениях в макете. Автоматизированная компоновка проста, но достигается благодаря ее разным уровням уродливости на всех языках. Когда дается выбор между легким для разработчика и уродливым против сложного для разработчика и красивым, Apple почти всегда выбирает последнее. Тем не менее, Apple все еще не сделала это почти так же легко, как только могли.
Итак, первый урок состоит в том, чтобы сохранить ваши NIB просто. Это проще на iPhone, чем на Mac, потому что iPhone не имеет привязок, а iPhone NIB вообще проще в любом случае. Вы также можете использовать текстовую инъекцию для NIB, которые имеют очень небольшое количество текста (например, название). "Text injection" - это причудливый способ сказать "использовать розетку для метки и установить ее в локализованный текст при загрузке представления".
ibtool может вытаскивать строки из NIB и также вставлять их обратно, что может быть полезно. Я использовал iLocalize, что полезно для работы с контрактными локализаторами, но на самом деле не помогает с проблемой, о которой вы говорите.
Я попытался избавиться от NIB и просто использовать код, думая, что это упростит ситуацию, но на самом деле этого не произошло. Легче было изложить каждый язык в NIB, чем придумать логику компоновки, которая хорошо смотрится на всех языках (см. Первый абзац). Ввод текста полезен только в нескольких местах. Если вы можете разделить свои NIB на те, которые должны быть локализованы, а те, которые этого не делают, это может быть полезно. На iPhone я обнаружил, что менее половины моих NIB действительно имеют в них текстовые или локализованные изображения.
Конечно, вы должны прочитать Темы программирования интернационализации, но мне жаль, что на ваш вопрос действительно нет простого ответа. Продукты доставки, локализованные на 19 языках, я чувствую вашу боль.