Compare commits
No commits in common. "master" and "v2.32.1" have entirely different histories.
@ -1,7 +1,5 @@
|
|||||||
.venv
|
*
|
||||||
dist
|
!docker/*
|
||||||
.idea
|
!healthcheck.sh
|
||||||
frontend/node_modules
|
!docker_config.json
|
||||||
frontend/dist
|
!filebrowser
|
||||||
filebrowser.db
|
|
||||||
docs/index.md
|
|
2
.github/CODEOWNERS
vendored
@ -2,4 +2,4 @@
|
|||||||
# Unless a later match takes precedence, @o1egl will be requested for
|
# Unless a later match takes precedence, @o1egl will be requested for
|
||||||
# review when someone opens a pull request.
|
# review when someone opens a pull request.
|
||||||
|
|
||||||
* @o1egl @hacdias
|
* @o1egl
|
10
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -20,32 +20,22 @@ body:
|
|||||||
render: Text
|
render: Text
|
||||||
description: |
|
description: |
|
||||||
Enter the version of FileBrowser you are using.
|
Enter the version of FileBrowser you are using.
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Description
|
label: Description
|
||||||
description: |
|
description: |
|
||||||
A clear and concise description of what the issue is about. What are you trying to do?
|
A clear and concise description of what the issue is about. What are you trying to do?
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: What did you expect to happen?
|
label: What did you expect to happen?
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: What actually happened?
|
label: What actually happened?
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Reproduction Steps
|
label: Reproduction Steps
|
||||||
description: |
|
description: |
|
||||||
Tell us how to reproduce this issue. How can someone who is starting from scratch reproduce this behavior as minimally as possible?
|
Tell us how to reproduce this issue. How can someone who is starting from scratch reproduce this behavior as minimally as possible?
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Files
|
label: Files
|
||||||
|
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -11,6 +11,5 @@
|
|||||||
Before submitting your PR, please indicate which issues are either fixed or closed by this PR. See [GitHub Help: Closing issues using keywords](https://help.github.com/articles/closing-issues-via-commit-messages/).
|
Before submitting your PR, please indicate which issues are either fixed or closed by this PR. See [GitHub Help: Closing issues using keywords](https://help.github.com/articles/closing-issues-via-commit-messages/).
|
||||||
|
|
||||||
- [ ] I am aware the project is currently in maintenance-only mode. See [README](https://github.com/filebrowser/community/blob/master/README.md)
|
- [ ] I am aware the project is currently in maintenance-only mode. See [README](https://github.com/filebrowser/community/blob/master/README.md)
|
||||||
- [ ] I am aware that translations MUST be made through [Transifex](https://app.transifex.com/file-browser/file-browser/) and that this PR is NOT a translation update
|
|
||||||
- [ ] I am making a PR against the `master` branch.
|
- [ ] I am making a PR against the `master` branch.
|
||||||
- [ ] I am sure File Browser can be successfully built. See [builds](https://github.com/filebrowser/community/blob/master/builds.md) and [development](https://github.com/filebrowser/community/blob/master/development.md).
|
- [ ] I am sure File Browser can be successfully built. See [builds](https://github.com/filebrowser/community/blob/master/builds.md) and [development](https://github.com/filebrowser/community/blob/master/development.md).
|
||||||
|
20
.github/workflows/site-pr.yml
vendored
@ -1,20 +0,0 @@
|
|||||||
name: Build Site
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- 'www'
|
|
||||||
- '*.md'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: Build site
|
|
||||||
run: make site
|
|
32
.github/workflows/site-publish.yml
vendored
@ -1,32 +0,0 @@
|
|||||||
name: Build and Deploy Site
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
deployments: write
|
|
||||||
pull-requests: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 5
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: Build site
|
|
||||||
run: make site
|
|
||||||
|
|
||||||
- name: Deploy to Cloudflare Pages
|
|
||||||
uses: cloudflare/wrangler-action@v3
|
|
||||||
with:
|
|
||||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
||||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
|
||||||
command: pages deploy www/public --project-name=${{ secrets.CLOUDFLARE_PROJECT_NAME }}
|
|
||||||
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
|
|
1
.gitignore
vendored
@ -6,7 +6,6 @@ rice-box.go
|
|||||||
/filebrowser
|
/filebrowser
|
||||||
/filebrowser.exe
|
/filebrowser.exe
|
||||||
/dist
|
/dist
|
||||||
.venv
|
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
node_modules
|
node_modules
|
||||||
|
187
.golangci.yml
@ -1,132 +1,121 @@
|
|||||||
version: "2"
|
linters-settings:
|
||||||
|
dupl:
|
||||||
|
threshold: 100
|
||||||
|
exhaustive:
|
||||||
|
default-signifies-exhaustive: false
|
||||||
|
funlen:
|
||||||
|
lines: 100
|
||||||
|
statements: 50
|
||||||
|
goconst:
|
||||||
|
min-len: 2
|
||||||
|
min-occurrences: 2
|
||||||
|
gocritic:
|
||||||
|
enabled-tags:
|
||||||
|
- diagnostic
|
||||||
|
- experimental
|
||||||
|
- opinionated
|
||||||
|
- performance
|
||||||
|
- style
|
||||||
|
disabled-checks:
|
||||||
|
- dupImport # https://github.com/go-critic/go-critic/issues/845
|
||||||
|
- ifElseChain
|
||||||
|
- octalLiteral
|
||||||
|
- whyNoLint
|
||||||
|
- wrapperFunc
|
||||||
|
gocyclo:
|
||||||
|
min-complexity: 15
|
||||||
|
goimports:
|
||||||
|
local-prefixes: github.com/filebrowser/filebrowser
|
||||||
|
gomnd:
|
||||||
|
# don't include the "operation" and "assign"
|
||||||
|
checks:
|
||||||
|
- argument
|
||||||
|
- case
|
||||||
|
- condition
|
||||||
|
- return
|
||||||
|
ignored-numbers:
|
||||||
|
- '0'
|
||||||
|
- '1'
|
||||||
|
- '2'
|
||||||
|
- '3'
|
||||||
|
ignored-functions:
|
||||||
|
- strings.SplitN
|
||||||
|
govet:
|
||||||
|
enable:
|
||||||
|
- nilness
|
||||||
|
- shadow
|
||||||
|
lll:
|
||||||
|
line-length: 140
|
||||||
|
misspell:
|
||||||
|
locale: US
|
||||||
|
nolintlint:
|
||||||
|
allow-unused: false # report any unused nolint directives
|
||||||
|
require-explanation: false # require an explanation for nolint directives
|
||||||
|
require-specific: true # require nolint directives to be specific about which linter is being skipped
|
||||||
|
|
||||||
linters:
|
linters:
|
||||||
# inverted configuration with `default: all` and `disable` is not scalable during updates of golangci-lint
|
# please, do not use `enable-all`: it's deprecated and will be removed soon.
|
||||||
default: none
|
# inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
|
||||||
|
disable-all: true
|
||||||
enable:
|
enable:
|
||||||
- bodyclose
|
- bodyclose
|
||||||
- dogsled
|
- dogsled
|
||||||
- dupl
|
- dupl
|
||||||
- errcheck
|
- errcheck
|
||||||
- errorlint
|
- errorlint
|
||||||
|
- exportloopref
|
||||||
- exhaustive
|
- exhaustive
|
||||||
- funlen
|
- funlen
|
||||||
- gocheckcompilerdirectives
|
- gocheckcompilerdirectives
|
||||||
- gochecknoinits
|
- gochecknoinits
|
||||||
|
- goconst
|
||||||
- gocritic
|
- gocritic
|
||||||
- gocyclo
|
- gocyclo
|
||||||
- godox
|
- godox
|
||||||
|
- goimports
|
||||||
|
- gomnd
|
||||||
- goprintffuncname
|
- goprintffuncname
|
||||||
- gosec
|
- gosec
|
||||||
|
- gosimple
|
||||||
- govet
|
- govet
|
||||||
- ineffassign
|
- ineffassign
|
||||||
- lll
|
- lll
|
||||||
- misspell
|
- misspell
|
||||||
- mnd
|
|
||||||
- nakedret
|
- nakedret
|
||||||
- nolintlint
|
- nolintlint
|
||||||
- prealloc
|
- prealloc
|
||||||
- revive
|
- revive
|
||||||
- rowserrcheck
|
- rowserrcheck
|
||||||
- staticcheck
|
- staticcheck
|
||||||
|
- stylecheck
|
||||||
- testifylint
|
- testifylint
|
||||||
|
- typecheck
|
||||||
- unconvert
|
- unconvert
|
||||||
- unparam
|
- unparam
|
||||||
- unused
|
- unused
|
||||||
- whitespace
|
- whitespace
|
||||||
settings:
|
|
||||||
dupl:
|
|
||||||
threshold: 100
|
|
||||||
exhaustive:
|
|
||||||
default-signifies-exhaustive: false
|
|
||||||
funlen:
|
|
||||||
lines: 100
|
|
||||||
statements: 50
|
|
||||||
gocritic:
|
|
||||||
disabled-checks:
|
|
||||||
- dupImport # https://github.com/go-critic/go-critic/issues/845
|
|
||||||
- ifElseChain
|
|
||||||
- octalLiteral
|
|
||||||
- whyNoLint
|
|
||||||
- wrapperFunc
|
|
||||||
enabled-tags:
|
|
||||||
- diagnostic
|
|
||||||
- experimental
|
|
||||||
- opinionated
|
|
||||||
- performance
|
|
||||||
- style
|
|
||||||
gocyclo:
|
|
||||||
min-complexity: 15
|
|
||||||
govet:
|
|
||||||
enable:
|
|
||||||
- nilness
|
|
||||||
- shadow
|
|
||||||
lll:
|
|
||||||
line-length: 140
|
|
||||||
misspell:
|
|
||||||
locale: US
|
|
||||||
mnd:
|
|
||||||
# don't include the "operation" and "assign"
|
|
||||||
checks:
|
|
||||||
- argument
|
|
||||||
- case
|
|
||||||
- condition
|
|
||||||
- return
|
|
||||||
ignored-numbers:
|
|
||||||
- "0"
|
|
||||||
- "1"
|
|
||||||
- "2"
|
|
||||||
- "3"
|
|
||||||
- "0666"
|
|
||||||
- "0700"
|
|
||||||
- "0700"
|
|
||||||
ignored-functions:
|
|
||||||
- strings.SplitN
|
|
||||||
- make
|
|
||||||
nolintlint:
|
|
||||||
allow-unused: false # report any unused nolint directives
|
|
||||||
require-explanation: false # require an explanation for nolint directives
|
|
||||||
require-specific: true # require nolint directives to be specific about which linter is being skipped
|
|
||||||
staticcheck:
|
|
||||||
checks:
|
|
||||||
- "all"
|
|
||||||
- "-QF*"
|
|
||||||
exclusions:
|
|
||||||
generated: lax
|
|
||||||
presets:
|
|
||||||
- comments
|
|
||||||
- common-false-positives
|
|
||||||
- legacy
|
|
||||||
- std-error-handling
|
|
||||||
rules:
|
|
||||||
- linters:
|
|
||||||
- gochecknoinits
|
|
||||||
path: cmd/.*.go
|
|
||||||
- linters:
|
|
||||||
- dupl
|
|
||||||
- funlen
|
|
||||||
- gochecknoinits
|
|
||||||
- gocyclo
|
|
||||||
- lll
|
|
||||||
- scopelint
|
|
||||||
path: .*_test.go
|
|
||||||
- linters:
|
|
||||||
- misspell
|
|
||||||
text: "[aA]uther"
|
|
||||||
- linters:
|
|
||||||
- mnd
|
|
||||||
text: strconv.Parse
|
|
||||||
paths:
|
|
||||||
- frontend/
|
|
||||||
|
|
||||||
formatters:
|
issues:
|
||||||
enable:
|
exclude-dirs:
|
||||||
- goimports
|
- frontend/
|
||||||
settings:
|
exclude-rules:
|
||||||
goimports:
|
- path: cmd/.*.go
|
||||||
local-prefixes:
|
linters:
|
||||||
- github.com/filebrowser/filebrowser
|
- gochecknoinits
|
||||||
exclusions:
|
- path: .*_test.go
|
||||||
generated: lax
|
linters:
|
||||||
paths:
|
- lll
|
||||||
- frontend/
|
- gochecknoinits
|
||||||
|
- gocyclo
|
||||||
|
- funlen
|
||||||
|
- dupl
|
||||||
|
- scopelint
|
||||||
|
- text: "Auther"
|
||||||
|
linters:
|
||||||
|
- misspell
|
||||||
|
- text: "strconv.Parse"
|
||||||
|
linters:
|
||||||
|
- gomnd
|
||||||
|
|
||||||
|
run:
|
||||||
|
timeout: 5m
|
@ -19,30 +19,31 @@ builds:
|
|||||||
- freebsd
|
- freebsd
|
||||||
goarch:
|
goarch:
|
||||||
- amd64
|
- amd64
|
||||||
- "386"
|
- 386
|
||||||
- arm
|
- arm
|
||||||
- arm64
|
- arm64
|
||||||
- riscv64
|
- riscv64
|
||||||
goarm:
|
goarm:
|
||||||
- "5"
|
- 5
|
||||||
- "6"
|
- 6
|
||||||
- "7"
|
- 7
|
||||||
ignore:
|
ignore:
|
||||||
- goos: darwin
|
- goos: darwin
|
||||||
goarch: "386"
|
goarch: 386
|
||||||
- goos: freebsd
|
- goos: freebsd
|
||||||
goarch: arm
|
goarch: arm
|
||||||
|
|
||||||
archives:
|
archives:
|
||||||
- name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}"
|
-
|
||||||
formats: ["tar.gz"]
|
name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}"
|
||||||
|
formats: [ 'tar.gz' ]
|
||||||
format_overrides:
|
format_overrides:
|
||||||
- goos: windows
|
- goos: windows
|
||||||
formats: ["zip"]
|
formats: [ 'zip' ]
|
||||||
|
|
||||||
dockers:
|
dockers:
|
||||||
# Alpine docker images
|
-
|
||||||
- dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@ -58,8 +59,10 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64"
|
- "filebrowser/filebrowser:{{ .Tag }}-amd64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker
|
- docker_config.json
|
||||||
- dockerfile: Dockerfile
|
- healthcheck.sh
|
||||||
|
-
|
||||||
|
dockerfile: Dockerfile
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@ -75,8 +78,10 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64"
|
- "filebrowser/filebrowser:{{ .Tag }}-arm64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker
|
- docker_config.json
|
||||||
- dockerfile: Dockerfile
|
- healthcheck.sh
|
||||||
|
-
|
||||||
|
dockerfile: Dockerfile
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@ -88,13 +93,15 @@ dockers:
|
|||||||
- "--platform=linux/arm/v6"
|
- "--platform=linux/arm/v6"
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: "6"
|
goarm: '6'
|
||||||
image_templates:
|
image_templates:
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6"
|
- "filebrowser/filebrowser:{{ .Tag }}-armv6"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv6"
|
- "filebrowser/filebrowser:v{{ .Major }}-armv6"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker
|
- docker_config.json
|
||||||
- dockerfile: Dockerfile
|
- healthcheck.sh
|
||||||
|
-
|
||||||
|
dockerfile: Dockerfile
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@ -106,15 +113,16 @@ dockers:
|
|||||||
- "--platform=linux/arm/v7"
|
- "--platform=linux/arm/v7"
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: "7"
|
goarm: '7'
|
||||||
image_templates:
|
image_templates:
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv7"
|
- "filebrowser/filebrowser:{{ .Tag }}-armv7"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker
|
- docker_config.json
|
||||||
|
- healthcheck.sh
|
||||||
## s6-overlay docker images
|
## s6 based docker images
|
||||||
- dockerfile: Dockerfile.s6
|
-
|
||||||
|
dockerfile: Dockerfile.s6
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@ -130,8 +138,10 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64-s6"
|
- "filebrowser/filebrowser:v{{ .Major }}-amd64-s6"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker
|
- docker/root
|
||||||
- dockerfile: Dockerfile.s6
|
- healthcheck.sh
|
||||||
|
-
|
||||||
|
dockerfile: Dockerfile.s6.aarch64
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@ -147,8 +157,8 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64-s6"
|
- "filebrowser/filebrowser:{{ .Tag }}-arm64-s6"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64-s6"
|
- "filebrowser/filebrowser:v{{ .Major }}-arm64-s6"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker
|
- docker/root
|
||||||
|
- healthcheck.sh
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
- name_template: "filebrowser/filebrowser:latest"
|
- name_template: "filebrowser/filebrowser:latest"
|
||||||
image_templates:
|
image_templates:
|
||||||
@ -165,7 +175,7 @@ docker_manifests:
|
|||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
||||||
## s6 image manifests
|
## s6 image manifests
|
||||||
- name_template: "filebrowser/filebrowser:s6"
|
- name_template: "filebrowser/filebrowser:s6"
|
||||||
image_templates:
|
image_templates:
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
||||||
@ -178,20 +188,15 @@ docker_manifests:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64-s6"
|
- "filebrowser/filebrowser:v{{ .Major }}-amd64-s6"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64-s6"
|
- "filebrowser/filebrowser:v{{ .Major }}-arm64-s6"
|
||||||
|
brews:
|
||||||
homebrew_casks:
|
|
||||||
- name: filebrowser
|
- name: filebrowser
|
||||||
repository:
|
repository:
|
||||||
owner: filebrowser
|
owner: filebrowser
|
||||||
name: homebrew-tap
|
name: homebrew-tap
|
||||||
|
directory: Formula
|
||||||
|
homepage: https://filebrowser.org
|
||||||
commit_author:
|
commit_author:
|
||||||
name: FileBrowser Robot
|
name: FileBrowser Robot
|
||||||
email: robot@filebrowser.org
|
email: robot@filebrowser.org
|
||||||
homepage: https://github.com/filebrowser/filebrowser
|
|
||||||
description: File Browser is a create-your-own-cloud-kind of software where you can install it on a server, direct it to a path and then access your files through a nice web interface
|
description: File Browser is a create-your-own-cloud-kind of software where you can install it on a server, direct it to a path and then access your files through a nice web interface
|
||||||
hooks:
|
license: "MIT"
|
||||||
post:
|
|
||||||
install: |
|
|
||||||
if system_command("/usr/bin/xattr", args: ["-h"]).exit_status == 0
|
|
||||||
system_command "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "#{staged_path}/filebrowser"]
|
|
||||||
end
|
|
||||||
|
253
CHANGELOG.md
@ -2,259 +2,6 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
### [2.40.1](https://github.com/filebrowser/filebrowser/compare/v2.40.0...v2.40.1) (2025-07-15)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* print correct user on setup ([88f1442](https://github.com/filebrowser/filebrowser/commit/88f144293267260fd4d823e3259783309b1a57b3))
|
|
||||||
|
|
||||||
## [2.40.0](https://github.com/filebrowser/filebrowser/compare/v2.39.0...v2.40.0) (2025-07-13)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* add font size botton to text editor ([#5290](https://github.com/filebrowser/filebrowser/issues/5290)) ([035084d](https://github.com/filebrowser/filebrowser/commit/035084d8e83243065fad69bfac1b69559fbad5fb))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* invalid path when uploading files ([9072cbc](https://github.com/filebrowser/filebrowser/commit/9072cbce340da55477906f5419a4cfb6d6937dc0))
|
|
||||||
* Only left click should drag the image in extended image view ([b8454bb](https://github.com/filebrowser/filebrowser/commit/b8454bb2e41ca2848b926b66354468ba4b1c7ba5))
|
|
||||||
|
|
||||||
## [2.39.0](https://github.com/filebrowser/filebrowser/compare/v2.38.0...v2.39.0) (2025-07-13)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Improve Docker entrypoint and config handling ([01c814c](https://github.com/filebrowser/filebrowser/commit/01c814cf98f81f2bcd622aea75e5b1efe3484940))
|
|
||||||
* rewrite the archiver and added support for zstd and brotli ([#5283](https://github.com/filebrowser/filebrowser/issues/5283)) ([7c71686](https://github.com/filebrowser/filebrowser/commit/7c716862c1bd3cdedd3c02d3a37207293db197ca))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* drop modify permission for uploading new file ([#5270](https://github.com/filebrowser/filebrowser/issues/5270)) ([0f27c91](https://github.com/filebrowser/filebrowser/commit/0f27c91eca581482ce4f82f6429f5dac12f8b64e))
|
|
||||||
* Settings button in the sidebar ([5a8e717](https://github.com/filebrowser/filebrowser/commit/5a8e7171b1b41eff771fe27133c91d2c250896a8))
|
|
||||||
|
|
||||||
|
|
||||||
### Build
|
|
||||||
|
|
||||||
* improve docker image and binary sizes ([35ca24a](https://github.com/filebrowser/filebrowser/commit/35ca24adb886721fc9d5e1a68cfc577e2c5f0230))
|
|
||||||
* lightweight busybox-based container build ([#5285](https://github.com/filebrowser/filebrowser/issues/5285)) ([5c5942d](https://github.com/filebrowser/filebrowser/commit/5c5942d99514b433e09d90624bbe58992eab6be2))
|
|
||||||
* remove upx ([1a5c83b](https://github.com/filebrowser/filebrowser/commit/1a5c83bcfe847f1e41a44cef23fd795b19b6b434))
|
|
||||||
|
|
||||||
## [2.38.0](https://github.com/filebrowser/filebrowser/compare/v2.37.0...v2.38.0) (2025-07-12)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Show the current users name in the sidebar ([#2821](https://github.com/filebrowser/filebrowser/issues/2821)) ([528ce92](https://github.com/filebrowser/filebrowser/commit/528ce92fad6dcc8e8b7910036bf9175146e27bf7))
|
|
||||||
* Updates for project File Browser ([b4eddf4](https://github.com/filebrowser/filebrowser/commit/b4eddf45e4d7e6f6ccf242e67fe20f89f5e2f9a9))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* prevent page change if there are outstanding edits ([#5260](https://github.com/filebrowser/filebrowser/issues/5260)) ([fbe169b](https://github.com/filebrowser/filebrowser/commit/fbe169b84f28cba22ea87f01b52f2420f1ea6814))
|
|
||||||
|
|
||||||
## [2.37.0](https://github.com/filebrowser/filebrowser/compare/v2.36.3...v2.37.0) (2025-07-08)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Translate frontend/src/i18n/en.json in zh_CN ([65bbf44](https://github.com/filebrowser/filebrowser/commit/65bbf44e3c0bff83e64193d46e9d6ad302952276))
|
|
||||||
* Translate frontend/src/i18n/en.json in zh_TW ([b28952c](https://github.com/filebrowser/filebrowser/commit/b28952cb2582bd4eb44e91d0676e2803c458cf31))
|
|
||||||
* Translate frontend/src/i18n/en.json in zh_TW ([1e96fd9](https://github.com/filebrowser/filebrowser/commit/1e96fd9035d5185dc80970a2826ccb573b5f000e))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* long file name overlap ([fcb248a](https://github.com/filebrowser/filebrowser/commit/fcb248a5feb7b7404ca5923aae17f6d3f8d3cc96))
|
|
||||||
* preview PDF is correctly displayed ([bf73e4d](https://github.com/filebrowser/filebrowser/commit/bf73e4dea3b27c01c8f6e60fb2048e1a2122a70e))
|
|
||||||
* Upload progress size calculation ([e423395](https://github.com/filebrowser/filebrowser/commit/e423395ef0bcd106ddc7d460c055b95b5208415e))
|
|
||||||
|
|
||||||
### [2.36.3](https://github.com/filebrowser/filebrowser/compare/v2.36.2...v2.36.3) (2025-07-06)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* log error if branding file exists but cannot be loaded ([3645b57](https://github.com/filebrowser/filebrowser/commit/3645b578cddb9fc8f25a00e0153fb600ad1b9266))
|
|
||||||
|
|
||||||
### [2.36.2](https://github.com/filebrowser/filebrowser/compare/v2.36.1...v2.36.2) (2025-07-06)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* lookup directory name if blank when downloading shared directory ([046d619](https://github.com/filebrowser/filebrowser/commit/046d6193c57b4df0e3dc583b6518b43d29d302c9))
|
|
||||||
|
|
||||||
### [2.36.1](https://github.com/filebrowser/filebrowser/compare/v2.36.0...v2.36.1) (2025-07-03)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* remove associated shares when deleting file/folder ([e99e0b3](https://github.com/filebrowser/filebrowser/commit/e99e0b3028e1c8a50e1744bb07ecc8e809bdb8e6))
|
|
||||||
|
|
||||||
## [2.36.0](https://github.com/filebrowser/filebrowser/compare/v2.35.0...v2.36.0) (2025-07-02)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* update icons, remove deprecated Microsoft Tiles ([04166e8](https://github.com/filebrowser/filebrowser/commit/04166e81e52d38b1f66ba3313ccb1291c239eea2))
|
|
||||||
|
|
||||||
## [2.35.0](https://github.com/filebrowser/filebrowser/compare/v2.34.2...v2.35.0) (2025-06-30)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Long press selects item in single click mode ([8d75220](https://github.com/filebrowser/filebrowser/commit/8d7522049ced83f28f0933b55772c32e3ad04627))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* shell value must be joined by blank space ([4403cd3](https://github.com/filebrowser/filebrowser/commit/4403cd35720dbda5a8bb1013b92582accf3317bc))
|
|
||||||
* update documentation links ([38d0366](https://github.com/filebrowser/filebrowser/commit/38d0366acf88352b5a9a97c45837b0f865efae0b))
|
|
||||||
|
|
||||||
### [2.34.2](https://github.com/filebrowser/filebrowser/compare/v2.34.1...v2.34.2) (2025-06-29)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* mitigate unprotected shares ([2b5d6cb](https://github.com/filebrowser/filebrowser/commit/2b5d6cbb996a61a769acc56af0acc12eec2d8d8f))
|
|
||||||
|
|
||||||
### [2.34.1](https://github.com/filebrowser/filebrowser/compare/v2.34.0...v2.34.1) (2025-06-29)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* exclude to-be-moved folder from move dialog ([#5235](https://github.com/filebrowser/filebrowser/issues/5235)) ([7354eb6](https://github.com/filebrowser/filebrowser/commit/7354eb6cf966244141277c2808988855c004f908))
|
|
||||||
* passthrough the minimum password length ([#5236](https://github.com/filebrowser/filebrowser/issues/5236)) ([bf37f88](https://github.com/filebrowser/filebrowser/commit/bf37f88c32222ad9c186482bb97338a9c9b4a93c))
|
|
||||||
|
|
||||||
## [2.34.0](https://github.com/filebrowser/filebrowser/compare/v2.33.10...v2.34.0) (2025-06-29)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Translate frontend/src/i18n/en.json in fa ([0acd69c](https://github.com/filebrowser/filebrowser/commit/0acd69c537ce2909ff62c4bb6980982524ece221))
|
|
||||||
* Translate frontend/src/i18n/en.json in fa ([#5233](https://github.com/filebrowser/filebrowser/issues/5233)) ([09f679f](https://github.com/filebrowser/filebrowser/commit/09f679fae43398f5b87d21acc9d974d4d053392f))
|
|
||||||
* update translations for project File Browser ([#5226](https://github.com/filebrowser/filebrowser/issues/5226)) ([a5ea2a2](https://github.com/filebrowser/filebrowser/commit/a5ea2a266bef619d1c4322266d1aa7d397d2c856))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* abort ongoing requests when changing pages ([#3927](https://github.com/filebrowser/filebrowser/issues/3927)) ([93c4b2e](https://github.com/filebrowser/filebrowser/commit/93c4b2e03c5176da01a7e00a03c03ffcce279bc8))
|
|
||||||
* add configurable minimum password length ([#5225](https://github.com/filebrowser/filebrowser/issues/5225)) ([464b644](https://github.com/filebrowser/filebrowser/commit/464b644adf22a2178414a6f1e4fa286276de81d2))
|
|
||||||
* do not expose the name of the root directory ([#5224](https://github.com/filebrowser/filebrowser/issues/5224)) ([0892559](https://github.com/filebrowser/filebrowser/commit/089255997a653c284cd4249990b58bed00086c61))
|
|
||||||
* Graceful shutdown ([8230eb7](https://github.com/filebrowser/filebrowser/commit/8230eb7ab51ccbd00b03f5b9d6964fa4aae331d4))
|
|
||||||
|
|
||||||
|
|
||||||
### Reverts
|
|
||||||
|
|
||||||
* Revert "docs: change cloudflare environment (#5231)" (#5232) ([9e273cd](https://github.com/filebrowser/filebrowser/commit/9e273cd9475d57b9500034e8b341ff8b620bcab8)), closes [#5231](https://github.com/filebrowser/filebrowser/issues/5231) [#5232](https://github.com/filebrowser/filebrowser/issues/5232)
|
|
||||||
|
|
||||||
|
|
||||||
### Build
|
|
||||||
|
|
||||||
* add an arm64 target for the site image ([#5229](https://github.com/filebrowser/filebrowser/issues/5229)) ([f5e531c](https://github.com/filebrowser/filebrowser/commit/f5e531c8ae0b9b18717e184856ace0ce19beef82))
|
|
||||||
* bump golangci-lint to 2.1.6 ([1d494ff](https://github.com/filebrowser/filebrowser/commit/1d494ff3159ef939cfb4980ccde6f27df3e738b5))
|
|
||||||
* **deps:** bump brace-expansion from 1.1.11 to 1.1.12 in /tools ([#5228](https://github.com/filebrowser/filebrowser/issues/5228)) ([5a07291](https://github.com/filebrowser/filebrowser/commit/5a072913062a6b2b0e5c74a02ca7710218ed3e5e))
|
|
||||||
* **deps:** bump github.com/go-viper/mapstructure/v2 ([f32f273](https://github.com/filebrowser/filebrowser/commit/f32f27383d1fafa074f038cc873bd37b7f20ee27))
|
|
||||||
* **deps:** bump github.com/go-viper/mapstructure/v2 in /tools ([5331969](https://github.com/filebrowser/filebrowser/commit/5331969163f5ae1fd2389f665059fc9e4a98db15))
|
|
||||||
* publish docs to cloudflare pages ([#5230](https://github.com/filebrowser/filebrowser/issues/5230)) ([8861933](https://github.com/filebrowser/filebrowser/commit/8861933cf845b104e072f35e5f37d7c26097c9dc))
|
|
||||||
|
|
||||||
### [2.33.10](https://github.com/filebrowser/filebrowser/compare/v2.33.9...v2.33.10) (2025-06-26)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* correctly check if command is allowed when using shell ([4d830f7](https://github.com/filebrowser/filebrowser/commit/4d830f707fc4314741fd431e70c2ce50cd5a3108))
|
|
||||||
* correctly split shell ([f84a6db](https://github.com/filebrowser/filebrowser/commit/f84a6db680b6df1c7c8f06f1816f7e4c9e963668))
|
|
||||||
* ignore linting error ([e735491](https://github.com/filebrowser/filebrowser/commit/e735491c57b12c3b19dd2e4b570723df78f4eb44))
|
|
||||||
|
|
||||||
### [2.33.9](https://github.com/filebrowser/filebrowser/compare/v2.33.8...v2.33.9) (2025-06-26)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* check exact match on command allow list ([e2e1e49](https://github.com/filebrowser/filebrowser/commit/e2e1e4913085cca8917e0f69171dc28d3c6af1b6))
|
|
||||||
* remove auth token from /api/command ([d5b39a1](https://github.com/filebrowser/filebrowser/commit/d5b39a14fd3fc0d1c364116b41289484df7c27b2))
|
|
||||||
* remove unused import ([c232d41](https://github.com/filebrowser/filebrowser/commit/c232d41f903d3026ec290bbe819b6c59a933048e))
|
|
||||||
|
|
||||||
### [2.33.8](https://github.com/filebrowser/filebrowser/compare/v2.33.7...v2.33.8) (2025-06-25)
|
|
||||||
|
|
||||||
### [2.33.7](https://github.com/filebrowser/filebrowser/compare/v2.33.6...v2.33.7) (2025-06-25)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* correctly parse negative boolean flags ([221451a](https://github.com/filebrowser/filebrowser/commit/221451a5179c8f139819a315b80d0ecb0e7220c3))
|
|
||||||
* linting issues ([4bfbf33](https://github.com/filebrowser/filebrowser/commit/4bfbf332499fc8aea5f6df6aae1efa0de918d1ae))
|
|
||||||
* linting issues ([e74c958](https://github.com/filebrowser/filebrowser/commit/e74c95886226c0ee429af1860eed21dd1f8601aa))
|
|
||||||
|
|
||||||
### [2.33.6](https://github.com/filebrowser/filebrowser/compare/v2.33.5...v2.33.6) (2025-06-24)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* remove incorrect default for password flag ([23bd8f6](https://github.com/filebrowser/filebrowser/commit/23bd8f67155081d707d4799393d3b1e2bebeaa34))
|
|
||||||
|
|
||||||
### [2.33.5](https://github.com/filebrowser/filebrowser/compare/v2.33.4...v2.33.5) (2025-06-24)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* update languages for project File Browser ([#5190](https://github.com/filebrowser/filebrowser/issues/5190)) ([f330764](https://github.com/filebrowser/filebrowser/commit/f33076462a133935ca97fb6c7345303fe350e167))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* actually register the czech language ([#5189](https://github.com/filebrowser/filebrowser/issues/5189)) ([0268506](https://github.com/filebrowser/filebrowser/commit/0268506f80d33d2d31e38055e12530241d27a11b))
|
|
||||||
|
|
||||||
### [2.33.4](https://github.com/filebrowser/filebrowser/compare/v2.33.3...v2.33.4) (2025-06-22)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* translation updates for project File Browser ([#5179](https://github.com/filebrowser/filebrowser/issues/5179)) ([f714e71](https://github.com/filebrowser/filebrowser/commit/f714e71a356c2301f394d651c9b6c467440508e3))
|
|
||||||
|
|
||||||
### [2.33.3](https://github.com/filebrowser/filebrowser/compare/v2.33.2...v2.33.3) (2025-06-22)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* keep command behavior in Dockerfile ([7c0c782](https://github.com/filebrowser/filebrowser/commit/7c0c7820efbbed2f0499353cc76ecb85d00ff7c3))
|
|
||||||
* update search hotkey in help prompt ([#5178](https://github.com/filebrowser/filebrowser/issues/5178)) ([2741616](https://github.com/filebrowser/filebrowser/commit/2741616473636d40b7e9f14c9906ada08d328c3c))
|
|
||||||
|
|
||||||
### [2.33.2](https://github.com/filebrowser/filebrowser/compare/v2.33.1...v2.33.2) (2025-06-21)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* create user dir on signup ([0ca8059](https://github.com/filebrowser/filebrowser/commit/0ca8059d8dea4fe079146471ce4f24acc96021f2))
|
|
||||||
|
|
||||||
### [2.33.1](https://github.com/filebrowser/filebrowser/compare/v2.33.0...v2.33.1) (2025-06-21)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* downloadUrl of file preview ([#3728](https://github.com/filebrowser/filebrowser/issues/3728)) ([8a14018](https://github.com/filebrowser/filebrowser/commit/8a14018861fe581672bbd27cdc3ae5691f70a108))
|
|
||||||
* remove auth query parameter from download and preview links ([cbb7124](https://github.com/filebrowser/filebrowser/commit/cbb712484d3bdabc033acaf3b696ef4f5865813d))
|
|
||||||
* search uses ctrl+shift+f instead of hijacking browser's ctrl+f ([#4638](https://github.com/filebrowser/filebrowser/issues/4638)) ([a02b297](https://github.com/filebrowser/filebrowser/commit/a02b2972ebde2a58806ad1377bad46e748b63166))
|
|
||||||
|
|
||||||
## [2.33.0](https://github.com/filebrowser/filebrowser/compare/v2.32.3...v2.33.0) (2025-06-18)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* improved docker image volumes and permissions ([#5160](https://github.com/filebrowser/filebrowser/issues/5160)) ([2e26393](https://github.com/filebrowser/filebrowser/commit/2e26393a022df0eaa9e08727407aba8b997aa728))
|
|
||||||
|
|
||||||
### [2.32.3](https://github.com/filebrowser/filebrowser/compare/v2.32.2...v2.32.3) (2025-06-17)
|
|
||||||
|
|
||||||
### [2.32.2](https://github.com/filebrowser/filebrowser/compare/v2.32.1...v2.32.2) (2025-06-17)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* updated for project File Browser ([#5159](https://github.com/filebrowser/filebrowser/issues/5159)) ([c34c0af](https://github.com/filebrowser/filebrowser/commit/c34c0afecf3242b16ad5d5584cd90a6ad323361c))
|
|
||||||
|
|
||||||
### [2.32.1](https://github.com/filebrowser/filebrowser/compare/v2.32.0...v2.32.1) (2025-06-16)
|
### [2.32.1](https://github.com/filebrowser/filebrowser/compare/v2.32.0...v2.32.1) (2025-06-16)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
# Code of Conduct
|
|
||||||
|
|
||||||
## Contributor Covenant Code of Conduct
|
|
||||||
|
|
||||||
### Our Pledge
|
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
||||||
|
|
||||||
### Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment include:
|
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
|
||||||
* Being respectful of differing viewpoints and experiences
|
|
||||||
* Gracefully accepting constructive criticism
|
|
||||||
* Focusing on what is best for the community
|
|
||||||
* Showing empathy towards other community members
|
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
||||||
|
|
||||||
### Our Responsibilities
|
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
### Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
### Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hacdias@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
|
||||||
|
|
||||||
### Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [https://contributor-covenant.org/version/1/4](https://contributor-covenant.org/version/1/4).
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
|||||||
# Contributing
|
|
||||||
|
|
||||||
If you're interested in contributing to this project, this is the best place to start. Before contributing to this project, please take a bit of time to read our [Code of Conduct](code-of-conduct.md). Also, note that this project is open-source and licensed under [Apache License 2.0](LICENSE).
|
|
||||||
|
|
||||||
## Project Structure
|
|
||||||
|
|
||||||
The backend side of the application is written in [Go](https://golang.org/), while the frontend (located on a subdirectory of the same name) is written in [Vue.js](https://vuejs.org/). Due to the tight coupling required by some features, basic knowledge of both Go and Vue.js is recommended.
|
|
||||||
|
|
||||||
* Learn Go: [https://github.com/golang/go/wiki/Learn](https://github.com/golang/go/wiki/Learn)
|
|
||||||
* Learn Vue.js: [https://vuejs.org/guide/introduction.html](https://vuejs.org/guide/introduction.html)
|
|
||||||
|
|
||||||
We encourage you to use git to manage your fork. To clone the main repository, just run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/filebrowser/filebrowser
|
|
||||||
```
|
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
### Frontend
|
|
||||||
|
|
||||||
We are using [Node.js](https://nodejs.org/en/) on the frontend to manage the build process. The steps to build it are:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# From the root of the repo, go to frontend/
|
|
||||||
cd frontend
|
|
||||||
|
|
||||||
# Install the dependencies
|
|
||||||
pnpm install
|
|
||||||
|
|
||||||
# Build the frontend
|
|
||||||
pnpm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
This will install the dependencies and build the frontend so you can then embed it into the Go app. Although, if you want to play with it, you'll get bored of building it after every change you do. So, you can run the command below to watch for changes:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pnpm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### Backend
|
|
||||||
|
|
||||||
First of all, you need to download the required dependencies. We are using the built-in `go mod` tool for dependency management. To get the modules, run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
go mod download
|
|
||||||
```
|
|
||||||
|
|
||||||
The magic of File Browser is that the static assets are bundled into the final binary. For that, we use [Go embed.FS](https://golang.org/pkg/embed/). The files from `frontend/dist` will be embedded during the build process.
|
|
||||||
|
|
||||||
To build File Browser is just like any other Go program:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
go build
|
|
||||||
```
|
|
||||||
|
|
||||||
To create a development build use the "dev" tag, this way the content inside the frontend folder will not be embedded in the binary but will be reloaded at every change:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
go build -tags dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## Translations
|
|
||||||
|
|
||||||
Translations are managed on Transifex, which is an online website where everyone can contribute and translate strings for our project. It automatically syncs with the main language file \(in English\) and,, for you to contribute, you just need to:
|
|
||||||
|
|
||||||
1. Go to our Transifex web page: [app.transifex.com/file-browser/file-browser](https://app.transifex.com/file-browser/file-browser/)
|
|
||||||
2. Click on **Join the project** and pick your language. We'll accept you as soon as possible. If you're language is not on the list, please request it via the interface.
|
|
||||||
|
|
||||||
Translations are automatically pushed to GitHub via an integration.
|
|
||||||
|
|
||||||
## Authentication Provider
|
|
||||||
|
|
||||||
To build a new authentication provider, you need to implement the [Auther interface](https://github.com/filebrowser/filebrowser/blob/master/auth/auth.go), whose method will be called on the login page after the user has submitted their login data.
|
|
||||||
|
|
||||||
```go
|
|
||||||
// Auther is the authentication interface.
|
|
||||||
type Auther interface {
|
|
||||||
// Auth is called to authenticate a request.
|
|
||||||
Auth(r *http.Request, s *users.Storage, root string) (*users.User, error)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
After implementing the interface you should:
|
|
||||||
|
|
||||||
1. Add it to [`auth` directory](https://github.com/filebrowser/filebrowser/blob/master/auth).
|
|
||||||
2. Add it to the [configuration parser](https://github.com/filebrowser/filebrowser/blob/master/cmd/config.go) for the CLI.
|
|
||||||
3. Add it to the [`authBackend.Get`](https://github.com/filebrowser/filebrowser/blob/master/storage/bolt/auth.go).
|
|
||||||
|
|
||||||
If you need to add more flags, please update the function `addConfigFlags`.
|
|
||||||
|
|
55
Dockerfile
@ -1,46 +1,19 @@
|
|||||||
## Multistage build: First stage fetches dependencies
|
FROM alpine:latest
|
||||||
FROM alpine:3.22 AS fetcher
|
RUN apk --update add ca-certificates \
|
||||||
|
mailcap \
|
||||||
|
curl \
|
||||||
|
jq
|
||||||
|
|
||||||
# install and copy ca-certificates, mailcap, and tini-static; download JSON.sh
|
COPY healthcheck.sh /healthcheck.sh
|
||||||
RUN apk update && \
|
RUN chmod +x /healthcheck.sh # Make the script executable
|
||||||
apk --no-cache add ca-certificates mailcap tini-static && \
|
|
||||||
wget -O /JSON.sh https://raw.githubusercontent.com/dominictarr/JSON.sh/0d5e5c77365f63809bf6e77ef44a1f34b0e05840/JSON.sh
|
|
||||||
|
|
||||||
## Second stage: Use lightweight BusyBox image for final runtime environment
|
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
||||||
FROM busybox:1.37.0-musl
|
CMD /healthcheck.sh || exit 1
|
||||||
|
|
||||||
# Define non-root user UID and GID
|
|
||||||
ENV UID=1000
|
|
||||||
ENV GID=1000
|
|
||||||
|
|
||||||
# Create user group and user
|
|
||||||
RUN addgroup -g $GID user && \
|
|
||||||
adduser -D -u $UID -G user user
|
|
||||||
|
|
||||||
# Copy binary, scripts, and configurations into image with proper ownership
|
|
||||||
COPY --chown=user:user filebrowser /bin/filebrowser
|
|
||||||
COPY --chown=user:user docker/common/ /
|
|
||||||
COPY --chown=user:user docker/alpine/ /
|
|
||||||
COPY --chown=user:user --from=fetcher /sbin/tini-static /bin/tini
|
|
||||||
COPY --from=fetcher /JSON.sh /JSON.sh
|
|
||||||
COPY --from=fetcher /etc/ca-certificates.conf /etc/ca-certificates.conf
|
|
||||||
COPY --from=fetcher /etc/ca-certificates /etc/ca-certificates
|
|
||||||
COPY --from=fetcher /etc/mime.types /etc/mime.types
|
|
||||||
COPY --from=fetcher /etc/ssl /etc/ssl
|
|
||||||
|
|
||||||
# Create data directories, set ownership, and ensure healthcheck script is executable
|
|
||||||
RUN mkdir -p /config /database /srv && \
|
|
||||||
chown -R user:user /config /database /srv \
|
|
||||||
&& chmod +x /healthcheck.sh
|
|
||||||
|
|
||||||
# Define healthcheck script
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s CMD /healthcheck.sh
|
|
||||||
|
|
||||||
# Set the user, volumes and exposed ports
|
|
||||||
USER user
|
|
||||||
|
|
||||||
VOLUME /srv /config /database
|
|
||||||
|
|
||||||
|
VOLUME /srv
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
ENTRYPOINT [ "tini", "--", "/init.sh" ]
|
COPY docker_config.json /.filebrowser.json
|
||||||
|
COPY filebrowser /filebrowser
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/filebrowser" ]
|
@ -1,23 +1,21 @@
|
|||||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.22
|
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
|
||||||
|
|
||||||
RUN apk update && \
|
RUN apk --update add ca-certificates \
|
||||||
apk --no-cache add ca-certificates mailcap jq
|
mailcap \
|
||||||
|
curl \
|
||||||
|
jq
|
||||||
|
|
||||||
# Make user and create necessary directories
|
COPY healthcheck.sh /healthcheck.sh
|
||||||
RUN mkdir -p /config /database /srv && \
|
RUN chmod +x /healthcheck.sh # Make the script executable
|
||||||
chown -R abc:abc /config /database /srv
|
|
||||||
|
|
||||||
# Copy files and set permissions
|
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
||||||
COPY filebrowser /bin/filebrowser
|
CMD /healthcheck.sh || exit 1
|
||||||
COPY docker/common/ /
|
|
||||||
COPY docker/s6/ /
|
|
||||||
|
|
||||||
RUN chown -R abc:abc /bin/filebrowser /defaults healthcheck.sh
|
# copy local files
|
||||||
|
COPY docker/root/ /
|
||||||
|
RUN ln -s /config/settings.json /.filebrowser.json
|
||||||
|
COPY filebrowser /usr/bin/filebrowser
|
||||||
|
|
||||||
# Define healthcheck script
|
# ports and volumes
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s CMD /healthcheck.sh
|
|
||||||
|
|
||||||
# Set the volumes and exposed ports
|
|
||||||
VOLUME /srv /config /database
|
VOLUME /srv /config /database
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
21
Dockerfile.s6.aarch64
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20
|
||||||
|
|
||||||
|
RUN apk --update add ca-certificates \
|
||||||
|
mailcap \
|
||||||
|
curl \
|
||||||
|
jq
|
||||||
|
|
||||||
|
COPY healthcheck.sh /healthcheck.sh
|
||||||
|
RUN chmod +x /healthcheck.sh # Make the script executable
|
||||||
|
|
||||||
|
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
||||||
|
CMD /healthcheck.sh || exit 1
|
||||||
|
|
||||||
|
# copy local files
|
||||||
|
COPY docker/root/ /
|
||||||
|
RUN ln -s /config/settings.json /.filebrowser.json
|
||||||
|
COPY filebrowser /usr/bin/filebrowser
|
||||||
|
|
||||||
|
# ports and volumes
|
||||||
|
VOLUME /srv /config /database
|
||||||
|
EXPOSE 80
|
2
LICENSE
@ -187,7 +187,7 @@
|
|||||||
same "printed page" as the copyright notice for easier
|
same "printed page" as the copyright notice for easier
|
||||||
identification within third-party archives.
|
identification within third-party archives.
|
||||||
|
|
||||||
Copyright 2018 File Browser Contributors
|
Copyright 2018 File Browser contributors
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
19
Makefile
@ -3,14 +3,6 @@ include tools.mk
|
|||||||
|
|
||||||
LDFLAGS += -X "$(MODULE)/version.Version=$(VERSION)" -X "$(MODULE)/version.CommitSHA=$(VERSION_HASH)"
|
LDFLAGS += -X "$(MODULE)/version.Version=$(VERSION)" -X "$(MODULE)/version.CommitSHA=$(VERSION_HASH)"
|
||||||
|
|
||||||
SITE_DOCKER_FLAGS = \
|
|
||||||
-v $(CURDIR)/www:/docs \
|
|
||||||
-v $(CURDIR)/LICENSE:/docs/docs/LICENSE \
|
|
||||||
-v $(CURDIR)/SECURITY.md:/docs/docs/security.md \
|
|
||||||
-v $(CURDIR)/CHANGELOG.md:/docs/docs/changelog.md \
|
|
||||||
-v $(CURDIR)/CODE-OF-CONDUCT.md:/docs/docs/code-of-conduct.md \
|
|
||||||
-v $(CURDIR)/CONTRIBUTING.md:/docs/docs/contributing.md
|
|
||||||
|
|
||||||
## Build:
|
## Build:
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
@ -61,17 +53,6 @@ clean: clean-tools ## Clean
|
|||||||
bump-version: $(standard-version) ## Bump app version
|
bump-version: $(standard-version) ## Bump app version
|
||||||
$Q ./scripts/bump_version.sh
|
$Q ./scripts/bump_version.sh
|
||||||
|
|
||||||
.PHONY: site
|
|
||||||
site: ## Build site
|
|
||||||
@rm -rf www/public
|
|
||||||
docker build -f www/Dockerfile --progress=plain -t filebrowser.site www
|
|
||||||
docker run --rm $(SITE_DOCKER_FLAGS) filebrowser.site build -d "public"
|
|
||||||
|
|
||||||
.PHONY: site-serve
|
|
||||||
site-serve: ## Serve site for development
|
|
||||||
docker build -f www/Dockerfile --progress=plain -t filebrowser.site www
|
|
||||||
docker run --rm -it -p 8000:8000 $(SITE_DOCKER_FLAGS) filebrowser.site
|
|
||||||
|
|
||||||
## Help:
|
## Help:
|
||||||
help: ## Show this help
|
help: ## Show this help
|
||||||
@echo ''
|
@echo ''
|
||||||
|
46
README.md
@ -2,19 +2,15 @@
|
|||||||
<img src="https://raw.githubusercontent.com/filebrowser/logo/master/banner.png" width="550"/>
|
<img src="https://raw.githubusercontent.com/filebrowser/logo/master/banner.png" width="550"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
[](https://github.com/filebrowser/filebrowser/actions/workflows/main.yaml)
|
[](https://github.com/filebrowser/filebrowser/actions/workflows/main.yaml)
|
||||||
[](https://goreportcard.com/report/github.com/filebrowser/filebrowser)
|
[](https://goreportcard.com/report/github.com/filebrowser/filebrowser)
|
||||||
[](http://godoc.org/github.com/filebrowser/filebrowser)
|
[](http://godoc.org/github.com/filebrowser/filebrowser)
|
||||||
[](https://github.com/filebrowser/filebrowser/releases/latest)
|
[](https://github.com/filebrowser/filebrowser/releases/latest)
|
||||||
[](http://webchat.freenode.net/?channels=%23filebrowser)
|
[](http://webchat.freenode.net/?channels=%23filebrowser)
|
||||||
|
|
||||||
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview and edit your files. It is a **create-your-own-cloud**-kind of software where you can just install it on your server, direct it to a path and access your files through a nice web interface.
|
filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files. It allows the creation of multiple users and each user can have its own directory. It can be used as a standalone app.
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
Documentation on how to install, configure, and contribute to this project is hosted at [filebrowser.org](https://filebrowser.org).
|
|
||||||
|
|
||||||
## Project Status
|
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
>
|
>
|
||||||
@ -29,10 +25,28 @@ Documentation on how to install, configure, and contribute to this project is ho
|
|||||||
[issues]: https://github.com/filebrowser/filebrowser/issues
|
[issues]: https://github.com/filebrowser/filebrowser/issues
|
||||||
[discussions]: https://github.com/filebrowser/filebrowser/discussions
|
[discussions]: https://github.com/filebrowser/filebrowser/discussions
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
URL: https://demo.filebrowser.org/
|
||||||
|
|
||||||
|
Credentials: `demo`/`demo`
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
Please refer to our docs at [https://filebrowser.org/features](https://filebrowser.org/features)
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
For installation instructions please refer to our docs at [https://filebrowser.org/installation](https://filebrowser.org/installation).
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
[Authentication Method](https://filebrowser.org/configuration/authentication-method) - You can change the way the user authenticates with the filebrowser server
|
||||||
|
|
||||||
|
[Command Runner](https://filebrowser.org/configuration/command-runner) - The command runner is a feature that enables you to execute any shell command you want before or after a certain event.
|
||||||
|
|
||||||
|
[Custom Branding](https://filebrowser.org/configuration/custom-branding) - You can customize your File Browser installation by change its name to any other you want, by adding a global custom style sheet and by using your own logotype if you want.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Contributions are always welcome. To start contributing to this project, read our [guidelines](CONTRIBUTING.md) first.
|
If you're interested in contributing to this project, our docs are best places to start [https://filebrowser.org/contributing](https://filebrowser.org/contributing).
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
[Apache License 2.0](LICENSE) © File Browser Contributors
|
|
||||||
|
@ -12,9 +12,7 @@ currently being supported with security updates.
|
|||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
Vulnerabilities with critical impact should be reported on the [Security](https://github.com/filebrowser/filebrowser/security) page of this repository, which is a private way of communicating vulnerabilities to maintainers. This project is in maintenance-only mode and it can take a while until someone gets back to you.
|
Vulnerabilities should be reported to filebrowser@googlegroups.com - which is a private, maintainer-only group. Maintainers will attempt to respond to/confirm reports within 2-3 days, but if you believe your report to be "critical" to user safety and security, please note as such in the subject. We have tens of thousands of users using our software, and take security vulnerabilities seriously.
|
||||||
|
|
||||||
If it is not a critical vulnerability, please open an issue and we will categorize it as a security issue. By giving visibility, we can get more help from the community at fixing such issues.
|
|
||||||
|
|
||||||
When reporting an issue, where possible, please provide at least:
|
When reporting an issue, where possible, please provide at least:
|
||||||
|
|
||||||
@ -23,4 +21,6 @@ When reporting an issue, where possible, please provide at least:
|
|||||||
* Steps to reproduce
|
* Steps to reproduce
|
||||||
* Your recommended remediation(s), if any.
|
* Your recommended remediation(s), if any.
|
||||||
|
|
||||||
The File Browser team is a volunteer-only effort, and may reach back out for clarification.
|
The FileBrowser team is a volunteer-only effort, and may reach back out for clarification.
|
||||||
|
|
||||||
|
> Note: Please do not open public issues for security issues, as GitHub does not provide facility for private issues, and deleting the issue makes it hard to triage/respond back to the reporter.
|
||||||
|
@ -150,7 +150,7 @@ func (a *HookAuth) SaveUser() (*users.User, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if u == nil {
|
if u == nil {
|
||||||
pass, err := users.ValidateAndHashPwd(a.Cred.Password, a.Settings.MinimumPasswordLength)
|
pass, err := users.HashPwd(a.Cred.Password)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -186,7 +186,7 @@ func (a *HookAuth) SaveUser() (*users.User, error) {
|
|||||||
|
|
||||||
// update the password when it doesn't match the current
|
// update the password when it doesn't match the current
|
||||||
if p {
|
if p {
|
||||||
pass, err := users.ValidateAndHashPwd(a.Cred.Password, a.Settings.MinimumPasswordLength)
|
pass, err := users.HashPwd(a.Cred.Password)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package auth
|
package auth
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/rand"
|
||||||
"errors"
|
"errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
@ -28,14 +29,15 @@ func (a ProxyAuth) Auth(r *http.Request, usr users.Store, setting *settings.Sett
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a ProxyAuth) createUser(usr users.Store, setting *settings.Settings, srv *settings.Server, username string) (*users.User, error) {
|
func (a ProxyAuth) createUser(usr users.Store, setting *settings.Settings, srv *settings.Server, username string) (*users.User, error) {
|
||||||
const randomPasswordLength = settings.DefaultMinimumPasswordLength + 10
|
const passwordSize = 32
|
||||||
pwd, err := users.RandomPwd(randomPasswordLength)
|
randomPasswordBytes := make([]byte, passwordSize)
|
||||||
|
_, err := rand.Read(randomPasswordBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var hashedRandomPassword string
|
var hashedRandomPassword string
|
||||||
hashedRandomPassword, err = users.ValidateAndHashPwd(pwd, setting.MinimumPasswordLength)
|
hashedRandomPassword, err = users.HashPwd(string(randomPasswordBytes))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,6 @@ func addConfigFlags(flags *pflag.FlagSet) {
|
|||||||
addUserFlags(flags)
|
addUserFlags(flags)
|
||||||
flags.BoolP("signup", "s", false, "allow users to signup")
|
flags.BoolP("signup", "s", false, "allow users to signup")
|
||||||
flags.Bool("create-user-dir", false, "generate user's home directory automatically")
|
flags.Bool("create-user-dir", false, "generate user's home directory automatically")
|
||||||
flags.Uint("minimum-password-length", settings.DefaultMinimumPasswordLength, "minimum password length for new users")
|
|
||||||
flags.String("shell", "", "shell command to which other commands should be appended")
|
flags.String("shell", "", "shell command to which other commands should be appended")
|
||||||
|
|
||||||
flags.String("auth.method", string(auth.MethodJSONAuth), "authentication type")
|
flags.String("auth.method", string(auth.MethodJSONAuth), "authentication type")
|
||||||
@ -145,7 +144,6 @@ func printSettings(ser *settings.Server, set *settings.Settings, auther auth.Aut
|
|||||||
|
|
||||||
fmt.Fprintf(w, "Sign up:\t%t\n", set.Signup)
|
fmt.Fprintf(w, "Sign up:\t%t\n", set.Signup)
|
||||||
fmt.Fprintf(w, "Create User Dir:\t%t\n", set.CreateUserDir)
|
fmt.Fprintf(w, "Create User Dir:\t%t\n", set.CreateUserDir)
|
||||||
fmt.Fprintf(w, "Minimum Password Length:\t%d\n", set.MinimumPasswordLength)
|
|
||||||
fmt.Fprintf(w, "Auth method:\t%s\n", set.AuthMethod)
|
fmt.Fprintf(w, "Auth method:\t%s\n", set.AuthMethod)
|
||||||
fmt.Fprintf(w, "Shell:\t%s\t\n", strings.Join(set.Shell, " "))
|
fmt.Fprintf(w, "Shell:\t%s\t\n", strings.Join(set.Shell, " "))
|
||||||
fmt.Fprintln(w, "\nBranding:")
|
fmt.Fprintln(w, "\nBranding:")
|
||||||
|
@ -56,7 +56,7 @@ The path must be for a json or yaml file.`,
|
|||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
var rawAuther interface{}
|
var rawAuther interface{}
|
||||||
if filepath.Ext(args[0]) != ".json" {
|
if filepath.Ext(args[0]) != ".json" { //nolint:goconst
|
||||||
rawAuther = cleanUpInterfaceMap(file.Auther.(map[interface{}]interface{}))
|
rawAuther = cleanUpInterfaceMap(file.Auther.(map[interface{}]interface{}))
|
||||||
} else {
|
} else {
|
||||||
rawAuther = file.Auther
|
rawAuther = file.Auther
|
||||||
|
@ -29,13 +29,12 @@ override the options.`,
|
|||||||
authMethod, auther := getAuthentication(flags)
|
authMethod, auther := getAuthentication(flags)
|
||||||
|
|
||||||
s := &settings.Settings{
|
s := &settings.Settings{
|
||||||
Key: generateKey(),
|
Key: generateKey(),
|
||||||
Signup: mustGetBool(flags, "signup"),
|
Signup: mustGetBool(flags, "signup"),
|
||||||
CreateUserDir: mustGetBool(flags, "create-user-dir"),
|
CreateUserDir: mustGetBool(flags, "create-user-dir"),
|
||||||
MinimumPasswordLength: mustGetUint(flags, "minimum-password-length"),
|
Shell: convertCmdStrToCmdArray(mustGetString(flags, "shell")),
|
||||||
Shell: convertCmdStrToCmdArray(mustGetString(flags, "shell")),
|
AuthMethod: authMethod,
|
||||||
AuthMethod: authMethod,
|
Defaults: defaults,
|
||||||
Defaults: defaults,
|
|
||||||
Branding: settings.Branding{
|
Branding: settings.Branding{
|
||||||
Name: mustGetString(flags, "branding.name"),
|
Name: mustGetString(flags, "branding.name"),
|
||||||
DisableExternal: mustGetBool(flags, "branding.disableExternal"),
|
DisableExternal: mustGetBool(flags, "branding.disableExternal"),
|
||||||
|
@ -51,8 +51,6 @@ you want to change. Other options will remain unchanged.`,
|
|||||||
set.Shell = convertCmdStrToCmdArray(mustGetString(flags, flag.Name))
|
set.Shell = convertCmdStrToCmdArray(mustGetString(flags, flag.Name))
|
||||||
case "create-user-dir":
|
case "create-user-dir":
|
||||||
set.CreateUserDir = mustGetBool(flags, flag.Name)
|
set.CreateUserDir = mustGetBool(flags, flag.Name)
|
||||||
case "minimum-password-length":
|
|
||||||
set.MinimumPasswordLength = mustGetUint(flags, flag.Name)
|
|
||||||
case "branding.name":
|
case "branding.name":
|
||||||
set.Branding.Name = mustGetString(flags, flag.Name)
|
set.Branding.Name = mustGetString(flags, flag.Name)
|
||||||
case "branding.color":
|
case "branding.color":
|
||||||
|
160
cmd/root.go
@ -1,7 +1,6 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
@ -14,7 +13,6 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
|
||||||
|
|
||||||
homedir "github.com/mitchellh/go-homedir"
|
homedir "github.com/mitchellh/go-homedir"
|
||||||
"github.com/spf13/afero"
|
"github.com/spf13/afero"
|
||||||
@ -50,7 +48,7 @@ func init() {
|
|||||||
persistent.StringP("database", "d", "./filebrowser.db", "database path")
|
persistent.StringP("database", "d", "./filebrowser.db", "database path")
|
||||||
flags.Bool("noauth", false, "use the noauth auther when using quick setup")
|
flags.Bool("noauth", false, "use the noauth auther when using quick setup")
|
||||||
flags.String("username", "admin", "username for the first user when using quick config")
|
flags.String("username", "admin", "username for the first user when using quick config")
|
||||||
flags.String("password", "", "hashed password for the first user when using quick config")
|
flags.String("password", "", "hashed password for the first user when using quick config (default \"admin\")")
|
||||||
|
|
||||||
addServerFlags(flags)
|
addServerFlags(flags)
|
||||||
}
|
}
|
||||||
@ -63,14 +61,14 @@ func addServerFlags(flags *pflag.FlagSet) {
|
|||||||
flags.StringP("key", "k", "", "tls key")
|
flags.StringP("key", "k", "", "tls key")
|
||||||
flags.StringP("root", "r", ".", "root to prepend to relative paths")
|
flags.StringP("root", "r", ".", "root to prepend to relative paths")
|
||||||
flags.String("socket", "", "socket to listen to (cannot be used with address, port, cert nor key flags)")
|
flags.String("socket", "", "socket to listen to (cannot be used with address, port, cert nor key flags)")
|
||||||
flags.Uint32("socket-perm", 0666, "unix socket file permissions")
|
flags.Uint32("socket-perm", 0666, "unix socket file permissions") //nolint:gomnd
|
||||||
flags.StringP("baseurl", "b", "", "base url")
|
flags.StringP("baseurl", "b", "", "base url")
|
||||||
flags.String("cache-dir", "", "file cache directory (disabled if empty)")
|
flags.String("cache-dir", "", "file cache directory (disabled if empty)")
|
||||||
flags.String("token-expiration-time", "2h", "user session timeout")
|
flags.String("token-expiration-time", "2h", "user session timeout")
|
||||||
flags.Int("img-processors", 4, "image processors count") //nolint:mnd
|
flags.Int("img-processors", 4, "image processors count") //nolint:gomnd
|
||||||
flags.Bool("disable-thumbnails", false, "disable image thumbnails")
|
flags.Bool("disable-thumbnails", false, "disable image thumbnails")
|
||||||
flags.Bool("disable-preview-resize", false, "disable resize of image previews")
|
flags.Bool("disable-preview-resize", false, "disable resize of image previews")
|
||||||
flags.Bool("disable-exec", true, "disables Command Runner feature")
|
flags.Bool("disable-exec", false, "disables Command Runner feature")
|
||||||
flags.Bool("disable-type-detection-by-header", false, "disables type detection by reading file headers")
|
flags.Bool("disable-type-detection-by-header", false, "disables type detection by reading file headers")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,7 +129,7 @@ user created with the credentials from options "username" and "password".`,
|
|||||||
cacheDir, err := cmd.Flags().GetString("cache-dir")
|
cacheDir, err := cmd.Flags().GetString("cache-dir")
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
if cacheDir != "" {
|
if cacheDir != "" {
|
||||||
if err := os.MkdirAll(cacheDir, 0700); err != nil { //nolint:govet
|
if err := os.MkdirAll(cacheDir, 0700); err != nil { //nolint:govet,gomnd
|
||||||
log.Fatalf("can't make directory %s: %s", cacheDir, err)
|
log.Fatalf("can't make directory %s: %s", cacheDir, err)
|
||||||
}
|
}
|
||||||
fileCache = diskcache.New(afero.NewOsFs(), cacheDir)
|
fileCache = diskcache.New(afero.NewOsFs(), cacheDir)
|
||||||
@ -169,6 +167,10 @@ user created with the credentials from options "username" and "password".`,
|
|||||||
checkErr(err)
|
checkErr(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sigc := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(sigc, os.Interrupt, syscall.SIGTERM)
|
||||||
|
go cleanupHandler(listener, sigc)
|
||||||
|
|
||||||
assetsFs, err := fs.Sub(frontend.Assets(), "dist")
|
assetsFs, err := fs.Sub(frontend.Assets(), "dist")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -180,74 +182,61 @@ user created with the credentials from options "username" and "password".`,
|
|||||||
defer listener.Close()
|
defer listener.Close()
|
||||||
|
|
||||||
log.Println("Listening on", listener.Addr().String())
|
log.Println("Listening on", listener.Addr().String())
|
||||||
srv := &http.Server{
|
//nolint: gosec
|
||||||
Handler: handler,
|
if err := http.Serve(listener, handler); err != nil {
|
||||||
ReadHeaderTimeout: 60 * time.Second,
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
|
||||||
if err := srv.Serve(listener); !errors.Is(err, http.ErrServerClosed) {
|
|
||||||
log.Fatalf("HTTP server error: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("Stopped serving new connections.")
|
|
||||||
}()
|
|
||||||
|
|
||||||
sigc := make(chan os.Signal, 1)
|
|
||||||
signal.Notify(sigc, os.Interrupt, syscall.SIGTERM)
|
|
||||||
<-sigc
|
|
||||||
|
|
||||||
shutdownCtx, shutdownRelease := context.WithTimeout(context.Background(), 10*time.Second) //nolint:mnd
|
|
||||||
defer shutdownRelease()
|
|
||||||
|
|
||||||
if err := srv.Shutdown(shutdownCtx); err != nil {
|
|
||||||
log.Fatalf("HTTP shutdown error: %v", err)
|
|
||||||
}
|
|
||||||
log.Println("Graceful shutdown complete.")
|
|
||||||
}, pythonConfig{allowNoDB: true}),
|
}, pythonConfig{allowNoDB: true}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func cleanupHandler(listener net.Listener, c chan os.Signal) { //nolint:interfacer
|
||||||
|
sig := <-c
|
||||||
|
log.Printf("Caught signal %s: shutting down.", sig)
|
||||||
|
listener.Close()
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
//nolint:gocyclo
|
//nolint:gocyclo
|
||||||
func getRunParams(flags *pflag.FlagSet, st *storage.Storage) *settings.Server {
|
func getRunParams(flags *pflag.FlagSet, st *storage.Storage) *settings.Server {
|
||||||
server, err := st.Settings.GetServer()
|
server, err := st.Settings.GetServer()
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "root"); set {
|
if val, set := getParamB(flags, "root"); set {
|
||||||
server.Root = val
|
server.Root = val
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "baseurl"); set {
|
if val, set := getParamB(flags, "baseurl"); set {
|
||||||
server.BaseURL = val
|
server.BaseURL = val
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "log"); set {
|
if val, set := getParamB(flags, "log"); set {
|
||||||
server.Log = val
|
server.Log = val
|
||||||
}
|
}
|
||||||
|
|
||||||
isSocketSet := false
|
isSocketSet := false
|
||||||
isAddrSet := false
|
isAddrSet := false
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "address"); set {
|
if val, set := getParamB(flags, "address"); set {
|
||||||
server.Address = val
|
server.Address = val
|
||||||
isAddrSet = isAddrSet || set
|
isAddrSet = isAddrSet || set
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "port"); set {
|
if val, set := getParamB(flags, "port"); set {
|
||||||
server.Port = val
|
server.Port = val
|
||||||
isAddrSet = isAddrSet || set
|
isAddrSet = isAddrSet || set
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "key"); set {
|
if val, set := getParamB(flags, "key"); set {
|
||||||
server.TLSKey = val
|
server.TLSKey = val
|
||||||
isAddrSet = isAddrSet || set
|
isAddrSet = isAddrSet || set
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "cert"); set {
|
if val, set := getParamB(flags, "cert"); set {
|
||||||
server.TLSCert = val
|
server.TLSCert = val
|
||||||
isAddrSet = isAddrSet || set
|
isAddrSet = isAddrSet || set
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "socket"); set {
|
if val, set := getParamB(flags, "socket"); set {
|
||||||
server.Socket = val
|
server.Socket = val
|
||||||
isSocketSet = isSocketSet || set
|
isSocketSet = isSocketSet || set
|
||||||
}
|
}
|
||||||
@ -261,69 +250,33 @@ func getRunParams(flags *pflag.FlagSet, st *storage.Storage) *settings.Server {
|
|||||||
server.Socket = ""
|
server.Socket = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
disableThumbnails := getBoolParam(flags, "disable-thumbnails")
|
_, disableThumbnails := getParamB(flags, "disable-thumbnails")
|
||||||
server.EnableThumbnails = !disableThumbnails
|
server.EnableThumbnails = !disableThumbnails
|
||||||
|
|
||||||
disablePreviewResize := getBoolParam(flags, "disable-preview-resize")
|
_, disablePreviewResize := getParamB(flags, "disable-preview-resize")
|
||||||
server.ResizePreview = !disablePreviewResize
|
server.ResizePreview = !disablePreviewResize
|
||||||
|
|
||||||
disableTypeDetectionByHeader := getBoolParam(flags, "disable-type-detection-by-header")
|
_, disableTypeDetectionByHeader := getParamB(flags, "disable-type-detection-by-header")
|
||||||
server.TypeDetectionByHeader = !disableTypeDetectionByHeader
|
server.TypeDetectionByHeader = !disableTypeDetectionByHeader
|
||||||
|
|
||||||
disableExec := getBoolParam(flags, "disable-exec")
|
_, disableExec := getParamB(flags, "disable-exec")
|
||||||
server.EnableExec = !disableExec
|
server.EnableExec = !disableExec
|
||||||
|
|
||||||
if server.EnableExec {
|
if val, set := getParamB(flags, "token-expiration-time"); set {
|
||||||
log.Println("WARNING: Command Runner feature enabled!")
|
|
||||||
log.Println("WARNING: This feature has known security vulnerabilities and should not")
|
|
||||||
log.Println("WARNING: you fully understand the risks involved. For more information")
|
|
||||||
log.Println("WARNING: read https://github.com/filebrowser/filebrowser/issues/5199")
|
|
||||||
}
|
|
||||||
|
|
||||||
if val, set := getStringParamB(flags, "token-expiration-time"); set {
|
|
||||||
server.TokenExpirationTime = val
|
server.TokenExpirationTime = val
|
||||||
}
|
}
|
||||||
|
|
||||||
return server
|
return server
|
||||||
}
|
}
|
||||||
|
|
||||||
// getBoolParamB returns a parameter as a string and a boolean to tell if it is different from the default
|
// getParamB returns a parameter as a string and a boolean to tell if it is different from the default
|
||||||
//
|
//
|
||||||
// NOTE: we could simply bind the flags to viper and use IsSet.
|
// NOTE: we could simply bind the flags to viper and use IsSet.
|
||||||
// Although there is a bug on Viper that always returns true on IsSet
|
// Although there is a bug on Viper that always returns true on IsSet
|
||||||
// if a flag is binded. Our alternative way is to manually check
|
// if a flag is binded. Our alternative way is to manually check
|
||||||
// the flag and then the value from env/config/gotten by viper.
|
// the flag and then the value from env/config/gotten by viper.
|
||||||
// https://github.com/spf13/viper/pull/331
|
// https://github.com/spf13/viper/pull/331
|
||||||
func getBoolParamB(flags *pflag.FlagSet, key string) (value, ok bool) {
|
func getParamB(flags *pflag.FlagSet, key string) (string, bool) {
|
||||||
value, _ = flags.GetBool(key)
|
|
||||||
|
|
||||||
// If set on Flags, use it.
|
|
||||||
if flags.Changed(key) {
|
|
||||||
return value, true
|
|
||||||
}
|
|
||||||
|
|
||||||
// If set through viper (env, config), return it.
|
|
||||||
if v.IsSet(key) {
|
|
||||||
return v.GetBool(key), true
|
|
||||||
}
|
|
||||||
|
|
||||||
// Otherwise use default value on flags.
|
|
||||||
return value, false
|
|
||||||
}
|
|
||||||
|
|
||||||
func getBoolParam(flags *pflag.FlagSet, key string) bool {
|
|
||||||
val, _ := getBoolParamB(flags, key)
|
|
||||||
return val
|
|
||||||
}
|
|
||||||
|
|
||||||
// getStringParamB returns a parameter as a string and a boolean to tell if it is different from the default
|
|
||||||
//
|
|
||||||
// NOTE: we could simply bind the flags to viper and use IsSet.
|
|
||||||
// Although there is a bug on Viper that always returns true on IsSet
|
|
||||||
// if a flag is binded. Our alternative way is to manually check
|
|
||||||
// the flag and then the value from env/config/gotten by viper.
|
|
||||||
// https://github.com/spf13/viper/pull/331
|
|
||||||
func getStringParamB(flags *pflag.FlagSet, key string) (string, bool) {
|
|
||||||
value, _ := flags.GetString(key)
|
value, _ := flags.GetString(key)
|
||||||
|
|
||||||
// If set on Flags, use it.
|
// If set on Flags, use it.
|
||||||
@ -340,8 +293,8 @@ func getStringParamB(flags *pflag.FlagSet, key string) (string, bool) {
|
|||||||
return value, false
|
return value, false
|
||||||
}
|
}
|
||||||
|
|
||||||
func getStringParam(flags *pflag.FlagSet, key string) string {
|
func getParam(flags *pflag.FlagSet, key string) string {
|
||||||
val, _ := getStringParamB(flags, key)
|
val, _ := getParamB(flags, key)
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,14 +317,11 @@ func setupLog(logMethod string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
||||||
log.Println("Performing quick setup")
|
|
||||||
|
|
||||||
set := &settings.Settings{
|
set := &settings.Settings{
|
||||||
Key: generateKey(),
|
Key: generateKey(),
|
||||||
Signup: false,
|
Signup: false,
|
||||||
CreateUserDir: false,
|
CreateUserDir: false,
|
||||||
MinimumPasswordLength: settings.DefaultMinimumPasswordLength,
|
UserHomeBasePath: settings.DefaultUsersHomeBasePath,
|
||||||
UserHomeBasePath: settings.DefaultUsersHomeBasePath,
|
|
||||||
Defaults: settings.UserDefaults{
|
Defaults: settings.UserDefaults{
|
||||||
Scope: ".",
|
Scope: ".",
|
||||||
Locale: "en",
|
Locale: "en",
|
||||||
@ -399,7 +349,7 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
if _, noauth := getStringParamB(flags, "noauth"); noauth {
|
if _, noauth := getParamB(flags, "noauth"); noauth {
|
||||||
set.AuthMethod = auth.MethodNoAuth
|
set.AuthMethod = auth.MethodNoAuth
|
||||||
err = d.store.Auth.Save(&auth.NoAuth{})
|
err = d.store.Auth.Save(&auth.NoAuth{})
|
||||||
} else {
|
} else {
|
||||||
@ -412,31 +362,30 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
|||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
ser := &settings.Server{
|
ser := &settings.Server{
|
||||||
BaseURL: getStringParam(flags, "baseurl"),
|
BaseURL: getParam(flags, "baseurl"),
|
||||||
Port: getStringParam(flags, "port"),
|
Port: getParam(flags, "port"),
|
||||||
Log: getStringParam(flags, "log"),
|
Log: getParam(flags, "log"),
|
||||||
TLSKey: getStringParam(flags, "key"),
|
TLSKey: getParam(flags, "key"),
|
||||||
TLSCert: getStringParam(flags, "cert"),
|
TLSCert: getParam(flags, "cert"),
|
||||||
Address: getStringParam(flags, "address"),
|
Address: getParam(flags, "address"),
|
||||||
Root: getStringParam(flags, "root"),
|
Root: getParam(flags, "root"),
|
||||||
}
|
}
|
||||||
|
|
||||||
err = d.store.Settings.SaveServer(ser)
|
err = d.store.Settings.SaveServer(ser)
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
username := getStringParam(flags, "username")
|
username := getParam(flags, "username")
|
||||||
password := getStringParam(flags, "password")
|
password := getParam(flags, "password")
|
||||||
|
|
||||||
if password == "" {
|
if password == "" {
|
||||||
var pwd string
|
var pwd string
|
||||||
pwd, err = users.RandomPwd(set.MinimumPasswordLength)
|
pwd, err = users.RandomPwd()
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
log.Printf("User '%s' initialized with randomly generated password: %s\n", username, pwd)
|
log.Println("Generated random admin password for quick setup:", pwd)
|
||||||
password, err = users.ValidateAndHashPwd(pwd, set.MinimumPasswordLength)
|
|
||||||
|
password, err = users.HashPwd(pwd)
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
} else {
|
|
||||||
log.Printf("User '%s' initialize wth user-provided password\n", username)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if username == "" || password == "" {
|
if username == "" || password == "" {
|
||||||
@ -471,7 +420,6 @@ func initConfig() {
|
|||||||
v.SetEnvPrefix("FB")
|
v.SetEnvPrefix("FB")
|
||||||
v.AutomaticEnv()
|
v.AutomaticEnv()
|
||||||
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
||||||
v.SetEnvKeyReplacer(strings.NewReplacer("-", "_"))
|
|
||||||
|
|
||||||
if err := v.ReadInConfig(); err != nil {
|
if err := v.ReadInConfig(); err != nil {
|
||||||
var configParseError v.ConfigParseError
|
var configParseError v.ConfigParseError
|
||||||
|
@ -25,7 +25,7 @@ this version.`,
|
|||||||
flags := cmd.Flags()
|
flags := cmd.Flags()
|
||||||
oldDB := mustGetString(flags, "old.database")
|
oldDB := mustGetString(flags, "old.database")
|
||||||
oldConf := mustGetString(flags, "old.config")
|
oldConf := mustGetString(flags, "old.config")
|
||||||
err := importer.Import(oldDB, oldConf, getStringParam(flags, "database"))
|
err := importer.Import(oldDB, oldConf, getParam(flags, "database"))
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ var usersAddCmd = &cobra.Command{
|
|||||||
checkErr(err)
|
checkErr(err)
|
||||||
getUserDefaults(cmd.Flags(), &s.Defaults, false)
|
getUserDefaults(cmd.Flags(), &s.Defaults, false)
|
||||||
|
|
||||||
password, err := users.ValidateAndHashPwd(args[1], s.MinimumPasswordLength)
|
password, err := users.HashPwd(args[1])
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
user := &users.User{
|
user := &users.User{
|
||||||
|
@ -27,10 +27,8 @@ options you want to change.`,
|
|||||||
password := mustGetString(flags, "password")
|
password := mustGetString(flags, "password")
|
||||||
newUsername := mustGetString(flags, "username")
|
newUsername := mustGetString(flags, "username")
|
||||||
|
|
||||||
s, err := d.store.Settings.Get()
|
|
||||||
checkErr(err)
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
err error
|
||||||
user *users.User
|
user *users.User
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -66,7 +64,7 @@ options you want to change.`,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if password != "" {
|
if password != "" {
|
||||||
user.Password, err = users.ValidateAndHashPwd(password, s.MinimumPasswordLength)
|
user.Password, err = users.HashPwd(password)
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,6 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
yaml "gopkg.in/yaml.v2"
|
yaml "gopkg.in/yaml.v2"
|
||||||
|
|
||||||
"github.com/filebrowser/filebrowser/v2/files"
|
|
||||||
"github.com/filebrowser/filebrowser/v2/settings"
|
"github.com/filebrowser/filebrowser/v2/settings"
|
||||||
"github.com/filebrowser/filebrowser/v2/storage"
|
"github.com/filebrowser/filebrowser/v2/storage"
|
||||||
"github.com/filebrowser/filebrowser/v2/storage/bolt"
|
"github.com/filebrowser/filebrowser/v2/storage/bolt"
|
||||||
@ -73,7 +72,7 @@ func dbExists(path string) (bool, error) {
|
|||||||
d := filepath.Dir(path)
|
d := filepath.Dir(path)
|
||||||
_, err = os.Stat(d)
|
_, err = os.Stat(d)
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
if err := os.MkdirAll(d, 0700); err != nil { //nolint:govet
|
if err := os.MkdirAll(d, 0700); err != nil { //nolint:govet,gomnd
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
return false, nil
|
return false, nil
|
||||||
@ -87,7 +86,7 @@ func python(fn pythonFunc, cfg pythonConfig) cobraFunc {
|
|||||||
return func(cmd *cobra.Command, args []string) {
|
return func(cmd *cobra.Command, args []string) {
|
||||||
data := pythonData{hadDB: true}
|
data := pythonData{hadDB: true}
|
||||||
|
|
||||||
path := getStringParam(cmd.Flags(), "database")
|
path := getParam(cmd.Flags(), "database")
|
||||||
absPath, err := filepath.Abs(path)
|
absPath, err := filepath.Abs(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -106,7 +105,7 @@ func python(fn pythonFunc, cfg pythonConfig) cobraFunc {
|
|||||||
|
|
||||||
log.Println("Using database: " + absPath)
|
log.Println("Using database: " + absPath)
|
||||||
data.hadDB = exists
|
data.hadDB = exists
|
||||||
db, err := storm.Open(path, storm.BoltOptions(files.PermFile, nil))
|
db, err := storm.Open(path)
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
data.store, err = bolt.NewStorage(db)
|
data.store, err = bolt.NewStorage(db)
|
||||||
@ -125,7 +124,7 @@ func marshal(filename string, data interface{}) error {
|
|||||||
encoder := json.NewEncoder(fd)
|
encoder := json.NewEncoder(fd)
|
||||||
encoder.SetIndent("", " ")
|
encoder.SetIndent("", " ")
|
||||||
return encoder.Encode(data)
|
return encoder.Encode(data)
|
||||||
case ".yml", ".yaml":
|
case ".yml", ".yaml": //nolint:goconst
|
||||||
encoder := yaml.NewEncoder(fd)
|
encoder := yaml.NewEncoder(fd)
|
||||||
return encoder.Encode(data)
|
return encoder.Encode(data)
|
||||||
default:
|
default:
|
||||||
|
@ -37,11 +37,11 @@ func (f *FileCache) Store(_ context.Context, key string, value []byte) error {
|
|||||||
defer mu.Unlock()
|
defer mu.Unlock()
|
||||||
|
|
||||||
fileName := f.getFileName(key)
|
fileName := f.getFileName(key)
|
||||||
if err := f.fs.MkdirAll(filepath.Dir(fileName), 0700); err != nil {
|
if err := f.fs.MkdirAll(filepath.Dir(fileName), 0700); err != nil { //nolint:gomnd
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := afero.WriteFile(f.fs, fileName, value, 0700); err != nil {
|
if err := afero.WriteFile(f.fs, fileName, value, 0700); err != nil { //nolint:gomnd
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
PORT=${FB_PORT:-$(cat /config/settings.json | sh /JSON.sh | grep '\["port"\]' | awk '{print $2}')}
|
|
||||||
ADDRESS=${FB_ADDRESS:-$(cat /config/settings.json | sh /JSON.sh | grep '\["address"\]' | awk '{print $2}' | sed 's/"//g')}
|
|
||||||
ADDRESS=${ADDRESS:-localhost}
|
|
||||||
|
|
||||||
wget -q --spider http://$ADDRESS:$PORT/health || exit 1
|
|
@ -1,35 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Ensure configuration exists
|
|
||||||
if [ ! -f "/config/settings.json" ]; then
|
|
||||||
cp -a /defaults/settings.json /config/settings.json
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Extract config file path from arguments
|
|
||||||
config_file=""
|
|
||||||
next_is_config=0
|
|
||||||
for arg in "$@"; do
|
|
||||||
if [ "$next_is_config" -eq 1 ]; then
|
|
||||||
config_file="$arg"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
case "$arg" in
|
|
||||||
-c|--config)
|
|
||||||
next_is_config=1
|
|
||||||
;;
|
|
||||||
-c=*|--config=*)
|
|
||||||
config_file="${arg#*=}"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# If no config argument is provided, set the default and add it to the args
|
|
||||||
if [ -z "$config_file" ]; then
|
|
||||||
config_file="/config/settings.json"
|
|
||||||
set -- --config=/config/settings.json "$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec filebrowser "$@"
|
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
PORT=${FB_PORT:-$(jq -r .port /config/settings.json)}
|
|
||||||
ADDRESS=${FB_ADDRESS:-$(jq -r .address /config/settings.json)}
|
|
||||||
ADDRESS=${ADDRESS:-localhost}
|
|
||||||
|
|
||||||
wget -q --spider http://$ADDRESS:$PORT/health || exit 1
|
|
@ -1,6 +1,9 @@
|
|||||||
#!/usr/bin/with-contenv bash
|
#!/usr/bin/with-contenv bash
|
||||||
|
|
||||||
# Ensure configuration exists
|
# make folders
|
||||||
|
mkdir -p /database
|
||||||
|
|
||||||
|
# copy config
|
||||||
if [ ! -f "/config/settings.json" ]; then
|
if [ ! -f "/config/settings.json" ]; then
|
||||||
cp -a /defaults/settings.json /config/settings.json
|
cp -a /defaults/settings.json /config/settings.json
|
||||||
fi
|
fi
|
3
docker/root/etc/services.d/filebrowser/run
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/with-contenv bash
|
||||||
|
|
||||||
|
exec s6-setuidgid abc filebrowser -c /config/settings.json -d /database/filebrowser.db;
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bash
|
|
||||||
|
|
||||||
exec s6-setuidgid abc filebrowser -c /config/settings.json;
|
|
@ -3,6 +3,6 @@
|
|||||||
"baseURL": "",
|
"baseURL": "",
|
||||||
"address": "",
|
"address": "",
|
||||||
"log": "stdout",
|
"log": "stdout",
|
||||||
"database": "/database/filebrowser.db",
|
"database": "/database.db",
|
||||||
"root": "/srv"
|
"root": "/srv"
|
||||||
}
|
}
|
@ -1,16 +1,12 @@
|
|||||||
package errors
|
package errors
|
||||||
|
|
||||||
import (
|
import "errors"
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrEmptyKey = errors.New("empty key")
|
ErrEmptyKey = errors.New("empty key")
|
||||||
ErrExist = errors.New("the resource already exists")
|
ErrExist = errors.New("the resource already exists")
|
||||||
ErrNotExist = errors.New("the resource does not exist")
|
ErrNotExist = errors.New("the resource does not exist")
|
||||||
ErrEmptyPassword = errors.New("password is empty")
|
ErrEmptyPassword = errors.New("password is empty")
|
||||||
ErrEasyPassword = errors.New("password is too easy")
|
|
||||||
ErrEmptyUsername = errors.New("username is empty")
|
ErrEmptyUsername = errors.New("username is empty")
|
||||||
ErrEmptyRequest = errors.New("empty request")
|
ErrEmptyRequest = errors.New("empty request")
|
||||||
ErrScopeIsRelative = errors.New("scope is a relative path")
|
ErrScopeIsRelative = errors.New("scope is a relative path")
|
||||||
@ -23,11 +19,3 @@ var (
|
|||||||
ErrSourceIsParent = errors.New("source is parent")
|
ErrSourceIsParent = errors.New("source is parent")
|
||||||
ErrRootUserDeletion = errors.New("user with id 1 can't be deleted")
|
ErrRootUserDeletion = errors.New("user with id 1 can't be deleted")
|
||||||
)
|
)
|
||||||
|
|
||||||
type ErrShortPassword struct {
|
|
||||||
MinimumLength uint
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e ErrShortPassword) Error() string {
|
|
||||||
return fmt.Sprintf("password is too short, minimum length is %d", e.MinimumLength)
|
|
||||||
}
|
|
||||||
|
@ -27,8 +27,8 @@ import (
|
|||||||
"github.com/filebrowser/filebrowser/v2/rules"
|
"github.com/filebrowser/filebrowser/v2/rules"
|
||||||
)
|
)
|
||||||
|
|
||||||
const PermFile = 0640
|
const PermFile = 0644
|
||||||
const PermDir = 0750
|
const PermDir = 0755
|
||||||
|
|
||||||
var (
|
var (
|
||||||
reSubDirs = regexp.MustCompile("(?i)^sub(s|titles)$")
|
reSubDirs = regexp.MustCompile("(?i)^sub(s|titles)$")
|
||||||
@ -86,11 +86,6 @@ func NewFileInfo(opts *FileOptions) (*FileInfo, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do not expose the name of root directory.
|
|
||||||
if file.Path == "/" {
|
|
||||||
file.Name = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
if opts.Expand {
|
if opts.Expand {
|
||||||
if file.IsDir {
|
if file.IsDir {
|
||||||
if err := file.readListing(opts.Checker, opts.ReadHeader); err != nil { //nolint:govet
|
if err := file.readListing(opts.Checker, opts.ReadHeader); err != nil { //nolint:govet
|
||||||
@ -222,6 +217,7 @@ func (i *FileInfo) RealPath() string {
|
|||||||
return i.Path
|
return i.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//nolint:goconst
|
||||||
func (i *FileInfo) detectType(modify, saveContent, readHeader bool) error {
|
func (i *FileInfo) detectType(modify, saveContent, readHeader bool) error {
|
||||||
if IsNamedPipe(i.Mode) {
|
if IsNamedPipe(i.Mode) {
|
||||||
i.Type = "blob"
|
i.Type = "blob"
|
||||||
@ -318,7 +314,7 @@ func (i *FileInfo) readFirstBytes() []byte {
|
|||||||
}
|
}
|
||||||
defer reader.Close()
|
defer reader.Close()
|
||||||
|
|
||||||
buffer := make([]byte, 512)
|
buffer := make([]byte, 512) //nolint:gomnd
|
||||||
n, err := reader.Read(buffer)
|
n, err := reader.Read(buffer)
|
||||||
if err != nil && !errors.Is(err, io.EOF) {
|
if err != nil && !errors.Is(err, io.EOF) {
|
||||||
log.Print(err)
|
log.Print(err)
|
||||||
|
@ -16,6 +16,8 @@ type Listing struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplySort applies the sort order using .Order and .Sort
|
// ApplySort applies the sort order using .Order and .Sort
|
||||||
|
//
|
||||||
|
//nolint:goconst
|
||||||
func (l Listing) ApplySort() {
|
func (l Listing) ApplySort() {
|
||||||
// Check '.Order' to know how to sort
|
// Check '.Order' to know how to sort
|
||||||
if !l.Sorting.Asc {
|
if !l.Sorting.Asc {
|
||||||
|
@ -1,25 +1,26 @@
|
|||||||
import pluginVue from "eslint-plugin-vue";
|
import pluginVue from "eslint-plugin-vue";
|
||||||
import {
|
import vueTsEslintConfig from "@vue/eslint-config-typescript";
|
||||||
defineConfigWithVueTs,
|
|
||||||
vueTsConfigs,
|
|
||||||
} from "@vue/eslint-config-typescript";
|
|
||||||
import prettierConfig from "@vue/eslint-config-prettier";
|
import prettierConfig from "@vue/eslint-config-prettier";
|
||||||
|
|
||||||
export default defineConfigWithVueTs(
|
export default [
|
||||||
{
|
{
|
||||||
name: "app/files-to-lint",
|
name: "app/files-to-lint",
|
||||||
files: ["**/*.{ts,mts,tsx,vue}"],
|
files: ["**/*.{ts,mts,tsx,vue}"],
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
name: "app/files-to-ignore",
|
name: "app/files-to-ignore",
|
||||||
ignores: ["**/dist/**", "**/dist-ssr/**", "**/coverage/**"],
|
ignores: ["**/dist/**", "**/dist-ssr/**", "**/coverage/**"],
|
||||||
},
|
},
|
||||||
pluginVue.configs["flat/essential"],
|
|
||||||
vueTsConfigs.recommended,
|
...pluginVue.configs["flat/essential"],
|
||||||
|
...vueTsEslintConfig(),
|
||||||
prettierConfig,
|
prettierConfig,
|
||||||
|
|
||||||
{
|
{
|
||||||
rules: {
|
rules: {
|
||||||
// Note: you must disable the base rule as it can report incorrect errors
|
// Note: you must disable the base rule as it can report incorrect errors
|
||||||
|
"no-unused-expressions": "off",
|
||||||
"@typescript-eslint/no-unused-expressions": "off",
|
"@typescript-eslint/no-unused-expressions": "off",
|
||||||
// TODO: theres too many of these from before ts
|
// TODO: theres too many of these from before ts
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
@ -33,5 +34,5 @@ export default defineConfigWithVueTs(
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
);
|
];
|
||||||
|
@ -10,10 +10,18 @@
|
|||||||
|
|
||||||
<title>File Browser</title>
|
<title>File Browser</title>
|
||||||
|
|
||||||
<link rel="icon" type="image/svg+xml" href="/img/icons/favicon.svg" />
|
<link
|
||||||
<link rel="shortcut icon" href="/img/icons/favicon.ico" />
|
rel="icon"
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/icons/apple-touch-icon.png" />
|
type="image/png"
|
||||||
<meta name="apple-mobile-web-app-title" content="File Browser" />
|
sizes="32x32"
|
||||||
|
href="/img/icons/favicon-32x32.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="16x16"
|
||||||
|
href="/img/icons/favicon-16x16.png"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Add to home screen for Android and modern mobile browsers -->
|
<!-- Add to home screen for Android and modern mobile browsers -->
|
||||||
<link
|
<link
|
||||||
@ -23,6 +31,19 @@
|
|||||||
/>
|
/>
|
||||||
<meta name="theme-color" content="#2979ff" />
|
<meta name="theme-color" content="#2979ff" />
|
||||||
|
|
||||||
|
<!-- Add to home screen for Safari on iOS/iPadOS -->
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
|
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||||
|
<meta name="apple-mobile-web-app-title" content="assets" />
|
||||||
|
<link rel="apple-touch-icon" href="/img/icons/apple-touch-icon.png" />
|
||||||
|
|
||||||
|
<!-- Add to home screen for Windows -->
|
||||||
|
<meta
|
||||||
|
name="msapplication-TileImage"
|
||||||
|
content="/img/icons/mstile-144x144.png"
|
||||||
|
/>
|
||||||
|
<meta name="msapplication-TileColor" content="#2979ff" />
|
||||||
|
|
||||||
<!-- Inject Some Variables and generate the manifest json -->
|
<!-- Inject Some Variables and generate the manifest json -->
|
||||||
<script>
|
<script>
|
||||||
// We can assign JSON directly
|
// We can assign JSON directly
|
||||||
|
@ -21,56 +21,54 @@
|
|||||||
"@chenfengyuan/vue-number-input": "^2.0.1",
|
"@chenfengyuan/vue-number-input": "^2.0.1",
|
||||||
"@vueuse/core": "^12.5.0",
|
"@vueuse/core": "^12.5.0",
|
||||||
"@vueuse/integrations": "^12.5.0",
|
"@vueuse/integrations": "^12.5.0",
|
||||||
"ace-builds": "^1.43.2",
|
"ace-builds": "^1.37.5",
|
||||||
"core-js": "^3.44.0",
|
"core-js": "^3.40.0",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.10",
|
||||||
"dompurify": "^3.2.6",
|
|
||||||
"epubjs": "^0.3.93",
|
"epubjs": "^0.3.93",
|
||||||
"filesize": "^10.1.1",
|
"filesize": "^10.1.1",
|
||||||
"js-base64": "^3.7.7",
|
"js-base64": "^3.7.7",
|
||||||
"jwt-decode": "^4.0.0",
|
"jwt-decode": "^4.0.0",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"marked": "^15.0.6",
|
"marked": "^15.0.6",
|
||||||
"material-icons": "^1.13.14",
|
"material-icons": "^1.13.13",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"pinia": "^2.3.1",
|
"pinia": "^2.3.1",
|
||||||
"pretty-bytes": "^6.1.1",
|
"pretty-bytes": "^6.1.1",
|
||||||
"qrcode.vue": "^3.6.0",
|
"qrcode.vue": "^3.4.1",
|
||||||
"tus-js-client": "^4.3.1",
|
"tus-js-client": "^4.3.1",
|
||||||
"utif": "^3.1.0",
|
"utif": "^3.1.0",
|
||||||
"video.js": "^8.23.3",
|
"video.js": "^8.21.0",
|
||||||
"videojs-hotkeys": "^0.2.28",
|
"videojs-hotkeys": "^0.2.28",
|
||||||
"videojs-mobile-ui": "^1.1.1",
|
"videojs-mobile-ui": "^1.1.1",
|
||||||
"vue": "^3.5.17",
|
"vue": "^3.4.21",
|
||||||
"vue-final-modal": "^4.5.5",
|
"vue-final-modal": "^4.5.4",
|
||||||
"vue-i18n": "^11.1.9",
|
"vue-i18n": "^11.1.2",
|
||||||
"vue-lazyload": "^3.0.0",
|
"vue-lazyload": "^3.0.0",
|
||||||
"vue-reader": "^1.2.17",
|
"vue-reader": "^1.2.17",
|
||||||
"vue-router": "^4.5.1",
|
"vue-router": "^4.3.0",
|
||||||
"vue-toastification": "^2.0.0-rc.5"
|
"vue-toastification": "^2.0.0-rc.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@intlify/unplugin-vue-i18n": "^6.0.8",
|
"@intlify/unplugin-vue-i18n": "^6.0.3",
|
||||||
"@playwright/test": "^1.54.1",
|
"@playwright/test": "^1.50.0",
|
||||||
"@tsconfig/node22": "^22.0.2",
|
"@tsconfig/node22": "^22.0.0",
|
||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/node": "^22.10.10",
|
"@types/node": "^22.10.10",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.37.0",
|
"@typescript-eslint/eslint-plugin": "^8.21.0",
|
||||||
"@vitejs/plugin-legacy": "^6.0.0",
|
"@vitejs/plugin-legacy": "^6.0.0",
|
||||||
"@vitejs/plugin-vue": "^5.0.4",
|
"@vitejs/plugin-vue": "^5.0.4",
|
||||||
"@vue/eslint-config-prettier": "^10.2.0",
|
"@vue/eslint-config-prettier": "^10.2.0",
|
||||||
"@vue/eslint-config-typescript": "^14.6.0",
|
"@vue/eslint-config-typescript": "^14.3.0",
|
||||||
"@vue/tsconfig": "^0.7.0",
|
"@vue/tsconfig": "^0.7.0",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.19",
|
||||||
"concurrently": "^9.2.0",
|
"concurrently": "^9.1.2",
|
||||||
"eslint": "^9.31.0",
|
"eslint": "^9.19.0",
|
||||||
"eslint-config-prettier": "^10.1.5",
|
"eslint-plugin-prettier": "^5.2.3",
|
||||||
"eslint-plugin-prettier": "^5.5.1",
|
|
||||||
"eslint-plugin-vue": "^9.24.0",
|
"eslint-plugin-vue": "^9.24.0",
|
||||||
"jsdom": "^26.1.0",
|
"jsdom": "^26.0.0",
|
||||||
"postcss": "^8.5.6",
|
"postcss": "^8.5.1",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.4.2",
|
||||||
"terser": "^5.43.1",
|
"terser": "^5.37.0",
|
||||||
"vite": "^6.1.6",
|
"vite": "^6.1.6",
|
||||||
"vite-plugin-compression2": "^1.0.0",
|
"vite-plugin-compression2": "^1.0.0",
|
||||||
"vue-tsc": "^2.2.0"
|
"vue-tsc": "^2.2.0"
|
||||||
|
1098
frontend/pnpm-lock.yaml
generated
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 7.2 KiB |
9
frontend/public/img/icons/browserconfig.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png"/>
|
||||||
|
<TileColor>#455a64</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
BIN
frontend/public/img/icons/favicon-16x16.png
Normal file
After Width: | Height: | Size: 843 B |
BIN
frontend/public/img/icons/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 36 KiB |
BIN
frontend/public/img/icons/mstile-144x144.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
frontend/public/img/icons/mstile-150x150.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
frontend/public/img/icons/mstile-310x150.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
frontend/public/img/icons/mstile-310x310.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
frontend/public/img/icons/mstile-70x70.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
42
frontend/public/img/icons/safari-pinned-tab.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
|
||||||
|
preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata>
|
||||||
|
Created by potrace 1.11, written by Peter Selinger 2001-2013
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
|
||||||
|
fill="#000000" stroke="none">
|
||||||
|
<path d="M3245 6989 c-522 -39 -1042 -197 -1480 -449 -849 -488 -1459 -1308
|
||||||
|
-1673 -2250 -177 -776 -89 -1582 250 -2301 368 -778 1052 -1418 1857 -1739
|
||||||
|
903 -359 1927 -325 2812 92 778 368 1418 1052 1739 1857 359 903 325 1927 -92
|
||||||
|
2812 -296 627 -806 1175 -1423 1529 -587 338 -1308 500 -1990 449z m555 -580
|
||||||
|
c519 -51 1018 -245 1446 -565 788 -588 1229 -1526 1174 -2496 -16 -277 -58
|
||||||
|
-500 -145 -763 -144 -440 -378 -819 -710 -1150 -452 -452 -1005 -730 -1655
|
||||||
|
-832 -91 -14 -175 -18 -405 -18 -304 0 -369 6 -595 51 -1105 223 -1999 1092
|
||||||
|
-2259 2197 -52 221 -73 412 -73 667 0 397 64 732 204 1080 304 752 886 1334
|
||||||
|
1638 1638 431 174 895 238 1380 191z"/>
|
||||||
|
<path d="M2670 5215 c0 -13 -44 -15 -335 -15 -352 0 -383 -3 -399 -45 -3 -9
|
||||||
|
-6 -758 -6 -1663 0 -1168 -3 -1643 -11 -1632 -8 11 -9 8 -4 -15 3 -16 17 -41
|
||||||
|
31 -55 l24 -25 1530 0 1530 0 24 25 c14 14 26 36 27 50 1 14 1 711 1 1550 l-2
|
||||||
|
1526 -228 142 -229 142 -136 0 -137 0 0 -600 0 -600 -705 0 -705 0 0 615 0
|
||||||
|
615 -135 0 c-113 0 -135 -2 -135 -15z m-264 -190 c57 -29 89 -71 103 -137 35
|
||||||
|
-154 -98 -282 -258 -247 -55 12 -122 62 -148 113 -36 69 -12 186 49 243 62 58
|
||||||
|
170 70 254 28z m2316 -1702 c17 -15 18 -49 18 -670 l0 -653 -1245 0 -1245 0 0
|
||||||
|
654 c0 582 2 656 16 670 14 14 139 16 1226 16 1113 0 1213 -1 1230 -17z
|
||||||
|
m-2602 -1363 c40 -40 13 -100 -43 -100 -60 0 -88 59 -47 100 11 11 31 20 45
|
||||||
|
20 14 0 34 -9 45 -20z m2840 0 c41 -41 11 -100 -52 -100 -35 0 -58 24 -58 60
|
||||||
|
0 54 71 79 110 40z"/>
|
||||||
|
<path d="M2431 3091 c-7 -13 -7 -23 2 -35 11 -15 97 -16 1067 -14 l1055 3 0
|
||||||
|
30 0 30 -1057 3 c-1023 2 -1058 1 -1067 -17z"/>
|
||||||
|
<path d="M2436 2675 c-19 -19 -11 -41 17 -49 41 -11 2067 -7 2088 4 23 13 25
|
||||||
|
46 3 54 -9 3 -483 6 -1054 6 -919 0 -1040 -2 -1054 -15z"/>
|
||||||
|
<path d="M2447 2273 c-14 -4 -17 -13 -15 -36 l3 -32 1049 -3 c767 -1 1052 1
|
||||||
|
1062 9 20 16 17 47 -5 59 -20 10 -2055 13 -2094 3z"/>
|
||||||
|
<path d="M3822 5027 c-21 -23 -22 -30 -22 -293 0 -258 1 -271 20 -292 27 -29
|
||||||
|
56 -35 140 -30 56 3 75 8 93 26 22 22 22 26 22 298 l0 276 -24 19 c-19 16 -40
|
||||||
|
19 -115 19 -84 0 -95 -2 -114 -23z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
@ -18,10 +18,18 @@
|
|||||||
|
|
||||||
<meta name="robots" content="noindex,nofollow" />
|
<meta name="robots" content="noindex,nofollow" />
|
||||||
|
|
||||||
<link rel="icon" type="image/svg+xml" href="[{[ .StaticURL ]}]/img/icons/favicon.svg" />
|
<link
|
||||||
<link rel="shortcut icon" href="[{[ .StaticURL ]}]/img/icons/favicon.ico" />
|
rel="icon"
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="[{[ .StaticURL ]}]/img/icons/apple-touch-icon.png" />
|
type="image/png"
|
||||||
<meta name="apple-mobile-web-app-title" content="File Browser" />
|
sizes="32x32"
|
||||||
|
href="[{[ .StaticURL ]}]/img/icons/favicon-32x32.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="16x16"
|
||||||
|
href="[{[ .StaticURL ]}]/img/icons/favicon-16x16.png"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Add to home screen for Android and modern mobile browsers -->
|
<!-- Add to home screen for Android and modern mobile browsers -->
|
||||||
<link
|
<link
|
||||||
@ -34,6 +42,25 @@
|
|||||||
content="[{[ if .Color -]}][{[ .Color ]}][{[ else ]}]#2979ff[{[ end ]}]"
|
content="[{[ if .Color -]}][{[ .Color ]}][{[ else ]}]#2979ff[{[ end ]}]"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!-- Add to home screen for Safari on iOS/iPadOS -->
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
|
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||||
|
<meta name="apple-mobile-web-app-title" content="assets" />
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
href="[{[ .StaticURL ]}]/img/icons/apple-touch-icon.png"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- Add to home screen for Windows -->
|
||||||
|
<meta
|
||||||
|
name="msapplication-TileImage"
|
||||||
|
content="[{[ .StaticURL ]}]/img/icons/mstile-144x144.png"
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
name="msapplication-TileColor"
|
||||||
|
content="[{[ if .Color -]}][{[ .Color ]}][{[ else ]}]#2979ff[{[ end ]}]"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Inject Some Variables and generate the manifest json -->
|
<!-- Inject Some Variables and generate the manifest json -->
|
||||||
<script>
|
<script>
|
||||||
// We can assign JSON directly
|
// We can assign JSON directly
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { baseURL } from "@/utils/constants";
|
|
||||||
import { removePrefix } from "./utils";
|
import { removePrefix } from "./utils";
|
||||||
|
import { baseURL } from "@/utils/constants";
|
||||||
|
import { useAuthStore } from "@/stores/auth";
|
||||||
|
|
||||||
const ssl = window.location.protocol === "https:";
|
const ssl = window.location.protocol === "https:";
|
||||||
const protocol = ssl ? "wss:" : "ws:";
|
const protocol = ssl ? "wss:" : "ws:";
|
||||||
@ -10,8 +11,10 @@ export default function command(
|
|||||||
onmessage: WebSocket["onmessage"],
|
onmessage: WebSocket["onmessage"],
|
||||||
onclose: WebSocket["onclose"]
|
onclose: WebSocket["onclose"]
|
||||||
) {
|
) {
|
||||||
|
const authStore = useAuthStore();
|
||||||
|
|
||||||
url = removePrefix(url);
|
url = removePrefix(url);
|
||||||
url = `${protocol}//${window.location.host}${baseURL}/api/command${url}`;
|
url = `${protocol}//${window.location.host}${baseURL}/api/command${url}?auth=${authStore.jwt}`;
|
||||||
|
|
||||||
const conn = new window.WebSocket(url);
|
const conn = new window.WebSocket(url);
|
||||||
conn.onopen = () => conn.send(command);
|
conn.onopen = () => conn.send(command);
|
||||||
|
@ -2,22 +2,14 @@ import { useAuthStore } from "@/stores/auth";
|
|||||||
import { useLayoutStore } from "@/stores/layout";
|
import { useLayoutStore } from "@/stores/layout";
|
||||||
import { baseURL } from "@/utils/constants";
|
import { baseURL } from "@/utils/constants";
|
||||||
import { upload as postTus, useTus } from "./tus";
|
import { upload as postTus, useTus } from "./tus";
|
||||||
import { createURL, fetchURL, removePrefix, StatusError } from "./utils";
|
import { createURL, fetchURL, removePrefix } from "./utils";
|
||||||
|
|
||||||
export async function fetch(url: string, signal?: AbortSignal) {
|
export async function fetch(url: string) {
|
||||||
url = removePrefix(url);
|
url = removePrefix(url);
|
||||||
const res = await fetchURL(`/api/resources${url}`, { signal });
|
|
||||||
|
|
||||||
let data: Resource;
|
const res = await fetchURL(`/api/resources${url}`, {});
|
||||||
try {
|
|
||||||
data = (await res.json()) as Resource;
|
const data = (await res.json()) as Resource;
|
||||||
} catch (e) {
|
|
||||||
// Check if the error is an intentional cancellation
|
|
||||||
if (e instanceof Error && e.name === "AbortError") {
|
|
||||||
throw new StatusError("000 No connection", 0, true);
|
|
||||||
}
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
data.url = `/files${url}`;
|
data.url = `/files${url}`;
|
||||||
|
|
||||||
if (data.isDir) {
|
if (data.isDir) {
|
||||||
@ -83,6 +75,11 @@ export function download(format: any, ...files: string[]) {
|
|||||||
url += `algo=${format}&`;
|
url += `algo=${format}&`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const authStore = useAuthStore();
|
||||||
|
if (authStore.jwt) {
|
||||||
|
url += `auth=${authStore.jwt}&`;
|
||||||
|
}
|
||||||
|
|
||||||
window.open(url);
|
window.open(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,18 +210,10 @@ export function getSubtitlesURL(file: ResourceItem) {
|
|||||||
return file.subtitles?.map((d) => createURL("api/subtitle" + d, params));
|
return file.subtitles?.map((d) => createURL("api/subtitle" + d, params));
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function usage(url: string, signal: AbortSignal) {
|
export async function usage(url: string) {
|
||||||
url = removePrefix(url);
|
url = removePrefix(url);
|
||||||
|
|
||||||
const res = await fetchURL(`/api/usage${url}`, { signal });
|
const res = await fetchURL(`/api/usage${url}`, {});
|
||||||
|
|
||||||
try {
|
return await res.json();
|
||||||
return await res.json();
|
|
||||||
} catch (e) {
|
|
||||||
// Check if the error is an intentional cancellation
|
|
||||||
if (e instanceof Error && e.name == "AbortError") {
|
|
||||||
throw new StatusError("000 No connection", 0, true);
|
|
||||||
}
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -71,5 +71,5 @@ export function getDownloadURL(res: Resource, inline = false) {
|
|||||||
...(res.token && { token: res.token }),
|
...(res.token && { token: res.token }),
|
||||||
};
|
};
|
||||||
|
|
||||||
return createURL("api/public/dl/" + res.hash + res.path, params);
|
return createURL("api/public/dl/" + res.hash + res.path, params, false);
|
||||||
}
|
}
|
||||||
|
@ -41,5 +41,5 @@ export async function create(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getShareURL(share: Share) {
|
export function getShareURL(share: Share) {
|
||||||
return createURL("share/" + share.hash, {});
|
return createURL("share/" + share.hash, {}, false);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import * as tus from "tus-js-client";
|
import * as tus from "tus-js-client";
|
||||||
import { baseURL, tusEndpoint, tusSettings, origin } from "@/utils/constants";
|
import { baseURL, tusEndpoint, tusSettings } from "@/utils/constants";
|
||||||
import { useAuthStore } from "@/stores/auth";
|
import { useAuthStore } from "@/stores/auth";
|
||||||
import { useUploadStore } from "@/stores/upload";
|
import { useUploadStore } from "@/stores/upload";
|
||||||
import { removePrefix } from "@/api/utils";
|
import { removePrefix } from "@/api/utils";
|
||||||
|
import { fetchURL } from "./utils";
|
||||||
|
|
||||||
const RETRY_BASE_DELAY = 1000;
|
const RETRY_BASE_DELAY = 1000;
|
||||||
const RETRY_MAX_DELAY = 20000;
|
const RETRY_MAX_DELAY = 20000;
|
||||||
@ -27,6 +28,8 @@ export async function upload(
|
|||||||
filePath = removePrefix(filePath);
|
filePath = removePrefix(filePath);
|
||||||
const resourcePath = `${tusEndpoint}${filePath}?override=${overwrite}`;
|
const resourcePath = `${tusEndpoint}${filePath}?override=${overwrite}`;
|
||||||
|
|
||||||
|
await createUpload(resourcePath);
|
||||||
|
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
|
|
||||||
// Exit early because of typescript, tus content can't be a string
|
// Exit early because of typescript, tus content can't be a string
|
||||||
@ -35,7 +38,7 @@ export async function upload(
|
|||||||
}
|
}
|
||||||
return new Promise<void | string>((resolve, reject) => {
|
return new Promise<void | string>((resolve, reject) => {
|
||||||
const upload = new tus.Upload(content, {
|
const upload = new tus.Upload(content, {
|
||||||
endpoint: `${origin}${baseURL}${resourcePath}`,
|
uploadUrl: `${baseURL}${resourcePath}`,
|
||||||
chunkSize: tusSettings.chunkSize,
|
chunkSize: tusSettings.chunkSize,
|
||||||
retryDelays: computeRetryDelays(tusSettings),
|
retryDelays: computeRetryDelays(tusSettings),
|
||||||
parallelUploads: 1,
|
parallelUploads: 1,
|
||||||
@ -43,18 +46,6 @@ export async function upload(
|
|||||||
headers: {
|
headers: {
|
||||||
"X-Auth": authStore.jwt,
|
"X-Auth": authStore.jwt,
|
||||||
},
|
},
|
||||||
onShouldRetry: function (err) {
|
|
||||||
const status = err.originalResponse
|
|
||||||
? err.originalResponse.getStatus()
|
|
||||||
: 0;
|
|
||||||
|
|
||||||
// Do not retry for file conflict.
|
|
||||||
if (status === 409) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
onError: function (error) {
|
onError: function (error) {
|
||||||
if (CURRENT_UPLOAD_LIST[filePath].interval) {
|
if (CURRENT_UPLOAD_LIST[filePath].interval) {
|
||||||
clearInterval(CURRENT_UPLOAD_LIST[filePath].interval);
|
clearInterval(CURRENT_UPLOAD_LIST[filePath].interval);
|
||||||
@ -101,6 +92,17 @@ export async function upload(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function createUpload(resourcePath: string) {
|
||||||
|
const headResp = await fetchURL(resourcePath, {
|
||||||
|
method: "POST",
|
||||||
|
});
|
||||||
|
if (headResp.status !== 201) {
|
||||||
|
throw new Error(
|
||||||
|
`Failed to create an upload: ${headResp.status} ${headResp.statusText}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function computeRetryDelays(tusSettings: TusSettings): number[] | undefined {
|
function computeRetryDelays(tusSettings: TusSettings): number[] | undefined {
|
||||||
if (!tusSettings.retryCount || tusSettings.retryCount < 1) {
|
if (!tusSettings.retryCount || tusSettings.retryCount < 1) {
|
||||||
// Disable retries altogether
|
// Disable retries altogether
|
||||||
@ -128,8 +130,7 @@ function isTusSupported() {
|
|||||||
return tus.isSupported === true;
|
return tus.isSupported === true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function computeETA(speed?: number) {
|
function computeETA(state: ETAState, speed?: number) {
|
||||||
const state = useUploadStore();
|
|
||||||
if (state.speedMbyte === 0) {
|
if (state.speedMbyte === 0) {
|
||||||
return Infinity;
|
return Infinity;
|
||||||
}
|
}
|
||||||
@ -137,13 +138,22 @@ function computeETA(speed?: number) {
|
|||||||
(acc: number, size: number) => acc + size,
|
(acc: number, size: number) => acc + size,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
const uploadedSize = state.progress.reduce((a, b) => a + b, 0);
|
const uploadedSize = state.progress.reduce(
|
||||||
|
(acc: number, progress: Progress) => {
|
||||||
|
if (typeof progress === "number") {
|
||||||
|
return acc + progress;
|
||||||
|
}
|
||||||
|
return acc;
|
||||||
|
},
|
||||||
|
0
|
||||||
|
);
|
||||||
const remainingSize = totalSize - uploadedSize;
|
const remainingSize = totalSize - uploadedSize;
|
||||||
const speedBytesPerSecond = (speed ?? state.speedMbyte) * 1024 * 1024;
|
const speedBytesPerSecond = (speed ?? state.speedMbyte) * 1024 * 1024;
|
||||||
return remainingSize / speedBytesPerSecond;
|
return remainingSize / speedBytesPerSecond;
|
||||||
}
|
}
|
||||||
|
|
||||||
function computeGlobalSpeedAndETA() {
|
function computeGlobalSpeedAndETA() {
|
||||||
|
const uploadStore = useUploadStore();
|
||||||
let totalSpeed = 0;
|
let totalSpeed = 0;
|
||||||
let totalCount = 0;
|
let totalCount = 0;
|
||||||
|
|
||||||
@ -155,7 +165,7 @@ function computeGlobalSpeedAndETA() {
|
|||||||
if (totalCount === 0) return { speed: 0, eta: Infinity };
|
if (totalCount === 0) return { speed: 0, eta: Infinity };
|
||||||
|
|
||||||
const averageSpeed = totalSpeed / totalCount;
|
const averageSpeed = totalSpeed / totalCount;
|
||||||
const averageETA = computeETA(averageSpeed);
|
const averageETA = computeETA(uploadStore, averageSpeed);
|
||||||
|
|
||||||
return { speed: averageSpeed, eta: averageETA };
|
return { speed: averageSpeed, eta: averageETA };
|
||||||
}
|
}
|
||||||
@ -197,9 +207,6 @@ export function abortAllUploads() {
|
|||||||
}
|
}
|
||||||
if (CURRENT_UPLOAD_LIST[filePath].upload) {
|
if (CURRENT_UPLOAD_LIST[filePath].upload) {
|
||||||
CURRENT_UPLOAD_LIST[filePath].upload.abort(true);
|
CURRENT_UPLOAD_LIST[filePath].upload.abort(true);
|
||||||
CURRENT_UPLOAD_LIST[filePath].upload.options!.onError!(
|
|
||||||
new Error("Upload aborted")
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
delete CURRENT_UPLOAD_LIST[filePath];
|
delete CURRENT_UPLOAD_LIST[filePath];
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,7 @@ import { encodePath } from "@/utils/url";
|
|||||||
export class StatusError extends Error {
|
export class StatusError extends Error {
|
||||||
constructor(
|
constructor(
|
||||||
message: any,
|
message: any,
|
||||||
public status?: number,
|
public status?: number
|
||||||
public is_canceled?: boolean
|
|
||||||
) {
|
) {
|
||||||
super(message);
|
super(message);
|
||||||
this.name = "StatusError";
|
this.name = "StatusError";
|
||||||
@ -34,11 +33,7 @@ export async function fetchURL(
|
|||||||
},
|
},
|
||||||
...rest,
|
...rest,
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch {
|
||||||
// Check if the error is an intentional cancellation
|
|
||||||
if (e instanceof Error && e.name === "AbortError") {
|
|
||||||
throw new StatusError("000 No connection", 0, true);
|
|
||||||
}
|
|
||||||
throw new StatusError("000 No connection", 0);
|
throw new StatusError("000 No connection", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,13 +76,23 @@ export function removePrefix(url: string): string {
|
|||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createURL(endpoint: string, searchParams = {}): string {
|
export function createURL(endpoint: string, params = {}, auth = true): string {
|
||||||
|
const authStore = useAuthStore();
|
||||||
|
|
||||||
let prefix = baseURL;
|
let prefix = baseURL;
|
||||||
if (!prefix.endsWith("/")) {
|
if (!prefix.endsWith("/")) {
|
||||||
prefix = prefix + "/";
|
prefix = prefix + "/";
|
||||||
}
|
}
|
||||||
const url = new URL(prefix + encodePath(endpoint), origin);
|
const url = new URL(prefix + encodePath(endpoint), origin);
|
||||||
url.search = new URLSearchParams(searchParams).toString();
|
|
||||||
|
const searchParams: SearchParams = {
|
||||||
|
...(auth && { auth: authStore.jwt }),
|
||||||
|
...params,
|
||||||
|
};
|
||||||
|
|
||||||
|
for (const key in searchParams) {
|
||||||
|
url.searchParams.set(key, searchParams[key]);
|
||||||
|
}
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
@ -192,8 +192,7 @@ export default {
|
|||||||
style["position"] = "absolute";
|
style["position"] = "absolute";
|
||||||
style["top"] = "0";
|
style["top"] = "0";
|
||||||
style["height"] = "100%";
|
style["height"] = "100%";
|
||||||
((style["min-height"] = this.size_px + "px"),
|
(style["min-height"] = this.size_px + "px"), (style["z-index"] = "-1");
|
||||||
(style["z-index"] = "-1"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return style;
|
return style;
|
||||||
|
@ -2,10 +2,6 @@
|
|||||||
<div v-show="active" @click="closeHovers" class="overlay"></div>
|
<div v-show="active" @click="closeHovers" class="overlay"></div>
|
||||||
<nav :class="{ active }">
|
<nav :class="{ active }">
|
||||||
<template v-if="isLoggedIn">
|
<template v-if="isLoggedIn">
|
||||||
<button @click="toAccountSettings" class="action">
|
|
||||||
<i class="material-icons">person</i>
|
|
||||||
<span>{{ user.username }}</span>
|
|
||||||
</button>
|
|
||||||
<button
|
<button
|
||||||
class="action"
|
class="action"
|
||||||
@click="toRoot"
|
@click="toRoot"
|
||||||
@ -38,28 +34,29 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="user.perm.admin">
|
<div>
|
||||||
<button
|
<button
|
||||||
class="action"
|
class="action"
|
||||||
@click="toGlobalSettings"
|
@click="toSettings"
|
||||||
:aria-label="$t('sidebar.settings')"
|
:aria-label="$t('sidebar.settings')"
|
||||||
:title="$t('sidebar.settings')"
|
:title="$t('sidebar.settings')"
|
||||||
>
|
>
|
||||||
<i class="material-icons">settings_applications</i>
|
<i class="material-icons">settings_applications</i>
|
||||||
<span>{{ $t("sidebar.settings") }}</span>
|
<span>{{ $t("sidebar.settings") }}</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
v-if="canLogout"
|
||||||
|
@click="logout"
|
||||||
|
class="action"
|
||||||
|
id="logout"
|
||||||
|
:aria-label="$t('sidebar.logout')"
|
||||||
|
:title="$t('sidebar.logout')"
|
||||||
|
>
|
||||||
|
<i class="material-icons">exit_to_app</i>
|
||||||
|
<span>{{ $t("sidebar.logout") }}</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<button
|
|
||||||
v-if="canLogout"
|
|
||||||
@click="logout"
|
|
||||||
class="action"
|
|
||||||
id="logout"
|
|
||||||
:aria-label="$t('sidebar.logout')"
|
|
||||||
:title="$t('sidebar.logout')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">exit_to_app</i>
|
|
||||||
<span>{{ $t("sidebar.logout") }}</span>
|
|
||||||
</button>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<router-link
|
<router-link
|
||||||
@ -132,7 +129,6 @@ import {
|
|||||||
import { files as api } from "@/api";
|
import { files as api } from "@/api";
|
||||||
import ProgressBar from "@/components/ProgressBar.vue";
|
import ProgressBar from "@/components/ProgressBar.vue";
|
||||||
import prettyBytes from "pretty-bytes";
|
import prettyBytes from "pretty-bytes";
|
||||||
import { StatusError } from "@/api/utils.js";
|
|
||||||
|
|
||||||
const USAGE_DEFAULT = { used: "0 B", total: "0 B", usedPercentage: 0 };
|
const USAGE_DEFAULT = { used: "0 B", total: "0 B", usedPercentage: 0 };
|
||||||
|
|
||||||
@ -140,7 +136,7 @@ export default {
|
|||||||
name: "sidebar",
|
name: "sidebar",
|
||||||
setup() {
|
setup() {
|
||||||
const usage = reactive(USAGE_DEFAULT);
|
const usage = reactive(USAGE_DEFAULT);
|
||||||
return { usage, usageAbortController: new AbortController() };
|
return { usage };
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
ProgressBar,
|
ProgressBar,
|
||||||
@ -161,9 +157,6 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(useLayoutStore, ["closeHovers", "showHover"]),
|
...mapActions(useLayoutStore, ["closeHovers", "showHover"]),
|
||||||
abortOngoingFetchUsage() {
|
|
||||||
this.usageAbortController.abort();
|
|
||||||
},
|
|
||||||
async fetchUsage() {
|
async fetchUsage() {
|
||||||
const path = this.$route.path.endsWith("/")
|
const path = this.$route.path.endsWith("/")
|
||||||
? this.$route.path
|
? this.$route.path
|
||||||
@ -173,18 +166,13 @@ export default {
|
|||||||
return Object.assign(this.usage, usageStats);
|
return Object.assign(this.usage, usageStats);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
this.abortOngoingFetchUsage();
|
const usage = await api.usage(path);
|
||||||
this.usageAbortController = new AbortController();
|
|
||||||
const usage = await api.usage(path, this.usageAbortController.signal);
|
|
||||||
usageStats = {
|
usageStats = {
|
||||||
used: prettyBytes(usage.used, { binary: true }),
|
used: prettyBytes(usage.used, { binary: true }),
|
||||||
total: prettyBytes(usage.total, { binary: true }),
|
total: prettyBytes(usage.total, { binary: true }),
|
||||||
usedPercentage: Math.round((usage.used / usage.total) * 100),
|
usedPercentage: Math.round((usage.used / usage.total) * 100),
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error instanceof StatusError && error.is_canceled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.$showError(error);
|
this.$showError(error);
|
||||||
}
|
}
|
||||||
return Object.assign(this.usage, usageStats);
|
return Object.assign(this.usage, usageStats);
|
||||||
@ -193,12 +181,8 @@ export default {
|
|||||||
this.$router.push({ path: "/files" });
|
this.$router.push({ path: "/files" });
|
||||||
this.closeHovers();
|
this.closeHovers();
|
||||||
},
|
},
|
||||||
toAccountSettings() {
|
toSettings() {
|
||||||
this.$router.push({ path: "/settings/profile" });
|
this.$router.push({ path: "/settings" });
|
||||||
this.closeHovers();
|
|
||||||
},
|
|
||||||
toGlobalSettings() {
|
|
||||||
this.$router.push({ path: "/settings/global" });
|
|
||||||
this.closeHovers();
|
this.closeHovers();
|
||||||
},
|
},
|
||||||
help() {
|
help() {
|
||||||
@ -216,8 +200,5 @@ export default {
|
|||||||
immediate: true,
|
immediate: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
unmounted() {
|
|
||||||
this.abortOngoingFetchUsage();
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -172,8 +172,7 @@ const setCenter = () => {
|
|||||||
imgex.value.style.top = position.value.center.y + "px";
|
imgex.value.style.top = position.value.center.y + "px";
|
||||||
};
|
};
|
||||||
|
|
||||||
const mousedownStart = (event: MouseEvent) => {
|
const mousedownStart = (event: Event) => {
|
||||||
if (event.button !== 0) return;
|
|
||||||
lastX.value = null;
|
lastX.value = null;
|
||||||
lastY.value = null;
|
lastY.value = null;
|
||||||
inDrag.value = true;
|
inDrag.value = true;
|
||||||
@ -185,10 +184,8 @@ const mouseMove = (event: MouseEvent) => {
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
};
|
};
|
||||||
const mouseUp = (event: Event) => {
|
const mouseUp = (event: Event) => {
|
||||||
if (inDrag.value) {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
inDrag.value = false;
|
inDrag.value = false;
|
||||||
|
event.preventDefault();
|
||||||
};
|
};
|
||||||
const touchStart = (event: TouchEvent) => {
|
const touchStart = (event: TouchEvent) => {
|
||||||
lastX.value = null;
|
lastX.value = null;
|
||||||
|
@ -8,13 +8,6 @@
|
|||||||
@dragover="dragOver"
|
@dragover="dragOver"
|
||||||
@drop="drop"
|
@drop="drop"
|
||||||
@click="itemClick"
|
@click="itemClick"
|
||||||
@mousedown="handleMouseDown"
|
|
||||||
@mouseup="handleMouseUp"
|
|
||||||
@mouseleave="handleMouseLeave"
|
|
||||||
@touchstart="handleTouchStart"
|
|
||||||
@touchend="handleTouchEnd"
|
|
||||||
@touchcancel="handleTouchCancel"
|
|
||||||
@touchmove="handleTouchMove"
|
|
||||||
:data-dir="isDir"
|
:data-dir="isDir"
|
||||||
:data-type="type"
|
:data-type="type"
|
||||||
:aria-label="name"
|
:aria-label="name"
|
||||||
@ -57,12 +50,6 @@ import { useRouter } from "vue-router";
|
|||||||
|
|
||||||
const touches = ref<number>(0);
|
const touches = ref<number>(0);
|
||||||
|
|
||||||
const longPressTimer = ref<number | null>(null);
|
|
||||||
const longPressTriggered = ref<boolean>(false);
|
|
||||||
const longPressDelay = ref<number>(500);
|
|
||||||
const startPosition = ref<{ x: number; y: number } | null>(null);
|
|
||||||
const moveThreshold = ref<number>(10);
|
|
||||||
|
|
||||||
const $showError = inject<IToastError>("$showError")!;
|
const $showError = inject<IToastError>("$showError")!;
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
@ -222,12 +209,6 @@ const drop = async (event: Event) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const itemClick = (event: Event | KeyboardEvent) => {
|
const itemClick = (event: Event | KeyboardEvent) => {
|
||||||
// If long press was triggered, prevent normal click behavior
|
|
||||||
if (longPressTriggered.value) {
|
|
||||||
longPressTriggered.value = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
singleClick.value &&
|
singleClick.value &&
|
||||||
!(event as KeyboardEvent).ctrlKey &&
|
!(event as KeyboardEvent).ctrlKey &&
|
||||||
@ -300,76 +281,4 @@ const getExtension = (fileName: string): string => {
|
|||||||
}
|
}
|
||||||
return fileName.substring(lastDotIndex);
|
return fileName.substring(lastDotIndex);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Long-press helper functions
|
|
||||||
const startLongPress = (clientX: number, clientY: number) => {
|
|
||||||
startPosition.value = { x: clientX, y: clientY };
|
|
||||||
longPressTimer.value = window.setTimeout(() => {
|
|
||||||
handleLongPress();
|
|
||||||
}, longPressDelay.value);
|
|
||||||
};
|
|
||||||
|
|
||||||
const cancelLongPress = () => {
|
|
||||||
if (longPressTimer.value !== null) {
|
|
||||||
window.clearTimeout(longPressTimer.value);
|
|
||||||
longPressTimer.value = null;
|
|
||||||
}
|
|
||||||
startPosition.value = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleLongPress = () => {
|
|
||||||
if (singleClick.value) {
|
|
||||||
longPressTriggered.value = true;
|
|
||||||
click(new Event("longpress"));
|
|
||||||
}
|
|
||||||
cancelLongPress();
|
|
||||||
};
|
|
||||||
|
|
||||||
const checkMovement = (clientX: number, clientY: number): boolean => {
|
|
||||||
if (!startPosition.value) return false;
|
|
||||||
|
|
||||||
const deltaX = Math.abs(clientX - startPosition.value.x);
|
|
||||||
const deltaY = Math.abs(clientY - startPosition.value.y);
|
|
||||||
|
|
||||||
return deltaX > moveThreshold.value || deltaY > moveThreshold.value;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Event handlers
|
|
||||||
const handleMouseDown = (event: MouseEvent) => {
|
|
||||||
if (event.button === 0) {
|
|
||||||
startLongPress(event.clientX, event.clientY);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleMouseUp = () => {
|
|
||||||
cancelLongPress();
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleMouseLeave = () => {
|
|
||||||
cancelLongPress();
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleTouchStart = (event: TouchEvent) => {
|
|
||||||
if (event.touches.length === 1) {
|
|
||||||
const touch = event.touches[0];
|
|
||||||
startLongPress(touch.clientX, touch.clientY);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleTouchEnd = () => {
|
|
||||||
cancelLongPress();
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleTouchCancel = () => {
|
|
||||||
cancelLongPress();
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleTouchMove = (event: TouchEvent) => {
|
|
||||||
if (event.touches.length === 1 && startPosition.value) {
|
|
||||||
const touch = event.touches[0];
|
|
||||||
if (checkMovement(touch.clientX, touch.clientY)) {
|
|
||||||
cancelLongPress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -36,7 +36,5 @@ const formats = {
|
|||||||
tarxz: "tar.xz",
|
tarxz: "tar.xz",
|
||||||
tarlz4: "tar.lz4",
|
tarlz4: "tar.lz4",
|
||||||
tarsz: "tar.sz",
|
tarsz: "tar.sz",
|
||||||
tarbr: "tar.br",
|
|
||||||
tarzst: "tar.zst",
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -31,16 +31,9 @@ import { useFileStore } from "@/stores/file";
|
|||||||
|
|
||||||
import url from "@/utils/url";
|
import url from "@/utils/url";
|
||||||
import { files } from "@/api";
|
import { files } from "@/api";
|
||||||
import { StatusError } from "@/api/utils.js";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "file-list",
|
name: "file-list",
|
||||||
props: {
|
|
||||||
exclude: {
|
|
||||||
type: Array,
|
|
||||||
default: () => [],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
items: [],
|
items: [],
|
||||||
@ -50,7 +43,6 @@ export default {
|
|||||||
},
|
},
|
||||||
selected: null,
|
selected: null,
|
||||||
current: window.location.pathname,
|
current: window.location.pathname,
|
||||||
nextAbortController: new AbortController(),
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
inject: ["$showError"],
|
inject: ["$showError"],
|
||||||
@ -64,13 +56,7 @@ export default {
|
|||||||
mounted() {
|
mounted() {
|
||||||
this.fillOptions(this.req);
|
this.fillOptions(this.req);
|
||||||
},
|
},
|
||||||
unmounted() {
|
|
||||||
this.abortOngoingNext();
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
abortOngoingNext() {
|
|
||||||
this.nextAbortController.abort();
|
|
||||||
},
|
|
||||||
fillOptions(req) {
|
fillOptions(req) {
|
||||||
// Sets the current path and resets
|
// Sets the current path and resets
|
||||||
// the current items.
|
// the current items.
|
||||||
@ -96,7 +82,6 @@ export default {
|
|||||||
// move options.
|
// move options.
|
||||||
for (const item of req.items) {
|
for (const item of req.items) {
|
||||||
if (!item.isDir) continue;
|
if (!item.isDir) continue;
|
||||||
if (this.exclude?.includes(item.url)) continue;
|
|
||||||
|
|
||||||
this.items.push({
|
this.items.push({
|
||||||
name: item.name,
|
name: item.name,
|
||||||
@ -109,17 +94,8 @@ export default {
|
|||||||
// just clicked in and fill the options with its
|
// just clicked in and fill the options with its
|
||||||
// content.
|
// content.
|
||||||
const uri = event.currentTarget.dataset.url;
|
const uri = event.currentTarget.dataset.url;
|
||||||
this.abortOngoingNext();
|
|
||||||
this.nextAbortController = new AbortController();
|
files.fetch(uri).then(this.fillOptions).catch(this.$showError);
|
||||||
files
|
|
||||||
.fetch(uri, this.nextAbortController.signal)
|
|
||||||
.then(this.fillOptions)
|
|
||||||
.catch((e) => {
|
|
||||||
if (e instanceof StatusError && e.is_canceled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.$showError(e);
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
touchstart(event) {
|
touchstart(event) {
|
||||||
const url = event.currentTarget.dataset.url;
|
const url = event.currentTarget.dataset.url;
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<li><strong>DEL</strong> - {{ $t("help.del") }}</li>
|
<li><strong>DEL</strong> - {{ $t("help.del") }}</li>
|
||||||
<li><strong>ESC</strong> - {{ $t("help.esc") }}</li>
|
<li><strong>ESC</strong> - {{ $t("help.esc") }}</li>
|
||||||
<li><strong>CTRL + S</strong> - {{ $t("help.ctrl.s") }}</li>
|
<li><strong>CTRL + S</strong> - {{ $t("help.ctrl.s") }}</li>
|
||||||
<li><strong>CTRL + SHIFT + F</strong> - {{ $t("help.ctrl.f") }}</li>
|
<li><strong>CTRL + F</strong> - {{ $t("help.ctrl.f") }}</li>
|
||||||
<li><strong>CTRL + Click</strong> - {{ $t("help.ctrl.click") }}</li>
|
<li><strong>CTRL + Click</strong> - {{ $t("help.ctrl.click") }}</li>
|
||||||
<li><strong>Click</strong> - {{ $t("help.click") }}</li>
|
<li><strong>Click</strong> - {{ $t("help.click") }}</li>
|
||||||
<li><strong>Double click</strong> - {{ $t("help.doubleClick") }}</li>
|
<li><strong>Double click</strong> - {{ $t("help.doubleClick") }}</li>
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
<file-list
|
<file-list
|
||||||
ref="fileList"
|
ref="fileList"
|
||||||
@update:selected="(val) => (dest = val)"
|
@update:selected="(val) => (dest = val)"
|
||||||
:exclude="excludedFolders"
|
|
||||||
tabindex="1"
|
tabindex="1"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -77,11 +76,6 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapState(useFileStore, ["req", "selected"]),
|
...mapState(useFileStore, ["req", "selected"]),
|
||||||
...mapState(useAuthStore, ["user"]),
|
...mapState(useAuthStore, ["user"]),
|
||||||
excludedFolders() {
|
|
||||||
return this.selected
|
|
||||||
.filter((idx) => this.req.items[idx].isDir)
|
|
||||||
.map((idx) => this.req.items[idx].url);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(useLayoutStore, ["showHover", "closeHovers"]),
|
...mapActions(useLayoutStore, ["showHover", "closeHovers"]),
|
||||||
|
@ -32,6 +32,16 @@
|
|||||||
<i class="material-icons">content_paste</i>
|
<i class="material-icons">content_paste</i>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="small" v-if="hasDownloadLink()">
|
||||||
|
<button
|
||||||
|
class="action copy-clipboard"
|
||||||
|
:aria-label="$t('buttons.copyDownloadLinkToClipboard')"
|
||||||
|
:title="$t('buttons.copyDownloadLinkToClipboard')"
|
||||||
|
@click="copyToClipboard(buildDownloadLink(link))"
|
||||||
|
>
|
||||||
|
<i class="material-icons">content_paste_go</i>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
<td class="small">
|
<td class="small">
|
||||||
<button
|
<button
|
||||||
class="action"
|
class="action"
|
||||||
@ -132,7 +142,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import { useFileStore } from "@/stores/file";
|
import { useFileStore } from "@/stores/file";
|
||||||
import { share as api } from "@/api";
|
import { share as api, pub as pub_api } from "@/api";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useLayoutStore } from "@/stores/layout";
|
import { useLayoutStore } from "@/stores/layout";
|
||||||
import { copy } from "@/utils/clipboard";
|
import { copy } from "@/utils/clipboard";
|
||||||
@ -247,6 +257,14 @@ export default {
|
|||||||
buildLink(share) {
|
buildLink(share) {
|
||||||
return api.getShareURL(share);
|
return api.getShareURL(share);
|
||||||
},
|
},
|
||||||
|
hasDownloadLink() {
|
||||||
|
return (
|
||||||
|
this.selected.length === 1 && !this.req.items[this.selected[0]].isDir
|
||||||
|
);
|
||||||
|
},
|
||||||
|
buildDownloadLink(share) {
|
||||||
|
return pub_api.getDownloadURL(share);
|
||||||
|
},
|
||||||
sort() {
|
sort() {
|
||||||
this.links = this.links.sort((a, b) => {
|
this.links = this.links.sort((a, b) => {
|
||||||
if (a.expire === 0) return -1;
|
if (a.expire === 0) return -1;
|
||||||
|
@ -19,7 +19,6 @@ export default {
|
|||||||
hu: "Magyar",
|
hu: "Magyar",
|
||||||
ar: "ۧÙŰč۱ۚÙŰ©",
|
ar: "ۧÙŰč۱ۚÙŰ©",
|
||||||
ca: "CatalĂ ",
|
ca: "CatalĂ ",
|
||||||
cs: "ÄeĆĄtina",
|
|
||||||
de: "Deutsch",
|
de: "Deutsch",
|
||||||
el: "ÎλληΜÎčÎșÎŹ",
|
el: "ÎλληΜÎčÎșÎŹ",
|
||||||
en: "English",
|
en: "English",
|
||||||
|
@ -195,6 +195,10 @@ html[dir="rtl"] #listing {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#listing.list .item p.name:not(#listing.list .item.header .name) {
|
||||||
|
margin-right: -3em;
|
||||||
|
}
|
||||||
|
|
||||||
#listing.list .item .name {
|
#listing.list .item .name {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
@ -223,18 +227,18 @@ html[dir="rtl"] #listing {
|
|||||||
border-bottom: 1px solid var(--borderPrimary);
|
border-bottom: 1px solid var(--borderPrimary);
|
||||||
}
|
}
|
||||||
|
|
||||||
#listing.list .item.header > div {
|
#listing.list .item.header > div:first-child {
|
||||||
width: 100%;
|
width: 0;
|
||||||
}
|
|
||||||
|
|
||||||
#listing.list .item.header .name {
|
|
||||||
margin-right: 3em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#listing.list .header a {
|
#listing.list .header a {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#listing.list .item.header > div:first-child {
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
#listing.list .name {
|
#listing.list .name {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
"ok": "Ù
ÙۧÙÙ",
|
"ok": "Ù
ÙۧÙÙ",
|
||||||
"permalink": "ۧÙŰŰ”ÙÙ ŰčÙÙ Ű±Ű§ŰšŰ· ۯۧۊÙ
",
|
"permalink": "ۧÙŰŰ”ÙÙ ŰčÙÙ Ű±Ű§ŰšŰ· ۯۧۊÙ
",
|
||||||
"previous": "ۧÙ۳ۧۚÙ",
|
"previous": "ۧÙ۳ۧۚÙ",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Ùێ۱",
|
"publish": "Ùێ۱",
|
||||||
"rename": "Ű„Űčۧۯ۩ ŰȘŰłÙ
ÙŰ©",
|
"rename": "Ű„Űčۧۯ۩ ŰȘŰłÙ
ÙŰ©",
|
||||||
"replace": "ۧ۳ŰȘۚۯۧÙ",
|
"replace": "ۧ۳ŰȘۚۯۧÙ",
|
||||||
@ -170,7 +169,6 @@
|
|||||||
"commandRunnerHelp": "ÙÙۧ ۚۄÙ
ÙۧÙÙ ŰȘŰčÙÙÙ Ű§ï»·ÙۧÙ
۱ ۧÙŰȘÙ ŰłÙŰȘÙ
ŰȘÙÙÙ۰Ùۧ ÙÙ Ű§ï»·Űۯۧ۫ ۧÙÙ
ŰłÙ
ۧ۩. ÙŰŹŰš ÙŰȘۧۚ۩ ŰŁÙ
۱ ÙۧŰŰŻ ÙÙ ÙÙ ŰłŰ·Ű±. ŰłŰȘÙÙÙ Ű§ÙÙ
ŰȘŰșÙ۱ۧŰȘ ۧÙŰšÙŰŠÙŰ© (env) {0} Ù {1} Ù
ŰȘۧŰŰ©Ű ŰÙŰ« {0} ÙŰłŰšÙ ÙÙ {1}. ÙÙ
ŰČÙŰŻ Ù
Ù Ű§ÙÙ
ŰčÙÙÙ
ۧŰȘ ŰÙÙ ÙŰ°Ù Ű§ÙÙ
ÙŰČŰ© Ù Ű§ÙÙ
ŰȘŰșÙ۱ۧŰȘ ۧÙŰšÙŰŠÙŰ© ۧÙÙ
ŰȘۧŰŰ©Ű ÙŰ±ŰŹÙ Ù۱ۧۥ۩ {2}.",
|
"commandRunnerHelp": "ÙÙۧ ۚۄÙ
ÙۧÙÙ ŰȘŰčÙÙÙ Ű§ï»·ÙۧÙ
۱ ۧÙŰȘÙ ŰłÙŰȘÙ
ŰȘÙÙÙ۰Ùۧ ÙÙ Ű§ï»·Űۯۧ۫ ۧÙÙ
ŰłÙ
ۧ۩. ÙŰŹŰš ÙŰȘۧۚ۩ ŰŁÙ
۱ ÙۧŰŰŻ ÙÙ ÙÙ ŰłŰ·Ű±. ŰłŰȘÙÙÙ Ű§ÙÙ
ŰȘŰșÙ۱ۧŰȘ ۧÙŰšÙŰŠÙŰ© (env) {0} Ù {1} Ù
ŰȘۧŰŰ©Ű ŰÙŰ« {0} ÙŰłŰšÙ ÙÙ {1}. ÙÙ
ŰČÙŰŻ Ù
Ù Ű§ÙÙ
ŰčÙÙÙ
ۧŰȘ ŰÙÙ ÙŰ°Ù Ű§ÙÙ
ÙŰČŰ© Ù Ű§ÙÙ
ŰȘŰșÙ۱ۧŰȘ ۧÙŰšÙŰŠÙŰ© ۧÙÙ
ŰȘۧŰŰ©Ű ÙŰ±ŰŹÙ Ù۱ۧۥ۩ {2}.",
|
||||||
"commandsUpdated": "ŰȘÙ
ŰȘŰŰŻÙŰ« Ű§ï»·ÙۧÙ
۱",
|
"commandsUpdated": "ŰȘÙ
ŰȘŰŰŻÙŰ« Ű§ï»·ÙۧÙ
۱",
|
||||||
"createUserDir": "Ű„Ùێۧۥ Ù
ŰŹÙŰŻ ۧÙÙ
ŰłŰȘ۟ۯÙ
(home) ŰȘÙÙۧۊÙŰ§Ù ŰčÙŰŻ Ű„Ùێۧۥ Ù
ŰłŰȘ۟ۯÙ
ŰŹŰŻÙŰŻ",
|
"createUserDir": "Ű„Ùێۧۥ Ù
ŰŹÙŰŻ ۧÙÙ
ŰłŰȘ۟ۯÙ
(home) ŰȘÙÙۧۊÙŰ§Ù ŰčÙŰŻ Ű„Ùێۧۥ Ù
ŰłŰȘ۟ۯÙ
ŰŹŰŻÙŰŻ",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "ۧÙŰȘŰÙ
ÙÙۧŰȘ ۧÙÙ
ŰȘÙŰ·ŰčŰ©",
|
"tusUploads": "ۧÙŰȘŰÙ
ÙÙۧŰȘ ۧÙÙ
ŰȘÙŰ·ŰčŰ©",
|
||||||
"tusUploadsHelp": "ÙŰŻŰčÙ
Ù
ŰȘŰ”ÙŰ Ű§ÙÙ
ÙÙۧŰȘ ŰȘŰÙ
ÙÙ Ű§ÙÙ
ÙÙۧŰȘ ۧÙÙ
ŰȘÙŰ·ŰčŰ©Ű Ù
Ù
ۧ ÙŰłÙ
Ű ŰšŰȘŰÙ
ÙÙۧŰȘ ۧÙÙ
ÙÙۧŰȘ ۚێÙÙ ÙŰčŰ§Ù Ù Ù
ÙŰ«ÙÙ Ù ÙۧۚÙŰ© ÙÙÙ
ŰȘۧۚŰșŰ© Ù Ù
ŰȘÙŰ·ŰčŰ© ŰŰȘÙ ŰčÙÙ Ű§ÙŰŽŰšÙۧŰȘ ŰșÙ۱ ۧÙÙ
ÙŰ«ÙÙŰ©.",
|
"tusUploadsHelp": "ÙŰŻŰčÙ
Ù
ŰȘŰ”ÙŰ Ű§ÙÙ
ÙÙۧŰȘ ŰȘŰÙ
ÙÙ Ű§ÙÙ
ÙÙۧŰȘ ۧÙÙ
ŰȘÙŰ·ŰčŰ©Ű Ù
Ù
ۧ ÙŰłÙ
Ű ŰšŰȘŰÙ
ÙÙۧŰȘ ۧÙÙ
ÙÙۧŰȘ ۚێÙÙ ÙŰčŰ§Ù Ù Ù
ÙŰ«ÙÙ Ù ÙۧۚÙŰ© ÙÙÙ
ŰȘۧۚŰșŰ© Ù Ù
ŰȘÙŰ·ŰčŰ© ŰŰȘÙ ŰčÙÙ Ű§ÙŰŽŰšÙۧŰȘ ŰșÙ۱ ۧÙÙ
ÙŰ«ÙÙŰ©.",
|
||||||
"tusUploadsChunkSize": "ÙŰŽÙ۱ Ű„ÙÙ Ű§ÙŰŰŻ Ű§ï»·ÙŰ”Ù ÙŰŰŹÙ
ۧÙŰ·ÙŰš (ŰłÙŰȘÙ
ۧ۳ŰȘ۟ۯۧÙ
ۧÙŰȘŰÙ
ÙÙ Ű§ÙÙ
ۚۧێ۱ ÙÙŰȘŰÙ
ÙÙۧŰȘ Ű”ŰșÙ۱۩ ۧÙŰźŰÙ
). ÙÙ
ÙÙÙ Ű„ŰŻŰźŰ§Ù ŰčŰŻŰŻ Ű”ŰÙŰ ŰčŰ§ŰŻÙ ÙŰŻÙ ŰčÙÙ Ű§ÙŰŰŹÙ
ŰšÙŰŰŻŰ© ۧÙۚۧÙŰȘ ŰŁÙ ÙÙ
Űž Ù
Ű«Ù10MB, 1GB, Ű„ÙŰź.",
|
"tusUploadsChunkSize": "ÙŰŽÙ۱ Ű„ÙÙ Ű§ÙŰŰŻ Ű§ï»·ÙŰ”Ù ÙŰŰŹÙ
ۧÙŰ·ÙŰš (ŰłÙŰȘÙ
ۧ۳ŰȘ۟ۯۧÙ
ۧÙŰȘŰÙ
ÙÙ Ű§ÙÙ
ۚۧێ۱ ÙÙŰȘŰÙ
ÙÙۧŰȘ Ű”ŰșÙ۱۩ ۧÙŰźŰÙ
). ÙÙ
ÙÙÙ Ű„ŰŻŰźŰ§Ù ŰčŰŻŰŻ Ű”ŰÙŰ ŰčŰ§ŰŻÙ ÙŰŻÙ ŰčÙÙ Ű§ÙŰŰŹÙ
ŰšÙŰŰŻŰ© ۧÙۚۧÙŰȘ ŰŁÙ ÙÙ
Űž Ù
Ű«Ù10MB, 1GB, Ű„ÙŰź.",
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
"ok": "D'acord",
|
"ok": "D'acord",
|
||||||
"permalink": "Enllaç permanent",
|
"permalink": "Enllaç permanent",
|
||||||
"previous": "Anterior",
|
"previous": "Anterior",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publicar",
|
"publish": "Publicar",
|
||||||
"rename": "Reanomenar",
|
"rename": "Reanomenar",
|
||||||
"replace": "Substituir",
|
"replace": "Substituir",
|
||||||
@ -170,7 +169,6 @@
|
|||||||
"commandRunnerHelp": "AquĂ pots establir les comandes que s'executen en els esdeveniments anomenats. Has d'escriure'n una per lĂnia. Les variables d'entorn {0} i {1} estaran disponibles, sent {0} relativa a {1}. Per a mĂ©s informaciĂł sobre aquesta caracterĂstica i les variables d'entorn disponibles, si us plau llegeix el {2}.",
|
"commandRunnerHelp": "AquĂ pots establir les comandes que s'executen en els esdeveniments anomenats. Has d'escriure'n una per lĂnia. Les variables d'entorn {0} i {1} estaran disponibles, sent {0} relativa a {1}. Per a mĂ©s informaciĂł sobre aquesta caracterĂstica i les variables d'entorn disponibles, si us plau llegeix el {2}.",
|
||||||
"commandsUpdated": "Comandes actualitzades!",
|
"commandsUpdated": "Comandes actualitzades!",
|
||||||
"createUserDir": "Crea automĂ ticament una carpeta d'inici quan s'afegeix un usuari",
|
"createUserDir": "Crea automĂ ticament una carpeta d'inici quan s'afegeix un usuari",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "CĂ rregues a trossos",
|
"tusUploads": "CĂ rregues a trossos",
|
||||||
"tusUploadsHelp": "El File Browser suporta cĂ rregues de fitxers a trossos, permetent la creaciĂł de cĂ rregues de fitxers eficients, fiables, reanudables i a trossos fins i tot en xarxes poc fiables.",
|
"tusUploadsHelp": "El File Browser suporta cĂ rregues de fitxers a trossos, permetent la creaciĂł de cĂ rregues de fitxers eficients, fiables, reanudables i a trossos fins i tot en xarxes poc fiables.",
|
||||||
"tusUploadsChunkSize": "Indica la mida mà xima d'una sol·licitud (s'utilitzaran cà rregues directes per a cà rregues més petites). Podeu introduir un enter pla que indiqui la mida en bytes o una cadena com 10MB, 1GB, etc.",
|
"tusUploadsChunkSize": "Indica la mida mà xima d'una sol·licitud (s'utilitzaran cà rregues directes per a cà rregues més petites). Podeu introduir un enter pla que indiqui la mida en bytes o una cadena com 10MB, 1GB, etc.",
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "ZĂskat trvalĂœ odkaz",
|
"permalink": "ZĂskat trvalĂœ odkaz",
|
||||||
"previous": "PĆedchozĂ",
|
"previous": "PĆedchozĂ",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publikovat",
|
"publish": "Publikovat",
|
||||||
"rename": "PĆejmenovat",
|
"rename": "PĆejmenovat",
|
||||||
"replace": "Nahradit",
|
"replace": "Nahradit",
|
||||||
@ -170,7 +169,6 @@
|
|||||||
"commandRunnerHelp": "Zde mĆŻĆŸete nastavit pĆĂkazy, kterĂ© se spustĂ pĆi urÄenĂœch udĂĄlostech. KaĆŸdĂœ pĆĂkaz musĂ bĂœt na samostatnĂ©m ĆĂĄdku. Budou k dispozici promÄnnĂ© prostĆedĂ {0} a {1}, pĆiÄemĆŸ {0} se vztahuje na {1}. Pro vĂce informacĂ o tĂ©to funkci a dostupnĂœch promÄnnĂœch prostĆedĂ si pĆeÄtÄte {2}.",
|
"commandRunnerHelp": "Zde mĆŻĆŸete nastavit pĆĂkazy, kterĂ© se spustĂ pĆi urÄenĂœch udĂĄlostech. KaĆŸdĂœ pĆĂkaz musĂ bĂœt na samostatnĂ©m ĆĂĄdku. Budou k dispozici promÄnnĂ© prostĆedĂ {0} a {1}, pĆiÄemĆŸ {0} se vztahuje na {1}. Pro vĂce informacĂ o tĂ©to funkci a dostupnĂœch promÄnnĂœch prostĆedĂ si pĆeÄtÄte {2}.",
|
||||||
"commandsUpdated": "PĆĂkazy aktualizovĂĄny!",
|
"commandsUpdated": "PĆĂkazy aktualizovĂĄny!",
|
||||||
"createUserDir": "Automaticky vytvoĆit domovskou sloĆŸku uĆŸivatele pĆi pĆidĂĄnĂ novĂ©ho uĆŸivatele",
|
"createUserDir": "Automaticky vytvoĆit domovskou sloĆŸku uĆŸivatele pĆi pĆidĂĄnĂ novĂ©ho uĆŸivatele",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "NahrĂĄvĂĄnĂ po ÄĂĄstech",
|
"tusUploads": "NahrĂĄvĂĄnĂ po ÄĂĄstech",
|
||||||
"tusUploadsHelp": "File Browser podporuje nahrĂĄvĂĄnĂ souborĆŻ po ÄĂĄstech, coĆŸ umoĆŸĆuje vytvĂĄĆenĂ efektivnĂch, spolehlivĂœch, obnovitelnĂœch a rozdÄlenĂœch nahrĂĄvek souborĆŻ i na nespolehlivĂœch sĂtĂch.",
|
"tusUploadsHelp": "File Browser podporuje nahrĂĄvĂĄnĂ souborĆŻ po ÄĂĄstech, coĆŸ umoĆŸĆuje vytvĂĄĆenĂ efektivnĂch, spolehlivĂœch, obnovitelnĂœch a rozdÄlenĂœch nahrĂĄvek souborĆŻ i na nespolehlivĂœch sĂtĂch.",
|
||||||
"tusUploadsChunkSize": "MaximĂĄlnĂ velikost poĆŸadavku (pĆĂmĂ© nahrĂĄvĂĄnĂ bude pouĆŸito pro menĆĄĂ nahrĂĄvky). MĆŻĆŸete zadat prostĂ© ÄĂslo oznaÄujĂcĂ velikost v bajtech nebo ĆetÄzec jako 10MB, 1GB atd.",
|
"tusUploadsChunkSize": "MaximĂĄlnĂ velikost poĆŸadavku (pĆĂmĂ© nahrĂĄvĂĄnĂ bude pouĆŸito pro menĆĄĂ nahrĂĄvky). MĆŻĆŸete zadat prostĂ© ÄĂslo oznaÄujĂcĂ velikost v bajtech nebo ĆetÄzec jako 10MB, 1GB atd.",
|
@ -3,17 +3,14 @@
|
|||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"clear": "SchlieĂen",
|
"clear": "SchlieĂen",
|
||||||
"close": "SchlieĂen",
|
"close": "SchlieĂen",
|
||||||
"continue": "Fortfahren",
|
|
||||||
"copy": "Kopieren",
|
"copy": "Kopieren",
|
||||||
"copyFile": "Kopiere Datei",
|
"copyFile": "Kopiere Datei",
|
||||||
"copyToClipboard": "In Zwischenablage kopieren",
|
"copyToClipboard": "In Zwischenablage kopieren",
|
||||||
"copyDownloadLinkToClipboard": "Download-Link in die Zwischenablage kopieren",
|
|
||||||
"create": "Neu",
|
"create": "Neu",
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
"download": "Herunterladen",
|
"download": "Herunterladen",
|
||||||
"file": "Datei",
|
"file": "Datei",
|
||||||
"folder": "Ordner",
|
"folder": "Ordner",
|
||||||
"fullScreen": "Vollbildmodus umschalten",
|
|
||||||
"hideDotfiles": "Versteckte Dateien ausblenden",
|
"hideDotfiles": "Versteckte Dateien ausblenden",
|
||||||
"info": "Info",
|
"info": "Info",
|
||||||
"more": "mehr",
|
"more": "mehr",
|
||||||
@ -24,7 +21,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "permanenten Verweis anzeigen",
|
"permalink": "permanenten Verweis anzeigen",
|
||||||
"previous": "vorherige",
|
"previous": "vorherige",
|
||||||
"preview": "Vorschau",
|
|
||||||
"publish": "Veröffentlichen",
|
"publish": "Veröffentlichen",
|
||||||
"rename": "umbenennen",
|
"rename": "umbenennen",
|
||||||
"replace": "Ersetzen",
|
"replace": "Ersetzen",
|
||||||
@ -41,17 +37,13 @@
|
|||||||
"toggleSidebar": "Seitenleiste anzeigen",
|
"toggleSidebar": "Seitenleiste anzeigen",
|
||||||
"update": "Update",
|
"update": "Update",
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"openFile": "Datei öffnen",
|
"openFile": "Datei öffnen"
|
||||||
"discardChanges": "Verwerfen"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Download Datei",
|
"downloadFile": "Download Datei",
|
||||||
"downloadFolder": "Download Ordner",
|
"downloadFolder": "Download Ordner",
|
||||||
"downloadSelected": "Auswahl herunterladen"
|
"downloadSelected": "Auswahl herunterladen"
|
||||||
},
|
},
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Sind Sie sicher, dass Sie den Vorgang abbrechen möchten?"
|
|
||||||
},
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "Sie haben keine Berechtigung dies abzurufen.",
|
"forbidden": "Sie haben keine Berechtigung dies abzurufen.",
|
||||||
"internal": "Etwas ist schiefgelaufen.",
|
"internal": "Etwas ist schiefgelaufen.",
|
||||||
@ -110,7 +102,6 @@
|
|||||||
"deleteMessageMultiple": "Sind Sie sicher, dass Sie {count} Datei(en) löschen möchten?",
|
"deleteMessageMultiple": "Sind Sie sicher, dass Sie {count} Datei(en) löschen möchten?",
|
||||||
"deleteMessageSingle": "Sind Sie sicher, dass Sie diesen Ordner/diese Datei löschen möchten?",
|
"deleteMessageSingle": "Sind Sie sicher, dass Sie diesen Ordner/diese Datei löschen möchten?",
|
||||||
"deleteMessageShare": "Sind Sie sicher, dass Sie diese Freigabe löschen möchten ({path})?",
|
"deleteMessageShare": "Sind Sie sicher, dass Sie diese Freigabe löschen möchten ({path})?",
|
||||||
"deleteUser": "Sind Sie sicher, dass Sie diesen Benutzer löschen möchten?",
|
|
||||||
"deleteTitle": "Lösche Dateien",
|
"deleteTitle": "Lösche Dateien",
|
||||||
"displayName": "Anzeigename:",
|
"displayName": "Anzeigename:",
|
||||||
"download": "Lade Dateien",
|
"download": "Lade Dateien",
|
||||||
@ -139,9 +130,7 @@
|
|||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"uploadFiles": "Upload von {files} Dateien...",
|
"uploadFiles": "Upload von {files} Dateien...",
|
||||||
"uploadMessage": "WĂ€hlen Sie eine Upload-Methode",
|
"uploadMessage": "WĂ€hlen Sie eine Upload-Methode",
|
||||||
"optionalPassword": "Optionales Passwort",
|
"optionalPassword": "Optionales Passwort"
|
||||||
"resolution": "Auflösung",
|
|
||||||
"discardEditorChanges": "Möchten Sie die vorgenommenen Ănderungen wirklich verwerfen?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Bilder",
|
"images": "Bilder",
|
||||||
@ -170,14 +159,10 @@
|
|||||||
"commandRunnerHelp": "Hier könne Sie Befehle eintragen, welche bei den benannten Aktionen ausgefĂŒhrt werden. Sie mĂŒssen pro Zeile jeweils einen Befehl eingeben. Die Umgebungsvariable {0} und {1} sind verfĂŒgbar, wobei {0} relative zu {1} ist. FĂŒr mehr Informationen ĂŒber diese Funktion und die verfĂŒgbaren Umgebungsvariablen lesen Sie bitte die {2}.",
|
"commandRunnerHelp": "Hier könne Sie Befehle eintragen, welche bei den benannten Aktionen ausgefĂŒhrt werden. Sie mĂŒssen pro Zeile jeweils einen Befehl eingeben. Die Umgebungsvariable {0} und {1} sind verfĂŒgbar, wobei {0} relative zu {1} ist. FĂŒr mehr Informationen ĂŒber diese Funktion und die verfĂŒgbaren Umgebungsvariablen lesen Sie bitte die {2}.",
|
||||||
"commandsUpdated": "Befehle aktualisiert!",
|
"commandsUpdated": "Befehle aktualisiert!",
|
||||||
"createUserDir": "Automatisches Erstellen des Home-Verzeichnisses beim Anlegen neuer Benutzer",
|
"createUserDir": "Automatisches Erstellen des Home-Verzeichnisses beim Anlegen neuer Benutzer",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "GestĂŒckelter Upload",
|
"tusUploads": "GestĂŒckelter Upload",
|
||||||
"tusUploadsHelp": "File Browser unterstĂŒtzt das Hochladen von gestĂŒckelten Dateien und ermöglicht so einen effizienten, zuverlĂ€ssigen, fortsetzbaren und gestĂŒckelten Datei-Upload auch in unzuverlĂ€ssigen Netzwerken.",
|
"tusUploadsHelp": "File Browser unterstĂŒtzt das Hochladen von gestĂŒckelten Dateien und ermöglicht so einen effizienten, zuverlĂ€ssigen, fortsetzbaren und gestĂŒckelten Datei-Upload auch in unzuverlĂ€ssigen Netzwerken.",
|
||||||
"tusUploadsChunkSize": "Gibt die maximale GröĂe pro Anfrage an (direkte Uploads werden fĂŒr kleinere Uploads verwendet). Bitte geben Sie eine Byte-Angabe oder eine Zeichenfolge wie 10 MB, 1 GB usw. an",
|
"tusUploadsChunkSize": "Gibt die maximale GröĂe pro Anfrage an (direkte Uploads werden fĂŒr kleinere Uploads verwendet). Bitte geben Sie eine Byte-Angabe oder eine Zeichenfolge wie 10 MB, 1 GB usw. an",
|
||||||
"tusUploadsRetryCount": "Anzahl der Wiederholungsversuche, wenn das Hochladen eines StĂŒckes fehlschlĂ€gt.",
|
"tusUploadsRetryCount": "Anzahl der Wiederholungsversuche, wenn das Hochladen eines StĂŒckes fehlschlĂ€gt.",
|
||||||
"userHomeBasePath": "Basispfad fĂŒr Benutzer-Home-Verzeichnisse",
|
|
||||||
"userScopeGenerationPlaceholder": "Scope wird automatisch generiert",
|
|
||||||
"createUserHomeDirectory": "Benutzer-Home-Verzeichnis erstellen",
|
|
||||||
"customStylesheet": "Individuelles Stylesheet",
|
"customStylesheet": "Individuelles Stylesheet",
|
||||||
"defaultUserDescription": "Das sind die Standardeinstellung fĂŒr Benutzer",
|
"defaultUserDescription": "Das sind die Standardeinstellung fĂŒr Benutzer",
|
||||||
"disableExternalLinks": "Externe Links deaktivieren (auĂer Dokumentation)",
|
"disableExternalLinks": "Externe Links deaktivieren (auĂer Dokumentation)",
|
||||||
@ -224,7 +209,6 @@
|
|||||||
"shareDeleted": "Freigabe gelöscht!",
|
"shareDeleted": "Freigabe gelöscht!",
|
||||||
"singleClick": "Einfacher Klick zum Ăffnen von Dateien und Ordnern",
|
"singleClick": "Einfacher Klick zum Ăffnen von Dateien und Ordnern",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "Systemstandard",
|
|
||||||
"dark": "Dunkel",
|
"dark": "Dunkel",
|
||||||
"light": "Hell",
|
"light": "Hell",
|
||||||
"title": "Erscheinungsbild"
|
"title": "Erscheinungsbild"
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"cancel": "ÎÎșÏÏÏÏη",
|
"cancel": "ÎÎșÏÏÏÏη",
|
||||||
"clear": "ÎαΞαÏÎčÏÎŒÏÏ",
|
"clear": "ÎαΞαÏÎčÏÎŒÏÏ",
|
||||||
"close": "ÎλΔίÏÎčÎŒÎż",
|
"close": "ÎλΔίÏÎčÎŒÎż",
|
||||||
"continue": "Continue",
|
|
||||||
"copy": "ÎΜÏÎčÎłÏαÏÎź",
|
"copy": "ÎΜÏÎčÎłÏαÏÎź",
|
||||||
"copyFile": "ÎΜÏÎčÎłÏαÏÎź αÏÏΔίοÏ
",
|
"copyFile": "ÎΜÏÎčÎłÏαÏÎź αÏÏΔίοÏ
",
|
||||||
"copyToClipboard": "ÎΜÏÎčÎłÏαÏÎź ÏÏÎż ÏÏÏÏΔÎčÏÎż",
|
"copyToClipboard": "ÎΜÏÎčÎłÏαÏÎź ÏÏÎż ÏÏÏÏΔÎčÏÎż",
|
||||||
@ -13,7 +12,6 @@
|
|||||||
"download": "ÎÎźÏη",
|
"download": "ÎÎźÏη",
|
||||||
"file": "ÎÏÏΔίο",
|
"file": "ÎÏÏΔίο",
|
||||||
"folder": "ΊΏÎșΔλοÏ",
|
"folder": "ΊΏÎșΔλοÏ",
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "ÎÏÏÎșÏÏ
Ïη ÎșÏÏ
ÏÏΜ αÏÏΔίÏΜ",
|
"hideDotfiles": "ÎÏÏÎșÏÏ
Ïη ÎșÏÏ
ÏÏΜ αÏÏΔίÏΜ",
|
||||||
"info": "ΠληÏÎżÏÎżÏίΔÏ",
|
"info": "ΠληÏÎżÏÎżÏίΔÏ",
|
||||||
"more": "ΠΔÏÎčÏÏÏÏΔÏα",
|
"more": "ΠΔÏÎčÏÏÏÏΔÏα",
|
||||||
@ -24,7 +22,6 @@
|
|||||||
"ok": "ÎΜÏÎŹÎŸÎ”Îč",
|
"ok": "ÎΜÏÎŹÎŸÎ”Îč",
|
||||||
"permalink": "ÎÎźÏη ÎŒÏΜÎčÎŒÎżÏ
ÏÏ
ΜΎÎÏÎŒÎżÏ
",
|
"permalink": "ÎÎźÏη ÎŒÏΜÎčÎŒÎżÏ
ÏÏ
ΜΎÎÏÎŒÎżÏ
",
|
||||||
"previous": "Î ÏοηγοÏÎŒÎ”ÎœÎż",
|
"previous": "Î ÏοηγοÏÎŒÎ”ÎœÎż",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "ÎÎ·ÎŒÎżÏίΔÏ
Ïη",
|
"publish": "ÎÎ·ÎŒÎżÏίΔÏ
Ïη",
|
||||||
"rename": "ÎΔÏÎżÎœÎżÎŒÎ±Ïία",
|
"rename": "ÎΔÏÎżÎœÎżÎŒÎ±Ïία",
|
||||||
"replace": "ÎΜÏÎčÎșαÏÎŹÏÏαÏη",
|
"replace": "ÎΜÏÎčÎșαÏÎŹÏÏαÏη",
|
||||||
@ -35,14 +32,12 @@
|
|||||||
"select": "ÎÏÎčλογΟ",
|
"select": "ÎÏÎčλογΟ",
|
||||||
"selectMultiple": "ÎÏÎčλογΟ ÏολλαÏλÏΜ",
|
"selectMultiple": "ÎÏÎčλογΟ ÏολλαÏλÏΜ",
|
||||||
"share": "ÎÎżÎčÎœÎżÏοίηÏη",
|
"share": "ÎÎżÎčÎœÎżÏοίηÏη",
|
||||||
"shell": "Toggle shell",
|
|
||||||
"submit": "΄ÏÎżÎČολΟ",
|
"submit": "΄ÏÎżÎČολΟ",
|
||||||
"switchView": "ÎÎœÎ±Î»Î»Î±ÎłÎź ÏÏÎżÎČολΟÏ",
|
"switchView": "ÎÎœÎ±Î»Î»Î±ÎłÎź ÏÏÎżÎČολΟÏ",
|
||||||
"toggleSidebar": "(ÎÏ-)ΔΜΔÏγοÏοίηÏÎ·Ï ÏÎ·Ï ÏλΔÏ
ÏÎčÎșÎźÏ ÎŒÏÎŹÏαÏ",
|
"toggleSidebar": "(ÎÏ-)ΔΜΔÏγοÏοίηÏÎ·Ï ÏÎ·Ï ÏλΔÏ
ÏÎčÎșÎźÏ ÎŒÏÎŹÏαÏ",
|
||||||
"update": "ÎΜηΌÎÏÏÏη",
|
"update": "ÎΜηΌÎÏÏÏη",
|
||||||
"upload": "ÎΔÏαÏÏÏÏÏÏη",
|
"upload": "ÎΔÏαÏÏÏÏÏÏη",
|
||||||
"openFile": "ÎÎœÎżÎčÎłÎŒÎ± αÏÏΔίοÏ
",
|
"openFile": "ÎÎœÎżÎčÎłÎŒÎ± αÏÏΔίοÏ
"
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "ÎÎźÏη αÏÏΔίοÏ
",
|
"downloadFile": "ÎÎźÏη αÏÏΔίοÏ
",
|
||||||
@ -106,11 +101,9 @@
|
|||||||
"prompts": {
|
"prompts": {
|
||||||
"copy": "ÎΜÏÎčÎłÏαÏÎź",
|
"copy": "ÎΜÏÎčÎłÏαÏÎź",
|
||||||
"copyMessage": "ÎÏÎčλÎΟÏΔ ÏÎżÏοΞΔÏία ÎłÎčα αΜÏÎčÎłÏαÏÎź ÏÏΜ αÏÏΔίÏΜ ÏαÏ:",
|
"copyMessage": "ÎÏÎčλÎΟÏΔ ÏÎżÏοΞΔÏία ÎłÎčα αΜÏÎčÎłÏαÏÎź ÏÏΜ αÏÏΔίÏΜ ÏαÏ:",
|
||||||
"currentlyNavigating": "Currently navigating on:",
|
|
||||||
"deleteMessageMultiple": "ÎÎŻÏÏΔ ÏίγοÏ
ÏÎżÎč ÏÏÎč ΞÎλΔÏΔ Μα ÎŽÎčαγÏÎŹÏΔÏΔ {count} αÏÏΔία;",
|
"deleteMessageMultiple": "ÎÎŻÏÏΔ ÏίγοÏ
ÏÎżÎč ÏÏÎč ΞÎλΔÏΔ Μα ÎŽÎčαγÏÎŹÏΔÏΔ {count} αÏÏΔία;",
|
||||||
"deleteMessageSingle": "ÎÎŻÏÏΔ ÏίγοÏ
ÏÎżÎč ÏÏÎč ΞÎλΔÏΔ Μα ÎŽÎčαγÏÎŹÏΔÏΔ αÏ
ÏÏ ÏÎż αÏÏΔίο/ÏÎŹÎșΔλο;",
|
"deleteMessageSingle": "ÎÎŻÏÏΔ ÏίγοÏ
ÏÎżÎč ÏÏÎč ΞÎλΔÏΔ Μα ÎŽÎčαγÏÎŹÏΔÏΔ αÏ
ÏÏ ÏÎż αÏÏΔίο/ÏÎŹÎșΔλο;",
|
||||||
"deleteMessageShare": "ÎÎŻÏÏΔ ÏίγοÏ
ÏÎżÎč ÏÏÎč ΞÎλΔÏΔ Μα ÎŽÎčαγÏÎŹÏΔÏΔ αÏ
ÏÎź ÏηΜ ÎșÎżÎčÎœÎżÏοίηÏη ({path});",
|
"deleteMessageShare": "ÎÎŻÏÏΔ ÏίγοÏ
ÏÎżÎč ÏÏÎč ΞÎλΔÏΔ Μα ÎŽÎčαγÏÎŹÏΔÏΔ αÏ
ÏÎź ÏηΜ ÎșÎżÎčÎœÎżÏοίηÏη ({path});",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "ÎÎčαγÏαÏÎź αÏÏΔίÏΜ",
|
"deleteTitle": "ÎÎčαγÏαÏÎź αÏÏΔίÏΜ",
|
||||||
"displayName": "ÎÎŒÏÎŹÎœÎčÏη ÎżÎœÏΌαÏÎżÏ:",
|
"displayName": "ÎÎŒÏÎŹÎœÎčÏη ÎżÎœÏΌαÏÎżÏ:",
|
||||||
"download": "ÎÎźÏη αÏÏΔίÏΜ",
|
"download": "ÎÎźÏη αÏÏΔίÏΜ",
|
||||||
@ -139,9 +132,7 @@
|
|||||||
"upload": "ÎΔÏαÏÏÏÏÏÏη",
|
"upload": "ÎΔÏαÏÏÏÏÏÏη",
|
||||||
"uploadFiles": "ÎΔÏαÏÏÏÏÏÏη {files} αÏÏΔίÏΜâŠ",
|
"uploadFiles": "ÎΔÏαÏÏÏÏÏÏη {files} αÏÏΔίÏΜâŠ",
|
||||||
"uploadMessage": "ÎÏÎčλÎΟÏΔ ÎŒÎčα ΔÏÎčλογΟ ÎłÎčα Ïη ΌΔÏαÏÏÏÏÏÏη.",
|
"uploadMessage": "ÎÏÎčλÎΟÏΔ ÎŒÎčα ΔÏÎčλογΟ ÎłÎčα Ïη ΌΔÏαÏÏÏÏÏÏη.",
|
||||||
"optionalPassword": "Î ÏοαÎčÏΔÏÎčÎșÏÏ ÎșÏÎŽÎčÎșÏÏ ÏÏÏÏÎČαÏηÏ",
|
"optionalPassword": "Î ÏοαÎčÏΔÏÎčÎșÏÏ ÎșÏÎŽÎčÎșÏÏ ÏÏÏÏÎČαÏηÏ"
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "ÎÎčÎșÏΜΔÏ",
|
"images": "ÎÎčÎșÏΜΔÏ",
|
||||||
@ -170,7 +161,6 @@
|
|||||||
"commandRunnerHelp": "ÎÎŽÏ ÎŒÏÎżÏΔίÏΔ Μα ÎżÏÎŻÏΔÏΔ ΔΜÏολÎÏ ÏÎżÏ
ΔÎșÏΔλοÏΜÏαÎč ÏÏα ÎżÎœÎżÎŒÎ±ÏÎŒÎΜα ÎłÎ”ÎłÎżÎœÏÏα ÎșαÎč ÎŽÏαÏÏηÏÎčÏÏηÏΔÏ. Î ÏÎÏΔÎč Μα ÎłÏÎŹÏΔÏΔ ÎŒÎŻÎ± ΔΜÏολΟ Î±ÎœÎŹ ÎłÏÎ±ÎŒÎŒÎź. ÎÎč ΌΔÏαÎČληÏÎÏ ÏΔÏÎčÎČÎŹÎ»Î»ÎżÎœÏÎżÏ {0} ÎșαÎč {1} Ξα Î”ÎŻÎœÎ±Îč ÎŽÎčαΞÎÏÎčΌΔÏ, ÎșαÎč Ξα Î”ÎŻÎœÎ±Îč {0} ÏÏΔÏÎčÎșÎÏ ÎŒÎ” ÏÎż {1}. ÎÎčα ÏΔÏÎčÏÏÏÏΔÏÎ”Ï ÏληÏÎżÏÎżÏÎŻÎ”Ï ÏÏΔÏÎčÎșÎŹ ΌΔ αÏ
ÏÎź Ïη λΔÎčÏÎżÏ
Ïγία ÎșαÎč ÏÎčÏ ÎŽÎčαΞÎÏÎčÎŒÎ”Ï ÎŒÎ”ÏαÎČληÏÎÏ ÏΔÏÎčÎČÎŹÎ»Î»ÎżÎœÏÎżÏ, ÏαÏαÎșÎ±Î»Ï ÎŽÎčαÎČÎŹÏÏΔ ÏÎż {2}.",
|
"commandRunnerHelp": "ÎÎŽÏ ÎŒÏÎżÏΔίÏΔ Μα ÎżÏÎŻÏΔÏΔ ΔΜÏολÎÏ ÏÎżÏ
ΔÎșÏΔλοÏΜÏαÎč ÏÏα ÎżÎœÎżÎŒÎ±ÏÎŒÎΜα ÎłÎ”ÎłÎżÎœÏÏα ÎșαÎč ÎŽÏαÏÏηÏÎčÏÏηÏΔÏ. Î ÏÎÏΔÎč Μα ÎłÏÎŹÏΔÏΔ ÎŒÎŻÎ± ΔΜÏολΟ Î±ÎœÎŹ ÎłÏÎ±ÎŒÎŒÎź. ÎÎč ΌΔÏαÎČληÏÎÏ ÏΔÏÎčÎČÎŹÎ»Î»ÎżÎœÏÎżÏ {0} ÎșαÎč {1} Ξα Î”ÎŻÎœÎ±Îč ÎŽÎčαΞÎÏÎčΌΔÏ, ÎșαÎč Ξα Î”ÎŻÎœÎ±Îč {0} ÏÏΔÏÎčÎșÎÏ ÎŒÎ” ÏÎż {1}. ÎÎčα ÏΔÏÎčÏÏÏÏΔÏÎ”Ï ÏληÏÎżÏÎżÏÎŻÎ”Ï ÏÏΔÏÎčÎșÎŹ ΌΔ αÏ
ÏÎź Ïη λΔÎčÏÎżÏ
Ïγία ÎșαÎč ÏÎčÏ ÎŽÎčαΞÎÏÎčÎŒÎ”Ï ÎŒÎ”ÏαÎČληÏÎÏ ÏΔÏÎčÎČÎŹÎ»Î»ÎżÎœÏÎżÏ, ÏαÏαÎșÎ±Î»Ï ÎŽÎčαÎČÎŹÏÏΔ ÏÎż {2}.",
|
||||||
"commandsUpdated": "ÎÎč ΔΜÏολÎÏ Î”ÎœÎ·ÎŒÎ”ÏÏΞηÎșαΜ!",
|
"commandsUpdated": "ÎÎč ΔΜÏολÎÏ Î”ÎœÎ·ÎŒÎ”ÏÏΞηÎșαΜ!",
|
||||||
"createUserDir": "ÎÏ
ÏÏΌαÏη ΎηΌÎčÎżÏ
Ïγία ÏαÎșÎλοÏ
ÏÏÎźÏÏη ÎșαÏÎŹ ÏηΜ ÏÏÎżÏΞΟÎșη ΜÎÎżÏ
ÏÏÎźÏÏη",
|
"createUserDir": "ÎÏ
ÏÏΌαÏη ΎηΌÎčÎżÏ
Ïγία ÏαÎșÎλοÏ
ÏÏÎźÏÏη ÎșαÏÎŹ ÏηΜ ÏÏÎżÏΞΟÎșη ΜÎÎżÏ
ÏÏÎźÏÏη",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "΀ΌηΌαÏÎčÎșÎÏ ÎŒÎ”ÏαÏÎżÏÎÏ Î±ÏÏΔίÏΜ",
|
"tusUploads": "΀ΌηΌαÏÎčÎșÎÏ ÎŒÎ”ÏαÏÎżÏÎÏ Î±ÏÏΔίÏΜ",
|
||||||
"tusUploadsHelp": "ΠΔÏαÏÎŒÎżÎłÎź File Browser Ï
ÏÎżÏÏηÏίζΔÎč ÏΌηΌαÏÎčÎșÎÏ ÎŒÎ”ÏαÏÎżÏÏÏÏΔÎčÏ Î±ÏÏΔίÏΜ, ΔÏÎčÏÏÎÏÎżÎœÏÎ±Ï ÏηΜ αÏοΎοÏÎčÎșÎź, αΟÎčÏÏÎčÏÏη ÎșαÎč ÏÏ
ΜΔÏÎčζÏΌΔΜη ΌΔÏαÏÏÏÏÏÏη αÏÏΔίÏΜ αÎșÏΌα ÎșαÎč ÏΔ αÏÏÎ±ÎžÎ”ÎŻÏ ÏÏ
ΜΎÎÏΔÎčÏ ÎŽÎčÎșÏÏÎżÏ
.",
|
"tusUploadsHelp": "ΠΔÏαÏÎŒÎżÎłÎź File Browser Ï
ÏÎżÏÏηÏίζΔÎč ÏΌηΌαÏÎčÎșÎÏ ÎŒÎ”ÏαÏÎżÏÏÏÏΔÎčÏ Î±ÏÏΔίÏΜ, ΔÏÎčÏÏÎÏÎżÎœÏÎ±Ï ÏηΜ αÏοΎοÏÎčÎșÎź, αΟÎčÏÏÎčÏÏη ÎșαÎč ÏÏ
ΜΔÏÎčζÏΌΔΜη ΌΔÏαÏÏÏÏÏÏη αÏÏΔίÏΜ αÎșÏΌα ÎșαÎč ÏΔ αÏÏÎ±ÎžÎ”ÎŻÏ ÏÏ
ΜΎÎÏΔÎčÏ ÎŽÎčÎșÏÏÎżÏ
.",
|
||||||
"tusUploadsChunkSize": "΄ÏοΎΔÎčÎșΜÏΔÎč ÏÎż ÎŒÎÎłÎčÏÏÎż ÎŒÎÎłÎ”ÎžÎżÏ Î”ÎœÏÏ Î±ÎčÏÎźÎŒÎ±ÏÎżÏ ÎŒÎ”ÏαÏÏÏÏÏÏÎ·Ï (ÎłÎčα ÎŒÎčÎșÏÏÏΔÏÎ”Ï ÎŒÎ”ÏαÏÎżÏÎÏ Î±ÏÏΔίÏΜ Ξα ÏÏηÏÎčÎŒÎżÏÎżÎčηΞοÏΜ αÏΔÏ
ÎžÎ”ÎŻÎ±Ï ÎșαÎč ÏÏÎč ÏΌηΌαÏÎčÎșÎÏ ÎŒÎ”ÏαÏÎżÏÏÏÏΔÎčÏ). ÎÏÎżÏΔίÏΔ Μα ΔÎčÏΏγΔÏΔ ÎΜαΜ αÎșÎÏαÎčÎż αÏÎčÎžÎŒÏ ÏÎżÏ
Ï
ÏοΎηλÏΜΔÎč ÏÎż ÎŒÎÎłÎ”ÎžÎżÏ ÏΔ bytes, Îź ÎșÎ”ÎŻÎŒÎ”ÎœÎż ΌΔ αÏÎčÎžÎŒÏ ÎșαÎč ÎŒÎżÎœÎŹÎŽÎ± ÎŒÎÏÏηÏÎ·Ï ÎŒÎ”ÎłÎΞοÏ
Ï ÎŽÎ”ÎŽÎżÎŒÎΜÏΜ, ÏÏÏÏ 10MB, 1GB ÎșλÏ.",
|
"tusUploadsChunkSize": "΄ÏοΎΔÎčÎșΜÏΔÎč ÏÎż ÎŒÎÎłÎčÏÏÎż ÎŒÎÎłÎ”ÎžÎżÏ Î”ÎœÏÏ Î±ÎčÏÎźÎŒÎ±ÏÎżÏ ÎŒÎ”ÏαÏÏÏÏÏÏÎ·Ï (ÎłÎčα ÎŒÎčÎșÏÏÏΔÏÎ”Ï ÎŒÎ”ÏαÏÎżÏÎÏ Î±ÏÏΔίÏΜ Ξα ÏÏηÏÎčÎŒÎżÏÎżÎčηΞοÏΜ αÏΔÏ
ÎžÎ”ÎŻÎ±Ï ÎșαÎč ÏÏÎč ÏΌηΌαÏÎčÎșÎÏ ÎŒÎ”ÏαÏÎżÏÏÏÏΔÎčÏ). ÎÏÎżÏΔίÏΔ Μα ΔÎčÏΏγΔÏΔ ÎΜαΜ αÎșÎÏαÎčÎż αÏÎčÎžÎŒÏ ÏÎżÏ
Ï
ÏοΎηλÏΜΔÎč ÏÎż ÎŒÎÎłÎ”ÎžÎżÏ ÏΔ bytes, Îź ÎșÎ”ÎŻÎŒÎ”ÎœÎż ΌΔ αÏÎčÎžÎŒÏ ÎșαÎč ÎŒÎżÎœÎŹÎŽÎ± ÎŒÎÏÏηÏÎ·Ï ÎŒÎ”ÎłÎΞοÏ
Ï ÎŽÎ”ÎŽÎżÎŒÎΜÏΜ, ÏÏÏÏ 10MB, 1GB ÎșλÏ.",
|
||||||
@ -224,7 +214,6 @@
|
|||||||
"shareDeleted": "Î ÎșÎżÎčÎœÎżÏοίηÏη ÎŽÎčαγÏÎŹÏηÎșΔ!",
|
"shareDeleted": "Î ÎșÎżÎčÎœÎżÏοίηÏη ÎŽÎčαγÏÎŹÏηÎșΔ!",
|
||||||
"singleClick": "ΧÏÎźÏη ÎŒÎżÎœÎżÏ ÎșλÎčÎș ÎłÎčα Μα Î±ÎœÎżÎŻÎŸÎ”ÏΔ αÏÏΔία ÎșαÎč ÏαÎșÎλοÏ
Ï",
|
"singleClick": "ΧÏÎźÏη ÎŒÎżÎœÎżÏ ÎșλÎčÎș ÎłÎčα Μα Î±ÎœÎżÎŻÎŸÎ”ÏΔ αÏÏΔία ÎșαÎč ÏαÎșÎλοÏ
Ï",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "ÎŁÎșÎżÏΔÎčΜÏ",
|
"dark": "ÎŁÎșÎżÏΔÎčΜÏ",
|
||||||
"light": "ΊÏÏΔÎčΜÏ",
|
"light": "ΊÏÏΔÎčΜÏ",
|
||||||
"title": "ÎÎżÏÎŻÎČÎż"
|
"title": "ÎÎżÏÎŻÎČÎż"
|
||||||
|
@ -170,7 +170,6 @@
|
|||||||
"commandRunnerHelp": "Here you can set commands that are executed in the named events. You must write one per line. The environment variables {0} and {1} will be available, being {0} relative to {1}. For more information about this feature and the available environment variables, please read the {2}.",
|
"commandRunnerHelp": "Here you can set commands that are executed in the named events. You must write one per line. The environment variables {0} and {1} will be available, being {0} relative to {1}. For more information about this feature and the available environment variables, please read the {2}.",
|
||||||
"commandsUpdated": "Commands updated!",
|
"commandsUpdated": "Commands updated!",
|
||||||
"createUserDir": "Auto create user home dir while adding new user",
|
"createUserDir": "Auto create user home dir while adding new user",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
"tusUploads": "Chunked Uploads",
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
||||||
|
@ -7,13 +7,11 @@
|
|||||||
"copy": "Copiar",
|
"copy": "Copiar",
|
||||||
"copyFile": "Copiar archivo",
|
"copyFile": "Copiar archivo",
|
||||||
"copyToClipboard": "Copiar al portapapeles",
|
"copyToClipboard": "Copiar al portapapeles",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "Crear",
|
"create": "Crear",
|
||||||
"delete": "Borrar",
|
"delete": "Borrar",
|
||||||
"download": "Descargar",
|
"download": "Descargar",
|
||||||
"file": "Archivo",
|
"file": "Archivo",
|
||||||
"folder": "Carpeta",
|
"folder": "Carpeta",
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Ocultar archivos empezados por punto",
|
"hideDotfiles": "Ocultar archivos empezados por punto",
|
||||||
"info": "Info",
|
"info": "Info",
|
||||||
"more": "MĂĄs",
|
"more": "MĂĄs",
|
||||||
@ -24,7 +22,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "Link permanente",
|
"permalink": "Link permanente",
|
||||||
"previous": "Anterior",
|
"previous": "Anterior",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publicar",
|
"publish": "Publicar",
|
||||||
"rename": "Renombrar",
|
"rename": "Renombrar",
|
||||||
"replace": "Reemplazar",
|
"replace": "Reemplazar",
|
||||||
@ -41,17 +38,13 @@
|
|||||||
"toggleSidebar": "Mostrar/Ocultar menĂș",
|
"toggleSidebar": "Mostrar/Ocultar menĂș",
|
||||||
"update": "Actualizar",
|
"update": "Actualizar",
|
||||||
"upload": "Subir",
|
"upload": "Subir",
|
||||||
"openFile": "Abrir archivo",
|
"openFile": "Abrir archivo"
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Descargar fichero",
|
"downloadFile": "Descargar fichero",
|
||||||
"downloadFolder": "Descargar directorio",
|
"downloadFolder": "Descargar directorio",
|
||||||
"downloadSelected": "Descargar seleccionados"
|
"downloadSelected": "Descargar seleccionados"
|
||||||
},
|
},
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "No tienes los permisos necesarios para acceder.",
|
"forbidden": "No tienes los permisos necesarios para acceder.",
|
||||||
"internal": "La verdad es que algo ha ido mal.",
|
"internal": "La verdad es que algo ha ido mal.",
|
||||||
@ -110,7 +103,6 @@
|
|||||||
"deleteMessageMultiple": "ÂżEstĂĄs seguro que quieres eliminar {count} archivo(s)?",
|
"deleteMessageMultiple": "ÂżEstĂĄs seguro que quieres eliminar {count} archivo(s)?",
|
||||||
"deleteMessageSingle": "ÂżEstĂĄs seguro que quieres eliminar este archivo/carpeta?",
|
"deleteMessageSingle": "ÂżEstĂĄs seguro que quieres eliminar este archivo/carpeta?",
|
||||||
"deleteMessageShare": "ÂżEstĂĄ seguro de que quiere eliminar este recurso compartido({path})?",
|
"deleteMessageShare": "ÂżEstĂĄ seguro de que quiere eliminar este recurso compartido({path})?",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Borrar archivos",
|
"deleteTitle": "Borrar archivos",
|
||||||
"displayName": "Nombre:",
|
"displayName": "Nombre:",
|
||||||
"download": "Descargar archivos",
|
"download": "Descargar archivos",
|
||||||
@ -139,9 +131,7 @@
|
|||||||
"upload": "Subir",
|
"upload": "Subir",
|
||||||
"uploadFiles": "Subiendo {files} archivos...",
|
"uploadFiles": "Subiendo {files} archivos...",
|
||||||
"uploadMessage": "Seleccione una opciĂłn para subir.",
|
"uploadMessage": "Seleccione una opciĂłn para subir.",
|
||||||
"optionalPassword": "Contraseña opcional",
|
"optionalPassword": "Contraseña opcional"
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "ImĂĄgenes",
|
"images": "ImĂĄgenes",
|
||||||
@ -170,11 +160,6 @@
|
|||||||
"commandRunnerHelp": "AquĂ puede establecer los comandos que se ejecutan en los eventos nombrados. Debe escribir uno por lĂnea. Las variables de entorno {0} y {1} estarĂĄn disponibles, siendo {0} relativa a {1}. Para mĂĄs informaciĂłn sobre esta caracterĂstica y las variables de entorno disponibles, por favor lea el {2}.",
|
"commandRunnerHelp": "AquĂ puede establecer los comandos que se ejecutan en los eventos nombrados. Debe escribir uno por lĂnea. Las variables de entorno {0} y {1} estarĂĄn disponibles, siendo {0} relativa a {1}. Para mĂĄs informaciĂłn sobre esta caracterĂstica y las variables de entorno disponibles, por favor lea el {2}.",
|
||||||
"commandsUpdated": "ÂĄComandos actualizados!",
|
"commandsUpdated": "ÂĄComandos actualizados!",
|
||||||
"createUserDir": "Crea automaticamente una carpeta de inicio cuando se agrega un usuario",
|
"createUserDir": "Crea automaticamente una carpeta de inicio cuando se agrega un usuario",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Ruta base para los directorios personales de los usuarios",
|
"userHomeBasePath": "Ruta base para los directorios personales de los usuarios",
|
||||||
"userScopeGenerationPlaceholder": "El ĂĄmbito se generarĂĄ automĂĄticamente",
|
"userScopeGenerationPlaceholder": "El ĂĄmbito se generarĂĄ automĂĄticamente",
|
||||||
"createUserHomeDirectory": "Crear el directorio principal del usuario",
|
"createUserHomeDirectory": "Crear el directorio principal del usuario",
|
||||||
@ -224,7 +209,6 @@
|
|||||||
"shareDeleted": "ÂĄRecurso compartido eliminado!",
|
"shareDeleted": "ÂĄRecurso compartido eliminado!",
|
||||||
"singleClick": "Utilice un solo clic para abrir archivos y directorios",
|
"singleClick": "Utilice un solo clic para abrir archivos y directorios",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "Oscuro",
|
"dark": "Oscuro",
|
||||||
"light": "Claro",
|
"light": "Claro",
|
||||||
"title": "Tema"
|
"title": "Tema"
|
||||||
|
@ -1,266 +0,0 @@
|
|||||||
{
|
|
||||||
"buttons": {
|
|
||||||
"cancel": "ÙŰșÙ",
|
|
||||||
"clear": "ÙŸŰ§Ú© ک۱ۯÙ",
|
|
||||||
"close": "ۚ۳ŰȘÙ",
|
|
||||||
"continue": "ۧۯۧÙ
Ù",
|
|
||||||
"copy": "Ú©ÙŸÛ",
|
|
||||||
"copyFile": "Ú©ÙŸÛ ÙۧÛÙ",
|
|
||||||
"copyToClipboard": "Ú©ÙŸÛ ŰšÙ ŰۧÙŰžÙ",
|
|
||||||
"copyDownloadLinkToClipboard": "Ú©ÙŸÛ ŰąŰŻŰ±Űł ŰšÙ ŰۧÙŰžÙ",
|
|
||||||
"create": "ۧÛۏۧۯ",
|
|
||||||
"delete": "Ű۰Ù",
|
|
||||||
"download": "ۯۧÙÙÙŰŻ",
|
|
||||||
"file": "ÙۧÛÙ",
|
|
||||||
"folder": "ÙŸÙŰŽÙ",
|
|
||||||
"fullScreen": "ŰȘÙ
ۧÙ
Ű”ÙŰÙ ",
|
|
||||||
"hideDotfiles": "Ù
ŰźÙÛ Ú©Ű±ŰŻÙ ŰŻŰ§ŰȘ ÙۧÛÙÙۧ",
|
|
||||||
"info": "ۧ۷ÙۧŰčۧŰȘ",
|
|
||||||
"more": "ŰšÛŰŽŰȘ۱",
|
|
||||||
"move": "ۧÙŰȘÙۧÙ",
|
|
||||||
"moveFile": "ۧÙŰȘÙŰ§Ù ÙۧÛÙ",
|
|
||||||
"new": "ŰŹŰŻÛŰŻ",
|
|
||||||
"next": "ŰšŰčŰŻÛ",
|
|
||||||
"ok": "ŰȘۧÛÛŰŻ",
|
|
||||||
"permalink": "ۯ۱ÛۧÙŰȘ ÙÛÙÚ© ۯۧۊÙ
Û",
|
|
||||||
"previous": "ÙŰšÙÛ",
|
|
||||||
"preview": "ÙÙ
ۧÛŰŽ",
|
|
||||||
"publish": "ۧÙŰȘێۧ۱",
|
|
||||||
"rename": "ŰȘŰșÛÛ۱ ÙۧÙ
",
|
|
||||||
"replace": "ۏۧÛÚŻŰČÛÙ",
|
|
||||||
"reportIssue": "ÚŻŰČۧ۱ێ Ù
ŰŽÚ©Ù",
|
|
||||||
"save": "۰۟Û۱Ù",
|
|
||||||
"schedule": "ŰČÙ
Ű§Ù ŰšÙŰŻÛ",
|
|
||||||
"search": "ŰŹŰłŰȘŰŹÙ",
|
|
||||||
"select": "ۧÙŰȘ۟ۧۚ",
|
|
||||||
"selectMultiple": "ۧÙŰȘ۟ۧۚ ÚÙŰŻŰȘۧÛÛ",
|
|
||||||
"share": "ۧێŰȘ۱ۧک گ۰ۧ۱Û",
|
|
||||||
"shell": "ŰȘŰșÛÛ۱ ÙŸÙŰłŰȘÙ",
|
|
||||||
"submit": "۫ۚŰȘ",
|
|
||||||
"switchView": "ŰȘŰșÛÛ۱ ÙÙ
ۧÛŰŽ",
|
|
||||||
"toggleSidebar": "ŰȘŰșÛÛ۱ ÙÙۧ۱کÙۧ۱Û",
|
|
||||||
"update": "ŰšÙ Ű±ÙŰČ ŰłŰ§ÙÛ",
|
|
||||||
"upload": "ŰąÙŸÙÙŰŻ",
|
|
||||||
"openFile": "ۚۧŰČ Ú©Ű±ŰŻÙ ÙۧÛÙ",
|
|
||||||
"discardChanges": "ÙŰșÙ Ú©Ű±ŰŻÙ"
|
|
||||||
},
|
|
||||||
"download": {
|
|
||||||
"downloadFile": "ۯۧÙÙÙŰŻ ÙۧÛÙ",
|
|
||||||
"downloadFolder": "ۯۧÙÙÙŰŻ ÙŸÙŰŽÙ",
|
|
||||||
"downloadSelected": "ۯۧÙÙÙŰŻ ۧÙŰȘ۟ۧۚ ŰŽŰŻÙ Ùۧ"
|
|
||||||
},
|
|
||||||
"upload": {
|
|
||||||
"abortUpload": "ŰąÛۧ Ù
Ű·Ù
ŰŠÙ ÙŰłŰȘÛŰŻ Ú©Ù Ù
ÛŰźÙۧÙÛŰŻ ÙŰșÙ Ú©ÙÛŰŻŰ"
|
|
||||||
},
|
|
||||||
"errors": {
|
|
||||||
"forbidden": "ŰŽÙ
ۧ Ù
ŰŹÙŰČ ŰŻŰłŰȘŰ±ŰłÛ ŰšÙ Ű§ÛÙ Ű±Ű§ Ùۯۧ۱ÛŰŻ.",
|
|
||||||
"internal": "ۧێŰȘۚۧÙÛ Ű§ŰȘÙŰ§Ù Ű§ÙŰȘŰ§ŰŻÙ Ű§ŰłŰȘ",
|
|
||||||
"notFound": "ۧÛÙ Ù
ŰÙ ÙŰ§ŰšÙ ŰŻŰłŰȘŰ±ŰłÛ ÙÛŰłŰȘ",
|
|
||||||
"connection": "۳۱Ù۱ ÙŰ§ŰšÙ ŰŻŰłŰȘŰ±ŰłÛ ÙÛŰłŰȘ"
|
|
||||||
},
|
|
||||||
"files": {
|
|
||||||
"body": "ۚۯÙÙ",
|
|
||||||
"closePreview": "ۚ۳ŰȘÙ ÙÙ
ۧÛŰŽ",
|
|
||||||
"files": "ÙۧÛÙ Ùۧ",
|
|
||||||
"folders": "ÙŸÙŰŽÙ Ùۧ",
|
|
||||||
"home": "Ű”ÙŰÙ Ű§Ű”ÙÛ",
|
|
||||||
"lastModified": "۹۟۱ÛÙ ÙÛ۱ۧÛŰŽ",
|
|
||||||
"loading": "ۯ۱ ŰŰ§Ù ŰšŰ§Ű±ÚŻŰ°Ű§Ű±Û...",
|
|
||||||
"lonely": "It feels lonely here...",
|
|
||||||
"metadata": "Ù۱ۧۯۧۯÙ",
|
|
||||||
"multipleSelectionEnabled": "ÙŰčŰ§Ù ŰšÙŰŻÙ ÚÙŰŻ ÚŻŰČÛÙÙ Ű§Û",
|
|
||||||
"name": "ÙۧÙ
",
|
|
||||||
"size": "ۧÙۯۧŰČÙ",
|
|
||||||
"sortByLastModified": "Ù
۱ŰȘŰš ۳ۧŰČÛ ŰąŰźŰ±ÛÙ ÙÛ۱ۧÛŰŽ",
|
|
||||||
"sortByName": "Ù
۱ŰȘŰš ۳ۧŰČÛ ÙۧÙ
",
|
|
||||||
"sortBySize": "Ù
۱ŰȘŰš ۳ۧŰČÛ Ű§ÙۯۧŰČÙ",
|
|
||||||
"noPreview": "ۧÛÙ ÙۧÛÙ ÙŰ§ŰšÙ ÙÙ
ۧÛŰŽ ÙÛŰłŰȘ"
|
|
||||||
},
|
|
||||||
"help": {
|
|
||||||
"click": "ۧÙŰȘ۟ۧۚ ÙۧÛÙ Ûۧ ÙŸÙŰŽÙ",
|
|
||||||
"ctrl": {
|
|
||||||
"click": "ۧÙŰȘ۟ۧۚ ÚÙŰŻ ÙۧÛÙ Ûۧ ÙŸÙŰŽÙ",
|
|
||||||
"f": "ۚۧŰČ Ú©Ű±ŰŻÙ ŰŹŰłŰȘŰŹÙ",
|
|
||||||
"s": "۰۟ÛŰ±Ù ÛÚ© ÙۧÛÙ Ûۧ ۯۧÙÙÙŰŻ ÙŸÙŰŽÙ ŰŹŰ§Ű±Û"
|
|
||||||
},
|
|
||||||
"del": "ŰŰ°Ù ÚŻŰČÛÙÙ Ű§ÙŰȘŰźŰ§ŰšÛ ",
|
|
||||||
"doubleClick": "ۚۧŰČ Ú©Ű±ŰŻÙ ÙۧÛÙ Ûۧ ÙŸÙŰŽÙ",
|
|
||||||
"esc": "ÙŰșÙ Ű§ÙŰȘ۟ۧۚ Ù/Ûۧ ۚ۳ŰȘÙ ÙŸÛŰșۧÙ
",
|
|
||||||
"f1": "ۧÛÙ Ű§Ű·ÙۧŰčۧŰȘ",
|
|
||||||
"f2": "ŰȘŰșÛÛ۱ ÙۧÙ
ÙۧÛÙ",
|
|
||||||
"help": "۱ۧÙÙÙ
ۧ"
|
|
||||||
},
|
|
||||||
"login": {
|
|
||||||
"createAnAccount": "ۧÛۏۧۯ کۧ۱ۚ۱",
|
|
||||||
"loginInstead": "کۧ۱ۚ۱ ŰȘک۱ۧ۱Û",
|
|
||||||
"password": "۱Ù
ŰČ ŰčŰšÙ۱",
|
|
||||||
"passwordConfirm": "ŰȘۧÛÛŰŻ ۱Ù
ŰČ",
|
|
||||||
"passwordsDontMatch": "ŰčŰŻÙ
ŰȘŰ·Ű§ŰšÙ Ű±Ù
ŰČÙۧ",
|
|
||||||
"signup": "۫ۚŰȘ ÙۧÙ
",
|
|
||||||
"submit": "Ù۱ÙŰŻ",
|
|
||||||
"username": "ÙۧÙ
کۧ۱ۚ۱Û",
|
|
||||||
"usernameTaken": "ÙۧÙ
Ú©Ű§Ű±ŰšŰ±Û ŰȘک۱ۧ۱Û",
|
|
||||||
"wrongCredentials": "۟۷ۧ ۯ۱ ۧŰčŰȘۚۧ۱۳ÙŰŹÛ"
|
|
||||||
},
|
|
||||||
"permanent": "ۯۧۊÙ
Û",
|
|
||||||
"prompts": {
|
|
||||||
"copy": "Ú©ÙŸÛ",
|
|
||||||
"copyMessage": "ۧÙŰȘ۟ۧۚ Ù
ŰÙ ŰšŰ±Ű§Û Ú©ÙŸÛ ÙۧÛÙ ŰšÙ ŰąÙۏۧ ",
|
|
||||||
"currentlyNavigating": "ۯ۱ ŰŰ§Ù ÙŸÛÙ
ۧÛŰŽ",
|
|
||||||
"deleteMessageMultiple": "ŰąÛۧ Ù
Ű·Ù
ŰŠÙÛŰŻ Ú©Ù Ù
ÛâŰźÙۧÙÛŰŻ {count} ÙۧÛÙ Ű±Ű§ ŰŰ°Ù Ú©ÙÛŰŻŰ",
|
|
||||||
"deleteMessageSingle": "ŰąÛۧ Ù
Ű·Ù
ŰŠÙÛŰŻ Ú©Ù Ù
ÛŰźÙۧÙÛŰŻ ÙۧÛÙ/ÙŸÙŰŽÙ Ű±Ű§ ŰŰ°Ù Ú©ÙÛŰŻŰ",
|
|
||||||
"deleteMessageShare": "ŰąÛۧ Ù
Ű·Ù
ŰŠÙ ÙŰłŰȘÛŰŻ Ú©Ù Ù
ÛâŰźÙۧÙÛŰŻ ۧÛÙ Ű§ŰŽŰȘ۱ۧکâÚŻŰ°Ű§Ű±Û ({path}) ۱ۧ ŰŰ°Ù Ú©ÙÛŰŻŰ",
|
|
||||||
"deleteUser": "ŰąÛۧ Ù
Ű·Ù
ŰŠÙÛŰŻ Ú©Ù Ù
ÛŰźÙۧÙÛŰŻ ۧÛÙ Ú©Ű§Ű±ŰšŰ± ۱ۧ ŰŰ°Ù Ú©ÙÛŰŻŰ",
|
|
||||||
"deleteTitle": "ŰŰ°Ù ÙۧÛÙ Ùۧ",
|
|
||||||
"displayName": "ÙÙ
ۧÛŰŽ ÙۧÙ
:",
|
|
||||||
"download": "ۯۧÙÙÙŰŻ ÙۧÛÙ Ùۧ",
|
|
||||||
"downloadMessage": "ÙÙŰč ÙۧÛÙÛ Ú©Ù Ù
ÛŰźÙۧÙÛŰŻ ۯۧÙÙÙŰŻ Ú©ÙÛŰŻ ۱ۧ ۧÙŰȘ۟ۧۚ Ú©ÙÛŰŻ ",
|
|
||||||
"error": "ۧێŰȘۚۧÙÛ Ű±Űź ۯۧۯÙ",
|
|
||||||
"fileInfo": "ۧ۷ÙۧŰčۧŰȘ ÙۧÛÙ ",
|
|
||||||
"filesSelected": "{count} ÙۧÛÙ Ű§ÙŰȘ۟ۧۚ ŰŽŰŻ.",
|
|
||||||
"lastModified": "۹۟۱ÛÙ ÙÛ۱ۧÛŰŽ",
|
|
||||||
"move": "ۧÙŰȘÙۧÙ",
|
|
||||||
"moveMessage": "Ù
ŰÙ ŰŹŰŻÛŰŻÛ ŰšŰ±Ű§Û ÙۧÛÙ(Ùۧ)/ÙŸÙŰŽÙ(ÙۧÛ) ŰźÙŰŻ ۧÙŰȘ۟ۧۚ Ú©ÙÛŰŻ:",
|
|
||||||
"newArchetype": "ÛÚ© ÙŸŰłŰȘ ŰŹŰŻÛŰŻ ۚ۱ ۧ۳ۧ۳ ÛÚ© ۹۱کŰȘۧÛÙŸ ۧÛۏۧۯ Ú©ÙÛŰŻ. ÙۧÛÙ ŰŽÙ
ۧ ۯ۱ ÙŸÙŰŽÙ Ù
ŰŰȘÙۧ ۧÛۏۧۯ ŰźÙۧÙŰŻ ŰŽŰŻ.",
|
|
||||||
"newDir": "ÙŸÙŰŽÙ ŰŹŰŻÛŰŻ",
|
|
||||||
"newDirMessage": "ÙۧÙ
ÙŸÙŰŽÙ ŰŹŰŻÛŰŻ",
|
|
||||||
"newFile": "ÙۧÛÙ ŰŹŰŻÛŰŻ",
|
|
||||||
"newFileMessage": "ÙۧÙ
ÙۧÛÙ ŰŹŰŻÛŰŻ",
|
|
||||||
"numberDirs": "ŰȘŰčۯۧۯ ÙŸÙŰŽÙ Ùۧ",
|
|
||||||
"numberFiles": "ŰȘŰčۯۧۯ ÙۧÛÙ Ùۧ",
|
|
||||||
"rename": "ŰȘŰșÛÛ۱ ÙۧÙ
",
|
|
||||||
"renameMessage": "Ù۱ÙŰŻ ÙۧÙ
ŰŹŰŻÛŰŻ ۚ۱ۧÛ",
|
|
||||||
"replace": "ۏۧÛÚŻŰČÛÙ Ú©Ű±ŰŻÙ",
|
|
||||||
"replaceMessage": "ÛÚ©Û Ű§ŰČ ÙۧÛÙâÙۧÛÛ Ú©Ù Ù
ÛâŰźÙۧÙÛŰŻ ŰąÙŸÙÙŰŻ Ú©ÙÛŰŻŰ ÙۧÙ
Ù
ŰȘÙۧÙŰȘÛ ŰŻŰ§Ű±ŰŻ. ŰąÛۧ Ù
ÛâŰźÙۧÙÛŰŻ ۧŰČ Ű§ÛÙ ÙۧÛÙ Ű”Ű±Ù Ù۞۱ Ú©ÙÛŰŻ Ù ŰšÙ ŰąÙŸÙÙŰŻ ۧۯۧÙ
Ù ŰŻÙÛŰŻ Ûۧ ÙۧÛÙ Ù
ÙŰŹÙŰŻ ۱ۧ ۏۧÛÚŻŰČÛÙ Ú©ÙÛŰŻŰ",
|
|
||||||
"schedule": "ŰČÙ
Ű§Ù ŰšÙŰŻÛ",
|
|
||||||
"scheduleMessage": "ŰȘۧ۱ÛŰź Ù ŰČÙ
ۧÙÛ Ű±Ű§ ŰšŰ±Ű§Û ŰšŰ±ÙۧÙ
Ùâ۱ÛŰČÛ Ű§ÙŰȘێۧ۱ ۧÛÙ ÙŸŰłŰȘ ۧÙŰȘ۟ۧۚ Ú©ÙÛŰŻ",
|
|
||||||
"show": "ÙÙ
ۧÛŰŽ",
|
|
||||||
"size": "ۧÙۯۧŰČÙ",
|
|
||||||
"upload": "ŰąÙŸÙÙŰŻ",
|
|
||||||
"uploadFiles": "ۯ۱ ŰŰ§Ù ŰąÙŸÙÙŰŻ {files} ÙۧÛÙâÙۧ...",
|
|
||||||
"uploadMessage": "ÛÚ© ÚŻŰČÛÙÙ ŰšŰ±Ű§Û ŰąÙŸÙÙŰŻ ۧÙŰȘ۟ۧۚ Ú©ÙÛŰŻ.",
|
|
||||||
"optionalPassword": "۱Ù
ŰČ ŰčŰšÙ۱ ۧ۟ŰȘÛۧ۱Û",
|
|
||||||
"resolution": "Ù۶ÙŰ ŰȘŰ”ÙÛ۱",
|
|
||||||
"discardEditorChanges": "ŰąÛۧ Ù
Ű·Ù
ŰŠÙ ÙŰłŰȘÛŰŻ Ú©Ù Ù
ÛâŰźÙۧÙÛŰŻ ŰȘŰșÛÛ۱ۧŰȘÛ Ű±Ű§ Ú©Ù Ű§Ûۏۧۯ ک۱ۯÙâۧÛŰŻŰ ÙŰșÙ Ú©ÙÛŰŻŰ"
|
|
||||||
},
|
|
||||||
"search": {
|
|
||||||
"images": "ŰȘ۔ۧÙÛ۱",
|
|
||||||
"music": "Ù
ÙŰłÛÙÛ",
|
|
||||||
"pdf": "ÙŸÛ ŰŻÛ Ű§Ù",
|
|
||||||
"pressToSearch": "ŰšŰ±Ű§Û ŰŹŰłŰȘŰŹÙ enter ۱ۧ ŰšŰČÙÛŰŻ...",
|
|
||||||
"search": "ŰŹŰłŰȘŰŹÙ...",
|
|
||||||
"typeToSearch": "ŰȘۧÛÙŸ ŰšŰ±Ű§Û ŰŹŰłŰȘŰŹÙ",
|
|
||||||
"types": "ۧÙÙۧŰč",
|
|
||||||
"video": "ÙÛŰŻŰŠÙ "
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"admin": "Admin",
|
|
||||||
"administrator": "Administrator",
|
|
||||||
"allowCommands": "Ű§ŰŹŰ±Ű§Û ŰŻŰłŰȘÙ۱ۧŰȘ",
|
|
||||||
"allowEdit": "ÙÛ۱ۧÛŰŽŰ ŰȘŰșÛÛ۱ ÙۧÙ
Ű Ù ŰŰ°Ù ÙۧÛÙ Ùۧ Ù ÙŸÙŰŽÙ Ùۧ",
|
|
||||||
"allowNew": "ۧÛۏۧۯ ÙۧÛÙÙۧ Ù ÙŸÙŰŽÙ ÙŰ§Û ŰŹŰŻÛŰŻ",
|
|
||||||
"allowPublish": "ۧÙŰȘێۧ۱ ÙŸŰłŰȘ Ùۧ Ù Ű”ÙŰۧŰȘ ŰŹŰŻÛŰŻ",
|
|
||||||
"allowSignup": "Ű§ŰŹŰ§Ű±Ù ŰŻŰ§ŰŻÙ ŰšÙ Ú©Ű§Ű±ŰšŰ±Ű§Ù ŰšŰ±Ű§Û Ű«ŰšŰȘ ÙۧÙ
",
|
|
||||||
"avoidChanges": "(۟ۧÙÛ ŰšÚŻŰ°Ű§Ű±ÛŰŻ ŰȘۧ ŰȘŰșÛÛ۱ ۧÛۏۧۯ ÙŰŽÙŰŻ)",
|
|
||||||
"branding": "ۚ۱Ùۯ۳ۧŰČÛ",
|
|
||||||
"brandingDirectoryPath": "Ù
ŰłÛ۱ ÙŸÙŰŽÙ ŰšŰ±ÙŰŻ",
|
|
||||||
"brandingHelp": "ŰŽÙ
ۧ Ù
ÛâŰȘÙۧÙÛŰŻ ۞ۧÙ۱ Ù ŰŰł ÙÙ
ÙÙÙâÛ Ù
۱Ù۱گ۱ ÙۧÛÙ ŰźÙŰŻ ۱ۧ ۚۧ ŰȘŰșÛÛ۱ ÙۧÙ
Ű ŰŹŰ§ÛÚŻŰČÛÙÛ ÙÙÚŻÙŰ Ű§Ű¶Ű§ÙÙ Ú©Ű±ŰŻÙ ŰłŰšÚ©âÙŰ§Û ŰłÙŰ§Ű±ŰŽÛ Ù ŰŰȘÛ ŰșÛ۱ÙŰčŰ§Ù Ú©Ű±ŰŻÙ ÙÛÙÚ©âÙŰ§Û ŰźŰ§Ű±ŰŹÛ ŰšÙ ÚŻÛŰȘâÙŰ§ŰšŰ ŰłÙŰ§Ű±ŰŽÛ Ú©ÙÛŰŻ.\nŰšŰ±Ű§Û Ű§Ű·ÙۧŰčۧŰȘ ŰšÛŰŽŰȘ۱ ۯ۱ Ù
Ù۱ۯ ۚ۱Ùۯ۳ۧŰČÛ ŰłÙۧ۱ێÛŰ ÙŰ·ÙŰ§Ù ŰšÙ {0} Ù
۱ۧۏŰčÙ Ú©ÙÛŰŻ.",
|
|
||||||
"changePassword": "ŰȘŰčŰšÛ۱ ۱Ù
ŰČ",
|
|
||||||
"commandRunner": "ۧۏ۱ۧ Ú©ÙÙŰŻÙ ŰŻŰłŰȘÙ۱ۧŰȘ",
|
|
||||||
"commandRunnerHelp": "ۯ۱ ۧÛÙۏۧ Ù
ÛâŰȘÙۧÙÛŰŻ ŰŻŰłŰȘÙ۱ۧŰȘÛ Ű±Ű§ Ú©Ù ŰŻŰ± ۱ÙÛۯۧۯÙŰ§Û ÙۧÙ
ÚŻŰ°Ű§Ű±Û ŰŽŰŻÙ Ű§ŰŹŰ±Ű§ Ù
ÛâŰŽÙÙŰŻŰ ŰȘÙŰžÛÙ
Ú©ÙÛŰŻ. ۚۧÛŰŻ ۯ۱ Ù۱ ۟۷ ÛÚ©Û Ű±Ű§ ŰšÙÙÛŰłÛŰŻ. Ù
ŰȘŰșÛ۱ÙŰ§Û Ù
ŰÛŰ·Û {0} Ù {1} ۯ۱ ŰŻŰłŰȘ۱۳ ŰźÙۧÙÙŰŻ ŰšÙŰŻ Ù {0} Ù۳ۚŰȘ ŰšÙ {1} ÙŰłŰȘÙŰŻ. ŰšŰ±Ű§Û Ű§Ű·ÙۧŰčۧŰȘ ŰšÛŰŽŰȘ۱ ۯ۱ Ù
Ù۱ۯ ۧÛÙ ÙÛÚÚŻÛ Ù Ù
ŰȘŰșÛ۱ÙŰ§Û Ù
ŰÛŰ·Û Ù
ÙŰŹÙŰŻŰ ÙŰ·ÙŰ§Ù {2} ۱ۧ Ù
۷ۧÙŰčÙ Ú©ÙÛŰŻ.",
|
|
||||||
"commandsUpdated": "ŰŻŰłŰȘÙ۱ۧŰȘ ÙÛ۱ۧÛŰŽ ŰŽŰŻ!",
|
|
||||||
"createUserDir": "ۧÛۏۧۯ ŰźÙۯکۧ۱ ÙŸÙŰŽÙ ŰšŰ±Ű§Û Ù۱ کۧ۱ۚ۱ ÙÙگۧÙ
ۧ۶ۧÙÙ Ú©Ű±ŰŻÙ Ú©Ű§Ű±ŰšŰ± ŰŹŰŻÛŰŻ",
|
|
||||||
"minimumPasswordLength": "ŰۯۧÙÙ Ű·ÙÙ Ű±Ù
ŰČ ŰčŰšÙ۱",
|
|
||||||
"tusUploads": "ŰąÙŸÙÙŰŻÙŰ§Û ŰšŰźŰŽ ۚ۟ێ ŰŽŰŻÙ",
|
|
||||||
"tusUploadsHelp": "Ù
۱Ù۱گ۱ ÙۧÛÙ Ű§ŰČ ŰąÙŸÙÙŰŻ ÙۧÛÙ ŰšŰźŰŽ ۚ۟ێ ŰŽŰŻÙ ÙŸŰŽŰȘÛۚۧÙÛ Ù
ÛâÚ©ÙŰŻ Ù Ű§Ù
Ú©Ű§Ù Ű§Ûۏۧۯ ŰąÙŸÙÙŰŻÙŰ§Û ÙۧÛÙ Ú©Ű§Ű±ŰąÙ
ŰŻŰ ÙŰ§ŰšÙ Ű§ŰčŰȘÙ
Ű§ŰŻŰ ÙŰ§ŰšÙ Ű§ŰČ ŰłŰ±ÚŻÛŰ±Û Ù ŰšŰźŰŽ ۚ۟ێ ŰŽŰŻÙ Ű±Ű§ ŰŰȘÛ ŰŻŰ± ŰŽŰšÚ©ÙâÙŰ§Û ŰșÛ۱ÙŰ§ŰšÙ Ű§ŰčŰȘÙ
ۧۯ Ù۱ۧÙÙ
Ù
ÛâÚ©ÙŰŻ.",
|
|
||||||
"tusUploadsChunkSize": "Űۯۧک۫۱ ۧÙۯۧŰČÙ ÛÚ© ۯ۱۟Ùۧ۳ŰȘ ۱ۧ ÙŰŽŰ§Ù Ù
ÛâŰŻÙŰŻ (ŰšŰ±Ű§Û ŰąÙŸÙÙŰŻÙŰ§Û Ú©ÙÚÚ©âŰȘ۱ ۧŰČ ŰąÙŸÙÙŰŻ Ù
ŰłŰȘÙÛÙ
ۧ۳ŰȘÙŰ§ŰŻÙ Ù
ÛâŰŽÙŰŻ). Ù
ÛâŰȘÙۧÙÛŰŻ ÛÚ© ŰčŰŻŰŻ Ű”ŰÛŰ ŰłŰ§ŰŻÙ Ú©Ù ÙێۧÙâŰŻÙÙŰŻÙ Ű§ÙۯۧŰČÙ ŰšŰ§ÛŰȘ ۧ۳ŰȘ Ûۧ ÛÚ© ۱ێŰȘÙ Ù
ۧÙÙŰŻ Û±Û° Ù
گۧۚۧÛŰȘŰ Û± ÚŻÛگۧۚۧÛŰȘ Ù ŰșÛŰ±Ù Ùۧ۱ۯ Ú©ÙÛŰŻ.",
|
|
||||||
"tusUploadsRetryCount": "ŰȘŰčۯۧۯ ŰȘÙۧێâÙŰ§Û Ù
ŰŹŰŻŰŻ ŰšŰ±Ű§Û Ű§ÙۏۧÙ
ۯ۱ Ű”Ù۱ŰȘ ŰčŰŻÙ
Ù
ÙÙÙÛŰȘ ۯ۱ ŰąÙŸÙÙŰŻ ÛÚ© ÙŰ·ŰčÙ ŰŻŰ§ŰŻÙ.",
|
|
||||||
"userHomeBasePath": "Ù
ŰłÛ۱ ÙŸŰ§ÛÙ ŰšŰ±Ű§Û ÙŸÙŰŽÙ ÙŰ§Û Ú©Ű§Ű±ŰšŰ±",
|
|
||||||
"userScopeGenerationPlaceholder": "Ù
ŰŰŻÙŰŻÙ ŰšÙ Ű”Ù۱ŰȘ ŰźÙۯکۧ۱ ŰȘÙÙÛŰŻ ŰźÙۧÙŰŻ ŰŽŰŻ",
|
|
||||||
"createUserHomeDirectory": "ۧÛۏۧۯ ÙŸÙŰŽÙ ÙۧŰÛÙ Ú©Ű§Ű±ŰšŰ±Û",
|
|
||||||
"customStylesheet": "Stylesheet ŰłÙۧ۱ێÛ",
|
|
||||||
"defaultUserDescription": "ۧÛÙ ŰȘÙŰžÛÙ
ۧŰȘ ÙŸÛŰŽâÙ۱۶ ŰšŰ±Ű§Û Ú©Ű§Ű±ŰšŰ±Ű§Ù ŰŹŰŻÛŰŻ ۧ۳ŰȘ.",
|
|
||||||
"disableExternalLinks": "ŰșÛ۱ÙŰčŰ§Ù Ú©Ű±ŰŻÙ ÙÛÙÚ©âÙŰ§Û ŰźŰ§Ű±ŰŹÛ (ŰšÙ ŰŹŰČ Ù
ŰłŰȘÙۯۧŰȘ)",
|
|
||||||
"disableUsedDiskPercentage": "ÙÙ
Ùۯۧ۱ ۯ۱۔ۯ ŰŻÛŰłÚ© ۧ۳ŰȘÙŰ§ŰŻÙ ŰŽŰŻÙ Ű±Ű§ ŰșÛ۱ÙŰčŰ§Ù Ú©ÙÛŰŻ",
|
|
||||||
"documentation": "Ù
ŰłŰȘÙۯ۳ۧŰČÛ",
|
|
||||||
"examples": "Ù
Ű«Ű§Ù Ùۧ",
|
|
||||||
"executeOnShell": "ۧۏ۱ۧ ۱ÙÛ shell",
|
|
||||||
"executeOnShellDescription": "ŰšÙ Ű·Ù۱ ÙŸÛŰŽâÙŰ±Ű¶Ű Ù
۱Ù۱گ۱ ÙۧÛÙŰ ŰŻŰłŰȘÙ۱ۧŰȘ ۱ۧ ۚۧ Ù۱ۧ۟ÙۧÙÛ Ù
ŰłŰȘÙÛÙ
ÙۧÛÙâÙŰ§Û ŰšŰ§ÛÙŰ±Û ŰąÙÙۧ ۧۏ۱ۧ Ù
ÛâÚ©ÙŰŻ. ۧگ۱ Ù
ÛâŰźÙۧÙÛŰŻ ŰąÙÙۧ ۱ۧ ۱ÙÛ ÛÚ© ÙŸÙŰłŰȘÙ (Ù
ۧÙÙŰŻ Bash Ûۧ PowerShell) ۧۏ۱ۧ Ú©ÙÛŰŻŰ Ù
ÛâŰȘÙۧÙÛŰŻ ŰąÙ Ű±Ű§ ۯ۱ ۧÛÙۏۧ ۚۧ ۹۱گÙÙ
ۧÙâÙۧ Ù ÙŸŰ±ÚÙ
âÙŰ§Û Ù
Ù۱ۯ ÙÛۧŰČ ŰȘŰč۱ÛÙ Ú©ÙÛŰŻ. ۯ۱ Ű”Ù۱ŰȘ ŰȘÙŰžÛÙ
Ű ŰŻŰłŰȘÙŰ±Û Ú©Ù Ű§ŰŹŰ±Ű§ Ù
ÛâÚ©ÙÛŰŻ ŰšÙ ŰčÙÙŰ§Ù ÛÚ© ۹۱گÙÙ
Ű§Ù ÙŸÛÙŰłŰȘ Ù
ÛâŰŽÙŰŻ. ۧÛÙ Ù
Ù۶ÙŰč ÙÙ
ۯ۱ Ù
Ù۱ۯ ŰŻŰłŰȘÙ۱ۧŰȘ کۧ۱ۚ۱ Ù ÙÙ
ۯ۱ Ù
Ù۱ۯ ÙÙÚ© Ùۧ Ű”ŰŻÙ Ù
ÛâÚ©ÙŰŻ.",
|
|
||||||
"globalRules": "ۧÛÙ ÛÚ© Ù
ŰŹÙ
ÙŰčÙ ŰŹÙۧÙÛ Ű§ŰČ ÙÙۧÙÛÙ Ù
ۏۧŰČ Ù ŰșÛ۱Ù
ۏۧŰČ Ű§ŰłŰȘ. ŰąÙÙۧ ŰšŰ±Ű§Û Ù۱ کۧ۱ۚ۱ ۧŰčÙ
Ű§Ù Ù
ÛâŰŽÙÙŰŻ. ŰŽÙ
ۧ Ù
ÛâŰȘÙۧÙÛŰŻ ÙÙۧÙÛÙ ŰźŰ§Ű”Û Ű±Ű§ ۯ۱ ŰȘÙŰžÛÙ
ۧŰȘ Ù۱ کۧ۱ۚ۱ ŰȘŰč۱ÛÙ Ú©ÙÛŰŻ ŰȘۧ ۧÛÙ ÙÙۧÙÛÙ Ű±Ű§ ÙŰșÙ Ú©ÙÛŰŻ.",
|
|
||||||
"globalSettings": "ŰȘÙŰžÛÙ
ۧŰȘ ۳۱ۧ۳۱Û",
|
|
||||||
"hideDotfiles": "Ù
ŰźÙÛ Ú©Ű±ŰŻÙ ŰŻŰ§ŰȘ ÙۧÛÙ Ùۧ",
|
|
||||||
"insertPath": "Ùۧ۱ۯ Ú©Ű±ŰŻÙ Ù
ŰłÛ۱",
|
|
||||||
"insertRegex": "Ùۧ۱ۯ Ú©Ű±ŰŻÙ Űčۚۧ۱ۧŰȘ ۚۧÙۧŰčŰŻÙ",
|
|
||||||
"instanceName": "ÙۧÙ
ÙÙ
ÙÙÙ",
|
|
||||||
"language": "ŰČۚۧÙ",
|
|
||||||
"lockPassword": "ŰŹÙÙÚŻÛŰ±Û Ű§ŰČ ŰȘŰșÛÛ۱ ۱Ù
ŰČ ŰȘÙ۳۷ کۧ۱ۚ۱",
|
|
||||||
"newPassword": "۱Ù
ŰČ ŰŹŰŻÛŰŻ ŰŽÙ
ۧ",
|
|
||||||
"newPasswordConfirm": "ŰȘۧÛÛŰŻ ۱Ù
ŰČ ŰŹŰŻÛŰŻ ŰŽÙ
ۧ",
|
|
||||||
"newUser": "کۧ۱ۚ۱ ŰŹŰŻÛŰŻ ",
|
|
||||||
"password": " ۱Ù
ŰČ ŰčŰšÙ۱",
|
|
||||||
"passwordUpdated": "۱Ù
ŰČ ŰčŰšÙ۱ ÙÛ۱ۧÛŰŽ ŰŽŰŻ!",
|
|
||||||
"path": "Ù
ŰłÛ۱",
|
|
||||||
"perm": {
|
|
||||||
"create": "ۧ۳ŰȘۧۯ ÙۧÛÙ Ùۧ Ù ÙŸÙŰŽÙ Ùۧ",
|
|
||||||
"delete": "ŰŰ°Ù ÙۧÛÙ Ùۧ Ù ÙŸÙŰŽÙ Ùۧ",
|
|
||||||
"download": "ۯۧÙÙÙŰŻ",
|
|
||||||
"execute": "Ű§ŰŹŰ±Ű§Û ŰŻŰłŰȘÙ۱ۧŰȘ",
|
|
||||||
"modify": "ÙÛ۱ۧÛŰŽ ÙۧÛÙ Ùۧ",
|
|
||||||
"rename": "ŰȘŰșÛÛ۱ ÙۧÙ
Ûۧ ۧÙŰȘÙŰ§Ù ÙۧÛÙ Ùۧ Ù ÙŸÙŰŽÙ Ùۧ",
|
|
||||||
"share": "ŰšÙ Ű§ŰŽŰȘ۱ۧک ÚŻŰ°Ű§Ű±Û ÙۧÛÙ Ùۧ"
|
|
||||||
},
|
|
||||||
"permissions": "ŰŻŰłŰȘŰ±ŰłÛ Ùۧ",
|
|
||||||
"permissionsHelp": "ŰŽÙ
ۧ Ù
ÛâŰȘÙۧÙÛŰŻ کۧ۱ۚ۱ ۱ۧ ŰšÙ ŰčÙÙŰ§Ù Ù
ŰŻÛ۱ ŰȘÙŰžÛÙ
Ú©ÙÛŰŻ Ûۧ ŰŻŰłŰȘ۱۳ÛâÙۧ ۱ۧ ŰšÙ Ű”Ù۱ŰȘ ۏۯۧگۧÙÙ Ű§ÙŰȘ۟ۧۚ Ú©ÙÛŰŻ. ۧگ۱ \"Ù
ŰŻÛ۱\" ۱ۧ ۧÙŰȘ۟ۧۚ Ú©ÙÛŰŻŰ ŰȘÙ
ۧÙ
ÚŻŰČÛÙÙâÙŰ§Û ŰŻÛگ۱ ŰšÙ Ű·Ù۱ ŰźÙۯکۧ۱ ۧŰčÙ
Ű§Ù Ù
ÛâŰŽÙÙŰŻ. Ù
ŰŻÛ۱ÛŰȘ Ú©Ű§Ű±ŰšŰ±Ű§Ù ÙÙ
ÚÙŰ§Ù Ű§ŰČ Ű§ŰźŰȘÛۧ۱ۧŰȘ Ù
ŰŻÛ۱ ۧ۳ŰȘ.",
|
|
||||||
"profileSettings": "ŰȘÙŰžÛÙ
ۧŰȘ ÙۧŰÛÙ Ú©Ű§Ű±ŰšŰ±Û",
|
|
||||||
"ruleExample1": "ۧŰČ ŰŻŰłŰȘŰ±ŰłÛ ŰšÙ Ù۱گÙÙÙ ÙۧÛÙ ÙÙŰ·ÙâŰ§Û (Ù
ۧÙÙŰŻ .gitŰ .gitignore) ۯ۱ Ù۱ ÙŸÙŰŽÙ ŰŹÙÙÚŻÛŰ±Û Ù
ÛâÚ©ÙŰŻ.",
|
|
||||||
"ruleExample2": "ŰŻŰłŰȘŰ±ŰłÛ ŰšÙ ÙۧÛÙÛ ŰšÙ ÙۧÙ
Caddyfile ۱ۧ ۯ۱ ۱ÛŰŽÙ ŰŻŰ§Ù
ÙÙ Ù
۳ۯÙŰŻ Ù
ÛâÚ©ÙŰŻ.",
|
|
||||||
"rules": "ÙÙۧŰčŰŻ",
|
|
||||||
"rulesHelp": "ۯ۱ ۧÛÙۏۧ Ù
ÛâŰȘÙۧÙÛŰŻ Ù
ŰŹÙ
ÙŰčÙâŰ§Û Ű§ŰČ ÙÙۧÙÛÙ Ù
ۏۧŰČ Ù ŰșÛ۱Ù
ۏۧŰČ Ű±Ű§ ŰšŰ±Ű§Û Ű§ÛÙ Ú©Ű§Ű±ŰšŰ± ۟ۧ۔ ŰȘŰč۱ÛÙ Ú©ÙÛŰŻ. ÙۧÛÙâÙŰ§Û Ù
۳ۯÙŰŻ ŰŽŰŻÙ ŰŻŰ± ÙÛŰłŰȘâÙۧ ÙÙ
ۧÛŰŽ ŰŻŰ§ŰŻÙ ÙÙ
ÛâŰŽÙÙŰŻ Ù Ú©Ű§Ű±ŰšŰ± ŰšÙ ŰąÙÙۧ ŰŻŰłŰȘŰ±ŰłÛ ÙŰźÙۧÙŰŻ ۯۧێŰȘ. Ù
ۧ ۧŰČ regex Ù Ù
ŰłÛ۱ÙŰ§Û Ù
۱ۚÙŰ· ŰšÙ Ù
ŰŰŻÙŰŻÙ Ú©Ű§Ű±ŰšŰ± ÙŸŰŽŰȘÛۚۧÙÛ Ù
ÛâÚ©ÙÛÙ
.",
|
|
||||||
"scope": "Ù
ŰŰŻÙŰŻÙ",
|
|
||||||
"setDateFormat": "ŰȘÙŰžÛÙ
ÙۧÙŰš ŰŻÙÛÙ ŰȘۧ۱ÛŰź",
|
|
||||||
"settingsUpdated": "ŰȘÙŰžÛÙ
ۧŰȘ ŰšÙ Ű±ÙŰČ ŰŽŰŻ!",
|
|
||||||
"shareDuration": "ŰČÙ
Ű§Ù ŰšÙ Ű§ŰŽŰȘ۱ۧک گ۰ۧ۱Û",
|
|
||||||
"shareManagement": "Ù
ŰŻÛ۱ÛŰȘ ŰšÙ Ű§ŰŽŰȘ۱ۧک گ۰ۧ۱Û",
|
|
||||||
"shareDeleted": "ŰšÙ Ű§ŰŽŰȘ۱ۧک ÚŻŰ°Ű§Ű±Û ŰŰ°Ù ŰŽŰŻ!",
|
|
||||||
"singleClick": "ۧ۳ŰȘÙŰ§ŰŻÙ Ű§ŰČ ÛÚ© Ú©ÙÛÚ© ŰšŰ±Ű§Û ŰšŰ§ŰČ Ú©Ű±ŰŻÙ ÙۧÛÙ Ùۧ Ù ÙŸÙŰŽÙ Ùۧ",
|
|
||||||
"themes": {
|
|
||||||
"default": "ŰȘÙŰžÛÙ
ۧŰȘ ÙŸÛŰŽ Ù۱۶ ŰłÛŰłŰȘÙ
",
|
|
||||||
"dark": "ŰȘۧ۱ÛÚ© ",
|
|
||||||
"light": "۱ÙŰŽÙ",
|
|
||||||
"title": "ŰȘÙ
Ûۧ ŰČÙ
ÛÙÙ"
|
|
||||||
},
|
|
||||||
"user": "کۧ۱ۚ۱",
|
|
||||||
"userCommands": "ŰŻŰłŰȘÙ۱ۧŰȘ",
|
|
||||||
"userCommandsHelp": "ÙÙ۱۳ŰȘÛ Ű§ŰČ ŰŻŰłŰȘÙ۱ۧŰȘ Ù
ÙŰŹÙŰŻ ŰšŰ±Ű§Û Ű§ÛÙ Ú©Ű§Ű±ŰšŰ± Ú©Ù ŰšŰ§ Ùۧ۔ÙÙ Ű§ŰČ ÙÙ
ۏۯۧ ŰŽŰŻÙâۧÙŰŻ. Ù
۫ۧÙ:",
|
|
||||||
"userCreated": "کۧ۱ۚ۱ ۧÛۏۧۯ ŰŽŰŻ",
|
|
||||||
"userDefaults": "ŰȘÙŰžÛÙ
ۧŰȘ ÙŸÛŰŽ Ù۱۶ کۧ۱ۚ۱",
|
|
||||||
"userDeleted": "کۧ۱ۚ۱ ŰŰ°Ù ŰŽŰŻ",
|
|
||||||
"userManagement": "Ù
ŰŻÛ۱ÛŰȘ کۧ۱ۚ۱ۧÙ",
|
|
||||||
"userUpdated": "کۧ۱ۚ۱ ŰšÙ Ű±ÙŰČ ŰŽŰŻ!",
|
|
||||||
"username": "ÙۧÙ
کۧ۱ۚ۱Û",
|
|
||||||
"users": "کۧ۱ۚ۱ۧÙ"
|
|
||||||
},
|
|
||||||
"sidebar": {
|
|
||||||
"help": "۱ۧÙÙÙ
ۧ",
|
|
||||||
"hugoNew": "Hugo New",
|
|
||||||
"login": "Ù۱ÙŰŻ",
|
|
||||||
"logout": "۟۱ÙŰŹ ۧŰČ Ű۳ۧۚ",
|
|
||||||
"myFiles": "ÙۧÛÙ ÙŰ§Û Ù
Ù",
|
|
||||||
"newFile": "ÙۧÛÙ ŰŹŰŻÛŰŻ",
|
|
||||||
"newFolder": "ÙŸÙŰŽÙ ŰŹŰŻÛŰŻ",
|
|
||||||
"preview": "ÙÙ
ۧÛŰŽ",
|
|
||||||
"settings": "ŰȘÙŰžÛÙ
ۧŰȘ",
|
|
||||||
"signup": "۫ۚŰȘ ÙۧÙ
",
|
|
||||||
"siteSettings": "ŰȘÙŰžÛÙ
ۧŰȘ ۳ۧÛŰȘ "
|
|
||||||
},
|
|
||||||
"success": {
|
|
||||||
"linkCopied": "ÙÛÙÚ© Ú©ÙŸÛ ŰŽŰŻ!"
|
|
||||||
},
|
|
||||||
"time": {
|
|
||||||
"days": "۱ÙŰČÙۧ",
|
|
||||||
"hours": "۳ۧŰčŰȘ",
|
|
||||||
"minutes": "ŰŻÙÛÙÙ",
|
|
||||||
"seconds": "۫ۧÙÛÙ",
|
|
||||||
"unit": "ÙۧŰŰŻ ŰČÙ
ۧÙ"
|
|
||||||
}
|
|
||||||
}
|
|
@ -170,7 +170,6 @@
|
|||||||
"commandRunnerHelp": "Ici, vous pouvez définir les commandes qui seront exécutées lors des événements nommés précédemments. Vous devez en écrire une par ligne. Les variables d'environnement {0} et {1} seront disponibles, {0} étant relatif à {1}. Pour plus d'informations sur cette fonctionnalité et les variables d'environnement disponibles, veuillez lire la {2}.",
|
"commandRunnerHelp": "Ici, vous pouvez définir les commandes qui seront exécutées lors des événements nommés précédemments. Vous devez en écrire une par ligne. Les variables d'environnement {0} et {1} seront disponibles, {0} étant relatif à {1}. Pour plus d'informations sur cette fonctionnalité et les variables d'environnement disponibles, veuillez lire la {2}.",
|
||||||
"commandsUpdated": "Commandes mises Ă jour !",
|
"commandsUpdated": "Commandes mises Ă jour !",
|
||||||
"createUserDir": "Créer automatiquement un dossier pour l'utilisateur",
|
"createUserDir": "Créer automatiquement un dossier pour l'utilisateur",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Uploads segmentés",
|
"tusUploads": "Uploads segmentés",
|
||||||
"tusUploadsHelp": "File Browser prend en charge les uploads segmentés afin de permettre une gestion efficace, fiable et reprenable sur des réseaux instables.",
|
"tusUploadsHelp": "File Browser prend en charge les uploads segmentés afin de permettre une gestion efficace, fiable et reprenable sur des réseaux instables.",
|
||||||
"tusUploadsChunkSize": "Taille maximale autorisée par segment (les uploads directs seront utilisés pour les fichiers plus petits). Vous pouvez entrer un entier en octets ou une chaßne telle que 10MB, 1GB, etc.",
|
"tusUploadsChunkSize": "Taille maximale autorisée par segment (les uploads directs seront utilisés pour les fichiers plus petits). Vous pouvez entrer un entier en octets ou une chaßne telle que 10MB, 1GB, etc.",
|
||||||
@ -224,7 +223,6 @@
|
|||||||
"shareDeleted": "Partage supprimé !",
|
"shareDeleted": "Partage supprimé !",
|
||||||
"singleClick": "Utiliser un simple clic pour ouvrir les fichiers et les dossiers",
|
"singleClick": "Utiliser un simple clic pour ouvrir les fichiers et les dossiers",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "Sombre",
|
"dark": "Sombre",
|
||||||
"light": "Clair",
|
"light": "Clair",
|
||||||
"title": "ThĂšme"
|
"title": "ThĂšme"
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"cancel": "ŚŚŚŚŚ",
|
"cancel": "ŚŚŚŚŚ",
|
||||||
"clear": "Ś Ś§Ś",
|
"clear": "Ś Ś§Ś",
|
||||||
"close": "ŚĄŚŚŚšŚ",
|
"close": "ŚĄŚŚŚšŚ",
|
||||||
"continue": "ŚŚŚ©Ś",
|
|
||||||
"copy": "ŚŚąŚȘڧŚ",
|
"copy": "ŚŚąŚȘڧŚ",
|
||||||
"copyFile": "ŚŚąŚȘڧ Ś§ŚŚŚ„",
|
"copyFile": "ŚŚąŚȘڧ Ś§ŚŚŚ„",
|
||||||
"copyToClipboard": "ŚŚąŚȘڧ ŚŚŚŚ",
|
"copyToClipboard": "ŚŚąŚȘڧ ŚŚŚŚ",
|
||||||
@ -13,7 +12,6 @@
|
|||||||
"download": "ŚŚŚšŚŚ",
|
"download": "ŚŚŚšŚŚ",
|
||||||
"file": "Ś§ŚŚŚ„",
|
"file": "Ś§ŚŚŚ„",
|
||||||
"folder": "ŚȘŚŚ§ŚŚŚ",
|
"folder": "ŚȘŚŚ§ŚŚŚ",
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "ŚŚĄŚȘŚš Ś§ŚŚŠŚŚ/ŚȘŚŚ§ŚŚŚȘ Ś©Ś©ŚŚ ŚŚȘŚŚŚ ŚŚ Ś§ŚŚŚ",
|
"hideDotfiles": "ŚŚĄŚȘŚš Ś§ŚŚŠŚŚ/ŚȘŚŚ§ŚŚŚȘ Ś©Ś©ŚŚ ŚŚȘŚŚŚ ŚŚ Ś§ŚŚŚ",
|
||||||
"info": "ŚŚŚŚą",
|
"info": "ŚŚŚŚą",
|
||||||
"more": "ŚąŚŚ",
|
"more": "ŚąŚŚ",
|
||||||
@ -24,7 +22,6 @@
|
|||||||
"ok": "ŚŚŚ©ŚŚš",
|
"ok": "ŚŚŚ©ŚŚš",
|
||||||
"permalink": "ŚŚŠŚŚšŚȘ Ś§ŚŚ©ŚŚš Ś§ŚŚŚą",
|
"permalink": "ŚŚŠŚŚšŚȘ Ś§ŚŚ©ŚŚš Ś§ŚŚŚą",
|
||||||
"previous": "ŚŚ§ŚŚŚ",
|
"previous": "ŚŚ§ŚŚŚ",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Ś€ŚšŚĄŚŚ",
|
"publish": "Ś€ŚšŚĄŚŚ",
|
||||||
"rename": "Ś©ŚŚ ŚŚ Ś©Ś",
|
"rename": "Ś©ŚŚ ŚŚ Ś©Ś",
|
||||||
"replace": "ŚŚŚŚ€Ś",
|
"replace": "ŚŚŚŚ€Ś",
|
||||||
@ -42,6 +39,7 @@
|
|||||||
"update": "ŚąŚŚŚŚ",
|
"update": "ŚąŚŚŚŚ",
|
||||||
"upload": "ŚŚąŚŚŚ",
|
"upload": "ŚŚąŚŚŚ",
|
||||||
"openFile": "Ś€ŚȘŚ Ś§ŚŚŚ„",
|
"openFile": "Ś€ŚȘŚ Ś§ŚŚŚ„",
|
||||||
|
"continue": "ŚŚŚ©Ś",
|
||||||
"discardChanges": "ŚŚšŚŚ§ŚȘ ŚŚ©ŚŚ ŚŚŚŚ"
|
"discardChanges": "ŚŚšŚŚ§ŚȘ ŚŚ©ŚŚ ŚŚŚŚ"
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
@ -60,6 +58,7 @@
|
|||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "ŚŚŚŁ",
|
"body": "ŚŚŚŁ",
|
||||||
|
"clear": "Ś ŚŚ§ŚŚ",
|
||||||
"closePreview": "ŚĄŚŚŚšŚȘ ŚȘŚŠŚŚŚ ŚŚ§ŚŚŚŚ",
|
"closePreview": "ŚĄŚŚŚšŚȘ ŚȘŚŠŚŚŚ ŚŚ§ŚŚŚŚ",
|
||||||
"files": "Ś§ŚŚŠŚŚ",
|
"files": "Ś§ŚŚŠŚŚ",
|
||||||
"folders": "ŚȘŚŚ§ŚŚŚȘ",
|
"folders": "ŚȘŚŚ§ŚŚŚȘ",
|
||||||
@ -110,7 +109,6 @@
|
|||||||
"deleteMessageMultiple": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚŚ§ {count} Ś§ŚŚŠŚŚ?",
|
"deleteMessageMultiple": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚŚ§ {count} Ś§ŚŚŠŚŚ?",
|
||||||
"deleteMessageSingle": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚŚ§ ŚŚȘ ŚŚ§ŚŚŚ„/ŚŚȘŚŚ§ŚŚŚ?",
|
"deleteMessageSingle": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚŚ§ ŚŚȘ ŚŚ§ŚŚŚ„/ŚŚȘŚŚ§ŚŚŚ?",
|
||||||
"deleteMessageShare": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚŚ§ ŚŚȘ ŚŚ©ŚŚȘŚŚŁ ŚŚŚ ({path})?",
|
"deleteMessageShare": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚŚ§ ŚŚȘ ŚŚ©ŚŚȘŚŚŁ ŚŚŚ ({path})?",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "ŚŚŚŚ§ŚȘ Ś§ŚŚŠŚŚ",
|
"deleteTitle": "ŚŚŚŚ§ŚȘ Ś§ŚŚŠŚŚ",
|
||||||
"displayName": "Ś©Ś:",
|
"displayName": "Ś©Ś:",
|
||||||
"download": "ŚŚŚšŚŚȘ Ś§ŚŚŠŚŚ",
|
"download": "ŚŚŚšŚŚȘ Ś§ŚŚŠŚŚ",
|
||||||
@ -140,7 +138,6 @@
|
|||||||
"uploadFiles": "ŚŚąŚŚ {files} Ś§ŚŚŠŚŚ...",
|
"uploadFiles": "ŚŚąŚŚ {files} Ś§ŚŚŠŚŚ...",
|
||||||
"uploadMessage": "ŚŚŚš ŚŚ€Ś©ŚšŚŚȘ ŚŚąŚŚŚ.",
|
"uploadMessage": "ŚŚŚš ŚŚ€Ś©ŚšŚŚȘ ŚŚąŚŚŚ.",
|
||||||
"optionalPassword": "ŚĄŚŚĄŚŚ ŚŚŚ€ŚŠŚŚŚ ŚŚŚȘ",
|
"optionalPassword": "ŚĄŚŚĄŚŚ ŚŚŚ€ŚŠŚŚŚ ŚŚŚȘ",
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚ ŚŚȘ ŚŚ©ŚŚ ŚŚŚŚ Ś©ŚŚŚŠŚąŚȘ?"
|
"discardEditorChanges": "ŚŚŚ ŚŚȘŚ ŚŚŚŚ Ś©ŚŚšŚŠŚŚ Ś ŚŚŚŚ ŚŚȘ ŚŚ©ŚŚ ŚŚŚŚ Ś©ŚŚŚŠŚąŚȘ?"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
@ -170,11 +167,6 @@
|
|||||||
"commandRunnerHelp": "ŚŚȘŚ ŚŚŚŚ ŚŚŚŚŚŚš Ś€Ś§ŚŚŚŚȘ Ś©ŚŚŚŚŠŚąŚ ŚŚŚŚšŚŚąŚŚ Ś©ŚŚ ŚŚ. ŚąŚŚŚ ŚŚŚȘŚŚ ŚŚŚ ŚŚŚ Ś©ŚŚšŚ. ŚŚ©ŚȘŚ Ś ŚŚĄŚŚŚŚ {0} Ś-{1} ŚŚŚŚ ŚŚŚŚ ŚŚ, ŚŚŚŚŚȘŚ {0} ŚŚŚŚĄ Ś-{1}. ŚŚŚŚŚą Ś ŚŚĄŚŁ ŚąŚ ŚȘŚŚŚ Ś ŚŚ ŚŚąŚ ŚŚ©ŚȘŚ Ś ŚŚĄŚŚŚŚ ŚŚŚŚŚ ŚŚ, ŚąŚŚŚ Ś {2}.",
|
"commandRunnerHelp": "ŚŚȘŚ ŚŚŚŚ ŚŚŚŚŚŚš Ś€Ś§ŚŚŚŚȘ Ś©ŚŚŚŚŠŚąŚ ŚŚŚŚšŚŚąŚŚ Ś©ŚŚ ŚŚ. ŚąŚŚŚ ŚŚŚȘŚŚ ŚŚŚ ŚŚŚ Ś©ŚŚšŚ. ŚŚ©ŚȘŚ Ś ŚŚĄŚŚŚŚ {0} Ś-{1} ŚŚŚŚ ŚŚŚŚ ŚŚ, ŚŚŚŚŚȘŚ {0} ŚŚŚŚĄ Ś-{1}. ŚŚŚŚŚą Ś ŚŚĄŚŁ ŚąŚ ŚȘŚŚŚ Ś ŚŚ ŚŚąŚ ŚŚ©ŚȘŚ Ś ŚŚĄŚŚŚŚ ŚŚŚŚŚ ŚŚ, ŚąŚŚŚ Ś {2}.",
|
||||||
"commandsUpdated": "ŚŚ€Ś§ŚŚŚŚȘ ŚąŚŚŚŚ Ś!",
|
"commandsUpdated": "ŚŚ€Ś§ŚŚŚŚȘ ŚąŚŚŚŚ Ś!",
|
||||||
"createUserDir": "ŚŠŚŚš ŚŚŚŚŚŚŚŚȘ ŚȘŚŚ§ŚŚŚȘ ŚŚŚȘ ŚŚąŚȘ ŚŚŚĄŚ€ŚȘ ŚŚ©ŚȘŚŚ© ŚŚŚ©",
|
"createUserDir": "ŚŠŚŚš ŚŚŚŚŚŚŚŚȘ ŚȘŚŚ§ŚŚŚȘ ŚŚŚȘ ŚŚąŚȘ ŚŚŚĄŚ€ŚȘ ŚŚ©ŚȘŚŚ© ŚŚŚ©",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Ś ŚȘŚŚ ŚšŚŚ©Ś ŚŚȘŚŚ§ŚŚŚȘ ŚŚŚŚȘ Ś©Ś ŚŚ©ŚȘŚŚ©ŚŚ",
|
"userHomeBasePath": "Ś ŚȘŚŚ ŚšŚŚ©Ś ŚŚȘŚŚ§ŚŚŚȘ ŚŚŚŚȘ Ś©Ś ŚŚ©ŚȘŚŚ©ŚŚ",
|
||||||
"userScopeGenerationPlaceholder": "ŚŚŚŚ§ŚŁ ŚŚŚŚŠŚš ŚŚŚŚŚŚŚŚȘ",
|
"userScopeGenerationPlaceholder": "ŚŚŚŚ§ŚŁ ŚŚŚŚŠŚš ŚŚŚŚŚŚŚŚȘ",
|
||||||
"createUserHomeDirectory": "ŚŠŚŚš ŚȘŚŚ§ŚŚŚȘ ŚŚŚȘ ŚŚŚ©ŚȘŚŚ©",
|
"createUserHomeDirectory": "ŚŠŚŚš ŚȘŚŚ§ŚŚŚȘ ŚŚŚȘ ŚŚŚ©ŚȘŚŚ©",
|
||||||
@ -224,7 +216,6 @@
|
|||||||
"shareDeleted": "ŚŚ©ŚŚȘŚŚŁ Ś ŚŚŚ§!",
|
"shareDeleted": "ŚŚ©ŚŚȘŚŚŁ Ś ŚŚŚ§!",
|
||||||
"singleClick": "ŚŚ©ŚȘŚŚ© ŚŚŚŚŚŠŚ ŚŚŚŚŚȘ ŚŚŚ ŚŚ€ŚȘŚŚ Ś§ŚŚŚ„/ŚȘŚŚ§ŚŚŚ",
|
"singleClick": "ŚŚ©ŚȘŚŚ© ŚŚŚŚŚŠŚ ŚŚŚŚŚȘ ŚŚŚ ŚŚ€ŚȘŚŚ Ś§ŚŚŚ„/ŚȘŚŚ§ŚŚŚ",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "ŚŚŚ",
|
"dark": "ŚŚŚ",
|
||||||
"light": "ŚŚŚŚš",
|
"light": "ŚŚŚŚš",
|
||||||
"title": "ŚąŚšŚŚȘ Ś ŚŚ©Ś"
|
"title": "ŚąŚšŚŚȘ Ś ŚŚ©Ś"
|
||||||
|
@ -3,17 +3,14 @@
|
|||||||
"cancel": "Mégse",
|
"cancel": "Mégse",
|
||||||
"clear": "Törlése",
|
"clear": "Törlése",
|
||||||
"close": "BezĂĄrĂĄs",
|
"close": "BezĂĄrĂĄs",
|
||||||
"continue": "Continue",
|
|
||||||
"copy": "MĂĄsolĂĄs",
|
"copy": "MĂĄsolĂĄs",
|
||||||
"copyFile": "FĂĄjl mĂĄsolĂĄsa",
|
"copyFile": "FĂĄjl mĂĄsolĂĄsa",
|
||||||
"copyToClipboard": "MĂĄsolĂĄs vĂĄgĂłlapra",
|
"copyToClipboard": "MĂĄsolĂĄs vĂĄgĂłlapra",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "Létrehozås",
|
"create": "Létrehozås",
|
||||||
"delete": "Törlése",
|
"delete": "Törlése",
|
||||||
"download": "Letöltés",
|
"download": "Letöltés",
|
||||||
"file": "FĂĄjl",
|
"file": "FĂĄjl",
|
||||||
"folder": "Mappa",
|
"folder": "Mappa",
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Rejtett fåjlok elrejtése",
|
"hideDotfiles": "Rejtett fåjlok elrejtése",
|
||||||
"info": "InfĂł",
|
"info": "InfĂł",
|
||||||
"more": "TovĂĄbbi",
|
"more": "TovĂĄbbi",
|
||||||
@ -24,7 +21,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "ĂllandĂł link lekĂ©rĂ©se",
|
"permalink": "ĂllandĂł link lekĂ©rĂ©se",
|
||||||
"previous": "ElĆzĆ",
|
"previous": "ElĆzĆ",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "PublikĂĄlĂĄsa",
|
"publish": "PublikĂĄlĂĄsa",
|
||||||
"rename": "ĂtnevezĂ©s",
|
"rename": "ĂtnevezĂ©s",
|
||||||
"replace": "Csere",
|
"replace": "Csere",
|
||||||
@ -41,17 +37,13 @@
|
|||||||
"toggleSidebar": "OldalsĂĄv ĂĄtvĂĄltĂĄsa",
|
"toggleSidebar": "OldalsĂĄv ĂĄtvĂĄltĂĄsa",
|
||||||
"update": "FrissĂtĂ©s",
|
"update": "FrissĂtĂ©s",
|
||||||
"upload": "Feltöltés",
|
"upload": "Feltöltés",
|
||||||
"openFile": "FĂĄjl megnyitĂĄsa",
|
"openFile": "FĂĄjl megnyitĂĄsa"
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Fåjl letöltése",
|
"downloadFile": "Fåjl letöltése",
|
||||||
"downloadFolder": "Mappa letöltése",
|
"downloadFolder": "Mappa letöltése",
|
||||||
"downloadSelected": "Kijelölés letöltése"
|
"downloadSelected": "Kijelölés letöltése"
|
||||||
},
|
},
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "Nincs jogosultsåga a hozzåféréshez.",
|
"forbidden": "Nincs jogosultsåga a hozzåféréshez.",
|
||||||
"internal": "Valami nagyon elromlott.",
|
"internal": "Valami nagyon elromlott.",
|
||||||
@ -110,7 +102,6 @@
|
|||||||
"deleteMessageMultiple": "Biztosan törölni szeretne {count} fåjlt?",
|
"deleteMessageMultiple": "Biztosan törölni szeretne {count} fåjlt?",
|
||||||
"deleteMessageSingle": "Biztosan törölni szeretné ezt a fåjl vagy mappåt?",
|
"deleteMessageSingle": "Biztosan törölni szeretné ezt a fåjl vagy mappåt?",
|
||||||
"deleteMessageShare": "Biztosan törölni szeretné ezt a megosztåst ({path})?",
|
"deleteMessageShare": "Biztosan törölni szeretné ezt a megosztåst ({path})?",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Fåjlok törlése",
|
"deleteTitle": "Fåjlok törlése",
|
||||||
"displayName": "MegjelenĂtett nĂ©v:",
|
"displayName": "MegjelenĂtett nĂ©v:",
|
||||||
"download": "Fåjlok letöltése",
|
"download": "Fåjlok letöltése",
|
||||||
@ -139,9 +130,7 @@
|
|||||||
"upload": "Feltöltés",
|
"upload": "Feltöltés",
|
||||||
"uploadFiles": "{files} fĂĄjl feltöltĂ©seâŠ",
|
"uploadFiles": "{files} fĂĄjl feltöltĂ©seâŠ",
|
||||||
"uploadMessage": "Vålasszon egy feltöltési módot.",
|
"uploadMessage": "Vålasszon egy feltöltési módot.",
|
||||||
"optionalPassword": "VĂĄlaszthatĂł jelszĂł",
|
"optionalPassword": "VĂĄlaszthatĂł jelszĂł"
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Képek",
|
"images": "Képek",
|
||||||
@ -170,18 +159,12 @@
|
|||||||
"commandRunnerHelp": "BeĂĄllĂthatja azokat a parancsokat, amelyek a megnevezett esemĂ©nyek sorĂĄn vĂ©grehajtĂĄsra kerĂŒlnek. SoronkĂ©nt egyet kell megadni. A {0} Ă©s a {1} környezeti vĂĄltozĂłk lesznek elĂ©rhetĆek, ahol a {0} relatĂv a {1}-hez. A funkciĂłrĂłl Ă©s a rendelkezĂ©sre ĂĄllĂł környezeti vĂĄltozĂłkrĂłl tovĂĄbbi informĂĄciĂł: {2}.",
|
"commandRunnerHelp": "BeĂĄllĂthatja azokat a parancsokat, amelyek a megnevezett esemĂ©nyek sorĂĄn vĂ©grehajtĂĄsra kerĂŒlnek. SoronkĂ©nt egyet kell megadni. A {0} Ă©s a {1} környezeti vĂĄltozĂłk lesznek elĂ©rhetĆek, ahol a {0} relatĂv a {1}-hez. A funkciĂłrĂłl Ă©s a rendelkezĂ©sre ĂĄllĂł környezeti vĂĄltozĂłkrĂłl tovĂĄbbi informĂĄciĂł: {2}.",
|
||||||
"commandsUpdated": "Parancsok frissĂtve!",
|
"commandsUpdated": "Parancsok frissĂtve!",
|
||||||
"createUserDir": "FelhasznĂĄlĂłk sajĂĄt mappĂĄinak automatikus lĂ©trehozĂĄsa Ășj felhasznĂĄlĂłk hozzĂĄadĂĄsakor",
|
"createUserDir": "FelhasznĂĄlĂłk sajĂĄt mappĂĄinak automatikus lĂ©trehozĂĄsa Ășj felhasznĂĄlĂłk hozzĂĄadĂĄsakor",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Alap elĂ©rĂ©si Ăștvonal a felhasznĂĄlĂłk sajĂĄt mappĂĄihoz",
|
"userHomeBasePath": "Alap elĂ©rĂ©si Ăștvonal a felhasznĂĄlĂłk sajĂĄt mappĂĄihoz",
|
||||||
"userScopeGenerationPlaceholder": "A környezet automatikus lesz létrehozva",
|
"userScopeGenerationPlaceholder": "A környezet automatikus lesz létrehozva",
|
||||||
"createUserHomeDirectory": "Felhasznålói sajåt mappåk létrehozåsa",
|
"createUserHomeDirectory": "Felhasznålói sajåt mappåk létrehozåsa",
|
||||||
"customStylesheet": "EgyĂ©ni stĂluslap",
|
"customStylesheet": "EgyĂ©ni stĂluslap",
|
||||||
"defaultUserDescription": "Ezek az alapĂ©rtelmezett beĂĄllĂtĂĄsok az Ășj felhasznĂĄlĂłk szĂĄmĂĄra.",
|
"defaultUserDescription": "Ezek az alapĂ©rtelmezett beĂĄllĂtĂĄsok az Ășj felhasznĂĄlĂłk szĂĄmĂĄra.",
|
||||||
"disableExternalLinks": "KĂŒlsĆ linkek letiltĂĄsa (kivĂ©ve a dokumentĂĄciĂł)",
|
"disableExternalLinks": "KĂŒlsĆ linkek letiltĂĄsa (kivĂ©ve a dokumentĂĄciĂł)",
|
||||||
"disableUsedDiskPercentage": "Disable used disk percentage graph",
|
|
||||||
"documentation": "dokumentĂĄciĂł",
|
"documentation": "dokumentĂĄciĂł",
|
||||||
"examples": "Példåk",
|
"examples": "Példåk",
|
||||||
"executeOnShell": "FuttatĂĄs parancsĂ©rtelmezĆben",
|
"executeOnShell": "FuttatĂĄs parancsĂ©rtelmezĆben",
|
||||||
@ -224,7 +207,6 @@
|
|||||||
"shareDeleted": "Megosztås törölve!",
|
"shareDeleted": "Megosztås törölve!",
|
||||||
"singleClick": "Fåjlok és könyvtårak megnyitåsa egyetlen kattintåssal",
|
"singleClick": "Fåjlok és könyvtårak megnyitåsa egyetlen kattintåssal",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "Sötét",
|
"dark": "Sötét",
|
||||||
"light": "VilĂĄgos",
|
"light": "VilĂĄgos",
|
||||||
"title": "Téma"
|
"title": "Téma"
|
||||||
|
@ -26,7 +26,6 @@ import("dayjs/locale/uk");
|
|||||||
import("dayjs/locale/vi");
|
import("dayjs/locale/vi");
|
||||||
import("dayjs/locale/zh-cn");
|
import("dayjs/locale/zh-cn");
|
||||||
import("dayjs/locale/zh-tw");
|
import("dayjs/locale/zh-tw");
|
||||||
import("dayjs/locale/cs");
|
|
||||||
|
|
||||||
// All i18n resources specified in the plugin `include` option can be loaded
|
// All i18n resources specified in the plugin `include` option can be loaded
|
||||||
// at once using the import syntax
|
// at once using the import syntax
|
||||||
|
@ -3,18 +3,13 @@
|
|||||||
"cancel": "HÊtta við",
|
"cancel": "HÊtta við",
|
||||||
"clear": "Hreinsa",
|
"clear": "Hreinsa",
|
||||||
"close": "Loka",
|
"close": "Loka",
|
||||||
"continue": "Continue",
|
|
||||||
"copy": "Afrita",
|
"copy": "Afrita",
|
||||||
"copyFile": "Afrita skjal",
|
"copyFile": "Afrita skjal",
|
||||||
"copyToClipboard": "Afrita",
|
"copyToClipboard": "Afrita",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "BĂșa til",
|
"create": "BĂșa til",
|
||||||
"delete": "Eyða",
|
"delete": "Eyða",
|
||||||
"download": "SĂŠkja",
|
"download": "SĂŠkja",
|
||||||
"file": "File",
|
"hideDotfiles": "",
|
||||||
"folder": "Folder",
|
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Hide dotfiles",
|
|
||||||
"info": "UpplĂœsingar",
|
"info": "UpplĂœsingar",
|
||||||
"more": "Meira",
|
"more": "Meira",
|
||||||
"move": "FĂŠra",
|
"move": "FĂŠra",
|
||||||
@ -24,7 +19,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "SĂŠkja fastan hlekk",
|
"permalink": "SĂŠkja fastan hlekk",
|
||||||
"previous": "Fyrri",
|
"previous": "Fyrri",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Gefa Ășt",
|
"publish": "Gefa Ășt",
|
||||||
"rename": "Endurnefna",
|
"rename": "Endurnefna",
|
||||||
"replace": "Skipta Ășt",
|
"replace": "Skipta Ășt",
|
||||||
@ -36,27 +30,20 @@
|
|||||||
"selectMultiple": "Velja mörg",
|
"selectMultiple": "Velja mörg",
|
||||||
"share": "Deila",
|
"share": "Deila",
|
||||||
"shell": "SĂœna skipanaglugga",
|
"shell": "SĂœna skipanaglugga",
|
||||||
"submit": "Submit",
|
|
||||||
"switchView": "Skipta um Ăștlit",
|
"switchView": "Skipta um Ăștlit",
|
||||||
"toggleSidebar": "SĂœna hliðarstiku",
|
"toggleSidebar": "SĂœna hliðarstiku",
|
||||||
"update": "Vista",
|
"update": "Vista",
|
||||||
"upload": "Hlaða upp",
|
"upload": "Hlaða upp"
|
||||||
"openFile": "Open file",
|
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "SĂŠkja skjal",
|
"downloadFile": "SĂŠkja skjal",
|
||||||
"downloadFolder": "SÊkja möppu",
|
"downloadFolder": "SÊkja möppu",
|
||||||
"downloadSelected": "Download Selected"
|
"downloadSelected": ""
|
||||||
},
|
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "ĂĂș hefur ekki aðgang að ĂŸessari sĂðu.",
|
"forbidden": "ĂĂș hefur ekki aðgang að ĂŸessari sĂðu.",
|
||||||
"internal": "Eitthvað fĂłr Ășrskeiðis.",
|
"internal": "Eitthvað fĂłr Ășrskeiðis.",
|
||||||
"notFound": "Ekki er hĂŠgt að opna ĂŸessa sĂðu.",
|
"notFound": "Ekki er hĂŠgt að opna ĂŸessa sĂðu."
|
||||||
"connection": "The server can't be reached."
|
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "MeginmĂĄl",
|
"body": "MeginmĂĄl",
|
||||||
@ -73,8 +60,7 @@
|
|||||||
"size": "StÊrð",
|
"size": "StÊrð",
|
||||||
"sortByLastModified": "Flokka eftir Seinast breytt",
|
"sortByLastModified": "Flokka eftir Seinast breytt",
|
||||||
"sortByName": "Flokka eftir nafni",
|
"sortByName": "Flokka eftir nafni",
|
||||||
"sortBySize": "Flokka eftir stÊrð",
|
"sortBySize": "Flokka eftir stÊrð"
|
||||||
"noPreview": "Preview is not available for this file."
|
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"click": "velja skjal eða möppu",
|
"click": "velja skjal eða möppu",
|
||||||
@ -109,8 +95,6 @@
|
|||||||
"currentlyNavigating": "NĂșverandi staðsetning:",
|
"currentlyNavigating": "NĂșverandi staðsetning:",
|
||||||
"deleteMessageMultiple": "Ertu viss um að ĂŸĂș viljir eyða {count} skjölum?",
|
"deleteMessageMultiple": "Ertu viss um að ĂŸĂș viljir eyða {count} skjölum?",
|
||||||
"deleteMessageSingle": "Ertu viss um að ĂŸĂș viljir eyða ĂŸessu skjali/möppu?",
|
"deleteMessageSingle": "Ertu viss um að ĂŸĂș viljir eyða ĂŸessu skjali/möppu?",
|
||||||
"deleteMessageShare": "Are you sure you wish to delete this share({path})?",
|
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Eyða skjölum",
|
"deleteTitle": "Eyða skjölum",
|
||||||
"displayName": "Nafn: ",
|
"displayName": "Nafn: ",
|
||||||
"download": "SÊkja skjöl",
|
"download": "SÊkja skjöl",
|
||||||
@ -136,12 +120,8 @@
|
|||||||
"scheduleMessage": "Veldu dagsetningu og tĂma fyrir ĂĄĂŠtlaða ĂștgĂĄfu. ",
|
"scheduleMessage": "Veldu dagsetningu og tĂma fyrir ĂĄĂŠtlaða ĂștgĂĄfu. ",
|
||||||
"show": "SĂœna",
|
"show": "SĂœna",
|
||||||
"size": "StÊrð",
|
"size": "StÊrð",
|
||||||
"upload": "Upload",
|
"upload": "",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
"uploadMessage": ""
|
||||||
"uploadMessage": "Select an option to upload.",
|
|
||||||
"optionalPassword": "Optional password",
|
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Myndir",
|
"images": "Myndir",
|
||||||
@ -170,14 +150,6 @@
|
|||||||
"commandRunnerHelp": "HĂ©r geturðu sett inn skipanir sem eru keyrðar eftir ĂŸvĂ sem ĂŸĂș tilgreinir. Skrifaðu eina skipun Ă hverja lĂnu. Umhverfisbreyturnar {0} og {1} verða aðgengilegar ({0} miðast við {1}). Til að lesa meira og sjĂĄ lista yfir ĂŸĂŠr skipanir sem eru Ă boði, vinsamlegast lestu {2}. ",
|
"commandRunnerHelp": "HĂ©r geturðu sett inn skipanir sem eru keyrðar eftir ĂŸvĂ sem ĂŸĂș tilgreinir. Skrifaðu eina skipun Ă hverja lĂnu. Umhverfisbreyturnar {0} og {1} verða aðgengilegar ({0} miðast við {1}). Til að lesa meira og sjĂĄ lista yfir ĂŸĂŠr skipanir sem eru Ă boði, vinsamlegast lestu {2}. ",
|
||||||
"commandsUpdated": "Skipanastillingar vistaðar!",
|
"commandsUpdated": "Skipanastillingar vistaðar!",
|
||||||
"createUserDir": "Auto create user home dir while adding new user",
|
"createUserDir": "Auto create user home dir while adding new user",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
|
||||||
"customStylesheet": "Custom Stylesheet",
|
"customStylesheet": "Custom Stylesheet",
|
||||||
"defaultUserDescription": "Ăetta eru sjĂĄlfgefnar stillingar fyrir nĂœja notendur.",
|
"defaultUserDescription": "Ăetta eru sjĂĄlfgefnar stillingar fyrir nĂœja notendur.",
|
||||||
"disableExternalLinks": "SĂœna ytri-hlekki (fyrir utan leiðbeiningar)",
|
"disableExternalLinks": "SĂœna ytri-hlekki (fyrir utan leiðbeiningar)",
|
||||||
@ -188,7 +160,7 @@
|
|||||||
"executeOnShellDescription": "SjĂĄlfgefnar stillingar File Browser eru að keyra skipanir beint með ĂŸvĂ að sĂŠkja binaries. Ef ĂŸĂș villt keyra skipanir Ă skel (t.d. Ă Bash eða PowerShell), ĂŸĂĄ geturðu skilgreint ĂŸað hĂ©r með nauðsynlegum arguments og flags. Ef ĂŸetta er stillt, ĂŸĂĄ verður skipuninni bĂŠtt fyrir aftan sem argument. Ăetta gildir bÊði um skipanir notenda og event hooks.",
|
"executeOnShellDescription": "SjĂĄlfgefnar stillingar File Browser eru að keyra skipanir beint með ĂŸvĂ að sĂŠkja binaries. Ef ĂŸĂș villt keyra skipanir Ă skel (t.d. Ă Bash eða PowerShell), ĂŸĂĄ geturðu skilgreint ĂŸað hĂ©r með nauðsynlegum arguments og flags. Ef ĂŸetta er stillt, ĂŸĂĄ verður skipuninni bĂŠtt fyrir aftan sem argument. Ăetta gildir bÊði um skipanir notenda og event hooks.",
|
||||||
"globalRules": "Ăetta eru sjĂĄlfgegnar aðgangsreglur. ĂĂŠr gilda um alla notendur. ĂĂș getur tilgreint sĂ©rstakar reglur Ă stillingum fyrir hvern notenda til að Ăłgilda ĂŸessar reglur. ",
|
"globalRules": "Ăetta eru sjĂĄlfgegnar aðgangsreglur. ĂĂŠr gilda um alla notendur. ĂĂș getur tilgreint sĂ©rstakar reglur Ă stillingum fyrir hvern notenda til að Ăłgilda ĂŸessar reglur. ",
|
||||||
"globalSettings": "Global stillingar",
|
"globalSettings": "Global stillingar",
|
||||||
"hideDotfiles": "Hide dotfiles",
|
"hideDotfiles": "",
|
||||||
"insertPath": "Settu inn slóð",
|
"insertPath": "Settu inn slóð",
|
||||||
"insertRegex": "Setja inn reglulega segð",
|
"insertRegex": "Setja inn reglulega segð",
|
||||||
"instanceName": "Nafn tilviks",
|
"instanceName": "Nafn tilviks",
|
||||||
@ -199,7 +171,7 @@
|
|||||||
"newUser": "NĂœr notandi",
|
"newUser": "NĂœr notandi",
|
||||||
"password": "Lykilorð",
|
"password": "Lykilorð",
|
||||||
"passwordUpdated": "Lykilorð vistað!",
|
"passwordUpdated": "Lykilorð vistað!",
|
||||||
"path": "Path",
|
"path": "",
|
||||||
"perm": {
|
"perm": {
|
||||||
"create": "BĂșa til sköl og möppur",
|
"create": "BĂșa til sköl og möppur",
|
||||||
"delete": "Eyða skjölum og möppum",
|
"delete": "Eyða skjölum og möppum",
|
||||||
@ -217,17 +189,14 @@
|
|||||||
"rules": "Reglur",
|
"rules": "Reglur",
|
||||||
"rulesHelp": "HĂ©r getur ĂŸĂș skilgreint hvaða reglur gilda um notandann. Skjölin sem hann hefur ekki aðgang að eru Ăłaðgengileg og hann sĂ©r ĂŸau ekki. Stuðst er við reglulegar segðir og slóðir sem miðast við sĂœn notandans. ",
|
"rulesHelp": "HĂ©r getur ĂŸĂș skilgreint hvaða reglur gilda um notandann. Skjölin sem hann hefur ekki aðgang að eru Ăłaðgengileg og hann sĂ©r ĂŸau ekki. Stuðst er við reglulegar segðir og slóðir sem miðast við sĂœn notandans. ",
|
||||||
"scope": "SĂœn notandans",
|
"scope": "SĂœn notandans",
|
||||||
"setDateFormat": "Set exact date format",
|
|
||||||
"settingsUpdated": "Stillingar vistaðar!",
|
"settingsUpdated": "Stillingar vistaðar!",
|
||||||
"shareDuration": "Share Duration",
|
"shareDuration": "",
|
||||||
"shareManagement": "Share Management",
|
"shareManagement": "",
|
||||||
"shareDeleted": "Share deleted!",
|
"singleClick": "",
|
||||||
"singleClick": "Use single clicks to open files and directories",
|
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
"dark": "",
|
||||||
"dark": "Dark",
|
"light": "",
|
||||||
"light": "Light",
|
"title": ""
|
||||||
"title": "Theme"
|
|
||||||
},
|
},
|
||||||
"user": "Notandi",
|
"user": "Notandi",
|
||||||
"userCommands": "Skipanir",
|
"userCommands": "Skipanir",
|
||||||
|
@ -7,13 +7,9 @@
|
|||||||
"copy": "Copia",
|
"copy": "Copia",
|
||||||
"copyFile": "Copia file",
|
"copyFile": "Copia file",
|
||||||
"copyToClipboard": "Copia negli appunti",
|
"copyToClipboard": "Copia negli appunti",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "Crea",
|
"create": "Crea",
|
||||||
"delete": "Elimina",
|
"delete": "Elimina",
|
||||||
"download": "Scarica",
|
"download": "Scarica",
|
||||||
"file": "File",
|
|
||||||
"folder": "Folder",
|
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Nascondi dotfile",
|
"hideDotfiles": "Nascondi dotfile",
|
||||||
"info": "Informazioni",
|
"info": "Informazioni",
|
||||||
"more": "Altro",
|
"more": "Altro",
|
||||||
@ -24,7 +20,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "Ottieni link permanente",
|
"permalink": "Ottieni link permanente",
|
||||||
"previous": "Precedente",
|
"previous": "Precedente",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publica",
|
"publish": "Publica",
|
||||||
"rename": "Rinomina",
|
"rename": "Rinomina",
|
||||||
"replace": "Sostituisci",
|
"replace": "Sostituisci",
|
||||||
@ -36,27 +31,20 @@
|
|||||||
"selectMultiple": "Seleziona molteplici",
|
"selectMultiple": "Seleziona molteplici",
|
||||||
"share": "Condividi",
|
"share": "Condividi",
|
||||||
"shell": "Mostra/nascondi shell",
|
"shell": "Mostra/nascondi shell",
|
||||||
"submit": "Submit",
|
|
||||||
"switchView": "Cambia vista",
|
"switchView": "Cambia vista",
|
||||||
"toggleSidebar": "Mostra/nascondi la barra laterale",
|
"toggleSidebar": "Mostra/nascondi la barra laterale",
|
||||||
"update": "Aggiorna",
|
"update": "Aggiorna",
|
||||||
"upload": "Carica",
|
"upload": "Carica"
|
||||||
"openFile": "Open file",
|
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Scarica file",
|
"downloadFile": "Scarica file",
|
||||||
"downloadFolder": "Scarica cartella",
|
"downloadFolder": "Scarica cartella",
|
||||||
"downloadSelected": "Scarica selezionati"
|
"downloadSelected": "Scarica selezionati"
|
||||||
},
|
},
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "Non hai i permessi per accedere a questo file.",
|
"forbidden": "Non hai i permessi per accedere a questo file.",
|
||||||
"internal": "Qualcosa Ăš andato veramente male.",
|
"internal": "Qualcosa Ăš andato veramente male.",
|
||||||
"notFound": "Questo percorso non puĂČ essere raggiunto.",
|
"notFound": "Questo percorso non puĂČ essere raggiunto."
|
||||||
"connection": "The server can't be reached."
|
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "Contenuto",
|
"body": "Contenuto",
|
||||||
@ -73,8 +61,7 @@
|
|||||||
"size": "Dimensione",
|
"size": "Dimensione",
|
||||||
"sortByLastModified": "Ordina per ultima modifica",
|
"sortByLastModified": "Ordina per ultima modifica",
|
||||||
"sortByName": "Ordina per nome",
|
"sortByName": "Ordina per nome",
|
||||||
"sortBySize": "Ordina per dimensione",
|
"sortBySize": "Ordina per dimensione"
|
||||||
"noPreview": "Preview is not available for this file."
|
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"click": "seleziona un file o una cartella",
|
"click": "seleziona un file o una cartella",
|
||||||
@ -109,8 +96,6 @@
|
|||||||
"currentlyNavigating": "Attualmente navigando su:",
|
"currentlyNavigating": "Attualmente navigando su:",
|
||||||
"deleteMessageMultiple": "Sei sicuro di voler eliminare {count} file?",
|
"deleteMessageMultiple": "Sei sicuro di voler eliminare {count} file?",
|
||||||
"deleteMessageSingle": "Sei sicuro di voler eliminare questo file/cartella?",
|
"deleteMessageSingle": "Sei sicuro di voler eliminare questo file/cartella?",
|
||||||
"deleteMessageShare": "Are you sure you wish to delete this share({path})?",
|
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Elimina",
|
"deleteTitle": "Elimina",
|
||||||
"displayName": "Nome visualizzato:",
|
"displayName": "Nome visualizzato:",
|
||||||
"download": "Scarica files",
|
"download": "Scarica files",
|
||||||
@ -137,11 +122,7 @@
|
|||||||
"show": "Mostra",
|
"show": "Mostra",
|
||||||
"size": "Dimensione",
|
"size": "Dimensione",
|
||||||
"upload": "Carica",
|
"upload": "Carica",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
"uploadMessage": "Seleziona un'opzione per il caricamento."
|
||||||
"uploadMessage": "Seleziona un'opzione per il caricamento.",
|
|
||||||
"optionalPassword": "Optional password",
|
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Immagini",
|
"images": "Immagini",
|
||||||
@ -170,14 +151,6 @@
|
|||||||
"commandRunnerHelp": "Qui puoi impostare i comandi da eseguire negli eventi nominati. Ne devi scrivere uno per riga. Le variabili d'ambiente {0} e {1} sono disponibili, essendo {0} relativo a {1}. Per altre informazioni su questa funzionalitĂ e sulle variabili d'ambiente utilizzabili, leggi la {2}.",
|
"commandRunnerHelp": "Qui puoi impostare i comandi da eseguire negli eventi nominati. Ne devi scrivere uno per riga. Le variabili d'ambiente {0} e {1} sono disponibili, essendo {0} relativo a {1}. Per altre informazioni su questa funzionalitĂ e sulle variabili d'ambiente utilizzabili, leggi la {2}.",
|
||||||
"commandsUpdated": "Comandi aggiornati!",
|
"commandsUpdated": "Comandi aggiornati!",
|
||||||
"createUserDir": "Crea automaticamente la home directory dell'utente quando lo aggiungi",
|
"createUserDir": "Crea automaticamente la home directory dell'utente quando lo aggiungi",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
|
||||||
"customStylesheet": "Foglio di stile personalizzato",
|
"customStylesheet": "Foglio di stile personalizzato",
|
||||||
"defaultUserDescription": "Queste sono le impostazioni predefinite per i nuovi utenti.",
|
"defaultUserDescription": "Queste sono le impostazioni predefinite per i nuovi utenti.",
|
||||||
"disableExternalLinks": "Disabilita link esterni (tranne per la documentazione)",
|
"disableExternalLinks": "Disabilita link esterni (tranne per la documentazione)",
|
||||||
@ -217,14 +190,11 @@
|
|||||||
"rules": "Regole",
|
"rules": "Regole",
|
||||||
"rulesHelp": "Qui Ăš possibile definire una serie di regole e permessi per questo specifico utente. I file bloccati non appariranno negli elenchi e non saranno accessibili dagli utenti. all'utente. Sia regex che i percorsi relativi all'ambito di applicazione degli utenti sono supportati.\n",
|
"rulesHelp": "Qui Ăš possibile definire una serie di regole e permessi per questo specifico utente. I file bloccati non appariranno negli elenchi e non saranno accessibili dagli utenti. all'utente. Sia regex che i percorsi relativi all'ambito di applicazione degli utenti sono supportati.\n",
|
||||||
"scope": "Scope",
|
"scope": "Scope",
|
||||||
"setDateFormat": "Set exact date format",
|
|
||||||
"settingsUpdated": "Impostazioni aggiornate!",
|
"settingsUpdated": "Impostazioni aggiornate!",
|
||||||
"shareDuration": "Durata della condivisione",
|
"shareDuration": "Durata della condivisione",
|
||||||
"shareManagement": "Gestione delle condivisioni",
|
"shareManagement": "Gestione delle condivisioni",
|
||||||
"shareDeleted": "Share deleted!",
|
|
||||||
"singleClick": "Usa un singolo click per aprire file e cartelle",
|
"singleClick": "Usa un singolo click per aprire file e cartelle",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "Scuro",
|
"dark": "Scuro",
|
||||||
"light": "Chiaro",
|
"light": "Chiaro",
|
||||||
"title": "Tema"
|
"title": "Tema"
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"cancel": "ăăŁăłă»ă«",
|
"cancel": "ăăŁăłă»ă«",
|
||||||
"clear": "ăŻăȘăąăŒ",
|
"clear": "ăŻăȘăąăŒ",
|
||||||
"close": "éăă",
|
"close": "éăă",
|
||||||
"continue": "ç¶èĄ",
|
|
||||||
"copy": "ăłăăŒ",
|
"copy": "ăłăăŒ",
|
||||||
"copyFile": "ăăĄă€ă«ăźăłăăŒ",
|
"copyFile": "ăăĄă€ă«ăźăłăăŒ",
|
||||||
"copyToClipboard": "ć
±æăȘăłăŻăăłăăŒ",
|
"copyToClipboard": "ć
±æăȘăłăŻăăłăăŒ",
|
||||||
@ -13,7 +12,6 @@
|
|||||||
"download": "ăăŠăłăăŒă",
|
"download": "ăăŠăłăăŒă",
|
||||||
"file": "ăăĄă€ă«",
|
"file": "ăăĄă€ă«",
|
||||||
"folder": "ăă©ă«ăăŒ",
|
"folder": "ăă©ă«ăăŒ",
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "ăăăă§ć§ăŸăăăĄă€ă«ăèĄšç€șăăȘă",
|
"hideDotfiles": "ăăăă§ć§ăŸăăăĄă€ă«ăèĄšç€șăăȘă",
|
||||||
"info": "æ
ć ±",
|
"info": "æ
ć ±",
|
||||||
"more": "ăăă«",
|
"more": "ăăă«",
|
||||||
@ -24,7 +22,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "ăăŒăăȘăłăŻăććŸ",
|
"permalink": "ăăŒăăȘăłăŻăććŸ",
|
||||||
"previous": "ćăž",
|
"previous": "ćăž",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "ć
Źé",
|
"publish": "ć
Źé",
|
||||||
"rename": "ććăźć€æŽ",
|
"rename": "ććăźć€æŽ",
|
||||||
"replace": "çœźæăă",
|
"replace": "çœźæăă",
|
||||||
@ -42,7 +39,7 @@
|
|||||||
"update": "æŽæ°",
|
"update": "æŽæ°",
|
||||||
"upload": "ăąăăăăŒă",
|
"upload": "ăąăăăăŒă",
|
||||||
"openFile": "ăăĄă€ă«ăéă",
|
"openFile": "ăăĄă€ă«ăéă",
|
||||||
"discardChanges": "Discard"
|
"continue": "ç¶èĄ"
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "ăăĄă€ă«ăźăăŠăłăăŒă",
|
"downloadFile": "ăăĄă€ă«ăźăăŠăłăăŒă",
|
||||||
@ -60,6 +57,7 @@
|
|||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "æŹæ",
|
"body": "æŹæ",
|
||||||
|
"clear": "æ¶ć»",
|
||||||
"closePreview": "ăăŹăă„ăŒăéăă",
|
"closePreview": "ăăŹăă„ăŒăéăă",
|
||||||
"files": "ăăĄă€ă«",
|
"files": "ăăĄă€ă«",
|
||||||
"folders": "ăă©ă«ăăŒ",
|
"folders": "ăă©ă«ăăŒ",
|
||||||
@ -110,7 +108,6 @@
|
|||||||
"deleteMessageMultiple": "{count} ćăźăăĄă€ă«ăćé€ăăŠăăăăăă§ăăïŒ",
|
"deleteMessageMultiple": "{count} ćăźăăĄă€ă«ăćé€ăăŠăăăăăă§ăăïŒ",
|
||||||
"deleteMessageSingle": "ăăźăăĄă€ă«ïŒăă©ă«ăăŒăćé€ăăŠăăăăăă§ăăïŒ",
|
"deleteMessageSingle": "ăăźăăĄă€ă«ïŒăă©ă«ăăŒăćé€ăăŠăăăăăă§ăăïŒ",
|
||||||
"deleteMessageShare": "ć
±æäžăźăăĄă€ă«ïŒ{path}ïŒăćé€ăăŠăăăăăă§ăăïŒ",
|
"deleteMessageShare": "ć
±æäžăźăăĄă€ă«ïŒ{path}ïŒăćé€ăăŠăăăăăă§ăăïŒ",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "ăăĄă€ă«ăźćé€",
|
"deleteTitle": "ăăĄă€ă«ăźćé€",
|
||||||
"displayName": "èĄšç€șćïŒ",
|
"displayName": "èĄšç€șćïŒ",
|
||||||
"download": "ăăĄă€ă«ăźăăŠăłăăŒă",
|
"download": "ăăĄă€ă«ăźăăŠăłăăŒă",
|
||||||
@ -139,9 +136,7 @@
|
|||||||
"upload": "ăąăăăăŒă",
|
"upload": "ăąăăăăŒă",
|
||||||
"uploadFiles": "{files} ćăźăăĄă€ă«ăăąăăăăŒăăăŠăăŸăâŠ",
|
"uploadFiles": "{files} ćăźăăĄă€ă«ăăąăăăăŒăăăŠăăŸăâŠ",
|
||||||
"uploadMessage": "ăąăăăăŒăăăăȘăă·ă§ăłăéžæăăŠăă ăăă",
|
"uploadMessage": "ăąăăăăŒăăăăȘăă·ă§ăłăéžæăăŠăă ăăă",
|
||||||
"optionalPassword": "ăăčăŻăŒăïŒăȘăă·ă§ăłïŒ",
|
"optionalPassword": "ăăčăŻăŒăïŒăȘăă·ă§ăłïŒ"
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "ç»ć",
|
"images": "ç»ć",
|
||||||
@ -170,7 +165,6 @@
|
|||||||
"commandRunnerHelp": "ăăă§ăŻăæćźăăă€ăăłăăźéă«ćźèĄăăăăłăăłăăèšćźăăăăšăă§ăăŸăă1èĄă«1ă€ăă€æžăćż
èŠăăăăŸăăç°ćąć€æ°ăšă㊠{0} ă {1} ăäœżçšćŻèœă§ă{0} 㯠{1} ă«éąéŁăă〿°ăšăăŠæ±ăăăŸăăăăźæ©èœăšäœżçšćŻèœăȘç°ćąć€æ°ăźè©łçްă«ă€ăăŠăŻă{2}ăăèȘăżăă ăăă",
|
"commandRunnerHelp": "ăăă§ăŻăæćźăăă€ăăłăăźéă«ćźèĄăăăăłăăłăăèšćźăăăăšăă§ăăŸăă1èĄă«1ă€ăă€æžăćż
èŠăăăăŸăăç°ćąć€æ°ăšă㊠{0} ă {1} ăäœżçšćŻèœă§ă{0} 㯠{1} ă«éąéŁăă〿°ăšăăŠæ±ăăăŸăăăăźæ©èœăšäœżçšćŻèœăȘç°ćąć€æ°ăźè©łçްă«ă€ăăŠăŻă{2}ăăèȘăżăă ăăă",
|
||||||
"commandsUpdated": "ăłăăłăăæŽæ°ăăŸăăïŒ",
|
"commandsUpdated": "ăłăăłăăæŽæ°ăăŸăăïŒ",
|
||||||
"createUserDir": "æ°èŠăŠăŒă¶ăŒèżœć æă«ăŠăŒă¶ăŒăźăăŒă ăăŁăŹăŻăăȘăèȘćçæăă",
|
"createUserDir": "æ°èŠăŠăŒă¶ăŒèżœć æă«ăŠăŒă¶ăŒăźăăŒă ăăŁăŹăŻăăȘăèȘćçæăă",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "ăăŁăłăŻăăăăăĄă€ă«ăąăăăăŒă",
|
"tusUploads": "ăăŁăłăŻăăăăăĄă€ă«ăąăăăăŒă",
|
||||||
"tusUploadsHelp": "File Browser ăŻăăŁăłăŻăăăăăĄă€ă«ăąăăăăŒăăă”ăăŒăăăŠăăăäżĄé Œæ§ăźäœăăăăăŻăŒăŻäžă§ăăćčççă§äżĄé Œæ§ăźé«ăăćéćŻèœăȘăăŁăłăŻăăăăăĄă€ă«ăąăăăăŒăăäœæăăăăšăă§ăăŸăă",
|
"tusUploadsHelp": "File Browser ăŻăăŁăłăŻăăăăăĄă€ă«ăąăăăăŒăăă”ăăŒăăăŠăăăäżĄé Œæ§ăźäœăăăăăŻăŒăŻäžă§ăăćčççă§äżĄé Œæ§ăźé«ăăćéćŻèœăȘăăŁăłăŻăăăăăĄă€ă«ăąăăăăŒăăäœæăăăăšăă§ăăŸăă",
|
||||||
"tusUploadsChunkSize": "1ăăŁăłăŻăăăăźăȘăŻăšăčăăźæć€§ă”ă€ășăăă€ăæ°ăç€șăæŽæ°ăă10MBă1GBăȘă©ăźæććăć
„ćă§ăăŸăă",
|
"tusUploadsChunkSize": "1ăăŁăłăŻăăăăźăȘăŻăšăčăăźæć€§ă”ă€ășăăă€ăæ°ăç€șăæŽæ°ăă10MBă1GBăȘă©ăźæććăć
„ćă§ăăŸăă",
|
||||||
@ -224,7 +218,6 @@
|
|||||||
"shareDeleted": "ăăĄă€ă«ăźć
±æăćé€ăăŸăăïŒ",
|
"shareDeleted": "ăăĄă€ă«ăźć
±æăćé€ăăŸăăïŒ",
|
||||||
"singleClick": "ăăă«ăŻăȘăăŻăźä»Łăăă«ăŻăȘăăŻă§ăăĄă€ă«ăăă©ă«ăăŒăéă",
|
"singleClick": "ăăă«ăŻăȘăăŻăźä»Łăăă«ăŻăȘăăŻă§ăăĄă€ă«ăăă©ă«ăăŒăéă",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "ăăŒăŻ",
|
"dark": "ăăŒăŻ",
|
||||||
"light": "ă©ă€ă",
|
"light": "ă©ă€ă",
|
||||||
"title": "ăăŒă"
|
"title": "ăăŒă"
|
||||||
|
@ -3,46 +3,46 @@
|
|||||||
"cancel": "ì·šì",
|
"cancel": "ì·šì",
|
||||||
"clear": "ì§ì°êž°",
|
"clear": "ì§ì°êž°",
|
||||||
"close": "ë«êž°",
|
"close": "ë«êž°",
|
||||||
"continue": "Continue",
|
"continue": "êłì",
|
||||||
"copy": "ëł”ìŹ",
|
"copy": "ëł”ìŹ",
|
||||||
"copyFile": "íìŒ ëł”ìŹ",
|
"copyFile": "íìŒ ëł”ìŹ",
|
||||||
"copyToClipboard": "íŽëŠœëłŽë ëł”ìŹ",
|
"copyToClipboard": "íŽëŠœëłŽëì ëł”ìŹ",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
"copyDownloadLinkToClipboard": "ë€ìŽëĄë ë§íŹ íŽëŠœëłŽëì ëł”ìŹ",
|
||||||
"create": "ìì±",
|
"create": "ìì±",
|
||||||
"delete": "ìì ",
|
"delete": "ìì ",
|
||||||
"download": "ë€ìŽëĄë",
|
"download": "ë€ìŽëĄë",
|
||||||
"file": "File",
|
"file": "íìŒ",
|
||||||
"folder": "Folder",
|
"folder": "íŽë",
|
||||||
"fullScreen": "Toggle full screen",
|
"fullScreen": "ì ìČŽ í멎 ì í",
|
||||||
"hideDotfiles": "ìšêčíìŒ(dotfile)ì íì ìíš",
|
"hideDotfiles": "ìšêč íìŒ ìšêž°êž°",
|
||||||
"info": "ì 볎",
|
"info": "ì 볎",
|
||||||
"more": "ëëłŽêž°",
|
"more": "ë ëłŽêž°",
|
||||||
"move": "ìŽë",
|
"move": "ìŽë",
|
||||||
"moveFile": "íìŒ ìŽë",
|
"moveFile": "íìŒ ìŽë",
|
||||||
"new": "ì ê·",
|
"new": "ìëĄ ë§ë€êž°",
|
||||||
"next": "ë€ì",
|
"next": "ë€ì",
|
||||||
"ok": "íìž",
|
"ok": "íìž",
|
||||||
"permalink": "ë§íŹ ì»êž°",
|
"permalink": "ìê”Ź ë§íŹ ë°êž°",
|
||||||
"previous": "ìŽì ",
|
"previous": "ìŽì ",
|
||||||
"preview": "Preview",
|
"preview": "ëŻžëŠŹëłŽêž°",
|
||||||
"publish": "êČì",
|
"publish": "êČì",
|
||||||
"rename": "ìŽëŠ ë°êŸžêž°",
|
"rename": "ìŽëŠ ë°êŸžêž°",
|
||||||
"replace": "ëìČŽ",
|
"replace": "ë°êŸžêž°",
|
||||||
"reportIssue": "ìŽì 볎ëŽêž°",
|
"reportIssue": "돞ì ëłŽêł ",
|
||||||
"save": "ì ì„",
|
"save": "ì ì„",
|
||||||
"schedule": "ìŒì ",
|
"schedule": "ììœ",
|
||||||
"search": "êČì",
|
"search": "êČì",
|
||||||
"select": "ì í",
|
"select": "ì í",
|
||||||
"selectMultiple": "ë€ì€ ì í",
|
"selectMultiple": "ë€ì€ ì í",
|
||||||
"share": "êł”ì ",
|
"share": "êł”ì ",
|
||||||
"shell": "ì ì í",
|
"shell": "ì
ž ì í",
|
||||||
"submit": "Submit",
|
"submit": "ì ì¶",
|
||||||
"switchView": "ëłŽêž° ì í",
|
"switchView": "ëłŽêž° ì í",
|
||||||
"toggleSidebar": "ìŹìŽëë° ì í",
|
"toggleSidebar": "ìŹìŽëë° ì í",
|
||||||
"update": "ì
ë°ìŽíž",
|
"update": "ì
ë°ìŽíž",
|
||||||
"upload": "ì
ëĄë",
|
"upload": "ì
ëĄë",
|
||||||
"openFile": "Open file",
|
"openFile": "íìŒ ìŽêž°",
|
||||||
"discardChanges": "Discard"
|
"discardChanges": "ëłêČœ ìŹí ì·šì"
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "íìŒ ë€ìŽëĄë",
|
"downloadFile": "íìŒ ë€ìŽëĄë",
|
||||||
@ -50,13 +50,13 @@
|
|||||||
"downloadSelected": "ì í íëȘ© ë€ìŽëĄë"
|
"downloadSelected": "ì í íëȘ© ë€ìŽëĄë"
|
||||||
},
|
},
|
||||||
"upload": {
|
"upload": {
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
"abortUpload": "ì
ëĄë넌 ì€ëšíìêČ ì”ëêč?"
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "ì ê·Œ ê¶íìŽ ìì”ëë€.",
|
"forbidden": "ìŽêłłì ì ê·Œí ê¶íìŽ ìì”ëë€.",
|
||||||
"internal": "ì€ë„ê° ë°ìíìì”ëë€.",
|
"internal": "돞ì ê° ë°ìíì”ëë€.",
|
||||||
"notFound": "íŽëč êČœëĄë„Œ ì°Ÿì ì ìì”ëë€.",
|
"notFound": "ìŽ ììčì ì ê·Œí ì ìì”ëë€.",
|
||||||
"connection": "The server can't be reached."
|
"connection": "ìëČì ì°êȰí ì ìì”ëë€."
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "볞돞",
|
"body": "볞돞",
|
||||||
@ -64,193 +64,192 @@
|
|||||||
"files": "íìŒ",
|
"files": "íìŒ",
|
||||||
"folders": "íŽë",
|
"folders": "íŽë",
|
||||||
"home": "í",
|
"home": "í",
|
||||||
"lastModified": "ì”ìą
ìì ",
|
"lastModified": "ë§ì§ë§ ìì ìŒ",
|
||||||
"loading": "ëĄë©ì€...",
|
"loading": "ëĄë© ì€...",
|
||||||
"lonely": "íŽëê° ëčìŽ ìì”ëë€...",
|
"lonely": "ìŹêž°ì ì돎êČë ìë€ì...",
|
||||||
"metadata": "ë©íë°ìŽí°",
|
"metadata": "ë©íë°ìŽí°",
|
||||||
"multipleSelectionEnabled": "ë€ì€ ì í ìŒì§",
|
"multipleSelectionEnabled": "ë€ì€ ì í íì±íëš",
|
||||||
"name": "ìŽëŠ",
|
"name": "ìŽëŠ",
|
||||||
"size": "íŹêž°",
|
"size": "íŹêž°",
|
||||||
"sortByLastModified": "ìì ìê°ì ì ë Ź",
|
"sortByLastModified": "ë§ì§ë§ ìì ìŒ ì ì ë Ź",
|
||||||
"sortByName": "ìŽëŠì",
|
"sortByName": "ìŽëŠ ì ì ë Ź",
|
||||||
"sortBySize": "íŹêž°ì",
|
"sortBySize": "íŹêž° ì ì ë Ź",
|
||||||
"noPreview": "Preview is not available for this file."
|
"noPreview": "ìŽ íìŒì ëŻžëŠŹëłŽêž°ë„Œ ìŹì©í ì ìì”ëë€."
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"click": "íìŒìŽë ëë í ëŠŹë„Œ ì ííŽìŁŒìžì.",
|
"click": "íìŒ ëë ëë í°ëŠŹ ì í",
|
||||||
"ctrl": {
|
"ctrl": {
|
||||||
"click": "ìŹëŹ ê°ì íìŒìŽë ëë í ëŠŹë„Œ ì ííŽìŁŒìžì.",
|
"click": "ìŹëŹ íìŒ ëë ëë í°ëŠŹ ì í",
|
||||||
"f": "êČìì°œ ìŽêž°",
|
"f": "êČì ìŽêž°",
|
||||||
"s": "íìŒ ëë ëë í 늏 ë€ìŽëĄë"
|
"s": "íìŒ ì ì„ ëë íìŹ ëë í°ëŠŹ ë€ìŽëĄë"
|
||||||
},
|
},
|
||||||
"del": "ì íë íìŒ ìì ",
|
"del": "ì íí íëȘ© ìì ",
|
||||||
"doubleClick": "íìŒ ëë ëë í 늏 ìŽêž°",
|
"doubleClick": "íìŒ ëë ëë í°ëŠŹ ìŽêž°",
|
||||||
"esc": "ì í ì·šì/í륏ííž ë«êž°",
|
"esc": "ì í ì·šì ë°/ëë í륏ííž ë«êž°",
|
||||||
"f1": "ì 볎",
|
"f1": "ìŽ ì 볎",
|
||||||
"f2": "íìŒ ìŽëŠ ëłêČœ",
|
"f2": "íìŒ ìŽëŠ ë°êŸžêž°",
|
||||||
"help": "ëìë§"
|
"help": "ëìë§"
|
||||||
},
|
},
|
||||||
"login": {
|
"login": {
|
||||||
"createAnAccount": "êłì ìì±",
|
"createAnAccount": "êłì ë§ë€êž°",
|
||||||
"loginInstead": "ìŽëŻž êłì ìŽ ìì”ëë€",
|
"loginInstead": "ìŽëŻž êłì ìŽ ìì”ëë€",
|
||||||
"password": "ëčë°ëČíž",
|
"password": "ëčë°ëČíž",
|
||||||
"passwordConfirm": "ëčë°ëČíž íìž",
|
"passwordConfirm": "ëčë°ëČíž íìž",
|
||||||
"passwordsDontMatch": "ëčë°ëČížê° ìŒìčíì§ ìì”ëë€",
|
"passwordsDontMatch": "ëčë°ëČížê° ìŒìčíì§ ìì”ëë€",
|
||||||
"signup": "ê°ì
íêž°",
|
"signup": "ê°ì
",
|
||||||
"submit": "ëĄê·žìž",
|
"submit": "ëĄê·žìž",
|
||||||
"username": "ìŹì©ì ìŽëŠ",
|
"username": "ìŹì©ì ìŽëŠ",
|
||||||
"usernameTaken": "ìŹì©ì ìŽëŠìŽ ìĄŽìŹí©ëë€",
|
"usernameTaken": "ìŽëŻž ìŹì© ì€ìž ìŹì©ì ìŽëŠì
ëë€",
|
||||||
"wrongCredentials": "ìŹì©ì ìŽëŠ ëë ëčë°ëČížë„Œ íìžíììì€"
|
"wrongCredentials": "ìëȘ»ë ìêČ© ìŠëȘ
"
|
||||||
},
|
},
|
||||||
"permanent": "ìê”Ź",
|
"permanent": "ìê”Ź",
|
||||||
"prompts": {
|
"prompts": {
|
||||||
"copy": "ëł”ìŹ",
|
"copy": "ëł”ìŹ",
|
||||||
"copyMessage": "ëł”ìŹí ëë í 늏:",
|
"copyMessage": "íìŒì ëł”ìŹí ììč넌 ì ííìžì:",
|
||||||
"currentlyNavigating": "íìŹ ììč:",
|
"currentlyNavigating": "íìŹ íì ì€:",
|
||||||
"deleteMessageMultiple": "{count} ê°ì íìŒì ìì íìêČ ì”ëêč?",
|
"deleteMessageMultiple": "{count}ê°ì íìŒì ìì íìêČ ì”ëêč?",
|
||||||
"deleteMessageSingle": "íìŒ íčì ëë í ëŠŹë„Œ ìì íìêČ ì”ëêč?",
|
"deleteMessageSingle": "ìŽ íìŒ/íŽë넌 ìì íìêČ ì”ëêč?",
|
||||||
"deleteMessageShare": "Are you sure you wish to delete this share({path})?",
|
"deleteMessageShare": "ìŽ êł”ì ({path})넌 ìì íìêČ ì”ëêč?",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
"deleteUser": "ìŽ ìŹì©ì넌 ìì íìêČ ì”ëêč?",
|
||||||
"deleteTitle": "íìŒ ìì ",
|
"deleteTitle": "íìŒ ìì ",
|
||||||
"displayName": "êČì ìŽëŠ:",
|
"displayName": "íì ìŽëŠ:",
|
||||||
"download": "íìŒ ë€ìŽëĄë",
|
"download": "íìŒ ë€ìŽëĄë",
|
||||||
"downloadMessage": "ë€ìŽëĄë íŹë§· ì€ì .",
|
"downloadMessage": "ë€ìŽëĄëí íìì ì ííìžì.",
|
||||||
"error": "ìëŹ ë°ì!",
|
"error": "돞ì ê° ë°ìíì”ëë€",
|
||||||
"fileInfo": "íìŒ ì 볎",
|
"fileInfo": "íìŒ ì 볎",
|
||||||
"filesSelected": "{count} ê°ì íìŒìŽ ì íëìì”ëë€.",
|
"filesSelected": "{count}ê°ì íìŒ ì íëš.",
|
||||||
"lastModified": "ì”ìą
ìì ",
|
"lastModified": "ë§ì§ë§ ìì ìŒ",
|
||||||
"move": "ìŽë",
|
"move": "ìŽë",
|
||||||
"moveMessage": "ìŽëí íìŒ ëë ëë í ëŠŹë„Œ ì ííìžì:",
|
"moveMessage": "íìŒ/íŽëì ì ììč넌 ì ííìžì:",
|
||||||
"newArchetype": "ìíì ì ì§íë íŹì€ížë„Œ ìì±í©ëë€. íìŒì 컚í
íž íŽëì ìì±ë©ëë€.",
|
"newArchetype": "ìí€íì
ì êž°ë°ìŒëĄ ì êČìëŹŒì ë§ëëë€. íìŒì content íŽëì ìì±ë©ëë€.",
|
||||||
"newDir": "ì ëë í 늏",
|
"newDir": "ì ëë í°ëŠŹ",
|
||||||
"newDirMessage": "ì ëë í 늏 ìŽëŠì ì
ë „íŽìŁŒìžì.",
|
"newDirMessage": "ì ëë í°ëŠŹ ìŽëŠì ì§ì íìžì.",
|
||||||
"newFile": "ì íìŒ",
|
"newFile": "ì íìŒ",
|
||||||
"newFileMessage": "ì íìŒ ìŽëŠì ì
ë „íŽìŁŒìžì.",
|
"newFileMessage": "ì íìŒ ìŽëŠì ì§ì íìžì.",
|
||||||
"numberDirs": "ëë í 늏 ì",
|
"numberDirs": "ëë í°ëŠŹ ì",
|
||||||
"numberFiles": "íìŒ ì",
|
"numberFiles": "íìŒ ì",
|
||||||
"rename": "ìŽëŠ ëłêČœ",
|
"rename": "ìŽëŠ ë°êŸžêž°",
|
||||||
"renameMessage": "ìëĄìŽ ìŽëŠì ì
ë „íìžì.",
|
"renameMessage": "ì ìŽëŠì ì
ë „íìžì:",
|
||||||
"replace": "ëìČŽíêž°",
|
"replace": "ë°êŸžêž°",
|
||||||
"replaceMessage": "ëìŒí íìŒ ìŽëŠìŽ ìĄŽìŹí©ëë€. íìŹ íìŒì ëźìŽìžêčì?\n",
|
"replaceMessage": "ì
ëĄëíë €ë íìŒ ì€ ìŽëŠìŽ ì¶©ëíë íìŒìŽ ìì”ëë€. ìŽ íìŒì 걎ëë°êł ì
ëĄë넌 êłìíê±°ë êž°ìĄŽ íìŒì ë°êŸžìêČ ì”ëêč?\n",
|
||||||
"schedule": "ìŒì ",
|
"schedule": "ììœ",
|
||||||
"scheduleMessage": "ìŽ êžì êł”ê°í ìê°ì ìë €ìŁŒìžì.",
|
"scheduleMessage": "ìŽ êČìëŹŒì êČì넌 ììœí ë ì§ì ìê°ì ì ííìžì.",
|
||||||
"show": "ëłŽêž°",
|
"show": "íì",
|
||||||
"size": "íŹêž°",
|
"size": "íŹêž°",
|
||||||
"upload": "ì
ëĄë",
|
"upload": "ì
ëĄë",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
"uploadFiles": "{files}ê°ì íìŒ ì
ëĄë ì€...",
|
||||||
"uploadMessage": "ì
ëĄë ì”ì
ì ì ííìžì.",
|
"uploadMessage": "ì
ëĄëí ì”ì
ì ì ííìžì.",
|
||||||
"optionalPassword": "Optional password",
|
"optionalPassword": "ì íì ëčë°ëČíž",
|
||||||
"resolution": "Resolution",
|
"resolution": "íŽìë",
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
"discardEditorChanges": "ëłêČœ ìŹíì ì·šìíìêČ ì”ëêč?"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "ìŽëŻžì§",
|
"images": "ìŽëŻžì§",
|
||||||
"music": "ìì
",
|
"music": "ìì
",
|
||||||
"pdf": "PDF",
|
"pdf": "PDF",
|
||||||
"pressToSearch": "êČìíë €ë©Ž ìí°ë„Œ ì
ë „íìžì",
|
"pressToSearch": "Enter í€ë„Œ ëëŹ êČì...",
|
||||||
"search": "êČì...",
|
"search": "êČì...",
|
||||||
"typeToSearch": "êČììŽ ì
ë „...",
|
"typeToSearch": "êČììŽ ì
ë „...",
|
||||||
"types": "Types",
|
"types": "ì í",
|
||||||
"video": "ëčëì€"
|
"video": "ëčëì€"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"admin": "êŽëŠŹì",
|
"admin": "êŽëŠŹì",
|
||||||
"administrator": "êŽëŠŹì",
|
"administrator": "êŽëŠŹì",
|
||||||
"allowCommands": "ëȘ
ë č ì€í",
|
"allowCommands": "ëȘ
ë č ì€í íì©",
|
||||||
"allowEdit": "íìŒ/ëë í 늏ì ìì /ëłêČœ/ìì íì©",
|
"allowEdit": "íìŒ ëë ëë í°ëŠŹ ížì§, ìŽëŠ ë°êŸžêž°, ìì íì©",
|
||||||
"allowNew": "íìŒ/ëë í 늏 ìì± íì©",
|
"allowNew": "ì íìŒ ë° ëë í°ëŠŹ ìì± íì©",
|
||||||
"allowPublish": "ì íŹì€íž/íìŽì§ ìì± íì©",
|
"allowPublish": "ì êČìëŹŒ ë° íìŽì§ êČì íì©",
|
||||||
"allowSignup": "ìŹì©ì ê°ì
íì©",
|
"allowSignup": "ìŹì©ì ê°ì
íì©",
|
||||||
"avoidChanges": "(ìì íì§ ììŒë©Ž ëčìëìžì)",
|
"avoidChanges": "(ëłêČœíì§ ììŒë €ë©Ž ëčìëìžì)",
|
||||||
"branding": "ëžëë©",
|
"branding": "ëžëë©",
|
||||||
"brandingDirectoryPath": "ëžëë ëë í 늏 êČœëĄ",
|
"brandingDirectoryPath": "ëžëë© ëë í°ëŠŹ êČœëĄ",
|
||||||
"brandingHelp": "File Browser ìžì€íŽì€ë ìŽëŠ, ëĄêł , ì€íìŒ ë±ì ëłêČœí ì ìì”ëë€. ììží ìŹíì ìŹêž°{0}ìì íìžíìžì.",
|
"brandingHelp": "File Browser ìžì€íŽì€ì ìŽëŠ ëłêČœ, ëĄêł ê”ìČŽ, ìŹì©ì ì ì ì€íìŒ ì¶ê°, GitHub ìžë¶ ë§íŹ ëčíì±í넌 í”íŽ ëȘšìêłŒ ëëì ìŹì©ì ì§ì í ì ìì”ëë€.\nìŹì©ì ì ì ëžëë©ì ëí ììží ëŽì©ì {0}ì(넌) íìžíìžì.",
|
||||||
"changePassword": "ëčë°ëČíž ëłêČœ",
|
"changePassword": "ëčë°ëČíž ëłêČœ",
|
||||||
"commandRunner": "ëȘ
ë č ì€íêž°",
|
"commandRunner": "ëȘ
ë čìŽ ì€íêž°",
|
||||||
"commandRunnerHelp": "ìŽëČ€ížì íŽëčíë ëȘ
ë čì ì€ì íìžì. ì€ëč 1ê°ì ëȘ
ë čì ì ìŒìžì. íêČœ ëłì{0} ì {1}ìŽ ìŹì©ê°ë„íë©°, {0} ì {1}ì ìë êČœëĄ ì
ëë€. ììží ìŹíì {2} 넌 ì°žìĄ°íìžì.",
|
"commandRunnerHelp": "ìŹêž°ì ì§ì ë ìŽëČ€ížìì ì€íë ëȘ
ë čìŽë„Œ ì€ì í ì ìì”ëë€. í ì€ì íëì© ìì±íŽìŒ í©ëë€. íêČœ ëłì {0} ë° {1}ì(넌) ìŹì©í ì ììŒë©°, {0}ì(ë) {1}ì ìëì ì
ëë€. ìŽ êž°ë„êłŒ ìŹì© ê°ë„í íêČœ ëłìì ëí ììží ëŽì©ì {2}ì(넌) ìœìŽëłŽìžì.",
|
||||||
"commandsUpdated": "ëȘ
ë č ìì ëš!",
|
"commandsUpdated": "ëȘ
ë čìŽê° ì
ë°ìŽížëìì”ëë€!",
|
||||||
"createUserDir": "Auto create user home dir while adding new user",
|
"createUserDir": "ì ìŹì©ì ì¶ê° ì ìŹì©ì í ëë í°ëŠŹ ìë ìì±",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
"tusUploads": "ìČíŹ ì
ëĄë",
|
||||||
"tusUploads": "Chunked Uploads",
|
"tusUploadsHelp": "File Browserë ìČíŹ íìŒ ì
ëĄë넌 ì§ìíìŹ ë¶ìì í ë€ížìíŹììë íšìšì ìŽêł ìì ì ìŽë©° ìŹê° ê°ë„íêł ë¶í ë íìŒ ì
ëĄë넌 ê°ë„íêČ í©ëë€.",
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
"tusUploadsChunkSize": "ììČì ì”ë íŹêž°ë„Œ ëíë
ëë€ (ë ìì ì
ëĄëìë ì§ì ì
ëĄëê° ìŹì©ë©ëë€). ë°ìŽíž íŹêž°ë„Œ ëíëŽë ìŒë° ì ì ëë 10MB, 1GB ë±êłŒ ê°ì 돞ììŽì ì
ë „í ì ìì”ëë€.",
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
"tusUploadsRetryCount": "ìČíŹ ì
ëĄë ì€íš ì ìŹìë íì.",
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
"userHomeBasePath": "ìŹì©ì í ëë í°ëŠŹì êž°ëłž êČœëĄ",
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
"userScopeGenerationPlaceholder": "ëČìê° ìëìŒëĄ ìì±ë©ëë€",
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
"createUserHomeDirectory": "ìŹì©ì í ëë í°ëŠŹ ìì±",
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
"customStylesheet": "ìŹì©ì ì ì ì€íìŒìíž",
|
||||||
"customStylesheet": "컀ì€í
ì€íìŒìíž",
|
"defaultUserDescription": "ì ìŹì©ìì êž°ëłž ì€ì ì
ëë€.",
|
||||||
"defaultUserDescription": "ìë ìŹíì ì ê· ìŹì©ìë€ì ëí êž°ëłž ì€ì ì
ëë€.",
|
"disableExternalLinks": "ìžë¶ ë§íŹ ëčíì±í (돞ì ì ìž)",
|
||||||
"disableExternalLinks": "ìžë¶ ë§íŹ ê°ì¶êž°",
|
"disableUsedDiskPercentage": "ìŹì©ë ëì€íŹ ëčìš ê·žëí ëčíì±í",
|
||||||
"disableUsedDiskPercentage": "Disable used disk percentage graph",
|
|
||||||
"documentation": "돞ì",
|
"documentation": "돞ì",
|
||||||
"examples": "ì",
|
"examples": "ìì",
|
||||||
"executeOnShell": "ììì ì€í",
|
"executeOnShell": "ì
žìì ì€í",
|
||||||
"executeOnShellDescription": "êž°ëłžì ìŒëĄ File Browser ë ë°ìŽëëŠŹë„Œ ëȘ
ë čìŽëĄ ížì¶íìŹ ì€íí©ëë€. ìì í”íŽ ì€ííꞰ넌 ìíë€ë©Ž, Bash ëë PowerShell ì íìí ìžìì íë귞넌 ì€ì íìžì. ìŹì©ì ëȘ
ë čìŽì ìŽëČ€íž í
ì ëȘšë ì ì©ë©ëë€.",
|
"executeOnShellDescription": "êž°ëłžì ìŒëĄ File Browserë ë°ìŽëëŠŹë„Œ ì§ì ížì¶íìŹ ëȘ
ë čì ì€íí©ëë€. ëì ì
ž(ì: Bash ëë PowerShell)ìì ì€ííë €ë©Ž íìí ìžì ë° íëê·žì íšê» ìŹêž°ì ì ìí ì ìì”ëë€. ì€ì ë êČœì° ì€ííë ëȘ
ë čìŽ ìžìëĄ ì¶ê°ë©ëë€. ìŽë ìŹì©ì ëȘ
ë čêłŒ ìŽëČ€íž ííŹ ëȘšëì ì ì©ë©ëë€.",
|
||||||
"globalRules": "ê·ìčì ëí ì ìì€ì ìŒëĄ ëȘšë ìŹì©ììêČ ì ì©ë©ëë€. ì§ì ë ê·ìčì ìŹì©ì ì€ì ì ëźìŽì°êž° í©ëë€.",
|
"globalRules": "ìŽêČì ì ì íì© ë° ì°šëš ê·ìč ìžížì
ëë€. ëȘšë ìŹì©ììêČ ì ì©ë©ëë€. ê° ìŹì©ì ì€ì ìì íčì ê·ìčì ì ìíìŹ ìŽ ê·ìčì ìŹì ìí ì ìì”ëë€.",
|
||||||
"globalSettings": "ì ì ì€ì ",
|
"globalSettings": "ì ì ì€ì ",
|
||||||
"hideDotfiles": "ìšêčíìŒ(dotfile)ì íìíì§ ìì”ëë€.",
|
"hideDotfiles": "ìšêč íìŒ ìšêž°êž°",
|
||||||
"insertPath": "êČœëĄ ì
ë „",
|
"insertPath": "êČœëĄ ìœì
",
|
||||||
"insertRegex": "ì ê·ì ì
ë „",
|
"insertRegex": "ì ê·ì íí ìœì
",
|
||||||
"instanceName": "ìžì€íŽì€ ìŽëŠ",
|
"instanceName": "ìžì€íŽì€ ìŽëŠ",
|
||||||
"language": "ìžìŽ",
|
"language": "ìžìŽ",
|
||||||
"lockPassword": "ìŹì©ìì ìí ëčë°ëČíž ëłêČœì íì©íì§ ìì",
|
"lockPassword": "ìŹì©ìê° ëčë°ëČížë„Œ ëłêČœíì§ ëȘ»íëëĄ ì êž",
|
||||||
"newPassword": "ìëĄìŽ ëčë°ëČíž",
|
"newPassword": "ì ëčë°ëČíž",
|
||||||
"newPasswordConfirm": "ìëĄìŽ ëčë°ëČíž íìž",
|
"newPasswordConfirm": "ì ëčë°ëČíž íìž",
|
||||||
"newUser": "ìëĄìŽ ìŹì©ì",
|
"newUser": "ì ìŹì©ì",
|
||||||
"password": "ëčë°ëČíž",
|
"password": "ëčë°ëČíž",
|
||||||
"passwordUpdated": "ëčë°ëČíž ìì ìëŁ!",
|
"passwordUpdated": "ëčë°ëČížê° ì
ë°ìŽížëìì”ëë€!",
|
||||||
"path": "êČœëĄ",
|
"path": "êČœëĄ",
|
||||||
"perm": {
|
"perm": {
|
||||||
"create": "íìŒìŽë ëë í 늏 ìì±íêž°",
|
"create": "íìŒ ë° ëë í°ëŠŹ ìì±",
|
||||||
"delete": "íìŒìŽë ëë í 늏 ìì íêž°",
|
"delete": "íìŒ ë° ëë í°ëŠŹ ìì ",
|
||||||
"download": "ë€ìŽëĄë",
|
"download": "ë€ìŽëĄë",
|
||||||
"execute": "ëȘ
ë č ì€í",
|
"execute": "ëȘ
ë č ì€í",
|
||||||
"modify": "íìŒ ížì§",
|
"modify": "íìŒ ížì§",
|
||||||
"rename": "íìŒ ìŽëŠ ëłêČœ ëë ëë í 늏 ìŽë",
|
"rename": "íìŒ ë° ëë í°ëŠŹ ìŽëŠ ë°êŸžêž° ëë ìŽë",
|
||||||
"share": "íìŒ êł”ì íêž°"
|
"share": "íìŒ êł”ì "
|
||||||
},
|
},
|
||||||
"permissions": "ê¶í",
|
"permissions": "ê¶í",
|
||||||
"permissionsHelp": "ìŹì©ì넌 êŽëŠŹìëĄ ë§ë€ê±°ë ê¶íì ë¶ìŹí ì ìì”ëë€. êŽëŠŹì넌 ì íí멎, ëȘšë ì”ì
ìŽ ìëìŒëĄ ì íë©ëë€. ìŹì©ì êŽëŠŹë íìŹ êŽëŠŹìë§ í ì ìì”ëë€.\n",
|
"permissionsHelp": "ìŹì©ì넌 êŽëŠŹìëĄ ì€ì íê±°ë ê°ëłì ìŒëĄ ê¶íì ì íí ì ìì”ëë€. \"êŽëŠŹì\"넌 ì íí멎 ë€ë„ž ëȘšë ì”ì
ìŽ ìëìŒëĄ ì íë©ëë€. ìŹì©ì êŽëŠŹë êŽëŠŹìì ê¶íìŒëĄ ì ì§ë©ëë€.\n",
|
||||||
"profileSettings": "íëĄí ì€ì ",
|
"profileSettings": "íëĄí ì€ì ",
|
||||||
"ruleExample1": "ì (.)ìŒëĄ ììíë ëȘšë íìŒì ì ê·Œì ë°©ì§í©ëë€.(ì .git, .gitignore)\n",
|
"ruleExample1": "ëȘšë íŽëìì ëȘšë ìšêč íìŒ(ì: .git, .gitignore)ì ëí ìĄìžì€ë„Œ ë°©ì§í©ëë€.\n",
|
||||||
"ruleExample2": "CaddyfileíìŒì ì ê·Œì ë°©ì§í©ëë€.",
|
"ruleExample2": "ëČìì 룚ížì ìë CaddyfileìŽëŒë íìŒì ëí ìĄìžì€ë„Œ ì°šëší©ëë€.",
|
||||||
"rules": "룰",
|
"rules": "ê·ìč",
|
||||||
"rulesHelp": "ìŹì©ìëłëĄ ê·ìčì íì©/ë°©ì§ë„Œ ì§ì í ì ìì”ëë€. ë°©ì§ë íìŒì 볎ìŽì§ ìêł ìŹì©ìë€ì ì ê·Œí ì ìì”ëë€. ìŹì©ìì ì ê·Œ íì© ëČìì êŽë šíŽ ì ê·ííì(regex)êłŒ êČœëĄë„Œ ì§ìí©ëë€.\n",
|
"rulesHelp": "ìŹêž°ì ìŽ íčì ìŹì©ìì ëí íì© ë° ì°šëš ê·ìč ìžížë„Œ ì ìí ì ìì”ëë€. ì°šëšë íìŒì ëȘ©ëĄì íìëì§ ììŒë©° ìŹì©ìê° ìĄìžì€í ì ìì”ëë€. ìŹì©ìì ëČìì ìëì ìž ì ê·ì ë° êČœëĄë„Œ ì§ìí©ëë€.\n",
|
||||||
"scope": "ëČì",
|
"scope": "ëČì",
|
||||||
"setDateFormat": "Set exact date format",
|
"setDateFormat": "ì íí ë ì§ íì ì€ì ",
|
||||||
"settingsUpdated": "ì€ì ìì ëš!",
|
"settingsUpdated": "ì€ì ìŽ ì
ë°ìŽížëìì”ëë€!",
|
||||||
"shareDuration": "êł”ì êž°ê°",
|
"shareDuration": "êł”ì êž°ê°",
|
||||||
"shareManagement": "êł”ì ëŽì êŽëŠŹ",
|
"shareManagement": "êł”ì êŽëŠŹ",
|
||||||
"shareDeleted": "Share deleted!",
|
"shareDeleted": "êł”ì ê° ìì ëìì”ëë€!",
|
||||||
"singleClick": "íëČ íŽëŠìŒëĄ íìŒêłŒ íŽë넌 ìŽëëĄ í©ëë€.",
|
"singleClick": "íìŒ ë° ëë í°ëŠŹë„Œ ìŽ ë í ëČ íŽëŠ ìŹì©",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
"default": "ìì€í
êž°ëłžê°",
|
||||||
"dark": "ë€íŹí
ë§",
|
"dark": "ìŽëĄêČ",
|
||||||
"light": "ëŒìŽíží
ë§",
|
"light": "ë°êČ",
|
||||||
"title": "í
ë§"
|
"title": "í
ë§"
|
||||||
},
|
},
|
||||||
"user": "ìŹì©ì",
|
"user": "ìŹì©ì",
|
||||||
"userCommands": "ëȘ
ë čìŽ",
|
"userCommands": "ëȘ
ë čìŽ",
|
||||||
"userCommandsHelp": "ìŹì©ìêČ íì©í ëȘ
ë čìŽë„Œ êł”ë°±ìŒëĄ ê”Źë¶íìŹ ì
ë „íìžì. ì:\n",
|
"userCommandsHelp": "ìŽ ìŹì©ìê° ìŹì©í ì ìë ëȘ
ë čìŽ ëȘ©ëĄ (êł”ë°±ìŒëĄ ê”Źë¶). ì:\n",
|
||||||
"userCreated": "ìŹì©ì ìì±ëš!",
|
"userCreated": "ìŹì©ìê° ìì±ëìì”ëë€!",
|
||||||
"userDefaults": "ìŹì©ì êž°ëłž ì€ì ",
|
"userDefaults": "ìŹì©ì êž°ëłž ì€ì ",
|
||||||
"userDeleted": "ìŹì©ì ìì ëš!",
|
"userDeleted": "ìŹì©ìê° ìì ëìì”ëë€!",
|
||||||
"userManagement": "ìŹì©ì êŽëŠŹ",
|
"userManagement": "ìŹì©ì êŽëŠŹ",
|
||||||
"userUpdated": "ìŹì©ì ìì ëš!",
|
"userUpdated": "ìŹì©ìê° ì
ë°ìŽížëìì”ëë€!",
|
||||||
"username": "ìŹì©ì ìŽëŠ",
|
"username": "ìŹì©ì ìŽëŠ",
|
||||||
"users": "ìŹì©ì"
|
"users": "ìŹì©ì"
|
||||||
},
|
},
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"help": "ëìë§",
|
"help": "ëìë§",
|
||||||
"hugoNew": "Hugo New",
|
"hugoNew": "Hugo ìëĄ ë§ë€êž°",
|
||||||
"login": "ëĄê·žìž",
|
"login": "ëĄê·žìž",
|
||||||
"logout": "ëĄê·žìì",
|
"logout": "ëĄê·žìì",
|
||||||
"myFiles": "ëŽ íìŒ",
|
"myFiles": "ëŽ íìŒ",
|
||||||
"newFile": "ìëĄìŽ íìŒ",
|
"newFile": "ì íìŒ",
|
||||||
"newFolder": "ìëĄìŽ íŽë",
|
"newFolder": "ì íŽë",
|
||||||
"preview": "ëŻžëŠŹëłŽêž°",
|
"preview": "ëŻžëŠŹëłŽêž°",
|
||||||
"settings": "ì€ì ",
|
"settings": "ì€ì ",
|
||||||
"signup": "ê°ì
íêž°",
|
"signup": "ê°ì
",
|
||||||
"siteSettings": "ìŹìŽíž ì€ì "
|
"siteSettings": "ìŹìŽíž ì€ì "
|
||||||
},
|
},
|
||||||
"success": {
|
"success": {
|
||||||
@ -258,9 +257,9 @@
|
|||||||
},
|
},
|
||||||
"time": {
|
"time": {
|
||||||
"days": "ìŒ",
|
"days": "ìŒ",
|
||||||
"hours": "ì",
|
"hours": "ìê°",
|
||||||
"minutes": "ë¶",
|
"minutes": "ë¶",
|
||||||
"seconds": "ìŽ",
|
"seconds": "ìŽ",
|
||||||
"unit": "Time Unit"
|
"unit": "ìê° ëšì"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,13 @@
|
|||||||
"cancel": "Annuleren",
|
"cancel": "Annuleren",
|
||||||
"clear": "Wissen",
|
"clear": "Wissen",
|
||||||
"close": "Sluiten",
|
"close": "Sluiten",
|
||||||
"continue": "Continue",
|
|
||||||
"copy": "Kopiëren",
|
"copy": "Kopiëren",
|
||||||
"copyFile": "Bestand kopiëren",
|
"copyFile": "Bestand kopiëren",
|
||||||
"copyToClipboard": "Kopiëren naar klembord",
|
"copyToClipboard": "Kopiëren naar klembord",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "Aanmaken",
|
"create": "Aanmaken",
|
||||||
"delete": "Verwijderen",
|
"delete": "Verwijderen",
|
||||||
"download": "Downloaden",
|
"download": "Downloaden",
|
||||||
"file": "File",
|
"hideDotfiles": "",
|
||||||
"folder": "Folder",
|
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Hide dotfiles",
|
|
||||||
"info": "Info",
|
"info": "Info",
|
||||||
"more": "Meer",
|
"more": "Meer",
|
||||||
"move": "Verplaatsen",
|
"move": "Verplaatsen",
|
||||||
@ -24,7 +19,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "Maak permanente link",
|
"permalink": "Maak permanente link",
|
||||||
"previous": "Vorige",
|
"previous": "Vorige",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publiceren",
|
"publish": "Publiceren",
|
||||||
"rename": "Hernoemen",
|
"rename": "Hernoemen",
|
||||||
"replace": "Vervangen",
|
"replace": "Vervangen",
|
||||||
@ -36,27 +30,20 @@
|
|||||||
"selectMultiple": "Meerdere selecteren",
|
"selectMultiple": "Meerdere selecteren",
|
||||||
"share": "Delen",
|
"share": "Delen",
|
||||||
"shell": "Open shell",
|
"shell": "Open shell",
|
||||||
"submit": "Submit",
|
|
||||||
"switchView": "Beeld wisselen",
|
"switchView": "Beeld wisselen",
|
||||||
"toggleSidebar": "Zijbalk tonen",
|
"toggleSidebar": "Zijbalk tonen",
|
||||||
"update": "Updaten",
|
"update": "Updaten",
|
||||||
"upload": "Uploaden",
|
"upload": "Uploaden"
|
||||||
"openFile": "Open file",
|
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Bestand downloaden",
|
"downloadFile": "Bestand downloaden",
|
||||||
"downloadFolder": "Map downloaden",
|
"downloadFolder": "Map downloaden",
|
||||||
"downloadSelected": "Download Selected"
|
"downloadSelected": ""
|
||||||
},
|
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "U hebt geen rechten om hier toegang toe te krijgen.",
|
"forbidden": "U hebt geen rechten om hier toegang toe te krijgen.",
|
||||||
"internal": "Er ging iets mis.",
|
"internal": "Er ging iets mis.",
|
||||||
"notFound": "Deze locatie kan niet worden bereikt.",
|
"notFound": "Deze locatie kan niet worden bereikt."
|
||||||
"connection": "The server can't be reached."
|
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "Body",
|
"body": "Body",
|
||||||
@ -73,8 +60,7 @@
|
|||||||
"size": "Grootte",
|
"size": "Grootte",
|
||||||
"sortByLastModified": "Sorteren op laatst bewerkt",
|
"sortByLastModified": "Sorteren op laatst bewerkt",
|
||||||
"sortByName": "Sorteren op naam",
|
"sortByName": "Sorteren op naam",
|
||||||
"sortBySize": "Sorteren op grootte",
|
"sortBySize": "Sorteren op grootte"
|
||||||
"noPreview": "Preview is not available for this file."
|
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"click": "selecteer bestand of map",
|
"click": "selecteer bestand of map",
|
||||||
@ -109,8 +95,6 @@
|
|||||||
"currentlyNavigating": "Momenteel zoeken op: ",
|
"currentlyNavigating": "Momenteel zoeken op: ",
|
||||||
"deleteMessageMultiple": "Weet u zeker dat u {count} bestand(en) wil verwijderen?",
|
"deleteMessageMultiple": "Weet u zeker dat u {count} bestand(en) wil verwijderen?",
|
||||||
"deleteMessageSingle": "Weet u zeker dat u dit bestand/map wil verwijderen?",
|
"deleteMessageSingle": "Weet u zeker dat u dit bestand/map wil verwijderen?",
|
||||||
"deleteMessageShare": "Are you sure you wish to delete this share({path})?",
|
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Bestanden verwijderen",
|
"deleteTitle": "Bestanden verwijderen",
|
||||||
"displayName": "Weergavenaam: ",
|
"displayName": "Weergavenaam: ",
|
||||||
"download": "Bestanden downloaden",
|
"download": "Bestanden downloaden",
|
||||||
@ -136,12 +120,8 @@
|
|||||||
"scheduleMessage": "Kies een datum en tijd om de publicatie van dit bericht in te plannen.",
|
"scheduleMessage": "Kies een datum en tijd om de publicatie van dit bericht in te plannen.",
|
||||||
"show": "Tonen",
|
"show": "Tonen",
|
||||||
"size": "Grootte",
|
"size": "Grootte",
|
||||||
"upload": "Upload",
|
"upload": "",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
"uploadMessage": ""
|
||||||
"uploadMessage": "Select an option to upload.",
|
|
||||||
"optionalPassword": "Optional password",
|
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Afbeeldingen",
|
"images": "Afbeeldingen",
|
||||||
@ -170,14 +150,6 @@
|
|||||||
"commandRunnerHelp": "Hier kunt u opdrachten instellen die worden uitgevoerd in de benoemde gebeurtenissen. U moet er één per regel schrijven. De omgevingsvariabelen {0} en {1} zijn beschikbaar, zijnde {0} relatief ten opzichte van {1}. Raadpleeg {2} voor meer informatie over deze functie en de beschikbare omgevingsvariabelen.",
|
"commandRunnerHelp": "Hier kunt u opdrachten instellen die worden uitgevoerd in de benoemde gebeurtenissen. U moet er één per regel schrijven. De omgevingsvariabelen {0} en {1} zijn beschikbaar, zijnde {0} relatief ten opzichte van {1}. Raadpleeg {2} voor meer informatie over deze functie en de beschikbare omgevingsvariabelen.",
|
||||||
"commandsUpdated": "Commando's bijgewerkt!",
|
"commandsUpdated": "Commando's bijgewerkt!",
|
||||||
"createUserDir": "Maak automatisch een thuismap aan wanneer een nieuwe gebruiker wordt aangemaakt",
|
"createUserDir": "Maak automatisch een thuismap aan wanneer een nieuwe gebruiker wordt aangemaakt",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
|
||||||
"customStylesheet": "Aangepast Stylesheet",
|
"customStylesheet": "Aangepast Stylesheet",
|
||||||
"defaultUserDescription": "Dit zijn de standaardinstellingen voor nieuwe gebruikers.",
|
"defaultUserDescription": "Dit zijn de standaardinstellingen voor nieuwe gebruikers.",
|
||||||
"disableExternalLinks": "Schakel externe links uit (behalve documentatie)",
|
"disableExternalLinks": "Schakel externe links uit (behalve documentatie)",
|
||||||
@ -188,7 +160,7 @@
|
|||||||
"executeOnShellDescription": "File Browser voert de opdrachten standaard uit door hun binaire bestanden rechtstreeks op te roepen. Als u ze in plaats daarvan wilt uitvoeren op een shell (zoals Bash of PowerShell), kunt u dit hier definiëren met de vereiste argumenten en vlaggen. Indien ingesteld, wordt de opdracht die u uitvoert, toegevoegd als een argument. Dit is van toepassing op zowel gebruikersopdrachten als event hooks.",
|
"executeOnShellDescription": "File Browser voert de opdrachten standaard uit door hun binaire bestanden rechtstreeks op te roepen. Als u ze in plaats daarvan wilt uitvoeren op een shell (zoals Bash of PowerShell), kunt u dit hier definiëren met de vereiste argumenten en vlaggen. Indien ingesteld, wordt de opdracht die u uitvoert, toegevoegd als een argument. Dit is van toepassing op zowel gebruikersopdrachten als event hooks.",
|
||||||
"globalRules": "Dit is een algemene reeks toegestane en niet toegestane regels. Ze zijn van toepassing op elke gebruiker. U kunt specifieke regels voor de instellingen van elke gebruiker definiëren om deze te overschrijven.",
|
"globalRules": "Dit is een algemene reeks toegestane en niet toegestane regels. Ze zijn van toepassing op elke gebruiker. U kunt specifieke regels voor de instellingen van elke gebruiker definiëren om deze te overschrijven.",
|
||||||
"globalSettings": "Algemene Instellingen",
|
"globalSettings": "Algemene Instellingen",
|
||||||
"hideDotfiles": "Hide dotfiles",
|
"hideDotfiles": "",
|
||||||
"insertPath": "Voeg een pad toe",
|
"insertPath": "Voeg een pad toe",
|
||||||
"insertRegex": "Regex expressie invoeren",
|
"insertRegex": "Regex expressie invoeren",
|
||||||
"instanceName": "Instantienaam",
|
"instanceName": "Instantienaam",
|
||||||
@ -199,7 +171,7 @@
|
|||||||
"newUser": "Nieuwe gebruiker",
|
"newUser": "Nieuwe gebruiker",
|
||||||
"password": "Wachtwoord",
|
"password": "Wachtwoord",
|
||||||
"passwordUpdated": "Wachtwoord bijgewerkt!",
|
"passwordUpdated": "Wachtwoord bijgewerkt!",
|
||||||
"path": "Path",
|
"path": "",
|
||||||
"perm": {
|
"perm": {
|
||||||
"create": "Bestanden en mappen aanmaken",
|
"create": "Bestanden en mappen aanmaken",
|
||||||
"delete": "Bestanden en mappen verwijderen",
|
"delete": "Bestanden en mappen verwijderen",
|
||||||
@ -217,17 +189,14 @@
|
|||||||
"rules": "Regels",
|
"rules": "Regels",
|
||||||
"rulesHelp": "Hier kunt u een reeks regels voor toestaan en niet toestaan voor deze specifieke gebruiker definiëren. De geblokkeerde bestanden verschijnen niet in de lijsten en zijn niet toegankelijk voor de gebruiker. We ondersteunen regex en paden relatief ten opzichte van het bereik van gebruikers. \n",
|
"rulesHelp": "Hier kunt u een reeks regels voor toestaan en niet toestaan voor deze specifieke gebruiker definiëren. De geblokkeerde bestanden verschijnen niet in de lijsten en zijn niet toegankelijk voor de gebruiker. We ondersteunen regex en paden relatief ten opzichte van het bereik van gebruikers. \n",
|
||||||
"scope": "Scope",
|
"scope": "Scope",
|
||||||
"setDateFormat": "Set exact date format",
|
|
||||||
"settingsUpdated": "Instellingen bijgewerkt!",
|
"settingsUpdated": "Instellingen bijgewerkt!",
|
||||||
"shareDuration": "Share Duration",
|
"shareDuration": "",
|
||||||
"shareManagement": "Share Management",
|
"shareManagement": "",
|
||||||
"shareDeleted": "Share deleted!",
|
"singleClick": "",
|
||||||
"singleClick": "Use single clicks to open files and directories",
|
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
"dark": "",
|
||||||
"dark": "Dark",
|
"light": "",
|
||||||
"light": "Light",
|
"title": ""
|
||||||
"title": "Theme"
|
|
||||||
},
|
},
|
||||||
"user": "Gebruiker",
|
"user": "Gebruiker",
|
||||||
"userCommands": "Commando's",
|
"userCommands": "Commando's",
|
||||||
|
@ -170,7 +170,6 @@
|
|||||||
"commandRunnerHelp": "Tu moĆŒesz ustawiÄ polecenia, ktĂłre bÄdÄ
wykonywane przy danych zdarzeniach. Musisz wpisywaÄ po jednym na wiersz. Zmienne Ćrodowiskowe {0} i {1} bÄdÄ
dostÄpne, gdzie {0} jest wzglÄdne wobec {1}. WiÄcej informacji o tej funkcji i dostÄpnych zmiennych Ćrodowiskowych znajdziesz w {2}.",
|
"commandRunnerHelp": "Tu moĆŒesz ustawiÄ polecenia, ktĂłre bÄdÄ
wykonywane przy danych zdarzeniach. Musisz wpisywaÄ po jednym na wiersz. Zmienne Ćrodowiskowe {0} i {1} bÄdÄ
dostÄpne, gdzie {0} jest wzglÄdne wobec {1}. WiÄcej informacji o tej funkcji i dostÄpnych zmiennych Ćrodowiskowych znajdziesz w {2}.",
|
||||||
"commandsUpdated": "Polecenie zaktualizowane!",
|
"commandsUpdated": "Polecenie zaktualizowane!",
|
||||||
"createUserDir": "Automatycznie twĂłrz katalog domowy podczas dodawania uĆŒytkownika",
|
"createUserDir": "Automatycznie twĂłrz katalog domowy podczas dodawania uĆŒytkownika",
|
||||||
"minimumPasswordLength": "Minimalna dĆugoĆÄ hasĆa",
|
|
||||||
"tusUploads": "PrzesyĆanie we fragmentach",
|
"tusUploads": "PrzesyĆanie we fragmentach",
|
||||||
"tusUploadsHelp": "File Browser wspiera przesyĆanie plikĂłw we fragmentach, co pozwala na proces przesyĆania, ktĂłry jest wydajny, pewny i moĆŒliwy do wznowienia nawet w sieciach o wÄ
tpliwej stabilnoĆci przesyĆu danych.",
|
"tusUploadsHelp": "File Browser wspiera przesyĆanie plikĂłw we fragmentach, co pozwala na proces przesyĆania, ktĂłry jest wydajny, pewny i moĆŒliwy do wznowienia nawet w sieciach o wÄ
tpliwej stabilnoĆci przesyĆu danych.",
|
||||||
"tusUploadsChunkSize": "Oznacza maksymalny rozmiar przesyĆanych plikĂłw (dla mniejszych plikĂłw uĆŒyte zostanie przesyĆanie bezpoĆrednie). MoĆŒesz ustawiÄ tÄ wartoĆÄ zarĂłwno zapisanÄ
samymi cyframi w bajtach, jak i podaÄ jÄ
w formie skróconej, np. poprzez 10MB, 1GB itp.",
|
"tusUploadsChunkSize": "Oznacza maksymalny rozmiar przesyĆanych plikĂłw (dla mniejszych plikĂłw uĆŒyte zostanie przesyĆanie bezpoĆrednie). MoĆŒesz ustawiÄ tÄ wartoĆÄ zarĂłwno zapisanÄ
samymi cyframi w bajtach, jak i podaÄ jÄ
w formie skróconej, np. poprzez 10MB, 1GB itp.",
|
||||||
|
@ -7,13 +7,11 @@
|
|||||||
"copy": "Copiar",
|
"copy": "Copiar",
|
||||||
"copyFile": "Copiar arquivo",
|
"copyFile": "Copiar arquivo",
|
||||||
"copyToClipboard": "Copiar",
|
"copyToClipboard": "Copiar",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "Criar",
|
"create": "Criar",
|
||||||
"delete": "Apagar",
|
"delete": "Apagar",
|
||||||
"download": "Baixar",
|
"download": "Baixar",
|
||||||
"file": "Arquivo",
|
"file": "Arquivo",
|
||||||
"folder": "Pasta",
|
"folder": "Pasta",
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Ocultar dotfiles",
|
"hideDotfiles": "Ocultar dotfiles",
|
||||||
"info": "InformaçÔes",
|
"info": "InformaçÔes",
|
||||||
"more": "Mais",
|
"more": "Mais",
|
||||||
@ -24,7 +22,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "Obter link permanente",
|
"permalink": "Obter link permanente",
|
||||||
"previous": "Anterior",
|
"previous": "Anterior",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publicar",
|
"publish": "Publicar",
|
||||||
"rename": "Renomear",
|
"rename": "Renomear",
|
||||||
"replace": "Substituir",
|
"replace": "Substituir",
|
||||||
@ -42,7 +39,10 @@
|
|||||||
"update": "Atualizar",
|
"update": "Atualizar",
|
||||||
"upload": "Enviar",
|
"upload": "Enviar",
|
||||||
"openFile": "Abrir",
|
"openFile": "Abrir",
|
||||||
"discardChanges": "Discard"
|
"copyDownloadLinkToClipboard": "Copiar link de download para a ĂĄrea de transferĂȘncia",
|
||||||
|
"fullScreen": "Alternar tela cheia",
|
||||||
|
"preview": "Pré-visualizar",
|
||||||
|
"discardChanges": "Descartar"
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Baixar arquivo",
|
"downloadFile": "Baixar arquivo",
|
||||||
@ -50,7 +50,7 @@
|
|||||||
"downloadSelected": "Baixar selecionado"
|
"downloadSelected": "Baixar selecionado"
|
||||||
},
|
},
|
||||||
"upload": {
|
"upload": {
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
"abortUpload": "Tem certeza de que deseja abortar o upload?"
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "VocĂȘ nĂŁo tem permissĂ”es para acessar isto.",
|
"forbidden": "VocĂȘ nĂŁo tem permissĂ”es para acessar isto.",
|
||||||
@ -65,8 +65,8 @@
|
|||||||
"folders": "Pastas",
|
"folders": "Pastas",
|
||||||
"home": "InĂcio",
|
"home": "InĂcio",
|
||||||
"lastModified": "Ăltima modificação",
|
"lastModified": "Ăltima modificação",
|
||||||
"loading": "Carregando. Aguarde, por favor.",
|
"loading": "Carregando...",
|
||||||
"lonely": "NĂŁo existe nada aqui.",
|
"lonely": "NĂŁo hĂĄ nada aqui...",
|
||||||
"metadata": "Metadados",
|
"metadata": "Metadados",
|
||||||
"multipleSelectionEnabled": "Seleção mĂșltipla ativada",
|
"multipleSelectionEnabled": "Seleção mĂșltipla ativada",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
@ -80,12 +80,12 @@
|
|||||||
"click": "selecionar pasta ou arquivo",
|
"click": "selecionar pasta ou arquivo",
|
||||||
"ctrl": {
|
"ctrl": {
|
||||||
"click": "selecionar vĂĄrias pastas e arquivos",
|
"click": "selecionar vĂĄrias pastas e arquivos",
|
||||||
"f": "pesquisar",
|
"f": "abrir pesquisa",
|
||||||
"s": "salvar um arquivo ou baixar a pasta que vocĂȘ estĂĄ"
|
"s": "salvar um arquivo ou baixar a pasta que vocĂȘ estĂĄ"
|
||||||
},
|
},
|
||||||
"del": "apagar os arquivos selecionados",
|
"del": "apagar os arquivos selecionados",
|
||||||
"doubleClick": "abrir pasta ou arquivo",
|
"doubleClick": "abrir pasta ou arquivo",
|
||||||
"esc": "limpar seleção e/ou fechar menu",
|
"esc": "limpar seleção e/ou fechar prompt",
|
||||||
"f1": "esta informação",
|
"f1": "esta informação",
|
||||||
"f2": "renomear arquivo",
|
"f2": "renomear arquivo",
|
||||||
"help": "Ajuda"
|
"help": "Ajuda"
|
||||||
@ -110,7 +110,6 @@
|
|||||||
"deleteMessageMultiple": "Deseja apagar {count} arquivo(s)?",
|
"deleteMessageMultiple": "Deseja apagar {count} arquivo(s)?",
|
||||||
"deleteMessageSingle": "Deseja apagar esta pasta/arquivo?",
|
"deleteMessageSingle": "Deseja apagar esta pasta/arquivo?",
|
||||||
"deleteMessageShare": "Deseja apagar este compartilhamento ({path})?",
|
"deleteMessageShare": "Deseja apagar este compartilhamento ({path})?",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Apagar arquivos",
|
"deleteTitle": "Apagar arquivos",
|
||||||
"displayName": "Nome:",
|
"displayName": "Nome:",
|
||||||
"download": "Baixar arquivos",
|
"download": "Baixar arquivos",
|
||||||
@ -131,7 +130,7 @@
|
|||||||
"rename": "Renomear",
|
"rename": "Renomear",
|
||||||
"renameMessage": "Insira um novo nome para",
|
"renameMessage": "Insira um novo nome para",
|
||||||
"replace": "Substituir",
|
"replace": "Substituir",
|
||||||
"replaceMessage": "JĂĄ existe um arquivo com nome igual a um dos que estĂĄ tentando enviar. Deseja substituir?\n",
|
"replaceMessage": "Um dos arquivos que vocĂȘ estĂĄ tentando enviar possui um nome conflitante. Deseja pular este arquivo e continuar o envio ou substituir o existente?\n",
|
||||||
"schedule": "Agendar",
|
"schedule": "Agendar",
|
||||||
"scheduleMessage": "Escolha uma data para agendar a publicação deste post.",
|
"scheduleMessage": "Escolha uma data para agendar a publicação deste post.",
|
||||||
"show": "Mostrar",
|
"show": "Mostrar",
|
||||||
@ -140,8 +139,9 @@
|
|||||||
"uploadFiles": "Enviando {files} arquivos...",
|
"uploadFiles": "Enviando {files} arquivos...",
|
||||||
"uploadMessage": "Selecione uma opção para enviar.",
|
"uploadMessage": "Selecione uma opção para enviar.",
|
||||||
"optionalPassword": "Senha opcional",
|
"optionalPassword": "Senha opcional",
|
||||||
"resolution": "Resolution",
|
"deleteUser": "Tem certeza de que deseja apagar este usuĂĄrio?",
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
"resolution": "Resolução",
|
||||||
|
"discardEditorChanges": "Tem certeza de que deseja descartar as alteraçÔes feitas?"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Imagens",
|
"images": "Imagens",
|
||||||
@ -169,12 +169,7 @@
|
|||||||
"commandRunner": "Execução de comandos",
|
"commandRunner": "Execução de comandos",
|
||||||
"commandRunnerHelp": "Aqui vocĂȘ pode definir comandos que serĂŁo executados nos eventos descritos. Escreva um por linha. As variĂĄveis de ambiente {0} e {1} estĂŁo disponĂveis, sendo {0} relativo a {1}. Para mais informaçÔes sobre esta função e as variĂĄveis de ambiente disponĂveis, leia a {2}.",
|
"commandRunnerHelp": "Aqui vocĂȘ pode definir comandos que serĂŁo executados nos eventos descritos. Escreva um por linha. As variĂĄveis de ambiente {0} e {1} estĂŁo disponĂveis, sendo {0} relativo a {1}. Para mais informaçÔes sobre esta função e as variĂĄveis de ambiente disponĂveis, leia a {2}.",
|
||||||
"commandsUpdated": "Comandos atualizados!",
|
"commandsUpdated": "Comandos atualizados!",
|
||||||
"createUserDir": "Criar diretĂłrio Home para novos usuĂĄrios",
|
"createUserDir": "Criar diretĂłrio Home do usuĂĄrio automaticamente ao adicionar novo usuĂĄrio",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Caminho base para diretĂłrios de usuĂĄrios",
|
"userHomeBasePath": "Caminho base para diretĂłrios de usuĂĄrios",
|
||||||
"userScopeGenerationPlaceholder": "O escopo serĂĄ gerado automaticamente",
|
"userScopeGenerationPlaceholder": "O escopo serĂĄ gerado automaticamente",
|
||||||
"createUserHomeDirectory": "Criar diretĂłrio Home de usuĂĄrio",
|
"createUserHomeDirectory": "Criar diretĂłrio Home de usuĂĄrio",
|
||||||
@ -199,7 +194,7 @@
|
|||||||
"newUser": "Novo usuĂĄrio",
|
"newUser": "Novo usuĂĄrio",
|
||||||
"password": "Senha",
|
"password": "Senha",
|
||||||
"passwordUpdated": "Senha atualizada!",
|
"passwordUpdated": "Senha atualizada!",
|
||||||
"path": "Path",
|
"path": "Caminho",
|
||||||
"perm": {
|
"perm": {
|
||||||
"create": "Criar arquivos e diretĂłrios",
|
"create": "Criar arquivos e diretĂłrios",
|
||||||
"delete": "Apagar arquivos e diretĂłrios",
|
"delete": "Apagar arquivos e diretĂłrios",
|
||||||
@ -224,7 +219,7 @@
|
|||||||
"shareDeleted": "Compartilhamento apagado!",
|
"shareDeleted": "Compartilhamento apagado!",
|
||||||
"singleClick": "Usar clique Ășnico para abrir arquivos e diretĂłrios",
|
"singleClick": "Usar clique Ășnico para abrir arquivos e diretĂłrios",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
"default": "PadrĂŁo do sistema",
|
||||||
"dark": "Escuro",
|
"dark": "Escuro",
|
||||||
"light": "Claro",
|
"light": "Claro",
|
||||||
"title": "Tema"
|
"title": "Tema"
|
||||||
@ -245,7 +240,7 @@
|
|||||||
"hugoNew": "Hugo New",
|
"hugoNew": "Hugo New",
|
||||||
"login": "Login",
|
"login": "Login",
|
||||||
"logout": "Sair",
|
"logout": "Sair",
|
||||||
"myFiles": "Arquivos",
|
"myFiles": "Meus arquivos",
|
||||||
"newFile": "Novo arquivo",
|
"newFile": "Novo arquivo",
|
||||||
"newFolder": "Nova pasta",
|
"newFolder": "Nova pasta",
|
||||||
"preview": "Pré-visualizar",
|
"preview": "Pré-visualizar",
|
||||||
@ -261,6 +256,6 @@
|
|||||||
"hours": "Horas",
|
"hours": "Horas",
|
||||||
"minutes": "Minutos",
|
"minutes": "Minutos",
|
||||||
"seconds": "Segundos",
|
"seconds": "Segundos",
|
||||||
"unit": "Unidades de Tempo"
|
"unit": "Unidade de tempo"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,14 +7,10 @@
|
|||||||
"copy": "Copiar",
|
"copy": "Copiar",
|
||||||
"copyFile": "Copiar ficheiro",
|
"copyFile": "Copiar ficheiro",
|
||||||
"copyToClipboard": "Copiar",
|
"copyToClipboard": "Copiar",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "Criar",
|
"create": "Criar",
|
||||||
"delete": "Eliminar",
|
"delete": "Eliminar",
|
||||||
"download": "Descarregar",
|
"download": "Descarregar",
|
||||||
"file": "File",
|
"hideDotfiles": "",
|
||||||
"folder": "Folder",
|
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Hide dotfiles",
|
|
||||||
"info": "Info",
|
"info": "Info",
|
||||||
"more": "Mais",
|
"more": "Mais",
|
||||||
"move": "Mover",
|
"move": "Mover",
|
||||||
@ -24,7 +20,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "Obter link permanente",
|
"permalink": "Obter link permanente",
|
||||||
"previous": "Anterior",
|
"previous": "Anterior",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publicar",
|
"publish": "Publicar",
|
||||||
"rename": "Alterar nome",
|
"rename": "Alterar nome",
|
||||||
"replace": "Substituir",
|
"replace": "Substituir",
|
||||||
@ -36,27 +31,20 @@
|
|||||||
"selectMultiple": "Selecionar vĂĄrios",
|
"selectMultiple": "Selecionar vĂĄrios",
|
||||||
"share": "Partilhar",
|
"share": "Partilhar",
|
||||||
"shell": "Alternar shell",
|
"shell": "Alternar shell",
|
||||||
"submit": "Submit",
|
|
||||||
"switchView": "Alterar vista",
|
"switchView": "Alterar vista",
|
||||||
"toggleSidebar": "Alternar barra lateral",
|
"toggleSidebar": "Alternar barra lateral",
|
||||||
"update": "Atualizar",
|
"update": "Atualizar",
|
||||||
"upload": "Enviar",
|
"upload": "Enviar"
|
||||||
"openFile": "Open file",
|
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Descarregar ficheiro",
|
"downloadFile": "Descarregar ficheiro",
|
||||||
"downloadFolder": "Descarregar pasta",
|
"downloadFolder": "Descarregar pasta",
|
||||||
"downloadSelected": "Download Selected"
|
"downloadSelected": ""
|
||||||
},
|
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "Não tem permissÔes para aceder a isto",
|
"forbidden": "Não tem permissÔes para aceder a isto",
|
||||||
"internal": "Algo correu bastante mal.",
|
"internal": "Algo correu bastante mal.",
|
||||||
"notFound": "Esta localização não é alcançåvel.",
|
"notFound": "Esta localização não é alcançåvel."
|
||||||
"connection": "The server can't be reached."
|
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "Corpo",
|
"body": "Corpo",
|
||||||
@ -73,8 +61,7 @@
|
|||||||
"size": "Tamanho",
|
"size": "Tamanho",
|
||||||
"sortByLastModified": "Ordenar pela Ășltima alteração",
|
"sortByLastModified": "Ordenar pela Ășltima alteração",
|
||||||
"sortByName": "Ordenar pelo nome",
|
"sortByName": "Ordenar pelo nome",
|
||||||
"sortBySize": "Ordenar pelo tamanho",
|
"sortBySize": "Ordenar pelo tamanho"
|
||||||
"noPreview": "Preview is not available for this file."
|
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"click": "selecionar pasta ou ficheiro",
|
"click": "selecionar pasta ou ficheiro",
|
||||||
@ -109,8 +96,6 @@
|
|||||||
"currentlyNavigating": "A navegar em:",
|
"currentlyNavigating": "A navegar em:",
|
||||||
"deleteMessageMultiple": "Quer eliminar {count} ficheiro(s)?",
|
"deleteMessageMultiple": "Quer eliminar {count} ficheiro(s)?",
|
||||||
"deleteMessageSingle": "Quer eliminar esta pasta/ficheiro?",
|
"deleteMessageSingle": "Quer eliminar esta pasta/ficheiro?",
|
||||||
"deleteMessageShare": "Are you sure you wish to delete this share({path})?",
|
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Eliminar ficheiros",
|
"deleteTitle": "Eliminar ficheiros",
|
||||||
"displayName": "Nome:",
|
"displayName": "Nome:",
|
||||||
"download": "Descarregar ficheiros",
|
"download": "Descarregar ficheiros",
|
||||||
@ -136,12 +121,8 @@
|
|||||||
"scheduleMessage": "Escolha uma data para publicar este post.",
|
"scheduleMessage": "Escolha uma data para publicar este post.",
|
||||||
"show": "Mostrar",
|
"show": "Mostrar",
|
||||||
"size": "Tamanho",
|
"size": "Tamanho",
|
||||||
"upload": "Upload",
|
"upload": "",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
"uploadMessage": ""
|
||||||
"uploadMessage": "Select an option to upload.",
|
|
||||||
"optionalPassword": "Optional password",
|
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Imagens",
|
"images": "Imagens",
|
||||||
@ -170,14 +151,6 @@
|
|||||||
"commandRunnerHelp": "Aqui pode definir comandos que sĂŁo executados nos eventos nomeados. Tem de escrever um por linha. As variĂĄveis de ambiente {0} e {1} estarĂŁo disponĂveis, sendo {0} relativo a {1}. Para mais informaçÔes sobre esta funcionalidade e as variĂĄveis de ambiente, veja {2}.",
|
"commandRunnerHelp": "Aqui pode definir comandos que sĂŁo executados nos eventos nomeados. Tem de escrever um por linha. As variĂĄveis de ambiente {0} e {1} estarĂŁo disponĂveis, sendo {0} relativo a {1}. Para mais informaçÔes sobre esta funcionalidade e as variĂĄveis de ambiente, veja {2}.",
|
||||||
"commandsUpdated": "Comandos atualizados!",
|
"commandsUpdated": "Comandos atualizados!",
|
||||||
"createUserDir": "Criar automaticamente a pasta de inĂcio ao adicionar um novo utilizador",
|
"createUserDir": "Criar automaticamente a pasta de inĂcio ao adicionar um novo utilizador",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
|
||||||
"customStylesheet": "Folha de estilos personalizada",
|
"customStylesheet": "Folha de estilos personalizada",
|
||||||
"defaultUserDescription": "Estas são as configuraçÔes padrão para novos utilizadores.",
|
"defaultUserDescription": "Estas são as configuraçÔes padrão para novos utilizadores.",
|
||||||
"disableExternalLinks": "Desativar links externos (exceto documentação)",
|
"disableExternalLinks": "Desativar links externos (exceto documentação)",
|
||||||
@ -188,7 +161,7 @@
|
|||||||
"executeOnShellDescription": "Por padrĂŁo, o Navegador de Ficheiros executa os comandos chamando os seus binĂĄrios diretamente. Se em vez disso, quiser executĂĄ-los numa shell (como Bash ou PowerShell), pode definir isso aqui com os argumentos e bandeiras necessĂĄrios. Se definido, o comando que executa serĂĄ anexado como um argumento. Isto aplica-se tanto a comandos do utilizador como a hooks de eventos.",
|
"executeOnShellDescription": "Por padrĂŁo, o Navegador de Ficheiros executa os comandos chamando os seus binĂĄrios diretamente. Se em vez disso, quiser executĂĄ-los numa shell (como Bash ou PowerShell), pode definir isso aqui com os argumentos e bandeiras necessĂĄrios. Se definido, o comando que executa serĂĄ anexado como um argumento. Isto aplica-se tanto a comandos do utilizador como a hooks de eventos.",
|
||||||
"globalRules": "Isto Ă© um conjunto global de regras de permissĂŁo e negação. Elas aplicam-se a todos os utilizadores. Pode especificar regras especĂficas para cada configuração do utilizador para sobreporem-se a estas.",
|
"globalRules": "Isto Ă© um conjunto global de regras de permissĂŁo e negação. Elas aplicam-se a todos os utilizadores. Pode especificar regras especĂficas para cada configuração do utilizador para sobreporem-se a estas.",
|
||||||
"globalSettings": "ConfiguraçÔes globais",
|
"globalSettings": "ConfiguraçÔes globais",
|
||||||
"hideDotfiles": "Hide dotfiles",
|
"hideDotfiles": "",
|
||||||
"insertPath": "Inserir o caminho",
|
"insertPath": "Inserir o caminho",
|
||||||
"insertRegex": "Inserir expressĂŁo regular",
|
"insertRegex": "Inserir expressĂŁo regular",
|
||||||
"instanceName": "Nome da instĂąncia",
|
"instanceName": "Nome da instĂąncia",
|
||||||
@ -199,7 +172,7 @@
|
|||||||
"newUser": "Novo utilizador",
|
"newUser": "Novo utilizador",
|
||||||
"password": "Palavra-passe",
|
"password": "Palavra-passe",
|
||||||
"passwordUpdated": "Palavra-passe atualizada!",
|
"passwordUpdated": "Palavra-passe atualizada!",
|
||||||
"path": "Path",
|
"path": "",
|
||||||
"perm": {
|
"perm": {
|
||||||
"create": "Criar ficheiros e pastas",
|
"create": "Criar ficheiros e pastas",
|
||||||
"delete": "Eliminar ficheiros e pastas",
|
"delete": "Eliminar ficheiros e pastas",
|
||||||
@ -217,17 +190,14 @@
|
|||||||
"rules": "Regras",
|
"rules": "Regras",
|
||||||
"rulesHelp": "Aqui pode definir um conjunto de regras para permitir ou bloquear o acesso do utilizador a determinados ficheiros ou pastas. Os ficheiros bloqueados não irão aparecer durante a navegação. Suportamos expressÔes regulares e os caminhos dos ficheiros devem ser relativos à base do utilizador.\n",
|
"rulesHelp": "Aqui pode definir um conjunto de regras para permitir ou bloquear o acesso do utilizador a determinados ficheiros ou pastas. Os ficheiros bloqueados não irão aparecer durante a navegação. Suportamos expressÔes regulares e os caminhos dos ficheiros devem ser relativos à base do utilizador.\n",
|
||||||
"scope": "Base",
|
"scope": "Base",
|
||||||
"setDateFormat": "Set exact date format",
|
|
||||||
"settingsUpdated": "ConfiguraçÔes atualizadas!",
|
"settingsUpdated": "ConfiguraçÔes atualizadas!",
|
||||||
"shareDuration": "Share Duration",
|
"shareDuration": "",
|
||||||
"shareManagement": "Share Management",
|
"shareManagement": "",
|
||||||
"shareDeleted": "Share deleted!",
|
"singleClick": "",
|
||||||
"singleClick": "Use single clicks to open files and directories",
|
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
"dark": "",
|
||||||
"dark": "Dark",
|
"light": "",
|
||||||
"light": "Light",
|
"title": ""
|
||||||
"title": "Theme"
|
|
||||||
},
|
},
|
||||||
"user": "Utilizador",
|
"user": "Utilizador",
|
||||||
"userCommands": "Comandos",
|
"userCommands": "Comandos",
|
||||||
|
@ -3,18 +3,13 @@
|
|||||||
"cancel": "AnuleazÄ",
|
"cancel": "AnuleazÄ",
|
||||||
"clear": "CurÄÈÄ",
|
"clear": "CurÄÈÄ",
|
||||||
"close": "Ănchide",
|
"close": "Ănchide",
|
||||||
"continue": "Continue",
|
|
||||||
"copy": "CopiazÄ",
|
"copy": "CopiazÄ",
|
||||||
"copyFile": "CopiazÄ fiÈier",
|
"copyFile": "CopiazÄ fiÈier",
|
||||||
"copyToClipboard": "CopiazÄ Ăźn clipboard",
|
"copyToClipboard": "CopiazÄ Ăźn clipboard",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "CreazÄ",
|
"create": "CreazÄ",
|
||||||
"delete": "Èterge",
|
"delete": "Èterge",
|
||||||
"download": "DescarcÄ",
|
"download": "DescarcÄ",
|
||||||
"file": "File",
|
"hideDotfiles": "",
|
||||||
"folder": "Folder",
|
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Hide dotfiles",
|
|
||||||
"info": "Info",
|
"info": "Info",
|
||||||
"more": "Mai mult",
|
"more": "Mai mult",
|
||||||
"move": "MutÄ",
|
"move": "MutÄ",
|
||||||
@ -24,7 +19,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "ObÈine legÄtura permanentÄ",
|
"permalink": "ObÈine legÄtura permanentÄ",
|
||||||
"previous": "Precedent",
|
"previous": "Precedent",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "PuplicÄ",
|
"publish": "PuplicÄ",
|
||||||
"rename": "RedenumeÈte",
|
"rename": "RedenumeÈte",
|
||||||
"replace": "ĂnlocuieÈte",
|
"replace": "ĂnlocuieÈte",
|
||||||
@ -36,27 +30,20 @@
|
|||||||
"selectMultiple": "SelecÈie multiplÄ",
|
"selectMultiple": "SelecÈie multiplÄ",
|
||||||
"share": "Distribuie",
|
"share": "Distribuie",
|
||||||
"shell": "ComutÄ linia de comandÄ",
|
"shell": "ComutÄ linia de comandÄ",
|
||||||
"submit": "Submit",
|
|
||||||
"switchView": "Schimba vizualizarea",
|
"switchView": "Schimba vizualizarea",
|
||||||
"toggleSidebar": "ComutÄ bara lateralÄ",
|
"toggleSidebar": "ComutÄ bara lateralÄ",
|
||||||
"update": "ActualizeazÄ",
|
"update": "ActualizeazÄ",
|
||||||
"upload": "ĂncarcÄ",
|
"upload": "ĂncarcÄ"
|
||||||
"openFile": "Open file",
|
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "DescarcÄ fiÈier",
|
"downloadFile": "DescarcÄ fiÈier",
|
||||||
"downloadFolder": "DescarcÄ director",
|
"downloadFolder": "DescarcÄ director",
|
||||||
"downloadSelected": "Download Selected"
|
"downloadSelected": ""
|
||||||
},
|
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "Nu ai permisiuni sa accesezi asta.",
|
"forbidden": "Nu ai permisiuni sa accesezi asta.",
|
||||||
"internal": "Ceva nu a funcÈionat corect.",
|
"internal": "Ceva nu a funcÈionat corect.",
|
||||||
"notFound": "Aceasta locaÈie nu poate fi accesatÄ.",
|
"notFound": "Aceasta locaÈie nu poate fi accesatÄ."
|
||||||
"connection": "The server can't be reached."
|
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "Corp",
|
"body": "Corp",
|
||||||
@ -73,8 +60,7 @@
|
|||||||
"size": "Dimensiune",
|
"size": "Dimensiune",
|
||||||
"sortByLastModified": "OrdoneazÄ dup ultima modificare",
|
"sortByLastModified": "OrdoneazÄ dup ultima modificare",
|
||||||
"sortByName": "OrdoneazÄ dupÄ nume",
|
"sortByName": "OrdoneazÄ dupÄ nume",
|
||||||
"sortBySize": "OrdoneazÄ dupÄ dimensiune",
|
"sortBySize": "OrdoneazÄ dupÄ dimensiune"
|
||||||
"noPreview": "Preview is not available for this file."
|
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"click": "alege fiÈier sau director",
|
"click": "alege fiÈier sau director",
|
||||||
@ -109,8 +95,6 @@
|
|||||||
"currentlyNavigating": "Navigare curentÄ Ăźn:",
|
"currentlyNavigating": "Navigare curentÄ Ăźn:",
|
||||||
"deleteMessageMultiple": "EÈti sigur cÄ vrei sÄ Ètergi aceste {count} fiÈier(e)?",
|
"deleteMessageMultiple": "EÈti sigur cÄ vrei sÄ Ètergi aceste {count} fiÈier(e)?",
|
||||||
"deleteMessageSingle": "EÈti sigur cÄ vrei sÄ Ètergi acest fiÈier/director?",
|
"deleteMessageSingle": "EÈti sigur cÄ vrei sÄ Ètergi acest fiÈier/director?",
|
||||||
"deleteMessageShare": "Are you sure you wish to delete this share({path})?",
|
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Èterge fiÈiere",
|
"deleteTitle": "Èterge fiÈiere",
|
||||||
"displayName": "Nume afiÈat:",
|
"displayName": "Nume afiÈat:",
|
||||||
"download": "DescarcÄ fiÈiere",
|
"download": "DescarcÄ fiÈiere",
|
||||||
@ -136,12 +120,8 @@
|
|||||||
"scheduleMessage": "Alege data si ora pentru a programa publicarea acestei postÄri.",
|
"scheduleMessage": "Alege data si ora pentru a programa publicarea acestei postÄri.",
|
||||||
"show": "AratÄ",
|
"show": "AratÄ",
|
||||||
"size": "Dimensiune",
|
"size": "Dimensiune",
|
||||||
"upload": "Upload",
|
"upload": "",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
"uploadMessage": ""
|
||||||
"uploadMessage": "Select an option to upload.",
|
|
||||||
"optionalPassword": "Optional password",
|
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Imagini",
|
"images": "Imagini",
|
||||||
@ -170,14 +150,6 @@
|
|||||||
"commandRunnerHelp": "Aici poti seta comenzile care sunt executate in evenimente. Trebuie sÄ scrii una pe linie. Variabilele de mediu {0} Èi {1} vor fi disponile, {0} fiind relativÄ la {1}. Pentru mai multe informaÈii despre acest feature si variabilele de mediu disponibile, cititi {2}.",
|
"commandRunnerHelp": "Aici poti seta comenzile care sunt executate in evenimente. Trebuie sÄ scrii una pe linie. Variabilele de mediu {0} Èi {1} vor fi disponile, {0} fiind relativÄ la {1}. Pentru mai multe informaÈii despre acest feature si variabilele de mediu disponibile, cititi {2}.",
|
||||||
"commandsUpdated": "Comenzi actualizate!",
|
"commandsUpdated": "Comenzi actualizate!",
|
||||||
"createUserDir": "Auto create user home dir while adding new user",
|
"createUserDir": "Auto create user home dir while adding new user",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
|
||||||
"customStylesheet": "CSS personalizat",
|
"customStylesheet": "CSS personalizat",
|
||||||
"defaultUserDescription": "Acestea sunt setÄrile implicite pentru noii utilizatori.",
|
"defaultUserDescription": "Acestea sunt setÄrile implicite pentru noii utilizatori.",
|
||||||
"disableExternalLinks": "DezactiveazÄ linkurile externe (exceptĂąnd documentaÈia)",
|
"disableExternalLinks": "DezactiveazÄ linkurile externe (exceptĂąnd documentaÈia)",
|
||||||
@ -188,7 +160,7 @@
|
|||||||
"executeOnShellDescription": "Implicit, File Browser executÄ comenzile prin apelare directÄ a binarelor. Daca vrei sa le rulezi Ăźntr-un shell (cum ar fi Bash sau PowerShell), le poÈi defini aici cu argumentele necesare. Daca este setata, comanda va fi adÄugatÄ ca argument. Se aplicÄ pentru comenzi si hookuri.",
|
"executeOnShellDescription": "Implicit, File Browser executÄ comenzile prin apelare directÄ a binarelor. Daca vrei sa le rulezi Ăźntr-un shell (cum ar fi Bash sau PowerShell), le poÈi defini aici cu argumentele necesare. Daca este setata, comanda va fi adÄugatÄ ca argument. Se aplicÄ pentru comenzi si hookuri.",
|
||||||
"globalRules": "Acesta este un set global de reguli. Se aplicÄ tuturor utilizatorilor. PoÈi defini reguli specifice din setÄrile fiecÄrui utilizator pentru a le suprascrie pe acestea.",
|
"globalRules": "Acesta este un set global de reguli. Se aplicÄ tuturor utilizatorilor. PoÈi defini reguli specifice din setÄrile fiecÄrui utilizator pentru a le suprascrie pe acestea.",
|
||||||
"globalSettings": "SetÄri globale",
|
"globalSettings": "SetÄri globale",
|
||||||
"hideDotfiles": "Hide dotfiles",
|
"hideDotfiles": "",
|
||||||
"insertPath": "RedacteazÄ calea",
|
"insertPath": "RedacteazÄ calea",
|
||||||
"insertRegex": "RedacteazÄ expresia regulatÄ",
|
"insertRegex": "RedacteazÄ expresia regulatÄ",
|
||||||
"instanceName": "Numele instanÈei",
|
"instanceName": "Numele instanÈei",
|
||||||
@ -199,7 +171,7 @@
|
|||||||
"newUser": "Utilizator nou",
|
"newUser": "Utilizator nou",
|
||||||
"password": "Parola",
|
"password": "Parola",
|
||||||
"passwordUpdated": "Parola actualizatÄ!",
|
"passwordUpdated": "Parola actualizatÄ!",
|
||||||
"path": "Path",
|
"path": "",
|
||||||
"perm": {
|
"perm": {
|
||||||
"create": "CreazÄ fiÈiere Èi directoare",
|
"create": "CreazÄ fiÈiere Èi directoare",
|
||||||
"delete": "Èterge fiÈiere Èi directoare",
|
"delete": "Èterge fiÈiere Èi directoare",
|
||||||
@ -217,17 +189,14 @@
|
|||||||
"rules": "Reguli",
|
"rules": "Reguli",
|
||||||
"rulesHelp": "Aici poÈi defini un set de reguli pentru acest utilizator. FiÈierele blocate nu vor apÄrea in lista Èi nici nu vor putea fi accesate de utilizator. Expresiile regulate si cÄile relative la domeniul utilizatorului sunt permise.\n",
|
"rulesHelp": "Aici poÈi defini un set de reguli pentru acest utilizator. FiÈierele blocate nu vor apÄrea in lista Èi nici nu vor putea fi accesate de utilizator. Expresiile regulate si cÄile relative la domeniul utilizatorului sunt permise.\n",
|
||||||
"scope": "Domeniu",
|
"scope": "Domeniu",
|
||||||
"setDateFormat": "Set exact date format",
|
|
||||||
"settingsUpdated": "SetÄri actualizate!",
|
"settingsUpdated": "SetÄri actualizate!",
|
||||||
"shareDuration": "Share Duration",
|
"shareDuration": "",
|
||||||
"shareManagement": "Share Management",
|
"shareManagement": "",
|
||||||
"shareDeleted": "Share deleted!",
|
"singleClick": "",
|
||||||
"singleClick": "Use single clicks to open files and directories",
|
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
"dark": "",
|
||||||
"dark": "Dark",
|
"light": "",
|
||||||
"light": "Light",
|
"title": ""
|
||||||
"title": "Theme"
|
|
||||||
},
|
},
|
||||||
"user": "Utilizator",
|
"user": "Utilizator",
|
||||||
"userCommands": "Comenzi",
|
"userCommands": "Comenzi",
|
||||||
|
@ -3,17 +3,14 @@
|
|||||||
"cancel": "ĐŃĐŒĐ”ĐœĐ°",
|
"cancel": "ĐŃĐŒĐ”ĐœĐ°",
|
||||||
"clear": "ĐŃĐžŃŃĐžŃŃ",
|
"clear": "ĐŃĐžŃŃĐžŃŃ",
|
||||||
"close": "ĐаĐșŃŃŃŃ",
|
"close": "ĐаĐșŃŃŃŃ",
|
||||||
"continue": "ĐŃĐŸĐŽĐŸĐ»Đ¶ĐžŃŃ",
|
|
||||||
"copy": "ĐĐŸĐżĐžŃĐŸĐČаŃŃ",
|
"copy": "ĐĐŸĐżĐžŃĐŸĐČаŃŃ",
|
||||||
"copyFile": "ĐĄĐșĐŸĐżĐžŃĐŸĐČаŃŃ ŃаĐčĐ»",
|
"copyFile": "ĐĄĐșĐŸĐżĐžŃĐŸĐČаŃŃ ŃаĐčĐ»",
|
||||||
"copyToClipboard": "ĐĄĐșĐŸĐżĐžŃĐŸĐČаŃŃ ĐČ Đ±ŃŃĐ”Ń",
|
"copyToClipboard": "ĐĄĐșĐŸĐżĐžŃĐŸĐČаŃŃ ĐČ Đ±ŃŃĐ”Ń",
|
||||||
"copyDownloadLinkToClipboard": "ĐĄĐșĐŸĐżĐžŃĐŸĐČаŃŃ ŃŃŃĐ»ĐșŃ ĐČ Đ±ŃŃĐ”Ń",
|
|
||||||
"create": "ĐĄĐŸĐ·ĐŽĐ°ŃŃ",
|
"create": "ĐĄĐŸĐ·ĐŽĐ°ŃŃ",
|
||||||
"delete": "УЎалОŃŃ",
|
"delete": "УЎалОŃŃ",
|
||||||
"download": "ĐĄĐșаŃаŃŃ",
|
"download": "ĐĄĐșаŃаŃŃ",
|
||||||
"file": "ЀаĐčĐ»",
|
"file": "ЀаĐčĐ»",
|
||||||
"folder": "ĐапĐșа",
|
"folder": "ĐапĐșа",
|
||||||
"fullScreen": " РазĐČĐ”ŃĐœŃŃŃ ĐœĐ° ĐČĐ”ŃŃ ŃĐșŃĐ°Đœ",
|
|
||||||
"hideDotfiles": "ĐĄĐșŃŃŃŃ ŃĐŸŃĐ”ŃĐœŃĐ” ŃаĐčĐ»Ń",
|
"hideDotfiles": "ĐĄĐșŃŃŃŃ ŃĐŸŃĐ”ŃĐœŃĐ” ŃаĐčĐ»Ń",
|
||||||
"info": "ĐĐœŃĐŸ",
|
"info": "ĐĐœŃĐŸ",
|
||||||
"more": "ĐŃĐ”",
|
"more": "ĐŃĐ”",
|
||||||
@ -24,7 +21,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "ĐĐŸĐ»ŃŃĐžŃŃ ĐżĐŸŃŃĐŸŃĐœĐœŃŃ ŃŃŃĐ»ĐșŃ",
|
"permalink": "ĐĐŸĐ»ŃŃĐžŃŃ ĐżĐŸŃŃĐŸŃĐœĐœŃŃ ŃŃŃĐ»ĐșŃ",
|
||||||
"previous": "ĐазаЎ",
|
"previous": "ĐазаЎ",
|
||||||
"preview": "ĐŃДЎпŃĐŸŃĐŒĐŸŃŃ",
|
|
||||||
"publish": "ĐĐżŃблОĐșĐŸĐČаŃŃ",
|
"publish": "ĐĐżŃблОĐșĐŸĐČаŃŃ",
|
||||||
"rename": "ĐĐ”ŃĐ”ĐžĐŒĐ”ĐœĐŸĐČаŃŃ",
|
"rename": "ĐĐ”ŃĐ”ĐžĐŒĐ”ĐœĐŸĐČаŃŃ",
|
||||||
"replace": "ĐĐ”ŃДзапОŃаŃŃ",
|
"replace": "ĐĐ”ŃДзапОŃаŃŃ",
|
||||||
@ -41,17 +37,13 @@
|
|||||||
"toggleSidebar": "ĐĐŸĐșĐŸĐČĐ°Ń ĐżĐ°ĐœĐ”Đ»Ń",
|
"toggleSidebar": "ĐĐŸĐșĐŸĐČĐ°Ń ĐżĐ°ĐœĐ”Đ»Ń",
|
||||||
"update": "ĐĐ±ĐœĐŸĐČĐžŃŃ",
|
"update": "ĐĐ±ĐœĐŸĐČĐžŃŃ",
|
||||||
"upload": "ĐагŃŃĐ·ĐžŃŃ",
|
"upload": "ĐагŃŃĐ·ĐžŃŃ",
|
||||||
"openFile": "ĐŃĐșŃŃŃŃ ŃаĐčĐ»",
|
"openFile": "ĐŃĐșŃŃŃŃ ŃаĐčĐ»"
|
||||||
"discardChanges": "ĐŃĐșазаŃŃŃŃ"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "ĐĄĐșаŃаŃŃ ŃаĐčĐ»",
|
"downloadFile": "ĐĄĐșаŃаŃŃ ŃаĐčĐ»",
|
||||||
"downloadFolder": "ĐагŃŃĐ·ĐžŃŃ ĐżĐ°ĐżĐșŃ",
|
"downloadFolder": "ĐагŃŃĐ·ĐžŃŃ ĐżĐ°ĐżĐșŃ",
|
||||||
"downloadSelected": "ĐĄĐșаŃаŃŃ ĐČŃбŃĐ°ĐœĐœĐŸĐ”"
|
"downloadSelected": "ĐĄĐșаŃаŃŃ ĐČŃбŃĐ°ĐœĐœĐŸĐ”"
|
||||||
},
|
},
|
||||||
"upload": {
|
|
||||||
"abortUpload": "ĐŃ ĐŽĐ”ĐčŃŃĐČĐžŃДлŃĐœĐŸ, ŃŃĐŸ Ń
ĐŸŃĐžŃĐ” ĐżŃĐ”ŃĐČаŃŃ ĐŸĐżĐ”ŃаŃĐžŃ?"
|
|
||||||
},
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "ĐŁ ĐČĐ°Ń ĐœĐ”Ń ĐżŃаĐČ ĐŽĐŸŃŃŃпа Đș ŃŃĐŸĐŒŃ.",
|
"forbidden": "ĐŁ ĐČĐ°Ń ĐœĐ”Ń ĐżŃаĐČ ĐŽĐŸŃŃŃпа Đș ŃŃĐŸĐŒŃ.",
|
||||||
"internal": "ЧŃĐŸ-ŃĐŸ ĐżĐŸŃĐ»ĐŸ ĐœĐ” ŃаĐș.",
|
"internal": "ЧŃĐŸ-ŃĐŸ ĐżĐŸŃĐ»ĐŸ ĐœĐ” ŃаĐș.",
|
||||||
@ -80,7 +72,7 @@
|
|||||||
"click": "ĐČŃбŃаŃŃ ŃаĐčĐ» ОлО ĐșаŃĐ°Đ»ĐŸĐł",
|
"click": "ĐČŃбŃаŃŃ ŃаĐčĐ» ОлО ĐșаŃĐ°Đ»ĐŸĐł",
|
||||||
"ctrl": {
|
"ctrl": {
|
||||||
"click": "ĐČŃбŃаŃŃ ĐœĐ”ŃĐșĐŸĐ»ŃĐșĐŸ ŃаĐčĐ»ĐŸĐČ ĐžĐ»Đž ĐșаŃĐ°Đ»ĐŸĐłĐŸĐČ",
|
"click": "ĐČŃбŃаŃŃ ĐœĐ”ŃĐșĐŸĐ»ŃĐșĐŸ ŃаĐčĐ»ĐŸĐČ ĐžĐ»Đž ĐșаŃĐ°Đ»ĐŸĐłĐŸĐČ",
|
||||||
"f": "ĐŸŃĐșŃŃŃŃĐ” ĐżĐŸĐžŃĐșĐž",
|
"f": "ĐŸŃĐșŃŃŃŃ ĐżĐŸĐžŃĐș",
|
||||||
"s": "ŃĐșаŃаŃŃ ŃаĐčĐ» ОлО ŃĐ”ĐșŃŃĐžĐč ĐșаŃĐ°Đ»ĐŸĐł"
|
"s": "ŃĐșаŃаŃŃ ŃаĐčĐ» ОлО ŃĐ”ĐșŃŃĐžĐč ĐșаŃĐ°Đ»ĐŸĐł"
|
||||||
},
|
},
|
||||||
"del": "ŃЎалОŃŃ ĐČŃбŃĐ°ĐœĐœŃĐ” ŃĐ»Đ”ĐŒĐ”ĐœŃŃ",
|
"del": "ŃЎалОŃŃ ĐČŃбŃĐ°ĐœĐœŃĐ” ŃĐ»Đ”ĐŒĐ”ĐœŃŃ",
|
||||||
@ -110,7 +102,6 @@
|
|||||||
"deleteMessageMultiple": "УЎалОŃŃ ŃŃĐž ŃаĐčĐ»Ń ({count})?",
|
"deleteMessageMultiple": "УЎалОŃŃ ŃŃĐž ŃаĐčĐ»Ń ({count})?",
|
||||||
"deleteMessageSingle": "УЎалОŃŃ ŃŃĐŸŃ ŃаĐčĐ»/ĐșаŃĐ°Đ»ĐŸĐł?",
|
"deleteMessageSingle": "УЎалОŃŃ ŃŃĐŸŃ ŃаĐčĐ»/ĐșаŃĐ°Đ»ĐŸĐł?",
|
||||||
"deleteMessageShare": "УЎалОŃŃ ŃŃĐŸŃ ĐŸĐ±ŃĐžĐč ŃаĐčĐ»/ĐșаŃĐ°Đ»ĐŸĐł ({path})?",
|
"deleteMessageShare": "УЎалОŃŃ ŃŃĐŸŃ ĐŸĐ±ŃĐžĐč ŃаĐčĐ»/ĐșаŃĐ°Đ»ĐŸĐł ({path})?",
|
||||||
"deleteUser": "ĐŃ ĐŽĐ”ĐčŃŃĐČĐžŃДлŃĐœĐŸ, Ń
ĐŸŃĐžŃĐ” ŃЎалОŃŃ ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ?",
|
|
||||||
"deleteTitle": "УЎалОŃŃ ŃаĐčĐ»Ń",
|
"deleteTitle": "УЎалОŃŃ ŃаĐčĐ»Ń",
|
||||||
"displayName": "ĐŃĐŸĐ±ŃĐ°Đ¶Đ°Đ”ĐŒĐŸĐ” ĐžĐŒŃ:",
|
"displayName": "ĐŃĐŸĐ±ŃĐ°Đ¶Đ°Đ”ĐŒĐŸĐ” ĐžĐŒŃ:",
|
||||||
"download": "ĐĄĐșаŃаŃŃ ŃаĐčĐ»Ń",
|
"download": "ĐĄĐșаŃаŃŃ ŃаĐčĐ»Ń",
|
||||||
@ -120,7 +111,7 @@
|
|||||||
"filesSelected": "ЀаĐčĐ»ĐŸĐČ ĐČŃбŃĐ°ĐœĐŸ: {count}.",
|
"filesSelected": "ЀаĐčĐ»ĐŸĐČ ĐČŃбŃĐ°ĐœĐŸ: {count}.",
|
||||||
"lastModified": "ĐĐŸŃĐ»Đ”ĐŽĐœĐ”Đ” ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐ”",
|
"lastModified": "ĐĐŸŃĐ»Đ”ĐŽĐœĐ”Đ” ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐ”",
|
||||||
"move": "ĐĐ”ŃĐ”ĐŒĐ”ŃŃĐžŃŃ",
|
"move": "ĐĐ”ŃĐ”ĐŒĐ”ŃŃĐžŃŃ",
|
||||||
"moveMessage": "ĐŃбДŃĐžŃĐ” ĐœĐŸĐČŃĐč ĐŽĐŸĐŒĐ°ŃĐœĐžĐč ĐșаŃĐ°Đ»ĐŸĐł ĐŽĐ»Ń ĐČаŃĐžŃ
ŃаĐčĐ»ĐŸĐČ/ĐżĐ°ĐżĐŸĐș:",
|
"moveMessage": "ĐĐ”ŃĐ”ĐŒĐ”ŃŃĐžŃŃ ĐČ:",
|
||||||
"newArchetype": "ĐĄĐŸĐ·ĐŽĐ°ĐčŃĐ” ĐœĐŸĐČŃŃ Đ·Đ°ĐżĐžŃŃ ĐœĐ° ĐŸŃĐœĐŸĐČĐ” аŃŃ
Đ”ŃОпа. ЀаĐčĐ» бŃĐŽĐ”Ń ŃĐŸĐ·ĐŽĐ°Đœ ĐČ ĐșаŃĐ°Đ»ĐŸĐłĐ”.",
|
"newArchetype": "ĐĄĐŸĐ·ĐŽĐ°ĐčŃĐ” ĐœĐŸĐČŃŃ Đ·Đ°ĐżĐžŃŃ ĐœĐ° ĐŸŃĐœĐŸĐČĐ” аŃŃ
Đ”ŃОпа. ЀаĐčĐ» бŃĐŽĐ”Ń ŃĐŸĐ·ĐŽĐ°Đœ ĐČ ĐșаŃĐ°Đ»ĐŸĐłĐ”.",
|
||||||
"newDir": "ĐĐŸĐČŃĐč ĐșаŃĐ°Đ»ĐŸĐł",
|
"newDir": "ĐĐŸĐČŃĐč ĐșаŃĐ°Đ»ĐŸĐł",
|
||||||
"newDirMessage": "ĐĐŒŃ ĐœĐŸĐČĐŸĐłĐŸ ĐșаŃĐ°Đ»ĐŸĐłĐ°.",
|
"newDirMessage": "ĐĐŒŃ ĐœĐŸĐČĐŸĐłĐŸ ĐșаŃĐ°Đ»ĐŸĐłĐ°.",
|
||||||
@ -137,11 +128,8 @@
|
|||||||
"show": "ĐĐŸĐșазаŃŃ",
|
"show": "ĐĐŸĐșазаŃŃ",
|
||||||
"size": "Đ Đ°Đ·ĐŒĐ”Ń",
|
"size": "Đ Đ°Đ·ĐŒĐ”Ń",
|
||||||
"upload": "ĐагŃŃĐ·ĐžŃŃ",
|
"upload": "ĐагŃŃĐ·ĐžŃŃ",
|
||||||
"uploadFiles": "ĐагŃŃĐ¶Đ°Ń {files} ŃаĐčĐ»Ń...",
|
|
||||||
"uploadMessage": "ĐŃбДŃĐžŃĐ” ĐČаŃĐžĐ°ĐœŃ ĐŽĐ»Ń Đ·Đ°ĐłŃŃĐ·ĐșĐž.",
|
"uploadMessage": "ĐŃбДŃĐžŃĐ” ĐČаŃĐžĐ°ĐœŃ ĐŽĐ»Ń Đ·Đ°ĐłŃŃĐ·ĐșĐž.",
|
||||||
"optionalPassword": "ĐĐ”ĐŸĐ±ŃзаŃДлŃĐœŃĐč паŃĐŸĐ»Ń",
|
"optionalPassword": "ĐĐ”ĐŸĐ±ŃзаŃДлŃĐœŃĐč паŃĐŸĐ»Ń"
|
||||||
"resolution": "РазŃĐ”ŃĐ”ĐœĐžĐ”",
|
|
||||||
"discardEditorChanges": "ĐŃ ĐŽĐ”ĐčŃŃĐČĐžŃДлŃĐœĐŸ жДлаДŃĐ” ĐŸŃĐŒĐ”ĐœĐžŃŃ ĐČаŃĐž ĐżŃаĐČĐșĐž?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "ĐĐ·ĐŸĐ±ŃĐ°Đ¶Đ”ĐœĐžŃ",
|
"images": "ĐĐ·ĐŸĐ±ŃĐ°Đ¶Đ”ĐœĐžŃ",
|
||||||
@ -170,14 +158,6 @@
|
|||||||
"commandRunnerHelp": "ĐĐŽĐ”ŃŃ ĐČŃ ĐŒĐŸĐ¶Đ”ŃĐ” ŃŃŃĐ°ĐœĐŸĐČĐžŃŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ, ĐșĐŸŃĐŸŃŃĐ” бŃĐŽŃŃ ĐČŃĐżĐŸĐ»ĐœŃŃŃŃŃ ĐČ ŃĐșĐ°Đ·Đ°ĐœĐœŃŃ
ŃĐŸĐ±ŃŃĐžŃŃ
. ĐŃ ĐŽĐŸĐ»Đ¶ĐœŃ ŃĐșазаŃŃ ĐżĐŸ ĐŸĐŽĐœĐŸĐč ĐșĐŸĐŒĐ°ĐœĐŽĐ” ĐČ ĐșĐ°Đ¶ĐŽĐŸĐč ŃŃŃĐŸĐșĐ”. ĐĐ”ŃĐ”ĐŒĐ”ĐœĐœŃĐ” ŃŃĐ”ĐŽŃ {0} Đž {1} бŃĐŽŃŃ ĐŽĐŸŃŃŃĐżĐœŃ, бŃĐŽŃŃĐž {0} ĐŸŃĐœĐŸŃĐžŃДлŃĐœĐŸ {1}. ĐĐŸĐżĐŸĐ»ĐœĐžŃДлŃĐœŃĐ” ŃĐČĐ”ĐŽĐ”ĐœĐžŃ ĐŸĐ± ŃŃĐŸĐč ŃŃĐœĐșŃОО Đž ĐŽĐŸŃŃŃĐżĐœŃŃ
пДŃĐ”ĐŒĐ”ĐœĐœŃŃ
ŃŃĐ”ĐŽŃ ŃĐŒ. Đ {2}.",
|
"commandRunnerHelp": "ĐĐŽĐ”ŃŃ ĐČŃ ĐŒĐŸĐ¶Đ”ŃĐ” ŃŃŃĐ°ĐœĐŸĐČĐžŃŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ, ĐșĐŸŃĐŸŃŃĐ” бŃĐŽŃŃ ĐČŃĐżĐŸĐ»ĐœŃŃŃŃŃ ĐČ ŃĐșĐ°Đ·Đ°ĐœĐœŃŃ
ŃĐŸĐ±ŃŃĐžŃŃ
. ĐŃ ĐŽĐŸĐ»Đ¶ĐœŃ ŃĐșазаŃŃ ĐżĐŸ ĐŸĐŽĐœĐŸĐč ĐșĐŸĐŒĐ°ĐœĐŽĐ” ĐČ ĐșĐ°Đ¶ĐŽĐŸĐč ŃŃŃĐŸĐșĐ”. ĐĐ”ŃĐ”ĐŒĐ”ĐœĐœŃĐ” ŃŃĐ”ĐŽŃ {0} Đž {1} бŃĐŽŃŃ ĐŽĐŸŃŃŃĐżĐœŃ, бŃĐŽŃŃĐž {0} ĐŸŃĐœĐŸŃĐžŃДлŃĐœĐŸ {1}. ĐĐŸĐżĐŸĐ»ĐœĐžŃДлŃĐœŃĐ” ŃĐČĐ”ĐŽĐ”ĐœĐžŃ ĐŸĐ± ŃŃĐŸĐč ŃŃĐœĐșŃОО Đž ĐŽĐŸŃŃŃĐżĐœŃŃ
пДŃĐ”ĐŒĐ”ĐœĐœŃŃ
ŃŃĐ”ĐŽŃ ŃĐŒ. Đ {2}.",
|
||||||
"commandsUpdated": "ĐĐŸĐŒĐ°ĐœĐŽŃ ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœŃ!",
|
"commandsUpdated": "ĐĐŸĐŒĐ°ĐœĐŽŃ ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœŃ!",
|
||||||
"createUserDir": "ĐĐČŃĐŸĐŒĐ°ŃĐžŃĐ”ŃĐșĐŸĐ” ŃĐŸĐ·ĐŽĐ°ĐœĐžĐ” ĐŽĐŸĐŒĐ°ŃĐœĐ”ĐłĐŸ ĐșаŃĐ°Đ»ĐŸĐłĐ° ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃĐ”Đ»Ń ĐżŃĐž ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžĐž ĐœĐŸĐČĐŸĐłĐŸ ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ",
|
"createUserDir": "ĐĐČŃĐŸĐŒĐ°ŃĐžŃĐ”ŃĐșĐŸĐ” ŃĐŸĐ·ĐŽĐ°ĐœĐžĐ” ĐŽĐŸĐŒĐ°ŃĐœĐ”ĐłĐŸ ĐșаŃĐ°Đ»ĐŸĐłĐ° ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃĐ”Đ»Ń ĐżŃĐž ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐžĐž ĐœĐŸĐČĐŸĐłĐŸ ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "ĐагŃŃĐ¶Đ”ĐœĐœŃĐ” ŃаĐčĐ»Ń",
|
|
||||||
"tusUploadsHelp": " File Browser ĐżĐŸĐŽĐŽĐ”ŃжОĐČĐ°Đ”Ń Đ·Đ°ĐłŃŃĐ·ĐșŃ ŃаĐčĐ»ĐŸĐČ ĐżĐŸ ŃаŃŃŃĐŒ, ŃŃĐŸ ĐżĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń ŃĐ°Đ±ĐŸŃаŃŃ ĐČ ŃĐ”ŃŃŃ
ĐœĐžĐ·ĐșĐŸĐłĐŸ ĐșаŃĐ”ŃŃĐČа.",
|
|
||||||
"tusUploadsChunkSize": "ĐŁĐșазŃĐČĐ°Đ”Ń ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃĐœŃĐč ŃĐ°Đ·ĐŒĐ”Ń Đ·Đ°ĐżŃĐŸŃа (ĐŒĐ”Đ»ĐșОД загŃŃĐ·ĐșĐž ĐżĐŸĐčĐŽŃŃ ĐœĐ°ĐżŃŃĐŒŃŃ). ĐŃ ĐŒĐŸĐ¶Đ”ŃĐ” ĐČĐČĐ”ŃŃĐž ĐżŃĐŸŃŃĐŸĐ” ŃĐ”Đ»ĐŸĐ” ŃĐžŃĐ»ĐŸ, ĐŸĐ±ĐŸĐ·ĐœĐ°ŃаŃŃДД ŃĐ°Đ·ĐŒĐ”Ń ĐČĐČĐŸĐŽĐ° ĐČ Đ±Đ°ĐčŃаŃ
, ОлО ŃŃŃĐŸĐșŃ, ĐœĐ°ĐżŃĐžĐŒĐ”Ń 10MB, 1GB Đž Ń. ĐŽ.",
|
|
||||||
"tusUploadsRetryCount": "ĐĐŸĐ»ĐžŃĐ”ŃŃĐČĐŸ ĐżĐŸĐČŃĐŸŃĐœŃŃ
ĐżĐŸĐżŃŃĐŸĐș, ĐșĐŸŃĐŸŃŃĐ” ĐœĐ”ĐŸĐ±Ń
ĐŸĐŽĐžĐŒĐŸ ĐČŃĐżĐŸĐ»ĐœĐžŃŃ, Đ”ŃлО ŃŃĐ°ĐłĐŒĐ”ĐœŃ ĐœĐ” ŃĐŽĐ°Đ»ĐŸŃŃ Đ·Đ°ĐłŃŃĐ·ĐžŃŃ.",
|
|
||||||
"userHomeBasePath": "ĐŃŃŃ Đș ĐŽĐŸĐŒĐ°ŃĐœĐ”ĐŒŃ ĐșаŃĐ°Đ»ĐŸĐłŃ ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ",
|
|
||||||
"userScopeGenerationPlaceholder": "ĐблаŃŃŃ ĐŽĐ”ĐčŃŃĐČĐžŃ Đ±ŃĐŽĐ”Ń ŃĐłĐ”ĐœĐ”ŃĐžŃĐŸĐČĐ°ĐœĐ° аĐČŃĐŸĐŒĐ°ŃĐžŃĐ”ŃĐșĐž",
|
|
||||||
"createUserHomeDirectory": "ĐĄĐŸĐ·ĐŽĐ°ŃŃ ĐŽĐŸĐŒĐ°ŃĐœĐžĐč ĐșаŃĐ°Đ»ĐŸĐł ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ",
|
|
||||||
"customStylesheet": "ĐĄĐČĐŸĐč ŃŃОлŃ",
|
"customStylesheet": "ĐĄĐČĐŸĐč ŃŃОлŃ",
|
||||||
"defaultUserDescription": "ĐŃĐŸ ĐœĐ°ŃŃŃĐŸĐčĐșĐž ĐżĐŸ ŃĐŒĐŸĐ»ŃĐ°ĐœĐžŃ ĐŽĐ»Ń ĐœĐŸĐČŃŃ
ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлДĐč.",
|
"defaultUserDescription": "ĐŃĐŸ ĐœĐ°ŃŃŃĐŸĐčĐșĐž ĐżĐŸ ŃĐŒĐŸĐ»ŃĐ°ĐœĐžŃ ĐŽĐ»Ń ĐœĐŸĐČŃŃ
ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлДĐč.",
|
||||||
"disableExternalLinks": "ĐŃĐșĐ»ŃŃĐžŃŃ ĐČĐœĐ”ŃĐœĐžĐ” ŃŃŃĐ»ĐșĐž (ĐșŃĐŸĐŒĐ” ĐŽĐŸĐșŃĐŒĐ”ĐœŃаŃОО)",
|
"disableExternalLinks": "ĐŃĐșĐ»ŃŃĐžŃŃ ĐČĐœĐ”ŃĐœĐžĐ” ŃŃŃĐ»ĐșĐž (ĐșŃĐŸĐŒĐ” ĐŽĐŸĐșŃĐŒĐ”ĐœŃаŃОО)",
|
||||||
@ -216,7 +196,7 @@
|
|||||||
"ruleExample2": "Đ±Đ»ĐŸĐșĐžŃŃĐ”Ń ĐŽĐŸŃŃŃĐż Đș ŃаĐčĐ»Ń Ń ĐžĐŒĐ”ĐœĐ”ĐŒ Caddyfile ĐČ ĐșĐŸŃĐœĐ”ĐČĐŸĐč ĐŸĐ±Đ»Đ°ŃŃĐž.",
|
"ruleExample2": "Đ±Đ»ĐŸĐșĐžŃŃĐ”Ń ĐŽĐŸŃŃŃĐż Đș ŃаĐčĐ»Ń Ń ĐžĐŒĐ”ĐœĐ”ĐŒ Caddyfile ĐČ ĐșĐŸŃĐœĐ”ĐČĐŸĐč ĐŸĐ±Đ»Đ°ŃŃĐž.",
|
||||||
"rules": "ĐŃаĐČа",
|
"rules": "ĐŃаĐČа",
|
||||||
"rulesHelp": "ĐĐŽĐ”ŃŃ ĐČŃ ĐŒĐŸĐ¶Đ”ŃĐ” ĐŸĐżŃДЎДлОŃŃ ĐœĐ°Đ±ĐŸŃ ŃазŃĐ”ŃаŃŃĐžŃ
Đž запŃĐ”ŃаŃŃĐžŃ
ĐżŃаĐČОл ĐŽĐ»Ń ŃŃĐŸĐłĐŸ ĐșĐŸĐœĐșŃĐ”ŃĐœĐŸĐłĐŸ ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ. ĐĐ»ĐŸĐșĐžŃĐŸĐČĐ°ĐœĐœŃĐ” ŃаĐčĐ»Ń ĐœĐ” бŃĐŽŃŃ ĐŸŃĐŸĐ±ŃажаŃŃŃŃ ĐČ ŃпОŃĐșаŃ
, Đž ĐœĐ” бŃĐŽŃŃ ĐŽĐŸŃŃŃĐżĐœŃ ĐŽĐ»Ń ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ. ĐŃŃŃ ĐżĐŸĐŽĐŽĐ”ŃжĐșа ŃДгŃĐ»ŃŃĐœŃŃ
ĐČŃŃĐ°Đ¶Đ”ĐœĐžĐč Đž ĐŸŃĐœĐŸŃĐžŃДлŃĐœŃŃ
ĐżŃŃĐ”Đč.\n",
|
"rulesHelp": "ĐĐŽĐ”ŃŃ ĐČŃ ĐŒĐŸĐ¶Đ”ŃĐ” ĐŸĐżŃДЎДлОŃŃ ĐœĐ°Đ±ĐŸŃ ŃазŃĐ”ŃаŃŃĐžŃ
Đž запŃĐ”ŃаŃŃĐžŃ
ĐżŃаĐČОл ĐŽĐ»Ń ŃŃĐŸĐłĐŸ ĐșĐŸĐœĐșŃĐ”ŃĐœĐŸĐłĐŸ ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ. ĐĐ»ĐŸĐșĐžŃĐŸĐČĐ°ĐœĐœŃĐ” ŃаĐčĐ»Ń ĐœĐ” бŃĐŽŃŃ ĐŸŃĐŸĐ±ŃажаŃŃŃŃ ĐČ ŃпОŃĐșаŃ
, Đž ĐœĐ” бŃĐŽŃŃ ĐŽĐŸŃŃŃĐżĐœŃ ĐŽĐ»Ń ĐżĐŸĐ»ŃĐ·ĐŸĐČаŃДлŃ. ĐŃŃŃ ĐżĐŸĐŽĐŽĐ”ŃжĐșа ŃДгŃĐ»ŃŃĐœŃŃ
ĐČŃŃĐ°Đ¶Đ”ĐœĐžĐč Đž ĐŸŃĐœĐŸŃĐžŃДлŃĐœŃŃ
ĐżŃŃĐ”Đč.\n",
|
||||||
"scope": "ĐблаŃŃŃ",
|
"scope": "ĐĐŸŃĐ”ĐœŃ",
|
||||||
"setDateFormat": "ĐŁŃŃĐ°ĐœĐŸĐČĐžŃŃ ŃĐŸŃĐœŃĐč ŃĐŸŃĐŒĐ°Ń ĐŽĐ°ŃŃ",
|
"setDateFormat": "ĐŁŃŃĐ°ĐœĐŸĐČĐžŃŃ ŃĐŸŃĐœŃĐč ŃĐŸŃĐŒĐ°Ń ĐŽĐ°ŃŃ",
|
||||||
"settingsUpdated": "ĐаŃŃŃĐŸĐčĐșĐž ĐżŃĐžĐŒĐ”ĐœĐ”ĐœŃ!",
|
"settingsUpdated": "ĐаŃŃŃĐŸĐčĐșĐž ĐżŃĐžĐŒĐ”ĐœĐ”ĐœŃ!",
|
||||||
"shareDuration": "ĐŃĐ”ĐŒŃ ŃаŃŃаŃĐ”ĐœĐœĐŸĐč ŃŃŃĐ»ĐșĐž",
|
"shareDuration": "ĐŃĐ”ĐŒŃ ŃаŃŃаŃĐ”ĐœĐœĐŸĐč ŃŃŃĐ»ĐșĐž",
|
||||||
@ -224,7 +204,6 @@
|
|||||||
"shareDeleted": "РаŃŃаŃĐ”ĐœĐœĐ°Ń ŃŃŃĐ»Đșа ŃĐŽĐ°Đ»Đ”ĐœĐ°!",
|
"shareDeleted": "РаŃŃаŃĐ”ĐœĐœĐ°Ń ŃŃŃĐ»Đșа ŃĐŽĐ°Đ»Đ”ĐœĐ°!",
|
||||||
"singleClick": "ĐŃĐșŃŃŃОД ŃаĐčĐ»ĐŸĐČ Đž ĐșаŃĐ°Đ»ĐŸĐłĐŸĐČ ĐŸĐŽĐœĐžĐŒ ĐșлОĐșĐŸĐŒ",
|
"singleClick": "ĐŃĐșŃŃŃОД ŃаĐčĐ»ĐŸĐČ Đž ĐșаŃĐ°Đ»ĐŸĐłĐŸĐČ ĐŸĐŽĐœĐžĐŒ ĐșлОĐșĐŸĐŒ",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": " ĐĄĐžŃŃĐ”ĐŒĐœŃĐ” ĐœĐ°ŃŃŃĐŸĐčĐșĐž ĐżĐŸ ŃĐŒĐŸĐ»ŃĐ°ĐœĐžŃ",
|
|
||||||
"dark": "ĐąĐ”ĐŒĐœĐ°Ń",
|
"dark": "ĐąĐ”ĐŒĐœĐ°Ń",
|
||||||
"light": "ĐĄĐČĐ”ŃлаŃ",
|
"light": "ĐĄĐČĐ”ŃлаŃ",
|
||||||
"title": "ĐąĐ”ĐŒĐ°"
|
"title": "ĐąĐ”ĐŒĐ°"
|
||||||
|
@ -3,17 +3,14 @@
|
|||||||
"cancel": "ZruƥiƄ",
|
"cancel": "ZruƥiƄ",
|
||||||
"clear": "ZruĆĄiĆ„ vĂœber",
|
"clear": "ZruĆĄiĆ„ vĂœber",
|
||||||
"close": "ZavrieƄ",
|
"close": "ZavrieƄ",
|
||||||
"continue": "Continue",
|
|
||||||
"copy": "KopĂrovaĆ„",
|
"copy": "KopĂrovaĆ„",
|
||||||
"copyFile": "KopĂrovaĆ„ sĂșbor",
|
"copyFile": "KopĂrovaĆ„ sĂșbor",
|
||||||
"copyToClipboard": "KopĂrovaĆ„ do schrĂĄnky",
|
"copyToClipboard": "KopĂrovaĆ„ do schrĂĄnky",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "VytvoriƄ",
|
"create": "VytvoriƄ",
|
||||||
"delete": "OdstråniƄ",
|
"delete": "OdstråniƄ",
|
||||||
"download": "StiahnuƄ",
|
"download": "StiahnuƄ",
|
||||||
"file": "SĂșbor",
|
"file": "SĂșbor",
|
||||||
"folder": "PrieÄinok",
|
"folder": "PrieÄinok",
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "SkryĆ„ sĂșbory zaÄĂnajĂșce bodkou",
|
"hideDotfiles": "SkryĆ„ sĂșbory zaÄĂnajĂșce bodkou",
|
||||||
"info": "Info",
|
"info": "Info",
|
||||||
"more": "Viac",
|
"more": "Viac",
|
||||||
@ -24,7 +21,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "ZĂskaĆ„ trvalĂœ odkaz",
|
"permalink": "ZĂskaĆ„ trvalĂœ odkaz",
|
||||||
"previous": "Predoƥlé",
|
"previous": "Predoƥlé",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "ZverejniƄ",
|
"publish": "ZverejniƄ",
|
||||||
"rename": "PremenovaƄ",
|
"rename": "PremenovaƄ",
|
||||||
"replace": "NahradiƄ",
|
"replace": "NahradiƄ",
|
||||||
@ -41,17 +37,13 @@
|
|||||||
"toggleSidebar": "PrepnĂșĆ„ sidebar",
|
"toggleSidebar": "PrepnĂșĆ„ sidebar",
|
||||||
"update": "AktualizovaƄ",
|
"update": "AktualizovaƄ",
|
||||||
"upload": "NahraƄ",
|
"upload": "NahraƄ",
|
||||||
"openFile": "OtvoriĆ„ sĂșbor",
|
"openFile": "OtvoriĆ„ sĂșbor"
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "StiahnuĆ„ sĂșbor",
|
"downloadFile": "StiahnuĆ„ sĂșbor",
|
||||||
"downloadFolder": "StiahnuĆ„ prieÄinok",
|
"downloadFolder": "StiahnuĆ„ prieÄinok",
|
||||||
"downloadSelected": "StiahnuƄ vybraté"
|
"downloadSelected": "StiahnuƄ vybraté"
|
||||||
},
|
},
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "You don't have permissions to access this.",
|
"forbidden": "You don't have permissions to access this.",
|
||||||
"internal": "Something really went wrong.",
|
"internal": "Something really went wrong.",
|
||||||
@ -110,7 +102,6 @@
|
|||||||
"deleteMessageMultiple": "Naozaj chcete odstrĂĄniĆ„ {count} sĂșbor(ov)?",
|
"deleteMessageMultiple": "Naozaj chcete odstrĂĄniĆ„ {count} sĂșbor(ov)?",
|
||||||
"deleteMessageSingle": "Naozaj chcete odstrĂĄniĆ„ tento sĂșbor/prieÄinok?",
|
"deleteMessageSingle": "Naozaj chcete odstrĂĄniĆ„ tento sĂșbor/prieÄinok?",
|
||||||
"deleteMessageShare": "Naozaj chcete odstrĂĄniĆ„ toto zdieÄŸanie({path})?",
|
"deleteMessageShare": "Naozaj chcete odstrĂĄniĆ„ toto zdieÄŸanie({path})?",
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "OdstrĂĄnenie sĂșborov",
|
"deleteTitle": "OdstrĂĄnenie sĂșborov",
|
||||||
"displayName": "ZobrazenĂœ nĂĄzov:",
|
"displayName": "ZobrazenĂœ nĂĄzov:",
|
||||||
"download": "StiahnuĆ„ sĂșbory",
|
"download": "StiahnuĆ„ sĂșbory",
|
||||||
@ -137,11 +128,8 @@
|
|||||||
"show": "ZobraziƄ",
|
"show": "ZobraziƄ",
|
||||||
"size": "VeÄŸkosĆ„",
|
"size": "VeÄŸkosĆ„",
|
||||||
"upload": "NahraƄ",
|
"upload": "NahraƄ",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
|
||||||
"uploadMessage": "ZvoÄŸte moĆŸnosĆ„ nahrĂĄvania.",
|
"uploadMessage": "ZvoÄŸte moĆŸnosĆ„ nahrĂĄvania.",
|
||||||
"optionalPassword": "VoliteÄŸnĂ© heslo",
|
"optionalPassword": "VoliteÄŸnĂ© heslo"
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "ObrĂĄzky",
|
"images": "ObrĂĄzky",
|
||||||
@ -170,14 +158,6 @@
|
|||||||
"commandRunnerHelp": "Sem mĂŽĆŸete nastaviĆ„ prĂkazy, ktorĂ© sa vykonajĂș pri urÄitĂœch udalostiach. MusĂte pĂsaĆ„ jeden na riadok. PremennĂ© prostredia {0} a {1} sĂș k dispozĂcii, s tĂœm ĆŸe {0} relatĂvne k {1}. Viac informĂĄciĂ o tejto funkcionalite a dostupnĂœch premennĂœch prostredia nĂĄjdete na {2}.",
|
"commandRunnerHelp": "Sem mĂŽĆŸete nastaviĆ„ prĂkazy, ktorĂ© sa vykonajĂș pri urÄitĂœch udalostiach. MusĂte pĂsaĆ„ jeden na riadok. PremennĂ© prostredia {0} a {1} sĂș k dispozĂcii, s tĂœm ĆŸe {0} relatĂvne k {1}. Viac informĂĄciĂ o tejto funkcionalite a dostupnĂœch premennĂœch prostredia nĂĄjdete na {2}.",
|
||||||
"commandsUpdated": "PrĂkazy upravenĂ©!",
|
"commandsUpdated": "PrĂkazy upravenĂ©!",
|
||||||
"createUserDir": "Automaticky vytvoriĆ„ domovskĂœ prieÄinok pri pridanĂ pouĆŸĂvateÄŸa",
|
"createUserDir": "Automaticky vytvoriĆ„ domovskĂœ prieÄinok pri pridanĂ pouĆŸĂvateÄŸa",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
|
||||||
"customStylesheet": "VlastnĂœ Stylesheet",
|
"customStylesheet": "VlastnĂœ Stylesheet",
|
||||||
"defaultUserDescription": "Toto sĂș predvolanĂ© nastavenia novĂ©ho pouĆŸĂvateÄŸa.",
|
"defaultUserDescription": "Toto sĂș predvolanĂ© nastavenia novĂ©ho pouĆŸĂvateÄŸa.",
|
||||||
"disableExternalLinks": "VypnĂșĆ„ externĂ© odkazy (okrem dokumentĂĄcie)",
|
"disableExternalLinks": "VypnĂșĆ„ externĂ© odkazy (okrem dokumentĂĄcie)",
|
||||||
@ -217,14 +197,12 @@
|
|||||||
"rules": "PravidlĂĄ",
|
"rules": "PravidlĂĄ",
|
||||||
"rulesHelp": "Tu mĂŽĆŸete definovaĆ„ pravidlĂĄ pre konkrĂ©tneho pouĆŸĂvateÄŸa. BlokovanĂ© sĂșbory pouĆŸĂvateÄŸ nebude vidieĆ„ a ani nebude k nim maĆ„ prĂstup. Podporujeme regex a cesty relatĂvne k pouĆŸĂvateÄŸovi.\n",
|
"rulesHelp": "Tu mĂŽĆŸete definovaĆ„ pravidlĂĄ pre konkrĂ©tneho pouĆŸĂvateÄŸa. BlokovanĂ© sĂșbory pouĆŸĂvateÄŸ nebude vidieĆ„ a ani nebude k nim maĆ„ prĂstup. Podporujeme regex a cesty relatĂvne k pouĆŸĂvateÄŸovi.\n",
|
||||||
"scope": "Scope",
|
"scope": "Scope",
|
||||||
"setDateFormat": "Set exact date format",
|
|
||||||
"settingsUpdated": "Nastavenia upravené!",
|
"settingsUpdated": "Nastavenia upravené!",
|
||||||
"shareDuration": "Trvanie zdieÄŸania",
|
"shareDuration": "Trvanie zdieÄŸania",
|
||||||
"shareManagement": "SprĂĄva zdieÄŸania",
|
"shareManagement": "SprĂĄva zdieÄŸania",
|
||||||
"shareDeleted": "ZdieÄŸanie odstrĂĄnenĂ©!",
|
"shareDeleted": "ZdieÄŸanie odstrĂĄnenĂ©!",
|
||||||
"singleClick": "PouĆŸĂvaĆ„ jeden klik na otvĂĄranie sĂșborov a prieÄinkov",
|
"singleClick": "PouĆŸĂvaĆ„ jeden klik na otvĂĄranie sĂșborov a prieÄinkov",
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
|
||||||
"dark": "TmavĂĄ",
|
"dark": "TmavĂĄ",
|
||||||
"light": "SvetlĂĄ",
|
"light": "SvetlĂĄ",
|
||||||
"title": "Téma"
|
"title": "Téma"
|
||||||
|
@ -3,18 +3,13 @@
|
|||||||
"cancel": "Avbryt",
|
"cancel": "Avbryt",
|
||||||
"clear": "Rensa",
|
"clear": "Rensa",
|
||||||
"close": "StÀng",
|
"close": "StÀng",
|
||||||
"continue": "Continue",
|
|
||||||
"copy": "Kopiera",
|
"copy": "Kopiera",
|
||||||
"copyFile": "Kopiera fil",
|
"copyFile": "Kopiera fil",
|
||||||
"copyToClipboard": "Kopiera till urklipp",
|
"copyToClipboard": "Kopiera till urklipp",
|
||||||
"copyDownloadLinkToClipboard": "Copy download link to clipboard",
|
|
||||||
"create": "Skapa",
|
"create": "Skapa",
|
||||||
"delete": "Ta bort",
|
"delete": "Ta bort",
|
||||||
"download": "Ladda ner",
|
"download": "Ladda ner",
|
||||||
"file": "File",
|
"hideDotfiles": "",
|
||||||
"folder": "Folder",
|
|
||||||
"fullScreen": "Toggle full screen",
|
|
||||||
"hideDotfiles": "Hide dotfiles",
|
|
||||||
"info": "Info",
|
"info": "Info",
|
||||||
"more": "Mer",
|
"more": "Mer",
|
||||||
"move": "Flytta",
|
"move": "Flytta",
|
||||||
@ -24,7 +19,6 @@
|
|||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"permalink": "Skapa en permanent lÀnk",
|
"permalink": "Skapa en permanent lÀnk",
|
||||||
"previous": "FöregÄende",
|
"previous": "FöregÄende",
|
||||||
"preview": "Preview",
|
|
||||||
"publish": "Publisera",
|
"publish": "Publisera",
|
||||||
"rename": "Ăndra namn",
|
"rename": "Ăndra namn",
|
||||||
"replace": "ErsÀtt",
|
"replace": "ErsÀtt",
|
||||||
@ -36,27 +30,20 @@
|
|||||||
"selectMultiple": "VĂ€lj flera",
|
"selectMultiple": "VĂ€lj flera",
|
||||||
"share": "Dela",
|
"share": "Dela",
|
||||||
"shell": "VĂ€xla skal",
|
"shell": "VĂ€xla skal",
|
||||||
"submit": "Submit",
|
|
||||||
"switchView": "Byt vy",
|
"switchView": "Byt vy",
|
||||||
"toggleSidebar": "VÀxla sidofÀlt",
|
"toggleSidebar": "VÀxla sidofÀlt",
|
||||||
"update": "Uppdatera",
|
"update": "Uppdatera",
|
||||||
"upload": "Ladda upp",
|
"upload": "Ladda upp"
|
||||||
"openFile": "Open file",
|
|
||||||
"discardChanges": "Discard"
|
|
||||||
},
|
},
|
||||||
"download": {
|
"download": {
|
||||||
"downloadFile": "Ladda ner fil",
|
"downloadFile": "Ladda ner fil",
|
||||||
"downloadFolder": "Ladda ner mapp",
|
"downloadFolder": "Ladda ner mapp",
|
||||||
"downloadSelected": "Download Selected"
|
"downloadSelected": ""
|
||||||
},
|
|
||||||
"upload": {
|
|
||||||
"abortUpload": "Are you sure you wish to abort?"
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"forbidden": "Du saknar rÀttigheter till detta",
|
"forbidden": "Du saknar rÀttigheter till detta",
|
||||||
"internal": "NÄgot gick fel",
|
"internal": "NÄgot gick fel",
|
||||||
"notFound": "Det gÄr inte att nÄ den hÀr platsen.",
|
"notFound": "Det gÄr inte att nÄ den hÀr platsen."
|
||||||
"connection": "The server can't be reached."
|
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"body": "Huvud",
|
"body": "Huvud",
|
||||||
@ -73,8 +60,7 @@
|
|||||||
"size": "Storlek",
|
"size": "Storlek",
|
||||||
"sortByLastModified": "Sortera pÄ senast Àndrad",
|
"sortByLastModified": "Sortera pÄ senast Àndrad",
|
||||||
"sortByName": "Sortera pÄ namn",
|
"sortByName": "Sortera pÄ namn",
|
||||||
"sortBySize": "Sortera pÄ storlek",
|
"sortBySize": "Sortera pÄ storlek"
|
||||||
"noPreview": "Preview is not available for this file."
|
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"click": "vÀlj fil eller mapp",
|
"click": "vÀlj fil eller mapp",
|
||||||
@ -109,8 +95,6 @@
|
|||||||
"currentlyNavigating": "För nÀrvarande navigerar du pÄ:",
|
"currentlyNavigating": "För nÀrvarande navigerar du pÄ:",
|
||||||
"deleteMessageMultiple": "Ăr du sĂ€ker pĂ„ att du vill radera {count} filer(na)?",
|
"deleteMessageMultiple": "Ăr du sĂ€ker pĂ„ att du vill radera {count} filer(na)?",
|
||||||
"deleteMessageSingle": "Ăr du sĂ€ker pĂ„ att du vill radera denna fil/mapp",
|
"deleteMessageSingle": "Ăr du sĂ€ker pĂ„ att du vill radera denna fil/mapp",
|
||||||
"deleteMessageShare": "Are you sure you wish to delete this share({path})?",
|
|
||||||
"deleteUser": "Are you sure you want to delete this user?",
|
|
||||||
"deleteTitle": "Ta bort filer",
|
"deleteTitle": "Ta bort filer",
|
||||||
"displayName": "Visningsnamn:",
|
"displayName": "Visningsnamn:",
|
||||||
"download": "Ladda ner filer",
|
"download": "Ladda ner filer",
|
||||||
@ -136,12 +120,8 @@
|
|||||||
"scheduleMessage": "Pick a date and time to schedule the publication of this post.",
|
"scheduleMessage": "Pick a date and time to schedule the publication of this post.",
|
||||||
"show": "Visa",
|
"show": "Visa",
|
||||||
"size": "Storlek",
|
"size": "Storlek",
|
||||||
"upload": "Upload",
|
"upload": "",
|
||||||
"uploadFiles": "Uploading {files} files...",
|
"uploadMessage": ""
|
||||||
"uploadMessage": "Select an option to upload.",
|
|
||||||
"optionalPassword": "Optional password",
|
|
||||||
"resolution": "Resolution",
|
|
||||||
"discardEditorChanges": "Are you sure you wish to discard the changes you've made?"
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"images": "Bilder",
|
"images": "Bilder",
|
||||||
@ -170,14 +150,6 @@
|
|||||||
"commandRunnerHelp": "HÀr kan du ange kommandon som körs i de namngivna hÀndelserna. Du mÄste skriva en per rad. Miljövariablerna {0} och {1} kommer att vara tillgÀngliga, och vara {0} i förhÄllande till {1}. För mer information om den hÀr funktionen och de tillgÀngliga miljövariablerna, vÀnligen lÀs {2}.",
|
"commandRunnerHelp": "HÀr kan du ange kommandon som körs i de namngivna hÀndelserna. Du mÄste skriva en per rad. Miljövariablerna {0} och {1} kommer att vara tillgÀngliga, och vara {0} i förhÄllande till {1}. För mer information om den hÀr funktionen och de tillgÀngliga miljövariablerna, vÀnligen lÀs {2}.",
|
||||||
"commandsUpdated": "Kommandon uppdaterade!",
|
"commandsUpdated": "Kommandon uppdaterade!",
|
||||||
"createUserDir": "Auto skapa anvÀndarens hemkatalog nÀr du lÀgger till nya anvÀndare",
|
"createUserDir": "Auto skapa anvÀndarens hemkatalog nÀr du lÀgger till nya anvÀndare",
|
||||||
"minimumPasswordLength": "Minimum password length",
|
|
||||||
"tusUploads": "Chunked Uploads",
|
|
||||||
"tusUploadsHelp": "File Browser supports chunked file uploads, allowing for the creation of efficient, reliable, resumable and chunked file uploads even on unreliable networks.",
|
|
||||||
"tusUploadsChunkSize": "Indicates to maximum size of a request (direct uploads will be used for smaller uploads). You may input a plain integer denoting byte size input or a string like 10MB, 1GB etc.",
|
|
||||||
"tusUploadsRetryCount": "Number of retries to perform if a chunk fails to upload.",
|
|
||||||
"userHomeBasePath": "Base path for user home directories",
|
|
||||||
"userScopeGenerationPlaceholder": "The scope will be auto generated",
|
|
||||||
"createUserHomeDirectory": "Create user home directory",
|
|
||||||
"customStylesheet": "Anpassad formatmall",
|
"customStylesheet": "Anpassad formatmall",
|
||||||
"defaultUserDescription": "Detta Àr standard instÀllningar för anvÀndare.",
|
"defaultUserDescription": "Detta Àr standard instÀllningar för anvÀndare.",
|
||||||
"disableExternalLinks": "Inaktivera externa lÀnkar (förutom dokumentation)",
|
"disableExternalLinks": "Inaktivera externa lÀnkar (förutom dokumentation)",
|
||||||
@ -188,7 +160,7 @@
|
|||||||
"executeOnShellDescription": "Som standard kör fil blÀddraren kommandona genom att anropa deras binÀrfiler direkt. Om du vill köra dem pÄ ett skal i stÀllet (till exempel bash eller PowerShell), kan du definiera det hÀr med nödvÀndiga argument och flaggor. Om det Àr instÀllt kommer kommandot du kör att lÀggas till som ett argument. Detta gÀller bÄde anvÀndar kommandon och hÀndelse krokar.",
|
"executeOnShellDescription": "Som standard kör fil blÀddraren kommandona genom att anropa deras binÀrfiler direkt. Om du vill köra dem pÄ ett skal i stÀllet (till exempel bash eller PowerShell), kan du definiera det hÀr med nödvÀndiga argument och flaggor. Om det Àr instÀllt kommer kommandot du kör att lÀggas till som ett argument. Detta gÀller bÄde anvÀndar kommandon och hÀndelse krokar.",
|
||||||
"globalRules": "Det hÀr Àr en global uppsÀttning regler för att tillÄta och inte tillÄta. De gÀller för alla anvÀndare. Du kan definiera specifika regler för varje anvÀndares instÀllningar för att ÄsidosÀtta de hÀr instÀllningarna.",
|
"globalRules": "Det hÀr Àr en global uppsÀttning regler för att tillÄta och inte tillÄta. De gÀller för alla anvÀndare. Du kan definiera specifika regler för varje anvÀndares instÀllningar för att ÄsidosÀtta de hÀr instÀllningarna.",
|
||||||
"globalSettings": "Globala instÀllningar",
|
"globalSettings": "Globala instÀllningar",
|
||||||
"hideDotfiles": "Hide dotfiles",
|
"hideDotfiles": "",
|
||||||
"insertPath": "Ange sökvÀg",
|
"insertPath": "Ange sökvÀg",
|
||||||
"insertRegex": "SĂ€tt in regex expression",
|
"insertRegex": "SĂ€tt in regex expression",
|
||||||
"instanceName": "Instans namn",
|
"instanceName": "Instans namn",
|
||||||
@ -199,7 +171,7 @@
|
|||||||
"newUser": "Ny anvÀndare",
|
"newUser": "Ny anvÀndare",
|
||||||
"password": "Lösenord",
|
"password": "Lösenord",
|
||||||
"passwordUpdated": "Lösenord uppdaterat",
|
"passwordUpdated": "Lösenord uppdaterat",
|
||||||
"path": "Path",
|
"path": "",
|
||||||
"perm": {
|
"perm": {
|
||||||
"create": "Skapa filer och mappar",
|
"create": "Skapa filer och mappar",
|
||||||
"delete": "Ta bort filer och mappar",
|
"delete": "Ta bort filer och mappar",
|
||||||
@ -217,17 +189,14 @@
|
|||||||
"rules": "Regler",
|
"rules": "Regler",
|
||||||
"rulesHelp": "HÀr kan du definiera en uppsÀttning regler för godkÀnna och neka för den hÀr specifika anvÀndaren. Den blockerade filen kommer inte upp i listningarna och kommer inte att vara tillgÀnglig till anvÀndaren. Vi stöder regex och sökvÀgar i förhÄllande till anvÀndarnas omfÄng.\n",
|
"rulesHelp": "HÀr kan du definiera en uppsÀttning regler för godkÀnna och neka för den hÀr specifika anvÀndaren. Den blockerade filen kommer inte upp i listningarna och kommer inte att vara tillgÀnglig till anvÀndaren. Vi stöder regex och sökvÀgar i förhÄllande till anvÀndarnas omfÄng.\n",
|
||||||
"scope": "Omfattning",
|
"scope": "Omfattning",
|
||||||
"setDateFormat": "Set exact date format",
|
|
||||||
"settingsUpdated": "InstÀllning uppdaterad!",
|
"settingsUpdated": "InstÀllning uppdaterad!",
|
||||||
"shareDuration": "Share Duration",
|
"shareDuration": "",
|
||||||
"shareManagement": "Share Management",
|
"shareManagement": "",
|
||||||
"shareDeleted": "Share deleted!",
|
"singleClick": "",
|
||||||
"singleClick": "Use single clicks to open files and directories",
|
|
||||||
"themes": {
|
"themes": {
|
||||||
"default": "System default",
|
"dark": "",
|
||||||
"dark": "Dark",
|
"light": "",
|
||||||
"light": "Light",
|
"title": ""
|
||||||
"title": "Theme"
|
|
||||||
},
|
},
|
||||||
"user": "AnvÀndare",
|
"user": "AnvÀndare",
|
||||||
"userCommands": "Kommandon",
|
"userCommands": "Kommandon",
|
||||||
|