Каковы лучшие подходы к локализации изображений с текстом для iPhone? - PullRequest
2 голосов
/ 02 апреля 2012

Я планирую локализовать свое приложение для iPhone, включая 9 других языков, кроме английского.

Меня беспокоит, что у меня есть много .png файлов с текстами и соответствующими им @2x изображениями дляRetina Display.

Сейчас мое приложение имеет 5,6 МБ, и я боюсь, что оно будет намного тяжелее, чем после добавления файлов .png и @2x для каждого из 9 других языков.

Из вашего опыта это правда?Получу ли я гораздо большее по размеру приложение после локализации на другие 9 языков?

Ответы [ 3 ]

6 голосов
/ 02 апреля 2012

Ответ зависит от того, как вы реализовали свое приложение.

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

Локализуемые приложения обычно не включают текст в свои изображениявместо этого они программно отображают текст (из локализуемых ресурсов) поверх фоновых изображений.Вы можете использовать XiB и накладывать UILabels на изображения или другие элементы пользовательского интерфейса.Если вы сделаете это, вам не придется беспокоиться о влиянии размера на добавление языков, и локализация будет проще простого.

1 голос
/ 02 апреля 2012

Я предполагал, что большинство ваших изображений будут использоваться для кнопок? Вместо создания кнопок с изображениями рассмотрите возможность использования растягиваемого фонового изображения для кнопок, а затем добавьте в него текст. UIKit предоставляет множество методов, которые удобно использовать для вычисления и позиционирования текста внутри кнопок.

Проще поддерживать, если вы делаете это таким образом, вместо предоставления изображений для каждой отдельной кнопки, которая у вас есть. Кроме того, это дает вам возможность расширить свое приложение в будущем, не превышая ограничения в размере 50 МБ. Допустим, вам каким-то образом удастся уместить все содержимое в вашем приложении и чуть меньше 50 МБ, что, если в будущем вы добавите еще какие-то функции или многие пользователи будут запрашивать определенный язык?

Извините, если мое предположение неверно. Дайте мне знать, чтобы я мог изменить свой ответ.

1 голос
/ 02 апреля 2012

Я сомневаюсь, что это будет проблемой. Если предположить, что 5 МБ вашего текущего приложения выделено для ваших файлов PNG, то добавление 9x к нему должно сделать его размером около 50 МБ. Это не большое приложение.

Другими факторами, которые вы можете учитывать, является то, что не все изображения должны быть локализованы, поэтому даже оценка в 50 МБ, вероятно, высока.

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

Если вам абсолютно необходимо использовать текст в формате текста, рассмотрите возможность рендеринга изображений при выполнении приложения.

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

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

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

Слово предупреждения об использовании этого метода. Слои высокопрозрачных или непрозрачных изображений над изображениями поверх изображений могут стать довольно интенсивными на процессоре iOS, если это происходит с высокой частотой. Поместить одно изображение поверх другого не должно быть проблемой, однако наложение нескольких изображений друг на друга в различных частях экрана может привести к сбою в работе вашего приложения. Однако, если вы просто ищете решение для локализации текста, я думаю, что это довольно жизнеспособное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...