worldwide 1.9.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -1
  3. data/Gemfile.lock +1 -1
  4. data/db/data/regions/AE/es.yml +2 -2
  5. data/db/data/regions/AE.yml +14 -0
  6. data/db/data/regions/AU/es.yml +4 -4
  7. data/db/data/regions/AZ/es.yml +2 -2
  8. data/db/data/regions/BD/es.yml +2 -2
  9. data/db/data/regions/BE.yml +3 -0
  10. data/db/data/regions/BR.yml +2 -0
  11. data/db/data/regions/CA/es.yml +1 -1
  12. data/db/data/regions/CL/es.yml +4 -4
  13. data/db/data/regions/CL.yml +2 -0
  14. data/db/data/regions/CR/es.yml +2 -2
  15. data/db/data/regions/DE.yml +3 -0
  16. data/db/data/regions/ES.yml +2 -0
  17. data/db/data/regions/GB/es.yml +2 -2
  18. data/db/data/regions/IL/es.yml +1 -1
  19. data/db/data/regions/IL.yml +3 -0
  20. data/db/data/regions/IN/es.yml +4 -4
  21. data/db/data/regions/KR/es.yml +1 -1
  22. data/db/data/regions/KW/es.yml +2 -2
  23. data/db/data/regions/LK/es.yml +1 -1
  24. data/db/data/regions/MX/es.yml +4 -4
  25. data/db/data/regions/MX.yml +4 -0
  26. data/db/data/regions/NG/es.yml +2 -2
  27. data/db/data/regions/NL.yml +2 -0
  28. data/db/data/regions/PA/es.yml +2 -2
  29. data/db/data/regions/PE/es.yml +2 -2
  30. data/db/data/regions/PH/es.yml +4 -4
  31. data/db/data/regions/SA/es.yml +2 -2
  32. data/db/data/regions/TR/es.yml +2 -2
  33. data/db/data/regions/TW/es.yml +2 -2
  34. data/db/data/regions/US/es.yml +5 -5
  35. data/db/data/regions/VN/es.yml +2 -2
  36. data/db/data/regions/XK/es.yml +1 -1
  37. data/db/data/regions/_default/es.yml +22 -22
  38. data/lib/worldwide/deprecated_time_zone_mapper.rb +1 -0
  39. data/lib/worldwide/region.rb +6 -0
  40. data/lib/worldwide/regions_loader.rb +1 -0
  41. data/lib/worldwide/version.rb +1 -1
  42. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a8ccc240633a76f5c8a4873ce0b1034429bc746e8acb52b1813297aecf4f35f
4
- data.tar.gz: c82d68acb68d959683b2a19c6dd54152e5ad76e1dbfe65b6898c16d82a0a26b9
3
+ metadata.gz: 201314dc59d2e10fb46c16cd4cac2ddb6a345074226567b221340660f53d6936
4
+ data.tar.gz: 0acd813a2beea616bff276a474783d38f101dd6d875d24fbbc34862a7b3c1844
5
5
  SHA512:
6
- metadata.gz: 3101d0215fcfc3f1e488571ce66d4e3301f6a9c49124efa162704332dd1ca551cb0adf961f3644621e687486a1c7525a6d2b96d759e51dcce308ed930a35f735
7
- data.tar.gz: 76b817ece1b5ae48d6a4eaf92c262c8e22029068ffeb10519ff18252e839f4b54b8455c768b0abe5eaf51c66f1232657b11cf0ed2836a447f184f82e702247cc
6
+ metadata.gz: b8d0b34eccbde7cbf76254c9ca50e21d4a1bfd93f9b0ba7a75a12532d8152378572c184fccdb6749e3ee2efa7d62d9586a904333583d293acd3f6968c1da592d
7
+ data.tar.gz: cfbfeebf34e7b3c4b68d6c9c0e5da78fa1627b0fe7248a3cdc3ea74cde3292adbeab3be86c97391e56f32016de23fa357cc9c265e070fc90896f3c6782b7eb77
data/CHANGELOG.md CHANGED
@@ -26,10 +26,19 @@ 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.
30
29
 
31
30
  ---
32
31
 
32
+ ## [1.11.0] - 2024-10-02
33
+ - Add address1_regex to regions [#281](https://github.com/Shopify/worldwide/pull/281)
34
+ - Add address1_regex for BE, CL, MX, ES, IL [#282](https://github.com/Shopify/worldwide/pull/282)
35
+ - Add address1_regex for DE [#286](https://github.com/Shopify/worldwide/pull/286)
36
+ - Update legacy timezone mappings for Europe/Kiev [#288](https://github.com/Shopify/worldwide/pull/288)
37
+
38
+
39
+ ## [1.10.0] - 2024-09-16
40
+ - Add alternate Arabic names for UAE zones [#283](https://github.com/Shopify/worldwide/pull/283)
41
+
33
42
  ## [1.9.0] - 2024-08-12
34
43
  - add support for additional address fields streetName, streetNumber in DE [#273](https://github.com/Shopify/worldwide/pull/273)
35
44
  - set additional_field neighborhood as required in BR [#279](https://github.com/Shopify/worldwide/pull/279)
data/Gemfile.lock CHANGED
@@ -13,7 +13,7 @@ GIT
13
13
  PATH
14
14
  remote: .
15
15
  specs:
16
- worldwide (1.9.0)
16
+ worldwide (1.11.0)
17
17
  activesupport (>= 7.0)
18
18
  i18n
19
19
  phonelib (~> 0.8)
@@ -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.
@@ -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
@@ -28,8 +28,8 @@ es:
28
28
  contener HTML.
29
29
  province:
30
30
  label:
31
- default: Estado/territorio
32
- optional: Estado/territorio (opcional)
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.
@@ -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
@@ -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
@@ -31,6 +31,9 @@ format:
31
31
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{country}_{phone}"
32
32
  format_extended:
33
33
  edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{address2}_{zip}{city}_{phone}"
34
+ address1_regex:
35
+ - "^(?<streetName>[^\\d,]+),? (?<streetNumber>\\d+(?: ?[a-z])?)$"
36
+ - "^(?<streetNumber>\\d+(?: ?[a-z])?),? (?<streetName>[^\\d,]+)$"
34
37
  additional_address_fields:
35
38
  - name: streetName
36
39
  required: true
@@ -28,6 +28,8 @@ format:
28
28
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city} {province}_{country}_{phone}"
29
29
  format_extended:
30
30
  edit: "{country}_{firstName}{lastName}_{company}_{zip}_{streetName}{streetNumber}_{line2}{neighborhood}_{city}{province}_{phone}"
31
+ address1_regex:
32
+ - "^(?<streetName>(?!.*\\bnúmero\\b)[^\\d,]+(?<!\\s))(?:,? ?)(?<streetNumber>\\d+(?: ?[a-z])?)$"
31
33
  additional_address_fields:
32
34
  - name: streetName
33
35
  required: true
@@ -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}.
@@ -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:
@@ -16,6 +16,8 @@ format:
16
16
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{province}_{country}_{phone}"
17
17
  format_extended:
18
18
  edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{line2}{neighborhood}_{zip}{city}_{province}_{phone}"
19
+ address1_regex:
20
+ - "^(?<streetName>[^\\d,]+?),? (?<streetNumber>(?:n|n\\.|nº|número|no\\.|no|#)? ?\\d+(?: ?[a-z])?)$"
19
21
  additional_address_fields:
20
22
  - name: streetName
21
23
  required: true
@@ -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.
@@ -29,6 +29,9 @@ format:
29
29
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{country}_{phone}"
30
30
  format_extended:
31
31
  edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{address2}_{zip}{city}_{phone}"
32
+ address1_regex:
33
+ - "^(?<streetName>[^\\d,]+?\\.?)[, ]{1,2}(?<streetNumber>\\d+(?: ?[a-z])?)$"
34
+ - "^(?<streetName>[^\\d,]+\\.)(?<streetNumber>\\d+(?: ?[a-z])?)$"
32
35
  additional_address_fields:
33
36
  - name: streetName
34
37
  required: true
@@ -29,6 +29,8 @@ format:
29
29
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{province}_{country}_{phone}"
30
30
  format_extended:
31
31
  edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{address2}_{zip}{city}{province}_{phone}"
32
+ address1_regex:
33
+ - "^(?<streetName>[^\\d,]+?),? (?<streetNumber>(?:n|n\\.|nº|número|no\\.|no|#)? ?\\d+(?: ?[a-z])?)$"
32
34
  additional_address_fields:
33
35
  - name: streetName
34
36
  required: true
@@ -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.
@@ -6,5 +6,5 @@ es:
6
6
  zip:
7
7
  errors:
8
8
  invalid_instructional: Introduce un código postal de siete dígitos válido
9
- para Israel.
9
+ para Israel
10
10
  invalid_informative: El código postal no es válido.
@@ -18,6 +18,9 @@ format:
18
18
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{country}_{phone}"
19
19
  format_extended:
20
20
  edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{address2}_{zip}{city}_{phone}"
21
+ address1_regex:
22
+ - "^(?<streetName>[^\\d,]+),? (?<streetNumber>\\d+(?:\/\\d+)?)$"
23
+ - "^(?<streetNumber>\\d+(?:\/\\d+)?),? (?<streetName>[^\\d,]+)$"
21
24
  additional_address_fields:
22
25
  - name: streetName
23
26
  required: true
@@ -12,17 +12,17 @@ es:
12
12
  blank_informative: Falta el estado.
13
13
  zip:
14
14
  label:
15
- default: Número de índice postal
16
- optional: Número de índice postal (opcional)
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
@@ -13,5 +13,5 @@ es:
13
13
  zip:
14
14
  errors:
15
15
  invalid_instructional: Introduce un código postal de cinco dígitos válido
16
- para Corea del Sur.
16
+ para Corea del Sur
17
17
  invalid_informative: Falta el código postal.
@@ -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.
@@ -6,5 +6,5 @@ es:
6
6
  zip:
7
7
  errors:
8
8
  invalid_for_country_instructional: Escribe un código postal válido para
9
- Sri Lanka o deja el campo en blanco.
9
+ Sri Lanka o deja el campo en blanco
10
10
  invalid_for_country_informative: El código postal no es válido.
@@ -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:
@@ -17,6 +17,8 @@ format:
17
17
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city} {province}_{country}_{phone}"
18
18
  format_extended:
19
19
  edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{line2}{neighborhood}_{zip}{city}{province}_{phone}"
20
+ address1_regex:
21
+ - "^(?<streetName>[^\\d,]+?),? (?<streetNumber>(?:n|n\\.|nº|número|no\\.|no|#)? ?\\d+(?: ?[a-z])?)$"
20
22
  additional_address_fields:
21
23
  - name: streetName
22
24
  required: true
@@ -96,6 +98,8 @@ zones:
96
98
  tax: 0.0
97
99
  tax_name: State Tax
98
100
  - name: Coahuila
101
+ name_alternates:
102
+ - Coahuila de Zaragoza
99
103
  code: COAH
100
104
  code_alternates:
101
105
  - COA
@@ -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
@@ -30,6 +30,8 @@ format:
30
30
  show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{country}_{phone}"
31
31
  format_extended:
32
32
  edit: "{country}_{firstName}{lastName}_{company}_{streetName}{streetNumber}_{address2}_{zip}{city}_{phone}"
33
+ address1_regex:
34
+ - "^(?<streetName>[^\\d]+) (?<streetNumber>\\d+(?: ?[a-z])?)$"
33
35
  additional_address_fields:
34
36
  - name: streetName
35
37
  required: true
@@ -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.
@@ -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.
@@ -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:
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -6,5 +6,5 @@ es:
6
6
  zip:
7
7
  errors:
8
8
  invalid_for_country_instructional: Escribe un código postal válido para
9
- Kosovo o deja el campo en blanco.
9
+ Kosovo o deja el campo en blanco
10
10
  invalid_for_country_informative: El código postal no es válido.
@@ -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
@@ -57,6 +57,7 @@ module Worldwide
57
57
  "Etc/UCT": "UTC",
58
58
  "Etc/Universal": "UTC",
59
59
  "Etc/Zulu": "UTC",
60
+ "Europe/Kiev": "Europe/Kyiv",
60
61
  GB: "Europe/London",
61
62
  "GB-Eire": "Europe/London",
62
63
  "GMT+0": "Etc/GMT",
@@ -36,6 +36,7 @@ module Worldwide
36
36
  :zip_requirement,
37
37
  :additional_address_fields,
38
38
  :combined_address_format,
39
+ :address1_regex,
39
40
  ]
40
41
 
41
42
  # A region may have more than one parent.
@@ -208,6 +209,9 @@ module Worldwide
208
209
  # A hash of the rules for concatening the additional address fields into the standard fields
209
210
  attr_accessor :combined_address_format
210
211
 
212
+ # An array of regex patterns of the address1 field, capturing the supported additional address fields
213
+ attr_accessor :address1_regex
214
+
211
215
  def initialize(
212
216
  alpha_three: nil,
213
217
  continent: false,
@@ -245,12 +249,14 @@ module Worldwide
245
249
 
246
250
  @additional_address_fields = []
247
251
  @combined_address_format = {}
252
+ @address1_regex = []
248
253
  @building_number_required = false
249
254
  @building_number_may_be_in_address2 = false
250
255
  @currency = nil
251
256
  @flag = nil
252
257
  @format = {}
253
258
  @format_extended = {}
259
+ @name_alternates = []
254
260
  @group = nil
255
261
  @group_name = nil
256
262
  @languages = []
@@ -97,6 +97,7 @@ module Worldwide
97
97
  def apply_territory_attributes(region, spec)
98
98
  region.additional_address_fields = spec["additional_address_fields"] || []
99
99
  region.combined_address_format = spec["combined_address_format"] || {}
100
+ region.address1_regex = spec["address1_regex"] || []
100
101
  region.building_number_required = spec["building_number_required"] || false
101
102
  region.building_number_may_be_in_address2 = spec["building_number_may_be_in_address2"] || false
102
103
  currency_code = spec["currency"]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Worldwide
4
- VERSION = "1.9.0"
4
+ VERSION = "1.11.0"
5
5
  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.9.0
4
+ version: 1.11.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-08-21 00:00:00.000000000 Z
11
+ date: 2024-10-02 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.17
8508
+ rubygems_version: 3.5.20
8509
8509
  signing_key:
8510
8510
  specification_version: 4
8511
8511
  summary: Internationalization and localization APIs