diff --git a/platforms/web/.env b/platforms/web/.env
index eb29339df..ae5cce086 100644
--- a/platforms/web/.env
+++ b/platforms/web/.env
@@ -29,4 +29,4 @@ APP_FOOTER_TEXT="\u00a9 JW Player | [jwplayer.com](https://www.jwplayer.com/) |
APP_DEFAULT_LANGUAGE=en
# a comma separated list of languages that are enabled (this only works for languages that are enabled in the app)
-APP_ENABLED_LANGUAGES=en,es
+APP_ENABLED_LANGUAGES=en,es,nl,fr,de
diff --git a/platforms/web/public/locales/de/account.json b/platforms/web/public/locales/de/account.json
new file mode 100644
index 000000000..44f017c5e
--- /dev/null
+++ b/platforms/web/public/locales/de/account.json
@@ -0,0 +1,220 @@
+{
+ "cancel_subscription": {
+ "explanation": "Durch Klicken auf den Abmelde-Button unten wirst du von deinem aktuellen Plan abgemeldet.",
+ "no_thanks": "Nein, danke",
+ "title": "Es tut uns leid, dich gehen zu sehen.",
+ "unknown_error_occurred": "Ein unbekannter Fehler ist aufgetreten, bitte versuche es später erneut.",
+ "unsubscribe": "Abmelden"
+ },
+ "checkout": {
+ "applicable_tax": "Anwendbare Steuer ({{taxRate}}%)",
+ "card_details_updated": "Deine Kartendaten wurden aktualisiert",
+ "card_holder_name": "Karteninhabername",
+ "close": "Schließen",
+ "continue": "Fortfahren",
+ "coupon_applied": "Dein Gutscheincode wurde angewendet",
+ "coupon_discount": "Rabatt durch Gutschein",
+ "coupon_not_valid": "Gutscheincode ist ungültig",
+ "coupon_not_valid_for_offer": "Gutscheincode ist für dieses Angebot nicht gültig",
+ "credit_card": "Kreditkarte",
+ "credit_card_name": "Kreditkartename",
+ "days_trial_one": "Du wirst morgen belastet.",
+ "days_trial_other": "Du wirst nach {{count}} Tagen belastet.",
+ "discount_period_one": "Für die ersten {{period}}",
+ "discount_period_other": "Für die ersten {{count}} {{period}}",
+ "free_trial_discount": "Kostenlose Testversion",
+ "go_back_to_checkout": "Zurück zum Checkout",
+ "invalid_card_expiry": "Ungültiges Ablaufdatum der Karte",
+ "invalid_card_number": "Ungültige Kartennummer",
+ "invalid_cvc_number": "Ungültige CVC-Nummer",
+ "monthly": "Monatliches Abonnement",
+ "no_payment_needed": "Keine Zahlung erforderlich",
+ "payment_cancelled": "Zahlung abgebrochen",
+ "payment_cancelled_message": "Du hast die Zahlung abgebrochen",
+ "payment_error": "Zahlung fehlgeschlagen",
+ "payment_method": "Zahlungsmethode",
+ "payment_method_fee": "Zahlungsmethoden-Gebühr",
+ "payment_success": "Zahlung wurde erfolgreich gesendet",
+ "paypal": "PayPal",
+ "paypal_instructions": "Durch Klicken auf 'Weiter' wirst du zur PayPal-Seite weitergeleitet.",
+ "periods_trial_one": "Du wirst nach einer {{period}} belastet.",
+ "periods_trial_other": "Du wirst nach {{count}} {{period}} belastet.",
+ "redeem_coupon": "Gutschein einlösen",
+ "save": "Speichern",
+ "start_watching": "Jetzt ansehen ({{countdown}})",
+ "total_price": "Gesamtpreis",
+ "upgrade_error": "Fehler beim Abonnement-Upgrade!",
+ "upgrade_error_message": "Wegen eines unbekannten Fehlers ist das Upgrade fehlgeschlagen. Bitte kontaktiere einen Administrator.",
+ "upgrade_pending": "Abonnement wird aktualisiert!",
+ "upgrade_pending_message": "Dein Abonnement wird nach dem nächsten Abrechnungsdatum aktualisiert.",
+ "upgrade_success": "Abonnement aktualisiert!",
+ "upgrade_success_message": "Dein Abonnement wurde aktualisiert und ist sofort verfügbar.",
+ "waiting_for_payment": "Warten auf Zahlung",
+ "welcome_description": "Danke für dein Abonnement bei {{siteName}}. Viel Spaß mit unserem gesamten Inhalt.",
+ "welcome_title": "Willkommen bei {{siteName}}",
+ "yearly": "Jährliches Abonnement"
+ },
+ "choose_offer": {
+ "benefits": {
+ "cancel_anytime": "Jederzeit kündbar",
+ "first_days_free_one": "Erster Tag kostenlos",
+ "first_days_free_other": "Die ersten {{count}} Tage kostenlos",
+ "first_periods_free_one": "Die ersten {{period}} kostenlos",
+ "first_periods_free_other": "Die ersten {{count}} {{period}} kostenlos",
+ "watch_on_all_devices": "Auf allen Geräten ansehen"
+ },
+ "continue": "Fortfahren",
+ "field_required": "Dieses Feld ist erforderlich, bitte wähle eine Option",
+ "monthly": "Monatlich",
+ "monthly_subscription": "Monatliches Abonnement",
+ "no_pricing_available": "Derzeit sind keine Preisoptionen verfügbar.",
+ "one_time_only": "Dieses Video",
+ "subscription": "Abonnement",
+ "title": "Plan auswählen",
+ "tvod_access_one": "{{count}} {{period}} Zugang",
+ "tvod_access_other": "{{count}} {{period}} Zugang",
+ "watch_this_on_platform": "Sieh dir das auf {{siteName}} an",
+ "yearly": "Jährlich",
+ "yearly_subscription": "Jährliches Abonnement"
+ },
+ "external_payment": {
+ "explanation": "Dieses Abonnement wird über {{paymentProvider}} verwaltet.",
+ "manage_subscription": "Klicke hier für weitere Informationen."
+ },
+ "login": {
+ "email": "E-Mail",
+ "field_is_not_valid_email": "Bitte gib deine E-Mail-Adresse erneut ein und versuche es noch einmal.",
+ "field_required": "Dieses Feld ist erforderlich, bitte gib ein gültiges {{field}} ein",
+ "forgot_password": "Passwort vergessen?",
+ "not_registered": "Neu bei {{siteName}}?",
+ "password": "Passwort",
+ "sign_in": "Einloggen",
+ "sign_in_success": "Erfolgreich eingeloggt",
+ "sign_up": "Registrieren",
+ "view_password": "Passwort anzeigen",
+ "wrong_combination": "Falsche E-Mail/Passwort-Kombination",
+ "wrong_email": "Bitte überprüfe deine E-Mail-Adresse und versuche es erneut."
+ },
+ "payment": {
+ "back_to_profile": "Zurück zum Profil",
+ "credit_card": "Kreditkarte",
+ "credit_card_expiry_date": "Ablaufdatum",
+ "credit_card_number": "Kartennummer",
+ "edit_card": "Karte bearbeiten",
+ "longer_than_usual": "Die Zahlung dauert länger als gewöhnlich. Bitte versuche es später erneut.",
+ "paypal": "PayPal",
+ "update_payment_details": "Zahlungsdetails aktualisieren",
+ "update_payment_success": "Deine Zahlungsdetails wurden aktualisiert"
+ },
+ "periods": {
+ "day_one": "Tag",
+ "day_other": "Tage",
+ "month": "monatlich",
+ "month_one": "Monat",
+ "month_other": "Monate",
+ "week_one": "Woche",
+ "week_other": "Wochen",
+ "year": "jährlich",
+ "year_one": "Jahr",
+ "year_other": "Jahre"
+ },
+ "personal_details": {
+ "address": "Adresse Zeile 1",
+ "address2": "Adresse Zeile 2",
+ "birth_date": "Geburtsdatum",
+ "birth_date_not_valid": "Geburtsdatum ist kein gültiges Datum",
+ "city": "Stadt",
+ "company_name": "Firmenname",
+ "continue": "Fortfahren",
+ "fist_name": "Vorname",
+ "last_name": "Nachname",
+ "phone_number": "Telefonnummer",
+ "post_code": "Postleitzahl",
+ "select_answer": "Wähle eine Option",
+ "state": "Bundesland/Provinz/Region",
+ "this_field_is_required": "Dieses Feld ist erforderlich",
+ "title": "Persönliche Daten"
+ },
+ "registration": {
+ "already_account": "Hast du bereits ein Konto?",
+ "consents_error": "Bitte akzeptiere alle erforderlichen Zustimmungen, um fortzufahren.",
+ "continue": "Fortfahren",
+ "email": "E-Mail",
+ "email_updates": "Ja, ich möchte {{siteName}} Updates per E-Mail erhalten.",
+ "failed_to_create": "Ein Fehler ist aufgetreten. Bitte versuche es später erneut.",
+ "field_is_not_valid_email": "Bitte gib deine E-Mail-Adresse erneut ein",
+ "field_required": "Dieses Feld ist erforderlich",
+ "invalid_password": "Verwende mindestens 8 Zeichen (Groß-/Kleinschreibung beachten) mit mindestens einer Zahl",
+ "password": "Passwort",
+ "password_strength": {
+ "fair": "Mäßig",
+ "invalid": "",
+ "strong": "Stark",
+ "very_strong": "Sehr stark",
+ "weak": "Schwach"
+ },
+ "password_strength_prefix": "Passwortstärke",
+ "sign_up": "Registrieren",
+ "success": "Registrierung erfolgreich",
+ "terms_and_conditions": "Nutzungsbedingungen",
+ "terms_consent": "Ich akzeptiere die {{termsLink}}.",
+ "terms_consent_jwplayer": "Ich akzeptiere die {{termsLink}} von JW Player.",
+ "user_exists": "Ein Benutzer mit dieser E-Mail-Adresse existiert bereits"
+ },
+ "renew_subscription": {
+ "explanation": "Durch Klicken auf die Schaltfläche unten kannst du deinen Plan erneuern.",
+ "next_billing_date_on": "Die nächste Rechnungsstellung erfolgt am {{date}}",
+ "no_thanks": "Nein, danke",
+ "renew_subscription": "Abonnement verlängern",
+ "renew_your_subscription": "Verlängere dein Abonnement",
+ "success": "Dein Abonnement wurde verlängert",
+ "unknown_error_occurred": "Ein unbekannter Fehler ist aufgetreten!"
+ },
+ "reset": {
+ "back_login": "Zurück zum Login",
+ "confirm": "Bestätigen",
+ "email": "E-Mail",
+ "email_me": "E-Mail an mich",
+ "forgot_password": "Passwort vergessen",
+ "forgot_text": "Wir senden dir eine E-Mail mit Anweisungen, wie du dein Passwort zurücksetzen kannst.",
+ "invalid_link": "Ungültiger Link",
+ "invalid_password": "Ungültiges Passwort",
+ "invalid_reset_link": "Der Link zum Zurücksetzen des Passworts ist ungültig oder abgelaufen. Bitte versuche, dein Passwort erneut zurückzusetzen.",
+ "invalid_token": "Ungültiges Token. Überprüfe, ob du das richtige Token eingegeben hast, das wir dir per E-Mail geschickt haben, oder fordere ein neues an, indem du den Passwort-Zurücksetzungsprozess neu startest.",
+ "link_sent": "Passwortlink gesendet",
+ "link_sent_text": "Bitte überprüfe deinen Posteingang unter {{email}}",
+ "new_password": "Neues Passwort",
+ "no": "Nein, danke",
+ "not_sure": "Bist du dir sicher, dass dies die richtige E-Mail-Adresse war?",
+ "old_password": "Altes Passwort",
+ "old_password_does_not_match": "Das alte Passwort stimmt nicht überein",
+ "password": "Passwort",
+ "password_helper_text": "Verwende mindestens 8 Zeichen (Groß-/Kleinschreibung beachten) mit mindestens einer Zahl",
+ "password_reset": "Passwort zurücksetzen",
+ "password_reset_success": "Passwort erfolgreich zurückgesetzt",
+ "password_strength": "Obwohl dein Passwort die Kriterien für ein starkes Passwort erfüllt, enthält es Elemente, die nicht ratsam sind, wie verbotene Phrasen oder wiederholte Wörter. Bitte ändere es, um die Sicherheit des Kontos zu gewährleisten.",
+ "passwords_do_not_match": "Passwörter stimmen nicht überein",
+ "repeat_new_password": "Neues Passwort wiederholen",
+ "reset_password": "Passwort bearbeiten",
+ "reset_password_token": "Token",
+ "text": "Wenn du dein Passwort bearbeiten möchtest, klicke auf 'JA, Zurücksetzen', um Anweisungen zum Zurücksetzen des Passworts per E-Mail zu erhalten",
+ "try_again": "Erneut versuchen",
+ "view_password": "Passwort anzeigen",
+ "wrong_email": "Falsche E-Mail",
+ "yes": "Ja, zurücksetzen"
+ },
+ "subscription_cancelled": {
+ "message": "Du wurdest erfolgreich abgemeldet. Dein aktueller Plan läuft am {{date}} ab",
+ "return_to_profile": "Zurück zum Profil",
+ "title": "Wir vermissen dich schon."
+ },
+ "subscription_renewed": {
+ "back_to_profile": "Zurück zum Profil",
+ "message": "Du wurdest erfolgreich wieder abonniert. Deine Gebühr wird ab dem {{date}} {{price}} betragen.",
+ "title": "Dein Abonnement wurde erneuert"
+ },
+ "validation": {
+ "first_name": "Der Vorname darf maximal 50 Zeichen lang sein.",
+ "last_name": "Der Nachname darf maximal 50 Zeichen lang sein."
+ }
+}
diff --git a/platforms/web/public/locales/de/common.json b/platforms/web/public/locales/de/common.json
new file mode 100644
index 000000000..71a102a60
--- /dev/null
+++ b/platforms/web/public/locales/de/common.json
@@ -0,0 +1,37 @@
+{
+ "abbreviation": {
+ "hours": "Std",
+ "minutes": "Min"
+ },
+ "alert": {
+ "close": "Schließen",
+ "success": "Erfolg",
+ "title": "Ein Fehler ist aufgetreten"
+ },
+ "back": "Zurück",
+ "card_lock": "Artikel gesperrt",
+ "close_modal": "Panel schließen",
+ "confirmation_dialog": {
+ "close": "Abbrechen",
+ "confirm": "Ja"
+ },
+ "default_description": "JW OTT Webapp ist eine Open-Source, dynamisch generierte Video-Website.",
+ "default_site_name": "Meine OTT-Anwendung",
+ "filter_videos_by": "Filtere Videos nach {{name}}",
+ "filter_videos_by_genre": "Filtere Videos nach Genre",
+ "home": "Startseite",
+ "live": "LIVE",
+ "more_info": "Mehr Infos",
+ "now": "Jetzt",
+ "play_item": "Spiele {{title}}",
+ "scheduled": "Geplant",
+ "sign_in": "Einloggen",
+ "sign_up": "Registrieren",
+ "slide_indicator": "Seite {{page}} von {{pages}}",
+ "slide_left": "Nach links schieben",
+ "slide_next": "Nächste Folie",
+ "slide_previous": "Vorherige Folie",
+ "slide_right": "Nach rechts schieben",
+ "slide_to": "Schiebe zu Item {{item}} von {{items}}",
+ "videoplayer": "Videoplayer"
+}
diff --git a/platforms/web/public/locales/de/country.json b/platforms/web/public/locales/de/country.json
new file mode 100644
index 000000000..568a24bbf
--- /dev/null
+++ b/platforms/web/public/locales/de/country.json
@@ -0,0 +1,250 @@
+{
+ "af": "Afghanistan",
+ "ax": "Åland-Inseln",
+ "al": "Albanien",
+ "dz": "Algerien",
+ "as": "Amerikanisch-Samoa",
+ "ad": "Andorra",
+ "ao": "Angola",
+ "ai": "Anguilla",
+ "aq": "Antarktis",
+ "ag": "Antigua und Barbuda",
+ "ar": "Argentinien",
+ "am": "Armenien",
+ "aw": "Aruba",
+ "au": "Australien",
+ "at": "Österreich",
+ "az": "Aserbaidschan",
+ "bs": "Bahamas",
+ "bh": "Bahrain",
+ "bd": "Bangladesch",
+ "bb": "Barbados",
+ "by": "Weißrussland",
+ "be": "Belgien",
+ "bz": "Belize",
+ "bj": "Benin",
+ "bm": "Bermuda",
+ "bt": "Bhutan",
+ "bo": "Bolivien",
+ "bq": "Bonaire, Sint Eustatius und Saba",
+ "ba": "Bosnien und Herzegowina",
+ "bw": "Botswana",
+ "bv": "Bouvetinsel",
+ "br": "Brasilien",
+ "io": "Britisches Territorium im Indischen Ozean",
+ "bn": "Brunei Darussalam",
+ "bg": "Bulgarien",
+ "bf": "Burkina Faso",
+ "bi": "Burundi",
+ "kh": "Kambodscha",
+ "cm": "Kamerun",
+ "ca": "Kanada",
+ "cv": "Kap Verde",
+ "ky": "Kaimaninseln",
+ "cf": "Zentralafrikanische Republik",
+ "td": "Tschad",
+ "cl": "Chile",
+ "cn": "China",
+ "cx": "Weihnachtinsel",
+ "cc": "Kokosinseln",
+ "co": "Kolumbien",
+ "km": "Komoren",
+ "cg": "Kongo",
+ "cd": "Kongo, Demokratische Republik",
+ "ck": "Cookinseln",
+ "cr": "Costa Rica",
+ "ci": "Elfenbeinküste",
+ "hr": "Kroatien",
+ "cu": "Kuba",
+ "cw": "Curaçao",
+ "cy": "Zypern",
+ "cz": "Tschechische Republik",
+ "dk": "Dänemark",
+ "dj": "Dschibuti",
+ "dm": "Dominica",
+ "do": "Dominikanische Republik",
+ "ec": "Ecuador",
+ "eg": "Ägypten",
+ "sv": "El Salvador",
+ "gq": "Äquatorialguinea",
+ "er": "Eritrea",
+ "ee": "Estland",
+ "et": "Äthiopien",
+ "fk": "Falklandinseln (Malvinas)",
+ "fo": "Färöer",
+ "fj": "Fidschi",
+ "fi": "Finnland",
+ "fr": "Frankreich",
+ "gf": "Französisch-Guayana",
+ "pf": "Französisch-Polynesien",
+ "tf": "Französische Süd- und Antarktisgebiete",
+ "ga": "Gabun",
+ "gm": "Gambia",
+ "ge": "Georgien",
+ "de": "Deutschland",
+ "gh": "Ghana",
+ "gi": "Gibraltar",
+ "gr": "Griechenland",
+ "gl": "Grönland",
+ "gd": "Grenada",
+ "gp": "Guadeloupe",
+ "gu": "Guam",
+ "gt": "Guatemala",
+ "gg": "Guernsey",
+ "gn": "Guinea",
+ "gw": "Guinea-Bissau",
+ "gy": "Guyana",
+ "ht": "Haiti",
+ "hm": "Heard- und McDonaldeilanden",
+ "va": "Heiliger Stuhl (Vatikanstadt)",
+ "hn": "Honduras",
+ "hk": "Hongkong",
+ "hu": "Ungarn",
+ "is": "Island",
+ "in": "Indien",
+ "id": "Indonesien",
+ "ir": "Iran, Islamische Republik",
+ "iq": "Irak",
+ "ie": "Irland",
+ "im": "Isle of Man",
+ "il": "Israel",
+ "it": "Italien",
+ "jm": "Jamaika",
+ "jp": "Japan",
+ "je": "Jersey",
+ "jo": "Jordanien",
+ "kz": "Kasachstan",
+ "ke": "Kenia",
+ "ki": "Kiribati",
+ "kp": "Nordkorea",
+ "kr": "Südkorea",
+ "kw": "Kuwait",
+ "kg": "Kirgisistan",
+ "la": "Laos",
+ "lv": "Lettland",
+ "lb": "Libanon",
+ "ls": "Lesotho",
+ "lr": "Liberia",
+ "ly": "Libyen",
+ "li": "Liechtenstein",
+ "lt": "Litauen",
+ "lu": "Luxemburg",
+ "mo": "Macao",
+ "mk": "Nordmazedonien",
+ "mg": "Madagaskar",
+ "mw": "Malawi",
+ "my": "Malaysia",
+ "mv": "Malediven",
+ "ml": "Mali",
+ "mt": "Malta",
+ "mh": "Marshallinseln",
+ "mq": "Martinique",
+ "mr": "Mauretanien",
+ "mu": "Mauritius",
+ "yt": "Mayotte",
+ "mx": "Mexiko",
+ "fm": "Mikronesien",
+ "md": "Moldawien",
+ "mc": "Monaco",
+ "mn": "Mongolei",
+ "me": "Montenegro",
+ "ms": "Montserrat",
+ "ma": "Marokko",
+ "mz": "Mosambik",
+ "mm": "Myanmar",
+ "na": "Namibia",
+ "nr": "Nauru",
+ "np": "Nepal",
+ "nl": "Niederlande",
+ "nc": "Neukaledonien",
+ "nz": "Neuseeland",
+ "ni": "Nicaragua",
+ "ne": "Niger",
+ "ng": "Nigeria",
+ "nu": "Niue",
+ "nf": "Norfolkinsel",
+ "mp": "Nordmarianeninseln",
+ "no": "Norwegen",
+ "om": "Oman",
+ "pk": "Pakistan",
+ "pw": "Palau",
+ "ps": "Palästina",
+ "pa": "Panama",
+ "pg": "Papua-Neuguinea",
+ "py": "Paraguay",
+ "pe": "Peru",
+ "ph": "Philippinen",
+ "pn": "Pitcairn",
+ "pl": "Polen",
+ "pt": "Portugal",
+ "pr": "Puerto Rico",
+ "qa": "Katar",
+ "re": "Réunion",
+ "ro": "Rumänien",
+ "ru": "Russische Föderation",
+ "rw": "Ruanda",
+ "bl": "Saint-Barthélemy",
+ "sh": "Saint Helena, Ascension und Tristan da Cunha",
+ "kn": "Saint Kitts und Nevis",
+ "lc": "Saint Lucia",
+ "mf": "Saint Martin (Französischer Teil)",
+ "pm": "Saint-Pierre und Miquelon",
+ "vc": "Saint Vincent und die Grenadinen",
+ "ws": "Samoa",
+ "sm": "San Marino",
+ "st": "São Tomé und Príncipe",
+ "sa": "Saudi-Arabien",
+ "sn": "Senegal",
+ "rs": "Serbien",
+ "sc": "Seychellen",
+ "sl": "Sierra Leone",
+ "sg": "Singapur",
+ "sx": "Sint Maarten (Niederländischer Teil)",
+ "sk": "Slowakei",
+ "si": "Slowenien",
+ "sb": "Salomonen",
+ "so": "Somalia",
+ "za": "Südafrika",
+ "gs": "Südgeorgien und die Südlichen Sandwichinseln",
+ "es": "Spanien",
+ "lk": "Sri Lanka",
+ "sd": "Sudan",
+ "sr": "Suriname",
+ "sj": "Svalbard und Jan Mayen",
+ "sz": "Eswatini",
+ "se": "Schweden",
+ "ch": "Schweiz",
+ "sy": "Syrische Arabische Republik",
+ "tw": "Taiwan",
+ "tj": "Tadschikistan",
+ "tz": "Tansania",
+ "th": "Thailand",
+ "tl": "Timor-Leste",
+ "tg": "Togo",
+ "tk": "Tokelau",
+ "to": "Tonga",
+ "tt": "Trinidad und Tobago",
+ "tn": "Tunesien",
+ "tr": "Türkei",
+ "tm": "Turkmenistan",
+ "tc": "Türkische und Caicosinseln",
+ "tv": "Tuvalu",
+ "ug": "Uganda",
+ "ua": "Ukraine",
+ "ae": "Vereinigte Arabische Emirate",
+ "gb": "Vereinigtes Königreich",
+ "us": "Vereinigte Staaten von Amerika",
+ "um": "Vereinigte Staaten von Minor Outlying Islands",
+ "uy": "Uruguay",
+ "uz": "Usbekistan",
+ "vu": "Vanuatu",
+ "ve": "Venezuela",
+ "vn": "Vietnam",
+ "vg": "Britische Jungferninseln",
+ "vi": "Amerikanische Jungferninseln",
+ "wf": "Wallis und Futuna",
+ "eh": "Westsahara",
+ "ye": "Jemen",
+ "zm": "Sambia",
+ "zw": "Simbabwe"
+}
diff --git a/platforms/web/public/locales/de/demo.json b/platforms/web/public/locales/de/demo.json
new file mode 100644
index 000000000..3dfbea643
--- /dev/null
+++ b/platforms/web/public/locales/de/demo.json
@@ -0,0 +1,16 @@
+{
+ "app_config_learn_more": "Erfahren Sie mehr über App-Konfigurationen",
+ "app_config_not_found": "Ungültige oder fehlende App-Konfiguration",
+ "cancel_config_id": "Abbrechen",
+ "click_to_unselect_config": "(Klicken Sie hier, um diese Konfiguration abzuwählen)",
+ "currently_previewing_config": "Sie sehen derzeit die Konfiguration: '{{configSource}}'",
+ "demo_note": "Hinweis: Die gewählte App-Konfigurations-ID wird nur lokal in diesem Browser gespeichert. Verwenden Sie den Link unten auf der Hauptseite, um die Einstellung zu löschen und zu diesem Dialog zurückzukehren.",
+ "enter_8_digits": "Die App-Konfigurations-ID sollte 8 Ziffern lang sein. Bitte korrigieren Sie Ihre Eingabe und versuchen Sie es erneut.",
+ "enter_a_value": "Bitte geben Sie eine App-Konfigurations-ID ein",
+ "invalid_config_id_format": "Die App-Konfigurations-ID sollte nur aus Zahlen und Kleinbuchstaben bestehen. Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut.",
+ "please_enter_config_id": "Bitte geben Sie eine App-Konfigurations-ID aus Ihrem JW-Konto ein",
+ "submit_config_id": "Absenden",
+ "use_the_jwp_dashboard": "Haben Sie keine Konfiguration? Verwenden Sie das JWP-Dashboard, um eine App-Konfiguration zu erstellen, oder klicken Sie auf Abbrechen, um eine generische Demo anzuzeigen.",
+ "view_generic_demo": "Generische Demo anzeigen?",
+ "viewing_config_demo": "Dies wird Sie zu einer generischen Demo-App weiterleiten. Sind Sie sicher, dass Sie fortfahren möchten?"
+}
diff --git a/platforms/web/public/locales/de/epg.json b/platforms/web/public/locales/de/epg.json
new file mode 100644
index 000000000..20088a9a2
--- /dev/null
+++ b/platforms/web/public/locales/de/epg.json
@@ -0,0 +1,4 @@
+{
+ "on_channel": "Auf {{name}}",
+ "start_from_beginning": "Von Anfang an schauen"
+}
diff --git a/platforms/web/public/locales/de/error.json b/platforms/web/public/locales/de/error.json
new file mode 100644
index 000000000..558e75785
--- /dev/null
+++ b/platforms/web/public/locales/de/error.json
@@ -0,0 +1,21 @@
+{
+ "adyen_order_unknown": "Bestellung ist unbekannt",
+ "check_your_config": "Es gab ein Problem beim Abrufen der Anwendungs-Konfiguration. Versuchen Sie es später erneut. Wenn das Problem weiterhin besteht, kontaktieren Sie den technischen Support.",
+ "check_your_settings": "Es gab ein Problem beim Laden der Standardeinstellungen. Versuchen Sie es später erneut. Wenn das Problem weiterhin besteht, kontaktieren Sie den technischen Support.",
+ "config_invalid": "Ungültige oder fehlende Konfiguration",
+ "empty_shelves_description": "Es tut uns leid, aber es sind keine Inhalte in Ihrer Region verfügbar.",
+ "empty_shelves_heading": "Keine Inhalte verfügbar",
+ "generic_error_description": "Versuchen Sie, diese Seite zu aktualisieren oder kommen Sie später zurück.",
+ "generic_error_heading": "Es gab ein Problem beim Laden der Anwendung",
+ "learn_more": "Mehr erfahren",
+ "notfound_error_description": "Diese Seite existiert nicht.",
+ "notfound_error_heading": "Nicht gefunden",
+ "playlist_not_found": "Playlist nicht gefunden",
+ "settings_invalid": "Ungültige oder fehlende Einstellungen",
+ "unknown_error": "Unbekannter Fehler",
+ "validation_form_error": {
+ "other": "Bitte korrigieren Sie Ihre Fehler, bevor Sie fortfahren.",
+ "required": "Bitte füllen Sie alle erforderlichen Felder aus, bevor Sie fortfahren."
+ },
+ "video_not_found": "Video nicht gefunden"
+}
diff --git a/platforms/web/public/locales/de/menu.json b/platforms/web/public/locales/de/menu.json
new file mode 100644
index 000000000..b1026c924
--- /dev/null
+++ b/platforms/web/public/locales/de/menu.json
@@ -0,0 +1,12 @@
+{
+ "close_menu": "Menü schließen",
+ "language_menu": "Sprachmenü öffnen",
+ "logo_alt": "Startseite von {{siteName}}",
+ "open_menu": "Menü öffnen",
+ "open_user_menu": "Benutzermenü öffnen",
+ "search_close": "Suche schließen",
+ "search_open": "Suche öffnen",
+ "sign_in": "Einloggen",
+ "sign_up": "Registrieren",
+ "skip_to_content": "Zum Inhalt springen"
+}
diff --git a/platforms/web/public/locales/de/search.json b/platforms/web/public/locales/de/search.json
new file mode 100644
index 000000000..fd8b4f5df
--- /dev/null
+++ b/platforms/web/public/locales/de/search.json
@@ -0,0 +1,19 @@
+{
+ "error_description": "Laden Sie diese Seite neu oder versuchen Sie es später erneut.",
+ "error_heading": "Etwas ist schief gelaufen",
+ "error_subheading": "Es scheint ein Problem beim Laden dieser Seite gegeben zu haben...",
+ "heading": "Suchergebnisse",
+ "no_results_heading": "Keine Ergebnisse gefunden für \"{{query}}\"",
+ "search_bar": {
+ "clear_search_label": "Suche löschen",
+ "search_label": "Suchen",
+ "search_placeholder": "Suche..."
+ },
+ "start_typing": "Geben Sie etwas in das Suchfeld ein, um mit der Suche zu beginnen",
+ "suggestions": "Vorschläge:",
+ "tip_one": "Stellen Sie sicher, dass alle Wörter korrekt geschrieben sind",
+ "tip_two": "Machen Sie die Suchbegriffe allgemeiner",
+ "tip_three": "Versuchen Sie es mit anderen Suchbegriffen",
+ "title_one": "{{count}} Ergebnis für \"{{query}}\"",
+ "title_other": "{{count}} Ergebnisse für \"{{query}}\""
+}
diff --git a/platforms/web/public/locales/de/us_state.json b/platforms/web/public/locales/de/us_state.json
new file mode 100644
index 000000000..e32fc4733
--- /dev/null
+++ b/platforms/web/public/locales/de/us_state.json
@@ -0,0 +1,53 @@
+{
+ "al": "Alabama",
+ "ak": "Alaska",
+ "az": "Arizona",
+ "ar": "Arkansas",
+ "ca": "California",
+ "co": "Colorado",
+ "ct": "Connecticut",
+ "de": "Delaware",
+ "dc": "District of Columbia",
+ "fl": "Florida",
+ "ga": "Georgia",
+ "hi": "Hawaii",
+ "id": "Idaho",
+ "il": "Illinois",
+ "in": "Indiana",
+ "ia": "Iowa",
+ "ks": "Kansas",
+ "ky": "Kentucky",
+ "la": "Louisiana",
+ "me": "Maine",
+ "md": "Maryland",
+ "ma": "Massachusetts",
+ "mi": "Michigan",
+ "mn": "Minnesota",
+ "ms": "Mississippi",
+ "mo": "Missouri",
+ "mt": "Montana",
+ "ne": "Nebraska",
+ "nv": "Nevada",
+ "nh": "New Hampshire",
+ "nj": "New Jersey",
+ "nm": "New Mexico",
+ "ny": "New York",
+ "nc": "North Carolina",
+ "nd": "North Dakota",
+ "oh": "Ohio",
+ "ok": "Oklahoma",
+ "or": "Oregon",
+ "pa": "Pennsylvania",
+ "ri": "Rhode Island",
+ "sc": "South Carolina",
+ "sd": "South Dakota",
+ "tn": "Tennessee",
+ "tx": "Texas",
+ "ut": "Utah",
+ "vt": "Vermont",
+ "va": "Virginia",
+ "wa": "Washington",
+ "wv": "West Virginia",
+ "wi": "Wisconsin",
+ "wy": "Wyoming"
+}
diff --git a/platforms/web/public/locales/de/user.json b/platforms/web/public/locales/de/user.json
new file mode 100644
index 000000000..603c21eb1
--- /dev/null
+++ b/platforms/web/public/locales/de/user.json
@@ -0,0 +1,125 @@
+{
+ "account": {
+ "about_you": "Kontoinformationen",
+ "add_password": "Passwort hinzufügen",
+ "add_password_error": "Fehler beim Weiterleiten zur Passwort hinzufügen-Seite. Bitte versuche es erneut.",
+ "add_password_modal_text": "Wir haben Anweisungen an {{email}} gesendet, wie du ein Passwort hinzufügen kannst. Wenn du die E-Mail nicht innerhalb weniger Minuten erhältst, überprüfe deinen Spam-Ordner oder",
+ "cancel": "Abbrechen",
+ "confirm_password": "Passwort bestätigen",
+ "continue": "Fortfahren",
+ "delete_account": {
+ "body": "Lösche dein Konto und alle deine Inhalte dauerhaft.",
+ "error": "Es gab einen Fehler beim Löschen deines Kontos. Bitte versuche es erneut.",
+ "invalid_credentials": "Das eingegebene Passwort ist ungültig",
+ "modal": {
+ "description": "Passwort eingeben, um fortzufahren",
+ "placeholder": "Gib dein Passwort ein",
+ "text_cant_be_undone": "Bitte beachte, dass dieser Vorgang nicht rückgängig gemacht werden kann. Handle daher mit Vorsicht.",
+ "text_contacts": "Wenn du weitere Fragen hast, zögere nicht, unser Support-Team zu kontaktieren.",
+ "text_data_erasure": "Bitte beachte, dass, wenn du mit diesem Prozess fortfährst, alle deine persönlichen Daten aus unserem System gelöscht werden. Dies umfasst alle persönlichen Informationen, die du während des Registrierungsprozesses angegeben hast, sowie alle Standort- und Gerätesinformationen, die wir während des Authentifizierungsprozesses gesammelt haben. Alle anderen persönlichen Informationen, die an verschiedenen Stellen in unserer Datenbank gespeichert sind, werden ebenfalls gelöscht. Beachte jedoch, dass wir aufgrund gesetzlicher Bestimmungen bestimmte persönliche Daten als Teil von Transaktions- und Abonnementaufzeichnungen aufbewahren müssen.",
+ "text_revoked_access": "Sobald das Löschen abgeschlossen ist, werden alle deine aktiven Zugriffe widerrufen, und alle aktiven Login-Sitzungen, einschließlich dieser, werden beendet. Deine Kontoinformationen werden nicht mehr für unser Personal zugänglich sein.",
+ "warning": "Alle aktiven Abonnements, die über einen Webbrowser gekauft wurden, werden automatisch bei der Löschung der persönlichen Daten gekündigt. Wenn du jedoch ein Abonnement über iOS, Android, Roku oder Amazon-Apps gekauft hast, wird es nicht automatisch gekündigt. In diesem Fall musst du die üblichen Schritte zur Abonnementkündigung für jede Plattform manuell durchführen."
+ },
+ "success": "Dein Konto wurde gelöscht",
+ "title": "Konto löschen"
+ },
+ "delete_account_password_warning": {
+ "text": "Um dein Konto zu löschen, wenn du ein soziales Medienkonto zum Anmelden verwendest, musst du zuerst ein Konto-Passwort hinzufügen und den Löschvorgang erneut starten.",
+ "title": "Warnung"
+ },
+ "edit_account": "Konto bearbeiten",
+ "edit_information": "Informationen bearbeiten",
+ "edit_password": "Passwort bearbeiten",
+ "email": "E-Mail",
+ "errors": {
+ "email_exists": "E-Mail existiert bereits!",
+ "email_update_not_supported": "E-Mail-Änderung nicht unterstützt",
+ "first_name_too_long": "Bitte beschränke den Vornamen auf 50 Zeichen oder weniger.",
+ "invalid_param_email": "Ungültige E-Mail-Adresse!",
+ "invalid_password": "Passwort falsch!",
+ "last_name_too_long": "Bitte beschränke den Nachnamen auf 50 Zeichen oder weniger.",
+ "please_enter_valid_email": "Bitte gib eine gültige E-Mail-Adresse ein.",
+ "unknown_error": "Ein unbekannter Fehler ist aufgetreten",
+ "validation_error": "Bitte korrigiere deine Fehler, bevor du fortfährst.",
+ "wrong_combination": "Falsche E-Mail/Passwort-Kombination"
+ },
+ "export_data_body": "Exportiere alle deine persönlichen Kontodaten an {{email}} als Anhang.",
+ "export_data_error": "Ein Fehler ist beim Exportieren deiner Kontodaten aufgetreten.",
+ "export_data_success": "Bitte überprüfe deine E-Mail.",
+ "export_data_title": "Kontodaten exportieren",
+ "firstname": "Vorname",
+ "lastname": "Nachname",
+ "other_registration_details": "Andere Registrierungsdetails",
+ "password": "Passwort",
+ "proceed_to_adding_a_password": "Zum Hinzufügen eines Passworts fortfahren",
+ "resend_mail": "E-Mail erneut senden.",
+ "resend_mail_error": "Ein Fehler ist beim erneuten Senden der E-Mail aufgetreten. Bitte versuche es erneut.",
+ "save": "Speichern",
+ "security": "Passwort",
+ "terms_and_tracking": "Rechtliches & Marketing",
+ "update_consents": "Zustimmungen aktualisieren",
+ "update_success": "Dein {{section}} wurde erfolgreich aktualisiert.",
+ "view_password": "Passwort anzeigen"
+ },
+ "favorites": {
+ "clear": "Favoriten löschen",
+ "clear_favorites_body": "Du bist dabei, alle deine Lieblingsvideos zu löschen. Bist du sicher?",
+ "clear_favorites_title": "Favoriten löschen?",
+ "no_favorites": "Deine Favoriten sind leer",
+ "title": "Favoriten"
+ },
+ "login": {
+ "field_required": "Dieses Feld ist erforderlich, bitte fülle ein gültiges {{field}} aus."
+ },
+ "nav": {
+ "account": "Konto",
+ "favorites": "Favoriten",
+ "logout": "Ausloggen",
+ "payments": "Zahlungen",
+ "settings": "Einstellungen"
+ },
+ "payment": {
+ "access_granted": "Zugang gewährt",
+ "add_card_details": "Kartendaten hinzufügen",
+ "annual_subscription": "Jahresabonnement",
+ "billing_history": "Abrechnungsverlauf",
+ "cancel_subscription": "Abonnement kündigen",
+ "card_number": "Kartennummer",
+ "card_number_hidden": "Kreditkartennummer endet mit {{number}}",
+ "change_plan": "Plan ändern",
+ "change_plan_error": "Es gab ein Problem beim Speichern der Änderung deines Abonnementplans.",
+ "change_subscription": "Abonnement ändern",
+ "complete_subscription": "Abonnement abschließen",
+ "current_plan": "AKTUELLER PLAN",
+ "daily_subscription": "Tägliches Abonnement",
+ "downgrade_on": "Wartet auf Herabstufung am {{date}}",
+ "downgrade_plan_success": "Du hast den Abonnementplan erfolgreich geändert. Dein neuer Plan beginnt nach Ende des aktuellen Zyklus ({{date}}).",
+ "expiry_date": "Ablaufdatum",
+ "granted_subscription": "Gewährtes Abonnement",
+ "hidden_transactions_one": "Noch eine Transaktion",
+ "hidden_transactions_other": "{{count}} weitere Transaktionen",
+ "longer_than_usual": "Die Zahlung dauert länger als üblich. Bitte versuche es später noch einmal.",
+ "monthly_subscription": "Monatliches Abonnement",
+ "next_billing_date_on": "Die nächste Rechnungsstellung erfolgt am {{date}}",
+ "no_payment_methods": "Keine Zahlungsmethoden",
+ "no_subscription": "Du hast kein Abonnement. Schließe dein Abonnement ab, um alle Filme und Serien zu sehen.",
+ "no_transaction": "Keine Transaktion",
+ "no_transactions": "Keine Transaktionen",
+ "other": "anderes",
+ "payment_method": "Zahlungsmethode",
+ "pending_downgrade": "Wartet auf Herabstufung",
+ "pending_offer_switch": "Wird nach der nächsten Rechnungsstellung auf ein \"{{title}}\" aktualisiert",
+ "price_paid_with": "{{price}} bezahlt mit {{method}}",
+ "price_paid_with_card": "Preis bezahlt mit Karte",
+ "renew_subscription": "Abonnement verlängern",
+ "security_code": "Sicherheitscode",
+ "security_code_hidden": "Sicherheitscode verborgen",
+ "show_all": "Alle anzeigen",
+ "show_receipt": "Beleg anzeigen",
+ "subscription_details": "Abonnementdetails",
+ "subscription_expires_on": "Dieses Abonnement läuft am {{date}} ab",
+ "update_payment_details": "Zahlungsdetails aktualisieren",
+ "upgrade_plan_success": "Du hast den Abonnementplan erfolgreich geändert. Du kannst deine zusätzlichen Vorteile sofort genießen.",
+ "weekly_subscription": "Wöchentliches Abonnement"
+ }
+}
diff --git a/platforms/web/public/locales/de/video.json b/platforms/web/public/locales/de/video.json
new file mode 100644
index 000000000..187bb7a5a
--- /dev/null
+++ b/platforms/web/public/locales/de/video.json
@@ -0,0 +1,31 @@
+{
+ "all_seasons": "Alle Staffeln",
+ "buy": "Kaufen",
+ "buy_to_start_watching": "Kaufen, um zu starten!",
+ "complete_your_subscription": "Schließe dein Abonnement ab",
+ "continue_watching": "Weitersehen",
+ "copied_url": "URL kopiert",
+ "current_episode": "Aktuelle Episode",
+ "current_video": "Aktuelles Video",
+ "episode": "Episode",
+ "episodes": "Episoden",
+ "favorite": "Favorit",
+ "favorites_warning": "Maximale Anzahl an Favoritenvideos überschritten. Du kannst nur bis zu {{maxCount}} Favoritenvideos hinzufügen. Bitte lösche eines und wiederhole die Aktion.",
+ "live": "Live",
+ "player_error": {
+ "geo_blocked_description": "Es tut uns leid, aber dieser Inhalt ist derzeit in deiner Region nicht verfügbar.",
+ "geo_blocked_title": "Inhalt nicht verfügbar"
+ },
+ "season": "Staffel",
+ "season_number_filter_template": "Staffel {{seasonNumber}}",
+ "series": "Serie",
+ "series_error": "Es gab ein Problem beim Anfordern der Serie",
+ "share": "Teilen",
+ "share_video": "Dieses Video teilen",
+ "sign_up_to_start_watching": "Melde dich an, um zu starten!",
+ "start_watching": "Beginne zu schauen",
+ "total_episodes_one": "{{count}} Episode",
+ "total_episodes_other": "{{count}} Episoden",
+ "trailer": "Trailer",
+ "watch_trailer": "Trailer ansehen"
+}
diff --git a/platforms/web/public/locales/fr/account.json b/platforms/web/public/locales/fr/account.json
new file mode 100644
index 000000000..3a3e5f48a
--- /dev/null
+++ b/platforms/web/public/locales/fr/account.json
@@ -0,0 +1,220 @@
+{
+ "cancel_subscription": {
+ "explanation": "Vous serez désabonné de votre plan actuel en cliquant sur le bouton de désabonnement ci-dessous.",
+ "no_thanks": "Non, merci",
+ "title": "Nous sommes désolés de vous voir partir.",
+ "unknown_error_occurred": "Une erreur inconnue s'est produite, veuillez réessayer plus tard.",
+ "unsubscribe": "Se désabonner"
+ },
+ "checkout": {
+ "applicable_tax": "Taxe applicable ({{taxRate}}%)",
+ "card_details_updated": "Vos détails de carte ont été mis à jour",
+ "card_holder_name": "Nom du titulaire de la carte",
+ "close": "Fermer",
+ "continue": "Continuer",
+ "coupon_applied": "Votre code de coupon a été appliqué",
+ "coupon_discount": "Réduction de coupon",
+ "coupon_not_valid": "Le code de coupon n'est pas valide",
+ "coupon_not_valid_for_offer": "Le code de coupon n'est pas valide pour cette offre",
+ "credit_card": "Carte de crédit",
+ "credit_card_name": "Nom sur la carte de crédit",
+ "days_trial_one": "Vous serez facturé demain.",
+ "days_trial_other": "Vous serez facturé après {{count}} jours.",
+ "discount_period_one": "Pour les premiers {{period}}",
+ "discount_period_other": "Pour les premiers {{count}} {{period}}",
+ "free_trial_discount": "Essai gratuit",
+ "go_back_to_checkout": "Retourner au paiement",
+ "invalid_card_expiry": "Date d'expiration de la carte invalide",
+ "invalid_card_number": "Numéro de carte invalide",
+ "invalid_cvc_number": "Numéro CVC invalide",
+ "monthly": "Abonnement mensuel",
+ "no_payment_needed": "Aucun paiement requis",
+ "payment_cancelled": "Paiement annulé",
+ "payment_cancelled_message": "Vous avez annulé le paiement",
+ "payment_error": "Échec du paiement",
+ "payment_method": "Méthode de paiement",
+ "payment_method_fee": "Frais de méthode de paiement",
+ "payment_success": "Le paiement a été envoyé avec succès",
+ "paypal": "PayPal",
+ "paypal_instructions": "En cliquant sur 'continuer', vous serez redirigé vers le site PayPal.",
+ "periods_trial_one": "Vous serez facturé après un {{period}}.",
+ "periods_trial_other": "Vous serez facturé après {{count}} {{period}}.",
+ "redeem_coupon": "Utiliser le coupon",
+ "save": "Sauvegarder",
+ "start_watching": "Commencer à regarder ({{countdown}})",
+ "total_price": "Total",
+ "upgrade_error": "Échec de la mise à jour de l'abonnement !",
+ "upgrade_error_message": "En raison d'une erreur inconnue, la mise à jour a échoué. Veuillez contacter un administrateur.",
+ "upgrade_pending": "Abonnement mis à jour !",
+ "upgrade_pending_message": "Votre abonnement sera mis à jour après la prochaine date de facturation.",
+ "upgrade_success": "Abonnement mis à jour !",
+ "upgrade_success_message": "Votre abonnement est mis à jour et peut être utilisé immédiatement.",
+ "waiting_for_payment": "En attente de paiement",
+ "welcome_description": "Merci de vous être abonné à {{siteName}}. Profitez de tout notre contenu.",
+ "welcome_title": "Bienvenue sur {{siteName}}",
+ "yearly": "Abonnement annuel"
+ },
+ "choose_offer": {
+ "benefits": {
+ "cancel_anytime": "Annuler à tout moment",
+ "first_days_free_one": "Premier jour gratuit",
+ "first_days_free_other": "Les {{count}} premiers jours gratuits",
+ "first_periods_free_one": "Les {{period}} premiers gratuits",
+ "first_periods_free_other": "Les {{count}} {{period}} premiers gratuits",
+ "watch_on_all_devices": "Regarder sur tous les appareils"
+ },
+ "continue": "Continuer",
+ "field_required": "Ce champ est requis, veuillez sélectionner une option",
+ "monthly": "Mensuel",
+ "monthly_subscription": "Abonnement mensuel",
+ "no_pricing_available": "Aucune option de tarification disponible pour le moment.",
+ "one_time_only": "Cette vidéo",
+ "subscription": "Abonnement",
+ "title": "Choisir un plan",
+ "tvod_access_one": "Accès de {{count}} {{period}}",
+ "tvod_access_other": "Accès de {{count}} {{period}}",
+ "watch_this_on_platform": "Regardez ceci sur {{siteName}}",
+ "yearly": "Annuel",
+ "yearly_subscription": "Abonnement annuel"
+ },
+ "external_payment": {
+ "explanation": "Cet abonnement est géré via {{paymentProvider}}.",
+ "manage_subscription": "Cliquez ici pour plus d'informations."
+ },
+ "login": {
+ "email": "Email",
+ "field_is_not_valid_email": "Veuillez ressaisir vos informations email et réessayer.",
+ "field_required": "Ce champ est requis, veuillez entrer un {{field}} valide",
+ "forgot_password": "Mot de passe oublié ?",
+ "not_registered": "Nouveau sur {{siteName}} ?",
+ "password": "Mot de passe",
+ "sign_in": "Se connecter",
+ "sign_in_success": "Connexion réussie",
+ "sign_up": "S'inscrire",
+ "view_password": "Voir le mot de passe",
+ "wrong_combination": "Combinaison email/mot de passe incorrecte",
+ "wrong_email": "Veuillez vérifier votre email et réessayer."
+ },
+ "payment": {
+ "back_to_profile": "Retour au profil",
+ "credit_card": "Carte de crédit",
+ "credit_card_expiry_date": "Date d'expiration",
+ "credit_card_number": "Numéro de carte",
+ "edit_card": "Modifier la carte",
+ "longer_than_usual": "Le paiement prend plus de temps que d'habitude. Veuillez réessayer plus tard.",
+ "paypal": "PayPal",
+ "update_payment_details": "Mettre à jour les détails de paiement",
+ "update_payment_success": "Vos détails de paiement ont été mis à jour"
+ },
+ "periods": {
+ "day_one": "jour",
+ "day_other": "jours",
+ "month": "mensuel",
+ "month_one": "mois",
+ "month_other": "mois",
+ "week_one": "semaine",
+ "week_other": "semaines",
+ "year": "annuel",
+ "year_one": "an",
+ "year_other": "ans"
+ },
+ "personal_details": {
+ "address": "Adresse ligne 1",
+ "address2": "Adresse ligne 2",
+ "birth_date": "Date de naissance",
+ "birth_date_not_valid": "La date de naissance n'est pas valide",
+ "city": "Ville",
+ "company_name": "Nom de l'entreprise",
+ "continue": "Continuer",
+ "fist_name": "Prénom",
+ "last_name": "Nom de famille",
+ "phone_number": "Numéro de téléphone",
+ "post_code": "Code postal",
+ "select_answer": "Choisissez une option",
+ "state": "État/Province/Région",
+ "this_field_is_required": "Ce champ est requis",
+ "title": "Détails personnels"
+ },
+ "registration": {
+ "already_account": "Vous avez déjà un compte ?",
+ "consents_error": "Veuillez accepter toutes les consentements requis pour continuer.",
+ "continue": "Continuer",
+ "email": "Email",
+ "email_updates": "Oui, je souhaite recevoir les mises à jour de {{siteName}} par email.",
+ "failed_to_create": "Une erreur s'est produite. Veuillez réessayer plus tard.",
+ "field_is_not_valid_email": "Veuillez ressaisir vos informations email",
+ "field_required": "Ce champ est requis",
+ "invalid_password": "Utilisez un minimum de 8 caractères (sensibles à la casse) avec au moins un chiffre",
+ "password": "Mot de passe",
+ "password_strength": {
+ "fair": "Moyenne",
+ "invalid": "",
+ "strong": "Forte",
+ "very_strong": "Très forte",
+ "weak": "Faible"
+ },
+ "password_strength_prefix": "Force du mot de passe",
+ "sign_up": "S'inscrire",
+ "success": "Inscription réussie",
+ "terms_and_conditions": "Termes et conditions",
+ "terms_consent": "J'accepte les {{termsLink}}.",
+ "terms_consent_jwplayer": "J'accepte les {{termsLink}} de JW Player.",
+ "user_exists": "Un utilisateur existe déjà avec cette adresse email"
+ },
+ "renew_subscription": {
+ "explanation": "En cliquant sur le bouton ci-dessous, vous pouvez renouveler votre plan.",
+ "next_billing_date_on": "La prochaine date de facturation sera le {{date}}",
+ "no_thanks": "Non, merci",
+ "renew_subscription": "Renouveler l'abonnement",
+ "renew_your_subscription": "Renouveler votre abonnement",
+ "success": "Votre abonnement a été renouvelé",
+ "unknown_error_occurred": "Une erreur inconnue est survenue !"
+ },
+ "reset": {
+ "back_login": "Retour à la connexion",
+ "confirm": "Confirmer",
+ "email": "Email",
+ "email_me": "Envoyez-moi un email",
+ "forgot_password": "Mot de passe oublié",
+ "forgot_text": "Nous vous enverrons un email avec des instructions pour réinitialiser votre mot de passe.",
+ "invalid_link": "Lien invalide",
+ "invalid_password": "Mot de passe invalide",
+ "invalid_reset_link": "Le lien de réinitialisation du mot de passe est invalide ou a expiré. Veuillez essayer de réinitialiser votre mot de passe à nouveau.",
+ "invalid_token": "Jeton invalide. Vérifiez si vous avez bien saisi le jeton envoyé par email ou demandez-en un nouveau en redémarrant le processus de mot de passe oublié.",
+ "link_sent": "Lien de mot de passe envoyé",
+ "link_sent_text": "Veuillez vérifier votre boîte de réception à {{email}}",
+ "new_password": "Nouveau mot de passe",
+ "no": "Non, merci",
+ "not_sure": "Pas sûr que ce soit la bonne adresse email ?",
+ "old_password": "Ancien mot de passe",
+ "old_password_does_not_match": "L'ancien mot de passe ne correspond pas",
+ "password": "Mot de passe",
+ "password_helper_text": "Utilisez un minimum de 8 caractères (sensibles à la casse) avec au moins un chiffre",
+ "password_reset": "Réinitialisation du mot de passe",
+ "password_reset_success": "Réinitialisation du mot de passe réussie",
+ "password_strength": "Bien que votre mot de passe réponde aux critères d'un mot de passe fort, il contient des éléments non recommandés, tels que des phrases interdites ou des mots répétés. Veuillez le modifier pour garantir la sécurité de votre compte.",
+ "passwords_do_not_match": "Les mots de passe ne correspondent pas",
+ "repeat_new_password": "Répétez le nouveau mot de passe",
+ "reset_password": "Modifier le mot de passe",
+ "reset_password_token": "Jeton",
+ "text": "Si vous souhaitez modifier votre mot de passe, cliquez sur 'OUI, Réinitialiser' pour recevoir les instructions de réinitialisation sur votre mail",
+ "try_again": "Essayez à nouveau",
+ "view_password": "Voir le mot de passe",
+ "wrong_email": "Email incorrect",
+ "yes": "Oui, réinitialiser"
+ },
+ "subscription_cancelled": {
+ "message": "Vous avez été désabonné avec succès. Votre plan actuel expirera le {{date}}",
+ "return_to_profile": "Retour au profil",
+ "title": "Tu nous manques déjà."
+ },
+ "subscription_renewed": {
+ "back_to_profile": "Retour au profil",
+ "message": "Vous avez été réabonné avec succès. Votre tarif sera de {{price}} à partir du {{date}}",
+ "title": "Votre abonnement a été renouvelé"
+ },
+ "validation": {
+ "first_name": "Le prénom peut contenir au maximum 50 caractères.",
+ "last_name": "Le nom de famille peut contenir au maximum 50 caractères."
+ }
+}
diff --git a/platforms/web/public/locales/fr/common.json b/platforms/web/public/locales/fr/common.json
new file mode 100644
index 000000000..cb76a1426
--- /dev/null
+++ b/platforms/web/public/locales/fr/common.json
@@ -0,0 +1,37 @@
+{
+ "abbreviation": {
+ "hours": "h",
+ "minutes": "min"
+ },
+ "alert": {
+ "close": "Fermer",
+ "success": "Succès",
+ "title": "Une erreur s'est produite"
+ },
+ "back": "Retour",
+ "card_lock": "Élément verrouillé",
+ "close_modal": "Fermer le panneau",
+ "confirmation_dialog": {
+ "close": "Annuler",
+ "confirm": "Oui"
+ },
+ "default_description": "JW OTT Webapp est un site vidéo open-source généré dynamiquement.",
+ "default_site_name": "Mon application OTT",
+ "filter_videos_by": "Filtrer les vidéos par {{name}}",
+ "filter_videos_by_genre": "Filtrer les vidéos par genre",
+ "home": "Accueil",
+ "live": "EN DIRECT",
+ "more_info": "Plus d'informations",
+ "now": "Maintenant",
+ "play_item": "Lire {{title}}",
+ "scheduled": "Prévu",
+ "sign_in": "Se connecter",
+ "sign_up": "S'inscrire",
+ "slide_indicator": "Page {{page}} sur {{pages}}",
+ "slide_left": "Glisser à gauche",
+ "slide_next": "Diapositive suivante",
+ "slide_previous": "Diapositive précédente",
+ "slide_right": "Glisser à droite",
+ "slide_to": "Aller à l'élément {{item}} sur {{items}}",
+ "videoplayer": "Lecteur vidéo"
+}
diff --git a/platforms/web/public/locales/fr/country.json b/platforms/web/public/locales/fr/country.json
new file mode 100644
index 000000000..ae12e65b9
--- /dev/null
+++ b/platforms/web/public/locales/fr/country.json
@@ -0,0 +1,250 @@
+{
+ "af": "Afghanistan",
+ "ax": "Îles Åland",
+ "al": "Albanie",
+ "dz": "Algérie",
+ "as": "Samoa américaines",
+ "ad": "Andorre",
+ "ao": "Angola",
+ "ai": "Anguilla",
+ "aq": "Antarctique",
+ "ag": "Antigua-et-Barbuda",
+ "ar": "Argentine",
+ "am": "Arménie",
+ "aw": "Aruba",
+ "au": "Australie",
+ "at": "Autriche",
+ "az": "Azerbaïdjan",
+ "bs": "Bahamas",
+ "bh": "Bahreïn",
+ "bd": "Bangladesh",
+ "bb": "Barbade",
+ "by": "Biélorussie",
+ "be": "Belgique",
+ "bz": "Belize",
+ "bj": "Bénin",
+ "bm": "Bermudes",
+ "bt": "Bhoutan",
+ "bo": "Bolivie",
+ "bq": "Bonaire, Saint-Eustache et Saba",
+ "ba": "Bosnie-Herzégovine",
+ "bw": "Botswana",
+ "bv": "Île Bouvet",
+ "br": "Brésil",
+ "io": "Territoire britannique de l'océan Indien",
+ "bn": "Brunei Darussalam",
+ "bg": "Bulgarie",
+ "bf": "Burkina Faso",
+ "bi": "Burundi",
+ "kh": "Cambodge",
+ "cm": "Cameroun",
+ "ca": "Canada",
+ "cv": "Cap-Vert",
+ "ky": "Îles Caïmans",
+ "cf": "République centrafricaine",
+ "td": "Tchad",
+ "cl": "Chili",
+ "cn": "Chine",
+ "cx": "Île Christmas",
+ "cc": "Îles Cocos (Keeling)",
+ "co": "Colombie",
+ "km": "Comores",
+ "cg": "Congo",
+ "cd": "Congo, République démocratique du",
+ "ck": "Îles Cook",
+ "cr": "Costa Rica",
+ "ci": "Côte d'Ivoire",
+ "hr": "Croatie",
+ "cu": "Cuba",
+ "cw": "Curaçao",
+ "cy": "Chypre",
+ "cz": "République tchèque",
+ "dk": "Danemark",
+ "dj": "Djibouti",
+ "dm": "Dominique",
+ "do": "République dominicaine",
+ "ec": "Équateur",
+ "eg": "Égypte",
+ "sv": "El Salvador",
+ "gq": "Guinée équatoriale",
+ "er": "Érythrée",
+ "ee": "Estonie",
+ "et": "Éthiopie",
+ "fk": "Îles Malouines",
+ "fo": "Îles Féroé",
+ "fj": "Fidji",
+ "fi": "Finlande",
+ "fr": "France",
+ "gf": "Guyane française",
+ "pf": "Polynésie française",
+ "tf": "Terres australes françaises",
+ "ga": "Gabon",
+ "gm": "Gambie",
+ "ge": "Géorgie",
+ "de": "Allemagne",
+ "gh": "Ghana",
+ "gi": "Gibraltar",
+ "gr": "Grèce",
+ "gl": "Groenland",
+ "gd": "Grenade",
+ "gp": "Guadeloupe",
+ "gu": "Guam",
+ "gt": "Guatemala",
+ "gg": "Guernesey",
+ "gn": "Guinée",
+ "gw": "Guinée-Bissau",
+ "gy": "Guyana",
+ "ht": "Haïti",
+ "hm": "Îles Heard-et-MacDonald",
+ "va": "Saint-Siège (État de la Cité du Vatican)",
+ "hn": "Honduras",
+ "hk": "Hong Kong",
+ "hu": "Hongrie",
+ "is": "Islande",
+ "in": "Inde",
+ "id": "Indonésie",
+ "ir": "Iran, République islamique d'",
+ "iq": "Irak",
+ "ie": "Irlande",
+ "im": "Île de Man",
+ "il": "Israël",
+ "it": "Italie",
+ "jm": "Jamaïque",
+ "jp": "Japon",
+ "je": "Jersey",
+ "jo": "Jordanie",
+ "kz": "Kazakhstan",
+ "ke": "Kenya",
+ "ki": "Kiribati",
+ "kp": "Corée, République populaire démocratique de",
+ "kr": "Corée, République de",
+ "kw": "Koweït",
+ "kg": "Kirghizistan",
+ "la": "République démocratique populaire lao",
+ "lv": "Lettonie",
+ "lb": "Liban",
+ "ls": "Lesotho",
+ "lr": "Libéria",
+ "ly": "Libye",
+ "li": "Liechtenstein",
+ "lt": "Lituanie",
+ "lu": "Luxembourg",
+ "mo": "Macao",
+ "mk": "Macédoine, l'ancienne République yougoslave de",
+ "mg": "Madagascar",
+ "mw": "Malawi",
+ "my": "Malaisie",
+ "mv": "Maldives",
+ "ml": "Mali",
+ "mt": "Malte",
+ "mh": "Îles Marshall",
+ "mq": "Martinique",
+ "mr": "Mauritanie",
+ "mu": "Maurice",
+ "yt": "Mayotte",
+ "mx": "Mexique",
+ "fm": "Micronésie, États fédérés de",
+ "md": "Moldavie, République de",
+ "mc": "Monaco",
+ "mn": "Mongolie",
+ "me": "Monténégro",
+ "ms": "Montserrat",
+ "ma": "Maroc",
+ "mz": "Mozambique",
+ "mm": "Myanmar",
+ "na": "Namibie",
+ "nr": "Nauru",
+ "np": "Népal",
+ "nl": "Pays-Bas",
+ "nc": "Nouvelle-Calédonie",
+ "nz": "Nouvelle-Zélande",
+ "ni": "Nicaragua",
+ "ne": "Niger",
+ "ng": "Nigéria",
+ "nu": "Niue",
+ "nf": "Île Norfolk",
+ "mp": "Îles Mariannes du Nord",
+ "no": "Norvège",
+ "om": "Oman",
+ "pk": "Pakistan",
+ "pw": "Palaos",
+ "ps": "Palestine, État de",
+ "pa": "Panama",
+ "pg": "Papouasie-Nouvelle-Guinée",
+ "py": "Paraguay",
+ "pe": "Pérou",
+ "ph": "Philippines",
+ "pn": "Pitcairn",
+ "pl": "Pologne",
+ "pt": "Portugal",
+ "pr": "Porto Rico",
+ "qa": "Qatar",
+ "re": "Réunion",
+ "ro": "Roumanie",
+ "ru": "Fédération de Russie",
+ "rw": "Rwanda",
+ "bl": "Saint-Barthélemy",
+ "sh": "Sainte-Hélène, Ascension et Tristan da Cunha",
+ "kn": "Saint-Kitts-et-Nevis",
+ "lc": "Sainte-Lucie",
+ "mf": "Saint-Martin (partie française)",
+ "pm": "Saint-Pierre-et-Miquelon",
+ "vc": "Saint-Vincent-et-les-Grenadines",
+ "ws": "Samoa",
+ "sm": "Saint-Marin",
+ "st": "Sao Tomé-et-Principe",
+ "sa": "Arabie saoudite",
+ "sn": "Sénégal",
+ "rs": "Serbie",
+ "sc": "Seychelles",
+ "sl": "Sierra Leone",
+ "sg": "Singapour",
+ "sx": "Saint-Martin (partie néerlandaise)",
+ "sk": "Slovaquie",
+ "si": "Slovénie",
+ "sb": "Îles Salomon",
+ "so": "Somalie",
+ "za": "Afrique du Sud",
+ "gs": "Géorgie du Sud-et-les Îles Sandwich du Sud",
+ "es": "Espagne",
+ "lk": "Sri Lanka",
+ "sd": "Soudan",
+ "sr": "Suriname",
+ "sj": "Svalbard et Jan Mayen",
+ "sz": "Eswatini",
+ "se": "Suède",
+ "ch": "Suisse",
+ "sy": "République arabe syrienne",
+ "tw": "Taïwan",
+ "tj": "Tadjikistan",
+ "tz": "Tanzanie, République-Unie de",
+ "th": "Thaïlande",
+ "tl": "Timor-Leste",
+ "tg": "Togo",
+ "tk": "Tokelau",
+ "to": "Tonga",
+ "tt": "Trinité-et-Tobago",
+ "tn": "Tunisie",
+ "tr": "Turquie",
+ "tm": "Turkménistan",
+ "tc": "Îles Turques-et-Caïques",
+ "tv": "Tuvalu",
+ "ug": "Ouganda",
+ "ua": "Ukraine",
+ "ae": "Émirats arabes unis",
+ "gb": "Royaume-Uni",
+ "us": "États-Unis d'Amérique",
+ "um": "Îles mineures éloignées des États-Unis",
+ "uy": "Uruguay",
+ "uz": "Ouzbékistan",
+ "vu": "Vanuatu",
+ "ve": "Venezuela",
+ "vn": "Viet Nam",
+ "vg": "Îles Vierges britanniques",
+ "vi": "Îles Vierges des États-Unis",
+ "wf": "Wallis-et-Futuna",
+ "eh": "Sahara occidental",
+ "ye": "Yémen",
+ "zm": "Zambie",
+ "zw": "Zimbabwe"
+}
diff --git a/platforms/web/public/locales/fr/demo.json b/platforms/web/public/locales/fr/demo.json
new file mode 100644
index 000000000..e87aab863
--- /dev/null
+++ b/platforms/web/public/locales/fr/demo.json
@@ -0,0 +1,16 @@
+{
+ "app_config_learn_more": "En savoir plus sur les configurations de l'application",
+ "app_config_not_found": "Configuration de l'application invalide ou manquante",
+ "cancel_config_id": "Annuler",
+ "click_to_unselect_config": "(cliquez ici pour désélectionner cette configuration)",
+ "currently_previewing_config": "Vous prévisualisez actuellement la configuration : '{{configSource}}'",
+ "demo_note": "Remarque : L'ID de configuration choisi sera stocké localement dans ce navigateur uniquement. Utilisez le lien en bas de la page principale pour effacer ce paramètre et revenir à cette boîte de dialogue.",
+ "enter_8_digits": "L'ID de configuration de l'application doit comporter 8 chiffres. Veuillez corriger votre saisie et réessayer.",
+ "enter_a_value": "Veuillez entrer un ID de configuration de l'application",
+ "invalid_config_id_format": "L'ID de configuration de l'application doit être composé uniquement de chiffres et de lettres minuscules. Veuillez vérifier votre saisie et réessayer.",
+ "please_enter_config_id": "Veuillez entrer un ID de configuration de l'application depuis votre compte JW",
+ "submit_config_id": "Soumettre",
+ "use_the_jwp_dashboard": "Vous n'avez pas de configuration ? Utilisez le tableau de bord JWP pour créer une configuration d'application ou cliquez sur Annuler pour afficher une démo générique.",
+ "view_generic_demo": "Afficher une démo générique ?",
+ "viewing_config_demo": "Cela vous redirigera vers une application démo générique. Êtes-vous sûr de vouloir continuer ?"
+}
diff --git a/platforms/web/public/locales/fr/epg.json b/platforms/web/public/locales/fr/epg.json
new file mode 100644
index 000000000..ea369f507
--- /dev/null
+++ b/platforms/web/public/locales/fr/epg.json
@@ -0,0 +1,4 @@
+{
+ "on_channel": "Sur {{name}}",
+ "start_from_beginning": "Regarder depuis le début"
+}
diff --git a/platforms/web/public/locales/fr/error.json b/platforms/web/public/locales/fr/error.json
new file mode 100644
index 000000000..ece7d1611
--- /dev/null
+++ b/platforms/web/public/locales/fr/error.json
@@ -0,0 +1,21 @@
+{
+ "adyen_order_unknown": "Commande inconnue",
+ "check_your_config": "Un problème est survenu lors de la récupération de la configuration de l'application. Réessayez plus tard. Si le problème persiste, contactez le support technique.",
+ "check_your_settings": "Un problème est survenu lors du chargement des paramètres par défaut. Réessayez plus tard. Si le problème persiste, contactez le support technique.",
+ "config_invalid": "Configuration invalide ou manquante",
+ "empty_shelves_description": "Nous nous excusons, mais aucun contenu n'est disponible dans votre région.",
+ "empty_shelves_heading": "Aucun contenu disponible",
+ "generic_error_description": "Essayez de rafraîchir cette page ou revenez plus tard.",
+ "generic_error_heading": "Un problème est survenu lors du chargement de l'application",
+ "learn_more": "En savoir plus",
+ "notfound_error_description": "Cette page n'existe pas.",
+ "notfound_error_heading": "Introuvable",
+ "playlist_not_found": "Playlist introuvable",
+ "settings_invalid": "Paramètres invalides ou manquants",
+ "unknown_error": "Erreur inconnue",
+ "validation_form_error": {
+ "other": "Veuillez corriger vos erreurs avant de continuer.",
+ "required": "Veuillez remplir tous les champs obligatoires avant de continuer."
+ },
+ "video_not_found": "Vidéo introuvable"
+}
diff --git a/platforms/web/public/locales/fr/menu.json b/platforms/web/public/locales/fr/menu.json
new file mode 100644
index 000000000..9ec145554
--- /dev/null
+++ b/platforms/web/public/locales/fr/menu.json
@@ -0,0 +1,12 @@
+{
+ "close_menu": "Fermer le menu",
+ "language_menu": "Ouvrir le menu des langues",
+ "logo_alt": "Page d'accueil de {{siteName}}",
+ "open_menu": "Ouvrir le menu",
+ "open_user_menu": "Ouvrir le menu utilisateur",
+ "search_close": "Fermer la recherche",
+ "search_open": "Ouvrir la recherche",
+ "sign_in": "Se connecter",
+ "sign_up": "S'inscrire",
+ "skip_to_content": "Passer au contenu"
+}
diff --git a/platforms/web/public/locales/fr/search.json b/platforms/web/public/locales/fr/search.json
new file mode 100644
index 000000000..6839a4ebf
--- /dev/null
+++ b/platforms/web/public/locales/fr/search.json
@@ -0,0 +1,19 @@
+{
+ "error_description": "Rechargez cette page ou réessayez plus tard.",
+ "error_heading": "Un problème est survenu",
+ "error_subheading": "Il semble qu'un problème soit survenu lors du chargement de cette page...",
+ "heading": "Résultats de recherche",
+ "no_results_heading": "Aucun résultat trouvé pour \"{{query}}\"",
+ "search_bar": {
+ "clear_search_label": "Effacer la recherche",
+ "search_label": "Rechercher",
+ "search_placeholder": "Rechercher..."
+ },
+ "start_typing": "Tapez quelque chose dans la barre de recherche pour commencer",
+ "suggestions": "Suggestions :",
+ "tip_one": "Assurez-vous que tous les mots sont correctement orthographiés",
+ "tip_two": "Utilisez des termes de recherche plus généraux",
+ "tip_three": "Essayez différents termes de recherche",
+ "title_one": "{{count}} résultat pour \"{{query}}\"",
+ "title_other": "{{count}} résultats pour \"{{query}}\""
+}
diff --git a/platforms/web/public/locales/fr/us_state.json b/platforms/web/public/locales/fr/us_state.json
new file mode 100644
index 000000000..e32fc4733
--- /dev/null
+++ b/platforms/web/public/locales/fr/us_state.json
@@ -0,0 +1,53 @@
+{
+ "al": "Alabama",
+ "ak": "Alaska",
+ "az": "Arizona",
+ "ar": "Arkansas",
+ "ca": "California",
+ "co": "Colorado",
+ "ct": "Connecticut",
+ "de": "Delaware",
+ "dc": "District of Columbia",
+ "fl": "Florida",
+ "ga": "Georgia",
+ "hi": "Hawaii",
+ "id": "Idaho",
+ "il": "Illinois",
+ "in": "Indiana",
+ "ia": "Iowa",
+ "ks": "Kansas",
+ "ky": "Kentucky",
+ "la": "Louisiana",
+ "me": "Maine",
+ "md": "Maryland",
+ "ma": "Massachusetts",
+ "mi": "Michigan",
+ "mn": "Minnesota",
+ "ms": "Mississippi",
+ "mo": "Missouri",
+ "mt": "Montana",
+ "ne": "Nebraska",
+ "nv": "Nevada",
+ "nh": "New Hampshire",
+ "nj": "New Jersey",
+ "nm": "New Mexico",
+ "ny": "New York",
+ "nc": "North Carolina",
+ "nd": "North Dakota",
+ "oh": "Ohio",
+ "ok": "Oklahoma",
+ "or": "Oregon",
+ "pa": "Pennsylvania",
+ "ri": "Rhode Island",
+ "sc": "South Carolina",
+ "sd": "South Dakota",
+ "tn": "Tennessee",
+ "tx": "Texas",
+ "ut": "Utah",
+ "vt": "Vermont",
+ "va": "Virginia",
+ "wa": "Washington",
+ "wv": "West Virginia",
+ "wi": "Wisconsin",
+ "wy": "Wyoming"
+}
diff --git a/platforms/web/public/locales/fr/user.json b/platforms/web/public/locales/fr/user.json
new file mode 100644
index 000000000..1de741d05
--- /dev/null
+++ b/platforms/web/public/locales/fr/user.json
@@ -0,0 +1,125 @@
+{
+ "account": {
+ "about_you": "Informations sur le compte",
+ "add_password": "Ajouter un mot de passe",
+ "add_password_error": "Échec de l'accès à l'écran d'ajout de mot de passe. Veuillez réessayer.",
+ "add_password_modal_text": "Nous avons envoyé des instructions à {{email}} pour ajouter un mot de passe. Si vous ne recevez pas l'email dans quelques minutes, vérifiez votre dossier spam ou",
+ "cancel": "Annuler",
+ "confirm_password": "Confirmer le mot de passe",
+ "continue": "Continuer",
+ "delete_account": {
+ "body": "Supprimez définitivement votre compte et tout votre contenu.",
+ "error": "Une erreur est survenue lors de la suppression de votre compte. Veuillez réessayer.",
+ "invalid_credentials": "Le mot de passe soumis n'est pas valide",
+ "modal": {
+ "description": "Entrez votre mot de passe pour continuer",
+ "placeholder": "Entrez votre mot de passe",
+ "text_cant_be_undone": "Veuillez noter que ce processus est irréversible, procédez donc avec prudence.",
+ "text_contacts": "Si vous avez des questions supplémentaires, n'hésitez pas à contacter notre équipe d'assistance.",
+ "text_data_erasure": "Veuillez noter que si vous choisissez de poursuivre ce processus, toutes vos données personnelles seront effacées de notre système. Cela inclut toutes les informations personnelles que vous avez fournies lors de l'inscription, ainsi que toute information sur votre localisation et vos appareils collectée pendant le processus d'authentification. De plus, toutes les autres informations personnelles stockées dans diverses parties de notre base de données seront également supprimées. Toutefois, veuillez noter qu'en vertu de certaines législations, nous sommes tenus de conserver certaines données personnelles dans les dossiers de transactions et d'abonnements.",
+ "text_revoked_access": "Une fois l'effacement terminé, tous vos accès actifs seront révoqués, et toute session de connexion active, y compris celle-ci, sera terminée. Vos informations de compte ne seront plus accessibles à notre personnel.",
+ "warning": "Toutes les souscriptions actives achetées via un navigateur web seront automatiquement annulées lors de l'effacement des données personnelles. Toutefois, si vous avez souscrit à un abonnement via les applications iOS, Android, Roku ou Amazon, sachez qu'il ne sera pas annulé automatiquement. Dans ce cas, vous devrez suivre les étapes habituelles d'annulation de souscription sur chaque plateforme respective."
+ },
+ "success": "Votre compte a été supprimé",
+ "title": "Supprimer le compte"
+ },
+ "delete_account_password_warning": {
+ "text": "Pour supprimer votre compte en utilisant un compte de média social pour la connexion, vous devrez d'abord ajouter un mot de passe au compte, puis recommencer le processus de suppression.",
+ "title": "Avertissement"
+ },
+ "edit_account": "Modifier le compte",
+ "edit_information": "Modifier les informations",
+ "edit_password": "Modifier le mot de passe",
+ "email": "Email",
+ "errors": {
+ "email_exists": "L'email existe déjà !",
+ "email_update_not_supported": "La mise à jour de l'email n'est pas supportée",
+ "first_name_too_long": "Limitez le prénom à 50 caractères ou moins.",
+ "invalid_param_email": "Email invalide !",
+ "invalid_password": "Mot de passe incorrect !",
+ "last_name_too_long": "Limitez le nom de famille à 50 caractères ou moins.",
+ "please_enter_valid_email": "Veuillez entrer une adresse email valide.",
+ "unknown_error": "Une erreur inconnue est survenue",
+ "validation_error": "Veuillez corriger vos erreurs avant de continuer.",
+ "wrong_combination": "Combinaison email/mot de passe incorrecte"
+ },
+ "export_data_body": "Exportez toutes vos données personnelles vers {{email}} en pièce jointe.",
+ "export_data_error": "Une erreur est survenue lors de l'exportation des données de votre compte.",
+ "export_data_success": "Veuillez vérifier votre email.",
+ "export_data_title": "Exporter les données du compte",
+ "firstname": "Prénom",
+ "lastname": "Nom de famille",
+ "other_registration_details": "Autres détails d'inscription",
+ "password": "Mot de passe",
+ "proceed_to_adding_a_password": "Procédez à l'ajout d'un mot de passe",
+ "resend_mail": "renvoyer l'email.",
+ "resend_mail_error": "Une erreur est survenue lors de l'envoi de l'email. Veuillez réessayer.",
+ "save": "Enregistrer",
+ "security": "Mot de passe",
+ "terms_and_tracking": "Légal & Marketing",
+ "update_consents": "Mettre à jour les consentements",
+ "update_success": "Votre {{section}} a été mis à jour avec succès.",
+ "view_password": "Voir le mot de passe"
+ },
+ "favorites": {
+ "clear": "Effacer les favoris",
+ "clear_favorites_body": "Vous êtes sur le point d'effacer tous vos vidéos favorites. Êtes-vous sûr ?",
+ "clear_favorites_title": "Effacer les favoris ?",
+ "no_favorites": "Vos favoris sont vides",
+ "title": "Favoris"
+ },
+ "login": {
+ "field_required": "Ce champ est requis, veuillez remplir un {{field}} valide."
+ },
+ "nav": {
+ "account": "Compte",
+ "favorites": "Favoris",
+ "logout": "Se déconnecter",
+ "payments": "Paiements",
+ "settings": "Paramètres"
+ },
+ "payment": {
+ "access_granted": "Accès accordé",
+ "add_card_details": "Ajouter les détails de la carte",
+ "annual_subscription": "Abonnement annuel",
+ "billing_history": "Historique de facturation",
+ "cancel_subscription": "Annuler l'abonnement",
+ "card_number": "Numéro de carte",
+ "card_number_hidden": "Numéro de carte se terminant par {{number}}",
+ "change_plan": "Changer de plan",
+ "change_plan_error": "Un problème est survenu lors de l'enregistrement du changement de votre plan d'abonnement.",
+ "change_subscription": "Changer d'abonnement",
+ "complete_subscription": "Compléter l'abonnement",
+ "current_plan": "PLAN ACTUEL",
+ "daily_subscription": "Abonnement quotidien",
+ "downgrade_on": "Diminution prévue le {{date}}",
+ "downgrade_plan_success": "Vous avez changé de plan d'abonnement avec succès. Votre nouveau plan commencera après la fin du cycle actuel ({{date}}).",
+ "expiry_date": "Date d'expiration",
+ "granted_subscription": "Abonnement accordé",
+ "hidden_transactions_one": "Une autre transaction",
+ "hidden_transactions_other": "{{count}} autres transactions",
+ "longer_than_usual": "Le paiement prend plus de temps que d'habitude. Veuillez réessayer plus tard.",
+ "monthly_subscription": "Abonnement mensuel",
+ "next_billing_date_on": "La prochaine date de facturation est le {{date}}",
+ "no_payment_methods": "Aucun mode de paiement",
+ "no_subscription": "Vous n'avez pas d'abonnement. Complétez votre abonnement pour commencer à regarder tous les films et séries.",
+ "no_transaction": "Aucune transaction",
+ "no_transactions": "Aucune transaction",
+ "other": "autre",
+ "payment_method": "Méthode de paiement",
+ "pending_downgrade": "Diminution en attente",
+ "pending_offer_switch": "Sera mis à jour vers \"{{title}}\" après la prochaine date de facturation",
+ "price_paid_with": "{{price}} payé avec {{method}}",
+ "price_paid_with_card": "Prix payé avec carte",
+ "renew_subscription": "Renouveler l'abonnement",
+ "security_code": "Code de sécurité",
+ "security_code_hidden": "Code de sécurité masqué",
+ "show_all": "Tout afficher",
+ "show_receipt": "Afficher le reçu",
+ "subscription_details": "Détails de l'abonnement",
+ "subscription_expires_on": "Ce plan expirera le {{date}}",
+ "update_payment_details": "Mettre à jour les détails du paiement",
+ "upgrade_plan_success": "Vous avez changé de plan d'abonnement avec succès. Vous pouvez profiter immédiatement de vos avantages supplémentaires.",
+ "weekly_subscription": "Abonnement hebdomadaire"
+ }
+}
diff --git a/platforms/web/public/locales/fr/video.json b/platforms/web/public/locales/fr/video.json
new file mode 100644
index 000000000..1bfe9bc15
--- /dev/null
+++ b/platforms/web/public/locales/fr/video.json
@@ -0,0 +1,31 @@
+{
+ "all_seasons": "Toutes les saisons",
+ "buy": "Acheter",
+ "buy_to_start_watching": "Achetez pour commencer à regarder !",
+ "complete_your_subscription": "Complétez votre abonnement",
+ "continue_watching": "Continuer à regarder",
+ "copied_url": "URL copiée",
+ "current_episode": "Épisode actuel",
+ "current_video": "Vidéo actuelle",
+ "episode": "épisode",
+ "episodes": "Épisodes",
+ "favorite": "Favori",
+ "favorites_warning": "Le nombre maximal de vidéos favorites a été dépassé. Vous pouvez ajouter jusqu'à {{maxCount}} vidéos favorites. Veuillez en supprimer une et répéter l'opération.",
+ "live": "En direct",
+ "player_error": {
+ "geo_blocked_description": "Nous nous excusons, mais ce contenu est actuellement indisponible dans votre région.",
+ "geo_blocked_title": "Contenu indisponible"
+ },
+ "season": "saison",
+ "season_number_filter_template": "Saison {{seasonNumber}}",
+ "series": "Séries",
+ "series_error": "Une erreur est survenue lors de la demande de séries",
+ "share": "Partager",
+ "share_video": "Partager cette vidéo",
+ "sign_up_to_start_watching": "Inscrivez-vous pour commencer à regarder !",
+ "start_watching": "Commencer à regarder",
+ "total_episodes_one": "{{count}} épisode",
+ "total_episodes_other": "{{count}} épisodes",
+ "trailer": "Bande-annonce",
+ "watch_trailer": "Regarder la bande-annonce"
+}
diff --git a/platforms/web/public/locales/nl/account.json b/platforms/web/public/locales/nl/account.json
new file mode 100644
index 000000000..52658edf0
--- /dev/null
+++ b/platforms/web/public/locales/nl/account.json
@@ -0,0 +1,220 @@
+{
+ "cancel_subscription": {
+ "explanation": "U wordt uitgeschreven van uw huidige abonnement door op de knop hieronder te klikken.",
+ "no_thanks": "Nee, bedankt",
+ "title": "We vinden het jammer dat u vertrekt.",
+ "unknown_error_occurred": "Er is een onbekende fout opgetreden, probeer het later opnieuw.",
+ "unsubscribe": "Uitschrijven"
+ },
+ "checkout": {
+ "applicable_tax": "Toepasselijke belasting ({{taxRate}}%)",
+ "card_details_updated": "Uw kaartgegevens zijn bijgewerkt",
+ "card_holder_name": "Naam kaarthouder",
+ "close": "Sluiten",
+ "continue": "Doorgaan",
+ "coupon_applied": "Uw kortingscode is toegepast",
+ "coupon_discount": "Kortingsbonkorting",
+ "coupon_not_valid": "Kortingscode is niet geldig",
+ "coupon_not_valid_for_offer": "Kortingscode is niet geldig voor deze aanbieding",
+ "credit_card": "Kredietkaart",
+ "credit_card_name": "Naam op de kaart",
+ "days_trial_one": "U wordt morgen gefactureerd.",
+ "days_trial_other": "U wordt gefactureerd over {{count}} dagen.",
+ "discount_period_one": "Voor de eerste {{period}}",
+ "discount_period_other": "Voor de eerste {{count}} {{period}}",
+ "free_trial_discount": "Gratis proefperiode",
+ "go_back_to_checkout": "Ga terug naar de kassa",
+ "invalid_card_expiry": "Ongeldige verloopdatum",
+ "invalid_card_number": "Ongeldig kaartnummer",
+ "invalid_cvc_number": "Ongeldig CVC-nummer",
+ "monthly": "Maandelijks abonnement",
+ "no_payment_needed": "Geen betaling nodig",
+ "payment_cancelled": "Betaling geannuleerd",
+ "payment_cancelled_message": "U heeft de betaling geannuleerd",
+ "payment_error": "Betaling mislukt",
+ "payment_method": "Betaalmethode",
+ "payment_method_fee": "Kosten betaalmethode",
+ "payment_success": "Betaling succesvol verzonden",
+ "paypal": "PayPal",
+ "paypal_instructions": "Door op 'doorgaan' te klikken, gaat u naar de PayPal-site.",
+ "periods_trial_one": "U wordt gefactureerd na één {{period}}.",
+ "periods_trial_other": "U wordt gefactureerd na {{count}} {{period}}.",
+ "redeem_coupon": "Kortingsbon inwisselen",
+ "save": "Opslaan",
+ "start_watching": "Begin met kijken ({{countdown}})",
+ "total_price": "Totaal",
+ "upgrade_error": "Abonnement bijwerken mislukt!",
+ "upgrade_error_message": "Vanwege een onbekende fout is de update mislukt. Neem contact op met een beheerder.",
+ "upgrade_pending": "Abonnement bijgewerkt!",
+ "upgrade_pending_message": "Uw abonnement wordt bijgewerkt na de volgende factureringsdatum.",
+ "upgrade_success": "Abonnement bijgewerkt!",
+ "upgrade_success_message": "Uw abonnement is bijgewerkt en kan onmiddellijk worden gebruikt.",
+ "waiting_for_payment": "Wachten op betaling",
+ "welcome_description": "Bedankt voor uw abonnement op {{siteName}}. Geniet van al onze content.",
+ "welcome_title": "Welkom bij {{siteName}}",
+ "yearly": "Jaarlijks abonnement"
+ },
+ "choose_offer": {
+ "benefits": {
+ "cancel_anytime": "Op elk moment annuleren",
+ "first_days_free_one": "Eerste dag gratis",
+ "first_days_free_other": "Eerste {{count}} dagen gratis",
+ "first_periods_free_one": "Eerste {{period}} gratis",
+ "first_periods_free_other": "Eerste {{count}} {{period}} gratis",
+ "watch_on_all_devices": "Kijk op alle apparaten"
+ },
+ "continue": "Doorgaan",
+ "field_required": "Dit veld is verplicht, selecteer een optie",
+ "monthly": "Maandelijks",
+ "monthly_subscription": "Maandelijks abonnement",
+ "no_pricing_available": "Er zijn momenteel geen prijsopties beschikbaar.",
+ "one_time_only": "Deze video",
+ "subscription": "Abonnement",
+ "title": "Kies plan",
+ "tvod_access_one": "{{count}} {{period}} toegang",
+ "tvod_access_other": "{{count}} {{period}} toegang",
+ "watch_this_on_platform": "Bekijk dit op {{siteName}}",
+ "yearly": "Jaarlijks",
+ "yearly_subscription": "Jaarlijks abonnement"
+ },
+ "external_payment": {
+ "explanation": "Dit abonnement wordt beheerd via {{paymentProvider}}.",
+ "manage_subscription": "Klik hier voor meer informatie."
+ },
+ "login": {
+ "email": "E-mail",
+ "field_is_not_valid_email": "Voer uw e-mailgegevens opnieuw in en probeer het opnieuw.",
+ "field_required": "Dit veld is verplicht, vul een geldig {{field}} in",
+ "forgot_password": "Wachtwoord vergeten?",
+ "not_registered": "Nieuw bij {{siteName}}?",
+ "password": "Wachtwoord",
+ "sign_in": "Inloggen",
+ "sign_in_success": "Succesvol ingelogd",
+ "sign_up": "Registreren",
+ "view_password": "Wachtwoord bekijken",
+ "wrong_combination": "Onjuiste combinatie van e-mail/wachtwoord",
+ "wrong_email": "Controleer uw e-mailadres en probeer het opnieuw."
+ },
+ "payment": {
+ "back_to_profile": "Terug naar profiel",
+ "credit_card": "Creditcard",
+ "credit_card_expiry_date": "Vervaldatum",
+ "credit_card_number": "Kaartnummer",
+ "edit_card": "Kaart bewerken",
+ "longer_than_usual": "De betaling duurt langer dan normaal. Probeer het later opnieuw.",
+ "paypal": "PayPal",
+ "update_payment_details": "Betalingsgegevens bijwerken",
+ "update_payment_success": "Uw betalingsgegevens zijn bijgewerkt"
+ },
+ "periods": {
+ "day_one": "dag",
+ "day_other": "dagen",
+ "month": "maandelijks",
+ "month_one": "maand",
+ "month_other": "maanden",
+ "week_one": "week",
+ "week_other": "weken",
+ "year": "jaarlijks",
+ "year_one": "jaar",
+ "year_other": "jaren"
+ },
+ "personal_details": {
+ "address": "Adresregel 1",
+ "address2": "Adresregel 2",
+ "birth_date": "Geboortedatum",
+ "birth_date_not_valid": "Geboortedatum is geen geldige datum",
+ "city": "Stad",
+ "company_name": "Bedrijfsnaam",
+ "continue": "Doorgaan",
+ "fist_name": "Voornaam",
+ "last_name": "Achternaam",
+ "phone_number": "Telefoonnummer",
+ "post_code": "Postcode",
+ "select_answer": "Kies een optie",
+ "state": "Provincie/Regio",
+ "this_field_is_required": "Dit veld is verplicht",
+ "title": "Persoonlijke gegevens"
+ },
+"registration": {
+ "already_account": "Heb je al een account?",
+ "consents_error": "Accepteer alle vereiste toestemmingen om door te gaan.",
+ "continue": "Doorgaan",
+ "email": "E-mailadres",
+ "email_updates": "Ja, ik wil {{siteName}} updates per e-mail ontvangen.",
+ "failed_to_create": "Er is een fout opgetreden. Probeer het later opnieuw.",
+ "field_is_not_valid_email": "Voer uw e-mailadres opnieuw in",
+ "field_required": "Dit veld is verplicht",
+ "invalid_password": "Gebruik minimaal 8 tekens (hoofdlettergevoelig) met ten minste één cijfer",
+ "password": "Wachtwoord",
+ "password_strength": {
+ "fair": "Redelijk",
+ "invalid": "",
+ "strong": "Sterk",
+ "very_strong": "Zeer sterk",
+ "weak": "Zwak"
+ },
+ "password_strength_prefix": "Wachtwoordsterkte",
+ "sign_up": "Registreren",
+ "success": "Registratie succesvol",
+ "terms_and_conditions": "Algemene Voorwaarden",
+ "terms_consent": "Ik accepteer de {{termsLink}}.",
+ "terms_consent_jwplayer": "Ik accepteer de {{termsLink}} van JW Player.",
+ "user_exists": "Er bestaat al een gebruiker met dit e-mailadres"
+ },
+ "renew_subscription": {
+ "explanation": "Door op de knop hieronder te klikken, kunt u uw abonnement verlengen.",
+ "next_billing_date_on": "De volgende factuurdatum is {{date}}",
+ "no_thanks": "Nee, bedankt",
+ "renew_subscription": "Abonnement verlengen",
+ "renew_your_subscription": "Verleng uw abonnement",
+ "success": "Uw abonnement is verlengd",
+ "unknown_error_occurred": "Er is een onbekende fout opgetreden!"
+ },
+ "reset": {
+ "back_login": "Terug naar inloggen",
+ "confirm": "Bevestigen",
+ "email": "E-mailadres",
+ "email_me": "E-mail mij",
+ "forgot_password": "Wachtwoord vergeten",
+ "forgot_text": "We sturen u een e-mail met instructies om uw wachtwoord opnieuw in te stellen.",
+ "invalid_link": "Ongeldige link",
+ "invalid_password": "Ongeldig wachtwoord",
+ "invalid_reset_link": "De link voor het opnieuw instellen van uw wachtwoord is ongeldig of verlopen. Probeer het opnieuw.",
+ "invalid_token": "Ongeldige token. Controleer of u de juiste token hebt ingevoerd die we u hebben gemaild of vraag een nieuwe aan door het proces opnieuw te starten.",
+ "link_sent": "Wachtwoordlink verzonden",
+ "link_sent_text": "Controleer uw inbox op {{email}}",
+ "new_password": "Nieuw wachtwoord",
+ "no": "Nee, bedankt",
+ "not_sure": "Weet u zeker dat dit het juiste e-mailadres was?",
+ "old_password": "Oud wachtwoord",
+ "old_password_does_not_match": "Het oude wachtwoord komt niet overeen",
+ "password": "Wachtwoord",
+ "password_helper_text": "Gebruik minimaal 8 tekens (hoofdlettergevoelig) met ten minste één cijfer",
+ "password_reset": "Wachtwoord opnieuw instellen",
+ "password_reset_success": "Wachtwoord succesvol opnieuw ingesteld",
+ "password_strength": "Hoewel uw wachtwoord aan de criteria voor een sterk wachtwoord voldoet, bevat het elementen die niet worden aanbevolen, zoals verboden zinnen of herhaalde woorden. Pas het aan om de veiligheid van uw account te garanderen.",
+ "passwords_do_not_match": "Wachtwoorden komen niet overeen",
+ "repeat_new_password": "Herhaal nieuw wachtwoord",
+ "reset_password": "Wachtwoord wijzigen",
+ "reset_password_token": "Token",
+ "text": "Als u uw wachtwoord wilt wijzigen, klik op 'JA, Reset' om instructies te ontvangen op uw e-mailadres",
+ "try_again": "Probeer opnieuw",
+ "view_password": "Wachtwoord bekijken",
+ "wrong_email": "Onjuist e-mailadres",
+ "yes": "Ja, resetten"
+ },
+ "subscription_cancelled": {
+ "message": "U bent succesvol uitgeschreven. Uw huidige abonnement verloopt op {{date}}",
+ "return_to_profile": "Terug naar profiel",
+ "title": "We zullen u missen."
+ },
+ "subscription_renewed": {
+ "back_to_profile": "Terug naar profiel",
+ "message": "U bent succesvol opnieuw geabonneerd. Uw kosten zullen {{price}} zijn vanaf {{date}}",
+ "title": "Uw abonnement is vernieuwd"
+ },
+ "validation": {
+ "first_name": "Voornaam mag maximaal 50 tekens bevatten.",
+ "last_name": "Achternaam mag maximaal 50 tekens bevatten."
+ }
+}
diff --git a/platforms/web/public/locales/nl/common.json b/platforms/web/public/locales/nl/common.json
new file mode 100644
index 000000000..8121b7227
--- /dev/null
+++ b/platforms/web/public/locales/nl/common.json
@@ -0,0 +1,37 @@
+{
+ "abbreviation": {
+ "hours": "uur",
+ "minutes": "min"
+ },
+ "alert": {
+ "close": "Sluiten",
+ "success": "Succes",
+ "title": "Er is een fout opgetreden"
+ },
+ "back": "Terug",
+ "card_lock": "Item vergrendeld",
+ "close_modal": "Paneel sluiten",
+ "confirmation_dialog": {
+ "close": "Annuleren",
+ "confirm": "Ja"
+ },
+ "default_description": "JW OTT Webapp is een open-source, dynamisch gegenereerde videowebsite.",
+ "default_site_name": "Mijn OTT-toepassing",
+ "filter_videos_by": "Filter video's op {{name}}",
+ "filter_videos_by_genre": "Filter video's op genre",
+ "home": "Home",
+ "live": "LIVE",
+ "more_info": "Meer info",
+ "now": "Nu",
+ "play_item": "Speel {{title}} af",
+ "scheduled": "Gepland",
+ "sign_in": "Inloggen",
+ "sign_up": "Registreren",
+ "slide_indicator": "Pagina {{page}} van {{pages}}",
+ "slide_left": "Schuif naar links",
+ "slide_next": "Volgende dia",
+ "slide_previous": "Vorige dia",
+ "slide_right": "Schuif naar rechts",
+ "slide_to": "Schuif naar item {{item}} van {{items}}",
+ "videoplayer": "Videospeler"
+}
diff --git a/platforms/web/public/locales/nl/country.json b/platforms/web/public/locales/nl/country.json
new file mode 100644
index 000000000..f1ac43c7d
--- /dev/null
+++ b/platforms/web/public/locales/nl/country.json
@@ -0,0 +1,250 @@
+{
+ "af": "Afghanistan",
+ "ax": "Åland-eilanden",
+ "al": "Albanië",
+ "dz": "Algerije",
+ "as": "Amerikaans-Samoa",
+ "ad": "Andorra",
+ "ao": "Angola",
+ "ai": "Anguilla",
+ "aq": "Antarctica",
+ "ag": "Antigua en Barbuda",
+ "ar": "Argentinië",
+ "am": "Armenië",
+ "aw": "Aruba",
+ "au": "Australië",
+ "at": "Oostenrijk",
+ "az": "Azerbeidzjan",
+ "bs": "Bahama's",
+ "bh": "Bahrein",
+ "bd": "Bangladesh",
+ "bb": "Barbados",
+ "by": "Wit-Rusland",
+ "be": "België",
+ "bz": "Belize",
+ "bj": "Benin",
+ "bm": "Bermuda",
+ "bt": "Bhutan",
+ "bo": "Bolivia",
+ "bq": "Bonaire, Sint Eustatius en Saba",
+ "ba": "Bosnië en Herzegovina",
+ "bw": "Botswana",
+ "bv": "Bouvet-eiland",
+ "br": "Brazilië",
+ "io": "Brits Territorium in de Indische Oceaan",
+ "bn": "Brunei",
+ "bg": "Bulgarije",
+ "bf": "Burkina Faso",
+ "bi": "Burundi",
+ "kh": "Cambodja",
+ "cm": "Kameroen",
+ "ca": "Canada",
+ "cv": "Kaapverdië",
+ "ky": "Kaaimaneilanden",
+ "cf": "Centraal-Afrikaanse Republiek",
+ "td": "Tsjaad",
+ "cl": "Chili",
+ "cn": "China",
+ "cx": "Christmaseiland",
+ "cc": "Cocoseilanden",
+ "co": "Colombia",
+ "km": "Comoren",
+ "cg": "Congo",
+ "cd": "Congo, Democratische Republiek",
+ "ck": "Cookeilanden",
+ "cr": "Costa Rica",
+ "ci": "Ivoorkust",
+ "hr": "Kroatië",
+ "cu": "Cuba",
+ "cw": "Curaçao",
+ "cy": "Cyprus",
+ "cz": "Tsjechië",
+ "dk": "Denemarken",
+ "dj": "Djibouti",
+ "dm": "Dominica",
+ "do": "Dominicaanse Republiek",
+ "ec": "Ecuador",
+ "eg": "Egypte",
+ "sv": "El Salvador",
+ "gq": "Equatoriaal-Guinea",
+ "er": "Eritrea",
+ "ee": "Estland",
+ "et": "Ethiopië",
+ "fk": "Falklandeilanden (Malvinas)",
+ "fo": "Faeröer",
+ "fj": "Fiji",
+ "fi": "Finland",
+ "fr": "Frankrijk",
+ "gf": "Frans-Guyana",
+ "pf": "Frans-Polynesië",
+ "tf": "Franse Zuidelijke en Antarctische Gebieden",
+ "ga": "Gabon",
+ "gm": "Gambia",
+ "ge": "Georgië",
+ "de": "Duitsland",
+ "gh": "Ghana",
+ "gi": "Gibraltar",
+ "gr": "Griekenland",
+ "gl": "Groenland",
+ "gd": "Grenada",
+ "gp": "Guadeloupe",
+ "gu": "Guam",
+ "gt": "Guatemala",
+ "gg": "Guernsey",
+ "gn": "Guinee",
+ "gw": "Guinee-Bissau",
+ "gy": "Guyana",
+ "ht": "Haïti",
+ "hm": "Heard- en McDonaldeilanden",
+ "va": "Heilige Stoel (Vaticaanstad)",
+ "hn": "Honduras",
+ "hk": "Hongkong",
+ "hu": "Hongarije",
+ "is": "IJsland",
+ "in": "India",
+ "id": "Indonesië",
+ "ir": "Iran",
+ "iq": "Irak",
+ "ie": "Ierland",
+ "im": "Isle of Man",
+ "il": "Israël",
+ "it": "Italië",
+ "jm": "Jamaica",
+ "jp": "Japan",
+ "je": "Jersey",
+ "jo": "Jordanië",
+ "kz": "Kazachstan",
+ "ke": "Kenia",
+ "ki": "Kiribati",
+ "kp": "Noord-Korea",
+ "kr": "Zuid-Korea",
+ "kw": "Koeweit",
+ "kg": "Kirgizië",
+ "la": "Laos",
+ "lv": "Letland",
+ "lb": "Libanon",
+ "ls": "Lesotho",
+ "lr": "Liberia",
+ "ly": "Libië",
+ "li": "Liechtenstein",
+ "lt": "Litouwen",
+ "lu": "Luxemburg",
+ "mo": "Macao",
+ "mk": "Noord-Macedonië",
+ "mg": "Madagaskar",
+ "mw": "Malawi",
+ "my": "Maleisië",
+ "mv": "Maldiven",
+ "ml": "Mali",
+ "mt": "Malta",
+ "mh": "Marshalleilanden",
+ "mq": "Martinique",
+ "mr": "Mauritanië",
+ "mu": "Mauritius",
+ "yt": "Mayotte",
+ "mx": "Mexico",
+ "fm": "Micronesië",
+ "md": "Moldavië",
+ "mc": "Monaco",
+ "mn": "Mongolië",
+ "me": "Montenegro",
+ "ms": "Montserrat",
+ "ma": "Marokko",
+ "mz": "Mozambique",
+ "mm": "Myanmar",
+ "na": "Namibië",
+ "nr": "Nauru",
+ "np": "Nepal",
+ "nl": "Nederland",
+ "nc": "Nieuw-Caledonië",
+ "nz": "Nieuw-Zeeland",
+ "ni": "Nicaragua",
+ "ne": "Niger",
+ "ng": "Nigeria",
+ "nu": "Niue",
+ "nf": "Norfolk",
+ "mp": "Noordelijke Marianen",
+ "no": "Noorwegen",
+ "om": "Oman",
+ "pk": "Pakistan",
+ "pw": "Palau",
+ "ps": "Palestina",
+ "pa": "Panama",
+ "pg": "Papoea-Nieuw-Guinea",
+ "py": "Paraguay",
+ "pe": "Peru",
+ "ph": "Filipijnen",
+ "pn": "Pitcairn",
+ "pl": "Polen",
+ "pt": "Portugal",
+ "pr": "Puerto Rico",
+ "qa": "Qatar",
+ "re": "Réunion",
+ "ro": "Roemenië",
+ "ru": "Rusland",
+ "rw": "Rwanda",
+ "bl": "Saint-Barthélemy",
+ "sh": "Sint-Helena",
+ "kn": "Saint Kitts en Nevis",
+ "lc": "Saint Lucia",
+ "mf": "Saint Martin (Franse deel)",
+ "pm": "Saint-Pierre en Miquelon",
+ "vc": "Saint Vincent en de Grenadines",
+ "ws": "Samoa",
+ "sm": "San Marino",
+ "st": "Sao Tomé en Principe",
+ "sa": "Saoedi-Arabië",
+ "sn": "Senegal",
+ "rs": "Servië",
+ "sc": "Seychellen",
+ "sl": "Sierra Leone",
+ "sg": "Singapore",
+ "sx": "Sint Maarten (Nederlandse deel)",
+ "sk": "Slowakije",
+ "si": "Slovenië",
+ "sb": "Salomonseilanden",
+ "so": "Somalië",
+ "za": "Zuid-Afrika",
+ "gs": "Zuid-Georgia en Zuidelijke Sandwicheilanden",
+ "es": "Spanje",
+ "lk": "Sri Lanka",
+ "sd": "Soedan",
+ "sr": "Suriname",
+ "sj": "Spitsbergen en Jan Mayen",
+ "sz": "Eswatini",
+ "se": "Zweden",
+ "ch": "Zwitserland",
+ "sy": "Syrië",
+ "tw": "Taiwan",
+ "tj": "Tadzjikistan",
+ "tz": "Tanzania",
+ "th": "Thailand",
+ "tl": "Oost-Timor",
+ "tg": "Togo",
+ "tk": "Tokelau",
+ "to": "Tonga",
+ "tt": "Trinidad en Tobago",
+ "tn": "Tunesië",
+ "tr": "Turkije",
+ "tm": "Turkmenistan",
+ "tc": "Turks- en Caicoseilanden",
+ "tv": "Tuvalu",
+ "ug": "Oeganda",
+ "ua": "Oekraïne",
+ "ae": "Verenigde Arabische Emiraten",
+ "gb": "Verenigd Koninkrijk",
+ "us": "Verenigde Staten van Amerika",
+ "um": "Kleine afgelegen eilanden van de Verenigde Staten",
+ "uy": "Uruguay",
+ "uz": "Oezbekistan",
+ "vu": "Vanuatu",
+ "ve": "Venezuela",
+ "vn": "Vietnam",
+ "vg": "Britse Maagdeneilanden",
+ "vi": "Amerikaanse Maagdeneilanden",
+ "wf": "Wallis en Futuna",
+ "eh": "Westelijke Sahara",
+ "ye": "Jemen",
+ "zm": "Zambia",
+ "zw": "Zimbabwe"
+}
diff --git a/platforms/web/public/locales/nl/demo.json b/platforms/web/public/locales/nl/demo.json
new file mode 100644
index 000000000..43786ed1e
--- /dev/null
+++ b/platforms/web/public/locales/nl/demo.json
@@ -0,0 +1,16 @@
+{
+ "app_config_learn_more": "Meer informatie over App-configuraties",
+ "app_config_not_found": "Ongeldige of ontbrekende App-configuratie",
+ "cancel_config_id": "Annuleren",
+ "click_to_unselect_config": "(klik hier om deze configuratie te deselecteren)",
+ "currently_previewing_config": "U bekijkt momenteel de configuratie: '{{configSource}}'",
+ "demo_note": "Opmerking: De gekozen App-configuratie-ID wordt lokaal opgeslagen in deze browser. Gebruik de link onderaan de hoofdpagina om de instelling te wissen en terug te keren naar dit dialoogvenster.",
+ "enter_8_digits": "De App-configuratie-ID moet 8 cijfers lang zijn. Corrigeer uw invoer en probeer het opnieuw.",
+ "enter_a_value": "Voer een App-configuratie-ID in",
+ "invalid_config_id_format": "De App-configuratie-ID mag alleen uit cijfers en kleine letters bestaan. Controleer uw invoer en probeer het opnieuw.",
+ "please_enter_config_id": "Voer een App-configuratie-ID in van uw JW-account",
+ "submit_config_id": "Indienen",
+ "use_the_jwp_dashboard": "Geen configuratie? Gebruik het JWP-dashboard om een App-configuratie te maken of klik op Annuleren om een generieke demo te bekijken.",
+ "view_generic_demo": "Generieke demo bekijken?",
+ "viewing_config_demo": "Dit zal u doorsturen naar een generieke demo-app. Weet u zeker dat u wilt doorgaan?"
+}
diff --git a/platforms/web/public/locales/nl/epg.json b/platforms/web/public/locales/nl/epg.json
new file mode 100644
index 000000000..c65567f76
--- /dev/null
+++ b/platforms/web/public/locales/nl/epg.json
@@ -0,0 +1,4 @@
+{
+ "on_channel": "Op {{name}}",
+ "start_from_beginning": "Bekijk vanaf het begin"
+}
diff --git a/platforms/web/public/locales/nl/error.json b/platforms/web/public/locales/nl/error.json
new file mode 100644
index 000000000..b6e375858
--- /dev/null
+++ b/platforms/web/public/locales/nl/error.json
@@ -0,0 +1,21 @@
+{
+ "adyen_order_unknown": "Bestelling is onbekend",
+ "check_your_config": "Er was een probleem bij het ophalen van de applicatieconfiguratie. Probeer het later opnieuw. Als het probleem blijft bestaan, neem contact op met de technische ondersteuning.",
+ "check_your_settings": "Er was een probleem bij het laden van de standaardinstellingen. Probeer het later opnieuw. Als het probleem blijft bestaan, neem contact op met de technische ondersteuning.",
+ "config_invalid": "Ongeldige of ontbrekende configuratie",
+ "empty_shelves_description": "Onze excuses, maar er is geen content beschikbaar in uw regio.",
+ "empty_shelves_heading": "Geen content beschikbaar",
+ "generic_error_description": "Probeer deze pagina te vernieuwen of kom later terug.",
+ "generic_error_heading": "Er was een probleem bij het laden van de applicatie",
+ "learn_more": "Meer informatie",
+ "notfound_error_description": "Deze pagina bestaat niet.",
+ "notfound_error_heading": "Niet gevonden",
+ "playlist_not_found": "Afspeellijst niet gevonden",
+ "settings_invalid": "Ongeldige of ontbrekende instellingen",
+ "unknown_error": "Onbekende fout",
+ "validation_form_error": {
+ "other": "Corrigeer uw fouten voordat u verdergaat.",
+ "required": "Vul alle verplichte velden in voordat u verdergaat."
+ },
+ "video_not_found": "Video niet gevonden"
+}
diff --git a/platforms/web/public/locales/nl/menu.json b/platforms/web/public/locales/nl/menu.json
new file mode 100644
index 000000000..76a0e1494
--- /dev/null
+++ b/platforms/web/public/locales/nl/menu.json
@@ -0,0 +1,12 @@
+{
+ "close_menu": "Menu sluiten",
+ "language_menu": "Taalmenu openen",
+ "logo_alt": "Startpagina van {{siteName}}",
+ "open_menu": "Menu openen",
+ "open_user_menu": "Gebruikersmenu openen",
+ "search_close": "Zoekopdracht sluiten",
+ "search_open": "Zoekopdracht openen",
+ "sign_in": "Inloggen",
+ "sign_up": "Registreren",
+ "skip_to_content": "Ga naar inhoud"
+}
diff --git a/platforms/web/public/locales/nl/search.json b/platforms/web/public/locales/nl/search.json
new file mode 100644
index 000000000..4952977f4
--- /dev/null
+++ b/platforms/web/public/locales/nl/search.json
@@ -0,0 +1,19 @@
+{
+ "error_description": "Herladen deze pagina of probeer het later opnieuw.",
+ "error_heading": "Er is iets misgegaan",
+ "error_subheading": "Het lijkt erop dat er een probleem was bij het laden van deze pagina...",
+ "heading": "Zoekresultaten",
+ "no_results_heading": "Geen resultaten gevonden voor \"{{query}}\"",
+ "search_bar": {
+ "clear_search_label": "Zoekopdracht wissen",
+ "search_label": "Zoeken",
+ "search_placeholder": "Zoeken..."
+ },
+ "start_typing": "Typ iets in het zoekvak om te beginnen met zoeken",
+ "suggestions": "Suggesties:",
+ "tip_one": "Controleer of alle woorden correct zijn gespeld",
+ "tip_two": "Maak zoektermen algemener",
+ "tip_three": "Probeer andere zoektermen",
+ "title_one": "{{count}} resultaat voor \"{{query}}\"",
+ "title_other": "{{count}} resultaten voor \"{{query}}\""
+}
diff --git a/platforms/web/public/locales/nl/us_state.json b/platforms/web/public/locales/nl/us_state.json
new file mode 100644
index 000000000..e32fc4733
--- /dev/null
+++ b/platforms/web/public/locales/nl/us_state.json
@@ -0,0 +1,53 @@
+{
+ "al": "Alabama",
+ "ak": "Alaska",
+ "az": "Arizona",
+ "ar": "Arkansas",
+ "ca": "California",
+ "co": "Colorado",
+ "ct": "Connecticut",
+ "de": "Delaware",
+ "dc": "District of Columbia",
+ "fl": "Florida",
+ "ga": "Georgia",
+ "hi": "Hawaii",
+ "id": "Idaho",
+ "il": "Illinois",
+ "in": "Indiana",
+ "ia": "Iowa",
+ "ks": "Kansas",
+ "ky": "Kentucky",
+ "la": "Louisiana",
+ "me": "Maine",
+ "md": "Maryland",
+ "ma": "Massachusetts",
+ "mi": "Michigan",
+ "mn": "Minnesota",
+ "ms": "Mississippi",
+ "mo": "Missouri",
+ "mt": "Montana",
+ "ne": "Nebraska",
+ "nv": "Nevada",
+ "nh": "New Hampshire",
+ "nj": "New Jersey",
+ "nm": "New Mexico",
+ "ny": "New York",
+ "nc": "North Carolina",
+ "nd": "North Dakota",
+ "oh": "Ohio",
+ "ok": "Oklahoma",
+ "or": "Oregon",
+ "pa": "Pennsylvania",
+ "ri": "Rhode Island",
+ "sc": "South Carolina",
+ "sd": "South Dakota",
+ "tn": "Tennessee",
+ "tx": "Texas",
+ "ut": "Utah",
+ "vt": "Vermont",
+ "va": "Virginia",
+ "wa": "Washington",
+ "wv": "West Virginia",
+ "wi": "Wisconsin",
+ "wy": "Wyoming"
+}
diff --git a/platforms/web/public/locales/nl/user.json b/platforms/web/public/locales/nl/user.json
new file mode 100644
index 000000000..975162775
--- /dev/null
+++ b/platforms/web/public/locales/nl/user.json
@@ -0,0 +1,125 @@
+{
+ "account": {
+ "about_you": "Accountinformatie",
+ "add_password": "Wachtwoord toevoegen",
+ "add_password_error": "Kon de pagina 'Wachtwoord toevoegen' niet openen. Probeer het opnieuw.",
+ "add_password_modal_text": "We hebben instructies gestuurd naar {{email}} over hoe je een wachtwoord kunt toevoegen. Als je de e-mail niet binnen enkele minuten ontvangt, controleer dan je spamfolder of",
+ "cancel": "Annuleren",
+ "confirm_password": "Bevestig wachtwoord",
+ "continue": "Doorgaan",
+ "delete_account": {
+ "body": "Verwijder permanent je account en al je content.",
+ "error": "Er is een fout opgetreden bij het verwijderen van je account. Probeer het opnieuw.",
+ "invalid_credentials": "Het ingevoerde wachtwoord is niet geldig",
+ "modal": {
+ "description": "Voer je wachtwoord in om door te gaan",
+ "placeholder": "Voer je wachtwoord in",
+ "text_cant_be_undone": "Let op: dit proces kan niet ongedaan worden gemaakt, dus wees voorzichtig.",
+ "text_contacts": "Als je verdere vragen hebt, neem dan gerust contact op met ons ondersteuningsteam.",
+ "text_data_erasure": "Let op: als je doorgaat met dit proces, wordt al je persoonlijke gegevens gewist uit ons systeem. Dit omvat alle persoonlijke informatie die je tijdens het registratieproces hebt verstrekt, evenals locatie- en apparaatgegevens die we hebben verzameld tijdens het authenticatieproces. Alle andere persoonlijke gegevens opgeslagen in verschillende delen van onze database worden ook verwijderd. Houd er echter rekening mee dat we volgens sommige wetgeving verplicht zijn bepaalde persoonlijke gegevens te bewaren als onderdeel van transactie- en abonnementsgegevens.",
+ "text_revoked_access": "Zodra de gegevensverwijdering is voltooid, worden al je actieve toegangspunten ingetrokken en worden alle actieve inlogsessies, inclusief deze, beëindigd. Je accountinformatie zal niet langer toegankelijk zijn voor ons personeel.",
+ "warning": "Alle actieve abonnementen die via een webbrowser zijn aangeschaft, worden automatisch geannuleerd bij het wissen van persoonlijke gegevens. Als je echter een abonnement hebt aangeschaft via iOS, Android, Roku of Amazon-apps, wordt dit abonnement niet automatisch geannuleerd. In dit geval moet je de gebruikelijke stappen voor het annuleren van abonnementen volgen op elk platform om het abonnement handmatig te annuleren."
+ },
+ "success": "Je account is verwijderd",
+ "title": "Account verwijderen"
+ },
+ "delete_account_password_warning": {
+ "text": "Om je account te verwijderen wanneer je sociale media-account(s) gebruikt voor het inloggen, moet je eerst een accountwachtwoord toevoegen en vervolgens het verwijderingsproces opnieuw starten.",
+ "title": "Waarschuwing"
+ },
+ "edit_account": "Account bewerken",
+ "edit_information": "Informatie bewerken",
+ "edit_password": "Wachtwoord bewerken",
+ "email": "E-mail",
+ "errors": {
+ "email_exists": "E-mail bestaat al!",
+ "email_update_not_supported": "E-mailwijziging niet ondersteund",
+ "first_name_too_long": "Beperk de voornaam tot maximaal 50 tekens.",
+ "invalid_param_email": "Ongeldig e-mailadres!",
+ "invalid_password": "Wachtwoord incorrect!",
+ "last_name_too_long": "Beperk de achternaam tot maximaal 50 tekens.",
+ "please_enter_valid_email": "Voer een geldig e-mailadres in.",
+ "unknown_error": "Er is een onbekende fout opgetreden",
+ "validation_error": "Corrigeer je fouten voordat je verdergaat.",
+ "wrong_combination": "Onjuiste e-mail/wachtwoord combinatie"
+ },
+ "export_data_body": "Exporteer al je persoonlijke accountgegevens naar {{email}} als bijlage.",
+ "export_data_error": "Er is een fout opgetreden bij het exporteren van je accountgegevens.",
+ "export_data_success": "Controleer je e-mail.",
+ "export_data_title": "Exporteer accountgegevens",
+ "firstname": "Voornaam",
+ "lastname": "Achternaam",
+ "other_registration_details": "Andere registratiegegevens",
+ "password": "Wachtwoord",
+ "proceed_to_adding_a_password": "Ga door naar het toevoegen van een wachtwoord",
+ "resend_mail": "Stuur de e-mail opnieuw.",
+ "resend_mail_error": "Er is een fout opgetreden bij het opnieuw verzenden van de e-mail. Probeer het opnieuw.",
+ "save": "Opslaan",
+ "security": "Wachtwoord",
+ "terms_and_tracking": "Juridisch & Marketing",
+ "update_consents": "Werk toestemmingen bij",
+ "update_success": "Je {{section}} is succesvol bijgewerkt.",
+ "view_password": "Bekijk wachtwoord"
+ },
+ "favorites": {
+ "clear": "Favorieten wissen",
+ "clear_favorites_body": "Je staat op het punt om al je favoriete video's te wissen. Weet je zeker dat je dit wilt doen?",
+ "clear_favorites_title": "Favorieten wissen?",
+ "no_favorites": "Je hebt geen favorieten",
+ "title": "Favorieten"
+ },
+ "login": {
+ "field_required": "Dit veld is verplicht, vul een geldig {{field}} in."
+ },
+ "nav": {
+ "account": "Account",
+ "favorites": "Favorieten",
+ "logout": "Uitloggen",
+ "payments": "Betalingen",
+ "settings": "Instellingen"
+ },
+ "payment": {
+ "access_granted": "Toegang verleend",
+ "add_card_details": "Voeg kaartgegevens toe",
+ "annual_subscription": "Jaarlijks abonnement",
+ "billing_history": "Facturering geschiedenis",
+ "cancel_subscription": "Abonnement annuleren",
+ "card_number": "Kaartnummer",
+ "card_number_hidden": "Creditcardnummer eindigend op {{number}}",
+ "change_plan": "Plan wijzigen",
+ "change_plan_error": "Er was een probleem met het opslaan van de wijziging in je abonnement.",
+ "change_subscription": "Abonnement wijzigen",
+ "complete_subscription": "Abonnement voltooien",
+ "current_plan": "HUIDIG ABONNEMENT",
+ "daily_subscription": "Dagelijks abonnement",
+ "downgrade_on": "Afschrijving naar lager plan op {{date}}",
+ "downgrade_plan_success": "Je hebt het abonnement plan succesvol gewijzigd. Je nieuwe plan begint na de huidige cyclus ({{date}}).",
+ "expiry_date": "Vervaldatum",
+ "granted_subscription": "Verleend abonnement",
+ "hidden_transactions_one": "Nog één transactie",
+ "hidden_transactions_other": "{{count}} meer transacties",
+ "longer_than_usual": "De betaling duurt langer dan normaal. Probeer het later opnieuw.",
+ "monthly_subscription": "Maandelijks abonnement",
+ "next_billing_date_on": "De volgende factuurdatum is op {{date}}",
+ "no_payment_methods": "Geen betaalmethoden",
+ "no_subscription": "Je hebt geen abonnement. Voltooi je abonnement om alle films en series te kunnen bekijken.",
+ "no_transaction": "Geen transactie",
+ "no_transactions": "Geen transacties",
+ "other": "overig",
+ "payment_method": "Betalmethode",
+ "pending_downgrade": "Wacht op verlaging",
+ "pending_offer_switch": "Wordt geüpdatet naar \"{{title}}\" na de volgende factuurdatum",
+ "price_paid_with": "{{price}} betaald met {{method}}",
+ "price_paid_with_card": "Prijs betaald met kaart",
+ "renew_subscription": "Abonnement verlengen",
+ "security_code": "Beveiligingscode",
+ "security_code_hidden": "Beveiligingscode verborgen",
+ "show_all": "Toon alles",
+ "show_receipt": "Toon bon",
+ "subscription_details": "Abonnementsdetails",
+ "subscription_expires_on": "Dit plan verloopt op {{date}}",
+ "update_payment_details": "Betalingsgegevens bijwerken",
+ "upgrade_plan_success": "Je hebt het abonnement plan succesvol gewijzigd. Je kunt direct genieten van de extra voordelen.",
+ "weekly_subscription": "Wekelijks abonnement"
+ }
+}
diff --git a/platforms/web/public/locales/nl/video.json b/platforms/web/public/locales/nl/video.json
new file mode 100644
index 000000000..82a74619e
--- /dev/null
+++ b/platforms/web/public/locales/nl/video.json
@@ -0,0 +1,31 @@
+{
+ "all_seasons": "Alle seizoenen",
+ "buy": "Koop",
+ "buy_to_start_watching": "Koop om te beginnen met kijken!",
+ "complete_your_subscription": "Voltooi je abonnement",
+ "continue_watching": "Doorgaan met kijken",
+ "copied_url": "URL gekopieerd",
+ "current_episode": "Huidige aflevering",
+ "current_video": "Huidige video",
+ "episode": "aflevering",
+ "episodes": "Afleveringen",
+ "favorite": "Favoriet",
+ "favorites_warning": "Maximale aantal favoriete video's overschreden. Je kunt maximaal {{maxCount}} favoriete video's toevoegen. Verwijder er één en herhaal de bewerking.",
+ "live": "Live",
+ "player_error": {
+ "geo_blocked_description": "Onze excuses, maar deze content is momenteel niet beschikbaar in je regio.",
+ "geo_blocked_title": "Content niet beschikbaar"
+ },
+ "season": "seizoen",
+ "season_number_filter_template": "Seizoen {{seasonNumber}}",
+ "series": "Serie",
+ "series_error": "Er is een fout opgetreden bij het aanvragen van de serie",
+ "share": "Delen",
+ "share_video": "Deel deze video",
+ "sign_up_to_start_watching": "Registreer je om te beginnen met kijken!",
+ "start_watching": "Begin met kijken",
+ "total_episodes_one": "{{count}} aflevering",
+ "total_episodes_other": "{{count}} afleveringen",
+ "trailer": "Trailer",
+ "watch_trailer": "Bekijk de trailer"
+}
diff --git a/platforms/web/src/i18n/config.ts b/platforms/web/src/i18n/config.ts
index b2d0660cd..554e9c5ca 100644
--- a/platforms/web/src/i18n/config.ts
+++ b/platforms/web/src/i18n/config.ts
@@ -20,6 +20,18 @@ export const DEFINED_LANGUAGES: LanguageDefinition[] = [
code: 'es',
displayName: 'Español',
},
+ {
+ code: 'nl',
+ displayName: 'Nederlands',
+ },
+ {
+ code: 'fr',
+ displayName: 'Français',
+ },
+ {
+ code: 'de',
+ displayName: 'Deutsch',
+ },
];
const initI18n = async () => {