-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Work In Progress Adding Support For Resx
I am refactoring the areas that parse json to use interfaces to perform all relevant operations so that it makes working with multiple file types easier since we use DI to solve file types instead of have every class know about file types!!
- Loading branch information
Showing
21 changed files
with
199 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Mocale.Providers.GitHub.Raw/Abstractions/IGithubRawConfig.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
namespace Mocale.Abstractions; | ||
|
||
public interface IExternalConfiguration | ||
{ | ||
/// <summary> | ||
/// The type of file being stored externally | ||
/// </summary> | ||
LocaleResourceType ResourceType { get; } | ||
|
||
/// <summary> | ||
/// The version prefix of the files, this will be prepended after the url & before the file name | ||
/// </summary> | ||
string? VersionPrefix { get; } | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
using System.Globalization; | ||
|
||
namespace Mocale.Abstractions; | ||
|
||
internal interface IExternalFileNameHelper | ||
{ | ||
string GetExpectedFileName(CultureInfo culture); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,10 @@ | ||
using System.Resources; | ||
|
||
namespace Mocale.Abstractions; | ||
|
||
internal interface ILocalizationParser | ||
{ | ||
Dictionary<string, string> ParseLocalizationString(string resourceString); | ||
Dictionary<string, string>? ParseLocalizationString(string resourceString); | ||
|
||
Dictionary<string, string> ParseLocalizationStream(Stream resourceStream); | ||
Dictionary<string, string>? ParseLocalizationStream(Stream resourceStream); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
namespace Mocale.Abstractions; | ||
|
||
internal interface IVersionPrefixHelper | ||
{ | ||
string ApplyVersionPrefix(string fileName); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
using System.Globalization; | ||
using Ardalis.GuardClauses; | ||
|
||
namespace Mocale.Helper; | ||
|
||
internal class ExternalJsonFileNameHelper : IExternalFileNameHelper | ||
{ | ||
private readonly IVersionPrefixHelper versionPrefixHelper; | ||
|
||
public ExternalJsonFileNameHelper(IVersionPrefixHelper versionPrefixHelper) | ||
{ | ||
this.versionPrefixHelper = Guard.Against.Null(versionPrefixHelper, nameof(versionPrefixHelper)); | ||
} | ||
|
||
public string GetExpectedFileName(CultureInfo culture) | ||
{ | ||
var fileName = $"{culture.Name}.json"; | ||
|
||
return versionPrefixHelper.ApplyVersionPrefix(fileName); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
using System.Globalization; | ||
using Ardalis.GuardClauses; | ||
|
||
namespace Mocale.Helper; | ||
internal class ExternalResxFileNameHelper : IExternalFileNameHelper | ||
{ | ||
private readonly IVersionPrefixHelper versionPrefixHelper; | ||
|
||
public ExternalResxFileNameHelper(IVersionPrefixHelper versionPrefixHelper) | ||
{ | ||
this.versionPrefixHelper = Guard.Against.Null(versionPrefixHelper, nameof(versionPrefixHelper)); | ||
} | ||
|
||
public string GetExpectedFileName(CultureInfo culture) | ||
{ | ||
var fileName = $"{culture.Name}.resx"; | ||
|
||
return versionPrefixHelper.ApplyVersionPrefix(fileName); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
using Ardalis.GuardClauses; | ||
|
||
namespace Mocale.Helper; | ||
internal class VersionPrefixHelper : IVersionPrefixHelper | ||
{ | ||
private readonly IExternalConfiguration externalConfiguration; | ||
|
||
public VersionPrefixHelper(IConfigurationManager<IExternalConfiguration> externalConfigurationManager) | ||
{ | ||
externalConfigurationManager = Guard.Against.Null(externalConfigurationManager, nameof(externalConfigurationManager)); | ||
|
||
this.externalConfiguration = externalConfigurationManager.Configuration; | ||
} | ||
|
||
public string ApplyVersionPrefix(string fileName) | ||
{ | ||
if (string.IsNullOrEmpty(externalConfiguration.VersionPrefix)) | ||
{ | ||
return fileName; | ||
} | ||
|
||
return string.Join("/", externalConfiguration.VersionPrefix, fileName); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
namespace Mocale.Parsers; | ||
|
||
internal class JsonLocalizationParser : ILocalizationParser | ||
{ | ||
public Dictionary<string, string>? ParseLocalizationStream(Stream resourceStream) | ||
{ | ||
throw new NotImplementedException(); | ||
} | ||
|
||
public Dictionary<string, string>? ParseLocalizationString(string resourceString) | ||
{ | ||
throw new NotImplementedException(); | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
using System.Resources; | ||
|
||
namespace Mocale.Parsers; | ||
internal class ResxLocalizationParser : ILocalizationParser | ||
{ | ||
public Dictionary<string, string>? ParseLocalizationStream(Stream resourceStream) | ||
{ | ||
var reader = new ResourceReader(resourceStream); | ||
|
||
//return resourceSet.Cast<DictionaryEntry>().ToDictionary(r => r.Key.ToString(), r => r.Value.ToString()) | ||
// ?? new Dictionary<string, string>(); | ||
|
||
throw new NotImplementedException(); | ||
} | ||
|
||
public Dictionary<string, string>? ParseLocalizationString(string resourceString) | ||
{ | ||
throw new NotImplementedException(); | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters