Skip to content

Commit 0cc369e

Browse files
committed
Better regex for finding translation keys
1 parent 9f702f2 commit 0cc369e

2 files changed

Lines changed: 19 additions & 17 deletions

File tree

source/IdentityServer3.Contrib.Localization.UI/LocalizedViewLoader.cs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,7 @@ public string Load(string name)
3636
{
3737
value = embedded.Load(name);
3838
}
39-
return Translate(value);
40-
}
41-
42-
private string Translate(string html)
43-
{
44-
var translator = TranslatorHelper.Instance.GetTranslatorForCurrentCulture();
45-
const string pattern = @"\[\[(\S+)\]\]";
46-
var matches =
47-
from Match match in Regex.Matches(html, pattern)
48-
select match.Groups[1].Value;
49-
50-
foreach (var match in matches)
51-
{
52-
var translated = translator.Translate(match);
53-
html = html.Replace("[[" + match + "]]", translated);
54-
}
55-
return html;
39+
return TranslatorHelper.Instance.Translate(value);
5640
}
5741
}
5842
}

source/IdentityServer3.Contrib.Localization.UI/TranslatorHelper.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
using System;
22
using System.Collections.Generic;
33
using System.IO;
4+
using System.Linq;
45
using System.Reflection;
6+
using System.Text.RegularExpressions;
57
using System.Threading;
68
using SecondLanguage;
79

@@ -79,5 +81,21 @@ private string AssemblyDirectory
7981
return Path.GetDirectoryName(path);
8082
}
8183
}
84+
85+
public string Translate(string html)
86+
{
87+
var translator = GetTranslatorForCurrentCulture();
88+
const string pattern = @"\[\[([a-zA-Z0-9\.]+)\]\]";
89+
var matches =
90+
from Match match in Regex.Matches(html, pattern)
91+
select match.Groups[1].Value;
92+
93+
foreach (var match in matches)
94+
{
95+
var translated = translator.Translate(match);
96+
html = html.Replace("[[" + match + "]]", translated);
97+
}
98+
return html;
99+
}
82100
}
83101
}

0 commit comments

Comments
 (0)