radig / locale
此包已被废弃且不再维护。没有推荐替代包。
CakePHP Locale:允许用户输入本地化数据(如日期和小数),同时在数据库级别保持一致性。
2.0.8
2015-04-16 17:50 UTC
Requires
- php: >=5.3.0
- composer/installers: ~1.0
Requires (Dev)
- phpunit/phpunit: 3.7.32
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
让操作系统来管理
sudo vi /var/lib/locales/supported.d/local
- 添加区域设置 pt_BR.UTF-8 UTF-8
sudo dpkg-reconfigure locales
- 重启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');