个性化阅读
专注于IT技术分析

Phalcon国际化

本文概述

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();
    }
}

输出

Phalcon国际化1
Phalcon国际化2
Phalcon国际化3
赞(0)
未经允许不得转载:srcmini » Phalcon国际化

评论 抢沙发

评论前必须登录!