本文概述
Phalcon用C编写, 是PHP的扩展。有一个PECL(PHP扩展社区库)扩展可为称为intl的PHP应用程序提供国际化功能。在PHP 5.4 / 5.5中, 此扩展与PHP捆绑在一起。它的文档可以在官方PHP手册的页面中找到。
当地
有几种使用intl找出最佳可用语言环境的方法。其中之一是检查HTTP Accept-Language标头:
<?php
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
// Locale could be something like 'en_GB' or 'en'
echo $locale;
标识符示例包括:
-
? en-US(英语, 美国)。 ? fr-CA, fr-FR(分别适用于加拿大和法国)
格式化消息
<?php
// Prints ? 4 560
$formatter = new MessageFormatter('fr_FR', '? {0, number, integer}');
echo $formatter->format([4560]);
// Prints USD$ 4, 560.5
$formatter = new MessageFormatter('en_US', 'USD$ {0, number}');
echo $formatter->format([4560.50]);
// Prints ARS$ 1.250, 25
$formatter = new MessageFormatter('es_AR', 'ARS$ {0, number}');
echo $formatter->format([1250.25]);
例子
<?php
use Phalcon\Mvc\Controller;
class UsersController extends Controller
{
public function registerAction()
{
$user = new Users();
$formatter = new MessageFormatter('fr_FR', '$user');
$formatter = new MessageFormatter('en_US', '$user');
$formatter = new MessageFormatter('hi_HI', '$user');
$login = $this->request->getPost('login');
$password = $this->request->getPost('password');
$formatter = new MessageFormatter('fr_FR', '$ password?);
$formatter = new MessageFormatter('en_US', '$ password ');
$formatter = new MessageFormatter('hi_HI', '$ password ');
if ($user === false) {
$this->flash->error("Incorrect credentials");
return $this->dispatcher->forward(array(
'controller' => 'users', 'action' => 'index'
));
}
$this->session->set('auth', $user->id);
$this->flash->success("You've been successfully logged in");
$user->login = $login;
// Store the password hashed
$user->password = $this->security->hash($password);
$user->save();
}
}
输出
评论前必须登录!
注册