worldwide 1.8.0 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +1 -1
- data/db/data/regions/AE/es.yml +2 -2
- data/db/data/regions/AE.yml +14 -0
- data/db/data/regions/AU/es.yml +4 -4
- data/db/data/regions/AZ/es.yml +2 -2
- data/db/data/regions/BD/es.yml +2 -2
- data/db/data/regions/BR.yml +1 -0
- data/db/data/regions/CA/es.yml +1 -1
- data/db/data/regions/CL/es.yml +4 -4
- data/db/data/regions/CR/es.yml +2 -2
- data/db/data/regions/DE.yml +14 -1
- data/db/data/regions/GB/es.yml +2 -2
- data/db/data/regions/IL/es.yml +1 -1
- data/db/data/regions/IN/es.yml +4 -4
- data/db/data/regions/KR/es.yml +1 -1
- data/db/data/regions/KW/es.yml +2 -2
- data/db/data/regions/LK/es.yml +1 -1
- data/db/data/regions/MX/es.yml +4 -4
- data/db/data/regions/MX.yml +2 -0
- data/db/data/regions/NG/es.yml +2 -2
- data/db/data/regions/PA/es.yml +2 -2
- data/db/data/regions/PE/es.yml +2 -2
- data/db/data/regions/PH/es.yml +4 -4
- data/db/data/regions/SA/es.yml +2 -2
- data/db/data/regions/TR/es.yml +2 -2
- data/db/data/regions/TW/es.yml +2 -2
- data/db/data/regions/US/es.yml +5 -5
- data/db/data/regions/VN/es.yml +2 -2
- data/db/data/regions/XK/es.yml +1 -1
- data/db/data/regions/_default/es.yml +22 -22
- data/lib/worldwide/calendar.rb +19 -24
- data/lib/worldwide/cldr/fallbacks.rb +4 -1
- data/lib/worldwide/currencies.rb +24 -29
- data/lib/worldwide/locale.rb +4 -7
- data/lib/worldwide/region.rb +1 -0
- data/lib/worldwide/regions_loader.rb +1 -1
- data/lib/worldwide/version.rb +1 -1
- data/lib/worldwide.rb +3 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e95f2e0fb163b3ca71052724364003e66adaede98d891ba85b9fcb950bb45403
|
4
|
+
data.tar.gz: 87597cf4738a6cad9e32d1a13f1aad9bca0dc67c49999e18ab712fa9bc0b4ced
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9d46c593759a7470a3c2c3cab66ea9100f1afdada955c54cdedcb63ab6a9fb1ca2365596e69301fd8f8194f5f82a19a042ea95096cee6c766cad85fc58dbb5a
|
7
|
+
data.tar.gz: 90a72f40fb35d3f782f190833f52c7e09625a32f7972fb757edb3d9ebb097050c0c38037846b293e5e84f637feb3e014faf185b5ea0dffbdba953759ea76b252
|
data/CHANGELOG.md
CHANGED
@@ -26,9 +26,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
26
26
|
- Security in case of vulnerabilities.
|
27
27
|
|
28
28
|
## [Unreleased]
|
29
|
+
- Nil.
|
29
30
|
|
30
31
|
---
|
31
32
|
|
33
|
+
## [1.10.0] - 2024-09-16
|
34
|
+
- Add alternate Arabic names for UAE zones [#283](https://github.com/Shopify/worldwide/pull/283)
|
35
|
+
|
36
|
+
## [1.9.0] - 2024-08-12
|
37
|
+
- add support for additional address fields streetName, streetNumber in DE [#273](https://github.com/Shopify/worldwide/pull/273)
|
38
|
+
- set additional_field neighborhood as required in BR [#279](https://github.com/Shopify/worldwide/pull/279)
|
39
|
+
|
40
|
+
|
32
41
|
## [1.8.0] - 2024-08-09
|
33
42
|
- Bump Ruby to 3.3.1; drop support for 3.0.x [#264](https://github.com/Shopify/worldwide/pull/264)
|
34
43
|
- Add support for partial zip matching for SG [#271](https://github.com/Shopify/worldwide/pull/271)
|
data/Gemfile.lock
CHANGED
data/db/data/regions/AE/es.yml
CHANGED
@@ -46,10 +46,10 @@ es:
|
|
46
46
|
contains_url_informative: El nombre de la subdivisión no puede contener
|
47
47
|
una URL.
|
48
48
|
unknown_for_city_instructional: Introduce una subdivisión válida para
|
49
|
-
%{city}
|
49
|
+
%{city}
|
50
50
|
unknown_for_city_informative: La subdivisión no es válida para %{city}.
|
51
51
|
unknown_for_zip_instructional: Introduce una subdivisión válida para el
|
52
|
-
código postal %{zip}
|
52
|
+
código postal %{zip}
|
53
53
|
unknown_for_zip_informative: La subdivisión no es válida para el código
|
54
54
|
postal %{zip}.
|
55
55
|
unknown_for_address_instructional: Puede que la subdivisión no sea correcta.
|
data/db/data/regions/AE.yml
CHANGED
@@ -37,6 +37,8 @@ example_address:
|
|
37
37
|
phone: "+971 600 544442"
|
38
38
|
zones:
|
39
39
|
- name: Abu Dhabi
|
40
|
+
name_alternates:
|
41
|
+
- "أبو ظبي"
|
40
42
|
code: AZ
|
41
43
|
tax: 0.0
|
42
44
|
tax_name: VAT
|
@@ -44,6 +46,8 @@ zones:
|
|
44
46
|
- DU
|
45
47
|
- SH
|
46
48
|
- name: Ajman
|
49
|
+
name_alternates:
|
50
|
+
- "عجمان"
|
47
51
|
code: AJ
|
48
52
|
tax: 0.0
|
49
53
|
tax_name: VAT
|
@@ -53,6 +57,8 @@ zones:
|
|
53
57
|
- RK
|
54
58
|
- SH
|
55
59
|
- name: Dubai
|
60
|
+
name_alternates:
|
61
|
+
- "دبي"
|
56
62
|
code: DU
|
57
63
|
tax: 0.0
|
58
64
|
tax_name: VAT
|
@@ -62,6 +68,8 @@ zones:
|
|
62
68
|
- RK
|
63
69
|
- SH
|
64
70
|
- name: Fujairah
|
71
|
+
name_alternates:
|
72
|
+
- "الفجيرة"
|
65
73
|
code: FU
|
66
74
|
tax: 0.0
|
67
75
|
tax_name: VAT
|
@@ -70,6 +78,8 @@ zones:
|
|
70
78
|
- RK
|
71
79
|
- SH
|
72
80
|
- name: Ras al-Khaimah
|
81
|
+
name_alternates:
|
82
|
+
- "رأس الخيمة"
|
73
83
|
code: RK
|
74
84
|
tax: 0.0
|
75
85
|
tax_name: VAT
|
@@ -80,6 +90,8 @@ zones:
|
|
80
90
|
- SH
|
81
91
|
- UQ
|
82
92
|
- name: Sharjah
|
93
|
+
name_alternates:
|
94
|
+
- "الشارقة"
|
83
95
|
code: SH
|
84
96
|
tax: 0.0
|
85
97
|
tax_name: VAT
|
@@ -91,6 +103,8 @@ zones:
|
|
91
103
|
- RK
|
92
104
|
- UQ
|
93
105
|
- name: Umm al-Quwain
|
106
|
+
name_alternates:
|
107
|
+
- "أم القيوين"
|
94
108
|
code: UQ
|
95
109
|
tax: 0.0
|
96
110
|
tax_name: VAT
|
data/db/data/regions/AU/es.yml
CHANGED
@@ -28,8 +28,8 @@ es:
|
|
28
28
|
contener HTML.
|
29
29
|
province:
|
30
30
|
label:
|
31
|
-
default: Estado
|
32
|
-
optional: Estado
|
31
|
+
default: Estado o territorio
|
32
|
+
optional: Estado o territorio (opcional)
|
33
33
|
errors:
|
34
34
|
blank_instructional: Selecciona un estado o territorio.
|
35
35
|
blank_informative: Falta el estado o territorio.
|
@@ -41,10 +41,10 @@ es:
|
|
41
41
|
blank_instructional: Introduce un código postal.
|
42
42
|
blank_informative: Falta el código postal.
|
43
43
|
invalid_for_country_instructional: Introduce un código postal válido para
|
44
|
-
%{country}
|
44
|
+
%{country}
|
45
45
|
invalid_for_country_informative: El código postal no es válido para %{country}.
|
46
46
|
invalid_for_country_and_province_instructional: Introduce un código postal
|
47
|
-
válido para %{province}, %{country}
|
47
|
+
válido para %{province}, %{country}
|
48
48
|
invalid_for_country_and_province_informative: El código postal no es válido
|
49
49
|
para %{province}, %{country}.
|
50
50
|
too_long_instructional: El código postal es demasiado largo.
|
data/db/data/regions/AZ/es.yml
CHANGED
@@ -6,5 +6,5 @@ es:
|
|
6
6
|
zip:
|
7
7
|
errors:
|
8
8
|
invalid_for_country_instructional: Introduce un código postal válido para
|
9
|
-
Azerbaiyán o deja el campo en blanco
|
10
|
-
invalid_for_country_informative: El código postal no es válido para Azerbaiyán
|
9
|
+
Azerbaiyán o deja el campo en blanco
|
10
|
+
invalid_for_country_informative: El código postal no es válido para Azerbaiyán
|
data/db/data/regions/BD/es.yml
CHANGED
@@ -6,5 +6,5 @@ es:
|
|
6
6
|
zip:
|
7
7
|
errors:
|
8
8
|
invalid_for_country_instructional: Introduce un código postal válido para
|
9
|
-
Bangladés o deja el campo en blanco
|
10
|
-
invalid_for_country_informative: El código postal no es válido para Bangladés
|
9
|
+
Bangladés o deja el campo en blanco
|
10
|
+
invalid_for_country_informative: El código postal no es válido para Bangladés
|
data/db/data/regions/BR.yml
CHANGED
data/db/data/regions/CA/es.yml
CHANGED
@@ -11,7 +11,7 @@ es:
|
|
11
11
|
blank_instructional: Selecciona una provincia.
|
12
12
|
blank_informative: Falta la provincia.
|
13
13
|
unknown_for_city_and_zip_instructional: Introduce una provincia válida
|
14
|
-
para %{city}, %{zip}
|
14
|
+
para %{city}, %{zip}
|
15
15
|
unknown_for_city_and_zip_informative: La provincia no es válida para %{city},
|
16
16
|
%{zip}.
|
17
17
|
unknown_for_city_instructional: Selecciona una provincia válida para %{city}.
|
data/db/data/regions/CL/es.yml
CHANGED
@@ -35,10 +35,10 @@ es:
|
|
35
35
|
etiquetas HTML.
|
36
36
|
contains_url_instructional: El nombre de la comuna no puede contener URL.
|
37
37
|
contains_url_informative: El nombre de la comuna no puede contener URL.
|
38
|
-
unknown_for_city_instructional: Introduce una comuna válida para %{city}
|
39
|
-
unknown_for_city_informative: Introduce una comuna válida para %{city}
|
40
|
-
unknown_for_zip_instructional: Introduce una comuna válida para %{zip}
|
41
|
-
unknown_for_zip_informative: Introduce una comuna válida para %{zip}
|
38
|
+
unknown_for_city_instructional: Introduce una comuna válida para %{city}
|
39
|
+
unknown_for_city_informative: Introduce una comuna válida para %{city}
|
40
|
+
unknown_for_zip_instructional: Introduce una comuna válida para %{zip}
|
41
|
+
unknown_for_zip_informative: Introduce una comuna válida para %{zip}
|
42
42
|
unknown_for_address_instructional: Puede que la comuna no sea correcta.
|
43
43
|
unknown_for_address_informative: Puede que la comuna no sea correcta.
|
44
44
|
warnings:
|
data/db/data/regions/CR/es.yml
CHANGED
@@ -44,10 +44,10 @@ es:
|
|
44
44
|
URL.
|
45
45
|
contains_url_informative: El nombre del distrito no puede contener una
|
46
46
|
URL.
|
47
|
-
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
47
|
+
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
48
48
|
unknown_for_city_informative: El distrito no es válido para %{city}.
|
49
49
|
unknown_for_zip_instructional: Introduce un distrito válido para el código
|
50
|
-
postal %{zip}
|
50
|
+
postal %{zip}
|
51
51
|
unknown_for_zip_informative: El distrito no es válido para el código postal
|
52
52
|
%{zip}.
|
53
53
|
unknown_for_address_instructional: Puede que el distrito no sea correcto.
|
data/db/data/regions/DE.yml
CHANGED
@@ -20,12 +20,25 @@ languages:
|
|
20
20
|
- de
|
21
21
|
- en
|
22
22
|
example_address:
|
23
|
-
address1: Willy-Brandt-Straße 1
|
23
|
+
address1: Willy-Brandt-Straße 1
|
24
24
|
city: Berlin
|
25
25
|
zip: '10557'
|
26
26
|
phone: "+49 30 182722720"
|
27
27
|
format:
|
28
28
|
edit: "{country}_{firstName}{lastName}_{company}_{address1}_{address2}_{zip}{city}_{phone}"
|
29
29
|
show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{country}_{phone}"
|
30
|
+
format_extended:
|
31
|
+
edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{address2}_{zip}{city}_{phone}"
|
32
|
+
additional_address_fields:
|
33
|
+
- name: streetName
|
34
|
+
required: true
|
35
|
+
- name: streetNumber
|
36
|
+
required: true
|
37
|
+
combined_address_format:
|
38
|
+
default:
|
39
|
+
address1:
|
40
|
+
- key: streetName
|
41
|
+
- key: streetNumber
|
42
|
+
decorator: " "
|
30
43
|
emoji: "\U0001F1E9\U0001F1EA"
|
31
44
|
timezone: Europe/Berlin
|
data/db/data/regions/GB/es.yml
CHANGED
@@ -11,11 +11,11 @@ es:
|
|
11
11
|
blank_instructional: Introduce un código postal.
|
12
12
|
blank_informative: Falta el código postal.
|
13
13
|
invalid_for_country_instructional: Introduce un código postal válido para
|
14
|
-
el Reino Unido
|
14
|
+
el Reino Unido
|
15
15
|
invalid_for_country_informative: El código postal no es válido para el
|
16
16
|
Reino Unido.
|
17
17
|
invalid_for_country_and_province_instructional: Introduce un código postal
|
18
|
-
para %{province}, Reino Unido
|
18
|
+
para %{province}, Reino Unido
|
19
19
|
invalid_for_country_and_province_informative: El código postal no es válido
|
20
20
|
para %{province}, Reino Unido.
|
21
21
|
too_long_instructional: El código postal es demasiado largo.
|
data/db/data/regions/IL/es.yml
CHANGED
data/db/data/regions/IN/es.yml
CHANGED
@@ -12,17 +12,17 @@ es:
|
|
12
12
|
blank_informative: Falta el estado.
|
13
13
|
zip:
|
14
14
|
label:
|
15
|
-
default:
|
16
|
-
optional:
|
15
|
+
default: Código de identificación personal
|
16
|
+
optional: Código de identificación personal (opcional)
|
17
17
|
errors:
|
18
18
|
blank_instructional: Introduce un código de identificación personal.
|
19
19
|
blank_informative: Falta el código de identificación personal.
|
20
20
|
invalid_for_country_instructional: Introduce un código de identificación
|
21
|
-
personal válido para %{country}
|
21
|
+
personal válido para %{country}
|
22
22
|
invalid_for_country_informative: El código de identificación personal
|
23
23
|
no es válido.
|
24
24
|
invalid_for_country_and_province_instructional: Introduce un código de
|
25
|
-
identificación personal válido para %{province}, %{country}
|
25
|
+
identificación personal válido para %{province}, %{country}
|
26
26
|
invalid_for_country_and_province_informative: El código de identificación
|
27
27
|
personal no es válido.
|
28
28
|
too_long_instructional: El código de identificación personal es demasiado
|
data/db/data/regions/KR/es.yml
CHANGED
data/db/data/regions/KW/es.yml
CHANGED
@@ -42,10 +42,10 @@ es:
|
|
42
42
|
contains_url_instructional: El nombre del bloque no puede contener una
|
43
43
|
URL.
|
44
44
|
contains_url_informative: El nombre del bloque no puede contener una URL.
|
45
|
-
unknown_for_city_instructional: Introduce un bloque válido para %{city}
|
45
|
+
unknown_for_city_instructional: Introduce un bloque válido para %{city}
|
46
46
|
unknown_for_city_informative: El bloque no es válido para %{city}.
|
47
47
|
unknown_for_zip_instructional: Introduce un bloque válido para el código
|
48
|
-
postal %{zip}
|
48
|
+
postal %{zip}
|
49
49
|
unknown_for_zip_informative: El bloque no es válido para el código postal
|
50
50
|
%{zip}.
|
51
51
|
unknown_for_address_instructional: Puede que el bloque no sea correcto.
|
data/db/data/regions/LK/es.yml
CHANGED
data/db/data/regions/MX/es.yml
CHANGED
@@ -51,10 +51,10 @@ es:
|
|
51
51
|
una URL.
|
52
52
|
contains_url_informative: El nombre de la colonia no puede contener una
|
53
53
|
URL.
|
54
|
-
unknown_for_city_instructional: Introduce una colonia válida para %{city}
|
55
|
-
unknown_for_city_informative: Introduce una colonia válida para %{city}
|
56
|
-
unknown_for_zip_instructional: Introduce una colonia válida para %{zip}
|
57
|
-
unknown_for_zip_informative: Introduce una colonia válida para %{zip}
|
54
|
+
unknown_for_city_instructional: Introduce una colonia válida para %{city}
|
55
|
+
unknown_for_city_informative: Introduce una colonia válida para %{city}
|
56
|
+
unknown_for_zip_instructional: Introduce una colonia válida para %{zip}
|
57
|
+
unknown_for_zip_informative: Introduce una colonia válida para %{zip}
|
58
58
|
unknown_for_address_instructional: Puede que la colonia no sea correcta.
|
59
59
|
unknown_for_address_informative: Puede que la colonia no sea correcta.
|
60
60
|
warnings:
|
data/db/data/regions/MX.yml
CHANGED
data/db/data/regions/NG/es.yml
CHANGED
@@ -13,5 +13,5 @@ es:
|
|
13
13
|
zip:
|
14
14
|
errors:
|
15
15
|
invalid_for_country_instructional: Escribe un código postal de seis dígitos
|
16
|
-
válido para Nigeria o deja el campo en blanco
|
17
|
-
invalid_for_country_informative: El código postal no es válido para Nigeria
|
16
|
+
válido para Nigeria o deja el campo en blanco
|
17
|
+
invalid_for_country_informative: El código postal no es válido para Nigeria
|
data/db/data/regions/PA/es.yml
CHANGED
@@ -37,10 +37,10 @@ es:
|
|
37
37
|
URL.
|
38
38
|
contains_url_informative: El nombre del distrito no puede contener una
|
39
39
|
URL.
|
40
|
-
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
40
|
+
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
41
41
|
unknown_for_city_informative: El distrito no es válido para %{city}.
|
42
42
|
unknown_for_zip_instructional: Introduce un distrito válido para el código
|
43
|
-
postal %{zip}
|
43
|
+
postal %{zip}
|
44
44
|
unknown_for_zip_informative: El distrito no es válido para el código postal
|
45
45
|
%{zip}.
|
46
46
|
unknown_for_address_instructional: Puede que el distrito no sea correcto.
|
data/db/data/regions/PE/es.yml
CHANGED
@@ -37,10 +37,10 @@ es:
|
|
37
37
|
URL.
|
38
38
|
contains_url_informative: El nombre del distrito no puede contener una
|
39
39
|
URL.
|
40
|
-
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
40
|
+
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
41
41
|
unknown_for_city_informative: El distrito no es válido para %{city}.
|
42
42
|
unknown_for_zip_instructional: Introduce un distrito válido para el código
|
43
|
-
postal %{zip}
|
43
|
+
postal %{zip}
|
44
44
|
unknown_for_zip_informative: El distrito no es válido para el código postal
|
45
45
|
%{zip}.
|
46
46
|
unknown_for_address_instructional: Puede que el distrito no sea correcto.
|
data/db/data/regions/PH/es.yml
CHANGED
@@ -37,10 +37,10 @@ es:
|
|
37
37
|
URL.
|
38
38
|
contains_url_informative: El nombre del barangay no puede contener una
|
39
39
|
URL.
|
40
|
-
unknown_for_city_instructional: Introduce un barangay válido para %{city}
|
41
|
-
unknown_for_city_informative: Introduce un barangay válido para %{city}
|
42
|
-
unknown_for_zip_instructional: Introduce un barangay válido para %{zip}
|
43
|
-
unknown_for_zip_informative: Introduce un barangay válido para %{zip}
|
40
|
+
unknown_for_city_instructional: Introduce un barangay válido para %{city}
|
41
|
+
unknown_for_city_informative: Introduce un barangay válido para %{city}
|
42
|
+
unknown_for_zip_instructional: Introduce un barangay válido para %{zip}
|
43
|
+
unknown_for_zip_informative: Introduce un barangay válido para %{zip}
|
44
44
|
unknown_for_address_instructional: Puede que el barangay no sea correcto.
|
45
45
|
unknown_for_address_informative: Puede que el barangay no sea correcto.
|
46
46
|
warnings:
|
data/db/data/regions/SA/es.yml
CHANGED
@@ -37,10 +37,10 @@ es:
|
|
37
37
|
URL.
|
38
38
|
contains_url_informative: El nombre del distrito no puede contener una
|
39
39
|
URL.
|
40
|
-
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
40
|
+
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
41
41
|
unknown_for_city_informative: El distrito no es válido para %{city}.
|
42
42
|
unknown_for_zip_instructional: Introduce un distrito válido para el código
|
43
|
-
postal %{zip}
|
43
|
+
postal %{zip}
|
44
44
|
unknown_for_zip_informative: El distrito no es válido para el código postal
|
45
45
|
%{zip}.
|
46
46
|
unknown_for_address_instructional: Puede que el distrito no sea correcto.
|
data/db/data/regions/TR/es.yml
CHANGED
@@ -37,10 +37,10 @@ es:
|
|
37
37
|
URL.
|
38
38
|
contains_url_informative: El nombre del distrito no puede contener una
|
39
39
|
URL.
|
40
|
-
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
40
|
+
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
41
41
|
unknown_for_city_informative: El distrito no es válido para %{city}.
|
42
42
|
unknown_for_zip_instructional: Introduce un distrito válido para el código
|
43
|
-
postal %{zip}
|
43
|
+
postal %{zip}
|
44
44
|
unknown_for_zip_informative: El distrito no es válido para el código postal
|
45
45
|
%{zip}.
|
46
46
|
unknown_for_address_instructional: Puede que el distrito no sea correcto.
|
data/db/data/regions/TW/es.yml
CHANGED
@@ -37,10 +37,10 @@ es:
|
|
37
37
|
URL.
|
38
38
|
contains_url_informative: El nombre del distrito no puede contener una
|
39
39
|
URL.
|
40
|
-
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
40
|
+
unknown_for_city_instructional: Introduce un distrito válido para %{city}
|
41
41
|
unknown_for_city_informative: El distrito no es válido para %{city}.
|
42
42
|
unknown_for_zip_instructional: Introduce un distrito válido para el código
|
43
|
-
postal %{zip}
|
43
|
+
postal %{zip}
|
44
44
|
unknown_for_zip_informative: El distrito no es válido para el código postal
|
45
45
|
%{zip}.
|
46
46
|
unknown_for_address_instructional: Puede que el distrito no sea correcto.
|
data/db/data/regions/US/es.yml
CHANGED
@@ -11,10 +11,10 @@ es:
|
|
11
11
|
blank_instructional: Selecciona un estado.
|
12
12
|
blank_informative: Introduce un estado.
|
13
13
|
invalid_for_country_instructional: Introduce un estado válido para %{city},
|
14
|
-
%{zip}
|
14
|
+
%{zip}
|
15
15
|
invalid_for_country_informative: El estado no es válido.
|
16
16
|
unknown_for_city_and_zip_instructional: Introduce un estado válido para
|
17
|
-
%{city}, %{zip}
|
17
|
+
%{city}, %{zip}
|
18
18
|
unknown_for_city_and_zip_informative: El estado no es válido para %{city},
|
19
19
|
%{zip}.
|
20
20
|
unknown_for_city_instructional: Selecciona un estado válido para %{city}.
|
@@ -33,13 +33,13 @@ es:
|
|
33
33
|
blank_instructional: Introduce un código postal.
|
34
34
|
blank_informative: Falta el código postal.
|
35
35
|
invalid_for_country_instructional: Introduce un código postal válido para
|
36
|
-
%{country}
|
36
|
+
%{country}
|
37
37
|
invalid_for_country_informative: El código postal no es válido para %{country}.
|
38
38
|
invalid_for_province_instructional: Introduce un código postal válido
|
39
|
-
para %{province}
|
39
|
+
para %{province}
|
40
40
|
invalid_for_province_informative: El código postal no es válido para %{province}.
|
41
41
|
invalid_for_country_and_province_instructional: Introduce un código postal
|
42
|
-
válido para %{province}, %{country}
|
42
|
+
válido para %{province}, %{country}
|
43
43
|
invalid_for_country_and_province_informative: El código postal no es válido
|
44
44
|
para %{province}, %{country}.
|
45
45
|
too_long_instructional: El código postal es demasiado largo.
|
data/db/data/regions/VN/es.yml
CHANGED
@@ -39,10 +39,10 @@ es:
|
|
39
39
|
contains_url_informative: El nombre de la municipalidad no puede contener
|
40
40
|
una URL.
|
41
41
|
unknown_for_city_instructional: Introduce un nombre de municipalidad válido
|
42
|
-
para %{city}
|
42
|
+
para %{city}
|
43
43
|
unknown_for_city_informative: La municipalidad no coincide con %{city}.
|
44
44
|
unknown_for_zip_instructional: Introduce un nombre de municipalidad válido
|
45
|
-
para el código postal %{zip}
|
45
|
+
para el código postal %{zip}
|
46
46
|
unknown_for_zip_informative: La municipalidad no coincide con el código
|
47
47
|
postal %{zip}.
|
48
48
|
unknown_for_address_instructional: Puede que la municipalidad no sea correcta.
|
data/db/data/regions/XK/es.yml
CHANGED
@@ -114,7 +114,7 @@ es:
|
|
114
114
|
missing_building_number_informative: Es posible que falte introducir el
|
115
115
|
número de edificio.
|
116
116
|
street_unknown_for_zip_instructional: Introduce un nombre de calle válido
|
117
|
-
para el código postal %{zip}
|
117
|
+
para el código postal %{zip}
|
118
118
|
street_unknown_for_zip_informative: El nombre de la calle no coincide
|
119
119
|
con el código postal %{zip}.
|
120
120
|
building_number_invalid_instructional: No se ha podido localizar un número
|
@@ -139,7 +139,7 @@ es:
|
|
139
139
|
missing_building_number_informative: Es posible que falte introducir el
|
140
140
|
número de edificio.
|
141
141
|
street_unknown_for_zip_instructional: Introduce un nombre de calle válido
|
142
|
-
para el código postal %{zip}
|
142
|
+
para el código postal %{zip}
|
143
143
|
street_unknown_for_zip_informative: El nombre de calle no es válido para
|
144
144
|
el código postal %{zip}.
|
145
145
|
building_number_invalid_instructional: No se ha podido localizar un número
|
@@ -187,13 +187,13 @@ es:
|
|
187
187
|
blank_instructional: Introduce una ciudad.
|
188
188
|
blank_informative: Falta la ciudad.
|
189
189
|
unknown_for_zip_instructional: Introduce una ciudad válida para el código
|
190
|
-
postal %{zip}
|
190
|
+
postal %{zip}
|
191
191
|
unknown_for_zip_informative: La ciudad no coincide con el código postal
|
192
192
|
%{zip}.
|
193
|
-
unknown_for_province_instructional: Introduce una ciudad válida para %{province}
|
193
|
+
unknown_for_province_instructional: Introduce una ciudad válida para %{province}
|
194
194
|
unknown_for_province_informative: La ciudad no coincide con %{province}.
|
195
195
|
unknown_for_zip_and_province_instructional: Introduce una ciudad válida
|
196
|
-
para el código postal %{zip} de %{province}
|
196
|
+
para el código postal %{zip} de %{province}
|
197
197
|
unknown_for_zip_and_province_informative: Puede que la ciudad sea incorrecta.
|
198
198
|
too_long_instructional: El nombre de la ciudad es demasiado largo (el
|
199
199
|
máximo es 255 caracteres).
|
@@ -233,10 +233,10 @@ es:
|
|
233
233
|
blank_informative: Falta el país o la región.
|
234
234
|
not_supported_instructional: El país o la región no se admite.
|
235
235
|
not_supported_informative: El país o la región no se admite.
|
236
|
-
invalid_instructional: Introduce un país o una región válidos
|
236
|
+
invalid_instructional: Introduce un país o una región válidos
|
237
237
|
invalid_informative: El país o la región no son válidos.
|
238
238
|
invalid_for_zip_instructional: Introduce una región o un país válidos
|
239
|
-
para este código postal
|
239
|
+
para este código postal
|
240
240
|
invalid_for_zip_informative: "%{country} no coincide con el país o la
|
241
241
|
región."
|
242
242
|
phone:
|
@@ -246,7 +246,7 @@ es:
|
|
246
246
|
errors:
|
247
247
|
blank_instructional: Introduce un número de teléfono.
|
248
248
|
blank_informative: Falta el número de teléfono.
|
249
|
-
invalid_instructional: Introduce un número de teléfono válido
|
249
|
+
invalid_instructional: Introduce un número de teléfono válido
|
250
250
|
invalid_informative: El número de teléfono no es válido.
|
251
251
|
too_long_instructional: El número de teléfono es demasiado largo.
|
252
252
|
too_long_informative: El número de teléfono es demasiado largo.
|
@@ -270,7 +270,7 @@ es:
|
|
270
270
|
blank_informative: Falta la región.
|
271
271
|
invalid_instructional: Selecciona una región.
|
272
272
|
invalid_informative: Falta la región.
|
273
|
-
invalid_for_country_instructional: Introduce una región válida para %{country}
|
273
|
+
invalid_for_country_instructional: Introduce una región válida para %{country}
|
274
274
|
invalid_for_country_informative: La región no coincide con el código postal
|
275
275
|
%{country}.
|
276
276
|
unknown_for_city_and_zip_instructional: Selecciona una región válida para
|
@@ -294,23 +294,23 @@ es:
|
|
294
294
|
errors:
|
295
295
|
blank_instructional: Introduce un código postal.
|
296
296
|
blank_informative: Falta el código postal.
|
297
|
-
invalid_instructional: Introduce un código postal válido
|
297
|
+
invalid_instructional: Introduce un código postal válido
|
298
298
|
invalid_informative: El código postal no es válido.
|
299
299
|
invalid_for_country_instructional: Introduce un código postal válido para
|
300
|
-
%{country}
|
300
|
+
%{country}
|
301
301
|
invalid_for_country_informative: El código postal no coincide con %{country}.
|
302
302
|
invalid_for_province_instructional: Introduce un código postal válido
|
303
|
-
para %{province}
|
303
|
+
para %{province}
|
304
304
|
invalid_for_province_informative: El código postal no coincide con %{province}.
|
305
305
|
invalid_for_country_and_province_instructional: Introduce un código postal
|
306
|
-
válido para %{province}, %{country}
|
306
|
+
válido para %{province}, %{country}
|
307
307
|
invalid_for_country_and_province_informative: El código postal no coincide
|
308
308
|
con %{province}, %{country}.
|
309
309
|
not_supported_instructional: El código postal no se admite. Introduce
|
310
310
|
una nueva dirección e inténtalo de nuevo.
|
311
311
|
unknown_for_province_instructional: Introduce un código postal válido
|
312
|
-
para %{province}
|
313
|
-
unknown_for_province_informative: El código postal no es válido para %{province}
|
312
|
+
para %{province}
|
313
|
+
unknown_for_province_informative: El código postal no es válido para %{province}
|
314
314
|
blocked_address_instructional: No se admite esta ubicación.
|
315
315
|
blocked_address_informative: No se admite esta ubicación.
|
316
316
|
too_long_instructional: El código postal es demasiado largo.
|
@@ -363,7 +363,7 @@ es:
|
|
363
363
|
contains_url_informative: El nombre de la calle no puede contener una
|
364
364
|
URL.
|
365
365
|
street_unknown_for_zip_instructional: Introduce una calle válida para
|
366
|
-
el código postal %{zip}
|
366
|
+
el código postal %{zip}
|
367
367
|
street_unknown_for_zip_informative: La calle no es válida para el código
|
368
368
|
postal %{zip}.
|
369
369
|
unknown_for_address_instructional: Puede que la calle no sea correcta.
|
@@ -444,13 +444,13 @@ es:
|
|
444
444
|
URL.
|
445
445
|
contains_url_informative: El nombre del vecindario no puede contener URL.
|
446
446
|
unknown_for_city_instructional: Introduce un nombre de vecindario válido
|
447
|
-
para %{city}
|
447
|
+
para %{city}
|
448
448
|
unknown_for_city_informative: Introduce un nombre de vecindario válido
|
449
|
-
para %{city}
|
449
|
+
para %{city}
|
450
450
|
unknown_for_zip_instructional: Introduce un nombre de vecindario válido
|
451
|
-
para %{zip}
|
451
|
+
para %{zip}
|
452
452
|
unknown_for_zip_informative: Introduce un nombre de vecindario válido
|
453
|
-
para %{zip}
|
453
|
+
para %{zip}
|
454
454
|
unknown_for_address_instructional: Puede que el vecindario no sea correcto.
|
455
455
|
unknown_for_address_informative: Puede que el vecindario no sea correcto.
|
456
456
|
warnings:
|
@@ -496,9 +496,9 @@ es:
|
|
496
496
|
missing_building_number_informative: Agrega un número de edificio, si
|
497
497
|
existe.
|
498
498
|
street_unknown_for_zip_instructional: Indica un nombre de calle válido
|
499
|
-
para el código postal %{zip}
|
499
|
+
para el código postal %{zip}
|
500
500
|
street_unknown_for_zip_informative: Indica un nombre de calle válido para
|
501
|
-
el código postal %{zip}
|
501
|
+
el código postal %{zip}
|
502
502
|
building_number_invalid_instructional: No se ha podido localizar un número
|
503
503
|
de edificio para %{street}, %{zip}.
|
504
504
|
building_number_invalid_informative: No se ha podido localizar un número
|
data/lib/worldwide/calendar.rb
CHANGED
@@ -4,32 +4,27 @@ require "worldwide/calendar/gregorian"
|
|
4
4
|
|
5
5
|
module Worldwide
|
6
6
|
module Calendar
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
data = YAML.load_file(File.join(Worldwide::Paths::CLDR_ROOT, "week_data.yml"))["first_day"]
|
8
|
+
weekday_numbers = {
|
9
|
+
sun: 0,
|
10
|
+
mon: 1,
|
11
|
+
tue: 2,
|
12
|
+
wed: 3,
|
13
|
+
thu: 4,
|
14
|
+
fri: 5,
|
15
|
+
sat: 6,
|
16
|
+
}
|
17
|
+
FIRST_DAY_DATA = data.each_with_object({}) do |(day, territories), memo|
|
18
|
+
territories.each do |territory|
|
19
|
+
memo[territory.to_sym] = weekday_numbers.fetch(day.to_sym)
|
10
20
|
end
|
21
|
+
end
|
22
|
+
FIRST_DAY_DATA.freeze
|
23
|
+
private_constant :FIRST_DAY_DATA
|
11
24
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
return @first_day_data if defined?(@first_day_data)
|
16
|
-
|
17
|
-
weekday_numbers = {
|
18
|
-
sun: 0,
|
19
|
-
mon: 1,
|
20
|
-
tue: 2,
|
21
|
-
wed: 3,
|
22
|
-
thu: 4,
|
23
|
-
fri: 5,
|
24
|
-
sat: 6,
|
25
|
-
}
|
26
|
-
|
27
|
-
data = YAML.load_file(File.join(Worldwide::Paths::CLDR_ROOT, "week_data.yml"))["first_day"]
|
28
|
-
@first_day_data = data.each_with_object({}) do |(day, territories), memo|
|
29
|
-
territories.each do |territory|
|
30
|
-
memo[territory.to_sym] = weekday_numbers.fetch(day.to_sym)
|
31
|
-
end
|
32
|
-
end
|
25
|
+
class << self
|
26
|
+
def first_week_day(territory_code)
|
27
|
+
FIRST_DAY_DATA[territory_code.to_sym] || FIRST_DAY_DATA.fetch(:"001")
|
33
28
|
end
|
34
29
|
end
|
35
30
|
end
|
@@ -26,7 +26,10 @@ module Worldwide
|
|
26
26
|
private
|
27
27
|
|
28
28
|
def cldr_defined_parents
|
29
|
-
@cldr_defined_parents ||= YAML.load_file(
|
29
|
+
@cldr_defined_parents ||= YAML.load_file(
|
30
|
+
File.join(Worldwide::Paths::CLDR_ROOT, "parent_locales.yml"),
|
31
|
+
symbolize_names: true,
|
32
|
+
).transform_values(&:to_sym)
|
30
33
|
end
|
31
34
|
|
32
35
|
def ancestry(locale)
|
data/lib/worldwide/currencies.rb
CHANGED
@@ -4,15 +4,24 @@ module Worldwide
|
|
4
4
|
module Currencies
|
5
5
|
include Enumerable
|
6
6
|
extend self
|
7
|
-
|
8
|
-
|
7
|
+
|
8
|
+
CURRENCY_CODES = YAML.safe_load_file(
|
9
|
+
File.join(Worldwide::Paths::OTHER_DATA_ROOT, "currency/codes.yml"),
|
10
|
+
freeze: true,
|
11
|
+
)
|
12
|
+
private_constant :CURRENCY_CODES
|
13
|
+
|
14
|
+
NUMERIC_THREE_TO_ALPHA_THREE_DB = CURRENCY_CODES.to_h do |key, value|
|
15
|
+
[value["three_digit_code"].to_i, key.to_s.upcase.to_sym]
|
16
|
+
end.freeze
|
17
|
+
private_constant :NUMERIC_THREE_TO_ALPHA_THREE_DB
|
9
18
|
|
10
19
|
def each(&block)
|
11
|
-
|
20
|
+
ALL_CURRENCIES.each(&block)
|
12
21
|
end
|
13
22
|
|
14
23
|
def all
|
15
|
-
|
24
|
+
ALL_CURRENCIES
|
16
25
|
end
|
17
26
|
|
18
27
|
# Convert ISO-4217 numeric-three code to ISO-4217 alpha-three code
|
@@ -23,39 +32,25 @@ module Worldwide
|
|
23
32
|
else
|
24
33
|
numeric_code&.to_s&.to_i
|
25
34
|
end
|
26
|
-
|
35
|
+
NUMERIC_THREE_TO_ALPHA_THREE_DB[lookup_code]&.to_s
|
27
36
|
end
|
28
37
|
|
29
38
|
# Convert ISO-4217 alpha-three code to ISO-4217 numeric-three code
|
30
39
|
# Note that we support some currencies (e.g. JEP) that are not recognized by ISO,
|
31
40
|
# and there is no numeric-three code for these currencies, so nil will be returned.
|
32
41
|
def numeric_code_for(alpha_code)
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def all_currencies
|
39
|
-
@all_currencies ||= begin
|
40
|
-
currencies = {}
|
41
|
-
YAML.load_file(CURRENCIES_FILE_PATH)["en"]["currencies"].map do |code, _name|
|
42
|
-
currencies[code] = Currency.new(code: code)
|
43
|
-
end.sort_by(&:currency_code)
|
44
|
-
end
|
42
|
+
CURRENCY_CODES.dig(alpha_code&.to_s&.upcase, "three_digit_code")&.to_i
|
45
43
|
end
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
def numeric_three_to_alpha_three_db
|
56
|
-
@map_numeric_three_to_alpha_three ||= currency_codes.to_h do |key, value|
|
57
|
-
[value["three_digit_code"].to_i, key.to_s.upcase.to_sym]
|
58
|
-
end
|
45
|
+
currencies = YAML.load_file(
|
46
|
+
File.join(Worldwide::Paths::CLDR_ROOT, "locales/en/currencies.yml"),
|
47
|
+
freeze: true,
|
48
|
+
)
|
49
|
+
ALL_CURRENCIES = currencies["en"]["currencies"].map do |code, _name|
|
50
|
+
Currency.new(code: code)
|
59
51
|
end
|
52
|
+
ALL_CURRENCIES.sort_by!(&:currency_code)
|
53
|
+
ALL_CURRENCIES.freeze
|
54
|
+
private_constant :ALL_CURRENCIES
|
60
55
|
end
|
61
56
|
end
|
data/lib/worldwide/locale.rb
CHANGED
@@ -2,13 +2,6 @@
|
|
2
2
|
|
3
3
|
module Worldwide
|
4
4
|
class Locale
|
5
|
-
class << self
|
6
|
-
def unknown
|
7
|
-
# Special CLDR value
|
8
|
-
@unknown = Locale.new("und")
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
5
|
attr_reader :code
|
13
6
|
|
14
7
|
def initialize(code)
|
@@ -20,6 +13,10 @@ module Worldwide
|
|
20
13
|
@name_cache = {}
|
21
14
|
end
|
22
15
|
|
16
|
+
# Special CLDR value
|
17
|
+
@unknown = new("und")
|
18
|
+
singleton_class.attr_reader(:unknown)
|
19
|
+
|
23
20
|
def language_subtag
|
24
21
|
code.to_s.split("-", 2).first
|
25
22
|
end
|
data/lib/worldwide/region.rb
CHANGED
@@ -287,7 +287,7 @@ module Worldwide
|
|
287
287
|
end
|
288
288
|
|
289
289
|
def world_yml
|
290
|
-
@world_yml ||= YAML.load_file(File.join(Worldwide::Paths::DB_DATA_ROOT, "world.yml"))
|
290
|
+
@world_yml ||= YAML.load_file(File.join(Worldwide::Paths::DB_DATA_ROOT, "world.yml"), freeze: true)
|
291
291
|
end
|
292
292
|
end
|
293
293
|
end
|
data/lib/worldwide/version.rb
CHANGED
data/lib/worldwide.rb
CHANGED
@@ -17,8 +17,8 @@ require "worldwide/address_validator"
|
|
17
17
|
require "worldwide/calendar"
|
18
18
|
require "worldwide/cldr"
|
19
19
|
require "worldwide/cldr/context_transforms"
|
20
|
-
require "worldwide/currencies"
|
21
20
|
require "worldwide/currency"
|
21
|
+
require "worldwide/currencies"
|
22
22
|
require "worldwide/deprecated_time_zone_mapper"
|
23
23
|
require "worldwide/discounts"
|
24
24
|
require "worldwide/fields"
|
@@ -109,4 +109,6 @@ module Worldwide
|
|
109
109
|
Units
|
110
110
|
end
|
111
111
|
end
|
112
|
+
|
113
|
+
Regions.instance # eagerload
|
112
114
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worldwide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -8505,7 +8505,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
8505
8505
|
- !ruby/object:Gem::Version
|
8506
8506
|
version: '0'
|
8507
8507
|
requirements: []
|
8508
|
-
rubygems_version: 3.5.
|
8508
|
+
rubygems_version: 3.5.18
|
8509
8509
|
signing_key:
|
8510
8510
|
specification_version: 4
|
8511
8511
|
summary: Internationalization and localization APIs
|