1- # i18n Inflector
1+ # i18n_inflector
22
33[ ![ Documentation] ( https://docs.rs/i18n_inflector/badge.svg )] ( https://docs.rs/i18n_inflector )
44[ ![ Code Coverage] ( https://codecov.io/gh/theseus-rs/i18n-inflector/branch/main/graph/badge.svg )] ( https://codecov.io/gh/theseus-rs/i18n-inflector )
@@ -10,67 +10,154 @@ i18n_inflector is a Rust crate that provides a comprehensive set of inflection r
1010you to easily convert words between different forms (e.g., singular to plural, plural to singular) in an
1111internationalized context.
1212
13- ## Getting Started
14-
15- Add ` i18n_inflector ` to your ` Cargo.toml ` :
16-
17- ``` toml
18- [dependencies ]
19- i18n_inflector = " 0.1"
20- ```
21-
22- ### Usage
13+ ## Example
2314
2415``` rust
2516use i18n_inflector :: {singularize, pluralize};
2617
27- // English
18+ // Singularize
2819assert_eq! (singularize (" en" , " users" ). unwrap (), " user" );
29- assert_eq! (singularize (" en " , " categories " ). unwrap (), " category " );
20+ assert_eq! (singularize (" es " , " ciudades " ). unwrap (), " ciudad " );
3021
22+ // Pluralize
3123let plurals = pluralize (" en" , " user" ). unwrap ();
3224assert! (plurals . contains (& " users" . to_string ()));
3325
34- // Spanish
35- assert_eq! (singularize (" es" , " ciudades" ). unwrap (), " ciudad" );
36-
37- // French
38- assert_eq! (singularize (" fr" , " journaux" ). unwrap (), " journal" );
39-
40- // Japanese (no morphological plural)
41- assert_eq! (singularize (" ja" , " user" ). unwrap (), " user" );
42-
4326// Unsupported locale returns an error
4427assert! (singularize (" xx" , " users" ). is_err ());
4528```
4629
47- The first argument is always an ISO 639 two-letter language code. If the locale
48- is not recognized, English rules are used as a fallback.
49-
50- ### Supported Languages
51-
52- | Code | Language | Code | Language | Code | Language |
53- | ------| -----------| ------| -----------| ------| -----------|
54- | ar | Arabic | ga | Irish | mt | Maltese |
55- | be | Belarusian| he | Hebrew | nl | Dutch |
56- | bg | Bulgarian | hi | Hindi | no | Norwegian |
57- | bn | Bengali | hr | Croatian | pl | Polish |
58- | cs | Czech | hu | Hungarian | pt | Portuguese|
59- | da | Danish | is | Icelandic | ro | Romanian |
60- | de | German | it | Italian | ru | Russian |
61- | el | Greek | ja | Japanese | sk | Slovak |
62- | en | English | jv | Javanese | sl | Slovenian |
63- | es | Spanish | ka | Georgian | sq | Albanian |
64- | et | Estonian | ko | Korean | sr | Serbian |
65- | fi | Finnish | lt | Lithuanian| sv | Swedish |
66- | fr | French | lv | Latvian | th | Thai |
67- | tr | Turkish | uk | Ukrainian | vi | Vietnamese|
68- | mk | Macedonian| ms | Malay | yi | Yiddish |
69- | zh | Chinese | | | | |
70-
71- See the [ ` examples/basic_usage ` ] ( examples/basic_usage ) directory for a
72- runnable example.
73-
30+ ## Supported Languages
31+
32+ The following ISO 639-1 language codes are supported:
33+
34+ | Code | Language |
35+ | ------| -------------------|
36+ | af | Afrikaans |
37+ | am | Amharic |
38+ | an | Aragonese |
39+ | ar | Arabic |
40+ | as | Assamese |
41+ | az | Azerbaijani |
42+ | be | Belarusian |
43+ | bg | Bulgarian |
44+ | bn | Bengali |
45+ | bo | Tibetan |
46+ | br | Breton |
47+ | bs | Bosnian |
48+ | ca | Catalan |
49+ | co | Corsican |
50+ | cs | Czech |
51+ | cy | Welsh |
52+ | da | Danish |
53+ | de | German |
54+ | el | Greek |
55+ | en | English |
56+ | eo | Esperanto |
57+ | es | Spanish |
58+ | et | Estonian |
59+ | eu | Basque |
60+ | fa | Persian |
61+ | fi | Finnish |
62+ | fo | Faroese |
63+ | fr | French |
64+ | fy | Western Frisian |
65+ | ga | Irish |
66+ | gd | Scottish Gaelic |
67+ | gl | Galician |
68+ | gu | Gujarati |
69+ | gv | Manx |
70+ | ha | Hausa |
71+ | he | Hebrew |
72+ | hi | Hindi |
73+ | hr | Croatian |
74+ | ht | Haitian Creole |
75+ | hu | Hungarian |
76+ | hy | Armenian |
77+ | id | Indonesian |
78+ | ig | Igbo |
79+ | is | Icelandic |
80+ | it | Italian |
81+ | ja | Japanese |
82+ | jv | Javanese |
83+ | ka | Georgian |
84+ | kk | Kazakh |
85+ | km | Khmer |
86+ | kn | Kannada |
87+ | ko | Korean |
88+ | ku | Kurdish |
89+ | kw | Cornish |
90+ | ky | Kyrgyz |
91+ | la | Latin |
92+ | lb | Luxembourgish |
93+ | lo | Lao |
94+ | lt | Lithuanian |
95+ | lv | Latvian |
96+ | mg | Malagasy |
97+ | mi | Māori |
98+ | mk | Macedonian |
99+ | ml | Malayalam |
100+ | mn | Mongolian |
101+ | mr | Marathi |
102+ | ms | Malay |
103+ | mt | Maltese |
104+ | my | Burmese |
105+ | nb | Norwegian Bokmål |
106+ | nd | Northern Ndebele |
107+ | ne | Nepali |
108+ | nl | Dutch |
109+ | nn | Norwegian Nynorsk |
110+ | no | Norwegian |
111+ | nr | Southern Ndebele |
112+ | oc | Occitan |
113+ | or | Odia |
114+ | pa | Punjabi |
115+ | pl | Polish |
116+ | ps | Pashto |
117+ | pt | Portuguese |
118+ | qu | Quechua |
119+ | rm | Romansh |
120+ | ro | Romanian |
121+ | ru | Russian |
122+ | rw | Kinyarwanda |
123+ | sc | Sardinian |
124+ | sd | Sindhi |
125+ | si | Sinhala |
126+ | sk | Slovak |
127+ | sl | Slovenian |
128+ | sm | Samoan |
129+ | sn | Shona |
130+ | so | Somali |
131+ | sq | Albanian |
132+ | sr | Serbian |
133+ | ss | Swati |
134+ | st | Southern Sotho |
135+ | su | Sundanese |
136+ | sv | Swedish |
137+ | sw | Swahili |
138+ | ta | Tamil |
139+ | te | Telugu |
140+ | tg | Tajik |
141+ | th | Thai |
142+ | ti | Tigrinya |
143+ | tk | Turkmen |
144+ | tl | Tagalog |
145+ | tn | Tswana |
146+ | tr | Turkish |
147+ | ts | Tsonga |
148+ | tt | Tatar |
149+ | ug | Uyghur |
150+ | uk | Ukrainian |
151+ | ur | Urdu |
152+ | uz | Uzbek |
153+ | ve | Venda |
154+ | vi | Vietnamese |
155+ | wo | Wolof |
156+ | xh | Xhosa |
157+ | yi | Yiddish |
158+ | yo | Yoruba |
159+ | zh | Chinese |
160+ | zu | Zulu |
74161
75162## License
76163
0 commit comments