mirror of
https://github.com/immich-app/immich.git
synced 2025-12-22 01:11:20 +03:00
* First test * Added translation using Weblate (French) * Translated using Weblate (German) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Translated using Weblate (French) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/fr/ * Further testing * Further testing * Translated using Weblate (German) Currently translated at 100.0% (18 of 18 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Further work * Update string file. * More strings * Automatically changed strings * Add automatically translated german file for testing purposes * Fix merge-face-selector component * Make server stats strings uppercase * Fix uppercase string * Fix some strings in jobs-panel * Fix lower and uppercase strings. Add a few additional string. Fix a few unnecessary replacements * Update german test translations * Fix typo in locales file * Change string keys * Extract more strings * Extract and replace some more strings * Update testtranslationfile * Change translation keys * Fix rebase errors * Fix one more rebase error * Remove german translation file * Co-authored-by: Daniel Dietzler <danieldietzler@users.noreply.github.com> * chore: clean up translations * chore: add new line * fix formatting * chore: fixes * fix: loading and tests --------- Co-authored-by: root <root@Blacki> Co-authored-by: admin <admin@example.com> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
144 lines
4.5 KiB
Svelte
144 lines
4.5 KiB
Svelte
<script lang="ts">
|
|
import { sidebarSettings } from '$lib/stores/preferences.store';
|
|
import { featureFlags } from '$lib/stores/server-config.store';
|
|
import {
|
|
mdiAccount,
|
|
mdiAccountOutline,
|
|
mdiAccountMultiple,
|
|
mdiAccountMultipleOutline,
|
|
mdiArchiveArrowDown,
|
|
mdiArchiveArrowDownOutline,
|
|
mdiHeart,
|
|
mdiHeartOutline,
|
|
mdiImageAlbum,
|
|
mdiImageMultiple,
|
|
mdiImageMultipleOutline,
|
|
mdiMagnify,
|
|
mdiMap,
|
|
mdiMapOutline,
|
|
mdiTrashCan,
|
|
mdiTrashCanOutline,
|
|
mdiToolbox,
|
|
mdiToolboxOutline,
|
|
} from '@mdi/js';
|
|
import StatusBox from '../status-box.svelte';
|
|
import SideBarSection from './side-bar-section.svelte';
|
|
import SideBarLink from './side-bar-link.svelte';
|
|
import MoreInformationAssets from '$lib/components/shared-components/side-bar/more-information-assets.svelte';
|
|
import MoreInformationAlbums from '$lib/components/shared-components/side-bar/more-information-albums.svelte';
|
|
import { t } from 'svelte-i18n';
|
|
|
|
let isArchiveSelected: boolean;
|
|
let isFavoritesSelected: boolean;
|
|
let isMapSelected: boolean;
|
|
let isPeopleSelected: boolean;
|
|
let isPhotosSelected: boolean;
|
|
let isSharingSelected: boolean;
|
|
let isTrashSelected: boolean;
|
|
let isUtilitiesSelected: boolean;
|
|
</script>
|
|
|
|
<SideBarSection>
|
|
<nav aria-label={$t('primary')}>
|
|
<SideBarLink
|
|
title={$t('photos')}
|
|
routeId="/(user)/photos"
|
|
bind:isSelected={isPhotosSelected}
|
|
icon={isPhotosSelected ? mdiImageMultiple : mdiImageMultipleOutline}
|
|
>
|
|
<svelte:fragment slot="moreInformation">
|
|
<MoreInformationAssets assetStats={{ isArchived: false }} />
|
|
</svelte:fragment>
|
|
</SideBarLink>
|
|
{#if $featureFlags.search}
|
|
<SideBarLink title={$t('explore')} routeId="/(user)/explore" icon={mdiMagnify} />
|
|
{/if}
|
|
|
|
{#if $featureFlags.map}
|
|
<SideBarLink
|
|
title={$t('map')}
|
|
routeId="/(user)/map"
|
|
bind:isSelected={isMapSelected}
|
|
icon={isMapSelected ? mdiMap : mdiMapOutline}
|
|
/>
|
|
{/if}
|
|
|
|
{#if $sidebarSettings.people}
|
|
<SideBarLink
|
|
title={$t('people')}
|
|
routeId="/(user)/people"
|
|
bind:isSelected={isPeopleSelected}
|
|
icon={isPeopleSelected ? mdiAccount : mdiAccountOutline}
|
|
/>
|
|
{/if}
|
|
{#if $sidebarSettings.sharing}
|
|
<SideBarLink
|
|
title={$t('sharing')}
|
|
routeId="/(user)/sharing"
|
|
icon={isSharingSelected ? mdiAccountMultiple : mdiAccountMultipleOutline}
|
|
bind:isSelected={isSharingSelected}
|
|
>
|
|
<svelte:fragment slot="moreInformation">
|
|
<MoreInformationAlbums albumCountType="shared" />
|
|
</svelte:fragment>
|
|
</SideBarLink>
|
|
{/if}
|
|
|
|
<div class="text-xs transition-all duration-200 dark:text-immich-dark-fg">
|
|
<p class="hidden p-6 group-hover:sm:block md:block">{$t('library').toUpperCase()}</p>
|
|
<hr class="mx-4 mb-[31px] mt-8 block group-hover:sm:hidden md:hidden" />
|
|
</div>
|
|
<SideBarLink
|
|
title={$t('favorites')}
|
|
routeId="/(user)/favorites"
|
|
icon={isFavoritesSelected ? mdiHeart : mdiHeartOutline}
|
|
bind:isSelected={isFavoritesSelected}
|
|
>
|
|
<svelte:fragment slot="moreInformation">
|
|
<MoreInformationAssets assetStats={{ isFavorite: true }} />
|
|
</svelte:fragment>
|
|
</SideBarLink>
|
|
<SideBarLink title={$t('albums')} routeId="/(user)/albums" icon={mdiImageAlbum} flippedLogo>
|
|
<svelte:fragment slot="moreInformation">
|
|
<MoreInformationAlbums albumCountType="owned" />
|
|
</svelte:fragment>
|
|
</SideBarLink>
|
|
|
|
<SideBarLink
|
|
title={$t('utilities')}
|
|
routeId="/(user)/utilities"
|
|
bind:isSelected={isUtilitiesSelected}
|
|
icon={isUtilitiesSelected ? mdiToolbox : mdiToolboxOutline}
|
|
></SideBarLink>
|
|
|
|
<SideBarLink
|
|
title={$t('archive')}
|
|
routeId="/(user)/archive"
|
|
bind:isSelected={isArchiveSelected}
|
|
icon={isArchiveSelected ? mdiArchiveArrowDown : mdiArchiveArrowDownOutline}
|
|
>
|
|
<svelte:fragment slot="moreInformation">
|
|
<MoreInformationAssets assetStats={{ isArchived: true }} />
|
|
</svelte:fragment>
|
|
</SideBarLink>
|
|
|
|
{#if $featureFlags.trash}
|
|
<SideBarLink
|
|
title={$t('trash')}
|
|
routeId="/(user)/trash"
|
|
bind:isSelected={isTrashSelected}
|
|
icon={isTrashSelected ? mdiTrashCan : mdiTrashCanOutline}
|
|
>
|
|
<svelte:fragment slot="moreInformation">
|
|
<MoreInformationAssets assetStats={{ isTrashed: true }} />
|
|
</svelte:fragment>
|
|
</SideBarLink>
|
|
{/if}
|
|
</nav>
|
|
|
|
<!-- Status Box -->
|
|
<div class="mb-6 mt-auto">
|
|
<StatusBox />
|
|
</div>
|
|
</SideBarSection>
|