Fix NavBar title translations
This commit is contained in:
@@ -67,7 +67,9 @@ const AlbumList = (props) => {
|
|||||||
return (
|
return (
|
||||||
<List
|
<List
|
||||||
{...props}
|
{...props}
|
||||||
title={<Title subTitle={'Albums'} />}
|
title={
|
||||||
|
<Title subTitle={'resources.album.name'} args={{ smart_count: 2 }} />
|
||||||
|
}
|
||||||
exporter={false}
|
exporter={false}
|
||||||
bulkActionButtons={false}
|
bulkActionButtons={false}
|
||||||
actions={<AlbumListActions />}
|
actions={<AlbumListActions />}
|
||||||
|
|||||||
@@ -25,7 +25,9 @@ const artistRowClick = (id) => {
|
|||||||
const ArtistList = (props) => (
|
const ArtistList = (props) => (
|
||||||
<List
|
<List
|
||||||
{...props}
|
{...props}
|
||||||
title={<Title subTitle={'Artists'} />}
|
title={
|
||||||
|
<Title subTitle={'resources.artist.name'} args={{ smart_count: 2 }} />
|
||||||
|
}
|
||||||
sort={{ field: 'name', order: 'ASC' }}
|
sort={{ field: 'name', order: 'ASC' }}
|
||||||
exporter={false}
|
exporter={false}
|
||||||
bulkActionButtons={false}
|
bulkActionButtons={false}
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { useMediaQuery } from '@material-ui/core'
|
import { useMediaQuery } from '@material-ui/core'
|
||||||
|
import { useTranslate } from 'react-admin'
|
||||||
|
|
||||||
const Title = ({ subTitle }) => {
|
const Title = ({ subTitle, args }) => {
|
||||||
|
const translate = useTranslate()
|
||||||
const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('md'))
|
const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('md'))
|
||||||
|
const text = translate(subTitle, { ...args, _: subTitle })
|
||||||
|
|
||||||
if (isDesktop) {
|
if (isDesktop) {
|
||||||
return <span>Navidrome {subTitle ? ` - ${subTitle}` : ''}</span>
|
return <span>Navidrome {text ? ` - ${text}` : ''}</span>
|
||||||
}
|
}
|
||||||
return <span>{subTitle ? subTitle : 'Navidrome'}</span>
|
return <span>{text ? text : 'Navidrome'}</span>
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Title
|
export default Title
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ export default deepmerge(englishMessages, {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
album: {
|
album: {
|
||||||
|
name: 'Album |||| Albums',
|
||||||
fields: {
|
fields: {
|
||||||
albumArtist: 'Album Artist',
|
albumArtist: 'Album Artist',
|
||||||
artist: 'Artist',
|
artist: 'Artist',
|
||||||
@@ -31,6 +32,18 @@ export default deepmerge(englishMessages, {
|
|||||||
shuffle: 'Shuffle',
|
shuffle: 'Shuffle',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
artist: {
|
||||||
|
name: 'Artist |||| Artists',
|
||||||
|
},
|
||||||
|
user: {
|
||||||
|
name: 'User |||| Users',
|
||||||
|
},
|
||||||
|
player: {
|
||||||
|
name: 'Player |||| Players',
|
||||||
|
},
|
||||||
|
transcoding: {
|
||||||
|
name: 'Transcoding |||| Transcodings',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
ra: {
|
ra: {
|
||||||
auth: {
|
auth: {
|
||||||
|
|||||||
@@ -92,6 +92,9 @@ export default deepmerge(portugueseMessages, {
|
|||||||
invalidChars: 'Somente use letras e numeros',
|
invalidChars: 'Somente use letras e numeros',
|
||||||
passwordDoesNotMatch: 'Senha não confere',
|
passwordDoesNotMatch: 'Senha não confere',
|
||||||
},
|
},
|
||||||
|
page: {
|
||||||
|
create: 'Criar %{name}',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
menu: {
|
menu: {
|
||||||
library: 'Biblioteca',
|
library: 'Biblioteca',
|
||||||
|
|||||||
@@ -7,11 +7,14 @@ import {
|
|||||||
SimpleForm,
|
SimpleForm,
|
||||||
SelectInput,
|
SelectInput,
|
||||||
ReferenceInput,
|
ReferenceInput,
|
||||||
|
useTranslate,
|
||||||
} from 'react-admin'
|
} from 'react-admin'
|
||||||
import { Title } from '../common'
|
import { Title } from '../common'
|
||||||
|
|
||||||
const PlayerTitle = ({ record }) => {
|
const PlayerTitle = ({ record }) => {
|
||||||
return <Title subTitle={`Player ${record ? record.name : ''}`} />
|
const translate = useTranslate()
|
||||||
|
const resourceName = translate('resources.player.name', { smart_count: 1 })
|
||||||
|
return <Title subTitle={`${resourceName} ${record ? record.name : ''}`} />
|
||||||
}
|
}
|
||||||
|
|
||||||
const PlayerEdit = (props) => (
|
const PlayerEdit = (props) => (
|
||||||
|
|||||||
@@ -13,7 +13,13 @@ import { SimpleList, Title } from '../common'
|
|||||||
const PlayerList = (props) => {
|
const PlayerList = (props) => {
|
||||||
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
|
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
|
||||||
return (
|
return (
|
||||||
<List title={<Title subTitle={'Players'} />} exporter={false} {...props}>
|
<List
|
||||||
|
title={
|
||||||
|
<Title subTitle={'resources.player.name'} args={{ smart_count: 2 }} />
|
||||||
|
}
|
||||||
|
exporter={false}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
{isXsmall ? (
|
{isXsmall ? (
|
||||||
<SimpleList
|
<SimpleList
|
||||||
primaryText={(r) => r.client}
|
primaryText={(r) => r.client}
|
||||||
|
|||||||
@@ -36,7 +36,9 @@ const SongList = (props) => {
|
|||||||
return (
|
return (
|
||||||
<List
|
<List
|
||||||
{...props}
|
{...props}
|
||||||
title={<Title subTitle={'Songs'} />}
|
title={
|
||||||
|
<Title subTitle={'resources.song.name'} args={{ smart_count: 2 }} />
|
||||||
|
}
|
||||||
sort={{ field: 'title', order: 'ASC' }}
|
sort={{ field: 'title', order: 'ASC' }}
|
||||||
exporter={false}
|
exporter={false}
|
||||||
bulkActionButtons={<SongBulkActions />}
|
bulkActionButtons={<SongBulkActions />}
|
||||||
|
|||||||
@@ -5,11 +5,19 @@ import {
|
|||||||
Create,
|
Create,
|
||||||
required,
|
required,
|
||||||
SimpleForm,
|
SimpleForm,
|
||||||
|
useTranslate,
|
||||||
} from 'react-admin'
|
} from 'react-admin'
|
||||||
import { Title } from '../common'
|
import { Title } from '../common'
|
||||||
|
|
||||||
const TranscodingTitle = ({ record }) => {
|
const TranscodingTitle = () => {
|
||||||
return <Title subTitle={`Transcoding ${record ? record.name : ''}`} />
|
const translate = useTranslate()
|
||||||
|
const resourceName = translate('resources.transcoding.name', {
|
||||||
|
smart_count: 1,
|
||||||
|
})
|
||||||
|
const title = translate('ra.page.create', {
|
||||||
|
name: `${resourceName}`,
|
||||||
|
})
|
||||||
|
return <Title subTitle={title} />
|
||||||
}
|
}
|
||||||
|
|
||||||
const TranscodingCreate = (props) => (
|
const TranscodingCreate = (props) => (
|
||||||
|
|||||||
@@ -1,9 +1,20 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { TextInput, SelectInput, Edit, required, SimpleForm } from 'react-admin'
|
import {
|
||||||
|
TextInput,
|
||||||
|
SelectInput,
|
||||||
|
Edit,
|
||||||
|
required,
|
||||||
|
SimpleForm,
|
||||||
|
useTranslate,
|
||||||
|
} from 'react-admin'
|
||||||
import { Title } from '../common'
|
import { Title } from '../common'
|
||||||
|
|
||||||
const TranscodingTitle = ({ record }) => {
|
const TranscodingTitle = ({ record }) => {
|
||||||
return <Title subTitle={`Transcoding ${record ? record.name : ''}`} />
|
const translate = useTranslate()
|
||||||
|
const resourceName = translate('resources.transcoding.name', {
|
||||||
|
smart_count: 1,
|
||||||
|
})
|
||||||
|
return <Title subTitle={`${resourceName} ${record ? record.name : ''}`} />
|
||||||
}
|
}
|
||||||
|
|
||||||
const TranscodingEdit = (props) => (
|
const TranscodingEdit = (props) => (
|
||||||
|
|||||||
@@ -7,7 +7,12 @@ const TranscodingList = (props) => {
|
|||||||
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
|
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
|
||||||
return (
|
return (
|
||||||
<List
|
<List
|
||||||
title={<Title subTitle={'Transcodings'} />}
|
title={
|
||||||
|
<Title
|
||||||
|
subTitle={'resources.transcoding.name'}
|
||||||
|
args={{ smart_count: 2 }}
|
||||||
|
/>
|
||||||
|
}
|
||||||
exporter={false}
|
exporter={false}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
|
|||||||
+19
-11
@@ -7,19 +7,27 @@ import {
|
|||||||
required,
|
required,
|
||||||
email,
|
email,
|
||||||
SimpleForm,
|
SimpleForm,
|
||||||
|
useTranslate,
|
||||||
} from 'react-admin'
|
} from 'react-admin'
|
||||||
import { Title } from '../common'
|
import { Title } from '../common'
|
||||||
|
|
||||||
const UserCreate = (props) => (
|
const UserCreate = (props) => {
|
||||||
<Create title={<Title subTitle={'Create User'} />} {...props}>
|
const translate = useTranslate()
|
||||||
<SimpleForm redirect="list">
|
const resourceName = translate('resources.user.name', { smart_count: 1 })
|
||||||
<TextInput source="userName" validate={[required()]} />
|
const title = translate('ra.page.create', {
|
||||||
<TextInput source="name" validate={[required()]} />
|
name: `${resourceName}`,
|
||||||
<TextInput source="email" validate={[required(), email()]} />
|
})
|
||||||
<PasswordInput source="password" validate={[required()]} />
|
return (
|
||||||
<BooleanInput source="isAdmin" defaultValue={false} />
|
<Create title={<Title subTitle={title} />} {...props}>
|
||||||
</SimpleForm>
|
<SimpleForm redirect="list">
|
||||||
</Create>
|
<TextInput source="userName" validate={[required()]} />
|
||||||
)
|
<TextInput source="name" validate={[required()]} />
|
||||||
|
<TextInput source="email" validate={[required(), email()]} />
|
||||||
|
<PasswordInput source="password" validate={[required()]} />
|
||||||
|
<BooleanInput source="isAdmin" defaultValue={false} />
|
||||||
|
</SimpleForm>
|
||||||
|
</Create>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
export default UserCreate
|
export default UserCreate
|
||||||
|
|||||||
@@ -8,11 +8,14 @@ import {
|
|||||||
required,
|
required,
|
||||||
email,
|
email,
|
||||||
SimpleForm,
|
SimpleForm,
|
||||||
|
useTranslate,
|
||||||
} from 'react-admin'
|
} from 'react-admin'
|
||||||
import { Title } from '../common'
|
import { Title } from '../common'
|
||||||
|
|
||||||
const UserTitle = ({ record }) => {
|
const UserTitle = ({ record }) => {
|
||||||
return <Title subTitle={`User ${record ? record.name : ''}`} />
|
const translate = useTranslate()
|
||||||
|
const resourceName = translate('resources.user.name', { smart_count: 1 })
|
||||||
|
return <Title subTitle={`${resourceName} ${record ? record.name : ''}`} />
|
||||||
}
|
}
|
||||||
const UserEdit = (props) => (
|
const UserEdit = (props) => (
|
||||||
<Edit title={<UserTitle />} {...props}>
|
<Edit title={<UserTitle />} {...props}>
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ const UserList = (props) => {
|
|||||||
return (
|
return (
|
||||||
<List
|
<List
|
||||||
{...props}
|
{...props}
|
||||||
title={<Title subTitle={'Users'} />}
|
title={
|
||||||
|
<Title subTitle={'resources.user.name'} args={{ smart_count: 2 }} />
|
||||||
|
}
|
||||||
sort={{ field: 'userName', order: 'ASC' }}
|
sort={{ field: 'userName', order: 'ASC' }}
|
||||||
exporter={false}
|
exporter={false}
|
||||||
filters={<UserFilter />}
|
filters={<UserFilter />}
|
||||||
|
|||||||
Reference in New Issue
Block a user