Kentico ResHelper.GetString返回错误的翻译

Kentico ResHelper.GetString返回错误的翻译,kentico,Kentico,我的Kentico 11网站的默认内容文化和访客文化都设置为德语。当我在页面的设置选项卡下进行检查时,我可以看到它们的区域性也设置为德语。当我在调试器中设置断点并检查LocalizationContext.CurrentCulture的值时,它也会返回德语 我还在web.config中设置了以下内容: <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="de-DE" uiCulture="en-U

我的Kentico 11网站的默认内容文化和访客文化都设置为德语。当我在页面的设置选项卡下进行检查时,我可以看到它们的区域性也设置为德语。当我在调试器中设置断点并检查
LocalizationContext.CurrentCulture
的值时,它也会返回德语

我还在web.config中设置了以下内容:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="de-DE" uiCulture="en-US" />

但当我在Web服务中调用它时,这就是问题的根源

它返回英文文本,因为德语字段中有英文文本。根据屏幕截图,您的设置听起来正确,似乎是数据输入问题

更新
根据新的屏幕截图和更新的问题,您是否在新的私人窗口中测试您的访问者站点?如果您将页面应用程序中的区域性设置为英语进行编辑,并在同一浏览器/新选项卡中查看网站,它将显示英语。如果您在live站点上更改浏览器中的语言,它还将在下次刷新完整页面时更新CMS。因此,请始终在专用浏览器窗口中进行测试,以消除缓存或旧cookie的可能性

更新2

要使其正常工作,您需要在用户上下文中访问web服务。这意味着如果用户在站点上并加载页面,系统将知道用户所在的文化。而如果您在计划任务中使用它,它不会在用户导航站点的上下文中运行,因此您需要指定获取值的区域性。

它返回英文文本,因为德语字段中有英文文本。根据屏幕截图,您的设置听起来正确,似乎是数据输入问题

更新
根据新的屏幕截图和更新的问题,您是否在新的私人窗口中测试您的访问者站点?如果您将页面应用程序中的区域性设置为英语进行编辑,并在同一浏览器/新选项卡中查看网站,它将显示英语。如果您在live站点上更改浏览器中的语言,它还将在下次刷新完整页面时更新CMS。因此,请始终在专用浏览器窗口中进行测试,以消除缓存或旧cookie的可能性

更新2

要使其正常工作,您需要在用户上下文中访问web服务。这意味着如果用户在站点上并加载页面,系统将知道用户所在的文化。而如果在计划任务中使用它,则不会在用户导航站点的上下文中运行,因此需要指定获取其值的区域性。

ResHelper。如果无法确定首选区域性,则GetString
将使用默认的UI区域性。我不确定您的Web服务是什么样子,根据您在请求中发送给它的内容,您很可能错过了设置区域性的cookies

除了自己提供文化代码外:

你可能想看看

默认的UI区域性是en us。如果将系统配置为允许使用更多UI区域性,则可以通过将以下键添加到网站web.config文件的
部分来更改用户的默认UI区域性:


如果无法确定首选区域性,
ResHelper.GetString
将关闭默认的UI区域性。我不确定您的Web服务是什么样子,根据您在请求中发送给它的内容,您很可能错过了设置区域性的cookies

除了自己提供文化代码外:

你可能想看看

默认的UI区域性是en us。如果将系统配置为允许使用更多UI区域性,则可以通过将以下键添加到网站web.config文件的
部分来更改用户的默认UI区域性:


还是没有快乐。最坏的情况下,我可以只使用我的编辑中提到的重载方法。CMS_PreferredCulture cookie设置为de DEHi Brendan,似乎与访客文化有关。如果我在web部件中使用调用,如so
,则调用有效,但在web服务中使用调用是导致问题的原因。@rory要使调用正常工作,您需要在用户上下文中访问web服务。这意味着如果用户在站点上并加载页面,系统将知道用户所在的文化。但是,如果您在计划任务中使用它,它不会在用户浏览站点的上下文中运行,因此您需要指定获取其值的区域性。@Brendan Kehren感谢您提供的信息。你能写一个答案,这样我就可以标记为正确并结束问题了吗?快乐直到没有快乐。最坏的情况下,我可以只使用我的编辑中提到的重载方法。CMS_PreferredCulture cookie设置为de DEHi Brendan,似乎与访客文化有关。如果我在web部件中使用调用,如so
,则调用有效,但在web服务中使用调用是导致问题的原因。@rory要使调用正常工作,您需要在用户上下文中访问web服务。这意味着如果用户在站点上并加载页面,系统将知道用户所在的文化。但是,如果您在计划任务中使用它,它不会在用户浏览站点的上下文中运行,因此您需要指定获取其值的区域性。@Brendan Kehren感谢您提供的信息。你能写一个答案,这样我就可以标记为正确并结束问题了吗?干杯
<%# CMS.Helpers.ResHelper.GetString("key") %>
GetString(string stringName, string culture = null, bool useDefaultCulture = true)