├── src ├── libs │ ├── SoloX.BlazorJsonLocalization │ │ ├── .gitignore │ │ ├── AssemblyProperties.cs │ │ ├── Helpers │ │ │ ├── NameHelper.cs │ │ │ ├── Impl │ │ │ │ ├── AJsonMapData.cs │ │ │ │ ├── JsonMapDataValue.cs │ │ │ │ └── JsonMapDataDictionary.cs │ │ │ ├── ArgumentNullExceptionLegacy.cs │ │ │ ├── JsonHelper.cs │ │ │ └── CultureInfoHelper.cs │ │ ├── Services │ │ │ ├── ICultureInfoService.cs │ │ │ ├── Impl │ │ │ │ ├── CultureInfoService.cs │ │ │ │ ├── ExtensionResolverService.cs │ │ │ │ └── HttpCacheService.cs │ │ │ ├── IHttpCacheService.cs │ │ │ ├── IExtensionResolverService.cs │ │ │ └── ICacheService.cs │ │ ├── Core │ │ │ ├── AJsonExtensionOptions.cs │ │ │ ├── AExtensionOptions.cs │ │ │ ├── IExtensionOptionsContainer.cs │ │ │ └── Impl │ │ │ │ └── ExtensionOptionsContainer.cs │ │ ├── HttpClientJsonLocalizationOptions.cs │ │ ├── Key.cs │ │ └── JsonLocalizationOptions.cs │ ├── SoloX.BlazorJsonLocalization.Attributes │ │ ├── .gitignore │ │ ├── SoloX.BlazorJsonLocalization.Attributes.csproj │ │ ├── SubLocalizerAttribute.cs │ │ ├── TranslateAttribute.cs │ │ ├── TranslateArgAttribute.cs │ │ ├── TranslateSubAttribute.cs │ │ └── LocalizerAttribute.cs │ ├── SoloX.BlazorJsonLocalization.ServerSide │ │ ├── .gitignore │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── ServiceCollectionExtensions.cs │ │ ├── SoloX.BlazorJsonLocalization.ServerSide.csproj │ │ └── JsonLocalizationOptionsBuilderExtensions.cs │ └── SoloX.BlazorJsonLocalization.WebAssembly │ │ ├── .gitignore │ │ ├── SoloX.BlazorJsonLocalization.WebAssembly.csproj │ │ ├── ServiceCollectionExtensions.cs │ │ └── JsonLocalizationOptionsBuilderExtensions.cs ├── tools.examples │ └── SoloX.BlazorJsonLocalization.Generator.Sample │ │ ├── .gitignore │ │ ├── Test.cs │ │ ├── Components │ │ ├── MyComponent.cs │ │ └── IMyComponentStringLocalizer.cs │ │ ├── ITestStringLocalizer.cs │ │ └── Program.cs ├── tests │ ├── SoloX.BlazorJsonLocalization.ITests │ │ ├── .gitignore │ │ ├── Resources │ │ │ ├── Global.json │ │ │ ├── IGlobal.fr.json │ │ │ ├── IGlobal.json │ │ │ ├── Fallback.json │ │ │ ├── ISpecific.json │ │ │ ├── Specific.json │ │ │ ├── Fallback.fr.json │ │ │ ├── ISpecific.fr.json │ │ │ ├── JsonLocalyserSetupTest.fr.json │ │ │ └── JsonLocalyserSetupTest.json │ │ ├── Global.cs │ │ ├── IGlobal.cs │ │ ├── ISpecific.cs │ │ └── Specific.cs │ ├── SoloX.BlazorJsonLocalization.UTests │ │ ├── .gitignore │ │ ├── Resources │ │ │ ├── SatelliteFileProvider │ │ │ │ ├── Test.json │ │ │ │ └── Test.fr.json │ │ │ ├── EmbeddedJsonLocalizationExtensionServiceTest.fr.json │ │ │ ├── EmbeddedJsonLocalizationExtensionServiceTest.json │ │ │ └── EmbeddedJsonLocalizationExtensionUsingAccentsTest.json │ │ ├── Samples │ │ │ └── Extension │ │ │ │ ├── MyOptions.cs │ │ │ │ └── MyExtensionService.cs │ │ ├── Services │ │ │ ├── CultureInfoServiceTest.cs │ │ │ └── ExtensionResolverServiceTest.cs │ │ ├── Helpers │ │ │ └── ResourcePathHelperTest.cs │ │ ├── Core │ │ │ ├── ConstStringLocalizerTest.cs │ │ │ └── SatelliteFileProviderFactoryTest.cs │ │ └── SoloX.BlazorJsonLocalization.UTests.csproj │ ├── SoloX.BlazorJsonLocalization.ServerSide.UTests │ │ ├── .gitignore │ │ └── SoloX.BlazorJsonLocalization.ServerSide.UTests.csproj │ └── SoloX.BlazorJsonLocalization.WebAssembly.UTests │ │ ├── .gitignore │ │ └── SoloX.BlazorJsonLocalization.WebAssembly.UTests.csproj ├── tools │ ├── SoloX.BlazorJsonLocalization.Generator │ │ └── .gitignore │ ├── SoloX.BlazorJsonLocalization.Tools.Core │ │ ├── .gitignore │ │ ├── AssemblyProperties.cs │ │ ├── Patterns │ │ │ ├── Itf │ │ │ │ ├── MyObject.cs │ │ │ │ ├── IMyObjectSub2StringLocalizerPattern.cs │ │ │ │ ├── IMyObjectStringLocalizerPattern.cs │ │ │ │ └── IMyObjectSubStringLocalizerPattern.cs │ │ │ ├── Impl │ │ │ │ └── MyObjectSub2StringLocalizerPattern.cs │ │ │ └── LocalizerExtensions.cs │ │ ├── Selectors │ │ │ ├── SelectorResolver.cs │ │ │ ├── LocalizerArgumentSelector.cs │ │ │ └── LocalizerPropertySelector.cs │ │ ├── IReader.cs │ │ ├── ILocalizationGeneratorResults.cs │ │ ├── ProjectParameters.cs │ │ └── Impl │ │ │ ├── LocalizationGeneratorResults.cs │ │ │ ├── FileReader.cs │ │ │ └── Localization │ │ │ └── ALocalizationData.cs │ ├── SoloX.BlazorJsonLocalization.Tools.Command │ │ ├── .gitignore │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ └── SoloX.BlazorJsonLocalization.Tools.Command.csproj │ └── SoloX.BlazorJsonLocalization.Tools.Extensions │ │ ├── .gitignore │ │ ├── SoloX.BlazorJsonLocalization.Tools.Extensions.csproj │ │ └── ToolsGeneratorExtensions.cs ├── examples │ ├── SoloX.BlazorJsonLocalization.Example.Components.Embedded2 │ │ ├── _Imports.razor │ │ ├── Resources │ │ │ └── Pages │ │ │ │ ├── Component1.fr.json │ │ │ │ └── Component1.json │ │ ├── Pages │ │ │ ├── Component1.razor │ │ │ └── Component1.razor.cs │ │ ├── ComponentsEmbeddedExtensions.cs │ │ └── SoloX.BlazorJsonLocalization.Example.Components.Embedded2.csproj │ ├── SoloX.BlazorJsonLocalization.Example.Components.Embedded3 │ │ ├── _Imports.razor │ │ ├── Pages │ │ │ ├── test.json │ │ │ ├── Component2.razor.fr.json │ │ │ ├── Component2.razor.json │ │ │ ├── Component2.razor │ │ │ └── Component2.razor.cs │ │ ├── ComponentsEmbeddedExtensions.cs │ │ └── SoloX.BlazorJsonLocalization.Example.Components.Embedded3.csproj │ ├── SoloX.BlazorJsonLocalization.Example.Components.Embedded │ │ ├── _Imports.razor │ │ ├── Resources │ │ │ ├── SharedResource.json │ │ │ ├── SharedResource.fr.json │ │ │ └── Pages │ │ │ │ ├── Index.json │ │ │ │ └── Index.fr.json │ │ ├── SharedResource.cs │ │ ├── Pages │ │ │ ├── Index.razor.cs │ │ │ └── Index.razor │ │ ├── ComponentsEmbeddedExtensions.cs │ │ └── SoloX.BlazorJsonLocalization.Example.Components.Embedded.csproj │ ├── SoloX.BlazorJsonLocalization.Example.Components.StaticAssets │ │ ├── _Imports.razor │ │ ├── wwwroot │ │ │ └── Resources │ │ │ │ └── Pages │ │ │ │ ├── Counter.json │ │ │ │ ├── Counter-en.json │ │ │ │ └── Counter-fr.json │ │ ├── Pages │ │ │ ├── Counter.razor │ │ │ └── Counter.razor.cs │ │ ├── SoloX.BlazorJsonLocalization.Example.Components.StaticAssets.csproj │ │ └── ComponentsStaticAssetsExtensions.cs │ ├── SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization │ │ ├── Resources │ │ │ ├── IGlobal.fr.json │ │ │ ├── IGlobal.json │ │ │ ├── Fallback.fr.json │ │ │ └── Fallback.json │ │ ├── IGlobal.cs │ │ ├── SharedLocalizationExtensions.cs │ │ └── SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization.csproj │ ├── SoloX.BlazorJsonLocalization.Example.WebApp │ │ ├── SoloX.BlazorJsonLocalization.Example.WebApp.Client │ │ │ ├── wwwroot │ │ │ │ ├── Resources │ │ │ │ │ ├── Fallback.en.json │ │ │ │ │ ├── Fallback.json │ │ │ │ │ ├── Fallback.fr.json │ │ │ │ │ └── Pages │ │ │ │ │ │ ├── Counter.json │ │ │ │ │ │ ├── Counter.en.json │ │ │ │ │ │ └── Counter.fr.json │ │ │ │ ├── appsettings.json │ │ │ │ └── appsettings.Development.json │ │ │ ├── _Imports.razor │ │ │ ├── Pages │ │ │ │ └── Counter.razor │ │ │ ├── SoloX.BlazorJsonLocalization.Example.WebApp.Client.csproj │ │ │ └── Program.cs │ │ └── SoloX.BlazorJsonLocalization.Example.WebApp │ │ │ ├── wwwroot │ │ │ ├── Resources │ │ │ │ └── Components │ │ │ │ │ └── Pages │ │ │ │ │ ├── Home.en.json │ │ │ │ │ ├── Home.json │ │ │ │ │ └── Home.fr.json │ │ │ └── favicon.png │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── Components │ │ │ ├── Pages │ │ │ │ ├── Home.razor │ │ │ │ ├── Error.razor │ │ │ │ └── Weather.razor │ │ │ ├── Routes.razor │ │ │ ├── _Imports.razor │ │ │ ├── Layout │ │ │ │ ├── MainLayout.razor │ │ │ │ └── NavMenu.razor │ │ │ └── App.razor │ │ │ ├── SoloX.BlazorJsonLocalization.Example.WebApp.csproj │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ └── Program.cs │ ├── SoloX.BlazorJsonLocalization.Example.Wasm │ │ ├── wwwroot │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── _Imports.razor │ │ ├── App.razor │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Shared │ │ │ ├── NavMenu.razor.css │ │ │ ├── MainLayout.razor.css │ │ │ ├── NavMenu.razor │ │ │ └── MainLayout.razor │ │ └── SoloX.BlazorJsonLocalization.Example.Wasm.csproj │ └── SoloX.BlazorJsonLocalization.Example.ServerSide │ │ ├── wwwroot │ │ ├── favicon.ico │ │ └── css │ │ │ ├── open-iconic │ │ │ ├── font │ │ │ │ └── fonts │ │ │ │ │ ├── open-iconic.eot │ │ │ │ │ ├── open-iconic.otf │ │ │ │ │ ├── open-iconic.ttf │ │ │ │ │ └── open-iconic.woff │ │ │ └── ICON-LICENSE │ │ │ └── site.css │ │ ├── appsettings.json │ │ ├── appsettings.Development.json │ │ ├── _Imports.razor │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── App.razor │ │ ├── Pages │ │ ├── Error.cshtml.cs │ │ ├── _Host.cshtml │ │ └── Error.cshtml │ │ ├── SoloX.BlazorJsonLocalization.Example.ServerSide.csproj │ │ ├── Controllers │ │ └── CultureController.cs │ │ └── Shared │ │ ├── NavMenu.razor.css │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ └── MainLayout.razor ├── tools.tests │ ├── SoloX.BlazorJsonLocalization.Generator.ITests │ │ ├── .gitignore │ │ └── Usings.cs │ ├── SoloX.BlazorJsonLocalization.Tools.Core.ITests │ │ └── .gitignore │ ├── SoloX.BlazorJsonLocalization.Tools.Core.UTests │ │ ├── .gitignore │ │ ├── Usings.cs │ │ ├── FileReaderTest.cs │ │ └── SoloX.BlazorJsonLocalization.Tools.Core.UTests.csproj │ ├── SoloX.BlazorJsonLocalization.Generator.E2ETests │ │ └── .gitignore │ ├── SoloX.BlazorJsonLocalization.Tools.Command.ITests │ │ └── .gitignore │ ├── SoloX.BlazorJsonLocalization.Tools.Command.E2ETests │ │ └── .gitignore │ └── SoloX.BlazorJsonLocalization.Tools.Core.Samples │ │ ├── Component.cs │ │ ├── SampleSubLocalizerName │ │ ├── ISimpleSub.cs │ │ └── ISimple.cs │ │ ├── SampleWithSubLocalizer │ │ ├── ISimpleSubLocalizer.cs │ │ └── ISimpleLocalizer.cs │ │ ├── SampleWithTranslate │ │ └── ISimpleLocalizer.cs │ │ ├── SampleBasic │ │ └── ISimpleLocalizer.cs │ │ ├── SampleWithMultiLine │ │ └── IMultiLineLocalizer.cs │ │ ├── SampleMethodArg │ │ └── ISimpleLocalizer.cs │ │ ├── SampleWithSubLocalizerTranslate │ │ ├── ISimpleSubLocalizer.cs │ │ └── ISimpleLocalizer.cs │ │ └── SoloX.BlazorJsonLocalization.Tools.Core.Samples.csproj └── SharedProperties.props ├── coverlet.runsettings └── LICENSE /src/libs/SoloX.BlazorJsonLocalization/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools.examples/SoloX.BlazorJsonLocalization.Generator.Sample/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.g.cs 3 | /Resources/**/*.json -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.ITests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/Global.json: -------------------------------------------------------------------------------- 1 | { 2 | "Global": "This is global message..." 3 | } 4 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.UTests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.UTests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.UTests/Resources/SatelliteFileProvider/Test.json: -------------------------------------------------------------------------------- 1 | { 2 | "Test" : "TestValue" 3 | } -------------------------------------------------------------------------------- /src/libs/SoloX.BlazorJsonLocalization.Attributes/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Attributes.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/libs/SoloX.BlazorJsonLocalization.ServerSide/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.ServerSide.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/libs/SoloX.BlazorJsonLocalization.WebAssembly/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.WebAssembly.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/IGlobal.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Global": "C'est un message global..." 3 | } 4 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/IGlobal.json: -------------------------------------------------------------------------------- 1 | { 2 | "Global": "This is global message..." 3 | } 4 | -------------------------------------------------------------------------------- /src/tools/SoloX.BlazorJsonLocalization.Generator/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Generator.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools/SoloX.BlazorJsonLocalization.Tools.Core/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Tools.Core.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded2/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded3/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/Fallback.json: -------------------------------------------------------------------------------- 1 | { 2 | "Fallback": "This is a Fallback message..." 3 | } 4 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/ISpecific.json: -------------------------------------------------------------------------------- 1 | { 2 | "Specific": "This is specific message..." 3 | } 4 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/Specific.json: -------------------------------------------------------------------------------- 1 | { 2 | "Specific": "This is specific message..." 3 | } 4 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.UTests/Resources/SatelliteFileProvider/Test.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Test" : "TestValueFromFr" 3 | } -------------------------------------------------------------------------------- /src/tools/SoloX.BlazorJsonLocalization.Tools.Command/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Tools.Command.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded/_Imports.razor: -------------------------------------------------------------------------------- 1 | 2 | @using Microsoft.AspNetCore.Components.Web 3 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.StaticAssets/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/Fallback.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Fallback": "C'est un message de Fallback..." 3 | } 4 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/ISpecific.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Specific": "C'est un message sp�cifique..." 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded3/Pages/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "Component2Hello": "Bonjour de Component2" 3 | } -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ServerSide.UTests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.ServerSide.UTests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.WebAssembly.UTests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.WebAssembly.UTests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools/SoloX.BlazorJsonLocalization.Tools.Extensions/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Tools.Extensions.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools.tests/SoloX.BlazorJsonLocalization.Generator.ITests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Generator.ITests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools.tests/SoloX.BlazorJsonLocalization.Tools.Core.ITests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Tools.Core.ITests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools.tests/SoloX.BlazorJsonLocalization.Tools.Core.UTests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Tools.Core.UTests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools.tests/SoloX.BlazorJsonLocalization.Generator.E2ETests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Generator.E2ETests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/tools.tests/SoloX.BlazorJsonLocalization.Tools.Command.ITests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Tools.Command.ITests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded3/Pages/Component2.razor.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Component2Hello": "Bonjour de Component2" 3 | } -------------------------------------------------------------------------------- /src/tools.tests/SoloX.BlazorJsonLocalization.Tools.Command.E2ETests/.gitignore: -------------------------------------------------------------------------------- 1 | SoloX.BlazorJsonLocalization.Tools.Command.E2ETests.xml 2 | /.editorconfig 3 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded2/Resources/Pages/Component1.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Component1Hello": "Bonjour de Component1" 3 | } -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded2/Resources/Pages/Component1.json: -------------------------------------------------------------------------------- 1 | { 2 | "Component1Hello": "Hello from component1" 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded3/Pages/Component2.razor.json: -------------------------------------------------------------------------------- 1 | { 2 | "Component2Hello": "Hello from component2" 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization/Resources/IGlobal.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Global": "C’est un message global utilisable via héritage..." 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization/Resources/IGlobal.json: -------------------------------------------------------------------------------- 1 | { 2 | "Global": "This is global message usable through inheritance..." 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization/Resources/Fallback.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "FallBackMessage": "C’est un message fallback utilisable via configuration..." 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization/Resources/Fallback.json: -------------------------------------------------------------------------------- 1 | { 2 | "FallBackMessage": "This is fallback message usable through configuration..." 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/Resources/Fallback.en.json: -------------------------------------------------------------------------------- 1 | { 2 | "KeyInFallback": "Fallback from EN file" 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/Resources/Fallback.json: -------------------------------------------------------------------------------- 1 | { 2 | "KeyInFallback": "Fallback from root file" 3 | } 4 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/Resources/Fallback.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "KeyInFallback": "Fallback depuis le fichier FR" 3 | } -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Wasm/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviersolau/BlazorJsonLocalization/HEAD/src/examples/SoloX.BlazorJsonLocalization.Example.Wasm/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.UTests/Resources/EmbeddedJsonLocalizationExtensionServiceTest.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Test": "French test.", 3 | "Structured": { 4 | "Test": "French structured test." 5 | } 6 | } -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.StaticAssets/wwwroot/Resources/Pages/Counter.json: -------------------------------------------------------------------------------- 1 | { 2 | "Counter": "Counter", 3 | "Current count": "Current count : {0}.", 4 | "Click": "Click me" 5 | } 6 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.UTests/Resources/EmbeddedJsonLocalizationExtensionServiceTest.json: -------------------------------------------------------------------------------- 1 | { 2 | "Test": "English test.", 3 | "Structured": { 4 | "Test": "English structured test." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.StaticAssets/wwwroot/Resources/Pages/Counter-en.json: -------------------------------------------------------------------------------- 1 | { 2 | "Counter": "Counter", 3 | "Current count": "Current count : {0}.", 4 | "Click": "Click me" 5 | } 6 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.StaticAssets/wwwroot/Resources/Pages/Counter-fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Counter": "Compteur", 3 | "Current count": "Compte courant : {0}.", 4 | "Click": "Cliquez ici" 5 | } -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviersolau/BlazorJsonLocalization/HEAD/src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded3/Pages/Component2.razor: -------------------------------------------------------------------------------- 1 | @page "/component2" 2 | 3 |
6 | @L["Component2Hello"] 7 |
8 | 9 | @code { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded2/Pages/Component1.razor: -------------------------------------------------------------------------------- 1 | @page "/component1" 2 | 3 |6 | @L["Component1Hello"] 7 |
8 | 9 | 10 | @code { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.UTests/Resources/EmbeddedJsonLocalizationExtensionUsingAccentsTest.json: -------------------------------------------------------------------------------- 1 | { 2 | "auswählen": "Text for auswählen", 3 | "été": "Text for été", 4 | "konnichiwa": "こんにちは", 5 | "Happiness": "سعادة" 6 | } 7 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/Resources/Pages/Counter.json: -------------------------------------------------------------------------------- 1 | { 2 | "Counter": "Counter", 3 | "Current count": "Current count : {0}.", 4 | "Click": "Click me" 5 | } 6 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/wwwroot/Resources/Components/Pages/Home.en.json: -------------------------------------------------------------------------------- 1 | { 2 | "Home": "Home", 3 | "Hello": "Hello, world!", 4 | "Welcome": "Welcome to your new app." 5 | } 6 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/wwwroot/Resources/Components/Pages/Home.json: -------------------------------------------------------------------------------- 1 | { 2 | "Home": "Home", 3 | "Hello": "Hello, world!", 4 | "Welcome": "Welcome to your new app." 5 | } 6 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/Resources/Pages/Counter.en.json: -------------------------------------------------------------------------------- 1 | { 2 | "Counter": "Counter", 3 | "Current count": "Current count : {0}.", 4 | "Click": "Click me" 5 | } 6 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/Resources/Pages/Counter.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Counter": "Compteur", 3 | "Current count": "Compte courant : {0}.", 4 | "Click": "Cliquez ici" 5 | } -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/JsonLocalyserSetupTest.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Test": "C'est un test...", 3 | "TestWithArg": "C'est un test avec un argument: {0}...", 4 | "Structured": { 5 | "SubTest": "C'est un test structuré..." 6 | } 7 | } -------------------------------------------------------------------------------- /src/tests/SoloX.BlazorJsonLocalization.ITests/Resources/JsonLocalyserSetupTest.json: -------------------------------------------------------------------------------- 1 | { 2 | "Test": "This is a test...", 3 | "TestWithArg": "This is a test with an argument: {0}...", 4 | "Structured": { 5 | "SubTest": "This is a structured test..." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/wwwroot/Resources/Components/Pages/Home.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Home": "Accueil", 3 | "Hello": "Bonjour, tout monde!", 4 | "Welcome": "Bienvenue dans votre nouvelle application." 5 | } -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded/Resources/SharedResource.json: -------------------------------------------------------------------------------- 1 | { 2 | "About": "About", 3 | "Home": "Home", 4 | "Counter": "Counter", 5 | "Title": "Json Localizer", 6 | "Component1": "Component1", 7 | "Component2": "Component2" 8 | } 9 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.StaticAssets/Pages/Counter.razor: -------------------------------------------------------------------------------- 1 | @page "/counter" 2 | 3 |@L["Current count", currentCount]
6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviersolau/BlazorJsonLocalization/HEAD/src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviersolau/BlazorJsonLocalization/HEAD/src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviersolau/BlazorJsonLocalization/HEAD/src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviersolau/BlazorJsonLocalization/HEAD/src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.Client/wwwroot/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded/Resources/SharedResource.fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "About": "Info", 3 | "Home": "Acceuil", 4 | "Counter": "Compteur", 5 | "Title": "Localisation Json", 6 | "Component1": "Component1 (Fr)", 7 | "Component2": "Component2 (Fr)" 8 | } -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xaviersolau/BlazorJsonLocalization/HEAD/src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/wwwroot/favicon.png -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.ServerSide/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft": "Warning", 7 | "Microsoft.Hosting.Lifetime": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/tools.examples/SoloX.BlazorJsonLocalization.Generator.Sample/Test.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SoloX.BlazorJsonLocalization.Generator.Sample 8 | { 9 | public class Test 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/tools.examples/SoloX.BlazorJsonLocalization.Generator.Sample/Components/MyComponent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SoloX.BlazorJsonLocalization.Generator.Sample.Components 8 | { 9 | public class MyComponent 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization/IGlobal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization 8 | { 9 | public interface IGlobal 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded/Resources/Pages/Index.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "Hello world!", 3 | "Welcome": "Welcome to your new app.", 4 | "Here is an example with accents": "Here are some accents: é è à ô ä....", 5 | "Dashboard": { 6 | "TITLE": "Message Dashboard", 7 | "List": { 8 | "MESSAGES": "Messages" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/Components/Pages/Home.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @rendermode InteractiveServer 3 | 4 | @using Microsoft.Extensions.Localization 5 | 6 | @inject IStringLocalizer6 | @L["Welcome"] 7 |
8 | 9 | 10 |11 | @L["Global"] 12 |
13 | 14 |15 | @L["FallBackMessage"] 16 |
17 | 18 | 19 |20 | @L["Here is an example with accents"] 21 |
22 | 23 |24 | @L.GetSubLocalizer("Dashboard")["TITLE"] 25 |
26 | 27 |28 | @L.GetSubLocalizer("Dashboard").GetSubLocalizer("List")["MESSAGES"] 29 |
30 | 31 |32 | @L[Key.Path("Dashboard", "TITLE")] 33 |
34 | 35 |36 | @L[Key.Path("Dashboard", "List", "MESSAGES")] 37 |
38 | 39 |40 | @L["Dashboard:TITLE"] 41 |
42 | 43 |44 | @L["Dashboard:List:MESSAGES"] 45 |
46 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization/SharedLocalizationExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace SoloX.BlazorJsonLocalization.Example.Components.SharedLocalization 8 | { 9 | public static class SharedLocalizationExtensions 10 | { 11 | public static JsonLocalizationOptionsBuilder UseSharedLocalization(this JsonLocalizationOptionsBuilder builder) 12 | { 13 | return builder.UseEmbeddedJson(options => 14 | { 15 | options.Assemblies = new[] { typeof(SharedLocalizationExtensions).Assembly }; 16 | options.ResourcesPath = "Resources"; 17 | }); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/libs/SoloX.BlazorJsonLocalization/Helpers/Impl/AJsonMapData.cs: -------------------------------------------------------------------------------- 1 | // ---------------------------------------------------------------------- 2 | //Sorry, there's nothing at this address.
15 |@Localizer["KeyInFallback"]
10 | 11 |@Localizer["Current count", currentCount]
16 | 17 | 18 | 19 | @code { 20 | private int currentCount = 0; 21 | 22 | private void IncrementCount() 23 | { 24 | currentCount++; 25 | } 26 | 27 | protected override async Task OnInitializedAsync() 28 | { 29 | await Localizer.LoadAsync(); 30 | 31 | await base.OnInitializedAsync(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp/SoloX.BlazorJsonLocalization.Example.WebApp.csproj: -------------------------------------------------------------------------------- 1 |Sorry, there's nothing at this address.
16 |
12 | Request ID: @RequestId
13 |
18 | Swapping to Development environment will display more detailed information about the error that occurred. 19 |
20 |21 | The Development environment shouldn't be enabled for deployed applications. 22 | It can result in displaying sensitive information from exceptions to end users. 23 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 24 | and restarting the app. 25 |
26 | 27 | @code{ 28 | [CascadingParameter] 29 | private HttpContext? HttpContext { get; set; } 30 | 31 | private string? RequestId { get; set; } 32 | private bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 33 | 34 | protected override void OnInitialized() => 35 | RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier; 36 | } 37 | -------------------------------------------------------------------------------- /src/examples/SoloX.BlazorJsonLocalization.Example.Components.Embedded/SoloX.BlazorJsonLocalization.Example.Components.Embedded.csproj: -------------------------------------------------------------------------------- 1 |
24 | Request ID: @Model.RequestId
25 |
30 | Swapping to the Development environment displays detailed information about the error that occurred. 31 |
32 |33 | The Development environment shouldn't be enabled for deployed applications. 34 | It can result in displaying sensitive information from exceptions to end users. 35 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 36 | and restarting the app. 37 |
38 |This component demonstrates showing data.
9 | 10 | @if (forecasts == null) 11 | { 12 |Loading...
13 | } 14 | else 15 | { 16 || Date | 20 |Temp. (C) | 21 |Temp. (F) | 22 |Summary | 23 |
|---|---|---|---|
| @forecast.Date.ToShortDateString() | 30 |@forecast.TemperatureC | 31 |@forecast.TemperatureF | 32 |@forecast.Summary | 33 |