gpt4 book ai didi

.net - 本地化系统生成的状态消息

转载 作者:行者123 更新时间:2023-12-05 01:01:26 29 4
gpt4 key购买 nike

我在 .NET 环境中工作,系统偶尔会为客户生成日志条目。然后将消息附加到客户日志中,稍后可以查看该日志。

例如,如果客户订阅新服务,或者客户尝试付款失败,这些消息将附加到客户日志中。

目前,所有消息都被硬编码到代码中,例如“客户未能完成支付 XX”。

现在的问题是这些消息需要以一种巧妙的方式本地化,这样当英语用户查看客户日志时,他会收到英文消息,而当外国用户查看日志时,他会收到他的语言。

处理这种情况的最佳方法是什么?

最佳答案

  • 记录事件标识符而不是消息。
  • 捕获事件特定数据以及事件标识符。
  • 当用户查看日志时,根据唯一标识符本地化事件消息。

  • 您将遇到的问题是,如果您尝试以对话方式将动态数据插入到消息中。例如,如果您必须写出“未找到消息”与“找到一条消息”与“找到 X 条消息”是有问题的——在英语中,我们有不同的复数形式,即零、一和多于一……但它是不一定像其他语言那样。以 String.Format 形式插入数字或日期之类的内容不会有太大问题,但您不想从事尝试以本地化方式动态生成真实语言的工作。

    我建议遵循类似于 Windows 事件日志的模式,在其中输出事件 ID、基于事件 ID 的本地化消息,然后捕获某些“字段”,您将在其中本地化字段名称和显示格式字段,例如“金额:2.00 美元”或其他任何内容。这可能不是最好的方法,但除非你有一个全职的语言学家专门从事这方面的工作,并且你打算考虑每种语言的所有细微差别,否则我会选择更简单的日志输出格式.

    在您给定的示例中,您将日志消息与数据分开,例如:

    客户未能完成付款。
    数量:XX

    您会记录一个消息 ID,例如“13579”可能是客户未能完成付款时事件的唯一 ID。最后,您可以将该值存储为单独的字段。

    您如何确定要为事件分配多少字段或如何存储数据是……好吧,最好留给读者练习。

    关于.net - 本地化系统生成的状态消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/359870/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com