定制 websafe/zf-mod-language 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

websafe/zf-mod-language

Composer 安装命令:

composer require websafe/zf-mod-language

包简介

A ZF2 module which takes care of detecting an optimal and/or the requested locale for Your application's translator. The locale is computed/detected basing on values found in: Accept-Language header, cookie, session, query parameter and route parameter. Each detection method can be disabled/enabled

README 文档

README

A ZF2 module which takes care of detecting an optimal and|or the requested locale for Your application's translator. The locale is computed/detected basing on values found in: Accept-Language headers, cookie, session, query parameter and route parameter. Each detection method can be disabled/enabled via configuration.

Provides:

Using WebsafeZfModLanguage in Your application

In project's root run:

vendor/bin/composer.phar require "websafe/zf-mod-language:*"

In config/application.config.php add WebsafeZfModLanguage:

    // ...
    'modules' => array(
        // ...
        'Application',
        'WebsafeZfModLanguage',
        // ...
    ),

That's all. The module should work now - transparently. Test it on the official ZendSkeletonApplication and try to modify browsers Accept-Language headers or just add ?language=ja_JP (or any other locale available in supported_locales) in the url.

You should notice a language change, because the default configuration tells the language service to detect the locale in the query too, see options detect_in_query and query_param.

There's already a basic view helper included, so after enabling the module in config/application.config.php You can try to add the following code somewhere in layout.phtml or in other view scripts:

<?php echo $this->languageSelect();?>

The view helper is currently the only reason for the Controller to exist.

Configuration

How locale/language detection is handled.

  1. The module attaches the DetectLanguagesListener to the event manager.

  2. The DetectLanguagesListener is now waiting for a dispatch event (MvcEvent::EVENT_DISPATCH)...

  3. When the dispatch event occurs, DetectLanguagesListener forwards the event to the language service WebsafeZfModLanguageService.

1. The language service collects data for locale detection:

   + Retrieve languages requested by the client/browser via 
     [Accept-Language] headers. Add all results ordered by priority
     to the `detectedLanguages` array.

   + Retrieve locale stored in cookie (name of cookie is configurable).
     Prepend the retrieved locale to the front of `detectedLanguages`.

   + Retrieve locale stored in session (container name and session 
     variable name are configurable). 
     Prepend the retrieved locale to the front of `detectedLanguages`.

   + Retrieve locale provided in query parameter (parameter name  is
     configurable). 
     Prepend the retrieved locale to the front of `detectedLanguages`.

   + Retrieve locale provided in route parameter (parameter name is
     configurable). 
     Prepend the retrieved locale to the front of `detectedLanguages`.

1. The language service iterates through `detectedLanguages` and stops
   iterating after the first detected locale that exists in 
   [supported_locales]. The matched locale is now accessible via 
   `$sm->get('WebsafeZfModLanguageService')->getCurrentLocale()`.

1. The language service applies the current locale to the `translator`
   service.

统计信息

  • 总下载量: 23
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2013-12-09

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固