Lang.Avalonia
dotnet9
概览 文档 更新日志 GitHub · 源码与 Issue ↗

Lang.Avalonia

Avalonia 插件化多语言(i18n)库

XAML 标记扩展 + C# 统一入口,运行时切换语言;JSON/XML/RESX 三种资源插件,父文化/默认文化回退,源生成器编译期生成强类型资源 Key。

net8.0net10.0net11.0 i18nAvalonia源生成器 开源免费
> dotnet add package Lang.Avalonia
GitHub ↗
GitHub Star ★ —
NuGet 下载 3.9w+
子包数量 5

为什么选它

Features
🏷️
XAML 标记扩展

{c:I18n …} 直接绑定资源 Key,XAML 里完成多语言。

🔄
运行时切换

I18nManager.Instance.Culture 一行切换,全站即时生效。

🧩
三种资源插件

JSON / XML / RESX 按喜好选择,ILangPlugin 还能自己扩展。

🪜
文化回退链

父文化 → 默认文化 → 原始 Key,缺翻译也不开天窗。

🛠️
源生成器

Lang.Avalonia.Analysis 编译期生成强类型 Key,拼写错误编译就报。

🌐
浏览器可用

Browser Demo 验证,Avalonia Web 跑多语言没问题。

Lang.Avalonia
Lang.Avalonia.Json
Lang.Avalonia.Xml
Lang.Avalonia.Resx
Lang.Avalonia.Analysis
> dotnet add package Lang.Avalonia

核心包按需引入;目标框架 net8.0 / net10.0 / net11.0。全部包在 nuget.org 与 GitHub 同步发布。

注册 JSON 资源并切换语言
csharp
using Lang.Avalonia;
using Lang.Avalonia.Json;
using System.Globalization;

I18nManager.Instance.Register(new JsonLangPlugin(), new CultureInfo("en-US"), out var error);
if (!string.IsNullOrWhiteSpace(error))
{
    // 记录或展示初始化错误。
}
XAML 标记扩展
xml
xmlns:c="https://codewf.com"
xmlns:mainLangs="clr-namespace:Localization.Main"

<SelectableTextBlock Text="{c:I18n {x:Static mainLangs:MainView.Title}}" />
<SelectableTextBlock Text="{c:I18n {x:Static mainLangs:MainView.Title}, CultureName=ja-JP}" />

包列表

Packages

按需安装,版本与核心包保持同步发布

包名说明
Lang.Avalonia 核心包
Lang.Avalonia.Json 集成 / 扩展包
Lang.Avalonia.Xml 集成 / 扩展包
Lang.Avalonia.Resx 集成 / 扩展包
Lang.Avalonia.Analysis 集成 / 扩展包

架构一览

Architecture 设计文档 →
Lang.Avalonia 架构图

文档

Documentation 全部文档 →

最近更新

Changelog 查看完整日志 →
12.1.2.13 🛠️[修复]-统一运行时与 Source Generator 的文化元数据校验和名称规范化,并正确识别 RESX 的中性文化文件名。
12.1.2.12 🛠️[修复]-让 Source Generator 按稳定顺序生成 namespace、class 和资源属性,避免 AdditionalFiles 顺序变化导致生成结果漂移。
12.1.2.11 🛠️[修复]-移除四个 Demo trimming root 中不存在的程序集声明,并同步清理过时的 Prism 扩展依赖说明。

谁在使用

Used By

码坊自家的应用都在用它,问题反馈与修复路径最短