0

我正在开发一个具有 Web 应用程序模块的项目,该模块可根据请求生成本地化电子邮件。该应用程序需要多种语言的 html 模板本地化。我决定使用 asp.net 资源文件,因为电子邮件布局不太可能改变,并且所需的密钥数量相对较少。

我正在使用 Global Resources,并且为所需的语言环境提供了大约 15 个不同的资源文件。我有英文的默认资源文件(“EmailTemplates.resx”),然后是几个本地化资源文件(“EmailTemplates.ru-RU.resx”、“EmailTemplates.zh-CN.resx”、“EmailTemplates.it-IT.resx” ”、“EmailTemplates.id-ID.resx”等)。

在资源文件中,我有两个阿拉伯文文件:“EmailTemplates.ar-AE.resx”实际上是英文的,“EmailTemplates.ar-SA.resx”是阿拉伯文的。

非阿拉伯语语言环境的所有电子邮件都可以正常工作。该应用程序选择所需的语言环境并使用相应的资源文件。但是当我尝试请求阿拉伯语时,它总是回退到默认资源文件。

我设置文化的方式是基于请求的数据,而不是浏览器设置:

Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);

在调试时,我可以看到 CultureInfo 已正确设置为“ar-SA”或“ar-AE”,但是当应用程序检索相应的资源值时,它总是选择默认值。

我在默认资源文件中输入了阿拉伯语数据以进行测试,并且阿拉伯语文本显示得很好,所以我确定这不是字体或 HTML 布局问题。

我在互联网上进行了搜索,证明了不同的方法,但没有运气。“ar-SA”和“ar-AE”是有效的 CultureInfo 值,应用程序编译没有问题,但似乎每当我请求阿拉伯语电子邮件时,应用程序都找不到阿拉伯语资源文件。

有任何想法吗?我真的很感激任何点击和帮助!

干杯!

4

1 回答 1

1

请使用没有文化信息的语言,例如。电子邮件模板.ar.resx

因为您使用的浏览器可能没有不同文化中的阿拉伯语,因为我检查了我的 chrome。或者尝试添加具有该文化的语言。例如 ar-AE ar-SA 等,但无论如何它有没有文化的阿拉伯语和它作品。

于 2015-03-15T06:15:44.460 回答