Skip to content

Commit

Permalink
Fix typo in LangCountrySwitchController.php
Browse files Browse the repository at this point in the history
  • Loading branch information
stefro committed Aug 4, 2023
1 parent cebbab7 commit 239d989
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 49 deletions.
2 changes: 1 addition & 1 deletion src/Controllers/LangCountrySwitchController.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public function switch($lang_country)
// Set the right sessions
\LangCountry::setAllSessions($lang_country);

// If a user is logged in and it has a lang_country propperty, set the new lang_country.
// If a user is logged in, and it has a lang_country propperty, set the new lang_country.
if (\Auth::user() && array_key_exists('lang_country', \Auth::user()->getAttributes())) {
try {
\Auth::user()->lang_country = $lang_country;
Expand Down
10 changes: 5 additions & 5 deletions src/LangCountry.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Stefro\LaravelLangCountry;

use Carbon\Carbon;
use Stefro\LaravelLangCountry\Services\PreferedLanguage;
use Stefro\LaravelLangCountry\Services\PreferredLanguage;

class LangCountry
{
Expand All @@ -25,7 +25,7 @@ class LangCountry
public function __construct()
{
if(config('lang-country.fallback_based_on_current_locale', false) && ! session()->has('lang_country')) {
$lang = new PreferedLanguage(app()->getLocale());
$lang = new PreferredLanguage(app()->getLocale());
$this->lang_country = $lang->lang_country;
} else {
$this->lang_country = session('lang_country', config('lang-country.fallback'));
Expand All @@ -37,7 +37,7 @@ public function overrideSession($lang_country)
{
// In case the override is not a 4 char value
if (5 !== strlen($lang_country)) {
$lang = new PreferedLanguage($lang_country);
$lang = new PreferredLanguage($lang_country);
$lang_country = $lang->lang_country;
}

Expand Down Expand Up @@ -361,9 +361,9 @@ public function langSelectorHelper()
});
}

public function setAllSessions($prefered_lang)
public function setAllSessions($preferred_lang)
{
$lang = new PreferedLanguage($prefered_lang);
$lang = new PreferredLanguage($preferred_lang);
session(['lang_country' => $lang->lang_country]);
session(['locale' => $lang->locale]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
/**
* Class PreferedLanguage.
*/
class PreferedLanguage
class PreferredLanguage
{
/**
* @var \Illuminate\Support\Collection
*/
protected $client_prefered;
protected $client_preferred;

/**
* @var \Illuminate\Support\Collection
Expand All @@ -22,7 +22,7 @@ class PreferedLanguage
*
* @var
*/
protected $prefered_languages;
protected $preferred_languages;

/**
* @var string
Expand All @@ -46,22 +46,22 @@ class PreferedLanguage
/**
* PreferedLanguage constructor.
*
* @param $prefered_languages
* @param $preferred_languages
* @param null $allowed
* @param null $fallback
*/
public function __construct($prefered_languages, $allowed = null, $fallback = null)
public function __construct($preferred_languages, $allowed = null, $fallback = null)
{
$this->prefered_languages = $prefered_languages;
$this->preferred_languages = $preferred_languages;
$this->allowed = $allowed ?? collect(config('lang-country.allowed'));
$this->fallback = $fallback ?? config('lang-country.fallback');
$this->client_prefered = $this->clientPreferedLanguages();
$this->client_preferred = $this->clientPreferedLanguages();
$this->lang_country = $this->getLangCountry();
$this->locale = $this->getLocale();
}

/**
* It will return a list of prefered languages of the browser in order of preference.
* It will return a list of preferred languages of the browser in order of preference.
*
* @return \Illuminate\Support\Collection
*/
Expand All @@ -70,7 +70,7 @@ public function clientPreferedLanguages()
// regex inspired from @GabrielAnderson on http://stackoverflow.com/questions/6038236/http-accept-language
preg_match_all(
'/([a-z]{1,8}(-[a-z]{1,8})*)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
$this->prefered_languages,
$this->preferred_languages,
$lang_parse
);

Expand Down Expand Up @@ -109,7 +109,7 @@ public function clientPreferedLanguages()
}
};

// sort the languages by prefered language and by the most specific region
// sort the languages by preferred language and by the most specific region
uksort($lang2pref, $cmpLangs);

return collect($lang2pref);
Expand All @@ -122,18 +122,18 @@ public function clientPreferedLanguages()
*/
protected function getLangCountry()
{
$prefered = $this->rewritePreferedToFourDigitValues();
$preferred = $this->rewritePreferedToFourDigitValues();

// Find exact match for 4 digits
$prefered = $this->client_prefered->keys()->filter(function ($value) {
$preferred = $this->client_preferred->keys()->filter(function ($value) {
return 5 == strlen($value);
})->first(function ($value) {
return $this->allowed->contains($value);
});

// Find first two digit (lang) match to four digit lang_country from the allowed-list
if (null === $prefered) {
$prefered = $this->client_prefered->keys()->filter(function ($value) {
if (null === $preferred) {
$preferred = $this->client_preferred->keys()->filter(function ($value) {
return 2 == strlen($value);
})->map(function ($item) {
return $this->allowed->filter(function ($value) use ($item) {
Expand All @@ -145,19 +145,19 @@ protected function getLangCountry()
}

// Get fallback if no results
if (null === $prefered) {
$prefered = $this->fallback;
if (null === $preferred) {
$preferred = $this->fallback;
}

return $prefered;
return $preferred;
}

/**
* @return string|null
*/
private function rewritePreferedToFourDigitValues()
{
$prefered = $this->client_prefered->keys()->map(function ($value) {
$preferred = $this->client_preferred->keys()->map(function ($value) {
if (5 == strlen($value)) {
return $value;
} else {
Expand All @@ -167,7 +167,7 @@ private function rewritePreferedToFourDigitValues()
return $value === null;
});

return $prefered;
return $preferred;
}

/**
Expand All @@ -185,7 +185,7 @@ private function findFourDigitValueInOther($value)
* Check if 4 char language (ex. en-US.json) file exists in /resources/lang/ dir.
* If not, just return the first two chars (represents the language).
*
* @return bool|\Illuminate\Config\Repository|int|PreferedLanguage|mixed|string
* @return bool|\Illuminate\Config\Repository|int|PreferredLanguage|mixed|string
*/
private function getLocale()
{
Expand Down
6 changes: 3 additions & 3 deletions tests/Services/PreferedLanguageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Stefro\LaravelLangCountry\Tests\Services;

use Stefro\LaravelLangCountry\Services\PreferedLanguage;
use Stefro\LaravelLangCountry\Services\PreferredLanguage;
use Stefro\LaravelLangCountry\Tests\TestCase;

class PreferedLanguageTest extends TestCase
Expand Down Expand Up @@ -31,11 +31,11 @@ public function it_will_override_the_default_allowed_languages_from_the_config()
]);
$override_fallback = 'cn-CN';

$lang = new PreferedLanguage('es', $override_allowed_languages, $override_fallback);
$lang = new PreferredLanguage('es', $override_allowed_languages, $override_fallback);
$this->assertEquals('es-ES', $lang->lang_country);
$this->assertEquals('es', $lang->locale);

$lang = new PreferedLanguage('nl', $override_allowed_languages, $override_fallback);
$lang = new PreferredLanguage('nl', $override_allowed_languages, $override_fallback);
$this->assertEquals('cn-CN', $lang->lang_country);
$this->assertEquals('cn', $lang->locale);
}
Expand Down
6 changes: 3 additions & 3 deletions tests/Unit/LocaleForDateTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Stefro\LaravelLangCountry\Tests\Unit;

use Stefro\LaravelLangCountry\Services\PreferedLanguage;
use Stefro\LaravelLangCountry\Services\PreferredLanguage;
use Stefro\LaravelLangCountry\Tests\TestCase;

class LocaleForDateTest extends TestCase
Expand Down Expand Up @@ -31,7 +31,7 @@ public function setUp(): void
*/
public function no_four_char_json_available_in_date_package_fallback_to_just_lang()
{
$lang = new PreferedLanguage('nl-NL');
$lang = new PreferredLanguage('nl-NL');

$this->assertEquals('nl', $lang->locale);
}
Expand All @@ -42,7 +42,7 @@ public function no_four_char_json_available_in_date_package_fallback_to_just_lan
*/
public function no_match_fallback_to_date_package_fallback()
{
$lang = new PreferedLanguage('xx-XX');
$lang = new PreferredLanguage('xx-XX');

$this->assertEquals('en', $lang->locale);
}
Expand Down
6 changes: 3 additions & 3 deletions tests/Unit/LocaleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Stefro\LaravelLangCountry\Tests\Unit;

use Stefro\LaravelLangCountry\Services\PreferedLanguage;
use Stefro\LaravelLangCountry\Services\PreferredLanguage;
use Stefro\LaravelLangCountry\Tests\TestCase;

class LocaleTest extends TestCase
Expand Down Expand Up @@ -34,7 +34,7 @@ public function four_char_json_available()
$dest = lang_path().'es-CO.json';
copy($file, $dest);

$lang = new PreferedLanguage('es-CO,en');
$lang = new PreferredLanguage('es-CO,en');

$this->assertEquals('es-CO', $lang->locale);

Expand All @@ -47,7 +47,7 @@ public function four_char_json_available()
*/
public function four_char_json_not_available()
{
$lang = new PreferedLanguage('es-CO,en');
$lang = new PreferredLanguage('es-CO,en');

$this->assertEquals('es', $lang->locale);
}
Expand Down
28 changes: 14 additions & 14 deletions tests/Unit/PreferredLanguageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Stefro\LaravelLangCountry\Tests\Unit;

use Stefro\LaravelLangCountry\Services\PreferedLanguage;
use Stefro\LaravelLangCountry\Services\PreferredLanguage;
use Stefro\LaravelLangCountry\Tests\TestCase;

class PreferredLanguageTest extends TestCase
Expand All @@ -25,12 +25,12 @@ public function setUp(): void
}

/**
* @group prefered_lang_test
* @group preferred_lang_test
* @test
*/
public function get_prefered_languages_in_right_order()
public function get_preferred_languages_in_right_order()
{
$lang = new PreferedLanguage('nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.5');
$lang = new PreferredLanguage('nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.5');

$expected = collect([
'nl-NL' => 1.0,
Expand All @@ -44,12 +44,12 @@ public function get_prefered_languages_in_right_order()
}

/**
* @group prefered_lang_test
* @group preferred_lang_test
* @test
*/
public function prioritize_more_specific_values()
{
$lang = new PreferedLanguage('nl-NL,nl,en-US,en,de');
$lang = new PreferredLanguage('nl-NL,nl,en-US,en,de');
$expected = collect([
'nl-NL' => 1.0,
'en-US' => 1.0,
Expand All @@ -62,45 +62,45 @@ public function prioritize_more_specific_values()
}

/**
* @group prefered_lang_test
* @group preferred_lang_test
* @test
*/
public function exact_match_with_allowed_lang_country()
{
$lang = new PreferedLanguage('gr,nl,de-DE,en');
$lang = new PreferredLanguage('gr,nl,de-DE,en');

$this->assertEquals('de-DE', $lang->lang_country);
}

/**
* @group prefered_lang_test
* @group preferred_lang_test
* @test
*/
public function match_based_on_lang()
{
$lang = new PreferedLanguage('gr,nl,zh-CH,en');
$lang = new PreferredLanguage('gr,nl,zh-CH,en');

$this->assertEquals('nl-NL', $lang->lang_country);
}

/**
* @group prefered_lang_test
* @group preferred_lang_test
* @test
*/
public function no_match_return_fallback()
{
$lang = new PreferedLanguage('gr,zh-CH');
$lang = new PreferredLanguage('gr,zh-CH');

$this->assertEquals('en-GB', $lang->lang_country);
}

/**
* @group prefered_lang_test
* @group preferred_lang_test
* @test
*/
public function country_in_lowecase()
{
$lang = new PreferedLanguage('nl-nl,nl-be,gr');
$lang = new PreferredLanguage('nl-nl,nl-be,gr');

$this->assertEquals('nl-NL', $lang->lang_country);
}
Expand Down

0 comments on commit 239d989

Please sign in to comment.