6K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

本地化语言加载问题

已完成
成员
创建于  
2022-12-17 11:46

Furion 版本号

4.8.3.7


.NET SDK 版本号

  • .NET5
  • .NET6
  • .NET7

项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp
  • WinForm
  • WPF
  • Console

操作系统和版本

  • Windows(版本)
  • Linux(版本)
  • MacOS(版本)
  • 其他(版本)

代码环境

  • 开发环境(Development)
  • 生产环境(Production)
  • 测试环境(Tests/单元测试/集成测试 )

描述你的问题

英文语言资源为空,在加载资源信息的时候,系统读取了中文资源。


测试项目代码

输入图片说明
输入图片说明
输入图片说明

您的代码下载地址?

https://gitee.com/proud_cat/demo/raw/master/dome.zip


期待结果

加载对应资源时间,如果未读取到对应的值。应返回原字符串。


评论 (3)

Proud_Cat 创建了任务
Proud_Cat 修改了描述
Proud_Cat 修改了描述
展开全部操作日志

L.SetCulture 是会影响下一次请求,会在客户端的浏览器写入 cookie,不会对当前的请求有影响。

底层源码。

输入图片说明


另外,偌大的 Issue 提示依然视而不见,反倒删了!

输入图片说明

百小僧 任务状态待办的 修改为已完成
Proud_Cat 修改了描述
Proud_Cat 修改了描述

今天重新审查了这个需求,发现在运行时动态切换多语言从而获得翻译结果是非常合理的需求,所以实现了:

19b6868

如,提供了 L.SetCurrentUICulture(区域码)L.SetCulture(区域码, true) 两种方式。

  • L.SetCurrentUICulture 方式

该方式只影响 后端运行时 代码,不对 客户端(前端) 有影响

// 临时设置为 en-US 
L.SetCurrentUICulture("en-US");
var res = L.Text["内容"];    // => content

// 临时设置为 zh-CN
L.SetCurrentUICulture("zh-CN");
var res = L.Text["内容"];    // => 内容
  • L.SetCulture(区域码, true) 方式

该方式如果不设置第二个参数,那么只会对客户端下一次请求(刷新浏览器)有影响,对当前代码无影响,如果设置了第二个参数且为 true,那么对后端和前端都有影响。

// 只对下一次请求的客户端有影响,对后端运行时无影响
L.SetCulture("en-US");
var res = L.Text["内容"];    // => 不一定是 en-US,如果上一次是 zh-CN,那么 res 结果就是 内容

// 对后端,前端都有影响
L.SetCulture("en-US", true);

Furion v4.8.3.10 版本发布,现在支持运行时动态修改多语言配置获取最新的翻译结果了

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227 7985226 proud cat 1616052121
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助