配置基于浏览器的本地化

在本节中,您将了解基于浏览器的动态本地化方案。在此方案中,CrystalReportViewer 控件的一个属性会确定动态本地化将基于客户端浏览器的语言设置。

由于在此方案中本地化是基于浏览器的,所以对于 CrystalReportViewer 控件,各个用户的浏览器可能会获得不同的语言。如果预见到会有各式各样使用许多不同语言设置的客户端浏览器连接到您的网站,这种方案是最灵活的。

  1. 启动您的浏览器。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>本教程假定使用 Internet Explorer,但其他符合 HTML 4.0 的浏览器也是兼容的。</p></td>
</tr>
</tbody>
</table>
  1. 在 Internet Explorer 中,从“工具”菜单中,单击“Internet 选项”。

  2. 在“Internet 选项”对话框中的“常规”选项卡上,单击“语言...”

  3. 在“语言首选项”对话框中,单击“添加...”

  4. 添加以下 4 种语言:

    • 德语(奥地利)[de-at]
    • 法语(法国)[fr]
    • 意大利语(意大利)[it]
    • 罗马尼亚语 [ro]
  5. 选中“意大利语(意大利)[it]”,然后单击“上移”。重复此操作,直至“意大利语(意大利)[it]”在最上方被选中。

  6. 单击“确定”,再次单击“确定”,然后关闭浏览器。

  7. 在 Visual Studio 中打开网站,然后生成并编译。

  8. 让鼠标指针在“CrystalReportViewer”工具栏上的按钮上移过。

工具提示字符串仍会显示为英语,表明忽略了浏览器的语言设置。必须在项目的 Web.config 文件中配置名为“UseBrowserLocale”的设置,这样,在呈现工具提示字符串值时,CrystalReportViewer 控件会遵照浏览器的区域设置。
  1. 关闭浏览器,以退出调试模式。

  2. 打开 Web.config 文件。

  3. 在 <configuration> 标记内,输入以下嵌套标记,将 UseBrowserLocale 属性设置为 True。

Web.config 文件只能有一个 configSections 块,并且该块必须是 configuration 标记中的第一个子块。如果 Web.config 文件已包含一个 configSections 块,则编辑该部分以包括 sectionGroup 和 section 标记,如下所示。

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>在 Crystal Reports 的先前版本中,CrystalReportViewer 属性包括 UseBrowserLocale 属性。现在不赞成使用此属性,并在 Web.config 文件中用上面的设置取代。如果 Web.config 中没有放置条目,则 UseBrowserLocale 默认为 False。</p></td>
</tr>
</tbody>
</table>

    <configSections>
    <sectionGroup name="businessObjects">
    <sectionGroup name="crystalReports">
    <section name="crystalReportViewer"
    type="System.Configuration.NameValueSectionHandler" />
    </sectionGroup>
    </sectionGroup>
    </configSections>
    
    <businessObjects>
    <crystalReports>
    <crystalReportViewer>
    <add key="UseBrowserLocale" value="true"/>
    </crystalReportViewer>
    </crystalReports>
    </businessObjects>
  1. 重新生成和编译您的应用程序。

  2. 让鼠标指针在“CrystalReportViewer”工具栏上的按钮上移过。

现在,工具提示字符串会以意大利语显示。在下一步中,您要将浏览器的语言设置更改为德语。
  1. 在 Internet Explorer 中,从“工具”菜单中,单击“Internet 选项”。

  2. 在“Internet 选项”对话框中的“常规”选项卡上,单击“语言...”

  3. 选中“德语(奥地利)[de-at]”并单击“上移”。重复此操作,直至“德语(奥地利)[de-at]”在最上方被选中。

  4. 单击“确定”,然后再单击“确定”,以返回浏览器。

  5. 单击“刷新”。

  6. 让鼠标指针在“CrystalReportViewer”工具栏上的按钮上移过。

    现在,工具提示字符串会以德语显示。

  7. 对“法语(法国)[fr]”和“罗马尼亚语 [ro]”重复此过程。

在每一种情况下,“浏览器”语言首选项都会确定在 CrystalReportViewer 控件中显示哪个字符串。

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>在本教程中,根据从西班牙语目录中借用的语言字符串编译了自定义罗马尼亚语言资源,因此,自定义罗马尼亚语工具提示会以西班牙语显示。</p></td>
</tr>
</tbody>
</table>
  1. 返回到 Visual Studio,然后单击“停止”从调试模式中退出。

您已经成功地使用基于浏览器的设置配置了动态本地化。在下一节中,将学习如何使用 ASPX 页上的设置配置本地化。