gpt4 book ai didi

c# - vsto 加载项中的本地化

转载 作者:行者123 更新时间:2023-11-30 17:58:34 24 4
gpt4 key购买 nike

这是在 VSTO Word 插件中实现本地化的正确方法吗?现在我只是遵守命名约定,我将 Current Culture 附加到它搜索的资源文件中。我已经阅读了足够多的不同 Material 以致混淆,一种方法是使用 Resgen.exe 然后使用 Al.exe 生成 .dll 但我不明白为什么,它是否能够更新语言而无需重新编译?

System.Resources.ResourceManager resMgr;
System.Globalization.CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
try
{
// somehow I feel this isn't how it was meant to be? but it works
resMgr = new System.Resources.ResourceManager("MyAddin.MyLocalisation." + ci, Assembly.GetExecutingAssembly());
string title = resMgr.GetString("MyTitle");
}

最佳答案

混淆可能是因为有(5) different ways to create resource files for desktop apps . Assembly Linker (al.exe) & Resource File Generator (resgen.exe) 是处理本地化资源时使用的主要工具。 Resgen.exe 会将 resx (XML) 编译成资源 (binary),而 al.exe 会合并将资源(二进制)转换为附属程序集(dll)。 Satellite assemblies are typically defined for each supported culture (轴辐式)。无需重新编译应用程序即可更新附属程序集。


来自MSDN :

You can include resources, such as strings, images, or object data, in resources files to make them easily available to your application. The .NET Framework offers five ways to create resources files:

<子>1。创建一个包含字符串资源的文本文件。您可以使用资源文件生成器 (Resgen.exe) 将文本文件转换为二进制资源 (.resources) 文件。然后,您可以使用语言编译器将二进制资源文件嵌入到应用程序可执行文件或应用程序库中,或者您可以使用程序集链接器 (Al.exe) 将其嵌入到附属程序集中。有关详细信息,请参阅文本文件中的资源部分。

<子>2。创建包含字符串、图像或对象数据的 XML 资源 (.resx) 文件。您可以使用资源文件生成器 (Resgen.exe) 将 .resx 文件转换为二进制资源 (.resources) 文件。然后,您可以使用语言编译器将二进制资源文件嵌入到应用程序可执行文件或应用程序库中,或者您可以使用程序集链接器 (Al.exe) 将其嵌入到附属程序集中。有关详细信息,请参阅 .resx 文件部分中的资源。

<子>3.使用 System.Resources 命名空间中的类型以编程方式创建 XML 资源 (.resx) 文件。您可以创建 .resx 文件,枚举其资源,并按名称检索特定资源。有关详细信息,请参阅以编程方式使用 .resx 文件主题。

<子>4。以编程方式创建二进制资源 (.resources) 文件。然后,您可以使用语言编译器将该文件嵌入应用程序可执行文件或应用程序库中,或者您可以使用程序集链接器 (Al.exe) 将其嵌入附属程序集中。有关详细信息,请参阅 .resources 文件部分中的资源。

5.使用 Visual Studio 创建资源文件并将其包含在您的项目中。 Visual Studio 提供了一个资源编辑器,您可以使用它来添加、删除和修改资源。在编译时,资源文件会自动转换为二进制 .resources 文件并嵌入到应用程序程序集或附属程序集中。有关详细信息,请参阅 Visual Studio 中的资源文件部分。

关于c# - vsto 加载项中的本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12115740/

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