diff --git a/i18n/de.po b/i18n/de.po index 38b33fa..39422b1 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -107,14 +107,49 @@ msgstr "Konnte ein Pixel setzen" msgid "Error ${ retCode }" msgstr "Fehler ${ retCode }" +#: src/actions/index.js:599 src/components/SettingsButton.jsx:20 +msgid "Settings" +msgstr "Einstellungen" + +#: src/actions/index.js:606 src/components/LogInButton.jsx:20 +msgid "User Area" +msgstr "Spielerbereich" + +#: src/actions/index.js:613 +msgid "Register New Account" +msgstr "Registriere neues Konto" + +#: src/actions/index.js:620 +msgid "Restore my Password" +msgstr "Passwort wiederherstellen" + +#: src/actions/index.js:627 +msgid "Welcome to PixelPlanet.fun" +msgstr "Willkommen auf PixelPlanet.fun" + +#: src/actions/index.js:633 +msgid "Canvas Archive" +msgstr "Leinwand Archiv" + +#: src/actions/index.js:640 src/components/CanvasSwitchButton.jsx:20 +msgid "Canvas Selection" +msgstr "Leinwand auswahl" + +#: src/actions/index.js:827 +msgid "Chat" +msgstr "Unterhaltung" + #: src/components/Converter.jsx:609 src/components/CoordinatesBox.jsx:26 msgid "Copy to Clipboard" msgstr "Kopiere in die Zwischenablage" -#: src/components/CanvasSelectModal.jsx:67 -#: src/components/CanvasSwitchButton.jsx:20 -msgid "Canvas Selection" -msgstr "Leinwand auswahl" +#: src/components/ChatButton.jsx:90 +msgid "Close Chat" +msgstr "Schließe Chat" + +#: src/components/ChatButton.jsx:90 +msgid "Open Chat" +msgstr "Öffne Chat" #: src/components/OnlineBox.jsx:22 msgid "User online" @@ -124,14 +159,6 @@ msgstr "Spieler anwesend" msgid "Pixels placed" msgstr "Pixels gesetzt" -#: src/components/ChatButton.jsx:61 -msgid "Close Chat" -msgstr "Schließe Chat" - -#: src/components/ChatButton.jsx:61 -msgid "Open Chat" -msgstr "Öffne Chat" - #: src/components/ExpandMenuButton.jsx:19 msgid "Close Menu" msgstr "Schließe Menü" @@ -140,11 +167,15 @@ msgstr "Schließe Menü" msgid "Open Menu" msgstr "Öffne Menü" -#: src/components/Admintools.jsx:219 src/components/ChannelContextMenu.jsx:85 -#: src/components/ModalRoot.jsx:88 +#: src/components/Admintools.jsx:219 src/components/ChannelContextMenu.jsx:82 +#: src/components/ModalRoot.jsx:69 src/components/Window.jsx:126 msgid "Close" msgstr "Schließen" +#: src/components/ModalRoot.jsx:78 +msgid "Restore" +msgstr "Wiederherstellen" + #: src/actions/fetch.js:38 msgid "You made too many requests" msgstr "Zu viele Anfragen gesendet" @@ -176,38 +207,10 @@ msgstr "Server antwortete mit wirrwarr :(" msgid "Help" msgstr "Hilfe" -#: src/components/LogInButton.jsx:20 src/components/UserAreaModal.jsx:160 -msgid "User Area" -msgstr "Spielerbereich" - #: src/components/DownloadButton.jsx:37 msgid "Make Screenshot" msgstr "Erstelle eine Bildschirmaufnahme" -#: src/components/SettingsButton.jsx:20 src/components/SettingsModal.jsx:278 -msgid "Settings" -msgstr "Einstellungen" - -#: src/components/Chat.jsx:143 -msgid "Channel settings" -msgstr "Kanal Einstellungen" - -#: src/components/Chat.jsx:152 -msgid "maximize" -msgstr "maximieren" - -#: src/components/Chat.jsx:168 -msgid "Start chatting here" -msgstr "Beginne hier zu unterhalten" - -#: src/components/Chat.jsx:200 -msgid "Chat here" -msgstr "Chatte hier" - -#: src/components/Chat.jsx:220 -msgid "You must be logged in to chat" -msgstr "Melde dich an um dich zu unterhalten" - #: src/components/GlobeButton.jsx:31 msgid "Globe View" msgstr "Globus Ansicht" @@ -220,452 +223,37 @@ msgstr "Schließe Palette" msgid "Open Palette" msgstr "Öffne Palette" -#: src/components/UserContextMenu.jsx:72 +#: src/components/UserContextMenu.jsx:64 msgid "Ping" msgstr "Erwähnen" -#: src/components/UserContextMenu.jsx:97 +#: src/components/UserContextMenu.jsx:89 msgid "DM" msgstr "DM" -#: src/components/UserContextMenu.jsx:107 +#: src/components/UserContextMenu.jsx:99 msgid "Block" msgstr "Blocke" -#: src/components/ChannelContextMenu.jsx:73 +#: src/components/ChannelContextMenu.jsx:70 msgid "Mute" msgstr "Stummschalten" -#: src/components/SettingsModal.jsx:125 -msgid "Show Grid" -msgstr "Zeige Raster" +#: src/components/Window.jsx:105 +msgid "Clone" +msgstr "Klonen" -#: src/components/SettingsModal.jsx:126 -msgid "Turn on grid to highlight pixel borders." -msgstr "Aktiviere das Raster um Pixelgrenzen zu sehen." +#: src/components/Window.jsx:112 +msgid "Move" +msgstr "Verschieben" -#: src/components/SettingsModal.jsx:132 -msgid "Show Pixel Activity" -msgstr "Zeige Pixelaktivität" +#: src/components/Window.jsx:119 +msgid "Maximize" +msgstr "Maximieren" -#: src/components/SettingsModal.jsx:133 -msgid "Show circles where pixels are placed." -msgstr "Zeige Kreise wo Pixel von Spielern gesetzt werden." - -#: src/components/SettingsModal.jsx:139 -msgid "Disable Game Sounds" -msgstr "Deaktiviere Spiel Ton" - -#: src/components/SettingsModal.jsx:141 -msgid "All sound effects will be disabled." -msgstr "Alle Toneffekte werden ausgeschaltet." - -#: src/components/SettingsModal.jsx:147 -msgid "Enable chat notifications" -msgstr "Aktiviere Chat Benachrichtigungen" - -#: src/components/SettingsModal.jsx:148 -msgid "Play a sound when new chat messages arrive" -msgstr "Spiele ein Geräusch wenn eine neue Chat Nachricht eintrifft" - -#: src/components/SettingsModal.jsx:153 -msgid "Auto Zoom In" -msgstr "Automaticher Zoom" - -#: src/components/SettingsModal.jsx:155 -msgid "" -"Zoom in instead of placing a pixel when you tap the canvas and your zoom is " -"small." -msgstr "" -"Zoome rein anstatt ein Pixel zu setzen wenn auf kleineren Zoomlevel geklickt " -"wird." - -#: src/components/SettingsModal.jsx:160 -msgid "Compact Palette" -msgstr "Kompakte Palette" - -#: src/components/SettingsModal.jsx:162 -msgid "Display Palette in a compact form that takes less screen space." -msgstr "" -"Zeige die Palette in einer kleineren Form an, welche weniger Platz benötigt." - -#: src/components/SettingsModal.jsx:167 -msgid "Potato Mode" -msgstr "Erdapfel Modus" - -#: src/components/SettingsModal.jsx:168 -msgid "For when you are playing on a potato." -msgstr "Wenn du auf einer Kartoffel spielst." - -#: src/components/Converter.jsx:423 src/components/SettingsModal.jsx:173 -msgid "Light Grid" -msgstr "Helles Raster" - -#: src/components/SettingsModal.jsx:174 -msgid "Show Grid in white instead of black." -msgstr "Zeige das Raster in weiß anstatt schwarz." - -#: src/components/SettingsModal.jsx:180 -msgid "Historical View" -msgstr "Historische Ansicht" - -#: src/components/SettingsModal.jsx:181 -msgid "Check out past versions of the canvas." -msgstr "Siehe vergangene Versionen der Leinwand." - -#: src/components/SettingsModal.jsx:189 -msgid "Themes" -msgstr "Themen" - -#: src/components/SettingsModal.jsx:190 -msgid "How pixelplanet should look like." -msgstr "Wähle aus wie pixelplanet aussehen soll." - -#: src/components/SettingsModal.jsx:200 -msgid "Select Language" -msgstr "Sprache Auswählen" - -#: src/components/HelpModal.jsx:35 -msgid "your IP" -msgstr "deiner IP" - -#: src/components/HelpModal.jsx:41 -msgid "Place color pixels on a large canvas with other players online!" -msgstr "" -"Zeichne gemeinsam mit anderen Spielern auf einer großen Leinwand online!" - -#: src/components/HelpModal.jsx:42 -msgid "" -"Our main canvas is a huge worldmap, you can place wherever you like, but you " -"will have to wait a specific Cooldown between pixels. You can check out the " -"cooldown and requirements on the Canvas Selection menu (globe button on " -"top). Some canvases have a different cooldown for replacing a user-set " -"pixels than placing on a unset pixel. i.e. 4s/7s means 4s on fresh pixels " -"and 7s on already set pixels." -msgstr "" -"Unsere standard Leinwand ist eine große Weltkarte. Pixel können überall " -"gesetzen werden, aber es kann nur eine begrenzte Anzahl and Pixels per Zeit " -"platziert werden. Die Vorraussetzungen und die Wartezeit sind im Auswahlmenu " -"zu sehen (Globus Taste am oberen Bildschirmrand). Manche Leinwände haben " -"eine niedrigere Wartezeit für ungesetzte Pixel im Vergleich zu von anderen " -"Spielern gesetzte Pixel. z.B. 4s/7s heißt dass man 4s für jedes neue Pixel " -"warten muss, allerdings 7s wenn man über ein Pixel eines anderen Spielers " -"setzt." - -#: src/components/HelpModal.jsx:46 -msgid "" -"Higher zoomlevels take some time to update, the 3D globe gets updated at " -"least once per day." -msgstr "" -"Die höheren Zoomlevel brauchen etwas Zeit um aktualisiert zu werden, der 3D " -"Globus wird mindestens einmal pro tag neu geladen." - -#: src/components/HelpModal.jsx:47 -msgid "Have fun!" -msgstr "Viel Spaß!" - -#: src/components/HelpModal.jsx:49 -msgid "recommended" -msgstr "empfohlen" - -#: src/components/HelpModal.jsx:50 -msgid "Source on " -msgstr "Quelltext auf " - -#: src/components/HelpModal.jsx:51 -msgid "Map Data" -msgstr "Karten Dateien" - -#: src/components/HelpModal.jsx:52 -msgid "" -"The bare map data that we use, together with converted OpenStreetMap tiles " -"for orientation, can be downloaded from mega.nz here: " -msgstr "" -"Die Kartendaten welche wir benutzen, zusammen mit konvertierten " -"OpenStreetMap Kacheln zur orientierung können auf mega.nz heruntergeladen " -"werden: " - -#: src/components/HelpModal.jsx:54 -msgid "Detected as Proxy?" -msgstr "Als Proxy erkannt?" - -#: src/components/HelpModal.jsx:56 -#, javascript-format -msgid "" -"If you got detected as proxy, but you are none, please go to our " -"${ guildedLink } or send us an e-mail with ${ getIPLink } to ${ mailLink }. " -"Do not post your IP anywhere else. We are sorry for the inconvenience." -msgstr "" -"Solltest do als Proxy erkannt sein, aber du benutzt keines, bitte " -"kontaktiere uns auf ${ guildedLink } oder sende uns eine Mail mit " -"${ getIPLink } auf ${ mailLink }. Sende deine IP zu niemanden sonst. Wir " -"entschuldigen uns für die Unannehmlichkeiten." - -#: src/components/HelpModal.jsx:58 src/components/HelpModal.jsx:75 -msgid "Controls" -msgstr "Steuerung" - -#: src/components/HelpModal.jsx:60 -msgid "Click a color in palette to select it" -msgstr "Klicke auf eine Farbe in der Palette um sie auszuwählen" - -#: src/components/HelpModal.jsx:61 -#, javascript-format -msgid "Press ${ bindG } to toggle grid" -msgstr "Drücke ${ bindG } um das Raster ein- und auszuschalten" - -#: src/components/HelpModal.jsx:62 -msgid "Press ${ bindX } to toggle showing of pixel activity" -msgstr "Drücke ${ bindX } um Pixel Aktivität anzuzeigen" - -#: src/components/HelpModal.jsx:63 -#, javascript-format -msgid "Press ${ bindH } to toggle historical view" -msgstr "Drücke ${ bindH } um zur historischen Ansicht zu wechseln" - -#: src/components/HelpModal.jsx:64 -msgid "Press ${ bindR } to copy coordinates" -msgstr "Drücke ${ bindR } um aktuelle Koordinaten zu kopieren" - -#: src/components/HelpModal.jsx:65 -#, javascript-format -msgid "Press ${ bindQ } or ${ bindE } to zoom" -msgstr "Drücke ${ bindQ } oder ${ bindE } um zu zoomen" - -#: src/components/HelpModal.jsx:66 src/components/HelpModal.jsx:77 -#, javascript-format -msgid "Press ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } to move" -msgstr "Drücke ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } zum navigieren" - -#: src/components/HelpModal.jsx:67 src/components/HelpModal.jsx:78 -#, javascript-format -msgid "" -"Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move" -msgstr "" -"Drücke ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } zum " -"navigieren" - -#: src/components/HelpModal.jsx:68 -msgid "Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move" -msgstr "" -"Ziehe mit der ${ mouseSymbol } Maus oder ${ touchSymbol } wische zum " -"navigieren" - -#: src/components/HelpModal.jsx:69 -#, javascript-format -msgid "Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom" -msgstr "" -"Scrolle ${ mouseSymbol } mit them Mausrad oder ${ touchSymbol } benutze Zwei-" -"Finger-Zoom um zu zoomen" - -#: src/components/HelpModal.jsx:70 -msgid "Hold left ${ bindShift } for placing while moving mouse" -msgstr "" -"Halte die linke ${ bindShift } Taste gedrückt um Pixel unter der Maus zu " -"setzen" - -#: src/components/HelpModal.jsx:71 -#, javascript-format -msgid "" -"Hold right ${ bindShift } for placing while moving mouse according to " -"historical view" -msgstr "" -"Halte die rechte ${ bindShift } Taste gedrückt um Pixel unter der Maus nach " -"der aktuellen historischen Ansicht zu setzen" - -#: src/components/HelpModal.jsx:72 src/components/HelpModal.jsx:83 -#, javascript-format -msgid "${ mouseSymbol } Left click or ${ touchSymbol } tap to place a pixel" -msgstr "" -"${ mouseSymbol } Linksklick oder ${ touchSymbol } tippe um ein Pixel zu " -"platzieren" - -#: src/components/HelpModal.jsx:73 src/components/HelpModal.jsx:85 -msgid "" -"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to " -"select current hovering color" -msgstr "" -"Klicke ${ mouseSymbol } die mittlere Maustaste oder ${ touchSymbol } tippe " -"lange um eine Farbe von der Leinwand auszuwählen" - -#: src/components/HelpModal.jsx:79 -msgid "Press ${ bindE } and ${ bindC } to fly up and down" -msgstr "Drücke ${ bindE } oder ${ bindC } um hoch und runter zu fliegen" - -#: src/components/HelpModal.jsx:80 -#, javascript-format -msgid "${ mouseSymbol } Hold left mouse button and drag mouse to rotate" -msgstr "" -"${ mouseSymbol } Halte die linke Maustaste gedrückt und ziehe um zu rotieren" - -#: src/components/HelpModal.jsx:81 -#, javascript-format -msgid "" -"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse " -"button and drag to zoom" -msgstr "" -"${ mouseSymbol } Scrolle mit dem Mausrad oder halte ${ mouseSymbol } die " -"mittlere Maustaste gedrückt und ziehe um zu zoomen" - -#: src/components/HelpModal.jsx:82 -msgid "${ mouseSymbol } Right click and drag mouse to pan" -msgstr "" -"${ mouseSymbol } Halte die rechte Maustaste gedrückt und ziehe um dich zu " -"bewegen" - -#: src/components/HelpModal.jsx:84 -#, javascript-format -msgid "" -"${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a pixel" -msgstr "" -"${ mouseSymbol } Rechtsklick oder ${ touchSymbol } tippe zweimal um ein " -"Voxel zu entfernen" - -#: src/components/HelpModal.jsx:87 -msgid "Partners:" -msgstr "Partner:" - -#: src/components/HelpModal.jsx:94 -msgid "Welcome to PixelPlanet.fun" -msgstr "Willkommen auf PixelPlanet.fun" - -#: src/components/UserAreaModal.jsx:33 -msgid "Login to access more features and stats." -msgstr "Melde dich and um mehr Funktionen und Statistikan zu sehen." - -#: src/components/UserAreaModal.jsx:35 -msgid "Login with Name or Mail:" -msgstr "Mit Name oder Mail anmelden:" - -#: src/components/UserAreaModal.jsx:42 -msgid "I forgot my Password." -msgstr "Ich habe mein Passwort vergessen." - -#: src/components/UserAreaModal.jsx:43 -msgid "or login with:" -msgstr "oder melde dich an mit:" - -#: src/components/UserAreaModal.jsx:84 -msgid "or register here:" -msgstr "oder registriere dich hier:" - -#: src/components/UserAreaModal.jsx:85 -msgid "Register" -msgstr "Registrieren" - -#: src/components/UserAreaModal.jsx:107 -msgid "Profile" -msgstr "Profil" - -#: src/components/UserAreaModal.jsx:113 -msgid "Ranking" -msgstr "Rangliste" - -#: src/components/UserAreaModal.jsx:116 -msgid "Converter" -msgstr "Konverter" - -#: src/components/UserAreaModal.jsx:122 -msgid "Admintools" -msgstr "Admin Werkzeuge" - -#: src/components/UserAreaModal.jsx:122 -msgid "Modtools" -msgstr "Mod Werkzeuge" - -#: src/components/UserAreaModal.jsx:123 -msgid "Loading..." -msgstr "Lade..." - -#: src/components/ForgotPasswordModal.jsx:20 -#: src/components/RegisterModal.jsx:21 src/components/UserAreaModal.jsx:130 -msgid "Consider joining us on Guilded:" -msgstr "Triff uns und andere Spieler auf guilded:" - -#: src/components/RegisterModal.jsx:18 -msgid "Register new account here" -msgstr "Registriere ein neues Konto hier" - -#: src/components/RegisterModal.jsx:38 -msgid "Register New Account" -msgstr "Registriere neues Konto" - -#: src/components/CanvasSelectModal.jsx:29 -msgid "" -"Select the canvas you want to use. Every canvas is unique and has different " -"palettes, cooldown and requirements. Archive of closed canvases can be " -"accessed here:" -msgstr "" -"Wähle die Leinwand aus welche du benutzen willst. Jede Leinwand ist " -"einzigartig und hat unterschiedliche Parletten, Abklingzeiten und " -"Vorraussetzungen. Archiv von vergangenen Leinwänden kann hier gesehen werden:" - -#: src/components/CanvasSelectModal.jsx:37 -msgid "Archive" -msgstr "Archiv" - -#: src/components/ArchiveModal.jsx:20 -msgid "" -"While we tend to not delete canvases, some canvases are started for fun or " -"as a request by users who currently like a meme. Those canvases can get " -"boring after a while and after weeks of no major change and if they really " -"aren't worth being kept active, we decide to remove them." -msgstr "" -"Wir versuchen so wenig wie möglich Leinwände zu entfernen. Manche werden " -"allerding aus Spaß gestarted oder von Spielern angefragt oder sind nur " -"Memes. Diese Leinwände können nach einiger Zeit langweilig werden und nach " -"Wochen ohne erwähnenswerte Aktivität und falls sie es wirklich nicht wert " -"sind, behalten zu werden, entscheiden wir uns side zu entfernen." - -#: src/components/ArchiveModal.jsx:22 -msgid "" -"Here we collect those canvases to archive them in a proper way (which is " -"currently just one)." -msgstr "" -"Hier sammeln wir vergangene Leinwände um sie ordentlich zu archivieren (zur " -"Zeit nur eine)." - -#: src/components/ArchiveModal.jsx:24 -msgid "Political Compass Canvas" -msgstr "Politischer Kompass Leinwand" - -#: src/components/ArchiveModal.jsx:31 -msgid "" -"This canvas got requested during a time of political conflicts on the main " -"Earth canvas. It was a 1024x1024 representation of the political compass " -"with a 5s cooldown and 60s stacking. It got launched on May 11th and " -"remained active for months till it got shut down on November 30th." -msgstr "" -"Diese Leinwand wurde zu Zeiten politscher Konlikte auf der Erd-Leinwand " -"gestarted. Es war eine 1024x1024 Abbildung des politischen Kompass mit 5s " -"Abklingzeit und 60s gesamter Wartezeit. Es wurde am 11. Mai 2020 gestartet " -"und war für Monate aktiv bis es am 30. November geschlossen wurde." - -#: src/components/ArchiveModal.jsx:32 -msgid "" -"We decided to archive it as a timelapse with lossless encoded webm. Taking a " -"screenshot from the timelapse results in a perfect 1:1 representation of how " -"the canvas was at that time." -msgstr "" -"Wir haben uns entschieden sie in der Form eines Zeitraffers in verlustfrei " -"kodiertes webm zu archivieren. Eine Bildschirmaufnahme aus dem Video ergibt " -"eine perfekte 1:1 Abbildung der Leinwand zu dieser Zeit." - -#: src/components/ArchiveModal.jsx:50 -msgid "Canvas Archive" -msgstr "Leinwand Archiv" - -#: src/components/ForgotPasswordModal.jsx:16 -msgid "Enter your mail address and we will send you a new password:" -msgstr "Gib deine Mail Adresse an und wir senden dir ein neues Passwort:" - -#: src/components/ForgotPasswordModal.jsx:37 -msgid "Restore my Password" -msgstr "Passwort wiederherstellen" - -#: src/components/ChatModal.jsx:35 -msgid "Chat" -msgstr "Unterhaltung" +#: src/components/Window.jsx:133 +msgid "Resize" +msgstr "Größe ändern" #: src/components/Captcha.jsx:41 src/components/ChangeMail.jsx:88 #: src/components/ChangeName.jsx:67 src/components/ChangePassword.jsx:73 @@ -711,23 +299,433 @@ msgstr "Abbrechen" msgid "Send" msgstr "Senden" -#: src/components/ChangeMail.jsx:107 src/components/ChangeName.jsx:77 -#: src/components/ChangePassword.jsx:103 src/components/LanguageSelect.jsx:73 -msgid "Save" -msgstr "Speichern" +#: src/components/windows/Help.jsx:35 +msgid "your IP" +msgstr "deiner IP" -#: src/components/LogInForm.jsx:89 -msgid "Name or Email" -msgstr "Name oder Email" +#: src/components/windows/Help.jsx:41 +msgid "Place color pixels on a large canvas with other players online!" +msgstr "" +"Zeichne gemeinsam mit anderen Spielern auf einer großen Leinwand online!" -#: src/components/ChangeMail.jsx:96 src/components/DeleteAccount.jsx:74 -#: src/components/LogInForm.jsx:96 src/components/SignUpForm.jsx:125 -msgid "Password" -msgstr "Passwort" +#: src/components/windows/Help.jsx:42 +msgid "" +"Our main canvas is a huge worldmap, you can place wherever you like, but you " +"will have to wait a specific Cooldown between pixels. You can check out the " +"cooldown and requirements on the Canvas Selection menu (globe button on " +"top). Some canvases have a different cooldown for replacing a user-set " +"pixels than placing on a unset pixel. i.e. 4s/7s means 4s on fresh pixels " +"and 7s on already set pixels." +msgstr "" +"Unsere Standardleinwand ist eine große Weltkarte. Pixel können überall " +"gesetzen werden, aber es kann nur eine begrenzte Anzahl and Pixels per Zeit " +"platziert werden. Die Vorraussetzungen und die Wartezeit sind im Auswahlmenu " +"zu sehen (Globus Taste am oberen Bildschirmrand). Manche Leinwände haben " +"eine niedrigere Wartezeit für ungesetzte Pixel im Vergleich zu von anderen " +"Spielern gesetzte Pixel. z.B. 4s/7s heißt dass man 4s für jedes neue Pixel " +"warten muss, allerdings 7s wenn man über ein Pixel eines anderen Spielers " +"setzt." -#: src/components/LogInForm.jsx:100 -msgid "LogIn" -msgstr "Einloggen" +#: src/components/windows/Help.jsx:46 +msgid "" +"Higher zoomlevels take some time to update, the 3D globe gets updated at " +"least once per day." +msgstr "" +"Die höheren Zoomlevel brauchen etwas Zeit um aktualisiert zu werden, der 3D " +"Globus wird mindestens einmal pro tag neu geladen." + +#: src/components/windows/Help.jsx:47 +msgid "Have fun!" +msgstr "Viel Spaß!" + +#: src/components/windows/Help.jsx:49 +msgid "recommended" +msgstr "empfohlen" + +#: src/components/windows/Help.jsx:50 +msgid "Source on " +msgstr "Quelltext auf " + +#: src/components/windows/Help.jsx:51 +msgid "Map Data" +msgstr "Karten Dateien" + +#: src/components/windows/Help.jsx:52 +msgid "" +"The bare map data that we use, together with converted OpenStreetMap tiles " +"for orientation, can be downloaded from mega.nz here: " +msgstr "" +"Die Kartendaten welche wir benutzen, zusammen mit konvertierten " +"OpenStreetMap Kacheln zur orientierung können auf mega.nz heruntergeladen " +"werden: " + +#: src/components/windows/Help.jsx:54 +msgid "Detected as Proxy?" +msgstr "Als Proxy erkannt?" + +#: src/components/windows/Help.jsx:56 +#, javascript-format +msgid "" +"If you got detected as proxy, but you are none, please go to our " +"${ guildedLink } or send us an e-mail with ${ getIPLink } to ${ mailLink }. " +"Do not post your IP anywhere else. We are sorry for the inconvenience." +msgstr "" +"Solltest do als Proxy erkannt sein, aber du benutzt keines, bitte " +"kontaktiere uns auf ${ guildedLink } oder sende uns eine Mail mit " +"${ getIPLink } auf ${ mailLink }. Sende deine IP zu niemanden sonst. Wir " +"entschuldigen uns für die Unannehmlichkeiten." + +#: src/components/windows/Help.jsx:58 src/components/windows/Help.jsx:75 +msgid "Controls" +msgstr "Steuerung" + +#: src/components/windows/Help.jsx:60 +msgid "Click a color in palette to select it" +msgstr "Klicke auf eine Farbe in der Palette um sie auszuwählen" + +#: src/components/windows/Help.jsx:61 +#, javascript-format +msgid "Press ${ bindG } to toggle grid" +msgstr "Drücke ${ bindG } um das Raster ein- und auszuschalten" + +#: src/components/windows/Help.jsx:62 +msgid "Press ${ bindX } to toggle showing of pixel activity" +msgstr "Drücke ${ bindX } um Pixel Aktivität anzuzeigen" + +#: src/components/windows/Help.jsx:63 +#, javascript-format +msgid "Press ${ bindH } to toggle historical view" +msgstr "Drücke ${ bindH } um zur historischen Ansicht zu wechseln" + +#: src/components/windows/Help.jsx:64 +msgid "Press ${ bindR } to copy coordinates" +msgstr "Drücke ${ bindR } um aktuelle Koordinaten zu kopieren" + +#: src/components/windows/Help.jsx:65 +#, javascript-format +msgid "Press ${ bindQ } or ${ bindE } to zoom" +msgstr "Drücke ${ bindQ } oder ${ bindE } um zu zoomen" + +#: src/components/windows/Help.jsx:66 src/components/windows/Help.jsx:77 +#, javascript-format +msgid "Press ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } to move" +msgstr "Drücke ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } zum navigieren" + +#: src/components/windows/Help.jsx:67 src/components/windows/Help.jsx:78 +#, javascript-format +msgid "" +"Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move" +msgstr "" +"Drücke ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } zum " +"navigieren" + +#: src/components/windows/Help.jsx:68 +msgid "Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move" +msgstr "" +"Ziehe mit der ${ mouseSymbol } Maus oder ${ touchSymbol } wische zum " +"navigieren" + +#: src/components/windows/Help.jsx:69 +#, javascript-format +msgid "Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom" +msgstr "" +"Scrolle ${ mouseSymbol } mit them Mausrad oder ${ touchSymbol } benutze Zwei-" +"Finger-Zoom um zu zoomen" + +#: src/components/windows/Help.jsx:70 +msgid "Hold left ${ bindShift } for placing while moving mouse" +msgstr "" +"Halte die linke ${ bindShift } Taste gedrückt um Pixel unter der Maus zu " +"setzen" + +#: src/components/windows/Help.jsx:71 +#, javascript-format +msgid "" +"Hold right ${ bindShift } for placing while moving mouse according to " +"historical view" +msgstr "" +"Halte die rechte ${ bindShift } Taste gedrückt um Pixel unter der Maus nach " +"der aktuellen historischen Ansicht zu setzen" + +#: src/components/windows/Help.jsx:72 src/components/windows/Help.jsx:83 +#, javascript-format +msgid "${ mouseSymbol } Left click or ${ touchSymbol } tap to place a pixel" +msgstr "" +"${ mouseSymbol } Linksklick oder ${ touchSymbol } tippe um ein Pixel zu " +"platzieren" + +#: src/components/windows/Help.jsx:73 src/components/windows/Help.jsx:85 +msgid "" +"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to " +"select current hovering color" +msgstr "" +"Klicke ${ mouseSymbol } die mittlere Maustaste oder ${ touchSymbol } tippe " +"lange um eine Farbe von der Leinwand auszuwählen" + +#: src/components/windows/Help.jsx:79 +msgid "Press ${ bindE } and ${ bindC } to fly up and down" +msgstr "Drücke ${ bindE } oder ${ bindC } um hoch und runter zu fliegen" + +#: src/components/windows/Help.jsx:80 +#, javascript-format +msgid "${ mouseSymbol } Hold left mouse button and drag mouse to rotate" +msgstr "" +"${ mouseSymbol } Halte die linke Maustaste gedrückt und ziehe um zu rotieren" + +#: src/components/windows/Help.jsx:81 +#, javascript-format +msgid "" +"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse " +"button and drag to zoom" +msgstr "" +"${ mouseSymbol } Scrolle mit dem Mausrad oder halte ${ mouseSymbol } die " +"mittlere Maustaste gedrückt und ziehe um zu zoomen" + +#: src/components/windows/Help.jsx:82 +msgid "${ mouseSymbol } Right click and drag mouse to pan" +msgstr "" +"${ mouseSymbol } Halte die rechte Maustaste gedrückt und ziehe um dich zu " +"bewegen" + +#: src/components/windows/Help.jsx:84 +#, javascript-format +msgid "" +"${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a pixel" +msgstr "" +"${ mouseSymbol } Rechtsklick oder ${ touchSymbol } tippe zweimal um ein " +"Voxel zu entfernen" + +#: src/components/windows/Help.jsx:87 +msgid "Partners:" +msgstr "Partner:" + +#: src/components/windows/UserArea.jsx:33 +msgid "Login to access more features and stats." +msgstr "Melde dich and um mehr Funktionen und Statistikan zu sehen." + +#: src/components/windows/UserArea.jsx:35 +msgid "Login with Name or Mail:" +msgstr "Mit Name oder Mail anmelden:" + +#: src/components/windows/UserArea.jsx:42 +msgid "I forgot my Password." +msgstr "Ich habe mein Passwort vergessen." + +#: src/components/windows/UserArea.jsx:43 +msgid "or login with:" +msgstr "oder melde dich an mit:" + +#: src/components/windows/UserArea.jsx:84 +msgid "or register here:" +msgstr "oder registriere dich hier:" + +#: src/components/windows/UserArea.jsx:85 +msgid "Register" +msgstr "Registrieren" + +#: src/components/windows/UserArea.jsx:107 +msgid "Profile" +msgstr "Profil" + +#: src/components/windows/UserArea.jsx:113 +msgid "Ranking" +msgstr "Rangliste" + +#: src/components/windows/UserArea.jsx:116 +msgid "Converter" +msgstr "Konverter" + +#: src/components/windows/UserArea.jsx:122 +msgid "Admintools" +msgstr "Admin Werkzeuge" + +#: src/components/windows/UserArea.jsx:122 +msgid "Modtools" +msgstr "Mod Werkzeuge" + +#: src/components/windows/UserArea.jsx:123 +msgid "Loading..." +msgstr "Lade..." + +#: src/components/windows/ForgotPassword.jsx:20 +#: src/components/windows/Register.jsx:21 +#: src/components/windows/UserArea.jsx:130 +msgid "Consider joining us on Guilded:" +msgstr "Triff uns und andere Spieler auf guilded:" + +#: src/components/windows/Settings.jsx:125 +msgid "Show Grid" +msgstr "Zeige Raster" + +#: src/components/windows/Settings.jsx:126 +msgid "Turn on grid to highlight pixel borders." +msgstr "Aktiviere das Raster um Pixelgrenzen zu sehen." + +#: src/components/windows/Settings.jsx:132 +msgid "Show Pixel Activity" +msgstr "Zeige Pixelaktivität" + +#: src/components/windows/Settings.jsx:133 +msgid "Show circles where pixels are placed." +msgstr "Zeige Kreise wo Pixel von Spielern gesetzt werden." + +#: src/components/windows/Settings.jsx:139 +msgid "Disable Game Sounds" +msgstr "Deaktiviere Spiel Ton" + +#: src/components/windows/Settings.jsx:141 +msgid "All sound effects will be disabled." +msgstr "Alle Toneffekte werden ausgeschaltet." + +#: src/components/windows/Settings.jsx:147 +msgid "Enable chat notifications" +msgstr "Aktiviere Chat Benachrichtigungen" + +#: src/components/windows/Settings.jsx:148 +msgid "Play a sound when new chat messages arrive" +msgstr "Spiele ein Geräusch wenn eine neue Chat Nachricht eintrifft" + +#: src/components/windows/Settings.jsx:153 +msgid "Auto Zoom In" +msgstr "Automaticher Zoom" + +#: src/components/windows/Settings.jsx:155 +msgid "" +"Zoom in instead of placing a pixel when you tap the canvas and your zoom is " +"small." +msgstr "" +"Zoome rein anstatt ein Pixel zu setzen wenn auf kleineren Zoomlevel geklickt " +"wird." + +#: src/components/windows/Settings.jsx:160 +msgid "Compact Palette" +msgstr "Kompakte Palette" + +#: src/components/windows/Settings.jsx:162 +msgid "Display Palette in a compact form that takes less screen space." +msgstr "" +"Zeige die Palette in einer kleineren Form an, welche weniger Platz benötigt." + +#: src/components/windows/Settings.jsx:167 +msgid "Potato Mode" +msgstr "Erdapfel Modus" + +#: src/components/windows/Settings.jsx:168 +msgid "For when you are playing on a potato." +msgstr "Wenn du auf einer Kartoffel spielst." + +#: src/components/Converter.jsx:423 src/components/windows/Settings.jsx:173 +msgid "Light Grid" +msgstr "Helles Raster" + +#: src/components/windows/Settings.jsx:174 +msgid "Show Grid in white instead of black." +msgstr "Zeige das Raster in weiß anstatt schwarz." + +#: src/components/windows/Settings.jsx:180 +msgid "Historical View" +msgstr "Historische Ansicht" + +#: src/components/windows/Settings.jsx:181 +msgid "Check out past versions of the canvas." +msgstr "Siehe vergangene Versionen der Leinwand." + +#: src/components/windows/Settings.jsx:189 +msgid "Themes" +msgstr "Themen" + +#: src/components/windows/Settings.jsx:190 +msgid "How pixelplanet should look like." +msgstr "Wähle aus wie pixelplanet aussehen soll." + +#: src/components/windows/Settings.jsx:200 +msgid "Select Language" +msgstr "Sprache Auswählen" + +#: src/components/windows/Register.jsx:18 +msgid "Register new account here" +msgstr "Registriere ein neues Konto hier" + +#: src/components/windows/CanvasSelect.jsx:29 +msgid "" +"Select the canvas you want to use. Every canvas is unique and has different " +"palettes, cooldown and requirements. Archive of closed canvases can be " +"accessed here:" +msgstr "" +"Wähle die Leinwand aus welche du benutzen willst. Jede Leinwand ist " +"einzigartig und hat unterschiedliche Parletten, Abklingzeiten und " +"Vorraussetzungen. Archiv von vergangenen Leinwänden kann hier gesehen werden:" + +#: src/components/windows/CanvasSelect.jsx:37 +msgid "Archive" +msgstr "Archiv" + +#: src/components/windows/Archive.jsx:20 +msgid "" +"While we tend to not delete canvases, some canvases are started for fun or " +"as a request by users who currently like a meme. Those canvases can get " +"boring after a while and after weeks of no major change and if they really " +"aren't worth being kept active, we decide to remove them." +msgstr "" +"Wir versuchen so wenig wie möglich Leinwände zu entfernen. Manche werden " +"allerding aus Spaß gestarted oder von Spielern angefragt oder sind nur " +"Memes. Diese Leinwände können nach einiger Zeit langweilig werden und nach " +"Wochen ohne erwähnenswerte Aktivität und falls sie es wirklich nicht wert " +"sind, behalten zu werden, entscheiden wir uns side zu entfernen." + +#: src/components/windows/Archive.jsx:22 +msgid "" +"Here we collect those canvases to archive them in a proper way (which is " +"currently just one)." +msgstr "" +"Hier sammeln wir vergangene Leinwände um sie ordentlich zu archivieren (zur " +"Zeit nur eine)." + +#: src/components/windows/Archive.jsx:24 +msgid "Political Compass Canvas" +msgstr "Politischer Kompass Leinwand" + +#: src/components/windows/Archive.jsx:31 +msgid "" +"This canvas got requested during a time of political conflicts on the main " +"Earth canvas. It was a 1024x1024 representation of the political compass " +"with a 5s cooldown and 60s stacking. It got launched on May 11th and " +"remained active for months till it got shut down on November 30th." +msgstr "" +"Diese Leinwand wurde zu Zeiten politscher Konlikte auf der Erd-Leinwand " +"gestarted. Es war eine 1024x1024 Abbildung des politischen Kompass mit 5s " +"Abklingzeit und 60s gesamter Wartezeit. Es wurde am 11. Mai 2020 gestartet " +"und war für Monate aktiv bis es am 30. November geschlossen wurde." + +#: src/components/windows/Archive.jsx:32 +msgid "" +"We decided to archive it as a timelapse with lossless encoded webm. Taking a " +"screenshot from the timelapse results in a perfect 1:1 representation of how " +"the canvas was at that time." +msgstr "" +"Wir haben uns entschieden sie in der Form eines Zeitraffers in verlustfrei " +"kodiertes webm zu archivieren. Eine Bildschirmaufnahme aus dem Video ergibt " +"eine perfekte 1:1 Abbildung der Leinwand zu dieser Zeit." + +#: src/components/windows/Chat.jsx:137 +msgid "Channel settings" +msgstr "Kanal Einstellungen" + +#: src/components/windows/Chat.jsx:152 +msgid "Start chatting here" +msgstr "Beginne hier zu unterhalten" + +#: src/components/windows/Chat.jsx:189 +msgid "Chat here" +msgstr "Chatte hier" + +#: src/components/windows/Chat.jsx:212 +msgid "You must be logged in to chat" +msgstr "Melde dich an um dich zu unterhalten" + +#: src/components/windows/ForgotPassword.jsx:16 +msgid "Enter your mail address and we will send you a new password:" +msgstr "Gib deine Mail Adresse an und wir senden dir ein neues Passwort:" #: src/components/UserArea.jsx:57 msgid "Todays Placed Pixels" @@ -774,6 +772,19 @@ msgstr "Lösche Konto" msgid "Social Settings" msgstr "Soziale Einstellungen" +#: src/components/LogInForm.jsx:89 +msgid "Name or Email" +msgstr "Name oder Email" + +#: src/components/ChangeMail.jsx:96 src/components/DeleteAccount.jsx:74 +#: src/components/LogInForm.jsx:96 src/components/SignUpForm.jsx:125 +msgid "Password" +msgstr "Passwort" + +#: src/components/LogInForm.jsx:100 +msgid "LogIn" +msgstr "Einloggen" + #: src/components/Rankings.jsx:37 msgid "Total" msgstr "Gesamt" @@ -788,6 +799,11 @@ msgstr "" "Die Rangliste wird alle 5min aktualisiert. Die tägliche Liste wird um " "Mitternacht UTC zurückgestellt." +#: src/components/ChangeMail.jsx:107 src/components/ChangeName.jsx:77 +#: src/components/ChangePassword.jsx:103 src/components/LanguageSelect.jsx:73 +msgid "Save" +msgstr "Speichern" + #: src/components/SignUpForm.jsx:109 msgid "Name" msgstr "Name" @@ -807,6 +823,39 @@ msgstr "Passwort bestätigen" msgid "Submit" msgstr "Absenden" +#: src/components/CanvasItem.jsx:46 +msgid "Cooldown" +msgstr "Abklingzeit" + +#: src/components/CanvasItem.jsx:52 +msgid "Stacking till" +msgstr "Gesamtzeit" + +#: src/components/CanvasItem.jsx:54 +msgid "Ranked" +msgstr "Gewertet" + +#: src/components/CanvasItem.jsx:56 +msgid "Requirements" +msgstr "Vorraussetzungen" + +#: src/components/CanvasItem.jsx:58 +msgid "User Account" +msgstr "Konto" + +#: src/components/CanvasItem.jsx:60 +#, javascript-format +msgid "and ${ canvas.req } Pixels set" +msgstr "und ${ canvas.req } gesetzte Pixel" + +#: src/components/CanvasItem.jsx:64 +msgid "Dimensions" +msgstr "Dimensionen" + +#: src/components/NewPasswordForm.jsx:69 +msgid "Sent you a mail with instructions to reset your password." +msgstr "Sendete eine E-Mail mit Instruktionen um das Passwort zurückzusetzen." + #: src/components/Admintools.jsx:179 msgid "Build image on canvas." msgstr "Zeiche Bild auf Leinwand." @@ -888,39 +937,6 @@ msgstr "Gebe Name des neuen Moderators ein" msgid "User Name" msgstr "Spielerbereich" -#: src/components/CanvasItem.jsx:46 -msgid "Cooldown" -msgstr "Abklingzeit" - -#: src/components/CanvasItem.jsx:52 -msgid "Stacking till" -msgstr "Gesamtzeit" - -#: src/components/CanvasItem.jsx:54 -msgid "Ranked" -msgstr "Gewertet" - -#: src/components/CanvasItem.jsx:56 -msgid "Requirements" -msgstr "Vorraussetzungen" - -#: src/components/CanvasItem.jsx:58 -msgid "User Account" -msgstr "Konto" - -#: src/components/CanvasItem.jsx:60 -#, javascript-format -msgid "and ${ canvas.req } Pixels set" -msgstr "und ${ canvas.req } gesetzte Pixel" - -#: src/components/CanvasItem.jsx:64 -msgid "Dimensions" -msgstr "Dimensionen" - -#: src/components/NewPasswordForm.jsx:69 -msgid "Sent you a mail with instructions to reset your password." -msgstr "Sendete eine E-Mail mit Instruktionen um das Passwort zurückzusetzen." - #: src/components/Converter.jsx:274 msgid "Choose Canvas" msgstr "Wähle Leinwand" @@ -1096,14 +1112,6 @@ msgstr "Neues Passwort" msgid "Confirm New Password" msgstr "Neues Passwort bestätigen" -#: src/components/ChangeName.jsx:73 -msgid "New Username" -msgstr "Neuer Name" - -#: src/components/DeleteAccount.jsx:78 -msgid "Yes, Delete My Account!" -msgstr "Ja, löche mein Konto!" - #: src/components/ChangeMail.jsx:73 msgid "" "Changed Mail successfully. We sent you a verification mail, " @@ -1116,6 +1124,14 @@ msgstr "" msgid "New Mail" msgstr "Neue Mail" +#: src/components/DeleteAccount.jsx:78 +msgid "Yes, Delete My Account!" +msgstr "Ja, löche mein Konto!" + +#: src/components/ChangeName.jsx:73 +msgid "New Username" +msgstr "Neuer Name" + #: src/components/SocialSettings.jsx:39 msgid "Block all Private Messages" msgstr "Blockiere alle Privaten Nachrichten" @@ -1128,71 +1144,71 @@ msgstr "Entblocke Spieler" msgid "You have no users blocked" msgstr "Du hast keinen Spieler geblockt" -#: src/components/HelpModal.jsx:15 src/components/SettingsModal.jsx:127 +#: src/components/windows/Help.jsx:15 src/components/windows/Settings.jsx:127 msgctxt "keybinds" msgid "G" msgstr "G" -#: src/components/HelpModal.jsx:16 src/components/SettingsModal.jsx:134 +#: src/components/windows/Help.jsx:16 src/components/windows/Settings.jsx:134 msgctxt "keybinds" msgid "X" msgstr "X" -#: src/components/SettingsModal.jsx:142 -msgctxt "keybinds" -msgid "M" -msgstr "M" - -#: src/components/HelpModal.jsx:17 src/components/SettingsModal.jsx:183 +#: src/components/windows/Help.jsx:17 src/components/windows/Settings.jsx:183 msgctxt "keybinds" msgid "H" msgstr "H" -#: src/components/HelpModal.jsx:18 +#: src/components/windows/Help.jsx:18 msgctxt "keybinds" msgid "R" msgstr "R" -#: src/components/HelpModal.jsx:19 +#: src/components/windows/Help.jsx:19 msgctxt "keybinds" msgid "Q" msgstr "Q" -#: src/components/HelpModal.jsx:20 +#: src/components/windows/Help.jsx:20 msgctxt "keybinds" msgid "E" msgstr "E" -#: src/components/HelpModal.jsx:21 +#: src/components/windows/Help.jsx:21 msgctxt "keybinds" msgid "W" msgstr "W" -#: src/components/HelpModal.jsx:22 +#: src/components/windows/Help.jsx:22 msgctxt "keybinds" msgid "A" msgstr "A" -#: src/components/HelpModal.jsx:23 +#: src/components/windows/Help.jsx:23 msgctxt "keybinds" msgid "S" msgstr "S" -#: src/components/HelpModal.jsx:24 +#: src/components/windows/Help.jsx:24 msgctxt "keybinds" msgid "D" msgstr "D" -#: src/components/HelpModal.jsx:31 +#: src/components/windows/Help.jsx:31 msgctxt "keybinds" msgid "Shift" msgstr "Shift" -#: src/components/HelpModal.jsx:32 +#: src/components/windows/Help.jsx:32 msgctxt "keybinds" msgid "C" msgstr "C" +#: src/components/windows/Settings.jsx:142 +msgctxt "keybinds" +msgid "M" +msgstr "M" + #~ msgid "Privacy Policy" #~ msgstr "Datenschutzerklärung" diff --git a/i18n/template-ssr.pot b/i18n/template-ssr.pot index 41ed742..3957165 100644 --- a/i18n/template-ssr.pot +++ b/i18n/template-ssr.pot @@ -290,6 +290,21 @@ msgstr "" msgid "Server error occured" msgstr "" +#: src/routes/api/auth/verify.js:25 +#: src/routes/api/auth/verify.js:32 +msgid "Mail verification" +msgstr "" + +#: src/routes/api/auth/verify.js:26 +msgid "You are now verified :)" +msgstr "" + +#: src/routes/api/auth/verify.js:32 +msgid "" +"Your mail verification code is invalid or already expired :(, please " +"request a new one." +msgstr "" + #: src/routes/api/auth/register.js:31 msgid "E-Mail already in use." msgstr "" @@ -306,21 +321,6 @@ msgstr "" msgid "Failed to establish session after register :(" msgstr "" -#: src/routes/api/auth/verify.js:25 -#: src/routes/api/auth/verify.js:32 -msgid "Mail verification" -msgstr "" - -#: src/routes/api/auth/verify.js:26 -msgid "You are now verified :)" -msgstr "" - -#: src/routes/api/auth/verify.js:32 -msgid "" -"Your mail verification code is invalid or already expired :(, please " -"request a new one." -msgstr "" - #: src/routes/api/auth/logout.js:13 msgid "You are not even logged in." msgstr "" diff --git a/i18n/template.pot b/i18n/template.pot index 4f097e5..b66f351 100644 --- a/i18n/template.pot +++ b/i18n/template.pot @@ -101,16 +101,54 @@ msgstr "" msgid "Error ${ retCode }" msgstr "" -#: src/components/CanvasSelectModal.jsx:67 +#: src/actions/index.js:599 +#: src/components/SettingsButton.jsx:20 +msgid "Settings" +msgstr "" + +#: src/actions/index.js:606 +#: src/components/LogInButton.jsx:20 +msgid "User Area" +msgstr "" + +#: src/actions/index.js:613 +msgid "Register New Account" +msgstr "" + +#: src/actions/index.js:620 +msgid "Restore my Password" +msgstr "" + +#: src/actions/index.js:627 +msgid "Welcome to PixelPlanet.fun" +msgstr "" + +#: src/actions/index.js:633 +msgid "Canvas Archive" +msgstr "" + +#: src/actions/index.js:640 #: src/components/CanvasSwitchButton.jsx:20 msgid "Canvas Selection" msgstr "" +#: src/actions/index.js:827 +msgid "Chat" +msgstr "" + #: src/components/Converter.jsx:609 #: src/components/CoordinatesBox.jsx:26 msgid "Copy to Clipboard" msgstr "" +#: src/components/ChatButton.jsx:90 +msgid "Close Chat" +msgstr "" + +#: src/components/ChatButton.jsx:90 +msgid "Open Chat" +msgstr "" + #: src/components/OnlineBox.jsx:22 msgid "User online" msgstr "" @@ -119,20 +157,6 @@ msgstr "" msgid "Pixels placed" msgstr "" -#: src/components/ChatButton.jsx:61 -msgid "Close Chat" -msgstr "" - -#: src/components/ChatButton.jsx:61 -msgid "Open Chat" -msgstr "" - -#: src/components/Admintools.jsx:219 -#: src/components/ChannelContextMenu.jsx:85 -#: src/components/ModalRoot.jsx:88 -msgid "Close" -msgstr "" - #: src/components/ExpandMenuButton.jsx:19 msgid "Close Menu" msgstr "" @@ -141,6 +165,17 @@ msgstr "" msgid "Open Menu" msgstr "" +#: src/components/Admintools.jsx:219 +#: src/components/ChannelContextMenu.jsx:82 +#: src/components/ModalRoot.jsx:69 +#: src/components/Window.jsx:126 +msgid "Close" +msgstr "" + +#: src/components/ModalRoot.jsx:78 +msgid "Restore" +msgstr "" + #: src/actions/fetch.js:38 msgid "You made too many requests" msgstr "" @@ -170,40 +205,10 @@ msgstr "" msgid "Server answered with gibberish :(" msgstr "" -#: src/components/Chat.jsx:143 -msgid "Channel settings" -msgstr "" - -#: src/components/Chat.jsx:152 -msgid "maximize" -msgstr "" - -#: src/components/Chat.jsx:168 -msgid "Start chatting here" -msgstr "" - -#: src/components/Chat.jsx:200 -msgid "Chat here" -msgstr "" - -#: src/components/Chat.jsx:220 -msgid "You must be logged in to chat" -msgstr "" - #: src/components/HelpButton.jsx:20 msgid "Help" msgstr "" -#: src/components/SettingsButton.jsx:20 -#: src/components/SettingsModal.jsx:278 -msgid "Settings" -msgstr "" - -#: src/components/LogInButton.jsx:20 -#: src/components/UserAreaModal.jsx:160 -msgid "User Area" -msgstr "" - #: src/components/DownloadButton.jsx:37 msgid "Make Screenshot" msgstr "" @@ -220,399 +225,36 @@ msgstr "" msgid "Open Palette" msgstr "" -#: src/components/ChannelContextMenu.jsx:73 -msgid "Mute" -msgstr "" - -#: src/components/UserContextMenu.jsx:72 +#: src/components/UserContextMenu.jsx:64 msgid "Ping" msgstr "" -#: src/components/UserContextMenu.jsx:97 +#: src/components/UserContextMenu.jsx:89 msgid "DM" msgstr "" -#: src/components/UserContextMenu.jsx:107 +#: src/components/UserContextMenu.jsx:99 msgid "Block" msgstr "" -#: src/components/HelpModal.jsx:35 -msgid "your IP" +#: src/components/ChannelContextMenu.jsx:70 +msgid "Mute" msgstr "" -#: src/components/HelpModal.jsx:41 -msgid "Place color pixels on a large canvas with other players online!" +#: src/components/Window.jsx:105 +msgid "Clone" msgstr "" -#: src/components/HelpModal.jsx:42 -msgid "" -"Our main canvas is a huge worldmap, you can place wherever you like, but " -"you will have to wait a specific Cooldown between pixels. You can check out " -"the cooldown and requirements on the Canvas Selection menu (globe button on " -"top). Some canvases have a different cooldown for replacing a user-set " -"pixels than placing on a unset pixel. i.e. 4s/7s means 4s on fresh pixels " -"and 7s on already set pixels." +#: src/components/Window.jsx:112 +msgid "Move" msgstr "" -#: src/components/HelpModal.jsx:46 -msgid "" -"Higher zoomlevels take some time to update, the 3D globe gets updated at " -"least once per day." +#: src/components/Window.jsx:119 +msgid "Maximize" msgstr "" -#: src/components/HelpModal.jsx:47 -msgid "Have fun!" -msgstr "" - -#: src/components/HelpModal.jsx:49 -msgid "recommended" -msgstr "" - -#: src/components/HelpModal.jsx:50 -msgid "Source on " -msgstr "" - -#: src/components/HelpModal.jsx:51 -msgid "Map Data" -msgstr "" - -#: src/components/HelpModal.jsx:52 -msgid "" -"The bare map data that we use, together with converted OpenStreetMap tiles " -"for orientation, can be downloaded from mega.nz here: " -msgstr "" - -#: src/components/HelpModal.jsx:54 -msgid "Detected as Proxy?" -msgstr "" - -#: src/components/HelpModal.jsx:56 -#, javascript-format -msgid "" -"If you got detected as proxy, but you are none, please go to our ${ " -"guildedLink } or send us an e-mail with ${ getIPLink } to ${ mailLink }. Do " -"not post your IP anywhere else. We are sorry for the inconvenience." -msgstr "" - -#: src/components/HelpModal.jsx:58 -#: src/components/HelpModal.jsx:75 -msgid "Controls" -msgstr "" - -#: src/components/HelpModal.jsx:60 -msgid "Click a color in palette to select it" -msgstr "" - -#: src/components/HelpModal.jsx:61 -#, javascript-format -msgid "Press ${ bindG } to toggle grid" -msgstr "" - -#: src/components/HelpModal.jsx:62 -msgid "Press ${ bindX } to toggle showing of pixel activity" -msgstr "" - -#: src/components/HelpModal.jsx:63 -#, javascript-format -msgid "Press ${ bindH } to toggle historical view" -msgstr "" - -#: src/components/HelpModal.jsx:64 -msgid "Press ${ bindR } to copy coordinates" -msgstr "" - -#: src/components/HelpModal.jsx:65 -#, javascript-format -msgid "Press ${ bindQ } or ${ bindE } to zoom" -msgstr "" - -#: src/components/HelpModal.jsx:66 -#: src/components/HelpModal.jsx:77 -#, javascript-format -msgid "Press ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } to move" -msgstr "" - -#: src/components/HelpModal.jsx:67 -#: src/components/HelpModal.jsx:78 -#, javascript-format -msgid "Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move" -msgstr "" - -#: src/components/HelpModal.jsx:68 -msgid "Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move" -msgstr "" - -#: src/components/HelpModal.jsx:69 -#, javascript-format -msgid "Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom" -msgstr "" - -#: src/components/HelpModal.jsx:70 -msgid "Hold left ${ bindShift } for placing while moving mouse" -msgstr "" - -#: src/components/HelpModal.jsx:71 -#, javascript-format -msgid "" -"Hold right ${ bindShift } for placing while moving mouse according to " -"historical view" -msgstr "" - -#: src/components/HelpModal.jsx:72 -#: src/components/HelpModal.jsx:83 -#, javascript-format -msgid "${ mouseSymbol } Left click or ${ touchSymbol } tap to place a pixel" -msgstr "" - -#: src/components/HelpModal.jsx:73 -#: src/components/HelpModal.jsx:85 -msgid "" -"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to " -"select current hovering color" -msgstr "" - -#: src/components/HelpModal.jsx:79 -msgid "Press ${ bindE } and ${ bindC } to fly up and down" -msgstr "" - -#: src/components/HelpModal.jsx:80 -#, javascript-format -msgid "${ mouseSymbol } Hold left mouse button and drag mouse to rotate" -msgstr "" - -#: src/components/HelpModal.jsx:81 -#, javascript-format -msgid "" -"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse " -"button and drag to zoom" -msgstr "" - -#: src/components/HelpModal.jsx:82 -msgid "${ mouseSymbol } Right click and drag mouse to pan" -msgstr "" - -#: src/components/HelpModal.jsx:84 -#, javascript-format -msgid "" -"${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a " -"pixel" -msgstr "" - -#: src/components/HelpModal.jsx:87 -msgid "Partners:" -msgstr "" - -#: src/components/HelpModal.jsx:94 -msgid "Welcome to PixelPlanet.fun" -msgstr "" - -#: src/components/SettingsModal.jsx:125 -msgid "Show Grid" -msgstr "" - -#: src/components/SettingsModal.jsx:126 -msgid "Turn on grid to highlight pixel borders." -msgstr "" - -#: src/components/SettingsModal.jsx:132 -msgid "Show Pixel Activity" -msgstr "" - -#: src/components/SettingsModal.jsx:133 -msgid "Show circles where pixels are placed." -msgstr "" - -#: src/components/SettingsModal.jsx:139 -msgid "Disable Game Sounds" -msgstr "" - -#: src/components/SettingsModal.jsx:141 -msgid "All sound effects will be disabled." -msgstr "" - -#: src/components/SettingsModal.jsx:147 -msgid "Enable chat notifications" -msgstr "" - -#: src/components/SettingsModal.jsx:148 -msgid "Play a sound when new chat messages arrive" -msgstr "" - -#: src/components/SettingsModal.jsx:153 -msgid "Auto Zoom In" -msgstr "" - -#: src/components/SettingsModal.jsx:155 -msgid "" -"Zoom in instead of placing a pixel when you tap the canvas and your zoom is " -"small." -msgstr "" - -#: src/components/SettingsModal.jsx:160 -msgid "Compact Palette" -msgstr "" - -#: src/components/SettingsModal.jsx:162 -msgid "Display Palette in a compact form that takes less screen space." -msgstr "" - -#: src/components/SettingsModal.jsx:167 -msgid "Potato Mode" -msgstr "" - -#: src/components/SettingsModal.jsx:168 -msgid "For when you are playing on a potato." -msgstr "" - -#: src/components/Converter.jsx:423 -#: src/components/SettingsModal.jsx:173 -msgid "Light Grid" -msgstr "" - -#: src/components/SettingsModal.jsx:174 -msgid "Show Grid in white instead of black." -msgstr "" - -#: src/components/SettingsModal.jsx:180 -msgid "Historical View" -msgstr "" - -#: src/components/SettingsModal.jsx:181 -msgid "Check out past versions of the canvas." -msgstr "" - -#: src/components/SettingsModal.jsx:189 -msgid "Themes" -msgstr "" - -#: src/components/SettingsModal.jsx:190 -msgid "How pixelplanet should look like." -msgstr "" - -#: src/components/SettingsModal.jsx:200 -msgid "Select Language" -msgstr "" - -#: src/components/UserAreaModal.jsx:33 -msgid "Login to access more features and stats." -msgstr "" - -#: src/components/UserAreaModal.jsx:35 -msgid "Login with Name or Mail:" -msgstr "" - -#: src/components/UserAreaModal.jsx:42 -msgid "I forgot my Password." -msgstr "" - -#: src/components/UserAreaModal.jsx:43 -msgid "or login with:" -msgstr "" - -#: src/components/UserAreaModal.jsx:84 -msgid "or register here:" -msgstr "" - -#: src/components/UserAreaModal.jsx:85 -msgid "Register" -msgstr "" - -#: src/components/UserAreaModal.jsx:107 -msgid "Profile" -msgstr "" - -#: src/components/UserAreaModal.jsx:113 -msgid "Ranking" -msgstr "" - -#: src/components/UserAreaModal.jsx:116 -msgid "Converter" -msgstr "" - -#: src/components/UserAreaModal.jsx:122 -msgid "Admintools" -msgstr "" - -#: src/components/UserAreaModal.jsx:122 -msgid "Modtools" -msgstr "" - -#: src/components/UserAreaModal.jsx:123 -msgid "Loading..." -msgstr "" - -#: src/components/ForgotPasswordModal.jsx:20 -#: src/components/RegisterModal.jsx:21 -#: src/components/UserAreaModal.jsx:130 -msgid "Consider joining us on Guilded:" -msgstr "" - -#: src/components/RegisterModal.jsx:18 -msgid "Register new account here" -msgstr "" - -#: src/components/RegisterModal.jsx:38 -msgid "Register New Account" -msgstr "" - -#: src/components/CanvasSelectModal.jsx:29 -msgid "" -"Select the canvas you want to use. Every canvas is unique and has different " -"palettes, cooldown and requirements. Archive of closed canvases can be " -"accessed here:" -msgstr "" - -#: src/components/CanvasSelectModal.jsx:37 -msgid "Archive" -msgstr "" - -#: src/components/ArchiveModal.jsx:20 -msgid "" -"While we tend to not delete canvases, some canvases are started for fun or " -"as a request by users who currently like a meme. Those canvases can get " -"boring after a while and after weeks of no major change and if they really " -"aren't worth being kept active, we decide to remove them." -msgstr "" - -#: src/components/ArchiveModal.jsx:22 -msgid "" -"Here we collect those canvases to archive them in a proper way (which is " -"currently just one)." -msgstr "" - -#: src/components/ArchiveModal.jsx:24 -msgid "Political Compass Canvas" -msgstr "" - -#: src/components/ArchiveModal.jsx:31 -msgid "" -"This canvas got requested during a time of political conflicts on the main " -"Earth canvas. It was a 1024x1024 representation of the political compass " -"with a 5s cooldown and 60s stacking. It got launched on May 11th and " -"remained active for months till it got shut down on November 30th." -msgstr "" - -#: src/components/ArchiveModal.jsx:32 -msgid "" -"We decided to archive it as a timelapse with lossless encoded webm. Taking " -"a screenshot from the timelapse results in a perfect 1:1 representation of " -"how the canvas was at that time." -msgstr "" - -#: src/components/ArchiveModal.jsx:50 -msgid "Canvas Archive" -msgstr "" - -#: src/components/ForgotPasswordModal.jsx:16 -msgid "Enter your mail address and we will send you a new password:" -msgstr "" - -#: src/components/ForgotPasswordModal.jsx:37 -msgid "Restore my Password" -msgstr "" - -#: src/components/ChatModal.jsx:35 -msgid "Chat" +#: src/components/Window.jsx:133 +msgid "Resize" msgstr "" #: src/components/Captcha.jsx:41 @@ -664,38 +306,379 @@ msgstr "" msgid "Send" msgstr "" -#: src/components/ChangeMail.jsx:107 -#: src/components/ChangeName.jsx:77 -#: src/components/ChangePassword.jsx:103 -#: src/components/LanguageSelect.jsx:73 -msgid "Save" +#: src/components/windows/Help.jsx:35 +msgid "your IP" msgstr "" -#: src/components/LogInForm.jsx:89 -msgid "Name or Email" +#: src/components/windows/Help.jsx:41 +msgid "Place color pixels on a large canvas with other players online!" msgstr "" -#: src/components/ChangeMail.jsx:96 -#: src/components/DeleteAccount.jsx:74 -#: src/components/LogInForm.jsx:96 -#: src/components/SignUpForm.jsx:125 -msgid "Password" +#: src/components/windows/Help.jsx:42 +msgid "" +"Our main canvas is a huge worldmap, you can place wherever you like, but " +"you will have to wait a specific Cooldown between pixels. You can check out " +"the cooldown and requirements on the Canvas Selection menu (globe button on " +"top). Some canvases have a different cooldown for replacing a user-set " +"pixels than placing on a unset pixel. i.e. 4s/7s means 4s on fresh pixels " +"and 7s on already set pixels." msgstr "" -#: src/components/LogInForm.jsx:100 -msgid "LogIn" +#: src/components/windows/Help.jsx:46 +msgid "" +"Higher zoomlevels take some time to update, the 3D globe gets updated at " +"least once per day." msgstr "" -#: src/components/Rankings.jsx:37 -msgid "Total" +#: src/components/windows/Help.jsx:47 +msgid "Have fun!" msgstr "" -#: src/components/Rankings.jsx:45 -msgid "Daily" +#: src/components/windows/Help.jsx:49 +msgid "recommended" msgstr "" -#: src/components/Rankings.jsx:49 -msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC." +#: src/components/windows/Help.jsx:50 +msgid "Source on " +msgstr "" + +#: src/components/windows/Help.jsx:51 +msgid "Map Data" +msgstr "" + +#: src/components/windows/Help.jsx:52 +msgid "" +"The bare map data that we use, together with converted OpenStreetMap tiles " +"for orientation, can be downloaded from mega.nz here: " +msgstr "" + +#: src/components/windows/Help.jsx:54 +msgid "Detected as Proxy?" +msgstr "" + +#: src/components/windows/Help.jsx:56 +#, javascript-format +msgid "" +"If you got detected as proxy, but you are none, please go to our ${ " +"guildedLink } or send us an e-mail with ${ getIPLink } to ${ mailLink }. Do " +"not post your IP anywhere else. We are sorry for the inconvenience." +msgstr "" + +#: src/components/windows/Help.jsx:58 +#: src/components/windows/Help.jsx:75 +msgid "Controls" +msgstr "" + +#: src/components/windows/Help.jsx:60 +msgid "Click a color in palette to select it" +msgstr "" + +#: src/components/windows/Help.jsx:61 +#, javascript-format +msgid "Press ${ bindG } to toggle grid" +msgstr "" + +#: src/components/windows/Help.jsx:62 +msgid "Press ${ bindX } to toggle showing of pixel activity" +msgstr "" + +#: src/components/windows/Help.jsx:63 +#, javascript-format +msgid "Press ${ bindH } to toggle historical view" +msgstr "" + +#: src/components/windows/Help.jsx:64 +msgid "Press ${ bindR } to copy coordinates" +msgstr "" + +#: src/components/windows/Help.jsx:65 +#, javascript-format +msgid "Press ${ bindQ } or ${ bindE } to zoom" +msgstr "" + +#: src/components/windows/Help.jsx:66 +#: src/components/windows/Help.jsx:77 +#, javascript-format +msgid "Press ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } to move" +msgstr "" + +#: src/components/windows/Help.jsx:67 +#: src/components/windows/Help.jsx:78 +#, javascript-format +msgid "Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move" +msgstr "" + +#: src/components/windows/Help.jsx:68 +msgid "Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move" +msgstr "" + +#: src/components/windows/Help.jsx:69 +#, javascript-format +msgid "Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom" +msgstr "" + +#: src/components/windows/Help.jsx:70 +msgid "Hold left ${ bindShift } for placing while moving mouse" +msgstr "" + +#: src/components/windows/Help.jsx:71 +#, javascript-format +msgid "" +"Hold right ${ bindShift } for placing while moving mouse according to " +"historical view" +msgstr "" + +#: src/components/windows/Help.jsx:72 +#: src/components/windows/Help.jsx:83 +#, javascript-format +msgid "${ mouseSymbol } Left click or ${ touchSymbol } tap to place a pixel" +msgstr "" + +#: src/components/windows/Help.jsx:73 +#: src/components/windows/Help.jsx:85 +msgid "" +"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to " +"select current hovering color" +msgstr "" + +#: src/components/windows/Help.jsx:79 +msgid "Press ${ bindE } and ${ bindC } to fly up and down" +msgstr "" + +#: src/components/windows/Help.jsx:80 +#, javascript-format +msgid "${ mouseSymbol } Hold left mouse button and drag mouse to rotate" +msgstr "" + +#: src/components/windows/Help.jsx:81 +#, javascript-format +msgid "" +"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse " +"button and drag to zoom" +msgstr "" + +#: src/components/windows/Help.jsx:82 +msgid "${ mouseSymbol } Right click and drag mouse to pan" +msgstr "" + +#: src/components/windows/Help.jsx:84 +#, javascript-format +msgid "" +"${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a " +"pixel" +msgstr "" + +#: src/components/windows/Help.jsx:87 +msgid "Partners:" +msgstr "" + +#: src/components/windows/UserArea.jsx:33 +msgid "Login to access more features and stats." +msgstr "" + +#: src/components/windows/UserArea.jsx:35 +msgid "Login with Name or Mail:" +msgstr "" + +#: src/components/windows/UserArea.jsx:42 +msgid "I forgot my Password." +msgstr "" + +#: src/components/windows/UserArea.jsx:43 +msgid "or login with:" +msgstr "" + +#: src/components/windows/UserArea.jsx:84 +msgid "or register here:" +msgstr "" + +#: src/components/windows/UserArea.jsx:85 +msgid "Register" +msgstr "" + +#: src/components/windows/UserArea.jsx:107 +msgid "Profile" +msgstr "" + +#: src/components/windows/UserArea.jsx:113 +msgid "Ranking" +msgstr "" + +#: src/components/windows/UserArea.jsx:116 +msgid "Converter" +msgstr "" + +#: src/components/windows/UserArea.jsx:122 +msgid "Admintools" +msgstr "" + +#: src/components/windows/UserArea.jsx:122 +msgid "Modtools" +msgstr "" + +#: src/components/windows/UserArea.jsx:123 +msgid "Loading..." +msgstr "" + +#: src/components/windows/ForgotPassword.jsx:20 +#: src/components/windows/Register.jsx:21 +#: src/components/windows/UserArea.jsx:130 +msgid "Consider joining us on Guilded:" +msgstr "" + +#: src/components/windows/Settings.jsx:125 +msgid "Show Grid" +msgstr "" + +#: src/components/windows/Settings.jsx:126 +msgid "Turn on grid to highlight pixel borders." +msgstr "" + +#: src/components/windows/Settings.jsx:132 +msgid "Show Pixel Activity" +msgstr "" + +#: src/components/windows/Settings.jsx:133 +msgid "Show circles where pixels are placed." +msgstr "" + +#: src/components/windows/Settings.jsx:139 +msgid "Disable Game Sounds" +msgstr "" + +#: src/components/windows/Settings.jsx:141 +msgid "All sound effects will be disabled." +msgstr "" + +#: src/components/windows/Settings.jsx:147 +msgid "Enable chat notifications" +msgstr "" + +#: src/components/windows/Settings.jsx:148 +msgid "Play a sound when new chat messages arrive" +msgstr "" + +#: src/components/windows/Settings.jsx:153 +msgid "Auto Zoom In" +msgstr "" + +#: src/components/windows/Settings.jsx:155 +msgid "" +"Zoom in instead of placing a pixel when you tap the canvas and your zoom is " +"small." +msgstr "" + +#: src/components/windows/Settings.jsx:160 +msgid "Compact Palette" +msgstr "" + +#: src/components/windows/Settings.jsx:162 +msgid "Display Palette in a compact form that takes less screen space." +msgstr "" + +#: src/components/windows/Settings.jsx:167 +msgid "Potato Mode" +msgstr "" + +#: src/components/windows/Settings.jsx:168 +msgid "For when you are playing on a potato." +msgstr "" + +#: src/components/Converter.jsx:423 +#: src/components/windows/Settings.jsx:173 +msgid "Light Grid" +msgstr "" + +#: src/components/windows/Settings.jsx:174 +msgid "Show Grid in white instead of black." +msgstr "" + +#: src/components/windows/Settings.jsx:180 +msgid "Historical View" +msgstr "" + +#: src/components/windows/Settings.jsx:181 +msgid "Check out past versions of the canvas." +msgstr "" + +#: src/components/windows/Settings.jsx:189 +msgid "Themes" +msgstr "" + +#: src/components/windows/Settings.jsx:190 +msgid "How pixelplanet should look like." +msgstr "" + +#: src/components/windows/Settings.jsx:200 +msgid "Select Language" +msgstr "" + +#: src/components/windows/Register.jsx:18 +msgid "Register new account here" +msgstr "" + +#: src/components/windows/CanvasSelect.jsx:29 +msgid "" +"Select the canvas you want to use. Every canvas is unique and has different " +"palettes, cooldown and requirements. Archive of closed canvases can be " +"accessed here:" +msgstr "" + +#: src/components/windows/CanvasSelect.jsx:37 +msgid "Archive" +msgstr "" + +#: src/components/windows/Archive.jsx:20 +msgid "" +"While we tend to not delete canvases, some canvases are started for fun or " +"as a request by users who currently like a meme. Those canvases can get " +"boring after a while and after weeks of no major change and if they really " +"aren't worth being kept active, we decide to remove them." +msgstr "" + +#: src/components/windows/Archive.jsx:22 +msgid "" +"Here we collect those canvases to archive them in a proper way (which is " +"currently just one)." +msgstr "" + +#: src/components/windows/Archive.jsx:24 +msgid "Political Compass Canvas" +msgstr "" + +#: src/components/windows/Archive.jsx:31 +msgid "" +"This canvas got requested during a time of political conflicts on the main " +"Earth canvas. It was a 1024x1024 representation of the political compass " +"with a 5s cooldown and 60s stacking. It got launched on May 11th and " +"remained active for months till it got shut down on November 30th." +msgstr "" + +#: src/components/windows/Archive.jsx:32 +msgid "" +"We decided to archive it as a timelapse with lossless encoded webm. Taking " +"a screenshot from the timelapse results in a perfect 1:1 representation of " +"how the canvas was at that time." +msgstr "" + +#: src/components/windows/Chat.jsx:137 +msgid "Channel settings" +msgstr "" + +#: src/components/windows/Chat.jsx:152 +msgid "Start chatting here" +msgstr "" + +#: src/components/windows/Chat.jsx:189 +msgid "Chat here" +msgstr "" + +#: src/components/windows/Chat.jsx:212 +msgid "You must be logged in to chat" +msgstr "" + +#: src/components/windows/ForgotPassword.jsx:16 +msgid "Enter your mail address and we will send you a new password:" msgstr "" #: src/components/UserArea.jsx:57 @@ -743,6 +726,63 @@ msgstr "" msgid "Social Settings" msgstr "" +#: src/components/LogInForm.jsx:89 +msgid "Name or Email" +msgstr "" + +#: src/components/ChangeMail.jsx:96 +#: src/components/DeleteAccount.jsx:74 +#: src/components/LogInForm.jsx:96 +#: src/components/SignUpForm.jsx:125 +msgid "Password" +msgstr "" + +#: src/components/LogInForm.jsx:100 +msgid "LogIn" +msgstr "" + +#: src/components/Rankings.jsx:37 +msgid "Total" +msgstr "" + +#: src/components/Rankings.jsx:45 +msgid "Daily" +msgstr "" + +#: src/components/Rankings.jsx:49 +msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC." +msgstr "" + +#: src/components/ChangeMail.jsx:107 +#: src/components/ChangeName.jsx:77 +#: src/components/ChangePassword.jsx:103 +#: src/components/LanguageSelect.jsx:73 +msgid "Save" +msgstr "" + +#: src/components/SignUpForm.jsx:109 +msgid "Name" +msgstr "" + +#: src/components/NewPasswordForm.jsx:86 +#: src/components/SignUpForm.jsx:117 +msgid "Email" +msgstr "" + +#: src/components/SignUpForm.jsx:135 +msgid "Confirm Password" +msgstr "" + +#: src/components/Admintools.jsx:306 +#: src/components/Admintools.jsx:387 +#: src/components/Admintools.jsx:461 +#: src/components/Admintools.jsx:505 +#: src/components/Admintools.jsx:589 +#: src/components/NewPasswordForm.jsx:90 +#: src/components/SignUpForm.jsx:138 +msgid "Submit" +msgstr "" + #: src/components/CanvasItem.jsx:46 msgid "Cooldown" msgstr "" @@ -772,29 +812,6 @@ msgstr "" msgid "Dimensions" msgstr "" -#: src/components/SignUpForm.jsx:109 -msgid "Name" -msgstr "" - -#: src/components/NewPasswordForm.jsx:86 -#: src/components/SignUpForm.jsx:117 -msgid "Email" -msgstr "" - -#: src/components/SignUpForm.jsx:135 -msgid "Confirm Password" -msgstr "" - -#: src/components/Admintools.jsx:306 -#: src/components/Admintools.jsx:387 -#: src/components/Admintools.jsx:461 -#: src/components/Admintools.jsx:505 -#: src/components/Admintools.jsx:589 -#: src/components/NewPasswordForm.jsx:90 -#: src/components/SignUpForm.jsx:138 -msgid "Submit" -msgstr "" - #: src/components/NewPasswordForm.jsx:69 msgid "Sent you a mail with instructions to reset your password." msgstr "" @@ -1061,6 +1078,10 @@ msgstr "" msgid "New Mail" msgstr "" +#: src/components/DeleteAccount.jsx:78 +msgid "Yes, Delete My Account!" +msgstr "" + #: src/components/ChangeName.jsx:73 msgid "New Username" msgstr "" @@ -1077,74 +1098,70 @@ msgstr "" msgid "You have no users blocked" msgstr "" -#: src/components/DeleteAccount.jsx:78 -msgid "Yes, Delete My Account!" -msgstr "" - -#: src/components/HelpModal.jsx:15 -#: src/components/SettingsModal.jsx:127 +#: src/components/windows/Help.jsx:15 +#: src/components/windows/Settings.jsx:127 msgctxt "keybinds" msgid "G" msgstr "" -#: src/components/HelpModal.jsx:16 -#: src/components/SettingsModal.jsx:134 +#: src/components/windows/Help.jsx:16 +#: src/components/windows/Settings.jsx:134 msgctxt "keybinds" msgid "X" msgstr "" -#: src/components/HelpModal.jsx:17 -#: src/components/SettingsModal.jsx:183 +#: src/components/windows/Help.jsx:17 +#: src/components/windows/Settings.jsx:183 msgctxt "keybinds" msgid "H" msgstr "" -#: src/components/HelpModal.jsx:18 +#: src/components/windows/Help.jsx:18 msgctxt "keybinds" msgid "R" msgstr "" -#: src/components/HelpModal.jsx:19 +#: src/components/windows/Help.jsx:19 msgctxt "keybinds" msgid "Q" msgstr "" -#: src/components/HelpModal.jsx:20 +#: src/components/windows/Help.jsx:20 msgctxt "keybinds" msgid "E" msgstr "" -#: src/components/HelpModal.jsx:21 +#: src/components/windows/Help.jsx:21 msgctxt "keybinds" msgid "W" msgstr "" -#: src/components/HelpModal.jsx:22 +#: src/components/windows/Help.jsx:22 msgctxt "keybinds" msgid "A" msgstr "" -#: src/components/HelpModal.jsx:23 +#: src/components/windows/Help.jsx:23 msgctxt "keybinds" msgid "S" msgstr "" -#: src/components/HelpModal.jsx:24 +#: src/components/windows/Help.jsx:24 msgctxt "keybinds" msgid "D" msgstr "" -#: src/components/HelpModal.jsx:31 +#: src/components/windows/Help.jsx:31 msgctxt "keybinds" msgid "Shift" msgstr "" -#: src/components/HelpModal.jsx:32 +#: src/components/windows/Help.jsx:32 msgctxt "keybinds" msgid "C" msgstr "" -#: src/components/SettingsModal.jsx:142 +#: src/components/windows/Settings.jsx:142 msgctxt "keybinds" msgid "M" msgstr "" \ No newline at end of file diff --git a/src/actions/index.js b/src/actions/index.js index e58d53c..9db7089 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -815,7 +815,6 @@ export function hideAllWindowTypes( windowType: string, hide: boolean, ): Action { - console.log(`hideAllWindowTypes`, hide); return { type: 'HIDE_ALL_WINDOW_TYPE', windowType, diff --git a/src/client.js b/src/client.js index eab7b36..0d726c1 100644 --- a/src/client.js +++ b/src/client.js @@ -66,7 +66,9 @@ function init() { // assume that if one chat window is not hidden, all are let isRead = state.windows.showWindows + // eslint-disable-next-line max-len && state.windows.windows.find((win) => win.windowType === 'CHAT' && win.hidden === false) + // eslint-disable-next-line max-len && Object.values(state.windows.args).find((args) => args.chatChannel === channelId); isRead = isRead || state.windows.modal.open && state.windows.args[0].chatChannel === channelId; diff --git a/src/components/ChannelContextMenu.jsx b/src/components/ChannelContextMenu.jsx index 71b680a..ffb7b8f 100644 --- a/src/components/ChannelContextMenu.jsx +++ b/src/components/ChannelContextMenu.jsx @@ -33,14 +33,17 @@ const ChannelContextMenu = ({ useEffect(() => { const handleClickOutside = (event) => { if (wrapperRef.current && !wrapperRef.current.contains(event.target)) { + event.stopPropagation(); close(); } }; - document.addEventListener('mousedown', handleClickOutside); - document.addEventListener('touchstart', handleClickOutside); + document.addEventListener('click', handleClickOutside, { + capture: true, + }); return () => { - document.removeEventListener('mousedown', handleClickOutside); - document.removeEventListener('touchstart', handleClickOutside); + document.removeEventListener('click', handleClickOutside, { + capture: true, + }); }; }, [wrapperRef]); diff --git a/src/components/ChannelDropDown.jsx b/src/components/ChannelDropDown.jsx index 7854179..830016d 100644 --- a/src/components/ChannelDropDown.jsx +++ b/src/components/ChannelDropDown.jsx @@ -42,6 +42,7 @@ const ChannelDropDown = ({ && !wrapperRef.current.contains(event.target) && !buttonRef.current.contains(event.target) ) { + event.stopPropagation(); setShow(false); } }, []); @@ -56,12 +57,14 @@ const ChannelDropDown = ({ const chType = (channels[chatChannel][1] === 1) ? 1 : 0; setType(chType); } - document.addEventListener('mousedown', handleClickOutside); - document.addEventListener('touchstart', handleClickOutside); + document.addEventListener('click', handleClickOutside, { + capture: true, + }); window.addEventListener('resize', handleWindowResize); } else { - document.removeEventListener('mousedown', handleClickOutside); - document.removeEventListener('touchstart', handleClickOutside); + document.removeEventListener('click', handleClickOutside, { + capture: true, + }); window.removeEventListener('resize', handleWindowResize); } }, [show]); diff --git a/src/components/ChatButton.jsx b/src/components/ChatButton.jsx index dda5356..3644f71 100644 --- a/src/components/ChatButton.jsx +++ b/src/components/ChatButton.jsx @@ -23,11 +23,11 @@ import { */ const selectChatWindowStatus = (state) => [ state.windows.showWindows, - state.windows.windows.find((win) => win.windowType === 'CHAT' && win.hidden === false) || ( - state.windows.modal.open - && state.windows.modal.windowType === 'CHAT' - ), - state.windows.windows.find((win) => win.windowType === 'CHAT' && win.hidden === true), + state.windows.windows.find((win) => win.windowType === 'CHAT' + && win.hidden === false) + || (state.windows.modal.open && state.windows.modal.windowType === 'CHAT'), + state.windows.windows.find((win) => win.windowType === 'CHAT' + && win.hidden === true), ]; const ChatButton = () => { @@ -42,8 +42,10 @@ const ChatButton = () => { const chatNotify = useSelector((state) => state.audio.chatNotify); const channels = useSelector((state) => state.chat.channels); - const [unread, mute] = useSelector((state) => [state.chatRead.unread, state.chatRead.mute], - shallowEqual); + const [unread, mute] = useSelector((state) => [ + state.chatRead.unread, + state.chatRead.mute, + ], shallowEqual); /* * almost the same as in ChannelDropDown diff --git a/src/components/UserContextMenu.jsx b/src/components/UserContextMenu.jsx index 6d81929..d726b99 100644 --- a/src/components/UserContextMenu.jsx +++ b/src/components/UserContextMenu.jsx @@ -32,14 +32,17 @@ const UserContextMenu = () => { useEffect(() => { const handleClickOutside = (event) => { if (wrapperRef.current && !wrapperRef.current.contains(event.target)) { + event.stopPropagation(); close(); } }; - document.addEventListener('mousedown', handleClickOutside); - document.addEventListener('touchstart', handleClickOutside); + document.addEventListener('click', handleClickOutside, { + capture: true, + }); return () => { - document.removeEventListener('mousedown', handleClickOutside); - document.removeEventListener('touchstart', handleClickOutside); + document.removeEventListener('click', handleClickOutside, { + capture: true, + }); }; }, [wrapperRef]); diff --git a/src/components/Window.jsx b/src/components/Window.jsx index 729b34f..f404ad6 100644 --- a/src/components/Window.jsx +++ b/src/components/Window.jsx @@ -7,6 +7,7 @@ import React, { useState, useCallback, useRef, useEffect, } from 'react'; import { useSelector, useDispatch } from 'react-redux'; +import { t } from 'ttag'; import { moveWindow, @@ -20,6 +21,7 @@ import { import useDrag from './hooks/drag'; import COMPONENTS from './windows'; +// eslint-disable-next-line max-len const selectWindowById = (state, windowId) => state.windows.windows.find((win) => win.windowId === windowId); const Window = ({ id }) => { @@ -46,27 +48,33 @@ const Window = ({ id }) => { dispatch(closeWindow(id)); }; - useDrag( - titleBarRef, - focus, - useCallback((xDiff, yDiff) => dispatch(moveWindow(id, xDiff, yDiff)), []), - ); - - useDrag( - resizeRef, - focus, - useCallback((xDiff, yDiff) => dispatch(resizeWindow(id, xDiff, yDiff)), []), - ); - const { width, height, xPos, yPos, windowType, title, open, + hidden, } = win; + useDrag( + titleBarRef, + focus, + useCallback((xDiff, yDiff) => dispatch(moveWindow(id, xDiff, yDiff)), + [hidden]), + ); + + useDrag( + resizeRef, + focus, + useCallback((xDiff, yDiff) => dispatch(resizeWindow(id, xDiff, yDiff)), + [hidden]), + ); + const onTransitionEnd = () => { + if (hidden) { + setRender(false); + } if (!open) { dispatch(removeWindow(id)); } @@ -74,17 +82,21 @@ const Window = ({ id }) => { useEffect(() => { window.setTimeout(() => { - if (open) setRender(true); + if (open && !hidden) setRender(true); }, 10); - }, [open]); + }, [open, hidden]); const Content = COMPONENTS[windowType]; - console.log(`render window ${id}`); + if (!render && hidden) { + return null; + } return (
{ + {title} X
▨ diff --git a/src/components/WindowManager.jsx b/src/components/WindowManager.jsx index f1997ed..692214e 100644 --- a/src/components/WindowManager.jsx +++ b/src/components/WindowManager.jsx @@ -8,6 +8,7 @@ import { useSelector, shallowEqual } from 'react-redux'; import Window from './Window'; +// eslint-disable-next-line max-len const selectWindowIds = (state) => state.windows.windows.map((win) => win.windowId); const WindowsRoot = () => { diff --git a/src/components/hooks/drag.js b/src/components/hooks/drag.js index 80bad60..e30f6ec 100644 --- a/src/components/hooks/drag.js +++ b/src/components/hooks/drag.js @@ -16,7 +16,6 @@ function useDrag(elRef, startHandler, diffHandler) { event.preventDefault(); event.stopPropagation(); startHandler(); - console.log('startDrag'); let { clientX: startX, @@ -29,7 +28,6 @@ function useDrag(elRef, startHandler, diffHandler) { clientX: curX, clientY: curY, } = evt.touches ? evt.touches[0] : evt; - console.log(`drag by ${curX - startX} - ${curY - startY}`); diffHandler(curX - startX, curY - startY); startX = curX; startY = curY; @@ -39,7 +37,6 @@ function useDrag(elRef, startHandler, diffHandler) { const stopDrag = (evt) => { evt.preventDefault(); evt.stopPropagation(); - console.log('stopDrag'); document.removeEventListener('mousemove', drag); document.removeEventListener('touchmove', drag); document.removeEventListener('mouseup', stopDrag); @@ -53,12 +50,18 @@ function useDrag(elRef, startHandler, diffHandler) { useEffect(() => { if (elRef && elRef.current) { - elRef.current.addEventListener('mousedown', startDrag, { passive: false }); - elRef.current.addEventListener('touchstart', startDrag, { passive: false }); + elRef.current.addEventListener('mousedown', startDrag, { + passive: false, + }); + elRef.current.addEventListener('touchstart', startDrag, { + passive: false, + }); } return () => { - elRef.current.removeEventListener('mousedown', startDrag); - elRef.current.removeEventListener('touchstart', startDrag); + if (elRef && elRef.current) { + elRef.current.removeEventListener('mousedown', startDrag); + elRef.current.removeEventListener('touchstart', startDrag); + } }; }, [elRef, diffHandler]); } diff --git a/src/components/windows/Chat.jsx b/src/components/windows/Chat.jsx index 9f80700..b8147ea 100644 --- a/src/components/windows/Chat.jsx +++ b/src/components/windows/Chat.jsx @@ -44,10 +44,11 @@ const Chat = ({ ), [dispatch]); const ownName = useSelector((state) => state.user.name); + // eslint-disable-next-line max-len const isDarkMode = useSelector((state) => state.gui.style.indexOf('dark') !== -1); const fetching = useSelector((state) => state.fetching.fetchingChat); const { channels, messages, blocked } = useSelector((state) => state.chat); - + // eslint-disable-next-line max-len const { chatChannel, inputMessage } = useSelector((state) => state.windows.args[windowId]); const { stayScrolled } = useStayScrolled(listRef, { diff --git a/src/controls/PixelPainterControls.js b/src/controls/PixelPainterControls.js index 3035d94..a6b8dfe 100644 --- a/src/controls/PixelPainterControls.js +++ b/src/controls/PixelPainterControls.js @@ -227,7 +227,6 @@ class PixelPlainterControls { onTouchStart(event: TouchEvent) { event.preventDefault(); event.stopPropagation(); - console.log('PixelPlainterControls touch start'); document.activeElement.blur(); this.clickTapStartTime = Date.now(); @@ -258,7 +257,6 @@ class PixelPlainterControls { onTouchEnd(event: TouchEvent) { event.preventDefault(); event.stopPropagation(); - console.log('PixelPlainterControls touch end'); const { store } = this; if (event.touches.length === 0 && this.isClicking) { @@ -295,7 +293,6 @@ class PixelPlainterControls { onTouchMove(event: TouchEvent) { event.preventDefault(); event.stopPropagation(); - console.log('PixelPlainterControls touch move'); const multiTouch = (event.touches.length > 1); diff --git a/src/reducers/contextMenu.js b/src/reducers/contextMenu.js index cea00a5..e56f26d 100644 --- a/src/reducers/contextMenu.js +++ b/src/reducers/contextMenu.js @@ -32,19 +32,6 @@ export default function contextMenu( const { menuType, xPos, yPos, args, } = action; - // if the same context menu is already open, close it - if (state.menuOpen && state.menuType === menuType - && !( - Object.keys(state.args).length === Object.keys(args).length - && Object.keys(state.args).every( - (key) => state.args[key] === args[key], - ) - )) { - return { - ...state, - menuOpen: false, - }; - } return { ...state, menuType, diff --git a/src/reducers/windows.js b/src/reducers/windows.js index 78adc2c..467818c 100644 --- a/src/reducers/windows.js +++ b/src/reducers/windows.js @@ -97,6 +97,12 @@ export default function windows( }; } const windowId = generateWindowId(state); + const { + innerWidth: screenWidth, + innerHeight: screenHeight, + } = window; + const width = Math.min(550, Math.floor(screenWidth * 0.75)); + const height = Math.min(300, Math.floor(screenHeight * 0.75)); return { ...state, windows: [ @@ -107,10 +113,10 @@ export default function windows( open: true, hidden: false, title, - width: 600, - height: 300, - xPos: 200, - yPos: 200, + width, + height, + xPos: Math.floor((screenWidth - width) / 2), + yPos: Math.floor((screenHeight - height) / 2), cloneable, }, ], @@ -203,7 +209,6 @@ export default function windows( windowType, hide, } = action; - console.log(`hideAllWindowTypes`, windowType, hide); const newWindows = state.windows.map((win) => { if (win.windowType !== windowType) return win; return { @@ -267,7 +272,6 @@ export default function windows( ) { return state; } - console.log(`focus window ${windowId}`); const newWindows = oldWindows.filter((w) => w.windowId !== windowId); const win = oldWindows.find((w) => w.windowId === windowId); if (win) { @@ -306,6 +310,12 @@ export default function windows( const windowId = generateWindowId(state); const { windowType, title } = state.modal; const cloneable = true; + const { + innerWidth: screenWidth, + innerHeight: screenHeight, + } = window; + const width = Math.min(550, Math.floor(screenWidth * 0.75)); + const height = Math.min(300, Math.floor(screenHeight * 0.75)); return { ...state, modal: { @@ -320,10 +330,10 @@ export default function windows( open: true, hidden: false, title, - width: 600, - height: 300, - xPos: 200, - yPos: 200, + width, + height, + xPos: Math.floor((screenWidth - width) / 2), + yPos: Math.floor((screenHeight - height) / 2), cloneable, }, ], diff --git a/src/styles/default.css b/src/styles/default.css index d4f58eb..41df2b8 100644 --- a/src/styles/default.css +++ b/src/styles/default.css @@ -129,7 +129,7 @@ tr:nth-child(even) { .window { position: fixed; - background-color: rgba(226, 226, 226, 0.92); + background-color: rgba(252, 252, 252, 0.95); border: solid black; border-width: thin; overflow: hidden; @@ -146,14 +146,22 @@ tr:nth-child(even) { } .win-title { + border: solid black; + border-width: thin; + background-color: #e8e8e8; cursor: move; flex-grow: 1; - line-height: 19px; + line-height: 17px; + height: 17px; margin: 2px; padding-left: 10px; font-size: 15px; } +.win-title:hover { + background-color: #e4e4e4; +} + .win-topbtn { border: solid black; border-width: thin; @@ -168,6 +176,14 @@ tr:nth-child(even) { font-weight: bold; } +.win-topbtn:hover { + background-color: #d7d7d7; +} + +.win-topbtn.close:hover { + background-color: #f29696; +} + .win-resize { position: absolute; bottom: -4px; diff --git a/src/styles/theme-arkeros.css b/src/styles/theme-arkeros.css index a2fa131..2f300ee 100644 --- a/src/styles/theme-arkeros.css +++ b/src/styles/theme-arkeros.css @@ -22,6 +22,10 @@ tr:nth-child(odd) { color: #ff91a6; } +.window { + background: linear-gradient(1deg,#61dcea ,#ffb1e1,#ecffec,#fff9b1,#61dcea); +} + .actionbuttons:hover, .menu > div:hover, .channeldd, .contextmenu { background: linear-gradient(160deg, #61dcea , #ffb1e1, #ecffec, #ffb1e1, #61dcea); } diff --git a/src/styles/theme-dark-round.css b/src/styles/theme-dark-round.css index befe8cd..c8f61e8 100644 --- a/src/styles/theme-dark-round.css +++ b/src/styles/theme-dark-round.css @@ -30,9 +30,25 @@ tr:nth-child(even) { background-color: #505050; } -.chatbox { - background-color: rgba(59, 59, 59, 0.8); - border-radius: 8px; +.window { + background-color: rgba(59, 59, 59, 0.98); + border-radius: 5px; +} + +.win-title { + background-color: #c1c1c1; +} + +.win-title:hover { + background-color: #dedede; +} + +.win-topbtn { + background-color: #a6a4a4; +} + +.win-topbtn:hover { + background-color: #8b8b8b; } .channeldd, .contextmenu { @@ -102,12 +118,12 @@ tr:nth-child(even) { color: hsla(220, 100%, 95.3%, 0.6); } -.ModalClose { +.ModalClose, .ModalRestore { background-color: #55555d; border-color: #dcddde; } -.ModalClose:hover { +.ModalClose:hover, .ModalRestore:hover { background-color: #6f6f75; } diff --git a/src/styles/theme-dark-sstraight.css b/src/styles/theme-dark-sstraight.css index 5c9e311..67cce08 100644 --- a/src/styles/theme-dark-sstraight.css +++ b/src/styles/theme-dark-sstraight.css @@ -30,11 +30,28 @@ tr:nth-child(even) { background-color: #505050; } -.chatbox { - background-color: rgba(59, 59, 59, 0.8); +.window { + background-color: rgba(59, 59, 59, 0.98); border-radius: 4px; } +.win-title { + background-color: #c1c1c1; + color: #8a5007; +} + +.win-title:hover { + background-color: #dedede; +} + +.win-topbtn { + background-color: #a6a4a4; +} + +.win-topbtn:hover { + background-color: #8b8b8b; +} + .channeldd, .contextmenu { background-color: #353535; color: #efefef; @@ -106,12 +123,12 @@ tr:nth-child(even) { color: hsla(220, 100%, 95.3%, 0.6); } -.ModalClose { +.ModalClose, .ModalRestore { background-color: #55555d; border-color: #dcddde; } -.ModalClose:hover { +.ModalClose:hover, .ModalRestore:hover { background-color: #6f6f75; } diff --git a/src/styles/theme-dark.css b/src/styles/theme-dark.css index fbf02d4..6b04e21 100644 --- a/src/styles/theme-dark.css +++ b/src/styles/theme-dark.css @@ -30,8 +30,24 @@ tr:nth-child(even) { background-color: #505050; } -.chatbox { - background-color: rgba(59, 59, 59, 0.8); +.window { + background-color: rgba(59, 59, 59, 0.98); +} + +.win-title { + background-color: #c1c1c1; +} + +.win-title:hover { + background-color: #dedede; +} + +.win-topbtn { + background-color: #a6a4a4; +} + +.win-topbtn:hover { + background-color: #8b8b8b; } .actionbuttons, .coorbox, .onlinebox, .cooldownbox, .palettebox, #historyselect { @@ -87,12 +103,12 @@ tr:nth-child(even) { color: hsla(220, 100%, 95.3%, 0.6); } -.ModalClose { +.ModalClose, .ModalRestore { background-color: #55555d; border-color: #dcddde; } -.ModalClose:hover { +.ModalClose:hover, .ModalRestore:hover { background-color: #6f6f75; } diff --git a/src/styles/theme-light-round.css b/src/styles/theme-light-round.css index 2abc172..ba1df29 100644 --- a/src/styles/theme-light-round.css +++ b/src/styles/theme-light-round.css @@ -1,7 +1,11 @@ -.chatbox, .channeldd, .contextmenu { +.channeldd, .contextmenu { border-radius: 8px; } +.window { + border-radius: 5px; +} + .chntop { margin-top: 4px; }