Move language merge logic to i18n/index

This simplifies implementations one new languages
This commit is contained in:
Deluan 2020-04-15 21:37:02 -04:00 committed by Deluan Quintão
parent a6c9bf1b15
commit 3c4de3c8b5
4 changed files with 110 additions and 106 deletions

View File

@ -1,7 +1,7 @@
import React from 'react'
import { Provider } from 'react-redux'
import { createHashHistory } from 'history'
import { Admin, resolveBrowserLocale, Resource } from 'react-admin'
import { Admin, Resource } from 'react-admin'
import dataProvider from './dataProvider'
import authProvider from './authProvider'
import polyglotI18nProvider from 'ra-i18n-polyglot'
@ -21,7 +21,7 @@ import createAdminStore from './store/createAdminStore'
const i18nProvider = polyglotI18nProvider(
(locale) => (messages[locale] ? messages[locale] : messages.en),
localStorage.getItem('locale') || resolveBrowserLocale()
localStorage.getItem('locale') || 'en'
)
const history = createHashHistory()

View File

@ -1,13 +1,18 @@
import deepmerge from 'deepmerge'
import en from './en'
import pt from './pt'
// When adding a new translation, import it above and add it to the list bellow
const addLanguages = (lang) => {
Object.keys(lang).forEach((l) => (languages[l] = deepmerge(en, lang[l])))
}
const languages = { en }
const allLanguages = { en, pt }
// Add new languages to the object bellow
addLanguages({ pt })
// "Hack" to make "albumSongs" resource use the same translations as "song"
Object.keys(allLanguages).forEach(
(k) => (allLanguages[k].resources.albumSong = allLanguages[k].resources.song)
Object.keys(languages).forEach(
(k) => (languages[k].resources.albumSong = languages[k].resources.song)
)
export default allLanguages
export default languages

View File

@ -1,11 +1,7 @@
import deepmerge from 'deepmerge'
import en from './en'
import portugueseMessages from 'ra-language-portuguese'
export default deepmerge.all([
en,
portugueseMessages,
{
export default deepmerge(portugueseMessages, {
languageName: 'Português',
resources: {
song: {
@ -14,12 +10,15 @@ export default deepmerge.all([
title: 'Título',
artist: 'Artista',
album: 'Álbum',
path: 'Caminho',
path: 'Arquivo',
genre: 'Gênero',
compilation: 'Coletânea',
duration: 'Duração',
year: 'Ano',
trackNumber: '#'
playCount: 'Execuções',
trackNumber: '#',
size: 'Tamanho',
updatedAt: 'Últ. Atualização'
},
bulk: {
addToQueue: 'Play Later'
@ -30,9 +29,9 @@ export default deepmerge.all([
fields: {
name: 'Nome',
artist: 'Artista',
songCount: 'Songs',
songCount: 'Músicas',
genre: 'Gênero',
playCount: 'Plays',
playCount: 'Execuções',
compilation: 'Coletânea',
duration: 'Duração',
year: 'Ano'
@ -47,7 +46,8 @@ export default deepmerge.all([
artist: {
name: 'Artista |||| Artistas',
fields: {
name: 'Nome'
name: 'Nome',
albumCount: 'Total de Álbuns'
}
},
user: {
@ -109,5 +109,4 @@ export default deepmerge.all([
shufflePlay: 'Aleatório'
}
}
}
])
})

View File

@ -1,5 +1,5 @@
import { fetchUtils } from 'react-admin'
import baseUrl from "../utils/baseUrl"
import baseUrl from '../utils/baseUrl'
const url = (command, id, options) => {
const params = new URLSearchParams()