extractLanguageAndRegionCodeFromBrowserLanguage() public static method

* The language tag is defined by ISO 639-1 * The region tag is defined by ISO 3166-1
public static extractLanguageAndRegionCodeFromBrowserLanguage ( string $browserLanguage, array $validLanguages = [] ) : string
$browserLanguage string Browser's accepted langauge header
$validLanguages array array of valid language codes. Note that if the array includes "fr" then it will consider all regional variants of this language valid, such as "fr-ca" etc.
return string 2 letter ISO 639 code 'es' (Spanish) or if found, includes the region as well: 'es-ar'
Exemplo n.º 1
0
 /**
  * For better privacy we store only the main language code, instead of the whole browser language string.
  * 
  * @param $acceptLanguagesString
  * @return string
  */
 protected function getSingleLanguageFromAcceptedLanguages($acceptLanguagesString)
 {
     if (empty($acceptLanguagesString)) {
         return '';
     }
     $languageCode = Common::extractLanguageAndRegionCodeFromBrowserLanguage($acceptLanguagesString);
     return $languageCode;
 }
Exemplo n.º 2
0
 /**
  * @dataProvider getLanguageDataToExtractLanguageRegionCode
  */
 public function testExtractLanguageAndRegionCodeFromBrowserLanguage($browserLanguage, $validLanguages, $expected)
 {
     $this->assertEquals($expected, Common::extractLanguageAndRegionCodeFromBrowserLanguage($browserLanguage, $validLanguages), "test with {$browserLanguage} failed, expected {$expected}");
 }