在我的asp.net应用程序中,用户可以上传多个本地化图像(按钮)。 例如,他将上传'send.gif','send.fr.gif','send.en-UK,gif;等。
当访问者访问他的页面时,我需要根据访问者的语言环境选择正确的文件。
是否有api(或简单方法)根据区域设置找到最合适的图像 - 例如,如果访问者来自法国,API将返回'send.fr.gif',如果访问者来自澳大利亚API将返回'send.en.gif'等...
逻辑应该与ASP.NET基本上选择正确的本地化资源文件相同。
感谢。
答案 0 :(得分: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清洁,这应该很好。