radig/locale

此包已被废弃且不再维护。没有推荐替代包。

CakePHP Locale:允许用户输入本地化数据(如日期和小数),同时在数据库级别保持一致性。

安装次数: 1,335

依赖者: 0

建议者: 0

安全: 0

星标: 16

关注者: 10

分支: 7

公开问题: 0

类型:cakephp-plugin

2.0.8 2015-04-16 17:50 UTC

This package is auto-updated.

Last update: 2021-04-14 13:19:12 UTC


README

该插件允许用户输入本地化数据(如日期和小数),同时
在数据库级别保持一致性。

它还包含一个助手,用于以用户本地格式输出非本地化数据。

一些静态库打包提供,并由助手机能和行为使用,
同时允许你在需要的地方处理本地化数据(如shell)。
--
此插件允许您的系统用户查看和插入
本地/区域格式的数据,同时确保数据的转换
为所选数据库接受的格式。

作者和版权

  • 版权所有 2009-2014, Radig – IT解决方案
  • MIT许可证 – 这意味着代码可以无担保地使用,同时
    您可以使用它独立使用或与您自己的代码结合使用。

注意事项/观察

  • PHP >= 5.4
  • CakePHP 2.x
  • 请参阅插件中包含的测试以了解其功能(请参阅单元测试)

如何使用 / 如何开始

  • 所需的唯一配置是定义应用程序的区域。如果尚未这样做,请使用setlocale函数。
  • 仅通过以下方式定义应用程序的区域配置:
setlocale(LC_ALL, 'pt_BR.utf-8', 'pt_BR', 'pt-br', 'portuguese');

使用行为

  • 只需在需要激活行为的模型中定义以下行
$actsAs = ['Locale.Locale'];
  • 从那时起,行为将在验证和保存之前转换数据。

使用助手

  • 在感兴趣的控制器中,添加助手Locale.Locale,类似于以下行
$helpers = ['Locale.Locale'];
  • 现在在控制器的视图中,您可以调用助手,如下所示
echo $this->Locale->dateTime('2010-08-26');

除了行为和助手...

现在您还可以在应用程序的不同上下文中处理数据的规范化/非规范化(如在Shells中),只需根据需要加载Localize和Unlocalize库即可。

App::uses('Localize', 'Locale.Lib');

它们都是静态的,因此您无需担心实例

$localizada = Localize::date('2012-04-16');

因此,如果您的区域设置为pt_BR,则变量$localizada将存储“16/04/2012”

解决问题

‘[通知] 未定义索引 C: …’

此错误发生时,您在引导中配置的区域在您的操作系统上不可用。在pt_BR的情况下,它通常在Ubuntu Server(以及似乎在桌面版中)中未启用。要解决这个问题,您至少有两种选择

在一条命令行(可能适用于其他发行版)

sudo locale-gen --no-purge --lang pt_BR

让操作系统来管理

  1. sudo vi /var/lib/locales/supported.d/local
  2. 添加区域设置 pt_BR.UTF-8 UTF-8
  3. sudo dpkg-reconfigure locales
  4. 重启Apache/PHP-FPM

‘注意(8):未定义索引: [APP\Plugin\Locale\Lib\Localize.php, 第41行]’

另一个与系统区域设置相关的问题已经报告在 [问题 #2]:https://github.com/radig/locale/issues/2
总是在脚本首次执行时发生(在APC/文件缓存之前)。

解决方案是在配置setlocale时包含区域设置‘葡萄牙语’。

setlocale(LC_ALL, 'pt_BR.utf-8', 'pt_BR', 'pt-br', 'portuguese');