[英].NET core 1.1 and localization in runtime
在我正在开发的应用程序中,需要对输出消息进行本地化。 我的Web api项目已经通过.net core的全球化/本地化功能成功实现了它。 每个用户在数据库中都有特定的语言环境,因此使用自定义的RequestCultureProvider,我可以访问用户的委托人,获取他的语言并更改RequestCultureProvider。 但是有时我会运行一些向用户发送推送通知消息的过程。 例如:
foreach(var user in users)
await SendNotification("message", user.DeviceId)
如果我这样重写: 等待SendNotification(localizer [“ message”],user.DeviceId),则每个用户将具有相同的“ message”翻译。 是否可以在运行时根据user.cultureInfo更改本地化器?
谢谢
当然可以。
您只需要使用.WithCulture(...)
调用本地化器.WithCulture(...)
foreach(var user in users)
await SendNotification(localizer.WithCulture(new Culture("en-US"))["message"], user.DeviceId)
当然,用包含文化的变量或属性代替en-US
,即
foreach(var user in users)
await SendNotification(localizer.WithCulture(new Culture(user.CultureInfo))["message"], user.DeviceId)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.