【发布时间】:2011-11-22 13:09:26
【问题描述】:
我正在使用 AJAX 库中的 CalendarExtender,可以进行本地化。目前一切正常,除非我尝试将其本地化为 Danich (da-DK) 语言。日历看起来是本地化的,除了“今天”部分仍然是英文。你如何本地化这部分?
PS。如果无法进行本地化,我可以隐藏日历的“今天”部分吗?
【问题讨论】:
标签: asp.net ajax calendarextender
我正在使用 AJAX 库中的 CalendarExtender,可以进行本地化。目前一切正常,除非我尝试将其本地化为 Danich (da-DK) 语言。日历看起来是本地化的,除了“今天”部分仍然是英文。你如何本地化这部分?
PS。如果无法进行本地化,我可以隐藏日历的“今天”部分吗?
【问题讨论】:
标签: asp.net ajax calendarextender
回复:
PS。如果无法进行本地化,我可以隐藏日历的“今天”部分吗?
由于我们认为添加我们自己的资源更有价值,我们决定隐藏“今天”位。然而,这很容易通过将以下内容添加到我们的 css 文件中来完成:
.ajax__calendar_footer {
display: none;
}
【讨论】:
默认情况下,Ajax Control Toolkit 没有针对丹麦语进行本地化。您需要稍微自定义工具包解决方案。下载工具包源并将丹麦语资源文件添加到 MicrosoftAjax.Extended 项目(ExtenderBase 文件夹)中。您可以只创建 BaseScriptsResources.resx 文件的副本并将副本文件名更改为“BaseScriptsResources.ds.resx”。我相信您很容易找到该文件中必须为您的语言更改的资源值。 之后,将该文件作为链接添加到 AjaxControlToolkit 项目的 ScriptResources 文件夹中。当您构建解决方案时,您会在项目的 bin 文件夹 (da/AjaxControlToolkit.resources.dll) 中找到一个包含丹麦资源程序集的新文件夹。只需将带有 dll 的文件夹复制到项目的 bin 文件夹即可。
【讨论】:
在添加了特定语言的本地化后,我们在使用旧版本 AjaxControlToolkit (4.1) 的遗留项目中遇到了同样的问题。而且我确实不想要编译我自己的 AjaxControlToolkit 版本。
因此,在挖掘了 CalendarExtender 的 JavaScript 源代码后,我注意到文本是从资源中加载的,并且可以修改该资源。长话短说,如果您在 JavaScript 中更新 Sys.Extended.UI.Resources.Calendar_Today(默认:Today: {0})
然后将资源值替换为您的值:
<!-- Add this to the bottom of your page -->
<script type="text/javascript">
Sys.Extended.UI.Resources.Calendar_Today = "Σήμερα: {0}";
</script>
显然,如果您的应用程序是多语言的,您将拥有自己的翻译资源文件:
<script type="text/javascript">
Sys.Extended.UI.Resources.Calendar_Today =
'<%= HttpUtility.JavaScriptStringEncode(Resources.MyTexts.Today) %>';
</script>
【讨论】: