【发布时间】:2015-05-12 20:28:40
【问题描述】:
我正在为 Windows 8.1 Professional 环境使用 XAML/C# 构建 Windows 应用商店应用程序。
我的项目要求除了任何给定语言的多种翻译外,我还必须支持多种语言。例如,我可能有一个以英语或法语显示的标签,但在英语中它可能需要根据客户的喜好显示“标题”或“标题”一词。
我的问题是,我无法找到一种方法来打包和在同一语言的多个资源字典之间切换,同时仍然使用 XAML 为 WinRT 提供的内置本地化功能(即使用我的控件上的 Uid 属性进行绑定将它们添加到资源字典中)。
我注意到两个函数,ResourceManager.LoadPriFiles 和 ResourceManager.UnloadPriFiles,我认为这可能允许我在运行时交换资源字典,但我不知道如何将 PRI 文件打包到外部应用程序的主要资源映射,以允许加载和卸载。
我还考虑过创建一个自定义数据绑定或转换器,我可以使用它来手动绑定控件的文本,但这会让我无法在设计时在 Blend 中查看标签,并且牺牲了内置本地化功能。
另一种选择是为客户可能需要的每个自定义翻译编译一个单独的应用程序实例,但显然这不是解决问题的一种非常易于维护的方式...
最后,我考虑重新利用类似 ResourceContext 的 homeregion 限定符来解决问题;然而,这似乎非常有限,因为已经有预先建立的家庭区域可供我选择。一般来说,重新利用字段似乎是个坏主意。
【问题讨论】:
标签: windows localization windows-runtime store