412 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			412 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | ||
| 
 | ||
| /*
 | ||
|  * This file is part of the Carbon package.
 | ||
|  *
 | ||
|  * (c) Brian Nesbitt <brian@nesbot.com>
 | ||
|  *
 | ||
|  * For the full copyright and license information, please view the LICENSE
 | ||
|  * file that was distributed with this source code.
 | ||
|  */
 | ||
| 
 | ||
| use Carbon\Carbon;
 | ||
| use Symfony\Component\Translation\Translator;
 | ||
| use Symfony\Component\Translation\Loader\ArrayLoader;
 | ||
| 
 | ||
| class LocalizationTest extends TestFixture
 | ||
| {
 | ||
|     public function testGetTranslator()
 | ||
|     {
 | ||
|         $t = Carbon::getTranslator();
 | ||
|         $this->assertNotNull($t);
 | ||
|         $this->assertSame('en', $t->getLocale());
 | ||
|     }
 | ||
| 
 | ||
|     public function testSetTranslator()
 | ||
|     {
 | ||
|         $t = new Translator('fr');
 | ||
|         $t->addLoader('array', new ArrayLoader());
 | ||
|         Carbon::setTranslator($t);
 | ||
| 
 | ||
|         $t = Carbon::getTranslator();
 | ||
|         $this->assertNotNull($t);
 | ||
|         $this->assertSame('fr', $t->getLocale());
 | ||
|     }
 | ||
| 
 | ||
|     public function testGetLocale()
 | ||
|     {
 | ||
|         Carbon::setLocale('en');
 | ||
|         $this->assertSame('en', Carbon::getLocale());
 | ||
|     }
 | ||
| 
 | ||
|     public function testSetLocale()
 | ||
|     {
 | ||
|         Carbon::setLocale('en');
 | ||
|         $this->assertSame('en', Carbon::getLocale());
 | ||
|         Carbon::setLocale('fr');
 | ||
|         $this->assertSame('fr', Carbon::getLocale());
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * The purpose of these tests aren't to test the validitity of the translation
 | ||
|      * but more so to test that the language file exists.
 | ||
|      */
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInFrench()
 | ||
|     {
 | ||
|         Carbon::setLocale('fr');
 | ||
| 
 | ||
|         $d = Carbon::now()->subSecond();
 | ||
|         $this->assertSame('il y a 1 seconde', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subSeconds(2);
 | ||
|         $this->assertSame('il y a 2 secondes', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinute();
 | ||
|         $this->assertSame('il y a 1 minute', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinutes(2);
 | ||
|         $this->assertSame('il y a 2 minutes', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHour();
 | ||
|         $this->assertSame('il y a 1 heure', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHours(2);
 | ||
|         $this->assertSame('il y a 2 heures', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDay();
 | ||
|         $this->assertSame('il y a 1 jour', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDays(2);
 | ||
|         $this->assertSame('il y a 2 jours', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeek();
 | ||
|         $this->assertSame('il y a 1 semaine', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeeks(2);
 | ||
|         $this->assertSame('il y a 2 semaines', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonth();
 | ||
|         $this->assertSame('il y a 1 mois', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonths(2);
 | ||
|         $this->assertSame('il y a 2 mois', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYear();
 | ||
|         $this->assertSame('il y a 1 an', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYears(2);
 | ||
|         $this->assertSame('il y a 2 ans', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $this->assertSame('dans 1 seconde', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $d2 = Carbon::now();
 | ||
|         $this->assertSame('1 seconde après', $d->diffForHumans($d2));
 | ||
|         $this->assertSame('1 seconde avant', $d2->diffForHumans($d));
 | ||
| 
 | ||
|         $this->assertSame('1 seconde', $d->diffForHumans($d2, true));
 | ||
|         $this->assertSame('2 secondes', $d2->diffForHumans($d->addSecond(), true));
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInSpanish()
 | ||
|     {
 | ||
|         Carbon::setLocale('es');
 | ||
| 
 | ||
|         $d = Carbon::now()->subSecond();
 | ||
|         $this->assertSame('hace 1 segundo', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subSeconds(3);
 | ||
|         $this->assertSame('hace 3 segundos', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinute();
 | ||
|         $this->assertSame('hace 1 minuto', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinutes(2);
 | ||
|         $this->assertSame('hace 2 minutos', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHour();
 | ||
|         $this->assertSame('hace 1 hora', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHours(2);
 | ||
|         $this->assertSame('hace 2 horas', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDay();
 | ||
|         $this->assertSame('hace 1 día', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDays(2);
 | ||
|         $this->assertSame('hace 2 días', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeek();
 | ||
|         $this->assertSame('hace 1 semana', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeeks(2);
 | ||
|         $this->assertSame('hace 2 semanas', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonth();
 | ||
|         $this->assertSame('hace 1 mes', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonths(2);
 | ||
|         $this->assertSame('hace 2 meses', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYear();
 | ||
|         $this->assertSame('hace 1 año', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYears(2);
 | ||
|         $this->assertSame('hace 2 años', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $this->assertSame('dentro de 1 segundo', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $d2 = Carbon::now();
 | ||
|         $this->assertSame('1 segundo antes', $d->diffForHumans($d2));
 | ||
|         $this->assertSame('1 segundo después', $d2->diffForHumans($d));
 | ||
| 
 | ||
|         $this->assertSame('1 segundo', $d->diffForHumans($d2, true));
 | ||
|         $this->assertSame('2 segundos', $d2->diffForHumans($d->addSecond(), true));
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInItalian()
 | ||
|     {
 | ||
|         Carbon::setLocale('it');
 | ||
| 
 | ||
|         $d = Carbon::now()->addYear();
 | ||
|         $this->assertSame('1 anno da adesso', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addYears(2);
 | ||
|         $this->assertSame('2 anni da adesso', $d->diffForHumans());
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInGerman()
 | ||
|     {
 | ||
|         Carbon::setLocale('de');
 | ||
| 
 | ||
|         $d = Carbon::now()->addYear();
 | ||
|         $this->assertSame('in 1 Jahr', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addYears(2);
 | ||
|         $this->assertSame('in 2 Jahren', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYear();
 | ||
|         $this->assertSame('1 Jahr später', Carbon::now()->diffForHumans($d));
 | ||
| 
 | ||
|         $d = Carbon::now()->subYears(2);
 | ||
|         $this->assertSame('2 Jahre später', Carbon::now()->diffForHumans($d));
 | ||
| 
 | ||
|         $d = Carbon::now()->addYear();
 | ||
|         $this->assertSame('1 Jahr zuvor', Carbon::now()->diffForHumans($d));
 | ||
| 
 | ||
|         $d = Carbon::now()->addYears(2);
 | ||
|         $this->assertSame('2 Jahre zuvor', Carbon::now()->diffForHumans($d));
 | ||
| 
 | ||
|         $d = Carbon::now()->subYear();
 | ||
|         $this->assertSame('vor 1 Jahr', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYears(2);
 | ||
|         $this->assertSame('vor 2 Jahren', $d->diffForHumans());
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInTurkish()
 | ||
|     {
 | ||
|         Carbon::setLocale('tr');
 | ||
| 
 | ||
|         $d = Carbon::now()->subSecond();
 | ||
|         $this->assertSame('1 saniye önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subSeconds(2);
 | ||
|         $this->assertSame('2 saniye önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinute();
 | ||
|         $this->assertSame('1 dakika önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinutes(2);
 | ||
|         $this->assertSame('2 dakika önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHour();
 | ||
|         $this->assertSame('1 saat önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHours(2);
 | ||
|         $this->assertSame('2 saat önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDay();
 | ||
|         $this->assertSame('1 gün önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDays(2);
 | ||
|         $this->assertSame('2 gün önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeek();
 | ||
|         $this->assertSame('1 hafta önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeeks(2);
 | ||
|         $this->assertSame('2 hafta önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonth();
 | ||
|         $this->assertSame('1 ay önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonths(2);
 | ||
|         $this->assertSame('2 ay önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYear();
 | ||
|         $this->assertSame('1 yıl önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYears(2);
 | ||
|         $this->assertSame('2 yıl önce', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $this->assertSame('1 saniye andan itibaren', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $d2 = Carbon::now();
 | ||
|         $this->assertSame('1 saniye sonra', $d->diffForHumans($d2));
 | ||
|         $this->assertSame('1 saniye önce', $d2->diffForHumans($d));
 | ||
| 
 | ||
|         $this->assertSame('1 saniye', $d->diffForHumans($d2, true));
 | ||
|         $this->assertSame('2 saniye', $d2->diffForHumans($d->addSecond(), true));
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInDanish()
 | ||
|     {
 | ||
|         Carbon::setLocale('da');
 | ||
| 
 | ||
|         $d = Carbon::now()->subSecond();
 | ||
|         $this->assertSame('1 sekund siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subSeconds(2);
 | ||
|         $this->assertSame('2 sekunder siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinute();
 | ||
|         $this->assertSame('1 minut siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinutes(2);
 | ||
|         $this->assertSame('2 minutter siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHour();
 | ||
|         $this->assertSame('1 time siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHours(2);
 | ||
|         $this->assertSame('2 timer siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDay();
 | ||
|         $this->assertSame('1 dag siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDays(2);
 | ||
|         $this->assertSame('2 dage siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeek();
 | ||
|         $this->assertSame('1 uge siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeeks(2);
 | ||
|         $this->assertSame('2 uger siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonth();
 | ||
|         $this->assertSame('1 måned siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonths(2);
 | ||
|         $this->assertSame('2 måneder siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYear();
 | ||
|         $this->assertSame('1 år siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYears(2);
 | ||
|         $this->assertSame('2 år siden', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $this->assertSame('om 1 sekund', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $d2 = Carbon::now();
 | ||
|         $this->assertSame('1 sekund efter', $d->diffForHumans($d2));
 | ||
|         $this->assertSame('1 sekund før', $d2->diffForHumans($d));
 | ||
| 
 | ||
|         $this->assertSame('1 sekund', $d->diffForHumans($d2, true));
 | ||
|         $this->assertSame('2 sekunder', $d2->diffForHumans($d->addSecond(), true));
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInLithuanian()
 | ||
|     {
 | ||
|         Carbon::setLocale('lt');
 | ||
| 
 | ||
|         $d = Carbon::now()->addYear();
 | ||
|         $this->assertSame('1 metai nuo dabar', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addYears(2);
 | ||
|         $this->assertSame('2 metai nuo dabar', $d->diffForHumans());
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInKorean()
 | ||
|     {
 | ||
|         Carbon::setLocale('ko');
 | ||
| 
 | ||
|         $d = Carbon::now()->addYear();
 | ||
|         $this->assertSame('1 년 후', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addYears(2);
 | ||
|         $this->assertSame('2 년 후', $d->diffForHumans());
 | ||
|     }
 | ||
| 
 | ||
|     public function testDiffForHumansLocalizedInFarsi()
 | ||
|     {
 | ||
|         Carbon::setLocale('fa');
 | ||
| 
 | ||
|         $d = Carbon::now()->subSecond();
 | ||
|         $this->assertSame('1 ثانیه پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subSeconds(2);
 | ||
|         $this->assertSame('2 ثانیه پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinute();
 | ||
|         $this->assertSame('1 دقیقه پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMinutes(2);
 | ||
|         $this->assertSame('2 دقیقه پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHour();
 | ||
|         $this->assertSame('1 ساعت پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subHours(2);
 | ||
|         $this->assertSame('2 ساعت پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDay();
 | ||
|         $this->assertSame('1 روز پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subDays(2);
 | ||
|         $this->assertSame('2 روز پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeek();
 | ||
|         $this->assertSame('1 هفته پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subWeeks(2);
 | ||
|         $this->assertSame('2 هفته پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonth();
 | ||
|         $this->assertSame('1 ماه پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subMonths(2);
 | ||
|         $this->assertSame('2 ماه پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYear();
 | ||
|         $this->assertSame('1 سال پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->subYears(2);
 | ||
|         $this->assertSame('2 سال پیش', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $this->assertSame('1 ثانیه بعد', $d->diffForHumans());
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $d2 = Carbon::now();
 | ||
|         $this->assertSame('1 ثانیه پیش از', $d->diffForHumans($d2));
 | ||
|         $this->assertSame('1 ثانیه پس از', $d2->diffForHumans($d));
 | ||
| 
 | ||
|         $d = Carbon::now()->addSecond();
 | ||
|         $d2 = Carbon::now();
 | ||
|         $this->assertSame('1 ثانیه پیش از', $d->diffForHumans($d2));
 | ||
|         $this->assertSame('1 ثانیه پس از', $d2->diffForHumans($d));
 | ||
| 
 | ||
|         $this->assertSame('1 ثانیه', $d->diffForHumans($d2, true));
 | ||
|         $this->assertSame('2 ثانیه', $d2->diffForHumans($d->addSecond(), true));
 | ||
|     }
 | ||
| }
 |