Я ищу реалистичный многоязычный класс плюрализации, и я основываю его на интерфейсе IPlural, который я создал.Создание экземпляра динамического объекта C# на основе языка или CultureInfo
IPlural определяет функцию pluralType
string pluralType(float value);
Для каждого языка, который я хочу, чтобы поддержать я планирую создать файл класса, который реализует набор правил, который определяет pluralType, который может быть «ноль», «один» «два», «несколько», «много» или «другое». Функция проста, вы передаете числовое значение, вы получаете строку.
Моя проблема заключается в том, что я хочу выбрать одну из реализаций IPlural на основе существующих в настоящее время CultureInfo/Language пользователей, не имея массового оператора switch, как я могу это сделать?
Все мои классы называются такие вещи, как:
- Plural_en
- Plural_pl
- Plural_bs
где последние два символа языка (в данном случае, как правило, независимым от локали).
Эти классы все реализовать IPlural, и я предполагаю, что он должен работать следующим образом ...
IPlural pluraliser = new "dynamically chosen pluraliser class"
string pt = pluraliser.pluralType(5);
Дело в том, я не знаю, если это вообще возможно?
Любые указатели были бы наиболее желанными.
Благодаря
Я считаю, что существуют некоторые языки, например, 2 имеет различные формы в зависимости от, например, полов или других модифицирующих форм. Как вы планируете это решать? –
Я думаю, что этот дизайн плюрализации очень упрощен и не будет работать в общем случае; обычно вам нужно локализовать всю строку в несколько модифицированных форм; Кроме того, число и характер этих форм могут быть ... «довольно сложными». –
На македонии одна книга - «edna kniga», одно платье - «eden fustan», две книги - «dve knigi», две платья - «dva fustani», а три книги/платья - «три книги/фустани». – SWeko