SilverStripe 如何翻译模板中的日期功能?

SilverStripe how translate date function in template?

我正在使用 SilverStripe 3.1 的 Fluent 模块多语言支持,并且没有关于在模板中使用 Date 函数的文档。

文件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,我可以添加 $date.month 来显示完整的月份。但实际上,它只以英文出现在 fr_CA 网站上。那么,是否可以通过其他方式显示法国日期?

日期和本地化,每个多语言开发者的皮塔饼。 FormatI18N should return the formatted string using strftime() 取决于当前语言环境。如果您没有在您的服务器上安装您的语言环境 (fr_FR),它将无法工作。或者如果你使用例如fr_FR@utf-8...我必须在我的 mysite/_config.php 网站上包含此 setlocale 才能使其正常工作:

setlocale(LC_TIME, "de_AT.utf8");

并稍后在 Page_controller::init() 中覆盖它。 (这是一个可翻译的网站,fluent 会自动为您完成)

所以请检查您机器上安装的语言环境。