From 4a392d0ed13da942bdfb3ddead21b0d3fb964a6c Mon Sep 17 00:00:00 2001 From: FleetAdmiralJakob Date: Mon, 4 Mar 2024 18:20:41 +0100 Subject: [PATCH] feat: Added the dutch translation --- apps/web/next.config.mjs | 2 +- apps/web/src/assets/dutch-flag.png | Bin 0 -> 13269 bytes apps/web/src/assets/furkan-profile.webp | Bin 0 -> 3160 bytes apps/web/src/locales/de.ts | 2 + apps/web/src/locales/en.ts | 2 + apps/web/src/locales/index.ts | 1 + apps/web/src/locales/nl.ts | 189 ++++++++++++++++++++++ apps/web/src/pages/contributors/index.tsx | 19 +++ apps/web/src/pages/settings/index.tsx | 20 +++ 9 files changed, 234 insertions(+), 1 deletion(-) create mode 100644 apps/web/src/assets/dutch-flag.png create mode 100644 apps/web/src/assets/furkan-profile.webp create mode 100644 apps/web/src/locales/nl.ts diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index b81bc506..b87ab930 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -32,7 +32,7 @@ const config = withMyBundleAnalyzer(withPWA( transpilePackages: ['@weatherio/api', '@weatherio/ui', '@weatherio/types', '@weatherio/city-data'], i18n: { defaultLocale: 'en', - locales: ['en', 'de'] + locales: ['en', 'de', 'nl'] } })) ) diff --git a/apps/web/src/assets/dutch-flag.png b/apps/web/src/assets/dutch-flag.png new file mode 100644 index 0000000000000000000000000000000000000000..ec64bf9d13252212e2f95502f8a44fd64e68534d GIT binary patch literal 13269 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 ybFf124V5xP+tW&U9= import("./en"), de: () => import("./de"), + nl: () => import("./nl"), }); diff --git a/apps/web/src/locales/nl.ts b/apps/web/src/locales/nl.ts new file mode 100644 index 00000000..f27c3d17 --- /dev/null +++ b/apps/web/src/locales/nl.ts @@ -0,0 +1,189 @@ +export default { + // 404 page translations + "404.title": "404 - pagina niet gevonden", + + // common translations + "common.title": "Weather.io", + "common.location": "Nederland", + + "common.start button": "Vind uw locatie", + "common.share button": "Delen", + "common.menu home": "Home", + "common.menu locations": "Locaties", + "common.menu settings": "Instellingen", + "common.menu contact": "Contact", + "common.footer legal": "Legaal", + "common.footer contributors": "Bijdragers", + + "common.search page title": "Zoek - Weather.io", + + "common.miles per hour": "Mijl per uur", + "common.kilometers per hour": "Kilometers per uur", + "common.knots": "Knopen", + "common.meters per second": "Meters per seconden", + "common.beaufort": "Beaufort", + "common.hectopascals": "Hectopascal", + + "common.share text": "Bekijk deze pagina: ", + + "common.title 404 page": "404: Deze pagina kan niet worden gevonden", + "common.title offline page": "Offline", + + // settings page translations + "settings.temperature units": "Temperatuur eenheden", + "settings.wind speed units": "Windsnelheid eenheden", + "settings.language": "Taal", + + "settings.english": "Engels", + "settings.german": "Duts", + "settings.dutch": "Nederlands", + + // locationsettings page translations + "locationsettings.add new location": "Nieuwe locatie toevoegen", + "locationsettings.add new location button": "Nieuwe locatie toevoegen", + "locationsettings.search input placeholder": "Zoek je locatie", + + "locationsettings.at least one city toast": + "Je moet minstens een locatie toevoegen", + "locationsettings.switched to city toast": "Geswitched naar locatie!", + "locationsettings.added city toast": "Nieuwe locatie toegevoegd!", + "locationsettings.city not found toast": "Stad niet gevonden!", + "locationsettings.try again toast": "Probeer opnieuw!", + + "locationsettings.my location button": "Kies mijn locatie", + + // offline page translations + "offline.title": "Je bent offline", + "offline.message": "Controleer uw internetverbinding en probeer het opnieuw.", + + // search page translations + "search.search input placeholder": "Zoek uw locatie", + "search.continue button": "Verder -->", + + "search.my location button": "Kies mijn locatie", + + // legal page translations + "legal.main text": + "De inhoud van deze website is zorgvuldig beoordeeld en samengesteld. Wij kunnen echter niet instaan voor de juistheid, volledigheid en actualiteit van de verstrekte informatie. Wij zijn niet aansprakelijk voor schade of verlies voortvloeiend uit het gebruik van deze website. De beheerders van de gelinkte pagina's zijn als enige verantwoordelijk voor de inhoud ervan. Iedere aansprakelijkheid voor externe inhoud wordt uitdrukkelijk uitgesloten.", + "legal.germany": "Duitsland", + "legal.information disclaimer": "Informatie volgens § 5 TMG", + + // home page translations + "home.today": "Vandaag", + "home.9 day forecast": "9-daagse voorspelling", + "home.precipitation": "Neerslag", + "home.feels like": "Voelt als", + "home.visibility": "Zichtbaarheid", + "home.wind pressure": "Wind en druk", + "home.air quality": "Luchtkwaliteit", + "home.pressure": "Druk", + "home.speed": "Snelheid", + "home.moon phase": "Maanfase", + + "home.early morning": "Vroege morgen", + "home.morning": "Ochtend", + "home.noon": "Middag", + "home.afternoon": "Middag", + "home.night": "Nacht", + + "home.feels like phrase extremely warm": "The sun is scorching today!", + "home.feels like phrase very warm": + "De zon probeert waarschijnlijk af te koelen!", + "home.feels like phrase warm": "Zelfs ijs vindt warmte te veel!", + "home.feels like phrase slightly more warm": "It's a toasty day!", + "home.feels like phrase slightly warm": "A perfect day for a picnic!", + "home.feels like phrase neutral": + "Just the right temperature, not too hot, not too cold.", + "home.feels like phrase slightly cold": "A light jacket might be needed.", + "home.feels like phrase slightly more cold": "It's a frosty day!", + "home.feels like phrase cold": + "Pinguïns bestellen warme chocolademelk vanwege de kou!", + "home.feels like phrase very cold": + "Het ijzige weer van vandaag doet zelfs sneeuwmannen huiveren!", + "home.feels like phrase extremely cold": + "It's so cold, even the polar bears are staying inside!", + + "home.air quality text very poor": "Erg arm", + "home.air quality text poor": "Arm", + "home.air quality text fair": "Eerlijk", + "home.air quality text moderate": "Gematigd", + "home.air quality text good": "Goed", + "home.air quality text excellent": "Uitstekend", + + "home.sunset": "Zonsondergang", + "home.sunrise": "Zonsopgang", + + "home.moonset": "Maanondergang", + "home.moonrise": "Maanopgang", + + "home.weather state stormy": "Stormachtig", + "home.weather state snowy": "Sneeuwachtig", + "home.weather state rainy": "Regenachtig", + "home.weather state very cloudy": "Zeer bewolkt", + "home.weather state cloudy": "Bewolkt", + "home.weather state windy": "Bewolkt met wind", + "home.weather state sunny": "Zonnig", + + "home.this hour": "Deze uur", + "home.early hour time ending": ":00", + "home.late hour time ending": ":00", + + "home.9 day forecast card content": + 'De voorspelling voor de komende 9 dagen.
Het temperatures zijn de gemiddelde temperaturen voor de dag. Eén voor de dag en één voor de nacht.', + + "home.precipitation card title": "Huidige neerslag", + + "home.feels like card content": + "De gevoelstemperatuur is de temperatuur die je voelt als je buiten bent.
Deze wordt beïnvloed door de temperatuur, vochtigheid en wind.", + + "home.visibility card title": "Huidige zichtbaarheid", + + "home.wind pressure card title": "Huidige wind en druk", + "home.wind pressure card content": + "Atmosferische druk op zeeniveau.
Op zeeniveau is atmosferische druk de kracht die wordt uitgeoefend door het gewicht van de lucht erboven en is gemiddeld 1013,25 hPa.", + + "home.not available": "Niet beschikbaar", + + "home.moon phase card title": "Huidige maanfase", + "home.moon phase card content": + "De maanfase is de vorm van het direct door de zon beschenen deel van de maan gezien vanaf de aarde.", + + "home.moon phase new moon": "Nieuwe maan", + "home.moon phase waxing crescent": "Wassende halve maan", + "home.moon phase first quarter": "Eerste kwartier", + "home.moon phase waxing gibbous": "Wassende volle maan", + "home.moon phase full moon": "Volle maan", + "home.moon phase waning gibbous": "Afnemende maan", + "home.moon phase last quarter": "Laatste kwartier", + "home.moon phase waning crescent": "Afnemende halve maan", + + "home.more information": "Meer Informatie", + "home.less information": "Minder Informatie", + + "home.sun hours": "Zonuren", + + "home.from": "Van", + + // contact page translations + "contact.send button": "Versturen", + "contact.sent button": "Verstuurd", + "contact.first name": "Voornaam", + "contact.last name": "Achternaam", + "contact.email": "Email", + "contact.message": "Bericht", + + "contact.sent toast": "Bericht Verstuurd!", + "contact.sending email loading toast": "Email verzenden...", + + "contact.invalid email": "Ongeldig e-mailadres", + "contact.at least 2 characters": "Dit veld moet minimaal 2 tekens bevatten", + "contact.at least 10 characters": "Dit veld moet minimaal 10 tekens bevatten", + + // contributors page translations + "contributors.made with love text": + 'Gemaakt met ♥️ bij', + "contributors.founder": "Oprichter", + "contributors.engineer": "Ingenieur", + "contributors.designer": "Ontwerper", + "contributors.translator": "Vertaler", +} as const; diff --git a/apps/web/src/pages/contributors/index.tsx b/apps/web/src/pages/contributors/index.tsx index 49bb0853..fd981650 100644 --- a/apps/web/src/pages/contributors/index.tsx +++ b/apps/web/src/pages/contributors/index.tsx @@ -6,6 +6,7 @@ import ReactHtmlParser from "react-html-parser"; import iqbalProfile from "~/assets/bal-profile.jpg"; import dicsiluksProfile from "~/assets/dicsiluks-profile.webp"; import fabiusProfile from "~/assets/fabius-profile.jpg"; +import furkanProfile from "~/assets/furkan-profile.webp"; import jakeProfile from "~/assets/jake-profile.png"; import jakobProfile from "~/assets/jakob-profile.webp"; import Layout from "~/components/Layout"; @@ -111,6 +112,24 @@ const Contributors = () => { {translationContributors("engineer")}

+
+ + Furkan's logo + +

+ {translationContributors("designer")} &{" "} + {translationContributors("engineer")} &{" "} + {translationContributors("translator")} +

+
diff --git a/apps/web/src/pages/settings/index.tsx b/apps/web/src/pages/settings/index.tsx index 1a72c1b9..5020cc2b 100644 --- a/apps/web/src/pages/settings/index.tsx +++ b/apps/web/src/pages/settings/index.tsx @@ -4,6 +4,7 @@ import { observer } from "@legendapp/state/react"; import { RxCheck } from "react-icons/rx"; import type { TemperatureUnitType, WindSpeedUnitType } from "~/states"; +import dutchFlag from "~/assets/dutch-flag.png"; import germanFlag from "~/assets/german-flag.png"; import usaFlag from "~/assets/usa-flag.png"; import Layout from "~/components/Layout"; @@ -179,6 +180,25 @@ const Settings = observer(() => { )} +