Локализация естественно отформатированного списка данных API - PullRequest
0 голосов
/ 15 апреля 2019

Скажем, я скачал этот список данных из API:

[
    "Anita",
    "Jean",
    "Peter"
]

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

Anita, Jean, and Peter

Однако, если пользователь, например, шведский, он должен увидеть следующую строку:

Anita, Jean och Peter

Обратите внимание, что оксфордская запятая отсутствует, и в шведском языке используется другое слово для «и», что и ожидал бы увидеть шведский пользователь. Как я могу отформатировать эти данные естественным языком, который бы учитывал местность пользователя? Может быть переменное количество данных, не обязательно только 3 элемента. Мой инстинкт состоит в том, чтобы подкласс Formatter / NSFormatter, но я хотел бы построить это так, чтобы я мог легко расширить его для поддержки языков, на которых я не говорю, поэтому мне интересно, есть ли стандарт iOS или сторонний форматер, который мне не удалось найти в моих поисках

1 Ответ

1 голос
/ 10 июня 2019

В предыдущих версиях iOS этот вопрос оставался нерешенным, и я все равно буду признателен за ответ, если он у вас есть.Тем не менее, iOS 13 предоставляет NSListFormatter, который можно использовать именно для этого.Например:

Swift:

ListFormatter().localizedString(byJoining: ["Anita", "Jean", "Peter"])

Objective-C:

[[NSListFormatter new] localizedStringByJoiningStrings:@["Anita", "Jean", "Peter"]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...