Avalonia实现国际化-AvaloniaExtensions

为Avalonia UI开发带来便利的语法糖库,旨在通过提供额外的功能和简化常用操作,提升开发效率与体验。

下面是完成的其中一项功能【I18n】,支持resx文件实现国际化:

368cc146ff55feb5c11d643698cb2146.gif

unsetunset安装unsetunset

Install-Package AvaloniaExtensions.Axaml

unsetunsetI18nunsetunset

格式要求:在项目中创建I18n目录,并在其中创建需要支持的多语言资源文件Resources[.xx].resx。例如,为英语、简体中文、日语创建Resources.resxResources.zh-CN.resxResources.ja-JP.resx。参考Demo结构如下:

833bfa38228e31188886f26e3a71ecbd.png

推荐使用ResX Manager进行资源文件编辑,以更便捷地管理多语言资源:

59afaa985046e3e9fbbe6e64fcc0e7a7.png

可使用T4模板文件(如Demo中的Language.tt)自动生成资源键的C#代码,以便在项目中引用:

35d65bb9e4b18eba23f37dab20b16062.png

生成的C#代码示例:

public static class Language
{
    public static readonly string AppName = "AppName";
    public static readonly string Welcome = "Welcome";
}

使用方式

  • 静态绑定资源键:

<TextBlock Text="{i18n:I18n {x:Static l:LanguageKeys.Welcome}}" />
  • 动态绑定资源键:

<TextBlock Text="{i18n:I18n {Binding Title}}" />
  • 切换语言:

I18nManager.Instance.Culture = new CultureInfo(language);

unsetunset感谢unsetunset

取之于开源,献之于开源。本库的开发受到了以下开源项目或文章的启发与帮助:

  • WpfExtensions: https://github.com/DingpingZhang/WpfExtensions[1]

  • I18N:https://github.com/Antelcat/I18N[2]

  • WPF或Avalonia使用tt模板和resx文件实现国际化:https://blog.csdn.net/eyupaopao/article/details/136638194[3]

特别感谢这些项目的贡献者,他们的努力为AvaloniaExtensions的开发提供了宝贵的参考与帮助。

参考资料

[1]

https://github.com/DingpingZhang/WpfExtensions: https://github.com/DingpingZhang/WpfExtensions

[2]

https://github.com/Antelcat/I18N: https://github.com/Antelcat/I18N

[3]

https://blog.csdn.net/eyupaopao/article/details/136638194: https://blog.csdn.net/eyupaopao/article/details/136638194

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值