-
Notifications
You must be signed in to change notification settings - Fork 86
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #19 from ukarim/add-kazakh
kazakh support
- Loading branch information
Showing
9 changed files
with
220 additions
and
4 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,6 +28,7 @@ Supported languages | |
* German | ||
* Brazilian Portuguese | ||
* Latvian | ||
* Kazakh | ||
|
||
Usage | ||
----- | ||
|
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
23 changes: 23 additions & 0 deletions
23
src/main/java/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhPluralForms.java
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,23 @@ | ||
package pl.allegro.finance.tradukisto.internal.languages.kazakh; | ||
|
||
import pl.allegro.finance.tradukisto.internal.languages.GenderType; | ||
import pl.allegro.finance.tradukisto.internal.languages.PluralForms; | ||
|
||
public class KazakhPluralForms implements PluralForms { | ||
|
||
private String form; | ||
|
||
public KazakhPluralForms(String form) { | ||
this.form = form; | ||
} | ||
|
||
@Override | ||
public String formFor(Integer value) { | ||
return form; | ||
} | ||
|
||
@Override | ||
public GenderType genderType() { | ||
return GenderType.NON_APPLICABLE; | ||
} | ||
} |
77 changes: 77 additions & 0 deletions
77
src/main/java/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhValues.java
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,77 @@ | ||
package pl.allegro.finance.tradukisto.internal.languages.kazakh; | ||
|
||
import pl.allegro.finance.tradukisto.internal.BaseValues; | ||
import pl.allegro.finance.tradukisto.internal.languages.GenderForms; | ||
import pl.allegro.finance.tradukisto.internal.languages.PluralForms; | ||
|
||
import java.util.Arrays; | ||
import java.util.List; | ||
import java.util.Map; | ||
|
||
import static pl.allegro.finance.tradukisto.internal.support.BaseNumbersBuilder.baseNumbersBuilder; | ||
|
||
public class KazakhValues implements BaseValues { | ||
|
||
@Override | ||
public Map<Integer, GenderForms> baseNumbers() { | ||
return baseNumbersBuilder() | ||
.put(0, "нөл") | ||
.put(1, "бір") | ||
.put(2, "екі") | ||
.put(3, "үш") | ||
.put(4, "төрт") | ||
.put(5, "бес") | ||
.put(6, "алты") | ||
.put(7, "жеті") | ||
.put(8, "сегіз") | ||
.put(9, "тоғыз") | ||
.put(10, "он") | ||
.put(11, "он бір") | ||
.put(12, "он екі") | ||
.put(13, "он үш") | ||
.put(14, "он төрт") | ||
.put(15, "он бес") | ||
.put(16, "он алты") | ||
.put(17, "он жеті") | ||
.put(18, "он сегіз") | ||
.put(19, "он тоғыз") | ||
.put(20, "жиырма") | ||
.put(30, "отыз") | ||
.put(40, "қырық") | ||
.put(50, "елу") | ||
.put(60, "алпыс") | ||
.put(70, "жетпіс") | ||
.put(80, "сексен") | ||
.put(90, "тоқсан") | ||
.put(100, "жүз") | ||
.put(200, "екі жүз") | ||
.put(300, "үш жүз") | ||
.put(400, "төрт жүз") | ||
.put(500, "бес жүз") | ||
.put(600, "алты жүз") | ||
.put(700, "жеті жүз") | ||
.put(800, "сегіз жүз") | ||
.put(900, "тоғыз жүз") | ||
.build(); | ||
} | ||
|
||
@Override | ||
public List<PluralForms> pluralForms() { | ||
return Arrays.asList( | ||
new KazakhPluralForms(""), | ||
new KazakhPluralForms("мың"), | ||
new KazakhPluralForms("миллион"), | ||
new KazakhPluralForms("миллиард") | ||
); | ||
} | ||
|
||
@Override | ||
public String currency() { | ||
return "KZT"; | ||
} | ||
|
||
@Override | ||
public char twoDigitsNumberSeparator() { | ||
return ' '; | ||
} | ||
} |
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
93 changes: 93 additions & 0 deletions
93
...st/groovy/pl/allegro/finance/tradukisto/internal/languages/kazakh/KazakhValuesTest.groovy
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,93 @@ | ||
package pl.allegro.finance.tradukisto.internal.languages.kazakh | ||
|
||
import spock.lang.Specification | ||
import spock.lang.Unroll | ||
|
||
import static pl.allegro.finance.tradukisto.internal.Container.kazakhContainer | ||
|
||
class KazakhValuesTest extends Specification { | ||
|
||
static converter = kazakhContainer().getNumbersConverter() | ||
|
||
@Unroll | ||
def "should convert #value to '#words' in Kazakh"() { | ||
expect: | ||
converter.asWords(value) == words | ||
|
||
where: | ||
value | words | ||
|
||
0 | "нөл" | ||
1 | "бір" | ||
2 | "екі" | ||
3 | "үш" | ||
4 | "төрт" | ||
5 | "бес" | ||
6 | "алты" | ||
7 | "жеті" | ||
8 | "сегіз" | ||
9 | "тоғыз" | ||
10 | "он" | ||
|
||
11 | "он бір" | ||
12 | "он екі" | ||
13 | "он үш" | ||
14 | "он төрт" | ||
15 | "он бес" | ||
16 | "он алты" | ||
17 | "он жеті" | ||
18 | "он сегіз" | ||
19 | "он тоғыз" | ||
|
||
20 | "жиырма" | ||
30 | "отыз" | ||
40 | "қырық" | ||
50 | "елу" | ||
60 | "алпыс" | ||
70 | "жетпіс" | ||
80 | "сексен" | ||
90 | "тоқсан" | ||
100 | "жүз" | ||
|
||
200 | "екі жүз" | ||
300 | "үш жүз" | ||
400 | "төрт жүз" | ||
500 | "бес жүз" | ||
600 | "алты жүз" | ||
700 | "жеті жүз" | ||
800 | "сегіз жүз" | ||
900 | "тоғыз жүз" | ||
1000 | "бір мың" | ||
|
||
1_000_000 | "бір миллион" | ||
1_000_000_000 | "бір миллиард" | ||
|
||
21 | "жиырма бір" | ||
34 | "отыз төрт" | ||
55 | "елу бес" | ||
89 | "сексен тоғыз" | ||
144 | "жүз қырық төрт" | ||
233 | "екі жүз отыз үш" | ||
377 | "үш жүз жетпіс жеті" | ||
610 | "алты жүз он" | ||
987 | "тоғыз жүз сексен жеті" | ||
1_597 | "бір мың бес жүз тоқсан жеті" | ||
2_584 | "екі мың бес жүз сексен төрт" | ||
4_181 | "төрт мың жүз сексен бір" | ||
6_765 | "алты мың жеті жүз алпыс бес" | ||
10_946 | "он мың тоғыз жүз қырық алты" | ||
17_711 | "он жеті мың жеті жүз он бір" | ||
28_657 | "жиырма сегіз мың алты жүз елу жеті" | ||
46_368 | "қырық алты мың үш жүз алпыс сегіз" | ||
75_025 | "жетпіс бес мың жиырма бес" | ||
121_393 | "жүз жиырма бір мың үш жүз тоқсан үш" | ||
196_418 | "жүз тоқсан алты мың төрт жүз он сегіз" | ||
317_811 | "үш жүз он жеті мың сегіз жүз он бір" | ||
514_229 | "бес жүз он төрт мың екі жүз жиырма тоғыз" | ||
832_040 | "сегіз жүз отыз екі мың қырық" | ||
1_346_269 | "бір миллион үш жүз қырық алты мың екі жүз алпыс тоғыз" | ||
2_178_309 | "екі миллион жүз жетпіс сегіз мың үш жүз тоғыз" | ||
|
||
1_836_311_903 | "бір миллиард сегіз жүз отыз алты миллион үш жүз он бір мың тоғыз жүз үш" | ||
} | ||
} |