#!/bin/bash # Generera alla quiXzoom landningssidor # 15 marknader × 20 use cases = 300 sidor set -e BASE_DIR="/home/bernt/.openclaw/workspace/quixzoom-market-pages" TEMPLATE_DIR="$BASE_DIR/se" # Marknadskonfigurationer declare -A MARKETS=( ["se"]="sv|Sverige|Sweden|SE|150–500 kr|Skatteverket|kr|🇸🇪 Lanseras i Sverige · 1 augusti 2026|quixzoom.se" ["de"]="de|Deutschland|Germany|DE|15–50 €|Finanzamt|€|🇩🇪 Startet in Deutschland · August 2026|quixzoom.de" ["fr"]="fr|France|France|FR|15–50 €|Direction générale des Finances publiques|€|🇫🇷 Lance en France · Août 2026|quixzoom.fr" ["nl"]="nl|Nederland|Netherlands|NL|15–50 €|Belastingdienst|€|🇳🇱 Lanceert in Nederland · Augustus 2026|quixzoom.nl" ["uk"]="en-gb|United Kingdom|United Kingdom|GB|£12–42|HMRC|£|🇬🇧 Launching in the UK · August 2026|quixzoom.co.uk" ["it"]="it|Italia|Italy|IT|15–50 €|Agenzia delle Entrate|€|🇮🇹 Lancio in Italia · Agosto 2026|quixzoom.it" ["es"]="es|España|Spain|ES|15–50 €|Agencia Tributaria|€|🇪🇸 Lanzamiento en España · Agosto 2026|quixzoom.es" ["fi"]="fi|Suomi|Finland|FI|15–50 €|Verohallinto|€|🇫🇮 Lanserar i Finland · Elokuu 2026|quixzoom.fi" ["da"]="da|Danmark|Denmark|DK|100–350 kr|Skattestyrelsen|kr|🇩🇰 Lancering i Danmark · August 2026|quixzoom.dk" ["at"]="de|Österreich|Austria|AT|15–50 €|Bundesministerium für Finanzen|€|🇦🇹 Start in Österreich · August 2026|quixzoom.at" ["be"]="nl|België|Belgium|BE|15–50 €|FOD Financiën|€|🇧🇪 Lancering in België · Augustus 2026|quixzoom.be" ["ch"]="de|Schweiz|Switzerland|CH|15–50 CHF|ESTV|CHF|🇨🇭 Start in der Schweiz · August 2026|quixzoom.ch" ["no"]="no|Norge|Norway|NO|150–500 kr|Skatteetaten|kr|🇳🇴 Lansering i Norge · August 2026|quixzoom.no" ["ie"]="en-ie|Ireland|Ireland|IE|€15–50|Revenue Commissioners|€|🇮🇪 Launching in Ireland · August 2026|quixzoom.ie" ["pl"]="pl|Polska|Poland|PL|60–200 zł|Ministerstwo Finansów|zł|🇵🇱 Start w Polsce · Sierpień 2026|quixzoom.pl" ) # Use cases med översättningar declare -A USE_CASES=( ["bridge-inspection"]="Bridge Inspection|Broinspektion|Brückeninspektion|Inspection de ponts|Bruginspectie|Bridge Inspection|Ispezione ponti|Inspección de puentes|Sillan tarkastus|Broinspektion|Brückeninspektion|Bruginspectie|Brückeninspektion|Broinspeksjon|Bridge Inspection|Inspekcja mostów" ["infrastructure-monitoring"]="Infrastructure Monitoring|Infrastrukturövervakning|Infrastrukturüberwachung|Surveillance d'infrastructure|Infrastructuurmonitoring|Infrastructure Monitoring|Monitoraggio infrastrutture|Monitoreo de infraestructura|Infrastruktuurin valvonta|Infrastrukturovervågning|Infrastrukturüberwachung|Infrastructuurmonitoring|Infrastrukturüberwachung|Infrastrukturovervåking|Infrastructure Monitoring|Monitorowanie infrastruktury" ["property-documentation"]="Property Documentation|Fastighetsdokumentation|Immobiliendokumentation|Documentation immobilière|Vastgoeddocumentatie|Property Documentation|Documentazione immobiliare|Documentación de propiedades|Kiinteistödokumentaatio|Ejendomsdokumentation|Immobiliendokumentation|Vastgoeddocumentatie|Immobiliendokumentation|Eiendomsdokumentasjon|Property Documentation|Dokumentacja nieruchomości" ["storm-damage"]="Storm Damage Assessment|Stormskadebedömning|Sturmschadenbewertung|Évaluation des dégâts de tempête|Stormschadebeoordeling|Storm Damage Assessment|Valutazione danni da tempesta|Evaluación de daños por tormenta|Myrskyvaurioarvio|Stormskadevurdering|Sturmschadenbewertung|Stormschadebeoordeling|Sturmschadenbewertung|Stormskadevurdering|Storm Damage Assessment|Ocena szkód po burzy" ["retail-audit"]="Retail Audit|Butiksaudit|Einzelhandelsaudit|Audit de vente au détail|Retail audit|Retail Audit|Audit retail|Auditoría retail|Vähittäiskaupan tarkastus|Detailhandelsaudit|Einzelhandelsaudit|Retail audit|Einzelhandelsaudit|Detaljhandelsrevisjon|Retail Audit|Audyt detaliczny" ["ooh-audit"]="OOH Audit|OOH-audit|OOH-Audit|Audit OOH|OOH-audit|OOH Audit|Audit OOH|Auditoría OOH|OOH-tarkastus|OOH-audit|OOH-Audit|OOH-audit|OOH-Audit|OOH-revisjon|OOH Audit|Audyt OOH" ["construction-progress"]="Construction Progress|Byggframsteg|Baufortschritt|Progrès de construction|Bouwvoortgang|Construction Progress|Avanzamento lavori|Progreso de construcción|Rakennustyön edistyminen|Byggefremgang|Baufortschritt|Bouwvoortgang|Baufortschritt|Byggefremskridt|Construction Progress|Postęp budowy" ["facade-inspection"]="Facade Inspection|Fasadinspektion|Fassadeninspektion|Inspection de façade|Gevelinspectie|Facade Inspection|Ispezione facciata|Inspección de fachadas|Julkisivutarkastus|Facadeinspektion|Fassadeninspektion|Gevelinspectie|Fassadeninspektion|Fasadeinspeksjon|Facade Inspection|Inspekcja elewacji" ["roof-inspection"]="Roof Inspection|Takinspektion|Dachinspektion|Inspection de toit|Dakinspectie|Roof Inspection|Ispezione tetto|Inspección de tejados|Kattotarkastus|Taginspektion|Dachinspektion|Dakinspectie|Dachinspektion|Takinspeksjon|Roof Inspection|Inspekcja dachu" ["road-condition"]="Road Condition|Vägcondition|Straßenzustand|État des routes|Wegconditie|Road Condition|Condizione stradale|Condición de carreteras|Tien kunto|Vejtilstand|Straßenzustand|Wegconditie|Straßenzustand|Veitilstand|Road Condition|Stan dróg" ["signage-audit"]="Signage Audit|Skyltaudit|Beschilderungsaudit|Audit de signalisation|Signalisatie-audit|Signage Audit|Audit segnaletica|Auditoría de señalización|Opastetarkastus|Skilteaudit|Beschilderungsaudit|Signalisatie-audit|Beschilderungsaudit|Skiltingrevisjon|Signage Audit|Audyt oznakowania" ["parking-audit"]="Parking Audit|Parkeringsaudit|Parkplatz-Audit|Audit de stationnement|Parkeer-audit|Parking Audit|Audit parcheggi|Auditoría de aparcamiento|Pysäköintitarkastus|Parkeringsaudit|Parkplatz-Audit|Parkeer-audit|Parkplatz-Audit|Parkeringsrevisjon|Parking Audit|Audyt parkingów" ["asset-tracking"]="Asset Tracking|Tillgångsspårning|Asset Tracking|Suivi d'actifs|Asset tracking|Asset Tracking|Tracciamento asset|Seguimiento de activos|Omaisuuden seuranta|Asset tracking|Asset Tracking|Asset tracking|Asset Tracking|Eiendomssporing|Asset Tracking|Śledzenie zasobów" ["environmental-survey"]="Environmental Survey|Miljöinventering|Umwelterhebung|Enquête environnementale|Milieudenquête|Environmental Survey|Indagine ambientale|Estudio medioambiental|Ympäristöselvitys|Miljøundersøgelse|Umwelterhebung|Milieudenquête|Umwelterhebung|Miljøundersøkelse|Environmental Survey|Badanie środowiskowe" ["insurance-claim"]="Insurance Claim|Försäkringsärende|Versicherungsfall|Réclamation d'assurance|Verzekeringsclaim|Insurance Claim|Sinistro assicurativo|Reclamación de seguro|Vakuutusvaade|Forsikringskrav|Versicherungsfall|Verzekeringsclaim|Versicherungsfall|Forsikringskrav|Insurance Claim|Roszczenie ubezpieczeniowe" ["lease-audit"]="Lease Audit|Hyresaudit|Lease-Audit|Audit de bail|Lease audit|Lease Audit|Audit locazione|Auditoría de arrendamiento|Vuokraustarkastus|Leasingaudit|Lease-Audit|Lease audit|Lease-Audit|Leasingrevisjon|Lease Audit|Audyt leasingowy" ["event-documentation"]="Event Documentation|Eventdokumentation|Eventdokumentation|Documentation d'événement|Evenementdocumentatie|Event Documentation|Documentazione eventi|Documentación de eventos|Tapahtumadokumentaatio|Begivenhedsdokumentation|Eventdokumentation|Evenementdocumentatie|Eventdokumentation|Arrangementsdokumentasjon|Event Documentation|Dokumentacja wydarzeń" ["pre-purchase-inspection"]="Pre-Purchase Inspection|Köpesbesiktning|Kaufinspektion|Inspection pré-achat|Pre-aankoopinspectie|Pre-Purchase Inspection|Ispezione pre-acquisto|Inspección pre-compra|Esihankintatarkastus|Forhåndskøbsinspektion|Kaufinspektion|Pre-aankoopinspectie|Kaufinspektion|Forhåndsinspeksjon|Pre-Purchase Inspection|Inspekcja przedzakupowa" ["rental-inspection"]="Rental Inspection|Hyresinspektion|Mietinspektion|Inspection locative|Huurinspectie|Rental Inspection|Ispezione locazione|Inspección de alquiler|Vuokraustarkastus|Lejeinspektion|Mietinspektion|Huurinspectie|Mietinspektion|Leieinspeksjon|Rental Inspection|Inspekcja wynajmu" ["accessibility-audit"]="Accessibility Audit|Tillgänglighetsaudit|Barrierefreiheits-Audit|Audit d'accessibilité|Toegankelijkheidsaudit|Accessibility Audit|Audit accessibilità|Auditoría de accesibilidad|Saavutettavuustarkastus|Tilgængelighedsaudit|Barrierefreiheits-Audit|Toegankelijkheidsaudit|Barrierefreiheits-Audit|Universell utforming revisjon|Accessibility Audit|Audyt dostępności" ) # Funktion för att generera en landningssida generate_page() { local market=$1 local use_case=$2 local lang=$(echo "${MARKETS[$market]}" | cut -d'|' -f1) local country_name=$(echo "${MARKETS[$market]}" | cut -d'|' -f2) local country_en=$(echo "${MARKETS[$market]}" | cut -d'|' -f3) local country_code=$(echo "${MARKETS[$market]}" | cut -d'|' -f4) local pay_range=$(echo "${MARKETS[$market]}" | cut -d'|' -f5) local tax_authority=$(echo "${MARKETS[$market]}" | cut -d'|' -f6) local currency=$(echo "${MARKETS[$market]}" | cut -d'|' -f7) local badge=$(echo "${MARKETS[$market]}" | cut -d'|' -f8) local domain=$(echo "${MARKETS[$market]}" | cut -d'|' -f9) # Hämta use case-namn baserat på språk local use_case_names="${USE_CASES[$use_case]}" local use_case_name="" case $lang in sv) use_case_name=$(echo "$use_case_names" | cut -d'|' -f2) ;; de) use_case_name=$(echo "$use_case_names" | cut -d'|' -f3) ;; fr) use_case_name=$(echo "$use_case_names" | cut -d'|' -f4) ;; nl) use_case_name=$(echo "$use_case_names" | cut -d'|' -f5) ;; en-gb|en-ie) use_case_name=$(echo "$use_case_names" | cut -d'|' -f6) ;; it) use_case_name=$(echo "$use_case_names" | cut -d'|' -f7) ;; es) use_case_name=$(echo "$use_case_names" | cut -d'|' -f8) ;; fi) use_case_name=$(echo "$use_case_names" | cut -d'|' -f9) ;; da) use_case_name=$(echo "$use_case_names" | cut -d'|' -f10) ;; at) use_case_name=$(echo "$use_case_names" | cut -d'|' -f11) ;; be) use_case_name=$(echo "$use_case_names" | cut -d'|' -f12) ;; ch) use_case_name=$(echo "$use_case_names" | cut -d'|' -f13) ;; no) use_case_name=$(echo "$use_case_names" | cut -d'|' -f14) ;; ie) use_case_name=$(echo "$use_case_names" | cut -d'|' -f15) ;; pl) use_case_name=$(echo "$use_case_names" | cut -d'|' -f16) ;; *) use_case_name=$(echo "$use_case_names" | cut -d'|' -f1) ;; esac # Skapa katalog mkdir -p "$BASE_DIR/$market/$use_case" # Generera HTML (förenklad version) cat > "$BASE_DIR/$market/$use_case/index.html" << EOF
quiXzoom — Crowdsourcad datainsamling i $country_name. Tjäna $pay_range per uppdrag.
Bli Zoomer nuSe tillgängliga $use_case_name-uppdrag nära dig i appen.
Följ instruktionerna och ta bilder med din smartphone.
Betalt varje vecka. $pay_range per godkänt uppdrag.
Jobba när du vill. Inga scheman, inga minimikrav.
Varje vecka direkt till ditt konto via Stripe.
Global plattform med verifierade uppdrag och tydlig feedback.