Подтвердить что ты не робот

Как сделать время, заканчивающееся `: 00` доступным (например, 14:00)

Голосовое сообщение читает следующий NSStrings так:


14:15

"Четырнадцать пятнадцать".

Это явно время


14:00

"Четырнадцать".

Это неоднозначно.


Если время 14:00 появляется в строке состояния, оно правильно считывает его как

"Четырнадцать сотен часов"

Как это сделать локализованным образом?

iOS, считывая правильное время

4b9b3361

Ответ 1

Как это сделать локализованным образом?

Переключение accessibilityLabel с результатом NSDateFormatter::localizedStringFromDate() будет лучше всего, потому что вы можете полагаться только на собственный алгоритм iOS для обработки любого языка.

Проблема локализации в том, что она будет зависеть от языка, который вы хотите.

На французском языке, например, вы никогда не произносите :00, "14:00" будет читаться как quatorze heures ( "четырнадцать часов" ). "14:12" - "quatorze heures douze" (четырнадцать часов двенадцать, а не "четырнадцать двенадцать" )

На испанском языке, даже если вы читаете 24-часовой формат, вы всегда будете читать его на 12-часовом основании: "14:00" будет читаться как "лас-до-ла-дард" ( "два дня" ), не говоря о различие между "de la tarde" и "de la noche".

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

Ответ 2

ИМХО это очень легко; -)

14:00 = Четырнадцать часов