If what you want to translate is not defined by those resources, you would need to implement it yourself.
Usage
Set a specific culture for all users:
var factory = new IdentityServerServiceFactory();
var options = new LocaleOptions { LocaleProvider = env => "nb-NO" };
factory.Register(new Registration<LocaleOptions>(options));
factory.LocalizationService = new Registration<ILocalizationService, GlobalizedLocalizationService>();
Making use of the users language setting from the browser:
using System.Net.Http.Headers; // if you want to use StringWithQualityHeaderValue
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<LocaleOptions>(opts));
factory.LocalizationService = new Registration<ILocalizationService, GlobalizedLocalizationService>();
请发表评论