Я использую genstrings
для генерации .strings
файлов из файлов исходного кода в моем проекте. Хотя проект технически является приложением Cappuccino , этот вопрос должен в равной степени применяться к любому проекту, в котором используются файлы .strings
.
У меня есть строка формата, которую я хотел бы локализовать: @"%d:%02d %@"
. Это для отображения значений времени. Если бы это было приложение для OSX / iOS, я бы использовал встроенное форматирование даты и времени, но, поскольку это капучино, я должен свернуть свое собственное. Когда я запускаю genstrings
, он выдает это значение для этого ключа: "%1$d:%2$d %3$@"
.
Это как в файле Localizable.strings
:
/* ShortLocalTimeFormat */
"%d:%02d %@" = "%1$d:%2$d %3$@";
с помощью этой команды: genstrings -o Resources/en.lproj -s CPLocalizedString *.j */*.j
Опять же, не обращайте внимания на то, что я использую CPLocalizedString
вместо NSLocalizedStrings
и *.j
вместо *.m
, поскольку эти значения подходят для капучино. Обратите внимание, что 02
в %02d
отбрасывается в результирующей строке формата. Если я запускаю его снова с параметром -noPositionalParameters
, он просто оставляет строку как: genstrings -o Resources/en.lproj -noPositionalParameters -s CPLocalizedString *.j */*.j
.
/* ShortLocalTimeFormat */
"%d:%02d %@" = "%d:%02d %@";
Это ошибка в genstrings
, или невозможно использовать flags / width в строках формата при сохранении позиционных параметров?