From f595c6d2ede10555a4aa7ba385652a51be992834 Mon Sep 17 00:00:00 2001 From: HF Date: Fri, 29 Jan 2021 23:48:12 +0100 Subject: [PATCH] add more translations --- .gitignore | 1 + i18n/de.mo | Bin 7614 -> 0 bytes i18n/de.po | 513 +++++++++++++++++-------- i18n/template.pot | 223 ++++++++++- src/components/ArchiveModal.jsx | 15 +- src/components/CanvasItem.jsx | 19 +- src/components/CanvasSelectModal.jsx | 24 +- src/components/Chat.jsx | 1 + src/components/ChatModal.jsx | 3 +- src/components/Converter.jsx | 51 ++- src/components/ForgotPasswordModal.jsx | 4 +- src/components/LogInForm.jsx | 8 +- src/components/ModalRoot.jsx | 2 + src/components/Rankings.jsx | 9 +- src/components/RegisterModal.jsx | 4 +- src/components/SettingsModal.jsx | 51 +-- src/components/UserArea.jsx | 23 +- src/components/UserAreaModal.jsx | 26 +- src/styles/default.css | 8 +- 19 files changed, 706 insertions(+), 279 deletions(-) delete mode 100644 i18n/de.mo diff --git a/.gitignore b/.gitignore index f524df6..db7c0bc 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ lol-cleaned.png clean.png utils/ocean-tiles/ocean utils/osm-tiles/osm +i18n/*.mo # Created by https://www.gitignore.io/api/node,webstorm diff --git a/i18n/de.mo b/i18n/de.mo deleted file mode 100644 index bf8b255d67de2f7da7ebbdc2468815fa420fee2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7614 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 PW&49};?J#h16KbAaK%Ji diff --git a/i18n/de.po b/i18n/de.po index c1eede1..b24d399 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -1,35 +1,96 @@ msgid "" msgstr "" -"Content-Type: text/plain; charset=utf-8\n" -"Plural-Forms: nplurals = 2; plural = (n != 1);\n" -"Language: de\n" -"mime-version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" +"Language: de\n" "MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals = 2; plural = (n != 1);\n" "X-Generator: Poedit 2.3\n" -#: src/components/ForgotPasswordModal.jsx:20 src/components/RegisterModal.jsx:21 -#: src/components/UserAreaModal.jsx:128 -msgid "Consider joining us on Guilded:" -msgstr "Triff uns und andere Spieler auf guilded:" +#: src/components/ExpandMenuButton.jsx:19 +msgid "Close Menu" +msgstr "Schließe Menü" -#: src/components/HelpModal.jsx:63 src/components/HelpModal.jsx:80 -msgid "Controls" -msgstr "Steuerung" +#: src/components/ExpandMenuButton.jsx:19 +msgid "Open Menu" +msgstr "Öffne Menü" -#: src/components/HelpModal.jsx:65 -msgid "Click a color in palette to select it" -msgstr "Klicke auf eine Farbe in der Palette um sie auszuwählen" +#: src/components/ChatButton.jsx:61 +msgid "Close Chat" +msgstr "Schließe Chat" -#: src/components/HelpModal.jsx:66 -#, javascript-format -msgid "Press ${ bindG } to toggle grid" -msgstr "Drücke ${ bindG } um das Raster ein- und auszuschalten" +#: src/components/ChatButton.jsx:61 +msgid "Open Chat" +msgstr "Öffne Chat" + +#: src/components/OnlineBox.jsx:22 +msgid "User online" +msgstr "Spieler anwesend" + +#: src/components/OnlineBox.jsx:25 +msgid "Pixel gesetzt" +msgstr "Pixel plaziert" + +#: src/components/CanvasSwitchButton.jsx:20 +msgid "Canvas Selection" +msgstr "Leinwand auswahl" + +#: src/components/CoordinatesBox.jsx:26 +msgid "Copy to Clipboard" +msgstr "Kopiere in die Zwischenablage" + +#: src/components/DownloadButton.jsx:37 +msgid "Make Screenshot" +msgstr "Erstelle eine Bildschirmaufnahme" + +#: src/components/LogInButton.jsx:20 src/components/UserAreaModal.jsx:160 +msgid "User Area" +msgstr "Spielerbereich" + +#: src/components/SettingsButton.jsx:20 src/components/SettingsModal.jsx:267 +msgid "Settings" +msgstr "Einstellungen" + +#: src/components/HelpButton.jsx:20 +msgid "Help" +msgstr "Hilfe" + +#: src/components/Chat.jsx:143 +msgid "Channel settings" +msgstr "Channel Einstellungen" + +#: src/components/Chat.jsx:152 +msgid "maximize" +msgstr "maximieren" + +#: src/components/Chat.jsx:168 +msgid "Start chatting here" +msgstr "Beginne hier zu chatten" + +#: src/components/Chat.jsx:200 +msgid "Chat here" +msgstr "Chatte hier" + +#: src/components/Chat.jsx:219 +msgid "You must be logged in to chat" +msgstr "Melde dich an um zu chatten" + +#: src/components/GlobeButton.jsx:31 +msgid "Globe View" +msgstr "Globus Ansicht" + +#: src/components/PalselButton.jsx:25 +msgid "Close Palette" +msgstr "Schließe Palette" + +#: src/components/PalselButton.jsx:25 +msgid "Open Palette" +msgstr "Öffne Palette" #: src/components/HelpModal.jsx:34 src/components/HelpModal.jsx:35 msgid "Privacy Policy" @@ -41,11 +102,38 @@ msgstr "Nutzungsbedingungen" #: src/components/HelpModal.jsx:40 msgid "your IP" -msgstr "deine IP" +msgstr "deiner IP" #: src/components/HelpModal.jsx:46 msgid "Place color pixels on a large canvas with other players online!" -msgstr "Zeichne gemeinsam mit anderen Spielern auf einer großen Leinwand online!" +msgstr "" +"Zeichne gemeinsam mit anderen Spielern auf einer großen Leinwand online!" + +#: src/components/HelpModal.jsx:47 +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 requiremnts 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:51 +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:52 msgid "Have fun!" @@ -63,6 +151,15 @@ msgstr "Quelltext auf " msgid "Map Data" msgstr "Karten Dateien" +#: src/components/HelpModal.jsx:57 +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:59 msgid "Detected as Proxy?" msgstr "Als Proxy erkannt?" @@ -70,14 +167,27 @@ msgstr "Als Proxy erkannt?" #: src/components/HelpModal.jsx:61 #, 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." +"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." +"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:63 src/components/HelpModal.jsx:80 +msgid "Controls" +msgstr "Steuerung" + +#: src/components/HelpModal.jsx:65 +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:66 +#, javascript-format +msgid "Press ${ bindG } to toggle grid" +msgstr "Drücke ${ bindG } um das Raster ein- und auszuschalten" #: src/components/HelpModal.jsx:67 msgid "Press ${ bindX } to toggle showing of pixel activity" @@ -104,7 +214,8 @@ msgstr "Drücke ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } zum navigieren" #: src/components/HelpModal.jsx:72 src/components/HelpModal.jsx:83 #, javascript-format -msgid "Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move" +msgid "" +"Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move" msgstr "" "Drücke ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } zum " "navigieren" @@ -112,7 +223,8 @@ msgstr "" #: src/components/HelpModal.jsx:73 msgid "Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move" msgstr "" -"Ziehe mit der ${ mouseSymbol } Maus oder ${ touchSymbol } wische zum navigieren" +"Ziehe mit der ${ mouseSymbol } Maus oder ${ touchSymbol } wische zum " +"navigieren" #: src/components/HelpModal.jsx:74 #, javascript-format @@ -124,24 +236,32 @@ msgstr "" #: src/components/HelpModal.jsx:75 msgid "Hold left ${ bindShift } for placing while moving mouse" msgstr "" -"Halte die linke ${ bindShift } Taste gedrückt um Pixel unter der Maus zu setzen" +"Halte die linke ${ bindShift } Taste gedrückt um Pixel unter der Maus zu " +"setzen" #: src/components/HelpModal.jsx:76 #, javascript-format msgid "" -"Hold right ${ bindShift } for placing while moving mouse according to historical " -"view" +"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" +"Halte die rechte ${ bindShift } Taste gedrückt um Pixel unter der Maus nach " +"der aktuellen historischen Ansicht zu setzen" + +#: src/components/HelpModal.jsx:77 src/components/HelpModal.jsx:88 +#, 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:78 src/components/HelpModal.jsx:90 msgid "" -"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to select " -"current hovering color" +"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" +"Klicke ${ mouseSymbol } die mittlere Maustaste oder ${ touchSymbol } tippe " +"lange um eine Farbe von der Leinwand auszuwählen" #: src/components/HelpModal.jsx:84 msgid "Press ${ bindE } and ${ bindC } to fly up and down" @@ -150,35 +270,31 @@ msgstr "Drücke ${ bindE } oder ${ bindC } um hoch und runter zu fliegen" #: src/components/HelpModal.jsx:85 #, 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" +msgstr "" +"${ mouseSymbol } Halte die linke Maustaste gedrückt und ziehe um zu rotieren" #: src/components/HelpModal.jsx:86 #, javascript-format msgid "" -"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse button " -"and drag to zoom" +"${ 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" +"${ mouseSymbol } Scrolle mit dem Mausrad oder halte ${ mouseSymbol } die " +"mittlere Maustaste gedrückt und ziehe um zu zoomen" #: src/components/HelpModal.jsx:87 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:77 src/components/HelpModal.jsx:88 -#, javascript-format -msgid "${ mouseSymbol } Left click or ${ touchSymbol } tap to place a pixel" -msgstr "" -"${ mouseSymbol } Linksklick oder ${ touchSymbol } tippe um ein Pixel zu platzieren" +"${ mouseSymbol } Halte die rechte Maustaste gedrückt und ziehe um dich zu " +"bewegen" #: src/components/HelpModal.jsx:89 #, 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" +"${ mouseSymbol } Rechtsklick oder ${ touchSymbol } tippe zweimal um ein " +"Voxel zu entfernen" #: src/components/HelpModal.jsx:92 msgid "Partners:" @@ -190,13 +306,13 @@ msgid "" "This site is protected by reCAPTCHA and the Google ${ reCaptchaPP } and " "${ reCaptchaTOS } apply." msgstr "" -"Diese Seite ist mit Google reCaptcha geschützt und deren ${ reCaptchaPP } und " -"${ reCaptchaTOS } gelten." +"Diese Seite ist mit Google reCaptcha geschützt und deren ${ reCaptchaPP } " +"und ${ reCaptchaTOS } gelten." #: src/components/HelpModal.jsx:103 msgid "" -"This site is protected by hCAPTCHA and its ${ hCaptchaPP } and ${ hCaptchaTOS } " -"apply." +"This site is protected by hCAPTCHA and its ${ hCaptchaPP } and " +"${ hCaptchaTOS } apply." msgstr "" "Diese Seite ist mit hCaptcha geschützt und deren ${ hCaptchaPP } und " "${ hCaptchaTOS } gelten." @@ -205,125 +321,211 @@ msgstr "" msgid "Welcome to PixelPlanet.fun" msgstr "Willkommen auf PixelPlanet.fun" -#: src/components/HelpModal.jsx:47 +#: 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 Mail:" +msgstr "Mit Mail anmelden:" + +#: src/components/UserAreaModal.jsx:42 +msgid "I forgot my Password." +msgstr "Ich habe mein Passwort vergessen" + +#: 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: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/SettingsModal.jsx:123 +msgid "Show Grid" +msgstr "Zeige Raster" + +#: src/components/SettingsModal.jsx:124 +msgid "Turn on grid to highlight pixel borders." +msgstr "Aktiviere das Raster um Pixelgrenzen zu sehen." + +#: src/components/SettingsModal.jsx:130 +msgid "Show Pixel Activity" +msgstr "Zeige Pixelaktivität" + +#: src/components/SettingsModal.jsx:131 +msgid "Show circles where pixels are placed." +msgstr "Zeige Kreise wo Pixel von Spielern gesetzt werden" + +#: src/components/SettingsModal.jsx:137 +msgid "Disable Game Sounds" +msgstr "Deaktiviere Spiel Ton" + +#: src/components/SettingsModal.jsx:139 +msgid "All sound effects will be disabled." +msgstr "alle Toneffekte werden ausgeschaltet" + +#: src/components/SettingsModal.jsx:145 +msgid "Enable chat notifications" +msgstr "Aktiviere Chat Benachrichtigungen" + +#: src/components/SettingsModal.jsx:146 +msgid "Play a sound when new chat messages arrive" +msgstr "Spiele ein Geräusch wenn eine neue Chat Nachricht eintrifft" + +#: src/components/SettingsModal.jsx:151 +msgid "Auto Zoom In" +msgstr "Automaticher Zoom" + +#: src/components/SettingsModal.jsx:153 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 requiremnts 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." +"Zoom in instead of placing a pixel when you tap the canvas and your zoom is " +"small." 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." +"Zoome rein anstatt ein Pixel zu setzen wenn auf kleineren Zoomlevel geklickt " +"wird." -#: src/components/HelpModal.jsx:51 +#: src/components/SettingsModal.jsx:158 +msgid "Compact Palette" +msgstr "Kompakte Palette" + +#: src/components/SettingsModal.jsx:160 +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:165 +msgid "Potato Mode" +msgstr "Erdapfel Modus" + +#: src/components/SettingsModal.jsx:166 +msgid "For when you are playing on a potato." +msgstr "Wenn du auf einer Kartoffel spielst." + +#: src/components/SettingsModal.jsx:171 +msgid "Light Grid" +msgstr "Helles Raster" + +#: src/components/SettingsModal.jsx:172 +msgid "Show Grid in white instead of black." +msgstr "Zeige das Raster in weiß anstatt schwarz" + +#: src/components/SettingsModal.jsx:179 +msgid "Historical View" +msgstr "Historische Ansicht" + +#: src/components/SettingsModal.jsx:180 +msgid "Check out past versions of the canvas." +msgstr "Siehe vergangene Versionen der Leinwand" + +#: src/components/SettingsModal.jsx:188 +msgid "Themes" +msgstr "Themen" + +#: src/components/SettingsModal.jsx:189 +msgid "How pixelplanet should look like." +msgstr "Wähle aus wie pixelplanet aussehen soll" + +#: src/components/ArchiveModal.jsx:20 msgid "" -"Higher zoomlevels take some time to update, the 3D globe gets updated at least " -"once per day." +"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 "" -"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:57 +#: src/components/ArchiveModal.jsx:22 msgid "" -"The bare map data that we use, together with converted OpenStreetMap tiles for " -"orientation, can be downloaded from mega.nz here: " +"Here we collect those canvases to archive them in a proper way (which is " +"currently just one)." msgstr "" -"Die Kartendaten welche wir benutzen, zusammen mit konvertierten OpenStreetMap " -"Kacheln zur orientierung können auf mega.nz heruntergeladen werden: " +"Hier sammeln wir vergangene Leinwände um sie ordentlich zu archivieren (zur " +"Zeit nur eine)." -#: src/components/CanvasSwitchButton.jsx:20 -msgid "Canvas Selection" -msgstr "Leinwand auswahl" +#: src/components/ArchiveModal.jsx:24 +msgid "Political Compass Canvas" +msgstr "Politischer Kompass Leinwand" -#: src/components/Chat.jsx:143 -msgid "Channel settings" -msgstr "Channel Einstellungen" +#: 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 coolodwn 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/Chat.jsx:152 -msgid "maximize" -msgstr "maximieren" +#: 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/Chat.jsx:168 -msgid "Start chatting here" -msgstr "Beginne hier zu chatten" +#: src/components/ArchiveModal.jsx:50 +msgid "Canvas Archive" +msgstr "Leinwand Archiv" -#: src/components/Chat.jsx:200 -msgid "Chat here" -msgstr "Chatte hier" +#: src/components/ForgotPasswordModal.jsx:16 +msgid "Enter your mail adress and we will send you a new password:" +msgstr "Gib deine Mail Adresse an und wir senden dir ein neues Passwort." -#: src/components/ChatButton.jsx:61 -msgid "Close Chat" -msgstr "Schließe Chat" +#: src/components/ForgotPasswordModal.jsx:37 +msgid "Restore my Password" +msgstr "Passwort wiederherstellen" -#: src/components/ChatButton.jsx:61 -msgid "Open Chat" -msgstr "Öffne Chat" +#: src/components/ChatModal.jsx:35 +msgid "Chat" +msgstr "Unterhaltung" -#: src/components/CoordinatesBox.jsx:26 -msgid "Copy to Clipboard" -msgstr "Kopiere in die Zwischenablage" +#: src/components/LogInForm.jsx:104 +msgid "Name or Email" +msgstr "Name oder Email" -#: src/components/DownloadButton.jsx:37 -msgid "Make Screenshot" -msgstr "Erstelle eine Bildschirmaufnahme" +#: src/components/LogInForm.jsx:111 +msgid "Password" +msgstr "Passwort" -#: src/components/ExpandMenuButton.jsx:19 -msgid "Close Menu" -msgstr "Schließe Menü" +#: src/components/LogInForm.jsx:115 +msgid "LogIn" +msgstr "Einloggen" -#: src/components/ExpandMenuButton.jsx:19 -msgid "Open Menu" -msgstr "Öffne Menü" +#: src/components/Rankings.jsx:49 +msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC." +msgstr "" +"Die Rangliste wird alle 5min aktualisiert. Die tägliche Liste wird um " +"Mitternacht UTC zurückgestellt." -#: src/components/GlobeButton.jsx:31 -msgid "Globe View" -msgstr "Globus Ansicht" - -#: src/components/HelpButton.jsx:20 -msgid "Help" -msgstr "Hilfe" - -#: src/components/LogInButton.jsx:20 -msgid "User Area" -msgstr "Spielerbereich" - -#: src/components/OnlineBox.jsx:21 -msgid "User online" -msgstr "Spieler anwesend" - -#: src/components/OnlineBox.jsx:23 -msgid "Pixel gesetzt" -msgstr "Pixel plaziert" - -#: src/components/PalselButton.jsx:25 -msgid "Close Palette" -msgstr "Schließe Palette" - -#: src/components/PalselButton.jsx:25 -msgid "Open Palette" -msgstr "Öffne Palette" - -#: src/components/SettingsButton.jsx:20 -msgid "Settings" -msgstr "Einstellungen" - -#: src/components/HelpModal.jsx:15 +#: src/components/HelpModal.jsx:15 src/components/SettingsModal.jsx:125 msgctxt "keybinds" msgid "G" msgstr "" -#: src/components/HelpModal.jsx:16 +#: src/components/HelpModal.jsx:16 src/components/SettingsModal.jsx:132 msgctxt "keybinds" msgid "X" msgstr "" -#: src/components/HelpModal.jsx:17 +#: src/components/HelpModal.jsx:17 src/components/SettingsModal.jsx:182 msgctxt "keybinds" msgid "H" msgstr "" @@ -338,6 +540,11 @@ msgctxt "keybinds" msgid "Q" msgstr "" +#: src/components/HelpModal.jsx:20 +msgctxt "keybinds" +msgid "E" +msgstr "" + #: src/components/HelpModal.jsx:21 msgctxt "keybinds" msgid "W" @@ -358,11 +565,6 @@ msgctxt "keybinds" msgid "D" msgstr "" -#: src/components/HelpModal.jsx:20 -msgctxt "keybinds" -msgid "E" -msgstr "" - #: src/components/HelpModal.jsx:31 msgctxt "keybinds" msgid "Shift" @@ -372,3 +574,8 @@ msgstr "" msgctxt "keybinds" msgid "C" msgstr "" + +#: src/components/SettingsModal.jsx:140 +msgctxt "keybinds" +msgid "M" +msgstr "" diff --git a/i18n/template.pot b/i18n/template.pot index 117a62e..2bfc78f 100644 --- a/i18n/template.pot +++ b/i18n/template.pot @@ -11,14 +11,6 @@ msgstr "" msgid "Open Menu" msgstr "" -#: src/components/OnlineBox.jsx:22 -msgid "User online" -msgstr "" - -#: src/components/OnlineBox.jsx:25 -msgid "Pixel gesetzt" -msgstr "" - #: src/components/ChatButton.jsx:61 msgid "Close Chat" msgstr "" @@ -27,6 +19,14 @@ msgstr "" msgid "Open Chat" msgstr "" +#: src/components/OnlineBox.jsx:22 +msgid "User online" +msgstr "" + +#: src/components/OnlineBox.jsx:25 +msgid "Pixel gesetzt" +msgstr "" + #: src/components/CanvasSwitchButton.jsx:20 msgid "Canvas Selection" msgstr "" @@ -39,12 +39,14 @@ msgstr "" msgid "Make Screenshot" msgstr "" -#: src/components/SettingsButton.jsx:20 -msgid "Settings" +#: src/components/LogInButton.jsx:20 +#: src/components/UserAreaModal.jsx:160 +msgid "User Area" msgstr "" -#: src/components/LogInButton.jsx:20 -msgid "User Area" +#: src/components/SettingsButton.jsx:20 +#: src/components/SettingsModal.jsx:267 +msgid "Settings" msgstr "" #: src/components/HelpButton.jsx:20 @@ -75,6 +77,14 @@ msgstr "" msgid "Globe View" msgstr "" +#: src/components/PalselButton.jsx:25 +msgid "Close Palette" +msgstr "" + +#: src/components/PalselButton.jsx:25 +msgid "Open Palette" +msgstr "" + #: src/components/HelpModal.jsx:34 #: src/components/HelpModal.jsx:35 msgid "Privacy Policy" @@ -268,31 +278,205 @@ msgstr "" msgid "Welcome to PixelPlanet.fun" msgstr "" -#: src/components/PalselButton.jsx:25 -msgid "Close Palette" +#: src/components/UserAreaModal.jsx:33 +msgid "Login to access more features and stats." msgstr "" -#: src/components/PalselButton.jsx:25 -msgid "Open Palette" +#: src/components/UserAreaModal.jsx:35 +msgid "Login with Mail:" +msgstr "" + +#: src/components/UserAreaModal.jsx:42 +msgid "I forgot my Password." +msgstr "" + +#: src/components/UserAreaModal.jsx:84 +msgid "or register here:" +msgstr "" + +#: src/components/UserAreaModal.jsx:85 +msgid "Register" +msgstr "" + +#: src/components/UserAreaModal.jsx:123 +msgid "Loading..." msgstr "" #: src/components/ForgotPasswordModal.jsx:20 #: src/components/RegisterModal.jsx:21 -#: src/components/UserAreaModal.jsx:128 +#: 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/SettingsModal.jsx:123 +msgid "Show Grid" +msgstr "" + +#: src/components/SettingsModal.jsx:124 +msgid "Turn on grid to highlight pixel borders." +msgstr "" + +#: src/components/SettingsModal.jsx:130 +msgid "Show Pixel Activity" +msgstr "" + +#: src/components/SettingsModal.jsx:131 +msgid "Show circles where pixels are placed." +msgstr "" + +#: src/components/SettingsModal.jsx:137 +msgid "Disable Game Sounds" +msgstr "" + +#: src/components/SettingsModal.jsx:139 +msgid "All sound effects will be disabled." +msgstr "" + +#: src/components/SettingsModal.jsx:145 +msgid "Enable chat notifications" +msgstr "" + +#: src/components/SettingsModal.jsx:146 +msgid "Play a sound when new chat messages arrive" +msgstr "" + +#: src/components/SettingsModal.jsx:151 +msgid "Auto Zoom In" +msgstr "" + +#: src/components/SettingsModal.jsx:153 +msgid "" +"Zoom in instead of placing a pixel when you tap the canvas and your zoom is " +"small." +msgstr "" + +#: src/components/SettingsModal.jsx:158 +msgid "Compact Palette" +msgstr "" + +#: src/components/SettingsModal.jsx:160 +msgid "Display Palette in a compact form that takes less screen space." +msgstr "" + +#: src/components/SettingsModal.jsx:165 +msgid "Potato Mode" +msgstr "" + +#: src/components/SettingsModal.jsx:166 +msgid "For when you are playing on a potato." +msgstr "" + +#: src/components/SettingsModal.jsx:171 +msgid "Light Grid" +msgstr "" + +#: src/components/SettingsModal.jsx:172 +msgid "Show Grid in white instead of black." +msgstr "" + +#: src/components/SettingsModal.jsx:179 +msgid "Historical View" +msgstr "" + +#: src/components/SettingsModal.jsx:180 +msgid "Check out past versions of the canvas." +msgstr "" + +#: src/components/SettingsModal.jsx:188 +msgid "Themes" +msgstr "" + +#: src/components/SettingsModal.jsx:189 +msgid "How pixelplanet should look like." +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 coolodwn 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 adress 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" +msgstr "" + +#: src/components/LogInForm.jsx:104 +msgid "Name or Email" +msgstr "" + +#: src/components/LogInForm.jsx:111 +msgid "Password" +msgstr "" + +#: src/components/LogInForm.jsx:115 +msgid "LogIn" +msgstr "" + +#: src/components/Rankings.jsx:49 +msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC." +msgstr "" + #: src/components/HelpModal.jsx:15 +#: src/components/SettingsModal.jsx:125 msgctxt "keybinds" msgid "G" msgstr "" #: src/components/HelpModal.jsx:16 +#: src/components/SettingsModal.jsx:132 msgctxt "keybinds" msgid "X" msgstr "" #: src/components/HelpModal.jsx:17 +#: src/components/SettingsModal.jsx:182 msgctxt "keybinds" msgid "H" msgstr "" @@ -340,4 +524,9 @@ msgstr "" #: src/components/HelpModal.jsx:32 msgctxt "keybinds" msgid "C" +msgstr "" + +#: src/components/SettingsModal.jsx:140 +msgctxt "keybinds" +msgid "M" msgstr "" \ No newline at end of file diff --git a/src/components/ArchiveModal.jsx b/src/components/ArchiveModal.jsx index ba72a5a..ec9d076 100644 --- a/src/components/ArchiveModal.jsx +++ b/src/components/ArchiveModal.jsx @@ -5,6 +5,7 @@ /* eslint-disable max-len */ import React from 'react'; +import { t } from 'ttag'; const imageStyle = { maxWidth: '20%', @@ -16,19 +17,19 @@ const imageStyle = { const ArchiveModal = () => (

- 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.
- Here we collect those canvases to archive them in a proper way (which is currently just one). + {t`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.`}
+ {t`Here we collect those canvases to archive them in a proper way (which is currently just one).`}

-

Political Compass Canvas

+

{t`Political Compass Canvas`}

political-compass

- 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 coolodwn and 60s stacking. It got launched on May 11th and remained active for months till it got shut down on November 30th.
- 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. + {t`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 coolodwn and 60s stacking. It got launched on May 11th and remained active for months till it got shut down on November 30th.`}
+ {t`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.`}

Timelapse: @@ -46,7 +47,7 @@ const ArchiveModal = () => ( const data = { content: ArchiveModal, - title: 'Canvas Archive', + title: t`Canvas Archive`, }; export default data; diff --git a/src/components/CanvasItem.jsx b/src/components/CanvasItem.jsx index 84431a0..4a5375c 100644 --- a/src/components/CanvasItem.jsx +++ b/src/components/CanvasItem.jsx @@ -5,6 +5,7 @@ import React from 'react'; import { connect } from 'react-redux'; +import { t } from 'ttag'; import { THREE_CANVAS_HEIGHT } from '../core/constants'; import { selectCanvas } from '../actions'; @@ -42,25 +43,25 @@ const CanvasItem = ({ canvasId, canvas, changeCanvas }) => (

{canvas.title}
{canvas.desc}
- Cooldown: -   + {t`Cooldown`}:  {(canvas.bcd !== canvas.pcd) ? {canvas.bcd / 1000}s / {canvas.pcd / 1000}s : {canvas.bcd / 1000}s}
- Stacking till + {t`Stacking till`}:  {canvas.cds / 1000}s
- Ranked: -   + {t`Ranked`}:  {(canvas.ranked) ? 'Yes' : 'No'}
- {(canvas.req !== -1) ? Requirements:
: null} + {(canvas.req !== -1) ? {t`Requirements`}:
: null} - {(canvas.req !== -1) ? User Account : null} - {(canvas.req > 0) ? and {canvas.req} Pixels set : null} + {(canvas.req !== -1) ? {t`User Account`} : null} + {(canvas.req > 0) + ? {t`and ${canvas.req} Pixels set`} + : null} {(canvas.req !== -1) ?
: null} - Dimensions: + {t`Dimensions`}:  {canvas.size} x {canvas.size} {(canvas.v) ? x {THREE_CANVAS_HEIGHT} Voxels diff --git a/src/components/CanvasSelectModal.jsx b/src/components/CanvasSelectModal.jsx index ae1f85b..b2d23bb 100644 --- a/src/components/CanvasSelectModal.jsx +++ b/src/components/CanvasSelectModal.jsx @@ -5,6 +5,7 @@ import React from 'react'; import { connect } from 'react-redux'; +import { t } from 'ttag'; import CanvasItem from './CanvasItem'; import { showArchiveModal } from '../actions'; @@ -25,24 +26,23 @@ const CanvasSelectModal = ({ }} >

- 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  + {t`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:`}  here. + >{t`Archive`})

{ - Object.keys(canvases).map((canvasId) => ( - (canvases[canvasId].hid && !showHiddenCanvases) - ? null - : - )) - } + Object.keys(canvases).map((canvasId) => ( + (canvases[canvasId].hid && !showHiddenCanvases) + ? null + : + )) + }

); @@ -64,7 +64,7 @@ function mapStateToProps(state: State) { const data = { content: connect(mapStateToProps, mapDispatchToProps)(CanvasSelectModal), - title: 'Canvas Selection', + title: t`Canvas Selection`, }; export default data; diff --git a/src/components/Chat.jsx b/src/components/Chat.jsx index c4122da..f299fdf 100644 --- a/src/components/Chat.jsx +++ b/src/components/Chat.jsx @@ -200,6 +200,7 @@ const Chat = ({ placeholder={t`Chat here`} /> -

Credit for the Palette of the Moon goes to  - starhouse.

+

+ {jt`Credit for the Palette of the Moon goes to ${starhouseLink}.`} +

-

Image Converter

-

Convert an image to canvas colors

+

{t`Image Converter`}

+

{t`Convert an image to canvas colors`}

-

Choose Strategy:  +

{t`Choose Strategy`}: 

-

Choose Color Mode:  +

{t`Choose Color Mode`}:    - Offset Y:  + {t`Offset`} Y:  - Scale Image + {t`Scale Image`}

{(scalingEnabled) ? ( @@ -471,7 +480,7 @@ function Converter({ display: 'inline-block', }} > - Width:  + {t`Width`}:    - Height:  + {t`Height`}:  - Keep Ratio + {t`Keep Ratio`}

- Anti Aliasing + {t`Anti Aliasing`}

) @@ -585,7 +594,7 @@ function Converter({ type="button" onClick={downloadOutput} > - Download Template + {t`Download Template`} {(typeof ClipboardItem === 'undefined') ? null @@ -597,7 +606,7 @@ function Converter({ copyCanvasToClipboard(output); }} > - Copy to Clipboard + {t`Copy to Clipboard`} )} diff --git a/src/components/ForgotPasswordModal.jsx b/src/components/ForgotPasswordModal.jsx index a9ac16e..bef4d3f 100644 --- a/src/components/ForgotPasswordModal.jsx +++ b/src/components/ForgotPasswordModal.jsx @@ -13,7 +13,7 @@ import NewPasswordForm from './NewPasswordForm'; const ForgotPasswordModal = ({ login }) => (

- Enter your mail adress and we will send you a new password: + {t`Enter your mail adress and we will send you a new password:`}


@@ -34,7 +34,7 @@ function mapDispatchToProps(dispatch) { const data = { content: connect(null, mapDispatchToProps)(ForgotPasswordModal), - title: 'Restore my Password', + title: t`Restore my Password`, }; export default data; diff --git a/src/components/LogInForm.jsx b/src/components/LogInForm.jsx index 128c30a..6fa8047 100644 --- a/src/components/LogInForm.jsx +++ b/src/components/LogInForm.jsx @@ -4,6 +4,8 @@ */ import React from 'react'; import { connect } from 'react-redux'; +import { t } from 'ttag'; + import { validateEMail, validateName, validatePassword, parseAPIresponse, } from '../utils/validation'; @@ -99,18 +101,18 @@ class LogInForm extends React.Component { style={inputStyles} onChange={(evt) => this.setState({ nameoremail: evt.target.value })} type="text" - placeholder="Name or Email" + placeholder={t`Name or Email`} />
this.setState({ password: evt.target.value })} type="password" - placeholder="Password" + placeholder={t`Password`} />

diff --git a/src/components/ModalRoot.jsx b/src/components/ModalRoot.jsx index ae26e8d..eb65320 100644 --- a/src/components/ModalRoot.jsx +++ b/src/components/ModalRoot.jsx @@ -9,6 +9,7 @@ import React from 'react'; import Modal from 'react-modal'; import { connect } from 'react-redux'; import { MdClose } from 'react-icons/md'; +import { t } from 'ttag'; import { hideModal, @@ -56,6 +57,7 @@ const ModalRoot = ({ modalType, modalOpen, close }) => { className="ModalClose" role="button" label="close" + title={t`Close`} tabIndex={-1} > diff --git a/src/components/Rankings.jsx b/src/components/Rankings.jsx index 91575ce..94fad9b 100644 --- a/src/components/Rankings.jsx +++ b/src/components/Rankings.jsx @@ -3,7 +3,10 @@ * @flow */ +/* eslint-disable max-len */ + import React from 'react'; +import { t } from 'ttag'; import TotalRankings from './TotalRankings'; import DailyRankings from './DailyRankings'; @@ -31,7 +34,7 @@ class Rankings extends React.Component { onClick={() => { this.setState({ orderDaily: false }); }} - >Total
| + >{t`Total`}
| { this.setState({ orderDaily: true }); }} - >Daily + >{t`Daily`}

{(orderDaily) ? : }

- Ranking updates every 5 min. Daily rankings get reset at midnight UTC. + {t`Ranking updates every 5 min. Daily rankings get reset at midnight UTC.`}

); diff --git a/src/components/RegisterModal.jsx b/src/components/RegisterModal.jsx index f4bee9f..64dcf89 100644 --- a/src/components/RegisterModal.jsx +++ b/src/components/RegisterModal.jsx @@ -15,7 +15,7 @@ import SignUpForm from './SignUpForm'; const RegisterModal = ({ login }) => (

-

Register new account here


+

{t`Register new account here`}


{t`Consider joining us on Guilded:`}  @@ -35,7 +35,7 @@ function mapDispatchToProps(dispatch) { const data = { content: connect(null, mapDispatchToProps)(RegisterModal), - title: 'Register New Account', + title: t`Register New Account`, }; export default data; diff --git a/src/components/SettingsModal.jsx b/src/components/SettingsModal.jsx index abd8d9a..fd90daf 100644 --- a/src/components/SettingsModal.jsx +++ b/src/components/SettingsModal.jsx @@ -5,6 +5,7 @@ import React from 'react'; import { connect } from 'react-redux'; +import { c, t } from 'ttag'; import MdToggleButtonHover from './MdToggleButtonHover'; import { @@ -119,73 +120,73 @@ function SettingsModal({ return (

{ (window.backupurl) ? ( ) : null } {(typeof window.availableStyles !== 'undefined') && (

-

Your name is: {name}

( +

{t`Your name is: ${name}`}

( Log out | + > {t`Log out`} | Change Username | + > {t`Change Username`} | {(mailreg) && ( @@ -104,7 +105,7 @@ class UserArea extends React.Component { deleteAccountExtended: false, socialSettingsExtended: false, })} - > Change Mail | + > {t`Change Mail`} | )} Change Password | + > {t`Change Password`} | Delete Account ) + > {t`Delete Account`} )
( Social Settings ) + > {t`Social Settings`} )

{(changePasswdExtended) diff --git a/src/components/UserAreaModal.jsx b/src/components/UserAreaModal.jsx index 0c633cf..981e82b 100644 --- a/src/components/UserAreaModal.jsx +++ b/src/components/UserAreaModal.jsx @@ -29,16 +29,18 @@ const logoStyle = { const LogInArea = ({ register, forgotPassword, me }) => (

-

Login to access more features and stats.


-

Login with Mail:

+

+ {t`Login to access more features and stats.`} +


+

{t`Login with Mail:`}

- I forgot my Password.

-

or login with:

+ {t`I forgot my Password.`}

+

{t`or login with:`}

( alt="Reddit" /> -

or register here:

- +

{t`or register here:`}

+

); @@ -102,23 +104,23 @@ const UserAreaModal = ({ ) : ( -
+
-
+
-
+
Loading...
}>
{userlvl && ( -
- Loading...
}> +
+ {t`Loading...`}
}>
@@ -155,7 +157,7 @@ function mapStateToProps(state: State) { const data = { content: connect(mapStateToProps, mapDispatchToProps)(UserAreaModal), - title: 'User Area', + title: t`User Area`, }; export default data; diff --git a/src/styles/default.css b/src/styles/default.css index 0ce6466..6cab70e 100644 --- a/src/styles/default.css +++ b/src/styles/default.css @@ -90,6 +90,12 @@ a:hover { padding: 0.5rem 0.75rem; } +.tab-list-item:hover { + background-color: #6d6d6d; + border: solid #ccc; + border-width: 1px 1px 0 1px; +} + .tab-list-active { background-color: white; border: solid #ccc; @@ -519,7 +525,7 @@ tr:nth-child(even) { height: 22px; } -.chn.selected, .chn:hover, .channelbtn.selected, .channelbtn:hover { +.chn.selected, .chn:hover, .channelbtn.selected, .channelbtn:hover, #sendbtn:hover { cursor: pointer; background-color: #c9c9c9; }