如何将 C# .NET 消息翻译成其他文化?

问题描述 投票:0回答:1

我正在使用实体框架在我的系统中验证和注册新用户。我想知道如何将实体以及其他 .NET 包的默认返回消息更改为另一种文化,例如西班牙语。

identity 的英文输出示例:

用户名“[电子邮件受保护]”已被占用。

c# asp.net .net translate culture
1个回答
0
投票

因此,直接提供来自数据库或实体框架(如实体框架)的返回是不安全的。 例如,如果您直接提供查询的返回结果,那么您也会共享一个可能的错误。这样的错误消息可能包含您不想与最终用户共享的信息,例如数据库的结构,这些信息可以在 SQL 注入期间为潜在的攻击者提供帮助。

在这种情况下,您可以创建一种中间件,例如 API 端点或服务。您首先运行查询,然后评估该值并决定中间件应返回什么,例如“用户名‘[电子邮件受保护]’已被占用”。在查询和返回值之间,您可以执行不同的任务,例如翻译和错误处理。

我在这里制作了一个代码示例,也许可以帮助您:

string CheckIfUserExists(string language, string email)
    if email exists:
        if language == "en":
            reutnr "Sorry email taken"
        if language == "de":
            return "Entschuldigung die Emeil ist vergeben"

更好的解决方案是服务器仅返回 0(未采用)或 1(已采用)。客户端向服务器发出请求,如果返回值为 1,则客户端会以正确的语言呈现相应的消息。

我希望这能为您解决问题,如果您有任何疑问,请联系我

© www.soinside.com 2019 - 2024. All rights reserved.