change webpack config variables from arguments to env
This commit is contained in:
parent
14762e302b
commit
c45a7bab7f
|
@ -255,6 +255,10 @@ Run `npm run lint:src` to check for code errors and warnings or `npm run lint --
|
||||||
Please do not produce too many additional warnings.
|
Please do not produce too many additional warnings.
|
||||||
|
|
||||||
[ttag](https://github.com/ttag-org/ttag/) is used for handling translations. For server-side rendering the `Accept-Language` header gets checked and the first locale used and on-the-fly translated (`src/core/ttag.js` provides the functions for it). On the client-side a seperate bundle for every language gets provided.
|
[ttag](https://github.com/ttag-org/ttag/) is used for handling translations. For server-side rendering the `Accept-Language` header gets checked and the first locale used and on-the-fly translated (`src/core/ttag.js` provides the functions for it). On the client-side a seperate bundle for every language gets provided.
|
||||||
|
To update the language definitions in `i18n/template.pot` and `i18n/template-ssr.pot` run
|
||||||
|
```
|
||||||
|
npm run extract
|
||||||
|
```
|
||||||
|
|
||||||
You can use `npm run babel-node ./your/script.js` to execute a script with local babel.
|
You can use `npm run babel-node ./your/script.js` to execute a script with local babel.
|
||||||
|
|
||||||
|
|
140
i18n/dz.po
140
i18n/dz.po
|
@ -3,7 +3,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"PO-Revision-Date: 2021-01-31 11:31+0100\n"
|
"PO-Revision-Date: 2021-02-01 20:15+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Dzongkha\n"
|
"Language-Team: Dzongkha\n"
|
||||||
"Language: dz\n"
|
"Language: dz\n"
|
||||||
|
@ -134,42 +134,41 @@ msgstr "གཟུགས་ཀྱི་ཡན་ལག ཁར་ཁིར།"
|
||||||
msgid "Pixels placed"
|
msgid "Pixels placed"
|
||||||
msgstr "གློག་རིག་ཡོངས་འབྲེལ། སྐུ་དང་མཆོད་རྟེན་གྱི་སྲོག་ཤིང༌།"
|
msgstr "གློག་རིག་ཡོངས་འབྲེལ། སྐུ་དང་མཆོད་རྟེན་གྱི་སྲོག་ཤིང༌།"
|
||||||
|
|
||||||
#: src/components/CanvasSelectModal.jsx:67
|
#: src/components/CanvasSelectModal.jsx:67 src/components/CanvasSwitchButton.jsx:20
|
||||||
#: src/components/CanvasSwitchButton.jsx:20
|
|
||||||
msgid "Canvas Selection"
|
msgid "Canvas Selection"
|
||||||
msgstr ""
|
msgstr "རྒྱ་ལས་ཐོན་པའི་ཁ་ཤ་དར་རས། ཟོགཔོ་ཕར་བསལ་ནི།"
|
||||||
|
|
||||||
#: src/components/DownloadButton.jsx:37
|
#: src/components/DownloadButton.jsx:37
|
||||||
msgid "Make Screenshot"
|
msgid "Make Screenshot"
|
||||||
msgstr ""
|
msgstr "གསར་གཏོད་འབད་མི། གསལ་གཞི། ཀྲོབ་མདའི་མདེའུ། "
|
||||||
|
|
||||||
#: src/components/LogInButton.jsx:20 src/components/UserAreaModal.jsx:160
|
#: src/components/LogInButton.jsx:20 src/components/UserAreaModal.jsx:160
|
||||||
msgid "User Area"
|
msgid "User Area"
|
||||||
msgstr ""
|
msgstr "རྩེདམོ་རྩེ་མི། ལུང་ཕྱོགས། "
|
||||||
|
|
||||||
#: src/components/SettingsButton.jsx:20 src/components/SettingsModal.jsx:267
|
#: src/components/SettingsButton.jsx:20 src/components/SettingsModal.jsx:267
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr ""
|
msgstr "ཟོགཔོ་ཕར་བསལ་ནི།"
|
||||||
|
|
||||||
#: src/components/HelpButton.jsx:20
|
#: src/components/HelpButton.jsx:20
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr ""
|
msgstr "གྲོགས་རམ།"
|
||||||
|
|
||||||
#: src/components/Chat.jsx:143
|
#: src/components/Chat.jsx:143
|
||||||
msgid "Channel settings"
|
msgid "Channel settings"
|
||||||
msgstr ""
|
msgstr "ཕྱོགས་གཅིག་ཤུགས་བཏོན། ཟོགཔོ་ཕར་བསལ་ནི།"
|
||||||
|
|
||||||
#: src/components/Chat.jsx:152
|
#: src/components/Chat.jsx:152
|
||||||
msgid "maximize"
|
msgid "maximize"
|
||||||
msgstr ""
|
msgstr "ཡོངས་སྤྱོད།"
|
||||||
|
|
||||||
#: src/components/Chat.jsx:168
|
#: src/components/Chat.jsx:168
|
||||||
msgid "Start chatting here"
|
msgid "Start chatting here"
|
||||||
msgstr ""
|
msgstr "གོ་སྐབས། ངག་གཤིས། ཚུར། "
|
||||||
|
|
||||||
#: src/components/Chat.jsx:200
|
#: src/components/Chat.jsx:200
|
||||||
msgid "Chat here"
|
msgid "Chat here"
|
||||||
msgstr ""
|
msgstr "ངག་གཤིས། ཚུར།"
|
||||||
|
|
||||||
#: src/components/Chat.jsx:220
|
#: src/components/Chat.jsx:220
|
||||||
msgid "You must be logged in to chat"
|
msgid "You must be logged in to chat"
|
||||||
|
@ -177,58 +176,59 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/PalselButton.jsx:25
|
#: src/components/PalselButton.jsx:25
|
||||||
msgid "Close Palette"
|
msgid "Close Palette"
|
||||||
msgstr ""
|
msgstr "ཁེ་བཙོང༌། རྩྭ་གདན། "
|
||||||
|
|
||||||
#: src/components/PalselButton.jsx:25
|
#: src/components/PalselButton.jsx:25
|
||||||
msgid "Open Palette"
|
msgid "Open Palette"
|
||||||
msgstr ""
|
msgstr "ཀུན་མཐོང་མཛད་རིམ། རྩྭ་གདན"
|
||||||
|
|
||||||
#: src/components/GlobeButton.jsx:31
|
#: src/components/GlobeButton.jsx:31
|
||||||
msgid "Globe View"
|
msgid "Globe View"
|
||||||
msgstr ""
|
msgstr "ཐད་རིལ་རི། གཟུགས་སྣང༌། "
|
||||||
|
|
||||||
#: src/components/UserContextMenu.jsx:72
|
#: src/components/UserContextMenu.jsx:72
|
||||||
msgid "Ping"
|
msgid "Ping"
|
||||||
msgstr ""
|
msgstr "གསལ་བསྒྲགས་འབད་བ།"
|
||||||
|
|
||||||
#: src/components/UserContextMenu.jsx:97
|
#: src/components/UserContextMenu.jsx:97
|
||||||
msgid "DM"
|
msgid "DM"
|
||||||
msgstr ""
|
msgstr "གང་ཟག་གི་མིང་ཚབ། ཁ་འཐེན། "
|
||||||
|
|
||||||
#: src/components/UserContextMenu.jsx:107
|
#: src/components/UserContextMenu.jsx:107
|
||||||
msgid "Block"
|
msgid "Block"
|
||||||
msgstr ""
|
msgstr "ཁང་སྡེ། "
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:34 src/components/HelpModal.jsx:35
|
#: src/components/HelpModal.jsx:34 src/components/HelpModal.jsx:35
|
||||||
msgid "Privacy Policy"
|
msgid "Privacy Policy"
|
||||||
msgstr ""
|
msgstr "རང་གསང༌། ཉེན་ལེན་གན་ཡིག "
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:36 src/components/HelpModal.jsx:37
|
#: src/components/HelpModal.jsx:36 src/components/HelpModal.jsx:37
|
||||||
msgid "Terms of Service"
|
msgid "Terms of Service"
|
||||||
msgstr ""
|
msgstr "གནས་ཡུན་དང་ཆ་རྐྱེན། "
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:40
|
#: src/components/HelpModal.jsx:40
|
||||||
msgid "your IP"
|
msgid "your IP"
|
||||||
msgstr ""
|
msgstr "ཁྱོད་ར། གློག་རིག་ཡོངས་འབྲེལ། ཁ་གསལ་སྦེ་བྲི་ནི།"
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:46
|
#: src/components/HelpModal.jsx:46
|
||||||
msgid "Place color pixels on a large canvas with other players online!"
|
msgid "Place color pixels on a large canvas with other players online!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"གནས་གཟུང་བ། ཚིག་དོན་ཁ་གསལ་ཡོད་པ། གྲུ་བཞི། གཅིག ཁྱབ་ཆེ་ཏོག་ཏོ། རྒྱ་ལས་ཐོན་པའི་ཁ་ཤ་དར་རས། གཅིག་ཁར་ཟེར་བའི་དོན། "
|
||||||
|
"རྩེདམོ་རྩེ་མི།"
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:47
|
#: src/components/HelpModal.jsx:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"Our main canvas is a huge worldmap, you can place wherever you like, but you "
|
"Our main canvas is a huge worldmap, you can place wherever you like, but you will have to "
|
||||||
"will have to wait a specific Cooldown between pixels. You can check out the "
|
"wait a specific Cooldown between pixels. You can check out the cooldown and requiremnts on "
|
||||||
"cooldown and requiremnts on the Canvas Selection menu (globe button on top). "
|
"the Canvas Selection menu (globe button on top). Some canvases have a different cooldown "
|
||||||
"Some canvases have a different cooldown for replacing a user-set pixels than "
|
"for replacing a user-set pixels than placing on a unset pixel. i.e. 4s/7s means 4s on "
|
||||||
"placing on a unset pixel. i.e. 4s/7s means 4s on fresh pixels and 7s on "
|
"fresh pixels and 7s on already set pixels."
|
||||||
"already set pixels."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:51
|
#: src/components/HelpModal.jsx:51
|
||||||
msgid ""
|
msgid ""
|
||||||
"Higher zoomlevels take some time to update, the 3D globe gets updated at "
|
"Higher zoomlevels take some time to update, the 3D globe gets updated at least once per "
|
||||||
"least once per day."
|
"day."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:52
|
#: src/components/HelpModal.jsx:52
|
||||||
|
@ -249,8 +249,8 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:57
|
#: src/components/HelpModal.jsx:57
|
||||||
msgid ""
|
msgid ""
|
||||||
"The bare map data that we use, together with converted OpenStreetMap tiles "
|
"The bare map data that we use, together with converted OpenStreetMap tiles for "
|
||||||
"for orientation, can be downloaded from mega.nz here: "
|
"orientation, can be downloaded from mega.nz here: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:59
|
#: src/components/HelpModal.jsx:59
|
||||||
|
@ -260,9 +260,9 @@ msgstr ""
|
||||||
#: src/components/HelpModal.jsx:61
|
#: src/components/HelpModal.jsx:61
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you got detected as proxy, but you are none, please go to our "
|
"If you got detected as proxy, but you are none, please go to our ${ guildedLink } or send "
|
||||||
"${ guildedLink } or send us an e-mail with ${ getIPLink } to ${ mailLink }. "
|
"us an e-mail with ${ getIPLink } to ${ mailLink }. Do not post your IP anywhere else. We "
|
||||||
"Do not post your IP anywhere else. We are sorry for the inconvenience."
|
"are sorry for the inconvenience."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:63 src/components/HelpModal.jsx:80
|
#: src/components/HelpModal.jsx:63 src/components/HelpModal.jsx:80
|
||||||
|
@ -303,8 +303,7 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:72 src/components/HelpModal.jsx:83
|
#: src/components/HelpModal.jsx:72 src/components/HelpModal.jsx:83
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid "Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move"
|
||||||
"Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:73
|
#: src/components/HelpModal.jsx:73
|
||||||
|
@ -322,9 +321,7 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:76
|
#: src/components/HelpModal.jsx:76
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid "Hold right ${ bindShift } for placing while moving mouse according to historical view"
|
||||||
"Hold right ${ bindShift } for placing while moving mouse according to "
|
|
||||||
"historical view"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:77 src/components/HelpModal.jsx:88
|
#: src/components/HelpModal.jsx:77 src/components/HelpModal.jsx:88
|
||||||
|
@ -334,8 +331,8 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:78 src/components/HelpModal.jsx:90
|
#: src/components/HelpModal.jsx:78 src/components/HelpModal.jsx:90
|
||||||
msgid ""
|
msgid ""
|
||||||
"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to "
|
"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to select current "
|
||||||
"select current hovering color"
|
"hovering color"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:84
|
#: src/components/HelpModal.jsx:84
|
||||||
|
@ -350,8 +347,8 @@ msgstr ""
|
||||||
#: src/components/HelpModal.jsx:86
|
#: src/components/HelpModal.jsx:86
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse "
|
"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse button and drag "
|
||||||
"button and drag to zoom"
|
"to zoom"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:87
|
#: src/components/HelpModal.jsx:87
|
||||||
|
@ -360,8 +357,7 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:89
|
#: src/components/HelpModal.jsx:89
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid "${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a pixel"
|
||||||
"${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a pixel"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:92
|
#: src/components/HelpModal.jsx:92
|
||||||
|
@ -371,14 +367,13 @@ msgstr ""
|
||||||
#: src/components/HelpModal.jsx:97
|
#: src/components/HelpModal.jsx:97
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This site is protected by reCAPTCHA and the Google ${ reCaptchaPP } and "
|
"This site is protected by reCAPTCHA and the Google ${ reCaptchaPP } and ${ reCaptchaTOS } "
|
||||||
"${ reCaptchaTOS } apply."
|
"apply."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:103
|
#: src/components/HelpModal.jsx:103
|
||||||
msgid ""
|
msgid ""
|
||||||
"This site is protected by hCAPTCHA and its ${ hCaptchaPP } and "
|
"This site is protected by hCAPTCHA and its ${ hCaptchaPP } and ${ hCaptchaTOS } apply."
|
||||||
"${ hCaptchaTOS } apply."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:113
|
#: src/components/HelpModal.jsx:113
|
||||||
|
@ -426,9 +421,7 @@ msgid "Auto Zoom In"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/SettingsModal.jsx:153
|
#: src/components/SettingsModal.jsx:153
|
||||||
msgid ""
|
msgid "Zoom in instead of placing a pixel when you tap the canvas and your zoom is small."
|
||||||
"Zoom in instead of placing a pixel when you tap the canvas and your zoom is "
|
|
||||||
"small."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/SettingsModal.jsx:158
|
#: src/components/SettingsModal.jsx:158
|
||||||
|
@ -475,8 +468,8 @@ msgstr ""
|
||||||
msgid "Register new account here"
|
msgid "Register new account here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/ForgotPasswordModal.jsx:20
|
#: src/components/ForgotPasswordModal.jsx:20 src/components/RegisterModal.jsx:21
|
||||||
#: src/components/RegisterModal.jsx:21 src/components/UserAreaModal.jsx:130
|
#: src/components/UserAreaModal.jsx:130
|
||||||
msgid "Consider joining us on Guilded:"
|
msgid "Consider joining us on Guilded:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -534,16 +527,16 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/ArchiveModal.jsx:20
|
#: src/components/ArchiveModal.jsx:20
|
||||||
msgid ""
|
msgid ""
|
||||||
"While we tend to not delete canvases, some canvases are started for fun or "
|
"While we tend to not delete canvases, some canvases are started for fun or as a request by "
|
||||||
"as a request by users who currently like a meme. Those canvases can get "
|
"users who currently like a meme. Those canvases can get boring after a while and after "
|
||||||
"boring after a while and after weeks of no major change and if they really "
|
"weeks of no major change and if they really aren't worth being kept active, we decide "
|
||||||
"aren't worth being kept active, we decide to remove them."
|
"to remove them."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/ArchiveModal.jsx:22
|
#: src/components/ArchiveModal.jsx:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"Here we collect those canvases to archive them in a proper way (which is "
|
"Here we collect those canvases to archive them in a proper way (which is currently just "
|
||||||
"currently just one)."
|
"one)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/ArchiveModal.jsx:24
|
#: src/components/ArchiveModal.jsx:24
|
||||||
|
@ -552,17 +545,17 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/ArchiveModal.jsx:31
|
#: src/components/ArchiveModal.jsx:31
|
||||||
msgid ""
|
msgid ""
|
||||||
"This canvas got requested during a time of political conflicts on the main "
|
"This canvas got requested during a time of political conflicts on the main Earth canvas. "
|
||||||
"Earth canvas. It was a 1024x1024 representation of the political compass "
|
"It was a 1024x1024 representation of the political compass with a 5s coolodwn and 60s "
|
||||||
"with a 5s coolodwn and 60s stacking. It got launched on May 11th and "
|
"stacking. It got launched on May 11th and remained active for months till it got shut down "
|
||||||
"remained active for months till it got shut down on November 30th."
|
"on November 30th."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/ArchiveModal.jsx:32
|
#: src/components/ArchiveModal.jsx:32
|
||||||
msgid ""
|
msgid ""
|
||||||
"We decided to archive it as a timelapse with lossless encoded webm. Taking a "
|
"We decided to archive it as a timelapse with lossless encoded webm. Taking a screenshot "
|
||||||
"screenshot from the timelapse results in a perfect 1:1 representation of how "
|
"from the timelapse results in a perfect 1:1 representation of how the canvas was at that "
|
||||||
"the canvas was at that time."
|
"time."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/ArchiveModal.jsx:50
|
#: src/components/ArchiveModal.jsx:50
|
||||||
|
@ -571,9 +564,8 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/CanvasSelectModal.jsx:29
|
#: src/components/CanvasSelectModal.jsx:29
|
||||||
msgid ""
|
msgid ""
|
||||||
"Select the canvas you want to use. Every canvas is unique and has different "
|
"Select the canvas you want to use. Every canvas is unique and has different palettes, "
|
||||||
"palettes, cooldown and requirements. Archive of closed canvases can be "
|
"cooldown and requirements. Archive of closed canvases can be accessed here:"
|
||||||
"accessed here:"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/CanvasSelectModal.jsx:37
|
#: src/components/CanvasSelectModal.jsx:37
|
||||||
|
@ -761,8 +753,8 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/Admintools.jsx:313
|
#: src/components/Admintools.jsx:313
|
||||||
msgid ""
|
msgid ""
|
||||||
"Set protection of areas (if you need finer grained control, "
|
"Set protection of areas (if you need finer grained control, use protect "
|
||||||
"use protect with image upload and alpha layers)"
|
"with image upload and alpha layers)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/Admintools.jsx:392
|
#: src/components/Admintools.jsx:392
|
||||||
|
@ -945,8 +937,8 @@ msgstr ""
|
||||||
|
|
||||||
#: src/components/ChangeMail.jsx:89
|
#: src/components/ChangeMail.jsx:89
|
||||||
msgid ""
|
msgid ""
|
||||||
"Changed Mail successfully. We sent you a verification mail, "
|
"Changed Mail successfully. We sent you a verification mail, please verify "
|
||||||
"please verify your new mail adress."
|
"your new mail adress."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/ChangeMail.jsx:119
|
#: src/components/ChangeMail.jsx:119
|
||||||
|
|
|
@ -422,7 +422,7 @@ msgid ""
|
||||||
"This site is protected by hCAPTCHA and its ${ hCaptchaPP } and "
|
"This site is protected by hCAPTCHA and its ${ hCaptchaPP } and "
|
||||||
"${ hCaptchaTOS } apply."
|
"${ hCaptchaTOS } apply."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ce site est protégé par hCAPTCHA et son ${ hCaptchaPP } et ${ hCaptcha TOS } "
|
"Ce site est protégé par hCAPTCHA et son ${ hCaptchaPP } et ${ hCaptchaTOS } "
|
||||||
"s'appliquent."
|
"s'appliquent."
|
||||||
|
|
||||||
#: src/components/HelpModal.jsx:113
|
#: src/components/HelpModal.jsx:113
|
||||||
|
|
1016
i18n/template.pot
1016
i18n/template.pot
File diff suppressed because it is too large
Load Diff
|
@ -1,677 +0,0 @@
|
||||||
"Copied!"
|
|
||||||
|
|
||||||
"Error :("
|
|
||||||
|
|
||||||
"Didn't get an answer from pixelplanet. Maybe try to refresh?"
|
|
||||||
|
|
||||||
"OK"
|
|
||||||
|
|
||||||
"Invalid Canvas"
|
|
||||||
|
|
||||||
"This canvas doesn't exist"
|
|
||||||
|
|
||||||
"Invalid Coordinates"
|
|
||||||
|
|
||||||
"x out of bounds"
|
|
||||||
|
|
||||||
"y out of bounds"
|
|
||||||
|
|
||||||
"z out of bounds"
|
|
||||||
|
|
||||||
"Wrong Color"
|
|
||||||
|
|
||||||
"Invalid color selected"
|
|
||||||
|
|
||||||
"Just for registered Users"
|
|
||||||
|
|
||||||
"You have to be logged in to place on this canvas"
|
|
||||||
|
|
||||||
"Place more :)"
|
|
||||||
|
|
||||||
"You can not access this canvas yet. You need to place more pixels"
|
|
||||||
|
|
||||||
"Pixel protected!"
|
|
||||||
|
|
||||||
"No Proxies Allowed :("
|
|
||||||
|
|
||||||
"You are using a Proxy."
|
|
||||||
|
|
||||||
"Weird"
|
|
||||||
|
|
||||||
"Couldn't set Pixel"
|
|
||||||
|
|
||||||
"Error ${ retCode }"
|
|
||||||
|
|
||||||
"Close"
|
|
||||||
|
|
||||||
"Close Menu"
|
|
||||||
|
|
||||||
"Open Menu"
|
|
||||||
|
|
||||||
"Close Chat"
|
|
||||||
|
|
||||||
"Open Chat"
|
|
||||||
|
|
||||||
"Copy to Clipboard"
|
|
||||||
|
|
||||||
"User online"
|
|
||||||
|
|
||||||
"Pixels placed"
|
|
||||||
|
|
||||||
"Canvas Selection"
|
|
||||||
|
|
||||||
"Make Screenshot"
|
|
||||||
|
|
||||||
"User Area"
|
|
||||||
|
|
||||||
"Settings"
|
|
||||||
|
|
||||||
"Help"
|
|
||||||
|
|
||||||
"Channel settings"
|
|
||||||
|
|
||||||
"maximize"
|
|
||||||
|
|
||||||
"Start chatting here"
|
|
||||||
|
|
||||||
"Chat here"
|
|
||||||
|
|
||||||
"You must be logged in to chat"
|
|
||||||
|
|
||||||
"Close Palette"
|
|
||||||
|
|
||||||
"Open Palette"
|
|
||||||
|
|
||||||
"Globe View"
|
|
||||||
|
|
||||||
"Ping"
|
|
||||||
|
|
||||||
"DM"
|
|
||||||
|
|
||||||
"Block"
|
|
||||||
|
|
||||||
"Privacy Policy"
|
|
||||||
|
|
||||||
"Terms of Service"
|
|
||||||
|
|
||||||
"your IP"
|
|
||||||
|
|
||||||
"Place color pixels on a large canvas with other players online!"
|
|
||||||
|
|
||||||
""
|
|
||||||
"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."
|
|
||||||
|
|
||||||
""
|
|
||||||
"Higher zoomlevels take some time to update, the 3D globe gets updated at "
|
|
||||||
"least once per day."
|
|
||||||
|
|
||||||
"Have fun!"
|
|
||||||
|
|
||||||
"recommended"
|
|
||||||
|
|
||||||
"Source on "
|
|
||||||
|
|
||||||
"Map Data"
|
|
||||||
|
|
||||||
""
|
|
||||||
"The bare map data that we use, together with converted OpenStreetMap tiles "
|
|
||||||
"for orientation, can be downloaded from mega.nz here: "
|
|
||||||
|
|
||||||
"Detected as Proxy?"
|
|
||||||
|
|
||||||
""
|
|
||||||
"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."
|
|
||||||
|
|
||||||
"Controls"
|
|
||||||
|
|
||||||
"Click a color in palette to select it"
|
|
||||||
|
|
||||||
"Press ${ bindG } to toggle grid"
|
|
||||||
|
|
||||||
"Press ${ bindX } to toggle showing of pixel activity"
|
|
||||||
|
|
||||||
"Press ${ bindH } to toggle historical view"
|
|
||||||
|
|
||||||
"Press ${ bindR } to copy coordinates"
|
|
||||||
|
|
||||||
"Press ${ bindQ } or ${ bindE } to zoom"
|
|
||||||
|
|
||||||
"Press ${ bindW }, ${ bindA }, ${ bindS }, ${ bindD } to move"
|
|
||||||
|
|
||||||
"Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to move"
|
|
||||||
|
|
||||||
"Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move"
|
|
||||||
|
|
||||||
"Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom"
|
|
||||||
|
|
||||||
"Hold left ${ bindShift } for placing while moving mouse"
|
|
||||||
|
|
||||||
""
|
|
||||||
"Hold right ${ bindShift } for placing while moving mouse according to "
|
|
||||||
"historical view"
|
|
||||||
|
|
||||||
"${ mouseSymbol } Left click or ${ touchSymbol } tap to place a pixel"
|
|
||||||
|
|
||||||
""
|
|
||||||
"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to "
|
|
||||||
"select current hovering color"
|
|
||||||
|
|
||||||
"Press ${ bindE } and ${ bindC } to fly up and down"
|
|
||||||
|
|
||||||
"${ mouseSymbol } Hold left mouse button and drag mouse to rotate"
|
|
||||||
|
|
||||||
""
|
|
||||||
"${ mouseSymbol } Scroll mouse wheel or hold ${ mouseSymbol } middle mouse "
|
|
||||||
"button and drag to zoom"
|
|
||||||
|
|
||||||
"${ mouseSymbol } Right click and drag mouse to pan"
|
|
||||||
|
|
||||||
""
|
|
||||||
"${ mouseSymbol } Right click or ${ touchSymbol } double-tap to remove a "
|
|
||||||
"pixel"
|
|
||||||
|
|
||||||
"Partners:"
|
|
||||||
|
|
||||||
""
|
|
||||||
"This site is protected by reCAPTCHA and the Google ${ reCaptchaPP } and ${ "
|
|
||||||
"reCaptchaTOS } apply."
|
|
||||||
|
|
||||||
""
|
|
||||||
"This site is protected by hCAPTCHA and its ${ hCaptchaPP } and ${ "
|
|
||||||
"hCaptchaTOS } apply."
|
|
||||||
|
|
||||||
"Welcome to PixelPlanet.fun"
|
|
||||||
|
|
||||||
"Mute"
|
|
||||||
|
|
||||||
"Show Grid"
|
|
||||||
|
|
||||||
"Turn on grid to highlight pixel borders."
|
|
||||||
|
|
||||||
"Show Pixel Activity"
|
|
||||||
|
|
||||||
"Show circles where pixels are placed."
|
|
||||||
|
|
||||||
"Disable Game Sounds"
|
|
||||||
|
|
||||||
"All sound effects will be disabled."
|
|
||||||
|
|
||||||
"Enable chat notifications"
|
|
||||||
|
|
||||||
"Play a sound when new chat messages arrive"
|
|
||||||
|
|
||||||
"Auto Zoom In"
|
|
||||||
|
|
||||||
""
|
|
||||||
"Zoom in instead of placing a pixel when you tap the canvas and your zoom is "
|
|
||||||
"small."
|
|
||||||
|
|
||||||
"Compact Palette"
|
|
||||||
|
|
||||||
"Display Palette in a compact form that takes less screen space."
|
|
||||||
|
|
||||||
"Potato Mode"
|
|
||||||
|
|
||||||
"For when you are playing on a potato."
|
|
||||||
|
|
||||||
"Light Grid"
|
|
||||||
|
|
||||||
"Show Grid in white instead of black."
|
|
||||||
|
|
||||||
"Historical View"
|
|
||||||
|
|
||||||
"Check out past versions of the canvas."
|
|
||||||
|
|
||||||
"Themes"
|
|
||||||
|
|
||||||
"How pixelplanet should look like."
|
|
||||||
|
|
||||||
"Register new account here"
|
|
||||||
|
|
||||||
"Consider joining us on Guilded:"
|
|
||||||
|
|
||||||
"Register New Account"
|
|
||||||
|
|
||||||
"Login to access more features and stats."
|
|
||||||
|
|
||||||
"Login with Name or Mail:"
|
|
||||||
|
|
||||||
"I forgot my Password."
|
|
||||||
|
|
||||||
"or login with:"
|
|
||||||
|
|
||||||
"or register here:"
|
|
||||||
|
|
||||||
"Register"
|
|
||||||
|
|
||||||
"Profile"
|
|
||||||
|
|
||||||
"Ranking"
|
|
||||||
|
|
||||||
"Converter"
|
|
||||||
|
|
||||||
"Admintools"
|
|
||||||
|
|
||||||
"Modtools"
|
|
||||||
|
|
||||||
"Loading..."
|
|
||||||
|
|
||||||
""
|
|
||||||
"While we tend to not delete canvases, some canvases are started for fun or "
|
|
||||||
"as a request by users who currently like a meme. Those canvases can get "
|
|
||||||
"boring after a while and after weeks of no major change and if they really "
|
|
||||||
"aren't worth being kept active, we decide to remove them."
|
|
||||||
|
|
||||||
""
|
|
||||||
"Here we collect those canvases to archive them in a proper way (which is "
|
|
||||||
"currently just one)."
|
|
||||||
|
|
||||||
"Political Compass Canvas"
|
|
||||||
|
|
||||||
""
|
|
||||||
"This canvas got requested during a time of political conflicts on the main "
|
|
||||||
"Earth canvas. It was a 1024x1024 representation of the political compass "
|
|
||||||
"with a 5s coolodwn and 60s stacking. It got launched on May 11th and "
|
|
||||||
"remained active for months till it got shut down on November 30th."
|
|
||||||
|
|
||||||
""
|
|
||||||
"We decided to archive it as a timelapse with lossless encoded webm. Taking "
|
|
||||||
"a screenshot from the timelapse results in a perfect 1:1 representation of "
|
|
||||||
"how the canvas was at that time."
|
|
||||||
|
|
||||||
"Canvas Archive"
|
|
||||||
|
|
||||||
""
|
|
||||||
"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:"
|
|
||||||
|
|
||||||
"Archive"
|
|
||||||
|
|
||||||
"Enter your mail adress and we will send you a new password:"
|
|
||||||
|
|
||||||
"Restore my Password"
|
|
||||||
|
|
||||||
"Chat"
|
|
||||||
|
|
||||||
"Error"
|
|
||||||
|
|
||||||
"Name or Email"
|
|
||||||
|
|
||||||
"Password"
|
|
||||||
|
|
||||||
"LogIn"
|
|
||||||
|
|
||||||
"Todays Placed Pixels"
|
|
||||||
|
|
||||||
"Daily Rank"
|
|
||||||
|
|
||||||
"Placed Pixels"
|
|
||||||
|
|
||||||
"Total Rank"
|
|
||||||
|
|
||||||
"Your name is: ${ name }"
|
|
||||||
|
|
||||||
"Log out"
|
|
||||||
|
|
||||||
"Change Username"
|
|
||||||
|
|
||||||
"Change Mail"
|
|
||||||
|
|
||||||
"Change Password"
|
|
||||||
|
|
||||||
"Delete Account"
|
|
||||||
|
|
||||||
"Social Settings"
|
|
||||||
|
|
||||||
"Total"
|
|
||||||
|
|
||||||
"Daily"
|
|
||||||
|
|
||||||
"Ranking updates every 5 min. Daily rankings get reset at midnight UTC."
|
|
||||||
|
|
||||||
"Cooldown"
|
|
||||||
|
|
||||||
"Stacking till"
|
|
||||||
|
|
||||||
"Ranked"
|
|
||||||
|
|
||||||
"Requirements"
|
|
||||||
|
|
||||||
"User Account"
|
|
||||||
|
|
||||||
"and ${ canvas.req } Pixels set"
|
|
||||||
|
|
||||||
"Dimensions"
|
|
||||||
|
|
||||||
"Sent you a mail with instructions to reset your password."
|
|
||||||
|
|
||||||
"Email"
|
|
||||||
|
|
||||||
"Submit"
|
|
||||||
|
|
||||||
"Cancel"
|
|
||||||
|
|
||||||
"Name"
|
|
||||||
|
|
||||||
"Confirm Password"
|
|
||||||
|
|
||||||
"Build image on canvas."
|
|
||||||
|
|
||||||
"Build image and set it to protected."
|
|
||||||
|
|
||||||
"Build image, but reset cooldown to unset-pixel cd."
|
|
||||||
|
|
||||||
"Image Upload"
|
|
||||||
|
|
||||||
"Upload images to canvas"
|
|
||||||
|
|
||||||
"File"
|
|
||||||
|
|
||||||
"Coordinates in X_Y format:"
|
|
||||||
|
|
||||||
"Pixel Protection"
|
|
||||||
|
|
||||||
""
|
|
||||||
"Set protection of areas (if you need finer grained control, "
|
|
||||||
"use protect with image upload and alpha layers)"
|
|
||||||
|
|
||||||
"Rollback to Date"
|
|
||||||
|
|
||||||
"Rollback an area of the canvas to a set date (00:00 UTC)"
|
|
||||||
|
|
||||||
"IP Actions"
|
|
||||||
|
|
||||||
"Do stuff with IPs (one IP per line)"
|
|
||||||
|
|
||||||
"Manage Moderators"
|
|
||||||
|
|
||||||
"Remove Moderator"
|
|
||||||
|
|
||||||
"There are no mods"
|
|
||||||
|
|
||||||
"Assign new Mod"
|
|
||||||
|
|
||||||
"Enter UserName of new Mod"
|
|
||||||
|
|
||||||
"User Name"
|
|
||||||
|
|
||||||
"Choose Canvas"
|
|
||||||
|
|
||||||
"Palette Download"
|
|
||||||
|
|
||||||
"Palette for ${ gimpLink }"
|
|
||||||
|
|
||||||
"Credit for the Palette of the Moon goes to ${ starhouseLink }."
|
|
||||||
|
|
||||||
"Image Converter"
|
|
||||||
|
|
||||||
"Convert an image to canvas colors"
|
|
||||||
|
|
||||||
"Choose Strategy"
|
|
||||||
|
|
||||||
"Choose Color Mode"
|
|
||||||
|
|
||||||
"Add Grid (uncheck if you need a 1:1 template)"
|
|
||||||
|
|
||||||
"Offset"
|
|
||||||
|
|
||||||
"Scale Image"
|
|
||||||
|
|
||||||
"Width"
|
|
||||||
|
|
||||||
"Height"
|
|
||||||
|
|
||||||
"Keep Ratio"
|
|
||||||
|
|
||||||
"Anti Aliasing"
|
|
||||||
|
|
||||||
"Reset"
|
|
||||||
|
|
||||||
"Download Template"
|
|
||||||
|
|
||||||
"Email can't be empty."
|
|
||||||
|
|
||||||
"Email should be at least 5 characters long."
|
|
||||||
|
|
||||||
"Email can't be longer than 40 characters."
|
|
||||||
|
|
||||||
"Email should at least contain a dot"
|
|
||||||
|
|
||||||
"Email should contain a @"
|
|
||||||
|
|
||||||
"Name can't be empty."
|
|
||||||
|
|
||||||
"Name must be at least 4 characters long"
|
|
||||||
|
|
||||||
"Name must be shorter than 26 characters"
|
|
||||||
|
|
||||||
"Name contains invalid character like @, /, \\ or #"
|
|
||||||
|
|
||||||
"No password given."
|
|
||||||
|
|
||||||
"Password must be at least 6 characters long."
|
|
||||||
|
|
||||||
"Password must be shorter than 60 characters."
|
|
||||||
|
|
||||||
"Could not connect to server, please try again later :("
|
|
||||||
|
|
||||||
"I think we experienced some error :("
|
|
||||||
|
|
||||||
"Block all Private Messages"
|
|
||||||
|
|
||||||
"Unblock Users"
|
|
||||||
|
|
||||||
"You have no users blocked"
|
|
||||||
|
|
||||||
""
|
|
||||||
"Changed Mail successfully. We sent you a verification mail, "
|
|
||||||
"please verify your new mail adress."
|
|
||||||
|
|
||||||
"New Mail"
|
|
||||||
|
|
||||||
"Save"
|
|
||||||
|
|
||||||
"Passwords do not match."
|
|
||||||
|
|
||||||
"Changed Password successfully."
|
|
||||||
|
|
||||||
"Old Password"
|
|
||||||
|
|
||||||
"New Password"
|
|
||||||
|
|
||||||
"Confirm New Password"
|
|
||||||
|
|
||||||
"Yes, Delete My Account!"
|
|
||||||
|
|
||||||
"A new verification mail is getting sent to you."
|
|
||||||
|
|
||||||
"You successfully linked your mc account."
|
|
||||||
|
|
||||||
"You denied."
|
|
||||||
|
|
||||||
""
|
|
||||||
"Please verify your mail address \n"
|
|
||||||
"or your account could get deleted after a few days."
|
|
||||||
|
|
||||||
"Click here to request a new verification mail."
|
|
||||||
|
|
||||||
"You requested to link your mc account ${ minecraftname }."
|
|
||||||
|
|
||||||
"Accept"
|
|
||||||
|
|
||||||
"Deny"
|
|
||||||
|
|
||||||
"New Username"
|
|
||||||
|
|
||||||
"Place color pixels on an map styled canvas with other players online"
|
|
||||||
|
|
||||||
"Double click on globe to go back."
|
|
||||||
|
|
||||||
"Loading..."
|
|
||||||
|
|
||||||
"PixelPlanet.Fun 3DGlobe"
|
|
||||||
|
|
||||||
"A 3D globe of our whole map"
|
|
||||||
|
|
||||||
"You sent an empty password or invalid data :("
|
|
||||||
|
|
||||||
"This password-reset link isn't valid anymore :("
|
|
||||||
|
|
||||||
"Your passwords do not match :("
|
|
||||||
|
|
||||||
"User doesn't exist in our database :("
|
|
||||||
|
|
||||||
"Passowrd successfully changed."
|
|
||||||
|
|
||||||
"Invalid url :( Please check your mail again."
|
|
||||||
|
|
||||||
"This passwort reset link is wrong or already expired, please request a new "
|
|
||||||
"one (Note: you can use those links just once)"
|
|
||||||
|
|
||||||
""
|
|
||||||
"We already sent you a verification mail, you can request another one in ${ "
|
|
||||||
"minLeft } minutes."
|
|
||||||
|
|
||||||
"Welcome ${ name } to PixelPlanet, plese verify your mail"
|
|
||||||
|
|
||||||
"Hello ${ name }"
|
|
||||||
|
|
||||||
""
|
|
||||||
"welcome to our little community of pixelplacers, to use your account, you "
|
|
||||||
"have to verify your mail. You can do that here: "
|
|
||||||
|
|
||||||
"Click to Verify"
|
|
||||||
|
|
||||||
"Or by copying following url:"
|
|
||||||
|
|
||||||
"Have fun and don't hesitate to contact us if you encouter any problems :)"
|
|
||||||
|
|
||||||
"Thanks"
|
|
||||||
|
|
||||||
""
|
|
||||||
"We already sent you a mail with instructions. Please wait before requesting "
|
|
||||||
"another mail."
|
|
||||||
|
|
||||||
"Couldn't find this mail in our database"
|
|
||||||
|
|
||||||
"You forgot your password for PixelPlanet? Get a new one here"
|
|
||||||
|
|
||||||
"Hello"
|
|
||||||
|
|
||||||
""
|
|
||||||
"You requested to get a new password. You can change your password within "
|
|
||||||
"the next 30min here: "
|
|
||||||
|
|
||||||
"Reset Password"
|
|
||||||
|
|
||||||
""
|
|
||||||
"If you did not request this mail, please just ignore it (the ip that "
|
|
||||||
"requested this mail was ${ ip })."
|
|
||||||
|
|
||||||
"Click here"
|
|
||||||
|
|
||||||
"to go back to pixelplanet"
|
|
||||||
|
|
||||||
"Hello ${ name }, you can set your new password here:"
|
|
||||||
|
|
||||||
"New Password"
|
|
||||||
|
|
||||||
"Confirm New Password"
|
|
||||||
|
|
||||||
"Submit"
|
|
||||||
|
|
||||||
"PixelPlanet.fun Password Reset"
|
|
||||||
|
|
||||||
"Reset your password here"
|
|
||||||
|
|
||||||
"Email can't be empty."
|
|
||||||
|
|
||||||
"Email should be at least 5 characters long."
|
|
||||||
|
|
||||||
"Email can't be longer than 40 characters."
|
|
||||||
|
|
||||||
"Email should at least contain a dot"
|
|
||||||
|
|
||||||
"Email should contain a @"
|
|
||||||
|
|
||||||
"Name can't be empty."
|
|
||||||
|
|
||||||
"Name must be at least 4 characters long"
|
|
||||||
|
|
||||||
"Name must be shorter than 26 characters"
|
|
||||||
|
|
||||||
"Name contains invalid character like @, /, \\ or #"
|
|
||||||
|
|
||||||
"No password given."
|
|
||||||
|
|
||||||
"Password must be at least 6 characters long."
|
|
||||||
|
|
||||||
"Password must be shorter than 60 characters."
|
|
||||||
|
|
||||||
"Could not connect to server, please try again later :("
|
|
||||||
|
|
||||||
"I think we experienced some error :("
|
|
||||||
|
|
||||||
"You are not authenticated."
|
|
||||||
|
|
||||||
"Incorrect password!"
|
|
||||||
|
|
||||||
"You are not even logged in."
|
|
||||||
|
|
||||||
"Mail verification"
|
|
||||||
|
|
||||||
"You are now verified :)"
|
|
||||||
|
|
||||||
""
|
|
||||||
"Your mail verification code is invalid or already expired :(, please "
|
|
||||||
"request a new one."
|
|
||||||
|
|
||||||
"E-Mail already in use."
|
|
||||||
|
|
||||||
"Username already in use."
|
|
||||||
|
|
||||||
"Failed to create new user :("
|
|
||||||
|
|
||||||
"Failed to establish session after register :("
|
|
||||||
|
|
||||||
"You will be automatically redirected after 15s"
|
|
||||||
|
|
||||||
"Or ${ clickHere } to go back to pixelplanet"
|
|
||||||
|
|
||||||
"PixelPlanet.fun Accounts"
|
|
||||||
|
|
||||||
"Earth"
|
|
||||||
|
|
||||||
"Moon"
|
|
||||||
|
|
||||||
"3D Canvas"
|
|
||||||
|
|
||||||
"Coronavirus"
|
|
||||||
|
|
||||||
"PixelZone"
|
|
||||||
|
|
||||||
"PixelCanvas"
|
|
||||||
|
|
||||||
"1bit"
|
|
||||||
|
|
||||||
"Our main canvas, a huge map of the world. Place everywhere you like"
|
|
||||||
|
|
||||||
"Moon canvas. Safe space for art. No flags or large text (unless part of art)"
|
|
||||||
|
|
||||||
"Place Voxels on a 3D canvas with others"
|
|
||||||
|
|
||||||
"Special canvas to spread awareness of SARS-CoV2"
|
|
||||||
|
|
||||||
"Mirror of PixelZone"
|
|
||||||
|
|
||||||
"Mirror of PixelCanvas"
|
|
||||||
|
|
||||||
"Black and White canvas"
|
|
|
@ -12,6 +12,7 @@
|
||||||
"build": "babel-node scripts/run prebuild && npm run webpack",
|
"build": "babel-node scripts/run prebuild && npm run webpack",
|
||||||
"clean": "babel-node scripts/run clean",
|
"clean": "babel-node scripts/run clean",
|
||||||
"webpack": "webpack --config ./webpack.config.web.babel.js && parallel-webpack --config ./webpack.config.client.babel.js",
|
"webpack": "webpack --config ./webpack.config.web.babel.js && parallel-webpack --config ./webpack.config.client.babel.js",
|
||||||
|
"extract": "webpack --env extract --config ./webpack.config.web.babel.js && webpack --env extract --config ./webpack.config.client.babel.js",
|
||||||
"babel-node": "cd $INIT_CWD && babel-node",
|
"babel-node": "cd $INIT_CWD && babel-node",
|
||||||
"lint": "cd $INIT_CWD && eslint --ext .jsx --ext .js",
|
"lint": "cd $INIT_CWD && eslint --ext .jsx --ext .js",
|
||||||
"lint:src": "eslint --ext .jsx --ext .js src",
|
"lint:src": "eslint --ext .jsx --ext .js src",
|
||||||
|
|
|
@ -87,8 +87,6 @@ export const CHAT_CHANNELS = [
|
||||||
name: 'en',
|
name: 'en',
|
||||||
}, {
|
}, {
|
||||||
name: 'int',
|
name: 'int',
|
||||||
}, {
|
|
||||||
name: 'pol',
|
|
||||||
}, {
|
}, {
|
||||||
name: 'art',
|
name: 'art',
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,7 +21,12 @@ const assetPlugin = new AssetsPlugin({
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
export function buildWebpackClientConfig(development, analyze, locale) {
|
export function buildWebpackClientConfig(
|
||||||
|
development,
|
||||||
|
analyze,
|
||||||
|
locale,
|
||||||
|
extract,
|
||||||
|
) {
|
||||||
const ttag = {
|
const ttag = {
|
||||||
resolve: {
|
resolve: {
|
||||||
translations: (locale !== 'default')
|
translations: (locale !== 'default')
|
||||||
|
@ -30,10 +35,10 @@ export function buildWebpackClientConfig(development, analyze, locale) {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (locale === 'default') {
|
if (extract) {
|
||||||
ttag.extract = {
|
ttag.extract = {
|
||||||
output: path.resolve(__dirname, 'i18n', 'template.pot'),
|
output: path.resolve(__dirname, 'i18n', 'template.pot'),
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const babelPlugins = [
|
const babelPlugins = [
|
||||||
|
@ -117,7 +122,7 @@ export function buildWebpackClientConfig(development, analyze, locale) {
|
||||||
path.resolve(__dirname, 'src'),
|
path.resolve(__dirname, 'src'),
|
||||||
],
|
],
|
||||||
options: {
|
options: {
|
||||||
cacheDirectory: true,
|
cacheDirectory: !extract,
|
||||||
babelrc: false,
|
babelrc: false,
|
||||||
presets: [
|
presets: [
|
||||||
['@babel/preset-env', {
|
['@babel/preset-env', {
|
||||||
|
@ -199,7 +204,10 @@ export function buildWebpackClientConfig(development, analyze, locale) {
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* this does not much tbqh
|
* maybe some day in the future it might be
|
||||||
|
* better than babel-loader cacheDirectory,
|
||||||
|
* but right now it isn't
|
||||||
|
*
|
||||||
cache: {
|
cache: {
|
||||||
type: 'filesystem',
|
type: 'filesystem',
|
||||||
cacheDirectory: path.resolve(
|
cacheDirectory: path.resolve(
|
||||||
|
@ -218,7 +226,7 @@ export function buildWebpackClientConfig(development, analyze, locale) {
|
||||||
*/
|
*/
|
||||||
function buildWebpackClientConfigAllLangs(development, analyze) {
|
function buildWebpackClientConfigAllLangs(development, analyze) {
|
||||||
let webpackConfigClient = [
|
let webpackConfigClient = [
|
||||||
buildWebpackClientConfig(development, analyze, 'default'),
|
buildWebpackClientConfig(development, analyze, 'default', false),
|
||||||
];
|
];
|
||||||
/*
|
/*
|
||||||
* get available translations
|
* get available translations
|
||||||
|
@ -234,7 +242,13 @@ function buildWebpackClientConfigAllLangs(development, analyze) {
|
||||||
return webpackConfigClient;
|
return webpackConfigClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default buildWebpackClientConfigAllLangs(
|
export default ({
|
||||||
process.argv.includes('--debug'),
|
debug, analyze, extract, locale,
|
||||||
process.argv.includes('--analyse') || process.argv.includes('--analyze'),
|
}) => {
|
||||||
);
|
if (extract || locale) {
|
||||||
|
return buildWebpackClientConfig(
|
||||||
|
debug, analyze, locale || 'default', extract,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return buildWebpackClientConfigAllLangs(debug, analyze);
|
||||||
|
};
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import fs from 'fs';
|
|
||||||
import webpack from 'webpack';
|
import webpack from 'webpack';
|
||||||
import nodeExternals from 'webpack-node-externals';
|
import nodeExternals from 'webpack-node-externals';
|
||||||
import GeneratePackageJsonPlugin from 'generate-package-json-webpack-plugin';
|
import GeneratePackageJsonPlugin from 'generate-package-json-webpack-plugin';
|
||||||
|
@ -10,18 +9,6 @@ import GeneratePackageJsonPlugin from 'generate-package-json-webpack-plugin';
|
||||||
import patch from './scripts/patch';
|
import patch from './scripts/patch';
|
||||||
import pkg from './package.json';
|
import pkg from './package.json';
|
||||||
|
|
||||||
const isDebug = process.argv.includes('--debug');
|
|
||||||
|
|
||||||
/*
|
|
||||||
* check which ssr translations are available
|
|
||||||
* Maybe we will use thi later to auto-populat src/core/ttag.js
|
|
||||||
*
|
|
||||||
const langDir = path.resolve(__dirname, 'i18n');
|
|
||||||
const langs = fs.readdirSync(langDir)
|
|
||||||
.filter((e) => (e.endsWith('.po') && e.startsWith('ssr')));
|
|
||||||
fs.writeFileSync(path.resolve(langDir, 'ssr-list.json'), JSON.stringify(langs));
|
|
||||||
*/
|
|
||||||
|
|
||||||
patch();
|
patch();
|
||||||
|
|
||||||
const basePackageValues = {
|
const basePackageValues = {
|
||||||
|
@ -37,6 +24,8 @@ const basePackageValues = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const ttag = {};
|
||||||
|
|
||||||
const babelPlugins = [
|
const babelPlugins = [
|
||||||
'@babel/transform-flow-strip-types',
|
'@babel/transform-flow-strip-types',
|
||||||
['@babel/plugin-proposal-decorators', { legacy: true }],
|
['@babel/plugin-proposal-decorators', { legacy: true }],
|
||||||
|
@ -51,116 +40,122 @@ const babelPlugins = [
|
||||||
'@babel/transform-react-inline-elements',
|
'@babel/transform-react-inline-elements',
|
||||||
'transform-react-remove-prop-types',
|
'transform-react-remove-prop-types',
|
||||||
'transform-react-pure-class-to-function',
|
'transform-react-pure-class-to-function',
|
||||||
['ttag', {
|
['ttag', ttag],
|
||||||
extract: {
|
|
||||||
output: path.resolve(__dirname, 'i18n', 'template-ssr.pot'),
|
|
||||||
},
|
|
||||||
discover: ['t', 'jt'],
|
|
||||||
}],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default ({
|
||||||
name: 'web',
|
debug, extract,
|
||||||
target: 'node',
|
}) => {
|
||||||
|
if (extract) {
|
||||||
|
ttag.extract = {
|
||||||
|
output: path.resolve(__dirname, 'i18n', 'template-ssr.pot'),
|
||||||
|
};
|
||||||
|
ttag.discover = ['t', 'jt'];
|
||||||
|
}
|
||||||
|
|
||||||
context: __dirname,
|
return {
|
||||||
mode: (isDebug) ? 'development' : 'production',
|
name: 'web',
|
||||||
|
target: 'node',
|
||||||
|
|
||||||
entry: {
|
context: __dirname,
|
||||||
web: [path.resolve(__dirname, 'src', 'web.js')],
|
mode: (debug) ? 'development' : 'production',
|
||||||
backup: [path.resolve(__dirname, 'src', 'backup.js')],
|
|
||||||
},
|
|
||||||
|
|
||||||
output: {
|
entry: {
|
||||||
path: path.resolve(__dirname, 'build'),
|
web: [path.resolve(__dirname, 'src', 'web.js')],
|
||||||
libraryTarget: 'commonjs2',
|
backup: [path.resolve(__dirname, 'src', 'backup.js')],
|
||||||
},
|
},
|
||||||
|
|
||||||
resolve: {
|
output: {
|
||||||
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
|
path: path.resolve(__dirname, 'build'),
|
||||||
},
|
libraryTarget: 'commonjs2',
|
||||||
|
},
|
||||||
|
|
||||||
module: {
|
resolve: {
|
||||||
rules: [
|
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
|
||||||
{
|
},
|
||||||
test: /\.(js|jsx|ts|tsx)$/,
|
|
||||||
loader: 'babel-loader',
|
|
||||||
include: [
|
|
||||||
path.resolve(__dirname, 'src'),
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
cacheDirectory: isDebug,
|
|
||||||
|
|
||||||
babelrc: false,
|
module: {
|
||||||
presets: [
|
rules: [
|
||||||
['@babel/preset-env', {
|
{
|
||||||
targets: {
|
test: /\.(js|jsx|ts|tsx)$/,
|
||||||
node: pkg.engines.node.replace(/^\D+/g, ''),
|
loader: 'babel-loader',
|
||||||
},
|
include: [
|
||||||
modules: false,
|
path.resolve(__dirname, 'src'),
|
||||||
useBuiltIns: false,
|
|
||||||
debug: false,
|
|
||||||
}],
|
|
||||||
'@babel/typescript',
|
|
||||||
'@babel/react',
|
|
||||||
],
|
],
|
||||||
plugins: babelPlugins,
|
options: {
|
||||||
},
|
cacheDirectory: false,
|
||||||
},
|
|
||||||
{
|
babelrc: false,
|
||||||
test: /\.css/,
|
presets: [
|
||||||
use: [
|
['@babel/preset-env', {
|
||||||
{
|
targets: {
|
||||||
loader: 'css-loader',
|
node: pkg.engines.node.replace(/^\D+/g, ''),
|
||||||
options: {
|
},
|
||||||
importLoaders: 1,
|
modules: false,
|
||||||
sourceMap: false,
|
useBuiltIns: false,
|
||||||
modules: false,
|
debug: false,
|
||||||
},
|
}],
|
||||||
|
'@babel/typescript',
|
||||||
|
'@babel/react',
|
||||||
|
],
|
||||||
|
plugins: babelPlugins,
|
||||||
},
|
},
|
||||||
],
|
},
|
||||||
},
|
{
|
||||||
{
|
test: /\.css/,
|
||||||
test: [/\.po$/],
|
use: [
|
||||||
loader: 'ttag-po-loader',
|
{
|
||||||
},
|
loader: 'css-loader',
|
||||||
],
|
options: {
|
||||||
},
|
importLoaders: 1,
|
||||||
|
sourceMap: false,
|
||||||
externals: [
|
modules: false,
|
||||||
/\/proxies\.json$/,
|
},
|
||||||
/\/canvases\.json$/,
|
},
|
||||||
/^\.\/styleassets\.json$/,
|
],
|
||||||
/^\.\/assets\.json$/,
|
},
|
||||||
nodeExternals(),
|
{
|
||||||
],
|
test: [/\.po$/],
|
||||||
|
loader: 'ttag-po-loader',
|
||||||
plugins: [
|
},
|
||||||
new webpack.DefinePlugin({
|
|
||||||
'process.env.NODE_ENV': isDebug ? '"development"' : '"production"',
|
|
||||||
'process.env.BROWSER': false,
|
|
||||||
}),
|
|
||||||
// create package.json for deployment
|
|
||||||
new GeneratePackageJsonPlugin(basePackageValues, {
|
|
||||||
sourcePackageFilenames: [
|
|
||||||
path.resolve(__dirname, 'package.json'),
|
|
||||||
],
|
],
|
||||||
}),
|
},
|
||||||
],
|
|
||||||
|
|
||||||
stats: {
|
externals: [
|
||||||
colors: true,
|
/\/proxies\.json$/,
|
||||||
reasons: false,
|
/\/canvases\.json$/,
|
||||||
hash: false,
|
/^\.\/styleassets\.json$/,
|
||||||
version: false,
|
/^\.\/assets\.json$/,
|
||||||
timings: true,
|
nodeExternals(),
|
||||||
chunkModules: false,
|
],
|
||||||
},
|
|
||||||
|
|
||||||
node: {
|
plugins: [
|
||||||
global: false,
|
new webpack.DefinePlugin({
|
||||||
__filename: false,
|
'process.env.NODE_ENV': debug ? '"development"' : '"production"',
|
||||||
__dirname: false,
|
'process.env.BROWSER': false,
|
||||||
},
|
}),
|
||||||
|
// create package.json for deployment
|
||||||
|
new GeneratePackageJsonPlugin(basePackageValues, {
|
||||||
|
sourcePackageFilenames: [
|
||||||
|
path.resolve(__dirname, 'package.json'),
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
|
||||||
|
stats: {
|
||||||
|
colors: true,
|
||||||
|
reasons: false,
|
||||||
|
hash: false,
|
||||||
|
version: false,
|
||||||
|
timings: true,
|
||||||
|
chunkModules: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
node: {
|
||||||
|
global: false,
|
||||||
|
__filename: false,
|
||||||
|
__dirname: false,
|
||||||
|
},
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user