forked from ppfun/pixelplanet
use multiple processes while building
extract langs on production builds not on dev update webpack
This commit is contained in:
parent
ab840c6f23
commit
b5ccda251c
|
@ -29,6 +29,7 @@ msgid "You are muted for another ${ timeMin } minutes"
|
|||
msgstr ""
|
||||
|
||||
#: src/core/ChatProvider.js:450
|
||||
#, javascript-format
|
||||
msgid "You are muted for another ${ ttl } seconds"
|
||||
msgstr ""
|
||||
|
||||
|
@ -81,35 +82,35 @@ msgstr ""
|
|||
msgid "Invalid url :( Please check your mail again."
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/Globe.jsx:32
|
||||
#: src/ssr/Globe.jsx:37
|
||||
msgid "PixelPlanet.Fun 3DGlobe"
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/Globe.jsx:33
|
||||
#: src/ssr/Globe.jsx:38
|
||||
msgid "A 3D globe of our whole map"
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/Globe.jsx:46
|
||||
#: src/ssr/Globe.jsx:51
|
||||
msgid "Double click on globe to go back."
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/Globe.jsx:47
|
||||
#: src/ssr/Globe.jsx:52
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/PopUp.jsx:58
|
||||
#: src/ssr/PopUp.jsx:62
|
||||
msgid "ppfun"
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/PopUp.jsx:59
|
||||
#: src/ssr/PopUp.jsx:63
|
||||
msgid "PixelPlanet.Fun PopUp"
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/Main.jsx:67
|
||||
#: src/ssr/Main.jsx:71
|
||||
msgid "PixelPlanet.Fun"
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/Main.jsx:68
|
||||
#: src/ssr/Main.jsx:72
|
||||
msgid "Place color pixels on an map styled canvas with other players online"
|
||||
msgstr ""
|
||||
|
||||
|
@ -219,31 +220,7 @@ msgstr ""
|
|||
msgid "You are not banned"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/logout.js:11
|
||||
msgid "You are not even logged in."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/delete_account.js:55
|
||||
#: src/routes/api/auth/logout.js:20
|
||||
msgid "Server error when logging out."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/verify.js:26
|
||||
#: src/routes/api/auth/verify.js:35
|
||||
msgid "Mail verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/verify.js:27
|
||||
msgid "You are now verified :)"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/verify.js:35
|
||||
msgid ""
|
||||
"Your mail verification code is invalid or already expired :(, please "
|
||||
"request a new one."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/change_mail.js:21
|
||||
#: src/routes/api/auth/change_mail.js:22
|
||||
#: src/routes/api/auth/register.js:24
|
||||
msgid "This email provider is not allowed"
|
||||
msgstr ""
|
||||
|
@ -280,18 +257,50 @@ msgstr ""
|
|||
msgid "Failed to establish session after register :("
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/change_mail.js:43
|
||||
#: src/routes/api/auth/verify.js:26
|
||||
#: src/routes/api/auth/verify.js:35
|
||||
msgid "Mail verification"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/verify.js:27
|
||||
msgid "You are now verified :)"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/verify.js:35
|
||||
msgid ""
|
||||
"Your mail verification code is invalid or already expired :(, please "
|
||||
"request a new one."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/logout.js:11
|
||||
msgid "You are not even logged in."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/delete_account.js:65
|
||||
#: src/routes/api/auth/logout.js:20
|
||||
msgid "Server error when logging out."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/change_mail.js:44
|
||||
#: src/routes/api/auth/change_passwd.js:34
|
||||
#: src/routes/api/auth/delete_account.js:35
|
||||
#: src/routes/api/auth/delete_account.js:36
|
||||
msgid "You are not authenticated."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/change_mail.js:52
|
||||
#: src/routes/api/auth/change_mail.js:53
|
||||
#: src/routes/api/auth/change_passwd.js:43
|
||||
#: src/routes/api/auth/delete_account.js:45
|
||||
#: src/routes/api/auth/delete_account.js:55
|
||||
msgid "Incorrect password!"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/delete_account.js:46
|
||||
msgid "Muted users can not delete their account."
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/api/auth/change_mail.js:62
|
||||
msgid "Muted users can not do this."
|
||||
msgstr ""
|
||||
|
||||
#: src/ssr/RedirectionPage.jsx:19
|
||||
msgid "PixelPlanet.fun Accounts"
|
||||
msgstr ""
|
||||
|
@ -337,48 +346,59 @@ msgstr ""
|
|||
msgid "Top10"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:29
|
||||
msgid "Our main canvas, a huge map of the world. Place everywhere you like"
|
||||
#: src/canvasesDesc.js:27
|
||||
msgid "Thoia"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:30
|
||||
msgid "Our main canvas, a huge map of the world. Place everywhere you like"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:31
|
||||
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 ""
|
||||
|
||||
#: src/canvasesDesc.js:31
|
||||
#: src/canvasesDesc.js:32
|
||||
msgid "Place Voxels on a 3D canvas with others"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:32
|
||||
#: src/canvasesDesc.js:33
|
||||
msgid "Special canvas to spread awareness of SARS-CoV2"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:33
|
||||
#: src/canvasesDesc.js:34
|
||||
msgid "Mirror of PixelZone"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:34
|
||||
#: src/canvasesDesc.js:35
|
||||
msgid "Mirror of PixelCanvas"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:35
|
||||
#: src/canvasesDesc.js:36
|
||||
msgid "Black and White canvas"
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:36
|
||||
#: src/canvasesDesc.js:37
|
||||
msgid ""
|
||||
"A canvas for the most active players from the the previous day. Daily "
|
||||
"ranking updates at 00:00 UTC."
|
||||
msgstr ""
|
||||
|
||||
#: src/canvasesDesc.js:38
|
||||
msgid ""
|
||||
"Thoia World Canvas. Advanced fictional worldbuilding and arts. Abandon the "
|
||||
"old world and all it entails."
|
||||
msgstr ""
|
||||
|
||||
#: src/core/MailProvider.js:66
|
||||
#, javascript-format
|
||||
msgid "Welcome ${ name } to PixelPlanet, please verify your mail"
|
||||
msgstr ""
|
||||
|
||||
#: src/core/MailProvider.js:67
|
||||
#, javascript-format
|
||||
msgid "Hello ${ name }"
|
||||
msgstr ""
|
||||
|
||||
|
@ -446,4 +466,4 @@ msgstr ""
|
|||
|
||||
#: src/core/MailProvider.js:130
|
||||
msgid "Couldn't find this mail in our database"
|
||||
msgstr ""
|
||||
msgstr ""
|
||||
|
|
|
@ -194,6 +194,7 @@ msgid "try again after ${ ti }min"
|
|||
msgstr ""
|
||||
|
||||
#: src/store/actions/fetch.js:70
|
||||
#, javascript-format
|
||||
msgid "Connection error ${ code } :("
|
||||
msgstr ""
|
||||
|
||||
|
@ -230,12 +231,6 @@ msgstr ""
|
|||
msgid "You have new messages in chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:561
|
||||
#: src/components/CoordinatesBox.jsx:31
|
||||
#: src/components/ModWatchtools.jsx:371
|
||||
msgid "Copy to Clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OnlineBox.jsx:40
|
||||
msgid "Online Users on Canvas"
|
||||
msgstr ""
|
||||
|
@ -248,6 +243,13 @@ msgstr ""
|
|||
msgid "Pixels placed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:565
|
||||
#: src/components/CoordinatesBox.jsx:31
|
||||
#: src/components/ModWatchtools.jsx:378
|
||||
#: src/components/ModWatchtools.jsx:396
|
||||
msgid "Copy to Clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/CanvasSwitchButton.jsx:20
|
||||
#: src/components/windows/index.js:19
|
||||
msgid "Canvas Selection"
|
||||
|
@ -279,7 +281,7 @@ msgstr ""
|
|||
|
||||
#: src/components/Admintools.jsx:103
|
||||
#: src/components/ModCanvastools.jsx:222
|
||||
#: src/components/ModWatchtools.jsx:118
|
||||
#: src/components/ModWatchtools.jsx:120
|
||||
#: src/components/Window.jsx:157
|
||||
#: src/components/Window.jsx:260
|
||||
#: src/components/contextmenus/ChannelContextMenu.jsx:59
|
||||
|
@ -310,6 +312,26 @@ msgstr ""
|
|||
msgid "Resize"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/BanInfo.jsx:75
|
||||
#: src/components/buttons/HelpButton.jsx:20
|
||||
#: src/components/windows/index.js:13
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/SettingsButton.jsx:21
|
||||
#: src/components/windows/index.js:14
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/LogInButton.jsx:20
|
||||
#: src/components/windows/index.js:15
|
||||
msgid "User Area"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/DownloadButton.jsx:36
|
||||
msgid "Make Screenshot"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/GlobeButton.jsx:34
|
||||
msgid "Globe View"
|
||||
msgstr ""
|
||||
|
@ -322,26 +344,6 @@ msgstr ""
|
|||
msgid "Open Palette"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/SettingsButton.jsx:21
|
||||
#: src/components/windows/index.js:14
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/BanInfo.jsx:75
|
||||
#: src/components/buttons/HelpButton.jsx:20
|
||||
#: src/components/windows/index.js:13
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/LogInButton.jsx:20
|
||||
#: src/components/windows/index.js:15
|
||||
msgid "User Area"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/buttons/DownloadButton.jsx:36
|
||||
msgid "Make Screenshot"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/index.js:16
|
||||
msgid "Registration"
|
||||
msgstr ""
|
||||
|
@ -447,99 +449,6 @@ msgstr ""
|
|||
msgid "Why?"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:86
|
||||
msgid "Show Grid"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:91
|
||||
msgid "Turn on grid to highlight pixel borders."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:94
|
||||
msgid "Show Pixel Activity"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:99
|
||||
msgid "Show circles where pixels are placed."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:102
|
||||
msgid "Disable Game Sounds"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:108
|
||||
msgid "All sound effects will be disabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:112
|
||||
msgid ""
|
||||
"Your Browser doesn't allow us to use AudioContext to play sounds. Do you "
|
||||
"have some privacy feature blocking us?"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:118
|
||||
msgid "Enable chat notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:122
|
||||
msgid "Play a sound when new chat messages arrive"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:125
|
||||
msgid "Auto Zoom In"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:130
|
||||
msgid ""
|
||||
"Zoom in instead of placing a pixel when you tap the canvas and your zoom is "
|
||||
"small."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:133
|
||||
msgid "Compact Palette"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:138
|
||||
msgid "Display Palette in a compact form that takes less screen space."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:141
|
||||
msgid "Potato Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:145
|
||||
msgid "For when you are playing on a potato."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:376
|
||||
#: src/components/windows/Settings.jsx:148
|
||||
msgid "Light Grid"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:152
|
||||
msgid "Show Grid in white instead of black."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:156
|
||||
msgid "Historical View"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:161
|
||||
msgid "Check out past versions of the canvas."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:166
|
||||
msgid "Themes"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:171
|
||||
msgid "How pixelplanet should look like."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:178
|
||||
msgid "Select Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:42
|
||||
msgid "Place color pixels on a large canvas with other players online!"
|
||||
msgstr ""
|
||||
|
@ -609,6 +518,7 @@ msgid "Press ${ bindG } to toggle grid"
|
|||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:64
|
||||
#, javascript-format
|
||||
msgid "Press ${ bindX } to toggle showing of pixel activity"
|
||||
msgstr ""
|
||||
|
||||
|
@ -618,6 +528,7 @@ msgid "Press ${ bindH } to toggle historical view"
|
|||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:66
|
||||
#, javascript-format
|
||||
msgid "Press ${ bindR } to copy coordinates"
|
||||
msgstr ""
|
||||
|
||||
|
@ -639,6 +550,7 @@ msgid "Press ${ bindAUp }, ${ bindALeft }, ${ bindADown }, ${ bindARight } to mo
|
|||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:70
|
||||
#, javascript-format
|
||||
msgid "Drag ${ mouseSymbol } mouse or ${ touchSymbol } pan to move"
|
||||
msgstr ""
|
||||
|
||||
|
@ -648,6 +560,7 @@ msgid "Scroll ${ mouseSymbol } mouse wheel or ${ touchSymbol } pinch to zoom"
|
|||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:72
|
||||
#, javascript-format
|
||||
msgid "Hold left ${ bindShift } for placing while moving mouse"
|
||||
msgstr ""
|
||||
|
||||
|
@ -666,12 +579,14 @@ msgstr ""
|
|||
|
||||
#: src/components/windows/Help.jsx:75
|
||||
#: src/components/windows/Help.jsx:87
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Click ${ mouseSymbol } middle mouse button or ${ touchSymbol } long-tap to "
|
||||
"select current hovering color"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:81
|
||||
#, javascript-format
|
||||
msgid "Press ${ bindE } and ${ bindC } to fly up and down"
|
||||
msgstr ""
|
||||
|
||||
|
@ -688,6 +603,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:84
|
||||
#, javascript-format
|
||||
msgid "${ mouseSymbol } Right click and drag mouse to pan"
|
||||
msgstr ""
|
||||
|
||||
|
@ -710,9 +626,103 @@ msgid "Credit for the Palette of the Moon goes to ${ starhouseLink }."
|
|||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:97
|
||||
#, javascript-format
|
||||
msgid "Credit for the Palette of the Top10 canvas goes to ${ vinikLink }."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:86
|
||||
msgid "Show Grid"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:91
|
||||
msgid "Turn on grid to highlight pixel borders."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:94
|
||||
msgid "Show Pixel Activity"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:99
|
||||
msgid "Show circles where pixels are placed."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:102
|
||||
msgid "Disable Game Sounds"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:108
|
||||
msgid "All sound effects will be disabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:112
|
||||
msgid ""
|
||||
"Your Browser doesn't allow us to use AudioContext to play sounds. Do you "
|
||||
"have some privacy feature blocking us?"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:118
|
||||
msgid "Enable chat notifications"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:122
|
||||
msgid "Play a sound when new chat messages arrive"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:125
|
||||
msgid "Auto Zoom In"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:130
|
||||
msgid ""
|
||||
"Zoom in instead of placing a pixel when you tap the canvas and your zoom is "
|
||||
"small."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:133
|
||||
msgid "Compact Palette"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:138
|
||||
msgid "Display Palette in a compact form that takes less screen space."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:141
|
||||
msgid "Potato Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:145
|
||||
msgid "For when you are playing on a potato."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:380
|
||||
#: src/components/windows/Settings.jsx:148
|
||||
msgid "Light Grid"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:152
|
||||
msgid "Show Grid in white instead of black."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:156
|
||||
msgid "Historical View"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:161
|
||||
msgid "Check out past versions of the canvas."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:166
|
||||
msgid "Themes"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:171
|
||||
msgid "How pixelplanet should look like."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:178
|
||||
msgid "Select Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/UserArea.jsx:36
|
||||
#: src/components/windows/UserArea.jsx:56
|
||||
msgid "Profile"
|
||||
|
@ -826,14 +836,6 @@ msgid ""
|
|||
"how the canvas was at that time."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/ForgotPassword.jsx:58
|
||||
msgid "Sent you a mail with instructions to reset your password."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/ForgotPassword.jsx:69
|
||||
msgid "Enter your mail address and we will send you a new password:"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Chat.jsx:180
|
||||
msgid "Start chatting here"
|
||||
msgstr ""
|
||||
|
@ -850,6 +852,14 @@ msgstr ""
|
|||
msgid "Channel settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/ForgotPassword.jsx:58
|
||||
msgid "Sent you a mail with instructions to reset your password."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/ForgotPassword.jsx:69
|
||||
msgid "Enter your mail address and we will send you a new password:"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Captcha.jsx:51
|
||||
#: src/components/Captcha.jsx:105
|
||||
msgid "Could not load captcha"
|
||||
|
@ -931,13 +941,6 @@ msgstr ""
|
|||
msgid "Password must be shorter than 60 characters."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ChangeMail.jsx:91
|
||||
#: src/components/ChangeName.jsx:68
|
||||
#: src/components/ChangePassword.jsx:109
|
||||
#: src/components/LanguageSelect.jsx:80
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/GetIID.jsx:44
|
||||
msgid "Get IID"
|
||||
msgstr ""
|
||||
|
@ -946,6 +949,13 @@ msgstr ""
|
|||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ChangeMail.jsx:91
|
||||
#: src/components/ChangeName.jsx:68
|
||||
#: src/components/ChangePassword.jsx:109
|
||||
#: src/components/LanguageSelect.jsx:80
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/LogInArea.jsx:19
|
||||
msgid "Login to access more features and stats."
|
||||
msgstr ""
|
||||
|
@ -1020,77 +1030,77 @@ msgstr ""
|
|||
msgid "Choose Canvas"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:216
|
||||
#: src/components/Converter.jsx:217
|
||||
msgid "Palette Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:218
|
||||
#: src/components/Converter.jsx:219
|
||||
#, javascript-format
|
||||
msgid "Palette for ${ gimpLink }"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:236
|
||||
#: src/components/Converter.jsx:240
|
||||
msgid "Image Converter"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:237
|
||||
#: src/components/Converter.jsx:241
|
||||
msgid "Convert an image to canvas colors"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:256
|
||||
#: src/components/Converter.jsx:260
|
||||
msgid "Choose Strategy"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:294
|
||||
#: src/components/Converter.jsx:298
|
||||
msgid "Serpentine"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:296
|
||||
#: src/components/Converter.jsx:300
|
||||
msgid "Minimum Color Distance"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:323
|
||||
#: src/components/Converter.jsx:327
|
||||
msgid "Calculate like GIMP"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:327
|
||||
#: src/components/Converter.jsx:331
|
||||
msgid "Choose Color Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:356
|
||||
#: src/components/Converter.jsx:360
|
||||
msgid "Add Grid (uncheck if you need a 1:1 template)"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:378
|
||||
#: src/components/Converter.jsx:394
|
||||
#: src/components/Converter.jsx:382
|
||||
#: src/components/Converter.jsx:398
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:423
|
||||
#: src/components/Converter.jsx:427
|
||||
msgid "Scale Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:434
|
||||
#: src/components/Converter.jsx:438
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:465
|
||||
#: src/components/Converter.jsx:469
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:504
|
||||
#: src/components/Converter.jsx:508
|
||||
msgid "Keep Ratio"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:517
|
||||
#: src/components/Converter.jsx:521
|
||||
msgid "Anti Aliasing"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:531
|
||||
#: src/components/Converter.jsx:535
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Converter.jsx:549
|
||||
#: src/components/Converter.jsx:553
|
||||
msgid "Download Template"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1189,7 +1199,7 @@ msgstr ""
|
|||
msgid "Countries by Pixels Today"
|
||||
msgstr ""
|
||||
|
||||
#: src/core/chartSettings.js:352
|
||||
#: src/core/chartSettings.js:351
|
||||
msgid "Total Pixels placed per day"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1215,10 +1225,6 @@ msgstr ""
|
|||
msgid "Click here to request a new verification mail."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ChangeName.jsx:64
|
||||
msgid "New Username"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ChangePassword.jsx:21
|
||||
msgid "Passwords do not match."
|
||||
msgstr ""
|
||||
|
@ -1239,6 +1245,10 @@ msgstr ""
|
|||
msgid "Confirm New Password"
|
||||
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, "
|
||||
|
@ -1339,14 +1349,14 @@ msgstr ""
|
|||
#: src/components/ModCanvastools.jsx:330
|
||||
#: src/components/ModCanvastools.jsx:403
|
||||
#: src/components/ModCanvastools.jsx:486
|
||||
#: src/components/ModWatchtools.jsx:174
|
||||
#: src/components/ModWatchtools.jsx:176
|
||||
msgid "Top-left corner"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModCanvastools.jsx:347
|
||||
#: src/components/ModCanvastools.jsx:420
|
||||
#: src/components/ModCanvastools.jsx:503
|
||||
#: src/components/ModWatchtools.jsx:191
|
||||
#: src/components/ModWatchtools.jsx:193
|
||||
msgid "Bottom-right corner"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1370,54 +1380,6 @@ msgstr ""
|
|||
msgid "Stop Cleaner"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:48
|
||||
msgid "Interval is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:122
|
||||
msgid "Check who placed in an area"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:123
|
||||
msgid "Canvas"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:142
|
||||
msgid "Interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:157
|
||||
msgid "IID (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:236
|
||||
msgid "Get Pixels"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:267
|
||||
msgid "Get Users"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:20
|
||||
msgid "You must enter a duration"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:24
|
||||
msgid "You must enter an IID"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:53
|
||||
msgid "IID Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:80
|
||||
msgid "Enter Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:97
|
||||
msgid "(0 = infinite)"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Admintools.jsx:109
|
||||
msgid "IP Actions"
|
||||
msgstr ""
|
||||
|
@ -1450,8 +1412,52 @@ msgstr ""
|
|||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/contextmenus/ChannelContextMenu.jsx:46
|
||||
msgid "Mute"
|
||||
#: src/components/ModWatchtools.jsx:48
|
||||
msgid "Interval is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:124
|
||||
msgid "Check who placed in an area"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:125
|
||||
msgid "Canvas"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:144
|
||||
msgid "Interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:159
|
||||
msgid "IID (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:239
|
||||
msgid "Get Pixels"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModWatchtools.jsx:271
|
||||
msgid "Get Users"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:20
|
||||
msgid "You must enter a duration"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:24
|
||||
msgid "You must enter an IID"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:53
|
||||
msgid "IID Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:80
|
||||
msgid "Enter Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/ModIIDtools.jsx:97
|
||||
msgid "(0 = infinite)"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/contextmenus/UserContextMenu.jsx:49
|
||||
|
@ -1466,6 +1472,10 @@ msgstr ""
|
|||
msgid "Block"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/contextmenus/ChannelContextMenu.jsx:46
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:15
|
||||
#: src/components/windows/Settings.jsx:87
|
||||
msgctxt "keybinds"
|
||||
|
@ -1478,11 +1488,6 @@ msgctxt "keybinds"
|
|||
msgid "X"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:103
|
||||
msgctxt "keybinds"
|
||||
msgid "M"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Help.jsx:17
|
||||
#: src/components/windows/Settings.jsx:158
|
||||
msgctxt "keybinds"
|
||||
|
@ -1532,4 +1537,9 @@ msgstr ""
|
|||
#: src/components/windows/Help.jsx:32
|
||||
msgctxt "keybinds"
|
||||
msgid "C"
|
||||
msgstr ""
|
||||
msgstr ""
|
||||
|
||||
#: src/components/windows/Settings.jsx:103
|
||||
msgctxt "keybinds"
|
||||
msgid "M"
|
||||
msgstr ""
|
||||
|
|
File diff suppressed because it is too large
Load Diff
63
package.json
63
package.json
|
@ -9,7 +9,10 @@
|
|||
"main": "server.js",
|
||||
"scripts": {
|
||||
"build": "node scripts/build.js",
|
||||
"build:dev": "webpack --env extract --config ./webpack.config.server.js && webpack --env extract --env development --config ./webpack.config.client.js && npm run minify-css",
|
||||
"build:server": "webpack --env extract --config ./webpack.config.server.js",
|
||||
"build:client": "node scripts/build.js --client",
|
||||
"build:dev": "webpack --config ./webpack.config.server.js && webpack --env development --config ./webpack.config.client.js && npm run minify-css",
|
||||
"update-browserlist": "browserslist --update-db",
|
||||
"deploy": "ssh pixelplanet /home/pixelpla/rebuild.sh",
|
||||
"minify-css": "node scripts/minifyCss.js",
|
||||
"babel-node": "babel-node",
|
||||
|
@ -23,11 +26,11 @@
|
|||
"not IE_Mob 11"
|
||||
],
|
||||
"dependencies": {
|
||||
"bcrypt": "^5.0.1",
|
||||
"bcrypt": "^5.1.1",
|
||||
"chart.js": "^3.9.1",
|
||||
"compression": "^1.7.3",
|
||||
"cookie": "^0.5.0",
|
||||
"core-js": "^3.23.4",
|
||||
"core-js": "^3.34.0",
|
||||
"etag": "^1.8.1",
|
||||
"express": "^4.17.2",
|
||||
"express-session": "^1.17.2",
|
||||
|
@ -36,7 +39,7 @@
|
|||
"morgan": "^1.10.0",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"mysql2": "^2.3.3",
|
||||
"nodemailer": "^6.7.8",
|
||||
"nodemailer": "^6.9.7",
|
||||
"passport": "^0.6.0",
|
||||
"passport-discord": "^0.1.4",
|
||||
"passport-facebook": "^3.0.0",
|
||||
|
@ -48,56 +51,56 @@
|
|||
"react": "^18.2.0",
|
||||
"react-chartjs-2": "^4.3.1",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-icons": "^4.3.1",
|
||||
"react-icons": "^4.12.0",
|
||||
"react-redux": "^8.0.2",
|
||||
"react-stay-scrolled": "^8.0.0",
|
||||
"react-toggle": "^4.1.3",
|
||||
"redis": "^4.3.1",
|
||||
"redis": "^4.6.11",
|
||||
"redux": "^4.1.2",
|
||||
"redux-persist": "^6.0.0",
|
||||
"redux-thunk": "^2.4.1",
|
||||
"reselect": "^4.1.6",
|
||||
"sequelize": "^6.21.6",
|
||||
"sequelize": "^6.35.2",
|
||||
"sharp": "^0.31.0",
|
||||
"startaudiocontext": "^1.2.1",
|
||||
"three": "^0.143.0",
|
||||
"three-trackballcontrols": "^0.9.0",
|
||||
"ttag": "^1.7.24",
|
||||
"url-search-params-polyfill": "^8.1.1",
|
||||
"winston": "^3.8.2",
|
||||
"ttag": "^1.8.3",
|
||||
"url-search-params-polyfill": "^8.2.5",
|
||||
"winston": "^3.11.0",
|
||||
"winston-daily-rotate-file": "^4.5.5",
|
||||
"ws": "^8.4.0"
|
||||
"ws": "^8.15.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.21.0",
|
||||
"@babel/core": "^7.21.0",
|
||||
"@babel/eslint-parser": "^7.19.1",
|
||||
"@babel/node": "^7.20.7",
|
||||
"@babel/plugin-transform-react-constant-elements": "^7.20.2",
|
||||
"@babel/plugin-transform-react-inline-elements": "^7.21.0",
|
||||
"@babel/preset-env": "^7.20.2",
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"babel-loader": "^8.2.3",
|
||||
"@babel/cli": "^7.23.4",
|
||||
"@babel/core": "^7.23.6",
|
||||
"@babel/eslint-parser": "^7.23.3",
|
||||
"@babel/node": "^7.22.19",
|
||||
"@babel/plugin-transform-react-constant-elements": "^7.23.3",
|
||||
"@babel/plugin-transform-react-inline-elements": "^7.23.3",
|
||||
"@babel/preset-env": "^7.23.6",
|
||||
"@babel/preset-react": "^7.23.3",
|
||||
"babel-loader": "^9.1.3",
|
||||
"babel-plugin-transform-react-pure-class-to-function": "^1.0.1",
|
||||
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
|
||||
"babel-plugin-ttag": "^1.8.5",
|
||||
"clean-css": "^5.2.2",
|
||||
"clean-css-loader": "^4.1.1",
|
||||
"clean-css-loader": "^4.2.1",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.5.1",
|
||||
"eslint": "^8.36.0",
|
||||
"css-loader": "^6.8.1",
|
||||
"eslint": "^8.55.0",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-jsx-a11y": "^6.7.1",
|
||||
"eslint-plugin-react": "^7.32.2",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.8.0",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"generate-package-json-webpack-plugin": "^2.6.0",
|
||||
"ttag-cli": "^1.9.3",
|
||||
"ttag-cli": "^1.10.9",
|
||||
"ttag-po-loader": "0.0.2",
|
||||
"webpack": "^5.67.0",
|
||||
"webpack-bundle-analyzer": "^4.5.0",
|
||||
"webpack-cli": "^4.9.2",
|
||||
"webpack": "^5.89.0",
|
||||
"webpack-bundle-analyzer": "^4.10.1",
|
||||
"webpack-cli": "^5.1.4",
|
||||
"webpack-node-externals": "^3.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
|
|
175
scripts/build.js
175
scripts/build.js
|
@ -5,6 +5,7 @@
|
|||
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const { spawn } = require('node:child_process');
|
||||
const webpack = require('webpack');
|
||||
|
||||
const minifyCss = require('./minifyCss');
|
||||
|
@ -13,17 +14,41 @@ const clientConfig = require('../webpack.config.client.js');
|
|||
const { getAllAvailableLocals } = clientConfig;
|
||||
|
||||
let langs = 'all';
|
||||
let doBuildServer = false;
|
||||
let doBuildClient = false;
|
||||
let parallel = false;
|
||||
let recursion = false;
|
||||
for (let i = 0; i < process.argv.length; i += 1) {
|
||||
if (process.argv[i] == '--langs') {
|
||||
const newLangs = process.argv[++i];
|
||||
if (newLangs) langs = newLangs;
|
||||
break;
|
||||
switch (process.argv[i]) {
|
||||
case '--langs': {
|
||||
const newLangs = process.argv[++i];
|
||||
if (newLangs) langs = newLangs;
|
||||
break;
|
||||
}
|
||||
case '--client':
|
||||
doBuildClient = true;
|
||||
break;
|
||||
case `--server`:
|
||||
doBuildServer = true;
|
||||
break;
|
||||
case '--parallel':
|
||||
parallel = true;
|
||||
break;
|
||||
case '--recursion':
|
||||
recursion = true;
|
||||
break;
|
||||
default:
|
||||
// nothing
|
||||
}
|
||||
}
|
||||
if (!doBuildServer && !doBuildClient) {
|
||||
doBuildServer = true;
|
||||
doBuildClient = true;
|
||||
}
|
||||
|
||||
function compile(webpackConfig) {
|
||||
return new Promise((resolve, reject) => {
|
||||
webpack(webpackConfig).run((err, stats) => {
|
||||
webpack(webpackConfig, (err, stats) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
@ -34,10 +59,90 @@ function compile(webpackConfig) {
|
|||
});
|
||||
}
|
||||
|
||||
function buildServer() {
|
||||
console.log('-----------------------------');
|
||||
console.log(`Build server...`);
|
||||
console.log('-----------------------------');
|
||||
const ts = Date.now();
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const serverCompile = spawn('npm', ['run', 'build:server']);
|
||||
serverCompile.stdout.on('data', (data) => {
|
||||
console.log(data.toString());
|
||||
});
|
||||
serverCompile.stderr.on('data', (data) => {
|
||||
console.error(data.toString());
|
||||
});
|
||||
serverCompile.on('close', (code) => {
|
||||
if (code) {
|
||||
reject(new Error('Server compilation failed!'));
|
||||
} else {
|
||||
console.log('---------------------------------------');
|
||||
console.log(`Server Compilation finished in ${Math.floor((Date.now() - ts) / 1000)}s`);
|
||||
console.log('---------------------------------------');
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function buildClients(slangs) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const clientCompile = spawn('npm', ['run', 'build', '--', '--client', '--recursion', '--langs', slangs.join(',')]);
|
||||
clientCompile.stdout.on('data', (data) => {
|
||||
console.log(data.toString());
|
||||
});
|
||||
clientCompile.stderr.on('data', (data) => {
|
||||
console.error(data.toString());
|
||||
});
|
||||
clientCompile.on('close', (code) => {
|
||||
if (code) {
|
||||
reject(new Error('Client compilation failed!'));
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function buildClientsSync(avlangs) {
|
||||
for(let i = 0; i < avlangs.length; i += 1) {
|
||||
const lang = avlangs[i];
|
||||
console.log(`Build client for locale ${lang}...`);
|
||||
await compile(clientConfig({
|
||||
development: false,
|
||||
analyze: false,
|
||||
extract: false,
|
||||
locale: lang,
|
||||
clean: false,
|
||||
readonly: recursion,
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
function buildClientsParallel(avlangs) {
|
||||
const st = Date.now();
|
||||
const numProc = 3;
|
||||
let nump = Math.floor(avlangs.length / numProc);
|
||||
if (!nump) nump = 1;
|
||||
|
||||
const promises = [];
|
||||
while (avlangs.length >= nump) {
|
||||
const slangs = avlangs.splice(0, nump);
|
||||
promises.push(buildClients(slangs));
|
||||
}
|
||||
if (avlangs.length) {
|
||||
promises.push(buildClientsSync(avlangs));
|
||||
}
|
||||
return Promise.all(promises);
|
||||
}
|
||||
|
||||
async function buildProduction() {
|
||||
const st = Date.now();
|
||||
// cleanup old files
|
||||
fs.rmSync(path.resolve(__dirname, '..', 'node_modules', '.cache', 'webpack'), { recursive: true, force: true });
|
||||
// fs.rmSync(path.resolve(__dirname, '..', 'dist', 'public', 'assets'), { recursive: true, force: true });
|
||||
if (!recursion) {
|
||||
fs.rmSync(path.resolve(__dirname, '..', 'node_modules', '.cache', 'webpack'), { recursive: true, force: true });
|
||||
}
|
||||
|
||||
// decide which languages to build
|
||||
let avlangs = getAllAvailableLocals();
|
||||
|
@ -52,31 +157,41 @@ async function buildProduction() {
|
|||
}
|
||||
console.log('Building locales:', avlangs);
|
||||
|
||||
// server files
|
||||
console.log('-----------------------------');
|
||||
console.log(`Build server...`);
|
||||
console.log('-----------------------------');
|
||||
await compile(serverConfig({
|
||||
development: false,
|
||||
extract: false,
|
||||
}));
|
||||
const promises = [];
|
||||
|
||||
// client files
|
||||
const st = Date.now();
|
||||
for(let i = 0; i < avlangs.length; i += 1) {
|
||||
const lang = avlangs[i];
|
||||
console.log(`Build client for locale ${lang}...`);
|
||||
console.log('-----------------------------');
|
||||
await compile(clientConfig({
|
||||
development: false,
|
||||
analyze: false,
|
||||
extract: false,
|
||||
locale: lang,
|
||||
clean: (i === 0),
|
||||
}));
|
||||
if (doBuildServer) {
|
||||
promises.push(buildServer());
|
||||
}
|
||||
|
||||
if (!recursion) {
|
||||
console.log(
|
||||
'Building one package seperately to populate cache and extract langs...',
|
||||
);
|
||||
await compile(clientConfig({
|
||||
development: false,
|
||||
analyze: false,
|
||||
extract: true,
|
||||
locale: avlangs.shift(),
|
||||
clean: true,
|
||||
readonly: false,
|
||||
}));
|
||||
}
|
||||
|
||||
if (doBuildClient) {
|
||||
if (parallel) {
|
||||
promises.push(buildClientsParallel(avlangs));
|
||||
} else {
|
||||
promises.push(buildClientsSync(avlangs));
|
||||
}
|
||||
}
|
||||
await Promise.all(promises);
|
||||
|
||||
if (!recursion) {
|
||||
await minifyCss();
|
||||
console.log(`Finished building in ${(Date.now() - st) / 1000}s`);
|
||||
} else {
|
||||
console.log(`Worker done in ${(Date.now() - st) / 1000}s`);
|
||||
}
|
||||
console.log(`Finished building in ${(Date.now() - st) / 1000}s`);
|
||||
await minifyCss();
|
||||
}
|
||||
|
||||
buildProduction();
|
||||
|
|
|
@ -13,13 +13,14 @@ const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
|
|||
*/
|
||||
process.chdir(__dirname);
|
||||
|
||||
function buildWebpackClientConfig(
|
||||
module.exports = ({
|
||||
development,
|
||||
analyze,
|
||||
locale,
|
||||
locale = 'en',
|
||||
extract,
|
||||
clean,
|
||||
) {
|
||||
clean = true,
|
||||
readonly,
|
||||
}) => {
|
||||
const ttag = {
|
||||
resolve: {
|
||||
translations: (locale !== 'en')
|
||||
|
@ -43,7 +44,7 @@ function buildWebpackClientConfig(
|
|||
target: 'web',
|
||||
|
||||
mode: (development) ? 'development' : 'production',
|
||||
devtool: (development) ? 'inline-source-map' : false,
|
||||
devtool: (development) ? 'source-map' : false,
|
||||
|
||||
entry: {
|
||||
client:
|
||||
|
@ -176,8 +177,9 @@ function buildWebpackClientConfig(
|
|||
},
|
||||
|
||||
cache: {
|
||||
type: 'filesystem',
|
||||
},
|
||||
type: 'filesystem',
|
||||
readonly,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -190,42 +192,4 @@ function getAllAvailableLocals() {
|
|||
return langs;
|
||||
}
|
||||
|
||||
/*
|
||||
* return array of webpack configuartions for all languages
|
||||
*/
|
||||
function buildWebpackClientConfigAllLangs() {
|
||||
const langs = getAllAvailableLocals();
|
||||
const webpackConfigClient = [];
|
||||
for (let l = 0; l < langs.length; l += 1) {
|
||||
const lang = langs[l];
|
||||
const cfg = buildWebpackClientConfig(false, false, lang, false, false);
|
||||
webpackConfigClient.push(cfg);
|
||||
}
|
||||
return webpackConfigClient;
|
||||
}
|
||||
|
||||
/*
|
||||
* Per default get configuration of all packages
|
||||
* If any argument is given, it will only get one
|
||||
* ('default' aka english if locale is unset)
|
||||
*
|
||||
* @param development If development mode
|
||||
* @param extract if translatable strings get in i18n templates should
|
||||
* get updated
|
||||
* @param locale language get single configuration of specific locale
|
||||
* @param analyze launch BundleAnalyzerPlugin after build
|
||||
* @return webpack configuration
|
||||
*/
|
||||
module.exports = ({
|
||||
development, analyze, extract, locale, clean,
|
||||
}) => {
|
||||
if (extract || analyze || locale || development || clean) {
|
||||
return buildWebpackClientConfig(
|
||||
development, analyze, locale || 'en', extract, clean,
|
||||
);
|
||||
}
|
||||
return buildWebpackClientConfig(false, false, 'en', false, true);
|
||||
};
|
||||
|
||||
module.exports.buildWebpackClientConfig = buildWebpackClientConfig;
|
||||
module.exports.getAllAvailableLocals = getAllAvailableLocals;
|
||||
|
|
Loading…
Reference in New Issue