* * 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)); } }