vehicles 0.6.1 → 0.8.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.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +274 -0
- data/README.md +55 -10
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +5 -4
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +1 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +553 -118
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +228 -32
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +44 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +319 -96
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +17 -3
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +21 -2
- data/lib/vehicles/plates/series.rb +172 -18
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +12 -0
- data/lib/vehicles/providers/hosted_provider.rb +28 -55
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +32 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +164 -2
data/data/plates/hr.yml
ADDED
|
@@ -0,0 +1,860 @@
|
|
|
1
|
+
# plates/hr.yml — Croatia (PRD-PLATES gate L1, wave 2).
|
|
2
|
+
#
|
|
3
|
+
# EVERY format, colour and class claim in this file is read from Narodne novine
|
|
4
|
+
# — the Croatian official gazette — in the instruments' own published text, on
|
|
5
|
+
# 2026-08-02. Five instruments carry the file:
|
|
6
|
+
# * Pravilnik o registraciji i označavanju vozila, NN 130/2017 (27.12.2017.)
|
|
7
|
+
# — THE CURRENT BASE. Čl. 18 (the plate), čl. 21-22 (to-order and by-choice
|
|
8
|
+
# marks), čl. 24 (diplomatic), čl. 25 (when a new mark is issued),
|
|
9
|
+
# čl. 34 (test), čl. 39 (transferable), čl. 44 (export), čl. 47-48
|
|
10
|
+
# (deregistration and change of owner), čl. 52 + Prilog 1 (the area codes).
|
|
11
|
+
# * Pravilnik o izmjenama i dopunama …, NN 45/2016 (13.5.2016.) — THE EU-BAND
|
|
12
|
+
# AMENDMENT and the ownership-transfer reform. Čl. 10 dates both.
|
|
13
|
+
# * Pravilnik o registraciji i označavanju vozila, NN 151/2008 (23.12.2008.)
|
|
14
|
+
# — the previous base; the origin of the by-choice, oldtimer (PV),
|
|
15
|
+
# transferable (PP) and export (RH) series.
|
|
16
|
+
# * Pravilnik o registraciji vozila na motorni pogon i priključnih vozila,
|
|
17
|
+
# NN 12/1993 (5.2.1993.) — the founding independent-Croatia instrument.
|
|
18
|
+
# * Pravilnik o registraciji i označavanju vozila Ministarstva obrane i
|
|
19
|
+
# Oružanih snaga RH, NN 71/2018 (4.8.2018.) — the military system, which is
|
|
20
|
+
# a SEPARATE pravilnik under a separate enabling provision.
|
|
21
|
+
#
|
|
22
|
+
# THE SIX STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
23
|
+
#
|
|
24
|
+
# 1. THE CODE LIST IS IN THE REGULATION, like Austria's Anlage 5d and unlike
|
|
25
|
+
# Germany's Bundesanzeiger list. Čl. 52 st. 2 NN 130/2017: "Popis oznaka
|
|
26
|
+
# registracijskih područja nalazi se u Prilogu 1. koji je tiskan uz ovaj
|
|
27
|
+
# Pravilnik i njegov je sastavni dio." Thirty-four codes, extracted
|
|
28
|
+
# mechanically into hr-cities.yml. No Wikipedia table was used for it.
|
|
29
|
+
#
|
|
30
|
+
# 2. THE SERIAL GRAMMAR HAS NOT CHANGED SINCE 1993. Čl. 18 st. 2 NN 130/2017:
|
|
31
|
+
# "Registarski broj vozila sastoji se od tri ili četiri numeričke i jedne
|
|
32
|
+
# ili dvije slovne oznake." Čl. 18 NN 12/1993, verbatim, thirty-three years
|
|
33
|
+
# earlier: "Registarski broj vozila sastoji se od tri ili četiri numeričke i
|
|
34
|
+
# jedne ili dvije slovne oznake." Word for word. Every Croatian series break
|
|
35
|
+
# in this file is therefore a DESIGN break, never a format break.
|
|
36
|
+
#
|
|
37
|
+
# 3. THE EU BAND ARRIVED IN 2016, NOT AT ACCESSION IN 2013 — and this is the
|
|
38
|
+
# instrument-date rule earning its keep. Croatia acceded on 1 July 2013 and
|
|
39
|
+
# NN 83/2013 is dated 1.7.2013, but that amendment does not touch the plate:
|
|
40
|
+
# it rewrites čl. 5 (registration of EEA nationals), čl. 40 and čl. 50. The
|
|
41
|
+
# band comes from NN 45/2016 čl. 2, which rewrote čl. 13 st. 1 to add "Na
|
|
42
|
+
# krajnjoj lijevoj strani registarske pločice otisnuta je oznaka Republike
|
|
43
|
+
# Hrvatske sukladno Uredbi Vijeća (EZ) broj 2411/98". And NN 45/2016's own
|
|
44
|
+
# čl. 10 gives the date, which is neither its gazette date nor 2013:
|
|
45
|
+
# "Ovaj Pravilnik objavit će se u »Narodnim novinama«, a stupa na snagu
|
|
46
|
+
# 4. srpnja 2016. godine." Published 13 May 2016, in force 4 JULY 2016.
|
|
47
|
+
# THREE YEARS AND THREE DAYS after accession.
|
|
48
|
+
#
|
|
49
|
+
# 4. THE 2016 REFORM ALSO CUT THE PLATE LOOSE FROM THE OWNER. NN 45/2016 čl. 5
|
|
50
|
+
# replaced čl. 40 outright. Before: the SELLER deregistered and returned the
|
|
51
|
+
# plates, and they could pass to the buyer only "ako su kupoprodajnim
|
|
52
|
+
# ugovorom ili pisanom izjavom … ustupljene kupcu i AKO SE PRI PROMJENI
|
|
53
|
+
# VLASNIŠTVA NE MIJENJA REGISTRACIJSKO PODRUČJE" (NN 151/2008 čl. 40 st. 3).
|
|
54
|
+
# After: "novi vlasnik vozila dužan je u roku od 15 dana od stjecanja vozila
|
|
55
|
+
# registrirati vozilo na svoje ime ili ga odjaviti" — the duty is the
|
|
56
|
+
# BUYER'S and surrender drops out of the sale case. Carried forward verbatim
|
|
57
|
+
# as čl. 48 st. 1 NN 130/2017. What SURVIVES is čl. 25 st. 1: a new mark is
|
|
58
|
+
# still issued "za vozilo koje se registrira u drugom registracijskom
|
|
59
|
+
# području". So the code is not severed from geography — it is frozen at
|
|
60
|
+
# issue. The full caveat is stated inside hr-cities.yml, where a consumer
|
|
61
|
+
# who never reads this file will still meet it.
|
|
62
|
+
#
|
|
63
|
+
# 5. SIX OF THE THIRTY-FOUR AREA CODES CANNOT BE SPELLED BY THIS DATASET.
|
|
64
|
+
# ČK, KŽ, PŽ, ŠI, VŽ and ŽU carry a caron; the serial alphabet in
|
|
65
|
+
# plates/_meta/separators.yml is A-Z 0-9. Every `[A-Z]{2}` prefix below is
|
|
66
|
+
# therefore NARROWER than the issuing grammar for those six areas — still
|
|
67
|
+
# `matching: strict` per PRD-PLATES §2.7 (narrower is strict), but a
|
|
68
|
+
# consumer matching a photographed plate must ASCII-fold first. The
|
|
69
|
+
# regulation knows the problem: čl. 22 st. 7 refuses a by-choice mark that
|
|
70
|
+
# could "doći do dupliranja prilikom transliteracije registarskih brojeva".
|
|
71
|
+
# Extending the serial alphabet is a §2.6 schema amendment and is NOT
|
|
72
|
+
# attempted here. `code_ascii` in hr-cities.yml carries our fold.
|
|
73
|
+
#
|
|
74
|
+
# 6. THE PLATE DIMENSIONS ARE A RECORDED GAP, HONESTLY. The pravilnik gives no
|
|
75
|
+
# millimetres for registarske pločice: čl. 18 st. 5-7 delegates "oblik i
|
|
76
|
+
# sadržaj" to Obrasci 3-6, which are DIMENSIONED DRAWINGS. Narodne novine
|
|
77
|
+
# publishes them as 229x70-pixel rasters in which the dimension figures are
|
|
78
|
+
# not legible. Two of them are big enough to read and are recorded as spec
|
|
79
|
+
# (Obrazac 4 = 280 x 200 mm, Obrazac 5 = 180 x 180 mm); the single-line
|
|
80
|
+
# plate's 520 x 110 mm is carried as `secondary-wikipedia` and labelled as
|
|
81
|
+
# such, because guessing it from the EU norm would be a guess.
|
|
82
|
+
#
|
|
83
|
+
# WHAT IS NOT IN THIS FILE, and why. Croatian POLICE plates (reportedly six
|
|
84
|
+
# digits in two groups, blue on white) are NOT modelled: no instrument
|
|
85
|
+
# prescribing them was reached in this pass, and the civil pravilnik does not
|
|
86
|
+
# mention them. Recorded as a gap rather than filled from an enthusiast
|
|
87
|
+
# description. Likewise the 1990s code list (the popis attached to NN 12/93,
|
|
88
|
+
# 22/93, 19/96, 149/02), which NN 12/1993 čl. 34 expressly kept alive for a
|
|
89
|
+
# transitional period and which was not fetched.
|
|
90
|
+
# The registration-area position prints six codes with a caron (ČK KŽ PŽ ŠI
|
|
91
|
+
# VŽ ŽU). Declared here in exact codepoints per PRD-PLATES §2.6 so the regexes
|
|
92
|
+
# below can express the plate's REAL alphabet instead of an ASCII shadow of it.
|
|
93
|
+
# The SERIAL-suffix position does NOT carry diacritics — see regex_strict, which
|
|
94
|
+
# enumerates the Croatian alphabet without them — so only the AREA position is
|
|
95
|
+
# widened. One pattern token `L`, two different letter alphabets.
|
|
96
|
+
serial_alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ČŠŽ"
|
|
97
|
+
jurisdiction: hr
|
|
98
|
+
authority:
|
|
99
|
+
name: Ministarstvo unutarnjih poslova Republike Hrvatske — Pravilnik o registraciji i označavanju vozila
|
|
100
|
+
url: "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html"
|
|
101
|
+
binding: vehicle
|
|
102
|
+
binding_note: >-
|
|
103
|
+
The mark is assigned to the VEHICLE at registration and, since 2016-07-04,
|
|
104
|
+
survives a change of owner without being surrendered (NN 130/2017 čl. 48
|
|
105
|
+
st. 1). Vehicle-keyed consumers may join on it. Two qualifications: čl. 25
|
|
106
|
+
st. 1 re-issues the mark when the vehicle is registered in a different
|
|
107
|
+
registration area, and čl. 47 st. 7 lets a surrendered plate be taken over
|
|
108
|
+
by "druga osoba na temelju ovjerene izjave vlasnika registarskih pločica o
|
|
109
|
+
ustupanju" — a plate can move to another person's vehicle.
|
|
110
|
+
instrument:
|
|
111
|
+
citation: "Pravilnik o registraciji i označavanju vozila, »Narodne novine« br. 130/2017"
|
|
112
|
+
enabling: "Zakon o sigurnosti prometa na cestama, čl. 242 st. 4 — the delegation named in the pravilnik's own preamble"
|
|
113
|
+
objava: "2017-12-27"
|
|
114
|
+
stupanje_na_snagu: "2018-01-01"
|
|
115
|
+
stupanje_source: "Čl. 59 NN 130/2017, verbatim: 'Ovaj Pravilnik objavit će se u »Narodnim novinama«, a stupa na snagu 1. siječnja 2018. godine, osim članka 7. stavka 3., 4. i 5., članka 12. stavka 3. i 4., članka 18. stavka 7. … koji stupaju na snagu 20. svibnja 2018. godine.'"
|
|
116
|
+
predecessors:
|
|
117
|
+
- "NN 151/2008 (23.12.2008.), in force on the eighth day after publication — Pravilnik o registraciji i označavanju vozila; amended by NN 89/2010, 104/2010, 83/2013, 52/2015, 45/2016"
|
|
118
|
+
- "NN 12/1993 (5.2.1993.), signed 22 January 1993, in force on the eighth day after publication — Pravilnik o registraciji vozila na motorni pogon i priključnih vozila; amended by NN 22/1993, 19/1996, 149/2002"
|
|
119
|
+
- "NN 5/2005 … 68/2007 — Pravilnik o registraciji vozila, named in NN 151/2008 čl. 53 and NOT fetched in this pass (recorded gap)"
|
|
120
|
+
amendment_search: >-
|
|
121
|
+
A title search of the Narodne novine index for "registraciji i označavanju
|
|
122
|
+
vozila" (naslovi=da) on 2026-08-02 returns exactly nine items: the 2008
|
|
123
|
+
base, its five amendments, the 2017 base, and the two military pravilnici.
|
|
124
|
+
NO amendment to NN 130/2017 appears. The file therefore treats NN 130/2017
|
|
125
|
+
as the consolidated current text; if an amendment exists outside the title
|
|
126
|
+
index it is a recorded gap in this pass, not a denial.
|
|
127
|
+
|
|
128
|
+
# ---------------------------------------------------------------------------
|
|
129
|
+
# Jurisdiction-wide facts, cited once and referenced per series.
|
|
130
|
+
# ---------------------------------------------------------------------------
|
|
131
|
+
common:
|
|
132
|
+
plate_text_structure: >-
|
|
133
|
+
Čl. 18 st. 1 NN 130/2017, verbatim and complete: "Registarske pločice za
|
|
134
|
+
vozila izrađene su od metala, presvučene reflektirajućom folijom, bijele su
|
|
135
|
+
boje na kojima je crnim slovima otisnuta oznaka registracijskog područja i
|
|
136
|
+
registarski broj vozila. Na krajnjoj lijevoj strani registarske pločice
|
|
137
|
+
otisnuta je razlikovna oznaka Republike Hrvatske, a između oznake
|
|
138
|
+
registracijskog područja i registarskog broja otisnut je grb Republike
|
|
139
|
+
Hrvatske." Four zones, left to right: EU band — area code — coat of arms —
|
|
140
|
+
registration number.
|
|
141
|
+
colours:
|
|
142
|
+
statute: >-
|
|
143
|
+
The pravilnik states colours as WORDS, never as coordinates: "bijele su
|
|
144
|
+
boje" (white ground), "crnim slovima" (black characters) for the ordinary
|
|
145
|
+
plate; "otisnute brojke i slova zelene su boje" for foreigners' and
|
|
146
|
+
temporarily registered vehicles (čl. 18 st. 3); "crvene su boje" for
|
|
147
|
+
oversize/overweight vehicles (čl. 18 st. 4); "plave su boje … brojke i
|
|
148
|
+
slova su žute boje" for diplomatic (čl. 24 st. 1); "zelene su boje …
|
|
149
|
+
žutim slovima" for export (čl. 44 st. 1).
|
|
150
|
+
hex_basis_rule: >-
|
|
151
|
+
No Croatian instrument in this pass gives a colorimetric specification
|
|
152
|
+
for CIVIL plates — no CIE quadrangle as in Austria, no RAL number. Every
|
|
153
|
+
civil hex below is therefore `hex_basis: observed` and is the obvious
|
|
154
|
+
reading of the colour word, recorded as such. THE MILITARY PRAVILNIK IS
|
|
155
|
+
THE EXCEPTION and is the only sourced colour in the file: NN 71/2018
|
|
156
|
+
čl. 23 st. 1 gives "žute je boje broj 1003, prema RAL-ovu katalogu boja".
|
|
157
|
+
retroreflective: "'presvučene reflektirajućom folijom' — čl. 18 st. 1, unconditional for civil plates. Expressly NOT so for military ones: NN 71/2018 čl. 23 st. 7, 'Registarska pločica za vozila Ministarstva i Oružanih snaga nema reflektirajuća svojstva.'"
|
|
158
|
+
source: "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 18 st. 1-4, čl. 24 st. 1, čl. 44 st. 1. Accessed 2026-08-02"
|
|
159
|
+
alphabet:
|
|
160
|
+
ordinary: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, R, S, T, U, V, Z]
|
|
161
|
+
excluded: [Q, W, X, Y, "Č", "Ć", "Đ", "Š", "Ž"]
|
|
162
|
+
basis: >-
|
|
163
|
+
INFERRED, and labelled as inferred rather than quoted, because no
|
|
164
|
+
provision spells the ordinary series' alphabet directly. Two provisions
|
|
165
|
+
bound it. (1) Čl. 21 NN 130/2017 lets an owner order a plate carrying a
|
|
166
|
+
pre-chosen "registarskim brojem vozila IZ ČLANKA 18. STAVKA 2." — i.e.
|
|
167
|
+
drawn from the ordinary space — and st. 2 then says "Registarski broj iz
|
|
168
|
+
stavka 1. ovoga članka ne može sadržavati slova Č, Ć, Đ, Š i Ž." (2) Čl.
|
|
169
|
+
22 st. 3 says the BY-CHOICE mark "uključuje i strana slova X, Y i W" —
|
|
170
|
+
"also includes the FOREIGN letters X, Y and W", which only parses if they
|
|
171
|
+
are absent from the ordinary set. Q is in neither alphabet: it is not a
|
|
172
|
+
letter of Croatian. The 22 letters above are the Croatian Latin alphabet
|
|
173
|
+
minus its five diacritic letters and minus the digraphs.
|
|
174
|
+
caution: >-
|
|
175
|
+
The area CODE is a different alphabet from the registration NUMBER and
|
|
176
|
+
does carry diacritics (ČK, KŽ, PŽ, ŠI, VŽ, ŽU). Do not apply the 22-letter
|
|
177
|
+
set to the prefix.
|
|
178
|
+
source: "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 21 st. 1-2, čl. 22 st. 3. Accessed 2026-08-02"
|
|
179
|
+
separator:
|
|
180
|
+
printed: "-"
|
|
181
|
+
statute_for_by_choice: >-
|
|
182
|
+
Čl. 22 st. 2, verbatim: "Između brojčanih i slovnih oznaka obvezna je
|
|
183
|
+
crtica, a između slovnih oznaka može se odabrati crtica. Crtica se računa
|
|
184
|
+
kao jedan od znakova." A hyphen is MANDATORY between the digit group and
|
|
185
|
+
the letter group, OPTIONAL between letter groups, and counts against the
|
|
186
|
+
seven-character budget. This is a primary source for the glyph.
|
|
187
|
+
ordinary_series_gap: >-
|
|
188
|
+
For the ORDINARY mark, čl. 18 prescribes no separator glyph at all — the
|
|
189
|
+
hyphen is visible only in Obrazac 3, a drawing. Every ordinary regex here
|
|
190
|
+
therefore spells that position as the separator-only class `[- ]`
|
|
191
|
+
(PRD-PLATES §2.8, the es-consular precedent): the printed hyphen is
|
|
192
|
+
certain from the drawing, its statutory basis is not, and `pattern` shows
|
|
193
|
+
the canonical printed form.
|
|
194
|
+
arms_position: >-
|
|
195
|
+
The gap between the area code and the number is occupied by the ŠAHOVNICA
|
|
196
|
+
(čl. 18 st. 1, "između oznake registracijskog područja i registarskog
|
|
197
|
+
broja otisnut je grb Republike Hrvatske"), not by a separator glyph. It is
|
|
198
|
+
written here as an optional emitted SPACE, exactly as Italy's marchio
|
|
199
|
+
ufficiale is in plates/it.yml.
|
|
200
|
+
source: "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 22 st. 2, čl. 18 st. 1. Accessed 2026-08-02"
|
|
201
|
+
script:
|
|
202
|
+
statute: "Čl. 19 st. 1, verbatim: 'Slovne oznake na registarskim pločicama upisuju se latiničnim pismom, a brojčane oznake arapskim brojkama. Oblik slova i brojki tiskan je na Obrascu 15, a izgled grba na Obrascu 16.'"
|
|
203
|
+
font: >-
|
|
204
|
+
NO TYPEFACE IS NAMED. As in the UK, Germany, Spain and Austria, the legal
|
|
205
|
+
object is a DRAWING — Obrazac 15 — and the render layer must derive glyphs
|
|
206
|
+
from it rather than from any third-party TTF (PRD-PLATES §6). Unlike the
|
|
207
|
+
Austrian KDV, Obrazac 15 publishes no per-glyph millimetres in a form this
|
|
208
|
+
pass could read (see structural fact 6). Recorded gap.
|
|
209
|
+
source: "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 19. Accessed 2026-08-02"
|
|
210
|
+
euro_band:
|
|
211
|
+
side: left
|
|
212
|
+
content: eu-stars+HR
|
|
213
|
+
statute: >-
|
|
214
|
+
Čl. 18 st. 1: "Na krajnjoj lijevoj strani registarske pločice otisnuta je
|
|
215
|
+
razlikovna oznaka Republike Hrvatske". The cross-reference to Reg. (EC)
|
|
216
|
+
2411/98 is in the amending instrument that introduced it (NN 45/2016
|
|
217
|
+
čl. 2) and in čl. 1a st. 2 as inserted by NN 45/2016 čl. 1: "Ovim se
|
|
218
|
+
Pravilnikom uređuje primjena Uredbe Vijeća (EZ) br. 2411/98…".
|
|
219
|
+
oval_still_prescribed: >-
|
|
220
|
+
Čl. 20 keeps the separate adhesive OVAL for international traffic — white,
|
|
221
|
+
major axis 175 mm, minor axis 115 mm, letters "HR" in black 80 mm high
|
|
222
|
+
with a 10 mm stroke — and st. 2 then says that inside the EU the band on
|
|
223
|
+
the plate is accepted instead. These are the only millimetres the
|
|
224
|
+
pravilnik prints for any marking.
|
|
225
|
+
source: "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 18 st. 1, čl. 20 st. 1-2; https://narodne-novine.nn.hr/clanci/sluzbeni/2016_05_45_1165.html # čl. 1-2. Accessed 2026-08-02"
|
|
226
|
+
emblem:
|
|
227
|
+
name: "grb Republike Hrvatske (šahovnica)"
|
|
228
|
+
statute: "Čl. 18 st. 1 places it between the area code and the number; čl. 19 st. 1 delegates its appearance to Obrazac 16."
|
|
229
|
+
artwork_risk: unresearched
|
|
230
|
+
artwork_note: >-
|
|
231
|
+
The Croatian coat of arms is a state symbol whose use is regulated
|
|
232
|
+
independently of copyright, and no assessment was made in this pass.
|
|
233
|
+
PRD-PLATES §3 applies unchanged: `rendered: placeholder` on every series.
|
|
234
|
+
dimensions:
|
|
235
|
+
obrazac_3: { note: "single-line plate for motor vehicles, trailers, tractors and machines — čl. 18 st. 5. Dimensions NOT legible in the published raster; see structural fact 6" }
|
|
236
|
+
obrazac_4: { w: 280, h: 200, unit: mm, basis: read-from-drawing, note: "two-line plate for vehicles whose construction cannot take Obrazac 3 — čl. 18 st. 6. 280 and 200 are the two figures legible in the published drawing" }
|
|
237
|
+
obrazac_5: { w: 180, h: 180, unit: mm, basis: read-from-drawing, note: "motorcycles and quadricycles — čl. 18 st. 7" }
|
|
238
|
+
obrazac_6: { note: "mopeds and light quadricycles — čl. 18 st. 7. Dimensions not legible" }
|
|
239
|
+
source: "https://narodne-novine.nn.hr/files/_web/sluzbeni-dio/2017/130000/images/9529.jpg # Obrazac 4, the dimensioned drawing; https://narodne-novine.nn.hr/files/_web/sluzbeni-dio/2017/130000/images/9521.jpg # Obrazac 5. Accessed 2026-08-02"
|
|
240
|
+
predecessor_system:
|
|
241
|
+
decision: >-
|
|
242
|
+
THE SFRY SERIES IS DELIBERATELY NOT AUTHORED HERE, AND THE SAME DECISION
|
|
243
|
+
IS TAKEN IN plates/si.yml. Croatia and Slovenia both left one federal
|
|
244
|
+
system in 1991, so authoring it in each national file would duplicate a
|
|
245
|
+
single historical layer in two places, give it two ids, and invite the two
|
|
246
|
+
copies to drift. It belongs in ONE historical jurisdiction file at gate L4
|
|
247
|
+
(PRD-PLATES §7), not twice at L1. What IS recorded here is the hinge, from
|
|
248
|
+
the Croatian primary itself.
|
|
249
|
+
hinge: >-
|
|
250
|
+
NN 12/1993 čl. 34, verbatim: "Danom stupanja na snagu ovoga Pravilnika
|
|
251
|
+
prestaje važiti Pravilnik o registraciji vozila (»Narodne novine«, broj
|
|
252
|
+
46/84.) i Pravilnik o registraciji motornih i priključnih vozila, obrascu
|
|
253
|
+
prometne i vozačke dozvole (»Narodne novine«, broj 54/91., 6/92. i
|
|
254
|
+
35/92.), OSIM POPISA REGISTRACIJSKIH PODRUČJA koja vrijede do isteka roka
|
|
255
|
+
iz članka 322. stavak 1. Zakona o sigurnosti prometa na cestama." NN 46/84
|
|
256
|
+
is the SFRY-era instrument as republished in the Croatian gazette; NN
|
|
257
|
+
54/91 is the first instrument of independent Croatia (1991). Neither was
|
|
258
|
+
fetched in this pass. Note what the article does: it repeals the old rules
|
|
259
|
+
but KEEPS THE OLD AREA-CODE LIST alive transitionally — which is why the
|
|
260
|
+
1990s code set is a recorded gap in hr-cities.yml rather than a guess.
|
|
261
|
+
design_continuity: >-
|
|
262
|
+
The white ground, black characters and the arms-between-groups layout of
|
|
263
|
+
the 1993 plate are commonly described as the Yugoslav design with the red
|
|
264
|
+
star replaced by the šahovnica. That specific claim is secondary and is
|
|
265
|
+
tagged as such; what the primary supports is only that čl. 18 NN 12/1993
|
|
266
|
+
already prescribes exactly the layout still in force.
|
|
267
|
+
transitional_validity: >-
|
|
268
|
+
THE OLD PLATES DID NOT VANISH IN 1991, AND THE PRIMARIES SAY SO TWICE.
|
|
269
|
+
NN 12/1993 čl. 34 repealed the pre-independence pravilnici "OSIM POPISA
|
|
270
|
+
REGISTRACIJSKIH PODRUČJA koja vrijede do isteka roka iz članka 322. stavak
|
|
271
|
+
1. Zakona o sigurnosti prometa na cestama" — the OLD AREA-CODE LIST
|
|
272
|
+
survived the repeal for a statutory transitional period. Fifteen years
|
|
273
|
+
later NN 151/2008 čl. 53 was still winding it down: marks issued under the
|
|
274
|
+
1993 and 2005 popisi "usklađivat će se s Popisom oznaka registracijskih
|
|
275
|
+
područja iz članka 52. stavka 2. ovog Pravilnika KOD PRVE REGISTRACIJE
|
|
276
|
+
VOZILA U REPUBLICI HRVATSKOJ I KOD PROMJENE VLASNIKA" — harmonised on
|
|
277
|
+
first registration or change of owner, i.e. never for a car that simply
|
|
278
|
+
stayed put. This is why "the SFRY series ended in 1991" would be a false
|
|
279
|
+
claim and why the pre-1991 layer is period-tagged `transitional-provision`
|
|
280
|
+
wherever it is eventually authored.
|
|
281
|
+
transitional_validity_evidence: transitional-provision
|
|
282
|
+
transitional_validity_source: "https://narodne-novine.nn.hr/clanci/sluzbeni/2008_12_151_4118.html # NN 151/2008 čl. 53; https://narodne-novine.nn.hr/clanci/sluzbeni/1993_02_12_185.html # NN 12/1993 čl. 34"
|
|
283
|
+
design_continuity_evidence: secondary-wikipedia
|
|
284
|
+
design_continuity_source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Croatia # 'The design of Croatian license plates comes from old Yugoslav license plates from the 1980s … switching the red star … with the coat of arms'. Accessed 2026-08-02"
|
|
285
|
+
source: "https://narodne-novine.nn.hr/clanci/sluzbeni/1993_02_12_185.html # NN 12/1993 čl. 34. Accessed 2026-08-02"
|
|
286
|
+
|
|
287
|
+
region_encoding_tables:
|
|
288
|
+
reference: "plates/_decode/hr-cities.yml"
|
|
289
|
+
bare_filename: "hr-cities.yml"
|
|
290
|
+
reference_note: "the full path is what resolves and is what 77 of the 78 corpus references use; the bare filename is carried alongside because plates/ie.yml (wave 2) references its table bare, and a consumer may meet either form"
|
|
291
|
+
note: >-
|
|
292
|
+
One closed, primary, 34-row table (Prilog 1 NN 130/2017), extracted
|
|
293
|
+
mechanically. The 2016 caveat is stated INSIDE that file, not only here.
|
|
294
|
+
|
|
295
|
+
series:
|
|
296
|
+
|
|
297
|
+
# =========================================================================
|
|
298
|
+
# THE CURRENT STANDARD SERIES — the 1993 serial inside the 2016 design.
|
|
299
|
+
# =========================================================================
|
|
300
|
+
- id: hr-standard-2016
|
|
301
|
+
class: standard
|
|
302
|
+
categories: [car, van, truck, bus, trailer, tractor, machine]
|
|
303
|
+
period: { start: 2016 }
|
|
304
|
+
period_evidence: enacted-commencement
|
|
305
|
+
period_start_precise: "2016-07-04"
|
|
306
|
+
matching: strict
|
|
307
|
+
format:
|
|
308
|
+
pattern: "LL 9999-LL"
|
|
309
|
+
regex: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][A-Z]{1,2}\z'
|
|
310
|
+
regex_strict: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][ABCDEFGHIJKLMNOPRSTUVZ]{1,2}\z'
|
|
311
|
+
charset:
|
|
312
|
+
letters: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, R, S, T, U, V, Z]
|
|
313
|
+
letters_excluded: [Q, W, X, Y]
|
|
314
|
+
notes: "see common.alphabet — INFERRED from čl. 21 st. 2 and čl. 22 st. 3, not quoted. The prefix is a different alphabet and DOES carry carons; `[A-Z]{2}` cannot express ČK KŽ PŽ ŠI VŽ ŽU."
|
|
315
|
+
progression: >-
|
|
316
|
+
NOT PUBLISHED. Čl. 18 st. 2 fixes the shape (three or four digits, one
|
|
317
|
+
or two letters) and nothing in the pravilnik says how the space is
|
|
318
|
+
walked, so a Croatian plate CANNOT be dated from its serial by anything
|
|
319
|
+
in this file. Recorded gap. The only serial-borne era signal is the
|
|
320
|
+
WIDTH: a three-digit/one-letter mark is an early allocation in its area
|
|
321
|
+
and a four-digit/two-letter mark a late one, which is an ordering, not
|
|
322
|
+
a date.
|
|
323
|
+
separator_note: >-
|
|
324
|
+
Two positions, and they are different in kind. The gap after the area
|
|
325
|
+
code holds the ŠAHOVNICA and is written as an optional emitted space.
|
|
326
|
+
The gap between digits and letters is a printed hyphen, certain from
|
|
327
|
+
Obrazac 3 but not spelled in čl. 18, so it is written as the
|
|
328
|
+
separator-only class `[- ]` per PRD-PLATES §2.8.
|
|
329
|
+
design:
|
|
330
|
+
plate: { w: 520, h: 110, unit: mm, basis: secondary-wikipedia, basis_note: "the pravilnik delegates dimensions to Obrazac 3, whose figures are illegible in the published 229x70 raster — see the file header, structural fact 6" }
|
|
331
|
+
plate_variants:
|
|
332
|
+
- { w: 280, h: 200, unit: mm, basis: read-from-drawing, note: "Obrazac 4 — vehicles whose construction cannot take the single-line plate (čl. 18 st. 6)" }
|
|
333
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "'bijele su boje … presvučene reflektirajućom folijom' (čl. 18 st. 1) — a colour WORD, not a coordinate" }
|
|
334
|
+
foreground: "#000000"
|
|
335
|
+
foreground_hex_basis: observed
|
|
336
|
+
band: { side: left, color: "#003399", content: eu-stars+HR, hex_basis: observed, note: "čl. 18 st. 1 'razlikovna oznaka Republike Hrvatske'; the 2411/98 cross-reference is in NN 45/2016 čl. 1-2" }
|
|
337
|
+
emblem: { present: true, rendered: placeholder, position: "between the area code and the number", note: "grb Republike Hrvatske, čl. 18 st. 1; appearance delegated to Obrazac 16" }
|
|
338
|
+
rear_differs: false
|
|
339
|
+
display: "front and rear (čl. 24 st. 1 of the Pravilnik o registraciji … Ministarstva obrane uses the same phrasing for military vehicles; the civil requirement is in the Zakon o sigurnosti prometa na cestama, not in this pravilnik — recorded gap)"
|
|
340
|
+
region_encoding: "plates/_decode/hr-cities.yml"
|
|
341
|
+
region_encoding_mechanism: >-
|
|
342
|
+
THE PREFIX IS THE DECODE, AND ITS BINDING IS FROZEN AT ISSUE. Čl. 5 st. 1
|
|
343
|
+
NN 130/2017 registers a vehicle at a station "prema registracijskom
|
|
344
|
+
području u kojem vlasnik vozila ima prebivalište, boravište, privremeni
|
|
345
|
+
ili stalni boravak ili sjedište", and st. 2 lets a station OUTSIDE that
|
|
346
|
+
area do the work while still issuing the owner's own area code. Since
|
|
347
|
+
2016-07-04 the mark is not surrendered on a sale (čl. 48 st. 1), so it
|
|
348
|
+
records the area of the owner AT ISSUE and of nobody since. Čl. 25 st. 1
|
|
349
|
+
still re-issues on a move to another area. A parse API must report
|
|
350
|
+
"area at issue", never "current owner's area".
|
|
351
|
+
variants:
|
|
352
|
+
- class: personalized
|
|
353
|
+
name: "registarske pločice po narudžbi"
|
|
354
|
+
format: { pattern: "LL 9999-LL", regex: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][A-Z]{1,2}\z' }
|
|
355
|
+
period: { start: 2018 }
|
|
356
|
+
note: >-
|
|
357
|
+
A TO-ORDER mark, not a vanity mark: čl. 21 st. 1 lets the owner order
|
|
358
|
+
plates carrying "unaprijed zadanim registarskim brojem vozila iz
|
|
359
|
+
članka 18. stavka 2. ovoga Pravilnika ako je zatraženi registarski
|
|
360
|
+
broj slobodan" — a CHOSEN serial inside the ordinary grammar, so a
|
|
361
|
+
sub-entry rather than a series (PRD-PLATES §2.3). Format and design
|
|
362
|
+
are identical to the standard series. It is new in NN 130/2017: no
|
|
363
|
+
equivalent appears in NN 151/2008. Čl. 21 st. 2 supplies the file's
|
|
364
|
+
only direct statement about the ordinary alphabet.
|
|
365
|
+
sources:
|
|
366
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 21 st. 1-2"
|
|
367
|
+
- class: temporary
|
|
368
|
+
name: "green characters — foreigners and temporary registration"
|
|
369
|
+
format: { pattern: "LL 9999-LL", regex: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][A-Z]{1,2}\z' }
|
|
370
|
+
design: { foreground: "#008000", hex_basis: observed }
|
|
371
|
+
note: >-
|
|
372
|
+
Čl. 18 st. 3, verbatim: "Na registarskim pločicama za vozila stranaca
|
|
373
|
+
kojima je odobren privremeni ili stalni boravak i za privremeno
|
|
374
|
+
registrirana vozila, otisnute brojke i slova zelene su boje." A
|
|
375
|
+
COLOUR-ONLY variant of the same format and period, therefore a
|
|
376
|
+
sub-entry and not a series (PRD-PLATES §2.3). Note that the 2008 text
|
|
377
|
+
of the same rule also covered foreign trade, transport and cultural
|
|
378
|
+
representations and foreign correspondents; NN 130/2017 dropped that
|
|
379
|
+
clause.
|
|
380
|
+
sources:
|
|
381
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 18 st. 3"
|
|
382
|
+
- class: standard
|
|
383
|
+
name: "red characters — oversize and overweight vehicles"
|
|
384
|
+
format: { pattern: "LL 9999-LL", regex: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][A-Z]{1,2}\z' }
|
|
385
|
+
design: { foreground: "#CC0000", hex_basis: observed }
|
|
386
|
+
note: >-
|
|
387
|
+
Čl. 18 st. 4: red characters "za vozila koja ne odgovaraju propisanim
|
|
388
|
+
uvjetima za dimenzije vozila (duljina, širina, visina) odnosno čija je
|
|
389
|
+
najveća dopuštena masa veća od propisane, odnosno koja premašuju
|
|
390
|
+
dopuštena osovinska opterećenja". Colour-only, hence a sub-entry.
|
|
391
|
+
sources:
|
|
392
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 18 st. 4"
|
|
393
|
+
sources:
|
|
394
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2016_05_45_1165.html # NN 45/2016 čl. 2 (the band added to čl. 13 st. 1) and čl. 10 ('stupa na snagu 4. srpnja 2016. godine') — the period start, dated to the day by the instrument itself"
|
|
395
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # NN 130/2017 čl. 18 (plate, format, colours), čl. 19 (script), čl. 20 (the oval), čl. 25 (re-issue), čl. 48 (change of owner), čl. 52 + Prilog 1 (area codes)"
|
|
396
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Croatia # 520 x 110 mm single-line dimensions ONLY — tagged secondary-wikipedia; every other claim on this series is from Narodne novine. Accessed 2026-08-02"
|
|
397
|
+
notes: >-
|
|
398
|
+
THE CURRENT CROATIAN PLATE, and the file's headline finding is its START
|
|
399
|
+
DATE. Not 2013 (accession), not 13 May 2016 (the gazette date of the
|
|
400
|
+
amending pravilnik), but 4 JULY 2016, because NN 45/2016 čl. 10 says so in
|
|
401
|
+
terms. The serial grammar it carries is the 1993 one, unchanged; what 2016
|
|
402
|
+
changed is the band on the left and, in the same instrument, the rule that
|
|
403
|
+
used to hand the plates back on every sale. Old plates were NOT recalled —
|
|
404
|
+
NN 45/2016 čl. 8 says the owner "nije dužan mijenjati registarske pločice
|
|
405
|
+
izdane na obrascima koji su vrijedili do stupanja na snagu ovoga
|
|
406
|
+
Pravilnika" — so band-less plates remain legal indefinitely and the two
|
|
407
|
+
standard series overlap in the wild by design. One further reversal is
|
|
408
|
+
worth recording: NN 45/2016 čl. 7 ordered that a worn plate be replaced
|
|
409
|
+
with a NEW mark, and NN 130/2017 čl. 25 st. 3 undid that, restoring the
|
|
410
|
+
SAME mark with the band added.
|
|
411
|
+
|
|
412
|
+
# =========================================================================
|
|
413
|
+
# ONE SERIES BACK — the same serial, no band. 1993 to 2016.
|
|
414
|
+
# =========================================================================
|
|
415
|
+
- id: hr-standard-1993
|
|
416
|
+
class: standard
|
|
417
|
+
categories: [car, van, truck, bus, trailer, tractor, machine]
|
|
418
|
+
period: { start: 1993, end: 2016 }
|
|
419
|
+
period_evidence: enacted-commencement
|
|
420
|
+
period_start_precise: "1993-02-13"
|
|
421
|
+
period_start_note: >-
|
|
422
|
+
NN 12/1993 was published on 5 February 1993 and its čl. 35 says "Ovaj
|
|
423
|
+
Pravilnik stupa na snagu osmoga dana od objave u »Narodnim novinama«" —
|
|
424
|
+
the eighth day, i.e. 13 February 1993. The instrument is signed 22 January
|
|
425
|
+
1993; neither the signature date nor the gazette date is the period start.
|
|
426
|
+
matching: strict
|
|
427
|
+
format:
|
|
428
|
+
pattern: "LL 9999-LL"
|
|
429
|
+
regex: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][A-Z]{1,2}\z'
|
|
430
|
+
charset: { letters_excluded: [Q, W, X, Y], notes: "no alphabet provision appears in NN 12/1993 at all — the exclusion is carried over from the modern instruments and is weaker evidence here than on hr-standard-2016. Recorded as such; no regex_strict is shipped for this series." }
|
|
431
|
+
separator_note: "as on hr-standard-2016 — the arms occupy the first gap, the hyphen the second, and NN 12/1993 čl. 18 spells neither."
|
|
432
|
+
design:
|
|
433
|
+
plate: { w: 520, h: 110, unit: mm, basis: secondary-wikipedia, basis_note: "NN 12/1993 čl. 18 delegates size to Obrasci 4-7, which are not published as legible drawings" }
|
|
434
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "'presvučena reflektirajućom folijom, bijele je boje' — čl. 18 NN 12/1993" }
|
|
435
|
+
foreground: "#000000"
|
|
436
|
+
foreground_hex_basis: observed
|
|
437
|
+
band: { side: none }
|
|
438
|
+
band_note: "NO EU band and no distinguishing sign on the plate. Čl. 18 NN 12/1993 describes only the area code, the arms and the number; the distinguishing sign was the separate white oval, which čl. 24 of that pravilnik prescribes for international traffic."
|
|
439
|
+
emblem: { present: true, rendered: placeholder, note: "grb Republike Hrvatske 'propisanim bojama', čl. 18 NN 12/1993 — the arms are in the plate from the first independent-era instrument" }
|
|
440
|
+
rear_differs: false
|
|
441
|
+
region_encoding: "plates/_decode/hr-cities.yml"
|
|
442
|
+
region_encoding_mechanism: >-
|
|
443
|
+
Same prefix mechanism, but with the PRE-2016 binding, which was tighter:
|
|
444
|
+
NN 151/2008 čl. 40 st. 3 let the plates pass to a buyer only if the
|
|
445
|
+
registration area did not change, so for a plate issued before
|
|
446
|
+
2016-07-04 and not re-registered since, the code is much better evidence
|
|
447
|
+
about the current owner's area than it is for a later plate. The CODE SET
|
|
448
|
+
of the 1990s is a recorded gap — NN 12/1993 čl. 34 kept the older popis
|
|
449
|
+
alive transitionally and that list was not fetched.
|
|
450
|
+
sources:
|
|
451
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/1993_02_12_185.html # NN 12/1993 (5.2.1993.) čl. 18 (the plate and the serial grammar, word for word identical to the 2017 text), čl. 19 (diplomatic), čl. 34 (repeals), čl. 35 (in force on the eighth day)"
|
|
452
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2008_12_151_4118.html # NN 151/2008 čl. 13 (the same plate), čl. 40 st. 3 (the pre-2016 same-area condition on ceding plates to a buyer)"
|
|
453
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2016_05_45_1165.html # NN 45/2016 čl. 2 and čl. 10 — what ends this series and when"
|
|
454
|
+
notes: >-
|
|
455
|
+
THE PLATE THAT IS STILL ON THE ROAD. This series ends as an ISSUING
|
|
456
|
+
series on 2016-07-04 and not as a VALID one: NN 45/2016 čl. 8 and
|
|
457
|
+
NN 130/2017 čl. 57 both say the owner is not obliged to change plates
|
|
458
|
+
issued on the older forms, and NN 130/2017 čl. 25 st. 3 replaces a worn
|
|
459
|
+
band-less plate with the same mark PLUS the band. The 1993-2016 window
|
|
460
|
+
spans three base pravilnici (NN 12/1993, the 2005 series, NN 151/2008)
|
|
461
|
+
and is cut here as ONE series because the three of them prescribe the
|
|
462
|
+
same plate: white ground, black characters, area code, arms, three-or-four
|
|
463
|
+
digits and one-or-two letters. Where they differ is in procedure, not in
|
|
464
|
+
the mark. The 2005-2007 instruments (NN 5/05 … 68/07) were named in
|
|
465
|
+
NN 151/2008 čl. 53 but not fetched — a recorded gap that could yet split
|
|
466
|
+
this series.
|
|
467
|
+
|
|
468
|
+
# =========================================================================
|
|
469
|
+
# MOTORCYCLES AND MOPEDS — same serial, different plate.
|
|
470
|
+
# =========================================================================
|
|
471
|
+
- id: hr-motorcycle-2016
|
|
472
|
+
class: motorcycle
|
|
473
|
+
categories: [motorcycle]
|
|
474
|
+
period: { start: 2016 }
|
|
475
|
+
period_evidence: enacted-commencement
|
|
476
|
+
matching: strict
|
|
477
|
+
format:
|
|
478
|
+
pattern: "LL 9999-LL"
|
|
479
|
+
regex: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][A-Z]{1,2}\z'
|
|
480
|
+
regex_strict: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][ABCDEFGHIJKLMNOPRSTUVZ]{1,2}\z'
|
|
481
|
+
charset: { letters_excluded: [Q, W, X, Y], notes: "as common.alphabet" }
|
|
482
|
+
layout_note: "the same mark on a SQUARE plate, laid out over three lines in Obrazac 5: area code and arms on line 1, digits on line 2, letters on line 3. The hyphen is not printed in the two-line arrangement — a rendering fact, not a format fact."
|
|
483
|
+
design:
|
|
484
|
+
plate: { w: 180, h: 180, unit: mm, basis: read-from-drawing, spec_note: "read from Obrazac 5, the only Croatian plate drawing published at a legible size" }
|
|
485
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
486
|
+
foreground: "#000000"
|
|
487
|
+
foreground_hex_basis: observed
|
|
488
|
+
band: { side: left, color: "#003399", content: eu-stars+HR, hex_basis: observed }
|
|
489
|
+
emblem: { present: true, rendered: placeholder }
|
|
490
|
+
rear_differs: false
|
|
491
|
+
region_encoding: "plates/_decode/hr-cities.yml"
|
|
492
|
+
sources:
|
|
493
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 18 st. 7 ('Oblik i sadržaj registarskih pločica za motocikle i četverocikle tiskan je na Obrascu 5, a za mopede i lake četverocikle na Obrascu 6')"
|
|
494
|
+
- "https://narodne-novine.nn.hr/files/_web/sluzbeni-dio/2017/130000/images/9521.jpg # Obrazac 5, the dimensioned drawing: 180 x 180 mm, three-line layout"
|
|
495
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2016_05_45_1165.html # čl. 9 replaces Obrasci 5-12 and čl. 10 dates the change to 2016-07-04"
|
|
496
|
+
notes: >-
|
|
497
|
+
A SEPARATE SERIES ON DESIGN, NOT ON FORMAT (PRD-PLATES §2.3): the mark is
|
|
498
|
+
the čl. 18 st. 2 mark, but the plate is a 180 mm square whose layout puts
|
|
499
|
+
the digits and letters on separate lines, which a renderer must model and
|
|
500
|
+
a one-line pattern cannot express. NN 130/2017 čl. 59 defers the motorcycle
|
|
501
|
+
form specifically — "članka 22. stavka 6. u dijelu kojim se propisuje
|
|
502
|
+
oblik i sadržaj obrasca registarskih pločica za motocikle i četverocikle"
|
|
503
|
+
enters into force on 20 May 2018, four and a half months after the rest —
|
|
504
|
+
but that deferral touches the BY-CHOICE motorcycle plate, not this one.
|
|
505
|
+
|
|
506
|
+
- id: hr-moped-2016
|
|
507
|
+
class: moped
|
|
508
|
+
categories: [moped]
|
|
509
|
+
period: { start: 2016 }
|
|
510
|
+
period_evidence: enacted-commencement
|
|
511
|
+
matching: strict
|
|
512
|
+
format:
|
|
513
|
+
pattern: "LL 9999-LL"
|
|
514
|
+
regex: '\A[A-ZČŠŽ]{2} ?\d{3,4}[- ][A-Z]{1,2}\z'
|
|
515
|
+
charset: { letters_excluded: [Q, W, X, Y] }
|
|
516
|
+
design:
|
|
517
|
+
plate: { note: "Obrazac 6; dimensions NOT legible in the published raster — recorded gap" }
|
|
518
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
519
|
+
foreground: "#000000"
|
|
520
|
+
foreground_hex_basis: observed
|
|
521
|
+
band: { side: left, color: "#003399", content: eu-stars+HR, hex_basis: observed }
|
|
522
|
+
emblem: { present: true, rendered: placeholder }
|
|
523
|
+
region_encoding: "plates/_decode/hr-cities.yml"
|
|
524
|
+
sources:
|
|
525
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # čl. 18 st. 7 — mopeds and light quadricycles on Obrazac 6"
|
|
526
|
+
notes: >-
|
|
527
|
+
Separated from the motorcycle series ONLY because the pravilnik separates
|
|
528
|
+
the forms (Obrazac 6 against Obrazac 5) and therefore separates the plate.
|
|
529
|
+
Croatia does NOT give mopeds a distinct colour the way Slovenia did until
|
|
530
|
+
2011 — čl. 18 st. 1's white ground is unqualified. The dimensions are the
|
|
531
|
+
recorded gap that keeps this entry thin.
|
|
532
|
+
|
|
533
|
+
# =========================================================================
|
|
534
|
+
# BY-CHOICE (VANITY) PLATES — the one genuinely different grammar.
|
|
535
|
+
# =========================================================================
|
|
536
|
+
- id: hr-personalized-2008
|
|
537
|
+
class: personalized
|
|
538
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
539
|
+
period: { start: 2008 }
|
|
540
|
+
period_evidence: enacted-commencement
|
|
541
|
+
matching: recall-only
|
|
542
|
+
format:
|
|
543
|
+
pattern: "LL LLLLLL"
|
|
544
|
+
regex: '\A[A-ZČŠŽ]{2} ?[A-Z0-9]{1,7}(?:-[A-Z0-9]{1,6})?\z'
|
|
545
|
+
charset:
|
|
546
|
+
letters_extra: [X, Y, W]
|
|
547
|
+
notes: "čl. 22 st. 3, verbatim: 'Registarski broj iz stavka 1. ovoga članka simetrično je otisnut te uključuje i strana slova X, Y i W.' The by-choice mark is the ONLY Croatian mark that may carry them."
|
|
548
|
+
grammar: >-
|
|
549
|
+
Čl. 22 NN 130/2017. St. 1: "najmanje tri do najviše sedam brojčanih ili
|
|
550
|
+
slovnih znakova ili od kombinacije brojčanih i slovnih znakova na dijelu
|
|
551
|
+
registarske pločice iza oznake registracijskog područja i grba Republike
|
|
552
|
+
Hrvatske". St. 2: "U slučaju izbora numeričkih znakova obvezno je
|
|
553
|
+
odabrati najmanje jedan slovni znak. Između brojčanih i slovnih oznaka
|
|
554
|
+
obvezna je crtica, a između slovnih oznaka može se odabrati crtica.
|
|
555
|
+
Crtica se računa kao jedan od znakova." St. 8: letters-only marks on
|
|
556
|
+
Obrazac 8, or on the 7+8 combination, are three to SIX characters.
|
|
557
|
+
why_recall_only: >-
|
|
558
|
+
The regex above is deliberately wider than the issuing grammar and a
|
|
559
|
+
match is a shape hit only (PRD-PLATES §2.7). It does not enforce the
|
|
560
|
+
"at least one letter if digits are chosen" rule, does not count the
|
|
561
|
+
hyphen against the seven-character budget, does not enforce the
|
|
562
|
+
three-character floor, and cannot express čl. 22 st. 7 at all — that
|
|
563
|
+
provision makes issuance turn on a MINISTERIAL JUDGMENT ("nije
|
|
564
|
+
provokativan, neetičan ili protivan pravnom poretku") which no regex
|
|
565
|
+
can carry. Per §2.7 a recall-only series ships no regex_strict.
|
|
566
|
+
design:
|
|
567
|
+
plate: { note: "Obrasci 7-10, one per body class; dimensions not legible" }
|
|
568
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
569
|
+
foreground: "#000000"
|
|
570
|
+
foreground_hex_basis: observed
|
|
571
|
+
band: { side: left, color: "#003399", content: eu-stars+HR, hex_basis: observed, note: "from 2016-07-04 only; the 2008-2016 by-choice plate had no band, exactly as the standard series" }
|
|
572
|
+
emblem: { present: true, rendered: placeholder }
|
|
573
|
+
font_note: "čl. 19 st. 2 gives the by-choice plate its own glyph drawing — Obrazac 17, not the Obrazac 15 used by every other plate. Croatia prints vanity marks in a DIFFERENT typeface, which a renderer must model."
|
|
574
|
+
region_encoding: "plates/_decode/hr-cities.yml"
|
|
575
|
+
region_encoding_mechanism: "the area code and arms are retained and precede the chosen part (čl. 22 st. 1, 'na dijelu registarske pločice iza oznake registracijskog područja i grba Republike Hrvatske'), so the geographic decode is unaffected."
|
|
576
|
+
validity:
|
|
577
|
+
term_years: 5
|
|
578
|
+
statute: "Čl. 23: the right of use runs five years from registration, is renewable in five-year terms on payment, and lapsing it obliges the owner to deregister within 15 days and return the plates."
|
|
579
|
+
sources:
|
|
580
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2008_12_151_4118.html # NN 151/2008 čl. 14 — the by-choice plate is introduced here (three to seven characters, X/Y/W admitted); čl. 15 the five-year term; čl. 55 in force on the eighth day after publication on 23.12.2008"
|
|
581
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # NN 130/2017 čl. 22 (the grammar, the mandatory hyphen, the ministerial refusal ground, the transliteration-duplication ground), čl. 19 st. 2 (Obrazac 17 glyphs), čl. 23 (term)"
|
|
582
|
+
notes: >-
|
|
583
|
+
The Croatian vanity plate keeps its geography: unlike a British or Dutch
|
|
584
|
+
personalised mark it cannot escape the area code. Two provisions here are
|
|
585
|
+
worth a consumer's attention beyond the grammar. Čl. 22 st. 7 refuses a
|
|
586
|
+
mark that could collide with another ON TRANSLITERATION — the regulation's
|
|
587
|
+
own acknowledgement of the diacritic problem this dataset records in
|
|
588
|
+
structural fact 5 — and it also refuses anything colliding with the
|
|
589
|
+
oldtimer PV pattern. Čl. 22 st. 9 forbids by-choice marks on diplomatic
|
|
590
|
+
and oldtimer plates entirely. period.start is 2008 because NN 151/2008
|
|
591
|
+
introduced the series; the 2016 band and the 2018 grammar refinements are
|
|
592
|
+
changes WITHIN it, and the 2016 design change is recorded on the band
|
|
593
|
+
entry rather than by splitting the series, because the choice grammar —
|
|
594
|
+
the thing that makes it its own series — did not change in 2016.
|
|
595
|
+
|
|
596
|
+
# =========================================================================
|
|
597
|
+
# OLDTIMERS — the one Croatian series with a LITERAL in the mark.
|
|
598
|
+
# =========================================================================
|
|
599
|
+
- id: hr-historic-2008
|
|
600
|
+
class: historic
|
|
601
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer]
|
|
602
|
+
period: { start: 2008 }
|
|
603
|
+
period_evidence: enacted-commencement
|
|
604
|
+
matching: strict
|
|
605
|
+
format:
|
|
606
|
+
pattern: "LL PV-999"
|
|
607
|
+
regex: '\A[A-ZČŠŽ]{2} ?PV[- ]\d{3,4}\z'
|
|
608
|
+
grammar: "Čl. 18 st. 8 NN 130/2017, verbatim: 'Broj registarskih pločica za oldtimere (starodobna vozila) sastoji se od slovne oznake PV i tri ili četiri numeričke oznake.' PV = povijesno vozilo. The area code and arms are retained; čl. 18 st. 9 applies the ordinary plate forms and glyph drawing to it."
|
|
609
|
+
design:
|
|
610
|
+
plate: { note: "čl. 18 st. 9 applies st. 5-7 — the same Obrasci 3-6 as the ordinary plate" }
|
|
611
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
612
|
+
foreground: "#000000"
|
|
613
|
+
foreground_hex_basis: observed
|
|
614
|
+
band: { side: left, color: "#003399", content: eu-stars+HR, hex_basis: observed, note: "from 2016-07-04" }
|
|
615
|
+
emblem: { present: true, rendered: placeholder }
|
|
616
|
+
region_encoding: "plates/_decode/hr-cities.yml"
|
|
617
|
+
sources:
|
|
618
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2008_12_151_4118.html # NN 151/2008 čl. 13 st. 8-9 — the PV mark is introduced here"
|
|
619
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # NN 130/2017 čl. 18 st. 8-9; čl. 22 st. 9 (no by-choice mark on an oldtimer); čl. 47 st. 7 (oldtimer plates are held 180 days after deregistration, twice the ordinary 90)"
|
|
620
|
+
notes: >-
|
|
621
|
+
PV IS A LITERAL, NOT A LETTER GROUP: the two characters are fixed, so this
|
|
622
|
+
series' regex is genuinely strict without a strict twin — the sourced
|
|
623
|
+
grammar IS the pattern (the PRD-PLATES §2.7 case where 29 of 31 L0 series
|
|
624
|
+
needed no twin). The oldtimer mark is protected from collision in two
|
|
625
|
+
directions: čl. 22 st. 7 refuses a by-choice mark that would coincide with
|
|
626
|
+
it, and čl. 22 st. 9 forbids choosing a mark for an oldtimer at all.
|
|
627
|
+
|
|
628
|
+
# =========================================================================
|
|
629
|
+
# TRANSFERABLE (TRADE) PLATES — bound to a business, not a vehicle.
|
|
630
|
+
# =========================================================================
|
|
631
|
+
- id: hr-dealer-2008
|
|
632
|
+
class: dealer
|
|
633
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
634
|
+
period: { start: 2008 }
|
|
635
|
+
period_evidence: enacted-commencement
|
|
636
|
+
binding: business
|
|
637
|
+
matching: strict
|
|
638
|
+
format:
|
|
639
|
+
pattern: "LL PP-999"
|
|
640
|
+
regex: '\A[A-ZČŠŽ]{2} ?PP[- ]\d{3,4}\z'
|
|
641
|
+
grammar: "Čl. 39 st. 2 NN 130/2017: 'Broj prenosivih pločica sastoji se od slovne oznake PP i tri ili četiri numeričke oznake.' PP = prenosive pločice."
|
|
642
|
+
design:
|
|
643
|
+
plate: { note: "čl. 39 st. 3 applies čl. 18 st. 5-7 — the ordinary Obrasci" }
|
|
644
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
645
|
+
foreground: "#000000"
|
|
646
|
+
foreground_hex_basis: observed
|
|
647
|
+
emblem: { present: true, rendered: placeholder, note: "'Između oznake grada i broja prenosive pločice otisnut je grb Republike Hrvatske' — čl. 39 st. 1" }
|
|
648
|
+
band: { side: left, color: "#003399", content: eu-stars+HR, hex_basis: observed, note: "not separately prescribed for this series; inherited with the Obrasci replaced by NN 45/2016 čl. 9" }
|
|
649
|
+
region_encoding: "plates/_decode/hr-cities.yml"
|
|
650
|
+
region_encoding_note: >-
|
|
651
|
+
A WORDING CHANGE WORTH RECORDING. NN 151/2008 čl. 33 st. 1 said the plate
|
|
652
|
+
carries "oznaka registracijskog područja"; NN 130/2017 čl. 39 st. 1 says
|
|
653
|
+
it carries "oznaka GRADA" — the city. Whether the drafter meant a
|
|
654
|
+
different set of codes or was writing loosely is not resolvable from the
|
|
655
|
+
text, and Prilog 1 contains no separate city list. Decode with
|
|
656
|
+
hr-cities.yml, but flag transferable plates as lower confidence.
|
|
657
|
+
sources:
|
|
658
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2008_12_151_4118.html # NN 151/2008 čl. 33 — prenosive pločice introduced, 'oznaka registracijskog područja'"
|
|
659
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # NN 130/2017 čl. 36-42 — the traffic licence and the certificate book, čl. 39 the plate itself, čl. 38 st. 3 each certificate valid at most 7 days"
|
|
660
|
+
notes: >-
|
|
661
|
+
Croatia's trade plate is a genuinely transferable registration: it comes
|
|
662
|
+
with a prometna dozvola and a bound book of fifty numbered certificates
|
|
663
|
+
(čl. 38), each issued for at most seven days, and the evidence of use is
|
|
664
|
+
part of the record. Issued and withdrawn by the POLICE (čl. 40, čl. 42),
|
|
665
|
+
not by the inspection stations that do ordinary registration — the only
|
|
666
|
+
civil series in this file with a different issuing authority.
|
|
667
|
+
|
|
668
|
+
# =========================================================================
|
|
669
|
+
# EXPORT — the only civil plate with no area code at all.
|
|
670
|
+
# =========================================================================
|
|
671
|
+
- id: hr-export-2008
|
|
672
|
+
class: export
|
|
673
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
674
|
+
period: { start: 2008 }
|
|
675
|
+
period_evidence: enacted-commencement
|
|
676
|
+
matching: strict
|
|
677
|
+
format:
|
|
678
|
+
pattern: "RH 9999-LL"
|
|
679
|
+
regex: '\ARH ?\d{3,4}[- ][A-Z]{1,2}\z'
|
|
680
|
+
grammar: "Čl. 44 NN 130/2017: 'zelene su boje na kojima je žutim slovima otisnuta oznaka RH i broj izvozne pločice. Između oznake RH i broja izvozne pločice otisnut je grb Republike Hrvatske.' St. 2: 'Broj izvozne pločice sastoji se od tri ili četiri numeričke i jedne ili dvije slovne oznake.'"
|
|
681
|
+
design:
|
|
682
|
+
plate: { note: "čl. 44 st. 3 applies čl. 18 st. 5-7" }
|
|
683
|
+
background: { color: "#007A33", finish: retroreflective, hex_basis: observed, spec_note: "'zelene su boje' — a colour word; the hex is an observed reading and is NOT a spec claim" }
|
|
684
|
+
foreground: "#FFD100"
|
|
685
|
+
foreground_hex_basis: observed
|
|
686
|
+
band: { side: none }
|
|
687
|
+
band_note: "no EU band: the country identity is the literal RH in the mark itself, which is what makes this the only civil series whose prefix is not an area code."
|
|
688
|
+
emblem: { present: true, rendered: placeholder }
|
|
689
|
+
region_encoding: none
|
|
690
|
+
region_encoding_note: "RH is Republika Hrvatska, a national literal, NOT a row in hr-cities.yml. A parse API that looks it up there will get a miss, and should."
|
|
691
|
+
sources:
|
|
692
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2008_12_151_4118.html # NN 151/2008 — izvozne pločice introduced with the RH literal and the green/yellow scheme"
|
|
693
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # NN 130/2017 čl. 43 (what the owner must produce), čl. 44 (the plate), čl. 46 (replacement)"
|
|
694
|
+
notes: >-
|
|
695
|
+
Green ground, yellow characters, the arms between RH and the number. The
|
|
696
|
+
export registration comes with its own traffic licence stamped "IZVOZNA"
|
|
697
|
+
(čl. 43 st. 2) and the evidence record names the destination state
|
|
698
|
+
(čl. 45 st. 2) — so unlike the ordinary series this one records where the
|
|
699
|
+
vehicle went. period.start 2008 follows NN 151/2008, which is where the
|
|
700
|
+
series first appears; no equivalent is in NN 12/1993.
|
|
701
|
+
|
|
702
|
+
# =========================================================================
|
|
703
|
+
# DIPLOMATIC — blue and yellow, and the numeric country code is its decode.
|
|
704
|
+
# =========================================================================
|
|
705
|
+
- id: hr-diplomatic-1993
|
|
706
|
+
class: diplomatic
|
|
707
|
+
categories: [car, van]
|
|
708
|
+
period: { start: 1993 }
|
|
709
|
+
period_evidence: enacted-commencement
|
|
710
|
+
matching: strict
|
|
711
|
+
format:
|
|
712
|
+
pattern: "999-A-999"
|
|
713
|
+
pattern_note: >-
|
|
714
|
+
The pattern prints the "A" (diplomatic) form as its canonical example
|
|
715
|
+
because the activity letter is a CLOSED set of three literals — A, C, M
|
|
716
|
+
— not a free letter position. Writing it as `L` would round-trip against
|
|
717
|
+
a regex that admits every letter, which would be a wider claim than
|
|
718
|
+
čl. 24 st. 2 makes. The regex carries the closed set.
|
|
719
|
+
regex: '\A\d{2,3}[- ][ACM][- ]\d{1,3}\z'
|
|
720
|
+
grammar: >-
|
|
721
|
+
Čl. 24 st. 1 NN 130/2017: the plate "sadrže: brojčanu oznaku zemlje iz
|
|
722
|
+
koje je predstavništvo, slovnu oznaku djelatnosti predstavništva,
|
|
723
|
+
odnosno statusa osobe u tim predstavništvima i registarski broj vozila"
|
|
724
|
+
— country number, activity letter, vehicle number, in that order.
|
|
725
|
+
St. 2 closes the letter set: "A" for diplomatic missions and staff with
|
|
726
|
+
diplomatic status, "C" for consular posts and staff with consular
|
|
727
|
+
status, "M" for foreign employees of those missions WITHOUT diplomatic
|
|
728
|
+
status.
|
|
729
|
+
widths_unspecified: >-
|
|
730
|
+
NEITHER the country-code width NOR the serial width is prescribed
|
|
731
|
+
anywhere in the pravilnik. The quantifiers above are a deliberate
|
|
732
|
+
widening to cover what the text leaves open, which is why this series
|
|
733
|
+
is the file's weakest format claim. It is kept `strict` rather than
|
|
734
|
+
`recall-only` because every LITERAL in it is sourced — the three-letter
|
|
735
|
+
set is closed by čl. 24 st. 2 — and the regex is narrower than the
|
|
736
|
+
(unbounded) statutory text rather than wider than the issued grammar.
|
|
737
|
+
design:
|
|
738
|
+
background: { color: "#003399", finish: retroreflective, hex_basis: observed, spec_note: "'plave su boje' — colour word only" }
|
|
739
|
+
foreground: "#FFD100"
|
|
740
|
+
foreground_hex_basis: observed
|
|
741
|
+
band: { side: none }
|
|
742
|
+
emblem: { present: false, note: "čl. 24 prescribes no arms on the diplomatic plate, unlike every other civil series" }
|
|
743
|
+
supplementary_plate: >-
|
|
744
|
+
Čl. 24 st. 3 adds a second, ELLIPTICAL plate in black with yellow
|
|
745
|
+
letters: "CMD" for the head of mission, "CD" for a person with
|
|
746
|
+
diplomatic status, "CC" for a consular officer (Obrazac 14). It is a
|
|
747
|
+
SEPARATE physical object carried alongside the registration plate, not
|
|
748
|
+
part of the mark, and is modelled here rather than as its own series
|
|
749
|
+
because it carries no serial.
|
|
750
|
+
region_encoding: inline
|
|
751
|
+
region_encoding_note: >-
|
|
752
|
+
The leading numeric group is a COUNTRY code assigned to each accredited
|
|
753
|
+
mission, not a geographic area code — hr-cities.yml must not be consulted
|
|
754
|
+
for it. The country-code table itself is NOT published in the pravilnik
|
|
755
|
+
and was not obtained from any primary in this pass: it is a RECORDED GAP,
|
|
756
|
+
and PRD-PLATES puts diplomatic decode tables at gate L4 in any case.
|
|
757
|
+
sources:
|
|
758
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/1993_02_12_185.html # NN 12/1993 čl. 19 — the blue/yellow plate with country number, activity letter and vehicle number, from the founding instrument"
|
|
759
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2008_12_151_4118.html # NN 151/2008 čl. 16 — the A/C/M letter set stated in the modern wording, plus the CMD/CD/CC ellipse"
|
|
760
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # NN 130/2017 čl. 24 st. 1-3 (current), čl. 22 st. 9 (no by-choice mark on these plates)"
|
|
761
|
+
notes: >-
|
|
762
|
+
ONE SERIES ACROSS THIRTY-THREE YEARS, deliberately. The 1993, 2008 and
|
|
763
|
+
2017 texts prescribe the same plate — blue ground, yellow characters,
|
|
764
|
+
country number then activity letter then serial — and the 2016 band
|
|
765
|
+
amendment did not touch čl. 16/24, so this series has no EU band and no
|
|
766
|
+
2016 break. What DID change is invisible in the format: the 1993 text
|
|
767
|
+
lists the activity letters in a different place from the 2008 text. The
|
|
768
|
+
widths and the country-code table are the two recorded gaps, and they are
|
|
769
|
+
the reason a consumer should treat a Croatian diplomatic match as weak.
|
|
770
|
+
|
|
771
|
+
# =========================================================================
|
|
772
|
+
# TEST PLATES.
|
|
773
|
+
# =========================================================================
|
|
774
|
+
- id: hr-temporary-test-2008
|
|
775
|
+
class: temporary
|
|
776
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
777
|
+
period: { start: 2008 }
|
|
778
|
+
period_evidence: enacted-commencement
|
|
779
|
+
matching: recall-only
|
|
780
|
+
format:
|
|
781
|
+
pattern: "99999"
|
|
782
|
+
regex: '\A[A-Z0-9]{2,8}(?:[- ][A-Z0-9]{1,6})?\z'
|
|
783
|
+
grammar: >-
|
|
784
|
+
Čl. 34 NN 130/2017 gives the pokusna pločica its COLOURS and its forms
|
|
785
|
+
(Obrasci 18-19 for ordinary test use, 20-21 for technical inspection)
|
|
786
|
+
and says the plates are "izrađene … od retro-reflektivnog bijelog
|
|
787
|
+
laminata". IT PRESCRIBES NO SERIAL GRAMMAR AT ALL — no character count,
|
|
788
|
+
no arrangement, no alphabet.
|
|
789
|
+
why_recall_only: >-
|
|
790
|
+
Because there is nothing to be strict about. The regex is an admitted
|
|
791
|
+
catch-all: a match says only "this string has a shape a Croatian test
|
|
792
|
+
plate could have" and is emphatically not a validity claim
|
|
793
|
+
(PRD-PLATES §2.7). Shipping a confident pattern here would be inventing
|
|
794
|
+
one; the gap is recorded instead.
|
|
795
|
+
design:
|
|
796
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "'bijele su boje' plus 'retro-reflektivnog bijelog laminata' (čl. 34 st. 3) — laminate, not the metal-and-foil construction of čl. 18" }
|
|
797
|
+
foreground: "#000000"
|
|
798
|
+
foreground_hex_basis: observed
|
|
799
|
+
emblem: { present: false, note: "not prescribed in čl. 34. NN 12/1993 čl. 25 DID put the arms on the test plate ('oznaka registracijskog područja, grb Republike Hrvatske i registarski broj'); the modern text dropped the mention. Recorded, not resolved." }
|
|
800
|
+
region_encoding: mechanism-only
|
|
801
|
+
region_encoding_note: "NN 12/1993 čl. 25 put an area code on the test plate; NN 130/2017 čl. 34 does not mention one. Whether the current test plate carries a code is NOT established from the primary — recorded gap."
|
|
802
|
+
sources:
|
|
803
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/1993_02_12_185.html # NN 12/1993 čl. 25 — the older, more specific test-plate description"
|
|
804
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2017_12_130_2993.html # NN 130/2017 čl. 34 (colours, laminate, forms), čl. 35 (the register kept of them)"
|
|
805
|
+
notes: >-
|
|
806
|
+
THE THINNEST SERIES IN THE FILE, AND HONESTLY SO. Croatia's test plate is
|
|
807
|
+
prescribed by colour and by drawing and by nothing else; the two things a
|
|
808
|
+
parse API wants — the grammar and whether an area code is present — are
|
|
809
|
+
both absent from the current text, and the 1993 text answers only the
|
|
810
|
+
second, and differently. `matching: recall-only` and two recorded gaps are
|
|
811
|
+
the correct output here. A future pass should read Obrasci 18-21, which
|
|
812
|
+
were not legible in this one.
|
|
813
|
+
|
|
814
|
+
# =========================================================================
|
|
815
|
+
# MILITARY — a different pravilnik, and the file's only sourced colour.
|
|
816
|
+
# =========================================================================
|
|
817
|
+
- id: hr-military-2014
|
|
818
|
+
class: military
|
|
819
|
+
categories: [car, van, truck, bus, motorcycle, trailer, machine]
|
|
820
|
+
period: { start: 2014 }
|
|
821
|
+
period_evidence: enacted-commencement
|
|
822
|
+
matching: strict
|
|
823
|
+
format:
|
|
824
|
+
pattern: "HV 9999-LL"
|
|
825
|
+
regex: '\AHV ?\d{3,4}[- ][A-Z]{1,2}\z'
|
|
826
|
+
grammar: >-
|
|
827
|
+
NN 71/2018 čl. 23: "(2) Na registarskoj pločici otisnuta je slovna
|
|
828
|
+
oznaka 'HV' i registarski broj vozila. (3) Između oznake 'HV' i
|
|
829
|
+
registarskog broja otisnut je grb Republike Hrvatske propisnim bojama.
|
|
830
|
+
(4) Registarski broj vozila sastoji se od tri ili četiri brojčane i
|
|
831
|
+
jedne ili dvije slovne oznake." The civil grammar exactly, with HV
|
|
832
|
+
(Hrvatska vojska) standing where the area code stands.
|
|
833
|
+
design:
|
|
834
|
+
plate: { note: "Obrazac 5 of the military pravilnik — not the civil Obrazac 5" }
|
|
835
|
+
background: { color: "#F9A800", finish: non-retroreflective, hex_basis: ral-conversion, spec_note: "THE ONLY SOURCED COLOUR IN THIS FILE: čl. 23 st. 1, 'žute je boje broj 1003, prema RAL-ovu katalogu boja'. RAL 1003 Signalgelb is a physical colour standard; the hex is a conversion and is NOT part of the standard, which is why hex_basis says so. A renderer should prefer the RAL number." }
|
|
836
|
+
ral: "1003"
|
|
837
|
+
foreground: "#000000"
|
|
838
|
+
foreground_hex_basis: observed
|
|
839
|
+
band: { side: none }
|
|
840
|
+
emblem: { present: true, rendered: placeholder, note: "grb Republike Hrvatske 'propisnim bojama', čl. 23 st. 3" }
|
|
841
|
+
retroreflective: false
|
|
842
|
+
retroreflective_source: "čl. 23 st. 7, verbatim: 'Registarska pločica za vozila Ministarstva i Oružanih snaga nema reflektirajuća svojstva.' A deliberate NEGATIVE against the civil rule."
|
|
843
|
+
region_encoding: none
|
|
844
|
+
region_encoding_note: "HV is a national service literal. hr-cities.yml does not apply."
|
|
845
|
+
sources:
|
|
846
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2014_11_133_2505.html # NN 133/2014 (14.11.2014.) čl. 23 — the first of the two military pravilnici read here; identical plate spec"
|
|
847
|
+
- "https://narodne-novine.nn.hr/clanci/sluzbeni/2018_08_71_1458.html # NN 71/2018 (4.8.2018.) čl. 23 (the plate, RAL 1003, non-reflective), čl. 25 (the painted mark for combat vehicles, RAL 9005)"
|
|
848
|
+
notes: >-
|
|
849
|
+
A SEPARATE REGULATORY UNIVERSE, like Italy's. Military registration is
|
|
850
|
+
done by the Ministry of Defence under its own pravilnik, and this series
|
|
851
|
+
is cut at 2014 because NN 133/2014 is the earliest military instrument
|
|
852
|
+
READ in this pass — not because it is the earliest that exists. NN 71/2018
|
|
853
|
+
re-enacts the identical plate specification, so no second series is cut.
|
|
854
|
+
Two facts have no civil analogue: the plate is expressly NOT
|
|
855
|
+
retroreflective, and combat vehicles get no plate at all but a mark
|
|
856
|
+
PAINTED on the vehicle in RAL 9005 black over the vehicle's own base
|
|
857
|
+
colour (čl. 25 st. 1) — a registration mark that is not a plate, which the
|
|
858
|
+
schema records here in prose rather than forcing into `design.plate`.
|
|
859
|
+
Wikipedia describes VP/MP suffix letters for military-police vehicles;
|
|
860
|
+
that is not in either pravilnik as read and is NOT asserted.
|