【发布时间】:2016-05-17 04:22:31
【问题描述】:
我尝试将我的应用程序中的输入和输出本地化为德语,但遇到以下设置问题:
在我托管的 WebSpace 上通过 SSH/Composer 安装了 CakePHP 3.2.1。
创建了一个数据库,其中只有一个表“发票”用于测试,列“id”、“datum”(日期时间)和“amount”(十进制 10,2)。
用“bin/cake bake all invoices”烘焙。
通过 SSH 使用“locale -a”检查了我的网络托管商的本地化缩写...
de_DE
de_DE@euro
de_DE.iso88591
de_DE.iso885915@euro
de_DE.utf8
de_DE.utf8@euro
编辑配置/bootstrap.php:
ini_set('intl.default_locale', 'de_DE');
在 /src/Template/Invoices/add.ctp 中添加了一些 php-test-output:
<?php
use Cake\I18n\I18n;
use Cake\I18n\Time;
$now = Time::now();
echo $now->i18nFormat('dd.MM.yyyy HH:mm:ss');
echo " +++ ";
echo $now->i18nFormat('l, N. F Y');
?>
<nav class="large-3 medium-4 columns" id="actions-sidebar">
<ul class="side-nav">
<li class="heading"><?= __('Actions') ?></li>
<li><?= $this->Html->link(__('List Invoices'), ['action' => 'index']) ?></li>
</ul>
</nav>
<div class="invoices form large-9 medium-8 columns content">
<?= $this->Form->create($invoice) ?>
<fieldset>
<legend><?= __('Add Invoice') ?></legend>
<?php
echo $this->Form->input('datum');
echo $this->Form->input('betrag');
?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>
</div>
这是我的 php 测试输出:
07.02.2016 12:42:19 +++ ,
如您所见,第一个输出看起来像德国日期时间格式,但我必须手动传递格式,就像我使用普通 php 代码一样,所以我在哪里可以告诉 CakePHP 总是使用这种格式作为日期或整个应用内的时间字段?
在“+++”之后,我期望得到以下输出,但只有逗号:
Sonntag, 7. Februar 2016
输入字段是否也可以使用本地化格式?我该月的下拉字段“基准”仍然有英文名称,并且该日期的前 3 个下拉字段的顺序是错误的。
如果您能告诉我如何在 CakePHP 表单输入元素和任意输出数据中获取本地本地化的德国日期、数字和货币,我将不胜感激。
在此先致谢并致以最诚挚的问候,
老兄
【问题讨论】:
标签: php cakephp cakephp-3.0 date-formatting intl