diff --git a/README.md b/README.md index 8b1a9ca2..81744a5b 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,8 @@ for information about how to create/update translations. :it: Italian +:norway: Norwegian Bokmål + :poland: Polish :portugal: :brazil: Portuguese diff --git a/babybuddy/settings/base.py b/babybuddy/settings/base.py index 57a7da9a..cf41db0c 100644 --- a/babybuddy/settings/base.py +++ b/babybuddy/settings/base.py @@ -184,6 +184,7 @@ LANGUAGES = [ ("de", _("German")), ("hu", _("Hungarian")), ("it", _("Italian")), + ("nb", _("Norwegian Bokmål")), ("pl", _("Polish")), ("pt", _("Portuguese")), ("ru", _("Russian")), diff --git a/gulpfile.config.js b/gulpfile.config.js index 4a1f97ef..f5140eb1 100644 --- a/gulpfile.config.js +++ b/gulpfile.config.js @@ -42,6 +42,7 @@ module.exports = { 'node_modules/moment/locale/fr.js', 'node_modules/moment/locale/it.js', 'node_modules/moment/locale/hu.js', + 'node_modules/moment/locale/nb.js', 'node_modules/moment/locale/nl.js', 'node_modules/moment/locale/pl.js', 'node_modules/moment/locale/pt.js', @@ -63,6 +64,7 @@ module.exports = { 'node_modules/plotly.js/dist/plotly-locale-fr.js', 'node_modules/plotly.js/dist/plotly-locale-hu.js', 'node_modules/plotly.js/dist/plotly-locale-it.js', + 'node_modules/plotly.js/dist/plotly-locale-no.js', 'node_modules/plotly.js/dist/plotly-locale-nl.js', 'node_modules/plotly.js/dist/plotly-locale-pl.js', 'node_modules/plotly.js/dist/plotly-locale-pt-br.js', diff --git a/locale/ca/LC_MESSAGES/django.po b/locale/ca/LC_MESSAGES/django.po index dd01ee96..927ea5ad 100644 --- a/locale/ca/LC_MESSAGES/django.po +++ b/locale/ca/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -182,26 +182,30 @@ msgid "Italian" msgstr "Italià" #: babybuddy/settings/base.py:187 +msgid "Norwegian Bokmål" +msgstr "" + +#: babybuddy/settings/base.py:188 msgid "Polish" msgstr "Polac" -#: babybuddy/settings/base.py:188 +#: babybuddy/settings/base.py:189 msgid "Portuguese" msgstr "Portuguès" -#: babybuddy/settings/base.py:189 +#: babybuddy/settings/base.py:190 msgid "Russian" msgstr "" -#: babybuddy/settings/base.py:190 +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "Espanyol" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "Suec" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "Turc" diff --git a/locale/cs/LC_MESSAGES/django.po b/locale/cs/LC_MESSAGES/django.po index 9aae2efb..ceded373 100644 --- a/locale/cs/LC_MESSAGES/django.po +++ b/locale/cs/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -180,26 +180,30 @@ msgid "Italian" msgstr "" #: babybuddy/settings/base.py:187 -msgid "Polish" +msgid "Norwegian Bokmål" msgstr "" #: babybuddy/settings/base.py:188 -msgid "Portuguese" +msgid "Polish" msgstr "" #: babybuddy/settings/base.py:189 -msgid "Russian" +msgid "Portuguese" msgstr "" #: babybuddy/settings/base.py:190 +msgid "Russian" +msgstr "" + +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "španělština" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "švédština" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "turečtina" diff --git a/locale/da/LC_MESSAGES/django.po b/locale/da/LC_MESSAGES/django.po index 6ae97ddd..71b61a62 100644 --- a/locale/da/LC_MESSAGES/django.po +++ b/locale/da/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -182,26 +182,30 @@ msgid "Italian" msgstr "Italiensk" #: babybuddy/settings/base.py:187 +msgid "Norwegian Bokmål" +msgstr "" + +#: babybuddy/settings/base.py:188 msgid "Polish" msgstr "Polsk" -#: babybuddy/settings/base.py:188 +#: babybuddy/settings/base.py:189 msgid "Portuguese" msgstr "Portugisisk" -#: babybuddy/settings/base.py:189 +#: babybuddy/settings/base.py:190 msgid "Russian" msgstr "" -#: babybuddy/settings/base.py:190 +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "Spansk" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "Svensk" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "Tyrkisk" diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 3662cbce..22a9040d 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 2fbf426f..1a9c3e5d 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -181,26 +181,30 @@ msgid "Italian" msgstr "Italienisch" #: babybuddy/settings/base.py:187 +msgid "Norwegian Bokmål" +msgstr "" + +#: babybuddy/settings/base.py:188 msgid "Polish" msgstr "Polnisch" -#: babybuddy/settings/base.py:188 +#: babybuddy/settings/base.py:189 msgid "Portuguese" msgstr "Portugiesisch" -#: babybuddy/settings/base.py:189 +#: babybuddy/settings/base.py:190 msgid "Russian" msgstr "Russisch" -#: babybuddy/settings/base.py:190 +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "Spanisch" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "Schwedisch" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "Türkisch" @@ -554,7 +558,7 @@ msgstr "Weiter" #: babybuddy/templates/babybuddy/user_add_device.html:15 msgid "Authentication Methods" -msgstr "" +msgstr "Authentifizierungsmethoden" #: babybuddy/templates/babybuddy/user_add_device.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:81 @@ -1900,10 +1904,8 @@ msgstr[0] "vor %(n)s Mahlzeit%(plural)sen" msgstr[1] "vor %(n)s Mahlzeit%(plural)sen" #: dashboard/templates/cards/pumping_last.html:6 -#, fuzzy -#| msgid "Pumping" msgid "Last Pumping" -msgstr "Abpumpen" +msgstr "Letztes Abpumpen" #: dashboard/templates/cards/sleep_last.html:6 msgid "Last Sleep" diff --git a/locale/en_GB/LC_MESSAGES/django.po b/locale/en_GB/LC_MESSAGES/django.po index b013b7ff..8efd8f5e 100644 --- a/locale/en_GB/LC_MESSAGES/django.po +++ b/locale/en_GB/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: en-GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -177,26 +177,30 @@ msgid "Italian" msgstr "" #: babybuddy/settings/base.py:187 -msgid "Polish" +msgid "Norwegian Bokmål" msgstr "" #: babybuddy/settings/base.py:188 -msgid "Portuguese" +msgid "Polish" msgstr "" #: babybuddy/settings/base.py:189 -msgid "Russian" +msgid "Portuguese" msgstr "" #: babybuddy/settings/base.py:190 -msgid "Spanish" +msgid "Russian" msgstr "" #: babybuddy/settings/base.py:191 -msgid "Swedish" +msgid "Spanish" msgstr "" #: babybuddy/settings/base.py:192 +msgid "Swedish" +msgstr "" + +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 95db45bc..2ee7e934 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -182,26 +182,30 @@ msgid "Italian" msgstr "Italiano" #: babybuddy/settings/base.py:187 +msgid "Norwegian Bokmål" +msgstr "" + +#: babybuddy/settings/base.py:188 msgid "Polish" msgstr "Polaco" -#: babybuddy/settings/base.py:188 +#: babybuddy/settings/base.py:189 msgid "Portuguese" msgstr "Portugués" -#: babybuddy/settings/base.py:189 +#: babybuddy/settings/base.py:190 msgid "Russian" msgstr "" -#: babybuddy/settings/base.py:190 +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "Español" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "Sueco" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "Turco" diff --git a/locale/fi/LC_MESSAGES/django.mo b/locale/fi/LC_MESSAGES/django.mo index 99173f45..f24026e5 100644 Binary files a/locale/fi/LC_MESSAGES/django.mo and b/locale/fi/LC_MESSAGES/django.mo differ diff --git a/locale/fi/LC_MESSAGES/django.po b/locale/fi/LC_MESSAGES/django.po index fcb4ffb1..5bfa3f9c 100644 --- a/locale/fi/LC_MESSAGES/django.po +++ b/locale/fi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +28,7 @@ msgstr "Työpöytä" #: babybuddy/forms.py:15 babybuddy/templates/babybuddy/user_list.html:21 msgid "Read only" -msgstr "" +msgstr "Vain luku" #: babybuddy/forms.py:16 msgid "Restricts user to viewing data only." @@ -82,11 +82,11 @@ msgstr "30 min." #: babybuddy/models.py:40 msgid "Hide Empty Dashboard Cards" -msgstr "" +msgstr "Piilota tyhjät työpöydän kortit" #: babybuddy/models.py:43 msgid "Hide data older than" -msgstr "" +msgstr "Piilota vanhempi data kuin" #: babybuddy/models.py:45 msgid "This setting controls which data will be shown in the dashboard." @@ -94,27 +94,27 @@ msgstr "" #: babybuddy/models.py:51 msgid "show all data" -msgstr "" +msgstr "näytä kaikki data" #: babybuddy/models.py:52 msgid "1 day" -msgstr "" +msgstr "1 päivä" #: babybuddy/models.py:53 msgid "2 days" -msgstr "" +msgstr "2 päivää" #: babybuddy/models.py:54 msgid "3 days" -msgstr "" +msgstr "3 päivää" #: babybuddy/models.py:55 msgid "1 week" -msgstr "" +msgstr "1 viikko" #: babybuddy/models.py:56 msgid "4 weeks" -msgstr "" +msgstr "4 viikkoa" #: babybuddy/models.py:63 msgid "Language" @@ -142,14 +142,12 @@ msgid "Chinese (simplified)" msgstr "" #: babybuddy/settings/base.py:178 -#, fuzzy -#| msgid "Spanish" msgid "Danish" -msgstr "espanja" +msgstr "" #: babybuddy/settings/base.py:179 msgid "Dutch" -msgstr "" +msgstr "hollanti" #: babybuddy/settings/base.py:180 msgid "English (US)" @@ -165,7 +163,7 @@ msgstr "ranska" #: babybuddy/settings/base.py:183 msgid "Finnish" -msgstr "" +msgstr "suomi" #: babybuddy/settings/base.py:184 msgid "German" @@ -177,29 +175,33 @@ msgstr "" #: babybuddy/settings/base.py:186 msgid "Italian" -msgstr "" +msgstr "italia" #: babybuddy/settings/base.py:187 -msgid "Polish" -msgstr "englanti" +msgid "Norwegian Bokmål" +msgstr "" #: babybuddy/settings/base.py:188 +msgid "Polish" +msgstr "puola" + +#: babybuddy/settings/base.py:189 msgid "Portuguese" msgstr "" -#: babybuddy/settings/base.py:189 +#: babybuddy/settings/base.py:190 msgid "Russian" msgstr "" -#: babybuddy/settings/base.py:190 +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "espanja" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "ruotsi" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "turkki" @@ -281,14 +283,14 @@ msgstr "Uni" #: core/templates/core/tummytime_list.html:7 #: core/templates/core/tummytime_list.html:12 msgid "Tummy Time" -msgstr "Ihokontakti" +msgstr "Maha-aika" #: babybuddy/templates/babybuddy/nav-dropdown.html:96 #: core/templates/timeline/timeline.html:4 #: core/templates/timeline/timeline.html:7 #: dashboard/templates/dashboard/child_button_group.html:9 msgid "Timeline" -msgstr "" +msgstr "Aikajana" #: babybuddy/templates/babybuddy/nav-dropdown.html:107 #: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 @@ -331,7 +333,7 @@ msgstr "Muistiinpanot" #: babybuddy/templates/babybuddy/nav-dropdown.html:149 msgid "Measurements" -msgstr "" +msgstr "Mitat" #: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 #: core/models.py:151 core/models.py:152 core/models.py:155 @@ -362,11 +364,11 @@ msgstr "" #: reports/templates/reports/head_circumference_change.html:9 #: reports/templates/reports/report_list.html:25 msgid "Head Circumference" -msgstr "" +msgstr "Päänympärys" #: babybuddy/templates/babybuddy/nav-dropdown.html:177 msgid "Head Circumference entry" -msgstr "" +msgstr "Päänympätysmerkintä" #: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 #: core/models.py:381 core/models.py:382 core/models.py:385 @@ -381,11 +383,11 @@ msgstr "" #: reports/templates/reports/height_change.html:9 #: reports/templates/reports/report_list.html:26 msgid "Height" -msgstr "" +msgstr "Pituus" #: babybuddy/templates/babybuddy/nav-dropdown.html:191 msgid "Height entry" -msgstr "" +msgstr "Pituusmerkintä" #: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:507 #: core/models.py:520 core/models.py:521 core/models.py:524 @@ -433,11 +435,11 @@ msgstr "Aktiviteetit" #: babybuddy/templates/babybuddy/nav-dropdown.html:240 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" -msgstr "Muutokset" +msgstr "Vaihdot" #: babybuddy/templates/babybuddy/nav-dropdown.html:246 msgid "Change" -msgstr "Muutos" +msgstr "Vaihto" #: babybuddy/templates/babybuddy/nav-dropdown.html:253 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 @@ -459,11 +461,11 @@ msgstr "Syötöt" #: reports/templates/reports/pumping_amounts.html:4 #: reports/templates/reports/pumping_amounts.html:9 msgid "Pumping" -msgstr "" +msgstr "Pumppaus" #: babybuddy/templates/babybuddy/nav-dropdown.html:273 msgid "Pumping entry" -msgstr "" +msgstr "Pumppausmerkintä" #: babybuddy/templates/babybuddy/nav-dropdown.html:286 msgid "Sleep entry" @@ -471,7 +473,7 @@ msgstr "Unimerkintä" #: babybuddy/templates/babybuddy/nav-dropdown.html:299 msgid "Tummy Time entry" -msgstr "Ihokontakti" +msgstr "Maha-aikamerkintä" #: babybuddy/templates/babybuddy/nav-dropdown.html:323 #: babybuddy/templates/babybuddy/user_add_device.html:7 @@ -490,10 +492,8 @@ msgstr "Salasana" #: babybuddy/templates/babybuddy/user_add_device.html:4 #: babybuddy/templates/babybuddy/user_add_device.html:8 #: babybuddy/templates/babybuddy/user_add_device.html:12 -#, fuzzy -#| msgid "Add a Feeding" msgid "Add a device" -msgstr "Lisää syöttö" +msgstr "Lisää laite" #: babybuddy/templates/babybuddy/nav-dropdown.html:330 msgid "Logout" @@ -650,25 +650,22 @@ msgstr "Peruuta" #: babybuddy/templates/babybuddy/user_confirm_unlock.html:4 msgid "Unlock User" -msgstr "" +msgstr "Avaa käyttäjä" #: babybuddy/templates/babybuddy/user_confirm_unlock.html:9 #: babybuddy/templates/babybuddy/user_confirm_unlock.html:18 #: babybuddy/templates/babybuddy/user_form.html:31 msgid "Unlock" -msgstr "" +msgstr "Avaa" #: babybuddy/templates/babybuddy/user_confirm_unlock.html:15 -#, fuzzy, python-format -#| msgid "" -#| "
CSRF_TRUSTED_ORIGINS
"
+"environment variable. If multiple origins are required separate with commas."
+msgstr ""
+"Legg til %(origin)s til CSRF_TRUSTED_ORIGINS
"
+"miljøvariabel. Om flere er påkrevd, separer verdien med komma"
+
+#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7
+msgid "Page Not Found"
+msgstr "Siden ble ikke funnet"
+
+#: babybuddy/templates/error/404.html:9
+#, python-format
+msgid "The path %(request_path)s
does not exist."
+msgstr "Stien %(request_path)s
eksisterer ikke."
+
+#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7
+msgid "Server Error"
+msgstr "Serverfeil"
+
+#: babybuddy/templates/error/base.html:14
+msgid "Return to Baby Buddy"
+msgstr "Gå tilbake til Baby Buddy"
+
+#: babybuddy/templates/error/lockout.html:4
+msgid "Too Many Login Attempts"
+msgstr "For mange innloggingsforsøk"
+
+#: babybuddy/templates/registration/login.html:32
+msgid "Login"
+msgstr "Logg inn"
+
+#: babybuddy/templates/registration/login.html:38
+msgid "Forgot your password?"
+msgstr "Glemt passord?"
+
+#: babybuddy/templates/registration/password_reset_complete.html:4
+msgid "Password Reset Successfully!"
+msgstr "Passordet er resatt! "
+
+#: babybuddy/templates/registration/password_reset_complete.html:8
+msgid "Your password has been set. You may go ahead and log in now."
+msgstr "Passordet er blitt satt. Du kan nå logge inn."
+
+#: babybuddy/templates/registration/password_reset_complete.html:9
+msgid "Log in"
+msgstr "Logg inn"
+
+#: babybuddy/templates/registration/password_reset_confirm.html:4
+msgid "Password Reset"
+msgstr "Reset passord"
+
+#: babybuddy/templates/registration/password_reset_confirm.html:13
+msgid ""
+"Oh snap! The two passwords did not match. Please try again."
+msgstr ""
+"Woops! Passordene samsvarer ikke. Vennligst prøv igjen."
+
+#: babybuddy/templates/registration/password_reset_confirm.html:22
+msgid "Enter your new password in each field below."
+msgstr "Tast inn ditt nye passord i feltet under."
+
+#: babybuddy/templates/registration/password_reset_confirm.html:46
+#: babybuddy/templates/registration/password_reset_form.html:31
+msgid "Reset Password"
+msgstr "Resett passord"
+
+#: babybuddy/templates/registration/password_reset_done.html:4
+msgid "Reset Email Sent"
+msgstr "Passord resett e-post er sendt."
+
+#: babybuddy/templates/registration/password_reset_done.html:9
+msgid ""
+"We've emailed you instructions for setting your password, if an account "
+"exists with the email you entered. You should receive them shortly."
+msgstr ""
+"Vi har sendt deg en e-post med instruksjoner for å sette passordet ditt, "
+"dersom du har en bruker. Du skal motta denne innen kort tid."
+
+#: babybuddy/templates/registration/password_reset_done.html:15
+msgid ""
+"If you don't receive an email, please make sure you've entered the address "
+"you registered with, and check your spam folder."
+msgstr ""
+"Om du ikke mottar e-post fra oss, dobbeltsjekk at du har tastet inn riktig "
+"brukerdata og ev. søppelboksen din."
+
+#: babybuddy/templates/registration/password_reset_email.html:2
+#, python-format
+msgid ""
+"You're receiving this email because you requested a password reset for your "
+"user account at %(site_name)s."
+msgstr ""
+"Du mottar denne e-posten fordi du har forespurt nytt passord for din bruker "
+"på %(site_name)s."
+
+#: babybuddy/templates/registration/password_reset_email.html:4
+msgid "Please go to the following page and choose a new password:"
+msgstr "Vennligst gå til følgende side og velg et passord:"
+
+#: babybuddy/templates/registration/password_reset_email.html:8
+msgid "Your username, in case you’ve forgotten:"
+msgstr "Ditt brukernavn, i tilfelle du har glemt det:"
+
+#: babybuddy/templates/registration/password_reset_email.html:10
+msgid "Thanks for using Baby Buddy!"
+msgstr "Takk for at du bruker Baby Buddy!"
+
+#: babybuddy/templates/registration/password_reset_form.html:4
+msgid "Forgot Password"
+msgstr "Glemt Passord"
+
+#: babybuddy/templates/registration/password_reset_form.html:9
+msgid ""
+"Enter your account email address in the form below. If the address is valid, "
+"you will receive instructions for resetting your password."
+msgstr ""
+"Fyll inn e-posten knyttet til brukeren din i skjemaet under. Om e-posten er "
+"gyldig vil du motta instruksjoner for å resette passordet ditt."
+
+#: babybuddy/views.py:53
+msgid "Forbidden"
+msgstr "Forbudt"
+
+#: babybuddy/views.py:54
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF-verifikasjon feilet. Forespørselen er avbrutt."
+
+#: babybuddy/views.py:112
+#, fuzzy, python-format
+#| msgid "User %(username)s added!"
+msgid "User %(username)s added!"
+msgstr "Brukeren %(username) er lagt til!"
+
+#: babybuddy/views.py:123
+#, fuzzy, python-format
+#| msgid "User %(username)s updated."
+msgid "User %(username)s updated."
+msgstr "Bruker %(username) er oppdatert."
+
+#: babybuddy/views.py:138
+msgid "User unlocked."
+msgstr "Bruker låst opp."
+
+#: babybuddy/views.py:162
+#, python-brace-format
+msgid "User {user} deleted."
+msgstr "Brukeren {user} er slettet. "
+
+#: babybuddy/views.py:183
+msgid "Password updated."
+msgstr "Passordet er oppdatert."
+
+#: babybuddy/views.py:197
+msgid "User API key regenerated."
+msgstr "Bruker API key er generert."
+
+#: babybuddy/views.py:238
+msgid "Settings saved!"
+msgstr "Innstillinger lagret!"
+
+#: core/filters.py:11 core/models.py:96 core/models.py:115
+msgid "Tag"
+msgstr "Tagg"
+
+#: core/forms.py:120
+msgid "Name does not match child name."
+msgstr "Navnet samsvarer ikke med barnets navn"
+
+#: core/forms.py:136
+msgid ""
+"Click on the tags to add (+) or remove (-) tags or use the text editor to "
+"create new tags."
+msgstr ""
+"Klikk på taggene (+) eller for å fjerne (-) tagger, eller brukt "
+"tekstredigereren for å opprette nye tagger."
+
+#: core/models.py:28
+msgid "Date can not be in the future."
+msgstr "Dato kan ikke være i fremtiden."
+
+#: core/models.py:42
+msgid "Start time must come before end time."
+msgstr "Starttid må komme før sluttid."
+
+#: core/models.py:45
+msgid "Duration too long."
+msgstr "Varigheten er for lang."
+
+#: core/models.py:61
+msgid "Another entry intersects the specified time period."
+msgstr "En annen oppføring kolliderer med den satte tidsperioden."
+
+#: core/models.py:75
+msgid "Date/time can not be in the future."
+msgstr "Dato/tid kan ikke være i fremtiden."
+
+#: core/models.py:84 core/models.py:237
+#: core/templates/core/diaperchange_list.html:30
+msgid "Color"
+msgstr "Farge"
+
+#: core/models.py:90
+msgid "Last used"
+msgstr "Sist brukt"
+
+#: core/models.py:97 core/templates/core/bmi_list.html:30
+#: core/templates/core/diaperchange_list.html:32
+#: core/templates/core/feeding_list.html:35
+#: core/templates/core/head_circumference_list.html:30
+#: core/templates/core/height_list.html:30
+#: core/templates/core/note_list.html:30
+#: core/templates/core/pumping_list.html:30
+#: core/templates/core/sleep_list.html:32
+#: core/templates/core/temperature_list.html:30
+#: core/templates/core/tummytime_list.html:31
+#: core/templates/core/weight_list.html:30
+msgid "Tags"
+msgstr "Tagger"
+
+#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:676
+#: core/templates/core/bmi_list.html:25
+#: core/templates/core/feeding_list.html:25
+#: core/templates/core/head_circumference_list.html:25
+#: core/templates/core/height_list.html:25
+#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28
+#: reports/graphs/diaperchange_amounts.py:37
+#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70
+#: reports/graphs/feeding_duration.py:56
+#: reports/graphs/head_circumference_change.py:28
+#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60
+#: reports/graphs/sleep_pattern.py:157 reports/graphs/sleep_totals.py:59
+#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28
+msgid "Date"
+msgstr "Dato"
+
+#: core/models.py:163
+msgid "First name"
+msgstr "Fornavn"
+
+#: core/models.py:165
+msgid "Last name"
+msgstr "Etternavn"
+
+#: core/models.py:167
+msgid "Birth date"
+msgstr "Fødselsdato"
+
+#: core/models.py:174
+msgid "Slug"
+msgstr "Slug"
+
+#: core/models.py:177
+msgid "Picture"
+msgstr "Bilde"
+
+#: core/models.py:224 core/models.py:398 core/models.py:429 core/models.py:510
+#: core/templates/core/diaperchange_list.html:25
+#: core/templates/core/note_list.html:25
+#: core/templates/core/pumping_list.html:25
+#: core/templates/core/temperature_list.html:25
+#: reports/graphs/temperature_change.py:27
+msgid "Time"
+msgstr "Tid"
+
+#: core/models.py:226 core/templates/core/diaperchange_list.html:61
+#: reports/graphs/diaperchange_types.py:36
+msgid "Wet"
+msgstr "Våt"
+
+#: core/models.py:227 core/templates/core/diaperchange_list.html:62
+#: reports/graphs/diaperchange_types.py:30
+msgid "Solid"
+msgstr "Fast"
+
+#: core/models.py:231
+msgid "Black"
+msgstr "Svart"
+
+#: core/models.py:232
+msgid "Brown"
+msgstr "Brun"
+
+#: core/models.py:233
+msgid "Green"
+msgstr "Grønn"
+
+#: core/models.py:234
+msgid "Yellow"
+msgstr "Gul"
+
+#: core/models.py:239 core/models.py:303 core/models.py:428
+#: core/templates/core/diaperchange_list.html:31
+#: core/templates/core/pumping_list.html:29
+#: dashboard/templates/cards/pumping_last.html:23
+msgid "Amount"
+msgstr "Mengde"
+
+#: core/models.py:276 core/models.py:454 core/models.py:544 core/models.py:633
+msgid "Start time"
+msgstr "Startid"
+
+#: core/models.py:277 core/models.py:455 core/models.py:547 core/models.py:634
+msgid "End time"
+msgstr "Sluttid"
+
+#: core/models.py:279 core/models.py:457 core/models.py:550 core/models.py:636
+#: core/templates/core/feeding_list.html:34
+#: core/templates/core/sleep_list.html:30
+#: core/templates/core/timer_list.html:29
+#: core/templates/core/tummytime_list.html:29
+msgid "Duration"
+msgstr "Varighet"
+
+#: core/models.py:283
+msgid "Breast milk"
+msgstr "Brystmelk"
+
+#: core/models.py:284
+msgid "Formula"
+msgstr "Sammensetning"
+
+#: core/models.py:285
+msgid "Fortified breast milk"
+msgstr "Forsterket morsmelk"
+
+#: core/models.py:286
+msgid "Solid food"
+msgstr "Fast føde"
+
+#: core/models.py:289 core/templates/core/feeding_list.html:30
+msgid "Type"
+msgstr "Type"
+
+#: core/models.py:293
+msgid "Bottle"
+msgstr "Flaske"
+
+#: core/models.py:294
+msgid "Left breast"
+msgstr "Venstre bryst"
+
+#: core/models.py:295
+msgid "Right breast"
+msgstr "Høyre bryst"
+
+#: core/models.py:296
+msgid "Both breasts"
+msgstr "Begge bryst"
+
+#: core/models.py:297
+msgid "Parent fed"
+msgstr "Foreldrestyrt mating"
+
+#: core/models.py:298
+msgid "Self fed"
+msgstr "Selvstyrt mating"
+
+#: core/models.py:301 core/templates/core/feeding_list.html:29
+msgid "Method"
+msgstr "Metode"
+
+#: core/models.py:453
+msgid "Napping"
+msgstr "Middagshvil"
+
+#: core/models.py:541 core/templates/core/timer_list.html:25
+msgid "Name"
+msgstr "Navn"
+
+#: core/models.py:565 core/templates/core/timer_form.html:4
+msgid "Timer"
+msgstr "Tidtaker"
+
+#: core/models.py:566 core/templates/core/timer_confirm_delete.html:9
+#: core/templates/core/timer_confirm_delete_inactive.html:9
+#: core/templates/core/timer_detail.html:8
+#: core/templates/core/timer_form.html:7 core/templates/core/timer_list.html:4
+#: core/templates/core/timer_list.html:7 core/templates/core/timer_list.html:12
+#: core/templates/core/timer_nav.html:10
+msgid "Timers"
+msgstr "Tidtakere"
+
+#: core/models.py:569
+#, python-brace-format
+msgid "Timer #{id}"
+msgstr "Tidtaker #{id}"
+
+#: core/models.py:639 core/templates/core/tummytime_list.html:30
+msgid "Milestone"
+msgstr "Milepæl"
+
+#: core/templates/core/bmi_confirm_delete.html:4
+msgid "Delete a BMI Entry"
+msgstr "Slett BMI-oppføring"
+
+#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17
+#: core/templates/core/bmi_form.html:27
+msgid "Add a BMI Entry"
+msgstr "Legg til BMI-oppføring"
+
+#: core/templates/core/bmi_list.html:15
+msgid "Add BMI"
+msgstr "Legg til BMI"
+
+#: core/templates/core/bmi_list.html:70
+msgid "No BMI entries found."
+msgstr "Ingen KMI-oppføringer funnet."
+
+#: core/templates/core/child_confirm_delete.html:4
+msgid "Delete a Child"
+msgstr "Slett et barn"
+
+#: core/templates/core/child_confirm_delete.html:20
+msgid "To confirm this action. Type the full name of the child below."
+msgstr "For å bekrefte denne handlingen, fyll inn navnet på barnet under."
+
+#: core/templates/core/child_detail.html:25
+#: dashboard/templates/dashboard/dashboard.html:32
+msgid "Born"
+msgstr "Født"
+
+#: core/templates/core/child_detail.html:26
+#: dashboard/templates/dashboard/dashboard.html:33
+msgid "Age"
+msgstr "Alder"
+
+#: core/templates/core/child_list.html:15
+msgid "Add Child"
+msgstr "Legg til barn"
+
+#: core/templates/core/child_list.html:27
+msgid "Birth Date"
+msgstr "Fødselsdato"
+
+#: core/templates/core/child_list.html:62
+msgid "No children found."
+msgstr "Ingen barn funnet."
+
+#: core/templates/core/child_quick_switch.html:6
+msgid "Switch child"
+msgstr "Skift barn"
+
+#: core/templates/core/child_quick_switch.html:13
+msgid "Switch to…"
+msgstr "Skift til..."
+
+#: core/templates/core/diaperchange_confirm_delete.html:4
+msgid "Delete a Diaper Change"
+msgstr "Slett et bleieskift"
+
+#: core/templates/core/diaperchange_form.html:6
+msgid "Update a Diaper Change"
+msgstr "Oppdater et bleieskift"
+
+#: core/templates/core/diaperchange_form.html:8
+#: core/templates/core/diaperchange_form.html:27
+msgid "Add a Diaper Change"
+msgstr "Legg til bleieskift"
+
+#: core/templates/core/diaperchange_form.html:17
+#: core/templates/core/feeding_form.html:17
+#: core/templates/core/note_form.html:17 core/templates/core/sleep_form.html:17
+#: core/templates/core/tummytime_form.html:17
+#: core/templates/core/widget_tag_editor.html:24
+msgid "Add"
+msgstr "Legg til"
+
+#: core/templates/core/diaperchange_list.html:15
+msgid "Add Diaper Change"
+msgstr "Legg til bleieskift"
+
+#: core/templates/core/diaperchange_list.html:29
+msgid "Contents"
+msgstr "Innhold"
+
+#: core/templates/core/diaperchange_list.html:77
+msgid "No diaper changes found."
+msgstr "Ingen bleieskift funnet."
+
+#: core/templates/core/feeding_confirm_delete.html:4
+msgid "Delete a Feeding"
+msgstr "Slett en mating"
+
+#: core/templates/core/feeding_form.html:6
+msgid "Update a Feeding"
+msgstr "Oppdater en mating"
+
+#: core/templates/core/feeding_form.html:8
+#: core/templates/core/feeding_form.html:27
+msgid "Add a Feeding"
+msgstr "Legg til en mating"
+
+#: core/templates/core/feeding_list.html:15
+msgid "Add Feeding"
+msgstr "Legg til mating"
+
+#: core/templates/core/feeding_list.html:33
+msgid "Amt."
+msgstr "Amt."
+
+#: core/templates/core/feeding_list.html:82
+msgid "No feedings found."
+msgstr "Ingen matinger funnet."
+
+#: core/templates/core/head_circumference_confirm_delete.html:4
+msgid "Delete a Head Circumference Entry"
+msgstr "Slett en hodeomrektsoppføring"
+
+#: core/templates/core/head_circumference_form.html:8
+#: core/templates/core/head_circumference_form.html:17
+#: core/templates/core/head_circumference_form.html:27
+msgid "Add a Head Circumference Entry"
+msgstr "Legg til en hodeomkretsoppføring"
+
+#: core/templates/core/head_circumference_list.html:15
+msgid "Add Head Circumference"
+msgstr "Legg til hodeomkrets"
+
+#: core/templates/core/head_circumference_list.html:70
+msgid "No head circumference entries found."
+msgstr "Ingen hodeomkretsoppføring funnet."
+
+#: core/templates/core/height_confirm_delete.html:4
+msgid "Delete a Height Entry"
+msgstr "Slett en høydeoppføring"
+
+#: core/templates/core/height_form.html:8
+#: core/templates/core/height_form.html:17
+#: core/templates/core/height_form.html:27
+msgid "Add a Height Entry"
+msgstr "Legg til en høydeoppføring"
+
+#: core/templates/core/height_list.html:15
+msgid "Add Height"
+msgstr "Legg til høye"
+
+#: core/templates/core/height_list.html:70
+msgid "No height entries found."
+msgstr "Ingen høyeoppføring funnet."
+
+#: core/templates/core/note_confirm_delete.html:4
+msgid "Delete a Note"
+msgstr "Slett et notat"
+
+#: core/templates/core/note_form.html:6
+msgid "Update a Note"
+msgstr "Oppdater et notat"
+
+#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27
+msgid "Add a Note"
+msgstr "Legg til notat"
+
+#: core/templates/core/note_list.html:15
+msgid "Add Note"
+msgstr "Legg til notat"
+
+#: core/templates/core/note_list.html:64
+msgid "No notes found."
+msgstr "Ingen notat funnet."
+
+#: core/templates/core/pumping_confirm_delete.html:4
+msgid "Delete a Pumping Entry"
+msgstr "Slett en brystpumpeoppføring"
+
+#: core/templates/core/pumping_form.html:8
+#: core/templates/core/pumping_form.html:17
+#: core/templates/core/pumping_form.html:27
+msgid "Add a Pumping Entry"
+msgstr "Legg til en brystpumpeoppføring"
+
+#: core/templates/core/pumping_list.html:15
+msgid "Add Pumping Entry"
+msgstr "Legg til brystpumpeoppføring"
+
+#: core/templates/core/pumping_list.html:70
+msgid "No pumping entries found."
+msgstr "Ingen brystpumpeoppføringer funnet."
+
+#: core/templates/core/quick_timer_nav.html:9
+#: core/templates/core/quick_timer_nav.html:29
+#: core/templates/core/timer_nav.html:37
+msgid "Quick Start Timer"
+msgstr "Hurtigstart tidtaker"
+
+#: core/templates/core/quick_timer_nav.html:19
+#: core/templates/core/timer_nav.html:28
+msgid "Quick Start Timer For…"
+msgstr "Hurtigtidtaker for..."
+
+#: core/templates/core/sleep_confirm_delete.html:4
+msgid "Delete a Sleep Entry"
+msgstr "Slett en søvnoppføring"
+
+#: core/templates/core/sleep_form.html:6
+msgid "Update a Sleep Entry"
+msgstr "Oppdater en søvnoppføring"
+
+#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27
+msgid "Add a Sleep Entry"
+msgstr "Legg til søvnoppføring"
+
+#: core/templates/core/sleep_list.html:15
+msgid "Add Sleep"
+msgstr "Legg til søvn"
+
+#: core/templates/core/sleep_list.html:25
+#: core/templates/core/timer_form.html:12
+#: core/templates/core/timer_list.html:24
+#: core/templates/core/tummytime_list.html:24
+msgid "Start"
+msgstr "Start"
+
+#: core/templates/core/sleep_list.html:26
+#: core/templates/core/timer_list.html:30
+#: core/templates/core/tummytime_list.html:25
+msgid "End"
+msgstr "Slutt"
+
+#: core/templates/core/sleep_list.html:31
+msgid "Nap"
+msgstr "Lur"
+
+#: core/templates/core/sleep_list.html:74
+msgid "No sleep entries found."
+msgstr "Ingen søvnoppføring funnet."
+
+#: core/templates/core/temperature_confirm_delete.html:4
+msgid "Delete a Temperature Reading"
+msgstr "Slett en temperaturavlesning"
+
+#: core/templates/core/temperature_form.html:8
+#: core/templates/core/temperature_form.html:17
+msgid "Add a Temperature Reading"
+msgstr "Legg til temperaturavlesning"
+
+#: core/templates/core/temperature_form.html:27
+msgid "Add a Temperature Entry"
+msgstr "Legg til en temperaturoppføring"
+
+#: core/templates/core/temperature_list.html:15
+msgid "Add Temperature Reading"
+msgstr "Legg til temperaturavlesning"
+
+#: core/templates/core/temperature_list.html:70
+msgid "No temperature entries found."
+msgstr "Ingen temperaturoppføringer er funnet."
+
+#: core/templates/core/timer_confirm_delete.html:5
+#, fuzzy, python-format
+#| msgid "Delete %(object)s"
+msgid "Delete %(object)s"
+msgstr "Slett %(object)er"
+
+#: core/templates/core/timer_confirm_delete_inactive.html:5
+msgid "Delete All Inactive Timers"
+msgstr "Slett alle inaktive tidtakere"
+
+#: core/templates/core/timer_confirm_delete_inactive.html:10
+msgid "Delete Inactive"
+msgstr "Slett inaktiv"
+
+#: core/templates/core/timer_confirm_delete_inactive.html:17
+#, python-format
+msgid "Are you sure you want to delete %(number)s inactive timer?"
+msgid_plural "Are you sure you want to delete %(number)s inactive timers?"
+msgstr[0] "Er du sikker på at du vil slette %(number)s inaktiv tidtaker?"
+msgstr[1] "Er du sikker på at du vil slette %(number)s inaktive tidtakere?"
+
+#: core/templates/core/timer_detail.html:28
+msgid "Started"
+msgstr "Startet"
+
+#: core/templates/core/timer_detail.html:30
+msgid "Stopped"
+msgstr "Stoppet"
+
+#: core/templates/core/timer_detail.html:34
+#, fuzzy, python-format
+#| msgid "%(timer)s created by %(user)s"
+msgid "%(timer)s created by %(user)s"
+msgstr "%(timer) opprettet av %(user)"
+
+#: core/templates/core/timer_detail.html:63
+msgid "Timer actions"
+msgstr "Tidtaketalternativ"
+
+#: core/templates/core/timer_detail.html:77
+msgid "Restart timer"
+msgstr "Start tidtaking på nytt"
+
+#: core/templates/core/timer_detail.html:84
+msgid "Delete timer"
+msgstr "Slett tidtaker"
+
+#: core/templates/core/timer_form.html:22
+#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15
+msgid "Start Timer"
+msgstr "Start tidtaker"
+
+#: core/templates/core/timer_list.html:58
+msgid "No timer entries found."
+msgstr "Ingen tidtakeroppføringer funnet."
+
+#: core/templates/core/timer_list.html:68
+msgid "Delete Inactive Timers"
+msgstr "Slett inaktive tidtakere"
+
+#: core/templates/core/timer_nav.html:20
+msgid "View Timers"
+msgstr "Vis tidtakere"
+
+#: core/templates/core/timer_nav.html:44
+#: dashboard/templates/cards/timer_list.html:6
+msgid "Active Timers"
+msgstr "Aktive tidtakere"
+
+#: core/templates/core/timer_nav.html:50
+#: dashboard/templates/cards/diaperchange_last.html:17
+#: dashboard/templates/cards/diaperchange_types.html:12
+#: dashboard/templates/cards/feeding_day.html:20
+#: dashboard/templates/cards/feeding_day.html:52
+#: dashboard/templates/cards/feeding_last.html:17
+#: dashboard/templates/cards/feeding_last_method.html:43
+#: dashboard/templates/cards/pumping_last.html:17
+#: dashboard/templates/cards/sleep_last.html:17
+#: dashboard/templates/cards/sleep_naps_day.html:18
+#: dashboard/templates/cards/sleep_recent.html:20
+#: dashboard/templates/cards/sleep_recent.html:52
+#: dashboard/templates/cards/tummytime_day.html:14
+msgid "None"
+msgstr "Ingen"
+
+#: core/templates/core/tummytime_confirm_delete.html:4
+msgid "Delete a Tummy Time Entry"
+msgstr "Slett en magetidoppføring"
+
+#: core/templates/core/tummytime_form.html:6
+msgid "Update a Tummy Time Entry"
+msgstr "Oppdater en magetidoppføring"
+
+#: core/templates/core/tummytime_form.html:8
+#: core/templates/core/tummytime_form.html:27
+msgid "Add a Tummy Time Entry"
+msgstr "Legg til magetidoppføring"
+
+#: core/templates/core/tummytime_list.html:15
+msgid "Add Tummy Time"
+msgstr "Legg til magetid"
+
+#: core/templates/core/tummytime_list.html:67
+msgid "No tummy time entries found."
+msgstr "Ingen magetidoppføringer funnet."
+
+#: core/templates/core/weight_confirm_delete.html:4
+msgid "Delete a Weight Entry"
+msgstr "Slett en vektoppføring"
+
+#: core/templates/core/weight_form.html:8
+#: core/templates/core/weight_form.html:17
+#: core/templates/core/weight_form.html:27
+msgid "Add a Weight Entry"
+msgstr "Legg til en vektoppføring"
+
+#: core/templates/core/weight_list.html:15
+msgid "Add Weight"
+msgstr "Legg til vekt"
+
+#: core/templates/core/weight_list.html:70
+msgid "No weight entries found."
+msgstr "Ingen vektoppføringer funnet."
+
+#: core/templates/core/widget_tag_editor.html:22
+msgid "Tag name"
+msgstr "Taggnavn"
+
+#: core/templates/core/widget_tag_editor.html:28
+msgid "Recently used:"
+msgstr "Sist brukte:"
+
+#: core/templates/core/widget_tag_editor.html:53
+msgctxt "Error modal"
+msgid "Error"
+msgstr "Feil"
+
+#: core/templates/core/widget_tag_editor.html:58
+msgctxt "Error modal"
+msgid "An error ocurred."
+msgstr "En feil oppstod."
+
+#: core/templates/core/widget_tag_editor.html:59
+msgctxt "Error modal"
+msgid "Invalid tag name."
+msgstr "Ugyldig taggnavn."
+
+#: core/templates/core/widget_tag_editor.html:60
+msgctxt "Error modal"
+msgid "Failed to create tag."
+msgstr "Kunne ikke opprette tagg."
+
+#: core/templates/core/widget_tag_editor.html:61
+msgctxt "Error modal"
+msgid "Failed to obtain tag data."
+msgstr "Kunne ikke hente taggdata."
+
+#: core/templates/core/widget_tag_editor.html:66
+msgctxt "Error modal"
+msgid "Close"
+msgstr "Lukk"
+
+#: core/templates/timeline/_timeline.html:38
+#, python-format
+msgid "%(since)s ago (%(time)s)"
+msgstr "%(since)s siden (%(time)s)"
+
+#: core/templates/timeline/_timeline.html:44
+#, python-format
+msgid "Duration: %(duration)s"
+msgstr "Varighet: %(duration)s"
+
+#: core/templates/timeline/_timeline.html:53
+#, python-format
+msgid "%(since)s since previous"
+msgstr "%(since)s siden sist"
+
+#: core/templates/timeline/_timeline.html:61
+#: dashboard/templates/dashboard/child_button_group.html:20
+msgid "Edit"
+msgstr "Endre"
+
+#: core/templates/timeline/_timeline.html:85
+msgid "No events"
+msgstr "Ingen hendelser"
+
+#: core/templatetags/datetime.py:60
+msgid "Today"
+msgstr "I dag"
+
+#: core/templatetags/datetime.py:75
+msgid "{}, {}"
+msgstr "{}, {}"
+
+#: core/templatetags/duration.py:25
+msgid "0 days"
+msgstr "0 dager"
+
+#: core/templatetags/duration.py:111
+#: dashboard/templates/cards/diaperchange_types.html:49
+msgid "today"
+msgstr "i dag"
+
+#: core/templatetags/duration.py:113
+#: dashboard/templates/cards/diaperchange_types.html:51
+msgid "yesterday"
+msgstr "i går"
+
+#: core/templatetags/duration.py:116
+msgid " days ago"
+msgstr "␣dager siden"
+
+#: core/timeline.py:53
+#, python-format
+msgid "%(child)s started tummy time!"
+msgstr "%(child)s har startet magetid!"
+
+#: core/timeline.py:65
+#, python-format
+msgid "%(child)s finished tummy time."
+msgstr "%(child)s avsluttet magetid."
+
+#: core/timeline.py:91
+#, python-format
+msgid "%(child)s fell asleep."
+msgstr "%(child)s sovnet."
+
+#: core/timeline.py:103
+#, python-format
+msgid "%(child)s woke up."
+msgstr "%(child)s våknet."
+
+#: core/timeline.py:137
+#, python-format
+msgid "Amount: %(amount).0f"
+msgstr "Mengde: %(amount).0f"
+
+#: core/timeline.py:145
+#, python-format
+msgid "%(child)s started feeding."
+msgstr "%(child)s startet mating."
+
+#: core/timeline.py:158
+#, python-format
+msgid "%(child)s finished feeding."
+msgstr "%(child)s avsluttet mating."
+
+#: core/timeline.py:185
+#, python-format
+msgid "%(child)s had a %(type)s diaper change."
+msgstr "%(child)s har hatt en %(type)s bleieskift."
+
+#: core/utils.py:40
+#, fuzzy, python-format
+#| msgid "%(hours)s hour"
+#| msgid_plural "%(hours)s hours"
+msgid "%(hours)s hour"
+msgid_plural "%(hours)s hours"
+msgstr[0] "%(hours) time"
+msgstr[1] "%(hours) timer"
+
+#: core/utils.py:44
+#, fuzzy, python-format
+#| msgid "%(minutes)s minute"
+#| msgid_plural "%(minutes)s minutes"
+msgid "%(minutes)s minute"
+msgid_plural "%(minutes)s minutes"
+msgstr[0] "%(minutes) minutt"
+msgstr[1] "%(minutes) minutter"
+
+#: core/utils.py:50
+#, python-format
+msgid "%(seconds)s second"
+msgid_plural "%(seconds)s seconds"
+msgstr[0] "%(seconds) sekund"
+msgstr[1] "%(seconds) sekunder"
+
+#: core/views.py:33
+#, fuzzy, python-format
+#| msgid "%(model)s entry for %(child)s added!"
+msgid "%(model)s entry for %(child)s added!"
+msgstr "%(model)er oppført for %(child)er er lagt til!"
+
+#: core/views.py:35 core/views.py:308
+#, python-format
+msgid "%(model)s entry added!"
+msgstr "%(model)s oppføring lagt til!"
+
+#: core/views.py:61 core/views.py:316
+#, python-format
+msgid "%(model)s entry for %(child)s updated."
+msgstr "%(model)s oppføring for %(child)s oppdatert."
+
+#: core/views.py:63
+#, python-format
+msgid "%(model)s entry updated."
+msgstr "%(model)s oppføring oppdatert."
+
+#: core/views.py:69 core/views.py:146
+#, fuzzy, python-format
+#| msgid "%(model)s entry deleted."
+msgid "%(model)s entry deleted."
+msgstr "%(model) oppføring slettet."
+
+#: core/views.py:115
+#, python-format
+msgid "%(first_name)s %(last_name)s added!"
+msgstr "%(first_name)s %(last_name)s lagt til!"
+
+#: core/views.py:366
+#, fuzzy, python-format
+#| msgid "%(model)s reading added!"
+msgid "%(model)s reading added!"
+msgstr "%(model) avlesning lagt til!"
+
+#: core/views.py:374
+#, python-format
+msgid "%(model)s reading for %(child)s updated."
+msgstr "%(model)s avlesning for %(child)s er oppdatert."
+
+#: core/views.py:483
+#, python-format
+msgid "%(timer)s stopped."
+msgstr "%(timer)s stoppet."
+
+#: core/views.py:506
+msgid "All inactive timers deleted."
+msgstr "Alle inaktive tidtakere er slettet."
+
+#: core/views.py:516
+msgid "No inactive timers exist."
+msgstr "Ingen inaktive tidtakere eksisterer."
+
+#: dashboard/templates/cards/diaperchange_last.html:6
+msgid "Last Diaper Change"
+msgstr "Sist bleieskift"
+
+#: dashboard/templates/cards/diaperchange_last.html:12
+#: dashboard/templates/cards/feeding_last.html:12
+#: dashboard/templates/cards/pumping_last.html:12
+#: dashboard/templates/cards/sleep_last.html:12
+#: dashboard/templates/cards/tummytime_last.html:13
+#, python-format
+msgid "Oh snap! The\n" +#~ " two passwords did not match. Please try again.
" +#~ msgstr "" +#~ "Oh snap! Passordene stemte ikke " +#~ "overens, prøv på nytt.
" + +#~ msgid "" +#~ "We've emailed you instructions for setting your\n" +#~ " password, if an account exists with the email you entered. " +#~ "You\n" +#~ " should receive them shortly.
\n" +#~ "If you don't receive an email, please make sure " +#~ "you've\n" +#~ " entered the address you registered with, and check your spam\n" +#~ " folder.
" +#~ msgstr "" +#~ "Vi har sendt deg passord reset epost, om det finnes en konto på e-" +#~ "postadressen du har oppgitt.
\n" +#~ "Hvis du ikke har motatt eposten, sjekk at du " +#~ "har tastet inn riktig e-post addresse, og sjekk spam mappen.
" + +#~ msgid "" +#~ "Enter your account email address in the\n" +#~ " form below. If the address is valid, you will receive " +#~ "instructions for\n" +#~ " resetting your password.
" +#~ msgstr "" +#~ "Skriv inn epostadressen i feltet under. Om adressen " +#~ "finnes, vil du få tilsendt instruksjoner for hvordan du resetter passord." +#~ "
" + +#~ msgid "Wet and/or solid is required." +#~ msgstr "Våt og/eller fast er påkrevd." + +#~ msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +#~ msgstr "Kun metoden \"Flaske\" er akseptert med valget \"Sammensetning\"." + +#~ msgid "Add a Change" +#~ msgstr "Legg til en endring" + +#~ msgid "%(timer)s created by %(object.user)s" +#~ msgstr "%(timer)e opprettet av %(object.user)e" + +#~ msgid "%(child)s had a diaper change." +#~ msgstr "%(child)s har hatt et bleieskift." + +#~ msgid "%(time)s ago" +#~ msgstr "&(time)s siden" + +#~ msgid "Today's Sleep" +#~ msgstr "Søvn i dag" + +#~ msgid "None yet today" +#~ msgstr "Ingen ennå i dag" + +#~ msgid "%(count)s sleep entries" +#~ msgstr "%(count) søvnoppføringer" + +#~ msgid "Last Slept" +#~ msgstr "Siste søvn" + +#~ msgid "%(count)s nap%(plural)s" +#~ msgstr "%(count) hvile%(plural)s" + +#~ msgid "%(count)s active timer%(plural)s" +#~ msgstr "%(count) aktiv tidtaker%(plural)" + +#~ msgid "Started by %(instance.user)s at %(start)s" +#~ msgstr "Startet av %(instance.user) den %(start)" + +#~ msgid "There is no enough data to generate this report." +#~ msgstr "Det er ikke nok data til å generere denne rapporten." + +#~ msgid "Total feeding amount" +#~ msgstr "Total matemengde" + +#~ msgid "Total Feeding Amounts" +#~ msgstr "Total matemengde" + +#~ msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +#~ msgstr "" +#~ "Er du sikker på at du vil slette %(number) inaktiv tidtaker%(plural)e?" + +#~ msgid "%(n)s feeding%(plural)s ago" +#~ msgstr "%(n)s mating%(plural)e siden" + +#~ msgid "Contents: %(contents)s" +#~ msgstr "Innhold: %(contents)s" + +#~ msgid "%(count)s feeding entries" +#~ msgstr "%(count)s matingsoppføringer" + +#~ msgid "No bmi entries found." +#~ msgstr "Ingen BMI-oppføringer funnet." diff --git a/locale/nl/LC_MESSAGES/django.po b/locale/nl/LC_MESSAGES/django.po index d17f45ba..c80f1d28 100644 --- a/locale/nl/LC_MESSAGES/django.po +++ b/locale/nl/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -182,26 +182,30 @@ msgid "Italian" msgstr "Italiaans" #: babybuddy/settings/base.py:187 +msgid "Norwegian Bokmål" +msgstr "" + +#: babybuddy/settings/base.py:188 msgid "Polish" msgstr "Pools" -#: babybuddy/settings/base.py:188 +#: babybuddy/settings/base.py:189 msgid "Portuguese" msgstr "Portugees" -#: babybuddy/settings/base.py:189 +#: babybuddy/settings/base.py:190 msgid "Russian" msgstr "" -#: babybuddy/settings/base.py:190 +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "Spaans" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "Zweeds" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "Turks" @@ -1912,10 +1916,8 @@ msgstr[0] "%(n)s maaltijd geleden" msgstr[1] "%(n)s maaltijden geleden" #: dashboard/templates/cards/pumping_last.html:6 -#, fuzzy -#| msgid "Pumping" msgid "Last Pumping" -msgstr "Afkolven" +msgstr "" #: dashboard/templates/cards/sleep_last.html:6 msgid "Last Sleep" diff --git a/locale/pl/LC_MESSAGES/django.po b/locale/pl/LC_MESSAGES/django.po index 4e63561b..1d063410 100644 --- a/locale/pl/LC_MESSAGES/django.po +++ b/locale/pl/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -183,26 +183,30 @@ msgid "Italian" msgstr "" #: babybuddy/settings/base.py:187 -msgid "Polish" +msgid "Norwegian Bokmål" msgstr "" #: babybuddy/settings/base.py:188 -msgid "Portuguese" +msgid "Polish" msgstr "" #: babybuddy/settings/base.py:189 -msgid "Russian" +msgid "Portuguese" msgstr "" #: babybuddy/settings/base.py:190 +msgid "Russian" +msgstr "" + +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "Hiszpański" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "Szwedzki" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "Turecki" diff --git a/locale/pt/LC_MESSAGES/django.mo b/locale/pt/LC_MESSAGES/django.mo index d8de947d..15e4361f 100644 Binary files a/locale/pt/LC_MESSAGES/django.mo and b/locale/pt/LC_MESSAGES/django.mo differ diff --git a/locale/pt/LC_MESSAGES/django.po b/locale/pt/LC_MESSAGES/django.po index 98ae979a..4bee998f 100644 --- a/locale/pt/LC_MESSAGES/django.po +++ b/locale/pt/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Baby Buddy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-22 14:39+0000\n" +"POT-Creation-Date: 2023-05-02 18:53-0700\n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,7 +32,7 @@ msgstr "Apenas Leitura" #: babybuddy/forms.py:16 msgid "Restricts user to viewing data only." -msgstr "" +msgstr "Limita o utilizador a modo de leitura." #: babybuddy/models.py:19 msgid "Refresh rate" @@ -137,7 +137,7 @@ msgstr "Catalão" #: babybuddy/settings/base.py:176 msgid "Czech" -msgstr "" +msgstr "Checo" #: babybuddy/settings/base.py:177 msgid "Chinese (simplified)" @@ -145,7 +145,7 @@ msgstr "Chinês (Simplificado)" #: babybuddy/settings/base.py:178 msgid "Danish" -msgstr "" +msgstr "Dinamarquês" #: babybuddy/settings/base.py:179 msgid "Dutch" @@ -175,33 +175,37 @@ msgstr "Alemão" #: babybuddy/settings/base.py:185 msgid "Hungarian" -msgstr "" +msgstr "Húngaro" #: babybuddy/settings/base.py:186 msgid "Italian" msgstr "Italiano" #: babybuddy/settings/base.py:187 +msgid "Norwegian Bokmål" +msgstr "" + +#: babybuddy/settings/base.py:188 msgid "Polish" msgstr "Polaco" -#: babybuddy/settings/base.py:188 +#: babybuddy/settings/base.py:189 msgid "Portuguese" msgstr "Português" -#: babybuddy/settings/base.py:189 -msgid "Russian" -msgstr "" - #: babybuddy/settings/base.py:190 +msgid "Russian" +msgstr "Russo" + +#: babybuddy/settings/base.py:191 msgid "Spanish" msgstr "Espanhol" -#: babybuddy/settings/base.py:191 +#: babybuddy/settings/base.py:192 msgid "Swedish" msgstr "Sueco" -#: babybuddy/settings/base.py:192 +#: babybuddy/settings/base.py:193 msgid "Turkish" msgstr "Turco" @@ -696,7 +700,7 @@ msgstr "Actualizar" #: babybuddy/templates/babybuddy/user_form.html:28 msgid "User locked." -msgstr "" +msgstr "Utilizador bloqueado." #: babybuddy/templates/babybuddy/user_form.html:35 #: core/templates/core/bmi_form.html:23 core/templates/core/child_form.html:24 @@ -740,7 +744,7 @@ msgstr "Activo" #: babybuddy/templates/babybuddy/user_list.html:24 msgid "Locked" -msgstr "" +msgstr "Bloqueado" #: babybuddy/templates/babybuddy/user_list.html:25 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 @@ -841,7 +845,7 @@ msgstr "Adicionar uma Criança" #: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 msgid "Bad Request" -msgstr "" +msgstr "Pedido errado" #: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 msgid "Permission Denied" @@ -873,7 +877,7 @@ msgstr "Página não encontrada" #: babybuddy/templates/error/404.html:9 #, python-format msgid "The path%(request_path)s
does not exist."
-msgstr ""
+msgstr "O caminho %(request_path)s
não existe."
#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7
msgid "Server Error"
@@ -886,7 +890,7 @@ msgstr "Bem-vindo ao Baby Buddy!"
#: babybuddy/templates/error/lockout.html:4
msgid "Too Many Login Attempts"
-msgstr ""
+msgstr "Demasiadas tentativas de acesso"
#: babybuddy/templates/registration/login.html:32
msgid "Login"
@@ -957,15 +961,15 @@ msgstr ""
#: babybuddy/templates/registration/password_reset_email.html:4
msgid "Please go to the following page and choose a new password:"
-msgstr ""
+msgstr "Vá até á seguinte página e introduza a nova password:"
#: babybuddy/templates/registration/password_reset_email.html:8
msgid "Your username, in case you’ve forgotten:"
-msgstr ""
+msgstr "O teu nome de utilizador, caso te tenhas esquecido:"
#: babybuddy/templates/registration/password_reset_email.html:10
msgid "Thanks for using Baby Buddy!"
-msgstr ""
+msgstr "Obrigado por utilizar o Baby Buddy!"
#: babybuddy/templates/registration/password_reset_form.html:4
msgid "Forgot Password"
@@ -985,7 +989,7 @@ msgstr "Proibido"
#: babybuddy/views.py:54
msgid "CSRF verification failed. Request aborted."
-msgstr ""
+msgstr "Verificação CSRF falhou. Pedido cancelado."
#: babybuddy/views.py:112
#, python-format
@@ -999,7 +1003,7 @@ msgstr "Utilizador %(username)s actualizado."
#: babybuddy/views.py:138
msgid "User unlocked."
-msgstr ""
+msgstr "Utilizador desbloqueado."
#: babybuddy/views.py:162
#, python-brace-format
@@ -1459,7 +1463,7 @@ msgstr "Temporizador Rápido"
#: core/templates/core/quick_timer_nav.html:19
#: core/templates/core/timer_nav.html:28
msgid "Quick Start Timer For…"
-msgstr ""
+msgstr "Temporizador rápido para..."
#: core/templates/core/sleep_confirm_delete.html:4
msgid "Delete a Sleep Entry"
@@ -1915,10 +1919,8 @@ msgstr[0] "%(n)s alimentaçõe%(plural)s atrás"
msgstr[1] "%(n)s alimentaçõe%(plural)s atrás"
#: dashboard/templates/cards/pumping_last.html:6
-#, fuzzy
-#| msgid "Pumping"
msgid "Last Pumping"
-msgstr "Extração com Bomba"
+msgstr "Última extração"
#: dashboard/templates/cards/sleep_last.html:6
msgid "Last Sleep"
diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po
index 629b9cb0..835f40df 100644
--- a/locale/ru/LC_MESSAGES/django.po
+++ b/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Baby Buddy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-22 14:39+0000\n"
+"POT-Creation-Date: 2023-05-02 18:53-0700\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -183,26 +183,30 @@ msgid "Italian"
msgstr "Italian"
#: babybuddy/settings/base.py:187
+msgid "Norwegian Bokmål"
+msgstr ""
+
+#: babybuddy/settings/base.py:188
msgid "Polish"
msgstr "Polish"
-#: babybuddy/settings/base.py:188
+#: babybuddy/settings/base.py:189
msgid "Portuguese"
msgstr "Portuguese"
-#: babybuddy/settings/base.py:189
+#: babybuddy/settings/base.py:190
msgid "Russian"
msgstr ""
-#: babybuddy/settings/base.py:190
+#: babybuddy/settings/base.py:191
msgid "Spanish"
msgstr "Spanish"
-#: babybuddy/settings/base.py:191
+#: babybuddy/settings/base.py:192
msgid "Swedish"
msgstr "Swedish"
-#: babybuddy/settings/base.py:192
+#: babybuddy/settings/base.py:193
msgid "Turkish"
msgstr "Turkish"
diff --git a/locale/sv/LC_MESSAGES/django.po b/locale/sv/LC_MESSAGES/django.po
index 7d7363ef..6fee9c98 100644
--- a/locale/sv/LC_MESSAGES/django.po
+++ b/locale/sv/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Baby Buddy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-22 14:39+0000\n"
+"POT-Creation-Date: 2023-05-02 18:53-0700\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -184,26 +184,30 @@ msgid "Italian"
msgstr "Italienska"
#: babybuddy/settings/base.py:187
+msgid "Norwegian Bokmål"
+msgstr ""
+
+#: babybuddy/settings/base.py:188
msgid "Polish"
msgstr "Polska"
-#: babybuddy/settings/base.py:188
+#: babybuddy/settings/base.py:189
msgid "Portuguese"
msgstr "Portugisiska"
-#: babybuddy/settings/base.py:189
+#: babybuddy/settings/base.py:190
msgid "Russian"
msgstr ""
-#: babybuddy/settings/base.py:190
+#: babybuddy/settings/base.py:191
msgid "Spanish"
msgstr "Spanska"
-#: babybuddy/settings/base.py:191
+#: babybuddy/settings/base.py:192
msgid "Swedish"
msgstr "Svenska"
-#: babybuddy/settings/base.py:192
+#: babybuddy/settings/base.py:193
msgid "Turkish"
msgstr "Turkiska"
diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po
index a9d625f4..4c2cf366 100644
--- a/locale/tr/LC_MESSAGES/django.po
+++ b/locale/tr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Baby Buddy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-22 14:39+0000\n"
+"POT-Creation-Date: 2023-05-02 18:53-0700\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -184,26 +184,30 @@ msgid "Italian"
msgstr "İtalyanca"
#: babybuddy/settings/base.py:187
+msgid "Norwegian Bokmål"
+msgstr ""
+
+#: babybuddy/settings/base.py:188
msgid "Polish"
msgstr "Lehçe"
-#: babybuddy/settings/base.py:188
+#: babybuddy/settings/base.py:189
msgid "Portuguese"
msgstr "Portekizce"
-#: babybuddy/settings/base.py:189
+#: babybuddy/settings/base.py:190
msgid "Russian"
msgstr ""
-#: babybuddy/settings/base.py:190
+#: babybuddy/settings/base.py:191
msgid "Spanish"
msgstr "İspanyolca"
-#: babybuddy/settings/base.py:191
+#: babybuddy/settings/base.py:192
msgid "Swedish"
msgstr "İsveççe"
-#: babybuddy/settings/base.py:192
+#: babybuddy/settings/base.py:193
msgid "Turkish"
msgstr "Türkçe"
diff --git a/locale/zh/LC_MESSAGES/django.po b/locale/zh/LC_MESSAGES/django.po
index d7959e9f..f3ec12fc 100644
--- a/locale/zh/LC_MESSAGES/django.po
+++ b/locale/zh/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Baby Buddy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-22 14:39+0000\n"
+"POT-Creation-Date: 2023-05-02 18:53-0700\n"
"Language: zh-Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -180,26 +180,30 @@ msgid "Italian"
msgstr "意大利语"
#: babybuddy/settings/base.py:187
+msgid "Norwegian Bokmål"
+msgstr ""
+
+#: babybuddy/settings/base.py:188
msgid "Polish"
msgstr "波兰语"
-#: babybuddy/settings/base.py:188
+#: babybuddy/settings/base.py:189
msgid "Portuguese"
msgstr "葡萄牙语"
-#: babybuddy/settings/base.py:189
+#: babybuddy/settings/base.py:190
msgid "Russian"
msgstr ""
-#: babybuddy/settings/base.py:190
+#: babybuddy/settings/base.py:191
msgid "Spanish"
msgstr "西班牙语"
-#: babybuddy/settings/base.py:191
+#: babybuddy/settings/base.py:192
msgid "Swedish"
msgstr "瑞典语"
-#: babybuddy/settings/base.py:192
+#: babybuddy/settings/base.py:193
msgid "Turkish"
msgstr "土耳其语"
diff --git a/static/babybuddy/js/graph.717bed3cf413.js b/static/babybuddy/js/graph.b9b798e66fbd.js
similarity index 97%
rename from static/babybuddy/js/graph.717bed3cf413.js
rename to static/babybuddy/js/graph.b9b798e66fbd.js
index 5f346b2b..2bb0484a 100644
--- a/static/babybuddy/js/graph.717bed3cf413.js
+++ b/static/babybuddy/js/graph.b9b798e66fbd.js
@@ -1 +1 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Plotly=t():e.Plotly=t()}(self,function(){return function(){var e={98847:function(e,t,r){"use strict";var n=r(71828),a={"X,X div":'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;',"X input,X button":'font-family:"Open Sans",verdana,arial,sans-serif;',"X input:focus,X button:focus":"outline:none;","X a":"text-decoration:none;","X a:hover":"text-decoration:none;","X .crisp":"shape-rendering:crispEdges;","X .user-select-none":"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;","X svg":"overflow:hidden;","X svg a":"fill:#447adb;","X svg a:hover":"fill:#3c6dc5;","X .main-svg":"position:absolute;top:0;left:0;pointer-events:none;","X .main-svg .draglayer":"pointer-events:all;","X .cursor-default":"cursor:default;","X .cursor-pointer":"cursor:pointer;","X .cursor-crosshair":"cursor:crosshair;","X .cursor-move":"cursor:move;","X .cursor-col-resize":"cursor:col-resize;","X .cursor-row-resize":"cursor:row-resize;","X .cursor-ns-resize":"cursor:ns-resize;","X .cursor-ew-resize":"cursor:ew-resize;","X .cursor-sw-resize":"cursor:sw-resize;","X .cursor-s-resize":"cursor:s-resize;","X .cursor-se-resize":"cursor:se-resize;","X .cursor-w-resize":"cursor:w-resize;","X .cursor-e-resize":"cursor:e-resize;","X .cursor-nw-resize":"cursor:nw-resize;","X .cursor-n-resize":"cursor:n-resize;","X .cursor-ne-resize":"cursor:ne-resize;","X .cursor-grab":"cursor:-webkit-grab;cursor:grab;","X .modebar":"position:absolute;top:2px;right:2px;","X .ease-bg":"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;","X .modebar--hover>:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var i in a){var o=i.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,a[i])}},98222:function(e,t,r){"use strict";e.exports=r(82887)},27206:function(e,t,r){"use strict";e.exports=r(60822)},5224:function(e,t,r){"use strict";e.exports=r(83832)},59509:function(e,t,r){"use strict";e.exports=r(72201)},49866:function(e,t,r){"use strict";e.exports=r(99442)},19548:function(e,t,r){"use strict";e.exports=r(8729)},61039:function(e,t,r){"use strict";e.exports=r(14382)},24296:function(e,t,r){"use strict";e.exports=r(43102)},58872:function(e,t,r){"use strict";e.exports=r(92165)},65591:function(e,t,r){"use strict";e.exports=r(36071)},69738:function(e,t,r){"use strict";e.exports=r(43905)},92650:function(e,t,r){"use strict";e.exports=r(35902)},73434:function(e,t,r){"use strict";e.exports=r(94507)},760:function(e,t,r){"use strict";var n=r(19548);n.register([r(27206),r(5224),r(58872),r(65591),r(69738),r(92650),r(49866),r(25743),r(6197),r(73434),r(54201),r(98222),r(61039),r(24296),r(66398),r(59509)]),e.exports=n},54201:function(e,t,r){"use strict";e.exports=r(58810)},25743:function(e,t,r){"use strict";e.exports=r(52979)},66398:function(e,t,r){"use strict";e.exports=r(32275)},6197:function(e,t,r){"use strict";e.exports=r(47462)},82884:function(e){"use strict";e.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},50215:function(e,t,r){"use strict";var n=r(82884),a=r(41940),i=r(85555),o=r(44467).templatedArray;r(24695);e.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:a({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",i.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",i.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",i.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",i.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:a({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},3749:function(e,t,r){"use strict";var n=r(71828),a=r(89298),i=r(92605).draw;function o(e){var t=e._fullLayout;n.filterVisible(t.annotations).forEach(function(t){var r=a.getFromId(e,t.xref),n=a.getFromId(e,t.yref),i=a.getRefType(t.xref),o=a.getRefType(t.yref);t._extremes={},"range"===i&&l(t,r),"range"===o&&l(t,n)})}function l(e,t){var r,n=t._id,i=n.charAt(0),o=e[i],l=e["a"+i],s=e[i+"ref"],c=e["a"+i+"ref"],u=e["_"+i+"padplus"],f=e["_"+i+"padminus"],d={x:1,y:-1}[i]*e[i+"shift"],h=3*e.arrowsize*e.arrowwidth||0,p=h+d,y=h-d,v=3*e.startarrowsize*e.arrowwidth||0,g=v+d,m=v-d;if(c===s){var x=a.findExtremes(t,[t.r2c(o)],{ppadplus:p,ppadminus:y}),b=a.findExtremes(t,[t.r2c(l)],{ppadplus:Math.max(u,g),ppadminus:Math.max(f,m)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else g=l?g+l:g,m=l?m-l:m,r=a.findExtremes(t,[t.r2c(o)],{ppadplus:Math.max(u,p,g),ppadminus:Math.max(f,y,m)});e._extremes[n]=r}e.exports=function(e){var t=e._fullLayout;if(n.filterVisible(t.annotations).length&&e._fullData.length)return n.syncOrAsync([i,o],e)}},44317:function(e,t,r){"use strict";var n=r(71828),a=r(73972),i=r(44467).arrayEditor;function o(e,t){var r,n,a,i,o,s,c,u=e._fullLayout.annotations,f=[],d=[],h=[],p=(t||[]).length;for(r=0;r"+h+"":"B"===s&&9===c?e+="B":xe(s)&&(e+=me[c/3+5]));return i?D+e:e}function we(e,t){if(e){var r=Object.keys(N).reduce(function(e,r){return-1!==t.indexOf(r)&&N[r].forEach(function(t){e[t]=1}),e},{});Object.keys(e).forEach(function(t){r[t]||(1===t.length?e[t]=0:delete e[t])})}}function ke(e,t){for(var r=[],n={},a=0;a
")}(t,r,n,a):y.getValue(l.text,r),y.coerceString(m,o)}(C,n,a,k,A);w=function(e,t){var r=y.getValue(e.textposition,t);return y.coerceEnumerated(x,r)}(P,a);var I="stack"===v.mode||"relative"===v.mode,z=n[a],F=!I||z._outmost;if(R&&"none"!==w&&(!z.isBlank&&l!==c&&f!==h||"auto"!==w&&"inside"!==w)){var N=C.font,j=p.getBarColor(n[a],P),B=p.getInsideTextFont(P,a,N,j),H=p.getOutsideTextFont(P,a,N),U=r.datum();E?"log"===k.type&&U.s0<=0&&(l=k.range[0]":h>c&&(n.prefixBoundary=!0);break;case"<":(hc||n.starts.length&&d===u)&&(n.prefixBoundary=!0);break;case"][":f=Math.min(h[0],h[1]),d=Math.max(h[0],h[1]),fc&&(n.prefixBoundary=!0)}}}},90654:function(e,t,r){"use strict";var n=r(21081),a=r(86068),i=r(53572);e.exports={min:"zmin",max:"zmax",calc:function(e,t,r){var o=t.contours,l=t.line,s=o.size||1,c=o.coloring,u=a(t,{isColorbar:!0});if("heatmap"===c){var f=n.extractOpts(t);r._fillgradient=f.reversescale?n.flipScale(f.colorscale):f.colorscale,r._zrange=[f.min,f.max]}else"fill"===c&&(r._fillcolor=u);r._line={color:"lines"===c?u:l.color,width:!1!==o.showlines?l.width:0,dash:l.dash},r._levels={start:o.start,end:i(o),size:s}}}},36914:function(e){"use strict";e.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},83179:function(e,t,r){"use strict";var n=r(92770),a=r(14523),i=r(7901),o=i.addOpacity,l=i.opacity,s=r(74808),c=s.CONSTRAINT_REDUCTION,u=s.COMPARISON_OPS2;e.exports=function(e,t,r,i,s,f){var d,h,p,y=t.contours,v=r("contours.operation");(y._operation=c[v],function(e,t){var r;-1===u.indexOf(t.operation)?(e("contours.value",[0,1]),Array.isArray(t.value)?t.value.length>2?t.value=t.value.slice(2):0===t.length?t.value=[0,1]:t.length<2?(r=parseFloat(t.value[0]),t.value=[r,r+1]):t.value=[parseFloat(t.value[0]),parseFloat(t.value[1])]:n(t.value)&&(r=parseFloat(t.value),t.value=[r,r+1])):(e("contours.value",0),n(t.value)||(Array.isArray(t.value)?t.value=parseFloat(t.value[0]):t.value=0))}(r,y),"="===v?d=y.showlines=!0:(d=r("contours.showlines"),p=r("fillcolor",o((e.line||{}).color||s,.5))),d)&&(h=r("line.color",p&&l(p)?o(t.fillcolor,1):s),r("line.width",2),r("line.dash"));r("line.smoothing"),a(r,i,h,f)}},64237:function(e,t,r){"use strict";var n=r(74808),a=r(92770);function i(e,t){var r,i=Array.isArray(t);function o(e){return a(e)?+e:null}return-1!==n.COMPARISON_OPS2.indexOf(e)?r=o(i?t[0]:t):-1!==n.INTERVAL_OPS.indexOf(e)?r=i?[o(t[0]),o(t[1])]:[o(t),o(t)]:-1!==n.SET_OPS.indexOf(e)&&(r=i?t.map(o):[o(t)]),r}function o(e){return function(t){t=i(e,t);var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]);return{start:r,end:n,size:n-r}}}function l(e){return function(t){return{start:t=i(e,t),end:1/0,size:1/0}}}e.exports={"[]":o("[]"),"][":o("]["),">":l(">"),"<":l("<"),"=":l("=")}},67217:function(e){"use strict";e.exports=function(e,t,r,n){var a=n("contours.start"),i=n("contours.end"),o=!1===a||!1===i,l=r("contours.size");!(o?t.autocontour=!0:r("autocontour",!1))&&l||r("ncontours")}},84857:function(e,t,r){"use strict";var n=r(71828);function a(e){return n.extendFlat({},e,{edgepaths:n.extendDeep([],e.edgepaths),paths:n.extendDeep([],e.paths),starts:n.extendDeep([],e.starts)})}e.exports=function(e,t){var r,i,o,l=function(e){return e.reverse()},s=function(e){return e};switch(t){case"=":case"<":return e;case">":for(1!==e.length&&n.warn("Contour data invalid for the specified inequality operation."),i=e[0],r=0;r