问题标签 [satellite-assembly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
95 浏览

xamarin - Xamarin Studio:未在 macOS 上使用 Xamarin Studio 复制卫星程序集

我们构建了一个 Xamarin.Froms 库,其中包含一些常见的 XAML 页面和常见的翻译(来自 resx 文件的卫星程序集)。这个库被打包为 nuget 包。

如果我们在其中一个应用程序中使用程序集,如果我们在 macOS 上使用 Xamarin Studio 构建,则会遇到本地化问题。

如果我们使用 Visual Studio 2015 构建,库的附属程序集将被复制到输出并编译到应用程序中。

如果我们在 macOS 上使用 Xamarin Studio 构建相同的解决方案,则库的附属程序集不会复制到输出中,也不会编译到应用程序中。

Xamarin Studio 出了什么问题?

此错误是否有任何内置解决方案(在构建后操作中复制所有附属程序集除外)?

0 投票
1 回答
715 浏览

c# - 是否可以从代码中生成卫星程序集?

我将详细阐述简化翻译工具的解决方案。因此,我目前尝试从我的代码中自动编译卫星程序集。

所以我想要实现的是替换手动运行以下命令:

AL.exe /culture:de /out:de\TestResource.resources.dll /embed:TestResource.de.resources

到目前为止,我已经测试过生成一个 .dll 文件,该文件有效。但是嵌入/链接如下所示的资源没有任何效果,但会扩大 dll 的大小。所以很明显它在那里但不能使用,就好像生成的 dll 是卫星程序集一样。

有没有办法以编程方式生成一个只包含一种语言的本地化资源的 dll,以便它可以用作卫星程序集?

0 投票
1 回答
54 浏览

xamarin.forms - 使用 .NET Native 工具链编译时,来自 Nuget 的 Satellite dll:s 无法正常工作

我有一个使用 nuget 包的 Xamarin Forms PCL 项目。nuget 包包含卫星 dll:s (xyz.resources.dll) 中的翻译文本。

翻译后的文本在 Android 和 iOS 中正确显示。当使用“.NET Native Tool Chain = false”编译时,它们也适用于 UWP。但是,如果我选中“.NET Native Tool Chain”复选框,则不会翻译文本。只有来自“基础语言”的资源被加载。

我猜想.NET Native 编译在尝试减小它的输出大小时会跳过卫星 dll:s。

有人对此有解决方案吗?

0 投票
1 回答
129 浏览

localization - 使用多本地化的 premake

我现在使用premake 5工作了几天。我目前正在尝试将我们的 VS2015 解决方案(主要是 C++ 本机和 CLI 项目)移植到 premake 5 解决方案。到目前为止我没有任何问题,但现在我无法为我们将程序集本地化到的所有语言构建资源库。例如,如果我们有fres(法语和西班牙语),我们应该有这样的程序集拆分:

  • foo.dll(默认,英语),
  • 其他语言的卫星foo.resources.dll(当然在不同的文件夹中)。

但我无法(阅读:我不知道如何)正确编写 lua 脚本。

有人知道如何使用 premake5 生成本地化(AKA 卫星)程序集吗?

谢谢你的帮助!


编辑 1

我将此添加到我的 lua 脚本中:

它将文件添加到.resx文件中,.vcxproj而不是像这样包含:

它们是这样包含的:

这是怎么回事?


编辑 2

然后我补充说:

但它保持不变。我在 premake 5 doc中找到了buildaction仅在 C# 中受支持(我的代码在 C++/CLI 中)。如果这是真的(似乎是),有没有办法更深入地使用我的脚本将 XML 条目直接添加到.vcxproj?

0 投票
0 回答
821 浏览

.net - 如何使用 MSBUILD 通过 Visual Studio 2017 自动化特定区域性的附属程序集

我正在尝试使用此处的 MSBUILD 配置为本地化资源构建附属程序集:

使用 MSBUILD 在 Visual Studio 中自动构建卫星程序集

但是,更改区域性时不会加载附属程序集。我究竟做错了什么?

这是我的 Visual Studio 2017 配置:

字符串 resx 文件

strings.resxstrings.de.resx只定义了一个字符串 String1,它要么是“My English String”,要么是“My German String”。

我有以下构建后事件:

构建.msbuild

Form1.cs

我看到生成了资源DLL bin\Debug\de\TestLocalization.resources.dll,但是程序运行时没有加载对应的德语字符串。如果我删除了 MSBUILD 构建后事件,并且只对strings.resxstrings.de.resx使用嵌入式资源,则德语字符串会正确加载。

TestLocalization.resources.dll

0 投票
1 回答
181 浏览

c# - 无需重新编译主程序集的附加卫星程序集

我有一个已经本地化的 WinForms 程序,有四种语言。它由一个EXE 和几个DLL 组成。所有 C# 项目都包含在一个解决方案中。附属程序集是从本地化资源文件自动生成的,例如Strings.fr.resxMyForm.it.resx

源代码存储在 Subversion 中,即 Artifactory 中集中(构建服务器)生成的二进制文件。Maven 用于依赖解析。二进制文件(快照)的相应源代码也存储在 Artifactory 中。因此,二进制文件(DLL、EXE)和相应的源代码都可以从其他项目中引用。

现在,我想在不重新编译的情况下为程序添加一种额外的语言。不得触及原始二进制文件

这个想法是创建一个依赖于(Maven)原始程序版本的附加解决方案。所以,我得到了二进制文件和源代码。然后我可以为每个原始项目创建工具项目以创建附属程序集,例如使用批处理文件。这将适用于资源文件中具有可本地化文本和其他内容的项目。

但是控件和表单呢?不同的语言可能有不同的结果控件布局、换行符、位置变化、大小等。这不仅仅是文本翻译。因此,WinForms 设计器会很有帮助。有人知道创建包含控件的附属程序集的好方法吗?

无法使用其他工具(例如 Sisulizer)。原始二进制文件是强命名的,并且密钥仅在构建服务器上可用。因此,新的卫星组件也必须使用该密钥进行强命名。

0 投票
1 回答
349 浏览

winforms - Devexpress 本地化

我有一个 WindowsForm 应用程序,所有文本(在表单标签/按钮/其他控件上)都是用挪威语编写的。我想使用本地化转换所有英文文本。Devexpress中有什么方法可以将所有文本转换为英文,而无需手动将每个文本的含义写入资源文件中?例如:- 在附件中,“Brukernavn”被硬编码在标签上。我想将其自动转换为英文而不在 English-ResourceFile 中分配其值。Devexpress 本地化的方法应该是什么?

在此处输入图像描述

0 投票
0 回答
28 浏览

c# - 使用 VS 2019 与 dotnet 命令行编译时,卫星程序集会有所不同吗?

我有一个带有 XAML 资源的 .NET 5 WPF 项目。我使用项目设置启用了卫星 DLL 的创建:

当我从 Visual Studio(调试,x64)构建时,这会生成一个引用 mscorlib 的附属程序集:

如果项目是通过命令行使用 dotnet.exe (v5.0.201) 构建的:

生成引用 System.Runtime 的附属程序集:

为什么它们会有所不同,我如何控制引用的内容?引用 mscorlib 的那个可以被 locbaml(为 .NET 5 构建)很好地使用,但是引用 System.Runtime 的那个会导致 locbaml 在发出时失败。

0 投票
0 回答
21 浏览

c# - C# 中的卫星程序集

所以这是我对附属程序集(Winforms)的情况:

  1. 我有一个项目名称为 "ABC" 的项目。
  2. 在这个项目下,我有一个资源文件,其中定义了标签和消息的所有文本。
  3. 假设我创建了另一个同名“ABC”的新项目。
  4. 在第二个项目中,我想为所有其他具有标签和消息文本的语言定义资源文件。
  5. 所以总结一下我想用重名项目ABC资源文件到主项目ABC中进行本地化。我想这样做的原因是,如果我的客户想要用另一种语言编写它,我就不必运送整个库。只是资源文件夹。

再次感谢您的帮助。