ASP.NET本地化与单数和复数
我可以使用ASP.NET资源/本地化翻译字符串以一个简单的方式依赖于一个或另一个(英语语法),就像我在翻译中通过了第1个号码,它返回“你有一辆车”或0,2和更高,“你有%n车”?
或者我被迫在我看来有逻辑看看是单数还是复数? 解决方法
JasonTrue写道:
To the best of my knowledge,there isn't a language that requires something more complicated than singular/plural 这样的语言确实存在。例如,在我的母语波兰语中,有三种形式:1,2-4,零和数字大于4.然后在达到20后,21,22-24和25的形式再次不同(相同数学形式如数字0-9)。是的,“你有0件事情”听起来很尴尬,因为你不太可能看到现实生活中使用的东西。 作为本地化专家,这里是我建议的: 如果可能的话,使用最后的数字表格: a: Number of cars: %d 这意味着名词“car”的形式不取决于数字,0与其他数字一样自然。 如果上述是不可接受的,至少总是使一个完整的句子是一个可翻译的资源。也就是说,使用 b: You have 1 car. c: You have %d cars. 但是从来没有将这样的单元分割成较小的片段,例如 d: You have e: car(s) (然后在别的地方你有一个不可本地化的资源作为“%s%d%s”) 不同的是,虽然我不能直接翻译(c),因为名词的形式会改变,我可以看到问题,我可以在句子中改变形式(a)。 另一方面,当我面对(d)和(e)碎片时,没有办法确保所得到的句子将是语法的。再次:使用片段保证在某些语言中,翻译将是从语法尴尬到完全破坏的任何东西。 这完全适用于数字,而不仅仅是数字。例如,诸如“%s被删除”的片段也是不可译的,因为动词的形式将取决于名词的性别,这在这里是不可用的。对波兰语来说,最好的是相当于“删除:%s”,但只要%s占位符包含在可翻译资源中,我只能做到这一点。如果我所有的都被删除了,没有线索的指称名词,我只能通过大声诅咒我的狗,最后我还要生产垃圾语法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Azure Apps EasyAuth声称使用.NET Core
- asp.net-mvc – 文件上传MVC
- asp.net-mvc-3 – AutoMapper线程问题(缺少类型映射配置或不
- asp.net-mvc – 为什么ASP.NET MVC上的控制器基于名称?
- asp.net – 如何通过web.config文件中的Access-Control-All
- 将ASP.Net网站从SVN部署到多个服务器?
- 什么是ASP.NET的最佳/推荐的CAPTCHA组件
- 设计模式 – 在适当的MVC中,一切都必须是模型,视图或控制器
- .net4.0中的ClientIDMode
- asp.net – Dotnetopenauth,从facebook范围检索电子邮件
- asp.net – 关键字不支持:’server’
- asp.net – 使用MVC2的AJAX请求中的CSRF保护
- asp.net – MySQL ::连接器/净欧元符号
- asp.net-mvc – 有没有办法用asp.net mvc Razor
- entity-framework – 在ASP.NET核心中无法识别的
- asp.net-mvc – 用于子操作的MVC OutputCache:它
- asp.net-mvc – 部分视图模型无法解析
- asp.net-mvc – ASP.Net MVC TempData – 如何保
- Asp.net MVC MiniProfiler“请求在此上下文中不可
- asp.net-mvc-4 – MVC 4 – Web Api和JSON?