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

时间:2015-12-09 12:35:24

标签: lotus-notes lotus-domino lotusscript

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

$mform->addRule('title', 'Only Numerics Allowed', 'numeric', null, 'client');

在邮件中,日期显示为,例如

2015年12月9日星期三

何时显示为

Mittwoch,09。Dezember 2015

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

3 个答案:

答案 0 :(得分:2)

我经常在PC受限制的敏感客户端遇到类似的问题。

我的答案不准确,只是为了指导你:

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

  1. 尝试阅读用户的区域设置。 (“locale”,而不是“local”)这些存储在HKEY_CURRENT_USER\Control Panel\International下的注册表中。

  2. 如果步骤1失败,则该函数会读取所谓的 DefaultFallback 。 它存储在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\UILanguages下。如果你仔细观察,你会发现对于德语的DefaultFallBack“英语”

  3. 如果步骤2也失败了,那么该函数使用所谓的中性语言,它始终是英语,并且在API中是硬编码的。

  4. 在正常环境中,步骤1始终成功。但是,在敏感区域,可能会发生注册表过度安全,并且这些数据未存储在注册表中,或者客户端具有访问它的权限不足。然后,使用英语的默认回退。

    另外,不要忘记,漫游配置文件和默认配置文件也可能会产生交叉影响!

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

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

答案 1 :(得分:0)

检查注册表,不仅要确保

HKEY_USERS\Control Panel\International

设置为德语,但也

HKEY_USERS.DEFAULT\Control Panel\International

我认为这是一个古老的已知问题。

答案 2 :(得分:0)

我通过使用LotusScript函数来解决这个问题来翻译日期,但仍然无法找出问题出现在第一位的原因