При такой локализации учитываются языки, на которые вы хотите перевести. Множественные множественные числа встречаются довольно редко, и я думаю, что в большинстве случаев они взаимозаменяемы или чувствительны к контексту. Который, если он не используется в нескольких местах в вашем приложении, вам не нужно беспокоиться. Если вы делаете это, и конкретное использование создает грамматическую ошибку во множественном числе, то вам нужно добавить новый ключ по всем направлениям (все языки) для этого одного экземпляра. Или, так как вы все равно обнаруживаете культуру, добавьте дополнительное условие для языка, на который влияют, и используйте одну альтернативную форму множественного числа.
Я бы не советовал избегать этого, так как вы можете быстро потерять поток естественного языка "Минс ответил назад: 6".
Возможно, вы имели в виду это в первую очередь, но гораздо более распространенный сценарий - это вариации синтаксического размещения в разных культурах. Например, строка, желающая быть локализованной «Эта страница просматривается X раз». Вы можете сделать 3 локализуемых строки для этого:
PageViewStart = "Эта страница просмотрена"
PageViewEnd = "время"
PageViewEndPlural = "times"
Тогда простая псевдо-реализация будет
PageViewStart + pageCount.ToString () + pageCount == 1? PageViewEnd: PageViewEndPlural;
Однако на голландском языке «Deze pagina является {0} keer bekeken» и на корейском языке «조회수 {0}». Таким образом, вы видите, что сразу же столкнетесь с проблемами с реализациями нескольких способов форматирования структуры множественных предложений в разных языках.
Я намеренно оставил {0} в примерах, поскольку это намекает на мое решение. Используйте локализацию для всего предложения во множественном и не множественном числе.
PageView = "Эта страница просмотрена 1 раз."
PageViewPlural = "Эта страница была просмотрена {0} раз."
Таким образом, вы можете написать условное выражение (снова псевдо в зависимости от вашей реализации):
pageCount> 1? PageView: String.Format (PageViewPlural, pageCount.ToString ());
Единственное, что вашим переводчикам потребуется инструктаж относительно значения и размещения токена {0} в файле resx.