Как локализовать содержимое Info.plist в Visual Studio - PullRequest
2 голосов
/ 08 мая 2019

У меня есть приложение Xamarin для iOS, которое на данный момент поддерживает 4 разных языка. тем не мение Теперь я хотел бы иметь возможность переводить содержимое моего файла info.plist и его ключей, таких как NSCameraUsageDescription, чтобы его значения также могут быть переведены.

Я провел довольно много исследований до сих пор, и, просматривая документацию, желательно создать файл InfoPlist.strings, который будет содержать мой ключ NSCameraUsageDescription = "содержимое здесь".

Для каждого языка будет файл InfoPlist.strings, который будет находиться в папке fr.lproj , es.lproj и т. Д., Следуя языку.

Я думаю, что относительно хорошо объяснено использовать эту опцию в XCode с возможностью создавать файлы .strings и локализовать их напрямую. Однако в Visual Studio у меня есть некоторые трудности с представлением и адаптацией моих файлов. Эквивалентом файла .strings в Xcode является файл .resx в VS?

Каким образом могут быть отношения между моим InfoPlist.strings и моим основным файлом Info.plist для того, чтобы мое приложение указывало на папку fr.lproj / InfoPlist.strings, когда я, например, переключаюсь на французский.

Должен ли я создавать одну папку для каждого языка с именем fr.lproj, в которую я помещаю один файл InfoPlist.strings или InfoPlist.resx с моими ключами?

1 Ответ

2 голосов
/ 09 мая 2019

Однако в Visual Studio у меня есть некоторые трудности с адаптировать мои файлы. Эквивалентом файла .strings в Xcode является .resx файл на VS?

Нет, чтобы создать .strings файл в Visual Studio, вы должны выбрать «Добавить» -> «Новый элемент» -> Текстовый файл , а затем изменить имя файла с помощью xxx.strings.

Как могут быть отношения между моим InfoPlist.strings и моим основным Info.plist файл, чтобы сказать моему приложению, чтобы нажать в папка fr.lproj / InfoPlist.strings, когда я переключаюсь на французский для экземпляр.

Если вы создали InfoPlist.strings для каждого языка, он автоматически прочитает конфигурацию в файле соответствующего языка, а затем покажет правильный язык. Если ключ не найден в InfoPlist.strings, он будет использовать значение по умолчанию в основном Info.plist.

Должен ли я создать одну папку для каждого языка с именем fr.lproj где я положил один файл InfoPlist.strings или InfoPlist.resx с моим ключи?

Да, если у вас есть четыре языка поддержки, вы должны создать 3 папки xx.lporj (еще одна - Base.lporj), каждая из которых содержит InfoPlist.strings и Localizable.strings.

В вашем файле InfoPlist.strings установите ключ NSCameraUsageDescription = "содержимое здесь" и т. Д.

Прочитайте документ может помочь.

Вот что я только что создал в своем проекте:

example

...