# 简介

Dynamic Localization

轻量级、可扩展、可插拔的国际化库,支持热重载和多种数据源

也就是一个国际化、本地化的库了

架构如下

┌─────────────────────────────────────────────────────────────────┐
│                      DynamicLocalization                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                  DynamicLocalization.Core               │    │
│  │  - ICultureService, CultureService                      │    │
│  │  - ILocalizationProvider, Providers                     │    │
│  │  - 平台无关逻辑                                           │    │
│  └─────────────────────────────────────────────────────────┘    │
│                              │                                  │
│              ┌───────────────┴───────────────┐                  │
│              ▼                               ▼                  │
│  ┌─────────────────────┐         ┌─────────────────────┐        │
│  │ DynamicLocalization │         │ DynamicLocalization │        │
│  │      .Avalonia      │         │        .WPF         │        │
│  │  - Avalonia Binding │         │  - WPF Binding      │        │
│  └─────────────────────┘         └─────────────────────┘        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

服务层提供了获取不同文化的文本和格式等内容的服务

Provider 提供了数据源,支持多Provider,可以从各种地方拿到本地化数据键值对,json,xml等等,也支持自定义,比如用数据库、yaml之类的,未来可能会官方支持

然后图中占比比较大的部分其实很trifle,就是一个简单的xml绑定功能,因为不同平台的xaml绑定的逻辑或者命名空间不同嘛

一个简单的项目,个人感觉完成度还可以

嘻嘻