updated styles and translations (#1042)
This commit is contained in:
1 parent
a434f812e8
commit
a44215a086
66 files changed
+1186
-1328
No files matched your search
+1
-1
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. For commit
|
||||
|
||||
## v0.8.0-beta
|
||||
|
||||
This is a major release, including many new features and changes that could introduce breaking changes. Here are the known potentially breaking changes:
|
||||
This is a major release, new features and changes could introduce breaking behavior. Here are the known potentially breaking changes:
|
||||
|
||||
- all public api and share url's get a `/public` prefix, making it easier to use with a reverse proxy. Any existing share link will still work but get redirected.
|
||||
- a small change to styling you may need to update your custom styling, for example the id `#input` was renamed `#search-input`
|
||||
|
||||
@@ -70,8 +70,8 @@ func setupFrontend() {
|
||||
noThemes := len(Config.Frontend.Styling.CustomThemes) == 0
|
||||
if noThemes {
|
||||
addCustomTheme("default", "The default theme", "")
|
||||
altTheme := readCustomCSS("reduce-rounded-corners.css")
|
||||
if altTheme != "" {
|
||||
// check if file exists
|
||||
if _, err := os.Stat("reduce-rounded-corners.css"); err == nil {
|
||||
addCustomTheme("alternative", "Reduce rounded corners", "reduce-rounded-corners.css")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -554,124 +554,153 @@ func (s *Storage) RemoveAllRulesForGroup(groupname string) error {
|
||||
return s.SaveToDB()
|
||||
}
|
||||
|
||||
type PrincipalRule struct {
|
||||
SourcePath string `json:"sourcePath"`
|
||||
Path string `json:"path"`
|
||||
RuleType string `json:"ruleType"` // "allow" or "deny"
|
||||
}
|
||||
|
||||
// GetRulesForUser returns all rules for a specific user for a given sourcePath. If sourcePath is empty, it checks all sources.
|
||||
func (s *Storage) GetRulesForUser(sourcePath, username string) []PrincipalRule {
|
||||
// GetRulesForUser returns all rules for a specific user for a given sourcePath.
|
||||
func (s *Storage) GetRulesForUser(sourcePath, username string) map[string]FrontendAccessRule {
|
||||
s.mux.RLock()
|
||||
defer s.mux.RUnlock()
|
||||
|
||||
userRules := make([]PrincipalRule, 0)
|
||||
|
||||
processSource := func(sp string, rulesBySource map[string]*AccessRule) {
|
||||
for indexPath, rule := range rulesBySource {
|
||||
if _, ok := rule.Allow.Users[username]; ok {
|
||||
userRules = append(userRules, PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "allow"})
|
||||
}
|
||||
if _, ok := rule.Deny.Users[username]; ok {
|
||||
userRules = append(userRules, PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "deny"})
|
||||
}
|
||||
}
|
||||
userRules := make(map[string]FrontendAccessRule)
|
||||
rulesBySource, ok := s.AllRules[sourcePath]
|
||||
if !ok {
|
||||
return userRules
|
||||
}
|
||||
|
||||
if sourcePath != "" {
|
||||
if rulesBySource, ok := s.AllRules[sourcePath]; ok {
|
||||
processSource(sourcePath, rulesBySource)
|
||||
for indexPath, rule := range rulesBySource {
|
||||
userHasRule := false
|
||||
if _, ok := rule.Allow.Users[username]; ok {
|
||||
userHasRule = true
|
||||
}
|
||||
} else {
|
||||
for sp, rulesBySource := range s.AllRules {
|
||||
processSource(sp, rulesBySource)
|
||||
if !userHasRule {
|
||||
if _, ok := rule.Deny.Users[username]; ok {
|
||||
userHasRule = true
|
||||
}
|
||||
}
|
||||
if userHasRule {
|
||||
userRules[indexPath] = FrontendAccessRule{
|
||||
Deny: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Groups))),
|
||||
},
|
||||
Allow: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Groups))),
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
return userRules
|
||||
}
|
||||
|
||||
// GetRulesForGroup returns all rules for a specific group for a given sourcePath. If sourcePath is empty, it checks all sources.
|
||||
func (s *Storage) GetRulesForGroup(sourcePath, groupname string) []PrincipalRule {
|
||||
// GetRulesForGroup returns all rules for a specific group for a given sourcePath.
|
||||
func (s *Storage) GetRulesForGroup(sourcePath, groupname string) map[string]FrontendAccessRule {
|
||||
s.mux.RLock()
|
||||
defer s.mux.RUnlock()
|
||||
|
||||
groupRules := make([]PrincipalRule, 0)
|
||||
processSource := func(sp string, rulesBySource map[string]*AccessRule) {
|
||||
for indexPath, rule := range rulesBySource {
|
||||
if _, ok := rule.Allow.Groups[groupname]; ok {
|
||||
groupRules = append(groupRules, PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "allow"})
|
||||
}
|
||||
if _, ok := rule.Deny.Groups[groupname]; ok {
|
||||
groupRules = append(groupRules, PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "deny"})
|
||||
}
|
||||
}
|
||||
groupRules := make(map[string]FrontendAccessRule)
|
||||
rulesBySource, ok := s.AllRules[sourcePath]
|
||||
if !ok {
|
||||
return groupRules
|
||||
}
|
||||
|
||||
if sourcePath != "" {
|
||||
if rulesBySource, ok := s.AllRules[sourcePath]; ok {
|
||||
processSource(sourcePath, rulesBySource)
|
||||
for indexPath, rule := range rulesBySource {
|
||||
groupHasRule := false
|
||||
if _, ok := rule.Allow.Groups[groupname]; ok {
|
||||
groupHasRule = true
|
||||
}
|
||||
} else {
|
||||
for sp, rulesBySource := range s.AllRules {
|
||||
processSource(sp, rulesBySource)
|
||||
if !groupHasRule {
|
||||
if _, ok := rule.Deny.Groups[groupname]; ok {
|
||||
groupHasRule = true
|
||||
}
|
||||
}
|
||||
if groupHasRule {
|
||||
groupRules[indexPath] = FrontendAccessRule{
|
||||
Deny: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Groups))),
|
||||
},
|
||||
Allow: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Groups))),
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
return groupRules
|
||||
}
|
||||
|
||||
// GetAllRulesByUsers returns a map of usernames to their rules for a given sourcePath. If sourcePath is empty, it checks all sources.
|
||||
func (s *Storage) GetAllRulesByUsers(sourcePath string) map[string][]PrincipalRule {
|
||||
// GetAllRulesByUsers returns a map of usernames to their rules for a given sourcePath.
|
||||
func (s *Storage) GetAllRulesByUsers(sourcePath string) map[string]map[string]FrontendAccessRule {
|
||||
s.mux.RLock()
|
||||
defer s.mux.RUnlock()
|
||||
|
||||
allUserRules := make(map[string][]PrincipalRule)
|
||||
processSource := func(sp string, rulesBySource map[string]*AccessRule) {
|
||||
for indexPath, rule := range rulesBySource {
|
||||
for user := range rule.Allow.Users {
|
||||
allUserRules[user] = append(allUserRules[user], PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "allow"})
|
||||
}
|
||||
for user := range rule.Deny.Users {
|
||||
allUserRules[user] = append(allUserRules[user], PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "deny"})
|
||||
}
|
||||
}
|
||||
allUserRules := make(map[string]map[string]FrontendAccessRule)
|
||||
rulesBySource, ok := s.AllRules[sourcePath]
|
||||
if !ok {
|
||||
return allUserRules
|
||||
}
|
||||
|
||||
if sourcePath != "" {
|
||||
if rulesBySource, ok := s.AllRules[sourcePath]; ok {
|
||||
processSource(sourcePath, rulesBySource)
|
||||
for indexPath, rule := range rulesBySource {
|
||||
hasAllowUsers := len(rule.Allow.Users) > 0
|
||||
hasDenyUsers := len(rule.Deny.Users) > 0
|
||||
if !hasAllowUsers && !hasDenyUsers {
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
for sp, rulesBySource := range s.AllRules {
|
||||
processSource(sp, rulesBySource)
|
||||
frontendRule := FrontendAccessRule{
|
||||
Deny: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Groups))),
|
||||
},
|
||||
Allow: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Groups))),
|
||||
},
|
||||
}
|
||||
for user := range rule.Allow.Users {
|
||||
if _, ok := allUserRules[user]; !ok {
|
||||
allUserRules[user] = make(map[string]FrontendAccessRule)
|
||||
}
|
||||
allUserRules[user][indexPath] = frontendRule
|
||||
}
|
||||
for user := range rule.Deny.Users {
|
||||
if _, ok := allUserRules[user]; !ok {
|
||||
allUserRules[user] = make(map[string]FrontendAccessRule)
|
||||
}
|
||||
allUserRules[user][indexPath] = frontendRule
|
||||
}
|
||||
}
|
||||
return allUserRules
|
||||
}
|
||||
|
||||
// GetAllRulesByGroups returns a map of groupnames to their rules for a given sourcePath. If sourcePath is empty, it checks all sources.
|
||||
func (s *Storage) GetAllRulesByGroups(sourcePath string) map[string][]PrincipalRule {
|
||||
// GetAllRulesByGroups returns a map of groupnames to their rules for a given sourcePath.
|
||||
func (s *Storage) GetAllRulesByGroups(sourcePath string) map[string]map[string]FrontendAccessRule {
|
||||
s.mux.RLock()
|
||||
defer s.mux.RUnlock()
|
||||
|
||||
allGroupRules := make(map[string][]PrincipalRule)
|
||||
processSource := func(sp string, rulesBySource map[string]*AccessRule) {
|
||||
for indexPath, rule := range rulesBySource {
|
||||
for group := range rule.Allow.Groups {
|
||||
allGroupRules[group] = append(allGroupRules[group], PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "allow"})
|
||||
}
|
||||
for group := range rule.Deny.Groups {
|
||||
allGroupRules[group] = append(allGroupRules[group], PrincipalRule{SourcePath: sp, Path: indexPath, RuleType: "deny"})
|
||||
}
|
||||
}
|
||||
allGroupRules := make(map[string]map[string]FrontendAccessRule)
|
||||
rulesBySource, ok := s.AllRules[sourcePath]
|
||||
if !ok {
|
||||
return allGroupRules
|
||||
}
|
||||
|
||||
if sourcePath != "" {
|
||||
if rulesBySource, ok := s.AllRules[sourcePath]; ok {
|
||||
processSource(sourcePath, rulesBySource)
|
||||
for indexPath, rule := range rulesBySource {
|
||||
hasAllowGroups := len(rule.Allow.Groups) > 0
|
||||
hasDenyGroups := len(rule.Deny.Groups) > 0
|
||||
if !hasAllowGroups && !hasDenyGroups {
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
for sp, rulesBySource := range s.AllRules {
|
||||
processSource(sp, rulesBySource)
|
||||
frontendRule := FrontendAccessRule{
|
||||
Deny: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Deny.Groups))),
|
||||
},
|
||||
Allow: FrontendRuleSet{
|
||||
Users: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Users))),
|
||||
Groups: utils.NonNilSlice(slices.Collect(maps.Keys(rule.Allow.Groups))),
|
||||
},
|
||||
}
|
||||
for group := range rule.Allow.Groups {
|
||||
if _, ok := allGroupRules[group]; !ok {
|
||||
allGroupRules[group] = make(map[string]FrontendAccessRule)
|
||||
}
|
||||
allGroupRules[group][indexPath] = frontendRule
|
||||
}
|
||||
for group := range rule.Deny.Groups {
|
||||
if _, ok := allGroupRules[group]; !ok {
|
||||
allGroupRules[group] = make(map[string]FrontendAccessRule)
|
||||
}
|
||||
allGroupRules[group][indexPath] = frontendRule
|
||||
}
|
||||
}
|
||||
return allGroupRules
|
||||
|
||||
@@ -114,10 +114,6 @@ button {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background: #e0e0e0;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
cursor: not-allowed !important;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
ref="contextMenu"
|
||||
v-if="showContext"
|
||||
:style="centered ? {} : { top: posY + 'px', left: posX + 'px' }"
|
||||
class="button no-select"
|
||||
class="button no-select fb-shadow"
|
||||
:class="{ 'dark-mode': isDarkMode, 'centered': centered }"
|
||||
:key="showCreate ? 'create-mode' : 'normal-mode'"
|
||||
>
|
||||
@@ -123,7 +123,7 @@
|
||||
top: '3em',
|
||||
right: '1em',
|
||||
}"
|
||||
class="button no-select"
|
||||
class="button no-select fb-shadow"
|
||||
:class="{ 'dark-mode': isDarkMode }"
|
||||
>
|
||||
<action v-if="showGoToRaw" icon="open_in_new" :label="$t('buttons.openFile')" @action="goToRaw()" />
|
||||
@@ -425,7 +425,6 @@ export default {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 0px 15px 0px #404040;
|
||||
}
|
||||
|
||||
#context-menu.centered {
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Search results for desktop -->
|
||||
<div v-show="active" id="results" ref="result">
|
||||
<div v-show="active" id="results" class="fb-shadow" ref="result">
|
||||
<div class="inputWrapper" style="display: flex">
|
||||
<select
|
||||
v-if="multipleSources"
|
||||
@@ -589,7 +589,6 @@ export default {
|
||||
border-top-right-radius: 0px;
|
||||
-webkit-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
-webkit-box-shadow: 0px 2em 50px 10px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: 0px 2em 50px 10px rgba(0, 0, 0, 0.3);
|
||||
background-color: lightgray;
|
||||
max-height: 80vh;
|
||||
@@ -678,10 +677,6 @@ export default {
|
||||
background-color: var(--surfacePrimary);
|
||||
}
|
||||
|
||||
.search-entry:hover {
|
||||
background-color: var(--surfacePrimary);
|
||||
}
|
||||
|
||||
.text-container {
|
||||
margin-left: 0.25em;
|
||||
white-space: nowrap;
|
||||
|
||||
@@ -1,68 +1,68 @@
|
||||
<template>
|
||||
<div class="card floating share__promt__card" id="access">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("access.accessManagement") }}</h2>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("access.accessManagement") }}</h2>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<div v-if="isEditingPath">
|
||||
<file-list @update:selected="updateTempPath" :browse-source="sourceName"></file-list>
|
||||
<div style="margin-top: 1em; text-align: right;">
|
||||
<button class="button button--flat" @click="cancelPathChange">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat" @click="confirmPathChange">
|
||||
{{ $t("buttons.ok") }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<div v-if="isEditingPath">
|
||||
<file-list @update:selected="updateTempPath" :browse-source="sourceName"></file-list>
|
||||
<div style="margin-top: 1em; text-align: right;">
|
||||
<button class="button button--flat" @click="cancelPathChange">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat" @click="confirmPathChange">
|
||||
{{ $t("buttons.ok") }}
|
||||
</button>
|
||||
</div>
|
||||
<div v-else>
|
||||
<p>{{ $t("prompts.source", { suffix: ":" }) }} {{ currentSource }}</p>
|
||||
<div aria-label="access-path" class="searchContext" @click="startPathEdit" style="cursor: pointer;">
|
||||
{{ $t("search.path") }} {{ currentPath }}
|
||||
</div>
|
||||
<div v-else>
|
||||
<div aria-label="access-path" class="searchContext" @click="startPathEdit" style="cursor: pointer;">
|
||||
{{ $t("search.path") }} {{ currentPath }}
|
||||
</div>
|
||||
<!-- Add Form -->
|
||||
<div class="add-form" style="margin-bottom: 1em; margin-top: 1em">
|
||||
<select v-model="addType">
|
||||
<option value="user">{{ $t("general.user") }}</option>
|
||||
<option value="group">{{ $t("general.group") }}</option>
|
||||
</select>
|
||||
<select v-model="addListType">
|
||||
<option value="deny">{{ $t("access.deny") }}</option>
|
||||
<option value="allow">{{ $t("access.allow") }}</option>
|
||||
</select>
|
||||
<input class="group-user-add-input" v-model="addName" :placeholder="$t('access.enterName')" />
|
||||
<button class="action add-rule-button" @click="submitAdd">
|
||||
<i class="material-icons">add</i>
|
||||
</button>
|
||||
</div>
|
||||
<table v-if="entries.length > 0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{ $t("access.allowDeny") }}</th>
|
||||
<th>{{ $t("access.userGroup") }}</th>
|
||||
<th>{{ $t("general.name") }}</th>
|
||||
<th>{{ $t("buttons.edit") }}</th>
|
||||
</tr>
|
||||
<tr v-for="entry in entries" :key="entry.type + '-' + entry.name">
|
||||
<td>{{ entry.allow ? $t("access.allow") : $t("access.deny") }}</td>
|
||||
<td>{{ entry.type == "user" ? $t("general.user") : $t("general.group") }}</td>
|
||||
<td>{{ entry.name }}</td>
|
||||
<td>
|
||||
<button @click="deleteAccess(entry)" class="action" :aria-label="$t('buttons.delete')" :title="$t('buttons.delete')">
|
||||
<i class="material-icons">delete</i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- Cancel Button -->
|
||||
<div style="margin-top: 1em; text-align: right;">
|
||||
<button class="action button button--flat" @click="closePrompt">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
</div>
|
||||
<!-- Add Form -->
|
||||
<div class="add-form" style="margin-bottom: 1em; margin-top: 1em">
|
||||
<select v-model="addType">
|
||||
<option value="user">{{ $t("general.user") }}</option>
|
||||
<option value="group">{{ $t("general.group") }}</option>
|
||||
</select>
|
||||
<select v-model="addListType">
|
||||
<option value="deny">{{ $t("access.deny") }}</option>
|
||||
<option value="allow">{{ $t("access.allow") }}</option>
|
||||
</select>
|
||||
<input class="group-user-add-input" v-model="addName" :placeholder="$t('access.enterName')" />
|
||||
<button class="action add-rule-button" @click="submitAdd">
|
||||
<i class="material-icons">add</i>
|
||||
</button>
|
||||
</div>
|
||||
<table v-if="entries.length > 0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{ $t("access.allowDeny") }}</th>
|
||||
<th>{{ $t("access.userGroup") }}</th>
|
||||
<th>{{ $t("general.name") }}</th>
|
||||
<th>{{ $t("buttons.edit") }}</th>
|
||||
</tr>
|
||||
<tr v-for="entry in entries" :key="entry.type + '-' + entry.name">
|
||||
<td>{{ entry.allow ? $t("access.allow") : $t("access.deny") }}</td>
|
||||
<td>{{ entry.type == "user" ? $t("general.user") : $t("general.group") }}</td>
|
||||
<td>{{ entry.name }}</td>
|
||||
<td>
|
||||
<button @click="deleteAccess(entry)" class="action" :aria-label="$t('buttons.delete')"
|
||||
:title="$t('buttons.delete')">
|
||||
<i class="material-icons">delete</i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button @click="closeHovers" class="button button--flat button--grey" :aria-label="$t('buttons.close')"
|
||||
:title="$t('buttons.close')">
|
||||
{{ $t("buttons.close") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -83,6 +83,8 @@ export default {
|
||||
isEditingPath: false,
|
||||
tempPath: this.path,
|
||||
currentPath: this.path,
|
||||
currentSource: this.sourceName,
|
||||
tempSource: this.sourceName,
|
||||
rule: { deny: { users: [], groups: [] }, allow: { users: [], groups: [] } },
|
||||
addType: "user",
|
||||
addListType: "deny",
|
||||
@@ -112,7 +114,11 @@ export default {
|
||||
await this.fetchRule();
|
||||
},
|
||||
watch: {
|
||||
sourceName: 'fetchRule',
|
||||
sourceName(newSourceName) {
|
||||
this.currentSource = newSourceName;
|
||||
this.tempSource = newSourceName;
|
||||
this.fetchRule();
|
||||
},
|
||||
path(newPath) {
|
||||
this.currentPath = newPath;
|
||||
this.tempPath = newPath;
|
||||
@@ -121,20 +127,25 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
closeHovers() {
|
||||
mutations.closeHovers();
|
||||
},
|
||||
startPathEdit() {
|
||||
this.tempPath = this.currentPath;
|
||||
this.isEditingPath = true;
|
||||
},
|
||||
/**
|
||||
* @param {{path: string}} pathOrData
|
||||
* @param {{path: string, source: string}} pathOrData
|
||||
*/
|
||||
updateTempPath(pathOrData) {
|
||||
if (pathOrData && pathOrData.path) {
|
||||
this.tempPath = pathOrData.path;
|
||||
this.tempSource = pathOrData.source;
|
||||
}
|
||||
},
|
||||
confirmPathChange() {
|
||||
this.currentPath = this.tempPath;
|
||||
this.currentSource = this.tempSource;
|
||||
this.isEditingPath = false;
|
||||
this.fetchRule();
|
||||
},
|
||||
@@ -143,7 +154,7 @@ export default {
|
||||
},
|
||||
async fetchRule() {
|
||||
try {
|
||||
this.rule = await accessApi.get(this.sourceName, this.currentPath);
|
||||
this.rule = await accessApi.get(this.currentSource, this.currentPath);
|
||||
} catch (e) {
|
||||
notify.showError(e);
|
||||
this.rule = { deny: { users: [], groups: [] }, allow: { users: [], groups: [] } };
|
||||
@@ -159,7 +170,7 @@ export default {
|
||||
ruleCategory: entry.type,
|
||||
value: entry.name
|
||||
};
|
||||
await accessApi.del(this.sourceName, this.currentPath, body);
|
||||
await accessApi.del(this.currentSource, this.currentPath, body);
|
||||
notify.showSuccess(this.$t("access.deleted"));
|
||||
await this.fetchRule();
|
||||
this.$emit('updated');
|
||||
@@ -179,7 +190,7 @@ export default {
|
||||
value: this.addName.trim()
|
||||
};
|
||||
await accessApi.add(
|
||||
this.sourceName,
|
||||
this.currentSource,
|
||||
this.currentPath,
|
||||
body
|
||||
);
|
||||
@@ -206,9 +217,11 @@ export default {
|
||||
.add-form {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.add-rule-button {
|
||||
max-width: 3em;
|
||||
}
|
||||
|
||||
.group-user-add-input {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t('api.title') }}:</h2> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</div>
|
||||
@@ -47,7 +46,6 @@
|
||||
{{ $t('buttons.delete') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -97,7 +95,6 @@ export default {
|
||||
/* Basic styling for the prompt */
|
||||
.card.floating {
|
||||
padding: 20px;
|
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.card-content {
|
||||
margin-bottom: 16px;
|
||||
|
||||
@@ -1,66 +1,41 @@
|
||||
<template>
|
||||
<div class="card floating create-api__prompt__card" id="create-api">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t('api.createTitle') }}</h2>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t('api.createTitle') }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<!-- API Key Name Input -->
|
||||
<p>{{ $t('api.keyName') }}</p>
|
||||
<input v-focus class="input input--block" type="text" v-model.trim="apiName"
|
||||
:placeholder="$t('api.keyNamePlaceholder')" />
|
||||
|
||||
<!-- Duration Input -->
|
||||
<p>{{ $t('api.tokenDuration') }}</p>
|
||||
<div class="inputWrapper">
|
||||
<input class="sizeInput roundedInputLeft input" v-model.number="duration" type="number" min="1"
|
||||
:placeholder="$t('api.durationNumberPlaceholder')" />
|
||||
<select v-model="unit" class="roundedInputRight input">
|
||||
<option value="days">{{ $t('api.days') }}</option>
|
||||
<option value="months">{{ $t('api.months') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<!-- API Key Name Input -->
|
||||
<p>{{ $t('api.keyName') }}</p>
|
||||
<input
|
||||
v-focus
|
||||
class="input input--block"
|
||||
type="text"
|
||||
v-model.trim="apiName"
|
||||
:placeholder="$t('api.keyNamePlaceholder')"
|
||||
/>
|
||||
|
||||
<!-- Duration Input -->
|
||||
<p>{{ $t('api.tokenDuration') }}</p>
|
||||
<div class="inputWrapper">
|
||||
<input
|
||||
class="sizeInput roundedInputLeft input"
|
||||
v-model.number="duration"
|
||||
type="number"
|
||||
min="1"
|
||||
:placeholder="$t('api.durationNumberPlaceholder')"
|
||||
/>
|
||||
<select v-model="unit" class="roundedInputRight input">
|
||||
<option value="days">{{ $t('api.days') }}</option>
|
||||
<option value="months">{{ $t('api.months') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Permissions Input -->
|
||||
<p>{{ $t('api.permissionNote') }}</p>
|
||||
<div class="settings-items">
|
||||
<ToggleSwitch
|
||||
v-for="(isEnabled, permission) in permissions"
|
||||
:key="permission"
|
||||
class="item"
|
||||
v-model="permissions[permission]"
|
||||
:name="permission"
|
||||
/>
|
||||
</div>
|
||||
<!-- Permissions Input -->
|
||||
<p>{{ $t('api.permissionNote') }}</p>
|
||||
<div class="settings-items">
|
||||
<ToggleSwitch v-for="(isEnabled, permission) in permissions" :key="permission" class="item"
|
||||
v-model="permissions[permission]" :name="permission" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
@click="closeHovers"
|
||||
class="button button--flat button--grey"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
class="button button--flat button--blue"
|
||||
@click="createAPIKey"
|
||||
:title="$t('buttons.create')"
|
||||
>
|
||||
{{ $t("buttons.create") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button @click="closeHovers" class="button button--flat button--grey" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat button--blue" @click="createAPIKey" :title="$t('buttons.create')">
|
||||
{{ $t("buttons.create") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-content">
|
||||
<p v-if="selectedCount === 1">
|
||||
{{ $t("prompts.deleteMessageSingle") }}
|
||||
@@ -21,7 +20,6 @@
|
||||
{{ $t("buttons.delete") }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,22 +1,15 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-content">
|
||||
<p>{{$t('prompts.deleteUserMessage')}}</p>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeHovers"
|
||||
v-focus
|
||||
aria-label="Cancel"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat" aria-label="Confirm Delete" @click="deleteUser">
|
||||
{{ $t("buttons.delete") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>{{ $t('prompts.deleteUserMessage') }}</p>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeHovers" v-focus aria-label="Cancel"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat" aria-label="Confirm Delete" @click="deleteUser">
|
||||
{{ $t("buttons.delete") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<template>
|
||||
<div class="card floating" id="download">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.download") }}</h2>
|
||||
</div>
|
||||
@@ -14,8 +13,7 @@
|
||||
v-focus
|
||||
>
|
||||
{{ ext }}
|
||||
</button>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,34 +1,27 @@
|
||||
<template>
|
||||
<div class="card floating help">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("help.help") }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("help.help") }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<ul>
|
||||
<li><strong>F1</strong> - {{ $t("help.f1") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>F2</strong> - {{ $t("help.f2") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>DEL</strong> - {{ $t("help.del") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>ESC</strong> - {{ $t("help.esc") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>CTRL + S</strong> - {{ $t("help.ctrl.s") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>CTRL + F</strong> - {{ $t("help.ctrl.f") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>CTRL + Click</strong> - {{ $t("help.ctrl.click") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>Click</strong> - {{ $t("help.click") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>Double click</strong> - {{ $t("help.doubleClick") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<ul>
|
||||
<li><strong>F1</strong> - {{ $t("help.f1") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>F2</strong> - {{ $t("help.f2") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>DEL</strong> - {{ $t("help.del") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>ESC</strong> - {{ $t("help.esc") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>CTRL + S</strong> - {{ $t("help.ctrl.s") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>CTRL + F</strong> - {{ $t("help.ctrl.f") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>CTRL + Click</strong> - {{ $t("help.ctrl.click") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>Click</strong> - {{ $t("help.click") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<li><strong>Double click</strong> - {{ $t("help.doubleClick") }}</li> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
type="submit"
|
||||
@click="closeHovers"
|
||||
class="button button--flat"
|
||||
:aria-label="$t('buttons.ok')"
|
||||
:title="$t('buttons.ok')"
|
||||
>
|
||||
{{ $t("buttons.ok") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button type="submit" @click="closeHovers" class="button button--flat" :aria-label="$t('buttons.ok')"
|
||||
:title="$t('buttons.ok')">
|
||||
{{ $t("buttons.ok") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,77 +1,65 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.fileInfo") }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.fileInfo") }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p v-if="selected.length > 1">
|
||||
{{ $t("prompts.filesSelected", { count: selected.length }) }}
|
||||
</p>
|
||||
<div class="card-content">
|
||||
<p v-if="selected.length > 1">
|
||||
{{ $t("prompts.filesSelected", { count: selected.length }) }}
|
||||
</p>
|
||||
|
||||
<p class="break-word" v-if="selected.length < 2">
|
||||
<strong>{{ $t("prompts.displayName") }}</strong> {{ name }}
|
||||
</p>
|
||||
<p v-if="!dir || selected.length > 1">
|
||||
<strong>{{ $t("prompts.size") }}:</strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<span id="content_length"></span> {{ humanSize }}
|
||||
</p>
|
||||
<p v-if="!dir || selected.length > 1">
|
||||
<strong>{{$t('prompts.typeName')}}</strong>
|
||||
<span id="content_length"></span> {{ type }}
|
||||
</p>
|
||||
<p v-if="selected.length < 2" :title="modTime">
|
||||
<strong>{{ $t("prompts.lastModified") }}:</strong> {{ humanTime }} <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</p>
|
||||
<p class="break-word" v-if="selected.length < 2">
|
||||
<strong>{{ $t("prompts.displayName") }}</strong> {{ name }}
|
||||
</p>
|
||||
<p v-if="!dir || selected.length > 1">
|
||||
<strong>{{ $t("prompts.size") }}:</strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<span id="content_length"></span> {{ humanSize }}
|
||||
</p>
|
||||
<p v-if="!dir || selected.length > 1">
|
||||
<strong>{{ $t('prompts.typeName') }}</strong>
|
||||
<span id="content_length"></span> {{ type }}
|
||||
</p>
|
||||
<p v-if="selected.length < 2" :title="modTime">
|
||||
<strong>{{ $t("prompts.lastModified", { suffix: ":" }) }}</strong>
|
||||
<!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</p>
|
||||
|
||||
<template v-if="dir && selected.length === 0">
|
||||
<p>
|
||||
<strong>{{ $t("prompts.numberFiles") }}:</strong> {{ req.numFiles }} <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</p>
|
||||
<p>
|
||||
<strong>{{ $t("prompts.numberDirs") }}:</strong> {{ req.numDirs }} <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</p>
|
||||
</template>
|
||||
<template v-if="dir && selected.length === 0">
|
||||
<p>
|
||||
<strong>{{ $t("prompts.numberFiles", { suffix: ":" }) }}</strong> {{ req.numFiles }}
|
||||
<!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</p>
|
||||
<p>
|
||||
<strong>{{ $t("prompts.numberDirs", { suffix: ":" }) }}</strong> {{ req.numDirs }}
|
||||
<!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
</p>
|
||||
</template>
|
||||
|
||||
<template v-if="!dir">
|
||||
<p>
|
||||
<strong>MD5: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code
|
||||
><a @click="checksum($event, 'md5')">{{ $t("prompts.show") }}</a></code
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<strong>SHA1: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code
|
||||
><a @click="checksum($event, 'sha1')">{{ $t("prompts.show") }}</a></code
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<strong>SHA256: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code
|
||||
><a @click="checksum($event, 'sha256')">{{ $t("prompts.show") }}</a></code
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<strong>SHA512: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code
|
||||
><a @click="checksum($event, 'sha512')">{{ $t("prompts.show") }}</a></code
|
||||
>
|
||||
</p>
|
||||
</template>
|
||||
</div>
|
||||
<template v-if="!dir">
|
||||
<p>
|
||||
<strong>MD5: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code><a @click="checksum($event, 'md5')">{{ $t("prompts.show") }}</a></code>
|
||||
</p>
|
||||
<p>
|
||||
<strong>SHA1: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code><a @click="checksum($event, 'sha1')">{{ $t("prompts.show") }}</a></code>
|
||||
</p>
|
||||
<p>
|
||||
<strong>SHA256: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code><a @click="checksum($event, 'sha256')">{{ $t("prompts.show") }}</a></code>
|
||||
</p>
|
||||
<p>
|
||||
<strong>SHA512: </strong> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<code><a @click="checksum($event, 'sha512')">{{ $t("prompts.show") }}</a></code>
|
||||
</p>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
type="submit"
|
||||
@click="closeHovers"
|
||||
class="button button--flat"
|
||||
:aria-label="$t('buttons.ok')"
|
||||
:title="$t('buttons.ok')"
|
||||
>
|
||||
{{ $t("buttons.ok") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button type="submit" @click="closeHovers" class="button button--flat" :aria-label="$t('buttons.ok')"
|
||||
:title="$t('buttons.ok')">
|
||||
{{ $t("buttons.ok") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,35 +1,33 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t(`prompts.${operation}`) }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t(`prompts.${operation}`) }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p v-if="operation === 'copy'">{{ $t("prompts.copyMessage") }}</p>
|
||||
<div class="card-content">
|
||||
<p v-if="operation === 'copy'">{{ $t("prompts.copyMessage") }}</p>
|
||||
|
||||
<file-list ref="fileList" @update:selected="updateDestination">
|
||||
</file-list>
|
||||
</div>
|
||||
<file-list ref="fileList" @update:selected="updateDestination">
|
||||
</file-list>
|
||||
</div>
|
||||
|
||||
<div class="card-action" style="display: flex; align-items: center; justify-content: space-between">
|
||||
<template v-if="user.permissions.modify">
|
||||
<button class="button button--flat" @click="$refs.fileList.createDir()"
|
||||
:aria-label="$t('sidebar.newFolder')" :title="$t('sidebar.newFolder')" style="justify-self: left">
|
||||
<span>{{ $t("sidebar.newFolder") }}</span>
|
||||
</button>
|
||||
</template>
|
||||
<div>
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button :disabled="destContainsSrc" class="button button--flat" @click="performOperation"
|
||||
:aria-label="$t(`buttons.${operation}`)" :title="$t(`buttons.${operation}`)">
|
||||
{{ $t(`buttons.${operation}`) }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-action" style="display: flex; align-items: center; justify-content: space-between">
|
||||
<template v-if="user.permissions.modify">
|
||||
<button class="button button--flat" @click="$refs.fileList.createDir()" :aria-label="$t('sidebar.newFolder')"
|
||||
:title="$t('sidebar.newFolder')" style="justify-self: left">
|
||||
<span>{{ $t("sidebar.newFolder") }}</span>
|
||||
</button>
|
||||
</template>
|
||||
<div>
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button :disabled="destContainsSrc" class="button button--flat" @click="performOperation"
|
||||
:aria-label="$t(`buttons.${operation}`)" :title="$t(`buttons.${operation}`)">
|
||||
{{ $t(`buttons.${operation}`) }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,39 +1,23 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.newDir") }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.newDir") }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.newDirMessage") }}</p>
|
||||
<input
|
||||
aria-label="New Folder Name"
|
||||
class="input input--block"
|
||||
type="text"
|
||||
@keyup.enter="submit"
|
||||
v-model.trim="name"
|
||||
v-focus
|
||||
/>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.newDirMessage") }}</p>
|
||||
<input aria-label="New Folder Name" class="input input--block" type="text" @keyup.enter="submit" v-model.trim="name"
|
||||
v-focus />
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeHovers"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
class="button button--flat"
|
||||
:aria-label="$t('buttons.create')"
|
||||
:title="$t('buttons.create')"
|
||||
@click="submit"
|
||||
>
|
||||
{{ $t("buttons.create") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat" :aria-label="$t('buttons.create')" :title="$t('buttons.create')"
|
||||
@click="submit">
|
||||
{{ $t("buttons.create") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,39 +1,23 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.newFile") }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.newFile") }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.newFileMessage") }}</p>
|
||||
<input
|
||||
class="input input--block"
|
||||
aria-label="FileName Field"
|
||||
v-focus
|
||||
type="text"
|
||||
@keyup.enter="submit"
|
||||
v-model.trim="name"
|
||||
/>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.newFileMessage") }}</p>
|
||||
<input class="input input--block" aria-label="FileName Field" v-focus type="text" @keyup.enter="submit"
|
||||
v-model.trim="name" />
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeHovers"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
class="button button--flat"
|
||||
@click="submit"
|
||||
:aria-label="$t('buttons.create')"
|
||||
:title="$t('buttons.create')"
|
||||
>
|
||||
{{ $t("buttons.create") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat" @click="submit" :aria-label="$t('buttons.create')"
|
||||
:title="$t('buttons.create')">
|
||||
{{ $t("buttons.create") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="card floating fb-shadow" v-if="showOverlay" :aria-label="promptLabel">
|
||||
<component
|
||||
v-if="showOverlay"
|
||||
:ref="currentPromptName"
|
||||
:is="currentPromptName"
|
||||
v-bind="currentPromptProps"
|
||||
@@ -99,10 +98,10 @@ export default {
|
||||
});
|
||||
},
|
||||
computed: {
|
||||
promptLabel() {
|
||||
return getters.currentPromptName() + "-prompt";
|
||||
},
|
||||
currentPromptName() {
|
||||
if (getters.currentPromptName() == null) {
|
||||
return "";
|
||||
}
|
||||
return getters.currentPromptName();
|
||||
},
|
||||
currentPrompt() {
|
||||
@@ -129,7 +128,7 @@ export default {
|
||||
return state.plugins;
|
||||
},
|
||||
showOverlay() {
|
||||
return getters.currentPromptName() !== "more";
|
||||
return getters.currentPromptName() !== "" && getters.currentPromptName() !== "ContextMenu";
|
||||
},
|
||||
},
|
||||
methods: {},
|
||||
|
||||
@@ -1,44 +1,26 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.rename") }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.rename") }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.renameMessage", { filename: oldName() }) }}</p>
|
||||
<input
|
||||
class="input input--block"
|
||||
:class="{ 'invalid-form': !validateFileName(name) }"
|
||||
v-focus
|
||||
type="text"
|
||||
@keyup.enter="submit"
|
||||
v-model.trim="name"
|
||||
/>
|
||||
<p v-if="!validateFileName(name) && name.length > 0" class="validation-error">
|
||||
{{ $t("prompts.invalidName") }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.renameMessage", { filename: oldName() }) }}</p>
|
||||
<input class="input input--block" :class="{ 'invalid-form': !validateFileName(name) }" v-focus type="text"
|
||||
@keyup.enter="submit" v-model.trim="name" />
|
||||
<p v-if="!validateFileName(name) && name.length > 0" class="validation-error">
|
||||
{{ $t("prompts.invalidName") }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeHovers"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
@click="submit"
|
||||
class="button button--flat"
|
||||
:disabled="!validateFileName(name) || name.length === 0"
|
||||
type="submit"
|
||||
:aria-label="$t('buttons.rename')"
|
||||
:title="$t('buttons.rename')"
|
||||
>
|
||||
{{ $t("buttons.rename") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button @click="submit" class="button button--flat" :disabled="!validateFileName(name) || name.length === 0"
|
||||
type="submit" :aria-label="$t('buttons.rename')" :title="$t('buttons.rename')">
|
||||
{{ $t("buttons.rename") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,31 +1,21 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.replace") }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.replace") }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.replaceMessage") }}</p>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.replaceMessage") }}</p>
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeTopHover"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
class="button button--flat button--red"
|
||||
@click="currentPrompt.confirm"
|
||||
:aria-label="$t('buttons.replace')"
|
||||
:title="$t('buttons.replace')"
|
||||
>
|
||||
{{ $t("buttons.replace") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeTopHover" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat button--red" @click="currentPrompt.confirm" :aria-label="$t('buttons.replace')"
|
||||
:title="$t('buttons.replace')">
|
||||
{{ $t("buttons.replace") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,42 +1,25 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.replace") }}</h2>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.replace") }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.replaceMessage") }}</p>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeHovers"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
tabindex="3"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
class="button button--flat button--blue"
|
||||
@click="(event) => currentPrompt.confirm(event, 'rename')"
|
||||
:aria-label="$t('buttons.rename')"
|
||||
:title="$t('buttons.rename')"
|
||||
tabindex="2"
|
||||
>
|
||||
{{ $t("buttons.rename") }}
|
||||
</button>
|
||||
<button
|
||||
id="focus-prompt"
|
||||
class="button button--flat button--red"
|
||||
@click="(event) => currentPrompt.confirm(event, 'overwrite')"
|
||||
:aria-label="$t('buttons.replace')"
|
||||
:title="$t('buttons.replace')"
|
||||
tabindex="1"
|
||||
>
|
||||
{{ $t("buttons.replace") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.replaceMessage") }}</p>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')" tabindex="3">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat button--blue" @click="(event) => currentPrompt.confirm(event, 'rename')"
|
||||
:aria-label="$t('buttons.rename')" :title="$t('buttons.rename')" tabindex="2">
|
||||
{{ $t("buttons.rename") }}
|
||||
</button>
|
||||
<button id="focus-prompt" class="button button--flat button--red"
|
||||
@click="(event) => currentPrompt.confirm(event, 'overwrite')" :aria-label="$t('buttons.replace')"
|
||||
:title="$t('buttons.replace')" tabindex="1">
|
||||
{{ $t("buttons.replace") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,125 +1,89 @@
|
||||
<template>
|
||||
<div class="card floating share__promt__card" id="share">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("buttons.share") }}</h2>
|
||||
</div>
|
||||
<div aria-label="share-path" class="searchContext"> {{$t('search.path')}} {{ subpath }}</div>
|
||||
<p> {{ $t('share.notice') }} </p>
|
||||
<template v-if="listing">
|
||||
<div class="card-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>#</th> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<th>{{ $t("settings.shareDuration") }}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
<tr v-for="link in links" :key="link.hash">
|
||||
<td>{{ link.hash }}</td>
|
||||
<td>
|
||||
<template v-if="link.expire !== 0">{{ humanTime(link.expire) }}</template>
|
||||
<template v-else>{{ $t("permanent") }}</template>
|
||||
</td>
|
||||
<td class="small">
|
||||
<button
|
||||
class="action copy-clipboard"
|
||||
:data-clipboard-text="buildLink(link)"
|
||||
:aria-label="$t('buttons.copyToClipboard')"
|
||||
:title="$t('buttons.copyToClipboard')"
|
||||
>
|
||||
<i class="material-icons">content_paste</i>
|
||||
</button>
|
||||
</td>
|
||||
<td class="small" v-if="hasDownloadLink()">
|
||||
<button
|
||||
class="action copy-clipboard"
|
||||
:data-clipboard-text="buildDownloadLink(link)"
|
||||
:aria-label="$t('buttons.copyDownloadLinkToClipboard')"
|
||||
:title="$t('buttons.copyDownloadLinkToClipboard')"
|
||||
>
|
||||
<i class="material-icons">content_paste_go</i>
|
||||
</button>
|
||||
</td>
|
||||
<td class="small">
|
||||
<button
|
||||
class="action"
|
||||
@click="deleteLink($event, link)"
|
||||
:aria-label="$t('buttons.delete')"
|
||||
:title="$t('buttons.delete')"
|
||||
>
|
||||
<i class="material-icons">delete</i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeHovers"
|
||||
:aria-label="$t('buttons.close')"
|
||||
:title="$t('buttons.close')"
|
||||
>
|
||||
{{ $t("buttons.close") }}
|
||||
</button>
|
||||
<button
|
||||
class="button button--flat button--blue"
|
||||
@click="() => switchListing()"
|
||||
:aria-label="$t('buttons.new')"
|
||||
:title="$t('buttons.new')"
|
||||
>
|
||||
{{ $t("buttons.new") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("settings.shareDuration") }}</p>
|
||||
<div class="input-group input">
|
||||
<input
|
||||
v-focus
|
||||
type="number"
|
||||
max="2147483647"
|
||||
min="1"
|
||||
@keyup.enter="submit"
|
||||
v-model.trim="time"
|
||||
/>
|
||||
<select class="right" v-model="unit" :aria-label="$t('time.unit')">
|
||||
<option value="seconds">{{ $t("time.seconds") }}</option>
|
||||
<option value="minutes">{{ $t("time.minutes") }}</option>
|
||||
<option value="hours">{{ $t("time.hours") }}</option>
|
||||
<option value="days">{{ $t("time.days") }}</option>
|
||||
</select>
|
||||
</div>
|
||||
<p>{{ $t("prompts.optionalPassword") }}</p>
|
||||
<input class="input input--block" type="password" v-model.trim="password" />
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="() => switchListing()"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
class="button button--flat button--blue"
|
||||
@click="submit"
|
||||
aria-label="Share-Confirm"
|
||||
:title="$t('buttons.share')"
|
||||
>
|
||||
{{ $t("buttons.share") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("buttons.share") }}</h2>
|
||||
</div>
|
||||
<div aria-label="share-path" class="searchContext"> {{ $t('search.path') }} {{ subpath }}</div>
|
||||
<p> {{ $t('share.notice') }} </p>
|
||||
<template v-if="listing">
|
||||
<div class="card-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>#</th> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<th>{{ $t("settings.shareDuration") }}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
<tr v-for="link in links" :key="link.hash">
|
||||
<td>{{ link.hash }}</td>
|
||||
<td>
|
||||
<template v-if="link.expire !== 0">{{ humanTime(link.expire) }}</template>
|
||||
<template v-else>{{ $t("permanent") }}</template>
|
||||
</td>
|
||||
<td class="small">
|
||||
<button class="action copy-clipboard" :data-clipboard-text="buildLink(link)"
|
||||
:aria-label="$t('buttons.copyToClipboard')" :title="$t('buttons.copyToClipboard')">
|
||||
<i class="material-icons">content_paste</i>
|
||||
</button>
|
||||
</td>
|
||||
<td class="small" v-if="hasDownloadLink()">
|
||||
<button class="action copy-clipboard" :data-clipboard-text="buildDownloadLink(link)"
|
||||
:aria-label="$t('buttons.copyDownloadLinkToClipboard')"
|
||||
:title="$t('buttons.copyDownloadLinkToClipboard')">
|
||||
<i class="material-icons">content_paste_go</i>
|
||||
</button>
|
||||
</td>
|
||||
<td class="small">
|
||||
<button class="action" @click="deleteLink($event, link)" :aria-label="$t('buttons.delete')"
|
||||
:title="$t('buttons.delete')">
|
||||
<i class="material-icons">delete</i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.close')"
|
||||
:title="$t('buttons.close')">
|
||||
{{ $t("buttons.close") }}
|
||||
</button>
|
||||
<button class="button button--flat button--blue" @click="() => switchListing()" :aria-label="$t('buttons.new')"
|
||||
:title="$t('buttons.new')">
|
||||
{{ $t("buttons.new") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("settings.shareDuration") }}</p>
|
||||
<div class="input-group input">
|
||||
<input v-focus type="number" max="2147483647" min="1" @keyup.enter="submit" v-model.trim="time" />
|
||||
<select class="right" v-model="unit" :aria-label="$t('time.unit')">
|
||||
<option value="seconds">{{ $t("time.seconds") }}</option>
|
||||
<option value="minutes">{{ $t("time.minutes") }}</option>
|
||||
<option value="hours">{{ $t("time.hours") }}</option>
|
||||
<option value="days">{{ $t("time.days") }}</option>
|
||||
</select>
|
||||
</div>
|
||||
<p>{{ $t("prompts.optionalPassword") }}</p>
|
||||
<input class="input input--block" type="password" v-model.trim="password" />
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button class="button button--flat button--grey" @click="() => switchListing()" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button class="button button--flat button--blue" @click="submit" aria-label="Share-Confirm"
|
||||
:title="$t('buttons.share')">
|
||||
{{ $t("buttons.share") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
<script>
|
||||
import { notify } from "@/notify";
|
||||
|
||||
@@ -1,26 +1,16 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.deleteMessageShare", { path }) }}</p>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button
|
||||
@click="closeHovers"
|
||||
class="button button--flat button--grey"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
@click="submit"
|
||||
class="button button--flat button--red"
|
||||
:aria-label="$t('buttons.delete')"
|
||||
:title="$t('buttons.delete')"
|
||||
>
|
||||
{{ $t("buttons.delete") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.deleteMessageShare", { path }) }}</p>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button @click="closeHovers" class="button button--flat button--grey" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button @click="submit" class="button button--flat button--red" :aria-label="$t('buttons.delete')"
|
||||
:title="$t('buttons.delete')">
|
||||
{{ $t("buttons.delete") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,45 +1,30 @@
|
||||
<template>
|
||||
<div class="card floating create-api__prompt__card" id="create-api">
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("otp.name") }}</h2>
|
||||
</div>
|
||||
<div v-if="error !== ''" class="wrong-login card">{{ error }}</div>
|
||||
<div v-if="succeeded" >{{ $t("otp.verificationSucceed") }}</div>
|
||||
<div v-if="!succeeded" class="card-content">
|
||||
<p v-if="generate">{{ $t("otp.generate") }}</p>
|
||||
<div v-if="generate" class="share__box__element share__box__center">
|
||||
<p aria-label="otp-url">{{ this.url }}</p>
|
||||
<qrcode-vue class="qrcode" :value="this.url" size="200" level="M"></qrcode-vue>
|
||||
</div>
|
||||
<p>{{ $t("otp.verifyInstructions") }}</p>
|
||||
<input
|
||||
v-focus
|
||||
class="input input--block"
|
||||
type="text"
|
||||
v-model="code"
|
||||
@keyup.enter="verifyCode"
|
||||
:placeholder="$t('otp.codeInputPlaceholder')"
|
||||
/>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("otp.name") }}</h2>
|
||||
</div>
|
||||
<div v-if="error !== ''" class="wrong-login card">{{ error }}</div>
|
||||
<div v-if="succeeded">{{ $t("otp.verificationSucceed") }}</div>
|
||||
<div v-if="!succeeded" class="card-content">
|
||||
<p v-if="generate">{{ $t("otp.generate") }}</p>
|
||||
<div v-if="generate" class="share__box__element share__box__center">
|
||||
<p aria-label="otp-url">{{ this.url }}</p>
|
||||
<qrcode-vue class="qrcode" :value="this.url" size="200" level="M"></qrcode-vue>
|
||||
</div>
|
||||
<p>{{ $t("otp.verifyInstructions") }}</p>
|
||||
<input v-focus class="input input--block" type="text" v-model="code" @keyup.enter="verifyCode"
|
||||
:placeholder="$t('otp.codeInputPlaceholder')" />
|
||||
</div>
|
||||
|
||||
<div class="card-action">
|
||||
<button
|
||||
@click="closeHovers"
|
||||
class="button button--flat button--grey"
|
||||
:aria-label="succeeded ? $t('buttons.close') : $t('buttons.cancel')"
|
||||
:title="succeeded ? $t('buttons.close') : $t('buttons.cancel')"
|
||||
>
|
||||
{{ succeeded ? $t('buttons.close') : $t('buttons.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
v-if="!succeeded"
|
||||
class="button button--flat button--blue"
|
||||
@click="verifyCode"
|
||||
:title="$t('buttons.verify')"
|
||||
>
|
||||
{{ $t("buttons.verify") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button @click="closeHovers" class="button button--flat button--grey"
|
||||
:aria-label="succeeded ? $t('buttons.close') : $t('buttons.cancel')"
|
||||
:title="succeeded ? $t('buttons.close') : $t('buttons.cancel')">
|
||||
{{ succeeded ? $t('buttons.close') : $t('buttons.cancel') }}
|
||||
</button>
|
||||
<button v-if="!succeeded" class="button button--flat button--blue" @click="verifyCode"
|
||||
:title="$t('buttons.verify')">
|
||||
{{ $t("buttons.verify") }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,193 +1,108 @@
|
||||
<template>
|
||||
<div class="card floating" >
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.upload") }}</h2>
|
||||
<p>{{ uploadSettingsDescription }}</p>
|
||||
<div class="card-title">
|
||||
<h2>{{ $t("prompts.upload") }}</h2>
|
||||
<p>{{ uploadSettingsDescription }}</p>
|
||||
</div>
|
||||
<div class="upload-prompt" :class="{ dropping: isDragging }" @dragenter.prevent="onDragEnter"
|
||||
@dragover.prevent="onDragOver" @dragleave.prevent="onDragLeave" @drop.prevent="onDrop">
|
||||
<div class="upload-prompt-container">
|
||||
<i v-if="files.length === 0" class="material-icons">cloud_upload</i>
|
||||
<p v-if="files.length === 0">{{ $t("prompts.dragAndDrop") }}</p>
|
||||
<div class="button-group">
|
||||
<button @click="triggerFilePicker" class="button button--flat">
|
||||
{{ $t("buttons.file") }}
|
||||
</button>
|
||||
<button style="margin-left: 1em" @click="triggerFolderPicker" class="button button--flat">
|
||||
{{ $t("buttons.folder") }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="upload-prompt"
|
||||
:class="{ dropping: isDragging }"
|
||||
@dragenter.prevent="onDragEnter"
|
||||
@dragover.prevent="onDragOver"
|
||||
@dragleave.prevent="onDragLeave"
|
||||
@drop.prevent="onDrop"
|
||||
>
|
||||
<div class="upload-prompt-container">
|
||||
<i v-if="files.length === 0" class="material-icons">cloud_upload</i>
|
||||
<p v-if="files.length === 0">{{ $t("prompts.dragAndDrop") }}</p>
|
||||
<div class="button-group">
|
||||
<button @click="triggerFilePicker" class="button button--flat">
|
||||
{{ $t("buttons.file") }}
|
||||
</div>
|
||||
<div class="card-content" @drop.prevent="onDrop">
|
||||
<div v-if="showConflictPrompt" class="conflict-overlay">
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.conflictsDetected") }}</p>
|
||||
</div>
|
||||
<div class="card-actions">
|
||||
<button @click="resolveConflict(false)" class="button button--flat button--grey">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
style="margin-left: 1em"
|
||||
@click="triggerFolderPicker"
|
||||
class="button button--flat"
|
||||
>
|
||||
{{ $t("buttons.folder") }}
|
||||
<button @click="resolveConflict(true)" class="button button--flat button--red">
|
||||
{{ $t("buttons.replace") }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="card-content"
|
||||
@drop.prevent="onDrop"
|
||||
>
|
||||
<div v-if="showConflictPrompt" class="conflict-overlay">
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<p>{{ $t("prompts.conflictsDetected") }}</p>
|
||||
</div>
|
||||
<div class="card-actions">
|
||||
<button
|
||||
@click="resolveConflict(false)"
|
||||
class="button button--flat button--grey"
|
||||
>
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button
|
||||
@click="resolveConflict(true)"
|
||||
class="button button--flat button--red"
|
||||
>
|
||||
{{ $t("buttons.replace") }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="files.length > 0" class="upload-list">
|
||||
<div v-for="file in files" :key="file.id" class="upload-item">
|
||||
<i class="material-icons file-icon">{{file.type === "directory" ? "folder" : "insert_drive_file" }}</i> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<div class="file-info">
|
||||
<p class="file-name">{{ file.name }}</p>
|
||||
<progress-bar
|
||||
v-if="file.type !== 'directory'"
|
||||
:val="
|
||||
file.status === 'completed'
|
||||
? $t('prompts.completed')
|
||||
: file.status === 'error'
|
||||
? $t('prompts.error')
|
||||
: file.status === 'conflict'
|
||||
<div v-if="files.length > 0" class="upload-list">
|
||||
<div v-for="file in files" :key="file.id" class="upload-item">
|
||||
<i class="material-icons file-icon">{{ file.type === "directory" ? "folder" : "insert_drive_file" }}</i> <!-- eslint-disable-line @intlify/vue-i18n/no-raw-text -->
|
||||
<div class="file-info">
|
||||
<p class="file-name">{{ file.name }}</p>
|
||||
<progress-bar v-if="file.type !== 'directory'" :val="file.status === 'completed'
|
||||
? $t('prompts.completed')
|
||||
: file.status === 'error'
|
||||
? $t('prompts.error')
|
||||
: file.status === 'conflict'
|
||||
? $t('prompts.conflictsDetected')
|
||||
: (file.progress / 100) * file.size
|
||||
"
|
||||
:unit="file.status === 'completed' || file.status === 'error' ? '' : 'bytes'"
|
||||
:max="file.size"
|
||||
:status="file.status"
|
||||
text-position="inside"
|
||||
size="20"
|
||||
>
|
||||
</progress-bar>
|
||||
<div v-else class="status-label">
|
||||
<span>{{ $t(`prompts.${file.status}`) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="file-actions">
|
||||
<button
|
||||
v-if="file.status === 'uploading'"
|
||||
@click="uploadManager.pause(file.id)"
|
||||
class="action"
|
||||
:aria-label="$t('buttons.pause')"
|
||||
:title="$t('buttons.pause')"
|
||||
>
|
||||
<i class="material-icons">pause</i>
|
||||
</button>
|
||||
<button
|
||||
v-if="file.status === 'paused'"
|
||||
@click="uploadManager.resume(file.id)"
|
||||
class="action"
|
||||
:aria-label="$t('buttons.resume')"
|
||||
:title="$t('buttons.resume')"
|
||||
>
|
||||
<i class="material-icons">play_arrow</i>
|
||||
</button>
|
||||
<button
|
||||
v-if="file.status === 'error'"
|
||||
@click="uploadManager.retry(file.id)"
|
||||
class="action"
|
||||
:aria-label="$t('buttons.retry')"
|
||||
:title="$t('buttons.retry')"
|
||||
>
|
||||
<i class="material-icons">replay</i>
|
||||
</button>
|
||||
<button
|
||||
v-if="file.status === 'conflict'"
|
||||
@click="handleConflictAction(file)"
|
||||
class="action"
|
||||
:aria-label="$t('buttons.replace')"
|
||||
:title="$t('buttons.replace')"
|
||||
>
|
||||
<i class="material-icons">sync_problem</i>
|
||||
</button>
|
||||
<button
|
||||
@click="cancelUpload(file.id)"
|
||||
class="action"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
<i class="material-icons">close</i>
|
||||
</button>
|
||||
" :unit="file.status === 'completed' || file.status === 'error' ? '' : 'bytes'" :max="file.size"
|
||||
:status="file.status" text-position="inside" size="20">
|
||||
</progress-bar>
|
||||
<div v-else class="status-label">
|
||||
<span>{{ $t(`prompts.${file.status}`) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="file-actions">
|
||||
<button v-if="file.status === 'uploading'" @click="uploadManager.pause(file.id)" class="action"
|
||||
:aria-label="$t('buttons.pause')" :title="$t('buttons.pause')">
|
||||
<i class="material-icons">pause</i>
|
||||
</button>
|
||||
<button v-if="file.status === 'paused'" @click="uploadManager.resume(file.id)" class="action"
|
||||
:aria-label="$t('buttons.resume')" :title="$t('buttons.resume')">
|
||||
<i class="material-icons">play_arrow</i>
|
||||
</button>
|
||||
<button v-if="file.status === 'error'" @click="uploadManager.retry(file.id)" class="action"
|
||||
:aria-label="$t('buttons.retry')" :title="$t('buttons.retry')">
|
||||
<i class="material-icons">replay</i>
|
||||
</button>
|
||||
<button v-if="file.status === 'conflict'" @click="handleConflictAction(file)" class="action"
|
||||
:aria-label="$t('buttons.replace')" :title="$t('buttons.replace')">
|
||||
<i class="material-icons">sync_problem</i>
|
||||
</button>
|
||||
<button @click="cancelUpload(file.id)" class="action" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
<i class="material-icons">close</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-actions">
|
||||
<button
|
||||
@click="close"
|
||||
class="button button--flat button--grey"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
{{ $t("buttons.close") }}
|
||||
</button>
|
||||
<div class="spacer"></div>
|
||||
<button
|
||||
v-if="canPauseAll"
|
||||
@click="uploadManager.pauseAll"
|
||||
class="button button--flat"
|
||||
:aria-label="$t('buttons.pauseAll')"
|
||||
:title="$t('buttons.pauseAll')"
|
||||
>
|
||||
{{ $t("buttons.pauseAll") }}
|
||||
</button>
|
||||
<button
|
||||
v-if="canResumeAll"
|
||||
@click="uploadManager.resumeAll"
|
||||
class="button button--flat"
|
||||
:aria-label="$t('buttons.resumeAll')"
|
||||
:title="$t('buttons.resumeAll')"
|
||||
>
|
||||
{{ $t("buttons.resumeAll") }}
|
||||
</button>
|
||||
<button
|
||||
@click="clearCompleted"
|
||||
class="button button--flat"
|
||||
:disabled="!hasCompleted"
|
||||
:aria-label="$t('buttons.clearCompleted')"
|
||||
:title="$t('buttons.clearCompleted')"
|
||||
>
|
||||
{{ $t("buttons.clearCompleted") }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<input
|
||||
ref="fileInput"
|
||||
@change="onFilePicked"
|
||||
type="file"
|
||||
multiple
|
||||
style="display: none"
|
||||
/>
|
||||
<input
|
||||
ref="folderInput"
|
||||
@change="onFolderPicked"
|
||||
type="file"
|
||||
webkitdirectory
|
||||
directory
|
||||
multiple
|
||||
style="display: none"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="card-actions">
|
||||
<button @click="close" class="button button--flat button--grey" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.close") }}
|
||||
</button>
|
||||
<div class="spacer"></div>
|
||||
<button v-if="canPauseAll" @click="uploadManager.pauseAll" class="button button--flat"
|
||||
:aria-label="$t('buttons.pauseAll')" :title="$t('buttons.pauseAll')">
|
||||
{{ $t("buttons.pauseAll") }}
|
||||
</button>
|
||||
<button v-if="canResumeAll" @click="uploadManager.resumeAll" class="button button--flat"
|
||||
:aria-label="$t('buttons.resumeAll')" :title="$t('buttons.resumeAll')">
|
||||
{{ $t("buttons.resumeAll") }}
|
||||
</button>
|
||||
<button @click="clearCompleted" class="button button--flat" :disabled="!hasCompleted"
|
||||
:aria-label="$t('buttons.clearCompleted')" :title="$t('buttons.clearCompleted')">
|
||||
{{ $t("buttons.clearCompleted") }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<input ref="fileInput" @change="onFilePicked" type="file" multiple style="display: none" />
|
||||
<input ref="folderInput" @change="onFolderPicked" type="file" webkitdirectory directory multiple
|
||||
style="display: none" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -573,7 +488,8 @@ export default {
|
||||
|
||||
.upload-list {
|
||||
overflow-y: auto;
|
||||
padding-right: 0.5em; /* To avoid scrollbar overlapping content */
|
||||
padding-right: 0.5em;
|
||||
/* To avoid scrollbar overlapping content */
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
|
||||
@@ -1,38 +1,31 @@
|
||||
<template>
|
||||
<div class="card floating">
|
||||
<errors v-if="error" :errorCode="error.status" />
|
||||
<form @submit="save" v-if="loaded">
|
||||
<div class="card-title">
|
||||
<h2 v-if="isNew">{{ $t("settings.newUser") }}</h2>
|
||||
<h2 v-else-if="actor.id == user.id">
|
||||
{{ $t("settings.modifyCurrentUser") }} {{ user.username }}
|
||||
</h2>
|
||||
<h2 v-else>{{ $t("settings.modifyOtherUser") }} {{ user.username }}</h2>
|
||||
</div>
|
||||
|
||||
<errors v-if="error" :errorCode="error.status" />
|
||||
<form @submit="save" v-if="loaded">
|
||||
<div class="card-title">
|
||||
<h2 v-if="isNew">{{ $t("settings.newUser") }}</h2>
|
||||
<h2 v-else-if="actor.id == user.id">
|
||||
{{ $t("settings.modifyCurrentUser") }} {{ user.username }}
|
||||
</h2>
|
||||
<h2 v-else>{{ $t("settings.modifyOtherUser") }} {{ user.username }}</h2>
|
||||
</div>
|
||||
<div class="card-content minimal-card">
|
||||
<user-form v-model:user="user" :createUserDir="createUserDir" :isNew="isNew"
|
||||
@update:createUserDir="(updatedDir) => (createUserDir = updatedDir)" />
|
||||
</div>
|
||||
|
||||
<div class="card-content minimal-card">
|
||||
<user-form v-model:user="user" :createUserDir="createUserDir" :isNew="isNew"
|
||||
@update:createUserDir="(updatedDir) => (createUserDir = updatedDir)" />
|
||||
</div>
|
||||
|
||||
<div v-if="actor.permissions.admin" class="card-action">
|
||||
<button
|
||||
class="button button--flat button--grey"
|
||||
@click="closeHovers"
|
||||
:aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')"
|
||||
>
|
||||
<div v-if="actor.permissions.admin" class="card-action">
|
||||
<button class="button button--flat button--grey" @click="closeHovers" :aria-label="$t('buttons.cancel')"
|
||||
:title="$t('buttons.cancel')">
|
||||
{{ $t("buttons.cancel") }}
|
||||
</button>
|
||||
<button v-if="!isNew" @click.prevent="deletePrompt" type="button" class="button button--flat button--red"
|
||||
aria-label="Delete User" :title="$t('buttons.delete')">
|
||||
{{ $t("buttons.delete") }}
|
||||
</button>
|
||||
<input aria-label="Save User" class="save-button button button--flat" type="submit" :value="$t('buttons.save')" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<button v-if="!isNew" @click.prevent="deletePrompt" type="button" class="button button--flat button--red"
|
||||
aria-label="Delete User" :title="$t('buttons.delete')">
|
||||
{{ $t("buttons.delete") }}
|
||||
</button>
|
||||
<input aria-label="Save User" class="save-button button button--flat" type="submit" :value="$t('buttons.save')" />
|
||||
</div>
|
||||
</form>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -145,6 +138,7 @@ export default {
|
||||
padding-top: 0 !important;
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.save-button {
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
@@ -304,11 +304,11 @@ export default {
|
||||
<td style="padding: 0.2em 0.5em; border-bottom: 1px solid #ccc;">${info.assessment || 'unknown'}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0.2em 0.5em; border-bottom: 1px solid #ccc;">${this.$t("index.files")}</td>
|
||||
<td style="padding: 0.2em 0.5em; border-bottom: 1px solid #ccc;">${this.$t("general.files")}</td>
|
||||
<td style="padding: 0.2em 0.5em; border-bottom: 1px solid #ccc;">${info.files || 0}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0.2em 0.5em; border-bottom: 1px solid #ccc;">${this.$t("index.folders")}</td>
|
||||
<td style="padding: 0.2em 0.5em; border-bottom: 1px solid #ccc;">${this.$t("general.folders")}</td>
|
||||
<td style="padding: 0.2em 0.5em; border-bottom: 1px solid #ccc;">${info.folders || 0}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -190,5 +190,12 @@ body.rtl .action {
|
||||
|
||||
#sidebar.scrollable {
|
||||
overflow: auto;
|
||||
-ms-overflow-style: none; /* IE and Edge */
|
||||
scrollbar-width: none; /* Firefox */
|
||||
}
|
||||
|
||||
#sidebar.scrollable::-webkit-scrollbar {
|
||||
display: none; /* Chrome, Safari, and Opera */
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -11,10 +11,6 @@
|
||||
transition: .1s ease all;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
background-color: var(--dark-blue);
|
||||
}
|
||||
|
||||
.button--block {
|
||||
margin: 0 0 0.5em;
|
||||
display: block;
|
||||
@@ -37,10 +33,6 @@
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.button--flat:hover {
|
||||
background: var(--moon-grey);
|
||||
}
|
||||
|
||||
.button--flat.button--red {
|
||||
color: var(--dark-red);
|
||||
}
|
||||
|
||||
@@ -120,14 +120,12 @@ over
|
||||
transition: 0.2s ease width;
|
||||
}
|
||||
|
||||
|
||||
|
||||
button {
|
||||
flex: 1;
|
||||
height: 3em;
|
||||
padding: 8px 16px;
|
||||
border: none;
|
||||
background-color: #f5f5f5;
|
||||
background-color: var(--surfaceSecondary);
|
||||
transition: background-color 0.3s;
|
||||
/* Add borders */
|
||||
border-right: 1px solid #ccc;
|
||||
@@ -223,22 +221,3 @@ input.sizeInput:disabled {
|
||||
border-style: solid;
|
||||
border-color: white;
|
||||
}
|
||||
|
||||
|
||||
#listingView.list .item:hover,
|
||||
#listingView.compact .item:hover,
|
||||
#listingView.normal .item:hover,
|
||||
#listingView.gallery .item:hover,
|
||||
#sidebar .item:hover,
|
||||
.action:hover,
|
||||
.quick-toggles div:hover,
|
||||
.button-group button:hover,
|
||||
#listingView.list .item.drag-hover,
|
||||
#listingView.compact .item.drag-hover,
|
||||
#listingView.normal .item.drag-hover,
|
||||
#listingView.gallery .item.drag-hover {
|
||||
box-shadow: inset 0 -3em 3em rgba(217, 217, 217, 0.211), 0 0 0 2px var(--alt-background) !important;
|
||||
/* Adjust shadow values as needed */
|
||||
transform: scale(1.02);
|
||||
/* Slightly enlarges the element */
|
||||
}
|
||||
@@ -60,10 +60,6 @@
|
||||
color: var(--textPrimary) !important;
|
||||
}
|
||||
|
||||
.dark-mode .action:hover {
|
||||
background-color: rgba(255, 255, 255, .1);
|
||||
}
|
||||
|
||||
/* Action counter */
|
||||
.dark-mode .action .counter {
|
||||
border-color: var(--surfacePrimary);
|
||||
@@ -107,19 +103,11 @@
|
||||
color: var(--textPrimary);
|
||||
}
|
||||
|
||||
/* Flat button hover */
|
||||
.dark-mode .button--flat:hover {
|
||||
background: var(--surfaceSecondary);
|
||||
}
|
||||
|
||||
/* Dashboard navigation */
|
||||
.dark-mode .dashboard #nav ul li {
|
||||
color: var(--textSecondary);
|
||||
}
|
||||
|
||||
.dark-mode .dashboard #nav ul li:hover {
|
||||
background: var(--surfaceSecondary);
|
||||
}
|
||||
#search.active.dark-mode #result {
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ table tr>*:last-child {
|
||||
.card {
|
||||
position: relative;
|
||||
margin: 0 0 1rem 0;
|
||||
background-color: #fff;
|
||||
background-color: var(--background);
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
|
||||
overflow: auto;
|
||||
@@ -173,13 +173,10 @@ table tr>*:last-child {
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
-webkit-box-shadow: 0px 2em 50px 10px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: 0px 2em 50px 10px rgba(0, 0, 0, 0.3);
|
||||
z-index: 99999;
|
||||
z-index: 10;
|
||||
max-width: 40em;
|
||||
width: 90%;
|
||||
max-height: 95%;
|
||||
z-index: 99999;
|
||||
animation: .1s show forwards;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ header {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0.5em;
|
||||
background-color: #DDDDDD
|
||||
}
|
||||
|
||||
@supports (backdrop-filter: none) {
|
||||
|
||||
@@ -340,3 +340,20 @@ body.rtl .card.floating .card-content .file-list {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fb-shadow {
|
||||
box-shadow: 0px 0px 15px 0px rgb(100 100 100 / 75%);
|
||||
-webkit-box-shadow: 0px 0px 15px 0px rgb(100 100 100 / 75%);
|
||||
}
|
||||
|
||||
.item:hover,
|
||||
.quick-toggles div:hover,
|
||||
.button-group button:hover,
|
||||
.search-entry:hover,
|
||||
button:hover,
|
||||
.item.drag-hover{
|
||||
box-shadow: inset 0 -3em 3em rgba(217, 217, 217, 0.211), 0 0 0 2px var(--alt-background) !important;
|
||||
/* Adjust shadow values as needed */
|
||||
transform: scale(1.02);
|
||||
/* Slightly enlarges the element */
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "الصفحة",
|
||||
"clear": "مسح",
|
||||
"closePreview": "إغلاق العرض",
|
||||
"files": "الملفات",
|
||||
"folders": "المجلدات",
|
||||
"home": "الصفحة الاولى",
|
||||
"lastModified": "آخر تعديل",
|
||||
"loading": "جاري التحميل...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Create an account",
|
||||
"loginInstead": "Already have an account",
|
||||
"password": "كلمة المرور",
|
||||
"passwordConfirm": "Password Confirmation",
|
||||
"passwordsDontMatch": "Passwords don't match",
|
||||
"signup": "Signup",
|
||||
"submit": "تسجيل دخول",
|
||||
"username": "إسم المستخدم",
|
||||
"usernameTaken": "Username already taken",
|
||||
"wrongCredentials": "بيانات دخول خاطئة",
|
||||
"or": "أو"
|
||||
},
|
||||
"permanent": "دائم",
|
||||
"prompts": {
|
||||
"copy": "نسخ",
|
||||
"copyMessage": "رجاء حدد المكان لنسخ ملفاتك فيه:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "حدد إمتداد الملف المراد تحميله.",
|
||||
"error": "لقد حدث خطأ ما",
|
||||
"fileInfo": "معلومات الملف",
|
||||
"lastModified": "آخر تعديل",
|
||||
"lastModified": "آخر تعديل{suffix}",
|
||||
"move": "نقل",
|
||||
"moveMessage": "إختر مكان جديد للملفات أو المجلدات المراد نقلها:",
|
||||
"newArchetype": "إنشاء منشور من المنشور الأصلي. الملف سيتم انشاءه في مجلد المحتويات.",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "رجاء أدخل اسم المجلد الجديد.",
|
||||
"newFile": "ملف جديد",
|
||||
"newFileMessage": "رجاء ادخل اسم الملف الجديد.",
|
||||
"numberDirs": "عدد المجلدات",
|
||||
"numberFiles": "عدد الملفات",
|
||||
"numberDirs": "عدد المجلدات{suffix}",
|
||||
"numberFiles": "عدد الملفات{suffix}",
|
||||
"rename": "إعادة تسمية",
|
||||
"renameMessage": "إدراج اسم جديد لـ",
|
||||
"replace": "إستبدال",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "التعارضات المكتشفة",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "الاسم المقدم غير صالح: لا يمكن أن يحتوي على \"/\" أو \"\\\""
|
||||
"invalidName": "الاسم المقدم غير صالح: لا يمكن أن يحتوي على \"/\" أو \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "الصور",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "الحالة",
|
||||
"assessment": "التقييم",
|
||||
"files": "الملفات",
|
||||
"folders": "المجلدات",
|
||||
"lastScanned": "آخر مسح ضوئي",
|
||||
"quickScan": "ثواني المسح السريع",
|
||||
"fullScan": "كامل ثواني المسح الضوئي",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "تم حذف قاعدة الوصول",
|
||||
"added": "تمت إضافة قاعدة الوصول!",
|
||||
"name": "الاسم",
|
||||
"accessManagement": "إدارة الوصول"
|
||||
"accessManagement": "إدارة الوصول",
|
||||
"totalDenied": "مرفوض",
|
||||
"totalAllowed": "المسموح به"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "التحميلات والتنزيلات",
|
||||
@@ -458,7 +453,9 @@
|
||||
"disableOfficeEditorDescription": "قائمة مفصولة بمسافات لامتدادات الملفات لتعطيل محرر وعارض OnlyOffice لها. (على سبيل المثال، \".txt .html .pdf\").",
|
||||
"disableOfficeEditor": "تعطيل عارض المكتب لامتدادات ملفات معينة",
|
||||
"defaultThemeDescription": "افتراضي - السمة الافتراضية",
|
||||
"customTheme": "اختر المظهر الخاص بك"
|
||||
"customTheme": "اختر المظهر الخاص بك",
|
||||
"showSelectMultiple": "إظهار تحديد متعدد في قائمة السياق على سطح المكتب",
|
||||
"showSelectMultipleDescription": "بشكل افتراضي، لا تحتوي قائمة سياق سطح المكتب على خيار \"تحديد متعدد\" مثل الهاتف المحمول. يظهر هذا الخيار دائمًا في قائمة السياق."
|
||||
},
|
||||
"colors": {
|
||||
"red": "أحمر",
|
||||
|
||||
+38
-12
@@ -66,8 +66,6 @@
|
||||
"body": "Tělo",
|
||||
"clear": "Vymazat",
|
||||
"closePreview": "Zavřít náhled",
|
||||
"files": "Soubory",
|
||||
"folders": "Složky",
|
||||
"home": "Domů",
|
||||
"lastModified": "Poslední změna",
|
||||
"loading": "Načítání...",
|
||||
@@ -125,17 +123,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Vytvořit účet",
|
||||
"loginInstead": "Už máte účet",
|
||||
"password": "Heslo",
|
||||
"passwordConfirm": "Potvrzení hesla",
|
||||
"passwordsDontMatch": "Hesla se neshodují",
|
||||
"signup": "Registrovat se",
|
||||
"submit": "Přihlásit se",
|
||||
"username": "Uživatelské jméno",
|
||||
"usernameTaken": "Uživatelské jméno je již obsazeno",
|
||||
"wrongCredentials": "Nesprávné přihlašovací údaje",
|
||||
"or": "NEBO"
|
||||
},
|
||||
"permanent": "Trvalé",
|
||||
"share": {
|
||||
"notice": "Poznámka: Každý, kdo má přístup k odkazu (a volitelnému heslu), může zobrazit sdílené soubory. Není nutné být přihlášen."
|
||||
},
|
||||
@@ -162,8 +156,8 @@
|
||||
"newDirMessage": "Zadejte název nové složky.",
|
||||
"newFile": "Nový soubor",
|
||||
"newFileMessage": "Zadejte název nového souboru.",
|
||||
"numberDirs": "Počet složek",
|
||||
"numberFiles": "Počet souborů",
|
||||
"numberDirs": "Počet složek{suffix}",
|
||||
"numberFiles": "Počet souborů{suffix}",
|
||||
"rename": "Přejmenovat",
|
||||
"renameMessage": "Zadejte nový název pro",
|
||||
"replace": "Nahradit",
|
||||
@@ -182,7 +176,8 @@
|
||||
"conflictsDetected": "Zjištěné konflikty",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nesprávný zadaný název: nelze použít kontejner \"/\" nebo \"\\\"."
|
||||
"invalidName": "Nesprávný zadaný název: nelze použít kontejner \"/\" nebo \"\\\".",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Obrázky",
|
||||
@@ -246,7 +241,9 @@
|
||||
"disableOfficeEditorDescription": "Seznam přípon souborů oddělených mezerou, pro které se má vypnout editor a prohlížeč OnlyOffice. (např. '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Zakázat editor a prohlížeč Office pro určité přípony souborů a vrátit se k výchozímu prohlížeči/editoru, velmi užitečné pro soubory pdf a txt.",
|
||||
"defaultThemeDescription": "default - Výchozí téma",
|
||||
"customTheme": "Vyberte si téma"
|
||||
"customTheme": "Vyberte si téma",
|
||||
"showSelectMultiple": "Zobrazení výběru více položek v kontextové nabídce na ploše",
|
||||
"showSelectMultipleDescription": "Ve výchozím nastavení nemá kontextová nabídka na ploše možnost \"vybrat více\" jako v mobilním telefonu. Tato možnost se v kontextové nabídce zobrazuje vždy."
|
||||
},
|
||||
"settings": {
|
||||
"enterPassword": "Zadejte heslo",
|
||||
@@ -399,8 +396,6 @@
|
||||
"index": {
|
||||
"status": "Stav",
|
||||
"assessment": "Vyhodnocení",
|
||||
"files": "Soubory",
|
||||
"folders": "Složky",
|
||||
"lastScanned": "Poslední skenování",
|
||||
"quickScan": "Rychlý sken (s)",
|
||||
"fullScan": "Plný sken (s)",
|
||||
@@ -438,5 +433,36 @@
|
||||
"yellow": "žlutá",
|
||||
"violet": "fialová",
|
||||
"orange": "oranžová"
|
||||
},
|
||||
"general": {
|
||||
"name": "Název",
|
||||
"path": "Cesta",
|
||||
"user": "Uživatel",
|
||||
"group": "Skupina",
|
||||
"signup": "Registrace",
|
||||
"password": "Heslo",
|
||||
"username": "Uživatelské jméno",
|
||||
"files": "Soubory",
|
||||
"folders": "Složky",
|
||||
"exit": "Exit",
|
||||
"permanent": "Permanentní"
|
||||
},
|
||||
"access": {
|
||||
"rules": "Pravidla přístupu",
|
||||
"deny": "Odmítnout",
|
||||
"deniedUsers": "Odmítnutí uživatelé",
|
||||
"deniedGroups": "Odmítnuté skupiny",
|
||||
"allowedUsers": "Povolení uživatelé",
|
||||
"allowedGroups": "Povolené skupiny",
|
||||
"totalDenied": "Odmítnuto",
|
||||
"totalAllowed": "Povolené",
|
||||
"allow": "Povolit",
|
||||
"allowDeny": "Povolit/odmítnout",
|
||||
"userGroup": "Uživatel/skupina",
|
||||
"enterName": "Zadejte jméno uživatele nebo skupiny",
|
||||
"deleted": "Přístupové pravidlo odstraněno!",
|
||||
"added": "Přidáno pravidlo přístupu!",
|
||||
"name": "Název",
|
||||
"accessManagement": "Správa přístupu"
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Body",
|
||||
"clear": "Schließen",
|
||||
"closePreview": "Vorschau schließen",
|
||||
"files": "Dateien",
|
||||
"folders": "Ordner",
|
||||
"home": "Home",
|
||||
"lastModified": "Zuletzt geändert",
|
||||
"loading": "Laden...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Konto erstellen",
|
||||
"loginInstead": "Bei bestehendem Konto anmelden",
|
||||
"password": "Kennwort",
|
||||
"passwordConfirm": "Kennwort bestätigen",
|
||||
"passwordsDontMatch": "Kennwörter stimmen nicht überein",
|
||||
"signup": "Registrieren",
|
||||
"submit": "Anmelden",
|
||||
"username": "Benutzername",
|
||||
"usernameTaken": "Benutzername ist bereits vergeben",
|
||||
"wrongCredentials": "Falsche Zugangsdaten",
|
||||
"or": "OR"
|
||||
},
|
||||
"permanent": "Permanent",
|
||||
"prompts": {
|
||||
"copy": "Kopieren",
|
||||
"copyMessage": "Wählen Sie einen Zielort zum Kopieren:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Wählen Sie ein Format zum Herunterladen aus.",
|
||||
"error": "Etwas ist schief gelaufen",
|
||||
"fileInfo": "Dateiinformation",
|
||||
"lastModified": "Zuletzt geändert",
|
||||
"lastModified": "Zuletzt geändert{suffix}",
|
||||
"move": "Verschieben",
|
||||
"moveMessage": "Wählen Sie einen neuen Ort für ihre Datei(en)/Ordner:",
|
||||
"newArchetype": "Erstelle neuen Beitrag auf Basis eines Archetyps. Ihre Datei wird im Inhalteordner erstellt.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Geben Sie den Namen des neuen Ordners an.",
|
||||
"newFile": "Neue Datei",
|
||||
"newFileMessage": "Geben Sie den Namen der neuen Datei an.",
|
||||
"numberDirs": "Anzahl der Ordner",
|
||||
"numberFiles": "Anzahl der Dateien",
|
||||
"numberDirs": "Anzahl der Ordner{suffix}",
|
||||
"numberFiles": "Anzahl der Dateien{suffix}",
|
||||
"rename": "Umbenennen",
|
||||
"renameMessage": "Geben Sie einen Namen ein für",
|
||||
"replace": "Ersetzen",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Erkannte Widersprüche",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Ungültiger Name angegeben: kann nicht Container \"/\" oder \"\\\""
|
||||
"invalidName": "Ungültiger Name angegeben: kann nicht Container \"/\" oder \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Bilder",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Status",
|
||||
"assessment": "Bewertung",
|
||||
"files": "Dateien",
|
||||
"folders": "Ordner",
|
||||
"lastScanned": "Zuletzt gescannt",
|
||||
"quickScan": "Schnell-Scan (Sekunden)",
|
||||
"fullScan": "Vollständiger Scan (Sekunden)",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Zugriffsregel gelöscht!",
|
||||
"added": "Zugangsregel hinzugefügt!",
|
||||
"name": "Name",
|
||||
"accessManagement": "Zugangsverwaltung"
|
||||
"accessManagement": "Zugangsverwaltung",
|
||||
"totalDenied": "Verweigert",
|
||||
"totalAllowed": "Erlaubt"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Uploads & Downloads",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Eine durch Leerzeichen getrennte Liste von Dateierweiterungen, für die der Editor und der Viewer von OnlyOffice deaktiviert werden sollen. (z. B. '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Office Viewer für bestimmte Dateierweiterungen deaktivieren",
|
||||
"defaultThemeDescription": "default - Das Standardthema",
|
||||
"customTheme": "Wählen Sie Ihr Thema"
|
||||
"customTheme": "Wählen Sie Ihr Thema",
|
||||
"showSelectMultiple": "Mehrfachauswahl im Kontextmenü auf dem Desktop anzeigen",
|
||||
"showSelectMultipleDescription": "Standardmäßig verfügt das Desktop-Kontextmenü nicht über die Option \"Mehrere auswählen\" wie bei mobilen Geräten. Diese Option wird immer im Kontextmenü angezeigt."
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -66,8 +66,6 @@
|
||||
"body": "Περιεχόμενο",
|
||||
"clear": "Καθαρισμός",
|
||||
"closePreview": "Κλείσιμο προεπισκόπησης",
|
||||
"files": "Αρχεία",
|
||||
"folders": "Φάκελοι",
|
||||
"home": "Αρχική",
|
||||
"lastModified": "Τελευταία τροποποίηση",
|
||||
"loading": "Φορτώνει…",
|
||||
@@ -125,17 +123,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Δημιουργία λογαριασμού",
|
||||
"loginInstead": "Έχετε ήδη λογαριασμό",
|
||||
"password": "Κωδικός πρόσβασης",
|
||||
"passwordConfirm": "Επιβεβαίωση κωδικού πρόσβασης",
|
||||
"passwordsDontMatch": "Οι κωδικοί πρόσβασης δεν ταιριάζουν",
|
||||
"signup": "Εγγραφή",
|
||||
"submit": "Είσοδος",
|
||||
"username": "Όνομα χρήστη",
|
||||
"usernameTaken": "Το όνομα χρήστη χρησιμοποιείται ήδη",
|
||||
"wrongCredentials": "Λάθος όνομα ή/και κωδικός πρόσβασης",
|
||||
"or": "Ή"
|
||||
},
|
||||
"permanent": "Μόνιμο",
|
||||
"prompts": {
|
||||
"copy": "Αντιγραφή",
|
||||
"copyMessage": "Επιλέξτε τοποθεσία για αντιγραφή των αρχείων σας:",
|
||||
@@ -148,7 +142,7 @@
|
||||
"downloadMessage": "Επιλέξτε τη μορφή που θέλετε να λάβετε.",
|
||||
"error": "Προέκυψε κάποιο σφάλμα",
|
||||
"fileInfo": "Πληροφορίες αρχείου",
|
||||
"lastModified": "Τελευταία τροποποίηση",
|
||||
"lastModified": "Τελευταία τροποποίηση{suffix}",
|
||||
"move": "Μετακίνηση",
|
||||
"moveMessage": "Επιλέξτε νέα τοποθεσία για τα αρχεία / τους φακέλους σας:",
|
||||
"newArchetype": "Δημιουργία νέας ανάρτησης με βάση έναν αρχέτυπο. Το αρχείο σας θα δημιουργηθεί στο φάκελο περιεχομένου.",
|
||||
@@ -156,8 +150,8 @@
|
||||
"newDirMessage": "Γράψτε το όνομα του νέου φακέλου.",
|
||||
"newFile": "Νέο αρχείο",
|
||||
"newFileMessage": "Γράψτε το όνομα του νέου αρχείου.",
|
||||
"numberDirs": "Αριθμός φακέλων",
|
||||
"numberFiles": "Αριθμός αρχείων",
|
||||
"numberDirs": "Αριθμός φακέλων{suffix}",
|
||||
"numberFiles": "Αριθμός αρχείων{suffix}",
|
||||
"rename": "Μετονομασία",
|
||||
"renameMessage": "Εισαγάγετε ένα νέο όνομα για το",
|
||||
"replace": "Αντικατάσταση",
|
||||
@@ -179,7 +173,8 @@
|
||||
"conflictsDetected": "Ανιχνεύονται συγκρούσεις",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Μη έγκυρο όνομα: δεν μπορεί να γίνει container \"/\" ή \"\\\""
|
||||
"invalidName": "Μη έγκυρο όνομα: δεν μπορεί να γίνει container \"/\" ή \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Εικόνες",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Κατάσταση",
|
||||
"assessment": "Αξιολόγηση",
|
||||
"files": "Αρχεία",
|
||||
"folders": "Φάκελοι",
|
||||
"lastScanned": "Τελευταία σάρωση",
|
||||
"quickScan": "Δευτερόλεπτα γρήγορης σάρωσης",
|
||||
"fullScan": "Δευτερόλεπτα πλήρους σάρωσης",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Ο κανόνας πρόσβασης διαγράφηκε!",
|
||||
"added": "Προστέθηκε κανόνας πρόσβασης!",
|
||||
"name": "Όνομα",
|
||||
"accessManagement": "Διαχείριση πρόσβασης"
|
||||
"accessManagement": "Διαχείριση πρόσβασης",
|
||||
"totalDenied": "Απορρίπτεται",
|
||||
"totalAllowed": "Επιτρεπόμενο"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Ανεβάσματα & λήψεις",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Μια λίστα επεκτάσεων αρχείων με διαχωρισμό διαστήματος για την απενεργοποίηση του επεξεργαστή και της προβολής του OnlyOffice. (π.χ. '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Απενεργοποίηση της προβολής γραφείου για ορισμένες επεκτάσεις αρχείων",
|
||||
"defaultThemeDescription": "default - Το προεπιλεγμένο θέμα",
|
||||
"customTheme": "Επιλέξτε το θέμα σας"
|
||||
"customTheme": "Επιλέξτε το θέμα σας",
|
||||
"showSelectMultiple": "Εμφάνιση πολλαπλών επιλογών στο μενού περιβάλλοντος στην επιφάνεια εργασίας",
|
||||
"showSelectMultipleDescription": "Από προεπιλογή, το μενού περιβάλλοντος της επιφάνειας εργασίας δεν διαθέτει την επιλογή \"επιλογή πολλαπλών\" όπως το κινητό. Αυτή η επιλογή εμφανίζεται πάντα στο μενού περιβάλλοντος."
|
||||
}
|
||||
}
|
||||
@@ -134,6 +134,7 @@
|
||||
"notice": "Note: anyone who has access to the link (and optional password) can access the shared files. There is no requirement to be logged in."
|
||||
},
|
||||
"prompts": {
|
||||
"source": "Source{suffix}",
|
||||
"invalidName": "Invalid name provided: cannot container \"/\" or \"\\\"",
|
||||
"destinationSource": "Destination Source:",
|
||||
"copy": "Copy",
|
||||
@@ -152,7 +153,7 @@
|
||||
"fileInfo": "File information",
|
||||
"selected": "selected",
|
||||
"filesSelected": "files selected",
|
||||
"lastModified": "Last Modified",
|
||||
"lastModified": "Last Modified{suffix}",
|
||||
"move": "Move",
|
||||
"moveMessage": "Choose new house for your file(s)/folder(s):",
|
||||
"newArchetype": "Create a new post based on an archetype. Your file will be created on content folder.",
|
||||
@@ -160,8 +161,8 @@
|
||||
"newDirMessage": "Write the name of the new directory.",
|
||||
"newFile": "New file",
|
||||
"newFileMessage": "Write the name of the new file.",
|
||||
"numberDirs": "Number of directories",
|
||||
"numberFiles": "Number of files",
|
||||
"numberDirs": "Number of directories{suffix}",
|
||||
"numberFiles": "Number of files{suffix}",
|
||||
"rename": "Rename",
|
||||
"renameMessage": "An item named \"{filename}\" already exists! Enter a new name:",
|
||||
"replace": "Replace",
|
||||
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Cuerpo",
|
||||
"clear": "Limpiar",
|
||||
"closePreview": "Cerrar vista previa",
|
||||
"files": "Archivos",
|
||||
"folders": "Carpetas",
|
||||
"home": "Inicio",
|
||||
"lastModified": "Última modificación",
|
||||
"loading": "Cargando...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Crear una cuenta",
|
||||
"loginInstead": "Usuario ya existente",
|
||||
"password": "Contraseña",
|
||||
"passwordConfirm": "Confirmación de contraseña",
|
||||
"passwordsDontMatch": "Las contraseñas no coinciden",
|
||||
"signup": "Registrate",
|
||||
"submit": "Iniciar sesión",
|
||||
"username": "Usuario",
|
||||
"usernameTaken": "Nombre usuario no disponible",
|
||||
"wrongCredentials": "Usuario y/o contraseña incorrectos",
|
||||
"or": "O"
|
||||
},
|
||||
"permanent": "Permanente",
|
||||
"prompts": {
|
||||
"copy": "Copiar",
|
||||
"copyMessage": "Elige el lugar donde quieres copiar tus archivos:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Elige el formato de descarga.",
|
||||
"error": "Algo ha fallado",
|
||||
"fileInfo": "Información del archivo",
|
||||
"lastModified": "Última modificación",
|
||||
"lastModified": "Última modificación{suffix}",
|
||||
"move": "Mover",
|
||||
"moveMessage": "Elige una nueva casa para tus archivo(s)/carpeta(s):",
|
||||
"newArchetype": "Crea un nuevo post basado en un arquetipo. Tu archivo será creado en la carpeta de contenido.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Escribe el nombre de la nueva carpeta.",
|
||||
"newFile": "Nuevo archivo",
|
||||
"newFileMessage": "Escribe el nombre del nuevo archivo.",
|
||||
"numberDirs": "Número de carpetas",
|
||||
"numberFiles": "Número de archivos",
|
||||
"numberDirs": "Número de carpetas{suffix}",
|
||||
"numberFiles": "Número de archivos{suffix}",
|
||||
"rename": "Renombrar",
|
||||
"renameMessage": "Escribe el nuevo nombre para",
|
||||
"replace": "Reemplazar",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Conflictos detectados",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nombre no válido proporcionado: no puede contener \"/\" o \"\\\"."
|
||||
"invalidName": "Nombre no válido proporcionado: no puede contener \"/\" o \"\\\".",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Imágenes",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Estado",
|
||||
"assessment": "Evaluación",
|
||||
"files": "Archivos",
|
||||
"folders": "Carpetas",
|
||||
"lastScanned": "Último escaneado",
|
||||
"quickScan": "Segundos de exploración rápida",
|
||||
"fullScan": "Segundos de exploración completa",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Regla de acceso eliminada",
|
||||
"added": "Regla de acceso añadida",
|
||||
"name": "Nombre",
|
||||
"accessManagement": "Gestión de accesos"
|
||||
"accessManagement": "Gestión de accesos",
|
||||
"totalDenied": "Denegado",
|
||||
"totalAllowed": "Permitido"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Cargas y descargas",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Una lista separada por espacios de las extensiones de archivo para las que desea desactivar el editor y el visor de OnlyOffice. (por ejemplo, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Desactivar el visor de office para determinadas extensiones de archivo",
|
||||
"defaultThemeDescription": "default - El tema por defecto",
|
||||
"customTheme": "Elija su tema"
|
||||
"customTheme": "Elija su tema",
|
||||
"showSelectMultiple": "Mostrar selección múltiple en el menú contextual del escritorio",
|
||||
"showSelectMultipleDescription": "Por defecto, el menú contextual del escritorio no tiene la opción \"seleccionar múltiples\" como el móvil. Esta opción siempre se muestra en el menú contextual."
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Corps",
|
||||
"clear": "Fermer",
|
||||
"closePreview": "Fermer la prévisualisation",
|
||||
"files": "Fichiers",
|
||||
"folders": "Dossiers",
|
||||
"home": "Accueil",
|
||||
"lastModified": "Dernière modification",
|
||||
"loading": "Chargement...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Créer un compte",
|
||||
"loginInstead": "Vous avez déjà un compte",
|
||||
"password": "Mot de passe",
|
||||
"passwordConfirm": "Confirmation de mot de passe",
|
||||
"passwordsDontMatch": "Les mots de passe ne concordent pas",
|
||||
"signup": "S'inscrire",
|
||||
"submit": "Se connecter",
|
||||
"username": "Utilisateur",
|
||||
"usernameTaken": "Le nom d'utilisateur est déjà pris",
|
||||
"wrongCredentials": "Identifiants incorrects !",
|
||||
"or": "OU"
|
||||
},
|
||||
"permanent": "Permanent",
|
||||
"prompts": {
|
||||
"copy": "Copier",
|
||||
"copyMessage": "Choisissez l'emplacement où copier la sélection :",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Choisissez le format de téléchargement :",
|
||||
"error": "Quelque chose s'est mal passé",
|
||||
"fileInfo": "Informations",
|
||||
"lastModified": "Dernière modification",
|
||||
"lastModified": "Dernière modification{suffix}",
|
||||
"move": "Déplacer",
|
||||
"moveMessage": "Choisissez l'emplacement où déplacer la sélection :",
|
||||
"newArchetype": "Créer un nouveau post basé sur un archétype. Votre fichier sera créé dans le dossier de contenu.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Nom du nouveau dossier :",
|
||||
"newFile": "Nouveau fichier",
|
||||
"newFileMessage": "Nom du nouveau fichier :",
|
||||
"numberDirs": "Nombre de dossiers",
|
||||
"numberFiles": "Nombre de fichiers",
|
||||
"numberDirs": "Nombre de dossiers{suffix}",
|
||||
"numberFiles": "Nombre de fichiers{suffix}",
|
||||
"rename": "Renommer",
|
||||
"renameMessage": "Nouveau nom pour",
|
||||
"replace": "Remplacer",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Conflits détectés",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nom invalide fourni : ne peut contenir \"/\" ou \"\\\"."
|
||||
"invalidName": "Nom invalide fourni : ne peut contenir \"/\" ou \"\\\".",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Images",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Statut",
|
||||
"assessment": "Évaluation",
|
||||
"files": "Fichiers",
|
||||
"folders": "Dossiers",
|
||||
"lastScanned": "Dernier balayage",
|
||||
"quickScan": "secondes pour un balayage rapide",
|
||||
"fullScan": "secondes pour un balayage complet",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Règle d'accès supprimée !",
|
||||
"added": "Règle d'accès ajoutée !",
|
||||
"name": "Nom",
|
||||
"accessManagement": "Gestion de l'accès"
|
||||
"accessManagement": "Gestion de l'accès",
|
||||
"totalDenied": "Refusé",
|
||||
"totalAllowed": "Autorisé"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Chargements et téléchargements",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Une liste d'extensions de fichiers séparées par des espaces pour lesquelles l'éditeur et la visionneuse OnlyOffice doivent être désactivés. (par exemple, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Désactiver la visionneuse d'office pour certaines extensions de fichiers",
|
||||
"defaultThemeDescription": "default - Le thème par défaut",
|
||||
"customTheme": "Choisissez votre thème"
|
||||
"customTheme": "Choisissez votre thème",
|
||||
"showSelectMultiple": "Afficher la sélection multiple dans le menu contextuel sur le bureau",
|
||||
"showSelectMultipleDescription": "Par défaut, le menu contextuel de l'ordinateur de bureau n'a pas l'option \"sélectionner plusieurs\" comme celui de l'ordinateur mobile. Cette option apparaît toujours dans le menu contextuel."
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "גוף",
|
||||
"clear": "נקה",
|
||||
"closePreview": "סגירת תצוגה מקדימה",
|
||||
"files": "קבצים",
|
||||
"folders": "תקיות",
|
||||
"home": "ראשי",
|
||||
"lastModified": "שונה לאחרונה",
|
||||
"loading": "טוען...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "צור חשבון",
|
||||
"loginInstead": "חשבון קיים",
|
||||
"password": "סיסמא",
|
||||
"passwordConfirm": "אימות סיסמא",
|
||||
"passwordsDontMatch": "סיסמאות אינן תואמות",
|
||||
"signup": "הרשמה",
|
||||
"submit": "התחברות",
|
||||
"username": "שם משתמש",
|
||||
"usernameTaken": "שם משתמש כבר קיים",
|
||||
"wrongCredentials": "פרטי התחברות שגויים",
|
||||
"or": "או"
|
||||
},
|
||||
"permanent": "קבוע",
|
||||
"prompts": {
|
||||
"copy": "העתק",
|
||||
"copyMessage": "בחר לאן להעתיק את הקבצים:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "בחר את הפורמט שברצונך להוריד",
|
||||
"error": "משהו השתבש",
|
||||
"fileInfo": "מידע על הקובץ",
|
||||
"lastModified": "שונה לאחרונה",
|
||||
"lastModified": "שונה לאחרונה{suffix}",
|
||||
"move": "העבר",
|
||||
"moveMessage": "בחר מיקום חדש לקובץ / תקייה:",
|
||||
"newArchetype": "צור פוסט חדש. הקובץ יווצר בתקיית התוכן",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "כתוב את שם התקייה החדשה",
|
||||
"newFile": "קובץ חדש",
|
||||
"newFileMessage": "כתוב את שם הקובץ החדש",
|
||||
"numberDirs": "מספר התקיות",
|
||||
"numberFiles": "מספר הקבצים",
|
||||
"numberDirs": "מספר התקיות{suffix}",
|
||||
"numberFiles": "מספר הקבצים{suffix}",
|
||||
"rename": "שנה שם",
|
||||
"renameMessage": "הכנס שם חדש עבור",
|
||||
"replace": "החלף",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "סכסוכים שזוהו",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "שם לא חוקי: לא ניתן להכיל \"/\" או \"\\\""
|
||||
"invalidName": "שם לא חוקי: לא ניתן להכיל \"/\" או \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "תמונות",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "סטטוס",
|
||||
"assessment": "הערכה",
|
||||
"files": "קבצים",
|
||||
"folders": "תיקיות",
|
||||
"lastScanned": "נסרק לאחרונה",
|
||||
"quickScan": "סריקה מהירה בשניות",
|
||||
"fullScan": "שניות סריקה מלאה",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "כלל הגישה נמחק!",
|
||||
"added": "כלל גישה נוסף!",
|
||||
"name": "שם",
|
||||
"accessManagement": "ניהול גישה"
|
||||
"accessManagement": "ניהול גישה",
|
||||
"totalDenied": "נדחה",
|
||||
"totalAllowed": "מותר"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "העלאות והורדות",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "רשימה מופרדת ברווחים של סיומות קבצים עבורן יש להשבית את עורך ומציג OnlyOffice. (לדוגמה, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "השבת תצוגת Office עבור סיומות קבצים מסוימות",
|
||||
"defaultThemeDescription": "ברירת מחדל - ערכת הנושא המוגדרת כברירת מחדל",
|
||||
"customTheme": "בחר את הנושא שלך"
|
||||
"customTheme": "בחר את הנושא שלך",
|
||||
"showSelectMultiple": "הצג בחירה מרובה בתפריט ההקשר בשולחן העבודה",
|
||||
"showSelectMultipleDescription": "כברירת מחדל, בתפריט ההקשר של שולחן העבודה אין אפשרות \"בחר מספר פריטים\" כמו במכשירים ניידים. אפשרות זו תמיד מוצגת בתפריט ההקשר."
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Törzs",
|
||||
"clear": "Törlése",
|
||||
"closePreview": "Előnézet bezárása",
|
||||
"files": "Fájlok",
|
||||
"folders": "Mappák",
|
||||
"home": "Kezdőlap",
|
||||
"lastModified": "Utoljára módosítva",
|
||||
"loading": "Betöltés…",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Fiók létrehozása",
|
||||
"loginInstead": "Már van fiókom",
|
||||
"password": "Jelszó",
|
||||
"passwordConfirm": "Jelszó megerősítése",
|
||||
"passwordsDontMatch": "A jelszavak nem egyeznek",
|
||||
"signup": "Regisztráció",
|
||||
"submit": "Belépés",
|
||||
"username": "Felhasználói név",
|
||||
"usernameTaken": "A felhasználói név már foglalt",
|
||||
"wrongCredentials": "Hibás hitelesítő adatok",
|
||||
"or": "VAGY"
|
||||
},
|
||||
"permanent": "Állandó",
|
||||
"prompts": {
|
||||
"copy": "Másolása",
|
||||
"copyMessage": "Válassza ki a másolás célját:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Válassza ki a letöltés formátumát.",
|
||||
"error": "Valami rosszul sült el",
|
||||
"fileInfo": "Fájlinformáció",
|
||||
"lastModified": "Utolsó módosítás",
|
||||
"lastModified": "Utolsó módosítás{suffix}",
|
||||
"move": "Mozgatás",
|
||||
"moveMessage": "Válasszon új helyet a fájl(ok)nak/mappá(k)nak:",
|
||||
"newArchetype": "Új bejegyzést hoz létre egy archetípus alapján. A fájl a tartalom mappában jön létre.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Adja meg az új mappa nevét.",
|
||||
"newFile": "Új fájl",
|
||||
"newFileMessage": "Adja meg az új fájl nevét.",
|
||||
"numberDirs": "Mappák száma",
|
||||
"numberFiles": "Fájlok száma",
|
||||
"numberDirs": "Mappák száma{suffix}",
|
||||
"numberFiles": "Fájlok száma{suffix}",
|
||||
"rename": "Átnevezés",
|
||||
"renameMessage": "Adja meg az új nevét:",
|
||||
"replace": "Csere",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Feltárt konfliktusok",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Érvénytelen név: nem lehet \"/\" vagy \"\\\" konténer"
|
||||
"invalidName": "Érvénytelen név: nem lehet \"/\" vagy \"\\\" konténer",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Képek",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Állapot",
|
||||
"assessment": "Értékelés",
|
||||
"files": "Fájlok",
|
||||
"folders": "Mappák",
|
||||
"lastScanned": "Utoljára beolvasott",
|
||||
"quickScan": "Gyors beolvasás másodpercek",
|
||||
"fullScan": "Teljes letapogatás másodpercek",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Hozzáférési szabály törölve!",
|
||||
"added": "Hozzáférési szabály hozzáadva!",
|
||||
"name": "Név",
|
||||
"accessManagement": "Hozzáférés-kezelés"
|
||||
"accessManagement": "Hozzáférés-kezelés",
|
||||
"totalDenied": "Elutasítva",
|
||||
"totalAllowed": "Engedélyezett"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Feltöltések és letöltések",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Az OnlyOffice szerkesztő és megjelenítő letiltandó fájlkiterjesztések szóközzel elválasztott listája. (pl. \".txt .html .pdf\").",
|
||||
"disableOfficeEditor": "Bizonyos fájlkiterjesztéseknél letilthatja az Office Viewer-t",
|
||||
"defaultThemeDescription": "default - Az alapértelmezett téma",
|
||||
"customTheme": "Válasszon témát"
|
||||
"customTheme": "Válasszon témát",
|
||||
"showSelectMultiple": "Többszörös kijelölés megjelenítése az asztali kontextusmenüben",
|
||||
"showSelectMultipleDescription": "Alapértelmezés szerint az asztali kontextusmenü nem rendelkezik a \"többszörös kiválasztás\" opcióval, mint a mobilon. Ez az opció mindig megjelenik a kontextusmenüben."
|
||||
}
|
||||
}
|
||||
@@ -125,7 +125,7 @@
|
||||
"downloadMessage": "Veldu skrárgerð sem þú vilt sækja.",
|
||||
"error": "Eitthvað fór úrskeiðis",
|
||||
"fileInfo": "Upplýsingar um gögn",
|
||||
"lastModified": "Seinast breytt",
|
||||
"lastModified": "Seinast breytt{suffix}",
|
||||
"move": "Færa",
|
||||
"moveMessage": "Velja nýtt hús fyrir skjöl/möppur:",
|
||||
"newArchetype": "Búðu til nýja færslu sem byggir á frumgerð. Skjalið verður búið til í content möppu. ",
|
||||
@@ -133,8 +133,8 @@
|
||||
"newDirMessage": "Hvað á mappan að heita?",
|
||||
"newFile": "Nýtt skjal",
|
||||
"newFileMessage": "Hvað á skjalið að heita?",
|
||||
"numberDirs": "Fjöldi mappa",
|
||||
"numberFiles": "Fjöldi skjala",
|
||||
"numberDirs": "Fjöldi mappa{suffix}",
|
||||
"numberFiles": "Fjöldi skjala{suffix}",
|
||||
"rename": "Endurnefna",
|
||||
"renameMessage": "Settu inn nýtt nafn fyrir",
|
||||
"replace": "Skipta út",
|
||||
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Contenuto",
|
||||
"clear": "Cancella",
|
||||
"closePreview": "Chiudi anteprima",
|
||||
"files": "File",
|
||||
"folders": "Cartelle",
|
||||
"home": "Home",
|
||||
"lastModified": "Ultima modifica",
|
||||
"loading": "Caricamento...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Crea un account",
|
||||
"loginInstead": "Hai già un account",
|
||||
"password": "Password",
|
||||
"passwordConfirm": "Conferma password",
|
||||
"passwordsDontMatch": "Le password non corrispondono",
|
||||
"signup": "Registrati",
|
||||
"submit": "Entra",
|
||||
"username": "Nome utente",
|
||||
"usernameTaken": "Username già usato",
|
||||
"wrongCredentials": "Credenziali errate",
|
||||
"or": "O"
|
||||
},
|
||||
"permanent": "Permanente",
|
||||
"prompts": {
|
||||
"copy": "Copia",
|
||||
"copyMessage": "Seleziona la cartella in cui copiare i file:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "Seleziona il formato che vuoi scaricare.",
|
||||
"error": "Qualcosa è andato per il verso storto",
|
||||
"fileInfo": "Informazioni sul file",
|
||||
"lastModified": "Ultima modifica",
|
||||
"lastModified": "Ultima modifica{suffix}",
|
||||
"move": "Sposta",
|
||||
"moveMessage": "Seleziona la nuova posizione per i tuoi file e/o cartella/e:",
|
||||
"newArchetype": "Crea un nuovo post basato su un modello. Il tuo file verrà creato nella cartella.",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "Scrivi il nome della nuova cartella.",
|
||||
"newFile": "Nuovo file",
|
||||
"newFileMessage": "Scrivi il nome del nuovo file.",
|
||||
"numberDirs": "Numero di cartelle",
|
||||
"numberFiles": "Numero di file",
|
||||
"numberDirs": "Numero di cartelle{suffix}",
|
||||
"numberFiles": "Numero di file{suffix}",
|
||||
"rename": "Rinomina",
|
||||
"renameMessage": "Inserisci un nuovo nome per",
|
||||
"replace": "Sostituisci",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Conflitti rilevati",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nome non valido: non può contenere \"/\" o \"\\\"."
|
||||
"invalidName": "Nome non valido: non può contenere \"/\" o \"\\\".",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Immagini",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Stato",
|
||||
"assessment": "Valutazione",
|
||||
"files": "File",
|
||||
"folders": "Cartelle",
|
||||
"lastScanned": "Ultima scansione",
|
||||
"quickScan": "Scansione rapida Secondi",
|
||||
"fullScan": "Secondi di scansione completa",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Regola di accesso cancellata!",
|
||||
"added": "Regola di accesso aggiunta!",
|
||||
"name": "Nome",
|
||||
"accessManagement": "Gestione degli accessi"
|
||||
"accessManagement": "Gestione degli accessi",
|
||||
"totalDenied": "Negato",
|
||||
"totalAllowed": "Consentito"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Caricamenti e download",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Un elenco separato da spazi di estensioni di file per cui disabilitare l'editor e il visualizzatore di OnlyOffice. (ad esempio, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Disattivare il visualizzatore di Office per alcune estensioni di file",
|
||||
"defaultThemeDescription": "default - Il tema predefinito",
|
||||
"customTheme": "Scegliete il vostro tema"
|
||||
"customTheme": "Scegliete il vostro tema",
|
||||
"showSelectMultiple": "Mostra selezione multipla nel menu contestuale sul desktop",
|
||||
"showSelectMultipleDescription": "Per impostazione predefinita, il menu contestuale del desktop non dispone dell'opzione \"seleziona più\" come quello del cellulare. Questa opzione viene sempre visualizzata nel menu contestuale."
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "本文",
|
||||
"clear": "クリアー",
|
||||
"closePreview": "プレビューを閉じる",
|
||||
"files": "ファイル",
|
||||
"folders": "フォルダ",
|
||||
"home": "ホーム",
|
||||
"lastModified": "最終変更",
|
||||
"loading": "ローディング...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Create an account",
|
||||
"loginInstead": "Already have an account",
|
||||
"password": "パスワード",
|
||||
"passwordConfirm": "Password Confirmation",
|
||||
"passwordsDontMatch": "Passwords don't match",
|
||||
"signup": "Signup",
|
||||
"submit": "ログイン",
|
||||
"username": "ユーザ名",
|
||||
"usernameTaken": "Username already taken",
|
||||
"wrongCredentials": "ユーザ名またはパスワードが間違っています。",
|
||||
"or": "または"
|
||||
},
|
||||
"permanent": "永久",
|
||||
"prompts": {
|
||||
"copy": "コピー",
|
||||
"copyMessage": "コピーの目標ディレクトリを選択してください:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "圧縮形式を選択してください。",
|
||||
"error": "あるエラーが発生しました。",
|
||||
"fileInfo": "ファイル情報",
|
||||
"lastModified": "最終変更",
|
||||
"lastModified": "最終変更{suffix}",
|
||||
"move": "移動",
|
||||
"moveMessage": "移動の目標ディレクトリを選択してください:",
|
||||
"newArchetype": "ある元型に基づいて新しいポストを作成します。ファイルは コンテンツフォルダに作成されます。",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "新しいディレクトリの名前を入力してください。",
|
||||
"newFile": "新しいファイルを作成",
|
||||
"newFileMessage": "新しいファイルの名前を入力してください。",
|
||||
"numberDirs": "ディレクトリ個数",
|
||||
"numberFiles": "ファイル個数",
|
||||
"numberDirs": "ディレクトリ個数{suffix}",
|
||||
"numberFiles": "ファイル個数{suffix}",
|
||||
"rename": "名前を変更",
|
||||
"renameMessage": "名前を変更しようファイルは:",
|
||||
"replace": "置き換える",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "コンフリクト検出",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "無効な名前が指定されました:\"/\"または\"˶\"をコンテナに入れることはできません。"
|
||||
"invalidName": "無効な名前が指定されました:\"/\"または\"˶\"をコンテナに入れることはできません。",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "画像",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "ステータス",
|
||||
"assessment": "評価",
|
||||
"files": "ファイル",
|
||||
"folders": "フォルダ",
|
||||
"lastScanned": "最終スキャン",
|
||||
"quickScan": "クイックスキャン秒数",
|
||||
"fullScan": "フルスキャン秒数",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "アクセスルールが削除された!",
|
||||
"added": "アクセスルールが追加された!",
|
||||
"name": "名称",
|
||||
"accessManagement": "アクセス管理"
|
||||
"accessManagement": "アクセス管理",
|
||||
"totalDenied": "却下",
|
||||
"totalAllowed": "可"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "アップロードとダウンロード",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "OnlyOfficeエディタおよびビューアを無効にするファイル拡張子のスペース区切りリスト。(例: '.txt .html .pdf')。",
|
||||
"disableOfficeEditor": "特定のファイル拡張子のオフィスビューアを無効にする",
|
||||
"defaultThemeDescription": "default - デフォルトのテーマ",
|
||||
"customTheme": "テーマを選ぶ"
|
||||
"customTheme": "テーマを選ぶ",
|
||||
"showSelectMultiple": "デスクトップのコンテキストメニューに複数選択を表示する",
|
||||
"showSelectMultipleDescription": "デフォルトでは、デスクトップのコンテキストメニューには、モバイルのような「複数選択」オプションはありません。このオプションは常にコンテキストメニューに表示されます。"
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "본문",
|
||||
"clear": "지우기",
|
||||
"closePreview": "미리보기 닫기",
|
||||
"files": "파일",
|
||||
"folders": "폴더",
|
||||
"home": "홈",
|
||||
"lastModified": "최종 수정",
|
||||
"loading": "로딩중...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "계정 생성",
|
||||
"loginInstead": "이미 계정이 있습니다",
|
||||
"password": "비밀번호",
|
||||
"passwordConfirm": "비밀번호 확인",
|
||||
"passwordsDontMatch": "비밀번호가 일치하지 않습니다",
|
||||
"signup": "가입하기",
|
||||
"submit": "로그인",
|
||||
"username": "사용자 이름",
|
||||
"usernameTaken": "사용자 이름이 존재합니다",
|
||||
"wrongCredentials": "사용자 이름 또는 비밀번호를 확인하십시오",
|
||||
"or": "또는"
|
||||
},
|
||||
"permanent": "영구",
|
||||
"prompts": {
|
||||
"copy": "복사",
|
||||
"copyMessage": "복사할 디렉토리:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "다운로드 포맷 설정.",
|
||||
"error": "에러 발생!",
|
||||
"fileInfo": "파일 정보",
|
||||
"lastModified": "최종 수정",
|
||||
"lastModified": "최종 수정{suffix}",
|
||||
"move": "이동",
|
||||
"moveMessage": "이동할 화일 또는 디렉토리를 선택하세요:",
|
||||
"newArchetype": "원형을 유지하는 포스트를 생성합니다. 파일은 컨텐트 폴더에 생성됩니다.",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "새 디렉토리 이름을 입력해주세요.",
|
||||
"newFile": "새 파일",
|
||||
"newFileMessage": "새 파일 이름을 입력해주세요.",
|
||||
"numberDirs": "디렉토리 수",
|
||||
"numberFiles": "파일 수",
|
||||
"numberDirs": "디렉토리 수{suffix}",
|
||||
"numberFiles": "파일 수{suffix}",
|
||||
"rename": "이름 변경",
|
||||
"renameMessage": "새로운 이름을 입력하세요.",
|
||||
"replace": "대체하기",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "충돌 감지",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "제공된 이름이 잘못되었습니다: \"/\" 또는 \"\\\"를 포함할 수 없습니다."
|
||||
"invalidName": "제공된 이름이 잘못되었습니다: \"/\" 또는 \"\\\"를 포함할 수 없습니다.",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "이미지",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "상태",
|
||||
"assessment": "평가",
|
||||
"files": "파일",
|
||||
"folders": "폴더",
|
||||
"lastScanned": "마지막 스캔",
|
||||
"quickScan": "빠른 스캔 초",
|
||||
"fullScan": "전체 스캔 시간(초)",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "액세스 규칙이 삭제되었습니다!",
|
||||
"added": "액세스 규칙이 추가되었습니다!",
|
||||
"name": "이름",
|
||||
"accessManagement": "액세스 관리"
|
||||
"accessManagement": "액세스 관리",
|
||||
"totalDenied": "거부됨",
|
||||
"totalAllowed": "허용됨"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "업로드 및 다운로드",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "OnlyOffice 편집기 및 뷰어를 비활성화할 파일 확장명을 공백으로 구분한 목록입니다. (예: '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "특정 파일 확장자에 대해 Office 뷰어 사용 안 함",
|
||||
"defaultThemeDescription": "default - 기본 테마",
|
||||
"customTheme": "테마 선택"
|
||||
"customTheme": "테마 선택",
|
||||
"showSelectMultiple": "데스크톱의 컨텍스트 메뉴에서 여러 개 선택 표시",
|
||||
"showSelectMultipleDescription": "기본적으로 데스크톱 컨텍스트 메뉴에는 모바일처럼 '여러 개 선택' 옵션이 없습니다. 이 옵션은 항상 컨텍스트 메뉴에 표시됩니다."
|
||||
}
|
||||
}
|
||||
@@ -63,8 +63,6 @@
|
||||
"body": "Body",
|
||||
"clear": "Wissen",
|
||||
"closePreview": "Voorvertoon sluiten",
|
||||
"files": "Bestanden",
|
||||
"folders": "Mappen",
|
||||
"home": "Home",
|
||||
"lastModified": "Laatst bewerkt",
|
||||
"loading": "Laden...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Account aanmaken",
|
||||
"loginInstead": "Heeft al een account",
|
||||
"password": "Wachtwoord",
|
||||
"passwordConfirm": "Wachtwoordbevestiging ",
|
||||
"passwordsDontMatch": "Wachtwoorden komen niet overeen",
|
||||
"signup": "Registeren",
|
||||
"submit": "Log in",
|
||||
"username": "Gebruikersnaam",
|
||||
"usernameTaken": "Gebruikersnaam reeds in gebruik",
|
||||
"wrongCredentials": "Verkeerde inloggegevens",
|
||||
"or": "OF"
|
||||
},
|
||||
"permanent": "Permanent",
|
||||
"prompts": {
|
||||
"copy": "Kopiëren",
|
||||
"copyMessage": "Kies een locatie om uw bestanden te kopiëren: ",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "Kies het vermat dat u wilt downloaden. ",
|
||||
"error": "Er ging iets fout",
|
||||
"fileInfo": "Bestandinformatie",
|
||||
"lastModified": "Laatst Bewerkt",
|
||||
"lastModified": "Laatst Bewerkt{suffix}",
|
||||
"move": "Verplaatsen",
|
||||
"moveMessage": "Kies een nieuwe locatie voor je bestand(en)/map(pen)",
|
||||
"newArchetype": "Maak een nieuw bericht op basis van een archetype. Uw bestand wordt aangemaakt in de inhoudsmap.",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "Schrijf de naam van de nieuwe map",
|
||||
"newFile": "Nieuw bestand",
|
||||
"newFileMessage": "Schrijf de naam van het nieuwe bestand",
|
||||
"numberDirs": "Aantal mappen",
|
||||
"numberFiles": "Aantal bestanden",
|
||||
"numberDirs": "Aantal mappen{suffix}",
|
||||
"numberFiles": "Aantal bestanden{suffix}",
|
||||
"rename": "Hernoemen",
|
||||
"renameMessage": "Voer een nieuwe naam in voor",
|
||||
"replace": "Vervangen",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Gedetecteerde conflicten",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Ongeldige naam opgegeven: kan geen \"/\" of \"˜\" bevatten."
|
||||
"invalidName": "Ongeldige naam opgegeven: kan geen \"/\" of \"˜\" bevatten.",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Afbeeldingen",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Status",
|
||||
"assessment": "Beoordeling",
|
||||
"files": "Bestanden",
|
||||
"folders": "Mappen",
|
||||
"lastScanned": "Laatst gescand",
|
||||
"quickScan": "Snelle scan Seconden",
|
||||
"fullScan": "Seconden voor volledig scannen",
|
||||
@@ -437,6 +430,39 @@
|
||||
"disableOfficeEditorDescription": "Een door spaties gescheiden lijst met bestandsextensies waarvoor de OnlyOffice editor en viewer uitgeschakeld moeten worden. (bijv. '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Office Viewer uitschakelen voor bepaalde bestandsextensies",
|
||||
"defaultThemeDescription": "standaard - Het standaardthema",
|
||||
"customTheme": "Kies je thema"
|
||||
"customTheme": "Kies je thema",
|
||||
"showSelectMultiple": "Meerdere selecteren tonen in contextmenu op bureaublad",
|
||||
"showSelectMultipleDescription": "Standaard heeft het contextmenu op de desktop geen optie \"meerdere selecteren\" zoals mobiel. Deze optie wordt altijd weergegeven in het contextmenu."
|
||||
},
|
||||
"general": {
|
||||
"name": "Naam",
|
||||
"path": "Pad",
|
||||
"user": "Gebruiker",
|
||||
"group": "Groep",
|
||||
"signup": "Aanmelden",
|
||||
"password": "Wachtwoord",
|
||||
"username": "Gebruikersnaam",
|
||||
"files": "Bestanden",
|
||||
"folders": "Mappen",
|
||||
"exit": "Ga naar",
|
||||
"permanent": "Permanent"
|
||||
},
|
||||
"access": {
|
||||
"rules": "Toegangsregels",
|
||||
"deny": "Weigeren",
|
||||
"deniedUsers": "Geweigerde gebruikers",
|
||||
"deniedGroups": "Geweigerde groepen",
|
||||
"allowedUsers": "Toegestane gebruikers",
|
||||
"allowedGroups": "Toegestane groepen",
|
||||
"totalDenied": "Geweigerd",
|
||||
"totalAllowed": "Toegestaan",
|
||||
"allow": "Sta toe.",
|
||||
"allowDeny": "Toestaan/weigeren",
|
||||
"userGroup": "Gebruiker/Groep",
|
||||
"enterName": "Voer de naam van de gebruiker of groep in",
|
||||
"deleted": "Toegangsregel verwijderd!",
|
||||
"added": "Toegangsregel toegevoegd!",
|
||||
"name": "Naam",
|
||||
"accessManagement": "Toegangsbeheer"
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Body",
|
||||
"clear": "Wyczyść",
|
||||
"closePreview": "Zamknij poprzednie",
|
||||
"files": "Pliki",
|
||||
"folders": "Foldery",
|
||||
"home": "Katalog domowy",
|
||||
"lastModified": "Ostatnio modyfikowane",
|
||||
"loading": "Ładowanie...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Utwórz konto",
|
||||
"loginInstead": "Takie konto już istnieje",
|
||||
"password": "Hasło",
|
||||
"passwordConfirm": "Potwierdzenie hasła",
|
||||
"passwordsDontMatch": "Hasła różnią się",
|
||||
"signup": "Rejestracja",
|
||||
"submit": "Logowanie",
|
||||
"username": "Nazwa użytkownika",
|
||||
"usernameTaken": "Nazwa użytkownika już zajęta",
|
||||
"wrongCredentials": "Błędne dane logowania",
|
||||
"or": "LUB"
|
||||
},
|
||||
"permanent": "Permanentny",
|
||||
"prompts": {
|
||||
"copy": "Kopiuj",
|
||||
"copyMessage": "Wybierz lokalizację do której mają być skopiowane wybrane pliki",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "Wybierz format, jaki chesz pobrać.",
|
||||
"error": "Pojawił się nieznany błąd",
|
||||
"fileInfo": "Informacje o pliku",
|
||||
"lastModified": "Osatnio Zmodyfikowane",
|
||||
"lastModified": "Ostatnio Zmodyfikowane{suffix}",
|
||||
"move": "Przenieś",
|
||||
"moveMessage": "Wybierz nową lokalizację dla swoich plik(ów)/folder(ów):",
|
||||
"newArchetype": "Utwórz nowy wpis na bazie wybranego wzorca. Twój plik będzie utworzony w wybranym folderze.",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "Podaj nazwę tworzonego folderu.",
|
||||
"newFile": "Nowy plik",
|
||||
"newFileMessage": "Podaj nazwętworzonego pliku.",
|
||||
"numberDirs": "Ilość katalogów",
|
||||
"numberFiles": "Ilość plików",
|
||||
"numberDirs": "Ilość katalogów{suffix}",
|
||||
"numberFiles": "Ilość plików{suffix}",
|
||||
"rename": "Zmień nazwę",
|
||||
"renameMessage": "Podaj nową nazwę dla",
|
||||
"replace": "Zamień",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Wykryte konflikty",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nieprawidłowa nazwa: nie można użyć kontenera \"/\" lub \"\\\""
|
||||
"invalidName": "Nieprawidłowa nazwa: nie można użyć kontenera \"/\" lub \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Zdjęcia",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Status",
|
||||
"assessment": "Ocena",
|
||||
"files": "Pliki",
|
||||
"folders": "Foldery",
|
||||
"lastScanned": "Ostatnio skanowane",
|
||||
"quickScan": "Sekundy szybkiego skanowania",
|
||||
"fullScan": "Sekundy pełnego skanowania",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Reguła dostępu usunięta!",
|
||||
"added": "Dodano regułę dostępu!",
|
||||
"name": "Nazwa",
|
||||
"accessManagement": "Zarządzanie dostępem"
|
||||
"accessManagement": "Zarządzanie dostępem",
|
||||
"totalDenied": "Odmowa",
|
||||
"totalAllowed": "Dozwolone"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Przesyłanie i pobieranie",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Rozdzielana spacjami lista rozszerzeń plików, dla których edytor i przeglądarka OnlyOffice mają zostać wyłączone. (np. \".txt .html .pdf\").",
|
||||
"disableOfficeEditor": "Wyłącz przeglądarkę Office dla niektórych rozszerzeń plików",
|
||||
"defaultThemeDescription": "default - domyślny motyw",
|
||||
"customTheme": "Wybierz motyw"
|
||||
"customTheme": "Wybierz motyw",
|
||||
"showSelectMultiple": "Wyświetlanie wyboru wielokrotnego w menu kontekstowym na pulpicie",
|
||||
"showSelectMultipleDescription": "Domyślnie menu kontekstowe pulpitu nie ma opcji \"wybierz wiele\", tak jak w przypadku urządzeń mobilnych. Opcja ta jest zawsze widoczna w menu kontekstowym."
|
||||
}
|
||||
}
|
||||
@@ -63,8 +63,6 @@
|
||||
"body": "Corpo",
|
||||
"clear": "Limpar",
|
||||
"closePreview": "Fechar pré-visualização",
|
||||
"files": "Arquivos",
|
||||
"folders": "Pastas",
|
||||
"home": "Início",
|
||||
"lastModified": "Última modificação",
|
||||
"loading": "Carregando. Aguarde, por favor.",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Criar uma conta",
|
||||
"loginInstead": "Já possui uma conta",
|
||||
"password": "Senha",
|
||||
"passwordConfirm": "Confirmação de senha",
|
||||
"passwordsDontMatch": "As senhas não coincidem",
|
||||
"signup": "Cadastrar",
|
||||
"submit": "Login",
|
||||
"username": "Nome do usuário",
|
||||
"usernameTaken": "Nome de usuário já existe",
|
||||
"wrongCredentials": "Ops! Dados incorretos.",
|
||||
"or": "OU"
|
||||
},
|
||||
"permanent": "Permanente",
|
||||
"prompts": {
|
||||
"copy": "Copiar",
|
||||
"copyMessage": "Escolha um lugar para copiar os arquivos:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Escolha o formato do arquivo.",
|
||||
"error": "Algo de errado ocorreu",
|
||||
"fileInfo": "Informação do arquivo",
|
||||
"lastModified": "Última modificação",
|
||||
"lastModified": "Última modificação{suffix}",
|
||||
"move": "Mover",
|
||||
"moveMessage": "Escolha uma nova pasta para os seus arquivos:",
|
||||
"newArchetype": "Criar um novo post baseado num \"archetype\". O seu arquivo será criado na pasta \"content\".",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Escreva o nome da nova pasta.",
|
||||
"newFile": "Novo arquivo",
|
||||
"newFileMessage": "Escreva o nome do novo arquivo.",
|
||||
"numberDirs": "Número de pastas",
|
||||
"numberFiles": "Número de arquivos",
|
||||
"numberDirs": "Número de pastas{suffix}",
|
||||
"numberFiles": "Número de arquivos{suffix}",
|
||||
"rename": "Renomear",
|
||||
"renameMessage": "Insira um novo nome para",
|
||||
"replace": "Substituir",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Conflitos detectados",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nome inválido fornecido: não pode conter \"/\" ou \"\\\""
|
||||
"invalidName": "Nome inválido fornecido: não pode conter \"/\" ou \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Imagens",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Status",
|
||||
"assessment": "Avaliação",
|
||||
"files": "Arquivos",
|
||||
"folders": "Pastas",
|
||||
"lastScanned": "Última varredura",
|
||||
"quickScan": "Segundos de varredura rápida",
|
||||
"fullScan": "Segundos de varredura completa",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Regra de acesso excluída!",
|
||||
"added": "Regra de acesso adicionada!",
|
||||
"name": "Nome",
|
||||
"accessManagement": "Gerenciamento de acesso"
|
||||
"accessManagement": "Gerenciamento de acesso",
|
||||
"totalDenied": "Negado",
|
||||
"totalAllowed": "Permitido"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Uploads e downloads",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Uma lista de extensões de arquivo separada por espaços para desativar o editor e o visualizador do OnlyOffice. (por exemplo, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Desativar o visualizador do Office para determinadas extensões de arquivo",
|
||||
"defaultThemeDescription": "default - O tema padrão",
|
||||
"customTheme": "Escolha seu tema"
|
||||
"customTheme": "Escolha seu tema",
|
||||
"showSelectMultiple": "Mostrar seleção múltipla no menu de contexto na área de trabalho",
|
||||
"showSelectMultipleDescription": "Por padrão, o menu de contexto do desktop não tem a opção \"selecionar vários\" como no celular. Essa opção sempre a mostra no menu de contexto."
|
||||
}
|
||||
}
|
||||
+39
-13
@@ -63,8 +63,6 @@
|
||||
"body": "Corpo",
|
||||
"clear": "Limpar",
|
||||
"closePreview": "Fechar pré-visualização",
|
||||
"files": "Ficheiros",
|
||||
"folders": "Pastas",
|
||||
"home": "Início",
|
||||
"lastModified": "Última alteração",
|
||||
"loading": "A carregar...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Criar uma conta",
|
||||
"loginInstead": "Já tenho uma conta",
|
||||
"password": "Palavra-passe",
|
||||
"passwordConfirm": "Confirmação da palavra-passe",
|
||||
"passwordsDontMatch": "As palavras-passe não coincidem",
|
||||
"signup": "Registar",
|
||||
"submit": "Entrar na conta",
|
||||
"username": "Nome de utilizador",
|
||||
"usernameTaken": "O nome de utilizador já está registado",
|
||||
"wrongCredentials": "Dados errados",
|
||||
"or": "OU"
|
||||
},
|
||||
"permanent": "Permanente",
|
||||
"prompts": {
|
||||
"copy": "Copiar",
|
||||
"copyMessage": "Escolha um lugar para onde copiar os ficheiros:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "Escolha o formato do ficheiro que quer descarregar.",
|
||||
"error": "Algo correu mal",
|
||||
"fileInfo": "Informação do ficheiro",
|
||||
"lastModified": "Última alteração",
|
||||
"lastModified": "Última alteração{suffix}",
|
||||
"move": "Mover",
|
||||
"moveMessage": "Escolha uma nova casa para os seus ficheiros/pastas:",
|
||||
"newArchetype": "Criar um novo post baseado num \"archetype\". O seu ficheiro será criado na pasta \"content\".",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "Escreva o nome da nova pasta.",
|
||||
"newFile": "Novo ficheiro",
|
||||
"newFileMessage": "Escreva o nome do novo ficheiro.",
|
||||
"numberDirs": "Número de pastas",
|
||||
"numberFiles": "Número de ficheiros",
|
||||
"numberDirs": "Número de pastas{suffix}",
|
||||
"numberFiles": "Número de ficheiros{suffix}",
|
||||
"rename": "Alterar nome",
|
||||
"renameMessage": "Insira um novo nome para",
|
||||
"replace": "Substituir",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Conflitos detectados",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nome inválido fornecido: não pode conter \"/\" ou \"\\\""
|
||||
"invalidName": "Nome inválido fornecido: não pode conter \"/\" ou \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Imagens",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Estado",
|
||||
"assessment": "Avaliação",
|
||||
"files": "Ficheiros",
|
||||
"folders": "Pastas",
|
||||
"lastScanned": "Última digitalização",
|
||||
"quickScan": "Segundos de leitura rápida",
|
||||
"fullScan": "Segundos de varrimento completo",
|
||||
@@ -437,6 +430,39 @@
|
||||
"disableOfficeEditorDescription": "Uma lista de extensões de ficheiros separada por espaços para desativar o editor e visualizador do OnlyOffice. (por exemplo, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Desativar o visualizador do Office para determinadas extensões de ficheiros",
|
||||
"defaultThemeDescription": "default - O tema predefinido",
|
||||
"customTheme": "Escolha o seu tema"
|
||||
"customTheme": "Escolha o seu tema",
|
||||
"showSelectMultiple": "Mostrar seleção múltipla no menu de contexto no ambiente de trabalho",
|
||||
"showSelectMultipleDescription": "Por predefinição, o menu de contexto do ambiente de trabalho não tem a opção \"selecionar vários\" como no telemóvel. Esta opção mostra-a sempre no menu de contexto."
|
||||
},
|
||||
"general": {
|
||||
"name": "Nome",
|
||||
"path": "Caminho",
|
||||
"user": "Utilizador",
|
||||
"group": "Grupo",
|
||||
"signup": "Registo",
|
||||
"password": "Palavra-passe",
|
||||
"username": "Nome de utilizador",
|
||||
"files": "Ficheiros",
|
||||
"folders": "Pastas",
|
||||
"exit": "Sair",
|
||||
"permanent": "Permanente"
|
||||
},
|
||||
"access": {
|
||||
"rules": "Regras de acesso",
|
||||
"deny": "Recusar",
|
||||
"deniedUsers": "Utilizadores recusados",
|
||||
"deniedGroups": "Grupos recusados",
|
||||
"allowedUsers": "Utilizadores permitidos",
|
||||
"allowedGroups": "Grupos permitidos",
|
||||
"totalDenied": "Recusado",
|
||||
"totalAllowed": "Permitido",
|
||||
"allow": "Permitir",
|
||||
"allowDeny": "Permitir/Negar",
|
||||
"userGroup": "Utilizador/Grupo",
|
||||
"enterName": "Introduzir o nome do utilizador ou do grupo",
|
||||
"deleted": "Regra de acesso eliminada!",
|
||||
"added": "Regra de acesso adicionada!",
|
||||
"name": "Nome",
|
||||
"accessManagement": "Gestão do acesso"
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Corp",
|
||||
"clear": "Curăță",
|
||||
"closePreview": "Închide previzualizarea",
|
||||
"files": "Fișiere",
|
||||
"folders": "Directoare",
|
||||
"home": "Acasă",
|
||||
"lastModified": "Ultima modificare",
|
||||
"loading": "Se încarcă...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Crează cont",
|
||||
"loginInstead": "Am deja cont",
|
||||
"password": "Parola",
|
||||
"passwordConfirm": "Confirmă parola",
|
||||
"passwordsDontMatch": "Parolele nu se potrivesc",
|
||||
"signup": "Înregistrare",
|
||||
"submit": "Autentificare",
|
||||
"username": "Utilizator",
|
||||
"usernameTaken": "Utilizatorul există",
|
||||
"wrongCredentials": "Informații greșite",
|
||||
"or": "SAU"
|
||||
},
|
||||
"permanent": "Permanent",
|
||||
"prompts": {
|
||||
"copy": "Copiază",
|
||||
"copyMessage": "Alege unde vrei să copiezi fișierele:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "Alege formatul în care vrei să descarci.",
|
||||
"error": "Ceva n-a funcționat cum trebuie",
|
||||
"fileInfo": "Informații fișier",
|
||||
"lastModified": "Ultima modificare",
|
||||
"lastModified": "Ultima modificare{suffix}",
|
||||
"move": "Mută",
|
||||
"moveMessage": "Alege destinația:",
|
||||
"newArchetype": "Crează o nouă postare pe baza unui șablon. Fișierul va fi creat in directorul conținut.",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "Scrie numele noului director.",
|
||||
"newFile": "Fișier nou",
|
||||
"newFileMessage": "Scrie numele noului fișier.",
|
||||
"numberDirs": "Numărul directoarelor",
|
||||
"numberFiles": "Numărul fișierelor",
|
||||
"numberDirs": "Numărul directoarelor{suffix}",
|
||||
"numberFiles": "Numărul fișierelor{suffix}",
|
||||
"rename": "Redenumește",
|
||||
"renameMessage": "Redactează un nou nume pentru",
|
||||
"replace": "Înlocuiește",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Conflicte detectate",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Nume invalid furnizat: nu poate conține \"/\" sau \"\\\""
|
||||
"invalidName": "Nume invalid furnizat: nu poate conține \"/\" sau \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Imagini",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Statut",
|
||||
"assessment": "Evaluare",
|
||||
"files": "Fișiere",
|
||||
"folders": "Dosare",
|
||||
"lastScanned": "Ultima scanare",
|
||||
"quickScan": "Scanare rapidă secunde",
|
||||
"fullScan": "Scanare completă secunde",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Regula de acces ștearsă!",
|
||||
"added": "Regula de acces adăugată!",
|
||||
"name": "Nume și prenume",
|
||||
"accessManagement": "Gestionarea accesului"
|
||||
"accessManagement": "Gestionarea accesului",
|
||||
"totalDenied": "Refuzat",
|
||||
"totalAllowed": "Permise"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Încărcări și descărcări",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "O listă de extensii de fișiere separate prin spațiu pentru care se dezactivează editorul și vizualizatorul OnlyOffice. (de exemplu, \".txt .html .pdf\").",
|
||||
"disableOfficeEditor": "Dezactivați vizualizatorul office pentru anumite extensii de fișiere",
|
||||
"defaultThemeDescription": "default - Tema implicită",
|
||||
"customTheme": "Alege-ți tema"
|
||||
"customTheme": "Alege-ți tema",
|
||||
"showSelectMultiple": "Afișarea selecției multiple în meniul contextual de pe desktop",
|
||||
"showSelectMultipleDescription": "În mod implicit, meniul contextual de pe desktop nu are opțiunea \"select multiple\", ca pe mobil. Această opțiune se afișează întotdeauna în meniul contextual."
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Тело",
|
||||
"clear": "Очистить",
|
||||
"closePreview": "Закрыть",
|
||||
"files": "Файлы",
|
||||
"folders": "Папки",
|
||||
"home": "Главная",
|
||||
"lastModified": "Последнее изменение",
|
||||
"loading": "Загрузка...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Создать аккаунт",
|
||||
"loginInstead": "Уже есть аккаунт",
|
||||
"password": "Пароль",
|
||||
"passwordConfirm": "Подтверждение пароля",
|
||||
"passwordsDontMatch": "Пароли не совпадают",
|
||||
"signup": "Зарегистрироваться",
|
||||
"submit": "Войти",
|
||||
"username": "Имя пользователя",
|
||||
"usernameTaken": "Данное имя пользователя уже занято",
|
||||
"wrongCredentials": "Неверные данные",
|
||||
"or": "ИЛИ"
|
||||
},
|
||||
"permanent": "Постоянный",
|
||||
"prompts": {
|
||||
"copy": "Копировать",
|
||||
"copyMessage": "Копировать в:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Выберите формат в котором хотите скачать.",
|
||||
"error": "Ошибка",
|
||||
"fileInfo": "Информация о файле",
|
||||
"lastModified": "Последнее изменение",
|
||||
"lastModified": "Последнее изменение{suffix}",
|
||||
"move": "Переместить",
|
||||
"moveMessage": "Переместить в:",
|
||||
"newArchetype": "Создайте новую запись на основе архетипа. Файл будет создан в каталоге.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Имя нового каталога.",
|
||||
"newFile": "Новый файл",
|
||||
"newFileMessage": "Имя нового файла.",
|
||||
"numberDirs": "Количество каталогов",
|
||||
"numberFiles": "Количество файлов",
|
||||
"numberDirs": "Количество каталогов{suffix}",
|
||||
"numberFiles": "Количество файлов{suffix}",
|
||||
"rename": "Переименовать",
|
||||
"renameMessage": "Новое имя",
|
||||
"replace": "Заменить",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Обнаруженные конфликты",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Неверное имя: не может содержать \"/\" или \"\\\"."
|
||||
"invalidName": "Неверное имя: не может содержать \"/\" или \"\\\".",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Изображения",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Статус",
|
||||
"assessment": "Оценка",
|
||||
"files": "Файлы",
|
||||
"folders": "Папки",
|
||||
"lastScanned": "Последнее сканирование",
|
||||
"quickScan": "Секунды быстрого сканирования",
|
||||
"fullScan": "Секунды полного сканирования",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Правило доступа удалено!",
|
||||
"added": "Правило доступа добавлено!",
|
||||
"name": "Имя",
|
||||
"accessManagement": "Управление доступом"
|
||||
"accessManagement": "Управление доступом",
|
||||
"totalDenied": "Отказано",
|
||||
"totalAllowed": "Разрешено"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Загрузка и скачивание",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Список расширений файлов, для которых необходимо отключить редактор и просмотрщик OnlyOffice, разделенный пробелами. (например, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Отключение просмотра офисных файлов для определенных расширений файлов",
|
||||
"defaultThemeDescription": "default - Тема по умолчанию",
|
||||
"customTheme": "Выберите тему"
|
||||
"customTheme": "Выберите тему",
|
||||
"showSelectMultiple": "Отображение выбора нескольких в контекстном меню на рабочем столе",
|
||||
"showSelectMultipleDescription": "По умолчанию в контекстном меню рабочего стола нет опции \"выбрать несколько\", как в мобильном. Эта опция всегда отображается в контекстном меню."
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Telo",
|
||||
"clear": "Zrušiť výber",
|
||||
"closePreview": "Zavrieť náhľad",
|
||||
"files": "Súbory",
|
||||
"folders": "Priečinky",
|
||||
"home": "Domov",
|
||||
"lastModified": "Posledná zmena",
|
||||
"loading": "Načítanie...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Vytvoriť účet",
|
||||
"loginInstead": "Už mám účet",
|
||||
"password": "Heslo",
|
||||
"passwordConfirm": "Potvrdenie hesla",
|
||||
"passwordsDontMatch": "Heslá nesúhlasia",
|
||||
"signup": "Registrovať",
|
||||
"submit": "Prihlásiť",
|
||||
"username": "Používateľské meno",
|
||||
"usernameTaken": "Meno je už obsadené",
|
||||
"wrongCredentials": "Nesprávne prihlasovacie údaje",
|
||||
"or": "ALEBO"
|
||||
},
|
||||
"permanent": "Trvalé",
|
||||
"prompts": {
|
||||
"copy": "Kopírovať",
|
||||
"copyMessage": "Zvoľte miesto, kde chcete kopírovať súbory:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Vyberte formát, ktorý chcete stiahnuť.",
|
||||
"error": "Niečo sa pokazilo",
|
||||
"fileInfo": "Informácie o súbore",
|
||||
"lastModified": "Dátum zmeny",
|
||||
"lastModified": "Dátum zmeny{suffix}",
|
||||
"move": "Presunúť",
|
||||
"moveMessage": "Zvoľte nový domov pre vaše súbory/priečinky:",
|
||||
"newArchetype": "Vytvorí nový príspevok z archetypu. Nový súbor sa vytvorí v priečinku s obsahom.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Napíšte názov nového priečinka.",
|
||||
"newFile": "Nový súbor",
|
||||
"newFileMessage": "Napíšte názov nového súboru.",
|
||||
"numberDirs": "Počet priečinkov",
|
||||
"numberFiles": "Počet súborov",
|
||||
"numberDirs": "Počet priečinkov{suffix}",
|
||||
"numberFiles": "Počet súborov{suffix}",
|
||||
"rename": "Premenovať",
|
||||
"renameMessage": "Zadajte nový názov pre",
|
||||
"replace": "Nahradiť",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Zistené konflikty",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Zadaný neplatný názov: nemôže byť kontajner \"/\" alebo \"\\\""
|
||||
"invalidName": "Zadaný neplatný názov: nemôže byť kontajner \"/\" alebo \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Obrázky",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Stav",
|
||||
"assessment": "Hodnotenie",
|
||||
"files": "Súbory",
|
||||
"folders": "Priečinky",
|
||||
"lastScanned": "Posledné skenovanie",
|
||||
"quickScan": "Sekundy rýchleho skenovania",
|
||||
"fullScan": "Sekundy úplného skenovania",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Prístupové pravidlo odstránené!",
|
||||
"added": "Pridané pravidlo prístupu!",
|
||||
"name": "Názov",
|
||||
"accessManagement": "Správa prístupu"
|
||||
"accessManagement": "Správa prístupu",
|
||||
"totalDenied": "Odmietnuté",
|
||||
"totalAllowed": "Povolené"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Nahrávanie a sťahovanie",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "Medzerou oddelený zoznam prípon súborov, pre ktoré sa má vypnúť editor a prehliadač OnlyOffice. (napr. \".txt .html .pdf\").",
|
||||
"disableOfficeEditor": "Zakázanie prehliadača Office pre určité prípony súborov",
|
||||
"defaultThemeDescription": "default - Predvolená téma",
|
||||
"customTheme": "Vyberte si tému"
|
||||
"customTheme": "Vyberte si tému",
|
||||
"showSelectMultiple": "Zobrazenie výberu viacerých v kontextovom menu na ploche",
|
||||
"showSelectMultipleDescription": "V predvolenom nastavení kontextová ponuka na ploche nemá možnosť \"vybrať viacero\" ako v mobilných zariadeniach. Táto možnosť sa v kontextovej ponuke zobrazuje vždy."
|
||||
}
|
||||
}
|
||||
@@ -63,8 +63,6 @@
|
||||
"body": "Huvud",
|
||||
"clear": "Rensa",
|
||||
"closePreview": "Stäng förhands granskningen",
|
||||
"files": "Filer",
|
||||
"folders": "Mappar",
|
||||
"home": "Hem",
|
||||
"lastModified": "Senast ändrad",
|
||||
"loading": "Laddar.....",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Skapa ett konto",
|
||||
"loginInstead": "Du har redan ett konto",
|
||||
"password": "Lösenord",
|
||||
"passwordConfirm": "Bekräfta lösenord",
|
||||
"passwordsDontMatch": "Lösenord matchar inte",
|
||||
"signup": "Registrera",
|
||||
"submit": "Logga in",
|
||||
"username": "Användarnamn",
|
||||
"usernameTaken": "Användarnamn upptaget",
|
||||
"wrongCredentials": "Fel inloggning",
|
||||
"or": "ELLER"
|
||||
},
|
||||
"permanent": "Permanent",
|
||||
"prompts": {
|
||||
"copy": "Kopiera",
|
||||
"copyMessage": "Välj var dina filer skall sparas:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "Välj format på det du vill lada ner.",
|
||||
"error": "Något gick fel",
|
||||
"fileInfo": "Fil information",
|
||||
"lastModified": "Senast ändrad",
|
||||
"lastModified": "Senast ändrad{suffix}",
|
||||
"move": "Flytta",
|
||||
"moveMessage": "Välj ny plats för din fil (er)/mapp (ar):",
|
||||
"newArchetype": "Skapa ett nytt inlägg baserat på en arketyp. Din fil kommer att skapas på innehållsmapp.",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "Ange namn på din nya mapp.",
|
||||
"newFile": "Ny fil",
|
||||
"newFileMessage": "Ange namn på din nya fil.",
|
||||
"numberDirs": "Antal kataloger",
|
||||
"numberFiles": "Antal filer",
|
||||
"numberDirs": "Antal kataloger{suffix}",
|
||||
"numberFiles": "Antal filer{suffix}",
|
||||
"rename": "Ändra namn",
|
||||
"renameMessage": "Infoga ett nytt namn för",
|
||||
"replace": "Ersätt",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Konflikter upptäckta",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Ogiltigt namn anges: kan inte innehålla \"/\" eller \"\\\""
|
||||
"invalidName": "Ogiltigt namn anges: kan inte innehålla \"/\" eller \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Bilder",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Status",
|
||||
"assessment": "Bedömning",
|
||||
"files": "Filer",
|
||||
"folders": "Mappar",
|
||||
"lastScanned": "Senast skannad",
|
||||
"quickScan": "Snabbsökning Sekunder",
|
||||
"fullScan": "Fullständig skanning Sekunder",
|
||||
@@ -437,6 +430,39 @@
|
||||
"disableOfficeEditorDescription": "En mellanslagsseparerad lista över filtillägg som OnlyOffice redigerare och visare ska inaktiveras för. (t.ex. '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Avaktivera Office Viewer för vissa filtillägg",
|
||||
"defaultThemeDescription": "default - Standardtema",
|
||||
"customTheme": "Välj ditt tema"
|
||||
"customTheme": "Välj ditt tema",
|
||||
"showSelectMultiple": "Visa markera flera i snabbmenyn på skrivbordet",
|
||||
"showSelectMultipleDescription": "Som standard har snabbmenyn på skrivbordet inte alternativet \"välj flera\" som på mobilen. Det här alternativet visas alltid i snabbmenyn."
|
||||
},
|
||||
"general": {
|
||||
"name": "Namn",
|
||||
"path": "Väg",
|
||||
"user": "Användare",
|
||||
"group": "Grupp",
|
||||
"signup": "Registrera dig",
|
||||
"password": "Lösenord",
|
||||
"username": "Användarnamn",
|
||||
"files": "Filer",
|
||||
"folders": "Mappar",
|
||||
"exit": "Avsluta",
|
||||
"permanent": "Permanent"
|
||||
},
|
||||
"access": {
|
||||
"rules": "Regler för åtkomst",
|
||||
"deny": "Förneka",
|
||||
"deniedUsers": "Nekade användare",
|
||||
"deniedGroups": "Nekade grupper",
|
||||
"allowedUsers": "Tillåtna användare",
|
||||
"allowedGroups": "Tillåtna grupper",
|
||||
"totalDenied": "Avslås",
|
||||
"totalAllowed": "Tillåtet",
|
||||
"allow": "Tillåt",
|
||||
"allowDeny": "Tillåt/avslå",
|
||||
"userGroup": "Användare/Grupp",
|
||||
"enterName": "Ange användar- eller gruppnamn",
|
||||
"deleted": "Åtkomstregel raderad!",
|
||||
"added": "Tillträdesregel tillagd!",
|
||||
"name": "Namn",
|
||||
"accessManagement": "Hantering av åtkomst"
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -63,8 +63,6 @@
|
||||
"body": "Sayfa",
|
||||
"clear": "Temizle",
|
||||
"closePreview": "Önizlemeyi kapat",
|
||||
"files": "Dosyalar",
|
||||
"folders": "Klasörler",
|
||||
"home": "Ana dizin",
|
||||
"lastModified": "Son güncellenme",
|
||||
"loading": "Yükleniyor...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Bir hesap oluşturun",
|
||||
"loginInstead": "Zaten hesabınız var mı",
|
||||
"password": "Şifre",
|
||||
"passwordConfirm": "Şifre tekrarı",
|
||||
"passwordsDontMatch": "Şifreler uyuşmuyor",
|
||||
"signup": "Üye Ol",
|
||||
"submit": "Giriş",
|
||||
"username": "Kullanıcı adı",
|
||||
"usernameTaken": "Kullanıcı adı mevcut",
|
||||
"wrongCredentials": "Yanlış hesap bilgileri",
|
||||
"or": "VEYA"
|
||||
},
|
||||
"permanent": "Kalıcı",
|
||||
"prompts": {
|
||||
"copy": "Kopyala",
|
||||
"copyMessage": "Dosyalarınızı kopyalayacağınız yeri seçin:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "İndirmek istediğiniz formatı seçin.",
|
||||
"error": "Bir şeyler yanlış gitti",
|
||||
"fileInfo": "Dosya bilgisi",
|
||||
"lastModified": "Son güncellenme",
|
||||
"lastModified": "Son güncellenme{suffix}",
|
||||
"move": "Taşı",
|
||||
"moveMessage": "Dosya(lar)ınız/klasör(ler)iniz için yeni ana dizin seçin:",
|
||||
"newArchetype": "Bir prototip temelinde yeni bir gönderi oluşturun. Dosyanız içerik klasöründe oluşturulacaktır.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Yeni dizinin adını yazın.",
|
||||
"newFile": "Yeni dosya",
|
||||
"newFileMessage": "Yeni dosyanın adını yazın.",
|
||||
"numberDirs": "Dizin sayısı",
|
||||
"numberFiles": "Dosya sayısı",
|
||||
"numberDirs": "Dizin sayısı{suffix}",
|
||||
"numberFiles": "Dosya sayısı{suffix}",
|
||||
"rename": "Yeniden adlandır",
|
||||
"renameMessage": "için yeni bir ad girin",
|
||||
"replace": "Değiştir",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Tespit edilen çatışmalar",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Geçersiz ad sağlandı: \"/\" veya \"\\\" kapsayıcı olamaz"
|
||||
"invalidName": "Geçersiz ad sağlandı: \"/\" veya \"\\\" kapsayıcı olamaz",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Görseller",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Durum",
|
||||
"assessment": "Değerlendirme",
|
||||
"files": "Dosyalar",
|
||||
"folders": "Klasörler",
|
||||
"lastScanned": "Son Taranan",
|
||||
"quickScan": "Hızlı Tarama Saniyeleri",
|
||||
"fullScan": "Tam Tarama Saniyeleri",
|
||||
@@ -402,7 +395,9 @@
|
||||
"deleted": "Erişim kuralı silindi!",
|
||||
"added": "Erişim kuralı eklendi!",
|
||||
"name": "İsim",
|
||||
"accessManagement": "Erişim Yönetimi"
|
||||
"accessManagement": "Erişim Yönetimi",
|
||||
"totalDenied": "Reddedildi",
|
||||
"totalAllowed": "İzin verildi"
|
||||
},
|
||||
"fileLoading": {
|
||||
"title": "Yüklemeler & İndirmeler",
|
||||
@@ -466,6 +461,8 @@
|
||||
"disableOfficeEditorDescription": "OnlyOffice düzenleyicisini ve görüntüleyicisini devre dışı bırakmak için dosya uzantılarının boşluk bırakılarak ayrılmış bir listesi. (örneğin, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Belirli dosya uzantıları için ofis görüntüleyiciyi devre dışı bırakma",
|
||||
"defaultThemeDescription": "default - Varsayılan tema",
|
||||
"customTheme": "Temanızı seçin"
|
||||
"customTheme": "Temanızı seçin",
|
||||
"showSelectMultiple": "Masaüstündeki bağlam menüsünde çoklu seçmeyi göster",
|
||||
"showSelectMultipleDescription": "Varsayılan olarak, masaüstü içerik menüsünde mobil cihazlardaki gibi \"çoklu seç\" seçeneği yoktur. Bu seçenek her zaman içerik menüsünde gösterilir."
|
||||
}
|
||||
}
|
||||
+39
-13
@@ -63,8 +63,6 @@
|
||||
"body": "Тіло",
|
||||
"clear": "Очистити",
|
||||
"closePreview": "Закрити",
|
||||
"files": "Файли",
|
||||
"folders": "Папки",
|
||||
"home": "Домівка",
|
||||
"lastModified": "Останній раз змінено",
|
||||
"loading": "Завантаження...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "Створити обліковий запис",
|
||||
"loginInstead": "Вже є обліковий запис",
|
||||
"password": "Пароль",
|
||||
"passwordConfirm": "Підтвердження паролю",
|
||||
"passwordsDontMatch": "Паролі не співпадають",
|
||||
"signup": "Зареєструватися",
|
||||
"submit": "Увійти",
|
||||
"username": "Ім'я користувача",
|
||||
"usernameTaken": "Ім'я користувача вже використовується",
|
||||
"wrongCredentials": "Невірне ім'я користувача або пароль",
|
||||
"or": "АБО"
|
||||
},
|
||||
"permanent": "Постійний",
|
||||
"prompts": {
|
||||
"copy": "Копіювати",
|
||||
"copyMessage": "Копіювати в:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "Виберіть формат, в якому хочете завантажити.",
|
||||
"error": "Помилка",
|
||||
"fileInfo": "Інформація про файл",
|
||||
"lastModified": "Останній раз змінено",
|
||||
"lastModified": "Останній раз змінено{suffix}",
|
||||
"move": "Перемістити",
|
||||
"moveMessage": "Перемістити в:",
|
||||
"newArchetype": "Створіть новий запис на основі архетипу. Файл буде створено у каталозі.",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "Ім'я нового каталогу.",
|
||||
"newFile": "Новий файл",
|
||||
"newFileMessage": "Ім'я нового файлу.",
|
||||
"numberDirs": "Кількість каталогів",
|
||||
"numberFiles": "Кількість файлів",
|
||||
"numberDirs": "Кількість каталогів{suffix}",
|
||||
"numberFiles": "Кількість файлів{suffix}",
|
||||
"rename": "Перейменувати",
|
||||
"renameMessage": "Нове ім'я",
|
||||
"replace": "Замінити",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "Виявлені конфлікти",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "Вказано невірне ім'я: не можна використовувати символи \"/\" або \"\\\""
|
||||
"invalidName": "Вказано невірне ім'я: не можна використовувати символи \"/\" або \"\\\"",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "Зображення",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "Статус",
|
||||
"assessment": "Оцінка",
|
||||
"files": "Файли",
|
||||
"folders": "Папки",
|
||||
"lastScanned": "Останнє сканування",
|
||||
"quickScan": "Секунди швидкого сканування",
|
||||
"fullScan": "Секунди повного сканування",
|
||||
@@ -437,6 +430,39 @@
|
||||
"disableOfficeEditorDescription": "Список розділених пробілами розширень файлів, для яких слід вимкнути редактор і переглядач OnlyOffice. (наприклад, '.txt .html .pdf').",
|
||||
"disableOfficeEditor": "Вимкнути офісний переглядач для певних розширень файлів",
|
||||
"defaultThemeDescription": "default - тема за замовчуванням",
|
||||
"customTheme": "Виберіть свою тему"
|
||||
"customTheme": "Виберіть свою тему",
|
||||
"showSelectMultiple": "Показувати вибране кілька в контекстному меню на робочому столі",
|
||||
"showSelectMultipleDescription": "За замовчуванням, контекстне меню десктопа не має опції \"вибрати декілька\", як у мобільному. Ця опція завжди відображається у контекстному меню."
|
||||
},
|
||||
"general": {
|
||||
"name": "Ім'я",
|
||||
"path": "Шлях",
|
||||
"user": "Користувач",
|
||||
"group": "Група",
|
||||
"signup": "Реєстрація",
|
||||
"password": "Пароль",
|
||||
"username": "Ім'я користувача",
|
||||
"files": "Файли",
|
||||
"folders": "Папки",
|
||||
"exit": "Виходьте.",
|
||||
"permanent": "Постійний"
|
||||
},
|
||||
"access": {
|
||||
"rules": "Правила доступу",
|
||||
"deny": "Відхилити",
|
||||
"deniedUsers": "Заборонені користувачі",
|
||||
"deniedGroups": "Заборонені групи",
|
||||
"allowedUsers": "Дозволені користувачі",
|
||||
"allowedGroups": "Дозволені групи",
|
||||
"totalDenied": "Відмовлено",
|
||||
"totalAllowed": "Дозволено",
|
||||
"allow": "Дозвольте",
|
||||
"allowDeny": "Дозволити/Заборонити",
|
||||
"userGroup": "Користувач/група",
|
||||
"enterName": "Введіть ім'я користувача або групи",
|
||||
"deleted": "Правило доступу видалено!",
|
||||
"added": "Додано правило доступу!",
|
||||
"name": "Ім'я",
|
||||
"accessManagement": "Керування доступом"
|
||||
}
|
||||
}
|
||||
@@ -63,8 +63,6 @@
|
||||
"body": "内容",
|
||||
"clear": "清空",
|
||||
"closePreview": "关闭预览",
|
||||
"files": "文件",
|
||||
"folders": "文件夹",
|
||||
"home": "主页",
|
||||
"lastModified": "最后修改",
|
||||
"loading": "加载中...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "创建用户",
|
||||
"loginInstead": "已有用户登录",
|
||||
"password": "密码",
|
||||
"passwordConfirm": "确认密码",
|
||||
"passwordsDontMatch": "密码不一致",
|
||||
"signup": "注册",
|
||||
"submit": "登录",
|
||||
"username": "用户名",
|
||||
"usernameTaken": "用户名已经被使用",
|
||||
"wrongCredentials": "用户名或密码错误",
|
||||
"or": "或"
|
||||
},
|
||||
"permanent": "永久",
|
||||
"prompts": {
|
||||
"copy": "复制",
|
||||
"copyMessage": "请选择欲复制至的目录:",
|
||||
@@ -145,7 +139,7 @@
|
||||
"downloadMessage": "请选择要下载的压缩格式。",
|
||||
"error": "出了一点问题...",
|
||||
"fileInfo": "文件信息",
|
||||
"lastModified": "最后修改",
|
||||
"lastModified": "最后修改{suffix}",
|
||||
"move": "移动",
|
||||
"moveMessage": "请选择欲移动至的目录:",
|
||||
"newArchetype": "创建一个基于原型的新帖子。您的文件将会创建在内容文件夹中。",
|
||||
@@ -153,8 +147,8 @@
|
||||
"newDirMessage": "请输入新目录的名称。",
|
||||
"newFile": "新建文件",
|
||||
"newFileMessage": "请输入新文件的名称。",
|
||||
"numberDirs": "目录数",
|
||||
"numberFiles": "文件数",
|
||||
"numberDirs": "目录数{suffix}",
|
||||
"numberFiles": "文件数{suffix}",
|
||||
"rename": "重命名",
|
||||
"renameMessage": "请输入新名称,旧名称为:",
|
||||
"replace": "替换",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "检测到冲突",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "提供的名称无效:不能包含\"/\"或\"\\\"。"
|
||||
"invalidName": "提供的名称无效:不能包含\"/\"或\"\\\"。",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "图像",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "现状",
|
||||
"assessment": "评估",
|
||||
"files": "文件",
|
||||
"folders": "文件夹",
|
||||
"lastScanned": "上次扫描",
|
||||
"quickScan": "快速扫描秒数",
|
||||
"fullScan": "完整扫描秒数",
|
||||
@@ -437,6 +430,39 @@
|
||||
"disableOfficeEditorDescription": "用空格分隔的文件扩展名列表,用于禁用 OnlyOffice 编辑器和查看器。(例如,\".txt .html .pdf\")。",
|
||||
"disableOfficeEditor": "禁用某些文件扩展名的 Office 查看器",
|
||||
"defaultThemeDescription": "default - 默认主题",
|
||||
"customTheme": "选择主题"
|
||||
"customTheme": "选择主题",
|
||||
"showSelectMultiple": "在桌面右键菜单中显示多个选择",
|
||||
"showSelectMultipleDescription": "默认情况下,桌面右键菜单不像手机那样有 \"选择多个 \"选项。该选项始终显示在右键菜单中。"
|
||||
},
|
||||
"general": {
|
||||
"name": "名称",
|
||||
"path": "路径",
|
||||
"user": "用户",
|
||||
"group": "组别",
|
||||
"signup": "注册",
|
||||
"password": "密码",
|
||||
"username": "用户名",
|
||||
"files": "文件",
|
||||
"folders": "文件夹",
|
||||
"exit": "退出",
|
||||
"permanent": "永久性"
|
||||
},
|
||||
"access": {
|
||||
"rules": "访问规则",
|
||||
"deny": "拒绝",
|
||||
"deniedUsers": "被拒绝的用户",
|
||||
"deniedGroups": "被拒群体",
|
||||
"allowedUsers": "允许用户",
|
||||
"allowedGroups": "允许组别",
|
||||
"totalDenied": "拒绝",
|
||||
"totalAllowed": "允许",
|
||||
"allow": "允许",
|
||||
"allowDeny": "允许/拒绝",
|
||||
"userGroup": "用户/组",
|
||||
"enterName": "输入用户或组名称",
|
||||
"deleted": "访问规则已删除!",
|
||||
"added": "已添加访问规则!",
|
||||
"name": "名称",
|
||||
"accessManagement": "访问管理"
|
||||
}
|
||||
}
|
||||
@@ -63,8 +63,6 @@
|
||||
"body": "内容",
|
||||
"clear": "清空",
|
||||
"closePreview": "關閉預覽",
|
||||
"files": "檔案",
|
||||
"folders": "資料夾",
|
||||
"home": "主頁",
|
||||
"lastModified": "最後修改",
|
||||
"loading": "讀取中...",
|
||||
@@ -122,17 +120,13 @@
|
||||
"login": {
|
||||
"createAnAccount": "新建賬戶",
|
||||
"loginInstead": "已有賬戶登錄",
|
||||
"password": "密碼",
|
||||
"passwordConfirm": "確認密碼",
|
||||
"passwordsDontMatch": "密碼不匹配",
|
||||
"signup": "註冊",
|
||||
"submit": "登入",
|
||||
"username": "帳號",
|
||||
"usernameTaken": "用戶名已存在",
|
||||
"wrongCredentials": "帳號或密碼錯誤",
|
||||
"or": "或"
|
||||
},
|
||||
"permanent": "永久",
|
||||
"prompts": {
|
||||
"copy": "複製",
|
||||
"copyMessage": "請選擇欲複製至的目錄:",
|
||||
@@ -144,7 +138,7 @@
|
||||
"downloadMessage": "請選擇要下載的壓縮格式。",
|
||||
"error": "發出了一點錯誤...",
|
||||
"fileInfo": "檔案資訊",
|
||||
"lastModified": "最後修改",
|
||||
"lastModified": "最後修改{suffix}",
|
||||
"move": "移動",
|
||||
"moveMessage": "請選擇欲移動至的目錄:",
|
||||
"newArchetype": "建立一個基於原型的新貼文。您的檔案將會建立在內容資料夾中。",
|
||||
@@ -152,8 +146,8 @@
|
||||
"newDirMessage": "請輸入新目錄的名稱。",
|
||||
"newFile": "建立檔案",
|
||||
"newFileMessage": "請輸入新檔案的名稱。",
|
||||
"numberDirs": "目錄數",
|
||||
"numberFiles": "檔案數",
|
||||
"numberDirs": "目錄數{suffix}",
|
||||
"numberFiles": "檔案數{suffix}",
|
||||
"rename": "重新命名",
|
||||
"renameMessage": "請輸入新名稱,舊名稱為:",
|
||||
"replace": "替換",
|
||||
@@ -176,7 +170,8 @@
|
||||
"conflictsDetected": "偵測到衝突",
|
||||
"uploadSettingsChunked": "Max concurrent uploads: {maxConcurrentUpload}, chunk size: {uploadChunkSizeMb} MB",
|
||||
"uploadSettingsNoChunk": "Max concurrent uploads: {maxConcurrentUpload}, chunked upload disabled",
|
||||
"invalidName": "提供的名稱無效:不能包含 \"/「 或 」\\\" 的容器"
|
||||
"invalidName": "提供的名稱無效:不能包含 \"/「 或 」\\\" 的容器",
|
||||
"source": "Source{suffix}"
|
||||
},
|
||||
"search": {
|
||||
"images": "影像",
|
||||
@@ -350,8 +345,6 @@
|
||||
"index": {
|
||||
"status": "狀態",
|
||||
"assessment": "評估",
|
||||
"files": "檔案",
|
||||
"folders": "資料夾",
|
||||
"lastScanned": "最後一次掃描",
|
||||
"quickScan": "快速掃描秒數",
|
||||
"fullScan": "完整掃描秒數",
|
||||
@@ -411,7 +404,9 @@
|
||||
"disableOfficeEditorDescription": "以空格分隔的檔案副檔名清單,用來停用 OnlyOffice 編輯器和檢視器。(例如,'.txt .html .pdf')。",
|
||||
"disableOfficeEditor": "停用特定檔案副檔名的 Office 檢視器",
|
||||
"defaultThemeDescription": "default - 預設主題",
|
||||
"customTheme": "選擇您的主題"
|
||||
"customTheme": "選擇您的主題",
|
||||
"showSelectMultiple": "在桌面的上下文功能表中顯示多重選擇",
|
||||
"showSelectMultipleDescription": "預設情況下,桌上型電腦的上下文功能表不像行動裝置一樣有「選取多個」選項。此選項總是在上下文功能表中顯示。"
|
||||
},
|
||||
"otp": {
|
||||
"name": "雙因素驗證",
|
||||
@@ -438,5 +433,36 @@
|
||||
"yellow": "黃色",
|
||||
"violet": "紫色",
|
||||
"orange": "橙色"
|
||||
},
|
||||
"general": {
|
||||
"name": "名稱",
|
||||
"path": "路徑",
|
||||
"user": "使用者",
|
||||
"group": "集團",
|
||||
"signup": "註冊",
|
||||
"password": "密碼",
|
||||
"username": "帳號",
|
||||
"files": "檔案",
|
||||
"folders": "資料夾",
|
||||
"exit": "離開",
|
||||
"permanent": "長期"
|
||||
},
|
||||
"access": {
|
||||
"rules": "存取規則",
|
||||
"deny": "拒絕",
|
||||
"deniedUsers": "被拒使用者",
|
||||
"deniedGroups": "拒絕群組",
|
||||
"allowedUsers": "允許使用者",
|
||||
"allowedGroups": "允許的群組",
|
||||
"totalDenied": "拒絕",
|
||||
"totalAllowed": "允許",
|
||||
"allow": "允許",
|
||||
"allowDeny": "允許/拒絕",
|
||||
"userGroup": "使用者/群組",
|
||||
"enterName": "輸入使用者或群組名稱",
|
||||
"deleted": "存取規則已刪除!",
|
||||
"added": "已新增存取規則!",
|
||||
"name": "名稱",
|
||||
"accessManagement": "存取管理"
|
||||
}
|
||||
}
|
||||
@@ -291,12 +291,12 @@ export const getters = {
|
||||
currentPromptName: () => {
|
||||
// Ensure state.prompts is an array
|
||||
if (!Array.isArray(state.prompts) || state.prompts.length === 0) {
|
||||
return null
|
||||
return ""
|
||||
}
|
||||
// Check if the name property is a string
|
||||
const lastPrompt = state.prompts[state.prompts.length - 1]
|
||||
if (typeof lastPrompt?.name !== 'string') {
|
||||
return null
|
||||
return ""
|
||||
}
|
||||
return lastPrompt.name
|
||||
},
|
||||
|
||||
@@ -104,7 +104,7 @@ export default {
|
||||
return getters.isLoggedIn() && getters.currentView() === "listingView";
|
||||
},
|
||||
isDisabled() {
|
||||
return state.isSearchActive || getters.currentPromptName() != null;
|
||||
return state.isSearchActive || getters.currentPromptName() != "";
|
||||
},
|
||||
isDisabledMultiAction() {
|
||||
return this.isDisabled || (getters.isStickySidebar() && state.multiButtonState === "menu");
|
||||
@@ -170,3 +170,10 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
header button:hover {
|
||||
box-shadow: unset !important;
|
||||
-webkit-box-shadow: unset !important;
|
||||
}
|
||||
</style>
|
||||
@@ -133,7 +133,7 @@ export default {
|
||||
},
|
||||
keyEvent(event) {
|
||||
const { key, ctrlKey, metaKey } = event;
|
||||
if (getters.currentPromptName() != null) return;
|
||||
if (getters.currentPromptName()) return;
|
||||
if ((ctrlKey || metaKey) && key.toLowerCase() === "s") {
|
||||
event.preventDefault();
|
||||
this.handleEditorValueRequest();
|
||||
|
||||
@@ -603,18 +603,18 @@ export default {
|
||||
}
|
||||
},
|
||||
keyEvent(event) {
|
||||
if (state.isSearchActive || getters.currentView() != "listingView" || getters.currentPromptName() != null) {
|
||||
if (state.isSearchActive || getters.currentView() != "listingView" || getters.currentPromptName()) {
|
||||
return;
|
||||
}
|
||||
const { key, ctrlKey, metaKey, which } = event;
|
||||
// Check if the key is alphanumeric
|
||||
const isAlphanumeric = /^[a-z0-9]$/i.test(key);
|
||||
const modifierKeys = ctrlKey || metaKey;
|
||||
if (isAlphanumeric && !modifierKeys && getters.currentPromptName() == null) {
|
||||
if (isAlphanumeric && !modifierKeys && getters.currentPromptName()) {
|
||||
this.alphanumericKeyPress(key); // Call the alphanumeric key press function
|
||||
return;
|
||||
}
|
||||
if (!modifierKeys && getters.currentPromptName() != null) {
|
||||
if (!modifierKeys && getters.currentPromptName()) {
|
||||
return;
|
||||
}
|
||||
// Handle the space bar key
|
||||
@@ -627,7 +627,7 @@ export default {
|
||||
mutations.setSearch(true);
|
||||
}
|
||||
}
|
||||
if (getters.currentPromptName() != null) {
|
||||
if (getters.currentPromptName()) {
|
||||
return;
|
||||
}
|
||||
let currentPath = state.route.path.replace(/\/+$/, ""); // Remove trailing slashes
|
||||
@@ -649,7 +649,7 @@ export default {
|
||||
break;
|
||||
|
||||
case "Backspace":
|
||||
if (getters.CurrentPromptName !== null) {
|
||||
if (getters.currentPromptName()) {
|
||||
return;
|
||||
}
|
||||
// go back
|
||||
@@ -933,7 +933,7 @@ export default {
|
||||
// if control or shift is pressed, do not clear the selection
|
||||
if (this.ctrKeyPressed || event.shiftKey) return;
|
||||
const sameAsBefore = state.selected == this.lastSelected;
|
||||
if (sameAsBefore && !state.multiple && getters.currentPromptName() == null) {
|
||||
if (sameAsBefore && !state.multiple && getters.currentPromptName()) {
|
||||
mutations.resetSelected();
|
||||
}
|
||||
this.lastSelected = state.selected;
|
||||
|
||||
@@ -164,9 +164,6 @@ export default {
|
||||
}
|
||||
return filesApi.getDownloadURL(state.req.source, state.req.path);
|
||||
},
|
||||
showMore() {
|
||||
return getters.currentPromptName() === "more";
|
||||
},
|
||||
getSubtitles() {
|
||||
return this.subtitles();
|
||||
},
|
||||
@@ -273,7 +270,7 @@ export default {
|
||||
this.$router.replace({ path: this.nextLink });
|
||||
},
|
||||
async keyEvent(event) {
|
||||
if (getters.currentPromptName() != null) {
|
||||
if (getters.currentPromptName()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -373,9 +370,6 @@ export default {
|
||||
? filesApi.getDownloadURL(state.req.source, item.path, true)
|
||||
: filesApi.getPreviewURL(state.req.source, item.path, item.modified);
|
||||
},
|
||||
openMore() {
|
||||
this.currentPrompt = "more";
|
||||
},
|
||||
resetPrompts() {
|
||||
this.currentPrompt = null;
|
||||
},
|
||||
|
||||
@@ -26,8 +26,8 @@ async function globalSetup() {
|
||||
await page.locator('button[aria-label="Share"]').click();
|
||||
await expect(page.locator('div[aria-label="share-path"]')).toHaveText('Path: /myfolder');
|
||||
await page.locator('button[aria-label="Share-Confirm"]').click();
|
||||
await expect(page.locator("#share .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHash = await page.locator("#share .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
await expect(page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHash = await page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
if (!shareHash) {
|
||||
throw new Error("Failed to retrieve shareHash");
|
||||
}
|
||||
@@ -45,8 +45,8 @@ async function globalSetup() {
|
||||
await page.locator('button[aria-label="Share"]').click();
|
||||
await expect(page.locator('div[aria-label="share-path"]')).toHaveText('Path: /1file1.txt');
|
||||
await page.locator('button[aria-label="Share-Confirm"]').click();
|
||||
await expect(page.locator("#share .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHashFile = await page.locator("#share .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
await expect(page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHashFile = await page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
if (!shareHashFile) {
|
||||
throw new Error("Failed to retrieve shareHash");
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@ async function globalSetup() {
|
||||
await page.locator('button[aria-label="Share"]').click();
|
||||
await expect(page.locator('div[aria-label="share-path"]')).toHaveText('Path: /myfolder');
|
||||
await page.locator('button[aria-label="Share-Confirm"]').click();
|
||||
await expect(page.locator("#share .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHash = await page.locator("#share .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
await expect(page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHash = await page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
if (!shareHash) {
|
||||
throw new Error("Failed to retrieve shareHash");
|
||||
}
|
||||
@@ -36,8 +36,8 @@ async function globalSetup() {
|
||||
await page.locator('button[aria-label="Share"]').click();
|
||||
await expect(page.locator('div[aria-label="share-path"]')).toHaveText('Path: /1file1.txt');
|
||||
await page.locator('button[aria-label="Share-Confirm"]').click();
|
||||
await expect(page.locator("#share .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHashFile = await page.locator("#share .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
await expect(page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th))")).toHaveCount(1);
|
||||
const shareHashFile = await page.locator("div[aria-label='share-prompt'] .card-content table tbody tr:not(:has(th)) td").first().textContent();
|
||||
if (!shareHashFile) {
|
||||
throw new Error("Failed to retrieve shareHash");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user