5

Zendフレームワーク1で私はできる

try {
    $locale = new Zend_Locale('browser'); 
} catch (Zend_Locale_Exception $e) {
    $locale = new Zend_Locale('en');   
}
$registry = Zend_Registry::getInstance();
$registry->set('Zend_Locale', $locale);

しかし、Zend Framework 2ではどのように機能しますか?

4

2 に答える 2

9

最近、Zend Framework 2と、すべてのi18n、l10n、およびロケール設定がどのように機能するかについてブログを書きました。使用するロケールはさまざまな方法で設定できるため、これも興味深いかもしれません。

それについて読む:Zend Framework 2-翻訳、i18n、ロケール

個人的に私は次のアプローチを採用し、構造に応じて、データベース、セッション、Cookieなどからロケールを追加できます;)

<?php
namespace FileManager;

use Zend\Mvc\ModuleRouteListener;

class Module
{
    public function onBootstrap($e)
    {
        $translator = $e->getApplication()->getServiceManager()->get('translator');
        $translator
          ->setLocale(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']))
          ->setFallbackLocale('en_US');
    }

    //...
}
于 2012-10-02T11:05:55.203 に答える
2

このRFCから判断すると、Zend_LocaleをZend Framework 2から除外し、コアPHPI18nクラスに依存することが決定されました。

クラスをよく理解するためにイントロダクションから始めてマニュアルを読み、次にそれらを使用するためにコードをリファクタリングすることをお勧めします。

于 2012-10-02T10:23:01.487 に答える