unicate/language-detection

链式语言检测。

v1.2 2020-06-08 19:07 UTC

This package is auto-updated.

Last update: 2024-09-23 04:31:36 UTC


README

以下不同的策略用于检测语言。

  • 通过 Accept-Language-Header(例如:'de-CH,en;q=0.8,en-US;q=0.5,fr;q=0.3')
  • 通过 Cookie(例如:Cookie 'lang', 值 'en')
  • 通过 UriPath(例如:/shop/en/article/3453452)
  • 通过 QueryParam(例如:index.php?lang=en)

这些方法可以在彼此之间独立链式调用。最后一个检测到可用语言的方法获胜。如果无法检测到任何语言,将返回默认语言。

安装

使用 composer

composer require unicate/language-detection

用法

<?php

require_once "vendor/autoload.php";

// Available Languages: First entry is assumed to be the default language.
$availableLang = ['en', 'de', 'fr'];

// All methods chained. The last method that detects a language wins.
$langDetection = new \Unicate\LanguageDetection\LanguageDetection($availableLang);
$lang = $langDetection->byHeader()->byCookie()->byUri()->byParam()->getLang();

// Only by Param ?lang=en
$langDetection = new \Unicate\LanguageDetection\LanguageDetection($availableLang);
$lang = $langDetection->byParam()->getLang();

// Only by Uri /shop/en/article/3453452
$langDetection = new \Unicate\LanguageDetection\LanguageDetection($availableLang);
$lang = $langDetection->byUri()->getLang();