diff --git a/i18n/de.mo b/i18n/de.mo new file mode 100644 index 0000000..bf8b255 Binary files /dev/null and b/i18n/de.mo differ diff --git a/i18n/de.po b/i18n/de.po index 9e73439..c1eede1 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -3,11 +3,372 @@ 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" +"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" +"MIME-Version: 1.0\n" +"X-Generator: Poedit 2.3\n" -#: src/components/ForgotPasswordModal.jsx:20 -#: src/components/RegisterModal.jsx:21 +#: src/components/ForgotPasswordModal.jsx:20 src/components/RegisterModal.jsx:21 #: src/components/UserAreaModal.jsx:128 msgid "Consider joining us on Guilded:" -msgstr "Sprich zu uns und anderen Spielern auf guilded:" +msgstr "Triff uns und andere Spieler auf guilded:" + +#: 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:34 src/components/HelpModal.jsx:35 +msgid "Privacy Policy" +msgstr "Datenschutzerklärung" + +#: src/components/HelpModal.jsx:36 src/components/HelpModal.jsx:37 +msgid "Terms of Service" +msgstr "Nutzungsbedingungen" + +#: src/components/HelpModal.jsx:40 +msgid "your IP" +msgstr "deine 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!" + +#: src/components/HelpModal.jsx:52 +msgid "Have fun!" +msgstr "Viel Spaß!" + +#: src/components/HelpModal.jsx:54 +msgid "recommended" +msgstr "empfohlen" + +#: src/components/HelpModal.jsx:55 +msgid "Source on " +msgstr "Quelltext auf " + +#: src/components/HelpModal.jsx:56 +msgid "Map Data" +msgstr "Karten Dateien" + +#: src/components/HelpModal.jsx:59 +msgid "Detected as Proxy?" +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." +msgstr "" +"Solltest do als Proxy erkannt sein, aber du benutzt keines, bitte kontaktiere uns " +"auf ${ guildedLink } oder sende uns eine Mail mit ${ getIPLink } auf " +"${ mailLink }. Sende deine IP zu niemanden sonst. Wir entschuldigen uns für die " +"Unannehmlichkeiten." + +#: src/components/HelpModal.jsx:67 +msgid "Press ${ bindX } to toggle showing of pixel activity" +msgstr "Drücke ${ bindX } um Pixel Aktivität anzuzeigen" + +#: src/components/HelpModal.jsx:68 +#, javascript-format +msgid "Press ${ bindH } to toggle historical view" +msgstr "Drücke ${ bindH } um zur historischen Ansicht zu wechseln" + +#: src/components/HelpModal.jsx:69 +msgid "Press ${ bindR } to copy coordinates" +msgstr "Drücke ${ bindR } um aktuelle Koordinaten zu kopieren" + +#: src/components/HelpModal.jsx:70 +#, javascript-format +msgid "Press ${ bindQ } or ${ bindE } to zoom" +msgstr "Drücke ${ bindQ } oder ${ bindE } um zu zoomen" + +#: src/components/HelpModal.jsx:71 src/components/HelpModal.jsx:82 +#, javascript-format +msgid "Press ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } to move" +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" +msgstr "" +"Drücke ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } zum " +"navigieren" + +#: 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" + +#: src/components/HelpModal.jsx:74 +#, javascript-format +msgid "Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom" +msgstr "" +"Scrolle ${ mouseSymbol } mit them Mausrad oder ${ touchSymbol } benutze Zwei-" +"Finger-Zoom um zu zoomen" + +#: src/components/HelpModal.jsx: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" + +#: src/components/HelpModal.jsx:76 +#, javascript-format +msgid "" +"Hold right ${ bindShift } for placing while moving mouse according to historical " +"view" +msgstr "" +"Halte die rechte ${ bindShift } Taste gedrückt um Pixel unter der Maus nach der " +"aktuellen historischen Ansicht zu setzen" + +#: src/components/HelpModal.jsx:78 src/components/HelpModal.jsx:90 +msgid "" +"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to select " +"current hovering color" +msgstr "" +"Klicke ${ mouseSymbol } die mittlere Maustaste oder ${ touchSymbol } tippe lange " +"um eine Farbe von der Leinwand auszuwählen" + +#: src/components/HelpModal.jsx:84 +msgid "Press ${ bindE } and ${ bindC } to fly up and down" +msgstr "Drücke ${ bindE } oder ${ bindC } um hoch und runter zu fliegen" + +#: src/components/HelpModal.jsx: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" + +#: src/components/HelpModal.jsx:86 +#, javascript-format +msgid "" +"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse button " +"and drag to zoom" +msgstr "" +"${ mouseSymbol } Scrolle mit dem Mausrad oder halte ${ mouseSymbol } die mittlere " +"Maustaste gedrückt und ziehe um zu zoomen" + +#: src/components/HelpModal.jsx: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" + +#: 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" + +#: src/components/HelpModal.jsx:92 +msgid "Partners:" +msgstr "Partner:" + +#: src/components/HelpModal.jsx:97 +#, javascript-format +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." + +#: src/components/HelpModal.jsx:103 +msgid "" +"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." + +#: src/components/HelpModal.jsx:113 +msgid "Welcome to PixelPlanet.fun" +msgstr "Willkommen auf PixelPlanet.fun" + +#: 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: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/CanvasSwitchButton.jsx:20 +msgid "Canvas Selection" +msgstr "Leinwand auswahl" + +#: 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/ChatButton.jsx:61 +msgid "Close Chat" +msgstr "Schließe Chat" + +#: src/components/ChatButton.jsx:61 +msgid "Open Chat" +msgstr "Öffne Chat" + +#: 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/ExpandMenuButton.jsx:19 +msgid "Close Menu" +msgstr "Schließe Menü" + +#: src/components/ExpandMenuButton.jsx:19 +msgid "Open Menu" +msgstr "Öffne Menü" + +#: 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 +msgctxt "keybinds" +msgid "G" +msgstr "" + +#: src/components/HelpModal.jsx:16 +msgctxt "keybinds" +msgid "X" +msgstr "" + +#: src/components/HelpModal.jsx:17 +msgctxt "keybinds" +msgid "H" +msgstr "" + +#: src/components/HelpModal.jsx:18 +msgctxt "keybinds" +msgid "R" +msgstr "" + +#: src/components/HelpModal.jsx:19 +msgctxt "keybinds" +msgid "Q" +msgstr "" + +#: src/components/HelpModal.jsx:21 +msgctxt "keybinds" +msgid "W" +msgstr "" + +#: src/components/HelpModal.jsx:22 +msgctxt "keybinds" +msgid "A" +msgstr "" + +#: src/components/HelpModal.jsx:23 +msgctxt "keybinds" +msgid "S" +msgstr "" + +#: src/components/HelpModal.jsx:24 +msgctxt "keybinds" +msgid "D" +msgstr "" + +#: src/components/HelpModal.jsx:20 +msgctxt "keybinds" +msgid "E" +msgstr "" + +#: src/components/HelpModal.jsx:31 +msgctxt "keybinds" +msgid "Shift" +msgstr "" + +#: src/components/HelpModal.jsx:32 +msgctxt "keybinds" +msgid "C" +msgstr "" diff --git a/i18n/es.po b/i18n/es.po deleted file mode 100644 index 9e73439..0000000 --- a/i18n/es.po +++ /dev/null @@ -1,13 +0,0 @@ -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" - -#: src/components/ForgotPasswordModal.jsx:20 -#: src/components/RegisterModal.jsx:21 -#: src/components/UserAreaModal.jsx:128 -msgid "Consider joining us on Guilded:" -msgstr "Sprich zu uns und anderen Spielern auf guilded:" diff --git a/scripts/bundle.js b/scripts/bundle.js index b527fed..7e84f19 100644 --- a/scripts/bundle.js +++ b/scripts/bundle.js @@ -41,11 +41,11 @@ async function bundle() { const regex = /core-js\/fn\/set-immediate/g; const files = [ path.resolve( - '..', 'node_modules', + __dirname, '..', 'node_modules', 'image-q', 'dist', 'esm', 'basicAPI.js', ), path.resolve( - '..', 'node_modules', + __dirname, '..', 'node_modules', 'image-q', 'dist', 'esm', 'helper.js', ), ]; diff --git a/scripts/minifyCss.js b/scripts/minifyCss.js index d43ee10..7a72efb 100644 --- a/scripts/minifyCss.js +++ b/scripts/minifyCss.js @@ -25,7 +25,7 @@ async function minifyCss() { console.log('Minifying css'); const assets = {}; FILES.forEach((file) => { - const input = fs.readFileSync(`${FOLDER}/${file}`, 'utf8'); + const input = fs.readFileSync(path.resolve(FOLDER, file), 'utf8'); const options = {}; const output = new CleanCSS(options).minify(input); if (output.warnings && output.warnings.length > 0) { @@ -44,11 +44,11 @@ async function minifyCss() { const hash = crypto.createHash('md5').update(output.styles).digest('hex'); const key = file.substr(0, file.indexOf('.')); const filename = `${key}.${hash.substr(0, 8)}.css`; - fs.writeFileSync(`${assetdir}/${filename}`, output.styles, 'utf8'); + fs.writeFileSync(path.resolve(assetdir,filename), output.styles, 'utf8'); assets[key] = `/assets/${filename}`; }); const json = JSON.stringify(assets); - fs.writeFileSync(`${builddir}/styleassets.json`, json); + fs.writeFileSync(path.resolve(builddir, styleassets.json), json); } export default minifyCss; diff --git a/src/components/Admintools.jsx b/src/components/Admintools.jsx index 085b826..e404013 100644 --- a/src/components/Admintools.jsx +++ b/src/components/Admintools.jsx @@ -1,6 +1,5 @@ /* - * Html for adminpage - * + * Admintools * @flow */ diff --git a/src/components/CanvasSwitchButton.jsx b/src/components/CanvasSwitchButton.jsx index bd90103..800dacd 100644 --- a/src/components/CanvasSwitchButton.jsx +++ b/src/components/CanvasSwitchButton.jsx @@ -6,6 +6,7 @@ import React from 'react'; import { connect } from 'react-redux'; import { FaGlobe } from 'react-icons/fa'; +import { t } from 'ttag'; import { showCanvasSelectionModal } from '../actions'; @@ -16,6 +17,7 @@ const CanvasSwitchButton = ({ open }) => ( className="actionbuttons" onClick={open} role="button" + title={t`Canvas Selection`} tabIndex={-1} > diff --git a/src/components/Chat.jsx b/src/components/Chat.jsx index 3b5bb8f..c4122da 100644 --- a/src/components/Chat.jsx +++ b/src/components/Chat.jsx @@ -8,6 +8,7 @@ import React, { } from 'react'; import useStayScrolled from 'react-stay-scrolled'; import { connect } from 'react-redux'; +import { t } from 'ttag'; import type { State } from '../reducers'; import ChatMessage from './ChatMessage'; @@ -139,6 +140,7 @@ const Chat = ({ ); }} role="button" + title={t`Channel settings`} tabIndex={-1} >⚙   @@ -147,6 +149,7 @@ const Chat = ({ )} @@ -162,7 +165,7 @@ const Chat = ({ && ( @@ -194,7 +197,7 @@ const Chat = ({ id="chatmsginput" maxLength="200" type="text" - placeholder="Chat here" + placeholder={t`Chat here`} />