Lotus notes LotusNotes/LotusScript-如何用德语而不是英语设置日期?

Lotus notes LotusNotes/LotusScript-如何用德语而不是英语设置日期?,lotus-notes,lotus-domino,lotusscript,Lotus Notes,Lotus Domino,Lotusscript,我正在编写代码,向用户发送邮件。邮件文本包含日期。虽然正确计算了日期,但即使所有用户都使用德语Windows操作系统,并且在Notes首选项中将德语设置为其语言,日期仍以英语显示。这是我的密码: Set dt = New NotesDateTime(doc.GetItemValue("abc")(0)) dts = Format$(dt.LSLocalTime, "dddd, dd. MMMM yyyy") mailText = replaceSubstring(mailTe

我正在编写代码,向用户发送邮件。邮件文本包含日期。虽然正确计算了日期,但即使所有用户都使用德语Windows操作系统,并且在Notes首选项中将德语设置为其语言,日期仍以英语显示。这是我的密码:

Set dt = New NotesDateTime(doc.GetItemValue("abc")(0))          
dts = Format$(dt.LSLocalTime, "dddd, dd. MMMM yyyy")
mailText = replaceSubstring(mailText, "Datum", dts, True)
例如,在邮件中,日期显示为

2009年10月9日,星期三。2015年12月

当它应该显示为

米特沃赫,09岁。2015年12月


该代码在用户单击Notes客户端中的按钮后执行。并非所有邮件都有此问题,但我无法检测到有此问题的用户的操作系统和Notes首选项设置中有任何错误。我怎样才能让这个日期用德语而不是英语显示?

我经常在电脑受到限制的敏感客户机上遇到类似的问题

我在这里的回答并不准确,只是想引导你:

基本上,Lotus Notes客户端函数的
格式执行以下操作:

  • 它尝试读取用户的区域设置。(“区域设置”,而不是“本地”)这些存储在注册表中的
    HKEY\U CURRENT\U USER\Control Panel\International

  • 如果步骤1失败,则函数将读取所谓的DefaultFallback。 这存储在
    HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\MUI\UILanguages
    下。如果仔细观察,您会发现德语的默认回退“英语”

  • 如果步骤2也失败,则函数将使用所谓的中性语言,该语言始终为英语,并在API中硬编码

  • 在正常环境中,步骤1总是成功的。但是,在敏感区域,可能会出现注册表安全性过高,这些数据未存储在注册表中,或者客户端没有足够的权限访问这些数据的情况。然后,使用英语的默认回退

    另外,别忘了,还有漫游配置文件和默认配置文件,它们也可能有交叉影响

    最后,有多种方法可以访问注册表。因此,Excel可能会在步骤1中成功并正确设置日期格式,而Lotus Notes则会出现错误并使用默认回退


    在Windows中,存在一个用于访问国际设置的可怕的复杂API。这已经发展了20多年了!在MSDN参考中,您可以在关键字“locale”、“international”和“MUI”(多语言用户界面)下找到所有这些函数,这可能会进一步帮助您。

    检查注册表,并确保

    HKEY_USERS\Control Panel\International
    
    设置为德语,但也

    HKEY_USERS.DEFAULT\Control Panel\International
    

    我想这是一个关于notes的老问题。

    我通过使用LotusScript函数翻译日期解决了这个问题,但仍然无法找到问题首先出现的原因。

    重复我的问题请参见谢谢,但是我的问题,尽管类似,不是重复项,因为应该使用本地客户端中使用的默认区域设置。如果您尝试在表单中创建日期字段,指定“自定义全部显示”,并尝试以文本形式获取值:uidoc.FieldGetText(fieldName)@nempoBu4-否,不是。OP并不想知道为什么在收信人的结尾英语没有神奇地变成德语。邮件在具有德国地区设置的机器上本地生成;OP无法看到任何本地设置(无论是在操作系统级别还是在Notes中),这些设置会导致日期字符串以英语而不是德语生成。但是,必须是本地设置的内容导致英文字符串来自格式$;问题是在哪里查找。@nempoBu4-如果问题只存在于工作站的子集上,那么情况显然不是这样。谢谢,我还没有最终解决这个问题,但我会用这个答案。@TonyGuiheen谢谢!最后,我通过添加一个新的LotusScript函数来“更正”日期,从而解决了这个问题。这不是一个理想的方式,但我就是找不到其他的方式。@TonyGuiheen很高兴再次收到你的来信。毕竟,你已经找到了解决办法!正如你所说,这并不完美,但是,世界就是这样;)