|
|
1
8
Mozilla已经在firefox 3中实现了这一点,并且他们有一个说明如何使用其实现的指南。 here . 最值得注意的是, Developing with PluralForm 第节,它们有一个链接
它们的实现来源。必须从Firefox 3及更高版本中打开。 我还没有读完整本书,但这似乎是一个好地方,至少可以得到一些想法。 Hth. |
|
|
2
4
考虑试着完全避免这个问题。不要构建句子,而是尝试构建UI以避免出现问题。与其说“5页”,不如说“5页”。 |
|
|
3
2
像这样的本地化考虑了您想要翻译的语言。复数是相当罕见的,我想在大多数情况下是可互换的或上下文敏感的。除非它在应用程序的多个地方被使用,否则不需要担心。如果您这样做,并且某个特定的用法确实会在复数用法中创建语法错误,那么您需要为该实例跨板(所有语言)添加一个新的键。或者,由于您无论如何都在检测文化,请为受影响的语言添加一个附加条件,并使用单个替代复数形式。 “我不建议避免它,因为你很快就会失去自然语言的流动,”明斯回答说:6。 也许你一开始就是这么想的,但更常见的情况是不同文化中句法位置的变化。例如,希望本地化的字符串“此页被查看X次”。您可能需要为此制作3个可本地化字符串: pageViewStart=“已查看此页” pageviewend=“时间” pageViewEndPlural=“次” 那么一个简单的伪实现就是 pageViewStart+pageCount.ToString()+pageCount==1?pageviewend:pageviewendplural; 但是在荷兰语中,“deze pagina is 0 keer bekeken”和韩语中“__ 0”。因此,您会发现,在跨语言格式化复数句子结构的多种方法上的实现会立即遇到问题。 我故意在示例中留下了“0”,因为它暗示了我的解决方案。用复数形式和非复数形式对整个句子进行定位。 pageview=“此页已查看1次。” pageViewPlural=“此页已查看0次。” 这样,您就可以编写条件(根据您的实现再次编写伪条件): 页面计数>1?pageview:string.format(pageviewPlural,pageCount.toString()); 唯一需要做的是,您的翻译人员需要了解resx文件中0标记的含义和位置。 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 2 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 2 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 2 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 2 年前 |