diff --git a/Readme.MD b/Readme.MD index 90e3deb..79c5fcf 100644 --- a/Readme.MD +++ b/Readme.MD @@ -1,3 +1,59 @@ # JackCraft.I18N -一个适用于 Avalonia 的自己觉得怎么好用怎么写的 I18N 库 \ No newline at end of file +一个适用于 Avalonia 的自己觉得怎么好用怎么写的 I18N 库 + +## 使用方法 + +### 安装 + +在 Avalonia 组件完全加载完成前的任意地方声明一个 `I18NManager` + +```csharp +public class App : Application +{ + // 例子: (不包含文件扩展名) + // Test.Resources + // TestAvaloniaProject.Assets.Languages.Resources + public static I18NManager I18NManager { get; } = new("程序命名空间.路径.语言资源文件名"); + + public override void Initialize() + ... +} +``` + +### 使用 + +#### 切换语言/文化 + +```csharp +I18NManager.Culture = new CultureInfo("zh-cn"); +``` + +#### 获取当前存在的语言/文化 + +```csharp +var totalCultures = I18NManager.GetCultures(); +``` + +#### 从资源文件中获取特定类型的资源 + +```csharp +// 标准示例: var value = I18NManager.Get<类型>("资源名称", 文化信息, ...如果是字符串且需要格式化的话需要传入的格式化参数); +// 假设 Hello 的中文资源为 "你好, {0}",默认资源为 "Hello, {0}",Username 为 "User" +var value = I18NManager.Get("Hello", new CultureInfo("zh-cn"), Username); // value = "你好, User" +var value = I18NManager.Get("Hello", CultureInfo.InvariantCulture, Username); // value = "Hello, User" +``` + +#### Avalonia 中的使用 + +```xml + + + + + + + + +``` \ No newline at end of file