From b6db54b08e69d542326d9714297cc997379c71a4 Mon Sep 17 00:00:00 2001 From: Jack <3486688394@qq.com> Date: Fri, 24 Jan 2025 01:18:31 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.MD | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) 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