Локализовывание современного находящегося в xib приложения Mac

Эта статья связана с Haskell, но она также объясняет застежки-молнии довольно хорошо, и это должно быть легко к краткому обзору от Haskell-специфических-особенностей.

19
задан Peter Hosey 29 September 2009 в 21:16
поделиться

3 ответа

ОБНОВЛЕНИЕ Январь 2014 г .: Код Apple «autolayout» в сочетании с их «базовой» локализацией взял большинство моих идей и улучшил их. Я рекомендую не использовать мои старые инструменты, о которых я говорю в этом ответе. Но, к тому же, человек был прав!


Я НАСТОЯТЕЛЬНО НАСТОЯТЕЛЬНО не рекомендую изменять фрейм в локализациях. Я знаю, что это противоречит совету Apple, но существует ТАКОЕ МНОГО проблем с разрешением смены кадров - вы получаете миллиард крайних случаев.

Представьте, что в вашем приложении 10 XIB, и вы поддерживаете 12 языков. Теперь у вас есть 120 различных макетов для поддержки. Вы просто не можете этого сделать.

Измените строки, оставьте представления там, где они есть. Если нужно, сделайте их крупнее на ВСЕХ языках. Похоже, это не должно работать, но это так. (Я получил три награды Apple Design Awards за приложение, локализованное таким образом на 10 или около того языков.)

Особенности:

  • Для радио и флажков просто позвольте им простираться далеко вправо, за пределы последнего английского символа. Это также обеспечивает хорошую большую посадочную площадку для неточных указателей мыши.

  • Что касается кнопок, они в любом случае должны быть широкими, потому что никогда не выглядит хорошо, когда текст теснен в середине кнопок.

  • Для заголовков в столбцах табличного представления вы можете должен автоматически изменяться, когда вы загружаете их, если необходимо.

  • Для пояснительного текста у вас должно быть дополнительное пространство справа и, возможно, дополнительная строка. Это просто делает английскую версию XIB менее загроможденной. Конечно, немцы увидят более жесткий XIB, но, эй, они немцы - они, наверное, к этому привыкли. Возможно, это даже есть немецкое слово. "

33
ответ дан 30 November 2019 в 03:25
поделиться

I confess that I'm not all that familiar with the process of localizing Mac apps. But I did run across a script that's part of the Three20 iPhone library that seems like it might be useful: diffstrings.py is a Python script that "compares your primary locale with all your other locales to help you determine which new strings need to be translated. It outputs XML files which can be translated, and then merged back into your strings files."

EDIT: As a companion to Wil Shipley's answer to this question, I'll add a link to a blog post he just wrote that goes into more detail about localization, and provides some of the tools that he's built to ease the process.

3
ответ дан 30 November 2019 в 03:25
поделиться

Имейте в виду, что файлы XIB - это просто файлы XML в непонятном формате , так что вы можете достаточно легко их перевести, при условии, что вы можете найти, какие строки есть для перевода в первую очередь. Например, вот фрагмент, который создает кнопку с именем Jenson:

<object class="NSButtonCell" key="NSCell" id="41219959">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Jenson</string>
...
</object>

Таким образом, вы можете перевести эту строку, а затем заменить ее вхождения в XIB переведенным значением. Чтобы убедиться, что он работает должным образом, вы можете изменить язык, чтобы вместо этого использовать случайные ключи (например, BUTTON_TITLE), что упростит обнаружение того, что он отсутствует.

Однако позиции / размеры элементов фиксированы, поэтому у вас могут быть заголовки на другом языке, которые выходят за пределы места. Который'

0
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: