Skip to content

Commit e5050d5

Browse files
committed
imp - Loop through resources for localization
--- We need to loop through resources for localization. --- Type: imp Breaking: False Doc Required: False Backport Required: False Part: 1/1
1 parent d2d5416 commit e5050d5

File tree

8 files changed

+47
-26
lines changed

8 files changed

+47
-26
lines changed

public/VisualCard.Calendar/Languages/LanguageTools.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,20 @@
1717
// along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
//
1919

20+
using ResourceLab.Management;
2021
using MainLangTools = VisualCard.Common.Languages.LanguageTools;
2122

2223
namespace VisualCard.Calendar.Languages
2324
{
2425
internal static class LanguageTools
2526
{
27+
private const string LocalName = "VisualCard.Calendar";
28+
2629
internal static string GetLocalized(string id)
2730
{
28-
if (!MainLangTools.resourceManagers.ContainsKey("VisualCard.Calendar"))
29-
MainLangTools.resourceManagers.Add("VisualCard.Calendar", new("VisualCard.Calendar.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly));
31+
// Add local resource
32+
if (!ResourcesManager.ResourceManagerExists(LocalName))
33+
ResourcesManager.AddResourceManager(LocalName, new($"{LocalName}.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly));
3034
return MainLangTools.GetLocalized(id);
3135
}
3236
}

public/VisualCard.Calendar/VisualCard.Calendar.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32-
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.1" />
33-
<PackageReference Include="Textify.Offline" Version="2.13.3" />
32+
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.2" />
33+
<PackageReference Include="Textify.Offline" Version="2.13.4" />
3434
</ItemGroup>
3535

3636
<ItemGroup>

public/VisualCard.Common/Languages/LanguageTools.cs

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,33 @@
1717
// along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
//
1919

20-
using System.Collections.Generic;
21-
using System.Resources;
20+
using ResourceLab.Management;
2221

2322
namespace VisualCard.Common.Languages
2423
{
2524
internal static class LanguageTools
2625
{
27-
internal static readonly Dictionary<string, ResourceManager> resourceManagers = new()
28-
{
29-
{ "VisualCard.Common", new("VisualCard.Common.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly) }
30-
};
26+
private const string LocalName = "VisualCard.Common";
3127

3228
internal static string GetLocalized(string id)
3329
{
34-
foreach (var resourceManager in resourceManagers.Values)
30+
// Add local resource
31+
if (!ResourcesManager.ResourceManagerExists(LocalName))
32+
ResourcesManager.AddResourceManager(LocalName, new($"{LocalName}.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly));
33+
34+
// Loop through all resource managers
35+
foreach (var resourceManager in ResourcesManager.ResourceManagers.Values)
3536
{
36-
string resourceLocalization = resourceManager.GetString(id);
37-
if (!string.IsNullOrEmpty(resourceLocalization))
38-
return resourceLocalization;
37+
try
38+
{
39+
string resourceLocalization = resourceManager.GetString(id);
40+
if (!string.IsNullOrEmpty(resourceLocalization))
41+
return resourceLocalization;
42+
}
43+
catch
44+
{
45+
return id;
46+
}
3947
}
4048
return id;
4149
}

public/VisualCard.Common/VisualCard.Common.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32-
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.1" />
32+
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.2" />
33+
<PackageReference Include="ResourceLab" Version="1.0.0" />
3334
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
34-
<PackageReference Include="Textify.Offline" Version="2.13.3" />
35-
<PackageReference Include="Textify.Offline.Data" Version="2.13.3" />
35+
<PackageReference Include="Textify.Offline" Version="2.13.4" />
36+
<PackageReference Include="Textify.Offline.Data" Version="2.13.4" />
3637
</ItemGroup>
3738

3839
</Project>

public/VisualCard.Extras/Languages/LanguageTools.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,20 @@
1717
// along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
//
1919

20+
using ResourceLab.Management;
2021
using MainLangTools = VisualCard.Common.Languages.LanguageTools;
2122

2223
namespace VisualCard.Extras.Languages
2324
{
2425
internal static class LanguageTools
2526
{
27+
private const string LocalName = "VisualCard.Extras";
28+
2629
internal static string GetLocalized(string id)
2730
{
28-
if (!MainLangTools.resourceManagers.ContainsKey("VisualCard.Extras"))
29-
MainLangTools.resourceManagers.Add("VisualCard.Extras", new("VisualCard.Extras.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly));
31+
// Add local resource
32+
if (!ResourcesManager.ResourceManagerExists(LocalName))
33+
ResourcesManager.AddResourceManager(LocalName, new($"{LocalName}.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly));
3034
return MainLangTools.GetLocalized(id);
3135
}
3236
}

public/VisualCard.Extras/VisualCard.Extras.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32-
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.1" />
32+
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.2" />
3333
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="9.0.6" />
34-
<PackageReference Include="Nettify" Version="1.7.1" />
34+
<PackageReference Include="Nettify" Version="1.7.2" />
3535
<PackageReference Include="QRCoder" Version="1.6.0" />
3636
</ItemGroup>
3737

public/VisualCard/Languages/LanguageTools.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,20 @@
1717
// along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
//
1919

20+
using ResourceLab.Management;
2021
using MainLangTools = VisualCard.Common.Languages.LanguageTools;
2122

2223
namespace VisualCard.Languages
2324
{
2425
internal static class LanguageTools
2526
{
27+
private const string LocalName = "VisualCard";
28+
2629
internal static string GetLocalized(string id)
2730
{
28-
if (!MainLangTools.resourceManagers.ContainsKey("VisualCard"))
29-
MainLangTools.resourceManagers.Add("VisualCard", new("VisualCard.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly));
31+
// Add local resource
32+
if (!ResourcesManager.ResourceManagerExists(LocalName))
33+
ResourcesManager.AddResourceManager(LocalName, new($"{LocalName}.Resources.Languages.Output.Localizations", typeof(LanguageTools).Assembly));
3034
return MainLangTools.GetLocalized(id);
3135
}
3236
}

public/VisualCard/VisualCard.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
</ItemGroup>
2727

2828
<ItemGroup>
29-
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.1" />
30-
<PackageReference Include="Textify.Offline" Version="2.13.3" />
31-
<PackageReference Include="Textify.Offline.Data" Version="2.13.3" />
29+
<PackageReference Include="Aptivestigate.Serilog" Version="1.3.2" />
30+
<PackageReference Include="Textify.Offline" Version="2.13.4" />
31+
<PackageReference Include="Textify.Offline.Data" Version="2.13.4" />
3232
</ItemGroup>
3333

3434
<ItemGroup>

0 commit comments

Comments
 (0)