Skip to content

Commit 6a6a823

Browse files
authored
Merge pull request #489 from Inxton/fix-control-labels-and-values-not-translated-into-given-culture
fix control labels and values not translated into given culture
2 parents f11e60a + e321cba commit 6a6a823

2 files changed

Lines changed: 38 additions & 32 deletions

File tree

src/AXSharp.compiler/src/ixr/Program.cs

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
// See https://aka.ms/new-console-template for more information
22
using AX.ST.Semantic;
3+
using AX.ST.Semantic.Model;
4+
using AX.ST.Semantic.Model.Declarations;
5+
using AX.ST.Semantic.Pragmas;
36
using AX.ST.Syntax.Parser;
47
using AX.ST.Syntax.Tree;
58
using AX.Text;
69
using AX.Text.Diagnostics;
710
using AXSharp.Compiler;
811
using AXSharp.ixc_doc;
9-
using System;
10-
using CommandLine;
11-
using System.Reflection;
12-
using System.Text;
13-
using CliWrap;
14-
using System.Runtime.InteropServices;
15-
using System.Runtime.CompilerServices;
16-
using AX.ST.Semantic.Model;
1712
using AXSharp.ixr_doc;
13+
using CliWrap;
14+
using CommandLine;
1815
using Microsoft.CodeAnalysis;
1916
using Serilog.Parsing;
20-
using static System.Net.Mime.MediaTypeNames;
17+
using System;
18+
using System.Reflection;
19+
using System.Runtime.CompilerServices;
20+
using System.Runtime.InteropServices;
21+
using System.Text;
2122
using System.Text.RegularExpressions;
23+
using static System.Net.Mime.MediaTypeNames;
2224

2325

2426
const string Logo =
@@ -94,30 +96,39 @@ void IterateSyntaxTreeForStringLiterals(ISyntaxNode root, LocalizedStringWrapper
9496
{
9597
foreach (var literalSyntax in GetChildNodesRecursive(root).OfType<ILiteralSyntax>())
9698
{
97-
var token = literalSyntax.Tokens.First();
9899
AddToDictionaryIfLocalizedStringInLiterals(literalSyntax, lw, fileName);
99100
}
100101
}
101102

102-
103-
104103
void IterateSyntaxTreeForPragmas(ISyntaxNode root, LocalizedStringWrapper lw, string fileName)
105104
{
106-
foreach (var pragmaSyntax in GetChildNodesRecursive(root).OfType<PragmaSyntax>())
105+
foreach (var storage in GetChildNodesRecursive(root).OfType<IVariableDeclarationSyntax>())
107106
{
108-
var token = pragmaSyntax;
109-
if (lw.IsAttributeNamePragmaToken(token.PragmaContent))
107+
storage.GetLeadingPragmas().ToList().ForEach(pragmaSyntax =>
110108
{
111-
AddToDictionaryIfLocalizedString(token, lw, fileName);
112-
}
109+
var token = pragmaSyntax as PragmaSyntax;
110+
if (lw.IsAttributeNamePragmaToken(pragmaSyntax.Content))
111+
{
112+
AddToDictionaryIfLocalizedStringInPragmas(token, lw, fileName);
113+
}
114+
});
115+
}
116+
foreach (var storage in GetChildNodesRecursive(root).OfType<IDeclarationSyntax>())
117+
{
118+
storage.GetLeadingPragmas().ToList().ForEach(pragmaSyntax =>
119+
{
120+
var token = pragmaSyntax;
121+
if (lw.IsAttributeNamePragmaToken(pragmaSyntax.Content))
122+
{
123+
AddToDictionaryIfLocalizedStringInPragmas(token, lw, fileName);
124+
}
125+
});
113126
}
114127
}
115128

116-
void AddToDictionaryIfLocalizedString(PragmaSyntax token, LocalizedStringWrapper lw, string fileName)
129+
void AddToDictionaryIfLocalizedStringInPragmas(PragmaSyntax token, LocalizedStringWrapper lw, string fileName)
117130
{
118-
// if is valid token
119-
if(IsStringToken(token) || IsPragmaToken(token))
120-
{
131+
121132
// try to acquire localized string
122133
var localizedStringList = lw.TryToGetLocalizedStrings(token.PragmaContent);
123134

@@ -142,8 +153,7 @@ void AddToDictionaryIfLocalizedString(PragmaSyntax token, LocalizedStringWrapper
142153
// add id and wrapper to dictionary
143154
lw.LocalizedStringsDictionary.TryAdd(id, wrapper);
144155
}
145-
}
146-
}
156+
}
147157
}
148158

149159
void AddToDictionaryIfLocalizedStringInLiterals(ILiteralSyntax literal, LocalizedStringWrapper lw, string fileName)
@@ -158,9 +168,9 @@ void AddToDictionaryIfLocalizedStringInLiterals(ILiteralSyntax literal, Localize
158168
// try to acquire localized string
159169
var localizedStringList = lw.TryToGetLocalizedStrings(token.FullText);
160170

161-
if (localizedStringList == null)
171+
if(localizedStringList == null)
162172
{
163-
return;
173+
continue; // ✓ Skip to next token
164174
}
165175

166176
foreach (string localizedString in localizedStringList)
@@ -184,12 +194,8 @@ void AddToDictionaryIfLocalizedStringInLiterals(ILiteralSyntax literal, Localize
184194
}
185195
}
186196
bool IsPragmaToken(PragmaSyntax token)
187-
{
188-
//if(token.SyntaxKind == SyntaxKind.PragmaToken)
189-
//{
190-
// return true;
191-
//}
192-
return false;
197+
{
198+
return true;
193199
}
194200

195201
bool IsStringToken(PragmaSyntax token)

src/AXSharp.compiler/src/ixr/Properties/launchSettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
},
1010
"app-withref": {
1111
"commandName": "Project",
12-
"workingDirectory": "c:\\W\\Develop\\gh\\inxton\\simatic-ax\\axopen.templates\\axopen.template.simple\\ax\\"
12+
"workingDirectory": "C:\\W\\Develop\\gh\\inxton\\simatic-ax\\axopen.templates\\axopen\\src\\inspectors\\ctrl"
1313
}
1414
}
1515
}

0 commit comments

Comments
 (0)