【 Avalonia UI 语言国际化 I18n】图文结合教学,保姆级教学,语言国际化就是这么简单(.Net C#)

完整项目地址

github : https://github.com/Crazy-GrowUp/AvaloniaI18nTest/tree/master
gitee :https://gitee.com/jack_of_disco/avalonia-i18n-test

0.项目新建 Properties 文件夹

对应的项目配置文件里面就会增加 <Folder Include="Properties\" />

1.项目添加新建项目

在 Properties 里面添加资源文件,命名为 Resource.resx

2.将自定义工具设置为 PublicResXFileCodeGenerator(重要)

右键 Resource.resx 文件,打开属性,修改属性中自定义工具为 PublicResXFileCodeGenerator

3.添加文本资源


4.安装扩展 ResXManager(推荐)

安装完成后,可能需要重启VS

5.添加多国语言

方式一:右键 Resource.resx 使用 ResXManager 打开

Properties 文件夹下面就多了一个 Resource.en.resx

方式二:手动添加多国语言文件

比如我们要添加中文,那么就新建 Resource.zh.resx 资源文件

然后将对应的翻译填写到资源文件中

6.在 .axaml 文件中使用

  1. 在 MainWindow.axaml 中加上 xmlns:prop="using:AvaloniaI18nTest.Properties"
  2. 通过 {x:Static prop:Resource.Name} 进行使用

7.在代码中使用

  1. 在 MainWindowViewModel 中 使用 using AvaloniaI18nTest.Properties; 或者 using prop = AvaloniaI18nTest.Properties;

  2. 取出其中的值

    c# 复制代码
     public string ResxName { get; } = Resource.Name;
     public string ResxName2 { get; } = prop.Resource.Name;   
  1. 在 axaml 中显示

8.切换语言

切换需要需要在 App.axaml.cs 中的 Initialize() 方法中进行设置

c# 复制代码
 // 不写或者为空就是默认系统语言
 // Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(""); 
 // 修改语言
 // Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh"); 
 Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
相关推荐
悟能不能悟12 小时前
java 判断string[]中是否有a
java·开发语言
4***149012 小时前
高并发时代的“确定性”挑战——为何稳定性正在成为 JVM 的下一场核心竞争?
java·开发语言·jvm
fegggye12 小时前
创建一个rust写的python库[signatures和错误处理]
开发语言·python·rust
hahjee12 小时前
Go编写的ANSI终端颜色和样式控制库在OpenHarmony PC上的完整适配实战
开发语言·后端·鸿蒙
旧梦吟12 小时前
脚本网页 地球演化
前端·算法·css3·html5·pygame
xiaoxue..12 小时前
哨兵节点与快慢指针解决链表算法难题
前端·javascript·数据结构·算法·链表
这是个栗子12 小时前
【前端知识点总结】前端跨域问题
前端·跨域·cors
拉姆哥的小屋12 小时前
从400维向量到160000维矩阵:基于深度学习的火焰参数预测系统全解析
开发语言·人工智能·python·深度学习·线性代数·算法·矩阵
正运动技术12 小时前
全国产强实时运动控制内核(十二):实时在线变速实现多段速的软着陆
嵌入式硬件·c#·运动控制·运动控制器·运动控制卡·正运动·pc上位机
尽欢i12 小时前
踩过坑才懂:前端生成唯一 ID,别用 Date.now ()了!一行代码搞定
前端·javascript