ActiveReports采用Hub和Spoke模型作为本地化资源模式。Hub是主要的执行程序集,例如,Viewer控件, GrapeCity.ActiveReports.Viewer.Win.v9.dll。
Spoke是包含应用程序本地化资源的附加动态链接库,例如,
GrapeCity.ActiveReports.Viewer.Win.v9.resources.dll。
本地化文件夹, ....\GrapeCity\ActiveReports 9\Localization,包含了本地化ActiveReports组件所需要用到的资源。
在该文件夹中,包含了你可以本地化的每一个ActiveReports组件,一共16个,每一组有两个文件:
*.bat 设置您希望本地化的culture。
*.zip 包含了资源文件(*.resx)。
该文件夹中有一个应用程序:NameCompleter.exe 当您运行bat文件转换culture时,bat文件会通过执行该应用程序创建SatelliteAssembly 文件夹,该文件夹会包括一个包含本地化的ActiveReports.AssemblyName.resources.dll文件。
将包含附件程序集的culture子文件夹防止在您的主执行程序集的文件夹下。
注意: 如果您期望将本地化资源防止在全局程序集缓存(GAC)中,您必须将您本地化的GrapeCity.ActiveReports.AssemblyName.v9.resources.dll 文件发送给 葡萄城
以便完成签名之后您可以将这些本地化资源拖拽到
C:\WINDOWS\ASSEMBLY.
当主执行程序集需要一个资源时,它会使用一个ResourceManager对象加载需要的资源。该ResourceManager对象使用当前线程的CurrentUICulture属性定位资源。
公共语言运行时设置CurrentUICulture属性,或者您可以在代码中进行设置,以便测试您的附件DLL是否被正确加载。如果不存在任何子文件夹, ResourceManager使用当前程序集内嵌的资源。US English ("en-US") 是ActiveReports 默认的culture。
有关Framework如何定位附加DLL的更多信息,请参见Visual Studio的帮助系统。