From 70b26b06d8307c8594b1169ee0b116b62a3d7880 Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Wed, 19 Jul 2023 00:33:29 -0400 Subject: [PATCH] Fix translations (#2371) * Fix existing translations and add Spanish and Chinese * Closes #2366 --- .gitignore | 3 +- CTFd/constants/languages.py | 4 + CTFd/translations/de/LC_MESSAGES/messages.mo | Bin 0 -> 10233 bytes CTFd/translations/de/LC_MESSAGES/messages.po | 202 +++--- CTFd/translations/es/LC_MESSAGES/messages.mo | Bin 0 -> 10340 bytes CTFd/translations/es/LC_MESSAGES/messages.po | 647 +++++++++++++++++++ CTFd/translations/pl/LC_MESSAGES/messages.mo | Bin 0 -> 10010 bytes CTFd/translations/pl/LC_MESSAGES/messages.po | 82 +-- CTFd/translations/zh/LC_MESSAGES/messages.mo | Bin 0 -> 9251 bytes CTFd/translations/zh/LC_MESSAGES/messages.po | 644 ++++++++++++++++++ Makefile | 2 +- 11 files changed, 1403 insertions(+), 181 deletions(-) create mode 100644 CTFd/translations/de/LC_MESSAGES/messages.mo create mode 100644 CTFd/translations/es/LC_MESSAGES/messages.mo create mode 100644 CTFd/translations/es/LC_MESSAGES/messages.po create mode 100644 CTFd/translations/pl/LC_MESSAGES/messages.mo create mode 100644 CTFd/translations/zh/LC_MESSAGES/messages.mo create mode 100644 CTFd/translations/zh/LC_MESSAGES/messages.po diff --git a/.gitignore b/.gitignore index cbe21c30..2ccc42bf 100644 --- a/.gitignore +++ b/.gitignore @@ -44,7 +44,8 @@ nosetests.xml coverage.xml # Translations -*.mo +# TODO: CTFd 4.0 We should consider generating .mo files in a Docker image instead of saving them in git +# *.mo # Django stuff: *.log diff --git a/CTFd/constants/languages.py b/CTFd/constants/languages.py index fdc36da5..d5b058ba 100644 --- a/CTFd/constants/languages.py +++ b/CTFd/constants/languages.py @@ -5,12 +5,16 @@ class Languages(str, RawEnum): ENGLISH = "en" GERMAN = "de" POLISH = "pl" + SPANISH = "es" + CHINESE = "zh" LANGUAGE_NAMES = { "en": "English", "de": "Deutsch", "pl": "Polski", + "es": "Español", + "zh": "中文", } SELECT_LANGUAGE_LIST = [("", "")] + [ diff --git a/CTFd/translations/de/LC_MESSAGES/messages.mo b/CTFd/translations/de/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..910536c140a67e66b096ae291c688f58b3e87166 GIT binary patch literal 10233 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 D0I&o2 literal 0 HcmV?d00001 diff --git a/CTFd/translations/de/LC_MESSAGES/messages.po b/CTFd/translations/de/LC_MESSAGES/messages.po index 73880903..a2c999fb 100644 --- a/CTFd/translations/de/LC_MESSAGES/messages.po +++ b/CTFd/translations/de/LC_MESSAGES/messages.po @@ -1,23 +1,12 @@ -# German translations for PROJECT. -# Copyright (C) 2023 ORGANIZATION -# This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2023. -# -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PROJECT VERSION\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-05-17 01:38-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: de\n" -"Language-Team: de \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"X-Generator: POEditor.com\n" +"Project-Id-Version: CTFd\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: CTFd/forms/auth.py:19 CTFd/forms/self.py:16 #, fuzzy @@ -52,7 +41,7 @@ msgstr "Bestätigungsmail erneut senden" #: CTFd/forms/self.py:18 msgid "Language" -msgstr "" +msgstr "Sprache" #: CTFd/forms/self.py:20 #, fuzzy @@ -116,12 +105,8 @@ msgid "Team Mode" msgstr "Mannschaft" #: CTFd/forms/setup.py:31 -msgid "" -"Controls whether users join together in teams to play (Team Mode) or play" -" as themselves (User Mode)" -msgstr "" -"Legt fest, ob sich die Benutzer in Teams zusammenschließen (Team-Modus) " -"oder alleine spielen (Benutzer-Modus)" +msgid "Controls whether users join together in teams to play (Team Mode) or play as themselves (User Mode)" +msgstr "Legt fest, ob sich die Benutzer in Teams zusammenschließen (Team-Modus) oder alleine spielen (Benutzer-Modus)" #: CTFd/forms/setup.py:38 #, fuzzy @@ -157,12 +142,8 @@ msgid "Logo" msgstr "Ausloggen" #: CTFd/forms/setup.py:55 -msgid "" -"Logo to use for the website instead of a CTF name. Used as the home page " -"button. Optional." -msgstr "" -"Logo zur Verwendung für die Website anstelle des CTF-Namens. Wird als " -"Schaltfläche auf der Startseite verwendet. Optional." +msgid "Logo to use for the website instead of a CTF name. Used as the home page button. Optional." +msgstr "Logo zur Verwendung für die Website anstelle des CTF-Namens. Wird als Schaltfläche auf der Startseite verwendet. Optional." #: CTFd/forms/setup.py:60 #, fuzzy @@ -178,12 +159,8 @@ msgid "Small Icon" msgstr "Kleine Ikone" #: CTFd/forms/setup.py:64 -msgid "" -"favicon used in user's browsers. Only PNGs accepted. Must be 32x32px. " -"Optional." -msgstr "" -"Favicon, das in den Browsern der Benutzer verwendet wird. Nur PNGs werden" -" akzeptiert. Muss 32x32px groß sein. Optional." +msgid "favicon used in user's browsers. Only PNGs accepted. Must be 32x32px. Optional." +msgstr "Favicon, das in den Browsern der Benutzer verwendet wird. Nur PNGs werden akzeptiert. Muss 32x32px groß sein. Optional." #: CTFd/forms/setup.py:69 #, fuzzy @@ -199,12 +176,8 @@ msgid "Theme Color" msgstr "Thema Farbe" #: CTFd/forms/setup.py:77 -msgid "" -"Color used by theme to control aesthetics. Requires theme support. " -"Optional." -msgstr "" -"Vom Thema verwendete Farbe zur Steuerung der Ästhetik. Erfordert Theme-" -"Unterstützung. Optional." +msgid "Color used by theme to control aesthetics. Requires theme support. Optional." +msgstr "Vom Thema verwendete Farbe zur Steuerung der Ästhetik. Erfordert Theme-Unterstützung. Optional." #: CTFd/forms/setup.py:83 msgid "Start Time" @@ -267,18 +240,12 @@ msgid "Confirm Current Team Password" msgstr "Passwort zurücksetzen" #: CTFd/forms/teams.py:108 -msgid "" -"Provide your current team password (or your password) to update your " -"team's password" -msgstr "" -"Geben Sie Ihr aktuelles Team-Passwort (oder Ihr Passwort) ein, um das " -"Passwort Ihres Teams zu aktualisieren" +msgid "Provide your current team password (or your password) to update your team's password" +msgstr "Geben Sie Ihr aktuelles Team-Passwort (oder Ihr Passwort) ein, um das Passwort Ihres Teams zu aktualisieren" #: CTFd/forms/teams.py:114 msgid "Your team's affiliation publicly shown to other competitors" -msgstr "" -"Die Zugehörigkeit Ihres Teams wird für andere Wettbewerber öffentlich " -"angezeigt" +msgstr "Die Zugehörigkeit Ihres Teams wird für andere Wettbewerber öffentlich angezeigt" #: CTFd/forms/teams.py:120 msgid "Your team's website publicly shown to other competitors" @@ -330,32 +297,31 @@ msgstr "Suche nach passenden Benutzern" #: CTFd/themes/core-beta/templates/base.html:49 msgid "Powered by CTFd" -msgstr "" +msgstr "Angetrieben von CTFd" #: CTFd/themes/core-beta/templates/challenge.html:11 #: CTFd/themes/core-beta/templates/users/private.html:114 #: CTFd/themes/core-beta/templates/users/public.html:113 msgid "Challenge" -msgstr "" +msgstr "Herausforderung" #: CTFd/themes/core-beta/templates/challenge.html:19 -#, fuzzy, python-format msgid "%(num)d Solve" msgid_plural "%(num)d Solves" -msgstr[0] "" +msgstr[0] "%(num)d Lösen" msgstr[1] "" #: CTFd/themes/core-beta/templates/challenge.html:73 msgid "View Hint" -msgstr "" +msgstr "Hinweis anzeigen" #: CTFd/themes/core-beta/templates/challenge.html:135 msgid "Flag" -msgstr "" +msgstr "Flagge" #: CTFd/themes/core-beta/templates/challenge.html:167 msgid "Next Challenge" -msgstr "" +msgstr "Nächste Herausforderung" #: CTFd/themes/core-beta/templates/challenge.html:186 #: CTFd/themes/core-beta/templates/setup.html:237 @@ -367,29 +333,27 @@ msgstr "Erstellt" #: CTFd/themes/core-beta/templates/challenges.html:7 #: CTFd/themes/core-beta/templates/components/navbar.html:57 msgid "Challenges" -msgstr "" +msgstr "Herausforderungen" #: CTFd/themes/core-beta/templates/confirm.html:7 msgid "Confirm" -msgstr "" +msgstr "Bestätigen Sie" #: CTFd/themes/core-beta/templates/confirm.html:18 msgid "We've sent a confirmation email to your email address." -msgstr "" +msgstr "Wir haben eine Bestätigungs-E-Mail an Ihre E-Mail-Adresse geschickt." #: CTFd/themes/core-beta/templates/confirm.html:24 msgid "Please click the link in that email to confirm your account." -msgstr "" +msgstr "Bitte klicken Sie auf den Link in dieser E-Mail, um Ihr Konto zu bestätigen." #: CTFd/themes/core-beta/templates/confirm.html:30 -msgid "" -"If the email doesn’t arrive, check your spam folder or contact an " -"administrator to manually verify your account." -msgstr "" +msgid "If the email doesn’t arrive, check your spam folder or contact an administrator to manually verify your account." +msgstr "Wenn die E-Mail nicht ankommt, überprüfen Sie Ihren Spam-Ordner oder wenden Sie sich an einen Administrator, um Ihr Konto manuell zu verifizieren." #: CTFd/themes/core-beta/templates/confirm.html:43 msgid "Change Email Address" -msgstr "" +msgstr "E-Mail Adresse ändern" #: CTFd/themes/core-beta/templates/components/navbar.html:178 #: CTFd/themes/core-beta/templates/login.html:7 @@ -399,21 +363,21 @@ msgstr "Ausloggen" #: CTFd/themes/core-beta/templates/login.html:40 msgid "Forgot your password?" -msgstr "" +msgstr "Haben Sie Ihr Passwort vergessen?" #: CTFd/themes/core-beta/templates/components/navbar.html:97 #: CTFd/themes/core-beta/templates/notifications.html:7 msgid "Notifications" -msgstr "" +msgstr "Benachrichtigungen" #: CTFd/themes/core-beta/templates/notifications.html:14 msgid "There are no notifications yet" -msgstr "" +msgstr "Es liegen noch keine Benachrichtigungen vor" #: CTFd/themes/core-beta/templates/components/navbar.html:165 #: CTFd/themes/core-beta/templates/register.html:7 msgid "Register" -msgstr "" +msgstr "Register" #: CTFd/themes/core-beta/templates/register.html:35 #, fuzzy @@ -422,11 +386,11 @@ msgstr "Ihr Benutzername auf der Website" #: CTFd/themes/core-beta/templates/register.html:43 msgid "Never shown to the public" -msgstr "" +msgstr "Nie der Öffentlichkeit gezeigt" #: CTFd/themes/core-beta/templates/register.html:51 msgid "Password used to log into your account" -msgstr "" +msgstr "Passwort, mit dem Sie sich bei Ihrem Konto anmelden" #: CTFd/themes/core-beta/templates/reset_password.html:7 #, fuzzy @@ -434,36 +398,34 @@ msgid "Reset Password" msgstr "Passwort zurücksetzen" #: CTFd/themes/core-beta/templates/reset_password.html:21 -msgid "" -"You can now reset the password for your account and log in. Please enter " -"in a new password below." -msgstr "" +msgid "You can now reset the password for your account and log in. Please enter in a new password below." +msgstr "Sie können jetzt das Passwort für Ihr Konto zurücksetzen und sich anmelden. Bitte geben Sie unten ein neues Passwort ein." #: CTFd/themes/core-beta/templates/reset_password.html:44 msgid "Please provide the email address associated with your account below." -msgstr "" +msgstr "Bitte geben Sie die mit Ihrem Konto verbundene E-Mail-Adresse an." #: CTFd/themes/core-beta/templates/components/navbar.html:135 #: CTFd/themes/core-beta/templates/settings.html:8 msgid "Settings" -msgstr "" +msgstr "Einstellungen" #: CTFd/themes/core-beta/templates/components/navbar.html:123 #: CTFd/themes/core-beta/templates/settings.html:21 msgid "Profile" -msgstr "" +msgstr "Profil" #: CTFd/themes/core-beta/templates/settings.html:26 msgid "Access Tokens" -msgstr "" +msgstr "Zugangstoken" #: CTFd/themes/core-beta/templates/settings.html:95 msgid "Your profile has been updated" -msgstr "" +msgstr "Ihr Profil wurde aktualisiert" #: CTFd/themes/core-beta/templates/settings.html:103 msgid "Error:" -msgstr "" +msgstr "Fehler:" #: CTFd/themes/core-beta/templates/settings.html:129 #, fuzzy @@ -472,19 +434,19 @@ msgstr "Allgemein" #: CTFd/themes/core-beta/templates/settings.html:137 msgid "Please copy your API Key, it won't be shown again!" -msgstr "" +msgstr "Bitte kopieren Sie Ihren API-Schlüssel, er wird nicht mehr angezeigt!" #: CTFd/themes/core-beta/templates/settings.html:178 msgid "Active Tokens" -msgstr "" +msgstr "Aktive Token" #: CTFd/themes/core-beta/templates/settings.html:190 msgid "Delete Token" -msgstr "" +msgstr "Token löschen" #: CTFd/themes/core-beta/templates/settings.html:199 msgid "Are you sure you want to delete this token?" -msgstr "" +msgstr "Sind Sie sicher, dass Sie dieses Token löschen wollen?" #: CTFd/themes/core-beta/templates/settings.html:219 #, fuzzy @@ -493,11 +455,11 @@ msgstr "Erstellt" #: CTFd/themes/core-beta/templates/settings.html:221 msgid "Delete" -msgstr "" +msgstr "Löschen" #: CTFd/themes/core-beta/templates/setup.html:24 msgid "Setup" -msgstr "" +msgstr "Einrichtung" #: CTFd/themes/core-beta/templates/setup.html:44 #, fuzzy @@ -516,11 +478,11 @@ msgstr "Zugehörigkeit" #: CTFd/themes/core-beta/templates/setup.html:53 msgid "Style" -msgstr "" +msgstr "Stil" #: CTFd/themes/core-beta/templates/setup.html:56 msgid "Date & Time" -msgstr "" +msgstr "Datum & Uhrzeit" #: CTFd/themes/core-beta/templates/setup.html:59 #, fuzzy @@ -529,39 +491,39 @@ msgstr "Ablauf" #: CTFd/themes/core-beta/templates/setup.html:108 msgid "Participants register accounts and form teams" -msgstr "" +msgstr "Teilnehmer registrieren Konten und bilden Teams" #: CTFd/themes/core-beta/templates/setup.html:109 msgid "If a team member solves a challenge, the entire team receives credit" -msgstr "" +msgstr "Wenn ein Teammitglied eine Aufgabe löst, erhält das gesamte Team eine Anerkennung." #: CTFd/themes/core-beta/templates/setup.html:111 msgid "Easier to see which team member solved a challenge" -msgstr "" +msgstr "Leichter zu erkennen, welches Teammitglied eine Aufgabe gelöst hat" #: CTFd/themes/core-beta/templates/setup.html:112 msgid "May be slightly more difficult to administer" -msgstr "" +msgstr "Kann etwas schwieriger zu verabreichen sein" #: CTFd/themes/core-beta/templates/setup.html:116 msgid "Participants only register an individual account" -msgstr "" +msgstr "Teilnehmer registrieren nur ein individuelles Konto" #: CTFd/themes/core-beta/templates/setup.html:117 msgid "Players can share accounts to form pseudo-teams" -msgstr "" +msgstr "Spieler können Konten teilen, um Pseudo-Teams zu bilden" #: CTFd/themes/core-beta/templates/setup.html:119 msgid "Easier to organize" -msgstr "" +msgstr "Leichter zu organisieren" #: CTFd/themes/core-beta/templates/setup.html:120 msgid "Difficult to attribute solutions to individual team members" -msgstr "" +msgstr "Es ist schwierig, Lösungen einzelnen Teammitgliedern zuzuordnen" #: CTFd/themes/core-beta/templates/setup.html:164 msgid "Subscribe email address to the CTFd LLC Newsletter for news and updates" -msgstr "" +msgstr "Abonnieren Sie den Newsletter der CTFd LLC für Neuigkeiten und Updates" #: CTFd/themes/core-beta/templates/setup.html:241 #: CTFd/themes/core-beta/templates/setup.html:262 @@ -573,7 +535,7 @@ msgstr "Zeit" #: CTFd/themes/core-beta/templates/setup.html:266 msgid "UTC Preview" -msgstr "" +msgstr "UTC-Vorschau" #: CTFd/themes/core-beta/templates/components/navbar.html:34 #: CTFd/themes/core-beta/templates/users/users.html:6 @@ -589,7 +551,7 @@ msgstr "Mannschaft" #: CTFd/themes/core-beta/templates/components/navbar.html:50 msgid "Scoreboard" -msgstr "" +msgstr "Anzeiger" #: CTFd/themes/core-beta/templates/components/navbar.html:80 #, fuzzy @@ -615,28 +577,28 @@ msgstr "Verboten" #: CTFd/themes/core-beta/templates/errors/404.html:11 msgid "File not found" -msgstr "" +msgstr "Datei nicht gefunden" #: CTFd/themes/core-beta/templates/errors/404.html:12 msgid "Sorry about that" -msgstr "" +msgstr "Das tut mir leid." #: CTFd/themes/core-beta/templates/errors/429.html:11 msgid "Too many requests" -msgstr "" +msgstr "Zu viele Anfragen" #: CTFd/themes/core-beta/templates/errors/429.html:12 msgid "Please slow down!" -msgstr "" +msgstr "Bitte langsamer fahren!" #: CTFd/themes/core-beta/templates/errors/502.html:11 msgid "Bad Gateway" -msgstr "" +msgstr "Schlechtes Tor" #: CTFd/themes/core-beta/templates/macros/forms.html:13 #: CTFd/themes/core-beta/templates/macros/forms.html:36 msgid "(Optional)" -msgstr "" +msgstr "(fakultativ)" #: CTFd/themes/core-beta/templates/teams/invite.html:6 #: CTFd/themes/core-beta/templates/teams/join_team.html:6 @@ -648,11 +610,11 @@ msgstr "Mannschaft" #: CTFd/themes/core-beta/templates/teams/invite.html:15 #: CTFd/themes/core-beta/templates/teams/team_enrollment.html:12 msgid "Welcome to" -msgstr "" +msgstr "Willkommen bei" #: CTFd/themes/core-beta/templates/teams/invite.html:19 msgid "Click the button below to join the team!" -msgstr "" +msgstr "Klicken Sie auf die Schaltfläche unten, um dem Team beizutreten!" #: CTFd/themes/core-beta/templates/teams/new_team.html:6 #: CTFd/themes/core-beta/templates/teams/team_enrollment.html:39 @@ -662,54 +624,54 @@ msgstr "Erstellt" #: CTFd/themes/core-beta/templates/teams/team_enrollment.html:14 msgid "In order to participate you must either join or create a team." -msgstr "" +msgstr "Um teilnehmen zu können, müssen Sie entweder einem Team beitreten oder ein Team gründen." #: CTFd/themes/core-beta/templates/teams/team_enrollment.html:22 msgid "Play with Official Team" -msgstr "" +msgstr "Mit offizieller Mannschaft spielen" #: CTFd/themes/core-beta/templates/teams/team_enrollment.html:27 msgid "Join Unofficial Team" -msgstr "" +msgstr "Dem inoffiziellen Team beitreten" #: CTFd/themes/core-beta/templates/teams/team_enrollment.html:30 msgid "Create Unofficial Team" -msgstr "" +msgstr "Inoffizielles Team erstellen" #: CTFd/themes/core-beta/templates/teams/teams.html:124 #: CTFd/themes/core-beta/templates/users/users.html:114 msgid "Page" -msgstr "" +msgstr "Seite" #: CTFd/themes/core-beta/templates/users/private.html:21 #: CTFd/themes/core-beta/templates/users/public.html:21 #: CTFd/themes/core-beta/templates/users/users.html:66 msgid "Official" -msgstr "" +msgstr "Offiziell" #: CTFd/themes/core-beta/templates/users/private.html:88 #: CTFd/themes/core-beta/templates/users/public.html:88 msgid "Awards" -msgstr "" +msgstr "Auszeichnungen" #: CTFd/themes/core-beta/templates/users/private.html:110 msgid "Solves" -msgstr "" +msgstr "Löst" #: CTFd/themes/core-beta/templates/users/private.html:115 #: CTFd/themes/core-beta/templates/users/public.html:114 msgid "Category" -msgstr "" +msgstr "Kategorie" #: CTFd/themes/core-beta/templates/users/private.html:116 #: CTFd/themes/core-beta/templates/users/public.html:115 msgid "Value" -msgstr "" +msgstr "Wert" #: CTFd/themes/core-beta/templates/users/private.html:203 #: CTFd/themes/core-beta/templates/users/public.html:204 msgid "No solves yet" -msgstr "" +msgstr "Noch keine Lösungen" #: CTFd/themes/core-beta/templates/users/users.html:46 #, fuzzy diff --git a/CTFd/translations/es/LC_MESSAGES/messages.mo b/CTFd/translations/es/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..eb2cc15b0faa286dfc67ddc657a0e2cccd212e47 GIT binary patch literal 10340 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 lN^DNZCl!AHcd5E=4utpvyNM-oXit|-Wp!9D!B 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 literal 0 HcmV?d00001 diff --git a/CTFd/translations/pl/LC_MESSAGES/messages.po b/CTFd/translations/pl/LC_MESSAGES/messages.po index 6722c262..628ceaca 100644 --- a/CTFd/translations/pl/LC_MESSAGES/messages.po +++ b/CTFd/translations/pl/LC_MESSAGES/messages.po @@ -1,24 +1,12 @@ -# Polish translations for PROJECT. -# Copyright (C) 2023 ORGANIZATION -# This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2023. -# msgid "" msgstr "" -"Project-Id-Version: PROJECT VERSION\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-05-17 01:38-0400\n" -"PO-Revision-Date: 2023-05-17 01:52-0400\n" -"Last-Translator: \n" -"Language-Team: pl \n" -"Language: pl\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2);\n" -"Generated-By: Babel 2.12.1\n" -"X-Generator: Poedit 3.3.1\n" +"X-Generator: POEditor.com\n" +"Project-Id-Version: CTFd\n" +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: CTFd/forms/auth.py:19 CTFd/forms/self.py:16 msgid "User Name" @@ -109,12 +97,8 @@ msgid "Team Mode" msgstr "Tryb zespołowy" #: CTFd/forms/setup.py:31 -msgid "" -"Controls whether users join together in teams to play (Team Mode) or play as " -"themselves (User Mode)" -msgstr "" -"Kontroluje czy użytkownicy grają razem w zespołach (Tryb zespołowy) czy " -"samodzielnie (Tryb indywidualny)" +msgid "Controls whether users join together in teams to play (Team Mode) or play as themselves (User Mode)" +msgstr "Kontroluje czy użytkownicy grają razem w zespołach (Tryb zespołowy) czy samodzielnie (Tryb indywidualny)" #: CTFd/forms/setup.py:38 msgid "Admin Username" @@ -145,12 +129,8 @@ msgid "Logo" msgstr "Logo" #: CTFd/forms/setup.py:55 -msgid "" -"Logo to use for the website instead of a CTF name. Used as the home page " -"button. Optional." -msgstr "" -"Logo do wyświetlania na stronie, zamiast nazwy CTFa. Funkcjonuje jako " -"przycisk strony głównej. Opcjonalne." +msgid "Logo to use for the website instead of a CTF name. Used as the home page button. Optional." +msgstr "Logo do wyświetlania na stronie, zamiast nazwy CTFa. Funkcjonuje jako przycisk strony głównej. Opcjonalne." #: CTFd/forms/setup.py:60 msgid "Banner" @@ -165,12 +145,8 @@ msgid "Small Icon" msgstr "Mała Ikona" #: CTFd/forms/setup.py:64 -msgid "" -"favicon used in user's browsers. Only PNGs accepted. Must be 32x32px. " -"Optional." -msgstr "" -"favikona używana w przeglądace. Tylko pliki PNG. Musi mieć wymiary 32x32 " -"piksele. Opcjonalna." +msgid "favicon used in user's browsers. Only PNGs accepted. Must be 32x32px. Optional." +msgstr "favikona używana w przeglądace. Tylko pliki PNG. Musi mieć wymiary 32x32 piksele. Opcjonalna." #: CTFd/forms/setup.py:69 msgid "Theme" @@ -185,11 +161,8 @@ msgid "Theme Color" msgstr "Kolor motywu" #: CTFd/forms/setup.py:77 -msgid "" -"Color used by theme to control aesthetics. Requires theme support. Optional." -msgstr "" -"Kolor używany przez motyw do zmiany estetyki. Wymaga wsparcia ze strony " -"motywu. Opcjonalny." +msgid "Color used by theme to control aesthetics. Requires theme support. Optional." +msgstr "Kolor używany przez motyw do zmiany estetyki. Wymaga wsparcia ze strony motywu. Opcjonalny." #: CTFd/forms/setup.py:83 msgid "Start Time" @@ -245,9 +218,7 @@ msgid "Confirm Current Team Password" msgstr "Potwierdź aktualne hasło zespołu" #: CTFd/forms/teams.py:108 -msgid "" -"Provide your current team password (or your password) to update your team's " -"password" +msgid "Provide your current team password (or your password) to update your team's password" msgstr "Podaj obecne hasło zespołu (lub swoje hasło) aby zmienić hasło zespołu" #: CTFd/forms/teams.py:114 @@ -310,12 +281,12 @@ msgid "Challenge" msgstr "Wyzwanie" #: CTFd/themes/core-beta/templates/challenge.html:19 -#, python-format msgid "%(num)d Solve" msgid_plural "%(num)d Solves" msgstr[0] "%(num)d Rozwiąż" msgstr[1] "%(num)d Rozwiązania" msgstr[2] "%(num)d Rozwiązań" +msgstr[3] "" #: CTFd/themes/core-beta/templates/challenge.html:73 msgid "View Hint" @@ -353,12 +324,8 @@ msgid "Please click the link in that email to confirm your account." msgstr "Kliknij link w tym e-mailu, aby potwierdzić swoje konto." #: CTFd/themes/core-beta/templates/confirm.html:30 -msgid "" -"If the email doesn’t arrive, check your spam folder or contact an " -"administrator to manually verify your account." -msgstr "" -"Jeśli wiadomość e-mail nie dotrze, sprawdź folder ze spamem lub skontaktuj " -"się z administratorem, aby ręcznie zweryfikować konto." +msgid "If the email doesn’t arrive, check your spam folder or contact an administrator to manually verify your account." +msgstr "Jeśli wiadomość e-mail nie dotrze, sprawdź folder ze spamem lub skontaktuj się z administratorem, aby ręcznie zweryfikować konto." #: CTFd/themes/core-beta/templates/confirm.html:43 msgid "Change Email Address" @@ -404,12 +371,8 @@ msgid "Reset Password" msgstr "Zresetuj hasło" #: CTFd/themes/core-beta/templates/reset_password.html:21 -msgid "" -"You can now reset the password for your account and log in. Please enter in " -"a new password below." -msgstr "" -"Możesz teraz zresetować hasło do swojego konta i zalogować się. Wprowadź " -"nowe hasło poniżej." +msgid "You can now reset the password for your account and log in. Please enter in a new password below." +msgstr "Możesz teraz zresetować hasło do swojego konta i zalogować się. Wprowadź nowe hasło poniżej." #: CTFd/themes/core-beta/templates/reset_password.html:44 msgid "Please provide the email address associated with your account below." @@ -527,9 +490,7 @@ msgstr "Trudno przypisać rozwiązania poszczególnym członkom zespołu" #: CTFd/themes/core-beta/templates/setup.html:164 msgid "Subscribe email address to the CTFd LLC Newsletter for news and updates" -msgstr "" -"Subskrybuj adres e-mail biuletynu CTFd LLC, aby otrzymywać wiadomości i " -"aktualizacje" +msgstr "Subskrybuj adres e-mail biuletynu CTFd LLC, aby otrzymywać wiadomości i aktualizacje" #: CTFd/themes/core-beta/templates/setup.html:241 #: CTFd/themes/core-beta/templates/setup.html:262 @@ -680,6 +641,7 @@ msgid_plural "users" msgstr[0] "użytkownik" msgstr[1] "użytkowników" msgstr[2] "użytkowników" +msgstr[3] "" #: CTFd/utils/modes/__init__.py:37 msgid "team" @@ -687,3 +649,5 @@ msgid_plural "teams" msgstr[0] "zespół" msgstr[1] "drużyny" msgstr[2] "drużyn" +msgstr[3] "" + diff --git a/CTFd/translations/zh/LC_MESSAGES/messages.mo b/CTFd/translations/zh/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..497594020d4e1be5fc7f7bf2a82da3155b182780 GIT binary patch literal 9251 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 D0C+P? literal 0 HcmV?d00001 diff --git a/CTFd/translations/zh/LC_MESSAGES/messages.po b/CTFd/translations/zh/LC_MESSAGES/messages.po new file mode 100644 index 00000000..b159237b --- /dev/null +++ b/CTFd/translations/zh/LC_MESSAGES/messages.po @@ -0,0 +1,644 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: POEditor.com\n" +"Project-Id-Version: CTFd\n" +"Language: zh-CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: CTFd/forms/auth.py:19 CTFd/forms/self.py:16 +msgid "User Name" +msgstr "用户名" + +#: CTFd/forms/auth.py:21 CTFd/forms/auth.py:53 CTFd/forms/self.py:17 +#: CTFd/forms/teams.py:203 +msgid "Email" +msgstr "电子邮件" + +#: CTFd/forms/auth.py:22 CTFd/forms/auth.py:43 CTFd/forms/auth.py:60 +#: CTFd/forms/self.py:19 CTFd/forms/teams.py:204 +msgid "Password" +msgstr "密码" + +#: CTFd/forms/auth.py:23 CTFd/forms/auth.py:44 CTFd/forms/auth.py:55 +#: CTFd/forms/auth.py:62 CTFd/forms/self.py:24 CTFd/forms/teams.py:127 +#: CTFd/forms/teams.py:210 CTFd/themes/core-beta/templates/challenge.html:147 +msgid "Submit" +msgstr "提交" + +#: CTFd/forms/auth.py:39 +msgid "User Name or Email" +msgstr "用户名或电子邮件" + +#: CTFd/forms/auth.py:48 +msgid "Resend Confirmation Email" +msgstr "重新发送确认电子邮件" + +#: CTFd/forms/self.py:18 +msgid "Language" +msgstr "语言" + +#: CTFd/forms/self.py:20 +msgid "Current Password" +msgstr "当前密码" + +#: CTFd/forms/self.py:21 CTFd/forms/teams.py:113 CTFd/forms/teams.py:191 +#: CTFd/forms/teams.py:206 CTFd/forms/users.py:137 +#: CTFd/themes/core-beta/templates/teams/teams.html:51 +#: CTFd/themes/core-beta/templates/users/users.html:48 +msgid "Affiliation" +msgstr "隶属关系" + +#: CTFd/forms/self.py:22 CTFd/forms/teams.py:119 CTFd/forms/teams.py:192 +#: CTFd/forms/teams.py:205 CTFd/forms/users.py:138 +#: CTFd/themes/core-beta/templates/teams/teams.html:50 +#: CTFd/themes/core-beta/templates/users/users.html:47 +msgid "Website" +msgstr "网站" + +#: CTFd/forms/self.py:23 CTFd/forms/teams.py:123 CTFd/forms/teams.py:207 +#: CTFd/themes/core-beta/templates/teams/teams.html:52 +#: CTFd/themes/core-beta/templates/users/users.html:49 +msgid "Country" +msgstr "国家" + +#: CTFd/forms/self.py:52 CTFd/themes/core-beta/templates/settings.html:220 +msgid "Expiration" +msgstr "到期日" + +#: CTFd/forms/self.py:53 +msgid "Generate" +msgstr "生成" + +#: CTFd/forms/setup.py:22 +msgid "Event Name" +msgstr "活动名称" + +#: CTFd/forms/setup.py:22 +msgid "The name of your CTF event/workshop" +msgstr "您的CTF活动/研讨会名称" + +#: CTFd/forms/setup.py:25 +msgid "Event Description" +msgstr "事件描述" + +#: CTFd/forms/setup.py:25 +msgid "Description for the CTF" +msgstr "CTF说明" + +#: CTFd/forms/setup.py:28 CTFd/forms/setup.py:29 +msgid "User Mode" +msgstr "用户模式" + +#: CTFd/forms/setup.py:29 +msgid "Team Mode" +msgstr "团队模式" + +#: CTFd/forms/setup.py:31 +msgid "Controls whether users join together in teams to play (Team Mode) or play as themselves (User Mode)" +msgstr "控制用户是组队游戏(团队模式)还是自己玩(用户模式)" + +#: CTFd/forms/setup.py:38 +msgid "Admin Username" +msgstr "管理员用户名" + +#: CTFd/forms/setup.py:39 +msgid "Your username for the administration account" +msgstr "管理帐户的用户名" + +#: CTFd/forms/setup.py:43 +msgid "Admin Email" +msgstr "管理员电子邮件" + +#: CTFd/forms/setup.py:44 +msgid "Your email address for the administration account" +msgstr "您的管理帐户电子邮件地址" + +#: CTFd/forms/setup.py:48 +msgid "Admin Password" +msgstr "管理员密码" + +#: CTFd/forms/setup.py:49 +msgid "Your password for the administration account" +msgstr "您的管理帐户密码" + +#: CTFd/forms/setup.py:54 +msgid "Logo" +msgstr "徽标" + +#: CTFd/forms/setup.py:55 +msgid "Logo to use for the website instead of a CTF name. Used as the home page button. Optional." +msgstr "用于网站的标志,而不是CTF名称。用作主页按钮。可选。" + +#: CTFd/forms/setup.py:60 +msgid "Banner" +msgstr "横幅" + +#: CTFd/forms/setup.py:60 +msgid "Banner to use for the homepage. Optional." +msgstr "用于主页的横幅。可选。" + +#: CTFd/forms/setup.py:63 +msgid "Small Icon" +msgstr "小图标" + +#: CTFd/forms/setup.py:64 +msgid "favicon used in user's browsers. Only PNGs accepted. Must be 32x32px. Optional." +msgstr "用户浏览器中使用的图标。仅接受PNG。必须为32x32px。可选。" + +#: CTFd/forms/setup.py:69 +msgid "Theme" +msgstr "主题" + +#: CTFd/forms/setup.py:70 +msgid "CTFd Theme to use. Can be changed later." +msgstr "使用CTFd主题。可稍后更改。" + +#: CTFd/forms/setup.py:76 +msgid "Theme Color" +msgstr "主题颜色" + +#: CTFd/forms/setup.py:77 +msgid "Color used by theme to control aesthetics. Requires theme support. Optional." +msgstr "由主题控制美观的颜色。需要主题支持。可选。" + +#: CTFd/forms/setup.py:83 +msgid "Start Time" +msgstr "开始时间" + +#: CTFd/forms/setup.py:84 +msgid "Time when your CTF is scheduled to start. Optional." +msgstr "CTF计划开始的时间。可选。" + +#: CTFd/forms/setup.py:87 +msgid "End Time" +msgstr "结束时间" + +#: CTFd/forms/setup.py:88 +msgid "Time when your CTF is scheduled to end. Optional." +msgstr "您的CTF计划结束的时间。可选。" + +#: CTFd/forms/setup.py:90 +msgid "Finish" +msgstr "完成" + +#: CTFd/forms/teams.py:76 CTFd/forms/teams.py:83 CTFd/forms/teams.py:100 +#: CTFd/forms/teams.py:202 +msgid "Team Name" +msgstr "团队名称" + +#: CTFd/forms/teams.py:77 CTFd/forms/teams.py:84 +msgid "Team Password" +msgstr "团队密码" + +#: CTFd/forms/teams.py:78 CTFd/forms/teams.py:258 +msgid "Join" +msgstr "加入我们" + +#: CTFd/forms/teams.py:85 +msgid "Create" +msgstr "创建" + +#: CTFd/forms/teams.py:101 +msgid "Your team's public name shown to other competitors" +msgstr "您的团队的公开名称显示给其他竞争对手" + +#: CTFd/forms/teams.py:104 +msgid "New Team Password" +msgstr "新团队密码" + +#: CTFd/forms/teams.py:104 +msgid "Set a new team join password" +msgstr "设置新团队加入密码" + +#: CTFd/forms/teams.py:107 +msgid "Confirm Current Team Password" +msgstr "确认当前团队密码" + +#: CTFd/forms/teams.py:108 +msgid "Provide your current team password (or your password) to update your team's password" +msgstr "提供您当前的团队密码(或您的密码)以更新您团队的密码" + +#: CTFd/forms/teams.py:114 +msgid "Your team's affiliation publicly shown to other competitors" +msgstr "向其他竞争者公开展示您的团队隶属关系" + +#: CTFd/forms/teams.py:120 +msgid "Your team's website publicly shown to other competitors" +msgstr "向其他竞争对手公开展示您的团队网站" + +#: CTFd/forms/teams.py:125 +msgid "Your team's country publicly shown to other competitors" +msgstr "向其他参赛者公开展示您所在的国家" + +#: CTFd/forms/teams.py:165 +msgid "Team Captain" +msgstr "队长" + +#: CTFd/forms/teams.py:188 CTFd/forms/users.py:134 +msgid "Search Field" +msgstr "搜索栏" + +#: CTFd/forms/teams.py:190 CTFd/forms/users.py:136 +#: CTFd/themes/core-beta/templates/challenge.html:183 +msgid "Name" +msgstr "名称" + +#: CTFd/forms/teams.py:197 CTFd/forms/users.py:144 +msgid "Parameter" +msgstr "参数" + +#: CTFd/forms/teams.py:198 CTFd/forms/users.py:148 +msgid "Search" +msgstr "搜索" + +#: CTFd/forms/teams.py:208 +msgid "Hidden" +msgstr "隐藏式" + +#: CTFd/forms/teams.py:209 +msgid "Banned" +msgstr "禁用" + +#: CTFd/forms/teams.py:254 +msgid "Invite Link" +msgstr "邀请链接" + +#: CTFd/forms/users.py:145 +msgid "Search for matching users" +msgstr "搜索匹配用户" + +#: CTFd/themes/core-beta/templates/base.html:49 +msgid "Powered by CTFd" +msgstr "由CTFd提供" + +#: CTFd/themes/core-beta/templates/challenge.html:11 +#: CTFd/themes/core-beta/templates/users/private.html:114 +#: CTFd/themes/core-beta/templates/users/public.html:113 +msgid "Challenge" +msgstr "挑战" + +#: CTFd/themes/core-beta/templates/challenge.html:19 +msgid "%(num)d Solve" +msgid_plural "%(num)d Solves" +msgstr[0] "求解" + +#: CTFd/themes/core-beta/templates/challenge.html:73 +msgid "View Hint" +msgstr "查看提示" + +#: CTFd/themes/core-beta/templates/challenge.html:135 +msgid "Flag" +msgstr "旗帜" + +#: CTFd/themes/core-beta/templates/challenge.html:167 +msgid "Next Challenge" +msgstr "下一个挑战" + +#: CTFd/themes/core-beta/templates/challenge.html:186 +#: CTFd/themes/core-beta/templates/setup.html:237 +#: CTFd/themes/core-beta/templates/setup.html:258 +msgid "Date" +msgstr "日期" + +#: CTFd/themes/core-beta/templates/challenges.html:7 +#: CTFd/themes/core-beta/templates/components/navbar.html:57 +msgid "Challenges" +msgstr "挑战" + +#: CTFd/themes/core-beta/templates/confirm.html:7 +msgid "Confirm" +msgstr "确认" + +#: CTFd/themes/core-beta/templates/confirm.html:18 +msgid "We've sent a confirmation email to your email address." +msgstr "我们已经向您的电子邮箱发送了确认邮件。" + +#: CTFd/themes/core-beta/templates/confirm.html:24 +msgid "Please click the link in that email to confirm your account." +msgstr "请点击电子邮件中的链接确认您的帐户。" + +#: CTFd/themes/core-beta/templates/confirm.html:30 +msgid "If the email doesn’t arrive, check your spam folder or contact an administrator to manually verify your account." +msgstr "如果电子邮件没有到达,请检查您的垃圾邮件文件夹或联系管理员手动验证您的帐户。" + +#: CTFd/themes/core-beta/templates/confirm.html:43 +msgid "Change Email Address" +msgstr "更改电子邮件地址" + +#: CTFd/themes/core-beta/templates/components/navbar.html:178 +#: CTFd/themes/core-beta/templates/login.html:7 +msgid "Login" +msgstr "登录" + +#: CTFd/themes/core-beta/templates/login.html:40 +msgid "Forgot your password?" +msgstr "忘记密码?" + +#: CTFd/themes/core-beta/templates/components/navbar.html:97 +#: CTFd/themes/core-beta/templates/notifications.html:7 +msgid "Notifications" +msgstr "通知" + +#: CTFd/themes/core-beta/templates/notifications.html:14 +msgid "There are no notifications yet" +msgstr "还没有通知" + +#: CTFd/themes/core-beta/templates/components/navbar.html:165 +#: CTFd/themes/core-beta/templates/register.html:7 +msgid "Register" +msgstr "注册" + +#: CTFd/themes/core-beta/templates/register.html:35 +msgid "Your username on the site" +msgstr "您在网站上的用户名" + +#: CTFd/themes/core-beta/templates/register.html:43 +msgid "Never shown to the public" +msgstr "从未向公众展示" + +#: CTFd/themes/core-beta/templates/register.html:51 +msgid "Password used to log into your account" +msgstr "用于登录您账户的密码" + +#: CTFd/themes/core-beta/templates/reset_password.html:7 +msgid "Reset Password" +msgstr "重置密码" + +#: CTFd/themes/core-beta/templates/reset_password.html:21 +msgid "You can now reset the password for your account and log in. Please enter in a new password below." +msgstr "您现在可以重新设置您的帐户密码并登录。请在下面输入新密码。" + +#: CTFd/themes/core-beta/templates/reset_password.html:44 +msgid "Please provide the email address associated with your account below." +msgstr "请在下面提供与您的帐户相关联的电子邮件地址。" + +#: CTFd/themes/core-beta/templates/components/navbar.html:135 +#: CTFd/themes/core-beta/templates/settings.html:8 +msgid "Settings" +msgstr "设置" + +#: CTFd/themes/core-beta/templates/components/navbar.html:123 +#: CTFd/themes/core-beta/templates/settings.html:21 +msgid "Profile" +msgstr "公司简介" + +#: CTFd/themes/core-beta/templates/settings.html:26 +msgid "Access Tokens" +msgstr "访问令牌" + +#: CTFd/themes/core-beta/templates/settings.html:95 +msgid "Your profile has been updated" +msgstr "您的个人资料已更新" + +#: CTFd/themes/core-beta/templates/settings.html:103 +msgid "Error:" +msgstr "错误:" + +#: CTFd/themes/core-beta/templates/settings.html:129 +msgid "API Key Generated" +msgstr "生成的API密钥" + +#: CTFd/themes/core-beta/templates/settings.html:137 +msgid "Please copy your API Key, it won't be shown again!" +msgstr "请复制您的API Key,它将不会再次显示!" + +#: CTFd/themes/core-beta/templates/settings.html:178 +msgid "Active Tokens" +msgstr "活动代币" + +#: CTFd/themes/core-beta/templates/settings.html:190 +msgid "Delete Token" +msgstr "删除令牌" + +#: CTFd/themes/core-beta/templates/settings.html:199 +msgid "Are you sure you want to delete this token?" +msgstr "您确定要删除此令牌吗?" + +#: CTFd/themes/core-beta/templates/settings.html:219 +msgid "Created" +msgstr "创建" + +#: CTFd/themes/core-beta/templates/settings.html:221 +msgid "Delete" +msgstr "删除" + +#: CTFd/themes/core-beta/templates/setup.html:24 +msgid "Setup" +msgstr "设置" + +#: CTFd/themes/core-beta/templates/setup.html:44 +msgid "General" +msgstr "通用" + +#: CTFd/themes/core-beta/templates/setup.html:47 +msgid "Mode" +msgstr "模式" + +#: CTFd/themes/core-beta/templates/setup.html:50 +msgid "Administration" +msgstr "行政部门" + +#: CTFd/themes/core-beta/templates/setup.html:53 +msgid "Style" +msgstr "风格" + +#: CTFd/themes/core-beta/templates/setup.html:56 +msgid "Date & Time" +msgstr "日期和时间" + +#: CTFd/themes/core-beta/templates/setup.html:59 +msgid "Integrations" +msgstr "集成" + +#: CTFd/themes/core-beta/templates/setup.html:108 +msgid "Participants register accounts and form teams" +msgstr "参与者注册账户并组成团队" + +#: CTFd/themes/core-beta/templates/setup.html:109 +msgid "If a team member solves a challenge, the entire team receives credit" +msgstr "如果一个团队成员解决了一个挑战,整个团队将获得奖励" + +#: CTFd/themes/core-beta/templates/setup.html:111 +msgid "Easier to see which team member solved a challenge" +msgstr "更容易看到哪个团队成员解决了难题" + +#: CTFd/themes/core-beta/templates/setup.html:112 +msgid "May be slightly more difficult to administer" +msgstr "可能稍难管理" + +#: CTFd/themes/core-beta/templates/setup.html:116 +msgid "Participants only register an individual account" +msgstr "参与者只能注册一个个人账户" + +#: CTFd/themes/core-beta/templates/setup.html:117 +msgid "Players can share accounts to form pseudo-teams" +msgstr "玩家可以共享账号组成伪团队" + +#: CTFd/themes/core-beta/templates/setup.html:119 +msgid "Easier to organize" +msgstr "更易于组织" + +#: CTFd/themes/core-beta/templates/setup.html:120 +msgid "Difficult to attribute solutions to individual team members" +msgstr "难以将解决方案归功于团队成员个人" + +#: CTFd/themes/core-beta/templates/setup.html:164 +msgid "Subscribe email address to the CTFd LLC Newsletter for news and updates" +msgstr "订阅CTFd LLC新闻简报和更新的电子邮件地址" + +#: CTFd/themes/core-beta/templates/setup.html:241 +#: CTFd/themes/core-beta/templates/setup.html:262 +#: CTFd/themes/core-beta/templates/users/private.html:117 +#: CTFd/themes/core-beta/templates/users/public.html:116 +msgid "Time" +msgstr "时间" + +#: CTFd/themes/core-beta/templates/setup.html:266 +msgid "UTC Preview" +msgstr "UTC预览" + +#: CTFd/themes/core-beta/templates/components/navbar.html:34 +#: CTFd/themes/core-beta/templates/users/users.html:6 +msgid "Users" +msgstr "用户" + +#: CTFd/themes/core-beta/templates/components/navbar.html:41 +#: CTFd/themes/core-beta/templates/teams/teams.html:6 +msgid "Teams" +msgstr "团队" + +#: CTFd/themes/core-beta/templates/components/navbar.html:50 +msgid "Scoreboard" +msgstr "记分牌" + +#: CTFd/themes/core-beta/templates/components/navbar.html:80 +msgid "Admin Panel" +msgstr "管理面板" + +#: CTFd/themes/core-beta/templates/components/navbar.html:110 +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:6 +#: CTFd/themes/core-beta/templates/teams/teams.html:49 +msgid "Team" +msgstr "团队" + +#: CTFd/themes/core-beta/templates/components/navbar.html:147 +msgid "Logout" +msgstr "注销" + +#: CTFd/themes/core-beta/templates/errors/403.html:9 +msgid "Forbidden" +msgstr "禁用" + +#: CTFd/themes/core-beta/templates/errors/404.html:11 +msgid "File not found" +msgstr "未找到文件" + +#: CTFd/themes/core-beta/templates/errors/404.html:12 +msgid "Sorry about that" +msgstr "对不起" + +#: CTFd/themes/core-beta/templates/errors/429.html:11 +msgid "Too many requests" +msgstr "要求过多" + +#: CTFd/themes/core-beta/templates/errors/429.html:12 +msgid "Please slow down!" +msgstr "请慢行!" + +#: CTFd/themes/core-beta/templates/errors/502.html:11 +msgid "Bad Gateway" +msgstr "不良网关" + +#: CTFd/themes/core-beta/templates/macros/forms.html:13 +#: CTFd/themes/core-beta/templates/macros/forms.html:36 +msgid "(Optional)" +msgstr "可选" + +#: CTFd/themes/core-beta/templates/teams/invite.html:6 +#: CTFd/themes/core-beta/templates/teams/join_team.html:6 +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:36 +msgid "Join Team" +msgstr "加入团队" + +#: CTFd/themes/core-beta/templates/teams/invite.html:15 +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:12 +msgid "Welcome to" +msgstr "欢迎光临" + +#: CTFd/themes/core-beta/templates/teams/invite.html:19 +msgid "Click the button below to join the team!" +msgstr "点击下面的按钮加入我们的团队!" + +#: CTFd/themes/core-beta/templates/teams/new_team.html:6 +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:39 +msgid "Create Team" +msgstr "创建团队" + +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:14 +msgid "In order to participate you must either join or create a team." +msgstr "要参加比赛,您必须加入或创建一个团队。" + +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:22 +msgid "Play with Official Team" +msgstr "与官方团队一起游戏" + +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:27 +msgid "Join Unofficial Team" +msgstr "加入非官方团队" + +#: CTFd/themes/core-beta/templates/teams/team_enrollment.html:30 +msgid "Create Unofficial Team" +msgstr "创建非官方团队" + +#: CTFd/themes/core-beta/templates/teams/teams.html:124 +#: CTFd/themes/core-beta/templates/users/users.html:114 +msgid "Page" +msgstr "页码" + +#: CTFd/themes/core-beta/templates/users/private.html:21 +#: CTFd/themes/core-beta/templates/users/public.html:21 +#: CTFd/themes/core-beta/templates/users/users.html:66 +msgid "Official" +msgstr "官方" + +#: CTFd/themes/core-beta/templates/users/private.html:88 +#: CTFd/themes/core-beta/templates/users/public.html:88 +msgid "Awards" +msgstr "获奖情况" + +#: CTFd/themes/core-beta/templates/users/private.html:110 +msgid "Solves" +msgstr "解决方案" + +#: CTFd/themes/core-beta/templates/users/private.html:115 +#: CTFd/themes/core-beta/templates/users/public.html:114 +msgid "Category" +msgstr "类别" + +#: CTFd/themes/core-beta/templates/users/private.html:116 +#: CTFd/themes/core-beta/templates/users/public.html:115 +msgid "Value" +msgstr "价值" + +#: CTFd/themes/core-beta/templates/users/private.html:203 +#: CTFd/themes/core-beta/templates/users/public.html:204 +msgid "No solves yet" +msgstr "尚无解决方案" + +#: CTFd/themes/core-beta/templates/users/users.html:46 +msgid "User" +msgstr "用户" + +#: CTFd/utils/modes/__init__.py:35 +msgid "user" +msgid_plural "users" +msgstr[0] "用户" + +#: CTFd/utils/modes/__init__.py:37 +msgid "team" +msgid_plural "teams" +msgstr[0] "团队" + diff --git a/Makefile b/Makefile index a3466525..bfe31dd2 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ shell: python manage.py shell translations-init: - pybabel init -i messages.pot -d CTFd/translations -l de + pybabel init -i messages.pot -d CTFd/translations -l $(lang) translations-extract: pybabel extract -F babel.cfg -k lazy_gettext -k _l -o messages.pot .