我正在考虑实现一个真正的多语言多元化类,并且我将它基于我创建的接口 IPlural。
IPlural 定义了函数pluralType
string pluralType(float value);
对于我想要支持的每种语言,我计划创建一个类文件,该文件实现了确定复数类型的规则集,它可以是“零”、“一”、“二”、“少数”、“许多”或“其他” . 函数很简单,传入一个数值,得到一个字符串。
我的问题是我想根据用户当前的 CultureInfo / Language 选择 IPlural 的实现之一,所以没有大量的 switch 语句,我该怎么做呢?
我所有的课程都被称为:
- 复数
- 复数_pl
- 复数_bs
其中最后两个字符是语言(在这种情况下通常与语言环境无关)。
这些类都实现了 IPlural,我设想它应该按如下方式工作......
IPlural pluraliser = new "dynamically chosen pluraliser class"
string pt = pluraliser.pluralType(5);
问题是,我不知道这是否可能?
任何指针都将受到欢迎。
谢谢