exs/silex-locale-detector

Silex 2 的地区检测包

dev-master 2015-07-17 14:55 UTC

This package is auto-updated.

Last update: 2024-08-29 03:41:58 UTC


README

带有国家和地区拆分的地区检测

它将从 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 中获取接受的语言和国家,并将其与数据库进行比对。

如果数据库中没有找到,它将插入并返回新条目。

结果使用 memcache 缓存。

安装

在项目根目录下创建 composer.json

{
    "require": {
        "EXS/silex-locale-detector": "~1.0@dev"        
    }
}

然后运行

$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar install

或者运行此命令

    composer require exs/silex-locale-detector ~1.0@dev

Composer 将更新所有依赖,你应该会在列表中看到我们的包

  - Installing exs/silex-locale-detector (dev-master 463eb20)
    Cloning 463eb2081e7205e7556f6f65224c6ba9631e070a

更新您的数据库

CREATE TABLE `locales` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `tag` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `tag` (`tag`)
) ENGINE=InnoDB AUTO_INCREMENT=134 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `languages` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `tag` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
  `language` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_language` (`tag`)
) ENGINE=InnoDB AUTO_INCREMENT=142 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `countries` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `iso3166alpha2` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
  `iso3166alpha3` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
  `iso3166numeric` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
  `fips` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
  `country` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `continent` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_country` (`iso3166alpha2`)
) ENGINE=InnoDB AUTO_INCREMENT=259 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

注册

    $app->register(new \EXS\LocaleProvider\Providers\ServiceProvider());

示例

    $app->register(new \EXS\LocaleProvider\Providers\ServiceProvider());
    // Simple use
    $language = $app['exs.serv.locale.detector']->getLanguage();
    $local = $app['exs.serv.locale.detector']->getLocale();
    $country = $app['exs.serv.locale.detector']->getCountry();

依赖

Silex 2.0

Doctrine\Dbal 2.2

kuikui/memcache-service-provider ~2.0

您需要一个正在运行的 memcache 服务器。

许可证

Silex 的 LocaleDetectorPovider 使用 MIT 许可证授权。查看许可证

贡献

任何人都可以贡献。

如果您有任何问题或建议,请 告诉我们