NlTest.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of the Carbon package.
  5. *
  6. * (c) Brian Nesbitt <brian@nesbot.com>
  7. *
  8. * For the full copyright and license information, please view the LICENSE
  9. * file that was distributed with this source code.
  10. */
  11. namespace Tests\Localization;
  12. use Carbon\Carbon;
  13. use Carbon\CarbonInterval;
  14. use Carbon\CarbonPeriod;
  15. /**
  16. * @group localization
  17. */
  18. class NlTest extends LocalizationTestCase
  19. {
  20. public const LOCALE = 'nl'; // Dutch
  21. public const CASES = [
  22. // Carbon::parse('2018-01-04 00:00:00')->addDays(1)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  23. 'morgen om 00:00',
  24. // Carbon::parse('2018-01-04 00:00:00')->addDays(2)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  25. 'zaterdag om 00:00',
  26. // Carbon::parse('2018-01-04 00:00:00')->addDays(3)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  27. 'zondag om 00:00',
  28. // Carbon::parse('2018-01-04 00:00:00')->addDays(4)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  29. 'maandag om 00:00',
  30. // Carbon::parse('2018-01-04 00:00:00')->addDays(5)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  31. 'dinsdag om 00:00',
  32. // Carbon::parse('2018-01-04 00:00:00')->addDays(6)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  33. 'woensdag om 00:00',
  34. // Carbon::parse('2018-01-05 00:00:00')->addDays(6)->calendar(Carbon::parse('2018-01-05 00:00:00'))
  35. 'donderdag om 00:00',
  36. // Carbon::parse('2018-01-06 00:00:00')->addDays(6)->calendar(Carbon::parse('2018-01-06 00:00:00'))
  37. 'vrijdag om 00:00',
  38. // Carbon::parse('2018-01-07 00:00:00')->addDays(2)->calendar(Carbon::parse('2018-01-07 00:00:00'))
  39. 'dinsdag om 00:00',
  40. // Carbon::parse('2018-01-07 00:00:00')->addDays(3)->calendar(Carbon::parse('2018-01-07 00:00:00'))
  41. 'woensdag om 00:00',
  42. // Carbon::parse('2018-01-07 00:00:00')->addDays(4)->calendar(Carbon::parse('2018-01-07 00:00:00'))
  43. 'donderdag om 00:00',
  44. // Carbon::parse('2018-01-07 00:00:00')->addDays(5)->calendar(Carbon::parse('2018-01-07 00:00:00'))
  45. 'vrijdag om 00:00',
  46. // Carbon::parse('2018-01-07 00:00:00')->addDays(6)->calendar(Carbon::parse('2018-01-07 00:00:00'))
  47. 'zaterdag om 00:00',
  48. // Carbon::now()->subDays(2)->calendar()
  49. 'afgelopen zondag om 20:49',
  50. // Carbon::parse('2018-01-04 00:00:00')->subHours(2)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  51. 'gisteren om 22:00',
  52. // Carbon::parse('2018-01-04 12:00:00')->subHours(2)->calendar(Carbon::parse('2018-01-04 12:00:00'))
  53. 'vandaag om 10:00',
  54. // Carbon::parse('2018-01-04 00:00:00')->addHours(2)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  55. 'vandaag om 02:00',
  56. // Carbon::parse('2018-01-04 23:00:00')->addHours(2)->calendar(Carbon::parse('2018-01-04 23:00:00'))
  57. 'morgen om 01:00',
  58. // Carbon::parse('2018-01-07 00:00:00')->addDays(2)->calendar(Carbon::parse('2018-01-07 00:00:00'))
  59. 'dinsdag om 00:00',
  60. // Carbon::parse('2018-01-08 00:00:00')->subDay()->calendar(Carbon::parse('2018-01-08 00:00:00'))
  61. 'gisteren om 00:00',
  62. // Carbon::parse('2018-01-04 00:00:00')->subDays(1)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  63. 'gisteren om 00:00',
  64. // Carbon::parse('2018-01-04 00:00:00')->subDays(2)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  65. 'afgelopen dinsdag om 00:00',
  66. // Carbon::parse('2018-01-04 00:00:00')->subDays(3)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  67. 'afgelopen maandag om 00:00',
  68. // Carbon::parse('2018-01-04 00:00:00')->subDays(4)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  69. 'afgelopen zondag om 00:00',
  70. // Carbon::parse('2018-01-04 00:00:00')->subDays(5)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  71. 'afgelopen zaterdag om 00:00',
  72. // Carbon::parse('2018-01-04 00:00:00')->subDays(6)->calendar(Carbon::parse('2018-01-04 00:00:00'))
  73. 'afgelopen vrijdag om 00:00',
  74. // Carbon::parse('2018-01-03 00:00:00')->subDays(6)->calendar(Carbon::parse('2018-01-03 00:00:00'))
  75. 'afgelopen donderdag om 00:00',
  76. // Carbon::parse('2018-01-02 00:00:00')->subDays(6)->calendar(Carbon::parse('2018-01-02 00:00:00'))
  77. 'afgelopen woensdag om 00:00',
  78. // Carbon::parse('2018-01-07 00:00:00')->subDays(2)->calendar(Carbon::parse('2018-01-07 00:00:00'))
  79. 'afgelopen vrijdag om 00:00',
  80. // Carbon::parse('2018-01-01 00:00:00')->isoFormat('Qo Mo Do Wo wo')
  81. '1ste 1ste 1ste 1ste 1ste',
  82. // Carbon::parse('2018-01-02 00:00:00')->isoFormat('Do wo')
  83. '2de 1ste',
  84. // Carbon::parse('2018-01-03 00:00:00')->isoFormat('Do wo')
  85. '3de 1ste',
  86. // Carbon::parse('2018-01-04 00:00:00')->isoFormat('Do wo')
  87. '4de 1ste',
  88. // Carbon::parse('2018-01-05 00:00:00')->isoFormat('Do wo')
  89. '5de 1ste',
  90. // Carbon::parse('2018-01-06 00:00:00')->isoFormat('Do wo')
  91. '6de 1ste',
  92. // Carbon::parse('2018-01-07 00:00:00')->isoFormat('Do wo')
  93. '7de 1ste',
  94. // Carbon::parse('2018-01-11 00:00:00')->isoFormat('Do wo')
  95. '11de 2de',
  96. // Carbon::parse('2018-02-09 00:00:00')->isoFormat('DDDo')
  97. '40ste',
  98. // Carbon::parse('2018-02-10 00:00:00')->isoFormat('DDDo')
  99. '41ste',
  100. // Carbon::parse('2018-04-10 00:00:00')->isoFormat('DDDo')
  101. '100ste',
  102. // Carbon::parse('2018-02-10 00:00:00', 'Europe/Paris')->isoFormat('h:mm a z')
  103. '12:00 \'s ochtends CET',
  104. // Carbon::parse('2018-02-10 00:00:00')->isoFormat('h:mm A, h:mm a')
  105. '12:00 \'s ochtends, 12:00 \'s ochtends',
  106. // Carbon::parse('2018-02-10 01:30:00')->isoFormat('h:mm A, h:mm a')
  107. '1:30 \'s ochtends, 1:30 \'s ochtends',
  108. // Carbon::parse('2018-02-10 02:00:00')->isoFormat('h:mm A, h:mm a')
  109. '2:00 \'s ochtends, 2:00 \'s ochtends',
  110. // Carbon::parse('2018-02-10 06:00:00')->isoFormat('h:mm A, h:mm a')
  111. '6:00 \'s ochtends, 6:00 \'s ochtends',
  112. // Carbon::parse('2018-02-10 10:00:00')->isoFormat('h:mm A, h:mm a')
  113. '10:00 \'s ochtends, 10:00 \'s ochtends',
  114. // Carbon::parse('2018-02-10 12:00:00')->isoFormat('h:mm A, h:mm a')
  115. '12:00 \'s middags, 12:00 \'s middags',
  116. // Carbon::parse('2018-02-10 17:00:00')->isoFormat('h:mm A, h:mm a')
  117. '5:00 \'s middags, 5:00 \'s middags',
  118. // Carbon::parse('2018-02-10 21:30:00')->isoFormat('h:mm A, h:mm a')
  119. '9:30 \'s middags, 9:30 \'s middags',
  120. // Carbon::parse('2018-02-10 23:00:00')->isoFormat('h:mm A, h:mm a')
  121. '11:00 \'s middags, 11:00 \'s middags',
  122. // Carbon::parse('2018-01-01 00:00:00')->ordinal('hour')
  123. '0de',
  124. // Carbon::now()->subSeconds(1)->diffForHumans()
  125. '1 seconde geleden',
  126. // Carbon::now()->subSeconds(1)->diffForHumans(null, false, true)
  127. '1s geleden',
  128. // Carbon::now()->subSeconds(2)->diffForHumans()
  129. '2 seconden geleden',
  130. // Carbon::now()->subSeconds(2)->diffForHumans(null, false, true)
  131. '2s geleden',
  132. // Carbon::now()->subMinutes(1)->diffForHumans()
  133. '1 minuut geleden',
  134. // Carbon::now()->subMinutes(1)->diffForHumans(null, false, true)
  135. '1min geleden',
  136. // Carbon::now()->subMinutes(2)->diffForHumans()
  137. '2 minuten geleden',
  138. // Carbon::now()->subMinutes(2)->diffForHumans(null, false, true)
  139. '2min geleden',
  140. // Carbon::now()->subHours(1)->diffForHumans()
  141. '1 uur geleden',
  142. // Carbon::now()->subHours(1)->diffForHumans(null, false, true)
  143. '1u geleden',
  144. // Carbon::now()->subHours(2)->diffForHumans()
  145. '2 uur geleden',
  146. // Carbon::now()->subHours(2)->diffForHumans(null, false, true)
  147. '2u geleden',
  148. // Carbon::now()->subDays(1)->diffForHumans()
  149. '1 dag geleden',
  150. // Carbon::now()->subDays(1)->diffForHumans(null, false, true)
  151. '1d geleden',
  152. // Carbon::now()->subDays(2)->diffForHumans()
  153. '2 dagen geleden',
  154. // Carbon::now()->subDays(2)->diffForHumans(null, false, true)
  155. '2d geleden',
  156. // Carbon::now()->subWeeks(1)->diffForHumans()
  157. '1 week geleden',
  158. // Carbon::now()->subWeeks(1)->diffForHumans(null, false, true)
  159. '1w geleden',
  160. // Carbon::now()->subWeeks(2)->diffForHumans()
  161. '2 weken geleden',
  162. // Carbon::now()->subWeeks(2)->diffForHumans(null, false, true)
  163. '2w geleden',
  164. // Carbon::now()->subMonths(1)->diffForHumans()
  165. '1 maand geleden',
  166. // Carbon::now()->subMonths(1)->diffForHumans(null, false, true)
  167. '1mnd geleden',
  168. // Carbon::now()->subMonths(2)->diffForHumans()
  169. '2 maanden geleden',
  170. // Carbon::now()->subMonths(2)->diffForHumans(null, false, true)
  171. '2mnd geleden',
  172. // Carbon::now()->subYears(1)->diffForHumans()
  173. '1 jaar geleden',
  174. // Carbon::now()->subYears(1)->diffForHumans(null, false, true)
  175. '1j geleden',
  176. // Carbon::now()->subYears(2)->diffForHumans()
  177. '2 jaar geleden',
  178. // Carbon::now()->subYears(2)->diffForHumans(null, false, true)
  179. '2j geleden',
  180. // Carbon::now()->addSecond()->diffForHumans()
  181. 'over 1 seconde',
  182. // Carbon::now()->addSecond()->diffForHumans(null, false, true)
  183. 'over 1s',
  184. // Carbon::now()->addSecond()->diffForHumans(Carbon::now())
  185. '1 seconde later',
  186. // Carbon::now()->addSecond()->diffForHumans(Carbon::now(), false, true)
  187. '1s later',
  188. // Carbon::now()->diffForHumans(Carbon::now()->addSecond())
  189. '1 seconde eerder',
  190. // Carbon::now()->diffForHumans(Carbon::now()->addSecond(), false, true)
  191. '1s eerder',
  192. // Carbon::now()->addSecond()->diffForHumans(Carbon::now(), true)
  193. '1 seconde',
  194. // Carbon::now()->addSecond()->diffForHumans(Carbon::now(), true, true)
  195. '1s',
  196. // Carbon::now()->diffForHumans(Carbon::now()->addSecond()->addSecond(), true)
  197. '2 seconden',
  198. // Carbon::now()->diffForHumans(Carbon::now()->addSecond()->addSecond(), true, true)
  199. '2s',
  200. // Carbon::now()->addSecond()->diffForHumans(null, false, true, 1)
  201. 'over 1s',
  202. // Carbon::now()->addMinute()->addSecond()->diffForHumans(null, true, false, 2)
  203. '1 minuut 1 seconde',
  204. // Carbon::now()->addYears(2)->addMonths(3)->addDay()->addSecond()->diffForHumans(null, true, true, 4)
  205. '2j 3mnd 1d 1s',
  206. // Carbon::now()->addYears(3)->diffForHumans(null, null, false, 4)
  207. 'over 3 jaar',
  208. // Carbon::now()->subMonths(5)->diffForHumans(null, null, true, 4)
  209. '5mnd geleden',
  210. // Carbon::now()->subYears(2)->subMonths(3)->subDay()->subSecond()->diffForHumans(null, null, true, 4)
  211. '2j 3mnd 1d 1s geleden',
  212. // Carbon::now()->addWeek()->addHours(10)->diffForHumans(null, true, false, 2)
  213. '1 week 10 uur',
  214. // Carbon::now()->addWeek()->addDays(6)->diffForHumans(null, true, false, 2)
  215. '1 week 6 dagen',
  216. // Carbon::now()->addWeek()->addDays(6)->diffForHumans(null, true, false, 2)
  217. '1 week 6 dagen',
  218. // Carbon::now()->addWeek()->addDays(6)->diffForHumans(["join" => true, "parts" => 2])
  219. 'over 1 week en 6 dagen',
  220. // Carbon::now()->addWeeks(2)->addHour()->diffForHumans(null, true, false, 2)
  221. '2 weken 1 uur',
  222. // Carbon::now()->addHour()->diffForHumans(["aUnit" => true])
  223. 'over een uur',
  224. // CarbonInterval::days(2)->forHumans()
  225. '2 dagen',
  226. // CarbonInterval::create('P1DT3H')->forHumans(true)
  227. '1d 3u',
  228. ];
  229. public function testPeriod()
  230. {
  231. $this->assertSame('4 keer elke week van 2012-07-01 12:00:00', (string) (CarbonPeriod::create('R4/2012-07-01T12:00:00/P7D')));
  232. $this->assertSame('4 keer elk jaar van 2012-07-01 12:00:00', (string) (CarbonPeriod::create('R4/2012-07-01T12:00:00/P1Y')));
  233. $this->assertSame('4 keer elke 2 jaar van 2012-07-01 12:00:00', (string) (CarbonPeriod::create('R4/2012-07-01T12:00:00/P2Y')));
  234. $this->assertSame('4 keer elk jaar en 6 maanden van 2012-07-01 12:00:00', (string) (CarbonPeriod::create('R4/2012-07-01T12:00:00/P1Y6M')));
  235. $this->assertSame('Elke dag en 5 uur van 2015-09-30 12:50:00 tot 2015-10-03 19:00:00', (string) (CarbonPeriod::create(
  236. Carbon::parse('2015-09-30 12:50'),
  237. CarbonInterval::day()->hours(5),
  238. Carbon::parse('2015-10-03 19:00')
  239. )));
  240. $this->assertSame('Elk uur en 30 minuten van 2015-09-30 12:50:00 tot 2015-10-03 19:00:00', (string) (CarbonPeriod::create(
  241. Carbon::parse('2015-09-30 12:50'),
  242. CarbonInterval::hour()->minutes(30),
  243. Carbon::parse('2015-10-03 19:00')
  244. )));
  245. $this->assertSame('Elke 4 uur en 30 minuten van 2015-09-30 12:50:00 tot 2015-10-03 19:00:00', (string) (CarbonPeriod::create(
  246. Carbon::parse('2015-09-30 12:50'),
  247. CarbonInterval::hours(4)->minutes(30),
  248. Carbon::parse('2015-10-03 19:00')
  249. )));
  250. }
  251. }