chore: Add support for WasmShellLoadAllSatelliteResources
This commit is contained in:
Родитель
7fa801bf05
Коммит
579e06ba8b
|
@ -14,6 +14,14 @@ dotnet publish
|
|||
|
||||
The app will be located in the `bin/Release/net9.0/publish/wwwroot` folder. More information about `dotnet publish` can be [found in the Microsoft docs](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-publish).
|
||||
|
||||
## Localization publishing
|
||||
By default, the .NET runtime does not load all resource assemblies, but if you want to load all resources regardless of the user's culture, you can add the following to your project file:
|
||||
```xml
|
||||
<PropertyGroup>
|
||||
<WasmShellLoadAllSatelliteResources>true</WasmShellLoadAllSatelliteResources>
|
||||
</PropertyGroup>
|
||||
```
|
||||
|
||||
## Integration with ASP.NET Core
|
||||
|
||||
ASP.NET Core hosting is supported through the `Uno.Wasm.Bootstrap.Server` package.
|
||||
|
|
|
@ -88,6 +88,13 @@ Once done, make sure to install the WebAssembly tools from .NET:
|
|||
dotnet workload install wasm-tools
|
||||
```
|
||||
|
||||
By default, the .NET runtime does not load all resource assemblies, but if you want to load all resources regardless of the user's culture, you can add the following to your project file:
|
||||
```xml
|
||||
<PropertyGroup>
|
||||
<WasmShellLoadAllSatelliteResources>true</WasmShellLoadAllSatelliteResources>
|
||||
</PropertyGroup>
|
||||
```
|
||||
|
||||
## Bootstrapper versions and .NET runtimes
|
||||
|
||||
Each major version of the bootstrapper targets a different version of the .NET Runtime.
|
||||
|
@ -103,3 +110,8 @@ Each major version of the bootstrapper targets a different version of the .NET R
|
|||
>
|
||||
> [!NOTE]
|
||||
> Bootstrapper builds version 4.x-dev were based on developments builds of .NET 7 and were later versioned 7.x-dev to match the appropriate runtime.
|
||||
|
||||
## Previous releases documentation
|
||||
- [8.0.x](https://github.com/unoplatform/Uno.Wasm.Bootstrap/tree/release/stable/8.0/doc)
|
||||
- [7.0.x](https://github.com/unoplatform/Uno.Wasm.Bootstrap/tree/release/stable/7.0/doc)
|
||||
- [3.x](https://github.com/unoplatform/Uno.Wasm.Bootstrap/tree/release/stable/3.3/doc)
|
||||
|
|
|
@ -102,6 +102,8 @@ namespace Uno.Wasm.Bootstrap
|
|||
|
||||
public bool EnableTracing { get; set; }
|
||||
|
||||
public bool LoadAllSatelliteResources { get; set; }
|
||||
|
||||
public string AotProfile { get; set; } = "";
|
||||
|
||||
public bool RunAOTCompilation { get; set; }
|
||||
|
@ -531,6 +533,7 @@ namespace Uno.Wasm.Bootstrap
|
|||
config.AppendLine($"config.uno_shell_mode = \"{_shellMode}\";");
|
||||
config.AppendLine($"config.uno_debugging_enabled = {(!Optimize).ToString().ToLowerInvariant()};");
|
||||
config.AppendLine($"config.uno_enable_tracing = {EnableTracing.ToString().ToLowerInvariant()};");
|
||||
config.AppendLine($"config.uno_load_all_satellite_resources = {LoadAllSatelliteResources.ToString().ToLowerInvariant()};");
|
||||
config.AppendLine($"config.emcc_exported_runtime_methods = [{emccExportedRuntimeMethodsParams}];");
|
||||
|
||||
if (GenerateAOTProfile)
|
||||
|
|
|
@ -254,6 +254,7 @@
|
|||
GenerateAOTProfile="$(WasmShellGenerateAOTProfile)"
|
||||
IndexHtmlPath="$(WasmShellIndexHtmlPath)"
|
||||
IntermediateOutputPath="$(IntermediateOutputPath)"
|
||||
LoadAllSatelliteResources="$(WasmShellLoadAllSatelliteResources)"
|
||||
LogProfilerOptions="$(WasmShellLogProfilerOptions)"
|
||||
MonoEnvironment="@(WasmShellMonoEnvironment)"
|
||||
PublishTrimmed="$(PublishTrimmed)"
|
||||
|
|
|
@ -101,7 +101,8 @@ namespace Uno.WebAssembly.Bootstrap {
|
|||
.withModuleConfig({
|
||||
preRun: () => bootstrapper.wasmRuntimePreRun(),
|
||||
})
|
||||
.withRuntimeOptions(config.config.uno_runtime_options);
|
||||
.withRuntimeOptions(config.config.uno_runtime_options)
|
||||
.withConfig({ loadAllSatelliteResources: config.config.uno_loadAllSatelliteResources });
|
||||
|
||||
const dotnetRuntime = await m.default(
|
||||
(context: DotnetPublicAPI) => {
|
||||
|
|
|
@ -32,5 +32,7 @@
|
|||
uno_debugging_enabled?: boolean;
|
||||
|
||||
uno_runtime_options?: string[];
|
||||
|
||||
uno_load_all_satellite_resources?: string[];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,8 @@ using System.Threading;
|
|||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Globalization;
|
||||
using System.Runtime.InteropServices.JavaScript;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Uno.Wasm.Sample
|
||||
{
|
||||
|
@ -59,13 +61,20 @@ namespace Uno.Wasm.Sample
|
|||
#endif
|
||||
Console.WriteLine($"requireJSAvailable: {requireAvailable}");
|
||||
|
||||
Console.WriteLine($"CultureInfo.CurrentCulture: {CultureInfo.CurrentCulture}");
|
||||
Console.WriteLine($"CultureInfo.CurrentUICulture: {CultureInfo.CurrentUICulture}");
|
||||
Console.WriteLine($"Thread.CurrentThread.CurrentCulture: {Thread.CurrentThread.CurrentCulture}");
|
||||
Console.WriteLine($"Thread.CurrentThread.CurrentUICulture: {Thread.CurrentThread.CurrentUICulture}");
|
||||
Console.WriteLine($"CultureInfo.DefaultThreadCurrentCulture: { CultureInfo.DefaultThreadCurrentCulture?.ToString() ?? "<null>" }");
|
||||
Console.WriteLine($"CultureInfo.DefaultThreadCurrentUICulture: { CultureInfo.DefaultThreadCurrentUICulture?.ToString() ?? "<null>"}");
|
||||
|
||||
Console.WriteLine($"Timezone: {TimeZoneInfo.Local.StandardName}");
|
||||
|
||||
Console.WriteLine(typeof(Microsoft.Extensions.Logging.Abstractions.NullLogger));
|
||||
|
||||
var r = new System.Resources.ResourceManager("FxResources.System.Web.Services.Description.SR", typeof(System.Web.Services.Description.Binding).Assembly);
|
||||
Console.WriteLine($"Res(en): {r.GetString("WebDescriptionMissing", new CultureInfo("en-US"))}");
|
||||
Console.WriteLine($"Res(fr): {r.GetString("WebDescriptionMissing", new CultureInfo("fr-CA"))}");
|
||||
Console.WriteLine($"Res(fr): {r.GetString("WebDescriptionMissing", new CultureInfo("fr"))}");
|
||||
|
||||
_t = new Timer(_ => {
|
||||
Console.WriteLine("message");
|
||||
|
@ -84,6 +93,9 @@ namespace Uno.Wasm.Sample
|
|||
|
||||
[System.Runtime.InteropServices.JavaScript.JSImport("globalThis.isRequireAvailable")]
|
||||
public static partial bool IsRequireAvailable();
|
||||
|
||||
[JSImport("INTERNAL.loadSatelliteAssemblies")]
|
||||
internal static partial Task LoadSatelliteAssemblies(string[] culturesToLoad);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
<PropertyGroup>
|
||||
<AssemblyName>Uno.Wasm.SampleNet7</AssemblyName>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
|
||||
<WasmShellLoadAllSatelliteResources>true</WasmShellLoadAllSatelliteResources>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
Загрузка…
Ссылка в новой задаче