mimic-data 1.2.1 โ†’ 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,228 +2,340 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/mimic-data.svg)](https://www.npmjs.com/package/mimic-data)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/mimic-data.svg)](https://www.npmjs.com/package/mimic-data)
5
- [![License](https://img.shields.io/npm/l/m)](https://opensourceimic-data.svg.org/licenses/MIT)
5
+ [![License](https://img.shields.io/npm/l/mimic-data.svg)](https://opensource.org/licenses/MIT)
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.3+-3178c6.svg)](https://www.typescriptlang.org/)
7
7
 
8
- Library TypeScript ringan tanpa dependency eksternal untuk menghasilkan data dummy yang realistis dengan dukungan lokalisasi yang kuat.
8
+ A lightweight TypeScript library with zero runtime dependencies for generating realistic, locale-aware dummy data. Inspired by Faker.js, but smaller and focused on accurate localization.
9
9
 
10
- ## โœจ Fitur
10
+ ## Features
11
11
 
12
- - ๐ŸŒ **101 Locale** - Coverage global yang sangat luas
13
- - ๐Ÿชถ **Ringan** - Zero runtime dependencies (~15KB minified)
14
- - ๐Ÿ“ฆ **Tree-shakeable** - Hanya bundle yang Anda gunakan
15
- - ๐Ÿ”ง **TypeScript Native** - Full type safety
16
- - ๐ŸŽฏ **Mudah Digunakan** - API yang sederhana dan intuitif
12
+ - ๐ŸŒ **212 Locales** covering 150+ countries and territories across 6 continents
13
+ - ๐Ÿชถ **Lightweight** โ€” zero runtime dependencies (~650KB bundled with all locales)
14
+ - ๐Ÿ“ฆ **Tree-shakeable** โ€” import only what you need
15
+ - ๐Ÿ”ง **TypeScript Native** โ€” full type safety with generics
16
+ - ๐ŸŽฏ **Locale-First** โ€” each locale has native-language data, proper address formats, and region-specific phone/zip patterns
17
17
 
18
- ## ๐Ÿ“ฆ Instalasi
18
+ ## Installation
19
19
 
20
20
  ```bash
21
21
  npm install mimic-data
22
- # atau
22
+ # or
23
23
  yarn add mimic-data
24
- # atau
24
+ # or
25
25
  pnpm add mimic-data
26
26
  ```
27
27
 
28
- ## ๐Ÿš€ Quick Start
28
+ ## Quick Start
29
29
 
30
30
  ```typescript
31
31
  import { createMimic } from 'mimic-data';
32
32
 
33
- // Buat instance dengan locale tertentu
34
33
  const mimic = createMimic('id_ID');
35
34
 
36
- // Generate data
37
35
  console.log(mimic.identity.fullName());
38
- // Output: "Budi Santoso"
36
+ // "Budi Santoso"
39
37
 
40
38
  console.log(mimic.location.fullAddress());
41
- // Output: "Jl. Merdeka No. 123, RT 5/RW 3, Jakarta, DKI Jakarta 12345"
39
+ // "Jl. Merdeka No. 123, RT 5/RW 3, Jakarta, DKI Jakarta 12345"
42
40
  ```
43
41
 
44
- ## ๐Ÿ“š API Overview
42
+ ## API Overview
45
43
 
46
44
  ### `createMimic(locale?: string): Mimic`
47
- Buat instance Mimic dengan locale tertentu. Default: `en_US`
45
+
46
+ Creates a Mimic instance for the specified locale. Defaults to `en_US` when omitted.
48
47
 
49
48
  ```typescript
50
49
  const mimic = createMimic('ja_JP');
51
- const mimicDefault = createMimic(); // menggunakan en_US
50
+ const mimicDefault = createMimic(); // uses en_US
52
51
  ```
53
52
 
54
53
  ### Module Exports
55
54
 
56
- | Export | Deskripsi |
57
- |--------|-----------|
58
- | `createMimic` | Factory function untuk membuat instance Mimic |
59
- | `Mimic` | Class utama untuk generate data |
60
- | `locales` | Object semua locale definitions |
61
- | `Random` | Utility untuk random generation |
62
- | `localeRegistry` | Registry untuk manage locales |
63
- | `getAvailableLocales()` | Get semua locale codes utama |
64
- | `getAllLocaleCodes()` | Get semua locale codes + aliases |
55
+ | Export | Description |
56
+ | ----------------------- | -------------------------------------- |
57
+ | `createMimic` | Factory function to create Mimic |
58
+ | `Mimic` | Main data generation class |
59
+ | `locales` | Object with all locale definitions |
60
+ | `Random` | Random number utility class |
61
+ | `localeRegistry` | Locale registry for advanced usage |
62
+ | `getAvailableLocales()` | Returns canonical locale codes |
63
+ | `getAllLocaleCodes()` | Returns locale codes + aliases |
65
64
 
66
65
  ### Mimic Methods
67
66
 
68
- | Module | Method | Deskripsi |
69
- |--------|--------|-----------|
70
- | `identity` | `firstName(gender?)` | Nama depan (male/female/random) |
71
- | | `lastName()` | Nama belakang |
72
- | | `fullName(gender?)` | Nama lengkap (format budaya) |
73
- | | `gender()` | Gender (male/female) |
74
- | | `age(range?)` | Umur (default 18-65) |
75
- | | `dateOfBirth(range?)` | Tanggal lahir |
76
- | | `person(gender?, range?)` | Semua data person |
77
- | | `persons(count, gender?, range?)` | Generate multiple persons |
78
- | | `uniquePersons(count, gender?, range?)` | Generate unique persons |
79
- | `location` | `street()` | Nama jalan |
80
- | | `city()` | Kota |
81
- | | `state()` | Provinsi/State |
82
- | | `zipCode()` | Kode pos |
83
- | | `fullAddress()` | Alamat lengkap |
84
- | | `address()` | Semua data address |
85
- | | `addresses(count)` | Generate multiple addresses |
86
- | | `uniqueAddresses(count)` | Generate unique addresses |
87
- | `physical` | `height()` | Tinggi badan |
88
- | | `weight()` | Berat badan |
89
- | | `data()` | Semua data fisik |
90
- | | `datas(count)` | Generate multiple physical data |
91
- | `work` | `jobTitle()` | Judul pekerjaan |
92
- | | `department()` | Departemen |
93
- | | `data()` | Semua data pekerjaan |
94
- | | `datas(count)` | Generate multiple work data |
95
- | | `uniqueJobTitles(count)` | Unique job titles |
96
- | | `uniqueDepartments(count)` | Unique departments |
97
- | `contact` | `email(firstName?, lastName?)` | Email address |
98
- | | `phone()` | Nomor telepon |
99
- | | `website(name?)` | Website URL |
100
- | | `data(firstName?, lastName?)` | Semua data kontak |
101
- | | `datas(count)` | Generate multiple contact data |
102
- | `company` | `name()` | Nama perusahaan |
103
- | | `industry()` | Industri |
104
- | | `catchPhrase()` | Tagline perusahaan |
105
- | | `data()` | Semua data perusahaan |
106
- | | `datas(count)` | Generate multiple company data |
107
- | `Mimic` | `setLocale(locale)` | Ganti locale |
108
- | | `generateMockEntities(count, options?)` | Generate complete entities |
109
- | | `generateUniqueMockEntities(count, options?)` | Generate unique entities |
110
-
111
- ## ๐ŸŒ Locale yang Tersedia (101 Locale!)
112
-
113
- ### Americas ๐ŸŒŽ (17)
114
- - `en_US` / `en` / `us` / `usa` - ๐Ÿ‡บ๐Ÿ‡ธ USA (imperial)
115
- - `es_US` / `es-us` - ๐Ÿ‡บ๐Ÿ‡ธ USA (Spanish)
116
- - `en_CA` / `ca` / `canada` - ๐Ÿ‡จ๐Ÿ‡ฆ Canada (metric)
117
- - `fr_CA` / `fr-ca` - ๐Ÿ‡จ๐Ÿ‡ฆ Canada (French)
118
- - `es_MX` / `mx` / `mexico` - ๐Ÿ‡ฒ๐Ÿ‡ฝ Mexico (metric)
119
- - `pt_BR` / `pt` / `br` / `brazil` - ๐Ÿ‡ง๐Ÿ‡ท Brazil (metric)
120
- - `es_AR` / `ar` / `argentina` - ๐Ÿ‡ฆ๐Ÿ‡ท Argentina (metric)
121
- - `es_CL` / `cl` / `chile` - ๐Ÿ‡จ๐Ÿ‡ฑ Chile (metric)
122
- - `es_CO` / `co` / `colombia` - ๐Ÿ‡จ๐Ÿ‡ด Colombia (metric)
123
- - `es_PE` / `pe` / `peru` - ๐Ÿ‡ต๐Ÿ‡ช Peru (metric)
124
- - `es_VE` / `ve` / `venezuela` - ๐Ÿ‡ป๐Ÿ‡ช Venezuela (metric)
125
- - `es_EC` / `ec` / `ecuador` - ๐Ÿ‡ช๐Ÿ‡จ Ecuador (metric)
126
- - `es_BO` / `bo` / `bolivia` - ๐Ÿ‡ง๐Ÿ‡ด Bolivia (metric)
127
- - `es_PY` / `py` / `paraguay` - ๐Ÿ‡ต๐Ÿ‡พ Paraguay (metric)
128
- - `es_GT` / `gt` / `guatemala` - ๐Ÿ‡ฌ๐Ÿ‡น Guatemala (metric)
129
- - `es_CR` / `cr` / `costa-rica` - ๐Ÿ‡จ๐Ÿ‡ท Costa Rica (metric)
130
- - `es_DO` / `do` / `dominican-republic` - ๐Ÿ‡ฉ๐Ÿ‡ด Dominican Republic (metric)
131
-
132
- ### Europe ๐ŸŒ (38)
133
- - `en_GB` / `gb` / `uk` - ๐Ÿ‡ฌ๐Ÿ‡ง UK (metric)
134
- - `en_IE` / `ie` / `ireland` - ๐Ÿ‡ฎ๐Ÿ‡ช Ireland (metric)
135
- - `de_DE` / `de` / `germany` - ๐Ÿ‡ฉ๐Ÿ‡ช Germany (metric)
136
- - `de_AT` / `at` / `austria` - ๐Ÿ‡ฆ๐Ÿ‡น Austria (metric)
137
- - `de_CH` / `ch` / `switzerland` - ๐Ÿ‡จ๐Ÿ‡ญ Switzerland (German)
138
- - `fr_CH` / `fr-ch` - ๐Ÿ‡จ๐Ÿ‡ญ Switzerland (French)
139
- - `it_CH` / `it-ch` - ๐Ÿ‡จ๐Ÿ‡ญ Switzerland (Italian)
140
- - `fr_FR` / `fr` / `france` - ๐Ÿ‡ซ๐Ÿ‡ท France (metric)
141
- - `fr_BE` / `fr-be` - ๐Ÿ‡ง๐Ÿ‡ช Belgium (French)
142
- - `nl_BE` / `be` / `belgium` - ๐Ÿ‡ง๐Ÿ‡ช Belgium (Dutch)
143
- - `it_IT` / `it` / `italy` - ๐Ÿ‡ฎ๐Ÿ‡น Italy (metric)
144
- - `es_ES` / `es` / `spain` - ๐Ÿ‡ช๐Ÿ‡ธ Spain (metric)
145
- - `ca_ES` / `ca` / `catalonia` - ๐Ÿ‡ช๐Ÿ‡ธ Spain (Catalan)
146
- - `pt_PT` / `portugal` - ๐Ÿ‡ต๐Ÿ‡น Portugal (metric)
147
- - `nl_NL` / `nl` / `netherlands` - ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands (metric)
148
- - `de_LU` / `de-lu` - ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg (German)
149
- - `fr_LU` / `fr-lu` - ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg (French)
150
- - `de_LI` / `li` / `liechtenstein` - ๐Ÿ‡ฑ๐Ÿ‡ฎ Liechtenstein (metric)
151
- - `ru_RU` / `ru` / `russia` - ๐Ÿ‡ท๐Ÿ‡บ Russia (metric)
152
- - `pl_PL` / `pl` / `poland` - ๐Ÿ‡ต๐Ÿ‡ฑ Poland (metric)
153
- - `tr_TR` / `tr` / `turkey` - ๐Ÿ‡น๐Ÿ‡ท Turkey (metric)
154
- - `sv_SE` / `sv` / `se` / `sweden` - ๐Ÿ‡ธ๐Ÿ‡ช Sweden (metric)
155
- - `nb_NO` / `no` / `norway` - ๐Ÿ‡ณ๐Ÿ‡ด Norway (metric)
156
- - `da_DK` / `da` / `dk` / `denmark` - ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark (metric)
157
- - `fi_FI` / `fi` / `finland` - ๐Ÿ‡ซ๐Ÿ‡ฎ Finland (metric)
158
- - `el_GR` / `el` / `gr` / `greece` - ๐Ÿ‡ฌ๐Ÿ‡ท Greece (metric)
159
- - `cs_CZ` / `cs` / `cz` / `czech` - ๐Ÿ‡จ๐Ÿ‡ฟ Czech Republic (metric)
160
- - `hu_HU` / `hu` / `hungary` - ๐Ÿ‡ญ๐Ÿ‡บ Hungary (metric)
161
- - `ro_RO` / `ro` / `romania` - ๐Ÿ‡ท๐Ÿ‡ด Romania (metric)
162
- - `uk_UA` / `ua` / `ukraine` - ๐Ÿ‡บ๐Ÿ‡ฆ Ukraine (metric)
163
- - `sk_SK` / `sk` / `slovakia` - ๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia (metric)
164
- - `hr_HR` / `hr` / `croatia` - ๐Ÿ‡ญ๐Ÿ‡ท Croatia (metric)
165
- - `rs_RS` / `rs` / `serbia` - ๐Ÿ‡ท๐Ÿ‡ธ Serbia (metric)
166
- - `lt_LT` / `lt` / `lithuania` - ๐Ÿ‡ฑ๐Ÿ‡น Lithuania (metric)
167
- - `lv_LV` / `lv` / `latvia` - ๐Ÿ‡ฑ๐Ÿ‡ป Latvia (metric)
168
- - `et_EE` / `ee` / `estonia` - ๐Ÿ‡ช๐Ÿ‡ช Estonia (metric)
169
- - `bg_BG` / `bg` / `bulgaria` - ๐Ÿ‡ง๐Ÿ‡ฌ Bulgaria (metric)
170
- - `is_IS` / `is` / `iceland` - ๐Ÿ‡ฎ๐Ÿ‡ธ Iceland (metric)
171
-
172
- ### Asia-Pacific ๐ŸŒ (20)
173
- - `zh_CN` / `zh` / `cn` / `china` - ๐Ÿ‡จ๐Ÿ‡ณ China (metric)
174
- - `zh_TW` / `tw` / `taiwan` - ๐Ÿ‡น๐Ÿ‡ผ Taiwan (metric)
175
- - `zh_HK` / `hk` / `hongkong` - ๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong (metric)
176
- - `ja_JP` / `ja` / `jp` / `japan` - ๐Ÿ‡ฏ๐Ÿ‡ต Japan (metric)
177
- - `ko_KR` / `ko` / `kr` / `korea` - ๐Ÿ‡ฐ๐Ÿ‡ท South Korea (metric)
178
- - `id_ID` / `id` / `indonesia` - ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia (metric)
179
- - `ms_MY` / `ms` / `my` / `malaysia` - ๐Ÿ‡ฒ๐Ÿ‡พ Malaysia (metric)
180
- - `th_TH` / `th` / `thailand` - ๐Ÿ‡น๐Ÿ‡ญ Thailand (metric)
181
- - `vi_VN` / `vi` / `vn` / `vietnam` - ๐Ÿ‡ป๐Ÿ‡ณ Vietnam (metric)
182
- - `en_SG` / `sg` / `singapore` - ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore (metric)
183
- - `en_PH` / `ph` / `philippines` - ๐Ÿ‡ต๐Ÿ‡ญ Philippines (metric)
184
- - `en_AU` / `au` / `australia` - ๐Ÿ‡ฆ๐Ÿ‡บ Australia (metric)
185
- - `en_NZ` / `nz` / `new-zealand` - ๐Ÿ‡ณ๐Ÿ‡ฟ New Zealand (metric)
186
- - `en_IN` / `in` / `india` - ๐Ÿ‡ฎ๐Ÿ‡ณ India (English)
187
- - `hi_IN` / `hi` / `hindi` - ๐Ÿ‡ฎ๐Ÿ‡ณ India (Hindi)
188
- - `bn_IN` / `bn-in` - ๐Ÿ‡ฎ๐Ÿ‡ณ India (Bengali)
189
- - `bn_BD` / `bd` / `bangladesh` - ๐Ÿ‡ง๐Ÿ‡ฉ Bangladesh (metric)
190
- - `ne_NP` / `np` / `nepal` - ๐Ÿ‡ณ๐Ÿ‡ต Nepal (metric)
191
- - `ur_PK` / `ur` / `urdu` - ๐Ÿ‡ต๐Ÿ‡ฐ Pakistan (Urdu)
192
- - `en_PK` / `pk` / `pakistan` - ๐Ÿ‡ต๐Ÿ‡ฐ Pakistan (English)
193
-
194
- ### Middle East & Africa ๐ŸŒ (26)
195
- - `ar_SA` / `sa` / `saudi` - ๐Ÿ‡ธ๐Ÿ‡ฆ Saudi Arabia (metric)
196
- - `ar_AE` / `ae` / `uae` - ๐Ÿ‡ฆ๐Ÿ‡ช UAE (metric)
197
- - `ar_EG` / `eg` / `egypt` - ๐Ÿ‡ช๐Ÿ‡ฌ Egypt (metric)
198
- - `ar_MA` / `ma` / `morocco` - ๐Ÿ‡ฒ๐Ÿ‡ฆ Morocco (metric)
199
- - `ar_IQ` / `iq` / `iraq` - ๐Ÿ‡ฎ๐Ÿ‡ถ Iraq (metric)
200
- - `ar_KW` / `kw` / `kuwait` - ๐Ÿ‡ฐ๐Ÿ‡ผ Kuwait (metric)
201
- - `ar_QA` / `qa` / `qatar` - ๐Ÿ‡ถ๐Ÿ‡ฆ Qatar (metric)
202
- - `ar_BH` / `bh` / `bahrain` - ๐Ÿ‡ง๐Ÿ‡ญ Bahrain (metric)
203
- - `ar_DZ` / `dz` / `algeria` - ๐Ÿ‡ฉ๐Ÿ‡ฟ Algeria (metric)
204
- - `ar_JO` / `jo` / `jordan` - ๐Ÿ‡ฏ๐Ÿ‡ด Jordan (metric)
205
- - `ar_LB` / `lb` / `lebanon` - ๐Ÿ‡ฑ๐Ÿ‡ง Lebanon (metric)
206
- - `ar_LY` / `ly` / `libya` - ๐Ÿ‡ฑ๐Ÿ‡พ Libya (metric)
207
- - `ar_OM` / `om` / `oman` - ๐Ÿ‡ด๐Ÿ‡ฒ Oman (metric)
208
- - `ar_SD` / `sd` / `sudan` - ๐Ÿ‡ธ๐Ÿ‡ฉ Sudan (metric)
209
- - `ar_SY` / `sy` / `syria` - ๐Ÿ‡ธ๐Ÿ‡พ Syria (metric)
210
- - `ar_TN` / `tn` / `tunisia` - ๐Ÿ‡น๐Ÿ‡ณ Tunisia (metric)
211
- - `ar_YE` / `ye` / `yemen` - ๐Ÿ‡พ๐Ÿ‡ช Yemen (metric)
212
- - `he_IL` / `he` / `il` / `israel` - ๐Ÿ‡ฎ๐Ÿ‡ฑ Israel (metric)
213
- - `fa_IR` / `fa` / `iran` - ๐Ÿ‡ฎ๐Ÿ‡ท Iran (metric)
214
- - `en_ZA` / `za` / `south-africa` - ๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa (English)
215
- - `af_ZA` / `af` / `afrikaans` - ๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa (Afrikaans)
216
- - `en_NG` / `ng` / `nigeria` - ๐Ÿ‡ณ๐Ÿ‡ฌ Nigeria (metric)
217
- - `en_KE` / `ke` / `kenya` - ๐Ÿ‡ฐ๐Ÿ‡ช Kenya (English)
218
- - `sw_KE` / `sw-ke` - ๐Ÿ‡ฐ๐Ÿ‡ช Kenya (Swahili)
219
- - `sw_TZ` / `sw-tz` - ๐Ÿ‡น๐Ÿ‡ฟ Tanzania (Swahili)
220
- - `pt_MZ` / `mz` / `mozambique` - ๐Ÿ‡ฒ๐Ÿ‡ฟ Mozambique (metric)
221
-
222
- **Total: 101 Locale dengan 250+ Aliases!**
223
-
224
- ## ๐Ÿ’ป Contoh Penggunaan
225
-
226
- ### Penggunaan Dasar
67
+ | Module | Method | Description |
68
+ | ---------- | --------------------------------------------- | -------------------------------------- |
69
+ | `identity` | `firstName(gender?)` | Random first name (male/female/random) |
70
+ | | `lastName()` | Random last name |
71
+ | | `fullName(gender?)` | Full name in locale format |
72
+ | | `gender()` | Random gender |
73
+ | | `age(range?)` | Age (default 18-65) |
74
+ | | `dateOfBirth(range?)` | Date of birth as Date object |
75
+ | | `person(gender?, range?)` | Complete person data |
76
+ | | `persons(count, gender?, range?)` | Multiple persons |
77
+ | | `uniquePersons(count, gender?, range?)` | Unique persons (by full name) |
78
+ | `location` | `street()` | Random street name |
79
+ | | `city()` | Random city |
80
+ | | `state()` | Random state/province |
81
+ | | `zipCode()` | Random zip/postal code |
82
+ | | `fullAddress()` | Formatted full address |
83
+ | | `address()` | Complete address data |
84
+ | | `addresses(count)` | Multiple addresses |
85
+ | | `uniqueAddresses(count)` | Unique addresses |
86
+ | `physical` | `height()` | Height + weight (metric or imperial) |
87
+ | | `weight()` | Weight + height (metric or imperial) |
88
+ | | `data()` | Complete physical data |
89
+ | | `datas(count)` | Multiple physical data |
90
+ | `work` | `jobTitle()` | Random job title |
91
+ | | `department()` | Random department |
92
+ | | `data()` | Complete work data |
93
+ | | `datas(count)` | Multiple work data |
94
+ | | `uniqueJobTitles(count)` | Unique job titles |
95
+ | | `uniqueDepartments(count)` | Unique departments |
96
+ | `contact` | `email(firstName?, lastName?)` | Email address |
97
+ | | `phone()` | Phone number (region-appropriate) |
98
+ | | `website(name?)` | Website URL from company name |
99
+ | | `data(firstName?, lastName?)` | Complete contact data |
100
+ | | `datas(count)` | Multiple contact data |
101
+ | `company` | `name()` | Company name |
102
+ | | `industry()` | Industry |
103
+ | | `catchPhrase()` | Company tagline |
104
+ | | `data()` | Complete company data |
105
+ | | `datas(count)` | Multiple company data |
106
+ | `Mimic` | `setLocale(locale)` | Switch locale |
107
+ | | `generateMockEntities(count, options?)` | Generate complete entities |
108
+ | | `generateUniqueMockEntities(count, options?)` | Unique complete entities |
109
+
110
+ ## Available Locales (212 Total)
111
+
112
+ ### Americas ๐ŸŒŽ (37) โ€” unchanged
113
+
114
+ - `en_US` / `en` / `us` / `usa` โ€” ๐Ÿ‡บ๐Ÿ‡ธ USA (imperial)
115
+ - `es_US` / `es-us` โ€” ๐Ÿ‡บ๐Ÿ‡ธ USA (Spanish)
116
+ - `en_CA` / `en-ca` / `canada` โ€” ๐Ÿ‡จ๐Ÿ‡ฆ Canada (metric)
117
+ - `fr_CA` / `fr-ca` โ€” ๐Ÿ‡จ๐Ÿ‡ฆ Canada (French)
118
+ - `es_MX` / `mx` / `mexico` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฝ Mexico
119
+ - `pt_BR` / `pt` / `br` / `brazil` โ€” ๐Ÿ‡ง๐Ÿ‡ท Brazil
120
+ - `es_AR` / `ar` / `argentina` โ€” ๐Ÿ‡ฆ๐Ÿ‡ท Argentina
121
+ - `es_CL` / `cl` / `chile` โ€” ๐Ÿ‡จ๐Ÿ‡ฑ Chile
122
+ - `es_CO` / `co` / `colombia` โ€” ๐Ÿ‡จ๐Ÿ‡ด Colombia
123
+ - `es_PE` / `pe` / `peru` โ€” ๐Ÿ‡ต๐Ÿ‡ช Peru
124
+ - `es_VE` / `ve` / `venezuela` โ€” ๐Ÿ‡ป๐Ÿ‡ช Venezuela
125
+ - `es_EC` / `ec` / `ecuador` โ€” ๐Ÿ‡ช๐Ÿ‡จ Ecuador
126
+ - `es_BO` / `bo` / `bolivia` โ€” ๐Ÿ‡ง๐Ÿ‡ด Bolivia
127
+ - `es_PY` / `py` / `paraguay` โ€” ๐Ÿ‡ต๐Ÿ‡พ Paraguay
128
+ - `es_GT` / `gt` / `guatemala` โ€” ๐Ÿ‡ฌ๐Ÿ‡น Guatemala
129
+ - `es_CR` / `cr` / `costa-rica` โ€” ๐Ÿ‡จ๐Ÿ‡ท Costa Rica
130
+ - `es_DO` / `do` / `dominican-republic` โ€” ๐Ÿ‡ฉ๐Ÿ‡ด Dominican Republic
131
+ - `es_CU` / `cu` / `cuba` โ€” ๐Ÿ‡จ๐Ÿ‡บ Cuba
132
+ - `es_SV` / `es-sv` / `el-salvador` โ€” ๐Ÿ‡ธ๐Ÿ‡ป El Salvador
133
+ - `es_HN` / `hn` / `honduras` โ€” ๐Ÿ‡ญ๐Ÿ‡ณ Honduras
134
+ - `es_NI` / `ni` / `nicaragua` โ€” ๐Ÿ‡ณ๐Ÿ‡ฎ Nicaragua
135
+ - `es_PA` / `pa` / `panama` โ€” ๐Ÿ‡ต๐Ÿ‡ฆ Panama
136
+ - `es_UY` / `uy` / `uruguay` โ€” ๐Ÿ‡บ๐Ÿ‡พ Uruguay
137
+ - `en_JM` / `jm` / `jamaica` โ€” ๐Ÿ‡ฏ๐Ÿ‡ฒ Jamaica
138
+ - `en_TT` / `tt` / `trinidad-and-tobago` โ€” ๐Ÿ‡น๐Ÿ‡น Trinidad & Tobago
139
+ - `en_GY` / `gy` / `guyana` โ€” ๐Ÿ‡ฌ๐Ÿ‡พ Guyana
140
+ - `en_BZ` / `bz` / `belize` โ€” ๐Ÿ‡ง๐Ÿ‡ฟ Belize
141
+ - `en_BS` / `bs` / `bahamas` โ€” ๐Ÿ‡ง๐Ÿ‡ธ Bahamas
142
+ - `en_BB` / `bb` / `barbados` โ€” ๐Ÿ‡ง๐Ÿ‡ง Barbados
143
+ - `en_AG` / `ag` / `antigua-and-barbuda` โ€” ๐Ÿ‡ฆ๐Ÿ‡ฌ Antigua & Barbuda
144
+ - `en_DM` / `dm` / `dominica` โ€” ๐Ÿ‡ฉ๐Ÿ‡ฒ Dominica
145
+ - `en_GD` / `gd` / `grenada` โ€” ๐Ÿ‡ฌ๐Ÿ‡ฉ Grenada
146
+ - `en_KN` / `kn` / `saint-kitts-and-nevis` โ€” ๐Ÿ‡ฐ๐Ÿ‡ณ St. Kitts & Nevis
147
+ - `en_LC` / `lc` / `saint-lucia` โ€” ๐Ÿ‡ฑ๐Ÿ‡จ St. Lucia
148
+ - `en_VC` / `vc` / `saint-vincent` โ€” ๐Ÿ‡ป๐Ÿ‡จ St. Vincent & Grenadines
149
+ - `fr_HT` / `ht` / `haiti` โ€” ๐Ÿ‡ญ๐Ÿ‡น Haiti
150
+ - `nl_SR` / `sr` / `suriname` โ€” ๐Ÿ‡ธ๐Ÿ‡ท Suriname
151
+
152
+ ### Europe ๐ŸŒ (56)
153
+
154
+ - `en_GB` / `gb` / `uk` โ€” ๐Ÿ‡ฌ๐Ÿ‡ง UK
155
+ - `en_IE` / `ie` / `ireland` โ€” ๐Ÿ‡ฎ๐Ÿ‡ช Ireland (English)
156
+ - `ga_IE` / `ga` / `gaeilge` โ€” ๐Ÿ‡ฎ๐Ÿ‡ช Ireland (Irish Gaelic)
157
+ - `cy_GB` / `cy` / `wales` โ€” ๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ Wales (Welsh)
158
+ - `de_DE` / `de` / `germany` โ€” ๐Ÿ‡ฉ๐Ÿ‡ช Germany
159
+ - `de_AT` / `at` / `austria` โ€” ๐Ÿ‡ฆ๐Ÿ‡น Austria
160
+ - `de_CH` / `ch` / `switzerland` โ€” ๐Ÿ‡จ๐Ÿ‡ญ Switzerland (German)
161
+ - `fr_CH` / `fr-ch` โ€” ๐Ÿ‡จ๐Ÿ‡ญ Switzerland (French)
162
+ - `it_CH` / `it-ch` โ€” ๐Ÿ‡จ๐Ÿ‡ญ Switzerland (Italian)
163
+ - `fr_FR` / `fr` / `france` โ€” ๐Ÿ‡ซ๐Ÿ‡ท France
164
+ - `fr_BE` / `fr-be` โ€” ๐Ÿ‡ง๐Ÿ‡ช Belgium (French)
165
+ - `nl_BE` / `be` / `belgium` โ€” ๐Ÿ‡ง๐Ÿ‡ช Belgium (Dutch)
166
+ - `it_IT` / `it` / `italy` โ€” ๐Ÿ‡ฎ๐Ÿ‡น Italy
167
+ - `es_ES` / `es` / `spain` โ€” ๐Ÿ‡ช๐Ÿ‡ธ Spain
168
+ - `ca_ES` / `catalonia` / `catalan` โ€” ๐Ÿ‡ช๐Ÿ‡ธ Spain (Catalan)
169
+ - `pt_PT` / `portugal` โ€” ๐Ÿ‡ต๐Ÿ‡น Portugal
170
+ - `nl_NL` / `nl` / `netherlands` โ€” ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands
171
+ - `de_LU` / `de-lu` โ€” ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg (German)
172
+ - `fr_LU` / `fr-lu` โ€” ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg (French)
173
+ - `de_LI` / `li` / `liechtenstein` โ€” ๐Ÿ‡ฑ๐Ÿ‡ฎ Liechtenstein
174
+ - `ru_RU` / `ru` / `russia` โ€” ๐Ÿ‡ท๐Ÿ‡บ Russia
175
+ - `pl_PL` / `pl` / `poland` โ€” ๐Ÿ‡ต๐Ÿ‡ฑ Poland
176
+ - `tr_TR` / `tr` / `turkey` โ€” ๐Ÿ‡น๐Ÿ‡ท Turkey
177
+ - `sv_SE` / `sv` / `se` / `sweden` โ€” ๐Ÿ‡ธ๐Ÿ‡ช Sweden
178
+ - `nb_NO` / `no` / `norway` โ€” ๐Ÿ‡ณ๐Ÿ‡ด Norway
179
+ - `da_DK` / `da` / `dk` / `denmark` โ€” ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark
180
+ - `fi_FI` / `fi` / `finland` โ€” ๐Ÿ‡ซ๐Ÿ‡ฎ Finland
181
+ - `el_GR` / `el` / `gr` / `greece` โ€” ๐Ÿ‡ฌ๐Ÿ‡ท Greece
182
+ - `cs_CZ` / `cs` / `cz` / `czech` โ€” ๐Ÿ‡จ๐Ÿ‡ฟ Czech Republic
183
+ - `hu_HU` / `hu` / `hungary` โ€” ๐Ÿ‡ญ๐Ÿ‡บ Hungary
184
+ - `ro_RO` / `ro` / `romania` โ€” ๐Ÿ‡ท๐Ÿ‡ด Romania
185
+ - `uk_UA` / `ua` / `ukraine` โ€” ๐Ÿ‡บ๐Ÿ‡ฆ Ukraine
186
+ - `sk_SK` / `sk` / `slovakia` โ€” ๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia
187
+ - `hr_HR` / `hr` / `croatia` โ€” ๐Ÿ‡ญ๐Ÿ‡ท Croatia
188
+ - `rs_RS` / `rs` / `serbia` โ€” ๐Ÿ‡ท๐Ÿ‡ธ Serbia
189
+ - `lt_LT` / `lt` / `lithuania` โ€” ๐Ÿ‡ฑ๐Ÿ‡น Lithuania
190
+ - `lv_LV` / `lv` / `latvia` โ€” ๐Ÿ‡ฑ๐Ÿ‡ป Latvia
191
+ - `et_EE` / `ee` / `estonia` โ€” ๐Ÿ‡ช๐Ÿ‡ช Estonia
192
+ - `bg_BG` / `bg` / `bulgaria` โ€” ๐Ÿ‡ง๐Ÿ‡ฌ Bulgaria
193
+ - `is_IS` / `is` / `iceland` โ€” ๐Ÿ‡ฎ๐Ÿ‡ธ Iceland
194
+ - `sq_AL` / `al` / `albania` โ€” ๐Ÿ‡ฆ๐Ÿ‡ฑ Albania
195
+ - `bs_BA` / `ba` / `bosnia-herzegovina` โ€” ๐Ÿ‡ง๐Ÿ‡ฆ Bosnia & Herzegovina
196
+ - `mk_MK` / `mk` / `north-macedonia` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฐ North Macedonia
197
+ - `sl_SI` / `si` / `slovenia` โ€” ๐Ÿ‡ธ๐Ÿ‡ฎ Slovenia
198
+ - `mt_MT` / `mt` / `malta` โ€” ๐Ÿ‡ฒ๐Ÿ‡น Malta
199
+ - `be_BY` / `by` / `belarus` โ€” ๐Ÿ‡ง๐Ÿ‡พ Belarus
200
+ - `sr_ME` / `me` / `montenegro` โ€” ๐Ÿ‡ฒ๐Ÿ‡ช Montenegro
201
+ - `ro_MD` / `md` / `moldova` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฉ Moldova
202
+ - `el_CY` / `el-cy` / `cyprus` โ€” ๐Ÿ‡จ๐Ÿ‡พ Cyprus (Greek)
203
+ - `tr_CY` / `tr-cy` โ€” ๐Ÿ‡จ๐Ÿ‡พ Cyprus (Turkish)
204
+ - `fo_FO` / `fo` / `faroe-islands` โ€” ๐Ÿ‡ซ๐Ÿ‡ด Faroe Islands
205
+ - `ca_AD` / `ad` / `andorra` โ€” ๐Ÿ‡ฆ๐Ÿ‡ฉ Andorra
206
+ - `fr_MC` / `mc` / `monaco` โ€” ๐Ÿ‡ฒ๐Ÿ‡จ Monaco
207
+ - `it_SM` / `sm` / `san-marino` โ€” ๐Ÿ‡ธ๐Ÿ‡ฒ San Marino
208
+ - `it_VA` / `va` / `vatican` โ€” ๐Ÿ‡ป๐Ÿ‡ฆ Vatican City
209
+ - `en_GI` / `gi` / `gibraltar` โ€” ๐Ÿ‡ฌ๐Ÿ‡ฎ Gibraltar
210
+
211
+ ### Asia-Pacific ๐ŸŒ (44)
212
+
213
+ - `zh_CN` / `zh` / `cn` / `china` โ€” ๐Ÿ‡จ๐Ÿ‡ณ China
214
+ - `zh_TW` / `tw` / `taiwan` โ€” ๐Ÿ‡น๐Ÿ‡ผ Taiwan
215
+ - `zh_HK` / `hk` / `hongkong` โ€” ๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong
216
+ - `ja_JP` / `ja` / `jp` / `japan` โ€” ๐Ÿ‡ฏ๐Ÿ‡ต Japan
217
+ - `ko_KR` / `ko` / `kr` / `korea` โ€” ๐Ÿ‡ฐ๐Ÿ‡ท South Korea
218
+ - `id_ID` / `id` / `indonesia` โ€” ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia
219
+ - `ms_MY` / `ms` / `my` / `malaysia` โ€” ๐Ÿ‡ฒ๐Ÿ‡พ Malaysia
220
+ - `th_TH` / `th` / `thailand` โ€” ๐Ÿ‡น๐Ÿ‡ญ Thailand
221
+ - `vi_VN` / `vi` / `vn` / `vietnam` โ€” ๐Ÿ‡ป๐Ÿ‡ณ Vietnam
222
+ - `km_KH` / `kh` / `cambodia` โ€” ๐Ÿ‡ฐ๐Ÿ‡ญ Cambodia
223
+ - `lo_LA` / `la` / `laos` โ€” ๐Ÿ‡ฑ๐Ÿ‡ฆ Laos
224
+ - `my_MM` / `mm` / `myanmar` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฒ Myanmar
225
+ - `mn_MN` / `mn` / `mongolia` โ€” ๐Ÿ‡ฒ๐Ÿ‡ณ Mongolia
226
+ - `en_SG` / `sg` / `singapore` โ€” ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore
227
+ - `en_PH` / `ph` / `philippines` โ€” ๐Ÿ‡ต๐Ÿ‡ญ Philippines
228
+ - `en_AU` / `au` / `australia` โ€” ๐Ÿ‡ฆ๐Ÿ‡บ Australia
229
+ - `en_NZ` / `nz` / `new-zealand` โ€” ๐Ÿ‡ณ๐Ÿ‡ฟ New Zealand
230
+ - `en_IN` / `in` / `india` โ€” ๐Ÿ‡ฎ๐Ÿ‡ณ India (English)
231
+ - `hi_IN` / `hi` / `hindi` โ€” ๐Ÿ‡ฎ๐Ÿ‡ณ India (Hindi)
232
+ - `bn_IN` / `bn-in` โ€” ๐Ÿ‡ฎ๐Ÿ‡ณ India (Bengali)
233
+ - `si_LK` / `lk` / `sri-lanka` โ€” ๐Ÿ‡ฑ๐Ÿ‡ฐ Sri Lanka
234
+ - `bn_BD` / `bd` / `bangladesh` โ€” ๐Ÿ‡ง๐Ÿ‡ฉ Bangladesh
235
+ - `ne_NP` / `np` / `nepal` โ€” ๐Ÿ‡ณ๐Ÿ‡ต Nepal
236
+ - `dz_BT` / `bt` / `bhutan` โ€” ๐Ÿ‡ง๐Ÿ‡น Bhutan
237
+ - `dv_MV` / `mv` / `maldives` โ€” ๐Ÿ‡ฒ๐Ÿ‡ป Maldives
238
+ - `ur_PK` / `ur` / `urdu` โ€” ๐Ÿ‡ต๐Ÿ‡ฐ Pakistan (Urdu)
239
+ - `en_PK` / `pk` / `pakistan` โ€” ๐Ÿ‡ต๐Ÿ‡ฐ Pakistan (English)
240
+ - `ps_AF` / `af` / `afghanistan` โ€” ๐Ÿ‡ฆ๐Ÿ‡ซ Afghanistan
241
+ - `kk_KZ` / `kz` / `kazakhstan` โ€” ๐Ÿ‡ฐ๐Ÿ‡ฟ Kazakhstan
242
+ - `ky_KG` / `kg` / `kyrgyzstan` โ€” ๐Ÿ‡ฐ๐Ÿ‡ฌ Kyrgyzstan
243
+ - `tg_TJ` / `tj` / `tajikistan` โ€” ๐Ÿ‡น๐Ÿ‡ฏ Tajikistan
244
+ - `tk_TM` / `tm` / `turkmenistan` โ€” ๐Ÿ‡น๐Ÿ‡ฒ Turkmenistan
245
+ - `uz_UZ` / `uz` / `uzbekistan` โ€” ๐Ÿ‡บ๐Ÿ‡ฟ Uzbekistan
246
+ - `ka_GE` / `ge` / `georgia` โ€” ๐Ÿ‡ฌ๐Ÿ‡ช Georgia
247
+ - `hy_AM` / `hy` / `armenia` โ€” ๐Ÿ‡ฆ๐Ÿ‡ฒ Armenia
248
+ - `az_AZ` / `az` / `azerbaijan` โ€” ๐Ÿ‡ฆ๐Ÿ‡ฟ Azerbaijan
249
+ - `ms_BN` / `bn` / `brunei` โ€” ๐Ÿ‡ง๐Ÿ‡ณ Brunei
250
+ - `pt_TL` / `tl` / `timor-leste` โ€” ๐Ÿ‡น๐Ÿ‡ฑ Timor-Leste
251
+ - `zh_MO` / `mo` / `macau` โ€” ๐Ÿ‡ฒ๐Ÿ‡ด Macau (Chinese)
252
+ - `pt_MO` / `pt-mo` / `macau-portuguese` โ€” ๐Ÿ‡ฒ๐Ÿ‡ด Macau (Portuguese)
253
+
254
+ ### Middle East & Africa ๐ŸŒ (75)
255
+
256
+ **Middle East (19):**
257
+ - `ar_SA` / `sa` / `saudi` โ€” ๐Ÿ‡ธ๐Ÿ‡ฆ Saudi Arabia
258
+ - `ar_AE` / `ae` / `uae` โ€” ๐Ÿ‡ฆ๐Ÿ‡ช UAE
259
+ - `ar_EG` / `eg` / `egypt` โ€” ๐Ÿ‡ช๐Ÿ‡ฌ Egypt
260
+ - `ar_MA` / `ma` / `morocco` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฆ Morocco
261
+ - `ar_DZ` / `dz` / `algeria` โ€” ๐Ÿ‡ฉ๐Ÿ‡ฟ Algeria
262
+ - `ar_TN` / `tn` / `tunisia` โ€” ๐Ÿ‡น๐Ÿ‡ณ Tunisia
263
+ - `ar_LY` / `ly` / `libya` โ€” ๐Ÿ‡ฑ๐Ÿ‡พ Libya
264
+ - `ar_SD` / `sd` / `sudan` โ€” ๐Ÿ‡ธ๐Ÿ‡ฉ Sudan
265
+ - `ar_IQ` / `iq` / `iraq` โ€” ๐Ÿ‡ฎ๐Ÿ‡ถ Iraq
266
+ - `ar_KW` / `kw` / `kuwait` โ€” ๐Ÿ‡ฐ๐Ÿ‡ผ Kuwait
267
+ - `ar_QA` / `qa` / `qatar` โ€” ๐Ÿ‡ถ๐Ÿ‡ฆ Qatar
268
+ - `ar_BH` / `bh` / `bahrain` โ€” ๐Ÿ‡ง๐Ÿ‡ญ Bahrain
269
+ - `ar_OM` / `om` / `oman` โ€” ๐Ÿ‡ด๐Ÿ‡ฒ Oman
270
+ - `ar_YE` / `ye` / `yemen` โ€” ๐Ÿ‡พ๐Ÿ‡ช Yemen
271
+ - `ar_JO` / `jo` / `jordan` โ€” ๐Ÿ‡ฏ๐Ÿ‡ด Jordan
272
+ - `ar_LB` / `lb` / `lebanon` โ€” ๐Ÿ‡ฑ๐Ÿ‡ง Lebanon
273
+ - `ar_SY` / `sy` / `syria` โ€” ๐Ÿ‡ธ๐Ÿ‡พ Syria
274
+ - `he_IL` / `he` / `il` / `israel` โ€” ๐Ÿ‡ฎ๐Ÿ‡ฑ Israel
275
+ - `fa_IR` / `fa` / `iran` โ€” ๐Ÿ‡ฎ๐Ÿ‡ท Iran
276
+ - `ar_PS` / `ps` / `palestine` โ€” ๐Ÿ‡ต๐Ÿ‡ธ Palestine
277
+ - `ar_MR` / `mr` / `mauritania` โ€” ๐Ÿ‡ฒ๐Ÿ‡ท Mauritania
278
+
279
+ **Sub-Saharan Africa (67):**
280
+ - `en_ZA` / `za` / `south-africa` โ€” ๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa (English)
281
+ - `af_ZA` / `af` / `afrikaans` โ€” ๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa (Afrikaans)
282
+ - `en_NA` / `na` / `namibia` โ€” ๐Ÿ‡ณ๐Ÿ‡ฆ Namibia
283
+ - `en_BW` / `bw` / `botswana` โ€” ๐Ÿ‡ง๐Ÿ‡ผ Botswana
284
+ - `en_ZW` / `zw` / `zimbabwe` โ€” ๐Ÿ‡ฟ๐Ÿ‡ผ Zimbabwe
285
+ - `en_ZM` / `zm` / `zambia` โ€” ๐Ÿ‡ฟ๐Ÿ‡ฒ Zambia
286
+ - `en_LS` / `ls` / `lesotho` โ€” ๐Ÿ‡ฑ๐Ÿ‡ธ Lesotho
287
+ - `en_SZ` / `sz` / `eswatini` โ€” ๐Ÿ‡ธ๐Ÿ‡ฟ Eswatini
288
+ - `en_NG` / `ng` / `nigeria` โ€” ๐Ÿ‡ณ๐Ÿ‡ฌ Nigeria
289
+ - `en_GH` / `gh` / `ghana` โ€” ๐Ÿ‡ฌ๐Ÿ‡ญ Ghana
290
+ - `en_SL` / `sl` / `sierra-leone` โ€” ๐Ÿ‡ธ๐Ÿ‡ฑ Sierra Leone
291
+ - `en_LR` / `lr` / `liberia` โ€” ๐Ÿ‡ฑ๐Ÿ‡ท Liberia
292
+ - `en_GM` / `gm` / `gambia` โ€” ๐Ÿ‡ฌ๐Ÿ‡ฒ Gambia
293
+ - `en_UG` / `ug` / `uganda` โ€” ๐Ÿ‡บ๐Ÿ‡ฌ Uganda
294
+ - `en_KE` / `ke` / `kenya` โ€” ๐Ÿ‡ฐ๐Ÿ‡ช Kenya (English)
295
+ - `sw_KE` / `sw-ke` โ€” ๐Ÿ‡ฐ๐Ÿ‡ช Kenya (Swahili)
296
+ - `sw_TZ` / `sw-tz` โ€” ๐Ÿ‡น๐Ÿ‡ฟ Tanzania (Swahili)
297
+ - `rw_RW` / `rw` / `rwanda` โ€” ๐Ÿ‡ท๐Ÿ‡ผ Rwanda
298
+ - `so_SO` / `so` / `somalia` โ€” ๐Ÿ‡ธ๐Ÿ‡ด Somalia
299
+ - `am_ET` / `am` / `ethiopia` โ€” ๐Ÿ‡ช๐Ÿ‡น Ethiopia
300
+ - `mg_MG` / `mg` / `madagascar` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฌ Madagascar
301
+ - `fr_CM` / `cm` / `cameroon` โ€” ๐Ÿ‡จ๐Ÿ‡ฒ Cameroon
302
+ - `fr_CI` / `ci` / `cote-d-ivoire` โ€” ๐Ÿ‡จ๐Ÿ‡ฎ Cรดte d'Ivoire
303
+ - `fr_SN` / `sn` / `senegal` โ€” ๐Ÿ‡ธ๐Ÿ‡ณ Senegal
304
+ - `fr_ML` / `ml` / `mali` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฑ Mali
305
+ - `fr_NE` / `ne` / `niger` โ€” ๐Ÿ‡ณ๐Ÿ‡ช Niger
306
+ - `fr_BF` / `bf` / `burkina-faso` โ€” ๐Ÿ‡ง๐Ÿ‡ซ Burkina Faso
307
+ - `fr_BJ` / `bj` / `benin` โ€” ๐Ÿ‡ง๐Ÿ‡ฏ Benin
308
+ - `fr_TG` / `tg` / `togo` โ€” ๐Ÿ‡น๐Ÿ‡ฌ Togo
309
+ - `fr_GA` / `ga` / `gabon` โ€” ๐Ÿ‡ฌ๐Ÿ‡ฆ Gabon
310
+ - `pt_AO` / `ao` / `angola` โ€” ๐Ÿ‡ฆ๐Ÿ‡ด Angola
311
+ - `pt_MZ` / `mz` / `mozambique` โ€” ๐Ÿ‡ฒ๐Ÿ‡ฟ Mozambique
312
+ - `pt_CV` / `cv` / `cape-verde` โ€” ๐Ÿ‡จ๐Ÿ‡ป Cape Verde
313
+ - `pt_GW` / `gw` / `guinea-bissau` โ€” ๐Ÿ‡ฌ๐Ÿ‡ผ Guinea-Bissau
314
+ - `pt_ST` / `st` / `sao-tome` โ€” ๐Ÿ‡ธ๐Ÿ‡น Sรฃo Tomรฉ & Prรญncipe
315
+ - `ar_PS` / `ps` / `palestine` โ€” ๐Ÿ‡ต๐Ÿ‡ธ Palestine
316
+ - `ar_MR` / `mr` / `mauritania` โ€” ๐Ÿ‡ฒ๐Ÿ‡ท Mauritania
317
+ - `ar_KM` / `km` / `comoros` โ€” ๐Ÿ‡ฐ๐Ÿ‡ฒ Comoros
318
+ - `ar_DJ` / `dj` / `djibouti` โ€” ๐Ÿ‡ฉ๐Ÿ‡ฏ Djibouti
319
+ - `en_MU` / `mu` / `mauritius` โ€” ๐Ÿ‡ฒ๐Ÿ‡บ Mauritius
320
+ - `fr_SC` / `fr-sc` / `seychelles-french` โ€” ๐Ÿ‡ธ๐Ÿ‡จ Seychelles (French)
321
+ - `en_SC` / `sc` / `seychelles` โ€” ๐Ÿ‡ธ๐Ÿ‡จ Seychelles (English)
322
+ - `fr_GN` / `gn` / `guinea-conakry` โ€” ๐Ÿ‡ฌ๐Ÿ‡ณ Guinea
323
+ - `es_GQ` / `gq` / `equatorial-guinea` โ€” ๐Ÿ‡ฌ๐Ÿ‡ถ Equatorial Guinea
324
+ - `en_SS` / `ss` / `south-sudan` โ€” ๐Ÿ‡ธ๐Ÿ‡ธ South Sudan
325
+ - `ti_ER` / `er` / `eritrea` โ€” ๐Ÿ‡ช๐Ÿ‡ท Eritrea
326
+ - `ms_BN` / `bn` / `brunei` โ€” ๐Ÿ‡ง๐Ÿ‡ณ Brunei
327
+ - `pt_TL` / `tl` / `timor-leste` โ€” ๐Ÿ‡น๐Ÿ‡ฑ Timor-Leste
328
+ - `zh_MO` / `mo` / `macau` โ€” ๐Ÿ‡ฒ๐Ÿ‡ด Macau (Chinese)
329
+ - `pt_MO` / `pt-mo` / `macau-portuguese` โ€” ๐Ÿ‡ฒ๐Ÿ‡ด Macau (Portuguese)
330
+ - `ca_AD` / `ad` / `andorra` โ€” ๐Ÿ‡ฆ๐Ÿ‡ฉ Andorra
331
+ - `fr_MC` / `mc` / `monaco` โ€” ๐Ÿ‡ฒ๐Ÿ‡จ Monaco
332
+ - `it_SM` / `sm` / `san-marino` โ€” ๐Ÿ‡ธ๐Ÿ‡ฒ San Marino
333
+ - `it_VA` / `va` / `vatican` โ€” ๐Ÿ‡ป๐Ÿ‡ฆ Vatican City
334
+ - `en_GI` / `gi` / `gibraltar` โ€” ๐Ÿ‡ฌ๐Ÿ‡ฎ Gibraltar
335
+
336
+ ## Usage Examples
337
+
338
+ ### Basic Usage
227
339
 
228
340
  ```typescript
229
341
  import { createMimic } from 'mimic-data';
@@ -231,20 +343,20 @@ import { createMimic } from 'mimic-data';
231
343
  const mimic = createMimic('ja_JP');
232
344
 
233
345
  console.log(mimic.identity.fullName());
234
- // Output: "Tanaka Kenji"
346
+ // "Tanaka Kenji"
235
347
 
236
348
  console.log(mimic.location.fullAddress());
237
- // Output: "ใ€’123-4567 Tokyo, Yokohama, Chuo-dori 2-5-10"
349
+ // "ใ€’123-4567 Tokyo, Yokohama, Chuo-dori 2-5-10"
238
350
  ```
239
351
 
240
- ### Dengan Class Langsung
352
+ ### Using the Mimic Class Directly
241
353
 
242
354
  ```typescript
243
355
  import { Mimic, locales } from 'mimic-data';
244
356
 
245
357
  const mimic = new Mimic(locales.de_DE);
246
358
  console.log(mimic.identity.fullName('female'));
247
- // Output: "Maria Mรผller"
359
+ // "Maria Mรผller"
248
360
  ```
249
361
 
250
362
  ### Seeded Random (Reproducible Data)
@@ -281,7 +393,7 @@ const employees = mimic.generateMockEntities(200, {
281
393
  });
282
394
  ```
283
395
 
284
- ### Complete Employee Data
396
+ ### Complete Employee Record
285
397
 
286
398
  ```typescript
287
399
  import { createMimic } from 'mimic-data';
@@ -325,15 +437,15 @@ console.log(employee);
325
437
  // }
326
438
  ```
327
439
 
328
- ## ๐Ÿ”ง TypeScript Types
440
+ ## TypeScript Types
329
441
 
330
442
  ```typescript
331
- import {
332
- Gender,
443
+ import {
444
+ Gender,
333
445
  MetricSystem,
334
446
  PersonData,
335
- AddressData,
336
- PhysicalData,
447
+ AddressData,
448
+ PhysicalData,
337
449
  WorkData,
338
450
  ContactData,
339
451
  CompanyData,
@@ -402,7 +514,7 @@ interface AgeRange {
402
514
  }
403
515
  ```
404
516
 
405
- ## ๐ŸŽฒ Random Utilities
517
+ ## Random Utilities
406
518
 
407
519
  ```typescript
408
520
  import { Random } from 'mimic-data';
@@ -418,7 +530,7 @@ Random.multiple(() => Random.int(1, 100), 10);
418
530
  Random.unique(() => Random.int(1, 1000), 20);
419
531
  ```
420
532
 
421
- ## ๐Ÿ› ๏ธ Development
533
+ ## Development
422
534
 
423
535
  ```bash
424
536
  # Install dependencies
@@ -437,24 +549,22 @@ npm test
437
549
  npm run type-check
438
550
  ```
439
551
 
440
- ## ๐Ÿ“ Lisensi
552
+ ## License
441
553
 
442
554
  MIT
443
555
 
444
- ## ๐Ÿค Kontribusi
445
-
446
- Kontribusi sangat diterima! Silakan buka issue atau pull request.
556
+ ## Contributing
447
557
 
448
- ### Menambahkan Locale Baru
558
+ Contributions are welcome! Please open an issue or pull request on [GitHub](https://github.com/fazelnotgg/mimic-data).
449
559
 
450
- Dengan **Registry System**, menambah locale baru sangat mudah:
560
+ ### Adding a New Locale
451
561
 
452
- 1. **Buat file locale** di `src/locales/xx_XX.ts`
453
- 2. **Implement interface** `LocaleDefinition`
454
- 3. **Import dan register** di `src/index.ts`
562
+ 1. **Create a locale file** at `src/locales/xx_XX.ts`
563
+ 2. **Implement the `LocaleDefinition`** interface
564
+ 3. **Import and register** in `src/index.ts`
455
565
 
456
566
  ```typescript
457
- // 1. Buat file: src/locales/es_ES.ts
567
+ // 1. Create file: src/locales/es_ES.ts
458
568
  import { LocaleDefinition } from '../types';
459
569
  import { Random } from '../core/random';
460
570
 
@@ -480,15 +590,16 @@ export const es_ES: LocaleDefinition = {
480
590
  }
481
591
  };
482
592
 
483
- // 2. Register di src/index.ts
593
+ // 2. Register in src/index.ts
484
594
  import { es_ES } from './locales/es_ES';
485
595
  localeRegistry.register('es_ES', es_ES, ['es', 'spain', 'espaรฑa']);
486
596
  ```
487
597
 
488
- ## ๐Ÿ™ Acknowledgments
598
+ ## Acknowledgments
599
+
600
+ Inspired by libraries like Faker.js, with a focus on:
489
601
 
490
- Terinspirasi oleh library seperti Faker.js, namun dengan fokus pada:
491
602
  - Zero runtime dependencies
492
- - Lokalisasi yang lebih akurat
493
- - Bundle size yang lebih kecil
494
- - TypeScript-first approach
603
+ - Accurate localization for each region
604
+ - Smaller bundle size through tree-shaking
605
+ - TypeScript-first design with full type safety