Further work on people section + refactor translations
This commit is contained in:
parent
06fd166483
commit
e27f653c2e
|
@ -1,7 +1,20 @@
|
|||
module.exports = {
|
||||
skipDefaultValues: locale => locale != 'en',
|
||||
sort: true,
|
||||
locales: ['da', 'de', 'en', 'es', 'fr', 'it', 'pl', 'ru', 'sv'],
|
||||
locales: [
|
||||
'da',
|
||||
'de',
|
||||
'en',
|
||||
'es',
|
||||
'fr',
|
||||
'it',
|
||||
'pl',
|
||||
'pt',
|
||||
'ru',
|
||||
'sv',
|
||||
'zh-CN',
|
||||
'zh-HK',
|
||||
],
|
||||
input: 'src/**/*.{js,ts,jsx,tsx}',
|
||||
output: 'src/extractedTranslations/$LOCALE/$NAMESPACE.json',
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"@apollo/client": "^3.3.21",
|
||||
"@babel/preset-typescript": "^7.14.5",
|
||||
"@craco/craco": "^6.2.0",
|
||||
"@headlessui/react": "^1.3.0",
|
||||
"@headlessui/react": "^1.4.1",
|
||||
"@react-aria/focus": "^3.4.0",
|
||||
"@rollup/plugin-babel": "^5.3.0",
|
||||
"@types/geojson": "^7946.0.8",
|
||||
|
@ -2103,9 +2103,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@headlessui/react": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.3.0.tgz",
|
||||
"integrity": "sha512-2gqTO6BQ3Jr8vDX1B67n1gl6MGKTt6DBmR+H0qxwj0gTMnR2+Qpktj8alRWxsZBODyOiBb77QSQpE/6gG3MX4Q==",
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.1.tgz",
|
||||
"integrity": "sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
|
@ -28802,9 +28802,9 @@
|
|||
}
|
||||
},
|
||||
"@headlessui/react": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.3.0.tgz",
|
||||
"integrity": "sha512-2gqTO6BQ3Jr8vDX1B67n1gl6MGKTt6DBmR+H0qxwj0gTMnR2+Qpktj8alRWxsZBODyOiBb77QSQpE/6gG3MX4Q==",
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.1.tgz",
|
||||
"integrity": "sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg==",
|
||||
"requires": {}
|
||||
},
|
||||
"@humanwhocodes/config-array": {
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"@apollo/client": "^3.3.21",
|
||||
"@babel/preset-typescript": "^7.14.5",
|
||||
"@craco/craco": "^6.2.0",
|
||||
"@headlessui/react": "^1.3.0",
|
||||
"@headlessui/react": "^1.4.1",
|
||||
"@react-aria/focus": "^3.4.0",
|
||||
"@rollup/plugin-babel": "^5.3.0",
|
||||
"@types/geojson": "^7946.0.8",
|
||||
|
|
|
@ -133,16 +133,24 @@ const FaceGroupTitle = ({ faceGroup }: FaceGroupTitleProps) => {
|
|||
<div className="mb-2">{title}</div>
|
||||
<ul className="flex gap-2 flex-wrap mb-6">
|
||||
<li>
|
||||
<Button onClick={() => setEditLabel(true)}>{t('people_page.action_label.change_label', 'Change label')}</Button>
|
||||
<Button onClick={() => setEditLabel(true)}>
|
||||
{t('people_page.action_label.change_label', 'Change label')}
|
||||
</Button>
|
||||
</li>
|
||||
<li>
|
||||
<Button onClick={() => setMergeModalOpen(true)}>{t('people_page.action_label.merge_face', 'Merge face')}</Button>
|
||||
<Button onClick={() => setMergeModalOpen(true)}>
|
||||
{t('people_page.action_label.merge_people', 'Merge people')}
|
||||
</Button>
|
||||
</li>
|
||||
<li>
|
||||
<Button onClick={() => setDetachModalOpen(true)}>{t('people_page.action_label.detach_face', 'Detach face')}</Button>
|
||||
<Button onClick={() => setDetachModalOpen(true)}>
|
||||
{t('people_page.action_label.detach_images', 'Detach images')}
|
||||
</Button>
|
||||
</li>
|
||||
<li>
|
||||
<Button onClick={() => setMoveModalOpen(true)}>{t('people_page.action_label.move_faces', 'Moves faces')}</Button>
|
||||
<Button onClick={() => setMoveModalOpen(true)}>
|
||||
{t('people_page.action_label.move_faces', 'Move faces')}
|
||||
</Button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -2,12 +2,76 @@ import React from 'react'
|
|||
import { useTranslation } from 'react-i18next'
|
||||
import { Link } from 'react-router-dom'
|
||||
import FaceCircleImage from '../../../Pages/PeoplePage/FaceCircleImage'
|
||||
import { Button } from '../../../primitives/form/Input'
|
||||
import { SidebarSection, SidebarSectionTitle } from '../SidebarComponents'
|
||||
import { MediaSidebarMedia } from './MediaSidebar'
|
||||
import { sidebarMediaQuery_media_faces } from './__generated__/sidebarMediaQuery'
|
||||
|
||||
import { ReactComponent as PeopleDotsIcon } from './icons/peopleDotsIcon.svg'
|
||||
import { Menu } from '@headlessui/react'
|
||||
import { Button } from '../../../primitives/form/Input'
|
||||
import { ArrowPopoverPanel } from '../Sharing'
|
||||
import { tailwindClassNames } from '../../../helpers/utils'
|
||||
|
||||
type PersonMoreMenuItemProps = {
|
||||
label: string
|
||||
className?: string
|
||||
}
|
||||
|
||||
const PersonMoreMenuItem = ({ label, className }: PersonMoreMenuItemProps) => {
|
||||
return (
|
||||
<Menu.Item>
|
||||
{({ active }) => (
|
||||
<a
|
||||
className={tailwindClassNames(
|
||||
`block py-1 cursor-pointer ${active && 'bg-gray-50 text-black'}`,
|
||||
className
|
||||
)}
|
||||
>
|
||||
{label}
|
||||
</a>
|
||||
)}
|
||||
</Menu.Item>
|
||||
)
|
||||
}
|
||||
|
||||
type PersonMoreMenuProps = {
|
||||
face: sidebarMediaQuery_media_faces
|
||||
}
|
||||
|
||||
const PersonMoreMenu = ({ face }: PersonMoreMenuProps) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
face
|
||||
return (
|
||||
<Menu as="div" className="relative inline-block">
|
||||
<Menu.Button as={Button} className="px-1.5 py-1.5 align-middle ml-1">
|
||||
<PeopleDotsIcon className="text-gray-500" />
|
||||
</Menu.Button>
|
||||
<Menu.Items className="">
|
||||
<ArrowPopoverPanel width={120}>
|
||||
<PersonMoreMenuItem
|
||||
className="border-b"
|
||||
label={t('people_page.action_label.change_label', 'Change label')}
|
||||
/>
|
||||
<PersonMoreMenuItem
|
||||
className="border-b"
|
||||
label={t('sidebar.people.action_label.merge_face', 'Merge face')}
|
||||
/>
|
||||
<PersonMoreMenuItem
|
||||
className="border-b"
|
||||
label={t(
|
||||
'sidebar.people.action_label.detach_image',
|
||||
'Detach image'
|
||||
)}
|
||||
/>
|
||||
<PersonMoreMenuItem
|
||||
label={t('sidebar.people.action_label.move_face', 'Move face')}
|
||||
/>
|
||||
</ArrowPopoverPanel>
|
||||
</Menu.Items>
|
||||
</Menu>
|
||||
)
|
||||
}
|
||||
|
||||
type MediaSidebarFaceProps = {
|
||||
face: sidebarMediaQuery_media_faces
|
||||
|
@ -19,18 +83,16 @@ const MediaSidebarPerson = ({ face }: MediaSidebarFaceProps) => {
|
|||
return (
|
||||
<li className="inline-block">
|
||||
<Link to={`/people/${face.faceGroup.id}`}>
|
||||
<FaceCircleImage imageFace={face} selectable={true} size="100px" />
|
||||
<FaceCircleImage imageFace={face} selectable={true} size="92px" />
|
||||
</Link>
|
||||
<div
|
||||
className={`text-center ${
|
||||
className={`text-center text-sm mt-1 ${
|
||||
face.faceGroup.label ? 'text-black' : 'text-gray-600'
|
||||
}`}
|
||||
>
|
||||
{face.faceGroup.label ??
|
||||
t('people_page.face_group.unlabeled', 'Unlabeled')}
|
||||
<Button className="px-2 py-1.5 align-middle ml-1">
|
||||
<PeopleDotsIcon className="text-gray-500" />
|
||||
</Button>
|
||||
<PersonMoreMenu face={face} />
|
||||
</div>
|
||||
</li>
|
||||
)
|
||||
|
@ -54,8 +116,12 @@ const MediaSidebarPeople = ({ media }: MediaSidebarFacesProps) => {
|
|||
<SidebarSectionTitle>
|
||||
{t('sidebar.people.title', 'People')}
|
||||
</SidebarSectionTitle>
|
||||
<div className="overflow-x-auto">
|
||||
<div
|
||||
className="overflow-x-auto mb-[-200px]"
|
||||
style={{ scrollbarWidth: 'none' }}
|
||||
>
|
||||
<ul className="flex gap-4 mx-4">{faceElms}</ul>
|
||||
<div className="h-[200px]"></div>
|
||||
</div>
|
||||
</SidebarSection>
|
||||
)
|
||||
|
|
|
@ -106,10 +106,12 @@ const DELETE_SHARE_MUTATION = gql`
|
|||
}
|
||||
`
|
||||
|
||||
const ArrowPopoverPanel = styled.div.attrs({
|
||||
export const ArrowPopoverPanel = styled.div.attrs({
|
||||
className:
|
||||
'absolute right-6 -top-3 bg-white rounded shadow-md border border-gray-200 w-[260px]',
|
||||
})`
|
||||
'absolute right-6 -top-3 bg-white rounded shadow-md border border-gray-200',
|
||||
})<{ width: number }>`
|
||||
width: ${({ width }) => width}px;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
|
@ -247,7 +249,7 @@ const MorePopover = ({ id, share, query }: MorePopoverProps) => {
|
|||
</Popover.Button>
|
||||
|
||||
<Popover.Panel>
|
||||
<ArrowPopoverPanel>
|
||||
<ArrowPopoverPanel width={260}>
|
||||
<MorePopoverSectionPassword id={id} share={share} query={query} />
|
||||
<div className="px-4 py-2 border-t border-gray-200 mt-2 mb-2">
|
||||
<Checkbox label="Expiration date" />
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "Ændre navn",
|
||||
"detach_face": "Løsriv billeder",
|
||||
"merge_face": "Sammenflet personer",
|
||||
"detach_images": "Løsriv billeder",
|
||||
"merge_people": "Sammenflet personer",
|
||||
"move_faces": "Flyt ansigter"
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -263,7 +263,7 @@
|
|||
"title": "Lokation"
|
||||
},
|
||||
"media": {
|
||||
"album": "Album",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Actionprogram",
|
||||
|
@ -305,6 +305,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": "Personer"
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -42,6 +42,15 @@
|
|||
"merge_face": null,
|
||||
"detach_face": null,
|
||||
"move_faces": null
|
||||
},
|
||||
"modal": {
|
||||
"merge_people_groups": {
|
||||
"description": "Alle billeder fra denne gruppe vil blive flettet sammen med den valgte gruppe",
|
||||
"destination_table": {
|
||||
"title": "Vælg destinationsgruppe"
|
||||
},
|
||||
"title": "Vælg gruppe at flette med"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
|
@ -71,6 +80,9 @@
|
|||
"mega_byte_plural": null,
|
||||
"tera_byte_plural": null
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"album": "Album"
|
||||
}
|
||||
},
|
||||
"timeline_filter": {
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_face": "",
|
||||
"merge_face": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -263,7 +263,7 @@
|
|||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album": "",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Action (kurze Verschlusszeit)",
|
||||
|
@ -305,6 +305,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -61,6 +61,13 @@
|
|||
"title": null
|
||||
},
|
||||
"title": null
|
||||
},
|
||||
"merge_people_groups": {
|
||||
"description": "",
|
||||
"destination_table": {
|
||||
"title": ""
|
||||
},
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
@ -115,6 +122,9 @@
|
|||
"mega_byte_plural": null,
|
||||
"tera_byte_plural": null
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"album": ""
|
||||
}
|
||||
},
|
||||
"album_filter": {
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "Change label",
|
||||
"detach_face": "Detach face",
|
||||
"merge_face": "Merge face",
|
||||
"detach_images": "Detach face",
|
||||
"merge_people": "Merge face",
|
||||
"move_faces": "Move faces"
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -263,7 +263,7 @@
|
|||
"title": "Location"
|
||||
},
|
||||
"media": {
|
||||
"album": "Album",
|
||||
"album_path": "Album path",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Action program",
|
||||
|
@ -305,6 +305,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "Detach image",
|
||||
"merge_face": "Merge face",
|
||||
"move_face": "Move face"
|
||||
},
|
||||
"title": "People"
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -36,6 +36,15 @@
|
|||
"select_image_faces": {
|
||||
"search_images_placeholder": "Search images..."
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"merge_people_groups": {
|
||||
"description": "All images within this face group will be merged into the selected face group.",
|
||||
"destination_table": {
|
||||
"title": "Select the destination face"
|
||||
},
|
||||
"title": "Merge Face Groups"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
|
@ -54,6 +63,9 @@
|
|||
},
|
||||
"sharing": {
|
||||
"table_header": "Public shares"
|
||||
},
|
||||
"media": {
|
||||
"album": "Album"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_face": "",
|
||||
"merge_face": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -263,7 +263,7 @@
|
|||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album": "",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Programa de acción",
|
||||
|
@ -305,6 +305,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -61,6 +61,13 @@
|
|||
"title": null
|
||||
},
|
||||
"title": null
|
||||
},
|
||||
"merge_people_groups": {
|
||||
"description": "",
|
||||
"destination_table": {
|
||||
"title": ""
|
||||
},
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
@ -120,6 +127,9 @@
|
|||
"mega_byte_plural": null,
|
||||
"tera_byte_plural": null
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"album": ""
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "Changer le label",
|
||||
"detach_face": "Détacher le visage",
|
||||
"merge_face": "Fusionner le visage",
|
||||
"detach_images": "Détacher le visage",
|
||||
"merge_people": "Fusionner le visage",
|
||||
"move_faces": "Déplacer les visages"
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -263,7 +263,7 @@
|
|||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album": "",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Programme d'action",
|
||||
|
@ -305,6 +305,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -60,6 +60,13 @@
|
|||
"title": null
|
||||
},
|
||||
"title": null
|
||||
},
|
||||
"merge_people_groups": {
|
||||
"description": "Toutes les images de ce groupe de visages seront fusionnées dans le groupe de visages sélectionné.",
|
||||
"destination_table": {
|
||||
"title": "Sélectionner le visage de destination"
|
||||
},
|
||||
"title": "Fusionner des groupes de visages"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
@ -95,6 +102,9 @@
|
|||
},
|
||||
"sharing": {
|
||||
"table_header": "Partages publics"
|
||||
},
|
||||
"media": {
|
||||
"album": ""
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_face": "",
|
||||
"merge_face": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -263,7 +263,7 @@
|
|||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album": "",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Programma sport",
|
||||
|
@ -305,6 +305,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -49,6 +49,15 @@
|
|||
},
|
||||
"tableselect_image_faces": {
|
||||
"search_images_placeholder": null
|
||||
},
|
||||
"modal": {
|
||||
"merge_people_groups": {
|
||||
"description": "Tutte le immagini di questo volto saranno unite alle immagini del volto selezionato",
|
||||
"destination_table": {
|
||||
"title": "Seleziona il volto di destinazione"
|
||||
},
|
||||
"title": "Unisci immagini volto"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
|
@ -82,6 +91,9 @@
|
|||
"mega_byte_plural": null,
|
||||
"tera_byte_plural": null
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"album": ""
|
||||
}
|
||||
},
|
||||
"album_filter": {
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_face": "",
|
||||
"merge_face": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -268,7 +268,7 @@
|
|||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album": "",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Program działania",
|
||||
|
@ -310,6 +310,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -61,6 +61,13 @@
|
|||
"title": null
|
||||
},
|
||||
"title": null
|
||||
},
|
||||
"merge_people_groups": {
|
||||
"description": "",
|
||||
"destination_table": {
|
||||
"title": ""
|
||||
},
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
@ -137,6 +144,9 @@
|
|||
"table_header": "Publiczne udostępnienia",
|
||||
"delete": null,
|
||||
"more": null
|
||||
},
|
||||
"media": {
|
||||
"album": ""
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
|
|
|
@ -61,17 +61,17 @@
|
|||
"description": "Galeria de fotos simples e fácil de usar para servidores pessoais"
|
||||
},
|
||||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
"label_placeholder": "Etiqueta",
|
||||
"unlabeled": "Sem etiqueta",
|
||||
"unlabeled_person": "Pessoa sem etiqueta"
|
||||
},
|
||||
"action_label": {
|
||||
"change_label": null,
|
||||
"merge_face": null,
|
||||
"detach_face": null,
|
||||
"move_faces": null
|
||||
},
|
||||
"modal": {
|
||||
"action": {
|
||||
"merge": "Juntar"
|
||||
|
@ -215,6 +215,27 @@
|
|||
},
|
||||
"sidebar": {
|
||||
"album": {
|
||||
"album_cover": "",
|
||||
"download": {
|
||||
"high-resolutions": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"originals": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"thumbnails": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"web-videos": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"reset_cover": "",
|
||||
"set_cover": "",
|
||||
"title_placeholder": "Título do Álbum"
|
||||
},
|
||||
"download": {
|
||||
|
@ -238,7 +259,11 @@
|
|||
},
|
||||
"title": "Descarregar"
|
||||
},
|
||||
"location": {
|
||||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Programa de ação",
|
||||
|
@ -267,6 +292,7 @@
|
|||
"name": {
|
||||
"aperture": "Abertura",
|
||||
"camera": "Câmera",
|
||||
"coordinates": "",
|
||||
"date_shot": "Data da foto",
|
||||
"exposure": "Exposição",
|
||||
"exposure_program": "Programa",
|
||||
|
@ -278,6 +304,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
"add_share": "Adicionar partilha",
|
||||
"copy_link": "Copiar link",
|
||||
|
@ -295,6 +329,13 @@
|
|||
"places": "Locais",
|
||||
"settings": "Configurações"
|
||||
},
|
||||
"timeline_filter": {
|
||||
"date": {
|
||||
"dropdown_all": "",
|
||||
"dropdown_year": "",
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"loading_album": "Carregar Álbum",
|
||||
"login": "Login",
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": null,
|
||||
"merge_people": null,
|
||||
"detach_images": null,
|
||||
"move_faces": null
|
||||
},
|
||||
"modal": {
|
||||
"merge_people_groups": {
|
||||
"description": "Todas as imagens neste grupo de caras serão juntas no grupo selecionado.",
|
||||
"destination_table": {
|
||||
"title": "Selecione a cara de destino"
|
||||
},
|
||||
"title": "Juntar grupos de cara"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_face": "",
|
||||
"merge_face": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -268,7 +268,7 @@
|
|||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album": "",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Действие программа",
|
||||
|
@ -310,6 +310,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -49,6 +49,15 @@
|
|||
},
|
||||
"tableselect_image_faces": {
|
||||
"search_images_placeholder": null
|
||||
},
|
||||
"modal": {
|
||||
"merge_people_groups": {
|
||||
"description": "Все фотографии в этой группе лиц будут обьеденены с выбранной группой.",
|
||||
"destination_table": {
|
||||
"title": "Выберете конечное лицо"
|
||||
},
|
||||
"title": "Обьединить группы лиц"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
|
@ -99,6 +108,9 @@
|
|||
"table_header": "Общий доступ",
|
||||
"delete": null,
|
||||
"more": null
|
||||
},
|
||||
"media": {
|
||||
"album": ""
|
||||
}
|
||||
},
|
||||
"album_filter": {
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_face": "",
|
||||
"merge_face": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
|
@ -263,7 +263,7 @@
|
|||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album": "",
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "Actionprogram",
|
||||
|
@ -305,6 +305,11 @@
|
|||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
|
|
|
@ -61,6 +61,13 @@
|
|||
"title": null
|
||||
},
|
||||
"title": null
|
||||
},
|
||||
"merge_people_groups": {
|
||||
"description": "",
|
||||
"destination_table": {
|
||||
"title": ""
|
||||
},
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
@ -123,6 +130,9 @@
|
|||
"mega_byte_plural": null,
|
||||
"tera_byte_plural": null
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"album": ""
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
|
|
|
@ -61,17 +61,17 @@
|
|||
"description": "简单及易用的照片库给个人服务器"
|
||||
},
|
||||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
"label_placeholder": "名称",
|
||||
"unlabeled": "未命名",
|
||||
"unlabeled_person": "未命名人物"
|
||||
},
|
||||
"action_label": {
|
||||
"change_label": null,
|
||||
"merge_face": null,
|
||||
"detach_face": null,
|
||||
"move_faces": null
|
||||
},
|
||||
"modal": {
|
||||
"action": {
|
||||
"merge": "合并"
|
||||
|
@ -215,30 +215,36 @@
|
|||
},
|
||||
"sidebar": {
|
||||
"album": {
|
||||
"album_cover": "",
|
||||
"download": {
|
||||
"high-resolutions": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"originals": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"thumbnails": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"web-videos": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"reset_cover": "",
|
||||
"set_cover": "",
|
||||
"title_placeholder": "相册名称"
|
||||
},
|
||||
"download": {
|
||||
"filesize": {
|
||||
"byte": null,
|
||||
"giga_byte": null,
|
||||
"kilo_byte": null,
|
||||
"mega_byte": null,
|
||||
"tera_byte": null,
|
||||
"byte_0": null,
|
||||
"byte_1": null,
|
||||
"byte_2": null,
|
||||
"giga_byte_0": null,
|
||||
"giga_byte_1": null,
|
||||
"giga_byte_2": null,
|
||||
"kilo_byte_0": null,
|
||||
"kilo_byte_1": null,
|
||||
"kilo_byte_2": null,
|
||||
"mega_byte_0": null,
|
||||
"mega_byte_1": null,
|
||||
"mega_byte_2": null,
|
||||
"tera_byte_0": null,
|
||||
"tera_byte_1": null,
|
||||
"tera_byte_2": null
|
||||
"byte": "",
|
||||
"giga_byte": "",
|
||||
"kilo_byte": "",
|
||||
"mega_byte": "",
|
||||
"tera_byte": ""
|
||||
},
|
||||
"table_columns": {
|
||||
"dimensions": "尺寸",
|
||||
|
@ -248,7 +254,11 @@
|
|||
},
|
||||
"title": "下载"
|
||||
},
|
||||
"location": {
|
||||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "动态模式",
|
||||
|
@ -264,19 +274,20 @@
|
|||
},
|
||||
"flash": {
|
||||
"auto": "自动",
|
||||
"did_not_fire": null,
|
||||
"fired": null,
|
||||
"no_flash": null,
|
||||
"no_flash_function": null,
|
||||
"did_not_fire": "",
|
||||
"fired": "",
|
||||
"no_flash": "",
|
||||
"no_flash_function": "",
|
||||
"off": "关闭",
|
||||
"on": "使用",
|
||||
"red_eye_reduction": "减轻红眼",
|
||||
"return_detected": null,
|
||||
"return_not_detected": null
|
||||
"return_detected": "",
|
||||
"return_not_detected": ""
|
||||
},
|
||||
"name": {
|
||||
"aperture": "光圈",
|
||||
"camera": "相机",
|
||||
"coordinates": "",
|
||||
"date_shot": "拍摄日期",
|
||||
"exposure": "曝光",
|
||||
"exposure_program": "模式",
|
||||
|
@ -288,6 +299,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
"add_share": "新增分享",
|
||||
"copy_link": "复制链接",
|
||||
|
@ -305,6 +324,13 @@
|
|||
"places": "地点",
|
||||
"settings": "设置"
|
||||
},
|
||||
"timeline_filter": {
|
||||
"date": {
|
||||
"dropdown_all": "",
|
||||
"dropdown_year": "",
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"loading_album": "载入相册",
|
||||
"login": "登入",
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": null,
|
||||
"merge_people": null,
|
||||
"detach_images": null,
|
||||
"move_faces": null
|
||||
},
|
||||
"modal": {
|
||||
"merge_people_groups": {
|
||||
"description": "所有在此的脸孔群组将会合并到已选择的脸孔群组",
|
||||
"destination_table": {
|
||||
"title": "选择目标脸孔群组"
|
||||
},
|
||||
"title": "合并脸孔群组"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"download": {
|
||||
"filesize": {
|
||||
"byte": null,
|
||||
"giga_byte": null,
|
||||
"kilo_byte": null,
|
||||
"mega_byte": null,
|
||||
"tera_byte": null
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"exif": {
|
||||
"flash": {
|
||||
"did_not_fire": null,
|
||||
"fired": null,
|
||||
"no_flash": null,
|
||||
"no_flash_function": null,
|
||||
"return_detected": null,
|
||||
"return_not_detected": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -61,17 +61,17 @@
|
|||
"description": "簡單及易用的照片庫給個人伺服器"
|
||||
},
|
||||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": "",
|
||||
"detach_images": "",
|
||||
"merge_people": "",
|
||||
"move_faces": ""
|
||||
},
|
||||
"face_group": {
|
||||
"label_placeholder": "名稱",
|
||||
"unlabeled": "未命名",
|
||||
"unlabeled_person": "未命名人物"
|
||||
},
|
||||
"action_label": {
|
||||
"change_label": null,
|
||||
"merge_face": null,
|
||||
"detach_face": null,
|
||||
"move_faces": null
|
||||
},
|
||||
"modal": {
|
||||
"action": {
|
||||
"merge": "合併"
|
||||
|
@ -215,30 +215,36 @@
|
|||
},
|
||||
"sidebar": {
|
||||
"album": {
|
||||
"album_cover": "",
|
||||
"download": {
|
||||
"high-resolutions": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"originals": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"thumbnails": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"web-videos": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"reset_cover": "",
|
||||
"set_cover": "",
|
||||
"title_placeholder": "相簿名稱"
|
||||
},
|
||||
"download": {
|
||||
"filesize": {
|
||||
"byte": null,
|
||||
"giga_byte": null,
|
||||
"kilo_byte": null,
|
||||
"mega_byte": null,
|
||||
"tera_byte": null,
|
||||
"byte_0": null,
|
||||
"byte_1": null,
|
||||
"byte_2": null,
|
||||
"giga_byte_0": null,
|
||||
"giga_byte_1": null,
|
||||
"giga_byte_2": null,
|
||||
"kilo_byte_0": null,
|
||||
"kilo_byte_1": null,
|
||||
"kilo_byte_2": null,
|
||||
"mega_byte_0": null,
|
||||
"mega_byte_1": null,
|
||||
"mega_byte_2": null,
|
||||
"tera_byte_0": null,
|
||||
"tera_byte_1": null,
|
||||
"tera_byte_2": null
|
||||
"byte": "",
|
||||
"giga_byte": "",
|
||||
"kilo_byte": "",
|
||||
"mega_byte": "",
|
||||
"tera_byte": ""
|
||||
},
|
||||
"table_columns": {
|
||||
"dimensions": "尺寸",
|
||||
|
@ -248,7 +254,11 @@
|
|||
},
|
||||
"title": "下載"
|
||||
},
|
||||
"location": {
|
||||
"title": ""
|
||||
},
|
||||
"media": {
|
||||
"album_path": "",
|
||||
"exif": {
|
||||
"exposure_program": {
|
||||
"action_program": "動態模式",
|
||||
|
@ -264,19 +274,20 @@
|
|||
},
|
||||
"flash": {
|
||||
"auto": "自動",
|
||||
"did_not_fire": null,
|
||||
"fired": null,
|
||||
"no_flash": null,
|
||||
"no_flash_function": null,
|
||||
"did_not_fire": "",
|
||||
"fired": "",
|
||||
"no_flash": "",
|
||||
"no_flash_function": "",
|
||||
"off": "關閉",
|
||||
"on": "使用",
|
||||
"red_eye_reduction": "減輕紅眼",
|
||||
"return_detected": null,
|
||||
"return_not_detected": null
|
||||
"return_detected": "",
|
||||
"return_not_detected": ""
|
||||
},
|
||||
"name": {
|
||||
"aperture": "光圈",
|
||||
"camera": "相機",
|
||||
"coordinates": "",
|
||||
"date_shot": "拍攝日期",
|
||||
"exposure": "曝光",
|
||||
"exposure_program": "模式",
|
||||
|
@ -288,6 +299,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
"action_label": {
|
||||
"detach_image": "",
|
||||
"merge_face": "",
|
||||
"move_face": ""
|
||||
},
|
||||
"title": ""
|
||||
},
|
||||
"sharing": {
|
||||
"add_share": "新增分享",
|
||||
"copy_link": "複製連結",
|
||||
|
@ -305,6 +324,13 @@
|
|||
"places": "地點",
|
||||
"settings": "設定"
|
||||
},
|
||||
"timeline_filter": {
|
||||
"date": {
|
||||
"dropdown_all": "",
|
||||
"dropdown_year": "",
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"loading_album": "載入相簿",
|
||||
"login": "登入",
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"people_page": {
|
||||
"action_label": {
|
||||
"change_label": null,
|
||||
"merge_people": null,
|
||||
"detach_images": null,
|
||||
"move_faces": null
|
||||
},
|
||||
"modal": {
|
||||
"merge_people_groups": {
|
||||
"description": "所有在此的臉孔群組將會合併到已選擇的臉孔群組",
|
||||
"destination_table": {
|
||||
"title": "選擇目標臉孔群組"
|
||||
},
|
||||
"title": "合併臉孔群組"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"download": {
|
||||
"filesize": {
|
||||
"byte": null,
|
||||
"giga_byte": null,
|
||||
"kilo_byte": null,
|
||||
"mega_byte": null,
|
||||
"tera_byte": null
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"exif": {
|
||||
"flash": {
|
||||
"did_not_fire": null,
|
||||
"fired": null,
|
||||
"no_flash": null,
|
||||
"no_flash_function": null,
|
||||
"return_detected": null,
|
||||
"return_not_detected": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue