- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么我不想使用 Resx 文件:
我正在寻找 resx 文件的替代方案来为我的项目提供多语言支持,原因如下:
Log.Info("Iterated {i+1} times");
)。使用变量或进行简单的内联计算有时会使整个代码比创建额外的代码行更清晰我能想到的是:
一个外部应用程序,它为所有字符串抓取已编译的 exe,让您有机会忽略/添加应翻译的字符串。它也可以为所有语言创建一个 XML 或 Json 文件。它将用哈希/id 替换所有字符串,以便仍然可以查找所有语言的字符串。
我是唯一一个对常用的 Resx/集中式字符串数据库解决方案不满意的人吗?我是否遗漏了为什么这不是一个好主意?
最佳答案
依赖既定方法而不是实现您自己的格式的一个原因是翻译。这实际上取决于您的资源是如何翻译的:如果它是由具有技术背景且不介意在纯文本编辑器中工作的志愿者完成的,那么您可以自由地提出自己的资源格式。另一方面,如果您将资源发送给专业翻译人员,他们的技术不是很好,并且更喜欢在具有集成术语管理、翻译内存库、拼写和质量检查等的翻译环境中工作,那么这个环境很可能不会能够处理您自制的资源格式。
因为我已经提到了专业的翻译环境:其中一些工具依赖于 ID 来确定哪些字符串是旧的,哪些是新的。如果您使用文本是 ID 的方法,源语言中的每个固定拼写错误都意味着您创建了一个需要翻译的新字符串 - 并为此付费。如果译者发现字符串的源文本发生了变化,他可以查看变化,注意到拼写错误已得到修复,认为翻译仍然可以并在字符串上签字,无需额外的翻译费用。
顺便说一句,如果您想要像 Log.Info("Iterated {i+1} times");
这样的字符串进行良好的本地化,您必须找到一些正确处理复数形式的方法。某些语言对不同的数字有不同的语法规则(请参阅 Unicode Language Plural Rules 了解概述)。恐怕仅仅因为某些事情在代码中很容易做并不意味着它很容易本地化。
总结一下:如果您想创建自己的资源格式,请与您的译员交谈。询问他们可以处理哪些格式。考虑一下您的格式附带的与翻译相关的限制,例如,是否有翻译人员不应使用的任何字符,因为它们会破坏您的字符串?撇号和引号在这里是主要候选者,因为它们通常用作资源文件中的字符串定界符,或者 < 和 & 如果您决定采用 XML 方式。考虑转换为 XLIFF反之:大多数翻译环境都可以处理 XLIFF。
关于c# - Resx 文件的本地化替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41090578/
我正在尝试确定是否可以将串联字符串添加到我的本地 .resx 文件之一。这个例子应该阐明: 假设我有一个简单的 ASP.NET 网页,它包含 (1) 一个标签,其文本是一个重要的关键字 (2) 一个具
我只是偶尔写代码,这是我能放在一起的最好的,我希望有人能指出我正确的方向。(我一直在寻找其他答案,但他们只让我走到这一步) import xml.etree.ElementTree as ET tre
我正在使用 .NET 2.0 Framework 中的一个 Web 项目,但是当我在 4.0 Framework 中打开该项目时,它给出了无效的 resx 文件错误。我的项目的工作方式是,我有一个空的
在.Net Core official documentation for localization ,提到了如何使 DataAnnotations 由 IStringLocalizer 从一个特殊的
所以我有一个 C# 应用程序。它有一些链接到它的 Assets ,并在编译时被嵌入。应用程序在 Windows 上完美编译和运行。当测试与单声道的兼容性时,一切都是正确的。如果我尝试编译给出一个错误
我被赋予了国际化大型客户端-服务器应用程序的任务。职责是我让应用程序“世界就绪”,然后将编译的应用程序和资源传递给另一个国家的同事进行翻译并发布给他们的客户。会有几个国家,因此会有几个单独的翻译。 这
我想从WPF窗口访问我的Strings.resx文件,但它给了我以下错误: "Strings" does not exist in the namespace "clr-namespa
我们将处理我们的 .resx 文件以进行翻译。由于这些文件除了要翻译的字符串之外还有很多 xml 数据,所以我一直在寻找一种方法来计算已翻译的单词/字符串。我们有 winform 创建的 resx 文
我在单独的 .resx 文件中有 3 组 9 个图像,我正在尝试弄清楚如何将一组循环到 9 个静态图片框中。 Loop through all the resources in a .resx fil
我在一台相当强大的机器上使用 Visual Studio 2010 工作。我有一个解决方案,下面有几个不同的项目 Solution Activations DatabaseManager
我们正在使用一些大型的 asp.net 网络工具包制作网络应用程序。一开始我们创建了很多基类,例如命令和服务器控件,以便于我们的工作。 现在,当我们使用它构建我们的应用程序时,我们决定构建另一个。为了
为什么我不想使用 Resx 文件: 我正在寻找 resx 文件的替代方案来为我的项目提供多语言支持,原因如下: 我不喜欢在编写消息时指定“messageId”,这需要更多的努力,而且对流程来说很烦人,
我的表单有问题,它会生成错误。如果我删除它们,它工作正常,但问题变得有点错误。 this.Icon = ((System.Drawing.Icon)(resources.GetObject("$thi
假设我们有一个 Windows 窗体 Form1,我们为其设置了一个图标。 Visual Studio 会将图标存储在 Form1.resx ($this.Icon) 中。 现在我们决定将应用程序本地
大家好,我是 C# 和本地化的新手,我可以使用它,但我想知道是否有任何预制语言 (resx) 文件可供下载,还是我应该自己从头开始创建它们? 谢谢 巴特 最佳答案 有两种方法可以理解您的问题。 如果是
我有一个生成 DbContext 和迁移配置的 T4 模板。在运行时,我使用该模板创建一个程序集,然后使用该程序集生成一个迁移。但是,当我想更新数据库时,仍然以编程方式进行。但是,我收到一个错误: C
我有一个程序集,其中包含一个 Messages.resx,其中包含 GUI 消息字符串,例如是、否、确定、取消、打开等。我的项目引用了这个程序集。我该如何使用它们? 最佳答案 在资源编辑器中,只需将资
我正在考虑为不同的客户自定义应用程序中的各种文本。 .resx 资源似乎是执行此操作的明智方法。然而,我遇到的所有关于 resx 的文献似乎都是关于语言差异的本地化(如英语、法语、西类牙语等),所以只
我正在处理一个旧项目,正在更新它。该程序的一部分有一个工具条,上面有许多按钮,每个按钮都有一个图像。我发现图像存储在 resx 中的 Base64 编码图像流中,并按如下方式访问: System.Co
我的 .resx 文件出现奇怪的错误: “无效的 Resx 文件。ResX 输入无效。找不到 ResX 读取器和写入器类型名称的有效“resheader”标记。C:\Documents and Set
我是一名优秀的程序员,十分优秀!