Merge branch 'production'

This commit is contained in:
HF 2022-04-06 19:48:57 +02:00
commit 56bc4352b2
5 changed files with 1827 additions and 19 deletions

442
i18n/ssr-tr.po Normal file
View File

@ -0,0 +1,442 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
#: src/core/ChatProvider.js:370
msgid "You can not send chat messages with proxy"
msgstr "Proxy ile sohbete mesaj atamazsın."
#: src/core/ChatProvider.js:384
#, javascript-format
msgid "You are sending messages too fast, you have to wait ${ waitTime }s :("
msgstr ""
"Çok hızlı mesaj gönderiyorsun, ${ waitTime } saniye beklemen gerekiyor."
#: src/core/ChatProvider.js:388
msgid "You don't have access to this channel"
msgstr ""
#: src/core/ChatProvider.js:404
msgid "Your mail has to be verified in order to chat"
msgstr ""
#: src/core/ChatProvider.js:409
msgid "You are permanently muted, join our guilded to apppeal the mute"
msgstr ""
#: src/core/ChatProvider.js:414
#, javascript-format
msgid "You are muted for another ${ timeMin } minutes"
msgstr ""
#: src/core/ChatProvider.js:416
msgid "You are muted for another ${ muted } seconds"
msgstr ""
#: src/core/ChatProvider.js:424
msgid "Ow no! Spam protection decided to mute you"
msgstr ""
#: src/core/ChatProvider.js:435
msgid "You can't send a message this long :("
msgstr ""
#: src/core/ChatProvider.js:439
msgid "Please use int channel"
msgstr ""
#: src/core/ChatProvider.js:443
msgid "Your country is temporary muted from chat"
msgstr ""
#: src/core/ChatProvider.js:451
msgid "Stop flooding."
msgstr ""
#: src/routes/reset_password.js:40
msgid "You sent an empty password or invalid data :("
msgstr ""
#: src/routes/reset_password.js:52
msgid "This password-reset link isn't valid anymore :("
msgstr ""
#: src/routes/reset_password.js:63
msgid "Your passwords do not match :("
msgstr ""
#: src/routes/reset_password.js:78
msgid "User doesn't exist in our database :("
msgstr ""
#: src/routes/reset_password.js:90
msgid "Passowrd successfully changed."
msgstr ""
#: src/routes/reset_password.js:109
msgid "Invalid url :( Please check your mail again."
msgstr ""
#: src/routes/reset_password.js:122
msgid ""
"This passwort reset link is wrong or already expired, please request a new "
"one (Note: you can use those links just once)"
msgstr ""
#: src/ssr-components/Globe.jsx:44
msgid "Double click on globe to go back."
msgstr ""
#: src/ssr-components/Globe.jsx:45
msgid "Loading..."
msgstr ""
#: src/ssr-components/Globe.jsx:51
msgid "PixelPlanet.Fun 3DGlobe"
msgstr ""
#: src/ssr-components/Globe.jsx:52
msgid "A 3D globe of our whole map"
msgstr ""
#: src/ssr-components/Main.jsx:70
msgid "PixelPlanet.fun"
msgstr ""
#: src/ssr-components/Main.jsx:72
msgid "Place color pixels on an map styled canvas with other players online"
msgstr ""
#: src/core/mail.js:65
#, javascript-format
msgid ""
"We already sent you a verification mail, you can request another one in "
"${ minLeft } minutes."
msgstr ""
#: src/core/mail.js:75
msgid "Welcome ${ name } to PixelPlanet, plese verify your mail"
msgstr ""
#: src/core/mail.js:77
#, javascript-format
msgid "Hello ${ name }"
msgstr ""
#: src/core/mail.js:78
msgid ""
"welcome to our little community of pixelplacers, to use your account, you "
"have to verify your mail. You can do that here: "
msgstr ""
#: src/core/mail.js:78
msgid "Click to Verify"
msgstr ""
#: src/core/mail.js:78 src/core/mail.js:128
msgid "Or by copying following url:"
msgstr ""
#: src/core/mail.js:79
msgid ""
"Have fun and don't hesitate to contact us if you encouter any problems :)"
msgstr ""
#: src/core/mail.js:80 src/core/mail.js:130
msgid "Thanks"
msgstr ""
#: src/core/mail.js:98
msgid ""
"We already sent you a mail with instructions. Please wait before requesting "
"another mail."
msgstr ""
#: src/core/mail.js:106
msgid "Couldn't find this mail in our database"
msgstr ""
#: src/core/mail.js:125
msgid "You forgot your password for PixelPlanet? Get a new one here"
msgstr ""
#: src/core/mail.js:127
msgid "Hello"
msgstr ""
#: src/core/mail.js:128
msgid ""
"You requested to get a new password. You can change your password within the "
"next 30min here: "
msgstr ""
#: src/core/mail.js:128 src/ssr-components/PasswordReset.jsx:19
#: src/ssr-components/PasswordReset.jsx:28
msgid "Reset Password"
msgstr ""
#: src/core/mail.js:129
#, javascript-format
msgid ""
"If you did not request this mail, please just ignore it (the ip that "
"requested this mail was ${ ip })."
msgstr ""
#: src/ssr-components/PasswordReset.jsx:21
#: src/ssr-components/RedirectionPage.jsx:15
msgid "Click here"
msgstr ""
#: src/ssr-components/PasswordReset.jsx:22
msgid "to go back to pixelplanet"
msgstr ""
#: src/ssr-components/PasswordReset.jsx:29
#, javascript-format
msgid "Hello ${ name }, you can set your new password here:"
msgstr ""
#: src/ssr-components/PasswordReset.jsx:33
msgid "New Password"
msgstr ""
#: src/ssr-components/PasswordReset.jsx:41
msgid "Confirm New Password"
msgstr ""
#: src/ssr-components/PasswordReset.jsx:47
msgid "Submit"
msgstr ""
#: src/ssr-components/PasswordReset.jsx:52
msgid "PixelPlanet.fun Password Reset"
msgstr ""
#: src/ssr-components/PasswordReset.jsx:53
msgid "Reset your password here"
msgstr ""
#: src/routes/api/captcha.js:22
msgid "No captcha text given"
msgstr ""
#: src/routes/api/captcha.js:27
msgid "No captcha id given"
msgstr ""
#: src/routes/api/auth/register.js:61 src/routes/api/captcha.js:41
msgid "You took too long, try again."
msgstr ""
#: src/routes/api/auth/register.js:64 src/routes/api/captcha.js:47
msgid "You failed your captcha"
msgstr ""
#: src/routes/api/auth/register.js:67 src/routes/api/captcha.js:53
msgid "Unknown Captcha Error"
msgstr ""
#: src/routes/api/captcha.js:60
msgid "Server error occured"
msgstr ""
#: src/routes/api/modtools.js:52
msgid "You are not logged in"
msgstr ""
#: src/routes/api/modtools.js:64
msgid "You are not allowed to access this page"
msgstr ""
#: src/routes/api/modtools.js:166
msgid "Just admins can do that"
msgstr ""
#: src/utils/validation.js:18
msgid "Email can't be empty."
msgstr ""
#: src/utils/validation.js:19
msgid "Email should be at least 5 characters long."
msgstr ""
#: src/utils/validation.js:20
msgid "Email can't be longer than 40 characters."
msgstr ""
#: src/utils/validation.js:21
msgid "Email should at least contain a dot"
msgstr ""
#: src/utils/validation.js:23
msgid "Email should contain a @"
msgstr ""
#: src/utils/validation.js:30
msgid "Name can't be empty."
msgstr ""
#: src/utils/validation.js:31
msgid "Name must be at least 2 characters long"
msgstr ""
#: src/utils/validation.js:32
msgid "Name must be shorter than 26 characters"
msgstr ""
#: src/utils/validation.js:39
msgid "Name contains invalid character like @, /, \\ or #"
msgstr ""
#: src/utils/validation.js:54
msgid "No password given."
msgstr ""
#: src/utils/validation.js:57
msgid "Password must be at least 6 characters long."
msgstr ""
#: src/utils/validation.js:60
msgid "Password must be shorter than 60 characters."
msgstr ""
#: src/routes/api/auth/register.js:33
msgid "No Captcha given"
msgstr ""
#: src/routes/api/auth/register.js:36
msgid "E-Mail already in use."
msgstr ""
#: src/routes/api/auth/register.js:38
msgid "Username already in use."
msgstr ""
#: src/routes/api/auth/register.js:91
msgid "Failed to create new user :("
msgstr ""
#: src/routes/api/auth/register.js:106
msgid "Failed to establish session after register :("
msgstr ""
#: src/routes/api/auth/logout.js:13
msgid "You are not even logged in."
msgstr ""
#: src/routes/api/auth/change_mail.js:41
#: src/routes/api/auth/change_passwd.js:37
#: src/routes/api/auth/delete_account.js:38
msgid "You are not authenticated."
msgstr ""
#: src/routes/api/auth/change_mail.js:50
#: src/routes/api/auth/change_passwd.js:46
#: src/routes/api/auth/delete_account.js:48
msgid "Incorrect password!"
msgstr ""
#: src/routes/api/auth/verify.js:25 src/routes/api/auth/verify.js:32
msgid "Mail verification"
msgstr ""
#: src/routes/api/auth/verify.js:26
msgid "You are now verified :)"
msgstr ""
#: src/routes/api/auth/verify.js:32
msgid ""
"Your mail verification code is invalid or already expired :(, please request "
"a new one."
msgstr ""
#: src/ssr-components/RedirectionPage.jsx:20
msgid "You will be automatically redirected after 15s"
msgstr ""
#: src/ssr-components/RedirectionPage.jsx:21
#, javascript-format
msgid "Or ${ clickHere } to go back to pixelplanet"
msgstr ""
#: src/ssr-components/RedirectionPage.jsx:25
msgid "PixelPlanet.fun Accounts"
msgstr ""
#: src/canvasesDesc.js:18
msgid "Earth"
msgstr ""
#: src/canvasesDesc.js:19
msgid "Moon"
msgstr ""
#: src/canvasesDesc.js:20
msgid "3D Canvas"
msgstr ""
#: src/canvasesDesc.js:21
msgid "Coronavirus"
msgstr ""
#: src/canvasesDesc.js:22
msgid "PixelZone"
msgstr ""
#: src/canvasesDesc.js:23
msgid "PixelCanvas"
msgstr ""
#: src/canvasesDesc.js:24
msgid "1bit"
msgstr ""
#: src/canvasesDesc.js:25
msgid "Top10"
msgstr ""
#: src/canvasesDesc.js:28
msgid "Our main canvas, a huge map of the world. Place everywhere you like"
msgstr ""
#: src/canvasesDesc.js:29
msgid ""
"Moon canvas. Safe space for art. No flags or large text (unless part of art) "
"or art larger than 1.5k x 1.5k pixels."
msgstr ""
#: src/canvasesDesc.js:30
msgid "Place Voxels on a 3D canvas with others"
msgstr ""
#: src/canvasesDesc.js:31
msgid "Special canvas to spread awareness of SARS-CoV2"
msgstr ""
#: src/canvasesDesc.js:32
msgid "Mirror of PixelZone"
msgstr ""
#: src/canvasesDesc.js:33
msgid "Mirror of PixelCanvas"
msgstr ""
#: src/canvasesDesc.js:34
msgid "Black and White canvas"
msgstr ""
#: src/canvasesDesc.js:35
msgid ""
"A canvas for the most active players from the the previous day. Daily "
"ranking updates at 00:00 UTC."
msgstr ""

1364
i18n/tr.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,6 @@
/* @flow */
/*
* class for chat communications
*/
import { Op } from 'sequelize';
import logger from './logger';
import redis from '../data/redis';
@ -310,7 +312,7 @@ export class ChatProvider {
this.mutedCountries.push(cc);
this.broadcastChatMessage(
'info',
`Country ${cc} has been muted by ${initiator}`,
`Country ${cc} has been muted from en by ${initiator}`,
channelId,
this.infoUserId,
);
@ -328,7 +330,7 @@ export class ChatProvider {
this.mutedCountries = this.mutedCountries.filter((c) => c !== cc);
this.broadcastChatMessage(
'info',
`Country ${cc} has been unmuted by ${initiator}`,
`Country ${cc} has been unmuted from en by ${initiator}`,
channelId,
this.infoUserId,
);
@ -337,7 +339,7 @@ export class ChatProvider {
if (this.mutedCountries.length) {
this.broadcastChatMessage(
'info',
`Countries ${this.mutedCountries} unmuted by ${initiator}`,
`Countries ${this.mutedCountries} unmuted from en by ${initiator}`,
channelId,
this.infoUserId,
);
@ -449,8 +451,10 @@ export class ChatProvider {
return t`Please use int channel`;
}
if (this.mutedCountries.includes(country)) {
return t`Your country is temporary muted from chat`;
if (channelId === this.enChannelId
&& this.mutedCountries.includes(country)
) {
return t`Your country is temporary muted from this chat channel`;
}
if (user.last_message && user.last_message === message) {

View File

@ -43,7 +43,11 @@ export default async (req, res, next) => {
let curEtag = chunkEtags.get(etagKey);
const preEtag = req.headers['if-none-match'];
if (curEtag && preEtag === curEtag) {
res.set({
'Cache-Control': `public, s-maxage=${60}, max-age=${40}`, // seconds
});
if (curEtag && preEtag && preEtag === curEtag) {
res.set({
ETag: curEtag,
});
@ -65,12 +69,10 @@ export default async (req, res, next) => {
return;
}
res.set({
'Cache-Control': `public, s-maxage=${60}, max-age=${40}`, // seconds
'Content-Type': 'application/octet-stream',
});
if (!chunk) {
res.set({
'Content-Type': 'application/octet-stream',
});
res.status(200).end();
return;
}

View File

@ -1,5 +1,5 @@
/*
* @flow
* provide location and lang specific features
*/
import ccCoords from '../data/countrycode-coords-array.json';
@ -11,7 +11,7 @@ import ccCoords from '../data/countrycode-coords-array.json';
* @param cc Two letter country code
* @return coords X/Y coordinates of the country on the canvas
*/
export function ccToCoords(cc: string) {
export function ccToCoords(cc) {
if (!cc) {
return [0, 0];
}
@ -56,16 +56,12 @@ export function languageFromLocalisation(localisation) {
*/
const lang2CC = {
en: 'gb',
de: 'de',
dz: 'bt',
hy: 'am',
uk: 'ua',
ru: 'ru',
fr: 'fr',
es: 'es',
ca: 'ct',
};
export function langCodeToCC(lang: string) {
export function langCodeToCC(lang) {
return lang2CC[lang] || lang;
}