mirror of
https://github.com/sysadminsmedia/homebox.git
synced 2025-12-21 21:33:02 +01:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd604f5867 | ||
|
|
b6b939db40 | ||
|
|
d3f56b1b95 | ||
|
|
a258e1d2bc | ||
|
|
5ca671a4ab | ||
|
|
ccdab8bac1 | ||
|
|
0d2a6d6ac8 | ||
|
|
e159dd8a0b | ||
|
|
b311a5c9ed | ||
|
|
04c8e38ecf | ||
|
|
1fd2f42282 | ||
|
|
d3cff18cc6 | ||
|
|
3e27c24fbd | ||
|
|
acd5acd4cf | ||
|
|
71dc5fcb23 | ||
|
|
2ff5f4ca0b | ||
|
|
12831a40d0 | ||
|
|
c966090889 | ||
|
|
f03eb637a7 | ||
|
|
49ea34f352 | ||
|
|
85d91667eb | ||
|
|
458554b6e1 | ||
|
|
79ff5cedc6 | ||
|
|
f0008abd04 | ||
|
|
8a377b3e4d | ||
|
|
e7d31722f7 | ||
|
|
52b4506e12 | ||
|
|
cb9631c999 | ||
|
|
6e3186a9de | ||
|
|
a67070f965 |
@@ -51,7 +51,6 @@ jobs:
|
|||||||
- linux/amd64
|
- linux/amd64
|
||||||
- linux/arm64
|
- linux/arm64
|
||||||
- linux/arm/v7
|
- linux/arm/v7
|
||||||
- linux/riscv64
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Enable Debug Logs
|
- name: Enable Debug Logs
|
||||||
|
|||||||
2
.github/workflows/docker-publish.yaml
vendored
2
.github/workflows/docker-publish.yaml
vendored
@@ -51,7 +51,6 @@ jobs:
|
|||||||
- linux/amd64
|
- linux/amd64
|
||||||
- linux/arm64
|
- linux/arm64
|
||||||
- linux/arm/v7
|
- linux/arm/v7
|
||||||
- linux/riscv64
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -199,4 +198,3 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
||||||
$(printf '${{ env.DOCKERHUB_REPO }}@sha256:%s ' *)
|
$(printf '${{ env.DOCKERHUB_REPO }}@sha256:%s ' *)
|
||||||
|
|
||||||
|
|||||||
19
Dockerfile
19
Dockerfile
@@ -1,5 +1,5 @@
|
|||||||
# Node dependencies stage
|
# Node dependencies stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/node:lts-alpine AS frontend-dependencies
|
FROM public.ecr.aws/docker/library/node:lts-alpine AS frontend-dependencies
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install pnpm globally (caching layer)
|
# Install pnpm globally (caching layer)
|
||||||
@@ -10,7 +10,7 @@ COPY frontend/package.json frontend/pnpm-lock.yaml ./
|
|||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
# Build Nuxt (frontend) stage
|
# Build Nuxt (frontend) stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/node:lts-alpine AS frontend-builder
|
FROM public.ecr.aws/docker/library/node:lts-alpine AS frontend-builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install pnpm globally again (it can reuse the cache if not changed)
|
# Install pnpm globally again (it can reuse the cache if not changed)
|
||||||
@@ -22,7 +22,7 @@ COPY --from=frontend-dependencies /app/node_modules ./node_modules
|
|||||||
RUN pnpm build
|
RUN pnpm build
|
||||||
|
|
||||||
# Go dependencies stage
|
# Go dependencies stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/golang:alpine AS builder-dependencies
|
FROM public.ecr.aws/docker/library/golang:alpine AS builder-dependencies
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
# Copy go.mod and go.sum for better caching
|
# Copy go.mod and go.sum for better caching
|
||||||
@@ -30,7 +30,7 @@ COPY ./backend/go.mod ./backend/go.sum ./
|
|||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
# Build API stage
|
# Build API stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/golang:alpine AS builder
|
FROM public.ecr.aws/docker/library/golang:alpine AS builder
|
||||||
ARG TARGETOS
|
ARG TARGETOS
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
ARG BUILD_TIME
|
ARG BUILD_TIME
|
||||||
@@ -40,7 +40,8 @@ ARG VERSION
|
|||||||
# Install necessary build tools
|
# Install necessary build tools
|
||||||
RUN apk update && \
|
RUN apk update && \
|
||||||
apk upgrade && \
|
apk upgrade && \
|
||||||
apk add --no-cache git build-base gcc g++
|
apk add --no-cache git build-base gcc g++ && \
|
||||||
|
if [ "$TARGETARCH" != "arm" ] || [ "$TARGETARCH" != "riscv64" ]; then apk --no-cache add libwebp libavif libheif libjxl; fi
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
@@ -55,17 +56,17 @@ COPY --from=frontend-builder /app/.output/public ./app/api/static/public
|
|||||||
# Use cache for Go build artifacts
|
# Use cache for Go build artifacts
|
||||||
RUN --mount=type=cache,target=/root/.cache/go-build \
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
||||||
if [ "$TARGETARCH" = "arm" ] || [ "$TARGETARCH" = "riscv64" ]; \
|
if [ "$TARGETARCH" = "arm" ] || [ "$TARGETARCH" = "riscv64" ]; \
|
||||||
then CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build \
|
then echo "nodynamic" $TARGETOS $TARGETARCH; CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build \
|
||||||
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
||||||
-tags nodynamic -o /go/bin/api -v ./app/api/*.go; \
|
-tags nodynamic -o /go/bin/api -v ./app/api/*.go; \
|
||||||
else \
|
else \
|
||||||
CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build \
|
echo $TARGETOS $TARGETARCH; CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build \
|
||||||
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
||||||
-o /go/bin/api -v ./app/api/*.go; \
|
-o /go/bin/api -v ./app/api/*.go; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Production stage
|
# Production stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/alpine:latest
|
FROM public.ecr.aws/docker/library/alpine:latest
|
||||||
ENV HBOX_MODE=production
|
ENV HBOX_MODE=production
|
||||||
ENV HBOX_STORAGE_CONN_STRING=file:///?no_tmp_dir=true
|
ENV HBOX_STORAGE_CONN_STRING=file:///?no_tmp_dir=true
|
||||||
ENV HBOX_STORAGE_PREFIX_PATH=data
|
ENV HBOX_STORAGE_PREFIX_PATH=data
|
||||||
@@ -73,7 +74,7 @@ ENV HBOX_DATABASE_SQLITE_PATH=/data/homebox.db?_pragma=busy_timeout=2000&_pragma
|
|||||||
|
|
||||||
# Install necessary runtime dependencies
|
# Install necessary runtime dependencies
|
||||||
RUN apk --no-cache add ca-certificates wget && \
|
RUN apk --no-cache add ca-certificates wget && \
|
||||||
if [ "$TARGETARCH" != "arm" ] || [ "$TARGETARCH" != "riscv64" ]; then apk --no-cache add libwebp libavif; fi
|
if [ "$TARGETARCH" != "arm" ] || [ "$TARGETARCH" != "riscv64" ]; then apk --no-cache add libwebp libavif libheif libjxl; fi
|
||||||
|
|
||||||
# Create application directory and copy over built Go binary
|
# Create application directory and copy over built Go binary
|
||||||
RUN mkdir /app
|
RUN mkdir /app
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Node dependencies stage
|
# Node dependencies stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/node:lts-alpine AS frontend-dependencies
|
FROM public.ecr.aws/docker/library/node:lts-alpine AS frontend-dependencies
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install pnpm globally (caching layer)
|
# Install pnpm globally (caching layer)
|
||||||
@@ -10,7 +10,7 @@ COPY frontend/package.json frontend/pnpm-lock.yaml ./
|
|||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
# Build Nuxt (frontend) stage
|
# Build Nuxt (frontend) stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/node:lts-alpine AS frontend-builder
|
FROM public.ecr.aws/docker/library/node:lts-alpine AS frontend-builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install pnpm globally again (it can reuse the cache if not changed)
|
# Install pnpm globally again (it can reuse the cache if not changed)
|
||||||
@@ -22,7 +22,7 @@ COPY --from=frontend-dependencies /app/node_modules ./node_modules
|
|||||||
RUN pnpm build
|
RUN pnpm build
|
||||||
|
|
||||||
# Go dependencies stage
|
# Go dependencies stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/golang:alpine AS builder-dependencies
|
FROM public.ecr.aws/docker/library/golang:alpine AS builder-dependencies
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
# Copy go.mod and go.sum for better caching
|
# Copy go.mod and go.sum for better caching
|
||||||
@@ -30,7 +30,9 @@ COPY ./backend/go.mod ./backend/go.sum ./
|
|||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
# Build API stage
|
# Build API stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/golang:alpine AS builder
|
FROM public.ecr.aws/docker/library/golang:alpine AS builder
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
ARG BUILD_TIME
|
ARG BUILD_TIME
|
||||||
ARG COMMIT
|
ARG COMMIT
|
||||||
ARG VERSION
|
ARG VERSION
|
||||||
@@ -38,7 +40,8 @@ ARG VERSION
|
|||||||
# Install necessary build tools
|
# Install necessary build tools
|
||||||
RUN apk update && \
|
RUN apk update && \
|
||||||
apk upgrade && \
|
apk upgrade && \
|
||||||
apk add --no-cache git build-base gcc g++
|
apk add --no-cache git build-base gcc g++ && \
|
||||||
|
if [ "$TARGETARCH" != "arm" ] || [ "$TARGETARCH" != "riscv64" ]; then apk --no-cache add libwebp libavif libheif libjxl; fi
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
@@ -53,11 +56,11 @@ COPY --from=frontend-builder /app/.output/public ./app/api/static/public
|
|||||||
# Use cache for Go build artifacts
|
# Use cache for Go build artifacts
|
||||||
RUN --mount=type=cache,target=/root/.cache/go-build \
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
||||||
if [ "$TARGETARCH" = "arm" ] || [ "$TARGETARCH" = "riscv64" ]; \
|
if [ "$TARGETARCH" = "arm" ] || [ "$TARGETARCH" = "riscv64" ]; \
|
||||||
then CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build \
|
then echo "nodynamic" $TARGETOS $TARGETARCH; CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build \
|
||||||
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
||||||
-tags nodynamic -o /go/bin/api -v ./app/api/*.go; \
|
-tags nodynamic -o /go/bin/api -v ./app/api/*.go; \
|
||||||
else \
|
else \
|
||||||
CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build \
|
echo $TARGETOS $TARGETARCH; CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build \
|
||||||
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
-ldflags "-s -w -X main.commit=$COMMIT -X main.buildTime=$BUILD_TIME -X main.version=$VERSION" \
|
||||||
-o /go/bin/api -v ./app/api/*.go; \
|
-o /go/bin/api -v ./app/api/*.go; \
|
||||||
fi
|
fi
|
||||||
@@ -65,7 +68,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \
|
|||||||
RUN mkdir /data
|
RUN mkdir /data
|
||||||
|
|
||||||
# Production stage
|
# Production stage
|
||||||
FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/alpine:latest
|
FROM public.ecr.aws/docker/library/alpine:latest
|
||||||
ENV HBOX_MODE=production
|
ENV HBOX_MODE=production
|
||||||
ENV HBOX_STORAGE_CONN_STRING=file:///?no_tmp_dir=true
|
ENV HBOX_STORAGE_CONN_STRING=file:///?no_tmp_dir=true
|
||||||
ENV HBOX_STORAGE_PREFIX_PATH=data
|
ENV HBOX_STORAGE_PREFIX_PATH=data
|
||||||
@@ -73,7 +76,7 @@ ENV HBOX_DATABASE_SQLITE_PATH=/data/homebox.db?_pragma=busy_timeout=2000&_pragma
|
|||||||
|
|
||||||
# Install necessary runtime dependencies
|
# Install necessary runtime dependencies
|
||||||
RUN apk --no-cache add ca-certificates wget && \
|
RUN apk --no-cache add ca-certificates wget && \
|
||||||
if [ "$TARGETARCH" != "arm" ] || [ "$TARGETARCH" != "riscv64" ]; then apk --no-cache add libwebp libavif; fi
|
if [ "$TARGETARCH" != "arm" ] || [ "$TARGETARCH" != "riscv64" ]; then apk --no-cache add libwebp libavif libheif libjxl; fi
|
||||||
|
|
||||||
# Create a nonroot user with UID/GID 65532
|
# Create a nonroot user with UID/GID 65532
|
||||||
RUN addgroup -g 65532 nonroot && adduser -u 65532 -G nonroot -S nonroot
|
RUN addgroup -g 65532 nonroot && adduser -u 65532 -G nonroot -S nonroot
|
||||||
|
|||||||
@@ -31,9 +31,6 @@ builds:
|
|||||||
{{- else if eq .Arch "arm" }}nodynamic
|
{{- else if eq .Arch "arm" }}nodynamic
|
||||||
{{- else if eq .Arch "386" }}nodynamic
|
{{- else if eq .Arch "386" }}nodynamic
|
||||||
{{ end }}
|
{{ end }}
|
||||||
sboms:
|
|
||||||
- disable: false
|
|
||||||
artifacts: any
|
|
||||||
|
|
||||||
signs:
|
signs:
|
||||||
- cmd: cosign
|
- cmd: cosign
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -174,7 +175,7 @@ func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r
|
|||||||
ctx := services.NewContext(r.Context())
|
ctx := services.NewContext(r.Context())
|
||||||
switch r.Method {
|
switch r.Method {
|
||||||
case http.MethodGet:
|
case http.MethodGet:
|
||||||
doc, err := ctrl.svc.Items.AttachmentPath(r.Context(), attachmentID)
|
doc, err := ctrl.svc.Items.AttachmentPath(r.Context(), ctx.GID, attachmentID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Err(err).Msg("failed to get attachment path")
|
log.Err(err).Msg("failed to get attachment path")
|
||||||
return validate.NewRequestError(err, http.StatusInternalServerError)
|
return validate.NewRequestError(err, http.StatusInternalServerError)
|
||||||
@@ -203,7 +204,9 @@ func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r
|
|||||||
}
|
}
|
||||||
}(bucket)
|
}(bucket)
|
||||||
|
|
||||||
w.Header().Set("Content-Disposition", "attachment; filename="+doc.Title)
|
// Set the Content-Disposition header for RFC6266 compliance
|
||||||
|
disposition := "attachment; filename*=UTF-8''" + url.QueryEscape(doc.Title)
|
||||||
|
w.Header().Set("Content-Disposition", disposition)
|
||||||
http.ServeContent(w, r, doc.Title, doc.CreatedAt, file)
|
http.ServeContent(w, r, doc.Title, doc.CreatedAt, file)
|
||||||
return nil
|
return nil
|
||||||
|
|
||||||
@@ -227,9 +230,9 @@ func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r
|
|||||||
}
|
}
|
||||||
|
|
||||||
attachment.ID = attachmentID
|
attachment.ID = attachmentID
|
||||||
val, err := ctrl.svc.Items.AttachmentUpdate(ctx, ID, &attachment)
|
val, err := ctrl.svc.Items.AttachmentUpdate(ctx, ctx.GID, ID, &attachment)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Err(err).Msg("failed to delete attachment")
|
log.Err(err).Msg("failed to update attachment")
|
||||||
return validate.NewRequestError(err, http.StatusInternalServerError)
|
return validate.NewRequestError(err, http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (svc *ItemService) AttachmentPath(ctx context.Context, attachmentID uuid.UUID) (*ent.Attachment, error) {
|
func (svc *ItemService) AttachmentPath(ctx context.Context, gid uuid.UUID, attachmentID uuid.UUID) (*ent.Attachment, error) {
|
||||||
attachment, err := svc.repo.Attachments.Get(ctx, attachmentID)
|
attachment, err := svc.repo.Attachments.Get(ctx, gid, attachmentID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -19,16 +19,16 @@ func (svc *ItemService) AttachmentPath(ctx context.Context, attachmentID uuid.UU
|
|||||||
return attachment, nil
|
return attachment, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svc *ItemService) AttachmentUpdate(ctx Context, itemID uuid.UUID, data *repo.ItemAttachmentUpdate) (repo.ItemOut, error) {
|
func (svc *ItemService) AttachmentUpdate(ctx Context, gid uuid.UUID, itemID uuid.UUID, data *repo.ItemAttachmentUpdate) (repo.ItemOut, error) {
|
||||||
// Update Attachment
|
// Update Attachment
|
||||||
attachment, err := svc.repo.Attachments.Update(ctx, data.ID, data)
|
attachment, err := svc.repo.Attachments.Update(ctx, gid, data.ID, data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return repo.ItemOut{}, err
|
return repo.ItemOut{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update Document
|
// Update Document
|
||||||
attDoc := attachment
|
attDoc := attachment
|
||||||
_, err = svc.repo.Attachments.Rename(ctx, attDoc.ID, data.Title)
|
_, err = svc.repo.Attachments.Rename(ctx, gid, attDoc.ID, data.Title)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return repo.ItemOut{}, err
|
return repo.ItemOut{}, err
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ func (svc *ItemService) AttachmentAdd(ctx Context, itemID uuid.UUID, filename st
|
|||||||
|
|
||||||
func (svc *ItemService) AttachmentDelete(ctx context.Context, gid uuid.UUID, id uuid.UUID, attachmentID uuid.UUID) error {
|
func (svc *ItemService) AttachmentDelete(ctx context.Context, gid uuid.UUID, id uuid.UUID, attachmentID uuid.UUID) error {
|
||||||
// Delete the attachment
|
// Delete the attachment
|
||||||
err := svc.repo.Attachments.Delete(ctx, attachmentID)
|
err := svc.repo.Attachments.Delete(ctx, gid, id, attachmentID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -256,16 +256,46 @@ func (r *AttachmentRepo) Create(ctx context.Context, itemID uuid.UUID, doc ItemC
|
|||||||
return attachmentDb, nil
|
return attachmentDb, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *AttachmentRepo) Get(ctx context.Context, id uuid.UUID) (*ent.Attachment, error) {
|
func (r *AttachmentRepo) Get(ctx context.Context, gid uuid.UUID, id uuid.UUID) (*ent.Attachment, error) {
|
||||||
return r.db.Attachment.
|
first, err := r.db.Attachment.Query().Where(attachment.ID(id)).Only(ctx)
|
||||||
Query().
|
if err != nil {
|
||||||
Where(attachment.ID(id)).
|
return nil, err
|
||||||
WithItem().
|
}
|
||||||
WithThumbnail().
|
if first.Type == attachment.TypeThumbnail {
|
||||||
Only(ctx)
|
// If the attachment is a thumbnail, get the parent attachment and check if it belongs to the specified group
|
||||||
|
return r.db.Attachment.
|
||||||
|
Query().
|
||||||
|
Where(attachment.ID(id),
|
||||||
|
attachment.HasThumbnailWith(attachment.HasItemWith(item.HasGroupWith(group.ID(gid)))),
|
||||||
|
).
|
||||||
|
WithItem().
|
||||||
|
WithThumbnail().
|
||||||
|
Only(ctx)
|
||||||
|
} else {
|
||||||
|
// For regular attachments, check if the attachment's item belongs to the specified group
|
||||||
|
return r.db.Attachment.
|
||||||
|
Query().
|
||||||
|
Where(attachment.ID(id),
|
||||||
|
attachment.HasItemWith(item.HasGroupWith(group.ID(gid))),
|
||||||
|
).
|
||||||
|
WithItem().
|
||||||
|
WithThumbnail().
|
||||||
|
Only(ctx)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *AttachmentRepo) Update(ctx context.Context, id uuid.UUID, data *ItemAttachmentUpdate) (*ent.Attachment, error) {
|
func (r *AttachmentRepo) Update(ctx context.Context, gid uuid.UUID, id uuid.UUID, data *ItemAttachmentUpdate) (*ent.Attachment, error) {
|
||||||
|
// Validate that the attachment belongs to the specified group
|
||||||
|
_, err := r.db.Attachment.Query().
|
||||||
|
Where(
|
||||||
|
attachment.ID(id),
|
||||||
|
attachment.HasItemWith(item.HasGroupWith(group.ID(gid))),
|
||||||
|
).
|
||||||
|
Only(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: execute within Tx
|
// TODO: execute within Tx
|
||||||
typ := attachment.Type(data.Type)
|
typ := attachment.Type(data.Type)
|
||||||
|
|
||||||
@@ -301,13 +331,19 @@ func (r *AttachmentRepo) Update(ctx context.Context, id uuid.UUID, data *ItemAtt
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return r.Get(ctx, updatedAttachment.ID)
|
return r.Get(ctx, gid, updatedAttachment.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *AttachmentRepo) Delete(ctx context.Context, id uuid.UUID) error {
|
func (r *AttachmentRepo) Delete(ctx context.Context, gid uuid.UUID, itemId uuid.UUID, id uuid.UUID) error {
|
||||||
doc, error := r.db.Attachment.Get(ctx, id)
|
// Validate that the attachment belongs to the specified group
|
||||||
if error != nil {
|
doc, err := r.db.Attachment.Query().
|
||||||
return error
|
Where(
|
||||||
|
attachment.ID(id),
|
||||||
|
attachment.HasItemWith(item.HasGroupWith(group.ID(gid))),
|
||||||
|
).
|
||||||
|
Only(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
all, err := r.db.Attachment.Query().Where(attachment.Path(doc.Path)).All(ctx)
|
all, err := r.db.Attachment.Query().Where(attachment.Path(doc.Path)).All(ctx)
|
||||||
@@ -358,7 +394,18 @@ func (r *AttachmentRepo) Delete(ctx context.Context, id uuid.UUID) error {
|
|||||||
return r.db.Attachment.DeleteOneID(id).Exec(ctx)
|
return r.db.Attachment.DeleteOneID(id).Exec(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *AttachmentRepo) Rename(ctx context.Context, id uuid.UUID, title string) (*ent.Attachment, error) {
|
func (r *AttachmentRepo) Rename(ctx context.Context, gid uuid.UUID, id uuid.UUID, title string) (*ent.Attachment, error) {
|
||||||
|
// Validate that the attachment belongs to the specified group
|
||||||
|
_, err := r.db.Attachment.Query().
|
||||||
|
Where(
|
||||||
|
attachment.ID(id),
|
||||||
|
attachment.HasItemWith(item.HasGroupWith(group.ID(gid))),
|
||||||
|
).
|
||||||
|
Only(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return r.db.Attachment.UpdateOneID(id).SetTitle(title).Save(ctx)
|
return r.db.Attachment.UpdateOneID(id).SetTitle(title).Save(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ services:
|
|||||||
image: homebox
|
image: homebox
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: ./Dockerfile
|
dockerfile: ./Dockerfile.rootless
|
||||||
args:
|
args:
|
||||||
- COMMIT=head
|
- COMMIT=head
|
||||||
- BUILD_TIME=0001-01-01T00:00:00Z
|
- BUILD_TIME=0001-01-01T00:00:00Z
|
||||||
@@ -12,7 +12,6 @@ services:
|
|||||||
- linux/amd64
|
- linux/amd64
|
||||||
- linux/arm64
|
- linux/arm64
|
||||||
- linux/arm/v7
|
- linux/arm/v7
|
||||||
- linux/riscv64
|
|
||||||
environment:
|
environment:
|
||||||
- HBOX_DEBUG=true
|
- HBOX_DEBUG=true
|
||||||
- HBOX_LOGGER_LEVEL=-1
|
- HBOX_LOGGER_LEVEL=-1
|
||||||
|
|||||||
@@ -41,7 +41,6 @@
|
|||||||
class="absolute left-0 top-0 size-full cursor-pointer opacity-0"
|
class="absolute left-0 top-0 size-full cursor-pointer opacity-0"
|
||||||
type="file"
|
type="file"
|
||||||
accept="image/png,image/jpeg,image/gif,image/avif,image/webp;capture=camera"
|
accept="image/png,image/jpeg,image/gif,image/avif,image/webp;capture=camera"
|
||||||
capture="environment"
|
|
||||||
multiple
|
multiple
|
||||||
@change="previewImage"
|
@change="previewImage"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -204,7 +204,7 @@
|
|||||||
"follow_dev": "Sledovat vývojáře",
|
"follow_dev": "Sledovat vývojáře",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/v'{ version }\" target=\"_blank\"> Verze: { version } Sestavení: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Verze: { version } Sestavení: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub projekt",
|
"github": "GitHub projekt",
|
||||||
"insured": "Pojištěné",
|
"insured": "Pojištěné",
|
||||||
|
|||||||
@@ -24,6 +24,12 @@
|
|||||||
"new_version_available_link": "Klicken Sie hier, um die Release Notes anzuzeigen"
|
"new_version_available_link": "Klicken Sie hier, um die Release Notes anzuzeigen"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"color_selector": {
|
||||||
|
"clear": "Farbe löschen",
|
||||||
|
"color": "Farbe",
|
||||||
|
"no_color": "Keine Farbe",
|
||||||
|
"no_color_selected": "Keine Farbe ausgewählt"
|
||||||
|
},
|
||||||
"form": {
|
"form": {
|
||||||
"password": {
|
"password": {
|
||||||
"toggle_show": "Passwort anzeigen"
|
"toggle_show": "Passwort anzeigen"
|
||||||
@@ -107,8 +113,8 @@
|
|||||||
"rotate_process_failed": "Das gedrehte Bild konnte nicht verarbeitet werden",
|
"rotate_process_failed": "Das gedrehte Bild konnte nicht verarbeitet werden",
|
||||||
"some_photos_failed": "{Anzahl, Plural, =0 {Keine Fotos zum Hochladen.} =1 {1 Foto konnte nicht hochgeladen werden.} andere {Einige Fotos konnten nicht hochgeladen werden.}}",
|
"some_photos_failed": "{Anzahl, Plural, =0 {Keine Fotos zum Hochladen.} =1 {1 Foto konnte nicht hochgeladen werden.} andere {Einige Fotos konnten nicht hochgeladen werden.}}",
|
||||||
"upload_failed": "Hochladen des Bildes Fehlgeschlagen: { photoName }",
|
"upload_failed": "Hochladen des Bildes Fehlgeschlagen: { photoName }",
|
||||||
"upload_success": "{Anzahl, Plural, =0 {Keine Fotos hochgeladen.} =1 {Foto erfolgreich hochgeladen.} andere {Alle Fotos erfolgreich hochgeladen.}}",
|
"upload_success": "{Anzahl, plural, =0 {Keine Fotos hochgeladen.} =1 {Foto erfolgreich hochgeladen.} other {Alle Fotos erfolgreich hochgeladen.}}",
|
||||||
"uploading_photos": "{Anzahl, Plural, =0 {Keine Fotos zum Hochladen} =1 {1 Foto wird hochgeladen...} andere {{Anzahl} Fotos werden hochgeladen...}}"
|
"uploading_photos": "{Anzahl, plural, =0 {Keine Fotos zum Hochladen} =1 {1 Foto wird hochgeladen...} other {{Anzahl} Fotos werden hochgeladen...}}"
|
||||||
},
|
},
|
||||||
"upload_photos": "Upload Bilder",
|
"upload_photos": "Upload Bilder",
|
||||||
"uploaded": "Bild hochgeladen"
|
"uploaded": "Bild hochgeladen"
|
||||||
@@ -196,7 +202,7 @@
|
|||||||
"follow_dev": "Dem Entwickler folgen",
|
"follow_dev": "Dem Entwickler folgen",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Version: { version } Erstellt: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Version: { version } Erstellt: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub-Projekt",
|
"github": "GitHub-Projekt",
|
||||||
"insured": "Versichert",
|
"insured": "Versichert",
|
||||||
|
|||||||
@@ -115,15 +115,15 @@
|
|||||||
"some_photos_failed": "{count, plural, =0 {No photos to upload.} =1 {1 photo failed to upload.} other {Some photos failed to upload.}}",
|
"some_photos_failed": "{count, plural, =0 {No photos to upload.} =1 {1 photo failed to upload.} other {Some photos failed to upload.}}",
|
||||||
"upload_failed": "Failed to upload photo: { photoName }",
|
"upload_failed": "Failed to upload photo: { photoName }",
|
||||||
"upload_success": "{count, plural, =0 {No photos uploaded.} =1 {Photo uploaded successfully.} other {All photos uploaded successfully.}}",
|
"upload_success": "{count, plural, =0 {No photos uploaded.} =1 {Photo uploaded successfully.} other {All photos uploaded successfully.}}",
|
||||||
"uploading_photos": "{count, plural, =0 {No photos to upload} =1 {Uploading 1 photo...} other {Uploading {count} photos...}}"
|
"uploading_photos": "{count, plural, =0 {No photos to upload} =1 {Uploading 1 photo…} other {Uploading {count} photos…}}"
|
||||||
},
|
},
|
||||||
"upload_photos": "Upload Photos",
|
"upload_photos": "Upload Photos",
|
||||||
"uploaded": "Uploaded Photo"
|
"uploaded": "Uploaded Photo"
|
||||||
},
|
},
|
||||||
"selector": {
|
"selector": {
|
||||||
"no_results": "No Results Found",
|
"no_results": "No Results Found",
|
||||||
"placeholder": "Select...",
|
"placeholder": "Select…",
|
||||||
"search_placeholder": "Type to search..."
|
"search_placeholder": "Type to search…"
|
||||||
},
|
},
|
||||||
"view": {
|
"view": {
|
||||||
"selectable": {
|
"selectable": {
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
"select_location": "Select a Location"
|
"select_location": "Select a Location"
|
||||||
},
|
},
|
||||||
"tree": {
|
"tree": {
|
||||||
"no_locations": "No locations available. Add new locations through the\n `<`span class=\"link-primary\"`>`Create`<`/span`>` button on the navigation bar."
|
"no_locations": "No locations available. Add new locations through the\n '<span class=\"link-primary\">'Create'</span>' button on the navigation bar."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"quick_menu": {
|
"quick_menu": {
|
||||||
@@ -204,14 +204,14 @@
|
|||||||
"follow_dev": "Follow the Developer",
|
"follow_dev": "Follow the Developer",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/v'{ version }\" target=\"_blank\"> Version: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Version: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub Project",
|
"github": "GitHub Project",
|
||||||
"insured": "Insured",
|
"insured": "Insured",
|
||||||
"items": "Items",
|
"items": "Items",
|
||||||
"join_discord": "Join the Discord",
|
"join_discord": "Join the Discord",
|
||||||
"labels": "Labels",
|
"labels": "Labels",
|
||||||
"loading": "Loading...",
|
"loading": "Loading…",
|
||||||
"locations": "Locations",
|
"locations": "Locations",
|
||||||
"maintenance": "Maintenance",
|
"maintenance": "Maintenance",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Seguir al Desarrollador",
|
"follow_dev": "Seguir al Desarrollador",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Versión: { version } Compilación: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Versión: { version } Compilación: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Proyecto GitHub",
|
"github": "Proyecto GitHub",
|
||||||
"insured": "Asegurado",
|
"insured": "Asegurado",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Seuraa kehittäjää",
|
"follow_dev": "Seuraa kehittäjää",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Versio: { version } Rakenna: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Versio: { version } Rakenna: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub Projekti",
|
"github": "GitHub Projekti",
|
||||||
"insured": "Vakuuttaa",
|
"insured": "Vakuuttaa",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Suivre le développeur",
|
"follow_dev": "Suivre le développeur",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Version : { version } Commit : { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Version : { version } Commit : { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Projet GitHub",
|
"github": "Projet GitHub",
|
||||||
"insured": "Assuré",
|
"insured": "Assuré",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Kövesd a fejlesztőt",
|
"follow_dev": "Kövesd a fejlesztőt",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Verzió: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Verzió: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Github projekt",
|
"github": "Github projekt",
|
||||||
"insured": "Biztosítva",
|
"insured": "Biztosítva",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Segui lo Sviluppatore",
|
"follow_dev": "Segui lo Sviluppatore",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Versione: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Versione: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Progetto GitHub",
|
"github": "Progetto GitHub",
|
||||||
"insured": "Assicurato",
|
"insured": "Assicurato",
|
||||||
|
|||||||
@@ -587,7 +587,7 @@
|
|||||||
"import": "インポート (CSVの取り込み)",
|
"import": "インポート (CSVの取り込み)",
|
||||||
"import_button": "CSVファイルを選択",
|
"import_button": "CSVファイルを選択",
|
||||||
"import_ref_confirm": "",
|
"import_ref_confirm": "",
|
||||||
"import_sub": "Homeboxで利用可能なCSVファイルをインポートします。'<br>''<code>'HB.import_ref'</code>'が存在しないアイテムに重複がある場合は上書きされません。'<br>''<code>'HB.import_ref'</code>'が存在するアイテムに重複がある場合は、同じ'<code>'HB.import_ref'</code>'を持つアイテムのデータが上書きされます。'<br>'どちらも、重複していない場合は関係なく追加されます。"
|
"import_sub": "Homeboxで利用可能なCSVファイルをインポートします。\n'<code>'HB.import_ref'</code>'が存在しないアイテムに重複がある場合は上書きされません。\n'<code>'HB.import_ref'</code>'が存在するアイテムに重複がある場合は、同じ'<code>'HB.import_ref'</code>'を持つアイテムのデータが上書きされます。\nどちらも、重複していない場合は関係なく追加されます。"
|
||||||
},
|
},
|
||||||
"import_export_sub": "登録されたアイテムをCSVファイルにインポートおよびエクスポートします。Homeboxのソフトウェアを切り替える場合などに便利です。",
|
"import_export_sub": "登録されたアイテムをCSVファイルにインポートおよびエクスポートします。Homeboxのソフトウェアを切り替える場合などに便利です。",
|
||||||
"reports": "レポート",
|
"reports": "レポート",
|
||||||
|
|||||||
@@ -204,7 +204,7 @@
|
|||||||
"follow_dev": "Følg utvikleren",
|
"follow_dev": "Følg utvikleren",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Versjon: { version } Bygg: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Versjon: { version } Bygg: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub-prosjekt",
|
"github": "GitHub-prosjekt",
|
||||||
"insured": "Forsikret",
|
"insured": "Forsikret",
|
||||||
|
|||||||
@@ -204,7 +204,7 @@
|
|||||||
"follow_dev": "Volg de ontwikkelaar",
|
"follow_dev": "Volg de ontwikkelaar",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/v'{ version }\" target=\"_blank\"> Version: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Version: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub Project",
|
"github": "GitHub Project",
|
||||||
"insured": "Verzekerd",
|
"insured": "Verzekerd",
|
||||||
@@ -571,7 +571,7 @@
|
|||||||
"actions": "Acties inventariseren",
|
"actions": "Acties inventariseren",
|
||||||
"actions_set": {
|
"actions_set": {
|
||||||
"create_missing_thumbnails": "Ontbrekende miniaturen maken",
|
"create_missing_thumbnails": "Ontbrekende miniaturen maken",
|
||||||
"create_missing_thumbnails_button": "Nieuwe thumbnails aanmaken",
|
"create_missing_thumbnails_button": "Nieuwe miniaturen aanmaken",
|
||||||
"create_missing_thumbnails_confirm": "Weet u zeker dat u ontbrekende miniaturen wilt maken? Dit kan even duren en kan niet worden gepauzeerd.",
|
"create_missing_thumbnails_confirm": "Weet u zeker dat u ontbrekende miniaturen wilt maken? Dit kan even duren en kan niet worden gepauzeerd.",
|
||||||
"create_missing_thumbnails_sub": "Maakt miniaturen voor alle bijlagen die worden ondersteund door de huidige configuratie. Dit is handig voor bijlagen die werden geüpload voor de v0.20.0 release van Homebox. Bestaande miniaturen worden niet overschreven, er worden alleen nieuwe miniaturen gemaakt voor bijlagen die geen miniatuurafbeelding hebben. Houd er rekening mee dat de miniaturen in de achtergrond worden gemaakt en dat dit een tijdje kan duren.",
|
"create_missing_thumbnails_sub": "Maakt miniaturen voor alle bijlagen die worden ondersteund door de huidige configuratie. Dit is handig voor bijlagen die werden geüpload voor de v0.20.0 release van Homebox. Bestaande miniaturen worden niet overschreven, er worden alleen nieuwe miniaturen gemaakt voor bijlagen die geen miniatuurafbeelding hebben. Houd er rekening mee dat de miniaturen in de achtergrond worden gemaakt en dat dit een tijdje kan duren.",
|
||||||
"ensure_ids": "Zorg voor item-ID's",
|
"ensure_ids": "Zorg voor item-ID's",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Śledź dewelopera",
|
"follow_dev": "Śledź dewelopera",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Wersja: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"'>' Wersja: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Projekt na GitHubie",
|
"github": "Projekt na GitHubie",
|
||||||
"insured": "Ubezpieczony",
|
"insured": "Ubezpieczony",
|
||||||
|
|||||||
@@ -168,7 +168,7 @@
|
|||||||
"select_location": "Selecionar um Local"
|
"select_location": "Selecionar um Local"
|
||||||
},
|
},
|
||||||
"tree": {
|
"tree": {
|
||||||
"no_locations": "Não há locais disponíveis. Adicione novos locais\n através do botão \"Criar\" na barra de navegação."
|
"no_locations": "Não há locais disponíveis. Adicione novos locais\n através do botão '<span class=\"link-primary\">'Criar'</span>' na barra de navegação."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"quick_menu": {
|
"quick_menu": {
|
||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Seguir o desenvolvedor",
|
"follow_dev": "Seguir o desenvolvedor",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Versão: { version } Compilação: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Versão: { version } Compilação: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Projeto GitHub",
|
"github": "Projeto GitHub",
|
||||||
"insured": "Segurado",
|
"insured": "Segurado",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Siga o Desenvolvedor",
|
"follow_dev": "Siga o Desenvolvedor",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Versão: { version } Compilação: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Versão: { version } Compilação: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Projeto GitHub",
|
"github": "Projeto GitHub",
|
||||||
"insured": "Com seguro",
|
"insured": "Com seguro",
|
||||||
|
|||||||
@@ -7,12 +7,12 @@
|
|||||||
"shift": "Shift"
|
"shift": "Shift"
|
||||||
},
|
},
|
||||||
"import_dialog": {
|
"import_dialog": {
|
||||||
"change_warning": "Správanie pre importy s existujúcimi import_refs sa zmenilo. Ak sa v súbore CSV nachádza import_ref,\npoložka bude aktualizovaná hodnotami v súbore CSV.",
|
"change_warning": "Správanie importov s existujúcimi import_refs sa zmenilo. Ak sa v súbore CSV nachádza import_ref,\npoložka bude aktualizovaná hodnotami v súbore CSV.",
|
||||||
"description": "Importujte súbor CSV obsahujúci vaše položky, štítky a miesta. Ďalšie informácie nájdete v dokumentácii\npožadovaný formát.",
|
"description": "Importujte súbor CSV obsahujúci vaše položky, štítky a miesta. Ďalšie informácie o vyžadovanom formáte importu\nnájdete v dokumentácii.",
|
||||||
"title": "Importovať súbor CSV",
|
"title": "Importovať súbor CSV",
|
||||||
"toast": {
|
"toast": {
|
||||||
"import_failed": "Import skončil s chybou. Skúste to, prosím, neskôr.",
|
"import_failed": "Import skončil s chybou. Skúste to, prosím, neskôr.",
|
||||||
"import_success": "Import bol úspešný!",
|
"import_success": "Import prebehol úspešne!",
|
||||||
"please_select_file": "Prosím, vyberte súbor, ktorý sa má naimportovať."
|
"please_select_file": "Prosím, vyberte súbor, ktorý sa má naimportovať."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -81,8 +81,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"page_qr_code": {
|
"page_qr_code": {
|
||||||
"page_url": "URL stránka",
|
"page_url": "URL adresa stránky",
|
||||||
"qr_tooltip": "Zobraz QR kód"
|
"qr_tooltip": "Zobraziť QR kód"
|
||||||
},
|
},
|
||||||
"password_score": {
|
"password_score": {
|
||||||
"password_strength": "Sila hesla"
|
"password_strength": "Sila hesla"
|
||||||
@@ -94,36 +94,36 @@
|
|||||||
"open_new_tab": "Otvoriť na novej karte"
|
"open_new_tab": "Otvoriť na novej karte"
|
||||||
},
|
},
|
||||||
"create_modal": {
|
"create_modal": {
|
||||||
"delete_photo": "Vymazať fotku",
|
"delete_photo": "Vymazať fotografiu",
|
||||||
"item_description": "Popis položky",
|
"item_description": "Popis položky",
|
||||||
"item_name": "Názov položky",
|
"item_name": "Názov položky",
|
||||||
"item_photo": "Obrázok predmetu 📷",
|
"item_photo": "Fotografia predmetu 📷",
|
||||||
"item_quantity": "Počet predmetov",
|
"item_quantity": "Počet predmetov",
|
||||||
"parent_item": "Nadradená položka",
|
"parent_item": "Nadradená položka",
|
||||||
"rotate_photo": "Otočiť fotku",
|
"rotate_photo": "Otočiť fotografiu",
|
||||||
"set_as_primary_photo": "",
|
"set_as_primary_photo": "Nastaviť ako { isPrimary, select, true {non-} false {} other {}}primárnu fotografiu",
|
||||||
"title": "Vytvoriť položku",
|
"title": "Vytvoriť položku",
|
||||||
"toast": {
|
"toast": {
|
||||||
"already_creating": "",
|
"already_creating": "Už vytváram položku",
|
||||||
"create_failed": "",
|
"create_failed": "Nepodarilo sa vytvoriť položku",
|
||||||
"create_success": "",
|
"create_success": "Položka bola vytvorená",
|
||||||
"failed_load_parent": "",
|
"failed_load_parent": "Nadradenú položku sa nepodarilo načítať - vyberte ju, prosím, ručne",
|
||||||
"no_canvas_support": "",
|
"no_canvas_support": "Váš prehliadač nepodporuje operácie canvas",
|
||||||
"please_select_location": "",
|
"please_select_location": "Prosím, vyberte miesto.",
|
||||||
"rotate_failed": "",
|
"rotate_failed": "Obrázok sa nepodarilo otočiť: { error }",
|
||||||
"rotate_process_failed": "",
|
"rotate_process_failed": "Nepodarilo sa spracovať otočený obrázok",
|
||||||
"some_photos_failed": "",
|
"some_photos_failed": "{count, plural, =0 {Žiadne fotografie na nahranie.} =1 {1 fotografiu sa nepodarilo nahrať.} other {Niektoré fotografie sa nepodarilo nahrať.}}",
|
||||||
"upload_failed": "",
|
"upload_failed": "Nepodarilo sa nahrať fotografiu: { photoName }",
|
||||||
"upload_success": "",
|
"upload_success": "{count, plural, =0 {Žiadne fotografie neboli nahrané.} =1 {Fotografia bola úspešne nahraná.} other {Všetky fotografie boli úspešne nahrané.}}",
|
||||||
"uploading_photos": ""
|
"uploading_photos": "{count, plural, =0 {Žiadne fotografie na nahranie} =1 {Nahrávam 1 fotografiu...} other {Nahrávam {count} fotografií...}}"
|
||||||
},
|
},
|
||||||
"upload_photos": "Nahraj fotky",
|
"upload_photos": "Nahrať fotografie",
|
||||||
"uploaded": ""
|
"uploaded": "Nahraná fotografia"
|
||||||
},
|
},
|
||||||
"selector": {
|
"selector": {
|
||||||
"no_results": "",
|
"no_results": "Nenašli sa žiadne výsledky",
|
||||||
"placeholder": "",
|
"placeholder": "Vybrať...",
|
||||||
"search_placeholder": ""
|
"search_placeholder": "Zadajte, čo chcete vyhľadať..."
|
||||||
},
|
},
|
||||||
"view": {
|
"view": {
|
||||||
"selectable": {
|
"selectable": {
|
||||||
@@ -134,10 +134,10 @@
|
|||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"headers": "Hlavička",
|
"headers": "Hlavička",
|
||||||
"page": "Stránka",
|
"page": "Strana",
|
||||||
"rows_per_page": "Počet riadkov na stránku",
|
"rows_per_page": "Počet riadkov na stranu",
|
||||||
"table_settings": "Nastavenie tabuľky",
|
"table_settings": "Nastavenie tabuľky",
|
||||||
"view_item": ""
|
"view_item": "Zobraziť položku"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -148,10 +148,10 @@
|
|||||||
"label_name": "Názov štítku",
|
"label_name": "Názov štítku",
|
||||||
"title": "Vytvoriť štítok",
|
"title": "Vytvoriť štítok",
|
||||||
"toast": {
|
"toast": {
|
||||||
"already_creating": "",
|
"already_creating": "Štítok sa už vytvára",
|
||||||
"create_failed": "",
|
"create_failed": "Nepodarilo sa vytvoriť štítok",
|
||||||
"create_success": "Štítok bol vytvorený",
|
"create_success": "Štítok bol vytvorený",
|
||||||
"label_name_too_long": "Meno štítku nesmie byť dlhšie ako 50 znakov"
|
"label_name_too_long": "Názov štítku nesmie byť dlhší ako 50 znakov"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"selector": {
|
"selector": {
|
||||||
@@ -162,71 +162,71 @@
|
|||||||
"create_modal": {
|
"create_modal": {
|
||||||
"location_description": "Popis miesta",
|
"location_description": "Popis miesta",
|
||||||
"location_name": "Názov miesta",
|
"location_name": "Názov miesta",
|
||||||
"title": "Vytvoriť polohu",
|
"title": "Vytvoriť miesto",
|
||||||
"toast": {
|
"toast": {
|
||||||
"already_creating": "Lokalita sa už vytvára",
|
"already_creating": "Miesto sa už vytvára",
|
||||||
"create_failed": "",
|
"create_failed": "Nepodarilo sa vytvoriť miesto",
|
||||||
"create_success": ""
|
"create_success": "Miesto bolo vytvorené"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"selector": {
|
"selector": {
|
||||||
"no_location_found": "Poloha nenájdená",
|
"no_location_found": "Miesto nebolo nájdené",
|
||||||
"parent_location": "Poloha rodiča",
|
"parent_location": "Miesto nadradenej položky",
|
||||||
"search_location": "",
|
"search_location": "Prehľadávať miesta",
|
||||||
"select_location": ""
|
"select_location": "Vyberte miesto"
|
||||||
},
|
},
|
||||||
"tree": {
|
"tree": {
|
||||||
"no_locations": "Nie sú k dispozícii žiadne miesta. Pridajte nové miesta cez\n `<`span class=\"link-primary\"`>`Vytvoriť`<`/span`>` na navigačnom paneli."
|
"no_locations": "Nie sú k dispozícii žiadne miesta. Pridajte nové miesta cez\n `<`span class=\"link-primary\"`>`Vytvoriť`<`/span`>` na navigačnom paneli."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"quick_menu": {
|
"quick_menu": {
|
||||||
"no_results": "",
|
"no_results": "Nenašli sa žiadne výsledky.",
|
||||||
"shortcut_hint": "Pomocou číselných tlačidiel rýchlo vyberte akciu."
|
"shortcut_hint": "Pomocou číselných tlačidiel rýchlo vyberte akciu."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"global": {
|
"global": {
|
||||||
"add": "Pridať",
|
"add": "Pridať",
|
||||||
"archived": "",
|
"archived": "Archivované",
|
||||||
"build": "Zostava: { build }",
|
"build": "Zostava: { build }",
|
||||||
"cancel": "",
|
"cancel": "Zrušiť",
|
||||||
"confirm": "Potvrďte",
|
"confirm": "Potvrďte",
|
||||||
"create": "Vytvorte",
|
"create": "Vytvoriť",
|
||||||
"create_and_add": "Vytvoriť a pridať ďalšie",
|
"create_and_add": "Vytvoriť a pridať ďalšie",
|
||||||
"create_subitem": "",
|
"create_subitem": "Vytvoriť podpoložku",
|
||||||
"created": "Vytvorené",
|
"created": "Vytvorené",
|
||||||
"delete": "Odstrániť",
|
"delete": "Odstrániť",
|
||||||
"delete_confirm": "",
|
"delete_confirm": "Naozaj chcete odstrániť túto položku? ",
|
||||||
"demo_instance": "",
|
"demo_instance": "Toto je ukážková inštancia",
|
||||||
"details": "Podrobnosti",
|
"details": "Podrobnosti",
|
||||||
"duplicate": "Duplicitné",
|
"duplicate": "Duplikovať",
|
||||||
"edit": "Upraviť",
|
"edit": "Upraviť",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"follow_dev": "Sledujte vývojára",
|
"follow_dev": "Sledujte vývojára",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": ""
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Verzia: { version } Zostavenie: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "Projekt GitHub",
|
"github": "Projekt GitHub",
|
||||||
"insured": "",
|
"insured": "Poistené",
|
||||||
"items": "Položky",
|
"items": "Položky",
|
||||||
"join_discord": "Pripojte sa k Discordu",
|
"join_discord": "Pripojte sa k Discordu",
|
||||||
"labels": "Štítky",
|
"labels": "Štítky",
|
||||||
"loading": "",
|
"loading": "Načítam...",
|
||||||
"locations": "Miesta",
|
"locations": "Miesta",
|
||||||
"maintenance": "Údržba",
|
"maintenance": "Údržba",
|
||||||
"name": "Meno",
|
"name": "Názov",
|
||||||
"navigate": "Navigovať",
|
"navigate": "Navigovať",
|
||||||
"password": "heslo",
|
"password": "heslo",
|
||||||
"quantity": "",
|
"quantity": "Množstvo",
|
||||||
"read_docs": "Prečítajte si Dokumenty",
|
"read_docs": "Prečítajte si Dokumenty",
|
||||||
"return_home": "",
|
"return_home": "Vrátiť sa na začiatok",
|
||||||
"save": "Uložiť",
|
"save": "Uložiť",
|
||||||
"search": "Hľadať",
|
"search": "Hľadať",
|
||||||
"sign_out": "Odhlásiť sa",
|
"sign_out": "Odhlásiť sa",
|
||||||
"submit": "Odoslať",
|
"submit": "Odoslať",
|
||||||
"unknown": "",
|
"unknown": "Neznáme",
|
||||||
"update": "Aktualizovať",
|
"update": "Aktualizovať",
|
||||||
"updating": "",
|
"updating": "Aktualizujem",
|
||||||
"value": "Hodnota",
|
"value": "Hodnota",
|
||||||
"version": "Verzia: { version }",
|
"version": "Verzia: { version }",
|
||||||
"welcome": "Vitajte, { username }"
|
"welcome": "Vitajte, { username }"
|
||||||
@@ -252,13 +252,13 @@
|
|||||||
"set_name": "Ako sa voláte?",
|
"set_name": "Ako sa voláte?",
|
||||||
"set_password": "Nastavte si heslo",
|
"set_password": "Nastavte si heslo",
|
||||||
"tagline": "Sledujte, organizujte a spravujte svoje veci.",
|
"tagline": "Sledujte, organizujte a spravujte svoje veci.",
|
||||||
"title": "",
|
"title": "Usporiadajte a označte svoje veci",
|
||||||
"toast": {
|
"toast": {
|
||||||
"invalid_email": "",
|
"invalid_email": "Neplatná e-mailová adresa",
|
||||||
"invalid_email_password": "",
|
"invalid_email_password": "Neplatná e-mailová adresa alebo heslo",
|
||||||
"login_success": "",
|
"login_success": "Úspešne prihlásený",
|
||||||
"problem_registering": "",
|
"problem_registering": "Problém s registráciou používateľa",
|
||||||
"user_registered": ""
|
"user_registered": "Používateľ bol zaregistrovaný"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"items": {
|
"items": {
|
||||||
@@ -266,25 +266,25 @@
|
|||||||
"advanced": "Pokročilé",
|
"advanced": "Pokročilé",
|
||||||
"archived": "Archivované",
|
"archived": "Archivované",
|
||||||
"asset_id": "ID majetku",
|
"asset_id": "ID majetku",
|
||||||
"associated_with_multiple": "",
|
"associated_with_multiple": "Toto ID aktíva je priradené k viacerým položkám",
|
||||||
"attachment": "Príloha",
|
"attachment": "Príloha",
|
||||||
"attachments": "Prílohy",
|
"attachments": "Prílohy",
|
||||||
"changes_persisted_immediately": "Zmeny príloh sa okamžite uložia",
|
"changes_persisted_immediately": "Zmeny v prílohách budú uložené okamžite",
|
||||||
"created_at": "Čas vytvorenia",
|
"created_at": "Čas vytvorenia",
|
||||||
"custom_fields": "Vlastné polia",
|
"custom_fields": "Vlastné polia",
|
||||||
"delete_attachment_confirm": "",
|
"delete_attachment_confirm": "Naozaj chcete odstrániť túto prílohu?",
|
||||||
"delete_item_confirm": "",
|
"delete_item_confirm": "Naozaj chcete odstrániť túto položku?",
|
||||||
"description": "Popis",
|
"description": "Popis",
|
||||||
"details": "Podrobnosti",
|
"details": "Podrobnosti",
|
||||||
"drag_and_drop": "Presuňte súbory sem alebo kliknutím vyberte súbory",
|
"drag_and_drop": "Presuňte súbory sem alebo kliknutím vyberte súbory",
|
||||||
"edit": {
|
"edit": {
|
||||||
"edit_attachment_dialog": {
|
"edit_attachment_dialog": {
|
||||||
"attachment_title": "",
|
"attachment_title": "Názov prílohy",
|
||||||
"attachment_type": "",
|
"attachment_type": "Typ prílohy",
|
||||||
"primary_photo": "",
|
"primary_photo": "Primárna fotografia",
|
||||||
"primary_photo_sub": "",
|
"primary_photo_sub": "Táto možnosť je dostupná len pre fotografie. Primárna môže byť iba jedna fotografia. Ak vyberiete túto voľbu, aktuálna primárna fotografia (ak taká existuje) bude zrušená.",
|
||||||
"select_type": "",
|
"select_type": "Vyberte typ",
|
||||||
"title": ""
|
"title": "Upraviť prílohu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"edit_details": "Upraviť podrobnosti",
|
"edit_details": "Upraviť podrobnosti",
|
||||||
@@ -293,18 +293,18 @@
|
|||||||
"first": "Prvý",
|
"first": "Prvý",
|
||||||
"include_archive": "Zahrnúť archivované položky",
|
"include_archive": "Zahrnúť archivované položky",
|
||||||
"insured": "Poistený",
|
"insured": "Poistený",
|
||||||
"invalid_asset_id": "",
|
"invalid_asset_id": "Neplatné ID aktíva",
|
||||||
"last": "Posledný",
|
"last": "Posledný",
|
||||||
"lifetime_warranty": "Doživotná záruka",
|
"lifetime_warranty": "Doživotná záruka",
|
||||||
"location": "Poloha",
|
"location": "Miesto",
|
||||||
"manual": "Príručka",
|
"manual": "Príručka",
|
||||||
"manuals": "Príručky",
|
"manuals": "Príručky",
|
||||||
"manufacturer": "Výrobca",
|
"manufacturer": "Výrobca",
|
||||||
"model_number": "Číslo modelu",
|
"model_number": "Číslo modelu",
|
||||||
"name": "Meno",
|
"name": "Názov",
|
||||||
"negate_labels": "Negovať vybrané označenia",
|
"negate_labels": "Negovať vybrané označenia",
|
||||||
"next_page": "Ďalšia strana",
|
"next_page": "Ďalšia strana",
|
||||||
"no_attachments": "",
|
"no_attachments": "Neboli nájdené žiadne prílohy.",
|
||||||
"no_results": "Nenašli sa žiadne položky",
|
"no_results": "Nenašli sa žiadne položky",
|
||||||
"notes": "Poznámky",
|
"notes": "Poznámky",
|
||||||
"only_with_photo": "Iba položky s fotografiou",
|
"only_with_photo": "Iba položky s fotografiou",
|
||||||
@@ -315,7 +315,7 @@
|
|||||||
"parent_item": "Nadradená položka",
|
"parent_item": "Nadradená položka",
|
||||||
"photo": "Fotografia",
|
"photo": "Fotografia",
|
||||||
"photos": "Fotografie",
|
"photos": "Fotografie",
|
||||||
"prev_page": "Predchádzajúca stránka",
|
"prev_page": "Predchádzajúca strana",
|
||||||
"purchase_date": "Dátum nákupu",
|
"purchase_date": "Dátum nákupu",
|
||||||
"purchase_details": "Podrobnosti o nákupe",
|
"purchase_details": "Podrobnosti o nákupe",
|
||||||
"purchase_price": "Kúpna cena",
|
"purchase_price": "Kúpna cena",
|
||||||
@@ -326,44 +326,44 @@
|
|||||||
"receipts": "Účtenky",
|
"receipts": "Účtenky",
|
||||||
"reset_search": "Obnoviť vyhľadávanie",
|
"reset_search": "Obnoviť vyhľadávanie",
|
||||||
"results": "{ total } Výsledky",
|
"results": "{ total } Výsledky",
|
||||||
"select_field": "",
|
"select_field": "Vyberte pole",
|
||||||
"serial_number": "Sériové číslo",
|
"serial_number": "Sériové číslo",
|
||||||
"show_advanced_view_options": "Zobraziť rozšírené možnosti zobrazenia",
|
"show_advanced_view_options": "Zobraziť rozšírené možnosti zobrazenia",
|
||||||
"sold_at": "Predané v",
|
"sold_at": "Predané dňa",
|
||||||
"sold_details": "Podrobnosti o predaji",
|
"sold_details": "Podrobnosti o predaji",
|
||||||
"sold_price": "Predajná cena",
|
"sold_price": "Predajná cena",
|
||||||
"sold_to": "Predané Komu",
|
"sold_to": "Predané komu",
|
||||||
"sync_child_locations": "",
|
"sync_child_locations": "Synchronizovať miesta podriadených položiek",
|
||||||
"tip_1": "Filtre umiestnení a štítkov používajú operáciu 'OR'. Ak je vybratých viac ako jeden,\n bude vybraný iba jeden potrebné na zápas.",
|
"tip_1": "Filtre umiestnení a štítkov používajú operáciu 'OR'. Ak je vybratých viac ako jeden,\n bude vybraný iba jeden potrebné na zápas.",
|
||||||
"tip_2": "Vyhľadávania s predponou # budú dotazovať na identifikátor diela (napríklad #000-001)",
|
"tip_2": "Vyhľadávania s predponou # budú dotazovať na identifikátor diela (napríklad #000-001)",
|
||||||
"tip_3": "Filtre poľa používajú operáciu 'OR' . Ak je vybratých viac ako jeden, bude potrebný iba jeden pre a\n zápas.",
|
"tip_3": "Filtre poľa používajú operáciu 'OR' . Ak je vybratých viac ako jeden, bude potrebný iba jeden pre a\n zápas.",
|
||||||
"tips": "Tipy",
|
"tips": "Tipy",
|
||||||
"tips_sub": "Tipy na vyhľadávanie",
|
"tips_sub": "Tipy na vyhľadávanie",
|
||||||
"toast": {
|
"toast": {
|
||||||
"asset_not_found": "",
|
"asset_not_found": "Aktívum sa nenašlo",
|
||||||
"attachment_deleted": "",
|
"attachment_deleted": "Príloha bola odstránená",
|
||||||
"attachment_updated": "",
|
"attachment_updated": "Príloha bola aktualizovaná",
|
||||||
"attachment_uploaded": "",
|
"attachment_uploaded": "Príloha bola nahraná",
|
||||||
"child_items_location_no_longer_synced": "",
|
"child_items_location_no_longer_synced": "Miesta podriadených položiek sa už nebudú synchronizovať s touto položkou.",
|
||||||
"child_items_location_synced": "",
|
"child_items_location_synced": "Miesta podriadených položiek bolo synchronizovaných s touto položkou",
|
||||||
"child_location_desync": "",
|
"child_location_desync": "Zmena miesta zruší synchronizáciou s miestom nadradenej položky",
|
||||||
"error_loading_parent_data": "",
|
"error_loading_parent_data": "Pri pokus o načítanie údajov nadriadených položiek sa niečo pokazilo",
|
||||||
"failed_adjust_quantity": "",
|
"failed_adjust_quantity": "Množstvo sa nepodarilo upraviť",
|
||||||
"failed_delete_attachment": "",
|
"failed_delete_attachment": "Nepodarilo sa odstrániť prílohu",
|
||||||
"failed_delete_item": "",
|
"failed_delete_item": "Položku sa nepodarilo odstrániť",
|
||||||
"failed_duplicate_item": "",
|
"failed_duplicate_item": "Nepodarilo sa duplikovať položku",
|
||||||
"failed_load_asset": "",
|
"failed_load_asset": "Aktívum sa nepodarilo načítať",
|
||||||
"failed_load_item": "",
|
"failed_load_item": "Položku sa nepodarilo načítať",
|
||||||
"failed_load_items": "",
|
"failed_load_items": "Nepodarilo sa načítať položky",
|
||||||
"failed_save": "",
|
"failed_save": "Nepodarilo sa uložiť položku",
|
||||||
"failed_save_no_location": "",
|
"failed_save_no_location": "Položku sa nepodarilo uložiť: nevybrali ste žiadne miesto",
|
||||||
"failed_search_items": "",
|
"failed_search_items": "Nepodarilo sa vyhľadať položky",
|
||||||
"failed_update_attachment": "",
|
"failed_update_attachment": "Nepodarilo sa aktualizovať prílohy",
|
||||||
"failed_upload_attachment": "",
|
"failed_upload_attachment": "Nepodarilo sa nahrať prílohu",
|
||||||
"item_deleted": "",
|
"item_deleted": "Položka bola odstránená",
|
||||||
"item_saved": "",
|
"item_saved": "Položka bola uložená",
|
||||||
"quantity_cannot_negative": "",
|
"quantity_cannot_negative": "Množstvo nemôže byť záporné",
|
||||||
"sync_child_location": ""
|
"sync_child_location": "Vybraná položka nastavuje pre podriadené položky miesto podľa svojho. Miesto bolo aktualizované."
|
||||||
},
|
},
|
||||||
"updated_at": "Čas aktualizácie",
|
"updated_at": "Čas aktualizácie",
|
||||||
"warranty": "Záruka",
|
"warranty": "Záruka",
|
||||||
@@ -371,14 +371,14 @@
|
|||||||
"warranty_expires": "Záruka vyprší"
|
"warranty_expires": "Záruka vyprší"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"label_delete_confirm": "",
|
"label_delete_confirm": "Naozaj chcete odstrániť tento štítok? Túto akciu nie je možné odvolať.",
|
||||||
"no_results": "Nenašli sa žiadne štítky",
|
"no_results": "Nenašli sa žiadne štítky",
|
||||||
"toast": {
|
"toast": {
|
||||||
"failed_delete_label": "",
|
"failed_delete_label": "Nepodarilo sa odstrániť štítok",
|
||||||
"failed_load_label": "",
|
"failed_load_label": "Štítok sa nepodarilo načítať",
|
||||||
"failed_update_label": "",
|
"failed_update_label": "Štítok sa nepodarilo aktualizovať",
|
||||||
"label_deleted": "",
|
"label_deleted": "Štítok bol odstránený",
|
||||||
"label_updated": ""
|
"label_updated": "Štítok bol aktualizovaný"
|
||||||
},
|
},
|
||||||
"update_label": "Aktualizovať štítok"
|
"update_label": "Aktualizovať štítok"
|
||||||
},
|
},
|
||||||
@@ -395,8 +395,8 @@
|
|||||||
"it": "Taliančina",
|
"it": "Taliančina",
|
||||||
"ja-JP": "Japonsky",
|
"ja-JP": "Japonsky",
|
||||||
"ko-KR": "Korejsky",
|
"ko-KR": "Korejsky",
|
||||||
"lb-LU": "",
|
"lb-LU": "Luxemburčina (Luxembursko)",
|
||||||
"lt-LT": "",
|
"lt-LT": "Litovčina (Litva)",
|
||||||
"nb-NO": "Nórsky",
|
"nb-NO": "Nórsky",
|
||||||
"nl": "Holandsky",
|
"nl": "Holandsky",
|
||||||
"pl": "Poľsky",
|
"pl": "Poľsky",
|
||||||
@@ -404,7 +404,7 @@
|
|||||||
"pt-PT": "Portugalsky (Portugalsko)",
|
"pt-PT": "Portugalsky (Portugalsko)",
|
||||||
"ru": "Ruština",
|
"ru": "Ruština",
|
||||||
"sl": "Slovinsky",
|
"sl": "Slovinsky",
|
||||||
"sq-AL": "",
|
"sq-AL": "Albánčina",
|
||||||
"sv": "Švédčina",
|
"sv": "Švédčina",
|
||||||
"ta-IN": "Tamilčina",
|
"ta-IN": "Tamilčina",
|
||||||
"th-TH": "Thaičina",
|
"th-TH": "Thaičina",
|
||||||
@@ -419,17 +419,17 @@
|
|||||||
"languages.ro-RO": "Rumunsko",
|
"languages.ro-RO": "Rumunsko",
|
||||||
"languages.sk-SK": "Slovenčina",
|
"languages.sk-SK": "Slovenčina",
|
||||||
"locations": {
|
"locations": {
|
||||||
"child_locations": "Umiestnenie dieťaťa",
|
"child_locations": "Umiestnenie podriadených",
|
||||||
"collapse_tree": "Zbaliť strom",
|
"collapse_tree": "Zbaliť strom",
|
||||||
"expand_tree": "",
|
"expand_tree": "Rozbaliť strom",
|
||||||
"location_items_delete_confirm": "",
|
"location_items_delete_confirm": "Naozaj chcete odstrániť toto miesto a všetky jeho položky? Túto akciu nie je možné odvolať.",
|
||||||
"no_results": "Žiadne lokality neboli nájdené",
|
"no_results": "Žiadne lokality neboli nájdené",
|
||||||
"toast": {
|
"toast": {
|
||||||
"failed_delete_location": "",
|
"failed_delete_location": "Miesto sa nepodarilo odstrániť",
|
||||||
"failed_load_location": "",
|
"failed_load_location": "Miesto sa nepodarilo načítať",
|
||||||
"failed_update_location": "",
|
"failed_update_location": "Miesto sa nepodarilo aktualizovať",
|
||||||
"location_deleted": "",
|
"location_deleted": "Miesto bolo odstránené",
|
||||||
"location_updated": ""
|
"location_updated": "Miesto bolo aktualizované"
|
||||||
},
|
},
|
||||||
"update_location": "Aktualizovať lokalitu"
|
"update_location": "Aktualizovať lokalitu"
|
||||||
},
|
},
|
||||||
@@ -471,8 +471,8 @@
|
|||||||
"menu": {
|
"menu": {
|
||||||
"create_item": "Položka / Aktívum",
|
"create_item": "Položka / Aktívum",
|
||||||
"create_label": "Štítok",
|
"create_label": "Štítok",
|
||||||
"create_location": "Poloha",
|
"create_location": "Miesto",
|
||||||
"home": "Domovská stránka",
|
"home": "Domov",
|
||||||
"locations": "Miesta",
|
"locations": "Miesta",
|
||||||
"maintenance": "Údržba",
|
"maintenance": "Údržba",
|
||||||
"profile": "Profil",
|
"profile": "Profil",
|
||||||
@@ -486,10 +486,10 @@
|
|||||||
"currency_format": "Formát meny",
|
"currency_format": "Formát meny",
|
||||||
"current_password": "Aktuálne heslo",
|
"current_password": "Aktuálne heslo",
|
||||||
"delete_account": "Odstrániť účet",
|
"delete_account": "Odstrániť účet",
|
||||||
"delete_account_confirm": "",
|
"delete_account_confirm": "Naozaj chcete odstrániť svoj účet? Ak ste posledným členom vo svojej skupine, všetky vaše údaje budú odstránené. Túto akciu nie je možné odvolať.",
|
||||||
"delete_account_sub": "Odstráňte svoj účet a všetky súvisiace údaje. Toto nie je možné vrátiť späť.",
|
"delete_account_sub": "Odstráňte svoj účet a všetky súvisiace údaje. Toto nie je možné vrátiť späť.",
|
||||||
"delete_notifier_confirm": "",
|
"delete_notifier_confirm": "Naozaj chcete odstrániť tento oznamovač?",
|
||||||
"display_legacy_header": "",
|
"display_legacy_header": "{ currentValue, select, true {Zakázať staré záhlavie} false {Povoliť staré záhlavie} other {Nevybrané}}",
|
||||||
"enabled": "Povolené",
|
"enabled": "Povolené",
|
||||||
"example": "Príklad",
|
"example": "Príklad",
|
||||||
"gen_invite": "Vygenerovať odkaz na pozvánku",
|
"gen_invite": "Vygenerovať odkaz na pozvánku",
|
||||||
@@ -498,28 +498,28 @@
|
|||||||
"inactive": "Neaktívne",
|
"inactive": "Neaktívne",
|
||||||
"language": "Jazyk",
|
"language": "Jazyk",
|
||||||
"new_password": "Nové heslo",
|
"new_password": "Nové heslo",
|
||||||
"no_notifiers": "Nie sú nakonfigurovaní žiadni upozorňovatelia",
|
"no_notifiers": "Nie sú nastavené žiadne oznamovače",
|
||||||
"no_override": "",
|
"no_override": "Bez prepísania",
|
||||||
"notifier_modal": "{ type, select, true {Edit} false {Create} other {Other}} Oznamovateľ",
|
"notifier_modal": "{ type, select, true {Edit} false {Create} other {Other}} Oznamovač",
|
||||||
"notifiers": "Oznamovatelia",
|
"notifiers": "Oznamovače",
|
||||||
"notifiers_sub": "Dostávajte upozornenia na nadchádzajúce pripomenutia údržby",
|
"notifiers_sub": "Dostávajte upozornenia na nadchádzajúce pripomenutia údržby",
|
||||||
"override_locale": "",
|
"override_locale": "Prepísať dátum a jazyk meny",
|
||||||
"test": "Test",
|
"test": "Test",
|
||||||
"theme_settings": "Nastavenie motívu",
|
"theme_settings": "Nastavenie motívu",
|
||||||
"theme_settings_sub": "Nastavenia motívu sú uložené v lokálnom úložisku vášho prehliadača. Tému môžete kedykoľvek zmeniť. Ak mate\n problémy s nastavením motívu, skúste obnoviť prehliadač.",
|
"theme_settings_sub": "Nastavenia motívu sú uložené v lokálnom úložisku vášho prehliadača. Tému môžete kedykoľvek zmeniť. Ak mate\n problémy s nastavením motívu, skúste obnoviť prehliadač.",
|
||||||
"toast": {
|
"toast": {
|
||||||
"account_deleted": "",
|
"account_deleted": "Váš účet bol odstránený.",
|
||||||
"failed_change_password": "",
|
"failed_change_password": "Heslo sa nepodarilo zmeniť.",
|
||||||
"failed_create_notifier": "",
|
"failed_create_notifier": "Oznamovač sa nepodarilo vytvoriť.",
|
||||||
"failed_delete_account": "",
|
"failed_delete_account": "Nepodarilo sa odstrániť váš účet.",
|
||||||
"failed_delete_notifier": "",
|
"failed_delete_notifier": "Nepodarilo sa odstrániť oznamovač.",
|
||||||
"failed_get_currencies": "",
|
"failed_get_currencies": "Meny sa nepodarilo získať",
|
||||||
"failed_test_notifier": "",
|
"failed_test_notifier": "Nepodarilo sa vyskúšať oznamovač.",
|
||||||
"failed_update_group": "",
|
"failed_update_group": "Skupinu sa nepodarilo aktualizovať",
|
||||||
"failed_update_notifier": "",
|
"failed_update_notifier": "Nepodarilo sa aktualizovať oznamovač.",
|
||||||
"group_updated": "",
|
"group_updated": "Skupina bola aktualizovaná",
|
||||||
"notifier_test_success": "",
|
"notifier_test_success": "Test oznamovača bol úspešný.",
|
||||||
"password_changed": ""
|
"password_changed": "Heslo bolo úspešne zmenené."
|
||||||
},
|
},
|
||||||
"update_group": "aktualizačná skupina",
|
"update_group": "aktualizačná skupina",
|
||||||
"update_language": "Aktualizovať súbor jazyka",
|
"update_language": "Aktualizovať súbor jazyka",
|
||||||
@@ -529,32 +529,32 @@
|
|||||||
},
|
},
|
||||||
"reports": {
|
"reports": {
|
||||||
"label_generator": {
|
"label_generator": {
|
||||||
"asset_end": "",
|
"asset_end": "Koniec aktíva",
|
||||||
"asset_start": "",
|
"asset_start": "Začiatok aktíva",
|
||||||
"base_url": "",
|
"base_url": "Základná časť URL adresy",
|
||||||
"bordered_labels": "",
|
"bordered_labels": "Ohraničené štítky",
|
||||||
"generate_page": "",
|
"generate_page": "Generovať stranu",
|
||||||
"input_placeholder": "",
|
"input_placeholder": "Píšte sem",
|
||||||
"instruction_1": "",
|
"instruction_1": "Generátor štítkov Homebox je nástroj, ktorý vám pomôže vytlačiť štítky pre inventár Homeboxu. Tie sú určené na\n to, aby ste mohli vytlačiť viacero štítkov naraz a mať ich pripravených vopred",
|
||||||
"instruction_2": "",
|
"instruction_2": "Tieto štítky fungujú tak, že sa na štítok vytlačí QR kód URL adresy a informácia AssetID. Ak ste v nastaveniach Homeboxu\n AssetID zakázali, môžete tento nástroj i naďalej používať, ale AssetIT nebude odkazovať na žiadnu položku",
|
||||||
"instruction_3": "",
|
"instruction_3": "Táto funkcia je v ranej fáze vývoja a v budúcich verziách sa môže zmeniť, ak máte spätnú väzbu, podeľte sa s ňou, prosím,\n v <a href=\"https://github.com/sysadminsmedia/homebox/discussions/53\">'Diskusii na GitHube</a>",
|
||||||
"label_height": "",
|
"label_height": "Výška štítka",
|
||||||
"label_width": "",
|
"label_width": "Šírka štítku",
|
||||||
"measure_type": "",
|
"measure_type": "Typ merania",
|
||||||
"page_bottom_padding": "",
|
"page_bottom_padding": "Odsadenie strany zospodu",
|
||||||
"page_height": "",
|
"page_height": "Výška strany",
|
||||||
"page_left_padding": "",
|
"page_left_padding": "Odsadenie strany vľavo",
|
||||||
"page_right_padding": "",
|
"page_right_padding": "Odsadenie strany vpravo",
|
||||||
"page_top_padding": "",
|
"page_top_padding": "Odsadenie strany zvrchu",
|
||||||
"page_width": "",
|
"page_width": "Šírka strany",
|
||||||
"qr_code_example": "",
|
"qr_code_example": "Príklad QR kódu",
|
||||||
"tip_1": "",
|
"tip_1": "",
|
||||||
"tip_2": "",
|
"tip_2": "",
|
||||||
"tip_3": "",
|
"tip_3": "",
|
||||||
"tips": "",
|
"tips": "Tipy",
|
||||||
"title": "",
|
"title": "Generátor štítkov",
|
||||||
"toast": {
|
"toast": {
|
||||||
"page_too_small_card": ""
|
"page_too_small_card": "Veľkosť strany je príliš malá vzhľadom na veľkosť karty"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -564,40 +564,43 @@
|
|||||||
"no_sources": "Nie sú k dispozícii žiadne zdroje videa",
|
"no_sources": "Nie sú k dispozícii žiadne zdroje videa",
|
||||||
"permission_denied": "",
|
"permission_denied": "",
|
||||||
"select_video_source": "Vyberte zdroj videa",
|
"select_video_source": "Vyberte zdroj videa",
|
||||||
"title": "",
|
"title": "Skener",
|
||||||
"unsupported": "Media Stream API nie je podporované"
|
"unsupported": "Media Stream API nie je podporované bez protokolu HTTPS"
|
||||||
},
|
},
|
||||||
"tools": {
|
"tools": {
|
||||||
"actions": "Akcie inventára",
|
"actions": "Akcie inventára",
|
||||||
"actions_set": {
|
"actions_set": {
|
||||||
|
"create_missing_thumbnails": "Vytvoriť chýbajúce náhľady",
|
||||||
|
"create_missing_thumbnails_button": "Vytvoriť náhľady",
|
||||||
|
"create_missing_thumbnails_confirm": "Naozaj chcete vytvoriť chýbajúce náhľady? Môže to chvíľku trvať a akciu nie je možné pozastaviť.",
|
||||||
"ensure_ids": "Zabezpečenie identifikátorov aktív",
|
"ensure_ids": "Zabezpečenie identifikátorov aktív",
|
||||||
"ensure_ids_button": "Zabezpečenie identifikátorov aktív",
|
"ensure_ids_button": "Zabezpečenie identifikátorov aktív",
|
||||||
"ensure_ids_confirm": "",
|
"ensure_ids_confirm": "",
|
||||||
"ensure_ids_sub": "Zabezpečuje, že všetky položky vo vašom inventári majú platné pole asset_id. To sa dosiahne nájdením najvyššieho aktuálneho poľa asset_id v databáze a aplikáciou ďalšej hodnoty na každú položku, ktorá má pole asset_id nenastavené. Toto sa vykonáva v poradí podľa poľa created_at.",
|
"ensure_ids_sub": "Zabezpečí, aby všetky položky vo vašom inventári mali platné pole asset_id. To sa dosiahne tak, že sa v databáze zistí najvyššie aktuálne pole asset_id a na každú položku, ktorá nemá nastavené pole asset_id sa použije ďalšia hodnota. Toto sa vykonáva v poradí podľa poľa created_at.",
|
||||||
"ensure_import_refs": "Zabezpečte import referencií",
|
"ensure_import_refs": "Zabezpečiť import referencií",
|
||||||
"ensure_import_refs_button": "Zabezpečte import referencií",
|
"ensure_import_refs_button": "Zabezpečiť import referencií",
|
||||||
"ensure_import_refs_sub": "Zabezpečuje, že všetky položky vo vašom inventári majú platné pole import_ref. To sa dosiahne náhodným vygenerovaním 8-znakového reťazca pre každú položku, ktorá má nenastavené pole import_ref.",
|
"ensure_import_refs_sub": "Zabezpečuje, že všetky položky vo vašom inventári majú platné pole import_ref. To sa dosiahne náhodným vygenerovaním 8-znakového reťazca pre každú položku, ktorá má nenastavené pole import_ref.",
|
||||||
"set_primary_photo": "Nastaviť primárnu fotografiu",
|
"set_primary_photo": "Nastaviť primárnu fotografiu",
|
||||||
"set_primary_photo_button": "Nastaviť primárnu fotografiu",
|
"set_primary_photo_button": "Nastaviť primárnu fotografiu",
|
||||||
"set_primary_photo_confirm": "",
|
"set_primary_photo_confirm": "Naozaj chcete nastaviť primárne fotografie? Môže to chvíľu trvať a nedá sa to vrátiť späť.",
|
||||||
"set_primary_photo_sub": "Vo verzii v0.10.0 Homeboxu bolo k prílohám typu fotografia pridané pole primárneho obrázka. Táto akcia nastaví pole primárneho obrázka na prvý obrázok v poli príloh v databáze, ak ešte nie je nastavený. '<a class=\"link\" href=\"https://github.com/hay-kot/homebox/pull/576\">'See GitHub PR #576'</a>'",
|
"set_primary_photo_sub": "Vo verzii v0.10.0 Homeboxu bolo k prílohám typu fotografia pridané pole primárneho obrázka. Táto akcia nastaví pole primárneho obrázka na prvý obrázok v poli príloh v databáze, ak ešte nie je nastavený. '<a class=\"link\" href=\"https://github.com/hay-kot/homebox/pull/576\">'See GitHub PR #576'</a>'",
|
||||||
"zero_datetimes": "Dátum nulovej položky Časy",
|
"zero_datetimes": "Vynulovať dátum a čas položiek",
|
||||||
"zero_datetimes_button": "Dátum nulovej položky Časy",
|
"zero_datetimes_button": "Vynulovať dátum a čas položiek",
|
||||||
"zero_datetimes_confirm": "",
|
"zero_datetimes_confirm": "Naozaj chcete resetovať všetky hodnoty dátumu a času? Toto môže chvíľu trvať a akcia sa nedá odvolať.",
|
||||||
"zero_datetimes_sub": "Obnoví hodnotu času pre všetky polia dátumu a času vo vašom inventári na začiatok dátumu. Ide o opravu chyby, ktorá bola zavedená na začiatku vývoja stránky a ktorá spôsobila, že sa hodnota času uložila s časom, čo spôsobilo problémy s poliami dátumu zobrazujúcimi presné hodnoty. '<a class=\"link\" href=\"https://github.com/hay-kot/homebox/issues/236\" target=\"_blank\">'See Github Issue #236 for more details.'</a>'"
|
"zero_datetimes_sub": "Obnoví hodnotu času pre všetky polia dátumu a času vo vašom inventári na začiatok dátumu. Ide o opravu chyby, ktorá bola zavedená na začiatku vývoja stránky a ktorá spôsobila, že sa hodnota času uložila s časom, čo spôsobilo problémy s poliami dátumu zobrazujúcimi presné hodnoty. '<a class=\"link\" href=\"https://github.com/hay-kot/homebox/issues/236\" target=\"_blank\">'See Github Issue #236 for more details.'</a>'"
|
||||||
},
|
},
|
||||||
"actions_sub": "Hromadne použite akcie na svoj inventár. Toto sú nezvratné akcie. '<b>'Buďte opatrní.'</b>'",
|
"actions_sub": "Hromadne použite akcie na svoj inventár. Tieto akcie nie je možné odvolať. '<b>'Buďte opatrní.'</b>'",
|
||||||
"import_export": "Import/export",
|
"import_export": "Import/export",
|
||||||
"import_export_set": {
|
"import_export_set": {
|
||||||
"export": "Export zásob",
|
"export": "Exportovať inventár",
|
||||||
"export_button": "Export zásob",
|
"export_button": "Exportovať inventár",
|
||||||
"export_sub": "Exportuje štandardný formát CSV pre Homebox. Týmto sa exportujú všetky položky vo vašom inventári.",
|
"export_sub": "Exportuje štandardný formát CSV pre Homebox. Týmto sa exportujú všetky položky vo vašom inventári.",
|
||||||
"import": "Importovať inventár",
|
"import": "Importovať inventár",
|
||||||
"import_button": "Importovať inventár",
|
"import_button": "Importovať inventár",
|
||||||
"import_ref_confirm": "",
|
"import_ref_confirm": "Naozaj chcete, aby všetky aktíva mali import_ref? To môže chvíľu trvať a akciu nie je možné odvolať.",
|
||||||
"import_sub": "Importuje štandardný formát CSV pre Homebox. Bez '<code>'HB.import_ref'</code>' stĺpca to bude '<b>'nie'</b>' prepísať všetky existujúce položky vo vašom inventári, iba pridať nové položky. Riadky so '<code>'HB.import_ref'</code>' stĺpcom sa zlúčia do existujúcich položiek s rovnakým import_ref, ak taký existuje."
|
"import_sub": "Importuje štandardný formát CSV pre Homebox. Bez '<code>'HB.import_ref'</code>' stĺpca to bude '<b>'nie'</b>' prepísať všetky existujúce položky vo vašom inventári, iba pridať nové položky. Riadky so '<code>'HB.import_ref'</code>' stĺpcom sa zlúčia do existujúcich položiek s rovnakým import_ref, ak taký existuje."
|
||||||
},
|
},
|
||||||
"import_export_sub": "Importujte a exportujte svoj inventár do a zo súboru CSV. Je to užitočné pri migrácii inventára do novej inštancie Homeboxu.",
|
"import_export_sub": "Importujte a exportujte svoj inventár do a zo súboru CSV. To je užitočné pri migrácii inventára do novej inštancie Homeboxu.",
|
||||||
"reports": "Správy",
|
"reports": "Správy",
|
||||||
"reports_set": {
|
"reports_set": {
|
||||||
"asset_labels": "Štítky ID diela",
|
"asset_labels": "Štítky ID diela",
|
||||||
@@ -609,11 +612,12 @@
|
|||||||
},
|
},
|
||||||
"reports_sub": "Generujte rôzne prehľady pre svoj inventár.",
|
"reports_sub": "Generujte rôzne prehľady pre svoj inventár.",
|
||||||
"toast": {
|
"toast": {
|
||||||
"asset_success": "",
|
"asset_success": "{ results } aktiv bolo aktualizovaných.",
|
||||||
"failed_ensure_ids": "",
|
"failed_create_missing_thumbnails": "Nepodarilo sa vytvoriť chýbajúce náhľady.",
|
||||||
"failed_ensure_import_refs": "",
|
"failed_ensure_ids": "Nepodarilo sa zaistiť ID aktív.",
|
||||||
"failed_set_primary_photos": "",
|
"failed_ensure_import_refs": "Nepodarilo sa zaistiť import referencií.",
|
||||||
"failed_zero_datetimes": ""
|
"failed_set_primary_photos": "Nepodarilo sa nastaviť primárne fotografie.",
|
||||||
|
"failed_zero_datetimes": "Nepodarilo sa obnoviť hodnoty dátumu a času."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,7 +204,7 @@
|
|||||||
"follow_dev": "Sledi razvijjalcu",
|
"follow_dev": "Sledi razvijjalcu",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Verzija: { version } Gradnja: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Verzija: { version } Gradnja: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub projekt",
|
"github": "GitHub projekt",
|
||||||
"insured": "Zavarovano",
|
"insured": "Zavarovano",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Följ utvecklaren",
|
"follow_dev": "Följ utvecklaren",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Version: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Version: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub-projekt",
|
"github": "GitHub-projekt",
|
||||||
"insured": "Försäkrad",
|
"insured": "Försäkrad",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "ติดตามผู้พัฒนา",
|
"follow_dev": "ติดตามผู้พัฒนา",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "'<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Version: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Version: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub Project",
|
"github": "GitHub Project",
|
||||||
"insured": "ประกัน",
|
"insured": "ประกัน",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Geliştiriciyi takip edin",
|
"follow_dev": "Geliştiriciyi takip edin",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "<a href=\"https://homebox.software/en/api/\" target=\"_blank\">''API''</a>",
|
"api_link": "<a href=\"https://homebox.software/en/api/\" target=\"_blank\">''API''</a>",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Sürüm: { version } Yapı: { build }'</a>"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Sürüm: { version } Yapı: { build }'</a>"
|
||||||
},
|
},
|
||||||
"github": "GitHub projesi",
|
"github": "GitHub projesi",
|
||||||
"insured": "Sigortalı",
|
"insured": "Sigortalı",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
"follow_dev": "Підписатись на розробника",
|
"follow_dev": "Підписатись на розробника",
|
||||||
"footer": {
|
"footer": {
|
||||||
"api_link": "<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
"api_link": "<a href=\"https://homebox.software/en/api/\" target=\"_blank\">'API'</a>'",
|
||||||
"version_link": "'<a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/'{ version }\" target=\"_blank\"> Версія: { version } Build: { build } '</a>'"
|
"version_link": "'<'a href=\"https://github.com/sysadminsmedia/homebox/releases/tag/{ version }\" target=\"_blank\"'>' Версія: { version } Build: { build } '</a>'"
|
||||||
},
|
},
|
||||||
"github": "GitHub проекту",
|
"github": "GitHub проекту",
|
||||||
"insured": "Застрахований",
|
"insured": "Застрахований",
|
||||||
|
|||||||
@@ -114,7 +114,7 @@
|
|||||||
"rotate_process_failed": "处理已旋转图片失败",
|
"rotate_process_failed": "处理已旋转图片失败",
|
||||||
"some_photos_failed": "{count, plural, =0 {无照片上传.} =1 {一张照片上传失败.} other {多张照片上传失败.}}",
|
"some_photos_failed": "{count, plural, =0 {无照片上传.} =1 {一张照片上传失败.} other {多张照片上传失败.}}",
|
||||||
"upload_failed": "上传照片失败:{ photoName }",
|
"upload_failed": "上传照片失败:{ photoName }",
|
||||||
"upload_success": "{count, plural, = 0 {未上传照片} = 1 {照片上传成功} other {所有照片上传成功}}",
|
"upload_success": "{count, plural, =0 {未上传照片} =1 {照片上传成功} other {所有照片上传成功}}",
|
||||||
"uploading_photos": ""
|
"uploading_photos": ""
|
||||||
},
|
},
|
||||||
"upload_photos": "上传照片",
|
"upload_photos": "上传照片",
|
||||||
|
|||||||
Reference in New Issue
Block a user