-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: fix Serbian locale grammar (sr, sr-cyrl) (#1108)
- Loading branch information
1 parent
be505c2
commit cc87eff
Showing
4 changed files
with
211 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import MockDate from 'mockdate' | ||
import dayjs from '../../src' | ||
import relativeTime from '../../src/plugin/relativeTime' | ||
import '../../src/locale/sr-cyrl' | ||
|
||
dayjs.extend(relativeTime) | ||
|
||
beforeEach(() => { | ||
MockDate.set(new Date()) | ||
}) | ||
|
||
afterEach(() => { | ||
MockDate.reset() | ||
}) | ||
|
||
it('Serbian cyrillic locale relative time in past and future', () => { | ||
const cases = [ | ||
[1, 's', 'за неколико секунди', 'неколико секунди'], | ||
[-1, 's', 'пре неколико секунди', 'неколико секунди'], | ||
[4, 's', 'за неколико секунди', 'неколико секунди'], | ||
[1, 'm', 'за један минут', 'један минут'], | ||
[-1, 'm', 'пре једног минута', 'један минут'], | ||
[4, 'm', 'за 4 минута', '4 минута'], | ||
[5, 'm', 'за 5 минута', '5 минута'], | ||
[21, 'm', 'за 21 минут', '21 минут'], | ||
[1, 'h', 'за један сат', 'један сат'], | ||
[-1, 'h', 'пре једног сата', 'један сат'], | ||
[4, 'h', 'за 4 сата', '4 сата'], | ||
[5, 'h', 'за 5 сати', '5 сати'], | ||
[21, 'h', 'за 21 сат', '21 сат'], | ||
[1, 'd', 'за један дан', 'један дан'], | ||
[-1, 'd', 'пре једног дана', 'један дан'], | ||
[4, 'd', 'за 4 дана', '4 дана'], | ||
[5, 'd', 'за 5 дана', '5 дана'], | ||
[21, 'd', 'за 21 дан', '21 дан'], | ||
[1, 'M', 'за један месец', 'један месец'], | ||
[-1, 'M', 'пре једног месеца', 'један месец'], | ||
[4, 'M', 'за 4 месеца', '4 месеца'], | ||
[5, 'M', 'за 5 месеци', '5 месеци'], | ||
[10, 'M', 'за 10 месеци', '10 месеци'], | ||
[1, 'y', 'за једну годину', 'једна година'], | ||
[-1, 'y', 'пре једне године', 'једна година'], | ||
[4, 'y', 'за 4 године', '4 године'], | ||
[5, 'y', 'за 5 година', '5 година'], | ||
[21, 'y', 'за 21 годину', '21 година'] | ||
] | ||
|
||
cases.forEach((c) => { | ||
expect(dayjs().add(c[0], c[1]).locale('sr-cyrl').fromNow()).toBe(c[2]) | ||
expect(dayjs().add(c[0], c[1]).locale('sr-cyrl').fromNow(true)).toBe(c[3]) | ||
// TODO: compare to momentjs once logic and grammar are fixed there | ||
}) | ||
}) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
import MockDate from 'mockdate' | ||
import dayjs from '../../src' | ||
import relativeTime from '../../src/plugin/relativeTime' | ||
import '../../src/locale/sr' | ||
|
||
dayjs.extend(relativeTime) | ||
|
||
beforeEach(() => { | ||
MockDate.set(new Date()) | ||
}) | ||
|
||
afterEach(() => { | ||
MockDate.reset() | ||
}) | ||
|
||
it('Serbian locale relative time in past and future', () => { | ||
const cases = [ | ||
[1, 's', 'za nekoliko sekundi', 'nekoliko sekundi'], | ||
[-1, 's', 'pre nekoliko sekundi', 'nekoliko sekundi'], | ||
[4, 's', 'za nekoliko sekundi', 'nekoliko sekundi'], | ||
[1, 'm', 'za jedan minut', 'jedan minut'], | ||
[-1, 'm', 'pre jednog minuta', 'jedan minut'], | ||
[4, 'm', 'za 4 minuta', '4 minuta'], | ||
[5, 'm', 'za 5 minuta', '5 minuta'], | ||
[21, 'm', 'za 21 minut', '21 minut'], | ||
[1, 'h', 'za jedan sat', 'jedan sat'], | ||
[-1, 'h', 'pre jednog sata', 'jedan sat'], | ||
[4, 'h', 'za 4 sata', '4 sata'], | ||
[5, 'h', 'za 5 sati', '5 sati'], | ||
[21, 'h', 'za 21 sat', '21 sat'], | ||
[1, 'd', 'za jedan dan', 'jedan dan'], | ||
[-1, 'd', 'pre jednog dana', 'jedan dan'], | ||
[4, 'd', 'za 4 dana', '4 dana'], | ||
[5, 'd', 'za 5 dana', '5 dana'], | ||
[21, 'd', 'za 21 dan', '21 dan'], | ||
[1, 'M', 'za jedan mesec', 'jedan mesec'], | ||
[-1, 'M', 'pre jednog meseca', 'jedan mesec'], | ||
[4, 'M', 'za 4 meseca', '4 meseca'], | ||
[5, 'M', 'za 5 meseci', '5 meseci'], | ||
[10, 'M', 'za 10 meseci', '10 meseci'], | ||
[1, 'y', 'za jednu godinu', 'jedna godina'], | ||
[-1, 'y', 'pre jedne godine', 'jedna godina'], | ||
[4, 'y', 'za 4 godine', '4 godine'], | ||
[5, 'y', 'za 5 godina', '5 godina'], | ||
[21, 'y', 'za 21 godinu', '21 godina'] | ||
] | ||
|
||
cases.forEach((c) => { | ||
// With suffix | ||
expect(dayjs().add(c[0], c[1]).locale('sr').fromNow()).toBe(c[2]) | ||
// Without suffix | ||
expect(dayjs().add(c[0], c[1]).locale('sr').fromNow(true)).toBe(c[3]) | ||
// TODO: compare to momentjs once logic and grammar are fixed there | ||
}) | ||
}) |