【发布时间】:2012-12-03 21:35:22
【问题描述】:
我在 mvc4 中有一个带有 i18n 内部化的 Web 应用程序,使用:
https://github.com/danielcrenna/i18n#readme
一切正常,直到我开始添加波兰语字符,如:ś、ź、ć 等。
字符被替换为: � 标记。
并且在运行时 xgettext.exe 的参数设置为:
var args = string.Format("-LC# -k_ --omit-header --from-code=UTF-8 -o\"{0}\\locale\\messages.pot\" -f\"{1}\"", path, manifest);
有人知道吗?
【问题讨论】:
-
原来“智能国际化”并不是那么聪明。任何特殊原因,为什么你不能使用 I18n 的内置机制并尝试使用一些轮子重新发明的东西?顺便说一句,“基于 i18n 最佳实践”对我来说听起来像是一个天大的笑话。
-
我知道这不是 .net 应用程序中翻译的标准方式,但我使用它是因为我需要为很多平台(网络、桌面、电话等)提供相同的翻译通过 *.po 文件,标准 *.resx 文件不提供这种能力。
-
明白了,有道理。我怀疑您要使用的库存在一些问题。目前,唯一可能对您有用的(丑陋的)解决方法是将波兰语变音符号编写为 HTML 实体,即
&#F3;。然而,从翻译者的角度来看,这将是可怕的,并且没有必要通用,即手机和桌面可能无法正常工作。 -
是的,我正在考虑这样的包装器,因为当您传递字母的数字代码时它可以工作,但如果我没有找到其他任何东西,这是最终的解决方案,现在我正在调查这个i18n 问题(我希望错误会在那里)如果我发现了什么我会写。无论如何感谢您的帮助:)
标签: c# internationalization asp.net-mvc-4 translation polish