Интернационализация с Перьями. Это - действительно хорошая идея?

Я ниже blv чище и делает свою работу

    E= [[0, 0], [0, 1], [1, 0], [1, 1]]
    size = max(max(E))+1
    r = [[0 for i in range(size)] for j in range(size)]
    for row,col in E:
        r[row][col] = 1
    print(r)    
7
задан Binarian 30 May 2014 в 17:27
поделиться

3 ответа

Ситуация с локализацией не идеальна. Хотя Какао, элементы UI поддерживают некоторую динамическую гибкость в своей калибровке (флаги ausosizing), очень трудно расположить их в представлении так, чтобы они разместили любой размерный текст.

Как Heng-Cheong указывает, это обычно означает, что некоторая корректировка расположения требуется на основе на локализацию. Apple поддерживает процесс, названный возрастающей локализацией с инструментом, названным "ibtool", связанным Вашими инструментами разработчика. Процесс совсем не интуитивен и, кажется, имеет некоторые тонкие ошибки, но он помогает сделать процесс легче, чем, скажем, отдельное поддержание 25 различных перьев вручную. Процесс по существу включает отображающиеся изменения, которые Вы вносите в свое основное перо на другие локализованные перья. Apple описывает процесс более подробно:

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html

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

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

9
ответ дан 6 December 2019 в 10:03
поделиться

Иногда, локализация включают больше, чем просто замена текста, но изменений в расположении также. Например, строки в одной локали/языке могут быть значительно длиннее, чем в другом, вызвав изменение в расположении. Справа налево язык часто будет означать некоторые изменения в расположении также.

5
ответ дан 6 December 2019 в 10:03
поделиться

При построении на предыдущих двух ответах существует инструмент, названный iLocalize, который имеет целью делать процесс легче, чем ibtool делает (и это является более старым, чем ibtool). Я никогда не использовал его сам, но мой друг Evan использует его и на Adium и на Growl и любит его.

5
ответ дан 6 December 2019 в 10:03
поделиться