Есть ли способ заставить Xcode локализовать имя приложения на других языках?

Я создаю приложение для macOS, скомпилированное для версии 10.12. Мой компьютер на английском языке, мой регион Португалия.

Приложение создано на 3 языках: английском (разработка, по умолчанию), португальском (Бразилия) и португальском (Португалия).

Я хочу локализовать название приложения.

Я создал файл InfoPlist.strings со следующими ключами для английского языка:

"CFBundleDisplayName" = "My App";
"CFBundleName" = "My App";
"CFBundleExecutable" = "My App";

и для португальского br и pt

"CFBundleDisplayName" = "Minha App";
"CFBundleName" = "Minha App";
"CFBundleExecutable" = "Minha App";

Я добавил эти ключи в Info.plist

CFBundleDisplayName = $(PRODUCT_NAME)
CFBundleExecutable = $(PRODUCT_NAME)
CFBundleName = $(PRODUCT_NAME)
CFBundleIdentifier = $(PRODUCT_BUNDLE_IDENTIFIER)
LSHasLocalizedDisplayName = YES

внутри настроек здания у меня есть

Product Name = My App

Я иду в Продукт > Схема > Редактировать схему > Выполнить > Параметры, устанавливаю Application Language на английский и запускаю приложение.

Xcode создает приложение с правильным и ожидаемым именем My App.app.

Я возвращаюсь к параметрам и устанавливаю язык на португальский, и Xcode продолжает генерировать приложение с именем My App.app вместо Minha App.app.

Как заставить Xcode локализовать имя приложения, отображаемое в Finder.


person Duck    schedule 29.12.2018    source источник


Ответы (1)


В macOS локализация работает иначе. Вы не создаете версию приложения для португальского языка. Одно приложение поддерживает локализацию для любого из поддерживаемых языков.

Под капотом, в файловой системе, каталог вашего пакета приложений всегда будет называться «My App.app», а не «Minha App.app». Локализация происходит только в момент отображения в графическом интерфейсе.

Вам не нужно перестраивать приложение.

Итак, ваша проблема не с Xcode, а с Finder и системой. Чтобы увидеть другие локализации в Finder, вам нужно переключить языковые настройки вашей учетной записи на использование (одного из) португальских языков. Я не помню, переключается ли Finder в реальном времени или вам нужно перезапустить его (удерживая нажатой клавишу Option / Alt, щелкните правой кнопкой мыши значок Dock и нажмите «Перезапустить»; в качестве альтернативы выйдите из системы и снова войдите).

person Ken Thomases    schedule 29.12.2018