From 664b17ba501bc9d9b19bbd2c5fb84abc0564f6be Mon Sep 17 00:00:00 2001 From: kkoci Date: Mon, 29 Nov 2021 14:25:01 +0000 Subject: [PATCH 1/6] [UPD] README file, bare metal installation instructions --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/README.md b/README.md index 566d8ad5..aae72b5d 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,50 @@ cd thoth cp .env.example .env # Edit the credentials in .env ``` +#### Creating Postgres DB and User + +``` +psql +psql -U postgres +CREATE ROLE thoth SUPERUSER LOGIN PASSWORD 'thoth'; +CREATE DATABASE thoth WITH OWNER thoth; +``` + +Exit the psql command line with: + +```\q``` + +An example of a .env file: + +``` +THOTH_GRAPHQL_API=http://localhost:8000 +# THOTH_EXPORT_API is used at compile time, must be a public facing URL +THOTH_EXPORT_API=http://localhost:8181 +# Authentication cookie domain +THOTH_DOMAIN=localhost +# Full postgres URL (With the role and db we created in the orevious step, it will look like this) +DATABASE_URL=postgres://thoth:thoth@localhost/thoth +# Authentication cookie secret key (can be any string really) +SECRET_KEY=we_like_s%_books_255 +# Logging level +RUST_LOG=info +``` +Proceed to install **Wasm** +``` +cargo install wasm-pack +``` +Install **rollup**: + +``` +sudo npm install --global rollup +``` + +Export the ENV variables, **THOTH_GRAPHQL_API** and **THOTH_EXPORT_API**: +``` +export THOTH_GRAPHQL_API=http://localhost:8000 +export THOTH_EXPORT_API=http://localhost:8181 +``` + #### API ```sh From ee7d38a378b158ceb8ca8a425c00cb47adc2071f Mon Sep 17 00:00:00 2001 From: rhigman <73792779+rhigman@users.noreply.github.com> Date: Thu, 2 Dec 2021 15:25:46 +0000 Subject: [PATCH 2/6] Fix new Clippy lints (redundant closures/impls) under rustc 1.57.0 --- CHANGELOG.md | 2 ++ thoth-api/src/model/mod.rs | 32 +++--------------------- thoth-app/src/component/publication.rs | 1 + thoth-app/src/component/work.rs | 1 + thoth-export-server/src/csv/csv_thoth.rs | 28 ++++++++++----------- 5 files changed, 22 insertions(+), 42 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9a92384..22f80afc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed + - Removed redundant closures and `impl`s to comply with [`rustc 1.57.0`](https://github.com/rust-lang/rust/releases/tag/1.57.0) ## [[0.6.0]](https://github.com/thoth-pub/thoth/releases/tag/v0.6.0) - 2021-11-29 ### Added diff --git a/thoth-api/src/model/mod.rs b/thoth-api/src/model/mod.rs index f025bb0b..64a2c8c6 100644 --- a/thoth-api/src/model/mod.rs +++ b/thoth-api/src/model/mod.rs @@ -34,7 +34,7 @@ pub enum LengthUnit { description = r#"Digital Object Identifier. Expressed as `^https:\/\/doi\.org\/10\.\d{4,9}\/[-._\;\(\)\/:a-zA-Z0-9]+$`"# ) )] -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)] pub struct Doi(String); #[cfg_attr( @@ -44,7 +44,7 @@ pub struct Doi(String); description = "13-digit International Standard Book Number, with its parts separated by hyphens" ) )] -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)] pub struct Isbn(String); #[cfg_attr( @@ -54,7 +54,7 @@ pub struct Isbn(String); description = r#"ORCID (Open Researcher and Contributor ID) identifier. Expressed as `^https:\/\/orcid\.org\/0000-000(1-[5-9]|2-[0-9]|3-[0-4])\d{3}-\d{3}[\dX]$`"# ) )] -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)] pub struct Orcid(String); #[cfg_attr( @@ -64,7 +64,7 @@ pub struct Orcid(String); description = r#"ROR (Research Organization Registry) identifier. Expressed as `^https:\/\/ror\.org\/0[a-hjkmnp-z0-9]{6}\d{2}$`"# ) )] -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)] pub struct Ror(String); #[cfg_attr( @@ -81,30 +81,6 @@ impl Default for LengthUnit { } } -impl Default for Doi { - fn default() -> Doi { - Doi(Default::default()) - } -} - -impl Default for Isbn { - fn default() -> Isbn { - Isbn(Default::default()) - } -} - -impl Default for Orcid { - fn default() -> Orcid { - Orcid(Default::default()) - } -} - -impl Default for Ror { - fn default() -> Ror { - Ror(Default::default()) - } -} - impl Default for Timestamp { fn default() -> Timestamp { Timestamp(TimeZone::timestamp(&Utc, 0, 0)) diff --git a/thoth-app/src/component/publication.rs b/thoth-app/src/component/publication.rs index c08c1739..1567edf3 100644 --- a/thoth-app/src/component/publication.rs +++ b/thoth-app/src/component/publication.rs @@ -47,6 +47,7 @@ pub struct PublicationComponent { props: Props, } +#[allow(clippy::large_enum_variant)] pub enum Msg { SetPublicationFetchState(FetchActionPublication), GetPublication, diff --git a/thoth-app/src/component/work.rs b/thoth-app/src/component/work.rs index ca3cc1ee..be54ac55 100644 --- a/thoth-app/src/component/work.rs +++ b/thoth-app/src/component/work.rs @@ -100,6 +100,7 @@ struct WorkFormData { length_units: Vec, } +#[allow(clippy::large_enum_variant)] pub enum Msg { SetWorkFetchState(FetchActionWork), GetWork, diff --git a/thoth-export-server/src/csv/csv_thoth.rs b/thoth-export-server/src/csv/csv_thoth.rs index ef55b8fb..df0e87cd 100644 --- a/thoth-export-server/src/csv/csv_thoth.rs +++ b/thoth-export-server/src/csv/csv_thoth.rs @@ -141,77 +141,77 @@ impl From for CsvThothRow { &work .contributions .iter() - .map(|c| CsvCell::::csv_cell(c)) + .map(CsvCell::::csv_cell) .collect::>(), ), publications: CsvCell::::csv_cell( &work .publications .iter() - .map(|p| CsvCell::::csv_cell(p)) + .map(CsvCell::::csv_cell) .collect::>(), ), series: CsvCell::::csv_cell( &work .issues .iter() - .map(|i| CsvCell::::csv_cell(i)) + .map(CsvCell::::csv_cell) .collect::>(), ), languages: CsvCell::::csv_cell( &work .languages .iter() - .map(|l| CsvCell::::csv_cell(l)) + .map(CsvCell::::csv_cell) .collect::>(), ), bic: CsvCell::::csv_cell( &subjects .iter() .filter(|s| s.subject_type.eq(&SubjectType::BIC)) - .map(|s| CsvCell::::csv_cell(s)) + .map(CsvCell::::csv_cell) .collect::>(), ), thema: CsvCell::::csv_cell( &subjects .iter() .filter(|s| s.subject_type.eq(&SubjectType::THEMA)) - .map(|s| CsvCell::::csv_cell(s)) + .map(CsvCell::::csv_cell) .collect::>(), ), bisac: CsvCell::::csv_cell( &subjects .iter() .filter(|s| s.subject_type.eq(&SubjectType::BISAC)) - .map(|s| CsvCell::::csv_cell(s)) + .map(CsvCell::::csv_cell) .collect::>(), ), lcc: CsvCell::::csv_cell( &subjects .iter() .filter(|s| s.subject_type.eq(&SubjectType::LCC)) - .map(|s| CsvCell::::csv_cell(s)) + .map(CsvCell::::csv_cell) .collect::>(), ), custom: CsvCell::::csv_cell( &subjects .iter() .filter(|s| s.subject_type.eq(&SubjectType::CUSTOM)) - .map(|s| CsvCell::::csv_cell(s)) + .map(CsvCell::::csv_cell) .collect::>(), ), keywords: CsvCell::::csv_cell( &subjects .iter() .filter(|s| s.subject_type.eq(&SubjectType::KEYWORD)) - .map(|s| CsvCell::::csv_cell(s)) + .map(CsvCell::::csv_cell) .collect::>(), ), funding: CsvCell::::csv_cell( &work .fundings .iter() - .map(|f| CsvCell::::csv_cell(f)) + .map(CsvCell::::csv_cell) .collect::>(), ), } @@ -241,14 +241,14 @@ impl CsvCell for WorkPublications { &self .prices .iter() - .map(|p| CsvCell::::csv_cell(p)) + .map(CsvCell::::csv_cell) .collect::>(), ), CsvCell::::csv_cell( &self .locations .iter() - .map(|l| CsvCell::::csv_cell(l)) + .map(CsvCell::::csv_cell) .collect::>(), ), ) @@ -272,7 +272,7 @@ impl CsvCell for WorkContributions { &self .affiliations .iter() - .map(|p| CsvCell::::csv_cell(p)) + .map(CsvCell::::csv_cell) .collect::>(), ) ) From c53dcb96c8871d0379210bfbbf02bec2454637b1 Mon Sep 17 00:00:00 2001 From: rhigman <73792779+rhigman@users.noreply.github.com> Date: Mon, 13 Dec 2021 12:08:01 +0000 Subject: [PATCH 3/6] Update Thema codes mapping to v1.4.2 --- thoth-api/src/model/subject/mod.rs | 4509 ++++++++++++++++------------ 1 file changed, 2623 insertions(+), 1886 deletions(-) diff --git a/thoth-api/src/model/subject/mod.rs b/thoth-api/src/model/subject/mod.rs index a9b25e35..d528cec5 100644 --- a/thoth-api/src/model/subject/mod.rs +++ b/thoth-api/src/model/subject/mod.rs @@ -199,111 +199,129 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "A" => "The Arts", "AB" => "The arts: general issues", "ABA" => "Theory of art", - "ABC" => "Conservation, restoration & care of artworks", - "ABK" => "Forgery, falsification & theft of artworks", + "ABC" => "Conservation, restoration and care of artworks", + "ABK" => "Forgery, falsification and theft of artworks", "ABQ" => "Art: financial aspects", - "AF" => "Fine arts: art forms", - "AFC" => "Painting & paintings", - "AFCC" => "Paintings & painting in watercolours", - "AFCL" => "Paintings & painting in oils", - "AFCM" => "Murals & wall paintings", - "AFF" => "Drawing & drawings", - "AFH" => "Prints & printmaking", - "AFJ" => "Other graphic art forms", - "AFK" => "Non-graphic art forms", + "AF" => "The Arts: art forms", + "AFC" => "Paintings and painting", + "AFCC" => "Paintings and painting in watercolours or pastels", + "AFCL" => "Paintings and painting in oils", + "AFCM" => "Murals and wall paintings", + "AFCP" => "Paintings and painting in ink", + "AFF" => "Drawing and drawings", + "AFFC" => "Drawing and drawings in pencil, charcoal, crayon or pastel", + "AFFK" => "Drawing and drawings in pen or brush and ink", + "AFH" => "Prints and printmaking", + "AFJ" => "Other graphic or visual art forms", + "AFJY" => "Body art and tattoos", + "AFK" => "Non-graphic and electronic art forms", "AFKB" => "Sculpture", - "AFKC" => "Carvings: artworks", - "AFKG" => "Precious metal, precious stones & jewellery: artworks & design", + "AFKC" => "Carvings, masks, reliefs", + "AFKG" => "Precious metal, precious stones and jewellery: artworks and design", "AFKN" => "Installation art", "AFKP" => "Performance art", - "AFKV" => "Electronic, holographic & video art", - "AFP" => "Ceramic & glass: artworks", + "AFKV" => "Digital, video and new media arts", + "AFP" => "Ceramics, mosaic and glass: artworks", "AFT" => "Decorative arts", "AFW" => "Textile artworks", - "AG" => "Fine arts: treatments & subjects", + "AG" => "The Arts: treatments and subjects", "AGA" => "History of art", "AGB" => "Individual artists, art monographs", - "AGC" => "Exhibition catalogues & specific collections", + "AGC" => "Exhibition catalogues and specific collections", "AGH" => "Human figures depicted in art", - "AGHF" => "Portraits & self-portraiture in art", + "AGHF" => "Portraits and self-portraiture in art", "AGHN" => "Nudes depicted in art", "AGHX" => "Erotic art", - "AGK" => "Small-scale, secular & domestic scenes in art", + "AGK" => "Small-scale, secular and domestic scenes in art", "AGN" => "Nature in art", "AGNA" => "Animals in art", "AGNB" => "Botanical art", "AGNL" => "Landscapes / seascapes", "AGNS" => "Still life", - "AGP" => "Man-made objects depicted in art (cityscapes, machines, etc)", - "AGR" => "Religious art", - "AGZ" => "Art techniques & principles", - "AJ" => "Photography & photographs", + "AGP" => "Man-made objects depicted in art", + "AGR" => "Religious and ceremonial art", + "AGT" => "Public art", + "AGTS" => "Urban arts", + "AGZ" => "The Arts: techniques and principles", + "AGZC" => "Colours and colour theory", + "AJ" => "Photography and photographs", "AJC" => "Photographs: collections", "AJCD" => "Individual photographers", - "AJCP" => "Photography: portraits & self-portraiture", - "AJCX" => "Erotic & nude photography", - "AJF" => "Photojournalism", - "AJT" => "Photographic equipment & techniques: general", + "AJCP" => "Photography: portraits and self-portraiture", + "AJCX" => "Erotic and nude photography", + "AJF" => "Photojournalism and documentary photography", + "AJT" => "Photographic equipment and techniques: general", "AJTA" => "Camera-specific manuals", - "AJTF" => "Photography: specific techniques", + "AJTF" => "Photography: subject-specific techniques and principles", + "AJTH" => "Digital photography", "AJTV" => "Video photography / videography", - "AK" => "Industrial / commercial art & design", - "AKB" => "Individual designers", + "AK" => "Design, Industrial and commercial arts, illustration", + "AKB" => "Individual designers or design groups", "AKC" => "Graphic design", - "AKD" => "Typography & lettering", - "AKH" => "Book design", + "AKD" => "Typography and lettering", + "AKH" => "Book design and Bookbinding", "AKHM" => "Manuscripts and illumination", - "AKL" => "Illustration & commercial art", + "AKL" => "Illustration and commercial art", "AKLB" => "Illustration", - "AKLC" => "Comic book & cartoon art", - "AKLC1" => "Graphic novel & Manga artwork", + "AKLC" => "Comic book and cartoon artwork", + "AKLC1" => "Graphic novel and Manga artwork", "AKLF" => "Computer game art", "AKLP" => "Poster art", "AKP" => "Product design", "AKR" => "Furniture design", - "AKT" => "Fashion & textiles", + "AKT" => "Fashion and textile design", + "AKTF" => "Fashion and textile design: accessories", "AKTR" => "National or regional costume", + "AKX" => "History of design", "AM" => "Architecture", "AMA" => "Theory of architecture", - "AMB" => "Individual architects & architectural firms", - "AMC" => "Architectural structure & design", + "AMB" => "Individual architects and architectural firms", + "AMC" => "Architectural structure and design", "AMCD" => "Architectural details, components and motifs", - "AMCR" => "Environmentally-friendly (‘green’) architecture & design", + "AMCM" => "Materials in architecture", + "AMCR" => "Environmentally-friendly (‘green’) architecture and design", "AMD" => "Architecture: professional practice", - "AMG" => "Architecture: public buildings", - "AMK" => "Architecture: residential buildings, domestic buildings", - "AMKH" => "Architecture: holiday homes & cabins", - "AMKL" => "Architecture: castles & fortifications", - "AMKS" => "Architecture: palaces, stately homes & mansions", + "AMG" => "Architecture: public, commercial and industrial buildings", + "AMK" => "Architecture: residential and domestic buildings", + "AMKH" => "Architecture: small-scale domestic buildings", + "AMKL" => "Architecture: castles and fortifications", + "AMKS" => "Architecture: palaces, stately homes and mansions", "AMN" => "Architecture: religious buildings", "AMR" => "Architecture: interior design", - "AMV" => "Landscape architecture & design", - "AMVD" => "City & town planning: architectural aspects", + "AMV" => "Landscape architecture and design", + "AMVD" => "City and town planning: architectural aspects", "AMX" => "History of architecture", "AT" => "Performing arts", - "ATC" => "Individual actors & performers", + "ATC" => "Individual actors and performers", "ATD" => "Theatre studies", "ATDC" => "Acting techniques", - "ATDF" => "Theatre direction & production", - "ATDH" => "Theatre: technical & background skills", + "ATDF" => "Theatre direction and production", + "ATDH" => "Theatre: technical and background skills", "ATDS" => "Theatre management", "ATF" => "Films, cinema", - "ATFA" => "Film history, theory & criticism", + "ATFA" => "Film history, theory or criticism", "ATFB" => "Individual film directors, film-makers", - "ATFD" => "Film scripts & screenplays", - "ATFG" => "Film guides & reviews", - "ATFN" => "Film: styles & genres", + "ATFD" => "Film scripts and screenplays", + "ATFG" => "Film guides and reviews", + "ATFN" => "Film: styles and genres", "ATFR" => "Documentary films", - "ATFV" => "Animated films", + "ATFV" => "Animated films and animation", "ATFV1" => "Anime", - "ATFX" => "Film production: technical & background skills", + "ATFX" => "Filmmaking and production: technical and background skills", "ATJ" => "Television", - "ATJD" => "Television screenplays, scripts & performances", - "ATJS" => "Television drama", - "ATJX" => "Television production: technical & background skills", - "ATL" => "Radio", - "ATLD" => "Radio plays, scripts & performances", - "ATN" => "Internet & digital media: arts & performance", + "ATJD" => "Television screenplays, scripts and performances", + "ATJS" => "Television: styles and genres", + "ATJX" => "Television production: technical and background skills", + "ATL" => "Radio / podcasts", + "ATLD" => "Radio plays, scripts and performances", + "ATM" => "Film, television, radio and performing arts genres", + "ATMB" => "Film, television, radio genres: Action, adventure, crime and thrillers", + "ATMC" => "Film, television, radio genres: Comedy and humour", + "ATMF" => "Film, television, radio genres: Drama", + "ATMH" => "Film, television, radio genres: Historical", + "ATMN" => "Film, television, radio genres: Science fiction, fantasy and horror", + "ATMP" => "Film, television, radio genres: superhero and comic book inspired", + "ATN" => "Internet and digital media: arts and performance", "ATQ" => "Dance", "ATQC" => "Choreography", "ATQL" => "Ballet", @@ -312,31 +330,33 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "ATQV" => "Dancers / choreographers", "ATQZ" => "Folk dancing", "ATX" => "Other performing arts", - "ATXC" => "Circus & circus skills", - "ATXD" => "Comedy & stand-up", - "ATXF" => "Conjuring & magic", - "ATXM" => "Puppetry, miniature & toy theatre", + "ATXC" => "Circus and circus skills", + "ATXD" => "Comedy and stand-up", + "ATXF" => "Conjuring and magic", + "ATXM" => "Puppetry, miniature and toy theatre", "ATXP" => "Pageants, parades, festivals", "ATXZ" => "Animal spectacles, performing animals", "ATXZ1" => "Bullfighting", + "ATY" => "History of Performing Arts", + "ATZ" => "Film, television, radio and performing arts: companion works", "AV" => "Music", - "AVA" => "Theory of music & musicology", - "AVC" => "Music reviews & criticism", - "AVD" => "Discographies & buyer’s guides", - "AVL" => "Music: styles & genres", - "AVLA" => "Art music, orchestral & formal music", + "AVA" => "Theory of music and musicology", + "AVC" => "Music reviews and criticism", + "AVD" => "Discographies and buyer’s guides", + "AVL" => "Music: styles and genres", + "AVLA" => "Art music, orchestral and formal music", "AVLC" => "Choral music", "AVLF" => "Opera", - "AVLK" => "Sacred & religious music", - "AVLM" => "Music of film & stage", + "AVLK" => "Sacred and religious music", + "AVLM" => "Music of film and stage", "AVLP" => "Popular music", - "AVLT" => "Traditional & folk music", - "AVLW" => "World music & regional styles", + "AVLT" => "Traditional and folk music", + "AVLW" => "Other global and regional music styles", "AVLX" => "Electronic music", "AVM" => "History of music", - "AVN" => "Composers & songwriters", - "AVP" => "Musicians, singers, bands & groups", - "AVQ" => "Musical scores, lyrics & libretti", + "AVN" => "Composers and songwriters", + "AVP" => "Musicians, singers, bands and groups", + "AVQ" => "Musical scores, lyrics and libretti", "AVQS" => "Songbooks", "AVR" => "Musical instruments", "AVRG" => "Keyboard instruments", @@ -351,40 +371,43 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "AVRS" => "Electronic musical instruments", "AVS" => "Techniques of music / music tutorials / teaching of music", "AVSA" => "Singing: techniques", - "AVX" => "Music recording & reproduction", - "C" => "Language & Linguistics", - "CB" => "Language: reference & general", + "AVSD" => "Music composition", + "AVX" => "Music recording and reproduction", + "C" => "Language and Linguistics", + "CB" => "Language: reference and general", "CBD" => "Dictionaries", - "CBDX" => "Bilingual & multilingual dictionaries", + "CBDX" => "Bilingual and multilingual dictionaries", "CBF" => "Thesauri", - "CBG" => "Usage & grammar guides", - "CBP" => "Speaking in public: advice & guides", - "CBV" => "Creative writing & creative writing guides", + "CBG" => "Usage and grammar guides", + "CBP" => "Speaking in public: advice and guides", + "CBV" => "Creative writing and creative writing guides", "CBVS" => "Screenwriting techniques", - "CBW" => "Writing & editing guides", - "CBX" => "Language: history & general works", + "CBW" => "Writing and editing guides", + "CBX" => "Language: history and general works", "CF" => "Linguistics", "CFA" => "Philosophy of language", "CFB" => "Sociolinguistics", "CFC" => "Literacy", - "CFD" => "Psycholinguistics & cognitive linguistics", + "CFD" => "Psycholinguistics and cognitive linguistics", "CFDC" => "Language acquisition", - "CFDM" => "Bilingualism & multilingualism", - "CFF" => "Historical & comparative linguistics", - "CFFD" => "Dialect, slang & jargon", + "CFDM" => "Bilingualism and multilingualism", + "CFF" => "Historical and comparative linguistics", + "CFFD" => "Dialect, slang and jargon", "CFG" => "Semantics, discourse analysis, stylistics", "CFH" => "Phonetics, phonology", - "CFK" => "Grammar, syntax & morphology", + "CFK" => "Grammar, syntax and morphology", "CFL" => "Palaeography", "CFLA" => "Writing systems, alphabets", "CFM" => "Lexicography", - "CFP" => "Translation & interpretation", - "CFX" => "Computational & corpus linguistics", - "CFZ" => "Sign languages, Braille & other linguistic communication", - "CJ" => "Language teaching & learning", - "CJA" => "Language teaching theory & methods", - "CJB" => "Language teaching & learning material & coursework", - "CJBG" => "Language learning: grammar, vocabulary & pronunciation", + "CFP" => "Translation and interpretation", + "CFX" => "Computational and corpus linguistics", + "CFZ" => "Sign languages, Braille and other linguistic communication", + "CJ" => "Language teaching and learning", + "CJA" => "Language teaching theory and methods", + "CJAB" => "Language teaching and learning: first or native languages", + "CJAD" => "Language teaching and learning: second or additional languages", + "CJB" => "Language teaching and learning material and coursework", + "CJBG" => "Language learning: grammar, vocabulary and pronunciation", "CJBR" => "Language readers", "CJBT" => "Language self-study", "CJC" => "Language learning: specific skills", @@ -393,117 +416,126 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "CJCR" => "Language learning: reading skills", "CJCW" => "Language learning: writing skills", "CJP" => "Language learning for specific purposes", - "CJPD" => "Language learning for business", - "CJPG" => "Language learning for technical & scientific purposes", - "D" => "Biography, Literature & Literary studies", - "DB" => "Ancient, classical & mediaeval texts", - "DBS" => "Sagas & epics", - "DBSG" => "Ancient Greek & Roman legends", - "DBSN" => "Icelandic & Old Norse sagas", + "CJPD" => "Language learning for business, professional and vocational", + "CJPG" => "Language learning for academic, technical and scientific purposes", + "D" => "Biography, Literature and Literary studies", + "DB" => "Ancient, classical and medieval texts", + "DBS" => "Ancient Sagas and epics", + "DBSG" => "Ancient Greek and Roman literature", + "DBSN" => "Icelandic and Old Norse sagas", "DC" => "Poetry", - "DCA" => "Classic & pre-20th century poetry", - "DCC" => "Modern & contemporary poetry (c 1900 onwards)", + "DCA" => "Classic and pre-20th century poetry", + "DCC" => "Modern and contemporary poetry (c 1900 onwards)", "DCF" => "Poetry by individual poets", "DCQ" => "Poetry anthologies (various poets)", + "DCR" => "Poetry by form", + "DCRB" => "Poetry by form: Haiku", + "DCRC" => "Poetry by form: Tanka", + "DCRG" => "Poetry by form: Ghazal", + "DCRH" => "Poetry by form: Calligram", + "DCRL" => "Poetry by form: Limerick", + "DCRS" => "Poetry by form: Sonnet", "DD" => "Plays, playscripts", - "DDA" => "Classic & pre-20th century plays", - "DDC" => "Modern & contemporary plays (c 1900 onwards)", + "DDA" => "Classic and pre-20th century plays", + "DDC" => "Modern and contemporary plays (c 1900 onwards)", "DDL" => "Comedic plays", "DDT" => "Tragic plays", - "DN" => "Biography & non-fiction prose", + "DDV" => "Monologues / Duologues", + "DN" => "Biography and non-fiction prose", "DNB" => "Biography: general", "DNBA" => "Autobiography: general", - "DNBB" => "Biography: business & industry", - "DNBB1" => "Autobiography: business & industry", - "DNBF" => "Biography: arts & entertainment", - "DNBF1" => "Autobiography: arts & entertainment", - "DNBH" => "Biography: historical, political & military", - "DNBH1" => "Autobiography: historical, political & military", - "DNBL" => "Biography: literary", - "DNBL1" => "Autobiography: literary", - "DNBM" => "Biography: philosophy & social sciences", - "DNBM1" => "Autobiography: philosophy & social sciences", - "DNBP" => "Biography: adventurers & explorers", - "DNBP1" => "Autobiography: adventurers & explorers", + "DNBB" => "Biography: business and industry", + "DNBB1" => "Autobiography: business and industry", + "DNBF" => "Biography: arts and entertainment", + "DNBF1" => "Autobiography: arts and entertainment", + "DNBH" => "Biography: historical, political and military", + "DNBH1" => "Autobiography: historical, political and military", + "DNBL" => "Biography: writers", + "DNBL1" => "Autobiography: writers", + "DNBM" => "Biography: philosophy and social sciences", + "DNBM1" => "Autobiography: philosophy and social sciences", + "DNBP" => "Biography: adventurers and explorers", + "DNBP1" => "Autobiography: adventurers and explorers", "DNBR" => "Biography: royalty", "DNBR1" => "Autobiography: royalty", "DNBS" => "Biography: sport", "DNBS1" => "Autobiography: sport", - "DNBT" => "Biography: science, technology & medicine", - "DNBT1" => "Autobiography: science, technology & medicine", - "DNBX" => "Biography: religious & spiritual", - "DNBX1" => "Autobiography: religious & spiritual", + "DNBT" => "Biography: science, technology and medicine", + "DNBT1" => "Autobiography: science, technology and medicine", + "DNBX" => "Biography: religious and spiritual", + "DNBX1" => "Autobiography: religious and spiritual", "DNBZ" => "Collected biographies", "DNC" => "Memoirs", - "DND" => "Diaries, letters & journals", + "DND" => "Diaries, letters and journals", "DNG" => "Animal life stories", "DNL" => "Literary essays", - "DNP" => "Reportage & collected journalism", + "DNP" => "Reportage, journalism or collected columns", "DNS" => "Speeches", "DNT" => "Anthologies: general", "DNX" => "True stories: general", "DNXC" => "True crime", - "DNXC3" => "True crime: serial killers & murderers", + "DNXC3" => "True crime: serial killers and murderers", "DNXH" => "True stories of discovery", - "DNXM" => "True war & combat stories", - "DNXP" => "True stories of heroism, endurance & survival", - "DNXR" => "True stories of survival of abuse & injustice", - "DNXZ" => "Erotic confessions & true stories", - "DS" => "Literature: history & criticism", + "DNXM" => "True war and combat stories", + "DNXP" => "True stories of heroism, endurance and survival", + "DNXR" => "True stories of survival of abuse and injustice", + "DNXZ" => "Erotic confessions and true stories", + "DS" => "Literature: history and criticism", "DSA" => "Literary theory", "DSB" => "Literary studies: general", - "DSBB" => "Literary studies: ancient, classical & mediaeval", + "DSBB" => "Literary studies: ancient, classical and medieval", "DSBC" => "Literary studies: c 1400 to c 1600", "DSBD" => "Literary studies: c 1600 to c 1800", "DSBF" => "Literary studies: c 1800 to c 1900", "DSBH" => "Literary studies: c 1900 to c 2000", - "DSBH5" => "Literary studies: post-colonial literature", + "DSBH5" => "Literary studies: postcolonial literature", "DSBJ" => "Literary studies: from c 2000", - "DSC" => "Literary studies: poetry & poets", - "DSG" => "Literary studies: plays & playwrights", - "DSK" => "Literary studies: fiction, novelists & prose writers", + "DSC" => "Literary studies: poetry and poets", + "DSG" => "Literary studies: plays and playwrights", + "DSK" => "Literary studies: fiction, novelists and prose writers", "DSM" => "Comparative literature", "DSR" => "Literary reference works", - "DSRC" => "Literary companions, book reviews & guides", - "DSY" => "Children’s & teenage literature studies: general", - "DSYC" => "Children’s & teenage book reviews & guides", - "F" => "Fiction & Related items", - "FB" => "Fiction: general & literary", - "FBA" => "Modern & contemporary fiction", + "DSRC" => "Literary companions, book reviews and guides", + "DSY" => "Children’s and teenage literature studies: general", + "DSYC" => "Children’s and teenage book reviews and guides", + "F" => "Fiction and Related items", + "FB" => "Fiction: general and literary", + "FBA" => "Modern and contemporary fiction", "FBAN" => "‘Street’ fiction", "FBC" => "Classic fiction", "FC" => "Biographical fiction", "FD" => "Speculative fiction", - "FDB" => "Dystopian & utopian fiction", + "FDB" => "Dystopian and utopian fiction", "FDK" => "Alternative history fiction", - "FF" => "Crime & mystery fiction", - "FFC" => "Classic crime & mystery fiction", - "FFD" => "Crime & mystery: private investigator / amateur detectives", - "FFH" => "Historical crime & mysteries", - "FFJ" => "Crime & mystery: cosy mystery", - "FFK" => "Comic (humorous) crime & mystery", - "FFL" => "Crime & mystery: hard-boiled crime, noir fiction", - "FFP" => "Crime & mystery: police procedural", - "FFS" => "Crime & mystery: women sleuths", + "FDM" => "Afrofuturism / Black Speculative fiction", + "FF" => "Crime and mystery fiction", + "FFC" => "Classic crime and mystery fiction", + "FFD" => "Crime and mystery: private investigator / amateur detectives", + "FFH" => "Historical crime and mysteries", + "FFJ" => "Crime and mystery: cosy mystery", + "FFK" => "Comic (humorous) crime and mystery", + "FFL" => "Crime and mystery: hard-boiled crime, noir fiction", + "FFP" => "Crime and mystery: police procedural", + "FFS" => "Crime and mystery: women sleuths", "FG" => "Sports fiction", "FH" => "Thriller / suspense fiction", - "FHD" => "Espionage & spy thriller", + "FHD" => "Espionage and spy thriller", "FHK" => "Technothriller", "FHP" => "Political / legal thriller", "FHQ" => "Esoteric thriller", "FHX" => "Psychological thriller", "FJ" => "Adventure fiction", "FJH" => "Historical adventure fiction", - "FJM" => "War, combat & military fiction", + "FJM" => "War, combat and military adventure fiction", "FJMC" => "Napoleonic War fiction", "FJMF" => "First World War fiction", "FJMS" => "Second World War fiction", "FJMV" => "Vietnam War fiction", "FJN" => "Sea stories", "FJW" => "Adventure fiction: Westerns", - "FK" => "Horror & supernatural fiction", - "FKC" => "Classic horror & ghost stories", - "FKM" => "Contemporary horror & ghost stories", + "FK" => "Horror and supernatural fiction", + "FKC" => "Classic horror and ghost stories", + "FKM" => "Contemporary horror and ghost stories", "FKW" => "Occult fiction", "FL" => "Science fiction", "FLC" => "Classic science fiction", @@ -511,7 +543,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "FLM" => "Science fiction: steampunk", "FLP" => "Science fiction: near-future", "FLPB" => "Science fiction: cyberpunk / biopunk", - "FLQ" => "Science fiction: apocalyptic & post-apocalyptic", + "FLQ" => "Science fiction: apocalyptic and post-apocalyptic", "FLR" => "Science fiction: military", "FLS" => "Science fiction: space opera", "FLU" => "Science fiction: aliens / UFOs", @@ -525,7 +557,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "FMT" => "Dark fantasy", "FMW" => "Contemporary fantasy", "FMX" => "Urban fantasy", - "FN" => "Myths & fairy tales", + "FN" => "Traditional stories, myths and fairy tales", + "FNF" => "Fairy and Folk tales", + "FNM" => "Myths and Legends", "FP" => "Erotic fiction", "FQ" => "Contemporary lifestyle fiction", "FR" => "Romance", @@ -536,23 +570,25 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "FRM" => "Romantic suspense", "FRP" => "Romance in uniform", "FRQ" => "Romance: medical", - "FRT" => "Romance: fantasy & paranormal", + "FRT" => "Romance: fantasy and paranormal", "FRU" => "Romance: time travel", "FRV" => "Dark romance", "FRX" => "Erotic romance", "FS" => "Family life fiction", "FT" => "Generational sagas", "FU" => "Humorous fiction", - "FUP" => "Satirical fiction & parodies", + "FUP" => "Satirical fiction and parodies", "FV" => "Historical fiction", - "FW" => "Religious & spiritual fiction", + "FW" => "Religious and spiritual fiction", "FX" => "Fiction: narrative themes", "FXB" => "Narrative theme: Coming of age", - "FXD" => "Narrative theme: Love & relationships", + "FXD" => "Narrative theme: Love and relationships", "FXE" => "Narrative theme: Environmental issues", "FXL" => "Narrative theme: Death, grief, loss", "FXM" => "Narrative theme: Interior life", + "FXN" => "Narrative theme: Identity / belonging", "FXP" => "Narrative theme: Politics", + "FXQ" => "Narrative theme: Displacement, exile, migration", "FXR" => "Narrative theme: Sense of place", "FXS" => "Narrative theme: Social issues", "FY" => "Fiction: special features", @@ -560,328 +596,348 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "FYD" => "Epistolary fiction", "FYH" => "Fiction: pastiche", "FYM" => "Fiction: mashup", + "FYQ" => "Fiction: special features: Yaoi / BL novels", "FYR" => "Category fiction", + "FYS" => "Fiction: special features: ranobe (‘light novels’)", "FYT" => "Fiction in translation", "FYV" => "Fiction: inspired by or adapted from", + "FYW" => "Fiction: special features: game-related", "FZ" => "Fiction companions", - "G" => "Reference, Information & Interdisciplinary subjects", - "GB" => "Encyclopaedias & reference works", + "G" => "Reference, Information and Interdisciplinary subjects", + "GB" => "Encyclopaedias and reference works", "GBA" => "General encyclopaedias", "GBC" => "Reference works", "GBCB" => "Dictionaries of biography", "GBCD" => "Subject dictionaries", - "GBCQ" => "Quotations, proverbs & sayings", + "GBCQ" => "Quotations, proverbs and sayings", "GBCR" => "Bibliographies, catalogues", "GBCS" => "Serials, periodicals, abstracts, indexes", "GBCT" => "Directories", "GBCY" => "Yearbooks, annuals, almanacs", - "GBD" => "Miscellanies & compendia", - "GL" => "Library & information sciences / Museology", - "GLC" => "Library, archive & information management", - "GLCA" => "Information retrieval & access", - "GLF" => "IT, Internet & electronic resources in libraries", - "GLH" => "Acquisitions & collection development", - "GLK" => "Bibliographic & subject control", - "GLM" => "Library & information services", - "GLP" => "Archiving, preservation & digitization", - "GLZ" => "Museology & heritage studies", - "GP" => "Research & information: general", + "GBD" => "Miscellanies and compendia", + "GL" => "Library and information sciences / Museology", + "GLC" => "Library, archive and information management", + "GLCA" => "Information retrieval and access", + "GLF" => "IT, Internet and electronic resources in libraries", + "GLH" => "Acquisitions and collection development", + "GLK" => "Bibliographic and subject control", + "GLM" => "Library and information services", + "GLP" => "Archiving, preservation and digitization", + "GLZ" => "Museology and heritage studies", + "GP" => "Research and information: general", "GPF" => "Information theory", - "GPFC" => "Cybernetics & systems theory", - "GPH" => "Data analysis: general", - "GPJ" => "Coding theory & cryptology", + "GPFC" => "Cybernetics and systems theory", + "GPH" => "Data science and analysis: general", + "GPJ" => "Coding theory and cryptology", "GPQ" => "Decision theory: general", "GPQD" => "Risk assessment", "GPS" => "Research methods: general", "GT" => "Interdisciplinary studies", - "GTB" => "History of scholarship (principally of social sciences & humanities)", + "GTB" => "History of scholarship (principally of social sciences and humanities)", "GTC" => "Communication studies", "GTD" => "Semiotics / semiology", "GTK" => "Cognitive studies", - "GTM" => "Regional studies", + "GTM" => "Regional / International studies", "GTP" => "Development studies", "GTQ" => "Globalization", "GTT" => "Flags, emblems, symbols, logos", - "GTU" => "Peace studies & conflict resolution", - "GTV" => "Institutions & learned societies: general", - "GTZ" => "General studies", - "J" => "Society & Social Sciences", - "JB" => "Society & culture: general", - "JBC" => "Cultural & media studies", + "GTU" => "Peace studies and conflict resolution", + "GTV" => "Institutions and learned societies: general", + "GTZ" => "General studies and General knowledge", + "J" => "Society and Social Sciences", + "JB" => "Society and culture: general", + "JBC" => "Cultural and media studies", "JBCC" => "Cultural studies", "JBCC1" => "Popular culture", "JBCC2" => "Material culture", - "JBCC3" => "Cultural studies: fashion & society", - "JBCC4" => "Cultural studies: food & society", - "JBCC6" => "Cultural studies: customs & traditions", + "JBCC3" => "Cultural studies: fashion and society", + "JBCC4" => "Cultural studies: food and society", + "JBCC6" => "Cultural studies: customs and traditions", + "JBCC7" => "Cross-cultural studies and topics", + "JBCC8" => "Cultural policies and debates", "JBCC9" => "History of ideas", "JBCT" => "Media studies", - "JBCT1" => "Media studies: internet, digital media & society", - "JBCT2" => "Media studies: TV & society", - "JBCT3" => "Media studies: advertising & society", + "JBCT1" => "Media studies: internet, digital media and society", + "JBCT2" => "Media studies: TV and society", + "JBCT3" => "Media studies: advertising and society", "JBCT4" => "Media studies: journalism", - "JBF" => "Social & ethical issues", - "JBFA" => "Social discrimination & equal treatment", - "JBFB" => "Social Integration & assimilation", - "JBFC" => "Poverty & precarity", - "JBFD" => "Housing & homelessness", + "JBCT5" => "Disinformation and misinformation", + "JBF" => "Social and ethical issues", + "JBFA" => "Social discrimination and equal treatment", + "JBFA1" => "Racism and racial discrimination", + "JBFB" => "Social Integration and assimilation", + "JBFC" => "Poverty and precarity", + "JBFD" => "Housing and homelessness", "JBFF" => "Social impact of disasters", - "JBFG" => "Refugees & political asylum", - "JBFG1" => "Aiding escape & evasion", - "JBFH" => "Migration, immigration & emigration", + "JBFG" => "Refugees and political asylum", + "JBFG1" => "Aiding escape and evasion", + "JBFH" => "Migration, immigration and emigration", "JBFJ" => "Human trafficking", - "JBFK" => "Violence & abuse in society", + "JBFK" => "Violence and abuse in society", "JBFK1" => "Child abuse", - "JBFK2" => "Sexual abuse & harassment", + "JBFK2" => "Sexual abuse and harassment", "JBFK3" => "Domestic abuse", - "JBFK4" => "Bullying & harassment", + "JBFK4" => "Bullying and harassment", + "JBFL" => "Control, privacy and safety in society", "JBFM" => "Disability: social aspects", - "JBFN" => "Health, illness & addiction: social aspects", + "JBFN" => "Health, illness and addiction: social aspects", + "JBFN2" => "Drugs and alcohol: social aspects", "JBFQ" => "Social mobility", "JBFS" => "Consumerism", - "JBFU" => "Animals & society", - "JBFV" => "Ethical issues & debates", - "JBFV1" => "Ethical issues: abortion & birth control", + "JBFU" => "Animals and society", + "JBFV" => "Ethical issues and debates", + "JBFV1" => "Ethical issues: abortion and birth control", "JBFV2" => "Ethical issues: capital punishment", "JBFV3" => "Ethical issues: censorship", - "JBFV4" => "Ethical issues: euthanasia & right to die", - "JBFV5" => "Ethical issues: scientific, technological & medical developments", - "JBFW" => "Sex & sexuality, social aspects", + "JBFV4" => "Ethical issues: euthanasia and right to die", + "JBFV5" => "Ethical issues: scientific, technological and medical developments", + "JBFW" => "Sex and sexuality, social aspects", "JBFX" => "Social attitudes", "JBFZ" => "Social forecasting, future studies", - "JBG" => "Popular beliefs & controversial knowledge", - "JBGB" => "Folklore, myths & legends", + "JBG" => "Popular beliefs and controversial knowledge", + "JBGB" => "Folklore, myths and legends", "JBGX" => "Conspiracy theories", - "JBS" => "Social groups", + "JBS" => "Social groups and identities", "JBSA" => "Social classes", "JBSC" => "Rural communities", "JBSD" => "Urban communities", "JBSF" => "Gender studies, gender groups", - "JBSF1" => "Gender studies: women & girls", - "JBSF11" => "Feminism & feminist theory", - "JBSF2" => "Gender studies: men & boys", - "JBSF3" => "Gender studies: transgender, transsexual, intersex people", - "JBSJ" => "Gay & Lesbian studies / LGBTQ studies", + "JBSF1" => "Gender studies: women and girls", + "JBSF11" => "Feminism and feminist theory", + "JBSF2" => "Gender studies: men and boys", + "JBSF3" => "Gender studies: ‘trans’, transgender people and gender variance", + "JBSJ" => "LGBTQ+ / Gay and Lesbian Studies", "JBSL" => "Ethnic studies", - "JBSL1" => "Ethnic groups & multicultural studies", + "JBSL1" => "Ethnic groups and multicultural studies", "JBSL11" => "Indigenous peoples", "JBSL13" => "Mixed heritage / mixed race groups or people", - "JBSP" => "Age groups & generations", + "JBSP" => "Age groups and generations", "JBSP1" => "Age groups: children", "JBSP2" => "Age groups: adolescents", "JBSP3" => "Age groups: adults", "JBSP4" => "Age groups: the elderly", - "JBSR" => "Social groups: religious groups & communities", + "JBSR" => "Social groups: religious groups and communities", "JBSW" => "Social groups: alternative lifestyles", "JBSX" => "Secret societies", - "JBSY" => "Social groups: clubs & societies", - "JH" => "Sociology & anthropology", + "JBSY" => "Social groups: clubs and societies", + "JH" => "Sociology and anthropology", "JHB" => "Sociology", "JHBA" => "Social theory", - "JHBC" => "Social research & statistics", - "JHBD" => "Population & demography", - "JHBK" => "Sociology: family & relationships", - "JHBL" => "Sociology: work & labour", - "JHBS" => "Sociology: sport & leisure", - "JHBZ" => "Sociology: death & dying", + "JHBC" => "Social research and statistics", + "JHBD" => "Population and demography", + "JHBK" => "Sociology: family and relationships", + "JHBL" => "Sociology: work and labour", + "JHBS" => "Sociology: sport and leisure", + "JHBZ" => "Sociology: death and dying", "JHM" => "Anthropology", - "JHMC" => "Social & cultural anthropology", - "JK" => "Social services & welfare, criminology", - "JKS" => "Social welfare & social services", - "JKSB" => "Welfare & benefit systems", - "JKSB1" => "Child welfare", - "JKSF" => "Adoption & fostering", + "JHMC" => "Social and cultural anthropology", + "JK" => "Social services and welfare, criminology", + "JKS" => "Social welfare and social services", + "JKSB" => "Welfare and benefit systems", + "JKSB1" => "Child welfare and youth services", + "JKSF" => "Adoption and fostering", "JKSG" => "Care of the elderly", - "JKSM" => "Care of the mentally ill", + "JKSL" => "Care of people with specific needs", + "JKSM" => "Care of people with mental health issues", "JKSN" => "Social work", - "JKSN1" => "Charities, voluntary services & philanthropy", - "JKSN2" => "Social counselling & advice services", - "JKSR" => "Aid & relief programmes", + "JKSN1" => "Charities, voluntary services and philanthropy", + "JKSN2" => "Social counselling and advice services", + "JKSR" => "Aid and relief programmes", "JKSW" => "Emergency services", - "JKSW1" => "Police & security services", + "JKSW1" => "Police and security services", "JKSW2" => "Fire services", - "JKSW3" => "Ambulance & rescue services", - "JKV" => "Crime & criminology", - "JKVC" => "Causes & prevention of crime", - "JKVF" => "Criminal investigation & detection", + "JKSW3" => "Ambulance and rescue services", + "JKV" => "Crime and criminology", + "JKVC" => "Causes and prevention of crime", + "JKVF" => "Criminal investigation and detection", "JKVF1" => "Forensic science", "JKVG" => "Drugs trade / drug trafficking", "JKVJ" => "Street crime", "JKVK" => "Corporate crime / white-collar crime", "JKVM" => "Organized crime", - "JKVP" => "Penology & punishment", + "JKVN" => "Violent crimes", + "JKVP" => "Penology and punishment", "JKVQ" => "Offenders", "JKVQ1" => "Rehabilitation of offenders", "JKVQ2" => "Juvenile offenders", "JKVS" => "Probation services", - "JKVV" => "Victimology & victims of crime", + "JKVV" => "Victimology and victims of crime", "JM" => "Psychology", - "JMA" => "Psychological theory, systems, schools & viewpoints", - "JMAF" => "Psychoanalytical & Freudian psychology", + "JMA" => "Psychological theory, systems, schools and viewpoints", + "JMAF" => "Psychoanalytical and Freudian psychology", "JMAF1" => "Lacanian psychoanalysis", - "JMAJ" => "Analytical & Jungian psychology", + "JMAJ" => "Analytical and Jungian psychology", "JMAL" => "Behaviourism, Behavioural theory", "JMAN" => "Humanistic psychology", "JMAP" => "Positive psychology", "JMAQ" => "Cognitivism, cognitive theory", "JMB" => "Psychological methodology", - "JMBT" => "Psychological testing & measurement", - "JMC" => "Child, developmental & lifespan psychology", + "JMBT" => "Psychological testing and measurement", + "JMC" => "Child, developmental and lifespan psychology", "JMD" => "Psychology of ageing", "JMF" => "Family psychology", "JMG" => "Psychology of gender", "JMH" => "Social, group or collective psychology", - "JMHC" => "Interpersonal communication & skills", - "JMJ" => "Occupational & industrial psychology", + "JMHC" => "Interpersonal communication and skills", + "JMJ" => "Occupational and industrial psychology", "JMK" => "Criminal or forensic psychology", "JML" => "Experimental psychology", - "JMM" => "Physiological & neuro-psychology, biopsychology", + "JMM" => "Physiological and neuro-psychology, biopsychology", "JMP" => "Abnormal psychology", "JMQ" => "Psychology: emotions", - "JMR" => "Cognition & cognitive psychology", + "JMR" => "Cognition and cognitive psychology", "JMS" => "Psychology: the self, ego, identity, personality", "JMT" => "Psychology: states of consciousness", "JMU" => "Psychology: sexual behaviour", "JMX" => "Parapsychological studies", "JN" => "Education", - "JNA" => "Philosophy & theory of education", - "JNAM" => "Moral & social purpose of education", + "JNA" => "Philosophy and theory of education", + "JNAM" => "Moral and social purpose of education", "JNB" => "History of education", "JNC" => "Educational psychology", - "JND" => "Educational systems & structures", - "JNDG" => "Curriculum planning & development", - "JNDH" => "Education: examinations & assessment", + "JND" => "Educational systems and structures", + "JNDG" => "Curriculum planning and development", + "JNDH" => "Education: examinations and assessment", "JNE" => "Social pedagogy", - "JNF" => "Educational strategies & policy", - "JNFC" => "Counselling of students", - "JNFK" => "Educational strategies & policy: inclusion", - "JNG" => "Early childhood care & education", + "JNF" => "Educational strategies and policy", + "JNFC" => "Counselling and care of students", + "JNFK" => "Educational strategies and policy: inclusion", + "JNG" => "Early childhood care and education", "JNH" => "Home schooling", - "JNK" => "Educational administration & organization", - "JNKG" => "Funding of education & student finance", + "JNK" => "Educational administration and organization", + "JNKG" => "Funding of education and student finance", "JNKH" => "Teaching staff", - "JNL" => "Schools & pre-schools", - "JNLA" => "Pre-school & kindergarten", - "JNLB" => "Primary & middle schools", + "JNL" => "Schools and pre-schools", + "JNLA" => "Pre-school and kindergarten", + "JNLB" => "Primary and middle schools", "JNLC" => "Secondary schools", "JNLP" => "Independent schools, private education", "JNLR" => "Faith (religious) schools", "JNLV" => "Outdoor schools / education", - "JNM" => "Higher & further education, tertiary education", + "JNM" => "Higher education, tertiary education", "JNMT" => "Teacher training", "JNP" => "Adult education, continuous learning", "JNQ" => "Open learning, distance education", "JNR" => "Careers guidance", - "JNRD" => "Work experience, placements & internships", + "JNRD" => "Work experience, placements and internships", "JNRV" => "Industrial or vocational training", "JNS" => "Teaching of students with different educational needs", - "JNSC" => "Teaching of students with physical impairment or disability", + "JNSC" => "Teaching of students with physical impairments or disabilities", "JNSG" => "Teaching of students with learning difficulties", "JNSL" => "Teaching of students with social, emotional or behavioural difficulties", "JNSP" => "Teaching of gifted or talented students", - "JNSR" => "Remedial education & teaching", - "JNT" => "Teaching skills & techniques", + "JNSR" => "Remedial education and teaching", + "JNSV" => "Education of bilingual or multilingual students", + "JNT" => "Teaching skills and techniques", "JNTC" => "Competence development", "JNTP" => "Project-based learning", + "JNTR" => "Play-based learning", + "JNTS" => "Teaching of reading, writing and numeracy", "JNU" => "Teaching of a specific subject", - "JNUM" => "Teachers’ classroom resources & material", + "JNUM" => "Teachers’ classroom resources and material", "JNUM1" => "Lesson plans", - "JNV" => "Educational equipment & technology, computer-aided learning (CAL)", + "JNV" => "Educational equipment and technology, computer-aided learning (CAL)", "JNW" => "Extra-curricular activities", - "JNZ" => "Study & learning skills: general", - "JP" => "Politics & government", - "JPA" => "Political science & theory", + "JNZ" => "Study and learning skills: general", + "JP" => "Politics and government", + "JPA" => "Political science and theory", "JPB" => "Comparative politics", - "JPF" => "Political ideologies", + "JPF" => "Political ideologies and movements", + "JPFA" => "Green politics / ecopolitics / environmentalism", "JPFB" => "Anarchism", - "JPFC" => "Marxism & Communism", - "JPFF" => "Socialism & left-of-centre democratic ideologies", - "JPFK" => "Liberalism & centre democratic ideologies", - "JPFM" => "Conservatism & right-of-centre democratic ideologies", + "JPFC" => "Far-left political ideologies and movements", + "JPFF" => "Left-of-centre democratic ideologies", + "JPFK" => "Centrist democratic ideologies", + "JPFM" => "Right-of-centre democratic ideologies", "JPFN" => "Nationalism", - "JPFQ" => "Fascism & Nazism", - "JPFR" => "Religious & theocratic ideologies", - "JPH" => "Political structure & processes", - "JPHC" => "Constitution: government & the state", - "JPHF" => "Elections & referenda", - "JPHL" => "Political leaders & leadership", + "JPFN2" => "Pan-nationalism", + "JPFQ" => "Far-right political ideologies and movements", + "JPFR" => "Religious and theocratic ideologies", + "JPH" => "Political structure and processes", + "JPHC" => "Constitution: government and the state", + "JPHF" => "Elections and referenda", + "JPHL" => "Political leaders and leadership", "JPHV" => "Political structures: democracy", - "JPHX" => "Political structures: totalitarianism & dictatorship", - "JPL" => "Political parties", - "JPN" => "Indigenous people: government", + "JPHX" => "Political structures: totalitarianism and dictatorship", + "JPL" => "Political parties and party platforms", + "JPN" => "Indigenous people: governance and politics", "JPP" => "Public administration", "JPQ" => "Central / national / federal government", "JPQB" => "Central / national / federal government policies", - "JPR" => "Regional, state & other local government", - "JPRB" => "Regional, state & other local government policies", + "JPR" => "Regional, state and other local government", + "JPRB" => "Regional, state and other local government policies", "JPS" => "International relations", "JPSD" => "Diplomacy", - "JPSF" => "Arms negotiation & control", - "JPSH" => "Espionage & secret services", + "JPSF" => "Arms negotiation and control", + "JPSH" => "Espionage and secret services", "JPSL" => "Geopolitics", "JPSN" => "International institutions", "JPT" => "Municipal / city government", - "JPV" => "Political control & freedoms", - "JPVC" => "Civics & citizenship", + "JPV" => "Political control and freedoms", + "JPVC" => "Civics and citizenship", "JPVH" => "Human rights, civil rights", - "JPVR" => "Political oppression & persecution", + "JPVR" => "Political oppression and persecution", + "JPVR1" => "Political abduction, imprisonment, ‘Disappearance’ and assassination", "JPW" => "Political activism", - "JPWA" => "Public opinion & polls", - "JPWC" => "Political campaigning & advertising", - "JPWG" => "Pressure groups, protest movements & non-violent action", + "JPWA" => "Public opinion and polls", + "JPWC" => "Political campaigning and advertising", + "JPWG" => "Pressure groups, protest movements and non-violent action", "JPWH" => "Non-governmental organizations (NGOs)", "JPWL" => "Terrorism, armed struggle", - "JPWQ" => "Revolutionary groups & movements", + "JPWQ" => "Revolutionary groups and movements", "JPWS" => "Armed conflict", - "JPZ" => "Political corruption", - "JW" => "Warfare & defence", - "JWA" => "Theory of warfare & military science", - "JWC" => "Military forces & sectors", - "JWCD" => "Land forces & warfare", - "JWCG" => "Irregular or guerrilla forces & warfare", - "JWCK" => "Naval forces & warfare", - "JWCM" => "Air forces & warfare", - "JWCS" => "Special & elite forces", + "JPZ" => "Corruption in politics, government and society", + "JW" => "Warfare and defence", + "JWA" => "Theory of warfare and military science", + "JWC" => "Military forces and sectors", + "JWCD" => "Land forces and warfare", + "JWCG" => "Irregular or guerrilla forces and warfare", + "JWCK" => "Naval forces and warfare", + "JWCM" => "Air forces and warfare", + "JWCS" => "Special and elite forces", "JWJ" => "Military administration", - "JWK" => "Military & defence strategy", + "JWK" => "Military and defence strategy", "JWKF" => "Military intelligence", - "JWL" => "War & defence operations", - "JWLF" => "Battles & campaigns", + "JWL" => "War and defence operations", + "JWLF" => "Battles and campaigns", "JWLP" => "Peacekeeping operations", - "JWM" => "Weapons & equipment", - "JWMC" => "Chemical & biological weapons", + "JWM" => "Weapons and equipment", + "JWMC" => "Chemical and biological weapons", "JWMN" => "Nuclear weapons", "JWMV" => "Military vehicles", "JWT" => "Military institutions", "JWTU" => "Military uniforms / insignia", - "JWX" => "Other warfare & defence issues", + "JWX" => "Other warfare and defence issues", "JWXF" => "Arms trade", + "JWXJ" => "Non-combatants", "JWXK" => "War crimes", "JWXN" => "Mercenaries", "JWXR" => "Prisoners of war", "JWXT" => "Mutiny", "JWXV" => "Military veterans", - "JWXZ" => "Combat / defence skills & manuals", - "K" => "Economics, Finance, Business & Management", + "JWXZ" => "Combat / defence skills and manuals", + "K" => "Economics, Finance, Business and Management", "KC" => "Economics", - "KCA" => "Economic theory & philosophy", + "KCA" => "Economic theory and philosophy", "KCB" => "Macroeconomics", "KCBM" => "Monetary economics", "KCC" => "Microeconomics", + "KCCD" => "Domestic or internal trade", "KCD" => "Economics of industrial organization", "KCF" => "Labour / income economics", "KCG" => "Economic growth", - "KCH" => "Econometrics & economic statistics", + "KCH" => "Econometrics and economic statistics", "KCJ" => "Economic forecasting", "KCK" => "Behavioural economics", "KCL" => "International economics", - "KCM" => "Development economics & emerging economies", - "KCLT" => "International trade & commerce", + "KCM" => "Development economics and emerging economies", + "KCLT" => "International trade and commerce", "KCP" => "Political economy", - "KCS" => "Economic systems & structures", + "KCS" => "Economic systems and structures", "KCSA" => "Capitalism", "KCSD" => "Mixed economic systems", "KCSG" => "Planned economic systems", + "KCST" => "Circular economic systems", "KCV" => "Economics of specific sectors", "KCVD" => "Agricultural economics", "KCVG" => "Environmental economics", @@ -889,208 +945,212 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "KCVK" => "Welfare economics", "KCVM" => "Digital or internet economics", "KCVP" => "Knowledge economics", + "KCVQ" => "Service sector economics", "KCVS" => "Urban economics", - "KCX" => "Economic & financial crises & disasters", + "KCX" => "Economic and financial crises and disasters", "KCY" => "Popular economics", "KCZ" => "Economic history", - "KF" => "Finance & accounting", + "KF" => "Finance and accounting", "KFC" => "Accounting", "KFCC" => "Cost accounting", "KFCF" => "Financial accounting", - "KFCM" => "Management accounting & bookkeeping", + "KFCM" => "Management accounting and bookkeeping", "KFCP" => "Public finance accounting", "KFCR" => "Financial reporting, financial statements", - "KFCX" => "Accounting: study & revision guides", + "KFCX" => "Accounting: study and revision guides", "KFF" => "Finance", - "KFFD" => "Public finance & taxation", + "KFFD" => "Public finance and taxation", "KFFH" => "Corporate finance", "KFFJ" => "Currency / Foreign exchange", "KFFK" => "Banking", - "KFFL" => "Credit & credit institutions", - "KFFM" => "Investment & securities", - "KFFN" => "Insurance & actuarial studies", + "KFFL" => "Credit and credit institutions", + "KFFM" => "Investment and securities", + "KFFN" => "Insurance and actuarial studies", "KFFP" => "Pensions", - "KFFR" => "Property & real estate", - "KFFX" => "Banking & finance: study & revision guides", - "KJ" => "Business & Management", + "KFFR" => "Property and real estate", + "KFFX" => "Banking and finance: study and revision guides", + "KJ" => "Business and Management", "KJB" => "Business studies: general", - "KJBX" => "Business & management: study & revision guides", + "KJBX" => "Business and management: study and revision guides", "KJC" => "Business strategy", "KJD" => "Business innovation", "KJDD" => "Disruptive innovation", "KJE" => "E-commerce: business aspects", "KJF" => "Business competition", - "KJG" => "Business ethics & social responsibility", + "KJG" => "Business ethics and social responsibility", "KJH" => "Entrepreneurship", - "KJJ" => "Business & the environment; ‘green’ approaches to business", + "KJJ" => "Business and the environment; ‘green’ approaches to business", "KJK" => "International business", "KJL" => "Consultancy", - "KJM" => "Management & management techniques", - "KJMB" => "Management: leadership & motivation", + "KJM" => "Management and management techniques", + "KJMB" => "Management: leadership and motivation", "KJMD" => "Management decision making", "KJMK" => "Knowledge management", "KJMP" => "Project management", - "KJMQ" => "Quality Assurance (QA) & Total Quality Management (TQM)", + "KJMQ" => "Quality Assurance (QA) and Total Quality Management (TQM)", "KJMT" => "Time management", "KJMV" => "Management of specific areas", - "KJMV1" => "Budgeting & financial management", - "KJMV2" => "Personnel & human resources management", + "KJMV1" => "Budgeting and financial management", + "KJMV2" => "Personnel and human resources management", "KJMV21" => "Performance management / appraisals", - "KJMV22" => "Diversity, inclusivity in the workplace", - "KJMV4" => "Management of real estate, property & plant", - "KJMV5" => "Production & quality control management", - "KJMV6" => "Research & development management", - "KJMV7" => "Sales & marketing management", - "KJMV8" => "Purchasing & supply management", - "KJMV9" => "Distribution & logistics management", + "KJMV22" => "Diversity and inclusion in the workplace", + "KJMV4" => "Management of real estate, property and plant", + "KJMV5" => "Production and quality control management", + "KJMV6" => "Research and development management", + "KJMV7" => "Sales and marketing management", + "KJMV8" => "Purchasing and supply management", + "KJMV9" => "Distribution and logistics management", "KJN" => "Business negotiation", - "KJP" => "Business communication & presentation", - "KJQ" => "Business mathematics & systems", - "KJR" => "Corporate governance: role & responsibilities of boards & directors", - "KJS" => "Sales & marketing", + "KJP" => "Business communication and presentation", + "KJQ" => "Business mathematics and systems", + "KJR" => "Corporate governance: role and responsibilities of boards and directors", + "KJS" => "Sales and marketing", "KJSA" => "Advertising", - "KJSC" => "Brands & branding", - "KJSG" => "Web-marketing", + "KJSC" => "Brands and branding", + "KJSG" => "Online marketing", "KJSJ" => "Direct marketing / telemarketing", "KJSM" => "Market research", "KJSP" => "Public relations", "KJSU" => "Customer services", "KJT" => "Operational research", - "KJU" => "Organizational theory & behaviour", - "KJV" => "Ownership & organization of enterprises", - "KJVB" => "Takeovers, mergers & buy-outs", + "KJU" => "Organizational theory and behaviour", + "KJV" => "Ownership and organization of enterprises", + "KJVB" => "Takeovers, mergers and buy-outs", "KJVD" => "Privatization", "KJVF" => "Franchises", "KJVG" => "Multinationals", "KJVN" => "Public ownership / nationalization", "KJVP" => "Monopolies", - "KJVS" => "Small businesses & self-employment", - "KJVT" => "Outsourcing", + "KJVS" => "Small businesses and self-employment", + "KJVT" => "Outsourcing and insourcing", "KJVV" => "Joint ventures", - "KJVW" => "Employee-ownership & co-operatives", + "KJVW" => "Employee-ownership and co-operatives", "KJVX" => "Non-profitmaking organizations", - "KJW" => "Office & workplace", + "KJW" => "Office and workplace", "KJWB" => "Office management", - "KJWF" => "Office systems & equipment", - "KJWS" => "Secretarial, clerical & office skills", - "KJWX" => "Working patterns & practices", + "KJWF" => "Office systems and equipment", + "KJWS" => "Secretarial, clerical and office skills", + "KJWX" => "Working patterns and practices", "KJZ" => "History of specific companies / corporate history", - "KN" => "Industry & industrial studies", - "KNA" => "Agribusiness & primary industries", - "KNAC" => "Agriculture, agribusiness & food production industries", - "KNAF" => "Fisheries & related industries", + "KN" => "Industry and industrial studies", + "KNA" => "Agribusiness and primary industries", + "KNAC" => "Agriculture, agribusiness and food production industries", + "KNAF" => "Fisheries and related industries", "KNAL" => "Forestry industry", "KNAT" => "Extractive industries", - "KNB" => "Energy industries & utilities", - "KNBL" => "Electrical power generation & distribution industries", - "KNBP" => "Petroleum, oil & gas industries", - "KNBT" => "Alternative & renewable energy industries", + "KNB" => "Energy industries and utilities", + "KNBL" => "Electrical power generation and distribution industries", + "KNBP" => "Petroleum, oil and gas industries", + "KNBT" => "Alternative and renewable energy industries", "KNBW" => "Water industries", "KND" => "Manufacturing industries", - "KNDC" => "Chemical, biotechnology & pharmaceutical industries", - "KNDD" => "Apparel, garment & textile industries", - "KNDR" => "Vehicle manufacturing industries", + "KNDC" => "Chemical, biotechnology and pharmaceutical industries", + "KNDD" => "Apparel, garment and textile industries", + "KNDR" => "Vehicle and transport manufacturing industries", "KNG" => "Transport industries", - "KNJ" => "Construction & heavy industry", - "KNJC" => "Construction & building industry", - "KNJH" => "Iron, steel & other metal industries", - "KNP" => "Retail & wholesale industries", - "KNS" => "Hospitality & service industries", - "KNSB" => "Food & drink service industries", - "KNSG" => "Hospitality, leisure & tourism industries", + "KNJ" => "Construction and heavy industry", + "KNJC" => "Construction and building industry", + "KNJH" => "Iron, steel and other metal industries", + "KNP" => "Retail and wholesale industries", + "KNS" => "Hospitality and service industries", + "KNSB" => "Food and drink service industries", + "KNSG" => "Hospitality, sports, leisure and tourism industries", "KNSJ" => "Events management industry", - "KNSX" => "Fashion & beauty industries", - "KNT" => "Media, entertainment, information & communication industries", - "KNTC" => "Film, TV & Radio industries", + "KNSX" => "Fashion and beauty industries", + "KNT" => "Media, entertainment, information and communication industries", + "KNTC" => "Film, TV and Radio industries", "KNTF" => "Music industry", - "KNTP" => "Publishing industry & journalism", - "KNTP1" => "Publishing & book trade", - "KNTP2" => "News media & journalism", - "KNTV" => "Computer & video game industry", + "KNTP" => "Publishing industry and journalism", + "KNTP1" => "Publishing and book trade", + "KNTP2" => "News media and journalism", + "KNTR" => "Printing and reprographic industries", + "KNTV" => "Computer and video game industry", "KNTX" => "Information technology industries", - "KNV" => "Civil service & public sector", - "KNX" => "Industrial relations, occupational health & safety", - "KNXC" => "Health & safety in the workplace", - "KNXN" => "Industrial arbitration & negotiation", + "KNV" => "Civil service and public sector", + "KNX" => "Industrial relations, occupational health and safety", + "KNXC" => "Health and safety in the workplace", + "KNXN" => "Industrial arbitration and negotiation", "KNXU" => "Trade unions", "L" => "Law", - "LA" => "Jurisprudence & general issues", - "LAB" => "Methods, theory & philosophy of law", + "LA" => "Jurisprudence and general issues", + "LAB" => "Methods, theory and philosophy of law", "LAF" => "Systems of law", "LAFC" => "Systems of law: common law", "LAFD" => "Systems of law: civil codes / civil law", + "LAFF" => "Systems of law: customary law", + "LAFG" => "Systems of law: mixed systems", "LAFR" => "Systems of law: Roman law", "LAFS" => "Systems of law: Islamic law", "LAFT" => "Systems of law: Jewish Law", "LAFX" => "Systems of law: ecclesiastical (canon) law", "LAM" => "Comparative law", - "LAQ" => "Law & society, sociology of law", - "LAQG" => "Law & society, gender issues", + "LAQ" => "Law and society, sociology of law", + "LAQG" => "Law and society, gender issues", "LAR" => "Legal aspects of criminology", - "LAS" => "Legal skills & practice", + "LAS" => "Legal skills and practice", "LASD" => "Legal skills: advocacy", - "LASH" => "Legal skills: drafting & legal writing", + "LASH" => "Legal skills: drafting and legal writing", "LASK" => "Legal skills: negotiating and interviewing", "LASN" => "Legal skills: research methods", - "LASP" => "Legal practice: paralegals & paralegalism", + "LASP" => "Legal practice: paralegals and paralegalism", "LAT" => "Legal profession: general", - "LATC" => "Legal ethics & professional conduct", - "LAY" => "Law as it applies to other professions & disciplines", + "LATC" => "Legal ethics and professional conduct", + "LAY" => "Law as it applies to other professions and disciplines", "LAZ" => "Legal history", "LB" => "International law", "LBB" => "Public international law", - "LBBC" => "Public international law: treaties & other sources", + "LBBC" => "Public international law: treaties and other sources", "LBBC1" => "Public International law: customary law", "LBBD" => "Public international law: diplomatic law", - "LBBF" => "Public international law: jurisdiction & immunities", - "LBBJ" => "Public international law: territory & statehood", + "LBBF" => "Public international law: jurisdiction and immunities", + "LBBJ" => "Public international law: territory and statehood", "LBBK" => "Public international law: law of the sea", "LBBL" => "Public International law: health", - "LBBM" => "Public international law: economic & trade", - "LBBM1" => "Public international law, economic & trade: tariffs", - "LBBM3" => "Public international law, economic & trade: investment treaties & disputes", - "LBBM5" => "Public international law: energy & natural resources", - "LBBM7" => "Public international law, economic & trade: corporations", + "LBBM" => "Public international law: economic and trade", + "LBBM1" => "Public international law, economic and trade: tariffs", + "LBBM3" => "Public international law, economic and trade: investment treaties and disputes", + "LBBM5" => "Public international law: energy and natural resources", + "LBBM7" => "Public international law, economic and trade: corporations", "LBBP" => "Public international law: environment", "LBBP1" => "Public international law, environment: agricultural law", "LBBQ" => "Public international law: administration", "LBBR" => "Public international law: human rights", - "LBBR1" => "Public international law, human rights: labour & social", + "LBBR1" => "Public international law, human rights: labour and social", "LBBS" => "Public international law: humanitarian law", - "LBBU" => "Public international law: international organizations & institutions", - "LBBV" => "Public international law: responsibility of states & other entities", + "LBBU" => "Public international law: international organizations and institutions", + "LBBV" => "Public international law: responsibility of states and other entities", "LBBZ" => "Public international law: criminal law", - "LBD" => "International law: transport, communications & commerce", - "LBDA" => "International law, transport: space & aerospace law", - "LBDK" => "International law: transnational commerce & international sale of goods law", - "LBDM" => "International law, transport & commerce: maritime law", - "LBDT" => "International law: communications, telecommunications & media", - "LBG" => "Private international law & conflict of laws", - "LBH" => "International law: international disputes & civil procedure", - "LBHG" => "International law: courts & procedures", + "LBD" => "International law: transport, communications and commerce", + "LBDA" => "International law, transport: space and aerospace law", + "LBDK" => "International law: transnational commerce and international sale of goods law", + "LBDM" => "International law, transport and commerce: maritime law", + "LBDT" => "International law: communications, telecommunications and media", + "LBG" => "Private international law and conflict of laws", + "LBH" => "International law: international disputes and civil procedure", + "LBHG" => "International law: courts and procedures", "LBHT" => "International law: arbitration", "LBJ" => "International law: intellectual property", "LBK" => "International law: sports", "LBL" => "International law reports", - "LN" => "Laws of specific jurisdictions & specific areas of law", + "LN" => "Laws of specific jurisdictions and specific areas of law", "LNA" => "Legal systems: general", - "LNAA" => "Legal systems: courts & procedures", + "LNAA" => "Legal systems: courts and procedures", "LNAA1" => "Legal systems: judicial powers", "LNAA2" => "Legal systems: law of contempt", - "LNAC" => "Legal systems: civil procedure, litigation & dispute resolution", + "LNAC" => "Legal systems: civil procedure, litigation and dispute resolution", "LNAC1" => "Civil remedies", "LNAC12" => "Restitution", - "LNAC14" => "Damages & compensation", - "LNAC16" => "Injunctions & other orders", + "LNAC14" => "Damages and compensation", + "LNAC16" => "Injunctions and other orders", "LNAC3" => "Civil procedure: law of evidence", - "LNAC4" => "Civil procedure: investigation & specific proceedings", - "LNAC5" => "Arbitration, mediation & alternative dispute resolution", - "LNAF" => "Legal systems: costs & funding", + "LNAC4" => "Civil procedure: investigation and specific proceedings", + "LNAC5" => "Arbitration, mediation and alternative dispute resolution", + "LNAF" => "Legal systems: costs and funding", "LNAL" => "Legal systems: regulation of legal profession", "LNB" => "Private or civil law: general", - "LNBA" => "Legal entity (natural & legal persons)", + "LNBA" => "Legal entity (natural and legal persons)", "LNBB" => "Civil registration system", - "LNC" => "Company, commercial & competition law: general", + "LNC" => "Company, commercial and competition law: general", "LNCB" => "Commercial law", "LNCB1" => "Franchising law", "LNCB2" => "E-commerce law", @@ -1098,66 +1158,67 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "LNCB4" => "Outsourcing law", "LNCB5" => "Shipping law", "LNCB6" => "Aviation law", - "LNCB7" => "Catering, restaurants & crafts law", + "LNCB7" => "Catering and restaurant law", + "LNCB8" => "Hospitality, Travel and Tourism law", "LNCC" => "Regulatory compliance", "LNCD" => "Company law", - "LNCD1" => "Mergers & acquisitions law", - "LNCE" => "Registry & proceedings law", - "LNCF" => "Partnership & cooperative law", + "LNCD1" => "Mergers and acquisitions law", + "LNCE" => "Registry and proceedings law", + "LNCF" => "Partnership and cooperative law", "LNCG" => "Transformation law, change of corporate form", "LNCH" => "Competition law / Antitrust law", "LNCJ" => "Contract law", - "LNCK" => "Company & business offences", + "LNCK" => "Company and business offences", "LNCL" => "Agency law", "LNCN" => "Procurement law", - "LNCQ" => "Construction & engineering law", - "LNCQ1" => "Private construction & engineering law", + "LNCQ" => "Construction and engineering law", + "LNCQ1" => "Private construction and engineering law", "LNCQ2" => "Public construction law", - "LNCR" => "Energy & natural resources law", - "LND" => "Constitutional & administrative law: general", - "LNDA" => "Citizenship & nationality law", + "LNCR" => "Energy and natural resources law", + "LND" => "Constitutional and administrative law: general", + "LNDA" => "Citizenship and nationality law", "LNDA1" => "Immigration law", "LNDA3" => "Asylum law", - "LNDB" => "Administrative jurisdiction & public administration", + "LNDB" => "Administrative jurisdiction and public administration", "LNDB1" => "Administrative law, general", - "LNDB2" => "Administrative procedure & courts", - "LNDB3" => "State & public properties & assets", + "LNDB2" => "Administrative procedure and courts", + "LNDB3" => "State and public properties and assets", "LNDB4" => "Sanctioning power of the administration", "LNDB5" => "Compulsory expropriation, compulsory purchase, eminent domain", - "LNDB6" => "Making of rules & administrative acts", + "LNDB6" => "Making of rules and administrative acts", "LNDB7" => "Regulation of public services", - "LNDB8" => "Law of science & research, university college law", - "LNDC" => "Law: Human rights & civil liberties", - "LNDC1" => "Constitutional law & human rights", + "LNDB8" => "Law of science and research, university college law", + "LNDC" => "Law: Human rights and civil liberties", + "LNDC1" => "Constitutional law and human rights", "LNDC2" => "Privacy law", "LNDC4" => "Freedom of expression law", - "LNDC5" => "History of constitution & comparative constitutional law", - "LNDE" => "Civil & Public Servants law", + "LNDC5" => "History of constitution and comparative constitutional law", + "LNDE" => "Civil and Public Servants law", "LNDF" => "Freedom of information law", - "LNDG" => "Religious law & concordats", + "LNDG" => "Religious law and concordats", "LNDH" => "Government powers", - "LNDJ" => "State liability & compensation law", - "LNDK" => "Military & defence law & civilian service law", - "LNDL" => "Safety & police law, regulatory & weapons law", + "LNDJ" => "State liability and compensation law", + "LNDK" => "Military and defence law and civilian service law", + "LNDL" => "Safety and police law, regulatory and weapons law", "LNDM" => "Judicial review", - "LNDP" => "Parliamentary & legislative practice", + "LNDP" => "Parliamentary and legislative practice", "LNDS" => "Election law", "LNDU" => "Local government law", "LNDV" => "Regional government law", "LNDX" => "Constitution", - "LNE" => "Economic administrative law & public commercial law", - "LNEA" => "Financial administration & public finance law", - "LNEB" => "Foreign economics & customs law", - "LNEC" => "Law of allowances & subsidies", - "LNEF" => "Public procurement, services & supplies", - "LNF" => "Criminal law: procedure & offences", + "LNE" => "Economic administrative law and public commercial law", + "LNEA" => "Financial administration and public finance law", + "LNEB" => "Foreign economics and customs law", + "LNEC" => "Law of allowances and subsidies", + "LNEF" => "Public procurement, services and supplies", + "LNF" => "Criminal law: procedure and offences", "LNFB" => "Criminal justice law", "LNFG" => "Criminal law: offences against the government", - "LNFG1" => "Offences against the State, against public administration & the administration of justice", - "LNFG2" => "Offences against land use & city planning, monument, land & environment protection", + "LNFG1" => "Offences against the State, against public administration and the administration of justice", + "LNFG2" => "Offences against land use and city planning, monument, land and environment protection", "LNFJ" => "Criminal law: offences against the person", - "LNFJ1" => "Harassment & stalking", - "LNFJ2" => "Gender violence", + "LNFJ1" => "Criminal law: Harassment and stalking", + "LNFJ2" => "Criminal law: Gender violence", "LNFL" => "Criminal law: offences against property", "LNFN" => "Fraud", "LNFQ" => "Juvenile criminal law", @@ -1168,53 +1229,53 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "LNFV" => "Criminal law: terrorism law", "LNFW" => "Corruption", "LNFX" => "Criminal procedure", - "LNFX1" => "Sentencing & punishment", + "LNFX1" => "Sentencing and punishment", "LNFX3" => "Criminal procedure: law of evidence", - "LNFX31" => "Criminal procedure: investigation & specific proceedings", - "LNFX5" => "Police law & police procedures", + "LNFX31" => "Criminal procedure: investigation and specific proceedings", + "LNFX5" => "Police law and police procedures", "LNFX51" => "Police law: preliminary injunction", "LNFX7" => "Prison law", "LNFY" => "Jury trials", - "LNH" => "Employment & labour law: general", - "LNHD" => "Discrimination in employment & harassment law", - "LNHH" => "Occupational health & safety law, working time law", - "LNHJ" => "Labour rules violations & penalties", - "LNHR" => "Industrial relations & trade unions law", + "LNH" => "Employment and labour law: general", + "LNHD" => "Discrimination in employment and harassment law", + "LNHH" => "Occupational health and safety law, working time law", + "LNHJ" => "Labour rules violations and penalties", + "LNHR" => "Industrial relations and trade unions law", "LNHU" => "Employment contracts", "LNHW" => "Law of professional training", - "LNHX" => "Employment & labour law: procedure, dispute resolution", - "LNJ" => "Entertainment & media law", - "LNJD" => "Defamation law, slander & libel", - "LNJS" => "Sport & the law", - "LNJX" => "Advertising, marketing & sponsorship law", - "LNK" => "Environment, transport & planning law: general", + "LNHX" => "Employment and labour law: procedure, dispute resolution", + "LNJ" => "Entertainment and media law", + "LNJD" => "Defamation law, slander and libel", + "LNJS" => "Sport and the law", + "LNJX" => "Advertising, marketing and sponsorship law", + "LNK" => "Environment, transport and planning law: general", "LNKF" => "Agricultural law", "LNKG" => "Animal law", "LNKJ" => "Environment law", - "LNKK" => "Disaster control & fire protection law", + "LNKK" => "Disaster control and fire protection law", "LNKN" => "Nature conservation law", - "LNKP" => "Water & wastewater law", + "LNKP" => "Water and wastewater law", "LNKT" => "Transport law", - "LNKV" => "Ways & highways law", + "LNKV" => "Ways and highways law", "LNKW" => "Planning law", - "LNKX" => "Protection of historic buildings & cultural assets", - "LNL" => "Law: equity & trusts, foundations", + "LNKX" => "Protection of historic buildings and cultural assets", + "LNL" => "Law: equity and trusts, foundations", "LNM" => "Family law", - "LNMB" => "Family law: marriage, separation & divorce", + "LNMB" => "Family law: marriage, separation and divorce", "LNMC" => "Family law: cohabitation", "LNMF" => "Family law: same-sex partnership", "LNMI" => "Family law: financial statement between spouses", "LNMK" => "Family law: children", "LNP" => "Financial law: general", - "LNPA" => "Accounting & auditing law", + "LNPA" => "Accounting and auditing law", "LNPB" => "Banking law", - "LNPC" => "Bankruptcy & insolvency", + "LNPC" => "Bankruptcy and insolvency", "LNPC1" => "Bankruptcy law: extrajudicial procedures", - "LNPD" => "Capital markets & securities law & regulation", - "LNPF" => "Financial services law & regulation", + "LNPD" => "Capital markets and securities law and regulation", + "LNPF" => "Financial services law and regulation", "LNPN" => "Insurance law", - "LNPP" => "Pensions, old-age provisions & private compensation", - "LNQ" => "IT & Communications law / Postal laws & regulations", + "LNPP" => "Pensions, old-age provisions and private compensation", + "LNQ" => "IT and Communications law / Postal laws and regulations", "LNQD" => "Data protection law", "LNQE" => "Computer crime, cybercrime", "LNR" => "Intellectual property law", @@ -1224,40 +1285,40 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "LNRL" => "Designs law", "LNRV" => "Confidential information law", "LNS" => "Property law: general", - "LNSH" => "Land & real estate law", - "LNSH1" => "Ownership & mortgage law", - "LNSH3" => "Landlord & tenant law", + "LNSH" => "Land and real estate law", + "LNSH1" => "Ownership and mortgage law", + "LNSH3" => "Landlord and tenant law", "LNSH5" => "Conveyancing law", - "LNSH7" => "Rating & valuation law", + "LNSH7" => "Rating and valuation law", "LNSH9" => "Housing law", "LNSP" => "Personal property law", - "LNT" => "Social law & Medical law", + "LNT" => "Social law and Medical law", "LNTC" => "Charity law", "LNTD" => "Education law", - "LNTH" => "Social security & welfare law", + "LNTH" => "Social security and welfare law", "LNTH1" => "Social insurance law", - "LNTJ" => "Public health & safety law", - "LNTM" => "Medical & healthcare law", + "LNTJ" => "Public health and safety law", + "LNTM" => "Medical and healthcare law", "LNTM1" => "Mental health law", - "LNTM2" => "Regulation of medicines & medical devices", + "LNTM2" => "Regulation of medicines and medical devices", "LNTN" => "Pharmaceutical law", - "LNTQ" => "Disability & the law", - "LNTS" => "Law & the elderly", + "LNTQ" => "Disability and the law", + "LNTS" => "Law and the elderly", "LNTU" => "Consumer protection law", "LNTV" => "Food law", - "LNTX" => "Licensing, gaming & club law", - "LNU" => "Taxation & duties law", - "LNUC" => "Corporate & business tax", - "LNUD" => "Local taxation, charges, public prices, excise duties", + "LNTX" => "Licensing, gaming and club law", + "LNU" => "Taxation and duties law", + "LNUC" => "Corporate and business tax", + "LNUD" => "Local taxation, charges, public sector pricing", "LNUP" => "Personal tax", - "LNUS" => "Sales tax, tariffs & customs duties", - "LNUT" => "Trusts & estates taxation, gift tax", + "LNUS" => "Sales tax, tariffs and customs duties", + "LNUT" => "Trusts and estates taxation, gift tax", "LNUU" => "Real estate tax, property valuation", - "LNUV" => "Excise taxes", + "LNUV" => "Excise taxes and duties", "LNUW" => "Other transaction taxes", "LNUX" => "International taxation law", "LNUY" => "Taxation procedure", - "LNV" => "Law of torts, damages & compensation", + "LNV" => "Law of torts, damages and compensation", "LNVC" => "Negligence", "LNVF" => "Nuisance", "LNVJ" => "Personal injury", @@ -1272,50 +1333,50 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "LWFB" => "Shariah law: Al-Hanbali School of Fiqh", "LWFC" => "Shariah law: Al-Maaliki School of Fiqh", "LWFD" => "Shariah law: Al-Hanafi School of Fiqh", - "LWK" => "Shariah law: key topics & practice", + "LWK" => "Shariah law: key topics and practice", "LWKF" => "Shariah law: family relations", - "LWKG" => "Shariah law: crime & punishment", - "LWKH" => "Shariah law: inheritance & disposal of property", - "LWKL" => "Shariah law: economics & finance", + "LWKG" => "Shariah law: crime and punishment", + "LWKH" => "Shariah law: inheritance and disposal of property", + "LWKL" => "Shariah law: economics and finance", "LWKM" => "Shariah law: dietary", - "LWKN" => "Shariah law: alcohol & gambling", - "LWKP" => "Shariah law: customs & behaviour", - "LWKR" => "Shariah law: administration of justice (including penalties & apostasy)", + "LWKN" => "Shariah law: alcohol and gambling", + "LWKP" => "Shariah law: customs and behaviour", + "LWKR" => "Shariah law: administration of justice (including penalties and apostasy)", "LWKT" => "Shariah law: Islamic rituals", "LWKT1" => "Shariah law: Islamic rituals: purification", "LWKT2" => "Shariah law: Islamic rituals: jihad", - "LWKT3" => "Shariah law: Islamic rituals: prayer & funeral prayer", + "LWKT3" => "Shariah law: Islamic rituals: prayer and funeral prayer", "LWKT4" => "Shariah law: Islamic rituals: zakat (alms)", "LWKT5" => "Shariah law: Islamic rituals: fasting", "LWKT6" => "Shariah law: Islamic rituals: pilgrimage", - "LX" => "Law: study & revision guides", - "M" => "Medicine & Nursing", + "LX" => "Law: study and revision guides", + "M" => "Medicine and Nursing", "MB" => "Medicine: general issues", "MBD" => "Medical profession", - "MBDC" => "Medical ethics & professional conduct", + "MBDC" => "Medical ethics and professional conduct", "MBDP" => "Doctor/patient relationship", "MBDS" => "Patient safety", - "MBF" => "Medical & health informatics", - "MBG" => "Medical equipment & techniques", - "MBGL" => "Medical laboratory testing & techniques", + "MBF" => "Medical and health informatics", + "MBG" => "Medical equipment and techniques", + "MBGL" => "Medical laboratory testing and techniques", "MBGR" => "Medical research", "MBGR1" => "Clinical trials", "MBGT" => "Telemedicine", - "MBN" => "Public health & preventive medicine", + "MBN" => "Public health and preventive medicine", "MBNC" => "Medical screening", - "MBNH" => "Personal & public health / health education", + "MBNH" => "Personal and public health / health education", "MBNH1" => "Hygiene", "MBNH2" => "Environmental factors", - "MBNH3" => "Dietetics & nutrition", + "MBNH3" => "Dietetics and nutrition", "MBNH4" => "Birth control, contraception, family planning", "MBNH9" => "Health psychology", "MBNK" => "Vaccination", - "MBNS" => "Epidemiology & medical statistics", - "MBP" => "Health systems & services", + "MBNS" => "Epidemiology and Medical statistics", + "MBP" => "Health systems and services", "MBPA" => "Primary care medicine, primary health care", - "MBPC" => "General practice", + "MBPC" => "General practice / Family medicine", "MBPK" => "Mental health services", - "MBPM" => "Medical administration & management", + "MBPM" => "Medical administration and management", "MBPN" => "Residential care", "MBPR" => "Medical insurance", "MBQ" => "Medicolegal issues", @@ -1331,60 +1392,63 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "MFGC" => "Cellular physiology", "MFGG" => "Regional physiology", "MFGM" => "Metabolism", + "MFGT" => "Electrophysiology", "MFGV" => "Biomechanics, human kinetics", - "MFK" => "Human reproduction, growth & development", + "MFK" => "Human reproduction, growth and development", "MFKC" => "Reproductive medicine", - "MFKC1" => "Infertility & fertilization", + "MFKC1" => "Infertility and fertilization", "MFKC3" => "Embryology", - "MFKH" => "Human growth & development", - "MFKH3" => "Maturation & ageing", + "MFKH" => "Human growth and development", + "MFKH3" => "Maturation and ageing", "MFN" => "Medical genetics", - "MJ" => "Clinical & internal medicine", + "MJ" => "Clinical and internal medicine", "MJA" => "Medical diagnosis", "MJAD" => "Examination of patients", - "MJC" => "Diseases & disorders", - "MJCG" => "Congenital diseases & disorders", - "MJCG1" => "Hereditary diseases & disorders", - "MJCJ" => "Infectious & contagious diseases", + "MJC" => "Diseases and disorders", + "MJCG" => "Congenital diseases and disorders", + "MJCG1" => "Hereditary diseases and disorders", + "MJCJ" => "Infectious and contagious diseases", "MJCJ1" => "Venereal diseases", - "MJCJ2" => "HIV/AIDS", - "MJCJ3" => "Hospital infections", + "MJCJ2" => "Medicine: HIV/AIDS, retroviral diseases", + "MJCJ3" => "Hospital-acquired infections", "MJCL" => "Oncology", "MJCL1" => "Radiotherapy", "MJCL2" => "Chemotherapy", "MJCM" => "Immunology", - "MJCM1" => "Allergies", + "MJCM1" => "Medicine: Allergies", "MJD" => "Cardiovascular medicine", "MJE" => "Musculoskeletal medicine", "MJF" => "Haematology", "MJG" => "Endocrinology", - "MJGD" => "Diabetes", + "MJGD" => "Medicine: Diabetes", "MJH" => "Gastroenterology", "MJJ" => "Hepatology", "MJK" => "Dermatology", "MJL" => "Respiratory medicine", "MJM" => "Rheumatology", "MJP" => "Otorhinolaryngology (ENT)", - "MJPD" => "Audiology & otology", + "MJPD" => "Audiology and otology", "MJQ" => "Ophthalmology", - "MJR" => "Renal medicine & nephrology", + "MJR" => "Renal medicine and nephrology", "MJRD" => "Haemodialysis", - "MJS" => "Urology & urogenital medicine", + "MJS" => "Urology and urogenital medicine", "MK" => "Medical specialties, branches of medicine", "MKA" => "Anaesthetics", - "MKAL" => "Pain & pain management", + "MKAL" => "Pain and pain management", "MKB" => "Palliative medicine", - "MKC" => "Gynaecology & obstetrics", + "MKC" => "Gynaecology and obstetrics", "MKCM" => "Materno-foetal medicine / perinatology", "MKD" => "Paediatric medicine", "MKDN" => "Neonatal medicine", "MKE" => "Dentistry", - "MKEP" => "Oral & maxillofacial surgery", + "MKED" => "Orthodontics", + "MKEH" => "Dentistry specialities", + "MKEP" => "Oral and maxillofacial surgery", "MKF" => "Pathology", "MKFC" => "Cytopathology", "MKFH" => "Histopathology", - "MKFK" => "Chronic disease", - "MKFM" => "Medical microbiology & virology", + "MKFK" => "Chronic diseases and conditions", + "MKFM" => "Medical microbiology and virology", "MKFP" => "Medical parasitology", "MKFS" => "Psychosomatics", "MKG" => "Pharmacology", @@ -1392,22 +1456,22 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "MKGW" => "Psychopharmacology", "MKH" => "Regenerative medicine", "MKHC" => "Regenerative medicine: stem cells", - "MKJ" => "Neurology & clinical neurophysiology", - "MKJA" => "Autism & Asperger’s Syndrome", - "MKJD" => "Alzheimer’s & dementia", + "MKJ" => "Neurology and clinical neurophysiology", + "MKJA" => "Autism and Asperger’s Syndrome", + "MKJD" => "Alzheimer’s and dementia", "MKL" => "Psychiatry", - "MKLD" => "Psychiatric & mental disorders", + "MKLD" => "Psychiatric and mental disorders", "MKM" => "Clinical psychology", "MKMT" => "Psychotherapy", "MKMT1" => "Psychotherapy: general", "MKMT2" => "Psychotherapy: group", - "MKMT3" => "Psychotherapy: child & adolescent", - "MKMT4" => "Psychotherapy: couples & families", + "MKMT3" => "Psychotherapy: child and adolescent", + "MKMT4" => "Psychotherapy: couples and families", "MKMT5" => "Psychotherapy: counselling", "MKMT6" => "Cognitive behavioural therapy", "MKN" => "Geriatric medicine", - "MKP" => "Accident & emergency medicine", - "MKPB" => "Trauma & shock", + "MKP" => "Accident and emergency medicine", + "MKPB" => "Trauma and shock", "MKPD" => "Burns", "MKPL" => "Intensive care medicine", "MKR" => "Nuclear medicine", @@ -1418,87 +1482,92 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "MKSJ" => "Medical imaging: tomography", "MKT" => "Forensic medicine", "MKV" => "Environmental medicine", - "MKVB" => "Aviation & space medicine", - "MKVD" => "Diving & hyperbaric medicine", + "MKVB" => "Aviation and space medicine", + "MKVD" => "Diving and hyperbaric medicine", "MKVP" => "Occupational medicine", "MKVQ" => "Travel medicine / emporiatrics", "MKVT" => "Tropical medicine", - "MKW" => "Sports injuries & medicine", - "MKZ" => "Therapy & therapeutics", - "MKZD" => "Eating disorders & therapy", - "MKZF" => "Obesity: treatment & therapy", - "MKZL" => "Speech & language disorders & therapy", - "MKZR" => "Addiction & therapy", - "MKZS" => "Sleep disorders & therapy", + "MKW" => "Sports injuries and medicine", + "MKZ" => "Therapy and therapeutics", + "MKZD" => "Eating disorders and therapy", + "MKZF" => "Obesity: treatment and therapy", + "MKZL" => "Speech and language disorders and therapy", + "MKZR" => "Addiction and therapy", + "MKZS" => "Sleep disorders and therapy", "MKZV" => "Gene therapy", "MN" => "Surgery", "MNB" => "Surgical techniques", "MNC" => "General surgery", "MND" => "Abdominal surgery", - "MNG" => "Gastrointestinal & colorectal surgery", + "MNG" => "Gastrointestinal and colorectal surgery", "MNH" => "Cardiothoracic surgery", "MNJ" => "Vascular surgery", "MNK" => "Surgical oncology", "MNL" => "Critical care surgery", "MNN" => "Neurosurgery", - "MNP" => "Plastic & reconstructive surgery", + "MNP" => "Plastic and reconstructive surgery", "MNPC" => "Cosmetic surgery", "MNQ" => "Transplant surgery", - "MNS" => "Surgical orthopaedics & fractures", + "MNS" => "Surgical orthopaedics and fractures", "MNZ" => "Peri-operative care", - "MQ" => "Nursing & ancillary services", + "MQ" => "Nursing and ancillary services", "MQC" => "Nursing", - "MQCA" => "Nursing fundamentals & skills", - "MQCB" => "Nursing research & theory", + "MQCA" => "Nursing fundamentals and skills", + "MQCB" => "Nursing research and theory", "MQCH" => "Nurse/patient relationship", "MQCL" => "Nursing specialties", - "MQCL1" => "Accident & emergency nursing", + "MQCL1" => "Accident and emergency nursing", "MQCL2" => "Intensive care nursing", "MQCL3" => "Paediatric nursing", "MQCL4" => "Geriatric nursing", "MQCL5" => "Psychiatric nursing", "MQCL6" => "Surgical nursing", + "MQCL7" => "Nurse practitioner/ Advanced Practice nursing and equivalents", "MQCL9" => "Terminal care nursing", "MQCM" => "Nursing pharmacology", "MQCW" => "Nursing sociology", "MQCX" => "Community nursing", - "MQCZ" => "Nursing management & leadership", + "MQCZ" => "Nursing management and leadership", "MQD" => "Midwifery", "MQDB" => "Birthing methods", - "MQF" => "First aid & paramedical services", - "MQG" => "Medical assistants", + "MQF" => "First aid and paramedical services", + "MQG" => "Medical assistants / Physicians’ assistants", "MQH" => "Radiography", - "MQK" => "Chiropody & podiatry", + "MQK" => "Chiropody and podiatry", "MQP" => "Pharmacy / dispensing", "MQR" => "Optometry / opticians", "MQS" => "Physiotherapy", "MQT" => "Occupational therapy", - "MQTC" => "Creative therapy (eg art, music, drama)", + "MQTC" => "Creative therapy", "MQU" => "Medical counselling", "MQV" => "Rehabilitation", - "MQVB" => "Rehabilitation: brain & spinal injuries", + "MQVB" => "Rehabilitation: brain and spinal injuries", "MQW" => "Biomedical engineering", "MQWB" => "Orthotics", "MQWP" => "Prosthetics", "MQZ" => "Mortuary practice", - "MR" => "Medical study & revision guides & reference material", - "MRG" => "Medical study & revision guides", + "MR" => "Medical study and revision guides and reference material", + "MRG" => "Medical study and revision guides", "MRGD" => "Medical revision aids: MRCP", "MRGK" => "Medical revision aids: MRCS", "MRGL" => "Medical revision aids: PLAB", "MRT" => "Medical charts, colour atlases", "MX" => "Complementary medicine", - "MXH" => "Chiropractic & osteopathy", + "MXH" => "Chiropractic and osteopathy", "MZ" => "Veterinary medicine", - "MZC" => "Veterinary medicine: small animals (pets)", - "MZD" => "Veterinary medicine: large animals (domestic / farm)", + "MZA" => "Veterinary medicine: general", + "MZAB" => "Veterinary medicine: research", + "MZAD" => "Veterinary medicine: reference and statistics", + "MZB" => "Pre-clinical veterinary medicine: basic sciences", + "MZC" => "Veterinary medicine: small animals", + "MZD" => "Veterinary medicine: large animals", "MZDH" => "Equine veterinary medicine", "MZF" => "Veterinary medicine: laboratory animals", - "MZG" => "Veterinary medicine: exotic & zoo animals", - "MZH" => "Veterinary anatomy & physiology", - "MZK" => "Veterinary pathology & histology", + "MZG" => "Veterinary medicine: exotic and zoo animals", + "MZH" => "Veterinary anatomy and physiology", + "MZK" => "Veterinary pathology and histology", "MZL" => "Veterinary nutrition", - "MZM" => "Veterinary medicine: infectious diseases & therapeutics", + "MZM" => "Veterinary medicine: diseases and therapeutics", "MZMP" => "Veterinary bacteriology, virology, parasitology", "MZP" => "Veterinary pharmacology", "MZR" => "Veterinary radiology", @@ -1507,19 +1576,19 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "MZT" => "Veterinary dentistry", "MZV" => "Veterinary nursing", "MZX" => "Complementary medicine for animals", - "N" => "History & Archaeology", + "N" => "History and Archaeology", "NH" => "History", - "NHA" => "History: theory & methods", + "NHA" => "History: theory and methods", "NHAH" => "Historiography", "NHAP" => "Historical research: source documents", - "NHB" => "General & world history", + "NHB" => "General and world history", "NHC" => "Ancient history", "NHD" => "European history", "NHDA" => "European history: the Romans", "NHDC" => "European history: the Celts", "NHDE" => "European history: the Vikings", "NHDG" => "European history: the Normans", - "NHDJ" => "European history: mediaeval period, middle ages", + "NHDJ" => "European history: medieval period, middle ages", "NHDL" => "European history: Renaissance", "NHDN" => "European history: Reformation", "NHF" => "Asian history", @@ -1528,30 +1597,32 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "NHHA" => "African history: pre-colonial period", "NHK" => "History of the Americas", "NHKA" => "History of the Americas: pre-Columbian period", - "NHM" => "Australasian & Pacific history", - "NHQ" => "History of specific lands", - "NHT" => "History: specific events & topics", - "NHTB" => "Social & cultural history", + "NHM" => "Australasian and Pacific history", + "NHQ" => "History of other geographical groupings and regions", + "NHT" => "History: specific events and topics", + "NHTB" => "Social and cultural history", "NHTD" => "Oral history", "NHTF" => "History: plagues, diseases etc", - "NHTG" => "Genealogy, heraldry, names & honours", - "NHTK" => "Industrialization & industrial history", + "NHTG" => "Genealogy, heraldry, names and honours", + "NHTK" => "Industrialisation and industrial history", "NHTM" => "Maritime history", "NHTP" => "Historical geography", - "NHTP1" => "Historical maps & atlases", - "NHTQ" => "Colonialism & imperialism", - "NHTR" => "National liberation & independence, post-colonialism", - "NHTS" => "Slavery & abolition of slavery", - "NHTT" => "Invasion & occupation", + "NHTP1" => "Historical maps and atlases", + "NHTQ" => "Colonialism and imperialism", + "NHTR" => "National liberation and independence", + "NHTS" => "Slavery and abolition of slavery", + "NHTT" => "Invasion, conquest and occupation", "NHTV" => "Revolutions, uprisings, rebellions", - "NHTW" => "The Cold War", - "NHTZ" => "Genocide & ethnic cleansing", + "NHTW" => "Cold wars and proxy conflicts", + "NHTX" => "Violence, intolerance and persecution in history", + "NHTZ" => "Genocide and ethnic cleansing", "NHTZ1" => "The Holocaust", "NHW" => "Military history", "NHWA" => "Ancient warfare", + "NHWD" => "Medieval warfare (predating gunpowder warfare)", "NHWF" => "Early modern warfare (including gunpowder warfare)", "NHWL" => "Modern warfare", - "NHWR" => "Specific wars & campaigns", + "NHWR" => "Specific wars and campaigns", "NHWR1" => "Specific battles", "NHWR3" => "Civil wars", "NHWR5" => "First World War", @@ -1560,13 +1631,14 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "NK" => "Archaeology", "NKA" => "Archaeological theory", "NKD" => "Archaeology by period / region", + "NKDS" => "Archaeological sites", "NKL" => "Landscape archaeology", "NKP" => "Environmental archaeology", "NKR" => "Underwater archaeology", "NKT" => "Industrial archaeology", "NKV" => "Battlefield archaeology", - "NKX" => "Archaeological science, methodology & techniques", - "P" => "Mathematics & Science", + "NKX" => "Archaeological science, methodology and techniques", + "P" => "Mathematics and Science", "PB" => "Mathematics", "PBB" => "Philosophy of mathematics", "PBC" => "Mathematical foundations", @@ -1575,35 +1647,35 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "PBCN" => "Number systems", "PBD" => "Discrete mathematics", "PBF" => "Algebra", - "PBG" => "Groups & group theory", + "PBG" => "Groups and group theory", "PBH" => "Number theory", "PBJ" => "Pre-calculus", - "PBK" => "Calculus & mathematical analysis", + "PBK" => "Calculus and mathematical analysis", "PBKA" => "Calculus", "PBKB" => "Real analysis, real variables", "PBKD" => "Complex analysis, complex variables", - "PBKF" => "Functional analysis & transforms", - "PBKJ" => "Differential calculus & equations", - "PBKL" => "Integral calculus & equations", + "PBKF" => "Functional analysis and transforms", + "PBKJ" => "Differential calculus and equations", + "PBKL" => "Integral calculus and equations", "PBKQ" => "Calculus of variations", "PBKS" => "Numerical analysis", "PBM" => "Geometry", "PBMB" => "Trigonometry", "PBMH" => "Euclidean geometry", "PBML" => "Non-Euclidean geometry", - "PBMP" => "Differential & Riemannian geometry", + "PBMP" => "Differential and Riemannian geometry", "PBMS" => "Analytic geometry", "PBMW" => "Algebraic geometry", "PBMX" => "Fractal geometry", "PBP" => "Topology", "PBPD" => "Algebraic topology", "PBPH" => "Analytic topology", - "PBT" => "Probability & statistics", + "PBT" => "Probability and statistics", "PBTB" => "Bayesian inference", "PBU" => "Optimization", "PBUD" => "Game theory", "PBUH" => "Linear programming", - "PBV" => "Combinatorics & graph theory", + "PBV" => "Combinatorics and graph theory", "PBW" => "Applied mathematics", "PBWH" => "Mathematical modelling", "PBWL" => "Stochastics", @@ -1613,51 +1685,51 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "PBX" => "History of mathematics", "PD" => "Science: general issues", "PDA" => "Philosophy of science", - "PDC" => "Scientific nomenclature & classification", + "PDC" => "Scientific nomenclature and classification", "PDD" => "Scientific standards, measurement etc", "PDE" => "Maths for scientists", - "PDG" => "Industrial applications of scientific research & technological innovation", - "PDJ" => "Regulation of science & experimentation", - "PDK" => "Science funding & policy", + "PDG" => "Industrial applications of scientific research and technological innovation", + "PDJ" => "Regulation of science and experimentation", + "PDK" => "Science funding and policy", "PDM" => "Scientific research", - "PDN" => "Scientific equipment, experiments & techniques", - "PDR" => "Impact of science & technology on society", + "PDN" => "Scientific equipment, experiments and techniques", + "PDR" => "Impact of science and technology on society", "PDT" => "Nanosciences", "PDX" => "History of science", "PDZ" => "Popular science", "PDZM" => "Popular and recreational mathematics", - "PG" => "Astronomy, space & time", - "PGC" => "Theoretical & mathematical astronomy", - "PGG" => "Astronomical observation: observatories, equipment & methods", - "PGK" => "Cosmology & the universe", - "PGM" => "Galaxies & stars", - "PGS" => "Solar system: the Sun & planets", - "PGT" => "Astronomical charts & atlases", - "PGZ" => "Time (chronology), time systems & standards", + "PG" => "Astronomy, space and time", + "PGC" => "Theoretical and mathematical astronomy", + "PGG" => "Astronomical observation: observatories, equipment and methods", + "PGK" => "Cosmology and the universe", + "PGM" => "Galaxies and stars", + "PGS" => "Solar system: the Sun and planets", + "PGT" => "Astronomical charts and atlases", + "PGZ" => "Time (chronology), time systems and standards", "PH" => "Physics", "PHD" => "Classical mechanics", "PHDB" => "Elementary mechanics", "PHDD" => "Analytical mechanics", "PHDF" => "Physics: Fluid mechanics", - "PHDS" => "Wave mechanics (vibration & acoustics)", - "PHDT" => "Dynamics & statics", + "PHDS" => "Wave mechanics (vibration and acoustics)", + "PHDT" => "Dynamics and statics", "PHDV" => "Gravity", "PHDY" => "Energy", "PHF" => "Materials / States of matter", "PHFB" => "Low temperature physics", - "PHFC" => "Condensed matter physics (liquid state & solid state physics)", + "PHFC" => "Condensed matter physics (liquid state and solid state physics)", "PHFC1" => "Soft matter physics", "PHFC2" => "Mesoscopic physics", "PHFG" => "Physics of gases", "PHFP" => "Plasma physics", - "PHH" => "Thermodynamics & heat", + "PHH" => "Thermodynamics and heat", "PHJ" => "Optical physics", "PHJL" => "Laser physics", - "PHK" => "Electricity, electromagnetism & magnetism", - "PHM" => "Atomic & molecular physics", + "PHK" => "Electricity, electromagnetism and magnetism", + "PHM" => "Atomic and molecular physics", "PHN" => "Nuclear physics", - "PHP" => "Particle & high-energy physics", - "PHQ" => "Quantum physics (quantum mechanics & quantum field theory)", + "PHP" => "Particle and high-energy physics", + "PHQ" => "Quantum physics (quantum mechanics and quantum field theory)", "PHR" => "Relativity physics", "PHS" => "Statistical physics", "PHU" => "Mathematical physics", @@ -1687,29 +1759,29 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "PNRD" => "Catalysis", "PNRD1" => "Bio-catalysis", "PNRE" => "Experimental chemistry", - "PNRH" => "Electrochemistry & magnetochemistry", - "PNRL" => "Nuclear chemistry, photochemistry & radiation", - "PNRP" => "Quantum & theoretical chemistry", + "PNRH" => "Electrochemistry and magnetochemistry", + "PNRL" => "Nuclear chemistry, photochemistry and radiation", + "PNRP" => "Quantum and theoretical chemistry", "PNRR" => "Physical organic chemistry", "PNRS" => "Solid state chemistry", - "PNRW" => "Thermochemistry & chemical thermodynamics", - "PNRX" => "Surface chemistry & adsorption", + "PNRW" => "Thermochemistry and chemical thermodynamics", + "PNRX" => "Surface chemistry and adsorption", "PNT" => "Crystallography", - "PNV" => "Chemistry of minerals, crystals & gems", + "PNV" => "Chemistry of minerals, crystals and gems", "PS" => "Biology, life sciences", "PSA" => "Life sciences: general issues", - "PSAB" => "Taxonomy & systematics", + "PSAB" => "Taxonomy and systematics", "PSAD" => "Bioethics", "PSAF" => "Ecological science, the Biosphere", "PSAG" => "Xenobiotics", "PSAJ" => "Evolution", "PSAK" => "Genetics (non-medical)", "PSAN" => "Neurosciences", - "PSAN1" => "Cellular & molecular neuroscience", + "PSAN1" => "Cellular and molecular neuroscience", "PSAN2" => "Developmental neuroscience", - "PSAN3" => "Neuroimaging & neuroanatomy", - "PSAN4" => "Sensory & motor systems", - "PSAN5" => "Cognitive & behavioural neuroscience", + "PSAN3" => "Neuroimaging and neuroanatomy", + "PSAN4" => "Sensory and motor systems", + "PSAN5" => "Cognitive and behavioural neuroscience", "PSAX" => "Computational biology / bioinformatics", "PSB" => "Biochemistry", "PSC" => "Developmental biology", @@ -1719,125 +1791,131 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "PSG" => "Microbiology (non-medical)", "PSGN" => "Protozoa", "PSP" => "Hydrobiology", - "PSPA" => "Phycology (algae & seaweed)", + "PSPA" => "Phycology (algae and seaweed)", "PSPF" => "Freshwater biology", "PSPM" => "Marine biology", "PSQ" => "Mycology, fungi", - "PST" => "Botany & plant sciences", + "PST" => "Botany and plant sciences", "PSTB" => "Plant biology", "PSTH" => "Flowering plants (angiosperms)", - "PSTJ" => "Conifers & gymnosperms", - "PSTM" => "Ferns, mosses & liverworts", - "PSV" => "Zoology & animal sciences", + "PSTJ" => "Conifers and gymnosperms", + "PSTM" => "Ferns, mosses and liverworts", + "PSV" => "Zoology and animal sciences", "PSVA" => "Zoology: invertebrates", "PSVA2" => "Insects (entomology)", "PSVA4" => "Crustaceans (carcinology)", "PSVA6" => "Molluscs (malacology)", "PSVA8" => "Arachnids (arachnology)", "PSVC" => "Zoology: fishes (ichthyology)", - "PSVF" => "Zoology: amphibians & reptiles (herpetology)", + "PSVF" => "Zoology: amphibians and reptiles (herpetology)", "PSVJ" => "Zoology: birds (ornithology)", "PSVM" => "Zoology: mammals (mammalogy)", - "PSVM1" => "Zoology: marsupials & monotremes", - "PSVM2" => "Zoology: marine & freshwater mammals", + "PSVM1" => "Zoology: marsupials and monotremes", + "PSVM2" => "Zoology: marine and freshwater mammals", "PSVM3" => "Zoology: primates (primatology)", - "PSVP" => "Ethology & animal behaviour", + "PSVP" => "Ethology and animal behaviour", "PSX" => "Human biology", "PSXE" => "Evolutionary anthropology", - "Q" => "Philosophy & Religion", + "Q" => "Philosophy and Religion", "QD" => "Philosophy", - "QDH" => "History of philosophy, philosophical traditions", - "QDHA" => "Ancient philosophy", - "QDHC" => "East Asian & Indian philosophy", + "QDH" => "Philosophical traditions and schools of thought", + "QDHA" => "Ancient Greek and Roman philosophy", + "QDHC" => "East Asian and Indian philosophy", "QDHC2" => "Yoga (as a philosophy)", - "QDHF" => "Mediaeval philosophy", + "QDHF" => "Medieval Western philosophy", "QDHH" => "Humanist philosophy", - "QDHK" => "Islamic & Arab philosophy", + "QDHK" => "Islamic and Arab philosophy", + "QDHL" => "Jewish philosophy", "QDHM" => "Western philosophy: Enlightenment", - "QDHR" => "Modern philosophy: since c 1800", + "QDHP" => "African philosophy", + "QDHR" => "Western philosophy from c 1800", "QDHR1" => "Idealism", "QDHR3" => "Pragmatism", - "QDHR5" => "Phenomenology & Existentialism", - "QDHR7" => "Structuralism & Post-structuralism", - "QDHR9" => "Analytical philosophy & Logical Positivism", + "QDHR5" => "Phenomenology and Existentialism", + "QDHR7" => "Structuralism and Post-structuralism", + "QDHR9" => "Analytical philosophy and Logical Positivism", "QDT" => "Topics in philosophy", - "QDTJ" => "Philosophy: metaphysics & ontology", - "QDTK" => "Philosophy: epistemology & theory of knowledge", + "QDTJ" => "Philosophy: metaphysics and ontology", + "QDTK" => "Philosophy: epistemology and theory of knowledge", "QDTL" => "Philosophy: logic", "QDTM" => "Philosophy of mind", "QDTN" => "Philosophy: aesthetics", - "QDTQ" => "Ethics & moral philosophy", - "QDTS" => "Social & political philosophy", + "QDTQ" => "Ethics and moral philosophy", + "QDTS" => "Social and political philosophy", "QDX" => "Popular philosophy", - "QR" => "Religion & beliefs", + "QR" => "Religion and beliefs", "QRA" => "Religion: general", "QRAB" => "Philosophy of religion", - "QRAB1" => "Nature & existence of God", + "QRAB1" => "Nature and existence of God", "QRAC" => "Comparative religion", "QRAF" => "Interfaith relations", - "QRAM" => "Religious issues & debates", + "QRAM" => "Religious issues and debates", "QRAM1" => "Religious ethics", - "QRAM2" => "Religion & politics", - "QRAM3" => "Religion & science", + "QRAM2" => "Religion and politics", + "QRAM3" => "Religion and science", "QRAM6" => "Religious fundamentalism", "QRAM7" => "Blasphemy, heresy, apostasy", - "QRAM9" => "Religious intolerance & persecution", + "QRAM9" => "Religious intolerance, persecution and conflict", "QRAX" => "History of religion", "QRD" => "Hinduism", - "QRDB" => "Hinduism: branches & groups", - "QRDF" => "Hindu sacred texts", + "QRDB" => "Hinduism: branches and groups", + "QRDF" => "Hindu sacred texts and revered writings", "QRDF1" => "Hindu texts: Vedas, Upanishads", "QRDF2" => "Hindu texts: Bhagavad Gita", - "QRDP" => "Hindu life & practice", + "QRDP" => "Hindu life and practice", "QRF" => "Buddhism", - "QRFB" => "Buddhism: branches & groups", + "QRFB" => "Buddhism: branches and groups", "QRFB1" => "Theravada Buddhism", "QRFB2" => "Mahayana Buddhism", "QRFB21" => "Tibetan Buddhism", "QRFB23" => "Zen Buddhism", - "QRFF" => "Buddhist sacred texts", - "QRFP" => "Buddhist life & practice", + "QRFF" => "Buddhist sacred texts and revered writings", + "QRFP" => "Buddhist life and practice", "QRJ" => "Judaism", - "QRJB" => "Judaism: branches & groups", + "QRJB" => "Judaism: branches and groups", "QRJB1" => "Orthodox Judaism", - "QRJB3" => "Liberal & Reform Judaism", - "QRJF" => "Judaism: sacred texts", + "QRJB2" => "Masorti Judaism", + "QRJB3" => "Liberal and Reform Judaism", + "QRJF" => "Judaism: sacred texts and revered writings", "QRJF1" => "Jewish texts: Tanakh, Torah, Nevi’im, Ketuvim", "QRJF5" => "Rabbinic literature", - "QRJP" => "Judaism: life & practice", + "QRJP" => "Judaism: life and practice", "QRM" => "Christianity", "QRMB" => "Christian Churches, denominations, groups", "QRMB1" => "Roman Catholicism, Roman Catholic Church", - "QRMB2" => "Orthodox & Oriental Orthodox Churches", - "QRMB3" => "Protestantism & Protestant Churches", - "QRMB31" => "Anglican & Episcopalian Churches", + "QRMB2" => "Orthodox and Oriental Orthodox Churches", + "QRMB3" => "Protestantism and Protestant Churches", + "QRMB31" => "Anglican and Episcopalian Churches", "QRMB32" => "Baptist Churches", - "QRMB33" => "Calvinist, Reformed & Presbyterian Churches", + "QRMB33" => "Calvinist, Reformed and Presbyterian Churches", "QRMB34" => "Lutheran Churches", "QRMB35" => "Methodist Churches", "QRMB36" => "Pentecostal Churches", "QRMB37" => "Quakers (Religious Society of Friends)", - "QRMB39" => "Other Nonconformist & Evangelical Churches", + "QRMB39" => "Other Nonconformist and Evangelical Churches", "QRMB5" => "Denominations of American origin", - "QRMB8" => "Christian & quasi-Christian cults & sects", + "QRMB8" => "Christian and quasi-Christian cults and sects", "QRMB9" => "Ecumenism", - "QRMF" => "Christianity: sacred texts", + "QRMF" => "Christianity: sacred texts and revered writings", "QRMF1" => "Bibles", "QRMF12" => "Old Testaments", "QRMF13" => "New Testaments", - "QRMF19" => "Bible readings, selections & meditations", - "QRMP" => "Christian life & practice", + "QRMF14" => "Biblical Apocrypha and Intertestamental", + "QRMF19" => "Bible readings, selections and meditations", + "QRMF3" => "Writings of the Early Church Fathers", + "QRMP" => "Christian life and practice", "QRMP1" => "Christian sacraments", "QRP" => "Islam", - "QRPB" => "Islam: branches & groups", + "QRPB" => "Islam: branches and groups", "QRPB1" => "Islamic groups: Sunni, Alsalaf", "QRPB2" => "Islamic groups: Khawarij, Kharijite", "QRPB3" => "Islamic groups: Shi’ah, Shi’ite", "QRPB4" => "Islamic groups: Sufis", - "QRPF" => "Islamic sacred texts", + "QRPF" => "Islamic sacred texts and revered writings", "QRPF1" => "The Koran (Qur’an)", - "QRPP" => "Islamic life & practice", - "QRR" => "Other World religions", + "QRPF2" => "Hadith", + "QRPP" => "Islamic life and practice", + "QRR" => "Other religions and spiritual beliefs", "QRRB" => "Baha’i", "QRRC" => "Jainism", "QRRD" => "Sikhism", @@ -1848,78 +1926,85 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "QRRL5" => "Taoism", "QRRL6" => "Chinese folk religion", "QRRM" => "Afro-American religions", - "QRRN" => "Traditional African religions & mythologies", - "QRRT" => "Tribal religions", - "QRS" => "Ancient religions & mythologies", - "QRSA" => "Ancient Egyptian religion & mythology", - "QRSG" => "Ancient Greek religion & mythology", - "QRSL" => "Roman religion & mythology", - "QRST" => "Celtic religion & mythology", - "QRSW" => "Norse religion & mythology", + "QRRN" => "Traditional African religions and spiritual beliefs", + "QRRT" => "Other indigenous, ethnic and folk religions and spiritual beliefs", + "QRRT1" => "Pre-Columbian religions and mythologies", + "QRRV" => "Animism and Shamanism", + "QRS" => "Ancient religions and Mythologies", + "QRSA" => "Ancient Egyptian religion and mythology", + "QRSG" => "Ancient Greek religion and mythology", + "QRSL" => "Roman religion and mythology", + "QRST" => "Celtic religion and mythology", + "QRSV" => "Slavic religion and mythology", + "QRSW" => "Norse religion and mythology", "QRV" => "Aspects of religion", - "QRVA" => "Sacred texts", - "QRVC" => "Criticism & exegesis of sacred texts", + "QRVA" => "Sacred texts, scriptures and revered writings", + "QRVA2" => "Readings, selections and meditations from sacred texts", + "QRVC" => "Criticism and exegesis of sacred texts", + "QRVD" => "Religious doctrines", "QRVG" => "Theology", "QRVH" => "Sermons", - "QRVJ" => "Prayers & liturgical material", - "QRVJ1" => "Worship, rites & ceremonies", - "QRVJ2" => "Prayer & prayerbooks", + "QRVJ" => "Prayers and liturgical material", + "QRVJ1" => "Worship, rites, ceremonies and rituals", + "QRVJ2" => "Prayer and prayer books", "QRVJ3" => "Devotional material", - "QRVK" => "Spirituality & religious experience", + "QRVK" => "Spirituality and religious experience", "QRVK2" => "Mysticism", - "QRVK4" => "Miracles, apparitions & religious phenomena", - "QRVP" => "Religious life & practice", + "QRVK4" => "Miracles, apparitions and religious phenomena", + "QRVP" => "Religious life and practice", "QRVP1" => "Pilgrimage", "QRVP2" => "Religious Festivals", "QRVP3" => "Religious instruction", - "QRVP4" => "Fasting & abstinence", + "QRVP4" => "Fasting and abstinence", "QRVP5" => "Religious counselling", - "QRVP7" => "Religious aspects of sexuality, gender & relationships", - "QRVS" => "Religious institutions & organizations", - "QRVS1" => "Religious & spiritual figures", - "QRVS2" => "Religious social & pastoral thought & activity", - "QRVS3" => "Religious ministry", - "QRVS4" => "Religious mission & conversion", - "QRVS5" => "Religious communities & monasticism", - "QRVX" => "Personal religious testimony & popular inspirational works", + "QRVP7" => "Religious aspects of sexuality, gender and relationships", + "QRVS" => "Religious institutions and organizations", + "QRVS1" => "Religious and spiritual figures", + "QRVS2" => "Religious social and pastoral thought and activity", + "QRVS3" => "Religious ministry and clergy", + "QRVS4" => "Religious mission and Religious Conversion", + "QRVS5" => "Religious communities and monasticism", + "QRVX" => "Personal religious testimony and popular inspirational works", "QRY" => "Alternative belief systems", - "QRYA" => "Humanist & secular alternatives to religion", - "QRYA5" => "Agnosticism & atheism", - "QRYC" => "Eclectic & esoteric religions & belief systems", + "QRYA" => "Humanist and secular alternatives to religion", + "QRYA5" => "Agnosticism and atheism", + "QRYC" => "Eclectic and esoteric religions and belief systems", "QRYC1" => "Gnosticism", - "QRYC5" => "Theosophy & Anthroposophy", - "QRYM" => "Contemporary non-Christian & para-Christian cults & sects", + "QRYC5" => "Theosophy and Anthroposophy", + "QRYM" => "Contemporary non-Christian and para-Christian cults and sects", "QRYM2" => "Spiritualism", "QRYX" => "Occult studies", - "QRYX2" => "Magic, alchemy & hermetic thought", + "QRYX2" => "Magic, alchemy and hermetic thought", "QRYX5" => "Witchcraft", - "QRYX9" => "Satanism & demonology", + "QRYX9" => "Satanism and demonology", "R" => "Earth Sciences, Geography, Environment, Planning", "RB" => "Earth sciences", - "RBC" => "Volcanology & seismology", - "RBG" => "Geology, geomorphology & the lithosphere", - "RBGB" => "Sedimentology & pedology", - "RBGD" => "Geomorphology & geological surface processes", - "RBGF" => "Historical geology", - "RBGG" => "Petrology, petrography & mineralogy", + "RBC" => "Volcanology and seismology", + "RBG" => "Geology, geomorphology and the lithosphere", + "RBGB" => "Sedimentology and pedology", + "RBGD" => "Geomorphology and geological surface processes", + "RBGF" => "Historical geology and palaeogeology", + "RBGG" => "Petrology, petrography and mineralogy", "RBGH" => "Stratigraphy", "RBGK" => "Geochemistry", "RBGL" => "Economic geology", - "RBK" => "Hydrology & the hydrosphere", - "RBKC" => "Oceanography (seas & oceans)", + "RBK" => "Hydrology and the hydrosphere", + "RBKC" => "Oceanography (seas and oceans)", "RBKF" => "Limnology (inland waters)", - "RBP" => "Meteorology & climatology", + "RBP" => "Meteorology and climatology", + "RBPC" => "Climatology and climate modelling", + "RBPM" => "Meteorology", "RBX" => "Palaeontology", "RG" => "Geography", - "RGB" => "Physical geography & topography", + "RGB" => "Physical geography and topography", "RGBA" => "Arid zones, deserts", - "RGBC" => "Plains & grasslands", + "RGBC" => "Plains and grasslands", "RGBC1" => "Prairies", "RGBC2" => "Savanna", "RGBD" => "Tundra", "RGBF" => "Wetlands, swamps, fens", - "RGBG" => "Rivers & lakes", - "RGBL" => "Forests & woodland", + "RGBG" => "Rivers and lakes", + "RGBL" => "Forests and woodland", "RGBL1" => "Rainforest", "RGBL2" => "Mixed forest", "RGBL3" => "Broadleaf forest", @@ -1927,66 +2012,67 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "RGBP" => "Coastlines", "RGBR" => "Coral reefs", "RGBS" => "Mountains", - "RGBU" => "Glaciers & ice caps", + "RGBU" => "Glaciers and ice caps", "RGC" => "Human geography", - "RGCD" => "Development & environmental geography", - "RGCG" => "Population & migration geography", + "RGCD" => "Development and environmental geography", + "RGCG" => "Population and migration geography", "RGCM" => "Economic geography", "RGCP" => "Political geography", "RGCS" => "Social geography", "RGCT" => "Tourism geography", - "RGCU" => "Settlement, urban & rural geography", + "RGCU" => "Settlement, urban and rural geography", "RGL" => "Regional geography", "RGM" => "Biogeography", - "RGR" => "Geographical discovery & exploration", - "RGV" => "Cartography, map-making & projections", - "RGW" => "Geographical information systems & remote sensing", + "RGR" => "Geographical discovery and exploration", + "RGV" => "Cartography, map-making and projections", + "RGW" => "Geographical information systems and remote sensing", "RGX" => "Geographical reference works", "RGXB" => "World atlases / world maps", "RGXH" => "Geographical maps (specialist)", - "RGXM" => "Naval & marine charts", - "RGXP" => "Place names & gazetteers", + "RGXM" => "Naval and marine charts", + "RGXP" => "Place names and gazetteers", "RN" => "The environment", - "RNA" => "Environmentalist thought & ideology", - "RNB" => "Environmentalist, conservationist & Green organizations", + "RNA" => "Environmentalist thought and ideology", + "RNB" => "Environmentalist, conservationist and Green organizations", "RNC" => "Applied ecology", "RNCB" => "Biodiversity", - "RND" => "Environmental policy & protocols", + "RND" => "Environmental policy and protocols", "RNF" => "Environmental management", - "RNFD" => "Drought & water supply", - "RNFF" => "Food security & supply", + "RNFD" => "Drought and water supply", + "RNFF" => "Food security and supply", "RNFY" => "Energy resources", "RNH" => "Waste management", "RNK" => "Conservation of the environment", - "RNKH" => "Conservation of wildlife & habitats", - "RNKH1" => "Endangered species & extinction of species", - "RNP" => "Pollution & threats to the environment", + "RNKH" => "Conservation of wildlife and habitats", + "RNKH1" => "Endangered species and extinction of species", + "RNP" => "Pollution and threats to the environment", "RNPD" => "Deforestation", "RNPG" => "Climate change", "RNQ" => "Nuclear issues", "RNR" => "Natural disasters", "RNT" => "Social impact of environmental issues", "RNU" => "Sustainability", - "RP" => "Regional & area planning", - "RPC" => "Urban & municipal planning", - "RPG" => "Rural planning", - "RPT" => "Transport planning & policy", - "S" => "Sports & Active outdoor recreation", + "RP" => "Regional and area planning", + "RPC" => "Urban and municipal planning and policy", + "RPG" => "Rural planning and policy", + "RPT" => "Transport planning and policy", + "S" => "Sports and Active outdoor recreation", "SC" => "Sport: general", - "SCB" => "Sporting events & management", - "SCBB" => "Olympic & Paralympic games", + "SCB" => "Sporting events and management", + "SCBB" => "Olympic and Paralympic games", + "SCBC" => "World Cups and World championships", "SCBG" => "Sports governing bodies", - "SCBM" => "Sports management & facilities", - "SCBT" => "Sports teams & clubs", + "SCBM" => "Sports management and facilities", + "SCBT" => "Sports teams and clubs", "SCBV" => "Sporting venues", - "SCG" => "Sports training & coaching", + "SCG" => "Sports training and coaching", "SCGF" => "Sport science, physical education", "SCGP" => "Sports psychology", "SCK" => "Drug abuse in sport", "SCL" => "Parasport", "SCX" => "History of sport", "SF" => "Ball sports / ball games", - "SFB" => "Football variants & related games", + "SFB" => "Football variants and related games", "SFBC" => "Association football (Soccer)", "SFBD" => "American football", "SFBF" => "Australian Rules football", @@ -2007,44 +2093,44 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "SFT" => "Racket games", "SFTA" => "Tennis", "SFTB" => "Badminton", - "SFTC" => "Squash & rackets (racquets)", + "SFTC" => "Squash and rackets (racquets)", "SFTD" => "Table tennis", "SFV" => "Bowls, bowling, petanque", "SFX" => "Snooker, billiards, pool", - "SH" => "Athletics, gymnastics & related sports", - "SHB" => "Track & field sports, athletics", - "SHBF" => "Marathon & cross-country running", + "SH" => "Athletics, gymnastics and related sports", + "SHB" => "Track and field sports, athletics", + "SHBF" => "Marathon and cross-country running", "SHBM" => "Multidiscipline sports", "SHG" => "Gymnastics", "SHP" => "Weightlifting", - "SK" => "Equestrian & animal sports", + "SK" => "Equestrian and animal sports", "SKG" => "Horse racing", - "SKL" => "Riding, showjumping & horsemanship", + "SKL" => "Riding, showjumping and horsemanship", "SKR" => "Dog racing", "SM" => "Vehicle sports", - "SMC" => "Air sports & recreations", + "SMC" => "Air sports and recreations", "SMF" => "Motor sports", "SMFA" => "Car racing", "SMFC" => "Motor rallying / rally driving", - "SMFF" => "Stock car & hot rod racing", + "SMFF" => "Stock car and hot rod racing", "SMFK" => "Motorcycle racing", "SMQ" => "Cycle racing", "SMQB" => "BMX cycling", "SMX" => "Rollerblading, skateboarding, etc", - "SP" => "Water sports & recreations", - "SPC" => "Swimming & diving", + "SP" => "Water sports and recreations", + "SPC" => "Swimming and diving", "SPCA" => "Underwater (sub-aqua) swimming", "SPCA1" => "Scuba diving", "SPCA2" => "Snorkelling", "SPCD" => "Diving", "SPCS" => "Swimming", "SPG" => "Surfing, windsurfing, water skiing", - "SPN" => "Boating: Sport & leisure", - "SPND" => "Motor / power boating & cruising", + "SPN" => "Boating: Sport and leisure", + "SPND" => "Motor / power boating and cruising", "SPNG" => "Sailing / yachting", - "SPNK" => "Canoeing & kayaking", - "SPNL" => "Rowing & sculling", - "SR" => "Combat sports & self-defence", + "SPNK" => "Canoeing and kayaking", + "SPNL" => "Rowing and sculling", + "SR" => "Combat sports and self-defence", "SRB" => "Boxing", "SRC" => "Wrestling", "SRF" => "Fencing", @@ -2055,7 +2141,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "SRMK" => "Ju-jitsu", "SRML" => "Karate", "SRMM" => "Kendo", - "SRMN" => "Chinese martial arts / Kung-fu", + "SRMN" => "Chinese martial arts / Kung-Fu", "SRMN1" => "Tai Chi", "SRMN2" => "Qigong", "SRMS" => "Sumo", @@ -2077,26 +2163,27 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "STLN" => "Sled dog racing", "STP" => "Curling", "SV" => "Field sports: fishing, hunting, shooting", + "SVB" => "Falconry and hawking", "SVF" => "Fishing, angling", "SVFF" => "Fly fishing", "SVFS" => "Sea fishing", - "SVH" => "Hunting or shooting animals & game", + "SVH" => "Hunting or shooting animals and game", "SVHH" => "Professional qualifications for hunting / shooting", "SVR" => "Archery", - "SVS" => "Small firearms, guns & other equipment", + "SVS" => "Small firearms, guns and other equipment", "SVT" => "Target shooting", - "SX" => "Other sports & competitive activities", + "SX" => "Other sports and competitive activities", "SXB" => "Bodybuilding", "SXD" => "Darts", "SXE" => "eSports / Professional video gaming", "SXQ" => "Extreme sports", "SZ" => "Active outdoor pursuits", "SZC" => "Walking, hiking, trekking", - "SZD" => "Cycling: general & touring", - "SZE" => "Running & jogging", - "SZG" => "Climbing & mountaineering", + "SZD" => "Cycling: general and touring", + "SZE" => "Running and jogging", + "SZG" => "Climbing and mountaineering", "SZK" => "Orienteering", - "SZN" => "Caving & potholing", + "SZN" => "Caving and potholing", "SZR" => "Camping", "SZV" => "Outdoor survival skills", "T" => "Technology, Engineering, Agriculture, Industrial processes", @@ -2104,41 +2191,43 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "TBC" => "Engineering: general", "TBD" => "Technical design", "TBDG" => "Ergonomics", - "TBG" => "Engineering graphics & draughting / technical drawing", + "TBG" => "Engineering graphics and draughting / technical drawing", "TBJ" => "Maths for engineers", - "TBM" => "Instruments & instrumentation engineering", - "TBMM" => "Engineering measurement & calibration", + "TBM" => "Instruments and instrumentation", + "TBMM" => "Engineering measurement and calibration", "TBN" => "Nanotechnology", "TBR" => "Intermediate technology", - "TBX" => "History of engineering & technology", - "TBY" => "Inventions & inventors", + "TBX" => "History of engineering and technology", + "TBY" => "Inventions and inventors", "TC" => "Biochemical engineering", "TCB" => "Biotechnology", "TCBG" => "Genetic engineering", "TCBS" => "Biosensors", - "TD" => "Industrial chemistry & manufacturing technologies", - "TDC" => "Industrial chemistry & chemical engineering", + "TD" => "Industrial chemistry and manufacturing technologies", + "TDC" => "Industrial chemistry and chemical engineering", "TDCA" => "Agrichemicals", - "TDCF" => "Fuels & petrochemicals", - "TDCJ" => "Dyestuffs, pigments & paint technology", - "TDCP" => "Plastics & polymers", - "TDCQ" => "Ceramic & glass technology", - "TDCT" => "Food & beverage technology", - "TDCT1" => "Food & beverage safety", - "TDCT2" => "Food & beverage processing & engineering", - "TDCW" => "Pharmaceutical chemistry & technology", - "TDCX" => "Process engineering technology & techniques", + "TDCF" => "Fuels and petrochemicals", + "TDCJ" => "Dyestuffs, pigments and paint technology", + "TDCP" => "Plastics and polymers", + "TDCQ" => "Ceramic and glass technology", + "TDCT" => "Food and beverage technology", + "TDCT1" => "Food and beverage safety", + "TDCT2" => "Food and beverage processing and engineering", + "TDCW" => "Pharmaceutical chemistry and technology", + "TDCX" => "Process engineering technology and techniques", "TDP" => "Other manufacturing technologies", - "TDPF" => "Textiles & fibres", - "TDPJ" => "Timber & wood processing", - "TDPJ1" => "Paper & pulp manufacture & processing", + "TDPF" => "Textiles and fibres", + "TDPF1" => "Apparel and fashion: technology and techniques", + "TDPJ" => "Timber and wood processing", + "TDPJ1" => "Paper and pulp manufacture and processing", "TDPM" => "Metals technology / metallurgy", - "TDPP" => "Printing & reprographic technologies", + "TDPP" => "Printing and reprographic technologies", "TDPT" => "3D Printing", - "TG" => "Mechanical engineering & materials", + "TG" => "Mechanical engineering and materials", "TGB" => "Mechanical engineering", - "TGBF" => "Tribology (friction & lubrication)", - "TGBN" => "Engines & power transmission", + "TGBF" => "Tribology (friction and lubrication)", + "TGBN" => "Engines and power transmission", + "TGH" => "Precision engineering and manufacturing", "TGM" => "Materials science", "TGMB" => "Engineering thermodynamics", "TGMD" => "Engineering: Mechanics of solids", @@ -2147,39 +2236,42 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "TGMF2" => "Hydraulics / Pneumatics", "TGML" => "Engineering applications of bio-materials", "TGMM" => "Engineering applications of electronic, magnetic, optical materials", - "TGMP" => "Engineering applications of polymers & composites", - "TGMS" => "Engineering applications of surface coatings & films", + "TGMP" => "Engineering applications of polymers and composites", + "TGMS" => "Engineering applications of surface coatings and films", "TGMT" => "Testing of materials", - "TGP" => "Production & industrial engineering", + "TGP" => "Production and industrial engineering", "TGPC" => "Computer aided manufacture (CAM)", "TGPQ" => "Industrial quality control", "TGPR" => "Reliability engineering", - "TGX" => "Engineering skills & trades", - "TH" => "Energy technology & engineering", + "TGX" => "Engineering skills and trades", + "TH" => "Energy technology and engineering", "THF" => "Fossil fuel technologies", "THFG" => "Gas technology", "THFP" => "Petroleum technology", "THFS" => "Solid fuel technology", - "THK" => "Nuclear power & engineering", + "THK" => "Nuclear power and engineering", "THN" => "Heat transfer processes", "THR" => "Electrical engineering", "THRM" => "Electric motors", - "THRX" => "Electrician skills & trades", - "THV" => "Alternative & renewable energy sources & technology", + "THRX" => "Electrician skills and trades", + "THV" => "Alternative and renewable energy sources and technology", "THVB" => "Biofuels", + "THVG" => "Geothermal energy and power", + "THVH" => "Hydropower / waterpower", "THVS" => "Solar power", "THVW" => "Wind power", - "THY" => "Energy, power generation, distribution & storage", + "THY" => "Energy, power generation, distribution and storage", "THYC" => "Energy efficiency", - "TJ" => "Electronics & communications engineering", + "TJ" => "Electronics and communications engineering", "TJF" => "Electronics engineering", - "TJFC" => "Electronics: circuits & components", - "TJFD" => "Electronic devices & materials", + "TJFC" => "Electronics: circuits and components", + "TJFD" => "Electronic devices and materials", "TJFM" => "Automatic control engineering", "TJFM1" => "Robotics", "TJFN" => "Microwave technology", "TJK" => "Communications engineering / telecommunications", "TJKD" => "Radar technology", + "TJKH" => "Signal processing", "TJKR" => "Radio technology", "TJKS" => "Satellite communication technology", "TJKT" => "Telephone technology", @@ -2187,116 +2279,119 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "TJKV" => "Television technology", "TJKW" => "WAP (wireless) technology", "TJS" => "Sensors", - "TN" => "Civil engineering, surveying & building", + "TN" => "Civil engineering, surveying and building", "TNC" => "Structural engineering", "TNCB" => "Surveying, quantity surveying", - "TNCC" => "Soil & rock mechanics", + "TNCC" => "Soil and rock mechanics", "TNCE" => "Earthquake engineering", "TNCJ" => "Bridges", "TNF" => "Hydraulic engineering", "TNFL" => "Flood control", - "TNH" => "Highway & traffic engineering", - "TNK" => "Building construction & materials", - "TNKA" => "Accessibility in buildings & building design", - "TNKE" => "Building physics & energy-efficient construction", - "TNKF" => "Fire protection & safety", + "TNH" => "Highway and traffic engineering", + "TNK" => "Building construction and materials", + "TNKA" => "Accessibility in buildings and building design", + "TNKE" => "Building physics and energy-efficient construction", + "TNKF" => "Fire protection and safety", "TNKH" => "Heating, lighting, ventilation", "TNKP" => "Construction planning", "TNKR" => "Building redevelopment", - "TNKS" => "Security & fire alarm systems", - "TNKX" => "Conservation of buildings & building materials", - "TNT" => "Building skills & trades", - "TQ" => "Environmental science, engineering & technology", + "TNKS" => "Security and fire alarm systems", + "TNKX" => "Conservation of buildings and building materials", + "TNT" => "Building skills and trades", + "TQ" => "Environmental science, engineering and technology", "TQD" => "Environmental monitoring", "TQK" => "Pollution control", - "TQS" => "Sanitary & municipal engineering", - "TQSR" => "Waste treatment & disposal", - "TQSW" => "Water supply & treatment", - "TR" => "Transport technology & trades", - "TRC" => "Automotive technology & trades", + "TQS" => "Sanitary and municipal engineering", + "TQSR" => "Waste treatment and disposal", + "TQSW" => "Water supply and treatment", + "TR" => "Transport technology and trades", + "TRC" => "Automotive technology and trades", "TRCS" => "Automotive (motor mechanic) skills", - "TRCT" => "Road transport & haulage trades", - "TRF" => "Railway technology, engineering & trades", + "TRCT" => "Road transport and haulage trades", + "TRF" => "Railway technology, engineering and trades", "TRFT" => "Railway trades", - "TRL" => "Shipbuilding technology, engineering & trades", - "TRLD" => "Ship design & naval architecture", - "TRLN" => "Navigation & seamanship", - "TRLT" => "Maritime & nautical trades", - "TRP" => "Aerospace & aviation technology", - "TRPS" => "Aviation skills & piloting", - "TRT" => "Intelligent & automated transport system technology", - "TT" => "Other technologies & applied sciences", - "TTA" => "Acoustic & sound engineering", + "TRL" => "Shipbuilding technology, engineering and trades", + "TRLD" => "Ship design and naval architecture", + "TRLN" => "Navigation and seamanship", + "TRLT" => "Maritime and nautical trades", + "TRP" => "Aerospace and aviation technology", + "TRPS" => "Aviation skills and piloting", + "TRT" => "Intelligent and automated transport system technology", + "TT" => "Other technologies and applied sciences", + "TTA" => "Acoustic and sound engineering", "TTB" => "Applied optics", "TTBF" => "Fibre optics", - "TTBL" => "Laser technology & holography", - "TTBM" => "Imaging systems & technology", - "TTBS" => "Scanning systems & technology", + "TTBL" => "Laser technology and holography", + "TTBM" => "Imaging systems and technology", + "TTBS" => "Scanning systems and technology", "TTD" => "Space science", "TTDS" => "Astronautics", "TTDX" => "Space exploration", "TTM" => "Military engineering", "TTMW" => "Ordnance, weapons technology", - "TTP" => "Explosives technology & pyrotechnics", + "TTP" => "Explosives technology and pyrotechnics", "TTS" => "Marine engineering", - "TTU" => "Mining technology & engineering", - "TTV" => "Other vocational technologies & trades", - "TTVC" => "Hotel, hospitality & catering trades", - "TTVC2" => "Catering & food preparation skills & trades", - "TTVH" => "Hairdressing, salon & beauty therapy skills", - "TTVR" => "Traditional trades & skills", - "TTVS" => "Security, safety & protection skills / professions", - "TTVT" => "Caretakers, janitors, housekeepers, cleaners & related skills", + "TTU" => "Mining technology and engineering", + "TTV" => "Other vocational technologies and trades", + "TTVC" => "Hotel, hospitality and catering trades", + "TTVC2" => "Catering and food preparation skills and trades", + "TTVH" => "Hairdressing, salon and beauty therapy skills", + "TTVR" => "Traditional trades, crafts and skills", + "TTVS" => "Security, safety and protection skills / professions", + "TTVT" => "Caretakers, janitors, housekeepers, cleaners and related skills", "TTW" => "Assistive technology", "TTX" => "Taxidermy", - "TV" => "Agriculture & farming", + "TV" => "Agriculture and farming", "TVB" => "Agricultural science", - "TVBP" => "Soil science & management", - "TVD" => "Agricultural engineering & machinery", + "TVBP" => "Soil science and management", + "TVD" => "Agricultural engineering and machinery", "TVDR" => "Irrigation", "TVF" => "Sustainable agriculture", "TVG" => "Organic farming", "TVH" => "Animal husbandry", "TVHB" => "Animal breeding", + "TVHE" => "Equine Management", "TVHF" => "Dairy farming", "TVHH" => "Apiculture (beekeeping)", "TVHP" => "Poultry farming", - "TVK" => "Agronomy & crop production", + "TVK" => "Agronomy and crop production", "TVM" => "Smallholdings", "TVP" => "Pest control", - "TVQ" => "Tropical agriculture: practice & techniques", - "TVR" => "Forestry & silviculture: practice & techniques", + "TVQ" => "Tropical agriculture: practice and techniques", + "TVR" => "Forestry and silviculture: practice and techniques", "TVS" => "Commercial horticulture", "TVSH" => "Hydroponics / hydroculture", "TVSW" => "Viticulture", - "TVT" => "Aquaculture & fish-farming: practice & techniques", + "TVT" => "Aquaculture and fish-farming: practice and techniques", "TVU" => "Urban farming / urban agriculture", - "U" => "Computing & Information Technology", + "U" => "Computing and Information Technology", "UB" => "Information technology: general topics", - "UBH" => "Health & safety aspects of IT", - "UBJ" => "Ethical & social aspects of IT", - "UBL" => "Legal aspects of IT", + "UBB" => "History of Computing, digital and information technologies", + "UBH" => "Digital and information technologies: Health and safety aspects", + "UBJ" => "Digital and information technologies: social and ethical aspects", + "UBL" => "Digital and information technologies: Legal aspects", "UBM" => "Maker and hacker culture", "UBW" => "Internet: general works", - "UD" => "Computing & IT: consumer and user guides", - "UDA" => "Personal organization software & apps", - "UDB" => "Internet guides & online services", - "UDBA" => "Online shopping & auctions", + "UD" => "Digital Lifestyle and online world: consumer and user guides", + "UDA" => "Personal organization software and apps", + "UDB" => "Internet guides and online services", + "UDBA" => "Online shopping and auctions", "UDBD" => "Internet searching", "UDBG" => "Internet gambling", - "UDBM" => "Online finance & investing", + "UDBM" => "Online finance and investing", "UDBR" => "Internet browsers", "UDBS" => "Social media / social networking", "UDBV" => "Virtual worlds", - "UDD" => "Online safety & behaviour", + "UDD" => "Online safety and behaviour", "UDF" => "Email: consumer / user guides", - "UDH" => "E-book readers, tablets & other portable devices: consumer / user guides", - "UDM" => "Digital music & audio: consumer / user guides", + "UDH" => "E-book readers, tablets and other portable devices: consumer / user guides", + "UDM" => "Digital music and audio: consumer / user guides", + "UDP" => "Digital photography: consumer / user guides", "UDQ" => "Digital video: consumer / user guides", - "UDT" => "Mobile phones & smartphones: consumer / user guides", - "UDV" => "Digital TV & media centres: consumer / user guides", + "UDT" => "Mobile phones and smartphones: consumer / user guides", + "UDV" => "Digital TV and media centres: consumer / user guides", "UDX" => "Computer games / online games: strategy guides", - "UDY" => "Virtual assistants: consumer / guides", + "UDY" => "Smart home technology and virtual assistants: consumer / guides", "UF" => "Business applications", "UFB" => "Integrated software packages", "UFC" => "Spreadsheet software", @@ -2304,75 +2399,77 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "UFG" => "Presentation graphics software", "UFK" => "Accounting software", "UFL" => "Enterprise software", - "UFLS" => "SAP (Systems, applications & products in databases)", - "UFM" => "Mathematical & statistical software", + "UFLS" => "SAP (Systems, applications and products in databases)", + "UFM" => "Mathematical and statistical software", "UFP" => "Project management software", - "UFS" => "Collaboration & group software", - "UG" => "Graphical & digital media applications", - "UGB" => "Web graphics & design", + "UFS" => "Collaboration and group software", + "UG" => "Graphical and digital media applications", + "UGA" => "Accessibility in web and digital design", + "UGB" => "Web graphics and design", "UGC" => "Computer-aided design (CAD)", "UGD" => "Desktop publishing", "UGG" => "Computer games design", - "UGK" => "3D graphics & modelling", - "UGL" => "Illustration & drawing software", + "UGK" => "3D graphics and modelling", + "UGL" => "Illustration and drawing software", "UGM" => "Digital music: professional", "UGN" => "Digital animation", - "UGP" => "Photo & image editing", + "UGP" => "Photo and image editing", "UGV" => "Digital video: professional", "UK" => "Computer hardware", "UKC" => "Supercomputers", - "UKD" => "Mainframes & minicomputers", + "UKD" => "Mainframes and minicomputers", "UKF" => "Servers", - "UKG" => "Grid & parallel computing", + "UKG" => "Grid and parallel computing", + "UKL" => "Interrelated smart technologies", "UKM" => "Embedded systems", "UKN" => "Network hardware", "UKP" => "Personal computers", "UKPC" => "PCs (IBM-compatible personal computers)", "UKPM" => "Macintosh", - "UKR" => "Maintenance & repairs", - "UKS" => "Storage media & peripherals", - "UKX" => "Utilities & tools", + "UKR" => "Maintenance and repairs", + "UKS" => "Storage media and peripherals", + "UKX" => "Utilities and tools", "UL" => "Operating systems", "ULD" => "Microsoft (Windows) operating systems", "ULH" => "Apple operating systems", - "ULJ" => "Open source & other operating systems", + "ULJ" => "Open source and other operating systems", "ULJL" => "Linux", - "ULP" => "Mobile & other handheld operating systems", + "ULP" => "Mobile and other handheld operating systems", "ULQ" => "IBM mainframe operating systems", "ULR" => "Real time operating systems", "UM" => "Computer programming / software engineering", "UMA" => "Programming techniques", - "UMB" => "Algorithms & data structures", - "UMC" => "Compilers & interpreters", + "UMB" => "Algorithms and data structures", + "UMC" => "Compilers and interpreters", "UMF" => "Agile programming", "UMG" => "Aspect programming / AOP", "UMH" => "Extreme programming", "UMJ" => "Functional programming", - "UMK" => "Games development & programming", + "UMK" => "Games development and programming", "UMKB" => "2D graphics: games programming", "UMKC" => "3D graphics: games programming", "UMKL" => "Level design: games programming", "UML" => "Graphics programming", "UMN" => "Object-oriented programming (OOP)", "UMP" => "Microsoft programming", - "UMPN" => ".Net programming", + "UMPN" => ".NET programming", "UMPW" => "Windows programming", "UMQ" => "Macintosh programming", "UMR" => "Network programming", - "UMS" => "Mobile & handheld device programming / Apps programming", + "UMS" => "Mobile and handheld device programming / Apps programming", "UMT" => "Database programming", "UMW" => "Web programming", "UMWS" => "Web services", - "UMX" => "Programming & scripting languages: general", + "UMX" => "Programming and scripting languages: general", "UMZ" => "Software Engineering", - "UMZL" => "Unified Modeling Language (UML)", - "UMZT" => "Software testing & verification", + "UMZL" => "Unified Modelling Language (UML)", + "UMZT" => "Software testing and verification", "UMZW" => "Object oriented software engineering", "UN" => "Databases", - "UNA" => "Database design & theory", + "UNA" => "Database design and theory", "UNAN" => "NoSQL databases", "UNAR" => "Relational databases", - "UNC" => "Data capture & analysis", + "UNC" => "Data capture and analysis", "UND" => "Data warehousing", "UNF" => "Data mining", "UNH" => "Information retrieval", @@ -2380,7 +2477,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "UNK" => "Distributed databases", "UNKD" => "Distributed ledgers", "UNKP" => "Peer-to-peer networks", - "UNN" => "Databases & the Web", + "UNN" => "Databases and the Web", "UNS" => "Database software", "UP" => "Practical applications of information technology", "UQ" => "Computer certification", @@ -2390,424 +2487,447 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "UQR" => "Computer certification: CompTIA", "UQT" => "Computer certification: CLAiT", "UR" => "Computer security", - "URD" => "Privacy & data protection", - "URH" => "Computer fraud & hacking", - "URJ" => "Computer viruses, Trojans & worms", + "URD" => "Privacy and data protection", + "URH" => "Computer fraud and hacking", + "URJ" => "Computer viruses, Trojans and worms", "URQ" => "Firewalls", "URS" => "Spam", "URW" => "Spyware", "URY" => "Data encryption", - "UT" => "Computer networking & communications", + "UT" => "Computer networking and communications", "UTC" => "Cloud computing", "UTD" => "Client–Server networking", "UTE" => "System administration", "UTF" => "Network management", - "UTFB" => "Computer systems back-up & data recovery", + "UTFB" => "Computer systems back-up and data recovery", "UTG" => "Grid computing", "UTM" => "Electronic mail (email): professional", "UTN" => "Network security", - "UTP" => "Networking standards & protocols", + "UTP" => "Networking standards and protocols", "UTR" => "Distributed systems", "UTS" => "Networking packages", "UTV" => "Virtualization", - "UTW" => "WAP networking & applications", + "UTW" => "WAP networking and applications", "UTX" => "EDI (electronic data interchange)", "UX" => "Applied computing", - "UXA" => "Computer applications in the arts & humanities", - "UXJ" => "Computer applications in the social & behavioural sciences", - "UXT" => "Computer applications in industry & technology", + "UXA" => "Computer applications in the arts and humanities", + "UXJ" => "Computer applications in the social and behavioural sciences", + "UXT" => "Computer applications in industry and technology", "UY" => "Computer science", "UYA" => "Mathematical theory of computation", "UYAM" => "Maths for computer scientists", - "UYD" => "Systems analysis & design", - "UYF" => "Computer architecture & logic design", + "UYD" => "Systems analysis and design", + "UYF" => "Computer architecture and logic design", "UYFL" => "Assembly languages", "UYFP" => "Parallel processing", - "UYM" => "Computer modelling & simulation", + "UYM" => "Computer modelling and simulation", "UYQ" => "Artificial intelligence", "UYQE" => "Expert systems / knowledge-based systems", - "UYQL" => "Natural language & machine translation", + "UYQL" => "Natural language and machine translation", "UYQM" => "Machine learning", - "UYQN" => "Neural networks & fuzzy systems", + "UYQN" => "Neural networks and fuzzy systems", "UYQP" => "Pattern recognition", "UYQS" => "Speech recognition", "UYQV" => "Computer vision", - "UYS" => "Signal processing", + "UYS" => "Digital signal processing (DSP)", "UYT" => "Image processing", "UYU" => "Audio processing", "UYV" => "Virtual reality", "UYW" => "Augmented reality (AR)", + "UYX" => "Quantum computing and information", "UYZ" => "Human–computer interaction", "UYZF" => "Information visualization", - "UYZG" => "User interface design & usability", + "UYZG" => "User interface design and usability", "UYZM" => "Information architecture", - "V" => "Health, Relationships & Personal development", - "VF" => "Family & health", + "V" => "Health, Relationships and Personal development", + "VF" => "Family and health", "VFB" => "Personal safety", - "VFD" => "Popular medicine & health", + "VFD" => "Popular medicine and health", "VFDF" => "First aid for the home", "VFDJ" => "Children’s health", "VFDM" => "Men’s health", "VFDW" => "Women’s health", "VFDW2" => "Menopause", - "VFG" => "Home nursing & caring", - "VFJ" => "Coping with personal & health issues", - "VFJB" => "Coping with illness & specific health conditions", + "VFG" => "Home nursing and caring", + "VFJ" => "Coping with personal, social and health topics", + "VFJB" => "Coping with illness and specific health conditions", "VFJB1" => "Coping with allergies, including food allergies", "VFJB2" => "Coping with back problems", "VFJB3" => "Coping with cancer", "VFJB4" => "Coping with heart conditions", "VFJB5" => "Coping with diabetes", - "VFJB6" => "Coping with Alzheimer’s & dementia", - "VFJD" => "Coping with disability", + "VFJB6" => "Coping with Alzheimer’s and dementia", + "VFJB7" => "Coping with headaches and migraines", + "VFJB9" => "Coping with chronic or long-term illness or conditions", + "VFJD" => "Coping with physical impairments / disability", "VFJG" => "Coping with ageing", + "VFJH" => "Coping with body image issues", "VFJJ" => "Coping with eating disorders", - "VFJK" => "Coping with drug & alcohol problems", + "VFJK" => "Coping with drug and alcohol problems", "VFJL" => "Coping with addiction", "VFJM" => "Coping with abuse", - "VFJP" => "Coping with anxiety & phobias", + "VFJN" => "Coping with bullying, coercion and harassment", + "VFJP" => "Coping with anxiety and phobias", "VFJQ" => "Coping with mental health issues", - "VFJQ1" => "Coping with depression & other mood disorders", + "VFJQ1" => "Coping with depression and other mood disorders", + "VFJQ2" => "Coping with self-harm", "VFJR" => "Coping with neurodevelopmental issues", "VFJR1" => "Coping with autism / Asperger’s", "VFJR2" => "Coping with ADHD", - "VFJR3" => "Coping with dyslexia & learning difficulties", + "VFJR3" => "Coping with dyslexia and learning difficulties", "VFJR4" => "Coping with communication difficulties", "VFJS" => "Coping with stress", "VFJT" => "Coping with loneliness / solitude", "VFJV" => "Coping with sleep problems", - "VFJX" => "Coping with death & bereavement", + "VFJX" => "Coping with death and bereavement", "VFJX1" => "Coping with suicide", "VFL" => "Giving up smoking", - "VFM" => "Fitness & diet", - "VFMD" => "Diets & dieting", - "VFMG" => "Exercise & workout books", + "VFM" => "Fitness and diet", + "VFMD" => "Diets and dieting, nutrition", + "VFMG" => "Exercise and workouts", "VFMG1" => "Yoga for exercise", "VFMG2" => "Weight training", "VFMS" => "Massage", - "VFV" => "Family & relationships: advice & issues", - "VFVC" => "Sex & sexuality: advice & issues", - "VFVG" => "Dating, relationships, living together & marriage: advice", - "VFVJ" => "Involuntary childlessness: advice & issues", - "VFVK" => "Adoption & fostering: advice & issues", - "VFVM" => "Solo lifestyles: advice & issues", - "VFVS" => "Separation & divorce: advice & issues", - "VFVX" => "Intergenerational relationships: advice & issues", - "VFX" => "Parenting: advice & issues", - "VFXB" => "Pregnancy, birth & baby care: advice & issues", + "VFV" => "Relationships and families: advice and issues", + "VFVC" => "Sex and sexuality: advice and issues", + "VFVG" => "Dating, relationships, living together and marriage: advice and issues", + "VFVJ" => "Involuntary childlessness: advice and issues", + "VFVK" => "Adoption and fostering: advice and issues", + "VFVM" => "Solo lifestyles: advice and issues", + "VFVN" => "Relationships: friends / peer groups", + "VFVS" => "Separation and divorce: advice and issues", + "VFVX" => "Intergenerational relationships: advice and issues", + "VFX" => "Parenting: advice and issues", + "VFXB" => "Pregnancy, birth and baby care: advice and issues", "VFXB1" => "Baby names: guides for parents", - "VFXC" => "Child care & upbringing: advice for parents", + "VFXC" => "Child care and upbringing: advice for parents", "VFXC1" => "Teenagers: advice for parents", - "VS" => "Self-help, personal development & practical advice", + "VS" => "Self-help, personal development and practical advice", + "VSA" => "Practical advice: Life hacks / handy tips", "VSB" => "Personal finance", - "VSC" => "Advice on careers & achieving success", + "VSC" => "Advice on careers and achieving success", "VSCB" => "Job hunting / changing careers", - "VSD" => "Law, citizenship & rights for the lay person", - "VSF" => "Roadcraft & driving", + "VSD" => "Law, citizenship and rights for the lay person", + "VSF" => "Roadcraft and driving", "VSG" => "Consumer advice", - "VSH" => "Housing & property for the individual: buying/selling & legal aspects", + "VSH" => "Housing and property for the individual: buying/selling and legal aspects", "VSK" => "Advice on education", "VSKB" => "Student life", - "VSL" => "Adult literacy guides & handbooks", - "VSN" => "Adult numeracy guides & handbooks", + "VSL" => "Adult literacy guides and handbooks", + "VSN" => "Adult numeracy guides and handbooks", "VSP" => "Popular psychology", "VSPD" => "Mindfulness", - "VSPM" => "Assertiveness, motivation, self-esteem & positive mental attitude", - "VSPT" => "Memory improvement & thinking techniques", + "VSPM" => "Assertiveness, motivation, self-esteem and positive mental attitude", + "VSPP" => "Personality traits", + "VSPT" => "Memory improvement and thinking techniques", "VSPX" => "Neuro Linguistic Programming (NLP)", "VSR" => "Retirement", - "VSS" => "Soft skills & dealing with other people", - "VSW" => "Living & working in other countries: practical advice", - "VSZ" => "Self-sufficiency & ‘green’ lifestyle", + "VSS" => "Soft skills and dealing with other people", + "VSW" => "Living and working in other countries: practical advice", + "VSY" => "Survivalism / Preparing for emergencies", + "VSZ" => "Self-sufficiency and ‘green’ lifestyle", "VX" => "Mind, body, spirit", - "VXA" => "Mind, body, spirit: thought & practice", - "VXF" => "Fortune-telling & divination", + "VXA" => "Mind, body, spirit: thought and practice", + "VXF" => "Fortune-telling and divination", "VXFA" => "Astrology", - "VXFA1" => "Star signs & horoscopes", + "VXFA1" => "Star signs and horoscopes", "VXFC" => "Fortune-telling by cards (cartomancy)", "VXFC1" => "Tarot", "VXFD" => "The I Ching", "VXFG" => "Graphology", "VXFJ" => "Divination from physical attributes", "VXFJ1" => "Palmistry, chiromancy", - "VXFJ2" => "Phrenology & physiognomy", + "VXFJ2" => "Phrenology and physiognomy", "VXFN" => "Numerology", - "VXFT" => "Clairvoyance & precognition", - "VXH" => "Complementary therapies, healing & health", + "VXFT" => "Clairvoyance and precognition", + "VXH" => "Complementary therapies, healing and health", "VXHA" => "Acupuncture", - "VXHC" => "Aromatherapy & essential oils", + "VXHC" => "Aromatherapy and essential oils", "VXHF" => "Nature therapy", "VXHH" => "Homoeopathy", "VXHJ" => "Reflexology", "VXHK" => "Reiki", - "VXHT" => "Traditional medicine & herbal remedies", + "VXHT" => "Traditional medicine and herbal remedies", "VXK" => "Earth energies", - "VXM" => "Mind, body, spirit: meditation & visualization", - "VXN" => "Dreams & their interpretation", - "VXP" => "Psychic powers & psychic phenomena", - "VXPC" => "Crystals & colour-healing", - "VXPH" => "Chakras, auras & spiritual energy", - "VXPJ" => "Astral projection & out-of-body experiences", - "VXPR" => "The afterlife, reincarnation & past lives", - "VXPS" => "Spirit guides, angels & channelling", + "VXM" => "Mind, body, spirit: meditation and visualization", + "VXN" => "Dreams and their interpretation", + "VXP" => "Psychic powers and psychic phenomena", + "VXPC" => "Crystals and colour-healing", + "VXPH" => "Chakras, auras and spiritual energy", + "VXPJ" => "Astral projection and out-of-body experiences", + "VXPR" => "The afterlife, reincarnation and past lives", + "VXPS" => "Spirit guides, angels and channelling", "VXQ" => "Unexplained phenomena / the paranormal", - "VXQB" => "UFOs & extraterrestrial beings", - "VXQG" => "Ghosts & poltergeists", - "VXQM" => "Monsters, mythical & legendary beings", + "VXQB" => "UFOs and extraterrestrial beings", + "VXQG" => "Ghosts and poltergeists", + "VXQM" => "Mythical and legendary beings, monsters and creatures", "VXQM1" => "Mythical creatures: Dragons", - "VXQM2" => "Mythical creatures: Vampires, werewolves & other shapeshifters", - "VXQM3" => "Mythical creatures: Zombies & the undead", - "VXV" => "Feng Shui & approaches to living space design & style", - "VXW" => "Mysticism, magic & occult interests", + "VXQM2" => "Mythical creatures: Vampires, werewolves and other shapeshifters", + "VXQM3" => "Mythical creatures: Zombies and the undead", + "VXQM4" => "Mythical creatures: Fairies, elves and similar folk", + "VXV" => "Feng Shui and approaches to living space design and style", + "VXW" => "Mysticism, magic and occult interests", "VXWK" => "Kabbalah: popular works", - "VXWM" => "Magic, spells & alchemy", - "VXWS" => "Shamanism, paganism & druidry", - "VXWT" => "Witchcraft & wicca", - "W" => "Lifestyle, Hobbies & Leisure", - "WB" => "Cookery / food & drink etc", - "WBA" => "General cookery & recipes", + "VXWM" => "Magic, spells and alchemy", + "VXWS" => "Shamanism, paganism and Druidry", + "VXWT" => "Witchcraft and wicca", + "W" => "Lifestyle, Hobbies and Leisure", + "WB" => "Cookery / food and drink", + "WBA" => "General cookery and recipes", "WBAC" => "Comfort food and food nostalgia", "WBB" => "TV / celebrity chef cookbooks", "WBC" => "Cooking for one", "WBD" => "Budget cookery", - "WBF" => "Quick & easy cookery", - "WBH" => "Health & wholefood cookery", - "WBHS" => "Cookery for specific diets & conditions", - "WBJ" => "Vegetarian cookery", - "WBJK" => "Vegan cookery", + "WBF" => "Quick and easy cookery", + "WBH" => "Health and wholefood cookery", + "WBHS" => "Cookery for specific diets and conditions", + "WBJ" => "Vegetarian Cookery and vegetarianism", + "WBJK" => "Vegan Cookery and veganism", "WBK" => "Organic food / organic cookery", - "WBN" => "National, regional & ethnic cuisine", + "WBN" => "National and regional cuisine", "WBNB" => "Street food", "WBQ" => "Cookery for/with children", - "WBR" => "Cooking for parties & special occasions", + "WBR" => "Cooking for parties and special occasions", "WBS" => "Cooking with specific gadgets", "WBT" => "Cookery / food by ingredient", - "WBTB" => "Cookery / food by ingredient: meat & game", - "WBTC" => "Cookery / food by ingredient: chicken & other poultry", - "WBTF" => "Cookery / food by ingredient: fish & seafood", - "WBTH" => "Cookery / food by ingredient: herbs, spices, oils & vinegars", - "WBTJ" => "Cookery / food by ingredient: rice, grains, pulses, nuts & seeds", - "WBTM" => "Cookery / food by ingredient: fruit & vegetables", - "WBTP" => "Cookery / food by ingredient: pasta & noodles", - "WBTR" => "Cookery / food by ingredient: egg, cheese & dairy products", + "WBTB" => "Cookery / food by ingredient: meat and game", + "WBTC" => "Cookery / food by ingredient: chicken and other poultry", + "WBTF" => "Cookery / food by ingredient: fish and seafood", + "WBTH" => "Cookery / food by ingredient: herbs, spices, oils and vinegars", + "WBTJ" => "Cookery / food by ingredient: rice, grains, pulses, nuts and seeds", + "WBTM" => "Cookery / food by ingredient: fruit and vegetables", + "WBTP" => "Cookery / food by ingredient: pasta and noodles", + "WBTR" => "Cookery / food by ingredient: egg, cheese and dairy products", "WBTX" => "Cookery / food by ingredient: chocolate", - "WBV" => "Cookery dishes & courses", - "WBVD" => "Cookery dishes & courses: soups & starters", - "WBVG" => "Cookery dishes & courses: salads & vegetables", - "WBVH" => "Cookery dishes & courses: sauces", - "WBVM" => "Cookery dishes & courses: main courses", - "WBVQ" => "Cookery dishes & courses: desserts", - "WBVS" => "Baking, bread, cakes & pastry", - "WBVS1" => "Cakes & cake decoration, icing & sugarcraft", - "WBW" => "Cookery: preserving & freezing", - "WBX" => "Food & drink: beverages", - "WBXD" => "Food & drink: alcoholic beverages", - "WBXD1" => "Food & drink: wines", - "WBXD2" => "Food & drink: beers & ciders", - "WBXD3" => "Food & drink: spirits, liqueurs & cocktails", - "WBXN" => "Food & drink: non-alcoholic beverages", - "WBXN1" => "Tea & coffee", - "WBXN3" => "Juices & smoothies", - "WBZ" => "Cigars & smoking", - "WC" => "Antiques & collectables", - "WCB" => "Antiques & collectables: buyer’s guides", - "WCC" => "Care & restoration of antiques", - "WCF" => "Collecting coins, banknotes, medals & other related items", + "WBV" => "Cookery dishes and courses", + "WBVD" => "Cookery dishes and courses: soups and starters", + "WBVG" => "Cookery dishes and courses: salads and vegetables", + "WBVH" => "Cookery dishes and courses: sauces", + "WBVM" => "Cookery dishes and courses: main courses", + "WBVQ" => "Cookery dishes and courses: desserts", + "WBVS" => "Baking", + "WBVS1" => "Cakes and cake decoration, icing and sugarcraft", + "WBVS2" => "Breads and bread making", + "WBW" => "Cookery: preserving and freezing", + "WBX" => "Food and drink: beverages", + "WBXD" => "Food and drink: alcoholic beverages", + "WBXD1" => "Wines", + "WBXD2" => "Beers and ciders", + "WBXD3" => "Spirits, liqueurs and cocktails", + "WBXN" => "Food and drink: non-alcoholic beverages", + "WBXN1" => "Tea and coffee", + "WBXN12" => "Tea Ceremony", + "WBXN3" => "Juices and smoothies", + "WBZ" => "Cigars and smoking", + "WC" => "Antiques, vintage and collectables", + "WCB" => "Antiques, vintage and collectables: buyer’s guides", + "WCC" => "Care and restoration of antiques", + "WCF" => "Collecting coins, banknotes, medals and other related items", "WCG" => "Collecting stamps, philately", - "WCJ" => "Antique clocks, watches, musical boxes & automata", - "WCK" => "Militaria, arms & armour", - "WCL" => "Antique furniture / furniture collecting", - "WCN" => "Antiques & collectables: ceramics, glass & other related items", - "WCNC" => "Antiques & collectables: ceramics, porcelain & pottery", - "WCNG" => "Antiques & collectables: glass", - "WCP" => "Antiques & collectables: jewellery", - "WCR" => "Antiques & collectables: gold, silver & other metals (other than jewellery)", - "WCRB" => "Antiques & collectables: buttons, badges, pins & related small items", - "WCS" => "Antiques & collectables: books, manuscripts, ephemera & printed matter", - "WCT" => "Antiques & collectables: sports memorabilia", - "WCU" => "Antiques & collectables: pictures, prints & maps", - "WCV" => "Antiques & collectables: carpets, rugs & textiles", - "WCW" => "Antiques & collectables: toys, games, dolls & models", - "WCX" => "Antiques & collectables: instruments, implements & tools", - "WCXM" => "Antiques & collectables: musical instruments", - "WCXS" => "Antiques & collectables: scientific instruments", - "WD" => "Hobbies, quizzes & games", + "WCJ" => "Antique clocks, musical boxes and automata", + "WCJB" => "Watches", + "WCK" => "Militaria, arms and armour", + "WCL" => "Antique or vintage furniture / furniture collecting", + "WCN" => "Antiques, vintage and collectables: ceramics, glass and other related items", + "WCNC" => "Antiques, vintage and collectables: ceramics, porcelain and pottery", + "WCNG" => "Antiques, vintage and collectables: glass", + "WCP" => "Antiques, vintage and collectables: jewellery", + "WCR" => "Antiques, vintage and collectables: gold, silver and other metals (other than jewellery)", + "WCRB" => "Antiques, vintage and collectables: buttons, badges, pins and related small items", + "WCS" => "Antiques, vintage and collectables: books, manuscripts, ephemera and printed matter", + "WCT" => "Antiques, vintage and collectables: sports memorabilia", + "WCU" => "Antiques, vintage and collectables: pictures, prints and maps", + "WCV" => "Antiques, vintage and collectables: carpets, rugs and textiles", + "WCVB" => "Antiques, vintage and collectables: clothing and accessories", + "WCW" => "Antiques, vintage and collectables: toys, games, dolls and models", + "WCX" => "Antiques, vintage and collectables: instruments, implements and tools", + "WCXM" => "Antiques, vintage and collectables: musical instruments", + "WCXS" => "Antiques, vintage and collectables: scientific instruments", + "WD" => "Hobbies, quizzes and games", "WDH" => "Hobbies", - "WDHB" => "Model-making & construction", + "WDHB" => "Model-making and construction", "WDHM" => "Model railways", "WDHR" => "Radio-controlled models", - "WDHW" => "Role-playing, war games & fantasy sports", - "WDJ" => "3D images & optical illusions", - "WDK" => "Puzzles & quizzes", - "WDKC" => "Crosswords & word games", - "WDKN" => "Sudoku & number puzzles", - "WDKX" => "Trivia & quiz question books", + "WDHW" => "Role-playing, war games and fantasy sports", + "WDJ" => "3D images and optical illusions", + "WDK" => "Puzzles and quizzes", + "WDKC" => "Crosswords and word games", + "WDKN" => "Sudoku and number puzzles", + "WDKX" => "Trivia and quiz questions", "WDM" => "Indoor games", "WDMC" => "Card games", "WDMC1" => "Card games: Bridge", "WDMC2" => "Card games: Poker", - "WDMG" => "Board games", + "WDMG" => "Board, table top and strategy games", "WDMG1" => "Board games: Chess", - "WDP" => "Gambling: theories & methods", - "WF" => "Handicrafts, decorative arts & crafts", - "WFA" => "Painting & art manuals", - "WFB" => "Needlework & fabric crafts", + "WDMG2" => "Board games: Shogi", + "WDMG3" => "Board games: Go", + "WDP" => "Gambling: theories and methods", + "WF" => "Handicrafts, decorative arts and crafts", + "WFA" => "Painting, drawing and art manuals", + "WFB" => "Needlework and fabric crafts", "WFBC" => "Embroidery crafts", - "WFBL" => "Lace & lacemaking", - "WFBQ" => "Quiltmaking, patchwork & applique", - "WFBS" => "Knitting & crochet", + "WFBL" => "Lace and lacemaking", + "WFBQ" => "Quiltmaking, patchwork and appliqué", + "WFBS" => "Knitting and crochet", "WFBS1" => "Knitting", "WFBS2" => "Crochet", "WFBV" => "Fabric dyeing", "WFBW" => "Sewing", - "WFC" => "Ropework, knots & macramé", - "WFF" => "Rug & carpetmaking", - "WFG" => "Spinning & weaving", - "WFH" => "Toys: making & decorating", - "WFJ" => "Jewellery & beadcraft", - "WFK" => "Decorative finishes & surfaces", - "WFN" => "Pottery, ceramics & glass crafts", + "WFC" => "Ropework, knots and macramé", + "WFD" => "Leather crafts and Leatherworking", + "WFF" => "Rug and carpetmaking", + "WFG" => "Spinning and weaving", + "WFH" => "Toys: making and decorating", + "WFJ" => "Jewellery and beadcrafts", + "WFK" => "Decorative finishes and surfaces", + "WFN" => "Pottery, ceramics and glass crafts", "WFP" => "Decorative metalwork", "WFQ" => "Decorative woodwork", - "WFS" => "Carving & modelling, moulding & casting", - "WFT" => "Book & paper crafts", - "WFTM" => "Origami & paper engineering", - "WFU" => "Calligraphy & hand-lettering", + "WFS" => "Carving and modelling, moulding and casting", + "WFT" => "Book and paper crafts", + "WFTM" => "Origami and paper engineering", + "WFU" => "Calligraphy and hand-lettering", "WFV" => "Rural crafts", - "WFW" => "Flower arranging & floral crafts", - "WFX" => "Adult colouring & activity books", + "WFW" => "Flower arranging and floral crafts", + "WFX" => "Adult colouring and activity books", "WG" => "Transport: general interest", - "WGC" => "Road & motor vehicles: general interest", + "WGC" => "Road and motor vehicles: general interest", "WGCB" => "Motor cars: general interest", - "WGCF" => "Buses, trams & commercial vehicles: general interest", + "WGCF" => "Buses, trams and commercial vehicles: general interest", "WGCK" => "Motorcycles: general interest", - "WGCQ" => "Road & motor vehicles: Camper vans, Recreational vehicles", - "WGCT" => "Tractors & farm vehicles: general interest", - "WGCV" => "Vehicle maintenance & manuals", - "WGD" => "Bicycles & non-motorised transport: general interest & maintenance", - "WGF" => "Trains & railways: general interest", - "WGFD" => "Locomotives & rolling stock", + "WGCQ" => "Road and motor vehicles: Camper vans, Recreational vehicles", + "WGCT" => "Tractors and farm vehicles: general interest", + "WGCV" => "Vehicle maintenance and manuals", + "WGD" => "Bicycles and non-motorised transport: general interest and maintenance", + "WGF" => "Trains and railways: general interest", + "WGFD" => "Locomotives and rolling stock", "WGFL" => "Urban rail transit systems", - "WGG" => "Ships & boats: general interest", + "WGG" => "Ships and boats: general interest", "WGGB" => "Boats", - "WGGD" => "Ships: Liners & other ocean-going vessels", - "WGGP" => "Ships & boats: certification and licences", - "WGGV" => "Boatbuilding & maintenance", - "WGM" => "Aircraft & aviation", + "WGGD" => "Ships: Liners and other ocean-going vessels", + "WGGP" => "Ships and boats: certification and licences", + "WGGV" => "Boatbuilding and maintenance", + "WGM" => "Aircraft and aviation", "WH" => "Humour", "WHG" => "TV tie-in humour", - "WHJ" => "Jokes & riddles", - "WHL" => "Slang & dialect humour", - "WHP" => "Parodies & spoofs: non-fiction", - "WHX" => "Humour collections & anthologies", - "WJ" => "Lifestyle & personal style guides", - "WJF" => "Fashion & style guides", - "WJH" => "Cosmetics, hair & beauty", - "WJK" => "Interior design, decor & style guides", + "WHJ" => "Jokes and riddles", + "WHL" => "Slang and dialect humour", + "WHP" => "Parodies and spoofs: non-fiction", + "WHX" => "Humour collections and anthologies", + "WJ" => "Lifestyle and personal style guides", + "WJF" => "Fashion and style guides", + "WJH" => "Cosmetics, hair and beauty", + "WJJ" => "Perfume and incense", + "WJK" => "Interior design, decor and style guides", "WJS" => "Shopping guides", "WJW" => "Weddings, wedding planners", - "WJX" => "Parties, etiquette & entertaining", - "WJXC" => "Manners: guides & advice", - "WJXF" => "Table settings & arts of the table", - "WK" => "Home & house maintenance", + "WJX" => "Parties, etiquette and entertaining", + "WJXC" => "Manners: guides and advice", + "WJXF" => "Table settings and arts of the table", + "WJY" => "Traditional rituals and ceremonies", + "WK" => "Home and house maintenance", "WKD" => "DIY: general", "WKDM" => "DIY: house maintenance manuals", - "WKDW" => "DIY: carpentry & woodworking", - "WKH" => "Household hints", - "WKR" => "Home renovation & extension", - "WKU" => "Outdoor & recreational areas: design & maintenance", + "WKDW" => "DIY: carpentry and woodworking", + "WKH" => "Household management and home hints", + "WKR" => "Home renovation and extension", + "WKU" => "Outdoor and recreational areas: design and maintenance", "WM" => "Gardening", "WMB" => "Gardens (descriptions, history etc)", - "WMD" => "Garden design & planning", + "WMD" => "Garden design and planning", "WMF" => "Greenhouses, conservatories, patios", - "WMP" => "Gardening: plants & cultivation guides", - "WMPC" => "Gardening: flowers & ornamental plants", - "WMPF" => "Gardening: fruit & vegetable", - "WMPS" => "Gardening: trees & shrubs", - "WMPY" => "Gardening: pests & diseases", + "WMP" => "Gardening: plants and cultivation guides", + "WMPC" => "Gardening: flowers and ornamental plants", + "WMPF" => "Gardening: fruit and vegetable", + "WMPS" => "Gardening: trees and shrubs", + "WMPY" => "Gardening: pests and diseases", "WMQ" => "Specialized gardening methods", "WMQB" => "Bonsai", "WMQF" => "Organic gardening", "WMQL" => "Landscape gardening", - "WMQN" => "Natural & wild gardening", + "WMQN" => "Natural and wild gardening", "WMQP" => "Gardening with native plants", "WMQR" => "Container gardening", "WMQR1" => "Indoor gardening", "WMQW" => "Water gardens, pools", "WMT" => "Allotments / Community gardens", - "WN" => "Nature & the natural world: general interest", - "WNA" => "Dinosaurs & the prehistoric world: general interest", + "WN" => "Nature and the natural world: general interest", + "WNA" => "Dinosaurs and the prehistoric world: general interest", "WNC" => "Wildlife: general interest", - "WNCB" => "Wildlife: birds & birdwatching: general interest", + "WNCB" => "Wildlife: birds and birdwatching: general interest", "WNCF" => "Wildlife: mammals: general interest", - "WNCK" => "Wildlife: reptiles & amphibians: general interest", - "WNCN" => "Wildlife: butterflies, other insects & spiders: general interest", + "WNCK" => "Wildlife: reptiles and amphibians: general interest", + "WNCN" => "Wildlife: butterflies, other insects and spiders: general interest", "WNCS" => "Wildlife: aquatic creatures: general interest", - "WNCS1" => "Sea life & the seashore: general interest", + "WNCS1" => "Sea life and the seashore: general interest", "WNCS2" => "Freshwater life: general interest", "WND" => "The countryside, country life: general interest", - "WNF" => "Farm & working animals: general interest", - "WNG" => "Domestic animals & pets", + "WNF" => "Farm and working animals: general interest", + "WNG" => "Domestic animals and pets", "WNGC" => "Cats as pets", "WNGD" => "Dogs as pets", - "WNGD1" => "Dog obedience & training", - "WNGF" => "Fishes as pets & aquaria", - "WNGH" => "Horses & ponies: general interest", + "WNGD1" => "Dog obedience and training", + "WNGF" => "Fishes as pets and aquaria", + "WNGH" => "Horses and ponies: general interest", "WNGK" => "Birds, including cage birds, as pets", - "WNGR" => "Rabbits & rodents as pets", - "WNGS" => "Reptiles & amphibians as pets", - "WNGX" => "Insects & spiders as pets", - "WNH" => "Zoos & wildlife parks: general interest", - "WNJ" => "National parks & nature reserves: general interest", - "WNP" => "Trees, wildflowers & plants: general interest", - "WNR" => "Rocks, minerals & fossils: general interest", + "WNGR" => "Rabbits and rodents as pets", + "WNGS" => "Reptiles and amphibians as pets", + "WNGX" => "Insects and spiders as pets", + "WNH" => "Zoos and wildlife parks: general interest", + "WNJ" => "National parks and nature reserves: general interest", + "WNP" => "Trees, wildflowers and plants: general interest", + "WNR" => "Rocks, minerals and fossils: general interest", "WNW" => "The Earth: natural history: general interest", - "WNWM" => "Weather & climate: general interest", - "WNX" => "Popular astronomy & space", - "WQ" => "Local & family history, nostalgia", + "WNWM" => "Weather and climate: general interest", + "WNX" => "Popular astronomy and space", + "WQ" => "Local and family history, nostalgia", "WQH" => "Local history", "WQN" => "Nostalgia: general", "WQP" => "Places in old photographs", "WQY" => "Family history, tracing ancestors", - "WT" => "Travel & holiday", - "WTD" => "Travel tips & advice: general", - "WTH" => "Travel & holiday guides", + "WT" => "Travel and holiday", + "WTD" => "Travel tips and advice: general", + "WTH" => "Travel and holiday guides", "WTHA" => "Travel guides: adventure holidays", "WTHB" => "Travel guides: business travel", "WTHC" => "Travel guides: eco-tourism, ‘green’ tourism", - "WTHD" => "Travel guides: food & drink regions", + "WTHD" => "Travel guides: food and drink regions", "WTHE" => "Travel guides: activity holidays", "WTHF" => "Travel guides: holidays with children / family holidays", "WTHG" => "Travel guides: budget travel", - "WTHH" => "Travel guides: hotel & holiday accommodation guides", - "WTHH1" => "Travel guides: caravan & camp-site guides", - "WTHK" => "Travel guides: beaches & coastal areas", + "WTHH" => "Travel guides: hotel and holiday accommodation guides", + "WTHH1" => "Travel guides: caravan and camp-site guides", + "WTHK" => "Travel guides: beaches and coastal areas", + "WTHL" => "Travel guides: Cities", "WTHM" => "Travel guides: museums, historic sites, galleries etc", - "WTHR" => "Travel guides: restaurants & cafes", - "WTHT" => "Travel guides: theme parks & funfairs", - "WTHW" => "Travel guides: routes & ways", + "WTHR" => "Travel guides: restaurants and cafes", + "WTHT" => "Travel guides: theme parks and funfairs", + "WTHV" => "Travel guides: Rail travel", + "WTHW" => "Travel guides: routes and ways", "WTHX" => "Travel guides: cruises", "WTK" => "Language phrasebooks", "WTL" => "Travel writing", "WTLC" => "Classic travel writing", "WTLP" => "Expeditions: popular accounts", - "WTM" => "Places & peoples: general & pictorial works", - "WTR" => "Travel maps & atlases", - "WTRD" => "Road atlases & maps", + "WTM" => "Places and peoples: general and pictorial works", + "WTR" => "Travel maps and atlases", + "WTRD" => "Road atlases and maps", "WTRM" => "Travel maps", - "WTRS" => "Street maps & city plans", - "WZ" => "Miscellaneous items", + "WTRS" => "Street maps and city plans", + "WZ" => "Stationery and miscellaneous items", "WZG" => "Gift books", "WZS" => "Stationery items", + "WZSJ" => "Thematic journals and notebooks", "WZSN" => "Blank stationery items", "X" => "Graphic novels, Comic books, Cartoons", - "XA" => "Graphic novel & Comic book: types", + "XA" => "Graphic novel and Comic book: types", "XAB" => "European tradition graphic novels", "XAD" => "European tradition comic books, Bandes dessinées", "XADC" => "European comic books: general, classic, all ages", - "XAK" => "American / British style comic books & graphic novels", + "XAK" => "American / British style comic books and graphic novels", "XAKC" => "American comic books: classic, Golden Age", - "XAM" => "Manga & Asian style comics", + "XAM" => "Manga and Asian style comics", "XAMC" => "Manga: Kodomo", "XAMF" => "Manga: Shōjo", "XAMG" => "Manga: Shōnen", @@ -2818,15 +2938,16 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "XAMX" => "Manga: adult (erotic, extreme violence)", "XAMX2" => "Manga: hentai manga", "XAMY" => "Manga: Yuri", - "XQ" => "Graphic novel & Comic book: genres", - "XQA" => "Graphic novel / Comic book: memoirs, true stories & non-fiction", + "XQ" => "Graphic novel, Comic book and Manga: genres", + "XQA" => "Graphic novel / Comic book: memoirs, true stories and non-fiction", + "XQAY" => "Graphic novel / Comic book / Manga: Educational", "XQB" => "Graphic novel / Comic book: literary adaptations", "XQC" => "Graphic novel / Comic book: inspired by or adapted from", - "XQD" => "Graphic novel / Comic book: crime, mystery & thrillers", - "XQG" => "Graphic novel / Comic book: action & adventure", + "XQD" => "Graphic novel / Comic book: crime, mystery and thrillers", + "XQG" => "Graphic novel / Comic book: action and adventure", "XQGW" => "Graphic novel / Comic book: Westerns", "XQH" => "Graphic novel / Comic book: horror", - "XQK" => "Graphic novel / Comic book: super-heroes & super-villains", + "XQK" => "Graphic novel / Comic book: super-heroes and super-villains", "XQL" => "Graphic novel / Comic book: science fiction", "XQM" => "Graphic novel / Comic book: fantasy, esoteric", "XQN" => "Graphic novel / Comic book: anthropomorphic / animal stories", @@ -2837,32 +2958,34 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "XQX" => "Graphic novel / Comic book: adult", "XQXE" => "Graphic novel / Comic book: adult – erotic", "XQXV" => "Graphic novel / Comic book: adult – extreme violence / gore", - "XR" => "Graphic novel & comic books: guides & reviews", - "XRM" => "Manga guides & reviews", + "XR" => "Graphic novel and comic books: guides and reviews", + "XRM" => "Manga guides and reviews", "XY" => "Strip cartoons", - "Y" => "Children’s, Teenage & Educational", - "YB" => "Books for very young children, children’s picture books & activity books", + "Y" => "Children’s, Teenage and Educational", + "YB" => "Children’s: picture books, activity books, early learning concepts", "YBC" => "Children’s picture books", "YBCB" => "Baby books", "YBCH" => "Picture books: character books", "YBCS" => "Picture storybooks", - "YBCS1" => "Picture storybooks: bedtime stories & dreams", - "YBCS2" => "Picture storybooks: imagination & play", - "YBG" => "Children’s interactive & activity books & packs", - "YBGC" => "Colouring books", - "YBGH" => "Children’s activity books: hidden object", + "YBCS1" => "Picture storybooks: bedtime stories and dreams", + "YBCS2" => "Picture storybooks: imagination and play", + "YBD" => "Children’s / Teenage: Chapter books (transitional storybooks)", + "YBG" => "Children’s interactive and activity books and kits", + "YBGC" => "Children’s interactive and activity: drawing, colouring and painting", + "YBGH" => "Children’s interactive and activity: hidden object / search and discover", + "YBGS" => "Children’s interactive and activity: papercrafts", "YBL" => "Early years / early learning concepts", - "YBLA" => "Early years: letters & words", - "YBLB" => "Early years: verse, rhymes & wordplay", - "YBLC" => "Early years: numbers & counting", + "YBLA" => "Early years: letters and words", + "YBLB" => "Early years: verse, rhymes and wordplay", + "YBLC" => "Early years: numbers and counting", "YBLD" => "Early years: colours", "YBLF" => "Early years: opposites", - "YBLH" => "Early years: size, shapes & patterns", - "YBLJ" => "Early years: time & seasons", - "YBLL" => "Early years: nature & animals", + "YBLH" => "Early years: size, shapes and patterns", + "YBLJ" => "Early years: time and seasons", + "YBLL" => "Early years: nature and animals", "YBLM" => "Early years: daily routine", "YBLN" => "Early years: first experiences", - "YBLN1" => "Early years: the body & the senses", + "YBLN1" => "Early years: the body and the senses", "YBLP" => "Early years: people who help us", "YBLQ" => "Early years: family", "YBLT" => "Early years: things that go", @@ -2870,16 +2993,16 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "YDA" => "Children’s / Teenage: Annuals", "YDC" => "Children’s / Teenage: Anthologies", "YDP" => "Children’s / Teenage: Poetry", - "YF" => "Children’s / Teenage fiction & true stories", + "YF" => "Children’s / Teenage fiction and true stories", "YFA" => "Children’s / Teenage fiction: Classic fiction", "YFB" => "Children’s / Teenage fiction: General fiction", - "YFC" => "Children’s / Teenage fiction: Action & adventure stories", + "YFC" => "Children’s / Teenage fiction: Action and adventure stories", "YFCA" => "Children’s / Teenage fiction: Interactive adventure stories", "YFCB" => "Children’s / Teenage fiction: Thrillers", - "YFCF" => "Children’s / Teenage fiction: Crime & mystery fiction", - "YFCW" => "Children’s / Teenage fiction: Military & war fiction", - "YFD" => "Children’s / Teenage fiction: Horror & ghost stories, chillers", - "YFE" => "Children’s / Teenage fiction: Speculative, dystopian & utopian fiction", + "YFCF" => "Children’s / Teenage fiction: Crime and mystery fiction", + "YFCW" => "Children’s / Teenage fiction: Military and war fiction", + "YFD" => "Children’s / Teenage fiction: Horror and ghost stories, chillers", + "YFE" => "Children’s / Teenage fiction: Speculative, dystopian and utopian fiction", "YFG" => "Children’s / Teenage fiction: Science fiction", "YFGS" => "Children’s / Teenage fiction: Steampunk", "YFH" => "Children’s / Teenage fiction: Fantasy", @@ -2887,9 +3010,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "YFHR" => "Children’s / Teenage fiction: Fantasy romance", "YFJ" => "Children’s / Teenage fiction: Traditional stories", "YFK" => "Children’s / Teenage fiction: Religious fiction", - "YFM" => "Children’s / Teenage fiction: Romance, love & relationships stories", - "YFN" => "Children’s / Teenage fiction: Family & home stories", - "YFP" => "Children’s / Teenage fiction: Nature & animal stories", + "YFM" => "Children’s / Teenage fiction: Relationship stories – Romance, love or friendship", + "YFN" => "Children’s / Teenage fiction: Family and home stories", + "YFP" => "Children’s / Teenage fiction: Nature and animal stories", "YFQ" => "Children’s / Teenage fiction: Humorous stories", "YFR" => "Children’s / Teenage fiction: Sporting stories", "YFS" => "Children’s / Teenage fiction: School stories", @@ -2898,176 +3021,184 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "YFV" => "Children’s / Teenage fiction: Stories in verse", "YFX" => "Children’s / Teenage fiction: Biographical fiction", "YFY" => "Children’s / Teenage: True stories told as fiction", - "YFZ" => "Children’s / Teenage fiction: Special features & related items", + "YFZ" => "Children’s / Teenage fiction: Special features and related items", "YFZR" => "Children’s / Teenage category fiction", + "YFZS" => "Children’s / Teenage fiction: ranobe (‘light novels’)", + "YFZT" => "Children’s / Teenage: Fiction in translation", "YFZV" => "Children’s / Teenage fiction: Inspired by or adapted from", "YFZZ" => "Children’s / Teenage fiction: Companion works", "YN" => "Children’s / Teenage: General interest", - "YNA" => "Children’s / Teenage general interest: Art & artists", - "YNB" => "Children’s / Teenage general interest: Biography & autobiography", + "YNA" => "Children’s / Teenage general interest: Art and artists", + "YNB" => "Children’s / Teenage general interest: Biography and autobiography", "YNC" => "Children’s / Teenage general interest: Music", "YNCS" => "Songbooks for children", - "YND" => "Children’s / Teenage general interest: Drama & performing", + "YND" => "Children’s / Teenage general interest: Drama and performing", "YNDB" => "Children’s / Teenage general interest: Dance, ballet", "YNDS" => "Children’s / Teenage general interest: Playscripts", - "YNF" => "Children’s / Teenage general interest: Television, video & film", - "YNG" => "Children’s / Teenage general interest: General knowledge & interesting facts", + "YNF" => "Children’s / Teenage general interest: Television, video and film", + "YNG" => "Children’s / Teenage general interest: General knowledge and interesting facts", "YNGL" => "Children’s / Teenage general interest: Information resources", - "YNH" => "Children’s / Teenage general interest: History & the past", - "YNHA" => "Children’s / Teenage general interest: Adventurers & outlaws", + "YNH" => "Children’s / Teenage general interest: History and the past", + "YNHA" => "Children’s / Teenage general interest: Adventurers and outlaws", "YNHA1" => "Children’s / Teenage general interest: Pirates", - "YNHD" => "Children’s / Teenage general interest: Discovery & exploration", + "YNHD" => "Children’s / Teenage general interest: Discovery and exploration", "YNHP" => "Children’s / Teenage general interest: Lives of children in the past", "YNJ" => "Children’s / Teenage general interest: Warfare, battles, armed forces", - "YNJC" => "Children’s / Teenage general interest: Castles & knights", - "YNK" => "Children’s / Teenage general interest: Work & society", + "YNJC" => "Children’s / Teenage general interest: Castles and knights", + "YNK" => "Children’s / Teenage general interest: Work and society", "YNKA" => "Children’s / Teenage general interest: Politics", - "YNKC" => "Children’s / Teenage general interest: Law, police & crime", - "YNL" => "Children’s / Teenage general interest: Literature, books & writers", - "YNM" => "Children’s / Teenage general interest: Places & peoples", - "YNMC" => "Children’s / Teenage general interest: Countries, cultures & national identity", - "YNMD" => "Children’s / Teenage general interest: Celebrations, holidays, festivals & special events", - "YNMF" => "Children’s / Teenage general interest: Girls & women", - "YNMH" => "Children’s / Teenage general interest: Boys & men", - "YNMK" => "Children’s / Teenage general interest: City & town life", - "YNML" => "Children’s / Teenage general interest: Rural & farm life", + "YNKC" => "Children’s / Teenage general interest: Law, police and crime", + "YNL" => "Children’s / Teenage general interest: Literature, books and writers", + "YNM" => "Children’s / Teenage general interest: Places and peoples", + "YNMC" => "Children’s / Teenage general interest: Countries, cultures and national identity", + "YNMD" => "Children’s / Teenage general interest: Celebrations, holidays, festivals and special events", + "YNMF" => "Children’s / Teenage general interest: Girls and women", + "YNMH" => "Children’s / Teenage general interest: Boys and men", + "YNMK" => "Children’s / Teenage general interest: City and town life", + "YNML" => "Children’s / Teenage general interest: Rural and farm life", "YNMW" => "Children’s / Teenage general interest: Queens, kings, princesses, princes etc", "YNN" => "Children’s / Teenage general interest: Nature, animals, the natural world", - "YNNA" => "Children’s / Teenage general interest: Dinosaurs & prehistoric world", - "YNNB" => "Children’s / Teenage general interest: Wildlife & habitats", - "YNNB1" => "Children’s / Teenage general interest: Wildlife & habitats: Oceans & seas", - "YNNB2" => "Children’s / Teenage general interest: Wildlife & habitats: Jungles & tropical forests", - "YNNB3" => "Children’s / Teenage general interest: Wildlife & habitats: Deserts", - "YNNB9" => "Children’s / Teenage general interest: Wildlife & habitats: Ice, snow & tundra", + "YNNA" => "Children’s / Teenage general interest: Dinosaurs and prehistoric world", + "YNNB" => "Children’s / Teenage general interest: Wildlife and habitats", + "YNNB1" => "Children’s / Teenage general interest: Wildlife and habitats: Oceans and seas", + "YNNB2" => "Children’s / Teenage general interest: Wildlife and habitats: Jungles and tropical forests", + "YNNB3" => "Children’s / Teenage general interest: Wildlife and habitats: Deserts", + "YNNB9" => "Children’s / Teenage general interest: Wildlife and habitats: Ice, snow and tundra", "YNNC" => "Children’s / Teenage general interest: Ecosystems", "YNNF" => "Children’s / Teenage general interest: Farm animals", - "YNNH" => "Children’s / Teenage general interest: Pets & pet care", - "YNNH1" => "Children’s / Teenage general interest: Pets & pet care: Dogs", - "YNNH2" => "Children’s / Teenage general interest: Pets & pet care: Cats", - "YNNH3" => "Children’s / Teenage general interest: Pets & pet care: Rabbits & rodents", - "YNNH4" => "Children’s / Teenage general interest: Pets & pet care: Horses & ponies", - "YNNH5" => "Children’s / Teenage general interest: Pets & pet care: Birds", + "YNNH" => "Children’s / Teenage general interest: Pets and pet care", + "YNNH1" => "Children’s / Teenage general interest: Pets and pet care: Dogs", + "YNNH2" => "Children’s / Teenage general interest: Pets and pet care: Cats", + "YNNH3" => "Children’s / Teenage general interest: Pets and pet care: Rabbits and rodents", + "YNNH4" => "Children’s / Teenage general interest: Pets and pet care: Horses and ponies", + "YNNH5" => "Children’s / Teenage general interest: Pets and pet care: Birds", "YNNJ" => "Children’s / Teenage general interest: Mammals", - "YNNJ1" => "Children’s / Teenage general interest: Freshwater & marine mammals", - "YNNJ14" => "Children’s / Teenage general interest: Whales, dolphins & porpoises", + "YNNJ1" => "Children’s / Teenage general interest: Freshwater and marine mammals", + "YNNJ14" => "Children’s / Teenage general interest: Whales, dolphins and porpoises", "YNNJ2" => "Children’s / Teenage general interest: Large land mammals", - "YNNJ21" => "Children’s / Teenage general interest: Dogs & wolves", + "YNNJ21" => "Children’s / Teenage general interest: Dogs and wolves", "YNNJ22" => "Children’s / Teenage general interest: Cats including big cats", "YNNJ23" => "Children’s / Teenage general interest: Bears", - "YNNJ24" => "Children’s / Teenage general interest: Ponies & horses", - "YNNJ25" => "Children’s / Teenage general interest: Cows & cattle", - "YNNJ26" => "Children’s / Teenage general interest: Pigs, hogs & boars", - "YNNJ27" => "Children’s / Teenage general interest: Sheep & goats", - "YNNJ29" => "Children’s / Teenage general interest: Apes, monkeys & lemurs", + "YNNJ24" => "Children’s / Teenage general interest: Ponies and horses", + "YNNJ25" => "Children’s / Teenage general interest: Cows and cattle", + "YNNJ26" => "Children’s / Teenage general interest: Pigs, hogs and boars", + "YNNJ27" => "Children’s / Teenage general interest: Sheep and goats", + "YNNJ29" => "Children’s / Teenage general interest: Apes, monkeys and lemurs", "YNNJ3" => "Children’s / Teenage general interest: Small land mammals", - "YNNJ31" => "Children’s / Teenage general interest: Rodents & rabbits", - "YNNJ9" => "Children’s / Teenage general interest: Marsupials, platypuses & echidnas", + "YNNJ31" => "Children’s / Teenage general interest: Rodents and rabbits", + "YNNJ9" => "Children’s / Teenage general interest: Marsupials, platypuses and echidnas", "YNNK" => "Children’s / Teenage general interest: Birds", "YNNL" => "Children’s / Teenage general interest: Insects, spiders, minibeasts", - "YNNM" => "Children’s / Teenage general interest: Reptiles & amphibians", - "YNNS" => "Children’s / Teenage general interest: Fish & marine life", - "YNNT" => "Children’s / Teenage general interest: Plants & trees", - "YNNV" => "Children’s / Teenage general interest: Rocks, weather & physical world", - "YNNZ" => "Children’s / Teenage general interest: Space, stars & the solar system", + "YNNM" => "Children’s / Teenage general interest: Reptiles and amphibians", + "YNNS" => "Children’s / Teenage general interest: Fish and marine life", + "YNNT" => "Children’s / Teenage general interest: Plants and trees", + "YNNV" => "Children’s / Teenage general interest: Rocks, weather and physical world", + "YNNZ" => "Children’s / Teenage general interest: Space, stars and the solar system", "YNP" => "Children’s / Teenage general interest: Practical interests", - "YNPC" => "Children’s / Teenage general interest: Cooking & food", + "YNPC" => "Children’s / Teenage general interest: Cooking and food", "YNPG" => "Children’s / Teenage general interest: Gardening", "YNPH" => "Children’s / Teenage general interest: Handicrafts", "YNPH1" => "Children’s / Teenage general interest: Woodworking, model-making", - "YNPH2" => "Children’s / Teenage general interest: Needlecraft & fabric crafts", - "YNPJ" => "Children’s / Teenage general interest: Clothing & fashion", + "YNPH2" => "Children’s / Teenage general interest: Needlecraft and fabric crafts", + "YNPJ" => "Children’s / Teenage general interest: Clothing and fashion", "YNPK" => "Children’s / Teenage general interest: Money", - "YNQ" => "Children’s / Teenage: Youth clubs, societies, groups & organisations", - "YNR" => "Children’s / Teenage general interest: Religion & beliefs", + "YNQ" => "Children’s / Teenage: Youth clubs, societies, groups and organisations", + "YNR" => "Children’s / Teenage general interest: Philosophy, Religion and beliefs", + "YNRA" => "Children’s / Teenage general interest: Philosophy", "YNRD" => "Children’s / Teenage general interest: Hinduism", "YNRF" => "Children’s / Teenage general interest: Buddhism", "YNRJ" => "Children’s / Teenage general interest: Judaism", "YNRM" => "Children’s / Teenage general interest: Christianity", "YNRP" => "Children’s / Teenage general interest: Islam", - "YNRR" => "Children’s / Teenage general interest: Other religions", - "YNRU" => "Children’s / Teenage general interest: Ancient religions & mythologies", - "YNRX" => "Children’s / Teenage general interest: Religious texts, prayers & devotional material", - "YNT" => "Children’s / Teenage general interest: Science & technology", + "YNRR" => "Children’s / Teenage general interest: Other religions and spiritual traditions", + "YNRU" => "Children’s / Teenage general interest: Ancient religions, Mythology and legends", + "YNRX" => "Children’s / Teenage general interest: Religious texts, prayers and devotional material", + "YNT" => "Children’s / Teenage general interest: Science and technology", "YNTA" => "Children’s / Teenage general interest: Science: The human body", - "YNTC" => "Children’s / Teenage general interest: Computing & Information Technology", - "YNTC1" => "Children’s / Teenage general interest: Programming & scripting languages", + "YNTC" => "Children’s / Teenage general interest: Computing and Information Technology", + "YNTC1" => "Children’s / Teenage general interest: Programming and scripting languages", "YNTC2" => "Children’s / Teenage general interest: Social media", - "YNTD" => "Children’s / Teenage general interest: Inventors, inventions & experiments", - "YNTG" => "Children’s / Teenage general interest: Machines & how things work", - "YNTM" => "Children’s / Teenage general interest: Mathematics & numbers", - "YNTP" => "Children’s / Teenage general interest: Buildings & construction", - "YNTR" => "Children’s / Teenage general interest: Transport & vehicles", + "YNTD" => "Children’s / Teenage general interest: Inventors, inventions and experiments", + "YNTG" => "Children’s / Teenage general interest: Machines and how things work", + "YNTM" => "Children’s / Teenage general interest: Mathematics and numbers", + "YNTP" => "Children’s / Teenage general interest: Buildings and construction", + "YNTR" => "Children’s / Teenage general interest: Transport and vehicles", "YNTT" => "Children’s / Teenage general interest: Time travel", - "YNU" => "Children’s / Teenage general interest: Humour & jokes", - "YNUC" => "Children’s / Teenage general interest: Cartoons & comic strips", - "YNV" => "Children’s / Teenage general interest: Hobbies, quizzes, toys & games", + "YNU" => "Children’s / Teenage general interest: Humour and jokes", + "YNUC" => "Children’s / Teenage general interest: Cartoons and comic strips", + "YNV" => "Children’s / Teenage general interest: Hobbies, quizzes, toys and games", "YNVD" => "Children’s / Teenage general interest: Toys", - "YNVD1" => "Children’s / Teenage general interest: Dolls, figures & similar toys", + "YNVD1" => "Children’s / Teenage general interest: Dolls, figures and similar toys", "YNVD2" => "Children’s / Teenage general interest: Stuffed or soft toys", - "YNVD3" => "Children’s / Teenage general interest: Building bricks, blocks & construction toys", - "YNVP" => "Children’s / Teenage general interest: Puzzle books", - "YNVU" => "Children’s / Teenage general interest: Computer & video games", - "YNW" => "Children’s / Teenage general interest: Sports & outdoor recreation", - "YNWD" => "Children’s / Teenage general interest: Ball games & sports", - "YNWD1" => "Children’s / Teenage general interest: Ball games & sports: Association football (Soccer)", - "YNWD2" => "Children’s / Teenage general interest: Ball games & sports: American Football", - "YNWD3" => "Children’s / Teenage general interest: Ball games & sports: Baseball & Softball", - "YNWD4" => "Children’s / Teenage general interest: Ball games & sports: Basketball", - "YNWD6" => "Children’s / Teenage general interest: Ball games & sports: Volleyball", - "YNWD8" => "Children’s/Teenage general interest: Ball games & sports: Handball", - "YNWG" => "Children’s / Teenage general interest: Athletics & gymnastics", + "YNVD3" => "Children’s / Teenage general interest: Building bricks, blocks and construction toys", + "YNVM" => "Children’s / Teenage general interest: Games", + "YNVP" => "Children’s / Teenage general interest: Puzzles and quizzes", + "YNVU" => "Children’s / Teenage general interest: Computer and video games", + "YNW" => "Children’s / Teenage general interest: Sports and outdoor recreation", + "YNWD" => "Children’s / Teenage general interest: Ball games and sports", + "YNWD1" => "Children’s / Teenage general interest: Ball games and sports: Association football (Soccer)", + "YNWD2" => "Children’s / Teenage general interest: Ball games and sports: American Football", + "YNWD3" => "Children’s / Teenage general interest: Ball games and sports: Baseball and Softball", + "YNWD4" => "Children’s / Teenage general interest: Ball games and sports: Basketball", + "YNWD5" => "Children’s / Teenage general interest: Ball games and sports: Cricket", + "YNWD6" => "Children’s / Teenage general interest: Ball games and sports: Volleyball", + "YNWD7" => "Children’s / Teenage general interest: Ball games and sports: Rugby", + "YNWD8" => "Children’s/Teenage general interest: Ball games and sports: Handball", + "YNWG" => "Children’s / Teenage general interest: Athletics and gymnastics", "YNWM" => "Children’s / Teenage general interest: Winter sports", "YNWM1" => "Children’s / Teenage general interest: Winter sports: Skiing", "YNWM2" => "Children’s / Teenage general interest: Winter sports: Ice hockey", - "YNWW" => "Children’s / Teenage general interest: Swimming & water sports", - "YNWY" => "Children’s / Teenage general interest: Cycling, rollerskating & skateboarding", - "YNWZ" => "Children’s / Teenage general interest: Sports teams & clubs", - "YNX" => "Children’s / Teenage general interest: Mysteries & the unexplained", - "YNXB" => "Children’s / Teenage general interest: Supernatural & mythological creatures", + "YNWW" => "Children’s / Teenage general interest: Swimming and water sports", + "YNWY" => "Children’s / Teenage general interest: Cycling, rollerskating and skateboarding", + "YNWZ" => "Children’s / Teenage general interest: Sports teams and clubs", + "YNX" => "Children’s / Teenage general interest: Mysteries and the unexplained", + "YNXB" => "Children’s / Teenage general interest: Supernatural and mythological creatures", "YNXB1" => "Children’s / Teenage general interest: Dragons", - "YNXB2" => "Children’s / Teenage general interest: Vampires, werewolves & shapeshifters", - "YNXB3" => "Children’s / Teenage general interest: Zombies, ghosts & the undead", + "YNXB2" => "Children’s / Teenage general interest: Vampires, werewolves and shapeshifters", + "YNXB3" => "Children’s / Teenage general interest: Zombies, ghosts and the undead", "YNXB4" => "Children’s / Teenage general interest: Fairies, elves, etc", - "YNXF" => "Children’s / Teenage general interest: UFOs & extraterrestrial beings", - "YNXW" => "Children’s / Teenage general interest: Witches, wizards & magicians", + "YNXB5" => "Children’s / Teenage general interest: Unicorns", + "YNXB6" => "Children’s / Teenage general interest: Mermaids / Merfolk", + "YNXF" => "Children’s / Teenage general interest: UFOs and extraterrestrial beings", + "YNXW" => "Children’s / Teenage general interest: Witches, wizards and magicians", "YP" => "Educational material", "YPA" => "Educational: Arts, general", - "YPAB" => "Educational: Art & design", + "YPAB" => "Educational: Art and design", "YPAD" => "Educational: Music", - "YPAF" => "Educational: Drama & performance arts", - "YPAG" => "Educational: Fashion & textile", + "YPAF" => "Educational: Drama and performance arts", + "YPAG" => "Educational: Fashion and textile", "YPAK" => "Educational: Handicrafts", - "YPC" => "Educational: Language, literature & literacy", + "YPC" => "Educational: Language, literature and literacy", "YPCA" => "Educational: First / native language", "YPCA1" => "Educational: First / native language: Basic literacy", - "YPCA2" => "Educational: First / native language: Reading & writing skills", - "YPCA21" => "Educational: First / native language: Readers & reading schemes", + "YPCA2" => "Educational: First / native language: Reading and writing skills", + "YPCA21" => "Educational: First / native language: Readers and reading schemes", "YPCA22" => "Educational: First / native language: Handwriting skills", - "YPCA23" => "Educational: First / native language: Spelling & vocabulary", - "YPCA4" => "Educational: First / native language: Grammar & punctuation", + "YPCA23" => "Educational: First / native language: Spelling and vocabulary", + "YPCA4" => "Educational: First / native language: Grammar and punctuation", "YPCA5" => "Educational: First / native language: Speaking skills", "YPCA9" => "Educational: First / native language: Literature studies", "YPCA91" => "Educational: First / native language: School editions of literature texts", - "YPCK" => "Educational: Modern (non-native) languages", - "YPCK2" => "Educational: Modern (non-native) languages: Language learning", - "YPCK21" => "Educational: Modern (non-native) languages: Language learning: grammar, vocabulary and pronunciation", - "YPCK22" => "Educational: Modern (non-native) languages: Language learning: readers", - "YPCK9" => "Educational: Modern (non-native) languages: Literature studies", - "YPCK91" => "Educational: Modern (non-native) languages: School editions of literature texts", - "YPCS" => "Educational: Classical & ancient languages", - "YPCS4" => "Educational: Classical & ancient languages: Language learning", - "YPCS9" => "Educational: Classical & ancient languages: Literature studies", - "YPCS91" => "Educational: Classical & ancient languages: School editions of classical texts", - "YPJ" => "Educational: Humanities & social sciences, general", + "YPCK" => "Educational: Modern (non-native or second) languages", + "YPCK2" => "Educational: Modern (non-native or second) languages: Language learning", + "YPCK21" => "Educational: Modern (non-native or second) languages: Language learning: grammar, vocabulary and pronunciation", + "YPCK22" => "Educational: Modern (non-native or second) languages: Language learning: readers", + "YPCK9" => "Educational: Modern (non-native or second) languages: Literature studies", + "YPCK91" => "Educational: Modern (non-native or second) languages: School editions of literature texts", + "YPCS" => "Educational: Classical and ancient languages", + "YPCS4" => "Educational: Classical and ancient languages: Language learning", + "YPCS9" => "Educational: Classical and ancient languages: Literature studies", + "YPCS91" => "Educational: Classical and ancient languages: School editions of classical texts", + "YPJ" => "Educational: Humanities and social sciences, general", "YPJH" => "Educational: History", "YPJJ" => "Educational: Social sciences, social studies", - "YPJJ1" => "Educational: Politics & constitution", - "YPJJ3" => "Educational: Citizenship & social education", + "YPJJ1" => "Educational: Politics and constitution", + "YPJJ3" => "Educational: Citizenship and social education", "YPJJ4" => "Educational: Local / integrated studies", "YPJJ5" => "Educational: Psychology", - "YPJJ6" => "Educational: Personal & health education", + "YPJJ6" => "Educational: Personal and health education", "YPJK" => "Educational: Media studies", - "YPJL" => "Educational: Philosophy & ethics", + "YPJL" => "Educational: Philosophy and ethics", "YPJM" => "Educational: Law / legal studies", "YPJN" => "Educational: Religious studies", "YPJN1" => "Educational: Religious studies: Hinduism", @@ -3077,13 +3208,13 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "YPJN5" => "Educational: Religious studies: Islam", "YPJN9" => "Educational: Religious studies: Other religions", "YPJT" => "Educational: Geography", - "YPJV" => "Educational: Business studies & economics", + "YPJV" => "Educational: Business studies and economics", "YPJV1" => "Educational: Economics", - "YPJV2" => "Educational: Business administration & office skills", + "YPJV2" => "Educational: Business administration and office skills", "YPJV3" => "Educational: Accounting", - "YPM" => "Educational: Mathematics, science & technology, general", - "YPMF" => "Educational: Mathematics & numeracy", - "YPMF1" => "Educational: Mathematics & numeracy: arithmetic / times tables", + "YPM" => "Educational: Mathematics, science and technology, general", + "YPMF" => "Educational: Mathematics and numeracy", + "YPMF1" => "Educational: Mathematics and numeracy: arithmetic / times tables", "YPMP" => "Educational: Sciences, general science", "YPMP1" => "Educational: Biology", "YPMP3" => "Educational: Chemistry", @@ -3091,82 +3222,95 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "YPMP51" => "Educational: Astronomy", "YPMP6" => "Educational: Environmental science", "YPMT" => "Educational: Technology", - "YPMT2" => "Educational: Design & technology", + "YPMT2" => "Educational: Design and technology", "YPMT3" => "Educational: Engineering", "YPMT4" => "Educational: Food technology, cooking skills", "YPMT5" => "Educational: Electronics", - "YPMT6" => "Educational: IT & computing, ICT", + "YPMT6" => "Educational: IT and computing, ICT", "YPMT7" => "Educational: Technical drawing", "YPMT8" => "Educational: Woodwork, metalwork, etc", - "YPW" => "Educational: Vocational & other subjects", - "YPWB" => "Education: Family & consumer sciences / domestic management", - "YPWC" => "Educational: Other vocational education & training", - "YPWC1" => "Educational: Health & social care", + "YPW" => "Educational: Vocational and other subjects", + "YPWB" => "Educational: Family and consumer sciences / domestic management", + "YPWC" => "Educational: Other vocational education and training", + "YPWC1" => "Educational: Health and social care", "YPWC2" => "Educational: Child care / Child development", - "YPWC3" => "Educational: Sales & retail skills", - "YPWC4" => "Educational: Hospitality", - "YPWC5" => "Educational: Hairdressing, salon & beauty therapy skills", + "YPWC3" => "Educational: Sales and retail skills", + "YPWC4" => "Educational: Hospitality, catering, leisure and tourism", + "YPWC5" => "Educational: Hairdressing, salon and beauty therapy skills", "YPWC9" => "Educational: Work experience / Careers", + "YPWD" => "Educational: Construction, building and related skills", + "YPWE" => "Educational: Agriculture, horticulture and related subjects", "YPWF" => "Educational: Physical education", - "YPWL" => "Educational: General studies / study skills general", - "YPZ" => "Educational: study & revision guides", - "YPZN" => "Education: Non-Verbal reasoning", - "YPZP" => "Education: Verbal reasoning", + "YPWG" => "Educational: Transport, logistics and related skills", + "YPWL" => "Educational: General studies, educational skills and competencies", + "YPWL1" => "Educational: General knowledge", + "YPWL2" => "Educational: Study skills", + "YPWL3" => "Educational: Memory skills and creative thinking", + "YPWL4" => "Educational: Social and life skills", + "YPWN" => "Educational: Uniformed public or protective services", + "YPZ" => "Educational: study and revision guides", + "YPZN" => "Educational: Non-Verbal reasoning", + "YPZP" => "Educational: Verbal reasoning", "YR" => "Children’s / Teenage reference material", - "YRD" => "Children’s / Teenage reference: Dictionaries and language reference", + "YRD" => "Children’s / Teenage reference: Dictionaries and Languages", "YRDC" => "Children’s / Teenage reference: Picture dictionaries", "YRDL" => "Children’s / Teenage reference: Bilingual / multilingual dictionaries", - "YRDM" => "Children’s / Teenage reference: Non-native language study and reference", + "YRDM" => "Children’s / Teenage reference: Non-native or second language study and reference", "YRE" => "Children’s / Teenage reference: Encyclopaedias, general reference", "YRG" => "Children’s / Teenage reference: Subject-specific reference", - "YRW" => "Children’s / Teenage reference: Atlases & maps", - "YX" => "Children’s / Teenage: Personal & social topics", - "YXA" => "Children’s / Teenage personal & social topics: Body & health", - "YXAB" => "Children’s / Teenage personal & social topics: Fitness, exercise & healthy eating", - "YXAX" => "Children’s / Teenage personal & social topics: Sex education & the facts of life", - "YXB" => "Children’s / Teenage personal & social topics: LGBT", - "YXC" => "Children’s / Teenage personal & social topics: Gender identity", - "YXD" => "Children’s / Teenage personal & social topics: Self-awareness & self-esteem", - "YXE" => "Children’s / Teenage personal & social topics: Emotions, moods & feelings", - "YXF" => "Children’s / Teenage personal & social topics: Families & family issues", - "YXFD" => "Children’s / Teenage personal & social topics: Divorce, separation, family break-up", - "YXFF" => "Children’s / Teenage personal & social topics: Adoption / fostering", - "YXFS" => "Children’s / Teenage personal & social topics: New baby", - "YXG" => "Children’s / Teenage personal & social topics: Death & bereavement", - "YXGS" => "Children’s / Teenage personal & social topics: Suicide", - "YXH" => "Children’s / Teenage personal & social topics: Relationships (non-family)", - "YXHB" => "Children’s / Teenage personal & social topics: Friends & friendship issues", - "YXHL" => "Children’s / Teenage personal & social topics: Dating, relationships & love", - "YXHY" => "Children’s / Teenage personal & social topics: Teenage pregnancy", - "YXJ" => "Children’s / Teenage personal & social topics: Drugs & addiction", - "YXK" => "Children’s / Teenage personal & social topics: Disability & special needs", - "YXL" => "Children’s / Teenage personal & social topics: Physical & mental health conditions", - "YXLB" => "Children’s / Teenage personal & social topics: Illness & specific physical health conditions", - "YXLB1" => "Children’s / Teenage personal & social topics: Cancer", - "YXLD" => "Children’s / Teenage personal & social topics: Mental health", - "YXLD1" => "Children’s / Teenage personal & social topics: Eating disorders", - "YXLD2" => "Children’s / Teenage personal & social topics: Anxiety, depression & self-harm", - "YXLD6" => "Children’s / Teenage personal & social topics: Positive / good mental health", - "YXN" => "Children’s / Teenage personal & social topics: Racism & multiculturalism", - "YXP" => "Children’s / Teenage personal & social topics: Diversity / inclusivity", - "YXPB" => "Children’s / Teenage personal & social topics: Prejudice & intolerance", - "YXQ" => "Children’s / Teenage personal & social topics: Bullying, violence, abuse & peer pressure", - "YXQD" => "Children’s / Teenage personal & social topics: Abuse", - "YXQF" => "Children’s / Teenage personal & social topics: Bullying & harassment", - "YXR" => "Children’s / Teenage personal & social topics: Personal safety", - "YXS" => "Children’s / Teenage personal & social topics: Runaways", - "YXT" => "Children’s / Teenage personal & social topics: Truancy & school problems", - "YXV" => "Teenage personal & social topics: Advice on careers & further education, leaving school", - "YXW" => "Children’s / Teenage personal & social topics: First experiences & growing up", + "YRW" => "Children’s / Teenage reference: Atlases and maps", + "YX" => "Children’s / Teenage: Personal and social topics", + "YXA" => "Children’s / Teenage personal and social topics: Body and health", + "YXAB" => "Children’s / Teenage personal and social topics: Fitness, exercise and healthy eating", + "YXAX" => "Children’s / Teenage personal and social topics: Sex education and the facts of life", + "YXB" => "Children’s / Teenage personal and social topics: LGBTQ+", + "YXC" => "Children’s / Teenage personal and social topics: Gender identity", + "YXD" => "Children’s / Teenage personal and social topics: Self-awareness and self-esteem", + "YXE" => "Children’s / Teenage personal and social topics: Emotions, moods and feelings", + "YXF" => "Children’s / Teenage personal and social topics: Families and family members", + "YXFD" => "Children’s / Teenage personal and social topics: Divorce, separation, family break-up", + "YXFF" => "Children’s / Teenage personal and social topics: Adoption / fostering", + "YXFR" => "Children’s / Teenage personal and social topics: siblings", + "YXFS" => "Children’s / Teenage personal and social topics: New baby", + "YXG" => "Children’s / Teenage personal and social topics: Death and bereavement", + "YXGS" => "Children’s / Teenage personal and social topics: Suicide", + "YXH" => "Children’s / Teenage personal and social topics: Relationships (non-family)", + "YXHB" => "Children’s / Teenage personal and social topics: Friends and friendships", + "YXHL" => "Children’s / Teenage personal and social topics: Dating, relationships, romance and love", + "YXHP" => "Children’s / Teenage personal and social topics: Life skills and choices", + "YXHY" => "Children’s / Teenage personal and social topics: Teenage pregnancy", + "YXJ" => "Children’s / Teenage personal and social topics: Drugs and addiction", + "YXK" => "Children’s / Teenage personal and social topics: Disability, impairments and special needs", + "YXL" => "Children’s / Teenage personal and social topics: Physical and mental health conditions", + "YXLB" => "Children’s / Teenage personal and social topics: Illness and specific physical health conditions", + "YXLB1" => "Children’s / Teenage personal and social topics: Cancer", + "YXLD" => "Children’s / Teenage personal and social topics: Mental health", + "YXLD1" => "Children’s / Teenage personal and social topics: Eating disorders", + "YXLD2" => "Children’s / Teenage personal and social topics: Anxiety, depression and self-harm", + "YXLD6" => "Children’s / Teenage personal and social topics: Positive / good mental health", + "YXM" => "Children’s / Teenage personal and social topics: Multicultural", + "YXN" => "Children’s / Teenage personal and social topics: Racism", + "YXP" => "Children’s / Teenage personal and social topics: Diversity and inclusion", + "YXPB" => "Children’s / Teenage personal and social topics: Prejudice and intolerance", + "YXQ" => "Children’s / Teenage personal and social topics: Bullying, violence, abuse and peer pressure", + "YXQD" => "Children’s / Teenage personal and social topics: Abuse", + "YXQF" => "Children’s / Teenage personal and social topics: Bullying and harassment", + "YXR" => "Children’s / Teenage personal and social topics: Personal safety", + "YXS" => "Children’s / Teenage personal and social topics: Runaways", + "YXT" => "Children’s / Teenage personal and social topics: Truancy and school problems", + "YXV" => "Teenage personal and social topics: Advice on careers and further education, leaving school", + "YXW" => "Children’s / Teenage personal and social topics: First experiences and growing up", "YXZ" => "Children’s / Teenage: Social issues", - "YXZG" => "Children’s / Teenage social issues: Environment & green issues", - "YXZM" => "Children’s / Teenage social issues: Migration & refugees", + "YXZG" => "Children’s / Teenage social issues: Environment and green issues", + "YXZM" => "Children’s / Teenage social issues: Migration and refugees", "YXZR" => "Children’s / Teenage social issues: Religious issues", - "YXZW" => "Children’s / Teenage social issues: War & conflict issues", - "YZ" => "Children’s / Teenage stationery & miscellaneous items", + "YXZW" => "Children’s / Teenage social issues: War and conflict issues", + "YZ" => "Children’s / Teenage stationery and miscellaneous items", "YZG" => "Children’s gift books", "YZS" => "Children’s stationery items", + "YZSG" => "Children’s / Teenage stationery items: thematic journals and notebooks", "YZSN" => "Blank children’s stationery items", + "1" => "Place qualifiers", "1A" => "World", "1D" => "Europe", "1DD" => "Western Europe", @@ -3266,14 +3410,14 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDF-FR-EAC" => "Montbard", "1DDF-FR-EB" => "Nièvre", "1DDF-FR-EBA" => "Nevers", - "1DDF-FR-EBB" => "Château-Chinon & the Morvan", + "1DDF-FR-EBB" => "Château-Chinon and the Morvan", "1DDF-FR-EBC" => "Clamecy", "1DDF-FR-EBD" => "Cosne-Cours-sur-Loire", "1DDF-FR-EC" => "Saône-et-Loire", - "1DDF-FR-ECA" => "Mâcon & the Mâconnais", + "1DDF-FR-ECA" => "Mâcon and the Mâconnais", "1DDF-FR-ECB" => "Autun", - "1DDF-FR-ECC" => "Chalon-sur-Saône & the Chalonnais", - "1DDF-FR-ECD" => "Charolles & the Charolais", + "1DDF-FR-ECC" => "Chalon-sur-Saône and the Chalonnais", + "1DDF-FR-ECD" => "Charolles and the Charolais", "1DDF-FR-ECE" => "Louhans", "1DDF-FR-ED" => "Yonne", "1DDF-FR-EDA" => "Auxerre", @@ -3512,8 +3656,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDF-FR-IBB" => "Calvi", "1DDF-FR-IBC" => "Corte", "1DDF-FR-L" => "Île-de-France", - "1DDF-FR-LA" => "Paris (75)", - "1DDF-FR-LAA" => "Paris", + "1DDF-FR-LA" => "Paris (Region)", + "1DDF-FR-LAA" => "Paris (city)", "1DDF-FR-LB" => "Seine-et-Marne", "1DDF-FR-LBA" => "Melun", "1DDF-FR-LBB" => "Fontainebleau", @@ -3545,7 +3689,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDF-FR-LHA" => "Pontoise", "1DDF-FR-LHB" => "Argenteuil", "1DDF-FR-LHC" => "Sarcelles", - "1DDF-FR-LZ" => "Î̂le-de-France: Places of interest", + "1DDF-FR-LZ" => "Île-de-France: Places of interest", "1DDF-FR-LZB" => "Brie", "1DDF-FR-LZV" => "Vexin", "1DDF-FR-XN" => "Normandy", @@ -3708,7 +3852,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDF-FR-Z" => "France: Places of interest", "1DDF-FR-ZB" => "The Seine", "1DDF-FR-ZD" => "The Dordogne", - "1DDF-FR-ZL" => "The Loire & the Loire Valley", + "1DDF-FR-ZL" => "The Loire and the Loire Valley", "1DDF-FR-ZR" => "The Rhône", "1DDF-FR-ZS" => "Massif Central", "1DDL" => "Luxembourg", @@ -3731,6 +3875,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDN-NL-GD" => "Apeldoorn", "1DDN-NL-GE" => "Ede", "1DDN-NL-GN" => "Nijmegen", + "1DDN-NL-GR" => "Achterhoek", + "1DDN-NL-GS" => "Betuwe (Batavia)", + "1DDN-NL-GV" => "Veluwe", "1DDN-NL-H" => "North Holland", "1DDN-NL-HH" => "Haarlem", "1DDN-NL-HM" => "Alkmaar", @@ -3752,9 +3899,15 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDN-NL-U" => "Utrecht (province)", "1DDN-NL-UA" => "Amersfoort", "1DDN-NL-UU" => "Utrecht", + "1DDN-NL-UV" => "Utrechtse Heuvelrug (Utrecht Hill Ridge)", "1DDN-NL-V" => "Overijssel", "1DDN-NL-VE" => "Enschede", + "1DDN-NL-VT" => "Twente", "1DDN-NL-VZ" => "Zwolle", + "1DDN-NL-X" => "Netherlands: Places of interest", + "1DDN-NL-XB" => "Groene Hart", + "1DDN-NL-XD" => "IJsselmeer", + "1DDN-NL-XF" => "West Frisian Islands", "1DDN-NL-Z" => "Zeeland", "1DDN-NL-ZG" => "Goes", "1DDN-NL-ZM" => "Middelburg", @@ -3815,7 +3968,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDU-GB-EAS" => "Suffolk", "1DDU-GB-EAX" => "Essex", "1DDU-GB-EAZ" => "East Anglia: Places of interest", - "1DDU-GB-EAZF" => "The Fens & the Wash", + "1DDU-GB-EAZF" => "The Fens and the Wash", "1DDU-GB-EAZN" => "Norfolk Broads", "1DDU-GB-EM" => "Midlands", "1DDU-GB-EMD" => "Derbyshire", @@ -3831,26 +3984,26 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDU-GB-EMP" => "Shropshire", "1DDU-GB-EMR" => "Rutland", "1DDU-GB-EMS" => "Staffordshire", - "1DDU-GB-EMSP" => "Stoke-on-Trent & The Potteries", + "1DDU-GB-EMSP" => "Stoke-on-Trent and The Potteries", "1DDU-GB-EMT" => "Worcestershire", "1DDU-GB-EMW" => "Warwickshire, West Midlands", "1DDU-GB-EMWB" => "Birmingham (UK)", "1DDU-GB-EMWC" => "Coventry", "1DDU-GB-EMWS" => "Stratford-upon-Avon", - "1DDU-GB-EMWW" => "Wolverhampton & the Black Country", + "1DDU-GB-EMWW" => "Wolverhampton and the Black Country", "1DDU-GB-EMZ" => "Midlands: Places of interest", "1DDU-GB-EMZD" => "The Peak District", "1DDU-GB-EMZM" => "Welsh Marches", "1DDU-GB-EN" => "North West England", "1DDU-GB-ENC" => "Cheshire", - "1DDU-GB-ENL" => "Lancashire, Greater Manchester, Merseyside", + "1DDU-GB-ENL" => "Lancashire", "1DDU-GB-ENLB" => "Blackpool", "1DDU-GB-ENLL" => "Liverpool", "1DDU-GB-ENLM" => "Manchester", "1DDU-GB-ENM" => "Cumbria", "1DDU-GB-ENZ" => "North West England: Places of interest", "1DDU-GB-ENZL" => "The Lake District", - "1DDU-GB-ES" => "South & South East England", + "1DDU-GB-ES" => "South and South East England", "1DDU-GB-ESB" => "Berkshire", "1DDU-GB-ESBR" => "Reading", "1DDU-GB-ESBW" => "Windsor", @@ -3858,7 +4011,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDU-GB-ESF" => "Oxfordshire", "1DDU-GB-ESFX" => "Oxford", "1DDU-GB-ESH" => "Hampshire", - "1DDU-GB-ESHS" => "Southampton & the Solent", + "1DDU-GB-ESHS" => "Southampton and the Solent", "1DDU-GB-ESK" => "Kent", "1DDU-GB-ESKC" => "Canterbury", "1DDU-GB-ESL" => "London, Greater London", @@ -3871,9 +4024,10 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDU-GB-ESUB" => "Bletchley Park", "1DDU-GB-ESW" => "Isle of Wight", "1DDU-GB-ESX" => "Sussex", - "1DDU-GB-ESXB" => "Brighton & Hove", - "1DDU-GB-ESZ" => "South & South East England: Places of interest", - "1DDU-GB-ESZD" => "North & South Downs, the Weald", + "1DDU-GB-ESXB" => "Brighton and Hove", + "1DDU-GB-ESZ" => "South and South East England: Places of interest", + "1DDU-GB-ESZC" => "The Chilterns", + "1DDU-GB-ESZD" => "North and South Downs, the Weald", "1DDU-GB-ESZF" => "The New Forest", "1DDU-GB-ESZT" => "The Thames", "1DDU-GB-EW" => "South West England", @@ -3887,31 +4041,32 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDU-GB-EWSG" => "Glastonbury", "1DDU-GB-EWSH" => "Bath", "1DDU-GB-EWT" => "Dorset", - "1DDU-GB-EWTB" => "Bournemouth & Poole", + "1DDU-GB-EWTB" => "Bournemouth and Poole", "1DDU-GB-EWW" => "Wiltshire", "1DDU-GB-EWWS" => "Salisbury", "1DDU-GB-EWZ" => "South West England: Places of interest", "1DDU-GB-EWZC" => "The Cotswolds", - "1DDU-GB-EWZD" => "Jurassic Coast & Purbeck", - "1DDU-GB-EWZM" => "Dartmoor, Exmoor & Bodmin Moor", + "1DDU-GB-EWZD" => "Jurassic Coast and Purbeck", + "1DDU-GB-EWZM" => "Dartmoor, Exmoor and Bodmin Moor", "1DDU-GB-EWZS" => "Stonehenge", "1DDU-GB-EWZW" => "Wessex", - "1DDU-GB-EY" => "North & North East England", + "1DDU-GB-EY" => "North and North East England", "1DDU-GB-EYD" => "Durham", "1DDU-GB-EYK" => "Yorkshire", "1DDU-GB-EYKH" => "Hull", "1DDU-GB-EYKK" => "York", "1DDU-GB-EYKL" => "Leeds, Bradford", - "1DDU-GB-EYKM" => "Middlesbrough & Teesside", - "1DDU-GB-EYKS" => "Sheffield & Rotherham", - "1DDU-GB-EYN" => "Northumberland, Tyne & Wear", - "1DDU-GB-EYNC" => "Newcastle", - "1DDU-GB-EYNS" => "Sunderland & Wearside", - "1DDU-GB-EYZ" => "North & North East England: Places of interest", + "1DDU-GB-EYKM" => "Middlesbrough and Teesside", + "1DDU-GB-EYKS" => "Sheffield and Rotherham", + "1DDU-GB-EYKW" => "Whitby", + "1DDU-GB-EYN" => "Northumberland, Tyne and Wear", + "1DDU-GB-EYNC" => "Newcastle and Gateshead", + "1DDU-GB-EYNS" => "Sunderland and Wearside", + "1DDU-GB-EYZ" => "North and North East England: Places of interest", "1DDU-GB-EYZB" => "The Pennines", "1DDU-GB-EYZF" => "North York Moors", "1DDU-GB-EYZH" => "Yorkshire Dales", - "1DDU-GB-EYZL" => "Farne Islands & Lindisfarne (Holy Island)", + "1DDU-GB-EYZL" => "Farne Islands and Lindisfarne (Holy Island)", "1DDU-GB-EYZN" => "Northumberland National Park", "1DDU-GB-EYZW" => "Hadrian’s Wall", "1DDU-GB-N" => "Northern Ireland", @@ -3924,38 +4079,40 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DDU-GB-NJ" => "Fermanagh", "1DDU-GB-NT" => "Tyrone", "1DDU-GB-NZ" => "Northern Ireland: Places of interest", - "1DDU-GB-NZA" => "Giant’s Causeway, North Antrim Coast & the Glens", + "1DDU-GB-NZA" => "Giant’s Causeway, Antrim Coast and the Glens", "1DDU-GB-NZM" => "Mourne Mountains", "1DDU-GB-NZS" => "Sperrin Mountains", "1DDU-GB-S" => "Scotland", - "1DDU-GB-SB" => "Lowland Scotland & Borders", - "1DDU-GB-SBR" => "Rhinn of Kells & Galloway Hills", + "1DDU-GB-SB" => "Lowland Scotland and Borders", + "1DDU-GB-SBR" => "Rhinn of Kells and Galloway Hills", "1DDU-GB-SC" => "Central Scotland", - "1DDU-GB-SCD" => "Dundee & Fife", + "1DDU-GB-SCD" => "Dundee and Fife", "1DDU-GB-SCE" => "Edinburgh", "1DDU-GB-SCG" => "Glasgow", "1DDU-GB-SCS" => "Stirling", - "1DDU-GB-SH" => "Northern Scotland, Highlands & Islands", - "1DDU-GB-SHA" => "Aberdeen & Deeside", + "1DDU-GB-SH" => "Northern Scotland, Highlands and Islands", + "1DDU-GB-SHA" => "Aberdeen and Deeside", "1DDU-GB-SHG" => "The Grampians", - "1DDU-GB-SHN" => "Loch Ness & the Great Glen", + "1DDU-GB-SHGD" => "Cairngorms", + "1DDU-GB-SHGH" => "Ben Nevis and Glen Coe", + "1DDU-GB-SHN" => "Loch Ness and the Great Glen", "1DDU-GB-SHV" => "Inverness", "1DDU-GB-SHW" => "Northwest Highlands", "1DDU-GB-SHF" => "Orkney Islands", "1DDU-GB-SHJ" => "Shetland Islands", "1DDU-GB-SHL" => "Western Isles, Outer Hebrides", "1DDU-GB-SHP" => "Inner Hebrides", - "1DDU-GB-SHPM" => "Isle of Mull & Iona", + "1DDU-GB-SHPM" => "Isle of Mull and Iona", "1DDU-GB-SHQ" => "Isle of Skye", "1DDU-GB-SHR" => "Isle of Arran", - "1DDU-GB-SHT" => "Loch Lomond & the Trossachs", + "1DDU-GB-SHT" => "Loch Lomond and the Trossachs", "1DDU-GB-W" => "Wales", "1DDU-GB-WC" => "Mid Wales", "1DDU-GB-WN" => "North Wales", "1DDU-GB-WNS" => "Snowdonia", "1DDU-GB-WS" => "South Wales", "1DDU-GB-WSC" => "Cardiff", - "1DDU-GB-WSG" => "Swansea & the Gower", + "1DDU-GB-WSG" => "Swansea and the Gower", "1DDU-GB-WSY" => "Brecon Beacons", "1DDU-GB-WV" => "Southwest Wales", "1DDU-GB-WVP" => "Pembrokeshire Coast", @@ -3967,90 +4124,270 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DFA" => "Austria", "1DFA-AT-B" => "Burgenland", "1DFA-AT-K" => "Carinthia", + "1DFA-AT-KB" => "Klagenfurt", + "1DFA-AT-KD" => "Villach", + "1DFA-AT-KF" => "Wörthersee (Lake Wort)", "1DFA-AT-M" => "Styria", + "1DFA-AT-MB" => "Bruck an der Mur", + "1DFA-AT-MG" => "Graz", + "1DFA-AT-MH" => "Hochschwab", + "1DFA-AT-ML" => "Leoben", "1DFA-AT-N" => "Lower Austria", + "1DFA-AT-NA" => "Industrieviertel", + "1DFA-AT-NB" => "Mostviertel", + "1DFA-AT-NC" => "Waldviertel", + "1DFA-AT-ND" => "Weinviertel", + "1DFA-AT-NW" => "Wachau", "1DFA-AT-R" => "Upper Austria", - "1DFA-AT-S" => "Salzburg", + "1DFA-AT-RA" => "Linz", + "1DFA-AT-RC" => "Hausruckviertel", + "1DFA-AT-RD" => "Innviertel", + "1DFA-AT-RE" => "Mühlviertel", + "1DFA-AT-RF" => "Traunviertel", + "1DFA-AT-S" => "Salzburg (state)", + "1DFA-AT-SA" => "Salzburg (City)", + "1DFA-AT-SC" => "Flachgau", + "1DFA-AT-SD" => "Pinzgau", + "1DFA-AT-SE" => "Lungau", + "1DFA-AT-SF" => "Pongau", + "1DFA-AT-SG" => "Tennengau", "1DFA-AT-T" => "Tyrol", + "1DFA-AT-TA" => "Innsbruck", + "1DFA-AT-TC" => "Ausserfern", + "1DFA-AT-TD" => "Upper Tyrol", + "1DFA-AT-TE" => "Lower Tyrol", + "1DFA-AT-TF" => "Eastern Tyrol", "1DFA-AT-V" => "Vorarlberg", + "1DFA-AT-VB" => "Bregenz", + "1DFA-AT-VF" => "Feldkirch", + "1DFA-AT-VM" => "Montafon", + "1DFA-AT-VR" => "Bregenz Forest", "1DFA-AT-W" => "Vienna", + "1DFA-AT-Z" => "Austria: Places of Interest", + "1DFA-AT-ZA" => "Arlberg", + "1DFA-AT-ZD" => "Dachstein", + "1DFA-AT-ZR" => "Semmering", + "1DFA-AT-ZS" => "Salzkammergut", + "1DFA-AT-ZW" => "Vienna Woods", "1DFG" => "Germany", "1DFG-DE-B" => "Northeast Germany", "1DFG-DE-BE" => "Berlin", "1DFG-DE-BG" => "Brandenburg", - "1DFG-DE-BK" => "German Baltic Sea coast & islands", + "1DFG-DE-BGB" => "Havelland", + "1DFG-DE-BGD" => "Potsdam", + "1DFG-DE-BGE" => "Cottbus", + "1DFG-DE-BGF" => "Frankfurt (Oder)", + "1DFG-DE-BK" => "German Baltic Sea coast and islands", "1DFG-DE-BKA" => "Rügen", + "1DFG-DE-BKB" => "Fehmarn", + "1DFG-DE-BKD" => "Fischland-Darss-Zingst", + "1DFG-DE-BKF" => "Usedom", "1DFG-DE-BM" => "Mecklenburg-Western Pomerania", + "1DFG-DE-BMB" => "Schwerin", + "1DFG-DE-BMC" => "Greifswald", + "1DFG-DE-BMD" => "Rostock", + "1DFG-DE-BMF" => "Stralsund", + "1DFG-DE-BMH" => "Wismar", + "1DFG-DE-BMM" => "Mecklenburg Lake Plateau", "1DFG-DE-BS" => "Saxony-Anhalt", + "1DFG-DE-BSB" => "Magdeburg", + "1DFG-DE-BSC" => "Dessau", + "1DFG-DE-BSD" => "Halberstadt", + "1DFG-DE-BSF" => "Halle (Saale)", + "1DFG-DE-BSG" => "Lutherstadt Wittenberg", + "1DFG-DE-BSH" => "Quedlinburg", + "1DFG-DE-BSK" => "Wernigerode", "1DFG-DE-F" => "East Germany", "1DFG-DE-FS" => "Saxony", "1DFG-DE-FSA" => "Leipzig", "1DFG-DE-FSB" => "Dresden", + "1DFG-DE-FSC" => "Bautzen", + "1DFG-DE-FSD" => "Görlitz", + "1DFG-DE-FSE" => "Chemnitz", + "1DFG-DE-FSF" => "Freiberg", + "1DFG-DE-FSG" => "Plauen", + "1DFG-DE-FSH" => "Zwickau", + "1DFG-DE-FSN" => "Saxon Switzerland National Park", "1DFG-DE-FT" => "Thuringia", + "1DFG-DE-FTB" => "Erfurt", + "1DFG-DE-FTD" => "Thuringian Forest", + "1DFG-DE-FTDB" => "Eisenach", + "1DFG-DE-FTH" => "Jena", + "1DFG-DE-FTJ" => "Weimar", "1DFG-DE-T" => "Southeast Germany", "1DFG-DE-TB" => "Bavaria", "1DFG-DE-TBA" => "Lower Bavaria", + "1DFG-DE-TBAB" => "Passau", "1DFG-DE-TBB" => "Upper Bavaria", + "1DFG-DE-TBBB" => "Berchtesgadener Land", + "1DFG-DE-TBBBA" => "Berchtesgaden", + "1DFG-DE-TBBD" => "Ingolstadt", + "1DFG-DE-TBBF" => "Chiemgau", + "1DFG-DE-TBBG" => "Lake Starnberg", + "1DFG-DE-TBBH" => "Tegernsee", "1DFG-DE-TBC" => "Munich", "1DFG-DE-TBD" => "Nuremburg", + "1DFG-DE-TBF" => "Franconia", + "1DFG-DE-TBFC" => "Upper Franconia", + "1DFG-DE-TBFCB" => "Bamberg", + "1DFG-DE-TBFCD" => "Bayreuth", + "1DFG-DE-TBFM" => "Middle Franconia", + "1DFG-DE-TBFMB" => "Fürth", + "1DFG-DE-TBFMD" => "Rothenburg ob der Tauber", + "1DFG-DE-TBFV" => "Lower Franconia", + "1DFG-DE-TBFVB" => "Aschaffenburg", + "1DFG-DE-TBFVD" => "Würzburg", + "1DFG-DE-TBH" => "Augsburg", + "1DFG-DE-TBJ" => "Füssen", + "1DFG-DE-TBK" => "Kempten", + "1DFG-DE-TBL" => "Lindau", + "1DFG-DE-TBM" => "Upper Palatinate", + "1DFG-DE-TBMB" => "Regensburg", + "1DFG-DE-TBN" => "Altmühltal", + "1DFG-DE-TBP" => "Bavarian Forest", "1DFG-DE-U" => "Southwest Germany", "1DFG-DE-UB" => "Baden-Württemberg", "1DFG-DE-UBA" => "Stuttgart", + "1DFG-DE-UBC" => "Breisgau", + "1DFG-DE-UBCF" => "Freiburg im Breisgau", + "1DFG-DE-UBE" => "Electoral Palatinate", + "1DFG-DE-UBEB" => "Heidelberg", + "1DFG-DE-UBED" => "Mannheim", + "1DFG-DE-UBG" => "Heilbronn", + "1DFG-DE-UBJ" => "Karlsruhe", + "1DFG-DE-UBL" => "Konstanz", + "1DFG-DE-UBP" => "Swabian Jura", + "1DFG-DE-UBPB" => "Reutlingen", + "1DFG-DE-UBPD" => "Ulm", + "1DFG-DE-UBR" => "Singen (Hohentwiel)", + "1DFG-DE-UBT" => "Tübingen", "1DFG-DE-UH" => "Hesse", "1DFG-DE-UHA" => "Frankfurt", + "1DFG-DE-UHC" => "Rheingau", + "1DFG-DE-UHCW" => "Wiesbaden", + "1DFG-DE-UHE" => "Darmstadt", + "1DFG-DE-UHP" => "Kassel", + "1DFG-DE-UHT" => "Taunus", "1DFG-DE-UR" => "Rhineland-Palatinate", "1DFG-DE-URA" => "Palatinate", + "1DFG-DE-URAS" => "Speyer", + "1DFG-DE-URC" => "Rhenish Hesse", + "1DFG-DE-URCM" => "Mainz", + "1DFG-DE-URCW" => "Worms", + "1DFG-DE-URK" => "Koblenz", + "1DFG-DE-URT" => "Trier", "1DFG-DE-US" => "Saarland", "1DFG-DE-V" => "Northwest Germany", - "1DFG-DE-VA" => "German North Sea coast & islands", + "1DFG-DE-VA" => "German North Sea coast and islands", + "1DFG-DE-VAF" => "Heligoland", + "1DFG-DE-VAN" => "North Frisia", + "1DFG-DE-VANF" => "Föhr", + "1DFG-DE-VANS" => "Sylt", + "1DFG-DE-VAP" => "East Frisia", "1DFG-DE-VB" => "Bremen", + "1DFG-DE-VBC" => "Bremerhaven", "1DFG-DE-VH" => "Hamburg", "1DFG-DE-VN" => "Lower Saxony", "1DFG-DE-VNA" => "Hanover", + "1DFG-DE-VNB" => "Wendland", + "1DFG-DE-VNC" => "Braunschweig", + "1DFG-DE-VND" => "Lüneburg Heath", + "1DFG-DE-VNDB" => "Celle", + "1DFG-DE-VNDD" => "Lüneburg", + "1DFG-DE-VNE" => "Goslar", + "1DFG-DE-VNF" => "Göttingen", + "1DFG-DE-VNG" => "Hildesheim", + "1DFG-DE-VNH" => "Oldenburg", + "1DFG-DE-VNK" => "Osnabrück", "1DFG-DE-VR" => "North Rhine-Westphalia", + "1DFG-DE-VRA" => "Aachen", "1DFG-DE-VRB" => "Düsseldorf", "1DFG-DE-VRC" => "Cologne", "1DFG-DE-VRD" => "Dortmund", "1DFG-DE-VRE" => "Essen", + "1DFG-DE-VRG" => "Bonn", + "1DFG-DE-VRH" => "Münster (region)", + "1DFG-DE-VRHM" => "Münster", + "1DFG-DE-VRJ" => "Siegen", + "1DFG-DE-VRK" => "Ostwestfalen-Lippe", + "1DFG-DE-VRKB" => "Bielefeld", + "1DFG-DE-VRKP" => "Paderborn", + "1DFG-DE-VRL" => "Bergisches Land", + "1DFG-DE-VRLB" => "Solingen", + "1DFG-DE-VRLD" => "Wuppertal", + "1DFG-DE-VRM" => "Lower Rhine region", + "1DFG-DE-VRN" => "Sauerland", "1DFG-DE-VRR" => "Ruhr district", + "1DFG-DE-VRRB" => "Bochum", + "1DFG-DE-VRRD" => "Duisburg", "1DFG-DE-VS" => "Schleswig-Holstein", - "1DFG-DE-X" => "Historical areas within Germany", + "1DFG-DE-X" => "Germany: places of interest", "1DFG-DE-XA" => "Upper Lusatia", "1DFG-DE-XB" => "Swabia", "1DFG-DE-XC" => "Allgäu", + "1DFG-DE-XD" => "Rothaar Mountains", + "1DFG-DE-XE" => "Odenwald", + "1DFG-DE-XEB" => "Bergstrasse", + "1DFG-DE-XF" => "Teutoburg Forest", + "1DFG-DE-XG" => "Westerwald", + "1DFG-DE-XH" => "Spessart", "1DFH" => "Switzerland", "1DFH-CH-C" => "Espace Mittelland", "1DFH-CH-CB" => "Bern", - "1DFH-CH-CF" => "Freiburg", - "1DFH-CH-CJ" => "Jura", + "1DFH-CH-CBB" => "Bernese Oberland", + "1DFH-CH-CBBD" => "Interlaken", + "1DFH-CH-CBBG" => "Grindelwald", + "1DFH-CH-CBBT" => "Thun", + "1DFH-CH-CF" => "Fribourg / Freiburg", + "1DFH-CH-CJ" => "Jura (Canton)", "1DFH-CH-CN" => "Neuchâtel", "1DFH-CH-CS" => "Solothurn", "1DFH-CH-G" => "Lake Geneva Region", "1DFH-CH-GG" => "Geneva", "1DFH-CH-GV" => "Vaud", "1DFH-CH-GVL" => "Lausanne", + "1DFH-CH-GVM" => "Montreux", "1DFH-CH-GW" => "Valais", + "1DFH-CH-GWB" => "Zermatt", "1DFH-CH-N" => "Northwest Switzerland", - "1DFH-CH-NA" => "Aargau / Argovie / Argovia", + "1DFH-CH-NA" => "Aargau", + "1DFH-CH-NAB" => "Aarau", "1DFH-CH-NB" => "Basel-Landschaft", + "1DFH-CH-NBL" => "Liestal", "1DFH-CH-ND" => "Basel", "1DFH-CH-P" => "Eastern Switzerland", - "1DFH-CH-PC" => "Appenzell Innerrhoden / Appenzell Rhodes-Intérieures / Appenzello Interno /Appenzell dadens", - "1DFH-CH-PD" => "Appenzell Ausserrhoden / Appenzell Rhodes-Extérieures / Appenzello Esterno / Appenzell dador", - "1DFH-CH-PG" => "Glarus / Glaris / Glarona / Glaruna", - "1DFH-CH-PK" => "Graubünden / Grisons / Grigioni / Grischun", - "1DFH-CH-PN" => "St. Gallen / Saint-Gall / San Gallo / Son Gagl", - "1DFH-CH-PP" => "Schaffhausen / Schaffhouse / Sciaffusa / Schaffusa", - "1DFH-CH-PR" => "Thurgau / Thurgovie / Turgovia / Thurgovia", + "1DFH-CH-PC" => "Appenzell Innerrhoden", + "1DFH-CH-PD" => "Appenzell Ausserrhoden", + "1DFH-CH-PG" => "Glarus", + "1DFH-CH-PK" => "Grisons / Graubünden", + "1DFH-CH-PKA" => "Chur (Coire)", + "1DFH-CH-PKB" => "Davos", + "1DFH-CH-PKM" => "Engadine", + "1DFH-CH-PKMB" => "St. Moritz", + "1DFH-CH-PN" => "St. Gallen / Saint-Gall", + "1DFH-CH-PNH" => "Toggenburg", + "1DFH-CH-PP" => "Schaffhausen / Schaffhouse", + "1DFH-CH-PR" => "Thurgau", + "1DFH-CH-PZ" => "Eastern Switzerland: Places of interest", + "1DFH-CH-PZB" => "Säntis", "1DFH-CH-R" => "Tessin / Ticino", + "1DFH-CH-RA" => "Ascona", + "1DFH-CH-RC" => "Bellinzona", + "1DFH-CH-RE" => "Locarno", + "1DFH-CH-RG" => "Lugano", "1DFH-CH-U" => "Central Switzerland", "1DFH-CH-UL" => "Lucerne", - "1DFH-CH-UN" => "Nidwalden / Nidwald / Nidvaldo / Sutsilvania", - "1DFH-CH-UO" => "Obwalden / Obwald / Obvaldo / Sursilvania", - "1DFH-CH-US" => "Schwyz / Schwytz / Svitto / Sviz", + "1DFH-CH-UN" => "Nidwalden / Nidwald", + "1DFH-CH-UO" => "Obwalden / Obwald", + "1DFH-CH-US" => "Schwyz", "1DFH-CH-UU" => "Uri", - "1DFH-CH-UV" => "Zug / Zoug / Zugo", + "1DFH-CH-UV" => "Zug", + "1DFH-CH-UZ" => "Central Switzerland: Places of interest", + "1DFH-CH-UZD" => "Lake Lucerne", "1DFH-CH-X" => "Zurich", + "1DFH-CH-XB" => "Winterthur", + "1DFH-CH-Z" => "Switzerland: Places of Interest", + "1DFH-CH-ZS" => "Lake Zurich", "1DFL" => "Liechtenstein", "1DN" => "Northern Europe, Scandinavia", "1DNC" => "Iceland", @@ -4122,53 +4459,140 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DNF-FI-SA" => "Rovaniemi", "1DNF-FI-SB" => "Sámi native region of Finland", "1DNN" => "Norway", - "1DNN-NO-D" => "Northern Norway", + "1DNN-NO-D" => "Northern Norway (Nord-Norge)", + "1DNN-NO-DA" => "Troms and Finnmark", "1DNN-NO-DF" => "Finnmark", + "1DNN-NO-DFA" => "Vardø", + "1DNN-NO-DFB" => "Kirkenes", + "1DNN-NO-DFC" => "Alta", + "1DNN-NO-DFD" => "Hammerfest", + "1DNN-NO-DFG" => "Honningsvåg", + "1DNN-NO-DFK" => "North Cape", "1DNN-NO-DFV" => "Vadsø", + "1DNN-NO-DT" => "Troms", + "1DNN-NO-DTB" => "Harstad", + "1DNN-NO-DTD" => "Finnsnes", + "1DNN-NO-DTR" => "Tromsø", "1DNN-NO-DL" => "Nordland", "1DNN-NO-DLB" => "Bodø", + "1DNN-NO-DLD" => "Fauske", + "1DNN-NO-DLF" => "Lofoten and Vesterålen", + "1DNN-NO-DLFA" => "Sortland", + "1DNN-NO-DLFB" => "Stokmarknes", + "1DNN-NO-DLFC" => "Leknes", + "1DNN-NO-DLFD" => "Svolvær", + "1DNN-NO-DLG" => "Helgeland", + "1DNN-NO-DLGA" => "Mo i Rana", + "1DNN-NO-DLGB" => "Mosjøen", + "1DNN-NO-DLGC" => "Sandnessjøen", + "1DNN-NO-DLGD" => "Brønnøysund", "1DNN-NO-DLN" => "Narvik", - "1DNN-NO-DT" => "Troms", - "1DNN-NO-DTR" => "Tromsø", - "1DNN-NO-J" => "Sørlandet", + "1DNN-NO-J" => "Southern Norway (Sørlandet)", + "1DNN-NO-JB" => "Agder", "1DNN-NO-JA" => "Aust-Agder", + "1DNN-NO-JAB" => "Grimstad", + "1DNN-NO-JAC" => "Tvedestrand", + "1DNN-NO-JAD" => "Risør", "1DNN-NO-JAL" => "Arendal", "1DNN-NO-JG" => "Vest-Agder", "1DNN-NO-JGF" => "Farsund", "1DNN-NO-JGK" => "Kristiansand", "1DNN-NO-JGL" => "Lillesand", + "1DNN-NO-JGM" => "Lyngdal", + "1DNN-NO-JGN" => "Mandal", + "1DNN-NO-JGP" => "Flekkefjord", "1DNN-NO-T" => "Trøndelag", "1DNN-NO-TD" => "Nord-Trøndelag", + "1DNN-NO-TDA" => "Levanger", + "1DNN-NO-TDB" => "Namsos", + "1DNN-NO-TDC" => "Kolvereid", + "1DNN-NO-TDD" => "Stjørdal", + "1DNN-NO-TDE" => "Verdal", "1DNN-NO-TDS" => "Steinkjer", "1DNN-NO-TR" => "Sør-Trøndelag", + "1DNN-NO-TRA" => "Orkanger", + "1DNN-NO-TRB" => "Brekstad", + "1DNN-NO-TRC" => "Røros", "1DNN-NO-TRH" => "Trondheim", - "1DNN-NO-V" => "Vestlandet", + "1DNN-NO-V" => "Western Norway (Vestlandet)", + "1DNN-NO-VA" => "Vestland", "1DNN-NO-VH" => "Hordaland", "1DNN-NO-VHB" => "Bergen", - "1DNN-NO-VM" => "Møre og Romsdal", + "1DNN-NO-VHC" => "Stord", + "1DNN-NO-VHD" => "Odda", + "1DNN-NO-VM" => "Møre and Romsdal", "1DNN-NO-VMA" => "Ålesund", + "1DNN-NO-VMB" => "Fosnavåg", + "1DNN-NO-VMD" => "Ulsteinvik", "1DNN-NO-VMK" => "Kristiansund", "1DNN-NO-VML" => "Molde", + "1DNN-NO-VMN" => "Åndalsnes", "1DNN-NO-VR" => "Rogaland", + "1DNN-NO-VRA" => "Bryne", + "1DNN-NO-VRB" => "Eigersund", + "1DNN-NO-VRC" => "Haugesund", + "1DNN-NO-VRD" => "Jørpeland", + "1DNN-NO-VRF" => "Sandnes", + "1DNN-NO-VRG" => "Sauda", + "1DNN-NO-VRH" => "Skudeneshavn", + "1DNN-NO-VRJ" => "Kopervik", + "1DNN-NO-VRK" => "Åkrehamn", "1DNN-NO-VRS" => "Stavanger", - "1DNN-NO-VW" => "Sogn og Fjordane", - "1DNN-NO-X" => "Østlandet", + "1DNN-NO-VW" => "Sogn and Fjordane", + "1DNN-NO-VWA" => "Florø", + "1DNN-NO-VWB" => "Førde", + "1DNN-NO-VWC" => "Måløy", + "1DNN-NO-X" => "Eastern Norway (Østlandet)", + "1DNN-NO-XC" => "Viken", "1DNN-NO-XA" => "Akershus", + "1DNN-NO-XAA" => "Drøbak", + "1DNN-NO-XAB" => "Lillestrøm", + "1DNN-NO-XAC" => "Sandvika", + "1DNN-NO-XAD" => "Ski (NO)", + "1DNN-NO-XAE" => "Jessheim", "1DNN-NO-XB" => "Buskerud", + "1DNN-NO-XBC" => "Hokksund", "1DNN-NO-XBD" => "Drammen", + "1DNN-NO-XBH" => "Hønefoss", + "1DNN-NO-XBK" => "Kongsberg", "1DNN-NO-XF" => "Oslofjorden", + "1DNN-NO-XD" => "Innlandet", "1DNN-NO-XH" => "Hedmark", + "1DNN-NO-XHA" => "Elverum", + "1DNN-NO-XHB" => "Kongsvinger", + "1DNN-NO-XHC" => "Brumunddal", + "1DNN-NO-XHD" => "Moelv", "1DNN-NO-XHR" => "Hamar", "1DNN-NO-XP" => "Oppland", + "1DNN-NO-XPA" => "Fagernes", + "1DNN-NO-XPB" => "Gjøvik", + "1DNN-NO-XPC" => "Otta", + "1DNN-NO-XPD" => "Raufoss", + "1DNN-NO-XPE" => "Vinstra", "1DNN-NO-XPL" => "Lillehammer", "1DNN-NO-XS" => "Oslo", + "1DNN-NO-XR" => "Vestfold and Telemark", "1DNN-NO-XT" => "Telemark", + "1DNN-NO-XTA" => "Kragerø", + "1DNN-NO-XTB" => "Notodden", + "1DNN-NO-XTC" => "Brevik", + "1DNN-NO-XTD" => "Porsgrunn", + "1DNN-NO-XTE" => "Rjukan", + "1DNN-NO-XTF" => "Langesund", + "1DNN-NO-XTG" => "Stathelle", "1DNN-NO-XTK" => "Skien", "1DNN-NO-XV" => "Vestfold", + "1DNN-NO-XVA" => "Holmestrand", + "1DNN-NO-XVB" => "Horten", + "1DNN-NO-XVC" => "Stavern", + "1DNN-NO-XVD" => "Svelvik", + "1DNN-NO-XVF" => "Åsgårdstrand", "1DNN-NO-XVL" => "Larvik", "1DNN-NO-XVN" => "Sandefjord", "1DNN-NO-XVR" => "Tønsberg", "1DNN-NO-XZ" => "Østfold", + "1DNN-NO-XZA" => "Askim", + "1DNN-NO-XZB" => "Mysen", "1DNN-NO-XZF" => "Fredrikstad", "1DNN-NO-XZH" => "Halden", "1DNN-NO-XZM" => "Moss", @@ -4417,7 +4841,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DST-IT-NLS" => "Brescia", "1DST-IT-NLT" => "Mantua", "1DST-IT-NLV" => "Pavia", - "1DST-IT-NLZ" => "Monza & Brianza", + "1DST-IT-NLZ" => "Monza and Brianza", "1DST-IT-NP" => "Piedmont", "1DST-IT-NPA" => "Alessandria", "1DST-IT-NPL" => "Biella", @@ -4446,7 +4870,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DST-IT-NZLG" => "Lake Garda", "1DST-IT-NZLM" => "Lake Maggiore", "1DST-IT-NZLQ" => "Lake Iseo", - "1DST-IT-NZP" => "The Po River & its tributaries", + "1DST-IT-NZP" => "The Po River and its tributaries", "1DST-IT-T" => "Central Italy", "1DST-IT-TG" => "Emilia Romagna", "1DST-IT-TGB" => "Bologna", @@ -4461,7 +4885,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DST-IT-TM" => "Marche", "1DST-IT-TMA" => "Ancona", "1DST-IT-TMF" => "Fermo", - "1DST-IT-TMP" => "Pesaro & Urbino", + "1DST-IT-TMP" => "Pesaro and Urbino", "1DST-IT-TMS" => "Ascoli Piceno", "1DST-IT-TMT" => "Macerata", "1DST-IT-TR" => "Umbria", @@ -4488,11 +4912,11 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DST-IT-TZT" => "Rieti", "1DST-IT-TZV" => "Viterbo", "1DST-IT-TX" => "Central Italy: Places of interest", - "1DST-IT-TXA" => "The Arno river & tributaries", - "1DST-IT-TXC" => "The Tiber river & tributaries", + "1DST-IT-TXA" => "The Arno river and tributaries", + "1DST-IT-TXC" => "The Tiber river and tributaries", "1DST-IT-TXF" => "The Central Apennines", "1DST-IT-TXM" => "Maremma", - "1DST-IT-U" => "Southern Italy & Islands", + "1DST-IT-U" => "Southern Italy and Islands", "1DST-IT-UA" => "Abruzzo", "1DST-IT-UAH" => "Chieti", "1DST-IT-UAP" => "Pescara", @@ -4573,7 +4997,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DST-IT-XTG" => "Mugello", "1DST-IT-XTL" => "Versilia", "1DST-IT-XTN" => "Ciociaria", - "1DST-IT-XU" => "Historical and cultural areas: Southern Italy & islands", + "1DST-IT-XU" => "Historical and cultural areas: Southern Italy and islands", "1DST-IT-XUA" => "Cilento", "1DST-IT-XUC" => "Irpinia", "1DST-IT-XUE" => "Sannio", @@ -4629,7 +5053,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DTH-HU-DS" => "Sopron", "1DTH-HU-DT" => "Székesfehérvár", "1DTH-HU-DV" => "Veszprém", - "1DTH-HU-F" => "Great Plain & the North", + "1DTH-HU-F" => "Great Plain and the North", "1DTH-HU-FD" => "North Hungarian Mountains", "1DTH-HU-FDE" => "Eger", "1DTH-HU-FP" => "Great Hungarian plain", @@ -4659,7 +5083,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DTJ-CZ-XB" => "Bohemia", "1DTJ-CZ-XBF" => "Bohemian Forest", "1DTJ-CZ-XBG" => "Krkonoše / Giant Mountains", - "1DTJ-CZ-XBV" => "Vltava river & tributaries", + "1DTJ-CZ-XBV" => "Vltava river and tributaries", "1DTJ-CZ-XM" => "Moravia", "1DTJ-CZ-XS" => "Czech Silesia", "1DTK" => "Slovakia", @@ -4673,7 +5097,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DTK-SK-V" => "Trnava Region", "1DTK-SK-Y" => "Zilina Region", "1DTK-SK-Z" => "Slovakia: places of interest", - "1DTK-SK-ZV" => "The Vah & tributaries", + "1DTK-SK-ZV" => "The Vah and tributaries", "1DTM" => "Moldova (Moldavia)", "1DTN" => "Ukraine", "1DTN-UA-K" => "Kiev", @@ -4745,10 +5169,10 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DXC-HR-DS" => "Split", "1DXC-HR-DY" => "Zadar", "1DXC-HR-J" => "Istria", - "1DXC-HR-K" => "Kvarner & the Highlands", + "1DXC-HR-K" => "Kvarner and the Highlands", "1DXC-HR-L" => "Lika-Karlovac", "1DXC-HR-S" => "Slavonia", - "1DXD" => "Macedonia (FYR)", + "1DXD" => "North Macedonia", "1DXD-MK-S" => "Skopje", "1DXG" => "Greece", "1DXG-GR-E" => "Central Greece", @@ -4846,16 +5270,17 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DXY-CY-C" => "Nicosia", "1DZ" => "Europe: physical features", "1DZA" => "Europe: rivers, lakes etc", - "1DZAD" => "Danube river & tributaries", - "1DZADT" => "River Tisza & tributaries", - "1DZAR" => "Rhine river & tributaries", + "1DZAD" => "Danube river and tributaries", + "1DZADT" => "River Tisza and tributaries", + "1DZAR" => "Rhine river and tributaries", "1DZARC" => "Lake Constance", - "1DZAV" => "Volga river & tributaries", - "1DZA-DE-E" => "Elbe river & tributaries", - "1DZA-DE-N" => "Oder and Neisse rivers & tributaries", - "1DZA-DE-W" => "Weser river & tributaries", - "1DZA-IT-A" => "Po river & tributaries", - "1DZA-IT-C" => "Arno river & tributaries", + "1DZAV" => "Volga river and tributaries", + "1DZA-CH-L" => "Lake Lugano", + "1DZA-DE-E" => "Elbe river and tributaries", + "1DZA-DE-N" => "Oder and Neisse rivers and tributaries", + "1DZA-DE-W" => "Weser river and tributaries", + "1DZA-IT-A" => "Po river and tributaries", + "1DZA-IT-C" => "Arno river and tributaries", "1DZA-IT-E" => "Tiber river and tributaries", "1DZA-PL-V" => "Vistula river and tributaries", "1DZA-PL-VB" => "Bug River / Western Bug", @@ -4864,16 +5289,30 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1DZTAP" => "Pennine Alps", "1DZTAPM" => "Matterhorn", "1DZTAPR" => "Mont Rosa Massif", + "1DZTA-CH-A" => "Swiss Alps", + "1DZTA-CH-AD" => "Bernese Alps", + "1DZTA-CH-ADA" => "Aletsch", + "1DZTA-CH-ADE" => "Eiger", + "1DZTA-CH-ADJ" => "Jungfrau", + "1DZTA-CH-AG" => "Saint-Gotthard Massif", + "1DZTA-CH-B" => "Val Bregaglia", "1DZTA-FR-B" => "Mont Blanc Massif", "1DZTA-FR-BM" => "Mont Blanc", "1DZTA-SI-C" => "Julian Alps", "1DZTB" => "The Caucasus", "1DZTC" => "Carpathian mountains", + "1DZTCB" => "Beskid Mountains", + "1DZTCBB" => "Bieszczady Mountains", + "1DZTCBP" => "Peniny (Pienin Mountains)", "1DZTCT" => "Tatra Mountains", "1DZTH" => "The Balkans", + "1DZTJ" => "Bohemian Massif", + "1DZTJS" => "Sudetes", + "1DZTJSH" => "Stołowe Mountains", "1DZTP" => "The Pyrenees", "1DZTS" => "Scandinavian Mountains", "1DZTU" => "Ural mountains", + "1DZT-BE-A" => "The Ardennes", "1DZT-DE-A" => "Harz mountains", "1DZT-DE-B" => "Rhön mountains", "1DZT-DE-C" => "Eifel region", @@ -4928,7 +5367,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1FBXU-AE-D" => "Dubai", "1FBXY" => "Yemen", "1FBZ" => "Middle East: places of interest", - "1FBZB" => "Tigris & Euphrates rivers", + "1FBZB" => "Tigris and Euphrates rivers", "1FBZJ" => "Jordan River", "1FBZJD" => "Dead Sea", "1FC" => "Central Asia", @@ -4949,7 +5388,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1FKA-IN-AG" => "Haryana", "1FKA-IN-AH" => "Himachal Pradesh", "1FKA-IN-AHS" => "Shimla / Simla", - "1FKA-IN-AJ" => "Jammu & Kashmir", + "1FKA-IN-AJ" => "Jammu and Kashmir", "1FKA-IN-AP" => "Punjab", "1FKA-IN-APB" => "Amritsar", "1FKA-IN-AR" => "Rajasthan", @@ -4980,8 +5419,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1FKA-IN-GN" => "Tripura", "1FKA-IN-GS" => "Sikkim", "1FKA-IN-J" => "Western India", - "1FKA-IN-JB" => "Dadra & Nagar Haveli", - "1FKA-IN-JD" => "Daman & Diu", + "1FKA-IN-JB" => "Dadra and Nagar Haveli", + "1FKA-IN-JD" => "Daman and Diu", "1FKA-IN-JF" => "Goa", "1FKA-IN-JG" => "Gujarat", "1FKA-IN-JM" => "Maharashtra", @@ -4996,10 +5435,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1FKA-IN-LGB" => "Pondicherry", "1FKA-IN-LJ" => "Tamil Nadu", "1FKA-IN-LJC" => "Chennai", - "class here: Madras" => "201710", "1FKA-IN-LK" => "Telangana", "1FKA-IN-LKH" => "Hyderabad", - "1FKA-IN-LN" => "Andaman & Nicobar Islands", + "1FKA-IN-LN" => "Andaman and Nicobar Islands", "1FKA-IN-LP" => "Lakshadweep", "1FKB" => "Bangladesh", "1FKB-BD-D" => "Dhaka", @@ -5164,11 +5602,11 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1FPM" => "Mongolia", "1FZ" => "Asia: physical features", "1FZA" => "Asia: rivers, lakes etc", - "1FZAG" => "Ganges river & tributaries", - "1FZAJ" => "Indus river & tributaries", - "1FZAM" => "Mekong river & tributaries", - "1FZAX" => "Yangtze river & tributaries", - "1FZAY" => "Yellow river & tributaries", + "1FZAG" => "Ganges river and tributaries", + "1FZAJ" => "Indus river and tributaries", + "1FZAM" => "Mekong river and tributaries", + "1FZAX" => "Yangtze river and tributaries", + "1FZAY" => "Yellow river and tributaries", "1FZT" => "Asia: mountains, hills, plains, coastlines etc", "1FZTA" => "Altai mountains", "1FZTG" => "Gobi desert", @@ -5264,9 +5702,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1HFDT" => "Togo", "1HFDU" => "Guinea", "1HFDU-GN-A" => "Conakry", - "1HFDV" => "Cape Verde", + "1HFDV" => "Cabo Verde (Cape Verde)", "1HFDX" => "Guinea-Bissau", - "1HFDY" => "Ivory Coast", + "1HFDY" => "Côte d’Ivoire (Ivory Coast)", "1HFDY-CI-A" => "Abidjan", "1HFG" => "East Africa", "1HFGA" => "Ethiopia", @@ -5296,15 +5734,15 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1HFJG" => "Gabon", "1HFJQ" => "Equatorial Guinea", "1HFJR" => "Central African Republic", - "1HFJS" => "Sao Tome & Principe", + "1HFJS" => "Sao Tome and Principe", "1HFJZ" => "Democratic Republic of Congo (former Zaire)", "1HFJZ-CD-A" => "Kinshasa", "1HFM" => "Southern Africa", "1HFMA" => "Angola", "1HFMB" => "Botswana", "1HFMB-BW-A" => "Gaborone", - "1HFMB-BW-V" => "Okavango River & Delta", - "1HFMK" => "Swaziland", + "1HFMB-BW-V" => "Okavango River and Delta", + "1HFMK" => "Eswatini (Swaziland)", "1HFML" => "Lesotho", "1HFMM" => "Malawi", "1HFMN" => "Namibia", @@ -5348,14 +5786,14 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1HS-FR-MA" => "Dzaoudzi", "1HZ" => "Africa: physical features", "1HZA" => "Africa: rivers, lakes etc", - "1HZAC" => "Congo river & tributaries", - "1HZAG" => "Niger river & tributaries", + "1HZAC" => "Congo river and tributaries", + "1HZAG" => "Niger river and tributaries", "1HZAM" => "Lake Nyasa / Lake Malawi", - "1HZAN" => "Nile river & tributaries", + "1HZAN" => "Nile river and tributaries", "1HZAS" => "Suez canal", "1HZAT" => "Lake Tanganyika", "1HZAV" => "Lake Victoria", - "1HZAZ" => "Zambesi river & tributaries", + "1HZAZ" => "Zambesi river and tributaries", "1HZAZV" => "Mosi-oa-Tunya / Victoria Falls", "1HZT" => "Africa: mountains, hills, plains, coastlines etc", "1HZTA" => "Atlas mountains", @@ -5364,7 +5802,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1HZTS" => "The Sahara", "1HZTT" => "The Sahel", "1K" => "The Americas", - "1KB" => "North America (USA & Canada)", + "1KB" => "North America (USA and Canada)", "1KBB" => "United States of America, USA", "1KBB-US-M" => "US Midwest", "1KBB-US-ML" => "US Midwest: East North Central (Great Lakes) States", @@ -5524,7 +5962,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBB-US-WMUS" => "Salt Lake City", "1KBB-US-WMUZ" => "Zion National Park", "1KBB-US-WMW" => "Wyoming", - "1KBB-US-WMWC" => "Cheyenne", + "1KBB-US-WMWC" => "Cheyenne (WY)", "1KBB-US-WMWJ" => "Jackson Hole", "1KBB-US-WMWT" => "Grand Teton National Park", "1KBB-US-WMY" => "Yellowstone National Park", @@ -5537,7 +5975,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBB-US-WPCF" => "San Francisco", "1KBB-US-WPCJ" => "San Jose", "1KBB-US-WPCM" => "Monterey", - "1KBB-US-WPCN" => "Napa & Sonoma", + "1KBB-US-WPCN" => "Napa and Sonoma", "1KBB-US-WPCP" => "Palm Springs", "1KBB-US-WPCR" => "Fresno", "1KBB-US-WPCS" => "Sacramento", @@ -5562,7 +6000,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBC-CA-AN" => "Northern Alberta", "1KBC-CA-ANB" => "Northern Alberta: Wood Buffalo and Waterton Lakes National Parks", "1KBC-CA-AND" => "Northern Alberta: Peace River Country (AB)", - "1KBC-CA-ANG" => "Northern Alberta: Alberta’s Rockies & Banff and Jasper National Parks", + "1KBC-CA-ANG" => "Northern Alberta: Alberta’s Rockies and Banff and Jasper National Parks", "1KBC-CA-AS" => "Southern Alberta", "1KBC-CA-ASC" => "Southern Alberta: Calgary Region", "1KBC-CA-ASF" => "Southern Alberta: Edmonton Capital Region", @@ -5592,19 +6030,19 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBC-CA-BFD" => "British Columbia South Coast: Greater Vancouver", "1KBC-CA-BFF" => "British Columbia South Coast: Fraser Valley", "1KBC-CA-BFJ" => "British Columbia South Coast: Sea-to-Sky Corridor", - "1KBC-CA-BFM" => "British Columbia South Coast: Gulf Islands & Gulf Islands National Park Reserve", + "1KBC-CA-BFM" => "British Columbia South Coast: Gulf Islands and Gulf Islands National Park Reserve", "1KBC-CA-BFR" => "British Columbia South Coast: Sunshine Coast", "1KBC-CA-BL" => "British Columbia Vancouver Island", "1KBC-CA-BLC" => "British Columbia Vancouver Island: Greater Victoria", "1KBC-CA-BLK" => "British Columbia Vancouver Island: Mid-Island", "1KBC-CA-BLN" => "British Columbia Vancouver Island: North Island", "1KBC-CA-BLS" => "British Columbia Vancouver Island: West Coast", - "1KBC-CA-BLW" => "British Columbia Vancouver Island: Juan de Fuca region & Pacific Rim National Park Reserve", + "1KBC-CA-BLW" => "British Columbia Vancouver Island: Juan de Fuca region and Pacific Rim National Park Reserve", "1KBC-CA-BP" => "British Columbia Central Coast", "1KBC-CA-BPD" => "British Columbia Central Coast: Queen Charlotte Strait", "1KBC-CA-BPL" => "British Columbia Central Coast: Bella Coola Valley", "1KBC-CA-BT" => "British Columbia North Coast", - "1KBC-CA-BTE" => "British Columbia North Coast: Haida Gwaii & Gwaii Haanas National Park Reserve and Haida Heritage Site", + "1KBC-CA-BTE" => "British Columbia North Coast: Haida Gwaii and Gwaii Haanas National Park Reserve and Haida Heritage Site", "1KBC-CA-BTM" => "British Columbia North Coast: Skeena", "1KBC-CA-BTR" => "British Columbia North Coast: Nass", "1KBC-CA-BTY" => "British Columbia North Coast: Stewart Country", @@ -5619,37 +6057,37 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBC-CA-DF" => "New Brunswick: Fundy National Park", "1KBC-CA-DK" => "New Brunswick: Greater Saint John", "1KBC-CA-DN" => "New Brunswick: Greater Fredericton", - "1KBC-CA-F" => "Newfoundland & Labrador", + "1KBC-CA-F" => "Newfoundland and Labrador", "1KBC-CA-FL" => "Labrador", "1KBC-CA-FLT" => "Labrador: Torngat Mountains National Park", "1KBC-CA-FN" => "Newfoundland", "1KBC-CA-FNA" => "Newfoundland: Avalon Peninsula", "1KBC-CA-FNAJ" => "Newfoundland: Avalon Peninsula: St. John’s", "1KBC-CA-FNC" => "Newfoundland: Burin Peninsula", - "1KBC-CA-FNE" => "Newfoundland: Bonavista Peninsula & Terra Nova National Park", + "1KBC-CA-FNE" => "Newfoundland: Bonavista Peninsula and Terra Nova National Park", "1KBC-CA-FNH" => "Newfoundland: South Coast", - "1KBC-CA-FNK" => "Newfoundland: West Coast & Gros Morne National Park", + "1KBC-CA-FNK" => "Newfoundland: West Coast and Gros Morne National Park", "1KBC-CA-FNM" => "Newfoundland: Great Northern Peninsula", "1KBC-CA-FNR" => "Newfoundland: Northeast Coast", "1KBC-CA-H" => "Northwest Territories", - "1KBC-CA-HL" => "Northwest Territories: Inuvik Region & Tuktut Nogait National Park", + "1KBC-CA-HL" => "Northwest Territories: Inuvik Region and Tuktut Nogait National Park", "1KBC-CA-HP" => "Northwest Territories: Sahtu Region", - "1KBC-CA-HT" => "Northwest Territories: Dehcho Region & Nahanni and Naats’ihch’oh National Park Reserves", + "1KBC-CA-HT" => "Northwest Territories: Dehcho Region and Nahanni and Naats’ihch’oh National Park Reserves", "1KBC-CA-HV" => "Northwest Territories: North Slave Region", "1KBC-CA-HW" => "Northwest Territories: Yellowknife", "1KBC-CA-HX" => "Northwest Territories: South Slave Region", "1KBC-CA-J" => "Nova Scotia", "1KBC-CA-JA" => "Nova Scotia: Annapolis Valley", - "1KBC-CA-JB" => "Nova Scotia: Cape Breton Island & Cape Breton Highlands National Park", + "1KBC-CA-JB" => "Nova Scotia: Cape Breton Island and Cape Breton Highlands National Park", "1KBC-CA-JC" => "Central Nova Scotia", - "1KBC-CA-JD" => "Nova Scotia: Eastern Shore & Sable Island National Park Reserve", + "1KBC-CA-JD" => "Nova Scotia: Eastern Shore and Sable Island National Park Reserve", "1KBC-CA-JH" => "Nova Scotia: Halifax Regional Municipality (HRM)", "1KBC-CA-JK" => "Nova Scotia: North Shore", - "1KBC-CA-JM" => "Nova Scotia: South Shore & Kejimkujik National Park", + "1KBC-CA-JM" => "Nova Scotia: South Shore and Kejimkujik National Park", "1KBC-CA-K" => "Nunavut", "1KBC-CA-KC" => "Nunavut: Kitikmeot Region", - "1KBC-CA-KN" => "Nunavut: Kivalliq Region & Ukkusiksalik National Park", - "1KBC-CA-KQ" => "Nunavut: Qikiqtaaluk Region & Auyuittuq, Sirmilik and Quttinirpaaq National Parks", + "1KBC-CA-KN" => "Nunavut: Kivalliq Region and Ukkusiksalik National Park", + "1KBC-CA-KQ" => "Nunavut: Qikiqtaaluk Region and Auyuittuq, Sirmilik and Quttinirpaaq National Parks", "1KBC-CA-KQT" => "Nunavut: Qikiqtaaluk Region: Iqaluit", "1KBC-CA-O" => "Ontario", "1KBC-CA-OB" => "Northwestern Ontario", @@ -5663,14 +6101,14 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBC-CA-OM" => "Eastern Ontario", "1KBC-CA-OMC" => "Eastern Ontario: Ottawa / National Capital Region", "1KBC-CA-OML" => "Eastern Ontario: Ottawa Valley", - "1KBC-CA-OMT" => "Eastern Ontario: Thousand Islands & St. Lawrence Islands National Park", + "1KBC-CA-OMT" => "Eastern Ontario: Thousand Islands and St. Lawrence Islands National Park", "1KBC-CA-OS" => "Southwestern Ontario", - "1KBC-CA-OSB" => "Southwestern Ontario: Bruce Peninsula & National Park", - "1KBC-CA-OSF" => "Southwestern Ontario: Georgian Triangle & Georgian Bay Islands National Park", + "1KBC-CA-OSB" => "Southwestern Ontario: Bruce Peninsula and National Park", + "1KBC-CA-OSF" => "Southwestern Ontario: Georgian Triangle and Georgian Bay Islands National Park", "1KBC-CA-OSM" => "Southwestern Ontario: Greater Toronto Area", - "1KBC-CA-OSR" => "Southwestern Ontario: Niagara Peninsula & Point Pelee National Park", + "1KBC-CA-OSR" => "Southwestern Ontario: Niagara Peninsula and Point Pelee National Park", "1KBC-CA-P" => "Prince Edward Island", - "1KBC-CA-PM" => "Prince Edward Island: North Shore & Prince Edward Island National Park", + "1KBC-CA-PM" => "Prince Edward Island: North Shore and Prince Edward Island National Park", "1KBC-CA-PR" => "Prince Edward Island: South Shore", "1KBC-CA-PT" => "Prince Edward Island: Summerside Area", "1KBC-CA-PV" => "Prince Edward Island: Charlottetown Area", @@ -5705,7 +6143,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBC-CA-QRN" => "Nunavik", "1KBC-CA-QRU" => "Ungava Bay", "1KBC-CA-QS" => "Quebec: Gaspésie", - "1KBC-CA-QSJ" => "Challeur Bay", + "1KBC-CA-QSJ" => "Chaleur Bay", "1KBC-CA-QT" => "Quebec: Chaudière-Appalaches", "1KBC-CA-QU" => "Quebec: Laval", "1KBC-CA-QV" => "Quebec: Lanaudière", @@ -5721,29 +6159,29 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KBC-CA-SSA" => "Central Saskatchewan: Regina", "1KBC-CA-SSP" => "Central Saskatchewan: Grasslands National Park", "1KBC-CA-U" => "Yukon Territory", - "1KBC-CA-UD" => "Yukon Territory: Northern Yukon, Vuntut & Ivvavik National Parks", + "1KBC-CA-UD" => "Yukon Territory: Northern Yukon, Vuntut and Ivvavik National Parks", "1KBC-CA-UF" => "Yukon Territory: Silver Trail Region", "1KBC-CA-UK" => "Yukon Territory: Klondike Region", - "1KBC-CA-UL" => "Yukon Territory: Kluane Region & Kluane National Park & Reserve", - "1KBC-CA-UO" => "Yukon Territory: Campbell & Watson Lakes Regions", - "1KBC-CA-UW" => "Yukon Territory: Whitehorse & Southern Lakes Regions", + "1KBC-CA-UL" => "Yukon Territory: Kluane Region and Kluane National Park and Reserve", + "1KBC-CA-UO" => "Yukon Territory: Campbell and Watson Lakes Regions", + "1KBC-CA-UW" => "Yukon Territory: Whitehorse and Southern Lakes Regions", "1KBC-CA-Z" => "Canada: Places of interest", "1KBC-CA-ZH" => "Hudson Bay", "1KBZ" => "North America: physical features", "1KBZA" => "North America: rivers, lakes etc", "1KBZAA" => "Great Lakes", "1KBZAAN" => "Niagara Falls", - "1KBZAC" => "Colorado river & tributaries", - "1KBZAG" => "Rio Grande & tributaries", - "1KBZAK" => "Mackenzie river & tributaries", - "1KBZAM" => "Mississippi-Missouri river & tributaries", - "1KBZAS" => "St Lawrence river & tributaries", + "1KBZAC" => "Colorado river and tributaries", + "1KBZAG" => "Rio Grande and tributaries", + "1KBZAK" => "Mackenzie river and tributaries", + "1KBZAM" => "Mississippi-Missouri river and tributaries", + "1KBZAS" => "St Lawrence river and tributaries", "1KBZAS-CA-L" => "Gulf of St Lawrence", - "1KBZAY" => "Yukon river & tributaries", - "1KBZA-US-H" => "Hudson river & tributaries", + "1KBZAY" => "Yukon river and tributaries", + "1KBZA-US-H" => "Hudson river and tributaries", "1KBZA-US-L" => "Great Salt Lake", - "1KBZA-US-O" => "Columbia river & tributaries", - "1KBZA-US-P" => "Potomac river & Chesapeake Bay", + "1KBZA-US-O" => "Columbia river and tributaries", + "1KBZA-US-P" => "Potomac river and Chesapeake Bay", "1KBZT" => "North America: mountains, hills, plains, coastlines etc", "1KBZTA" => "Appalachian Mountains", "1KBZTG" => "Grand Canyon", @@ -5775,14 +6213,14 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KJWB-BS-A" => "Nassau", "1KJWJ" => "Jamaica", "1KJWJ-JM-B" => "Kingston", - "1KJWT" => "Turks & Caicos Islands", + "1KJWT" => "Turks and Caicos Islands", "1KJWV" => "Leeward Islands", "1KJWVA" => "Anguilla", - "1KJWVB" => "Antigua & Barbuda", + "1KJWVB" => "Antigua and Barbuda", "1KJWVG" => "Guadeloupe", "1KJWVG-FR-A" => "Basse Terre", "1KJWVG-FR-B" => "Pointe-à-Pitre", - "1KJWVK" => "Saint Kitts & Nevis", + "1KJWVK" => "Saint Kitts and Nevis", "1KJWVM" => "Montserrat", "1KJWVV" => "Virgin Islands", "1KJWVVK" => "Virgin Islands (UK)", @@ -5797,9 +6235,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KJWWM-FR-B" => "La Trinité", "1KJWWM-FR-C" => "Le Marin", "1KJWWM-FR-D" => "Saint-Pierre", - "1KJWWT" => "Trinidad & Tobago", + "1KJWWT" => "Trinidad and Tobago", "1KJWWT-TT-P" => "Port of Spain", - "1KJWWV" => "Saint Vincent & the Grenadines", + "1KJWWV" => "Saint Vincent and the Grenadines", "1KJX" => "Lesser Antilles", "1KJXA" => "Aruba", "1KJXN" => "Dutch Caribbean", @@ -5811,7 +6249,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KJX-MF-M" => "Saint Martin", "1KJX-SX-M" => "Sint Maarten", "1KL" => "Latin America – Mexico, Central America, South America", - "1KLC" => "Mexico & Central America", + "1KLC" => "Mexico and Central America", "1KLCB" => "Belize", "1KLCG" => "Guatemala", "1KLCG-GT-A" => "Guatemala department", @@ -5994,7 +6432,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KLSC-CO-C" => "Colombia: Caribbean Region", "1KLSC-CO-CB" => "Bolivar (department)", "1KLSC-CO-CBA" => "Cartagena", - "1KLSC-CO-CG" => "San Andres, Providencia & Santa Catalina", + "1KLSC-CO-CG" => "San Andres, Providencia and Santa Catalina", "1KLSC-CO-D" => "Colombia: Orinoco Region", "1KLSC-CO-E" => "Colombia: Pacific Region", "1KLSC-CO-ED" => "Valle del Cauca", @@ -6028,7 +6466,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KLSH-CL-DD" => "Los Lagos Region", "1KLSH-CL-DDA" => "Chiloé Archipelago", "1KLSH-CL-E" => "Zona Austral", - "1KLSH-CL-EA" => "Magallanes & Chilean Antarctica Region", + "1KLSH-CL-EA" => "Magallanes and Chilean Antarctica Region", "1KLSL" => "Bolivia", "1KLSL-BO-A" => "Pando", "1KLSL-BO-B" => "La Paz", @@ -6055,13 +6493,13 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KLSR-PE-BDC" => "Cusco / Cuzco", "1KLSR-PE-BDD" => "La Convención", "1KLSR-PE-BDM" => "Machu Picchu", - "1KLSR-PE-BDV" => "Ausangate & the Cordillera Vilcanota", + "1KLSR-PE-BDV" => "Ausangate and the Cordillera Vilcanota", "1KLSR-PE-C" => "Peru: Northern coastal region", "1KLSR-PE-D" => "Peru: Central coastal region", "1KLSR-PE-DA" => "Ancash region", "1KLSR-PE-DAB" => "Huaraz", - "1KLSR-PE-DAS" => "Cordillera Blanca & Huascaran National Park", - "1KLSR-PE-DAY" => "Yerupaja & Huayhuash", + "1KLSR-PE-DAS" => "Cordillera Blanca and Huascaran National Park", + "1KLSR-PE-DAY" => "Yerupaja and Huayhuash", "1KLSR-PE-DC" => "La Libertad region", "1KLSR-PE-DD" => "Lima region", "1KLSR-PE-DDL" => "Lima", @@ -6090,15 +6528,15 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1KLSV-VE-G" => "Venezuela: Northeast Region", "1KLSV-VE-H" => "Venezuela: Central-western Region", "1KLSV-VE-J" => "Zuliana Region", - "1KLZ" => "South & Central America: physical features", - "1KLZA" => "South & Central America: rivers, lakes etc", - "1KLZAA" => "Amazon river & tributaries", + "1KLZ" => "South and Central America: physical features", + "1KLZA" => "South and Central America: rivers, lakes etc", + "1KLZAA" => "Amazon river and tributaries", "1KLZAC" => "Panama canal", "1KLZAO" => "Orinoco River", - "1KLZAP" => "Paraná-Río de la Plata & tributaries", - "1KLZAPF" => "Iguazu Falls & river", + "1KLZAP" => "Paraná-Río de la Plata and tributaries", + "1KLZAPF" => "Iguazu Falls and river", "1KLZAT" => "Lake Titicaca", - "1KLZT" => "South & Central America: mountains, hills, plains, coastlines etc", + "1KLZT" => "South and Central America: mountains, hills, plains, coastlines etc", "1KLZTA" => "Andes mountains", "1KLZTAB" => "Altiplano / Andean plateau", "1KLZTG" => "Galapagos Islands", @@ -6125,11 +6563,11 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1MBN" => "New Zealand", "1MBZ" => "Australasia: physical features", "1MBZA" => "Australasia: rivers, lakes etc", - "1MBZAD" => "Murray-Darling river & tributaries", + "1MBZAD" => "Murray-Darling river and tributaries", "1MBZT" => "Australasia: mountains, hills, plains, coastlines etc", "1MBZTB" => "Great Dividing Range mountains", "1MBZTD" => "Great Barrier Reef", - "1MBZTU" => "Uluru & The Outback", + "1MBZTU" => "Uluru and The Outback", "1MK" => "Oceania", "1MKC" => "Micronesia", "1MKCB" => "Palau", @@ -6165,7 +6603,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1MKPT" => "Tonga", "1MKPU" => "Tokelau", "1MKPV" => "Tuvalu", - "1MKPW" => "Wallis & Futuna", + "1MKPW" => "Wallis and Futuna", "1MKPW-FR-M" => "Mata-Utu", "1MT" => "Atlantic Ocean islands / Polar regions", "1MTA" => "Atlantic Ocean islands", @@ -6174,7 +6612,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1MTANC" => "The Canary Islands", "1MTANM" => "Madeira", "1MTANZ" => "Azores", - "1MTAN-FR-P" => "Saint Pierre & Miquelon", + "1MTAN-FR-P" => "Saint Pierre and Miquelon", "1MTAS" => "South Atlantic islands", "1MTASC" => "Ascension Island", "1MTASF" => "Falklands", @@ -6194,8 +6632,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1MTN-NO-J" => "Jan Mayen", "1MTN-NO-S" => "Svalbard", "1MTS" => "Antarctica", - "1Q" => "Other geographical groupings: Oceans & seas, historical, political etc", - "1QB" => "Historical states, empires & regions", + "1Q" => "Other geographical groupings: Oceans and seas, historical, political etc", + "1QB" => "Historical states, empires and regions", "1QBA" => "Ancient World", "1QBAA" => "Assyrian Empires", "1QBAB" => "Babylonia", @@ -6209,14 +6647,16 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1QBAR" => "Ancient Rome", "1QBAS" => "Sumer", "1QBAT" => "Etruria", - "1QBC" => "Historical states & empires: multi-continental", + "1QBC" => "Historical states and empires: multi-continental", "1QBCB" => "Byzantine Empire", "1QBCE" => "Islamic Caliphate", "1QBCL" => "Mongol Empire", "1QBCS" => "Ottoman Empire", "1QBCU" => "British Empire", + "1QBCV" => "Spanish Empire", + "1QBCW" => "Portuguese Empire", "1QBC-FR-C" => "French Colonial Empire", - "1QBD" => "Historical states & empires: Europe", + "1QBD" => "Historical states and empires: Europe", "1QBDA" => "Austro-Hungarian Empire", "1QBDF" => "Holy Roman Empire", "1QBDK" => "Czechoslovakia", @@ -6226,14 +6666,16 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1QBDR" => "USSR, Soviet Union", "1QBDT" => "Russian tsarist empire", "1QBDY" => "Yugoslavia", + "1QBD-BE-B" => "Burgundian Netherlands / the Seventeen Provinces", + "1QBD-BE-C" => "Southern Netherlands", "1QBD-FR-G" => "Gaul", "1QBD-FR-L" => "Carolingian Empire", "1QBD-FR-N" => "Napoleonic Empire", - "1QBD-FR-Z" => "France: Historical & cultural regions", - "1QBF" => "Historical states & empires: Asia", - "1QBH" => "Historical states & empires: Africa", + "1QBD-FR-Z" => "France: Historical and cultural regions", + "1QBF" => "Historical states and empires: Asia", + "1QBH" => "Historical states and empires: Africa", "1QBHK" => "Ashanti Kingdoms", - "1QBK" => "Historical states & empires: Americas", + "1QBK" => "Historical states and empires: Americas", "1QBKC" => "Confederate States of America", "1QBKL" => "Inca Empire / Incas", "1QBKM" => "Mesoamerican civilisations", @@ -6242,10 +6684,13 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1QBK-CA-Q" => "New France", "1QBK-CA-QA" => "New France: Acadia", "1QBK-CA-QL" => "New France: French Louisiana", - "1QBM" => "Historical states & empires: Australasia, Oceania & other land areas", - "1QF" => "Political, socio-economic, cultural & strategic groupings", + "1QBK-CO-B" => "Gran Colombia", + "1QBK-CO-C" => "Nueva Granada (New Granada)", + "1QBM" => "Historical states and empires: Australasia, Oceania and other land areas", + "1QF" => "Political, socio-economic, cultural and strategic groupings", "1QFA" => "Arab world / Arab League", "1QFAM" => "Maghreb", + "1QFB" => "African Union", "1QFC" => "Commonwealth of Nations", "1QFE" => "EU (European Union)", "1QFG" => "Developing countries", @@ -6255,6 +6700,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1QFN" => "NATO", "1QFP" => "OPEC", "1QFS" => "ASEAN", + "1QFT" => "Mercosur / Mercosul", "1QFU" => "United Nations", "1QFW" => "Warsaw Pact, Eastern bloc", "1QF-CA-A" => "Atlantic Canada (NB, PE, NS, NL)", @@ -6270,7 +6716,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1QR" => "Groupings linked by seas", "1QRM" => "Mediterranean countries", "1QRP" => "Pacific Rim countries", - "1QS" => "Oceans & seas", + "1QS" => "Oceans and seas", "1QSA" => "Atlantic Ocean", "1QSAN" => "North Atlantic", "1QSAS" => "South Atlantic", @@ -6296,7 +6742,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1QSR" => "Arctic Ocean", "1QSS" => "Southern Ocean", "1QST" => "Tasman Sea", - "1Z" => "Space, planets & extraterrestrial locations", + "1Z" => "Space, planets and extraterrestrial locations", "1ZM" => "The Solar System", "1ZMA" => "The Sun", "1ZMC" => "The Planets", @@ -6310,17 +6756,19 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "1ZMCM" => "Uranus", "1ZMCN" => "Neptune", "1ZMG" => "Other entities in the Solar System", - "1ZMGP" => "Pluto & dwarf planets", + "1ZMGP" => "Pluto and dwarf planets", "1ZMGR" => "Comets", "1ZMGT" => "Asteroids, the Asteroid belt", + "2" => "Language qualifiers", "2A" => "Indo-European languages", - "2AC" => "Germanic & Scandinavian languages", + "2AC" => "Germanic and Scandinavian languages", "2ACB" => "English", "2ACBA" => "Anglo-Saxon / Old English", "2ACBC" => "Middle English", "2ACBK" => "American English", "2ACBM" => "Australian English", "2ACBR" => "Canadian English", + "2ACBX" => "International English", "2ACC" => "Scots (Lallans, the Doric)", "2ACCU" => "Ulster Scots (Ullans)", "2ACD" => "Dutch", @@ -6341,13 +6789,16 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2ACSW" => "Swedish", "2ACSX" => "Old Norse", "2ACY" => "Yiddish", - "2ACZ" => "Other Germanic languages & dialects", + "2ACZ" => "Other Germanic languages and dialects", "2ACZF" => "Frisian", - "2AD" => "Romance, Italic & Rhaeto-Romanic languages", + "2ACZH" => "Low German / Low Saxon", + "2ACZL" => "Luxembourgish / Letzeburgesch", + "2AD" => "Romance, Italic and Rhaeto-Romanic languages", "2ADC" => "Catalan", "2ADD" => "Valencian", "2ADF" => "French", - "2ADFP" => "Provencal", + "2ADFC" => "Norman language", + "2ADFP" => "Franco-Provençal", "2ADFQ" => "Canadian French", "2ADFQ-CA-A" => "Acadian French", "2ADFQ-CA-C" => "Quebec French (Quebecois)", @@ -6359,10 +6810,13 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2ADR" => "Romanian", "2ADS" => "Spanish", "2ADSL" => "Latin-American Spanish", + "2ADSR" => "Judeo-Spanish / Ladino", "2ADT" => "Italian", "2ADTX" => "Italian dialects", "2ADV" => "Sardinian", - "2ADW" => "Ladin languages", + "2ADW" => "Rhaeto-Romance (Rhaetian) languages", + "2ADWD" => "Ladin", + "2ADWR" => "Romansh", "2AD-ES-G" => "Aragonese", "2AD-ES-N" => "Aranese", "2AD-ES-T" => "Asturian", @@ -6381,6 +6835,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2AGK" => "Slovak", "2AGL" => "Belarusian (Belorussian)", "2AGM" => "Macedonian", + "2AGN" => "Rusyn", "2AGP" => "Polish", "2AGR" => "Russian", "2AGS" => "Serbo-Croatian", @@ -6394,14 +6849,14 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2AHA" => "Ancient (Classical) Greek", "2AHB" => "Biblical Greek", "2AHM" => "Modern Greek", - "2AJ" => "Baltic & other Indo-European languages", + "2AJ" => "Baltic and other Indo-European languages", "2AJB" => "Baltic languages", "2AJBL" => "Lithuanian", "2AJBV" => "Latvian (Lettish)", "2AJK" => "Other Indo-European languages", "2AJKL" => "Albanian", "2AJKR" => "Armenian", - "2B" => "Indic, East Indo-European & Dravidian languages", + "2B" => "Indic, East Indo-European and Dravidian languages", "2BB" => "Early Indic languages", "2BBA" => "Sanskrit", "2BBP" => "Pali", @@ -6447,7 +6902,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2CXH" => "Hausa", "2CXS" => "Somali", "2CXSR" => "Oromo", - "2F" => "Ural-Altaic & Hyperborean languages", + "2F" => "Ural-Altaic and Hyperborean languages", "2FC" => "Finno-Ugric languages", "2FCD" => "Estonian", "2FCF" => "Finnish (Suomi)", @@ -6459,6 +6914,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2FCLS" => "Skolt Sami", "2FCLX" => "Sami languages (other)", "2FCM" => "Hungarian (Magyar)", + "2FCU" => "Uralic / Uralian languages", "2FM" => "Turkic languages", "2FMC" => "Turkish", "2FMH" => "Kirghiz", @@ -6470,8 +6926,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2FW" => "Tungusic languages", "2FWK" => "Evenki", "2FWM" => "Manchu", - "2FX" => "Hyperborean & Palaeosiberian languages", - "2G" => "East & Southeast Asian languages", + "2FX" => "Hyperborean and Palaeosiberian languages", + "2G" => "East and Southeast Asian languages", "2GD" => "Sino-Tibetan languages", "2GDB" => "Burmese", "2GDC" => "Chinese", @@ -6514,7 +6970,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2HCBLR" => "Nyankore (Runyankore-Rukiga)", "2HCBM" => "Fang (Yaunde-Fang)", "2HCBN" => "Duala", - "2HCBP" => "Tshivenda & Venda group", + "2HCBP" => "Tshivenda and Venda group", "2HCBQ" => "Shona", "2HCBS" => "Sotho-Tswana group", "2HCBSA" => "Sesotho (Sotho, Sesotho sa Leboa, Southern Sotho)", @@ -6526,7 +6982,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2HCBX" => "isiXhosa (Xhosa)", "2HCBY" => "isiNdebele (Ndebele)", "2HCBZ" => "isiZulu (Zulu)", - "2HCW" => "West Atlantic & Volta Congo languages", + "2HCW" => "West Atlantic and Volta Congo languages", "2HCWF" => "Fulani (Fulah)", "2HCWV" => "Volta-Congo languages", "2HCWVB" => "Ibo (Igbo)", @@ -6538,34 +6994,88 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2HCWVT" => "Akwapim Twi", "2HCWVY" => "Yoruba", "2HK" => "Khoisan languages", - "2HN" => "Nilo-Saharan & Chari-Nile (Macrosudanic) languages", + "2HN" => "Nilo-Saharan and Chari-Nile (Macrosudanic) languages", "2HND" => "Dinka", "2HNM" => "Masai", "2HNR" => "Nubian", "2HNT" => "Teso (Ateso)", "2HX" => "Other African languages", "2J" => "American indigenous languages", - "2JN" => "North & Central American indigenous languages", + "2JN" => "North and Central American indigenous languages", "2JNA" => "Aleut", - "2JNB" => "Inuit", - "2JNBK" => "Inuktitut", - "2JNC" => "Algonkian (Algonquin) languages", - "2JNCE" => "Cree", - "2JNCJ" => "Ojibway", - "2JND" => "Na-Dene & Athapascan (Athabascan) languages", - "2JNG" => "Iroquoian & Siouan languages", - "2JNM" => "Mayan", + "2JNB" => "Inuit languages", + "2JNBK" => "Inuktitut / Inuktut", + "2JNBL" => "Inuinnaqtun", + "2JNBM" => "Inupiaq", + "2JNBN" => "Yupik languages", + "2JNBR" => "Kalaallisut / Greenlandic", + "2JNC" => "Algonquian languages", + "2JNCA" => "Siksika", + "2JNCB" => "Arapaho", + "2JNCC" => "Cheyenne", + "2JNCE" => "Cree languages", + "2JNCEA" => "Plains Cree", + "2JNCEB" => "Woods Cree", + "2JNCEC" => "Swampy Cree", + "2JNCED" => "East Cree", + "2JNCF" => "Naskapi", + "2JNCG" => "Innu-aimun / Montagnais", + "2JNCH" => "Atikamekw", + "2JNCJ" => "Ojibwe / Ojibwa / Ojibway", + "2JNCJB" => "Chippewa", + "2JNCJC" => "Ottawa / Odawa", + "2JNCJD" => "Oji-Cree / Severn Ojibwa", + "2JNCK" => "Algonquin / Algonkin", + "2JNCL" => "Potawatomi", + "2JNCM" => "Mesquakie-Sauk-Kickapoo", + "2JNCN" => "Shawnee", + "2JNCP" => "Miami / Myaamia", + "2JNCQ" => "Mi’kmaq / Micmac", + "2JNCR" => "Abnaki / Abenaki", + "2JNCS" => "Malecite-Passamaquoddy", + "2JNCT" => "Delaware / Lenape languages", + "2JND" => "Na-Dene languages", + "2JNDB" => "Tlingit", + "2JNDD" => "Athabaskan (Dene) languages", + "2JNDDB" => "Northern Athabaskan languages", + "2JNDDBK" => "Slavey languages", + "2JNDDBP" => "Dogrib", + "2JNDDBR" => "Chipewyan / Dene Suline", + "2JNDDH" => "Apachean (Southern Athabaskan) languages", + "2JNDDHJ" => "Navajo / Navaho", + "2JNE" => "Kutenai", + "2JNF" => "Salishan languages", + "2JNFB" => "Nuxalk / Bella Coola", + "2JNFC" => "Comox", + "2JNFD" => "Halkomelem", + "2JNFG" => "Squamish", + "2JNFH" => "Shuswap", + "2JNFM" => "Lillooet", + "2JNFR" => "Ntlakyapamuk / Thompson", + "2JNFT" => "Okanagan", + "2JNG" => "Iroquoian languages", + "2JNGC" => "Cherokee", + "2JNGM" => "Mohawk", + "2JNGW" => "Wyandot / Wendat – Huron", + "2JNH" => "Siouan–Catawban languages", + "2JNHB" => "Sioux / Dakota language", + "2JNJ" => "Haida languages", + "2JNK" => "Wakashan languages", + "2JNL" => "Tsimshianic languages", + "2JNM" => "Mayan languages", "2JNN" => "Uto-Aztecan languages", + "2JNNA" => "Nahuatl languages", + "2JNP" => "Oto-Manguean languages", "2JNZ" => "Zuni", - "2JS" => "South American & Caribbean indigenous languages", - "2JSC" => "Carib (Cariban)", - "2JSG" => "Guarani", - "2JSQ" => "Quechuan", - "2P" => "Oceanic & Austronesian languages", + "2JS" => "South American and Caribbean indigenous languages", + "2JSC" => "Cariban languages", + "2JSG" => "Tupian and Guarani languages", + "2JSQ" => "Quechuan languages", + "2P" => "Oceanic and Austronesian languages", "2PB" => "Australian Aboriginal languages", "2PC" => "Papuan languages", "2PCS" => "Susuami", - "2PG" => "Austronesian & Malayo-Polynesian languages", + "2PG" => "Austronesian and Malayo-Polynesian languages", "2PGB" => "Formosan (Taiwanese)", "2PGG" => "Malagasy", "2PGJ" => "Tagalog (Filipino)", @@ -6574,7 +7084,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2PGNC" => "Balinese", "2PGND" => "Javanese", "2PGNM" => "Malay (Bahasa Malaysia)", - "2PGP" => "Oceanic & Polynesian languages", + "2PGP" => "Oceanic and Polynesian languages", "2PGPA" => "Maori language", "2PGPF" => "Fijian", "2PGPG" => "Tongan", @@ -6588,89 +7098,133 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "2PGPXN" => "Ponapean", "2PGPXP" => "Palauan", "2PGPXT" => "Tokelauan", + "2S" => "Sign / Signed languages", "2Z" => "Other languages", "2ZB" => "Basque", "2ZC" => "Caucasian languages", "2ZCG" => "Georgian", "2ZM" => "Sumerian", - "2ZP" => "Pidgins & Creoles", + "2ZP" => "Pidgins and Creoles", + "2ZPE" => "English-based creoles", + "2ZPF" => "French-based creoles", "2ZPT" => "Tok Pisin", "2ZX" => "Artificial languages", "2ZXA" => "Afrihili", "2ZXC" => "Occidental", "2ZXP" => "Esperanto", "2ZXT" => "Interlingua", + "3" => "Time period qualifiers", + "3A" => "Geological time", + "3AC" => "Cenozoic era", + "3AM" => "Mesozoic era", + "3AP" => "Palaeozoic era", + "3AR" => "Proterozoic eon", + "3AT" => "Archean and Hadean eons", "3B" => "Prehistory", "3BD" => "Stone Age", "3BDF" => "Stone Age: Palaeolithic period", "3BDK" => "Stone Age: Mesolithic period", "3BDQ" => "Stone Age: Neolithic period", - "3BD-JP-J" => "c 16500 to c 1000 BCE (Japanese Jomon period)", + "3BD-JP-J" => "c 16,500 to c 1000 BCE (Japanese Jomon period)", "3BL" => "Bronze Age", "3BR" => "Iron Age", - "3B-AA-E" => "Egypt: Predynastic & Early Dynastic periods (c 5500 to c 2700 BCE)", + "3B-AA-E" => "c 5500 to c 2700 BCE (Egyptian Predynastic and Early Dynastic period)", "3C" => "BCE period – Protohistory", "3CD" => "c 4000 to c 3000 BCE", + "3CDA" => "c 4000 to c 3500 BCE", + "3CDB" => "c 3500 to c 3000 BCE", "3CG" => "c 3000 to c 2000 BCE", + "3CGA" => "c 3000 to c 2500 BCE", + "3CGB" => "c 2500 to c 2000 BCE", "3CJ" => "c 2000 to c 1000 BCE", + "3CJA" => "c 2000 to c 1500 BCE", + "3CJB" => "c 1500 BCE to c 1000 BCE", "3CT" => "c 1000 BCE to start of CE period", - "3CT-DE-A" => "Germany: the ancient / classical world (c 800 BCE to c 500 CE)", - "3CT-ES-A" => "Spain: Ancient History (up to c 200 BCE)", - "3CT-ES-B" => "Spain: Roman History (c 200 BCE to c 400 CE)", - "3CT-IT-A" => "Ancient Italy (c 1000 to c 500 BCE)", + "3CTA" => "c 1000 to c 500 BCE", + "3CTB" => "c 500 BCE to c 1BCE", + "3CTBA" => "5th century, c 499 to c 400 BCE", + "3CTBB" => "4th century, c 399 to c 300 BCE", + "3CTBC" => "3rd century, c 299 to c 200 BCE", + "3CTBD" => "2nd century, c 199 to c 100 BCE", + "3CTBE" => "1st century, c 99 to c 1 BCE", + "3CT-DE-A" => "c 800 BCE to c 500 CE (Ancient and Classical period – Germany, Central and Eastern Europe)", + "3CT-ES-A" => "Before c 200 BCE (Spanish period of Antiquity)", + "3CT-ES-B" => "c 200 BCE to c 400 CE (Spanish Roman period)", + "3CT-IT-A" => "c 1000 to c 500 BCE (Italian period of Antiquity)", "3CT-JP-Y" => "c 1000 BCE to 300 CE (Japanese Yayoi period)", - "3C-AA-E" => "Ancient Egypt (c 2686 BCE to c 323 BCE)", + "3C-AA-E" => "c 2686 to c 323 BCE (Ancient Egyptian period)", "3K" => "CE period up to c 1500", - "3KB" => "c 1 CE to c 500 CE", + "3KB" => "c 1 to c 500 CE", "3KBF" => "1st century, c 1 to c 99", "3KBK" => "2nd century, c 100 to c 199", "3KBN" => "3rd century, c 200 to c 299", "3KBW" => "4th century, c 300 to c 399", "3KBY" => "5th century, c 400 to c 499", - "3KB-AA-E" => "Egypt: Classical Antiquity (c 332 BCE to c 630 CE)", - "3KB-GB-A" => "Roman Britain (c 43 BCE to c 410 CE)", + "3KB-AA-E" => "c 332 BCE to c 630 CE (Egyptian Greco-Roman period)", + "3KB-GB-A" => "c 43 BCE to c 410 CE (period of Roman Britain / Britannia)", "3KB-JP-K" => "c 300 CE to 591 (Japanese Kofun period)", - "3KH" => "c 500 CE to c 1000 CE", + "3KH" => "c 500 to c 1000 CE", "3KHF" => "6th century, c 500 to c 599", + "3KHFB" => "Early 6th century, c 500 to c 550", + "3KHFQ" => "Later 6th century, c 550 to c 599", "3KHK" => "7th century, c 600 to c 699", - "3KHK-JP-A" => "592 CE to 710 CE (Japanese Asuka period)", + "3KHKB" => "Early 7th century, c 600 to c 650", + "3KHKQ" => "Later 7th century, c 650 to c 699", + "3KHK-JP-A" => "c 592 to 710 (Japanese Asuka period)", "3KHN" => "8th century, c 700 to c 799", - "3KHN-JP-N" => "710 to 784 (Japanese Nara period)", + "3KHNB" => "Early 8th century, c 700 to c 750", + "3KHNQ" => "Later 8th century, c 750 to c 799", + "3KHN-JP-N" => "710 to c 784 (Japanese Nara period)", "3KHW" => "9th century, c 800 to c 899", + "3KHWB" => "Early 9th century, c 800 to c 850", + "3KHWQ" => "Later 9th century, c 850 to c 899", "3KHY" => "10th century, c 900 to c 999", - "3KH-AA-E" => "Mediaeval Egypt (c 630 to c 1517)", - "3KH-DK-H" => "Denmark: the Viking Age (c 800 to c 1050)", - "3KH-ES-A" => "Spain: Germanic and visigothic invasions (c 400 to c 600)", - "3KH-GB-B" => "Anglo-Saxon period (c 400 to c 1066)", - "3KH-IE-S" => "Early Christian Ireland (c 400 to c 800)", - "3KH-IE-V" => "Viking Ireland (c 800 to c 1014)", - "3KH-IT-C" => "Italy: from Germanic Kingdoms to Franks (c 500 to c 1000)", - "3KH-JP-H" => "785 to 1068 (Japanese Early and Middle Heian period)", - "3KH-SE-H" => "Sweden: the Viking Age (c 800 to c 1050)", + "3KHYB" => "Early 10th century, c 900 to c 950", + "3KHYQ" => "Later 10th century, c 950 to c 999", + "3KH-AA-E" => "c 630 to c 1517 (Egyptian medieval period)", + "3KH-DK-H" => "c 800 to c 1050 (Danish Viking age)", + "3KH-ES-A" => "c 400 to c 600 (period of Germanic and Visigoth invasions of Spain)", + "3KH-GB-B" => "c 400 to c 1066 (Anglo-Saxon period)", + "3KH-IE-S" => "c 400 to c 800 (Early Irish Christian period)", + "3KH-IE-V" => "c 800 to c 1014 (Irish Viking age)", + "3KH-IT-C" => "c 500 to c 1000 (period of Germanic and Frankish Kingdoms in Italy)", + "3KH-JP-H" => "c 785 to c 1068 (Japanese Early and Middle Heian period)", + "3KH-SE-H" => "c 800 to c 1050 (Swedish Viking age)", "3KL" => "c 1000 CE to c 1500", "3KLF" => "11th century, c 1000 to c 1099", + "3KLFB" => "Early 11th century c 1000 to c 1050", + "3KLFQ" => "Later 11th century c 1050 to c 1099", "3KLK" => "12th century, c 1100 to c 1199", - "3KLK-JP-H" => "1068 to 1185 (Japanese Late Heian period)", + "3KLKB" => "Early 12th century c 1100 to c 1150", + "3KLKQ" => "Later 12th century c 1150 to c 1199", + "3KLK-JP-H" => "c 1068 to 1185 (Japanese Late Heian period)", "3KLN" => "13th century, c 1200 to c 1299", - "3KLN-GB-E" => "English conquest of Wales (c 1277 to c 1283)", - "3KLN-JP-K" => "1185 to 1333 (Japanese Kamakura period)", + "3KLNB" => "Early 13th century c 1200 to c 1250", + "3KLNQ" => "Later 13th century c 1250 to c 1299", + "3KLNQ-BE-B" => "1297–1305 (period of the Franco-Flemish War)", + "3KLN-GB-E" => "c 1200 to c 1283 (period of High Middle Ages in Wales and English conquest)", + "3KLN-JP-K" => "1185–1333 (Japanese Kamakura period)", "3KLW" => "14th century, c 1300 to c 1399", - "3KLW-JP-C" => "1333 to 1392 (Japanese Northern and Southern Court period)", + "3KLWB" => "Early 14th century c 1300 to c 1350", + "3KLWQ" => "Later 14th century c 1350 to c 1399", + "3KLW-JP-C" => "c 1333 to 1392 (Japanese Northern and Southern Court period)", "3KLY" => "15th century, c 1400 to c 1499", - "3KLY-GB-F" => "Wars of the Roses (c 1455 to c 1487)", - "3KLY-IT-E" => "Italy: Renaissance (c 1400 to c 1499)", - "3KLY-JP-M" => "1392 to 1573 (Japanese Muromachi period)", - "3KLY-PL-A" => "Period of the Jagiellonian dynasty 1386–1572", - "3KL-GB-C" => "Norman Conquest & Norman period (1066–1154)", - "3KL-GB-D" => "The Plantagenet & mediaeval period (1154–1485)", - "3KL-IE-N" => "Norman Ireland (1169 to c 1350)", - "3KL-IT-D" => "Italy: Communes, ‘Signorie’ (c 1000 to c 1400)", - "3KL-PL-A" => "Period of the Piast dynasty 960–1370", - "3KL-SE-J" => "Sweden: Middle Ages (c 1050 to c 1520)", - "3K-ES-A" => "Spain: Middle Ages (c 400 to c 1492)", - "3K-ES-B" => "Spain: Arab presence (711–1492)", - "3K-ES-C" => "Spain: ‘Reconquista’ (711–1492)", - "3K-IT-B" => "Italy: c 500 BCE to c 1500 CE", + "3KLYB" => "Early 15th century c 1400 to c 1450", + "3KLYQ" => "Later 15th century c 1450 to c 1499", + "3KLY-GB-F" => "c 1455 to c 1487 (period of the English Wars of the Roses)", + "3KLY-IT-E" => "c 1400 to c 1499 (period of the Italian Renaissance)", + "3KLY-JP-M" => "c 1392 to 1573 (Japanese Muromachi period)", + "3KLY-PL-A" => "1385–1572 (Period of the Jagiellonian dynasty)", + "3KL-GB-C" => "c 1000 to c 1170 (Norman period)", + "3KL-GB-D" => "c 1154 to c 1485 (Plantagenet and Angevin period)", + "3KL-IE-N" => "1169 to c 1350 (Irish Norman and medieval period)", + "3KL-IT-D" => "c 1000 to c 1400 (Italian period of Communes, ‘Signorie’)", + "3KL-PL-A" => "c 960 to 1370 (period of the Piast dynasty)", + "3KL-SE-J" => "c 1050 to c 1520 (Swedish medieval period)", + "3K-ES-A" => "c 400 to c 1492 (Spanish medieval period)", + "3K-ES-B" => "711–1492 (period of Arab presence in Spain)", + "3K-ES-C" => "711–1492 (period of the ‘Reconquista’)", + "3K-IT-B" => "c 500 BCE to c 1500 CE (Italian ancient and medieval period)", "3M" => "c 1500 onwards to present day", "3MD" => "16th century, c 1500 to c 1599", "3MDB" => "Early 16th century c 1500 to c 1550", @@ -6685,12 +7239,13 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "3MDQV" => "c 1570 to c 1579", "3MDQX" => "c 1580 to c 1589", "3MDQZ" => "c 1590 to c 1599", - "3MDQ-JP-A" => "1573 to 1600 (Japanese Azuchi Momoyama period)", - "3MD-CA-A" => "North America: New France (1534–1763)", - "3MD-GB-G" => "Tudor period (1485–1603)", - "3MD-GB-GE" => "Elizabethan era (1558–1603)", - "3MD-IE-P" => "Plantations of Ireland (1556–1663)", - "3MD-SE-L" => "Sweden: the Vasa era (c 1520 to c 1611)", + "3MDQ-JP-A" => "c 1573 to 1600 (Japanese Azuchi Momoyama period)", + "3MDQ-NL-D" => "1566–1648 (period of the Eighty Years’ War)", + "3MD-CA-A" => "1534–1763 (period of New France / Nouvelle-France)", + "3MD-GB-G" => "1485–1603 (Tudor period)", + "3MD-GB-GE" => "1558–1603 (Elizabethan period)", + "3MD-IE-P" => "c 1556 to c 1663 (period of the Plantations of Ireland)", + "3MD-SE-L" => "c 1520 to 1654 (period of the Vasa dynasty)", "3MG" => "17th century, c 1600 to c 1699", "3MGB" => "Early 17th century c 1600 to c 1650", "3MGBA" => "c 1600 to c 1609", @@ -6698,21 +7253,22 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "3MGBH" => "c 1620 to c 1629", "3MGBJ" => "c 1630 to c 1639", "3MGBL" => "c 1640 to c 1649", - "3MGB-GB-H" => "Jacobean & Early Stuart era (1603–1649)", + "3MGB-GB-H" => "1603–1649 (Jacobean and Early Stuart period)", + "3MGB-DE-B" => "c 1618 to c 1648 (period of the Thirty Years War)", "3MGQ" => "Later 17th century c 1650 to c 1699", "3MGQM" => "c 1650 to c 1659", - "3MGQM-GB-J" => "British Civil Wars & Interregnum (c 1639 to 1660)", - "3MGQM-IE-C" => "Cromwellian conquest of Ireland (1649–1653)", + "3MGQM-GB-J" => "c 1639 to 1660 (Interregnum and the period of the British Civil Wars)", + "3MGQM-IE-C" => "1649–1653 (period of Cromwellian conquest of Ireland)", "3MGQS" => "c 1660 to c 1669", - "3MGQS-GB-K" => "The Restoration & Later Stuart era (1660–1714)", + "3MGQS-GB-K" => "1660 to 1714 (Restoration and the Later Stuart period)", "3MGQV" => "c 1670 to c 1679", "3MGQX" => "c 1680 to c 1689", - "3MGQX-GB-M" => "The Glorious Revolution (1688–1689)", + "3MGQX-GB-M" => "1688 to c 1691 (period of William III and the Wars of British Succession)", "3MGQZ" => "c 1690 to c 1699", - "3MG-IT-G" => "Italy: Spanish domination (1559–1714)", - "3MG-PL-A" => "Period of the Polish-Lithuanian Commonwealth 1569–1795", - "3MG-SE-N" => "The Swedish Empire (c 1611 to c 1718)", - "3MG-US-A" => "USA: Colonization and Settlement ( c 1600 to c 1775)", + "3MG-IT-G" => "1559–1714 (period of Spanish domination in Italy)", + "3MG-PL-A" => "1569–1795 (period of the Polish-Lithuanian Commonwealth)", + "3MG-SE-N" => "c 1611 to c 1718 (period of the Swedish Empire)", + "3MG-US-A" => "c 1600 to c 1775 (period of European colonization and settlement of North America)", "3ML" => "18th century, c 1700 to c 1799", "3MLB" => "Early 18th century c 1700 to c 1750", "3MLBA" => "c 1700 to c 1709", @@ -6720,122 +7276,131 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "3MLBH" => "c 1720 to c 1729", "3MLBJ" => "c 1730 to c 1739", "3MLBL" => "c 1740 to c 1749", + "3MLB-GB-J" => "c 1700 to c 1760 (Jacobite period)", "3MLQ" => "Later 18th century c 1750 to c 1799", "3MLQM" => "c 1750 to c 1759", "3MLQS" => "c 1760 to c 1769", "3MLQV" => "c 1770 to c 1779", "3MLQX" => "c 1780 to c 1789", "3MLQZ" => "c 1790 to c 1799", - "3MLQZ-FR-A" => "The French Revolution (c 1789 to c 1799)", - "3MLQZ-IE-R" => "Irish Rebellion of 1798", - "3MLQ-PL-A" => "Period of the Partitions of Poland 1772–1795", - "3MLQ-SE-R" => "Sweden: the Gustavian Era (1772–1809)", - "3MLQ-US-B" => "American Revolution (1775–1783)", - "3MLQ-US-C" => "USA: The New Nation (c 1783 to c 1800)", - "3ML-DE-B" => "Germany: the age of Absolutism & Enlightenment (1648–1779)", - "3ML-GB-P" => "Georgian era (1714–1837)", - "3ML-GB-PR" => "Regency Period (c 1811 to c 1820)", - "3ML-IT-H" => "Italy: Austrian domination (1701–1796)", - "3ML-SE-Q" => "Sweden: the Age of Liberty (c 1718 to c 1772)", + "3MLQZ-BE-B" => "1789–1791 (period of the Brabant and Liège Revolutions)", + "3MLQZ-FR-A" => "c 1789 to c 1799 (French Revolutionary period)", + "3MLQZ-IE-R" => "c 1798 (period of the Irish Rebellion of 1798)", + "3MLQ-PL-A" => "1772–1795 (period of the Partitions of Poland)", + "3MLQ-SE-R" => "1772–1809 (Gustavian Era)", + "3MLQ-US-B" => "c 1765 to 1783 (American Revolutionary period)", + "3MLQ-US-C" => "c 1783 to c 1800 (American Federalist era)", + "3ML-DE-B" => "c 1648 to 1779 (period of Absolutism and Enlightenment in Germany, and Central and Eastern Europe)", + "3ML-GB-P" => "1714–1837 (Georgian period)", + "3ML-GB-PR" => "c 1811 to c 1820 (Regency period)", + "3ML-IT-H" => "1701–1796 (period of Austrian domination in Italy)", + "3ML-SE-Q" => "c 1718 to c 1772 (Swedish Age of Liberty)", "3MN" => "19th century, c 1800 to c 1899", "3MNB" => "Early 19th century c 1800 to c 1850", "3MNBA" => "c 1800 to c 1809", "3MNBF" => "c 1810 to c 1819", "3MNBH" => "c 1820 to c 1829", "3MNBJ" => "c 1830 to c 1839", - "3MNBJ-CA-D" => "Lower Canada Rebellion / Patriots War (1837–1838)", + "3MNBJ-BE-D" => "1830–1831 (period of Belgian Revolution and Independence)", + "3MNBJ-CA-D" => "1837–1838 (period of Patriots’ War / Lower Canada Rebellion)", "3MNBL" => "c 1840 to c 1849", - "3MNBL-IE-F" => "Ireland: The Great Famine (1845–1852)", - "3MNB-DE-C" => "Germany: the age of the European Revolutions (1780–1848)", - "3MNB-ES-A" => "Spain: Spanish War of Independence (1808–1813)", - "3MNB-GB-T" => "Industrial revolution (c 1760 to c 1840)", - "3MNB-IT-M" => "Italy: Napoleonic era, Restoration, Risorgimento uprisings (1796–1848)", - "3MNB-US-D" => "USA: Exploration and Expansion (c 1800 to c 1861)", + "3MNBL-IE-F" => "1845 to c 1852 (period of the Great Irish Famine)", + "3MNB-BE-C" => "1814–1830 (period of the United Kingdom of the Netherlands)", + "3MNB-DE-C" => "c 1780 to c 1848 (period of the European Revolutions)", + "3MNB-ES-A" => "1808–1813 (period of Spanish War of Independence)", + "3MNB-GB-T" => "c 1760 to c 1840 (period of the British Industrial Revolution)", + "3MNB-IT-M" => "1796–1848 (Napoleonic era, Restoration period, Risorgimento uprisings in Italy)", + "3MNB-US-D" => "c 1800 to c 1861 (period of American exploration and expansion)", + "3MNB-XA-R" => "c 1808 to c 1833 (period of Spanish American wars of independence)", "3MNQ" => "Later 19th century c 1850 to c 1899", "3MNQM" => "c 1850 to c 1859", "3MNQS" => "c 1860 to c 1869", "3MNQV" => "c 1870 to c 1879", "3MNQX" => "c 1880 to c 1889", "3MNQZ" => "c 1890 to c 1899", - "3MNQZ-DE-D" => "Germany: the age of Imperialism (1890–1914)", - "3MNQ-AR-D" => "Argentina: period of the Generation of ’80 & the Republica Conservadora 1880–1916", - "3MNQ-GB-V" => "Victorian period (1837–1901)", - "3MNQ-IE-G" => "Ireland: The Gaelic Revival (c 1850 to 1916)", - "3MNQ-IT-N" => "Italy: National Independence & Risorgimento (1850–1861)", - "3MNQ-IT-P" => "Italy: National Unification & first decades of the Kingdom of Italy (1861–1900)", - "3MNQ-JP-M" => "1868 to 1912 (Japanese Meiji period)", - "3MNQ-US-E" => "American Civil War and Reconstruction (1861–1877)", - "3MNQ-US-F" => "USA: The Gilded Age (c 1877 to c 1893)", - "3MN-DK-G" => "Denmark: Golden Age (c 1800 to c 1850)", - "3MN-ES-A" => "Spain: Contemporary history (1808–2000)", - "3MN-FI-A" => "Finland: period of Autonomy 1809–1917", - "3MN-PA-A" => "Period of the Union of Columbia & Panama 1821–1903", + "3MNQZ-DE-D" => "1871–1914 (German Imperial period)", + "3MNQ-AR-D" => "1880–1916 (period of the Generation of ’80 and the ‘República Conservadora’ in Argentina)", + "3MNQ-GB-V" => "1837–1901 (Victorian period)", + "3MNQ-IE-G" => "c 1850 to 1916 (period of the Gaelic Revival in Ireland)", + "3MNQ-IT-N" => "1850–1861 (period of National Independence and Risorgimento in Italy)", + "3MNQ-IT-P" => "1861 to c 1900 (period of National Unification and the first decades of the Kingdom of Italy)", + "3MNQ-JP-M" => "1868–1912 (Japanese Meiji period)", + "3MNQ-MX-P" => "1876 to 1910 (The Porfiriato period)", + "3MNQ-US-E" => "1861–1877 (American Civil War period and the era of Reconstruction)", + "3MNQ-US-F" => "c 1877 to c 1893 (‘The Gilded Age’ in the USA)", + "3MN-DK-G" => "c 1800 to c 1850 (Danish Golden Age)", + "3MN-ES-A" => "1808 to c 2000 (Spanish Modern and Contemporary period)", + "3MN-FI-A" => "1809–1917 (Finnish period of Autonomy)", + "3MN-PA-A" => "1821–1903 (period of the Union of Columbia and Panama)", "3MP" => "20th century, c 1900 to c 1999", "3MPB" => "Early 20th century c 1900 to c 1950", "3MPBA" => "c 1900 to c 1909", "3MPBF" => "c 1910 to c 1919", - "3MPBFB" => "World War One period (1914–1918)", - "3MPBF-FI-A" => "Period of Finnish Civil War 1918", - "3MPBF-IE-R" => "Ireland: The Revolutionary Period (1916–1922)", - "3MPBG" => "Inter-war period c 1919 to c 1939", + "3MPBFB" => "c 1914 to c 1918 (World War One period)", + "3MPBF-FI-A" => "1918 (Finnish Civil War period)", + "3MPBF-IE-R" => "1916–1922 (Irish Revolutionary period)", + "3MPBF-MX-R" => "1910 to c 1917 (Mexican Revolutionary period)", + "3MPBF-RU-R" => "1917–1923 (Russian Revolutionary period)", + "3MPBG" => "c 1919 to c 1939 (Inter-war period)", "3MPBGH" => "c 1920 to c 1929", - "3MPBGH-ES-A" => "Spain: Dictatorship of Primo de Rivera (1923–1930)", - "3MPBGH-IE-C" => "The Irish Civil War (1922–1923)", - "3MPBGH-US-J" => "USA: The Jazz Age (1919–1929)", + "3MPBGH-ES-A" => "1923–1930 (period of Dictatorship of Primo de Rivera)", + "3MPBGH-IE-C" => "1922–1923 (Irish Civil War period)", + "3MPBGH-US-J" => "c 1919 to c 1929 (The Jazz Age)", "3MPBGJ" => "c 1930 to c 1939", - "3MPBGJ-AR-A" => "Infamous Decade 1930–1943 (Argentina)", - "3MPBGJ-DE-H" => "Germany: National Socialist period (1933–1945)", - "3MPBGJ-ES-A" => "Spain: Second Republic (1931–1936)", - "3MPBGJ-ES-B" => "Spain: Civil war (1936–1939)", - "3MPBGJ-US-K" => "USA: The Great Depression (1929–1939)", - "3MPBG-DE-G" => "Germany: Weimar Republic (1918–1933)", - "3MPBG-IE-S" => "Irish Free State (1922–1937)", - "3MPBG-IT-S" => "Italy: post First World War period & Fascism (1918–1943)", + "3MPBGJ-AR-A" => "1930–1943 (Infamous Decade in Argentina)", + "3MPBGJ-DE-H" => "1933–1945 (National Socialist period)", + "3MPBGJ-ES-A" => "1931–1936 (period of the Spanish Second Republic)", + "3MPBGJ-ES-B" => "1936–1939 (Spanish Civil War period)", + "3MPBGJ-US-K" => "1929 to c 1939 (period of the Great Depression)", + "3MPBG-DE-G" => "1918–1933 (period of the Weimar Republic)", + "3MPBG-IE-S" => "1922–1937 (Irish Free State period)", + "3MPBG-IT-S" => "1918–1943 (Italian post-war and Fascist period)", "3MPBL" => "c 1940 to c 1949", - "3MPBLB" => "World War Two period (c 1939 to c 1945)", - "3MPBLB-FI-A" => "Period of The Winter War 1939–1940 & the Continuation War 1941 to 1944", - "3MPBLB-PL-A" => "Period of the Warsaw Ghetto uprising of 1943", - "3MPBLB-PL-B" => "Period of the Warsaw Rising of 1944", - "3MPBL-AR-C" => "Argentina: period of Peronism & the Peron presidencies 1943–1955", - "3MPBL-DK-B" => "Denmark: German occupation (1940–1945)", - "3MPBL-ES-A" => "Spain: Postwar period (1940–1949)", - "3MPBL-IT-T" => "Italy: Liberation from Fascism & Resistance (1943–1945)", - "3MPBL-IT-U" => "Italy: post Second World War period & Foundation of Italian Republic (1946–1968)", - "3MPB-AR-B" => "Argentina: period of the Saenz Peña Law & First democratic governments 1916–1930", - "3MPB-ES-A" => "Spain: End of the Monarchy (c 1900 to c 1931)", - "3MPB-FI-A" => "Finland: period of Russification of 1899–1917", - "3MPB-IT-R" => "Italy: Giolittian period (1900–1914)", - "3MPB-JP-B" => "1912 to 1926 (Japanese Taisho period)", - "3MPB-JP-D" => "1926 to 1945 (Japanese pre-war Showa period)", - "3MPB-US-H" => "USA: The Progressive Era (c 1890 to c 1929)", + "3MPBLB" => "c 1938 to c 1946 (World War Two period)", + "3MPBLB-FI-A" => "1939–1944 (period of the Finnish Winter War and Continuation War)", + "3MPBLB-PL-A" => "1943 (period of the Warsaw Ghetto uprising)", + "3MPBLB-PL-B" => "1944 (period of the Warsaw Rising)", + "3MPBL-AR-C" => "1943–1955 (period of Peronism and the Peron presidencies)", + "3MPBL-BE-F" => "1940–1951 (period of German occupation, Regency and the ‘Royal Question’ in Belgium)", + "3MPBL-DK-B" => "1940–1945 (period of German Occupation of Denmark)", + "3MPBL-ES-A" => "1940–1949 (Spanish post civil-war period)", + "3MPBL-IT-T" => "1943–1945 (period of Resistance and liberation from Fascism in Italy)", + "3MPBL-IT-U" => "1946–1968 (post Second World War period and Foundation of Italian Republic)", + "3MPB-AR-B" => "1916–1930 (period of the Saenz Peña Law and First democratic governments in Argentina)", + "3MPB-ES-A" => "c 1900 to c 1931 (period of the end of Spanish Monarchy)", + "3MPB-FI-A" => "1899–1917 (period of Russification of Finland)", + "3MPB-IT-R" => "1900–1914 (Italian Giolittian period)", + "3MPB-JP-B" => "1912–1926 (Japanese Taisho period)", + "3MPB-JP-D" => "1926–1945 (Japanese pre-war Showa period)", + "3MPB-US-H" => "c 1890 to c 1929 (Progressive Era in the USA)", "3MPQ" => "Later 20th century c 1950 to c 1999", "3MPQM" => "c 1950 to c 1959", - "3MPQM-US-N" => "USA: Korean War period (1950–1953)", + "3MPQM-US-N" => "1950–1953 (Korean War period)", "3MPQS" => "c 1960 to c 1969", - "3MPQS-CA-Q" => "Quebec: The Quiet Revolution (1960–1968)", - "3MPQS-DE-K" => "Germany: Protest of 1968", - "3MPQS-US-P" => "USA: Era of Civil Rights Movement (c 1954 to c 1968)", - "3MPQS-US-Q" => "USA: Vietnam War period (c 1955 to c 1975)", + "3MPQS-CA-Q" => "1960 to c 1968 (period of the Quiet Revolution in Quebec)", + "3MPQS-DE-K" => "1968 (period of Protests of ’68)", + "3MPQS-US-P" => "c 1954 to c 1968 (era of the American Civil Rights Movement)", + "3MPQS-US-Q" => "c 1955 to c 1975 (Vietnam War period)", "3MPQV" => "c 1970 to c 1979", - "3MPQV-AR-C" => "Argentina: period of Military dictatorship 1976–1983", - "3MPQV-DE-L" => "German Autumn, 1977", - "3MPQV-IT-W" => "Italy: protest movement & ‘Anni di Piombo’ (1969–1980)", + "3MPQV-AR-C" => "1976–1983 (period of Military dictatorship in Argentina)", + "3MPQV-DE-L" => "1977 (period of the German Autumn / Deutscher Herbst)", + "3MPQV-IT-W" => "1969–1980 (period of protest and ‘Anni di Piombo’ in Italy)", "3MPQX" => "c 1980 to c 1989", "3MPQZ" => "c 1990 to c 1999", - "3MPQZ-IT-X" => "Italy: crisis of the Nineties & so-called Second Republic (1990–1999)", - "3MPQ-DE-J" => "Germany: the Cold War era (1945–1990)", - "3MPQ-ES-A" => "Spain: Franco´s dictatorship (c 1940 to 1975)", - "3MPQ-ES-B" => "Spain: Democratic transition (c 1975 to c 1982)", - "3MPQ-ES-C" => "Spain: Democracy (c 1982 to present)", - "3MPQ-IE-T" => "Ireland: The Troubles (1968–1999)", - "3MPQ-IT-V" => "Italy: reconstruction, economic miracle, social & political transformations (1950–1968)", - "3MPQ-JP-B" => "1945 to 1989 (Japanese post-war Showa period)", - "3MPQ-PL-A" => "Period of the Polish People’s Republic 1947–1989", - "3MP-AA-E" => "Modern Egypt (c 1882 to present)", - "3MP-JP-S" => "1926 to 1989 (Japanese Showa period)", - "3MP-PA-B" => "Panama: the republican period 1903–1968", - "3MPQ-PA-A" => "Panama: the Military Dictatorship period 1968–1989", - "3MP-SE-A" => "Sweden: Folkhemmet (c 1930 to 1965)", + "3MPQZ-IT-X" => "1990–1999 (period of the crisis of the Nineties and so-called Second Republic in Italy)", + "3MPQ-DE-J" => "c 1945 to c 1990 (the Cold War period)", + "3MPQ-ES-A" => "c 1940 to 1975 (period of Franco’s dictatorship)", + "3MPQ-ES-B" => "1975 to c 1982 (period of Spanish Democratic transition)", + "3MPQ-ES-C" => "c 1982 to present (Spanish democratic period)", + "3MPQ-IE-T" => "c 1968 to c 1999 (period of The Troubles in Northern Ireland)", + "3MPQ-IT-V" => "c 1950 to c 1968 (period of reconstruction, economic miracle, social and political transformations in Italy)", + "3MPQ-JP-B" => "1945–1989 (Japanese post-war Showa period)", + "3MPQ-PA-A" => "1968–1989 (period of the Panamanian Military Dictatorship)", + "3MPQ-PL-A" => "1947–1989 (period of the Polish People’s Republic)", + "3MP-AA-E" => "c 1882 to present (Modern Egyptian period)", + "3MP-JP-S" => "1926–1989 (Japanese Showa period)", + "3MP-PA-B" => "1903–1968 (the Panamanian republican period)", + "3MP-SE-A" => "c 1930 to 1965 (period of Swedish ‘Folkhemmet’)", "3MR" => "21st century, c 2000 to c 2100", "3MRB" => "Early 21st century c 2000 to c 2050", "3MRBA" => "c 2000 to c 2009", @@ -6845,40 +7410,49 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "3MRBL" => "c 2040 to c 2049", "3MRB-JP-D" => "1989 to 2019 (Japanese Heisei period)", "3MRB-JP-R" => "2019 onwards (Japanese Reiwa period)", - "3M-AA-E" => "Early Modern Egypt (c 1517 to c 1914)", - "3M-ES-A" => "Spain: Modern history (1492–1808)", - "3M-ES-AB" => "Spain: ‘Siglo de oro’ (1492–1690)", - "3M-JP-E" => "1600 to 1867 (Japanese Edo period)", + "3M-AA-E" => "c 1517 to c 1914 (Early Modern Egyptian period)", + "3M-ES-A" => "c 1492 to c 1808 (Spanish Early Modern period)", + "3M-ES-AB" => "c 1492 to c 1690 (Spanish Golden Age or ‘Siglo de oro’)", + "3M-JP-E" => "c 1600 to 1867 (Japanese Edo period)", + "4" => "Educational purpose qualifiers", "4C" => "For all educational levels", "4CA" => "For pre-school learning", "4CD" => "For primary education", "4CF" => "For middle / preparatory school education", - "4CL" => "For mandatory secondary education", - "4CN" => "For optional / advanced secondary education", + "4CL" => "For secondary education", + "4CN" => "For advanced secondary education", "4CP" => "For vocational / professional education / training", "4CPC" => "For vocational / professional certification / qualifications", + "4CPF" => "For official government / civil service exams / qualifications", + "4CPG" => "For Recruitment, Professional Aptitude or Reasoning tests", + "4CPK" => "For tests of general knowledge or culture", "4CT" => "For higher / tertiary / university education", - "4CTB" => "For undergraduate education & equivalents", - "4CTM" => "For graduate / post-graduate & equivalents", + "4CTB" => "For undergraduate education and equivalents", + "4CTM" => "For graduate / post-graduate and equivalents", "4CX" => "For adult education", - "4G" => "For international curricula & examinations", + "4CXB" => "For adult education: beginners levels", + "4CXF" => "For adult education: intermediary levels", + "4CXL" => "For adult education: advanced levels", + "4G" => "For international curricula and examinations", "4GA" => "For International Baccalaureate (IB) pre-diploma level programmes", "4GAJ" => "For International Baccalaureate (IB) Early Years programme", "4GAS" => "For International Baccalaureate (IB) Middle Years programme", "4GB" => "For International Baccalaureate (IB) Diploma", "4GC" => "For International Baccalaureate (IB) Career-related Certificate", "4GH" => "For International GCSE (IGCSE)", - "4L" => "For language learning courses & examinations", + "4GJ" => "For International AS / A level", + "4L" => "For language learning courses and examinations", "4LB" => "For language proficiency tests / exams", - "4LE" => "ELT examinations & certificates", + "4LC" => "For TELC Language tests", + "4LE" => "For ELT / ESL learning, courses, examinations and certificates", "4LEA" => "Cambridge English Exams", "4LEC" => "International English Language Testing System (IELTS)", "4LEF" => "Test of English as a Foreign Language (TOEFL)", "4LEH" => "Test of English for International Communication (TOEIC)", "4LEP" => "ELT: Exams and tests of English for specific purposes", - "4LZ" => "For specific language learning & courses other than ELT", - "4LZ-ES-D" => "Diplomas of Spanish as a Foreign Language (DELE)", - "4LZ-FR-D" => "Diplomas of French as a Foreign Language (DELF / DALF / DILF / TCF / TEF)", + "4LZ" => "For specific language learning, courses, examinations and certificates other than ELT / ESL", + "4LZ-ES-D" => "Diplomas of Spanish as a foreign or second language", + "4LZ-FR-D" => "Diplomas of French as a foreign or second language", "4LZ-IT-H" => "Certification of Italian language learning", "4LZ-IT-HB" => "For Italian language learning: CELI Certificate", "4LZ-IT-HD" => "For Italian language learning: CIC Certificate", @@ -6886,16 +7460,21 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4LZ-IT-HH" => "For Italian language learning: CILS Certificate", "4T" => "For specific educational purposes", "4TC" => "Textbook, coursework", - "4TM" => "Revision & study guide", + "4TM" => "Revision and study guide", "4TN" => "For examinations / tests / assessments", "4TNC" => "For citizenship exams / tests", + "4TNH" => "For Entrance or Admissions exams / tests", "4TP" => "Content and language integrated learning (CLIL)", + "4TQ" => "For Intercultural bilingual education (IBE)", "4TV" => "For supplementary education programmes (compensatory / complementary education)", "4TW" => "For specific learning difficulties", - "4TY" => "For home learning", + "4TY" => "For home learning / Self-study / autonomous learning", + "4TYB" => "For home learning: beginner levels", + "4TYF" => "For home learning: intermediary levels", + "4TYL" => "For home learning: advanced levels", "4Z" => "For specific national or regional educational curricula", - "4Z-AA-" => "For Arab world educational systems", - "4Z-AA-E" => "For Egyptian educational systems", + "4Z-AA-" => "For educational curricula in the Arab world", + "4Z-AA-E" => "For the educational curriculum of Egypt", "4Z-AA-EA" => "For Al-Azhar Education System (Egypt)", "4Z-AR-" => "For the educational curriculum of Argentina", "4Z-AR-A" => "For pre-school education (Argentina)", @@ -6907,8 +7486,73 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-AR-CA" => "For basic secondary education (Argentina)", "4Z-AR-CB" => "For higher secondary education (Argentina)", "4Z-AR-CC" => "For technical secondary education (Argentina)", + "4Z-AU-" => "For Educational curricula of Australia", + "4Z-AU-A" => "For Early years education (Australia)", + "4Z-AU-AA" => "For Pre-school education (Australia)", + "4Z-AU-AB" => "For Kindergarten education / Foundation Level (Australia)", + "4Z-AU-B" => "For Primary education (Australia)", + "4Z-AU-BA" => "For Year 1 (Australia)", + "4Z-AU-BB" => "For Year 2 (Australia)", + "4Z-AU-BC" => "For Year 3 (Australia)", + "4Z-AU-BD" => "For Year 4 (Australia)", + "4Z-AU-BE" => "For Year 5 (Australia)", + "4Z-AU-BF" => "For Year 6 (Australia)", + "4Z-AU-C" => "For Secondary education (Australia)", + "4Z-AU-CA" => "For Year 7 (Australia)", + "4Z-AU-CB" => "For Year 8 (Australia)", + "4Z-AU-CC" => "For Year 9 (Australia)", + "4Z-AU-CD" => "For Year 10 (Australia)", + "4Z-AU-CE" => "For Year 11 (Australia)", + "4Z-AU-CF" => "For Year 12 (Australia)", + "4Z-AU-D" => "For Australian vocational and educational training (VET)", + "4Z-AU-H" => "For The Australian Curriculum", + "4Z-AU-N" => "For New South Wales curriculum", + "4Z-AU-NH" => "For the Higher School Certificate", + "4Z-AU-Q" => "For Queensland curriculum", + "4Z-AU-QH" => "For the Queensland Certificate of Education (QCE)", + "4Z-AU-S" => "For South Australia curriculum", + "4Z-AU-SH" => "South Australian Certificate of Education (SACE)", + "4Z-AU-T" => "For Tasmanian curriculum", + "4Z-AU-TH" => "Tasmanian Certificate of Education (TCE)", + "4Z-AU-V" => "For Victoria curriculum", + "4Z-AU-VH" => "Victorian Certificate of Education (VCE)", + "4Z-AU-W" => "For Western Australia curriculum", + "4Z-AU-WH" => "Western Australian Certificate of Education (WACE)", + "4Z-AU-X" => "For the Northern Territories curriculum", + "4Z-AU-XH" => "Northern Territory Certificate of Education (NTCE)", + "4Z-AU-Y" => "For the Australian Capital Territory curriculum", + "4Z-AU-YH" => "For the Senior Secondary Certificate and Record of Achievement (ACT SSC)", + "4Z-BE-" => "For educational curricula of Belgium", + "4Z-BE-B" => "For the educational curriculum of the Flemish community (Belgium)", + "4Z-BE-BA" => "Pre-primary education (Flemish)", + "4Z-BE-BB" => "Special Pre-primary education (Flemish)", + "4Z-BE-BC" => "Primary education (Flemish)", + "4Z-BE-BD" => "Special Primary education (Flemish)", + "4Z-BE-BE" => "Secondary Education (Flemish)", + "4Z-BE-BEA" => "First cycle (years 1 and 2)", + "4Z-BE-BEAA" => "A-stream (BE)", + "4Z-BE-BEAB" => "B-stream (BE)", + "4Z-BE-BEB" => "Second cycle (years 3 and 4)", + "4Z-BE-BEBA" => "General Secondary Education (ASO)", + "4Z-BE-BEBB" => "Vocational Secondary Education (BSO)", + "4Z-BE-BEBC" => "Art Secondary Education (KSO)", + "4Z-BE-BEBD" => "Technical Secondary Education (TSO)", + "4Z-BE-BEC" => "Third cycle (years 5 and 6)", + "4Z-BE-BECA" => "General Secondary Education (ASO)", + "4Z-BE-BECB" => "Vocational Secondary Education (BSO)", + "4Z-BE-BECC" => "Art Secondary Education (KSO)", + "4Z-BE-BECD" => "Technical Secondary Education (TSO)", + "4Z-BE-BECE" => "Secondary-after-Secondary (Se-n-Se)", + "4Z-BE-D" => "For the educational curricula of the French community (Belgium)", + "4Z-BE-DA" => "Pre-primary education (French community BE)", + "4Z-BE-DC" => "Primary education (French community BE)", + "4Z-BE-DE" => "Secondary Education (French community BE)", + "4Z-BE-H" => "For the educational curricula of the German-speaking community (Belgium)", + "4Z-BE-HA" => "Pre-primary education (German-speaking community BE)", + "4Z-BE-HC" => "Primary education (German-speaking community BE)", + "4Z-BE-HE" => "Secondary Education (German-speaking community BE)", "4Z-BO-" => "For the educational curriculum of Bolivia", - "4Z-CA-" => "For Canadian educational curricula", + "4Z-CA-" => "For educational curricula of Canada", "4Z-CA-A" => "For Elementary Education (Canada)", "4Z-CA-C" => "For Secondary Education (Canada)", "4Z-CA-F" => "For College, Pre-University Programs (Canada)", @@ -6916,7 +7560,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-CA-J" => "For University, Bachelor’s Degree (Canada)", "4Z-CA-L" => "For University, Master’s Degree (Canada)", "4Z-CA-M" => "For University, Doctorate (Canada)", - "4Z-CA-Q" => "For Quebec educational curricula", + "4Z-CA-Q" => "For educational curricula of Quebec", "4Z-CA-QA" => "Quebec: for Elementary education", "4Z-CA-QC" => "Quebec: for Secondary education", "4Z-CA-QF" => "Quebec: CEGEP pre-university programme", @@ -6925,11 +7569,23 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-CA-QK" => "Quebec: for university Master’s degree", "4Z-CA-QL" => "Quebec: for university Doctorate", "4Z-CB-" => "For educational curricula in the Caribbean", + "4Z-CB-C" => "For Caribbean Examinations Council (CXC)", + "4Z-CB-CB" => "For Caribbean Primary Exit Assessment (CPEA)", + "4Z-CB-CD" => "For Caribbean Secondary Education Certificate (CSEC)", + "4Z-CB-CF" => "For Caribbean Advanced Proficiency Examinations (CAPE)", + "4Z-CB-CS" => "For Caribbean Certificate of Secondary Level Competence (CCSLC)", + "4Z-CB-CV" => "For Caribbean Vocational Qualification (CVQ)", + "4Z-CB-E" => "For the educational curricula of Organisation of Eastern Caribbean States (OECS) states", "4Z-CL-" => "For the educational curriculum of Chile", "4Z-CO-" => "For the educational curriculum of Colombia", + "4Z-CO-A" => "Initial education – Pre-jardín and Jardín (Colombia)", + "4Z-CO-B" => "Preschool education – Transición (Colombia)", + "4Z-CO-C" => "Basic Education – Primary and Secondary (Colombia)", + "4Z-CO-D" => "Middle Education – Tenth and Eleventh Grades (Colombia)", + "4Z-CO-E" => "Higher Education (Colombia)", "4Z-CR-" => "For the educational curriculum of Costa Rica", "4Z-CU-" => "For the educational curriculum of Cuba", - "4Z-DE-" => "For German educational curricula", + "4Z-DE-" => "For educational curricula of Germany", "4Z-DE-A" => "For pre-school learning (Germany)", "4Z-DE-B" => "For primary education (Germany)", "4Z-DE-BA" => "For German elementary school", @@ -6944,7 +7600,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-DE-DAH" => "For German ten-class secondary school", "4Z-DE-DAJ" => "For German upper school college", "4Z-DE-DAK" => "For German junior high school", - "4Z-DE-DAL" => "For German combined middle & secondary school", + "4Z-DE-DAL" => "For German combined middle and secondary school", "4Z-DE-DB" => "For German middle school add on education", "4Z-DE-DBA" => "For German regular school", "4Z-DE-DBB" => "For German regional school", @@ -6987,7 +7643,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-DE-FCF" => "For German occupational training one year prep classes", "4Z-DE-FCH" => "For German independent vocational schools with focus on crafts", "4Z-DE-FCJ" => "For German commercial school", - "4Z-DE-FD" => "For German vocational buildup school", + "4Z-DE-FD" => "For German vocational build-up school", "4Z-DE-FF" => "For preparation of entry into professional life – one year school (Germany)", "4Z-DE-FH" => "For preparation of entry into professional life – class (Germany)", "4Z-DE-FJ" => "For preparation of entry into professional life – school (Germany)", @@ -6996,9 +7652,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-DE-G" => "For special needs schools (Germany)", "4Z-DE-GA" => "For German special-needs school (with focus on assistance with learning disabilities)", "4Z-DE-GC" => "For German special-needs school (with focus on assistance with mental development)", - "4Z-DE-GE" => "For German special-needs school (with focus on assistance with emotional & social development)", + "4Z-DE-GE" => "For German special-needs school (with focus on assistance with emotional and social development)", "4Z-DE-GH" => "For German special-needs school (with focus on assistance with language learning)", - "4Z-DE-GJ" => "For German special-needs school (with focus on assistance with physical & motor development)", + "4Z-DE-GJ" => "For German special-needs school (with focus on assistance with physical and motor development)", "4Z-DE-GL" => "For German special-needs school (with focus on assistance with hearing)", "4Z-DE-GN" => "For German special-needs school (with focus on assistance with vision)", "4Z-DE-H" => "For German College or University Education", @@ -7019,82 +7675,82 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-DE-LM" => "For learning year 12 (Germany)", "4Z-DE-LN" => "For learning year 13 (Germany)", "4Z-DE-U" => "For specific German vocational, professional or university qualifications", - "4Z-DE-UD" => "For specific German professional qualifications & degrees", - "4Z-DE-UDA" => "For German law qualifications (bachelors & other undergraduate)", - "4Z-DE-UDB" => "For German law qualifications (masters, postgraduate & doctoral)", + "4Z-DE-UD" => "For specific German professional qualifications and degrees", + "4Z-DE-UDA" => "For German law qualifications (bachelors and other undergraduate)", + "4Z-DE-UDB" => "For German law qualifications (masters, postgraduate and doctoral)", "4Z-DE-UDC" => "For German first state exam in licensed professions (Erste Staatsexamen)", "4Z-DE-UDD" => "For German training placements in state-licensed professions (Referendariat / Stationen)", - "4Z-DE-UDE" => "For German second state exam for licensed professions (Erste Staatsexamen)", - "4Z-DE-UDF" => "For German lawyers, paralegals & legal secretaries (professional development & reference)", - "4Z-DE-UDG" => "For German tax consulting (professional development & reference)", - "4Z-DE-UDH" => "For German curricula leading to certificatied legal specialisms", + "4Z-DE-UDE" => "For German second state exam for licensed professions (Zweite Staatsexamen)", + "4Z-DE-UDF" => "For German lawyers, paralegals and legal secretaries (professional development and reference)", + "4Z-DE-UDG" => "For German tax consulting (professional development and reference)", + "4Z-DE-UDH" => "For German curricula leading to certificated legal specialisms", "4Z-DE-UDI" => "For German tax advisors’ exams", "4Z-DE-UDJ" => "For German civil law notaries’ exams", "4Z-DE-UDK" => "For German auditors’ exams", - "4Z-DE-UH" => "For specific German professional/vocational qualifications & degrees (dual education system)", + "4Z-DE-UH" => "For specific German professional/vocational qualifications and degrees (dual education system)", "4Z-DE-UHA" => "For German vocational qualifications working in the land sector", - "4Z-DE-UHAA" => "For German vocational qualifications in agriculture, husbandry, forestry, landscaping & horticulture", + "4Z-DE-UHAA" => "For German vocational qualifications in agriculture, husbandry, forestry, landscaping and horticulture", "4Z-DE-UHAB" => "For German vocational qualifications in land surveying", "4Z-DE-UHB" => "For German vocational qualifications in the food industries", - "4Z-DE-UHBA" => "For German vocational qualifications in baking, pastry making & confectionary", + "4Z-DE-UHBA" => "For German vocational qualifications in baking, pastry making and confectionary", "4Z-DE-UHBB" => "For German vocational qualifications as a butcher", "4Z-DE-UHBC" => "For German vocational qualifications as a chef", - "4Z-DE-UHBD" => "For German vocational qualifications as a food & beverage specialist", - "4Z-DE-UHD" => "For German vocational qualifications in metal production & metal working industries", - "4Z-DE-UHDA" => "For German vocational qualifications in precision engineering & related professions", - "4Z-DE-UHDB" => "For German vocational qualifications in metal production & processing", - "4Z-DE-UHDC" => "For German vocational qualifications in metalworking, plant construction, sheet metalwork, casting, & fitting", + "4Z-DE-UHBD" => "For German vocational qualifications as a food and beverage specialist", + "4Z-DE-UHD" => "For German vocational qualifications in metal production and metal working industries", + "4Z-DE-UHDA" => "For German vocational qualifications in precision engineering and related professions", + "4Z-DE-UHDB" => "For German vocational qualifications in metal production and processing", + "4Z-DE-UHDC" => "For German vocational qualifications in metalworking, plant construction, sheet metalwork, casting, and fitting", "4Z-DE-UHDD" => "For German vocational qualifications as an industrial mechanic or toolmaker", - "4Z-DE-UHE" => "For German vocational qualifications in stone, glass & ceramic production & related industries", - "4Z-DE-UHEA" => "For German vocational qualifications in stone, glass or ceramics processing & building materials", - "4Z-DE-UHEB" => "For German vocational qualifications in mining & quarrying", - "4Z-DE-UHF" => "For German vocational qualifications in the cloth & leather industries", + "4Z-DE-UHE" => "For German vocational qualifications in stone, glass and ceramic production and related industries", + "4Z-DE-UHEA" => "For German vocational qualifications in stone, glass or ceramics processing and building materials", + "4Z-DE-UHEB" => "For German vocational qualifications in mining and quarrying", + "4Z-DE-UHF" => "For German vocational qualifications in the cloth and leather industries", "4Z-DE-UHFA" => "For German vocational qualifications in spinning, weaving, textile finishing", - "4Z-DE-UHFB" => "For German vocational qualifications in textile processing & leatherworking", - "4Z-DE-UHH" => "For German vocational qualifications in engineering, manufacturing & construction", + "4Z-DE-UHFB" => "For German vocational qualifications in textile processing and leatherworking", + "4Z-DE-UHH" => "For German vocational qualifications in engineering, manufacturing and construction", "4Z-DE-UHHA" => "For German vocational qualifications in electrical trades", "4Z-DE-UHHB" => "For German vocational qualifications as technicians or mechanical engineer", "4Z-DE-UHHC" => "For German vocational qualifications as a drafter or drafting technician", - "4Z-DE-UHHD" => "For German vocational qualifications in vehicle or aircraft manufacture & maintenance", - "4Z-DE-UHHE" => "For German vocational qualifications in construction, wood & plastic processing", - "4Z-DE-UHHF" => "For German vocational qualifications in the chemical & plastics industries", - "4Z-DE-UHHG" => "For German vocational qualifications in paper manufacture, processing & printing", + "4Z-DE-UHHD" => "For German vocational qualifications in vehicle or aircraft manufacture and maintenance", + "4Z-DE-UHHE" => "For German vocational qualifications in construction, wood and plastic processing", + "4Z-DE-UHHF" => "For German vocational qualifications in the chemical and plastics industries", + "4Z-DE-UHHG" => "For German vocational qualifications in paper manufacture, processing and printing", "4Z-DE-UHJ" => "For German vocational qualifications in scientific, geographical and IT related professions", "4Z-DE-UHJA" => "For German vocational qualifications in chemistry, physics or natural sciences", "4Z-DE-UHJB" => "For German vocational qualifications in IT", - "4Z-DE-UHL" => "For German vocational qualifications in transport, logistics, security & safety", + "4Z-DE-UHL" => "For German vocational qualifications in transport, logistics, security and safety", "4Z-DE-UHLA" => "For German vocational qualifications in the transport sector", "4Z-DE-UHLB" => "For German vocational qualifications in aviation or seafaring", - "4Z-DE-UHLC" => "For German vocational qualifications in quality control & inspection", + "4Z-DE-UHLC" => "For German vocational qualifications in quality control and inspection", "4Z-DE-UHLD" => "For German vocational qualifications as packers, warehouse or transport workers", - "4Z-DE-UHLE" => "For German vocational qualifications in personal protection & security", - "4Z-DE-UHLF" => "For German vocational qualifications in the safety & security professions", - "4Z-DE-UHLG" => "For German vocational qualifications in cleansing & waste disposal", + "4Z-DE-UHLE" => "For German vocational qualifications in personal protection and security", + "4Z-DE-UHLF" => "For German vocational qualifications in the safety and security professions", + "4Z-DE-UHLG" => "For German vocational qualifications in cleansing and waste disposal", "4Z-DE-UHM" => "For German vocational qualifications in commercial services, retail, distribution, hospitality and tourism", "4Z-DE-UHMA" => "For German vocational qualifications in the retail sector", "4Z-DE-UHMB" => "For German vocational qualifications in the wholesale sector", - "4Z-DE-UHMC" => "For German vocational qualifications as caretakers & property management", + "4Z-DE-UHMC" => "For German vocational qualifications as caretakers and property management", "4Z-DE-UHMD" => "For German vocational qualifications in the hospitality industry", - "4Z-DE-UHP" => "For German vocational qualifications in the finance, business & administration sectors", + "4Z-DE-UHP" => "For German vocational qualifications in the finance, business and administration sectors", "4Z-DE-UHPA" => "For German vocational qualifications in banking or insurance", "4Z-DE-UHPB" => "For German vocational qualifications in commercial office skills", - "4Z-DE-UHPC" => "For German vocational qualifications in management, accounting & business consulting", + "4Z-DE-UHPC" => "For German vocational qualifications in management, accounting and business consulting", "4Z-DE-UHPD" => "For German vocational qualifications in public administration", - "4Z-DE-UHPE" => "For German vocational qualifications in finance & bookkeeping", - "4Z-DE-UHPF" => "For German vocational qualifications in secretarial & office skills", + "4Z-DE-UHPE" => "For German vocational qualifications in finance and bookkeeping", + "4Z-DE-UHPF" => "For German vocational qualifications in secretarial and office skills", "4Z-DE-UHPG" => "For German vocational qualifications in the legal sector", - "4Z-DE-UHQ" => "For German vocational qualifications in the health, social care & educational sectors", + "4Z-DE-UHQ" => "For German vocational qualifications in the health, social care and educational sectors", "4Z-DE-UHQA" => "For German vocational qualifications in personal care", "4Z-DE-UHQB" => "For German vocational qualifications in health care (licenced)", "4Z-DE-UHQC" => "For German vocational qualifications in health care (without a licence)", "4Z-DE-UHQD" => "For German vocational qualifications in social work", "4Z-DE-UHQE" => "For German vocational qualifications in teaching", - "4Z-DE-UHS" => "For German vocational qualifications in the cultural sector, creative industries & the media", + "4Z-DE-UHS" => "For German vocational qualifications in the cultural sector, creative industries and the media", "4Z-DE-UHSA" => "For German vocational qualifications in advertising", "4Z-DE-UHSB" => "For German vocational qualifications in art or music", "4Z-DE-UHSC" => "For German vocational qualifications in design or photography", - "4Z-DE-UHSD" => "For German vocational qualifications in publishing, librarianship, translation & related sectors", - "4Z-DK-" => "For Danish educational curricula", + "4Z-DE-UHSD" => "For German vocational qualifications in publishing, librarianship, translation and related sectors", + "4Z-DK-" => "For the educational curriculum of Denmark", "4Z-DK-A" => "For early education (Denmark)", "4Z-DK-F" => "For elementary school (Denmark)", "4Z-DK-FA" => "For pre-school (Denmark)", @@ -7124,7 +7780,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-EC-A" => "For pre-school education (Ecuador)", "4Z-EC-B" => "Basic General Education (Ecuador)", "4Z-EC-C" => "Unified General Baccalaureate (Ecuador)", - "4Z-ES-" => "For Spanish educational curricula", + "4Z-ES-" => "For educational curricula of Spain", "4Z-ES-A" => "For general education (Spain)", "4Z-ES-AA" => "For pre-school learning (Spain)", "4Z-ES-AB" => "For primary education (Spain)", @@ -7148,56 +7804,77 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-FI-B" => "Basic education (Finland)", "4Z-FI-BA" => "Basic Education Grades 1–6 (Finland)", "4Z-FI-BB" => "Basic Education Grades 7–9 (Finland)", + "4Z-FI-BD" => "Basic Education – OPS2016 (Finland)", "4Z-FI-C" => "General upper secondary education (Finland)", + "4Z-FI-CB" => "General upper secondary education – LOPS2016", + "4Z-FI-CC" => "General upper secondary education – LOPS2021", "4Z-FI-D" => "Vocational upper secondary education (Finland)", - "4Z-FR-" => "For French educational curricula", - "4Z-GB-" => "For UK educational curricula", - "4Z-GB-A" => "For England & Wales educational curricula", - "4Z-GB-AC" => "For National Curriculum (England & Wales)", - "4Z-GB-ACA" => "For National Curriculum Early Years (England & Wales)", - "4Z-GB-ACF" => "For National Curriculum Key Stage 1 (England & Wales)", - "4Z-GB-ACJ" => "For National Curriculum Key Stage 2 (England & Wales)", + "4Z-FR-" => "For the educational curriculum of France", + "4Z-GB-" => "For educational curricula of the United Kingdom", + "4Z-GB-A" => "For educational curricula of England and Wales", + "4Z-GB-AC" => "For National Curriculum (England and Wales)", + "4Z-GB-ACA" => "For National Curriculum Early Years (England and Wales)", + "4Z-GB-ACF" => "For National Curriculum Key Stage 1 (England and Wales)", + "4Z-GB-ACJ" => "For National Curriculum Key Stage 2 (England and Wales)", "4Z-GB-ACL" => "Eleven Plus (11+) exam", - "4Z-GB-ACN" => "For National Curriculum Key Stage 3 (England & Wales)", - "4Z-GB-ACT" => "For National Curriculum Key Stage 4 & GCSE (England & Wales)", - "4Z-GB-AL" => "Designed / suitable for A & AS Level (England & Wales)", + "4Z-GB-ACN" => "For National Curriculum Key Stage 3 (England and Wales)", + "4Z-GB-ACT" => "For National Curriculum Key Stage 4 and GCSE (England and Wales)", + "4Z-GB-AL" => "Designed / suitable for A and AS Level (England and Wales)", "4Z-GB-E" => "For U.K. Exam boards", "4Z-GB-EA" => "AQA – Assessment and Qualifications Alliance", - "4Z-GB-EC" => "CCEA – Council for the Curriculum, Examinations & Assessment", + "4Z-GB-EC" => "CCEA – Council for the Curriculum, Examinations and Assessment (Northern Ireland)", "4Z-GB-ED" => "ICAAE – International Curriculum and Assessment Agency Examinations", "4Z-GB-EE" => "Edexcel", "4Z-GB-EF" => "CIE – Cambridge International Examinations", "4Z-GB-ER" => "OCR – Oxford, Cambridge and RSA Examinations", "4Z-GB-ES" => "SQA – Scottish Qualifications Authority", - "4Z-GB-EW" => "WJEC (& Educas) – Welsh Joint Education Committee", - "4Z-GB-N" => "For Northern Irish educational curricula", + "4Z-GB-EW" => "WJEC / CBAC (and Eduqas) – Welsh Joint Education Committee", + "4Z-GB-N" => "For educational curricula of Northern Ireland", "4Z-GB-NC" => "For National Curriculum (Northern Ireland)", - "4Z-GB-NCA" => "For National Curriculum Early Years (Northern Ireland)", + "4Z-GB-NCA" => "For National Curriculum Early Years / Foundation Stage (Northern Ireland)", "4Z-GB-NCF" => "For National Curriculum Key Stage 1 (Northern Ireland)", "4Z-GB-NCJ" => "For National Curriculum Key Stage 2 (Northern Ireland)", "4Z-GB-NCN" => "For National Curriculum Key Stage 3 (Northern Ireland)", - "4Z-GB-NCT" => "For National Curriculum Key Stage 4 & GCSE (Northern Ireland)", - "4Z-GB-NL" => "Designed / suitable for A & AS Level (Northern Ireland)", - "4Z-GB-S" => "For Scottish Curriculum", + "4Z-GB-NCT" => "For National Curriculum Key Stage 4 and GCSE (Northern Ireland)", + "4Z-GB-NL" => "Designed / suitable for A and AS Level (Northern Ireland)", + "4Z-GB-NV" => "For vocational or technical qualifications (Northern Ireland)", + "4Z-GB-S" => "For educational curricula of Scotland", + "4Z-GB-SA" => "For Scottish Curriculum (P1 to S3)", + "4Z-GB-SAA" => "For Scottish Primary Curriculum – Early Level", + "4Z-GB-SAB" => "For Scottish Primary Curriculum – First Level", + "4Z-GB-SAC" => "For Scottish Primary Curriculum – Second Level", + "4Z-GB-SAD" => "For Scottish Secondary Curriculum – Third Level", "4Z-GB-SB" => "For Scottish Curriculum National 4", "4Z-GB-SD" => "For Scottish Curriculum National 5", "4Z-GB-SE" => "For Scottish Curriculum Intermediate 1", "4Z-GB-SG" => "For Scottish Curriculum Intermediate 2", "4Z-GB-SK" => "For Scottish Curriculum Higher", "4Z-GB-SL" => "For Scottish Curriculum Advanced Higher", - "4Z-GB-V" => "For UK vocational courses", - "4Z-GB-VC" => "For NVQ / SVQ (National / Scottish Vocational Qualification)", - "4Z-GB-VN" => "For GNVQ (General National Vocational Qualification)", - "4Z-GB-VS" => "For GSVQ (General Scottish Vocational Qualification)", - "4Z-GB-VT" => "For BTEC (Business And Technology Education Council)", + "4Z-GB-V" => "For UK vocational courses, certificates, qualifications and diplomas", + "4Z-GB-VC" => "For Vocational Qualifications (England)", + "4Z-GB-VCT" => "Designed / suitable for T Levels (England)", + "4Z-GB-VN" => "For vocational qualifications (England, Wales, Northern Ireland)", + "4Z-GB-VS" => "For Scottish vocational qualifications (and apprenticeship)", + "4Z-GB-VSA" => "For Scottish vocational qualifications – Level 1", + "4Z-GB-VSB" => "For Scottish vocational qualifications – Level 2", + "4Z-GB-VSC" => "For Scottish vocational qualifications – Level 3", + "4Z-GB-VSD" => "For Scottish Vocational Qualifications – Level 4", + "4Z-GB-VSE" => "For Scottish vocational qualifications – Level 5", + "4Z-GB-VT" => "For UK Awarding Bodies in vocational, technical and professional education", + "4Z-GB-VTA" => "For BTEC (Business And Technology Education Council)", + "4Z-GB-VTB" => "For CACHE / NCFE qualification", + "4Z-GB-VTC" => "For Cambridge Nationals", + "4Z-GB-VTD" => "For City and Guilds qualifications", + "4Z-GB-W" => "For the educational curricula of Wales", + "4Z-GB-WV" => "For Welsh vocational or technical qualifications", "4Z-GT-" => "For the educational curriculum of Guatemala", "4Z-HN-" => "For the educational curriculum of Honduras", - "4Z-IE-" => "For Irish educational curricula", + "4Z-IE-" => "For the educational curriculum of Ireland", "4Z-IE-P" => "For Irish primary level curriculum", "4Z-IE-S" => "For Irish secondary level curriculum", "4Z-IE-SJ" => "For Irish Junior Certificate curriculum", "4Z-IE-SL" => "For Irish Leaving Certificate curriculum", - "4Z-IN-" => "For the educational curriculum of India", + "4Z-IN-" => "For educational curricula of India", "4Z-IN-A" => "For Primary education (India)", "4Z-IN-AA" => "For Class 1 (India)", "4Z-IN-AB" => "For Class 2 (India)", @@ -7216,10 +7893,10 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-IN-DB" => "For Class 12 (India)", "4Z-IN-E" => "For School Exam Boards (India)", "4Z-IN-EB" => "Central Board of Secondary Education (CBSE) Curriculum", - "4Z-IN-ED" => "Indian School Certificate(ISC) and Indian Certificate of Secondary education(ICSE) Books", - "4Z-IN-EG" => "National Talent Search Examination(NTSE)", + "4Z-IN-ED" => "Indian School Certificate (ISC) and Indian Certificate of Secondary education (ICSE)", + "4Z-IN-EG" => "National Talent Search Examination (NTSE)", "4Z-IN-EJ" => "For Olympiad Exams", - "4Z-IN-EN" => "National Council of Educational Research and Training(NCERT)", + "4Z-IN-EN" => "National Council of Educational Research and Training (NCERT)", "4Z-IN-F" => "For Indian State level education, exams and qualifications", "4Z-IN-FB" => "For Indian State Level School Boards", "4Z-IN-FD" => "For Indian State Level Public Service Exams", @@ -7232,29 +7909,29 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-IN-GD" => "For Regional Engineering Entrance Exams (India)", "4Z-IN-H" => "For Medical Qualifications / Entrance Exams (India)", "4Z-IN-HB" => "National Eligibility cum Entrance Test (NEET-UG)", - "4Z-IN-HD" => "All India Institute of Medical Science(AIIMS) and Jawaharlal Institute of Postgraduate Medical Education and Research (JIPMER)", + "4Z-IN-HD" => "All India Institute of Medical Science (AIIMS) and Jawaharlal Institute of Postgraduate Medical Education and Research (JIPMER)", "4Z-IN-HF" => "Bachelor of Pharmacy (B. Pharma) and Nursing Entrance exam", "4Z-IN-K" => "For Accounting, banking, finance and Insurance Qualifications / Exams (India)", "4Z-IN-KA" => "For Chartered Accountant (CA) Exam (India)", - "4Z-IN-KB" => "Chartered Financial Accountant(CFA) Exam (India)", + "4Z-IN-KB" => "Chartered Financial Accountant (CFA) Exam (India)", "4Z-IN-KC" => "For Actuaries Qualifications / Exams (India)", "4Z-IN-KF" => "For Banking Qualifications / Exams (India)", "4Z-IN-L" => "For Law / Legal Professions Exams and qualifications (India)", "4Z-IN-M" => "For Management / Business Administration Exams / tests (India)", "4Z-IN-N" => "For Vocational, technical and professional Qualifications / Exams (India)", - "4Z-IN-NA" => "For Agriculture Entrance Exams/ Pre Veterinary and Fisheries Test (PVT)", + "4Z-IN-NA" => "For Agriculture Entrance Exams / Pre-Veterinary and Fisheries Test (PVT)", "4Z-IN-P" => "For Indian Defence Service Exams", - "4Z-IN-PB" => "National Defence Academy/ Combined Defence Services (NDA/CDS)", + "4Z-IN-PB" => "National Defence Academy / Combined Defence Services (NDA / CDS)", "4Z-IN-PD" => "Indian Airforce Recruitment tests", "4Z-IN-PE" => "Indian Army Recruitment tests", "4Z-IN-PF" => "Indian Navy Recruitment tests", "4Z-IN-Q" => "For Civil Service Examinations (India)", - "4Z-IN-QB" => "Civil Services Examination(CSE)/Indian Foreign Services(IFS)", + "4Z-IN-QB" => "Civil Services Examination (CSE) / Indian Foreign Services (IFS) exams", "4Z-IN-QD" => "Engineering Services Examination (ESE)", "4Z-IN-QF" => "For Staff Selection Commission (SSC) Exams", "4Z-IN-QT" => "For Indian Teaching professions and research tests and exams", "4Z-IN-QTB" => "Central Teacher Eligibility Test (CTET)", - "4Z-IN-QTD" => "Post- Graduate Teacher / Trained Graduate Teacher( PGT/TGT) Tests", + "4Z-IN-QTD" => "Post-Graduate Teacher / Trained Graduate Teacher (PGT / TGT) Tests", "4Z-IN-QTF" => "National Eligibility Tests (NET)", "4Z-IN-QTH" => "State Eligibility Tests (SET)", "4Z-IN-R" => "For Indian Central government recruitment tests or entrance exams", @@ -7265,7 +7942,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-IN-RH" => "For Ordnance Trade Apprentice recruitment tests", "4Z-IN-RJ" => "For Intelligence Bureau (IB) Exams", "4Z-IN-RK" => "For Food Corporation of India (FCI) recruitment exams", - "4Z-IN-T" => "For School Entrance Exams / Admission tests(India)", + "4Z-IN-T" => "For School Entrance Exams / Admission tests (India)", "4Z-IN-TC" => "Central Hindu School (CHS) Entrance Exam", "4Z-IN-TD" => "Jawahar Navodya Vidyalya schools entrance exams", "4Z-IN-TN" => "For Military Academies and Schools Entrance Exams /Admissions tests (India)", @@ -7282,24 +7959,24 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-IN-VBT" => "For Indian Institute of Technology Joint Admission Test (IIT JAM)", "4Z-IN-VD" => "For Industrial Training Institutes (ITI) qualifications and exams", "4Z-IN-VF" => "For Polytechnic qualifications and exams (India)", - "4Z-IT-" => "For Italian educational curricula", - "4Z-IT-A" => "For Italian high school & teacher training education", + "4Z-IT-" => "For the educational curriculum of Italy", + "4Z-IT-A" => "For Italian high school and teacher training education", "4Z-IT-AC" => "For Italian high school (with Classics specialism)", "4Z-IT-AD" => "For Italian high school (with Science specialism)", "4Z-IT-AG" => "For Italian high school (with Languages specialism)", "4Z-IT-AH" => "For Italian high school (aimed at developing European values and identity)", "4Z-IT-AL" => "For Italian high school (aimed at developing international language skills specific to the specialism chosen)", "4Z-IT-AN" => "For Italian high school (with Humanities and Social science specialism)", - "4Z-IT-AP" => "For other Italian high schools & educational curricula", + "4Z-IT-AP" => "For other Italian high schools and educational curricula", "4Z-IT-AR" => "For Italian teacher training (for former Italian primary school teacher training)", "4Z-IT-AS" => "For Italian teacher training (for former Italian nursery school teacher training)", "4Z-IT-C" => "For artistic education (Italy)", "4Z-IT-CB" => "For Italian high school (with Arts specialism)", "4Z-IT-CE" => "For Italian school of art / art college", "4Z-IT-E" => "For professional education (Italy)", - "4Z-IT-EA" => "For Italian professional institute of agriculture & environment", - "4Z-IT-EC" => "For Italian professional institute of industry & handicraft", - "4Z-IT-EF" => "For Italian professional institute of commerce & tourism", + "4Z-IT-EA" => "For Italian professional institute of agriculture and environment", + "4Z-IT-EC" => "For Italian professional institute of industry and handicraft", + "4Z-IT-EF" => "For Italian professional institute of commerce and tourism", "4Z-IT-EH" => "For Italian professional institute of advertising", "4Z-IT-EL" => "For Italian professional institute of hotel management", "4Z-IT-EN" => "For Italian professional institute of social services", @@ -7308,7 +7985,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-IT-ES" => "For other Italian professional institutes", "4Z-IT-G" => "For technical education (Italy)", "4Z-IT-GB" => "For Italian technical institute of commerce (chartered accounting)", - "4Z-IT-GD" => "For Italian technical institute of business & foreign languages", + "4Z-IT-GD" => "For Italian technical institute of business and foreign languages", "4Z-IT-GF" => "For Italian technical institute of Industry", "4Z-IT-GH" => "For Italian technical institute of agriculture", "4Z-IT-GL" => "For Italian technical institute of surveying", @@ -7316,10 +7993,10 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-IT-GP" => "For Italian technical institute of aeronautics", "4Z-IT-GT" => "For Italian technical institute of tourism", "4Z-IT-GZ" => "For other Italian technical institutes", - "4Z-JP-" => "For the educational curricula of Japan", + "4Z-JP-" => "For the educational curriculum of Japan", "4Z-JP-A" => "For pre-school learning (Japan)", "4Z-JP-AA" => "For nursery education (Japan)", - "4Z-JP-AB" => "For ECEC - Early Childhood Education and Care centres (Japan)", + "4Z-JP-AB" => "For ECEC – Early Childhood Education and Care centres (Japan)", "4Z-JP-AC" => "For kindergarten (Japan)", "4Z-JP-ACA" => "For the first year of kindergarten (Japan)", "4Z-JP-ACB" => "For the second year of kindergarten (Japan)", @@ -7336,20 +8013,20 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-JP-CB" => "For junior high school learning year 2 (Japan)", "4Z-JP-CC" => "For junior high school learning year 3 (Japan)", "4Z-JP-D" => "For high school / technical college learning (Japan)", - "4Z-JP-DA" => "For high school learning - general course (Japan)", - "4Z-JP-DAA" => "For high school learning - general course year 1 (Japan)", - "4Z-JP-DAB" => "For high school learning - general course year 2 (Japan)", - "4Z-JP-DAC" => "For high school learning - general course year 3 (Japan)", - "4Z-JP-DB" => "For high school learning - specialised course (Japan)", - "4Z-JP-DBA" => "For high school learning - specialised course year 1 (Japan)", - "4Z-JP-DBB" => "For high school learning - specialised course year 2 (Japan)", - "4Z-JP-DBC" => "For high school learning - specialised course year 3 (Japan)", + "4Z-JP-DA" => "For high school learning – general course (Japan)", + "4Z-JP-DAA" => "For high school learning – general course year 1 (Japan)", + "4Z-JP-DAB" => "For high school learning – general course year 2 (Japan)", + "4Z-JP-DAC" => "For high school learning – general course year 3 (Japan)", + "4Z-JP-DB" => "For high school learning – specialised course (Japan)", + "4Z-JP-DBA" => "For high school learning – specialised course year 1 (Japan)", + "4Z-JP-DBB" => "For high school learning – specialised course year 2 (Japan)", + "4Z-JP-DBC" => "For high school learning – specialised course year 3 (Japan)", "4Z-JP-DC" => "For technical college learning (Japan)", "4Z-JP-E" => "For special needs education (Japan)", - "4Z-JP-EA" => "For special needs education - pre-school section (Japan)", - "4Z-JP-EB" => "For special needs education - elementary school section (Japan)", - "4Z-JP-EC" => "For special needs education - junior high school section (Japan)", - "4Z-JP-ED" => "For special needs education - senior high school section (Japan)", + "4Z-JP-EA" => "For special needs education – pre-school section (Japan)", + "4Z-JP-EB" => "For special needs education – elementary school section (Japan)", + "4Z-JP-EC" => "For special needs education – junior high school section (Japan)", + "4Z-JP-ED" => "For special needs education – senior high school section (Japan)", "4Z-JP-F" => "For Institution under the control of the government (Japan)", "4Z-JP-G" => "For university / college learning (Japan)", "4Z-JP-H" => "For graduate school learning (Japan)", @@ -7365,11 +8042,18 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-JP-KJA" => "For National Centre Test for University Admissions (Japan)", "4Z-JP-KK" => "For graduate school entrance examination (Japan)", "4Z-MX-" => "For the educational curriculum of Mexico", + "4Z-MX-A" => "for Preschool education (Mexico)", + "4Z-MX-B" => "For Primary education (Mexico)", + "4Z-MX-C" => "For Secondary Education (Mexico)", + "4Z-MX-D" => "Higher Secondary Education – Bachillerato (Mexico)", + "4Z-MX-E" => "For Higher education (Mexico)", + "4Z-MX-F" => "For Vocational or technical education (Mexico)", "4Z-NI-" => "For the educational curriculum of Nicaragua", "4Z-NO-" => "For the educational curriculum of Norway", "4Z-NO-A" => "KL06 Kunnskapsløftet", "4Z-NO-B" => "LK20 Fagfornyelsen", "4Z-NO-C" => "LK20S Fagfornyelsen (sami curricula)", + "4Z-NZ-" => "For the educational curriculum of New Zealand", "4Z-PA-" => "For the educational curriculum of Panama", "4Z-PA-A" => "Primary Education (Panama)", "4Z-PA-B" => "Pre-secondary or secondary education (Panama)", @@ -7385,16 +8069,17 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-PL-D" => "Polish vocational or professional exams", "4Z-PL-E" => "Polish secondary school leaving exams (Matura)", "4Z-PY-" => "For the educational curriculum of Paraguay", + "4Z-SG-" => "For the educational curriculum of Singapore", "4Z-SV-" => "For the educational curriculum of El Salvador", - "4Z-US-" => "For US educational curricula", + "4Z-US-" => "For educational curricula of the USA", "4Z-US-A" => "For SAT (Scholastic Assessment Test) (USA)", "4Z-US-B" => "For ACT (American College Testing) (USA)", "4Z-US-C" => "For GED (General Educational Development Tests) (USA)", - "4Z-US-D" => "For GMAT (Graduate Management Admission Test) (USA)", + "4Z-US-D" => "For GMAT (Graduate Management Admission Test)", "4Z-US-E" => "For GRE (Graduate Record Examination) (USA)", "4Z-US-F" => "For LSAT (Law School Admission Test) (USA)", "4Z-US-G" => "For MCAT (Medical College Admission Test) (USA)", - "4Z-US-H" => "For PSAT & NMSQT (National Merit Scholarship Qualifying Test) (USA)", + "4Z-US-H" => "For PSAT and NMSQT (National Merit Scholarship Qualifying Test) (USA)", "4Z-US-I" => "For NTE (National Teacher Examinations) (USA)", "4Z-US-J" => "For NCLEX (National Council Licensure Examination) (USA)", "4Z-US-L" => "For Legal Bar (USA)", @@ -7404,6 +8089,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "4Z-US-P" => "For Armed Forces (USA)", "4Z-UY-" => "For the educational curriculum of Uruguay", "4Z-VE-" => "For the educational curriculum of Venezuela", + "4Z-ZA-" => "For the educational curriculum of South Africa", + "5" => "Interest qualifiers", "5A" => "Interest age / level", "5AB" => "For children c 0–36 months", "5ABB" => "For babies from birth", @@ -7429,28 +8116,41 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "5AU" => "Interest age: from c 17 years", "5AX" => "For adult emergent readers", "5AZ" => "For people with learning / communication difficulties", - "5H" => "Holidays, events & seasonal interest", - "5HC" => "Holidays & celebrations", + "5H" => "Holidays, events and seasonal interest", + "5HC" => "Holidays and celebrations", "5HCA" => "New Year", - "5HCC" => "Chinese New Year", - "5HCE" => "Valentine’s Day", + "5HCB" => "Days of commemoration", + "5HCBA" => "Holocaust Memorial or Remembrance Days", + "5HCB-AR-B" => "May Revolution Day (Argentina)", + "5HCB-AR-D" => "Day of Remembrance for Truth and Justice", + "5HCB-MX-B" => "Mexican Revolution Day", + "5HCC" => "Chinese (Lunar) New Year", + "5HCD" => "Independence Days", + "5HC-US-A" => "US Independence Day", + "5HCE" => "Valentine’s Day / Lovers’ days", + "5HCF" => "National / Constitution Days", + "5HC-CN-G" => "Chinese National Day", "5HCG" => "Carnival / Mardi Gras", + "5HCH" => "International Women’s Day", "5HCJ" => "Mother’s Day", + "5HCK" => "Children’s Day", "5HCL" => "Father’s Day", "5HCM" => "Midsummer", - "5HCN" => "Mid-Autumn festival", + "5HCN" => "Mid-Autumn Festival", "5HCP" => "Hallowe’en", + "5HCQ" => "Festivals of the Dead / Ancestors", + "5HC-CN-Q" => "Ancestors’ Day", + "5HC-MX-D" => "Day of the Dead / Día de Muertos", "5HCR" => "Harvest Festivals", "5HCS" => "Thanksgiving", + "5HCT" => "Indigenous Peoples / Cultural Diversity Days", + "5HCU" => "World Book Day", "5HCV" => "Midwinter", "5HCW" => "International Workers Day (Labour Day)", + "5HCX" => "Traditional, cultural or folkloric festivals, celebrations or holidays", "5HC-CN-D" => "Dragon Boat Festival", - "5HC-CN-G" => "Chinese National Day", - "5HC-CN-Q" => "Ancestors’ Day", - "5HC-IE-B" => "St Brigid’s Day", - "5HC-IE-P" => "St Patrick’s Day", - "5HC-MX-D" => "Day of the Dead / Día de Muertos", - "5HC-US-A" => "US Independence Day", + "5HC-IE-B" => "Saint Brigid’s Day", + "5HC-IE-P" => "Saint Patrick’s Day", "5HK" => "Special events", "5HKA" => "Birthdays", "5HKB" => "Back to School", @@ -7462,10 +8162,11 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "5HKU" => "Engagement / Wedding / Marriage", "5HKV" => "Coming of age celebrations / festivals / rituals", "5HP" => "Religious holidays", - "5HP-NL-N" => "Saint Nicholas Day", "5HPD" => "Christmas", "5HPDA" => "Advent", + "5HPDE" => "Epiphany", "5HPF" => "Easter", + "5HPFH" => "Holy Week", "5HPG" => "Holi (Festival of Colours)", "5HPH" => "Diwali", "5HPK" => "Ramadan", @@ -7475,6 +8176,10 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "5HPV" => "Passover (Pesach)", "5HPW" => "Rosh Hashanah", "5HPWY" => "Yom Kippur", + "5HPY" => "Other religious holidays, festivals or celebrations", + "5HPYC" => "Feast of Corpus Christi", + "5HPY-MX-G" => "Day of the Virgin of Guadalupe", + "5HP-NL-N" => "Saint Nicholas Day", "5HR" => "Seasonal interest", "5HRA" => "Seasonal interest: Spring", "5HRB" => "Seasonal interest: Summer", @@ -7483,8 +8188,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "5HRD" => "Seasonal interest: Winter", "5HRD-FI-P" => "Polar night", "5J" => "Intended for specific groups", - "5JA" => "Intended specifically for women and/or girls", - "5JB" => "Intended specifically for men and/or boys", + "5JA" => "Intended primarily or specifically for women and/or girls", + "5JB" => "Intended primarily or specifically for men and/or boys", "5L" => "Relating to the stages of life", "5LB" => "Relating to infancy", "5LC" => "Relating to childhood", @@ -7494,12 +8199,17 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "5LKE" => "Relating to early adulthood", "5LKM" => "Relating to middle adulthood", "5LKS" => "Relating to late adulthood / old age", - "5P" => "Relating to specific groups & cultures or social & cultural interests", - "5PB" => "Relating to peoples: ethnic groups, indigenous peoples, cultures, tribes & other groupings of people", - "5PBR" => "Relating to Romani people & Travellers", + "5P" => "Relating to specific groups and cultures or social and cultural interests", + "5PB" => "Relating to peoples: ethnic groups, indigenous peoples, cultures, tribes and other groupings of people", + "5PBA" => "Relating to indigenous peoples", + "5PBC" => "Relating to migrant groups / communities", + "5PBD" => "Relating to peoples of African descent", + "5PBK" => "Relating to Kurdish people", + "5PBR" => "Relating to Romani people and Travellers", "5PBR-IE-T" => "Relating to Irish Travellers", "5PBS" => "Relating to Sami people", - "5PB-AU-A" => "Relating to Australian Aboriginal & Torres Strait Islanders", + "5PB-AU-A" => "Relating to Australian Aboriginal peoples and Torres Strait Islanders", + "5PB-GB-M" => "Relating to Black, Asian and Minority Ethnic (BAME) peoples", "5PB-GB-A" => "Relating to British Asian people", "5PB-GB-AE" => "Relating to British East Asian people", "5PB-GB-AS" => "Relating to British South Asian people", @@ -7517,28 +8227,38 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "5PB-US-G" => "Relating to Cajun people", "5PB-US-H" => "Relating to Latin / Hispanic American people", "5PG" => "Relating to religious groups", - "5PGC" => "Relating to Confucian people & groups", - "5PGD" => "Relating to Hindu people & groups", - "5PGF" => "Relating to Buddhist people & groups", - "5PGJ" => "Relating to Jewish people & groups", - "5PGM" => "Relating to Christian people & groups", - "5PGP" => "Relating to Islamic people & groups", - "5PGS" => "Relating to Shinto people & groups", - "5PGT" => "Relating to Taoist people & groups", - "5PS" => "Relating to Gay, Lesbian & bisexual people", - "5PSB" => "Relating to bisexuals", + "5PGC" => "Relating to Confucian people and groups", + "5PGD" => "Relating to Hindu people and groups", + "5PGF" => "Relating to Buddhist people and groups", + "5PGJ" => "Relating to Jewish people and groups", + "5PGM" => "Relating to Christian people and groups", + "5PGP" => "Relating to Islamic / Muslim people and groups", + "5PGS" => "Relating to Shinto people and groups", + "5PGT" => "Relating to Taoist people and groups", + "5PM" => "Relating to people with visible or hidden disabilities, impairments or conditions", + "5PMB" => "Relating to people with mobility or physical disabilities or impairments", + "5PMD" => "Relating to people with visual disabilities or impairments", + "5PMF" => "Relating to people with hearing disabilities or impairments", + "5PMH" => "Relating to people on the autism spectrum", + "5PMJ" => "Relating to people with learning disorders, difficulties or disabilities", + "5PMN" => "Relating to people with degenerative conditions", + "5PMP" => "Relating to people with hidden or invisible disabilities", + "5PS" => "Relating to LGBTQ+ people", + "5PSB" => "Relating to bisexuals or pansexuals", "5PSG" => "Relating to gay people", "5PSL" => "Relating to lesbians", - "5PT" => "Relating to transgender people", + "5PT" => "Relating to Trans / Transgender people or gender minorities", + "5PV" => "Relating to asexual or aromantic people", "5PX" => "Relating to specific and significant cultural interests", "5PX-GB-S" => "Shakespeare", - "5X" => "Contains explicit material", + "5X" => "Contains explicit or offensive material or content", + "6" => "Style qualifiers", "6A" => "Styles (A)", "6AA" => "Abstractism", "6AB" => "Abstract Expressionism", "6AC" => "Art Deco", "6AD" => "Art Nouveau", - "6AF" => "Arts & Crafts", + "6AF" => "Arts and Crafts", "6AG" => "Academic style, Academism, Academicism", "6AH" => "Aestheticism", "6AJ" => "Altermodernism", @@ -7548,6 +8268,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6AN" => "Arte Povera", "6AP" => "Assemblage", "6AQ" => "Avant-garde", + "6AR" => "Afrofuturism", "6B" => "Styles (B)", "6BA" => "Baroque", "6BB" => "Barbizon school", @@ -7562,6 +8283,7 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6BM" => "Blues", "6BN" => "Die Brücke", "6BP" => "Byzantine style", + "6BQ" => "Brutalism", "6C" => "Styles (C)", "6CA" => "Classical style", "6CB" => "Cubism", @@ -7573,8 +8295,9 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6CJ" => "Computer art", "6CK" => "Conceptualism", "6CL" => "Constructivism", - "6CM" => "Country & Western", + "6CM" => "Country and Western", "6CN" => "Cubo-Futurism", + "6CP" => "Colonial style", "6D" => "Styles (D)", "6DA" => "Dada", "6DB" => "Divisionism", @@ -7588,17 +8311,20 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6EG" => "Ancient Egyptian style", "6EH" => "Epic", "6EJ" => "Elegy", + "6EK" => "EDM (Electronic Dance Music)", "6F" => "Styles (F)", "6FA" => "Fauvism", "6FB" => "Fado", "6FC" => "Flamenco", - "6FD" => "Folk style", + "6FD" => "Folk, Folkloric styles", "6FF" => "Futurism", "6FG" => "Fantasy art", "6G" => "Styles (G)", "6GA" => "Gothic", "6GB" => "Georgian style", "6GC" => "Ancient Greek style", + "6GD" => "Gospel style", + "6GE" => "Gauchoesque style (gauchesco)", "6H" => "Styles (H)", "6HA" => "Metal, Heavy Metal", "6HB" => "Hague School", @@ -7610,13 +8336,16 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6JD" => "Jazz", "6JF" => "Jack of Diamonds", "6JG" => "Jugendstil", + "6JL" => "Islamic styles", + "6JN" => "Indigenous styles", "6K" => "Styles (K)", "6L" => "Styles (L)", "6LA" => "Lettrism", "6LB" => "Lyric", + "6LC" => "Latin style", "6M" => "Styles (M)", "6MA" => "Mannerism", - "6MB" => "Mediaeval style", + "6MB" => "Medieval style", "6MC" => "Modernism", "6MD" => "Macchiaioli", "6MF" => "Minimalism", @@ -7624,10 +8353,13 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6MH" => "Mir iskusstva", "6MJ" => "Mozarabic style", "6MK" => "Ancient Mycenaean style", + "6MM" => "Mid-century modern", + "6MN" => "Muralism", + "6MQ" => "Mughal style", "6N" => "Styles (NO)", "6NA" => "Naive style", "6NB" => "Naturalism", - "6NC" => "Op art", + "6NC" => "Op art, Kinetic art", "6ND" => "Outsider art, Art brut", "6NE" => "Orientalism", "6NF" => "Les Nabis", @@ -7652,6 +8384,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6PM" => "Psychedelic", "6PN" => "Punk", "6PP" => "Purism", + "6PQ" => "Pre-Columbian styles", + "6PR" => "Persian / Iranian styles", "6Q" => "Styles (Q)", "6QA" => "Queen Anne style", "6R" => "Styles (R)", @@ -7661,10 +8395,10 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6RD" => "Rococo", "6RE" => "Regency", "6RF" => "Rock", - "6RG" => "Rock & Roll", - "6RH" => "Rhythm & blues, R’n’B", - "6RJ" => "Rap & Hip Hop", - "6RK" => "Reggae & Ska", + "6RG" => "Rock and Roll", + "6RH" => "Rhythm and blues, R’n’B", + "6RJ" => "Rap and Hip Hop", + "6RK" => "Reggae and Ska", "6RL" => "Rayonism", "6RM" => "Realism", "6RN" => "Relational art", @@ -7673,8 +8407,8 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6RR" => "Ancient Roman style", "6S" => "Styles (S)", "6SA" => "Surrealism", - "6SB" => "Soul & Funk", - "6SC" => "Samba & Bossa Nova", + "6SB" => "Soul and Funk", + "6SC" => "Samba and Bossa Nova", "6SD" => "Schweizerischer Werkbund", "6SF" => "Scuola Romana", "6SG" => "Secession Groups", @@ -7697,7 +8431,10 @@ static THEMA_CODES: Map<&'static str, &'static str> = phf_map! { "6TB" => "Tachism", "6TC" => "Tartessian style", "6TE" => "Transavanguardia", + "6TF" => "Turkish / Ottoman styles", "6U" => "Styles (U)", + "6UB" => "Urban / ‘Street’ styles", + "6UC" => "Ukiyo-e", "6V" => "Styles (V)", "6VA" => "Vienna Secession", "6VB" => "Viking style", From e4e2bd0979c39541ce330c6fbad5de2798432a7f Mon Sep 17 00:00:00 2001 From: rhigman <73792779+rhigman@users.noreply.github.com> Date: Mon, 13 Dec 2021 14:02:35 +0000 Subject: [PATCH 4/6] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22f80afc..7892d431 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Removed redundant closures and `impl`s to comply with [`rustc 1.57.0`](https://github.com/rust-lang/rust/releases/tag/1.57.0) +### Fixed + - [#309](https://github.com/thoth-pub/thoth/issues/309) - Update Thema codes to v1.4 + ## [[0.6.0]](https://github.com/thoth-pub/thoth/releases/tag/v0.6.0) - 2021-11-29 ### Added - [#92](https://github.com/thoth-pub/thoth/issues/92) - Implement institution table, replacing funder and standardising contributor affiliations From 510e8a455931e95ab2d2125eadfb37c5c8e141bd Mon Sep 17 00:00:00 2001 From: Javier Arias Date: Mon, 13 Dec 2021 16:02:08 +0000 Subject: [PATCH 5/6] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7892d431..53e78067 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] + +## [[0.6.1]](https://github.com/thoth-pub/thoth/releases/tag/v0.6.1) - 2021-12-13 ### Changed - Removed redundant closures and `impl`s to comply with [`rustc 1.57.0`](https://github.com/rust-lang/rust/releases/tag/1.57.0) From acd4c0741c8deac66c8e2384a96c29d44fb2fcb4 Mon Sep 17 00:00:00 2001 From: Javier Arias Date: Mon, 13 Dec 2021 16:14:55 +0000 Subject: [PATCH 6/6] Bump v0.6.1 --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ thoth-api-server/Cargo.toml | 6 +++--- thoth-api/Cargo.toml | 4 ++-- thoth-app-server/Cargo.toml | 2 +- thoth-app/Cargo.toml | 6 +++--- thoth-app/manifest.json | 2 +- thoth-client/Cargo.toml | 6 +++--- thoth-errors/Cargo.toml | 2 +- thoth-export-server/Cargo.toml | 8 ++++---- 10 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9d44ab8e..7e58d9d4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3936,7 +3936,7 @@ dependencies = [ [[package]] name = "thoth" -version = "0.6.0" +version = "0.6.1" dependencies = [ "cargo-husky", "clap", @@ -3951,7 +3951,7 @@ dependencies = [ [[package]] name = "thoth-api" -version = "0.6.0" +version = "0.6.1" dependencies = [ "actix-web", "argon2rs", @@ -3980,7 +3980,7 @@ dependencies = [ [[package]] name = "thoth-api-server" -version = "0.6.0" +version = "0.6.1" dependencies = [ "actix-cors", "actix-identity", @@ -3995,7 +3995,7 @@ dependencies = [ [[package]] name = "thoth-app" -version = "0.6.0" +version = "0.6.1" dependencies = [ "anyhow", "chrono", @@ -4018,7 +4018,7 @@ dependencies = [ [[package]] name = "thoth-app-server" -version = "0.6.0" +version = "0.6.1" dependencies = [ "actix-cors", "actix-web", @@ -4027,7 +4027,7 @@ dependencies = [ [[package]] name = "thoth-client" -version = "0.6.0" +version = "0.6.1" dependencies = [ "chrono", "graphql_client", @@ -4041,7 +4041,7 @@ dependencies = [ [[package]] name = "thoth-errors" -version = "0.6.0" +version = "0.6.1" dependencies = [ "actix-web", "csv", @@ -4056,7 +4056,7 @@ dependencies = [ [[package]] name = "thoth-export-server" -version = "0.6.0" +version = "0.6.1" dependencies = [ "actix-cors", "actix-web", diff --git a/Cargo.toml b/Cargo.toml index b0958617..6f5a50de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" @@ -16,11 +16,11 @@ maintenance = { status = "actively-developed" } members = ["thoth-api", "thoth-api-server", "thoth-app", "thoth-app-server", "thoth-client", "thoth-errors", "thoth-export-server"] [dependencies] -thoth-api = { version = "0.6.0", path = "thoth-api", features = ["backend"] } -thoth-api-server = { version = "0.6.0", path = "thoth-api-server" } -thoth-app-server = { version = "0.6.0", path = "thoth-app-server" } -thoth-errors = { version = "0.6.0", path = "thoth-errors" } -thoth-export-server = { version = "0.6.0", path = "thoth-export-server" } +thoth-api = { version = "0.6.1", path = "thoth-api", features = ["backend"] } +thoth-api-server = { version = "0.6.1", path = "thoth-api-server" } +thoth-app-server = { version = "0.6.1", path = "thoth-app-server" } +thoth-errors = { version = "0.6.1", path = "thoth-errors" } +thoth-export-server = { version = "0.6.1", path = "thoth-export-server" } clap = "2.33.3" dialoguer = "0.7.1" dotenv = "0.9.0" diff --git a/thoth-api-server/Cargo.toml b/thoth-api-server/Cargo.toml index ceacafd5..68719945 100644 --- a/thoth-api-server/Cargo.toml +++ b/thoth-api-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth-api-server" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" @@ -9,8 +9,8 @@ repository = "https://github.com/thoth-pub/thoth" readme = "README.md" [dependencies] -thoth-api = { version = "0.6.0", path = "../thoth-api", features = ["backend"] } -thoth-errors = { version = "0.6.0", path = "../thoth-errors" } +thoth-api = { version = "0.6.1", path = "../thoth-api", features = ["backend"] } +thoth-errors = { version = "0.6.1", path = "../thoth-errors" } actix-web = "3.3.2" actix-cors = "0.5.4" actix-identity = "0.3.1" diff --git a/thoth-api/Cargo.toml b/thoth-api/Cargo.toml index 85aa8bda..d4e4a2e9 100644 --- a/thoth-api/Cargo.toml +++ b/thoth-api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth-api" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" @@ -16,7 +16,7 @@ maintenance = { status = "actively-developed" } backend = ["diesel", "diesel-derive-enum", "diesel_migrations", "futures", "actix-web"] [dependencies] -thoth-errors = { version = "0.6.0", path = "../thoth-errors" } +thoth-errors = { version = "0.6.1", path = "../thoth-errors" } actix-web = { version = "3.3.2", optional = true } argon2rs = "0.2.5" isbn2 = "0.4.0" diff --git a/thoth-app-server/Cargo.toml b/thoth-app-server/Cargo.toml index 517c2987..3005fb35 100644 --- a/thoth-app-server/Cargo.toml +++ b/thoth-app-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth-app-server" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" diff --git a/thoth-app/Cargo.toml b/thoth-app/Cargo.toml index b5e50c04..f49249e4 100644 --- a/thoth-app/Cargo.toml +++ b/thoth-app/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth-app" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" @@ -33,5 +33,5 @@ serde = { version = "1.0.115", features = ["derive"] } serde_json = "1.0" url = "2.1.1" uuid = { version = "0.7", features = ["serde", "v4"] } -thoth-api = { version = "0.6.0", path = "../thoth-api" } -thoth-errors = { version = "0.6.0", path = "../thoth-errors" } +thoth-api = { version = "0.6.1", path = "../thoth-api" } +thoth-errors = { version = "0.6.1", path = "../thoth-errors" } diff --git a/thoth-app/manifest.json b/thoth-app/manifest.json index dc2c2656..a39c9886 100644 --- a/thoth-app/manifest.json +++ b/thoth-app/manifest.json @@ -9,7 +9,7 @@ "start_url": "/?homescreen=1", "background_color": "#ffffff", "theme_color": "#ffdd57", - "version": "0.6.0", + "version": "0.6.1", "icons": [ { "src": "\/android-icon-36x36.png", diff --git a/thoth-client/Cargo.toml b/thoth-client/Cargo.toml index f8e25076..79e7826e 100644 --- a/thoth-client/Cargo.toml +++ b/thoth-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth-client" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" @@ -9,8 +9,8 @@ repository = "https://github.com/thoth-pub/thoth" readme = "README.md" [dependencies] -thoth-api = {version = "0.6.0", path = "../thoth-api" } -thoth-errors = {version = "0.6.0", path = "../thoth-errors" } +thoth-api = {version = "0.6.1", path = "../thoth-api" } +thoth-errors = {version = "0.6.1", path = "../thoth-errors" } graphql_client = "0.9.0" chrono = { version = "0.4", features = ["serde"] } reqwest = { version = "0.10", features = ["json"] } diff --git a/thoth-errors/Cargo.toml b/thoth-errors/Cargo.toml index 035f89d4..e0f07fd4 100644 --- a/thoth-errors/Cargo.toml +++ b/thoth-errors/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth-errors" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" diff --git a/thoth-export-server/Cargo.toml b/thoth-export-server/Cargo.toml index d44bebc6..9bef0fda 100644 --- a/thoth-export-server/Cargo.toml +++ b/thoth-export-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "thoth-export-server" -version = "0.6.0" +version = "0.6.1" authors = ["Javier Arias ", "Ross Higman "] edition = "2018" license = "Apache-2.0" @@ -9,9 +9,9 @@ repository = "https://github.com/thoth-pub/thoth" readme = "README.md" [dependencies] -thoth-api = { version = "0.6.0", path = "../thoth-api" } -thoth-errors = { version = "0.6.0", path = "../thoth-errors" } -thoth-client = { version = "0.6.0", path = "../thoth-client" } +thoth-api = { version = "0.6.1", path = "../thoth-api" } +thoth-errors = { version = "0.6.1", path = "../thoth-errors" } +thoth-client = { version = "0.6.1", path = "../thoth-client" } actix-web = "3.3.2" actix-cors = "0.5.4" chrono = { version = "0.4", features = ["serde"] }