File Coverage

blib/lib/Enum/Declare/Common/Locale.pm
Criterion Covered Total %
statement 11 11 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 15 15 100.0


line stmt bran cond sub pod time code
1             package Enum::Declare::Common::Locale;
2              
3 1     1   77336 use 5.014;
  1         3  
4 1     1   3 use strict;
  1         2  
  1         29  
5 1     1   8 use warnings;
  1         2  
  1         57  
6              
7 1     1   340 use Enum::Declare;
  1         9128  
  1         2638  
8              
9             enum Lang :Str :Type :Export {
10             # ── English ──
11             EN = "en",
12             EN_US = "en_US",
13             EN_GB = "en_GB",
14             EN_AU = "en_AU",
15             EN_CA = "en_CA",
16             EN_NZ = "en_NZ",
17             EN_IE = "en_IE",
18             EN_ZA = "en_ZA",
19             EN_IN = "en_IN",
20             EN_SG = "en_SG",
21              
22             # ── Western Europe ──
23             FR = "fr",
24             FR_FR = "fr_FR",
25             FR_CA = "fr_CA",
26             FR_BE = "fr_BE",
27             FR_CH = "fr_CH",
28             DE = "de",
29             DE_DE = "de_DE",
30             DE_AT = "de_AT",
31             DE_CH = "de_CH",
32             ES = "es",
33             ES_ES = "es_ES",
34             ES_MX = "es_MX",
35             ES_AR = "es_AR",
36             ES_CO = "es_CO",
37             ES_CL = "es_CL",
38             ES_PE = "es_PE",
39             PT = "pt",
40             PT_BR = "pt_BR",
41             PT_PT = "pt_PT",
42             IT = "it",
43             IT_IT = "it_IT",
44             NL = "nl",
45             NL_NL = "nl_NL",
46             NL_BE = "nl_BE",
47             CA = "ca",
48              
49             # ── Nordic ──
50             SV = "sv",
51             SV_SE = "sv_SE",
52             DA = "da",
53             DA_DK = "da_DK",
54             NO = "no",
55             NB = "nb",
56             NB_NO = "nb_NO",
57             NN = "nn",
58             NN_NO = "nn_NO",
59             FI = "fi",
60             FI_FI = "fi_FI",
61             IS = "is",
62             IS_IS = "is_IS",
63              
64             # ── Eastern Europe ──
65             PL = "pl",
66             PL_PL = "pl_PL",
67             CS = "cs",
68             CS_CZ = "cs_CZ",
69             SK = "sk",
70             SK_SK = "sk_SK",
71             HU = "hu",
72             HU_HU = "hu_HU",
73             RO = "ro",
74             RO_RO = "ro_RO",
75             BG = "bg",
76             BG_BG = "bg_BG",
77             HR = "hr",
78             HR_HR = "hr_HR",
79             SR = "sr",
80             SR_RS = "sr_RS",
81             SL = "sl",
82             SL_SI = "sl_SI",
83             UK = "uk",
84             UK_UA = "uk_UA",
85             RU = "ru",
86             RU_RU = "ru_RU",
87             BE = "be",
88             BE_BY = "be_BY",
89             LT = "lt",
90             LT_LT = "lt_LT",
91             LV = "lv",
92             LV_LV = "lv_LV",
93             ET = "et",
94             ET_EE = "et_EE",
95              
96             # ── Greek / Turkish / Other European ──
97             EL = "el",
98             EL_GR = "el_GR",
99             TR = "tr",
100             TR_TR = "tr_TR",
101             SQ = "sq",
102             SQ_AL = "sq_AL",
103             MK = "mk",
104             MK_MK = "mk_MK",
105             BS = "bs",
106             BS_BA = "bs_BA",
107             MT = "mt",
108             MT_MT = "mt_MT",
109             GA = "ga",
110             GA_IE = "ga_IE",
111             CY = "cy",
112             CY_GB = "cy_GB",
113             EU = "eu",
114             GL = "gl",
115              
116             # ── East Asia ──
117             ZH = "zh",
118             ZH_CN = "zh_CN",
119             ZH_TW = "zh_TW",
120             ZH_HK = "zh_HK",
121             JA = "ja",
122             JA_JP = "ja_JP",
123             KO = "ko",
124             KO_KR = "ko_KR",
125             MN = "mn",
126              
127             # ── Southeast Asia ──
128             VI = "vi",
129             VI_VN = "vi_VN",
130             TH = "th",
131             TH_TH = "th_TH",
132             ID = "id",
133             ID_ID = "id_ID",
134             MS = "ms",
135             MS_MY = "ms_MY",
136             TL = "tl",
137             TL_PH = "tl_PH",
138             KM = "km",
139             LO = "lo",
140             MY_MM = "my_MM",
141              
142             # ── South Asia ──
143             HI = "hi",
144             HI_IN = "hi_IN",
145             BN = "bn",
146             BN_BD = "bn_BD",
147             BN_IN = "bn_IN",
148             TA = "ta",
149             TA_IN = "ta_IN",
150             TE = "te",
151             TE_IN = "te_IN",
152             ML = "ml",
153             KN = "kn",
154             GU = "gu",
155             MR = "mr",
156             PA = "pa",
157             SI = "si",
158             NE = "ne",
159             UR = "ur",
160             UR_PK = "ur_PK",
161              
162             # ── Middle East / Central Asia ──
163             AR = "ar",
164             AR_SA = "ar_SA",
165             AR_EG = "ar_EG",
166             AR_AE = "ar_AE",
167             AR_MA = "ar_MA",
168             FA = "fa",
169             FA_IR = "fa_IR",
170             HE = "he",
171             HE_IL = "he_IL",
172             KA = "ka",
173             KA_GE = "ka_GE",
174             HY = "hy",
175             HY_AM = "hy_AM",
176             AZ = "az",
177             AZ_AZ = "az_AZ",
178             KK = "kk",
179             UZ = "uz",
180             KY = "ky",
181             TK = "tk",
182             TG = "tg",
183              
184             # ── Africa ──
185             SW = "sw",
186             SW_KE = "sw_KE",
187             SW_TZ = "sw_TZ",
188             AM = "am",
189             AM_ET = "am_ET",
190             HA = "ha",
191             YO = "yo",
192             IG = "ig",
193             ZU = "zu",
194             AF = "af",
195             AF_ZA = "af_ZA",
196             RW = "rw",
197             MG = "mg",
198             SO = "so"
199             };
200              
201             1;
202              
203             =head1 NAME
204              
205             Enum::Declare::Common::Locale - Language and locale tag constants
206              
207             =head1 SYNOPSIS
208              
209             use Enum::Declare::Common::Locale;
210              
211             say EN_US; # "en_US"
212             say FR_FR; # "fr_FR"
213             say JA_JP; # "ja_JP"
214              
215             my $meta = Lang();
216             ok($meta->valid('en_US'));
217              
218             =head1 ENUMS
219              
220             =head2 Lang :Str :Export
221              
222             Over 180 locale tags covering English, Western Europe, Nordic, Eastern
223             Europe, Greek/Turkish, East Asia, Southeast Asia, South Asia, Middle
224             East/Central Asia, and Africa. Constants are uppercase (e.g. C,
225             C, C).
226              
227             =head1 AUTHOR
228              
229             LNATION C<< >>
230              
231             =head1 LICENSE AND COPYRIGHT
232              
233             Copyright 2026 LNATION. Artistic License 2.0.
234              
235             =cut