Move translations to server

This commit is contained in:
Deluan
2020-05-01 18:29:50 -04:00
committed by Deluan Quintão
parent 1a9663d432
commit 41cf99541d
19 changed files with 954 additions and 801 deletions
-148
View File
@@ -1,148 +0,0 @@
import deepmerge from 'deepmerge'
import englishMessages from 'ra-language-english'
export default deepmerge(englishMessages, {
languageName: 'English',
resources: {
song: {
name: 'Song |||| Songs',
fields: {
title: 'Title',
artist: 'Artist',
album: 'Album',
path: 'File Path',
genre: 'Genre',
compilation: 'Compilation',
duration: 'Time',
year: 'Year',
trackNumber: '#',
playCount: 'Plays',
size: 'File Size',
updatedAt: 'Updated At',
},
actions: {
playNow: 'Play Now',
addToQueue: 'Play Later',
},
},
album: {
name: 'Album |||| Albums',
fields: {
albumArtist: 'Album Artist',
name: 'Name',
artist: 'Artist',
songCount: 'Songs',
playCount: 'Plays',
genre: 'Genre',
compilation: 'Compilation',
duration: 'Duration',
year: 'Year',
},
actions: {
playAll: 'Play Now',
playNext: 'Play Next',
addToQueue: 'Play Later',
shuffle: 'Shuffle',
},
},
artist: {
name: 'Artist |||| Artists',
fields: {
name: 'Nome',
albumCount: 'Album Count',
},
},
user: {
name: 'User |||| Users',
fields: {
userName: 'Username',
name: 'Name',
isAdmin: 'Is Admin?',
lastLoginAt: 'Last Login',
updatedAt: 'Updated At',
},
},
player: {
name: 'Player |||| Players',
fields: {
name: 'Name',
transcodingId: 'Transcoding',
maxBitRate: 'Max BitRate',
client: 'Client',
userName: 'Username',
lastSeen: 'Last Seen',
},
},
transcoding: {
name: 'Transcoding |||| Transcodings',
fields: {
name: 'Name',
targetFormat: 'Target Format',
defaultBitRate: 'Default BitRate',
command: 'Command',
},
},
},
ra: {
auth: {
welcome1: 'Thanks for installing Navidrome!',
welcome2: 'To start, create an admin user',
confirmPassword: 'Confirm Password',
buttonCreateAdmin: 'Create Admin',
},
validation: {
invalidChars: 'Please only use letter and numbers',
passwordDoesNotMatch: 'Password does not match',
},
},
message: {
note: 'NOTE',
transcodingDisabled:
'Changing the transcoding configuration through the web interface is disabled for security ' +
'reasons. If you would like to change (edit or add) transcoding options, restart the server with ' +
'the %{config} configuration option.',
transcodingEnabled:
'Navidrome is currently running with %{config}, making it possible to run system ' +
'commands from the transcoding settings using the web interface. We recommend to disable it for security reasons ' +
'and only enable it when configuring Transcoding options.',
},
menu: {
library: 'Library',
settings: 'Settings',
version: 'Version %{version}',
theme: 'Theme',
personal: {
name: 'Personal',
options: {
theme: 'Theme',
language: 'Language',
},
},
},
player: {
playListsText: 'Play Queue',
openText: 'Open',
closeText: 'Close',
notContentText: 'No music',
clickToPlayText: 'Click to play',
clickToPauseText: 'Click to pause',
nextTrackText: 'Next track',
previousTrackText: 'Previous track',
reloadText: 'Reload',
volumeText: 'Volume',
toggleLyricText: 'Toggle lyric',
toggleMiniModeText: 'Minimize',
destroyText: 'Destroy',
downloadText: 'Download',
removeAudioListsText: 'Delete audio lists',
controllerTitle: '',
clickToDeleteText: `Click to delete %{name}`,
emptyLyricText: 'No lyric',
playModeText: {
order: 'In order',
orderLoop: 'Repeat',
singleLoop: 'Repeat One',
shufflePlay: 'Shuffle',
},
},
})
-127
View File
@@ -1,127 +0,0 @@
import deepmerge from 'deepmerge'
import frenchMessages from 'ra-language-french'
export default deepmerge(frenchMessages, {
languageName: 'Français',
resources: {
song: {
name: 'Piste |||| Pistes',
fields: {
title: 'Titre',
artist: 'Artiste',
album: 'Album',
path: 'Chemin',
genre: 'Genre',
compilation: 'Compilation',
duration: 'Durée',
year: 'Année',
playCount: "Nombre d'écoutes",
trackNumber: '#',
size: 'Taille',
updatedAt: 'Mise à jour',
},
actions: {
addToQueue: 'Ajouter à la file',
},
},
album: {
name: 'Album |||| Albums',
fields: {
name: 'Nom',
artist: 'Artiste',
songCount: 'Numéro de piste',
genre: 'Genre',
playCount: "Numbre d'écoutes",
compilation: 'Compilation',
duration: 'Durée',
year: 'Année',
},
actions: {
playAll: 'Lire',
playNext: 'Lire ensuite',
addToQueue: 'Ajouter à la file',
shuffle: 'Mélanger',
},
},
artist: {
name: 'Artiste |||| Artistes',
fields: {
name: 'Nom',
albumCount: "Nombre d'albums",
},
},
user: {
name: 'Utilisateur |||| Utilisateurs',
fields: {
userName: "Nom d'utilisateur",
isAdmin: 'Administrateur',
lastLoginAt: 'Dernière connexion',
updatedAt: 'Dernière mise à jour',
name: 'Nom',
},
},
player: {
name: 'Lecteur |||| Lecteurs',
fields: {
name: 'Nom',
transcodingId: 'Transcodage',
maxBitRate: 'Bitrate maximum',
client: 'Client',
userName: "Nom d'utilisateur",
lastSeen: 'Vu pour la dernière fois',
},
},
transcoding: {
name: 'Conversion |||| Conversions',
fields: {
name: 'Nom',
targetFormat: 'Format',
defaultBitRate: 'Bitrate par défaut',
command: 'Commande',
},
},
},
ra: {
auth: {
welcome1: "Merci d'avoir installé Navidrome !",
welcome2: 'Pour commencer, créez un compte administrateur',
confirmPassword: 'Confirmer votre mot de passe',
buttonCreateAdmin: 'Créer un compte administrateur',
},
validation: {
invalidChars: "Merci d'utiliser uniquement des chiffres et des lettres",
passwordDoesNotMatch: 'Les mots de passes ne correspondent pas',
},
},
menu: {
library: 'Bibliothèque',
settings: 'Paramètres',
version: 'Version%{version}',
personal: {
name: 'Paramètres personel',
options: {
theme: 'Thème',
language: 'Langue',
},
},
},
player: {
playListsText: 'File de lecture',
openText: 'Ouvrir',
closeText: 'Fermer',
clickToPlayText: 'Cliquer pour lire',
clickToPauseText: 'Cliquer pour mettre en pause',
nextTrackText: 'Morceau suivant',
previousTrackText: 'Morceau précédent',
volumeText: 'Volume',
toggleMiniModeText: 'Minimiser',
removeAudioListsText: 'Vider la liste de lecture',
clickToDeleteText: `Cliquer pour supprimer %{name}`,
playModeText: {
order: 'Ordonner',
orderLoop: 'Tout répéter',
singleLoop: 'Repéter',
shufflePlay: 'Aleatoire',
},
},
})
-22
View File
@@ -1,22 +0,0 @@
import deepmerge from 'deepmerge'
import en from './en'
import zh from './zh'
import fr from './fr'
import it from './it'
import nl from './nl'
import pt from './pt'
const addLanguages = (lang) => {
Object.keys(lang).forEach((l) => (languages[l] = deepmerge(en, lang[l])))
}
const languages = { en }
// Add new languages to the object below (please keep alphabetic sort)
addLanguages({ fr, it, nl, pt, zh })
// "Hack" to make "albumSongs" resource use the same translations as "song"
Object.keys(languages).forEach(
(k) => (languages[k].resources.albumSong = languages[k].resources.song)
)
export default languages
-128
View File
@@ -1,128 +0,0 @@
import deepmerge from 'deepmerge'
import italianMessages from 'ra-language-italian'
export default deepmerge(italianMessages, {
languageName: 'Italiano',
resources: {
song: {
name: 'Traccia |||| Tracce',
fields: {
title: 'Titolo',
artist: 'Artista',
album: 'Album',
path: 'Percorso',
genre: 'Genere',
compilation: 'Compilation',
duration: 'Durata',
year: 'Anno',
playCount: 'Riproduzioni',
trackNumber: '#',
size: 'Dimensioni',
updatedAt: 'Ultimo aggiornamento',
},
actions: {
playNow: 'Riproduci',
addToQueue: 'Aggiungi alla coda',
},
},
album: {
name: 'Album |||| Album',
fields: {
name: 'Nome',
artist: 'Artista',
songCount: 'Tracce',
genre: 'Genere',
playCount: 'Riproduzioni',
compilation: 'Compilation',
duration: 'Durata',
year: 'Anno',
},
actions: {
playAll: 'Riproduci',
playNext: 'Riproduci come successivo',
addToQueue: 'Aggiungi alla coda',
shuffle: 'Riprodici casualmente',
},
},
artist: {
name: 'Artista |||| Artisti',
fields: {
name: 'Nome',
albumCount: 'Album',
},
},
user: {
name: 'Utente |||| Utenti',
fields: {
userName: 'Utente',
isAdmin: 'Amministratore',
lastLoginAt: 'Ultimo accesso',
updatedAt: 'Ultima modifica',
name: 'Nome',
},
},
player: {
name: 'Client |||| Client',
fields: {
name: 'Nome',
transcodingId: 'Transcodifica',
maxBitRate: 'Bitrate massimo',
client: 'Applicazione',
userName: 'Utente',
lastSeen: 'Ultimo acesso',
},
},
transcoding: {
name: 'Transcodifica |||| Transcodifiche',
fields: {
name: 'Nome',
targetFormat: 'Formato',
defaultBitRate: 'Bitrate predefinito',
command: 'Comando',
},
},
},
ra: {
auth: {
welcome1: 'Grazie per aver installato Navidrome!',
welcome2: 'Per iniziare, crea un amministratore',
confirmPassword: 'Conferma la password',
buttonCreateAdmin: 'Crea amministratore',
},
validation: {
invalidChars: 'Per favore usa solo lettere e numeri',
passwordDoesNotMatch: 'Le password non coincidono',
},
},
menu: {
library: 'Libreria',
settings: 'Impostazioni',
version: 'Versione %{version}',
personal: {
name: 'Personale',
options: {
theme: 'Tema',
language: 'Lingua',
},
},
},
player: {
playListsText: 'Coda',
openText: 'Apri',
closeText: 'Chiudi',
clickToPlayText: 'Clicca per riprodurre',
clickToPauseText: 'Clicca per mettere in pausa',
nextTrackText: 'Traccia successiva',
previousTrackText: 'Traccia precedente',
volumeText: 'Volume',
toggleMiniModeText: 'Minimizza',
removeAudioListsText: 'Cancella coda',
clickToDeleteText: `Clicca per rimuovere %{name}`,
playModeText: {
order: 'In ordine',
orderLoop: 'Ripeti',
singleLoop: 'Ripeti una volta',
shufflePlay: 'Casuale',
},
},
})
-86
View File
@@ -1,86 +0,0 @@
import deepmerge from 'deepmerge'
import englishMessages from 'ra-language-dutch'
export default deepmerge(englishMessages, {
languageName: 'Nederlands',
resources: {
song: {
name: 'Nummer |||| Nummers',
fields: {
albumArtist: 'Album Artiest',
duration: 'Tijd',
trackNumber: 'Nummer #',
playCount: 'Aantal keren afgespeeld',
},
actions: {
addToQueue: 'Toevoegen aan afspeellijst',
},
},
album: {
fields: {
albumArtist: 'Album Artiest',
artist: 'Artiest',
duration: 'Tijd',
songCount: 'Nummerss',
playCount: 'Aantal keren afgespeeld',
},
actions: {
playAll: 'Afspelen',
playNext: 'Hierna afspelen',
addToQueue: 'Toevoegen aan afspeellijst',
shuffle: 'Shuffle',
},
},
},
ra: {
auth: {
welcome1: 'Bedankt voor het installeren van Navidrome!',
welcome2: 'Maak om te beginnen een beheerdersaccount',
confirmPassword: 'Bevestig wachtwoord',
buttonCreateAdmin: 'Beheerder maken',
},
validation: {
invalidChars: 'Gebruik alleen letters en cijfers',
passwordDoesNotMatch: 'Wachtwoord komt niet overeen',
},
},
menu: {
library: 'Bibliotheek',
settings: 'Instellingen',
version: 'Versie %{version}',
theme: 'Thema',
personal: {
name: 'Persoonlijk',
options: {
theme: 'Thema',
language: 'Taal',
},
},
},
player: {
playListsText: 'Afspeellijst afspelen',
openText: 'Openen',
closeText: 'Sluiten',
notContentText: 'Geen muziek',
clickToPlayText: 'Klik om af te spelen',
clickToPauseText: 'Klik om te pauzeren',
nextTrackText: 'Volgende',
previousTrackText: 'Vorige',
reloadText: 'Herladen',
volumeText: 'Volume',
toggleLyricText: 'Songtekst aan/uit',
toggleMiniModeText: 'Minimaliseren',
destroyText: 'Vernietigen',
downloadText: 'Downloaden',
removeAudioListsText: 'Audiolijsten verwijderen',
controllerTitle: '',
clickToDeleteText: `Klik om %{name} te verwijderen`,
emptyLyricText: 'Geen songtekst',
playModeText: {
order: 'In volgorde',
orderLoop: 'Herhalen',
singleLoop: 'Herhaal Eenmalig',
shufflePlay: 'Shuffle',
},
},
})
-131
View File
@@ -1,131 +0,0 @@
import deepmerge from 'deepmerge'
import portugueseMessages from 'ra-language-portuguese'
export default deepmerge(portugueseMessages, {
languageName: 'Português',
resources: {
song: {
name: 'Música |||| Músicas',
fields: {
title: 'Título',
artist: 'Artista',
album: 'Álbum',
path: 'Arquivo',
genre: 'Gênero',
compilation: 'Coletânea',
duration: 'Duração',
year: 'Ano',
playCount: 'Execuções',
trackNumber: '#',
size: 'Tamanho',
updatedAt: 'Últ. Atualização',
},
actions: {
playNow: 'Tocar agora',
addToQueue: 'Tocar por último',
},
},
album: {
name: 'Álbum |||| Álbuns',
fields: {
name: 'Nome',
artist: 'Artista',
songCount: 'Músicas',
genre: 'Gênero',
playCount: 'Execuções',
compilation: 'Coletânea',
duration: 'Duração',
year: 'Ano',
},
actions: {
playAll: 'Tocar',
playNext: 'Tocar em seguida',
addToQueue: 'Tocar no fim',
shuffle: 'Aleatório',
},
},
artist: {
name: 'Artista |||| Artistas',
fields: {
name: 'Nome',
albumCount: 'Total de Álbuns',
},
},
user: {
name: 'Usuário |||| Usuários',
fields: {
userName: 'Usuário',
isAdmin: 'Admin?',
lastLoginAt: 'Últ. Login',
updatedAt: 'Últ. Atualização',
name: 'Nome',
},
},
player: {
name: 'Tocador |||| Tocadores',
fields: {
name: 'Nome',
transcodingId: 'Conversão',
maxBitRate: 'Bitrate máx',
client: 'Cliente',
userName: 'Usuário',
lastSeen: 'Últ. acesso',
},
},
transcoding: {
name: 'Conversão |||| Conversões',
fields: {
name: 'Nome',
targetFormat: 'Formato',
defaultBitRate: 'Bitrate padrão',
command: 'Comando',
},
},
},
ra: {
auth: {
welcome1: 'Obrigado por instalar Navidrome!',
welcome2: 'Para iniciar, crie um usuário admin',
confirmPassword: 'Confirme a senha',
buttonCreateAdmin: 'Criar Admin',
},
validation: {
invalidChars: 'Somente use letras e numeros',
passwordDoesNotMatch: 'Senha não confere',
},
page: {
create: 'Criar %{name}',
},
},
menu: {
library: 'Biblioteca',
settings: 'Configurações',
version: 'Versão %{version}',
personal: {
name: 'Pessoal',
options: {
theme: 'Tema',
language: 'Língua',
},
},
},
player: {
playListsText: 'Fila de Execução',
openText: 'Abrir',
closeText: 'Fechar',
clickToPlayText: 'Clique para tocar',
clickToPauseText: 'Clique para pausar',
nextTrackText: 'Próxima faixa',
previousTrackText: 'Faixa anterior',
volumeText: 'Volume',
toggleMiniModeText: 'Minimizar',
removeAudioListsText: 'Limpar fila de execução',
clickToDeleteText: `Clique para remover %{name}`,
playModeText: {
order: 'Em ordem',
orderLoop: 'Repetir tudo',
singleLoop: 'Repetir',
shufflePlay: 'Aleatório',
},
},
})
-136
View File
@@ -1,136 +0,0 @@
import deepmerge from 'deepmerge'
import chineseMessages from 'ra-language-chinese'
export default deepmerge(chineseMessages, {
languageName: '简体中文',
resources: {
song: {
name: '歌曲 |||| 曲库',
fields: {
title: '标题',
artist: '歌手',
album: '专辑',
path: '路径',
genre: '类型',
compilation: '收录',
albumArtist: '专辑歌手',
duration: '时长',
year: '年份',
playCount: '播放次数',
trackNumber: '音轨 #',
size: '大小',
updatedAt: '上次更新',
},
actions: {
addToQueue: '稍后播放',
},
},
album: {
name: '专辑 |||| 专辑',
fields: {
name: '名称',
albumArtist: '专辑歌手',
artist: '歌手',
duration: '时长',
songCount: '曲目数',
playCount: '播放次数',
compilation: '合辑',
year: '年份',
},
actions: {
playAll: '播放',
playNext: '播放下一首',
addToQueue: '稍后播放',
shuffle: '刷新',
},
},
artist: {
name: '歌手 |||| 歌手',
fields: {
name: '名称',
albumCount: '歌手数',
},
},
user: {
name: '用户 |||| 用户',
fields: {
userName: '用户名',
isAdmin: '管理员',
lastLoginAt: '最后一次访问',
updatedAt: '上次修改',
name: '名称',
},
},
player: {
name: '用户 |||| 用户',
fields: {
name: '名称',
transcodingId: '转码',
maxBitRate: '最大比特率',
client: '应用程序',
userName: '用户',
lastSeen: '最后一次访问',
},
},
transcoding: {
name: '转码 |||| 转码',
fields: {
name: '名称',
targetFormat: '格式',
defaultBitRate: '默认比特率',
command: '命令',
},
},
},
ra: {
auth: {
welcome1: '感谢您安装Navidrome!',
welcome2: '为了开始使用,请创建一个管理员账户',
confirmPassword: '确认密码',
buttonCreateAdmin: '创建管理员',
},
validation: {
invalidChars: '请只使用字母和数字',
passwordDoesNotMatch: '密码不匹配',
},
},
menu: {
library: '曲库',
settings: '设置',
version: '版本 %{version}',
theme: '主题',
personal: {
name: '个性化',
options: {
theme: '主题',
language: '语言',
},
},
},
player: {
playListsText: '播放队列',
openText: '打开',
closeText: '关闭',
notContentText: '无音乐',
clickToPlayText: '点击播放',
clickToPauseText: '点击暂停',
nextTrackText: '下一首',
previousTrackText: '上一首',
reloadText: 'Reload',
volumeText: '音量',
toggleLyricText: '切换歌词',
toggleMiniModeText: '最小化',
destroyText: '损坏',
downloadText: '下载',
removeAudioListsText: '清空播放列表',
controllerTitle: '',
clickToDeleteText: `点击删除 %{name}`,
emptyLyricText: '无歌词',
playModeText: {
order: '顺序播放',
orderLoop: '列表循环',
singleLoop: '单曲循环',
shufflePlay: '随机播放',
},
},
})