目前,我正在处理一个ASP.net webforms项目,我希望向用户指出当前页面上的哪些元素包含本地化的资源。
为了识别哪些HTML元素包含哪些本地化资源。我想标记在呈现页面时从ResourceProvider检索到资源的所有呈现的HTML元素。从而创建HTML元素和所使用的资源之间的映射。
标记将通过向html元素添加data-localized属性来完成。该属性将包含所使用的资源标识符(即resx文件名和资源键),然后当浏览器中的显示页面时,javascript将使用此信息执行任何操作。
到目前为止,我已经用我自己的提供程序替换了默认的资源提供程序,该提供程序从数据库中检索资源,而不是常规的.resx文件(如this文章中所述)。这为我提供了有关使用的所有资源的信息,通过在HttpContext中记录这些信息,我知道当前页面使用的所有资源。
现在进行映射,因为本地化的资源并不总是必须出现在HTML元素中(例如,它可以只是一个由Literal控件产生的字符串)。我引入了一个新的CompositeControl,它用<div data-localized=""> </div>包装了包含本地化资源的部分。
我的问题是:如何将包装器与其子组件使用的资源进行映射?
发布于 2011-05-03 01:17:39
由于您将使用文本对数据进行后处理,因此您可以考虑在实际翻译的文本中添加所需的前缀和分隔符形式,例如"Sample text“将变为”"##strings.resx##login.form.sample.text##Sample text“。
然后,您的客户端脚本将查找##分隔符,并将其从页面中删除(或执行任何您想要的操作)。
我知道这不是你想要的,但我相信它更简单,更容易实现。
https://stackoverflow.com/questions/5859164
复制相似问题