一个客户在邮件中问到了FineUIPro的多语言实现问题,其实 FineUIPro 并没有对此做特殊处理,因此直接使用 ASP.NET 原生支持的资源文件就能实现。

下面我们就以FineUIPro的空项目为例,利用 ASP.NET 全局资源文件和本地资源文件来实现多语言切换。

最终的英文版显示效果:

修改 Web.config 的配置项:

<system.web>
<globalization uiCulture="zh-CN"/>
</system.web>

现在刷新页面,就切换到了中文版:

是不是很简单,怎么来做的呢?

下面我们综合使用全局资源文件和本地资源文件来实现上述效果。

全局资源文件
网站根目录新建全局资源文件目录 App_GlobalResources,然后分别添加中文和英文的资源文件:

中文资源文件(GlobalResource.zh-CN.resx):

英文资源文件(GlobalResource.resx):

在页面上,有两种使用方式:
1. 普通的文本:

<title><%= Resources.GlobalResource.Title %></title>

2. 服务器控件:

<f:MenuButton Text="<%$ Resources:GlobalResource, UserProfile %>" IconFont="_User" EnablePostBack="false" runat="server">
<Listeners>
<f:Listener Event="click" Handler="onUserProfileClick" />
</Listeners>
</f:MenuButton>

本地资源文件
本地资源文件对应于每个单独的页面,可以有效的防止全局资源文件过大的问题。

首先在根目录创建 App_LocalResources 文件夹,然后打开一个页面 index.aspx ,找到 VS 工具栏菜单项:

注:如果找不到这个菜单项,可以先切换到设计视图。
生成的目录结构:

中文资源文件(index.aspx.zh-CN.resx):

英文资源文件(index.aspx.resx):

在页面上,同样有两种使用方式:
1. 普通的文本:

<Content>
<%= GetLocalResourceObject("Content") %>
</Content>

2. 服务器控件:

<f:Tab ID="Tab1" Title="<%$ Resources:DefaultPage %>" BodyPadding="10px" AutoScroll="true" Icon="House" runat="server">
<Content>
...
</Content>
</f:Tab>

小结
最后,我们看下支持多语言的index.aspx和原来的页面代码对比:

源码下载
请到知识星球下载支持多语言的空项目源代码:https://fineui.com/fans/

FineUIPro中如何支持多语言(全局资源文件和本地资源文件)的更多相关文章

  1. Oracle存储过程中不支持DML语言的解决方法(针对遇见的DROP关键字)

    ---存储过程中的原语句: ---删除表 DROP TABLE A_NEWTDDATA; --报错 经查询:存储过程不支持DML语言: 解决方法: execute immediate 'DROP TA ...

  2. ASP.NET 网站支持多语言

    ASP.NET网站支持多语言 (本地资源文件和全局资源文件的调用及需注意的地方总结)   一.   本地资源文件(App_LocalResources): ①.     本地资源的生成及调用 1.本地 ...

  3. C# 支持多种语言

    通过Resource文件建立本地化. net 资源文件名(这里是Resource1.resx)由根名称(即Resource1),本地语言名称(默认情况下还没有)及扩展名组成,在读取资源时,资源管理器会 ...

  4. aps.net国际化本地资源 .resources”正确嵌入或链接到程序集

    asp.net国际化提供了资源文件的解决的方式, asp.net自带的两个项目文件夹 分别是:App_GlobalResources和App_LocalResources, App_GlobalRes ...

  5. qt webengineview 加载本地资源方式

    一.如果把资源添加到本地资源qrc库里了,请使用 ui->preview->setUrl(QUrl("qrc:/HelloWorld2.html")): 二.如果没有现 ...

  6. 让现有vue前端项目快速支持多语言 - 用.net core程序快速替换中文为资源Key,咱不干体力活

    前言 最近应公司上层要求,需要将现有项目尽快支持多语言,而中文内容可以找专业人员翻译.那么咱们说干就干,首先我们项目的前端是用vue写的spa程序且组件方面用的element ui,那么自然而然想到用 ...

  7. WTL中GDI+支持资源文件加载

    WTL中GDI+支持资源文件加载 分类: WTL WTL gdi+ gdi+2013-04-22 17:16 78人阅读 评论(0) 收藏 举报 WTLGDI+c++ 今天遇到一个小问题困扰了.就是G ...

  8. 【转载】ASP.NET支持多语言

    ASP.NET 2.0中实现:1.使用工具自动生成本地化资源(LocalResources) 首先建立一个WEB工程,如图所示:双击Default.aspx,切换到[设计]视图,从工具箱里拖一个But ...

  9. Asp.net全局资源文件( App_GlobalResources)和本地资源文件(App_LocalResources)

    今天项目中需要加入对不同语言的支持. 找了半天的资料,关于GlobalResources和LocalResource都说的模棱两可的. 只能自己边找资料边试.     全局资源文件 样例(Demo中有 ...

随机推荐

  1. Chrome的Waterfall

    参考: 1.https://developers.google.com/web/tools/chrome-devtools/network-performance/reference#timing 2 ...

  2. DotnetBrowser高级教程-(4)使用MVC框架4-过滤器

    dotnetbrowser内置了过滤器,所谓过滤器,就是实现了Action前后拦截,请看下例: 1.增加目录Filters,在该目录下增加新的过滤器PerformanceFilter,代码如下: pu ...

  3. Jquery.data()的值存放再什么地方的问题?

    Where is jQuery.data() stored? Where does jQuery store the values of the data() that it sets to DOM ...

  4. 谷歌安卓UI自动化测试策略

    中文翻译版: 为了使大家确信"应做单元测试,就一定能做单元测试",谷歌测试工程师Mona El Mahdy专门写了一篇博客,提出了几种执行安卓应用用户界面单元测试的方法.Mahdy ...

  5. jQuery的AJax异步载入片段

    主要用到load()方法以及getScript()方法,详细以一个样例说明: 在现有html文件里载入一个拟好的片段,以及在片段载入完毕之前阻止用户进一步操作的弹出框. 首先是现有html代码.无不论 ...

  6. 用二十秒记住几个PHP基础知识点

    数组: 索引数组:数组的键是整数的数组,从0開始. 关联数组:数组的键是字符串的数组 //索引数组 $arr=array('I','love','you'); //关联数组 $arr0=array(' ...

  7. zabbix监控第二块网卡是否连通

    配置zabbix客户端配置文件 vim /etc/zabbix/zabbix_agentd.conf 添加  Include=/etc/zabbix/zabbix_agentd.d/ 添加脚本检测网卡 ...

  8. libpointmatcher的filter

    Maximum Density Filter Points are only considered for rejection if they exceed a density threshold, ...

  9. java 实现统计某段文字在内容中出现的次数

    http://outofmemory.cn/code-snippet/815/java-zishutongji 一个api,位于apache.commons.lang.StringUtils类下的一个 ...

  10. Ctrl/Alt 快捷键

    Ctrl+S 保存   Ctrl+W 关闭程序   Ctrl+N 新建文档   Ctrl+O 打开(选择打开其他文档)   Ctrl+Z 撤销   Ctrl+F 查找   Ctrl+X 剪切   Ct ...