繁体   English   中英

.NET Core 1.1和运行时本地化

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM