From 7422a077e050c454933a780cd00e93be4ad6f4ed Mon Sep 17 00:00:00 2001 From: Argo Date: Thu, 5 May 2022 03:00:13 +0000 Subject: [PATCH] =?UTF-8?q?!2752=20doc(#I55RPM):=20update=20document=20for?= =?UTF-8?q?=20localization=20*=20doc:=20=E6=9B=B4=E6=96=B0=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=8C=96=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/Localization.razor | 51 ++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/src/BootstrapBlazor.Shared/Pages/Localization.razor b/src/BootstrapBlazor.Shared/Pages/Localization.razor index 8b89b569a..bf43376e6 100644 --- a/src/BootstrapBlazor.Shared/Pages/Localization.razor +++ b/src/BootstrapBlazor.Shared/Pages/Localization.razor @@ -15,16 +15,32 @@

- BootstrapBlazor 组件额外支持使用 Json 类型的键值信息作为资源文件,将其解析为 UI 中呈现的字符串。BootstrapBalzor 包自带中文(zh)、英语(en)两种资源文件。组件内置本地化语言回退机制,如请求文化为 zh-CN 时,如未提供相对应的文化资源文件时,内置逻辑通过父级文化进行尝试本地化,以 zh-CN 为例回退机制如下: + BootstrapBlazor 组件额外支持使用 Json 类型的键值信息作为资源文件,将其解析为 UI 中呈现的字符串。BootstrapBalzor 包自带以下资源文件。
-
- zh-CNzh + +
+ 组件内置本地化语言回退机制,如请求文化为 zh-CN 时,如未提供相对应的文化资源文件时,内置逻辑通过父级文化进行尝试本地化,以 zh-CN 为例回退机制如下:zh-CNzh
-
+
如果设置的本地化语言未提供资源文件回落后仍无法找到资源文件后,使用 FallbackCulture 参数设置的文化信息进行本地化,默认为 en
+ +
特别注意:
+ +
由于某些系统如 Centos Ubuntu mac 等程序运行后线程无法获得文化信息,可以通过配置文件设置默认文化信息:

+
{
+  "BootstrapBlazorOptions": {
+    "DefaultCultureInfo": "en"
+  }
+}
+

开启本地化功能

Server-Side App

@@ -41,8 +57,7 @@ "en-US" ] } -} - +}

2. 启用 .NET 核心本地化服务

public class Startup
@@ -168,7 +183,7 @@ public class CultureController : Controller
 
 
public void ConfigureServices(IServiceCollection services)
 {
-    services.AddBootstrapBlazor(setupAction: options =>
+    services.AddBootstrapBlazor(localizationAction: options =>
     {
         // 设置 RESX 格式多语言资源文件 如 Program.{CultureName}.resx
         options.ResourceManagerStringLocalizerType = typeof(Program);
@@ -186,6 +201,28 @@ public class CultureController : Controller
 }
 
+

或者使用服务扩展方法 ConfigureJsonLocalizationOptions

+ +
public void ConfigureServices(IServiceCollection services)
+{
+    services.AddBootstrapBlazor();
+    services.ConfigureJsonLocalizationOptions(op =>
+    {
+        // 附加自己的 json 多语言文化资源文件 如 zh-TW.json
+        op.AdditionalJsonAssemblies = new Assembly[]
+        {
+            typeof(BootstrapBlazor.Shared.App).Assembly,
+        };
+
+        // 设置 Json 物理路径文件
+        options.AdditionalJsonFiles = new string[]
+        {
+            @@"D:\Argo\src\BootstrapBlazor\src\BootstrapBlazor.Server\Locales\zh-TW.json",
+            @@"D:\Argo\src\BootstrapBlazor\src\BootstrapBlazor.Server\Locales\zh-CN.json"
+        };
+    });
+}
+

Web Assembly

1. 启用 .NET 核心本地化服务