Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class="w-100 form-control @AccessStatus"
type="number"
step="any"
value="@Value.ToString().Replace(',', '.')"
value="@Value.ToString(CultureInfo.InvariantCulture)"
@onfocus="@(() => { HasFocus = true; LastValue = Onliner.LastValue; })"
@onblur="@(() => HasFocus = false)"
@onchange="Change"
Expand All @@ -25,7 +25,7 @@

private void Change(ChangeEventArgs args)
{
if (Double.TryParse(args.Value.ToString(), out var parseValue))
if (Double.TryParse(args.Value.ToString(), CultureInfo.InvariantCulture, out var parseValue))
Value = parseValue;

Key++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class="w-100 form-control @AccessStatus"
type="number"
step="any"
value="@Value.ToString().Replace(',', '.')"
value="@Value.ToString(CultureInfo.InvariantCulture)"
@onfocus="@(() => { HasFocus = true; LastValue = Onliner.LastValue; })"
@onblur="@(() => HasFocus = false)"
@onchange="Change"
Expand All @@ -25,7 +25,7 @@

private void Change(ChangeEventArgs args)
{
if (Single.TryParse(args.Value.ToString(), out var parseValue))
if (Single.TryParse(args.Value.ToString(), CultureInfo.InvariantCulture, out var parseValue))
Value = parseValue;

Key++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class="w-100 form-control @AccessStatus"
style="@(IsReadOnly? "" : "background-color:transparent")"
type="text"
value="@Onliner.Cyclic"
value="@Onliner.Cyclic.ToString(CultureInfo.InvariantCulture)"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class="w-100 form-control @AccessStatus"
style="@(IsReadOnly? "" : "background-color:transparent")"
type="text"
value="@Onliner.Cyclic"
value="@Onliner.Cyclic.ToString(CultureInfo.InvariantCulture)"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class="w-100 form-control @AccessStatus"
type="number"
step="any"
value="@Onliner.Shadow.ToString().Replace(',', '.')"
value="@Onliner.Shadow.ToString(CultureInfo.InvariantCulture)"
@onchange="Change"
data-bs-toggle="tooltip"
data-bs-placement="top"
Expand All @@ -20,7 +20,7 @@
@code {
private void Change(ChangeEventArgs args)
{
if (Double.TryParse(args.Value.ToString(), out var parseValue))
if (Double.TryParse(args.Value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out var parseValue))
Onliner.Shadow = parseValue;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,25 @@
<TemplateView Symbol="@OnlinerSymbol" FailureReason="@Onliner.AccessStatus.FailureReason">
<label for="@ComponentId">@Onliner.AttributeName@(string.IsNullOrWhiteSpace(Onliner.AttributeUnits) ? null : $" [{Onliner.AttributeUnits}]")</label>
<input id="@ComponentId"
readonly="@IsReadOnly"
class="w-100 form-control @AccessStatus"
type="number"
step="any"
value="@Onliner.Shadow.ToString().Replace(',', '.')"
@onchange="Change"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="@ToolTipText">
readonly="@IsReadOnly"
class="w-100 form-control @AccessStatus"
type="number"
step="any"
value="@Onliner.Shadow.ToString(CultureInfo.InvariantCulture)"
@onchange="Change"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="@ToolTipText">

</TemplateView>

@code {

private void Change(ChangeEventArgs args)
{
if (Single.TryParse(args.Value.ToString(), out var parseValue))

if (Single.TryParse(args.Value.ToString(),NumberStyles.Any,CultureInfo.InvariantCulture, out var parseValue))
Onliner.Shadow = parseValue;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class="w-100 form-control @AccessStatus"
style=@(IsReadOnly? "" : "background-color:transparent")
type="text"
value="@Onliner.Shadow"
value="@Onliner.Shadow.ToString(CultureInfo.InvariantCulture)"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class="w-100 form-control @AccessStatus"
style=@(IsReadOnly? "" : "background-color:transparent")
type="text"
value="@Onliner.Shadow"
value="@Onliner.Shadow.ToString(CultureInfo.InvariantCulture)"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.Mvc;
using System.Globalization;
using AXSharp.Connector;

namespace ix_integration_blazor;

[Route("/[controller]")]
[ApiController]
public class CultureController : ControllerBase
{
public async Task<ActionResult> ChangeCulture([FromQuery] string culture)
{
if (culture != null)
{
HttpContext.Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(
new RequestCulture(culture, culture)));

CultureExtensions.Culture = new CultureInfo(culture);
Connector.SetCulture(CultureExtensions.Culture);

}

return Redirect("/");
}
}

public static class CultureExtensions
{
public static CultureInfo Culture { get; set; } = CultureInfo.CurrentCulture ?? CultureInfo.DefaultThreadCurrentCulture ?? new CultureInfo("en-US");
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,3 @@

<RenderableContentControl Presentation="Display"
Context="@Entry.Plc.test_example.primitives_stack" />

<button @onclick="SetSk"></button>

@code {

protected void SetSk()
{
Program.SetCulture("sk-SK");
}
}
23 changes: 9 additions & 14 deletions src/sanbox/integration/ix-integration-blazor/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class Program
private static WebApplication App { get; set; }

public static void Main(string[] args)
{
{
//ix_integration_plc.PlcTranslator.Instance.SetLocalizationResource(typeof(ix_integration_plc.ResourcesOverrride.OverridePlcStringResources));

var builder = WebApplication.CreateBuilder(args);
Expand All @@ -33,43 +33,38 @@ public static void Main(string[] args)
builder.Services.AddIxBlazorServices();
builder.Services.AddLocalization();


var app = builder.Build();

App = app;

Entry.Plc.Connector.BuildAndStart().ReadWriteCycleDelay = 10;
Entry.Plc.Connector.BuildAndStart().SubscriptionMode = ReadSubscriptionMode.Polling;
Entry.Plc.Connector.ExceptionBehaviour = CommExceptionBehaviour.Ignore;

//Entry.Plc.Connector.Translator.SetLocalizationResource(Entry.Plc.GetType(), "Properties.PlcStringResources");

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
}

var supportedCultures = new[] { "en-US", "sk-SK", "es-ES" };
var localizationOptions = new RequestLocalizationOptions()
.AddSupportedCultures(supportedCultures)
.AddSupportedUICultures(supportedCultures);


//app.UseRequestLocalization(new RequestLocalizationOptions()
// .AddSupportedCultures(new[] { "en-US", "sk-SK" })
// .AddSupportedUICultures(new[] { "en-US", "sk-SK" }));

App.UseRequestLocalization("sk-SK");
app.UseRequestLocalization(localizationOptions);

app.UseStaticFiles();

app.UseRouting();

app.MapControllers();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");

app.Run();
}

public static void SetCulture(string culture)
{
App.UseRequestLocalization(culture);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
</div>

<main>
<div class="top-row px-4">
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
</div>
<TopRow></TopRow>

<article class="content px-4">
@Body
Expand Down
44 changes: 44 additions & 0 deletions src/sanbox/integration/ix-integration-blazor/Shared/TopRow.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
@using System.Globalization
@inject NavigationManager NavigationManager

<div class="top-row px-2">

<div class="ms-auto">
<select class="form-control" @bind="Culture" @bind:event="oninput">
@foreach (var culture in supportedCultures)
{
<option data value="@culture">@culture.NativeName</option>
}
</select>
</div>


</div>

@code {
private CultureInfo[] supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("sk-SK"),
new CultureInfo("es-ES")
};

private CultureInfo Culture
{
get => CultureInfo.CurrentCulture;
set
{
// Prevent unnecessary navigation
if (!Equals(CultureInfo.CurrentCulture, value) && !Equals(CultureInfo.CurrentUICulture, value))
{
var cultureEscaped = Uri.EscapeDataString(value.Name);
NavigationManager.NavigateTo($"/culture?culture={cultureEscaped}", true);
}
}
}

protected override void OnInitialized()
{
Culture = CultureInfo.CurrentCulture;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
height: 3.5rem;
display: flex;
align-items: center;
}

@media (max-width: 769px) {
.IAmHereIndicator {
display: none;
}
}
7 changes: 7 additions & 0 deletions src/sanbox/integration/ix-integration-blazor/_Imports.razor
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,10 @@
@using AXSharp.Presentation.Blazor.Controls.RenderableContent
@using AXSharp.Connector
@using ix_integration_plc

@using Microsoft.Extensions.Localization
@using System.Globalization

@using ix_integration_plc.Resources
@inject IStringLocalizer<PlcStringResources> PlcLocalizer