translation scripts

This commit is contained in:
Ben Kyd
2021-04-03 23:00:43 +01:00
parent 5e92353a70
commit 596d795b5f
9 changed files with 246 additions and 9 deletions

11
data/README.md Normal file
View File

@@ -0,0 +1,11 @@
### language files
Language files start on the line after 4 hyphens, everything prior is metadata about the language. Some will be parsed by the locale parser
Locales are defined by their locale code, the translations are seperated by a colon (:) after the locale code.
Sometimes context clues may be neccesary for an accurate translation, everything after a semicolon won't be interpreted by the parser, therefore context clues can be given. These will be defined in the english (en) file
Capitalisation is also important, if the english words are capitalised, the translations need to be capitalised in the same (if it makes sense) place

59
data/en.lang Normal file
View File

@@ -0,0 +1,59 @@
language:en
country:Britain
----
button-back:back; (Action) to go back (a page)
button-create:create
button-join:join; (Action) to join
button-leave-lobby:Leave Lobby
button-send:send; (Action) to send a message
button-singleplayer:Play singleplayer
button-start-game:Start Game
button-submit:Submit; (Action) to submit (a) message
connection-waiting:Waiting for connection
error-bad-intent:Client has no intent
error-bold:ERROR
error-cannot-join-lobby:Cannot join lobby
error-creating-lobby:An error occurred while creating the lobby
error-illegal-lobby:Illegal lobby
error-illegal-user:Illegal user
error-invalid-username:Invalid username
error-lobby-id-required:A lobby ID is required
error-lobby-joining:An error occurred while joining the lobby
error-lobby-name-required:A name is requred
error-lobby-not-exist:Lobby does not exist
error-malformed-lobby:Lobby malformed
error-no-username:Username not present; there is no username
error-taken-lobby-ownership:User already owns lobby
error-taken-user-connection:User already connected
error-taken-username:Username taken
error-too-many-clients:Too many connections
error-unknown-uid:Unknown user ID
game-lobby:create or join a game
joined:joined; (Action) of joining something (a game)
left:left; (Action) of leaving
left-lobby:left lobby; (Action) of leaving the (lobby)
lobby:Lobby
lobby-allow-spectators:allow spectators
lobby-code:lobby code
lobby-create:Create Lobby
lobby-created:created lobby
lobby-created-joining:Lobby created, Joining...
lobby-deleted:deleted lobby
lobby-join:Join Lobby
lobby-join-code:Join Code
lobby-join-spectator:join as spectator
lobby-joined:joined lobby
lobby-joining:joining lobby
lobby-private:private lobby
log-console:log console
message:message; (noun) piece of text
name:name
players:Players
scrabble-name:Scrabble
spectators:Spectators
status:Status; (noun) position
status-connected:Connected
status-connected-as:Connected as
status-disconnected:Disconnected
username:Username
visibility:Visibility

59
data/es.lang Normal file
View File

@@ -0,0 +1,59 @@
language:es
country:España
----
button-back:regresar
button-create:crear
button-join:participar
button-leave-lobby:Salir del Lobby
button-send:enviar
button-singleplayer:Jugar a un(a) jugador(a)
button-start-game:Empezar Juego
button-submit:Enviar
connection-waiting:Esperando la conexión
error-bad-intent:Cliente no tiene intención
error-bold:ERRO
error-cannot-join-lobby:No se puede unir al lobby
error-creating-lobby:Ocurrió un error al crear el lobby
error-illegal-lobby:Lobby ilegal
error-illegal-user:Usuario ilegal
error-invalid-username:Nombre de usuario no es válido
error-lobby-id-required:Se requiere un lobby ID
error-lobby-joining:Ocurrió un error al conectarse al lobby
error-lobby-name-required:Se requiere un nombre
error-lobby-not-exist:Lobby no existe
error-malformed-lobby:Lobby malformado
error-no-username:Nombre de usuario no esta presente
error-taken-lobby-ownership:Usuario ya tiene lobby
error-taken-user-connection:Usuario ya está conectado/a
error-taken-username:Nombre de usuario no esta disponible
error-too-many-clients:Demasiadas conexiones
error-unknown-uid:ID de usuario desconocido
game-lobby:crea o conecta a un juego
joined:conectado(a)
left:salió
left-lobby:salió del lobby
lobby:Lobby
lobby-allow-spectators:permitir espectadores
lobby-code:código de lobby
lobby-create:Crear Lobby
lobby-created:lobby creado
lobby-created-joining:Lobby creado, Conectando...
lobby-deleted:lobby eliminado
lobby-join:Conectarse al Lobby
lobby-join-code:Código para Conectar
lobby-join-spectator:conectar como espectador(a)
lobby-joined:entró en el lobby
lobby-joining:entrando al lobby
lobby-private:lobby privado
log-console:consola de log
message:mensaje
name:nombre
players:Jugadores
scrabble-name:Scrabble
spectators:Espectadores
status:Status
status-connected:Conectado(a)
status-connected-as:Conectado/a como
status-disconnected:Desconectado/a
username:Nombre de usuario
visibility:Visibilidad

View File

@@ -6,8 +6,8 @@
},
"game-lobby": {
"en": "create or join a game",
"es": "Crea o conecta a un juego",
"pt": "Crie ou entre em um jogo"
"es": "crea o conecta a un juego",
"pt": "crie ou entre em um jogo"
},
"name": {
"en": "name",

59
data/pt.lang Normal file
View File

@@ -0,0 +1,59 @@
language:pt
country:Portugal
----
button-back:voltar
button-create:criar
button-join:entrar
button-leave-lobby:Sair do Lobby
button-send:enviar
button-singleplayer:Jogar singleplayer
button-start-game:Começar Jogo
button-submit:Enviar
connection-waiting:Aguardando conexão
error-bad-intent:Cliente não tem intenção
error-bold:ERROR
error-cannot-join-lobby:Não é possível entrar no lobby
error-creating-lobby:Ocorreu um erro ao criar o lobby
error-illegal-lobby:Lobby ilegal
error-illegal-user:Usuário ilegal
error-invalid-username:Nome de usuário Inválido
error-lobby-id-required:É necessário um lobby ID
error-lobby-joining:Ocorreu um erro ao entrar no lobby
error-lobby-name-required:Um nome é obrigatório
error-lobby-not-exist:Lobby não existe
error-malformed-lobby:Lobby malformado
error-no-username:Nome de usuário não esta presente
error-taken-lobby-ownership:Usuário já tem um lobby
error-taken-user-connection:Usuário já está conectado/a
error-taken-username:Nome de usuário já está em uso
error-too-many-clients:Demasiadas conexões
error-unknown-uid:ID de usuário desconhecido
game-lobby:crie ou entre em um jogo
joined:juntou
left:saiu
left-lobby:saiu do lobby
lobby:Lobby
lobby-allow-spectators:permitir espectadores
lobby-code:código do lobby
lobby-create:Criar Lobby
lobby-created:Lobby criado
lobby-created-joining:Lobby criaso, Juntando-se...
lobby-deleted:lobby apagado
lobby-join:Conectar ao Lobby
lobby-join-code:Código para Conectar
lobby-join-spectator:junte-se como espectador
lobby-joined:entrou no lobby
lobby-joining:entrando no lobby
lobby-private:lobby privado
log-console:console de log
message:mensagem
name:nome
players:Jogadores
scrabble-name:Scrabble
spectators:Espectadores
status:Status
status-connected:Conectado(a)
status-connected-as:Conectado/a como
status-disconnected:Desconectado/a
username:Nome de usuàrio
visibility:Visibilidade

View File

@@ -8,13 +8,6 @@
},
"author": "Ben Kyd <benjaminkyd@gmail.com> (https://benkyd.co.uk)",
"license": "UNLICENSED",
// "eslintConfig": {
// "extends": "portsoc",
// "root": true,
// "env": {
// "browser": true
// }
// },
"dependencies": {
"eslint": "^7.23.0",
"eslint-config-portsoc": "^0.8.1"

View File

@@ -0,0 +1,54 @@
// to take the locale.json and split into seperate langauge files for
// easy contribution of translations
// DOES NOT PARSE, WILL OVERWRITE LANG FILES
const fs = require('fs');
const localeJSONRaw = fs.readFileSync('../data/locale.json');
const localeJSON = JSON.parse(localeJSONRaw);
let localeCodes = [];
let languages = [];
for (const localeCode in localeJSON)
{
localeCodes.push(localeCode);
for (const lang in localeJSON[localeCode])
{
if (!languages.includes(lang))
languages.push(lang);
}
}
// good enough lol
localeCodes = localeCodes.sort();
for (let lang in languages)
{
// if there is already a language file for this language, parse it and only put in the new locale codes
// if (fs.existsSync(`../data/${languages[lang]}.lang`))
// {
// let localeCodesFromLangFile = fs.readFileSync(`../data/${languages[lang]}.lang`).toString();
// localeCodesFromLangFile = localeCodesFromLangFile.split('----')[1].split('\n');
// console.log(localeCodesFromLangFile);
// }
let toWrite = '';
for (const code of localeCodes)
{
if (localeJSON[code][languages[lang]])
{
toWrite += code + ':' + localeJSON[code][languages[lang]] + '\n';
} else
{
toWrite += code + ':' + localeJSON[code]['en'] + '\n';
}
}
fs.writeFileSync(`../data/${languages[lang]}.lang`, toWrite);
}

0
scripts/newLocale.js Normal file
View File

View File

@@ -0,0 +1,2 @@