1

在我的 asp.net 应用程序中,用户可以上传几个本地化图像(按钮)。比如他会上传'send.gif', 'send.fr.gif', 'send.en-UK,gif; ETC..

当访问者来到他的页面时,我需要根据访问者的语言环境选择正确的文件。

是否有一个 api(或简单的方法)来根据区域设置找到最合适的图像 - 例如,如果访问者来自法国,API 将返回“send.fr.gif”,如果访问者来自澳大利亚,API 将返回'send.en.gif'等...

其逻辑应该与 ASP.NET 选择正确的本地化资源文件基本相同。

谢谢。

4

1 回答 1

1

从您的帖子看来,您已经有了一种检测用户区域设置的方法。所以我会假设你持有这些信息。

我们这样做的方式是将用户区域设置存储在会话中,并将所有本地化资源存储在相应的目录名称中。例如:

/
    /images
        sendButton.gif
        background.gif
        /de-de/
            sendButton.gif
        /fr-fr/
            sendButton.gif

然后使用 HttpHandler 根据当前用户的区域设置将本地化目录映射到默认目录的顶部。这允许将图像无缝集成到所有代码和 css 中,如果没有找到本地化图像,将使用基本目录中的图像。

如果需要更复杂的排序,那么我建议将您的国家/地区嵌套在您的语言中。像这样:

/
    /images
        sendButton.gif
        background.gif
        /de
            /de
                sendButton.gif
        /fr
            sendButton.gif
            /fr
            /be

然后,您可以指定语言级别的资源。甚至让您的 http 处理程序映射文件以一种方式向上传播而不是向下传播。这样 fr-fr 资源将用于所有没有自己的该名称资源的法语国家。

当然,在这一点上它确实变得相当复杂,尤其是在决定使用哪个法语国家作为法语语言的默认值(如果没有指定)时。您可能希望在某处开始存储优先级,以便决定您为哪个语言环境提供服务。以及资源是向上还是向下传播。但是,作为一种用于本地化图像的透明结构,同时保持 yoru 标记和 CSS 干净,这应该会很好地工作。

于 2008-11-25T12:51:23.663 回答