public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddSingleton<WeatherForecastService>();
services.AddSyncfusionBlazor();
services.AddSingleton(typeof(ISyncfusionStringLocalizer), typeof(SampleLocalizer));
services.Configure<RequestLocalizationOptions>(options =>
{
// Define the list of cultures your app will support
var supportedCultures = new List<CultureInfo>()
{
new CultureInfo("en-US"),
new CultureInfo("en-AU")
};
// Set the default culture
options.DefaultRequestCulture = new RequestCulture("en-AU");
options.DefaultRequestCulture.Culture.NumberFormat.CurrencySymbol = supportedCultures[1].NumberFormat.CurrencySymbol;
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders = new List<IRequestCultureProvider>() {
new QueryStringRequestCultureProvider() // Here, You can also use other localization provider
};
});
} |
<SfNumericTextBox TValue="Decimal" ValidateDecimalOnType=true Decimals=2 Format="c2" @bind-Value="@chargeBreak" Min=0 Placeholder="0.00">
</SfNumericTextBox>
@code {
public Decimal chargeBreak;
} |
|
Hi Jeremy,
Thanks for providing the sample. Currently we are checking the reported issue and will update further details in 2 business days.
Regards,Ponmani M
<SfNumericTextBox TValue="Decimal" ValidateDecimalOnType=true Decimals=2 Format="c2"
@bind-Value="@chargeBreak" Min=0 Placeholder="0.00">
</SfNumericTextBox>
<SfNumericTextBox TValue="Decimal" ValidateDecimalOnType=true Decimals=2 Format="c2"
@bind-Value="@chargeBreak"
Min=0 Placeholder="0.00">
</SfNumericTextBox>
@code{
public Decimal chargeBreak { get; set; }
} |
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddSyncfusionBlazor();
builder.Services.AddSingleton(typeof(ISyncfusionStringLocalizer), typeof(SyncfusionLocalizer));
// Set the default culture of the application
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-AU");
// Get the modified culture from culture switcher
var host = builder.Build();
var jsInterop = host.Services.GetRequiredService<IJSRuntime>();
var result = await jsInterop.InvokeAsync<string>("cultureInfo.get");
if (result != null)
{
// Set the culture from culture switcher
var culture = new CultureInfo(result);
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
}
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
await builder.Build().RunAsync();
} |
|
// Register the Syncfusion locale service to customize the SyncfusionBlazor component locale culture
builder.Services.AddSingleton(typeof(ISyncfusionStringLocalizer), typeof(SyncfusionLocalizer));
// Set the default culture of the application
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-AU");
// Get the modified culture from culture switcher
var host = builder.Build();
var jsInterop = host.Services.GetRequiredService<IJSRuntime>();
var result = await jsInterop.InvokeAsync<string>("cultureInfo.get");
if (result != null)
{
// Set the culture from culture switcher
var culture = new CultureInfo(result);
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
} |
namespace NumericTextBoxCurrency.Shared
{
public class SyncfusionLocalizer : ISyncfusionStringLocalizer
{
// To get the locale key from mapped resources file
public string GetText(string key)
{
return this.ResourceManager.GetString(key);
}
// To access the resource file and get the exact value for locale key
public System.Resources.ResourceManager ResourceManager
{
get
{
return NumericTextBoxCurrency.Resources.SfResources.ResourceManager;
}
}
}
} |
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
</PropertyGroup> |
<script>
window.cultureInfo = {
get: () => window.localStorage['BlazorCulture'],
set: (value) => window.localStorage['BlazorCulture'] = value
};
</script> |
<SfNumericTextBox TValue="Decimal" ValidateDecimalOnType=true Decimals=2 Format="c2" @bind-Value="@charge" Min=0 Placeholder="0.00"></SfNumericTextBox>
@code
{
public Decimal charge { get; set; }
} |
|
Server side |
$ |
Client side |
AUD |