FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

FineUIPro/Mvc/Core v5.5.0 发布! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

查看: 275|回复: 3

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

[复制链接]
发表于 2019-6-12 10:12:22 | 显示全部楼层 |阅读模式
一个客户在邮件中问到了FineUIPro的多语言实现问题,其实 FineUIPro 并没有对此做特殊处理,因此直接使用 ASP.NET 原生支持的资源文件就能实现。

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

最终的英文版显示效果:


修改 Web.config 的配置项:
  1. <system.web>

  2. <globalization uiCulture="zh-CN"/>

  3. </system.web>
复制代码


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


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

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

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


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


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


在页面上,有两种使用方式:
1. 普通的文本:
  1. <title><%= Resources.GlobalResource.Title %></title>
复制代码


2. 服务器控件:
  1. <f:MenuButton Text="<%$ Resources:GlobalResource, UserProfile %>" IconFont="_User" EnablePostBack="false" runat="server">
  2.         <Listeners>
  3.                 <f:Listener Event="click" Handler="onUserProfileClick" />
  4.         </Listeners>
  5. </f:MenuButton>
复制代码



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

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



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



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


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


在页面上,同样有两种使用方式:
1. 普通的文本:
  1. <Content>
  2.         <%= GetLocalResourceObject("Content") %>
  3. </Content>
复制代码



2. 服务器控件:
  1. <f:Tab ID="Tab1" Title="<%$ Resources:DefaultPage %>" BodyPadding="10px" AutoScroll="true" Icon="House" runat="server">
  2.         <Content>
  3.                 ...
  4.         </Content>
  5. </f:Tab>
复制代码


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



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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2019-6-14 23:00:11 | 显示全部楼层
超赞!!!
请问MVC上可以用吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-17 15:59:04 | 显示全部楼层
erp8@live.cn 发表于 2019-6-14 23:00
超赞!!!
请问MVC上可以用吗?

应该是可以用的,ASP.NET MVC 也支持多语言的资源文件,不过写法有点不同。

我在网上找了两篇文章:
https://www.cnblogs.com/zoro-zero/p/6674442.html
https://jingyan.baidu.com/article/ce4366495640eb3773afd30e.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|FineUI 官方论坛 ( 皖ICP备13005369号-1 )

GMT+8, 2019-8-21 03:32 , Processed in 0.113893 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表