

'use strict';
{
  const globals = this;
  const django = globals.django || (globals.django = {});

  
  django.pluralidx = function(n) {
    const v = (n != 1);
    if (typeof v === 'boolean') {
      return v ? 1 : 0;
    } else {
      return v;
    }
  };
  

  /* gettext library */

  django.catalog = django.catalog || {};
  
  const newcatalog = {
    " of ": " of ",
    "(required)": "(required)",
    "1 active filter": "1 active filter",
    "A cancel reason must be given.": "A cancel reason must be given.",
    "Accept all": "Accept all",
    "Accomodation": "Accomodation",
    "According to the GDPR and the EDBP Guidelines, we can store cookies on your device if they are strictly necessary for the operation of this site. You can at any time change or withdraw your consent from the Cookie Declaration on our website by clicking on \"Privacy Controls\" at the bottom of the page.": "According to the GDPR and the EDBP Guidelines, we can store cookies on your device if they are strictly necessary for the operation of this site. You can at any time change or withdraw your consent from the Cookie Declaration on our website by clicking on \"Privacy Controls\" at the bottom of the page.",
    "Active filters": "Active filters",
    "Add destination": "Add destination",
    "Add to favorites": "Add to favorites",
    "Add training entry": "Add training entry",
    "Adding a description text and some tags will help you to easily find and categorize your collection later.": "Adding a description text and some tags will help you to easily find and categorize your collection later.",
    "Admin interface": "Admin interface",
    "Advanced Cycling Maps": "Advanced Cycling Maps",
    "All routes in": "All routes in",
    "An error occurred while loading the support chat. Please contact <a href=\"mailto:support@bikemap.net\">support@bikemap.net</a>.": "An error occurred while loading the support chat. Please contact <a href=\"mailto:support@bikemap.net\">support@bikemap.net</a>.",
    "An error occurred while processing your transaction. Please contact <a href=\"mailto:office@bikemap.net\">support</a>": "An error occurred while processing your transaction. Please contact <a href=\"mailto:office@bikemap.net\">support</a>",
    "An unexpected error has occurred, please try again later": "An unexpected error has occurred, please try again later",
    "An unexpected error has occurred, please try again later.": "An unexpected error has occurred, please try again later.",
    "Apps": "Apps",
    "Are you sure you want to cancel your registration?": "Are you sure you want to cancel your registration?",
    "Are you sure you want to leave the route editor? Unsaved changes to your route will be lost.": "Are you sure you want to leave the route editor? Unsaved changes to your route will be lost.",
    "Are you sure?": "Are you sure?",
    "Are you sure? By downgrading your account, you will lose your downloaded Offline maps and access to all Bikemap Premium features:": "Are you sure? By downgrading your account, you will lose your downloaded Offline maps and access to all Bikemap Premium features:",
    "Ascent": "Ascent",
    "Authorize Garmin Connect to sync your cycling routes to Bikemap.": "Authorize Garmin Connect to sync your cycling routes to Bikemap.",
    "Avatar": "Avatar",
    "Back to cycling? You can reactivate your Bikemap Premium membership now to get access to all exclusive features again.": "Back to cycling? You can reactivate your Bikemap Premium membership now to get access to all exclusive features again.",
    "Beautiful.": "Beautiful.",
    "Bike Paths": "Bike Paths",
    "Bike Service": "Bike Service",
    "Bike Type": "Bike Type",
    "Bike type": "Bike type",
    "Bike-Type Optimised Routing": "Bike-Type Optimised Routing",
    "Bikemap values its users privacy, and therefore request your permission to use Cookies to process personal data like IP-address or browser information in order to personalise the advertisement you see. Cookies are small text files that can be used by websites to make a user's experience more efficient.": "Bikemap values its users privacy, and therefore request your permission to use Cookies to process personal data like IP-address or browser information in order to personalise the advertisement you see. Cookies are small text files that can be used by websites to make a user's experience more efficient.",
    "Billing Details": "Billing Details",
    "Cancel": "Cancel",
    "Cancel Membership": "Cancel Membership",
    "Cancel Subscription": "Cancel Subscription",
    "Choose a password": "Choose a password",
    "Choose authentication method": "Choose authentication method",
    "City bike": "City bike",
    "Close": "Close",
    "Collection": "Collection",
    "Confirm": "Confirm",
    "Confirm your email address": "Confirm your email address",
    "Congratulations": "Congratulations",
    "Connect Garmin with Bikemap": "Connect Garmin with Bikemap",
    "Connect with Garmin": "Connect with Garmin",
    "Continue with Apple": "Continue with Apple",
    "Continue with Facebook": "Continue with Facebook",
    "Continue with Google": "Continue with Google",
    "Continue with your mail": "Continue with your mail",
    "Could not process this route. Please try again later.": "Could not process this route. Please try again later.",
    "Could not save this route. Please try again later.": "Could not save this route. Please try again later.",
    "Could not start processing this route. Please try again later.": "Could not start processing this route. Please try again later.",
    "Couldn't remove route from collection.": "Couldn't remove route from collection.",
    "Create new collection": "Create new collection",
    "Currently not cycling?": "Currently not cycling?",
    "Custom Bike Computer": "Custom Bike Computer",
    "Dashboard": "Dashboard",
    "Debug state": "Debug state",
    "Delete Account": "Delete Account",
    "Delete comment": "Delete comment",
    "Delete cover picture": "Delete cover picture",
    "Delete profile picture": "Delete profile picture",
    "Delete route": "Delete route",
    "Delete route collection": "Delete route collection",
    "Delete training entry": "Delete training entry",
    "Descent": "Descent",
    "Description": "Description",
    "Destination": "Destination",
    "Detailed Route Previews": "Detailed Route Previews",
    "Details must be given if you select other reason.": "Details must be given if you select other reason.",
    "Didn't meet my expectations.": "Didn't meet my expectations.",
    "Disconnect": "Disconnect",
    "Discover more routes in App": "Discover more routes in App",
    "Discover the world's largest collection of cycle routes or plan your own route worldwide.": "Discover the world's largest collection of cycle routes or plan your own route worldwide.",
    "Distance": "Distance",
    "Do you really want to delete this comment?": "Do you really want to delete this comment?",
    "Do you really want to delete this route collection?": "Do you really want to delete this route collection?",
    "Do you really want to delete this route from the collection?": "Do you really want to delete this route from the collection?",
    "Do you really want to delete this route?": "Do you really want to delete this route?",
    "Do you really want to delete your Bikemap account?": "Do you really want to delete your Bikemap account?",
    "Do you really want to delete your cover picture?": "Do you really want to delete your cover picture?",
    "Do you really want to delete your profile picture?": "Do you really want to delete your profile picture?",
    "Do you really want to remove this training entry?": "Do you really want to remove this training entry?",
    "Don't match your imported file to Bikemap. Your route will keep all original trackpoints but you won't be able to get online and offline navigation instructions for this route in the app.": "Don't match your imported file to Bikemap. Your route will keep all original trackpoints but you won't be able to get online and offline navigation instructions for this route in the app.",
    "Don't optimize your route and keep all original GPS trackpoints in place. Keep in mind that this makes the route harder to modify in the route editor afterwards!": "Don't optimize your route and keep all original GPS trackpoints in place. Keep in mind that this makes the route harder to modify in the route editor afterwards!",
    "Downgrade": "Downgrade",
    "Drag to reorder": "Drag to reorder",
    "Drinking Water": "Drinking Water",
    "Drop your files here...": "Drop your files here...",
    "Edit training entry": "Edit training entry",
    "Embed this map into your own website": "Embed this map into your own website",
    "End tutorial": "End tutorial",
    "Enter a location to see the map of that place:": "Enter a location to see the map of that place:",
    "Enter a nice title and hit 'next'.": "Enter a nice title and hit 'next'.",
    "Enter an address or click on the map": "Enter an address or click on the map",
    "Enter route description \u2026": "Enter route description \u2026",
    "Enter route title \u2026": "Enter route title \u2026",
    "Enter some description text and/or tags and hit \"next\".": "Enter some description text and/or tags and hit \"next\".",
    "Enter your information for your new Bikemap account": "Enter your information for your new Bikemap account",
    "Error": "Error",
    "Error while saving route": "Error while saving route",
    "Error: Server Error": "Error: Server Error",
    "Excellent! Your route collection has been successfully created.": "Excellent! Your route collection has been successfully created.",
    "Export Routes": "Export Routes",
    "Facebook": "Facebook",
    "Fall Detection": "Fall Detection",
    "Feet / miles": "Feet / miles",
    "File \"{fileName}\" exceeds the maximum allowed file size of {maxFileSize}MB.": "File \"{fileName}\" exceeds the maximum allowed file size of {maxFileSize}MB.",
    "Filters": "Filters",
    "Find routes": "Find routes",
    "First, let's set a meaningful title.": "First, let's set a meaningful title.",
    "For offroad routes": "For offroad routes",
    "For routes along roads and paths": "For routes along roads and paths",
    "From": "From",
    "GPS Options": "GPS Options",
    "Garmin Connect": "Garmin Connect",
    "Geolocate": "Geolocate",
    "Get lifetime and redeem your voucher code {voucher} now to access all exclusive features of Bikemap Premium forever - at the last chance and best price ever!": "Get lifetime and redeem your voucher code {voucher} now to access all exclusive features of Bikemap Premium forever - at the last chance and best price ever!",
    "Go Premium": "Go Premium",
    "Go to city or address": "Go to city or address",
    "Go to:": "Go to:",
    "Google Hybrid": "Google Hybrid",
    "Google Roadmap": "Google Roadmap",
    "Gorgeous!": "Gorgeous!",
    "Gravel": "Gravel",
    "Heatmap": "Heatmap",
    "Home": "Home",
    "I'm having too many technical issues.": "I'm having too many technical issues.",
    "I'm not using it enough.": "I'm not using it enough.",
    "If you have any questions regarding our cookies, you can contact <a href=\"mailto:privacy@bikemap.net\">privacy@bikemap.net</a> stating your consent ID and date.": "If you have any questions regarding our cookies, you can contact <a href=\"mailto:privacy@bikemap.net\">privacy@bikemap.net</a> stating your consent ID and date.",
    "Import": "Import",
    "Import Route Error": "Import Route Error",
    "Import Your Route": "Import Your Route",
    "Invalid payment details": "Invalid payment details",
    "Invite more friends:": "Invite more friends:",
    "Invite them with your personal link:": "Invite them with your personal link:",
    "It wouldn't be the same without you. Could you tell us why you want to cancel?": "It wouldn't be the same without you. Could you tell us why you want to cancel?",
    "Keep original GPS trackpoints": "Keep original GPS trackpoints",
    "Language": "Language",
    "Learn more about who we are, how you can contact us, how we process your data, and detailed information on all our cookies by visiting our <a href=\"https://www.bikemap.net/en/dataprivacy/\">Privacy Policy</a> and our <a href=\"https://www.bikemap.net/en/cookies/\">Cookie Declaration</a>.": "Learn more about who we are, how you can contact us, how we process your data, and detailed information on all our cookies by visiting our <a href=\"https://www.bikemap.net/en/dataprivacy/\">Privacy Policy</a> and our <a href=\"https://www.bikemap.net/en/cookies/\">Cookie Declaration</a>.",
    "Length": "Length",
    "Let's walk through this screen and set up a cool collection in 5 quick steps.": "Let's walk through this screen and set up a cool collection in 5 quick steps.",
    "Lifetime": "Lifetime",
    "List view": "List view",
    "Log in to view and share your personal invitation link.": "Log in to view and share your personal invitation link.",
    "Log out": "Log out",
    "Looks like you lost your internet connection. Please try again.": "Looks like you lost your internet connection. Please try again.",
    "Lovely.": "Lovely.",
    "MTB": "MTB",
    "Mail": "Mail",
    "Make sure to add a title image that represents the beauty of your routes.": "Make sure to add a title image that represents the beauty of your routes.",
    "Map style": "Map style",
    "Map view": "Map view",
    "Match your imported route to Bikemap to enable online and offline navigation instructions in the app.": "Match your imported route to Bikemap to enable online and offline navigation instructions in the app.",
    "Maximum number of images reached, please delete an image before uploading another.": "Maximum number of images reached. Please delete an image before uploading another one.",
    "Membership could not be paused": "Membership could not be paused",
    "Membership could not be reactivated": "Membership could not be reactivated",
    "Merge Account": "Merge Account",
    "Meters / km": "Meters / km",
    "My Routes": "My Routes",
    "Navigate to": "Navigate to",
    "Navigation Options": "Navigation Options",
    "Necessary": "Necessary",
    "New Route": "New Route",
    "New Route created": "New Route created",
    "Next": "Next",
    "No charge while your membership is paused.": "No charge while your membership is paused.",
    "No connection": "No connection",
    "No route could be found": "No route could be found",
    "No routes added to this collection yet.": "No routes added to this collection yet.",
    "No routes found \ud83d\ude14": "No routes found \ud83d\ude14",
    "No, please cancel": "No, please cancel",
    "Now choose a visibility setting for your collection.": "Now choose a visibility setting for your collection.",
    "OK, let's go": "OK, let's go",
    "Offline Maps & Routes": "Offline Maps & Routes",
    "Oh no. An Error occurred while uploading %s, the server responded with: %s": "Oh no. An Error occurred while uploading %s, the server responded with: %s",
    "Oh no. An Error occurred while uploading %s. %s": "Oh no. An Error occurred while uploading %s. %s",
    "Old password": "Old password",
    "Only JPG and PNG files are supported.": "Only JPG and PNG files are supported.",
    "Only imported first segment": "Only imported first segment",
    "OpenCycleMap": "OpenCycleMap",
    "Other": "Other",
    "POIBOY": "POIBOY",
    "Password": "Password",
    "Pause once for up to 2 months.": "Pause once for up to 2 months.",
    "Paved": "Paved",
    "Pay once and get access to all exclusive Bikemap Premium features for a lifetime. Enjoy all advantages without expiry date for {price}.": "Pay once and get access to all exclusive Bikemap Premium features for a lifetime. Enjoy all advantages without expiry date for {price}.",
    "Payment Processor Error": "Payment Processor Error",
    "Payment error": "Payment error",
    "Payment failed": "Payment failed",
    "Photo": "Photo",
    "Photos": "Photos",
    "Plan from A to B": "Plan from A to B",
    "Please check this box to delete your account.": "Please check this box to delete your account.",
    "Please correct the errors in the form!": "Please correct the errors in the form!",
    "Please make sure to fill in complete and correct credit card details.": "Please make sure to fill in complete and correct credit card details.",
    "Please provide a title for your route collection!": "Please provide a title for your route collection!",
    "Please provide further details.": "Please provide further details.",
    "Please repeat your new password": "Please repeat your new password",
    "Please specify a title for the route.": "Please specify a title for the route.",
    "Please use another payment method or try again.": "Please use another payment method or try again.",
    "Please wait until this process has completed.": "Please wait until this process has completed.",
    "Point of Interest": "Point of Interest",
    "Popularity": "Popularity",
    "Premium Badge": "Premium Badge",
    "Premium Days": "Premium Days",
    "Premium Support": "Premium Support",
    "Privacy Controls": "Privacy Controls",
    "Private collections can only be seen by you while public collections can be seen by all Bikemap users.": "Private collections can only be seen by you while public collections can be seen by all Bikemap users.",
    "Pro tip": "Pro tip",
    "Promotion": "Promotion",
    "Reactivate Bikemap Premium anytime.": "Reactivate Bikemap Premium anytime.",
    "Reactivate Membership": "Reactivate Membership",
    "Regions": "Regions",
    "Relevance": "Relevance",
    "Relief Map": "Relief Map",
    "Remove from favorites": "Remove from favorites",
    "Remove inaccurate GPS spikes while preserving your original route, time stamps and other important information.": "Remove inaccurate GPS spikes while preserving your original route, time stamps and other important information.",
    "Remove route": "Remove route",
    "Remove this filter": "Remove this filter",
    "Reset Search": "Reset Search",
    "Reset bearing to north": "Reset bearing to north",
    "Road bike": "Road bike",
    "Round-trip route": "Round-trip route",
    "Route Collection Created": "Route Collection Created",
    "Route Collections": "Route Collections",
    "Route Title": "Route Title",
    "Route collection image": "Route collection image",
    "Route details": "Route details",
    "Route from here": "Route from here",
    "Route title": "Route title",
    "Route to here": "Route to here",
    "Route type": "Route type",
    "Routes": "Routes",
    "Routes with multiple disconnected segments are not supported. Only the first part of your route could be imported to Bikemap.": "Routes with multiple disconnected segments are not supported. Only the first part of your route could be imported to Bikemap.",
    "Save": "Save",
    "Save & Edit": "Save & Edit",
    "Save Route": "Save Route",
    "Save Route Error": "Save Route Error",
    "Save Your Route": "Save Your Route",
    "Save selection": "Save Selection",
    "Save {percentage}%": "Save {percentage}%",
    "Seamlessly sync your Garmin activities with your Bikemap profile.": "Seamlessly sync your Garmin activities with your Bikemap profile.",
    "Search": "Search",
    "Search all {object}.": "Search all {object}.",
    "Search as I move the map": "Search as I move the map",
    "Search for routes in...": "Search for routes in...",
    "Search for some routes and use the <em>Add to</em> button to add them to your collection.": "Search for some routes and use the <em>Add to</em> button to add them to your collection.",
    "See Details": "See Details",
    "Selected file \"{fileName}\" is not .jpg, .jpeg or .png file.": "Selected file \"{fileName}\" is not .jpg, .jpeg or .png file.",
    "Selected file is not valid. Please make sure you are using .gpx or .kml file.": "Selected file is not valid. Please make sure you are using .gpx or .kml file.",
    "Send this route to your friends": "Send this route to your cycling buddies",
    "Send us a message": "Send us a message",
    "Settings": "Settings",
    "Show debug info": "Show debug info",
    "Show more": "Show more",
    "Show official routes": "Show official routes",
    "Sign Up or Log in": "Sign up or Log in",
    "Sign up for free and add routes to your favorites": "Sign up for free and add routes to your favorites",
    "Sign up for free to add routes to collections": "Sign up for free to add routes to collections",
    "Sign up for free to add routes to your training log": "Sign up for free to add routes to your training log",
    "Sign up for free to comment.": "Sign up for free to comment.",
    "Sign up for free to download planned routes.": "Sign up for free to download planned routes.",
    "Sign up for free to mark routes as ridden": "Sign up for free to mark routes as ridden",
    "Sign up for free to save this route": "Sign up for free to save this route",
    "Sign up for free to share this route": "Sign up for free to share this route",
    "Sign up here": "Sign up here",
    "Sign up or Log in": "Sign up or Log in",
    "Skip": "Skip",
    "Smoothen GPS Inaccuracies": "Smoothen GPS Inaccuracies",
    "Sorry, sending mails is currently not possible please try again later": "Sorry, sending mails is currently not possible please try again later",
    "Sort by": "Sort by",
    "Start": "Start",
    "Start free trial": "Start free trial",
    "Start with blank route": "Start with blank route",
    "Starting point": "Starting point",
    "Statistics": "Statistics",
    "Stay Premium": "Stay Premium",
    "Stay in the Premium Loop:": "Stay in the Premium Loop:",
    "Subscribe": "Subscribe",
    "Surface": "Surface",
    "The last thing to do is to add some routes.": "The last thing to do is to add some routes.",
    "The lifetime membership on our website will soon be discontinued. All members who sign up by then will keep this status forever and automatically get access to all newly added features in the future.": "The lifetime membership on our website will soon be discontinued. All members who sign up by then will keep this status forever and automatically get access to all newly added features in the future.",
    "The title must be between {min} and {max} characters long.": "The title must be between {min} and {max} characters long.",
    "There aren't any routes matching your search criteria. Try adjusting your filters or search for another route title.": "There aren't any routes matching your search criteria. Try adjusting your filters or search for another route title.",
    "There was an unexpected error. We are sorry! Please try again!": "There was an unexpected error. We are sorry! Please try again!",
    "There will be no refund for the remaining days if you delete your account now.": "There will be no refund for the remaining days if you delete your account now.",
    "This area sums up various statistics of all routes within a collection.": "This area sums up various statistics of all routes within a collection.",
    "This cannot be undone!": "This cannot be undone!",
    "This file exceeds the maximum allowed filesize ({{maxFilesize}} MiB): {{filesize}} MiB": "This file exceeds the maximum allowed filesize ({{maxFilesize}} MiB): {{filesize}} MiB",
    "This is a private route": "This is a private route",
    "This is a route collection. Route collections are a great way to organize routes.": "This is a route collection. Route collections are a great way to organize routes.",
    "This site uses different types of cookies. Some cookies are placed by third party services that appear on our pages. These technologies may access your device and help us to show you more relevant ads and improve your internet experience. We also use it in order to measure results or align our website content.": "This site uses different types of cookies. Some cookies are placed by third party services that appear on our pages. These technologies may access your device and help us to show you more relevant ads and improve your internet experience. We also use it in order to measure results or align our website content.",
    "To": "To",
    "Toggle fullscreen": "Toggle fullscreen",
    "Toggle main navigation": "Toggle main navigation",
    "Too complicated.": "Too complicated.",
    "Too expensive.": "Too expensive.",
    "Turn-by-turn Navigation": "Turn-by-turn Navigation",
    "Twitter": "Twitter",
    "Unit": "Unit",
    "Unlock all Premium features forever": "Unlock all Premium features forever",
    "Unlock all exclusive features with Bikemap Premium": "Unlock all exclusive features with Bikemap Premium",
    "Unpaved": "Unpaved",
    "Upgrade Membership": "Upgrade Membership",
    "Upload Error": "Upload Error",
    "Upload Failed": "Upload Failed",
    "Upload File": "Upload File",
    "Upload GPX/KML file": "Upload GPX/KML file",
    "Upload failed": "Upload failed",
    "Upload photos of your bike tour via drag and drop.": "Upload photos of your bike tour via drag and drop.",
    "Use current route as template": "Use current route as template",
    "User Avatar": "User Avatar",
    "Waiting for SOFORT Payment": "Waiting for SOFORT Payment",
    "Warning": "Warning",
    "Watch the ascent value and make sure not to overestimate yourself when adding routes to your \"Trans-Alps Crossing\" collection... ;-)": "Watch the ascent value and make sure not to overestimate yourself when adding routes to your \"Trans-Alps Crossing\" collection... ;-)",
    "We just sent you another verification email. Please check your inbox and click the link to verify your email address!": "We just sent you another verification email. Please check your inbox and click the link to verify your email address!",
    "Welcome back!": "Welcome back!",
    "Welcome to Bikemap": "Welcome to Bikemap",
    "Whole route": "Whole route",
    "Yes, pause membership": "Yes, pause membership",
    "Yes, upgrade now": "Yes, upgrade now",
    "You can <b>drag and drop</b> your <b>.gpx and .kml</b> files here or browse to upload.": "You can <b>drag and drop</b> your <b>.gpx and .kml</b> files here or browse to upload.",
    "You can pause your membership and simply reactivate Bikemap Premium at a later point in time.": "You can pause your membership and simply reactivate Bikemap Premium at a later point in time.",
    "You have an <strong>active Bikemap Premium membership</strong>.": "You have an <strong>active Bikemap Premium membership</strong>.",
    "You have been disconnected from Garmin Connect.": "You have been disconnected from Garmin Connect.",
    "You need a free Bikemap account first.": "You need a free Bikemap account first.",
    "You're all set!": "You're all set!",
    "Your Garmin activities will no longer sync with your Bikemap profile. This will not affect any previously synced Garmin activities.": "Your Garmin activities will no longer sync with your Bikemap profile. This will not affect any previously synced Garmin activities.",
    "Your new password": "Your new password",
    "Your payment was not successful. Please try again.": "Your payment was not successful. Please try again.",
    "Zoom in": "Zoom in",
    "Zoom out": "Zoom out",
    "at least 1 lowercase character": "at least 1 lowercase character",
    "at least 1 numeric character": "at least 1 numeric character",
    "at least 1 uppercase character": "at least 1 uppercase character",
    "at least 8 characters": "at least 8 characters",
    "can't be similar to your name or email address": "can't be similar to your name or email address",
    "create new": "create new",
    "days left": "days left",
    "downhill routes": "downhill routes",
    "flat routes": "flat routes",
    "for an entire year": "for an entire year",
    "ft": "ft",
    "hilly routes": "hilly routes",
    "m": "m",
    "of 30 days": "of 30 days",
    "or": "or",
    "private": "private",
    "public": "public",
    "routes": "routes",
    "routes with {minAsc} - {maxAsc} % ascent and {minDesc} - {maxDesc} % descent": "routes with {minAsc} - {maxAsc} % ascent and {minDesc} - {maxDesc} % descent",
    "routes with {min} - {max} % ascent": "routes with {min} - {max} % ascent",
    "routes with {min} - {max} % descent": "routes with {min} - {max} % descent",
    "save": "save",
    "two entered passwords match": "two entered passwords match",
    "uphill routes": "uphill routes",
    "{count} routes": "{count} routes",
    "{first} - {last} of {count} routes": "{first} - {last} of {count} routes",
    "{num} active filters": "{num} active filters"
  };
  for (const key in newcatalog) {
    django.catalog[key] = newcatalog[key];
  }
  

  if (!django.jsi18n_initialized) {
    django.gettext = function(msgid) {
      const value = django.catalog[msgid];
      if (typeof value === 'undefined') {
        return msgid;
      } else {
        return (typeof value === 'string') ? value : value[0];
      }
    };

    django.ngettext = function(singular, plural, count) {
      const value = django.catalog[singular];
      if (typeof value === 'undefined') {
        return (count == 1) ? singular : plural;
      } else {
        return value.constructor === Array ? value[django.pluralidx(count)] : value;
      }
    };

    django.gettext_noop = function(msgid) { return msgid; };

    django.pgettext = function(context, msgid) {
      let value = django.gettext(context + '\x04' + msgid);
      if (value.includes('\x04')) {
        value = msgid;
      }
      return value;
    };

    django.npgettext = function(context, singular, plural, count) {
      let value = django.ngettext(context + '\x04' + singular, context + '\x04' + plural, count);
      if (value.includes('\x04')) {
        value = django.ngettext(singular, plural, count);
      }
      return value;
    };

    django.interpolate = function(fmt, obj, named) {
      if (named) {
        return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])});
      } else {
        return fmt.replace(/%s/g, function(match){return String(obj.shift())});
      }
    };


    /* formatting library */

    django.formats = {
    "DATETIME_FORMAT": "N j, Y, P",
    "DATETIME_INPUT_FORMATS": [
      "%Y-%m-%d %H:%M:%S",
      "%Y-%m-%d %H:%M:%S.%f",
      "%Y-%m-%d %H:%M",
      "%m/%d/%Y %H:%M:%S",
      "%m/%d/%Y %H:%M:%S.%f",
      "%m/%d/%Y %H:%M",
      "%m/%d/%y %H:%M:%S",
      "%m/%d/%y %H:%M:%S.%f",
      "%m/%d/%y %H:%M",
      "%Y-%m-%d"
    ],
    "DATE_FORMAT": "N j, Y",
    "DATE_INPUT_FORMATS": [
      "%Y-%m-%d",
      "%m/%d/%Y",
      "%m/%d/%y"
    ],
    "DECIMAL_SEPARATOR": ".",
    "FIRST_DAY_OF_WEEK": 0,
    "MONTH_DAY_FORMAT": "F j",
    "NUMBER_GROUPING": 3,
    "SHORT_DATETIME_FORMAT": "m/d/Y P",
    "SHORT_DATE_FORMAT": "m/d/Y",
    "THOUSAND_SEPARATOR": ",",
    "TIME_FORMAT": "P",
    "TIME_INPUT_FORMATS": [
      "%H:%M:%S",
      "%H:%M:%S.%f",
      "%H:%M"
    ],
    "YEAR_MONTH_FORMAT": "F Y"
  };

    django.get_format = function(format_type) {
      const value = django.formats[format_type];
      if (typeof value === 'undefined') {
        return format_type;
      } else {
        return value;
      }
    };

    /* add to global namespace */
    globals.pluralidx = django.pluralidx;
    globals.gettext = django.gettext;
    globals.ngettext = django.ngettext;
    globals.gettext_noop = django.gettext_noop;
    globals.pgettext = django.pgettext;
    globals.npgettext = django.npgettext;
    globals.interpolate = django.interpolate;
    globals.get_format = django.get_format;

    django.jsi18n_initialized = true;
  }
};

