Date SilverStripe如何在模板中转换日期函数?

Date SilverStripe如何在模板中转换日期函数?,date,multilingual,silverstripe,fluent,Date,Multilingual,Silverstripe,Fluent,我正在使用SilverStripe 3.1的模块多语言支持,并且没有将日期函数用于模板的文档 文件fluent.yml具有以下配置: --- Name: myfluentconfig After: '#fluentconfig' --- Fluent: default_locale: fr_CA locales: - en_CA - fr_CA aliases: en_CA: en fr_CA: fr --- Name: m

我正在使用SilverStripe 3.1的模块多语言支持,并且没有将日期函数用于模板的文档

文件fluent.yml具有以下配置:

 ---
 Name: myfluentconfig
 After: '#fluentconfig'
 ---
 Fluent:
   default_locale: fr_CA
   locales:
     - en_CA
     - fr_CA
   aliases:
     en_CA: en
     fr_CA: fr
 ---
 Name: myfluenti18nconfig
 After: '#fluenti18nconfig'
 ---
 i18n:
   default_locale: fr_CA
我还在mysite/_config.php中删除了:

 // i18n::set_locale('fr_FR');

这在我的网站上非常有用。但是如何用正确的语言显示日期呢?如果我的模板中的日期变量是$Date,我可以添加$Date.month以显示整个月份。但实际上,它只出现在fr_CA网站上的英文版本。那么,是否有可能以其他方式显示法语日期呢?

日期和本地化,这是每个多语言开发人员的必经之路。根据当前区域设置,应使用返回格式化字符串。如果您没有在服务器上安装您的区域设置(fr\u fr),它将不起作用。或者如果您使用例如fr_FR@utf-8... 我必须在mysite/_config.php中的我的一个站点上包含此setlocale,才能使其正常工作:

setlocale(LC_TIME, "de_AT.utf8");
并在稍后的页面_controller::init()中覆盖它。(这是一个基于可翻译的网站,fluent会自动为您提供)


因此,请检查机器上已安装的区域设置。

哦,很难理解您的awnser。如果认为我的代码示例混淆了我的问题。。。。我更新了我的问题。嗯,可能不是你的代码,而是服务器设置造成了这里的困难。您的服务器运行在什么操作系统上?您是否在服务器上安装了要使用的区域设置?请提供更多信息…好的,我会和我的服务器提供商联系,等我有了awnser后再回来。Thanks Formati18N有效,但不是100%。我不知道这是否是一个问题,但特殊字符显示«?»。我纠正了添加一个stringparser以UTF8编码的问题,就是这样!解析
$Date.FormatI18N(“%b”).UTF8encoding()