Aggiornata gestione vocabolario per traduzione

This commit is contained in:
Annamaria Sassi
2026-08-13 18:03:25 +02:00
parent 6648e0e3d4
commit d0bff2792d
9 changed files with 112 additions and 69 deletions
+12 -20
View File
@@ -326,26 +326,18 @@ namespace Test.UI.Components.Pages
{
if ((args != null && args.Count > 0))
{
if (!TradVocabulary.ContainsKey("ConfWind_Frame"))
TradVocabulary.Add("ConfWind_Frame", "Telaio");
if (!TradVocabulary.ContainsKey("ConfWind_Shape"))
TradVocabulary.Add("ConfWind_Shape", "Forma");
if (!TradVocabulary.ContainsKey("ConfWind_Dimension"))
TradVocabulary.Add("ConfWind_Dimension", "Dimensioni");
if (!TradVocabulary.ContainsKey("ConfWind_Threshold"))
TradVocabulary.Add("ConfWind_Threshold", "Soglia");
if (!TradVocabulary.ContainsKey("ConfWind_Tipology"))
TradVocabulary.Add("ConfWind_Tipology", "Tipolgia");
if (!TradVocabulary.ContainsKey("ConfWind_BottomRail"))
TradVocabulary.Add("ConfWind_BottomRail", "Zoccolo");
if (!TradVocabulary.ContainsKey("ConfWind_Quantity"))
TradVocabulary.Add("ConfWind_Quantity", "Quantità");
if (!TradVocabulary.ContainsKey("ConfWind_Joints"))
TradVocabulary.Add("ConfWind_Joints", "Giunzioni");
if (!TradVocabulary.ContainsKey("ConfWind_Element"))
TradVocabulary.Add("ConfWind_Element", "Elementi");
if (!TradVocabulary.ContainsKey("ConfWind_Reset"))
TradVocabulary.Add("ConfWind_Reset", "Reset");
if (!TradVocabulary.ContainsKey("CWFrame_Frame"))
TradVocabulary.Add("CWFrame_Frame", "Telaio");
if (!TradVocabulary.ContainsKey("CWFrame_Shape"))
TradVocabulary.Add("CWFrame_Shape", "Forma");
if (!TradVocabulary.ContainsKey("CWFrame_Dimension"))
TradVocabulary.Add("CWFrame_Dimension", "Dimensioni");
if (!TradVocabulary.ContainsKey("CWFrame_Threshold"))
TradVocabulary.Add("CWFrame_Threshold", "Soglia");
if (!TradVocabulary.ContainsKey("CW_Reset"))
TradVocabulary.Add("CW_Reset", "Reset");
if (!TradVocabulary.ContainsKey("CWTableC_Tree"))
TradVocabulary.Add("CWTableC_Tree", "Struttura");
}
}
+4 -4
View File
@@ -2,13 +2,13 @@
<div class="card-header bg-light bg-opacity-25">
<div class="d-flex justify-content-between align-items-center mt-2">
<div class="col-2 d-flex justify-content-between">
<h5>@Traduci("ConfWind_AreaFrame")</h5>
<h5>@Traduci("CWFrame_AreaFrame")</h5>
</div>
@if (SashGroupList.Count == 0 && SplitList.Count == 0)
{
<div class="col d-flex justify-content-between">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSash">@Traduci("ConfWind_AggSash")</button>
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSash">@Traduci("CWAreaF_AggSash")</button>
</div>
</div>
}
@@ -16,7 +16,7 @@
{
<div class="col d-flex justify-content-between">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSplit">@Traduci("ConfWind_AggSplit")</button>
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSplit">@Traduci("CWAreaF_AggSplit")</button>
</div>
</div>
}
@@ -24,7 +24,7 @@
{
<div class="col d-flex justify-content-between">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddInglesina">@Traduci("ConfWind_AggInglesina")</button>
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddInglesina">@Traduci("CWAreaF_AggInglesina")</button>
</div>
</div>
}
+11 -11
View File
@@ -4,7 +4,7 @@
<div class="card-header bg-light bg-opacity-25">
<div class="d-flex justify-content-between align-items-center">
<div class="px-2">
<h5>@Traduci("ConfWind_Frame")</h5>
<h5>@Traduci("CWFrame_Frame")</h5>
</div>
<div class="px-2">
<button class="btn btn-close" @onclick="ReqClose"></button>
@@ -18,7 +18,7 @@
{
<div class="row">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">@Traduci("ConfWind_Shape")</h6>
<h6 class="fw-bold">@Traduci("CWFrame_Shape")</h6>
</div>
@* <input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))"> *@
<div class="row">
@@ -36,7 +36,7 @@
else
{
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">@Traduci("ConfWind_Shape")</h6>
<h6 class="fw-bold">@Traduci("CWFrame_Shape")</h6>
</div>
<div class="row">
@foreach (var i in CurrFrameWindow.ShapeList)
@@ -55,7 +55,7 @@
<div class="row">
<div class="col-md-12 col-lg-12">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">@Traduci("ConfWind_Dimension")</h6>
<h6 class="fw-bold">@Traduci("CWFrame_Dimension")</h6>
</div>
<div class="row">
@foreach (FrameDimension dimension in CurrFrameWindow.DimensionList)
@@ -70,17 +70,17 @@
<div class="row">
<div class="col-md-12 col-lg-6">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">@Traduci("ConfWind_Threshold")</h6>
<h6 class="fw-bold">@Traduci("CWFrame_Threshold")</h6>
</div>
<div class="input-group mb-2">
@if (BaseUser)
{
<span class="input-group-text">@Traduci("ConfWind_Tipology")</span>
<span class="input-group-text">@Traduci("CWFrame_Tipology")</span>
<input type="text" readonly class="form-control" value="@(CurrFrameWindow.ThresholdList.FirstOrDefault(x => x.Type == SelThreshold)?.Name)">
}
else
{
<label class="input-group-text">@Traduci("ConfWind_Tipology")</label>
<label class="input-group-text">@Traduci("CWFrame_Tipology")</label>
<select class="form-select" @bind="SelThreshold">
@foreach (var item in CurrFrameWindow.ThresholdList)
{
@@ -94,10 +94,10 @@
@if (SashNotInBottom())
{
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">@Traduci("ConfWind_BottomRail")</h6>
<h6 class="fw-bold">@Traduci("CWFrame_BottomRail")</h6>
</div>
<div class="input-group mb-2">
<span class="input-group-text">@Traduci("ConfWind_Quantity")</span>
<span class="input-group-text">@Traduci("CWFrame_Quantity")</span>
@if (BaseUser)
{
<input type="number" readonly class="form-control" value="@FrameBottomRailQty">
@@ -119,7 +119,7 @@
<div class="col-md-12 col-lg-6">
<div class="row justify-content-between align-items-center pb-2" style="min-height: 2.5rem;">
<div class="col-md-4 d-flex justify-content-start align-items-center">
<h6 class="fw-bold">@Traduci("ConfWind_Joints")</h6>
<h6 class="fw-bold">@Traduci("CWFrame_Joints")</h6>
</div>
@if (BaseUser)
{
@@ -170,7 +170,7 @@
<div class="col-md-12 col-lg-6">
<div class="row justify-content-between align-items-center mb-4" style="min-height: 2.5rem;">
<div class="col d-flex justify-content-start align-items-center">
<h6 class="fw-bold">@Traduci("ConfWind_Element")</h6>
<h6 class="fw-bold">@Traduci("CWFrame_Element")</h6>
</div>
</div>
<div class="row g-3">
+10 -2
View File
@@ -1,5 +1,7 @@
using Egw.Window.Data;
using Microsoft.AspNetCore.Components;
using System.Diagnostics;
using System.Text.RegularExpressions;
using WebWindowComplex.Models;
namespace WebWindowComplex.Compo
@@ -80,11 +82,17 @@ namespace WebWindowComplex.Compo
protected override async Task OnInitializedAsync()
{
if (Vocabulary == null || Vocabulary.Count == 0)
var FrameVocab = Vocabulary.Where(x => x.Key.Contains("CWFrame_")).ToDictionary(x=>x.Key, y=>y.Value);
if(FrameVocab == null || FrameVocab.Count != 9)
{
List<string> tradList = new List<string>() { "ConfWind_Frame", "ConfWind_Shape", "ConfWind_Dimension", "ConfWind_Threshold", "ConfWind_Tipology", "ConfWind_BottomRail", "ConfWind_Quantity", "ConfWind_Joints", "ConfWind_Element" };
List<string> tradList = new List<string>() { "CWFrame_Frame", "CWFrame_Shape", "CWFrame_Dimension", "CWFrame_Threshold", "CWFrame_Tipology", "CWFrame_BottomRail", "CWFrame_Quantity", "CWFrame_Joints", "CWFrame_Element" };
await EC_ReqTraduzione.InvokeAsync(tradList);
}
//if (Vocabulary == null || Vocabulary.Count == 0)
//{
// List<string> tradList = new List<string>() { "ConfWind_Frame", "ConfWind_Shape", "ConfWind_Dimension", "ConfWind_Threshold", "ConfWind_Tipology", "ConfWind_BottomRail", "ConfWind_Quantity", "ConfWind_Joints", "ConfWind_Element" };
// await EC_ReqTraduzione.InvokeAsync(tradList);
//}
}
#endregion Protected Properties
+28
View File
@@ -0,0 +1,28 @@
[
"CW_Reset",
"CW_Save",
"CW_Close",
"CWFrame_BottomRail",
"CWFrame_Dimension",
"CWFrame_Element",
"CWFrame_Frame",
"CWFrame_Joints",
"CWFrame_Quantity",
"CWFrame_Shape",
"CWFrame_Threshold",
"CWFrame_Tipology",
"CWFrame_AreaFrame",
"CWAreaF_AggSash",
"CWAreaF_AggSplit",
"CWAreaF_AggInglesina",
"CWTableC_MissingParam",
"CWTableC_MissingJWD",
"CWTableC_ValidError",
"CWTableC_ConfigError",
"CWTableC_MissingValue",
"CWTableC_Tree",
"CWTableC_General",
"CWFill_AllFill",
"CWFill_AllGlass",
"CWFill_AllWood"
]
+17 -17
View File
@@ -10,10 +10,10 @@
<div class="d-flex flex-column">
<div class="card text-center shadow rounded">
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("CW_Close")</button>
</div>
<div class="alert alert-warning">
<div class="fs-3">@Traduci("ConfWind_MissingParam")</div>
<div class="fs-3">@Traduci("CWTableC_MissingParam")</div>
</div>
</div>
</div>
@@ -23,10 +23,10 @@
<div class="d-flex flex-column">
<div class="card text-center shadow rounded">
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("CW_Close")</button>
</div>
<div class="alert alert-warning">
<div class="fs-3">@Traduci("ConfWind_MissingJWD")</div>
<div class="fs-3">@Traduci("CWTableC_MissingJWD")</div>
</div>
</div>
</div>
@@ -38,7 +38,7 @@
{
<div class="d-flex flex-column">
<div class="alert alert-danger">
<div class="fs-3">@Traduci("ConfWind_ValidError")</div>
<div class="fs-3">@Traduci("CWTableC_ValidError")</div>
<div class="col-12 col-md-6 col-lg-3">
<ul class="list-group">
@@ -55,7 +55,7 @@
{
<div class="d-flex flex-column">
<div class="alert alert-danger">
<div class="fs-3">@Traduci("ConfWind_ConfigError")</div>
<div class="fs-3">@Traduci("CWTableC_ConfigError")</div>
<div class="col-12">
<ul class="list-group">
@foreach (var item in listErrLink)
@@ -76,10 +76,10 @@
<div class="col-md-12 col-lg-6 d-grid px-2 d-md-flex justify-content-md-start flex-wrap">
<ul class="nav nav-tabs card-header-tabs">
<li class="nav-item m-1">
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">@Traduci("ConfWind_Tree")</button>
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">@Traduci("CWTableC_Tree")</button>
</li>
<li class="nav-item m-1">
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">@Traduci("ConfWind_General")</button>
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">@Traduci("CWTableC_General")</button>
</li>
@* @if (FrameWindow.Shape == Json.WindowConst.Shapes.ARC ||
FrameWindow.Shape == Json.WindowConst.Shapes.ARC_FULL ||
@@ -93,9 +93,9 @@
</ul>
</div>
<div class="col-md-12 col-lg-6 d-grid gap-4 px-4 d-md-flex justify-content-md-end align-items-center flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">@Traduci("ConfWind_Reset")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">@Traduci("ConfWind_Save")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">@Traduci("CW_Reset")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">@Traduci("CW_Save")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("CW_Close")</button>
</div>
</div>
</div>
@@ -240,26 +240,26 @@
<div class="card-body py-2">
<div class="d-flex justify-content-between align-items-center">
<div class="col-4 d-flex justify-content-left">
<h5 class="text-center text-nowrap">@Traduci("ConfWind_AllFill")</h5>
<h5 class="text-center text-nowrap">@Traduci("CWFill_AllFill")</h5>
</div>
<div class="input-group mb-2 justify-content-center">
@if (BaseUser)
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">@Traduci("CWFill_AllGlass")</button>
}
else
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">@Traduci("CWFill_AllGlass")</button>
}
</div>
<div class="input-group mb-2 justify-content-center">
@if (BaseUser)
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">@Traduci("CWFill_AllWood")</button>
}
else
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">@Traduci("CWFill_AllWood")</button>
}
</div>
</div>
@@ -362,7 +362,7 @@
{
<div class="d-flex flex-column">
<div class="alert alert-warning">
<div class="fs-3">Mancata corrispondenza valori:</div>
<div class="fs-3">@Traduci("CWTableC_MissingValue"):</div>
<div class="col-12 col-md-6 col-lg-3">
<ul class="list-group">
@foreach (var item in listWarnings)
+19 -13
View File
@@ -2,6 +2,8 @@
using Microsoft.AspNetCore.Components;
using Newtonsoft.Json;
using NLog;
using System.Diagnostics;
using System.Text.Json;
using WebWindowComplex.Compo;
using WebWindowComplex.DTO;
using WebWindowComplex.Json;
@@ -159,11 +161,25 @@ namespace WebWindowComplex
protected override async Task OnInitializedAsync()
{
if (Vocabulary == null || Vocabulary.Count == 0)
// Ricava il percorso assoluto sul disco del server
string filePath = Path.Combine("Data", "Lemmi.json");
if (File.Exists(filePath))
{
List<string> tradList = new List<string>() { "ConfWind_MissingParam", "ConfWind_MissingJWD", "ConfWind_ValidError", "ConfWind_ConfigError", "ConfWind_Tree", "ConfWind_General", "ConfWind_Reset", "ConfWind_Save", "ConfWind_Close", "ConfWind_AllFill", "ConfWind_AllGlass", "ConfWind_AllWood" };
await EC_ReqTraduzione.InvokeAsync(tradList);
string jsonText = await File.ReadAllTextAsync(filePath);
List<string>? tradList = JsonConvert.DeserializeObject<List<string>>(jsonText);
if(tradList != null)
{
await EC_ReqTraduzione.InvokeAsync(tradList);
}
}
//if (Vocabulary == null || Vocabulary.Count == 0)
//{
// List<string> tradList = new List<string>() { "ConfWind_MissingParam", "ConfWind_MissingJWD", "ConfWind_ValidError", "ConfWind_ConfigError", "ConfWind_Tree", "ConfWind_General", "ConfWind_Reset", "ConfWind_Save", "ConfWind_Close", "ConfWind_AllFill", "ConfWind_AllGlass", "ConfWind_AllWood" };
// await EC_ReqTraduzione.InvokeAsync(tradList);
//}
}
/// <summary>
@@ -458,16 +474,6 @@ namespace WebWindowComplex
set => m_sashDimEditList = value;
}
private string SelColorMaterial { get; set; } = "";
private string SelFamilyHardware { get; set; } = "";
private string SelGlass { get; set; } = "";
private string SelWood { get; set; } = ""!;
private string SelProfile { get; set; } = "";
private List<Split> SplitList
{
get => m_SplitList;
+6 -1
View File
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.1315</Version>
<Version>3.1.8.1318</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
@@ -212,6 +212,11 @@
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.1315</Version>
<Version>3.1.8.1318</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione JWD per LUX</Description>
@@ -527,6 +527,10 @@