Существует ли .NET эквивалент конструкции MediaWiki «PLURAL» для работы с параметрами в локализованном тексте? - PullRequest
0 голосов
/ 19 января 2011

Я работаю над сборкой файлов ресурсов (resx) для локализации веб-приложения ASP .NET. Эти файлы ресурсов будут позже предоставлены переводчикам, чтобы содержимое могло быть переведено на все языки, которые нам нужно будет поддерживать.

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

Вы уверены, что хотите удалить эти {0} записи?

Это обходит проблему использования слова «запись» против записи. Это немного грамматический хак, но я полагаю, он достаточно хорошо работает на английском языке. Тем не менее, я не хочу предполагать, что этот же подход будет работать для других языков. В некоторых случаях (например, на китайском) плюрализация даже не является проблемой, но в других языках она, безусловно, будет, и использование хака (-ов), вероятно, не приведет к ее снижению.

Я читал статью по локализации на вики-сайте MediaWiki (dogfooding!) И обнаружил, что у них действительно есть возможность вставлять различный текст для использования в сообщении в зависимости от того, имеет ли значение параметр во множественном числе или нет. Таким образом, приведенный выше текст ресурса (обратите внимание на использование $ 1 для заполнителя параметра вместо {0}, но концепция такая же):

Вы действительно хотите удалить эти $ 1 {{PLURAL: $ 1 | record | records}}?

Мне нравится этот синтаксис, и мне было интересно, есть ли какие-либо библиотеки .NET, которые могли бы интерпретировать это, чтобы я мог подключиться к специальному менеджеру ресурсов для моего веб-приложения для поддержки таких функций.

1 Ответ

0 голосов
/ 19 января 2011

Пока в System.Data.Entity.Design.PluralizationServices = (

поддерживается только английский язык)

http://msdn.microsoft.com/en-us/library/system.data.entity.design.pluralizationservices.pluralizationservice.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...