gpt4 book ai didi

c# - C# 控制台应用程序的本地化支持

转载 作者:行者123 更新时间:2023-11-30 13:00:37 26 4
gpt4 key购买 nike

我创建了一个简单的控制台应用程序来显示“Hello World”字符串。后来我引入了支持不同语言的资源文件,放上了“Hello World”的翻译版。我尝试在中文操作系统中运行 console.exe,并希望看到“Hello World”以中文显示。不幸的是,它显示的是英文。

经过分析,发现添加.resx文件会在项目中创建一个单独的文件夹,其中包含每种语言(卫星程序集)的.resource dll。因此,如果我将 .exe 与其他文件夹一起放置并运行,则会以中文显示“Hello World”。如果我删除文件夹 (.resource),然后只运行 .exe,它会再次显示英文“Hello World”。

有没有办法创建一个将所有资源文件映射在一起的 .exe。这样我就不需要在运行 .exe 之前将文件夹与 .exe 放在一起。

顺便说一下,我正在尝试使用 Strings.STRING_NAME 访问字符串,其中“Strings”是默认资源文件的名称。其他语言的字符串文件都是Strings.fr.resx、Strings.de.resx类型。

请在这方面提供帮助。

提前致谢。

最佳答案

这些额外的程序集称为卫星程序集。它们保持独立,因此如果您只需要一些语言,则不必部署所有语言。

来自 Introduction to Satellite Assemblies ;

By definition, satellite assemblies do not contain code, except for that which is auto generated. Therefore, they cannot be executed as they are not in the main assembly. However, note that satellite assemblies are associated with a main assembly that usually contains default neutral resources (for example, en-US). A big benefit is that you can add support for a new culture or replace/update satellite assemblies without recompiling or replacing the application’s main assembly.

关于c# - C# 控制台应用程序的本地化支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21990504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com