IdentityServer3.Contrib.Localization
Contents
Implementation of IdentityServerV3s ILocalizationService
Usage
Hard code a specific culture:
var factory = new IdentityServerServiceFactory();
var options = new LocaleOptions { LocaleProvider = env => "nb-NO" };
factory.Register(new Registration(options));
factory.LocalizationService = new Registration<ILocalizationService, GlobalizedLocalizationService>();
Provide language from accept header:
// if you want to use StringWithQualityHeaderValue
using System.Net.Http.Headers;
var opts = new LocaleOptions
{
LocaleProvider = env =>
{
var owinContext = new OwinContext(env);
var owinRequest = owinContext.Request;
var headers = owinRequest.Headers;
var accept_language_header = headers["accept-language"].ToString();
var languages = accept_language_header
.Split(',')
.Select(StringWithQualityHeaderValue.Parse)
.OrderByDescending(s => s.Quality.GetValueOrDefault(1));
var locale = languages.First().Value;
return locale;
}
};
factory.Register(new Registration(opts));
factory.LocalizationService = new Registration<ILocalizationService, GlobalizedLocalizationService\>();
Live view of supported translations
Install
PM> Install-Package IdentityServer3.Localization
NuGet: https://www.nuget.org/packages/IdentityServer3.Localization
Contributing
How to add another language:- Fork the repo
- Add the following resource files for your language in the resource folder (for instance by copying the default). ISO codes can be found here
- Events.ISO-code-for-your-translation.resx
- Messages.ISO-code-for-your-translation.resx
- Scopes.ISO-code-for-your-translation.resx
- Run the tests and fix any errors so they are green!
- Rebase off upstream if behind, and submit the Pull Request
Dependencies
- Thinktecture.IdentityServer3 - http://www.nuget.org/packages/Thinktecture.IdentityServer3/