diff --git a/server/locale.json b/server/locale.json new file mode 100644 index 0000000..d2bc235 --- /dev/null +++ b/server/locale.json @@ -0,0 +1,110 @@ +{ + "scrabble-name": { + "en": "Scrabble", + "es": "Scrabble", + "pt": "Scrabble" + }, + "username": { + "en": "Username", + "es": "Nombre de usuario", + "pt": "Nome de usuàrio" + }, + "button-singleplayer": { + "en": "Play singleplayer", + "es": "Jugar a un(a) jugador(a)", + "pt": "Jogar singleplayer" + }, + "button-submit": { + "en": "Submit", + "es": "Enviar", + "pt": "Enviar" + }, + "status-connected": { + "en": "Connected", + "es": "Conectado(a)", + "pt": "Conectado(a)" + }, + + + "error-bold": { + "en": "ERROR", + "es": "ERRO", + "pt": "ERROR" + }, + "error-no-username": { + "en": "Username not present", + "es": "Nombre de usuario no esta presente", + "pt": "Nome de usuário não esta presente" + }, + "error-invalid-username": { + "en": "Invalid username", + "es": "Nombre de usuario no es válido", + "pt": "Nome de usuário Inválido" + }, + "error-taken-username": { + "en": "Username taken", + "es": "Nombre de usuario no esta disponible", + "pt": "Nome de usuário já está em uso" + }, + "error-too-many-clients": { + "en": "Too many connections", + "es": "Demasiadas conexiones", + "pt": "Demasiadas conexões" + }, + "error-bad-intent": { + "en": "Client has no intent", + "es": "Cliente no tiene intención", + "pt": "Cliente não tem intenção" + }, + "error-unknown-uid": { + "en": "Unknown user ID", + "es": "", + "pt": "" + }, + "error-taken-user-connection": { + "en": "User already connected", + "es": "", + "pt": "" + }, + "error-illegal-user": { + "en": "Illegal user", + "es": "", + "pt": "" + }, + "error-malformed-lobby": { + "en": "Lobby malformed", + "es": "", + "pt": "" + }, + "error-taken-lobby-ownership": { + "en": "User already owns lobby", + "es": "", + "pt": "" + }, + "error-illegal-lobby": { + "en": "Illegal lobby", + "es": "", + "pt": "" + }, + "error-cannot-join-lobby": { + "en": "Cannot join lobby", + "es": "", + "pt": "" + }, + "error-lobby-not-exist": { + "en": "Lobby does not exist", + "es": "", + "pt": "" + }, + "error-lobby-join": { + "en": "Cannot join lobby", + "es": "", + "pt": "" + }, + + + + "en": "", + "es": "", + "pt": "" +} diff --git a/server/src/game-registrar.js b/server/src/game-registrar.js index ac0b545..60ea562 100644 --- a/server/src/game-registrar.js +++ b/server/src/game-registrar.js @@ -56,7 +56,8 @@ function CountIPs(ip) function ValidUsername(username) { - if (username.match(/[^A-Za-z0-9_-]/)) + // \p{L} includes international letters + if (username.match(/[^A-Za-z0-9_-]\p{L}/)) { return false; } @@ -147,7 +148,7 @@ function GetUserbyConnection(connectionid) // TODO: User intent function UserConnect(useruid, connectionid) { - if (OnlineUsers[useruid].state === 'CONNECTED') return 'User Already Connected'; + if (OnlineUsers[useruid].state === 'CONNECTED') return 'error-taken-user-connection'; OnlineUsers[useruid].connectionid = connectionid; OnlineUsers[useruid].state = 'CONNECTED'; diff --git a/server/src/locale.js b/server/src/locale.js index 98f2015..36b262d 100644 --- a/server/src/locale.js +++ b/server/src/locale.js @@ -4,7 +4,7 @@ let locales = {}; function init() { - locales = JSON.parse(FS.readFileSync('src/locale.json')); + locales = JSON.parse(FS.readFileSync('./locale.json')); } function GetLocaleListJSON() diff --git a/server/src/locale.json b/server/src/locale.json deleted file mode 100644 index f0ce623..0000000 --- a/server/src/locale.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "scrabble-name": { - "en": "Scrabble", - "es": "Scrabble", - "pt": "Scrabble" - }, - "username": { - "en": "Username", - "es": "Nombre de usuario", - "pt": "Nome de usuàrio" - }, - "button-singleplayer": { - "en": "Play singleplayer", - "es": "Jugar a un(a) jugador(a)", - "pt": "Jogar singleplayer" - }, - "button-submit": { - "en": "Submit", - "es": "Enviar", - "pt": "Enviar" - }, - "status-connected": { - "en": "Connected", - "es": "", - "pt": "" - }, - - - "error-bold": { - "en": "ERROR", - "es": "ERRO", - "pt": "ERROR" - }, - "error-no-username": { - "en": "Username not present", - "es": "", - "pt": "" - }, - "error-invalid-username": { - "en": "Invalid username", - "es": "", - "pt": "" - }, - "error-taken-username": { - "en": "Username taken", - "es": "", - "pt": "" - }, - "error-too-many-clients": { - "en": "Too many clients", - "es": "", - "pt": "" - }, - - - - "en": "", - "es": "", - "pt": "" -} diff --git a/server/src/socketserver.js b/server/src/socketserver.js index 96f2466..2faaa87 100644 --- a/server/src/socketserver.js +++ b/server/src/socketserver.js @@ -67,14 +67,14 @@ function ClientIdentify(socket, args) if (!intent) { - err.addError(400, 'Bad Request', 'Client has no intent'); + err.addError(400, 'Bad Request', 'error-bad-intent'); socket.emit('identify-error', err.toError); return; } if (!user) { - err.addError(400, 'Bad Request', 'Unknown uid'); + err.addError(400, 'Bad Request', 'error-unknown-uid'); socket.emit('identify-error', err.toError); return; } @@ -88,14 +88,14 @@ function ClientIdentify(socket, args) socket.emit('identify-success', {connected: true, user: user}); return; } - else if (status === 'User Already Connected') + else if (status === 'error-taken-user-connection') { - err.addError(500, 'Internal Server Error', 'User already connected'); + err.addError(500, 'Internal Server Error', 'error-taken-user-connection'); socket.emit('identify-error', err.toError); return; } else { - err.addError(500, 'Internal Server Error', 'Illegal user'); + err.addError(500, 'Internal Server Error', 'error-illegal-user'); socket.emit('identify-error', err.toError); return; } @@ -125,7 +125,7 @@ function LobbyCreate(socket, args) const user = Game.Registrar.GetUserbyConnection(socket.id); if (!user || user.uid != useruid) { - err.addError(403, 'Forbidden', 'Illegal user'); + err.addError(403, 'Forbidden', 'error-illegal-user'); socket.emit('lobby-create-error', err.toError); return; } @@ -133,7 +133,7 @@ function LobbyCreate(socket, args) // Make sure user isn't already in a lobby or owns one if (!Game.Lobbies.CheckUserAvailability(useruid)) { - err.addError(400, 'Bad Request', 'User already owns lobby'); + err.addError(400, 'Bad Request', 'error-taken-lobby-ownership'); socket.emit('lobby-create-error', err.toError); return; } @@ -142,7 +142,7 @@ function LobbyCreate(socket, args) if (!lobby) { - err.addError(500, 'Internal Server Error', 'Illegal lobby'); + err.addError(500, 'Internal Server Error', 'error-illegal-lobby'); socket.emit('lobby-create-error', err.toError); return; } @@ -153,14 +153,14 @@ function LobbyCreate(socket, args) const lobbyJoined = Game.Lobbies.UserJoinLobby(lobby.uid, useruid, LobbyUpdateCallback); if (!lobbyJoined) { - err.addError(403, 'Forbidden', 'Cannot join lobby'); + err.addError(403, 'Forbidden', 'error-cannot-join-lobby'); socket.emit('lobby-create-error', err.toError); return; } if (lobbyJoined.uid !== lobby.uid) { - err.addError(500, 'Internal Server Error', 'Illegal lobby'); + err.addError(500, 'Internal Server Error', 'error-illegal-lobby'); socket.emit('lobby-create-error', err.toError); return; } @@ -177,14 +177,14 @@ function LobbyJoin(socket, args) if (!useruid) { - err.addError(400, 'Bad Request', 'Unknown uid'); + err.addError(400, 'Bad Request', 'error-unknown-uid'); socket.emit('lobby-join-error', err.toError); return; } if (!args.lobbyuid || args.joinAsSpectator === undefined) { - err.addError(400, 'Bad Request', 'Lobby malformed'); + err.addError(400, 'Bad Request', 'error-malformed-lobby'); socket.emit('lobby-join-error', err.toError); return; } @@ -193,7 +193,7 @@ function LobbyJoin(socket, args) const user = Game.Registrar.GetUserbyConnection(socket.id); if (!user || user.uid != useruid) { - err.addError(403, 'Forbidden', 'Illegal user'); + err.addError(403, 'Forbidden', 'error-illegal-user'); socket.emit('lobby-join-error', err.toError); return; } @@ -201,7 +201,7 @@ function LobbyJoin(socket, args) // Make sure user isn't already in a lobby if (!Game.Lobbies.CheckUserAvailability(useruid)) { - err.addError(400, 'Bad Request', 'User already owns lobby'); + err.addError(400, 'Bad Request', 'Uerror-taken-lobby-ownership'); socket.emit('lobby-join-error', err.toError); return; } @@ -209,7 +209,7 @@ function LobbyJoin(socket, args) const lobby = Game.Lobbies.GetLobbyByUID(args.lobbyuid); if (!lobby) { - err.addError(400, 'Bad Request', 'Lobby does not exist'); + err.addError(400, 'Bad Request', 'error-lobby-not-exist'); socket.emit('lobby-join-error', err.toError); return; } @@ -223,7 +223,7 @@ function LobbyJoin(socket, args) if (!status) { - err.addError(403, 'Forbidden', 'Cannot join lobby'); + err.addError(403, 'Forbidden', 'error-lobby-join'); socket.emit('lobby-join-error', err.toError); return; }