From 983c6556993fddccae9a8159ba64feb3594f5037 Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Sun, 30 Sep 2018 12:23:18 -0700 Subject: [PATCH 1/3] Update dependencies.props [auto-updated: dependencies] --- build/dependencies.props | 32 ++++++++++++++++---------------- korebuild-lock.txt | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/build/dependencies.props b/build/dependencies.props index bf539f58b0..233489ff2f 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -3,22 +3,22 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.2.0-preview1-20180918.1 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 - 2.2.0-preview3-35301 + 2.2.0-preview1-20180928.5 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 + 2.2.0-preview3-35359 2.0.9 2.1.3 15.6.1 diff --git a/korebuild-lock.txt b/korebuild-lock.txt index 649bf2ba0b..26697a21fa 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.2.0-preview1-20180918.1 -commithash:ad5e3fc53442741a0dd49bce437d2ac72f4b5800 +version:2.2.0-preview1-20180928.5 +commithash:43faa29f679f47b88689d645b39e6be5e0055d70 From de1579bdda645ba8631403af8720929b76939853 Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Tue, 16 Oct 2018 12:48:16 -0700 Subject: [PATCH 2/3] Update package branding for 2.2 RTM --- version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.props b/version.props index 704cac087b..4889a26987 100644 --- a/version.props +++ b/version.props @@ -1,7 +1,7 @@ 2.2.0 - preview3 + rtm $(VersionPrefix) $(VersionPrefix)-$(VersionSuffix)-final t000 From d93796fdef7343b2579b4666e9760e94a20ac78b Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Fri, 30 Nov 2018 14:58:51 -0800 Subject: [PATCH 3/3] Reorganize source code in preparation to move into aspnet/AspNetCore Prior to reorganization, this source code was found in https://github.com/aspnet/Localization/tree/0bcac31dd705fb9db60723f5d7eaeffb728358f5 --- .appveyor.yml | 17 - .gitattributes | 52 -- .github/ISSUE_TEMPLATE.md | 3 - .gitignore | 36 - .travis.yml | 27 - CONTRIBUTING.md | 4 - Directory.Build.props | 19 - Directory.Build.targets | 7 - LICENSE.txt | 14 - Localization.sln | 122 ---- NuGet.config | 7 - NuGetPackageVerifier.json | 7 - build.cmd | 2 - build.sh | 8 - build/Key.snk | Bin 596 -> 0 bytes build/dependencies.props | 39 - build/repo.props | 19 - build/sources.props | 17 - korebuild-lock.txt | 2 - korebuild.json | 4 - run.cmd | 2 - run.ps1 | 196 ----- run.sh | 231 ------ .../LocalizationSample.csproj | 19 - src/Directory.Build.props | 7 - .../IStringLocalizer.cs | 45 -- .../IStringLocalizerFactory.cs | 29 - .../IStringLocalizerOfT.cs | 14 - .../LocalizedString.cs | 90 --- ...xtensions.Localization.Abstractions.csproj | 15 - .../StringLocalizerExtensions.cs | 74 -- .../StringLocalizerOfT.cs | 67 -- .../baseline.netcore.json | 413 ----------- .../IResourceNamesCache.cs | 22 - .../Internal/AssemblyWrapper.cs | 28 - .../Internal/IResourceStringProvider.cs | 13 - ...eManagerStringLocalizerLoggerExtensions.cs | 27 - .../Internal/ResourceManagerStringProvider.cs | 80 -- .../LocalizationOptions.cs | 16 - ...LocalizationServiceCollectionExtensions.cs | 76 -- .../Microsoft.Extensions.Localization.csproj | 22 - .../Properties/AssemblyInfo.cs | 6 - .../Properties/Resources.Designer.cs | 62 -- .../ResourceLocationAttribute.cs | 33 - .../ResourceManagerStringLocalizer.cs | 274 ------- .../ResourceManagerStringLocalizerFactory.cs | 270 ------- ...sourceManagerWithCultureStringLocalizer.cs | 164 ----- .../ResourceNamesCache.cs | 23 - .../Resources.resx | 126 ---- .../RootNamespaceAttribute.cs | 35 - .../baseline.netcore.json | 687 ------------------ ...oft.AspNetCore.Localization.Routing.csproj | 7 +- .../src}/RouteDataRequestCultureProvider.cs | 0 .../src}/baseline.netcore.json | 0 ...pNetCore.Localization.Routing.Tests.csproj | 13 + .../RouteDataRequestCultureProviderTest.cs | 0 .../Middleware/Localization/README.md | 15 +- .../sample/LocalizationSample.csproj | 16 + .../sample}/My/Resources/Startup.es-ES.resx | 0 .../sample}/My/Resources/Startup.fr-FR.resx | 0 .../sample}/My/Resources/Startup.ja-JP.resx | 0 .../sample}/My/Resources/Startup.zh-CN.resx | 0 .../sample}/My/Resources/Startup.zh.resx | 0 .../Localization/sample}/Startup.cs | 0 ...eptLanguageHeaderRequestCultureProvider.cs | 0 .../src}/ApplicationBuilderExtensions.cs | 0 .../src}/CookieRequestCultureProvider.cs | 0 .../src}/CustomRequestCultureProvider.cs | 0 .../src}/IRequestCultureFeature.cs | 0 .../src}/IRequestCultureProvider.cs | 0 .../RequestCultureProviderLoggerExtensions.cs | 0 .../Microsoft.AspNetCore.Localization.csproj | 11 +- .../src}/Properties/Resources.Designer.cs | 0 .../src}/ProviderCultureResult.cs | 0 .../src}/QueryStringRequestCultureProvider.cs | 0 .../Localization/src}/RequestCulture.cs | 0 .../src}/RequestCultureFeature.cs | 0 .../src}/RequestCultureProvider.cs | 0 .../src}/RequestLocalizationMiddleware.cs | 0 .../src}/RequestLocalizationOptions.cs | 0 .../Localization/src}/Resources.resx | 0 .../Localization/src}/baseline.netcore.json | 0 .../LocalizationSampleTest.cs | 0 .../test/FunctionalTests}/LocalizationTest.cs | 0 ...etCore.Localization.FunctionalTests.csproj | 19 + ...anguageHeaderRequestCultureProviderTest.cs | 0 .../CookieRequestCultureProviderTest.cs | 0 .../CustomRequestCultureProviderTest.cs | 0 ...osoft.AspNetCore.Localization.Tests.csproj | 15 + .../QueryStringRequestCultureProviderTest.cs | 0 .../RequestLocalizationOptionsTest.cs | 0 .../LocalizationWebsite.csproj | 21 + .../LocalizationWebsite/Models/Customer.cs | 0 .../Models/Customer.fr-FR.resx | 0 .../LocalizationWebsite/Program.cs | 0 .../Resources/Models.Customer.fr-FR.resx | 0 .../StartupCustomCulturePreserved.en-US.resx | 0 .../StartupResourcesInFolder.fr-FR.resx | 0 .../Resources/Test.fr-FR.resx | 0 .../LocalizationWebsite/StartupBuilderAPIs.cs | 0 .../StartupCustomCulturePreserved.cs | 0 .../StartupGetAllStrings.cs | 0 .../StartupResourcesAtRootFolder.cs | 0 .../StartupResourcesAtRootFolder.fr-FR.resx | 0 .../StartupResourcesInClassLibrary.cs | 0 .../StartupResourcesInFolder.cs | 0 .../LocalizationWebsite/Test.fr-FR.resx | 0 .../ResourcesClassLibraryNoAttribute/Model.cs | 0 .../Resources/Model.resx | 0 .../ResourcesClassLibraryNoAttribute.csproj | 0 .../AssemblyInfo.cs | 0 .../Model.cs | 0 .../ResourceFolder/Model.resx | 0 .../ResourcesClassLibraryWithAttribute.csproj | 2 +- test/Directory.Build.props | 14 - .../LocalizationWebsite.csproj | 21 - ...etCore.Localization.FunctionalTests.csproj | 22 - ...pNetCore.Localization.Routing.Tests.csproj | 19 - ...osoft.AspNetCore.Localization.Tests.csproj | 21 - ...lizationServiceCollectionExtensionsTest.cs | 68 -- ...osoft.Extensions.Localization.Tests.csproj | 21 - ...sourceManagerStringLocalizerFactoryTest.cs | 296 -------- .../ResourceManagerStringLocalizerTest.cs | 299 -------- version.props | 12 - 124 files changed, 92 insertions(+), 4392 deletions(-) delete mode 100644 .appveyor.yml delete mode 100644 .gitattributes delete mode 100644 .github/ISSUE_TEMPLATE.md delete mode 100644 .gitignore delete mode 100644 .travis.yml delete mode 100644 CONTRIBUTING.md delete mode 100644 Directory.Build.props delete mode 100644 Directory.Build.targets delete mode 100644 LICENSE.txt delete mode 100644 Localization.sln delete mode 100644 NuGet.config delete mode 100644 NuGetPackageVerifier.json delete mode 100644 build.cmd delete mode 100755 build.sh delete mode 100644 build/Key.snk delete mode 100644 build/dependencies.props delete mode 100644 build/repo.props delete mode 100644 build/sources.props delete mode 100644 korebuild-lock.txt delete mode 100644 korebuild.json delete mode 100644 run.cmd delete mode 100644 run.ps1 delete mode 100755 run.sh delete mode 100644 samples/LocalizationSample/LocalizationSample.csproj delete mode 100644 src/Directory.Build.props delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizer.cs delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerFactory.cs delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerOfT.cs delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/LocalizedString.cs delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/Microsoft.Extensions.Localization.Abstractions.csproj delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerExtensions.cs delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs delete mode 100644 src/Microsoft.Extensions.Localization.Abstractions/baseline.netcore.json delete mode 100644 src/Microsoft.Extensions.Localization/IResourceNamesCache.cs delete mode 100644 src/Microsoft.Extensions.Localization/Internal/AssemblyWrapper.cs delete mode 100644 src/Microsoft.Extensions.Localization/Internal/IResourceStringProvider.cs delete mode 100644 src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringLocalizerLoggerExtensions.cs delete mode 100644 src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringProvider.cs delete mode 100644 src/Microsoft.Extensions.Localization/LocalizationOptions.cs delete mode 100644 src/Microsoft.Extensions.Localization/LocalizationServiceCollectionExtensions.cs delete mode 100644 src/Microsoft.Extensions.Localization/Microsoft.Extensions.Localization.csproj delete mode 100644 src/Microsoft.Extensions.Localization/Properties/AssemblyInfo.cs delete mode 100644 src/Microsoft.Extensions.Localization/Properties/Resources.Designer.cs delete mode 100644 src/Microsoft.Extensions.Localization/ResourceLocationAttribute.cs delete mode 100644 src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs delete mode 100644 src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizerFactory.cs delete mode 100644 src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs delete mode 100644 src/Microsoft.Extensions.Localization/ResourceNamesCache.cs delete mode 100644 src/Microsoft.Extensions.Localization/Resources.resx delete mode 100644 src/Microsoft.Extensions.Localization/RootNamespaceAttribute.cs delete mode 100644 src/Microsoft.Extensions.Localization/baseline.netcore.json rename src/{Microsoft.AspNetCore.Localization.Routing => Middleware/Localization.Routing/src}/Microsoft.AspNetCore.Localization.Routing.csproj (63%) rename src/{Microsoft.AspNetCore.Localization.Routing => Middleware/Localization.Routing/src}/RouteDataRequestCultureProvider.cs (100%) rename src/{Microsoft.AspNetCore.Localization.Routing => Middleware/Localization.Routing/src}/baseline.netcore.json (100%) create mode 100644 src/Middleware/Localization.Routing/test/Microsoft.AspNetCore.Localization.Routing.Tests.csproj rename {test/Microsoft.AspNetCore.Localization.Routing.Tests => src/Middleware/Localization.Routing/test}/RouteDataRequestCultureProviderTest.cs (100%) rename README.md => src/Middleware/Localization/README.md (54%) create mode 100644 src/Middleware/Localization/sample/LocalizationSample.csproj rename {samples/LocalizationSample => src/Middleware/Localization/sample}/My/Resources/Startup.es-ES.resx (100%) rename {samples/LocalizationSample => src/Middleware/Localization/sample}/My/Resources/Startup.fr-FR.resx (100%) rename {samples/LocalizationSample => src/Middleware/Localization/sample}/My/Resources/Startup.ja-JP.resx (100%) rename {samples/LocalizationSample => src/Middleware/Localization/sample}/My/Resources/Startup.zh-CN.resx (100%) rename {samples/LocalizationSample => src/Middleware/Localization/sample}/My/Resources/Startup.zh.resx (100%) rename {samples/LocalizationSample => src/Middleware/Localization/sample}/Startup.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/AcceptLanguageHeaderRequestCultureProvider.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/ApplicationBuilderExtensions.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/CookieRequestCultureProvider.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/CustomRequestCultureProvider.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/IRequestCultureFeature.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/IRequestCultureProvider.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/Internal/RequestCultureProviderLoggerExtensions.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/Microsoft.AspNetCore.Localization.csproj (51%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/Properties/Resources.Designer.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/ProviderCultureResult.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/QueryStringRequestCultureProvider.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/RequestCulture.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/RequestCultureFeature.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/RequestCultureProvider.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/RequestLocalizationMiddleware.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/RequestLocalizationOptions.cs (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/Resources.resx (100%) rename src/{Microsoft.AspNetCore.Localization => Middleware/Localization/src}/baseline.netcore.json (100%) rename {test/Microsoft.AspNetCore.Localization.FunctionalTests => src/Middleware/Localization/test/FunctionalTests}/LocalizationSampleTest.cs (100%) rename {test/Microsoft.AspNetCore.Localization.FunctionalTests => src/Middleware/Localization/test/FunctionalTests}/LocalizationTest.cs (100%) create mode 100644 src/Middleware/Localization/test/FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj rename {test/Microsoft.AspNetCore.Localization.Tests => src/Middleware/Localization/test/UnitTests}/AcceptLanguageHeaderRequestCultureProviderTest.cs (100%) rename {test/Microsoft.AspNetCore.Localization.Tests => src/Middleware/Localization/test/UnitTests}/CookieRequestCultureProviderTest.cs (100%) rename {test/Microsoft.AspNetCore.Localization.Tests => src/Middleware/Localization/test/UnitTests}/CustomRequestCultureProviderTest.cs (100%) create mode 100644 src/Middleware/Localization/test/UnitTests/Microsoft.AspNetCore.Localization.Tests.csproj rename {test/Microsoft.AspNetCore.Localization.Tests => src/Middleware/Localization/test/UnitTests}/QueryStringRequestCultureProviderTest.cs (100%) rename {test/Microsoft.AspNetCore.Localization.Tests => src/Middleware/Localization/test/UnitTests}/RequestLocalizationOptionsTest.cs (100%) create mode 100644 src/Middleware/Localization/testassets/LocalizationWebsite/LocalizationWebsite.csproj rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Models/Customer.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Models/Customer.fr-FR.resx (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Program.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Resources/Models.Customer.fr-FR.resx (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Resources/StartupCustomCulturePreserved.en-US.resx (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Resources/StartupResourcesInFolder.fr-FR.resx (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Resources/Test.fr-FR.resx (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/StartupBuilderAPIs.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/StartupCustomCulturePreserved.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/StartupGetAllStrings.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/StartupResourcesAtRootFolder.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/StartupResourcesAtRootFolder.fr-FR.resx (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/StartupResourcesInClassLibrary.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/StartupResourcesInFolder.cs (100%) rename {test => src/Middleware/Localization/testassets}/LocalizationWebsite/Test.fr-FR.resx (100%) rename {test => src/Middleware/Localization/testassets}/ResourcesClassLibraryNoAttribute/Model.cs (100%) rename {test => src/Middleware/Localization/testassets}/ResourcesClassLibraryNoAttribute/Resources/Model.resx (100%) rename {test => src/Middleware/Localization/testassets}/ResourcesClassLibraryNoAttribute/ResourcesClassLibraryNoAttribute.csproj (100%) rename {test => src/Middleware/Localization/testassets}/ResourcesClassLibraryWithAttribute/AssemblyInfo.cs (100%) rename {test => src/Middleware/Localization/testassets}/ResourcesClassLibraryWithAttribute/Model.cs (100%) rename {test => src/Middleware/Localization/testassets}/ResourcesClassLibraryWithAttribute/ResourceFolder/Model.resx (100%) rename {test => src/Middleware/Localization/testassets}/ResourcesClassLibraryWithAttribute/ResourcesClassLibraryWithAttribute.csproj (65%) delete mode 100644 test/Directory.Build.props delete mode 100644 test/LocalizationWebsite/LocalizationWebsite.csproj delete mode 100644 test/Microsoft.AspNetCore.Localization.FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj delete mode 100644 test/Microsoft.AspNetCore.Localization.Routing.Tests/Microsoft.AspNetCore.Localization.Routing.Tests.csproj delete mode 100644 test/Microsoft.AspNetCore.Localization.Tests/Microsoft.AspNetCore.Localization.Tests.csproj delete mode 100644 test/Microsoft.Extensions.Localization.Tests/LocalizationServiceCollectionExtensionsTest.cs delete mode 100644 test/Microsoft.Extensions.Localization.Tests/Microsoft.Extensions.Localization.Tests.csproj delete mode 100644 test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerFactoryTest.cs delete mode 100644 test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs delete mode 100644 version.props diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index 4eea96ab69..0000000000 --- a/.appveyor.yml +++ /dev/null @@ -1,17 +0,0 @@ -init: -- git config --global core.autocrlf true -branches: - only: - - dev - - /^release\/.*$/ - - /^(.*\/)?ci-.*$/ -build_script: -- ps: .\run.ps1 default-build -clone_depth: 1 -environment: - global: - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - DOTNET_CLI_TELEMETRY_OPTOUT: 1 -test: 'off' -deploy: 'off' -os: Visual Studio 2017 diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index d4ee1cb7f3..0000000000 --- a/.gitattributes +++ /dev/null @@ -1,52 +0,0 @@ -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain - -*.jpg binary -*.png binary -*.gif binary - -*.cs text=auto diff=csharp -*.vb text=auto -*.resx text=auto -*.c text=auto -*.cpp text=auto -*.cxx text=auto -*.h text=auto -*.hxx text=auto -*.py text=auto -*.rb text=auto -*.java text=auto -*.html text=auto -*.htm text=auto -*.css text=auto -*.scss text=auto -*.sass text=auto -*.less text=auto -*.js text=auto -*.lisp text=auto -*.clj text=auto -*.sql text=auto -*.php text=auto -*.lua text=auto -*.m text=auto -*.asm text=auto -*.erl text=auto -*.fs text=auto -*.fsx text=auto -*.hs text=auto - -*.csproj text=auto -*.vbproj text=auto -*.fsproj text=auto -*.dbproj text=auto -*.sln text=auto eol=crlf - -*.sh eol=lf diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 101a084f0a..0000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,3 +0,0 @@ -THIS ISSUE TRACKER IS CLOSED - please log new issues here: https://github.com/aspnet/Home/issues - -For information about this change, see https://github.com/aspnet/Announcements/issues/283 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1ce76e50c8..0000000000 --- a/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -[Oo]bj/ -[Bb]in/ -TestResults/ -.nuget/ -.build/ -.testPublish/ -*.sln.ide/ -_ReSharper.*/ -packages/ -artifacts/ -PublishProfiles/ -.vs/ -debugSettings.json -project.lock.json -*.user -*.suo -*.cache -*.docstates -_ReSharper.* -nuget.exe -*net45.csproj -*net451.csproj -*k10.csproj -*.psess -*.vsp -*.pidb -*.userprefs -*DS_Store -*.ncrunchsolution -*.*sdf -*.ipch -*.sln.ide -*launchSettings.json -**/Resources/*.Designer.cs -.vscode/ -global.json diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 64bdbb4441..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -language: csharp -sudo: false -dist: trusty -env: - global: - - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - - DOTNET_CLI_TELEMETRY_OPTOUT: 1 -mono: none -os: -- linux -- osx -osx_image: xcode8.2 -addons: - apt: - packages: - - libunwind8 -branches: - only: - - dev - - /^release\/.*$/ - - /^(.*\/)?ci-.*$/ -before_install: -- if test "$TRAVIS_OS_NAME" == "osx"; then brew update; brew install openssl; ln -s - /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/; ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib - /usr/local/lib/; fi -script: -- ./build.sh diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 64ff041d5c..0000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,4 +0,0 @@ -Contributing -====== - -Information on contributing to this repo is in the [Contributing Guide](https://github.com/aspnet/Home/blob/dev/CONTRIBUTING.md) in the Home repo. diff --git a/Directory.Build.props b/Directory.Build.props deleted file mode 100644 index 7d6754ef0e..0000000000 --- a/Directory.Build.props +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - https://github.com/aspnet/Localization - git - $(MSBuildThisFileDirectory) - $(MSBuildThisFileDirectory)build\Key.snk - true - true - true - - diff --git a/Directory.Build.targets b/Directory.Build.targets deleted file mode 100644 index 53b3f6e1da..0000000000 --- a/Directory.Build.targets +++ /dev/null @@ -1,7 +0,0 @@ - - - $(MicrosoftNETCoreApp20PackageVersion) - $(MicrosoftNETCoreApp21PackageVersion) - $(NETStandardLibrary20PackageVersion) - - diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 7b2956ecee..0000000000 --- a/LICENSE.txt +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) .NET Foundation and Contributors - -All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. diff --git a/Localization.sln b/Localization.sln deleted file mode 100644 index 28d7473058..0000000000 --- a/Localization.sln +++ /dev/null @@ -1,122 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26730.10 -MinimumVisualStudioVersion = 15.0.26730.03 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{FB313677-BAB3-4E49-8CDB-4FA4A9564767}" - ProjectSection(SolutionItems) = preProject - src\Directory.Build.props = src\Directory.Build.props - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization", "src\Microsoft.Extensions.Localization\Microsoft.Extensions.Localization.csproj", "{29743CFF-120E-40EB-9B89-5818425946FA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Localization", "src\Microsoft.AspNetCore.Localization\Microsoft.AspNetCore.Localization.csproj", "{23E3BC23-3464-4D9B-BF78-02CB2182BEF0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization.Abstractions", "src\Microsoft.Extensions.Localization.Abstractions\Microsoft.Extensions.Localization.Abstractions.csproj", "{A1FCF259-70F6-4605-AA2D-E4B356BE771A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{79878809-8D1C-4BD4-BA99-F1F13FF96FD8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LocalizationSample", "samples\LocalizationSample\LocalizationSample.csproj", "{55D9501F-15B9-4339-A0AB-6082850E5FCE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{B723DB83-A670-4BCB-95FB-195361331AD2}" - ProjectSection(SolutionItems) = preProject - test\Directory.Build.props = test\Directory.Build.props - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization.Tests", "test\Microsoft.Extensions.Localization.Tests\Microsoft.Extensions.Localization.Tests.csproj", "{287AD58D-DF34-4F16-8616-FD78FA1CADF9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Localization.Tests", "test\Microsoft.AspNetCore.Localization.Tests\Microsoft.AspNetCore.Localization.Tests.csproj", "{19A2A931-5C60-47A0-816A-0DC9C4CE5736}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LocalizationWebsite", "test\LocalizationWebsite\LocalizationWebsite.csproj", "{EF6C7431-2FB8-4396-8947-F50F31689AF4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Localization.FunctionalTests", "test\Microsoft.AspNetCore.Localization.FunctionalTests\Microsoft.AspNetCore.Localization.FunctionalTests.csproj", "{B1B441BA-3AC8-49F8-850D-E5A178E77DE2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ResourcesClassLibraryWithAttribute", "test\ResourcesClassLibraryWithAttribute\ResourcesClassLibraryWithAttribute.csproj", "{F27639B9-913E-43AF-9D64-BBD98D9A420A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ResourcesClassLibraryNoAttribute", "test\ResourcesClassLibraryNoAttribute\ResourcesClassLibraryNoAttribute.csproj", "{34740578-D5B5-4FB4-AFD4-5E87B5443E20}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Localization.Routing", "src\Microsoft.AspNetCore.Localization.Routing\Microsoft.AspNetCore.Localization.Routing.csproj", "{E1B8DA18-7885-40ED-94ED-881BB0804F23}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Localization.Routing.Tests", "test\Microsoft.AspNetCore.Localization.Routing.Tests\Microsoft.AspNetCore.Localization.Routing.Tests.csproj", "{375B000B-5DC0-4D16-AC0C-A5432D8E7581}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{169AE1E1-72E6-45FB-B986-31E9A14DE3A9}" - ProjectSection(SolutionItems) = preProject - Directory.Build.props = Directory.Build.props - Directory.Build.targets = Directory.Build.targets - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {29743CFF-120E-40EB-9B89-5818425946FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29743CFF-120E-40EB-9B89-5818425946FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29743CFF-120E-40EB-9B89-5818425946FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29743CFF-120E-40EB-9B89-5818425946FA}.Release|Any CPU.Build.0 = Release|Any CPU - {23E3BC23-3464-4D9B-BF78-02CB2182BEF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23E3BC23-3464-4D9B-BF78-02CB2182BEF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23E3BC23-3464-4D9B-BF78-02CB2182BEF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23E3BC23-3464-4D9B-BF78-02CB2182BEF0}.Release|Any CPU.Build.0 = Release|Any CPU - {A1FCF259-70F6-4605-AA2D-E4B356BE771A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1FCF259-70F6-4605-AA2D-E4B356BE771A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1FCF259-70F6-4605-AA2D-E4B356BE771A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1FCF259-70F6-4605-AA2D-E4B356BE771A}.Release|Any CPU.Build.0 = Release|Any CPU - {55D9501F-15B9-4339-A0AB-6082850E5FCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {55D9501F-15B9-4339-A0AB-6082850E5FCE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55D9501F-15B9-4339-A0AB-6082850E5FCE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {55D9501F-15B9-4339-A0AB-6082850E5FCE}.Release|Any CPU.Build.0 = Release|Any CPU - {287AD58D-DF34-4F16-8616-FD78FA1CADF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {287AD58D-DF34-4F16-8616-FD78FA1CADF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {287AD58D-DF34-4F16-8616-FD78FA1CADF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {287AD58D-DF34-4F16-8616-FD78FA1CADF9}.Release|Any CPU.Build.0 = Release|Any CPU - {19A2A931-5C60-47A0-816A-0DC9C4CE5736}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19A2A931-5C60-47A0-816A-0DC9C4CE5736}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19A2A931-5C60-47A0-816A-0DC9C4CE5736}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19A2A931-5C60-47A0-816A-0DC9C4CE5736}.Release|Any CPU.Build.0 = Release|Any CPU - {EF6C7431-2FB8-4396-8947-F50F31689AF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF6C7431-2FB8-4396-8947-F50F31689AF4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EF6C7431-2FB8-4396-8947-F50F31689AF4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EF6C7431-2FB8-4396-8947-F50F31689AF4}.Release|Any CPU.Build.0 = Release|Any CPU - {B1B441BA-3AC8-49F8-850D-E5A178E77DE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B1B441BA-3AC8-49F8-850D-E5A178E77DE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B1B441BA-3AC8-49F8-850D-E5A178E77DE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B1B441BA-3AC8-49F8-850D-E5A178E77DE2}.Release|Any CPU.Build.0 = Release|Any CPU - {F27639B9-913E-43AF-9D64-BBD98D9A420A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F27639B9-913E-43AF-9D64-BBD98D9A420A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F27639B9-913E-43AF-9D64-BBD98D9A420A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F27639B9-913E-43AF-9D64-BBD98D9A420A}.Release|Any CPU.Build.0 = Release|Any CPU - {34740578-D5B5-4FB4-AFD4-5E87B5443E20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34740578-D5B5-4FB4-AFD4-5E87B5443E20}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34740578-D5B5-4FB4-AFD4-5E87B5443E20}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34740578-D5B5-4FB4-AFD4-5E87B5443E20}.Release|Any CPU.Build.0 = Release|Any CPU - {E1B8DA18-7885-40ED-94ED-881BB0804F23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1B8DA18-7885-40ED-94ED-881BB0804F23}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E1B8DA18-7885-40ED-94ED-881BB0804F23}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E1B8DA18-7885-40ED-94ED-881BB0804F23}.Release|Any CPU.Build.0 = Release|Any CPU - {375B000B-5DC0-4D16-AC0C-A5432D8E7581}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {375B000B-5DC0-4D16-AC0C-A5432D8E7581}.Debug|Any CPU.Build.0 = Debug|Any CPU - {375B000B-5DC0-4D16-AC0C-A5432D8E7581}.Release|Any CPU.ActiveCfg = Release|Any CPU - {375B000B-5DC0-4D16-AC0C-A5432D8E7581}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {29743CFF-120E-40EB-9B89-5818425946FA} = {FB313677-BAB3-4E49-8CDB-4FA4A9564767} - {23E3BC23-3464-4D9B-BF78-02CB2182BEF0} = {FB313677-BAB3-4E49-8CDB-4FA4A9564767} - {A1FCF259-70F6-4605-AA2D-E4B356BE771A} = {FB313677-BAB3-4E49-8CDB-4FA4A9564767} - {55D9501F-15B9-4339-A0AB-6082850E5FCE} = {79878809-8D1C-4BD4-BA99-F1F13FF96FD8} - {287AD58D-DF34-4F16-8616-FD78FA1CADF9} = {B723DB83-A670-4BCB-95FB-195361331AD2} - {19A2A931-5C60-47A0-816A-0DC9C4CE5736} = {B723DB83-A670-4BCB-95FB-195361331AD2} - {EF6C7431-2FB8-4396-8947-F50F31689AF4} = {B723DB83-A670-4BCB-95FB-195361331AD2} - {B1B441BA-3AC8-49F8-850D-E5A178E77DE2} = {B723DB83-A670-4BCB-95FB-195361331AD2} - {F27639B9-913E-43AF-9D64-BBD98D9A420A} = {B723DB83-A670-4BCB-95FB-195361331AD2} - {34740578-D5B5-4FB4-AFD4-5E87B5443E20} = {B723DB83-A670-4BCB-95FB-195361331AD2} - {E1B8DA18-7885-40ED-94ED-881BB0804F23} = {FB313677-BAB3-4E49-8CDB-4FA4A9564767} - {375B000B-5DC0-4D16-AC0C-A5432D8E7581} = {B723DB83-A670-4BCB-95FB-195361331AD2} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {23714C47-0F03-4BF3-9E01-1CC2AA537A46} - EndGlobalSection -EndGlobal diff --git a/NuGet.config b/NuGet.config deleted file mode 100644 index e32bddfd51..0000000000 --- a/NuGet.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/NuGetPackageVerifier.json b/NuGetPackageVerifier.json deleted file mode 100644 index b153ab1515..0000000000 --- a/NuGetPackageVerifier.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "Default": { - "rules": [ - "DefaultCompositeRule" - ] - } -} \ No newline at end of file diff --git a/build.cmd b/build.cmd deleted file mode 100644 index c0050bda12..0000000000 --- a/build.cmd +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' default-build %*; exit $LASTEXITCODE" diff --git a/build.sh b/build.sh deleted file mode 100755 index 98a4b22765..0000000000 --- a/build.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs) -chmod +x "$DIR/run.sh"; sync -"$DIR/run.sh" default-build "$@" diff --git a/build/Key.snk b/build/Key.snk deleted file mode 100644 index e10e4889c125d3120cd9e81582243d70f7cbb806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50098=Iw=HCsnz~#iVhm& zj%TU(_THUee?3yHBjk$37ysB?i5#7WD$={H zV4B!OxRPrb|8)HPg~A}8P>^=#y<)56#=E&NzcjOtPK~<4n6GHt=K$ro*T(lhby_@U zEk(hLzk1H)0yXj{A_5>fk-TgNoP|q6(tP2xo8zt8i%212CWM#AeCd?`hS|4~L({h~Moo(~vy&3Z z1uI}`fd^*>o=rwbAGymj6RM^pZm(*Kfhs+Y1#`-2JPWZMK8@;ZWCk2+9bX4YP);~fj-BU*R zQPvWv$89!{Rl9wM+zR>_TSkn^voYxA?2G iKnV#iZ6Ah`K>b=@=IjYJXrxL124zR(38)nxe+&q_$QXwJ diff --git a/build/dependencies.props b/build/dependencies.props deleted file mode 100644 index b8e2bda0bf..0000000000 --- a/build/dependencies.props +++ /dev/null @@ -1,39 +0,0 @@ - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - - 2.1.3-rtm-15802 - 2.0.0 - 2.1.2 - 15.6.1 - 4.7.49 - 2.0.3 - 2.3.1 - 2.4.0-beta.1.build3945 - - - - - - - - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.2 - 2.1.1 - 2.1.0 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - - \ No newline at end of file diff --git a/build/repo.props b/build/repo.props deleted file mode 100644 index fe488557f6..0000000000 --- a/build/repo.props +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - Internal.AspNetCore.Universe.Lineup - 2.1.0-rc1-* - https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json - - - - - - - diff --git a/build/sources.props b/build/sources.props deleted file mode 100644 index 9215df9751..0000000000 --- a/build/sources.props +++ /dev/null @@ -1,17 +0,0 @@ - - - - - $(DotNetRestoreSources) - - $(RestoreSources); - https://dotnet.myget.org/F/dotnet-core/api/v3/index.json; - https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json; - https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json; - - - $(RestoreSources); - https://api.nuget.org/v3/index.json; - - - diff --git a/korebuild-lock.txt b/korebuild-lock.txt deleted file mode 100644 index 251c227c83..0000000000 --- a/korebuild-lock.txt +++ /dev/null @@ -1,2 +0,0 @@ -version:2.1.3-rtm-15802 -commithash:a7c08b45b440a7d2058a0aa1eaa3eb6ba811976a diff --git a/korebuild.json b/korebuild.json deleted file mode 100644 index 678d8bb948..0000000000 --- a/korebuild.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.1/tools/korebuild.schema.json", - "channel": "release/2.1" -} diff --git a/run.cmd b/run.cmd deleted file mode 100644 index d52d5c7e68..0000000000 --- a/run.cmd +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' %*; exit $LASTEXITCODE" diff --git a/run.ps1 b/run.ps1 deleted file mode 100644 index 27dcf848f8..0000000000 --- a/run.ps1 +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/env powershell -#requires -version 4 - -<# -.SYNOPSIS -Executes KoreBuild commands. - -.DESCRIPTION -Downloads korebuild if required. Then executes the KoreBuild command. To see available commands, execute with `-Command help`. - -.PARAMETER Command -The KoreBuild command to run. - -.PARAMETER Path -The folder to build. Defaults to the folder containing this script. - -.PARAMETER Channel -The channel of KoreBuild to download. Overrides the value from the config file. - -.PARAMETER DotNetHome -The directory where .NET Core tools will be stored. - -.PARAMETER ToolsSource -The base url where build tools can be downloaded. Overrides the value from the config file. - -.PARAMETER Update -Updates KoreBuild to the latest version even if a lock file is present. - -.PARAMETER ConfigFile -The path to the configuration file that stores values. Defaults to korebuild.json. - -.PARAMETER ToolsSourceSuffix -The Suffix to append to the end of the ToolsSource. Useful for query strings in blob stores. - -.PARAMETER Arguments -Arguments to be passed to the command - -.NOTES -This function will create a file $PSScriptRoot/korebuild-lock.txt. This lock file can be committed to source, but does not have to be. -When the lockfile is not present, KoreBuild will create one using latest available version from $Channel. - -The $ConfigFile is expected to be an JSON file. It is optional, and the configuration values in it are optional as well. Any options set -in the file are overridden by command line parameters. - -.EXAMPLE -Example config file: -```json -{ - "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/dev/tools/korebuild.schema.json", - "channel": "dev", - "toolsSource": "https://aspnetcore.blob.core.windows.net/buildtools" -} -``` -#> -[CmdletBinding(PositionalBinding = $false)] -param( - [Parameter(Mandatory = $true, Position = 0)] - [string]$Command, - [string]$Path = $PSScriptRoot, - [Alias('c')] - [string]$Channel, - [Alias('d')] - [string]$DotNetHome, - [Alias('s')] - [string]$ToolsSource, - [Alias('u')] - [switch]$Update, - [string]$ConfigFile, - [string]$ToolsSourceSuffix, - [Parameter(ValueFromRemainingArguments = $true)] - [string[]]$Arguments -) - -Set-StrictMode -Version 2 -$ErrorActionPreference = 'Stop' - -# -# Functions -# - -function Get-KoreBuild { - - $lockFile = Join-Path $Path 'korebuild-lock.txt' - - if (!(Test-Path $lockFile) -or $Update) { - Get-RemoteFile "$ToolsSource/korebuild/channels/$Channel/latest.txt" $lockFile $ToolsSourceSuffix - } - - $version = Get-Content $lockFile | Where-Object { $_ -like 'version:*' } | Select-Object -first 1 - if (!$version) { - Write-Error "Failed to parse version from $lockFile. Expected a line that begins with 'version:'" - } - $version = $version.TrimStart('version:').Trim() - $korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version) - - if (!(Test-Path $korebuildPath)) { - Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version" - New-Item -ItemType Directory -Path $korebuildPath | Out-Null - $remotePath = "$ToolsSource/korebuild/artifacts/$version/korebuild.$version.zip" - - try { - $tmpfile = Join-Path ([IO.Path]::GetTempPath()) "KoreBuild-$([guid]::NewGuid()).zip" - Get-RemoteFile $remotePath $tmpfile $ToolsSourceSuffix - if (Get-Command -Name 'Expand-Archive' -ErrorAction Ignore) { - # Use built-in commands where possible as they are cross-plat compatible - Expand-Archive -Path $tmpfile -DestinationPath $korebuildPath - } - else { - # Fallback to old approach for old installations of PowerShell - Add-Type -AssemblyName System.IO.Compression.FileSystem - [System.IO.Compression.ZipFile]::ExtractToDirectory($tmpfile, $korebuildPath) - } - } - catch { - Remove-Item -Recurse -Force $korebuildPath -ErrorAction Ignore - throw - } - finally { - Remove-Item $tmpfile -ErrorAction Ignore - } - } - - return $korebuildPath -} - -function Join-Paths([string]$path, [string[]]$childPaths) { - $childPaths | ForEach-Object { $path = Join-Path $path $_ } - return $path -} - -function Get-RemoteFile([string]$RemotePath, [string]$LocalPath, [string]$RemoteSuffix) { - if ($RemotePath -notlike 'http*') { - Copy-Item $RemotePath $LocalPath - return - } - - $retries = 10 - while ($retries -gt 0) { - $retries -= 1 - try { - Invoke-WebRequest -UseBasicParsing -Uri $($RemotePath + $RemoteSuffix) -OutFile $LocalPath - return - } - catch { - Write-Verbose "Request failed. $retries retries remaining" - } - } - - Write-Error "Download failed: '$RemotePath'." -} - -# -# Main -# - -# Load configuration or set defaults - -$Path = Resolve-Path $Path -if (!$ConfigFile) { $ConfigFile = Join-Path $Path 'korebuild.json' } - -if (Test-Path $ConfigFile) { - try { - $config = Get-Content -Raw -Encoding UTF8 -Path $ConfigFile | ConvertFrom-Json - if ($config) { - if (!($Channel) -and (Get-Member -Name 'channel' -InputObject $config)) { [string] $Channel = $config.channel } - if (!($ToolsSource) -and (Get-Member -Name 'toolsSource' -InputObject $config)) { [string] $ToolsSource = $config.toolsSource} - } - } - catch { - Write-Warning "$ConfigFile could not be read. Its settings will be ignored." - Write-Warning $Error[0] - } -} - -if (!$DotNetHome) { - $DotNetHome = if ($env:DOTNET_HOME) { $env:DOTNET_HOME } ` - elseif ($env:USERPROFILE) { Join-Path $env:USERPROFILE '.dotnet'} ` - elseif ($env:HOME) {Join-Path $env:HOME '.dotnet'}` - else { Join-Path $PSScriptRoot '.dotnet'} -} - -if (!$Channel) { $Channel = 'dev' } -if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' } - -# Execute - -$korebuildPath = Get-KoreBuild -Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1') - -try { - Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile - Invoke-KoreBuildCommand $Command @Arguments -} -finally { - Remove-Module 'KoreBuild' -ErrorAction Ignore -} diff --git a/run.sh b/run.sh deleted file mode 100755 index 834961fc3a..0000000000 --- a/run.sh +++ /dev/null @@ -1,231 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -# -# variables -# - -RESET="\033[0m" -RED="\033[0;31m" -YELLOW="\033[0;33m" -MAGENTA="\033[0;95m" -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet" -verbose=false -update=false -repo_path="$DIR" -channel='' -tools_source='' -tools_source_suffix='' - -# -# Functions -# -__usage() { - echo "Usage: $(basename "${BASH_SOURCE[0]}") command [options] [[--] ...]" - echo "" - echo "Arguments:" - echo " command The command to be run." - echo " ... Arguments passed to the command. Variable number of arguments allowed." - echo "" - echo "Options:" - echo " --verbose Show verbose output." - echo " -c|--channel The channel of KoreBuild to download. Overrides the value from the config file.." - echo " --config-file The path to the configuration file that stores values. Defaults to korebuild.json." - echo " -d|--dotnet-home The directory where .NET Core tools will be stored. Defaults to '\$DOTNET_HOME' or '\$HOME/.dotnet." - echo " --path The directory to build. Defaults to the directory containing the script." - echo " -s|--tools-source|-ToolsSource The base url where build tools can be downloaded. Overrides the value from the config file." - echo " --tools-source-suffix|-ToolsSourceSuffix The suffix to append to tools-source. Useful for query strings." - echo " -u|--update Update to the latest KoreBuild even if the lock file is present." - echo "" - echo "Description:" - echo " This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be." - echo " When the lockfile is not present, KoreBuild will create one using latest available version from \$channel." - - if [[ "${1:-}" != '--no-exit' ]]; then - exit 2 - fi -} - -get_korebuild() { - local version - local lock_file="$repo_path/korebuild-lock.txt" - if [ ! -f "$lock_file" ] || [ "$update" = true ]; then - __get_remote_file "$tools_source/korebuild/channels/$channel/latest.txt" "$lock_file" "$tools_source_suffix" - fi - version="$(grep 'version:*' -m 1 "$lock_file")" - if [[ "$version" == '' ]]; then - __error "Failed to parse version from $lock_file. Expected a line that begins with 'version:'" - return 1 - fi - version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" - local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version" - - { - if [ ! -d "$korebuild_path" ]; then - mkdir -p "$korebuild_path" - local remote_path="$tools_source/korebuild/artifacts/$version/korebuild.$version.zip" - tmpfile="$(mktemp)" - echo -e "${MAGENTA}Downloading KoreBuild ${version}${RESET}" - if __get_remote_file "$remote_path" "$tmpfile" "$tools_source_suffix"; then - unzip -q -d "$korebuild_path" "$tmpfile" - fi - rm "$tmpfile" || true - fi - - source "$korebuild_path/KoreBuild.sh" - } || { - if [ -d "$korebuild_path" ]; then - echo "Cleaning up after failed installation" - rm -rf "$korebuild_path" || true - fi - return 1 - } -} - -__error() { - echo -e "${RED}error: $*${RESET}" 1>&2 -} - -__warn() { - echo -e "${YELLOW}warning: $*${RESET}" -} - -__machine_has() { - hash "$1" > /dev/null 2>&1 - return $? -} - -__get_remote_file() { - local remote_path=$1 - local local_path=$2 - local remote_path_suffix=$3 - - if [[ "$remote_path" != 'http'* ]]; then - cp "$remote_path" "$local_path" - return 0 - fi - - local failed=false - if __machine_has wget; then - wget --tries 10 --quiet -O "$local_path" "${remote_path}${remote_path_suffix}" || failed=true - else - failed=true - fi - - if [ "$failed" = true ] && __machine_has curl; then - failed=false - curl --retry 10 -sSL -f --create-dirs -o "$local_path" "${remote_path}${remote_path_suffix}" || failed=true - fi - - if [ "$failed" = true ]; then - __error "Download failed: $remote_path" 1>&2 - return 1 - fi -} - -# -# main -# - -command="${1:-}" -shift - -while [[ $# -gt 0 ]]; do - case $1 in - -\?|-h|--help) - __usage --no-exit - exit 0 - ;; - -c|--channel|-Channel) - shift - channel="${1:-}" - [ -z "$channel" ] && __usage - ;; - --config-file|-ConfigFile) - shift - config_file="${1:-}" - [ -z "$config_file" ] && __usage - if [ ! -f "$config_file" ]; then - __error "Invalid value for --config-file. $config_file does not exist." - exit 1 - fi - ;; - -d|--dotnet-home|-DotNetHome) - shift - DOTNET_HOME="${1:-}" - [ -z "$DOTNET_HOME" ] && __usage - ;; - --path|-Path) - shift - repo_path="${1:-}" - [ -z "$repo_path" ] && __usage - ;; - -s|--tools-source|-ToolsSource) - shift - tools_source="${1:-}" - [ -z "$tools_source" ] && __usage - ;; - --tools-source-suffix|-ToolsSourceSuffix) - shift - tools_source_suffix="${1:-}" - [ -z "$tools_source_suffix" ] && __usage - ;; - -u|--update|-Update) - update=true - ;; - --verbose|-Verbose) - verbose=true - ;; - --) - shift - break - ;; - *) - break - ;; - esac - shift -done - -if ! __machine_has unzip; then - __error 'Missing required command: unzip' - exit 1 -fi - -if ! __machine_has curl && ! __machine_has wget; then - __error 'Missing required command. Either wget or curl is required.' - exit 1 -fi - -[ -z "${config_file:-}" ] && config_file="$repo_path/korebuild.json" -if [ -f "$config_file" ]; then - if __machine_has jq ; then - if jq '.' "$config_file" >/dev/null ; then - config_channel="$(jq -r 'select(.channel!=null) | .channel' "$config_file")" - config_tools_source="$(jq -r 'select(.toolsSource!=null) | .toolsSource' "$config_file")" - else - __warn "$config_file is invalid JSON. Its settings will be ignored." - fi - elif __machine_has python ; then - if python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then - config_channel="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")" - config_tools_source="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")" - else - __warn "$config_file is invalid JSON. Its settings will be ignored." - fi - else - __warn 'Missing required command: jq or pyton. Could not parse the JSON file. Its settings will be ignored.' - fi - - [ ! -z "${config_channel:-}" ] && channel="$config_channel" - [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source" -fi - -[ -z "$channel" ] && channel='dev' -[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools' - -get_korebuild -set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" -invoke_korebuild_command "$command" "$@" diff --git a/samples/LocalizationSample/LocalizationSample.csproj b/samples/LocalizationSample/LocalizationSample.csproj deleted file mode 100644 index 114b948783..0000000000 --- a/samples/LocalizationSample/LocalizationSample.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - netcoreapp2.1;netcoreapp2.0;net461 - - - - - - - - - - - - - - - diff --git a/src/Directory.Build.props b/src/Directory.Build.props deleted file mode 100644 index 1e0980f663..0000000000 --- a/src/Directory.Build.props +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizer.cs b/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizer.cs deleted file mode 100644 index 0e1145bbca..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizer.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.Globalization; - -namespace Microsoft.Extensions.Localization -{ - /// - /// Represents a service that provides localized strings. - /// - public interface IStringLocalizer - { - /// - /// Gets the string resource with the given name. - /// - /// The name of the string resource. - /// The string resource as a . - LocalizedString this[string name] { get; } - - /// - /// Gets the string resource with the given name and formatted with the supplied arguments. - /// - /// The name of the string resource. - /// The values to format the string with. - /// The formatted string resource as a . - LocalizedString this[string name, params object[] arguments] { get; } - - /// - /// Gets all string resources. - /// - /// - /// A indicating whether to include strings from parent cultures. - /// - /// The strings. - IEnumerable GetAllStrings(bool includeParentCultures); - - /// - /// Creates a new for a specific . - /// - /// The to use. - /// A culture-specific . - IStringLocalizer WithCulture(CultureInfo culture); - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerFactory.cs b/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerFactory.cs deleted file mode 100644 index 559fa69c30..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerFactory.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; - -namespace Microsoft.Extensions.Localization -{ - /// - /// Represents a factory that creates instances. - /// - public interface IStringLocalizerFactory - { - /// - /// Creates an using the and - /// of the specified . - /// - /// The . - /// The . - IStringLocalizer Create(Type resourceSource); - - /// - /// Creates an . - /// - /// The base name of the resource to load strings from. - /// The location to load resources from. - /// The . - IStringLocalizer Create(string baseName, string location); - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerOfT.cs b/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerOfT.cs deleted file mode 100644 index 695678a900..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/IStringLocalizerOfT.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.Extensions.Localization -{ - /// - /// Represents an that provides strings for . - /// - /// The to provide strings for. - public interface IStringLocalizer : IStringLocalizer - { - - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization.Abstractions/LocalizedString.cs b/src/Microsoft.Extensions.Localization.Abstractions/LocalizedString.cs deleted file mode 100644 index 6556da40a0..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/LocalizedString.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; - -namespace Microsoft.Extensions.Localization -{ - /// - /// A locale specific string. - /// - public class LocalizedString - { - /// - /// Creates a new . - /// - /// The name of the string in the resource it was loaded from. - /// The actual string. - public LocalizedString(string name, string value) - : this(name, value, resourceNotFound: false) - { - } - - /// - /// Creates a new . - /// - /// The name of the string in the resource it was loaded from. - /// The actual string. - /// Whether the string was not found in a resource. Set this to true to indicate an alternate string value was used. - public LocalizedString(string name, string value, bool resourceNotFound) - : this(name, value, resourceNotFound, searchedLocation: null) - { - } - - /// - /// Creates a new . - /// - /// The name of the string in the resource it was loaded from. - /// The actual string. - /// Whether the string was not found in a resource. Set this to true to indicate an alternate string value was used. - /// The location which was searched for a localization value. - public LocalizedString(string name, string value, bool resourceNotFound, string searchedLocation) - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - Name = name; - Value = value; - ResourceNotFound = resourceNotFound; - SearchedLocation = searchedLocation; - } - - public static implicit operator string(LocalizedString localizedString) - { - return localizedString?.Value; - } - - /// - /// The name of the string in the resource it was loaded from. - /// - public string Name { get; } - - /// - /// The actual string. - /// - public string Value { get; } - - /// - /// Whether the string was not found in a resource. If true, an alternate string value was used. - /// - public bool ResourceNotFound { get; } - - /// - /// The location which was searched for a localization value. - /// - public string SearchedLocation { get; } - - /// - /// Returns the actual string. - /// - /// The actual string. - public override string ToString() => Value; - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization.Abstractions/Microsoft.Extensions.Localization.Abstractions.csproj b/src/Microsoft.Extensions.Localization.Abstractions/Microsoft.Extensions.Localization.Abstractions.csproj deleted file mode 100644 index 8508eb071a..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/Microsoft.Extensions.Localization.Abstractions.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - Microsoft .NET Extensions - Abstractions of application localization services. -Commonly used types: -Microsoft.Extensions.Localization.IStringLocalizer -Microsoft.Extensions.Localization.IStringLocalizer<T> - netstandard2.0 - $(NoWarn);CS1591 - true - localization - - - diff --git a/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerExtensions.cs b/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerExtensions.cs deleted file mode 100644 index bde47f74f3..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerExtensions.cs +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; - -namespace Microsoft.Extensions.Localization -{ - public static class StringLocalizerExtensions - { - /// - /// Gets the string resource with the given name. - /// - /// The . - /// The name of the string resource. - /// The string resource as a . - public static LocalizedString GetString( - this IStringLocalizer stringLocalizer, - string name) - { - if (stringLocalizer == null) - { - throw new ArgumentNullException(nameof(stringLocalizer)); - } - - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - return stringLocalizer[name]; - } - - /// - /// Gets the string resource with the given name and formatted with the supplied arguments. - /// - /// The . - /// The name of the string resource. - /// The values to format the string with. - /// The formatted string resource as a . - public static LocalizedString GetString( - this IStringLocalizer stringLocalizer, - string name, - params object[] arguments) - { - if (stringLocalizer == null) - { - throw new ArgumentNullException(nameof(stringLocalizer)); - } - - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - return stringLocalizer[name, arguments]; - } - - /// - /// Gets all string resources including those for parent cultures. - /// - /// The . - /// The string resources. - public static IEnumerable GetAllStrings(this IStringLocalizer stringLocalizer) - { - if (stringLocalizer == null) - { - throw new ArgumentNullException(nameof(stringLocalizer)); - } - - return stringLocalizer.GetAllStrings(includeParentCultures: true); - } - } -} diff --git a/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs b/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs deleted file mode 100644 index 131c1126ec..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Globalization; - -namespace Microsoft.Extensions.Localization -{ - /// - /// Provides strings for . - /// - /// The to provide strings for. - public class StringLocalizer : IStringLocalizer - { - private IStringLocalizer _localizer; - - /// - /// Creates a new . - /// - /// The to use. - public StringLocalizer(IStringLocalizerFactory factory) - { - if (factory == null) - { - throw new ArgumentNullException(nameof(factory)); - } - - _localizer = factory.Create(typeof(TResourceSource)); - } - - /// - public virtual IStringLocalizer WithCulture(CultureInfo culture) => _localizer.WithCulture(culture); - - /// - public virtual LocalizedString this[string name] - { - get - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - return _localizer[name]; - } - } - - /// - public virtual LocalizedString this[string name, params object[] arguments] - { - get - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - return _localizer[name, arguments]; - } - } - - /// - public IEnumerable GetAllStrings(bool includeParentCultures) => - _localizer.GetAllStrings(includeParentCultures); - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization.Abstractions/baseline.netcore.json b/src/Microsoft.Extensions.Localization.Abstractions/baseline.netcore.json deleted file mode 100644 index 02ba71db8e..0000000000 --- a/src/Microsoft.Extensions.Localization.Abstractions/baseline.netcore.json +++ /dev/null @@ -1,413 +0,0 @@ -{ - "AssemblyIdentity": "Microsoft.Extensions.Localization.Abstractions, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60", - "Types": [ - { - "Name": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "Kind": "Interface", - "Abstract": true, - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "arguments", - "Type": "System.Object[]", - "IsParams": true - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetAllStrings", - "Parameters": [ - { - "Name": "includeParentCultures", - "Type": "System.Boolean" - } - ], - "ReturnType": "System.Collections.Generic.IEnumerable", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "WithCulture", - "Parameters": [ - { - "Name": "culture", - "Type": "System.Globalization.CultureInfo" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.IStringLocalizer", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.IStringLocalizerFactory", - "Visibility": "Public", - "Kind": "Interface", - "Abstract": true, - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "Create", - "Parameters": [ - { - "Name": "resourceSource", - "Type": "System.Type" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.IStringLocalizer", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "Create", - "Parameters": [ - { - "Name": "baseName", - "Type": "System.String" - }, - { - "Name": "location", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.IStringLocalizer", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "Kind": "Interface", - "Abstract": true, - "ImplementedInterfaces": [ - "Microsoft.Extensions.Localization.IStringLocalizer" - ], - "Members": [], - "GenericParameters": [ - { - "ParameterName": "T", - "ParameterPosition": 0, - "BaseTypeOrInterfaces": [] - } - ] - }, - { - "Name": "Microsoft.Extensions.Localization.LocalizedString", - "Visibility": "Public", - "Kind": "Class", - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "op_Implicit", - "Parameters": [ - { - "Name": "localizedString", - "Type": "Microsoft.Extensions.Localization.LocalizedString" - } - ], - "ReturnType": "System.String", - "Static": true, - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_Name", - "Parameters": [], - "ReturnType": "System.String", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_Value", - "Parameters": [], - "ReturnType": "System.String", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_ResourceNotFound", - "Parameters": [], - "ReturnType": "System.Boolean", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_SearchedLocation", - "Parameters": [], - "ReturnType": "System.String", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "ToString", - "Parameters": [], - "ReturnType": "System.String", - "Virtual": true, - "Override": true, - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "value", - "Type": "System.String" - } - ], - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "value", - "Type": "System.String" - }, - { - "Name": "resourceNotFound", - "Type": "System.Boolean" - } - ], - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "value", - "Type": "System.String" - }, - { - "Name": "resourceNotFound", - "Type": "System.Boolean" - }, - { - "Name": "searchedLocation", - "Type": "System.String" - } - ], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.StringLocalizerExtensions", - "Visibility": "Public", - "Kind": "Class", - "Abstract": true, - "Static": true, - "Sealed": true, - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "GetString", - "Parameters": [ - { - "Name": "stringLocalizer", - "Type": "Microsoft.Extensions.Localization.IStringLocalizer" - }, - { - "Name": "name", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Static": true, - "Extension": true, - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetString", - "Parameters": [ - { - "Name": "stringLocalizer", - "Type": "Microsoft.Extensions.Localization.IStringLocalizer" - }, - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "arguments", - "Type": "System.Object[]", - "IsParams": true - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Static": true, - "Extension": true, - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetAllStrings", - "Parameters": [ - { - "Name": "stringLocalizer", - "Type": "Microsoft.Extensions.Localization.IStringLocalizer" - } - ], - "ReturnType": "System.Collections.Generic.IEnumerable", - "Static": true, - "Extension": true, - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.StringLocalizer", - "Visibility": "Public", - "Kind": "Class", - "ImplementedInterfaces": [ - "Microsoft.Extensions.Localization.IStringLocalizer" - ], - "Members": [ - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "arguments", - "Type": "System.Object[]", - "IsParams": true - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetAllStrings", - "Parameters": [ - { - "Name": "includeParentCultures", - "Type": "System.Boolean" - } - ], - "ReturnType": "System.Collections.Generic.IEnumerable", - "Sealed": true, - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "WithCulture", - "Parameters": [ - { - "Name": "culture", - "Type": "System.Globalization.CultureInfo" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.IStringLocalizer", - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "factory", - "Type": "Microsoft.Extensions.Localization.IStringLocalizerFactory" - } - ], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [ - { - "ParameterName": "TResourceSource", - "ParameterPosition": 0, - "BaseTypeOrInterfaces": [] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization/IResourceNamesCache.cs b/src/Microsoft.Extensions.Localization/IResourceNamesCache.cs deleted file mode 100644 index 90d104aa68..0000000000 --- a/src/Microsoft.Extensions.Localization/IResourceNamesCache.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; - -namespace Microsoft.Extensions.Localization -{ - /// - /// Represents a cache of string names in resources. - /// - public interface IResourceNamesCache - { - /// - /// Adds a set of resource names to the cache by using the specified function, if the name does not already exist. - /// - /// The resource name to add string names for. - /// The function used to generate the string names for the resource. - /// The string names for the resource. - IList GetOrAdd(string name, Func> valueFactory); - } -} diff --git a/src/Microsoft.Extensions.Localization/Internal/AssemblyWrapper.cs b/src/Microsoft.Extensions.Localization/Internal/AssemblyWrapper.cs deleted file mode 100644 index b0c3c2bce1..0000000000 --- a/src/Microsoft.Extensions.Localization/Internal/AssemblyWrapper.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.IO; -using System.Reflection; - -namespace Microsoft.Extensions.Localization.Internal -{ - public class AssemblyWrapper - { - public AssemblyWrapper(Assembly assembly) - { - if (assembly == null) - { - throw new ArgumentNullException(nameof(assembly)); - } - - Assembly = assembly; - } - - public Assembly Assembly { get; } - - public virtual string FullName => Assembly.FullName; - - public virtual Stream GetManifestResourceStream(string name) => Assembly.GetManifestResourceStream(name); - } -} diff --git a/src/Microsoft.Extensions.Localization/Internal/IResourceStringProvider.cs b/src/Microsoft.Extensions.Localization/Internal/IResourceStringProvider.cs deleted file mode 100644 index b74bd80eda..0000000000 --- a/src/Microsoft.Extensions.Localization/Internal/IResourceStringProvider.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.Globalization; - -namespace Microsoft.Extensions.Localization.Internal -{ - public interface IResourceStringProvider - { - IList GetAllResourceStrings(CultureInfo culture, bool throwOnMissing); - } -} diff --git a/src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringLocalizerLoggerExtensions.cs b/src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringLocalizerLoggerExtensions.cs deleted file mode 100644 index 456e07009e..0000000000 --- a/src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringLocalizerLoggerExtensions.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Globalization; -using Microsoft.Extensions.Logging; - -namespace Microsoft.Extensions.Localization.Internal -{ - internal static class ResourceManagerStringLocalizerLoggerExtensions - { - private static readonly Action _searchedLocation; - - static ResourceManagerStringLocalizerLoggerExtensions() - { - _searchedLocation = LoggerMessage.Define( - LogLevel.Debug, - 1, - $"{nameof(ResourceManagerStringLocalizer)} searched for '{{Key}}' in '{{LocationSearched}}' with culture '{{Culture}}'."); - } - - public static void SearchedLocation(this ILogger logger, string key, string searchedLocation, CultureInfo culture) - { - _searchedLocation(logger, key, searchedLocation, culture, null); - } - } -} diff --git a/src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringProvider.cs b/src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringProvider.cs deleted file mode 100644 index 9eef8c84a8..0000000000 --- a/src/Microsoft.Extensions.Localization/Internal/ResourceManagerStringProvider.cs +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using System.Reflection; -using System.Resources; - -namespace Microsoft.Extensions.Localization.Internal -{ - public class ResourceManagerStringProvider : IResourceStringProvider - { - private readonly IResourceNamesCache _resourceNamesCache; - private readonly ResourceManager _resourceManager; - private readonly Assembly _assembly; - private readonly string _resourceBaseName; - - public ResourceManagerStringProvider( - IResourceNamesCache resourceCache, - ResourceManager resourceManager, - Assembly assembly, - string baseName) - { - _resourceManager = resourceManager; - _resourceNamesCache = resourceCache; - _assembly = assembly; - _resourceBaseName = baseName; - } - - private string GetResourceCacheKey(CultureInfo culture) - { - var resourceName = _resourceManager.BaseName; - - return $"Culture={culture.Name};resourceName={resourceName};Assembly={_assembly.FullName}"; - } - - private string GetResourceName(CultureInfo culture) - { - var resourceStreamName = _resourceBaseName; - if (!string.IsNullOrEmpty(culture.Name)) - { - resourceStreamName += "." + culture.Name; - } - resourceStreamName += ".resources"; - - return resourceStreamName; - } - - public IList GetAllResourceStrings(CultureInfo culture, bool throwOnMissing) - { - var cacheKey = GetResourceCacheKey(culture); - - return _resourceNamesCache.GetOrAdd(cacheKey, _ => - { - // We purposly don't dispose the ResourceSet because it causes an ObjectDisposedException when you try to read the values later. - var resourceSet = _resourceManager.GetResourceSet(culture, createIfNotExists: true, tryParents: false); - if (resourceSet == null) - { - if (throwOnMissing) - { - throw new MissingManifestResourceException(Resources.FormatLocalization_MissingManifest(GetResourceName(culture))); - } - else - { - return null; - } - } - - var names = new List(); - foreach (DictionaryEntry entry in resourceSet) - { - names.Add((string)entry.Key); - } - - return names; - }); - } - } -} diff --git a/src/Microsoft.Extensions.Localization/LocalizationOptions.cs b/src/Microsoft.Extensions.Localization/LocalizationOptions.cs deleted file mode 100644 index 1b7408fe67..0000000000 --- a/src/Microsoft.Extensions.Localization/LocalizationOptions.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.Extensions.Localization -{ - /// - /// Provides programmatic configuration for localization. - /// - public class LocalizationOptions - { - /// - /// The relative path under application root where resource files are located. - /// - public string ResourcesPath { get; set; } = string.Empty; - } -} diff --git a/src/Microsoft.Extensions.Localization/LocalizationServiceCollectionExtensions.cs b/src/Microsoft.Extensions.Localization/LocalizationServiceCollectionExtensions.cs deleted file mode 100644 index 111c1c40d9..0000000000 --- a/src/Microsoft.Extensions.Localization/LocalizationServiceCollectionExtensions.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Localization; - -namespace Microsoft.Extensions.DependencyInjection -{ - /// - /// Extension methods for setting up localization services in an . - /// - public static class LocalizationServiceCollectionExtensions - { - /// - /// Adds services required for application localization. - /// - /// The to add the services to. - /// The so that additional calls can be chained. - public static IServiceCollection AddLocalization(this IServiceCollection services) - { - if (services == null) - { - throw new ArgumentNullException(nameof(services)); - } - - services.AddOptions(); - - AddLocalizationServices(services); - - return services; - } - - /// - /// Adds services required for application localization. - /// - /// The to add the services to. - /// - /// An to configure the . - /// - /// The so that additional calls can be chained. - public static IServiceCollection AddLocalization( - this IServiceCollection services, - Action setupAction) - { - if (services == null) - { - throw new ArgumentNullException(nameof(services)); - } - - if (setupAction == null) - { - throw new ArgumentNullException(nameof(setupAction)); - } - - AddLocalizationServices(services, setupAction); - - return services; - } - - // To enable unit testing - internal static void AddLocalizationServices(IServiceCollection services) - { - services.TryAddSingleton(); - services.TryAddTransient(typeof(IStringLocalizer<>), typeof(StringLocalizer<>)); - } - - internal static void AddLocalizationServices( - IServiceCollection services, - Action setupAction) - { - AddLocalizationServices(services); - services.Configure(setupAction); - } - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization/Microsoft.Extensions.Localization.csproj b/src/Microsoft.Extensions.Localization/Microsoft.Extensions.Localization.csproj deleted file mode 100644 index d0e6e26596..0000000000 --- a/src/Microsoft.Extensions.Localization/Microsoft.Extensions.Localization.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - Microsoft .NET Extensions - Application localization services and default implementation based on ResourceManager to load localized assembly resources. - netstandard2.0 - $(NoWarn);CS1591 - true - localization - - - - - - - - - - - - - diff --git a/src/Microsoft.Extensions.Localization/Properties/AssemblyInfo.cs b/src/Microsoft.Extensions.Localization/Properties/AssemblyInfo.cs deleted file mode 100644 index 3e297b801e..0000000000 --- a/src/Microsoft.Extensions.Localization/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Microsoft.Extensions.Localization.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] diff --git a/src/Microsoft.Extensions.Localization/Properties/Resources.Designer.cs b/src/Microsoft.Extensions.Localization/Properties/Resources.Designer.cs deleted file mode 100644 index 1123d648ad..0000000000 --- a/src/Microsoft.Extensions.Localization/Properties/Resources.Designer.cs +++ /dev/null @@ -1,62 +0,0 @@ -// -namespace Microsoft.Extensions.Localization -{ - using System.Globalization; - using System.Reflection; - using System.Resources; - - internal static class Resources - { - private static readonly ResourceManager _resourceManager - = new ResourceManager("Microsoft.Extensions.Localization.Resources", typeof(Resources).GetTypeInfo().Assembly); - - /// - /// The manifest '{0}' was not found. - /// - internal static string Localization_MissingManifest - { - get { return GetString("Localization_MissingManifest"); } - } - - /// - /// The manifest '{0}' was not found. - /// - internal static string FormatLocalization_MissingManifest(object p0) - { - return string.Format(CultureInfo.CurrentCulture, GetString("Localization_MissingManifest"), p0); - } - - /// - /// No manifests exist for the current culture. - /// - internal static string Localization_MissingManifest_Parent - { - get { return GetString("Localization_MissingManifest_Parent"); } - } - - /// - /// No manifests exist for the current culture. - /// - internal static string FormatLocalization_MissingManifest_Parent() - { - return GetString("Localization_MissingManifest_Parent"); - } - - private static string GetString(string name, params string[] formatterNames) - { - var value = _resourceManager.GetString(name); - - System.Diagnostics.Debug.Assert(value != null); - - if (formatterNames != null) - { - for (var i = 0; i < formatterNames.Length; i++) - { - value = value.Replace("{" + formatterNames[i] + "}", "{" + i + "}"); - } - } - - return value; - } - } -} diff --git a/src/Microsoft.Extensions.Localization/ResourceLocationAttribute.cs b/src/Microsoft.Extensions.Localization/ResourceLocationAttribute.cs deleted file mode 100644 index 5bf281d90e..0000000000 --- a/src/Microsoft.Extensions.Localization/ResourceLocationAttribute.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; - -namespace Microsoft.Extensions.Localization -{ - /// - /// Provides the location of resources for an Assembly. - /// - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false, Inherited = false)] - public class ResourceLocationAttribute : Attribute - { - /// - /// Creates a new . - /// - /// The location of resources for this Assembly. - public ResourceLocationAttribute(string resourceLocation) - { - if (string.IsNullOrEmpty(resourceLocation)) - { - throw new ArgumentNullException(nameof(resourceLocation)); - } - - ResourceLocation = resourceLocation; - } - - /// - /// The location of resources for this Assembly. - /// - public string ResourceLocation { get; } - } -} diff --git a/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs b/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs deleted file mode 100644 index e2e1a3f234..0000000000 --- a/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Globalization; -using System.Reflection; -using System.Resources; -using Microsoft.Extensions.Localization.Internal; -using Microsoft.Extensions.Logging; - -namespace Microsoft.Extensions.Localization -{ - /// - /// An that uses the and - /// to provide localized strings. - /// - /// This type is thread-safe. - public class ResourceManagerStringLocalizer : IStringLocalizer - { - private readonly ConcurrentDictionary _missingManifestCache = new ConcurrentDictionary(); - private readonly IResourceNamesCache _resourceNamesCache; - private readonly ResourceManager _resourceManager; - private readonly IResourceStringProvider _resourceStringProvider; - private readonly string _resourceBaseName; - private readonly ILogger _logger; - - /// - /// Creates a new . - /// - /// The to read strings from. - /// The that contains the strings as embedded resources. - /// The base name of the embedded resource that contains the strings. - /// Cache of the list of strings for a given resource assembly name. - /// The . - public ResourceManagerStringLocalizer( - ResourceManager resourceManager, - Assembly resourceAssembly, - string baseName, - IResourceNamesCache resourceNamesCache, - ILogger logger) - : this( - resourceManager, - new AssemblyWrapper(resourceAssembly), - baseName, - resourceNamesCache, - logger) - { - } - - /// - /// Intended for testing purposes only. - /// - public ResourceManagerStringLocalizer( - ResourceManager resourceManager, - AssemblyWrapper resourceAssemblyWrapper, - string baseName, - IResourceNamesCache resourceNamesCache, - ILogger logger) - : this( - resourceManager, - new ResourceManagerStringProvider( - resourceNamesCache, - resourceManager, - resourceAssemblyWrapper.Assembly, - baseName), - baseName, - resourceNamesCache, - logger) - { - } - - /// - /// Intended for testing purposes only. - /// - public ResourceManagerStringLocalizer( - ResourceManager resourceManager, - IResourceStringProvider resourceStringProvider, - string baseName, - IResourceNamesCache resourceNamesCache, - ILogger logger) - { - if (resourceManager == null) - { - throw new ArgumentNullException(nameof(resourceManager)); - } - - if (resourceStringProvider == null) - { - throw new ArgumentNullException(nameof(resourceStringProvider)); - } - - if (baseName == null) - { - throw new ArgumentNullException(nameof(baseName)); - } - - if (resourceNamesCache == null) - { - throw new ArgumentNullException(nameof(resourceNamesCache)); - } - - if (logger == null) - { - throw new ArgumentNullException(nameof(logger)); - } - - _resourceStringProvider = resourceStringProvider; - _resourceManager = resourceManager; - _resourceBaseName = baseName; - _resourceNamesCache = resourceNamesCache; - _logger = logger; - } - - /// - public virtual LocalizedString this[string name] - { - get - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - var value = GetStringSafely(name, null); - - return new LocalizedString(name, value ?? name, resourceNotFound: value == null, searchedLocation: _resourceBaseName); - } - } - - /// - public virtual LocalizedString this[string name, params object[] arguments] - { - get - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - var format = GetStringSafely(name, null); - var value = string.Format(format ?? name, arguments); - - return new LocalizedString(name, value, resourceNotFound: format == null, searchedLocation: _resourceBaseName); - } - } - - /// - /// Creates a new for a specific . - /// - /// The to use. - /// A culture-specific . - public IStringLocalizer WithCulture(CultureInfo culture) - { - return culture == null - ? new ResourceManagerStringLocalizer( - _resourceManager, - _resourceStringProvider, - _resourceBaseName, - _resourceNamesCache, - _logger) - : new ResourceManagerWithCultureStringLocalizer( - _resourceManager, - _resourceStringProvider, - _resourceBaseName, - _resourceNamesCache, - culture, - _logger); - } - - /// - public virtual IEnumerable GetAllStrings(bool includeParentCultures) => - GetAllStrings(includeParentCultures, CultureInfo.CurrentUICulture); - - /// - /// Returns all strings in the specified culture. - /// - /// - /// The to get strings for. - /// The strings. - protected IEnumerable GetAllStrings(bool includeParentCultures, CultureInfo culture) - { - if (culture == null) - { - throw new ArgumentNullException(nameof(culture)); - } - - var resourceNames = includeParentCultures - ? GetResourceNamesFromCultureHierarchy(culture) - : _resourceStringProvider.GetAllResourceStrings(culture, true); - - foreach (var name in resourceNames) - { - var value = GetStringSafely(name, culture); - yield return new LocalizedString(name, value ?? name, resourceNotFound: value == null, searchedLocation: _resourceBaseName); - } - } - - /// - /// Gets a resource string from the and returns null instead of - /// throwing exceptions if a match isn't found. - /// - /// The name of the string resource. - /// The to get the string for. - /// The resource string, or null if none was found. - protected string GetStringSafely(string name, CultureInfo culture) - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - var keyCulture = culture ?? CultureInfo.CurrentUICulture; - - var cacheKey = $"name={name}&culture={keyCulture.Name}"; - - _logger.SearchedLocation(name, _resourceBaseName, keyCulture); - - if (_missingManifestCache.ContainsKey(cacheKey)) - { - return null; - } - - try - { - return culture == null ? _resourceManager.GetString(name) : _resourceManager.GetString(name, culture); - } - catch (MissingManifestResourceException) - { - _missingManifestCache.TryAdd(cacheKey, null); - return null; - } - } - - private IEnumerable GetResourceNamesFromCultureHierarchy(CultureInfo startingCulture) - { - var currentCulture = startingCulture; - var resourceNames = new HashSet(); - - var hasAnyCultures = false; - - while (true) - { - - var cultureResourceNames = _resourceStringProvider.GetAllResourceStrings(currentCulture, false); - - if (cultureResourceNames != null) - { - foreach (var resourceName in cultureResourceNames) - { - resourceNames.Add(resourceName); - } - hasAnyCultures = true; - } - - if (currentCulture == currentCulture.Parent) - { - // currentCulture begat currentCulture, probably time to leave - break; - } - - currentCulture = currentCulture.Parent; - } - - if (!hasAnyCultures) - { - throw new MissingManifestResourceException(Resources.Localization_MissingManifest_Parent); - } - - return resourceNames; - } - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizerFactory.cs b/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizerFactory.cs deleted file mode 100644 index 2eb737eaa7..0000000000 --- a/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizerFactory.cs +++ /dev/null @@ -1,270 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Concurrent; -using System.IO; -using System.Reflection; -using System.Resources; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; - -namespace Microsoft.Extensions.Localization -{ - /// - /// An that creates instances of . - /// - /// - /// offers multiple ways to set the relative path of - /// resources to be used. They are, in order of precedence: - /// -> -> the project root. - /// - public class ResourceManagerStringLocalizerFactory : IStringLocalizerFactory - { - private readonly IResourceNamesCache _resourceNamesCache = new ResourceNamesCache(); - private readonly ConcurrentDictionary _localizerCache = - new ConcurrentDictionary(); - private readonly string _resourcesRelativePath; - private readonly ILoggerFactory _loggerFactory; - - /// - /// Creates a new . - /// - /// The . - /// The . - public ResourceManagerStringLocalizerFactory( - IOptions localizationOptions, - ILoggerFactory loggerFactory) - { - if (localizationOptions == null) - { - throw new ArgumentNullException(nameof(localizationOptions)); - } - - if (loggerFactory == null) - { - throw new ArgumentNullException(nameof(loggerFactory)); - } - - _resourcesRelativePath = localizationOptions.Value.ResourcesPath ?? string.Empty; - _loggerFactory = loggerFactory; - - if (!string.IsNullOrEmpty(_resourcesRelativePath)) - { - _resourcesRelativePath = _resourcesRelativePath.Replace(Path.AltDirectorySeparatorChar, '.') - .Replace(Path.DirectorySeparatorChar, '.') + "."; - } - } - - /// - /// Gets the resource prefix used to look up the resource. - /// - /// The type of the resource to be looked up. - /// The prefix for resource lookup. - protected virtual string GetResourcePrefix(TypeInfo typeInfo) - { - if (typeInfo == null) - { - throw new ArgumentNullException(nameof(typeInfo)); - } - - return GetResourcePrefix(typeInfo, GetRootNamespace(typeInfo.Assembly), GetResourcePath(typeInfo.Assembly)); - } - - /// - /// Gets the resource prefix used to look up the resource. - /// - /// The type of the resource to be looked up. - /// The base namespace of the application. - /// The folder containing all resources. - /// The prefix for resource lookup. - /// - /// For the type "Sample.Controllers.Home" if there's a resourceRelativePath return - /// "Sample.Resourcepath.Controllers.Home" if there isn't one then it would return "Sample.Controllers.Home". - /// - protected virtual string GetResourcePrefix(TypeInfo typeInfo, string baseNamespace, string resourcesRelativePath) - { - if (typeInfo == null) - { - throw new ArgumentNullException(nameof(typeInfo)); - } - - if (string.IsNullOrEmpty(baseNamespace)) - { - throw new ArgumentNullException(nameof(baseNamespace)); - } - - if (string.IsNullOrEmpty(resourcesRelativePath)) - { - return typeInfo.FullName; - } - else - { - // This expectation is defined by dotnet's automatic resource storage. - // We have to conform to "{RootNamespace}.{ResourceLocation}.{FullTypeName - AssemblyName}". - var assemblyName = new AssemblyName(typeInfo.Assembly.FullName).Name; - return baseNamespace + "." + resourcesRelativePath + TrimPrefix(typeInfo.FullName, assemblyName + "."); - } - } - - /// - /// Gets the resource prefix used to look up the resource. - /// - /// The name of the resource to be looked up - /// The base namespace of the application. - /// The prefix for resource lookup. - protected virtual string GetResourcePrefix(string baseResourceName, string baseNamespace) - { - if (string.IsNullOrEmpty(baseResourceName)) - { - throw new ArgumentNullException(nameof(baseResourceName)); - } - - if (string.IsNullOrEmpty(baseNamespace)) - { - throw new ArgumentNullException(nameof(baseNamespace)); - } - - var assemblyName = new AssemblyName(baseNamespace); - var assembly = Assembly.Load(assemblyName); - var rootNamespace = GetRootNamespace(assembly); - var resourceLocation = GetResourcePath(assembly); - var locationPath = rootNamespace + "." + resourceLocation; - - baseResourceName = locationPath + TrimPrefix(baseResourceName, baseNamespace + "."); - - return baseResourceName; - } - - /// - /// Creates a using the and - /// of the specified . - /// - /// The . - /// The . - public IStringLocalizer Create(Type resourceSource) - { - if (resourceSource == null) - { - throw new ArgumentNullException(nameof(resourceSource)); - } - - var typeInfo = resourceSource.GetTypeInfo(); - - var baseName = GetResourcePrefix(typeInfo); - - var assembly = typeInfo.Assembly; - - return _localizerCache.GetOrAdd(baseName, _ => CreateResourceManagerStringLocalizer(assembly, baseName)); - } - - /// - /// Creates a . - /// - /// The base name of the resource to load strings from. - /// The location to load resources from. - /// The . - public IStringLocalizer Create(string baseName, string location) - { - if (baseName == null) - { - throw new ArgumentNullException(nameof(baseName)); - } - - if (location == null) - { - throw new ArgumentNullException(nameof(location)); - } - - return _localizerCache.GetOrAdd($"B={baseName},L={location}", _ => - { - var assemblyName = new AssemblyName(location); - var assembly = Assembly.Load(assemblyName); - baseName = GetResourcePrefix(baseName, location); - - return CreateResourceManagerStringLocalizer(assembly, baseName); - }); - } - - /// Creates a for the given input. - /// The assembly to create a for. - /// The base name of the resource to search for. - /// A for the given and . - /// This method is virtual for testing purposes only. - protected virtual ResourceManagerStringLocalizer CreateResourceManagerStringLocalizer( - Assembly assembly, - string baseName) - { - return new ResourceManagerStringLocalizer( - new ResourceManager(baseName, assembly), - assembly, - baseName, - _resourceNamesCache, - _loggerFactory.CreateLogger()); - } - - /// - /// Gets the resource prefix used to look up the resource. - /// - /// The general location of the resource. - /// The base name of the resource. - /// The location of the resource within . - /// The resource prefix used to look up the resource. - protected virtual string GetResourcePrefix(string location, string baseName, string resourceLocation) - { - // Re-root the base name if a resources path is set - return location + "." + resourceLocation + TrimPrefix(baseName, location + "."); - } - - /// Gets a from the provided . - /// The assembly to get a from. - /// The associated with the given . - /// This method is protected and virtual for testing purposes only. - protected virtual ResourceLocationAttribute GetResourceLocationAttribute(Assembly assembly) - { - return assembly.GetCustomAttribute(); - } - - /// Gets a from the provided . - /// The assembly to get a from. - /// The associated with the given . - /// This method is protected and virtual for testing purposes only. - protected virtual RootNamespaceAttribute GetRootNamespaceAttribute(Assembly assembly) - { - return assembly.GetCustomAttribute(); - } - - private string GetRootNamespace(Assembly assembly) - { - var rootNamespaceAttribute = GetRootNamespaceAttribute(assembly); - - return rootNamespaceAttribute?.RootNamespace ?? - new AssemblyName(assembly.FullName).Name; - } - - private string GetResourcePath(Assembly assembly) - { - var resourceLocationAttribute = GetResourceLocationAttribute(assembly); - - // If we don't have an attribute assume all assemblies use the same resource location. - var resourceLocation = resourceLocationAttribute == null - ? _resourcesRelativePath - : resourceLocationAttribute.ResourceLocation + "."; - resourceLocation = resourceLocation - .Replace(Path.DirectorySeparatorChar, '.') - .Replace(Path.AltDirectorySeparatorChar, '.'); - - return resourceLocation; - } - - private static string TrimPrefix(string name, string prefix) - { - if (name.StartsWith(prefix, StringComparison.Ordinal)) - { - return name.Substring(prefix.Length); - } - - return name; - } - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs b/src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs deleted file mode 100644 index 65b6ae242c..0000000000 --- a/src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Reflection; -using System.Resources; -using Microsoft.Extensions.Localization.Internal; -using Microsoft.Extensions.Logging; - -namespace Microsoft.Extensions.Localization -{ - /// - /// An that uses the and - /// to provide localized strings for a specific . - /// - public class ResourceManagerWithCultureStringLocalizer : ResourceManagerStringLocalizer - { - private readonly string _resourceBaseName; - private readonly CultureInfo _culture; - - /// - /// Creates a new . - /// - /// The to read strings from. - /// The that can find the resources. - /// The base name of the embedded resource that contains the strings. - /// Cache of the list of strings for a given resource assembly name. - /// The specific to use. - /// The . - internal ResourceManagerWithCultureStringLocalizer( - ResourceManager resourceManager, - IResourceStringProvider resourceStringProvider, - string baseName, - IResourceNamesCache resourceNamesCache, - CultureInfo culture, - ILogger logger) - : base(resourceManager, resourceStringProvider, baseName, resourceNamesCache, logger) - { - if (resourceManager == null) - { - throw new ArgumentNullException(nameof(resourceManager)); - } - - if (resourceStringProvider == null) - { - throw new ArgumentNullException(nameof(resourceStringProvider)); - } - - if (baseName == null) - { - throw new ArgumentNullException(nameof(baseName)); - } - - if (resourceNamesCache == null) - { - throw new ArgumentNullException(nameof(resourceNamesCache)); - } - - if (culture == null) - { - throw new ArgumentNullException(nameof(culture)); - } - - if (logger == null) - { - throw new ArgumentNullException(nameof(logger)); - } - - _resourceBaseName = baseName; - _culture = culture; - } - - /// - /// Creates a new . - /// - /// The to read strings from. - /// The that contains the strings as embedded resources. - /// The base name of the embedded resource that contains the strings. - /// Cache of the list of strings for a given resource assembly name. - /// The specific to use. - /// The . - public ResourceManagerWithCultureStringLocalizer( - ResourceManager resourceManager, - Assembly resourceAssembly, - string baseName, - IResourceNamesCache resourceNamesCache, - CultureInfo culture, - ILogger logger) - : base(resourceManager, resourceAssembly, baseName, resourceNamesCache, logger) - { - if (resourceManager == null) - { - throw new ArgumentNullException(nameof(resourceManager)); - } - - if (resourceAssembly == null) - { - throw new ArgumentNullException(nameof(resourceAssembly)); - } - - if (baseName == null) - { - throw new ArgumentNullException(nameof(baseName)); - } - - if (resourceNamesCache == null) - { - throw new ArgumentNullException(nameof(resourceNamesCache)); - } - - if (culture == null) - { - throw new ArgumentNullException(nameof(culture)); - } - - if (logger == null) - { - throw new ArgumentNullException(nameof(logger)); - } - - _resourceBaseName = baseName; - _culture = culture; - } - - /// - public override LocalizedString this[string name] - { - get - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - var value = GetStringSafely(name, _culture); - - return new LocalizedString(name, value ?? name, resourceNotFound: value == null, searchedLocation: _resourceBaseName); - } - } - - /// - public override LocalizedString this[string name, params object[] arguments] - { - get - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - var format = GetStringSafely(name, _culture); - var value = string.Format(_culture, format ?? name, arguments); - - return new LocalizedString(name, value, resourceNotFound: format == null, searchedLocation: _resourceBaseName); - } - } - - /// - public override IEnumerable GetAllStrings(bool includeParentCultures) => - GetAllStrings(includeParentCultures, _culture); - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization/ResourceNamesCache.cs b/src/Microsoft.Extensions.Localization/ResourceNamesCache.cs deleted file mode 100644 index 86e94c102a..0000000000 --- a/src/Microsoft.Extensions.Localization/ResourceNamesCache.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; - -namespace Microsoft.Extensions.Localization -{ - /// - /// An implementation of backed by a . - /// - public class ResourceNamesCache : IResourceNamesCache - { - private readonly ConcurrentDictionary> _cache = new ConcurrentDictionary>(); - - /// - public IList GetOrAdd(string name, Func> valueFactory) - { - return _cache.GetOrAdd(name, valueFactory); - } - } -} diff --git a/src/Microsoft.Extensions.Localization/Resources.resx b/src/Microsoft.Extensions.Localization/Resources.resx deleted file mode 100644 index b679f04664..0000000000 --- a/src/Microsoft.Extensions.Localization/Resources.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - The manifest '{0}' was not found. - - - No manifests exist for the current culture. - - \ No newline at end of file diff --git a/src/Microsoft.Extensions.Localization/RootNamespaceAttribute.cs b/src/Microsoft.Extensions.Localization/RootNamespaceAttribute.cs deleted file mode 100644 index f28b4ea1fd..0000000000 --- a/src/Microsoft.Extensions.Localization/RootNamespaceAttribute.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; - -namespace Microsoft.Extensions.Localization -{ - /// - /// Provides the RootNamespace of an Assembly. The RootNamespace of the assembly is used by Localization to - /// determine the resource name to look for when RootNamespace differs from the AssemblyName. - /// - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false, Inherited = false)] - public class RootNamespaceAttribute : Attribute - { - /// - /// Creates a new . - /// - /// The RootNamespace for this Assembly. - public RootNamespaceAttribute(string rootNamespace) - { - if (string.IsNullOrEmpty(rootNamespace)) - { - throw new ArgumentNullException(nameof(rootNamespace)); - } - - RootNamespace = rootNamespace; - } - - /// - /// The RootNamespace of this Assembly. The RootNamespace of the assembly is used by Localization to - /// determine the resource name to look for when RootNamespace differs from the AssemblyName. - /// - public string RootNamespace { get; } - } -} diff --git a/src/Microsoft.Extensions.Localization/baseline.netcore.json b/src/Microsoft.Extensions.Localization/baseline.netcore.json deleted file mode 100644 index 860db76899..0000000000 --- a/src/Microsoft.Extensions.Localization/baseline.netcore.json +++ /dev/null @@ -1,687 +0,0 @@ -{ - "AssemblyIdentity": "Microsoft.Extensions.Localization, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60", - "Types": [ - { - "Name": "Microsoft.Extensions.DependencyInjection.LocalizationServiceCollectionExtensions", - "Visibility": "Public", - "Kind": "Class", - "Abstract": true, - "Static": true, - "Sealed": true, - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "AddLocalization", - "Parameters": [ - { - "Name": "services", - "Type": "Microsoft.Extensions.DependencyInjection.IServiceCollection" - } - ], - "ReturnType": "Microsoft.Extensions.DependencyInjection.IServiceCollection", - "Static": true, - "Extension": true, - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "AddLocalization", - "Parameters": [ - { - "Name": "services", - "Type": "Microsoft.Extensions.DependencyInjection.IServiceCollection" - }, - { - "Name": "setupAction", - "Type": "System.Action" - } - ], - "ReturnType": "Microsoft.Extensions.DependencyInjection.IServiceCollection", - "Static": true, - "Extension": true, - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.IResourceNamesCache", - "Visibility": "Public", - "Kind": "Interface", - "Abstract": true, - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "GetOrAdd", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "valueFactory", - "Type": "System.Func>" - } - ], - "ReturnType": "System.Collections.Generic.IList", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.LocalizationOptions", - "Visibility": "Public", - "Kind": "Class", - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "get_ResourcesPath", - "Parameters": [], - "ReturnType": "System.String", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "set_ResourcesPath", - "Parameters": [ - { - "Name": "value", - "Type": "System.String" - } - ], - "ReturnType": "System.Void", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.ResourceLocationAttribute", - "Visibility": "Public", - "Kind": "Class", - "BaseType": "System.Attribute", - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "get_ResourceLocation", - "Parameters": [], - "ReturnType": "System.String", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "resourceLocation", - "Type": "System.String" - } - ], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.ResourceManagerStringLocalizer", - "Visibility": "Public", - "Kind": "Class", - "ImplementedInterfaces": [ - "Microsoft.Extensions.Localization.IStringLocalizer" - ], - "Members": [ - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "arguments", - "Type": "System.Object[]", - "IsParams": true - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "WithCulture", - "Parameters": [ - { - "Name": "culture", - "Type": "System.Globalization.CultureInfo" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.IStringLocalizer", - "Sealed": true, - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetAllStrings", - "Parameters": [ - { - "Name": "includeParentCultures", - "Type": "System.Boolean" - } - ], - "ReturnType": "System.Collections.Generic.IEnumerable", - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetAllStrings", - "Parameters": [ - { - "Name": "includeParentCultures", - "Type": "System.Boolean" - }, - { - "Name": "culture", - "Type": "System.Globalization.CultureInfo" - } - ], - "ReturnType": "System.Collections.Generic.IEnumerable", - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetStringSafely", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "culture", - "Type": "System.Globalization.CultureInfo" - } - ], - "ReturnType": "System.String", - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "resourceManager", - "Type": "System.Resources.ResourceManager" - }, - { - "Name": "resourceAssembly", - "Type": "System.Reflection.Assembly" - }, - { - "Name": "baseName", - "Type": "System.String" - }, - { - "Name": "resourceNamesCache", - "Type": "Microsoft.Extensions.Localization.IResourceNamesCache" - }, - { - "Name": "logger", - "Type": "Microsoft.Extensions.Logging.ILogger" - } - ], - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "resourceManager", - "Type": "System.Resources.ResourceManager" - }, - { - "Name": "resourceAssemblyWrapper", - "Type": "Microsoft.Extensions.Localization.Internal.AssemblyWrapper" - }, - { - "Name": "baseName", - "Type": "System.String" - }, - { - "Name": "resourceNamesCache", - "Type": "Microsoft.Extensions.Localization.IResourceNamesCache" - }, - { - "Name": "logger", - "Type": "Microsoft.Extensions.Logging.ILogger" - } - ], - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "resourceManager", - "Type": "System.Resources.ResourceManager" - }, - { - "Name": "resourceStringProvider", - "Type": "Microsoft.Extensions.Localization.Internal.IResourceStringProvider" - }, - { - "Name": "baseName", - "Type": "System.String" - }, - { - "Name": "resourceNamesCache", - "Type": "Microsoft.Extensions.Localization.IResourceNamesCache" - }, - { - "Name": "logger", - "Type": "Microsoft.Extensions.Logging.ILogger" - } - ], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory", - "Visibility": "Public", - "Kind": "Class", - "ImplementedInterfaces": [ - "Microsoft.Extensions.Localization.IStringLocalizerFactory" - ], - "Members": [ - { - "Kind": "Method", - "Name": "GetResourcePrefix", - "Parameters": [ - { - "Name": "typeInfo", - "Type": "System.Reflection.TypeInfo" - } - ], - "ReturnType": "System.String", - "Virtual": true, - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetResourcePrefix", - "Parameters": [ - { - "Name": "typeInfo", - "Type": "System.Reflection.TypeInfo" - }, - { - "Name": "baseNamespace", - "Type": "System.String" - }, - { - "Name": "resourcesRelativePath", - "Type": "System.String" - } - ], - "ReturnType": "System.String", - "Virtual": true, - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetResourcePrefix", - "Parameters": [ - { - "Name": "baseResourceName", - "Type": "System.String" - }, - { - "Name": "baseNamespace", - "Type": "System.String" - } - ], - "ReturnType": "System.String", - "Virtual": true, - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "Create", - "Parameters": [ - { - "Name": "resourceSource", - "Type": "System.Type" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.IStringLocalizer", - "Sealed": true, - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizerFactory", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "Create", - "Parameters": [ - { - "Name": "baseName", - "Type": "System.String" - }, - { - "Name": "location", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.IStringLocalizer", - "Sealed": true, - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizerFactory", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "CreateResourceManagerStringLocalizer", - "Parameters": [ - { - "Name": "assembly", - "Type": "System.Reflection.Assembly" - }, - { - "Name": "baseName", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.ResourceManagerStringLocalizer", - "Virtual": true, - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetResourcePrefix", - "Parameters": [ - { - "Name": "location", - "Type": "System.String" - }, - { - "Name": "baseName", - "Type": "System.String" - }, - { - "Name": "resourceLocation", - "Type": "System.String" - } - ], - "ReturnType": "System.String", - "Virtual": true, - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetResourceLocationAttribute", - "Parameters": [ - { - "Name": "assembly", - "Type": "System.Reflection.Assembly" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.ResourceLocationAttribute", - "Virtual": true, - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetRootNamespaceAttribute", - "Parameters": [ - { - "Name": "assembly", - "Type": "System.Reflection.Assembly" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.RootNamespaceAttribute", - "Virtual": true, - "Visibility": "Protected", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "localizationOptions", - "Type": "Microsoft.Extensions.Options.IOptions" - }, - { - "Name": "loggerFactory", - "Type": "Microsoft.Extensions.Logging.ILoggerFactory" - } - ], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizer", - "Visibility": "Public", - "Kind": "Class", - "BaseType": "Microsoft.Extensions.Localization.ResourceManagerStringLocalizer", - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Virtual": true, - "Override": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "get_Item", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "arguments", - "Type": "System.Object[]", - "IsParams": true - } - ], - "ReturnType": "Microsoft.Extensions.Localization.LocalizedString", - "Virtual": true, - "Override": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Method", - "Name": "GetAllStrings", - "Parameters": [ - { - "Name": "includeParentCultures", - "Type": "System.Boolean" - } - ], - "ReturnType": "System.Collections.Generic.IEnumerable", - "Virtual": true, - "Override": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IStringLocalizer", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "resourceManager", - "Type": "System.Resources.ResourceManager" - }, - { - "Name": "resourceAssembly", - "Type": "System.Reflection.Assembly" - }, - { - "Name": "baseName", - "Type": "System.String" - }, - { - "Name": "resourceNamesCache", - "Type": "Microsoft.Extensions.Localization.IResourceNamesCache" - }, - { - "Name": "culture", - "Type": "System.Globalization.CultureInfo" - }, - { - "Name": "logger", - "Type": "Microsoft.Extensions.Logging.ILogger" - } - ], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.ResourceNamesCache", - "Visibility": "Public", - "Kind": "Class", - "ImplementedInterfaces": [ - "Microsoft.Extensions.Localization.IResourceNamesCache" - ], - "Members": [ - { - "Kind": "Method", - "Name": "GetOrAdd", - "Parameters": [ - { - "Name": "name", - "Type": "System.String" - }, - { - "Name": "valueFactory", - "Type": "System.Func>" - } - ], - "ReturnType": "System.Collections.Generic.IList", - "Sealed": true, - "Virtual": true, - "ImplementedInterface": "Microsoft.Extensions.Localization.IResourceNamesCache", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - }, - { - "Name": "Microsoft.Extensions.Localization.RootNamespaceAttribute", - "Visibility": "Public", - "Kind": "Class", - "BaseType": "System.Attribute", - "ImplementedInterfaces": [], - "Members": [ - { - "Kind": "Method", - "Name": "get_RootNamespace", - "Parameters": [], - "ReturnType": "System.String", - "Visibility": "Public", - "GenericParameter": [] - }, - { - "Kind": "Constructor", - "Name": ".ctor", - "Parameters": [ - { - "Name": "rootNamespace", - "Type": "System.String" - } - ], - "Visibility": "Public", - "GenericParameter": [] - } - ], - "GenericParameters": [] - } - ] -} \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Localization.Routing/Microsoft.AspNetCore.Localization.Routing.csproj b/src/Middleware/Localization.Routing/src/Microsoft.AspNetCore.Localization.Routing.csproj similarity index 63% rename from src/Microsoft.AspNetCore.Localization.Routing/Microsoft.AspNetCore.Localization.Routing.csproj rename to src/Middleware/Localization.Routing/src/Microsoft.AspNetCore.Localization.Routing.csproj index 06e167219b..e946bf8a00 100644 --- a/src/Microsoft.AspNetCore.Localization.Routing/Microsoft.AspNetCore.Localization.Routing.csproj +++ b/src/Middleware/Localization.Routing/src/Microsoft.AspNetCore.Localization.Routing.csproj @@ -10,11 +10,8 @@ - - - - - + + diff --git a/src/Microsoft.AspNetCore.Localization.Routing/RouteDataRequestCultureProvider.cs b/src/Middleware/Localization.Routing/src/RouteDataRequestCultureProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization.Routing/RouteDataRequestCultureProvider.cs rename to src/Middleware/Localization.Routing/src/RouteDataRequestCultureProvider.cs diff --git a/src/Microsoft.AspNetCore.Localization.Routing/baseline.netcore.json b/src/Middleware/Localization.Routing/src/baseline.netcore.json similarity index 100% rename from src/Microsoft.AspNetCore.Localization.Routing/baseline.netcore.json rename to src/Middleware/Localization.Routing/src/baseline.netcore.json diff --git a/src/Middleware/Localization.Routing/test/Microsoft.AspNetCore.Localization.Routing.Tests.csproj b/src/Middleware/Localization.Routing/test/Microsoft.AspNetCore.Localization.Routing.Tests.csproj new file mode 100644 index 0000000000..aa56ca5132 --- /dev/null +++ b/src/Middleware/Localization.Routing/test/Microsoft.AspNetCore.Localization.Routing.Tests.csproj @@ -0,0 +1,13 @@ + + + + $(StandardTestTfms) + + + + + + + + + diff --git a/test/Microsoft.AspNetCore.Localization.Routing.Tests/RouteDataRequestCultureProviderTest.cs b/src/Middleware/Localization.Routing/test/RouteDataRequestCultureProviderTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.Routing.Tests/RouteDataRequestCultureProviderTest.cs rename to src/Middleware/Localization.Routing/test/RouteDataRequestCultureProviderTest.cs diff --git a/README.md b/src/Middleware/Localization/README.md similarity index 54% rename from README.md rename to src/Middleware/Localization/README.md index aa86b688db..951344a993 100644 --- a/README.md +++ b/src/Middleware/Localization/README.md @@ -1,18 +1,5 @@ Localization -========== -AppVeyor: [![AppVeyor](https://ci.appveyor.com/api/projects/status/omn0l2l3mfhfjjpp?svg=true)](https://ci.appveyor.com/project/aspnetci/Localization/branch/dev) - -Travis: [![Travis](https://travis-ci.org/aspnet/Localization.svg?branch=dev)](https://travis-ci.org/aspnet/Localization) - -| Package | [aspnet-core](https://dotnet.myget.org/gallery/aspnetcore-dev) | [NuGet](https://nuget.org) | -| ------- | ----------------------- | ----------------- | -| Microsoft.Extensions.Localization | [![MyGet](https://img.shields.io/dotnet.myget/aspnetcore-dev/vpre/Microsoft.Extensions.Localization.svg)](https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.Extensions.Localization) | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Extensions.Localization.svg)](https://nuget.org/packages/Microsoft.Extensions.Localization) | -| Microsoft.AspNetCore.Localization | [![MyGet](https://img.shields.io/dotnet.myget/aspnetcore-dev/vpre/Microsoft.AspNetCore.Localization.svg)](https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.AspNetCore.Localization) | [![NuGet](https://img.shields.io/nuget/v/Microsoft.AspNetCore.Localization.svg)](https://nuget.org/packages/Microsoft.AspNetCore.Localization) | - - -Localization abstractions and implementations for ASP.NET Core applications. - -This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [Home](https://github.com/aspnet/home) repo. +============ ### Localization Samples diff --git a/src/Middleware/Localization/sample/LocalizationSample.csproj b/src/Middleware/Localization/sample/LocalizationSample.csproj new file mode 100644 index 0000000000..77b1172173 --- /dev/null +++ b/src/Middleware/Localization/sample/LocalizationSample.csproj @@ -0,0 +1,16 @@ + + + + netcoreapp2.1;netcoreapp2.0;net461 + + + + + + + + + + + + diff --git a/samples/LocalizationSample/My/Resources/Startup.es-ES.resx b/src/Middleware/Localization/sample/My/Resources/Startup.es-ES.resx similarity index 100% rename from samples/LocalizationSample/My/Resources/Startup.es-ES.resx rename to src/Middleware/Localization/sample/My/Resources/Startup.es-ES.resx diff --git a/samples/LocalizationSample/My/Resources/Startup.fr-FR.resx b/src/Middleware/Localization/sample/My/Resources/Startup.fr-FR.resx similarity index 100% rename from samples/LocalizationSample/My/Resources/Startup.fr-FR.resx rename to src/Middleware/Localization/sample/My/Resources/Startup.fr-FR.resx diff --git a/samples/LocalizationSample/My/Resources/Startup.ja-JP.resx b/src/Middleware/Localization/sample/My/Resources/Startup.ja-JP.resx similarity index 100% rename from samples/LocalizationSample/My/Resources/Startup.ja-JP.resx rename to src/Middleware/Localization/sample/My/Resources/Startup.ja-JP.resx diff --git a/samples/LocalizationSample/My/Resources/Startup.zh-CN.resx b/src/Middleware/Localization/sample/My/Resources/Startup.zh-CN.resx similarity index 100% rename from samples/LocalizationSample/My/Resources/Startup.zh-CN.resx rename to src/Middleware/Localization/sample/My/Resources/Startup.zh-CN.resx diff --git a/samples/LocalizationSample/My/Resources/Startup.zh.resx b/src/Middleware/Localization/sample/My/Resources/Startup.zh.resx similarity index 100% rename from samples/LocalizationSample/My/Resources/Startup.zh.resx rename to src/Middleware/Localization/sample/My/Resources/Startup.zh.resx diff --git a/samples/LocalizationSample/Startup.cs b/src/Middleware/Localization/sample/Startup.cs similarity index 100% rename from samples/LocalizationSample/Startup.cs rename to src/Middleware/Localization/sample/Startup.cs diff --git a/src/Microsoft.AspNetCore.Localization/AcceptLanguageHeaderRequestCultureProvider.cs b/src/Middleware/Localization/src/AcceptLanguageHeaderRequestCultureProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/AcceptLanguageHeaderRequestCultureProvider.cs rename to src/Middleware/Localization/src/AcceptLanguageHeaderRequestCultureProvider.cs diff --git a/src/Microsoft.AspNetCore.Localization/ApplicationBuilderExtensions.cs b/src/Middleware/Localization/src/ApplicationBuilderExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/ApplicationBuilderExtensions.cs rename to src/Middleware/Localization/src/ApplicationBuilderExtensions.cs diff --git a/src/Microsoft.AspNetCore.Localization/CookieRequestCultureProvider.cs b/src/Middleware/Localization/src/CookieRequestCultureProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/CookieRequestCultureProvider.cs rename to src/Middleware/Localization/src/CookieRequestCultureProvider.cs diff --git a/src/Microsoft.AspNetCore.Localization/CustomRequestCultureProvider.cs b/src/Middleware/Localization/src/CustomRequestCultureProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/CustomRequestCultureProvider.cs rename to src/Middleware/Localization/src/CustomRequestCultureProvider.cs diff --git a/src/Microsoft.AspNetCore.Localization/IRequestCultureFeature.cs b/src/Middleware/Localization/src/IRequestCultureFeature.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/IRequestCultureFeature.cs rename to src/Middleware/Localization/src/IRequestCultureFeature.cs diff --git a/src/Microsoft.AspNetCore.Localization/IRequestCultureProvider.cs b/src/Middleware/Localization/src/IRequestCultureProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/IRequestCultureProvider.cs rename to src/Middleware/Localization/src/IRequestCultureProvider.cs diff --git a/src/Microsoft.AspNetCore.Localization/Internal/RequestCultureProviderLoggerExtensions.cs b/src/Middleware/Localization/src/Internal/RequestCultureProviderLoggerExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/Internal/RequestCultureProviderLoggerExtensions.cs rename to src/Middleware/Localization/src/Internal/RequestCultureProviderLoggerExtensions.cs diff --git a/src/Microsoft.AspNetCore.Localization/Microsoft.AspNetCore.Localization.csproj b/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj similarity index 51% rename from src/Microsoft.AspNetCore.Localization/Microsoft.AspNetCore.Localization.csproj rename to src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj index dc7e2ed59b..16c71c9157 100644 --- a/src/Microsoft.AspNetCore.Localization/Microsoft.AspNetCore.Localization.csproj +++ b/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj @@ -10,13 +10,10 @@ - - - - - - - + + + + diff --git a/src/Microsoft.AspNetCore.Localization/Properties/Resources.Designer.cs b/src/Middleware/Localization/src/Properties/Resources.Designer.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/Properties/Resources.Designer.cs rename to src/Middleware/Localization/src/Properties/Resources.Designer.cs diff --git a/src/Microsoft.AspNetCore.Localization/ProviderCultureResult.cs b/src/Middleware/Localization/src/ProviderCultureResult.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/ProviderCultureResult.cs rename to src/Middleware/Localization/src/ProviderCultureResult.cs diff --git a/src/Microsoft.AspNetCore.Localization/QueryStringRequestCultureProvider.cs b/src/Middleware/Localization/src/QueryStringRequestCultureProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/QueryStringRequestCultureProvider.cs rename to src/Middleware/Localization/src/QueryStringRequestCultureProvider.cs diff --git a/src/Microsoft.AspNetCore.Localization/RequestCulture.cs b/src/Middleware/Localization/src/RequestCulture.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/RequestCulture.cs rename to src/Middleware/Localization/src/RequestCulture.cs diff --git a/src/Microsoft.AspNetCore.Localization/RequestCultureFeature.cs b/src/Middleware/Localization/src/RequestCultureFeature.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/RequestCultureFeature.cs rename to src/Middleware/Localization/src/RequestCultureFeature.cs diff --git a/src/Microsoft.AspNetCore.Localization/RequestCultureProvider.cs b/src/Middleware/Localization/src/RequestCultureProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/RequestCultureProvider.cs rename to src/Middleware/Localization/src/RequestCultureProvider.cs diff --git a/src/Microsoft.AspNetCore.Localization/RequestLocalizationMiddleware.cs b/src/Middleware/Localization/src/RequestLocalizationMiddleware.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/RequestLocalizationMiddleware.cs rename to src/Middleware/Localization/src/RequestLocalizationMiddleware.cs diff --git a/src/Microsoft.AspNetCore.Localization/RequestLocalizationOptions.cs b/src/Middleware/Localization/src/RequestLocalizationOptions.cs similarity index 100% rename from src/Microsoft.AspNetCore.Localization/RequestLocalizationOptions.cs rename to src/Middleware/Localization/src/RequestLocalizationOptions.cs diff --git a/src/Microsoft.AspNetCore.Localization/Resources.resx b/src/Middleware/Localization/src/Resources.resx similarity index 100% rename from src/Microsoft.AspNetCore.Localization/Resources.resx rename to src/Middleware/Localization/src/Resources.resx diff --git a/src/Microsoft.AspNetCore.Localization/baseline.netcore.json b/src/Middleware/Localization/src/baseline.netcore.json similarity index 100% rename from src/Microsoft.AspNetCore.Localization/baseline.netcore.json rename to src/Middleware/Localization/src/baseline.netcore.json diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs b/src/Middleware/Localization/test/FunctionalTests/LocalizationSampleTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs rename to src/Middleware/Localization/test/FunctionalTests/LocalizationSampleTest.cs diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs b/src/Middleware/Localization/test/FunctionalTests/LocalizationTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs rename to src/Middleware/Localization/test/FunctionalTests/LocalizationTest.cs diff --git a/src/Middleware/Localization/test/FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj b/src/Middleware/Localization/test/FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj new file mode 100644 index 0000000000..d3d14f4474 --- /dev/null +++ b/src/Middleware/Localization/test/FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj @@ -0,0 +1,19 @@ + + + + $(StandardTestTfms) + + + + + + + + + + + + + + + diff --git a/test/Microsoft.AspNetCore.Localization.Tests/AcceptLanguageHeaderRequestCultureProviderTest.cs b/src/Middleware/Localization/test/UnitTests/AcceptLanguageHeaderRequestCultureProviderTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.Tests/AcceptLanguageHeaderRequestCultureProviderTest.cs rename to src/Middleware/Localization/test/UnitTests/AcceptLanguageHeaderRequestCultureProviderTest.cs diff --git a/test/Microsoft.AspNetCore.Localization.Tests/CookieRequestCultureProviderTest.cs b/src/Middleware/Localization/test/UnitTests/CookieRequestCultureProviderTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.Tests/CookieRequestCultureProviderTest.cs rename to src/Middleware/Localization/test/UnitTests/CookieRequestCultureProviderTest.cs diff --git a/test/Microsoft.AspNetCore.Localization.Tests/CustomRequestCultureProviderTest.cs b/src/Middleware/Localization/test/UnitTests/CustomRequestCultureProviderTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.Tests/CustomRequestCultureProviderTest.cs rename to src/Middleware/Localization/test/UnitTests/CustomRequestCultureProviderTest.cs diff --git a/src/Middleware/Localization/test/UnitTests/Microsoft.AspNetCore.Localization.Tests.csproj b/src/Middleware/Localization/test/UnitTests/Microsoft.AspNetCore.Localization.Tests.csproj new file mode 100644 index 0000000000..8a0fb85de7 --- /dev/null +++ b/src/Middleware/Localization/test/UnitTests/Microsoft.AspNetCore.Localization.Tests.csproj @@ -0,0 +1,15 @@ + + + + $(StandardTestTfms) + + + + + + + + + + + diff --git a/test/Microsoft.AspNetCore.Localization.Tests/QueryStringRequestCultureProviderTest.cs b/src/Middleware/Localization/test/UnitTests/QueryStringRequestCultureProviderTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.Tests/QueryStringRequestCultureProviderTest.cs rename to src/Middleware/Localization/test/UnitTests/QueryStringRequestCultureProviderTest.cs diff --git a/test/Microsoft.AspNetCore.Localization.Tests/RequestLocalizationOptionsTest.cs b/src/Middleware/Localization/test/UnitTests/RequestLocalizationOptionsTest.cs similarity index 100% rename from test/Microsoft.AspNetCore.Localization.Tests/RequestLocalizationOptionsTest.cs rename to src/Middleware/Localization/test/UnitTests/RequestLocalizationOptionsTest.cs diff --git a/src/Middleware/Localization/testassets/LocalizationWebsite/LocalizationWebsite.csproj b/src/Middleware/Localization/testassets/LocalizationWebsite/LocalizationWebsite.csproj new file mode 100644 index 0000000000..409af955a7 --- /dev/null +++ b/src/Middleware/Localization/testassets/LocalizationWebsite/LocalizationWebsite.csproj @@ -0,0 +1,21 @@ + + + + netcoreapp2.0;net461 + + + + + + + + + + + + + + + + + diff --git a/test/LocalizationWebsite/Models/Customer.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/Models/Customer.cs similarity index 100% rename from test/LocalizationWebsite/Models/Customer.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/Models/Customer.cs diff --git a/test/LocalizationWebsite/Models/Customer.fr-FR.resx b/src/Middleware/Localization/testassets/LocalizationWebsite/Models/Customer.fr-FR.resx similarity index 100% rename from test/LocalizationWebsite/Models/Customer.fr-FR.resx rename to src/Middleware/Localization/testassets/LocalizationWebsite/Models/Customer.fr-FR.resx diff --git a/test/LocalizationWebsite/Program.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/Program.cs similarity index 100% rename from test/LocalizationWebsite/Program.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/Program.cs diff --git a/test/LocalizationWebsite/Resources/Models.Customer.fr-FR.resx b/src/Middleware/Localization/testassets/LocalizationWebsite/Resources/Models.Customer.fr-FR.resx similarity index 100% rename from test/LocalizationWebsite/Resources/Models.Customer.fr-FR.resx rename to src/Middleware/Localization/testassets/LocalizationWebsite/Resources/Models.Customer.fr-FR.resx diff --git a/test/LocalizationWebsite/Resources/StartupCustomCulturePreserved.en-US.resx b/src/Middleware/Localization/testassets/LocalizationWebsite/Resources/StartupCustomCulturePreserved.en-US.resx similarity index 100% rename from test/LocalizationWebsite/Resources/StartupCustomCulturePreserved.en-US.resx rename to src/Middleware/Localization/testassets/LocalizationWebsite/Resources/StartupCustomCulturePreserved.en-US.resx diff --git a/test/LocalizationWebsite/Resources/StartupResourcesInFolder.fr-FR.resx b/src/Middleware/Localization/testassets/LocalizationWebsite/Resources/StartupResourcesInFolder.fr-FR.resx similarity index 100% rename from test/LocalizationWebsite/Resources/StartupResourcesInFolder.fr-FR.resx rename to src/Middleware/Localization/testassets/LocalizationWebsite/Resources/StartupResourcesInFolder.fr-FR.resx diff --git a/test/LocalizationWebsite/Resources/Test.fr-FR.resx b/src/Middleware/Localization/testassets/LocalizationWebsite/Resources/Test.fr-FR.resx similarity index 100% rename from test/LocalizationWebsite/Resources/Test.fr-FR.resx rename to src/Middleware/Localization/testassets/LocalizationWebsite/Resources/Test.fr-FR.resx diff --git a/test/LocalizationWebsite/StartupBuilderAPIs.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/StartupBuilderAPIs.cs similarity index 100% rename from test/LocalizationWebsite/StartupBuilderAPIs.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/StartupBuilderAPIs.cs diff --git a/test/LocalizationWebsite/StartupCustomCulturePreserved.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/StartupCustomCulturePreserved.cs similarity index 100% rename from test/LocalizationWebsite/StartupCustomCulturePreserved.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/StartupCustomCulturePreserved.cs diff --git a/test/LocalizationWebsite/StartupGetAllStrings.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/StartupGetAllStrings.cs similarity index 100% rename from test/LocalizationWebsite/StartupGetAllStrings.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/StartupGetAllStrings.cs diff --git a/test/LocalizationWebsite/StartupResourcesAtRootFolder.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesAtRootFolder.cs similarity index 100% rename from test/LocalizationWebsite/StartupResourcesAtRootFolder.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesAtRootFolder.cs diff --git a/test/LocalizationWebsite/StartupResourcesAtRootFolder.fr-FR.resx b/src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesAtRootFolder.fr-FR.resx similarity index 100% rename from test/LocalizationWebsite/StartupResourcesAtRootFolder.fr-FR.resx rename to src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesAtRootFolder.fr-FR.resx diff --git a/test/LocalizationWebsite/StartupResourcesInClassLibrary.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesInClassLibrary.cs similarity index 100% rename from test/LocalizationWebsite/StartupResourcesInClassLibrary.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesInClassLibrary.cs diff --git a/test/LocalizationWebsite/StartupResourcesInFolder.cs b/src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesInFolder.cs similarity index 100% rename from test/LocalizationWebsite/StartupResourcesInFolder.cs rename to src/Middleware/Localization/testassets/LocalizationWebsite/StartupResourcesInFolder.cs diff --git a/test/LocalizationWebsite/Test.fr-FR.resx b/src/Middleware/Localization/testassets/LocalizationWebsite/Test.fr-FR.resx similarity index 100% rename from test/LocalizationWebsite/Test.fr-FR.resx rename to src/Middleware/Localization/testassets/LocalizationWebsite/Test.fr-FR.resx diff --git a/test/ResourcesClassLibraryNoAttribute/Model.cs b/src/Middleware/Localization/testassets/ResourcesClassLibraryNoAttribute/Model.cs similarity index 100% rename from test/ResourcesClassLibraryNoAttribute/Model.cs rename to src/Middleware/Localization/testassets/ResourcesClassLibraryNoAttribute/Model.cs diff --git a/test/ResourcesClassLibraryNoAttribute/Resources/Model.resx b/src/Middleware/Localization/testassets/ResourcesClassLibraryNoAttribute/Resources/Model.resx similarity index 100% rename from test/ResourcesClassLibraryNoAttribute/Resources/Model.resx rename to src/Middleware/Localization/testassets/ResourcesClassLibraryNoAttribute/Resources/Model.resx diff --git a/test/ResourcesClassLibraryNoAttribute/ResourcesClassLibraryNoAttribute.csproj b/src/Middleware/Localization/testassets/ResourcesClassLibraryNoAttribute/ResourcesClassLibraryNoAttribute.csproj similarity index 100% rename from test/ResourcesClassLibraryNoAttribute/ResourcesClassLibraryNoAttribute.csproj rename to src/Middleware/Localization/testassets/ResourcesClassLibraryNoAttribute/ResourcesClassLibraryNoAttribute.csproj diff --git a/test/ResourcesClassLibraryWithAttribute/AssemblyInfo.cs b/src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/AssemblyInfo.cs similarity index 100% rename from test/ResourcesClassLibraryWithAttribute/AssemblyInfo.cs rename to src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/AssemblyInfo.cs diff --git a/test/ResourcesClassLibraryWithAttribute/Model.cs b/src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/Model.cs similarity index 100% rename from test/ResourcesClassLibraryWithAttribute/Model.cs rename to src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/Model.cs diff --git a/test/ResourcesClassLibraryWithAttribute/ResourceFolder/Model.resx b/src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/ResourceFolder/Model.resx similarity index 100% rename from test/ResourcesClassLibraryWithAttribute/ResourceFolder/Model.resx rename to src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/ResourceFolder/Model.resx diff --git a/test/ResourcesClassLibraryWithAttribute/ResourcesClassLibraryWithAttribute.csproj b/src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/ResourcesClassLibraryWithAttribute.csproj similarity index 65% rename from test/ResourcesClassLibraryWithAttribute/ResourcesClassLibraryWithAttribute.csproj rename to src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/ResourcesClassLibraryWithAttribute.csproj index 692d903799..9d1523c3be 100644 --- a/test/ResourcesClassLibraryWithAttribute/ResourcesClassLibraryWithAttribute.csproj +++ b/src/Middleware/Localization/testassets/ResourcesClassLibraryWithAttribute/ResourcesClassLibraryWithAttribute.csproj @@ -6,7 +6,7 @@ - + diff --git a/test/Directory.Build.props b/test/Directory.Build.props deleted file mode 100644 index 270e1fa209..0000000000 --- a/test/Directory.Build.props +++ /dev/null @@ -1,14 +0,0 @@ - - - - - netcoreapp2.1 - $(DeveloperBuildTestTfms) - netcoreapp2.1;netcoreapp2.0 - $(StandardTestTfms);net461 - - - - - - diff --git a/test/LocalizationWebsite/LocalizationWebsite.csproj b/test/LocalizationWebsite/LocalizationWebsite.csproj deleted file mode 100644 index 822158df59..0000000000 --- a/test/LocalizationWebsite/LocalizationWebsite.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - netcoreapp2.0;net461 - - - - - - - - - - - - - - - - - diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj b/test/Microsoft.AspNetCore.Localization.FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj deleted file mode 100644 index f5ccbaa214..0000000000 --- a/test/Microsoft.AspNetCore.Localization.FunctionalTests/Microsoft.AspNetCore.Localization.FunctionalTests.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - $(StandardTestTfms) - - - - - - - - - - - - - - - - - - diff --git a/test/Microsoft.AspNetCore.Localization.Routing.Tests/Microsoft.AspNetCore.Localization.Routing.Tests.csproj b/test/Microsoft.AspNetCore.Localization.Routing.Tests/Microsoft.AspNetCore.Localization.Routing.Tests.csproj deleted file mode 100644 index 7cc4804826..0000000000 --- a/test/Microsoft.AspNetCore.Localization.Routing.Tests/Microsoft.AspNetCore.Localization.Routing.Tests.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - $(StandardTestTfms) - - - - - - - - - - - - - - - diff --git a/test/Microsoft.AspNetCore.Localization.Tests/Microsoft.AspNetCore.Localization.Tests.csproj b/test/Microsoft.AspNetCore.Localization.Tests/Microsoft.AspNetCore.Localization.Tests.csproj deleted file mode 100644 index c5824b5198..0000000000 --- a/test/Microsoft.AspNetCore.Localization.Tests/Microsoft.AspNetCore.Localization.Tests.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - $(StandardTestTfms) - - - - - - - - - - - - - - - - - diff --git a/test/Microsoft.Extensions.Localization.Tests/LocalizationServiceCollectionExtensionsTest.cs b/test/Microsoft.Extensions.Localization.Tests/LocalizationServiceCollectionExtensionsTest.cs deleted file mode 100644 index d78581655c..0000000000 --- a/test/Microsoft.Extensions.Localization.Tests/LocalizationServiceCollectionExtensionsTest.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Linq; -using Microsoft.Extensions.Localization; -using Microsoft.Extensions.Options; -using Xunit; - -namespace Microsoft.Extensions.DependencyInjection -{ - public class LocalizationServiceCollectionExtensionsTest - { - [Fact] - public void AddLocalization_AddsNeededServices() - { - // Arrange - var collection = new ServiceCollection(); - - // Act - LocalizationServiceCollectionExtensions.AddLocalizationServices(collection); - - // Assert - AssertContainsSingle(collection, typeof(IStringLocalizerFactory), typeof(ResourceManagerStringLocalizerFactory)); - AssertContainsSingle(collection, typeof(IStringLocalizer<>), typeof(StringLocalizer<>)); - } - - [Fact] - public void AddLocalizationWithLocalizationOptions_AddsNeededServices() - { - // Arrange - var collection = new ServiceCollection(); - - // Act - LocalizationServiceCollectionExtensions.AddLocalizationServices( - collection, - options => options.ResourcesPath = "Resources"); - - AssertContainsSingle(collection, typeof(IStringLocalizerFactory), typeof(ResourceManagerStringLocalizerFactory)); - AssertContainsSingle(collection, typeof(IStringLocalizer<>), typeof(StringLocalizer<>)); - } - - private void AssertContainsSingle( - IServiceCollection services, - Type serviceType, - Type implementationType) - { - var matches = services - .Where(sd => - sd.ServiceType == serviceType && - sd.ImplementationType == implementationType) - .ToArray(); - - if (matches.Length == 0) - { - Assert.True( - false, - $"Could not find an instance of {implementationType} registered as {serviceType}"); - } - else if (matches.Length > 1) - { - Assert.True( - false, - $"Found multiple instances of {implementationType} registered as {serviceType}"); - } - } - } -} diff --git a/test/Microsoft.Extensions.Localization.Tests/Microsoft.Extensions.Localization.Tests.csproj b/test/Microsoft.Extensions.Localization.Tests/Microsoft.Extensions.Localization.Tests.csproj deleted file mode 100644 index dc36d7fe2a..0000000000 --- a/test/Microsoft.Extensions.Localization.Tests/Microsoft.Extensions.Localization.Tests.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - $(StandardTestTfms) - - - - - - - - - - - - - - - - - diff --git a/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerFactoryTest.cs b/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerFactoryTest.cs deleted file mode 100644 index 7a18c0e4bd..0000000000 --- a/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerFactoryTest.cs +++ /dev/null @@ -1,296 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.IO; -using System.Reflection; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Extensions.Options; -using Moq; -using Xunit; - -// This namespace intentionally matches the default assembly namespace. -namespace Microsoft.Extensions.Localization.Tests -{ - public class TestResourceManagerStringLocalizerFactory : ResourceManagerStringLocalizerFactory - { - private ResourceLocationAttribute _resourceLocationAttribute; - - private RootNamespaceAttribute _rootNamespaceAttribute; - - public Assembly Assembly { get; private set; } - public string BaseName { get; private set; } - - public TestResourceManagerStringLocalizerFactory( - IOptions localizationOptions, - ResourceLocationAttribute resourceLocationAttribute, - RootNamespaceAttribute rootNamespaceAttribute, - ILoggerFactory loggerFactory) - : base(localizationOptions, loggerFactory) - { - _resourceLocationAttribute = resourceLocationAttribute; - _rootNamespaceAttribute = rootNamespaceAttribute; - } - - protected override ResourceLocationAttribute GetResourceLocationAttribute(Assembly assembly) - { - return _resourceLocationAttribute; - } - - protected override RootNamespaceAttribute GetRootNamespaceAttribute(Assembly assembly) - { - return _rootNamespaceAttribute; - } - - protected override ResourceManagerStringLocalizer CreateResourceManagerStringLocalizer(Assembly assembly, string baseName) - { - BaseName = baseName; - Assembly = assembly; - - return base.CreateResourceManagerStringLocalizer(assembly, baseName); - } - } - - public class ResourceManagerStringLocalizerFactoryTest - { - [Fact] - public void Create_OverloadsProduceSameResult() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - - var resourceLocationAttribute = new ResourceLocationAttribute(Path.Combine("My", "Resources")); - var loggerFactory = NullLoggerFactory.Instance; - var typeFactory = new TestResourceManagerStringLocalizerFactory( - options.Object, - resourceLocationAttribute, - rootNamespaceAttribute: null, - loggerFactory: loggerFactory); - var stringFactory = new TestResourceManagerStringLocalizerFactory( - options.Object, - resourceLocationAttribute, - rootNamespaceAttribute: null, - loggerFactory: loggerFactory); - var type = typeof(ResourceManagerStringLocalizerFactoryTest); - var assemblyName = new AssemblyName(type.GetTypeInfo().Assembly.FullName); - - // Act - typeFactory.Create(type); - stringFactory.Create(type.Name, assemblyName.Name); - - // Assert - Assert.Equal(typeFactory.BaseName, stringFactory.BaseName); - Assert.Equal(typeFactory.Assembly.FullName, stringFactory.Assembly.FullName); - } - - [Fact] - public void Create_FromType_ReturnsCachedResultForSameType() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new ResourceManagerStringLocalizerFactory(localizationOptions: options.Object, loggerFactory: loggerFactory); - - // Act - var result1 = factory.Create(typeof(ResourceManagerStringLocalizerFactoryTest)); - var result2 = factory.Create(typeof(ResourceManagerStringLocalizerFactoryTest)); - - // Assert - Assert.Same(result1, result2); - } - - [Fact] - public void Create_FromType_ReturnsNewResultForDifferentType() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new ResourceManagerStringLocalizerFactory(localizationOptions: options.Object, loggerFactory: loggerFactory); - - // Act - var result1 = factory.Create(typeof(ResourceManagerStringLocalizerFactoryTest)); - var result2 = factory.Create(typeof(LocalizationOptions)); - - // Assert - Assert.NotSame(result1, result2); - } - - [Fact] - public void Create_ResourceLocationAttribute_RootNamespaceIgnoredWhenNoLocation() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - - var resourcePath = Path.Combine("My", "Resources"); - var rootNamespace = "MyNamespace"; - var rootNamespaceAttribute = new RootNamespaceAttribute(rootNamespace); - - var typeFactory = new TestResourceManagerStringLocalizerFactory( - options.Object, - resourceLocationAttribute: null, - rootNamespaceAttribute: rootNamespaceAttribute, - loggerFactory: loggerFactory); - - var type = typeof(ResourceManagerStringLocalizerFactoryTest); - // Act - typeFactory.Create(type); - - // Assert - Assert.Equal($"Microsoft.Extensions.Localization.Tests.ResourceManagerStringLocalizerFactoryTest", typeFactory.BaseName); - } - - [Fact] - public void Create_ResourceLocationAttribute_UsesRootNamespace() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - - var resourcePath = Path.Combine("My", "Resources"); - var rootNamespace = "MyNamespace"; - var resourceLocationAttribute = new ResourceLocationAttribute(resourcePath); - var rootNamespaceAttribute = new RootNamespaceAttribute(rootNamespace); - - var typeFactory = new TestResourceManagerStringLocalizerFactory( - options.Object, - resourceLocationAttribute, - rootNamespaceAttribute, - loggerFactory); - - var type = typeof(ResourceManagerStringLocalizerFactoryTest); - // Act - typeFactory.Create(type); - - // Assert - Assert.Equal($"MyNamespace.My.Resources.ResourceManagerStringLocalizerFactoryTest", typeFactory.BaseName); - } - - [Fact] - public void Create_FromType_ResourcesPathDirectorySeperatorToDot() - { - // Arrange - var locOptions = new LocalizationOptions(); - locOptions.ResourcesPath = Path.Combine("My", "Resources"); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new TestResourceManagerStringLocalizerFactory( - options.Object, - resourceLocationAttribute: null, - rootNamespaceAttribute: null, - loggerFactory: loggerFactory); - - // Act - factory.Create(typeof(ResourceManagerStringLocalizerFactoryTest)); - - // Assert - Assert.Equal("Microsoft.Extensions.Localization.Tests.My.Resources." + nameof(ResourceManagerStringLocalizerFactoryTest), factory.BaseName); - } - - [Fact] - public void Create_FromNameLocation_ReturnsCachedResultForSameNameLocation() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new ResourceManagerStringLocalizerFactory(localizationOptions: options.Object, loggerFactory: loggerFactory); - var location = typeof(ResourceManagerStringLocalizer).GetTypeInfo().Assembly.FullName; - - // Act - var result1 = factory.Create("baseName", location); - var result2 = factory.Create("baseName", location); - - // Assert - Assert.Same(result1, result2); - } - - [Fact] - public void Create_FromNameLocation_ReturnsNewResultForDifferentName() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new ResourceManagerStringLocalizerFactory(localizationOptions: options.Object, loggerFactory: loggerFactory); - var location = typeof(ResourceManagerStringLocalizer).GetTypeInfo().Assembly.FullName; - - // Act - var result1 = factory.Create("baseName1", location); - var result2 = factory.Create("baseName2", location); - - // Assert - Assert.NotSame(result1, result2); - } - - [Fact] - public void Create_FromNameLocation_ReturnsNewResultForDifferentLocation() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new ResourceManagerStringLocalizerFactory(localizationOptions: options.Object, loggerFactory: loggerFactory); - var location1 = new AssemblyName(typeof(ResourceManagerStringLocalizer).GetTypeInfo().Assembly.FullName).Name; - var location2 = new AssemblyName(typeof(ResourceManagerStringLocalizerFactoryTest).GetTypeInfo().Assembly.FullName).Name; - - // Act - var result1 = factory.Create("baseName", location1); - var result2 = factory.Create("baseName", location2); - - // Assert - Assert.NotSame(result1, result2); - } - - [Fact] - public void Create_FromNameLocation_ResourcesPathDirectorySeparatorToDot() - { - // Arrange - var locOptions = new LocalizationOptions(); - locOptions.ResourcesPath = Path.Combine("My", "Resources"); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new TestResourceManagerStringLocalizerFactory( - options.Object, - resourceLocationAttribute: null, - rootNamespaceAttribute: null, - loggerFactory: loggerFactory); - - // Act - var result1 = factory.Create("baseName", location: "Microsoft.Extensions.Localization.Tests"); - - // Assert - Assert.Equal("Microsoft.Extensions.Localization.Tests.My.Resources.baseName", factory.BaseName); - } - - [Fact] - public void Create_FromNameLocation_NullLocationThrows() - { - // Arrange - var locOptions = new LocalizationOptions(); - var options = new Mock>(); - options.Setup(o => o.Value).Returns(locOptions); - var loggerFactory = NullLoggerFactory.Instance; - var factory = new ResourceManagerStringLocalizerFactory(localizationOptions: options.Object, loggerFactory: loggerFactory); - - // Act & Assert - Assert.Throws(() => factory.Create("baseName", location: null)); - } - } -} diff --git a/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs b/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs deleted file mode 100644 index ff7bfa9933..0000000000 --- a/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs +++ /dev/null @@ -1,299 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Resources; -using Microsoft.AspNetCore.Testing; -using Microsoft.Extensions.Localization.Internal; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Testing; -using Xunit; - -namespace Microsoft.Extensions.Localization -{ - public class ResourceManagerStringLocalizerTest - { - [Fact] - public void EnumeratorCachesCultureWalkForSameAssembly() - { - // Arrange - var resourceNamesCache = new ResourceNamesCache(); - var baseName = "test"; - var resourceAssembly = new TestAssemblyWrapper(); - var resourceManager = new TestResourceManager(baseName, resourceAssembly); - var resourceStreamManager = new TestResourceStringProvider( - resourceNamesCache, - resourceManager, - resourceAssembly.Assembly, - baseName); - var logger = Logger; - var localizer1 = new ResourceManagerStringLocalizer(resourceManager, - resourceStreamManager, - baseName, - resourceNamesCache, - logger); - var localizer2 = new ResourceManagerStringLocalizer(resourceManager, - resourceStreamManager, - baseName, - resourceNamesCache, - logger); - - // Act - for (var i = 0; i < 5; i++) - { - localizer1.GetAllStrings().ToList(); - localizer2.GetAllStrings().ToList(); - } - - // Assert - var expectedCallCount = GetCultureInfoDepth(CultureInfo.CurrentUICulture); - Assert.Equal(expectedCallCount, resourceAssembly.ManifestResourceStreamCallCount); - } - - [Fact] - public void EnumeratorCacheIsScopedByAssembly() - { - // Arrange - var resourceNamesCache = new ResourceNamesCache(); - var baseName = "test"; - var resourceAssembly1 = new TestAssemblyWrapper(typeof(ResourceManagerStringLocalizerTest)); - var resourceAssembly2 = new TestAssemblyWrapper(typeof(ResourceManagerStringLocalizer)); - var resourceManager1 = new TestResourceManager(baseName, resourceAssembly1); - var resourceManager2 = new TestResourceManager(baseName, resourceAssembly2); - var resourceStreamManager1 = new TestResourceStringProvider(resourceNamesCache, resourceManager1, resourceAssembly1.Assembly, baseName); - var resourceStreamManager2 = new TestResourceStringProvider(resourceNamesCache, resourceManager2, resourceAssembly2.Assembly, baseName); - var logger = Logger; - var localizer1 = new ResourceManagerStringLocalizer( - resourceManager1, - resourceStreamManager1, - baseName, - resourceNamesCache, - logger); - var localizer2 = new ResourceManagerStringLocalizer( - resourceManager2, - resourceStreamManager2, - baseName, - resourceNamesCache, - logger); - - // Act - localizer1.GetAllStrings().ToList(); - localizer2.GetAllStrings().ToList(); - - // Assert - var expectedCallCount = GetCultureInfoDepth(CultureInfo.CurrentUICulture); - Assert.Equal(expectedCallCount, resourceAssembly1.ManifestResourceStreamCallCount); - Assert.Equal(expectedCallCount, resourceAssembly2.ManifestResourceStreamCallCount); - } - - [Fact] - public void GetString_PopulatesSearchedLocationOnLocalizedString() - { - // Arrange - var baseName = "Resources.TestResource"; - var resourceNamesCache = new ResourceNamesCache(); - var resourceAssembly = new TestAssemblyWrapper(); - var resourceManager = new TestResourceManager(baseName, resourceAssembly); - var resourceStreamManager = new TestResourceStringProvider(resourceNamesCache, resourceManager, resourceAssembly.Assembly, baseName); - var logger = Logger; - var localizer = new ResourceManagerStringLocalizer( - resourceManager, - resourceStreamManager, - baseName, - resourceNamesCache, - logger); - - // Act - var value = localizer["name"]; - - // Assert - Assert.Equal("Resources.TestResource", value.SearchedLocation); - } - - [Fact] - [ReplaceCulture("en-US", "en-US")] - public void GetString_LogsLocationSearched() - { - // Arrange - var baseName = "Resources.TestResource"; - var resourceNamesCache = new ResourceNamesCache(); - var resourceAssembly = new TestAssemblyWrapper(); - var resourceManager = new TestResourceManager(baseName, resourceAssembly); - var resourceStreamManager = new TestResourceStringProvider(resourceNamesCache, resourceManager, resourceAssembly.Assembly, baseName); - var logger = Logger; - - var localizer = new ResourceManagerStringLocalizer( - resourceManager, - resourceStreamManager, - baseName, - resourceNamesCache, - logger); - - // Act - var value = localizer["a key!"]; - - // Assert - var write = Assert.Single(Sink.Writes); - Assert.Equal("ResourceManagerStringLocalizer searched for 'a key!' in 'Resources.TestResource' with culture 'en-US'.", write.State.ToString()); - } - - [Theory] - [InlineData(true)] - [InlineData(false)] - public void ResourceManagerStringLocalizer_GetAllStrings_ReturnsExpectedValue(bool includeParentCultures) - { - // Arrange - var baseName = "test"; - var resourceNamesCache = new ResourceNamesCache(); - var resourceAssembly = new TestAssemblyWrapper(); - var resourceManager = new TestResourceManager(baseName, resourceAssembly); - var resourceStreamManager = new TestResourceStringProvider(resourceNamesCache, resourceManager, resourceAssembly.Assembly, baseName); - var logger = Logger; - var localizer = new ResourceManagerStringLocalizer( - resourceManager, - resourceStreamManager, - baseName, - resourceNamesCache, - logger); - - // Act - // We have to access the result so it evaluates. - var strings = localizer.GetAllStrings(includeParentCultures).ToList(); - - // Assert - var value = Assert.Single(strings); - Assert.Equal("TestName", value.Value); - } - - [Theory] - [InlineData(true)] - [InlineData(false)] - public void ResourceManagerStringLocalizer_GetAllStrings_MissingResourceThrows(bool includeParentCultures) - { - // Arrange - var resourceNamesCache = new ResourceNamesCache(); - var baseName = "testington"; - var resourceAssembly = new TestAssemblyWrapper(); - resourceAssembly.HasResources = false; - var resourceManager = new TestResourceManager(baseName, resourceAssembly); - var logger = Logger; - - var localizer = new ResourceManagerWithCultureStringLocalizer( - resourceManager, - resourceAssembly.Assembly, - baseName, - resourceNamesCache, - CultureInfo.CurrentCulture, - logger); - - // Act & Assert - var exception = Assert.Throws(() => - { - // We have to access the result so it evaluates. - localizer.GetAllStrings(includeParentCultures).ToArray(); - }); - - var expectedTries = includeParentCultures ? 3 : 1; - var expected = includeParentCultures - ? "No manifests exist for the current culture." - : $"The manifest 'testington.{CultureInfo.CurrentCulture}.resources' was not found."; - Assert.Equal(expected, exception.Message); - Assert.Equal(expectedTries, resourceAssembly.ManifestResourceStreamCallCount); - } - - private static Stream MakeResourceStream() - { - var stream = new MemoryStream(); - var resourceWriter = new ResourceWriter(stream); - resourceWriter.AddResource("TestName", "value"); - resourceWriter.Generate(); - stream.Position = 0; - return stream; - } - - private static int GetCultureInfoDepth(CultureInfo culture) - { - var result = 0; - var currentCulture = culture; - - while (true) - { - result++; - - if (currentCulture == currentCulture.Parent) - { - break; - } - - currentCulture = currentCulture.Parent; - } - - return result; - } - - - private TestSink Sink { get; } = new TestSink(); - - private ILogger Logger => new TestLoggerFactory(Sink, enabled: true).CreateLogger(); - - public class TestResourceManager : ResourceManager - { - private AssemblyWrapper _assemblyWrapper; - - public TestResourceManager(string baseName, AssemblyWrapper assemblyWrapper) - : base(baseName, assemblyWrapper.Assembly) - { - _assemblyWrapper = assemblyWrapper; - } - - public override string GetString(string name, CultureInfo culture) => null; - - public override ResourceSet GetResourceSet(CultureInfo culture, bool createIfNotExists, bool tryParents) - { - var resourceStream = _assemblyWrapper.GetManifestResourceStream(BaseName); - - return resourceStream != null ? new ResourceSet(resourceStream) : null; - } - } - - public class TestResourceStringProvider : ResourceManagerStringProvider - { - public TestResourceStringProvider( - IResourceNamesCache resourceCache, - TestResourceManager resourceManager, - Assembly assembly, - string resourceBaseName) - : base(resourceCache, resourceManager, assembly, resourceBaseName) - { - } - } - - public class TestAssemblyWrapper : AssemblyWrapper - { - public TestAssemblyWrapper() - : this(typeof(TestAssemblyWrapper)) - { - } - - public TestAssemblyWrapper(Type type) - : base(type.GetTypeInfo().Assembly) - { - } - - public bool HasResources { get; set; } = true; - - public int ManifestResourceStreamCallCount { get; private set; } - - public override Stream GetManifestResourceStream(string name) - { - ManifestResourceStreamCallCount++; - - return HasResources ? MakeResourceStream() : null; - } - } - } -} diff --git a/version.props b/version.props deleted file mode 100644 index 669c874829..0000000000 --- a/version.props +++ /dev/null @@ -1,12 +0,0 @@ - - - 2.1.1 - rtm - $(VersionPrefix) - $(VersionPrefix)-$(VersionSuffix)-final - t000 - a- - $(FeatureBranchVersionPrefix)$(VersionSuffix)-$([System.Text.RegularExpressions.Regex]::Replace('$(FeatureBranchVersionSuffix)', '[^\w-]', '-')) - $(VersionSuffix)-$(BuildNumber) - -