.NET 中文本文件资源的本地化
在 Visual Studio 中使用 RESX 文件进行本地化/全球化非常容易。我只需添加一个资源文件(例如 MyTextSnippets.resx
),添加键/值对,并为我想要支持的每种语言创建副本(例如 MyTextSnippets.de.resx
) 、MyTextSnippets.fr.resx
等。
现在考虑较长的文本,其中字符串资源编辑器网格不能很好地工作。没问题,只需从设计器中选择“添加资源|添加新文本文件”,您就可以编辑任意数量的文本文件。示例:我添加 MyTemplates.resx
,并向此 RESX 添加一个名为 SomeEmailTemplate.txt
的文件。到目前为止工作正常,但是当创建 resx 文件的副本(例如 MyTemplates.de.resx
)并从那里打开 SomeEmailTemplate.txt
时,它将打开 始终相同的文件。如果你看一下细节,文本文件不会嵌入到resx容器中,而是在全局文件夹“Resources”中创建,并且resx文件只是保存一个引用,全部指向同一个文件。
我不知道如何本地化它。有什么想法吗?
当然,我可以为每种语言嵌入添加一个文本文件,并在运行时枚举可用的文本文件并尝试找到当前线程的 UI 文化的最佳匹配。然而,这感觉不太对劲,因为字符串和设计器属性的所有魔力都是开箱即用的。
Localization/Globalization is pretty easy in Visual Studio using RESX files. I just add a resource file, like MyTextSnippets.resx
, add key/value pairs, and create copies for every language I'd like to support like MyTextSnippets.de.resx
, MyTextSnippets.fr.resx
etc.
Now think of longer texts, where the String resource editor grid doesn't work very well. No problem, just choose "Add Resource | Add New Text File" from the designer, and you can edit as many text files as you want. Example: I add MyTemplates.resx
, and to this RESX I add a file called SomeEmailTemplate.txt
. Works fine so far, however when a create a copy of the resx file, say MyTemplates.de.resx
, and open SomeEmailTemplate.txt
from there, it will open always the same file. If you look at the details, the text file will not be embedded in the resx container, but it is created in a global folder "Resources", and the resx files just hold a reference, all to the same file.
I can't figure out how to localize it. Any idea?
Of course, I could embed add a text file for every language, and at runtime, enumerate the available text files and try to find the best match for UI culture of the current thread. However this doesn't feel right, as all that magic is available out of the box for strings and designer properties.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为您想要的每种本地化语言创建一个文件夹,将相应的 txt 文件放入该文件夹中并引用该文件。
此处了解全球化/本地化最佳实践。
Create a folder for each localized language you want, place the respective txt file in the folder and reference that.
Read about globalization/localization best practices here.