From 082cc92b659314c4228fd475aec4ba2f49349b85 Mon Sep 17 00:00:00 2001 From: HF Date: Mon, 24 Jan 2022 11:45:28 +0100 Subject: [PATCH] add catalonian translation --- i18n/README.md | 2 +- i18n/ca.po | 1356 ++++++++++++++++++++++++++++++++ i18n/ssr-ca.po | 472 +++++++++++ i18n/template-ssr.pot | 24 +- i18n/template.pot | 182 ++--- package-lock.json | 267 +++---- package.json | 16 +- public/cf/ct.gif | Bin 0 -> 238 bytes src/utils/location.js | 1 + webpack.config.server.babel.js | 2 - 10 files changed, 2043 insertions(+), 279 deletions(-) create mode 100644 i18n/ca.po create mode 100644 i18n/ssr-ca.po create mode 100644 public/cf/ct.gif diff --git a/i18n/README.md b/i18n/README.md index 58390fc..86751ab 100644 --- a/i18n/README.md +++ b/i18n/README.md @@ -4,7 +4,7 @@ Two translation files for each language are needed, `ssr-[locale].po` and `[loca Translation files can be created out of the templates [template.pot](https://github.com/pixelplanetdev/pixelplanet/raw/master/i18n/template.pot) and [template-ssr.pot](https://github.com/pixelplanetdev/pixelplanet/raw/master/i18n/template-ssr.pot). They are standard GNU gettext files and can be edited in any ordinary texteditor or po-Editor. -All translated languages will get an own chat channel in the future that just people who use this language can access. +All translated languages get an own chat channel that just people who use this language can access. ## With poedit diff --git a/i18n/ca.po b/i18n/ca.po new file mode 100644 index 0000000..ffdf615 --- /dev/null +++ b/i18n/ca.po @@ -0,0 +1,1356 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: ca\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 3.0.1\n" + +#: src/ui/placePixel.js:53 +msgid "Error :(" +msgstr "Error :(" + +#: src/ui/placePixel.js:54 +msgid "Didn't get an answer from pixelplanet. Maybe try to refresh?" +msgstr "" +"No s'ha obtingut cap resposta per part de PixelPlanet. Intenta refrescar la " +"pàgina?" + +#: src/ui/placePixel.js:56 src/ui/placePixel.js:237 src/ui/placePixel.js:260 +msgid "OK" +msgstr "D'acord" + +#: src/ui/placePixel.js:197 +msgid "Invalid Canvas" +msgstr "Llenç invàlid" + +#: src/ui/placePixel.js:198 +msgid "This canvas doesn't exist" +msgstr "Aquest llenç no existeix" + +#: src/ui/placePixel.js:201 src/ui/placePixel.js:205 src/ui/placePixel.js:209 +msgid "Invalid Coordinates" +msgstr "Coordenades invàlides" + +#: src/ui/placePixel.js:202 +msgid "x out of bounds" +msgstr "Coordenada x fora de límits" + +#: src/ui/placePixel.js:206 +msgid "y out of bounds" +msgstr "Coordenada y fora de límits" + +#: src/ui/placePixel.js:210 +msgid "z out of bounds" +msgstr "Coordenada z fora de límits" + +#: src/ui/placePixel.js:213 +msgid "Wrong Color" +msgstr "Color incorrecte" + +#: src/ui/placePixel.js:214 +msgid "Invalid color selected" +msgstr "Color invàlid seleccionat" + +#: src/ui/placePixel.js:217 +msgid "Just for registered Users" +msgstr "Només per a usuaris registrats" + +#: src/ui/placePixel.js:218 +msgid "You have to be logged in to place on this canvas" +msgstr "Has d'iniciar sessió per pintar en aquest llenç" + +#: src/ui/placePixel.js:221 +msgid "Place more :)" +msgstr "Col·loca més píxels :)" + +#: src/ui/placePixel.js:223 +msgid "You can not access this canvas yet. You need to place more pixels" +msgstr "No pots accedir a aquest llenç encara. Has de col·locar més píxels." + +#: src/ui/placePixel.js:226 +msgid "Pixel protected!" +msgstr "Píxel protegit!" + +#: src/ui/placePixel.js:235 +msgid "Please prove that you are human" +msgstr "Si us plau, demostra que ets un humà" + +#: src/ui/placePixel.js:242 +msgid "No Proxies Allowed :(" +msgstr "No es permet l'ús de proxies :(" + +#: src/ui/placePixel.js:243 +msgid "You are using a Proxy." +msgstr "Estàs fent servir un proxy." + +#: src/ui/placePixel.js:246 +msgid "Not allowed" +msgstr "No tens permisos" + +#: src/ui/placePixel.js:247 +msgid "Just the Top10 of yesterday can place here" +msgstr "" +"Només els 10 usuaris amb més píxels col·locats a la classificació diària " +"d'ahir poden pintar aquí" + +#: src/ui/placePixel.js:250 +msgid "Weird" +msgstr "Estrany" + +#: src/ui/placePixel.js:251 +msgid "Couldn't set Pixel" +msgstr "No s'ha pogut col·locar el píxel" + +#: src/ui/placePixel.js:257 +#, javascript-format +msgid "Error ${ retCode }" +msgstr "Error ${ retCode }" + +#: src/controls/keypress.js:41 +#, javascript-format +msgid "Switched to ${ canvasName }" +msgstr "Canviat a ${ canvasName }" + +#: src/controls/keypress.js:64 +msgid "Grid ON" +msgstr "Quadrícula activada" + +#: src/controls/keypress.js:65 +msgid "Grid OFF" +msgstr "Quadrícula desactivada" + +#: src/controls/keypress.js:75 +msgid "Pixel Notify ON" +msgstr "Activitat de píxels activada" + +#: src/controls/keypress.js:76 +msgid "Pixel Notify OFF" +msgstr "Activitat de píxels desactivada" + +#: src/controls/keypress.js:81 +msgid "Muted Sound" +msgstr "So desactivat" + +#: src/controls/keypress.js:82 +msgid "Unmuted Sound" +msgstr "So activat" + +#: src/components/CoordinatesBox.jsx:29 src/controls/keypress.js:88 +msgid "Copied!" +msgstr "Copiat!" + +#: src/controls/keypress.js:94 +msgid "Show Hidden Canvases" +msgstr "Mostra llenços ocults" + +#: src/controls/keypress.js:95 +msgid "Hide Hidden Canvases" +msgstr "Amaga llenços ocults" + +#: src/ui/renderer.js:36 +msgid "Canvas Error" +msgstr "Error de llenç" + +#: src/ui/renderer.js:37 +msgid "Can't render 3D canvas, do you have WebGL2 disabled?" +msgstr "No es pot renderitzar el canvas 3D, tens el WebGL2 desactivat?" + +#: src/actions/index.js:628 +msgid "Register New Account" +msgstr "Registra un nou compte" + +#: src/actions/index.js:635 +msgid "Restore my Password" +msgstr "Restaura la meva contrasenya" + +#: src/actions/index.js:642 +msgid "Welcome to PixelPlanet.fun" +msgstr "Benvingut a PixelPlanet.fun" + +#: src/actions/index.js:648 +msgid "Look at past Canvases" +msgstr "Mira llenços antics" + +#: src/components/Converter.jsx:559 src/components/CoordinatesBox.jsx:32 +msgid "Copy to Clipboard" +msgstr "Copia al porta-retalls" + +#: src/components/OnlineBox.jsx:41 +msgid "Online Users on Canvas" +msgstr "Usuaris en línia en aquest llenç" + +#: src/components/OnlineBox.jsx:48 +msgid "Total Online Users" +msgstr "Usuaris en línia totals" + +#: src/components/OnlineBox.jsx:56 +msgid "Pixels placed" +msgstr "Píxels col·locats" + +#: src/components/ModalRoot.jsx:69 src/components/Modtools.jsx:224 +#: src/components/Window.jsx:138 +#: src/components/contextmenus/ChannelContextMenu.jsx:67 +msgid "Close" +msgstr "Tanca" + +#: src/components/ModalRoot.jsx:78 +msgid "Restore" +msgstr "Restaura" + +#: src/actions/fetch.js:39 +msgid "You made too many requests" +msgstr "Has fet masses sol·licituds" + +#: src/actions/fetch.js:43 +#, javascript-format +msgid "try again after ${ ti }min" +msgstr "torna a provar-ho en ${ ti }min" + +#: src/actions/fetch.js:54 +msgid "Connection error ${ code } :(" +msgstr "Error de connexió ${ code } :(" + +#: src/actions/fetch.js:79 src/actions/fetch.js:98 +msgid "Could not connect to server, please try again later :(" +msgstr "" +"No s'ha pogut connectar amb el servidor, si us plau torna a provar-ho més " +"tard :(" + +#: src/actions/fetch.js:120 src/actions/fetch.js:139 src/actions/fetch.js:158 +#: src/actions/fetch.js:177 +msgid "Unknown Error" +msgstr "Error desconegut" + +#: src/actions/fetch.js:187 +msgid "Server answered with gibberish :(" +msgstr "El servidor ha respost amb un galimaties :(" + +#: src/components/buttons/ChatButton.jsx:92 +msgid "Close Chat" +msgstr "Tanca el xat" + +#: src/components/buttons/ChatButton.jsx:92 +msgid "Open Chat" +msgstr "Obre el xat" + +#: src/components/buttons/CanvasSwitchButton.jsx:22 +#: src/components/windows/index.js:22 +msgid "Canvas Selection" +msgstr "Selecció de llenç" + +#: src/components/buttons/ExpandMenuButton.jsx:23 +msgid "Close Menu" +msgstr "Tanca el menú" + +#: src/components/buttons/ExpandMenuButton.jsx:23 +msgid "Open Menu" +msgstr "Obre el menú" + +#: src/components/HistorySelect.jsx:144 +msgid "Loading" +msgstr "Carregant" + +#: src/components/HistorySelect.jsx:145 +msgid "Select Date above" +msgstr "Escull la data amunt" + +#: src/components/Window.jsx:117 +msgid "Clone" +msgstr "Clonar" + +#: src/components/Window.jsx:124 +msgid "Move" +msgstr "Moure" + +#: src/components/Window.jsx:131 +msgid "Maximize" +msgstr "Maximitzar" + +#: src/components/Window.jsx:145 +msgid "Resize" +msgstr "Canviar mida" + +#: src/components/buttons/HelpButton.jsx:23 src/components/windows/index.js:16 +msgid "Help" +msgstr "Ajuda" + +#: src/components/buttons/SettingsButton.jsx:23 +#: src/components/windows/index.js:17 +msgid "Settings" +msgstr "Configuració" + +#: src/components/buttons/LogInButton.jsx:23 src/components/windows/index.js:18 +msgid "User Area" +msgstr "Àrea d'usuari" + +#: src/components/buttons/DownloadButton.jsx:37 +msgid "Make Screenshot" +msgstr "Captura de pantalla" + +#: src/components/buttons/GlobeButton.jsx:35 +msgid "Globe View" +msgstr "Vista del món" + +#: src/components/buttons/PalselButton.jsx:31 +msgid "Close Palette" +msgstr "Tancar la paleta" + +#: src/components/buttons/PalselButton.jsx:31 +msgid "Open Palette" +msgstr "Obrir la paleta" + +#: src/components/contextmenus/UserContextMenu.jsx:53 +msgid "Ping" +msgstr "Ping" + +#: src/components/contextmenus/UserContextMenu.jsx:78 +msgid "DM" +msgstr "Missatge privat" + +#: src/components/contextmenus/UserContextMenu.jsx:88 +msgid "Block" +msgstr "Bloquejar" + +#: src/components/contextmenus/ChannelContextMenu.jsx:55 +msgid "Mute" +msgstr "Silenciar" + +#: src/components/windows/index.js:19 +msgid "Registration" +msgstr "Registre" + +#: src/components/windows/index.js:20 +msgid "Forgot Password" +msgstr "Contrasenya oblidada" + +#: src/components/windows/index.js:21 +msgid "Chat" +msgstr "Xat" + +#: src/components/windows/index.js:23 +msgid "Canvas Archive" +msgstr "Arxiu de llenços" + +#: src/components/Captcha.jsx:69 src/components/ChangeMail.jsx:72 +#: src/components/ChangeName.jsx:58 src/components/ChangePassword.jsx:80 +#: src/components/DeleteAccount.jsx:55 src/components/GlobalCaptcha.jsx:38 +#: src/components/LogInForm.jsx:69 src/components/windows/ForgotPassword.jsx:75 +#: src/components/windows/Register.jsx:87 +msgid "Error" +msgstr "Error" + +#: src/components/ChangeMail.jsx:93 src/components/ChangeName.jsx:70 +#: src/components/ChangePassword.jsx:116 src/components/DeleteAccount.jsx:68 +#: src/components/GlobalCaptcha.jsx:48 +#: src/components/windows/ForgotPassword.jsx:88 +#: src/components/windows/Register.jsx:131 +msgid "Cancel" +msgstr "Cancel·la" + +#: src/components/GlobalCaptcha.jsx:55 +msgid "Send" +msgstr "Envia" + +#: src/components/windows/Help.jsx:36 +msgid "your IP" +msgstr "la teva IP" + +#: src/components/windows/Help.jsx:42 +msgid "Place color pixels on a large canvas with other players online!" +msgstr "" +"Col·loca píxels de colors en un gran llenç amb altres jugadors en línia!" + +#: src/components/windows/Help.jsx:43 +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 "" +"El nostre llenç principal és un mapa del món gegant. Pots pintar allà on " +"vulguis, però hauràs d'esperar un temps de refredament determinat entre " +"píxels. Pots comprovar el temps de refredament i els requisits al menú de " +"selecció de llenç (el botó quadrat de dalt a l'esquerra). Alguns llenços " +"tenen diferents temps de refredament segons es substitueixi un píxel verge o " +"un píxel ja col·locat per un usuari prèviament; per exemple 4s/7s vol dir 4 " +"segons en un píxel verge i 7 segons en un d'editat prèviament." + +#: src/components/windows/Help.jsx:47 +msgid "" +"Higher zoomlevels take some time to update, the 3D globe gets updated at " +"least once per day." +msgstr "" +"Nivells de zoom més alts requereixen més temps per actualitzar-se. El globus " +"terraqüi 3D s'actualitza com a mínim un cop al dia." + +#: src/components/windows/Help.jsx:48 +msgid "Have fun!" +msgstr "Passa-t'ho bé!" + +#: src/components/windows/Help.jsx:50 +msgid "recommended" +msgstr "recomanat" + +#: src/components/windows/Help.jsx:51 +msgid "Source on " +msgstr "Codi font a " + +#: src/components/windows/Help.jsx:52 +msgid "Map Data" +msgstr "Dades del mapa" + +#: src/components/windows/Help.jsx:53 +msgid "" +"The bare map data that we use, together with converted OpenStreetMap tiles " +"for orientation, can be downloaded from mega.nz here: " +msgstr "" +"El mapa original que utilitzem i els quadrants d'OpenStreetMap per " +"l'orientació es poden descarregar de mega.nz aquí: " + +#: src/components/windows/Help.jsx:55 +msgid "Detected as Proxy?" +msgstr "Has estat detectat com a proxy?" + +#: src/components/windows/Help.jsx:57 +#, 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 "" +"Si has estat detectat com a proxy sense ser-ho, si us plau, ves al nostre " +"${ guildedLink } o envia'ns un correu electrònic amb ${ getIPLink } a " +"${ mailLink}. No publiquis la teva adreça IP a cap altre lloc. Sentim les " +"molèsties." + +#: src/components/windows/Help.jsx:59 src/components/windows/Help.jsx:76 +msgid "Controls" +msgstr "Controls" + +#: src/components/windows/Help.jsx:61 +msgid "Click a color in palette to select it" +msgstr "Clica sobre un color a la paleta per seleccionar-lo" + +#: src/components/windows/Help.jsx:62 +#, javascript-format +msgid "Press ${ bindG } to toggle grid" +msgstr "Prem ${ bindG } per activar/desactivar la quadrícula" + +#: src/components/windows/Help.jsx:63 +msgid "Press ${ bindX } to toggle showing of pixel activity" +msgstr "Prem ${ bindX } per activar/desactivar la visió d'activitat de píxels" + +#: src/components/windows/Help.jsx:64 +#, javascript-format +msgid "Press ${ bindH } to toggle historical view" +msgstr "Prem ${ bindH } per activar/desactivar la vista històrica" + +#: src/components/windows/Help.jsx:65 +msgid "Press ${ bindR } to copy coordinates" +msgstr "Prem ${ bindR } per copiar les coordenades" + +#: src/components/windows/Help.jsx:66 +#, javascript-format +msgid "Press ${ bindQ } or ${ bindE } to zoom" +msgstr "Prem ${ bindQ } o ${ bindE } per fer zoom" + +#: src/components/windows/Help.jsx:67 src/components/windows/Help.jsx:78 +#, javascript-format +msgid "Press ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } to move" +msgstr "Prem ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } per desplaçar-te" + +#: src/components/windows/Help.jsx:68 src/components/windows/Help.jsx:79 +#, javascript-format +msgid "" +"Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move" +msgstr "" +"Prem ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } per " +"desplaçar-te" + +#: src/components/windows/Help.jsx:69 +msgid "Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move" +msgstr "" +"Prem i arrastra amb el ratolí ${ mouseSymbol } o el dit ${ touchSymbol } per " +"desplaçar-te" + +#: src/components/windows/Help.jsx:70 +#, javascript-format +msgid "Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom" +msgstr "" +"Gira ${ mouseSymbol } la rodeta del ratolí o ${ touchSymbol } amb el dit per " +"fer zoom" + +#: src/components/windows/Help.jsx:71 +msgid "Hold left ${ bindShift } for placing while moving mouse" +msgstr "Mantén ${ bindShift} esquerra per col·locar mentre mous el ratolí" + +#: src/components/windows/Help.jsx:72 +#, javascript-format +msgid "" +"Hold right ${ bindShift } for placing while moving mouse according to " +"historical view" +msgstr "" +"Mantén ${ bindShift } dret per col·locar mentre mous el ratolí per la vista " +"històrica" + +#: src/components/windows/Help.jsx:73 src/components/windows/Help.jsx:84 +#, javascript-format +msgid "${ mouseSymbol } Left click or ${ touchSymbol } tap to place a pixel" +msgstr "" +"${ mouseSymbol } Clic esquerre o ${ touchSymbol} prem per col·locar un píxel" + +#: src/components/windows/Help.jsx:74 src/components/windows/Help.jsx:86 +msgid "" +"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to " +"select current hovering color" +msgstr "" +"Clica ${ mouseSymbol } sobre la rodeta del ratolí o ${ touchSymbol } fes un " +"toc llarg per seleccionar el color sobre el qual flota el cursor" + +#: src/components/windows/Help.jsx:80 +msgid "Press ${ bindE } and ${ bindC } to fly up and down" +msgstr "Prem ${ bindE } i ${ bindC} per volar amunt i avall" + +#: src/components/windows/Help.jsx:81 +#, javascript-format +msgid "${ mouseSymbol } Hold left mouse button and drag mouse to rotate" +msgstr "" +"${ mouseSymbol } Mantén premut el botó esquerre del ratolí mentre arrastres " +"per rotar" + +#: src/components/windows/Help.jsx:82 +#, javascript-format +msgid "" +"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse " +"button and drag to zoom" +msgstr "" +"${ mouseSymbol } Gira la rodeta del ratolí o prem ${ mouseSymbol } sobre la " +"rodeta mentre arrastres el ratolí per fer zoom" + +#: src/components/windows/Help.jsx:83 +msgid "${ mouseSymbol } Right click and drag mouse to pan" +msgstr "${ mouseSymbol } Prem el botó dret del ratolí per desplaçar-te" + +#: src/components/windows/Help.jsx:85 +#, javascript-format +msgid "" +"${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a pixel" +msgstr "" +"${ mouseSymbol } Click dret o ${ touchSymbol } doble toc per esborrar un " +"píxel" + +#: src/components/windows/Help.jsx:90 +msgid "" +"We thanks those artists very much, they offered their palettes to the public " +"on" +msgstr "" +"Agraïm enormement a aquests artistes que hagin ofert públicament les seves " +"paletes a" + +#: src/components/windows/Help.jsx:93 +#, javascript-format +msgid "Credit for the Palette of the Moon goes to ${ starhouseLink }." +msgstr "" +"Els crèdits per la paleta de colors de la Lluna són per ${ starhouseLink }." + +#: src/components/windows/Help.jsx:96 +msgid "Credit for the Palette of the Top10 canvas goes to ${ vinikLink }." +msgstr "" +"Els crèdits per la paleta de colors del llenç Top10 són per " +"${ vinikLink }." + +#: src/components/windows/UserArea.jsx:27 +msgid "Profile" +msgstr "Perfil" + +#: src/components/windows/UserArea.jsx:30 +msgid "Ranking" +msgstr "Classificació" + +#: src/components/windows/UserArea.jsx:33 +msgid "Converter" +msgstr "Conversor" + +#: src/components/windows/UserArea.jsx:39 +msgid "Modtools" +msgstr "Eines de moderador" + +#: src/components/windows/UserArea.jsx:40 +msgid "Loading..." +msgstr "Carregant..." + +#: src/components/windows/UserArea.jsx:47 +msgid "Consider joining us on Guilded:" +msgstr "Considera unir-te al nostre Guilded:" + +#: src/components/windows/Settings.jsx:133 +msgid "Show Grid" +msgstr "Mostra quadrícula" + +#: src/components/windows/Settings.jsx:138 +msgid "Turn on grid to highlight pixel borders." +msgstr "Activa la quadrícula per ressaltar els límits entre els píxels." + +#: src/components/windows/Settings.jsx:141 +msgid "Show Pixel Activity" +msgstr "Mostra activitat de píxels" + +#: src/components/windows/Settings.jsx:146 +msgid "Show circles where pixels are placed." +msgstr "" +"Mostra un cercle vermell cada cop que un altre usuari col·loca un píxel." + +#: src/components/windows/Settings.jsx:149 +msgid "Disable Game Sounds" +msgstr "Desactivar sons del joc" + +#: src/components/windows/Settings.jsx:155 +msgid "All sound effects will be disabled." +msgstr "Tots els sons seran desactivats." + +#: src/components/windows/Settings.jsx:159 +msgid "" +"Your Browser doesn't allow us to use AudioContext to play sounds. Do you " +"have some privacy feature blocking us?" +msgstr "" +"El teu navegador no ens permet fer servir AudioContext per emetre sons. Tens " +"alguna configuració de privacitat bloquejant-nos?" + +#: src/components/windows/Settings.jsx:165 +msgid "Enable chat notifications" +msgstr "Activar notificacions del xat" + +#: src/components/windows/Settings.jsx:169 +msgid "Play a sound when new chat messages arrive" +msgstr "Reprodueix un so quan arribi un nou missatge al xat" + +#: src/components/windows/Settings.jsx:172 +msgid "Auto Zoom In" +msgstr "Zoom automàtic" + +#: src/components/windows/Settings.jsx:177 +msgid "" +"Zoom in instead of placing a pixel when you tap the canvas and your zoom is " +"small." +msgstr "" +"Fes zoom enlloc de col·locar un píxel quan fas un toc/clic sobre el llenç i " +"el teu nivell de zoom és baix." + +#: src/components/windows/Settings.jsx:180 +msgid "Compact Palette" +msgstr "Paleta compacte" + +#: src/components/windows/Settings.jsx:185 +msgid "Display Palette in a compact form that takes less screen space." +msgstr "" +"Mostra la paleta de forma compacte per ocupar menys espai de la pantalla." + +#: src/components/windows/Settings.jsx:188 +msgid "Potato Mode" +msgstr "Mode patata" + +#: src/components/windows/Settings.jsx:192 +msgid "For when you are playing on a potato." +msgstr "Per quan jugues des d'un ordinador patata." + +#: src/components/Converter.jsx:374 src/components/windows/Settings.jsx:195 +msgid "Light Grid" +msgstr "Quadrícula clara" + +#: src/components/windows/Settings.jsx:199 +msgid "Show Grid in white instead of black." +msgstr "Mostra la quadrícula en blanc enlloc de negre." + +#: src/components/windows/Settings.jsx:203 +msgid "Historical View" +msgstr "Vista històrica" + +#: src/components/windows/Settings.jsx:208 +msgid "Check out past versions of the canvas." +msgstr "Consulta versions antigues del llenç." + +#: src/components/windows/Settings.jsx:213 +msgid "Themes" +msgstr "Temes" + +#: src/components/windows/Settings.jsx:218 +msgid "How pixelplanet should look like." +msgstr "Com s'hauria de veure PixelPlanet." + +#: src/components/windows/Settings.jsx:225 +msgid "Select Language" +msgstr "Selecciona l'idioma" + +#: src/components/windows/Register.jsx:85 +msgid "Register new account here" +msgstr "Registra un nou compte aquí" + +#: src/components/windows/Register.jsx:90 +#: src/components/windows/Register.jsx:96 +msgid "Name" +msgstr "Nom" + +#: src/components/windows/ForgotPassword.jsx:82 +#: src/components/windows/Register.jsx:98 +#: src/components/windows/Register.jsx:104 +msgid "Email" +msgstr "Correu electrònic" + +#: src/components/ChangeMail.jsx:80 src/components/DeleteAccount.jsx:62 +#: src/components/LogInForm.jsx:83 src/components/windows/Register.jsx:106 +#: src/components/windows/Register.jsx:112 +msgid "Password" +msgstr "Constrasenya" + +#: src/components/windows/Register.jsx:114 +#: src/components/windows/Register.jsx:120 +msgid "Confirm Password" +msgstr "Confirma la contrasenya" + +#: src/components/windows/Register.jsx:122 +msgid "Captcha" +msgstr "Captcha" + +#: src/components/Modtools.jsx:311 src/components/Modtools.jsx:392 +#: src/components/Modtools.jsx:467 src/components/Modtools.jsx:512 +#: src/components/Modtools.jsx:595 src/components/windows/ForgotPassword.jsx:86 +#: src/components/windows/Register.jsx:125 +msgid "Submit" +msgstr "Enviar" + +#: src/components/windows/CanvasSelect.jsx:33 +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 "" +"Selecciona el llenç que vols fer servir. Cada llenç és únic i té diferents " +"paletes de colors, temps de refredament i requisits. L'arxiu dels llenços " +"tancats es troba aquí:" + +#: src/components/windows/CanvasSelect.jsx:41 +msgid "Archive" +msgstr "Arxiu" + +#: 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 "" +"Tot i que intentem no esborrar llenços, alguns s'han creat per diversió o " +"per sol·licitud d'usuaris que els agradava un mem actual. Aquests llenços es " +"poden tornar avorrits al cap d'un temps, després de setmanes sense canvis " +"substancials. Si ja no val la pena mantenir actius aquests llenços, llavors " +"sí que els esborrem." + +#: 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 "" +"Aquí col·leccionem aquests llenços per arxivar-los de forma correcte (que " +"per ara només és aquesta)." + +#: src/components/windows/Archive.jsx:24 +msgid "Political Compass Canvas" +msgstr "Llenç de la brúixola política" + +#: 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 "" +"Aquest llenç va ser sol·licitat durant una època de conflictes polítics al " +"llenç de la Terra. Era una representació de la brúixola política de " +"1024x1024, amb un temps de refredament de 5 segons i d'acumulació de 60 " +"segons. Es va estrenar a l'11 de maig i es va mantenir actiu durant uns " +"mesos fins que es va tancar el 30 de novembre." + +#: 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 "" +"Hem decidit arxivar-lo com un \"time-lapse\" en format web sense pèrdues. " +"Fer-ne una captura otorga una perfecta representació a escala 1:1 de com era " +"el llenç en aquell moment." + +#: src/components/windows/Chat.jsx:146 +msgid "Channel settings" +msgstr "Configuració del canal" + +#: src/components/windows/Chat.jsx:161 +msgid "Start chatting here" +msgstr "Comença a xatejar aquí" + +#: src/components/windows/Chat.jsx:198 +msgid "Chat here" +msgstr "Xateja aquí" + +#: src/components/windows/Chat.jsx:221 +msgid "You must be logged in to chat" +msgstr "Has d'iniciar sessió per poder utilitzar el xat" + +#: src/components/windows/ForgotPassword.jsx:60 +msgid "Sent you a mail with instructions to reset your password." +msgstr "" +"T'hem enviat un correu electrònic amb les instruccions per restablir la teva " +"contrasenya." + +#: src/components/windows/ForgotPassword.jsx:71 +msgid "Enter your mail address and we will send you a new password:" +msgstr "" +"Introdueix la teva adreça de correu electrònic i t'enviarem una nova " +"contrasenya:" + +#: src/components/Captcha.jsx:42 src/components/Captcha.jsx:105 +msgid "Could not load captcha" +msgstr "No s'ha pogut carregar el captcha" + +#: src/components/Captcha.jsx:60 +msgid "Type the characters from the following image:" +msgstr "Escriu els caràcters de la següent imatge:" + +#: src/components/Captcha.jsx:63 +msgid "Tip: Not case-sensitive; I and l are the same" +msgstr "Consell: no importen les majúscules, I (i) i l (ela) són el mateix" + +#: src/components/Captcha.jsx:113 +msgid "Load Captcha" +msgstr "Carrega el captcha" + +#: src/components/Captcha.jsx:118 +msgid "Click to Load Captcha" +msgstr "Clica per carregar el captcha" + +#: src/components/Captcha.jsx:124 +msgid "Can't read? Reload:" +msgstr "Il·legible? Recarrega:" + +#: src/components/Captcha.jsx:128 +msgid "Reload" +msgstr "Recarrega" + +#: src/components/Captcha.jsx:138 +msgid "Enter Characters" +msgstr "Escriu" + +#: src/utils/validation.js:18 +msgid "Email can't be empty." +msgstr "El correu electrònic no pot estar buit." + +#: src/utils/validation.js:19 +msgid "Email should be at least 5 characters long." +msgstr "El correu electrònic ha de tenir com a mínim 5 caràcters." + +#: src/utils/validation.js:20 +msgid "Email can't be longer than 40 characters." +msgstr "El correu electrònic no pot tenir més de 40 caràcters." + +#: src/utils/validation.js:21 +msgid "Email should at least contain a dot" +msgstr "El correu electrònic ha de contenir com a mínim un punt" + +#: src/utils/validation.js:23 +msgid "Email should contain a @" +msgstr "El correu electrònic ha de contenir una @" + +#: src/utils/validation.js:30 +msgid "Name can't be empty." +msgstr "El nom no pot estar buit." + +#: src/utils/validation.js:31 +msgid "Name must be at least 4 characters long" +msgstr "El nom ha de tenir com a mínim 4 caràcters" + +#: src/utils/validation.js:32 +msgid "Name must be shorter than 26 characters" +msgstr "El nom ha de contenir menys de 26 caràcters" + +#: src/utils/validation.js:39 +msgid "Name contains invalid character like @, /, \\ or #" +msgstr "El teu nom conté caràcters invàlids com @ / \\ #" + +#: src/utils/validation.js:54 +msgid "No password given." +msgstr "No s'ha escrit una contrasenya." + +#: src/utils/validation.js:57 +msgid "Password must be at least 6 characters long." +msgstr "La contrasenya ha de tenir 6 caràcters com a mínim." + +#: src/utils/validation.js:60 +msgid "Password must be shorter than 60 characters." +msgstr "La contrasenya ha de tenir menys de 60 caràcters." + +#: src/components/LogInArea.jsx:21 +msgid "Login to access more features and stats." +msgstr "Inicia sessió per accedir a més funcions i estadístiques." + +#: src/components/LogInArea.jsx:23 +msgid "Login with Name or Mail:" +msgstr "Inicia sessió amb el nom o el correu electrònic:" + +#: src/components/LogInArea.jsx:30 +msgid "I forgot my Password." +msgstr "He oblidat la meva contrasenya." + +#: src/components/LogInArea.jsx:31 +msgid "or login with:" +msgstr "o inicia sessió amb:" + +#: src/components/LogInArea.jsx:72 +msgid "or register here:" +msgstr "o registra't aquí:" + +#: src/components/LogInArea.jsx:79 +msgid "Register" +msgstr "Registra't" + +#: src/components/UserAreaContent.jsx:63 +msgid "Todays Placed Pixels" +msgstr "Píxels col·locats avui" + +#: src/components/UserAreaContent.jsx:67 +msgid "Daily Rank" +msgstr "Classificació diària" + +#: src/components/UserAreaContent.jsx:72 +msgid "Placed Pixels" +msgstr "Píxels col·locats" + +#: src/components/UserAreaContent.jsx:76 +msgid "Total Rank" +msgstr "Classificació total" + +#: src/components/UserAreaContent.jsx:81 +#, javascript-format +msgid "Your name is: ${ name }" +msgstr "El teu nom és: ${ name }" + +#: src/components/UserAreaContent.jsx:87 +msgid "Log out" +msgstr "Tancar sessió" + +#: src/components/UserAreaContent.jsx:93 +msgid "Change Username" +msgstr "Canviar nom d'usuari" + +#: src/components/UserAreaContent.jsx:102 +msgid "Change Mail" +msgstr "Canviar correu electrònic" + +#: src/components/UserAreaContent.jsx:110 +msgid "Change Password" +msgstr "Canviar contrasenya" + +#: src/components/UserAreaContent.jsx:116 +msgid "Delete Account" +msgstr "Esborrar compte" + +#: src/components/UserAreaContent.jsx:123 +msgid "Social Settings" +msgstr "Preferències socials" + +#: src/components/Rankings.jsx:28 +msgid "Total" +msgstr "Total" + +#: src/components/Rankings.jsx:36 +msgid "Daily" +msgstr "Diari" + +#: src/components/Rankings.jsx:40 +msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC." +msgstr "" +"La classificació s'actualitza cada 5 minuts. La classificació diària es " +"reinicia a les 00:00 UTC." + +#: src/components/Modtools.jsx:184 +msgid "Build image on canvas." +msgstr "Construir imatge sobre el llenç." + +#: src/components/Modtools.jsx:187 +msgid "Build image and set it to protected." +msgstr "Construir imatge i establir-la com a protegida." + +#: src/components/Modtools.jsx:190 +msgid "Build image, but reset cooldown to unset-pixel cd." +msgstr "" +"Construir imatge, però reiniciar el temps de refredament com a píxels verges." + +#: src/components/Modtools.jsx:253 +msgid "Image Upload" +msgstr "Pujar imatge" + +#: src/components/Modtools.jsx:254 +msgid "Upload images to canvas" +msgstr "Pujar imatges al llenç" + +#: src/components/Modtools.jsx:256 +msgid "File" +msgstr "Arxiu" + +#: src/components/Modtools.jsx:276 +msgid "Coordinates in X_Y format:" +msgstr "Coordenades en format X_Y:" + +#: src/components/Modtools.jsx:316 +msgid "Pixel Protection" +msgstr "Protecció de píxels" + +#: src/components/Modtools.jsx:318 +msgid "" +"Set protection of areas (if you need finer grained control, " +"use protect with image upload and alpha layers)" +msgstr "" +"Definir protecció d'àrees (si necessites un control més " +"delimitat, fes una protecció amb pujada d'imatge i capes alpha)" + +#: src/components/Modtools.jsx:398 +msgid "Rollback to Date" +msgstr "Retrocedir fins a la data" + +#: src/components/Modtools.jsx:400 +msgid "Rollback an area of the canvas to a set date (00:00 UTC)" +msgstr "Retrocedir l'àrea del llenç a una data determinata (00:00 UTC)" + +#: src/components/Modtools.jsx:475 +msgid "IP Actions" +msgstr "Accions IP" + +#: src/components/Modtools.jsx:477 +msgid "Do stuff with IPs (one IP per line)" +msgstr "Fes coses amb IPs (una per línia)" + +#: src/components/Modtools.jsx:516 +msgid "Manage Moderators" +msgstr "Administrar moderadors" + +#: src/components/Modtools.jsx:518 +msgid "Remove Moderator" +msgstr "Eliminar moderador" + +#: src/components/Modtools.jsx:550 +msgid "There are no mods" +msgstr "No hi ha moderadors" + +#: src/components/Modtools.jsx:555 +msgid "Assign new Mod" +msgstr "Assignar nou moderador" + +#: src/components/Modtools.jsx:558 +msgid "Enter UserName of new Mod" +msgstr "Introdueix el nom d'usuari del nou moderador" + +#: src/components/Modtools.jsx:567 +msgid "User Name" +msgstr "Nom d'usuari" + +#: src/components/Converter.jsx:190 +msgid "Choose Canvas" +msgstr "Triar llenç" + +#: src/components/Converter.jsx:216 +msgid "Palette Download" +msgstr "Descarregar paleta" + +#: src/components/Converter.jsx:218 +#, javascript-format +msgid "Palette for ${ gimpLink }" +msgstr "Paleta per ${ gimpLink }" + +#: src/components/Converter.jsx:236 +msgid "Image Converter" +msgstr "Conversor d'imatge" + +#: src/components/Converter.jsx:237 +msgid "Convert an image to canvas colors" +msgstr "Convertir una imatge als colors del llenç" + +#: src/components/Converter.jsx:256 +msgid "Choose Strategy" +msgstr "Tria estratègia" + +#: src/components/Converter.jsx:293 +msgid "Serpentine" +msgstr "Serpentí" + +#: src/components/Converter.jsx:295 +msgid "Minimum Color Distance" +msgstr "Distància de color mínima" + +#: src/components/Converter.jsx:322 +msgid "Calculate like GIMP" +msgstr "Calcular com a GIMP" + +#: src/components/Converter.jsx:326 +msgid "Choose Color Mode" +msgstr "Tria mode de color" + +#: src/components/Converter.jsx:354 +msgid "Add Grid (uncheck if you need a 1:1 template)" +msgstr "Afegir quadrícula (desactiva si necessites una plantilla 1:1)" + +#: src/components/Converter.jsx:376 src/components/Converter.jsx:392 +msgid "Offset" +msgstr "Compensació" + +#: src/components/Converter.jsx:421 +msgid "Scale Image" +msgstr "Escalar imatge" + +#: src/components/Converter.jsx:432 +msgid "Width" +msgstr "Amplada" + +#: src/components/Converter.jsx:463 +msgid "Height" +msgstr "Alçada" + +#: src/components/Converter.jsx:502 +msgid "Keep Ratio" +msgstr "Mantenir proporció" + +#: src/components/Converter.jsx:515 +msgid "Anti Aliasing" +msgstr "Anti Aliasing" + +#: src/components/Converter.jsx:529 +msgid "Reset" +msgstr "Restableix" + +#: src/components/Converter.jsx:547 +msgid "Download Template" +msgstr "Descarregar plantilla" + +#: src/components/ChangeMail.jsx:91 src/components/ChangeName.jsx:68 +#: src/components/ChangePassword.jsx:110 src/components/LanguageSelect.jsx:73 +msgid "Save" +msgstr "Desa" + +#: src/components/CanvasItem.jsx:30 +msgid "Online Users" +msgstr "Usuaris en línia" + +#: src/components/CanvasItem.jsx:35 +msgid "Cooldown" +msgstr "Temps de refredament" + +#: src/components/CanvasItem.jsx:41 +msgid "Stacking till" +msgstr "Acumulació fins a" + +#: src/components/CanvasItem.jsx:43 +msgid "Ranked" +msgstr "Classificat" + +#: src/components/CanvasItem.jsx:45 +msgid "Yes" +msgstr "Sí" + +#: src/components/CanvasItem.jsx:45 +msgid "No" +msgstr "No" + +#: src/components/CanvasItem.jsx:51 +msgid "Requirements" +msgstr "Requisits" + +#: src/components/CanvasItem.jsx:54 +msgid "User Account" +msgstr "Compte d'usuari" + +#: src/components/CanvasItem.jsx:56 +#, javascript-format +msgid "and ${ canvas.req } Pixels set" +msgstr "i ${ canvas.req } píxels col·locats" + +#: src/components/CanvasItem.jsx:59 +msgid "Top 10 Daily Ranking" +msgstr "Classificació diària top 10" + +#: src/components/CanvasItem.jsx:65 +msgid "Dimensions" +msgstr "Dimensions" + +#: src/components/LogInForm.jsx:76 +msgid "Name or Email" +msgstr "Nom o correu electrònic" + +#: src/components/LogInForm.jsx:87 +msgid "LogIn" +msgstr "Inicia sessió" + +#: src/components/ChangePassword.jsx:22 +msgid "Passwords do not match." +msgstr "Les contrasenyes no coincideixen." + +#: src/components/ChangePassword.jsx:45 +msgid "Changed Password successfully." +msgstr "S'ha canviat la contrasenya exitosament." + +#: src/components/ChangePassword.jsx:89 +msgid "Old Password" +msgstr "Antiga contrasenya" + +#: src/components/ChangePassword.jsx:97 +msgid "New Password" +msgstr "Nova contrasenya" + +#: src/components/ChangePassword.jsx:104 +msgid "Confirm New Password" +msgstr "Confirma la nova contrasenya" + +#: src/components/UserMessages.jsx:28 +msgid "" +"Please verify your mail address \n" +"or your account could get deleted after a few days." +msgstr "" +"Si us plau verifica la teva adreça de correu electrònic)&nbps;\n" +"o el teu compte podria ser esborrat després d'uns quants dies." + +#: src/components/UserMessages.jsx:49 +msgid "A new verification mail is getting sent to you." +msgstr "T'estem enviant un nou correu electrònic de verificació." + +#: src/components/UserMessages.jsx:53 +msgid "Click here to request a new verification mail." +msgstr "Clica aquí per solicitar un nou correu electrònic de verificació." + +#: src/components/ChangeName.jsx:64 +msgid "New Username" +msgstr "Nou nom d'usuari" + +#: src/components/ChangeMail.jsx:59 +msgid "" +"Changed Mail successfully. We sent you a verification mail, " +"please verify your new mail address." +msgstr "" +"S'ha canviat el teu correu electrònic exitosament. T'hem enviat un correu de " +"verificació, si us plau verifica la teva nova adreça electrònica." + +#: src/components/ChangeMail.jsx:87 +msgid "New Mail" +msgstr "Nou correu" + +#: src/components/DeleteAccount.jsx:66 +msgid "Yes, Delete My Account!" +msgstr "Sí, esborra el meu compte!" + +#: src/components/SocialSettings.jsx:38 +msgid "Block all Private Messages" +msgstr "Bloquejar tots els missatges privats" + +#: src/components/SocialSettings.jsx:56 +msgid "Unblock Users" +msgstr "Desbloquejar usuaris" + +#: src/components/SocialSettings.jsx:80 +msgid "You have no users blocked" +msgstr "No tens cap usuari bloquejat" + +#: src/components/windows/Help.jsx:14 src/components/windows/Settings.jsx:134 +msgctxt "keybinds" +msgid "G" +msgstr "G" + +#: src/components/windows/Help.jsx:15 src/components/windows/Settings.jsx:142 +msgctxt "keybinds" +msgid "X" +msgstr "X" + +#: src/components/windows/Help.jsx:16 src/components/windows/Settings.jsx:205 +msgctxt "keybinds" +msgid "H" +msgstr "H" + +#: src/components/windows/Help.jsx:17 +msgctxt "keybinds" +msgid "R" +msgstr "R" + +#: src/components/windows/Help.jsx:18 +msgctxt "keybinds" +msgid "Q" +msgstr "Q" + +#: src/components/windows/Help.jsx:19 +msgctxt "keybinds" +msgid "E" +msgstr "E" + +#: src/components/windows/Help.jsx:20 +msgctxt "keybinds" +msgid "W" +msgstr "W" + +#: src/components/windows/Help.jsx:21 +msgctxt "keybinds" +msgid "A" +msgstr "A" + +#: src/components/windows/Help.jsx:22 +msgctxt "keybinds" +msgid "S" +msgstr "S" + +#: src/components/windows/Help.jsx:23 +msgctxt "keybinds" +msgid "D" +msgstr "D" + +#: src/components/windows/Help.jsx:30 +msgctxt "keybinds" +msgid "Shift" +msgstr "Shift" + +#: src/components/windows/Help.jsx:31 +msgctxt "keybinds" +msgid "C" +msgstr "C" + +#: src/components/windows/Settings.jsx:150 +msgctxt "keybinds" +msgid "M" +msgstr "M" + +#~ msgid "User online" +#~ msgstr "Usuaris connectats" + +#~ msgid "Partners:" +#~ msgstr "Col·laboradors:" + +#~ msgid "Admintools" +#~ msgstr "Eines d'administrador" + +#~ msgid "You successfully linked your mc account." +#~ msgstr "Has vinculat el teu compte de Minecraft exitosament." + +#~ msgid "You denied." +#~ msgstr "Has denegat." + +#, javascript-format +#~ msgid "You requested to link your mc account ${ minecraftname }." +#~ msgstr "" +#~ "Has sol·licitat vincular el teu compte de Minecraft ${ minecraftname }." + +#~ msgid "Accept" +#~ msgstr "Acceptar" + +#~ msgid "Deny" +#~ msgstr "Denegar" diff --git a/i18n/ssr-ca.po b/i18n/ssr-ca.po new file mode 100644 index 0000000..7a59f66 --- /dev/null +++ b/i18n/ssr-ca.po @@ -0,0 +1,472 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: ca\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 3.0.1\n" + +#: src/core/ChatProvider.js:327 +msgid "You can not send chat messages with proxy" +msgstr "No pots enviar missatges al xat amb un proxy" + +#: src/core/ChatProvider.js:341 +#, javascript-format +msgid "You are sending messages too fast, you have to wait ${ waitTime }s :(" +msgstr "Estàs enviant missatges massa ràpid, has d'esperar ${ waitTime }s :(" + +#: src/core/ChatProvider.js:345 +msgid "You don't have access to this channel" +msgstr "No tens accés a aquest canal" + +#: src/core/ChatProvider.js:361 +msgid "Your mail has to be verified in order to chat" +msgstr "El teu correu electrònic ha de ser verificat per poder xatejar" + +#: src/core/ChatProvider.js:366 +msgid "You are permanently muted, join our guilded to apppeal the mute" +msgstr "" +"Estàs permanentment silenciat, uneix-te al nostre Guilded per apel·lar el " +"mute" + +#: src/core/ChatProvider.js:371 +#, javascript-format +msgid "You are muted for another ${ timeMin } minutes" +msgstr "Estàs silenciat ${ muted } minuts més" + +#: src/core/ChatProvider.js:373 +msgid "You are muted for another ${ muted } seconds" +msgstr "Estàs silenciat ${ muted } segons més" + +#: src/core/ChatProvider.js:381 +msgid "Ow no! Spam protection decided to mute you" +msgstr "Oh no! La protecció contra l'spam ha decidit silenciar-te" + +#: src/core/ChatProvider.js:392 +msgid "You can't send a message this long :(" +msgstr "No pots enviar un missatge tan llarg :(" + +#: src/core/ChatProvider.js:396 +msgid "Please use int channel" +msgstr "Si us plau, utilitza el canal \"int\"" + +#: src/core/ChatProvider.js:400 +msgid "Your country is temporary muted from chat" +msgstr "El teu país està temporalment silenciat al xat" + +#: src/core/ChatProvider.js:408 +msgid "Stop flooding." +msgstr "Para de fer flood." + +#: src/routes/reset_password.js:40 +msgid "You sent an empty password or invalid data :(" +msgstr "Has enviat una contrasenya buida o dades invàlides :(" + +#: src/routes/reset_password.js:52 +msgid "This password-reset link isn't valid anymore :(" +msgstr "Aquest enllaç per restablir la contrasenya ja no és vàlid :(" + +#: src/routes/reset_password.js:63 +msgid "Your passwords do not match :(" +msgstr "Les contrasenyes són diferents :(" + +#: src/routes/reset_password.js:78 +msgid "User doesn't exist in our database :(" +msgstr "L'usuari no existeix a la nostra base de dades :(" + +#: src/routes/reset_password.js:90 +msgid "Passowrd successfully changed." +msgstr "La contrasenya s'ha canviat exitosament." + +#: src/routes/reset_password.js:109 +msgid "Invalid url :( Please check your mail again." +msgstr "" +"URL invàlida :( Si us plau comprova el teu correu electrònic un altre cop." + +#: src/routes/reset_password.js:122 +msgid "" +"This passwort reset link is wrong or already expired, please request a new " +"one (Note: you can use those links just once)" +msgstr "" +"Aquest enllaç de restabliment de la contrasenya és incorrecte o ja ha " +"caducat, si us plau sol·licita'n un de nou (nota: només pots utilitzar " +"aquests enllaços un cop)" + +#: src/ssr-components/Globe.jsx:44 +msgid "Double click on globe to go back." +msgstr "Doble clic a la bola del món per tornar enrere." + +#: src/ssr-components/Globe.jsx:45 +msgid "Loading..." +msgstr "Carregant..." + +#: src/ssr-components/Globe.jsx:51 +msgid "PixelPlanet.Fun 3DGlobe" +msgstr "PixelPlanet.Fun Món3D" + +#: src/ssr-components/Globe.jsx:52 +msgid "A 3D globe of our whole map" +msgstr "Una bola del món en 3D del nostre mapa sencer" + +#: src/ssr-components/Main.jsx:70 +msgid "PixelPlanet.fun" +msgstr "PixelPlanet.fun" + +#: src/ssr-components/Main.jsx:72 +msgid "Place color pixels on an map styled canvas with other players online" +msgstr "" +"Col·loca píxels de colors en un gran llenç amb altres jugadors en línia" + +#: src/core/mail.js:65 +#, javascript-format +msgid "" +"We already sent you a verification mail, you can request another one in " +"${ minLeft } minutes." +msgstr "" +"Ja t'hem enviat un correu electrònic de verificació abans. Pots sol·licitar-" +"ne un altre en ${ minLeft } minuts." + +#: src/core/mail.js:75 +msgid "Welcome ${ name } to PixelPlanet, plese verify your mail" +msgstr "" +"Benvingut ${ name } a PixelPlanet, si us plau verifica el teu correu " +"electrònic" + +#: src/core/mail.js:77 +#, javascript-format +msgid "Hello ${ name }" +msgstr "Hola ${ name }" + +#: src/core/mail.js:78 +msgid "" +"welcome to our little community of pixelplacers, to use your account, you " +"have to verify your mail. You can do that here: " +msgstr "" +"benvingut a la nostra petita comunitat de col·locadors de píxels. Per " +"utilizar el teu compte, has de verificar el teu correu electrònic. Pots fer-" +"ho aquí: " + +#: src/core/mail.js:78 +msgid "Click to Verify" +msgstr "Clica per verificar" + +#: src/core/mail.js:78 src/core/mail.js:128 +msgid "Or by copying following url:" +msgstr "O copiant la següent URL:" + +#: src/core/mail.js:79 +msgid "" +"Have fun and don't hesitate to contact us if you encouter any problems :)" +msgstr "" +"Diverteix-te i no dubtis de contactar amb nosaltres si tens cap problema :)" + +#: src/core/mail.js:80 src/core/mail.js:130 +msgid "Thanks" +msgstr "Gràcies" + +#: src/core/mail.js:98 +msgid "" +"We already sent you a mail with instructions. Please wait before requesting " +"another mail." +msgstr "" +"Ja t'hem enviat un correu electrònic amb les instruccions. Si us plau, " +"espera abans de sol·licitar un altre correu." + +#: src/core/mail.js:106 +msgid "Couldn't find this mail in our database" +msgstr "No hem pogut trobar aquest correu electrònic a la nosta base de dades" + +#: src/core/mail.js:125 +msgid "You forgot your password for PixelPlanet? Get a new one here" +msgstr "" +"Has oblidat la teva contrasenya de PixelPlanet? Aconsegueix-ne una de nova " +"aquí" + +#: src/core/mail.js:127 +msgid "Hello" +msgstr "Hola" + +#: src/core/mail.js:128 +msgid "" +"You requested to get a new password. You can change your password within the " +"next 30min here: " +msgstr "" +"Has sol·licitat obtenir una nova contrasenya. Pots canviar la teva " +"contrasenya durant els propers 30 minuts aquí: " + +#: src/core/mail.js:128 src/ssr-components/PasswordReset.jsx:19 +#: src/ssr-components/PasswordReset.jsx:28 +msgid "Reset Password" +msgstr "Restablir la contrasenya" + +#: src/core/mail.js:129 +#, javascript-format +msgid "" +"If you did not request this mail, please just ignore it (the ip that " +"requested this mail was ${ ip })." +msgstr "" +"Si no has sol·licitat aquest correu electrònic, si us plau ignora'l (la IP " +"que va sol·licitar aquest correu era ${ ip })." + +#: src/ssr-components/PasswordReset.jsx:21 +#: src/ssr-components/RedirectionPage.jsx:15 +msgid "Click here" +msgstr "Clica aquí" + +#: src/ssr-components/PasswordReset.jsx:22 +msgid "to go back to pixelplanet" +msgstr "per tornar a PixelPlanet" + +#: src/ssr-components/PasswordReset.jsx:29 +#, javascript-format +msgid "Hello ${ name }, you can set your new password here:" +msgstr "Hola ${ name }, pots configurar la teva nova contrasenya aquí:" + +#: src/ssr-components/PasswordReset.jsx:33 +msgid "New Password" +msgstr "Contrasenya nova" + +#: src/ssr-components/PasswordReset.jsx:41 +msgid "Confirm New Password" +msgstr "Confirma la contrasenya nova" + +#: src/ssr-components/PasswordReset.jsx:47 +msgid "Submit" +msgstr "Envia" + +#: src/ssr-components/PasswordReset.jsx:52 +msgid "PixelPlanet.fun Password Reset" +msgstr "Restablir la contrasenya de PixelPlanet.fun" + +#: src/ssr-components/PasswordReset.jsx:53 +msgid "Reset your password here" +msgstr "Restableix la teva contrasenya aquí" + +#: src/routes/api/captcha.js:22 +msgid "No captcha text given" +msgstr "No has introduït el text pel captcha" + +#: src/routes/api/captcha.js:27 +msgid "No captcha id given" +msgstr "No s'ha rebut la id del captcha" + +#: src/routes/api/auth/register.js:61 src/routes/api/captcha.js:41 +msgid "You took too long, try again." +msgstr "Has trigat massa, prova-ho un altre cop." + +#: src/routes/api/auth/register.js:64 src/routes/api/captcha.js:47 +msgid "You failed your captcha" +msgstr "Has fallat el captcha" + +#: src/routes/api/auth/register.js:67 src/routes/api/captcha.js:53 +msgid "Unknown Captcha Error" +msgstr "Error de captcha desconegut" + +#: src/routes/api/captcha.js:60 +msgid "Server error occured" +msgstr "S'ha produït un error del servidor" + +#: src/routes/api/modtools.js:50 +msgid "You are not logged in" +msgstr "No has iniciat sessió" + +#: src/routes/api/modtools.js:62 +msgid "You are not allowed to access this page" +msgstr "No tens permís per accedir a aquesta pàgina" + +#: src/routes/api/modtools.js:128 +msgid "Just admins can do that" +msgstr "Només els administradors poden fer això" + +#: src/utils/validation.js:18 +msgid "Email can't be empty." +msgstr "El correu electrònic no pot estar buit." + +#: src/utils/validation.js:19 +msgid "Email should be at least 5 characters long." +msgstr "El correu electrònic ha de tenir com a mínim 5 caràcters." + +#: src/utils/validation.js:20 +msgid "Email can't be longer than 40 characters." +msgstr "El correu electrònic no pot tenir més de 40 caràcters." + +#: src/utils/validation.js:21 +msgid "Email should at least contain a dot" +msgstr "El correu electrònic ha de contenir com a mínim un punt" + +#: src/utils/validation.js:23 +msgid "Email should contain a @" +msgstr "El correu electrònic ha de contenir una @" + +#: src/utils/validation.js:30 +msgid "Name can't be empty." +msgstr "El nom no pot estar buit." + +#: src/utils/validation.js:31 +msgid "Name must be at least 4 characters long" +msgstr "El nom ha de tenir com a mínim 4 caràcters" + +#: src/utils/validation.js:32 +msgid "Name must be shorter than 26 characters" +msgstr "El nom ha de tenir menys de 26 caràcters" + +#: src/utils/validation.js:39 +msgid "Name contains invalid character like @, /, \\ or #" +msgstr "El nom conté caràcters invalids com @ / \\ #" + +#: src/utils/validation.js:54 +msgid "No password given." +msgstr "No s'ha escrit una contrasenya." + +#: src/utils/validation.js:57 +msgid "Password must be at least 6 characters long." +msgstr "La contrasenya ha de tenir 6 caràcters com a mínim." + +#: src/utils/validation.js:60 +msgid "Password must be shorter than 60 characters." +msgstr "La contrasenya ha de tenir menys de 60 caràcters." + +#: src/routes/api/auth/register.js:33 +msgid "No Captcha given" +msgstr "No s'ha rebut el captcha" + +#: src/routes/api/auth/register.js:36 +msgid "E-Mail already in use." +msgstr "El correu electrònic ja està en ús." + +#: src/routes/api/auth/register.js:38 +msgid "Username already in use." +msgstr "El nom d'usuari ja està en ús." + +#: src/routes/api/auth/register.js:91 +msgid "Failed to create new user :(" +msgstr "No s'ha pogut crear un nou usuari :(" + +#: src/routes/api/auth/register.js:106 +msgid "Failed to establish session after register :(" +msgstr "No s'ha pogut establir la sessió després del registre :(" + +#: src/routes/api/auth/verify.js:25 src/routes/api/auth/verify.js:32 +msgid "Mail verification" +msgstr "Verificació del correu electrònic" + +#: src/routes/api/auth/verify.js:26 +msgid "You are now verified :)" +msgstr "Ja estàs verificat :)" + +#: src/routes/api/auth/verify.js:32 +msgid "" +"Your mail verification code is invalid or already expired :(, please request " +"a new one." +msgstr "" +"El codi de verificació del correu electrònic no és vàlid o ja ha caducat :" +"( si us plau sol·licita'n un de nou." + +#: src/routes/api/auth/logout.js:13 +msgid "You are not even logged in." +msgstr "Ni tan sols has iniciat sessió." + +#: src/routes/api/auth/change_mail.js:41 +#: src/routes/api/auth/change_passwd.js:37 +#: src/routes/api/auth/delete_account.js:38 +msgid "You are not authenticated." +msgstr "No estàs verificat." + +#: src/routes/api/auth/change_mail.js:50 +#: src/routes/api/auth/change_passwd.js:46 +#: src/routes/api/auth/delete_account.js:48 +msgid "Incorrect password!" +msgstr "Contrasenya incorrecta!" + +#: src/ssr-components/RedirectionPage.jsx:20 +msgid "You will be automatically redirected after 15s" +msgstr "Seràs redirigit automàticament al cap de 15 segons" + +#: src/ssr-components/RedirectionPage.jsx:21 +#, javascript-format +msgid "Or ${ clickHere } to go back to pixelplanet" +msgstr "O ${ clickHere } per tornar a PixelPlanet" + +#: src/ssr-components/RedirectionPage.jsx:25 +msgid "PixelPlanet.fun Accounts" +msgstr "Comptes de PixelPlanet.fun" + +#: src/canvasesDesc.js:18 +msgid "Earth" +msgstr "Terra" + +#: src/canvasesDesc.js:19 +msgid "Moon" +msgstr "Lluna" + +#: src/canvasesDesc.js:20 +msgid "3D Canvas" +msgstr "Llenç 3D" + +#: src/canvasesDesc.js:21 +msgid "Coronavirus" +msgstr "Coronavirus" + +#: src/canvasesDesc.js:22 +msgid "PixelZone" +msgstr "PixelZone" + +#: src/canvasesDesc.js:23 +msgid "PixelCanvas" +msgstr "PixelCanvas" + +#: src/canvasesDesc.js:24 +msgid "1bit" +msgstr "1bit" + +#: src/canvasesDesc.js:25 +msgid "Top10" +msgstr "Top10" + +#: src/canvasesDesc.js:28 +msgid "Our main canvas, a huge map of the world. Place everywhere you like" +msgstr "" +"El nostre llenç principal, un enorme mapa del món. Col·loca allà on vulguis" + +#: src/canvasesDesc.js:29 +msgid "" +"Moon canvas. Safe space for art. No flags or large text (unless part of art) " +"or art larger than 1.5k x 1.5k pixels." +msgstr "" +"Llenç de la Lluna. Espai segur per a l'art. No es poden fer banderes ni text " +"gran (tret que siguin part d'un art) ni imatges superiors a 1,5k x 1,5k " +"píxels." + +#: src/canvasesDesc.js:30 +msgid "Place Voxels on a 3D canvas with others" +msgstr "Col·loca voxels en un llenç 3D amb altres jugadors" + +#: src/canvasesDesc.js:31 +msgid "Special canvas to spread awareness of SARS-CoV2" +msgstr "Llenç especial per conscienciar sobre el SARS-CoV-2" + +#: src/canvasesDesc.js:32 +msgid "Mirror of PixelZone" +msgstr "Mirall de PixelZone" + +#: src/canvasesDesc.js:33 +msgid "Mirror of PixelCanvas" +msgstr "Mirall de PixelCanvas" + +#: src/canvasesDesc.js:34 +msgid "Black and White canvas" +msgstr "Llenç en blanc i negre" + +#: src/canvasesDesc.js:35 +msgid "" +"A canvas for the most active players from the the previous day. Daily " +"ranking updates at 00:00 UTC." +msgstr "" +"Un llenç per als jugadors més actius del dia anterior. La classificació " +"diària s'actualitza a les 00:00 UTC." diff --git a/i18n/template-ssr.pot b/i18n/template-ssr.pot index e8b5e3f..f03168e 100644 --- a/i18n/template-ssr.pot +++ b/i18n/template-ssr.pot @@ -3,53 +3,53 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: src/core/ChatProvider.js:327 +#: src/core/ChatProvider.js:350 msgid "You can not send chat messages with proxy" msgstr "" -#: src/core/ChatProvider.js:341 +#: src/core/ChatProvider.js:364 #, javascript-format msgid "You are sending messages too fast, you have to wait ${ waitTime }s :(" msgstr "" -#: src/core/ChatProvider.js:345 +#: src/core/ChatProvider.js:368 msgid "You don't have access to this channel" msgstr "" -#: src/core/ChatProvider.js:361 +#: src/core/ChatProvider.js:384 msgid "Your mail has to be verified in order to chat" msgstr "" -#: src/core/ChatProvider.js:366 +#: src/core/ChatProvider.js:389 msgid "You are permanently muted, join our guilded to apppeal the mute" msgstr "" -#: src/core/ChatProvider.js:371 +#: src/core/ChatProvider.js:394 #, javascript-format msgid "You are muted for another ${ timeMin } minutes" msgstr "" -#: src/core/ChatProvider.js:373 +#: src/core/ChatProvider.js:396 msgid "You are muted for another ${ muted } seconds" msgstr "" -#: src/core/ChatProvider.js:381 +#: src/core/ChatProvider.js:404 msgid "Ow no! Spam protection decided to mute you" msgstr "" -#: src/core/ChatProvider.js:392 +#: src/core/ChatProvider.js:415 msgid "You can't send a message this long :(" msgstr "" -#: src/core/ChatProvider.js:396 +#: src/core/ChatProvider.js:419 msgid "Please use int channel" msgstr "" -#: src/core/ChatProvider.js:400 +#: src/core/ChatProvider.js:423 msgid "Your country is temporary muted from chat" msgstr "" -#: src/core/ChatProvider.js:408 +#: src/core/ChatProvider.js:431 msgid "Stop flooding." msgstr "" diff --git a/i18n/template.pot b/i18n/template.pot index eb5bf87..62c2460 100644 --- a/i18n/template.pot +++ b/i18n/template.pot @@ -3,6 +3,48 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" +#: src/controls/keypress.js:41 +#, javascript-format +msgid "Switched to ${ canvasName }" +msgstr "" + +#: src/controls/keypress.js:64 +msgid "Grid ON" +msgstr "" + +#: src/controls/keypress.js:65 +msgid "Grid OFF" +msgstr "" + +#: src/controls/keypress.js:75 +msgid "Pixel Notify ON" +msgstr "" + +#: src/controls/keypress.js:76 +msgid "Pixel Notify OFF" +msgstr "" + +#: src/controls/keypress.js:81 +msgid "Muted Sound" +msgstr "" + +#: src/controls/keypress.js:82 +msgid "Unmuted Sound" +msgstr "" + +#: src/components/CoordinatesBox.jsx:29 +#: src/controls/keypress.js:88 +msgid "Copied!" +msgstr "" + +#: src/controls/keypress.js:94 +msgid "Show Hidden Canvases" +msgstr "" + +#: src/controls/keypress.js:95 +msgid "Hide Hidden Canvases" +msgstr "" + #: src/ui/placePixel.js:53 msgid "Error :(" msgstr "" @@ -104,48 +146,6 @@ msgstr "" msgid "Error ${ retCode }" msgstr "" -#: src/controls/keypress.js:41 -#, javascript-format -msgid "Switched to ${ canvasName }" -msgstr "" - -#: src/controls/keypress.js:64 -msgid "Grid ON" -msgstr "" - -#: src/controls/keypress.js:65 -msgid "Grid OFF" -msgstr "" - -#: src/controls/keypress.js:75 -msgid "Pixel Notify ON" -msgstr "" - -#: src/controls/keypress.js:76 -msgid "Pixel Notify OFF" -msgstr "" - -#: src/controls/keypress.js:81 -msgid "Muted Sound" -msgstr "" - -#: src/controls/keypress.js:82 -msgid "Unmuted Sound" -msgstr "" - -#: src/components/CoordinatesBox.jsx:29 -#: src/controls/keypress.js:88 -msgid "Copied!" -msgstr "" - -#: src/controls/keypress.js:94 -msgid "Show Hidden Canvases" -msgstr "" - -#: src/controls/keypress.js:95 -msgid "Hide Hidden Canvases" -msgstr "" - #: src/ui/renderer.js:36 msgid "Canvas Error" msgstr "" @@ -227,6 +227,11 @@ msgstr "" msgid "Server answered with gibberish :(" msgstr "" +#: src/components/buttons/CanvasSwitchButton.jsx:22 +#: src/components/windows/index.js:22 +msgid "Canvas Selection" +msgstr "" + #: src/components/buttons/ChatButton.jsx:92 msgid "Close Chat" msgstr "" @@ -235,11 +240,6 @@ msgstr "" msgid "Open Chat" msgstr "" -#: src/components/buttons/CanvasSwitchButton.jsx:22 -#: src/components/windows/index.js:22 -msgid "Canvas Selection" -msgstr "" - #: src/components/buttons/ExpandMenuButton.jsx:23 msgid "Close Menu" msgstr "" @@ -272,6 +272,18 @@ msgstr "" msgid "Resize" msgstr "" +#: src/components/buttons/GlobeButton.jsx:35 +msgid "Globe View" +msgstr "" + +#: src/components/buttons/PalselButton.jsx:31 +msgid "Close Palette" +msgstr "" + +#: src/components/buttons/PalselButton.jsx:31 +msgid "Open Palette" +msgstr "" + #: src/components/buttons/HelpButton.jsx:23 #: src/components/windows/index.js:16 msgid "Help" @@ -291,18 +303,6 @@ msgstr "" msgid "Make Screenshot" msgstr "" -#: src/components/buttons/GlobeButton.jsx:35 -msgid "Globe View" -msgstr "" - -#: src/components/buttons/PalselButton.jsx:31 -msgid "Close Palette" -msgstr "" - -#: src/components/buttons/PalselButton.jsx:31 -msgid "Open Palette" -msgstr "" - #: src/components/contextmenus/UserContextMenu.jsx:53 msgid "Ping" msgstr "" @@ -335,7 +335,7 @@ msgstr "" msgid "Canvas Archive" msgstr "" -#: src/components/Captcha.jsx:69 +#: src/components/Captcha.jsx:77 #: src/components/ChangeMail.jsx:72 #: src/components/ChangeName.jsx:58 #: src/components/ChangePassword.jsx:80 @@ -741,6 +741,14 @@ msgid "" "how the canvas was at that time." msgstr "" +#: src/components/windows/ForgotPassword.jsx:60 +msgid "Sent you a mail with instructions to reset your password." +msgstr "" + +#: src/components/windows/ForgotPassword.jsx:71 +msgid "Enter your mail address and we will send you a new password:" +msgstr "" + #: src/components/windows/Chat.jsx:146 msgid "Channel settings" msgstr "" @@ -757,32 +765,24 @@ msgstr "" msgid "You must be logged in to chat" msgstr "" -#: src/components/windows/ForgotPassword.jsx:60 -msgid "Sent you a mail with instructions to reset your password." -msgstr "" - -#: src/components/windows/ForgotPassword.jsx:71 -msgid "Enter your mail address and we will send you a new password:" -msgstr "" - -#: src/components/Captcha.jsx:42 +#: src/components/Captcha.jsx:50 #: src/components/Captcha.jsx:105 msgid "Could not load captcha" msgstr "" -#: src/components/Captcha.jsx:60 +#: src/components/Captcha.jsx:68 msgid "Type the characters from the following image:" msgstr "" -#: src/components/Captcha.jsx:63 +#: src/components/Captcha.jsx:71 msgid "Tip: Not case-sensitive; I and l are the same" msgstr "" -#: src/components/Captcha.jsx:113 +#: src/components/Captcha.jsx:114 msgid "Load Captcha" msgstr "" -#: src/components/Captcha.jsx:118 +#: src/components/Captcha.jsx:119 msgid "Click to Load Captcha" msgstr "" @@ -1143,6 +1143,20 @@ msgstr "" msgid "LogIn" msgstr "" +#: src/components/UserMessages.jsx:28 +msgid "" +"Please verify your mail address \n" +"or your account could get deleted after a few days." +msgstr "" + +#: src/components/UserMessages.jsx:49 +msgid "A new verification mail is getting sent to you." +msgstr "" + +#: src/components/UserMessages.jsx:53 +msgid "Click here to request a new verification mail." +msgstr "" + #: src/components/ChangePassword.jsx:22 msgid "Passwords do not match." msgstr "" @@ -1163,24 +1177,6 @@ msgstr "" msgid "Confirm New Password" msgstr "" -#: src/components/UserMessages.jsx:28 -msgid "" -"Please verify your mail address \n" -"or your account could get deleted after a few days." -msgstr "" - -#: src/components/UserMessages.jsx:49 -msgid "A new verification mail is getting sent to you." -msgstr "" - -#: src/components/UserMessages.jsx:53 -msgid "Click here to request a new verification mail." -msgstr "" - -#: src/components/ChangeName.jsx:64 -msgid "New Username" -msgstr "" - #: src/components/ChangeMail.jsx:59 msgid "" "Changed Mail successfully. We sent you a verification mail, " @@ -1191,6 +1187,10 @@ msgstr "" msgid "New Mail" msgstr "" +#: src/components/ChangeName.jsx:64 +msgid "New Username" +msgstr "" + #: src/components/DeleteAccount.jsx:66 msgid "Yes, Delete My Account!" msgstr "" diff --git a/package-lock.json b/package-lock.json index 826fe3f..23e2c50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "dependencies": { "bcrypt": "^5.0.1", "bluebird": "^3.5.0", - "bufferutil": "^4.0.6", "compression": "^1.7.3", "connect-redis": "^6.0.0", "cookie": "^0.4.1", @@ -21,7 +20,7 @@ "express-session": "^1.17.2", "global": "^4.3.2", "http-proxy-agent": "^5.0.0", - "image-q": "^3.0.7", + "image-q": "^4.0.0", "isomorphic-fetch": "^3.0.0", "js-file-download": "^0.4.12", "localforage": "^1.10.0", @@ -58,7 +57,6 @@ "ttag": "^1.7.24", "ttag-po-loader": "0.0.2", "url-search-params-polyfill": "^8.1.1", - "utf-8-validate": "*", "winston": "^3.3.3", "winston-daily-rotate-file": "^4.5.5", "ws": "^8.4.0" @@ -81,20 +79,20 @@ "babel-plugin-ttag": "^1.7.30", "clean-css": "^5.2.2", "clean-css-loader": "^4.1.1", - "copy-webpack-plugin": "^10.2.0", + "copy-webpack-plugin": "^10.2.1", "css-loader": "^6.5.1", - "eslint": "^8.6.0", + "eslint": "^8.7.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.25.3", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.28.0", - "generate-package-json-webpack-plugin": "^2.5.1", + "generate-package-json-webpack-plugin": "^2.6.0", "mkdirp": "^1.0.4", "ttag-cli": "^1.9.3", - "webpack": "^5.65.0", + "webpack": "^5.67.0", "webpack-bundle-analyzer": "^4.5.0", - "webpack-cli": "^4.9.1", + "webpack-cli": "^4.9.2", "webpack-node-externals": "^3.0.0" }, "engines": { @@ -102,6 +100,7 @@ "npm": ">=6.13.4" }, "optionalDependencies": { + "bufferutil": "^4.0.6", "utf-8-validate": "^5.0.8" } }, @@ -2435,9 +2434,9 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", - "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", "dev": true, "peerDependencies": { "webpack": "4.x.x || 5.x.x", @@ -2445,9 +2444,9 @@ } }, "node_modules/@webpack-cli/info": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz", - "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", "dev": true, "dependencies": { "envinfo": "^7.7.3" @@ -2457,9 +2456,9 @@ } }, "node_modules/@webpack-cli/serve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", - "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", "dev": true, "peerDependencies": { "webpack-cli": "4.x.x" @@ -2617,15 +2616,6 @@ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3261,6 +3251,7 @@ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", "hasInstallScript": true, + "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -3875,9 +3866,9 @@ } }, "node_modules/copy-webpack-plugin": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.0.tgz", - "integrity": "sha512-my6iXII95c78w14HzYCNya5TlJYa44lOppAge5GSTMM1SyDxNsVGCJvhP4/ld6snm8lzjn3XOonMZD6s1L86Og==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", + "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", "dev": true, "dependencies": { "fast-glob": "^3.2.7", @@ -4381,18 +4372,6 @@ "node": ">=10.13.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -4496,9 +4475,9 @@ } }, "node_modules/eslint": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", - "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", + "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.0.5", @@ -4508,11 +4487,10 @@ "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", + "eslint-visitor-keys": "^3.2.0", "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", @@ -4521,7 +4499,7 @@ "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", @@ -4532,9 +4510,7 @@ "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", "regexpp": "^3.2.0", - "semver": "^7.2.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", @@ -4889,9 +4865,9 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4933,19 +4909,13 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/eslint/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, "engines": { - "node": ">=10" + "node": ">= 4" } }, "node_modules/eslint/node_modules/supports-color": { @@ -5505,9 +5475,9 @@ } }, "node_modules/generate-package-json-webpack-plugin": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/generate-package-json-webpack-plugin/-/generate-package-json-webpack-plugin-2.5.1.tgz", - "integrity": "sha512-RdMRVnNnjk/BhglXxvvspdzSApivNO2Nu+Iz4uffrptfhyWKrs1PYcWOL4NonOthatoBmEaldUJCGnT1DGZ4Ag==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/generate-package-json-webpack-plugin/-/generate-package-json-webpack-plugin-2.6.0.tgz", + "integrity": "sha512-JJS6CTkCIJeiqJay/mqrO005vbyLeozcyQvJf5AbToN7zsBewlu1Zk4dLiTV1+S/jJUUFjjn/ng9rjdbsJYyXw==", "dev": true }, "node_modules/gensync": { @@ -5922,9 +5892,9 @@ } }, "node_modules/image-q": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/image-q/-/image-q-3.0.7.tgz", - "integrity": "sha512-fqnEJVh6c7HRSIDeDileUGwzT+yLNpZYH0RmOWEX3Fc02TqGJno0hIfHvEDB5ly8mbf+nCdNr+sueEErGpZlJQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz", + "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==", "dependencies": { "@types/node": "16.9.1" } @@ -7327,6 +7297,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "optional": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -8397,15 +8368,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -10390,9 +10352,9 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "node_modules/webpack": { - "version": "5.65.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", - "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", + "version": "5.67.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.67.0.tgz", + "integrity": "sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", @@ -10409,7 +10371,7 @@ "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "json-parse-better-errors": "^1.0.2", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -10418,7 +10380,7 @@ "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.3.1", - "webpack-sources": "^3.2.2" + "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" @@ -10560,15 +10522,15 @@ } }, "node_modules/webpack-cli": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", - "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.0", - "@webpack-cli/info": "^1.4.0", - "@webpack-cli/serve": "^1.6.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", "colorette": "^2.0.14", "commander": "^7.0.0", "execa": "^5.0.0", @@ -10634,9 +10596,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", - "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, "engines": { "node": ">=10.13.0" @@ -12670,25 +12632,25 @@ } }, "@webpack-cli/configtest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", - "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz", - "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", "dev": true, "requires": { "envinfo": "^7.7.3" } }, "@webpack-cli/serve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", - "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", "dev": true, "requires": {} }, @@ -12804,12 +12766,6 @@ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -13282,6 +13238,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", + "optional": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -13768,9 +13725,9 @@ } }, "copy-webpack-plugin": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.0.tgz", - "integrity": "sha512-my6iXII95c78w14HzYCNya5TlJYa44lOppAge5GSTMM1SyDxNsVGCJvhP4/ld6snm8lzjn3XOonMZD6s1L86Og==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", + "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", "dev": true, "requires": { "fast-glob": "^3.2.7", @@ -14153,15 +14110,6 @@ "tapable": "^2.2.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -14238,9 +14186,9 @@ "dev": true }, "eslint": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", - "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", + "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, "requires": { "@eslint/eslintrc": "^1.0.5", @@ -14250,11 +14198,10 @@ "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", + "eslint-visitor-keys": "^3.2.0", "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", @@ -14263,7 +14210,7 @@ "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", @@ -14274,9 +14221,7 @@ "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", "regexpp": "^3.2.0", - "semver": "^7.2.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", @@ -14328,9 +14273,9 @@ } }, "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true }, "glob-parent": { @@ -14357,14 +14302,11 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true }, "supports-color": { "version": "7.2.0", @@ -15025,9 +14967,9 @@ } }, "generate-package-json-webpack-plugin": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/generate-package-json-webpack-plugin/-/generate-package-json-webpack-plugin-2.5.1.tgz", - "integrity": "sha512-RdMRVnNnjk/BhglXxvvspdzSApivNO2Nu+Iz4uffrptfhyWKrs1PYcWOL4NonOthatoBmEaldUJCGnT1DGZ4Ag==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/generate-package-json-webpack-plugin/-/generate-package-json-webpack-plugin-2.6.0.tgz", + "integrity": "sha512-JJS6CTkCIJeiqJay/mqrO005vbyLeozcyQvJf5AbToN7zsBewlu1Zk4dLiTV1+S/jJUUFjjn/ng9rjdbsJYyXw==", "dev": true }, "gensync": { @@ -15319,9 +15261,9 @@ "dev": true }, "image-q": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/image-q/-/image-q-3.0.7.tgz", - "integrity": "sha512-fqnEJVh6c7HRSIDeDileUGwzT+yLNpZYH0RmOWEX3Fc02TqGJno0hIfHvEDB5ly8mbf+nCdNr+sueEErGpZlJQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz", + "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==", "requires": { "@types/node": "16.9.1" } @@ -16398,7 +16340,8 @@ "node-gyp-build": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "optional": true }, "node-releases": { "version": "2.0.1", @@ -17190,12 +17133,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -18678,9 +18615,9 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "webpack": { - "version": "5.65.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", - "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", + "version": "5.67.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.67.0.tgz", + "integrity": "sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -18697,7 +18634,7 @@ "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "json-parse-better-errors": "^1.0.2", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -18706,7 +18643,7 @@ "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.3.1", - "webpack-sources": "^3.2.2" + "webpack-sources": "^3.2.3" }, "dependencies": { "ajv": { @@ -18816,15 +18753,15 @@ } }, "webpack-cli": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", - "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.0", - "@webpack-cli/info": "^1.4.0", - "@webpack-cli/serve": "^1.6.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", "colorette": "^2.0.14", "commander": "^7.0.0", "execa": "^5.0.0", @@ -18860,9 +18797,9 @@ "dev": true }, "webpack-sources": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", - "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true }, "whatwg-fetch": { diff --git a/package.json b/package.json index 8cd65a2..0000f99 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "express-session": "^1.17.2", "global": "^4.3.2", "http-proxy-agent": "^5.0.0", - "image-q": "^3.0.7", + "image-q": "^4.0.0", "isomorphic-fetch": "^3.0.0", "js-file-download": "^0.4.12", "localforage": "^1.10.0", @@ -94,24 +94,24 @@ "babel-plugin-ttag": "^1.7.30", "clean-css": "^5.2.2", "clean-css-loader": "^4.1.1", - "copy-webpack-plugin": "^10.2.0", + "copy-webpack-plugin": "^10.2.1", "css-loader": "^6.5.1", - "eslint": "^8.6.0", + "eslint": "^8.7.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.25.3", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.28.0", - "generate-package-json-webpack-plugin": "^2.5.1", + "generate-package-json-webpack-plugin": "^2.6.0", "mkdirp": "^1.0.4", "ttag-cli": "^1.9.3", - "webpack": "^5.65.0", + "webpack": "^5.67.0", "webpack-bundle-analyzer": "^4.5.0", - "webpack-cli": "^4.9.1", + "webpack-cli": "^4.9.2", "webpack-node-externals": "^3.0.0" }, "optionalDependencies": { - "utf-8-validate": "^5.0.8", - "bufferutil": "^4.0.6" + "bufferutil": "^4.0.6", + "utf-8-validate": "^5.0.8" } } diff --git a/public/cf/ct.gif b/public/cf/ct.gif new file mode 100644 index 0000000000000000000000000000000000000000..73df9a0498e644d740d4b977b750e7c2f81c6777 GIT binary patch literal 238 zcmV>2R(OZZtg{&-mI@-yij3G>G+^+_kur3&)* zRQT&N?ejb0wj1j3Dd+AZ_{=f;YDez$MDjlu?7$`U=P22&66m}k?^h%Ay9L;CJOA^8LV00000EC2ui01yBR000GRASa4Yd7M;wH4xyw+omXjATbR_ z?0n>Vg8^n>fW%@nfksm(I2?ssXFBx&2Z-zhVK{ug;Ll=Fsbn%03&zS0Vzt}ua>-~u oAAx)zv9`Li2or*W1{5_m40TQqczFpa6e|sr7L^tWm {