diff --git a/README.md b/README.md new file mode 100644 index 0000000..59363f2 --- /dev/null +++ b/README.md @@ -0,0 +1,228 @@ +
+icon + +--- +[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/Zuoqiu-Yingyi/siyuan-plugin-keepass?include_prereleases&style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/releases/latest) +[![GitHub Release Date](https://img.shields.io/github/release-date/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/releases/latest) +[![GitHub License](https://img.shields.io/github/license/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/blob/main/LICENSE) +[![GitHub last commit](https://img.shields.io/github/last-commit/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/commits/main) +![GitHub repo size](https://img.shields.io/github/repo-size/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square) +![GitHub code size](https://img.shields.io/github/languages/code-size/Zuoqiu-Yingyi/siyuan-plugin-keepass.svg?style=flat-square) +![hits](https://hits.b3log.org/Zuoqiu-Yingyi/siyuan-plugin-keepass.svg) + +[![GitHub all releases](https://img.shields.io/github/downloads/Zuoqiu-Yingyi/siyuan-plugin-keepass/total?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/releases) + +--- +[简体中文](./README_zh_CN.md) \| English + +--- +
+ +# SiYuan KeePass Password Manager Plugin + +This is a plugin for [SiYuan](https://github.com/siyuan-note/siyuan), developed based on the [KeeWeb](https://github.com/keeweb/keeweb) project. It provides a fully offline and comprehensive password management functionality, supporting read and write access to KeePass database files `*.kdbx` of versions 3.x and 4.x, and comes with a built-in KeeWeb plugin for connecting to SiYuan services. + +## Preview + +![Preview Image](https://cdn.jsdelivr.net/gh/Zuoqiu-Yingyi/siyuan-plugin-keepass/public/preview.png) + +## Frequently Asked Questions + +* Is this project open source? + + * This project is fully open source and uses the [AGPL-3.0-or-later](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/blob/main/LICENSE) license. It consists of multiple components. + + * Monorepo repository of the project: [Zuoqiu-Yingyi/siyuan-packages-monorepo](https://github.com/Zuoqiu-Yingyi/siyuan-packages-monorepo) + + * The main repository of the project is part of the monorepo, with most of the development activities taking place in the monorepo repository. + * The main repository of the project at the path in the monorepo repository: [siyuan-packages-monorepo/workspace/plugins/keepass](https://github.com/Zuoqiu-Yingyi/siyuan-packages-monorepo/tree/main/workspace/plugins/keepass) + * Main repository of the project: [Zuoqiu-Yingyi/siyuan-plugin-keepass](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass) + + * This repository contains two plugins. + * SiYuan Note plugin (plugin name: `keepass`) + + * Deploys KeeWeb service in SiYuan Note. + * Includes all official plugins provided by KeeWeb marketplace, enabling full offline usage of KeeWeb related services. + * Synchronizes KeeWeb user configuration information across multiple browsers. + * Provides other useful features, details can be found in the "Features" section. + * KeeWeb plugin (plugin name: `siyuan`) + + * Connects to SiYuan Note services. + * Reads and writes `*.kdbx` database files located in the SiYuan Note workspace directory. + * Branch repository for KeeWeb development: [Zuoqiu-Yingyi/keeweb](https://github.com/Zuoqiu-Yingyi/keeweb) + + * Optimizes the packaging process by turning off compression during build. + * Optimizes CSP (Content Security Policy) signature strategy. + * Adds trust for SiYuan extensions. + * Adds offline loading of community extension plugins. +* Unable to read databases under SiYuan workspace in KeeWeb page + + * Please check if the SiYuan service URL and Token are correctly set in the plugin settings, or open the KeeWeb page in a SiYuan tab. +* How to install the KeeWeb plugin `siyuan` in other KeeWeb applications? + + * The KeeWeb plugin `siyuan` is already built-in the SiYuan plugin `keepass` and can be installed using the following address: + + * `http(s):///plugins/keepass/keeweb/plugins/siyuan` + * Alternatively, you can install it from the build branch of this project: + + * [https://raw.githubusercontent.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/publish/keeweb/plugins/siyuan](https://raw.githubusercontent.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/publish/keeweb/plugins/siyuan) + +## Introduction + +### SiYuan Note Plugin `keepass` + +#### Features + +* Built-in KeeWeb application + + * After installing this plugin, access `http(s)://siyuan/plugins/keepass/keeweb/app/` to use the built-in KeeWeb application. + * Can be used fully offline. + * Can load KeeWeb community plugins fully offline. +* Synchronize KeeWeb user configuration + + * Only supports synchronizing user configuration of the built-in KeeWeb application. +* `Open KeeWeb in New Tab` + + * Ways to access this feature: + + * Click the "KeePass Password Manager" button on the top right corner of SiYuan → "Open KeeWeb in New Tab" + * Use the command "KeePass Password Manager: Open KeeWeb in New Tab" + * Set a custom shortcut key +* `Open KeeWeb in Browser` + + * Ways to access this feature: + + * Click the "KeePass Password Manager" button on the top right corner of SiYuan → "Open KeeWeb in Browser" + * Use the command "KeePass Password Manager: Open KeeWeb in Browser" + * Set a custom shortcut key +* `Open KeeWeb in New Window` + + * Ways to access this feature: + + * Click the "KeePass Password Manager" button on the top right corner of SiYuan → "Open KeeWeb in New Window" + * Use the command "KeePass Password Manager: Open KeeWeb in New Window" + * Set a custom shortcut key + + * This shortcut key is a global shortcut in the desktop application of SiYuan. + +#### Settings Introduction + +* `General Settings` + + * `Reset Settings` + + * This is a button. + * Resets all settings options of this plugin to their default values. + * Refreshes the page after resetting. + * `Delete KeeWeb User Configuration` + + * This is a button. + * Delete all KeeWeb user configurations. + * If the KeeWeb app does not load properly, you can use this button to initialize the Keeweb app. +* `KeeWeb Settings` + + * `Plugins` + + * `KeeWeb Plugin: siyuan` + + * This is a toggle switch. + * Default status: `Enabled` + * When enabled, it installs the `siyuan` plugin in the built-in KeeWeb application. + * When disabled, it uninstalls the `siyuan` plugin in the built-in KeeWeb application. + * After making changes, you need to refresh the KeeWeb application page for the changes to take effect. + * The status of this switch will be synchronized after installing/uninstalling the `siyuan` plugin in the KeeWeb application. + * `Window` + + * `Window Width` + + * This is a numerical input box. + * Default value: `800` + * Unit: pixels `px` + * Sets the initial width of the window when using the "Open KeeWeb in New Window" feature. + * `Window Height` + + * This is a numerical input box. + * Default value: `600` + * Unit: pixels `px` + * Sets the initial height of the window when using the "Open KeeWeb in New Window" feature. + * `Window Center` + + * This is a toggle switch. + * Default value: `Disabled` + * Sets the position of the new window opened by the "Open KeeWeb in New Window" feature. + + * When enabled, the new window is displayed in the center of the screen. + * When disabled, the new window is displayed at the current mouse position. + * `Window Always-on-Top` + + * This is a toggle switch. + * Default value: `Enabled` + * Sets whether the new window opened by the "Open KeeWeb in New Window" feature is always displayed on top by default. + + * When enabled, the new window is displayed on top by default. + * When disabled, the new window is not displayed on top by default. + * The window always-on-top feature only works on desktop versions. + + * You can use the shortcut key Ctrl + Shift + Space or the window toolbar menu item ViewToggle On Top to toggle the on-top status for newly opened windows on desktop versions. + +### KeeWeb Plugin `siyuan` + +#### Features + +* Adds a SiYuan button on the KeeWeb main interface + + * Allows selecting and loading KeePass database files `*.kdbx` from the SiYuan workspace directory. + * The initial directory of the file selector is influenced by the "Default File Open Directory" plugin setting. + + * The default initial directory is `/data/storage/petal/keepass/`. +* Saves KeePass database files `*.kdbx` to the SiYuan Note workspace + + * KeePass database files `*.kdbx` opened from the SiYuan workspace location will be saved at their original locations. + * Newly created KeePass database files `*.kdbx` will be saved in the directory specified by the "Default *.kdbx File Storage Directory" setting. + + * By default, they are saved in the directory `/data/storage/petal/keepass/`. + +#### Settings Introduction + +* `SiYuan service base URL` + + * This is a text input box. + * Default: empty + * Set the URL of the SiYuan Note service to connect to. + + * Leave it empty to connect to the current SiYuan Note service. + * Can connect to other SiYuan Note services. +* `SiYuan Service Token` + + * This is a text input box. + * Default: empty + * Set the token of the SiYuan Note service to connect to. + + * If connecting to the current SiYuan Note service, it can be left empty. + + * Requires authentication through the login of the current SiYuan Note. + * If connecting to other SiYuan Note services, the corresponding token needs to be set. +* `Default *.kdbx File Storage Directory` + + * This is a text input box. + * Default: `/data/storage/petal/keepass/` + * Specify the storage directory for newly created KeePass database files `*.kdbx`. + + * The root directory of this path is the workspace directory of SiYuan Note. +* `Default File Open Directory` + + * This is a drop-down selection box. + * Default: `Default *.kdbx File Storage Directory` + * Set the default directory for the file selector opened by the "SiYuan Note" button on the KeeWeb main interface. + * Options: + + * `Default *.kdbx file storage directory` + + * Opens the directory specified by the Default *.kdbx File Storage Directory setting by default. + * `Root Directory of SiYuan Note Workspace` + + * Opens the root directory of the SiYuan Note workspace by default. + +## Changelog + +[CHANGELOG.md](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/blob/main/CHANGELOG.md) diff --git a/README_zh_CN.md b/README_zh_CN.md new file mode 100644 index 0000000..3c6ffaa --- /dev/null +++ b/README_zh_CN.md @@ -0,0 +1,228 @@ +
+图标 + +--- +[![GitHub 最新发行版本 (最新一次发行/预发行)](https://img.shields.io/github/v/release/Zuoqiu-Yingyi/siyuan-plugin-keepass?include_prereleases&style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/releases/latest) +[![GitHub 最新发行时间](https://img.shields.io/github/release-date/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/releases/latest) +[![GitHub 许可证](https://img.shields.io/github/license/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/blob/main/LICENSE) +[![GitHub 最后一次提交时间](https://img.shields.io/github/last-commit/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/commits/main) +![GitHub 仓库大小](https://img.shields.io/github/repo-size/Zuoqiu-Yingyi/siyuan-plugin-keepass?style=flat-square) +![GitHub 代码大小](https://img.shields.io/github/languages/code-size/Zuoqiu-Yingyi/siyuan-plugin-keepass.svg?style=flat-square) +![查看次数](https://hits.b3log.org/Zuoqiu-Yingyi/siyuan-plugin-keepass.svg) + +[![GitHub 发行版本下载次数](https://img.shields.io/github/downloads/Zuoqiu-Yingyi/siyuan-plugin-keepass/total?style=flat-square)](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/releases) + +--- +简体中文 \| [English](./README.md) + +--- +
+ +# 思源 KeePass 密码管理器插件 + +这是一款在 [KeeWeb](https://github.com/keeweb/keeweb) 项目的基础上进行二次开发的[思源笔记](https://github.com/siyuan-note/siyuan)插件, 提供完全离线且完善的密码管理功能, 支持读写 3.x 与 4.x 版本的 [KeePass](https://keepass.info/) 数据库文件 `*.kdbx`, 并内置一个可以用于连接思源服务的 [KeeWeb](https://github.com/keeweb/keeweb) 插件。 + +## 预览 + +![预览图片](https://cdn.jsdelivr.net/gh/Zuoqiu-Yingyi/siyuan-plugin-keepass/public/preview.png) + +## 常见问题 + +* 本项目是否开源? + + * 本项目使用 [AGPL-3.0-or-later](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/blob/main/LICENSE) 协议完整开源, 有多个组成部分 + + * 项目 monorepo 仓库: [Zuoqiu-Yingyi/siyuan-packages-monorepo](https://github.com/Zuoqiu-Yingyi/siyuan-packages-monorepo) + + * 项目主仓库是 monorepo 的一部分, 主要开发活动位于 monorepo 仓库 + * 项目主仓库在 monorepo 仓库的路径: [siyuan-packages-monorepo/workspace/plugins/keepass](https://github.com/Zuoqiu-Yingyi/siyuan-packages-monorepo/tree/main/workspace/plugins/keepass) + * 项目主仓库: [Zuoqiu-Yingyi/siyuan-plugin-keepass](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass) + + * 本仓库包含两个插件 + * 思源笔记插件 (插件名称: `keepass`) + + * 在思源笔记中部署 KeeWeb 服务 + * 内置了所有 KeeWeb 官方市场提供的插件, 使得 KeeWeb 相关服务可以完全离线使用 + * 在多个浏览器之间同步 KeeWeb 用户配置信息 + * 其他实用的功能, 详情请参考 `功能介绍` 一节 + * KeeWeb 插件 (插件名称 `siyuan`) + + * 连接思源笔记服务 + * 读写在思源笔记工作空间目录下的 `*.kdbx` 数据库文件 + * 进行 KeeWeb 二次开发的分支仓库: [Zuoqiu-Yingyi/keeweb](https://github.com/Zuoqiu-Yingyi/keeweb) + + * 优化打包过程, 关闭构建时的压缩功能 + * 优化 CSP 签名策略 + * 添加对思源扩展的信任 + * 添加离线加载社区扩展插件功能 +* KeeWeb 页面中无法读取思源工作空间下的数据库 + + * 请检查插件设置中的思源服务 URL 与 Token 是否正确设置, 或者在思源内的页签中打开 KeeWeb 页面 +* 如何在其他 KeeWeb 应用中安装 KeeWeb 插件 `siyuan`? + + * KeeWeb 插件 `siyuan` 已经内置在思源插件 `keepass` 中, 可以使用如下地址安装 + + * `http(s)://<思源服务地址>/plugins/keepass/keeweb/plugins/siyuan` + * 或者从本项目的构建分支安装 + + * [https://raw.githubusercontent.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/publish/keeweb/plugins/siyuan](https://raw.githubusercontent.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/publish/keeweb/plugins/siyuan) + +## 介绍 + +### 思源笔记插件 `keepass` + +#### 功能介绍 + +* 内置 KeeWeb 应用 + + * 安装本插件后访问 `http(s)://<思源服务地址>/plugins/keepass/keeweb/app/` + * 可完全离线访问 + * 可完全离线加载 KeeWeb 社区插件 +* 同步 KeeWeb 的用户配置 + + * 仅支持同步内置 KeeWeb 应用的用户配置 +* `在新页签中打开 KeeWeb` + + * 功能调用方案 + + * 点击思源右上角工具栏按钮 `KeePass 密码管理器`→`在新页签中打开 KeeWeb` + * 使用命令 `KeePass 密码管理器: 在新页签中打开 KeeWeb` + * 设置自定义快捷键 +* `在浏览器中打开 KeeWeb` + + * 功能调用方案 + + * 点击思源右上角工具栏按钮 `KeePass 密码管理器`→`在浏览器中打开 KeeWeb` + * 使用命令 `KeePass 密码管理器: 在浏览器中打开 KeeWeb` + * 设置自定义快捷键 +* `在新窗口中打开 KeeWeb` + + * 功能调用方案 + + * 点击思源右上角工具栏按钮 `KeePass 密码管理器`→`在新窗口中打开 KeeWeb` + * 使用命令 `KeePass 密码管理器: 在新窗口中打开 KeeWeb` + * 设置自定义快捷键 + + * 该快捷键为在桌面端思源笔记中为全局快捷键 + +#### 设置项介绍 + +* `常规设置` + + * `重置设置选项` + + * 这是一个按钮 + * 重置本插件所有设置选项为默认选项 + * 重置后将刷新页面 + * `删除 KeeWeb 用户配置` + + * 这是一个按钮 + * 刪除所有 KeeWeb 用户配置 + * 若 KeeWeb 应用无法正常加载, 可使用该按钮初始化 KeeWeb 应用 +* `KeeWeb 设置` + + * `插件设置` + + * `KeeWeb 插件:siyuan` + + * 这是一个开关 + * 默认状态: `开启` + * 开启后将在内置的 KeeWeb 应用中安装 `siyuan` 插件 + * 关闭后将在内置的 KeeWeb 应用中卸载 `siyuan` 插件 + * 更改后需要刷新 KeeWeb 应用页面才能生效 + * 在 KeeWeb 应用中安装/卸载 `siyuan` 插件后会同步更新本开关的状态 + * `窗口设置` + + * `窗口宽度` + + * 这是一个数字输入框 + * 默认值: `800` + * 单位: 像素 `px` + * 设置 `在新窗口中打开 KeeWeb` 功能打开窗口的初始宽度 + * `窗口高度` + + * 这是一个数字输入框 + * 默认值: `600` + * 单位: 像素 `px` + * 设置 `在新窗口中打开 KeeWeb` 功能打开窗口的初始高度 + * `窗口居中` + + * 这是一个开关 + * 默认值: `关闭` + * 设置 `在新窗口中打开 KeeWeb` 功能打开的新窗口的位置 + + * 开启后在屏幕中间显示新窗口 + * 关闭后在当前鼠标位置显示新窗口 + * `窗口置顶` + + * 这是一个开关 + * 默认值: `开启` + * 设置 `在新窗口中打开 KeeWeb` 功能打开的新窗口是否默认置顶显示 + + * 开启后新窗口默认置顶显示 + * 关闭后新窗口默认不置顶 + * 窗口置顶功能仅在桌面端中生效 + + * 桌面端打开的新窗口可使用快捷键 Ctrl + Shift + 空格 或窗口工具栏菜单项 ViewToggle On Top 切换置顶状态 + +### KeeWeb 插件 `siyuan` + +#### 功能介绍 + +* 在 KeeWeb 主界面添加 思源笔记 按钮 + + * 可从思源工作空间目录下选择并加载 KeePass 数据库文件 `*.kdbx` + * 文件选择器的初始目录受插件设置项 `默认的文件打开目录` 影响 + + * 默认的初始目录为 `/data/storage/petal/keepass/` +* 保存 KeePass 数据库文件 `*.kdbx` 到思源笔记工作空间 + + * 从思源工作空间打开的 KeePass 数据库文件 `*.kdbx` 会保存至原位置 + * 新建的 KeePass 数据库文件 `*.kdbx` 会保存在设置项 `默认 *.kdbx 文件存放目录` 指定的目录 + + * 默认保存在 `/data/storage/petal/keepass/` 目录下 + +#### 设置项介绍 + +* `思源服务 URL 地址` + + * 这是一个文本输入框 + * 默认为空 + * 设置想要连接的思源笔记服务的 URL + + * 为空时连接至当前思源笔记服务 + * 可以连接其他的思源笔记服务 +* `思源服务 Token` + + * 这是一个文本输入框 + * 默认为空 + * 设置想要连接的思源笔记服务的 Token + + * 连接至当前思源笔记服务时可为空 + + * 需要通过当前思源笔记的登录认证 + * 连接至其他的思源笔记服务时需要设置对应的 Token +* `默认 *.kdbx 文件存放目录` + + * 这是一个文本输入框 + * 默认为 `/data/storage/petal/keepass/` + * 指定新建的 KeePass 数据库文件 `*.kdbx` 的存放目录 + + * 该路径的根目录为思源笔记的工作空间目录 +* `默认的文件打开目录` + + * 这是一个下拉选项框 + * 默认为 `默认 *.kdbx 文件存放目录` + * 设置 KeeWeb 主界面中 `思源笔记` 按钮打开的文件选择器的默认目录 + * 选项列表 + + * `默认 *.kdbx 文件存放目录` + + * 默认打开 默认 *.kdbx 文件存放目录 设置项指定的目录 + * `思源笔记工作空间的根目录` + + * 默认打开思源笔记工作空间的根目录 + +## 更改日志 + +[CHANGELOG.md](https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/blob/main/CHANGELOG.md) diff --git a/i18n/en_US.json b/i18n/en_US.json new file mode 100644 index 0000000..0d377ef --- /dev/null +++ b/i18n/en_US.json @@ -0,0 +1,59 @@ +{ + "menu": { + "command": { + "openKeeWebBrowser": { + "text": "Open KeeWeb in Browser" + }, + "openKeeWebTab": { + "text": "Open KeeWeb in New Tab" + }, + "openKeeWebWindow": { + "text": "Open KeeWeb in New Window" + } + } + }, + "settings": { + "generalSettings": { + "reset": { + "description": "Reset all settings options of this plugin to default (page will refresh after reset)", + "text": "Reset", + "title": "Reset Settings" + }, + "deleteKeeWebConfig": { + "description": "Delete all KeeWeb user configurations (initialize KeeWeb app)", + "text": "Deletem", + "title": "Delete KeeWeb User Configuration" + }, + "title": "General Settings" + }, + "keewebSettings": { + "pluginTab": { + "siyuan": { + "description": "Enable the SiYuan Note plugin for KeeWeb
- Load password database file *.kdbx from SiYuan workspace
- Save password database file *.kdbx to SiYuan workspace
- Synchronize KeeWeb user configuration", + "title": "KeeWeb Plugin: siyuan" + }, + "title": "Plugins" + }, + "title": "KeeWeb Settings", + "windowTab": { + "center": { + "description": "Display new windows in the center of the screen", + "title": "Window Center" + }, + "height": { + "description": "Default height of new windows", + "title": "Window Height" + }, + "title": "Window", + "top": { + "description": "Whether new windows opened are set to be always on top by default", + "title": "Window Always-on-Top" + }, + "width": { + "description": "Default width of new windows", + "title": "Window Width" + } + } + } + } +} diff --git a/i18n/zh_CHT.json b/i18n/zh_CHT.json new file mode 100644 index 0000000..b34c448 --- /dev/null +++ b/i18n/zh_CHT.json @@ -0,0 +1,59 @@ +{ + "menu": { + "command": { + "openKeeWebBrowser": { + "text": "在瀏覽器中打開 KeeWeb" + }, + "openKeeWebTab": { + "text": "在新頁籤中打開 KeeWeb" + }, + "openKeeWebWindow": { + "text": "在新窗口中打開 KeeWeb" + } + } + }, + "settings": { + "generalSettings": { + "reset": { + "description": "重置本插件所有設置選項為默認選項(重置後將刷新頁面)", + "text": "重置", + "title": "重置設置選項" + }, + "deleteKeeWebConfig": { + "description": "刪除所有 KeeWeb 用戶配置(初始化 KeeWeb 應用)", + "text": "刪除", + "title": "刪除 KeeWeb 用戶配置" + }, + "title": "常規設置" + }, + "keewebSettings": { + "pluginTab": { + "siyuan": { + "description": "開啟 KeeWeb 的思源筆記支持
- 從思源筆記工作空間加載密碼數據庫文件 *.kdbx
- 保存密碼數據庫文件 *.kdbx 至思源筆記工作空間
- 同步 KeeWeb 用戶配置", + "title": "KeeWeb 插件:siyuan" + }, + "title": "插件設置" + }, + "title": "KeeWeb 設置", + "windowTab": { + "center": { + "description": "在屏幕中央顯示新窗口", + "title": "窗口居中" + }, + "height": { + "description": "新窗口的默認高度", + "title": "窗口高度" + }, + "title": "窗口設置", + "top": { + "description": "打開的新窗口是否默認置頂", + "title": "窗口置頂" + }, + "width": { + "description": "新窗口的默認寬度", + "title": "窗口寬度" + } + } + } + } +} diff --git a/i18n/zh_CN.json b/i18n/zh_CN.json new file mode 100644 index 0000000..150479b --- /dev/null +++ b/i18n/zh_CN.json @@ -0,0 +1,59 @@ +{ + "menu": { + "command": { + "openKeeWebBrowser": { + "text": "在浏览器中打开 KeeWeb" + }, + "openKeeWebTab": { + "text": "在新页签中打开 KeeWeb" + }, + "openKeeWebWindow": { + "text": "在新窗口中打开 KeeWeb" + } + } + }, + "settings": { + "generalSettings": { + "reset": { + "description": "重置本插件所有设置选项为默认选项(重置后将刷新页面)", + "text": "重置", + "title": "重置设置选项" + }, + "deleteKeeWebConfig": { + "description": "刪除所有 KeeWeb 用户配置(初始化 KeeWeb 应用)", + "text": "删除", + "title": "删除 KeeWeb 用户配置" + }, + "title": "常规设置" + }, + "keewebSettings": { + "pluginTab": { + "siyuan": { + "description": "开启 KeeWeb 的思源笔记支持
- 从思源笔记工作空间加载密码数据库文件 *.kdbx
- 保存密码数据库文件 *.kdbx 至思源笔记工作空间
- 同步 KeeWeb 用户配置", + "title": "KeeWeb 插件:siyuan" + }, + "title": "插件设置" + }, + "title": "KeeWeb 设置", + "windowTab": { + "center": { + "description": "在屏幕中央显示新窗口", + "title": "窗口居中" + }, + "height": { + "description": "新窗口的默认高度", + "title": "窗口高度" + }, + "title": "窗口设置", + "top": { + "description": "打开的新窗口是否默认置顶", + "title": "窗口置顶" + }, + "width": { + "description": "新窗口的默认宽度", + "title": "窗口宽度" + } + } + } + } +} diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..589634e Binary files /dev/null and b/icon.png differ diff --git a/index.css b/index.css new file mode 100644 index 0000000..5cbc30e --- /dev/null +++ b/index.css @@ -0,0 +1 @@ +.b3-list-item__text.svelte-15drd7h{margin-right:.5em}.visible.svelte-2m76cy{overflow:visible}.fn__block.b3-switch.svelte-edt8og{overflow:visible;padding-left:1em}.fn__block.b3-slider.svelte-edt8og{padding:0}.iframe.svelte-2g72x8{border:0} diff --git a/index.js b/index.js new file mode 100644 index 0000000..d78da28 --- /dev/null +++ b/index.js @@ -0,0 +1,14 @@ +"use strict";var Xo=Object.defineProperty;var Qo=(t,e,n)=>e in t?Xo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var B=(t,e,n)=>(Qo(t,typeof e!="symbol"?e+"":e,n),n);const ge=require("siyuan"),Zo="keepass",xo="Zuoqiu Yingyi",$o="https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass",es="0.2.1",ts="2.10.3",ns=["all"],os=["all"],ss={default:"KeePass Password Manager",zh_CN:"KeePass 密码管理器",zh_CHT:"KeePass 密碼管理器"},rs={default:"A password manager based on KeeWeb, compatibling with KeePass 3.x and 4.x databases *.kdbx",zh_CN:"基于 KeeWeb 的密码管理器,兼容 KeePass 3.x 与 4.x 数据库 *.kdbx",zh_CHT:"基於 KeeWeb 的密碼管理器,兼容 KeePass 3.x 與 4.x 數據庫 *.kdbx"},is={default:"README.md",zh_CN:"README_zh_CN.md",zh_CHT:"README_zh_CN.md"},as={openCollective:"",patreon:"",github:"",custom:["https://afdian.net/a/zuoqiu","https://ko-fi.com/zuoqiu"]},ls={name:Zo,author:xo,url:$o,version:es,minAppVersion:ts,backends:ns,frontends:os,displayName:ss,description:rs,readme:is,funding:as},cs=(t,e)=>e.some(n=>t instanceof n);let Qt,Zt;function us(){return Qt||(Qt=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function fs(){return Zt||(Zt=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const uo=new WeakMap,Et=new WeakMap,fo=new WeakMap,ut=new WeakMap,jt=new WeakMap;function hs(t){const e=new Promise((n,o)=>{const s=()=>{t.removeEventListener("success",r),t.removeEventListener("error",i)},r=()=>{n(_e(t.result)),s()},i=()=>{o(t.error),s()};t.addEventListener("success",r),t.addEventListener("error",i)});return e.then(n=>{n instanceof IDBCursor&&uo.set(n,t)}).catch(()=>{}),jt.set(e,t),e}function ds(t){if(Et.has(t))return;const e=new Promise((n,o)=>{const s=()=>{t.removeEventListener("complete",r),t.removeEventListener("error",i),t.removeEventListener("abort",i)},r=()=>{n(),s()},i=()=>{o(t.error||new DOMException("AbortError","AbortError")),s()};t.addEventListener("complete",r),t.addEventListener("error",i),t.addEventListener("abort",i)});Et.set(t,e)}let Tt={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Et.get(t);if(e==="objectStoreNames")return t.objectStoreNames||fo.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return _e(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function ps(t){Tt=t(Tt)}function ms(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const o=t.call(ft(this),e,...n);return fo.set(o,e.sort?e.sort():[e]),_e(o)}:fs().includes(t)?function(...e){return t.apply(ft(this),e),_e(uo.get(this))}:function(...e){return _e(t.apply(ft(this),e))}}function gs(t){return typeof t=="function"?ms(t):(t instanceof IDBTransaction&&ds(t),cs(t,us())?new Proxy(t,Tt):t)}function _e(t){if(t instanceof IDBRequest)return hs(t);if(ut.has(t))return ut.get(t);const e=gs(t);return e!==t&&(ut.set(t,e),jt.set(e,t)),e}const ft=t=>jt.get(t);function xt(t,e,{blocked:n,upgrade:o,blocking:s,terminated:r}={}){const i=indexedDB.open(t,e),a=_e(i);return o&&i.addEventListener("upgradeneeded",l=>{o(_e(i.result),l.oldVersion,l.newVersion,_e(i.transaction),l)}),n&&i.addEventListener("blocked",l=>n(l.oldVersion,l.newVersion,l)),a.then(l=>{r&&l.addEventListener("close",()=>r()),s&&l.addEventListener("versionchange",u=>s(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}const bs=["get","getKey","getAll","getAllKeys","count"],_s=["put","add","delete","clear"],ht=new Map;function $t(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(ht.get(e))return ht.get(e);const n=e.replace(/FromIndex$/,""),o=e!==n,s=_s.includes(n);if(!(n in(o?IDBIndex:IDBObjectStore).prototype)||!(s||bs.includes(n)))return;const r=async function(i,...a){const l=this.transaction(i,s?"readwrite":"readonly");let u=l.store;return o&&(u=u.index(a.shift())),(await Promise.all([u[n](...a),s&&l.done]))[0]};return ht.set(e,r),r}ps(t=>({...t,get:(e,n,o)=>$t(e,n)||t.get(e,n,o),has:(e,n)=>!!$t(e,n)||t.has(e,n)}));var ys=Object.defineProperty,ws=(t,e,n)=>e in t?ys(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,he=(t,e,n)=>(ws(t,typeof e!="symbol"?e+"":e,n),n);const ks=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Ss=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Es=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Ts(t,e){if(t==="__proto__"||t==="constructor"&&e&&typeof e=="object"&&"prototype"in e){vs(t);return}return e}function vs(t){console.warn(`[destr] Dropping "${t}" key to prevent prototype pollution.`)}function As(t,e={}){if(typeof t!="string")return t;const n=t.trim();if(t[0]==='"'&&t.at(-1)==='"'&&!t.includes("\\"))return n.slice(1,-1);if(n.length<=9){const o=n.toLowerCase();if(o==="true")return!0;if(o==="false")return!1;if(o==="undefined")return;if(o==="null")return null;if(o==="nan")return Number.NaN;if(o==="infinity")return Number.POSITIVE_INFINITY;if(o==="-infinity")return Number.NEGATIVE_INFINITY}if(!Es.test(t)){if(e.strict)throw new SyntaxError("[destr] Invalid JSON");return t}try{if(ks.test(t)||Ss.test(t)){if(e.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(t,Ts)}return JSON.parse(t)}catch(o){if(e.strict)throw o;return t}}const Os=/#/g,Ps=/&/g,Cs=/=/g,Ft=/\+/g,Bs=/%5e/gi,Ls=/%60/gi,Ds=/%7c/gi,Is=/%20/gi;function Ns(t){return encodeURI(""+t).replace(Ds,"|")}function vt(t){return Ns(typeof t=="string"?t:JSON.stringify(t)).replace(Ft,"%2B").replace(Is,"+").replace(Os,"%23").replace(Ps,"%26").replace(Ls,"`").replace(Bs,"^")}function dt(t){return vt(t).replace(Cs,"%3D")}function ho(t=""){try{return decodeURIComponent(""+t)}catch{return""+t}}function Rs(t){return ho(t.replace(Ft," "))}function Ms(t){return ho(t.replace(Ft," "))}function js(t=""){const e={};t[0]==="?"&&(t=t.slice(1));for(const n of t.split("&")){const o=n.match(/([^=]+)=?(.*)/)||[];if(o.length<2)continue;const s=Rs(o[1]);if(s==="__proto__"||s==="constructor")continue;const r=Ms(o[2]||"");e[s]===void 0?e[s]=r:Array.isArray(e[s])?e[s].push(r):e[s]=[e[s],r]}return e}function Fs(t,e){return(typeof e=="number"||typeof e=="boolean")&&(e=String(e)),e?Array.isArray(e)?e.map(n=>`${dt(t)}=${vt(n)}`).join("&"):`${dt(t)}=${vt(e)}`:dt(t)}function Us(t){return Object.keys(t).filter(e=>t[e]!==void 0).map(e=>Fs(e,t[e])).filter(Boolean).join("&")}const qs=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Ws=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,Ks=/^([/\\]\s*){2,}[^/\\]/;function po(t,e={}){return typeof e=="boolean"&&(e={acceptRelative:e}),e.strict?qs.test(t):Ws.test(t)||(e.acceptRelative?Ks.test(t):!1)}const Hs=/\/$|\/\?|\/#/;function At(t="",e){return e?Hs.test(t):t.endsWith("/")}function zs(t="",e){if(!e)return(At(t)?t.slice(0,-1):t)||"/";if(!At(t,!0))return t||"/";let n=t,o="";const s=t.indexOf("#");s>=0&&(n=t.slice(0,s),o=t.slice(s));const[r,...i]=n.split("?");return(r.slice(0,-1)||"/")+(i.length>0?`?${i.join("?")}`:"")+o}function Gs(t="",e){if(!e)return t.endsWith("/")?t:t+"/";if(At(t,!0))return t||"/";let n=t,o="";const s=t.indexOf("#");if(s>=0&&(n=t.slice(0,s),o=t.slice(s),!n))return o;const[r,...i]=n.split("?");return r+"/"+(i.length>0?`?${i.join("?")}`:"")+o}function Vs(t,e){if(Ys(e)||po(t))return t;const n=zs(e);return t.startsWith(n)?t:Zs(n,t)}function Js(t,e){const n=mo(t),o={...js(n.search),...e};return n.search=Us(o),xs(n)}function Ys(t){return!t||t==="/"}function Xs(t){return t&&t!=="/"}const Qs=/^\.?\//;function Zs(t,...e){let n=t||"";for(const o of e.filter(s=>Xs(s)))if(n){const s=o.replace(Qs,"");n=Gs(n)+s}else n=o;return n}function mo(t="",e){const n=t.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,f,g=""]=n;return{protocol:f.toLowerCase(),pathname:g,href:f+g,auth:"",host:"",search:"",hash:""}}if(!po(t,{acceptRelative:!0}))return e?mo(e+t):en(t);const[,o="",s,r=""]=t.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,i="",a=""]=r.match(/([^#/?]*)(.*)?/)||[],{pathname:l,search:u,hash:c}=en(a.replace(/\/(?=[A-Za-z]:)/,""));return{protocol:o.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:l,search:u,hash:c}}function en(t=""){const[e="",n="",o=""]=(t.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:e,search:n,hash:o}}function xs(t){const e=t.pathname||"",n=t.search?(t.search.startsWith("?")?"":"?")+t.search:"",o=t.hash||"",s=t.auth?t.auth+"@":"",r=t.host||"";return(t.protocol?t.protocol+"//":"")+s+r+e+n+o}class $s extends Error{constructor(e,n){super(e,n),this.name="FetchError",n!=null&&n.cause&&!this.cause&&(this.cause=n.cause)}}function er(t){var e,n,o,s,r;const i=((e=t.error)==null?void 0:e.message)||((n=t.error)==null?void 0:n.toString())||"",a=((o=t.request)==null?void 0:o.method)||((s=t.options)==null?void 0:s.method)||"GET",l=((r=t.request)==null?void 0:r.url)||String(t.request)||"/",u=`[${a}] ${JSON.stringify(l)}`,c=t.response?`${t.response.status} ${t.response.statusText}`:"",f=`${u}: ${c}${i?` ${i}`:""}`,g=new $s(f,t.error?{cause:t.error}:void 0);for(const d of["request","options","response"])Object.defineProperty(g,d,{get(){return t[d]}});for(const[d,h]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(g,d,{get(){return t.response&&t.response[h]}});return g}const tr=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function tn(t="GET"){return tr.has(t.toUpperCase())}function nr(t){if(t===void 0)return!1;const e=typeof t;return e==="string"||e==="number"||e==="boolean"||e===null?!0:e!=="object"?!1:Array.isArray(t)?!0:t.buffer?!1:t.constructor&&t.constructor.name==="Object"||typeof t.toJSON=="function"}const or=new Set(["image/svg","application/xml","application/xhtml","application/html"]),sr=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function rr(t=""){if(!t)return"json";const e=t.split(";").shift()||"";return sr.test(e)?"json":or.has(e)||e.startsWith("text/")?"text":"blob"}function ir(t,e,n=globalThis.Headers){const o={...e,...t};if(e!=null&&e.params&&t!=null&&t.params&&(o.params={...e==null?void 0:e.params,...t==null?void 0:t.params}),e!=null&&e.query&&t!=null&&t.query&&(o.query={...e==null?void 0:e.query,...t==null?void 0:t.query}),e!=null&&e.headers&&t!=null&&t.headers){o.headers=new n((e==null?void 0:e.headers)||{});for(const[s,r]of new n((t==null?void 0:t.headers)||{}))o.headers.set(s,r)}return o}const ar=new Set([408,409,425,429,500,502,503,504]),lr=new Set([101,204,205,304]);function go(t={}){const{fetch:e=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:o=globalThis.AbortController}=t;async function s(a){const l=a.error&&a.error.name==="AbortError"&&!a.options.timeout||!1;if(a.options.retry!==!1&&!l){let c;typeof a.options.retry=="number"?c=a.options.retry:c=tn(a.options.method)?0:1;const f=a.response&&a.response.status||500;if(c>0&&(Array.isArray(a.options.retryStatusCodes)?a.options.retryStatusCodes.includes(f):ar.has(f))){const g=a.options.retryDelay||0;return g>0&&await new Promise(d=>setTimeout(d,g)),r(a.request,{...a.options,retry:c-1,timeout:a.options.timeout})}}const u=er(a);throw Error.captureStackTrace&&Error.captureStackTrace(u,r),u}const r=async function(a,l={}){var u;const c={request:a,options:ir(l,t.defaults,n),response:void 0,error:void 0};if(c.options.method=(u=c.options.method)==null?void 0:u.toUpperCase(),c.options.onRequest&&await c.options.onRequest(c),typeof c.request=="string"&&(c.options.baseURL&&(c.request=Vs(c.request,c.options.baseURL)),(c.options.query||c.options.params)&&(c.request=Js(c.request,{...c.options.params,...c.options.query}))),c.options.body&&tn(c.options.method)&&(nr(c.options.body)?(c.options.body=typeof c.options.body=="string"?c.options.body:JSON.stringify(c.options.body),c.options.headers=new n(c.options.headers||{}),c.options.headers.has("content-type")||c.options.headers.set("content-type","application/json"),c.options.headers.has("accept")||c.options.headers.set("accept","application/json")):("pipeTo"in c.options.body&&typeof c.options.body.pipeTo=="function"||typeof c.options.body.pipe=="function")&&("duplex"in c.options||(c.options.duplex="half"))),!c.options.signal&&c.options.timeout){const f=new o;setTimeout(()=>f.abort(),c.options.timeout),c.options.signal=f.signal}try{c.response=await e(c.request,c.options)}catch(f){return c.error=f,c.options.onRequestError&&await c.options.onRequestError(c),await s(c)}if(c.response.body&&!lr.has(c.response.status)&&c.options.method!=="HEAD"){const f=(c.options.parseResponse?"json":c.options.responseType)||rr(c.response.headers.get("content-type")||"");switch(f){case"json":{const g=await c.response.text(),d=c.options.parseResponse||As;c.response._data=d(g);break}case"stream":{c.response._data=c.response.body;break}default:c.response._data=await c.response[f]()}}return c.options.onResponse&&await c.options.onResponse(c),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await c.options.onResponseError(c),await s(c)):c.response},i=async function(a,l){return(await r(a,l))._data};return i.raw=r,i.native=(...a)=>e(...a),i.create=(a={})=>go({...t,defaults:{...t.defaults,...a}}),i}const Ut=function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")}(),cr=Ut.fetch||(()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!"))),ur=Ut.Headers,fr=Ut.AbortController,hr=go({fetch:cr,Headers:ur,AbortController:fr});class dr extends Error{constructor(e){super(e.statusText),he(this,"status"),this.response=e,this.status=e.status}}class nn extends Error{constructor(e,n){super(e.msg),he(this,"code"),this.body=e,this.response=n,this.code=e.code}}function ae(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function on(t,e){for(var n="",o=0,s=-1,r=0,i,a=0;a<=t.length;++a){if(a2){var l=n.lastIndexOf("/");if(l!==n.length-1){l===-1?(n="",o=0):(n=n.slice(0,l),o=n.length-1-n.lastIndexOf("/")),s=a,r=0;continue}}else if(n.length===2||n.length===1){n="",o=0,s=a,r=0;continue}}e&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+t.slice(s+1,a):n=t.slice(s+1,a),o=a-s-1;s=a,r=0}else i===46&&r!==-1?++r:r=-1}return n}function pr(t,e){var n=e.dir||e.root,o=e.base||(e.name||"")+(e.ext||"");return n?n===e.root?n+o:n+t+o:o}var Me={resolve:function(){for(var t="",e=!1,n,o=arguments.length-1;o>=-1&&!e;o--){var s;o>=0?s=arguments[o]:(n===void 0&&(n=process.cwd()),s=n),ae(s),s.length!==0&&(t=s+"/"+t,e=s.charCodeAt(0)===47)}return t=on(t,!e),e?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(t){if(ae(t),t.length===0)return".";var e=t.charCodeAt(0)===47,n=t.charCodeAt(t.length-1)===47;return t=on(t,!e),t.length===0&&!e&&(t="."),t.length>0&&n&&(t+="/"),e?"/"+t:t},isAbsolute:function(t){return ae(t),t.length>0&&t.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var t,e=0;e0&&(t===void 0?t=n:t+="/"+n)}return t===void 0?".":Me.normalize(t)},relative:function(t,e){if(ae(t),ae(e),t===e||(t=Me.resolve(t),e=Me.resolve(e),t===e))return"";for(var n=1;nl){if(e.charCodeAt(r+c)===47)return e.slice(r+c+1);if(c===0)return e.slice(r+c)}else s>l&&(t.charCodeAt(n+c)===47?u=c:c===0&&(u=0));break}var f=t.charCodeAt(n+c),g=e.charCodeAt(r+c);if(f!==g)break;f===47&&(u=c)}var d="";for(c=n+u+1;c<=o;++c)(c===o||t.charCodeAt(c)===47)&&(d.length===0?d+="..":d+="/..");return d.length>0?d+e.slice(r+u):(r+=u,e.charCodeAt(r)===47&&++r,e.slice(r))},_makeLong:function(t){return t},dirname:function(t){if(ae(t),t.length===0)return".";for(var e=t.charCodeAt(0),n=e===47,o=-1,s=!0,r=t.length-1;r>=1;--r)if(e=t.charCodeAt(r),e===47){if(!s){o=r;break}}else s=!1;return o===-1?n?"/":".":n&&o===1?"//":t.slice(0,o)},basename:function(t,e){if(e!==void 0&&typeof e!="string")throw new TypeError('"ext" argument must be a string');ae(t);var n=0,o=-1,s=!0,r;if(e!==void 0&&e.length>0&&e.length<=t.length){if(e.length===t.length&&e===t)return"";var i=e.length-1,a=-1;for(r=t.length-1;r>=0;--r){var l=t.charCodeAt(r);if(l===47){if(!s){n=r+1;break}}else a===-1&&(s=!1,a=r+1),i>=0&&(l===e.charCodeAt(i)?--i===-1&&(o=r):(i=-1,o=a))}return n===o?o=a:o===-1&&(o=t.length),t.slice(n,o)}else{for(r=t.length-1;r>=0;--r)if(t.charCodeAt(r)===47){if(!s){n=r+1;break}}else o===-1&&(s=!1,o=r+1);return o===-1?"":t.slice(n,o)}},extname:function(t){ae(t);for(var e=-1,n=0,o=-1,s=!0,r=0,i=t.length-1;i>=0;--i){var a=t.charCodeAt(i);if(a===47){if(!s){n=i+1;break}continue}o===-1&&(s=!1,o=i+1),a===46?e===-1?e=i:r!==1&&(r=1):e!==-1&&(r=-1)}return e===-1||o===-1||r===0||r===1&&e===o-1&&e===n+1?"":t.slice(e,o)},format:function(t){if(t===null||typeof t!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return pr("/",t)},parse:function(t){ae(t);var e={root:"",dir:"",base:"",ext:"",name:""};if(t.length===0)return e;var n=t.charCodeAt(0),o=n===47,s;o?(e.root="/",s=1):s=0;for(var r=-1,i=0,a=-1,l=!0,u=t.length-1,c=0;u>=s;--u){if(n=t.charCodeAt(u),n===47){if(!l){i=u+1;break}continue}a===-1&&(l=!1,a=u+1),n===46?r===-1?r=u:c!==1&&(c=1):r!==-1&&(c=-1)}return r===-1||a===-1||c===0||c===1&&r===a-1&&r===i+1?a!==-1&&(i===0&&o?e.base=e.name=t.slice(1,a):e.base=e.name=t.slice(i,a)):(i===0&&o?(e.name=t.slice(1,r),e.base=t.slice(1,a)):(e.name=t.slice(i,r),e.base=t.slice(i,a)),e.ext=t.slice(r,a)),i>0?e.dir=t.slice(0,i-1):o&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};Me.posix=Me;function bo(t,e){return function(){return t.apply(e,arguments)}}const{toString:mr}=Object.prototype,{getPrototypeOf:qt}=Object,tt=(t=>e=>{const n=mr.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),fe=t=>(t=t.toLowerCase(),e=>tt(e)===t),nt=t=>e=>typeof e===t,{isArray:De}=Array,Fe=nt("undefined");function gr(t){return t!==null&&!Fe(t)&&t.constructor!==null&&!Fe(t.constructor)&&oe(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const _o=fe("ArrayBuffer");function br(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&_o(t.buffer),e}const _r=nt("string"),oe=nt("function"),yo=nt("number"),ot=t=>t!==null&&typeof t=="object",yr=t=>t===!0||t===!1,Ye=t=>{if(tt(t)!=="object")return!1;const e=qt(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},wr=fe("Date"),kr=fe("File"),Sr=fe("Blob"),Er=fe("FileList"),Tr=t=>ot(t)&&oe(t.pipe),vr=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||oe(t.append)&&((e=tt(t))==="formdata"||e==="object"&&oe(t.toString)&&t.toString()==="[object FormData]"))},Ar=fe("URLSearchParams"),Or=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function We(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let o,s;if(typeof t!="object"&&(t=[t]),De(t))for(o=0,s=t.length;o0;)if(s=n[o],e===s.toLowerCase())return s;return null}const ko=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),So=t=>!Fe(t)&&t!==ko;function Ot(){const{caseless:t}=So(this)&&this||{},e={},n=(o,s)=>{const r=t&&wo(e,s)||s;Ye(e[r])&&Ye(o)?e[r]=Ot(e[r],o):Ye(o)?e[r]=Ot({},o):De(o)?e[r]=o.slice():e[r]=o};for(let o=0,s=arguments.length;o(We(e,(s,r)=>{n&&oe(s)?t[r]=bo(s,n):t[r]=s},{allOwnKeys:o}),t),Cr=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Br=(t,e,n,o)=>{t.prototype=Object.create(e.prototype,o),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},Lr=(t,e,n,o)=>{let s,r,i;const a={};if(e=e||{},t==null)return e;do{for(s=Object.getOwnPropertyNames(t),r=s.length;r-- >0;)i=s[r],(!o||o(i,t,e))&&!a[i]&&(e[i]=t[i],a[i]=!0);t=n!==!1&&qt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Dr=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const o=t.indexOf(e,n);return o!==-1&&o===n},Ir=t=>{if(!t)return null;if(De(t))return t;let e=t.length;if(!yo(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},Nr=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&qt(Uint8Array)),Rr=(t,e)=>{const n=(t&&t[Symbol.iterator]).call(t);let o;for(;(o=n.next())&&!o.done;){const s=o.value;e.call(t,s[0],s[1])}},Mr=(t,e)=>{let n;const o=[];for(;(n=t.exec(e))!==null;)o.push(n);return o},jr=fe("HTMLFormElement"),Fr=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,o){return n.toUpperCase()+o}),sn=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),Ur=fe("RegExp"),Eo=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),o={};We(n,(s,r)=>{let i;(i=e(s,r,t))!==!1&&(o[r]=i||s)}),Object.defineProperties(t,o)},qr=t=>{Eo(t,(e,n)=>{if(oe(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const o=t[n];if(oe(o)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Wr=(t,e)=>{const n={},o=s=>{s.forEach(r=>{n[r]=!0})};return De(t)?o(t):o(String(t).split(e)),n},Kr=()=>{},Hr=(t,e)=>(t=+t,Number.isFinite(t)?t:e),pt="abcdefghijklmnopqrstuvwxyz",rn="0123456789",To={DIGIT:rn,ALPHA:pt,ALPHA_DIGIT:pt+pt.toUpperCase()+rn},zr=(t=16,e=To.ALPHA_DIGIT)=>{let n="";const{length:o}=e;for(;t--;)n+=e[Math.random()*o|0];return n};function Gr(t){return!!(t&&oe(t.append)&&t[Symbol.toStringTag]==="FormData"&&t[Symbol.iterator])}const Vr=t=>{const e=new Array(10),n=(o,s)=>{if(ot(o)){if(e.indexOf(o)>=0)return;if(!("toJSON"in o)){e[s]=o;const r=De(o)?[]:{};return We(o,(i,a)=>{const l=n(i,s+1);!Fe(l)&&(r[a]=l)}),e[s]=void 0,r}}return o};return n(t,0)},Jr=fe("AsyncFunction"),Yr=t=>t&&(ot(t)||oe(t))&&oe(t.then)&&oe(t.catch),_={isArray:De,isArrayBuffer:_o,isBuffer:gr,isFormData:vr,isArrayBufferView:br,isString:_r,isNumber:yo,isBoolean:yr,isObject:ot,isPlainObject:Ye,isUndefined:Fe,isDate:wr,isFile:kr,isBlob:Sr,isRegExp:Ur,isFunction:oe,isStream:Tr,isURLSearchParams:Ar,isTypedArray:Nr,isFileList:Er,forEach:We,merge:Ot,extend:Pr,trim:Or,stripBOM:Cr,inherits:Br,toFlatObject:Lr,kindOf:tt,kindOfTest:fe,endsWith:Dr,toArray:Ir,forEachEntry:Rr,matchAll:Mr,isHTMLForm:jr,hasOwnProperty:sn,hasOwnProp:sn,reduceDescriptors:Eo,freezeMethods:qr,toObjectSet:Wr,toCamelCase:Fr,noop:Kr,toFiniteNumber:Hr,findKey:wo,global:ko,isContextDefined:So,ALPHABET:To,generateString:zr,isSpecCompliantForm:Gr,toJSONObject:Vr,isAsyncFn:Jr,isThenable:Yr};function D(t,e,n,o,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),o&&(this.request=o),s&&(this.response=s)}_.inherits(D,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:_.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const vo=D.prototype,Ao={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{Ao[t]={value:t}});Object.defineProperties(D,Ao);Object.defineProperty(vo,"isAxiosError",{value:!0});D.from=(t,e,n,o,s,r)=>{const i=Object.create(vo);return _.toFlatObject(t,i,function(a){return a!==Error.prototype},a=>a!=="isAxiosError"),D.call(i,t.message,e,n,o,s),i.cause=t,i.name=t.name,r&&Object.assign(i,r),i};const Xr=null;function Pt(t){return _.isPlainObject(t)||_.isArray(t)}function Oo(t){return _.endsWith(t,"[]")?t.slice(0,-2):t}function an(t,e,n){return t?t.concat(e).map(function(o,s){return o=Oo(o),!n&&s?"["+o+"]":o}).join(n?".":""):e}function Qr(t){return _.isArray(t)&&!t.some(Pt)}const Zr=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function st(t,e,n){if(!_.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(d,h){return!_.isUndefined(h[d])});const o=n.metaTokens,s=n.visitor||u,r=n.dots,i=n.indexes,a=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(e);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function l(d){if(d===null)return"";if(_.isDate(d))return d.toISOString();if(!a&&_.isBlob(d))throw new D("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(d)||_.isTypedArray(d)?a&&typeof Blob=="function"?new Blob([d]):Buffer.from(d):d}function u(d,h,b){let p=d;if(d&&!b&&typeof d=="object"){if(_.endsWith(h,"{}"))h=o?h:h.slice(0,-2),d=JSON.stringify(d);else if(_.isArray(d)&&Qr(d)||(_.isFileList(d)||_.endsWith(h,"[]"))&&(p=_.toArray(d)))return h=Oo(h),p.forEach(function(C,G){!(_.isUndefined(C)||C===null)&&e.append(i===!0?an([h],G,r):i===null?h:h+"[]",l(C))}),!1}return Pt(d)?!0:(e.append(an(b,h,r),l(d)),!1)}const c=[],f=Object.assign(Zr,{defaultVisitor:u,convertValue:l,isVisitable:Pt});function g(d,h){if(!_.isUndefined(d)){if(c.indexOf(d)!==-1)throw Error("Circular reference detected in "+h.join("."));c.push(d),_.forEach(d,function(b,p){(!(_.isUndefined(b)||b===null)&&s.call(e,b,_.isString(p)?p.trim():p,h,f))===!0&&g(b,h?h.concat(p):[p])}),c.pop()}}if(!_.isObject(t))throw new TypeError("data must be an object");return g(t),e}function ln(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(n){return e[n]})}function Wt(t,e){this._pairs=[],t&&st(t,this,e)}const Po=Wt.prototype;Po.append=function(t,e){this._pairs.push([t,e])};Po.toString=function(t){const e=t?function(n){return t.call(this,n,ln)}:ln;return this._pairs.map(function(n){return e(n[0])+"="+e(n[1])},"").join("&")};function xr(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Co(t,e,n){if(!e)return t;const o=n&&n.encode||xr,s=n&&n.serialize;let r;if(s?r=s(e,n):r=_.isURLSearchParams(e)?e.toString():new Wt(e,n).toString(o),r){const i=t.indexOf("#");i!==-1&&(t=t.slice(0,i)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}class $r{constructor(){this.handlers=[]}use(e,n,o){return this.handlers.push({fulfilled:e,rejected:n,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){_.forEach(this.handlers,function(n){n!==null&&e(n)})}}const cn=$r,Bo={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ei=typeof URLSearchParams<"u"?URLSearchParams:Wt,ti=typeof FormData<"u"?FormData:null,ni=typeof Blob<"u"?Blob:null,oi={isBrowser:!0,classes:{URLSearchParams:ei,FormData:ti,Blob:ni},protocols:["http","https","file","blob","url","data"]},Lo=typeof window<"u"&&typeof document<"u",si=(t=>Lo&&["ReactNative","NativeScript","NS"].indexOf(t)<0)(typeof navigator<"u"&&navigator.product),ri=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),ii=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Lo,hasStandardBrowserEnv:si,hasStandardBrowserWebWorkerEnv:ri},Symbol.toStringTag,{value:"Module"})),ce={...ii,...oi};function ai(t,e){return st(t,new ce.classes.URLSearchParams,Object.assign({visitor:function(n,o,s,r){return ce.isNode&&_.isBuffer(n)?(this.append(o,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}function li(t){return _.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function ci(t){const e={},n=Object.keys(t);let o;const s=n.length;let r;for(o=0;o=n.length;return i=!i&&_.isArray(s)?s.length:i,l?(_.hasOwnProp(s,i)?s[i]=[s[i],o]:s[i]=o,!a):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),e(n,o,s[i],r)&&_.isArray(s[i])&&(s[i]=ci(s[i])),!a)}if(_.isFormData(t)&&_.isFunction(t.entries)){const n={};return _.forEachEntry(t,(o,s)=>{e(li(o),s,n,0)}),n}return null}function ui(t,e,n){if(_.isString(t))try{return(e||JSON.parse)(t),_.trim(t)}catch(o){if(o.name!=="SyntaxError")throw o}return(n||JSON.stringify)(t)}const Kt={transitional:Bo,adapter:["xhr","http"],transformRequest:[function(t,e){const n=e.getContentType()||"",o=n.indexOf("application/json")>-1,s=_.isObject(t);if(s&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return o&&o?JSON.stringify(Do(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let r;if(s){if(n.indexOf("application/x-www-form-urlencoded")>-1)return ai(t,this.formSerializer).toString();if((r=_.isFileList(t))||n.indexOf("multipart/form-data")>-1){const i=this.env&&this.env.FormData;return st(r?{"files[]":t}:t,i&&new i,this.formSerializer)}}return s||o?(e.setContentType("application/json",!1),ui(t)):t}],transformResponse:[function(t){const e=this.transitional||Kt.transitional,n=e&&e.forcedJSONParsing,o=this.responseType==="json";if(t&&_.isString(t)&&(n&&!this.responseType||o)){const s=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(r){if(s)throw r.name==="SyntaxError"?D.from(r,D.ERR_BAD_RESPONSE,this,null,this.response):r}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ce.classes.FormData,Blob:ce.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],t=>{Kt.headers[t]={}});const Ht=Kt,fi=_.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),hi=t=>{const e={};let n,o,s;return t&&t.split(` +`).forEach(function(r){s=r.indexOf(":"),n=r.substring(0,s).trim().toLowerCase(),o=r.substring(s+1).trim(),!(!n||e[n]&&fi[n])&&(n==="set-cookie"?e[n]?e[n].push(o):e[n]=[o]:e[n]=e[n]?e[n]+", "+o:o)}),e},un=Symbol("internals");function Ne(t){return t&&String(t).trim().toLowerCase()}function Xe(t){return t===!1||t==null?t:_.isArray(t)?t.map(Xe):String(t)}function di(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=n.exec(t);)e[o[1]]=o[2];return e}const pi=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function mt(t,e,n,o,s){if(_.isFunction(o))return o.call(this,e,n);if(s&&(e=n),!!_.isString(e)){if(_.isString(o))return e.indexOf(o)!==-1;if(_.isRegExp(o))return o.test(e)}}function mi(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,o)=>n.toUpperCase()+o)}function gi(t,e){const n=_.toCamelCase(" "+e);["get","set","has"].forEach(o=>{Object.defineProperty(t,o+n,{value:function(s,r,i){return this[o].call(this,e,s,r,i)},configurable:!0})})}let rt=class{constructor(t){t&&this.set(t)}set(t,e,n){const o=this;function s(i,a,l){const u=Ne(a);if(!u)throw new Error("header name must be a non-empty string");const c=_.findKey(o,u);(!c||o[c]===void 0||l===!0||l===void 0&&o[c]!==!1)&&(o[c||a]=Xe(i))}const r=(i,a)=>_.forEach(i,(l,u)=>s(l,u,a));return _.isPlainObject(t)||t instanceof this.constructor?r(t,e):_.isString(t)&&(t=t.trim())&&!pi(t)?r(hi(t),e):t!=null&&s(e,t,n),this}get(t,e){if(t=Ne(t),t){const n=_.findKey(this,t);if(n){const o=this[n];if(!e)return o;if(e===!0)return di(o);if(_.isFunction(e))return e.call(this,o,n);if(_.isRegExp(e))return e.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=Ne(t),t){const n=_.findKey(this,t);return!!(n&&this[n]!==void 0&&(!e||mt(this,this[n],n,e)))}return!1}delete(t,e){const n=this;let o=!1;function s(r){if(r=Ne(r),r){const i=_.findKey(n,r);i&&(!e||mt(n,n[i],i,e))&&(delete n[i],o=!0)}}return _.isArray(t)?t.forEach(s):s(t),o}clear(t){const e=Object.keys(this);let n=e.length,o=!1;for(;n--;){const s=e[n];(!t||mt(this,this[s],s,t,!0))&&(delete this[s],o=!0)}return o}normalize(t){const e=this,n={};return _.forEach(this,(o,s)=>{const r=_.findKey(n,s);if(r){e[r]=Xe(o),delete e[s];return}const i=t?mi(s):String(s).trim();i!==s&&delete e[s],e[i]=Xe(o),n[i]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return _.forEach(this,(n,o)=>{n!=null&&n!==!1&&(e[o]=t&&_.isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(o=>n.set(o)),n}static accessor(t){const e=(this[un]=this[un]={accessors:{}}).accessors,n=this.prototype;function o(s){const r=Ne(s);e[r]||(gi(n,s),e[r]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};rt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(rt.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(o){this[n]=o}}});_.freezeMethods(rt);const de=rt;function gt(t,e){const n=this||Ht,o=e||n,s=de.from(o.headers);let r=o.data;return _.forEach(t,function(i){r=i.call(n,r,s.normalize(),e?e.status:void 0)}),s.normalize(),r}function Io(t){return!!(t&&t.__CANCEL__)}function Ke(t,e,n){D.call(this,t??"canceled",D.ERR_CANCELED,e,n),this.name="CanceledError"}_.inherits(Ke,D,{__CANCEL__:!0});function bi(t,e,n){const o=n.config.validateStatus;!n.status||!o||o(n.status)?t(n):e(new D("Request failed with status code "+n.status,[D.ERR_BAD_REQUEST,D.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const _i=ce.hasStandardBrowserEnv?{write(t,e,n,o,s,r){const i=[t+"="+encodeURIComponent(e)];_.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),_.isString(o)&&i.push("path="+o),_.isString(s)&&i.push("domain="+s),r===!0&&i.push("secure"),document.cookie=i.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function yi(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function wi(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}function No(t,e){return t&&!yi(e)?wi(t,e):e}const ki=ce.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let n;function o(s){let r=s;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:e.pathname.charAt(0)==="/"?e.pathname:"/"+e.pathname}}return n=o(window.location.href),function(s){const r=_.isString(s)?o(s):s;return r.protocol===n.protocol&&r.host===n.host}}():function(){return function(){return!0}}();function Si(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function Ei(t,e){t=t||10;const n=new Array(t),o=new Array(t);let s=0,r=0,i;return e=e!==void 0?e:1e3,function(a){const l=Date.now(),u=o[r];i||(i=l),n[s]=a,o[s]=l;let c=r,f=0;for(;c!==s;)f+=n[c++],c=c%t;if(s=(s+1)%t,s===r&&(r=(r+1)%t),l-i{const r=s.loaded,i=s.lengthComputable?s.total:void 0,a=r-n,l=o(a),u=r<=i;n=r;const c={loaded:r,total:i,progress:i?r/i:void 0,bytes:a,rate:l||void 0,estimated:l&&i&&u?(i-r)/l:void 0,event:s};c[e?"download":"upload"]=!0,t(c)}}const Ti=typeof XMLHttpRequest<"u",vi=Ti&&function(t){return new Promise(function(e,n){let o=t.data;const s=de.from(t.headers).normalize();let{responseType:r,withXSRFToken:i}=t,a;function l(){t.cancelToken&&t.cancelToken.unsubscribe(a),t.signal&&t.signal.removeEventListener("abort",a)}let u;if(_.isFormData(o)){if(ce.hasStandardBrowserEnv||ce.hasStandardBrowserWebWorkerEnv)s.setContentType(!1);else if((u=s.getContentType())!==!1){const[h,...b]=u?u.split(";").map(p=>p.trim()).filter(Boolean):[];s.setContentType([h||"multipart/form-data",...b].join("; "))}}let c=new XMLHttpRequest;if(t.auth){const h=t.auth.username||"",b=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";s.set("Authorization","Basic "+btoa(h+":"+b))}const f=No(t.baseURL,t.url);c.open(t.method.toUpperCase(),Co(f,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function g(){if(!c)return;const h=de.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders()),b={data:!r||r==="text"||r==="json"?c.responseText:c.response,status:c.status,statusText:c.statusText,headers:h,config:t,request:c};bi(function(p){e(p),l()},function(p){n(p),l()},b),c=null}if("onloadend"in c?c.onloadend=g:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(g)},c.onabort=function(){c&&(n(new D("Request aborted",D.ECONNABORTED,t,c)),c=null)},c.onerror=function(){n(new D("Network Error",D.ERR_NETWORK,t,c)),c=null},c.ontimeout=function(){let h=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const b=t.transitional||Bo;t.timeoutErrorMessage&&(h=t.timeoutErrorMessage),n(new D(h,b.clarifyTimeoutError?D.ETIMEDOUT:D.ECONNABORTED,t,c)),c=null},ce.hasStandardBrowserEnv&&(i&&_.isFunction(i)&&(i=i(t)),i||i!==!1&&ki(f))){const h=t.xsrfHeaderName&&t.xsrfCookieName&&_i.read(t.xsrfCookieName);h&&s.set(t.xsrfHeaderName,h)}o===void 0&&s.setContentType(null),"setRequestHeader"in c&&_.forEach(s.toJSON(),function(h,b){c.setRequestHeader(b,h)}),_.isUndefined(t.withCredentials)||(c.withCredentials=!!t.withCredentials),r&&r!=="json"&&(c.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&c.addEventListener("progress",fn(t.onDownloadProgress,!0)),typeof t.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",fn(t.onUploadProgress)),(t.cancelToken||t.signal)&&(a=h=>{c&&(n(!h||h.type?new Ke(null,t,c):h),c.abort(),c=null)},t.cancelToken&&t.cancelToken.subscribe(a),t.signal&&(t.signal.aborted?a():t.signal.addEventListener("abort",a)));const d=Si(f);if(d&&ce.protocols.indexOf(d)===-1){n(new D("Unsupported protocol "+d+":",D.ERR_BAD_REQUEST,t));return}c.send(o||null)})},Ct={http:Xr,xhr:vi};_.forEach(Ct,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const hn=t=>`- ${t}`,Ai=t=>_.isFunction(t)||t===null||t===!1,Ro={getAdapter:t=>{t=_.isArray(t)?t:[t];const{length:e}=t;let n,o;const s={};for(let r=0;r`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let i=e?r.length>1?`since : +`+r.map(hn).join(` +`):" "+hn(r[0]):"as no adapter specified";throw new D("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return o},adapters:Ct};function bt(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Ke(null,t)}function dn(t){return bt(t),t.headers=de.from(t.headers),t.data=gt.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Ro.getAdapter(t.adapter||Ht.adapter)(t).then(function(e){return bt(t),e.data=gt.call(t,t.transformResponse,e),e.headers=de.from(e.headers),e},function(e){return Io(e)||(bt(t),e&&e.response&&(e.response.data=gt.call(t,t.transformResponse,e.response),e.response.headers=de.from(e.response.headers))),Promise.reject(e)})}const pn=t=>t instanceof de?t.toJSON():t;function Be(t,e){e=e||{};const n={};function o(u,c,f){return _.isPlainObject(u)&&_.isPlainObject(c)?_.merge.call({caseless:f},u,c):_.isPlainObject(c)?_.merge({},c):_.isArray(c)?c.slice():c}function s(u,c,f){if(_.isUndefined(c)){if(!_.isUndefined(u))return o(void 0,u,f)}else return o(u,c,f)}function r(u,c){if(!_.isUndefined(c))return o(void 0,c)}function i(u,c){if(_.isUndefined(c)){if(!_.isUndefined(u))return o(void 0,u)}else return o(void 0,c)}function a(u,c,f){if(f in e)return o(u,c);if(f in t)return o(void 0,u)}const l={url:r,method:r,data:r,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(u,c)=>s(pn(u),pn(c),!0)};return _.forEach(Object.keys(Object.assign({},t,e)),function(u){const c=l[u]||s,f=c(t[u],e[u],u);_.isUndefined(f)&&c!==a||(n[u]=f)}),n}const Mo="1.6.2",zt={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{zt[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const mn={};zt.transitional=function(t,e,n){function o(s,r){return"[Axios v"+Mo+"] Transitional option '"+s+"'"+r+(n?". "+n:"")}return(s,r,i)=>{if(t===!1)throw new D(o(r," has been removed"+(e?" in "+e:"")),D.ERR_DEPRECATED);return e&&!mn[r]&&(mn[r]=!0,console.warn(o(r," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(s,r,i):!0}};function Oi(t,e,n){if(typeof t!="object")throw new D("options must be an object",D.ERR_BAD_OPTION_VALUE);const o=Object.keys(t);let s=o.length;for(;s-- >0;){const r=o[s],i=e[r];if(i){const a=t[r],l=a===void 0||i(a,r,t);if(l!==!0)throw new D("option "+r+" must be "+l,D.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new D("Unknown option "+r,D.ERR_BAD_OPTION)}}const Bt={assertOptions:Oi,validators:zt},pe=Bt.validators;let xe=class{constructor(t){this.defaults=t,this.interceptors={request:new cn,response:new cn}}request(t,e){typeof t=="string"?(e=e||{},e.url=t):e=t||{},e=Be(this.defaults,e);const{transitional:n,paramsSerializer:o,headers:s}=e;n!==void 0&&Bt.assertOptions(n,{silentJSONParsing:pe.transitional(pe.boolean),forcedJSONParsing:pe.transitional(pe.boolean),clarifyTimeoutError:pe.transitional(pe.boolean)},!1),o!=null&&(_.isFunction(o)?e.paramsSerializer={serialize:o}:Bt.assertOptions(o,{encode:pe.function,serialize:pe.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let r=s&&_.merge(s.common,s[e.method]);s&&_.forEach(["delete","get","head","post","put","patch","common"],d=>{delete s[d]}),e.headers=de.concat(r,s);const i=[];let a=!0;this.interceptors.request.forEach(function(d){typeof d.runWhen=="function"&&d.runWhen(e)===!1||(a=a&&d.synchronous,i.unshift(d.fulfilled,d.rejected))});const l=[];this.interceptors.response.forEach(function(d){l.push(d.fulfilled,d.rejected)});let u,c=0,f;if(!a){const d=[dn.bind(this),void 0];for(d.unshift.apply(d,i),d.push.apply(d,l),f=d.length,u=Promise.resolve(e);c{if(!o._listeners)return;let r=o._listeners.length;for(;r-- >0;)o._listeners[r](s);o._listeners=null}),this.promise.then=s=>{let r;const i=new Promise(a=>{o.subscribe(a),r=a}).then(s);return i.cancel=function(){o.unsubscribe(r)},i},e(function(s,r,i){o.reason||(o.reason=new Ke(s,r,i),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}static source(){let e;return{token:new jo(function(n){e=n}),cancel:e}}};const Ci=Pi;function Bi(t){return function(e){return t.apply(null,e)}}function Li(t){return _.isObject(t)&&t.isAxiosError===!0}const Lt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Lt).forEach(([t,e])=>{Lt[e]=t});const Di=Lt;function Fo(t){const e=new Qe(t),n=bo(Qe.prototype.request,e);return _.extend(n,Qe.prototype,e,{allOwnKeys:!0}),_.extend(n,e,null,{allOwnKeys:!0}),n.create=function(o){return Fo(Be(t,o))},n}const W=Fo(Ht);W.Axios=Qe;W.CanceledError=Ke;W.CancelToken=Ci;W.isCancel=Io;W.VERSION=Mo;W.toFormData=st;W.AxiosError=D;W.Cancel=W.CanceledError;W.all=function(t){return Promise.all(t)};W.spread=Bi;W.isAxiosError=Li;W.mergeConfig=Be;W.AxiosHeaders=de;W.formToJSON=t=>Do(_.isHTMLForm(t)?new FormData(t):t);W.getAdapter=Ro.getAdapter;W.HttpStatusCode=Di;W.default=W;const Uo=W,{Axios:Nc,AxiosError:Rc,CanceledError:Mc,isCancel:jc,CancelToken:Fc,VERSION:Uc,all:qc,Cancel:Wc,isAxiosError:Kc,spread:Hc,toFormData:zc,AxiosHeaders:Gc,HttpStatusCode:ze,formToJSON:Vc,getAdapter:Jc,mergeConfig:Yc}=Uo;var Ae=null;typeof WebSocket<"u"?Ae=WebSocket:typeof MozWebSocket<"u"?Ae=MozWebSocket:typeof global<"u"?Ae=global.WebSocket||global.MozWebSocket:typeof window<"u"?Ae=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(Ae=self.WebSocket||self.MozWebSocket);const Ii=Ae,_t={SCHEMA_DIR_RELATIVE_PATH:"./../schemas/",SCHEMA_FILENAME_PAYLOAD:"payload.schema.json",SCHEMA_FILENAME_RESPONSE:"response.schema.json",SIYUAN_DEFAULT_BASE_URL:"http://localhost:6806/",SIYUAN_DEFAULT_TOKEN:"",REQUEST_TIMEOUT:6e4};var gn,bn,_n,yn,wn;const Dt=class m{constructor(e={},n="xhr"){he(this,"_type","xhr"),he(this,"_baseURL",((bn=(gn=globalThis.top)==null?void 0:gn.document)==null?void 0:bn.baseURI)??((yn=(_n=globalThis.parent)==null?void 0:_n.document)==null?void 0:yn.baseURI)??((wn=globalThis.location)==null?void 0:wn.origin)??_t.SIYUAN_DEFAULT_BASE_URL),he(this,"_token",_t.SIYUAN_DEFAULT_TOKEN),he(this,"_axios",Uo.create({baseURL:this._baseURL,timeout:_t.REQUEST_TIMEOUT,headers:{Authorization:`Token ${this._token}`}})),he(this,"_fetch",hr.create({baseURL:this._baseURL,headers:{Authorization:`Token ${this._token}`}})),this._setClientType(n),this._updateOptions(e,n)}static headers2record(e){const n={};return e.forEach((o,s)=>{n[s]=o}),n}static entries2record(e){const n={};for(const[o,s]of e)n[o]=s;return n}_setClientType(e){this._type=e}_updateOptions(e,n=this._type){switch(this._token=e.token??this._token,this._baseURL=e.baseURL??this._baseURL,n){case"fetch":const o=e;if(o.token){const s="Authorization",r=`Token ${e.token}`;Array.isArray(o.headers)?o.headers.push([s,r]):o.headers instanceof Headers?o.headers.set(s,r):typeof o.headers=="object"?o.headers[s]=r:o.headers={[s]:r},delete e.token}this._fetch=this._fetch.create(o);break;case"xhr":default:for(const[s,r]of Object.entries(e))switch(s){case"token":this._axios.defaults.headers.Authorization=`Token ${this._token}`;break;default:this._axios.defaults[s]=r;break}break}this._baseURL=e.baseURL??this._baseURL}broadcast(e,n,o){const s=(o==null?void 0:o.baseURL)??this._baseURL,r=(o==null?void 0:o.token)??this._token,i=new URLSearchParams(e);r&&i.set("token",r);const a=new URL(s);return a.protocol=a.protocol.replace(/^http/,"ws"),a.pathname=a.pathname.endsWith("/")?`${a.pathname}${m.ws.broadcast.pathname.substring(1)}`:`${a.pathname}${m.ws.broadcast.pathname}`,a.search=i.toString(),new Ii(a,n)}async upload(e,n){const o=new FormData;return o.append("assetsDirPath",e.assetsDirPath??"/assets/"),e.files.forEach(s=>o.append("file[]",s)),await this._request(m.api.asset.upload.pathname,m.api.asset.upload.method,o,n)}async getBlockAttrs(e,n){return await this._request(m.api.attr.getBlockAttrs.pathname,m.api.attr.getBlockAttrs.method,e,n)}async getBookmarkLabels(e){return await this._request(m.api.attr.getBookmarkLabels.pathname,m.api.attr.getBookmarkLabels.method,void 0,e)}async setBlockAttrs(e,n){return await this._request(m.api.attr.setBlockAttrs.pathname,m.api.attr.setBlockAttrs.method,e,n)}async appendBlock(e,n){return await this._request(m.api.block.appendBlock.pathname,m.api.block.appendBlock.method,e,n)}async deleteBlock(e,n){return await this._request(m.api.block.deleteBlock.pathname,m.api.block.deleteBlock.method,e,n)}async getBlockBreadcrumb(e,n){return await this._request(m.api.block.getBlockBreadcrumb.pathname,m.api.block.getBlockBreadcrumb.method,e,n)}async getBlockDOM(e,n){return await this._request(m.api.block.getBlockDOM.pathname,m.api.block.getBlockDOM.method,e,n)}async getBlockInfo(e,n){return await this._request(m.api.block.getBlockInfo.pathname,m.api.block.getBlockInfo.method,e,n)}async getBlockKramdown(e,n){return await this._request(m.api.block.getBlockKramdown.pathname,m.api.block.getBlockKramdown.method,e,n)}async getChildBlocks(e,n){return await this._request(m.api.block.getChildBlocks.pathname,m.api.block.getChildBlocks.method,e,n)}async getDocInfo(e,n){return await this._request(m.api.block.getDocInfo.pathname,m.api.block.getDocInfo.method,e,n)}async insertBlock(e,n){return await this._request(m.api.block.insertBlock.pathname,m.api.block.insertBlock.method,e,n)}async moveBlock(e,n){return await this._request(m.api.block.moveBlock.pathname,m.api.block.moveBlock.method,e,n)}async prependBlock(e,n){return await this._request(m.api.block.prependBlock.pathname,m.api.block.prependBlock.method,e,n)}async transferBlockRef(e,n){return await this._request(m.api.block.transferBlockRef.pathname,m.api.block.transferBlockRef.method,e,n)}async updateBlock(e,n){return await this._request(m.api.block.updateBlock.pathname,m.api.block.updateBlock.method,e,n)}async getChannelInfo(e,n){return await this._request(m.api.broadcast.getChannelInfo.pathname,m.api.broadcast.getChannelInfo.method,e,n)}async getChannels(e){return await this._request(m.api.broadcast.getChannels.pathname,m.api.broadcast.getChannels.method,void 0,e)}async postMessage(e,n){return await this._request(m.api.broadcast.postMessage.pathname,m.api.broadcast.postMessage.method,e,n)}async pandoc(e,n){return await this._request(m.api.convert.pandoc.pathname,m.api.convert.pandoc.method,e,n)}async exportResources(e,n){return await this._request(m.api.export.exportResources.pathname,m.api.export.exportResources.method,e,n)}async exportMdContent(e,n){return await this._request(m.api.export.exportMdContent.pathname,m.api.export.exportMdContent.method,e,n)}async getFile(e,n="text",o){return await this._request(m.api.file.getFile.pathname,m.api.file.getFile.method,e,o,!1,n)}async putFile(e,n){e.file!==void 0&&!(e.file instanceof File)&&(e.file=new File([e.file],e.path.split("/").pop()));const o=new FormData;for(const[s,r]of Object.entries(e))e.hasOwnProperty(s)&&(r instanceof Blob?o.append(s,r):o.append(s,String(r)));return await this._request(m.api.file.putFile.pathname,m.api.file.putFile.method,o,n)}async readDir(e,n){return await this._request(m.api.file.readDir.pathname,m.api.file.readDir.method,e,n)}async removeFile(e,n){return await this._request(m.api.file.removeFile.pathname,m.api.file.removeFile.method,e,n)}async renameFile(e,n){return await this._request(m.api.file.renameFile.pathname,m.api.file.renameFile.method,e,n)}async createDocWithMd(e,n){return await this._request(m.api.filetree.createDocWithMd.pathname,m.api.filetree.createDocWithMd.method,e,n)}async getDoc(e,n){return await this._request(m.api.filetree.getDoc.pathname,m.api.filetree.getDoc.method,e,n)}async getHPathByID(e,n){return await this._request(m.api.filetree.getHPathByID.pathname,m.api.filetree.getHPathByID.method,e,n)}async getHPathByPath(e,n){return await this._request(m.api.filetree.getHPathByPath.pathname,m.api.filetree.getHPathByPath.method,e,n)}async getIDsByHPath(e,n){return await this._request(m.api.filetree.getIDsByHPath.pathname,m.api.filetree.getIDsByHPath.method,e,n)}async listDocsByPath(e,n){return await this._request(m.api.filetree.listDocsByPath.pathname,m.api.filetree.listDocsByPath.method,e,n)}async moveDocs(e,n){return await this._request(m.api.filetree.moveDocs.pathname,m.api.filetree.moveDocs.method,e,n)}async removeDoc(e,n){return await this._request(m.api.filetree.removeDoc.pathname,m.api.filetree.removeDoc.method,e,n)}async renameDoc(e,n){return await this._request(m.api.filetree.renameDoc.pathname,m.api.filetree.renameDoc.method,e,n)}async searchDocs(e,n){return await this._request(m.api.filetree.searchDocs.pathname,m.api.filetree.searchDocs.method,e,n)}async getDocHistoryContent(e,n){return await this._request(m.api.history.getDocHistoryContent.pathname,m.api.history.getDocHistoryContent.method,e,n)}async getHistoryItems(e,n){return await this._request(m.api.history.getHistoryItems.pathname,m.api.history.getHistoryItems.method,e,n)}async getShorthand(e,n){return await this._request(m.api.inbox.getShorthand.pathname,m.api.inbox.getShorthand.method,e,n)}async echo(e,n){if(e)switch(n??(n={type:this._type}),n==null?void 0:n.type){case"fetch":{const o={};e.headers&&(o.headers=e.headers),e.query&&(o.query=m.entries2record(e.query.entries())),n.options?Object.assign(o,n.options):n.options=o;break}case"xhr":{const o={};e.headers&&(o.headers=Array.isArray(e.headers)?m.entries2record(e.headers):e.headers instanceof Headers?m.headers2record(e.headers):e.headers),e.query&&(o.params=e.query),n.options?Object.assign(o,n.options):n.options=o;break}}return await this._request(m.api.network.echo.pathname,(e==null?void 0:e.method)??m.api.network.echo.method,e==null?void 0:e.body,n)}async forwardProxy(e,n){return await this._request(m.api.network.forwardProxy.pathname,m.api.network.forwardProxy.method,e,n)}async closeNotebook(e,n){return await this._request(m.api.notebook.closeNotebook.pathname,m.api.notebook.closeNotebook.method,e,n)}async createNotebook(e,n){return await this._request(m.api.notebook.createNotebook.pathname,m.api.notebook.createNotebook.method,e,n)}async getNotebookConf(e,n){return await this._request(m.api.notebook.getNotebookConf.pathname,m.api.notebook.getNotebookConf.method,e,n)}async lsNotebooks(e){return await this._request(m.api.notebook.lsNotebooks.pathname,m.api.notebook.lsNotebooks.method,void 0,e)}async openNotebook(e,n){return await this._request(m.api.notebook.openNotebook.pathname,m.api.notebook.openNotebook.method,e,n)}async removeNotebook(e,n){return await this._request(m.api.notebook.removeNotebook.pathname,m.api.notebook.removeNotebook.method,e,n)}async renameNotebook(e,n){return await this._request(m.api.notebook.renameNotebook.pathname,m.api.notebook.renameNotebook.method,e,n)}async setNotebookConf(e,n){return await this._request(m.api.notebook.setNotebookConf.pathname,m.api.notebook.setNotebookConf.method,e,n)}async pushErrMsg(e,n){return await this._request(m.api.notification.pushErrMsg.pathname,m.api.notification.pushErrMsg.method,e,n)}async pushMsg(e,n){return await this._request(m.api.notification.pushMsg.pathname,m.api.notification.pushMsg.method,e,n)}async sql(e,n){return await this._request(m.api.query.sql.pathname,m.api.query.sql.method,e,n)}async openRepoSnapshotDoc(e,n){return await this._request(m.api.repo.openRepoSnapshotDoc.pathname,m.api.repo.openRepoSnapshotDoc.method,e,n)}async fullTextSearchBlock(e,n){return await this._request(m.api.search.fullTextSearchBlock.pathname,m.api.search.fullTextSearchBlock.method,e,n)}async getSnippet(e,n){return await this._request(m.api.snippet.getSnippet.pathname,m.api.snippet.getSnippet.method,e,n)}async setSnippet(e,n){return await this._request(m.api.snippet.setSnippet.pathname,m.api.snippet.setSnippet.method,e,n)}async getLocalStorage(e){return await this._request(m.api.storage.getLocalStorage.pathname,m.api.storage.getLocalStorage.method,void 0,e)}async getRecentDocs(e){return await this._request(m.api.storage.getRecentDocs.pathname,m.api.storage.getRecentDocs.method,void 0,e)}async setLocalStorage(e,n){return await this._request(m.api.storage.setLocalStorage.pathname,m.api.storage.setLocalStorage.method,e,n)}async setLocalStorageVal(e,n){return await this._request(m.api.storage.setLocalStorageVal.pathname,m.api.storage.setLocalStorageVal.method,e,n)}async bootProgress(e){return await this._request(m.api.system.bootProgress.pathname,m.api.system.bootProgress.method,void 0,e)}async getConf(e){return await this._request(m.api.system.getConf.pathname,m.api.system.getConf.method,void 0,e)}async currentTime(e){return await this._request(m.api.system.currentTime.pathname,m.api.system.currentTime.method,void 0,e)}async version(e){return await this._request(m.api.system.version.pathname,m.api.system.version.method,void 0,e)}async render(e,n){return await this._request(m.api.template.render.pathname,m.api.template.render.method,e,n)}async renderSprig(e,n){return await this._request(m.api.template.renderSprig.pathname,m.api.template.renderSprig.method,e,n)}async _request(e,n,o,s,r=!0,i="json"){try{switch((s==null?void 0:s.type)??this._type){case"fetch":{const a=s==null?void 0:s.options;i=(()=>{switch(i){case"arraybuffer":return"arrayBuffer";case"document":return"text";default:return i}})();const l=await this._fetch(e,{method:n,body:o,responseType:i,onResponse:async u=>{switch(u.response.status){case ze.Ok:switch(i){case"blob":u.response._data.contentType=u.response.headers.get("content-type");break;default:break}break;case ze.Accepted:e===m.api.file.getFile.pathname&&this._parseFetchResponse(u.response._data);break;default:break}},...a});return r&&i==="json"&&typeof l=="object"?this._parseFetchResponse(l):l}case"xhr":default:{const a=s==null?void 0:s.options;i=(()=>{switch(i){case"arrayBuffer":return"arraybuffer";default:return i}})();const l=await this._axios.request({url:e,method:n,data:o,responseType:i,...a});switch(l.status){case ze.Ok:if(r&&i==="json"&&typeof l.data=="object")return this._parseAxiosResponse(l);switch(i){case"blob":l.data.contentType=l.headers.getContentType();break;default:break}return l.data;case ze.Accepted:return e===m.api.file.getFile.pathname?this._parseAxiosResponse(l):l.data;default:throw new dr(l)}}}}catch(a){throw a}}_parseFetchResponse(e){if(e.code===0)return e;throw new nn(e)}_parseAxiosResponse(e){if(e.data.code===0)return e.data;throw new nn(e.data,e)}};he(Dt,"ws",{broadcast:{pathname:"/ws/broadcast"}}),he(Dt,"api",{asset:{upload:{pathname:"/api/asset/upload",method:"POST"}},attr:{getBlockAttrs:{pathname:"/api/attr/getBlockAttrs",method:"POST"},getBookmarkLabels:{pathname:"/api/attr/getBookmarkLabels",method:"POST"},setBlockAttrs:{pathname:"/api/attr/setBlockAttrs",method:"POST"}},block:{appendBlock:{pathname:"/api/block/appendBlock",method:"POST"},deleteBlock:{pathname:"/api/block/deleteBlock",method:"POST"},getBlockBreadcrumb:{pathname:"/api/block/getBlockBreadcrumb",method:"POST"},getBlockDOM:{pathname:"/api/block/getBlockDOM",method:"POST"},getBlockInfo:{pathname:"/api/block/getBlockInfo",method:"POST"},getBlockKramdown:{pathname:"/api/block/getBlockKramdown",method:"POST"},getChildBlocks:{pathname:"/api/block/getChildBlocks",method:"POST"},getDocInfo:{pathname:"/api/block/getDocInfo",method:"POST"},insertBlock:{pathname:"/api/block/insertBlock",method:"POST"},moveBlock:{pathname:"/api/block/moveBlock",method:"POST"},prependBlock:{pathname:"/api/block/prependBlock",method:"POST"},transferBlockRef:{pathname:"/api/block/transferBlockRef",method:"POST"},updateBlock:{pathname:"/api/block/updateBlock",method:"POST"}},broadcast:{getChannelInfo:{pathname:"/api/broadcast/getChannelInfo",method:"POST"},getChannels:{pathname:"/api/broadcast/getChannels",method:"POST"},postMessage:{pathname:"/api/broadcast/postMessage",method:"POST"}},convert:{pandoc:{pathname:"/api/convert/pandoc",method:"POST"}},export:{exportMdContent:{pathname:"/api/export/exportMdContent",method:"POST"},exportResources:{pathname:"/api/export/exportResources",method:"POST"}},file:{getFile:{pathname:"/api/file/getFile",method:"POST"},putFile:{pathname:"/api/file/putFile",method:"POST"},readDir:{pathname:"/api/file/readDir",method:"POST"},removeFile:{pathname:"/api/file/removeFile",method:"POST"},renameFile:{pathname:"/api/file/renameFile",method:"POST"}},filetree:{createDocWithMd:{pathname:"/api/filetree/createDocWithMd",method:"POST"},getDoc:{pathname:"/api/filetree/getDoc",method:"POST"},getHPathByID:{pathname:"/api/filetree/getHPathByID",method:"POST"},getHPathByPath:{pathname:"/api/filetree/getHPathByPath",method:"POST"},getIDsByHPath:{pathname:"/api/filetree/getIDsByHPath",method:"POST"},listDocsByPath:{pathname:"/api/filetree/listDocsByPath",method:"POST"},moveDocs:{pathname:"/api/filetree/moveDocs",method:"POST"},removeDoc:{pathname:"/api/filetree/removeDoc",method:"POST"},renameDoc:{pathname:"/api/filetree/renameDoc",method:"POST"},searchDocs:{pathname:"/api/filetree/searchDocs",method:"POST"}},history:{getDocHistoryContent:{pathname:"/api/history/getDocHistoryContent",method:"POST"},getHistoryItems:{pathname:"/api/history/getHistoryItems",method:"POST"}},inbox:{getShorthand:{pathname:"/api/inbox/getShorthand",method:"POST"}},network:{echo:{pathname:"/api/network/echo",method:"POST"},forwardProxy:{pathname:"/api/network/forwardProxy",method:"POST"}},notebook:{closeNotebook:{pathname:"/api/notebook/closeNotebook",method:"POST"},createNotebook:{pathname:"/api/notebook/createNotebook",method:"POST"},getNotebookConf:{pathname:"/api/notebook/getNotebookConf",method:"POST"},lsNotebooks:{pathname:"/api/notebook/lsNotebooks",method:"POST"},openNotebook:{pathname:"/api/notebook/openNotebook",method:"POST"},removeNotebook:{pathname:"/api/notebook/removeNotebook",method:"POST"},renameNotebook:{pathname:"/api/notebook/renameNotebook",method:"POST"},setNotebookConf:{pathname:"/api/notebook/setNotebookConf",method:"POST"}},notification:{pushErrMsg:{pathname:"/api/notification/pushErrMsg",method:"POST"},pushMsg:{pathname:"/api/notification/pushMsg",method:"POST"}},query:{sql:{pathname:"/api/query/sql",method:"POST"}},repo:{openRepoSnapshotDoc:{pathname:"/api/repo/openRepoSnapshotDoc",method:"POST"}},search:{fullTextSearchBlock:{pathname:"/api/search/fullTextSearchBlock",method:"POST"}},snippet:{getSnippet:{pathname:"/api/snippet/getSnippet",method:"POST"},setSnippet:{pathname:"/api/snippet/setSnippet",method:"POST"}},storage:{getLocalStorage:{pathname:"/api/storage/getLocalStorage",method:"POST"},getRecentDocs:{pathname:"/api/storage/getRecentDocs",method:"POST"},setLocalStorage:{pathname:"/api/storage/setLocalStorage",method:"POST"},setLocalStorageVal:{pathname:"/api/storage/setLocalStorageVal",method:"POST"}},system:{bootProgress:{pathname:"/api/system/bootProgress",method:"POST"},currentTime:{pathname:"/api/system/currentTime",method:"POST"},getConf:{pathname:"/api/system/getConf",method:"POST"},version:{pathname:"/api/system/version",method:"POST"}},template:{render:{pathname:"/api/template/render",method:"POST"},renderSprig:{pathname:"/api/template/renderSprig",method:"POST"}}});let Ni=Dt;const Ri=` + + +`,Mi=` + + +`;function K(){}function it(t,e){for(const n in e)t[n]=e[n];return t}function qo(t){return t()}function kn(){return Object.create(null)}function Z(t){t.forEach(qo)}function Gt(t){return typeof t=="function"}function z(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let Ge;function Sn(t,e){return t===e?!0:(Ge||(Ge=document.createElement("a")),Ge.href=e,t===Ge.href)}function ji(t){return Object.keys(t).length===0}function Fi(t,...e){if(t==null){for(const o of e)o(void 0);return K}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function Ui(t){let e;return Fi(t,n=>e=n)(),e}function J(t,e,n,o){if(t){const s=Wo(t,e,n,o);return t[0](s)}}function Wo(t,e,n,o){return t[1]&&o?it(n.ctx.slice(),t[1](o(e))):n.ctx}function Y(t,e,n,o){if(t[2]&&o){const s=t[2](o(n));if(e.dirty===void 0)return s;if(typeof s=="object"){const r=[],i=Math.max(e.dirty.length,s.length);for(let a=0;a32){const e=[],n=t.ctx.length/32;for(let o=0;ot.removeEventListener(e,n,o)}function y(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}const Ki=["width","height"];function Hi(t,e){const n=Object.getOwnPropertyDescriptors(t.__proto__);for(const o in e)e[o]==null?t.removeAttribute(o):o==="style"?t.style.cssText=e[o]:o==="__value"?t.value=t[o]=e[o]:n[o]&&n[o].set&&Ki.indexOf(o)===-1?t[o]=e[o]:y(t,o,e[o])}function zi(t,e){Object.keys(e).forEach(n=>{Gi(t,n,e[n])})}function Gi(t,e,n){const o=e.toLowerCase();o in t?t[o]=typeof t[o]=="boolean"&&n===""?!0:n:e in t?t[e]=typeof t[e]=="boolean"&&n===""?!0:n:y(t,e,n)}function En(t){return/-/.test(t)?zi:Hi}function Tn(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}function Nt(t){return t===""?null:+t}function Vi(t){return Array.from(t.childNodes)}function Vt(t,e){e=""+e,t.data!==e&&(t.data=e)}function se(t,e){t.value=e??""}function Re(t,e,n,o){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,o?"important":"")}function vn(t,e,n){for(let o=0;o{const s=t.$$.callbacks[e];if(s){const r=Yi(e,n,{cancelable:o});return s.slice().forEach(i=>{i.call(t,r)}),!r.defaultPrevented}return!0}}function An(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach(o=>o.call(this,e))}const Oe=[],$e=[];let Pe=[];const On=[],Qi=Promise.resolve();let Rt=!1;function Zi(){Rt||(Rt=!0,Qi.then(Ho))}function et(t){Pe.push(t)}const yt=new Set;let Te=0;function Ho(){if(Te!==0)return;const t=Ue;do{try{for(;Tet.indexOf(o)===-1?e.push(o):n.push(o)),n.forEach(o=>o()),Pe=e}const Ze=new Set;let ke;function re(){ke={r:0,c:[],p:ke}}function ie(){ke.r||Z(ke.c),ke=ke.p}function w(t,e){t&&t.i&&(Ze.delete(t),t.i(e))}function S(t,e,n,o){if(t&&t.o){if(Ze.has(t))return;Ze.add(t),ke.c.push(()=>{Ze.delete(t),o&&(n&&t.d(1),o())}),t.o(e)}else o&&o()}function ue(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function ea(t,e){t.d(1),e.delete(t.key)}function ct(t,e){S(t,1,1,()=>{e.delete(t.key)})}function He(t,e,n,o,s,r,i,a,l,u,c,f){let g=t.length,d=r.length,h=g;const b={};for(;h--;)b[t[h].key]=h;const p=[],C=new Map,G=new Map,ne=[];for(h=d;h--;){const E=f(s,r,h),H=n(E);let U=i.get(H);U?o&&ne.push(()=>U.p(E,e)):(U=u(H,E),U.c()),C.set(H,p[h]=U),H in b&&G.set(H,Math.abs(h-b[H]))}const T=new Set,M=new Set;function q(E){w(E,1),E.m(a,c),i.set(E.key,E),c=E.first,d--}for(;g&&d;){const E=p[d-1],H=t[g-1],U=E.key,Ee=H.key;E===H?(c=E.first,g--,d--):C.has(Ee)?!i.has(U)||T.has(U)?q(E):M.has(Ee)?g--:G.get(U)>G.get(Ee)?(M.add(U),q(E)):(T.add(Ee),g--):(l(H,i),g--)}for(;g--;){const E=t[g];C.has(E.key)||l(E,i)}for(;d;)q(p[d-1]);return Z(ne),p}function Jt(t,e){const n={},o={},s={$$scope:1};let r=t.length;for(;r--;){const i=t[r],a=e[r];if(a){for(const l in i)l in a||(o[l]=1);for(const l in a)s[l]||(n[l]=a[l],s[l]=1);t[r]=a}else for(const l in i)s[l]=1}for(const i in o)i in n||(n[i]=void 0);return n}function zo(t){return typeof t=="object"&&t!==null?t:{}}function R(t){t&&t.c()}function I(t,e,n){const{fragment:o,after_update:s}=t.$$;o&&o.m(e,n),et(()=>{const r=t.$$.on_mount.map(qo).filter(Gt);t.$$.on_destroy?t.$$.on_destroy.push(...r):Z(r),t.$$.on_mount=[]}),s.forEach(et)}function N(t,e){const n=t.$$;n.fragment!==null&&($i(n.after_update),Z(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function ta(t,e){t.$$.dirty[0]===-1&&(Oe.push(t),Zi(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const h=d.length?d[0]:g;return u.ctx&&s(u.ctx[f],u.ctx[f]=h)&&(!u.skip_bound&&u.bound[f]&&u.bound[f](h),c&&ta(t,f)),g}):[],u.update(),c=!0,Z(u.before_update),u.fragment=o?o(u.ctx):!1,e.target){if(e.hydrate){const f=Vi(e.target);u.fragment&&u.fragment.l(f),f.forEach(v)}else u.fragment&&u.fragment.c();e.intro&&w(t.$$.fragment),I(t,e.target,e.anchor),Ho()}je(l)}class ${constructor(){B(this,"$$");B(this,"$$set")}$destroy(){N(this,1),this.$destroy=K}$on(e,n){if(!Gt(n))return K;const o=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return o.push(n),()=>{const s=o.indexOf(n);s!==-1&&o.splice(s,1)}}$set(e){this.$$set&&!ji(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const na="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(na);const Pn={id:/^\d{14}-[0-9a-z]{7}$/,url:/^siyuan:\/\/blocks\/(\d{14}-[0-9a-z]{7})/,snippet:/^\d{14}-[0-9a-z]{7}$/,created:/^\d{10}$/,history:/[\/\\]history[\/\\]\d{4}-\d{2}-\d{2}-\d{6}-(clean|update|delete|format|sync|replace)([\/\\]\d{14}-[0-9a-z]{7})+\.sy$/,snapshot:/^[0-9a-f]{40}$/,shorthand:/^\d{13}$/};function oa(t){let e,n;return{c(){e=It("svg"),n=It("use"),Tn(n,"xlink:href",t[0]),y(e,"style",t[3]),y(e,"data-id",t[1]),y(e,"class",t[2]),k(e,"popover__block",Pn.id.test(t[1]))},m(o,s){A(o,e,s),L(e,n)},p(o,[s]){s&1&&Tn(n,"xlink:href",o[0]),s&8&&y(e,"style",o[3]),s&2&&y(e,"data-id",o[1]),s&4&&y(e,"class",o[2]),s&6&&k(e,"popover__block",Pn.id.test(o[1]))},i:K,o:K,d(o){o&&v(e)}}}function sa(t,e,n){let{icon:o}=e,{id:s=""}=e,{className:r=""}=e,{style:i=""}=e;return t.$$set=a=>{"icon"in a&&n(0,o=a.icon),"id"in a&&n(1,s=a.id),"className"in a&&n(2,r=a.className),"style"in a&&n(3,i=a.style)},[o,s,r,i]}class Ie extends ${constructor(e){super(),x(this,e,sa,oa,z,{icon:0,id:1,className:2,style:3})}}const ra=t=>({focus:t&1}),Cn=t=>({focus:t[0]});function Bn(t,e,n){const o=t.slice();return o[13]=e[n],o}function Ln(t){let e,n,o,s,r,i,a;return n=new Ie({props:{icon:"#iconSearch",className:"b3-form__icon-icon"}}),{c(){e=P("div"),R(n.$$.fragment),o=j(),s=P("input"),y(s,"placeholder",t[4]),y(s,"class","b3-text-field fn__block b3-form__icon-input"),y(e,"class","b3-form__icon")},m(l,u){A(l,e,u),I(n,e,null),L(e,o),L(e,s),se(s,t[1]),r=!0,i||(a=[F(s,"input",t[9]),F(s,"change",t[5])],i=!0)},p(l,u){(!r||u&16)&&y(s,"placeholder",l[4]),u&2&&s.value!==l[1]&&se(s,l[1])},i(l){r||(w(n.$$.fragment,l),r=!0)},o(l){S(n.$$.fragment,l),r=!1},d(l){l&&v(e),N(n),i=!1,Z(a)}}}function Dn(t,e){let n,o,s,r,i=e[13].text+"",a,l,u,c,f;o=new Ie({props:{icon:e[13].icon,className:"b3-list-item__graphic"}});function g(){return e[10](e[13])}function d(){return e[11](e[13])}return{key:t,first:null,c(){n=P("li"),R(o.$$.fragment),s=j(),r=P("span"),a=j(),y(r,"class","b3-list-item__text svelte-15drd7h"),y(n,"role","button"),y(n,"data-name",l=e[13].name),y(n,"class","b3-list-item"),k(n,"b3-list-item--focus",e[13].key===e[0]),this.first=n},m(h,b){A(h,n,b),I(o,n,null),L(n,s),L(n,r),r.innerHTML=i,L(n,a),u=!0,c||(f=[F(n,"click",g),F(n,"keyup",d)],c=!0)},p(h,b){e=h;const p={};b&4&&(p.icon=e[13].icon),o.$set(p),(!u||b&4)&&i!==(i=e[13].text+"")&&(r.innerHTML=i),(!u||b&4&&l!==(l=e[13].name))&&y(n,"data-name",l),(!u||b&5)&&k(n,"b3-list-item--focus",e[13].key===e[0])},i(h){u||(w(o.$$.fragment,h),u=!0)},o(h){S(o.$$.fragment,h),u=!1},d(h){h&&v(n),N(o),c=!1,Z(f)}}}function ia(t){let e;return{c(){e=ye("Container")},m(n,o){A(n,e,o)},d(n){n&&v(e)}}}function aa(t){let e,n,o,s=[],r=new Map,i,a,l,u=t[3]&&Ln(t),c=ue(t[2]);const f=b=>b[13].key;for(let b=0;b{u=null}),ie()),p&69&&(c=ue(b[2]),re(),s=He(s,p,f,1,b,c,r,n,ct,Dn,null,Bn),ie()),d&&d.p&&(!l||p&129)&&X(d,g,b,b[7],l?Y(g,b[7],p,ra):Q(b[7]),Cn)},i(b){if(!l){w(u);for(let p=0;pg(p.key),b=p=>g(p.key);return t.$$set=p=>{"panels"in p&&n(2,r=p.panels),"focus"in p&&n(0,i=p.focus),"searchEnable"in p&&n(3,a=p.searchEnable),"searchPlaceholder"in p&&n(4,l=p.searchPlaceholder),"searchValue"in p&&n(1,u=p.searchValue),"$$scope"in p&&n(7,s=p.$$scope)},[i,u,r,a,l,f,g,s,o,d,h,b]}class ca extends ${constructor(e){super(),x(this,e,la,aa,z,{panels:2,focus:0,searchEnable:3,searchPlaceholder:4,searchValue:1})}}function ua(t){let e,n;const o=t[4].default,s=J(o,t,t[3],null);return{c(){e=P("div"),s&&s.c(),y(e,"data-name",t[2]),y(e,"class","config__tab-container"),k(e,"fn__none",!t[0]),k(e,"config__tab-container--top",t[1])},m(r,i){A(r,e,i),s&&s.m(e,null),n=!0},p(r,[i]){s&&s.p&&(!n||i&8)&&X(s,o,r,r[3],n?Y(o,r[3],i,null):Q(r[3]),null),(!n||i&4)&&y(e,"data-name",r[2]),(!n||i&1)&&k(e,"fn__none",!r[0]),(!n||i&2)&&k(e,"config__tab-container--top",r[1])},i(r){n||(w(s,r),n=!0)},o(r){S(s,r),n=!1},d(r){r&&v(e),s&&s.d(r)}}}function fa(t,e,n){let{$$slots:o={},$$scope:s}=e,{display:r=!0}=e,{top:i=!0}=e,{name:a=""}=e;return t.$$set=l=>{"display"in l&&n(0,r=l.display),"top"in l&&n(1,i=l.top),"name"in l&&n(2,a=l.name),"$$scope"in l&&n(3,s=l.$$scope)},[r,i,a,s,o]}class In extends ${constructor(e){super(),x(this,e,fa,ua,z,{display:0,top:1,name:2})}}const ha=t=>({}),Nn=t=>({}),da=t=>({}),Rn=t=>({});function Mn(t){let e,n;const o=t[7].icon,s=J(o,t,t[6],Rn);return{c(){e=P("span"),s&&s.c(),y(e,"class","item__icon")},m(r,i){A(r,e,i),s&&s.m(e,null),n=!0},p(r,i){s&&s.p&&(!n||i&64)&&X(s,o,r,r[6],n?Y(o,r[6],i,da):Q(r[6]),Rn)},i(r){n||(w(s,r),n=!0)},o(r){S(s,r),n=!1},d(r){r&&v(e),s&&s.d(r)}}}function pa(t){let e;return{c(){e=ye("text")},m(n,o){A(n,e,o)},d(n){n&&v(e)}}}function ma(t){let e,n,o,s,r,i,a,l,u,c,f=t[0]&&t[4].icon&&Mn(t);const g=t[7].text,d=J(g,t,t[6],Nn),h=d||pa();return{c(){e=P("div"),n=P("span"),o=j(),f&&f.c(),s=j(),r=P("span"),h&&h.c(),i=j(),a=P("span"),y(n,"class","fn__flex-1"),y(r,"class","item__text"),y(a,"class","fn__flex-1"),y(e,"role","button"),y(e,"data-type",t[1]),y(e,"class","item item--full"),k(e,"item--focus",t[2])},m(b,p){A(b,e,p),L(e,n),L(e,o),f&&f.m(e,null),L(e,s),L(e,r),h&&h.m(r,null),L(e,i),L(e,a),l=!0,u||(c=F(e,"click",t[3]),u=!0)},p(b,[p]){b[0]&&b[4].icon?f?(f.p(b,p),p&17&&w(f,1)):(f=Mn(b),f.c(),w(f,1),f.m(e,s)):f&&(re(),S(f,1,1,()=>{f=null}),ie()),d&&d.p&&(!l||p&64)&&X(d,g,b,b[6],l?Y(g,b[6],p,ha):Q(b[6]),Nn),(!l||p&2)&&y(e,"data-type",b[1]),(!l||p&4)&&k(e,"item--focus",b[2])},i(b){l||(w(f),w(h,b),l=!0)},o(b){S(f),S(h,b),l=!1},d(b){b&&v(e),f&&f.d(),h&&h.d(b),u=!1,c()}}}function ga(t,e,n){let{$$slots:o={},$$scope:s}=e;const r=qi(o);let{key:i}=e,{icon:a}=e,{name:l=""}=e,{focus:u=!1}=e;const c=lt();function f(){u||c("changed",{key:i})}return t.$$set=g=>{"key"in g&&n(5,i=g.key),"icon"in g&&n(0,a=g.icon),"name"in g&&n(1,l=g.name),"focus"in g&&n(2,u=g.focus),"$$scope"in g&&n(6,s=g.$$scope)},[a,l,u,f,r,i,s,o]}let ba=class extends ${constructor(e){super(),x(this,e,ga,ma,z,{key:5,icon:0,name:1,focus:2})}};const _a=t=>({focus:t&1}),jn=t=>({focus:t[0]});function Fn(t,e,n){const o=t.slice();return o[5]=e[n],o}function ya(t){let e,n=t[5].icon+"",o;return{c(){e=new at(!1),o=te(),e.a=o},m(s,r){e.m(n,s,r),A(s,o,r)},p(s,r){r&2&&n!==(n=s[5].icon+"")&&e.p(n)},i:K,o:K,d(s){s&&(v(o),e.d())}}}function wa(t){let e,n;return e=new Ie({props:{icon:t[5].icon}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&2&&(r.icon=o[5].icon),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function ka(t){let e,n,o,s,r,i;const a=[wa,ya],l=[];function u(c,f){var g;return f&2&&(n=null),n==null&&(n=!!((g=c[5].icon)!=null&&g.startsWith("#"))),n?0:c[5].icon?1:-1}return~(o=u(t,-1))&&(s=l[o]=a[o](t)),{c(){e=P("span"),s&&s.c(),r=j(),y(e,"slot","icon")},m(c,f){A(c,e,f),~o&&l[o].m(e,null),L(e,r),i=!0},p(c,f){let g=o;o=u(c,f),o===g?~o&&l[o].p(c,f):(s&&(re(),S(l[g],1,1,()=>{l[g]=null}),ie()),~o?(s=l[o],s?s.p(c,f):(s=l[o]=a[o](c),s.c()),w(s,1),s.m(e,r)):s=null)},i(c){i||(w(s),i=!0)},o(c){S(s),i=!1},d(c){c&&v(e),~o&&l[o].d()}}}function Sa(t){let e,n,o=t[5].text+"",s;return{c(){e=P("span"),n=new at(!1),s=j(),n.a=s,y(e,"slot","text")},m(r,i){A(r,e,i),n.m(o,e),L(e,s)},p(r,i){i&2&&o!==(o=r[5].text+"")&&n.p(o)},d(r){r&&v(e)}}}function Un(t,e){let n,o,s;return o=new ba({props:{key:e[5].key,icon:!!e[5].icon,name:e[5].name,focus:e[5].key===e[0],$$slots:{text:[Sa],icon:[ka]},$$scope:{ctx:e}}}),o.$on("changed",e[2]),{key:t,first:null,c(){n=te(),R(o.$$.fragment),this.first=n},m(r,i){A(r,n,i),I(o,r,i),s=!0},p(r,i){e=r;const a={};i&2&&(a.key=e[5].key),i&2&&(a.icon=!!e[5].icon),i&2&&(a.name=e[5].name),i&3&&(a.focus=e[5].key===e[0]),i&18&&(a.$$scope={dirty:i,ctx:e}),o.$set(a)},i(r){s||(w(o.$$.fragment,r),s=!0)},o(r){S(o.$$.fragment,r),s=!1},d(r){r&&v(n),N(o,r)}}}function Ea(t){let e;return{c(){e=ye("Container")},m(n,o){A(n,e,o)},d(n){n&&v(e)}}}function Ta(t){let e,n,o=[],s=new Map,r,i,a,l=ue(t[1]);const u=d=>d[5].key;for(let d=0;d{"tabs"in l&&n(1,r=l.tabs),"focus"in l&&n(0,i=l.focus),"$$scope"in l&&n(4,s=l.$$scope)},[i,r,a,o,s]}class Aa extends ${constructor(e){super(),x(this,e,va,Ta,z,{tabs:1,focus:0})}}const Oa=t=>({}),qn=t=>({}),Pa=t=>({}),Wn=t=>({}),Ca=t=>({}),Kn=t=>({}),Ba=t=>({}),Hn=t=>({});function La(t){let e,n;return{c(){e=new at(!1),n=te(),e.a=n},m(o,s){e.m(t[0],o,s),A(o,n,s)},p(o,s){s&1&&e.p(o[0])},d(o){o&&(v(n),e.d())}}}function Da(t){let e,n;return{c(){e=new at(!1),n=te(),e.a=n},m(o,s){e.m(t[1],o,s),A(o,n,s)},p(o,s){s&2&&e.p(o[1])},d(o){o&&(v(n),e.d())}}}function zn(t){let e,n,o;const s=t[4].input,r=J(s,t,t[3],Wn);return{c(){e=P("div"),n=j(),r&&r.c(),y(e,"class","fn__hr")},m(i,a){A(i,e,a),A(i,n,a),r&&r.m(i,a),o=!0},p(i,a){r&&r.p&&(!o||a&8)&&X(r,s,i,i[3],o?Y(s,i[3],a,Pa):Q(i[3]),Wn)},i(i){o||(w(r,i),o=!0)},o(i){S(r,i),o=!1},d(i){i&&(v(e),v(n)),r&&r.d(i)}}}function Gn(t){let e,n,o;const s=t[4].input,r=J(s,t,t[3],qn);return{c(){e=P("span"),n=j(),r&&r.c(),y(e,"class","fn__space")},m(i,a){A(i,e,a),A(i,n,a),r&&r.m(i,a),o=!0},p(i,a){r&&r.p&&(!o||a&8)&&X(r,s,i,i[3],o?Y(s,i[3],a,Oa):Q(i[3]),qn)},i(i){o||(w(r,i),o=!0)},o(i){S(r,i),o=!1},d(i){i&&(v(e),v(n)),r&&r.d(i)}}}function Ia(t){let e,n,o,s,r,i,a;const l=t[4].title,u=J(l,t,t[3],Hn),c=u||La(t),f=t[4].text,g=J(f,t,t[3],Kn),d=g||Da(t);let h=t[2]&&zn(t),b=!t[2]&&Gn(t);return{c(){e=P("label"),n=P("div"),c&&c.c(),o=j(),s=P("div"),d&&d.c(),r=j(),h&&h.c(),i=j(),b&&b.c(),y(s,"class","b3-label__text"),y(n,"class","fn__flex-1 svelte-2m76cy"),k(n,"visible",t[2]),y(e,"class","fn__flex b3-label")},m(p,C){A(p,e,C),L(e,n),c&&c.m(n,null),L(n,o),L(n,s),d&&d.m(s,null),L(n,r),h&&h.m(n,null),L(e,i),b&&b.m(e,null),a=!0},p(p,[C]){u?u.p&&(!a||C&8)&&X(u,l,p,p[3],a?Y(l,p[3],C,Ba):Q(p[3]),Hn):c&&c.p&&(!a||C&1)&&c.p(p,a?C:-1),g?g.p&&(!a||C&8)&&X(g,f,p,p[3],a?Y(f,p[3],C,Ca):Q(p[3]),Kn):d&&d.p&&(!a||C&2)&&d.p(p,a?C:-1),p[2]?h?(h.p(p,C),C&4&&w(h,1)):(h=zn(p),h.c(),w(h,1),h.m(n,null)):h&&(re(),S(h,1,1,()=>{h=null}),ie()),(!a||C&4)&&k(n,"visible",p[2]),p[2]?b&&(re(),S(b,1,1,()=>{b=null}),ie()):b?(b.p(p,C),C&4&&w(b,1)):(b=Gn(p),b.c(),w(b,1),b.m(e,null))},i(p){a||(w(c,p),w(d,p),w(h),w(b),a=!0)},o(p){S(c,p),S(d,p),S(h),S(b),a=!1},d(p){p&&v(e),c&&c.d(p),d&&d.d(p),h&&h.d(),b&&b.d()}}}function Na(t,e,n){let{$$slots:o={},$$scope:s}=e,{title:r=""}=e,{text:i=""}=e,{block:a=!1}=e;return t.$$set=l=>{"title"in l&&n(0,r=l.title),"text"in l&&n(1,i=l.text),"block"in l&&n(2,a=l.block),"$$scope"in l&&n(3,s=l.$$scope)},[r,i,a,s,o]}let we=class extends ${constructor(e){super(),x(this,e,Na,Ia,z,{title:0,text:1,block:2})}};var V=(t=>(t[t.checkbox=0]="checkbox",t[t.text=1]="text",t[t.number=2]="number",t[t.slider=3]="slider",t[t.button=4]="button",t[t.select=5]="select",t[t.textarea=6]="textarea",t))(V||{});function Vn(t,e,n){const o=t.slice();return o[20]=e[n],o}function Ra(t){let e,n,o;return{c(){e=P("textarea"),e.disabled=t[2],y(e,"class","b3-text-field"),y(e,"placeholder",t[5]),k(e,"fn__block",t[3]),k(e,"fn__size200",!t[3]&&t[4]),Re(e,"height",t[8]>0?`${t[8]}px`:void 0),Re(e,"font-family",t[9]?t[9]:void 0)},m(s,r){A(s,e,r),se(e,t[0]),n||(o=[F(e,"input",t[18]),F(e,"change",t[11])],n=!0)},p(s,r){r&4&&(e.disabled=s[2]),r&32&&y(e,"placeholder",s[5]),r&65&&se(e,s[0]),r&8&&k(e,"fn__block",s[3]),r&24&&k(e,"fn__size200",!s[3]&&s[4]),r&256&&Re(e,"height",s[8]>0?`${s[8]}px`:void 0),r&512&&Re(e,"font-family",s[9]?s[9]:void 0)},d(s){s&&v(e),n=!1,Z(o)}}}function Ma(t){let e,n=[],o=new Map,s,r,i=ue(t[6]);const a=l=>l[20].key;for(let l=0;lt[17].call(e)),k(e,"fn__block",t[3]),k(e,"fn__size200",!t[3]&&t[4]),k(e,"fn__flex-center",!t[3])},m(l,u){A(l,e,u);for(let c=0;c{"type"in E&&n(1,o=E.type),"settingKey"in E&&n(12,s=E.settingKey),"settingValue"in E&&n(0,r=E.settingValue),"disabled"in E&&n(2,i=E.disabled),"block"in E&&n(3,a=E.block),"normal"in E&&n(4,l=E.normal),"placeholder"in E&&n(5,u=E.placeholder),"options"in E&&n(6,c=E.options),"limits"in E&&n(7,f=E.limits),"height"in E&&n(8,g=E.height),"fontFamily"in E&&n(9,d=E.fontFamily)},[r,o,i,a,l,u,c,f,g,d,b,p,s,C,G,ne,T,M,q]}class Se extends ${constructor(e){super(),x(this,e,Ha,Ka,z,{type:1,settingKey:12,settingValue:0,disabled:2,block:3,normal:4,placeholder:5,options:6,limits:7,height:8,fontFamily:9})}}function za(t){let e,n;return e=new Se({props:{slot:"input",type:V.button,settingKey:"reset",settingValue:t[1].settings.generalSettings.reset.text}}),e.$on("clicked",t[3]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p:K,i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Ga(t){let e,n;return e=new Se({props:{slot:"input",type:V.button,settingKey:"deleteKeeWebConfig",settingValue:t[1].settings.generalSettings.deleteKeeWebConfig.text}}),e.$on("clicked",t[4]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p:K,i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Va(t){let e,n,o,s;return e=new we({props:{title:t[1].settings.generalSettings.reset.title,text:t[1].settings.generalSettings.reset.description,$$slots:{input:[za]},$$scope:{ctx:t}}}),o=new we({props:{title:t[1].settings.generalSettings.deleteKeeWebConfig.title,text:t[1].settings.generalSettings.deleteKeeWebConfig.description,$$slots:{input:[Ga]},$$scope:{ctx:t}}}),{c(){R(e.$$.fragment),n=j(),R(o.$$.fragment)},m(r,i){I(e,r,i),A(r,n,i),I(o,r,i),s=!0},p(r,i){const a={};i&131072&&(a.$$scope={dirty:i,ctx:r}),e.$set(a);const l={};i&131072&&(l.$$scope={dirty:i,ctx:r}),o.$set(l)},i(r){s||(w(e.$$.fragment,r),w(o.$$.fragment,r),s=!0)},o(r){S(e.$$.fragment,r),S(o.$$.fragment,r),s=!1},d(r){r&&v(n),N(e,r),N(o,r)}}}function Ja(t){let e,n;return e=new Se({props:{slot:"input",type:V.checkbox,settingKey:"siyuan",settingValue:t[0].keeweb.plugin.siyuan.enable}}),e.$on("changed",t[8]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.settingValue=o[0].keeweb.plugin.siyuan.enable),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Ya(t){let e,n;return e=new Se({props:{slot:"input",type:V.number,settingKey:"width",settingValue:t[0].window.width,limits:{min:320,max:15360,step:40}}}),e.$on("changed",t[9]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.settingValue=o[0].window.width),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Xa(t){let e,n;return e=new Se({props:{slot:"input",type:V.number,settingKey:"height",settingValue:t[0].window.height,limits:{min:240,max:8640,step:40}}}),e.$on("changed",t[10]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.settingValue=o[0].window.height),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Qa(t){let e,n;return e=new Se({props:{slot:"input",type:V.checkbox,settingKey:"center",settingValue:t[0].window.center}}),e.$on("changed",t[11]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.settingValue=o[0].window.center),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Za(t){let e,n;return e=new Se({props:{slot:"input",type:V.checkbox,settingKey:"alwaysOnTop",settingValue:t[0].window.alwaysOnTop}}),e.$on("changed",t[12]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.settingValue=o[0].window.alwaysOnTop),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function xa(t){let e,n,o,s,r,i,a,l,u,c,f,g;return n=new we({props:{title:t[1].settings.keewebSettings.pluginTab.siyuan.title,text:t[1].settings.keewebSettings.pluginTab.siyuan.description,$$slots:{input:[Ja]},$$scope:{ctx:t}}}),r=new we({props:{title:t[1].settings.keewebSettings.windowTab.width.title,text:t[1].settings.keewebSettings.windowTab.width.description,$$slots:{input:[Ya]},$$scope:{ctx:t}}}),a=new we({props:{title:t[1].settings.keewebSettings.windowTab.height.title,text:t[1].settings.keewebSettings.windowTab.height.description,$$slots:{input:[Xa]},$$scope:{ctx:t}}}),u=new we({props:{title:t[1].settings.keewebSettings.windowTab.center.title,text:t[1].settings.keewebSettings.windowTab.center.description,$$slots:{input:[Qa]},$$scope:{ctx:t}}}),f=new we({props:{title:t[1].settings.keewebSettings.windowTab.top.title,text:t[1].settings.keewebSettings.windowTab.top.description,$$slots:{input:[Za]},$$scope:{ctx:t}}}),{c(){e=P("div"),R(n.$$.fragment),o=j(),s=P("div"),R(r.$$.fragment),i=j(),R(a.$$.fragment),l=j(),R(u.$$.fragment),c=j(),R(f.$$.fragment),y(e,"data-type",t[6].keeweb[0].name),k(e,"fn__none",t[6].keeweb[0].key!==t[16]),y(s,"data-type",t[6].keeweb[1].name),k(s,"fn__none",t[6].keeweb[1].key!==t[16])},m(d,h){A(d,e,h),I(n,e,null),A(d,o,h),A(d,s,h),I(r,s,null),L(s,i),I(a,s,null),L(s,l),I(u,s,null),L(s,c),I(f,s,null),g=!0},p(d,h){const b={};h&131073&&(b.$$scope={dirty:h,ctx:d}),n.$set(b),(!g||h&65600)&&k(e,"fn__none",d[6].keeweb[0].key!==d[16]);const p={};h&131073&&(p.$$scope={dirty:h,ctx:d}),r.$set(p);const C={};h&131073&&(C.$$scope={dirty:h,ctx:d}),a.$set(C);const G={};h&131073&&(G.$$scope={dirty:h,ctx:d}),u.$set(G);const ne={};h&131073&&(ne.$$scope={dirty:h,ctx:d}),f.$set(ne),(!g||h&65600)&&k(s,"fn__none",d[6].keeweb[1].key!==d[16])},i(d){g||(w(n.$$.fragment,d),w(r.$$.fragment,d),w(a.$$.fragment,d),w(u.$$.fragment,d),w(f.$$.fragment,d),g=!0)},o(d){S(n.$$.fragment,d),S(r.$$.fragment,d),S(a.$$.fragment,d),S(u.$$.fragment,d),S(f.$$.fragment,d),g=!1},d(d){d&&(v(e),v(o),v(s)),N(n),N(r),N(a),N(u),N(f)}}}function $a(t){let e,n;return e=new Aa({props:{focus:ol,tabs:t[6].keeweb,$$slots:{default:[xa,({focus:o})=>({16:o}),({focus:o})=>o?65536:0]},$$scope:{ctx:t}}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&196609&&(r.$$scope={dirty:s,ctx:o}),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function el(t){let e,n,o,s;return e=new In({props:{display:t[5][0].key===t[15],$$slots:{default:[Va]},$$scope:{ctx:t}}}),o=new In({props:{display:t[5][1].key===t[15],$$slots:{default:[$a]},$$scope:{ctx:t}}}),{c(){R(e.$$.fragment),n=j(),R(o.$$.fragment)},m(r,i){I(e,r,i),A(r,n,i),I(o,r,i),s=!0},p(r,i){const a={};i&32768&&(a.display=r[5][0].key===r[15]),i&131072&&(a.$$scope={dirty:i,ctx:r}),e.$set(a);const l={};i&32768&&(l.display=r[5][1].key===r[15]),i&131073&&(l.$$scope={dirty:i,ctx:r}),o.$set(l)},i(r){s||(w(e.$$.fragment,r),w(o.$$.fragment,r),s=!0)},o(r){S(e.$$.fragment,r),S(o.$$.fragment,r),s=!1},d(r){r&&v(n),N(e,r),N(o,r)}}}function tl(t){let e,n;return e=new ca({props:{panels:t[5],focus:nl,$$slots:{default:[el,({focus:o})=>({15:o}),({focus:o})=>o?32768:0]},$$scope:{ctx:t}}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,[s]){const r={};s&163841&&(r.$$scope={dirty:s,ctx:o}),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}let nl=0,ol=0;function sl(t,e,n){let{config:o}=e,{plugin:s}=e;const r=s.i18n;async function i(){await s.updateConfig(o)}function a(){s.siyuan.confirm(r.settings.generalSettings.reset.title,r.settings.generalSettings.reset.description,async()=>{await s.resetConfig(),globalThis.location.reload()})}function l(){s.siyuan.confirm(r.settings.generalSettings.deleteKeeWebConfig.title,r.settings.generalSettings.deleteKeeWebConfig.description,async()=>{await s.deleteKeeWebUserConfig()})}const u=[{key:0,text:r.settings.generalSettings.title,name:r.settings.generalSettings.title,icon:"#iconSettings"},{key:1,text:r.settings.keewebSettings.title,name:r.settings.keewebSettings.title,icon:"#icon-keepass-keeweb"}],c={keeweb:[{key:0,text:r.settings.keewebSettings.pluginTab.title,name:r.settings.keewebSettings.pluginTab.title,icon:"🧩"},{key:1,text:r.settings.keewebSettings.windowTab.title,name:r.settings.keewebSettings.windowTab.title,icon:"🗔"}]},f=async p=>{n(0,o.keeweb.plugin.siyuan.enable=p.detail.value,o),await i()},g=async p=>{n(0,o.window.width=p.detail.value,o),await i()},d=async p=>{n(0,o.window.height=p.detail.value,o),await i()},h=async p=>{n(0,o.window.center=p.detail.value,o),await i()},b=async p=>{n(0,o.window.alwaysOnTop=p.detail.value,o),await i()};return t.$$set=p=>{"config"in p&&n(0,o=p.config),"plugin"in p&&n(7,s=p.plugin)},[o,r,i,a,l,u,c,s,f,g,d,h,b]}class rl extends ${constructor(e){super(),x(this,e,sl,tl,z,{config:0,plugin:7})}}const ve=[];function me(t,e=K){let n;const o=new Set;function s(a){if(z(t,a)&&(t=a,n)){const l=!ve.length;for(const u of o)u[1](),ve.push(u,t);if(l){for(let u=0;u{o.delete(u),o.size===0&&n&&(n(),n=null)}}return{set:s,update:r,subscribe:i}}const il=t=>({}),Yn=t=>({});function Xn(t){let e,n;return e=new Ie({props:{id:t[1],icon:t[2]}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&2&&(r.id=o[1]),s&4&&(r.icon=o[2]),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function al(t){let e,n,o=t[2]&&Xn(t);return{c(){o&&o.c(),e=te()},m(s,r){o&&o.m(s,r),A(s,e,r),n=!0},p(s,r){s[2]?o?(o.p(s,r),r&4&&w(o,1)):(o=Xn(s),o.c(),w(o,1),o.m(e.parentNode,e)):o&&(re(),S(o,1,1,()=>{o=null}),ie())},i(s){n||(w(o),n=!0)},o(s){S(o),n=!1},d(s){s&&v(e),o&&o.d(s)}}}function ll(t){let e,n,o,s,r;const i=t[8].svg,a=J(i,t,t[7],Yn),l=a||al(t);return{c(){e=P("span"),l&&l.c(),n=j(),o=P("span"),s=ye(t[3]),y(o,"title",t[4]),y(o,"class","protyle-breadcrumb__text"),k(o,"protyle-breadcrumb__text--ellipsis",t[5]),y(e,"data-node-id",t[0]),y(e,"class","protyle-breadcrumb__item"),k(e,"protyle-breadcrumb__item--active",t[6])},m(u,c){A(u,e,c),l&&l.m(e,null),L(e,n),L(e,o),L(o,s),r=!0},p(u,[c]){a?a.p&&(!r||c&128)&&X(a,i,u,u[7],r?Y(i,u[7],c,il):Q(u[7]),Yn):l&&l.p&&(!r||c&6)&&l.p(u,r?c:-1),(!r||c&8)&&Vt(s,u[3]),(!r||c&16)&&y(o,"title",u[4]),(!r||c&32)&&k(o,"protyle-breadcrumb__text--ellipsis",u[5]),(!r||c&1)&&y(e,"data-node-id",u[0]),(!r||c&64)&&k(e,"protyle-breadcrumb__item--active",u[6])},i(u){r||(w(l,u),r=!0)},o(u){S(l,u),r=!1},d(u){u&&v(e),l&&l.d(u)}}}function cl(t,e,n){let{$$slots:o={},$$scope:s}=e,{itemId:r=""}=e,{iconId:i=""}=e,{icon:a=""}=e,{text:l=""}=e,{textTitle:u=""}=e,{textEllipsis:c=!0}=e,{active:f=!1}=e;return t.$$set=g=>{"itemId"in g&&n(0,r=g.itemId),"iconId"in g&&n(1,i=g.iconId),"icon"in g&&n(2,a=g.icon),"text"in g&&n(3,l=g.text),"textTitle"in g&&n(4,u=g.textTitle),"textEllipsis"in g&&n(5,c=g.textEllipsis),"active"in g&&n(6,f=g.active),"$$scope"in g&&n(7,s=g.$$scope)},[r,i,a,l,u,c,f,s,o]}class ul extends ${constructor(e){super(),x(this,e,cl,ll,z,{itemId:0,iconId:1,icon:2,text:3,textTitle:4,textEllipsis:5,active:6})}}function Qn(t,e,n){const o=t.slice();return o[3]=e[n],o[5]=n,o}function fl(t){let e,n;return e=new Ie({props:{className:"protyle-breadcrumb__arrow",icon:t[3].icon||"#iconRight"}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.icon=o[3].icon||"#iconRight"),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function hl(t){let e,n;const o=[t[3]];let s={};for(let r=0;r{l[g]=null}),ie()),~o?(s=l[o],s?s.p(e,f):(s=l[o]=a[o](e),s.c()),w(s,1),s.m(r.parentNode,r)):s=null)},i(c){i||(w(s),i=!0)},o(c){S(s),i=!1},d(c){c&&(v(n),v(r)),~o&&l[o].d(c)}}}function dl(t){let e=[],n=new Map,o,s,r=ue(t[0]);const i=a=>a[5];for(let a=0;a{"items"in i&&n(0,r=i.items),"$$scope"in i&&n(1,s=i.$$scope)},[r,s,o]}class gl extends ${constructor(e){super(),x(this,e,ml,pl,z,{items:0})}}var be=(t=>(t.none="",t.n="b3-tooltips__n",t.ne="b3-tooltips__ne",t.e="b3-tooltips__e",t.se="b3-tooltips__se",t.s="b3-tooltips__s",t.sw="b3-tooltips__sw",t.w="b3-tooltips__w",t.nw="b3-tooltips__nw",t))(be||{});function wt(t){let e,n,o,s,r,i;n=new Ie({props:{icon:t[0]}});let a=[{role:"button"},{"data-type":t[5]},{"aria-label":t[6]},{class:o="block__icon fn__flex-center "+t[7]}],l={};for(let u=0;unull}=e,d;const h={icon:me(o),show:me(r),none:me(i),active:me(a),disabled:me(l),type:me(u),ariaLabel:me(c),tooltipsDirection:me(f)},b=[h.icon.subscribe(T=>n(0,o=T)),h.show.subscribe(T=>n(1,r=T)),h.none.subscribe(T=>n(2,i=T)),h.active.subscribe(T=>n(3,a=T)),h.disabled.subscribe(T=>n(4,l=T)),h.type.subscribe(T=>n(5,u=T)),h.ariaLabel.subscribe(T=>n(6,c=T)),h.tooltipsDirection.subscribe(T=>n(7,f=T))];Xi(()=>{b.forEach(T=>T())});function p(T){An.call(this,t,T)}function C(T){An.call(this,t,T)}function G(T){$e[T?"unshift":"push"](()=>{d=T,n(10,d)})}const ne=T=>g(T,d,h);return t.$$set=T=>{"icon"in T&&n(0,o=T.icon),"tag"in T&&n(8,s=T.tag),"show"in T&&n(1,r=T.show),"none"in T&&n(2,i=T.none),"active"in T&&n(3,a=T.active),"disabled"in T&&n(4,l=T.disabled),"type"in T&&n(5,u=T.type),"ariaLabel"in T&&n(6,c=T.ariaLabel),"tooltipsDirection"in T&&n(7,f=T.tooltipsDirection),"onClick"in T&&n(9,g=T.onClick)},t.$$.update=()=>{t.$$.dirty&1&&h.icon.set(o),t.$$.dirty&2&&h.show.set(r),t.$$.dirty&4&&h.none.set(i),t.$$.dirty&8&&h.active.set(a),t.$$.dirty&16&&h.disabled.set(l),t.$$.dirty&32&&h.type.set(u),t.$$.dirty&64&&h.ariaLabel.set(c),t.$$.dirty&128&&h.tooltipsDirection.set(f)},[o,r,i,a,l,u,c,f,s,g,d,h,p,C,G,ne]}class yl extends ${constructor(e){super(),x(this,e,_l,bl,z,{icon:0,tag:8,show:1,none:2,active:3,disabled:4,type:5,ariaLabel:6,tooltipsDirection:7,onClick:9})}}function xn(t,e,n){const o=t.slice();return o[4]=e[n],o[6]=n,o}const wl=t=>({}),$n=t=>({}),kl=t=>({}),eo=t=>({});function Sl(t){let e,n;return e=new gl({props:{items:t[0]}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.items=o[0]),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function El(t){let e;return{c(){e=P("span"),y(e,"class","fn__space")},m(n,o){A(n,e,o)},d(n){n&&v(e)}}}function Tl(t){let e;return{c(){e=P("span"),y(e,"class","protyle-breadcrumb__space")},m(n,o){A(n,e,o)},d(n){n&&v(e)}}}function to(t,e){let n,o,s,r;function i(f,g){return f[6]===0?Tl:El}let a=i(e),l=a(e);const u=[e[4]];let c={};for(let f=0;fa[6];for(let a=0;a{"items"in a&&n(0,r=a.items),"icons"in a&&n(1,i=a.icons),"$$scope"in a&&n(2,s=a.$$scope)},[r,i,s,o]}class Pl extends ${constructor(e){super(),x(this,e,Ol,Al,z,{items:0,icons:1})}}const Cl=t=>({}),no=t=>({}),Bl=t=>({}),oo=t=>({});function so(t){let e,n;return e=new Pl({props:{items:t[2],icons:t[3]}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&4&&(r.items=o[2]),s&8&&(r.icons=o[3]),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Ll(t){let e,n,o=t[1]&&so(t);return{c(){o&&o.c(),e=te()},m(s,r){o&&o.m(s,r),A(s,e,r),n=!0},p(s,r){s[1]?o?(o.p(s,r),r&2&&w(o,1)):(o=so(s),o.c(),w(o,1),o.m(e.parentNode,e)):o&&(re(),S(o,1,1,()=>{o=null}),ie())},i(s){n||(w(o),n=!0)},o(s){S(o),n=!1},d(s){s&&v(e),o&&o.d(s)}}}function Dl(t){let e,n,o,s;const r=t[5].breadcrumb,i=J(r,t,t[4],oo),a=i||Ll(t),l=t[5].content,u=J(l,t,t[4],no);return{c(){e=P("div"),a&&a.c(),n=j(),o=P("div"),u&&u.c(),y(o,"class","protyle-preview"),y(e,"class","fn__flex-column"),k(e,"fullscreen",t[0])},m(c,f){A(c,e,f),a&&a.m(e,null),L(e,n),L(e,o),u&&u.m(o,null),s=!0},p(c,[f]){i?i.p&&(!s||f&16)&&X(i,r,c,c[4],s?Y(r,c[4],f,Bl):Q(c[4]),oo):a&&a.p&&(!s||f&14)&&a.p(c,s?f:-1),u&&u.p&&(!s||f&16)&&X(u,l,c,c[4],s?Y(l,c[4],f,Cl):Q(c[4]),no),(!s||f&1)&&k(e,"fullscreen",c[0])},i(c){s||(w(a,c),w(u,c),s=!0)},o(c){S(a,c),S(u,c),s=!1},d(c){c&&v(e),a&&a.d(c),u&&u.d(c)}}}function Il(t,e,n){let{$$slots:o={},$$scope:s}=e,{fullscreen:r=!1}=e,{breadcrumb:i=!0}=e,{breadcrumbItems:a=[]}=e,{breadcrumbIcons:l=[]}=e;return t.$$set=u=>{"fullscreen"in u&&n(0,r=u.fullscreen),"breadcrumb"in u&&n(1,i=u.breadcrumb),"breadcrumbItems"in u&&n(2,a=u.breadcrumbItems),"breadcrumbIcons"in u&&n(3,l=u.breadcrumbIcons),"$$scope"in u&&n(4,s=u.$$scope)},[r,i,a,l,s,o]}class Nl extends ${constructor(e){super(),x(this,e,Il,Dl,z,{fullscreen:0,breadcrumb:1,breadcrumbItems:2,breadcrumbIcons:3})}}function Rl(t){let e,n,o,s;return{c(){e=P("iframe"),Sn(e.src,n=t[0])||y(e,"src",n),y(e,"title",t[1]),y(e,"allow",t[2]),y(e,"csp",t[3]),y(e,"importance",t[4]),y(e,"name",t[5]),y(e,"referrerpolicy",t[6]),y(e,"sandbox",t[7]),y(e,"srcdoc",t[8]),y(e,"class","fn__flex fn__flex-1 iframe svelte-2g72x8")},m(r,i){A(r,e,i),t[11](e),o||(s=Wi(t[10].call(null,e)),o=!0)},p(r,[i]){i&1&&!Sn(e.src,n=r[0])&&y(e,"src",n),i&2&&y(e,"title",r[1]),i&4&&y(e,"allow",r[2]),i&8&&y(e,"csp",r[3]),i&16&&y(e,"importance",r[4]),i&32&&y(e,"name",r[5]),i&64&&y(e,"referrerpolicy",r[6]),i&128&&y(e,"sandbox",r[7]),i&256&&y(e,"srcdoc",r[8])},i:K,o:K,d(r){r&&v(e),t[11](null),o=!1,s()}}}function Ml(t,e,n){let{src:o=void 0}=e,{title:s=void 0}=e;const r=lt();let i,{allow:a=void 0}=e,{csp:l=void 0}=e,{importance:u=void 0}=e,{name:c=void 0}=e,{referrerpolicy:f=void 0}=e,{sandbox:g=void 0}=e,{srcdoc:d=void 0}=e;const h=p=>(r("create",{iframe:p}),{update(C){r("update",{iframe:i})},destroy(){r("destroy")}});function b(p){$e[p?"unshift":"push"](()=>{i=p,n(9,i)})}return t.$$set=p=>{"src"in p&&n(0,o=p.src),"title"in p&&n(1,s=p.title),"allow"in p&&n(2,a=p.allow),"csp"in p&&n(3,l=p.csp),"importance"in p&&n(4,u=p.importance),"name"in p&&n(5,c=p.name),"referrerpolicy"in p&&n(6,f=p.referrerpolicy),"sandbox"in p&&n(7,g=p.sandbox),"srcdoc"in p&&n(8,d=p.srcdoc)},[o,s,a,l,u,c,f,g,d,i,h,b]}class jl extends ${constructor(e){super(),x(this,e,Ml,Rl,z,{src:0,title:1,allow:2,csp:3,importance:4,name:5,referrerpolicy:6,sandbox:7,srcdoc:8})}}function Go(t){const e=globalThis.document.createElement("a");return e.href=t,new URL(e.href)}function Yt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Fl=function(){var t=document.getSelection();if(!t.rangeCount)return function(){};for(var e=document.activeElement,n=[],o=0;o"u"){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var f=ro[e.format]||ro.default;window.clipboardData.setData(f,t)}else c.clipboardData.clearData(),c.clipboardData.setData(e.format,t);e.onCopy&&(c.preventDefault(),e.onCopy(c.clipboardData))}),document.body.appendChild(a),r.selectNodeContents(a),i.addRange(r);var u=document.execCommand("copy");if(!u)throw new Error("copy command was unsuccessful");l=!0}catch(c){n&&console.error("unable to copy using execCommand: ",c),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",t),e.onCopy&&e.onCopy(window.clipboardData),l=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),o=Wl("message"in e?e.message:ql),window.prompt(o,t)}}finally{i&&(typeof i.removeRange=="function"?i.removeRange(r):i.removeAllRanges()),a&&document.body.removeChild(a),s()}return l}var Hl=Kl;const zl=Yt(Hl);function Gl(t){if(navigator.clipboard&&window.isSecureContext)return navigator.clipboard.writeText(t);zl(t)}function Vl(t,e){return t.startsWith(e)?t.slice(e.length):t}const Jl=new Map([["stage","iconFolder"],["assets","iconImage"],["assets","iconImage"],["emojies","iconEmoji"],["plugins","iconPlugin"],["public","iconCloud"],["snippets","iconCode"],["templates","iconMarkdown"],["widgets","iconBoth"],["appearance","iconTheme"],["export","iconUpload"],["history","iconHistory"]]);function Yl(t){return Jl.get(t)??"iconHelp"}function Xl(t){let e,n;return e=new jl({props:{src:t[0],title:t[1],slot:"content"}}),e.$on("create",t[5]),e.$on("destroy",t[6]),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,s){const r={};s&1&&(r.src=o[0]),s&2&&(r.title=o[1]),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}function Ql(t){let e,n;return e=new Nl({props:{fullscreen:t[2],breadcrumb:Zl,breadcrumbItems:t[3],breadcrumbIcons:t[4],$$slots:{content:[Xl]},$$scope:{ctx:t}}}),{c(){R(e.$$.fragment)},m(o,s){I(e,o,s),n=!0},p(o,[s]){const r={};s&4&&(r.fullscreen=o[2]),s&8&&(r.breadcrumbItems=o[3]),s&1027&&(r.$$scope={dirty:s,ctx:o}),e.$set(r)},i(o){n||(w(e.$$.fragment,o),n=!0)},o(o){S(e.$$.fragment,o),n=!1},d(o){N(e,o)}}}let Zl=!0;function xl(t,e,n){var d,h,b,p,C,G,ne,T;let o,{src:s}=e,{title:r}=e,i,a=!1,l=[],u=[{icon:"#iconCopy",type:"copy",ariaLabel:(h=(d=globalThis.siyuan)==null?void 0:d.languages)==null?void 0:h.copy,tooltipsDirection:be.sw,onClick(M,q,E){Gl(o.href)}},{icon:"#iconRefresh",type:"refresh",ariaLabel:(p=(b=globalThis.siyuan)==null?void 0:b.languages)==null?void 0:p.refresh,tooltipsDirection:be.sw,onClick(M,q,E){var H,U;(U=(H=i==null?void 0:i.contentWindow)==null?void 0:H.location)!=null&&U.reload?i.contentWindow.location.reload():n(0,s)}},{icon:"#iconOpenWindow",type:"open",ariaLabel:(G=(C=globalThis.siyuan)==null?void 0:C.languages)==null?void 0:G.useBrowserView,tooltipsDirection:be.sw,onClick(M,q,E){globalThis.open(s)}},{icon:"#iconFullscreen",type:"fullscreen",ariaLabel:(T=(ne=globalThis.siyuan)==null?void 0:ne.languages)==null?void 0:T.fullscreen,tooltipsDirection:be.sw,onClick(M,q,E){var U;const H=(E.active&&Ui(E.active))??a;n(2,a=!H),(U=E.active)==null||U.set(a)}}];function c(M){const q=[],E=[],H=M.origin===location.origin;q.push(`${M.protocol}//`),E.push({type:"item",get icon(){switch(M.protocol){case"https:":case"ftps:":return"#iconLock";case"http:":case"ftp:":return"#iconUnlock";default:return"#iconHelp"}},text:`${M.protocol}//`,textTitle:q.join(""),textEllipsis:!1},{type:"arrow"}),q.push(M.host),E.push({type:"item",get icon(){return H?"#iconSiYuan":"#iconLanguage"},text:M.host,textTitle:q.join(""),textEllipsis:!1,active:!0}),M.pathname.split("/").forEach((U,Ee)=>{U&&(q.push(`/${U}`),E.push({type:"arrow",icon:"#icon-keepass-slash"},{type:"item",icon:Ee===1&&H?`#${Yl(U)}`:void 0,text:U,textTitle:q.join(""),textEllipsis:!1}))}),M.search&&(q.push(M.search),E.push({type:"arrow"},{type:"item",text:M.search,textTitle:q.join(""),textEllipsis:!1,active:!1})),M.hash&&(q.push(M.hash),E.push({type:"arrow"},{type:"item",text:M.hash,textTitle:q.join(""),textEllipsis:!1,active:!1})),n(3,l=E)}function f(M){i=M.detail.iframe}function g(M){i=void 0}return t.$$set=M=>{"src"in M&&n(0,s=M.src),"title"in M&&n(1,r=M.title)},t.$$.update=()=>{t.$$.dirty&1&&n(7,o=Go(s)),t.$$.dirty&128&&c(o)},[s,r,a,l,u,f,g,o]}class $l extends ${constructor(e){super(),x(this,e,xl,Ql,z,{src:0,title:1})}}ec();nc();const kt=tc();function ec(){switch(ge.getFrontend()){case"desktop":case"desktop-window":case"browser-desktop":return!0;case"mobile":case"browser-mobile":return!1;default:return!1}}function tc(){switch(ge.getFrontend()){case"mobile":case"browser-mobile":return!0;case"desktop":case"desktop-window":case"browser-desktop":return!1;default:return!1}}function nc(){switch(ge.getFrontend()){case"browser-desktop":case"browser-mobile":return!0;case"desktop":case"desktop-window":case"mobile":return!1;default:return!1}}class oc{constructor(e,n=!0){this.label=e,this.collapsed=n}stdout(e,n,...o){const s=`[\x1B[4m${this.label}\x1B[0m] - <\x1B[1m${e.name.toUpperCase()}\x1B[0m>`;if(this.collapsed?globalThis.console.groupCollapsed(s):globalThis.console.group(s),n)for(const r of o)Array.isArray(r)?e(...r):e(r);else e(...o);globalThis.console.trace(),globalThis.console.groupEnd()}dir(...e){this.stdout(globalThis.console.dir,!1,...e)}dirs(...e){this.stdout(globalThis.console.dir,!0,...e)}table(...e){this.stdout(globalThis.console.table,!1,...e)}tables(...e){this.stdout(globalThis.console.table,!0,...e)}debug(...e){this.stdout(globalThis.console.debug,!1,...e)}debugs(...e){this.stdout(globalThis.console.debug,!0,...e)}info(...e){this.stdout(globalThis.console.info,!1,...e)}infos(...e){this.stdout(globalThis.console.info,!0,...e)}log(...e){this.stdout(globalThis.console.log,!1,...e)}logs(...e){this.stdout(globalThis.console.log,!0,...e)}warn(...e){this.stdout(globalThis.console.warn,!1,...e)}warns(...e){this.stdout(globalThis.console.warn,!0,...e)}error(...e){this.stdout(globalThis.console.error,!1,...e)}errors(...e){this.stdout(globalThis.console.error,!0,...e)}}var sc=function(e){return rc(e)&&!ic(e)};function rc(t){return!!t&&typeof t=="object"}function ic(t){var e=Object.prototype.toString.call(t);return e==="[object RegExp]"||e==="[object Date]"||cc(t)}var ac=typeof Symbol=="function"&&Symbol.for,lc=ac?Symbol.for("react.element"):60103;function cc(t){return t.$$typeof===lc}function uc(t){return Array.isArray(t)?[]:{}}function qe(t,e){return e.clone!==!1&&e.isMergeableObject(t)?Le(uc(t),t,e):t}function fc(t,e,n){return t.concat(e).map(function(o){return qe(o,n)})}function hc(t,e){if(!e.customMerge)return Le;var n=e.customMerge(t);return typeof n=="function"?n:Le}function dc(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[]}function io(t){return Object.keys(t).concat(dc(t))}function Vo(t,e){try{return e in t}catch{return!1}}function pc(t,e){return Vo(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))}function mc(t,e,n){var o={};return n.isMergeableObject(t)&&io(t).forEach(function(s){o[s]=qe(t[s],n)}),io(e).forEach(function(s){pc(t,s)||(Vo(t,s)&&n.isMergeableObject(e[s])?o[s]=hc(s,n)(t[s],e[s],n):o[s]=qe(e[s],n))}),o}function Le(t,e,n){n=n||{},n.arrayMerge=n.arrayMerge||fc,n.isMergeableObject=n.isMergeableObject||sc,n.cloneUnlessOtherwiseSpecified=qe;var o=Array.isArray(e),s=Array.isArray(t),r=o===s;return r?o?n.arrayMerge(t,e,n):mc(t,e,n):qe(e,n)}Le.all=function(e,n){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(o,s){return Le(o,s,n)},{})};var gc=Le,bc=gc;const _c=Yt(bc);function Ve(...t){return _c.all(t,{arrayMerge:(e,n,o)=>n})}function le(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function ao(t,e){for(var n="",o=0,s=-1,r=0,i,a=0;a<=t.length;++a){if(a2){var l=n.lastIndexOf("/");if(l!==n.length-1){l===-1?(n="",o=0):(n=n.slice(0,l),o=n.length-1-n.lastIndexOf("/")),s=a,r=0;continue}}else if(n.length===2||n.length===1){n="",o=0,s=a,r=0;continue}}e&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+t.slice(s+1,a):n=t.slice(s+1,a),o=a-s-1;s=a,r=0}else i===46&&r!==-1?++r:r=-1}return n}function yc(t,e){var n=e.dir||e.root,o=e.base||(e.name||"")+(e.ext||"");return n?n===e.root?n+o:n+t+o:o}var Ce={resolve:function(){for(var e="",n=!1,o,s=arguments.length-1;s>=-1&&!n;s--){var r;s>=0?r=arguments[s]:(o===void 0&&(o=process.cwd()),r=o),le(r),r.length!==0&&(e=r+"/"+e,n=r.charCodeAt(0)===47)}return e=ao(e,!n),n?e.length>0?"/"+e:"/":e.length>0?e:"."},normalize:function(e){if(le(e),e.length===0)return".";var n=e.charCodeAt(0)===47,o=e.charCodeAt(e.length-1)===47;return e=ao(e,!n),e.length===0&&!n&&(e="."),e.length>0&&o&&(e+="/"),n?"/"+e:e},isAbsolute:function(e){return le(e),e.length>0&&e.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var e,n=0;n0&&(e===void 0?e=o:e+="/"+o)}return e===void 0?".":Ce.normalize(e)},relative:function(e,n){if(le(e),le(n),e===n||(e=Ce.resolve(e),n=Ce.resolve(n),e===n))return"";for(var o=1;ou){if(n.charCodeAt(i+f)===47)return n.slice(i+f+1);if(f===0)return n.slice(i+f)}else r>u&&(e.charCodeAt(o+f)===47?c=f:f===0&&(c=0));break}var g=e.charCodeAt(o+f),d=n.charCodeAt(i+f);if(g!==d)break;g===47&&(c=f)}var h="";for(f=o+c+1;f<=s;++f)(f===s||e.charCodeAt(f)===47)&&(h.length===0?h+="..":h+="/..");return h.length>0?h+n.slice(i+c):(i+=c,n.charCodeAt(i)===47&&++i,n.slice(i))},_makeLong:function(e){return e},dirname:function(e){if(le(e),e.length===0)return".";for(var n=e.charCodeAt(0),o=n===47,s=-1,r=!0,i=e.length-1;i>=1;--i)if(n=e.charCodeAt(i),n===47){if(!r){s=i;break}}else r=!1;return s===-1?o?"/":".":o&&s===1?"//":e.slice(0,s)},basename:function(e,n){if(n!==void 0&&typeof n!="string")throw new TypeError('"ext" argument must be a string');le(e);var o=0,s=-1,r=!0,i;if(n!==void 0&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var a=n.length-1,l=-1;for(i=e.length-1;i>=0;--i){var u=e.charCodeAt(i);if(u===47){if(!r){o=i+1;break}}else l===-1&&(r=!1,l=i+1),a>=0&&(u===n.charCodeAt(a)?--a===-1&&(s=i):(a=-1,s=l))}return o===s?s=l:s===-1&&(s=e.length),e.slice(o,s)}else{for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===47){if(!r){o=i+1;break}}else s===-1&&(r=!1,s=i+1);return s===-1?"":e.slice(o,s)}},extname:function(e){le(e);for(var n=-1,o=0,s=-1,r=!0,i=0,a=e.length-1;a>=0;--a){var l=e.charCodeAt(a);if(l===47){if(!r){o=a+1;break}continue}s===-1&&(r=!1,s=a+1),l===46?n===-1?n=a:i!==1&&(i=1):n!==-1&&(i=-1)}return n===-1||s===-1||i===0||i===1&&n===s-1&&n===o+1?"":e.slice(n,s)},format:function(e){if(e===null||typeof e!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return yc("/",e)},parse:function(e){le(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return n;var o=e.charCodeAt(0),s=o===47,r;s?(n.root="/",r=1):r=0;for(var i=-1,a=0,l=-1,u=!0,c=e.length-1,f=0;c>=r;--c){if(o=e.charCodeAt(c),o===47){if(!u){a=c+1;break}continue}l===-1&&(u=!1,l=c+1),o===46?i===-1?i=c:f!==1&&(f=1):i!==-1&&(f=-1)}return i===-1||l===-1||f===0||f===1&&i===l-1&&i===a+1?l!==-1&&(a===0&&s?n.base=n.name=e.slice(1,l):n.base=n.name=e.slice(a,l)):(a===0&&s?(n.name=e.slice(1,i),n.base=e.slice(1,l)):(n.name=e.slice(a,i),n.base=e.slice(a,l)),n.ext=e.slice(i,l)),a>0?n.dir=e.slice(0,a-1):s&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};Ce.posix=Ce;var wc=Ce;const kc=Yt(wc);function ee(...t){return kc.join(...t)}function lo(t){return Array.isArray(t)?new Set(t):t}function Sc(t,e){return new Set([...t].filter(n=>e.has(n)))}function co(t,e){return new Set([...t].filter(n=>!e.has(n)))}function St(t,e){const n=lo(t),o=lo(e);return{insert:co(n,o),update:Sc(n,o),delete:co(o,n)}}const Jo=Ac();Yo();Oc();function Ec(){return!!globalThis.require}function Tc(){return!!globalThis.process}function vc(){var t,e;return!!((e=(t=globalThis.process)==null?void 0:t.versions)!=null&&e.hasOwnProperty("electron"))}function Ac(){return Tc()&&Ec()&&vc()}function Yo(){var n,o,s,r,i,a;switch((s=(o=(n=globalThis==null?void 0:globalThis.document)==null?void 0:n.documentElement)==null?void 0:o.dataset)==null?void 0:s.themeMode){case"light":return!0;case"dark":return!1}switch((a=(i=(r=globalThis==null?void 0:globalThis.siyuan)==null?void 0:r.config)==null?void 0:i.appearance)==null?void 0:a.mode){case 0:return!0;case 1:return!1}return window.matchMedia("(prefers-color-scheme: light)").matches}function Oc(){return!Yo()}function Pc(t=!0,e=(n=>(n=globalThis.process)==null?void 0:n.platform)()==="darwin"){const o=[{role:"about"},...e?[{type:"separator"},{role:"help"},{type:"separator"},{role:"services"},{type:"separator"},{role:"hide"},{role:"hideOthers"},{role:"unhide"}]:[],{type:"separator"},{role:"quit"}],s=[...e?[{role:"recentDocuments"},{role:"clearRecentDocuments"},{type:"separator"}]:[],{role:"close"}],r=[{role:"undo"},{role:"redo"},{type:"separator"},{role:"cut"},{role:"copy"},{role:"paste"},{role:"pasteAndMatchStyle"},{role:"delete"},{type:"separator"},{role:"selectAll"},{type:"separator"},{role:"toggleSpellChecker"},...e?[{type:"separator"},{role:"showSubstitutions"},{role:"toggleTextReplacement"},{type:"separator"},{role:"toggleSmartQuotes"},{role:"toggleSmartDashes"},{type:"separator"},{role:"startSpeaking"},{role:"stopSpeaking"}]:[]],i=[{role:"reload"},{role:"forceReload"},{type:"separator"},{role:"resetZoom"},{role:"zoomIn",accelerator:"CmdOrCtrl+="},{role:"zoomOut"},...e?[{role:"zoom"},{type:"separator"},{role:"front"}]:[{type:"separator"},{label:"Toggle On Top",click:(u,c,f)=>{c&&c.setAlwaysOnTop(!c.isAlwaysOnTop())},type:"checkbox",checked:t,accelerator:"CmdOrCtrl+Shift+Space"}],{role:"togglefullscreen"},{type:"separator"},{role:"toggleDevTools"}],a=[...e?[{role:"window"},{type:"separator"},{role:"toggleTabBar"},{role:"selectNextTab"},{role:"selectPreviousTab"},{role:"mergeAllWindows"},{role:"moveTabToNewWindow"},{type:"separator"}]:[],{role:"minimize"},{role:"close"}],l=[{role:"appMenu",submenu:o},{role:"fileMenu",submenu:s},{role:"editMenu",submenu:r},{role:"viewMenu",submenu:i},{role:"windowMenu",submenu:a}];return e&&l.push({role:"shareMenu"}),l}function Cc(t){var s,r,i,a;t.base.center&&(delete t.base.x,delete t.base.y);const{BrowserWindow:e,Menu:n}=globalThis.require("@electron/remote"),o=new e(t.base);if((s=t.extra)!=null&&s.enableMenuBar)if((r=t.extra)!=null&&r.menu)o.setMenu(t.extra.menu);else{const l=n.buildFromTemplate(Pc(t.base.alwaysOnTop));o.setMenu(l)}else o.removeMenu();return(i=t.extra)!=null&&i.enableElectron&&globalThis.require("@electron/remote").require("@electron/remote/main").enable(o.webContents),o.loadURL(t.url.toString(),(a=t.extra)==null?void 0:a.loadURLOptions),o}function Bc(t){var o,s,r;t.base.center&&(t.base.width&&(t.base.x=(globalThis.screen.width-t.base.width)/2),t.base.height&&(t.base.y=(globalThis.screen.height-t.base.height)/2));const e=["popup = true"];return t.base.x!==void 0&&e.push(`left = ${t.base.x}`),t.base.y!==void 0&&e.push(`top = ${t.base.y}`),t.base.width!==void 0&&e.push(`width = ${t.base.width}`),t.base.height!==void 0&&e.push(`height = ${t.base.height}`),((o=t.extra)==null?void 0:o.noopener)!==void 0&&e.push(`noopener = ${t.extra.noopener}`),((s=t.extra)==null?void 0:s.noreferrer)!==void 0&&e.push(`noreferrer = ${t.extra.noreferrer}`),globalThis.open(t.url.toString(),(r=t.extra)==null?void 0:r.target,e.join(", "))}function Lc(t){return Jo?Cc(t):Bc(t)}var Xt=!1;globalThis.document.documentElement.addEventListener("blur",()=>Xt=!1);globalThis.document.documentElement.addEventListener("focus",()=>Xt=!0);function Dc(){return Jo?!globalThis.document.body.classList.contains("body--blur"):Xt}const Je={keeweb:{plugin:{siyuan:{enable:!0}}},window:{width:800,height:600,center:!1,alwaysOnTop:!0}},O=class O extends ge.Plugin{constructor(n){super(n);B(this,"siyuan",ge);B(this,"logger");B(this,"client");B(this,"SETTINGS_DIALOG_ID");B(this,"TOP_BAR_MENU_ID");B(this,"KEEWEB_BASE_PATHNAME");B(this,"KEEWEB_INDEX_PATHNAME");B(this,"KEEWEB_PLUGIN_PATHANEM");B(this,"KEEWEB_INDEX_URL");B(this,"PLUGIN_INSTALL_PATH");B(this,"PLUGIN_STORAGE_PATH");B(this,"PLUGIN_STORAGE_IDB_PATH");B(this,"CUSTOM_TAB_ID_KEEWEB");B(this,"keewebTab");B(this,"manifest");B(this,"config",Ve(Je));B(this,"local",{});B(this,"idb");B(this,"topBarButton");B(this,"storageEventListener",async n=>{if(n.storageArea===globalThis.localStorage){let o=!1;if(n.key===null)this.local={},o=!0;else if(this.isLocalStorageKey(n.key))switch(n.newValue===null?(delete this.local[n.key],o=!0):(this.local[n.key]=JSON.parse(n.newValue),o=!0),n.key){case O.LOCAL_STORAGE_KEY_PLUGINS:this.saveKeeWebPluginConfig(),await this.saveIDB(O.IDB_SCHEMA.PluginFiles.name);break;case O.LOCAL_STORAGE_KEY_FILE_INFO:await this.saveIDB(O.IDB_SCHEMA.FilesCache.name);break}o&&await this.saveLocal()}});B(this,"openKeeWebTab",async()=>{ge.openTab({app:this.app,custom:{icon:"icon-keepass-keeweb",title:"KeeWeb",id:this.CUSTOM_TAB_ID_KEEWEB,data:{src:Vl(this.KEEWEB_INDEX_URL.href,globalThis.document.baseURI),title:"KeeWeb"}},keepCursor:!1,removeCurrentTab:!1})});B(this,"openKeeWebBrowser",async()=>{globalThis.open(this.KEEWEB_INDEX_URL.href)});B(this,"openKeeWebWindow",async(n=!Dc())=>{var o,s;Lc({url:this.KEEWEB_INDEX_URL,base:{center:n||this.config.window.center,width:this.config.window.width,height:this.config.window.height,alwaysOnTop:this.config.window.alwaysOnTop,x:((o=globalThis.siyuan.coordinates)==null?void 0:o.screenX)??0,y:((s=globalThis.siyuan.coordinates)==null?void 0:s.screenY)??0},extra:{enableMenuBar:!0}})});const o=new URL(globalThis.document.baseURI);this.logger=new oc(this.name),this.client=new Ni(void 0,"fetch"),this.SETTINGS_DIALOG_ID=`${this.name}-settings-dialog`,this.TOP_BAR_MENU_ID=`${this.name}-top-bar-menu`,this.KEEWEB_BASE_PATHNAME=ee(o.pathname,"plugins",this.name,"keeweb"),this.KEEWEB_INDEX_PATHNAME=ee(this.KEEWEB_BASE_PATHNAME,"app"),this.KEEWEB_PLUGIN_PATHANEM=ee(this.KEEWEB_BASE_PATHNAME,"plugins/siyuan"),this.KEEWEB_INDEX_URL=Go(`${this.KEEWEB_INDEX_PATHNAME}/?v=${ls.version}`),this.PLUGIN_INSTALL_PATH=`/data/plugins/${this.name}`,this.PLUGIN_STORAGE_PATH=`/data/storage/petal/${this.name}`,this.PLUGIN_STORAGE_IDB_PATH=ee(this.PLUGIN_STORAGE_PATH,"idb"),this.CUSTOM_TAB_ID_KEEWEB=`${this.name}${O.CUSTOM_TAB_TYPE_KEEWEB}`,this.keewebTab=this.addTab({type:O.CUSTOM_TAB_TYPE_KEEWEB,init(){const s=this;s.component=new $l({target:s.element,props:{...s.data}})},destroy(){var r;(r=this.component)==null||r.$destroy()}})}static iterateIDB(n=O.IDB_SCHEMA){const o=[];for(const[s,r]of Object.entries(n))for(const i of Object.keys(r.stores))o.push({db:s,store:i});return o}onload(){this.addIcons([Ri,Mi].join("")),this.addCommand({langKey:"open-keeweb-tab",langText:this.i18n.menu.command.openKeeWebTab.text,hotkey:"⌥⌘K",customHotkey:"",callback:this.openKeeWebTab}),this.addCommand({langKey:"open-keeweb-browser",langText:this.i18n.menu.command.openKeeWebBrowser.text,hotkey:"",customHotkey:"",callback:this.openKeeWebBrowser}),this.addCommand({langKey:"open-keeweb-window",langText:this.i18n.menu.command.openKeeWebWindow.text,hotkey:"⌥⇧K",customHotkey:"",globalCallback:()=>{this.openKeeWebWindow()}}),this.loadData(O.GLOBAL_CONFIG_NAME).then(n=>{n?this.config=Ve(Je,n):this.config=Ve(Je)}).catch(n=>this.logger.error(n)).finally(async()=>{await this.initIDB(),await this.initFiles(),await this.loadIDB(),await this.loadLocalStorage(),await this.updateKeeWebPluginStatus(),globalThis.addEventListener("storage",this.storageEventListener)})}onLayoutReady(){this.topBarButton=this.addTopBar({icon:"icon-keepass-keeweb",title:this.displayName,position:"right",callback:n=>{var s,r,i,a;const o=new ge.Menu(this.TOP_BAR_MENU_ID);o.addItem({icon:"iconLayout",label:this.i18n.menu.command.openKeeWebTab.text,click:this.openKeeWebTab}),o.addItem({icon:"iconLanguage",label:this.i18n.menu.command.openKeeWebBrowser.text,click:this.openKeeWebBrowser}),o.addItem({icon:"iconOpenWindow",label:this.i18n.menu.command.openKeeWebWindow.text,click:()=>this.openKeeWebWindow(!1)}),kt?o.fullscreen():o.open({x:((r=(s=globalThis.siyuan)==null?void 0:s.coordinates)==null?void 0:r.pageX)??0,y:((a=(i=globalThis.siyuan)==null?void 0:i.coordinates)==null?void 0:a.pageY)??0,isLeft:!0})}})}onunload(){globalThis.removeEventListener("storage",this.storageEventListener),this.saveLocalStorage(),this.saveIDB()}openSetting(){const n=this,s=new ge.Dialog({title:`${this.displayName} ${this.name}`,content:`
`,width:kt?"92vw":"720px",height:kt?void 0:"640px"}).element.querySelector(`#${n.SETTINGS_DIALOG_ID}`);s&&new rl({target:s,props:{config:this.config,plugin:this}})}async initIDB(){this.idb={FilesCache:await xt(O.IDB_SCHEMA.FilesCache.name,void 0,this.createOpenDBCallbacks(O.IDB_SCHEMA.FilesCache.name)),PluginFiles:await xt(O.IDB_SCHEMA.PluginFiles.name,void 0,this.createOpenDBCallbacks(O.IDB_SCHEMA.PluginFiles.name))}}async initFiles(){await Promise.allSettled(O.IDB_ENTRIES.map(({db:n,store:o})=>this.client.putFile({path:ee(this.PLUGIN_STORAGE_IDB_PATH,n,o),isDir:!0}))),await this.loadKeeWebPluginManifest()}async resetConfig(){return this.updateConfig(Ve(Je))}async updateConfig(n){return n&&n!==this.config&&(this.config=n),await this.updateKeeWebPluginStatus(),this.saveData(O.GLOBAL_CONFIG_NAME,JSON.stringify(this.config,void 0,4))}async deleteKeeWebUserConfig(){this.removeLocalStorageItems(),await Promise.allSettled([this.idb.FilesCache.clear(O.IDB_SCHEMA.FilesCache.stores.files.name),this.idb.PluginFiles.clear(O.IDB_SCHEMA.PluginFiles.stores.files.name)]),await Promise.allSettled([this.saveLocalStorage(),this.saveIDB()]),await this.updateKeeWebPluginStatus()}async updateKeeWebPluginStatus(){switch(!0){case(!this.isKeeWebSiyuanPluginInstalled&&this.config.keeweb.plugin.siyuan.enable):await this.installKeeWebPlugin();break;case(this.isKeeWebSiyuanPluginInstalled&&!this.config.keeweb.plugin.siyuan.enable):await this.uninstallKeeWebPlugin();break}}async loadLocalStorage(){const n=await this.loadLocal(),o=this.getLocalStorageItems(),s=Object.keys(n),r=Object.keys(o);return St(s,r).delete.forEach(a=>globalThis.localStorage.removeItem(a)),this.setLocalStorageItems(this.local),n}async saveLocalStorage(){return this.local=this.getLocalStorageItems(),this.saveLocal(this.local)}async loadLocal(){try{const n=await this.loadData(O.LOCAL_STORAGE_NAME);return this.local=n instanceof Object?n:{},this.local}catch(n){throw this.logger.error(n),n}}async saveLocal(n=this.local){try{return await this.saveData(O.LOCAL_STORAGE_NAME,JSON.stringify(n,void 0,4)),!0}catch(o){return this.logger.error(o),!1}}setLocalStorageItem(n,o){globalThis.localStorage.setItem(n,JSON.stringify(o))}setLocalStorageItems(n=this.local){for(const[o,s]of Object.entries(n))this.setLocalStorageItem(o,s)}getLocalStorageItem(n){const o=globalThis.localStorage.getItem(n);return o===null?o:JSON.parse(o)}getLocalStorageItems(){const n={};for(const[o,s]of Object.entries(globalThis.localStorage))this.isLocalStorageKey(o)&&(n[o]=JSON.parse(s));return n}removeLocalStorageItems(){for(const n of Object.keys(globalThis.localStorage))this.isLocalStorageKey(n)&&globalThis.localStorage.removeItem(n)}async loadIDB(){for(const n of O.IDB_ENTRIES)try{const o=ee(this.PLUGIN_STORAGE_IDB_PATH,n.db,n.store),r=(await this.client.readDir({path:o})).data.filter(f=>!f.isDir).map(f=>f.name),i=await this.idb[n.db].getAllKeys(n.store),a=St(r,i),l=this.idb[n.db].transaction(n.store,"readwrite"),u=l.objectStore(n.store);(await Promise.allSettled([...[...a.delete].map(f=>u.delete(f)),...r.map(f=>(async()=>{const g=await this.client.getFile({path:ee(o,f)},"arraybuffer");await this.idb[n.db].put(n.store,g,f)})()),l.done])).forEach(f=>{f.status==="rejected"&&this.logger.warn(f.reason)})}catch(o){this.logger.warn(o)}}async saveIDB(...n){const o=new Set(n),s=o.size>0?O.IDB_ENTRIES.filter(r=>o.has(r.db)):O.IDB_ENTRIES;for(const r of s)try{const i=ee(this.PLUGIN_STORAGE_IDB_PATH,r.db,r.store),l=(await this.client.readDir({path:i})).data.filter(h=>!h.isDir).map(h=>h.name),u=await this.idb[r.db].getAllKeys(r.store),c=St(u,l),f=this.idb[r.db].transaction(r.store),g=f.objectStore(r.store);(await Promise.allSettled([...[...c.delete].map(h=>this.client.removeFile({path:ee(i,h)})),...u.map(h=>(async()=>{const b=await g.get(h);return b?this.client.putFile({path:ee(i,h),file:b}):void 0})()),f.done])).forEach(h=>{h.status==="rejected"&&this.logger.warn(h.reason)})}catch(i){this.logger.warn(i)}}isLocalStorageKey(n,o=O.LOCAL_STORAGE_KEY_PREFIX){return n.startsWith(o)}createOpenDBCallbacks(n){return{upgrade(o){for(const[s,r]of Object.entries(O.IDB_SCHEMA[n].stores))o.createObjectStore(r.name)}}}async copyKeeWebPluginFile(n){const o=`plugin.${n}`,s=ee(this.PLUGIN_INSTALL_PATH,"keeweb/plugins/siyuan",o),r=await this.client.getFile({path:s},"blob");return this.client.putFile({path:ee(this.PLUGIN_STORAGE_IDB_PATH,O.IDB_SCHEMA.PluginFiles.name,O.IDB_SCHEMA.PluginFiles.stores.files.name,`siyuan_${o}`),file:r})}async putKeeWebPluginFile(n){const o=`plugin.${n}`,s=`${this.manifest.name}_${o}`,r=ee(this.PLUGIN_INSTALL_PATH,"keeweb/plugins/siyuan",o),i=await this.client.getFile({path:r},"arraybuffer");await this.idb.PluginFiles.put(O.IDB_SCHEMA.PluginFiles.stores.files.name,i,s)}async deleteKeeWebPluginFile(n){const o=`${this.manifest.name}_plugin.${n}`;await this.idb.PluginFiles.delete(O.IDB_SCHEMA.PluginFiles.stores.files.name,o)}async loadKeeWebPluginManifest(){return this.manifest||(this.manifest=await this.client.getFile({path:ee(this.PLUGIN_INSTALL_PATH,"keeweb/plugins/siyuan","manifest.json")},"json")),this.manifest}saveKeeWebPluginConfig(){var s;const n=this.local[O.LOCAL_STORAGE_KEY_PLUGINS];((s=n==null?void 0:n.plugins)==null?void 0:s.find(r=>{var i;return((i=r==null?void 0:r.manifest)==null?void 0:i.name)===this.manifest.name}))?this.config.keeweb.plugin.siyuan.enable=!0:this.config.keeweb.plugin.siyuan.enable=!1}getKeeWebSiyuanPlugin(){var n=this.local[O.LOCAL_STORAGE_KEY_PLUGINS],o;return n?Array.isArray(n.plugins)?o=n.plugins.find(s=>{var r;return((r=s==null?void 0:s.manifest)==null?void 0:r.name)===this.manifest.name}):n.plugins=[]:(n={autoUpdateDate:null,autoUpdateAppVersion:null,plugins:[]},this.local[O.LOCAL_STORAGE_KEY_PLUGINS]=n),{plugins:n,plugin:o}}get isKeeWebSiyuanPluginInstalled(){const{plugin:n}=this.getKeeWebSiyuanPlugin();return!!n}async installKeeWebPlugin(){var{plugins:n,plugin:o}=this.getKeeWebSiyuanPlugin();o||n.plugins.push({manifest:this.manifest,url:this.KEEWEB_PLUGIN_PATHANEM,enabled:!0,autoUpdate:!0}),this.config.keeweb.plugin.siyuan.enable=!0,this.setLocalStorageItem(O.LOCAL_STORAGE_KEY_PLUGINS,n),await Promise.allSettled([this.putKeeWebPluginFile("js"),this.putKeeWebPluginFile("css")]),await Promise.allSettled([this.saveIDB(O.IDB_SCHEMA.PluginFiles.name),this.saveLocal(),this.updateConfig()])}async uninstallKeeWebPlugin(){const{plugins:n,plugin:o}=this.getKeeWebSiyuanPlugin();if(o){const s=n.plugins.indexOf(o);n.plugins.splice(s,1)}this.config.keeweb.plugin.siyuan.enable=!1,this.setLocalStorageItem(O.LOCAL_STORAGE_KEY_PLUGINS,n),await Promise.allSettled([this.deleteKeeWebPluginFile("js"),this.deleteKeeWebPluginFile("css")]),await Promise.allSettled([this.saveIDB(O.IDB_SCHEMA.PluginFiles.name),this.saveLocal(),this.updateConfig()])}};B(O,"GLOBAL_CONFIG_NAME","config.json"),B(O,"LOCAL_STORAGE_NAME","local.json"),B(O,"LOCAL_STORAGE_KEY_PREFIX","plugin-keepass-"),B(O,"LOCAL_STORAGE_KEY_PLUGINS",`${O.LOCAL_STORAGE_KEY_PREFIX}plugins`),B(O,"LOCAL_STORAGE_KEY_FILE_INFO",`${O.LOCAL_STORAGE_KEY_PREFIX}file-info`),B(O,"CUSTOM_TAB_TYPE_KEEWEB","-keeweb-tab"),B(O,"IDB_SCHEMA",{FilesCache:{name:"FilesCache",stores:{files:{name:"files"}}},PluginFiles:{name:"PluginFiles",stores:{files:{name:"files"}}}}),B(O,"IDB_ENTRIES",O.iterateIDB());let Mt=O;module.exports=Mt; diff --git a/keeweb/app/404.html b/keeweb/app/404.html new file mode 100644 index 0000000..dc38b79 --- /dev/null +++ b/keeweb/app/404.html @@ -0,0 +1,28 @@ + + + + + Not Found + + + +

404 Not Found

+

Sorry, the page you're looking for was not found.

+ + diff --git a/keeweb/app/browserconfig.xml b/keeweb/app/browserconfig.xml new file mode 100644 index 0000000..57b24d9 --- /dev/null +++ b/keeweb/app/browserconfig.xml @@ -0,0 +1,12 @@ + + + + + + + + + #6386ec + + + diff --git a/keeweb/app/icons/android-chrome-192x192.png b/keeweb/app/icons/android-chrome-192x192.png new file mode 100644 index 0000000..c87012f Binary files /dev/null and b/keeweb/app/icons/android-chrome-192x192.png differ diff --git a/keeweb/app/icons/android-chrome-512x512.png b/keeweb/app/icons/android-chrome-512x512.png new file mode 100644 index 0000000..aa075ac Binary files /dev/null and b/keeweb/app/icons/android-chrome-512x512.png differ diff --git a/keeweb/app/icons/apple-touch-icon.png b/keeweb/app/icons/apple-touch-icon.png new file mode 100644 index 0000000..589634e Binary files /dev/null and b/keeweb/app/icons/apple-touch-icon.png differ diff --git a/keeweb/app/icons/favicon-16x16.png b/keeweb/app/icons/favicon-16x16.png new file mode 100644 index 0000000..33a0828 Binary files /dev/null and b/keeweb/app/icons/favicon-16x16.png differ diff --git a/keeweb/app/icons/favicon-32x32.png b/keeweb/app/icons/favicon-32x32.png new file mode 100644 index 0000000..e67e6cb Binary files /dev/null and b/keeweb/app/icons/favicon-32x32.png differ diff --git a/keeweb/app/icons/mstile-150x150.png b/keeweb/app/icons/mstile-150x150.png new file mode 100644 index 0000000..86ee52d Binary files /dev/null and b/keeweb/app/icons/mstile-150x150.png differ diff --git a/keeweb/app/icons/mstile-310x150.png b/keeweb/app/icons/mstile-310x150.png new file mode 100644 index 0000000..c3a1a39 Binary files /dev/null and b/keeweb/app/icons/mstile-310x150.png differ diff --git a/keeweb/app/icons/mstile-310x310.png b/keeweb/app/icons/mstile-310x310.png new file mode 100644 index 0000000..d347e6d Binary files /dev/null and b/keeweb/app/icons/mstile-310x310.png differ diff --git a/keeweb/app/icons/mstile-70x70.png b/keeweb/app/icons/mstile-70x70.png new file mode 100644 index 0000000..8bdcce5 Binary files /dev/null and b/keeweb/app/icons/mstile-70x70.png differ diff --git a/keeweb/app/icons/safari-pinned-tab.svg b/keeweb/app/icons/safari-pinned-tab.svg new file mode 100644 index 0000000..076d208 --- /dev/null +++ b/keeweb/app/icons/safari-pinned-tab.svg @@ -0,0 +1 @@ + diff --git a/keeweb/app/icons/splash-1125x2436.png b/keeweb/app/icons/splash-1125x2436.png new file mode 100644 index 0000000..068c4be Binary files /dev/null and b/keeweb/app/icons/splash-1125x2436.png differ diff --git a/keeweb/app/icons/splash-1242x2148.png b/keeweb/app/icons/splash-1242x2148.png new file mode 100644 index 0000000..a55d47d Binary files /dev/null and b/keeweb/app/icons/splash-1242x2148.png differ diff --git a/keeweb/app/icons/splash-1536x2048.png b/keeweb/app/icons/splash-1536x2048.png new file mode 100644 index 0000000..c3cd073 Binary files /dev/null and b/keeweb/app/icons/splash-1536x2048.png differ diff --git a/keeweb/app/icons/splash-1668x2224.png b/keeweb/app/icons/splash-1668x2224.png new file mode 100644 index 0000000..107bdcf Binary files /dev/null and b/keeweb/app/icons/splash-1668x2224.png differ diff --git a/keeweb/app/icons/splash-2048x2732.png b/keeweb/app/icons/splash-2048x2732.png new file mode 100644 index 0000000..a300001 Binary files /dev/null and b/keeweb/app/icons/splash-2048x2732.png differ diff --git a/keeweb/app/icons/splash-640x1136.png b/keeweb/app/icons/splash-640x1136.png new file mode 100644 index 0000000..cbb1abc Binary files /dev/null and b/keeweb/app/icons/splash-640x1136.png differ diff --git a/keeweb/app/icons/splash-750x1294.png b/keeweb/app/icons/splash-750x1294.png new file mode 100644 index 0000000..9d87f0a Binary files /dev/null and b/keeweb/app/icons/splash-750x1294.png differ diff --git a/keeweb/app/index.html b/keeweb/app/index.html new file mode 100644 index 0000000..900f521 --- /dev/null +++ b/keeweb/app/index.html @@ -0,0 +1,78184 @@ + + + + + KeeWeb + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keeweb/app/manifest.json b/keeweb/app/manifest.json new file mode 100644 index 0000000..65a3d2b --- /dev/null +++ b/keeweb/app/manifest.json @@ -0,0 +1,22 @@ +{ + "name": "KeeWeb", + "short_name": "KeeWeb", + "description": "Free cross-platform password manager compatible with KeePass", + "start_url": "./", + "scope": "./", + "display": "standalone", + "theme_color": "#6386ec", + "background_color": "#6386ec", + "icons": [ + { + "src": "icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/keeweb/app/oauth-result/dropbox.html b/keeweb/app/oauth-result/dropbox.html new file mode 100644 index 0000000..5876caa --- /dev/null +++ b/keeweb/app/oauth-result/dropbox.html @@ -0,0 +1,16 @@ + + + + + KeeWeb + + + + + diff --git a/keeweb/app/oauth-result/gdrive.html b/keeweb/app/oauth-result/gdrive.html new file mode 100644 index 0000000..80239ab --- /dev/null +++ b/keeweb/app/oauth-result/gdrive.html @@ -0,0 +1,16 @@ + + + + + KeeWeb + + + + + diff --git a/keeweb/app/oauth-result/onedrive.html b/keeweb/app/oauth-result/onedrive.html new file mode 100644 index 0000000..e914c41 --- /dev/null +++ b/keeweb/app/oauth-result/onedrive.html @@ -0,0 +1,16 @@ + + + + + KeeWeb + + + + + diff --git a/keeweb/app/oauth-result/teams.html b/keeweb/app/oauth-result/teams.html new file mode 100644 index 0000000..a07583e --- /dev/null +++ b/keeweb/app/oauth-result/teams.html @@ -0,0 +1,16 @@ + + + + + KeeWeb + + + + + diff --git a/keeweb/app/service-worker.js b/keeweb/app/service-worker.js new file mode 100644 index 0000000..412b8bc --- /dev/null +++ b/keeweb/app/service-worker.js @@ -0,0 +1,19 @@ +const VERSION = '1.18.7'; + +self.addEventListener('install', (event) => + event.waitUntil( + caches.open('v1').then((cache) => + fetch('.?v=' + VERSION).then((response) => { + if (response.ok) { + return cache.put('.', response); + } + }) + ) + ) +); + +self.addEventListener('fetch', (event) => { + event.respondWith( + caches.match(event.request.url).then((response) => response || fetch(event.request)) + ); +}); diff --git a/keeweb/app/update.json b/keeweb/app/update.json new file mode 100644 index 0000000..effb64e --- /dev/null +++ b/keeweb/app/update.json @@ -0,0 +1,4 @@ +{ + "version": "1.18.7", + "date": "2023-10-22" +} diff --git a/keeweb/plugins/404.html b/keeweb/plugins/404.html new file mode 100644 index 0000000..f67b45a --- /dev/null +++ b/keeweb/plugins/404.html @@ -0,0 +1,27 @@ + + + + + Not Found + + + +

404 Not Found

+

Sorry, the page you're looking for was not found.

+ + diff --git a/keeweb/plugins/create.html b/keeweb/plugins/create.html new file mode 100644 index 0000000..f1691ca --- /dev/null +++ b/keeweb/plugins/create.html @@ -0,0 +1,412 @@ + + + + + KeeWeb Plugin Creation Tool + + + + + + + +

KeeWeb Plugin Creation Tool

+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+

Theme colors:

+ + + + + +
+ Normal text and error + + +
    +
  • Here's a menu
  • +
  • I'm selected
  • +
+
+
+ + +
+

You're awesome!

+

Now it's time to create your plugin. Here are some + docs for you to start. +

+
+ +

Your plugin manifest

+

+
+
diff --git a/keeweb/plugins/css/site.css b/keeweb/plugins/css/site.css
new file mode 100644
index 0000000..797e4fd
--- /dev/null
+++ b/keeweb/plugins/css/site.css
@@ -0,0 +1,77 @@
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary,
+time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
+body { line-height: 1; }
+ol, ul { list-style: none; }
+blockquote, q { quotes: none; }
+blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
+table { border-collapse: collapse; border-spacing: 0; }
+.right { float: right; }
+.left { float: left; }
+.clear { clear: both; }
+
+body {
+    font-family: -apple-system, "BlinkMacSystemFont", "Raleway", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+    font-feature-settings: "liga" 0;
+    text-align: center;
+    background: #F5F5F5;
+    font-weight: 300;
+}
+h1 {
+    font-size: 3em;
+    margin-top: 10vh;
+}
+h1>span {
+    line-height: 65px;
+    vertical-align: top;
+}
+h2 {
+    font-size: 2em;
+    font-weight: 100;
+    margin: 1em;
+}
+h3 {
+    font-size: 1.5em;
+    font-weight: 100;
+    margin-bottom: 1em;
+}
+hr {
+    margin: 1.5em 0;
+    height: 1px;
+    background: #e3e3e3;
+    border: none;
+}
+p {
+    line-height: 1.5em;
+}
+.logo {
+    width: 64px;
+    height: 64px;
+}
+.icon {
+    display: inline-block;
+    overflow: hidden;
+    width: 64px;
+    height: 64px;
+    fill: #6386EC;
+    margin: 20px 10px;
+}
+.img-install {
+    margin: 55px;
+    box-shadow: 0 20px 35px rgba(0, 0, 0, 0.5);
+}
+
+@media only screen and (max-width: 480px) {
+    p, h1 {
+        margin-bottom: 1em;
+    }
+    img.img-install {
+        width: calc(100% - 40px) !important;
+        margin: 20px;
+        box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5);
+    }
+}
diff --git a/keeweb/plugins/favicon.png b/keeweb/plugins/favicon.png
new file mode 100644
index 0000000..e67e6cb
Binary files /dev/null and b/keeweb/plugins/favicon.png differ
diff --git a/keeweb/plugins/img/install.png b/keeweb/plugins/img/install.png
new file mode 100644
index 0000000..712eaef
Binary files /dev/null and b/keeweb/plugins/img/install.png differ
diff --git a/keeweb/plugins/img/logo.png b/keeweb/plugins/img/logo.png
new file mode 100644
index 0000000..f187d2d
Binary files /dev/null and b/keeweb/plugins/img/logo.png differ
diff --git a/keeweb/plugins/index.html b/keeweb/plugins/index.html
new file mode 100644
index 0000000..a24f62e
--- /dev/null
+++ b/keeweb/plugins/index.html
@@ -0,0 +1,40 @@
+
+
+    
+        
+        KeeWeb plugins
+        
+        
+        
+    
+    
+        

KeeWeb Plugins

+

+ This site contains known plugins and translations for + KeeWeb. +

+

+ Want to create your own plugin? + Here's a plugin creation tool page. +

+

How to install plugins

+

Go to Settings → Plugins and click Load plugin gallery:

+ +

+ + + + + + +

+ + diff --git a/keeweb/plugins/lib/FileSaver.min.js b/keeweb/plugins/lib/FileSaver.min.js new file mode 100644 index 0000000..9a1e397 --- /dev/null +++ b/keeweb/plugins/lib/FileSaver.min.js @@ -0,0 +1,2 @@ +/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ +var saveAs=saveAs||function(e){"use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,a=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s="application/octet-stream",d=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,d)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(a){u(a)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,d){if(!d){t=p(t)}var v=this,w=t.type,m=w===s,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&&i)&&e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;a(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!==null){define("FileSaver.js",function(){return saveAs})} diff --git a/keeweb/plugins/lib/jszip.min.js b/keeweb/plugins/lib/jszip.min.js new file mode 100644 index 0000000..218a4f7 --- /dev/null +++ b/keeweb/plugins/lib/jszip.min.js @@ -0,0 +1,15 @@ +/*! + +JSZip v3.1.3 - A Javascript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/master/LICENSE +*/ +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g>2,h=(3&b)<<4|c>>4,i=n>1?(15&c)<<2|e>>6:64,j=n>2?63&e:64,k.push(f.charAt(g)+f.charAt(h)+f.charAt(i)+f.charAt(j));return k.join("")},c.decode=function(a){var b,c,d,g,h,i,j,k=0,l=0,m="data:";if(a.substr(0,m.length)===m)throw new Error("Invalid base64 input, it looks like a data url.");a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");var n=3*a.length/4;if(a.charAt(a.length-1)===f.charAt(64)&&n--,a.charAt(a.length-2)===f.charAt(64)&&n--,n%1!==0)throw new Error("Invalid base64 input, bad content length.");var o;for(o=e.uint8array?new Uint8Array(0|n):new Array(0|n);k>4,c=(15&h)<<4|i>>2,d=(3&i)<<6|j,o[l++]=b,64!==i&&(o[l++]=c),64!==j&&(o[l++]=d);return o}},{"./support":30,"./utils":32}],2:[function(a,b,c){"use strict";function d(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}var e=a("./external"),f=a("./stream/DataWorker"),g=a("./stream/DataLengthProbe"),h=a("./stream/Crc32Probe"),g=a("./stream/DataLengthProbe");d.prototype={getContentWorker:function(){var a=new f(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new f(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},d.createWorkerFrom=function(a,b,c){return a.pipe(new h).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},b.exports=d},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(a,b,c){"use strict";var d=a("./stream/GenericWorker");c.STORE={magic:"\0\0",compressWorker:function(a){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},c.DEFLATE=a("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g>>8^e[255&(a^b[g])];return a^-1}function f(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g>>8^e[255&(a^b.charCodeAt(g))];return a^-1}var g=a("./utils"),h=d();b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var c="string"!==g.getTypeOf(a);return c?e(0|b,a,a.length,0):f(0|b,a,a.length,0)}},{"./utils":32}],5:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(a,b,c){"use strict";var d=null;d="undefined"!=typeof Promise?Promise:a("lie"),b.exports={Promise:d}},{lie:58}],7:[function(a,b,c){"use strict";function d(a,b){h.call(this,"FlateWorker/"+a),this._pako=new f[a]({raw:!0,level:b.level||-1}),this.meta={};var c=this;this._pako.onData=function(a){c.push({data:a,meta:c.meta})}}var e="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,f=a("pako"),g=a("./utils"),h=a("./stream/GenericWorker"),i=e?"uint8array":"array";c.magic="\b\0",g.inherits(d,h),d.prototype.processChunk=function(a){this.meta=a.meta,this._pako.push(g.transformTo(i,a.data),!1)},d.prototype.flush=function(){h.prototype.flush.call(this),this._pako.push([],!0)},d.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},c.compressWorker=function(a){return new d("Deflate",a)},c.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:59}],8:[function(a,b,c){"use strict";function d(a,b,c,d){f.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=c,this.encodeFileName=d,this.streamFiles=a,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var e=a("../utils"),f=a("../stream/GenericWorker"),g=a("../utf8"),h=a("../crc32"),i=a("../signature"),j=function(a,b){var c,d="";for(c=0;c>>=8;return d},k=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},l=function(a,b){return 63&(a||0)},m=function(a,b,c,d,f,m){var n,o,p=a.file,q=a.compression,r=m!==g.utf8encode,s=e.transformTo("string",m(p.name)),t=e.transformTo("string",g.utf8encode(p.name)),u=p.comment,v=e.transformTo("string",m(u)),w=e.transformTo("string",g.utf8encode(u)),x=t.length!==p.name.length,y=w.length!==u.length,z="",A="",B="",C=p.dir,D=p.date,E={crc32:0,compressedSize:0,uncompressedSize:0};b&&!c||(E.crc32=a.crc32,E.compressedSize=a.compressedSize,E.uncompressedSize=a.uncompressedSize);var F=0;b&&(F|=8),r||!x&&!y||(F|=2048);var G=0,H=0;C&&(G|=16),"UNIX"===f?(H=798,G|=k(p.unixPermissions,C)):(H=20,G|=l(p.dosPermissions,C)),n=D.getUTCHours(),n<<=6,n|=D.getUTCMinutes(),n<<=5,n|=D.getUTCSeconds()/2,o=D.getUTCFullYear()-1980,o<<=4,o|=D.getUTCMonth()+1,o<<=5,o|=D.getUTCDate(),x&&(A=j(1,1)+j(h(s),4)+t,z+="up"+j(A.length,2)+A),y&&(B=j(1,1)+j(h(v),4)+w,z+="uc"+j(B.length,2)+B);var I="";I+="\n\0",I+=j(F,2),I+=q.magic,I+=j(n,2),I+=j(o,2),I+=j(E.crc32,4),I+=j(E.compressedSize,4),I+=j(E.uncompressedSize,4),I+=j(s.length,2),I+=j(z.length,2);var J=i.LOCAL_FILE_HEADER+I+s+z,K=i.CENTRAL_FILE_HEADER+j(H,2)+I+j(v.length,2)+"\0\0\0\0"+j(G,4)+j(d,4)+s+z+v;return{fileRecord:J,dirRecord:K}},n=function(a,b,c,d,f){var g="",h=e.transformTo("string",f(d));return g=i.CENTRAL_DIRECTORY_END+"\0\0\0\0"+j(a,2)+j(a,2)+j(b,4)+j(c,4)+j(h.length,2)+h},o=function(a){var b="";return b=i.DATA_DESCRIPTOR+j(a.crc32,4)+j(a.compressedSize,4)+j(a.uncompressedSize,4)};e.inherits(d,f),d.prototype.push=function(a){var b=a.meta.percent||0,c=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(a):(this.bytesWritten+=a.data.length,f.prototype.push.call(this,{data:a.data,meta:{currentFile:this.currentFile,percent:c?(b+100*(c-d-1))/c:100}}))},d.prototype.openedSource=function(a){this.currentSourceOffset=this.bytesWritten,this.currentFile=a.file.name;var b=this.streamFiles&&!a.file.dir;if(b){var c=m(a,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:c.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(a){this.accumulate=!1;var b=this.streamFiles&&!a.file.dir,c=m(a,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(c.dirRecord),b)this.push({data:o(a),meta:{percent:100}});else for(this.push({data:c.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var a=this.bytesWritten,b=0;b0?a.substring(0,b):""},q=function(a){return"/"!==a.slice(-1)&&(a+="/"),a},r=function(a,b){return b="undefined"!=typeof b?b:i.createFolders,a=q(a),this.files[a]||o.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},s={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(a){var b,c,d;for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],c=b.slice(this.root.length,b.length),c&&b.slice(0,this.root.length)===this.root&&a(c,d))},filter:function(a){var b=[];return this.forEach(function(c,d){a(c,d)&&b.push(d)}),b},file:function(a,b,c){if(1===arguments.length){if(d(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}var f=this.files[this.root+a];return f&&!f.dir?f:null}return a=this.root+a,o.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=r.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!==a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readAndCheckSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.readData(4);return b===f[0]&&c===f[1]&&d===f[2]&&e===f[3]},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],18:[function(a,b,c){"use strict";function d(a){this.data=a,this.length=a.length,this.index=0,this.zero=0}var e=a("../utils");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo("string",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readAndCheckSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},b.exports=d},{"../utils":32}],19:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./Uint8ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readAndCheckSignature=function(a){var b=this.readData(4);return a===b},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],21:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./ArrayReader":17}],22:[function(a,b,c){"use strict";var d=a("../utils"),e=a("../support"),f=a("./ArrayReader"),g=a("./StringReader"),h=a("./NodeBufferReader"),i=a("./Uint8ArrayReader");b.exports=function(a){var b=d.getTypeOf(a);return d.checkSupport(b),"string"!==b||e.uint8array?"nodebuffer"===b?new h(a):e.uint8array?new i(d.transformTo("uint8array",a)):new f(d.transformTo("array",a)):new g(a)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(a,b,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\b"},{}],24:[function(a,b,c){"use strict";function d(a){e.call(this,"ConvertWorker to "+a),this.destType=a}var e=a("./GenericWorker"),f=a("../utils");f.inherits(d,e),d.prototype.processChunk=function(a){this.push({data:f.transformTo(this.destType,a.data),meta:a.meta})},b.exports=d},{"../utils":32,"./GenericWorker":28}],25:[function(a,b,c){"use strict";function d(){e.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}var e=a("./GenericWorker"),f=a("../crc32"),g=a("../utils");g.inherits(d,e),d.prototype.processChunk=function(a){this.streamInfo.crc32=f(a.data,this.streamInfo.crc32||0),this.push(a)},b.exports=d},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(a,b,c){"use strict";function d(a){f.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}var e=a("../utils"),f=a("./GenericWorker");e.inherits(d,f),d.prototype.processChunk=function(a){if(a){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+a.data.length}f.prototype.processChunk.call(this,a)},b.exports=d},{"../utils":32,"./GenericWorker":28}],27:[function(a,b,c){"use strict";function d(a){f.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(a){b.dataIsReady=!0,b.data=a,b.max=a&&a.length||0,b.type=e.getTypeOf(a),b.isPaused||b._tickAndRepeat()},function(a){b.error(a)})}var e=a("../utils"),f=a("./GenericWorker"),g=16384;e.inherits(d,f),d.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0)},d.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},d.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=g,b=null,c=Math.min(this.max,this.index+a);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,c);break;case"uint8array":b=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":b=this.data.slice(this.index,c)}return this.index=c,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},b.exports=d},{"../utils":32,"./GenericWorker":28}],28:[function(a,b,c){"use strict";function d(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}d.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c "+a:a}},b.exports=d},{}],29:[function(a,b,c){"use strict";function d(a,b,c,d){var f=null;switch(a){case"blob":return h.newBlob(c,d);case"base64":return f=e(b,c),k.encode(f);default:return f=e(b,c),h.transformTo(a,f)}}function e(a,b){var c,d=0,e=null,f=0;for(c=0;c=252?6:k>=248?5:k>=240?4:k>=224?3:k>=192?2:1;j[254]=j[254]=1;var l=function(a){var b,c,d,e,f,h=a.length,i=0;for(e=0;e>>6,b[f++]=128|63&c):c<65536?(b[f++]=224|c>>>12,b[f++]=128|c>>>6&63,b[f++]=128|63&c):(b[f++]=240|c>>>18,b[f++]=128|c>>>12&63,b[f++]=128|c>>>6&63,b[f++]=128|63&c);return b},m=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+j[a[c]]>b?c:b},n=function(a){var b,c,d,e,g=a.length,h=new Array(2*g);for(c=0,b=0;b4)h[c++]=65533,b+=e-1;else{for(d&=2===e?31:3===e?15:7;e>1&&b1?h[c++]=65533:d<65536?h[c++]=d:(d-=65536,h[c++]=55296|d>>10&1023,h[c++]=56320|1023&d)}return h.length!==c&&(h.subarray?h=h.subarray(0,c):h.length=c),f.applyFromCharCode(h)};c.utf8encode=function(a){return g.nodebuffer?h.newBuffer(a,"utf-8"):l(a)},c.utf8decode=function(a){return g.nodebuffer?f.transformTo("nodebuffer",a).toString("utf-8"):(a=f.transformTo(g.uint8array?"uint8array":"array",a),n(a))},f.inherits(d,i),d.prototype.processChunk=function(a){var b=f.transformTo(g.uint8array?"uint8array":"array",a.data);if(this.leftOver&&this.leftOver.length){if(g.uint8array){var d=b;b=new Uint8Array(d.length+this.leftOver.length),b.set(this.leftOver,0),b.set(d,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var e=m(b),h=b;e!==b.length&&(g.uint8array?(h=b.subarray(0,e),this.leftOver=b.subarray(e,b.length)):(h=b.slice(0,e),this.leftOver=b.slice(e,b.length))),this.push({data:c.utf8decode(h),meta:a.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=d,f.inherits(e,i),e.prototype.processChunk=function(a){this.push({data:c.utf8encode(a.data),meta:a.meta})},c.Utf8EncodeWorker=e},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(a,b,c){"use strict";function d(a){var b=null;return b=i.uint8array?new Uint8Array(a.length):new Array(a.length),f(a,b)}function e(a){return a}function f(a,b){for(var c=0;c1;)try{return n.stringifyByChunk(a,d,b)}catch(f){b=Math.floor(b/2)}return n.stringifyByChar(a)}function h(a,b){for(var c=0;c1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a0)this.isSignature(c,g.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(e<0)throw new Error("Corrupted zip: missing "+Math.abs(e)+" bytes.")},prepareReader:function(a){this.reader=e(a)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(a,b,c){"use strict";function d(a,b){this.options=a,this.loadOptions=b}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./compressedObject"),h=a("./crc32"),i=a("./utf8"),j=a("./compressions"),k=a("./support"),l=0,m=3,n=function(a){for(var b in j)if(j.hasOwnProperty(b)&&j[b].magic===a)return j[b];return null};d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(b=n(this.compressionMethod),null===b)throw new Error("Corrupted zip : compression "+f.pretty(this.compressionMethod)+" unknown (inner file : "+f.transformTo("string",this.fileName)+")");this.decompressed=new g(this.compressedSize,this.uncompressedSize,this.crc32,b,a.readData(this.compressedSize))},readCentralPart:function(a){this.versionMadeBy=a.readInt(2),a.skip(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4);var b=a.readInt(2);if(this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");a.skip(b),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===l&&(this.dosPermissions=63&this.externalFileAttributes),a===m&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});a.indexc;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==a("./_cof")(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),b.exports={set:m,clear:n}},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(a,b,c){var d=a("./_is-object");b.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":51}],56:[function(a,b,c){var d=a("./_export"),e=a("./_task");d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},{"./_export":44,"./_task":54}],57:[function(a,b,c){(function(a){"use strict";function c(){k=!0;for(var a,b,c=l.length;c;){for(b=l,l=[],a=-1;++a0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e="string"==typeof b.dictionary?j.string2buf(b.dictionary):"[object ArrayBuffer]"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a("./zlib/deflate"),i=a("./utils/common"),j=a("./utils/strings"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,"string"==typeof a?e.input=j.string2buf(a):"[object ArrayBuffer]"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||("string"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d!==r||(this.onEnd(p),e.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a("./zlib/inflate"),h=a("./utils/common"),i=a("./utils/strings"),j=a("./zlib/constants"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=a("./zlib/gzheader"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,"string"==typeof a?m.input=i.binstring2buf(a):"[object ArrayBuffer]"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l="string"==typeof p?i.string2buf(p):"[object ArrayBuffer]"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||("string"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),m.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;c4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&c1?j[e++]=65533:f<65536?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":62}],64:[function(a,b,c){"use strict";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}b.exports=d},{}],65:[function(a,b,c){"use strict";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],66:[function(a,b,c){"use strict";function d(){ +for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h>>8^e[255&(a^b[h])];return a^-1}var f=d();b.exports=e},{}],67:[function(a,b,c){"use strict";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&fg){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead=ja&&(a.ins_h=(a.ins_h<=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<=ja&&(a.ins_h=(a.ins_h<4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&ea.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,e=-e):e>15&&(h=2,e-=16),f<1||f>_||c!==$||e<8||e>15||b<0||b>9||g<0||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<N||b<0)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<>>=w,q-=w),q<15&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<k){a.msg="invalid distance too far back",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg="invalid distance too far back",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f>3,f-=x,q-=x<<3,p&=(1<>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=ma;break}if((15&m)!==K){a.msg="unknown compression method",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=ma;break}c.dmax=1<>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<>>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]<>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg="invalid block type",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]<>>16^65535)){a.msg="invalid stored block lengths",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]<>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg="invalid literal/length code",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]<=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;Df||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":62}],72:[function(a,b,c){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],73:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;co&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0; +for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d>=7;d8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a("../utils/common"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{"../utils/common":62}],74:[function(a,b,c){"use strict";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)}); \ No newline at end of file diff --git a/keeweb/plugins/plugins.json b/keeweb/plugins/plugins.json new file mode 100644 index 0000000..6d9ec46 --- /dev/null +++ b/keeweb/plugins/plugins.json @@ -0,0 +1,874 @@ +{ + "date": "2022-01-31T19:13:04.033Z", + "signature": "WRHcf1G0LrbVH0/6m9VV6lHhxlMoPWccuafDpbM5jC2U0+yhVaN821gZuP2M+GHnzI3bOyT9EvLc/M0OhP39iSNqIELDDQyEwrY5TtBQAX0L/wvC+++ZDFtNzxg/H2mIZWDS1VWnUy0mxZ5A1DOf6xhEY+lMQ8CiLzc20o1AUFm9PArPnxEv3iQ8SLnFKL2Zv9ItYwsInhRpqzfSXQ+YlyjVsSsHbiCoLHyqwlg3F6knDHN3/CW+ZClYqzMA2/qCRBntnfMJg2gytaTxEEY675eO9RhsNf97ViHrSpAA1GUP13TFvj654IqvrsUYk52TPSO34VJBWntrmB9ApSpYZw==", + "plugins": [ + { + "url": "https://plugins.keeweb.info/translations/zh-CN", + "official": true, + "manifest": { + "version": "1.23.0", + "manifestVersion": "0.1.0", + "name": "language-chinese-simplified", + "description": "Chinese Simplified language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=zh-CN", + "resources": { + "loc": "DHQ6C0NcJSIbtmLmt3JOCbR+hqnTJzTwozD/lCoLE1x/aGOlLDEM0DOaah3ULks/aj65YNh8k5gUUnVu/AxnRJxbyxD6wtu2P7VjqkrQxuNZHncTaXL3b/B4+OMahKMQ46DzbKDA9/xRJQcX6OsgSIH+Lqv9rdn2C8txOYXYDOGWK0CIV0raqexQ/AneNx2MWhqZjzMqBiTLE6HjMnmRMr2F/d3pY5VB8FhX61j9W13UqOmHZF779RZ0JhrUJfaE/5+0AN45NJ58RwURa7+IqcxvoNqIhWO6jE+oNdKLFUCC190rpHZuuyBnWnCAJRfMkNbbLNDVyleKg8By2NjAqQ==" + }, + "locale": { + "name": "zh-CN", + "title": "简体中文", + "flag": "🇨🇳" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/pt-PT", + "official": true, + "manifest": { + "version": "1.9.0", + "manifestVersion": "0.1.0", + "name": "language-portuguese", + "description": "Portuguese language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=pt-PT", + "resources": { + "loc": "fcXYmBsxFJI7F35nkkoxkom3YOZXajaYuGdaFQGxB+Amu6V+oXCNU8vGjGflRl8dhsuu7qps5gU1FLmzx4ZUjKMoZQMHkYKyhUqcHI0YjUhXG9iN5HZh7GBVGlI3UJhoqjIlHkYjGu6nRzJetqEPAdr8N+8YkDWgT+tp2Ci9EKp09xSLpzfsQKQAWASKR2if17HA48pu4k+br1EVFW5nNzpo9IMthru6jXDggJlsxefLIf3f3M3nzhDFvroh6oRzWUK17xwkKPudVMjpk/PT5bT6gASb9H8J2h04QOAuCLn8BKRLhiokORrTF205xfFoaOSD8eWiwTpB3azx9UL+jQ==" + }, + "locale": { + "name": "pt-PT", + "title": "Português", + "flag": "🇵🇹" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/ko", + "official": true, + "manifest": { + "version": "1.10.0", + "manifestVersion": "0.1.0", + "name": "language-korean", + "description": "Korean language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ko", + "resources": { + "loc": "j7xsl/rjYOC4KiMwNVyw/JNOOwrWbOA/LTbAQcvurcCBJXlI7a5YJ/Sgq5c2GIR1KyfebDHWrMAQZ/eEmf0WnAvYs5+1X9ublfJJNo40wyn8h/ro+RKFPJOzuW2uPpg9fQteX/KujujtDHqxnqAlNw+/bLxtyzvZTZSZPxZCqtII+o4mvRYz0d+NzKcd6T1FjdqJIb++dlZBpFW48trRmxFYaZ0W643nzvxsP+fxT/nm7bGbyQI2dow1cNR5jyAgebXxkJpNXAon3kZ9JfuPgK+jsduSo1Z4uyRt1uc+UlTI6OwEGpYGX8x2fXOpL64eus3vdYS/Dh0N947cQP7DtA==" + }, + "locale": { + "name": "ko", + "title": "한국어", + "flag": "🇰🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/pl", + "official": true, + "manifest": { + "version": "1.33.0", + "manifestVersion": "0.1.0", + "name": "language-polish", + "description": "Polish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=pl", + "resources": { + "loc": "IQykN49oS7w7wF4uNmz199WWbbgb9EkyTrP/CBhS0EIJSjjMfuhRF/HGjET0Gsnq/yjLK6/ixEtKHxySZ3xKGf/Sk0EpePbwoooG0toE1VlrJONFlWgLfBDBb0q1JGhZJHfZAek+8d9++89M2BOR6FZ99elBQkilHkeiysKA8fKtBzMzAoiJ0cuw3JZXGjNK/YJ9uCunxx9dc8oEXbq9aPFXsIzREmuBonkC6Se4O5HNlf0MM5N7fH5Io8ZNTMkuAPSlO+9F01/sBEgNw3ztSMxijIZ05nx02bSovqCO5koHzKo36Z/xKPwvHOUxP5QJvZo8chtzqLF227YutDfRQQ==" + }, + "locale": { + "name": "pl", + "title": "Polski", + "flag": "🇵🇱" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/hu", + "official": true, + "manifest": { + "version": "1.32.0", + "manifestVersion": "0.1.0", + "name": "language-hungarian", + "description": "Hungarian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=hu", + "resources": { + "loc": "JURF2kaThRmQJZixJIOuptBq1DU3H1eG8C4XUyNpk5HwYRdY/ChTYhUSoKb5X8GBPRlIdR/e1c2JWwAwS4GxEwhlS663gXF2jwhH2jOScCPOrf25UCZYrpp2RZxHqjOCxjKJPKEgNVwvz58mhaURVa71gSxaUJdn2p9O0mgBz/SJWcb1QP68urqsDk/L9a0FuYQk9l4HIZ/xbFt7/Vhns+zs2lytqAbfBEufPB6yxh/+GNa2iYoVk2Q7it2lVHL4Z3OOyqohJ10jnsz6wfjBff5UMWMS3PYbH71tiLDhffh5wen7GunphQBh4DLRGu00MgnMPOCapJ/6jFz1JMrf9Q==" + }, + "locale": { + "name": "hu", + "title": "Magyar", + "flag": "🇭🇺" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/no", + "official": true, + "manifest": { + "version": "1.10.0", + "manifestVersion": "0.1.0", + "name": "language-norwegian", + "description": "Norwegian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=no", + "resources": { + "loc": "EhoVCihCyxR1drLvKKIszyoTjBrrjpqMsGexn1UJLVjslY2Wye8Ht7unnYVlp16gtvClhIB8EAOLiKVsDEK04IOfOOrUEoR7PHUnwuue95DPKPSWuVZIRYmadblXPobv0Ij8ySeidf1QKwEDZv2M090ywjadYPIRd9f9Li6nlX6gjYliIecDji5E0eW2KMHNNe9xkVPNnU4MLyppaDwLKP8Z16DC8elPQo9HBJP9U7b53XDzVZwtKL0MoVlFNqhtxzO/QXfFVq2rdLDCw77CH4y5+0z5vkmbzlgtf2ROz/NAed0lKdYbF9jRrohd7Vgl7fpBRz728u4wuDU8XNpj0g==" + }, + "locale": { + "name": "no", + "title": "Norsk", + "flag": "🇳🇴" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/nl-NL", + "official": true, + "manifest": { + "version": "1.41.0", + "manifestVersion": "0.1.0", + "name": "language-dutch", + "description": "Dutch language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=nl-NL", + "resources": { + "loc": "LPK+dVYc3XRZ1WWM3veInF/+G1HlwImxPJCvK/fy6xOq/YKmzZcKZJfn4aKnke1WMuv9r0cfU1FlHtA+Sg9KgLGEdXNfRcrz3wJdtzHv1n1U8amXJi/psNt6/Kj0P/HYvXtOJg7hScE30Lty8ZYZ+C0mz9BQdU42Me4vQ1+lMPQ/oSDYMv2ETQk/wvbKmcoOwo5Gd5gNgNiXaoHp+GZOA+5oxGNSQJlGHVwj7avtzNIn1JvNioy8CJQZLuShcS5cGHzfgSIylRh2vNZ2fhUqkOUqloSDly++D4jvMgatjvcF3yY+mQMpACXwWwfU5Ldnv3HLHYzqdKjZ4LM+ZxM1Pw==" + }, + "locale": { + "name": "nl-NL", + "title": "Nederlands", + "flag": "🇳🇱" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/fr-FR", + "official": true, + "manifest": { + "version": "1.34.0", + "manifestVersion": "0.1.0", + "name": "language-french", + "description": "French language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=fr-FR", + "resources": { + "loc": "PqCrC7q3uJNYpvKSTJj1sXEj289kIn6tuoK003ldg01EWHohHk4FfH7B49Igm6cbxYa+hrKOaeud04ZRYVJGu+chJFuqiDuobARRF9uHu9aPhxg2YqK3BL4M2ZemO8JokTI0yeE/ICw9KEl6ccRamAcnER67r+oCucF4jzEBhZsUZE5s/Egnx8EEwQcCe3g3tNo9lrB+sd0MMt2C+mYXVje9BcbX93Nd7+CJAJAgiR2mlDuJZh91sfyhMcyNzD2i/hmFz+ck1gBOau5pSzHlYSX0zH/1FdQYMFhLFPTlt+F+g3Ced9DtFlAFBQw1UiVsNP4KfLfzcmDKfDdJuPi1OQ==" + }, + "locale": { + "name": "fr-FR", + "title": "Français", + "flag": "🇫🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/de-DE", + "official": true, + "manifest": { + "version": "1.25.0", + "manifestVersion": "0.1.0", + "name": "language-german", + "description": "German language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=de-DE", + "resources": { + "loc": "CIx3AEJG6nemrgNUOQLX8GXnjoh+wa9ZWbCdHP4TuDOLsWCejuobKTFHimpoiUKK7ShFnSkbp6Zkl0SZLL7TbZ8ZYtB4mq2D65F0nwtVPvrckBM0G3cJSMX6T3DzZrtGTWSsP3eXFWL1TKFqEX8VtEtY0gQ2lAq0lmjuB2rqQ3MGQBIxNqsRY93TZWUdD7gDGh/F2u4K1t5I1dzNgsqUuiDKOr9CFx08vjg0YgJyAB3miQfXurobH8ESwTzxypMfhFKS9R77JaWsymeHhwMRnrZDyqKIwpih4u5ugOSLPXHZ4f41+sOd1KQBEvoUnY9gHb/P4GQ9v7yYbfLWRBwRVA==" + }, + "locale": { + "name": "de-DE", + "title": "Deutsch", + "flag": "🇩🇪" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/it-IT", + "official": true, + "manifest": { + "version": "1.18.0", + "manifestVersion": "0.1.0", + "name": "language-italian", + "description": "Italian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=it-IT", + "resources": { + "loc": "X5FxSuk/F5de2m6AuBiP3NQ2ivrPPG0aVlxOLvmLI63rUY/EMKd1b3DOjvkOt0aXtSUzMcmEKMp53RsDZNHgCmcl3+LncdhANC2zGxUjue8RnVi36M2Eo8w+dYZPc7fR8CndalCQxwNsS9Ly2L8RRht8smEUxUkNvFF4iOuSMh4QReDUAE9879PsPPze07XXtjbaLx7o+n5naHmRfsjZzSPIDQUbrmzO4shbd1AweGC2AaEVwNf3+ej/WOLkgFXJrQR7zoybU1wdh0wwVg9uiwISv3lCIDPrNUy9pQIpYjwqChcz1uu0KrObk+ort884Wz0aW6X2qaiY8j/mCPzp2A==" + }, + "locale": { + "name": "it-IT", + "title": "Italiano", + "flag": "🇮🇹" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/ru-RU", + "official": true, + "manifest": { + "version": "1.30.0", + "manifestVersion": "0.1.0", + "name": "language-russian", + "description": "Russian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ru-RU", + "resources": { + "loc": "A9LHxPFYU8KtS6lOREzZukIiBQTHnuK/NxbphGxDGHJHTSAQ485OCExlgd5FOV8+ujbJlZUJKc0KpNKR7iOG9p/KUs1UkXzTEMSOy5F+C6LG6fDuhElgx2Hm09DnGVoyQbnDhrnDfq55StSPn/4tMk6USRMEFqQmXhSW/VhnNfNhtP/ruDrRtpBMUL5VwBym5Q8/ec1Wn/slkD/529/ztckZ4qCp3ZzpqarZWvoTAMzDAf2jj34DlzQFL/tbILEOMlL16mSj9PQsY6QtIqsNGMALe6Egrbty8jNcIR5kmBe+4vfDQM5Wgc4q+4hefSbcxraSn3XRXOi1yXxAral6hA==" + }, + "locale": { + "name": "ru-RU", + "title": "Русский", + "flag": "🇷🇺" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/es-ES", + "official": true, + "manifest": { + "version": "1.34.0", + "manifestVersion": "0.1.0", + "name": "language-spanish", + "description": "Spanish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=es-ES", + "resources": { + "loc": "RRyeWB1u9kSvn3XVzoi9OYMUh3OBvScP8t2mgkfpYm3iR1h2vEub7E4Bkb6K0ClS5t3WmLLuxumW2bxxotmD208saU9MKyNDiCgoQeKoe/hVXRBCPWTetQAS9MtVlj7G2WmiHcEMCm4P8ABQq+4WbnUd2gHSwSCG8V1I0FEjm6OGJbXVQX71uOZX7qFPJxpfxgeyusLjlIMSN3FGtO0rmW7nVXAxHsvI9HSQWgy6oR66qSv08d5DQ1dKv4ZYfu4ev1j0XrZN5p9Cga6mWjJ/CYIwNrJLJ/thwMVXqZjxY1BT82m47PoD2LMcHHWg/W2XEf4w8rnsgbDEa2N/Z9EpAQ==" + }, + "locale": { + "name": "es-ES", + "title": "Español", + "flag": "🇪🇸" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/sv-SE", + "official": true, + "manifest": { + "version": "1.7.1", + "manifestVersion": "0.1.0", + "name": "language-swedish", + "description": "Swedish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=sv-SE", + "resources": { + "loc": "H6Fs7vjsTmtAvy6PHOxbW3Jts/B9Emw6k2qKFfXH1FfVyaW2aDyYeV35i++F59oODG6Iho661DCZqUmrbyPU7SU9IpbG0bmcxXC2weuk1CLwjkW97a8yTcHZzhGw8bvPf+l/rdyVla6Hp/mfc6v4S60LTTvJZxk1CvWNPmzDDWoL0xF8KI3uhcAOMVHsQdk3vu596SoE8/Mc6JfJ9XMZ9HJ6Szr8Mazqb98bunA3QGhESpmBC1yXfZMHOyBr3XdEZGLtg7NwbgDLH6nTNLoWZw7n/FunMn7YGB4YWtecRxw6dWVOQQHN4wZhKSeG3+mSLhtyxOGyeW8HyaIxHSp4dA==" + }, + "locale": { + "name": "sv-SE", + "title": "Svenska", + "flag": "🇸🇪" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-darker", + "official": true, + "manifest": { + "version": "0.0.1", + "manifestVersion": "0.1.0", + "versionMin": "1.16.0", + "name": "theme-darker", + "description": "Darker Theme", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "resources": { + "css": "QKfTau6vGoFnHZd6ID3j3FolZ+6S+WGouviYTNEHjGryiSDXvGxIYci5J/voejn8WCRHMU5uZcu1hEYVOm+fp7C45AgiDZyPQZs10zGENWXfbfxn0dM1gOTKnowI4w7PE2LC551YzWv1wt9APZxzuV1roA8i0tcldzcJ3bGxezO+w3msSSjslMx5pKoq2XYRYR+5/A5VGXyfG6r/gvB44vdeN3jjHOgF2idIpOGKDmd6FXN9srasAHtZBI7acAn8e8+pzt4uqAnESojEKT19Y3gEwZ9GiiEfd3HwPmFEoQxDPoEitu8r8ayPhySSriWS5G0XPs2DSuHNPL9M84GQ+w==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-darker", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "darker", + "title": "Darker" + } + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-arc", + "official": true, + "manifest": { + "version": "0.0.2", + "manifestVersion": "0.1.0", + "name": "theme-arc", + "description": "Arc Theme", + "author": { + "name": "Stan Bogatkin", + "email": "sbog@sbog.ru", + "url": "https://sbog.ru" + }, + "resources": { + "css": "cGbKAOoM/6HlQgjudZosjwNGq43WqM5azUwRWds86XlAfCXJKkDEIurTYCBDRZZK07c0Se8BoNPgtOs5m/4D9bwyphWCvbKGTbfduCk6bFUNJyNFnshgwF+WunWiiD5gZFgsgrEU4FmaShHmijhXJ4YG6E6JSwUbwcQMPGlkNV6p5RnHP/5maCdZQeXKjKKHsV50YUsJlwH8IkTRsy+pZrqVtX95Lj2A+g1SPKD/DyfDyGMI//rVsccRR+0Lu68VBSINWAXfwJYjcdnVxRF7dlAdRDdDSAV9Kn2KeuRNVYK54So1C4ZwCHOmQj0dRYSbhBxeoJa6dg4WDKZle18Esw==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-arc", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "arc", + "title": "Arc" + } + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-nord", + "official": true, + "manifest": { + "version": "0.0.3", + "manifestVersion": "0.1.0", + "name": "theme-nord", + "description": "Nord theme", + "author": { + "name": "KeeWeb", + "email": "keeweb@keeweb.info", + "url": "https://keeweb.info" + }, + "resources": { + "css": "i+Hu8H6kEDZgiqAFEAKUFruBZc9yoWouUzWtD/B/4AD4xtLOGTQvNom07ooF4L3i7buwswqxI/JqMfx5sNVJlnkffUHdJiBEkbl/Kl2G5R/UdRv8mQfVn7wDgO4US4pKvj6YHfxLr4C0lao/JEAUmicZrrlxzbD207elOtHNhbJ65yC3H+V8on0LJF+ZLCY85Epk9f2Htm+wQThuY25uHHoTPX8QkmP2573vcmOZk/Y8aQcrEFHP1rX0IpgZ/LLxLLEPd+TYk6D73vzsb+GHigjexbHyKzOY6oSLawg5ABe72EbMe6zCXQgACobfBj/NtjxDed0AptqbDElUz3p8HQ==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-nord", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "nord", + "title": "Nord" + } + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-orange", + "official": false, + "manifest": { + "version": "0.0.2", + "manifestVersion": "0.1.0", + "name": "theme-orange", + "description": "Orange Theme", + "author": { + "name": "Jonathan Verbeek", + "email": "iredcraft@gmail.com", + "url": "http://nothing.com" + }, + "resources": { + "css": "HbWS1VOZ79ag0NKUg2JU5wtdl3//xmE5TN+Im3sMfBi1U2M1YzbjOiwP+cgVUo2vpvuFGSEV35Kw9BQP7TmpnoxGtqJeYp8MG7HQcoW/suuF8wqVnG7c4NV1NRzAUTEK5t0U7NESn+huP1YByQseceoLB+ghx8ygbmJN5tugWZuBIBVAckP1Yj1U5sOWbts5Lyu8qMuslTcV8vSFGlNRSLM4bkfitifXwpyH6jvg0pOoAkq9gJap6yvEgJGR0ElepG+Fst0p8xNyaORWOpibdcV0DEZUyBk+6B4LeU6Y6y3OeB2r2IGd4S/S2WXczePY4UWlAOJMFbbqdXbOW7Sfhw==" + }, + "url": "http://nothing.com", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "dark-orange", + "title": "Dark Orange" + } + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-thgworks", + "official": false, + "manifest": { + "version": "1.0.2", + "manifestVersion": "0.1.0", + "name": "theme-thgworks", + "description": "THGWorks Theme", + "author": { + "name": "Thiago Ferezim", + "email": "thiagoferezim@gmail.com", + "url": "https://thg.works" + }, + "resources": { + "css": "Y9MnKuKokoRN4YBPd7/rYZGy/B/E8kOYjjzP2JqF26Cdf6BLl8cNx7kcTNwHkuceM1+YBrMp9hQxsV96yiHaNcwD9hgCr7WP8BGs+a95CCXY3O0Eqp+tIbf74uXVKpGfbexlm4u4fVAXraCmSxlhQNUP73YRyeJeuT7Fz+y6xlt5QprQo633SfGeAIQ5K7IosPdM9yrTk54YwQ+9n84KJRqoPJwEsZysiDU56w6FYGI0LovKhK7h/e44/6AsopwPr++SQK7kSVahe3Qia8irpeDAq/0FbS2Fe3naXDJTXKAlpeapwEA7qzPmBQT2NhPOmuAfiVwSyRc2MJD6MlPhdg==" + }, + "url": "https://github.com/thgfrzm/theme-thgworks", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "thgworks", + "title": "THGWorks Theme" + } + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-auto", + "official": false, + "manifest": { + "version": "1.0.1", + "manifestVersion": "0.1.0", + "name": "theme-cupertino-auto", + "description": "Cupertino Theme (Auto)", + "author": { + "name": "Jonas Gnioui", + "email": "btxtiger@outlook.com", + "url": "https://github.com/btxtiger" + }, + "resources": { + "css": "UDE64btaEXUzXt7Diex5DUKAmL/DAIVEJxXv664TvkI7P51vwB7eNSLiDNv243vcOfboW0mLzPUzrRBB+out2GoOMkLVNN+rqZYQhLEJWCJj8417diF9IiRsctGb7F2qfUlnR1hU+TsZ0sRw9hZtJ/RnqxOllMjb2fZAeFIgIolCbWSGSnhe+/QBCLQkot1pmmUYUf57ETwLxWH1n4Q90HQ6gq9rgZRrJSsdc382o8h9l66/NpWrIsb6WgLXH3G5rICfoZbA5AAnSqag8CgwN4CgpLdPhjnd87B4tHQ9Rsm59/chDWz8vvTzGLi0Occa00IkM2AgZ8tgQfB3Jnb6Rg==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-auto", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "keeweb-cupertino-auto", + "title": "Cupertino Theme (Auto)" + } + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-dark", + "official": false, + "manifest": { + "version": "1.0.1", + "manifestVersion": "0.1.0", + "name": "theme-cupertino-dark", + "description": "Cupertino Theme (Dark)", + "author": { + "name": "Jonas Gnioui", + "email": "btxtiger@outlook.com", + "url": "https://github.com/btxtiger" + }, + "resources": { + "css": "LK0tV/aPym/6emha+eGwS5BZfa3xPdLRUqc7c+dKmccV/vmRsnVMrJnyPl+/Yyw9TiXvOhgWXcKuAxSueOSWaOiBOmcdGaDJia3etIUam6xiWcdbXnbvbDIov9jFB7cfWcGHcAA8C6wf5qpoyTszI33lmbR+cNQYe24ximVxGLdbaWT75zRuWjMpz2eJ47l/DfYbWLpTr9GsWV5orcUAbobEuPSHcj0SN2ulmzTbk/clDrjFJfjUF4n4WxFElADs4okjfze/EMdwX+8uMQ/bHBr4H21CTMrrhHajPa9YhM7jP/RG6m5hMen8Ex+m/K+yOysfdTfDrqsRevW0TFZraQ==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-dark", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "keeweb-cupertino-dark", + "title": "Cupertino Theme (Dark)" + } + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-light", + "official": false, + "manifest": { + "version": "1.0.1", + "manifestVersion": "0.1.0", + "name": "theme-cupertino-light", + "description": "Cupertino Theme (Light)", + "author": { + "name": "Jonas Gnioui", + "email": "btxtiger@outlook.com", + "url": "https://github.com/btxtiger" + }, + "resources": { + "css": "cgAHkI+doLpStpySwpQUKhXMQKQ1AogrSekPE9WbIDN9sajvzm4EtZQ6WWfZuKAwQgygOJCjVO1yESX2zOwzlaVS46371maw1IgXIQai77KEkxWRcZMzydYOP2tr651lHrv85mNT++SIqKXFvODiC4qk6JyafWFdZ520PnfKsyqHbB0Mrt6lKGa3P9kqWrOm9JYZfXfGpJ2pp7/qMPcOhwSsvvbjd8Hy6DnCBf/ThnNXpsxvmh3UaBAm0ZUP8uFl8sH4miltl6M7KOL9o6wN0yGbR2u3q1sVtEMk29kkO3ut/zEfulIWE8DXxS5zyl+aUy+12XJZJfyY8881z+t1mA==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-light", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "keeweb-cupertino-light", + "title": "Cupertino Theme (Light)" + } + } + }, + { + "url": "https://plugins.keeweb.info/translations/uk", + "official": true, + "manifest": { + "version": "1.25.0", + "manifestVersion": "0.1.0", + "name": "language-ukrainian", + "description": "Ukrainian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=uk", + "resources": { + "loc": "HjXQtdXL1PPJLzZnL9ZORmJxV3qjqWlQvsfvXtlZR4ZSkCUIapfHOPlRXXggXUoK0++chtduliPbG5pDIL+zwVvyt5JtZmp8eK6vYdEeVXolIoG3/KIZR1hqTfJjYj6RMUU5xkeYkvcggQBjXasVBKPJUJpSwq2ngAF1vANey7PLvc+CJHsSqqYl9sAac5C7S1De9Rg8eCECceJjgkh4AOYBmtQC4q8kX4XpU/IyPQ+YXKSHLRJIPV/PddvM6At3/4akIQXU4DhLS2rVfi/AXP7r7eGFNyalpIcLE/ugtt42IS8upOI9fpMDZKF/XszuYTpFvOfEvN4z73qOBm0/Mg==" + }, + "locale": { + "name": "uk", + "title": "Українська", + "flag": "🇺🇦" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/cs", + "official": true, + "manifest": { + "version": "1.10.0", + "manifestVersion": "0.1.0", + "name": "language-czech", + "description": "Czech language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=cs", + "resources": { + "loc": "OJ1tFfwwy2p8ZBC5KFVxqz/+XydZzAgWnmFlCGVO5qGZgw91hHvZ8SefSky28NJhzg7lUNHdVL5Qbc7YH6W0/GWLcLb1BNnDqQQHlSCLzfc0+JN5HIs3JhyO9GDY8TLyjbcZUxuwS3ewGFTXMxJ2FjCGJ/cywTnprYk7Embr7LXMVsWwGiQ7knGgWuoKo9uXVL9SHny9+qTXEcW/fFvmjqoQObXXn/lQABTe1DXUSMm0YZCkF6fFufvPCdzt/FxXJ8skAqX6D93fNTAUIEKCVCBq0hhTsxLKJ7F23yeSZ1W5UFgwH1/gfV0zKJ6DM3hINr995nv8TeY7vs8RVCnKQg==" + }, + "locale": { + "name": "cs", + "title": "Čeština", + "flag": "🇨🇿" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/zh-TW", + "official": true, + "manifest": { + "version": "1.12.0", + "manifestVersion": "0.1.0", + "name": "language-chinese-traditional", + "description": "Chinese Traditional language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=zh-TW", + "resources": { + "loc": "ElkgqBkzPMDLHGotC7h5reM4c55NZHT0GERrtKTcDTSWbVx5umS4hgce2qOmxqPClYgsSUX+RMuTOHJKZOePOn6xMGNDuKAOW7shn8Z+MKl2HGl6ArC5yTcom9z6VvjNVRe2cJaN6YPC9Aq9a186Pu9hZU0lUcEeJFoCsxxiX0M5zCFjmBhuRwE7sCqTrqbqgmMQiuw0PUq+/WDcPsj2gHSIikGlx5+2FNrxRIoIy11NecbKTc0AabcXFJRd/yfKoa2OZKiPkADzb3gzV7GpX1LfyG7JyFsM8l7yFuRf60/sXFCksIdEajSSgQw2LQnSP5UDN2R/DP6lZliYKKcFgA==" + }, + "locale": { + "name": "zh-TW", + "title": "繁體中文", + "flag": "🇹🇼" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/pt-BR", + "official": true, + "manifest": { + "version": "1.14.0", + "manifestVersion": "0.1.0", + "name": "language-portuguese-brazil", + "description": "Portuguese (Brazil) language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=pt-BR", + "resources": { + "loc": "LrEXP7j72VzpGmUW6xD4ImAdE835/YDnMVCg2gdneOl8aCiON1s2XWifNHYOB55wkTaEurdFhlvaGZQQF+MeU39eaqTroL/o0Q/+nUyXzWsq/TfNrMQND3K7WHRGVNaUospwGmX6wKkjN81Lg8lLX0mt5QhldSUus7vdF55kccxd9NsSKaKKkqBFfgfGGQ8rrbaLtg/BCVHnjm253skldGKDhy0uRnsiPjY1fUCFC5JwyZKgPUCPa1Yt+EYYWCMx6KjDJqaTRpMpX0c0LRU7poEtOEY5dhxTvm6oVDzHCewXFJayQqgvhaqgGmX0L8Gc7fa9/6AxKQLvhkzQJD1eWA==" + }, + "locale": { + "name": "pt-BR", + "title": "Português (Brasil)", + "flag": "🇧🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/tr", + "official": true, + "manifest": { + "version": "1.20.0", + "manifestVersion": "0.1.0", + "name": "language-turkish", + "description": "Turkish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=tr", + "resources": { + "loc": "bc/17iVcDLehgsOevfNkxHhxhAs1/8c0Gt1pjumAhhcs6z5VOA6Ex98MI0mck6F3TUi4Z8a0iFe82FbJzuUq9fH06JwizhHFmTaP9AarDnKud0+k0mZ5x8gD28Uokvehk0JcBOf1tvRy0M0PGpN0F94G1zP6vR2KQuFr+Yvc16zvpYDYcsXCCeOX8Z1JWTm61/b15LXoHXGRtB51+P0QuqyVPMAY4LndH7ujbwF2qjA7+HqL1tYPJAh8VAqATdI8rYatVeV4URCj+5cy17Momr/y+hXfQ6jHCkg5fK7iFgO1E2kzn9QieET3X2Vblkg5i/pOThpMskHGKjF8x2oz7w==" + }, + "locale": { + "name": "tr", + "title": "Türkçe", + "flag": "🇹🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/et-EE", + "official": true, + "manifest": { + "version": "1.0.0", + "manifestVersion": "0.1.0", + "name": "language-estonian-estonia", + "description": "Estonian (Estonia) language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=et-EE", + "resources": { + "loc": "B+SU8NWKr79BEMhy9M/aeNhAvmu6ZJWS8goMOcNuzOej70lb9eKQB9PBQyYPouakO/HGnYu3p92O4qcIC4mw0okIT9yvo/hsXe6+IkQK+bE2cTdhDFgu8ojUHF1ckJc/vPlp94x3MCS1KIVxAaMuHIIphRfH9e9C8sv/FrboJYcC0uUsNANEgToLwHxNT5/0M5y6EYXg7VdS1EDrW+Wc0wg8fp7pRDP6ZkxcsdruaOdMLwG7LoFjDlNhPrAmMDnBuqb9lqGsCRPq+IoWUiwipvQ1F+pa6UfWAdmY5lwTdoJ6Wn+UmZ1GbMhewd6TeAgG+abxw5Qn6ZarwJaMDOB59g==" + }, + "locale": { + "name": "et-EE", + "title": "Eesti (Eesti)", + "flag": "🇪🇪" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0oZB2Kt7AzRFNqf8FuO3C3kepHPAIQYiDPYdQxHcsiaFCwyKVx6K1cE/3vBhb8/2rj+QIIWNfAAuu1Y+2VK90ZBeq6HciukWzQRO/HWhfdy0c7JwDAslmyGI5olj0ZQkNLhkde1MiMxjDPpRhZtdJaryVO5cFJaJESpv3dV6m0qXsaQCluWYOSNfSjP9C8o2zRVjSi3ZQZnZIV5pnk9K2MtlZIPXrN9iJiM5zZ9DTSnqApI6dC9mX4R3LvGN+GTovm9C8Crl+qb106nGRR3LcweicDnPyMtZLa/E0DBpWYxUVLDp6WeLhxoUBr+6+t3Xp9IDnPoANDQXJXD0f1vQxQIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/da", + "official": true, + "manifest": { + "version": "1.3.0", + "manifestVersion": "0.1.0", + "name": "language-danish", + "description": "Danish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=da", + "resources": { + "loc": "PW/wwft62s/t33MmiYq0S7Dbgzcpo+nB0+akwSXSj1ZYd6vUO9i9cdhhRfxMFBM3DafXUL0Zt3RNwmfsio7wbhpbXTK9W9Y285sFdAiH09cmIA6/2A3M8TQdp+0JvnSpRlT+U1O8m7HSZ+L9gbDdEW/ApoE0In4MtkGoRxvLNrRpDCchkLAtOBrqTKVD9OFuARRtlb8o5JVW254+6slTWjvK4jfQOOZ2mXQ23/rcNWbxpnuQfeIrsOYkQdIHi444F7JjG3MTOUlYIH24q4EFMUX+u2ygGmc5A07/KVBQVKel1dgyikQkpmlmmlhJIjPddLQ03T+81jUycA6lJVX8+Q==" + }, + "locale": { + "name": "da", + "title": "Dansk", + "flag": "🇩🇰" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/ja", + "official": true, + "manifest": { + "version": "1.15.0", + "manifestVersion": "0.1.0", + "name": "language-japanese", + "description": "Japanese language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ja", + "resources": { + "loc": "FOqn8osvBbZJYo4NaPrX3AYwOJ/FVT6y+8NKQhbFTyp4zlxB1b6Q7KNezLFNE1iSgOForf0/ewIG10TIXPzKOVgzPgHYnnmD3KkxXOPKkNHb6/fz916ebnXjtMpcvsIJJAnsTHFySpmszdFddiAYiErUFk4DHkZWY/iboV/6mpU8ia8Zm6/2HQo+AlcItqRKSFMihTF19QP0iY0ZXIkOoVdP4qcgcQymL/cDS47Xa/lTQsSoo+YRLuxdNLH55/QPL7vR9nL/fgOXnih+s3CpwFhK7GVJqeJk3PhIfEPtyvJXzkUMo4kOcGTJru7B6OzL8Prj+vIljr5/Hva5IXv2KA==" + }, + "locale": { + "name": "ja", + "title": "日本語", + "flag": "🇯🇵" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/fi", + "official": true, + "manifest": { + "version": "1.3.0", + "manifestVersion": "0.1.0", + "name": "language-finnish", + "description": "Finnish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=fi", + "resources": { + "loc": "p/k/H1vv/xWX0lJppKzJueYQiPfdmR2NHEEY650lVM3nIWWEjTp5dSxMls7CvZub5Esdv+iF1xcJXEzI1fCtv0xnPqiq4oqVenek6B3EgU1RAIGa4E8WyP5ACd9SPHvUWSH87opulMr1p8xQmGZm5yu4Qu1n3qxjpvPLFvaHGDGwyFM9uAt9QvIVozbQ06bxc/0kydH6HMSfgKRf/uYaVJc/xZluBeF/2i+n++DrnYvOnNH+XmNhDe/dXXo8gwpjuKkL6K5LtjBoWG77tX5yAktxd0DHSV/V7sghWhR7fGxuIqveojH8QRnuXm56066c93ki189EbH3LoxtrHuV4Yw==" + }, + "locale": { + "name": "fi", + "title": "Suomi", + "flag": "🇫🇮" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0oZB2Kt7AzRFNqf8FuO3C3kepHPAIQYiDPYdQxHcsiaFCwyKVx6K1cE/3vBhb8/2rj+QIIWNfAAuu1Y+2VK90ZBeq6HciukWzQRO/HWhfdy0c7JwDAslmyGI5olj0ZQkNLhkde1MiMxjDPpRhZtdJaryVO5cFJaJESpv3dV6m0qXsaQCluWYOSNfSjP9C8o2zRVjSi3ZQZnZIV5pnk9K2MtlZIPXrN9iJiM5zZ9DTSnqApI6dC9mX4R3LvGN+GTovm9C8Crl+qb106nGRR3LcweicDnPyMtZLa/E0DBpWYxUVLDp6WeLhxoUBr+6+t3Xp9IDnPoANDQXJXD0f1vQxQIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/sk", + "official": true, + "manifest": { + "version": "1.11.0", + "manifestVersion": "0.1.0", + "name": "language-slovak", + "description": "Slovak language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=sk", + "resources": { + "loc": "aXUmLWoqGRn4ibrRB6i3HTIcgbDnwtomVbQPbZQY6t+8TerxMX83cMXiNf1qwimS6pykRFFDe00CQfLiULik2h91oYj3Ig7ZjgPkMD2oU7oyHZef5O7RQ3v6sTMSu/aHRVf1f7dsEKiWa1IMO70EmRNrmXN+D3wHUC4zoGJprwmqnMTG+WoUo2gTWagrEMvg9PJskf3dVtdwrwzYXbUx7+T6c5iZChGBu247PWaNJzGRa+rHLvMzgUxkyQk7CSkomJkd0rf0WpE4/vDarFGwh1JHHVTeRLQGoAWwHeQ2txMubbANR/5SH2IamMyoaaHXcTw7JEEBfp9TTGixx9+seA==" + }, + "locale": { + "name": "sk", + "title": "Slovenčina" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/translations/ca", + "official": true, + "manifest": { + "version": "1.0.0", + "manifestVersion": "0.1.0", + "name": "language-catalan", + "description": "Catalan language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ca", + "resources": { + "loc": "QTIVIZMObOutR32RpRfhNl/ycijgp++Mk28qqBmZjbPqkKpzq8zKWGefPc0MkWqNDUhVh4w9ApfMzsZNEbBZvwvfJuygZnKaWGW+WpJFSJUUWJ1WoDbQ/jAa7hUu1+mDEFRKFRFFWao1m6K6hXQW1v4XJh1YFhq4aAeci4MoTz1K2f08m2NDaI8dG8bq2U5pmMdcDmAb1kj4p3+YwwsAGPprcYs8GuNU7AK2t1+tfRJ0dFVDbqSCYcZeCICtJFDmBLTCKogy8FKc1CJ0XdieICZn+qYOJtYZpIToAi9wPLiXV/F0BOnpjRIlzW1ccfH1dcR6pctq4+cNrTMhPofu9g==" + }, + "locale": { + "name": "ca", + "title": "Català" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" + } + }, + { + "url": "https://plugins.keeweb.info/plugins/external-selection-menu", + "manifest": { + "version": "1.1.0", + "manifestVersion": "0.1.0", + "name": "external-selection-menu", + "description": "Use an external menu such as dmenu when prompted to select an entry for auto-type", + "author": { + "name": "Benjamin", + "email": "b3nj4m1n@gmx.net", + "url": "https://github.com/b3nj5m1n" + }, + "resources": { + "js": "PLORQ7qFkXDNIALV4r5O1pItMWIpZ1UmZ7+znlr/zva0qddt3ssk2fG7d/OH4XeVRDkCj2/wEeq66hqtWnL4lNjLECw/52cP9B5yBfUgWgsP5zIeSlqP0YARY/JSf+9Fyaa8YUgffzve62rgEA+JW/8MLBLMvNdqBivjqLDDcWYR8mJOTKMbWWAHGJSOLQHWDzUYZYaAbp2kzmPXGE7nnFu7TT3bdKz4FtHYPdGZ8UAZQoXCUskBATTHbKafip7Vd+p9JPZjAUilcwgaszqJlJjjH0Er38Kyq31jWLWAFzO6dTDfghO4xg++nKFliVPgspWz4Te5pOkGDPfh7wJY6A==" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/plugins/external-selection-menu", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "desktop": true + } + }, + { + "url": "https://plugins.keeweb.info/plugins/theme-dracula", + "manifest": { + "version": "0.0.5", + "manifestVersion": "0.1.0", + "name": "theme-dracula", + "description": "Dracula Theme", + "author": { + "name": "Neffarion", + "email": "main@neffware.com", + "url": "https://www.neffware.com" + }, + "resources": { + "css": "WyZZtIt5uuNZf+zKPCkZZjNYmtULCkZUWr0+X/yw2AyMuy4Yj0zVpUCn4CPF5kvHYRw6aWukNiHT3msbMBwMm8eyVxtY51hgkq9uJYt6Mo7ifxMyfALJXtbhMf8gtCqUtSzD20JCQACh8P58pfOpd4pVWtUwzBF/HmQ5L/5V4Q6DDAjlwOrKzRDJLRBO2wZ1KWgU/fy4EsD4AKf4W4XADwduTm2C1hu+3wophI0rSvyvVE2Rop8thkPCm2FTbcBu3xiykPemTopihctBlL8H0xbGM8qk6VJMEyAKDit4Z9kVTIWN+bQ4mcX1Wae6IRR4BZe386wG2omlH+NMQ6xo9A==" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/plugins/theme-dracula", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "theme": { + "name": "dracula", + "title": "Dracula" + } + } + } + ] +} \ No newline at end of file diff --git a/keeweb/plugins/plugins/external-selection-menu/manifest.json b/keeweb/plugins/plugins/external-selection-menu/manifest.json new file mode 100644 index 0000000..ededd30 --- /dev/null +++ b/keeweb/plugins/plugins/external-selection-menu/manifest.json @@ -0,0 +1,18 @@ +{ + "version": "1.1.0", + "manifestVersion": "0.1.0", + "name": "external-selection-menu", + "description": "Use an external menu such as dmenu when prompted to select an entry for auto-type", + "author": { + "name": "Benjamin", + "email": "b3nj4m1n@gmx.net", + "url": "https://github.com/b3nj5m1n" + }, + "resources": { + "js": "PLORQ7qFkXDNIALV4r5O1pItMWIpZ1UmZ7+znlr/zva0qddt3ssk2fG7d/OH4XeVRDkCj2/wEeq66hqtWnL4lNjLECw/52cP9B5yBfUgWgsP5zIeSlqP0YARY/JSf+9Fyaa8YUgffzve62rgEA+JW/8MLBLMvNdqBivjqLDDcWYR8mJOTKMbWWAHGJSOLQHWDzUYZYaAbp2kzmPXGE7nnFu7TT3bdKz4FtHYPdGZ8UAZQoXCUskBATTHbKafip7Vd+p9JPZjAUilcwgaszqJlJjjH0Er38Kyq31jWLWAFzO6dTDfghO4xg++nKFliVPgspWz4Te5pOkGDPfh7wJY6A==" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/plugins/external-selection-menu", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "desktop": true +} \ No newline at end of file diff --git a/keeweb/plugins/plugins/external-selection-menu/plugin.js b/keeweb/plugins/plugins/external-selection-menu/plugin.js new file mode 100644 index 0000000..4ceda6d --- /dev/null +++ b/keeweb/plugins/plugins/external-selection-menu/plugin.js @@ -0,0 +1,116 @@ +/** + * KeeWeb plugin: external-selection-menu + * @author Benjamin + * @license MIT + */ + +// const Logger = require('util/logger'); +// const logger = new Logger.Logger('external-selection-menu'); + +const launcher = require('comp/launcher'); +const Launcher = launcher.Launcher; + +const autoType = require('auto-type/index.js'); +const originalProcessEventWithFilter = autoType.AutoType.processEventWithFilter; /* Preserve original method for uninstall */ + +const selectView = require('views/auto-type/auto-type-select-view.js'); +const AutoTypeSelectView = selectView.AutoTypeSelectView; + +// Function to pad number with leading zeroes +function pad(n, width, z) { + z = z || '0'; + n = n + ''; + return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n; +} + +// Command to execute +let cmd = 'dmenu'; +let args = ['-c']; + +// Overwrite processEventWithFilter function +autoType.AutoType.processEventWithFilter = function (evt) { + // Default code for when a matching entry can be found without having to select one + // + const initEntries = evt.filter.getEntries(); if (initEntries.length === 1) { + autoType.AutoType.runAndHandleResult({entry: initEntries[0]}, evt.windowInfo.id); + return; + } + // Custom code replacing the selection menu + // + evt.filter.ignoreWindowInfo = true; /* Set filter to ignore windowInfo */ + this.selectEntryView = new AutoTypeSelectView({ filter: evt.filter }); /* Create new AutoTypeSelectView to gain access to entries */ + const entries = this.selectEntryView.model.filter.getEntries(); /* Get all entries from selectEntryView */ + this.selectEntryView = null; /* Remove selectEntryView */ + + this.data = ''; /* Init data string, will be used as stdin for the command */ + + // Loop over all entries and add information from that entry to the data string + for (let i = 0, len = entries.length; i < len; i++) { + this.data += pad([i], 3) + ': ' + entries[i].title + ' - ' + entries[i].user + ' - ' + entries[i].url + ' - ' + entries[i].tags + '\n'; + } + // Spawn a new command (dmenu) + Launcher.spawn({ + cmd: cmd, + args: args, + data: this.data, + complete: (err, stdout, code) => { + if (err) { + return; + } + // Callback function + const cb = function () { + const i = parseInt(stdout.split(':')[0], 10); /* From selection, get everything up to the first : (This will be the index of the entry) and parse it to an int to remove leading zeroes */ + autoType.AutoType.runAndHandleResult({ entry: entries[i] }, evt.windowInfo.id); /* runAndHandleResult with the selected entry */ + }; + cb(err, stdout, code); + } + }); +}; + +module.exports.getSettings = function() { + return [ + { + name: 'External menu command', + label: 'Command to be run every time the selection menu comes up', + type: 'text', + maxlength: 50, + placeholder: '', + value: 'rofi' + }, + { + name: 'External menu command arguments', + label: 'Arguments to give to the command', + type: 'text', + maxlength: 50, + placeholder: '', + value: '--dmenu,-p,"> "' + } + ]; +}; + +module.exports.setSettings = function(changes) { + if (changes['External menu command']) { + cmd = changes['External menu command'] + ''; + } + if (changes['External menu command arguments']) { + args = changes['External menu command arguments']; + // Make sure there is actually 1+ arguments, otherwise set args to null + if (args === '' || args === ' ' || args === '-') { + args = null; + } + // If there are args, split them into an array (Using , as the delimiter) and remove any quotes around the input + if (args !== null) { + args = args.split(','); + for (let i = 0, len = args.length; i < len; i++) { + if (args[i][0] === '"' && args[i][args[i].length - 1] === '"') { + args[i] = args[i].replace(/"([^"]+(?="))"/g, '$1'); + } + } + } + } +}; + +module.exports.uninstall = function() { + delete autoType.AutoType.processEventWithFilter; + autoType.AutoType.processEventWithFilter = originalProcessEventWithFilter; +}; diff --git a/keeweb/plugins/plugins/theme-arc/index.html b/keeweb/plugins/plugins/theme-arc/index.html new file mode 100644 index 0000000..960cf65 --- /dev/null +++ b/keeweb/plugins/plugins/theme-arc/index.html @@ -0,0 +1,20 @@ + + + + + KeeWeb Plugin: Arc Theme + + + + +

KeeWeb Plugin: Arc Theme

+https://plugins.keeweb.info/plugins/theme-arc +

This is a light theme inspired by Arc KDE theme +

+ + diff --git a/keeweb/plugins/plugins/theme-arc/manifest.json b/keeweb/plugins/plugins/theme-arc/manifest.json new file mode 100644 index 0000000..16182ef --- /dev/null +++ b/keeweb/plugins/plugins/theme-arc/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "0.0.2", + "manifestVersion": "0.1.0", + "name": "theme-arc", + "description": "Arc Theme", + "author": { + "name": "Stan Bogatkin", + "email": "sbog@sbog.ru", + "url": "https://sbog.ru" + }, + "resources": { + "css": "cGbKAOoM/6HlQgjudZosjwNGq43WqM5azUwRWds86XlAfCXJKkDEIurTYCBDRZZK07c0Se8BoNPgtOs5m/4D9bwyphWCvbKGTbfduCk6bFUNJyNFnshgwF+WunWiiD5gZFgsgrEU4FmaShHmijhXJ4YG6E6JSwUbwcQMPGlkNV6p5RnHP/5maCdZQeXKjKKHsV50YUsJlwH8IkTRsy+pZrqVtX95Lj2A+g1SPKD/DyfDyGMI//rVsccRR+0Lu68VBSINWAXfwJYjcdnVxRF7dlAdRDdDSAV9Kn2KeuRNVYK54So1C4ZwCHOmQj0dRYSbhBxeoJa6dg4WDKZle18Esw==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-arc", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "arc", + "title": "Arc" + } +} diff --git a/keeweb/plugins/plugins/theme-arc/plugin.css b/keeweb/plugins/plugins/theme-arc/plugin.css new file mode 100644 index 0000000..4235f38 --- /dev/null +++ b/keeweb/plugins/plugins/theme-arc/plugin.css @@ -0,0 +1,10 @@ +.th-arc { + --background-color: #e7e8eb; + --medium-color: #abb2bf; + --text-color: #404552; + --action-color: #5294e2; + --error-color: #da4453; + --mute-percent: 100%; + --light-border-color: #d3dae3; + --muted-color: #a3a5ac; +} diff --git a/keeweb/plugins/plugins/theme-cupertino-auto/index.html b/keeweb/plugins/plugins/theme-cupertino-auto/index.html new file mode 100644 index 0000000..5b2d4a6 --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-auto/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Plugin: Cupertino Theme (Auto) + + + + +

KeeWeb Plugin: Cupertino Theme (Auto)

+

This theme sets macOS style for KeeWeb and supports switching automatically between light and dark theme, depending on OS setting.

+ + diff --git a/keeweb/plugins/plugins/theme-cupertino-auto/manifest.json b/keeweb/plugins/plugins/theme-cupertino-auto/manifest.json new file mode 100644 index 0000000..a083606 --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-auto/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "1.0.1", + "manifestVersion": "0.1.0", + "name": "theme-cupertino-auto", + "description": "Cupertino Theme (Auto)", + "author": { + "name": "Jonas Gnioui", + "email": "btxtiger@outlook.com", + "url": "https://github.com/btxtiger" + }, + "resources": { + "css": "UDE64btaEXUzXt7Diex5DUKAmL/DAIVEJxXv664TvkI7P51vwB7eNSLiDNv243vcOfboW0mLzPUzrRBB+out2GoOMkLVNN+rqZYQhLEJWCJj8417diF9IiRsctGb7F2qfUlnR1hU+TsZ0sRw9hZtJ/RnqxOllMjb2fZAeFIgIolCbWSGSnhe+/QBCLQkot1pmmUYUf57ETwLxWH1n4Q90HQ6gq9rgZRrJSsdc382o8h9l66/NpWrIsb6WgLXH3G5rICfoZbA5AAnSqag8CgwN4CgpLdPhjnd87B4tHQ9Rsm59/chDWz8vvTzGLi0Occa00IkM2AgZ8tgQfB3Jnb6Rg==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-auto", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "keeweb-cupertino-auto", + "title": "Cupertino Theme (Auto)" + } +} \ No newline at end of file diff --git a/keeweb/plugins/plugins/theme-cupertino-auto/plugin.css b/keeweb/plugins/plugins/theme-cupertino-auto/plugin.css new file mode 100644 index 0000000..4b29213 --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-auto/plugin.css @@ -0,0 +1,1103 @@ +.th-keeweb-cupertino-auto { + --font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + --background-color: #fff; + --text-color: #111; + --action-color: rgba(0, 122, 255); + --error-color: #e91501; + --text-contrast-action-color: #fff; + --modal-background-color: rgba(255, 255, 255, 0.5); + --light-border-color: #e5e5e5; + --disabled-background-color: rgb(224, 224, 224); + --intermediate-background-color: rgba(0, 0, 0, 0.04); + --intermediate-pressed-background-color: rgba(0, 0, 0, 0.07); + --medium-color: #212121; + --input-border-radius: 4px; + --secondary-background-color: var(--color-mac-blue-list-highlight); + --font-size: 14px; + --font-size-label: 13px; + color: #121212; + --color-mac-text-default: #121212; + --color-mac-text-light: #fff; + --color-mac-blue-list-highlight: #0058dd; + --color-mac-blue-list-highlight-text: #fff; + --color-mac-finder-sidebar-highlight: #bbbbbb; + --color-mac-finder-sidebar-background: #e9e9e9; + --color-mac-finder-sidebar-icon: #616161; + --color-mac-finder-sidebar-text: #363636; + --color-mac-finder-sidebar-icon-active: #3f3f3f; + --color-mac-finder-sidebar-text-active: #0f0f0f; + --color-mac-finder-frame-border: #b8b8b8; + --color-mac-settings-section-background: #e9e9e9; + --color-mac-settings-section-background-dark: #e2e2e2; + --color-mac-dropdown-border-outline: #b2b2b2; + --color-mac-dropdown-background: rgba(255, 255, 255, 0.82); + --color-mac-dropdown-box-shadow: 0px 0px 0px 1px #d2d2d2, 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 16px rgba(0, 0, 0, 0.1); + --color-mac-window-content-panel: #e9e9e9; + --color-mac-window-content-divider: #d2d2d2; + --color-mac-window-drag-handle: #d2d2d2; + --color-mac-button-outline: #757575; + --color-mac-card-border: #cbcbcb; + --color-mac-card-background: #fff; + --color-mac-list-item-icon: #64646c; + --color-mac-list-item-divider: #cfcfcf; + --color-mac-list-header-background: #f5f5f5; + --color-mac-footer-toolbar-background: #f6f6f6; + --color-mac-footer-toolbar-border: #d2d2d2; + --color-mac-footer-toolbar-icons: #616161; + --color-mac-footer-background: linear-gradient(to top, #cfcfcf, #d0d0d0, #d9d9d9, #e0e1e1); + --color-mac-header-background: linear-gradient(to top, #d0d0d1, #d4d4d4, #d7d7d7, #dcdbdb); + --color-mac-empty-background: #fff; + --color-mac-scrollbar-background: #f9f9f9; + --color-mac-scrollbar-border: #e5e5e5; + --color-mac-input-border: #bfbfbf; + --color-mac-input-background: #fff; + --color-mac-button-default-background: #fff; + --color-mac-button-default-border: #bebfbf; + --color-mac-button-default-border-top: #c6c5c5; + --color-mac-button-default-border-bottom: #a9a9a9; + --color-mac-modal-backbground: rgba(231, 231, 231, 0.7); + --color-mac-button-active-background: linear-gradient(to top, #0558ff, #2070fe, #498bfc, #5e99fa); + --color-mac-button-active-background-active: linear-gradient(to top, #0248d9, #1961e9, #3077f6, #4185fe); + --color-mac-button-danger-background: linear-gradient(to top, #bf1313, #c71616, #d61515, #c72424); + --color-mac-button-danger-background-active: linear-gradient(to top, #e31e1e, #e81e1e, #ed1f1f, #f53333); + font-size: var(--font-size); + /** + * Input fields, buttons + */ + /** + * App window + */ + /** + * GENERATOR + */ + /** + * PASSWORD List + */ + /** + * Settings + */ + /** + * Side menu + */ + /** + * Start page + */ +} + +@media (prefers-color-scheme: dark) { + .th-keeweb-cupertino-auto { + color: #dcdcdc; + --color-mac-text-default: #dcdcdc; + --color-mac-text-light: #dcdcdc; + --color-mac-blue-list-highlight: #0058dd; + --color-mac-blue-list-highlight-text: #fff; + --color-mac-finder-sidebar-highlight: #444444; + --color-mac-finder-sidebar-background: #2c2c2c; + --color-mac-finder-sidebar-icon: #868686; + --color-mac-finder-sidebar-text: #white; + --color-mac-finder-sidebar-icon-active: #9e9e9e; + --color-mac-finder-sidebar-text-active: #white; + --color-mac-finder-frame-border: #000; + --color-mac-settings-section-background: #333333; + --color-mac-settings-section-background-dark: #2c2c2c; + --color-mac-dropdown-border-outline: #4f4f4f; + --color-mac-dropdown-background: rgba(48, 48, 48, 0.7); + --color-mac-dropdown-box-shadow: 0px 0px 0px 1px #000, 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 16px rgba(0, 0, 0, 0.1); + --color-mac-window-content-panel: #1c1c1c; + --color-mac-window-content-divider: #323232; + --color-mac-window-drag-handle: #000; + --color-mac-button-outline: #a0a0a0; + --color-mac-card-border: #757575; + --color-mac-card-background: #343434; + --color-mac-list-item-icon: #9e9e9e; + --color-mac-list-item-divider: #000; + --color-mac-list-header-background: #282828; + --color-mac-footer-toolbar-background: #353535; + --color-mac-footer-toolbar-border: #747474; + --color-mac-footer-toolbar-icons: #686868; + --color-mac-footer-icons: #989898; + --color-mac-footer-background: linear-gradient(to top, #1a1a1a, #292929, #2e2e2e); + --color-mac-header-background: linear-gradient(to top, #333333, #353535, #383838, #393939); + --color-mac-empty-background: #1c1c1c; + --color-mac-scrollbar-background: #282828; + --color-mac-scrollbar-border: #3b3b3b; + --color-mac-input-border: #444444; + --color-mac-input-background: #3b3b3b; + --color-mac-button-default-background: #646464; + --color-mac-button-default-border: #2a2a2a; + --color-mac-modal-backbground: rgba(48, 48, 48, 0.7); + --color-mac-button-active-background: linear-gradient(to top, #1449c0, #154cc7, #1651d6, #255ac8); + --color-mac-button-active-background-active: linear-gradient(to top, #1d67e2, #1d69e7, #1f6dee, #337ef5); + --color-mac-button-danger-background: linear-gradient(to top, #bf1313, #c71616, #d61515, #c72424); + --color-mac-button-danger-background-active: linear-gradient(to top, #e31e1e, #e81e1e, #ed1f1f, #f53333); + } +} + +.th-keeweb-cupertino-auto a { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .muted-color { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto [type='button'], +.th-keeweb-cupertino-auto [type='reset'], +.th-keeweb-cupertino-auto [type='submit'], +.th-keeweb-cupertino-auto button, +.th-keeweb-cupertino-auto select, +.th-keeweb-cupertino-auto input:not([type]), +.th-keeweb-cupertino-auto input[type='password'], +.th-keeweb-cupertino-auto input[type='text'], +.th-keeweb-cupertino-auto textarea { + height: 21px; + padding: 0 8px; + border-color: var(--color-mac-input-border); + background: var(--color-mac-input-background); + color: var(--color-mac-text-default); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.07); + border-radius: 4px; + font-family: var(--font-family); + font-size: var(--font-size-label); + font-weight: 400; + letter-spacing: -0.4px; +} + +.th-keeweb-cupertino-auto [type='button']::placeholder, +.th-keeweb-cupertino-auto [type='reset']::placeholder, +.th-keeweb-cupertino-auto [type='submit']::placeholder, +.th-keeweb-cupertino-auto button::placeholder, +.th-keeweb-cupertino-auto select::placeholder, +.th-keeweb-cupertino-auto input:not([type])::placeholder, +.th-keeweb-cupertino-auto input[type='password']::placeholder, +.th-keeweb-cupertino-auto input[type='text']::placeholder, +.th-keeweb-cupertino-auto textarea::placeholder { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto button { + font-weight: 500; +} + +.th-keeweb-cupertino-auto button, +.th-keeweb-cupertino-auto .settings__plugins-gallery-load-btn, +.th-keeweb-cupertino-auto .settings_plugins-install-btn { + border: 1px solid var(--color-mac-button-default-border); + background-image: var(--color-mac-button-active-background); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto button:hover, +.th-keeweb-cupertino-auto .settings__plugins-gallery-load-btn:hover, +.th-keeweb-cupertino-auto .settings_plugins-install-btn:hover { + background-image: var(--color-mac-button-active-background); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto button:active, +.th-keeweb-cupertino-auto .settings__plugins-gallery-load-btn:active, +.th-keeweb-cupertino-auto .settings_plugins-install-btn:active { + background-image: var(--color-mac-button-active-background-active); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-auto button.btn-error { + background-image: var(--color-mac-button-danger-background); + color: var(--color-mac-text-light); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-auto button.btn-error:active { + background-image: var(--color-mac-button-danger-background-active); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-auto button.btn-silent { + background: var(--color-mac-button-default-background); + border: 1px solid var(--color-mac-button-default-border); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto button.btn-silent:active { + background-image: var(--color-mac-button-active-background-active); + color: var(--color-mac-text-light); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-auto input[type='checkbox'] { + display: inline-block; + font-size: var(--font-size-label); + vertical-align: top; +} + +.th-keeweb-cupertino-auto input[type='checkbox'].input-base { + width: auto; +} + +.th-keeweb-cupertino-auto input[type='text'], +.th-keeweb-cupertino-auto input[type='password'], +.th-keeweb-cupertino-auto input:not([type]), +.th-keeweb-cupertino-auto textarea { + border-radius: 0; +} + +.th-keeweb-cupertino-auto input[type='text']:active, .th-keeweb-cupertino-auto input[type='text']:focus, +.th-keeweb-cupertino-auto input[type='password']:active, +.th-keeweb-cupertino-auto input[type='password']:focus, +.th-keeweb-cupertino-auto input:not([type]):active, +.th-keeweb-cupertino-auto input:not([type]):focus, +.th-keeweb-cupertino-auto textarea:active, +.th-keeweb-cupertino-auto textarea:focus { + border: 2px solid rgba(0, 122, 255, 0.7); + box-shadow: 0px 0px 3px var(--color-mac-blue-list-highlight); +} + +.th-keeweb-cupertino-auto input[type='range']::-webkit-slider-thumb { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto input[type='range']::-ms-track { + color: var(--color-mac-text-default); + background: var(--color-mac-text-default); + border-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto label { + font-family: var(--font-family); + margin-top: 5px; +} + +.th-keeweb-cupertino-auto label:before { + display: none !important; +} + +.th-keeweb-cupertino-auto .app .app__body { + background: var(--color-mac-window-content-panel); +} + +.th-keeweb-cupertino-auto .gen { + box-shadow: var(--color-mac-dropdown-box-shadow); + width: 15em; + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; +} + +.th-keeweb-cupertino-auto .gen > div:not([class]) { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + align-items: center; +} + +.th-keeweb-cupertino-auto .gen > div:not([class]) .gen__btn-refresh { + flex-grow: 1; + display: flex; + justify-content: flex-end; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .gen > div:not([class]) input#gen__check-hide { + margin-top: 4px; + margin-right: 26px; + margin-left: 20px; +} + +.th-keeweb-cupertino-auto .gen > div:not([class]) input#gen__check-hide::after { + content: 'Hide'; + white-space: nowrap; + margin-left: 16px; + top: 25px; + position: absolute; +} + +.th-keeweb-cupertino-auto .gen > div:not([class]) .gen__check { + width: 25%; + display: flex; + align-items: center; + flex-basis: 25%; + flex-wrap: nowrap; + margin-left: 0; +} + +.th-keeweb-cupertino-auto .gen .gen__result { + user-select: all; + margin-top: 20px; + margin-bottom: 20px; + height: unset; +} + +.th-keeweb-cupertino-auto .gen-ps__content .gen-ps__field { + display: flex; + align-items: center; + flex-flow: row wrap; +} + +.th-keeweb-cupertino-auto .gen-ps__content .gen-ps__field input[type='text'] { + width: 100%; +} + +.th-keeweb-cupertino-auto .gen-ps__content .gen-ps__field .gen-ps__sample { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .gen-ps__content .gen-ps__field i.fa { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .modal { + backdrop-filter: blur(12px); + background: var(--color-mac-modal-backbground); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list { + background: var(--color-mac-empty-background); + border: 1px solid var(--light-border-color); + margin-bottom: -1px; + margin-top: -1px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header { + border-bottom: 1px solid var(--color-mac-list-item-divider); + background: var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search { + padding: 6px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header { + align-items: center; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-field { + margin-bottom: 0; + height: 24px; + border-radius: 4px; + padding-left: 40px; + box-shadow: none; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-field:focus { + border-width: 1px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-icon-search { + top: 1px; + left: 0.5em; + right: unset; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-icon-search i.fa { + -webkit-text-stroke: 1px var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new, +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort { + border-radius: 4px; + border: 1px solid #bfbfbf; + height: 22px; + padding: 0px 13px; + display: flex; + align-items: center; + justify-content: center; + margin-left: 6px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:hover, .th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:active, .th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:focus, +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:hover, +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:active, +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:focus { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new i.fa { + -webkit-text-stroke: 2px var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort i.fa { + -webkit-text-stroke: 0.2px var(--color-mac-list-header-background); + font-size: small; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-adv { + margin: 10px -10px 0 -11px; + padding: 12px; + background: var(--color-mac-settings-section-background); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-adv .list__search-check { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item { + padding: 5px 10px; + min-height: 50px; + box-sizing: border-box; + letter-spacing: -0.4px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item:hover { + color: var(--color-mac-text-default); + border: none; + background: var(--color-mac-finder-sidebar-highlight); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item:not(.list__item--table) { + height: unset; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-title { + margin-left: 26px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-descr { + font-weight: 500; + font-size: 11.5px; + opacity: 0.6; + margin-left: 40px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-icon { + margin-right: 0; + font-size: 30px; + vertical-align: middle; + color: var(--color-mac-list-item-icon); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); + margin-top: -2px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item--active { + background: var(--color-mac-blue-list-highlight); + border: none; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item--active:hover { + background: var(--color-mac-blue-list-highlight); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-icon { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-title { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-descr { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list-drag { + border: 1px solid var(--color-mac-scrollbar-border); + margin-left: -1px; + width: 13px; + background: var(--color-mac-scrollbar-background); + margin-bottom: -1px; + margin-top: -1px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__list-drag .drag-handle__inner { + width: 13px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details { + padding: 30px 30px 0; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__header { + border-bottom: 1px solid var(--color-mac-window-content-divider); + margin-bottom: 20px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__header .details__header-title { + font-size: 24px; + font-weight: 700; + font-family: Arial, sans-serif; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__header .details__header-title-input { + font-size: 24px; + font-weight: 700; + font-family: Arial, sans-serif; + height: 42px; + line-height: 42px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__header .details__header-icon { + border: 1px solid var(--color-mac-button-outline); + border-radius: 4px; + padding: 3px 17px; + color: var(--color-mac-button-outline); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body .scroller { + min-width: 100px !important; + max-width: 100% !important; + display: block; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside { + border: 1px solid var(--color-mac-card-border) !important; + background: var(--color-mac-card-background); + border-radius: 4px; + padding: 0 8px; + flex: none; + margin: 0; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field { + margin-bottom: 0 !important; + display: flex; + align-items: center; + font-size: 11px; + padding: 8px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field:not(:last-child), +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field:not(:last-child) { + border-bottom: 1px solid var(--color-mac-card-border); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value { + align-self: center; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value textarea, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value textarea { + min-height: 4em !important; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value a, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value a { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value .details__field-value-btn, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value .details__field-value-btn { + top: 2px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value-add-label, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value-add-label { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-label, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-label { + color: var(--color-mac-text-default); + text-align: left; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-options, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-options { + opacity: 0.7; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__body-aside { + margin-top: 20px; + margin-bottom: 20px; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons { + background: var(--color-mac-footer-toolbar-background); + border: 1px solid var(--color-mac-footer-toolbar-border); + margin: -1px -31px; + height: 26px; + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons i.fa { + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons .details__buttons-trash, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons .details__buttons-trash-del { + align-self: center; + width: 25px; + text-align: center; + padding: 7px 2px; + height: unset; + margin-right: 0; + border-right: 1px solid var(--color-mac-footer-toolbar-border); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add { + margin-right: 0; + padding: 2px 9px; + border: none; + border-left: 1px solid var(--color-mac-footer-toolbar-border); + align-self: unset; +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add i.fa, +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add .details__attachment-add-title { + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add:hover { + background: var(--intermediate-background-color); +} + +.th-keeweb-cupertino-auto .app__list-wrap .app__details .empty-block .empty-block__lower-btns i.fa { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .settings { + background: var(--color-mac-empty-background); + border-left: 1px solid var(--color-mac-finder-frame-border); + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.th-keeweb-cupertino-auto .settings .scroller { + border-radius: 4px; + padding: 15px; +} + +.th-keeweb-cupertino-auto .settings .settings__back-button { + padding: 20px 10px; + background: transparent; + box-shadow: none; + margin-top: 4px; +} + +.th-keeweb-cupertino-auto .settings .settings__general-storage-header { + margin-bottom: 0; + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-auto .settings .shortcut { + border-color: var(--color-mac-button-outline); +} + +.th-keeweb-cupertino-auto .app__menu .menu { + border-right-width: 0; + background: var(--color-mac-finder-sidebar-background); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section { + border: none; +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item .menu__item-body { + padding-top: 3px; + padding-bottom: 3px; +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item .menu__item-body:hover { + background: var(--color-mac-finder-sidebar-background); + color: var(--color-mac-finder-sidebar-text); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-title { + color: var(--color-mac-finder-sidebar-text); + padding-left: 0.1em; +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-icon { + color: var(--color-mac-finder-sidebar-icon); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-edit, +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-empty-trash { + opacity: 0.5; + top: 6px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item .fa { + font-size: 15px; + flex-basis: 30px; + text-align: center; +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body { + background: var(--color-mac-finder-sidebar-highlight); + color: var(--color-mac-finder-sidebar-text); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-title, +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-icon, +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-edit { + color: var(--color-mac-finder-sidebar-text-active); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body svg { + fill: #000; +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body:hover { + background: var(--color-mac-finder-sidebar-highlight); + color: var(--color-mac-finder-sidebar-text-active); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__section:last-child { + border-top: 1px solid var(--color-mac-footer-toolbar-border); +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__drag-section { + background: transparent; + height: 13px; +} + +.th-keeweb-cupertino-auto .app__menu .menu .menu__drag-section .drag-handle__inner { + border-top: 1px solid var(--color-mac-window-drag-handle); + height: 13px; +} + +.th-keeweb-cupertino-auto .app__menu-drag { + background: transparent; + width: 13px; + margin-left: -13px; +} + +.th-keeweb-cupertino-auto .app__menu-drag .drag-handle__inner { + border-right: 1px solid var(--color-mac-window-drag-handle); + width: 13px; + left: 0; +} + +.th-keeweb-cupertino-auto .open { + align-items: stretch; + background: var(--color-mac-settings-section-background-dark); + border-radius: 4px; + /** + * Start page icons + */ +} + +.th-keeweb-cupertino-auto .open .open__icons { + background: var(--color-mac-settings-section-background); + padding: 20px 0; +} + +.th-keeweb-cupertino-auto .open .open__icons .open__icon { + padding: 10px 20px; + margin: 0; +} + +.th-keeweb-cupertino-auto .open .open__icons .open__icon:hover { + background: var(--intermediate-background-color); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-auto .open .open__icons.open__icons--lower { + margin-top: -20px; + padding-top: 0; + padding-bottom: 20px; +} + +.th-keeweb-cupertino-auto .open .open__pass-area { + width: 100%; + padding: 20px 0; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__pass-field-wrap { + margin-bottom: 30px; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__pass-field-wrap .open__pass-input { + padding: 30px; + border-radius: 6px; + border: 2px solid var(--color-mac-blue-list-highlight); + margin: 0 auto; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__pass-field-wrap .open__pass-enter-btn, +.th-keeweb-cupertino-auto .open .open__pass-area .open__pass-field-wrap .open__pass-opening-icon { + color: var(--color-mac-blue-list-highlight); + right: 22vw; + left: unset; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__settings { + display: flex; + align-items: center; + height: 35px; + width: 100%; + max-width: 38vw; + margin: 0 auto; + padding-left: 0; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__settings:hover { + background: var(--color-mac-window-content-panel); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__settings .open__settings-key-file { + color: var(--color-mac-text-default); + padding: 0.5em 1em; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__settings .open__settings-key-file .open__settings-key-file-dropbox { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__last { + width: 100%; + max-width: 38vw; + margin: 0 auto; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__last .open__last-item { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__last .open__last-item:hover { + background: var(--color-mac-window-content-panel); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-auto .open .open__pass-area .open__last .open__last-item .open__last-item-icon-del { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .open .open__icons .open__icon-i, +.th-keeweb-cupertino-auto .open .open__icons .open__icon-svg { + font-size: 40px; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-lock { + background-image: linear-gradient(to top, orange, orange, orange, orange, grey, #bdbdbd, #e2e2e2); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-bolt { + background-image: linear-gradient(to top, orange, orange, orange, orange, orange, yellow, #bdbdbd); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-dropbox { + color: #0055f8; +} + +.th-keeweb-cupertino-auto .open .open__icons div#open__icon-storage--gdrive svg path { + fill: #e03a2d; +} + +.th-keeweb-cupertino-auto .open .open__icons div#open__icon-storage--onedrive svg path { + fill: #006dce; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-cog { + background-image: linear-gradient(to top, #626262, #8d8d8d, #aeaeae, #777); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-server { + color: #0074bc; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-plus { + background-image: linear-gradient(to top, #258115, #3f9d44, #1ab80f, #56c618); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-magic { + background-image: linear-gradient(to top, #333, #333, gray, purple, violet); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-auto .open .open__icons .fa-ellipsis-h:before { + background-image: linear-gradient(to top, #136dcf, #0778f5, #00b7ff); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-auto .open .open__icons .open__icon-text { + color: #717171; + font-size: var(--font-size-label); + font-weight: 300; + letter-spacing: -0.5pt; +} + +.th-keeweb-cupertino-auto .open .open__icons .open__icon-text:hover { + color: #717171; +} + +.th-keeweb-cupertino-auto .grp .scroller .grp__content > div:not([class]) { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-auto .app__footer { + height: 34px; + border-color: var(--color-mac-list-item-divider); + background-image: var(--color-mac-footer-background); + display: flex; + align-items: center; + font-size: 11px; + font-weight: 400; + opacity: 0.9; +} + +.th-keeweb-cupertino-auto .app__footer .footer { + align-items: center; + width: 100%; + height: 100%; +} + +.th-keeweb-cupertino-auto .app__footer .footer__db { + padding-top: 0; + padding-bottom: 0; + color: var(--color-mac-footer-icons); + height: 100%; + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-auto .app__footer .footer__db i.fa { + margin-right: 6px; +} + +.th-keeweb-cupertino-auto .app__footer .footer__db--expanded { + flex: unset; +} + +.th-keeweb-cupertino-auto .app__footer .footer__btn { + padding-top: 0; + padding-bottom: 0; + color: var(--color-mac-footer-icons); + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.th-keeweb-cupertino-auto .app__footer .footer__btn.footer__btn-help { + margin-left: auto; +} + +.th-keeweb-cupertino-auto .dropdown { + box-shadow: var(--color-mac-dropdown-box-shadow); + background: var(--color-mac-dropdown-background); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; +} + +.th-keeweb-cupertino-auto .dropdown .dropdown__item { + padding: 6px 12px; +} + +.th-keeweb-cupertino-auto .dropdown .dropdown__item:hover { + background: var(--color-mac-blue-list-highlight); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .dropdown .dropdown__item:hover .dropdown__item-text { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .dropdown .dropdown__item:hover .dropdown__item-text .muted-color { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .dropdown .dropdown__item .dropdown__item-text .muted-color { + font-size: 12px; + font-weight: 300; +} + +.th-keeweb-cupertino-auto .dropdown .dropdown__item .dropdown__item-icon { + width: 1.2em; +} + +.th-keeweb-cupertino-auto .dropdown .dropdown__item--active { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .tip { + box-shadow: var(--color-mac-dropdown-box-shadow); + background: var(--color-mac-dropdown-background); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + animation-duration: 0.25s !important; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .tip:before { + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); + animation-duration: 0.25s !important; +} + +.th-keeweb-cupertino-auto .icon-select .icon-select__items .icon-select__icon--active { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-auto .pika-single { + box-shadow: var(--color-mac-dropdown-box-shadow); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-prev, +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-next { + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + background: var(--color-mac-input-background); +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-prev:after, +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-next:after { + top: 2px; +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-prev:after { + border-right-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-next:after { + border-left-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-label { + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-title .pika-label .pika-select { + color: red; +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-table th { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-auto .pika-single .pika-lendar .pika-table .pika-row .pika-button:hover { + background: var(--color-mac-blue-list-highlight) !important; + color: var(--color-mac-text-light) !important; +} diff --git a/keeweb/plugins/plugins/theme-cupertino-dark/index.html b/keeweb/plugins/plugins/theme-cupertino-dark/index.html new file mode 100644 index 0000000..d491656 --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-dark/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Plugin: Cupertino Theme (Dark) + + + + +

KeeWeb Plugin: Cupertino Theme (Dark)

+

This theme sets macOS style for KeeWeb and permanently enables the dark theme.

+ + diff --git a/keeweb/plugins/plugins/theme-cupertino-dark/manifest.json b/keeweb/plugins/plugins/theme-cupertino-dark/manifest.json new file mode 100644 index 0000000..77b336a --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-dark/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "1.0.1", + "manifestVersion": "0.1.0", + "name": "theme-cupertino-dark", + "description": "Cupertino Theme (Dark)", + "author": { + "name": "Jonas Gnioui", + "email": "btxtiger@outlook.com", + "url": "https://github.com/btxtiger" + }, + "resources": { + "css": "LK0tV/aPym/6emha+eGwS5BZfa3xPdLRUqc7c+dKmccV/vmRsnVMrJnyPl+/Yyw9TiXvOhgWXcKuAxSueOSWaOiBOmcdGaDJia3etIUam6xiWcdbXnbvbDIov9jFB7cfWcGHcAA8C6wf5qpoyTszI33lmbR+cNQYe24ximVxGLdbaWT75zRuWjMpz2eJ47l/DfYbWLpTr9GsWV5orcUAbobEuPSHcj0SN2ulmzTbk/clDrjFJfjUF4n4WxFElADs4okjfze/EMdwX+8uMQ/bHBr4H21CTMrrhHajPa9YhM7jP/RG6m5hMen8Ex+m/K+yOysfdTfDrqsRevW0TFZraQ==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-dark", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "keeweb-cupertino-dark", + "title": "Cupertino Theme (Dark)" + } +} \ No newline at end of file diff --git a/keeweb/plugins/plugins/theme-cupertino-dark/plugin.css b/keeweb/plugins/plugins/theme-cupertino-dark/plugin.css new file mode 100644 index 0000000..88e3628 --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-dark/plugin.css @@ -0,0 +1,1098 @@ +.th-keeweb-cupertino-dark { + --font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + --background-color: #fff; + --text-color: #111; + --action-color: rgba(0, 122, 255); + --error-color: #e91501; + --text-contrast-action-color: #fff; + --modal-background-color: rgba(255, 255, 255, 0.5); + --light-border-color: #e5e5e5; + --disabled-background-color: rgb(224, 224, 224); + --intermediate-background-color: rgba(0, 0, 0, 0.04); + --intermediate-pressed-background-color: rgba(0, 0, 0, 0.07); + --medium-color: #212121; + --input-border-radius: 4px; + --secondary-background-color: var(--color-mac-blue-list-highlight); + --font-size: 14px; + --font-size-label: 13px; + color: #121212; + --color-mac-text-default: #121212; + --color-mac-text-light: #fff; + --color-mac-blue-list-highlight: #0058dd; + --color-mac-blue-list-highlight-text: #fff; + --color-mac-finder-sidebar-highlight: #bbbbbb; + --color-mac-finder-sidebar-background: #e9e9e9; + --color-mac-finder-sidebar-icon: #616161; + --color-mac-finder-sidebar-text: #363636; + --color-mac-finder-sidebar-icon-active: #3f3f3f; + --color-mac-finder-sidebar-text-active: #0f0f0f; + --color-mac-finder-frame-border: #b8b8b8; + --color-mac-settings-section-background: #e9e9e9; + --color-mac-settings-section-background-dark: #e2e2e2; + --color-mac-dropdown-border-outline: #b2b2b2; + --color-mac-dropdown-background: rgba(255, 255, 255, 0.82); + --color-mac-dropdown-box-shadow: 0px 0px 0px 1px #d2d2d2, 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 16px rgba(0, 0, 0, 0.1); + --color-mac-window-content-panel: #e9e9e9; + --color-mac-window-content-divider: #d2d2d2; + --color-mac-window-drag-handle: #d2d2d2; + --color-mac-button-outline: #757575; + --color-mac-card-border: #cbcbcb; + --color-mac-card-background: #fff; + --color-mac-list-item-icon: #64646c; + --color-mac-list-item-divider: #cfcfcf; + --color-mac-list-header-background: #f5f5f5; + --color-mac-footer-toolbar-background: #f6f6f6; + --color-mac-footer-toolbar-border: #d2d2d2; + --color-mac-footer-toolbar-icons: #616161; + --color-mac-footer-background: linear-gradient(to top, #cfcfcf, #d0d0d0, #d9d9d9, #e0e1e1); + --color-mac-header-background: linear-gradient(to top, #d0d0d1, #d4d4d4, #d7d7d7, #dcdbdb); + --color-mac-empty-background: #fff; + --color-mac-scrollbar-background: #f9f9f9; + --color-mac-scrollbar-border: #e5e5e5; + --color-mac-input-border: #bfbfbf; + --color-mac-input-background: #fff; + --color-mac-button-default-background: #fff; + --color-mac-button-default-border: #bebfbf; + --color-mac-button-default-border-top: #c6c5c5; + --color-mac-button-default-border-bottom: #a9a9a9; + --color-mac-modal-backbground: rgba(231, 231, 231, 0.7); + --color-mac-button-active-background: linear-gradient(to top, #0558ff, #2070fe, #498bfc, #5e99fa); + --color-mac-button-active-background-active: linear-gradient(to top, #0248d9, #1961e9, #3077f6, #4185fe); + --color-mac-button-danger-background: linear-gradient(to top, #bf1313, #c71616, #d61515, #c72424); + --color-mac-button-danger-background-active: linear-gradient(to top, #e31e1e, #e81e1e, #ed1f1f, #f53333); + color: #dcdcdc; + --color-mac-text-default: #dcdcdc; + --color-mac-text-light: #dcdcdc; + --color-mac-blue-list-highlight: #0058dd; + --color-mac-blue-list-highlight-text: #fff; + --color-mac-finder-sidebar-highlight: #444444; + --color-mac-finder-sidebar-background: #2c2c2c; + --color-mac-finder-sidebar-icon: #868686; + --color-mac-finder-sidebar-text: #white; + --color-mac-finder-sidebar-icon-active: #9e9e9e; + --color-mac-finder-sidebar-text-active: #white; + --color-mac-finder-frame-border: #000; + --color-mac-settings-section-background: #333333; + --color-mac-settings-section-background-dark: #2c2c2c; + --color-mac-dropdown-border-outline: #4f4f4f; + --color-mac-dropdown-background: rgba(48, 48, 48, 0.7); + --color-mac-dropdown-box-shadow: 0px 0px 0px 1px #000, 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 16px rgba(0, 0, 0, 0.1); + --color-mac-window-content-panel: #1c1c1c; + --color-mac-window-content-divider: #323232; + --color-mac-window-drag-handle: #000; + --color-mac-button-outline: #a0a0a0; + --color-mac-card-border: #757575; + --color-mac-card-background: #343434; + --color-mac-list-item-icon: #9e9e9e; + --color-mac-list-item-divider: #000; + --color-mac-list-header-background: #282828; + --color-mac-footer-toolbar-background: #353535; + --color-mac-footer-toolbar-border: #747474; + --color-mac-footer-toolbar-icons: #686868; + --color-mac-footer-icons: #989898; + --color-mac-footer-background: linear-gradient(to top, #1a1a1a, #292929, #2e2e2e); + --color-mac-header-background: linear-gradient(to top, #333333, #353535, #383838, #393939); + --color-mac-empty-background: #1c1c1c; + --color-mac-scrollbar-background: #282828; + --color-mac-scrollbar-border: #3b3b3b; + --color-mac-input-border: #444444; + --color-mac-input-background: #3b3b3b; + --color-mac-button-default-background: #646464; + --color-mac-button-default-border: #2a2a2a; + --color-mac-modal-backbground: rgba(48, 48, 48, 0.7); + --color-mac-button-active-background: linear-gradient(to top, #1449c0, #154cc7, #1651d6, #255ac8); + --color-mac-button-active-background-active: linear-gradient(to top, #1d67e2, #1d69e7, #1f6dee, #337ef5); + --color-mac-button-danger-background: linear-gradient(to top, #bf1313, #c71616, #d61515, #c72424); + --color-mac-button-danger-background-active: linear-gradient(to top, #e31e1e, #e81e1e, #ed1f1f, #f53333); + font-size: var(--font-size); + /** + * Input fields, buttons + */ + /** + * App window + */ + /** + * GENERATOR + */ + /** + * PASSWORD List + */ + /** + * Settings + */ + /** + * Side menu + */ + /** + * Start page + */ +} + +.th-keeweb-cupertino-dark a { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .muted-color { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark [type='button'], +.th-keeweb-cupertino-dark [type='reset'], +.th-keeweb-cupertino-dark [type='submit'], +.th-keeweb-cupertino-dark button, +.th-keeweb-cupertino-dark select, +.th-keeweb-cupertino-dark input:not([type]), +.th-keeweb-cupertino-dark input[type='password'], +.th-keeweb-cupertino-dark input[type='text'], +.th-keeweb-cupertino-dark textarea { + height: 21px; + padding: 0 8px; + border-color: var(--color-mac-input-border); + background: var(--color-mac-input-background); + color: var(--color-mac-text-default); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.07); + border-radius: 4px; + font-family: var(--font-family); + font-size: var(--font-size-label); + font-weight: 400; + letter-spacing: -0.4px; +} + +.th-keeweb-cupertino-dark [type='button']::placeholder, +.th-keeweb-cupertino-dark [type='reset']::placeholder, +.th-keeweb-cupertino-dark [type='submit']::placeholder, +.th-keeweb-cupertino-dark button::placeholder, +.th-keeweb-cupertino-dark select::placeholder, +.th-keeweb-cupertino-dark input:not([type])::placeholder, +.th-keeweb-cupertino-dark input[type='password']::placeholder, +.th-keeweb-cupertino-dark input[type='text']::placeholder, +.th-keeweb-cupertino-dark textarea::placeholder { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark button { + font-weight: 500; +} + +.th-keeweb-cupertino-dark button, +.th-keeweb-cupertino-dark .settings__plugins-gallery-load-btn, +.th-keeweb-cupertino-dark .settings_plugins-install-btn { + border: 1px solid var(--color-mac-button-default-border); + background-image: var(--color-mac-button-active-background); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark button:hover, +.th-keeweb-cupertino-dark .settings__plugins-gallery-load-btn:hover, +.th-keeweb-cupertino-dark .settings_plugins-install-btn:hover { + background-image: var(--color-mac-button-active-background); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark button:active, +.th-keeweb-cupertino-dark .settings__plugins-gallery-load-btn:active, +.th-keeweb-cupertino-dark .settings_plugins-install-btn:active { + background-image: var(--color-mac-button-active-background-active); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-dark button.btn-error { + background-image: var(--color-mac-button-danger-background); + color: var(--color-mac-text-light); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-dark button.btn-error:active { + background-image: var(--color-mac-button-danger-background-active); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-dark button.btn-silent { + background: var(--color-mac-button-default-background); + border: 1px solid var(--color-mac-button-default-border); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark button.btn-silent:active { + background-image: var(--color-mac-button-active-background-active); + color: var(--color-mac-text-light); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-dark input[type='checkbox'] { + display: inline-block; + font-size: var(--font-size-label); + vertical-align: top; +} + +.th-keeweb-cupertino-dark input[type='checkbox'].input-base { + width: auto; +} + +.th-keeweb-cupertino-dark input[type='text'], +.th-keeweb-cupertino-dark input[type='password'], +.th-keeweb-cupertino-dark input:not([type]), +.th-keeweb-cupertino-dark textarea { + border-radius: 0; +} + +.th-keeweb-cupertino-dark input[type='text']:active, .th-keeweb-cupertino-dark input[type='text']:focus, +.th-keeweb-cupertino-dark input[type='password']:active, +.th-keeweb-cupertino-dark input[type='password']:focus, +.th-keeweb-cupertino-dark input:not([type]):active, +.th-keeweb-cupertino-dark input:not([type]):focus, +.th-keeweb-cupertino-dark textarea:active, +.th-keeweb-cupertino-dark textarea:focus { + border: 2px solid rgba(0, 122, 255, 0.7); + box-shadow: 0px 0px 3px var(--color-mac-blue-list-highlight); +} + +.th-keeweb-cupertino-dark input[type='range']::-webkit-slider-thumb { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark input[type='range']::-ms-track { + color: var(--color-mac-text-default); + background: var(--color-mac-text-default); + border-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark label { + font-family: var(--font-family); + margin-top: 5px; +} + +.th-keeweb-cupertino-dark label:before { + display: none !important; +} + +.th-keeweb-cupertino-dark .app .app__body { + background: var(--color-mac-window-content-panel); +} + +.th-keeweb-cupertino-dark .gen { + box-shadow: var(--color-mac-dropdown-box-shadow); + width: 15em; + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; +} + +.th-keeweb-cupertino-dark .gen > div:not([class]) { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + align-items: center; +} + +.th-keeweb-cupertino-dark .gen > div:not([class]) .gen__btn-refresh { + flex-grow: 1; + display: flex; + justify-content: flex-end; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .gen > div:not([class]) input#gen__check-hide { + margin-top: 4px; + margin-right: 26px; + margin-left: 20px; +} + +.th-keeweb-cupertino-dark .gen > div:not([class]) input#gen__check-hide::after { + content: 'Hide'; + white-space: nowrap; + margin-left: 16px; + top: 25px; + position: absolute; +} + +.th-keeweb-cupertino-dark .gen > div:not([class]) .gen__check { + width: 25%; + display: flex; + align-items: center; + flex-basis: 25%; + flex-wrap: nowrap; + margin-left: 0; +} + +.th-keeweb-cupertino-dark .gen .gen__result { + user-select: all; + margin-top: 20px; + margin-bottom: 20px; + height: unset; +} + +.th-keeweb-cupertino-dark .gen-ps__content .gen-ps__field { + display: flex; + align-items: center; + flex-flow: row wrap; +} + +.th-keeweb-cupertino-dark .gen-ps__content .gen-ps__field input[type='text'] { + width: 100%; +} + +.th-keeweb-cupertino-dark .gen-ps__content .gen-ps__field .gen-ps__sample { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .gen-ps__content .gen-ps__field i.fa { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .modal { + backdrop-filter: blur(12px); + background: var(--color-mac-modal-backbground); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list { + background: var(--color-mac-empty-background); + border: 1px solid var(--light-border-color); + margin-bottom: -1px; + margin-top: -1px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header { + border-bottom: 1px solid var(--color-mac-list-item-divider); + background: var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search { + padding: 6px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header { + align-items: center; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-field { + margin-bottom: 0; + height: 24px; + border-radius: 4px; + padding-left: 40px; + box-shadow: none; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-field:focus { + border-width: 1px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-icon-search { + top: 1px; + left: 0.5em; + right: unset; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-icon-search i.fa { + -webkit-text-stroke: 1px var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new, +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort { + border-radius: 4px; + border: 1px solid #bfbfbf; + height: 22px; + padding: 0px 13px; + display: flex; + align-items: center; + justify-content: center; + margin-left: 6px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:hover, .th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:active, .th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:focus, +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:hover, +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:active, +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:focus { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new i.fa { + -webkit-text-stroke: 2px var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort i.fa { + -webkit-text-stroke: 0.2px var(--color-mac-list-header-background); + font-size: small; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-adv { + margin: 10px -10px 0 -11px; + padding: 12px; + background: var(--color-mac-settings-section-background); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-adv .list__search-check { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item { + padding: 5px 10px; + min-height: 50px; + box-sizing: border-box; + letter-spacing: -0.4px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item:hover { + color: var(--color-mac-text-default); + border: none; + background: var(--color-mac-finder-sidebar-highlight); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item:not(.list__item--table) { + height: unset; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-title { + margin-left: 26px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-descr { + font-weight: 500; + font-size: 11.5px; + opacity: 0.6; + margin-left: 40px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-icon { + margin-right: 0; + font-size: 30px; + vertical-align: middle; + color: var(--color-mac-list-item-icon); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); + margin-top: -2px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item--active { + background: var(--color-mac-blue-list-highlight); + border: none; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item--active:hover { + background: var(--color-mac-blue-list-highlight); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-icon { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-title { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-descr { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list-drag { + border: 1px solid var(--color-mac-scrollbar-border); + margin-left: -1px; + width: 13px; + background: var(--color-mac-scrollbar-background); + margin-bottom: -1px; + margin-top: -1px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__list-drag .drag-handle__inner { + width: 13px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details { + padding: 30px 30px 0; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__header { + border-bottom: 1px solid var(--color-mac-window-content-divider); + margin-bottom: 20px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__header .details__header-title { + font-size: 24px; + font-weight: 700; + font-family: Arial, sans-serif; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__header .details__header-title-input { + font-size: 24px; + font-weight: 700; + font-family: Arial, sans-serif; + height: 42px; + line-height: 42px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__header .details__header-icon { + border: 1px solid var(--color-mac-button-outline); + border-radius: 4px; + padding: 3px 17px; + color: var(--color-mac-button-outline); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body .scroller { + min-width: 100px !important; + max-width: 100% !important; + display: block; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside { + border: 1px solid var(--color-mac-card-border) !important; + background: var(--color-mac-card-background); + border-radius: 4px; + padding: 0 8px; + flex: none; + margin: 0; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field { + margin-bottom: 0 !important; + display: flex; + align-items: center; + font-size: 11px; + padding: 8px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field:not(:last-child), +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field:not(:last-child) { + border-bottom: 1px solid var(--color-mac-card-border); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value { + align-self: center; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value textarea, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value textarea { + min-height: 4em !important; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value a, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value a { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value .details__field-value-btn, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value .details__field-value-btn { + top: 2px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value-add-label, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value-add-label { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-label, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-label { + color: var(--color-mac-text-default); + text-align: left; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-options, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-options { + opacity: 0.7; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__body-aside { + margin-top: 20px; + margin-bottom: 20px; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons { + background: var(--color-mac-footer-toolbar-background); + border: 1px solid var(--color-mac-footer-toolbar-border); + margin: -1px -31px; + height: 26px; + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons i.fa { + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons .details__buttons-trash, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons .details__buttons-trash-del { + align-self: center; + width: 25px; + text-align: center; + padding: 7px 2px; + height: unset; + margin-right: 0; + border-right: 1px solid var(--color-mac-footer-toolbar-border); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add { + margin-right: 0; + padding: 2px 9px; + border: none; + border-left: 1px solid var(--color-mac-footer-toolbar-border); + align-self: unset; +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add i.fa, +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add .details__attachment-add-title { + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add:hover { + background: var(--intermediate-background-color); +} + +.th-keeweb-cupertino-dark .app__list-wrap .app__details .empty-block .empty-block__lower-btns i.fa { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .settings { + background: var(--color-mac-empty-background); + border-left: 1px solid var(--color-mac-finder-frame-border); + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.th-keeweb-cupertino-dark .settings .scroller { + border-radius: 4px; + padding: 15px; +} + +.th-keeweb-cupertino-dark .settings .settings__back-button { + padding: 20px 10px; + background: transparent; + box-shadow: none; + margin-top: 4px; +} + +.th-keeweb-cupertino-dark .settings .settings__general-storage-header { + margin-bottom: 0; + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-dark .settings .shortcut { + border-color: var(--color-mac-button-outline); +} + +.th-keeweb-cupertino-dark .app__menu .menu { + border-right-width: 0; + background: var(--color-mac-finder-sidebar-background); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section { + border: none; +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item .menu__item-body { + padding-top: 3px; + padding-bottom: 3px; +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item .menu__item-body:hover { + background: var(--color-mac-finder-sidebar-background); + color: var(--color-mac-finder-sidebar-text); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-title { + color: var(--color-mac-finder-sidebar-text); + padding-left: 0.1em; +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-icon { + color: var(--color-mac-finder-sidebar-icon); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-edit, +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-empty-trash { + opacity: 0.5; + top: 6px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item .fa { + font-size: 15px; + flex-basis: 30px; + text-align: center; +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body { + background: var(--color-mac-finder-sidebar-highlight); + color: var(--color-mac-finder-sidebar-text); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-title, +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-icon, +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-edit { + color: var(--color-mac-finder-sidebar-text-active); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body svg { + fill: #000; +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body:hover { + background: var(--color-mac-finder-sidebar-highlight); + color: var(--color-mac-finder-sidebar-text-active); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__section:last-child { + border-top: 1px solid var(--color-mac-footer-toolbar-border); +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__drag-section { + background: transparent; + height: 13px; +} + +.th-keeweb-cupertino-dark .app__menu .menu .menu__drag-section .drag-handle__inner { + border-top: 1px solid var(--color-mac-window-drag-handle); + height: 13px; +} + +.th-keeweb-cupertino-dark .app__menu-drag { + background: transparent; + width: 13px; + margin-left: -13px; +} + +.th-keeweb-cupertino-dark .app__menu-drag .drag-handle__inner { + border-right: 1px solid var(--color-mac-window-drag-handle); + width: 13px; + left: 0; +} + +.th-keeweb-cupertino-dark .open { + align-items: stretch; + background: var(--color-mac-settings-section-background-dark); + border-radius: 4px; + /** + * Start page icons + */ +} + +.th-keeweb-cupertino-dark .open .open__icons { + background: var(--color-mac-settings-section-background); + padding: 20px 0; +} + +.th-keeweb-cupertino-dark .open .open__icons .open__icon { + padding: 10px 20px; + margin: 0; +} + +.th-keeweb-cupertino-dark .open .open__icons .open__icon:hover { + background: var(--intermediate-background-color); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-dark .open .open__icons.open__icons--lower { + margin-top: -20px; + padding-top: 0; + padding-bottom: 20px; +} + +.th-keeweb-cupertino-dark .open .open__pass-area { + width: 100%; + padding: 20px 0; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__pass-field-wrap { + margin-bottom: 30px; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__pass-field-wrap .open__pass-input { + padding: 30px; + border-radius: 6px; + border: 2px solid var(--color-mac-blue-list-highlight); + margin: 0 auto; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__pass-field-wrap .open__pass-enter-btn, +.th-keeweb-cupertino-dark .open .open__pass-area .open__pass-field-wrap .open__pass-opening-icon { + color: var(--color-mac-blue-list-highlight); + right: 22vw; + left: unset; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__settings { + display: flex; + align-items: center; + height: 35px; + width: 100%; + max-width: 38vw; + margin: 0 auto; + padding-left: 0; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__settings:hover { + background: var(--color-mac-window-content-panel); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__settings .open__settings-key-file { + color: var(--color-mac-text-default); + padding: 0.5em 1em; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__settings .open__settings-key-file .open__settings-key-file-dropbox { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__last { + width: 100%; + max-width: 38vw; + margin: 0 auto; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__last .open__last-item { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__last .open__last-item:hover { + background: var(--color-mac-window-content-panel); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-dark .open .open__pass-area .open__last .open__last-item .open__last-item-icon-del { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .open .open__icons .open__icon-i, +.th-keeweb-cupertino-dark .open .open__icons .open__icon-svg { + font-size: 40px; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-lock { + background-image: linear-gradient(to top, orange, orange, orange, orange, grey, #bdbdbd, #e2e2e2); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-bolt { + background-image: linear-gradient(to top, orange, orange, orange, orange, orange, yellow, #bdbdbd); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-dropbox { + color: #0055f8; +} + +.th-keeweb-cupertino-dark .open .open__icons div#open__icon-storage--gdrive svg path { + fill: #e03a2d; +} + +.th-keeweb-cupertino-dark .open .open__icons div#open__icon-storage--onedrive svg path { + fill: #006dce; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-cog { + background-image: linear-gradient(to top, #626262, #8d8d8d, #aeaeae, #777); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-server { + color: #0074bc; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-plus { + background-image: linear-gradient(to top, #258115, #3f9d44, #1ab80f, #56c618); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-magic { + background-image: linear-gradient(to top, #333, #333, gray, purple, violet); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-dark .open .open__icons .fa-ellipsis-h:before { + background-image: linear-gradient(to top, #136dcf, #0778f5, #00b7ff); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-dark .open .open__icons .open__icon-text { + color: #717171; + font-size: var(--font-size-label); + font-weight: 300; + letter-spacing: -0.5pt; +} + +.th-keeweb-cupertino-dark .open .open__icons .open__icon-text:hover { + color: #717171; +} + +.th-keeweb-cupertino-dark .grp .scroller .grp__content > div:not([class]) { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-dark .app__footer { + height: 34px; + border-color: var(--color-mac-list-item-divider); + background-image: var(--color-mac-footer-background); + display: flex; + align-items: center; + font-size: 11px; + font-weight: 400; + opacity: 0.9; +} + +.th-keeweb-cupertino-dark .app__footer .footer { + align-items: center; + width: 100%; + height: 100%; +} + +.th-keeweb-cupertino-dark .app__footer .footer__db { + padding-top: 0; + padding-bottom: 0; + color: var(--color-mac-footer-icons); + height: 100%; + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-dark .app__footer .footer__db i.fa { + margin-right: 6px; +} + +.th-keeweb-cupertino-dark .app__footer .footer__db--expanded { + flex: unset; +} + +.th-keeweb-cupertino-dark .app__footer .footer__btn { + padding-top: 0; + padding-bottom: 0; + color: var(--color-mac-footer-icons); + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.th-keeweb-cupertino-dark .app__footer .footer__btn.footer__btn-help { + margin-left: auto; +} + +.th-keeweb-cupertino-dark .dropdown { + box-shadow: var(--color-mac-dropdown-box-shadow); + background: var(--color-mac-dropdown-background); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; +} + +.th-keeweb-cupertino-dark .dropdown .dropdown__item { + padding: 6px 12px; +} + +.th-keeweb-cupertino-dark .dropdown .dropdown__item:hover { + background: var(--color-mac-blue-list-highlight); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .dropdown .dropdown__item:hover .dropdown__item-text { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .dropdown .dropdown__item:hover .dropdown__item-text .muted-color { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .dropdown .dropdown__item .dropdown__item-text .muted-color { + font-size: 12px; + font-weight: 300; +} + +.th-keeweb-cupertino-dark .dropdown .dropdown__item .dropdown__item-icon { + width: 1.2em; +} + +.th-keeweb-cupertino-dark .dropdown .dropdown__item--active { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .tip { + box-shadow: var(--color-mac-dropdown-box-shadow); + background: var(--color-mac-dropdown-background); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + animation-duration: 0.25s !important; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .tip:before { + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); + animation-duration: 0.25s !important; +} + +.th-keeweb-cupertino-dark .icon-select .icon-select__items .icon-select__icon--active { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-dark .pika-single { + box-shadow: var(--color-mac-dropdown-box-shadow); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-prev, +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-next { + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + background: var(--color-mac-input-background); +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-prev:after, +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-next:after { + top: 2px; +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-prev:after { + border-right-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-next:after { + border-left-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-label { + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-title .pika-label .pika-select { + color: red; +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-table th { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-dark .pika-single .pika-lendar .pika-table .pika-row .pika-button:hover { + background: var(--color-mac-blue-list-highlight) !important; + color: var(--color-mac-text-light) !important; +} diff --git a/keeweb/plugins/plugins/theme-cupertino-light/index.html b/keeweb/plugins/plugins/theme-cupertino-light/index.html new file mode 100644 index 0000000..59be6b7 --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-light/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Plugin: Cupertino Theme (Light) + + + + +

KeeWeb Plugin: Cupertino Theme (Light)

+

This theme sets macOS style for KeeWeb and permanently enables the light theme.

+ + diff --git a/keeweb/plugins/plugins/theme-cupertino-light/manifest.json b/keeweb/plugins/plugins/theme-cupertino-light/manifest.json new file mode 100644 index 0000000..eb5056d --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-light/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "1.0.1", + "manifestVersion": "0.1.0", + "name": "theme-cupertino-light", + "description": "Cupertino Theme (Light)", + "author": { + "name": "Jonas Gnioui", + "email": "btxtiger@outlook.com", + "url": "https://github.com/btxtiger" + }, + "resources": { + "css": "cgAHkI+doLpStpySwpQUKhXMQKQ1AogrSekPE9WbIDN9sajvzm4EtZQ6WWfZuKAwQgygOJCjVO1yESX2zOwzlaVS46371maw1IgXIQai77KEkxWRcZMzydYOP2tr651lHrv85mNT++SIqKXFvODiC4qk6JyafWFdZ520PnfKsyqHbB0Mrt6lKGa3P9kqWrOm9JYZfXfGpJ2pp7/qMPcOhwSsvvbjd8Hy6DnCBf/ThnNXpsxvmh3UaBAm0ZUP8uFl8sH4miltl6M7KOL9o6wN0yGbR2u3q1sVtEMk29kkO3ut/zEfulIWE8DXxS5zyl+aUy+12XJZJfyY8881z+t1mA==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-cupertino-light", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "keeweb-cupertino-light", + "title": "Cupertino Theme (Light)" + } +} \ No newline at end of file diff --git a/keeweb/plugins/plugins/theme-cupertino-light/plugin.css b/keeweb/plugins/plugins/theme-cupertino-light/plugin.css new file mode 100644 index 0000000..7352a8c --- /dev/null +++ b/keeweb/plugins/plugins/theme-cupertino-light/plugin.css @@ -0,0 +1,1054 @@ +.th-keeweb-cupertino-light { + --font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + --background-color: #fff; + --text-color: #111; + --action-color: rgba(0, 122, 255); + --error-color: #e91501; + --text-contrast-action-color: #fff; + --modal-background-color: rgba(255, 255, 255, 0.5); + --light-border-color: #e5e5e5; + --disabled-background-color: rgb(224, 224, 224); + --intermediate-background-color: rgba(0, 0, 0, 0.04); + --intermediate-pressed-background-color: rgba(0, 0, 0, 0.07); + --medium-color: #212121; + --input-border-radius: 4px; + --secondary-background-color: var(--color-mac-blue-list-highlight); + --font-size: 14px; + --font-size-label: 13px; + color: #121212; + --color-mac-text-default: #121212; + --color-mac-text-light: #fff; + --color-mac-blue-list-highlight: #0058dd; + --color-mac-blue-list-highlight-text: #fff; + --color-mac-finder-sidebar-highlight: #bbbbbb; + --color-mac-finder-sidebar-background: #e9e9e9; + --color-mac-finder-sidebar-icon: #616161; + --color-mac-finder-sidebar-text: #363636; + --color-mac-finder-sidebar-icon-active: #3f3f3f; + --color-mac-finder-sidebar-text-active: #0f0f0f; + --color-mac-finder-frame-border: #b8b8b8; + --color-mac-settings-section-background: #e9e9e9; + --color-mac-settings-section-background-dark: #e2e2e2; + --color-mac-dropdown-border-outline: #b2b2b2; + --color-mac-dropdown-background: rgba(255, 255, 255, 0.82); + --color-mac-dropdown-box-shadow: 0px 0px 0px 1px #d2d2d2, 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 16px rgba(0, 0, 0, 0.1); + --color-mac-window-content-panel: #e9e9e9; + --color-mac-window-content-divider: #d2d2d2; + --color-mac-window-drag-handle: #d2d2d2; + --color-mac-button-outline: #757575; + --color-mac-card-border: #cbcbcb; + --color-mac-card-background: #fff; + --color-mac-list-item-icon: #64646c; + --color-mac-list-item-divider: #cfcfcf; + --color-mac-list-header-background: #f5f5f5; + --color-mac-footer-toolbar-background: #f6f6f6; + --color-mac-footer-toolbar-border: #d2d2d2; + --color-mac-footer-toolbar-icons: #616161; + --color-mac-footer-background: linear-gradient(to top, #cfcfcf, #d0d0d0, #d9d9d9, #e0e1e1); + --color-mac-header-background: linear-gradient(to top, #d0d0d1, #d4d4d4, #d7d7d7, #dcdbdb); + --color-mac-empty-background: #fff; + --color-mac-scrollbar-background: #f9f9f9; + --color-mac-scrollbar-border: #e5e5e5; + --color-mac-input-border: #bfbfbf; + --color-mac-input-background: #fff; + --color-mac-button-default-background: #fff; + --color-mac-button-default-border: #bebfbf; + --color-mac-button-default-border-top: #c6c5c5; + --color-mac-button-default-border-bottom: #a9a9a9; + --color-mac-modal-backbground: rgba(231, 231, 231, 0.7); + --color-mac-button-active-background: linear-gradient(to top, #0558ff, #2070fe, #498bfc, #5e99fa); + --color-mac-button-active-background-active: linear-gradient(to top, #0248d9, #1961e9, #3077f6, #4185fe); + --color-mac-button-danger-background: linear-gradient(to top, #bf1313, #c71616, #d61515, #c72424); + --color-mac-button-danger-background-active: linear-gradient(to top, #e31e1e, #e81e1e, #ed1f1f, #f53333); + font-size: var(--font-size); + /** + * Input fields, buttons + */ + /** + * App window + */ + /** + * GENERATOR + */ + /** + * PASSWORD List + */ + /** + * Settings + */ + /** + * Side menu + */ + /** + * Start page + */ +} + +.th-keeweb-cupertino-light a { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .muted-color { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light [type='button'], +.th-keeweb-cupertino-light [type='reset'], +.th-keeweb-cupertino-light [type='submit'], +.th-keeweb-cupertino-light button, +.th-keeweb-cupertino-light select, +.th-keeweb-cupertino-light input:not([type]), +.th-keeweb-cupertino-light input[type='password'], +.th-keeweb-cupertino-light input[type='text'], +.th-keeweb-cupertino-light textarea { + height: 21px; + padding: 0 8px; + border-color: var(--color-mac-input-border); + background: var(--color-mac-input-background); + color: var(--color-mac-text-default); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.07); + border-radius: 4px; + font-family: var(--font-family); + font-size: var(--font-size-label); + font-weight: 400; + letter-spacing: -0.4px; +} + +.th-keeweb-cupertino-light [type='button']::placeholder, +.th-keeweb-cupertino-light [type='reset']::placeholder, +.th-keeweb-cupertino-light [type='submit']::placeholder, +.th-keeweb-cupertino-light button::placeholder, +.th-keeweb-cupertino-light select::placeholder, +.th-keeweb-cupertino-light input:not([type])::placeholder, +.th-keeweb-cupertino-light input[type='password']::placeholder, +.th-keeweb-cupertino-light input[type='text']::placeholder, +.th-keeweb-cupertino-light textarea::placeholder { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light button { + font-weight: 500; +} + +.th-keeweb-cupertino-light button, +.th-keeweb-cupertino-light .settings__plugins-gallery-load-btn, +.th-keeweb-cupertino-light .settings_plugins-install-btn { + border: 1px solid var(--color-mac-button-default-border); + background-image: var(--color-mac-button-active-background); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light button:hover, +.th-keeweb-cupertino-light .settings__plugins-gallery-load-btn:hover, +.th-keeweb-cupertino-light .settings_plugins-install-btn:hover { + background-image: var(--color-mac-button-active-background); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light button:active, +.th-keeweb-cupertino-light .settings__plugins-gallery-load-btn:active, +.th-keeweb-cupertino-light .settings_plugins-install-btn:active { + background-image: var(--color-mac-button-active-background-active); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-light button.btn-error { + background-image: var(--color-mac-button-danger-background); + color: var(--color-mac-text-light); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-light button.btn-error:active { + background-image: var(--color-mac-button-danger-background-active); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-light button.btn-silent { + background: var(--color-mac-button-default-background); + border: 1px solid var(--color-mac-button-default-border); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light button.btn-silent:active { + background-image: var(--color-mac-button-active-background-active); + color: var(--color-mac-text-light); + border: 1px solid var(--color-mac-button-default-border); +} + +.th-keeweb-cupertino-light input[type='checkbox'] { + display: inline-block; + font-size: var(--font-size-label); + vertical-align: top; +} + +.th-keeweb-cupertino-light input[type='checkbox'].input-base { + width: auto; +} + +.th-keeweb-cupertino-light input[type='text'], +.th-keeweb-cupertino-light input[type='password'], +.th-keeweb-cupertino-light input:not([type]), +.th-keeweb-cupertino-light textarea { + border-radius: 0; +} + +.th-keeweb-cupertino-light input[type='text']:active, .th-keeweb-cupertino-light input[type='text']:focus, +.th-keeweb-cupertino-light input[type='password']:active, +.th-keeweb-cupertino-light input[type='password']:focus, +.th-keeweb-cupertino-light input:not([type]):active, +.th-keeweb-cupertino-light input:not([type]):focus, +.th-keeweb-cupertino-light textarea:active, +.th-keeweb-cupertino-light textarea:focus { + border: 2px solid rgba(0, 122, 255, 0.7); + box-shadow: 0px 0px 3px var(--color-mac-blue-list-highlight); +} + +.th-keeweb-cupertino-light input[type='range']::-webkit-slider-thumb { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light input[type='range']::-ms-track { + color: var(--color-mac-text-default); + background: var(--color-mac-text-default); + border-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light label { + font-family: var(--font-family); + margin-top: 5px; +} + +.th-keeweb-cupertino-light label:before { + display: none !important; +} + +.th-keeweb-cupertino-light .app .app__body { + background: var(--color-mac-window-content-panel); +} + +.th-keeweb-cupertino-light .gen { + box-shadow: var(--color-mac-dropdown-box-shadow); + width: 15em; + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; +} + +.th-keeweb-cupertino-light .gen > div:not([class]) { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + align-items: center; +} + +.th-keeweb-cupertino-light .gen > div:not([class]) .gen__btn-refresh { + flex-grow: 1; + display: flex; + justify-content: flex-end; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .gen > div:not([class]) input#gen__check-hide { + margin-top: 4px; + margin-right: 26px; + margin-left: 20px; +} + +.th-keeweb-cupertino-light .gen > div:not([class]) input#gen__check-hide::after { + content: 'Hide'; + white-space: nowrap; + margin-left: 16px; + top: 25px; + position: absolute; +} + +.th-keeweb-cupertino-light .gen > div:not([class]) .gen__check { + width: 25%; + display: flex; + align-items: center; + flex-basis: 25%; + flex-wrap: nowrap; + margin-left: 0; +} + +.th-keeweb-cupertino-light .gen .gen__result { + user-select: all; + margin-top: 20px; + margin-bottom: 20px; + height: unset; +} + +.th-keeweb-cupertino-light .gen-ps__content .gen-ps__field { + display: flex; + align-items: center; + flex-flow: row wrap; +} + +.th-keeweb-cupertino-light .gen-ps__content .gen-ps__field input[type='text'] { + width: 100%; +} + +.th-keeweb-cupertino-light .gen-ps__content .gen-ps__field .gen-ps__sample { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .gen-ps__content .gen-ps__field i.fa { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .modal { + backdrop-filter: blur(12px); + background: var(--color-mac-modal-backbground); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list { + background: var(--color-mac-empty-background); + border: 1px solid var(--light-border-color); + margin-bottom: -1px; + margin-top: -1px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header { + border-bottom: 1px solid var(--color-mac-list-item-divider); + background: var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search { + padding: 6px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header { + align-items: center; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-field { + margin-bottom: 0; + height: 24px; + border-radius: 4px; + padding-left: 40px; + box-shadow: none; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-field:focus { + border-width: 1px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-icon-search { + top: 1px; + left: 0.5em; + right: unset; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-field-wrap .list__search-icon-search i.fa { + -webkit-text-stroke: 1px var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new, +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort { + border-radius: 4px; + border: 1px solid #bfbfbf; + height: 22px; + padding: 0px 13px; + display: flex; + align-items: center; + justify-content: center; + margin-left: 6px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:hover, .th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:active, .th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new:focus, +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:hover, +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:active, +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort:focus { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-new i.fa { + -webkit-text-stroke: 2px var(--color-mac-list-header-background); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-btn-sort i.fa { + -webkit-text-stroke: 0.2px var(--color-mac-list-header-background); + font-size: small; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-adv { + margin: 10px -10px 0 -11px; + padding: 12px; + background: var(--color-mac-settings-section-background); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__header .list__search .list__search-header .list__search-adv .list__search-check { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item { + padding: 5px 10px; + min-height: 50px; + box-sizing: border-box; + letter-spacing: -0.4px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item:hover { + color: var(--color-mac-text-default); + border: none; + background: var(--color-mac-finder-sidebar-highlight); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item:not(.list__item--table) { + height: unset; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-title { + margin-left: 26px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-descr { + font-weight: 500; + font-size: 11.5px; + opacity: 0.6; + margin-left: 40px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item .list__item-icon { + margin-right: 0; + font-size: 30px; + vertical-align: middle; + color: var(--color-mac-list-item-icon); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); + margin-top: -2px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item--active { + background: var(--color-mac-blue-list-highlight); + border: none; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item--active:hover { + background: var(--color-mac-blue-list-highlight); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-icon { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-title { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list .list .list__items .scroller .list__item--active .list__item-descr { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list-drag { + border: 1px solid var(--color-mac-scrollbar-border); + margin-left: -1px; + width: 13px; + background: var(--color-mac-scrollbar-background); + margin-bottom: -1px; + margin-top: -1px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__list-drag .drag-handle__inner { + width: 13px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details { + padding: 30px 30px 0; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__header { + border-bottom: 1px solid var(--color-mac-window-content-divider); + margin-bottom: 20px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__header .details__header-title { + font-size: 24px; + font-weight: 700; + font-family: Arial, sans-serif; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__header .details__header-title-input { + font-size: 24px; + font-weight: 700; + font-family: Arial, sans-serif; + height: 42px; + line-height: 42px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__header .details__header-icon { + border: 1px solid var(--color-mac-button-outline); + border-radius: 4px; + padding: 3px 17px; + color: var(--color-mac-button-outline); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body .scroller { + min-width: 100px !important; + max-width: 100% !important; + display: block; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside { + border: 1px solid var(--color-mac-card-border) !important; + background: var(--color-mac-card-background); + border-radius: 4px; + padding: 0 8px; + flex: none; + margin: 0; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field { + margin-bottom: 0 !important; + display: flex; + align-items: center; + font-size: 11px; + padding: 8px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field:not(:last-child), +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field:not(:last-child) { + border-bottom: 1px solid var(--color-mac-card-border); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value { + align-self: center; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value textarea, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value textarea { + min-height: 4em !important; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value a, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value a { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value .details__field-value-btn, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value .details__field-value-btn { + top: 2px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-value-add-label, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-value-add-label { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-label, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-label { + color: var(--color-mac-text-default); + text-align: left; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-fields .details__field .details__field-options, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside .details__field .details__field-options { + opacity: 0.7; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__body-aside { + margin-top: 20px; + margin-bottom: 20px; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons { + background: var(--color-mac-footer-toolbar-background); + border: 1px solid var(--color-mac-footer-toolbar-border); + margin: -1px -31px; + height: 26px; + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons i.fa { + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons .details__buttons-trash, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons .details__buttons-trash-del { + align-self: center; + width: 25px; + text-align: center; + padding: 7px 2px; + height: unset; + margin-right: 0; + border-right: 1px solid var(--color-mac-footer-toolbar-border); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add { + margin-right: 0; + padding: 2px 9px; + border: none; + border-left: 1px solid var(--color-mac-footer-toolbar-border); + align-self: unset; +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add i.fa, +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add .details__attachment-add-title { + color: var(--color-mac-footer-toolbar-icons); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .details .details__buttons .details__attachments .details__attachment-add:hover { + background: var(--intermediate-background-color); +} + +.th-keeweb-cupertino-light .app__list-wrap .app__details .empty-block .empty-block__lower-btns i.fa { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .settings { + background: var(--color-mac-empty-background); + border-left: 1px solid var(--color-mac-finder-frame-border); + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.th-keeweb-cupertino-light .settings .scroller { + border-radius: 4px; + padding: 15px; +} + +.th-keeweb-cupertino-light .settings .settings__back-button { + padding: 20px 10px; + background: transparent; + box-shadow: none; + margin-top: 4px; +} + +.th-keeweb-cupertino-light .settings .settings__general-storage-header { + margin-bottom: 0; + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-light .settings .shortcut { + border-color: var(--color-mac-button-outline); +} + +.th-keeweb-cupertino-light .app__menu .menu { + border-right-width: 0; + background: var(--color-mac-finder-sidebar-background); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section { + border: none; +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item .menu__item-body { + padding-top: 3px; + padding-bottom: 3px; +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item .menu__item-body:hover { + background: var(--color-mac-finder-sidebar-background); + color: var(--color-mac-finder-sidebar-text); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-title { + color: var(--color-mac-finder-sidebar-text); + padding-left: 0.1em; +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-icon { + color: var(--color-mac-finder-sidebar-icon); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-edit, +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item .menu__item-body .menu__item-empty-trash { + opacity: 0.5; + top: 6px; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item .fa { + font-size: 15px; + flex-basis: 30px; + text-align: center; +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body { + background: var(--color-mac-finder-sidebar-highlight); + color: var(--color-mac-finder-sidebar-text); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-title, +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-icon, +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body .menu__item-edit { + color: var(--color-mac-finder-sidebar-text-active); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body svg { + fill: #000; +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section .menu__item.menu__item--active .menu__item-body:hover { + background: var(--color-mac-finder-sidebar-highlight); + color: var(--color-mac-finder-sidebar-text-active); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__section:last-child { + border-top: 1px solid var(--color-mac-footer-toolbar-border); +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__drag-section { + background: transparent; + height: 13px; +} + +.th-keeweb-cupertino-light .app__menu .menu .menu__drag-section .drag-handle__inner { + border-top: 1px solid var(--color-mac-window-drag-handle); + height: 13px; +} + +.th-keeweb-cupertino-light .app__menu-drag { + background: transparent; + width: 13px; + margin-left: -13px; +} + +.th-keeweb-cupertino-light .app__menu-drag .drag-handle__inner { + border-right: 1px solid var(--color-mac-window-drag-handle); + width: 13px; + left: 0; +} + +.th-keeweb-cupertino-light .open { + align-items: stretch; + background: var(--color-mac-settings-section-background-dark); + border-radius: 4px; + /** + * Start page icons + */ +} + +.th-keeweb-cupertino-light .open .open__icons { + background: var(--color-mac-settings-section-background); + padding: 20px 0; +} + +.th-keeweb-cupertino-light .open .open__icons .open__icon { + padding: 10px 20px; + margin: 0; +} + +.th-keeweb-cupertino-light .open .open__icons .open__icon:hover { + background: var(--intermediate-background-color); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-light .open .open__icons.open__icons--lower { + margin-top: -20px; + padding-top: 0; + padding-bottom: 20px; +} + +.th-keeweb-cupertino-light .open .open__pass-area { + width: 100%; + padding: 20px 0; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__pass-field-wrap { + margin-bottom: 30px; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__pass-field-wrap .open__pass-input { + padding: 30px; + border-radius: 6px; + border: 2px solid var(--color-mac-blue-list-highlight); + margin: 0 auto; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__pass-field-wrap .open__pass-enter-btn, +.th-keeweb-cupertino-light .open .open__pass-area .open__pass-field-wrap .open__pass-opening-icon { + color: var(--color-mac-blue-list-highlight); + right: 22vw; + left: unset; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__settings { + display: flex; + align-items: center; + height: 35px; + width: 100%; + max-width: 38vw; + margin: 0 auto; + padding-left: 0; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__settings:hover { + background: var(--color-mac-window-content-panel); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__settings .open__settings-key-file { + color: var(--color-mac-text-default); + padding: 0.5em 1em; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__settings .open__settings-key-file .open__settings-key-file-dropbox { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__last { + width: 100%; + max-width: 38vw; + margin: 0 auto; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__last .open__last-item { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__last .open__last-item:hover { + background: var(--color-mac-window-content-panel); + color: var(--color-mac-text-default); + border-radius: 4px; +} + +.th-keeweb-cupertino-light .open .open__pass-area .open__last .open__last-item .open__last-item-icon-del { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .open .open__icons .open__icon-i, +.th-keeweb-cupertino-light .open .open__icons .open__icon-svg { + font-size: 40px; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-lock { + background-image: linear-gradient(to top, orange, orange, orange, orange, grey, #bdbdbd, #e2e2e2); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-bolt { + background-image: linear-gradient(to top, orange, orange, orange, orange, orange, yellow, #bdbdbd); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-dropbox { + color: #0055f8; +} + +.th-keeweb-cupertino-light .open .open__icons div#open__icon-storage--gdrive svg path { + fill: #e03a2d; +} + +.th-keeweb-cupertino-light .open .open__icons div#open__icon-storage--onedrive svg path { + fill: #006dce; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-cog { + background-image: linear-gradient(to top, #626262, #8d8d8d, #aeaeae, #777); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-server { + color: #0074bc; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-plus { + background-image: linear-gradient(to top, #258115, #3f9d44, #1ab80f, #56c618); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-magic { + background-image: linear-gradient(to top, #333, #333, gray, purple, violet); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-light .open .open__icons .fa-ellipsis-h:before { + background-image: linear-gradient(to top, #136dcf, #0778f5, #00b7ff); + -webkit-background-clip: text; + color: transparent; +} + +.th-keeweb-cupertino-light .open .open__icons .open__icon-text { + color: #717171; + font-size: var(--font-size-label); + font-weight: 300; + letter-spacing: -0.5pt; +} + +.th-keeweb-cupertino-light .open .open__icons .open__icon-text:hover { + color: #717171; +} + +.th-keeweb-cupertino-light .grp .scroller .grp__content > div:not([class]) { + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-light .app__footer { + height: 34px; + border-color: var(--color-mac-list-item-divider); + background-image: var(--color-mac-footer-background); + display: flex; + align-items: center; + font-size: 11px; + font-weight: 400; + opacity: 0.9; +} + +.th-keeweb-cupertino-light .app__footer .footer { + align-items: center; + width: 100%; + height: 100%; +} + +.th-keeweb-cupertino-light .app__footer .footer__db { + padding-top: 0; + padding-bottom: 0; + color: var(--color-mac-footer-icons); + height: 100%; + display: flex; + align-items: center; +} + +.th-keeweb-cupertino-light .app__footer .footer__db i.fa { + margin-right: 6px; +} + +.th-keeweb-cupertino-light .app__footer .footer__db--expanded { + flex: unset; +} + +.th-keeweb-cupertino-light .app__footer .footer__btn { + padding-top: 0; + padding-bottom: 0; + color: var(--color-mac-footer-icons); + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.th-keeweb-cupertino-light .app__footer .footer__btn.footer__btn-help { + margin-left: auto; +} + +.th-keeweb-cupertino-light .dropdown { + box-shadow: var(--color-mac-dropdown-box-shadow); + background: var(--color-mac-dropdown-background); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; +} + +.th-keeweb-cupertino-light .dropdown .dropdown__item { + padding: 6px 12px; +} + +.th-keeweb-cupertino-light .dropdown .dropdown__item:hover { + background: var(--color-mac-blue-list-highlight); + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .dropdown .dropdown__item:hover .dropdown__item-text { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .dropdown .dropdown__item:hover .dropdown__item-text .muted-color { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .dropdown .dropdown__item .dropdown__item-text .muted-color { + font-size: 12px; + font-weight: 300; +} + +.th-keeweb-cupertino-light .dropdown .dropdown__item .dropdown__item-icon { + width: 1.2em; +} + +.th-keeweb-cupertino-light .dropdown .dropdown__item--active { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .tip { + box-shadow: var(--color-mac-dropdown-box-shadow); + background: var(--color-mac-dropdown-background); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + animation-duration: 0.25s !important; + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .tip:before { + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); + animation-duration: 0.25s !important; +} + +.th-keeweb-cupertino-light .icon-select .icon-select__items .icon-select__icon--active { + color: var(--color-mac-text-light); +} + +.th-keeweb-cupertino-light .pika-single { + box-shadow: var(--color-mac-dropdown-box-shadow); + backdrop-filter: blur(20px); + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-prev, +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-next { + border: 1px solid var(--color-mac-dropdown-border-outline); + border-radius: 4px; + background: var(--color-mac-input-background); +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-prev:after, +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-next:after { + top: 2px; +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-prev:after { + border-right-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-next:after { + border-left-color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-label { + background: var(--color-mac-dropdown-background); + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-title .pika-label .pika-select { + color: red; +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-table th { + color: var(--color-mac-text-default); +} + +.th-keeweb-cupertino-light .pika-single .pika-lendar .pika-table .pika-row .pika-button:hover { + background: var(--color-mac-blue-list-highlight) !important; + color: var(--color-mac-text-light) !important; +} diff --git a/keeweb/plugins/plugins/theme-darker/index.html b/keeweb/plugins/plugins/theme-darker/index.html new file mode 100644 index 0000000..7d76005 --- /dev/null +++ b/keeweb/plugins/plugins/theme-darker/index.html @@ -0,0 +1,22 @@ + + + + + KeeWeb Plugin: Darker Theme + + + + +

KeeWeb Plugin: Darker Theme

+ + https://plugins.keeweb.info/plugins/theme-darker + +

It looks like the default Dark theme, but with darker colors.

+ + diff --git a/keeweb/plugins/plugins/theme-darker/manifest.json b/keeweb/plugins/plugins/theme-darker/manifest.json new file mode 100644 index 0000000..5ae6834 --- /dev/null +++ b/keeweb/plugins/plugins/theme-darker/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "0.0.1", + "manifestVersion": "0.1.0", + "versionMin": "1.16.0", + "name": "theme-darker", + "description": "Darker Theme", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "resources": { + "css": "QKfTau6vGoFnHZd6ID3j3FolZ+6S+WGouviYTNEHjGryiSDXvGxIYci5J/voejn8WCRHMU5uZcu1hEYVOm+fp7C45AgiDZyPQZs10zGENWXfbfxn0dM1gOTKnowI4w7PE2LC551YzWv1wt9APZxzuV1roA8i0tcldzcJ3bGxezO+w3msSSjslMx5pKoq2XYRYR+5/A5VGXyfG6r/gvB44vdeN3jjHOgF2idIpOGKDmd6FXN9srasAHtZBI7acAn8e8+pzt4uqAnESojEKT19Y3gEwZ9GiiEfd3HwPmFEoQxDPoEitu8r8ayPhySSriWS5G0XPs2DSuHNPL9M84GQ+w==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-darker", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "darker", + "title": "Darker" + } +} diff --git a/keeweb/plugins/plugins/theme-darker/plugin.css b/keeweb/plugins/plugins/theme-darker/plugin.css new file mode 100644 index 0000000..48b1f0f --- /dev/null +++ b/keeweb/plugins/plugins/theme-darker/plugin.css @@ -0,0 +1,20 @@ +.th-darker { + --background-color: #1c1c1c; + --medium-color: #b7b7b8; + --text-color: #f7f7f7; + --action-color: #317ef6; + --error-color: #ec655a; + + --form-box-border-color-focus: #407091; + --form-box-shadow-color-focus: #3a698b; + --form-box-shadow-color-hover: rgba(58, 105, 139, 0.8); + --light-border-color: rgba(68, 68, 69, 0.6); + --secondary-background-color: transparent; + --selected-item-color: #2463c8; + --selected-on-secondary-item-color: #3a383a; + --selectable-on-secondary-item-color: #272627; +} + +.th-darker .list__item--active .blue-color { + color: #689ff7; +} diff --git a/keeweb/plugins/plugins/theme-dracula/index.html b/keeweb/plugins/plugins/theme-dracula/index.html new file mode 100644 index 0000000..2d62a0d --- /dev/null +++ b/keeweb/plugins/plugins/theme-dracula/index.html @@ -0,0 +1,20 @@ + + + + + KeeWeb Plugin: Dracula Theme + + + + +

KeeWeb Plugin: Dracula Theme

+https://plugins.keeweb.info/plugins/theme-dracula +

This is a dark theme based on Dracula Theme +

+ + diff --git a/keeweb/plugins/plugins/theme-dracula/manifest.json b/keeweb/plugins/plugins/theme-dracula/manifest.json new file mode 100644 index 0000000..94adc1e --- /dev/null +++ b/keeweb/plugins/plugins/theme-dracula/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "0.0.5", + "manifestVersion": "0.1.0", + "name": "theme-dracula", + "description": "Dracula Theme", + "author": { + "name": "Neffarion", + "email": "main@neffware.com", + "url": "https://www.neffware.com" + }, + "resources": { + "css": "WyZZtIt5uuNZf+zKPCkZZjNYmtULCkZUWr0+X/yw2AyMuy4Yj0zVpUCn4CPF5kvHYRw6aWukNiHT3msbMBwMm8eyVxtY51hgkq9uJYt6Mo7ifxMyfALJXtbhMf8gtCqUtSzD20JCQACh8P58pfOpd4pVWtUwzBF/HmQ5L/5V4Q6DDAjlwOrKzRDJLRBO2wZ1KWgU/fy4EsD4AKf4W4XADwduTm2C1hu+3wophI0rSvyvVE2Rop8thkPCm2FTbcBu3xiykPemTopihctBlL8H0xbGM8qk6VJMEyAKDit4Z9kVTIWN+bQ4mcX1Wae6IRR4BZe386wG2omlH+NMQ6xo9A==" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/plugins/theme-dracula", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "theme": { + "name": "dracula", + "title": "Dracula" + } +} diff --git a/keeweb/plugins/plugins/theme-dracula/plugin.css b/keeweb/plugins/plugins/theme-dracula/plugin.css new file mode 100644 index 0000000..fff3d88 --- /dev/null +++ b/keeweb/plugins/plugins/theme-dracula/plugin.css @@ -0,0 +1,34 @@ +.th-dracula { + --background-color: #22212c; + --medium-color: #9580ff; + --text-color: #f8f8f2; + --action-color: #9580ff; + --selected-item-text-color: #22212c; + --error-color:#e7655b; + --accent-border-color: #FF80BF; + --selected-item-color:#FF80BF; + --selected-on-secondary-item-color: #6ad1c0; + --text-selection-bg-color: #454158; +} + +.th-dracula .menu__item--active.menu__item--hover>.menu__item-body, +.th-dracula .menu__item--active>.menu__item-body{ + --selected-item-text-color: #22212c; + color:#22212c; +} + +.th-dracula .list__item-icon { + text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.75); +} + +.th-dracula input[type='text']:active, +.th-dracula input[type='text']:focus, +.th-dracula input[type='password']:active, +.th-dracula input[type='password']:focus, +.th-dracula input:not([type]):active, +.th-dracula input:not([type]):focus, +.th-dracula textarea:active, +.th-dracula textarea:focus { + border: 2px solid rgba(106, 209, 192, 0.8); + box-shadow: 0px 0px 3px #22212c; +} \ No newline at end of file diff --git a/keeweb/plugins/plugins/theme-nord/index.html b/keeweb/plugins/plugins/theme-nord/index.html new file mode 100644 index 0000000..721ed6f --- /dev/null +++ b/keeweb/plugins/plugins/theme-nord/index.html @@ -0,0 +1,20 @@ + + + + + KeeWeb Plugin: Nord Theme + + + + +

KeeWeb Plugin: Nord Theme

+https://plugins.keeweb.info/plugins/theme-nord +

This is a dark theme inspired by https://github.com/arcticicestudio/nord +

+ + diff --git a/keeweb/plugins/plugins/theme-nord/manifest.json b/keeweb/plugins/plugins/theme-nord/manifest.json new file mode 100644 index 0000000..2d1ef94 --- /dev/null +++ b/keeweb/plugins/plugins/theme-nord/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "0.0.3", + "manifestVersion": "0.1.0", + "name": "theme-nord", + "description": "Nord theme", + "author": { + "name": "KeeWeb", + "email": "keeweb@keeweb.info", + "url": "https://keeweb.info" + }, + "resources": { + "css": "i+Hu8H6kEDZgiqAFEAKUFruBZc9yoWouUzWtD/B/4AD4xtLOGTQvNom07ooF4L3i7buwswqxI/JqMfx5sNVJlnkffUHdJiBEkbl/Kl2G5R/UdRv8mQfVn7wDgO4US4pKvj6YHfxLr4C0lao/JEAUmicZrrlxzbD207elOtHNhbJ65yC3H+V8on0LJF+ZLCY85Epk9f2Htm+wQThuY25uHHoTPX8QkmP2573vcmOZk/Y8aQcrEFHP1rX0IpgZ/LLxLLEPd+TYk6D73vzsb+GHigjexbHyKzOY6oSLawg5ABe72EbMe6zCXQgACobfBj/NtjxDed0AptqbDElUz3p8HQ==" + }, + "url": "https://plugins.keeweb.info/plugins/theme-nord", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "nord", + "title": "Nord" + } +} diff --git a/keeweb/plugins/plugins/theme-nord/plugin.css b/keeweb/plugins/plugins/theme-nord/plugin.css new file mode 100644 index 0000000..95fd40c --- /dev/null +++ b/keeweb/plugins/plugins/theme-nord/plugin.css @@ -0,0 +1,13 @@ +.th-nord { + --action-color: #8ac0cf; + --background-color: #2e3440; + --error-color: #bd626b; + --intermediate-background-color: #3b4253; + --light-border-color: #3b4253; + --medium-color: #d8dee9; + --secondary-background-color: #434c5f; + --text-color: #d8dee9; + --text-contrast-action-color: #000000; + --form-box-shadow-color-focus: #2e3440; + --form-box-shadow-color-focus-error: #2e3440; +} diff --git a/keeweb/plugins/plugins/theme-orange/index.html b/keeweb/plugins/plugins/theme-orange/index.html new file mode 100644 index 0000000..0d3e920 --- /dev/null +++ b/keeweb/plugins/plugins/theme-orange/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Plugin: Orange Theme + + + + +

KeeWeb Plugin: Orange Theme

+

This is a dark theme with orange as the primary color, inspired by the Unreal Engine colors.

+ + diff --git a/keeweb/plugins/plugins/theme-orange/manifest.json b/keeweb/plugins/plugins/theme-orange/manifest.json new file mode 100644 index 0000000..731b877 --- /dev/null +++ b/keeweb/plugins/plugins/theme-orange/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "0.0.2", + "manifestVersion": "0.1.0", + "name": "theme-orange", + "description": "Orange Theme", + "author": { + "name": "Jonathan Verbeek", + "email": "iredcraft@gmail.com", + "url": "http://nothing.com" + }, + "resources": { + "css": "HbWS1VOZ79ag0NKUg2JU5wtdl3//xmE5TN+Im3sMfBi1U2M1YzbjOiwP+cgVUo2vpvuFGSEV35Kw9BQP7TmpnoxGtqJeYp8MG7HQcoW/suuF8wqVnG7c4NV1NRzAUTEK5t0U7NESn+huP1YByQseceoLB+ghx8ygbmJN5tugWZuBIBVAckP1Yj1U5sOWbts5Lyu8qMuslTcV8vSFGlNRSLM4bkfitifXwpyH6jvg0pOoAkq9gJap6yvEgJGR0ElepG+Fst0p8xNyaORWOpibdcV0DEZUyBk+6B4LeU6Y6y3OeB2r2IGd4S/S2WXczePY4UWlAOJMFbbqdXbOW7Sfhw==" + }, + "url": "http://nothing.com", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "dark-orange", + "title": "Dark Orange" + } +} diff --git a/keeweb/plugins/plugins/theme-orange/plugin.css b/keeweb/plugins/plugins/theme-orange/plugin.css new file mode 100644 index 0000000..56f1216 --- /dev/null +++ b/keeweb/plugins/plugins/theme-orange/plugin.css @@ -0,0 +1,7 @@ +.th-dark-orange { + --background-color: #222222; + --medium-color: #5e5e5e; + --text-color: #eeeeee; + --action-color: #e05d08; + --error-color: #c34034; +} diff --git a/keeweb/plugins/plugins/theme-thgworks/README.md b/keeweb/plugins/plugins/theme-thgworks/README.md new file mode 100644 index 0000000..c8ded63 --- /dev/null +++ b/keeweb/plugins/plugins/theme-thgworks/README.md @@ -0,0 +1,3 @@ +# KeeWeb Plugin: THGWorks Theme + +[THGWorks](https://thg.works) color scheme for KeeWeb diff --git a/keeweb/plugins/plugins/theme-thgworks/favicon.ico b/keeweb/plugins/plugins/theme-thgworks/favicon.ico new file mode 100644 index 0000000..d5c603a Binary files /dev/null and b/keeweb/plugins/plugins/theme-thgworks/favicon.ico differ diff --git a/keeweb/plugins/plugins/theme-thgworks/index.html b/keeweb/plugins/plugins/theme-thgworks/index.html new file mode 100644 index 0000000..e833c7a --- /dev/null +++ b/keeweb/plugins/plugins/theme-thgworks/index.html @@ -0,0 +1,12 @@ + + + + + KeeWeb Plugin: THGWorks Theme + + + +

KeeWeb Plugin: THGWorks Theme

+

THGWorks color scheme for KeeWeb

+ + diff --git a/keeweb/plugins/plugins/theme-thgworks/manifest.json b/keeweb/plugins/plugins/theme-thgworks/manifest.json new file mode 100644 index 0000000..ea343d2 --- /dev/null +++ b/keeweb/plugins/plugins/theme-thgworks/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "1.0.2", + "manifestVersion": "0.1.0", + "name": "theme-thgworks", + "description": "THGWorks Theme", + "author": { + "name": "Thiago Ferezim", + "email": "thiagoferezim@gmail.com", + "url": "https://thg.works" + }, + "resources": { + "css": "Y9MnKuKokoRN4YBPd7/rYZGy/B/E8kOYjjzP2JqF26Cdf6BLl8cNx7kcTNwHkuceM1+YBrMp9hQxsV96yiHaNcwD9hgCr7WP8BGs+a95CCXY3O0Eqp+tIbf74uXVKpGfbexlm4u4fVAXraCmSxlhQNUP73YRyeJeuT7Fz+y6xlt5QprQo633SfGeAIQ5K7IosPdM9yrTk54YwQ+9n84KJRqoPJwEsZysiDU56w6FYGI0LovKhK7h/e44/6AsopwPr++SQK7kSVahe3Qia8irpeDAq/0FbS2Fe3naXDJTXKAlpeapwEA7qzPmBQT2NhPOmuAfiVwSyRc2MJD6MlPhdg==" + }, + "url": "https://github.com/thgfrzm/theme-thgworks", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB", + "license": "MIT", + "theme": { + "name": "thgworks", + "title": "THGWorks Theme" + } +} diff --git a/keeweb/plugins/plugins/theme-thgworks/plugin.css b/keeweb/plugins/plugins/theme-thgworks/plugin.css new file mode 100644 index 0000000..f8c4c0e --- /dev/null +++ b/keeweb/plugins/plugins/theme-thgworks/plugin.css @@ -0,0 +1,32 @@ +.th-thgworks { + --background-color: #262626; + --medium-color: #737373; + --text-color: #f1f1f1; + --action-color: #da9c6b; + --action-background-color-focus: #C16341; + --action-background-color-focus-tr: rgba(174,125,125,0.1); + --action-background-color-active: rgba(164,117,80,1); + --action-background-color-active-tr: rgba(164,117,117,0.15); + --form-box-shadow-color-focus: hsla(7,60%,64%,1); + --error-color: #C16341; + --error-background-color-focus: #C1634199; + --error-background-color-focus-tr: #C1634120; + --error-background-color-active: #C16341bb; + --error-background-color-active-tr: #C1634140; + --form-box-shadow-color-focus-error: hsla(2,63%,57%,1); + --text-selection-bg-color: #404040; + --text-semi-muted-color: #da9c6b99; + --muted-color: #bebebe; + --dropdown-box-shadow-color: #f1f1f120; + --text-contrast-action-color: #f1f1f1; + --base-border-color: rgba(178,178,178,1); + --accent-border-color: rgba(159,159,159,1); + --light-border-color: #404040; + --form-box-border-focus: #da9c6b; + --secondary-background-color: #da9c6b20; + --intermediate-background-color: #40404066; + --intermediate-pressed-background-color: #737373; + --disabled-background-color: #404040; + --modal-background-color: #737373; + --modal-background-color-tr: #057253; +} diff --git a/keeweb/plugins/siyuan/manifest.json b/keeweb/plugins/siyuan/manifest.json new file mode 100644 index 0000000..ca1aafc --- /dev/null +++ b/keeweb/plugins/siyuan/manifest.json @@ -0,0 +1,18 @@ +{ + "version": "0.2.0", + "manifestVersion": "0.1.0", + "name": "siyuan", + "description": "Establish a connection between KeeWeb and SiYuan", + "author": { + "name": "Zuoqiu Yingyi", + "email": "49649786+Zuoqiu-Yingyi@users.noreply.github.com", + "url": "https://github.com/Zuoqiu-Yingyi" + }, + "resources": { + "js": "BmfjznP4Wnxl3YcSfID1ULdAxe3i9dlwr8lBNKNyyRccvNxm5uXXOxoApOu/MT/nBeHaBGM7Crb8pPYtH9dbnmBP/J4TJO28JJjOIPEfk9JpcSMGfpVCFTPyssu2WCstAsQLy4xHzrNbL8FYfFoiVG1owplKHfMrelQcMLuGvPF4OHMbLvoJ8inJx7bRl7X/Ja5nwQNLRdtNV4hV9YTC9ZU9drUCl5/yWeFYk1mDYCP7uWBzw0f42DPZN2AGg12xbV/AWY+B7i6rDCpvpnq6RSdWDZ/klDtJmyY3JXmUTlNZlIzlX+FWeU/QvKcHe+5lx0bxumJZkjQQR6bekHcVpw==", + "css": "QP4c48mLQWWf2y6IiDSvG2dgg/jG0hhPiv5jI3mDVBCmSkyc2ew/7nN4GebzuxjC1n/eYkfRoIR8K+VqP73/9NSt1XNZBWzrolWqPXHYKtwC+p16+yWBhHdYGmje9yqYVF761DCigFc+pNHa5iVePIWRfy7jOwLfBTlIVSNNkU+uI5wXdRjLh8Qdnq9x9LrVrQcjzQGMVHd3HGwfxFSmqY0nu1+8RRJ280UpHTzNukUNfJqzkLM8F4fZrnSa5SB5OqYvT0dBOJJFK+TeVhTCEZyb+xKBq+86R+tXmBQ0eI3vwe02MxIbcLXeSp5v+m0uY173R8A83F5FBQiDFZMywQ==" + }, + "license": "AGPL-3.0-or-later", + "url": "https://raw.githubusercontent.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/publish/keeweb/plugins/siyuan", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn+U+elZ7WlBe2T6syMBDrFT0WPzBSDwrZVR/wKoH9xpZGtL9m+eGA2w7Ep/AqwoHwT3WLJile5lBlEkyAR51Tc3jHNiMNWBPIKSutnI+KQsjfwsG6C4DH0v0+NEr4ckQmm2JR5vIazf5LSPhh8icoVF3FN4UAtCOoGL4tX4kAPuKTk44kX0NtlymEcgoMU2GnHXuknlaEXVxB/C2nNwZxoaZG48tBpm7IzKRGsj1Vp+lSrX6bAnvJksM7owf/Edx3Nq3yDq1FgiO0cVAcDx9hKGTXpXefQuohg2F3yHm4ZTLnGPhZcRkUSxkVbiJE5TdEVyXuMQ2rFBQv6pL7pQJ4QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/siyuan/plugin.css b/keeweb/plugins/siyuan/plugin.css new file mode 100644 index 0000000..c0d651a --- /dev/null +++ b/keeweb/plugins/siyuan/plugin.css @@ -0,0 +1,20 @@ +/** + * Copyright (C) 2023 Zuoqiu Yingyi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +.fa-siyuan::before { + content: "SY"; +} diff --git a/keeweb/plugins/siyuan/plugin.js b/keeweb/plugins/siyuan/plugin.js new file mode 100644 index 0000000..8280796 --- /dev/null +++ b/keeweb/plugins/siyuan/plugin.js @@ -0,0 +1,9 @@ +"use strict";var vt=Object.defineProperty;var Ot=(e,t,o)=>t in e?vt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var D=(e,t,o)=>(Ot(e,typeof t!="symbol"?t+"":t,o),o);const $e=require("locales/base"),We=require("models/app-settings-model"),Je=require("storage/index"),Tt=require("storage/storage-base"),At="0.2.0",Pt="0.1.0",Rt="siyuan",Et="Establish a connection between KeeWeb and SiYuan",Ct={name:"Zuoqiu Yingyi",email:"49649786+Zuoqiu-Yingyi@users.noreply.github.com",url:"https://github.com/Zuoqiu-Yingyi"},Dt={js:!0,css:!0},Bt="AGPL-3.0-or-later",xt="https://raw.githubusercontent.com/Zuoqiu-Yingyi/siyuan-plugin-keepass/publish/keeweb/plugins/siyuan",Nt="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn+U+elZ7WlBe2T6syMBDrFT0WPzBSDwrZVR/wKoH9xpZGtL9m+eGA2w7Ep/AqwoHwT3WLJile5lBlEkyAR51Tc3jHNiMNWBPIKSutnI+KQsjfwsG6C4DH0v0+NEr4ckQmm2JR5vIazf5LSPhh8icoVF3FN4UAtCOoGL4tX4kAPuKTk44kX0NtlymEcgoMU2GnHXuknlaEXVxB/C2nNwZxoaZG48tBpm7IzKRGsj1Vp+lSrX6bAnvJksM7owf/Edx3Nq3yDq1FgiO0cVAcDx9hKGTXpXefQuohg2F3yHm4ZTLnGPhZcRkUSxkVbiJE5TdEVyXuMQ2rFBQv6pL7pQJ4QIDAQAB",Lt={version:At,manifestVersion:Pt,name:Rt,description:Et,author:Ct,resources:Dt,license:Bt,url:xt,publicKey:Nt};var qt=Object.defineProperty,jt=(e,t,o)=>t in e?qt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,R=(e,t,o)=>(jt(e,typeof t!="symbol"?t+"":t,o),o);const Ut=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Ft=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,_t=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function It(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){zt(e);return}return t}function zt(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Mt(e,t={}){if(typeof e!="string")return e;const o=e.trim();if(e[0]==='"'&&e.at(-1)==='"'&&!e.includes("\\"))return o.slice(1,-1);if(o.length<=9){const n=o.toLowerCase();if(n==="true")return!0;if(n==="false")return!1;if(n==="undefined")return;if(n==="null")return null;if(n==="nan")return Number.NaN;if(n==="infinity")return Number.POSITIVE_INFINITY;if(n==="-infinity")return Number.NEGATIVE_INFINITY}if(!_t.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(Ut.test(e)||Ft.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,It)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}const Ht=/#/g,$t=/&/g,Wt=/=/g,pe=/\+/g,Jt=/%5e/gi,Vt=/%60/gi,Kt=/%7c/gi,Yt=/%20/gi;function Gt(e){return encodeURI(""+e).replace(Kt,"|")}function re(e){return Gt(typeof e=="string"?e:JSON.stringify(e)).replace(pe,"%2B").replace(Yt,"+").replace(Ht,"%23").replace($t,"%26").replace(Vt,"`").replace(Jt,"^")}function Q(e){return re(e).replace(Wt,"%3D")}function Ve(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function Qt(e){return Ve(e.replace(pe," "))}function Xt(e){return Ve(e.replace(pe," "))}function Zt(e=""){const t={};e[0]==="?"&&(e=e.slice(1));for(const o of e.split("&")){const n=o.match(/([^=]+)=?(.*)/)||[];if(n.length<2)continue;const r=Qt(n[1]);if(r==="__proto__"||r==="constructor")continue;const s=Xt(n[2]||"");t[r]===void 0?t[r]=s:Array.isArray(t[r])?t[r].push(s):t[r]=[t[r],s]}return t}function eo(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(o=>`${Q(e)}=${re(o)}`).join("&"):`${Q(e)}=${re(t)}`:Q(e)}function to(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>eo(t,e[t])).filter(Boolean).join("&")}const oo=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,no=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,ro=/^([/\\]\s*){2,}[^/\\]/;function Ke(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?oo.test(e):no.test(e)||(t.acceptRelative?ro.test(e):!1)}const so=/\/$|\/\?|\/#/;function se(e="",t){return t?so.test(e):e.endsWith("/")}function ao(e="",t){if(!t)return(se(e)?e.slice(0,-1):e)||"/";if(!se(e,!0))return e||"/";let o=e,n="";const r=e.indexOf("#");r>=0&&(o=e.slice(0,r),n=e.slice(r));const[s,...a]=o.split("?");return(s.slice(0,-1)||"/")+(a.length>0?`?${a.join("?")}`:"")+n}function io(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(se(e,!0))return e||"/";let o=e,n="";const r=e.indexOf("#");if(r>=0&&(o=e.slice(0,r),n=e.slice(r),!o))return n;const[s,...a]=o.split("?");return s+"/"+(a.length>0?`?${a.join("?")}`:"")+n}function co(e,t){if(lo(t)||Ke(e))return e;const o=ao(t);return e.startsWith(o)?e:fo(o,e)}function uo(e,t){const o=Ye(e),n={...Zt(o.search),...t};return o.search=to(n),mo(o)}function lo(e){return!e||e==="/"}function ho(e){return e&&e!=="/"}const po=/^\.?\//;function fo(e,...t){let o=e||"";for(const n of t.filter(r=>ho(r)))if(o){const r=n.replace(po,"");o=io(o)+r}else o=n;return o}function Ye(e="",t){const o=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(o){const[,d,y=""]=o;return{protocol:d.toLowerCase(),pathname:y,href:d+y,auth:"",host:"",search:"",hash:""}}if(!Ke(e,{acceptRelative:!0}))return t?Ye(t+e):we(e);const[,n="",r,s=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,a="",c=""]=s.match(/([^#/?]*)(.*)?/)||[],{pathname:h,search:p,hash:i}=we(c.replace(/\/(?=[A-Za-z]:)/,""));return{protocol:n.toLowerCase(),auth:r?r.slice(0,Math.max(0,r.length-1)):"",host:a,pathname:h,search:p,hash:i}}function we(e=""){const[t="",o="",n=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:o,hash:n}}function mo(e){const t=e.pathname||"",o=e.search?(e.search.startsWith("?")?"":"?")+e.search:"",n=e.hash||"",r=e.auth?e.auth+"@":"",s=e.host||"";return(e.protocol?e.protocol+"//":"")+r+s+t+o+n}class go extends Error{constructor(t,o){super(t,o),this.name="FetchError",o!=null&&o.cause&&!this.cause&&(this.cause=o.cause)}}function yo(e){var t,o,n,r,s;const a=((t=e.error)==null?void 0:t.message)||((o=e.error)==null?void 0:o.toString())||"",c=((n=e.request)==null?void 0:n.method)||((r=e.options)==null?void 0:r.method)||"GET",h=((s=e.request)==null?void 0:s.url)||String(e.request)||"/",p=`[${c}] ${JSON.stringify(h)}`,i=e.response?`${e.response.status} ${e.response.statusText}`:"",d=`${p}: ${i}${a?` ${a}`:""}`,y=new go(d,e.error?{cause:e.error}:void 0);for(const f of["request","options","response"])Object.defineProperty(y,f,{get(){return e[f]}});for(const[f,m]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(y,f,{get(){return e.response&&e.response[m]}});return y}const bo=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function Se(e="GET"){return bo.has(e.toUpperCase())}function wo(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}const So=new Set(["image/svg","application/xml","application/xhtml","application/html"]),ko=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function vo(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return ko.test(t)?"json":So.has(t)||t.startsWith("text/")?"text":"blob"}function Oo(e,t,o=globalThis.Headers){const n={...t,...e};if(t!=null&&t.params&&e!=null&&e.params&&(n.params={...t==null?void 0:t.params,...e==null?void 0:e.params}),t!=null&&t.query&&e!=null&&e.query&&(n.query={...t==null?void 0:t.query,...e==null?void 0:e.query}),t!=null&&t.headers&&e!=null&&e.headers){n.headers=new o((t==null?void 0:t.headers)||{});for(const[r,s]of new o((e==null?void 0:e.headers)||{}))n.headers.set(r,s)}return n}const To=new Set([408,409,425,429,500,502,503,504]),Ao=new Set([101,204,205,304]);function Ge(e={}){const{fetch:t=globalThis.fetch,Headers:o=globalThis.Headers,AbortController:n=globalThis.AbortController}=e;async function r(c){const h=c.error&&c.error.name==="AbortError"&&!c.options.timeout||!1;if(c.options.retry!==!1&&!h){let i;typeof c.options.retry=="number"?i=c.options.retry:i=Se(c.options.method)?0:1;const d=c.response&&c.response.status||500;if(i>0&&(Array.isArray(c.options.retryStatusCodes)?c.options.retryStatusCodes.includes(d):To.has(d))){const y=c.options.retryDelay||0;return y>0&&await new Promise(f=>setTimeout(f,y)),s(c.request,{...c.options,retry:i-1,timeout:c.options.timeout})}}const p=yo(c);throw Error.captureStackTrace&&Error.captureStackTrace(p,s),p}const s=async function(c,h={}){var p;const i={request:c,options:Oo(h,e.defaults,o),response:void 0,error:void 0};if(i.options.method=(p=i.options.method)==null?void 0:p.toUpperCase(),i.options.onRequest&&await i.options.onRequest(i),typeof i.request=="string"&&(i.options.baseURL&&(i.request=co(i.request,i.options.baseURL)),(i.options.query||i.options.params)&&(i.request=uo(i.request,{...i.options.params,...i.options.query}))),i.options.body&&Se(i.options.method)&&(wo(i.options.body)?(i.options.body=typeof i.options.body=="string"?i.options.body:JSON.stringify(i.options.body),i.options.headers=new o(i.options.headers||{}),i.options.headers.has("content-type")||i.options.headers.set("content-type","application/json"),i.options.headers.has("accept")||i.options.headers.set("accept","application/json")):("pipeTo"in i.options.body&&typeof i.options.body.pipeTo=="function"||typeof i.options.body.pipe=="function")&&("duplex"in i.options||(i.options.duplex="half"))),!i.options.signal&&i.options.timeout){const d=new n;setTimeout(()=>d.abort(),i.options.timeout),i.options.signal=d.signal}try{i.response=await t(i.request,i.options)}catch(d){return i.error=d,i.options.onRequestError&&await i.options.onRequestError(i),await r(i)}if(i.response.body&&!Ao.has(i.response.status)&&i.options.method!=="HEAD"){const d=(i.options.parseResponse?"json":i.options.responseType)||vo(i.response.headers.get("content-type")||"");switch(d){case"json":{const y=await i.response.text(),f=i.options.parseResponse||Mt;i.response._data=f(y);break}case"stream":{i.response._data=i.response.body;break}default:i.response._data=await i.response[d]()}}return i.options.onResponse&&await i.options.onResponse(i),!i.options.ignoreResponseError&&i.response.status>=400&&i.response.status<600?(i.options.onResponseError&&await i.options.onResponseError(i),await r(i)):i.response},a=async function(c,h){return(await s(c,h))._data};return a.raw=s,a.native=(...c)=>t(...c),a.create=(c={})=>Ge({...e,defaults:{...e.defaults,...c}}),a}const fe=function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")}(),Po=fe.fetch||(()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!"))),Ro=fe.Headers,Eo=fe.AbortController,Co=Ge({fetch:Po,Headers:Ro,AbortController:Eo});class Do extends Error{constructor(t){super(t.statusText),R(this,"status"),this.response=t,this.status=t.status}}class ke extends Error{constructor(t,o){super(t.msg),R(this,"code"),this.body=t,this.response=o,this.code=t.code}}function O(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function ve(e,t){for(var o="",n=0,r=-1,s=0,a,c=0;c<=e.length;++c){if(c2){var h=o.lastIndexOf("/");if(h!==o.length-1){h===-1?(o="",n=0):(o=o.slice(0,h),n=o.length-1-o.lastIndexOf("/")),r=c,s=0;continue}}else if(o.length===2||o.length===1){o="",n=0,r=c,s=0;continue}}t&&(o.length>0?o+="/..":o="..",n=2)}else o.length>0?o+="/"+e.slice(r+1,c):o=e.slice(r+1,c),n=c-r-1;r=c,s=0}else a===46&&s!==-1?++s:s=-1}return o}function Bo(e,t){var o=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return o?o===t.root?o+n:o+e+n:n}var j={resolve:function(){for(var e="",t=!1,o,n=arguments.length-1;n>=-1&&!t;n--){var r;n>=0?r=arguments[n]:(o===void 0&&(o=process.cwd()),r=o),O(r),r.length!==0&&(e=r+"/"+e,t=r.charCodeAt(0)===47)}return e=ve(e,!t),t?e.length>0?"/"+e:"/":e.length>0?e:"."},normalize:function(e){if(O(e),e.length===0)return".";var t=e.charCodeAt(0)===47,o=e.charCodeAt(e.length-1)===47;return e=ve(e,!t),e.length===0&&!t&&(e="."),e.length>0&&o&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return O(e),e.length>0&&e.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var e,t=0;t0&&(e===void 0?e=o:e+="/"+o)}return e===void 0?".":j.normalize(e)},relative:function(e,t){if(O(e),O(t),e===t||(e=j.resolve(e),t=j.resolve(t),e===t))return"";for(var o=1;oh){if(t.charCodeAt(s+i)===47)return t.slice(s+i+1);if(i===0)return t.slice(s+i)}else r>h&&(e.charCodeAt(o+i)===47?p=i:i===0&&(p=0));break}var d=e.charCodeAt(o+i),y=t.charCodeAt(s+i);if(d!==y)break;d===47&&(p=i)}var f="";for(i=o+p+1;i<=n;++i)(i===n||e.charCodeAt(i)===47)&&(f.length===0?f+="..":f+="/..");return f.length>0?f+t.slice(s+p):(s+=p,t.charCodeAt(s)===47&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(O(e),e.length===0)return".";for(var t=e.charCodeAt(0),o=t===47,n=-1,r=!0,s=e.length-1;s>=1;--s)if(t=e.charCodeAt(s),t===47){if(!r){n=s;break}}else r=!1;return n===-1?o?"/":".":o&&n===1?"//":e.slice(0,n)},basename:function(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');O(e);var o=0,n=-1,r=!0,s;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var a=t.length-1,c=-1;for(s=e.length-1;s>=0;--s){var h=e.charCodeAt(s);if(h===47){if(!r){o=s+1;break}}else c===-1&&(r=!1,c=s+1),a>=0&&(h===t.charCodeAt(a)?--a===-1&&(n=s):(a=-1,n=c))}return o===n?n=c:n===-1&&(n=e.length),e.slice(o,n)}else{for(s=e.length-1;s>=0;--s)if(e.charCodeAt(s)===47){if(!r){o=s+1;break}}else n===-1&&(r=!1,n=s+1);return n===-1?"":e.slice(o,n)}},extname:function(e){O(e);for(var t=-1,o=0,n=-1,r=!0,s=0,a=e.length-1;a>=0;--a){var c=e.charCodeAt(a);if(c===47){if(!r){o=a+1;break}continue}n===-1&&(r=!1,n=a+1),c===46?t===-1?t=a:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||n===-1||s===0||s===1&&t===n-1&&t===o+1?"":e.slice(t,n)},format:function(e){if(e===null||typeof e!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return Bo("/",e)},parse:function(e){O(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;var o=e.charCodeAt(0),n=o===47,r;n?(t.root="/",r=1):r=0;for(var s=-1,a=0,c=-1,h=!0,p=e.length-1,i=0;p>=r;--p){if(o=e.charCodeAt(p),o===47){if(!h){a=p+1;break}continue}c===-1&&(h=!1,c=p+1),o===46?s===-1?s=p:i!==1&&(i=1):s!==-1&&(i=-1)}return s===-1||c===-1||i===0||i===1&&s===c-1&&s===a+1?c!==-1&&(a===0&&n?t.base=t.name=e.slice(1,c):t.base=t.name=e.slice(a,c)):(a===0&&n?(t.name=e.slice(1,s),t.base=e.slice(1,c)):(t.name=e.slice(a,s),t.base=e.slice(a,c)),t.ext=e.slice(s,c)),a>0?t.dir=e.slice(0,a-1):n&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};j.posix=j;function Qe(e,t){return function(){return e.apply(t,arguments)}}const{toString:xo}=Object.prototype,{getPrototypeOf:de}=Object,W=(e=>t=>{const o=xo.call(t);return e[o]||(e[o]=o.slice(8,-1).toLowerCase())})(Object.create(null)),P=e=>(e=e.toLowerCase(),t=>W(t)===e),J=e=>t=>typeof t===e,{isArray:L}=Array,U=J("undefined");function No(e){return e!==null&&!U(e)&&e.constructor!==null&&!U(e.constructor)&&v(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Xe=P("ArrayBuffer");function Lo(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Xe(e.buffer),t}const qo=J("string"),v=J("function"),Ze=J("number"),V=e=>e!==null&&typeof e=="object",jo=e=>e===!0||e===!1,z=e=>{if(W(e)!=="object")return!1;const t=de(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Uo=P("Date"),Fo=P("File"),_o=P("Blob"),Io=P("FileList"),zo=e=>V(e)&&v(e.pipe),Mo=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||v(e.append)&&((t=W(e))==="formdata"||t==="object"&&v(e.toString)&&e.toString()==="[object FormData]"))},Ho=P("URLSearchParams"),$o=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function F(e,t,{allOwnKeys:o=!1}={}){if(e===null||typeof e>"u")return;let n,r;if(typeof e!="object"&&(e=[e]),L(e))for(n=0,r=e.length;n0;)if(r=o[n],t===r.toLowerCase())return r;return null}const tt=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),ot=e=>!U(e)&&e!==tt;function ae(){const{caseless:e}=ot(this)&&this||{},t={},o=(n,r)=>{const s=e&&et(t,r)||r;z(t[s])&&z(n)?t[s]=ae(t[s],n):z(n)?t[s]=ae({},n):L(n)?t[s]=n.slice():t[s]=n};for(let n=0,r=arguments.length;n(F(t,(r,s)=>{o&&v(r)?e[s]=Qe(r,o):e[s]=r},{allOwnKeys:n}),e),Jo=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Vo=(e,t,o,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),o&&Object.assign(e.prototype,o)},Ko=(e,t,o,n)=>{let r,s,a;const c={};if(t=t||{},e==null)return t;do{for(r=Object.getOwnPropertyNames(e),s=r.length;s-- >0;)a=r[s],(!n||n(a,e,t))&&!c[a]&&(t[a]=e[a],c[a]=!0);e=o!==!1&&de(e)}while(e&&(!o||o(e,t))&&e!==Object.prototype);return t},Yo=(e,t,o)=>{e=String(e),(o===void 0||o>e.length)&&(o=e.length),o-=t.length;const n=e.indexOf(t,o);return n!==-1&&n===o},Go=e=>{if(!e)return null;if(L(e))return e;let t=e.length;if(!Ze(t))return null;const o=new Array(t);for(;t-- >0;)o[t]=e[t];return o},Qo=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&de(Uint8Array)),Xo=(e,t)=>{const o=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=o.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},Zo=(e,t)=>{let o;const n=[];for(;(o=e.exec(t))!==null;)n.push(o);return n},en=P("HTMLFormElement"),tn=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,o,n){return o.toUpperCase()+n}),Oe=(({hasOwnProperty:e})=>(t,o)=>e.call(t,o))(Object.prototype),on=P("RegExp"),nt=(e,t)=>{const o=Object.getOwnPropertyDescriptors(e),n={};F(o,(r,s)=>{let a;(a=t(r,s,e))!==!1&&(n[s]=a||r)}),Object.defineProperties(e,n)},nn=e=>{nt(e,(t,o)=>{if(v(e)&&["arguments","caller","callee"].indexOf(o)!==-1)return!1;const n=e[o];if(v(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+o+"'")})}})},rn=(e,t)=>{const o={},n=r=>{r.forEach(s=>{o[s]=!0})};return L(e)?n(e):n(String(e).split(t)),o},sn=()=>{},an=(e,t)=>(e=+e,Number.isFinite(e)?e:t),X="abcdefghijklmnopqrstuvwxyz",Te="0123456789",rt={DIGIT:Te,ALPHA:X,ALPHA_DIGIT:X+X.toUpperCase()+Te},cn=(e=16,t=rt.ALPHA_DIGIT)=>{let o="";const{length:n}=t;for(;e--;)o+=t[Math.random()*n|0];return o};function un(e){return!!(e&&v(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const ln=e=>{const t=new Array(10),o=(n,r)=>{if(V(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[r]=n;const s=L(n)?[]:{};return F(n,(a,c)=>{const h=o(a,r+1);!U(h)&&(s[c]=h)}),t[r]=void 0,s}}return n};return o(e,0)},hn=P("AsyncFunction"),pn=e=>e&&(V(e)||v(e))&&v(e.then)&&v(e.catch),l={isArray:L,isArrayBuffer:Xe,isBuffer:No,isFormData:Mo,isArrayBufferView:Lo,isString:qo,isNumber:Ze,isBoolean:jo,isObject:V,isPlainObject:z,isUndefined:U,isDate:Uo,isFile:Fo,isBlob:_o,isRegExp:on,isFunction:v,isStream:zo,isURLSearchParams:Ho,isTypedArray:Qo,isFileList:Io,forEach:F,merge:ae,extend:Wo,trim:$o,stripBOM:Jo,inherits:Vo,toFlatObject:Ko,kindOf:W,kindOfTest:P,endsWith:Yo,toArray:Go,forEachEntry:Xo,matchAll:Zo,isHTMLForm:en,hasOwnProperty:Oe,hasOwnProp:Oe,reduceDescriptors:nt,freezeMethods:nn,toObjectSet:rn,toCamelCase:tn,noop:sn,toFiniteNumber:an,findKey:et,global:tt,isContextDefined:ot,ALPHABET:rt,generateString:cn,isSpecCompliantForm:un,toJSONObject:ln,isAsyncFn:hn,isThenable:pn};function g(e,t,o,n,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),o&&(this.config=o),n&&(this.request=n),r&&(this.response=r)}l.inherits(g,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:l.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const st=g.prototype,at={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{at[e]={value:e}});Object.defineProperties(g,at);Object.defineProperty(st,"isAxiosError",{value:!0});g.from=(e,t,o,n,r,s)=>{const a=Object.create(st);return l.toFlatObject(e,a,function(c){return c!==Error.prototype},c=>c!=="isAxiosError"),g.call(a,e.message,t,o,n,r),a.cause=e,a.name=e.name,s&&Object.assign(a,s),a};const fn=null;function ie(e){return l.isPlainObject(e)||l.isArray(e)}function it(e){return l.endsWith(e,"[]")?e.slice(0,-2):e}function Ae(e,t,o){return e?e.concat(t).map(function(n,r){return n=it(n),!o&&r?"["+n+"]":n}).join(o?".":""):t}function dn(e){return l.isArray(e)&&!e.some(ie)}const mn=l.toFlatObject(l,{},null,function(e){return/^is[A-Z]/.test(e)});function K(e,t,o){if(!l.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,o=l.toFlatObject(o,{metaTokens:!0,dots:!1,indexes:!1},!1,function(f,m){return!l.isUndefined(m[f])});const n=o.metaTokens,r=o.visitor||p,s=o.dots,a=o.indexes,c=(o.Blob||typeof Blob<"u"&&Blob)&&l.isSpecCompliantForm(t);if(!l.isFunction(r))throw new TypeError("visitor must be a function");function h(f){if(f===null)return"";if(l.isDate(f))return f.toISOString();if(!c&&l.isBlob(f))throw new g("Blob is not supported. Use a Buffer instead.");return l.isArrayBuffer(f)||l.isTypedArray(f)?c&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function p(f,m,w){let S=f;if(f&&!w&&typeof f=="object"){if(l.endsWith(m,"{}"))m=n?m:m.slice(0,-2),f=JSON.stringify(f);else if(l.isArray(f)&&dn(f)||(l.isFileList(f)||l.endsWith(m,"[]"))&&(S=l.toArray(f)))return m=it(m),S.forEach(function(G,kt){!(l.isUndefined(G)||G===null)&&t.append(a===!0?Ae([m],kt,s):a===null?m:m+"[]",h(G))}),!1}return ie(f)?!0:(t.append(Ae(w,m,s),h(f)),!1)}const i=[],d=Object.assign(mn,{defaultVisitor:p,convertValue:h,isVisitable:ie});function y(f,m){if(!l.isUndefined(f)){if(i.indexOf(f)!==-1)throw Error("Circular reference detected in "+m.join("."));i.push(f),l.forEach(f,function(w,S){(!(l.isUndefined(w)||w===null)&&r.call(t,w,l.isString(S)?S.trim():S,m,d))===!0&&y(w,m?m.concat(S):[S])}),i.pop()}}if(!l.isObject(e))throw new TypeError("data must be an object");return y(e),t}function Pe(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(o){return t[o]})}function me(e,t){this._pairs=[],e&&K(e,this,t)}const ct=me.prototype;ct.append=function(e,t){this._pairs.push([e,t])};ct.toString=function(e){const t=e?function(o){return e.call(this,o,Pe)}:Pe;return this._pairs.map(function(o){return t(o[0])+"="+t(o[1])},"").join("&")};function gn(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ut(e,t,o){if(!t)return e;const n=o&&o.encode||gn,r=o&&o.serialize;let s;if(r?s=r(t,o):s=l.isURLSearchParams(t)?t.toString():new me(t,o).toString(n),s){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class yn{constructor(){this.handlers=[]}use(t,o,n){return this.handlers.push({fulfilled:t,rejected:o,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){l.forEach(this.handlers,function(o){o!==null&&t(o)})}}const Re=yn,lt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},bn=typeof URLSearchParams<"u"?URLSearchParams:me,wn=typeof FormData<"u"?FormData:null,Sn=typeof Blob<"u"?Blob:null,kn={isBrowser:!0,classes:{URLSearchParams:bn,FormData:wn,Blob:Sn},protocols:["http","https","file","blob","url","data"]},ht=typeof window<"u"&&typeof document<"u",vn=(e=>ht&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),On=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),Tn=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ht,hasStandardBrowserEnv:vn,hasStandardBrowserWebWorkerEnv:On},Symbol.toStringTag,{value:"Module"})),A={...Tn,...kn};function An(e,t){return K(e,new A.classes.URLSearchParams,Object.assign({visitor:function(o,n,r,s){return A.isNode&&l.isBuffer(o)?(this.append(n,o.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}function Pn(e){return l.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Rn(e){const t={},o=Object.keys(e);let n;const r=o.length;let s;for(n=0;n=o.length;return a=!a&&l.isArray(r)?r.length:a,h?(l.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!c):((!r[a]||!l.isObject(r[a]))&&(r[a]=[]),t(o,n,r[a],s)&&l.isArray(r[a])&&(r[a]=Rn(r[a])),!c)}if(l.isFormData(e)&&l.isFunction(e.entries)){const o={};return l.forEachEntry(e,(n,r)=>{t(Pn(n),r,o,0)}),o}return null}function En(e,t,o){if(l.isString(e))try{return(t||JSON.parse)(e),l.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(o||JSON.stringify)(e)}const ge={transitional:lt,adapter:["xhr","http"],transformRequest:[function(e,t){const o=t.getContentType()||"",n=o.indexOf("application/json")>-1,r=l.isObject(e);if(r&&l.isHTMLForm(e)&&(e=new FormData(e)),l.isFormData(e))return n&&n?JSON.stringify(pt(e)):e;if(l.isArrayBuffer(e)||l.isBuffer(e)||l.isStream(e)||l.isFile(e)||l.isBlob(e))return e;if(l.isArrayBufferView(e))return e.buffer;if(l.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(r){if(o.indexOf("application/x-www-form-urlencoded")>-1)return An(e,this.formSerializer).toString();if((s=l.isFileList(e))||o.indexOf("multipart/form-data")>-1){const a=this.env&&this.env.FormData;return K(s?{"files[]":e}:e,a&&new a,this.formSerializer)}}return r||n?(t.setContentType("application/json",!1),En(e)):e}],transformResponse:[function(e){const t=this.transitional||ge.transitional,o=t&&t.forcedJSONParsing,n=this.responseType==="json";if(e&&l.isString(e)&&(o&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(s){if(r)throw s.name==="SyntaxError"?g.from(s,g.ERR_BAD_RESPONSE,this,null,this.response):s}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:A.classes.FormData,Blob:A.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};l.forEach(["delete","get","head","post","put","patch"],e=>{ge.headers[e]={}});const ye=ge,Cn=l.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Dn=e=>{const t={};let o,n,r;return e&&e.split(` +`).forEach(function(s){r=s.indexOf(":"),o=s.substring(0,r).trim().toLowerCase(),n=s.substring(r+1).trim(),!(!o||t[o]&&Cn[o])&&(o==="set-cookie"?t[o]?t[o].push(n):t[o]=[n]:t[o]=t[o]?t[o]+", "+n:n)}),t},Ee=Symbol("internals");function q(e){return e&&String(e).trim().toLowerCase()}function M(e){return e===!1||e==null?e:l.isArray(e)?e.map(M):String(e)}function Bn(e){const t=Object.create(null),o=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=o.exec(e);)t[n[1]]=n[2];return t}const xn=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Z(e,t,o,n,r){if(l.isFunction(n))return n.call(this,t,o);if(r&&(t=o),!!l.isString(t)){if(l.isString(n))return t.indexOf(n)!==-1;if(l.isRegExp(n))return n.test(t)}}function Nn(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,o,n)=>o.toUpperCase()+n)}function Ln(e,t){const o=l.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+o,{value:function(r,s,a){return this[n].call(this,t,r,s,a)},configurable:!0})})}let Y=class{constructor(e){e&&this.set(e)}set(e,t,o){const n=this;function r(a,c,h){const p=q(c);if(!p)throw new Error("header name must be a non-empty string");const i=l.findKey(n,p);(!i||n[i]===void 0||h===!0||h===void 0&&n[i]!==!1)&&(n[i||c]=M(a))}const s=(a,c)=>l.forEach(a,(h,p)=>r(h,p,c));return l.isPlainObject(e)||e instanceof this.constructor?s(e,t):l.isString(e)&&(e=e.trim())&&!xn(e)?s(Dn(e),t):e!=null&&r(t,e,o),this}get(e,t){if(e=q(e),e){const o=l.findKey(this,e);if(o){const n=this[o];if(!t)return n;if(t===!0)return Bn(n);if(l.isFunction(t))return t.call(this,n,o);if(l.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=q(e),e){const o=l.findKey(this,e);return!!(o&&this[o]!==void 0&&(!t||Z(this,this[o],o,t)))}return!1}delete(e,t){const o=this;let n=!1;function r(s){if(s=q(s),s){const a=l.findKey(o,s);a&&(!t||Z(o,o[a],a,t))&&(delete o[a],n=!0)}}return l.isArray(e)?e.forEach(r):r(e),n}clear(e){const t=Object.keys(this);let o=t.length,n=!1;for(;o--;){const r=t[o];(!e||Z(this,this[r],r,e,!0))&&(delete this[r],n=!0)}return n}normalize(e){const t=this,o={};return l.forEach(this,(n,r)=>{const s=l.findKey(o,r);if(s){t[s]=M(n),delete t[r];return}const a=e?Nn(r):String(r).trim();a!==r&&delete t[r],t[a]=M(n),o[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return l.forEach(this,(o,n)=>{o!=null&&o!==!1&&(t[n]=e&&l.isArray(o)?o.join(", "):o)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const o=new this(e);return t.forEach(n=>o.set(n)),o}static accessor(e){const t=(this[Ee]=this[Ee]={accessors:{}}).accessors,o=this.prototype;function n(r){const s=q(r);t[s]||(Ln(o,r),t[s]=!0)}return l.isArray(e)?e.forEach(n):n(e),this}};Y.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);l.reduceDescriptors(Y.prototype,({value:e},t)=>{let o=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[o]=n}}});l.freezeMethods(Y);const E=Y;function ee(e,t){const o=this||ye,n=t||o,r=E.from(n.headers);let s=n.data;return l.forEach(e,function(a){s=a.call(o,s,r.normalize(),t?t.status:void 0)}),r.normalize(),s}function ft(e){return!!(e&&e.__CANCEL__)}function _(e,t,o){g.call(this,e??"canceled",g.ERR_CANCELED,t,o),this.name="CanceledError"}l.inherits(_,g,{__CANCEL__:!0});function qn(e,t,o){const n=o.config.validateStatus;!o.status||!n||n(o.status)?e(o):t(new g("Request failed with status code "+o.status,[g.ERR_BAD_REQUEST,g.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o))}const jn=A.hasStandardBrowserEnv?{write(e,t,o,n,r,s){const a=[e+"="+encodeURIComponent(t)];l.isNumber(o)&&a.push("expires="+new Date(o).toGMTString()),l.isString(n)&&a.push("path="+n),l.isString(r)&&a.push("domain="+r),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Un(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Fn(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function dt(e,t){return e&&!Un(t)?Fn(e,t):t}const _n=A.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let o;function n(r){let s=r;return e&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return o=n(window.location.href),function(r){const s=l.isString(r)?n(r):r;return s.protocol===o.protocol&&s.host===o.host}}():function(){return function(){return!0}}();function In(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function zn(e,t){e=e||10;const o=new Array(e),n=new Array(e);let r=0,s=0,a;return t=t!==void 0?t:1e3,function(c){const h=Date.now(),p=n[s];a||(a=h),o[r]=c,n[r]=h;let i=s,d=0;for(;i!==r;)d+=o[i++],i=i%e;if(r=(r+1)%e,r===s&&(s=(s+1)%e),h-a{const s=r.loaded,a=r.lengthComputable?r.total:void 0,c=s-o,h=n(c),p=s<=a;o=s;const i={loaded:s,total:a,progress:a?s/a:void 0,bytes:c,rate:h||void 0,estimated:h&&a&&p?(a-s)/h:void 0,event:r};i[t?"download":"upload"]=!0,e(i)}}const Mn=typeof XMLHttpRequest<"u",Hn=Mn&&function(e){return new Promise(function(t,o){let n=e.data;const r=E.from(e.headers).normalize();let{responseType:s,withXSRFToken:a}=e,c;function h(){e.cancelToken&&e.cancelToken.unsubscribe(c),e.signal&&e.signal.removeEventListener("abort",c)}let p;if(l.isFormData(n)){if(A.hasStandardBrowserEnv||A.hasStandardBrowserWebWorkerEnv)r.setContentType(!1);else if((p=r.getContentType())!==!1){const[m,...w]=p?p.split(";").map(S=>S.trim()).filter(Boolean):[];r.setContentType([m||"multipart/form-data",...w].join("; "))}}let i=new XMLHttpRequest;if(e.auth){const m=e.auth.username||"",w=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";r.set("Authorization","Basic "+btoa(m+":"+w))}const d=dt(e.baseURL,e.url);i.open(e.method.toUpperCase(),ut(d,e.params,e.paramsSerializer),!0),i.timeout=e.timeout;function y(){if(!i)return;const m=E.from("getAllResponseHeaders"in i&&i.getAllResponseHeaders()),w={data:!s||s==="text"||s==="json"?i.responseText:i.response,status:i.status,statusText:i.statusText,headers:m,config:e,request:i};qn(function(S){t(S),h()},function(S){o(S),h()},w),i=null}if("onloadend"in i?i.onloadend=y:i.onreadystatechange=function(){!i||i.readyState!==4||i.status===0&&!(i.responseURL&&i.responseURL.indexOf("file:")===0)||setTimeout(y)},i.onabort=function(){i&&(o(new g("Request aborted",g.ECONNABORTED,e,i)),i=null)},i.onerror=function(){o(new g("Network Error",g.ERR_NETWORK,e,i)),i=null},i.ontimeout=function(){let m=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const w=e.transitional||lt;e.timeoutErrorMessage&&(m=e.timeoutErrorMessage),o(new g(m,w.clarifyTimeoutError?g.ETIMEDOUT:g.ECONNABORTED,e,i)),i=null},A.hasStandardBrowserEnv&&(a&&l.isFunction(a)&&(a=a(e)),a||a!==!1&&_n(d))){const m=e.xsrfHeaderName&&e.xsrfCookieName&&jn.read(e.xsrfCookieName);m&&r.set(e.xsrfHeaderName,m)}n===void 0&&r.setContentType(null),"setRequestHeader"in i&&l.forEach(r.toJSON(),function(m,w){i.setRequestHeader(w,m)}),l.isUndefined(e.withCredentials)||(i.withCredentials=!!e.withCredentials),s&&s!=="json"&&(i.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&i.addEventListener("progress",Ce(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&i.upload&&i.upload.addEventListener("progress",Ce(e.onUploadProgress)),(e.cancelToken||e.signal)&&(c=m=>{i&&(o(!m||m.type?new _(null,e,i):m),i.abort(),i=null)},e.cancelToken&&e.cancelToken.subscribe(c),e.signal&&(e.signal.aborted?c():e.signal.addEventListener("abort",c)));const f=In(d);if(f&&A.protocols.indexOf(f)===-1){o(new g("Unsupported protocol "+f+":",g.ERR_BAD_REQUEST,e));return}i.send(n||null)})},ce={http:fn,xhr:Hn};l.forEach(ce,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const De=e=>`- ${e}`,$n=e=>l.isFunction(e)||e===null||e===!1,mt={getAdapter:e=>{e=l.isArray(e)?e:[e];const{length:t}=e;let o,n;const r={};for(let s=0;s`adapter ${c} `+(h===!1?"is not supported by the environment":"is not available in the build"));let a=t?s.length>1?`since : +`+s.map(De).join(` +`):" "+De(s[0]):"as no adapter specified";throw new g("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return n},adapters:ce};function te(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new _(null,e)}function Be(e){return te(e),e.headers=E.from(e.headers),e.data=ee.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),mt.getAdapter(e.adapter||ye.adapter)(e).then(function(t){return te(e),t.data=ee.call(e,e.transformResponse,t),t.headers=E.from(t.headers),t},function(t){return ft(t)||(te(e),t&&t.response&&(t.response.data=ee.call(e,e.transformResponse,t.response),t.response.headers=E.from(t.response.headers))),Promise.reject(t)})}const xe=e=>e instanceof E?e.toJSON():e;function N(e,t){t=t||{};const o={};function n(p,i,d){return l.isPlainObject(p)&&l.isPlainObject(i)?l.merge.call({caseless:d},p,i):l.isPlainObject(i)?l.merge({},i):l.isArray(i)?i.slice():i}function r(p,i,d){if(l.isUndefined(i)){if(!l.isUndefined(p))return n(void 0,p,d)}else return n(p,i,d)}function s(p,i){if(!l.isUndefined(i))return n(void 0,i)}function a(p,i){if(l.isUndefined(i)){if(!l.isUndefined(p))return n(void 0,p)}else return n(void 0,i)}function c(p,i,d){if(d in t)return n(p,i);if(d in e)return n(void 0,p)}const h={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:c,headers:(p,i)=>r(xe(p),xe(i),!0)};return l.forEach(Object.keys(Object.assign({},e,t)),function(p){const i=h[p]||r,d=i(e[p],t[p],p);l.isUndefined(d)&&i!==c||(o[p]=d)}),o}const gt="1.6.2",be={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{be[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}});const Ne={};be.transitional=function(e,t,o){function n(r,s){return"[Axios v"+gt+"] Transitional option '"+r+"'"+s+(o?". "+o:"")}return(r,s,a)=>{if(e===!1)throw new g(n(s," has been removed"+(t?" in "+t:"")),g.ERR_DEPRECATED);return t&&!Ne[s]&&(Ne[s]=!0,console.warn(n(s," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(r,s,a):!0}};function Wn(e,t,o){if(typeof e!="object")throw new g("options must be an object",g.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let r=n.length;for(;r-- >0;){const s=n[r],a=t[s];if(a){const c=e[s],h=c===void 0||a(c,s,e);if(h!==!0)throw new g("option "+s+" must be "+h,g.ERR_BAD_OPTION_VALUE);continue}if(o!==!0)throw new g("Unknown option "+s,g.ERR_BAD_OPTION)}}const ue={assertOptions:Wn,validators:be},C=ue.validators;let $=class{constructor(e){this.defaults=e,this.interceptors={request:new Re,response:new Re}}request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=N(this.defaults,t);const{transitional:o,paramsSerializer:n,headers:r}=t;o!==void 0&&ue.assertOptions(o,{silentJSONParsing:C.transitional(C.boolean),forcedJSONParsing:C.transitional(C.boolean),clarifyTimeoutError:C.transitional(C.boolean)},!1),n!=null&&(l.isFunction(n)?t.paramsSerializer={serialize:n}:ue.assertOptions(n,{encode:C.function,serialize:C.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=r&&l.merge(r.common,r[t.method]);r&&l.forEach(["delete","get","head","post","put","patch","common"],f=>{delete r[f]}),t.headers=E.concat(s,r);const a=[];let c=!0;this.interceptors.request.forEach(function(f){typeof f.runWhen=="function"&&f.runWhen(t)===!1||(c=c&&f.synchronous,a.unshift(f.fulfilled,f.rejected))});const h=[];this.interceptors.response.forEach(function(f){h.push(f.fulfilled,f.rejected)});let p,i=0,d;if(!c){const f=[Be.bind(this),void 0];for(f.unshift.apply(f,a),f.push.apply(f,h),d=f.length,p=Promise.resolve(t);i{if(!n._listeners)return;let s=n._listeners.length;for(;s-- >0;)n._listeners[s](r);n._listeners=null}),this.promise.then=r=>{let s;const a=new Promise(c=>{n.subscribe(c),s=c}).then(r);return a.cancel=function(){n.unsubscribe(s)},a},t(function(r,s,a){n.reason||(n.reason=new _(r,s,a),o(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const o=this._listeners.indexOf(t);o!==-1&&this._listeners.splice(o,1)}static source(){let t;return{token:new yt(function(o){t=o}),cancel:t}}};const Vn=Jn;function Kn(e){return function(t){return e.apply(null,t)}}function Yn(e){return l.isObject(e)&&e.isAxiosError===!0}const le={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(le).forEach(([e,t])=>{le[t]=e});const Gn=le;function bt(e){const t=new H(e),o=Qe(H.prototype.request,t);return l.extend(o,H.prototype,t,{allOwnKeys:!0}),l.extend(o,t,null,{allOwnKeys:!0}),o.create=function(n){return bt(N(e,n))},o}const b=bt(ye);b.Axios=H;b.CanceledError=_;b.CancelToken=Vn;b.isCancel=ft;b.VERSION=gt;b.toFormData=K;b.AxiosError=g;b.Cancel=b.CanceledError;b.all=function(e){return Promise.all(e)};b.spread=Kn;b.isAxiosError=Yn;b.mergeConfig=N;b.AxiosHeaders=E;b.formToJSON=e=>pt(l.isHTMLForm(e)?new FormData(e):e);b.getAdapter=mt.getAdapter;b.HttpStatusCode=Gn;b.default=b;const wt=b,{Axios:Yr,AxiosError:Gr,CanceledError:Qr,isCancel:Xr,CancelToken:Zr,VERSION:es,all:ts,Cancel:os,isAxiosError:ns,spread:rs,toFormData:ss,AxiosHeaders:as,HttpStatusCode:I,formToJSON:is,getAdapter:cs,mergeConfig:us}=wt;var B=null;typeof WebSocket<"u"?B=WebSocket:typeof MozWebSocket<"u"?B=MozWebSocket:typeof global<"u"?B=global.WebSocket||global.MozWebSocket:typeof window<"u"?B=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(B=self.WebSocket||self.MozWebSocket);const Qn=B,oe={SCHEMA_DIR_RELATIVE_PATH:"./../schemas/",SCHEMA_FILENAME_PAYLOAD:"payload.schema.json",SCHEMA_FILENAME_RESPONSE:"response.schema.json",SIYUAN_DEFAULT_BASE_URL:"http://localhost:6806/",SIYUAN_DEFAULT_TOKEN:"",REQUEST_TIMEOUT:6e4};var Le,qe,je,Ue,Fe;const he=class u{constructor(t={},o="xhr"){R(this,"_type","xhr"),R(this,"_baseURL",((qe=(Le=globalThis.top)==null?void 0:Le.document)==null?void 0:qe.baseURI)??((Ue=(je=globalThis.parent)==null?void 0:je.document)==null?void 0:Ue.baseURI)??((Fe=globalThis.location)==null?void 0:Fe.origin)??oe.SIYUAN_DEFAULT_BASE_URL),R(this,"_token",oe.SIYUAN_DEFAULT_TOKEN),R(this,"_axios",wt.create({baseURL:this._baseURL,timeout:oe.REQUEST_TIMEOUT,headers:{Authorization:`Token ${this._token}`}})),R(this,"_fetch",Co.create({baseURL:this._baseURL,headers:{Authorization:`Token ${this._token}`}})),this._setClientType(o),this._updateOptions(t,o)}static headers2record(t){const o={};return t.forEach((n,r)=>{o[r]=n}),o}static entries2record(t){const o={};for(const[n,r]of t)o[n]=r;return o}_setClientType(t){this._type=t}_updateOptions(t,o=this._type){switch(this._token=t.token??this._token,this._baseURL=t.baseURL??this._baseURL,o){case"fetch":const n=t;if(n.token){const r="Authorization",s=`Token ${t.token}`;Array.isArray(n.headers)?n.headers.push([r,s]):n.headers instanceof Headers?n.headers.set(r,s):typeof n.headers=="object"?n.headers[r]=s:n.headers={[r]:s},delete t.token}this._fetch=this._fetch.create(n);break;case"xhr":default:for(const[r,s]of Object.entries(t))switch(r){case"token":this._axios.defaults.headers.Authorization=`Token ${this._token}`;break;default:this._axios.defaults[r]=s;break}break}this._baseURL=t.baseURL??this._baseURL}broadcast(t,o,n){const r=(n==null?void 0:n.baseURL)??this._baseURL,s=(n==null?void 0:n.token)??this._token,a=new URLSearchParams(t);s&&a.set("token",s);const c=new URL(r);return c.protocol=c.protocol.replace(/^http/,"ws"),c.pathname=c.pathname.endsWith("/")?`${c.pathname}${u.ws.broadcast.pathname.substring(1)}`:`${c.pathname}${u.ws.broadcast.pathname}`,c.search=a.toString(),new Qn(c,o)}async upload(t,o){const n=new FormData;return n.append("assetsDirPath",t.assetsDirPath??"/assets/"),t.files.forEach(r=>n.append("file[]",r)),await this._request(u.api.asset.upload.pathname,u.api.asset.upload.method,n,o)}async getBlockAttrs(t,o){return await this._request(u.api.attr.getBlockAttrs.pathname,u.api.attr.getBlockAttrs.method,t,o)}async getBookmarkLabels(t){return await this._request(u.api.attr.getBookmarkLabels.pathname,u.api.attr.getBookmarkLabels.method,void 0,t)}async setBlockAttrs(t,o){return await this._request(u.api.attr.setBlockAttrs.pathname,u.api.attr.setBlockAttrs.method,t,o)}async appendBlock(t,o){return await this._request(u.api.block.appendBlock.pathname,u.api.block.appendBlock.method,t,o)}async deleteBlock(t,o){return await this._request(u.api.block.deleteBlock.pathname,u.api.block.deleteBlock.method,t,o)}async getBlockBreadcrumb(t,o){return await this._request(u.api.block.getBlockBreadcrumb.pathname,u.api.block.getBlockBreadcrumb.method,t,o)}async getBlockDOM(t,o){return await this._request(u.api.block.getBlockDOM.pathname,u.api.block.getBlockDOM.method,t,o)}async getBlockInfo(t,o){return await this._request(u.api.block.getBlockInfo.pathname,u.api.block.getBlockInfo.method,t,o)}async getBlockKramdown(t,o){return await this._request(u.api.block.getBlockKramdown.pathname,u.api.block.getBlockKramdown.method,t,o)}async getChildBlocks(t,o){return await this._request(u.api.block.getChildBlocks.pathname,u.api.block.getChildBlocks.method,t,o)}async getDocInfo(t,o){return await this._request(u.api.block.getDocInfo.pathname,u.api.block.getDocInfo.method,t,o)}async insertBlock(t,o){return await this._request(u.api.block.insertBlock.pathname,u.api.block.insertBlock.method,t,o)}async moveBlock(t,o){return await this._request(u.api.block.moveBlock.pathname,u.api.block.moveBlock.method,t,o)}async prependBlock(t,o){return await this._request(u.api.block.prependBlock.pathname,u.api.block.prependBlock.method,t,o)}async transferBlockRef(t,o){return await this._request(u.api.block.transferBlockRef.pathname,u.api.block.transferBlockRef.method,t,o)}async updateBlock(t,o){return await this._request(u.api.block.updateBlock.pathname,u.api.block.updateBlock.method,t,o)}async getChannelInfo(t,o){return await this._request(u.api.broadcast.getChannelInfo.pathname,u.api.broadcast.getChannelInfo.method,t,o)}async getChannels(t){return await this._request(u.api.broadcast.getChannels.pathname,u.api.broadcast.getChannels.method,void 0,t)}async postMessage(t,o){return await this._request(u.api.broadcast.postMessage.pathname,u.api.broadcast.postMessage.method,t,o)}async pandoc(t,o){return await this._request(u.api.convert.pandoc.pathname,u.api.convert.pandoc.method,t,o)}async exportResources(t,o){return await this._request(u.api.export.exportResources.pathname,u.api.export.exportResources.method,t,o)}async exportMdContent(t,o){return await this._request(u.api.export.exportMdContent.pathname,u.api.export.exportMdContent.method,t,o)}async getFile(t,o="text",n){return await this._request(u.api.file.getFile.pathname,u.api.file.getFile.method,t,n,!1,o)}async putFile(t,o){t.file!==void 0&&!(t.file instanceof File)&&(t.file=new File([t.file],t.path.split("/").pop()));const n=new FormData;for(const[r,s]of Object.entries(t))t.hasOwnProperty(r)&&(s instanceof Blob?n.append(r,s):n.append(r,String(s)));return await this._request(u.api.file.putFile.pathname,u.api.file.putFile.method,n,o)}async readDir(t,o){return await this._request(u.api.file.readDir.pathname,u.api.file.readDir.method,t,o)}async removeFile(t,o){return await this._request(u.api.file.removeFile.pathname,u.api.file.removeFile.method,t,o)}async renameFile(t,o){return await this._request(u.api.file.renameFile.pathname,u.api.file.renameFile.method,t,o)}async createDocWithMd(t,o){return await this._request(u.api.filetree.createDocWithMd.pathname,u.api.filetree.createDocWithMd.method,t,o)}async getDoc(t,o){return await this._request(u.api.filetree.getDoc.pathname,u.api.filetree.getDoc.method,t,o)}async getHPathByID(t,o){return await this._request(u.api.filetree.getHPathByID.pathname,u.api.filetree.getHPathByID.method,t,o)}async getHPathByPath(t,o){return await this._request(u.api.filetree.getHPathByPath.pathname,u.api.filetree.getHPathByPath.method,t,o)}async getIDsByHPath(t,o){return await this._request(u.api.filetree.getIDsByHPath.pathname,u.api.filetree.getIDsByHPath.method,t,o)}async listDocsByPath(t,o){return await this._request(u.api.filetree.listDocsByPath.pathname,u.api.filetree.listDocsByPath.method,t,o)}async moveDocs(t,o){return await this._request(u.api.filetree.moveDocs.pathname,u.api.filetree.moveDocs.method,t,o)}async removeDoc(t,o){return await this._request(u.api.filetree.removeDoc.pathname,u.api.filetree.removeDoc.method,t,o)}async renameDoc(t,o){return await this._request(u.api.filetree.renameDoc.pathname,u.api.filetree.renameDoc.method,t,o)}async searchDocs(t,o){return await this._request(u.api.filetree.searchDocs.pathname,u.api.filetree.searchDocs.method,t,o)}async getDocHistoryContent(t,o){return await this._request(u.api.history.getDocHistoryContent.pathname,u.api.history.getDocHistoryContent.method,t,o)}async getHistoryItems(t,o){return await this._request(u.api.history.getHistoryItems.pathname,u.api.history.getHistoryItems.method,t,o)}async getShorthand(t,o){return await this._request(u.api.inbox.getShorthand.pathname,u.api.inbox.getShorthand.method,t,o)}async echo(t,o){if(t)switch(o??(o={type:this._type}),o==null?void 0:o.type){case"fetch":{const n={};t.headers&&(n.headers=t.headers),t.query&&(n.query=u.entries2record(t.query.entries())),o.options?Object.assign(n,o.options):o.options=n;break}case"xhr":{const n={};t.headers&&(n.headers=Array.isArray(t.headers)?u.entries2record(t.headers):t.headers instanceof Headers?u.headers2record(t.headers):t.headers),t.query&&(n.params=t.query),o.options?Object.assign(n,o.options):o.options=n;break}}return await this._request(u.api.network.echo.pathname,(t==null?void 0:t.method)??u.api.network.echo.method,t==null?void 0:t.body,o)}async forwardProxy(t,o){return await this._request(u.api.network.forwardProxy.pathname,u.api.network.forwardProxy.method,t,o)}async closeNotebook(t,o){return await this._request(u.api.notebook.closeNotebook.pathname,u.api.notebook.closeNotebook.method,t,o)}async createNotebook(t,o){return await this._request(u.api.notebook.createNotebook.pathname,u.api.notebook.createNotebook.method,t,o)}async getNotebookConf(t,o){return await this._request(u.api.notebook.getNotebookConf.pathname,u.api.notebook.getNotebookConf.method,t,o)}async lsNotebooks(t){return await this._request(u.api.notebook.lsNotebooks.pathname,u.api.notebook.lsNotebooks.method,void 0,t)}async openNotebook(t,o){return await this._request(u.api.notebook.openNotebook.pathname,u.api.notebook.openNotebook.method,t,o)}async removeNotebook(t,o){return await this._request(u.api.notebook.removeNotebook.pathname,u.api.notebook.removeNotebook.method,t,o)}async renameNotebook(t,o){return await this._request(u.api.notebook.renameNotebook.pathname,u.api.notebook.renameNotebook.method,t,o)}async setNotebookConf(t,o){return await this._request(u.api.notebook.setNotebookConf.pathname,u.api.notebook.setNotebookConf.method,t,o)}async pushErrMsg(t,o){return await this._request(u.api.notification.pushErrMsg.pathname,u.api.notification.pushErrMsg.method,t,o)}async pushMsg(t,o){return await this._request(u.api.notification.pushMsg.pathname,u.api.notification.pushMsg.method,t,o)}async sql(t,o){return await this._request(u.api.query.sql.pathname,u.api.query.sql.method,t,o)}async openRepoSnapshotDoc(t,o){return await this._request(u.api.repo.openRepoSnapshotDoc.pathname,u.api.repo.openRepoSnapshotDoc.method,t,o)}async fullTextSearchBlock(t,o){return await this._request(u.api.search.fullTextSearchBlock.pathname,u.api.search.fullTextSearchBlock.method,t,o)}async getSnippet(t,o){return await this._request(u.api.snippet.getSnippet.pathname,u.api.snippet.getSnippet.method,t,o)}async setSnippet(t,o){return await this._request(u.api.snippet.setSnippet.pathname,u.api.snippet.setSnippet.method,t,o)}async getLocalStorage(t){return await this._request(u.api.storage.getLocalStorage.pathname,u.api.storage.getLocalStorage.method,void 0,t)}async getRecentDocs(t){return await this._request(u.api.storage.getRecentDocs.pathname,u.api.storage.getRecentDocs.method,void 0,t)}async setLocalStorage(t,o){return await this._request(u.api.storage.setLocalStorage.pathname,u.api.storage.setLocalStorage.method,t,o)}async setLocalStorageVal(t,o){return await this._request(u.api.storage.setLocalStorageVal.pathname,u.api.storage.setLocalStorageVal.method,t,o)}async bootProgress(t){return await this._request(u.api.system.bootProgress.pathname,u.api.system.bootProgress.method,void 0,t)}async getConf(t){return await this._request(u.api.system.getConf.pathname,u.api.system.getConf.method,void 0,t)}async currentTime(t){return await this._request(u.api.system.currentTime.pathname,u.api.system.currentTime.method,void 0,t)}async version(t){return await this._request(u.api.system.version.pathname,u.api.system.version.method,void 0,t)}async render(t,o){return await this._request(u.api.template.render.pathname,u.api.template.render.method,t,o)}async renderSprig(t,o){return await this._request(u.api.template.renderSprig.pathname,u.api.template.renderSprig.method,t,o)}async _request(t,o,n,r,s=!0,a="json"){try{switch((r==null?void 0:r.type)??this._type){case"fetch":{const c=r==null?void 0:r.options;a=(()=>{switch(a){case"arraybuffer":return"arrayBuffer";case"document":return"text";default:return a}})();const h=await this._fetch(t,{method:o,body:n,responseType:a,onResponse:async p=>{switch(p.response.status){case I.Ok:switch(a){case"blob":p.response._data.contentType=p.response.headers.get("content-type");break;default:break}break;case I.Accepted:t===u.api.file.getFile.pathname&&this._parseFetchResponse(p.response._data);break;default:break}},...c});return s&&a==="json"&&typeof h=="object"?this._parseFetchResponse(h):h}case"xhr":default:{const c=r==null?void 0:r.options;a=(()=>{switch(a){case"arrayBuffer":return"arraybuffer";default:return a}})();const h=await this._axios.request({url:t,method:o,data:n,responseType:a,...c});switch(h.status){case I.Ok:if(s&&a==="json"&&typeof h.data=="object")return this._parseAxiosResponse(h);switch(a){case"blob":h.data.contentType=h.headers.getContentType();break;default:break}return h.data;case I.Accepted:return t===u.api.file.getFile.pathname?this._parseAxiosResponse(h):h.data;default:throw new Do(h)}}}}catch(c){throw c}}_parseFetchResponse(t){if(t.code===0)return t;throw new ke(t)}_parseAxiosResponse(t){if(t.data.code===0)return t.data;throw new ke(t.data,t)}};R(he,"ws",{broadcast:{pathname:"/ws/broadcast"}}),R(he,"api",{asset:{upload:{pathname:"/api/asset/upload",method:"POST"}},attr:{getBlockAttrs:{pathname:"/api/attr/getBlockAttrs",method:"POST"},getBookmarkLabels:{pathname:"/api/attr/getBookmarkLabels",method:"POST"},setBlockAttrs:{pathname:"/api/attr/setBlockAttrs",method:"POST"}},block:{appendBlock:{pathname:"/api/block/appendBlock",method:"POST"},deleteBlock:{pathname:"/api/block/deleteBlock",method:"POST"},getBlockBreadcrumb:{pathname:"/api/block/getBlockBreadcrumb",method:"POST"},getBlockDOM:{pathname:"/api/block/getBlockDOM",method:"POST"},getBlockInfo:{pathname:"/api/block/getBlockInfo",method:"POST"},getBlockKramdown:{pathname:"/api/block/getBlockKramdown",method:"POST"},getChildBlocks:{pathname:"/api/block/getChildBlocks",method:"POST"},getDocInfo:{pathname:"/api/block/getDocInfo",method:"POST"},insertBlock:{pathname:"/api/block/insertBlock",method:"POST"},moveBlock:{pathname:"/api/block/moveBlock",method:"POST"},prependBlock:{pathname:"/api/block/prependBlock",method:"POST"},transferBlockRef:{pathname:"/api/block/transferBlockRef",method:"POST"},updateBlock:{pathname:"/api/block/updateBlock",method:"POST"}},broadcast:{getChannelInfo:{pathname:"/api/broadcast/getChannelInfo",method:"POST"},getChannels:{pathname:"/api/broadcast/getChannels",method:"POST"},postMessage:{pathname:"/api/broadcast/postMessage",method:"POST"}},convert:{pandoc:{pathname:"/api/convert/pandoc",method:"POST"}},export:{exportMdContent:{pathname:"/api/export/exportMdContent",method:"POST"},exportResources:{pathname:"/api/export/exportResources",method:"POST"}},file:{getFile:{pathname:"/api/file/getFile",method:"POST"},putFile:{pathname:"/api/file/putFile",method:"POST"},readDir:{pathname:"/api/file/readDir",method:"POST"},removeFile:{pathname:"/api/file/removeFile",method:"POST"},renameFile:{pathname:"/api/file/renameFile",method:"POST"}},filetree:{createDocWithMd:{pathname:"/api/filetree/createDocWithMd",method:"POST"},getDoc:{pathname:"/api/filetree/getDoc",method:"POST"},getHPathByID:{pathname:"/api/filetree/getHPathByID",method:"POST"},getHPathByPath:{pathname:"/api/filetree/getHPathByPath",method:"POST"},getIDsByHPath:{pathname:"/api/filetree/getIDsByHPath",method:"POST"},listDocsByPath:{pathname:"/api/filetree/listDocsByPath",method:"POST"},moveDocs:{pathname:"/api/filetree/moveDocs",method:"POST"},removeDoc:{pathname:"/api/filetree/removeDoc",method:"POST"},renameDoc:{pathname:"/api/filetree/renameDoc",method:"POST"},searchDocs:{pathname:"/api/filetree/searchDocs",method:"POST"}},history:{getDocHistoryContent:{pathname:"/api/history/getDocHistoryContent",method:"POST"},getHistoryItems:{pathname:"/api/history/getHistoryItems",method:"POST"}},inbox:{getShorthand:{pathname:"/api/inbox/getShorthand",method:"POST"}},network:{echo:{pathname:"/api/network/echo",method:"POST"},forwardProxy:{pathname:"/api/network/forwardProxy",method:"POST"}},notebook:{closeNotebook:{pathname:"/api/notebook/closeNotebook",method:"POST"},createNotebook:{pathname:"/api/notebook/createNotebook",method:"POST"},getNotebookConf:{pathname:"/api/notebook/getNotebookConf",method:"POST"},lsNotebooks:{pathname:"/api/notebook/lsNotebooks",method:"POST"},openNotebook:{pathname:"/api/notebook/openNotebook",method:"POST"},removeNotebook:{pathname:"/api/notebook/removeNotebook",method:"POST"},renameNotebook:{pathname:"/api/notebook/renameNotebook",method:"POST"},setNotebookConf:{pathname:"/api/notebook/setNotebookConf",method:"POST"}},notification:{pushErrMsg:{pathname:"/api/notification/pushErrMsg",method:"POST"},pushMsg:{pathname:"/api/notification/pushMsg",method:"POST"}},query:{sql:{pathname:"/api/query/sql",method:"POST"}},repo:{openRepoSnapshotDoc:{pathname:"/api/repo/openRepoSnapshotDoc",method:"POST"}},search:{fullTextSearchBlock:{pathname:"/api/search/fullTextSearchBlock",method:"POST"}},snippet:{getSnippet:{pathname:"/api/snippet/getSnippet",method:"POST"},setSnippet:{pathname:"/api/snippet/setSnippet",method:"POST"}},storage:{getLocalStorage:{pathname:"/api/storage/getLocalStorage",method:"POST"},getRecentDocs:{pathname:"/api/storage/getRecentDocs",method:"POST"},setLocalStorage:{pathname:"/api/storage/setLocalStorage",method:"POST"},setLocalStorageVal:{pathname:"/api/storage/setLocalStorageVal",method:"POST"}},system:{bootProgress:{pathname:"/api/system/bootProgress",method:"POST"},currentTime:{pathname:"/api/system/currentTime",method:"POST"},getConf:{pathname:"/api/system/getConf",method:"POST"},version:{pathname:"/api/system/version",method:"POST"}},template:{render:{pathname:"/api/template/render",method:"POST"},renderSprig:{pathname:"/api/template/renderSprig",method:"POST"}}});let Xn=he;function Zn(e=globalThis.navigator.language,t=[]){switch(e=e.replaceAll("_","-").toLowerCase(),!0){case e in t:break;case e.startsWith("zh-chs"):case e.startsWith("zh-cns"):e="zh-Hans";break;case e.startsWith("zh-cht"):case e.startsWith("zh-cnt"):e="zh-Hant";break;case e.startsWith("zh-hans"):case e.startsWith("zh-cn"):case e.startsWith("zh-sg"):e="zh-Hans";break;case e.startsWith("zh-hant"):case e.startsWith("zh-tw"):case e.startsWith("zh-hk"):case e.startsWith("zh-mo"):e="zh-Hant";break;case e.startsWith("zh"):e="zh-Hans";break;case e.startsWith("en"):e="en";break;case e.startsWith("es"):e="es";break;case e.startsWith("fr"):e="fr";break}return e}const er="思源笔记",tr="思源笔记服务地址 (base URL)",or="默认的文件打开目录",nr="默认 *.kdbx 文件存放目录",rr="思源笔记存储设置",sr="未获得思源笔记服务的访问授权,请正确设置思源笔记服务的令牌 (Token)",ar="无法访问思源笔记服务,请正确设置思源笔记服务的地址 (base URL)",ir="思源笔记服务令牌 (Token)",cr="仅在未登录思源笔记服务状态下配置该字段",ur="思源笔记工作空间的根目录",lr={siyuan:er,siyuanBaseURL:tr,siyuanFileOpenDefaultPath:or,siyuanPath:nr,siyuanStorageDesc:rr,siyuanStorageDescAuthorize:sr,siyuanStorageDescConnect:ar,siyuanToken:ir,siyuanTokenPlaceholder:cr,siyuanWorkspaceRootDirectory:ur},hr="思源筆記",pr="思源筆記服務 URL 地址 (base URL)",fr="默認的文件打開目錄",dr="默認 *.kdbx 文件存放目錄",mr="思源筆記存儲設置",gr="未獲得思源筆記服務的訪問授權,請正確設置思源筆記服務的令牌 (Token)",yr="無法訪問思源筆記服務,請正確設置思源筆記服務的地址 (base URL)",br="思源筆記服務 Token",wr="僅在未登錄思源筆記服務狀態下配置該字段",Sr="思源筆記工作空間的根目錄",kr={siyuan:hr,siyuanBaseURL:pr,siyuanFileOpenDefaultPath:fr,siyuanPath:dr,siyuanStorageDesc:mr,siyuanStorageDescAuthorize:gr,siyuanStorageDescConnect:yr,siyuanToken:br,siyuanTokenPlaceholder:wr,siyuanWorkspaceRootDirectory:Sr},vr="SiYuan Note",Or="SiYuan Note service base URL",Tr="Default file open directory",Ar="Default *.kdbx file storage directory",Pr="SiYuan Note storage settings",Rr="Access authorization to SiYuan Note service is not obtained. Please correctly set the token of the SiYuan Note service.",Er="Unable to access the SiYuan Note service. Please correctly set the base URL of the SiYuan Note service.",Cr="SiYuan Note service token",Dr="This field needs to be configured only when you are not logged in SiYuan Note service",Br="Root directory of SiYuan Note workspace",xr={siyuan:vr,siyuanBaseURL:Or,siyuanFileOpenDefaultPath:Tr,siyuanPath:Ar,siyuanStorageDesc:Pr,siyuanStorageDescAuthorize:Rr,siyuanStorageDescConnect:Er,siyuanToken:Cr,siyuanTokenPlaceholder:Dr,siyuanWorkspaceRootDirectory:Br};function _e(e){var n;const t=Zn(((n=We.AppSettingsModel)==null?void 0:n.locale)??"en");if(console.debug("localize",t),t!==e.lang){var o;switch(t){case"zh-Hans":o=lr;break;case"zh-Hant":o=kr;break;default:o=xr;break}e.lang=t,e.i18n=o,Object.assign($e,o)}}function Nr(e){_e(e),We.AppSettingsModel.on("change",()=>_e(e))}function Lr(e){for(const t of Object.keys(e.i18n))delete $e[t]}function qr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function T(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function Ie(e,t){for(var o="",n=0,r=-1,s=0,a,c=0;c<=e.length;++c){if(c2){var h=o.lastIndexOf("/");if(h!==o.length-1){h===-1?(o="",n=0):(o=o.slice(0,h),n=o.length-1-o.lastIndexOf("/")),r=c,s=0;continue}}else if(o.length===2||o.length===1){o="",n=0,r=c,s=0;continue}}t&&(o.length>0?o+="/..":o="..",n=2)}else o.length>0?o+="/"+e.slice(r+1,c):o=e.slice(r+1,c),n=c-r-1;r=c,s=0}else a===46&&s!==-1?++s:s=-1}return o}function jr(e,t){var o=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return o?o===t.root?o+n:o+e+n:n}var x={resolve:function(){for(var t="",o=!1,n,r=arguments.length-1;r>=-1&&!o;r--){var s;r>=0?s=arguments[r]:(n===void 0&&(n=process.cwd()),s=n),T(s),s.length!==0&&(t=s+"/"+t,o=s.charCodeAt(0)===47)}return t=Ie(t,!o),o?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(t){if(T(t),t.length===0)return".";var o=t.charCodeAt(0)===47,n=t.charCodeAt(t.length-1)===47;return t=Ie(t,!o),t.length===0&&!o&&(t="."),t.length>0&&n&&(t+="/"),o?"/"+t:t},isAbsolute:function(t){return T(t),t.length>0&&t.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var t,o=0;o0&&(t===void 0?t=n:t+="/"+n)}return t===void 0?".":x.normalize(t)},relative:function(t,o){if(T(t),T(o),t===o||(t=x.resolve(t),o=x.resolve(o),t===o))return"";for(var n=1;np){if(o.charCodeAt(a+d)===47)return o.slice(a+d+1);if(d===0)return o.slice(a+d)}else s>p&&(t.charCodeAt(n+d)===47?i=d:d===0&&(i=0));break}var y=t.charCodeAt(n+d),f=o.charCodeAt(a+d);if(y!==f)break;y===47&&(i=d)}var m="";for(d=n+i+1;d<=r;++d)(d===r||t.charCodeAt(d)===47)&&(m.length===0?m+="..":m+="/..");return m.length>0?m+o.slice(a+i):(a+=i,o.charCodeAt(a)===47&&++a,o.slice(a))},_makeLong:function(t){return t},dirname:function(t){if(T(t),t.length===0)return".";for(var o=t.charCodeAt(0),n=o===47,r=-1,s=!0,a=t.length-1;a>=1;--a)if(o=t.charCodeAt(a),o===47){if(!s){r=a;break}}else s=!1;return r===-1?n?"/":".":n&&r===1?"//":t.slice(0,r)},basename:function(t,o){if(o!==void 0&&typeof o!="string")throw new TypeError('"ext" argument must be a string');T(t);var n=0,r=-1,s=!0,a;if(o!==void 0&&o.length>0&&o.length<=t.length){if(o.length===t.length&&o===t)return"";var c=o.length-1,h=-1;for(a=t.length-1;a>=0;--a){var p=t.charCodeAt(a);if(p===47){if(!s){n=a+1;break}}else h===-1&&(s=!1,h=a+1),c>=0&&(p===o.charCodeAt(c)?--c===-1&&(r=a):(c=-1,r=h))}return n===r?r=h:r===-1&&(r=t.length),t.slice(n,r)}else{for(a=t.length-1;a>=0;--a)if(t.charCodeAt(a)===47){if(!s){n=a+1;break}}else r===-1&&(s=!1,r=a+1);return r===-1?"":t.slice(n,r)}},extname:function(t){T(t);for(var o=-1,n=0,r=-1,s=!0,a=0,c=t.length-1;c>=0;--c){var h=t.charCodeAt(c);if(h===47){if(!s){n=c+1;break}continue}r===-1&&(s=!1,r=c+1),h===46?o===-1?o=c:a!==1&&(a=1):o!==-1&&(a=-1)}return o===-1||r===-1||a===0||a===1&&o===r-1&&o===n+1?"":t.slice(o,r)},format:function(t){if(t===null||typeof t!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return jr("/",t)},parse:function(t){T(t);var o={root:"",dir:"",base:"",ext:"",name:""};if(t.length===0)return o;var n=t.charCodeAt(0),r=n===47,s;r?(o.root="/",s=1):s=0;for(var a=-1,c=0,h=-1,p=!0,i=t.length-1,d=0;i>=s;--i){if(n=t.charCodeAt(i),n===47){if(!p){c=i+1;break}continue}h===-1&&(p=!1,h=i+1),n===46?a===-1?a=i:d!==1&&(d=1):a!==-1&&(d=-1)}return a===-1||h===-1||d===0||d===1&&a===h-1&&a===c+1?h!==-1&&(c===0&&r?o.base=o.name=t.slice(1,h):o.base=o.name=t.slice(c,h)):(c===0&&r?(o.name=t.slice(1,a),o.base=t.slice(1,h)):(o.name=t.slice(c,a),o.base=t.slice(c,h)),o.ext=t.slice(a,h)),c>0?o.dir=t.slice(0,c-1):r&&(o.dir="/"),o},sep:"/",delimiter:":",win32:null,posix:null};x.posix=x;var Ur=x;const St=qr(Ur);function ze(...e){return St.join(...e)}function Fr(e){return St.parse(e)}class _r extends Tt.StorageBase{constructor(o){super();D(this,"name");D(this,"icon");D(this,"prefix");D(this,"uipos",-10);D(this,"connected",!1);D(this,"authorized",!1);this._context=o,this.name=this._context.manifest.name,this.icon=this.name,this.prefix=`plugin:${this.name}`,this.enabled=!0}get _logger(){return super.logger||globalThis.console}init(){super.init(),this.updateServiceStatus()}async updateServiceStatus(){try{await this._context.client.version(),this.connected=!0;try{await this._context.client.readDir({path:""}),this.authorized=!0}catch{this.authorized=!1}}catch{this.connected=!1,this.authorized=!1}}getPathForName(o){return ze(this._context.path,`${o}.kdbx`)}load(o,n,r){this.stat(o,n,(s,a)=>{s?r==null||r(s):this._context.client.getFile({path:o},"arraybuffer").then(c=>{r==null||r(null,c,a)}).catch(c=>{r==null||r(c)})})}stat(o,n,r){const s=Fr(o);this._context.client.readDir({path:s.dir}).then(a=>{const c=a.data.find(h=>h.name===s.base);c?r==null||r(null,{rev:String(c.updated)}):r==null||r({notFound:!0,msg:`File [${s.base}] is not under directory [${s.dir}]`})}).catch(a=>{r==null||r(a)})}save(o,n,r,s,a){this._context.client.putFile({path:o,file:r}).then(c=>{this.stat(o,n,s)}).catch(c=>{s==null||s(c)})}mkdir(o,n){this._context.client.putFile({path:o,isDir:!0}).then(r=>{n==null||n(null)}).catch(r=>{n==null||n(r)})}async list(o,n){this._logger.debug("storage-list",arguments);try{const r=o||this._context.fileOpenPath,s=await this._context.client.readDir({path:r});n==null||n(null,s.data.map(a=>({name:a.name,path:ze(r,a.name),dir:a.isDir,rev:String(a.updated)})))}catch(r){n==null||n(r)}}remove(o,n){this._context.client.removeFile({path:o}).then(r=>{n==null||n(null)}).catch(r=>{n==null||n(r)})}needShowOpenConfig(){return!this.connected||!this.authorized}getOpenConfig(){switch(!1){default:case this.connected:return{desc:"siyuanStorageDescConnect",fields:[{id:"baseURL",type:"url",title:"siyuanBaseURL",placeholder:"http[s]://host[:port]/[pathname]",required:!0,pattern:"^https?://.*$"}]};case this.authorized:return{desc:"siyuanStorageDescAuthorize",fields:[{id:"token",type:"text",title:"siyuanToken",required:!0}]}}}async applyConfig(o,n){switch(this._context.client._updateOptions({...o},this._context.type),await this.updateServiceStatus(),!0){case"baseURL"in o:this.connected?(this.appSettings[`${this.prefix}:baseURL`]=o.baseURL,this.appSettings.save(),n()):n(this._context.i18n.siyuanStorageDescConnect);break;case"token"in o:this.authorized?(this.appSettings[`${this.prefix}:token`]=o.token,this.appSettings.save(),n()):n(this._context.i18n.siyuanStorageDescAuthorize);break;default:n();break}}logout(){this._logger.debug("storage-logout",arguments)}}function Ir(e){const t=new _r(e);e.storage=t,Je.Storage.siyuan=t}function zr(e){delete Je.Storage.siyuanStorage}function Mr(e){e.settings=[{name:"baseURL",type:"text",label:e.i18n.siyuanBaseURL,placeholder:e.baseURL,value:""},{name:"token",type:"text",label:e.i18n.siyuanToken,placeholder:e.i18n.siyuanTokenPlaceholder,value:""},{name:"path",type:"text",label:e.i18n.siyuanPath,placeholder:e.defaultPath,value:e.defaultPath},{name:"fileOpenSchema",type:"select",label:e.i18n.siyuanFileOpenDefaultPath,options:[{value:"path",get label(){return`${e.i18n.siyuanPath} [${e.path}]`}},{value:"root",get label(){return`${e.i18n.siyuanWorkspaceRootDirectory} [/]`}}],value:"path"}]}/** + * KeeWeb plugin: siyuan + * @author Zuoqiu Yingyi + * @license AGPL-3.0-or-later + */const Me="fetch",ne="/data/storage/petal/keepass/",He=globalThis.document.baseURI.replace(/\/plugins\/keepass\/keeweb\/.*$/,"/"),k={type:Me,path:ne,client:new Xn({baseURL:He},Me),baseURL:He,manifest:Lt,defaultPath:ne,fileOpenPath:ne};async function Hr(){await Nr(k),await Ir(k),await Mr(k),console.log("Siyuan plugin installed")}async function $r(){await void 0,await zr(),await Lr(k),console.log("Siyuan plugin uninstalled")}function Wr(){return k.settings}function Jr(e){var t;switch(e.baseURL=e.baseURL||k.baseURL,e.path=e.path||k.defaultPath,k.client._updateOptions({baseURL:e.baseURL,token:e.token},k.type),(t=k.storage)==null||t.updateServiceStatus(),k.path=e.path.startsWith("/")?e.path:`/${e.path}`,e.fileOpenSchema){case"path":k.fileOpenPath=k.path;break;case"root":k.fileOpenPath="/";break}}Hr();const Vr={getSettings:Wr,setSettings:Jr,uninstall:$r};module.exports=Vr; diff --git a/keeweb/plugins/translations/ca/ca.json b/keeweb/plugins/translations/ca/ca.json new file mode 100644 index 0000000..466a583 --- /dev/null +++ b/keeweb/plugins/translations/ca/ca.json @@ -0,0 +1,474 @@ +{ + "months": [ + "Gener", + "Febrer", + "Març", + "Abril", + "Maig", + "Juny", + "Juliol", + "Agost", + "Setembre", + "Octubre", + "Novembre", + "Desembre" + ], + "monthsShort": [ + "Gen", + "Febr", + "Març", + "Abr", + "Maig", + "Juny", + "Jul", + "Ag", + "Set", + "Oct", + "Nov", + "Des" + ], + "weekdays": [ + "Diumenge", + "Dilluns", + "Dimarts", + "Dimecres", + "Dijous", + "Divendres", + "Dissabte" + ], + "weekdaysShort": [ + "Dg", + "Dl", + "Dt", + "Dc", + "Dj", + "Dv", + "Ds" + ], + "retToApp": "Torna a l'aplicació", + "name": "Nom", + "icon": "icona", + "title": "Títol", + "password": "Contrasenya", + "user": "Usuari", + "website": "Lloc web", + "tags": "Etiquetes", + "notes": "anotacions", + "entry": "entrada", + "group": "grup", + "noTitle": "sense títol", + "or": "o", + "history": "historial", + "template": "plantilla", + "notImplemented": "No implementat", + "saveChanges": "Desa canvis", + "discardChanges": "Descarta els canvis", + "advanced": "Avançat", + "shortcuts": "Dreceres", + "help": "Ajuda", + "settings": "Configuració", + "plugins": "Connectors", + "cache": "Memòria cau", + "file": "Fitxer", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Tots els ítems", + "menuColors": "Colors", + "menuTrash": "Paperera", + "menuSetGeneral": "General", + "menuSetAbout": "Quant a", + "menuAlertNoTags": "Sense etiquetes", + "menuAlertNoTagsBody": "Podeu afegir etiquetes noves mentre editeu els camps, a la Secció d'etiquetes.", + "menuEmptyTrash": "Paperera buida", + "menuEmptyTrashAlert": "Paperera buida?", + "menuEmptyTrashAlertBody": "No podreu recuperar els elements esborrats", + "menuItemCollapsed": "Feu doble clic per expandir", + "menuRestoreApp": "Obre {}", + "menuQuitApp": "Tancar {}", + "alertYes": "Si", + "alertNo": "No", + "alertOk": "D'acord", + "alertCancel": "Cancel·la", + "alertSignIn": "Iniciar la sessió", + "alertCopy": "Copiar", + "alertClose": "Tancar", + "alertDoNotAsk": "No em tornis a preguntar més", + "appBeta": "ATENCIÓ: Versió en proves, només es un avançament", + "footerOpen": "Obrir / Nova", + "footerSyncError": "Error en sincronitzar", + "footerTitleGen": "Generar", + "footerTitleLock": "Bloquejar", + "genLen": "Longitud", + "genNewPass": "Nova contrasenya", + "genPresetDefault": "Predefinir per defecte", + "genPresetDerived": "Com la contrasenya anterior", + "genPresetPronounceable": "Pronunciable", + "genPresetMed": "Longitud mitjana", + "genPresetLong": "Llarg", + "genPresetPin4": "Pin de 4 dígits", + "genPresetMac": "Adreça MAC", + "genPresetHash128": "Hash de 128 bits", + "genPresetHash256": "Hash de 256 bits", + "genHidePass": "Oculta contrasenya", + "genShowPass": "Mostrar contrasenya", + "grpTitle": "Grup", + "grpSearch": "Habilitar la cerca d'entrades en aquest grup", + "grpAutoType": "Activar auto-completat", + "grpAutoTypeSeq": "Seqüència d'auto-completat", + "grpAutoTypeSeqDefault": "Utilitza per defecte la seqüència d'auto-completat", + "grpTrash": "Esborrar grup amb totes les entrades", + "tagTitle": "Etiqueta", + "tagTrash": "Esborrar l'etiqueta de totes les entrades", + "tagRename": "Canvia el nom", + "tagTrashQuestion": "Esborrar l'etiqueta de totes les entrades?", + "tagTrashQuestionBody": "Aquesta etiqueta serà esborra de totes les entrades. No serà fàcil recuperar-la.", + "tagExists": "Etiqueta ja existent", + "tagExistsBody": "Etiqueta amb aquest nom ja existent. Si us plau, escull un altre nom", + "tagBadName": "Nom incorrecte", + "tagBadNameBody": "El nom d'etiqueta no pot contenir els caràcters {}. Si us plau, esborra'ls.", + "genPsTitle": "Generador d'ajustos", + "genPsCreate": "Nou ajustament", + "genPsDelete": "Esborrar ajustament", + "genPsNew": "Ajustament", + "genPsEnabled": "Mostrar al llistat d'ajustaments", + "genPsDefault": "Seleccionar per defecte", + "genPsDefaultLength": "Longitud per defecte", + "genPsUpper": "Lletres majúscules llatines", + "genPsLower": "Lletres minúscules llatines", + "genPsDigits": "Dígits", + "genPsSpecial": "Caràcters especials", + "genPsBrackets": "Parèntesis", + "genPsHigh": "Caràcters ASCII estesos.", + "genPsAmbiguous": "Caràcters ambigus", + "genPsInclude": "Caràcters addicionals per incloure", + "genPsExample": "Exemple de contrasenya generada", + "keyChangeTitleRemote": "S'ha canviat la clau mestra", + "keyChangeMessageRemote": "La clau mestre ha canviat per aquesta base de dades. Si us plau, introdueix la nova clau", + "keyChangeTitleExpired": "Clau mestra caducada", + "keyChangeMessageExpired": "La clau mestre per aquesta base de dades ha expirat. Si us plau, afegeix una nova clau", + "keyChangeRepeatPassword": "Contrasenya, un cop més", + "keyEnter": "Introduir", + "iconFavTitle": "Descarrega i utilitza la icona del lloc web", + "iconSelCustom": "Selecciona una icona personalitzada", + "listEmptyTitle": "Buit", + "listEmptyAdd": "afegeix amb {} botó superior", + "listGroup": "Grup", + "listNoWebsite": "Sense web", + "listNoUser": "Sense usuari", + "listNoAttachments": "Sense adjunts", + "listAddTemplateHeader": "Plantilles", + "listAddTemplateBody1": "Les plantilles permeten crear entrades amb un sol clic. Afegeix alguna plantilla d'entrada i després fes clic sobre {} de nou per utilitzar aquesta plantilla.", + "listAddTemplateBody2": "Podràs trobar les plantilles en el grup {}", + "searchAddNew": "Afegir nova", + "searchSort": "Ordena", + "searchCreated": "Creada", + "searchUpdated": "Actualitzada", + "searchAttachments": "Adjunts", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Antic {} nou", + "searchNO": "Nou {} antic", + "searchShiftClickOr": "Mayus. + clic o", + "searchAdvTitle": "Desplega cerca avançada", + "searchSearchIn": "Cercar en", + "searchOther": "Altres camps", + "searchProtect": "Camps segurs", + "searchOptions": "Options", + "searchCase": "Coincidir majúscules", + "searchRegex": "RegEx", + "searchRank": "Auto", + "openOpen": "Obrí", + "openNew": "Nou", + "openNewFile": "Nou", + "openMore": "Més", + "openDemo": "Demostració", + "openGenerate": "Generar", + "openXml": "Importa XML", + "openCaps": "Majúscules activades", + "openClickToOpen": "Fes clic per obrir un fitxer", + "openKeyFile": "fitxer clau", + "openKeyFileDropbox": "(des de dropbox)", + "openDropHere": "Deixa anar un fitxer aquí", + "openFailedRead": "Error al llegir el fitxer", + "openNothingFound": "No s'ha trobat res", + "openNothingFoundBody": "No s'han trobat fitxers compatibles", + "openSelectFile": "Selecciona un fitxer", + "openSelectFileBody": "Selecciona un fitxer que vulguis obrir", + "openPassFor": "Contrasenya per", + "openRemoveLastQuestion": "Esborrar fitxer local?", + "openRemoveLastQuestionBody": "El fitxer que estàs esborrar només es troba emmagatzemat dins de l'aplicació. ¿Desitges esborrar-ho definitivament?", + "openRemoveLastQuestionModBody": "El fitxer que estàs esborrant conté modificacions locals. ¿Segur que vols esborrar i descartar aquestes modificacions?", + "openLocalFile": "Fitxer local", + "openLocalFileBody": "Estàs a punt d'obrir un fitxer que serà emmagatzemat dins de l'aplicació. Els canvis que facis no es desaran en el sistema de fitxers. Per recuperar el fitxer amb les teves dades, exporta'l de de les opcions.", + "openLocalFileDontShow": "No mostris això de nou", + "openWrongFile": "Fitxer incorrecte", + "openWrongFileBody": "Aquest format de fitxer no està suportat. Aquesta aplicació funciona amb formats de bases de dades de KeePass (kdbx).", + "openKdbFileBody": "Estàs obrint un format de fitxer antic (KBD). Aquesta aplicació només suporta el nou format (kdbx), si us plau, utilitza KeePass v2 per actualitzar el format.", + "openConfigHeader": "Configuració de {}", + "openUrl": "URL", + "openUrlDesc": "https://servidor/ruta/fitxer.kbdx, o només fitxer.kbdx", + "openUser": "Usuari", + "openUserDesc": "Usuari del servidor WebDAV (si es necessita)", + "openUserPlaceholder": "Sense usuari", + "openPass": "Contrasenya", + "openPassDesc": "Contrasenya per el servidor WebDAV (no és la contrasenya del teu fitxer)", + "openPassPlaceholder": "Sense contrasenya", + "openConfigError": "Error: {}", + "openConfigErrorNotFound": "Fitxer no trobat", + "openError": "Error", + "openErrorDescription": "S'ha produït un error a l'obrir el fitxer", + "openErrorFileNotFound": "Fitxer no trobat", + "openListErrorBody": "S'ha produït un error en carregar la llista de fitxers", + "openShowAllFiles": "Mostra tots els fitxers", + "openFileNoCacheError": "No s'ha trobat el fitxer a l'emmagatzematge de la memòria cau. Això pot succeir perquè es neteja l’emmagatzematge del navegador. Per obrir el fitxer, traieu-lo de KeeWeb i afegiu-lo de nou.", + "detAttDownload": "Fes Mayús-Clic sobre el botó per descarregar-lo o", + "detAttDelToRemove": "Supr per esborrar", + "detAttSave": "Desar com ...", + "detEmpty": "Les teves contrasenyes es mostraran aquí", + "detGroupRestore": "Per restaurar aquest grup, si us plau arrossega a qualsevol grup fora de la paperera", + "detHistoryClickPoint": "Fes clic sobre el punt de línia de temps del historial per veure l'estat", + "detHistoryReturn": "tornar a l'entrada", + "detHistoryRevert": "Tornar a l'estat", + "detHistoryDel": "Esborrar estat", + "detHistoryEmpty": "buit", + "detHistoryModified": "modificat", + "detHistoryRec": "Registre", + "detHistoryRecs": "Registres", + "detHistoryVersion": "versió", + "detHistorySaved": "Desat", + "detHistoryNoTitle": "sense títol", + "detHistoryCurState": "Estat actual", + "detHistoryCurUnsavedState": "Estat actual sense desar", + "detHistoryRevertAlert": "Tornar a aquest estat del historial?", + "detHistoryRevertAlertBody": "El teu estat actual es desarà al historial", + "detHistoryDeleteAlert": "Esborra aquest estat de l'historial?", + "detHistoryDeleteAlertBody": "No podreu restaurar-lo", + "detHistoryDiscardChangesAlert": "Rebutjar els canvis desats a la entrada?", + "detHistoryDiscardChangesAlertBody": "Es perdran els canvis no desats, no haurà forma de recuperar-los.", + "detBackToList": "Torna a la llista", + "detSetIconColor": "Canviar el color", + "detSetIcon": "Canviar la icona", + "detDropAttachments": "Arrossega adjunts aquí", + "detDelEntry": "Esborra", + "detDelEntryPerm": "Esborra permanentment", + "detExpires": "Expira", + "detExpired": "Espirat", + "detGroup": "Grup", + "detCreated": "Creat", + "detUpdated": "Actualitzat", + "detNetField": "Nou camp", + "detAttachments": "Adjunts", + "detDelFromTrash": "Esborrar de la paperera?", + "detDelFromTrashBody": "No podràs tornar-ho a recuperar", + "detDelFromTrashBodyHint": "Per eliminar ràpidament tots els elements de la paperera, feu clic a la icona buida al menú de paperera.", + "detDelToTrash": "Esborrar l'entrada?", + "detDelToTrashBody": "L'entrada ha estat moguda a la paperera", + "detFieldCopied": "Copiat", + "detFieldCopiedTime": "Copiat en {} segons", + "detCopyHint": "Pots copiar el valor del camp fent clic sobre el seu títol", + "detMore": "Més", + "detClickToAddField": "Fes clic per afegir nova entrada", + "detMenuAddNewField": "Afegeix nova entrada", + "detMenuShowEmpty": "Mostra camps ocults", + "detMenuHideEmpty": "Oculta camps ocults", + "detMenuAddField": "Afegeix {}", + "detMenuCopyPassword": "Copia contrasenya", + "detMenuCopyUser": "Copia usuari", + "detSetupOtp": "Contrasenyes d'un sol us", + "detClone": "Fer una còpia", + "detCopyEntryToClipboard": "Copiar tots els camps", + "detClonedName": "Copiar", + "detAutoType": "Opcions d'auto-completar", + "detAutoTypeEnabled": "Activar auto-completar per aquesta entrada", + "detAutoTypeSequence": "Pulsacions de tecles", + "detAutoTypeInput": "Entrada", + "detAutoTypeShortcutsDesc": "{} o {} mentre aquesta aplicació estigui inactiva", + "detAutoTypeObfuscation": "Barrejar pulsacions de tecles i aleatòries", + "detAutoTypeWindow": "Finestra", + "detAutoTypeInputWindow": "Títol de la finestra", + "detSetupOtpAlert": "Escaneja un codi QR", + "detSetupOtpAlertBody": "Copieu el codi QR que es mostra a la pàgina d’autorització.", + "detSetupOtpAlertBody1": "1. anar a la pàgina d'autorització", + "detSetupOtpAlertBody2": "2. fes una captura de pantalla del codi QR {}", + "detSetupOtpAlertBody3": "3. enganxeu-la aquí {}", + "detSetupOtpAlertBody3Mobile": "3. Seleccioneu o escanegeu amb la vostra càmera utilitzant el botó Selecciona / Escaneja que es troba a continuació", + "detSetupOtpAlertBody4": "Si no podeu escanejar el codi, feu clic a Introduir el codi manualment", + "detSetupOtpManualButton": "Introduir el codi manualment", + "detSetupOtpScanButton": "Selecciona/Escanejar", + "detSetupOtpAlertBodyWith": "amb {}", + "detOtpImageError": "S'ha produït un error en llegir la imatge", + "detOtpImageErrorBody": "No hem pogut llegir el format de la imatge. Poseu-vos en contacte amb els autors de l'aplicació, detallant d'error.", + "detOtpImageReading": "Llegint el codi QR ...", + "detOtpQrError": "Error d'exploració de codi QR", + "detOtpQrErrorBody": "No hem pogut llegir el codi QR. Proveu-ho de nou o bé poseu-vos en contacte amb els autors de l'aplicació, detallant d'error.", + "detOtpQrWrong": "Codi QR incorrecte", + "detOtpQrWrongBody": "El teu codi QR s'ha escanejat amb èxit, però no conté dades de contrasenya única.", + "detLockField": "Bloqueja aquest camp perquè el seu contingut no sigui visible ni localitzable amb una recerca. Per mostrar el contingut d'aquest camp hauràs de fer clic a sobre.", + "detUnlockField": "Desbloqueja aquest camp per fer el seu contingut visible i localitzable amb una recerca.", + "detRevealField": "Exposar", + "detHideField": "Amagar", + "detAutoTypeField": "Auto-completat", + "autoTypeEntryFields": "Camps d'entrada", + "autoTypeModifiers": "Tecles modificadores", + "autoTypeKeys": "Tecles", + "autoTypeLink": "més ...", + "autoTypeError": "Error d'auto-completat", + "autoTypeErrorGeneric": "S'ha produït un error en executar l'auto-completat: {}", + "autoTypeErrorGlobal": "Si us plau, obre l'aplicació en la que vols introduir la contrasenya per utilitzar una drecera de teclat global", + "autoTypeErrorNotInstalled": "{} no està instal·lat", + "autoTypeHeader": "Auto-completat: Seleccionar", + "autoTypeMsgNoWindow": "No hem pogut obtenir el títol de la finestra activa, comença a escriure per cercar", + "autoTypeMsgMatchedByWindow": "Seleccioneu una contrasenya per a {}", + "autoTypeNoMatches": "sense coincidències", + "autoTypeSelectionHint": "Escriu la seqüència d'autocompletat", + "autoTypeSelectionHintAction": "Escriviu només la contrasenya", + "autoTypeSelectionHintOpt": "Escriviu només el nom d’usuari", + "autoTypeSelectionHintShift": "Altres camps", + "autoTypeSelectionOtp": "Contrasenya única", + "appSecWarn": "No és segur!", + "appSecWarnBody1": "Heu carregat aquesta aplicació amb una connexió no segura. Potser algú t’estigui veient i robant les contrasenyes. Us aconsellem que us detingueu, tret que entengueu clarament el que feu.", + "appSecWarnBody2": "Sí, la vostra base de dades està xifrada, però ningú et pot garantir que l'aplicació no hagi estat modificada abans d'arribar a tu.", + "appSecWarnBtn": "Entenc els riscos, continua", + "appUnsavedWarn": "Canvis no guardats!", + "appUnsavedWarnBody": "Tens arxius sense guardar, si tanques l'aplicació, es perdran els canvis.", + "appDontExitBtn": "No sortir", + "appCannotLockAutoInit": "Aquesta aplicació no es pot bloquejar perquè el desament automàtic està desactivat.", + "appCannotLock": "Teniu canvis no guardats que es perdran. Continuar?", + "appAutoSave": "Desa els canvis automàticament", + "appSaveError": "Error de desat", + "appSaveErrorBody": "No s'ha pogut desar el fitxer", + "appSaveErrorBodyMul": "No s'ha pogut desar els fitxers:", + "appSettingsError": "S'ha produït un error en carregar l'aplicació", + "appSettingsErrorBody": "S'ha produït un error en carregar la configuració de l'aplicació. Comproveu l’URL de l’aplicació o poseu-vos en contacte amb l’administrador.", + "appNotSupportedError": "El vostre navegador no admet algunes funcions importants que estem utilitzant.", + "appTabWarn": "Massa pestanyes", + "appTabWarnBody": "KeeWeb no es pot utilitzar en dues pestanyes del navegador simultàniament, tanqueu aquesta pestanya.", + "appRightsAlert": "Bloqueig de l'aplicació KeeWeb", + "appRightsAlertBody1": "Actualment, la vostra aplicació KeeWeb no està protegida contra canvis no autoritzats. Us demanem permisos perquè l’aplicació es pugui escriure només per a administradors.", + "appRightsAlertBody2": "No vols donar permisos? Pots fer-ho tu mateix amb el Terminal", + "setGenTitle": "Configuració general", + "setGenUpdate": "Actualitza", + "setGenNewVersion": "Nova versió d'aplicació alliberada i descarregada", + "setGenReleaseNotes": "Veure notes de versió", + "setGenReloadToUpdate": "Recàrrega per actualitzar", + "setGenUpdateManual": "Hi ha una nova versió disponible. S'ha de comprovar si hi ha actualitzacions i s'instal·laran automàticament, però no es pot auto-actualitzar des la teva versió.", + "setGenDownloadUpdate": "Descàrrega de l’actualització", + "setGenUpdateAuto": "Baixeu i instal·leu automàticament", + "setGenUpdateCheck": "Comprovar pero no instal·lar", + "setGenNoUpdate": "No consultar mai actualitzacions", + "setGenUpdateChecking": "Consultant noves actualitzacions", + "setGenCheckUpdate": "Consultar actualitzacions", + "setGenErrorChecking": "Error consultant actualitzacions", + "setGenLastCheckVer": "l'última versió va ser {}", + "setGenCheckedAt": "Consultat a", + "setGenLatestVer": "està utilitzant la versió més recent", + "setGenNewVer": "nova versió {} disponible, disponible", + "setGenDownloadingUpdate": "Descarregant actualització", + "setGenExtractingUpdate": "Extraient actualització...", + "setGenCheckErr": "S'ha produït un error al descarregar la nova versió", + "setGenNeverChecked": "No consultar mai noves actualitzacions", + "setGenRestartToUpdate": "Reiniciar aplicació per actualitzar", + "setGenDownloadAndRestart": "Baixar actualització i reinicar", + "setGenFontSizeNormal": "Normal", + "setGenTitlebarStyleDefault": "Per defecte", + "setGenTitlebarStyleHidden": "Títol personalitzat", + "setGenStorage": "Emmagatzematge", + "setGenShowAdvanced": "Mostrar la configuració avançada", + "setGenDevTools": "Mostrar les eines de dev", + "setGenTryBeta": "Provar la versió beta fins reiniciar", + "setGenTryBetaWarning": "Fitxers no guardats", + "setGenTryBetaWarningBody": "Si us plau, guarda tots els fitxers i torna a fer clic en aquest botó", + "setGenShowAppLogs": "Mostra els registres de l'aplicació", + "setGenReloadApp": "Torna a carregar l'aplicació", + "setFilePath": "Ruta del fitxer", + "setFileStorage": "Fitxer carregat des de {}.", + "setFileSave": "Guardar", + "setFileSaveTo": "Guardar a...", + "setFileClose": "Tancar", + "setFileSync": "Sincronitzar", + "setFileSyncVerb": "Sincronitzar", + "setFileSaveToXml": "XML", + "setFileLastSync": "Última sincronització", + "setFileLastSyncUnknown": "desconegut", + "setFileSyncInProgress": "sincronització en curs", + "setFileSyncError": "Error de sincronització", + "setFilePass": "Contrasenya mestra", + "setFileConfirmPass": "Confirmar Contrasenya mestra", + "setFileKeyFile": "Fitxer clau", + "setFileSelKeyFile": "Selecciona un fitxer", + "setFileNames": "Noms", + "setFileBackups": "Còpies de seguretat", + "setFileBackupEnable": "Fer còpia de seguretat d'aquest fitxer", + "setFileBackupPath": "Ruta de la còpia de seguretat", + "setFileBackupNow": "Fer còpia de seguritat ara", + "setFileBackupNowWorking": "En procés...", + "setFileBackupError": "Error fent còpia de seguretat", + "setFileBackupDaily": "Diàriament", + "setFileBackupWeekly": "Setmanalment", + "setFileBackupMonthly": "Mensual", + "setShOpen": "obrir / nou", + "setShSave": "guardar tots els fitxers", + "setShGen": "generar contrasenya", + "setShSet": "configuracions de l'aplicació", + "setShCopyPassGlobal": "copiar contrasenya", + "setShCopyOtp": "copiar OTP", + "setShCopyPassOnly": "copiar contrasenya", + "setShRestoreApp": "obrir {}", + "setShLock": "bloquejar base de dades", + "setPlInstallTitle": "Instal·lar nous plugins", + "setPlInstallLabel": "Plugin URL", + "setPlInstallBtn": "Instal·lar", + "setPlInstallBtnProgress": "Instal·lant", + "setPlUninstallBtn": "Desinstal·lar", + "setPlDisableBtn": "Desactivar", + "setPlEnableBtn": "Activar", + "setPlUpdateBtn": "Actualitzar", + "setPlLocaleBtn": "Canvia a aquest idioma", + "setPlThemeBtn": "Canvia a aquest tema", + "setPlJs": "codi", + "setPlCss": "estils", + "setPlLoc": "llenguatge", + "setPlCreatedBy": "Creat per {}", + "setHelpFormat": "Format de fitxer", + "setHelpFormatBody": "Aquest és un port de {} aplicació construïda amb tecnologies web. Entén els fitxers en format KeePass (kdbx). Podeu crear aquests fitxers (bases de dades de contrasenyes) o bé en KeePass o en aquesta aplicació. El format del fitxer és 100% compatible i haurien de funcionar a totes dues aplicacions.", + "setHelpProblems": "Necessites ajuda?", + "setHelpProblems1": "Si alguna cosa va malament, {}", + "setHelpOpenIssue": "obrir una incidencia a GitHub", + "setHelpContactLink": "contacteu directament amb un desenvolupador", + "setHelpAppInfo": "Informació de l'aplicació", + "setHelpOtherPlatforms": "Altres plataformes", + "setHelpDesktopApps": "Aplicacions d'escriptori", + "setHelpWebApp": "Aplicació web", + "setHelpUpdates": "Actualitzacions", + "setHelpTwitter": "Aplicació twitter", + "dropboxSetupDesc": "És necessària una certa configuració per utilitzar Dropbox en una aplicació allotjada de manera independent. Creeu la vostra aplicació Dropbox i empleneu la clau següent.", + "dropboxAppKey": "Clau per l'aplicació Dropbox", + "dropboxFolder": "Carpeta d'aplicació", + "dropboxFolderDesc": "Si la teva aplicació està enllaçada a tot el teu Dropbox (no a la carpeta d'aplicacions), especifica la carpeta amb els teus fitxers kdbx aquí", + "dropboxFolderSettingsDesc": "Seleccioneu qualsevol carpeta del vostra Dropbox on es desaran els fitxers (carpeta arrel predeterminada per defecte)", + "dropboxFolderPlaceholder": "carpeta predeterminada per defecte", + "dropboxLink": "Enllaçar l'aplicació a", + "dropboxLinkApp": "Carpeta d'aplicació (Apps/KeeWeb)", + "dropboxLinkFull": "Tot Dropbox o qualsevol carpeta", + "dropboxLinkCustom": "Aplicació Dropbox pròpia", + "gdriveSharedWithMe": "Compartit amb mi", + "webdavSaveMethod": "Mètode de desat", + "webdavSaveMove": "Carregueu un fitxer temporal i moveu-lo", + "webdavSavePut": "Sobreescriviu el fitxer kdbx amb PUT ( instrucció d'enviament ) .", + "launcherSave": "Desa la base de dades de contrasenyes", + "launcherFileFilter": "Arxius de KeePass", + "authPopupRequired": "Les finestres emergents estan bloquejades", + "authPopupRequiredBody": "Si us plau, permet les finestres emergents al navegador o torna-ho a provar", + "exportFileInfo": "Informació del fitxer", + "exportHtmlName": "Nom", + "exportHtmlDate": "Data d’exportació", + "exportGenerator": "Programari", + "exportDescription": "Aquest fitxer es genera amb {}.", + "importCsvTitle": "Importació de CSV", + "importCsvRun": "Importació", + "importIgnoreField": "ignorar", + "importTo": "Les entrades s’importaran a", + "importNewFile": "Arxiu nou" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/ca/index.html b/keeweb/plugins/translations/ca/index.html new file mode 100644 index 0000000..707b225 --- /dev/null +++ b/keeweb/plugins/translations/ca/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Català + + + + +

KeeWeb Language: Català

+ https://plugins.keeweb.info/translations/ca + + diff --git a/keeweb/plugins/translations/ca/manifest.json b/keeweb/plugins/translations/ca/manifest.json new file mode 100644 index 0000000..e7d9458 --- /dev/null +++ b/keeweb/plugins/translations/ca/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "1.0.0", + "manifestVersion": "0.1.0", + "name": "language-catalan", + "description": "Catalan language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ca", + "resources": { + "loc": "QTIVIZMObOutR32RpRfhNl/ycijgp++Mk28qqBmZjbPqkKpzq8zKWGefPc0MkWqNDUhVh4w9ApfMzsZNEbBZvwvfJuygZnKaWGW+WpJFSJUUWJ1WoDbQ/jAa7hUu1+mDEFRKFRFFWao1m6K6hXQW1v4XJh1YFhq4aAeci4MoTz1K2f08m2NDaI8dG8bq2U5pmMdcDmAb1kj4p3+YwwsAGPprcYs8GuNU7AK2t1+tfRJ0dFVDbqSCYcZeCICtJFDmBLTCKogy8FKc1CJ0XdieICZn+qYOJtYZpIToAi9wPLiXV/F0BOnpjRIlzW1ccfH1dcR6pctq4+cNrTMhPofu9g==" + }, + "locale": { + "name": "ca", + "title": "Català" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} diff --git a/keeweb/plugins/translations/cs/cs.json b/keeweb/plugins/translations/cs/cs.json new file mode 100644 index 0000000..f0d6183 --- /dev/null +++ b/keeweb/plugins/translations/cs/cs.json @@ -0,0 +1,776 @@ +{ + "retToApp": "zpět do aplikace", + "name": "název", + "icon": "ikona", + "title": "název", + "password": "heslo", + "user": "uživatelské jméno", + "website": "webová stránka", + "tags": "štítky", + "notes": "poznámky", + "entry": "záznam", + "group": "skupina", + "noTitle": "bez titulku", + "or": "nebo", + "history": "historie", + "template": "šablona", + "templates": "šablony", + "notImplemented": "Není implementováno", + "saveChanges": "Uložit změny", + "discardChanges": "Zahodit změny", + "advanced": "Pokročilé", + "shortcuts": "Klávesové zkratky", + "help": "Nápověda", + "settings": "Nastavení", + "plugins": "Doplňky", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "chyba", + "oneMinute": "jedna minuta", + "minutes": "{} minut", + "oneHour": "jedna hodina", + "hours": "{} hodin", + "oneDay": "jeden den", + "days": "{} dní", + "oneWeek": "jeden týden", + "oneMonth": "jeden měsíc", + "oneYear": "jeden rok", + "cache": "mezipaměť", + "file": "soubor", + "device": "zařízení", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Disk Google", + "onedrive": "OneDrive", + "menuAllItems": "Zobrazit vše", + "menuColors": "Barvy", + "menuTrash": "Koš", + "menuSetGeneral": "Obecné", + "menuSetBrowser": "Prohlížeč", + "menuSetAbout": "O aplikaci", + "menuSetDevices": "Zařízení", + "menuAlertNoTags": "Žádné štítky", + "menuAlertNoTagsBody": "Nové štítky můžete přidat během úpravy záznamu v sekci Štítky.", + "menuEmptyTrash": "Vysypat koš", + "menuEmptyTrashAlert": "Chcete vysypat koš?", + "menuEmptyTrashAlertBody": "Položky už nebude možné obnovit", + "menuItemCollapsed": "Rozbalit poklepáním", + "menuRestoreApp": "Otevřít {}", + "menuQuitApp": "Ukončit {}", + "sysMenuAboutKeeWeb": "O aplikaci {}", + "sysMenuServices": "Služby", + "sysMenuHide": "Skrýt aplikaci {}", + "sysMenuHideOthers": "Skrýt ostatní", + "sysMenuUnhide": "Zobrazit vše", + "sysMenuQuit": "Ukončit aplikaci {}", + "sysMenuEdit": "Upravit", + "sysMenuUndo": "Zpět", + "sysMenuRedo": "Znovu", + "sysMenuCut": "Vyjmout", + "sysMenuCopy": "Kopírovat", + "sysMenuPaste": "Vložit", + "sysMenuSelectAll": "Vybrat vše", + "sysMenuWindow": "Okno", + "sysMenuMinimize": "Minimalizovat", + "sysMenuClose": "Zavřít okno", + "alertYes": "Ano", + "alertNo": "Ne", + "alertOk": "OK", + "alertCancel": "Zrušit", + "alertSignIn": "Přihlášení", + "alertCopy": "Kopírovat", + "alertClose": "Zavřít", + "alertDoNotAsk": "Příště se neptat", + "alertAllow": "Povolit", + "alertDeny": "Zakázat", + "appBeta": "VAROVÁNÍ: beta verze, není určeno pro denní používání", + "footerOpen": "Otevřít / Nový", + "footerSyncError": "Chyba synchronizace", + "footerTitleGen": "Generovat", + "footerTitleLock": "Uzamknout", + "genLen": "Délka", + "genNewPass": "Nové heslo", + "genPresetDefault": "výchozí šablona", + "genPresetDerived": "jako staré heslo", + "genPresetPronounceable": "vyslovitelné", + "genPresetMed": "střední délka", + "genPresetLong": "dlouhé", + "genPresetPin4": "čtyřčíselný PIN", + "genPresetMac": "MAC adresa", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit otisk", + "genHidePass": "Skrýt heslo", + "genShowPass": "Zobrazit heslo", + "grpTitle": "Skupina", + "grpSearch": "Povolit vyhledávání záznamů v této skupině", + "grpAutoType": "Povolit automatické vyplňování", + "grpAutoTypeSeq": "Sekvence automatického vyplňování", + "grpAutoTypeSeqDefault": "Použít výchozí sekvenci automatického vyplňování", + "grpTrash": "Smazat skupinu se všemi záznamy", + "tagTitle": "Štítek", + "tagTrash": "Smazat štítek ze všech záznamů", + "tagRename": "Přejmenovat", + "tagTrashQuestion": "Opravdu chcete smazat štítek ze všech záznamů?", + "tagTrashQuestionBody": "Štítek bude smazán ze všech záznamů. Tuto akci nebude možné vzít zpět.", + "tagExists": "Štítek už existuje", + "tagExistsBody": "Štítek s tímto jménem už existuje. Zvolte jiné jméno.", + "tagBadName": "Chybný název", + "tagBadNameBody": "Název štítku nemůže obsahovat znaky {}. Prosím smažte je.", + "genPsTitle": "Šablony pro generování hesel", + "genPsCreate": "Nová šablona", + "genPsDelete": "Smazat šablonu", + "genPsNew": "šablona", + "genPsEnabled": "Zobrazit v seznamu šablon", + "genPsDefault": "Výchozí šablona", + "genPsDefaultLength": "Výchozí délka", + "genPsUpper": "Velká písmena", + "genPsLower": "Malá písmena", + "genPsDigits": "Číslice", + "genPsSpecial": "Zvláštní znaky", + "genPsBrackets": "Závorky", + "genPsHigh": "Složité znaky", + "genPsAmbiguous": "Zaměnitelné znaky", + "genPsInclude": "Další znaky uvedené níže", + "genPsExample": "Příklad vygenerovaného hesla", + "genPsPattern": "Vzor", + "genPsPatternHelp": "Vzory můžete použít pro určení vlastních pravidel výběru znaků. Např. 1-AA vygeneruje heslo začínající číslem následovaným pomlčkou a dvěma písmeny. Ve vzoru můžete použít následující symboly:", + "genPsAllRanges": "Jakýkoliv znak", + "genPsIncluded": "Další znaky uvedené výše", + "keyChangeTitleRemote": "Hlavní klíč změněn", + "keyChangeMessageRemote": "Hlavní klíč pro tuto databázi byl změněn. Zadejte nový klíč", + "keyChangeTitleExpired": "Platnost hlavního klíče vypršela", + "keyChangeMessageExpired": "Platnost hlavního klíče pro tuto databázi vypršela. Zadejte nový klíč", + "keyChangeRepeatPassword": "Heslo, znovu", + "keyEnter": "Enter", + "keyEsc": "Esc", + "iconFavTitle": "Stáhnou a použit ikonu webové stránky (favicon)", + "iconSelCustom": "Vyberte vlastní ikonu", + "listEmptyTitle": "Nic tu není", + "listEmptyAdd": "záznamy přidáte tlačítkem {}", + "listGroup": "Skupina", + "listNoWebsite": "žádná webová stránka", + "listNoUser": "žádné uživatelské jméno", + "listNoAttachments": "žádné přílohy", + "listAddTemplateHeader": "Šablony", + "listAddTemplateBody1": "Šablony umožňují vytvořit nový záznam jedním klepnutím. Přidejte něco do šablony a poté klepněte na {} pro vytvoření záznamu z této šablony.", + "listAddTemplateBody2": "Šablony vždy najdete ve skupině {}.", + "searchAddNew": "Přidat", + "searchSort": "Seřadit", + "searchCreated": "Vytvořeno", + "searchUpdated": "Změněno", + "searchAttachments": "Přílohy", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "{} (od nejstarších)", + "searchNO": "{} (od nejnovějších)", + "searchShiftClickOr": "shift-klik nebo", + "searchAdvTitle": "Pokročilé hledání", + "searchSearchIn": "Hledat v", + "searchOther": "Ostatní pole", + "searchProtect": "Bezpečná pole", + "searchOptions": "Nastavení", + "searchCase": "Rozlišovat velikost", + "searchRegex": "Regulární výraz", + "searchRank": "Automaticky", + "searchExact": "Přesná shoda", + "openOpen": "Otevřít", + "openNew": "Nový", + "openNewFile": "Novy", + "openMore": "Další", + "openDemo": "Ukázka", + "openGenerate": "Vygenerovat", + "openXml": "Import XML", + "openCaps": "Je zapnutý Caps Lock", + "openClickToOpen": "Kliknutím otevřete soubor", + "openKeyFile": "soubor s klíčem", + "openKeyFileDropbox": "(z dropboxu)", + "openDropHere": "sem přetáhněte soubory", + "openFailedRead": "Soubor nelze načíst", + "openNothingFound": "Nic nenalezeno", + "openNothingFoundBody": "Nenalezeny žádné vhodné soubory.", + "openSelectFile": "Vyberte soubor", + "openSelectFileBody": "Vyberte soubor, který chcete otevřít", + "openPassFor": "Heslo pro", + "openRemoveLastQuestion": "Opravdu chcete smazat místní soubor?", + "openRemoveLastQuestionBody": "Soubor, který chcete smazat, je uložen pouze uvnitř aplikace. Tento krok nebude možné vzít zpět. Opravdu chcete soubor smazat?", + "openRemoveLastQuestionModBody": "V souboru, který chcete odstranit, byly provedeny změny. Smazáním souboru o tyto změny přijdete. Opravdu chcete soubor smazat?", + "openLocalFile": "Místní soubor", + "openLocalFileBody": "Chystáte se otevřít soubor, který bude uložen uvnitř aplikace. Provedené změny nebudou uloženy zpátky na disk. Pro získání souboru s vašimi změnami ho můžete je exportovat v nastavení.", + "openLocalFileDontShow": "Příště nezobrazovat", + "openWrongFile": "Chybný soubor", + "openWrongFileBody": "Tento formát souboru není podporován. Tato aplikace umí pracovat pouze s formátem KeePass (kdbx).", + "openKdbFileBody": "Snažíte se otevřít starý formát databáze (přípona kdb). Tato aplikace podporuje pouze nový formát (přípona kdbx), použijte prosím aplikaci KeePass v2 pro konverzi formátu.", + "openConfigHeader": "{} – Nastavení", + "openUrl": "URL", + "openUrlDesc": "https://server/popis_umisteni/soubor.kdbx nebo soubor.kdbx", + "openUser": "Uživatelské jméno", + "openUserDesc": "WebDAV uživatel (je-li potřeba)", + "openUserPlaceholder": "žádný uživatel", + "openPass": "Heslo", + "openPassDesc": "WebDAV heslo (toto není heslo pro databázi)", + "openPassPlaceholder": "žádné heslo", + "openConfigError": "Chyba: {}", + "openConfigErrorNotFound": "Soubor nenalezen", + "openError": "Chyba", + "openErrorDescription": "Soubor se nepodařilo otevřít", + "openErrorDescriptionMaybeTouchIdChanged": "Tato chyba může být způsobena změnou nastavení Touch ID, např. přidáním nebo odebráním otisku prstu. Pokud jste takovou změnu provedli, otevřete Nastavení a podporu Touch ID vypněte a znovu zapněte.", + "openErrorFileNotFound": "Soubor nenalezen", + "openListErrorBody": "Seznam souborů se nepodařilo načíst", + "openShowAllFiles": "Zobrazit všechny soubory", + "openFileNoCacheError": "Soubor nenalezen v úložišti mazipaměti. Toto se může stát protože bylo vymazáno úložiště webového prohlížeče. Pokud chcete soubor soubor otevřít, odeberte ho z KeeWeb a znovu ho přidejte.", + "openChalRespHeader": "Výzva-odpověď", + "openChalRespLoading": "Načítání seznamu zařízení YubiKey", + "openChalRespSelectYubiKey": "Vyberte zařízení YubiKey, které chcete použít", + "openChalRespErrorEmpty": "Nenalezeno žádné zařízení YubiKey", + "openChalRespErrorEmptyMac": "Používáte tuto funkci na macOS poprvé? Aplikaci KeeWeb je třeba přidat do sekce Sledování vstupu v nastaveních zabezpečení.", + "detAttDownload": "Stiskněte klávesu shift a klepněte na tlačítko pro stažení přílohy nebo", + "detAttDelToRemove": "Smazat", + "detAttSave": "Uložit jako…", + "detEmpty": "Tady se zobrazí vaše hesla", + "detGroupRestore": "Pro obnovení této skupiny ji přetáhněte z koše kamkoliv jinam", + "detHistoryClickPoint": "Pro zobrazení historie klepněte na časovou osu", + "detHistoryReturn": "zpátky na záznam", + "detHistoryRevert": "Obnovit tento stav", + "detHistoryDel": "Smazat tento stav", + "detHistoryEmpty": "prázdný", + "detHistoryModified": "změněno", + "detHistoryRec": "záznam", + "detHistoryRecs": "záznamy", + "detHistoryVersion": "Verze", + "detHistorySaved": "Uloženo", + "detHistoryNoTitle": "bez názvu", + "detHistoryCurState": "současný stav", + "detHistoryCurUnsavedState": "současný neuložený stav", + "detHistoryRevertAlert": "Opravdu chcete obnovit tento stav z historie?", + "detHistoryRevertAlertBody": "Současný stav bude uložený do historie.", + "detHistoryDeleteAlert": "Opravdu chcete smazat tento stav z historie?", + "detHistoryDeleteAlertBody": "Tuto akci nelze vzít zpět.", + "detHistoryDiscardChangesAlert": "Opravdu chcete zahodit provedené změny?", + "detHistoryDiscardChangesAlertBody": "Neuložené změny budou ztraceny a už je nepůjde obnovit.", + "detBackToList": "zpět na seznam", + "detSetIconColor": "Změnit barvu", + "detSetIcon": "Změnit ikonu", + "detDropAttachments": "přílohy přetáhněte sem", + "detDelEntry": "Smazat", + "detDelEntryPerm": "Smazat trvale", + "detExpires": "Konec platnosti", + "detExpired": "platnost skončila", + "detGroup": "Skupina", + "detCreated": "Vytvořeno", + "detUpdated": "Změněno", + "detNetField": "Nová kolonka", + "detAttachments": "Přílohy", + "detDelFromTrash": "Trvale vymazat z koše?", + "detDelFromTrashBody": "Tuto akci nebude možné vzít zpět.", + "detDelFromTrashBodyHint": "Pro rychlé smazání všech záznamů v koši použijte tlačítko pro vyprázdnění v nabídce vedle koše.", + "detDelToTrash": "Opravdu chcete smazat tuto položku?", + "detDelToTrashBody": "Položka bude přesunuta do složky koše.", + "detFieldCopied": "Zkopírováno", + "detFieldCopiedTime": "Zkopírováno na {} sekund", + "detCopyHint": "Klepnutím na název pole jeho hodnotu zkopírujete do schránky", + "detMore": "další", + "detClickToAddField": "pokud chcete přidat novou kolonku, klikněte", + "detMenuAddNewField": "Přidat novou kolonku", + "detMenuAddNewWebsite": "Přidat další webovou stránku", + "detMenuShowEmpty": "Zobrazit prázdné kolonky", + "detMenuHideEmpty": "Skrýt prázdné kolonky", + "detMenuAddField": "Přidat {}", + "detMenuCopyPassword": "Zkopírovat heslo", + "detMenuCopyUser": "Zkopírovat uživatelské jméno", + "detMenuCopyOtp": "Zkopírovat jednorázový kód", + "detSetupOtp": "Jednorázové kódy", + "detClone": "Vytvořit kopii", + "detCopyEntryToClipboard": "Zkopírovat všechny kolonky", + "detClonedName": "Kopírovat", + "detAutoType": "Automaticky vyplnit", + "detAutoTypeSettings": "Nastavit automatické vyplňování", + "detAutoTypeEnabled": "Zapnout automatické vyplňování pro tuto položku", + "detAutoTypeSequence": "Stisky kláves", + "detAutoTypeInput": "Vstup", + "detAutoTypeShortcutsDesc": "{} nebo {}, zatímco je aplikace neaktivní", + "detAutoTypeObfuscation": "Smíchat opravdové stisky kláves s náhodnými", + "detAutoTypeWindow": "Okno", + "detAutoTypeInputWindow": "Název okna", + "detSetupOtpAlert": "Naskenujte QR kód ", + "detSetupOtpAlertBody": "Zkopírujte QR kód, který je zobrazen na autorizační stránce.", + "detSetupOtpAlertBody1": "1. otevřete autorizační stránku", + "detSetupOtpAlertBody2": "2. pořiďte snímek QR kódu pomocí {}", + "detSetupOtpAlertBody3": "3. snímek vložte sem pomocí {}", + "detSetupOtpAlertBody3Mobile": "3. pomocí tlačítka Vybrat/Skenovat (níže) QR kód vyberte nebo naskenujte", + "detSetupOtpAlertBody4": "Pokud nemůžete kód naskenovat, klepněte na Vložit kód ručně", + "detSetupOtpManualButton": "Vložit kód ručně", + "detSetupOtpScanButton": "Vybrat/Skenovat", + "detSetupOtpAlertBodyWith": "s {}", + "detOtpImageError": "Chyba při čtení obrázku", + "detOtpImageErrorBody": "Je nám líto, ale tento formát obrázku nelze přečíst. Kontaktujte prosím autory aplikace s popisem problému.", + "detOtpImageReading": "Čtení QR kódu…", + "detOtpQrError": "Chyba při skenování QR kódu", + "detOtpQrErrorBody": "Je nám líto, ale QR kód nelze přečíst. Zkuste to ještě jednou, nebo kontaktujte autory aplikace s popisem problému.", + "detOtpQrWrong": "Nesprávný QR kód", + "detOtpQrWrongBody": "QR kód byl úspěšně naskenován, ale neobsahuje žádná data pro jednorázové kódy.", + "detOtpField": "Jednorázový kód", + "detOtpClickToTouch": "Klikněte a bude vytvořeno", + "detOtpGenerating": "Vytváření…", + "detOtpTouch": "Dotkněte se zařízení {}", + "detLockField": "Uzamknout tuto kolonku, takže její obsah nebude součástí vyhledávání a viditelný. Zobrazení obsahu vyžaduje výslovné kliknutí na ni.", + "detUnlockField": "Odemknut tuto kolonku, takže obsah bude součástí vyhledávání a okamžitě viditelný", + "detRevealField": "Zobrazit", + "detHideField": "Skrýt", + "detAutoTypeField": "Automaticky vyplňování", + "detIssuesHideTooltip": "Skrýt toto varování", + "detIssueWeakPassword": "Toto heslo je slabé. Doporučujeme ho změnit.", + "detIssuePoorPassword": "Toto heslo je velmi slabé. Důrazně doporučujeme ho změnit.", + "detIssuePwnedPassword": "Toto heslo bylo podle informací {} součástí úniku dat. Doporučujeme ho změnit.", + "detIssuePasswordCheckError": "Při online kontrole síly hesla došlo k chybě.", + "detIssueOldPassword": "Toto heslo je staré.", + "detIssueCloseAlertHeader": "Skrýt informace o problémech hesla", + "detIssueCloseAlertBody": "Existuje i jiný způsob, jak toto varování skrýt:", + "detIssueCloseAlertEntry": "Pro tuto položku už nezobrazovat", + "detIssueCloseAlertSettings": "Upravit obecná nastavení", + "autoTypeEntryFields": "Položky záznamu", + "autoTypeModifiers": "Speciální klávesy", + "autoTypeKeys": "Klávesy", + "autoTypeLink": "více…", + "autoTypeError": "Chyba automatického vyplňování", + "autoTypeErrorGeneric": "Při automatickém vyplňování došlo k chybě: {}", + "autoTypeErrorAccessibilityMacOS": "Bylo vyzkoušeno poslat do aplikace stisky kláves, ale zdá se, že to nefunguje. To se může stát z důvodu chybějících oprávnění. Pokud se chcete dozvědět více, klikněte sem:", + "autoTypeErrorGlobal": "Pokud chcete použít systémovou klávesovou zkratku, klepněte do aplikace, kde chcete heslo zadat", + "autoTypeErrorNotInstalled": "{} není nainstalován", + "autoTypeHeader": "Automatické vyplňování: Výběr", + "autoTypeMsgNoWindow": "Nepodařilo se najít aktivní okno, pro vyhledávání začněte psát", + "autoTypeMsgMatchedByWindow": "Vybrat heslo pro {}", + "autoTypeNoMatches": "žádná shoda", + "autoTypeSelectionHint": "Posloupnost automatického vyplňování", + "autoTypeSelectionHintAction": "Vyplnit pouze heslo", + "autoTypeSelectionHintOpt": "Vyplnit pouze uživatelské jméno", + "autoTypeSelectionHintShift": "Další kolonky", + "autoTypeSelectionOtp": "Jednorázový kód", + "autoTypeUnlockMessage": "Odemknout automatické vyplňování", + "appSecWarn": "Není bezpečné!", + "appSecWarnBody1": "Načetli jste aplikaci přes nezabezpečené spojení. Někdo může číst váš obsah a pokusit se vaše hesla ukrást. Důrazně doporučujeme přestat, pokud opravdu nevíte, co děláte.", + "appSecWarnBody2": "Ano, vaše databáze zašifrována je, ale nikdo nemůže zaručit, že aplikace nebyla někým upravena na cestě k vám.", + "appSecWarnBtn": "Rozumím tomuto nebezpečí, chci pokračovat", + "appUnsavedWarn": "Neuložili jste změny!", + "appUnsavedWarnBody": "Máte neuložené soubory. Pokud aplikaci zavřete, všechny změny budou ztraceny", + "appDontExitBtn": "Neodcházet", + "appCannotLockAutoInit": "Aplikace nemůže být zamčena, protože je vypnuto automatické ukládání.", + "appCannotLock": "Máte neuložené změny, které budou ztraceny. Chcete přesto pokračovat?", + "appAutoSave": "Automaticky ukládat změny", + "appSaveError": "Chyba při ukládání", + "appSaveErrorBody": "Nepodařilo se automaticky uložit soubor", + "appSaveErrorBodyMul": "Nepodařilo se automaticky uložit soubory:", + "appSaveErrorExitLoseChanges": "Ukončit a zahodit všechny změny", + "appSaveErrorExitLoseChangesBody": "Můžete buď ukončit aplikaci a tím zahodit všechny změny, nebo otevřít nastavení souboru a data exportovat", + "appSettingsError": "Chyba načítání aplikace", + "appSettingsErrorBody": "Došlo k chybě při načítání nastavení aplikace. Zkontrolujte prosím URL aplikace nebo se obraťte na svého správce.", + "appNotSupportedError": "Váš prohlížeč nepodporuje některé důležité funkce, které aplikace používá.", + "appTabWarn": "Příliš mnoho panelů", + "appTabWarnBody": "KeeWeb nelze používat ve dvou panelech zároveň, zavřete prosím tento panel.", + "appRightsAlert": "Uzamykání aplikace KeeWeb", + "appRightsAlertBody1": "Aplikace KeeWeb v této chvíli není chráněna proti neoprávněným změnám. Žádáme vás o tato oprávnění, abychom mohli povolit aplikaci měnit pouze správcům.", + "appRightsAlertBody2": "Nechcete oprávnění udělit? Můžete změny provést sami pomocí Terminálu", + "appBrowserAuthComplete": "Ověření dokončeno, nyní můžete tento panel zavřít.", + "setGenTitle": "Obecná nastavení", + "setGenUpdate": "Aktualizace", + "setGenNewVersion": "Byla vydána a staženo nová verze aplikace", + "setGenReleaseNotes": "Poznámky k vydání", + "setGenReloadToUpdate": "Pro dokončení aktualizace znovu načtěte stránku", + "setGenUpdateManual": "Byla vydána nová verze. Kontrola a aktualizace probíhá automaticky, ale automatická aktualizace z vaší verze není možná.", + "setGenDownloadUpdate": "Stáhnout aktualizaci", + "setGenUpdateAuto": "Automaticky stáhnout a nainstalovat", + "setGenUpdateCheck": "Zkontrolovat, ale neinstalovat", + "setGenNoUpdate": "Nikdy nekontrolovat dostupnost aktualizací", + "setGenUpdateChecking": "Kontrola dostupnosti aktualizací", + "setGenCheckUpdate": "Zkontrolovat dostupnost aktualizací", + "setGenErrorChecking": "Chyba při kontrole dostupnosti aktualizací", + "setGenLastCheckSuccess": "Poslední úspěšná kontrola dostupnosti aktualizací proběhla {}", + "setGenLastCheckVer": "poslední verze byla {}", + "setGenCheckedAt": "Zkontrolováno", + "setGenLatestVer": "používáte nejnovější verzi", + "setGenNewVer": "je k dispozici nová verze {}, vydaná", + "setGenDownloadingUpdate": "Stahování aktualizace…", + "setGenExtractingUpdate": "Rozbalování aktualizace…", + "setGenCheckErr": "Novou verzi se nepodařilo stáhnout", + "setGenNeverChecked": "Dostupnost aktualizací nebyla nikdy zkontrolována", + "setGenRestartToUpdate": "Restartovat KeeWeb pro provedení aktualizace", + "setGenDownloadAndRestart": "Stáhnout aktualizaci a restartovat", + "setGenAppearance": "Vzhled", + "setGenTheme": "Motiv vzhledu", + "setGenThemeDefault": "Výchozí", + "setGenThemeDark": "Tmavý", + "setGenThemeLight": "Světlý", + "setGenThemeBlue": "Plochý modrý", + "setGenThemeFb": "Tmavě modrý", + "setGenThemeBl": "Světle modrý", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Tmavě hnědá", + "setGenThemeLb": "Světle hnědý", + "setGenThemeTerminal": "Terminál", + "setGenThemeTe": "Terminál", + "setGenThemeLt": "Světlý terminál", + "setGenThemeHighContrast": "Vysoký kontrast", + "setGenThemeHc": "Vysoký kontrast", + "setGenThemeDc": "Tmavý kontrast", + "setGenThemeSol": "Solarized", + "setGenThemeSd": "Solarized tmavý", + "setGenThemeSl": "Solarized světlý", + "setGenMoreThemes": "Další motivy vzhledu", + "setGenAutoSwitchTheme": "Automaticky přepínat mezi světlým a tmavým motivem, když je to možné", + "setGenLocale": "Jazyk", + "setGenLocOther": "další jazyky jsou dostupné formou doplňků", + "setGenFontSize": "Velikost písma", + "setGenFontSizeNormal": "Normální", + "setGenFontSizeLarge": "Velké", + "setGenFontSizeLargest": "Největší", + "setGenTitlebarStyle": "Styl okna (vyžaduje restart)", + "setGenTitlebarStyleDefault": "Výchozí", + "setGenTitlebarStyleHidden": "Vlastní název", + "setGenTitlebarStyleHiddenInset": "Vlastní název, přetažitelné okno", + "setGenShowSubgroups": "Ukazovat záznamy ze všech podskupin", + "setGenTableView": "Zobrazit seznam záznamů jako tabulku", + "setGenColorfulIcons": "Zobrazit v seznamu vlastní barevné ikony", + "setGenUseMarkdown": "Povolit použít v poznámkách Markdown", + "setGenUseGroupIconForEntries": "Automaticky pro nové položky použít ikonu skupiny", + "setGenDirectAutotype": "Pokud je nalezena pouze jedna odpovídající položka, vybrat ji automaticky pro automatické vyplnění", + "setGenFunction": "Funkce", + "setGenAutoSyncOnClose": "Při zavření automaticky uložit a synchronizovat", + "setGenAutoSyncTimer": "Pravidelně automaticky ukládat a synchronizovat", + "setGenAutoSyncTimerOff": "Vypnuto", + "setGenAutoSyncTimerInterval": "Každých {} minut", + "setGenRememberKeyFiles": "Pamatovat si soubory s klíčem", + "setGenNoRememberKeyFiles": "Nepamatovat", + "setGenRememberKeyFilesData": "Ukládat ve vnitřní paměti aplikace", + "setGenRememberKeyFilesPath": "Pamatovat si pouze cesty k souborům s klíči", + "setGenLockInactive": "Pokud aplikace není aktivní", + "setGenNoAutoLock": "Nezamykat", + "setGenLockMinutes": "Po {} minutách", + "setGenLockHour": "Po hodině", + "setGenLockHours": "Po {} hodinách", + "setGenLockDay": "Po jednom dni", + "setGenClearClip": "Vymazat obsah schránky po kopírování", + "setGenNoClear": "Nemazat", + "setGenClearSeconds": "Po {} sekundách", + "setGenClearMinute": "Po minutě", + "setGenMinInstead": "Minimalizovat aplikaci místo zavření", + "setGenMinOnFieldCopy": "Minimalizovat po zkopírování pole", + "setGenLock": "Automaticky uzamknout", + "setGenLockMinimize": "Pokud je aplikace minimalizována", + "setGenLockCopy": "Po zkopírování hesla", + "setGenLockAutoType": "Po automatickém vyplnění", + "setGenLockOrSleep": "Pokud je počítač uzamčen nebo uspán", + "setGenStorage": "Úložiště", + "setGenDisableOfflineStorage": "Neukládat načtené soubory do mezipaměti", + "setGenShortLivedStorageToken": "Použít dočasné relace v poskytovatelích cloudových úložišť", + "setGenStorageLogout": "Odhlásit", + "setGenShowAdvanced": "Zobrazit pokročilá nastavení", + "setGenDevTools": "Zobrazit nástroje pro vývojáře", + "setGenTryBeta": "Vyzkoušet beta verzi až do příštího restartu", + "setGenTryBetaWarning": "Neuložené soubory", + "setGenTryBetaWarningBody": "Uložte všechny soubory a klepněte znovu na toto tlačítko", + "setGenShowAppLogs": "Ukázat protokol aplikace", + "setGenReloadApp": "Znovu načíst aplikaci", + "setGenFieldLabelDblClickAutoType": "Automaticky vyplnit při dvojkliku na štítky kolonek", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Nepoužívat Touch ID", + "setGenTouchIdMemory": "Odemknout pomocí Touch ID jen pokud KeeWeb běží", + "setGenTouchIdFile": "Vždy použít Touch ID místo hlavního hesla", + "setGenTouchIdPass": "Vyžadovat hlavní heslo", + "setGenAudit": "Audit", + "setGenAuditPasswords": "Zobrazovat varování ohledně síly hesel", + "setGenAuditPasswordEntropy": "Kontrolovat odolnost hesel", + "setGenExcludePinsFromAudit": "Nekontrolovat krátké číselné PIN kódy, jako např. 123456", + "setGenCheckPasswordsOnHIBP": "Kontrolovat hesla pomocí online služby {}", + "setGenHelpHIBP": "Aplikace KeeWeb umí pomocí online služeb kontrolovat, zda vaše hesla nebyla součástí nějakého úniku dat. Vaše hesla nebudou součástí odesílaných dat, ale může být možné odhadnout jejich počet. Více informací o ochraně vašich osobních údajů najdete {}. Pokud je tato funkce zapnutá, aplikace KeeWeb bude automaticky kontrolovat vaše hesla.", + "setGenHelpHIBPLink": "zde", + "setGenAuditPasswordAge": "Stará hesla", + "setGenAuditPasswordAgeOff": "Nezobrazovat varování na stará hesla", + "setGenAuditPasswordAgeOneYear": "Zobrazovat varování pro hesla starší než jeden rok", + "setGenAuditPasswordAgeYears": "Zobrazovat varování pro hesla starší než {} let", + "setFilePath": "Popis umístění souboru", + "setFileStorage": "Tento soubor byl nahrán z {}.", + "setFileIntl": "Tento soubor je uchován v interním úložišti aplikace", + "setFileLocalHint": "Chcete snáze pracovat s místními soubory?", + "setFileDownloadApp": "Stáhnout aplikaci pro počítač", + "setFileSave": "Uložit", + "setFileSaveTo": "Uložit do…", + "setFileClose": "Zavřít", + "setFileSync": "Synchronizace", + "setFileSyncVerb": "Synchronizace", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Naposledy synchronizováno", + "setFileLastSyncUnknown": "neznámo", + "setFileSyncInProgress": "probíhá synchronizace", + "setFileSyncError": "Chyba synchronizace", + "setFilePass": "Hlavní heslo", + "setFileConfirmPass": "Hlavní heslo (potvrzení)", + "setFilePassChange": "pokud chcete změnit své heslo, zadejte ho do kolonky Potvrzení", + "setFilePassChanged": "heslo bylo změněno; nevyplňujte pole, chcete-li použít staré heslo", + "setFilePassNotMatch": "hesla nesouhlasí, zadejte ho prosím znovu", + "setFileKeyFile": "Soubor s klíčem", + "setFileSelKeyFile": "Vyberte soubor s klíčem", + "setFileNames": "Názvy", + "setFileDefUser": "Výchozí uživatelské jméno", + "setFileEnableTrash": "Povolit koš", + "setFileHistMode": "Historie položky", + "setFileHistLimited": "Automaticky mazat staré záznamy z historie", + "setFileHistDisabled": "Neukládat historii", + "setFileHistUnlimited": "Ukládat historii navždy", + "setFileHistLen": "Délka historie, ponechat nejnovější položky v historii záznamu", + "setFileHistSize": "Velikost historie, celkem MB na soubor", + "setFileBackups": "Zálohy", + "setFileBackupEnable": "Zálohovat tento soubor", + "setFileBackupPath": "Cesta pro zálohování", + "setFileBackupTime": "Provádět zálohy", + "setFileBackupNow": "Zálohovat nyní", + "setFileBackupNowWorking": "Provádí se…", + "setFileBackupError": "Zálohování se nezdařilo", + "setFileBackupErrorDescription": "Zálohu se nepodařilo zapsat", + "setFileBackupErrorIsDir": "Neplatný popis umístění pro zálohování", + "setFileBackupErrorIsDirDescription": "Popis umístění zálohy zdá se míří na složku. Zadejte namísto toho název souboru ve složce.", + "setFileBackupOnSave": "Při každém uložení souboru", + "setFileBackupDaily": "Denně", + "setFileBackupWeekly": "Týdně", + "setFileBackupMonthly": "Měsíčně", + "setFileBackupManually": "Ručně, žádné automatické zálohy", + "setFileRounds": "Počet šifrovacích cyklů", + "setFileKdfParams": "Funkce pro odvození klíče", + "setFileKdfParamsIter": "Počet průchodů", + "setFileKdfParamsMem": "Paměť, KB", + "setFileKdfParamsPar": "Paralelismus", + "setFileKeyChangeForce": "Vyžadovat změnu klíče po (dnech)", + "setFileUseKeyFile": "Použít soubor s klíčem", + "setFileUseGenKeyFile": "Použít vygenerovaný soubor s klíčem", + "setFileUseOldKeyFile": "Použít starý soubor s klíčem", + "setFileGenKeyFile": "Generovat nový soubor s klíčem", + "setFileDontUseKeyFile": "Nepoužívat soubor s klíčem", + "setFileEmptyPass": "Prázdné heslo", + "setFileEmptyPassBody": "Uložení databáze bez hesla ji ponechá naprosto nechráněnou. Opravdu chcete uložit databázi nechráněnou?", + "setFileSaveError": "Uložit chybu", + "setFileSaveErrorBody": "Chyba při ukládání do souboru", + "setFileAlreadyExists": "Už existuje", + "setFileAlreadyExistsBody": "Soubor {} už existuje. Chcete ho přepsat?", + "setFileUnsaved": "Neuložené změny", + "setFileUnsavedBody": "Tento soubor obsahuje neuložené změny", + "setFileCloseNoSave": "Zavřít a zahodit změny", + "setFileDontClose": "Nezavírat", + "setFileFormatVersion": "Formát souboru", + "setFileExportRaw": "Export vašich hesel", + "setFileExportRawBody": "Exportovaný soubor bude obsahovat vaše hesla v čitelné podobě. Opravdu chcete pokračovat?", + "setFileDeviceIntro": "Jednorázové kódy z tohoto zařízení {} se budou zobrazovat v aplikaci.", + "setFileDeviceSettings": "Nastavení", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Nepoužívat YubiKey", + "setFileRefreshYubiKeyList": "Obnovit seznam", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Použití YoubiKey jako součást hlavního klíče je nebezpečné a může vést ke ztrátě vašeho hesla, pokud se něco pokazí. Udělali jste si zálohu svého souboru před změnou nastavení?", + "setFileYubiKeyErrorEmptyMac": "Vypadá to, že YoubiKey je připojeno, ale není viditelné. Aby bylo možné přistupovat k YoubiKey zařízením, aplikaci KeeWeb je třeba přidat do sekce Sledování vstupu v nastaveních zabezpečení.", + "setShTitle": "Zkratky", + "setShShowAll": "ukázat vše", + "setShColors": "ukázat obarvené položky", + "setShTrash": "přejít do koše", + "setShFind": "hledání, nebo prostě začněte psát", + "setShClearSearch": "vymazat hledání", + "setShCopyPass": "zkopírovat heslo nebo vybrané pole", + "setShCopyUser": "zkopírovat uživatelské jméno", + "setShCopyUrl": "zkopírovat webovou stránku", + "setShAutoType": "Automaticky vyplnit vybranou položku", + "setShPrev": "Přejít na předchozí položku", + "setShNext": "Přejít na další položku", + "setShCreateEntry": "Vytvořit položku", + "setShOpen": "otevřít / nový", + "setShSave": "uložit všechny soubory", + "setShGen": "vygenerovat heslo", + "setShSet": "nastavení aplikace", + "setShCopyPassGlobal": "zkopírovat heslo", + "setShCopyOtp": "zkopírovat OTP", + "setShAutoTypeGlobal": "automaticky vyplnit", + "setShCopyPassOnly": "zkopírovat heslo", + "setShRestoreApp": "otevřít {}", + "setShGlobal": "Tyto klávesové zkratky, platné pro celý systém, fungují, když je aplikace spuštěná na pozadí. Je možné na ně kliknout a vybrat si vlastní zkratku.", + "setShLock": "zamknout databázi", + "setShEdit": "Stiskněte novou kombinaci kláves, kterou chcete použít jako zkratku", + "setPlInstallTitle": "Nainstalovat nové doplňky", + "setPlInstallDesc": "Doplňky přidávají do aplikace KeeWeb funkce, motivy nebo jazyky. Doplňky běží se stejnými právy jako aplikace KeeWeb samotná, a mají přístup ke všem vašim heslům. Nikdy neinstalujte doplňky, kterým nedůvěřujete.", + "setPlInstallLabel": "URL doplňku", + "setPlInstallBtn": "Instalovat", + "setPlInstallBtnProgress": "Probíhá instalace", + "setPlUninstallBtn": "Odinstalovat", + "setPlDisableBtn": "Vypnout", + "setPlEnableBtn": "Zapnout", + "setPlUpdateBtn": "Aktualizovat", + "setPlLocaleBtn": "Použít tento jazyk", + "setPlThemeBtn": "Použít tento motiv vzhledu", + "setPlJs": "kód", + "setPlCss": "styly", + "setPlLoc": "jazyk", + "setPlCreatedBy": "Autor: {}", + "setPlLoadTime": "načítání trvalo {}", + "setPlLastUpdate": "Poslední kontrola aktualizací", + "setPlLoadError": "doplněk se nepodařilo nahrát", + "setPlGalleryLoading": "Načítání doplňků, počkejte prosím", + "setPlGalleryLoadError": "Doplňky se nepodařilo načíst", + "setPlInstallUrlTitle": "Přidat doplněk z URL", + "setPlInstallUrlDesc": "Pokud doplněk není v galerii, můžete ho nainstalovat ručně z URL", + "setPlOfficial": "Oficiální doplněk aplikace KeeWeb", + "setPlSearch": "Hledat doplňky", + "setPlDevelop": "Chcete vyvíjet své vlastní doplňky?", + "setPlDevelopStart": "Podívejte se sem", + "setPlTranslate": "Nebo můžete {}", + "setPlTranslateLink": "přeložit aplikaci do svého jazyka", + "setPlAutoUpdate": "Automaticky aktualizovat", + "setPlLoadGallery": "Nahrát galerii doplňků", + "setBrowserTitle": "Prohlížeč", + "setBrowserIntroDesktop": "KeeWeb může vkládat hesla pomocí automatického vyplňování, nicméně rozšíření pro webový prohlížeč může být lepší způsob. KeeWeb podporuje dvě rozšíření pro prohlížeč:", + "setBrowserIntroKeeWebConnect": "oficiální KeeWeb rozšíření, které je vytvořené s ohledem na funkce KeeWeb, ale mohou vám chybět některé pokročilejší schopnosti, které je možné nalézt v jiných rozšířeních.", + "setBrowserIntroKeePassXcBrowser": "toto rozšíření bylo vyvinuto pro KeePassXC, už je vydáváno po dlouhou dobu a je dost solidní. Toto rozšíření není součástí KeeWeb a mohou zde být problémy s kompatibilitou.", + "setBrowserIntroWeb": "Pokud chcete automaticky vyplňovat hesla na různých stránkách, nainstalujte si naše rozšíření pro webový prohlížeč. Toto rozšíření se připojí k panelu s KeeWeb ve vašem prohlížeči a bude z něho získávat hesla. Pro stažení rozšíření klikněte sem:", + "setBrowserNotEnabled": "Napojení na prohlížeč není zapnuto, rozšíření se nebudou moci připojovat ke KeeWeb. Zapněte ho zaškrtnutím níže uvedených kolonek:", + "setBrowserEnablePerBrowser": "Zapněte napojení na prohlížeč pomocí zatržítek níže:", + "setBrowserFocusIfLocked": "Pokud se rozšíření pro prohlížeč pokouší připojit, zatímco není otevřený žádný soubor, otevřít KeeWeb", + "setBrowserFocusIfEmpty": "V případě, že není nalezena shoda v URL adrese, zobrazit obrazovku pro výběr položky", + "setBrowserOtherBrowsers": "Další prohlížeče", + "setBrowserExtensionFor": "pro {}", + "setBrowserExtensionNotSupported": "Nepodporováno", + "setBrowserExtensionHelp": "Jak nainstalovat?", + "setBrowserExtensionInstall": "Nainstalovat rozšíření", + "setBrowserExtensionKPXCWarnHeader": "{} přestane fungovat", + "setBrowserExtensionKPXCWarnBody1": "Žel není možné napojit jedno rozšíření na několik aplikací. Pokud rozšíření napojíte na KeeWeb, bude přepsáno jeho napojení na aplikaci, což znamená, že napojení na {} přestane fungovat. I když následně zrušíte zaškrtnutí této kolonky, přiřazení k {} nebude obnoveno. Aby znovu fungovalo, nastavte napojení na prohlížeč v nastavení {}.", + "setBrowserExtensionKPXCWarnBody2": "Nastavit rozšíření pro KeeWeb?", + "setBrowserSessions": "Relace", + "setBrowserSessionsEmpty": "Žádné připojené relace.", + "setBrowserSessionsIntro": "S aplikací KeeWeb jsou spojená tato rozšíření.", + "setBrowserSessionsActiveTooltip": "Aktivní relace", + "setBrowserSessionsActiveText": "Tato relace je aktivní a může si s aplikací KeeWeb vyměňovat data při dodržení následujících oprávnění:", + "setBrowserSessionsInactiveTooltip": "Neaktivní relace", + "setBrowserSessionsInactiveText": "Tato relace není aktivní. Rozšíření je spojeno s KeeWeb, nicméně nepokouší se vyměňovat si data. Když rozšíření něco vyžádá, budete moci zvolit, co chcete sdílet.", + "setBrowserSessionsDeniedTooltip": "Přístup zamítnut", + "setBrowserSessionsDeniedText": "Tato relace není aktivní. Rozšíření je spojeno s KeeWeb, nicméně jste odepřeli přístup k datům.", + "setBrowserSessionsConnectedDate": "Připojeno", + "setBrowserSessionsTerminate": "Ukončit tuto relaci", + "setBrowserSessionsAccessToFiles": "Povolit přístup k souborům", + "setBrowserSessionsNoFileAccess": "Toto rozšíření nemá přístup k žádnému souboru a nemůže tak z aplikace KeeWeb získat žádná hesla.", + "setBrowserSessionsPasswordsRead": "Počet přečtených hesel", + "setBrowserSessionsPasswordsWritten": "Počet uložených hesel", + "setDevicesTitle": "Zařízení", + "setDevicesEnableUsb": "Povolit interakci s USB zařízeními", + "setDevicesYubiKeyIntro": "Před použitím zařízení YubiKey vám doporučujeme přečíst {}.", + "setDevicesYubiKeyIntroLink": "tento dokument", + "setDevicesYubiKeyToolsDesc": "Pro používání zařízení YubiKey v tomto režimu si nainstalujte nástroj {}.", + "setDevicesYubiKeyToolsDesc2": "Pokud chcete zjistit další informace o tomto nástroji, {}.", + "setDevicesYubiKeyToolsDescLink": "Klepněte zde", + "setDevicesYubiKeyToolsStatusChecking": "Probíhá kontrola, zda je nainstalovaný nástroj {}", + "setDevicesYubiKeyToolsStatusOk": "Nástroj {} je nainstalovaný", + "setDevicesYubiKeyToolsStatusError": "Nástroj {} není nainstalovaný, nebo nefunguje", + "setDevicesYubiKeyOtpTitle": "Jednorázové kódy", + "setDevicesYubiKeyOtpDesc": "YubiKey je možné použít pro vytváření jednorázových kódů pro různé služby.", + "setDevicesYubiKeyOtpShowIcon": "Zobrazovat ikonu na obrazovce při spouštění", + "setDevicesYubiKeyOtpAutoOpen": "Automaticky načíst jednorázové kódy, pokud jsou otevřené soubory", + "setDevicesYubiKeyOtpMatchEntries": "Zobrazit odpovídající jednorázové kódy v položkách", + "setDevicesYubiKeyChalRespTitle": "Výzva-odpověď", + "setDevicesYubiKeyChalRespDesc": "Je také možné použít zařízení YubiKey v režimu výzva-odpověď, takže soukromý klíč, sloužící pro šifrování souborů, se nachází na YubiKey.", + "setDevicesYubiKeyChalRespShow": "Zobrazit možnost použít YubiKey při otevírání souborů", + "setDevicesYubiKeyStuckWorkaround": "Znovu připojit YubiKey, pokud se bude zdát, že došlo k zaseknutí při načítání", + "setDevicesYubiKeyRememberChalResp": "Zapamatovat si výzvu-odpověď po dobu otevření aplikace", + "setAboutTitle": "O aplikaci", + "setAboutBuilt": "Tato aplikace je vytvořena pomocí těchto úžasných nástrojů", + "setAboutLic": "Licence", + "setAboutLicComment": "Samotná aplikace a všechny obsažené komponenty, pokud není uvedeno jinak, jsou licencovány pod licencí MIT", + "setAboutFirst": "Autorem této open-source aplikace je {}", + "setAboutSecond": "a je dostupná pod licencí {}", + "setAboutSource": "Zdrojové kódy a hlášení chyb najdete na {}", + "setHelpFormat": "Formát souboru", + "setHelpFormatBody": "Toto je port aplikace {} postavený na webových technologiích. Rozumí souborům ve formátu KeePass (kdbx). Tyto soubory (databáze hesel) můžete vytvářet jak v aplikaci Keepass, tak v této aplikaci. Formát souboru je 100% kompatibilní a měly by mu rozumět obě aplikace.", + "setHelpProblems": "Potřebujete pomoc?", + "setHelpProblems1": "Pokud něco nefunguje, {}", + "setHelpProblems2": "nebo {}", + "setHelpOpenIssue": "nahlaste to prosím prostřednictvím portálu Github", + "setHelpContactLink": "napište přímo vývojáři", + "setHelpAppInfo": "Informace o aplikaci", + "setHelpOtherPlatforms": "Další platformy", + "setHelpDesktopApps": "Aplikace pro počítač", + "setHelpWebApp": "Webová aplikace", + "setHelpUpdates": "Aktualizace", + "setHelpTwitter": "Účet na Twitteru", + "dropboxSetupDesc": "K používání Dropboxu v samostatné aplikaci je zapotřebí určitá konfigurace. Vytvořte prosím vlastní v Dropboxu aplikaci a vyplňte zde její klíč.", + "dropboxAppKey": "Klíč aplikace Dropbox", + "dropboxAppKeyDesc": "Zkopírujte klíč z vaší aplikace v Dropboxu (nastavení pro vývojáře/developer settings)", + "dropboxAppKeyHint": "klíč vaší aplikace", + "dropboxAppSecret": "Tajemství pro Dropbox aplikaci", + "dropboxAppSecretDesc": "Tajemství se nachází vedle klíče aplikace", + "dropboxFolder": "Složka aplikace", + "dropboxFolderDesc": "Pokud vaše aplikace používá celý Dropbox (ne jen složku aplikace), nastavte zde složku s kdbx soubory", + "dropboxFolderSettingsDesc": "Vyberte jakoukoliv složku ve svém Dropboxu, kde budou uchovány soubory (výchozí je kořenová složka)", + "dropboxFolderPlaceholder": "výchozí složka", + "dropboxLink": "Propojit aplikaci s:", + "dropboxLinkApp": "Složka aplikace (Apps/KeeWeb)", + "dropboxLinkFull": "Celý Dropbox nebo jakákoliv složka", + "dropboxLinkCustom": "Vlastní aplikace v Dropboxu", + "gdriveSharedWithMe": "Sdíleno s vámi", + "gdriveSharedDrives": "Sdílené složky", + "gdriveTeamDrives": "Týmové složky", + "webdavSaveMethod": "Uložit metodu", + "webdavSaveMove": "Nahrát dočasný soubor a následně ho přesunout", + "webdavSavePut": "Přepsat kbdx soubor metodou PUT", + "webdavNoLastModified": "HTTP hlavička Last-Modified chybí", + "webdavStatReload": "Vždy soubor znovu načíst bez ohledu na HTTP hlavičku Last-Modified", + "launcherSave": "Uložit databázi hesel", + "launcherFileFilter": "soubory aplikace KeePass", + "authPopupRequired": "Vyskakovací okna jsou blokována", + "authPopupRequiredBody": "Povolte ve svém prohlížeči vyskakovací okno pro tuto aplikaci.", + "exportFileInfo": "Informace o souboru", + "exportHtmlName": "Název", + "exportHtmlDate": "Datum exportu", + "exportGenerator": "Software", + "exportDescription": "Tento soubor byl vytvořen aplikací {}.", + "importCsvTitle": "Importovat z CSV", + "importCsvRun": "Importovat", + "importIgnoreField": "Ignorovat", + "importTo": "Položky budou importovány do", + "importNewFile": "Nový soubor", + "yubiKeyStuckError": "YubiKey se zdá se zaseklo, automatické opravení je možné zapnout v nastavení aplikace.", + "yubiKeyNoKeyHeader": "Vyžadováno zařízení YubiKey", + "yubiKeyNoKeyBody": "Připojte své zařízení YubiKey se sériovým číslem {}", + "yubiKeySlot": "slot", + "yubiKeyTouchRequestedHeader": "Dotkněte se příslušné části zařízení YubiKey", + "yubiKeyTouchRequestedBody": "Dotkněte se příslušné části svého zařízení YubiKey se sériovým číslem {}", + "yubiKeyDisabledErrorHeader": "USB je vypnuto", + "yubiKeyDisabledErrorBody": "Pro otevření tohoto souboru je zapotřebí YubiKey, v nastaveních proto zapněte proto přístup k USB zařízením.", + "yubiKeyErrorWithCode": "Chyba YubiKey, kód {}.", + "bioOpenAuthPrompt": "otevřít „{}“", + "extensionErrorNoOpenFiles": "Žádné otevřené soubory", + "extensionErrorUserRejected": "Požadavek byl odepřen", + "extensionErrorNoMatches": "Žádné odpovídající přihlašovací údaje", + "extensionErrorAlertDisplayed": "Nyní není možné pokládat dotazy, protože je zobrazen jiný dialog – prosíme zkuste to znovu", + "extensionConnectHeader": "Výměna dat s rozšířením pro prohlížeč", + "extensionConnectIntro": "Rozšíření pro prohlížeč, které se identifikuje jako {} se pokouší o výměnu dat s KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb neověřuje, zda je připojená aplikaci tím, čím předstírá být. Požadavek schvalte pouze pokud tuto aktivitu poznáváte.", + "extensionConnectFiles": "V této relaci, umožnit přístup k:", + "extensionConnectAllOtherFiles": "Všechny ostatní soubory", + "extensionConnectAllFiles": "Všechny soubory", + "extensionConnectAskGet": "Zeptat se před odeslání hesel do rozšíření pro prohlížeč:", + "extensionConnectAskGetMultiple": "pokud je zde více než jedna shoda", + "extensionConnectAskGetAlways": "vždy", + "extensionConnectAskSave": "Zeptat se před uložením nových hesel do KeeWeb:", + "extensionConnectAskSaveAlways": "vždy", + "extensionConnectAskSaveAuto": "když není možné uložit automaticky", + "extensionConnectSettingsAreForSession": "Nastavení, která jste zde vybrali, jsou platná pouze pro tuto relaci. Relace je možné si zobrazit a spravovat v nastaveních v KeeWeb.", + "extensionUnlockMessage": "Pokud chcete připojit rozšíření pro webový prohlížeč, odemkněte", + "extensionNewGroupHeader": "Nová skupina", + "extensionNewGroupBody": "{} se pokouší vytvořit novou skupinu. Umožnit to?", + "extensionNewGroupPath": "Popis umístění skupiny", + "extensionNewGroupFile": "Tato skupina bude vytvořena v:", + "extensionSaveEntryHeader": "Uložit heslo", + "extensionSaveEntryBody": "{} se pokouší uložit heslo. Umožnit to?", + "extensionSaveEntryAuto": "V této relaci ukládat ostatní hesla automaticky", + "extensionSaveEntryNewGroup": "nová skupina", + "extensionSelectPasswordFor": "Vyberte heslo pro {}", + "selectEntryHeader": "Vyberte položku", + "selectEntryEnterHint": "použít zvýrazněnou položku", + "selectEntryTypingHint": "Filtrujte psaním", + "selectEntryContains": "Obsahuje text", + "selectEntrySubdomains": "Subdomény", + "selectEntryFieldHeader": "Vyberte kolonku", + "selectEntryFieldTouch": "Pro vygenerování jednorázového kódu stiskněte tlačítko na svém zařízení." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/cs/index.html b/keeweb/plugins/translations/cs/index.html new file mode 100644 index 0000000..dffd163 --- /dev/null +++ b/keeweb/plugins/translations/cs/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Čeština + + + + +

KeeWeb Language: Čeština

+ https://plugins.keeweb.info/translations/cs + + diff --git a/keeweb/plugins/translations/cs/manifest.json b/keeweb/plugins/translations/cs/manifest.json new file mode 100644 index 0000000..7cfaa99 --- /dev/null +++ b/keeweb/plugins/translations/cs/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.10.0", + "manifestVersion": "0.1.0", + "name": "language-czech", + "description": "Czech language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=cs", + "resources": { + "loc": "OJ1tFfwwy2p8ZBC5KFVxqz/+XydZzAgWnmFlCGVO5qGZgw91hHvZ8SefSky28NJhzg7lUNHdVL5Qbc7YH6W0/GWLcLb1BNnDqQQHlSCLzfc0+JN5HIs3JhyO9GDY8TLyjbcZUxuwS3ewGFTXMxJ2FjCGJ/cywTnprYk7Embr7LXMVsWwGiQ7knGgWuoKo9uXVL9SHny9+qTXEcW/fFvmjqoQObXXn/lQABTe1DXUSMm0YZCkF6fFufvPCdzt/FxXJ8skAqX6D93fNTAUIEKCVCBq0hhTsxLKJ7F23yeSZ1W5UFgwH1/gfV0zKJ6DM3hINr995nv8TeY7vs8RVCnKQg==" + }, + "locale": { + "name": "cs", + "title": "Čeština", + "flag": "🇨🇿" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/da/da.json b/keeweb/plugins/translations/da/da.json new file mode 100644 index 0000000..9d7436a --- /dev/null +++ b/keeweb/plugins/translations/da/da.json @@ -0,0 +1,518 @@ +{ + "retToApp": "tilbage til app", + "name": "navn", + "icon": "ikon", + "title": "titel", + "password": "kodeord", + "user": "brugernavn", + "website": "hjemmeside", + "tags": "tags", + "notes": "noter", + "entry": "post", + "group": "gruppe", + "noTitle": "ingen titel", + "or": "eller", + "history": "historie", + "template": "skabelon", + "notImplemented": "Ikke implementeret", + "saveChanges": "Gem ændringer", + "discardChanges": "Kassér ændringer", + "advanced": "Avanceret", + "shortcuts": "Genveje", + "help": "Hjælp", + "settings": "Opsætning", + "plugins": "Plugins", + "cache": "cache", + "file": "fil", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drev", + "onedrive": "OneDrive", + "menuAllItems": "Alle", + "menuColors": "Farver", + "menuTrash": "Papirkurv", + "menuSetGeneral": "Generelt", + "menuSetAbout": "Om", + "menuAlertNoTags": "Ingen tags", + "menuAlertNoTagsBody": "Du kan tilføje nye tags mens du redigerer felter, i tags sektionen.", + "menuEmptyTrash": "Tøm papirkurv", + "menuEmptyTrashAlert": "Tøm papirkurv?", + "menuEmptyTrashAlertBody": "Du vil ikke have mulighed for at bringe dem tilbage", + "menuItemCollapsed": "Dobbelt-klik for at udvide", + "alertYes": "Ja", + "alertNo": "Nej", + "alertOk": "OK", + "alertCancel": "Annuller", + "alertSignIn": "Log ind", + "alertCopy": "Kopier", + "alertClose": "Luk", + "alertDoNotAsk": "Spørg mig ikke igen", + "appBeta": "ADVARDEL: beta version, kun til afprøvning", + "footerOpen": "Åbn / Ny", + "footerSyncError": "Synkfejl", + "footerTitleGen": "Generér", + "footerTitleLock": "Lås", + "genLen": "Længde", + "genNewPass": "Nyt kodeord", + "genPresetDefault": "Standard forvalg", + "genPresetDerived": "som gamle kodeord", + "genPresetPronounceable": "kan udtales", + "genPresetMed": "mellem langt", + "genPresetLong": "langt", + "genPresetPin4": "4-cifret PIN", + "genPresetMac": "MAC addresse", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "grpTitle": "Gruppe", + "grpSearch": "Slå søgning af poster til for denne grupe", + "grpAutoType": "Slå autoudfyldning til", + "grpAutoTypeSeq": "Autoudfyldnings sekvens", + "grpAutoTypeSeqDefault": "Brug standard autoudfyldnings sekvens", + "grpTrash": "Slet gruppe med alle poster", + "tagTitle": "Tag", + "tagTrash": "Fjern tag fra alle poster", + "tagRename": "Omdøb", + "tagTrashQuestion": "Fjern tag fra alle poster?", + "tagTrashQuestionBody": "Dette tag vil blive fjernet fra alle poster. Der er ikke nogen nem måde at føre det tilbage på.", + "tagExists": "Tag eksisterer allerede", + "tagExistsBody": "Tag med dette navn eksisterer allerede. Vælg venligst et andet navn.", + "tagBadName": "Dårligt navn", + "tagBadNameBody": "Tag-navn kan ikke have tegnene {}. Fjern dem venligst.", + "genPsTitle": "Generator forvalg", + "genPsCreate": "Nye forvalg", + "genPsDelete": "Slet forvalg", + "genPsNew": "forvalg", + "genPsEnabled": "Vis på forvalgsliste", + "genPsDefault": "Valgt som standard", + "genPsDefaultLength": "Standard længde", + "genPsUpper": "Store bogstaver", + "genPsLower": "Små bogstaver", + "genPsDigits": "Tal", + "genPsSpecial": "Specielle symboler", + "genPsBrackets": "Klammer", + "genPsHigh": "Udvidede ASCII tegn", + "genPsAmbiguous": "Tvetydige symboler", + "genPsInclude": "Ekstra symboler at inkludere", + "genPsExample": "Eksempel på genereret kodeord", + "keyChangeTitleRemote": "Hoved-nøgle er ændret", + "keyChangeMessageRemote": "Hoved-nøglen blev ændret for denne database. Skriv venligst en ny nøgle", + "keyChangeTitleExpired": "Hoved-nøgle udløbet", + "keyChangeMessageExpired": "Hoved-nøglen for denne database er udløbet. Skriv venligst en ny nøgle", + "keyChangeRepeatPassword": "Kodeord, en gang til", + "keyEnter": "Skriv", + "iconFavTitle": "Download og brug hjemmesidens favicon", + "iconSelCustom": "Vælg tilpasset ikon", + "listEmptyTitle": "Tomt", + "listEmptyAdd": "tilføj med {} knappen ovenfor", + "listGroup": "Gruppe", + "listNoWebsite": "ingen webside", + "listNoUser": "ingen bruger", + "listNoAttachments": "ingen vedhæftning", + "listAddTemplateHeader": "Skabeloner", + "listAddTemplateBody1": "Skabeloner gør det muligt at oprette poster med et klik. Tilføj noget til skabelon posten og klik så {} igen fr at bruge denne skabelon.", + "listAddTemplateBody2": "Du kan altid finde dine skabeloner i {}-gruppen.", + "searchAddNew": "Tilføj ny", + "searchSort": "Sortér", + "searchCreated": "Oprettet", + "searchUpdated": "Opdateret", + "searchAttachments": "Vedhæftninger", + "searchAZ": "A {} Å", + "searchZA": "Å {} A", + "searchON": "Gammel {} Ny", + "searchNO": "Ny {} Gammel", + "searchShiftClickOr": "shift-klik eller", + "searchAdvTitle": "Skift avanceret søgning", + "searchSearchIn": "Søg i", + "searchOther": "Andre felter", + "searchProtect": "Sikre felter", + "searchOptions": "Tilvalg", + "searchCase": "'A' er ikke 'a'", + "searchRegex": "RegEx", + "openOpen": "Åbn", + "openNew": "Ny", + "openMore": "Mere", + "openDemo": "Demo", + "openXml": "Importer XML", + "openCaps": "Caps Lock er på", + "openClickToOpen": "Klik for at åbne en fil", + "openKeyFile": "nøglefil", + "openKeyFileDropbox": "(fra dropbox)", + "openDropHere": "slip filer her", + "openFailedRead": "Fejlede ved læsning af fil", + "openNothingFound": "Intet fundet", + "openNothingFoundBody": "Ingen filer der kunne åbnes", + "openSelectFile": "Vælg en fil", + "openSelectFileBody": "Vælg en fil som du vil åbne", + "openPassFor": "Kodeord for", + "openRemoveLastQuestion": "Slet lokal fil?", + "openRemoveLastQuestionBody": "Den fil du sletter er kun gemt inde i app'en. Slet den permanent?", + "openRemoveLastQuestionModBody": "Den fil du sletter har lokale ændringer. Slet den og afvis disse ændringer?", + "openLocalFile": "Lokal fil", + "openLocalFileBody": "Du er ved at åbne en fil som bliver gemt inde i app'en- Øndringer du laver vil ikke blive gemt tilbage til fil-systemet- For at få fat i filen med dine data skal du eksportere den fra indstillinger.", + "openLocalFileDontShow": "Vis ikke dette igen", + "openWrongFile": "Dårlig fil", + "openWrongFileBody": "Dette filformat er ikke understøttet. Denne app virker med KeePass database formatet (kdbx)", + "openKdbFileBody": "Du åbner en gammel versionsformat fil (KDB). Denne app understøtter kun det nye format (kdbx) Brug venligst KeePass v2 til at konvertere mellem dem.", + "openConfigHeader": "{} indstillinger", + "openUrl": "URL", + "openUrlDesc": "https://server/sti/fil.kdbx, eller bare fil.kdbx", + "openUser": "Brugernavn", + "openUserDesc": "WebDAV server bruernavn (hvis påkrævet)", + "openUserPlaceholder": "ingen", + "openPass": "Kodeord", + "openPassDesc": "WebDAV server kodeord (dette er ikke dit fil-kodedord)", + "openPassPlaceholder": "intet kodeord", + "openConfigError": "Fejl: {}", + "openConfigErrorNotFound": "Fil ikke fundet", + "openError": "Fejl", + "openErrorDescription": "Der skete en fejl ved åbning af filen", + "openErrorFileNotFound": "Fil ikke fundet", + "openListErrorBody": "Der skete en fejl ved åbning af fil-listen", + "openShowAllFiles": "Vis alle filer", + "detAttDownload": "Shift-klik vedhæftnings knappen for at downloade eller", + "detAttDelToRemove": "Slet for at fjerne", + "detEmpty": "Dine kodeord vil blive vist her", + "detGroupRestore": "For at gendanne denne gruppe, træk den venligst til en gruppe udenfor papirkurven", + "detHistoryClickPoint": "Klik på et punkt i post-historie-tidslinjen for at vise tilstanden", + "detHistoryReturn": "tilbage til post", + "detHistoryRevert": "Gendan tilstand", + "detHistoryDel": "Slet tilstand", + "detHistoryEmpty": "tøm", + "detHistoryModified": "ændret", + "detHistoryRec": "post", + "detHistoryRecs": "poster", + "detHistoryVersion": "Version", + "detHistorySaved": "Gemt", + "detHistoryNoTitle": "ingen titel", + "detHistoryCurState": "nuværende tilstand", + "detHistoryCurUnsavedState": "nuværende ugemte tilstand", + "detHistoryRevertAlert": "Gå tilbage til denne tilstand i historien?", + "detHistoryRevertAlertBody": "Den nuværende tilstand vil blive gemt i historien.", + "detHistoryDeleteAlert": "Slet denne historie tilstand?", + "detHistoryDeleteAlertBody": "Du vil ikke kunne gendanne den.", + "detHistoryDiscardChangesAlert": "Annuller ændringer lavet til punkt?", + "detHistoryDiscardChangesAlertBody": "Ugemte ændringer mistes, der er ingen vej tilbage.", + "detBackToList": "tilbage til liste", + "detSetIconColor": "Skift farve", + "detSetIcon": "Skift ikon", + "detDropAttachments": "slip vedhæftning her", + "detDelEntry": "Slet", + "detDelEntryPerm": "Slet permanent", + "detExpires": "Udløber", + "detExpired": "udløbet", + "detGroup": "Gruppe", + "detCreated": "Oprettet", + "detUpdated": "Opdateret", + "detNetField": "Nyt felt", + "detAttachments": "Vedhæftninger", + "detDelFromTrash": "Slet fra papirkurv?", + "detDelFromTrashBody": "Du vil ikke have mulighed for at få det tilbage.", + "detDelFromTrashBodyHint": "For hurtigt at fjerne alle punkter i papirkurven, klik da på 'Tøm' ikonet i Papirkurvens menu.", + "detFieldCopied": "Kopieret", + "detFieldCopiedTime": "Kopierede i {} sekunder", + "detCopyHint": "Du kan kopiere feltindhold fed at klikke på dets titel", + "detMore": "mere", + "detClickToAddField": "klik for at tilføje endnu et felt", + "detMenuAddNewField": "Tilføj nyt felt", + "detMenuShowEmpty": "Vis tomme felter", + "detMenuHideEmpty": "Skjul tomme felter", + "detMenuAddField": "Tilføj {}", + "detMenuCopyPassword": "Kopier kodeord", + "detMenuCopyUser": "Kopier bruger", + "detSetupOtp": "Engangskoder", + "detClone": "Lav en kopi", + "detClonedName": "Kopier", + "detAutoType": "Autoudfyld", + "detAutoTypeSettings": "Autoudfyld indstillinger", + "detAutoTypeEnabled": "Slå autoudfyldning til for denne post", + "detAutoTypeSequence": "Tastetryk", + "detAutoTypeInput": "Input", + "detAutoTypeShortcutsDesc": "{} eller {} mens app'en er inaktv", + "detAutoTypeObfuscation": "Miks rigtige tastetryk med tilfældige", + "detAutoTypeWindow": "Vindue", + "detAutoTypeInputWindow": "Vinsuestitel", + "detSetupOtpAlert": "Skan QR koden", + "detSetupOtpAlertBody": "Kopier venligst QR koden som vises på autorisations siden.", + "detSetupOtpAlertBody1": "1. gå til autorisations siden", + "detSetupOtpAlertBody2": "2. tag et skærmbillede af QR koden {}", + "detSetupOtpAlertBody3": "3. indsæt den her {}", + "detSetupOtpAlertBody3Mobile": "3. vælg den eller scan den med dit kamera via Vælg/Skan knappe herunder", + "detSetupOtpAlertBody4": "Hvis du ikke kan skanne koden, klik da \"Indtast koden manuelt\"", + "detSetupOtpManualButton": "Indtast koden manuelt", + "detSetupOtpScanButton": "Vælg/Skan", + "detSetupOtpAlertBodyWith": "med {}", + "detOtpImageError": "Fejl ved indlæsning af bilede", + "detOtpImageErrorBody": "Beklager, vi kunne ikke læse billedformatet. Kontakt venligst appforfatterne med fejloplysninger.", + "detOtpImageReading": "Læser QR kode...", + "detOtpQrError": "Fejl ved QR kode scanning", + "detOtpQrErrorBody": "Beklager, vi kunne ikke læse QR-koden, prøv igen, eller kontakt appforfatterne med fejloplysninger.", + "detOtpQrWrong": "Forkert QR kode", + "detOtpQrWrongBody": "Din QR kode blev fint skannet men den indeholder ikke engangskode-data", + "detLockField": "Lås dette felt, så dets indhold ikke er søgbart eller synligt. Det kræves at man eksplicit klikker på det for at kunne se det.", + "detUnlockField": "Lås dette felt op, så dets indhold bliver søgbart og umiddelbart synligt.", + "autoTypeEntryFields": "Indtastningsfelter", + "autoTypeModifiers": "Funktionstaster", + "autoTypeKeys": "Taster", + "autoTypeLink": "mere...", + "autoTypeError": "Autoudfyldnings-fejl", + "autoTypeErrorGeneric": "Der skete en fejl ved autoudfyldningen: {}", + "autoTypeErrorGlobal": "For at bruge global genvej, fokusere da venligst app'en hen hvor du vil indtaste dit kodeord", + "autoTypeErrorNotInstalled": "{} er ikke installeret", + "autoTypeHeader": "Autoudfyldning: vælg", + "autoTypeMsgNoWindow": "Vi kunne ikke få fat i det aktive vindues titel, skriv for at søge", + "autoTypeMsgMatchedByWindow": "Vælg et kodeord for {}", + "autoTypeNoMatches": "intet fundet", + "autoTypeSelectionHint": "Skriv autotaste-sekvensen", + "autoTypeSelectionHintAction": "Skriv kun kodeordet", + "autoTypeSelectionHintOpt": "Skriv kun brugernavnet", + "appSecWarn": "Ikke sikret!", + "appSecWarnBody1": "Du har indlæst denne app med en usikker forbindelse. Nogen kunne overvåge dig og stjæle dine kodeord. Vi anbefaler på det stærkeste at du stopper, med mindre du forstår præcist hvad du gør.", + "appSecWarnBody2": "Ja, din database er krypteret men ingen kan garantere at app'en ikke er blevet modificeret på vejen hen til dig.", + "appSecWarnBtn": "Jeg forstår risikoen, fortsæt", + "appUnsavedWarn": "Ugemte ændringer!", + "appUnsavedWarnBody": "Du har ugemte filer. Hvis du lukker app'en vil ændringerne blive slettet.", + "appDontExitBtn": "Afslut ikke", + "appCannotLockAutoInit": "Denne app kan ikke låses fordi autogem er slået fra.", + "appCannotLock": "Du har ugemte ændringer der vil blive mistet. Fortsæt?", + "appAutoSave": "Gem ændringer automatisk", + "appSaveError": "Gemme-fejl", + "appSaveErrorBody": "Fejlede ved auto-gemning at fil", + "appSaveErrorBodyMul": "Fejlede ved auto-gemning af:", + "appSettingsError": "Fej ved indlæsning af app", + "appSettingsErrorBody": "Der var en fejl ved indlæsning af app-instillingerne. Dobbelttjek venligst app-URL'en eller kontakt din administrator.", + "appNotSupportedError": "Din browser er ikke understøttet.", + "appTabWarn": "For mange faner", + "appTabWarnBody": "KeeWeb kan ikke bruges i to faner samtidigt, luk venligst denne fane.", + "appRightsAlert": "Låser KeeWeb", + "appRightsAlertBody1": "Din KeeWeb app er i øjeblikket ikke beskyttet imod uautoriserede ændringer. Vi spørger dig om tilladelse til at gøre appen skrivbar kun for administratorer.", + "appRightsAlertBody2": "Vil du ikke give os tilladelse? Du kan gøre det selv fra Termialen.", + "setGenTitle": "Generelle indstillinger", + "setGenUpdate": "Opdatering", + "setGenNewVersion": "Ny app-version er udgivet og blevet downloadet", + "setGenReleaseNotes": "Vis udgivelsesnoter", + "setGenReloadToUpdate": "Genopfrisk for opdatering", + "setGenUpdateManual": "En ny version er blevet udgivet. Det vil tjekke for opdateringer og installere dem automatisk, men automatisk opgradering fra din version er ikke muligt.", + "setGenDownloadUpdate": "Download opdatering", + "setGenUpdateAuto": "Download og installer automatisk", + "setGenUpdateCheck": "Tjek, men installer ikke", + "setGenNoUpdate": "Søg aldrig efter opdateringer", + "setGenUpdateChecking": "Søger efter opdateringer", + "setGenCheckUpdate": "Søg efter opdateringer", + "setGenErrorChecking": "Fejl ved søgning efter opdateringer", + "setGenLastCheckSuccess": "Sidste succesfulde søgning var {}", + "setGenLastCheckVer": "den sidste version var {}", + "setGenCheckedAt": "Søgte den", + "setGenLatestVer": "du bruger den nyeste version", + "setGenNewVer": "ny version {} tilægelig, udgivet", + "setGenDownloadingUpdate": "Downloader opdatering...", + "setGenExtractingUpdate": "Udpakker opdatering...", + "setGenCheckErr": "Der skete en fejl ved download af ny version", + "setGenNeverChecked": "Aldrig søgt efter opdateringer", + "setGenRestartToUpdate": "Genstart app'en for at opdatere", + "setGenDownloadAndRestart": "Download opdatering og genstart", + "setGenAppearance": "Udseende", + "setGenTheme": "Tema", + "setGenThemeFb": "Flad blå", + "setGenThemeDb": "Mørk brun", + "setGenThemeTe": "Terminal", + "setGenThemeHc": "Høj kontrast", + "setGenThemeSd": "Solariseret mørk", + "setGenThemeSl": "Solariseret lys", + "setGenLocale": "Sprog", + "setGenLocOther": "andre sprog er tilgængelige som plugins", + "setGenFontSize": "Tekststørrelse", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Stor", + "setGenFontSizeLargest": "Størst", + "setGenTitlebarStyle": "Vinduesstil (krøver genstart)", + "setGenTitlebarStyleDefault": "Standard", + "setGenTitlebarStyleHidden": "Tilpasset titel", + "setGenTitlebarStyleHiddenInset": "Tilpasset titel, flytbart vindue", + "setGenShowSubgroups": "Vis poster fra alle sub-grupper", + "setGenTableView": "Postliste tabelvisning", + "setGenColorfulIcons": "Faverige tilpassede ikoner i listen", + "setGenFunction": "Funktion", + "setGenAutoSyncOnClose": "Gem og synkroniser automatisk ved lukning", + "setGenAutoSyncTimer": "Gem og synkroniser periodisk", + "setGenAutoSyncTimerOff": "Slået fra", + "setGenAutoSyncTimerInterval": "Hver {} minutter", + "setGenRememberKeyFiles": "Husk nøglefiler", + "setGenNoRememberKeyFiles": "Husk ikke", + "setGenRememberKeyFilesData": "Gen i dee interne app lager", + "setGenRememberKeyFilesPath": "Husk kun sti til nøglefiler", + "setGenLockInactive": "Hvis appen er inaktiv", + "setGenNoAutoLock": "Lås ikke automatisk", + "setGenLockMinutes": "Om {} minutter", + "setGenLockHour": "Om en time", + "setGenLockHours": "Om {} timer", + "setGenLockDay": "Om en dag", + "setGenClearClip": "Rens klippebordet efter kopiering", + "setGenNoClear": "Rens ikke", + "setGenClearSeconds": "Om {} sekunder", + "setGenClearMinute": "Om et minut", + "setGenMinInstead": "Minimer app i stedet for at lukke", + "setGenLock": "Autolås", + "setGenLockMinimize": "Når app er minimeret", + "setGenLockCopy": "Ved kodeords-kopiering", + "setGenLockAutoType": "Ved autoudfyldning", + "setGenLockOrSleep": "Når computeren bliver låst eller sat i dvale", + "setGenStorage": "Lager", + "setGenShowAdvanced": "Vis avancerede indstillinger", + "setGenDevTools": "Vis udvikler værktøj", + "setGenTryBeta": "Prøv beta version indtil genstart", + "setGenTryBetaWarning": "Ugemte filer", + "setGenTryBetaWarningBody": "Gem venligst alle filer og klik på denne knap igen", + "setGenShowAppLogs": "Vis app logs", + "setFilePath": "Filsti", + "setFileStorage": "Filen er indlæst fra {}.", + "setFileIntl": "Denne fil er gemt i det interne app lager", + "setFileLocalHint": "Ønsker du at arbejde problemfrit med lokale filer?", + "setFileDownloadApp": "Download en skrivedordsapp", + "setFileSave": "Gem", + "setFileSaveTo": "Gem til...", + "setFileClose": "Luk", + "setFileSync": "Synk", + "setFileSyncVerb": "Synk", + "setFileSaveToXml": "XML", + "setFileLastSync": "Sidste synk", + "setFileLastSyncUnknown": "ukendt", + "setFileSyncInProgress": "synkronisering igang", + "setFileSyncError": "Synk-fejl", + "setFilePass": "Hovedadgangskode", + "setFileConfirmPass": "Bekræft master kodeord", + "setFilePassChange": "for at ændre dit kodeord, skriv det da i bekræftelsesfeltet", + "setFilePassChanged": "dit kodeord blev ændret, efterlad feltet blankt for at bruge det gamle kodeord", + "setFilePassNotMatch": "kodeordene er ikke ens, skriv det venligst igen", + "setFileKeyFile": "Nøglefil", + "setFileSelKeyFile": "Vælg en nøglefil", + "setFileNames": "Navne", + "setFileDefUser": "Standard bruger", + "setFileEnableTrash": "Slå papirkurv til", + "setFileHistLen": "Historie længde, gem sidste optegnelser per post", + "setFileHistSize": "Historie størrelse, totalt MB pr. fil", + "setFileBackups": "Beckups", + "setFileBackupEnable": "Lav backup af denne fil", + "setFileBackupPath": "Backup sti", + "setFileBackupTime": "Lav backups", + "setFileBackupNow": "Lav backup nu", + "setFileBackupNowWorking": "Arbejder...", + "setFileBackupError": "Backup-fejl", + "setFileBackupErrorDescription": "Fejl ved skrivning af backupfil", + "setFileBackupErrorIsDir": "Backupsti er ugyldig", + "setFileBackupErrorIsDirDescription": "Backupstien ser ud til at pege på en folder. Vælg venligst et filnavn inde i en folder i stedet for.", + "setFileBackupOnSave": "Hver gang jeg gemmer filen", + "setFileBackupDaily": "Dagligt", + "setFileBackupWeekly": "Ugentligt", + "setFileBackupMonthly": "Månedligt", + "setFileBackupManually": "Manuelt, ingen auto-backups", + "setFileRounds": "Nøgle krypterings-runder", + "setFileKdfParams": "Nøgleafledningsfunktion", + "setFileKdfParamsIter": "Gentagelser", + "setFileKdfParamsMem": "Hukommelse, KB", + "setFileKdfParamsPar": "Parallelisme", + "setFileKeyChangeForce": "Spørg om at ændre nøglen efter (dage)", + "setFileUseKeyFile": "Brug nøglefil", + "setFileUseGenKeyFile": "Brug genereret nøgefil", + "setFileUseOldKeyFile": "Brug gammel nøglefil", + "setFileGenKeyFile": "Generer ny nøglefil", + "setFileDontUseKeyFile": "Brug ikke nøglefil", + "setFileEmptyPass": "Tomt kodeord", + "setFileEmptyPassBody": "At gemme databasen med et tomt kodeod gør den fuldstændigt ubeskyttet. Er du sikker på at det er det du vil gøre?", + "setFileSaveError": "Gemme-fejl", + "setFileSaveErrorBody": "Fejl ved gemning af fil", + "setFileAlreadyExists": "Eksisterer allerede", + "setFileAlreadyExistsBody": "Filen {} eksisterer allerede. Vil du overskrive den?", + "setFileUnsaved": "Ugemte ændringer", + "setFileUnsavedBody": "Der er ugemte ændringer i denne fil", + "setFileCloseNoSave": "Luk og mist ændriingerne", + "setFileDontClose": "Luk ikke", + "setShTitle": "Genveje", + "setShShowAll": "Vis alle poster", + "setShColors": "Vis poster med farver", + "setShTrash": "gå til papirkurv", + "setShFind": "søg, eller start bare med at skrive", + "setShClearSearch": "rens søgning", + "setShCopyPass": "kopier kodeord eller valgte felt", + "setShCopyUser": "kopier bruger", + "setShCopyUrl": "kopier hjemmeside", + "setShAutoType": "autoudfyld valgte felt", + "setShPrev": "gå til forgående post", + "setShNext": "gå til næste post", + "setShCreateEntry": "opret felt", + "setShOpen": "åbn / ny", + "setShSave": "gem alle filer", + "setShGen": "generer kodeord", + "setShSet": "app indstillinger", + "setShCopyPassGlobal": "kopier kodeord (når app'en er i baggrunden)", + "setShAutoTypeGlobal": "autoudfyld (når app'en er i baggrunden)", + "setShLock": "lås database", + "setPlInstallTitle": "Installer nyt plugin", + "setPlInstallDesc": "KeeWeb plugins tilføjer features, temaer og sprog til KeeWeb. Plugins kører med de samme privilegier som KeeWeb, de kan tilgå og håndtere alle dine kodeord. Installer aldrig plugins du ikke stoler på.", + "setPlInstallLabel": "Plugin URL", + "setPlInstallBtn": "Installer", + "setPlInstallBtnProgress": "Installerer", + "setPlUninstallBtn": "Afinstaller", + "setPlDisableBtn": "Slå fra", + "setPlEnableBtn": "Slå til", + "setPlUpdateBtn": "Opdater", + "setPlLocaleBtn": "Skift til dette sprog", + "setPlThemeBtn": "Skift til dette tema", + "setPlJs": "kode", + "setPlCss": "stile", + "setPlLoc": "sprog", + "setPlCreatedBy": "Oprettet af {}", + "setPlLoadTime": "tog {} at indlæse", + "setPlLastUpdate": "Sidste søgning efter opdateringer", + "setPlLoadError": "fejl ved indlæsning af plugin", + "setPlGalleryLoading": "Indlæser plugins, vent venligst lidt", + "setPlGalleryLoadError": "Fejl ved indlæsning af plugins", + "setPlInstallUrlTitle": "Tilføj plugin fra URL", + "setPlInstallUrlDesc": "Hvis plugin'et ikke er i galleriet, kan du installere det manuelt fra URL", + "setPlOfficial": "Officielt KeeWeb plugin", + "setPlSearch": "Søg efter plugins", + "setPlDevelop": "Ønsker du at udvikle dine egene plugins?", + "setPlDevelopStart": "Start her", + "setPlTranslate": "Eller du kan {}", + "setPlTranslateLink": "oversætte app'en til dit sprog", + "setPlAutoUpdate": "Opdater automatisk", + "setPlLoadGallery": "Indlæs plugin galleriet", + "setAboutTitle": "Om", + "setAboutBuilt": "Denne app er bygget med disse fantastiske værktøjer", + "setAboutLic": "Licens", + "setAboutLicComment": "App'en selv og alle inkluderede komponenter som ikke er under public domain er licenseret under MIT licensen.", + "setAboutFirst": "Dette er en open-source app lavet af {}", + "setAboutSecond": "og licenseret under {}", + "setAboutSource": "Kildekoden og \"issues\" er på {}.", + "setHelpFormat": "Filformat", + "setHelpFormatBody": "Dette er en port af {} bygget med webteknologier. Den forstår filer i KeePass formatet (kdbx). Du kan oprette sådanne filer (kodeords databaser) enten i KeePass eller i denne app. Filformatet er 100% kompatibelt og burde kunne løses af begge apps.", + "setHelpProblems": "Brug for hjølp?", + "setHelpProblems1": "Hvis noget går galt, så {}", + "setHelpProblems2": "eller {}", + "setHelpOpenIssue": "åben et issue på GitHub", + "setHelpContactLink": "kontakt en udvikler direkte", + "setHelpAppInfo": "App information", + "setHelpOtherPlatforms": "Andre platforme", + "setHelpDesktopApps": "Skrivebordsapps", + "setHelpWebApp": "Webapp", + "setHelpUpdates": "Opdateringer", + "setHelpTwitter": "App twitter", + "dropboxSetupDesc": "Der er brug for konfigurering for at bruge Dropbox i en selv-hostet app. Opret venligst selv en Dropbox app og udfyld dens nøgle herunder.", + "dropboxAppKey": "Dropbox appnøgle", + "dropboxAppKeyDesc": "Kopier fra din Dropbox app (Udvikler indstillinger)", + "dropboxFolder": "App mappe", + "dropboxFolderDesc": "Hvis di app er linket til hele Dropbox (ikke en app mappe). sæt da mappen med dine kdbx filer her", + "dropboxFolderSettingsDesc": "Vælg en mappe i din Dropbox hvor filer vil blive gemt (rodmappen som standard)", + "dropboxFolderPlaceholder": "standard mappe", + "dropboxLink": "Link app'en til", + "dropboxLinkApp": "App mappe (Apps/KeeWeb)", + "dropboxLinkFull": "Fuld Dropbox eller en mappe", + "dropboxLinkCustom": "Egen Dropbox app", + "gdriveSharedWithMe": "Delt med mig", + "webdavSaveMethod": "Gemme metode", + "webdavSaveMove": "Upload en midlertidig fil og flyt", + "webdavSavePut": "Overskriv kdbx fil med PUT", + "launcherSave": "Gem kodeordsdatabase", + "launcherFileFilter": "KeePass filer", + "authPopupRequired": "Pop-up er blokeret", + "authPopupRequiredBody": "Tillad venligst pop-up vinduer i din browser eller prøv igen." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/da/index.html b/keeweb/plugins/translations/da/index.html new file mode 100644 index 0000000..12fa347 --- /dev/null +++ b/keeweb/plugins/translations/da/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Dansk + + + + +

KeeWeb Language: Dansk

+ https://plugins.keeweb.info/translations/da + + diff --git a/keeweb/plugins/translations/da/manifest.json b/keeweb/plugins/translations/da/manifest.json new file mode 100644 index 0000000..cf6751f --- /dev/null +++ b/keeweb/plugins/translations/da/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.3.0", + "manifestVersion": "0.1.0", + "name": "language-danish", + "description": "Danish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=da", + "resources": { + "loc": "PW/wwft62s/t33MmiYq0S7Dbgzcpo+nB0+akwSXSj1ZYd6vUO9i9cdhhRfxMFBM3DafXUL0Zt3RNwmfsio7wbhpbXTK9W9Y285sFdAiH09cmIA6/2A3M8TQdp+0JvnSpRlT+U1O8m7HSZ+L9gbDdEW/ApoE0In4MtkGoRxvLNrRpDCchkLAtOBrqTKVD9OFuARRtlb8o5JVW254+6slTWjvK4jfQOOZ2mXQ23/rcNWbxpnuQfeIrsOYkQdIHi444F7JjG3MTOUlYIH24q4EFMUX+u2ygGmc5A07/KVBQVKel1dgyikQkpmlmmlhJIjPddLQ03T+81jUycA6lJVX8+Q==" + }, + "locale": { + "name": "da", + "title": "Dansk", + "flag": "🇩🇰" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/de-DE/de-DE.json b/keeweb/plugins/translations/de-DE/de-DE.json new file mode 100644 index 0000000..305ec82 --- /dev/null +++ b/keeweb/plugins/translations/de-DE/de-DE.json @@ -0,0 +1,695 @@ +{ + "retToApp": "zurück zur App", + "name": "Name", + "icon": "Icon", + "title": "Titel", + "password": "Passwort", + "user": "Benutzer", + "website": "Website", + "tags": "Tags", + "notes": "Notizen", + "entry": "Eintrag", + "group": "Gruppe", + "noTitle": "Kein Titel", + "or": "oder", + "history": "Verlauf", + "template": "Vorlage", + "templates": "Vorlagen", + "notImplemented": "Nicht implementiert", + "saveChanges": "Änderungen speichern", + "discardChanges": "Änderungen verwerfen", + "advanced": "Erweiterte Einstellungen", + "shortcuts": "Tastenkürzel", + "help": "Hilfe", + "settings": "Einstellungen", + "plugins": "Plugins", + "ctrlKey": "Strg", + "shiftKey": "Umschalt", + "altKey": "Alt", + "error": "Fehler", + "oneMinute": "Eine Minute", + "minutes": "{} Minuten", + "oneHour": "Eine Stunde", + "hours": "{} Stunden", + "oneDay": "Ein Tag", + "days": "{} Tage", + "oneWeek": "Eine Woche", + "oneMonth": "Ein Monat", + "oneYear": "Ein Jahr", + "cache": "Cache", + "file": "Datei", + "device": "Gerät", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Alle Einträge", + "menuColors": "Farben", + "menuTrash": "Papierkorb", + "menuSetGeneral": "Allgemein", + "menuSetAbout": "Info", + "menuSetDevices": "Geräte", + "menuAlertNoTags": "Keine Tags", + "menuAlertNoTagsBody": "Neue Tags können durch das Bearbeiten von Einträgen (Abschnitt „Tags“) hinzugefügt werden.", + "menuEmptyTrash": "Papierkorb leeren", + "menuEmptyTrashAlert": "Papierkorb leeren?", + "menuEmptyTrashAlertBody": "Die Einträge können nicht wiederhergestellt werden", + "menuItemCollapsed": "Doppelklick zum Aufklappen", + "menuRestoreApp": "{} öffnen", + "menuQuitApp": "{} beenden", + "sysMenuAboutKeeWeb": "Über {}", + "sysMenuServices": "Dienste", + "sysMenuHide": "{} ausblenden", + "sysMenuHideOthers": "Andere ausblenden", + "sysMenuUnhide": "Alle anzeigen", + "sysMenuQuit": "{} beenden", + "sysMenuEdit": "Bearbeiten", + "sysMenuUndo": "Rückgängig", + "sysMenuRedo": "Wiederherstellen", + "sysMenuCut": "Ausschneiden", + "sysMenuCopy": "Kopieren", + "sysMenuPaste": "Einfügen", + "sysMenuSelectAll": "Alles auswählen", + "sysMenuWindow": "Fenster", + "sysMenuMinimize": "Minimieren", + "sysMenuClose": "Fenster schließen", + "alertYes": "Ja", + "alertNo": "Nein", + "alertOk": "OK", + "alertCancel": "Abbrechen", + "alertSignIn": "Anmelden", + "alertCopy": "Kopieren", + "alertClose": "Schließen", + "alertDoNotAsk": "Nicht mehr nachfragen", + "appBeta": "ACHTUNG: Beta-Version, nur für Vorschau-Zwecke", + "footerOpen": "Öffnen / Neu", + "footerSyncError": "Synchronisierungsfehler", + "footerTitleGen": "Generieren", + "footerTitleLock": "Sperren", + "genLen": "Länge", + "genNewPass": "Neues Passwort", + "genPresetDefault": "Standardeinstellung", + "genPresetDerived": "Wie das alte Passwort", + "genPresetPronounceable": "aussprechbar", + "genPresetMed": "Durchschnittliche Länge", + "genPresetLong": "lang", + "genPresetPin4": "4-stellige PIN", + "genPresetMac": "MAC-Adresse", + "genPresetHash128": "128-Bit-Hash", + "genPresetHash256": "256-Bit-Hash", + "genHidePass": "Passwort ausblenden", + "genShowPass": "Passwort einblenden", + "grpTitle": "Gruppe", + "grpSearch": "Suche für Einträge in dieser Gruppe aktivieren", + "grpAutoType": "Auto-Type aktivieren", + "grpAutoTypeSeq": "Auto-Type-Sequenz", + "grpAutoTypeSeqDefault": "Standard-Auto-Type-Sequenz verwenden", + "grpTrash": "Gruppe und alle enthaltenen Einträge löschen", + "tagTitle": "Tag", + "tagTrash": "Diesen Tag von allen Einträgen entfernen", + "tagRename": "Umbenennen", + "tagTrashQuestion": "Diesen Tag von allen Einträgen entfernen?", + "tagTrashQuestionBody": "Der Tag wird von allen Einträgen entfernt. Diese Aktion kann nicht rückgängig gemacht werden.", + "tagExists": "Tag existiert bereits", + "tagExistsBody": "Ein Tag mit diesem Namen ist bereits vorhanden. Bitte einen anderen Namen wählen.", + "tagBadName": "Ungültiger Name", + "tagBadNameBody": "Der Tag-Name darf folgende Zeichen nicht enthalten: {}. Bitte diese entfernen.", + "genPsTitle": "Generator-Voreinstellungen", + "genPsCreate": "Neue Voreinstellung", + "genPsDelete": "Voreinstellung löschen", + "genPsNew": "Voreinstellung", + "genPsEnabled": "In Voreinstellungsliste anzeigen", + "genPsDefault": "Standardmäßig ausgewählt", + "genPsDefaultLength": "Standardlänge", + "genPsUpper": "Lateinische Großbuchstaben", + "genPsLower": "Lateinische Kleinbuchstaben", + "genPsDigits": "Ziffern", + "genPsSpecial": "Sonderzeichen", + "genPsBrackets": "Klammern", + "genPsHigh": "Erweiterte ASCII-Zeichen", + "genPsAmbiguous": "Ähnliche Zeichen", + "genPsInclude": "Zusätzliche Symbole angeben", + "genPsExample": "Beispiel für ein generiertes Passwort", + "genPsPattern": "Muster", + "genPsPatternHelp": "Mit Mustern können eigene Regeln zur Auswahl von Zeichen festgelegt werden. Beispielsweise werden mit 1-AA Passwörter generiert, die mit einer Ziffer starten, gefolgt von einem Bindestrich und zwei Großbuchstaben. Folgende Symbole stehen zur Verfügung:", + "genPsAllRanges": "Alle Zeichen", + "genPsIncluded": "Zusätzliche oben hinzugefügte Zeichen", + "keyChangeTitleRemote": "Hauptschlüssel geändert", + "keyChangeMessageRemote": "Der Hauptschlüssel für diese Datenbank wurde geändert. Bitte das neue Passwort eingeben.", + "keyChangeTitleExpired": "Hauptschlüssel abgelaufen", + "keyChangeMessageExpired": "Der Hauptschlüssel für diese Datenkbank ist abgelaufen. Bitte geben Sie einen neuen Schlüssel ein.", + "keyChangeRepeatPassword": "Passwort (Wiederholung)", + "keyEnter": "Enter", + "iconFavTitle": "Website-Symbol herunterladen und verwenden", + "iconSelCustom": "Eigenes Icon auswählen", + "listEmptyTitle": "Leer", + "listEmptyAdd": "Zum Anlegen neuer Einträge den obigen {} Button benutzen", + "listGroup": "Gruppe", + "listNoWebsite": "keine Website", + "listNoUser": "kein Benutzer", + "listNoAttachments": "keine Anhänge", + "listAddTemplateHeader": "Vorlagen", + "listAddTemplateBody1": "Vorlagen ermöglichen es, Einträge mit nur einem Klick zu erstellen. Fügen Sie etwas zum Vorlage-Eintrag hinzu und klicken Sie auf {}, um diese Vorlage zu verwenden.", + "listAddTemplateBody2": "Sie können Ihre Vorlagen in der Gruppe “{}” finden.", + "searchAddNew": "Hinzufügen", + "searchSort": "Sortierung", + "searchCreated": "Erstelldatum", + "searchUpdated": "Änderungsdatum", + "searchAttachments": "Anhänge", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Alt {} Neu", + "searchNO": "Neu {} Alt", + "searchShiftClickOr": "Umschalt-Klick oder", + "searchAdvTitle": "Erweiterte Suche", + "searchSearchIn": "Durchsuchen", + "searchOther": "Andere Felder", + "searchProtect": "Geschützte Felder", + "searchOptions": "Suchoptionen", + "searchCase": "Groß/klein", + "searchRegex": "RegEx", + "searchRank": "Automatisch", + "searchExact": "Exakt", + "openOpen": "Öffnen", + "openNew": "Neu", + "openNewFile": "Neu", + "openMore": "Mehr", + "openDemo": "Demo", + "openGenerate": "Generieren", + "openXml": "XML importieren", + "openCaps": "Feststelltaste ist aktiviert", + "openClickToOpen": "Hier klicken, um eine Datei zu öffnen", + "openKeyFile": "Schlüsseldatei", + "openKeyFileDropbox": "(von Dropbox)", + "openDropHere": "Dateien hier ablegen", + "openFailedRead": "Datei konnte nicht gelesen werden", + "openNothingFound": "Nichts gefunden", + "openNothingFoundBody": "Es konnten keine kompatiblen Dateien gefunden werden.", + "openSelectFile": "Datei auswählen", + "openSelectFileBody": "Wählen Sie eine Datei zum Öffnen aus", + "openPassFor": "Passwort für", + "openRemoveLastQuestion": "Lokale Datei löschen?", + "openRemoveLastQuestionBody": "Die Datei, die Sie löschen möchten, ist nur innerhalb der App gespeichert. Möchten Sie diese unwiederbringlich löschen?", + "openRemoveLastQuestionModBody": "Die Datei, die Sie löschen möchten, beinhaltet lokale Änderungen. Möchten Sie diese Änderungen verwerfen und die Datei löschen?", + "openLocalFile": "Lokale Datei", + "openLocalFileBody": "Sie sind dabei, eine Datei zu öffnen, die innerhalb der App gespeichert wird. Wenn Sie an dieser Datei Änderungen vornehmen, werden diese nicht im Dateisystem gespeichert. Um die Datei mit den Änderungen zu erhalten, können Sie diese aus den Einstellungen heraus exportieren.", + "openLocalFileDontShow": "Nicht wieder anzeigen", + "openWrongFile": "Inkompatibles Dateiformat", + "openWrongFileBody": "Dieses Dateiformat ist nicht kompatibel. Die App unterstützt KeePass-Datenbanken im kdbx-Format.", + "openKdbFileBody": "Sie versuchen, eine alte KeePass-Datenbank im kdb-Format zu öffnen. Diese App unterstützt nur das neuere kdbx-Format. Bitte verwenden Sie KeePass v2, um diese Datei umzuwandeln.", + "openConfigHeader": "{} Einstellungen", + "openUrl": "URL", + "openUrlDesc": "https://server/pfad/datei.kdbx, oder einfach datei.kdbx", + "openUser": "Benutzername", + "openUserDesc": "WebDAV-Server-Benutzername (falls erforderlich)", + "openUserPlaceholder": "kein Benutzername", + "openPass": "Passwort", + "openPassDesc": "WebDAV-Server-Passwort (nicht das KDBX-Datei-Passwort)", + "openPassPlaceholder": "kein Passwort", + "openConfigError": "Fehler: {}", + "openConfigErrorNotFound": "Datei nicht gefunden", + "openError": "Fehler", + "openErrorDescription": "Beim Öffnen der Datei ist ein Fehler aufgetreten", + "openErrorFileNotFound": "Datei nicht gefunden", + "openListErrorBody": "Dateien konnten nicht geladen werden", + "openShowAllFiles": "Alle Dateien anzeigen", + "openFileNoCacheError": "Die Datei wurde im Cache-Speicher nicht gefunden. Möglicherweise wurde Ihr Browser-Speicher geleert. Um die Datei zu öffnen, entfernen Sie sie aus KeeWeb und fügen Sie sie erneut hinzu", + "openChalRespHeader": "Challenge-Response", + "openChalRespLoading": "Liste mit YubiKeys wird geladen", + "openChalRespSelectYubiKey": "Wählen Sie den YubiKey aus, den Sie benutzen wollen", + "openChalRespErrorEmpty": "Keine YubiKeys gefunden.", + "openChalRespErrorEmptyMac": "Verwenden Sie dieses Feature zum ersten Mal auf MacOS? KeeWeb muss in Ihren Sicherheitseinstellung im Input-Monitoring-Abschnitt hinzugefügt werden.", + "detAttDownload": "Umschalttaste + Klick auf den Anhang-Button zum Herunterladen oder", + "detAttDelToRemove": "Backspace zum Entfernen", + "detAttSave": "Speichern unter …", + "detEmpty": "Ihre Passwörter werden hier angezeigt", + "detGroupRestore": "Ziehen Sie diese Gruppe in eine andere Gruppe als den Papierkorb, um sie wiederherzustellen.", + "detHistoryClickPoint": "Klicken Sie auf einen der Punkte im Verlauf, um den entsprechenden Zustand des Eintrags anzuzeigen", + "detHistoryReturn": "zurück zum Eintrag", + "detHistoryRevert": "Auf diese Version zurücksetzen", + "detHistoryDel": "Version löschen", + "detHistoryEmpty": "leer", + "detHistoryModified": "geändert", + "detHistoryRec": "Version", + "detHistoryRecs": "Versionen", + "detHistoryVersion": "Version", + "detHistorySaved": "Gespeichert", + "detHistoryNoTitle": "keine Bezeichnung", + "detHistoryCurState": "aktuelle Version", + "detHistoryCurUnsavedState": "aktuelle ungespeicherte Version", + "detHistoryRevertAlert": "Zu diesem Stand zurückkehren?", + "detHistoryRevertAlertBody": "Ihr aktueller Stand wird in der Historie gesichert.", + "detHistoryDeleteAlert": "Diesen Stand löschen?", + "detHistoryDeleteAlertBody": "Sie können ihn nicht wiederherstellen.", + "detHistoryDiscardChangesAlert": "Änderungen an diesem Eintrag verwerfen?", + "detHistoryDiscardChangesAlertBody": "Ungespeicherte Änderungen gehen dabei unwiderruflich verloren.", + "detBackToList": "zurück zur Liste", + "detSetIconColor": "Farbe ändern", + "detSetIcon": "Symbol ändern", + "detDropAttachments": "Anhänge hier ablegen", + "detDelEntry": "Löschen", + "detDelEntryPerm": "Dauerhaft löschen", + "detExpires": "Ablaufdatum", + "detExpired": "abgelaufen", + "detGroup": "Gruppe", + "detCreated": "Erstellt", + "detUpdated": "Geändert", + "detNetField": "Neues Feld", + "detAttachments": "Anhänge", + "detDelFromTrash": "Aus dem Papierkorb löschen?", + "detDelFromTrashBody": "Es wird keine Möglichkeit zur Wiederherstellung geben.", + "detDelFromTrashBodyHint": "Um alle Dateien aus dem Papierkorb zu entfernen, klicken Sie auf das „Papierkorb leeren“-Symbol im Papierkorb-Menüpunkt.", + "detDelToTrash": "Diesen Eintrag löschen?", + "detDelToTrashBody": "Der Eintrag wird in den Papierkorb verschoben.", + "detFieldCopied": "Kopiert", + "detFieldCopiedTime": "Kopiert für {} Sekunden", + "detCopyHint": "Sie können den Inhalt eines Feldes kopieren, indem Sie auf seine Beschriftung klicken", + "detMore": "mehr", + "detClickToAddField": "Klicken, um ein neues Feld hinzuzufügen", + "detMenuAddNewField": "Neues Feld hinzufügen", + "detMenuShowEmpty": "Leere Felder anzeigen", + "detMenuHideEmpty": "Leere Felder ausblenden", + "detMenuAddField": "{} hinzufügen", + "detMenuCopyPassword": "Passwort kopieren", + "detMenuCopyUser": "Benutzer kopieren", + "detMenuCopyOtp": "Einmal-Code kopieren", + "detSetupOtp": "Einmal-Codes", + "detClone": "Kopie erstellen", + "detCopyEntryToClipboard": "Alle Felder kopieren", + "detClonedName": "Kopie", + "detAutoType": "Auto-Type", + "detAutoTypeSettings": "Auto-Type Einstellungen", + "detAutoTypeEnabled": "Auto-Type für diesen Eintrag aktivieren", + "detAutoTypeSequence": "Tastenfolge", + "detAutoTypeInput": "Eingabe", + "detAutoTypeShortcutsDesc": "{} oder {} während die App inaktiv ist", + "detAutoTypeObfuscation": "Echte Tastenanschläge mit zufälligen mischen", + "detAutoTypeWindow": "Fenster", + "detAutoTypeInputWindow": "Fenstertitel", + "detSetupOtpAlert": "QR-Code einscannen", + "detSetupOtpAlertBody": "Bitte kopieren Sie den QR-Code, der auf der Autorisierungsseite angezeigt wird.", + "detSetupOtpAlertBody1": "1. Gehen Sie zur Autorisierungsseite", + "detSetupOtpAlertBody2": "2. Erstellen Sie einen Screenshot des QR-Codes {}", + "detSetupOtpAlertBody3": "3. Fügen Sie ihn hier ein {}", + "detSetupOtpAlertBody3Mobile": "3. Markieren Sie ihn oder scannen Sie ihn mit Ihrer Kamera mit dem untenstehenden Markieren/Scannen-Button", + "detSetupOtpAlertBody4": "Wenn Sie den Code nicht einscannen können, klicken Sie bitte auf “Code manuell eingeben”", + "detSetupOtpManualButton": "Code manuell eingeben", + "detSetupOtpScanButton": "Markieren/Scannen", + "detSetupOtpAlertBodyWith": "mit {}", + "detOtpImageError": "Fehler beim Einlesen des Bildes", + "detOtpImageErrorBody": "Entschuldigung, wir konnten das Bildformat nicht lesen. Bitte kontaktieren Sie den Hersteller mit Einzelheiten zu diesem Fehler.", + "detOtpImageReading": "QR-Code wird eingelesen …", + "detOtpQrError": "QR-Code Lesefehler", + "detOtpQrErrorBody": "Der QR-Code konnte leider nicht eingelesen werden. Bitte versuchen Sie es noch einmal oder kontaktieren Sie den Hersteller mit Einzelheiten zum aufgetretenen Fehler.", + "detOtpQrWrong": "Fehlerhafter QR-Code", + "detOtpQrWrongBody": "Ihr QR-Code wurde erfolgreich eingelesen, enthält jedoch keinen Einmal-Code.", + "detOtpField": "Einmal-Code", + "detOtpClickToTouch": "Zum Erzeugen hier klicken", + "detOtpGenerating": "Wird erzeugt …", + "detOtpTouch": "Berühren Sie Ihren {}", + "detLockField": "Dieses Feld sperren, damit der Inhalt nicht durchsuchbar ist und angezeigt wird. Um ihn anzuzeigen, muss er angeklickt werden.", + "detUnlockField": "Dieses Feld entsperren. Dies führt dazu, dass der Inhalt direkt angezeigt wird und durchsuchbar ist.", + "detRevealField": "Anzeigen", + "detHideField": "Verbergen", + "detAutoTypeField": "Auto-Type", + "detIssuesHideTooltip": "Diese Warnung verstecken", + "detIssueWeakPassword": "Das Passwort ist schwach, es wird empfohlen es zu ändern.", + "detIssuePoorPassword": "Das Passwort ist schwach, es wird dringend empfohlen es zu ändern.", + "detIssuePwnedPassword": "Dieses Passwort wurde laut {} in einem Datenleck gefunden, es wird empfohlen das Passwort zu ändern.", + "detIssuePasswordCheckError": "Es gab einen Fehler bei der online-überprüfung des Passwort.", + "detIssueOldPassword": "Das Passwort ist alt.", + "detIssueCloseAlertHeader": "Verstecke Passwortmeldungen", + "detIssueCloseAlertBody": "Es gibt verschiedene Möglichkeiten diese Warnung zu verstecken:", + "detIssueCloseAlertEntry": "Nicht für diesen Eintrag anzeigen.", + "detIssueCloseAlertSettings": "Globale Einstellungen anpassen", + "autoTypeEntryFields": "Feld-Platzhalter", + "autoTypeModifiers": "Hilfstasten", + "autoTypeKeys": "Tasten", + "autoTypeLink": "mehr …", + "autoTypeError": "Auto-Type-Fehler", + "autoTypeErrorGeneric": "Während der Ausführung von Auto-Type ist ein Fehler aufgetreten: {}", + "autoTypeErrorGlobal": "Um globale Tastenkürzel zu nutzen, wechseln Sie bitte zu der Anwendung, in der Sie das Passwort eingeben wollen.", + "autoTypeErrorNotInstalled": "{} ist nicht installiert", + "autoTypeHeader": "Auto-Type: Auswählen", + "autoTypeMsgNoWindow": "Wir konnten den Titel des aktiven Fensters leider nicht auslesen. Fangen Sie einfach an zu tippen, um nach dem richtigen Eintrag zu suchen.", + "autoTypeMsgMatchedByWindow": "Passwort auswählen für {}", + "autoTypeNoMatches": "keine passenden Einträge", + "autoTypeSelectionHint": "Die Auto-Type-Sequenz eintippen", + "autoTypeSelectionHintAction": "Nur das Passwort eintippen", + "autoTypeSelectionHintOpt": "Nur den Benutzernamen eintippen", + "autoTypeSelectionHintShift": "Andere Felder", + "autoTypeSelectionOtp": "Einmal-Code", + "appSecWarn": "Unsichere Verbindung!", + "appSecWarnBody1": "Sie haben diese App über eine ungesicherte Verbindung geöffnet, Sie könnten beobachtet und Ihre Passwörter könnten gestohlen werden. Wir empfehlen Ihnen dringend, die App hier nicht weiter zu nutzen, wenn Sie nicht genau wissen, was Sie tun.", + "appSecWarnBody2": "Ihre Datenbank ist zwar verschlüsselt, aber es kann nicht sichergestellt werden, dass die App nicht auf dem Web vom Server zu Ihrem Browser manipuliert wurde.", + "appSecWarnBtn": "Ich habe das Risiko verstanden, trotzdem fortfahren", + "appUnsavedWarn": "Ungespeicherte Änderungen!", + "appUnsavedWarnBody": "Sie haben ungespeicherte Änderungen. Wenn Sie die App schließen, gehen diese verloren.", + "appDontExitBtn": "App nicht verlassen", + "appCannotLockAutoInit": "Die App kann nicht gesperrt werden, da automatisches Speichern deaktiviert ist.", + "appCannotLock": "Sie haben ungespeicherte Änderungen, die verloren gehen. Fortfahren?", + "appAutoSave": "Änderungen automatisch speichern", + "appSaveError": "Fehler beim Speichern", + "appSaveErrorBody": "Automatisches Speichern fehlgeschlagen", + "appSaveErrorBodyMul": "Automatisches Speichern fehlgeschlagen:", + "appSaveErrorExitLoseChanges": "Schließen und alle Änderungen verlieren", + "appSaveErrorExitLoseChangesBody": "Du kannst entweder die App schließen und alle Änderungen verlieren, oder gehe in die Dateieinstellungen und exportiere die Daten", + "appSettingsError": "Fehler beim Laden der App", + "appSettingsErrorBody": "Es gab einen Fehler beim Laden der App-Einstellungen. Bitte überprüfen Sie die App-URL oder kontaktieren Sie Ihren Systemadministrator.", + "appNotSupportedError": "Ihr Browser unterstützt einige wichtige Funktionen nicht, die für diese App benötigt werden.", + "appTabWarn": "Zu viele Tabs", + "appTabWarnBody": "KeeWeb kann nicht in mehreren Browser-Tabs gleichzeitig genutzt werden, bitte schließen Sie diesen Tab.", + "appRightsAlert": "Schreibschutz für KeeWeb wird eingerichtet", + "appRightsAlertBody1": "Ihre KeeWeb-Anwendung ist nicht gegen Änderungen von außen gesichert. Um diesen Schreibschutz einzurichten, benötigt die App Administratorrechte.", + "appRightsAlertBody2": "Sie möchten der App keine Administratorrechte erteilen? Mit folgendem Befehl können Sie den Schreibschutz auch von Hand im Terminal aktivieren", + "appBrowserAuthComplete": "Die Authentifizierung ist abgeschlossen, Sie können diesen Tab jetzt schließen.", + "setGenTitle": "Allgemeine Einstellungen", + "setGenUpdate": "Update", + "setGenNewVersion": "Eine neue Version der App ist verfügbar und wurde heruntergeladen", + "setGenReleaseNotes": "Versionshinweise anzeigen", + "setGenReloadToUpdate": "Seite aktualisieren, um das Update durchzuführen", + "setGenUpdateManual": "Eine neue Version ist verfügbar. Sie wird nach Updates suchen und diese automatisch installieren, ein automatisches Update Ihrer Version ist aber nicht möglich.", + "setGenDownloadUpdate": "Update herunterladen", + "setGenUpdateAuto": "Automatisch herunterladen und installieren", + "setGenUpdateCheck": "Auf Updates überprüfen, aber nicht installieren", + "setGenNoUpdate": "Nie nach Updates suchen", + "setGenUpdateChecking": "Updates werden gesucht", + "setGenCheckUpdate": "Nach Updates suchen", + "setGenErrorChecking": "Updatesuche fehlgeschlagen", + "setGenLastCheckSuccess": "Letzte erfolgreiche Überprüfung am {}", + "setGenLastCheckVer": "Die aktuelle Version war {}", + "setGenCheckedAt": "Überprüft am", + "setGenLatestVer": "Sie haben die aktuellste Version", + "setGenNewVer": "Neue Version {} verfügbar, veröffentlicht am", + "setGenDownloadingUpdate": "Update wird heruntergeladen …", + "setGenExtractingUpdate": "Update wird entpackt …", + "setGenCheckErr": "Beim Herunterladen der neuen Version ist ein Fehler aufgetreten", + "setGenNeverChecked": "Nie nach Updates gesucht", + "setGenRestartToUpdate": "App neu starten, um das Update durchzuführen", + "setGenDownloadAndRestart": "Update herunterladen und App neu starten", + "setGenAppearance": "Oberfläche", + "setGenTheme": "Theme", + "setGenThemeDefault": "Standard", + "setGenThemeDark": "Dunkel", + "setGenThemeLight": "Hell", + "setGenThemeBlue": "Flach blau", + "setGenThemeFb": "Mattblau", + "setGenThemeBl": "Hell blau", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Dunkelbraun", + "setGenThemeLb": "Hell braun", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Hell Terminal", + "setGenThemeHighContrast": "Hoher Kontrast", + "setGenThemeHc": "Hoher Kontrast", + "setGenThemeDc": "Dunkel Kontrast", + "setGenThemeSol": "Solarized", + "setGenThemeSd": "Solarisiert dunkel", + "setGenThemeSl": "Solarisiert hell", + "setGenMoreThemes": "Mehr Themes", + "setGenAutoSwitchTheme": "Automatisch zwischen hellem und dunklem Thema umschalten, sofern möglich", + "setGenLocale": "Sprache", + "setGenLocOther": "Andere Sprachen sind als Plugins verfügbar.", + "setGenFontSize": "Schriftgröße", + "setGenFontSizeNormal": "Standard", + "setGenFontSizeLarge": "Groß", + "setGenFontSizeLargest": "Größte", + "setGenTitlebarStyle": "Fensterstil (erfordert Neustart des Programms)", + "setGenTitlebarStyleDefault": "Standard", + "setGenTitlebarStyleHidden": "Eigener Titel", + "setGenTitlebarStyleHiddenInset": "Eigener Titel, verschiebbares Fenster", + "setGenShowSubgroups": "Einträge aus allen Untergruppen anzeigen", + "setGenTableView": "Einträge in Tabellenansicht anzeigen", + "setGenColorfulIcons": "Eigene Symbole in der Listenansicht farbig anzeigen", + "setGenUseMarkdown": "Markdown in Notizen", + "setGenUseGroupIconForEntries": "Für neue Einträge automatisch das Gruppensymbol verwenden", + "setGenDirectAutotype": "Wenn nur ein passender Eintrag gefunden wird, diesen automatisch für Auto-Type auswählen", + "setGenFunction": "Arbeitsweise", + "setGenAutoSyncOnClose": "Beim Schließen speichern und synchronisieren", + "setGenAutoSyncTimer": "Regelmäßig speichern und synchronisieren", + "setGenAutoSyncTimerOff": "Abgeschaltet", + "setGenAutoSyncTimerInterval": "Alle {} Minuten", + "setGenRememberKeyFiles": "Schlüsseldateien merken", + "setGenNoRememberKeyFiles": "Nicht merken", + "setGenRememberKeyFilesData": "Im internen App-Speicher ablegen", + "setGenRememberKeyFilesPath": "Nur Speicherort der Schlüsseldateien merken", + "setGenLockInactive": "Wenn die App inaktiv ist", + "setGenNoAutoLock": "Nicht automatisch sperren", + "setGenLockMinutes": "Nach {} Minuten", + "setGenLockHour": "In einer Stunde", + "setGenLockHours": "Nach {} Stunden", + "setGenLockDay": "Nach einem Tag", + "setGenClearClip": "Zwischenablage nach dem Kopieren leeren", + "setGenNoClear": "Nicht leeren", + "setGenClearSeconds": "In {} Sekunden", + "setGenClearMinute": "Nach einer Minute", + "setGenMinInstead": "App beim Schließen stattdessen minimieren", + "setGenLock": "Automatisch sperren", + "setGenLockMinimize": "Beim Minimieren der App", + "setGenLockCopy": "Nach dem Kopieren eines Passworts", + "setGenLockAutoType": "Bei Auto-Type", + "setGenLockOrSleep": "Bei Aktivierung von Bildschirmsperre oder Ruhezustand", + "setGenStorage": "Synchronisierung", + "setGenDisableOfflineStorage": "Geladene Dateien nicht in Offline-Speicher zwischenspeichern", + "setGenStorageLogout": "Abmelden", + "setGenShowAdvanced": "Erweiterte Einstellungen anzeigen", + "setGenDevTools": "Entwicklerwerkzeuge anzeigen", + "setGenTryBeta": "Betaversion bis zum Schließen der App ausprobieren", + "setGenTryBetaWarning": "Ungespeicherte Dateien", + "setGenTryBetaWarningBody": "Bitte speichern Sie alle Dateien und klicken erneut auf diese Schaltfläche", + "setGenShowAppLogs": "App-Logs anzeigen", + "setGenReloadApp": "App neu laden", + "setGenFieldLabelDblClickAutoType": "Auto-Type durch Anklicken von Beschriftungen aktivieren", + "setGenTouchId": "Fingerabdruck", + "setGenTouchIdDisabled": "Fingerabdruck nicht benutzen", + "setGenTouchIdMemory": "Nur mit Fingerabdruck entsperren, wenn KeeWeb aktiv ist", + "setGenTouchIdFile": "Benutze immer den Fingerabdruck anstatt das Master-Passwort", + "setGenTouchIdPass": "Benötige Master-Passwort nach", + "setGenAudit": "Audit", + "setGenAuditPasswords": "Warnungen für schwache Passwörter anzeigen", + "setGenAuditPasswordEntropy": "Passwortlänge und Zufälligkeit prüfen", + "setGenExcludePinsFromAudit": "Kurze Pin-Codes niemals prüfen (z. B. 12345)", + "setGenHelpHIBP": "KeeWeb kann überprüfen ob deine Passwörter bei einem früheren Datenleck veröffentlicht wurden. Deine Passwörter können nicht beim übertragen ausgelesen werden, aber die Anzahl der überprüften Passwörter kann möglicherweise entdeckt werden. {} kannst du mehr über den Datenschutz beim Nutzen dieses Dienstes erfahren. Wenn diese Option aktiviert ist überprüft KeeWeb deine Passwörter automatisch.", + "setGenHelpHIBPLink": "hier", + "setGenAuditPasswordAge": "Alte Passwörter", + "setGenAuditPasswordAgeOff": "Zeige keine Warnungen über alte Passwörter", + "setGenAuditPasswordAgeOneYear": "Zeige Warnungen für Passwörter die über ein Jahr alt sind", + "setGenAuditPasswordAgeYears": "Zeige Warnungen für Passwörter die über {} Jahre alt sind", + "setFilePath": "Dateipfad", + "setFileStorage": "Diese Datei wird von {} geladen.", + "setFileIntl": "Diese Datei ist im internen App-Speicher abgelegt", + "setFileLocalHint": "Sie wollen nahtlos mit lokalen Dateien arbeiten?", + "setFileDownloadApp": "Laden Sie die Desktop-App herunter", + "setFileSave": "Speichern", + "setFileSaveTo": "Speichern unter …", + "setFileClose": "Sperren", + "setFileSync": "Synchronisierung", + "setFileSyncVerb": "Synchronisieren", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Letzte Synchronisierung", + "setFileLastSyncUnknown": "unbekannt", + "setFileSyncInProgress": "Synchronisierung läuft", + "setFileSyncError": "Synchronisierungsfehler", + "setFilePass": "Hauptpasswort", + "setFileConfirmPass": "Masterpasswort bestätigen", + "setFilePassChange": "Um das Passwort zu ändern, geben Sie es im Bestätigungsfeld an", + "setFilePassChanged": "Das Passwort wurde geändert. Lassen Sie das Feld leer, um das bisherige Passwort zu behalten.", + "setFilePassNotMatch": "Die Passwörter stimmen nicht überein, bitte geben Sie diese erneut ein", + "setFileKeyFile": "Schlüsseldatei", + "setFileSelKeyFile": "Schlüsseldatei auswählen", + "setFileNames": "Namen", + "setFileDefUser": "Standard-Benutzername", + "setFileEnableTrash": "Papierkorb aktivieren", + "setFileHistMode": "Eintragsverlauf", + "setFileHistLimited": "Alte Einträge im Verlauf automatisch löschen", + "setFileHistDisabled": "Keinen Verlauf speichern", + "setFileHistUnlimited": "Verlauf dauerhaft speichern", + "setFileHistLen": "Anzahl der im Verlauf gespeicherten Versionen", + "setFileHistSize": "Maximalgröße des Verlaufs pro Datei in MB", + "setFileBackups": "Sicherungen", + "setFileBackupEnable": "Diese Datei sichern", + "setFileBackupPath": "Sicherungspfad", + "setFileBackupTime": "Sicherungen anlegen", + "setFileBackupNow": "Jetzt sichern", + "setFileBackupNowWorking": "Ausführung läuft …", + "setFileBackupError": "Sicherungsfehler", + "setFileBackupErrorDescription": "Fehler beim Schreiben der Sicherungsdatei", + "setFileBackupErrorIsDir": "Der Sicherungspfad ist ungültig", + "setFileBackupErrorIsDirDescription": "Der Sicherungspfad scheint ein Verzeichnis zu sein. Bitte geben Sie stattdessen einen Dateinamen ein.", + "setFileBackupOnSave": "Immer, wenn die Datei gespeichert wird", + "setFileBackupDaily": "Täglich", + "setFileBackupWeekly": "Wöchentlich", + "setFileBackupMonthly": "Monatlich", + "setFileBackupManually": "Manuell, keine automatische Sicherung", + "setFileRounds": "Verschlüsselungs-Runden", + "setFileKdfParams": "Schlüsselableitungsfunktion", + "setFileKdfParamsIter": "Iterationen", + "setFileKdfParamsMem": "Speicher in KB", + "setFileKdfParamsPar": "Parallelismus", + "setFileKeyChangeForce": "Hinweis zum Ändern des Schlüssels nach (Tagen)", + "setFileUseKeyFile": "Schlüsseldatei benutzen", + "setFileUseGenKeyFile": "Generierte Schlüsseldatei benutzen", + "setFileUseOldKeyFile": "Alte Schlüsseldatei benutzen", + "setFileGenKeyFile": "Neue Schlüsseldatei generieren", + "setFileDontUseKeyFile": "Keine Schlüsseldatei verwenden", + "setFileEmptyPass": "Leeres Passwort", + "setFileEmptyPassBody": "Eine Datenbank ohne Passwort zu speichern, macht diese vollkommen ungeschützt. Möchten Sie dies trotzdem tun?", + "setFileSaveError": "Fehler beim Speichern", + "setFileSaveErrorBody": "Schreibfehler beim Speichern", + "setFileAlreadyExists": "Existiert bereits", + "setFileAlreadyExistsBody": "Die Datei {} existiert bereits. Überschreiben?", + "setFileUnsaved": "Ungespeicherte Änderungen", + "setFileUnsavedBody": "Es gibt ungespeicherte Änderungen in dieser Datei", + "setFileCloseNoSave": "Sperren und Änderungen verwerfen", + "setFileDontClose": "Nicht sperren", + "setFileFormatVersion": "Dateiformat", + "setFileExportRaw": "Passwörter exportieren", + "setFileExportRawBody": "Die Exportdatei wird Ihre Passwörter als unverschlüsselten Klartext enthalten. Möchten Sie fortfahren?", + "setFileDeviceIntro": "Einmal-Codes aus diesem {} werden in der App angezeigt.", + "setFileDeviceSettings": "Einstellungen", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Keinen YubiKey verwenden", + "setFileRefreshYubiKeyList": "Liste aktualisieren", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Es ist gefährlich, einen YubiKey als Teil des Hauptschlüssels zu verwenden. Falls etwas schief geht, besteht möglicherweise kein Zugriff mehr auf die Passwörter. Haben Sie ein Backup Ihrer Datei erstellt, bevor diese Einstellung geändert wurde?", + "setFileYubiKeyErrorEmptyMac": "Scheinbar wurde ein YubiKey angeschlossen, er ist aber nicht sichtbar. KeeWeb muss in den Sicherheitseinstellungen im Abschnitt Input-Monitoring hinzugefügt werden, um auf YubiKeys zugreifen zu können.", + "setShTitle": "Tastenkürzel", + "setShShowAll": "alle Einträge anzeigen", + "setShColors": "mit Farben markierte Einträge anzeigen", + "setShTrash": "Papierkorb öffnen", + "setShFind": "Suchen oder einfach beginnen zu tippen", + "setShClearSearch": "Suchfeld leeren", + "setShCopyPass": "Passwort bzw. ausgewähltes Feld kopieren", + "setShCopyUser": "Benutzername kopieren", + "setShCopyUrl": "Website kopieren", + "setShAutoType": "Auto-Type für ausgewählten Eintrag", + "setShPrev": "zum vorherigen Eintrag gehen", + "setShNext": "zum nächsten Eintrag gehen", + "setShCreateEntry": "Neuer Eintrag", + "setShOpen": "Öffnen / Neu", + "setShSave": "Alle Dateien speichern", + "setShGen": "Passwort generieren", + "setShSet": "App-Einstellungen", + "setShCopyPassGlobal": "Passwort kopieren", + "setShCopyOtp": "Einmal-Passwort kopieren", + "setShAutoTypeGlobal": "Auto-Type", + "setShCopyPassOnly": "Passwort kopieren", + "setShRestoreApp": "{} öffnen", + "setShGlobal": "Diese systemweiten Tastenkürzel funktionieren auch, wenn die App im Hintergrund läuft. Klicken Sie auf einen Eintrag, um ein eigenes Kürzel festzulegen.", + "setShLock": "Datenbank sperren", + "setShEdit": "Drücken Sie eine Tastenkombination, um diese als Kürzel zu festzulegen", + "setPlInstallTitle": "Neue Plugins installieren", + "setPlInstallDesc": "KeeWeb-Plugins fügen Funktionen, Themes und Sprachen zu KeeWeb hinzu. Plugins werden mit denselben Rechten ausgeführt wie KeeWeb selbst, sie können auf all Ihre Passwörter zugreifen oder diese ändern. Installieren Sie niemals Plugins, denen Sie nicht vertrauen.", + "setPlInstallLabel": "Plugin-URL", + "setPlInstallBtn": "Installieren", + "setPlInstallBtnProgress": "Installation läuft", + "setPlUninstallBtn": "Deinstallieren", + "setPlDisableBtn": "Deaktivieren", + "setPlEnableBtn": "Aktivieren", + "setPlUpdateBtn": "Aktualisieren", + "setPlLocaleBtn": "Diese Sprache aktivieren", + "setPlThemeBtn": "Dieses Theme aktivieren", + "setPlJs": "Code", + "setPlCss": "Stile", + "setPlLoc": "Sprache", + "setPlCreatedBy": "Erstellt von {}", + "setPlLoadTime": "geladen in {}", + "setPlLastUpdate": "Letzte Prüfung auf Updates", + "setPlLoadError": "Fehler beim Laden des Plugins", + "setPlGalleryLoading": "Plugins werden geladen, bitte einen Moment warten", + "setPlGalleryLoadError": "Fehler beim Laden der Plugins", + "setPlInstallUrlTitle": "Plugin von einer URL hinzufügen", + "setPlInstallUrlDesc": "Wenn das Plugin nicht in der Galerie verfügbar ist, können Sie es manuell von einer URL installieren", + "setPlOfficial": "Offizielles KeeWeb-Plugin", + "setPlSearch": "Nach Plugins suchen", + "setPlDevelop": "Eigene Plugins entwickeln?", + "setPlDevelopStart": "Hier entlang", + "setPlTranslate": "Oder {}", + "setPlTranslateLink": "übersetzen Sie die App in Ihre Sprache", + "setPlAutoUpdate": "Automatisch aktualisieren", + "setPlLoadGallery": "Plugin-Galerie laden", + "setDevicesTitle": "Geräte", + "setDevicesEnableUsb": "Interaktion mit USB-Geräten aktivieren", + "setDevicesYubiKeyIntro": "Es wird empfehlen {} zu lesen, bevor ein YubiKey verwendet wird.", + "setDevicesYubiKeyIntroLink": "dieses Dokument", + "setDevicesYubiKeyToolsDesc": "Um YubiKey in diesem Modus verwenden zu können, müssen Sie vorher das Tool {} installieren.", + "setDevicesYubiKeyToolsDesc2": "{}, um mehr Informationen über dieses Tool zu erhalten.", + "setDevicesYubiKeyToolsDescLink": "Hier klicken", + "setDevicesYubiKeyToolsStatusChecking": "Prüfung, ob {} installiert ist", + "setDevicesYubiKeyToolsStatusOk": "{} ist installiert", + "setDevicesYubiKeyToolsStatusError": "{} ist nicht installiert oder funktioniert nicht korrekt", + "setDevicesYubiKeyOtpTitle": "Einmal-Codes", + "setDevicesYubiKeyOtpDesc": "Ein YubiKey kann genutzt werden, um Einmal-Codes für verschiedene Dienste zu erzeugen.", + "setDevicesYubiKeyOtpShowIcon": "Das Symbol auf der Startseite anzeigen", + "setDevicesYubiKeyOtpAutoOpen": "Einmal-Codes automatisch laden, wenn Dateien geöffnet sind", + "setDevicesYubiKeyOtpMatchEntries": "Passende Einmal-Codes in den Einträgen anzeigen", + "setDevicesYubiKeyChalRespTitle": "Challenge-Response", + "setDevicesYubiKeyChalRespDesc": "Es ist auch möglich, einen YubiKey im Challenge-Response-Modus zu verwenden, um einen Teil des Private Schlüssels, der zum Verschlüsseln der Dateien verwendet wird, auf dem YubiKey zu speichern.", + "setDevicesYubiKeyChalRespShow": "Optionen zum Verwenden eines YubiKeys beim Öffnen von Dateien anzeigen", + "setDevicesYubiKeyStuckWorkaround": "YubiKey entfernen und neu verbinden, falls der Ladeprozess hängt", + "setDevicesYubiKeyRememberChalResp": "Challenge-Response-Einstellungen merken, während die App geöffnet ist", + "setAboutTitle": "Über", + "setAboutBuilt": "Diese App wurde mit folgenden Werkzeugen erstellt", + "setAboutLic": "Lizenz", + "setAboutLicComment": "Die App selbst und alle enthaltenen Komponenten, die nicht Public Domain sind, stehen unter der MIT-Lizenz.", + "setAboutFirst": "Dies ist eine Open-Source App, erstellt von {}", + "setAboutSecond": "und lizenziert unter {}.", + "setAboutSource": "Quellcode und Tickets befinden sich auf {}.", + "setHelpFormat": "Dateiformat", + "setHelpFormatBody": "Dies ist eine Portierung der App {}, programmiert mit Webtechnologien. Sie ist kompatibel mit Dateien im KeePass-Format (kdbx). Sie können solche Dateien (Passwort-Datenbanken) entweder mit KeePass oder mit dieser App erstellen. Das Dateiformat ist zu 100 % kompatibel und sollte in beiden Anwendungen nutzbar sein.", + "setHelpProblems": "Probleme?", + "setHelpProblems1": "Falls etwas schief geht, {}", + "setHelpProblems2": "oder {}", + "setHelpOpenIssue": "eröffnen Sie bitte ein Ticket auf GitHub (englisch)", + "setHelpContactLink": "kontaktieren Sie den Entwickler direkt", + "setHelpAppInfo": "App-Informationen", + "setHelpOtherPlatforms": "Andere Plattformen", + "setHelpDesktopApps": "Deskop-Apps", + "setHelpWebApp": "Web-App", + "setHelpUpdates": "Neuigkeiten", + "setHelpTwitter": "Twitter", + "dropboxSetupDesc": "Etwas Konfiguration ist notwendig, um Dropbox in einer selbst gehosteten Web-App zu verwenden. Bitte erstellen Sie eine eigene Dropbox-App und tragen Sie ihren App-Schlüssel unten ein.", + "dropboxAppKey": "Dropbox-App-Schlüssel", + "dropboxAppKeyDesc": "Kopieren Sie den Schlüssel aus Ihrer Dropbox-App (Entwicklereinstellungen)", + "dropboxAppKeyHint": "Ihr App-Schlüssel", + "dropboxAppSecret": "Dropbox-App-Secret", + "dropboxAppSecretDesc": "Das App-Secret ist neben dem App-Schlüssel zu finden", + "dropboxFolder": "App-Ordner", + "dropboxFolderDesc": "Wenn Ihre App mit der gesamten Dropbox verlinkt ist (anstatt mit einem bestimmten Ordner), geben Sie hier den Pfad zum Ordner mit Ihren KDBX-Dateien an.", + "dropboxFolderSettingsDesc": "Wählen Sie einen Ordner in Ihrer Dropbox, in dem die Dateien gespeichert werden (standardmäßig das Stammverzeichnis)", + "dropboxFolderPlaceholder": "Standardordner", + "dropboxLink": "App verlinken mit", + "dropboxLinkApp": "App-Ordner (Apps/KeeWeb)", + "dropboxLinkFull": "Gesamte Dropbox oder beliebiger Ordner", + "dropboxLinkCustom": "Eigene Dropbox-App", + "gdriveSharedWithMe": "Mit mir geteilt", + "webdavSaveMethod": "Speichermethode", + "webdavSaveMove": "Eine temporäre Datei hochladen und verschieben", + "webdavSavePut": "kdbx-Datei mittels PUT überschreiben", + "launcherSave": "Passwortdatenbank speichern", + "launcherFileFilter": "KeePass-Dateien", + "authPopupRequired": "Pop-ups blockiert", + "authPopupRequiredBody": "Bitte erlauben Sie Pop-ups in Ihrem Browser.", + "exportFileInfo": "Dateiinformationen", + "exportHtmlName": "Name", + "exportHtmlDate": "Exportdatum", + "exportGenerator": "Software", + "exportDescription": "Diese Datei wurde mit {} erstellt.", + "importCsvTitle": "Aus CSV importieren", + "importCsvRun": "Importieren", + "importIgnoreField": "Ignorieren", + "importTo": "Einträge werden importiert nach:", + "importNewFile": "Neue Datei", + "yubiKeyStuckError": "Der YubiKey scheint nicht mehr zu funktionieren. Auto-Repair kann in den App-Einstellungen aktiviert werden.", + "yubiKeyNoKeyHeader": "YubiKey benötigt", + "yubiKeyNoKeyBody": "Bitte den YubiKey mit der Seriennummer {} anschließen", + "yubiKeySlot": "Anschluss", + "yubiKeyTouchRequestedHeader": "Bitte den YubiKey berühren", + "yubiKeyTouchRequestedBody": "Bitte den YubiKey mit der Seriennummer {} berühren", + "yubiKeyDisabledErrorHeader": "USB ist deaktiviert", + "yubiKeyDisabledErrorBody": "YubiKey ist zum Öffnen dieser Datei erforderlich. Bitte USB-Geräte in den Einstellungen aktivieren.", + "yubiKeyErrorWithCode": "YubiKey-Fehler, Code {}.", + "bioOpenAuthPrompt": "„{}“ öffnen" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/de-DE/index.html b/keeweb/plugins/translations/de-DE/index.html new file mode 100644 index 0000000..70f935c --- /dev/null +++ b/keeweb/plugins/translations/de-DE/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Deutsch + + + + +

KeeWeb Language: Deutsch

+ https://plugins.keeweb.info/translations/de-DE + + diff --git a/keeweb/plugins/translations/de-DE/manifest.json b/keeweb/plugins/translations/de-DE/manifest.json new file mode 100644 index 0000000..dc34e12 --- /dev/null +++ b/keeweb/plugins/translations/de-DE/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.25.0", + "manifestVersion": "0.1.0", + "name": "language-german", + "description": "German language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=de-DE", + "resources": { + "loc": "CIx3AEJG6nemrgNUOQLX8GXnjoh+wa9ZWbCdHP4TuDOLsWCejuobKTFHimpoiUKK7ShFnSkbp6Zkl0SZLL7TbZ8ZYtB4mq2D65F0nwtVPvrckBM0G3cJSMX6T3DzZrtGTWSsP3eXFWL1TKFqEX8VtEtY0gQ2lAq0lmjuB2rqQ3MGQBIxNqsRY93TZWUdD7gDGh/F2u4K1t5I1dzNgsqUuiDKOr9CFx08vjg0YgJyAB3miQfXurobH8ESwTzxypMfhFKS9R77JaWsymeHhwMRnrZDyqKIwpih4u5ugOSLPXHZ4f41+sOd1KQBEvoUnY9gHb/P4GQ9v7yYbfLWRBwRVA==" + }, + "locale": { + "name": "de-DE", + "title": "Deutsch", + "flag": "🇩🇪" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/es-ES/es-ES.json b/keeweb/plugins/translations/es-ES/es-ES.json new file mode 100644 index 0000000..ebd321a --- /dev/null +++ b/keeweb/plugins/translations/es-ES/es-ES.json @@ -0,0 +1,776 @@ +{ + "retToApp": "volver a la aplicación", + "name": "nombre", + "icon": "icono", + "title": "título", + "password": "contraseña", + "user": "usuario", + "website": "sitio web", + "tags": "etiquetas", + "notes": "notas", + "entry": "entrada", + "group": "grupo", + "noTitle": "sin título", + "or": "o", + "history": "historial", + "template": "plantilla", + "templates": "Plantillas", + "notImplemented": "No implementado", + "saveChanges": "Guardar cambios", + "discardChanges": "Descartar cambios", + "advanced": "Avanzado", + "shortcuts": "Atajos", + "help": "Ayuda", + "settings": "Ajustes", + "plugins": "Complementos", + "ctrlKey": "ctrl", + "shiftKey": "mayús", + "altKey": "alt", + "error": "error", + "oneMinute": "un minuto", + "minutes": "{} minutos", + "oneHour": "una hora", + "hours": "{} horas", + "oneDay": "un día", + "days": "{} días", + "oneWeek": "una semana", + "oneMonth": "un mes", + "oneYear": "un año", + "cache": "caché", + "file": "archivo", + "device": "Dispositivo", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Todo", + "menuColors": "Colores", + "menuTrash": "Papelera", + "menuSetGeneral": "General", + "menuSetBrowser": "Navegador", + "menuSetAbout": "Acerca de", + "menuSetDevices": "Dispositivos", + "menuAlertNoTags": "Sin etiquetas", + "menuAlertNoTagsBody": "Puedes añadir nuevas etiquetas mientras editas los campos, en la sección de Etiquetas.", + "menuEmptyTrash": "Vaciar papelera", + "menuEmptyTrashAlert": "¿Vaciar papelera?", + "menuEmptyTrashAlertBody": "No podrás recuperar los elementos eliminados", + "menuItemCollapsed": "Doble clic para expandir", + "menuRestoreApp": "Abrir {}", + "menuQuitApp": "Quitar {}", + "sysMenuAboutKeeWeb": "Acerca de {}", + "sysMenuServices": "Servicios", + "sysMenuHide": "Ocultar {}", + "sysMenuHideOthers": "Ocultar otros", + "sysMenuUnhide": "Mostrar todo", + "sysMenuQuit": "Quitar {}", + "sysMenuEdit": "Editar", + "sysMenuUndo": "Deshacer", + "sysMenuRedo": "Rehacer", + "sysMenuCut": "Cortar", + "sysMenuCopy": "Copiar", + "sysMenuPaste": "Pegar", + "sysMenuSelectAll": "Seleccionar todo", + "sysMenuWindow": "Ventana", + "sysMenuMinimize": "Minimizar", + "sysMenuClose": "Cerrar ventana", + "alertYes": "Sí", + "alertNo": "No", + "alertOk": "Aceptar", + "alertCancel": "Cancelar", + "alertSignIn": "Iniciar sesión", + "alertCopy": "Copiar", + "alertClose": "Cerrar", + "alertDoNotAsk": "No volver a preguntar", + "alertAllow": "Permitir", + "alertDeny": "Denegar", + "appBeta": "ADVERTENCIA: versión beta, sólo para pruebas", + "footerOpen": "Abrir / Nueva", + "footerSyncError": "Error al sincronizar", + "footerTitleGen": "Generar", + "footerTitleLock": "Bloquear", + "genLen": "Longitud", + "genNewPass": "Nueva contraseña", + "genPresetDefault": "ajuste predeterminado", + "genPresetDerived": "como la contraseña anterior", + "genPresetPronounceable": "pronunciable", + "genPresetMed": "longitud mediana", + "genPresetLong": "larga", + "genPresetPin4": "PIN de 4 dígitos", + "genPresetMac": "dirección MAC", + "genPresetHash128": "hash de 128 bits", + "genPresetHash256": "hash de 256 bits", + "genHidePass": "Ocultar contraseña", + "genShowPass": "Mostrar contraseña", + "grpTitle": "Grupo", + "grpSearch": "Habilitar la búsqueda de entradas en este grupo", + "grpAutoType": "Activar autocompletado", + "grpAutoTypeSeq": "Secuencia de autocompletado", + "grpAutoTypeSeqDefault": "Usar secuencia de autocompletado predeterminada", + "grpTrash": "Eliminar grupo con todas las entradas", + "tagTitle": "Etiqueta", + "tagTrash": "Eliminar etiqueta de todas las entradas", + "tagRename": "Renombrar", + "tagTrashQuestion": "¿Deseas eliminar la etiqueta de todas las entradas?", + "tagTrashQuestionBody": "Esta etiqueta será eliminada de todas las entradas. No será fácil recuperarla.", + "tagExists": "La etiqueta ya existe", + "tagExistsBody": "Ya existe una etiqueta con este nombre. Por favor, selecciona otro nombre.", + "tagBadName": "Nombre no válido", + "tagBadNameBody": "El nombre de etiqueta no puede contener los caracteres {}. Por favor, elimínalos.", + "genPsTitle": "Generador de ajustes", + "genPsCreate": "Nuevo ajuste", + "genPsDelete": "Eliminar ajuste", + "genPsNew": "ajuste", + "genPsEnabled": "Mostrar en lista de ajustes", + "genPsDefault": "Seleccionado por defecto", + "genPsDefaultLength": "Longitud por defecto", + "genPsUpper": "Letras mayúsculas latinas", + "genPsLower": "Letras minúsculas latinas", + "genPsDigits": "Números", + "genPsSpecial": "Caracteres especiales", + "genPsBrackets": "Paréntesis", + "genPsHigh": "Caracteres ASCII extendidos", + "genPsAmbiguous": "Caracteres ambiguos", + "genPsInclude": "Caracteres adicionales a incluir", + "genPsExample": "Ejemplo de contraseña generada", + "genPsPattern": "Patrón", + "genPsPatternHelp": "Los patrones pueden utilizarse para especificar reglas personalizadas para seleccionar caracteres. Por ejemplo, 1-AA generará contraseñas que comiencen por un dígito, seguido de un guión y dos letras. Puedes usar estos símbolos:", + "genPsAllRanges": "Todos los símbolos", + "genPsIncluded": "Símbolos adicionales añadidos anteriormente", + "keyChangeTitleRemote": "Contraseña maestra cambiada", + "keyChangeMessageRemote": "La contraseña maestra ha cambiado para esta base de datos. Introduce la nueva contraseña", + "keyChangeTitleExpired": "Contraseña maestra caducada", + "keyChangeMessageExpired": "La contraseña maestra de esta base de datos ha caducado. Introduce una nueva contraseña", + "keyChangeRepeatPassword": "Contraseña, una vez más", + "keyEnter": "Introducir", + "keyEsc": "Esc", + "iconFavTitle": "Descargar y usar el favicon del sitio web", + "iconSelCustom": "Escoge un icono personalizado", + "listEmptyTitle": "Vacío", + "listEmptyAdd": "añadir con el botón {} superior", + "listGroup": "Grupo", + "listNoWebsite": "sin sitio web", + "listNoUser": "sin usuario", + "listNoAttachments": "sin adjuntos", + "listAddTemplateHeader": "Plantillas", + "listAddTemplateBody1": "Las plantillas permiten crear entradas con un solo clic. Añade información a la plantilla de la entrada y después haz clic sobre {} de nuevo para usar esta plantilla.", + "listAddTemplateBody2": "Podrás encontrar tus plantillas en el grupo {}.", + "searchAddNew": "Añadir nueva", + "searchSort": "Ordenar", + "searchCreated": "Creada", + "searchUpdated": "Actualizada", + "searchAttachments": "Adjuntos", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Antiguo {} Nuevo", + "searchNO": "Nuevo {} Antiguo", + "searchShiftClickOr": "mayús-clic o", + "searchAdvTitle": "Mostrar búsqueda avanzada", + "searchSearchIn": "Buscar en", + "searchOther": "Otros campos", + "searchProtect": "Campos seguros", + "searchOptions": "Opciones", + "searchCase": "Coincidir mayúsculas", + "searchRegex": "Expresión regular", + "searchRank": "Auto", + "searchExact": "Exacto", + "openOpen": "Abrir", + "openNew": "Nueva", + "openNewFile": "Nuevo", + "openMore": "Más", + "openDemo": "Demo", + "openGenerate": "Generar", + "openXml": "Importar XML", + "openCaps": "Bloquear mayúsculas activo", + "openClickToOpen": "Clic para abrir un archivo", + "openKeyFile": "archivo llave", + "openKeyFileDropbox": "(desde Dropbox)", + "openDropHere": "Suelta aquí los archivos", + "openFailedRead": "Fallo al leer el archivo", + "openNothingFound": "No se encontró nada", + "openNothingFoundBody": "No se han encontrado archivos compatibles.", + "openSelectFile": "Selecciona un archivo", + "openSelectFileBody": "Selecciona el archivo que quieres abrir", + "openPassFor": "Contraseña para", + "openRemoveLastQuestion": "¿Eliminar archivo local?", + "openRemoveLastQuestionBody": "El archivo que deseas eliminar sólo se encuentra almacenado dentro de la aplicación. ¿Deseas eliminarlo definitivamente?", + "openRemoveLastQuestionModBody": "El archivo que deseas eliminar contiene modificaciones locales. ¿Seguro que deseas eliminarlo y descartar los cambios?", + "openLocalFile": "Archivo local", + "openLocalFileBody": "Estás a punto de abrir un archivo que será almacenado dentro de la aplicación. Los cambios no se guardarán en el sistema de archivos. Para recuperar el archivo con tus datos, expórtalo desde los ajustes.", + "openLocalFileDontShow": "No mostrar otra vez", + "openWrongFile": "Archivo dañado", + "openWrongFileBody": "Este formato de archivo no está soportado. Esta aplicación funciona con formatos de base de datos de KeePass (kdbx).", + "openKdbFileBody": "Estás abriendo un formato de archivo antiguo (KDB). Esta aplicación sólo soporta el nuevo formado (kdbx), por favor, usa KeePass v2 para convertir entre un formato y otro.", + "openConfigHeader": "Ajustes de {}", + "openUrl": "URL", + "openUrlDesc": "https://servidor/ruta/archivo.kbdx, o solo archivo.kbdx", + "openUser": "Usuario", + "openUserDesc": "Usuario de servidor WebDAV (si fuera necesario)", + "openUserPlaceholder": "sin usuario", + "openPass": "Contraseña", + "openPassDesc": "Contraseña de servidor WebDAV (no es la contraseña de tu archivo)", + "openPassPlaceholder": "sin contraseña", + "openConfigError": "Error: {}", + "openConfigErrorNotFound": "Archivo no encontrado", + "openError": "Error", + "openErrorDescription": "Ha ocurrido un error al abrir el archivo", + "openErrorDescriptionMaybeTouchIdChanged": "Este error se parece a lo que suele suceder cuando se cambia la configuración de Touch ID, por ejemplo, cuando has añadido o quitado una huella dactilar adicional. Si este fuera el caso, ve a Opciones, desactiva Touch ID y vuelve a activarlo.", + "openErrorFileNotFound": "Archivo no encontrado", + "openListErrorBody": "Se ha producido un error al cargar la lista de archivos", + "openShowAllFiles": "Mostrar todos los archivos", + "openFileNoCacheError": "Archivo no encontrado en el almacenamiento caché. Esto puede suceder por haber limpiado la caché del navegador. Para abrir el fichero, elimínalo de KeeWeb y añádelo de nuevo.", + "openChalRespHeader": "Reto-Respuesta", + "openChalRespLoading": "Cargando la lista de YubiKeys", + "openChalRespSelectYubiKey": "Selecciona la YubiKey que deseas usar", + "openChalRespErrorEmpty": "No se han encontrado YubiKeys.", + "openChalRespErrorEmptyMac": "¿Es la primera vez que usas esta función en macOS? Debes añadir KeeWeb al apartado de «Monitorización de entrada» en los ajustes de seguridad de macOS.", + "detAttDownload": "Presiona mayús-clic sobre el botón para descargarlo o", + "detAttDelToRemove": "Borrar para eliminar", + "detAttSave": "Guardar como ...", + "detEmpty": "Tus contraseñas se mostrarán aquí", + "detGroupRestore": "Para restaurar este grupo, por favor arrástralo a cualquier grupo fuera de la papelera", + "detHistoryClickPoint": "Haz clic sobre un punto de la línea temporal del historial para ver el estado", + "detHistoryReturn": "volver a entrada", + "detHistoryRevert": "Revertir a estado", + "detHistoryDel": "Eliminar estado", + "detHistoryEmpty": "vacío", + "detHistoryModified": "modificado", + "detHistoryRec": "registro", + "detHistoryRecs": "registros", + "detHistoryVersion": "Versión", + "detHistorySaved": "Guardado", + "detHistoryNoTitle": "sin título", + "detHistoryCurState": "estado actual", + "detHistoryCurUnsavedState": "actualmente sin guardar", + "detHistoryRevertAlert": "¿Revertir a este estado del historial?", + "detHistoryRevertAlertBody": "Tu estado actual será guardado en el historial.", + "detHistoryDeleteAlert": "¿Eliminar este estado del historial?", + "detHistoryDeleteAlertBody": "No podrás recuperarlo.", + "detHistoryDiscardChangesAlert": "¿Descartar los cambios realizados en la entrada?", + "detHistoryDiscardChangesAlertBody": "Se perderán los cambios no guardados, no habrá forma de recuperarlos.", + "detBackToList": "volver a lista", + "detSetIconColor": "Cambiar color", + "detSetIcon": "Cambiar icono", + "detDropAttachments": "soltar adjuntos aquí", + "detDelEntry": "Eliminar", + "detDelEntryPerm": "Eliminar permanentemente", + "detExpires": "Expira", + "detExpired": "expiró", + "detGroup": "Grupo", + "detCreated": "Creado", + "detUpdated": "Actualizado", + "detNetField": "Nuevo Campo", + "detAttachments": "Adjuntos", + "detDelFromTrash": "¿Eliminar de la papelera?", + "detDelFromTrashBody": "No podrás volver a recuperarlo.", + "detDelFromTrashBodyHint": "Para eliminar rápidamente el contenido de la papelera, haz clic sobre el icono «Vaciar» en el menú Papelera.", + "detDelToTrash": "¿Eliminar la entrada?", + "detDelToTrashBody": "La entrada se moverá a la papelera.", + "detFieldCopied": "Copiado", + "detFieldCopiedTime": "Copiado por {} segundos", + "detCopyHint": "Puedes copiar el valor del campo haciendo clic sobre su título", + "detMore": "más", + "detClickToAddField": "haz clic para añadir un nuevo campo", + "detMenuAddNewField": "Añadir un nuevo campo", + "detMenuAddNewWebsite": "Añadir otro sitio web", + "detMenuShowEmpty": "Mostrar campos vacíos", + "detMenuHideEmpty": "Ocultar campos vacíos", + "detMenuAddField": "Añadir {}", + "detMenuCopyPassword": "Copiar contraseña", + "detMenuCopyUser": "Copiar usuario", + "detMenuCopyOtp": "Copiar código de un solo uso", + "detSetupOtp": "Códigos de un solo uso", + "detClone": "Hacer una copia", + "detCopyEntryToClipboard": "Copiar todos los campos", + "detClonedName": "Copiar", + "detAutoType": "Autocompletado", + "detAutoTypeSettings": "Ajustes de autocompletado", + "detAutoTypeEnabled": "Activar autocompletado para esta entrada", + "detAutoTypeSequence": "Pulsaciones", + "detAutoTypeInput": "Entrada", + "detAutoTypeShortcutsDesc": "{} o {} mientras esta aplicación está inactiva", + "detAutoTypeObfuscation": "Mezclar pulsaciones reales y aleatorias", + "detAutoTypeWindow": "Ventana", + "detAutoTypeInputWindow": "Título de ventana", + "detSetupOtpAlert": "Escanear código QR", + "detSetupOtpAlertBody": "Por favor, copia el código QR que se muestra en la página de autorización.", + "detSetupOtpAlertBody1": "1. dirígete a la página de autorización", + "detSetupOtpAlertBody2": "2. haz un pantallazo del código QR con {}", + "detSetupOtpAlertBody3": "3. pégalo aquí con {}", + "detSetupOtpAlertBody3Mobile": "3. selecciónalo o escanéalo con tu cámara usando el botón «Seleccionar/Escanear»", + "detSetupOtpAlertBody4": "Si no puedes escanearlo, haz clic en «Introducir código manualmente»", + "detSetupOtpManualButton": "Introducir código manualmente", + "detSetupOtpScanButton": "Seleccionar/Escanear", + "detSetupOtpAlertBodyWith": "con {}", + "detOtpImageError": "Error al leer imagen", + "detOtpImageErrorBody": "Perdón, no pudimos leer el formato de imagen, por favor, contacta con los autores de la aplicación y remíteles los detalles del error.", + "detOtpImageReading": "Leyendo código QR...", + "detOtpQrError": "Error al escanear código QR", + "detOtpQrErrorBody": "Perdón, no pudimos leer el código QR, por favor, vuelve a intentarlo o contacta a los autores de la aplicación y remíteles los detalles del error.", + "detOtpQrWrong": "Código QR erróneo", + "detOtpQrWrongBody": "Se ha escaneado tu código QR pero no contiene información de códigos de un solo uso.", + "detOtpField": "Código de un solo uso", + "detOtpClickToTouch": "Clic para generar", + "detOtpGenerating": "Generando...", + "detOtpTouch": "Toca tu {}", + "detLockField": "Bloquea este campo para que su contenido no sea visible ni localizable con una búsqueda. Para mostrar el contenido de este campo tendrás que hacer clic sobre él.", + "detUnlockField": "Desbloquea este campo para hacer su contenido visible y localizable con una búsqueda.", + "detRevealField": "Revelar", + "detHideField": "Ocultar", + "detAutoTypeField": "Autocompletado", + "detIssuesHideTooltip": "Ocultar esta advertencia", + "detIssueWeakPassword": "La contraseña es débil, se recomienda cambiarla.", + "detIssuePoorPassword": "La contraseña es muy débil, se recomienda encarecidamente cambiarla.", + "detIssuePwnedPassword": "La contraseña ha sido expuesta en una filtración de datos de acuerdo a {}, se recomienda cambiarla.", + "detIssuePasswordCheckError": "Ha sucedido un error al comprobar en línea la fortaleza de la contraseña.", + "detIssueOldPassword": "La contraseña es antigua.", + "detIssueCloseAlertHeader": "Ocultar problemas en las contraseñas", + "detIssueCloseAlertBody": "Hay diferentes formas de ocultar esta advertencia:", + "detIssueCloseAlertEntry": "No mostrar para esta entrada", + "detIssueCloseAlertSettings": "Ajustar opciones generales", + "autoTypeEntryFields": "Campos de entrada", + "autoTypeModifiers": "Teclas modificadoras", + "autoTypeKeys": "Teclas", + "autoTypeLink": "más...", + "autoTypeError": "Error en autocompletado", + "autoTypeErrorGeneric": "Se ha producido un fallo al realizar el autocompletado: {}", + "autoTypeErrorAccessibilityMacOS": "Intentamos mandar pulsaciones de tecla a la aplicación, pero no parece funcionar. Esto puede suceder porque faltan permisos, haz clic aquí para leer más acerca de ello:", + "autoTypeErrorGlobal": "Por favor, abre la aplicación en la que quieres introducir tu contraseña para utilizar un atajo de teclado global", + "autoTypeErrorNotInstalled": "{} no está instalado", + "autoTypeHeader": "Autocompletado: Seleccionar", + "autoTypeMsgNoWindow": "No hemos podido obtener el título de la ventana activa, tecléalo o búscalo", + "autoTypeMsgMatchedByWindow": "Seleccionar una contraseña para {}", + "autoTypeNoMatches": "sin coincidencias", + "autoTypeSelectionHint": "Escribe la secuencia de autocompletado", + "autoTypeSelectionHintAction": "Introduce solo la contraseña", + "autoTypeSelectionHintOpt": "Introduce solo el usuario", + "autoTypeSelectionHintShift": "Otros campos", + "autoTypeSelectionOtp": "Código de un solo uso", + "autoTypeUnlockMessage": "Desbloquear para autocompletado", + "appSecWarn": "¡No es seguro!", + "appSecWarnBody1": "Has cargado esta aplicación mediante una conexión insegura. Alguien podría estar observando tu tráfico y robando tus contraseñas. Te aconsejamos no continuar, a no ser que comprendas perfectamente lo que estás haciendo.", + "appSecWarnBody2": "Sí, tu base de datos está cifrada, pero nadie te puede garantizar que la aplicación no haya sido modificada antes de llegar a ti.", + "appSecWarnBtn": "Comprendo los riesgos, continuar", + "appUnsavedWarn": "¡Cambios sin guardar!", + "appUnsavedWarnBody": "Tienes archivos sin guardar, si cierras la aplicación, se perderán los cambios.", + "appDontExitBtn": "No salir", + "appCannotLockAutoInit": "Esta aplicación no se puede bloquear porque el autoguardado está desactivado.", + "appCannotLock": "Tienes cambios sin guardar que se perderán. ¿Continuar?", + "appAutoSave": "Guardar cambios automáticamente", + "appSaveError": "Error de guardado", + "appSaveErrorBody": "Fallo al guardar automáticamente el archivo", + "appSaveErrorBodyMul": "Fallo al guardar automáticamente los archivos:", + "appSaveErrorExitLoseChanges": "Salir y perder todos los cambios", + "appSaveErrorExitLoseChangesBody": "Puedes salir y perder todos los cambios o ir a las opciones del archivo para exportar los datos", + "appSettingsError": "Error al cargar la aplicación", + "appSettingsErrorBody": "Se ha producido un error al cargar los ajustes de la aplicación. Por favor, vuelve a comprobar la URL o contacta con tu administrador.", + "appNotSupportedError": "Tu navegador no soporta algunas de las características requeridas por esta aplicación.", + "appTabWarn": "Demasiadas pestañas", + "appTabWarnBody": "KeeWeb no se puede utilizar en dos pestañas a la vez, por favor, cierra esta pestaña.", + "appRightsAlert": "Bloqueando la aplicación KeeWeb", + "appRightsAlertBody1": "Tu aplicación KeeWeb no está protegida todavía contra cambios no autorizados. Te solicitamos modificar el permiso de escritura solo para administradores.", + "appRightsAlertBody2": "¿No quieres dar permisos? Puedes hacerlo tú mismo en Terminal", + "appBrowserAuthComplete": "Se ha completado la autenticación, puedes cerrar esta pestaña.", + "setGenTitle": "Ajustes generales", + "setGenUpdate": "Actualizar", + "setGenNewVersion": "Nueva versión de la aplicación publicada y descargada", + "setGenReleaseNotes": "Ver notas de versión", + "setGenReloadToUpdate": "Recarga para actualizar", + "setGenUpdateManual": "Hay una nueva versión disponible. Se comprobará si hay actualizaciones y se instalarán automáticamente, pero no se puede actualizar automáticamente desde tu versión.", + "setGenDownloadUpdate": "Descargar actualización", + "setGenUpdateAuto": "Descargar e instalar automáticamente", + "setGenUpdateCheck": "Comprobar pero no descargar", + "setGenNoUpdate": "No comprobar actualizaciones", + "setGenUpdateChecking": "Buscando actualizaciones", + "setGenCheckUpdate": "Buscar actualizaciones", + "setGenErrorChecking": "Error al buscar actualizaciones", + "setGenLastCheckSuccess": "Última búsqueda satisfactoria en {}", + "setGenLastCheckVer": "la última versión era {}", + "setGenCheckedAt": "Comprobado el", + "setGenLatestVer": "estás usando la última versión", + "setGenNewVer": "nueva versión {} disponible", + "setGenDownloadingUpdate": "Descargando actualización...", + "setGenExtractingUpdate": "Extrayendo actualización...", + "setGenCheckErr": "Se ha producido un error al descargar la nueva versión", + "setGenNeverChecked": "Nunca se han comprobado actualizaciones ", + "setGenRestartToUpdate": "Reinicia KeeWeb para actualizar", + "setGenDownloadAndRestart": "Descargar actualización y reiniciar", + "setGenAppearance": "Apariencia", + "setGenTheme": "Tema", + "setGenThemeDefault": "Por defecto", + "setGenThemeDark": "Oscuro", + "setGenThemeLight": "Claro", + "setGenThemeBlue": "Azul plano", + "setGenThemeFb": "Azul oscuro", + "setGenThemeBl": "Azul claro", + "setGenThemeBrown": "Color bizcocho", + "setGenThemeDb": "Marrón oscuro", + "setGenThemeLb": "Marrón claro", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Terminal claro", + "setGenThemeHighContrast": "Alto contraste", + "setGenThemeHc": "Alto contraste", + "setGenThemeDc": "Contraste oscuro", + "setGenThemeSol": "Solarizado", + "setGenThemeSd": "Solarizado oscuro", + "setGenThemeSl": "Solarizado claro", + "setGenMoreThemes": "Más temas", + "setGenAutoSwitchTheme": "Cambiar automáticamente entre los temas claro y oscuro cuando sea posible", + "setGenLocale": "Idioma", + "setGenLocOther": "otros idiomas están disponibles como complementos", + "setGenFontSize": "Tamaño de letra", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Grande", + "setGenFontSizeLargest": "Muy grande", + "setGenTitlebarStyle": "Apariencia de ventana (requiere reinicio)", + "setGenTitlebarStyleDefault": "Por defecto", + "setGenTitlebarStyleHidden": "Título personalizado", + "setGenTitlebarStyleHiddenInset": "Título personalizado, ventana arrastrable", + "setGenShowSubgroups": "Mostrar entradas de todos los subgrupos", + "setGenTableView": "Mostrar lista de entradas en un panel horizontal", + "setGenColorfulIcons": "Iconos personalizados en la lista", + "setGenUseMarkdown": "Markdown en notas", + "setGenUseGroupIconForEntries": "Usar automáticamente el icono de grupo para entradas nuevas", + "setGenDirectAutotype": "Si solo se encuentra una única entrada, se seleccionará automáticamente para el autocompletado.", + "setGenFunction": "Función", + "setGenAutoSyncOnClose": "Guardar y sincronizar automáticamente al cerrar", + "setGenAutoSyncTimer": "Guardar y sincronizar periódicamente de forma automática", + "setGenAutoSyncTimerOff": "Deshabilitado", + "setGenAutoSyncTimerInterval": "Cada {} minuto(s)", + "setGenRememberKeyFiles": "Recordar archivos llave", + "setGenNoRememberKeyFiles": "No recordar", + "setGenRememberKeyFilesData": "Guardar en el almacenamiento interno", + "setGenRememberKeyFilesPath": "Recordar solo la ruta de archivos llave", + "setGenLockInactive": "Si la aplicación está inactiva", + "setGenNoAutoLock": "No bloquear automáticamente", + "setGenLockMinutes": "En {} minutos", + "setGenLockHour": "En una hora", + "setGenLockHours": "En {} horas", + "setGenLockDay": "En un día", + "setGenClearClip": "Limpiar portapapeles tras copia", + "setGenNoClear": "No limpiar", + "setGenClearSeconds": "En {} segundos", + "setGenClearMinute": "En un minuto", + "setGenMinInstead": "Minimizar la aplicación en vez de cerrarla", + "setGenMinOnFieldCopy": "Minimizar al copiar campo", + "setGenLock": "Bloqueo automático", + "setGenLockMinimize": "Cuando la aplicación está minimizada", + "setGenLockCopy": "Al copiar contraseña", + "setGenLockAutoType": "En autocompletado", + "setGenLockOrSleep": "Cuando el ordenador esté bloqueado o suspendido", + "setGenStorage": "Almacenamiento", + "setGenDisableOfflineStorage": "No cachear los ficheros cargados en el almacenamiento offline", + "setGenShortLivedStorageToken": "Usar sesiones de duración limitada en proveedores de almacenamiento en la nube", + "setGenStorageLogout": "Cerrar sesión", + "setGenShowAdvanced": "Mostrar ajustes avanzados", + "setGenDevTools": "Mostrar herramientas de desarrollador", + "setGenTryBeta": "Probar versión beta hasta reiniciar", + "setGenTryBetaWarning": "Archivos sin guardar", + "setGenTryBetaWarningBody": "Por favor, guarda todos los archivos y vuelve a hacer clic sobre este botón", + "setGenShowAppLogs": "Mostrar registros de la aplicación", + "setGenReloadApp": "Recargar la aplicación", + "setGenFieldLabelDblClickAutoType": "Autocompletar al hacer doble clic sobre las etiquetas de los campos", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "No usar Touch ID", + "setGenTouchIdMemory": "Desbloquear con Touch ID mientras KeeWeb está en ejecución", + "setGenTouchIdFile": "Usar siempre Touch ID con la contraseña maestra", + "setGenTouchIdPass": "Requerir contraseña maestra después de", + "setGenAudit": "Auditar", + "setGenAuditPasswords": "Mostrar advertencias sobre la fortaleza de las contraseñas", + "setGenAuditPasswordEntropy": "Comprobar longitud y aleatoriedad de las contraseñas", + "setGenExcludePinsFromAudit": "Nunca comprobar códigos PIN numéricos, como 123456", + "setGenCheckPasswordsOnHIBP": "Comprobar contraseñas usando el servicio en línea {}", + "setGenHelpHIBP": "KeeWeb puede comprobar si tus contraseñas han sido previamente expuestas en una filtración de datos usando un servicio en línea. Tu contraseña no se podrá recuperar a partir la información mandada a través de la red, sin embargo, el número de contraseñas comprobadas de esta forma sí que podría verse expuesto. Puedes encontrar más información acerca de la privacidad de tus datos usando este servicio {}. Si está opción está activada, KeeWeb comprobará automáticamente tus contraseñas en este apartado.", + "setGenHelpHIBPLink": "aquí", + "setGenAuditPasswordAge": "Contraseñas antiguas", + "setGenAuditPasswordAgeOff": "No mostrar advertencias sobre contraseñas antiguas", + "setGenAuditPasswordAgeOneYear": "Mostrar advertencias para contraseñas más antiguas que un año", + "setGenAuditPasswordAgeYears": "Mostrar advertencias para contraseñas más antiguas que {} años", + "setFilePath": "Ruta de archivo", + "setFileStorage": "Este archivo se ha cargado desde {}.", + "setFileIntl": "Este archivo está almacenado dentro de la aplicación.", + "setFileLocalHint": "¿Quieres trabajar sin problemas con archivos locales?", + "setFileDownloadApp": "Descarga la versión de escritorio", + "setFileSave": "Guardar", + "setFileSaveTo": "Guardar como ...", + "setFileClose": "Cerrar", + "setFileSync": "Sincronizar", + "setFileSyncVerb": "Sincronizar", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Última sincronización", + "setFileLastSyncUnknown": "desconocido", + "setFileSyncInProgress": "sincronización en progreso", + "setFileSyncError": "Error al sincronizar", + "setFilePass": "Contraseña maestra", + "setFileConfirmPass": "Confirmar contraseña maestra", + "setFilePassChange": "para cambiar tu contraseña, por favor escríbela en el campo de confirmación", + "setFilePassChanged": "la contraseña ha cambiado; deja el campo en blanco para usar la contraseña anterior", + "setFilePassNotMatch": "las contraseñas no coinciden, por favor, escríbela de nuevo", + "setFileKeyFile": "Archivo llave", + "setFileSelKeyFile": "Selecciona un archivo llave", + "setFileNames": "Nombres", + "setFileDefUser": "Usuario por defecto", + "setFileEnableTrash": "Activar papelera", + "setFileHistMode": "Historial de entradas", + "setFileHistLimited": "Eliminar registros antiguos del historial automáticamente", + "setFileHistDisabled": "No guardar historial", + "setFileHistUnlimited": "Mantener siempre registros del historial", + "setFileHistLen": "Longitud de historial, guarda los últimos registros por entrada", + "setFileHistSize": "Tamaño de historial, MB totales por archivo", + "setFileBackups": "Copias de respaldo", + "setFileBackupEnable": "Respaldar este archivo", + "setFileBackupPath": "Ruta de copias de respaldo", + "setFileBackupTime": "Crear copias de respaldo", + "setFileBackupNow": "Respaldar ahora", + "setFileBackupNowWorking": "Trabajando...", + "setFileBackupError": "Error al respaldar", + "setFileBackupErrorDescription": "Error al guardar la copia de respaldo", + "setFileBackupErrorIsDir": "Ruta de copia de respaldo inválida", + "setFileBackupErrorIsDirDescription": "La ruta de la copia de respaldo parece apuntar a una carpeta. Por favor, cambia la ruta a un nombre de archivo dentro de una carpeta.", + "setFileBackupOnSave": "Cada vez que guardo el archivo", + "setFileBackupDaily": "Diario", + "setFileBackupWeekly": "Semanal", + "setFileBackupMonthly": "Mensual", + "setFileBackupManually": "Manualmente, sin respaldo automático", + "setFileRounds": "Rondas de cifrado de clave", + "setFileKdfParams": "Función de derivación de clave", + "setFileKdfParamsIter": "Iteraciones", + "setFileKdfParamsMem": "Memoria, KB", + "setFileKdfParamsPar": "Paralelismo", + "setFileKeyChangeForce": "Solicitar cambio de clave tras (días)", + "setFileUseKeyFile": "Usar archivo llave", + "setFileUseGenKeyFile": "Usar el archivo de llave generado", + "setFileUseOldKeyFile": "Usar el antiguo archivo llave", + "setFileGenKeyFile": "Generar un nuevo archivo llave", + "setFileDontUseKeyFile": "No usar un archivo llave", + "setFileEmptyPass": "Contraseña vacía", + "setFileEmptyPassBody": "Guardar una base de datos sin contraseña hace que esté totalmente desprotegida. ¿Seguro que deseas continuar?", + "setFileSaveError": "Error de guardado", + "setFileSaveErrorBody": "Error al guardar en archivo", + "setFileAlreadyExists": "Ya existe", + "setFileAlreadyExistsBody": "El archivo {} ya existe. ¿Reemplazar?", + "setFileUnsaved": "Cambios sin guardar", + "setFileUnsavedBody": "Hay cambios sin guardar en este archivo", + "setFileCloseNoSave": "Cerrar y perder cambios", + "setFileDontClose": "No cerrar", + "setFileFormatVersion": "Formato de archivo", + "setFileExportRaw": "Exportando tus contraseñas", + "setFileExportRawBody": "El archivo exportado contendrá contraseñas sin cifrado de ningún tipo. ¿Seguro que deseas continuar?", + "setFileDeviceIntro": "Los códigos de un solo uso de este {} se mostrarán en la aplicación.", + "setFileDeviceSettings": "Ajustes", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "No usar YubiKey", + "setFileRefreshYubiKeyList": "Recargar la lista", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Usar una YubiKey como parte de la contraseña maestra es peligroso y podrías perder el acceso a tus contraseñas si algo sale mal. ¿Has realizado una copia de seguridad de tu fichero antes de aplicar este cambio?", + "setFileYubiKeyErrorEmptyMac": "Parece que hay otra YubiKey conectada, pero no es visible. Debes añadir KeeWeb al apartado de «Monitorización de entrada» de los ajustes de seguridad de macOS para acceder a las YubiKeys.", + "setShTitle": "Atajos", + "setShShowAll": "ver todos los elementos", + "setShColors": "ver elementos con colores", + "setShTrash": "ir a Papelera", + "setShFind": "busca o comienza a teclear", + "setShClearSearch": "limpiar búsqueda", + "setShCopyPass": "copiar contraseña o campo seleccionado", + "setShCopyUser": "copiar usuario", + "setShCopyUrl": "copiar sitio web", + "setShAutoType": "autocompletar entrada seleccionada", + "setShPrev": "volver al elemento anterior", + "setShNext": "ir al siguiente elemento", + "setShCreateEntry": "crear entrada", + "setShOpen": "abrir / nuevo", + "setShSave": "guardar todos los archivos", + "setShGen": "generar contraseña", + "setShSet": "ajustes de aplicación", + "setShCopyPassGlobal": "copiar contraseña", + "setShCopyOtp": "copiar OTP", + "setShAutoTypeGlobal": "autocompletado", + "setShCopyPassOnly": "copiar contraseña", + "setShRestoreApp": "abrir {}", + "setShGlobal": "Estos atajos de teclado funcionan cuando la aplicación está en segundo plano. Puedes hacer clic en ellos para modificarlos.", + "setShLock": "bloquear base de datos", + "setShEdit": "Selecciona una nueva combinación de teclas para usarla como atajo de teclado", + "setPlInstallTitle": "Instalar nuevos complementos", + "setPlInstallDesc": "Los complementos incorporan funcionalidades, temas e idiomas a KeeWeb. Los complementos se ejecutan con los mismos privilegios que KeeWeb y pueden tener acceso o modificar tus contraseñas. Nunca instales complementos en los que no confíes.", + "setPlInstallLabel": "URL del complemento", + "setPlInstallBtn": "Instalar", + "setPlInstallBtnProgress": "Instalando", + "setPlUninstallBtn": "Desinstalar", + "setPlDisableBtn": "Deshabilitar", + "setPlEnableBtn": "Habilitar", + "setPlUpdateBtn": "Actualizar", + "setPlLocaleBtn": "Cambiar a este idioma", + "setPlThemeBtn": "Cambiar a este tema", + "setPlJs": "código", + "setPlCss": "estilos", + "setPlLoc": "idioma", + "setPlCreatedBy": "Creado por {}", + "setPlLoadTime": "ha tardado {} en cargar", + "setPlLastUpdate": "Última vez comprobado", + "setPlLoadError": "error al cargar complemento", + "setPlGalleryLoading": "Cargando complementos, por favor, espera un momento", + "setPlGalleryLoadError": "Error al cargar complementos", + "setPlInstallUrlTitle": "Añadir complemento desde URL", + "setPlInstallUrlDesc": "Si el complemento no está en la galería, puedes instalarlo manualmente desde una URL", + "setPlOfficial": "Complemento Oficial de KeeWeb", + "setPlSearch": "Buscar complementos", + "setPlDevelop": "¿Quieres desarrollar tus propios complementos?", + "setPlDevelopStart": "Empieza aquí", + "setPlTranslate": "También puedes {}", + "setPlTranslateLink": "traducir la aplicación a tu idioma", + "setPlAutoUpdate": "Actualizar automáticamente", + "setPlLoadGallery": "Cargar galería de complementos", + "setBrowserTitle": "Navegador", + "setBrowserIntroDesktop": "KeeWeb puede introducir contraseñas usando el autocompletado, sin embargo, una extensión del navegador puede ser una forma más conveniente de hacerlo. KeeWeb admite dos extensiones de navegador:", + "setBrowserIntroKeeWebConnect": "la extensión oficial de KeeWeb, está hecha con características de KeeWeb en mente, pero podrías perderte algunas de las capacidades avanzadas que se pueden encontrar en la otra extensión.", + "setBrowserIntroKeePassXcBrowser": "esta extensión fue desarrollada para KeePassXC, ha estado en el mercado por un tiempo y es bastante sólida. Esta extensión no es parte de KeeWeb y podría haber problemas de compatibilidad.", + "setBrowserIntroWeb": "Instala nuestra extensión de navegador para autocompletar contraseñas en diferentes páginas web. Esta extensión para el navegador se conectará a una pestaña de KeeWeb en tu navegador para obtener las contraseñas. Haz clic aquí para descargar la extensión:", + "setBrowserNotEnabled": "La integración con el navegador no está activada, las extensiones no podrán conectarse a KeeWeb. Usa las casillas de verificación inferiores para activarla:", + "setBrowserEnablePerBrowser": "Activar la integración con el navegador utilizando las casillas de verificación inferiores:", + "setBrowserFocusIfLocked": "Abrir KeeWeb si una extensión del navegador intenta conectarse mientras no hay un archivo abierto", + "setBrowserFocusIfEmpty": "Mostrar la pantalla de selección de entrada si no se encuentra coincidiencia por URL", + "setBrowserOtherBrowsers": "Otros navegadores", + "setBrowserExtensionFor": "para {}", + "setBrowserExtensionNotSupported": "No soportado", + "setBrowserExtensionHelp": "¿Cómo instalar?", + "setBrowserExtensionInstall": "Instalar la extensión", + "setBrowserExtensionKPXCWarnHeader": "{} dejará de funcionar", + "setBrowserExtensionKPXCWarnBody1": "Desafortunadamente no es posible conectar una extensión a varias aplicaciones. Si conectas la extensión a KeeWeb, intentaremos sobreescribir la asociación de aplicación, lo cual significa que la integración con {} dejará de funcionar. Incluso si desmarcas esta casilla de verificación, no se restaurará la asociación con {}. Para hacer que vuelva a funcionar, configura la integración con el navegador en los ajustes de {}.", + "setBrowserExtensionKPXCWarnBody2": "¿Configurar la extensión para usar KeeWeb?", + "setBrowserSessions": "Sesiones", + "setBrowserSessionsEmpty": "No hay sesiones conectadas.", + "setBrowserSessionsIntro": "Estas extensiones están conectadas con KeeWeb.", + "setBrowserSessionsActiveTooltip": "Sesión activa", + "setBrowserSessionsActiveText": "Está sesión está activada. Puede intercambiar información con KeeWeb basándose en los siguientes permisos:", + "setBrowserSessionsInactiveTooltip": "Sesión inactiva", + "setBrowserSessionsInactiveText": "Esta sesion está desactivada. Esta extensión está conectada a KeeWeb, sin embargo, no ha intentado intercambiar información. Cuando la extensión haga una solicitud, podrás escoger qué quieres compartir.", + "setBrowserSessionsDeniedTooltip": "Acceso denegado", + "setBrowserSessionsDeniedText": "Está sesión está desactivada. Esta extensión está conectada a KeeWeb, sin embargo, has denegado el acceso a la información.", + "setBrowserSessionsConnectedDate": "Conectado", + "setBrowserSessionsTerminate": "Terminar esta sesión", + "setBrowserSessionsAccessToFiles": "Permitir acceso a archivos", + "setBrowserSessionsNoFileAccess": "Esta extensión no tiene acceso a ningún archivo, no podrá obtener contraseñas de KeeWeb.", + "setBrowserSessionsPasswordsRead": "Contraseñas leídas", + "setBrowserSessionsPasswordsWritten": "Contraseñas guardadas", + "setDevicesTitle": "Dispositivos", + "setDevicesEnableUsb": "Habilitar interacción con dispositivos USB", + "setDevicesYubiKeyIntro": "Se recomienda leer {} antes de usar una YubiKey.", + "setDevicesYubiKeyIntroLink": "este documento", + "setDevicesYubiKeyToolsDesc": "Para poder usar la YubiKey en este modo, necesitas instalar una herramienta llamada {}.", + "setDevicesYubiKeyToolsDesc2": "{} para obtener más información de esta herramienta.", + "setDevicesYubiKeyToolsDescLink": "Haz clic aquí", + "setDevicesYubiKeyToolsStatusChecking": "Comprobando si {} está instalado", + "setDevicesYubiKeyToolsStatusOk": "{} está instalado", + "setDevicesYubiKeyToolsStatusError": "{} no está instalado o no funciona", + "setDevicesYubiKeyOtpTitle": "Códigos de un solo uso", + "setDevicesYubiKeyOtpDesc": "YubiKey puede usarse para generar códigos de un solo uso para distintos servicios.", + "setDevicesYubiKeyOtpShowIcon": "Mostrar icono en la pantalla de inicio", + "setDevicesYubiKeyOtpAutoOpen": "Cargar automáticamente los códigos de un solo uso cuando haya archivos abiertos", + "setDevicesYubiKeyOtpMatchEntries": "Mostrar códigos de un solo uso coincidentes en las entradas", + "setDevicesYubiKeyChalRespTitle": "Reto-Respuesta", + "setDevicesYubiKeyChalRespDesc": "También se puede usar una YubiKey en modo reto-respuesta para que el fragmento de la clave privada usado para cifrar los archivos resida en la YubiKey.", + "setDevicesYubiKeyChalRespShow": "Mostrar la opción para usar una YubiKey al cargar los archivos", + "setDevicesYubiKeyStuckWorkaround": "Volver a conectar la YubiKey si parece haberse quedado bloqueada en el proceso de carga", + "setDevicesYubiKeyRememberChalResp": "Recordar el reto-respuesta mientras la aplicación esté abierta", + "setAboutTitle": "Acerca de", + "setAboutBuilt": "Esta aplicación está hecha con estas magníficas utilidades", + "setAboutLic": "Licencia", + "setAboutLicComment": "La aplicación en sí y todos los complementos incluidos están autorizados bajo la licencia del MIT, a menos que se especifique lo contrario", + "setAboutFirst": "Esta es una aplicación open-source creada por {}", + "setAboutSecond": "y licenciada bajo {}.", + "setAboutSource": "El código fuente e incidencias están en {}.", + "setHelpFormat": "Formato de archivo", + "setHelpFormatBody": "Esto es una adaptación de la aplicación {} creada con tecnologías web. Puede leer archivos en formato KeePass (kdbx). Puedes crear esos archivos (bases de datos de contraseñas) tanto en KeePass como en esta aplicación. El formato de archivos es 100% compatible y debería ser legible en ambas aplicaciones.", + "setHelpProblems": "¿Necesitas ayuda?", + "setHelpProblems1": "Si algo va mal, por favor {}", + "setHelpProblems2": "o {}", + "setHelpOpenIssue": "abre una incidencia en GitHub", + "setHelpContactLink": "contacta al desarrollador directamente", + "setHelpAppInfo": "Información de aplicación", + "setHelpOtherPlatforms": "Otras plataformas", + "setHelpDesktopApps": "Aplicaciones para escritorio", + "setHelpWebApp": "Aplicación web", + "setHelpUpdates": "Actualizaciones", + "setHelpTwitter": "Twitter", + "dropboxSetupDesc": "Se necesitan ciertos datos de configuración para usar Dropbox en una aplicación auto-alojada. Por favor, crea tu aplicación de Dropbox y rellena su clave aquí debajo.", + "dropboxAppKey": "Clave de aplicación de Dropbox", + "dropboxAppKeyDesc": "Copia la clave de tu aplicación de Dropbox (modo desarrollador)", + "dropboxAppKeyHint": "clave de tu app", + "dropboxAppSecret": "Secreto de la app de Dropbox", + "dropboxAppSecretDesc": "El secreto se puede encontrar junto a la clave de la app", + "dropboxFolder": "Carpeta de aplicación", + "dropboxFolderDesc": "Si tu aplicación está enlazada a todo tu Dropbox (no a la carpeta de la aplicación), especifica la carpeta con tus archivos kbdx aquí", + "dropboxFolderSettingsDesc": "Selecciona cualquier carpeta de tu Dropbox en la que se encuentren los archivos (carpeta raíz por defecto)", + "dropboxFolderPlaceholder": "carpeta por defecto", + "dropboxLink": "Enlazar la aplicación a", + "dropboxLinkApp": "Carpeta de aplicación (Apps/KeeWeb)", + "dropboxLinkFull": "Todo Dropbox o cualquier carpeta", + "dropboxLinkCustom": "Aplicación Dropbox propia", + "gdriveSharedWithMe": "Compartido conmigo", + "gdriveSharedDrives": "Unidades compartidas", + "gdriveTeamDrives": "Unidades de equipo", + "webdavSaveMethod": "Modo de guardado", + "webdavSaveMove": "Subir un archivo temporal y mover", + "webdavSavePut": "Sobreescribir el archivo kdbx con PUT", + "webdavNoLastModified": "Falta la cabecera HTTP Last-Modified", + "webdavStatReload": "Recargar el archivo siempre en lugar de confiar en la cabecera HTTP Last-Modified", + "launcherSave": "Guardar base de datos de contraseñas", + "launcherFileFilter": "Archivos KeePass", + "authPopupRequired": "Las ventanas emergentes están bloqueadas", + "authPopupRequiredBody": "Por favor, permite ventanas emergentes en tu navegador o vuelve a intentarlo.", + "exportFileInfo": "Información de archivo", + "exportHtmlName": "Nombre", + "exportHtmlDate": "Fecha de exportación", + "exportGenerator": "Software", + "exportDescription": "Este archivo está generado con {}.", + "importCsvTitle": "Importar desde CSV", + "importCsvRun": "Importar", + "importIgnoreField": "Ignorar", + "importTo": "Las entradas serán importadas a", + "importNewFile": "Nuevo archivo", + "yubiKeyStuckError": "La YubiKey parece estar bloqueada, puedes activar la reparación automática en los ajustes de la aplicación.", + "yubiKeyNoKeyHeader": "Se requiere una YubiKey", + "yubiKeyNoKeyBody": "Por favor, inserta la YubiKey con el número de serie {}", + "yubiKeySlot": "ranura", + "yubiKeyTouchRequestedHeader": "Toca tu YubiKey", + "yubiKeyTouchRequestedBody": "Por favor, toca tu YubiKey con el número de serie {}", + "yubiKeyDisabledErrorHeader": "USB desactivado", + "yubiKeyDisabledErrorBody": "Se requiere una YubiKey para abrir este archivo, por favor, activa los dispositivos USB en las opciones.", + "yubiKeyErrorWithCode": "Error de YubiKey, código {}.", + "bioOpenAuthPrompt": "abrir \"{}\"", + "extensionErrorNoOpenFiles": "No hay archivos abiertos", + "extensionErrorUserRejected": "La solicitud fue denegada", + "extensionErrorNoMatches": "No hay inicios de sesión coincidentes", + "extensionErrorAlertDisplayed": "No se puede hacer una pregunta ahora porque hay otra ventana de diálogo abierta, por favor, inténtalo de nuevo", + "extensionConnectHeader": "Intercambio de información de extensión", + "extensionConnectIntro": "Una extensión de navegador que se identifica como {} intenta intercambiar información con KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb no puede verificar que la aplicación conectada sea lo que se supone que es. Aprueba la solicitud solo si reconoces esta actividad.", + "extensionConnectFiles": "En esta sesión, dar acceso a:", + "extensionConnectAllOtherFiles": "El resto de archivos", + "extensionConnectAllFiles": "Todos los archivos", + "extensionConnectAskGet": "Preguntar antes de devolver contraseñas a la extensión:", + "extensionConnectAskGetMultiple": "Si hay más de una coincidencia", + "extensionConnectAskGetAlways": "siempre", + "extensionConnectAskSave": "Preguntar antes de guardar nuevas contraseñas a KeeWeb:", + "extensionConnectAskSaveAlways": "siempre", + "extensionConnectAskSaveAuto": "cuando no sea posible guardar automáticamente", + "extensionConnectSettingsAreForSession": "Las opciones que escojas aquí son válidas solo para la sesión activa. Puedes ver y administrar sesiones en los ajustes de KeeWeb.", + "extensionUnlockMessage": "Desbloquear para conectar una extensión de navegador", + "extensionNewGroupHeader": "Nuevo grupo", + "extensionNewGroupBody": "{} está intentando crear un nuevo grupo. ¿Permitir?", + "extensionNewGroupPath": "Ruta de grupo", + "extensionNewGroupFile": "Este grupo se creará en:", + "extensionSaveEntryHeader": "Guardar contraseña", + "extensionSaveEntryBody": "{} está intentando guardar una contraseña. ¿Permitir?", + "extensionSaveEntryAuto": "Guardar otras contraseñas automáticamente en esta sesión", + "extensionSaveEntryNewGroup": "nuevo grupo", + "extensionSelectPasswordFor": "Seleccionar una contraseña para {}", + "selectEntryHeader": "Seleccionar entrada", + "selectEntryEnterHint": "usar la entrada resaltada", + "selectEntryTypingHint": "Empieza a escribir para filtrar", + "selectEntryContains": "Contiene texto", + "selectEntrySubdomains": "Subdominios", + "selectEntryFieldHeader": "Seleccionar campo", + "selectEntryFieldTouch": "Presiona el botón en tu dispositivo para generar un código de uso único." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/es-ES/index.html b/keeweb/plugins/translations/es-ES/index.html new file mode 100644 index 0000000..ef1a2bc --- /dev/null +++ b/keeweb/plugins/translations/es-ES/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Español + + + + +

KeeWeb Language: Español

+ https://plugins.keeweb.info/translations/es-ES + + diff --git a/keeweb/plugins/translations/es-ES/manifest.json b/keeweb/plugins/translations/es-ES/manifest.json new file mode 100644 index 0000000..cd27c76 --- /dev/null +++ b/keeweb/plugins/translations/es-ES/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.34.0", + "manifestVersion": "0.1.0", + "name": "language-spanish", + "description": "Spanish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=es-ES", + "resources": { + "loc": "RRyeWB1u9kSvn3XVzoi9OYMUh3OBvScP8t2mgkfpYm3iR1h2vEub7E4Bkb6K0ClS5t3WmLLuxumW2bxxotmD208saU9MKyNDiCgoQeKoe/hVXRBCPWTetQAS9MtVlj7G2WmiHcEMCm4P8ABQq+4WbnUd2gHSwSCG8V1I0FEjm6OGJbXVQX71uOZX7qFPJxpfxgeyusLjlIMSN3FGtO0rmW7nVXAxHsvI9HSQWgy6oR66qSv08d5DQ1dKv4ZYfu4ev1j0XrZN5p9Cga6mWjJ/CYIwNrJLJ/thwMVXqZjxY1BT82m47PoD2LMcHHWg/W2XEf4w8rnsgbDEa2N/Z9EpAQ==" + }, + "locale": { + "name": "es-ES", + "title": "Español", + "flag": "🇪🇸" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/et-EE/et-EE.json b/keeweb/plugins/translations/et-EE/et-EE.json new file mode 100644 index 0000000..c496851 --- /dev/null +++ b/keeweb/plugins/translations/et-EE/et-EE.json @@ -0,0 +1,436 @@ +{ + "months": [ + "Jaanuar", + "Veebruar", + "Märts", + "Aprill", + "Mai", + "Juuni", + "Juuli", + "August", + "September", + "Oktoober", + "November", + "Detsember" + ], + "monthsShort": [ + "Jaan", + "Veebr", + "Märts", + "Apr", + "Mai", + "Juuni", + "Juuli", + "Aug", + "Sept", + "Okt", + "Nov", + "Dets" + ], + "weekdays": [ + "Pühapäev", + "Esmaspäev", + "Teisipäev", + "Kolmapäev", + "Neljapäev", + "Reede", + "Laupäev" + ], + "weekdaysShort": [ + "P", + "E", + "T", + "K", + "N", + "R", + "L" + ], + "retToApp": "tagasi rakendusse", + "name": "nimi", + "icon": "ikoon", + "title": "pealkiri", + "password": "parool", + "user": "kasutaja", + "website": "veebileht", + "tags": "märksõnad", + "notes": "märkmed", + "entry": "kirje", + "group": "grupp", + "noTitle": "pealkiri puudub", + "or": "või", + "history": "ajalugu", + "template": "mall", + "notImplemented": "Pole rakendatud", + "saveChanges": "Salvesta muudatused", + "discardChanges": "Loobu muudatustest", + "advanced": "Täpsemad", + "shortcuts": "Otseteed", + "help": "Abi", + "settings": "Seaded", + "plugins": "Pistikprogrammid", + "cache": "vahemälu", + "file": "fail", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Kõik asjad", + "menuColors": "Värvid", + "menuTrash": "Prügikast", + "menuSetGeneral": "Üldine", + "menuSetAbout": "Meist", + "menuAlertNoTags": "Märksõnad puuduvad", + "menuAlertNoTagsBody": "Saad lisada uusi märksõnu, kuid muudad märksõnade sektsioonis välju.", + "menuEmptyTrash": "Tühi prügikast", + "menuEmptyTrashAlert": "Tühjenda pürgikast?", + "menuEmptyTrashAlertBody": "Sa ei saa asju tagasi panna", + "menuItemCollapsed": "Laiendamiseks tee topeltklõps", + "alertYes": "Jah", + "alertNo": "Ei", + "alertOk": "OK", + "alertCancel": "Loobu", + "alertSignIn": "Logi sisse", + "alertCopy": "Kopeeri", + "alertClose": "Sulge", + "alertDoNotAsk": "Ära enam küsi", + "appBeta": "HOIATUS: beetaversioon, ainult eelvaateks", + "footerOpen": "Ava / Uus", + "footerSyncError": "Sünkroonimisviga", + "footerTitleGen": "Genereeri", + "footerTitleLock": "Lukusta", + "genLen": "Pikkus", + "genNewPass": "Uus parool", + "genPresetDefault": "vaikeseade", + "genPresetDerived": "nagu vana parool", + "genPresetPronounceable": "hääldatav", + "genPresetMed": "keskmine", + "genPresetLong": "pikk", + "genPresetPin4": "4-kohaline PIN-kood", + "genPresetMac": "MAC aadress", + "genPresetHash128": "128-bitine hash", + "genPresetHash256": "256-bitine hash", + "grpTitle": "Grupp", + "grpSearch": "Lülita selles grupis sisse võimalus kirjete otsimiseks", + "grpAutoType": "Luba automaatkirjutamine", + "grpAutoTypeSeq": "Automaatkirjutamise järjestus", + "grpAutoTypeSeqDefault": "Kasuta vaikimisi automaatkirjutamise järjestust", + "grpTrash": "Kustuta grupp koos kirjetega", + "tagTitle": "Märksõna", + "tagTrash": "Eemalda märksõnad kõikidest kirjetest", + "tagRename": "Nimeta ümber", + "tagTrashQuestion": "Eemaldada märksõna kõikidest kirjetest?", + "tagTrashQuestionBody": "See märksõna eemaldatakse kõikidest kirjetest. Selle taastamiseks pole lihtsat moodust.", + "tagExists": "Märksõna on juba olemas", + "tagExistsBody": "Märksõna selle nimega juba eksisteerib. Palun vali teine nimi.", + "tagBadName": "Halb nimi", + "tagBadNameBody": "Märksõna ei saa sisaldada tähti {}. Palun eemalda need.", + "genPsTitle": "Generaatori vaikeseaded", + "genPsCreate": "Uus vaikeseade", + "genPsDelete": "Kustuta vaikeseade", + "genPsNew": "vaikeseade", + "genPsEnabled": "Kuva vaikeseadete nimekirjas", + "genPsDefault": "Vaikimisi valitud", + "genPsDefaultLength": "Vaikimisi pikkus", + "genPsUpper": "Suurte ladina tähtedega", + "genPsLower": "Väikeste ladina tähtedega", + "genPsDigits": "Numbrid", + "genPsSpecial": "Erimärgid", + "genPsBrackets": "Sulud", + "genPsHigh": "Kõrged ASCII tähemärgid", + "genPsAmbiguous": "Mitmemõttelised sümbolid", + "genPsInclude": "Täiendavad sümbolid mida lisada", + "genPsExample": "Näide loodavast paroolist", + "keyChangeTitleRemote": "Üldvõti muudetud", + "keyChangeMessageRemote": "Selle andmebaasi üldvõti on muudetud. Palun sisesta uus võti", + "keyChangeTitleExpired": "Üldvõti on aegunud", + "keyChangeMessageExpired": "Selle andmebaasi üldvõti on aegunud. Palun sisesta uus võti", + "keyChangeRepeatPassword": "Parool uuesti", + "iconFavTitle": "Laadi alla ja kasuta veebilehe faviconi", + "iconSelCustom": "Vali kohandatud ikoon", + "listEmptyTitle": "Tühi", + "listEmptyAdd": "lisa {} nupuga ülalpool", + "listGroup": "Grupp", + "listNoWebsite": "veebileht puudub", + "listNoUser": "kasutaja puudub", + "listNoAttachments": "manused puuduvad", + "listAddTemplateHeader": "Mallid", + "listAddTemplateBody1": "Mallid võimaldavad luua kirjeid ühe klõpsuga. Lisa malli kirjetele midagi ja seejärel vajuta uusti {} selle malli kasutamiseks.", + "listAddTemplateBody2": "Sa leiad alati enda mallid grupist {}.", + "searchAddNew": "Lisa uus", + "searchSort": "Sorteeri", + "searchCreated": "Loodud", + "searchUpdated": "Uuendatud", + "searchAttachments": "Manused", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Vanast {} Uueni", + "searchNO": "Uuest {} Vanani", + "searchShiftClickOr": "vajuta shift-i või", + "searchAdvTitle": "Vajuta täiendatud otsinguks", + "searchSearchIn": "Otsi:", + "searchOther": "Teised väljad", + "searchProtect": "Turvalised väljad", + "searchOptions": "Valikud", + "searchCase": "Match case", + "searchRegex": "RegEx", + "openOpen": "Ava", + "openNew": "Uus", + "openMore": "Rohkem", + "openDemo": "Demo", + "openXml": "XML-i import", + "openCaps": "Suured tähed on sees", + "openClickToOpen": "Vajuta faili avamiseks", + "openKeyFile": "võtme fail", + "openKeyFileDropbox": "dropboxist", + "openDropHere": "lohista failid siia", + "openFailedRead": "Faili lugemine nurjus", + "openNothingFound": "Ei leitud midagi", + "openNothingFoundBody": "Faili pole võimalik avada.", + "openSelectFile": "Vali fail", + "openSelectFileBody": "Vali fail mida soovid avada", + "openPassFor": "Parool:", + "openRemoveLastQuestion": "Kustuta kohalik fail?", + "openRemoveLastQuestionBody": "Kustutatav fail on salvestatud ainult rakenduses. Kustutan selle jäädavalt?", + "openLocalFile": "Kohalik fail", + "openLocalFileDontShow": "Ära kuva seda uuesti", + "openWrongFile": "Halb fail", + "openWrongFileBody": "See faili formaat ei ole toetatud. See rakendus töötab KeePass andmebaasi formaadi failidega (kdbx).", + "openKdbFileBody": "Sa avad vanemat formaatfaili (KDB). See rakendus toetab ainult uut formaati (kdbx), palun kasuta KeePass v2, et teisendada need vajalikuks formaadiks.", + "openConfigHeader": "{} seaded", + "openUrl": "URL", + "openUrlDesc": "https://server/path/fail.kdbx, või lihtsalt fail.kdbx", + "openUser": "Kasutaja", + "openUserDesc": "WebDAV serveri kasutaja (kui nõutud)", + "openUserPlaceholder": "kasutaja puudub", + "openPass": "Parool", + "openPassDesc": "WebDAV-i serveri parool (see pole teie faili parool)", + "openPassPlaceholder": "parool puudub", + "openConfigError": "Viga: {}", + "openConfigErrorNotFound": "Faili ei leitud", + "openError": "Viga", + "openErrorDescription": "Faili avamisel ilmnes viga", + "openErrorFileNotFound": "Faili ei leitud", + "openListErrorBody": "Faililoendi laadimisel tekkis viga", + "openShowAllFiles": "Kuva kõik failid", + "detAttDownload": "Manuse allalaadimiseks vajuta Shift-nuppu või", + "detAttDelToRemove": "Kustuta, et eemaldada", + "detEmpty": "Sinu paroolid kuvatakse siin", + "detGroupRestore": "Selle grupi taastamiseks lohista see mistahes gruppi, mis asub väljaspool prügikasti", + "detHistoryReturn": "tagasi kirje juurde", + "detHistoryEmpty": "tühi", + "detHistoryModified": "muudetud", + "detHistoryRec": "kirje", + "detHistoryRecs": "kirjet", + "detHistoryVersion": "Versioon", + "detHistorySaved": "Salvestatud", + "detHistoryNoTitle": "pealkiri puudub", + "detBackToList": "tagasi nimekirja", + "detSetIconColor": "Muuda värvi", + "detSetIcon": "Muuda ikooni", + "detDropAttachments": "lohista manused siia", + "detDelEntry": "Kustuta", + "detDelEntryPerm": "Kustuta jäädavalt", + "detExpires": "Aegub", + "detExpired": "aegunud", + "detGroup": "Grupp", + "detCreated": "Loodud", + "detUpdated": "Uuendatud", + "detNetField": "Uus väli", + "detAttachments": "Manused", + "detDelFromTrash": "Kustuta prügikastist?", + "detDelFromTrashBody": "Sa ei saa seda tagasi panna.", + "detFieldCopied": "Kopeeritud", + "detFieldCopiedTime": "Kopeeritud {} sekundiks", + "detMore": "rohkem", + "detMenuAddNewField": "Lisa uus väli", + "detMenuShowEmpty": "Kuva tühjad väljad", + "detMenuHideEmpty": "Peida tühjad väljad", + "detMenuAddField": "Lisa {}", + "detMenuCopyPassword": "Kopeeri parool", + "detMenuCopyUser": "Kopeeri kasutaja", + "detSetupOtp": "Ühekordsed paroolid", + "detClone": "Tee koopia", + "detClonedName": "Kopeeri", + "detAutoType": "Automaatkirjutamine", + "detAutoTypeSettings": "Automaatkirjutamise seaded", + "detAutoTypeEnabled": "Luba automaatkirjutamine sellele kirjele", + "detSetupOtpAlert": "Skanneri QR-koodi", + "detOtpImageReading": "Loen QR koodi...", + "detOtpQrWrong": "Vale QR kood", + "autoTypeKeys": "Võtmed", + "autoTypeLink": "rohkem...", + "autoTypeError": "Automaatkirjutamisel tekkis probleem", + "autoTypeErrorNotInstalled": "{} ei ole installeeritud", + "autoTypeHeader": "Automaatkirjutamine: Vali", + "appSecWarn": "Pole turvaline!", + "appSecWarnBtn": "Mõistan riske, jätka", + "appUnsavedWarn": "Salvestamata muudatused!", + "appDontExitBtn": "Ära lahku", + "appCannotLock": "Sul on salvestamata muudatused, mis lähevad kaduma. Jätkad?", + "appAutoSave": "Salvesta muudatused automaatselt", + "appSaveError": "Salvestamisel tekkis probleem", + "appSettingsError": "Rakenduse laadimisel tekkis probleem", + "appNotSupportedError": "Sinu brauser ei ole toetatud.", + "appTabWarn": "Liiga palju vahelehti", + "appRightsAlert": "Lukusta KeeWebi rakendus", + "setGenTitle": "Üldised seaded", + "setGenUpdate": "Uuenda", + "setGenNewVersion": "Uus rakenduse versioon on välja lastud ja alla laetud", + "setGenReleaseNotes": "Vaadake väljalaske märkmeid", + "setGenDownloadUpdate": "Laadi värskendus alla", + "setGenCheckedAt": "Kontrollitud", + "setGenLatestVer": "sa kasutad viimast versiooni", + "setGenNewVer": "uus versioon {} on saadaval, välja lastud", + "setGenDownloadingUpdate": "Laadin alla uuendust...", + "setGenExtractingUpdate": "Pakin uuendust lahti...", + "setGenThemeFb": "Sinine", + "setGenThemeDb": "Tumepruun", + "setGenThemeWh": "Valge", + "setGenThemeTe": "Terminal", + "setGenLocale": "Keel", + "setGenFontSize": "Fondi suurus", + "setGenFontSizeNormal": "Normaalne", + "setGenFontSizeLarge": "Suur", + "setGenFontSizeLargest": "Suurim", + "setGenTitlebarStyleDefault": "Tavaline", + "setGenFunction": "Funktsioon", + "setGenLock": "Automaatne lukk", + "setGenStorage": "Mälu", + "setGenShowAdvanced": "Kuva täpsemaid seadeid", + "setGenDevTools": "Näita arendaja tööriistu", + "setGenTryBeta": "Proovi beetaversiooni enne taaskäivitamist", + "setGenTryBetaWarning": "Salvestamata failid", + "setGenTryBetaWarningBody": "Palun salvesta kõik failid ja vajuta seda nuppu uuesti", + "setGenShowAppLogs": "Kuva rakenduse logid", + "setFilePath": "Faili teekond", + "setFileStorage": "See fail on laetud asukohast {}.", + "setFileDownloadApp": "Laadige alla rakendus arvutile", + "setFileSave": "Salvesta", + "setFileSaveTo": "Salvesta ...", + "setFileClose": "Sulge", + "setFileSync": "Sünkroonimine", + "setFileSaveToXml": "XML", + "setFileLastSyncUnknown": "tundmatu", + "setFileSyncInProgress": "toimub sünkroonimine", + "setFileSyncError": "Sünkroonimise probleemid", + "setFilePass": "Üldvõti", + "setFileKeyFile": "Võtme fail", + "setFileSelKeyFile": "Vali võtme fail", + "setFileNames": "Nimed", + "setFileDefUser": "Vaikekasutaja", + "setFileEnableTrash": "Luba prügikast", + "setFileBackups": "Varukoopiad", + "setFileBackupEnable": "Tee varukoopia sellest failist", + "setFileBackupPath": "Varukoopia teekond", + "setFileBackupTime": "Tee varukoopiad", + "setFileBackupNow": "Varukoopia nüüd", + "setFileBackupNowWorking": "Töötan...", + "setFileBackupError": "Varukoopia loomisel tekkis probleem", + "setFileBackupErrorDescription": "Viga varukoopia faili kirjutamisel", + "setFileBackupOnSave": "Iga kord ma salvestan faili", + "setFileBackupDaily": "Iga päev", + "setFileBackupWeekly": "Iga nädal", + "setFileBackupMonthly": "Iga kuu", + "setFileBackupManually": "Manuaalselt, ei varunda automaatselt", + "setFileKdfParamsIter": "Iteratsioonid", + "setFileKdfParamsMem": "Mälu, KB", + "setFileKdfParamsPar": "Paralleelsus", + "setFileKeyChangeForce": "Küsi võtme vahetamist (päevades)", + "setFileUseKeyFile": "Kasuta võtme faili", + "setFileUseGenKeyFile": "Kasuta genereeritud võtme faili", + "setFileUseOldKeyFile": "Kasuta vana võtme faili", + "setFileGenKeyFile": "Genereeri uus võtme fail", + "setFileDontUseKeyFile": "Ära kasuta võtme faili", + "setFileEmptyPass": "Parool puudub", + "setFileSaveError": "Viga salvestamisel", + "setFileSaveErrorBody": "Probleem faili salvestamisel", + "setFileAlreadyExists": "Juba eksisteerib", + "setFileAlreadyExistsBody": "Fail {} juba eksisteerib. Kirjutan üle?", + "setFileUnsaved": "Salvestamata muudatused", + "setFileCloseNoSave": "Sulge ja unusta muudatused", + "setFileDontClose": "Ära sulge", + "setShTitle": "Otseteed", + "setShShowAll": "näita kõiki asju", + "setShColors": "näita asju koos värvidega", + "setShTrash": "liigu prügikasti", + "setShFind": "otsi, või alusta lihtsalt kirjutamist", + "setShClearSearch": "kustuta otsing", + "setShCopyPass": "kopeeri või valitud väli", + "setShCopyUser": "kopeeri kasutaja", + "setShCopyUrl": "kopeeri veebileht", + "setShPrev": "mine eemlise asja juurde", + "setShNext": "mine järgmise asja juurde", + "setShCreateEntry": "tee kirje", + "setShOpen": "ava / uus", + "setShSave": "salvesta kõik failid", + "setShGen": "genereeri parool", + "setShSet": "rakenduse seaded", + "setShCopyPassGlobal": "kopeeri parool (kui rakendus jookseb taustal)", + "setShCopyUserGlobal": "kopeeri kasutaja (kui rakendus jookseb taustal)", + "setShCopyUrlGlobal": "kopeeri veebileht (kui rakendus jookseb taustal)", + "setShAutoTypeGlobal": "automaatkirjuta (kui rakendus jookseb taustal)", + "setShLock": "lukusta andmebaas", + "setPlInstallTitle": "Installeeri uued pistikprogrammid", + "setPlInstallDesc": "KeeWebi pistikprogrammid lisavad KeeWebi funktsioone, teemasid ja keeli. Pistikprogrammid töötavad samade privileegidega nagu KeeWeb, need pistikprogrammid saavad juurdepääsu ja haldusõigused sinu paroolidele. Ära kunagi installeeri pistikprogramme mida sa ei usalda.", + "setPlInstallLabel": "Pistikprogrammi URL", + "setPlInstallBtn": "Installeeri", + "setPlInstallBtnProgress": "Installeerib", + "setPlUninstallBtn": "Deinstalli", + "setPlDisableBtn": "Keela", + "setPlEnableBtn": "Luba", + "setPlUpdateBtn": "Uuenda", + "setPlLocaleBtn": "Lülita see keel sisse", + "setPlThemeBtn": "Kasuta seda teemat", + "setPlJs": "kood", + "setPlCss": "stiilid", + "setPlLoc": "keeled", + "setPlCreatedBy": "Loodud {} poolt", + "setPlLoadTime": "võttis aega laadimiseks {}", + "setPlLastUpdate": "Uuendusi kontrolliti viimati:", + "setPlLoadError": "probleem pistikpprogrammi laadimisel", + "setPlGalleryLoading": "Pistikprogrammide laadimine, palun oota natuke.", + "setPlGalleryLoadError": "Pistikprogrammide laadimine nurjus", + "setPlInstallUrlTitle": "Lisa pistikprogramm URL-ist", + "setPlInstallUrlDesc": "Kui plugin ei ole galeriis, saad seda käsitsi installida URL-ist", + "setPlOfficial": "Ametlik KeeWebi pistikprogramm", + "setPlSearch": "Otsi pistikprogramme", + "setPlDevelop": "Soovid arendada oma pistikprogrammi?", + "setPlDevelopStart": "Alusta siit", + "setPlTranslateLink": "tõlkida rakendust enda keelde", + "setPlAutoUpdate": "Uuenda automaatselt", + "setPlLoadGallery": "Laadi pistikprogrammide galerii", + "setAboutTitle": "Meist", + "setAboutBuilt": "See rakendus on loodud nende suurepäraste tööriistadega", + "setAboutLic": "Litsents", + "setAboutFirst": "See on avatud lähtekoodiga rakendus, mis on loodud {} poolt", + "setAboutSecond": "ja litsenseeritud {} litsensiga.", + "setAboutSource": "Lähtekood ja probleemid on {}.", + "setHelpFormat": "Faili formaat", + "setHelpProblems": "Vajad abi?", + "setHelpProblems1": "Kui midagi läheb varsti, siis palun {}", + "setHelpProblems2": "või {}", + "setHelpOpenIssue": "ava probleem GitHubis", + "setHelpContactLink": "pöördu otse arendaja poole", + "setHelpAppInfo": "Rakenduse informatsioon", + "setHelpOtherPlatforms": "Teised platvormid", + "setHelpDesktopApps": "Rakendused arvutile", + "setHelpWebApp": "Veebirakendus", + "setHelpUpdates": "Uuendused", + "setHelpTwitter": "Rakendused twitter", + "dropboxAppKey": "Rakenduse Dropbox võti", + "dropboxAppKeyDesc": "Kopeeri võti Dropboxi rakendusest (arendaja seaded)", + "dropboxFolder": "Rakenduse kaust", + "dropboxFolderSettingsDesc": "Vali Dropboxis mis tahes kaust, kuhu failid salvestatakse (vaikimisi juurkaust)", + "dropboxFolderPlaceholder": "vaikekaust", + "dropboxLink": "Lingi rakendus", + "dropboxLinkApp": "Rakenduse kaust (Apps/KeeWeb)", + "dropboxLinkFull": "Terve Dropbox või mis tahes kaust", + "dropboxLinkCustom": "Enda Dropboxi rakendus", + "webdavSaveMethod": "Salvesta meetod", + "webdavSaveMove": "Laadi üles ajutine faili ja liiguta", + "webdavSavePut": "Kirjuta kdbx-fail üle PUT-iga", + "launcherSave": "Salvesta paroolide andmebaas", + "launcherFileFilter": "KeePassi failid", + "authPopupRequired": "Hüpikaknad on blokeeritud", + "authPopupRequiredBody": "Palun luba brauseris hüpikaknad ning proovi uuesti" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/et-EE/index.html b/keeweb/plugins/translations/et-EE/index.html new file mode 100644 index 0000000..48de435 --- /dev/null +++ b/keeweb/plugins/translations/et-EE/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Eesti (Eesti) + + + + +

KeeWeb Language: Eesti (Eesti)

+ https://plugins.keeweb.info/translations/et-EE + + diff --git a/keeweb/plugins/translations/et-EE/manifest.json b/keeweb/plugins/translations/et-EE/manifest.json new file mode 100644 index 0000000..d95b0a1 --- /dev/null +++ b/keeweb/plugins/translations/et-EE/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.0.1", + "manifestVersion": "0.1.0", + "name": "language-estonian-estonia", + "description": "Estonian (Estonia) language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=et-EE", + "resources": { + "loc": "NrcQr+ONnrqVNHNHDV7VQIXtn/VBhENePPlwPferHnjIP7+S0MKSk/7rUPJiH7ViNxfGNQZli/piTlaYIYhMIIGGT24+bOHR36FuSd5ALTGWSSBNlxrthWpV+aewux/lpASXv27cBopa8ueqwALK8daSpMcM5BQ6yWfmQpNjNPpBeJuPDjRHWrD7V6WR4Y6y48+9ug+kfMriisWbRHFVY46BLIWynFgi4bBdLTNOlroi+skuBMhegSSQbm2DF+JQieNrLMdOLHsWgLklINla4ayY98EPO28QhGYPV1A50KZXbPIyfeyevQfqacatAO4M0/nx+6uq07PPH3l4sj/coQ==" + }, + "locale": { + "name": "et-EE", + "title": "Eesti (Eesti)", + "flag": "🇪🇪" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} diff --git a/keeweb/plugins/translations/fi/fi.json b/keeweb/plugins/translations/fi/fi.json new file mode 100644 index 0000000..3e92510 --- /dev/null +++ b/keeweb/plugins/translations/fi/fi.json @@ -0,0 +1,466 @@ +{ + "months": [ + "Tammikuu", + "Helmikuu", + "Maaliskuu", + "Huhtikuu", + "Toukokuu", + "Kesäkuu", + "Heinäkuu", + "Elokuu", + "Syyskuu", + "Lokakuu", + "Marraskuu", + "Joulukuu" + ], + "monthsShort": [ + "Tammi", + "Helmi", + "Maalis", + "Huhti", + "Touko", + "Kesä", + "Heinä", + "Elo", + "Syys", + "Loka", + "Marras", + "Joulu" + ], + "weekdays": [ + "Sunnuntai", + "Maanantai", + "Tiistai", + "Keskiviikko", + "Torstai", + "Perjantai", + "Lauantai" + ], + "weekdaysShort": [ + "Su", + "Ma", + "Ti", + "Ke", + "To", + "Pe", + "La" + ], + "retToApp": "Takaisin sovellukseen", + "name": "nimi", + "icon": "ikoni", + "title": "otsikko", + "password": "salasana", + "user": "käyttäjä", + "website": "verkkosivu", + "tags": "tunnisteet", + "notes": "muistiinpanot", + "entry": "kohde", + "group": "ryhmä", + "noTitle": "ei otsikkoa", + "or": "tai", + "history": "historia", + "template": "malli", + "notImplemented": "Ei toteutettu", + "saveChanges": "Tallenna muutokset", + "discardChanges": "Hylkää muutokset", + "advanced": "Edistyneet", + "shortcuts": "Näppäinyhdistelmät", + "help": "Ohje", + "settings": "Asetukset", + "plugins": "Lisäosat", + "cache": "välimuisti", + "file": "tiedosto", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Kaikki kohteet", + "menuColors": "Värit", + "menuTrash": "Roskakori", + "menuSetGeneral": "Yleiset", + "menuSetAbout": "Tietoja", + "menuAlertNoTags": "Ei tunnisteita", + "menuEmptyTrash": "Tyhjennä roskakori", + "menuEmptyTrashAlert": "Tyhjennetäänkö roskakori?", + "menuItemCollapsed": "Kaksoisnapsauta laajentaaksesi", + "menuRestoreApp": "Avaa {}", + "menuQuitApp": "Lopeta {}", + "alertYes": "Kyllä", + "alertNo": "Ei", + "alertOk": "OK", + "alertCancel": "Peruuta", + "alertSignIn": "Kirjaudu", + "alertCopy": "Kopioi", + "alertClose": "Sulje", + "alertDoNotAsk": "Älä kysy enää", + "appBeta": "VAROITUS: beeta-versio, vain esikatseluun", + "footerOpen": "Avaa / Uusi", + "footerSyncError": "Synkronointivirhe", + "footerTitleGen": "Luo", + "footerTitleLock": "Lukitse", + "genLen": "Pituus", + "genNewPass": "Uusi salasana", + "genPresetDefault": "oletusesiasetus", + "genPresetDerived": "kuin vanha salasana", + "genPresetPronounceable": "äännettävä", + "genPresetMed": "keskipitkä", + "genPresetLong": "pitkä", + "genPresetPin4": "4-numeroinen PIN", + "genPresetMac": "MAC-osoite", + "genPresetHash128": "128-bittinen tiiviste", + "genPresetHash256": "256-bittinen tiiviste", + "genHidePass": "Piilota salasana", + "genShowPass": "Näytä salasana", + "grpTitle": "Ryhmä", + "grpAutoType": "Ota automaattinen täydennys käyttöön", + "grpTrash": "Poista ryhmä kaikkien kohteiden kanssa", + "tagTitle": "Tunniste", + "tagTrash": "Poista tunniste kaikista kohteista", + "tagRename": "Nimeä uudelleen", + "tagTrashQuestion": "Poistetaanko tunniste kaikista kohteista?", + "tagExists": "Tunniste on jo olemassa", + "tagExistsBody": "Samanniminen tunniste on jo olemassa. Valitse toinen nimi.", + "tagBadName": "Huono nimi", + "tagBadNameBody": "Tunnistenimi ei voi sisältää seuraavia merkkejä: {}. Poista ne.", + "genPsCreate": "Uusi esiasetus", + "genPsDelete": "Poista esiasetus", + "genPsNew": "esiasetus", + "genPsDefault": "Valittu oletusarvoisesti", + "genPsDefaultLength": "Oletuspituus", + "genPsUpper": "Isot latinalaiset kirjaimet", + "genPsLower": "Pienet latinalaiset kirjaimet", + "genPsDigits": "Numerot", + "genPsSpecial": "Erikoismerkit", + "genPsBrackets": "Sulkeet", + "genPsHigh": "ASCII-merkit", + "genPsInclude": "Lisämerkkejä sisällytettäväksi", + "genPsExample": "Esimerkki salasanasta", + "keyChangeTitleRemote": "Pääavain on vaihdettu", + "keyChangeTitleExpired": "Pääavain on vanhentunut", + "keyChangeMessageExpired": "Tämän tietokannan pääavain on vanhentunut. Anna uusi avain", + "keyChangeRepeatPassword": "Salasana uudelleen", + "keyEnter": "Syötä", + "iconSelCustom": "Valitse mukautettu kuvake", + "listEmptyTitle": "Tyhjä", + "listEmptyAdd": "lisää yllä olevalla {}-painikkeella", + "listGroup": "Ryhmä", + "listNoWebsite": "ei verkkosivua", + "listNoUser": "ei käyttäjää", + "listNoAttachments": "ei liitteitä", + "listAddTemplateHeader": "Mallit", + "searchAddNew": "Lisää uusi", + "searchSort": "Järjestä", + "searchCreated": "Luotu", + "searchUpdated": "Päivitetty", + "searchAttachments": "Liitteet", + "searchAZ": "A {} Ö", + "searchZA": "Ö {} A", + "searchON": "Vanha {} Uusi", + "searchNO": "Uusi {} Vanha", + "searchShiftClickOr": "shift-click tai", + "searchAdvTitle": "Tarkennettu haku", + "searchSearchIn": "Etsi kohteista", + "searchOther": "Muut kentät", + "searchProtect": "Suojatut kentät", + "searchOptions": "Vaihtoehdot", + "searchCase": "Täsmää kirjainkoko", + "searchRegex": "RegEx", + "searchExact": "Tarkka", + "openOpen": "Avaa", + "openNew": "Uusi", + "openNewFile": "Uusi", + "openMore": "Lisää", + "openDemo": "Demo", + "openGenerate": "Luo", + "openXml": "Tuo XML-tiedosto", + "openCaps": "Caps Lock on päällä", + "openClickToOpen": "Avaa tiedosto napsauttamalla", + "openKeyFile": "avaintiedosto", + "openKeyFileDropbox": "(dropboxista)", + "openDropHere": "pudota tiedostot tähän", + "openFailedRead": "Tiedoston lukeminen epäonnistui", + "openNothingFound": "Mitään ei löytynyt", + "openNothingFoundBody": "Emme ole löytäneet sopivia tiedostoja.", + "openSelectFile": "Valitse tiedosto", + "openSelectFileBody": "Valitse tiedosto, jonka haluat avata", + "openPassFor": "Salasana kohteelle", + "openRemoveLastQuestion": "Poistetaanko paikallinen tiedosto?", + "openLocalFile": "Paikallinen tiedosto", + "openLocalFileDontShow": "Älä näytä tätä uudelleen", + "openWrongFile": "Huono tiedosto", + "openWrongFileBody": "Tätä tiedostomuotoa ei tueta. Tämä sovellus toimii KeePass-tietokantamuodon (kdbx) kanssa.", + "openConfigHeader": "{} asetukset", + "openUrl": "URL", + "openUrlDesc": "https://palvelin/polku/tiedosto.kdbx, tai vain tiedosto.kdbx", + "openUser": "Käyttäjä", + "openUserDesc": "WebDAV-palvelimen käyttäjänimi (tarvittaessa)", + "openUserPlaceholder": "ei käyttäjää", + "openPass": "Salasana", + "openPassDesc": "WebDAV-palvelimen salasana (tämä ei ole tiedostosi salasana)", + "openPassPlaceholder": "ei salasanaa", + "openConfigError": "Virhe: {}", + "openConfigErrorNotFound": "Tiedostoa ei löytynyt", + "openError": "Virhe", + "openErrorDescription": "Virhe tiedostoa avattaessa", + "openErrorFileNotFound": "Tiedostoa ei löytynyt", + "openListErrorBody": "Tiedostolistan lataamisessa tapahtui virhe", + "openShowAllFiles": "Näytä kaikki tiedostot", + "detAttDelToRemove": "Delete poistaaksesi", + "detAttSave": "Tallenna nimellä...", + "detEmpty": "Salasanat näytetään tässä", + "detHistoryReturn": "palaa kohteelle", + "detHistoryRevert": "Palaa tilaan", + "detHistoryDel": "Poista tila", + "detHistoryEmpty": "tyhjä", + "detHistoryModified": "muokattu", + "detHistoryRec": "tietue", + "detHistoryRecs": "tietuetta", + "detHistoryVersion": "Versio", + "detHistorySaved": "Tallennettu", + "detHistoryNoTitle": "ei otsikkoa", + "detHistoryCurState": "nykyinen tila", + "detHistoryCurUnsavedState": "nykyinen tallentamaton tila", + "detBackToList": "takaisin luetteloon", + "detSetIconColor": "Vaihda väri", + "detSetIcon": "Vaihda kuvake", + "detDropAttachments": "pudota liitetiedostot tähän", + "detDelEntry": "Poista", + "detDelEntryPerm": "Poista pysyvästi", + "detExpires": "Vanhenee", + "detExpired": "vanhentunut", + "detGroup": "Ryhmä", + "detCreated": "Luotu", + "detUpdated": "Päivitetty", + "detNetField": "Uusi kenttä", + "detAttachments": "Liitteet", + "detDelFromTrash": "Poistetaanko roskakorista?", + "detFieldCopied": "Kopioitu", + "detFieldCopiedTime": "Kopioitu {} sekunniksi", + "detMore": "lisää", + "detClickToAddField": "lisää uusi kenttä napsauttamalla", + "detMenuAddNewField": "Lisää uusi kenttä", + "detMenuShowEmpty": "Näytä tyhjät kentät", + "detMenuHideEmpty": "Piilota tyhjät kentät", + "detMenuAddField": "Lisää {}", + "detMenuCopyPassword": "Kopioi salasana", + "detMenuCopyUser": "Kopioi käyttäjä", + "detSetupOtp": "Kertakäyttöiset salasanat", + "detClone": "Tee kopio", + "detCopyEntryToClipboard": "Kopioi kaikki kentät", + "detClonedName": "Kopioi", + "detAutoType": "Automaattinen täydennys", + "detAutoTypeSettings": "Automaattisen täydennyksen asetukset", + "detAutoTypeSequence": "Näppäilyt", + "detAutoTypeInput": "Syöte", + "detAutoTypeWindow": "Ikkuna", + "detAutoTypeInputWindow": "Ikkunan otsikko", + "detSetupOtpAlert": "Skannaa QR-koodi", + "detSetupOtpAlertBody1": "1. siirry valtuutussivulle", + "detSetupOtpAlertBody2": "2. tee kuvakaappaus QR-koodista {}", + "detSetupOtpAlertBody3": "3. liitä se tähän {}", + "detSetupOtpManualButton": "Anna koodi manuaalisesti", + "detSetupOtpScanButton": "Valitse/Skannaa", + "detSetupOtpAlertBodyWith": "{}:n kanssa", + "detOtpImageError": "Virhe luettaessa kuvaa", + "detOtpImageReading": "Luetaan QR-koodi...", + "detOtpQrError": "QR-koodin skannausvirhe", + "detOtpQrWrong": "Väärä QR-koodi", + "detRevealField": "Paljasta", + "detHideField": "Piilota", + "detAutoTypeField": "Automaattinen täydennys", + "autoTypeEntryFields": "Kohteen kentät", + "autoTypeModifiers": "Muokkausnäppäimet", + "autoTypeKeys": "Avaimet", + "autoTypeLink": "lisää...", + "autoTypeError": "Automaattisen täydennyksen virhe", + "autoTypeErrorNotInstalled": "{} ei ole asennettu", + "autoTypeNoMatches": "ei hakutuloksia", + "autoTypeSelectionHintShift": "Muut kentät", + "autoTypeSelectionOtp": "Kertaluonteinen salasana", + "appSecWarn": "Salaamaton!", + "appSecWarnBtn": "Ymmärrän riskit, jatka", + "appUnsavedWarn": "Tallentamattomat muutokset!", + "appDontExitBtn": "Älä poistu", + "appCannotLock": "Sinulla on tallentamattomia muutoksia, jotka menetetään. Jatketaanko?", + "appAutoSave": "Tallenna muutokset automaattisesti", + "appSaveError": "Tallennusvirhe", + "appSettingsError": "Virhe ladattaessa sovellusta", + "appTabWarn": "Liikaa välilehtiä", + "appRightsAlert": "KeeWeb-sovelluksen lukitseminen", + "setGenTitle": "Yleiset asetukset", + "setGenUpdate": "Päivitys", + "setGenReleaseNotes": "Näytä julkaisutiedot", + "setGenReloadToUpdate": "Käynnistä uudestaan päivittääkseen", + "setGenDownloadUpdate": "Lataa päivitys", + "setGenUpdateAuto": "Lataa ja asenna automaattisesti", + "setGenUpdateCheck": "Tarkista mutta älä asenna", + "setGenNoUpdate": "Älä koskaan tarkista päivityksiä", + "setGenUpdateChecking": "Tarkistetaan päivityksiä", + "setGenCheckUpdate": "Tarkista päivitykset", + "setGenErrorChecking": "Virhe tarkistettaessa päivityksiä", + "setGenLastCheckVer": "uusin versio oli {}", + "setGenCheckedAt": "Tarkastettu", + "setGenLatestVer": "käytössäsi on uusin versio", + "setGenNewVer": "uusi versio {} saatavilla, julkaistu", + "setGenDownloadingUpdate": "Ladataan päivitystä...", + "setGenExtractingUpdate": "Puretaan päivitystä...", + "setGenRestartToUpdate": "Käynnistä sovellus uudelleen", + "setGenDownloadAndRestart": "Lataa päivitys ja käynnistä uudelleen", + "setGenAppearance": "Ulkoasu", + "setGenTheme": "Teema", + "setGenThemeFb": "Tasainen sininen", + "setGenThemeDb": "Tumman ruskea", + "setGenThemeWh": "Valkoinen", + "setGenThemeTe": "Terminaali", + "setGenThemeHc": "Suuri kontrasti", + "setGenThemeSd": "Solarized, tumma", + "setGenThemeSl": "Solarized, vaalea", + "setGenThemeMacDark": "macOS:n Tumma", + "setGenLocale": "Kieli", + "setGenLocOther": "muita kieliä on saatavilla lisäosina", + "setGenFontSize": "Fonttikoko", + "setGenFontSizeNormal": "Normaali", + "setGenFontSizeLarge": "Suuri", + "setGenFontSizeLargest": "Suurin", + "setGenTitlebarStyle": "Ikkunan tyyli (tarvitaan uudelleen käynnistys)", + "setGenTitlebarStyleDefault": "Oletus", + "setGenTitlebarStyleHidden": "Mukautettu otsikko", + "setGenFunction": "Toiminto", + "setGenAutoSyncTimerOff": "Poissa käytöstä", + "setGenAutoSyncTimerInterval": "{} minuutin välein", + "setGenNoRememberKeyFiles": "Älä muista", + "setGenLockInactive": "jos sovellus ei ole käytössä", + "setGenLockMinutes": "{}:n minuutin päästä", + "setGenLockHour": "Tunnin päästä", + "setGenLockHours": "{}:n tunnin päästä", + "setGenLockDay": "Päivän päästä", + "setGenClearClip": "Tyhjennä leikepöytä kopioinnin jälkeen", + "setGenNoClear": "Älä tyhjennä", + "setGenClearSeconds": "{}:n sekunnin päästä", + "setGenClearMinute": "Minuutin päästä", + "setGenStorage": "Varasto", + "setGenShowAdvanced": "Näytä lisäasetukset", + "setGenDevTools": "Näytä dev-työkalut", + "setGenTryBetaWarning": "Tallentamattomat tiedostot", + "setGenShowAppLogs": "Näytä sovelluslokit", + "setGenReloadApp": "Lataa sovellus uudelleen", + "setFilePath": "Tiedostopolku", + "setFileSave": "Tallenna", + "setFileSaveTo": "Tallenna kohteeseen ...", + "setFileClose": "Sulje", + "setFileSync": "Synkronointi", + "setFileSyncVerb": "Synkronoi", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Viimeinen synkronointi", + "setFileLastSyncUnknown": "tuntematon", + "setFileSyncInProgress": "synkronointi käynnissä", + "setFileSyncError": "Synkronointivirhe", + "setFilePass": "Pääsalasana", + "setFileConfirmPass": "Vahvista pääsalasana", + "setFilePassChanged": "salasana vaihdettiin; jätä kenttä tyhjäksi, jos haluat käyttää vanhaa salasanaa", + "setFilePassNotMatch": "salasanat eivät täsmää, kirjoita se uudelleen", + "setFileKeyFile": "Avaintiedosto", + "setFileSelKeyFile": "Valitse avaintiedosto", + "setFileNames": "Nimet", + "setFileDefUser": "Oletuskäyttäjä", + "setFileEnableTrash": "Ota roskakori käyttöön", + "setFileBackups": "Varmuuskopiot", + "setFileBackupEnable": "Varmuuskopioi tämä tiedosto", + "setFileBackupPath": "Varmuuskopioinnin polku", + "setFileBackupTime": "Tee varmuuskopiot", + "setFileBackupNow": "Varmuuskopioi nyt", + "setFileBackupNowWorking": "Meneillään...", + "setFileBackupError": "Varmuuskopiointivirhe", + "setFileBackupErrorDescription": "Virhe kirjoitettaessa varmuuskopiotiedostoa", + "setFileBackupDaily": "Päivittäin", + "setFileBackupWeekly": "Viikoittain", + "setFileBackupMonthly": "Kuukausittain", + "setFileKdfParamsIter": "Iterointia", + "setFileKdfParamsMem": "Muisti, KB", + "setFileUseKeyFile": "Käytä avaintiedostoa", + "setFileUseGenKeyFile": "Käytä luotua avaintiedostoa", + "setFileUseOldKeyFile": "Käytä vanhaa avaintiedostoa", + "setFileGenKeyFile": "Luo uusi avaintiedosto", + "setFileDontUseKeyFile": "Älä käytä avaintiedostoa", + "setFileEmptyPass": "Tyhjä salasana", + "setFileSaveError": "Tallennusvirhe", + "setFileSaveErrorBody": "Virhe tallennettaessa tiedostoa", + "setFileAlreadyExists": "On jo olemassa", + "setFileAlreadyExistsBody": "Tiedosto {} on jo olemassa. Korvataanko?", + "setFileUnsaved": "Tallentamattomat muutokset", + "setFileUnsavedBody": "Tiedostossa on tallentamattomia muutoksia", + "setFileCloseNoSave": "Sulje ja menetä muutoksia", + "setFileDontClose": "Älä sulje", + "setFileFormatVersion": "Tiedostomuoto", + "setShTitle": "Näppäinyhdistelmät", + "setShShowAll": "näytä kaikki kohteet", + "setShClearSearch": "tyhjennä haku", + "setShCopyUser": "kopioi käyttäjä", + "setShCopyUrl": "kopioi verkkosivu", + "setShPrev": "siirry edelliseen kohteeseen", + "setShNext": "siirry seuraavaan kohteeseen", + "setShCreateEntry": "luo kohde", + "setShOpen": "avaa / uusi", + "setShSave": "tallenna kaikki tiedostot", + "setShGen": "luo salasana", + "setShSet": "sovellusasetukset", + "setShCopyPassGlobal": "kopioi salasana (kun sovellus on taustalla)", + "setShCopyOtp": "kopioi OTP", + "setShCopyPassOnly": "kopioi salasana", + "setShRestoreApp": "avaa {}", + "setShLock": "lukitse tietokanta", + "setPlInstallTitle": "Asenna uusia lisäosia", + "setPlInstallLabel": "Lisäosan URL", + "setPlInstallBtn": "Asenna", + "setPlInstallBtnProgress": "Asennetaan", + "setPlUninstallBtn": "Poista", + "setPlDisableBtn": "Poista käytöstä", + "setPlEnableBtn": "Ota käyttöön", + "setPlUpdateBtn": "Päivitä", + "setPlLocaleBtn": "Vaihda kieltä", + "setPlThemeBtn": "Vaihda teemaa", + "setPlJs": "koodi", + "setPlCss": "tyylit", + "setPlLoc": "kieli", + "setPlLoadError": "virhe ladattaessa lisäosaa", + "setPlGalleryLoading": "Ladataan lisäosia, odota vähän", + "setPlGalleryLoadError": "Virhe ladattaessa lisäosia", + "setPlOfficial": "Virallinen KeeWeb-lisäosa", + "setPlSearch": "Etsi lisäosia", + "setPlDevelop": "Haluatko kehittää omia lisäosia?", + "setPlDevelopStart": "Aloita tästä", + "setPlTranslateLink": "käännä sovellus kielellesi", + "setPlAutoUpdate": "Päivitä automaattisesti", + "setPlLoadGallery": "Lataa lisäosien galleria", + "setAboutTitle": "Tietoja", + "setAboutLic": "Lisenssi", + "setHelpFormat": "Tiedostomuoto", + "setHelpProblems": "Tarvitsetko apua?", + "setHelpProblems2": "tai {}", + "setHelpContactLink": "ota yhteyttä suoraan kehittäjään", + "setHelpAppInfo": "Sovelluksen tiedot", + "setHelpOtherPlatforms": "Muut alustat", + "setHelpDesktopApps": "Desktop-sovellukset", + "setHelpWebApp": "Web-sovellus", + "setHelpUpdates": "Päivitykset", + "setHelpTwitter": "Sovelluksen twitter", + "dropboxAppKey": "Dropbox-sovelluksen avain", + "dropboxFolder": "Sovelluskansio", + "dropboxFolderPlaceholder": "oletuskansio", + "dropboxLinkApp": "Sovelluskansio (Apps/KeeWeb)", + "dropboxLinkCustom": "Oma Dropbox-sovellus", + "gdriveSharedWithMe": "Jaettu kanssani", + "webdavSaveMethod": "Tallennustapa", + "webdavSavePut": "Korvaa kdbx-tiedosto PUT-pyynnöllä", + "launcherSave": "Tallenna salasanatietokanta", + "launcherFileFilter": "KeePass-tiedostot", + "authPopupRequired": "Ponnahdusikkunat estetään", + "authPopupRequiredBody": "Salli ponnahdusikkunat selaimessasi tai yritä uudelleen.", + "exportFileInfo": "Tiedoston tiedot", + "exportHtmlName": "Nimi", + "exportGenerator": "Ohjelmisto", + "importCsvTitle": "Tuo CSV:stä", + "importCsvRun": "Tuo", + "importNewFile": "Uusi tiedosto" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/fi/index.html b/keeweb/plugins/translations/fi/index.html new file mode 100644 index 0000000..e17bdba --- /dev/null +++ b/keeweb/plugins/translations/fi/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Suomi + + + + +

KeeWeb Language: Suomi

+ https://plugins.keeweb.info/translations/fi + + diff --git a/keeweb/plugins/translations/fi/manifest.json b/keeweb/plugins/translations/fi/manifest.json new file mode 100644 index 0000000..45cc8a0 --- /dev/null +++ b/keeweb/plugins/translations/fi/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.3.1", + "manifestVersion": "0.1.0", + "name": "language-finnish", + "description": "Finnish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=fi", + "resources": { + "loc": "ELCtzPZ8NL2RBVSU5bhbglMlWGTgSjBJNhsL08dmEp917d0fE0TDuE95OQTKLhu6mv1YRIcL0KYhU6r/79mxhhbrS+bObw9Daq8Wc7d5kH7GjK+jX38VMqr2RTI+JEmQS9872lekwEgzpPS3jhFboOef2Q5pJgMd4GJ65JLuHevF+yF2OJj3DeyzX2Su28Y0YIbtEc/qDzpPuJCix0VgMs/DhTHEJ2hdBpGlHnUoIP3fN/dRchmvTdawb0+YOXlTCNoKvEOrF7t9Tl9FJ+4IAbVEAIFi2iagcllYGb7TL1Wsmw4k70uob93V29RGB3FZU9jsMcJ3HWCckPHYSl8kEw==" + }, + "locale": { + "name": "fi", + "title": "Suomi", + "flag": "🇫🇮" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} diff --git a/keeweb/plugins/translations/fr-FR/fr-FR.json b/keeweb/plugins/translations/fr-FR/fr-FR.json new file mode 100644 index 0000000..628b9ae --- /dev/null +++ b/keeweb/plugins/translations/fr-FR/fr-FR.json @@ -0,0 +1,776 @@ +{ + "retToApp": "retour vers l'appli", + "name": "nom", + "icon": "icône", + "title": "titre", + "password": "mot de passe", + "user": "utilisateur", + "website": "site web", + "tags": "tags", + "notes": "notes", + "entry": "entrée", + "group": "groupe", + "noTitle": "aucun titre", + "or": "ou", + "history": "historique", + "template": "modèle", + "templates": "templates", + "notImplemented": "Non Implémenté", + "saveChanges": "Sauvegarder les modifications", + "discardChanges": "Annuler les modifications", + "advanced": "Avancé", + "shortcuts": "Raccourcis", + "help": "Aide", + "settings": "Paramètres", + "plugins": "Modules (plugins)", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "erreur", + "oneMinute": "une minute", + "minutes": "{} minutes", + "oneHour": "une heure", + "hours": "{} heures", + "oneDay": "un jour", + "days": "{} jours", + "oneWeek": "une semaine", + "oneMonth": "un mois", + "oneYear": "une année", + "cache": "cache", + "file": "fichier", + "device": "appareil", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Tout", + "menuColors": "Couleurs", + "menuTrash": "Corbeille", + "menuSetGeneral": "Général", + "menuSetBrowser": "Navigateur", + "menuSetAbout": "À propos", + "menuSetDevices": "Appareils", + "menuAlertNoTags": "Aucun tag", + "menuAlertNoTagsBody": "Vous pouvez ajouter de nouveaux tags en éditant les champs, dans la section Tags.", + "menuEmptyTrash": "Vider la Corbeille", + "menuEmptyTrashAlert": "Vider la Corbeille ?", + "menuEmptyTrashAlertBody": "Vous ne pourrez plus récupérer ces éléments", + "menuItemCollapsed": "Double-cliquez pour déplier", + "menuRestoreApp": "Ouvrir {}", + "menuQuitApp": "Quitter {}", + "sysMenuAboutKeeWeb": "A propos {}", + "sysMenuServices": "Services", + "sysMenuHide": "Cacher {}", + "sysMenuHideOthers": "Cacher autres", + "sysMenuUnhide": "Montrer tout", + "sysMenuQuit": "Quitter {}", + "sysMenuEdit": "Editer", + "sysMenuUndo": "Annuler", + "sysMenuRedo": "Répéter", + "sysMenuCut": "Couper", + "sysMenuCopy": "Copier", + "sysMenuPaste": "Coller", + "sysMenuSelectAll": "Tout sélectionner", + "sysMenuWindow": "Fenêtre", + "sysMenuMinimize": "Réduire", + "sysMenuClose": "Fermer fenêtre", + "alertYes": "Oui", + "alertNo": "Non", + "alertOk": "OK", + "alertCancel": "Annuler", + "alertSignIn": "Connexion", + "alertCopy": "Copier", + "alertClose": "Fermer", + "alertDoNotAsk": "Ne plus me le redemander", + "alertAllow": "Autoriser", + "alertDeny": "Refuser", + "appBeta": "ATTENTION: version beta, aperçu seulement", + "footerOpen": "Ouvrir/Nouveau", + "footerSyncError": "Erreur de synchronisation", + "footerTitleGen": "Générer", + "footerTitleLock": "Verrouiller", + "genLen": "Longueur", + "genNewPass": "Nouveau mot de passe", + "genPresetDefault": "réglages par défaut", + "genPresetDerived": "similaire à l'ancien mot de passe", + "genPresetPronounceable": "prononçable", + "genPresetMed": "longueur moyenne", + "genPresetLong": "long", + "genPresetPin4": "code à 4 chiffres", + "genPresetMac": "adresse MAC", + "genPresetHash128": "hash 128 bits", + "genPresetHash256": "hash 256 bits", + "genHidePass": "Masquer le mot de passe", + "genShowPass": "Afficher le mot de passe", + "grpTitle": "Groupe", + "grpSearch": "Activer la recherche dans les entrées de ce groupe", + "grpAutoType": "Activer l'auto-complétion", + "grpAutoTypeSeq": "Séquence d'auto-complétion", + "grpAutoTypeSeqDefault": "Utiliser la séquence d'auto-complétion par défaut", + "grpTrash": "Supprimer le groupe et toutes ses entrées", + "tagTitle": "Tag", + "tagTrash": "Supprimer le tag de toutes les entrées", + "tagRename": "Renommer", + "tagTrashQuestion": "Supprimer le tag de toutes les entrées ?", + "tagTrashQuestionBody": "Ce tag va être supprimé de toutes les entrées. Il n'y aura pas de moyen facile pour le remettre.", + "tagExists": "Ce tag existe déjà", + "tagExistsBody": "Un tag existe déjà avec ce nom. Merci de choisir un autre nom.", + "tagBadName": "Nom invalide", + "tagBadNameBody": "Les noms de Tag ne peuvent contenir les caractères {}. Veuillez les supprimer.", + "genPsTitle": "Préréglages du Générateur", + "genPsCreate": "Nouveau préréglage", + "genPsDelete": "Supprimer préréglage", + "genPsNew": "préréglage", + "genPsEnabled": "Afficher dans la liste des préréglages", + "genPsDefault": "Sélectionné par défaut", + "genPsDefaultLength": "Longueur par défaut", + "genPsUpper": "Lettres latines majuscules", + "genPsLower": "Lettres latines minuscules", + "genPsDigits": "Chiffres", + "genPsSpecial": "Caractères spéciaux", + "genPsBrackets": "Parenthèses", + "genPsHigh": "Caractères ASCII étendus", + "genPsAmbiguous": "Caractères ambigus", + "genPsInclude": "Caractères additionnels à inclure", + "genPsExample": "Exemple de mot de passe généré", + "genPsPattern": "Modèle", + "genPsPatternHelp": "Des modèles peuvent être utilisés pour spécifier des règles de sélection de caractères. 1-AA générera un mot de passe commençant par un chiffre, suivi d'un tiret et de 2 lettres. Vous pouvez utiliser ces symboles :", + "genPsAllRanges": "Tous les caractères", + "genPsIncluded": "Caractères additionnels ajoutés ci-dessus", + "keyChangeTitleRemote": "Clé Maître Modifiée", + "keyChangeMessageRemote": "La clé maître a été modifiée pour cette base de données. Merci de saisir une nouvelle clé.", + "keyChangeTitleExpired": "Clé Maître Expirée", + "keyChangeMessageExpired": "La clé maître pour cette base de donnée est expirée. Merci de saisir une nouvelle clé.", + "keyChangeRepeatPassword": "Mot de passe, encore une fois", + "keyEnter": "Entrée", + "keyEsc": "Esc", + "iconFavTitle": "Télécharger et utiliser le favicon du site web", + "iconSelCustom": "Sélectionner une icône personnalisée", + "listEmptyTitle": "Vide", + "listEmptyAdd": "ajouter avec le bouton {} au-dessus", + "listGroup": "Groupe", + "listNoWebsite": "aucun site web", + "listNoUser": "aucun utilisateur", + "listNoAttachments": "aucune pièce-jointe", + "listAddTemplateHeader": "Modèles", + "listAddTemplateBody1": "Les modèles (templates) vous permettent de créer des nouvelles entrées en un clic. Ajouter quelque chose à l'entrée du modèle et ensuite cliquer de nouveau sur {} pour utiliser ce modèle.", + "listAddTemplateBody2": "Vous pouvez toujours retrouver vos modèles dans le groupe {}.", + "searchAddNew": "Ajouter Nouveau", + "searchSort": "Trier", + "searchCreated": "Créé", + "searchUpdated": "Mis à jour", + "searchAttachments": "Pièce-jointes", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Ancien {} Nouveau", + "searchNO": "Nouveau {} Ancien", + "searchShiftClickOr": "maj-click ou", + "searchAdvTitle": "Afficher/masquer recherche avancée", + "searchSearchIn": "Rechercher dans", + "searchOther": "Autres champs", + "searchProtect": "Champs sécurisés", + "searchOptions": "Options", + "searchCase": "Respecte la casse", + "searchRegex": "RegEx", + "searchRank": "Auto", + "searchExact": "Exact", + "openOpen": "Ouvrir", + "openNew": "Nouveau", + "openNewFile": "Nouveau", + "openMore": "Plus", + "openDemo": "Démo", + "openGenerate": "Générer", + "openXml": "Importer XML", + "openCaps": "Majuscules activées", + "openClickToOpen": "Cliquer pour ouvrir un fichier", + "openKeyFile": "fichier clé", + "openKeyFileDropbox": "(depuis DropBox)", + "openDropHere": "déposez les fichiers ici", + "openFailedRead": "Échec lors de la lecture du fichier", + "openNothingFound": "Aucun résultat", + "openNothingFoundBody": "Nous n'avons trouvé aucun fichier convenable.", + "openSelectFile": "Sélectionnez un fichier", + "openSelectFileBody": "Sélectionnez un fichier que vous voudriez ouvrir", + "openPassFor": "Mot de passe pour", + "openRemoveLastQuestion": "Supprimer le fichier local ?", + "openRemoveLastQuestionBody": "Le fichier que vous voulez supprimer est sauvegardé dans l'appli. Le supprimer de façon définitive ?", + "openRemoveLastQuestionModBody": "Le fichier que vous voulez supprimer a des modifications locales. Le supprimer et annuler ces modifications ?", + "openLocalFile": "Fichier local", + "openLocalFileBody": "Vous allez ouvrir un fichier qui sera stocké dans l'application. Les modifications apportées ne seront pas sauvegardées vers le système de fichiers. Pour obtenir le fichier avec vos données, exportez-le via les paramètres.", + "openLocalFileDontShow": "Ne plus afficher", + "openWrongFile": "Fichier invalide", + "openWrongFileBody": "Ce format de fichier n'est pas supporté. Cette application fonctionne avec des fichiers de base de donnée KeePass (kdbx).", + "openKdbFileBody": "Vous essayez d'ouvrir un ancien fichier de base de donnée KeePass (KDB). Cette application supporte uniquement le nouveaux format (kdbx), merci d'utiliser KeePass 2 afin de convertir celui-ci.", + "openConfigHeader": "Paramètres {}", + "openUrl": "URL", + "openUrlDesc": "https://serveur/chemin/fichier.kdbx, ou seulement fichier.kdbx", + "openUser": "Nom d'utilisateur", + "openUserDesc": "Nom d'utilisateur du serveur WebDAV (si requis)", + "openUserPlaceholder": "aucun nom d'utilisateur", + "openPass": "Mot de passe", + "openPassDesc": "Mot de passe du serveur WebDAV (ce n'est pas votre mot de passe de fichier)", + "openPassPlaceholder": "aucun mot de passe", + "openConfigError": "Erreur: {}", + "openConfigErrorNotFound": "Aucun fichier trouvé", + "openError": "Erreur", + "openErrorDescription": "Une erreur est survenue à l'ouverture du fichier", + "openErrorDescriptionMaybeTouchIdChanged": "L'erreur ressemble à ce qu'y arrive habituellement quand la configuration de Touch ID a été changée. Par exemple, vous avez ajouté ou supprimé un doigt supplémentaire. Si c'est le cas, allez dans Paramètres, désactiver Touch ID et activer le de nouveau.", + "openErrorFileNotFound": "Fichier non trouvé", + "openListErrorBody": "Erreur au chargement de la liste des fichiers", + "openShowAllFiles": "Tous les fichiers", + "openFileNoCacheError": "Fichier non trouvé dans la mémoire cache. Cela peut arriver parce que le stockage du navigateur a été nettoyé. Pour ouvrir le fichier, supprimez-le de KeeWeb et ajoutez-le à nouveau.", + "openChalRespHeader": "Challenge-Réponse", + "openChalRespLoading": "Chargement de la liste des YubiKeys", + "openChalRespSelectYubiKey": "Sélectionnez une YubiKey que vous voudriez utiliser", + "openChalRespErrorEmpty": "Pas de clé YubiKey trouvée.", + "openChalRespErrorEmptyMac": "Première fois que vous utilisez cette fonctionnalité sur MacOS ? KeeWeb doit avoir été autorisé dans la section \"Surveillance de l’entrée\" des paramètres de sécurité.", + "detAttDownload": "Cliquez sur le bouton de pièce-jointe en pressant la touche Maj pour le télécharger ou", + "detAttDelToRemove": "Supprimer pour enlever", + "detAttSave": "Enregistrer sous", + "detEmpty": "Vos mots de passe seront affichés ici", + "detGroupRestore": "Pour restaurer ce groupe, veuillez le glisser-déposer dans un des groupes hors de la corbeille", + "detHistoryClickPoint": "Cliquer sur une entrée de l'historique pour voir son état", + "detHistoryReturn": "Retour vers l'entrée", + "detHistoryRevert": "Revenir à cet état", + "detHistoryDel": "Supprimer cet état", + "detHistoryEmpty": "vide", + "detHistoryModified": "modifié", + "detHistoryRec": "archive", + "detHistoryRecs": "archives", + "detHistoryVersion": "Version", + "detHistorySaved": "Sauvegardé", + "detHistoryNoTitle": "sans titre", + "detHistoryCurState": "état actuel", + "detHistoryCurUnsavedState": "état actuel non sauvegardé", + "detHistoryRevertAlert": "Revenir à cet état de l'historique ?", + "detHistoryRevertAlertBody": "L'état courant sera sauvegardé dans l'historique.", + "detHistoryDeleteAlert": "Supprimer cet état de l'historique ?", + "detHistoryDeleteAlertBody": "Vous ne pourrez plus le restaurer.", + "detHistoryDiscardChangesAlert": "Ne pas sauvegarder les modifications de cette entrée ?", + "detHistoryDiscardChangesAlertBody": "Les changements non sauvegardés seront définitivement perdus, il n'y a pas de retour en arrière.", + "detBackToList": "retour vers liste", + "detSetIconColor": "Changer de couleur", + "detSetIcon": "Changer d'icône", + "detDropAttachments": "Déposer une pièce-jointe ici", + "detDelEntry": "Supprimer", + "detDelEntryPerm": "Supprimer définitivement", + "detExpires": "Expire", + "detExpired": "expirée", + "detGroup": "Groupe", + "detCreated": "Créé le", + "detUpdated": "Mis à jour", + "detNetField": "Nouveau champ", + "detAttachments": "Pièces-jointes", + "detDelFromTrash": "Supprimer de la Corbeille ?", + "detDelFromTrashBody": "Vous ne pourrez plus le récupérer.", + "detDelFromTrashBodyHint": "Pour supprimer tous les éléments de la Corbeille, cliquez l’icône \"Vider la corbeille\" du menu Corbeille.", + "detDelToTrash": "Supprimer l'entrée ?", + "detDelToTrashBody": "L'entrée sera déplacée dans la corbeille.", + "detFieldCopied": "Copié", + "detFieldCopiedTime": "Copié pendant {} secondes", + "detCopyHint": "Vous pouvez copier la valeur du champ en cliquant sur ton titre", + "detMore": "plus", + "detClickToAddField": "cliquez pour ajouter un nouveau champ", + "detMenuAddNewField": "Ajouter nouveau champ", + "detMenuAddNewWebsite": "Ajouter un autre site", + "detMenuShowEmpty": "Montrer les champs vides", + "detMenuHideEmpty": "Cacher les champs vides", + "detMenuAddField": "Ajouter {}", + "detMenuCopyPassword": "Copier mot de passe", + "detMenuCopyUser": "Copier nom", + "detMenuCopyOtp": "Copier le code à usage unique", + "detSetupOtp": "Codes à usage unique", + "detClone": "Dupliquer", + "detCopyEntryToClipboard": "Copier tous les champs", + "detClonedName": "Copier", + "detAutoType": "Saisie auto", + "detAutoTypeSettings": "Paramètres saisie auto", + "detAutoTypeEnabled": "Activer la saisie automatique pour cette entrée", + "detAutoTypeSequence": "Frappes", + "detAutoTypeInput": "Entrée", + "detAutoTypeShortcutsDesc": "{} ou {} tant que l'appli est inactive", + "detAutoTypeObfuscation": "Mélanger touches réelles et aléatoire", + "detAutoTypeWindow": "Fenêtre", + "detAutoTypeInputWindow": "Titre de fenêtre", + "detSetupOtpAlert": "Scanner le QR code", + "detSetupOtpAlertBody": "Veuillez copier le QR code qui est affiché sur la page d'autorisation", + "detSetupOtpAlertBody1": "1. aller sur la page d'autorisation", + "detSetupOtpAlertBody2": "2. faire une capture d'écran du QR code avec {}", + "detSetupOtpAlertBody3": "3. collez-la ici avec {}", + "detSetupOtpAlertBody3Mobile": "3. Sélectionner ou scanner avec votre appareil photo en utilisant Sélectionner/Scan ci-dessous", + "detSetupOtpAlertBody4": "Si vous ne pouvez pas scanner le code, cliquer sur Entrer le code manuellement", + "detSetupOtpManualButton": "Entrer le code manuellement", + "detSetupOtpScanButton": "Sélectionner/Scan", + "detSetupOtpAlertBodyWith": "avec {}", + "detOtpImageError": "Erreur de lecture de l'image", + "detOtpImageErrorBody": "Désolé, le format de l'image ne peut pas être lu, merci de contacter les auteurs de l'application avec le détail de l'erreur.", + "detOtpImageReading": "Lecture du QR code...", + "detOtpQrError": "Erreur lecture du QR code", + "detOtpQrErrorBody": "Désolé, le QR code n'a pas pu être lu, essayez à nouveau ou contacter les auteurs de l'application avec le détail de l'erreur.", + "detOtpQrWrong": "QR code incorrect", + "detOtpQrWrongBody": "Votre code QR code a été scanné avec succès mais il ne contient pas d'information pour un code à usage unique.", + "detOtpField": "Code à usage unique", + "detOtpClickToTouch": "Cliquer pour générer", + "detOtpGenerating": "Création...", + "detOtpTouch": "Touchez votre {}", + "detLockField": "Verrouiller ce champ, ainsi son contenu ne sera pas visible ni ne pourra être cherché. Visualiser son contenu exigera de le cliquer explicitement.", + "detUnlockField": "Déverrouiller ce champ, rendant son contenu immédiatement visible et pouvant être cherché", + "detRevealField": "Révéler", + "detHideField": "Cacher", + "detAutoTypeField": "Saisie auto", + "detIssuesHideTooltip": "Cacher cet avertissement", + "detIssueWeakPassword": "Ce mot de passe est faible, nous vous recommandons de le changer", + "detIssuePoorPassword": "Ce mot de passe est très faible, nous vous recommandons très fort de le changer", + "detIssuePwnedPassword": "Ce mot de passe a été exposé à une faille selon {}, il est recommandé de le changer", + "detIssuePasswordCheckError": "Une erreur est survenue en vérifiant la force du mot de passe en ligne", + "detIssueOldPassword": "Ce mot de passe est vieux", + "detIssueCloseAlertHeader": "Cacher les problèmes de mots de passe", + "detIssueCloseAlertBody": "Il y a plusieurs façon de cacher ce message :", + "detIssueCloseAlertEntry": "Ne plus montrer pour cette entrée", + "detIssueCloseAlertSettings": "Modifier les paramètres globaux", + "autoTypeEntryFields": "Champs", + "autoTypeModifiers": "Touches modificatrices", + "autoTypeKeys": "Clés", + "autoTypeLink": "plus...", + "autoTypeError": "Erreur saisie auto", + "autoTypeErrorGeneric": "Il y a eu une erreur lors de la saisie automatique : {}", + "autoTypeErrorAccessibilityMacOS": "Nous avons essayé d'envoyer les frappes de caractères à cette application mais cela ne semble pas fonctionner parce qu'il manque des permissions. Cliquer ici pour en lire plus.", + "autoTypeErrorGlobal": "Pour utiliser un raccourci global, sélectionner l'application là où vous voulez saisir le mot de passe", + "autoTypeErrorNotInstalled": "{} n'est pas installé", + "autoTypeHeader": "Saisie auto : Selectionner", + "autoTypeMsgNoWindow": "Nous n'avons pas pu obtenir le titre de la fenêtre active, commencez à taper pour rechercher", + "autoTypeMsgMatchedByWindow": "Sélectionner un mot de passe pour {}", + "autoTypeNoMatches": "aucun", + "autoTypeSelectionHint": "Saisissez la séquence automatique", + "autoTypeSelectionHintAction": "Entrez seulement le mot de passe", + "autoTypeSelectionHintOpt": "Entrez seulement le compte", + "autoTypeSelectionHintShift": "Autres champs", + "autoTypeSelectionOtp": "code à usage unique", + "autoTypeUnlockMessage": "Déverrouiller pour saisir automatiquement", + "appSecWarn": "Non sécurisé !", + "appSecWarnBody1": "Vous avez chargé cette appli avec une connexion non sécurisée. Quelqu'un peut vous observer et voler vos mots de passe. Nous vous recommandons fortement d'arrêter cette connexion, à moins que vous ne compreniez exactement ce que vous faites.", + "appSecWarnBody2": "Oui, votre base est chiffrée mais personne ne peut garantir que l'application n'a pas été modifiée avant d'arriver à vous.", + "appSecWarnBtn": "Je comprends les risques, continuer", + "appUnsavedWarn": "Modifications non sauvegardées", + "appUnsavedWarnBody": "Vous avez des fichiers non sauvegardés, si vous fermez l'appli, les changements seront perdus.", + "appDontExitBtn": "Ne pas quitter", + "appCannotLockAutoInit": "L'appli ne peut pas être verrouillée car la sauvegarde automatique est désactivée.", + "appCannotLock": "Vous avez des modifications non sauvegardées qui seront perdus. Continuer ?", + "appAutoSave": "Sauver les modifications automatiquement", + "appSaveError": "Sauver l'erreur", + "appSaveErrorBody": "Échec sauvegarde auto du fichier", + "appSaveErrorBodyMul": "Échec sauvegarde auto des fichiers", + "appSaveErrorExitLoseChanges": "Afsluiten en alle aanpassingen kwijtraken", + "appSaveErrorExitLoseChangesBody": "Je kunt de app afsluiten en alle wijzigingen kwijtraken, of je kunt de bestandsinstellingen gebruiken om gegevens te exporteren", + "appSettingsError": "Erreur lancement appli", + "appSettingsErrorBody": "Il y a eu une erreur lors du chargement des paramètres. Merci de revérifier l'URL de l'application ou contacter votre administrateur.", + "appNotSupportedError": "Votre navigateur n'est pas compatible avec certaines fonctionnalités importantes que nous utilisons.", + "appTabWarn": "Trop d'onglets", + "appTabWarnBody": "KeeWeb ne peut être utilisé dans 2 onglets de navigateurs simultanément. Fermer cet onglet, s'il vous plait.", + "appRightsAlert": "Protéger l'appli KeeWeb", + "appRightsAlertBody1": "Votre application KeeWeb est accessible en écriture. Nous demandons les droits administrateurs pour le mettre en écriture uniquement pour les administrateurs.", + "appRightsAlertBody2": "Vous ne voulez pas donner les permissions ? Vous pouvez le faire vous-même à partir d'un terminal", + "appBrowserAuthComplete": "Authentification terminée, vous pouvez fermer cet onglet.", + "setGenTitle": "Paramètres", + "setGenUpdate": "Mettre à jour", + "setGenNewVersion": "Une nouvelle version a été téléchargée", + "setGenReleaseNotes": "Voir les notes de version", + "setGenReloadToUpdate": "Recharger pour mettre à jour", + "setGenUpdateManual": "Une nouvelle version est disponible. Elle vérifiera les mises à jour et les installera automatiquement, mais cette mise à jour automatique à partir de votre version n'est pas possible.", + "setGenDownloadUpdate": "Télécharger mise à jour", + "setGenUpdateAuto": "Télécharger et installer automatiquement", + "setGenUpdateCheck": "Vérifier mais ne pas installer", + "setGenNoUpdate": "Ne jamais vérifier les mises à jour", + "setGenUpdateChecking": "Vérification des mises à jour", + "setGenCheckUpdate": "Vérifier les mises à jour", + "setGenErrorChecking": "Erreur vérification des mises à jour", + "setGenLastCheckSuccess": "Dernière vérification réussie fut le {}", + "setGenLastCheckVer": "la dernière version était {}", + "setGenCheckedAt": "Vérifié le", + "setGenLatestVer": "vous utilisez la dernière version", + "setGenNewVer": "nouvelle version {} disponible", + "setGenDownloadingUpdate": "Téléchargement de la mise à jour...", + "setGenExtractingUpdate": "Décompression de la mise à jour...", + "setGenCheckErr": "Une erreur est intervenue durant le téléchargement de la mise à jour", + "setGenNeverChecked": "Ne jamais vérifier les mises à jour", + "setGenRestartToUpdate": "Redémarrer KeeWeb pour mettre à jour", + "setGenDownloadAndRestart": "Télécharger la mise à jour et redémarrer", + "setGenAppearance": "Apparence", + "setGenTheme": "Thème", + "setGenThemeDefault": "Défaut", + "setGenThemeDark": "Sombre", + "setGenThemeLight": "Clair", + "setGenThemeBlue": "Bleu", + "setGenThemeFb": "Bleu foncé", + "setGenThemeBl": "Bleu clair", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Marron foncé", + "setGenThemeLb": "Brun clair", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Terminal clair", + "setGenThemeHighContrast": "Contraste élevé", + "setGenThemeHc": "Contraste élevé", + "setGenThemeDc": "Contraste foncé", + "setGenThemeSol": "Solarisé", + "setGenThemeSd": "Solarized dark", + "setGenThemeSl": "Solarized light", + "setGenMoreThemes": "Plus de thèmes", + "setGenAutoSwitchTheme": "Basculer automatiquement entre les thèmes clairs et foncés lorsque possible", + "setGenLocale": "Langue", + "setGenLocOther": "d'autres langues sont disponibles en tant que modules", + "setGenFontSize": "Taille de police", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Large", + "setGenFontSizeLargest": "Très large", + "setGenTitlebarStyle": "Style de fenêtres (redémarrage requis)", + "setGenTitlebarStyleDefault": "Par défaut", + "setGenTitlebarStyleHidden": "Titre personnalisé", + "setGenTitlebarStyleHiddenInset": "Titre personnalisé, fenêtre déplaçable", + "setGenShowSubgroups": "Afficher les entrées de tous les sous groupes", + "setGenTableView": "Voir les entrées en liste", + "setGenColorfulIcons": "Icônes colorées dans la liste", + "setGenUseMarkdown": "Markdown dans les notes", + "setGenUseGroupIconForEntries": "Utilise automatiquement l'icône de groupe pour les nouvelles entrées", + "setGenDirectAutotype": "Si une seule entrée correspondante est trouvée, sélectionner celle-ci automatiquement pour l'autotype.", + "setGenFunction": "Opérations", + "setGenAutoSyncOnClose": "Sauvegarde et synchro automatique à la fermeture", + "setGenAutoSyncTimer": "Sauvegarde et synchro automatique régulièrement", + "setGenAutoSyncTimerOff": "Désactivé", + "setGenAutoSyncTimerInterval": "Toutes les {} minute(s)", + "setGenRememberKeyFiles": "Se souvenir des fichiers clé", + "setGenNoRememberKeyFiles": "Ne pas se souvenir", + "setGenRememberKeyFilesData": "Sauvegarder dans le stockage interne de l'appli", + "setGenRememberKeyFilesPath": "Se souvenir seulement des chemins des fichiers", + "setGenLockInactive": "si l'application est inactive", + "setGenNoAutoLock": "Ne pas verrouiller automatiquement", + "setGenLockMinutes": "Dans {} minutes", + "setGenLockHour": "Dans une heure", + "setGenLockHours": "Dans {} heures", + "setGenLockDay": "Dans 1 jour", + "setGenClearClip": "Vider le presse-papier après une copie", + "setGenNoClear": "Ne pas effacer", + "setGenClearSeconds": "Dans {} secondes", + "setGenClearMinute": "Dans une minute", + "setGenMinInstead": "Réduire l'application au lieu de fermer", + "setGenMinOnFieldCopy": "Réduire sur copie d'un champ", + "setGenLock": "Verrou Auto", + "setGenLockMinimize": "quand l'appli est en arrière-plan", + "setGenLockCopy": "sur copie de m.d.p.", + "setGenLockAutoType": "sur saisie auto", + "setGenLockOrSleep": "Quand l'ordinateur est verrouillé ou mis en sommeil", + "setGenStorage": "Stockage", + "setGenDisableOfflineStorage": "Ne pas mettre en cache des fichiers d'un stockage offline", + "setGenShortLivedStorageToken": "Utiliser des sessions de courte-durée avec les fournisseurs de stockage dans le cloud", + "setGenStorageLogout": "Déconnexion", + "setGenShowAdvanced": "Afficher les paramètres avancés", + "setGenDevTools": "Afficher les outils de développement", + "setGenTryBeta": "Essayer une fois la version beta ", + "setGenTryBetaWarning": "Fichiers non sauvegardés", + "setGenTryBetaWarningBody": "Sauvegarder tous les fichiers et re-cliquer ce bouton", + "setGenShowAppLogs": "Voir les logs", + "setGenReloadApp": "Recharger l'application", + "setGenFieldLabelDblClickAutoType": "Remplissage auto par double clic sur les noms de champ", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Ne pas utiliser Touch ID", + "setGenTouchIdMemory": "Dévérouiller avec Touch ID uniquement quand KeeWeb est lancé", + "setGenTouchIdFile": "Toujours utiliser Touch ID à la place du mot de passe", + "setGenTouchIdPass": "Exige le mot de passe après", + "setGenAudit": "Audit", + "setGenAuditPasswords": "Voir des avertissements sur la force du mot de passe", + "setGenAuditPasswordEntropy": "Vérifier la longueur et l'aléas du mot de passe", + "setGenExcludePinsFromAudit": "Ne jamais vérifier les codes PIN courts, comme 123456", + "setGenCheckPasswordsOnHIBP": "Vérifier les mots de passe en utilisant un service en ligne {}", + "setGenHelpHIBP": "KeeWeb peut vérifier si vos mots de passes ont été précédemment exposés à une faille de sécurité en utilisant un service en ligne. Votre mot de passe ne peut pas être récupéré à partir de données envoyées en ligne, cependant le nombre de mots de passes vérifiés peut être exposé. Plus d'informations sur votre sécurité en utilisant ce service peuvent être trouvées {}. Si cette option est activée, KeeWeb vérifiera automatiquement vos mots de passes là.", + "setGenHelpHIBPLink": "ici", + "setGenAuditPasswordAge": "Vieux mots de passe", + "setGenAuditPasswordAgeOff": "Ne pas afficher d'avertissements à propos des vieux mots de passe", + "setGenAuditPasswordAgeOneYear": "Afficher des avertissements pour les mots de passe plus vieux qu'un an", + "setGenAuditPasswordAgeYears": "Afficher des avertissement pour les mots de passe plus vieux que {} ans", + "setFilePath": "Chemin", + "setFileStorage": "Le fichier est ouvert de {}.", + "setFileIntl": "Le fichier est conservé dans le stockage interne de l'application", + "setFileLocalHint": "Voulez-vous travailler avec des fichiers locaux ?", + "setFileDownloadApp": "Télécharger l'application", + "setFileSave": "Enregistrer", + "setFileSaveTo": "Enregistrer sous...", + "setFileClose": "Fermer", + "setFileSync": "Sync", + "setFileSyncVerb": "Synchroniser", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Dernière synchro", + "setFileLastSyncUnknown": "inconnu", + "setFileSyncInProgress": "synchronisation en cours", + "setFileSyncError": "Sync erreur", + "setFilePass": "Mot de passe principal", + "setFileConfirmPass": "Confirmer le mot de passe Maître", + "setFilePassChange": "pour changer le mot de passe, merci de le saisir dans le champ Confirmation", + "setFilePassChanged": "Le mot de passe a été changé ; laissez le champ vide pour utiliser l'ancien mot de passe", + "setFilePassNotMatch": "les mots de passe ne correspondent pas, veuillez réessayer", + "setFileKeyFile": "Fichier clé", + "setFileSelKeyFile": "Sélectionner fichier clé", + "setFileNames": "Noms", + "setFileDefUser": "Utilisateur par défaut", + "setFileEnableTrash": "Activer corbeille", + "setFileHistMode": "Historique", + "setFileHistLimited": "Supprimer les anciens enregistrements automatiquement", + "setFileHistDisabled": "Ne pas sauvegarder l'historique", + "setFileHistUnlimited": "Garder les enregistrements de l'historique pour toujours", + "setFileHistLen": "Longueur de l'historique, conserve les derniers enregistrements", + "setFileHistSize": "Taille de l'historique, Mo par fichier", + "setFileBackups": "Sauvegardes", + "setFileBackupEnable": "Sauvegarder ce fichier", + "setFileBackupPath": "Chemin", + "setFileBackupTime": "Lancer sauvegardes ", + "setFileBackupNow": "Sauvegarder...", + "setFileBackupNowWorking": "En cours...", + "setFileBackupError": "Erreur sauvegarde", + "setFileBackupErrorDescription": "Erreur à l'écriture du fichier", + "setFileBackupErrorIsDir": "Chemin de sauvegarde invalide", + "setFileBackupErrorIsDirDescription": "Le chemin de sauvegarde semble pointer sur un répertoire. Merci de spécifier un fichier dans un répertoire à la place.", + "setFileBackupOnSave": "A chaque fois que je sauvegarde", + "setFileBackupDaily": "Quotidien", + "setFileBackupWeekly": "Chaque semaine", + "setFileBackupMonthly": "Chaque mois", + "setFileBackupManually": "Manuellement, pas de sauvegarde automatique", + "setFileRounds": "Cycles de chiffrement de la clé", + "setFileKdfParams": "Fonction de dérivation de clé", + "setFileKdfParamsIter": "Itérations", + "setFileKdfParamsMem": "Mémoire, Ko", + "setFileKdfParamsPar": "Parallèlisme", + "setFileKeyChangeForce": "Demander à changer la clé après (jours)", + "setFileUseKeyFile": "Utiliser un fichier clé", + "setFileUseGenKeyFile": "Utiliser le fichier clé généré", + "setFileUseOldKeyFile": "Utiliser l'ancien fichier clé", + "setFileGenKeyFile": "Générer un nouveau fichier clé", + "setFileDontUseKeyFile": "Ne pas utiliser de fichier clé", + "setFileEmptyPass": "Mot de passe vide", + "setFileEmptyPassBody": "Sauvegarder la base de données avec un mot de passe vide la laisse sans aucune protection. Voulez-vous vraiment faire cela ?", + "setFileSaveError": "Erreur sauvegarde", + "setFileSaveErrorBody": "Erreur sauvegarde dans le fichier", + "setFileAlreadyExists": "Existe déjà", + "setFileAlreadyExistsBody": "Le fichier {} existe déjà. L'écraser ?", + "setFileUnsaved": "Modif non sauvegardées", + "setFileUnsavedBody": "Il y a des modifications non sauvegardées dans ce fichier", + "setFileCloseNoSave": "Fermer et perdre les modifs", + "setFileDontClose": "Ne pas fermer", + "setFileFormatVersion": "Format de fichier", + "setFileExportRaw": "Exporter vos mots de passe", + "setFileExportRawBody": "Le fichier exporté contiendra vos mots de passe, il n'y seront plus cryptés. Voulez vous continuer ?", + "setFileDeviceIntro": "Les codes à usage unique de cette {} vont être affichés dans l'application.", + "setFileDeviceSettings": "Paramètres", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Ne pas utiliser une YubiKey", + "setFileRefreshYubiKeyList": "Rafraichir la liste", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Utiliser une YubiKey comme partie de la clé maitre est dangeureux, et vous risquez de perdre l'accès à vos mots de passe si quelque chose tourne mal. Avez vous réalisé une sauvegarde de votre fichier avant de modifier les paramètres ?", + "setFileYubiKeyErrorEmptyMac": "Il semble qu'il y a une YubiKey connectée, mais elle est invisible. KeeWeb doit avoir été autorisé dans la section \"Surveillance de l’entrée\" des paramètres de sécurité pour se connecter à la YubiKey.", + "setShTitle": "Raccourcis", + "setShShowAll": "montrer tout", + "setShColors": "montrer les champs en couleur", + "setShTrash": "aller à Corbeille", + "setShFind": "rechercher ou juste commencer à taper", + "setShClearSearch": "effacer recherche", + "setShCopyPass": "copier le mot de passe ou le champ sélectionné", + "setShCopyUser": "copier le nom", + "setShCopyUrl": "copier le site", + "setShAutoType": "saisie automatique pour cette entrée", + "setShPrev": "aller au précédent", + "setShNext": "aller au prochain", + "setShCreateEntry": "créer une entrée", + "setShOpen": "ouvrir/nouveau", + "setShSave": "sauver tous les fichiers", + "setShGen": "générer un mot de passe", + "setShSet": "paramètres", + "setShCopyPassGlobal": "copier le mot de passe", + "setShCopyOtp": "Copier l'OTP", + "setShAutoTypeGlobal": "saisie automatique", + "setShCopyPassOnly": "Copier mot de passe", + "setShRestoreApp": "Ouvrir {}", + "setShGlobal": "Ces raccourcis à l'échelle du système fonctionnent lorsque l'application s'exécute en arrière-plan. Vous pouvez cliquer dessus pour sélectionner votre propre raccourci.", + "setShLock": "verrouiller la base", + "setShEdit": "Appuyez sur une nouvelle combinaison de touches pour la définir comme raccourci.", + "setPlInstallTitle": "Installer de nouveaux modules", + "setPlInstallDesc": "Les modules (plugins) de KeeWeb ajoutent des fonctionnalités, thèmes et langues à KeeWeb. Les modules sont lancés avec les même privilèges que KeeWeb : ils peuvent accéder et gérer tous vos mots de passe. Ne jamais installer de modules auxquels vous ne faites pas confiance.", + "setPlInstallLabel": "URL du module", + "setPlInstallBtn": "Installer", + "setPlInstallBtnProgress": "Installation", + "setPlUninstallBtn": "Désintaller", + "setPlDisableBtn": "Désactiver", + "setPlEnableBtn": "Activer", + "setPlUpdateBtn": "Mettre à jour", + "setPlLocaleBtn": "Changer pour cette langue", + "setPlThemeBtn": "Changer pour ce thème", + "setPlJs": "code", + "setPlCss": "styles", + "setPlLoc": "langue", + "setPlCreatedBy": "Créé par {}", + "setPlLoadTime": "{} pour charger", + "setPlLastUpdate": "Dernière vérification des mises à jour", + "setPlLoadError": "erreur au chargement du module", + "setPlGalleryLoading": "Chargement des modules, patientez un instant", + "setPlGalleryLoadError": "erreur au chargement des modules", + "setPlInstallUrlTitle": "Ajouter un module à partir d'une URL", + "setPlInstallUrlDesc": "Si un module n'est pas dans le catalogue, vous pouvez l'installer manuellement à partir d'une URL.", + "setPlOfficial": "Module officiel KeeWeb", + "setPlSearch": "Rechercher des modules", + "setPlDevelop": "Vous souhaitez développer vos propres modules ?", + "setPlDevelopStart": "Commencez ici", + "setPlTranslate": "Ou vous pouvez {}", + "setPlTranslateLink": "traduire l'appli dans votre langue", + "setPlAutoUpdate": "Mise à jour automatique", + "setPlLoadGallery": "Charger le catalogue", + "setBrowserTitle": "Navigateur", + "setBrowserIntroDesktop": "KeeWeb peut entrer des mots de passe en utilisant la saisie automatique, cependant, une extension peut être un moyen plus pratique de le faire. KeeWeb prend en charge deux extensions de navigateur:", + "setBrowserIntroKeeWebConnect": "l'extension officielle KeeWeb est construite avec les fonctionnalités de KeeWeb, mais vous risquez de manquer certaines fonctionnalités avancées que l'on peut trouver dans l'autre extension.", + "setBrowserIntroKeePassXcBrowser": "cette extension a été développée pour KeePassXC, elle existe depuis un moment et est assez fiable. L'extension ne fait pas partie de KeeWeb et il peut y avoir des problèmes de compatibilité.", + "setBrowserIntroWeb": "Installez notre extension de navigateur pour remplir automatiquement les mots de passe de KeeWeb sur différentes pages. L'extension de navigateur se connectera à un onglet KeeWeb de votre navigateur pour récupérer les mots de passe. Cliquez ici pour télécharger l'extension:", + "setBrowserNotEnabled": "L'intégration du navigateur n'est pas activée, les extensions ne pourront pas se connecter à KeeWeb. Utilisez les cases à cocher ci-dessous pour l'activer:", + "setBrowserEnablePerBrowser": "Activer l'intégration dans le navigateur en cochant ci dessous:", + "setBrowserFocusIfLocked": "Ouvrir KeeWeb si le navigateur essaye de se connecter alors que aucun fichier n'est ouvert", + "setBrowserFocusIfEmpty": "Afficher la liste si aucune correspondance n'est trouvée avec l'URL", + "setBrowserOtherBrowsers": "Autres navigateurs", + "setBrowserExtensionFor": "pour {}", + "setBrowserExtensionNotSupported": "Non supporté", + "setBrowserExtensionHelp": "Comment installer ?", + "setBrowserExtensionInstall": "Installer l'application", + "setBrowserExtensionKPXCWarnHeader": "{} cessera de fonctionner", + "setBrowserExtensionKPXCWarnBody1": "Malheureusement, il n'est pas possible de connecter une extension à plusieurs applications. Si vous connectez l'extension à KeeWeb, nous remplacerons son association d'application, ce qui signifie que l'intégration avec {} cessera de fonctionner. Même si vous décochez cette case, l'association avec {} ne sera pas restaurée. Pour le faire fonctionner à nouveau, configurez l'intégration du navigateur dans les paramètres de {}.", + "setBrowserExtensionKPXCWarnBody2": "Configurer l'extension pour utiliser KeeWeb?", + "setBrowserSessions": "Sessions", + "setBrowserSessionsEmpty": "Aucune session connectée", + "setBrowserSessionsIntro": "Ces extensions sont connectées à KeeWeb", + "setBrowserSessionsActiveTooltip": "Session active", + "setBrowserSessionsActiveText": "Cette session est active. Elle peut échanger des données avec KeeWeb selon les permissions:", + "setBrowserSessionsInactiveTooltip": "session inactive", + "setBrowserSessionsInactiveText": "Cette session est inactive. L'extension est connectée à KeeWeb, cependant, elle n'a pas essayé d'échanger des données. Lorsque l'extension demande quelque chose, vous pourrez choisir ce que vous souhaitez partager.", + "setBrowserSessionsDeniedTooltip": "Accès interdit", + "setBrowserSessionsDeniedText": "Cette session est inactive. L'extension est connectée à KeeWeb mais vous avez refusé l'accès aux données.", + "setBrowserSessionsConnectedDate": "Connecté", + "setBrowserSessionsTerminate": "Clôturer la session", + "setBrowserSessionsAccessToFiles": "Autoriser l'accès aux fichiers", + "setBrowserSessionsNoFileAccess": "L'extension n'a accès à aucun fichier, elle ne pourra pas récupérer les mots de passe de KeeWeb.", + "setBrowserSessionsPasswordsRead": "Accès aux mot de passe", + "setBrowserSessionsPasswordsWritten": "Mots de passe enregistrés", + "setDevicesTitle": "Appareils", + "setDevicesEnableUsb": "Autoriser les interactions avec les appareils USB", + "setDevicesYubiKeyIntro": "Il est recommandé de lire {} avant d'utiliser une YubiKey.", + "setDevicesYubiKeyIntroLink": "ce document", + "setDevicesYubiKeyToolsDesc": "Pour permettre l'utilisation de YubiKey dans ce mode, vous devez installer un outil appelé {}.", + "setDevicesYubiKeyToolsDesc2": "{} pour avoir plus d'information sur cet outil.", + "setDevicesYubiKeyToolsDescLink": "Cliquez ici", + "setDevicesYubiKeyToolsStatusChecking": "Vérification si {} est installé", + "setDevicesYubiKeyToolsStatusOk": "{} est installé", + "setDevicesYubiKeyToolsStatusError": "{} n'est pas installé, ou ne fonctionne pas", + "setDevicesYubiKeyOtpTitle": "Codes à usage unique", + "setDevicesYubiKeyOtpDesc": "YubiKey peut être utilisé pour générer des codes à usage unique pour différents services.", + "setDevicesYubiKeyOtpShowIcon": "Afficher l'icône sur l'écran de démarrage", + "setDevicesYubiKeyOtpAutoOpen": "Charger automatiquement les codes à usage unique lorsqu'il y a des fichiers ouverts", + "setDevicesYubiKeyOtpMatchEntries": "Afficher les codes à usage unique qui correspondent dans les entrées", + "setDevicesYubiKeyChalRespTitle": "Challenge-Réponse", + "setDevicesYubiKeyChalRespDesc": "Il est aussi possible d'utiliser une YubiKey en mode Challenge-Réponse, afin qu'une partie de la clé privée utilisée pour crypter les fichiers provienne d'une YubiKey.", + "setDevicesYubiKeyChalRespShow": "Proposer l'option d'utiliser une YubiKey à l'ouverture des fichiers", + "setDevicesYubiKeyStuckWorkaround": "Reconnecter la YubiKey si elle semble bloquée au moment du chargement", + "setDevicesYubiKeyRememberChalResp": "Se souvenir du challenge-réponse le temps que l'application reste ouverte", + "setAboutTitle": "À propos", + "setAboutBuilt": "Cette appli est construite avec ces outils géniaux", + "setAboutLic": "Licence", + "setAboutLicComment": "Cette application et tous les composants qu'elle contient qui ne sont pas dans le domaine public sont sous licence MIT, sauf si autrement spécifié", + "setAboutFirst": "Ceci est une application open-source créée par {}", + "setAboutSecond": " et sous licence {}.", + "setAboutSource": "Le code source et les problèmes sont sur {}.", + "setHelpFormat": "Format de fichier", + "setHelpFormatBody": "Ceci est un portage de l'appli {} développée avec les technologies web. Il interprète les fichiers au format KeePass (kdbx). Vous pouvez créer de tels fichiers (bases de données de mots de passe) soit avec KeePass, soit avec cette appli. Le format de fichier est 100% compatible et devrait être compris par les 2 applications.", + "setHelpProblems": "Un problème ?", + "setHelpProblems1": "Si quelque chose ne va pas, merci de {}", + "setHelpProblems2": "ou {}", + "setHelpOpenIssue": "faire connaître le problème sur GitHub", + "setHelpContactLink": "contactez le développeur directement", + "setHelpAppInfo": "Informations", + "setHelpOtherPlatforms": "Autres plateformes", + "setHelpDesktopApps": "Applis Desktop", + "setHelpWebApp": "Appli web", + "setHelpUpdates": "Mises à jour", + "setHelpTwitter": "Twitter", + "dropboxSetupDesc": "Une configuration particulière est nécessaire pour utiliser Dropbox dans une application auto-hébergée. Merci de créer votre propre application Dropbox et d'inscrire sa clé ci-dessous.", + "dropboxAppKey": "Clé Dropbox", + "dropboxAppKeyDesc": "Copier la clé de votre appli Dropbox (Réglages développeur)", + "dropboxAppKeyHint": "Votre \"Dropbox App Key\"", + "dropboxAppSecret": "Votre \"Dropbox App Secret\"", + "dropboxAppSecretDesc": "Votre \"Dropbox App Secret\" peut être trouvée à côté de votre \"Dropbox App Key\".", + "dropboxFolder": "Dossier Appli", + "dropboxFolderDesc": "Si votre appli est liée à l'espace Dropbox entier (et non un dossier), définir le dossier avec vos fichiers Kdbx ici", + "dropboxFolderSettingsDesc": "Sélectionner un dossier dans votre Dropbox où les fichiers sont stockés (à la racine par défaut)", + "dropboxFolderPlaceholder": "dossier par défaut", + "dropboxLink": "Lier l'appli à", + "dropboxLinkApp": "Dossier de l'appli (Apps/KeeWeb)", + "dropboxLinkFull": "Tout Dropbox ou n'importe quel dossier", + "dropboxLinkCustom": "Votre appli Dropbox", + "gdriveSharedWithMe": "Partagé avec moi", + "gdriveSharedDrives": "Lecteurs partagés", + "gdriveTeamDrives": "Team drives", + "webdavSaveMethod": "Méthode de sauvegarde", + "webdavSaveMove": "Envoyer un fichier temporaire et le déplacer", + "webdavSavePut": "Écraser le fichier kdbx avec PUT", + "webdavNoLastModified": "L'entête HTTP \"Last-Modified\" est absent", + "webdavStatReload": "Toujours recharger le fichier au lieu de se fier à l'entête HTTP \"Last-Modified\"", + "launcherSave": "Sauvegarder base des mots de passe", + "launcherFileFilter": "Fichiers Keepass", + "authPopupRequired": "Les pop-up sont bloquées", + "authPopupRequiredBody": "Merci d'autoriser les pop-ups pour cette appli dans votre navigateur ou essayez à nouveau.", + "exportFileInfo": "Propriétés du fichier", + "exportHtmlName": "Nom", + "exportHtmlDate": "Date d'exportation", + "exportGenerator": "Logiciel", + "exportDescription": "Ce fichier est généré par {}.", + "importCsvTitle": "Import depuis un CSV", + "importCsvRun": "Importer", + "importIgnoreField": "Ignorer", + "importTo": "Les entrées seront importées dans", + "importNewFile": "Nouveau fichier", + "yubiKeyStuckError": "La YubiKey semble coincée, la réparation automatique est activable dans les paramètres de l'application.", + "yubiKeyNoKeyHeader": "Une YubiKey est requise", + "yubiKeyNoKeyBody": "Merci d'insérer votre YubiKey avec le numéro de série {}", + "yubiKeySlot": "port", + "yubiKeyTouchRequestedHeader": "Touchez votre YubiKey", + "yubiKeyTouchRequestedBody": "Merci de toucher votre YubiKey avec le numéro de série {}", + "yubiKeyDisabledErrorHeader": "L'USB est désactivé", + "yubiKeyDisabledErrorBody": "Yubikey est nécessaire pour ouvrir ce fichier, merci d'activer les appareils USB dans les paramètres", + "yubiKeyErrorWithCode": "Erreur Yubikey code {}.", + "bioOpenAuthPrompt": "ouvrir \"{}\"", + "extensionErrorNoOpenFiles": "Aucun fichier ouvert", + "extensionErrorUserRejected": "La requête a été refusée", + "extensionErrorNoMatches": "Aucune correspondance", + "extensionErrorAlertDisplayed": "Impossible de poser une question maintenant car une autre boîte de dialogue est affichée, veuillez réessayer", + "extensionConnectHeader": "Échange de données avec l'extension", + "extensionConnectIntro": "Une extension de navigateur qui a pour nom {} essaie d'échanger des données avec KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb ne vérifie pas que l'application connectée est ce qu'elle prétend être. N'approuvez la demande que si vous en connaissez l'origine.", + "extensionConnectFiles": "Lors de cette session, autoriser l'accès à:", + "extensionConnectAllOtherFiles": "Tous les autres fichiers", + "extensionConnectAllFiles": "Tous les fichiers", + "extensionConnectAskGet": "Demandez avant d'envoyer les mots de passe à l'extension:", + "extensionConnectAskGetMultiple": "s'il y a plus d'une correspondance", + "extensionConnectAskGetAlways": "Toujours", + "extensionConnectAskSave": "Demandez avant d'enregistrer de nouveaux mots de passe dans KeeWeb:", + "extensionConnectAskSaveAlways": "Toujours", + "extensionConnectAskSaveAuto": "quand ce n'est pas possible de sauvegarder automatiquement", + "extensionConnectSettingsAreForSession": "Les paramètres que vous sélectionnez ici ne sont valides que pour la session en cours. Vous pouvez afficher et gérer les sessions dans les paramètres de KeeWeb.", + "extensionUnlockMessage": "Déverrouiller pour connecter l'extension du navigateur", + "extensionNewGroupHeader": "Nouveau groupe", + "extensionNewGroupBody": "{} essaye de créer un nouveau groupe. Autoriser cela?", + "extensionNewGroupPath": "Dossier du groupe", + "extensionNewGroupFile": "Ce groupe sera créé dans:", + "extensionSaveEntryHeader": "Sauvegarder mot de passe", + "extensionSaveEntryBody": "{} essaye de sauvegarder un mot de passe. Autoriser cela?", + "extensionSaveEntryAuto": "Sauvegarder les autres mots de passe automatiquement lors de cette session", + "extensionSaveEntryNewGroup": "nouveau groupe", + "extensionSelectPasswordFor": "Sélectionner un mot de passe pour {}", + "selectEntryHeader": "Sélectionner une entrée", + "selectEntryEnterHint": "Utiliser la ligne sélectionnée", + "selectEntryTypingHint": "Ecrire pour filtrer", + "selectEntryContains": "Contient le texte", + "selectEntrySubdomains": "Sous-domaines", + "selectEntryFieldHeader": "Sélectionnez un champ", + "selectEntryFieldTouch": "Appuyez sur le bouton de votre appareil pour générer un code à usage unique." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/fr-FR/index.html b/keeweb/plugins/translations/fr-FR/index.html new file mode 100644 index 0000000..f1559ca --- /dev/null +++ b/keeweb/plugins/translations/fr-FR/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Français + + + + +

KeeWeb Language: Français

+ https://plugins.keeweb.info/translations/fr-FR + + diff --git a/keeweb/plugins/translations/fr-FR/manifest.json b/keeweb/plugins/translations/fr-FR/manifest.json new file mode 100644 index 0000000..6f63997 --- /dev/null +++ b/keeweb/plugins/translations/fr-FR/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.34.0", + "manifestVersion": "0.1.0", + "name": "language-french", + "description": "French language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=fr-FR", + "resources": { + "loc": "PqCrC7q3uJNYpvKSTJj1sXEj289kIn6tuoK003ldg01EWHohHk4FfH7B49Igm6cbxYa+hrKOaeud04ZRYVJGu+chJFuqiDuobARRF9uHu9aPhxg2YqK3BL4M2ZemO8JokTI0yeE/ICw9KEl6ccRamAcnER67r+oCucF4jzEBhZsUZE5s/Egnx8EEwQcCe3g3tNo9lrB+sd0MMt2C+mYXVje9BcbX93Nd7+CJAJAgiR2mlDuJZh91sfyhMcyNzD2i/hmFz+ck1gBOau5pSzHlYSX0zH/1FdQYMFhLFPTlt+F+g3Ced9DtFlAFBQw1UiVsNP4KfLfzcmDKfDdJuPi1OQ==" + }, + "locale": { + "name": "fr-FR", + "title": "Français", + "flag": "🇫🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/hu/hu.json b/keeweb/plugins/translations/hu/hu.json new file mode 100644 index 0000000..7a8f56b --- /dev/null +++ b/keeweb/plugins/translations/hu/hu.json @@ -0,0 +1,702 @@ +{ + "retToApp": "vissza az alkalmazáshoz", + "name": "név", + "icon": "ikon", + "title": "cím", + "password": "jelszó", + "user": "felhasználó", + "website": "weboldal", + "tags": "címkék", + "notes": "feljegyzések", + "entry": "bejegyzés", + "group": "csoport", + "noTitle": "nincs cím", + "or": "vagy", + "history": "előzmény", + "template": "sablon", + "templates": "sablonok", + "notImplemented": "Nincs megvalósítva", + "saveChanges": "Módosítások mentése", + "discardChanges": "Módosítások elvetése", + "advanced": "Haladó", + "shortcuts": "Gyorsbillentyűk", + "help": "Súgó", + "settings": "Beállítások", + "plugins": "Beépülők", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "hiba", + "oneMinute": "egy perc", + "minutes": "{} perc", + "oneHour": "egy óra", + "hours": "{} óra", + "oneDay": "egy nap", + "days": "{} nap", + "oneWeek": "egy hét", + "oneMonth": "egy hónap", + "oneYear": "egy év", + "cache": "gyorsítótár", + "file": "fájl", + "device": "Eszköz", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Összes bejegyzés", + "menuColors": "Színek", + "menuTrash": "Lomtár", + "menuSetGeneral": "Általános", + "menuSetAbout": "Névjegy", + "menuSetDevices": "Eszközök", + "menuAlertNoTags": "Nincs címke", + "menuAlertNoTagsBody": "Új címkéket a mezők szerkesztésekor adhat hozzá, a címkék részben.", + "menuEmptyTrash": "Lomtár ürítése", + "menuEmptyTrashAlert": "Kiüríti a lomtárat?", + "menuEmptyTrashAlertBody": "A lomtárból törölt elemek nem visszaállíthatók", + "menuItemCollapsed": "Kattintson kétszer a kinyitáshoz", + "menuRestoreApp": "{} indítása", + "menuQuitApp": "{} bezárása", + "sysMenuAboutKeeWeb": "A {}-ről", + "sysMenuServices": "Szolgáltatások", + "sysMenuHide": "{} elrejtése", + "sysMenuHideOthers": "A többi elrejtése", + "sysMenuUnhide": "Az összes megjelenítése", + "sysMenuQuit": "Kilépés a {}-ről", + "sysMenuEdit": "Szerkesztés", + "sysMenuUndo": "Visszavonás", + "sysMenuRedo": "Ismét", + "sysMenuCut": "Kivágás", + "sysMenuCopy": "Másolás", + "sysMenuPaste": "Beillesztés", + "sysMenuSelectAll": "Az összes kiválasztása", + "sysMenuWindow": "Ablak", + "sysMenuMinimize": "Minimalizálás", + "sysMenuClose": "Ablak bezárása", + "alertYes": "Igen", + "alertNo": "Nem", + "alertOk": "OK", + "alertCancel": "Mégsem", + "alertSignIn": "Belépés", + "alertCopy": "Másol", + "alertClose": "Becsuk", + "alertDoNotAsk": "Ne kérdezzen többé", + "appBeta": "FIGYELEM: béta verzió, csak tesztelésre", + "footerOpen": "Megnyit / Új", + "footerSyncError": "Szinkronizálási hiba", + "footerTitleGen": "Generál", + "footerTitleLock": "Zárol", + "genLen": "Hossz", + "genNewPass": "Új jelszó", + "genPresetDefault": "alapértelmezett", + "genPresetDerived": "régi jelszó alapján", + "genPresetPronounceable": "kiejthető", + "genPresetMed": "közepes hosszúságú", + "genPresetLong": "hosszú", + "genPresetPin4": "4 jegyű PIN", + "genPresetMac": "MAC-cím", + "genPresetHash128": "128 bites hash", + "genPresetHash256": "256 bites hash", + "genHidePass": "Jelszó elrejtése", + "genShowPass": "Jelszó mutatása", + "grpTitle": "Csoport", + "grpSearch": "Keresés engedélyezése a csoport bejegyzéseire", + "grpAutoType": "Automatikus gépelés", + "grpAutoTypeSeq": "Automatikus gépelés sorrend", + "grpAutoTypeSeqDefault": "Alapértelmezett automatikus gépelési sorrend", + "grpTrash": "Csoport törlése minden bejegyzéssel együtt", + "tagTitle": "Címke", + "tagTrash": "Címke eltávolítása minden bejegyzésből", + "tagRename": "Átnevezés", + "tagTrashQuestion": "Címke eltávolítása minden bejegyzésből?", + "tagTrashQuestionBody": "Ez a címke minden bejegyzésből el lesz távolítva. Ezután már nem lehet könnyen visszaállítani.", + "tagExists": "Címke már létezik", + "tagExistsBody": "Ilyen névvel már létezik címke. Kérem válasszon másik nevet.", + "tagBadName": "Rossz név", + "tagBadNameBody": "Címkenév nem tartalmazhat {} karaktereket. Kérem távolítsa el ezeket.", + "genPsTitle": "Generátor beállítások", + "genPsCreate": "Új beállítás", + "genPsDelete": "Beállítás törlése", + "genPsNew": "beállítás", + "genPsEnabled": "Mutassa a beállítások között", + "genPsDefault": "Alapértelmezett kiválasztás", + "genPsDefaultLength": "Alapértelmezett hossz", + "genPsUpper": "Nagybetűk", + "genPsLower": "Kisbetűk", + "genPsDigits": "Számok", + "genPsSpecial": "Speciális szimbólumok", + "genPsBrackets": "Zárójelek", + "genPsHigh": "Egyéb ASCII karakterek", + "genPsAmbiguous": "Kétértelmű szimbólumok", + "genPsInclude": "További felhasználandó szimbúlumok", + "genPsExample": "Példa a generált jelszóra", + "genPsPattern": "Minta", + "genPsPatternHelp": "A minták a karakterek kiválasztásához szolgáló egyedi szabályok megadásához használhatók. Az 1-AA például olyan jelszót fog generálni, mely egy jelszóval kezdődik, és egy kötőjel majd két betű követ. Ezek a szimbólumok használhatók:", + "genPsAllRanges": "Minden szimbólum", + "genPsIncluded": "További szimbólumok a fentieken túl", + "keyChangeTitleRemote": "Mesterkulcs megváltozott", + "keyChangeMessageRemote": "Ennek az adatbázisnak mesterkulcsa megváltozott. Adjon meg egy új kulcsot", + "keyChangeTitleExpired": "Mesterkulcs lejárt", + "keyChangeMessageExpired": "Ennek az adatbázisnak a mesterkulcsa lejárt. Adjon meg egy új kulcsot", + "keyChangeRepeatPassword": "Jelszó mégegyszer", + "keyEnter": "Enter", + "iconFavTitle": "Weboldal favicon-jának letöltése", + "iconSelCustom": "Válasszon ki egy egyéni ikont", + "listEmptyTitle": "Üres", + "listEmptyAdd": "hozzáadás a fenti {} gombbal", + "listGroup": "Csoport", + "listNoWebsite": "új weboldal", + "listNoUser": "nincs felhasználónév", + "listNoAttachments": "nincsenek csatolmányok", + "listAddTemplateHeader": "Sablonok", + "listAddTemplateBody1": "A sablonok segítségével, egyetlen kattintással létrehozhat bejegyzéseket. Adjon hozzá valamit a sablon bejegyzéshez és kattintson újra a {}-ra, a sablon használatához.", + "listAddTemplateBody2": "A sablonjait mindig meg fogja tudni találni a {} csoportban.", + "searchAddNew": "Új hozzáadása", + "searchSort": "Rendezés", + "searchCreated": "Létrehozva", + "searchUpdated": "Frissítve", + "searchAttachments": "Csatolmányok", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Régi {} Új", + "searchNO": "Új {} Régi", + "searchShiftClickOr": "shift-klikk vagy", + "searchAdvTitle": "Összetett keresés", + "searchSearchIn": "Keresés", + "searchOther": "Egyéb mezők", + "searchProtect": "Biztonságos mezők", + "searchOptions": "Opciók", + "searchCase": "Kis-nagybetű számít", + "searchRegex": "RegEx", + "searchRank": "Auto", + "searchExact": "Pontos", + "openOpen": "Megnyit", + "openNew": "Új", + "openNewFile": "Új", + "openMore": "Továbbiak", + "openDemo": "Demó", + "openGenerate": "Generálás", + "openXml": "XML importálás", + "openCaps": "Caps Lock be van kapcsolva", + "openClickToOpen": "Kattintson fájl megnyitásához", + "openKeyFile": "kulcsfájl", + "openKeyFileDropbox": "(dropbox-ból)", + "openDropHere": "húzzon ide fájlokat", + "openFailedRead": "Nem sikerült a fájlt beolvasni", + "openNothingFound": "Nincs találat", + "openNothingFoundBody": "Nem találtunk alkalmas fájlt.", + "openSelectFile": "Fájl kiválasztása", + "openSelectFileBody": "Válassza ki a fájlt, amit meg szeretne nyitni", + "openPassFor": "Jelszó a következőhöz:", + "openRemoveLastQuestion": "Helyi fájl törlése?", + "openRemoveLastQuestionBody": "A törlendő fájl csak az Alkalmazásban van tárolva. Véglegesen töröljem?", + "openRemoveLastQuestionModBody": "A törlendő fájl helyi módosításokat tartalmaz. Töröljem és vessem el ezeket a módosításokat?", + "openLocalFile": "Helyi fájl", + "openLocalFileBody": "Egy olyan fájlt fog megnyitni, amely az alkalmazáson belül lesz tárolva. Az ön által végzett módosítások nem lesznek visszamentve a fájlrendszerre. Az adatait tartalmazó fájl megszerzéséhez, exportálja azt a beállításokból.", + "openLocalFileDontShow": "Ne mutassa újra", + "openWrongFile": "Rossz fájl", + "openWrongFileBody": "A fájlformátum nem támogatott. Az alkalmazás csak KeePass adatbázis formátumú fájlokkal (kdbx) működik.", + "openKdbFileBody": "Régi formátumú fájl (KDB) megnyitására készül. Ez az alkalmazás csak az új formátumot (kdbx) támogatja, használja a KeePass v2-t a konvertáláshoz.", + "openConfigHeader": "{} Beállítások", + "openUrl": "URL", + "openUrlDesc": "https://szerver/elérési_út/fájl.kdbx, vagy csak fájl.kdbx", + "openUser": "Felhasználó", + "openUserDesc": "WebDAV kiszolgáló felhasználónév (ha szükséges)", + "openUserPlaceholder": "nincs felhasználónév", + "openPass": "Jelszó", + "openPassDesc": "WebDAV kiszolgáló jelszó (ez nem a fájl jelszava)", + "openPassPlaceholder": "nincs jelszó", + "openConfigError": "Hiba: {}", + "openConfigErrorNotFound": "Fájl nem található", + "openError": "Hiba", + "openErrorDescription": "Hiba történt a fájl megnyitása során", + "openErrorDescriptionMaybeTouchIdChanged": "A hiba hasonlónak tűnik ahhoz, – ami általában akkor szokott történni, amikor a Touch ID beállításokat megváltoztatják. Például ha ön rögzített, vagy eltávolított egy hozzáadott ujjmintát. Ha ez a helyzet, akkor a beállításokban, tiltsa le és újra engedélyezze a Touch ID-t.", + "openErrorFileNotFound": "Fájl nem található", + "openListErrorBody": "Hiba történt a fájl lista betöltése során", + "openShowAllFiles": "Minden fájl megjelenítése", + "openFileNoCacheError": "A fájl nem található meg a gyorsítótárban. Ez azért fordulhat elő, mert a böngésző gyorsítótára ki lett tisztítva. A fájl megnyitásához, távolítsa el azt a KeeWeb-ből, majd adja hozzá újra.", + "openChalRespHeader": "Kihívás-válasz", + "openChalRespLoading": "YubiKey lista betöltése", + "openChalRespSelectYubiKey": "Válaszd ki a használni kívánt YubiKey-t", + "openChalRespErrorEmpty": "Nem találtam YubiKey-t.", + "openChalRespErrorEmptyMac": "Először használja ezt a lehetőséget MacOS-en? A KeeWeb-et hozzá kell adni az Apple menü / rendszerbeállítások / biztonság és adatvédelem lehetőség, adatvédelem fülén, a bemenet figyeléséhez.", + "detAttDownload": "Shift-klikk a csatolmány gombon annak letöltéséhez, vagy", + "detAttDelToRemove": "Törlés vagy eltávolítás", + "detAttSave": "Mentés mint...", + "detEmpty": "A jelszavai itt fognak megjelenni", + "detGroupRestore": "A csoport visszaállításához húzza azt bármelyik lomtáron kívüli csoportba.", + "detHistoryClickPoint": "Kattintson a bejegyzés történetének idővonalán az állapot megtekintéséhez", + "detHistoryReturn": "vissza a bejegyzéshez", + "detHistoryRevert": "Visszaállítás erre az állapotra", + "detHistoryDel": "Állapot törlése", + "detHistoryEmpty": "üres", + "detHistoryModified": "módosított", + "detHistoryRec": "rekord", + "detHistoryRecs": "rekord", + "detHistoryVersion": "Verzió", + "detHistorySaved": "Mentve", + "detHistoryNoTitle": "nincs cím", + "detHistoryCurState": "jelenlegi állapot", + "detHistoryCurUnsavedState": "jelenlegi nem mentett állapot", + "detHistoryRevertAlert": "Visszaállítja ezt a történeti előzmény-állapotot?", + "detHistoryRevertAlertBody": "A mostani állapot, szintén el lesz mentve a történeti előzmények közé.", + "detHistoryDeleteAlert": "Törölni akarja ezt a történeti előzmény-állapotot?", + "detHistoryDeleteAlertBody": "Nem fogja tudni visszaállítani.", + "detHistoryDiscardChangesAlert": "Elveti a bejegyzésben tett módosításokat?", + "detHistoryDiscardChangesAlertBody": "A nem mentett módosítások el fognak veszni, nem lesz visszaút.", + "detBackToList": "vissza a listához", + "detSetIconColor": "Színcsere", + "detSetIcon": "Ikoncsere", + "detDropAttachments": "húzza ide a csatolmányokat", + "detDelEntry": "Törlés", + "detDelEntryPerm": "Végleges törlés", + "detExpires": "Lejár", + "detExpired": "lejárt", + "detGroup": "Csoport", + "detCreated": "Létrehozva", + "detUpdated": "Frissítve", + "detNetField": "Mező", + "detAttachments": "Csatolmányok", + "detDelFromTrash": "Törlés a lomtárból?", + "detDelFromTrashBody": "Nem tudja később visszaállítani.", + "detDelFromTrashBodyHint": "A lomtár összes elemének gyors törléséhez kattintson az ürítés ikonra a Lomtár menüjében.", + "detDelToTrash": "Töröljem a bejegyzést?", + "detDelToTrashBody": "A bejegyzés átkerül a lomtár mappába.", + "detFieldCopied": "Másolva", + "detFieldCopiedTime": "Másolva {} másodpercre", + "detCopyHint": "A mező értékét kimásolhatja a címére történő kattintással", + "detMore": "továbbiak", + "detClickToAddField": "kattintson új mező hozzáadásához", + "detMenuAddNewField": "Új mező hozzáadása", + "detMenuShowEmpty": "Mutassa az üres mezőket", + "detMenuHideEmpty": "Rejtse el az üres mezőket", + "detMenuAddField": "Hozzáadás {}", + "detMenuCopyPassword": "Jelszó másolása", + "detMenuCopyUser": "Felhasználónév másolása", + "detMenuCopyOtp": "Egyszerhasználatos kód másolása", + "detSetupOtp": "Egyszeri kódok", + "detClone": "Másolat készítése", + "detCopyEntryToClipboard": "Minden mező másolása", + "detClonedName": "Másol", + "detAutoType": "Automatikus gépelés", + "detAutoTypeSettings": "Automatikus gépelés beállítása", + "detAutoTypeEnabled": "Automatikus gépelés engedélyezése erre a bejegyzésre", + "detAutoTypeSequence": "Billentyűkódok", + "detAutoTypeInput": "Bemenet", + "detAutoTypeShortcutsDesc": "{} vagy {} amíg az alkalmazás inaktív", + "detAutoTypeObfuscation": "Valódi billentyűkódok keverése véletlenszerűekkel", + "detAutoTypeWindow": "Ablak", + "detAutoTypeInputWindow": "Ablakcím", + "detSetupOtpAlert": "QR-kód beolvasása", + "detSetupOtpAlertBody": "Kérem másolja ide a bejelentkező oldalon megjelenő QR-kódot.", + "detSetupOtpAlertBody1": "1. menjen a bejelentkező oldalra", + "detSetupOtpAlertBody2": "2. készítsen egy képernyőképet a QR-kódról {}", + "detSetupOtpAlertBody3": "illessze be ide {}", + "detSetupOtpAlertBody3Mobile": "3. válassza ki vagy olvassa be az alábbi Kiválasztás/Beolvasás gombra történő kattintással", + "detSetupOtpAlertBody4": "Amennyiben nem tudja beolvasni a kódot, kattintson a Kód manuális bevitelére", + "detSetupOtpManualButton": "Kód manuális bevitele", + "detSetupOtpScanButton": "Kiválasztás/Beolvasás", + "detSetupOtpAlertBodyWith": "{}-val/vel", + "detOtpImageError": "Hiba a kép olvasása során", + "detOtpImageErrorBody": "Sajnálom, nem tudtam olvasni a képformátumot, kérem a hiba részleteinek megadásával vegye fel a kapcsolatot az alkalmazás szerzőivel.", + "detOtpImageReading": "QR-kód olvasása...", + "detOtpQrError": "QR-kód beolvasási hiba", + "detOtpQrErrorBody": "Sajnálom, nem tudtam olvasni a QR-kódot, kérem próbálja újra, vagy a hiba részleteinek megadásával vegye fel a kapcsolatot az alkalmazás szerzőivel.", + "detOtpQrWrong": "Rossz QR-kód", + "detOtpQrWrongBody": "A QR-kódja sikeresen be lett olvasva, de nem tartalmaz egyszeri kód adatot.", + "detOtpField": "Egyszerhasználatos kód", + "detOtpClickToTouch": "Generáláshoz kattintson", + "detOtpGenerating": "Generálás...", + "detOtpTouch": "Érintse meg a {}-t", + "detLockField": "Zárolja ezt a mezőt, tehát a tartalma nem kereshető és nem látható. A tartalom megjelenítése kizárólag rákattintással lehetséges.", + "detUnlockField": "Megszünteti a zárolást, tartalmát azonnal kereshetővé és láthatóvá teszi", + "detRevealField": "Felfed", + "detHideField": "Elrejt", + "detAutoTypeField": "Automatikus gépelés", + "detIssuesHideTooltip": "Figyelmeztetése elrejtése", + "detIssueWeakPassword": "A jelszó gyenge, javasolt a cseréje.", + "detIssuePoorPassword": "A jelszó nagyon gyenge, erősen javasolt a cseréje.", + "detIssuePwnedPassword": "Ez a jelszó a {} szerint adatszivárgásban érintett, javasolt a cseréje.", + "detIssuePasswordCheckError": "Hiba történt a jelszó erősségének online ellenőrzésekor.", + "detIssueOldPassword": "A jelszó régi.", + "detIssueCloseAlertHeader": "Jelszóproblémák elrejtése", + "detIssueCloseAlertBody": "Különböző módokon lehet ezt a figyelmeztetést elrejteni:", + "detIssueCloseAlertEntry": "Ne mutassa erre a bejegyzésre", + "detIssueCloseAlertSettings": "Globális beállítások szerkesztése", + "autoTypeEntryFields": "Beviteli mezők", + "autoTypeModifiers": "Módosító kulcsok", + "autoTypeKeys": "Kulcsok", + "autoTypeLink": "továbbiak...", + "autoTypeError": "Automatikus gépelés hiba", + "autoTypeErrorGeneric": "Hiba történt az automatikus gépelés során: {}", + "autoTypeErrorAccessibilityMacOS": "Megpróbáltunk billentyűleütéseket küldeni az alkalmazásnak, de úgy tűnik, hogy nem működik. Ez lehet, hogy hiányzó engedélyek miatt történik. Kattintson ide, hogy többet tudjon meg erről:", + "autoTypeErrorGlobal": "Egy rendszerszintű parancsikon használatához fókuszálja az alkalmazást oda, ahova a jelszót be kívánja gépelni", + "autoTypeErrorNotInstalled": "{} nincs telepítve", + "autoTypeHeader": "Automatikus gépelés: Kiválasztás", + "autoTypeMsgNoWindow": "Nem tudtam beolvasni az aktív ablak címét, kezdjen el gépelni a kereséshez", + "autoTypeMsgMatchedByWindow": "Válassza ki a jelszót ehhez: {}", + "autoTypeNoMatches": "nincs találat", + "autoTypeSelectionHint": "Írja be az automatikus gépelési sorrendet", + "autoTypeSelectionHintAction": "Csak a jelszót írja be", + "autoTypeSelectionHintOpt": "Csak a felhasználói nevet írja be", + "autoTypeSelectionHintShift": "Egyéb mezők", + "autoTypeSelectionOtp": "Egyszeri kód", + "appSecWarn": "Nem biztonságos!", + "appSecWarnBody1": "Ezt az alkalmazást nem biztonságos kapcsolaton keresztül töltötte be. Valaki megfigyelheti és ellophatja a jelszavait. Erősen javasoljuk, hogy csak akkor folytassa, ha pontosan tudja, hogy mit csinál.", + "appSecWarnBody2": "Igen, az adatbázisa titkosított, de senki nem garantálhatja azt, hogy az alkalmazás nem lett módosítva letöltés közben.", + "appSecWarnBtn": "Megértettem a kockázatokat, folytasd", + "appUnsavedWarn": "Nem mentett módosítások!", + "appUnsavedWarnBody": "Nem mentett fájljai vannak, ha bezárja az alkalmazást a módosítások elvesznek.", + "appDontExitBtn": "Ne lépjen ki", + "appCannotLockAutoInit": "Az alkalmazás nem zárolható, mert az automatikus mentés le van tiltva.", + "appCannotLock": "Nem mentett módosításai vannak, melyek elvesznek. Folytassam?", + "appAutoSave": "Módosítások automatikus mentése", + "appSaveError": "Mentési hiba", + "appSaveErrorBody": "Fájl automatikus mentése sikertelen", + "appSaveErrorBodyMul": "Fájlok automatikus mentése sikertelen:", + "appSaveErrorExitLoseChanges": "Kilépés, minden változtatás elvesztésével", + "appSaveErrorExitLoseChangesBody": "Ön vagy kilép az alkalmazásból, – így minden változtatás elveszik, vagy a fájl beállításokban exportálja az adatokat", + "appSettingsError": "Hiba az alkalmazás betöltése során", + "appSettingsErrorBody": "Hiba történt az alkalmazás beállításainak betöltése közben. Kérem még egyszer ellenőrizze az alkalmazás URL-jét, vagy vegye fel a kapcsolatot a rendszergazdával.", + "appNotSupportedError": "A böngészője nem támogat némely fontos sajátosságokat amiket az alkalmazás használ.", + "appTabWarn": "Túl sok lap", + "appTabWarnBody": "A KeeWebet nem lehet egyszerre két böngészőlapon használni, kérem zárja ezt be.", + "appRightsAlert": "KeeWeb alkalmazás zárolása", + "appRightsAlertBody1": "A KeeWeb alkalmazás jelenleg nem védett a jogosulatlan változtatásoktól. Kérjük önt, hogy az alkalmazás kizárólag adminisztrátorok számára legyen írható.", + "appRightsAlertBody2": "Nem szeretne illetékteleneknek jogosultságot adni? Beállíthatja a Terminálból", + "appBrowserAuthComplete": "Azonosítás kész, most már bezárhatja ezt a lapot.", + "setGenTitle": "Általános beállítások", + "setGenUpdate": "Frissítés", + "setGenNewVersion": "Új alkalmazás verzió jelent meg és került letöltésre", + "setGenReleaseNotes": "Kiadási megjegyzések", + "setGenReloadToUpdate": "Töltse újra a frissítéshez", + "setGenUpdateManual": "Új verzió jelent meg. Automatikusan ellenőrizni és telepíteni fogja a frissítéseket, de az automatikus frissítés az Ön verziójáról nem lehetséges.", + "setGenDownloadUpdate": "Frissítés letöltése", + "setGenUpdateAuto": "Letöltés és frissítés automatikusan", + "setGenUpdateCheck": "Ellenőrizze, de ne telepítse", + "setGenNoUpdate": "Soha ne ellenőrizze a frissítéseket", + "setGenUpdateChecking": "Frissítések keresése", + "setGenCheckUpdate": "Frissítések keresése", + "setGenErrorChecking": "Hiba a frissítések ellenőrzése során", + "setGenLastCheckSuccess": "Utolsó sikeres ellenőrzés: {}", + "setGenLastCheckVer": "az utolsó verzió {} volt", + "setGenCheckedAt": "Ellenőrizve", + "setGenLatestVer": "a legfrissebb verziót használja", + "setGenNewVer": "új verzió {} áll rendelkezésre", + "setGenDownloadingUpdate": "Frissítés letöltése...", + "setGenExtractingUpdate": "Frissítés kibontása...", + "setGenCheckErr": "Hiba történt az új verzió letöltése során", + "setGenNeverChecked": "Soha nem keresett még frissítést", + "setGenRestartToUpdate": "Indítsa újra a KeeWebet a frissítéshez", + "setGenDownloadAndRestart": "Frissítés letöltése és újraindítás", + "setGenAppearance": "Megjelenés", + "setGenTheme": "Téma", + "setGenThemeDefault": "Alapértelmezett", + "setGenThemeDark": "Sötét", + "setGenThemeLight": "Világos", + "setGenThemeBlue": "Sima kék", + "setGenThemeFb": "Sötétkék", + "setGenThemeBl": "Világoskék", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Sötét barna", + "setGenThemeLb": "Világosbarna", + "setGenThemeTerminal": "Terminál", + "setGenThemeTe": "Terminál", + "setGenThemeLt": "Terminál világos", + "setGenThemeHighContrast": "Nagykontrasztú", + "setGenThemeHc": "Nagykontrasztú", + "setGenThemeDc": "Sötét kontrasztos", + "setGenThemeSol": "Égetett", + "setGenThemeSd": "Beégetett sötét", + "setGenThemeSl": "Beégetett világos", + "setGenMoreThemes": "További témák", + "setGenAutoSwitchTheme": "Automatikus váltás a világos és sötét téma között, amennyiben lehetséges", + "setGenLocale": "Nyelv", + "setGenLocOther": "további nyelvek beépülőként érhetők el", + "setGenFontSize": "Betűméret", + "setGenFontSizeNormal": "Normál", + "setGenFontSizeLarge": "Nagy", + "setGenFontSizeLargest": "Legnagyobb", + "setGenTitlebarStyle": "Ablakstílus (újraindítás szükséges)", + "setGenTitlebarStyleDefault": "Alapértelmezett", + "setGenTitlebarStyleHidden": "Egyedi cím", + "setGenTitlebarStyleHiddenInset": "Egyedi cím, megfogható ablak", + "setGenShowSubgroups": "Minden alcsoport bejegyzéseinek megjelenítése", + "setGenTableView": "Bejegyzések listája táblázatban", + "setGenColorfulIcons": "Színes egyedi ikonok a listában", + "setGenUseMarkdown": "Markdown jelölőnyelv használata a feljegyzésekben", + "setGenUseGroupIconForEntries": "Csoportikonok alkalmazása új bejegyzésekhez", + "setGenDirectAutotype": "Ha csak egyetlen egyező bejegyzés található, automatikusan válassza ki azt az egyet az automatikus gépeléshez.", + "setGenFunction": "Működés", + "setGenAutoSyncOnClose": "Automatikus mentés és szinkronizálás bezáráskor", + "setGenAutoSyncTimer": "Automatikus mentés és szinkronizálás időszakosan", + "setGenAutoSyncTimerOff": "Letiltva", + "setGenAutoSyncTimerInterval": "Minden {}. percben", + "setGenRememberKeyFiles": "Kulcs fájlok megjegyzése", + "setGenNoRememberKeyFiles": "Ne jegyezze meg", + "setGenRememberKeyFilesData": "Tárolja az alkalmazás belső tárolójában", + "setGenRememberKeyFilesPath": "Csak a kulcsfájlok útvonalát jegyezze meg", + "setGenLockInactive": "Amikor az alkalmazás inaktív", + "setGenNoAutoLock": "Ne zárolja automatikusan", + "setGenLockMinutes": "{} percen belül", + "setGenLockHour": "Egy órán belül", + "setGenLockHours": "{} órán belül", + "setGenLockDay": "Egy napon belül", + "setGenClearClip": "Másolás után a vágólap törlése", + "setGenNoClear": "Ne törölje", + "setGenClearSeconds": "{} másodpercen belül", + "setGenClearMinute": "Egy percen belül", + "setGenMinInstead": "Az alkalmazás minimalizálása bezárás helyett", + "setGenMinOnFieldCopy": "Mező másolásakor minimalizálás", + "setGenLock": "Automatikus zárolás", + "setGenLockMinimize": "Amikor az alkalmazás kisméretű", + "setGenLockCopy": "Automatikus zárolás jelszó másolásnál", + "setGenLockAutoType": "Automatikus gépelés esetén", + "setGenLockOrSleep": "Amikor a számítógép zárolt, vagy alvó állapotban van", + "setGenStorage": "Tároló", + "setGenDisableOfflineStorage": "Ne gyorsítótárazza a fájlokat az offline tárolóra", + "setGenShortLivedStorageToken": "Használjon rövid-életű munkameneteket a felhő-tárhely szolgáltatókkal", + "setGenStorageLogout": "Kijelentkezés", + "setGenShowAdvanced": "Haladó beállítások megjelenítése", + "setGenDevTools": "Fejlesztőeszközök megjelenítése", + "setGenTryBeta": "Béta verzió kipróbálása újraindításig", + "setGenTryBetaWarning": "Nem mentett fájlok", + "setGenTryBetaWarningBody": "Mentsen minden fájlt, és kattintson erre a gombra ismét", + "setGenShowAppLogs": "Alkalmazás napló megjelenítése", + "setGenReloadApp": "Az alkalmazás újratöltése", + "setGenFieldLabelDblClickAutoType": "Automatikus gépelés, mező feliratok dupla-kattintására", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Ne használjon Touch ID-t", + "setGenTouchIdMemory": "Feloldás Touch ID-vel, csak amikor a KeeWeb éppen fut", + "setGenTouchIdFile": "Mindig használjon Touch ID-t a mesterjelszó helyett", + "setGenTouchIdPass": "A mesterjelszó megkövetelése adott idő után", + "setGenAudit": "Ellenőrzés", + "setGenAuditPasswords": "Jelszó erősségével kapcsolatos figyelmeztetések", + "setGenAuditPasswordEntropy": "Jelszó hossz és véletlenszerűség ellenőrzése", + "setGenExcludePinsFromAudit": "Soha ne ellenőrizze a rövid numerikus PIN kódokat (pl. 123456)", + "setGenCheckPasswordsOnHIBP": "Jelszavak ellenőrzése egy online szolgáltatással {}", + "setGenHelpHIBP": "A KeeWeb egy online szolgáltatás segítségével ellenőrizni tudja, hogy a jelszavai korábban érintettek voltak -e, egy-egy adatvédelmi incidens során. A jelszava nem kinyerhető az online adatküldés során, azonban a jelszavainak száma, amelyek ilyen módon kerülnek ellenőrzésre felfedhető. Többet a személyes adatbiztonságáról, amikor használja ezt a szolgáltatást, itt talál – {}. Ha ez az opció engedélyezve van, a KeeWeb automatikusan ellenőrzi fogja a jelszavait az imént említett módon.", + "setGenHelpHIBPLink": "itt", + "setGenAuditPasswordAge": "Régi jelszavak", + "setGenAuditPasswordAgeOff": "Ne mutasson figyelmeztetéseket régi jelszavakkal kapcsolatban", + "setGenAuditPasswordAgeOneYear": "Mutasson figyelmeztetéseket az egy évnél régebbi jelszavak esetében", + "setGenAuditPasswordAgeYears": "Mutasson figyelmeztetéseket a(z) {} évnél régebbi jelszavak esetében", + "setFilePath": "Fájl elérési út", + "setFileStorage": "Ez a fájl betöltve innen: {}", + "setFileIntl": "A fájl a belső alkalmazástárolóban van tárolva.", + "setFileLocalHint": "Zökkenőmentesen kíván dolgozni helyi fájlokkal?", + "setFileDownloadApp": "Asztali alkalmazás letöltése", + "setFileSave": "Mentés", + "setFileSaveTo": "Mentés ide...", + "setFileClose": "Bezárás", + "setFileSync": "Szinkronizálás", + "setFileSyncVerb": "Szinkronizál", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Utolsó szinkronizálás", + "setFileLastSyncUnknown": "ismeretlen", + "setFileSyncInProgress": "szinkronizálás folyamatban", + "setFileSyncError": "Szinkronizálási hiba", + "setFilePass": "Mester jelszó", + "setFileConfirmPass": "Mester jelszó megerősítése", + "setFilePassChange": "Jelszava cseréjéhez, kérem írja be a Megerősítés mezőbe", + "setFilePassChanged": "a jelszava megváltozott; hagyja üresen a mezőt a régi jelszó használatához", + "setFilePassNotMatch": "a jelszavak nem egyeznek meg, kérem írja be újra", + "setFileKeyFile": "Kulcsfájl", + "setFileSelKeyFile": "Kulcsfájl kiválasztása", + "setFileNames": "Nevek", + "setFileDefUser": "Alapértelmezett felhasználó", + "setFileEnableTrash": "Lomtár engedélyezése", + "setFileHistMode": "Bejegyzés történet", + "setFileHistLimited": "Régi bejegyzések automatikus törlése", + "setFileHistDisabled": "Ne mentsen bejegyzés történetet", + "setFileHistUnlimited": "Örökké tartsa meg a bejegyzés történetet", + "setFileHistLen": "Előzmények hossza, utolsó rekordok megtartása bejegyzésenként", + "setFileHistSize": "Előzmények mérete, MB fájlonként", + "setFileBackups": "Biztonsági mentések", + "setFileBackupEnable": "Fájl biztonsági mentése", + "setFileBackupPath": "Biztonsági mentés elérési útja", + "setFileBackupTime": "Biztonsági mentések készítése", + "setFileBackupNow": "Biztonsági mentés most", + "setFileBackupNowWorking": "Dolgozom...", + "setFileBackupError": "Biztonsági mentés hiba", + "setFileBackupErrorDescription": "Hiba biztonsági mentés fájl írás során", + "setFileBackupErrorIsDir": "A biztonsági mentés elérési útja érvénytelen", + "setFileBackupErrorIsDirDescription": "A biztonsági mentés elérési útja, úgy tűnik egy könyvtárra mutat. Kérem inkább határozzon meg egy fájlnevet, egy könyvtáron belül.", + "setFileBackupOnSave": "Minden alkalommal, amikor mentem a fájlt", + "setFileBackupDaily": "Naponta", + "setFileBackupWeekly": "Hetente", + "setFileBackupMonthly": "Havonta", + "setFileBackupManually": "Manuálisan, nincsenek automatikus biztonsági mentések", + "setFileRounds": "Kulcs titkosítási körök", + "setFileKdfParams": "Kulcs-származtató függvény", + "setFileKdfParamsIter": "Iteráció", + "setFileKdfParamsMem": "Memória, KB", + "setFileKdfParamsPar": "Párhuzamosság", + "setFileKeyChangeForce": "Javaslat a kulcs megváltoztatására (nap)", + "setFileUseKeyFile": "Kulcsfájl használata", + "setFileUseGenKeyFile": "A generált kulcsfájl használata", + "setFileUseOldKeyFile": "A régi kulcsfájl használata", + "setFileGenKeyFile": "Új kulcsfájl generálása", + "setFileDontUseKeyFile": "Ne használjon kulcsfájlt", + "setFileEmptyPass": "Üres jelszó", + "setFileEmptyPassBody": "Az adatbázis jelszó nélküli mentése azt teljesen védtelenné teszi. Tényleg biztos benne?", + "setFileSaveError": "Mentési hiba", + "setFileSaveErrorBody": "Hiba a fájlba történő mentés során", + "setFileAlreadyExists": "Már létezik", + "setFileAlreadyExistsBody": "{} fájl már létezik. Felülírjam?", + "setFileUnsaved": "Nem mentett módosítások", + "setFileUnsavedBody": "Nem mentett módosítások vannak ebben a fájlban.", + "setFileCloseNoSave": "Bezárás és módosítások elvesztése", + "setFileDontClose": "Ne zárja be", + "setFileFormatVersion": "Fájlformátum", + "setFileExportRaw": "Jelszavai exportálása", + "setFileExportRawBody": "Az exportált fájl tartalmazni fogja a jelszavait, és ezek nem lesznek titkosítva. Biztosan folytatni szeretné?", + "setFileDeviceIntro": "Az egyszeri kódok erről a(z) {} eszközről, megjelennek majd az alkalmazásban.", + "setFileDeviceSettings": "Beállítások", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Ne használjon YubiKey-t", + "setFileRefreshYubiKeyList": "Lista frissítése", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Egy YubiKey használata a mesterkulcs részeként veszélyes. Elveszítheti a hozzáférését a jelszavaihoz, ha valami balul üt ki. Készített biztonsági mentést a fájljáról mielőtt megváltoztatná ezt a beállítást?", + "setFileYubiKeyErrorEmptyMac": "Úgy tűnik, hogy egy YubiKey van csatlakoztatva, de nem látható. A KeeWeb-et hozzá kell adni az Apple menü / rendszerbeállítások / biztonság és adatvédelem lehetőség, adatvédelem fülén, a bemenet figyeléséhez, hogy hozzáférhessen a YubiKey-ekhez.", + "setShTitle": "Gyorsbillentyűk", + "setShShowAll": "minden elem megjelenítése", + "setShColors": "színezett elemek megjelenítése", + "setShTrash": "irány a Lomtár", + "setShFind": "keresés, vagy csak kezdjen el gépelni", + "setShClearSearch": "keresés törlése", + "setShCopyPass": "jelszó vagy kijelölt mező másolása", + "setShCopyUser": "felhasználónév másolása", + "setShCopyUrl": "weboldal másolása", + "setShAutoType": "kiválasztott bejegyzés automatikus gépelése", + "setShPrev": "előző elem", + "setShNext": "következő elem", + "setShCreateEntry": "bejegyzés létrehozása", + "setShOpen": "megnyitás / új", + "setShSave": "minden fájl mentése", + "setShGen": "jelszó generálás", + "setShSet": "alkalmazás beállítások", + "setShCopyPassGlobal": "jelszó másolása", + "setShCopyOtp": "OTP másolása", + "setShAutoTypeGlobal": "automatikus gépelés", + "setShCopyPassOnly": "jelszó másolása", + "setShRestoreApp": "{} megnyitása", + "setShGlobal": "Ezek a rendszerszintű gyorsbillentyűk akkor működnek, ha az alkalmazás fut a háttérben. Kattints a saját gyorsbillenytűk kiválasztásához.", + "setShLock": "adatbázis zárolása", + "setShEdit": "Üss le egy billentyűkombinációt, hogy beállítsd billentyűparancsnak", + "setPlInstallTitle": "Új beépülők telepítése", + "setPlInstallDesc": "A KeeWeb beépülők kiegészítéseket, témákat, és nyelveket adnak hozzá a KeeWeb-hez. A beépülők ugyanazokkal a jogosultságokkal futnak mint a KeeWeb, hozzáférhetnek és kezelhetik az ön összes jelszavát. Soha ne telepítsen olyan beépülőt amiben nem bízik meg.", + "setPlInstallLabel": "Beépülő URL", + "setPlInstallBtn": "Telepítés", + "setPlInstallBtnProgress": "Telepítés...", + "setPlUninstallBtn": "Eltávolítás", + "setPlDisableBtn": "Letiltás", + "setPlEnableBtn": "Engedélyezés", + "setPlUpdateBtn": "Frissítés", + "setPlLocaleBtn": "Váltás erre a nyelvre", + "setPlThemeBtn": "Váltás erre a témára", + "setPlJs": "kód", + "setPlCss": "stílusok", + "setPlLoc": "nyelv", + "setPlCreatedBy": "Készítette: {}", + "setPlLoadTime": "betöltése {}-t vesz igénybe", + "setPlLastUpdate": "Frissítések utoljára ellenőrizve", + "setPlLoadError": "beépülő betöltése során hiba lépett fel", + "setPlGalleryLoading": "Beépülők betöltése, kérem várjon", + "setPlGalleryLoadError": "Beépülők betöltése során hiba lépett fel", + "setPlInstallUrlTitle": "Beépülő hozzáadása URL-ből", + "setPlInstallUrlDesc": "Ha a beépülő nem szerepel a válogatásban, manuálisan telepítheti URL-ből", + "setPlOfficial": "Hivatalos KeeWeb beépülő", + "setPlSearch": "Beépülők keresése", + "setPlDevelop": "Fejleszteni akar saját beépülőket?", + "setPlDevelopStart": "Kezdje itt", + "setPlTranslate": "Vagy {}", + "setPlTranslateLink": "lefordíthatja az alkalmazást a saját nyelvére", + "setPlAutoUpdate": "Automatikus frissítés", + "setPlLoadGallery": "Beépülő válogatás betöltése", + "setDevicesTitle": "Eszközök", + "setDevicesEnableUsb": "USB eszközökkel való együttműködés engedélyezése", + "setDevicesYubiKeyIntro": "Ajánlott elolvasni {} mielőtt használ egy YubiKey-t.", + "setDevicesYubiKeyIntroLink": "ezt a dokumentumot", + "setDevicesYubiKeyToolsDesc": "Hogy ebben az üzemmódban tudja használni a YubiKey-t, telepítenie kell egy {} nevű eszközt.", + "setDevicesYubiKeyToolsDesc2": "{}, hogy többet tudjon meg erről az eszközről.", + "setDevicesYubiKeyToolsDescLink": "Kattintson ide", + "setDevicesYubiKeyToolsStatusChecking": "{} telepítésének ellenőrzése", + "setDevicesYubiKeyToolsStatusOk": "{} telepítve van", + "setDevicesYubiKeyToolsStatusError": "{} nincs telepítve, vagy nem működik", + "setDevicesYubiKeyOtpTitle": "Egyszeri kódok", + "setDevicesYubiKeyOtpDesc": "A YubiKey, különböző szolgáltatásokhoz, egyszeri kódok generálására használható.", + "setDevicesYubiKeyOtpShowIcon": "Mutassa a kezdőképernyőn az ikont", + "setDevicesYubiKeyOtpAutoOpen": "Amikor vannak megnyitott fájlok, automatikusan töltse be az egyszeri kódokat", + "setDevicesYubiKeyOtpMatchEntries": "Mutassa a bejegyzésekben az egyező egyszeri kódokat", + "setDevicesYubiKeyChalRespTitle": "Kihívás-válasz", + "setDevicesYubiKeyChalRespDesc": "Az is lehetséges, hogy kihívás-válasz üzemmódban használja a YubiKey-t. Így tehát a privát kulcs egy része van használva arra, hogy YubiKey-hez tartozó fájlokat titkosítson.", + "setDevicesYubiKeyChalRespShow": "Fájlok megnyitásakor, mutassa a YubiKey használatának lehetőségét", + "setDevicesYubiKeyStuckWorkaround": "Csatlakoztassa újra a YubiKey-t, ha úgy tűnik, hogy megakadt a betöltés során", + "setDevicesYubiKeyRememberChalResp": "Emlékezzen a kihívás-válaszra amíg az alkalmazás meg van nyitva", + "setAboutTitle": "Névjegy", + "setAboutBuilt": "Ez az alkalmazás ezekkel a fantasztikus eszközökkel készült", + "setAboutLic": "Licenc", + "setAboutLicComment": "Az alkalmazás és minden komponense az MIT licenc alatt kerültek kiadásra, kivéve ha ez nincs másképpen meghatározva.", + "setAboutFirst": "Ez egy nyílt forráskódú alkalmazás, melyet {} készített.", + "setAboutSecond": "és licencelve {} alatt.", + "setAboutSource": "A forráskód és a problémák a {}-on érhetők el.", + "setHelpFormat": "Fájlformátum", + "setHelpFormatBody": "Ez az alkalmazásfelület, egy a {} alkalmazás webes technológiákkal létrehozott megnyilvánulása. Képes kezelni a KeePass fájlformátumot (kdbx). Létrehozhat ilyen fájlokat (jelszó adatbázisok) akár KeePass-ben, akár ebben az alkalmazásban. A fájlformátum 100%-ban kompatibilis és mindkét alkalmazás által értelmezhető.", + "setHelpProblems": "Segítségre van szüksége?", + "setHelpProblems1": "Ha valami nem sikerül, kérem {}", + "setHelpProblems2": "vagy {}", + "setHelpOpenIssue": "nyisson egy kérdést a GitHub-on", + "setHelpContactLink": "vegye fel a kapcsolatot követlenül a fejlesztővel", + "setHelpAppInfo": "Alkalmazás információ", + "setHelpOtherPlatforms": "Más platformok", + "setHelpDesktopApps": "Asztali alkalmazások", + "setHelpWebApp": "Webalkalmazás", + "setHelpUpdates": "Frissítések", + "setHelpTwitter": "Alkalmazás twitter", + "dropboxSetupDesc": "Némi beállításra van szükség a Dropbox használatához, a saját kiszolgálón működtetett alkalmazás esetén. Kérem készítse el a saját Dropbox alkalmazását és lent adja meg annak kulcsát.", + "dropboxAppKey": "Dropbox alkalmazás kulcs", + "dropboxAppKeyDesc": "Másolja ide a kulcsot a Dropbox alkalmazásából (Fejlesztői beállítások)", + "dropboxAppKeyHint": "az Ön app kulcsa", + "dropboxAppSecret": "Dropbox app secret", + "dropboxAppSecretDesc": "Az app secret, az app key mellett található", + "dropboxFolder": "Alkalmazás mappa", + "dropboxFolderDesc": "Amennyiben az alkalmazás a teljes Dropbox-hoz lett kapcsolva (nem alkalmazás mappához), adja meg a a kdbx fájljait tartalmazó mappát.", + "dropboxFolderSettingsDesc": "Adja meg a Dropbox mappát, ahol a fájlok tárolva lesznek (gyökérmappa az alapértelmezett )", + "dropboxFolderPlaceholder": "alapértelmezett mappa", + "dropboxLink": "Kapcsolja az alkalmazást ehhez", + "dropboxLinkApp": "Alkalmazás mappa (Apps/KeeWeb)", + "dropboxLinkFull": "Teljes Dropbox vagy bármelyik mappa", + "dropboxLinkCustom": "Saját Dropbox alkalmazás", + "gdriveSharedWithMe": "Velem megosztott", + "webdavSaveMethod": "Mentési módszer", + "webdavSaveMove": "Ideiglenes fájl feltöltése és áthelyezése", + "webdavSavePut": "A kdbx fájl felülírása, PUT-al", + "webdavNoLastModified": "Utoljára módosított HTTP fejléc hiányzik", + "webdavStatReload": "Mindig töltse újra a fájlt ahelyett, hogy az utoljára módosított HTTP fejlécre hagyatkozna", + "launcherSave": "Jelszó adatbázis mentése", + "launcherFileFilter": "KeePass fájlok", + "authPopupRequired": "Az előugró ablakok blokkoltak", + "authPopupRequiredBody": "Kérem engedélyezze böngészőjében az előugró ablakokat ehhez az alkalmazáshoz, vagy próbálja újra.", + "exportFileInfo": "File információ", + "exportHtmlName": "Név", + "exportHtmlDate": "Exportálás dátuma", + "exportGenerator": "Szoftver", + "exportDescription": "{} által generált fájl.", + "importCsvTitle": "Importálás CSV-ből", + "importCsvRun": "Importálás", + "importIgnoreField": "Mellőz", + "importTo": "Bejegyzések importálása ide", + "importNewFile": "Új fájl", + "yubiKeyStuckError": "A YubiKey úgy tűnik, hogy elakadt, az automatikus javítás engedélyezhető az alkalmazás beállításaiban.", + "yubiKeyNoKeyHeader": "YubiKey szükséges", + "yubiKeyNoKeyBody": "Kérem helyezze be a {} szériaszámú Yubikey-t", + "yubiKeySlot": "csatlakozó", + "yubiKeyTouchRequestedHeader": "Érintse meg a YubiKey-t", + "yubiKeyTouchRequestedBody": "Kérem érintse meg a {} szériaszámú YubiKey-t", + "yubiKeyDisabledErrorHeader": "Az USB nincs engedélyezve", + "yubiKeyDisabledErrorBody": "YubiKey szükséges a fájl megnyitásához, kérlek engedélyezd az USB eszközöket a beállításokban.", + "yubiKeyErrorWithCode": "YubiKey hiba, kód {}.", + "bioOpenAuthPrompt": "megnyitni \"{}\"" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/hu/index.html b/keeweb/plugins/translations/hu/index.html new file mode 100644 index 0000000..34590e7 --- /dev/null +++ b/keeweb/plugins/translations/hu/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Magyar + + + + +

KeeWeb Language: Magyar

+ https://plugins.keeweb.info/translations/hu + + diff --git a/keeweb/plugins/translations/hu/manifest.json b/keeweb/plugins/translations/hu/manifest.json new file mode 100644 index 0000000..dea430e --- /dev/null +++ b/keeweb/plugins/translations/hu/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.32.0", + "manifestVersion": "0.1.0", + "name": "language-hungarian", + "description": "Hungarian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=hu", + "resources": { + "loc": "JURF2kaThRmQJZixJIOuptBq1DU3H1eG8C4XUyNpk5HwYRdY/ChTYhUSoKb5X8GBPRlIdR/e1c2JWwAwS4GxEwhlS663gXF2jwhH2jOScCPOrf25UCZYrpp2RZxHqjOCxjKJPKEgNVwvz58mhaURVa71gSxaUJdn2p9O0mgBz/SJWcb1QP68urqsDk/L9a0FuYQk9l4HIZ/xbFt7/Vhns+zs2lytqAbfBEufPB6yxh/+GNa2iYoVk2Q7it2lVHL4Z3OOyqohJ10jnsz6wfjBff5UMWMS3PYbH71tiLDhffh5wen7GunphQBh4DLRGu00MgnMPOCapJ/6jFz1JMrf9Q==" + }, + "locale": { + "name": "hu", + "title": "Magyar", + "flag": "🇭🇺" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/index.html b/keeweb/plugins/translations/index.html new file mode 100644 index 0000000..48ae788 --- /dev/null +++ b/keeweb/plugins/translations/index.html @@ -0,0 +1,93 @@ + + + + + KeeWeb translations + + + + + +

KeeWeb translations

+

+ This site contains translations for KeeWeb. You can + add or edit translations at OneSky. +

+

Language list

+ + + + + + + + + +
LanguageNameEnglish NameVersionPhrase countPlugin URL
+ + + diff --git a/keeweb/plugins/translations/it-IT/index.html b/keeweb/plugins/translations/it-IT/index.html new file mode 100644 index 0000000..2d387fd --- /dev/null +++ b/keeweb/plugins/translations/it-IT/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Italiano + + + + +

KeeWeb Language: Italiano

+ https://plugins.keeweb.info/translations/it-IT + + diff --git a/keeweb/plugins/translations/it-IT/it-IT.json b/keeweb/plugins/translations/it-IT/it-IT.json new file mode 100644 index 0000000..9cbbea8 --- /dev/null +++ b/keeweb/plugins/translations/it-IT/it-IT.json @@ -0,0 +1,707 @@ +{ + "retToApp": "ritorna all'app", + "name": "nome", + "icon": "icona", + "title": "titolo", + "password": "password", + "user": "utente", + "website": "sito", + "tags": "tags", + "notes": "note", + "entry": "voce", + "group": "gruppo", + "noTitle": "senza titolo", + "or": "o", + "history": "cronologia", + "template": "modello", + "templates": "modelli", + "notImplemented": "Non implementato", + "saveChanges": "Salva le modifiche", + "discardChanges": "Annulla le modifiche", + "advanced": "Avanzate", + "shortcuts": "Scorciatoie da tastiera", + "help": "Aiuto", + "settings": "Impostazioni", + "plugins": "Estensioni", + "ctrlKey": "ctrl", + "shiftKey": "maiusc", + "altKey": "alt", + "error": "errore", + "oneMinute": "un minuto", + "minutes": "{} minuti", + "oneHour": "un ora", + "hours": "{} ore", + "oneDay": "un giorno", + "days": "{} giorni", + "oneWeek": "una settimana", + "oneMonth": "un mese", + "oneYear": "un anno", + "cache": "cache", + "file": "file", + "device": "dispositivo", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Tutte le voci", + "menuColors": "Colori", + "menuTrash": "Cestino", + "menuSetGeneral": "Generale", + "menuSetBrowser": "Browser", + "menuSetAbout": "Info", + "menuSetDevices": "Dispositivi", + "menuAlertNoTags": "Nessun tag", + "menuAlertNoTagsBody": "Puoi aggiungere nuovi tag durante la modifica dei campi, nella sezione dei tag.", + "menuEmptyTrash": "Svuota il cestino", + "menuEmptyTrashAlert": "Svuotare il cestino?", + "menuEmptyTrashAlertBody": "Non sarà possibile recuperare gli elementi", + "menuItemCollapsed": "Fai doppio-click per espandere", + "menuRestoreApp": "Apri {}", + "menuQuitApp": "Chiudi {}", + "sysMenuAboutKeeWeb": "Circa {}", + "sysMenuServices": "Servizi", + "sysMenuHide": "Nascondi {}", + "sysMenuHideOthers": "Nascondi gli altri", + "sysMenuUnhide": "Mostra tutti", + "sysMenuQuit": "Chiudi {}", + "sysMenuEdit": "Modifica", + "sysMenuUndo": "Annulla", + "sysMenuRedo": "RIpeti", + "sysMenuCut": "Taglia", + "sysMenuCopy": "Copia", + "sysMenuPaste": "Incolla", + "sysMenuSelectAll": "Seleziona tutto", + "sysMenuWindow": "Finestra", + "sysMenuMinimize": "Riduci", + "sysMenuClose": "Chiudi finestra", + "alertYes": "Sì", + "alertNo": "No", + "alertOk": "OK", + "alertCancel": "Annulla", + "alertSignIn": "Login", + "alertCopy": "Copia", + "alertClose": "Chiudi", + "alertDoNotAsk": "Non chiedermelo più", + "alertAllow": "Autorizza", + "alertDeny": "Nega", + "appBeta": "ATTENZIONE: versione beta, solo per anteprima", + "footerOpen": "Apri / Nuovo", + "footerSyncError": "Errore sincronizzazione", + "footerTitleGen": "Genera", + "footerTitleLock": "Blocca", + "genLen": "Lunghezza", + "genNewPass": "Nuova password", + "genPresetDefault": "preset di default", + "genPresetDerived": "come password precedente", + "genPresetPronounceable": "pronunciabile", + "genPresetMed": "lunghezza media", + "genPresetLong": "lunga", + "genPresetPin4": "PIN a 4 cifre", + "genPresetMac": "Indirizzo MAC", + "genPresetHash128": "hash a 128-bit", + "genPresetHash256": "hash a 256-bit", + "genHidePass": "Nascondi password", + "genShowPass": "Mostra password", + "grpTitle": "Gruppo", + "grpSearch": "Abilita la ricerca delle voci in questo gruppo", + "grpAutoType": "Abilita scrittura automatica", + "grpAutoTypeSeq": "Sequenza di scrittura automatica", + "grpAutoTypeSeqDefault": "Usa la sequenza di scrittura automatica di default", + "grpTrash": "Cancella il gruppo con tutte le voci", + "tagTitle": "Tag", + "tagTrash": "Rimuovi il tag da tutte le voci", + "tagRename": "Rinomina", + "tagTrashQuestion": "Rimuovere il tag da tutte le voci?", + "tagTrashQuestionBody": "Questo tag verrà rimosso da tutte le voci. Non esiste un modo semplice per ripristinarlo.", + "tagExists": "Il tag è già esistente", + "tagExistsBody": "Un tag con questo nome è già esistente. Per favore sceglierne un altro.", + "tagBadName": "Nome non valido", + "tagBadNameBody": "Il nome di un tag non può contenere i caratteri {}. Per favore rimuoverli.", + "genPsTitle": "Modelli del generatore", + "genPsCreate": "Nuovo modello", + "genPsDelete": "Cancella modello", + "genPsNew": "modello", + "genPsEnabled": "Mostra nella lista dei modelli", + "genPsDefault": "Selezionato come predefinito", + "genPsDefaultLength": "Lunghezza di default", + "genPsUpper": "Lettere latine maiuscole", + "genPsLower": "Lettere latine minuscole", + "genPsDigits": "Numeri", + "genPsSpecial": "Caratteri speciali", + "genPsBrackets": "Parentesi", + "genPsHigh": "Caratteri da ASCII esteso", + "genPsAmbiguous": "Simboli ambigui", + "genPsInclude": "Simboli addizionali da includere", + "genPsExample": "Esempio di password generata", + "genPsPattern": "Modello", + "genPsPatternHelp": "I modelli possono essere utilizzati per specificare regole personalizzate per la selezione dei caratteri. Ad esempio, 1-AA genererà password che iniziano con una cifra, seguita da un trattino e due lettere. Puoi usare questi simboli:", + "genPsAllRanges": "Tutti i simboli", + "genPsIncluded": "Simboli aggiuntivi aggiunti sopra", + "keyChangeTitleRemote": "Chiave Principale Modificata", + "keyChangeMessageRemote": "La chiave principale è stata cambiata per questo database. Per favore inserire una nuova chiave", + "keyChangeTitleExpired": "Chiave Principale Scaduta", + "keyChangeMessageExpired": "La chiave principale per questo database è scaduta. Per favore inserire una nuova chiave", + "keyChangeRepeatPassword": "Password, di nuovo", + "keyEnter": "Invia", + "keyEsc": "Esc", + "iconFavTitle": "Scarica ed usa la favicon dal sito", + "iconSelCustom": "Seleziona un'icona personalizzata", + "listEmptyTitle": "Vuoto", + "listEmptyAdd": "aggiungi col pulsante {} sopra", + "listGroup": "Gruppo", + "listNoWebsite": "nessun sito", + "listNoUser": "nessun utente", + "listNoAttachments": "nessun allegato", + "listAddTemplateHeader": "Modelli", + "listAddTemplateBody1": "I modelli ti permettono di aggiungere delle voci con click. Aggiungi qualcosa al modello per la voce e poi fai di nuovo click su {} per usare questo modello.", + "listAddTemplateBody2": "Puoi sempre trovare i tuoi modelli nel gruppo {}.", + "searchAddNew": "Nuovo", + "searchSort": "Ordina", + "searchCreated": "Creato", + "searchUpdated": "Aggiornato", + "searchAttachments": "Allegati", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Vecchie {} Nuove", + "searchNO": "Nuove {} Vecchie", + "searchShiftClickOr": "maiusc-clic o", + "searchAdvTitle": "Abilita/disabilita ricerca avanzata", + "searchSearchIn": "Cerca in", + "searchOther": "Altri campi", + "searchProtect": "Campi sicuri", + "searchOptions": "Opzioni", + "searchCase": "Maiuscole/minuscole", + "searchRegex": "Espressione regolare", + "searchRank": "Auto", + "searchExact": "Esattamente", + "openOpen": "Apri", + "openNew": "Nuovo", + "openNewFile": "Nuovo", + "openMore": "Altro", + "openDemo": "Demo", + "openGenerate": "Genera", + "openXml": "Importa xml", + "openCaps": "Block maiusc attivato", + "openClickToOpen": "file", + "openKeyFile": "file chiave", + "openKeyFileDropbox": "(da dropbox)", + "openDropHere": "trascina i files qui", + "openFailedRead": "file", + "openNothingFound": "nessun risultato", + "openNothingFoundBody": "Nessun file che potrebbe essere aperto", + "openSelectFile": "file", + "openSelectFileBody": "file", + "openPassFor": "password per", + "openRemoveLastQuestion": "file", + "openRemoveLastQuestionBody": "Il file che stai eliminando è salvato solo nell'applicazione. Vuoi eliminarlo definitivamente?", + "openRemoveLastQuestionModBody": "Il file che si sta eliminando ha delle modifiche in locale. Eliminarlo e annullare le modifiche?", + "openLocalFile": "file locale", + "openLocalFileBody": "Stai per aprire un file che sarà modificato all'interno dell'applicazione. I cambiamenti effettuati non verranno salvati. Per ottenere il file con le modifiche utilizza il comando esporta dalle impostazioni.", + "openLocalFileDontShow": "Non mostrare di nuovo", + "openWrongFile": "File errato", + "openWrongFileBody": "Questo file non è suportato. Questa applicazione supporta file con formato del database di KeePass (kdbx).", + "openKdbFileBody": "Hai selezionato un file con il vecchio formato (KDB). Questa applicazione supporta esclusivamente il nuovo formato (kdbx). Puoi utilizzare KeePass v2 per convertire i file con nel nuovo formato.", + "openConfigHeader": "{} impostazioni", + "openUrl": "url", + "openUrlDesc": "https://server/path/file.kdbx, o solamente file.kdbx", + "openUser": "Utente", + "openUserDesc": "Utente server WebDAV (se richiesto)", + "openUserPlaceholder": "nessun utente", + "openPass": "password", + "openPassDesc": "password server WebDAV (questa non è la password del file)", + "openPassPlaceholder": "nessuna password", + "openConfigError": "errore {}", + "openConfigErrorNotFound": "File non trovato", + "openError": "errore", + "openErrorDescription": "C'è stato un errore nell'apertura del file", + "openErrorDescriptionMaybeTouchIdChanged": "L'errore si presenta se la configurazione Touch Id è cambiata, quando ad esempio, sono state aggiunte o rimosse impronte. In questo caso, andare nelle Impostazioni, disattivare Touch ID e riattivarlo.", + "openErrorFileNotFound": "File non trovato", + "openListErrorBody": "Errore durante il caricamento della lista dei file", + "openShowAllFiles": "Mostra tutti i file", + "openFileNoCacheError": "File non trovato nella cache. Questo può accadere se la cache del Browser viene cancellata. Per aprire il file, rimuovilo da KeeWeb a aggiungilo nuovamente.", + "openChalRespHeader": "Challenge-Response", + "openChalRespLoading": "Caricamento lista di YubiKeys", + "openChalRespSelectYubiKey": "Seleziona una YubiKey che desideri utilizzare", + "openChalRespErrorEmpty": "Nessuna YubiKeys trovata.", + "openChalRespErrorEmptyMac": "È la prima volta che utilizzi questa funzione su macOS? KeeWeb deve essere aggiunto alla sezione Input Monitoring dalle impostazioni di sicurezza.", + "detAttDownload": "Premi Shift+Click sull'allegato per scaricarlo oppure", + "detAttDelToRemove": "del per cancellare", + "detAttSave": "Salva come ...", + "detEmpty": "La tua password verrà visualizzata qui", + "detGroupRestore": "Per ripristinare questo gruppo, trascinarlo in qualsiasi gruppo al di fuori del cestino", + "detHistoryClickPoint": "Voce", + "detHistoryReturn": "ritorna alla voce", + "detHistoryRevert": "Ripristina a stato", + "detHistoryDel": "Cancella stato", + "detHistoryEmpty": "vuoto", + "detHistoryModified": "modificato", + "detHistoryRec": "versione", + "detHistoryRecs": "versioni", + "detHistoryVersion": "Versione", + "detHistorySaved": "Salvato", + "detHistoryNoTitle": "nessun titolo", + "detHistoryCurState": "stato corrente", + "detHistoryCurUnsavedState": "stato correntemente non salvato", + "detHistoryRevertAlert": "Ripristinare a questa versione ?", + "detHistoryRevertAlertBody": "Lo stato corrente verrà salvato nella storia.", + "detHistoryDeleteAlert": "Rimuovere questo stato ?", + "detHistoryDeleteAlertBody": "Non sarai più in grado di ripristinarlo.", + "detHistoryDiscardChangesAlert": "Ignorare le modifiche apportate?", + "detHistoryDiscardChangesAlertBody": "Le modifiche non salvate andranno perse, non sarà possibile tornare indietro.", + "detBackToList": "indietro all'elenco", + "detSetIconColor": "Cambia colore", + "detSetIcon": "Cambia icona", + "detDropAttachments": "rilascia qui l'allegato", + "detDelEntry": "Cancella", + "detDelEntryPerm": "Cancella definitivamente", + "detExpires": "Scade", + "detExpired": "scaduto", + "detGroup": "gruppo", + "detCreated": "creato", + "detUpdated": "Aggiornato", + "detNetField": "nuovo campo", + "detAttachments": "Allegato", + "detDelFromTrash": "Cancellare dal cestino?", + "detDelFromTrashBody": "Non potrai più tornare indietro", + "detDelFromTrashBodyHint": "Per rimuovere velocemente tutti gli elementi dal cestino, clicca l'icona svuota nel menu del cestino", + "detDelToTrash": "Eliminare ?", + "detDelToTrashBody": "La voce verrà spostata nella cartella cestino.", + "detFieldCopied": "Copiato", + "detFieldCopiedTime": "Copiato per {} secondi", + "detCopyHint": "Puoi copiare un campo cliccando il suo nome", + "detMore": "di più", + "detClickToAddField": "clicca per aggiungere un nuovo campo", + "detMenuAddNewField": "aggiungi nuovo campo", + "detMenuAddNewWebsite": "Aggiungi un altro sito web", + "detMenuShowEmpty": "mostra campi vuoti", + "detMenuHideEmpty": "nascondi campi vuoti", + "detMenuAddField": "Aggiungi {}", + "detMenuCopyPassword": "Copia password", + "detMenuCopyUser": "Copia utente", + "detMenuCopyOtp": "Copia il codice one-time", + "detSetupOtp": "Password temporanea", + "detClone": "Duplica", + "detCopyEntryToClipboard": "Copia tutti i campi", + "detClonedName": "Copia", + "detAutoType": "Scrittura automatica", + "detAutoTypeSettings": "Impostationi scrittura automatica", + "detAutoTypeEnabled": "Abilita scrittura automatica per questa voce", + "detAutoTypeSequence": "Sequenza tasti", + "detAutoTypeInput": "Input", + "detAutoTypeShortcutsDesc": "{} o {} mentre l'app è inattiva", + "detAutoTypeObfuscation": "Mischia una sequenza di tasti reali e casuali", + "detAutoTypeWindow": "Finestra", + "detAutoTypeInputWindow": "Titolo finestra", + "detSetupOtpAlert": "Scansione codice QR", + "detSetupOtpAlertBody": "Per favore copia il codice QR che è visualizzato nella pagina di autorizzazione", + "detSetupOtpAlertBody1": "vai alla pagina di autorizzazione", + "detSetupOtpAlertBody2": "fai uno screenshot del codice QR \u0010{}", + "detSetupOtpAlertBody3": "incollalo qui {}", + "detSetupOtpAlertBody3Mobile": "3. selezionalo o esegui una scansione con la tua camera usando il pulsante Seleziona/Scansiona sotto", + "detSetupOtpAlertBody4": "Se non riesci a scansionare il codice premi “Inserisci il codice manualmente”", + "detSetupOtpManualButton": "Inserisci manualmente", + "detSetupOtpScanButton": "Seleziona/Scansiona", + "detSetupOtpAlertBodyWith": "con \u0010{}", + "detOtpImageError": "Errore nella lettura immagine", + "detOtpImageErrorBody": "Non è possibile riconoscere il formato dell'immagine, per favore contatta gli autori dell'applicazione fornendo i dettagli dell'errore.", + "detOtpImageReading": "Lettura del codice QR...", + "detOtpQrError": "Errore nella lettura del QR", + "detOtpQrErrorBody": "Spiacenti, non è possibile leggere il QR code, riprovare nuovamente o contattare gli autori dell'applicazione con il dettaglio dell'errore.", + "detOtpQrWrong": "Codice QR errato", + "detOtpQrWrongBody": "Il codice QR è stato letto correttamente ma non contiene dati di una password temporanea.", + "detOtpField": "Codice one-time", + "detOtpClickToTouch": "Clicca per generare", + "detOtpGenerating": "Generazione in corso...", + "detOtpTouch": "Seleziona la tua {}", + "detLockField": "Blocca questo campo: il suo contenuto non sarà ricercabile e visibile. La visualizzazione del contenuto richiede un clic esplicito.", + "detUnlockField": "Sblocca questo campo, rendendolo immediatamente ricercabile e visibile", + "detRevealField": "Mostra", + "detHideField": "Nascondi", + "detAutoTypeField": "Auto scrittura", + "detIssuesHideTooltip": "Nascondi questo warning", + "detIssueWeakPassword": "La password é debole, si raccomanda di cambiarla.", + "detIssuePoorPassword": "La password é molto debole, si raccomanda fortemente di cambiarla.", + "detIssuePwnedPassword": "Questa password è stata coinvolta in una violazione di dati personali secondo {}, è consigliato cambiarla.", + "detIssuePasswordCheckError": "Si è verificato un errore eseguendo il controllo online sulla robustezza della password.", + "detIssueOldPassword": "La password è vecchia.", + "detIssueCloseAlertHeader": "Nascondi i problemi della password", + "detIssueCloseAlertBody": "Ci sono diversi modi per nascondere questo warning:", + "detIssueCloseAlertEntry": "Non mostrare questa voce", + "detIssueCloseAlertSettings": "Modifica impostazioni generali", + "autoTypeEntryFields": "Campi della voce", + "autoTypeModifiers": "Modificatori", + "autoTypeKeys": "Tasti", + "autoTypeLink": "altro...", + "autoTypeError": "Errore scrittura automatica", + "autoTypeErrorGeneric": "C'è stato un errore durante la scrittura automatica: {}", + "autoTypeErrorAccessibilityMacOS": "Abbiamo provato ad inviare la pressione di un tasto all'applicazione, ma non sembra funzionare. Solitamente succede per mancanza di permessi, clicca qui per saperne di più.", + "autoTypeErrorGlobal": "Per utilizzare le scorciatoie di sistema, seleziona l'app dove vuoi che venga inserita la password", + "autoTypeErrorNotInstalled": "{} non è installato", + "autoTypeHeader": "Auto-Type: Seleziona", + "autoTypeMsgNoWindow": "Non è stato possibile reperire il titolo della finestra attiva, inizia a digitare per cercare", + "autoTypeMsgMatchedByWindow": "Seleziona una password per {}", + "autoTypeNoMatches": "nessuna corrispondenza", + "autoTypeSelectionHint": "Digitare la sequenza di autoscrittura", + "autoTypeSelectionHintAction": "Scrivi solo la password", + "autoTypeSelectionHintOpt": "Scrivi solo il nome utente", + "autoTypeSelectionHintShift": "Altri campi", + "autoTypeSelectionOtp": "One-time password", + "autoTypeUnlockMessage": "Sblocca per autocompilazione", + "appSecWarn": "Non sicuro!", + "appSecWarnBody1": "Hai caricato questa applicazione con una connessione insicura. Qualcuno potrebbe spiarti e rubare le tue password. Consigliamo caldamente chiudere l'applicazione se non si comprende chiaramente cosa sta succedendo.", + "appSecWarnBody2": "Si, il database è criptato ma nessuno può garantire che l'applicazione non sia stata modificata.", + "appSecWarnBtn": "Comprendo i rischi, continuo", + "appUnsavedWarn": "Modifiche non salvate!", + "appUnsavedWarnBody": "Hai delle modifiche non salvate, se chiudi l'app i cambiamenti andranno perduti.", + "appDontExitBtn": "Non uscire", + "appCannotLockAutoInit": "L'applicazione non può essere bloccata perché il salvataggio automatico è disattivato.", + "appCannotLock": "Hai delle modifiche non salvate che andranno perse. Continuare?", + "appAutoSave": "Salva le modifiche automaticamente", + "appSaveError": "Errore di salvataggio", + "appSaveErrorBody": "Errore nel salvataggio automatico", + "appSaveErrorBodyMul": "Errore nel salvataggio automatico", + "appSaveErrorExitLoseChanges": "Chiudi senza salvare le modifiche", + "appSaveErrorExitLoseChangesBody": "Puoi chiudere l'app e perdere le modifiche fatte, oppure esportare i dati dal menu File / Settings.", + "appSettingsError": "Errore di caricamento", + "appSettingsErrorBody": "Si è verificato un errore nel caricamento delle impostazioni. Per favore, ricontrolla l'URL della app o contatta il tuo amministratore.", + "appNotSupportedError": "Il tuo browser non è supportato.", + "appTabWarn": "Troppi pannelli", + "appTabWarnBody": "KeeWeb non può essere utilizzato in due pannelli contemporaneamente, per favore chiudi l'altro pannello.", + "appRightsAlert": "Assicurando l'app KeeWeb", + "appRightsAlertBody1": "La tua app KeeWeb non è attualmente al sicuro da modifiche non autorizzate. Ti chiediamo il permesso di rendere l'app modificabile solo agli amministratori", + "appRightsAlertBody2": "Non vuoi dare l'autorizzazione? Puoi farlo da solo nel terminale", + "appBrowserAuthComplete": "L' autenticazione è completa, puoi chiudere questa tab ora.", + "setGenTitle": "Impostazioni generali", + "setGenUpdate": "Aggiornamento", + "setGenNewVersion": "Una nuova versione è stata rilasciata e scaricata", + "setGenReleaseNotes": "Visualizza note di rilascio", + "setGenReloadToUpdate": "Ricarica per aggiornare", + "setGenUpdateManual": "Una nuova versione è disponibile. Gli aggiornamenti verranno controllati e installati automaticamente, ma l'aggiornamento automatico dalla versione corrente non è possibile.", + "setGenDownloadUpdate": "Download aggiornamento", + "setGenUpdateAuto": "Scarica e installa automaticamente", + "setGenUpdateCheck": "Controlla ma non installare", + "setGenNoUpdate": "Non controllare aggiornamenti", + "setGenUpdateChecking": "Controllando aggiornamenti", + "setGenCheckUpdate": "Controlla aggiornamenti", + "setGenErrorChecking": "Errore durante la ricerca aggiornamenti", + "setGenLastCheckSuccess": "L'ultima ricerca è stata effettuata il {}", + "setGenLastCheckVer": "La versione più recente era {}", + "setGenCheckedAt": "Verificato il", + "setGenLatestVer": "stai utilizzando l'ultima versione", + "setGenNewVer": "Nuova versione {} disponibile, rilasciata", + "setGenDownloadingUpdate": "Scaricamento aggiornamento...", + "setGenExtractingUpdate": "Estrazione aggiornamento...", + "setGenCheckErr": "C'è stato un errore durante il download della nuova versione", + "setGenNeverChecked": "Aggiornamenti mai controllati.", + "setGenRestartToUpdate": "Riavvia per aggiornare", + "setGenDownloadAndRestart": "Scarica aggiornamento e riavvia", + "setGenAppearance": "Aspetto", + "setGenTheme": "Tema", + "setGenThemeDefault": "Predefinito", + "setGenThemeDark": "Scuro", + "setGenThemeLight": "Chiaro", + "setGenThemeBlue": "Blu piatto", + "setGenThemeFb": "Blu", + "setGenThemeBl": "Blu chiaro", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Marrone scuro", + "setGenThemeLb": "Marrone chiaro", + "setGenThemeTerminal": "Terminale", + "setGenThemeTe": "Terminale", + "setGenThemeLt": "Terminale chiaro", + "setGenThemeHighContrast": "Alto contrasto", + "setGenThemeHc": "Alto contrasto", + "setGenThemeDc": "Alto contrasto scuro", + "setGenThemeSol": "Abbronzato", + "setGenThemeSd": "Solarized dark", + "setGenThemeSl": "Solarized light", + "setGenMoreThemes": "Altri temi", + "setGenAutoSwitchTheme": "Passa automaticamente dal tema chiaro a scuro quando possibile", + "setGenLocale": "Lingua", + "setGenLocOther": "altre lingue sono disponibili con i plugin", + "setGenFontSize": "Dimensione carattere", + "setGenFontSizeNormal": "Normale", + "setGenFontSizeLarge": "Largo", + "setGenFontSizeLargest": "Molto largo", + "setGenTitlebarStyle": "Stile della finestra (richiede il riavvio)", + "setGenTitlebarStyleDefault": "Default", + "setGenTitlebarStyleHidden": "Titolo personalizzato", + "setGenTitlebarStyleHiddenInset": "Titolo personalizzato, finestra spostabile", + "setGenShowSubgroups": "Visualizza voci da tutti i sottogruppi", + "setGenTableView": "Mostra le voci come una tabella", + "setGenColorfulIcons": "Icone personalizzate colorate", + "setGenUseMarkdown": "Contrassegna nelle note", + "setGenUseGroupIconForEntries": "Utilizza automaticamente l'icona di gruppo per le nuove voci", + "setGenDirectAutotype": "Se viene trovata una sola voce corrispondente, selezionarla automaticamente per Autoscrittura", + "setGenFunction": "Funzionalità", + "setGenAutoSyncOnClose": "Salva e sincronizza automaticamente alla chiusura", + "setGenAutoSyncTimer": "Salva e sincronizza automaticamente periodicamente", + "setGenAutoSyncTimerOff": "Disabilitato", + "setGenAutoSyncTimerInterval": "Ogni {} minute(s)", + "setGenRememberKeyFiles": "Ricorda i file chiave", + "setGenNoRememberKeyFiles": "Non ricordare", + "setGenRememberKeyFilesData": "Salva nell'archivio interno dell'app", + "setGenRememberKeyFilesPath": "Ricorda solo i percorsi dei file chiave", + "setGenLockInactive": "Blocco automatico se l'applicazione è inattiva", + "setGenNoAutoLock": "Non bloccare automaticamente", + "setGenLockMinutes": "per {} minuti", + "setGenLockHour": "In un'ora", + "setGenLockHours": "Per {} ore", + "setGenLockDay": "Un giorno", + "setGenClearClip": "Pulisci gli appunti dopo la copia", + "setGenNoClear": "Non ripulire", + "setGenClearSeconds": "In {} secondi", + "setGenClearMinute": "In un minuto", + "setGenMinInstead": "Minimizzare l'app anziché chiuderla", + "setGenLock": "Blocco automatico", + "setGenLockMinimize": "Blocco automatico al minimizzare", + "setGenLockCopy": "Blocco automatico su copia password", + "setGenLockAutoType": "Blocco automatico su scrittura automatica", + "setGenLockOrSleep": "Quando il computer è bloccato o ibernato", + "setGenStorage": "Archivio", + "setGenDisableOfflineStorage": "Non memorizzare nella cache i file caricati nell'archivio offline", + "setGenShortLivedStorageToken": "Usa sessioni di breve durata per l'archiviazione in cloud", + "setGenStorageLogout": "Esci", + "setGenShowAdvanced": "Mostra impostazioni avanzate", + "setGenDevTools": "Mostra dev tools", + "setGenTryBeta": "Prova la versione beta fino al riavvio", + "setGenTryBetaWarning": "File non salvati", + "setGenTryBetaWarningBody": "Per favore, salva tutti i file e clicca nuovamente questo bottone", + "setGenShowAppLogs": "Mostra log app", + "setGenReloadApp": "Ricarica l'app", + "setGenFieldLabelDblClickAutoType": "Autocompilazione tramite doppio click sulle etichette dei campi", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Non usare Touch ID", + "setGenTouchIdMemory": "Sblocca con Touch ID solo quando KeeWeb è in esecuzione", + "setGenTouchIdFile": "Usa sempre Touch ID invece della master password", + "setGenTouchIdPass": "Richiedi la master password dopo", + "setGenAudit": "Pubblico", + "setGenAuditPasswords": "Mostra avvisi sul livello di sicurezza password", + "setGenAuditPasswordEntropy": "Verifica randomizzazione e lunghezza password", + "setGenExcludePinsFromAudit": "Non controllare codici numerici corti (PIN), tipo 123456", + "setGenCheckPasswordsOnHIBP": "Controlla la password usando un servizio online {}", + "setGenHelpHIBP": "Attraverso un servizio online, KeeWeb può verificare se le tue password sono state precedentemente esposte in una violazione dei dati (data breach). La tua password non può essere recuperata in base ai dati inviati online, tuttavia il numero di password verificate in questo modo potrebbe essere esposto. Ulteriori informazioni sulla tua privacy quando utilizzi questo servizio sono disponibili {}. Se questa opzione è abilitata, KeeWeb controllerà automaticamente le tue password.", + "setGenHelpHIBPLink": "qui", + "setGenAuditPasswordAge": "Vecchia password", + "setGenAuditPasswordAgeOff": "Non mostrare avvisi per le vecchie password", + "setGenAuditPasswordAgeOneYear": "Mostra avvisi per password più vecchie di un anno", + "setGenAuditPasswordAgeYears": "Mostra avvisi per password più vecchie di {} anni", + "setFilePath": "Percorso file", + "setFileStorage": "Questo file è stato caricato da {}.", + "setFileIntl": "Questo file è salvato nella memoria interna dell'applicazione", + "setFileLocalHint": "Vuoi lavorare nativamente con i file locali sul tuo computer?", + "setFileDownloadApp": "Scarica l'app per desktop", + "setFileSave": "Salva", + "setFileSaveTo": "Salva in...", + "setFileClose": "Chiudi", + "setFileSync": "Sincronizza", + "setFileSyncVerb": "Sincronizza", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Ultima sincronizzazione", + "setFileLastSyncUnknown": "sconosciuto", + "setFileSyncInProgress": "Sincronizzazione in corso", + "setFileSyncError": "Errore sincronizzazione", + "setFilePass": "Password principale", + "setFileConfirmPass": "Conferma password principale", + "setFilePassChange": "Per cambiare la password, scrivi nel campo di Conferma", + "setFilePassChanged": "La password è stata cambiata; lascia il campo vuoto per usare la vecchia password", + "setFilePassNotMatch": "le password non coincidono, si prega di digitare di nuovo", + "setFileKeyFile": "File chiave", + "setFileSelKeyFile": "Selezione un file chiave", + "setFileNames": "Nomi", + "setFileDefUser": "Utente di default", + "setFileEnableTrash": "Abilita cestino", + "setFileHistMode": "Cronologia note", + "setFileHistLimited": "Elimina automaticamente i vecchi registri di cronologia", + "setFileHistDisabled": "Non salvare la cronologia", + "setFileHistUnlimited": "Conserva i registri della cronologia per sempre", + "setFileHistLen": "Lunghezza cronologia, mantieni le ultime modifiche per ogni voce", + "setFileHistSize": "Dimensione cronologia, MB totali per ogni file", + "setFileBackups": "Backup", + "setFileBackupEnable": "Fai il backup di questo file", + "setFileBackupPath": "Percorso backup", + "setFileBackupTime": "Effettua backup", + "setFileBackupNow": "Effettua ora", + "setFileBackupNowWorking": "In corso...", + "setFileBackupError": "Errore backup", + "setFileBackupErrorDescription": "Errore scrittura file backup", + "setFileBackupErrorIsDir": "Percorso di backup non valido", + "setFileBackupErrorIsDirDescription": "Il percorso di backup sembra puntare a una directory. Si prega di specificare un nome per il file all'interno di una directory.", + "setFileBackupOnSave": "Ogni volta che salvo il file", + "setFileBackupDaily": "Giornaliero", + "setFileBackupWeekly": "Settimanale", + "setFileBackupMonthly": "Mensile", + "setFileBackupManually": "Manuale, nessun backup automatico", + "setFileRounds": "Giri di crittografia chiave", + "setFileKdfParams": "Funzione di derivazione chiave", + "setFileKdfParamsIter": "Iterazioni", + "setFileKdfParamsMem": "Memoria, KB", + "setFileKdfParamsPar": "Parallelismo", + "setFileKeyChangeForce": "Chiedi di cambiare la chiave dopo (giorni)", + "setFileUseKeyFile": "Utilizza file chiave", + "setFileUseGenKeyFile": "Usa il file chiave generato", + "setFileUseOldKeyFile": "Usa il vecchio file chiave", + "setFileGenKeyFile": "Crea un nuovo file chiave", + "setFileDontUseKeyFile": "Non utilizzare file chiave", + "setFileEmptyPass": "Password vuota", + "setFileEmptyPassBody": "Salvare il database con una password vuota lo renderà senza protezioni. Vuoi veramente continuare?", + "setFileSaveError": "Errore di salvataggio", + "setFileSaveErrorBody": "Errore nel salvataggio del file", + "setFileAlreadyExists": "Già esistente", + "setFileAlreadyExistsBody": "Il file {} esiste già. Vuoi sovrascriverlo?", + "setFileUnsaved": "Modifiche non salvate", + "setFileUnsavedBody": "Ci sono modifiche non salvate in questo file", + "setFileCloseNoSave": "Chiudi e perdi modifiche", + "setFileDontClose": "Non chiudere", + "setFileFormatVersion": "Formato file", + "setFileExportRaw": "Esporta la tua password", + "setFileExportRawBody": "Il file esportato conterrà le tue password, quest'ultime non saranno crittografate. Vuoi continuare?", + "setFileDeviceIntro": "Codice one-time di questa {} sarà mostrato nell'app.", + "setFileDeviceSettings": "Impostazioni", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Non usare una YubiKey", + "setFileRefreshYubiKeyList": "Aggiorna la lista", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Utilizzare una YubiKey come parte della chiave principale è pericoloso e potresti perdere l'accesso alle tue password se qualcosa va storto. Hai eseguito un backup del tuo file prima di modificare questa impostazione?", + "setFileYubiKeyErrorEmptyMac": "Sembra che ci sia una YubiKey collegata, ma non è visibile. KeeWeb, per accedere a YubiKeys, deve essere aggiunto alla sezione Input Monitoring dalle impostazioni di sicurezza.", + "setShTitle": "Scorciatoie", + "setShShowAll": "Visualizza tutti", + "setShColors": "Visualizza tutti con colori", + "setShTrash": "Vai al cestino", + "setShFind": "Cerca, o comincia a digitare", + "setShClearSearch": "Cancella ricerca", + "setShCopyPass": "Copia la password o il campo selezionato", + "setShCopyUser": "Copia utente", + "setShCopyUrl": "Copia indirizzo web", + "setShAutoType": "Digita automaticamente la voce", + "setShPrev": "Vai alla voce precedente", + "setShNext": "Vai alla voce successiva", + "setShCreateEntry": "Crea nuova voce", + "setShOpen": "Apri / Nuovo", + "setShSave": "Salva tutti i file", + "setShGen": "Genera password", + "setShSet": "Impostazioni", + "setShCopyPassGlobal": "Copia password (quando l'applicazione è in background)", + "setShCopyOtp": "Copia OTP", + "setShAutoTypeGlobal": "Digita automaticamente", + "setShCopyPassOnly": "Copia password", + "setShRestoreApp": "apri {}", + "setShGlobal": "Queste scorciatoie a livello di sistema funzionano quando l'app è in esecuzione in background. Puoi fare clic su di essi per selezionare il tuo collegamento.", + "setShLock": "Blocca il database", + "setShEdit": "Premere una nuova combinazione di tasti per impostarla come scorciatoia", + "setPlInstallTitle": "Installa nuovi plugin", + "setPlInstallDesc": "I plugin di KeeWeb aggiungono funzionalità, temi e lingue a KeeWeb. I plugin vengono eseguiti con gli stessi privilegi di KeeWeb, possono accedere a e gestile le tue password. Non installare mai un plugin di cui non ti fidi.", + "setPlInstallLabel": "URL del plugin", + "setPlInstallBtn": "Installa", + "setPlInstallBtnProgress": "Installando", + "setPlUninstallBtn": "Disinstalla", + "setPlDisableBtn": "Disabilita", + "setPlEnableBtn": "Abilita", + "setPlUpdateBtn": "Aggiorna", + "setPlLocaleBtn": "Imposta questa lingua", + "setPlThemeBtn": "Usa questo tema", + "setPlJs": "codice", + "setPlCss": "stili", + "setPlLoc": "lingua", + "setPlCreatedBy": "Creato da {}", + "setPlLoadTime": "ha richiesto {} per caricarsi", + "setPlLastUpdate": "Ultimo controllo aggiornamenti", + "setPlLoadError": "errore di caricamento plugin", + "setPlGalleryLoading": "Caricamento plugin, attendere un momento per favore", + "setPlGalleryLoadError": "Errore di caricamento plugin", + "setPlInstallUrlTitle": "Aggiungi plugin dall'URL", + "setPlInstallUrlDesc": "Se il plugin non è nella galleria, lo puoi installare manualmente dall'URL", + "setPlOfficial": "Plugin KeeWeb ufficiale", + "setPlSearch": "Cerca plugin", + "setPlDevelop": "Vuoi sviluppare i tuoi plugin?", + "setPlDevelopStart": "Inizia qui", + "setPlTranslate": "Oppure puoi {}", + "setPlTranslateLink": "tradurre l'applicazione nella tua lingua", + "setPlAutoUpdate": "Aggiorna automaticamente", + "setPlLoadGallery": "Carica galleria plugin", + "setBrowserTitle": "Browser", + "setBrowserIntroDesktop": "KeeWeb può inserire le password utilizzando l'autocompilazione, tuttavia utilizzare un'estensione del browser potrebbe essere un modo più efficace per farlo. KeeWeb supporta due estensioni:", + "setBrowserIntroKeeWebConnect": "l'estensione ufficiale di KeeWeb è costruita pensando alle funzionalità di KeeWeb, ma potresti perdere alcune funzionalità avanzate che puoi trovare nell'altra estensione.", + "setBrowserIntroKeePassXcBrowser": "questa estensione è stata sviluppata per KeePassXC; è stata rilasciata da diverso tempo ed è piuttosto robusta. L'estensione, però, non fa parte di KeeWeb e potrebbero esserci problemi di compatibilità.", + "setBrowserIntroWeb": "Installa la nostra estensione del browser per compilare automaticamente le password da KeeWeb su pagine diverse. L'estensione del browser si collegherà a una scheda KeeWeb nel browser per recuperare le password. Clicca qui per scaricare l'estensione:", + "setBrowserNotEnabled": "L'integrazione del browser non è abilitata; le estensioni non saranno in grado di connettersi a KeeWeb. Utilizza le seguenti caselle di controllo per abilitarle:", + "setDevicesTitle": "Dispositivi", + "setDevicesEnableUsb": "Abilita interazione con i dispositivi USB", + "setDevicesYubiKeyIntro": "Si consiglia di leggere {} prima di utilizzare una YubiKey.", + "setDevicesYubiKeyIntroLink": "questo documento", + "setDevicesYubiKeyToolsDesc": "Per poter utilizzare YubiKey in questa modalità, è necessario installare uno strumento chiamato {}.", + "setDevicesYubiKeyToolsDesc2": "{} per ottenere ulteriori informazioni su questo strumento.", + "setDevicesYubiKeyToolsDescLink": "Clicca qui", + "setDevicesYubiKeyToolsStatusChecking": "Verifica se {} è installato", + "setDevicesYubiKeyToolsStatusOk": "{} è installato", + "setDevicesYubiKeyToolsStatusError": "{} non è installato o non funziona", + "setDevicesYubiKeyOtpTitle": "Codice one-time", + "setDevicesYubiKeyOtpDesc": "YubiKey può essere utilizzato per generare codici monouso per diversi servizi.", + "setDevicesYubiKeyOtpShowIcon": "Mostra l'icona nella schermata iniziale", + "setDevicesYubiKeyOtpAutoOpen": "Carica automaticamente i codici monouso quando sono presenti file aperti", + "setDevicesYubiKeyOtpMatchEntries": "Mostra i codici monouso corrispondenti nelle voci", + "setDevicesYubiKeyChalRespShow": "Mostra l'opzione per utilizzare una YubiKey durante l'apertura dei file", + "setDevicesYubiKeyStuckWorkaround": "Ricollega la YubiKey se sembra bloccata durante il caricamento", + "setAboutTitle": "Info su", + "setAboutBuilt": "Questa applicazione è fatta con questi magnifici strumenti", + "setAboutLic": "Licenza", + "setAboutLicComment": "L'applicazione stessa e tutte le componenti incluse che non sono di pubblico dominio sono sotto licenza MIT", + "setAboutFirst": "Questa è un'applicazione open-source creata da {}", + "setAboutSecond": "e rilasciata sotto licenza {}.", + "setAboutSource": "Il codice sorgente e i problemi sono su {}.", + "setHelpFormat": "Formato dei file", + "setHelpFormatBody": "Questo è un port dell'applicazione {} fatto con tecnologie web. Elabora file nel formato KeePass (kdbx). Si possono creare tali file (database delle password) sia con KeePaas che con questa applicazione. Il formato dei file è compatibile al 100% e dovrebbe essere accettato da entrambe le applicazioni.", + "setHelpProblems": "Serve aiuto?", + "setHelpProblems1": "Se qualcosa va male, per favore {}", + "setHelpProblems2": "oppure {}", + "setHelpOpenIssue": "apri una issue su GitHub", + "setHelpContactLink": "Contatta direttamente lo svilupoatore", + "setHelpAppInfo": "Informazioni sull'applicazione", + "setHelpOtherPlatforms": "Altre piattaforme", + "setHelpDesktopApps": "Applicazioni desktop", + "setHelpWebApp": "Applicazione web", + "setHelpUpdates": "Aggiornamenti", + "setHelpTwitter": "Twitter dell'applicazione", + "dropboxSetupDesc": "Sono richieste alcune configurazioni per usare Dropbox se l'applicazione è self-hosted. Per favore, crea la tua app Dropbox e riempi i campi qui sotto.", + "dropboxAppKey": "Chiave della app Dropbox", + "dropboxAppKeyDesc": "Copia la chiave dalla tua app Dropbox (Impostazioni per sviluppatori)", + "dropboxAppSecret": "Segreto dell'app Dropbox", + "dropboxAppSecretDesc": "Il Segreto puo essere trovato vicinino alla chiave dell'applicazione", + "dropboxFolder": "Cartella della tua app", + "dropboxFolderDesc": "Se la tua app è collegata all'intero Dropbox (invece che a una cartella dedicata all'app), imposta la cartella con i tuoi file kdbx", + "dropboxFolderSettingsDesc": "Seleziona una qualsiasi cartella nel tuo Dropbox dove saranno salvati i file (di default la cartella principale)", + "dropboxFolderPlaceholder": "Cartella di default", + "dropboxLink": "Collega l'app a", + "dropboxLinkApp": "Cartella app (Apps/KeeWeb)", + "dropboxLinkFull": "Intero Dropbox o qualsiasi cartella", + "dropboxLinkCustom": "Propria app Dropbox", + "gdriveSharedWithMe": "Condiviso con me", + "webdavSaveMethod": "Metodo di salvataggio", + "webdavSaveMove": "Carica un file temporaneo e spostalo", + "webdavSavePut": "Sovrascrivi il file kdbx con PUT", + "launcherSave": "Salva il database delle password", + "launcherFileFilter": "File KeePass", + "authPopupRequired": "I pop-up sono bloccati", + "authPopupRequiredBody": "Per favore, permetti i pop-up nel tuo browser o riprova", + "exportFileInfo": "Informazioni file", + "exportHtmlName": "Nome", + "exportHtmlDate": "Esporta data", + "exportGenerator": "Software", + "exportDescription": "Questo file è generato con {}.", + "importCsvTitle": "Importa da CSV", + "importCsvRun": "Importa", + "importIgnoreField": "Ignora", + "importTo": "Le voci verranno importate in", + "importNewFile": "Nuovo file", + "yubiKeyStuckError": "La YubiKey sembra essere bloccata, la riparazione automatica può essere abilitata nelle impostazioni dell'app.", + "yubiKeyNoKeyHeader": "YubiKey richiesta", + "yubiKeyNoKeyBody": "Inserisci la tua YubiKey con il numero di serie {}", + "yubiKeySlot": "slot", + "yubiKeyTouchRequestedHeader": "Tocca la YubiKey", + "yubiKeyTouchRequestedBody": "inserisci la tua YubiKey con il numero di serie {}", + "yubiKeyDisabledErrorHeader": "La USB è disabilitata", + "yubiKeyDisabledErrorBody": "La YubiKey è necessaria per aprire questo file, abilitare i dispositivi USB nelle impostazioni.", + "yubiKeyErrorWithCode": "Errore YubiKey, codice {}.", + "bioOpenAuthPrompt": "apri \"{}\"" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/it-IT/manifest.json b/keeweb/plugins/translations/it-IT/manifest.json new file mode 100644 index 0000000..56f76ef --- /dev/null +++ b/keeweb/plugins/translations/it-IT/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.18.0", + "manifestVersion": "0.1.0", + "name": "language-italian", + "description": "Italian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=it-IT", + "resources": { + "loc": "X5FxSuk/F5de2m6AuBiP3NQ2ivrPPG0aVlxOLvmLI63rUY/EMKd1b3DOjvkOt0aXtSUzMcmEKMp53RsDZNHgCmcl3+LncdhANC2zGxUjue8RnVi36M2Eo8w+dYZPc7fR8CndalCQxwNsS9Ly2L8RRht8smEUxUkNvFF4iOuSMh4QReDUAE9879PsPPze07XXtjbaLx7o+n5naHmRfsjZzSPIDQUbrmzO4shbd1AweGC2AaEVwNf3+ej/WOLkgFXJrQR7zoybU1wdh0wwVg9uiwISv3lCIDPrNUy9pQIpYjwqChcz1uu0KrObk+ort884Wz0aW6X2qaiY8j/mCPzp2A==" + }, + "locale": { + "name": "it-IT", + "title": "Italiano", + "flag": "🇮🇹" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/ja/index.html b/keeweb/plugins/translations/ja/index.html new file mode 100644 index 0000000..99260b4 --- /dev/null +++ b/keeweb/plugins/translations/ja/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: 日本語 + + + + +

KeeWeb Language: 日本語

+ https://plugins.keeweb.info/translations/ja + + diff --git a/keeweb/plugins/translations/ja/ja.json b/keeweb/plugins/translations/ja/ja.json new file mode 100644 index 0000000..b09b687 --- /dev/null +++ b/keeweb/plugins/translations/ja/ja.json @@ -0,0 +1,776 @@ +{ + "retToApp": "アプリに戻る", + "name": "名前", + "icon": "アイコン", + "title": "題名", + "password": "パスワード", + "user": "ユーザー", + "website": "ウェブサイト", + "tags": "タグ", + "notes": "ノート", + "entry": "エントリー", + "group": "グループ", + "noTitle": "無題", + "or": "または", + "history": "履歴", + "template": "テンプレート", + "templates": "テンプレート", + "notImplemented": "未実装", + "saveChanges": "変更を保存する", + "discardChanges": "変更を破棄する", + "advanced": "高度な設定", + "shortcuts": "ショートカット", + "help": "ヘルプ", + "settings": "設定", + "plugins": "プラグイン", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "エラー", + "oneMinute": "1分後", + "minutes": "{}分後", + "oneHour": "1時間後", + "hours": "{}時間後", + "oneDay": "1日後", + "days": "{}日後", + "oneWeek": "1週間後", + "oneMonth": "1ヶ月後", + "oneYear": "1年後", + "cache": "キャッシュ", + "file": "ファイル", + "device": "デバイス", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "すべての項目", + "menuColors": "色", + "menuTrash": "ごみ箱", + "menuSetGeneral": "一般", + "menuSetBrowser": "ブラウザ", + "menuSetAbout": "概要", + "menuSetDevices": "デバイス", + "menuAlertNoTags": "タグ無し", + "menuAlertNoTagsBody": "編集中のフィールドに新しいタグをタグ項目で追加できます", + "menuEmptyTrash": "ゴミ箱を空にする", + "menuEmptyTrashAlert": "ゴミ箱を空にしますか?", + "menuEmptyTrashAlertBody": "項目を元に戻すことはできません", + "menuItemCollapsed": "展開するにはダブルクリックしてください", + "menuRestoreApp": "{} を開く", + "menuQuitApp": "{}を閉じる", + "sysMenuAboutKeeWeb": "{}について", + "sysMenuServices": "サービス", + "sysMenuHide": "{}を隠す", + "sysMenuHideOthers": "その他を隠す", + "sysMenuUnhide": "すべて選択", + "sysMenuQuit": "{}を終了", + "sysMenuEdit": "編集", + "sysMenuUndo": "取消", + "sysMenuRedo": "やり直し", + "sysMenuCut": "切り取り", + "sysMenuCopy": "コピー", + "sysMenuPaste": "貼り付け", + "sysMenuSelectAll": "すべて選択", + "sysMenuWindow": "ウインドウ", + "sysMenuMinimize": "最小化", + "sysMenuClose": "ウインドウを閉じる", + "alertYes": "はい", + "alertNo": "いいえ", + "alertOk": "了解", + "alertCancel": "中止", + "alertSignIn": "サインイン", + "alertCopy": "コピー", + "alertClose": "閉じる", + "alertDoNotAsk": "もう尋ねないでください", + "alertAllow": "許可", + "alertDeny": "拒否", + "appBeta": "警告: ベータ版です。試用にのみお使いください", + "footerOpen": "開く / 新規", + "footerSyncError": "同期エラー", + "footerTitleGen": "パスワード生成", + "footerTitleLock": "ロック", + "genLen": "文字数", + "genNewPass": "パスワード", + "genPresetDefault": "既定のプリセット", + "genPresetDerived": "以前のパスワードのように", + "genPresetPronounceable": "短いパスワード", + "genPresetMed": "普通のパスワード", + "genPresetLong": "長いパスワード", + "genPresetPin4": "4桁の暗証番号", + "genPresetMac": "MACアドレス", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "genHidePass": "パスワードを隠す", + "genShowPass": "パスワードを表示する", + "grpTitle": "グループ", + "grpSearch": "このグループ内でのエントリーの検索を有効にする", + "grpAutoType": "自動入力を有効にする", + "grpAutoTypeSeq": "自動入力する項目の順序", + "grpAutoTypeSeqDefault": "自動入力で既定の順序を使用する", + "grpTrash": "このグループのエントリーをすべて削除する", + "tagTitle": "タグ", + "tagTrash": "すべてのエントリーからタグを除去する", + "tagRename": "名前の変更", + "tagTrashQuestion": "すべてのエントリーからタグを除去しますか?", + "tagTrashQuestionBody": "このタグをすべてのエントリーから除去します。容易に元に戻すことはできなくなります。", + "tagExists": "すでにタグが存在します", + "tagExistsBody": "この名前のタグはすでに存在します。別の名前にしてください。", + "tagBadName": "不適当な名前", + "tagBadNameBody": "タグ名に {} は使用できません。他の文字に置き換えてください。", + "genPsTitle": "パスワード生成のプリセット", + "genPsCreate": "新しいプリセット", + "genPsDelete": "プリセットを削除", + "genPsNew": "プリセット", + "genPsEnabled": "プリセットのリストに表示", + "genPsDefault": "既定として選択", + "genPsDefaultLength": "既定の長さ", + "genPsUpper": "大文字", + "genPsLower": "小文字", + "genPsDigits": "桁数", + "genPsSpecial": "特定の記号", + "genPsBrackets": "括弧", + "genPsHigh": "拡張ASCII文字", + "genPsAmbiguous": "見分けにくい文字記号", + "genPsInclude": "その他に追加する記号", + "genPsExample": "生成されるパスワードの例", + "genPsPattern": "パターン", + "genPsPatternHelp": "パターンでは、文字を指定できるカスタムルールを使用することができます。例えば、「1-AA」であれば数字で始まり、ダッシュ記号、アルファベット2文字のパスワードが生成されます。以下の記号を使用することができます。", + "genPsAllRanges": "全ての記号", + "genPsIncluded": "上記で追加された記号", + "keyChangeTitleRemote": "マスターキーが変更されました", + "keyChangeMessageRemote": "このデータベースのマスターキーは変更されました。新しいキーを入力してください", + "keyChangeTitleExpired": "マスターキーが期限切れです", + "keyChangeMessageExpired": "このデータベースのマスターキーは期限が切れました。新しいキーを入力してください", + "keyChangeRepeatPassword": "もう一度パスワードを入力してください", + "keyEnter": "エンター", + "keyEsc": "Esc", + "iconFavTitle": "webサイトのファビコンをダウンロードして使用する", + "iconSelCustom": "カスタムアイコンを選択", + "listEmptyTitle": "空", + "listEmptyAdd": "上の {} のボタンで追加", + "listGroup": "グループ", + "listNoWebsite": "ウェブサイトなし", + "listNoUser": "ユーザーなし", + "listNoAttachments": "添付ファイルなし", + "listAddTemplateHeader": "テンプレート", + "listAddTemplateBody1": "テンプレートを使用すると、ワンクリックで登録項目を作成できます。 テンプレートを追加して {} を再度クリックすると、使用できるようになります。", + "listAddTemplateBody2": "テンプレートは {} グループにあります。", + "searchAddNew": "新規作成", + "searchSort": "並べ替え", + "searchCreated": "作成", + "searchUpdated": "更新", + "searchAttachments": "添付ファイル", + "searchAZ": "昇順{}", + "searchZA": "降順{}", + "searchON": "旧 {} 新", + "searchNO": "新 {} 旧", + "searchShiftClickOr": "Shiftキーを押すか", + "searchAdvTitle": "高度な検索", + "searchSearchIn": "検索対象", + "searchOther": "その他のフィールド", + "searchProtect": "保護されたフィールド", + "searchOptions": "オプション", + "searchCase": "大文字小文字を区別", + "searchRegex": "正規表現", + "searchRank": "自動", + "searchExact": "正確に", + "openOpen": "開く", + "openNew": "新規作成", + "openNewFile": "新規", + "openMore": "更に表示", + "openDemo": "デモ", + "openGenerate": "パスワード生成", + "openXml": "XMLをインポート", + "openCaps": "Caps Lock オン", + "openClickToOpen": "ファイルを開く", + "openKeyFile": "キーファイル", + "openKeyFileDropbox": "(Dropboxから)", + "openDropHere": "ここにファイルをドロップ", + "openFailedRead": "ファイルを読み込みに失敗しました", + "openNothingFound": "見つかりませんでした", + "openNothingFoundBody": "適切なファイルが見つかりませんでした。", + "openSelectFile": "ファイルを選択", + "openSelectFileBody": "開きたいファイルを選んでください", + "openPassFor": "パスワード", + "openRemoveLastQuestion": "ローカルファイルを削除しますか?", + "openRemoveLastQuestionBody": "削除しようとしているファイルはこのアプリ内だけに保存されています。完全に削除しますか?", + "openRemoveLastQuestionModBody": "削除しようとしているファイルには変更した箇所があります。その変更を破棄して削除しますか?", + "openLocalFile": "ローカルファイル", + "openLocalFileBody": "アプリ内部に格納されているファイルを開こうとしています。変更はファイルシステムに保存されません。ファイルを取得するには、設定からエクスポートしてください。", + "openLocalFileDontShow": "再度 表示しない", + "openWrongFile": "不良ファイル", + "openWrongFileBody": "このファイル形式はサポートされていません。このアプリはKeePassデータベース形式ファイル(kdbx)で動作します。", + "openKdbFileBody": "古いバージョンの形式ファイル(KDB)を開こうとしています。このアプリは新しい形式(kdbx)のみサポートしています。KeePass v2 で変換してからご利用ください。", + "openConfigHeader": "{} 設定", + "openUrl": "URL", + "openUrlDesc": "https://server/path/file.kdbx または file.kdbx", + "openUser": "ユーザー", + "openUserDesc": "WebDAVサーバー ユーザー名 (必要に応じて)", + "openUserPlaceholder": "ユーザー名がありません", + "openPass": "パスワード", + "openPassDesc": "WebDAVサーバーのパスワード(ファイルのパスワードではありません)", + "openPassPlaceholder": "パスワードがありません", + "openConfigError": "エラー: {}", + "openConfigErrorNotFound": "ファイルが見つかりませんでした", + "openError": "エラー", + "openErrorDescription": "ファイルを開くときにエラーが発生しました", + "openErrorDescriptionMaybeTouchIdChanged": "使用中にこの種のエラーが起きるのは、iOSのTouch IDの設定に変更を行った、例えば、指紋の追加や削除や変更を行ったときです。もしその場合は、KeeWebの設定にあるTouch IDを無効にしたあと、再度有効にしてください。", + "openErrorFileNotFound": "ファイルが見つかりませんでした", + "openListErrorBody": "ファイルリストの読み込み中にエラーが発生しました", + "openShowAllFiles": "全ファイルを表示", + "openFileNoCacheError": "キャッシュストレージ内のファイルが見つかりませんでした。これはブラウザーのストレージがクリーンアップされた際に発生する場合があります。ファイルを開くには、KeeWebから削除して、もう一度追加してください。", + "openChalRespHeader": "チャレンジレスポンス認証", + "openChalRespLoading": "YubiKey一覧を読み込んでいます", + "openChalRespSelectYubiKey": "使用したいYubiKeyを選択してください", + "openChalRespErrorEmpty": "YubiKeyが見つかりませんでした。", + "openChalRespErrorEmptyMac": "macOSでこの機能を使用するのは初めてですか? セキュリティ設定内の入力監視の項目に KeeWeb を追加してください。", + "detAttDownload": "Shift+添付ファイルボタンでダウンロード、または", + "detAttDelToRemove": "Deleteで削除", + "detAttSave": "として保存", + "detEmpty": "あなたのパスワードがここに表示されます", + "detGroupRestore": "このグループを復元するには、ごみ箱の外のグループにドラッグしてください", + "detHistoryClickPoint": "エントリ履歴をクリックするとタイムラインの状態を表示します", + "detHistoryReturn": "エントリーに戻る", + "detHistoryRevert": "この状態に戻す", + "detHistoryDel": "状態を削除する", + "detHistoryEmpty": "空", + "detHistoryModified": "変更済み", + "detHistoryRec": "レコード", + "detHistoryRecs": "レコード", + "detHistoryVersion": "Version", + "detHistorySaved": "保存済み", + "detHistoryNoTitle": "無題", + "detHistoryCurState": "現在の状態", + "detHistoryCurUnsavedState": "現在の未保存の状態", + "detHistoryRevertAlert": "この状態に戻しますか?", + "detHistoryRevertAlertBody": "現在の状態は履歴に保存されます。", + "detHistoryDeleteAlert": "この状態を削除しますか?", + "detHistoryDeleteAlertBody": "元に戻すことはできなくなります。", + "detHistoryDiscardChangesAlert": "エントリーに対する変更を破棄しますか?", + "detHistoryDiscardChangesAlertBody": "保存されていない変更は破棄され、元に戻すことができません。", + "detBackToList": "リストに戻る", + "detSetIconColor": "色を変える", + "detSetIcon": "アイコンを変える", + "detDropAttachments": "添付するものをここにドロップします", + "detDelEntry": "削除", + "detDelEntryPerm": "恒久的に削除", + "detExpires": "期限", + "detExpired": "期限切れ", + "detGroup": "グループ", + "detCreated": "作成", + "detUpdated": "更新", + "detNetField": "新しいフィールド", + "detAttachments": "添付ファイル", + "detDelFromTrash": "ゴミ箱から削除しますか?", + "detDelFromTrashBody": "元に戻すことはできなくなります。", + "detDelFromTrashBodyHint": "すぐにごみ箱の空にするには、メニューからごみ箱開き、空にするアイコンをクリックしてください。", + "detDelToTrash": "エントリーを削除しますか?", + "detDelToTrashBody": "このエントリーはごみ箱フォルダに移動されます。", + "detFieldCopied": "コピーしました", + "detFieldCopiedTime": "{}秒間コピー", + "detCopyHint": "フィールドの題名をクリックすると、値がコピーされます", + "detMore": "その他...", + "detClickToAddField": "クリックして新しいフィールドを追加する", + "detMenuAddNewField": "新しいフィールドを追加する", + "detMenuAddNewWebsite": "別のサイトを追加", + "detMenuShowEmpty": "空のフィールドを表示する", + "detMenuHideEmpty": "空のフィールドを非表示にする", + "detMenuAddField": "{}を追加する", + "detMenuCopyPassword": "パスワードをコピーする", + "detMenuCopyUser": "ユーザーをコピーする", + "detMenuCopyOtp": "ワンタイムパスワードをコピー", + "detSetupOtp": "ワンタイムパスワード", + "detClone": "コピーを作成する", + "detCopyEntryToClipboard": "すべてのフィールドをコピー", + "detClonedName": "コピー", + "detAutoType": "自動入力", + "detAutoTypeSettings": "自動入力の設定", + "detAutoTypeEnabled": "このエントリーで自動入力を有効にする", + "detAutoTypeSequence": "キーストローク", + "detAutoTypeInput": "入力", + "detAutoTypeShortcutsDesc": "アプリがインアクティブの状態で{}または{}", + "detAutoTypeObfuscation": "実際ありそうなキーストロークをランダムに混ぜる", + "detAutoTypeWindow": "ウインドウ", + "detAutoTypeInputWindow": "ウインドウの題名", + "detSetupOtpAlert": "QRコードをスキャン", + "detSetupOtpAlertBody": "認証のページに表示されているQRコードをコピーしてください。", + "detSetupOtpAlertBody1": "1. 認証のページを表示する", + "detSetupOtpAlertBody2": "2. {}でQRコードのスクリーンショットを作成する", + "detSetupOtpAlertBody3": "3. {}でここに貼り付ける", + "detSetupOtpAlertBody3Mobile": "3. 選択するか、下の[選択/スキャン]ボタンを使用してカメラでスキャンします。", + "detSetupOtpAlertBody4": "もしコードをスキャンできない場合は、「手動でコード入力」をクリックしてください", + "detSetupOtpManualButton": "手動でコード入力", + "detSetupOtpScanButton": "選択/スキャン", + "detSetupOtpAlertBodyWith": "{}付き", + "detOtpImageError": "画像読み込みエラー", + "detOtpImageErrorBody": "申し訳ありませんが、画像フォーマットを認識できませんでした。アプリの開発者にエラーの詳細をご連絡ください。", + "detOtpImageReading": "QRコード読み取り中...", + "detOtpQrError": "QRコードスキャンエラー", + "detOtpQrErrorBody": "申し訳ありませんが、QRコードを読み取れませんでした。もう一度お試しいただくか、アプリの開発者にエラーの詳細をご連絡ください。", + "detOtpQrWrong": "不正なQRコード", + "detOtpQrWrongBody": "QRコードの読み取りは成功しましたが、ワンタイムパスワードが含まれていませんでした。", + "detOtpField": "ワンタイムパスワード", + "detOtpClickToTouch": "クリックして生成", + "detOtpGenerating": "生成中...", + "detOtpTouch": "{} にタッチしてください", + "detLockField": "このフィールドをロックすると、内容が検索の対象外となり表示もされません。内容を表示するには明示的にクリックすることが必要となります。", + "detUnlockField": "このフィールドをアンロックすると、直ちに内容が検索の対象となり表示もされます。", + "detRevealField": "表示", + "detHideField": "隠す", + "detAutoTypeField": "自動入力", + "detIssuesHideTooltip": "この警告を隠す", + "detIssueWeakPassword": "パスワードが弱いので、変更をお勧めします。", + "detIssuePoorPassword": "パスワードが非常に弱いです。変更を強く勧めます。", + "detIssuePwnedPassword": "{}によると、このパスワードはデータ漏洩で晒されています。変更を勧めます。", + "detIssuePasswordCheckError": "オンラインでパスワードの強度を確認する際、エラーが発生しました。", + "detIssueOldPassword": "古いパスワードです", + "detIssueCloseAlertHeader": "すでに非表示のパスワード", + "detIssueCloseAlertBody": "この警告を非表示にできる方法はいくつかあります:", + "detIssueCloseAlertEntry": "このエントリーは表示しない", + "detIssueCloseAlertSettings": "全体設定を調整", + "autoTypeEntryFields": "エントリー内のフィールド", + "autoTypeModifiers": "修飾キー", + "autoTypeKeys": "キー", + "autoTypeLink": "その他...", + "autoTypeError": "自動入力エラー", + "autoTypeErrorGeneric": "自動入力の実行時にエラーが発生しました: {}", + "autoTypeErrorAccessibilityMacOS": "アプリケーションに送られるキー操作を取得しようとしましたが、動作しませんでした。取得できなかったのは権限が足りないか、ここをクリックしてさらなる詳細を確認できます:", + "autoTypeErrorGlobal": "システムワイドのショートカットを使用するには、パスワードを入力したいアプリをフォーカスしてください", + "autoTypeErrorNotInstalled": "{}はインストールされていません", + "autoTypeHeader": "自動入力: 選択", + "autoTypeMsgNoWindow": "アクティブなウィンドウのタイトルを取得できませんでした。検索用に入力を開始してください。", + "autoTypeMsgMatchedByWindow": "{}のパスワードを選択", + "autoTypeNoMatches": "該当なし", + "autoTypeSelectionHint": "自動入力シーケンスを入力", + "autoTypeSelectionHintAction": "パスワードのみ入力", + "autoTypeSelectionHintOpt": "ユーザーのみ入力", + "autoTypeSelectionHintShift": "その他のフィールド", + "autoTypeSelectionOtp": "ワンタイムパスワード", + "autoTypeUnlockMessage": "自動入力の解除", + "appSecWarn": "安全ではありません!", + "appSecWarnBody1": "安全でない接続でアプリをロードしました。誰かが監視してパスワードを盗むかもしれません。あなたが何をしているのかを明確に理解しているのでなければ、操作を中止することを強く推奨します。", + "appSecWarnBody2": "あなたのデータベースは暗号化されています。しかし、あなたのアプリが変更されていないことを誰も保証することはできません。", + "appSecWarnBtn": "リスクを理解し、継続する", + "appUnsavedWarn": "未保存の変更です!", + "appUnsavedWarnBody": "未保存のファイルがあり、アプリを終了すると変更は破棄されます。", + "appDontExitBtn": "終了しない", + "appCannotLockAutoInit": "自動保存が無効になっているため、アプリをロックすることができません。", + "appCannotLock": "未保存の変更は破棄されます。継続しますか?", + "appAutoSave": "変更を自動的に保存する", + "appSaveError": "エラーを保存する", + "appSaveErrorBody": "ファイルの自動保存に失敗しました", + "appSaveErrorBodyMul": "ファイルの自動保存に失敗しました:", + "appSaveErrorExitLoseChanges": "変更を破棄して閉じる", + "appSaveErrorExitLoseChangesBody": "変更をすべて破棄してアプリを終了するか、データをエクスポートするためのファイル設定ができます", + "appSettingsError": "アプリのロード中にエラーが発生しました", + "appSettingsErrorBody": "アプリの設定をロード中にエラーが発生しました。アプリのURLを再度確認するか、管理者に連絡してください。", + "appNotSupportedError": "お使いのブラウザは、アプリが利用する機能をサポートしていません。", + "appTabWarn": "タブが多すぎます", + "appTabWarnBody": "KeeWebはブラウザの2つのタブで同時に使用することはできません。このタブを閉じてください", + "appRightsAlert": "KeeWebアプリをロックする", + "appRightsAlertBody1": "KeeWebアプリは現在、未承認の変更から保護されていません。 アプリを管理者のみが書き込み可能にする権限を求めています。", + "appRightsAlertBody2": "許可を与えたくありませんか? ターミナルで自分で行うこともできます。", + "appBrowserAuthComplete": "認証が完了しました。このタブはもう閉じてくださって構いません。", + "setGenTitle": "一般の設定", + "setGenUpdate": "更新", + "setGenNewVersion": "新しいバージョンのアプリがリリースされダウンロード済みです", + "setGenReleaseNotes": "リリースノートを参照する", + "setGenReloadToUpdate": "更新してリロードする", + "setGenUpdateManual": "新しいバージョンがリリースされています。自動更新を試みましたが、現在使用されているバージョンからの自動更新は不可能です。", + "setGenDownloadUpdate": "更新をダウンロードする", + "setGenUpdateAuto": "自動でダウンロードとインストールを行う", + "setGenUpdateCheck": "確認するがインストールはしない", + "setGenNoUpdate": "更新の確認をしない", + "setGenUpdateChecking": "更新の確認中", + "setGenCheckUpdate": "更新の確認", + "setGenErrorChecking": "更新の確認中にエラーが発生しました", + "setGenLastCheckSuccess": "{}に確認済み", + "setGenLastCheckVer": "最新のバージョンは{}です", + "setGenCheckedAt": "確認済み", + "setGenLatestVer": "最新バージョンを使用中です", + "setGenNewVer": "新しいバージョン{}がリリースされ利用可能です", + "setGenDownloadingUpdate": "更新をダウンロード中...", + "setGenExtractingUpdate": "更新を抽出中...", + "setGenCheckErr": "新しいバージョンのダウンロード中にエラーが発生しました", + "setGenNeverChecked": "更新を確認しない", + "setGenRestartToUpdate": "更新してKeeWebを再起動する", + "setGenDownloadAndRestart": "更新をダウンロードして再起動する", + "setGenAppearance": "外観", + "setGenTheme": "テーマ", + "setGenThemeDefault": "デフォルト", + "setGenThemeDark": "ダーク", + "setGenThemeLight": "ライト", + "setGenThemeBlue": "フラットブルー", + "setGenThemeFb": "ダークブルー", + "setGenThemeBl": "ライトブルー", + "setGenThemeBrown": "ブラウニー", + "setGenThemeDb": "ダークブラウン", + "setGenThemeLb": "ライトブラウン", + "setGenThemeTerminal": "ターミナル", + "setGenThemeTe": "ターミナル", + "setGenThemeLt": "ターミナルライト", + "setGenThemeHighContrast": "ハイコントラスト", + "setGenThemeHc": "ハイコントラスト", + "setGenThemeDc": "ダークコントラスト", + "setGenThemeSol": "Solarized", + "setGenThemeSd": "Solarized ダーク", + "setGenThemeSl": "Solarized ライト", + "setGenMoreThemes": "その他のテーマ", + "setGenAutoSwitchTheme": "可能な場合はライトとダークを自動的に切り替える", + "setGenLocale": "言語", + "setGenLocOther": "他の言語はプラグインで利用可能です", + "setGenFontSize": "フォントサイズ", + "setGenFontSizeNormal": "標準", + "setGenFontSizeLarge": "大", + "setGenFontSizeLargest": "最大", + "setGenTitlebarStyle": "ウインドウスタイル (要再起動)", + "setGenTitlebarStyleDefault": "デフォルト", + "setGenTitlebarStyleHidden": "カスタムタイトル", + "setGenTitlebarStyleHiddenInset": "カスタムタイトル、ドラッグ可能ウィンドウ", + "setGenShowSubgroups": "すべてのサブグループからエントリーを表示する", + "setGenTableView": "エントリーをテーブル表示する", + "setGenColorfulIcons": "リスト中で色付きのカスタムアイコンを使用する", + "setGenUseMarkdown": "ノート内でMarkdownを有効にする", + "setGenUseGroupIconForEntries": "新しいエントリにグループアイコンを自動的に使用する", + "setGenDirectAutotype": "一致するエントリーが一つだけの場合、自動入力でそのエントリーを使用する", + "setGenFunction": "機能", + "setGenAutoSyncOnClose": "閉じるときに自動で保存と同期を行う", + "setGenAutoSyncTimer": "定期的に自動で保存と同期を行う", + "setGenAutoSyncTimerOff": "無効", + "setGenAutoSyncTimerInterval": "{}分おき", + "setGenRememberKeyFiles": "キーファイルを記憶", + "setGenNoRememberKeyFiles": "記憶しない", + "setGenRememberKeyFilesData": "アプリ内部のストレージに格納する", + "setGenRememberKeyFilesPath": "キーファイルのパスのみ記憶する", + "setGenLockInactive": "(アプリがインアクティブになったら)", + "setGenNoAutoLock": "自動ロックしない", + "setGenLockMinutes": "{}分後", + "setGenLockHour": "1時間後", + "setGenLockHours": "{}時間後", + "setGenLockDay": "1日後", + "setGenClearClip": "コピーの後にクリップボードをクリアする", + "setGenNoClear": "クリアしない", + "setGenClearSeconds": "{}秒後", + "setGenClearMinute": "1分後", + "setGenMinInstead": "アプリを閉じる代わりに最小化する", + "setGenMinOnFieldCopy": "フィールドのコピーを最低限にする", + "setGenLock": "自動ロック", + "setGenLockMinimize": "アプリが最小化されたとき", + "setGenLockCopy": "パスワードをコピーした後", + "setGenLockAutoType": "自動入力の実行後", + "setGenLockOrSleep": "コンピュータがロックされたかスリープ状態に移行したとき", + "setGenStorage": "ストレージ", + "setGenDisableOfflineStorage": "オフラインストレージに読み込んだファイルをキャッシュしない", + "setGenShortLivedStorageToken": "クラウドストレージプロバイダでは短期セッションを利用", + "setGenStorageLogout": "ログアウト", + "setGenShowAdvanced": "高度な設定を表示する", + "setGenDevTools": "デベロッパーツールを表示する", + "setGenTryBeta": "再起動するまでベータバージョンを試用する", + "setGenTryBetaWarning": "未保存のファイル", + "setGenTryBetaWarningBody": "すべてのファイルを保存してもう一度このボタンをクリックしてください", + "setGenShowAppLogs": "アプリのログを表示する", + "setGenReloadApp": "アプリを再読み込みする", + "setGenFieldLabelDblClickAutoType": "フィールドの題名をダブルクリックで自動入力する", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Touch IDを使用しない", + "setGenTouchIdMemory": "KeeWebが動作中はTouch IDのみで解除する", + "setGenTouchIdFile": "マスターパスワードの代わりに常にTouch IDを使用", + "setGenTouchIdPass": "マスターパスワードを要求", + "setGenAudit": "監査", + "setGenAuditPasswords": "パスワードの強度に関する警告を表示する", + "setGenAuditPasswordEntropy": "パスワードの長さと複雑性を確認", + "setGenExcludePinsFromAudit": "123456のような、短絡的な数字のPIN番号ではないか確認", + "setGenCheckPasswordsOnHIBP": "{}サービスを利用してパスワードを確認", + "setGenHelpHIBP": "KeeWebではオンラインサービスを利用してあなたのパスワードが以前に漏洩していないのか確認することができます。あなたのパスワードを復号できる形でオンラインに送ることはできませんが、パスワードをチェックした回数は分かってしまうことがあります。このサービスのプライバシーについての詳細は{}を確認してください。このサービスを有効にした場合は、KeeWebは自動的にパスワードをチェックすることになります。", + "setGenHelpHIBPLink": "こちら", + "setGenAuditPasswordAge": "古いパスワード", + "setGenAuditPasswordAgeOff": "古いパスワードについて警告を表示しない", + "setGenAuditPasswordAgeOneYear": "パスワードを変更してから1年経過しているときは警告", + "setGenAuditPasswordAgeYears": "{}年以上前のパスワードに警告を表示する", + "setFilePath": "ファイルパス", + "setFileStorage": "{}からファイルをロードしました。", + "setFileIntl": "このファイルはアプリ内部のストレージに格納されています", + "setFileLocalHint": "ローカルファイルとシームレスに連携したいですか?", + "setFileDownloadApp": "デスクトップアプリをダウンロードしてください", + "setFileSave": "保存", + "setFileSaveTo": "...に保存", + "setFileClose": "閉じる", + "setFileSync": "同期", + "setFileSyncVerb": "同期", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "最終同期", + "setFileLastSyncUnknown": "不明", + "setFileSyncInProgress": "同期中", + "setFileSyncError": "同期エラー", + "setFilePass": "マスターパスワード", + "setFileConfirmPass": "マスターパスワードを確認する", + "setFilePassChange": "パスワードを変更するため、確認フィールドに入力してください", + "setFilePassChanged": "あなたのパスワードが変更されました(古いパスワードを使用するには、このフィールドを空白のままにします)", + "setFilePassNotMatch": "パスワードが一致しません。再度入力してください", + "setFileKeyFile": "キーファイル", + "setFileSelKeyFile": "キーファイルを選択", + "setFileNames": "名前", + "setFileDefUser": "デフォルトのユーザー", + "setFileEnableTrash": "ゴミ箱を有効にする", + "setFileHistMode": "エントリーの履歴", + "setFileHistLimited": "古い履歴を自動で削除します", + "setFileHistDisabled": "履歴を記録しません", + "setFileHistUnlimited": "履歴をいつまでも残します", + "setFileHistLen": "ひとつのエントリーについて記録しておく履歴の数", + "setFileHistSize": "ひとつのファイルについて使用する履歴ファイルのサイズ(MB)", + "setFileBackups": "バックアップ", + "setFileBackupEnable": "このファイルをバックアップする", + "setFileBackupPath": "バックアップパス", + "setFileBackupTime": "バックアップを作成する", + "setFileBackupNow": "今すぐバックアップ", + "setFileBackupNowWorking": "作業中...", + "setFileBackupError": "バックアップエラー", + "setFileBackupErrorDescription": "バックアップファイルの書き込みエラー", + "setFileBackupErrorIsDir": "バックアップパスが無効", + "setFileBackupErrorIsDirDescription": "バックアップパスはディレクトリを指し示しているようです。ディレクトリの代わりにその中のファイルを指定してください。", + "setFileBackupOnSave": "ファイルをセーブするときに常に", + "setFileBackupDaily": "毎日", + "setFileBackupWeekly": "毎週", + "setFileBackupMonthly": "毎月", + "setFileBackupManually": "手動で行い、自動バックアップは行わない", + "setFileRounds": "鍵の暗号化回数", + "setFileKdfParams": "鍵導出関数", + "setFileKdfParamsIter": "反復回数", + "setFileKdfParamsMem": "メモリ(KB)", + "setFileKdfParamsPar": "並行度", + "setFileKeyChangeForce": "キーを変更するよう依頼します(何日後か指定)", + "setFileUseKeyFile": "キーファイルを使用する", + "setFileUseGenKeyFile": "生成済みのキーファイルを使用する", + "setFileUseOldKeyFile": "古いキーファイルを使用する", + "setFileGenKeyFile": "新しいキーファイルを生成する", + "setFileDontUseKeyFile": "キーファイルを使用しない", + "setFileEmptyPass": "空のパスワード", + "setFileEmptyPassBody": "パスワードが空のままでデータベースを保存すると、それは全く守られないことを意味します。本当に実行しますか?", + "setFileSaveError": "保存エラー", + "setFileSaveErrorBody": "ファイル保存エラー", + "setFileAlreadyExists": "すでに存在します", + "setFileAlreadyExistsBody": "ファイル{}はすでに存在します。上書きしますか?", + "setFileUnsaved": "未保存の変更", + "setFileUnsavedBody": "このファイルには未保存の変更があります", + "setFileCloseNoSave": "変更を破棄して閉じる", + "setFileDontClose": "閉じない", + "setFileFormatVersion": "ファイルフォーマット", + "setFileExportRaw": "パスワードのエクスポート", + "setFileExportRawBody": "エクスポートされたファイルは暗号化されていないパスワードが保存されます。継続してもよろしいですか?", + "setFileDeviceIntro": "この{}からのワンタイムパスワードはこのアプリ内に表示されます。", + "setFileDeviceSettings": "設定", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "YubiKeyを使用しない", + "setFileRefreshYubiKeyList": "このリストをリフレッシュ", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "マスターキーの一部としてYubiKeyを使用することは危険です。また、最悪の場合パスワードを失う可能性があります。この設定に変更する前にファイルのバックアップを作成することを強く推奨します。", + "setFileYubiKeyErrorEmptyMac": "YubiKeyが接続されているようですが、表示されません。YukibiKeyと接続するには、セキュリティ設定の入力監視にKeeWebを追加してください。", + "setShTitle": "ショートカット", + "setShShowAll": "すべての項目を表示する", + "setShColors": "色付きの項目を表示する", + "setShTrash": "ごみ箱に移動する", + "setShFind": "検索", + "setShClearSearch": "検索をクリア", + "setShCopyPass": "パスワードまたは選択したフィールドをコピーする", + "setShCopyUser": "ユーザーをコピーする", + "setShCopyUrl": "ウェブサイトをコピーする", + "setShAutoType": "選択したエントリの自動入力を行う", + "setShPrev": "前の項目に移動する", + "setShNext": "次の項目に移動する", + "setShCreateEntry": "エントリーを作成する", + "setShOpen": "開く / 新規", + "setShSave": "全ファイルを保存する", + "setShGen": "パスワードを生成する", + "setShSet": "アプリの設定", + "setShCopyPassGlobal": "パスワードをコピーする", + "setShCopyOtp": "ワンタイムパスワードをコピー", + "setShAutoTypeGlobal": "自動入力を実行する", + "setShCopyPassOnly": "パスワードをコピーする", + "setShRestoreApp": "開く{}", + "setShGlobal": "これらシステム全体のショートカットはバックグラウンド中でも動作します。クリックすることで好きなショートカットに変更することができます。", + "setShLock": "データベースをロックする", + "setShEdit": "新しいキーの組み合わせを押して、ショートカットとして設定します", + "setPlInstallTitle": "新しいプラグインのインストール", + "setPlInstallDesc": "KeeWebプラグインは、KeeWebに機能、テーマ、言語を追加します。プラグインはKeeWebと同じ特権で動作するので、すべてのパスワードにアクセスしたり管理することができます。信頼できないプラグインは絶対にインストールしないでください。", + "setPlInstallLabel": "プラグインのURL", + "setPlInstallBtn": "インストール", + "setPlInstallBtnProgress": "インストール中", + "setPlUninstallBtn": "アンインストール", + "setPlDisableBtn": "無効", + "setPlEnableBtn": "有効", + "setPlUpdateBtn": "更新", + "setPlLocaleBtn": "この言語に切り替える", + "setPlThemeBtn": "このテーマに切り替える", + "setPlJs": "コード", + "setPlCss": "スタイル", + "setPlLoc": "言語", + "setPlCreatedBy": "{}によって作成されました", + "setPlLoadTime": "ロードに{}かかりました", + "setPlLastUpdate": "更新の最終確認", + "setPlLoadError": "プラグインのロードエラー", + "setPlGalleryLoading": "プラグインのロード中、少々お待ち下さい", + "setPlGalleryLoadError": "プラグインのロードエラー", + "setPlInstallUrlTitle": "URLからプラグインを追加", + "setPlInstallUrlDesc": "もしプラグインがギャラリーに存在しなければ、URLから手動でインストールできます", + "setPlOfficial": "KeeWeb公式プラグイン", + "setPlSearch": "プラグインを検索", + "setPlDevelop": "自分でプラグインを開発したいですか?", + "setPlDevelopStart": "ここから始められます", + "setPlTranslate": "または{}できます", + "setPlTranslateLink": "あなたの利用する言語向けにアプリを翻訳", + "setPlAutoUpdate": "自動で更新する", + "setPlLoadGallery": "プラグインギャラリーをロード", + "setBrowserTitle": "ブラウザ", + "setBrowserIntroDesktop": "KeeWebはパスワードの自動入力ができます、しかしながら、拡張機能を利用することでより便利にできるかもしれない。KeeWebでは2つの拡張機能をサポートしています:", + "setBrowserIntroKeeWebConnect": "KeeWeb公式の拡張機能、KeeWebの機能に考慮して作成されているが、他の拡張機能にあるような高度な機能よりも漏れがあるかもしれません。", + "setBrowserIntroKeePassXcBrowser": "もう一つは、KeePassXCのために作成された拡張機能、作成されてからしばらく立っているため堅牢です。この拡張機能はKeeWebの一部ではないため互換性に問題があります。", + "setBrowserIntroWeb": "パスワード自動入力の拡張機能インストールにはこのKeeWebサイトと別のページへ移動します。拡張機能はKeeWebに接続してパスワードを取得します。拡張機能をダウンロードするにはこちらをクリックしてください:", + "setBrowserNotEnabled": "ブラウザ統合が有効ではありません、拡張機能がKeeWebに接続できません。使用するにはこちらのチェックボックスを有効にしてください:", + "setBrowserEnablePerBrowser": "使用するにはこちらのチェックボックスを有効にしてください:", + "setBrowserFocusIfLocked": "ファイルを開いていない状態で拡張機能が接続するしようとした場合KeeWebを開く", + "setBrowserFocusIfEmpty": "URLでも発見できない場合エントリーの選択画面を表示", + "setBrowserOtherBrowsers": "その他のブラウザ", + "setBrowserExtensionFor": "{} のために", + "setBrowserExtensionNotSupported": "サポート外", + "setBrowserExtensionHelp": "インストールするには?", + "setBrowserExtensionInstall": "拡張機能のインストール", + "setBrowserExtensionKPXCWarnHeader": "{}は動作しません", + "setBrowserExtensionKPXCWarnBody1": "残念なことに、いくつかのアプリでは拡張機能に接続することに積極的ではありません。拡張機能をKeeWebに接続すると、アプリの関連付けを上書きするので、{}は動作しなくなります。それでも、チェックボックスを外さない場合、{}の関連付けを戻しません。再度動作させるには、{}のブラウザ統合の設定を行ってください", + "setBrowserExtensionKPXCWarnBody2": "拡張機能でKeeWebを使用する設定にしますか?", + "setBrowserSessions": "セッション", + "setBrowserSessionsEmpty": "セッションは接続されていません", + "setBrowserSessionsIntro": "これらの拡張機能は現在KeeWebと接続されています", + "setBrowserSessionsActiveTooltip": "有効なセッション", + "setBrowserSessionsActiveText": "このセッションは有効です。次の権限でKeeWebとデータをやり取りができます:", + "setBrowserSessionsInactiveTooltip": "有効でないセッション", + "setBrowserSessionsInactiveText": "このセッションは有効ではありません。拡張機能はKeeWebと接続していますが、データのやり取りをすることができません。拡張機能が何かを要求しきたとき、共有するものを選択することができます。", + "setBrowserSessionsDeniedTooltip": "アクセス拒否", + "setBrowserSessionsDeniedText": "このセッションは有効ではありません。拡張機能はKeeWebに接続していますが、データへのアクセスを拒否しています。", + "setBrowserSessionsConnectedDate": "接続済み", + "setBrowserSessionsTerminate": "このセッションを終了させる", + "setBrowserSessionsAccessToFiles": "ファイルへのアクセスを許可", + "setBrowserSessionsNoFileAccess": "拡張機能が必要なファイルへアクセスできず、KeeWebがパスワードを取得することができません。", + "setBrowserSessionsPasswordsRead": "パスワード読み取り", + "setBrowserSessionsPasswordsWritten": "パスワード保存", + "setDevicesTitle": "デバイス", + "setDevicesEnableUsb": "USBデバイスとの接続を有効にする", + "setDevicesYubiKeyIntro": "YubiKeyを使用する前に{}を読むことを推奨します。", + "setDevicesYubiKeyIntroLink": "このドキュメント", + "setDevicesYubiKeyToolsDesc": "このモードでYubiKeyを使用するには、{}というツールをインストールする必要があります。", + "setDevicesYubiKeyToolsDesc2": "このツールについては{}をご覧ください。", + "setDevicesYubiKeyToolsDescLink": "こちら", + "setDevicesYubiKeyToolsStatusChecking": "{}がインストールされているか確認中", + "setDevicesYubiKeyToolsStatusOk": "{}がインストールされています", + "setDevicesYubiKeyToolsStatusError": "{}がインストールされていないか、動作していません", + "setDevicesYubiKeyOtpTitle": "ワンタイムパスワード", + "setDevicesYubiKeyOtpDesc": "YubiKeyを使用して、様々なサービスのワンタイムパスワードを生成することができます。", + "setDevicesYubiKeyOtpShowIcon": "起動画面にアイコンを表示する", + "setDevicesYubiKeyOtpAutoOpen": "ファイルが開かれたときに自動でワンタイムパスワードを読み込む", + "setDevicesYubiKeyOtpMatchEntries": "エントリー内に一致するワンタイムパスワードを表示する", + "setDevicesYubiKeyChalRespTitle": "チャレンジレスポンス認証", + "setDevicesYubiKeyChalRespDesc": "YubiKeyをチャレンジレスポンス認証モードで使用し、ファイルの暗号化に使用する秘密鍵をYubiKeyに保管しておくことができます。", + "setDevicesYubiKeyChalRespShow": "ファイルが開くときに、YubiKeyを使用するオプションを表示する", + "setDevicesYubiKeyStuckWorkaround": "YubiKeyが読み込み中に問題が発生した場合、再接続する。", + "setDevicesYubiKeyRememberChalResp": "アプリが開かれている間はチャレンジレスポンス認証を記憶する", + "setAboutTitle": "概要", + "setAboutBuilt": "このアプリはこれらの素晴らしいツールを使用して作成されています", + "setAboutLic": "ライセンス", + "setAboutLicComment": "特に指定がない限り、アプリ自体と含まれるすべてのコンポーネントはMITライセンスの下でライセンスされます", + "setAboutFirst": "これは{}によって作成されたオープンソースのアプリです", + "setAboutSecond": "でライセンスは{}です", + "setAboutSource": "ソースコードと課題の管理は{}で行われています。", + "setHelpFormat": "ファイルフォーマット", + "setHelpFormatBody": "これはWeb技術を用いて{}アプリをポーティングしたものです。KeePassフォーマット(kbdx)のファイルを取り扱うことができます。このファイル(パスワードデータベース)はKeePassでもこのアプリでも作成することができます。ファイルフォーマットは100%の互換性があり、両方のアプリで取り扱えます。", + "setHelpProblems": "ヘルプが必要ですか?", + "setHelpProblems1": "なにかおかしな動作があったら、{}", + "setHelpProblems2": "または{}", + "setHelpOpenIssue": "GitHubでissueを作成する、", + "setHelpContactLink": "開発者に直接連絡してください", + "setHelpAppInfo": "アプリの情報", + "setHelpOtherPlatforms": "他のプラットフォーム", + "setHelpDesktopApps": "デスクトップアプリ", + "setHelpWebApp": "Webアプリ", + "setHelpUpdates": "更新", + "setHelpTwitter": "アプリのtwitter", + "dropboxSetupDesc": "セルフホストアプリケーションでDropboxを使用するには、いくつかの設定が必要です。 独自のDropboxアプリを作成して、下のキーに入力してください。", + "dropboxAppKey": "Dropbox app key", + "dropboxAppKeyDesc": "Dropboxアプリからキーをコピーする(Developer settings)", + "dropboxAppKeyHint": "あなたのapp key", + "dropboxAppSecret": "Dropbox app secret", + "dropboxAppSecretDesc": "app secretはapp keyの次に記載されているはずです。", + "dropboxFolder": "アプリフォルダ", + "dropboxFolderDesc": "もしアプリがDropboxの(アプリフォルダではなく)全体とリンクされているなら、kbdxファイルが存在するフォルダをここに設定してください", + "dropboxFolderSettingsDesc": "ファイルを格納するDrobox内のフォルダを選択 (デフォルトではルートフォルダ)", + "dropboxFolderPlaceholder": "デフォルトフォルダ", + "dropboxLink": "アプリを以下とリンク", + "dropboxLinkApp": "アプリフォルダ (Apps/KeeWeb)", + "dropboxLinkFull": "Dropbox内の任意のフォルダ", + "dropboxLinkCustom": "自身のDropboxアプリ", + "gdriveSharedWithMe": "共有アイテム", + "gdriveSharedDrives": "ドライブ共有", + "gdriveTeamDrives": "チームドライブ", + "webdavSaveMethod": "保存方式", + "webdavSaveMove": "一時ファイルをアップロードして移動する", + "webdavSavePut": "kdbxファイルをPUTで上書きします", + "webdavNoLastModified": "最終変更されたHTTPヘッダーがありません", + "webdavStatReload": "最終更新 HTTPヘッダーに依存するのではなく、常にファイルをリロードします", + "launcherSave": "パスワードデータベースを保存", + "launcherFileFilter": "KeePassファイル", + "authPopupRequired": "ポップアップはブロックされました", + "authPopupRequiredBody": "ブラウザの設定でポップアップを許可してから再度お試しください。", + "exportFileInfo": "ファイル情報", + "exportHtmlName": "名前", + "exportHtmlDate": "エクスポートされた日付", + "exportGenerator": "ソフトウェア", + "exportDescription": "このファイルは{}で生成されます", + "importCsvTitle": "CSVをインポート", + "importCsvRun": "インポート", + "importIgnoreField": "無視する", + "importTo": "エントリーは既にインポートされています", + "importNewFile": "ファイルを新規作成する", + "yubiKeyStuckError": "YubiKeyに問題が発生しています。設定から自動修正を有効化することができます。", + "yubiKeyNoKeyHeader": "YubiKeyが必要", + "yubiKeyNoKeyBody": "シリアル番号{}のYubiKeyを挿入してください", + "yubiKeySlot": "スロット", + "yubiKeyTouchRequestedHeader": "YubiKeyをタッチ", + "yubiKeyTouchRequestedBody": "シリアル番号{}のYubiKeyにタップしてください", + "yubiKeyDisabledErrorHeader": "USBが無効です", + "yubiKeyDisabledErrorBody": "このファイルを開くにはYubiKeyが必要です。設定からUSBデバイスを有効化してください。", + "yubiKeyErrorWithCode": "YubiKeyエラー、コード{}", + "bioOpenAuthPrompt": "\"{}\" を開く", + "extensionErrorNoOpenFiles": "ファイルを開いていません", + "extensionErrorUserRejected": "要求は拒否されました", + "extensionErrorNoMatches": "ログインはマッチしませんでした", + "extensionErrorAlertDisplayed": "他でダイアログボックスを表示されているため処理ができません、再度試してください", + "extensionConnectHeader": "拡張機能とデータをやり取り", + "extensionConnectIntro": "{}という拡張機能がKeeWebとデータのやり取りを試みています", + "extensionConnectUnknownActivity": "KeeWebは接続したアプリケーションが実際どうであるか確認はできません。この動作を理解しているときだけ要求を承認してください。", + "extensionConnectFiles": "このセッションで許可されるものは:", + "extensionConnectAllOtherFiles": "その他すべてのファイル", + "extensionConnectAllFiles": "すべてのファイル", + "extensionConnectAskGet": "拡張機能へパスワードを渡す前に確認:", + "extensionConnectAskGetMultiple": "複数の一致がある場合", + "extensionConnectAskGetAlways": "常に許可", + "extensionConnectAskSave": "KeeWebにパスワードを保存する前に確認:", + "extensionConnectAskSaveAlways": "常に許可", + "extensionConnectAskSaveAuto": "自動的に保存できない場合", + "extensionConnectSettingsAreForSession": "アクティブなセッションでのみこの選択は有効です。セッションの表示や管理はKeeWebの設定からできます。", + "extensionUnlockMessage": "拡張機能への接続を解除", + "extensionNewGroupHeader": "新規グループ", + "extensionNewGroupBody": "{}が新しいグループを作成していいですか?", + "extensionNewGroupPath": "グループのパス", + "extensionNewGroupFile": "このグループは以下の場所に作成されます", + "extensionSaveEntryHeader": "パスワードを保存", + "extensionSaveEntryBody": "{}でパスワードを保存していいですか?", + "extensionSaveEntryAuto": "このセッションでその他のパスワードも自動的に保存", + "extensionSaveEntryNewGroup": "新規グループ", + "extensionSelectPasswordFor": "{}に選択するパスワード", + "selectEntryHeader": "エントリーの選択", + "selectEntryEnterHint": "エントリーを強調", + "selectEntryTypingHint": "入力してフィルタ", + "selectEntryContains": "含まれた文字", + "selectEntrySubdomains": "サブドメイン", + "selectEntryFieldHeader": "フィールド選択", + "selectEntryFieldTouch": "デバイスのボタンを押してワンタイムパスワードを生成します" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/ja/manifest.json b/keeweb/plugins/translations/ja/manifest.json new file mode 100644 index 0000000..f229a2b --- /dev/null +++ b/keeweb/plugins/translations/ja/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.15.0", + "manifestVersion": "0.1.0", + "name": "language-japanese", + "description": "Japanese language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ja", + "resources": { + "loc": "FOqn8osvBbZJYo4NaPrX3AYwOJ/FVT6y+8NKQhbFTyp4zlxB1b6Q7KNezLFNE1iSgOForf0/ewIG10TIXPzKOVgzPgHYnnmD3KkxXOPKkNHb6/fz916ebnXjtMpcvsIJJAnsTHFySpmszdFddiAYiErUFk4DHkZWY/iboV/6mpU8ia8Zm6/2HQo+AlcItqRKSFMihTF19QP0iY0ZXIkOoVdP4qcgcQymL/cDS47Xa/lTQsSoo+YRLuxdNLH55/QPL7vR9nL/fgOXnih+s3CpwFhK7GVJqeJk3PhIfEPtyvJXzkUMo4kOcGTJru7B6OzL8Prj+vIljr5/Hva5IXv2KA==" + }, + "locale": { + "name": "ja", + "title": "日本語", + "flag": "🇯🇵" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/ko/index.html b/keeweb/plugins/translations/ko/index.html new file mode 100644 index 0000000..4545e94 --- /dev/null +++ b/keeweb/plugins/translations/ko/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: 한국어 + + + + +

KeeWeb Language: 한국어

+ https://plugins.keeweb.info/translations/ko + + diff --git a/keeweb/plugins/translations/ko/ko.json b/keeweb/plugins/translations/ko/ko.json new file mode 100644 index 0000000..01a11a3 --- /dev/null +++ b/keeweb/plugins/translations/ko/ko.json @@ -0,0 +1,487 @@ +{ + "retToApp": "앱으로 돌아가기", + "name": "이름", + "icon": "아이콘", + "title": "제목", + "password": "비밀번호", + "user": "사용자", + "website": "웹사이트", + "tags": "태그", + "notes": "노트", + "entry": "항목", + "group": "그룹", + "noTitle": "제목 없음", + "or": "또는", + "history": "이력", + "template": "템플릿", + "notImplemented": "구현되지 않음", + "saveChanges": "변경 사항 저장", + "discardChanges": "변경 사항 취소", + "advanced": "고급", + "shortcuts": "바로 가기", + "help": "도움말", + "settings": "설정", + "plugins": "플러그인", + "cache": "캐시", + "file": "파일", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "모든 항목", + "menuColors": "색상", + "menuTrash": "휴지통", + "menuSetGeneral": "일반", + "menuSetAbout": "대하여", + "menuAlertNoTags": "태그 없음", + "menuAlertNoTagsBody": "태그 섹션에서 필드를 편집하는 동안 새 태그를 추가 할 수 있습니다.", + "menuEmptyTrash": "휴지통 비우기", + "menuEmptyTrashAlert": "휴지통을 비우시겠습니까?", + "menuEmptyTrashAlertBody": "항목을 다시 넣을 수 없습니다.", + "menuItemCollapsed": "더블 클릭하여 확장", + "alertYes": "예", + "alertNo": "아니오", + "alertOk": "확인", + "alertCancel": "취소", + "alertSignIn": "로그인", + "alertCopy": "복사", + "alertClose": "닫기", + "appBeta": "경고: 미리보기 용 베타 버전", + "footerOpen": "열기 / 새로 만들기", + "footerSyncError": "동기화 오류", + "footerTitleGen": "생성", + "footerTitleLock": "잠금", + "genLen": "길이", + "genNewPass": "새 비밀번호", + "genPresetDefault": "기본 사전 설정", + "genPresetDerived": "이전 비밀번호 처럼", + "genPresetPronounceable": "발음 할 수 있는", + "genPresetMed": "중간 길이", + "genPresetLong": "길게", + "genPresetPin4": "4 자리 PIN", + "genPresetMac": "MAC 주소", + "genPresetHash128": "128 비트 해시", + "genPresetHash256": "256 비트 해시", + "grpTitle": "그룹", + "grpSearch": "이 그룹에서 항목 검색 사용", + "grpAutoType": "자동 채우기 사용", + "grpAutoTypeSeq": "자동 채우기 시퀀스", + "grpAutoTypeSeqDefault": "기본 자동 채우기 시퀀스 사용", + "grpTrash": "그룹 내의 모든 항목을 함께 삭제", + "tagTitle": "태그", + "tagTrash": "모든 항목에서 태그 제거", + "tagRename": "이름 변경", + "tagTrashQuestion": "모든 항목에서 태그를 제거하시겠습니까?", + "tagTrashQuestionBody": "이 태그는 모든 항목에서 제거됩니다. 그것을 되돌릴 수있는 쉬운 방법은 없습니다.", + "tagExists": "태그가 이미 있습니다.", + "tagExistsBody": "이 이름의 태그가 이미 있습니다. 다른 이름을 선택하십시오.", + "tagBadName": "잘못된 이름", + "tagBadNameBody": "태그 이름에는 {}가 포함될 수 없습니다. 제거하십시오.", + "genPsTitle": "생성기 사전 설정", + "genPsCreate": "새 사전 설정", + "genPsDelete": "사전 설정 삭제", + "genPsNew": "사전 설정", + "genPsEnabled": "사전 설정 목록에 표시", + "genPsDefault": "기본적으로 선택됨", + "genPsDefaultLength": "기본 길이", + "genPsUpper": "대문자 라틴 문자", + "genPsLower": "소문자 라틴 문자", + "genPsDigits": "숫자", + "genPsSpecial": "특수 기호", + "genPsBrackets": "괄호", + "genPsHigh": "높은 ASCII 문자", + "genPsAmbiguous": "모호한 기호", + "genPsInclude": "포함 할 추가 기호", + "genPsExample": "생성 된 암호의 예", + "keyChangeTitleRemote": "마스터 키 변경됨", + "keyChangeMessageRemote": "이 데이터베이스에 대해 마스터 키가 변경되었습니다. 새 키를 입력하십시오.", + "keyChangeTitleExpired": "마스터 키가 만료되었습니다.", + "keyChangeMessageExpired": "이 데이터베이스의 마스터 키가 만료되었습니다. 새 키를 입력하십시오.", + "keyChangeRepeatPassword": "비밀번호, 재입력", + "iconFavTitle": "웹사이트 favicon 다운로드 및 사용", + "iconSelCustom": "사용자 정의 아이콘 선택", + "listEmptyTitle": "비어 있음", + "listEmptyAdd": "위의 {} 버튼으로 추가", + "listGroup": "그룹", + "listNoWebsite": "웹사이트 없음", + "listNoUser": "사용자 없음", + "listNoAttachments": "첨부 파일 없음", + "listAddTemplateHeader": "템플릿", + "listAddTemplateBody1": "템플릿을 사용하면 클릭 한 번으로 항목을 만들 수 있습니다. 템플리트 항목에 무언가를 추가 한 다음 {}을 다시 클릭하여이 템플릿을 사용하십시오.", + "listAddTemplateBody2": "{} 그룹에서 언제든지 템플릿을 찾을 수 있습니다.", + "searchAddNew": "새로 추가", + "searchSort": "정렬", + "searchCreated": "생성일자", + "searchUpdated": "수정일자", + "searchAttachments": "첨부 파일", + "searchAZ": "ㄱ {} ㅎ", + "searchZA": "ㅎ {} ㄱ", + "searchON": "예전 {} 신규", + "searchNO": "신규 {} 예전", + "searchShiftClickOr": "shift-click 또는", + "searchAdvTitle": "고급 검색으로 전환", + "searchSearchIn": "검색 대상", + "searchOther": "다른 필드", + "searchProtect": "보안 필드", + "searchOptions": "옵션", + "searchCase": "대소문자 구분", + "searchRegex": "정규식", + "openOpen": "열기", + "openNew": "새로 만들기", + "openMore": "더 보기", + "openDemo": "데모", + "openXml": "XML 가져오기", + "openCaps": "Caps Lock 켜져 있음", + "openClickToOpen": "파일을 열려면 클릭하십시오.", + "openKeyFile": "키 파일", + "openKeyFileDropbox": "(dropbox로 부터)", + "openDropHere": "여기에 파일 놓기", + "openFailedRead": "파일 읽기 실패", + "openNothingFound": "아무것도 찾을 수 없음", + "openNothingFoundBody": "열 수 있는 파일이 없습니다.", + "openSelectFile": "파일 선택", + "openSelectFileBody": "열려고하는 파일을 선택하십시오.", + "openPassFor": "비밀번호", + "openRemoveLastQuestion": "로컬 파일을 삭제 하시겠습니까?", + "openRemoveLastQuestionBody": "삭제할 파일은 앱 내에 만 저장됩니다. 영구적으로 삭제 하시겠습니까?", + "openRemoveLastQuestionModBody": "삭제할 파일에 로컬 수정이 있습니다. 삭제하고 수정 사항을 무시 하시겠습니까?", + "openLocalFile": "로컬 파일", + "openLocalFileBody": "앱 내부에 저장 될 파일을 열려고합니다. 변경 한 내용은 파일 시스템에 다시 저장되지 않습니다. 데이터로 파일을 가져 오려면 설정에서 내보내기를 수행하십시오.", + "openLocalFileDontShow": "다시 표시하지 않음", + "openWrongFile": "잘못된 파일", + "openWrongFileBody": "이 파일 형식은 지원되지 않습니다. 이 응용 프로그램은 KeePass 데이터베이스 형식 파일 (kdbx)으로 작동합니다.", + "openKdbFileBody": "이전 버전 서식 파일 (KDB)을 여는 중입니다. 이 응용 프로그램은 새로운 형식 (kdbx) 만 지원합니다. KeePass v2를 사용하여 변환하십시오.", + "openConfigHeader": "{} 설정", + "openUrl": "URL", + "openUrlDesc": "https://server/path/file.kdbx, 또는 file.kdbx", + "openUser": "사용자", + "openUserDesc": "WebDAV 서버 사용자 (필요한 경우)", + "openUserPlaceholder": "사용자 없음", + "openPass": "비밀번호", + "openPassDesc": "WebDAV 서버 비밀번호 (이것은 파일 비밀번호가 아닙니다)", + "openPassPlaceholder": "비밀번호 없음", + "openConfigError": "오류: {}", + "openConfigErrorNotFound": "파일을 찾을 수 없음", + "openError": "오류", + "openErrorDescription": "파일을 여는 중 오류가 발생했습니다.", + "openErrorFileNotFound": "파일을 찾을 수 없음", + "detAttDownload": "다운로드 또는 다운로드하려면 Shift 키를 누른 채 첨부 파일 버튼을 클릭하십시오.", + "detAttDelToRemove": "제거하려면 삭제", + "detEmpty": "비밀번호가 여기에 표시됩니다.", + "detGroupRestore": "이 그룹을 복원하려면 휴지통 바깥 쪽 그룹으로 드래그하십시오.", + "detHistoryClickPoint": "상태 보기를 하려면 항목 이력 타임라인 포인트를 클릭", + "detHistoryReturn": "항목으로 돌아가기", + "detHistoryRevert": "상태 되돌리기", + "detHistoryDel": "상태 삭제", + "detHistoryEmpty": "비어 있음", + "detHistoryModified": "수정됨", + "detHistoryRec": "기록", + "detHistoryRecs": "개", + "detHistoryVersion": "버전", + "detHistorySaved": "저장 시간", + "detHistoryNoTitle": "제목 없음", + "detHistoryCurState": "현재 상태", + "detHistoryCurUnsavedState": "현재 저장되지 않은 상태", + "detBackToList": "목록으로 돌아가기", + "detSetIconColor": "색상 변경", + "detSetIcon": "아이콘 변경", + "detDropAttachments": "첨부 파일을 여기에 놓으십시오.", + "detDelEntry": "삭제", + "detDelEntryPerm": "영구적으로 삭제", + "detExpires": "만료일", + "detExpired": "만료됨", + "detGroup": "그룹", + "detCreated": "생성일", + "detUpdated": "수정일", + "detNetField": "새 필드", + "detAttachments": "첨부 파일", + "detDelFromTrash": "휴지통에서 삭제 하시겠습니까?", + "detDelFromTrashBody": "작업은 되돌릴 수 없습니다.", + "detDelFromTrashBodyHint": "휴지통에서 모든 항목을 빠르게 제거하려면 휴지통 메뉴에서 빈 아이콘을 클릭하십시오.", + "detFieldCopied": "복사됨", + "detFieldCopiedTime": "{} 초 동안 복사 됨", + "detCopyHint": "제목을 클릭하여 필드 값을 복사 할 수 있습니다.", + "detMore": "더 보기", + "detClickToAddField": "클릭하여 새 필드 추가", + "detMenuAddNewField": "새로운 필드 추가", + "detMenuShowEmpty": "빈 필드 보기", + "detMenuHideEmpty": "빈 필드 숨기기", + "detMenuAddField": "{} 추가", + "detMenuCopyPassword": "비밀번호 복사", + "detMenuCopyUser": "사용자 복사", + "detSetupOtp": "일회용 비밀번호", + "detClone": "복사본 생성", + "detClonedName": "복사", + "detAutoType": "자동 채우기", + "detAutoTypeSettings": "자동 채우기 설정", + "detAutoTypeEnabled": "이 항목에 자동 채우기 사용", + "detAutoTypeSequence": "키 입력", + "detAutoTypeInput": "입력", + "detAutoTypeShortcutsDesc": "앱이 비활성 상태인 동안 {} 또는 {}", + "detAutoTypeObfuscation": "무작위로 실제 키 입력을 혼합", + "detAutoTypeWindow": "창", + "detAutoTypeInputWindow": "창 제목", + "detSetupOtpAlert": "QR 코드 스캔", + "detSetupOtpAlertBody": "인증 페이지에 표시되는 QR 코드를 복사하십시오.", + "detSetupOtpAlertBody1": "1. 승인 페이지로 이동", + "detSetupOtpAlertBody2": "2. QR 코드 {}의 스크린 샷 만들기", + "detSetupOtpAlertBody3": "3. {}에 붙여넣기", + "detSetupOtpAlertBody3Mobile": "3. 아래의 선택/스캔 버튼을 사용하여 선택하거나 카메라로 스캔", + "detSetupOtpAlertBody4": "코드를 스캔 할 수없는 경우 수동으로 코드 입력을 클릭하십시오.", + "detSetupOtpManualButton": "수동으로 코드 입력", + "detSetupOtpScanButton": "선택/스캔", + "detSetupOtpAlertBodyWith": "{}와", + "detOtpImageError": "이미지 읽기 오류", + "detOtpImageErrorBody": "죄송합니다. 이미지 형식을 읽을 수 없습니다. 오류에 대한 세부 정보는 앱 작성자에게 문의하십시오.", + "detOtpImageReading": "QR 코드를 읽는 중 ...", + "detOtpQrError": "QR 코드 스캔 오류", + "detOtpQrErrorBody": "죄송합니다. QR 코드를 읽을 수 없습니다. 다시 시도하거나 오류 세부 정보로 앱 작성자에게 문의하십시오.", + "detOtpQrWrong": "잘못된 QR 코드", + "detOtpQrWrongBody": "QR 코드가 성공적으로 스캔되었지만 일회용 암호 데이터가 없습니다.", + "autoTypeEntryFields": "항목 필드", + "autoTypeModifiers": "수정 키", + "autoTypeKeys": "키", + "autoTypeLink": "더 보기 ...", + "autoTypeError": "자동 채우기 오류", + "autoTypeErrorGeneric": "자동 채우기 수행 중 오류 발생: {}", + "autoTypeErrorGlobal": "시스템 전체에 대한 단축키를 사용하려면 비밀번호를 입력할 위치에 앱을 위치하십시오.", + "autoTypeErrorNotInstalled": "{}이(가) 설치되지 않았습니다.", + "autoTypeHeader": "자동 채우기: 선택", + "autoTypeMsgNoWindow": "활성 창 제목을 가져올 수 없어 검색을 위해 입력을 시작했습니다.", + "autoTypeMsgMatchedByWindow": "{}의 비밀번호 선택", + "autoTypeNoMatches": "일치하는 항목 없음", + "appSecWarn": "안전하지 않음!", + "appSecWarnBody1": "안전하지 않은 연결로 이 앱을 로드했습니다. 누군가 당신을 보고 암호를 훔쳐 갈 수 있습니다. 자신이 하는 일을 분명히 이해하지 않는 한, 그만 두는 것이 좋습니다.", + "appSecWarnBody2": "예, 데이터베이스는 암호화되어 있지만 아무도 앱이 변경되지 않았음을 보장 할 수 없습니다.", + "appSecWarnBtn": "위험을 이해하고 계속합니다.", + "appUnsavedWarn": "저장되지 않은 변경 사항!", + "appUnsavedWarnBody": "저장하지 않은 파일이 있는 경우 앱을 닫으면 변경 사항이 손실됩니다.", + "appDontExitBtn": "종료하지 마시기 바랍니다.", + "appCannotLockAutoInit": "자동 저장이 비활성화되어 앱을 잠글 수 없습니다.", + "appCannotLock": "저장하지 않은 변경사항은 손실됩니다. 계속 진행하시겠습니까?", + "appAutoSave": "변경 사항 자동 저장", + "appSaveError": "저장 오류", + "appSaveErrorBody": "파일 자동 저장 실패", + "appSaveErrorBodyMul": "자동 저장 실패한 파일:", + "appSettingsError": "앱 로딩 오류", + "appSettingsErrorBody": "앱 설정을로드하는 중에 오류가 발생했습니다. 앱 URL을 다시 확인하거나 관리자에게 문의하십시오.", + "appNotSupportedError": "브라우저가 지원되지 않습니다.", + "appTabWarn": "너무 많은 탭", + "appTabWarnBody": "KeeWeb은 두 개의 브라우저 탭에서 동시에 사용할 수 없으므로 이 탭을 닫으십시오.", + "setGenTitle": "일반 설정", + "setGenUpdate": "업데이트", + "setGenNewVersion": "새 앱 버전이 출시되어 다운로드되었습니다.", + "setGenReleaseNotes": "릴리스 정보 보기", + "setGenReloadToUpdate": "업데이트를 위해 새로 고침", + "setGenUpdateManual": "새 버전이 출시되었습니다. 업데이트를 확인하고 자동으로 설치하지만, 이 버전에서 자동 업그레이드는 불가능합니다.", + "setGenDownloadUpdate": "업데이트 다운로드", + "setGenUpdateAuto": "자동 다운로드 및 설치", + "setGenUpdateCheck": "확인하지만 설치하지 않음", + "setGenNoUpdate": "업데이트 확인하지 않음", + "setGenUpdateChecking": "업데이트 확인 중", + "setGenCheckUpdate": "업데이트 확인", + "setGenErrorChecking": "업데이트 확인 오류", + "setGenLastCheckSuccess": "마지막으로 성공한 확인은 {} 입니다.", + "setGenLastCheckVer": "최신 버전은 {}", + "setGenCheckedAt": "확인함", + "setGenLatestVer": "최신 버전을 사용하고 있습니다.", + "setGenNewVer": "새 버전 {} 을(를) 사용할 수 있음", + "setGenDownloadingUpdate": "업데이트 다운로드 중...", + "setGenExtractingUpdate": "업데이트 추출 중...", + "setGenCheckErr": "새 버전을 다운로드하는 동안 오류가 발생했습니다.", + "setGenNeverChecked": "업데이트를 확인하지 않음", + "setGenRestartToUpdate": "업데이트하려면 앱 다시 시작", + "setGenDownloadAndRestart": "업데이트 다운로드 및 다시 시작", + "setGenAppearance": "외관", + "setGenTheme": "테마", + "setGenThemeFb": "플랫 블루", + "setGenThemeDb": "다크 브라운", + "setGenThemeTe": "터미널", + "setGenThemeHc": "고 대비", + "setGenThemeSd": "솔라이즈드 다크", + "setGenThemeSl": "솔라이즈드 라이트", + "setGenLocale": "언어", + "setGenLocOther": "플러그인으로 다른 언어를 사용할 수 있습니다.", + "setGenFontSize": "글자 크기", + "setGenFontSizeNormal": "보통", + "setGenFontSizeLarge": "크게", + "setGenFontSizeLargest": "가장 크게", + "setGenTitlebarStyle": "창 스타일 (다시 시작해야 함)", + "setGenTitlebarStyleDefault": "기본", + "setGenTitlebarStyleHidden": "사용자정의 제목", + "setGenTitlebarStyleHiddenInset": "사용자 정의 제목, 드래그 가능한 창", + "setGenShowSubgroups": "모든 하위 그룹의 항목 표시", + "setGenTableView": "항목 목록 테이블 형식으로 보기", + "setGenColorfulIcons": "목록에 다채로운 사용자 정의 아이콘", + "setGenFunction": "기능", + "setGenRememberKeyFiles": "키 파일 기억하기", + "setGenNoRememberKeyFiles": "기억하지 않음", + "setGenRememberKeyFilesData": "내부 앱 저장소에 저장", + "setGenRememberKeyFilesPath": "키 파일 경로만 기억", + "setGenLockInactive": "앱이 비활성 상태인 경우 자동 잠금", + "setGenNoAutoLock": "자동 잠금 안함", + "setGenLockMinutes": "{} 분 후", + "setGenLockHour": "1 시간 후", + "setGenLockHours": "{} 시간 동안", + "setGenLockDay": "하루 동안", + "setGenClearClip": "복사 후 클립보드 지우기", + "setGenNoClear": "지우지 않음", + "setGenClearSeconds": "{} 초 후", + "setGenClearMinute": "1 분 후", + "setGenMinInstead": "닫기 대신 앱 최소화", + "setGenLockMinimize": "최소화 시 자동 잠금", + "setGenLockCopy": "암호 사본에 자동 잠금", + "setGenLockAutoType": "자동 채우기의 자동 잠금", + "setGenStorage": "저장소", + "setGenShowAdvanced": "고급 설정 보이기", + "setGenDevTools": "개발 도구 보이기", + "setGenTryBeta": "다시 시작할 때까지 베타 버전 사용", + "setGenTryBetaWarning": "저장되지 않은 파일", + "setGenTryBetaWarningBody": "모든 파일을 저장하고이 버튼을 다시 클릭하십시오.", + "setGenShowAppLogs": "앱 로그 보기", + "setFilePath": "파일 경로", + "setFileStorage": "이 파일은 {}에서 로드되었습니다", + "setFileIntl": "이 파일은 내부 앱 저장소에 저장되었습니다.", + "setFileLocalHint": "로컬 파일과 원활하게 작업하고 싶습니까?", + "setFileDownloadApp": "데스크톱 앱 다운로드", + "setFileSave": "저장", + "setFileSaveTo": "저장 대상 ...", + "setFileClose": "닫기", + "setFileSync": "동기화", + "setFileSaveToXml": "XML", + "setFileLastSync": "마지막 동기화", + "setFileLastSyncUnknown": "알 수 없는", + "setFileSyncInProgress": "진행중인 동기화", + "setFileSyncError": "동기화 오류", + "setFilePass": "마스터 비밀번호", + "setFilePassChanged": "비밀번호가 변경되었습니다. 이전 비밀번호를 사용하려면 입력란을 비워 두십시오.", + "setFileKeyFile": "키 파일", + "setFileSelKeyFile": "키 파일 선택", + "setFileNames": "이름", + "setFileDefUser": "기본 사용자", + "setFileEnableTrash": "휴지통 사용", + "setFileHistLen": "이력 길이, 항목 당 마지막 기록을 유지", + "setFileHistSize": "이력 크기, 파일 당 총 MB", + "setFileBackups": "백업", + "setFileBackupEnable": "이 파일을 백업", + "setFileBackupPath": "백업 경로", + "setFileBackupTime": "백업 만들기", + "setFileBackupNow": "지금 백업", + "setFileBackupNowWorking": "작업 중...", + "setFileBackupError": "백업 오류", + "setFileBackupErrorDescription": "백업 파일을 쓰는 중 오류가 발생했습니다.", + "setFileBackupOnSave": "파일을 저장할 때마다", + "setFileBackupDaily": "매일", + "setFileBackupWeekly": "주마다", + "setFileBackupMonthly": "월마다", + "setFileBackupManually": "수동으로, 자동 백업 없음", + "setFileRounds": "키 암호화 라운드", + "setFileKdfParams": "키 파생 함수", + "setFileKdfParamsIter": "반복", + "setFileKdfParamsMem": "메모리 (KB)", + "setFileKdfParamsPar": "병렬", + "setFileKeyChangeForce": "키 변경 요청 주기 (일):", + "setFileUseKeyFile": "키 파일 사용", + "setFileUseGenKeyFile": "생성된 키 파일 사용", + "setFileUseOldKeyFile": "이전 키 파일 사용", + "setFileGenKeyFile": "새 키 파일 생성", + "setFileDontUseKeyFile": "키 파일 사용 안 함", + "setFileEmptyPass": "비어있는 비밀번호", + "setFileEmptyPassBody": "비어있는 비밀번호로 데이터베이스를 저장하면 완전히 보호되지 않습니다. 정말 저장하시겠습니까?", + "setFileSaveError": "저장 오류", + "setFileSaveErrorBody": "파일 저장 중 오류", + "setFileAlreadyExists": "이미 존재 함", + "setFileAlreadyExistsBody": "파일 {}이(가) 이미 있습니다. 덮어 쓰시겠습니까?", + "setFileUnsaved": "저장되지 않은 변경 사항", + "setFileUnsavedBody": "파일에 저장되지 않은 변경 사항이 있습니다.", + "setFileCloseNoSave": "닫고 변경 사항을 버립니다.", + "setFileDontClose": "닫지 마십시오.", + "setShTitle": "바로 가기", + "setShShowAll": "모든 항목 표시", + "setShColors": "색상이 있는 항목 표시", + "setShTrash": "휴지통 바로 가기", + "setShFind": "검색하거나 타이핑을 시작", + "setShClearSearch": "검색 지우기", + "setShCopyPass": "비밀번호 또는 선택한 필드 복사", + "setShCopyUser": "사용자 복사", + "setShCopyUrl": "웹사이트 복사", + "setShAutoType": "선택한 항목에 자동 채우기", + "setShPrev": "이전 항목으로 이동", + "setShNext": "다음 항목으로 이동", + "setShCreateEntry": "항목 작성", + "setShOpen": "열기/새로 만들기", + "setShSave": "모든 파일 저장", + "setShGen": "비밀번호 생성", + "setShSet": "앱 설정", + "setShCopyPassGlobal": "비밀번호 복사 (앱이 백그라운드 일 때)", + "setShAutoTypeGlobal": "자동 채우기 (앱이 백그라운드 일 때)", + "setShLock": "데이터베이스 잠그기", + "setPlInstallTitle": "새 플러그인 설치", + "setPlInstallDesc": "KeeWeb 플러그인은 KeeWeb에 기능, 테마 및 언어를 추가합니다. KeeWeb과 동일한 권한으로 실행되는 플러그인은 모든 비밀번호를 액세스하고 관리 할 수 있습니다. 신뢰할 수없는 플러그인을 설치하지 마십시오.", + "setPlInstallLabel": "플러그인 URL", + "setPlInstallBtn": "설치", + "setPlInstallBtnProgress": "설치 중", + "setPlUninstallBtn": "제거", + "setPlDisableBtn": "사용 안함", + "setPlEnableBtn": "사용", + "setPlUpdateBtn": "업데이트", + "setPlLocaleBtn": "이 언어로 전환", + "setPlThemeBtn": "이 테마로 전환", + "setPlJs": "코드", + "setPlCss": "스타일", + "setPlLoc": "언어", + "setPlCreatedBy": "작성자 {}", + "setPlLoadTime": "로드하는데 {} 소요됨", + "setPlLastUpdate": "마지막 업데이트 확인", + "setPlLoadError": "플러그인 로드 오류", + "setPlGalleryLoading": "플러그인로드 중입니다. 조금 기다려주세요.", + "setPlGalleryLoadError": "플러그인 로드 오류", + "setPlInstallUrlTitle": "URL에서 플러그인 추가", + "setPlInstallUrlDesc": "플러그인이 갤러리에 없으면 URL에서 수동으로 설치할 수 있습니다.", + "setPlOfficial": "공식 KeeWeb 플러그인", + "setPlSearch": "플러그인 검색", + "setPlDevelop": "자신의 플러그인을 개발하고 싶습니까?", + "setPlDevelopStart": "여기에서 시작하십시오.", + "setPlTranslate": "또는 {} 할 수 있습니다.", + "setPlTranslateLink": "앱을 귀하의 언어로 번역하십시오.", + "setPlAutoUpdate": "자동으로 업데이트", + "setPlLoadGallery": "플러그인 갤러리 로드", + "setAboutTitle": "대하여", + "setAboutBuilt": "앱 제작에 도움을 준 멋진 도구들", + "setAboutLic": "저작권", + "setAboutLicComment": "앱 자체 및 퍼블릭 도메인에 포함되지 않은 모든 구성 요소는 MIT 라이센스에 따라 라이센스가 부여됩니다.", + "setAboutFirst": "{}이(가) 만든 오픈 소스 앱입니다.", + "setAboutSecond": "저작권은 {}에 있습니다.", + "setAboutSource": "소스 코드와 문제는 {}에 있습니다.", + "setHelpFormat": "파일 형식", + "setHelpFormatBody": "이것은 웹 기술로 구축된 {} 앱 입니다. 그것은 KeePass 형식의 파일을 이해합니다 (kdbx). KeePass 또는이 응용 프로그램에서 이러한 파일 (암호 데이터베이스)을 만들 수 있습니다. 파일 형식은 100 % 호환되며 두 앱에서 모두 이해해야합니다.", + "setHelpProblems": "도움이 필요합니까?", + "setHelpProblems1": "문제가 발생하면, {}", + "setHelpProblems2": "또는 {}", + "setHelpOpenIssue": "GitHub에서 문제 열기", + "setHelpContactLink": "개발자에게 직접 문의하십시오.", + "setHelpAppInfo": "앱 정보", + "setHelpOtherPlatforms": "다른 플랫폼", + "setHelpDesktopApps": "데스크톱 앱", + "setHelpWebApp": "웹 앱", + "setHelpUpdates": "업데이트", + "setHelpTwitter": "트위터", + "dropboxSetupDesc": "Dropbox를 자체 호스팅 된 응용 프로그램에서 사용하려면 일부 구성이 필요합니다. 나만의 Dropbox 앱을 만들고 아래의 키를 작성하십시오.", + "dropboxAppKey": "Dropbox 앱 키", + "dropboxAppKeyDesc": "보관 용 계정 키 복사 (개발자 설정)", + "dropboxFolder": "앱 폴더", + "dropboxFolderDesc": "앱이 전체 Dropbox (앱 폴더 아님)에 링크되어있는 경우 여기에 kdbx 파일이 있는 폴더를 설정하십시오.", + "dropboxFolderSettingsDesc": "Dropbox에서 파일을 저장할 폴더를 선택하십시오 (기본적으로 루트 폴더).", + "dropboxFolderPlaceholder": "기본 폴더", + "dropboxLink": "앱 연결 대상", + "dropboxLinkApp": "앱 폴더 (Apps/KeeWeb)", + "dropboxLinkFull": "전체 Dropbox 또는 폴더", + "dropboxLinkCustom": "자신의 Dropbox 앱", + "webdavSaveMethod": "저장 방법", + "webdavSaveMove": "임시 파일 업로드 및 이동", + "webdavSavePut": "PUT을 사용하여 kdbx 파일 덮어 쓰기", + "launcherSave": "암호 데이터베이스 저장", + "launcherFileFilter": "KeePass 파일", + "authPopupRequired": "팝업이 차단되었습니다.", + "authPopupRequiredBody": "브라우저에서 이 앱에 대한 팝업을 허용하십시오." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/ko/manifest.json b/keeweb/plugins/translations/ko/manifest.json new file mode 100644 index 0000000..86e5ffa --- /dev/null +++ b/keeweb/plugins/translations/ko/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.10.0", + "manifestVersion": "0.1.0", + "name": "language-korean", + "description": "Korean language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ko", + "resources": { + "loc": "j7xsl/rjYOC4KiMwNVyw/JNOOwrWbOA/LTbAQcvurcCBJXlI7a5YJ/Sgq5c2GIR1KyfebDHWrMAQZ/eEmf0WnAvYs5+1X9ublfJJNo40wyn8h/ro+RKFPJOzuW2uPpg9fQteX/KujujtDHqxnqAlNw+/bLxtyzvZTZSZPxZCqtII+o4mvRYz0d+NzKcd6T1FjdqJIb++dlZBpFW48trRmxFYaZ0W643nzvxsP+fxT/nm7bGbyQI2dow1cNR5jyAgebXxkJpNXAon3kZ9JfuPgK+jsduSo1Z4uyRt1uc+UlTI6OwEGpYGX8x2fXOpL64eus3vdYS/Dh0N947cQP7DtA==" + }, + "locale": { + "name": "ko", + "title": "한국어", + "flag": "🇰🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/meta.json b/keeweb/plugins/translations/meta.json new file mode 100644 index 0000000..90697c5 --- /dev/null +++ b/keeweb/plugins/translations/meta.json @@ -0,0 +1,104 @@ +{ + "zh-TW": { + "name": "繁體中文", + "nameEn": "Chinese Traditional", + "count": 711, + "version": "1.12.0" + }, + "zh-CN": { + "name": "简体中文", + "nameEn": "Chinese Simplified", + "count": 774, + "version": "1.23.0" + }, + "ja": { + "name": "日本語", + "nameEn": "Japanese", + "count": 774, + "version": "1.15.0" + }, + "pt-PT": { + "name": "Português", + "nameEn": "Portuguese", + "count": 681, + "version": "1.9.0" + }, + "cs": { + "name": "Čeština", + "nameEn": "Czech", + "count": 774, + "version": "1.10.0" + }, + "tr": { + "name": "Türkçe", + "nameEn": "Turkish", + "count": 774, + "version": "1.20.0" + }, + "pl": { + "name": "Polski", + "nameEn": "Polish", + "count": 774, + "version": "1.33.0" + }, + "hu": { + "name": "Magyar", + "nameEn": "Hungarian", + "count": 700, + "version": "1.32.0" + }, + "sk": { + "name": "Slovenčina", + "nameEn": "Slovak", + "count": 700, + "version": "1.11.0" + }, + "uk": { + "name": "Українська", + "nameEn": "Ukrainian", + "count": 774, + "version": "1.25.0" + }, + "pt-BR": { + "name": "Português (Brasil)", + "nameEn": "Portuguese (Brazil)", + "count": 774, + "version": "1.14.0" + }, + "nl-NL": { + "name": "Nederlands", + "nameEn": "Dutch", + "count": 774, + "version": "1.41.0" + }, + "fr-FR": { + "name": "Français", + "nameEn": "French", + "count": 774, + "version": "1.34.0" + }, + "de-DE": { + "name": "Deutsch", + "nameEn": "German", + "count": 693, + "version": "1.25.0" + }, + "it-IT": { + "name": "Italiano", + "nameEn": "Italian", + "count": 705, + "version": "1.18.0" + }, + "ru-RU": { + "name": "Русский", + "nameEn": "Russian", + "count": 774, + "version": "1.30.0" + }, + "es-ES": { + "name": "Español", + "nameEn": "Spanish", + "count": 774, + "version": "1.34.0" + } +} \ No newline at end of file diff --git a/keeweb/plugins/translations/nl-NL/index.html b/keeweb/plugins/translations/nl-NL/index.html new file mode 100644 index 0000000..ebfefe2 --- /dev/null +++ b/keeweb/plugins/translations/nl-NL/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Nederlands + + + + +

KeeWeb Language: Nederlands

+ https://plugins.keeweb.info/translations/nl-NL + + diff --git a/keeweb/plugins/translations/nl-NL/manifest.json b/keeweb/plugins/translations/nl-NL/manifest.json new file mode 100644 index 0000000..05e6d9e --- /dev/null +++ b/keeweb/plugins/translations/nl-NL/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.41.0", + "manifestVersion": "0.1.0", + "name": "language-dutch", + "description": "Dutch language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=nl-NL", + "resources": { + "loc": "LPK+dVYc3XRZ1WWM3veInF/+G1HlwImxPJCvK/fy6xOq/YKmzZcKZJfn4aKnke1WMuv9r0cfU1FlHtA+Sg9KgLGEdXNfRcrz3wJdtzHv1n1U8amXJi/psNt6/Kj0P/HYvXtOJg7hScE30Lty8ZYZ+C0mz9BQdU42Me4vQ1+lMPQ/oSDYMv2ETQk/wvbKmcoOwo5Gd5gNgNiXaoHp+GZOA+5oxGNSQJlGHVwj7avtzNIn1JvNioy8CJQZLuShcS5cGHzfgSIylRh2vNZ2fhUqkOUqloSDly++D4jvMgatjvcF3yY+mQMpACXwWwfU5Ldnv3HLHYzqdKjZ4LM+ZxM1Pw==" + }, + "locale": { + "name": "nl-NL", + "title": "Nederlands", + "flag": "🇳🇱" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/nl-NL/nl-NL.json b/keeweb/plugins/translations/nl-NL/nl-NL.json new file mode 100644 index 0000000..c6f783c --- /dev/null +++ b/keeweb/plugins/translations/nl-NL/nl-NL.json @@ -0,0 +1,776 @@ +{ + "retToApp": "Terug naar de app", + "name": "Naam", + "icon": "Pictogram", + "title": "Titel", + "password": "wachtwoord", + "user": "Gebruiker", + "website": "Website", + "tags": "Labels", + "notes": "Notities", + "entry": "Item", + "group": "Groep", + "noTitle": "Geen titel", + "or": "of", + "history": "Geschiedenis", + "template": "Sjabloon", + "templates": "Sjablonen", + "notImplemented": "Niet geïmplementeerd", + "saveChanges": "Wijzigingen opslaan", + "discardChanges": "Ongedaan maken", + "advanced": "Geavanceerd", + "shortcuts": "Sneltoetsen", + "help": "Help", + "settings": "Instellingen", + "plugins": "Plug-ins", + "ctrlKey": "Ctrl", + "shiftKey": "Shift", + "altKey": "Alt", + "error": "fout", + "oneMinute": "een minuut", + "minutes": "{} minuten", + "oneHour": "een uur", + "hours": "{} uur", + "oneDay": "een dag", + "days": "{} dagen", + "oneWeek": "een week", + "oneMonth": "een maand", + "oneYear": "een jaar", + "cache": "cache", + "file": "bestand", + "device": "Apparaat", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Alle items", + "menuColors": "Kleuren", + "menuTrash": "Prullenbak", + "menuSetGeneral": "Algemeen", + "menuSetBrowser": "Webbrowser", + "menuSetAbout": "Over", + "menuSetDevices": "Apparaten", + "menuAlertNoTags": "Geen labels", + "menuAlertNoTagsBody": "Nieuwe labels kunnen worden toegevoegd tijdens het bewerken van velden in de sectie Labels.", + "menuEmptyTrash": "Prullenbak leegmaken", + "menuEmptyTrashAlert": "Prullenbak leegmaken?", + "menuEmptyTrashAlertBody": "Je kunt dit niet meer herstellen.", + "menuItemCollapsed": "Dubbelklik om uit te klappen", + "menuRestoreApp": "{} openen", + "menuQuitApp": "{} afsluiten", + "sysMenuAboutKeeWeb": "Over {}", + "sysMenuServices": "Diensten", + "sysMenuHide": "Verberg {}", + "sysMenuHideOthers": "Verberg andere", + "sysMenuUnhide": "Toon alles", + "sysMenuQuit": "{} afsluiten", + "sysMenuEdit": "Bewerken", + "sysMenuUndo": "Ongedaan maken", + "sysMenuRedo": "Opnieuw uitvoeren", + "sysMenuCut": "Knippen", + "sysMenuCopy": "Kopiëren", + "sysMenuPaste": "Plakken", + "sysMenuSelectAll": "Alles selecteren", + "sysMenuWindow": "Venster", + "sysMenuMinimize": "Minimaliseren", + "sysMenuClose": "Venster sluiten", + "alertYes": "Ja", + "alertNo": "Nee", + "alertOk": "Oké", + "alertCancel": "Annuleren", + "alertSignIn": "Aanmelden", + "alertCopy": "Kopiëren", + "alertClose": "Sluiten", + "alertDoNotAsk": "Niet meer vragen", + "alertAllow": "Toestaan", + "alertDeny": "Afwijzen", + "appBeta": "WAARSCHUWING: bèta-versie, alleen voor testdoeleinden", + "footerOpen": "Openen / Nieuw", + "footerSyncError": "Synchonisatiefout", + "footerTitleGen": "Genereren", + "footerTitleLock": "Vergrendelen", + "genLen": "Lengte", + "genNewPass": "Nieuw wachtwoord", + "genPresetDefault": "Standaardinstellingen", + "genPresetDerived": "zoals oude wachtwoord", + "genPresetPronounceable": "uitspreekbaar", + "genPresetMed": "medium lengte", + "genPresetLong": "lang", + "genPresetPin4": "4-cijferige PIN", + "genPresetMac": "MAC-adres", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "genHidePass": "Wachtwoord verbergen", + "genShowPass": "Wachtwoord weergeven", + "grpTitle": "Groep", + "grpSearch": "Zoeken naar items in deze groep aanzetten", + "grpAutoType": "Auto-type aanzetten", + "grpAutoTypeSeq": "Auto-typereeks", + "grpAutoTypeSeqDefault": "Standaard auto-typereeks gebruiken", + "grpTrash": "Groep met alle items verwijderen", + "tagTitle": "Label", + "tagTrash": "Label van alle items verwijderen", + "tagRename": "Hernoemen", + "tagTrashQuestion": "Label van alle items verwijderen?", + "tagTrashQuestionBody": "Dit label wordt van alle items verwijderd. Er is geen gemakkelijke manier om te herstellen.", + "tagExists": "Label bestaat al", + "tagExistsBody": "Label met deze naam bestaat al. Kies een andere naam.", + "tagBadName": "Foute naam", + "tagBadNameBody": "Label met deze naam mag de volgende tekens niet bevatten {}. Verwijder deze.", + "genPsTitle": "Generator-instellingen", + "genPsCreate": "Opslaan", + "genPsDelete": "Voorinstelling verwijderen", + "genPsNew": "Voorinstelling", + "genPsEnabled": "Weergeven in instellingenlijst", + "genPsDefault": "Standaard geselecteerd", + "genPsDefaultLength": "Standaardlengte", + "genPsUpper": "Hoofdletters Latijns schrift", + "genPsLower": "Kleine letters", + "genPsDigits": "Cijfers", + "genPsSpecial": "Speciale tekens", + "genPsBrackets": "Haakjes", + "genPsHigh": "Uitgebreide ASCII-tekens", + "genPsAmbiguous": "Dubbelzinnige symbolen", + "genPsInclude": "Extra symbolen toevoegen", + "genPsExample": "Voorbeeld van gegenereerd wachtwoord", + "genPsPattern": "Patroon", + "genPsPatternHelp": "Patronen kunnen worden gebruikt om aangepaste regels op te geven voor het selecteren van tekens. Zo genereert 1-AA wachtwoorden die beginnen met een cijfer, gevolgd door een streepje en twee letters. Je kunt deze symbolen gebruiken:", + "genPsAllRanges": "Alle symbolen", + "genPsIncluded": "Extra symbolen hierboven toegevoegd", + "keyChangeTitleRemote": "Hoofdsleutel gewijzigd", + "keyChangeMessageRemote": "De hoofdsleutel is gewijzigd voor deze database. Voer een nieuwe sleutel in.", + "keyChangeTitleExpired": "Hoofdsleutel verlopen", + "keyChangeMessageExpired": "De hoofdsleutel voor deze database is verlopen. Voer een nieuwe sleutel in.", + "keyChangeRepeatPassword": "Wachtwoord, nogmaals", + "keyEnter": "Enter", + "keyEsc": "Esc", + "iconFavTitle": "Website favicon downloaden en gebruiken", + "iconSelCustom": "Selecteer een eigen pictogram", + "listEmptyTitle": "Leeg", + "listEmptyAdd": "toevoegen met de {} knop bovenin", + "listGroup": "Groep", + "listNoWebsite": "geen website", + "listNoUser": "geen gebruiker", + "listNoAttachments": "geen bijlagen", + "listAddTemplateHeader": "Sjablonen", + "listAddTemplateBody1": "Sjablonen helpen om met één klik snel nieuwe items te maken. Voeg iets aan het sjabloon toe en klik nogmaals {} om het sjabloon te gebruiken.", + "listAddTemplateBody2": "Je kunt je sjablonen altijd vinden in de {} groep.", + "searchAddNew": "Toevoegen", + "searchSort": "Sorteren", + "searchCreated": "Aangemaakt", + "searchUpdated": "Bijgewerkt", + "searchAttachments": "Bijlagen", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Oud {} Nieuw", + "searchNO": "Nieuw {} Oud", + "searchShiftClickOr": "Shift-klik of", + "searchAdvTitle": "Geavanceerd zoeken", + "searchSearchIn": "Zoeken in", + "searchOther": "Overige velden", + "searchProtect": "Beveiligde velden", + "searchOptions": "Opties", + "searchCase": "Hoofdlettergevoelig", + "searchRegex": "RegEx", + "searchRank": "Automatisch", + "searchExact": "Exact", + "openOpen": "Openen", + "openNew": "Nieuw", + "openNewFile": "Nieuw", + "openMore": "Meer", + "openDemo": "Demo", + "openGenerate": "Genereren", + "openXml": "XML importeren", + "openCaps": "Caps Lock staat aan", + "openClickToOpen": "Klik om een bestand te openen", + "openKeyFile": "Sleutelbestand", + "openKeyFileDropbox": "(uit Dropbox)", + "openDropHere": "sleep bestanden hier", + "openFailedRead": "Kan bestand niet lezen", + "openNothingFound": "Niks gevonden", + "openNothingFoundBody": "Er zijn geen geschikte bestanden gevonden.", + "openSelectFile": "Selecteer een bestand", + "openSelectFileBody": "Selecteer een bestand om te openen", + "openPassFor": "Wachtwoord", + "openRemoveLastQuestion": "Lokaal bestand verwijderen? ", + "openRemoveLastQuestionBody": "Het te verwijderen bestand is alleen opgeslagen in de app. Permanent verwijderen?", + "openRemoveLastQuestionModBody": "Het bestand dat je wilt verwijderen heeft lokale wijzigingen. Wil je het bestand verwijderen en deze wijzigingen ongedaan maken?", + "openLocalFile": "Lokaal bestand", + "openLocalFileBody": "Het te openen bestand wordt opgeslagen in de app. Wijzigingen worden niet opgeslagen op het bestandssysteem. Het gegevensbestand kan worden geëxporteerd vanuit Instellingen.", + "openLocalFileDontShow": "Niet opnieuw weergeven", + "openWrongFile": "Fout bestand", + "openWrongFileBody": "Dit bestandsformaat wordt niet ondersteund. Deze app werkt met KeePass databasebestanden (kdbx).", + "openKdbFileBody": "Je probeert een bestand van een oude versie te openen (KDB). Deze app ondersteund alleen nieuwe versies (KDBX). Gebruik KeePass v2 om deze te converteren.", + "openConfigHeader": "{} Instellingen", + "openUrl": "URL", + "openUrlDesc": "https://server/pad/bestand.kdbx of alleen bestand.kdbx", + "openUser": "Gebruiker", + "openUserDesc": "WebDAV-server gebruikersnaam (indien vereist)", + "openUserPlaceholder": "geen gebruiker", + "openPass": "Wachtwoord", + "openPassDesc": "WebDAV-server wachtwoord (dit is niet het wachtwoord van het databasebestand)", + "openPassPlaceholder": "geen wachtwoord", + "openConfigError": "Fout: {}", + "openConfigErrorNotFound": "Bestand niet gevonden", + "openError": "Fout", + "openErrorDescription": "Er is een fout opgetreden bij het openen van dit bestand", + "openErrorDescriptionMaybeTouchIdChanged": "De fout lijkt op wat gewoonlijk gebeurt wanneer de Touch ID-instellingen zijn gewijzigd, wanneer bijvoorbeeld een extra vinger is toegevoegd of verwijderd. Als dit het geval is, ga naar Instellingen en schakel Touch ID uit en weer in.", + "openErrorFileNotFound": "Bestand niet gevonden", + "openListErrorBody": "Fout bij het laden van de bestandenlijst", + "openShowAllFiles": "Alle bestanden weergeven", + "openFileNoCacheError": "Bestand niet aangetroffen in de cache-opslag. Dit kan gebeuren omdat de browseropslag is gewist. Om het bestand te openen moet je het eerst verwijderen uit KeeWeb en daarna opnieuw toevoegen.", + "openChalRespHeader": "Challenge-Response", + "openChalRespLoading": "Lijst van YubiKeys laden...", + "openChalRespSelectYubiKey": "Selecteer de YubiKey die je wilt gebruiken", + "openChalRespErrorEmpty": "Geen YubiKeys gevonden.", + "openChalRespErrorEmptyMac": "Is dit de eerste keer dat je deze functie gebruikt op macOS? KeeWeb moet worden toegevoegd aan de input monitoring sectie van de beveiligingsinstellingen.", + "detAttDownload": "Shift-klik de bijlage-knop om deze te downloaden of", + "detAttDelToRemove": "Verwijderen om te wissen", + "detAttSave": "Opslaan als...", + "detEmpty": "Je wachtwoorden worden hier weergegeven", + "detGroupRestore": "Om deze groep te herstellen sleep je het naar een willekeurige groep buiten de prullenbak", + "detHistoryClickPoint": "Klik op het item in de geschiedenistijdlijn om de status te bekijken", + "detHistoryReturn": "Terug naar item", + "detHistoryRevert": "Status herstellen", + "detHistoryDel": "Status verwijderen", + "detHistoryEmpty": "leeg", + "detHistoryModified": "gewijzigd", + "detHistoryRec": "versie", + "detHistoryRecs": "versies", + "detHistoryVersion": "Versie", + "detHistorySaved": "Opgeslagen", + "detHistoryNoTitle": "geen titel", + "detHistoryCurState": "huidige status", + "detHistoryCurUnsavedState": "huidige niet-opgeslagen status", + "detHistoryRevertAlert": "Terugkeren naar deze opgeslagen status?", + "detHistoryRevertAlertBody": "De huidige status wordt opgeslagen.", + "detHistoryDeleteAlert": "Deze opgeslagen status verwijderen?", + "detHistoryDeleteAlertBody": "Je kunt dit niet meer herstellen!", + "detHistoryDiscardChangesAlert": "Wijzigingen in dit item ongedaan maken?", + "detHistoryDiscardChangesAlertBody": "Niet-opgeslagen wijzigingen gaan verloren, er is geen weg terug.", + "detBackToList": "Terug naar de lijst", + "detSetIconColor": "Kleur wijzigen", + "detSetIcon": "Pictogram wijzigen", + "detDropAttachments": "Sleep bijlagen hierheen", + "detDelEntry": "Verwijderen", + "detDelEntryPerm": "Permanent verwijderen", + "detExpires": "Verloopt", + "detExpired": "verlopen", + "detGroup": "Groep", + "detCreated": "Aangemaakt", + "detUpdated": "Gewijzigd", + "detNetField": "Nieuw veld", + "detAttachments": "Bijlagen", + "detDelFromTrash": "Uit prullenbak verwijderen?", + "detDelFromTrashBody": "Je kunt dit niet meer terugzetten.", + "detDelFromTrashBodyHint": "Klik in het Prullenbak-menu op Leegmaken om de prullenbak snel te legen.", + "detDelToTrash": "Item verwijderen?", + "detDelToTrashBody": "Het item wordt naar de prullenbak verplaatst.", + "detFieldCopied": "Gekopiëerd", + "detFieldCopiedTime": "Gekopiëerd voor {} seconden", + "detCopyHint": "Klik op de titel van een veld om de waarde te kopiëren", + "detMore": "meer", + "detClickToAddField": "klik om een nieuw veld toe te voegen", + "detMenuAddNewField": "Nieuw veld toevoegen", + "detMenuAddNewWebsite": "Nog een website toevoegen", + "detMenuShowEmpty": "Lege velden weergeven", + "detMenuHideEmpty": "Lege velden verbergen", + "detMenuAddField": "{} Toevoegen", + "detMenuCopyPassword": "Wachtwoord kopiëren", + "detMenuCopyUser": "Gebruiker kopiëren", + "detMenuCopyOtp": "Eenmalige code kopiëren", + "detSetupOtp": "Eenmalige codes", + "detClone": "Dupliceren", + "detCopyEntryToClipboard": "Alle velden kopiëren", + "detClonedName": "Kopiëren", + "detAutoType": "Auto-type", + "detAutoTypeSettings": "Auto-type instellingen", + "detAutoTypeEnabled": "Auto-type aanzetten voor dit item", + "detAutoTypeSequence": "Toetsaanslagen", + "detAutoTypeInput": "Invoer", + "detAutoTypeShortcutsDesc": "{} of {} terwijl de app inactief is", + "detAutoTypeObfuscation": "Vermeng echte toetsaanslagen met willekeurige", + "detAutoTypeWindow": "Venster", + "detAutoTypeInputWindow": "Venstertitel", + "detSetupOtpAlert": "Scan de QR-code", + "detSetupOtpAlertBody": "Kopiëer de QR-code welke weergegeven wordt op de autorisatiepagina.", + "detSetupOtpAlertBody1": "1. ga naar de autorisatiepagina", + "detSetupOtpAlertBody2": "2. maak een schermopname van de QR-code {}", + "detSetupOtpAlertBody3": "3. plak het hier {}", + "detSetupOtpAlertBody3Mobile": "3. gebruik Selecteer/Scan-knop hieronder om te selecteren of scannen met de camera", + "detSetupOtpAlertBody4": "Klik op Code handmatig invoeren als je de code niet kan scannen", + "detSetupOtpManualButton": "Code handmatig invoeren", + "detSetupOtpScanButton": "Selecteer/Scan", + "detSetupOtpAlertBodyWith": "met {}", + "detOtpImageError": "Fout bij lezen van afbeelding", + "detOtpImageErrorBody": "Sorry, we konden het afbeeldingsformaat niet lezen. Neem contact op met de makers van de app en geef de details van deze foutmelding door.", + "detOtpImageReading": "QR-code lezen...", + "detOtpQrError": "QR-code scanfout", + "detOtpQrErrorBody": "Sorry, we konden de QR-code niet lezen, probeer het nog eens of neem contact op met de makers van de app en geef de details van de foutmelding door.", + "detOtpQrWrong": "Foute QR-code", + "detOtpQrWrongBody": "De QR-code was succesvol gescand, maar het bevat niet de gegevens van een eenmalige code.", + "detOtpField": "Eenmalige code", + "detOtpClickToTouch": "Klik om te genereren", + "detOtpGenerating": "Genereren...", + "detOtpTouch": "Raak je {} aan", + "detLockField": "Vergrendel dit veld opdat de inhoud niet doorzoekbaar en zichtbaar is. Als je de inhoud wilt weergeven, moet je er expliciet op klikken.", + "detUnlockField": "Ontgrendel dit veld zodat de inhoud direct doorzoekbaar en zichtbaar wordt.", + "detRevealField": "Weergeven", + "detHideField": "Verbergen", + "detAutoTypeField": "Auto-type", + "detIssuesHideTooltip": "Deze waarschuwing verbergen", + "detIssueWeakPassword": "Het wachtwoord is zwak, het wordt aanbevolen om het te wijzigen.", + "detIssuePoorPassword": "Het wachtwoord is erg zwak, het wordt sterk aanbevolen om het te wijzigen", + "detIssuePwnedPassword": "Dit wachtwoord is volgens {} blootgesteld aan een datalek, het wordt aanbevolen om het te wijzigen.", + "detIssuePasswordCheckError": "Er is een fout opgetreden bij het online controleren van de wachtwoordsterkte.", + "detIssueOldPassword": "Het wachtwoord is oud.", + "detIssueCloseAlertHeader": "Problemen met wachtwoorden verbergen", + "detIssueCloseAlertBody": "Er zijn verschillende manieren om deze waarschuwing te verbergen:", + "detIssueCloseAlertEntry": "Niet weergeven voor dit item", + "detIssueCloseAlertSettings": "Algemene instellingen aanpassen", + "autoTypeEntryFields": "Itemvelden", + "autoTypeModifiers": "Speciale toetsen", + "autoTypeKeys": "Toetsen", + "autoTypeLink": "meer...", + "autoTypeError": "Auto-typefout", + "autoTypeErrorGeneric": "Er is een fout opgetreden tijdens de uitvoering van Auto-type: {}", + "autoTypeErrorAccessibilityMacOS": "We hebben geprobeerd toetsaanslagen naar de applicatie te sturen, maar het lijkt niet te werken. Dit kan gebeuren vanwege ontbrekende rechten, klik hier om er meer over te lezen:", + "autoTypeErrorGlobal": "Om de globale sneltoets te gebruiken, selecteer de app waar je je wachtwoord wilt typen", + "autoTypeErrorNotInstalled": "{} is niet geïnstalleerd", + "autoTypeHeader": "Auto-Type: Selectie", + "autoTypeMsgNoWindow": "De titel van het actieve venster kon niet worden gevonden, begin met typen om te zoeken", + "autoTypeMsgMatchedByWindow": "Selecteer een wachtwoord voor {}", + "autoTypeNoMatches": "niks gevonden", + "autoTypeSelectionHint": "Voer de Auto-typereeks in", + "autoTypeSelectionHintAction": "Voer alleen het wachtwoord in", + "autoTypeSelectionHintOpt": "Voer alleen gebruikersnaam in", + "autoTypeSelectionHintShift": "Overige velden", + "autoTypeSelectionOtp": "Eenmalige code", + "autoTypeUnlockMessage": "Ontgrendelen voor Auto-type", + "appSecWarn": "Onveilig!", + "appSecWarnBody1": "Je hebt de app geladen met een onveilige verbinding. Iemand kan mogelijk nu meekijken en je wachtwoorden stelen. Wij adviseren je te stoppen tenzij je je bewust bent van de mogelijke consequenties.", + "appSecWarnBody2": "Ja, je database is versleuteld, maar dit is geen garantie dat de app niet gewijzigd is onderweg naar jou toe.", + "appSecWarnBtn": "Ik begrijp de risico's, ga verder", + "appUnsavedWarn": "Niet-opgeslagen wijzigingen", + "appUnsavedWarnBody": "Als je de app nu sluit gaan alle niet-opgeslagen wijzigingen verloren.", + "appDontExitBtn": "Niet afsluiten", + "appCannotLockAutoInit": "De app kan niet vergrendeld worden, omdat automatisch opslaan is uitgeschakeld.", + "appCannotLock": "Je hebt niet-opgeslagen wijzigingen die verloren zullen gaan. Doorgaan?", + "appAutoSave": "Wijzigingen automatisch opslaan", + "appSaveError": "Fout bij het opslaan", + "appSaveErrorBody": "Bestand is niet automatisch opgeslagen", + "appSaveErrorBodyMul": "Niet automatisch opgeslagen bestanden:", + "appSaveErrorExitLoseChanges": "Afsluiten en alle wijzigingen kwijtraken", + "appSaveErrorExitLoseChangesBody": "Je kunt de app afsluiten en alle wijzigingen kwijtraken, of de bestandsinstellingen gebruiken om gegevens te exporteren", + "appSettingsError": "Fout bij laden app", + "appSettingsErrorBody": "Er is een fout opgetreden bij het laden van de app-instellingen. Controleer de app-URL of neem contact op met je systeembeheerder.", + "appNotSupportedError": "Je browser biedt geen ondersteuning voor belangrijke functies in KeeWeb.", + "appTabWarn": "Te veel tabbladen", + "appTabWarnBody": "KeeWeb kan niet tegelijkertijd in twee browser-tabbladen worden gebruikt, sluit dit tabblad.", + "appRightsAlert": "KeeWeb app vergrendelen", + "appRightsAlertBody1": "Jouw KeeWeb app is momenteel niet beschermd tegen oneigenlijke aanpassingen. Wij vragen je toestemming om de app te laten schrijven met beheerdersrechten.", + "appRightsAlertBody2": "Wil je deze rechten niet verlenen? Je kunt dit later zelf aanpassen met de Terminal.", + "appBrowserAuthComplete": "Verificatie is voltooid, je kunt dit tabblad nu sluiten.", + "setGenTitle": "Algemene instellingen", + "setGenUpdate": "Update", + "setGenNewVersion": "Nieuwe app-versie is uitgebracht en gedownload", + "setGenReleaseNotes": "Versie-informatie bekijken", + "setGenReloadToUpdate": "Opnieuw laden om te updaten", + "setGenUpdateManual": "Een nieuwe versie is beschikbaar. Normaliter worden updates automatisch gedownload en geïnstalleerd, maar helaas is een automatische update van jouw versie niet mogelijk.", + "setGenDownloadUpdate": "Update downloaden", + "setGenUpdateAuto": "Automatisch downloaden en installeren", + "setGenUpdateCheck": "Controleren, maar niet installeren", + "setGenNoUpdate": "Nooit controleren op updates", + "setGenUpdateChecking": "Controleren op updates", + "setGenCheckUpdate": "Controleren op updates", + "setGenErrorChecking": "Fout bij het zoeken naar updates", + "setGenLastCheckSuccess": "Laatste succesvolle controle was op {}", + "setGenLastCheckVer": "de laatste versie was {}", + "setGenCheckedAt": "Gecontroleerd op", + "setGenLatestVer": "je gebruikt de nieuwste versie", + "setGenNewVer": "nieuwe versie {} beschikbaar, uitgegeven", + "setGenDownloadingUpdate": "Update downloaden...", + "setGenExtractingUpdate": "Update uitpakken...", + "setGenCheckErr": "Er is een fout opgetreden bij het downloaden van de nieuwe versie", + "setGenNeverChecked": "Nog nooit gecontroleerd op updates", + "setGenRestartToUpdate": "Start KeeWeb opnieuw om te updaten", + "setGenDownloadAndRestart": "Update downloaden en opnieuw starten", + "setGenAppearance": "Uiterlijk", + "setGenTheme": "Thema", + "setGenThemeDefault": "Standaard", + "setGenThemeDark": "Donker", + "setGenThemeLight": "Licht", + "setGenThemeBlue": "Flets blauw", + "setGenThemeFb": "Donkerblauw", + "setGenThemeBl": "Lichtblauw", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Donkerbruin", + "setGenThemeLb": "Lichtbruin", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Terminal licht", + "setGenThemeHighContrast": "Hoog contrast", + "setGenThemeHc": "Hoog contrast", + "setGenThemeDc": "Donker contrast", + "setGenThemeSol": "Overbelicht", + "setGenThemeSd": "Overbelicht donker", + "setGenThemeSl": "Overbelicht licht", + "setGenMoreThemes": "Meer thema's", + "setGenAutoSwitchTheme": "Schakel indien mogelijk automatisch tussen licht en donker thema", + "setGenLocale": "Taal", + "setGenLocOther": "andere talen zijn beschikbaar als plug-in", + "setGenFontSize": "Lettergrootte", + "setGenFontSizeNormal": "Normaal", + "setGenFontSizeLarge": "Groot", + "setGenFontSizeLargest": "Extra groot", + "setGenTitlebarStyle": "Vensterstijl (vereist herstart)", + "setGenTitlebarStyleDefault": "Standaard", + "setGenTitlebarStyleHidden": "Aangepaste titel", + "setGenTitlebarStyleHiddenInset": "Aangepaste titel, verplaatsbaar venster", + "setGenShowSubgroups": "Items van alle subgroepen weergeven", + "setGenTableView": "Items in tabelweergave", + "setGenColorfulIcons": "Kleurrijke pictogrammen in de lijst", + "setGenUseMarkdown": "Markdown-opmaak in notities", + "setGenUseGroupIconForEntries": "Bij nieuwe items automatisch het groepspictogram toepassen", + "setGenDirectAutotype": "Als er slechts één overeenkomstig item wordt gevonden, gebruik dat dan om automatisch in te vullen", + "setGenFunction": "Functionaliteit", + "setGenAutoSyncOnClose": "Bij afsluiten automatisch opslaan en synchroniseren", + "setGenAutoSyncTimer": "Periodiek automatisch opslaan en synchroniseren:", + "setGenAutoSyncTimerOff": "Uitgeschakeld", + "setGenAutoSyncTimerInterval": "Elke {} minuten", + "setGenRememberKeyFiles": "Sleutelbestanden onthouden", + "setGenNoRememberKeyFiles": "Niet onthouden", + "setGenRememberKeyFilesData": "Bewaar in de interne app-opslag", + "setGenRememberKeyFilesPath": "Onthoud alleen pad naar sleutelbestanden", + "setGenLockInactive": "Automatisch vergrendelen na inactiviteit", + "setGenNoAutoLock": "Niet automatisch vergrendelen", + "setGenLockMinutes": "{} minuten", + "setGenLockHour": "1 uur", + "setGenLockHours": "{} uur", + "setGenLockDay": "24 uur", + "setGenClearClip": "Klembord wissen na kopiëren", + "setGenNoClear": "Niet wissen", + "setGenClearSeconds": "{} seconden", + "setGenClearMinute": "1 minuut", + "setGenMinInstead": "De app niet sluiten maar minimaliseren", + "setGenMinOnFieldCopy": "Minimaliseren bij het kopiëren van het veld", + "setGenLock": "Automatisch vergrendelen", + "setGenLockMinimize": "Als de app wordt geminimaliseerd", + "setGenLockCopy": "Bij kopiëren van wachtwoord", + "setGenLockAutoType": "Bij Auto-type", + "setGenLockOrSleep": "Als de computer wordt vergrendeld of in slaapstand gaat", + "setGenStorage": "Opslag", + "setGenDisableOfflineStorage": "Maak geen tijdelijke offline opslag van geladen bestanden", + "setGenShortLivedStorageToken": "Gebruik kortstondige sessies bij providers van cloudopslag", + "setGenStorageLogout": "Uitloggen", + "setGenShowAdvanced": "Geavanceerde instellingen weergeven", + "setGenDevTools": "Ontwikkelaarstools weergeven", + "setGenTryBeta": "Probeer de bèta-versie tot de volgende start", + "setGenTryBetaWarning": "Niet-opgeslagen bestanden", + "setGenTryBetaWarningBody": "Sla alle bestanden op en klik deze knop nog eens", + "setGenShowAppLogs": "App-logs weergeven", + "setGenReloadApp": "App opnieuw laden", + "setGenFieldLabelDblClickAutoType": "Automatisch invullen bij dubbelklikken van veldlabels", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Geen Touch ID gebruiken", + "setGenTouchIdMemory": "Alleen met Touch ID ontgrendelen als KeeWeb actief is", + "setGenTouchIdFile": "Altijd Touch ID gebruiken in plaats van het hoofdwachtwoord", + "setGenTouchIdPass": "Hoofdwachtwoord bevestigen na", + "setGenAudit": "Controle", + "setGenAuditPasswords": "Waarschuwingen over wachtwoordsterkte weergeven", + "setGenAuditPasswordEntropy": "Wachtwoordlengte en willekeurigheid controleren", + "setGenExcludePinsFromAudit": "Korte numerieke pincodes, zoals 123456, nooit controleren", + "setGenCheckPasswordsOnHIBP": "Controleer wachtwoorden met een online dienst {}", + "setGenHelpHIBP": "KeeWeb kan via een online dienst controleren of je wachtwoorden eerder zijn blootgesteld aan een datalek. Je wachtwoord kan niet worden herleid op basis van online verzonden gegevens, maar het aantal op deze manier gecontroleerde wachtwoorden is zichtbaar. Meer informatie over je privacy bij het gebruik van deze service is te vinden op {}. Als deze optie is ingeschakeld, zal KeeWeb daar automatisch je wachtwoorden controleren.", + "setGenHelpHIBPLink": "hier", + "setGenAuditPasswordAge": "Oude wachtwoorden", + "setGenAuditPasswordAgeOff": "Geen waarschuwingen weergeven over oude wachtwoorden", + "setGenAuditPasswordAgeOneYear": "Waarschuwingen weergeven voor wachtwoorden die ouder zijn dan een jaar", + "setGenAuditPasswordAgeYears": "Waarschuwingen weergeven voor wachtwoorden die ouder zijn dan {} jaar", + "setFilePath": "Bestandspad", + "setFileStorage": "Dit bestand is geladen van {}.", + "setFileIntl": "Dit bestand is opgeslagen in de interne app-opslag.", + "setFileLocalHint": "Wil je naadloos werken met lokale bestanden?", + "setFileDownloadApp": "Download de bureaublad-app", + "setFileSave": "Opslaan", + "setFileSaveTo": "Opslaan als...", + "setFileClose": "Sluiten", + "setFileSync": "Synchroniseren", + "setFileSyncVerb": "Synchronisatie", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Laatste synchronisatie", + "setFileLastSyncUnknown": "onbekend", + "setFileSyncInProgress": "Synchroniseren...", + "setFileSyncError": "Synchronisatiefout", + "setFilePass": "Hoofdwachtwoord", + "setFileConfirmPass": "Hoofdwachtwoord bevestigen", + "setFilePassChange": "om het wachtwoord te wijzigen, dien je het nogmaals in te voeren", + "setFilePassChanged": "het wachtwoord is gewijzigd; laat het veld leeg om het oude wachtwoord te behouden", + "setFilePassNotMatch": "de wachtwoorden komen niet overeen, probeer het nog een keer", + "setFileKeyFile": "Sleutelbestand", + "setFileSelKeyFile": "Selecteer een sleutelbestand", + "setFileNames": "Namen", + "setFileDefUser": "Standaardgebruiker", + "setFileEnableTrash": "Prullenbak gebruiken", + "setFileHistMode": "Geschiedenis", + "setFileHistLimited": "Oude geschiedenisgegevens automatisch wissen", + "setFileHistDisabled": "Geschiedenis niet opslaan", + "setFileHistUnlimited": "Geschiedenis voor altijd bewaren", + "setFileHistLen": "Lengte van de geschiedenis, bewaar laatste versies per invoer", + "setFileHistSize": "Grootte van de geschiedenis, totaal MB per bestand", + "setFileBackups": "Reservekopieën", + "setFileBackupEnable": "Maak een reservekopie", + "setFileBackupPath": "Bestandspad", + "setFileBackupTime": "Reservekopieën maken", + "setFileBackupNow": "Reservekopie nu opslaan", + "setFileBackupNowWorking": "Bezig...", + "setFileBackupError": "Fout met reservekopie", + "setFileBackupErrorDescription": "Fout bij opslaan reservekopie", + "setFileBackupErrorIsDir": "Ongeldig bestandspad", + "setFileBackupErrorIsDirDescription": "Het bestandspad verwijst naar een map. Geef het pad op van een specifiek bestand in een map.", + "setFileBackupOnSave": "Altijd bij het opslaan van het bestand", + "setFileBackupDaily": "Dagelijks", + "setFileBackupWeekly": "Wekelijks", + "setFileBackupMonthly": "Maandelijks", + "setFileBackupManually": "Handmatig, geen automatische reservekopieën", + "setFileRounds": "Aantal versleutelingsrondes", + "setFileKdfParams": "Sleutelafleidingsfunctie", + "setFileKdfParamsIter": "Iteraties", + "setFileKdfParamsMem": "Geheugen, KB", + "setFileKdfParamsPar": "Parallelisme", + "setFileKeyChangeForce": "Vraag om de sleutel aan te passen na (dagen)", + "setFileUseKeyFile": "Sleutelbestand gebruiken", + "setFileUseGenKeyFile": "Het aangemaakte sleutelbestand gebruiken", + "setFileUseOldKeyFile": "Het oude sleutelbestand gebruiken", + "setFileGenKeyFile": "Een nieuw sleutelbestand aanmaken", + "setFileDontUseKeyFile": "Gebruik geen sleutelbestand", + "setFileEmptyPass": "Leeg wachtwoord", + "setFileEmptyPassBody": "Bij het opslaan van de database zonder wachtwoord blijft alles onbeschermd. Wil je echt doorgaan?", + "setFileSaveError": "Fout bij opslaan", + "setFileSaveErrorBody": "Fout bij opslaan naar bestand", + "setFileAlreadyExists": "Bestaat al", + "setFileAlreadyExistsBody": "Bestand {} bestaat al. Wil je het overschrijven?", + "setFileUnsaved": "Niet-opgeslagen wijzigingen ", + "setFileUnsavedBody": "Er zijn niet-opgeslagen wijzigingen in dit bestand", + "setFileCloseNoSave": "Sluiten en wijzigingen ongedaan maken", + "setFileDontClose": "Niet sluiten", + "setFileFormatVersion": "Bestandsformaat", + "setFileExportRaw": "Wachtwoorden exporteren...", + "setFileExportRawBody": "De geëxporteerde lijst bevat je wachtwoorden in leesbare, onversleutelde vorm. Wil je hiermee doorgaan?", + "setFileDeviceIntro": "Eenmalige codes van deze {} worden in de app weergegeven.", + "setFileDeviceSettings": "Instellingen", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Geen YubiKey gebruiken", + "setFileRefreshYubiKeyList": "Lijst verversen", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Een YubiKey als onderdeel van de hoofdsleutel gebruiken is gevaarlijk en je kunt de toegang tot je wachtwoorden verliezen als er iets misgaat. Heb je een back-up van je bestand gemaakt voordat je deze instelling wijzigde?", + "setFileYubiKeyErrorEmptyMac": "Het lijkt erop dat er een YubiKey is aangesloten, maar deze is niet zichtbaar. Om toegang te krijgen tot YubiKeys moet KeeWeb worden toegevoegd aan de beveiligingsinstellingen, sectie Input Monitoring.", + "setShTitle": "Sneltoetsen", + "setShShowAll": "Alle items weergeven", + "setShColors": "Items met kleuren weergeven", + "setShTrash": "Prullenbak", + "setShFind": "Zoeken, of begin gewoon te typen", + "setShClearSearch": "Zoekopdracht wissen", + "setShCopyPass": "Wachtwoord of geselecteerd veld kopiëren", + "setShCopyUser": "Gebruiker kopiëren", + "setShCopyUrl": "Website kopiëren", + "setShAutoType": "Auto-type geselecteerd item", + "setShPrev": "Vorig item", + "setShNext": "Volgend item", + "setShCreateEntry": "Nieuw item aanmaken", + "setShOpen": "Openen / nieuw", + "setShSave": "Alle bestanden opslaan", + "setShGen": "Wachtwoord genereren", + "setShSet": "App-instellingen", + "setShCopyPassGlobal": "Wachtwoord kopiëren", + "setShCopyOtp": "Eenmalig wachtwoord kopiëren", + "setShAutoTypeGlobal": "Auto-type", + "setShCopyPassOnly": "Wachtwoord kopiëren", + "setShRestoreApp": "{} openen", + "setShGlobal": "Globale sneltoetsen zijn actief terwijl de app in de achtergrond draait. Je kunt een sneltoets klikken om deze aan te passen.", + "setShLock": "Database vergrendelen", + "setShEdit": "Druk een nieuwe toetscombinatie om deze in te stellen als sneltoets", + "setPlInstallTitle": "Nieuwe plug-ins installeren", + "setPlInstallDesc": "KeeWeb plug-ins voegen functies, thema's en vertalingen toe aan KeeWeb. Plug-ins functioneren met dezelfde privileges als KeeWeb; zij krijgen toegang tot al je wachtwoorden en kunnen deze beheren. Installeer nooit plug-ins die je niet vertrouwt.", + "setPlInstallLabel": "Plug-in URL", + "setPlInstallBtn": "Installeren", + "setPlInstallBtnProgress": "Installeren...", + "setPlUninstallBtn": "Verwijderen", + "setPlDisableBtn": "Uitschakelen", + "setPlEnableBtn": "Inschakelen", + "setPlUpdateBtn": "Bijwerken", + "setPlLocaleBtn": "Deze vertaling toepassen", + "setPlThemeBtn": "Dit thema toepassen", + "setPlJs": "code", + "setPlCss": "stijlen", + "setPlLoc": "taal", + "setPlCreatedBy": "Gemaakt door {}", + "setPlLoadTime": "in {} gedownload", + "setPlLastUpdate": "Laatste controle op updates", + "setPlLoadError": "Fout bij plug-in laden", + "setPlGalleryLoading": "Plug-ins laden, een ogenblik geduld", + "setPlGalleryLoadError": "Fout bij plug-ins laden", + "setPlInstallUrlTitle": "Plug-in toevoegen via URL", + "setPlInstallUrlDesc": "Als de plug-in niet in de lijst staat, kan je deze handmatig toevoegen via de URL", + "setPlOfficial": "Officiële KeeWeb plug-in", + "setPlSearch": "Plug-ins zoeken", + "setPlDevelop": "Wil je je eigen plug-ins ontwikkelen?", + "setPlDevelopStart": "Begin dan hier", + "setPlTranslate": "Of je kunt {}", + "setPlTranslateLink": "de app vertalen naar jouw taal", + "setPlAutoUpdate": "Automatisch vernieuwen", + "setPlLoadGallery": "Plug-in lijst laden", + "setBrowserTitle": "Webbrowser", + "setBrowserIntroDesktop": "KeeWeb kan wachtwoorden invoeren met auto-type, maar een browserextensie kan een handiger manier zijn om dit te doen. KeeWeb ondersteunt twee browserextensies:", + "setBrowserIntroKeeWebConnect": "de officiële KeeWeb-extensie die is gebouwd met de functies van KeeWeb in gedachten, maar het kan zijn dat je enkele geavanceerde mogelijkheden mist die je in de andere extensie kunt vinden.", + "setBrowserIntroKeePassXcBrowser": "deze extensie is ontwikkeld voor KeePassXC, is al een tijdje op de markt en behoorlijk solide. De extensie maakt geen deel uit van KeeWeb en er kunnen compatibiliteitsproblemen zijn.", + "setBrowserIntroWeb": "Installeer onze browserextensie om automatisch wachtwoorden van KeeWeb op verschillende pagina's in te vullen. De browserextensie maakt verbinding met een KeeWeb-tabblad in uw browser om wachtwoorden op te halen. Klik hier om de extensie te downloaden:", + "setBrowserNotEnabled": "Browserintegratie is niet ingeschakeld waardoor extensies geen verbinding kunnen maken met KeeWeb. Selecteer de onderstaande opties om het in te schakelen:", + "setBrowserEnablePerBrowser": "Schakel browserintegratie in met behulp van de onderstaande opties:", + "setBrowserFocusIfLocked": "Open KeeWeb als een browserextensie probeert verbinding te maken terwijl er geen open bestand is", + "setBrowserFocusIfEmpty": "Geef het invoerselectiescherm weer als er geen overeenkomst is gevonden met de URL", + "setBrowserOtherBrowsers": "Andere webbrowsers", + "setBrowserExtensionFor": "voor {}", + "setBrowserExtensionNotSupported": "Niet ondersteund", + "setBrowserExtensionHelp": "Hoe installeren?", + "setBrowserExtensionInstall": "Installeer de extensie", + "setBrowserExtensionKPXCWarnHeader": "{} zal stoppen met werken", + "setBrowserExtensionKPXCWarnBody1": "Helaas is het niet mogelijk om één extensie aan meerdere apps te koppelen. Als je de extensie met KeeWeb verbindt, overschrijven we de app-koppeling, wat betekent dat de integratie met {} niet meer werkt. Zelfs als u dit selectievakje uitschakelt, wordt de koppeling met {} niet hersteld. Configureer de browserintegratie in de {} instellingen om dit weer te laten werken, .", + "setBrowserExtensionKPXCWarnBody2": "Extensie configureren om KeeWeb te gebruiken?", + "setBrowserSessions": "Sessies", + "setBrowserSessionsEmpty": "Geen verbonden sessies.", + "setBrowserSessionsIntro": "Deze extensies zijn verbonden met KeeWeb.", + "setBrowserSessionsActiveTooltip": "Actieve sessie", + "setBrowserSessionsActiveText": "Deze sessie is actief. Het kan gegevens uitwisselen met KeeWeb op basis van de volgende machtigingen:", + "setBrowserSessionsInactiveTooltip": "Niet-actieve sessie", + "setBrowserSessionsInactiveText": "Deze sessie is inactief. De extensie is verbonden met KeeWeb, maar heeft niet geprobeerd gegevens uit te wisselen. Als de extensie iets vraagt, kun je selecteren wat je wilt delen.", + "setBrowserSessionsDeniedTooltip": "Toegang geweigerd", + "setBrowserSessionsDeniedText": "Deze sessie is inactief. De extensie is verbonden met KeeWeb, maar is de toegang tot gegevens geweigerd.", + "setBrowserSessionsConnectedDate": "Verbonden", + "setBrowserSessionsTerminate": "Deze sessie beëindigen", + "setBrowserSessionsAccessToFiles": "Toegang verlenen tot bestanden", + "setBrowserSessionsNoFileAccess": "De extensie heeft geen toegang tot bestanden en kan geen wachtwoorden ophalen van KeeWeb.", + "setBrowserSessionsPasswordsRead": "Gelezen wachtwoorden", + "setBrowserSessionsPasswordsWritten": "Opgeslagen wachtwoorden", + "setDevicesTitle": "Apparaten", + "setDevicesEnableUsb": "Interactie met USB-apparaten mogelijk maken", + "setDevicesYubiKeyIntro": "Het is raadzaam om {} te lezen voordat je een YubiKey gebruikt.", + "setDevicesYubiKeyIntroLink": "dit document", + "setDevicesYubiKeyToolsDesc": "Om YubiKey te kunnen gebruiken, moet je het hulpmiddel {} installeren.", + "setDevicesYubiKeyToolsDesc2": "{} voor meer informatie over dit hulpmiddel.", + "setDevicesYubiKeyToolsDescLink": "Klik hier", + "setDevicesYubiKeyToolsStatusChecking": "Controleren of {} is geïnstalleerd", + "setDevicesYubiKeyToolsStatusOk": "{} is geïnstalleerd", + "setDevicesYubiKeyToolsStatusError": "{} is geïnstalleerd of niet functioneel", + "setDevicesYubiKeyOtpTitle": "Eenmalige codes", + "setDevicesYubiKeyOtpDesc": "YubiKey kan worden gebruikt om eenmalige codes voor verschillende diensten te genereren.", + "setDevicesYubiKeyOtpShowIcon": "Pictogram op het startscherm weergeven", + "setDevicesYubiKeyOtpAutoOpen": "Automatisch eenmalige codes laden wanneer er geopende bestanden zijn", + "setDevicesYubiKeyOtpMatchEntries": "Toon overeenkomende eenmalige codes in items", + "setDevicesYubiKeyChalRespTitle": "Challenge-respons", + "setDevicesYubiKeyChalRespDesc": "Het is ook mogelijk om een YubiKey te gebruiken in de challenge-responsmodus, zodat een stuk privésleutel dat wordt gebruikt om bestanden te versleutelen op een YubiKey staat.", + "setDevicesYubiKeyChalRespShow": "Toon de optie om een YubiKey te gebruiken bij het openen van bestanden", + "setDevicesYubiKeyStuckWorkaround": "Sluit de YubiKey opnieuw aan als deze tijdens het laden lijkt te blokkeren", + "setDevicesYubiKeyRememberChalResp": "Onthoud challenge-respons zolang de app open is", + "setAboutTitle": "Over", + "setAboutBuilt": "Deze app is gemaakt met de volgende geweldige tools", + "setAboutLic": "Licentie", + "setAboutLicComment": "De app zelf en alle meegeleverde componenten zijn gelicentieerd onder MIT-licentie, tenzij anders aangegeven", + "setAboutFirst": "Dit is een open source applicatie gemaakt door {}", + "setAboutSecond": "en gelicentieerd onder {}.", + "setAboutSource": "De broncode en issues zijn beschikbaar op {}.", + "setHelpFormat": "Bestandsformaat", + "setHelpFormatBody": "Dit is een port van de {} app gebouwd met web-technologie. Het werkt met bestanden van het KeePass formaat (kdbx). Je kunt deze bestanden (wachtwoord databases) aanmaken in KeePass of in deze app zelf. Het bestandsformaat is 100% compatibel en zou door beide apps verwerkt moeten kunnen worden.", + "setHelpProblems": "Hulp nodig?", + "setHelpProblems1": "Als er iets mis gaat, {}", + "setHelpProblems2": "of {}", + "setHelpOpenIssue": "open een issue op GitHub", + "setHelpContactLink": "neem direct contact op met de ontwikkelaar", + "setHelpAppInfo": "App-informatie", + "setHelpOtherPlatforms": "Andere platformen", + "setHelpDesktopApps": "Bureaublad-apps", + "setHelpWebApp": "Web-app", + "setHelpUpdates": "Updates", + "setHelpTwitter": "Twitter-app", + "dropboxSetupDesc": "Om Dropbox in de zelf-gehoste app te gebruiken, is enige configuratie nodig. Maak je eigen Dropbox app aan en vul de gegeven app-sleutel hieronder in.", + "dropboxAppKey": "Dropbox app-sleutel", + "dropboxAppKeyDesc": "Kopieer de app-sleutel van je Dropbox app (Developer settings)", + "dropboxAppKeyHint": "jouw app-sleutel", + "dropboxAppSecret": "Dropbox-geheim", + "dropboxAppSecretDesc": "Het geheim is te vinden naast de app-sleutel", + "dropboxFolder": "App-folder", + "dropboxFolderDesc": "Als je app gekoppeld is aan je hele Dropbox (dus niet alleen een app folder), stel hier dan de map met je kdbx-bestanden in", + "dropboxFolderSettingsDesc": "Kies een map in je Dropbox waar bestanden worden opgeslagen (standaard: de Dropbox hoofdmap)", + "dropboxFolderPlaceholder": "standaardmap", + "dropboxLink": "Koppel de app aan", + "dropboxLinkApp": "App-map (Apps/KeeWeb)", + "dropboxLinkFull": "Volledige Dropbox of een folder", + "dropboxLinkCustom": "Eigen Dropbox-app", + "gdriveSharedWithMe": "Gedeeld met mij", + "gdriveSharedDrives": "Gedeelde schijven", + "gdriveTeamDrives": "Teamschijven", + "webdavSaveMethod": "Opslagmethode", + "webdavSaveMove": "Sla een tijdelijk bestand op en verplaats", + "webdavSavePut": "Het kdbx-bestand met PUT overschrijven", + "webdavNoLastModified": "Laatst gewijzigde HTTP-header ontbreekt", + "webdavStatReload": "Laad het bestand altijd opnieuw in plaats van te vertrouwen op de laatst gewijzigde HTTP-header", + "launcherSave": "Wachtwoordendatabase opslaan", + "launcherFileFilter": "KeePass-bestanden", + "authPopupRequired": "Pop-ups zijn geblokkeerd", + "authPopupRequiredBody": "Sta pop-ups toe voor deze app in de browser of probeer het nog eens.", + "exportFileInfo": "Bestandsinformatie", + "exportHtmlName": "Naam", + "exportHtmlDate": "Exportdatum", + "exportGenerator": "Software", + "exportDescription": "Dit bestand is gegenereerd met {}.", + "importCsvTitle": "Importeren van CSV", + "importCsvRun": "Importeren", + "importIgnoreField": "Negeren", + "importTo": "Items worden geïmporteerd naar", + "importNewFile": "Nieuw bestand", + "yubiKeyStuckError": "De YubiKey lijkt te blokkeren, automatische reparatie kan worden ingeschakeld in app-instellingen.", + "yubiKeyNoKeyHeader": "YubiKey vereist", + "yubiKeyNoKeyBody": "Voer je YubiKey in met serienummer {}", + "yubiKeySlot": "slot", + "yubiKeyTouchRequestedHeader": "Raak je YubiKey aan", + "yubiKeyTouchRequestedBody": "Raak je YubiKey aan met serienummer {}", + "yubiKeyDisabledErrorHeader": "USB is uitgeschakeld", + "yubiKeyDisabledErrorBody": "YubiKey is vereist om dit bestand te openen, schakel in instellingen USB-apparaten in.", + "yubiKeyErrorWithCode": "Fout met YubiKey, code {}", + "bioOpenAuthPrompt": "{} te openen", + "extensionErrorNoOpenFiles": "Geen open bestanden", + "extensionErrorUserRejected": "Het verzoek is afgewezen", + "extensionErrorNoMatches": "Geen overeenkomende aanmeldingen", + "extensionErrorAlertDisplayed": "Kan nu geen vraag stellen omdat er een ander dialoogvenster wordt weergegeven, probeer het opnieuw", + "extensionConnectHeader": "Gegevensuitwisseling van extensie", + "extensionConnectIntro": "Een browserextensie die zichzelf identificeert als {}, probeert gegevens uit te wisselen met KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb verifieert niet dat de verbonden applicatie is wat deze beweert te zijn. Keur de aanvraag alleen goed als je deze activiteit herkent.", + "extensionConnectFiles": "Sta in deze sessie toegang toe tot:", + "extensionConnectAllOtherFiles": "Alle andere bestanden", + "extensionConnectAllFiles": "Alle bestanden", + "extensionConnectAskGet": "Vraag voor doorgave van wachtwoorden aan deze extensie:", + "extensionConnectAskGetMultiple": "bij meer dan een overeenkomst", + "extensionConnectAskGetAlways": "altijd", + "extensionConnectAskSave": "Vraag voor het opslaan van nieuwe wachtwoorden naar KeeWeb:", + "extensionConnectAskSaveAlways": "altijd", + "extensionConnectAskSaveAuto": "wanneer automatisch opslaan niet mogelijk is", + "extensionConnectSettingsAreForSession": "De instellingen die je hier selecteert, zijn alleen geldig voor de actieve sessie. Je kunt sessies bekijken en beheren in de instellingen van KeeWeb.", + "extensionUnlockMessage": "Ontgrendelen om een browserextensie te verbinden", + "extensionNewGroupHeader": "Nieuwe groep", + "extensionNewGroupBody": "{} probeert een nieuwe groep aan te maken. Toestaan?", + "extensionNewGroupPath": "Groepspad", + "extensionNewGroupFile": "Deze groep wordt aangemaakt in:", + "extensionSaveEntryHeader": "Wachtwoord opslaan", + "extensionSaveEntryBody": "{} probeert een wachtwoord op te slaan. Toestaan?", + "extensionSaveEntryAuto": "Andere wachtwoorden automatisch opslaan in deze sessie", + "extensionSaveEntryNewGroup": "nieuwe groep", + "extensionSelectPasswordFor": "Kies een wachtwoord voor {}", + "selectEntryHeader": "Item kiezen", + "selectEntryEnterHint": "gebruik het geselecteerde item", + "selectEntryTypingHint": "Begin met typen om te filteren", + "selectEntryContains": "Bevat tekst", + "selectEntrySubdomains": "Subdomeinen", + "selectEntryFieldHeader": "Veld selecteren", + "selectEntryFieldTouch": "Druk op de knop op je apparaat om een eenmalige code te genereren." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/no/index.html b/keeweb/plugins/translations/no/index.html new file mode 100644 index 0000000..294a0b6 --- /dev/null +++ b/keeweb/plugins/translations/no/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Norsk + + + + +

KeeWeb Language: Norsk

+ https://plugins.keeweb.info/translations/no + + diff --git a/keeweb/plugins/translations/no/manifest.json b/keeweb/plugins/translations/no/manifest.json new file mode 100644 index 0000000..0fb40a1 --- /dev/null +++ b/keeweb/plugins/translations/no/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.10.0", + "manifestVersion": "0.1.0", + "name": "language-norwegian", + "description": "Norwegian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=no", + "resources": { + "loc": "EhoVCihCyxR1drLvKKIszyoTjBrrjpqMsGexn1UJLVjslY2Wye8Ht7unnYVlp16gtvClhIB8EAOLiKVsDEK04IOfOOrUEoR7PHUnwuue95DPKPSWuVZIRYmadblXPobv0Ij8ySeidf1QKwEDZv2M090ywjadYPIRd9f9Li6nlX6gjYliIecDji5E0eW2KMHNNe9xkVPNnU4MLyppaDwLKP8Z16DC8elPQo9HBJP9U7b53XDzVZwtKL0MoVlFNqhtxzO/QXfFVq2rdLDCw77CH4y5+0z5vkmbzlgtf2ROz/NAed0lKdYbF9jRrohd7Vgl7fpBRz728u4wuDU8XNpj0g==" + }, + "locale": { + "name": "no", + "title": "Norsk", + "flag": "🇳🇴" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/no/no.json b/keeweb/plugins/translations/no/no.json new file mode 100644 index 0000000..e82b083 --- /dev/null +++ b/keeweb/plugins/translations/no/no.json @@ -0,0 +1,534 @@ +{ + "retToApp": "tilbake til appen", + "name": "navn", + "icon": "ikon", + "title": "tittel", + "password": "passord", + "user": "bruker", + "website": "nettside", + "tags": "etiketter", + "notes": "notater", + "entry": "oppføring", + "group": "gruppe", + "noTitle": "uten tittel", + "or": "eller", + "history": "historikk", + "template": "mal", + "notImplemented": "Ikke implementert", + "saveChanges": "Lagre endringer", + "discardChanges": "Forkast endringer", + "advanced": "Avansert", + "shortcuts": "Snarveier", + "help": "Hjelp", + "settings": "Innstillinger", + "plugins": "Utvidelser", + "cache": "hurtiglager", + "file": "fil", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Alle elementer", + "menuColors": "Farger", + "menuTrash": "Papirkurv", + "menuSetGeneral": "Generelt", + "menuSetAbout": "Om", + "menuAlertNoTags": "Ingen etiketter", + "menuAlertNoTagsBody": "Du kan legge til etiketter mens du redigerer felt, i etikett-seksjonen", + "menuEmptyTrash": "Tøm papirkurv", + "menuEmptyTrashAlert": "Tøm papirkurv?", + "menuEmptyTrashAlertBody": "Du vil ikke kunne legge tilbake elementer", + "menuItemCollapsed": "Dobbeltklikk for å utvide", + "alertYes": "Ja", + "alertNo": "Nei", + "alertOk": "OK", + "alertCancel": "Avbryt", + "alertSignIn": "Logg inn", + "alertCopy": "Kopier", + "alertClose": "Lukk", + "alertDoNotAsk": "Ikke spør flere ganger", + "appBeta": "ADVARSEL: betaversjon, kun forhåndsvisning", + "footerOpen": "Åpne / Ny", + "footerSyncError": "Synkroniseringsfeil", + "footerTitleGen": "Generer", + "footerTitleLock": "Lås", + "genLen": "Lengde", + "genNewPass": "Nytt passord", + "genPresetDefault": "standard innstilling", + "genPresetDerived": "som tidligere passord", + "genPresetPronounceable": "mulig å uttale", + "genPresetMed": "medium lengde", + "genPresetLong": "langt", + "genPresetPin4": "firesifret PIN", + "genPresetMac": "MAC-adresse", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "genHidePass": "Skjul passord", + "genShowPass": "Vis passord", + "grpTitle": "Gruppe", + "grpSearch": "Aktiver søk i oppføringer i denne gruppen", + "grpAutoType": "Aktiver autoinnfylling", + "grpAutoTypeSeq": "Autoinnfyllingssekvens", + "grpAutoTypeSeqDefault": "Bruk standard autoinnfyllingssekvens.", + "grpTrash": "Slett gruppe med alle oppføringer", + "tagTitle": "Etikett", + "tagTrash": "Fjern etiketter fra alle oppføringer", + "tagRename": "Endre navn", + "tagTrashQuestion": "Fjerne etikett fra alle oppføringer?", + "tagTrashQuestionBody": "Denne etiketten vil bli fjernet fra alle oppføringer. Det finnes ingen enkel måte å endre det tilbake på.", + "tagExists": "Etiketten eksisterer allerede", + "tagExistsBody": "En etikett med dette navnet finnes allerede. Vennligst velg et annet navn.", + "tagBadName": "Ugyldig navn", + "tagBadNameBody": "Etikettnavnet kan ikke inneholde tegnene {}. Vennligst fjern disse.", + "genPsTitle": "Generatorinnstillinger", + "genPsCreate": "Nytt innstilling", + "genPsDelete": "Slett innstilling", + "genPsNew": "innstilling", + "genPsEnabled": "Vis i innstillingsliste", + "genPsDefault": "Valgt som standard", + "genPsDefaultLength": "Standard lengde", + "genPsUpper": "Store bokstaver", + "genPsLower": "Små bokstaver", + "genPsDigits": "Tall", + "genPsSpecial": "Spesialtegn", + "genPsBrackets": "Klammer", + "genPsHigh": "Høyere ASCII-tegn", + "genPsAmbiguous": "Tvetydige symboler", + "genPsInclude": "Tilleggsymboler som skal inkluderes", + "genPsExample": "Eksempel på generert passord", + "keyChangeTitleRemote": "Hovednøkkel endret", + "keyChangeMessageRemote": "Hovednøkkelen er endret for denne databasen. Vennligst skriv inn ny en hovednøkkel", + "keyChangeTitleExpired": "Hovednøkkelen har utløpt", + "keyChangeMessageExpired": "Hovednøkkelen for denne databasen har utløpt. Vennligst skriv inn ny nøkkel", + "keyChangeRepeatPassword": "Passord, en gang til", + "keyEnter": "Enter", + "iconFavTitle": "Last ned og bruk nettstedsikon", + "iconSelCustom": "Velg eget ikon", + "listEmptyTitle": "Tom", + "listEmptyAdd": "legg til med {}-knappen over", + "listGroup": "Gruppe", + "listNoWebsite": "ingen nettside", + "listNoUser": "ingen bruker", + "listNoAttachments": "ingen vedlegg", + "listAddTemplateHeader": "Maler", + "listAddTemplateBody1": "Maler lar deg lage oppføringer med ett klikk. Legg til noe i oppføringsmalen, og klikk {} en gang til for å bruke denne malen", + "listAddTemplateBody2": "Du kan alltid finne malene dine i {}-gruppen", + "searchAddNew": "Legg til ny", + "searchSort": "Sorter", + "searchCreated": "Opprettet", + "searchUpdated": "Oppdatert", + "searchAttachments": "Vedlegg", + "searchAZ": "A {} Å", + "searchZA": "Å {} A", + "searchON": "Gammel {} Ny", + "searchNO": "Ny {} Gammel", + "searchShiftClickOr": "skift-klikk eller", + "searchAdvTitle": "Bytt til avansert søk", + "searchSearchIn": "Søk i", + "searchOther": "Andre felt", + "searchProtect": "Sikre felt", + "searchOptions": "Innstillinger", + "searchCase": "Skill små/store", + "searchRegex": "RegEx", + "openOpen": "Åpne", + "openNew": "Ny", + "openMore": "Mer", + "openDemo": "Demo", + "openXml": "Importer XML", + "openCaps": "Caps lock er påskrudd", + "openClickToOpen": "Klikk for å åpne fil", + "openKeyFile": "nøkkelfil", + "openKeyFileDropbox": "(fra dropbox)", + "openDropHere": "Dra fil hit", + "openFailedRead": "Feil ved å lese fil", + "openNothingFound": "Ingenting funnet", + "openNothingFoundBody": "Ingen filer kunne åpnes", + "openSelectFile": "Velg en fil", + "openSelectFileBody": "Velg en fil du ønsker å åpne ", + "openPassFor": "Passord for", + "openRemoveLastQuestion": "Slett lokal fil?", + "openRemoveLastQuestionBody": "Filen du sletter er kun lagret i appen. Slett den permanent?", + "openRemoveLastQuestionModBody": "Filen du sletter er endret lokalt. Slett den og forkast edringene?", + "openLocalFile": "Lokal fil", + "openLocalFileBody": "Du åpner en fil som vil bli lagret inni appen. Endringer du gjør vil ikke bli lagret tilbake til filsystemet. For å få ut filen med dine data, må den eksporteres fra innstillingene.", + "openLocalFileDontShow": "Ikke vis dette igjen", + "openWrongFile": "Ugyldig fil", + "openWrongFileBody": "Dette filformatet støttes ikke. Denne appen virker bare med filer i KeePass database-format (kdbx)", + "openKdbFileBody": "Du prøver å åpne en fil i gammel filformat (KDB). Dene appen støtter bare filer i nytt format (kdbx). Vennligst bruk KeePass v2 for å konvertere mellom disse.", + "openConfigHeader": "{}-innstillinger", + "openUrl": "nettadresse", + "openUrlDesc": "https://tjener/sti/fil.kdbx, eller bare fil.kdbx", + "openUser": "Bruker", + "openUserDesc": "WebDAV-tjener brukernavn (hvis påkrevd)", + "openUserPlaceholder": "Ingen bruker", + "openPass": "Passord", + "openPassDesc": "WebDav-tjener passord (dette er ikke fil-passordet)", + "openPassPlaceholder": "ingen passord", + "openConfigError": "Feil: {}", + "openConfigErrorNotFound": "Fil ikke funnet", + "openError": "Feil", + "openErrorDescription": "Det skjedde en feil ved åpning av fil", + "openErrorFileNotFound": "Fil ikke funnet", + "openListErrorBody": "Det oppstod en feil under lasting av fil-liste", + "openShowAllFiles": "Vis alle filer", + "openFileNoCacheError": "Fil ble ikke funnet i hurtiglageret. Dette kan skje på grunn av at nettleserens hurtiglager har blitt slettet. For å åpne filen, fjern den fra KeeWeb å deretter legg til filen igjen.", + "detAttDownload": "Skift-klikk på vedlegg-knapp for å laste ned, eller", + "detAttDelToRemove": "Slett for å fjerne", + "detEmpty": "Passordene dine vil bli vist her", + "detGroupRestore": "Får å tilbakeføre denne gruppen, vennligst dra den til en gruppe utenfor søppelbøtten", + "detHistoryClickPoint": "Trykk oppføringshistorikk for å se tilstand", + "detHistoryReturn": "tilbake til oppføring", + "detHistoryRevert": "Tilbakefør til tilstand", + "detHistoryDel": "Slett tilstand", + "detHistoryEmpty": "tomt", + "detHistoryModified": "endret", + "detHistoryRec": "oppføring", + "detHistoryRecs": "oppføringer", + "detHistoryVersion": "Versjon", + "detHistorySaved": "Lagret", + "detHistoryNoTitle": "ingen tittel", + "detHistoryCurState": "nåværende tilstand", + "detHistoryCurUnsavedState": "nåværende ulagrede tilstand", + "detHistoryDeleteAlert": "Slette dette lagringsstadiet?", + "detHistoryDeleteAlertBody": "Du vil ikke kunne gjenopprette den.", + "detHistoryDiscardChangesAlert": "Angre de utførte endringene til oppføringen?", + "detHistoryDiscardChangesAlertBody": "Ikke-lagrede endringer vil gå tapt, disse kan ikke gjenopprettes.", + "detBackToList": "tilbake til liste", + "detSetIconColor": "Endre farge", + "detSetIcon": "Endre ikon", + "detDropAttachments": "slipp vedlegg her", + "detDelEntry": "Slett", + "detDelEntryPerm": "Slett permanent", + "detExpires": "Utløper", + "detExpired": "utløpt", + "detGroup": "Gruppe", + "detCreated": "Opprettet", + "detUpdated": "Oppdatert", + "detNetField": "Nytt felt", + "detAttachments": "Vedlegg", + "detDelFromTrash": "Slett fra søppelbøtte?", + "detDelFromTrashBody": "Dette kan ikke tilbakeføres.", + "detDelFromTrashBodyHint": "For å raskt fjerne alt fra søpla, klikk tøm-ikonet i Søppelbøtte-menyen", + "detDelToTrash": "Slette denne oppføringen?", + "detDelToTrashBody": "Oppføringen vil nå flyttes til papirkurven.", + "detFieldCopied": "Kopiert", + "detFieldCopiedTime": "Kopiert i {} sekunder", + "detCopyHint": "Du kan kopiere felt-verdi ved å klikke på tittelen", + "detMore": "mer", + "detClickToAddField": "klikk for å legge til nytt felt", + "detMenuAddNewField": "Legg til nett felt", + "detMenuShowEmpty": "Vis tomme felt", + "detMenuHideEmpty": "Skjul tomme felt", + "detMenuAddField": "Legg til {}", + "detMenuCopyPassword": "Kopiér passord", + "detMenuCopyUser": "Kopiér bruker", + "detSetupOtp": "Engangspassord", + "detClone": "Lag en kopi", + "detCopyEntryToClipboard": "Kopier alle felter", + "detClonedName": "Kopiér", + "detAutoType": "Autofyll", + "detAutoTypeSettings": "Innstillinger for autofyll", + "detAutoTypeEnabled": "Aktiver auto-innfylling for denne oppføringen", + "detAutoTypeSequence": "Tastetrykk", + "detAutoTypeInput": "inndata", + "detAutoTypeShortcutsDesc": "{} eller {} når appen er inaktiv", + "detAutoTypeObfuscation": "Bland reelle tastetrykk med tilfeldige", + "detAutoTypeWindow": "Vindu", + "detAutoTypeInputWindow": "Vindustittel", + "detSetupOtpAlert": "Skan QR-koden", + "detSetupOtpAlertBody": "Vennligst kopiér QR-koden som vises på autorisasjon-siden.", + "detSetupOtpAlertBody1": "1. gå til autorisasjon-siden", + "detSetupOtpAlertBody2": "2. lag et skjermbilde av QR-koden {}", + "detSetupOtpAlertBody3": "3. lim inn her {}", + "detSetupOtpAlertBody3Mobile": "3. velg den eller skann med kameraet med Velg/Skann-knappen under", + "detSetupOtpAlertBody4": "Hvis du ikke kan skanne koden, trykk Skriv kode manuelt", + "detSetupOtpManualButton": "Skriv kode manuelt", + "detSetupOtpScanButton": "Velg/Skann", + "detSetupOtpAlertBodyWith": "med {}", + "detOtpImageError": "Feil ved lesing av bilde", + "detOtpImageErrorBody": "Beklager, vi kunne ikke lese bildeformatet, vennligst kontakt app-skaperne med detaljer om feilen.", + "detOtpImageReading": "Leser QR-kode...", + "detOtpQrError": "QR-kode lesefeil", + "detOtpQrErrorBody": "Beklafer, vi klarte ikke å lese QR-koden, vennligst prøv en gang til eller kontakt app-skaperne med detaljer om feilen.", + "detOtpQrWrong": "Feil QR-kode", + "detOtpQrWrongBody": "QR-kode din ble korrekt skannet med den inneholder ikke data om engangspassord.", + "detLockField": "Lås dette feltet, slik at innholdet ikke er søkbart og synlig. For å vise dette innholdet må du trykke på det.", + "detUnlockField": "Lås opp dette feltet, slik at innholdet er søkbart og synlig umiddelbart", + "autoTypeEntryFields": "Oppføringsfelt", + "autoTypeModifiers": "Modifikator-taster", + "autoTypeKeys": "Taster", + "autoTypeLink": "mer...", + "autoTypeError": "Autofyll-feil", + "autoTypeErrorGeneric": "Det skjedde en feil ved utføring av autoinnfylling: {}", + "autoTypeErrorGlobal": "For å bruk system-snarveier, vennligst plasser fokus der du ønsker å fylle inn passord", + "autoTypeErrorNotInstalled": "{} er ikke installert", + "autoTypeHeader": "Autoinnfylling: Velg", + "autoTypeMsgNoWindow": "Vi kunne ikke finne tittel på aktivt vindu, begynn å skrive for å søke", + "autoTypeMsgMatchedByWindow": "Velg et passord for {}", + "autoTypeNoMatches": "ingen samsvar", + "autoTypeSelectionHintAction": "Skriv kun passordet", + "autoTypeSelectionHintOpt": "Skriv kun brukernavnet", + "autoTypeSelectionHintShift": "Andre felter", + "autoTypeSelectionOtp": "Engangspassord", + "appSecWarn": "Ikke sikkert!", + "appSecWarnBody1": "Du har lastet appen med en usikker tilkobling. Noen kan overvåke deg og stjele dine passord. Vi anbefaler på det sterkeste at du avbryter, om du ikke klart forstår hva du gjør.", + "appSecWarnBody2": "Jo, databasen din er kryptert men ingen kan garantere at appen ikke har blitt modifisert på vei til deg.", + "appSecWarnBtn": "Jeg forstår risikoen, fortsett", + "appUnsavedWarn": "Ulagrede endringer!", + "appUnsavedWarnBody": "Du har endringer som ikke er lagret. Hvis du lukker appen, vil endringene gå tapt.", + "appDontExitBtn": "Ikke lukk", + "appCannotLockAutoInit": "Appen kan ikke bli låst fordi autolagring er deaktivert", + "appCannotLock": "Du har ulagrede endringer som vil gå tapt. Fortsett?", + "appAutoSave": "Lagre endringer automatisk", + "appSaveError": "Lagringsfeil", + "appSaveErrorBody": "Kunne ikke autolagre fil", + "appSaveErrorBodyMul": "Kunne ikke autolagre filer:", + "appSettingsError": "Feil ved lasting av app", + "appSettingsErrorBody": "Det skjedde en feil ved lasting av app-innstillinger. Vennligst dobbeltsjekk app-adressen, eller kontakt din administrator", + "appNotSupportedError": "Nettleseren din støttes ikke", + "appTabWarn": "For mange faner", + "appTabWarnBody": "KeeWeb kan ikke brukes i to nettleser-faner samtidig, vennligst lukk denne fanen.", + "appRightsAlert": "Låsing av KeeWeb-app", + "appRightsAlertBody1": "KeeWeb er for øyeblikket ikke beskyttet mot uautoriserte endringer. Vi ber om din tillatelse for å gjøre at bare administratorer kan endre på appen.", + "appRightsAlertBody2": "Vil du gi tillatelse? Du kan gjøre det selv i terminalen", + "setGenTitle": "Generelle instillinger", + "setGenUpdate": "Oppdatering", + "setGenNewVersion": "Ny app-versjon har blitt utgitt og nedlastet", + "setGenReleaseNotes": "Vis utgivelsesnotater", + "setGenReloadToUpdate": "Last på nytt for å oppdatere", + "setGenUpdateManual": "Ny versjon har blitt utgitt. Den vil se etter oppdateringer og installere automatisk, men auto-oppgradering fra din versjon er ikke mulig", + "setGenDownloadUpdate": "Last ned oppdatering", + "setGenUpdateAuto": "Last ned og installér automatisk", + "setGenUpdateCheck": "Sjekk men ikke installér", + "setGenNoUpdate": "Aldri se etter oppdateringer", + "setGenUpdateChecking": "Ser etter oppdatinger", + "setGenCheckUpdate": "Se etter oppdateringer", + "setGenErrorChecking": "Feil ved sjekk av oppdateringer", + "setGenLastCheckSuccess": "Siste vellykkede sjekk var den {}", + "setGenLastCheckVer": "siste versjon var {}", + "setGenCheckedAt": "Sjekket den", + "setGenLatestVer": "du bruker den siste versjonen", + "setGenNewVer": "ny versjon {} tilgjengelig, utgitt", + "setGenDownloadingUpdate": "Laster ned oppdatering...", + "setGenExtractingUpdate": "Pakker ut oppdatering...", + "setGenCheckErr": "Det skjedde en feil ved nedlasting av ny versjon", + "setGenNeverChecked": "Aldri sett etter oppdateringer", + "setGenRestartToUpdate": "Start om appen for å oppdatere", + "setGenDownloadAndRestart": "Last ned oppdatering og start om", + "setGenAppearance": "Utseende", + "setGenTheme": "Drakt", + "setGenThemeFb": "Flat blå", + "setGenThemeDb": "Mørk brun", + "setGenThemeTe": "Terminal", + "setGenThemeHc": "Høykontrast", + "setGenThemeSd": "Overeksponert mørk", + "setGenThemeSl": "Overeksponert lys", + "setGenLocale": "Språk", + "setGenLocOther": "andre språk er tilgjengelige som utvidelser", + "setGenFontSize": "Skriftstørrelse", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Større", + "setGenFontSizeLargest": "Størst", + "setGenTitlebarStyle": "Vindusstil (krever omstart)", + "setGenTitlebarStyleDefault": "Standard", + "setGenTitlebarStyleHidden": "Tilpasset tittel", + "setGenTitlebarStyleHiddenInset": "Tilpasset tittel, flyttbart vindu", + "setGenShowSubgroups": "Vis oppføringer fra alle undergrupper", + "setGenTableView": "Oppføringsliste i tabellvisning", + "setGenColorfulIcons": "Fargerike egenvalgte ikoner i listen", + "setGenDirectAutotype": "Hvis kun ett samsvarende resultat finnes, velg denne automatisk for autofullfør", + "setGenFunction": "Funksjon", + "setGenAutoSyncOnClose": "Lagre og synkroniser automatisk ved lukking", + "setGenAutoSyncTimer": "Automatisk lagre og synkroniser periodisk", + "setGenAutoSyncTimerOff": "Deaktivert", + "setGenAutoSyncTimerInterval": "Hvert {} Minutt(er)", + "setGenRememberKeyFiles": "Husk nøkkelfiler", + "setGenNoRememberKeyFiles": "Ikke husk", + "setGenRememberKeyFilesData": "Lagre i det interne app-minnet", + "setGenRememberKeyFilesPath": "Husk kun sti til nøkkelfiler", + "setGenLockInactive": "Auto-lås hvis appen er inaktiv", + "setGenNoAutoLock": "Ikke auto-lås", + "setGenLockMinutes": "i {} minutter", + "setGenLockHour": "i en time", + "setGenLockHours": "i {} timer", + "setGenLockDay": "i en dag", + "setGenClearClip": "Tøm utklippstavle etter kopiering", + "setGenNoClear": "Ikke tøm", + "setGenClearSeconds": "etter {} sekunder", + "setGenClearMinute": "etter et minutt", + "setGenMinInstead": "Minimér appen istedet for å lukke", + "setGenLock": "Autolås", + "setGenLockMinimize": "Auto-lås ved minimering", + "setGenLockCopy": "Auto-lås ved kopiering av passord", + "setGenLockAutoType": "Auto-lås ved autofylling", + "setGenLockOrSleep": "Når datamaskinen er låst eller i dvale", + "setGenStorage": "Lagring", + "setGenShowAdvanced": "Vis avanserte innstillinger", + "setGenDevTools": "Vis utviklerverktøy", + "setGenTryBeta": "Prøv beta-versjon inntil omstart", + "setGenTryBetaWarning": "Ulagrede filer", + "setGenTryBetaWarningBody": "Vennligst lagre alle filer og trykk på denne knappen på nytt", + "setGenShowAppLogs": "Vis applogger", + "setFilePath": "Filsti", + "setFileStorage": "Denne filer at lastet fra {}.", + "setFileIntl": "Denne filer er lagret i det interne app-lageret", + "setFileLocalHint": "Ønsker du å jobbe sømløst med lokale filer?", + "setFileDownloadApp": "Last ned en skrivebordsapp", + "setFileSave": "Lagre", + "setFileSaveTo": "Lagre som...", + "setFileClose": "Lukk", + "setFileSync": "Synkronisér", + "setFileSyncVerb": "Synkroniser", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Sist synket", + "setFileLastSyncUnknown": "ukjent", + "setFileSyncInProgress": "synkronisering pågår", + "setFileSyncError": "Synk-feil", + "setFilePass": "Hovedpassord", + "setFileConfirmPass": "Bekreft hovedpassord", + "setFilePassChange": "for å endre ditt passord, vennligst skriv passordet i bekreftelsesfeltet", + "setFilePassChanged": "passord ble endret; la feltet være tomt for å bruke gammelt passord", + "setFilePassNotMatch": "passordene samsvarer ikke, vennligst skriv inn passordet igjen", + "setFileKeyFile": "Nøkkelfil", + "setFileSelKeyFile": "Velg en nøkkelfil", + "setFileNames": "Navn", + "setFileDefUser": "Standardbruker", + "setFileEnableTrash": "Aktiver søppelbøtte", + "setFileHistLen": "Historielengde, ta vare på siste versjoner per oppføring", + "setFileHistSize": "Størrelse på historikk, total MB per fil", + "setFileBackups": "Backup", + "setFileBackupEnable": "Ta backup av denne filen", + "setFileBackupPath": "Backup-sti", + "setFileBackupTime": "Ta backup", + "setFileBackupNow": "Ta backup nå", + "setFileBackupNowWorking": "Jobber...", + "setFileBackupError": "Feil ved backup", + "setFileBackupErrorDescription": "Feil ved skriving til backup-fil", + "setFileBackupErrorIsDir": "Sikkerhetskopiens filsti er ugyldig", + "setFileBackupOnSave": "Hver gang jeg lagrer filen", + "setFileBackupDaily": "Daglig", + "setFileBackupWeekly": "Ukentlig", + "setFileBackupMonthly": "Månedlig", + "setFileBackupManually": "Manuelt, ingen auto-backup", + "setFileRounds": "Nøkkelkrypterings-runder", + "setFileKdfParams": "Nøkkelutledningsfunksjon", + "setFileKdfParamsIter": "iterasjoner", + "setFileKdfParamsMem": "Minne, KB", + "setFileKdfParamsPar": "Parallellisering", + "setFileKeyChangeForce": "Spør om å endre nøkkel etter (dager)", + "setFileUseKeyFile": "Bruk nøkkelfil", + "setFileUseGenKeyFile": "Bruk generert nøkkelfil", + "setFileUseOldKeyFile": "Bruk gammel nøkkelfil", + "setFileGenKeyFile": "Generér ny nøkkelfil", + "setFileDontUseKeyFile": "Ikke bruk nøkkelfil", + "setFileEmptyPass": "Tomt passord", + "setFileEmptyPassBody": "Å lagre databasen med tomt passord gjør den fullstendig ubeskyttet. Vil du virkelig dette?", + "setFileSaveError": "Lagringsfeil", + "setFileSaveErrorBody": "Feil ved lagring til fil", + "setFileAlreadyExists": "Eksisterer allerede", + "setFileAlreadyExistsBody": "Fil {} eksisterer fra før. Overskrive?", + "setFileUnsaved": "Ulagrede endringer", + "setFileUnsavedBody": "Det er ulagrede endringer i denne filen", + "setFileCloseNoSave": "Lukk og mist endringer", + "setFileDontClose": "Ikke lukk", + "setFileFormatVersion": "Filformat", + "setShTitle": "Snarveier", + "setShShowAll": "vis alle elementer", + "setShColors": "vis elementer med farger", + "setShTrash": "gå til søppelbøtte", + "setShFind": "søk, eller bare begynn å skrive", + "setShClearSearch": "tøm søk", + "setShCopyPass": "kopiér passord eller valgt felt", + "setShCopyUser": "kopiér bruker", + "setShCopyUrl": "kopiér nettside", + "setShAutoType": "auto-fyll den valgte oppføringen", + "setShPrev": "gå til forrige element", + "setShNext": "gå til neste element", + "setShCreateEntry": "lag ny oppføring", + "setShOpen": "åpne / ny", + "setShSave": "lagre alle filer", + "setShGen": "generér passord", + "setShSet": "appinnstillinger", + "setShCopyPassGlobal": "kopiér passord (når appen er i bakgrunnen)", + "setShAutoTypeGlobal": "autofyll (når appen er i bakgrunnen)", + "setShLock": "lås database", + "setPlInstallTitle": "Installér nye utvidelser", + "setPlInstallDesc": "KeeWeb-utvidelser legger til nye funksjoner, drakter og språk i KeeWeb. Utvidelser kjører med samme rettigheter som KeeWeb, de har tilgang til og kan behandle alle dine passord. Installér aldri utvidelser som du ikke stoler på.", + "setPlInstallLabel": "Utvidelsens URL", + "setPlInstallBtn": "Installér", + "setPlInstallBtnProgress": "Installerer", + "setPlUninstallBtn": "Avinstallér", + "setPlDisableBtn": "Deaktivér", + "setPlEnableBtn": "Aktivér", + "setPlUpdateBtn": "Oppdatér", + "setPlLocaleBtn": "Bytt til dette språket", + "setPlThemeBtn": "Bytt til denne drakten", + "setPlJs": "kode", + "setPlCss": "stiler", + "setPlLoc": "språk", + "setPlCreatedBy": "Laget av {}", + "setPlLoadTime": "lastet på {}", + "setPlLastUpdate": "Sist sjekket for oppdateringer", + "setPlLoadError": "feil ved lasting av utvidelse", + "setPlGalleryLoading": "Laster utvidelser, vennligst vent litt", + "setPlGalleryLoadError": "Feil ved lasting av utvidelser", + "setPlInstallUrlTitle": "Legg til utvidelse fra URL", + "setPlInstallUrlDesc": "Hvis utvidelsen ikke finnes i galleriet, kan du installere den manuelt fra URL", + "setPlOfficial": "Offisiell KeeWeb-utvidelse", + "setPlSearch": "Søk etter utvidelser", + "setPlDevelop": "Ønsker du å utvikle egne utvidelser?", + "setPlDevelopStart": "Start her", + "setPlTranslate": "Eller du kan {}", + "setPlTranslateLink": "oversette appen til ditt språk", + "setPlAutoUpdate": "Oppdatér automatisk", + "setPlLoadGallery": "Last utvidelsesgalleri", + "setAboutTitle": "Om", + "setAboutBuilt": "Denne appen er lagd med disse fantastiske verktøyene", + "setAboutLic": "Lisens", + "setAboutLicComment": "Selve appen og alle inkluderte komponenter som ikke er i Public Domain er lisensiert under MIT-lisens", + "setAboutFirst": "Dette er en Åpen Kildekode-app laget av {}", + "setAboutSecond": "og lisensiert under {}", + "setAboutSource": "Kildekoden og problemoversikt er på {}.", + "setHelpFormat": "Filformat", + "setHelpFormatBody": "Dette er en portering av {}-appen bygget på web-teknologier. Den forstår filer i KeePass-format (kdbx). Du kan opprette slike filer (passorddatabaser) enten i KeePass, eller i denne appen. Filformatet er 100% kompatibelt og burde forstås av begge apper.", + "setHelpProblems": "Trenger du hjelp?", + "setHelpProblems1": "Hvis noe går galt, vennligst {}", + "setHelpProblems2": "eller {}", + "setHelpOpenIssue": "opprett en sak på GitHub", + "setHelpContactLink": "kontakt en utvikler direkte", + "setHelpAppInfo": "Informasjon om appen", + "setHelpOtherPlatforms": "Andre platformer", + "setHelpDesktopApps": "Skrivebordsapper", + "setHelpWebApp": "Nett-app", + "setHelpUpdates": "Oppdateringer", + "setHelpTwitter": "App twitter", + "dropboxSetupDesc": "Noe konfigurering er nødvendig ved bruk av Dropbox i app på egen tjener. Vennligst registrer din egen Dropbox-app og fyll inn nøkkelen under.", + "dropboxAppKey": "Dropbox app-nøkkel", + "dropboxAppKeyDesc": "Kopiér nøkkel fra den Dropbox-app (Developer settings)", + "dropboxFolder": "App-mappe", + "dropboxFolderDesc": "Hvis appen din er knyttet til hele Dropboxen (ikke app-mappe), fyll inn mappen med kdbx-filene her.", + "dropboxFolderSettingsDesc": "Velg en mappe i din Dropbox der filene vil bli lagret (rot-mappe som standard)", + "dropboxFolderPlaceholder": "Standardmappe", + "dropboxLink": "Koble appen til", + "dropboxLinkApp": "App-mappe (Apps/KeeWeb)", + "dropboxLinkFull": "Full Dropbox eller vilkårlig mappe", + "dropboxLinkCustom": "Egen Dropbox-app", + "gdriveSharedWithMe": "Delt med meg", + "webdavSaveMethod": "Lagringsmetode", + "webdavSaveMove": "Last opp midlertidig fil og flytt", + "webdavSavePut": "Overskriv kdbx-filen med PUT", + "launcherSave": "Lagre passorddatabase", + "launcherFileFilter": "KeePass-filer", + "authPopupRequired": "Sprettoppvinduer er blokkert", + "authPopupRequiredBody": "Vennligst tillat sprettoppvinduer for denne appen i nettleseren din", + "exportFileInfo": "Filinformasjon", + "exportHtmlName": "Navn", + "exportHtmlDate": "Eksportdato", + "exportGenerator": "Programvare", + "importCsvTitle": "Importer fra CSV", + "importCsvRun": "Importer", + "importIgnoreField": "Ignorer", + "importTo": "Oppføringene vil bli importert til", + "importNewFile": "Ny fil" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/pl/index.html b/keeweb/plugins/translations/pl/index.html new file mode 100644 index 0000000..50d4622 --- /dev/null +++ b/keeweb/plugins/translations/pl/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Polski + + + + +

KeeWeb Language: Polski

+ https://plugins.keeweb.info/translations/pl + + diff --git a/keeweb/plugins/translations/pl/manifest.json b/keeweb/plugins/translations/pl/manifest.json new file mode 100644 index 0000000..c5e2f5c --- /dev/null +++ b/keeweb/plugins/translations/pl/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.33.0", + "manifestVersion": "0.1.0", + "name": "language-polish", + "description": "Polish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=pl", + "resources": { + "loc": "IQykN49oS7w7wF4uNmz199WWbbgb9EkyTrP/CBhS0EIJSjjMfuhRF/HGjET0Gsnq/yjLK6/ixEtKHxySZ3xKGf/Sk0EpePbwoooG0toE1VlrJONFlWgLfBDBb0q1JGhZJHfZAek+8d9++89M2BOR6FZ99elBQkilHkeiysKA8fKtBzMzAoiJ0cuw3JZXGjNK/YJ9uCunxx9dc8oEXbq9aPFXsIzREmuBonkC6Se4O5HNlf0MM5N7fH5Io8ZNTMkuAPSlO+9F01/sBEgNw3ztSMxijIZ05nx02bSovqCO5koHzKo36Z/xKPwvHOUxP5QJvZo8chtzqLF227YutDfRQQ==" + }, + "locale": { + "name": "pl", + "title": "Polski", + "flag": "🇵🇱" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/pl/pl.json b/keeweb/plugins/translations/pl/pl.json new file mode 100644 index 0000000..9d4181e --- /dev/null +++ b/keeweb/plugins/translations/pl/pl.json @@ -0,0 +1,776 @@ +{ + "retToApp": "Wróć do aplikacji", + "name": "Nazwa", + "icon": "Ikona", + "title": "Tytuł", + "password": "Hasło", + "user": "Użytkownik", + "website": "Strona WWW", + "tags": "Znaczniki", + "notes": "Notatki", + "entry": "Wpis", + "group": "Grupa", + "noTitle": "Brak tytułu", + "or": "albo", + "history": "Historia", + "template": "Szablon", + "templates": "Szablony", + "notImplemented": "Nie zaimplementowano", + "saveChanges": "Zapisz zmiany", + "discardChanges": "Odrzuć zmiany", + "advanced": "Zaawansowane", + "shortcuts": "Skróty", + "help": "Pomoc", + "settings": "Ustawienia", + "plugins": "Wtyczki", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "błąd", + "oneMinute": "Jednej minucie", + "minutes": "{} minutach", + "oneHour": "Jednej godzinie", + "hours": "{} godzinach", + "oneDay": "Jednym dniu", + "days": "{} dniach", + "oneWeek": "Jednym tygodniu", + "oneMonth": "Jednym miesiącu", + "oneYear": "Jednym roku", + "cache": "Cache", + "file": "Plik", + "device": "Urządzenie", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Wszystko", + "menuColors": "Kolory", + "menuTrash": "Kosz", + "menuSetGeneral": "Ogólne", + "menuSetBrowser": "Przeglądarka", + "menuSetAbout": "Informacje", + "menuSetDevices": "Urządzenia", + "menuAlertNoTags": "Brak znaczników", + "menuAlertNoTagsBody": "Możesz dodać nowe znaczniki podczas edytowania pól w sekcji Znaczniki.", + "menuEmptyTrash": "Opróżnij kosz", + "menuEmptyTrashAlert": "Opróżnić kosz?", + "menuEmptyTrashAlertBody": "Nie będziesz mógł przywrócić elementów", + "menuItemCollapsed": "Dwukrotnie kliknij, aby rozwinąć", + "menuRestoreApp": "Otwórz {}", + "menuQuitApp": "Zamknij {}", + "sysMenuAboutKeeWeb": "Informacje o {}", + "sysMenuServices": "Usługi", + "sysMenuHide": "Ukryj {}", + "sysMenuHideOthers": "Ukryj inne", + "sysMenuUnhide": "Pokaż wszystko", + "sysMenuQuit": "Zakończ {}", + "sysMenuEdit": "Edycja", + "sysMenuUndo": "Cofnij", + "sysMenuRedo": "Ponów", + "sysMenuCut": "Wytnij", + "sysMenuCopy": "Kopiuj", + "sysMenuPaste": "Wklej", + "sysMenuSelectAll": "Zaznacz wszystko", + "sysMenuWindow": "Okno", + "sysMenuMinimize": "Zminimalizuj", + "sysMenuClose": "Zamknij okno", + "alertYes": "Tak", + "alertNo": "Nie", + "alertOk": "OK", + "alertCancel": "Anuluj", + "alertSignIn": "Zaloguj", + "alertCopy": "Skopiuj", + "alertClose": "Zamknij", + "alertDoNotAsk": "Nie pytaj mnie więcej", + "alertAllow": "Zezwól", + "alertDeny": "Odmów", + "appBeta": "UWAGA: wersja beta tylko do wstępnego podglądu", + "footerOpen": "Otwórz / Nowy", + "footerSyncError": "Błąd synchronizacji", + "footerTitleGen": "Wygeneruj", + "footerTitleLock": "Zablokuj", + "genLen": "Długość", + "genNewPass": "Nowe hasło", + "genPresetDefault": "Domyślne", + "genPresetDerived": "Jak stare hasło", + "genPresetPronounceable": "Wymawialne", + "genPresetMed": "Średniej długości", + "genPresetLong": "Długie", + "genPresetPin4": "4-cyfrowy PIN", + "genPresetMac": "Adres MAC", + "genPresetHash128": "128-bitowy hash", + "genPresetHash256": "256-bitowy hash", + "genHidePass": "Ukryj hasło", + "genShowPass": "Pokaż hasło", + "grpTitle": "Grupa", + "grpSearch": "Włącz wyszukiwanie wpisów w tej grupie", + "grpAutoType": "Włącz automatyczne wpisywanie", + "grpAutoTypeSeq": "Sekwencja automatycznego wpisywania", + "grpAutoTypeSeqDefault": "Użyj domyślnej sekwencji automatycznego wpisywania", + "grpTrash": "Usuń grupę ze wszystkimi wpisami", + "tagTitle": "Znacznik", + "tagTrash": "Usuń znacznik ze wszystkich wpisów", + "tagRename": "Zmień nazwę", + "tagTrashQuestion": "Usunąć znacznik ze wszystkich wpisów?", + "tagTrashQuestionBody": "Ten znacznik zostanie usunięty ze wszystkich wpisów. Nie będzie łatwo go przywrócić.", + "tagExists": "Znacznik już istnieje", + "tagExistsBody": "Znacznik o tej samej nazwie już istnieje. Proszę wybrać inną nazwę.", + "tagBadName": "Zła nazwa", + "tagBadNameBody": "Nazwa znacznika nie może zawierać znaków {}. Proszę je usunąć.", + "genPsTitle": "Ustawienia generatora", + "genPsCreate": "Nowe ustawienie", + "genPsDelete": "Usuń ustawienie", + "genPsNew": "Ustawienie", + "genPsEnabled": "Pokaż na liście ustawień", + "genPsDefault": "Domyślnie wybrane", + "genPsDefaultLength": "Domyślna długość", + "genPsUpper": "Wielkie litery łacińskie", + "genPsLower": "Małe litery łacińskie", + "genPsDigits": "Cyfry", + "genPsSpecial": "Symbole specjalne", + "genPsBrackets": "Nawiasy", + "genPsHigh": "Rozszerzone znaki ASCII", + "genPsAmbiguous": "Symbole wieloznaczne", + "genPsInclude": "Dodatkowe symbole do włączenia", + "genPsExample": "Przykład wygenerowanego hasła", + "genPsPattern": "Wzór", + "genPsPatternHelp": "Wzorów można używać do określania niestandardowych reguł wyboru znaków. Na przykład 1-AA wygeneruje hasła zaczynające się od cyfry, po której następuje myślnik i dwie litery. Możesz użyć tych symboli:", + "genPsAllRanges": "Wszystkie symbole", + "genPsIncluded": "Dodatkowe symbole dodane powyżej", + "keyChangeTitleRemote": "Zmieniono klucz główny", + "keyChangeMessageRemote": "Klucz główny tej bazy danych został zmieniony. Proszę wprowadzić nowy klucz", + "keyChangeTitleExpired": "Wygasł klucz główny", + "keyChangeMessageExpired": "Klucz główny tej bazy danych wygasł. Proszę wprowadzić nowy klucz", + "keyChangeRepeatPassword": "Powtórz hasło", + "keyEnter": "Wprowadź", + "keyEsc": "Esc", + "iconFavTitle": "Pobierz i użyj ikony ulubionych strony WWW", + "iconSelCustom": "Wybierz niestandardową ikonę", + "listEmptyTitle": "Pusto", + "listEmptyAdd": "Dodaj za pomocą przycisku {} powyżej", + "listGroup": "Grupa", + "listNoWebsite": "Brak strony WWW", + "listNoUser": "Brak użytkownika", + "listNoAttachments": "Brak załączników", + "listAddTemplateHeader": "Szablony", + "listAddTemplateBody1": "Szablony pozwalają na tworzenie wpisów za pomocą jednego kliknięcia. Dodaj coś do wpisu szablonu, a następnie kliknij {} ponownie, aby użyć tego szablonu.", + "listAddTemplateBody2": "Zawsze możesz znaleźć swoje szablony w grupie {}.", + "searchAddNew": "Dodaj nowy", + "searchSort": "Sortuj", + "searchCreated": "Utworzono", + "searchUpdated": "Uaktualniono", + "searchAttachments": "Załączniki", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "wcześ. {} póź.", + "searchNO": "poź. {} wcześ.", + "searchShiftClickOr": "Shift+kliknięcie albo", + "searchAdvTitle": "Włącz wyszukiwanie zaawansowane", + "searchSearchIn": "Wyszukaj w", + "searchOther": "Inne pola", + "searchProtect": "Bezpieczne pola", + "searchOptions": "Opcje", + "searchCase": "Wielkość liter", + "searchRegex": "RegEx", + "searchRank": "Automatycznie", + "searchExact": "Dokładny", + "openOpen": "Otwórz", + "openNew": "Nowy", + "openNewFile": "Nowy", + "openMore": "Więcej", + "openDemo": "Demo", + "openGenerate": "Wygeneruj", + "openXml": "Importuj XML", + "openCaps": "Caps Lock jest włączony", + "openClickToOpen": "Kliknij, aby otworzyć plik", + "openKeyFile": "Plik klucza", + "openKeyFileDropbox": "(z Dropboksa)", + "openDropHere": "Tutaj upuść pliki", + "openFailedRead": "Nie można odczytać pliku", + "openNothingFound": "Nic nie znaleziono", + "openNothingFoundBody": "Nie znaleźliśmy żadnych odpowiednich plików.", + "openSelectFile": "Wybierz plik", + "openSelectFileBody": "Wybierz plik, który chcesz otworzyć", + "openPassFor": "Hasło do", + "openRemoveLastQuestion": "Usunąć lokalny plik?", + "openRemoveLastQuestionBody": "Plik, który usuwasz, jest przechowywany tylko wewnątrz aplikacji. Usunąć go na stałe?", + "openRemoveLastQuestionModBody": "Plik, który usuwasz, został zmodyfikowany lokalnie. Usunąć go i odrzucić te modyfikacje?", + "openLocalFile": "Plik lokalny", + "openLocalFileBody": "Zamierzasz otworzyć plik, który będzie przechowywany wewnątrz aplikacji. Zmiany, które dokonasz, nie zostaną zapisane z powrotem do systemu plików. Aby pobrać plik z twoimi danymi, wyeksportuj go ze strony ustawień.", + "openLocalFileDontShow": "Nie pokazuj tego ponownie", + "openWrongFile": "Zły plik", + "openWrongFileBody": "Ten format pliku jest nieobsługiwany. Ta aplikacja pracuje z plikami w formacie bazy danych KeePass (KDBX).", + "openKdbFileBody": "Próbujesz otworzyć starą bazę danych KeePass w formacie KDB. Ta aplikacja obsługuje tylko nowszy format KDBX. Proszę użyć KeePass v2, aby przekonwertować ten plik.", + "openConfigHeader": "Ustawienia {}", + "openUrl": "URL", + "openUrlDesc": "https://serwer/ścieżka/plik.kdbx lub tylko plik.kdbx", + "openUser": "Użytkownik", + "openUserDesc": "Użytkownik serwera WebDAV (jeżeli wymagany)", + "openUserPlaceholder": "Brak użytkownika", + "openPass": "Hasło", + "openPassDesc": "Hasło serwera WebDAV (to nie jest hasło twojego pliku)", + "openPassPlaceholder": "Brak hasła", + "openConfigError": "Błąd: {}", + "openConfigErrorNotFound": "Nie znaleziono pliku", + "openError": "Błąd", + "openErrorDescription": "Wystąpił błąd podczas otwierania pliku", + "openErrorDescriptionMaybeTouchIdChanged": "Błąd wygląda podobnie do tego, co zwykle dzieje się po zmianie konfiguracji Touch ID, na przykład po dodaniu lub usunięciu dodatkowego palca. W takim przypadku przejdź do Ustawień, wyłącz funkcję Touch ID i włącz ją ponownie.", + "openErrorFileNotFound": "Nie znaleziono pliku", + "openListErrorBody": "Wystąpił błąd podczas ładowania listy plików", + "openShowAllFiles": "Pokaż wszystkie pliki", + "openFileNoCacheError": "Nie znaleziono pliku w pamięci podręcznej. Może się tak zdarzyć, ponieważ pamięć przeglądarki została wyczyszczona. Aby otworzyć plik, usuń go z KeeWeb i dodaj go ponownie.", + "openChalRespHeader": "Wyzwanie-odpowiedź", + "openChalRespLoading": "Ładowanie listy urządzeń YubiKey", + "openChalRespSelectYubiKey": "Wybierz YubiKey, którego chcesz użyć", + "openChalRespErrorEmpty": "Nie znaleziono urządzeń YubiKey.", + "openChalRespErrorEmptyMac": "Po raz pierwszy korzystasz z tej funkcji w systemie macOS? KeeWeb musi zostać dodany do sekcji Monitorowanie danych wejściowych w ustawieniach bezpieczeństwa.", + "detAttDownload": "Shift+kliknięcie przycisku załącznika, aby pobrać, albo", + "detAttDelToRemove": "Delete, aby usunąć", + "detAttSave": "Zapisz jako …", + "detEmpty": "Twoje hasła zostaną tutaj wyświetlone", + "detGroupRestore": "Aby przywrócić tę grupę, proszę przeciągnąć ją do innej grupy poza koszem", + "detHistoryClickPoint": "Kliknij punkt na osi czasu wpisu, aby zobaczyć stan", + "detHistoryReturn": "Powróć do wpisu", + "detHistoryRevert": "Przywróć stan", + "detHistoryDel": "Usuń stan", + "detHistoryEmpty": "Pusty", + "detHistoryModified": "Modyfikowany", + "detHistoryRec": "zapis", + "detHistoryRecs": "zapisy", + "detHistoryVersion": "Wersja", + "detHistorySaved": "Zapisany", + "detHistoryNoTitle": "Brak tytułu", + "detHistoryCurState": "Obecny stan", + "detHistoryCurUnsavedState": "Obecny niezapisany stan", + "detHistoryRevertAlert": "Powrócić do tego stanu historii?", + "detHistoryRevertAlertBody": "Twój obecny stan zostanie zapisany w historii.", + "detHistoryDeleteAlert": "Usunąć ten stan historii?", + "detHistoryDeleteAlertBody": "Nie będziesz w stanie go przywrócić.", + "detHistoryDiscardChangesAlert": "Odrzucić zmiany wprowadzone do wpisu?", + "detHistoryDiscardChangesAlertBody": "Niezapisane zmiany zostaną utracone, nie będzie powrotu.", + "detBackToList": "Wróć do listy", + "detSetIconColor": "Zmień kolor", + "detSetIcon": "Zmień ikonę", + "detDropAttachments": "Upuść tutaj załączniki", + "detDelEntry": "Usuń", + "detDelEntryPerm": "Usuń trwale", + "detExpires": "Wygasa", + "detExpired": "Wygasło", + "detGroup": "Grupa", + "detCreated": "Utworzono", + "detUpdated": "Uaktualniono", + "detNetField": "Nowe pole", + "detAttachments": "Załączniki", + "detDelFromTrash": "Usunąć z kosza?", + "detDelFromTrashBody": "Nie będziesz mógł tego przywrócić.", + "detDelFromTrashBodyHint": "Aby szybko usunąć wszystkie elementy z kosza, kliknij ikonę usuwania z menu kosza.", + "detDelToTrash": "Usunąć wpis?", + "detDelToTrashBody": "Wpis zostanie przeniesiony do folderu kosza.", + "detFieldCopied": "Skopiowano", + "detFieldCopiedTime": "Skopiowano w {} sekund", + "detCopyHint": "Możesz skopiować wartość pola, klikając jego tytuł", + "detMore": "Więcej", + "detClickToAddField": "Kliknij, aby dodać nowe pole", + "detMenuAddNewField": "Dodaj nowe pole", + "detMenuAddNewWebsite": "Dodaj inną witrynę", + "detMenuShowEmpty": "Pokaż puste pola", + "detMenuHideEmpty": "Ukryj puste pola", + "detMenuAddField": "Dodaj {}", + "detMenuCopyPassword": "Skopiuj hasło", + "detMenuCopyUser": "Skopiuj użytkownika", + "detMenuCopyOtp": "Skopiuj kod jednorazowy", + "detSetupOtp": "Kody jednorazowe", + "detClone": "Stwórz kopię", + "detCopyEntryToClipboard": "Skopiuj wszystkie pola", + "detClonedName": "Kopia", + "detAutoType": "Automatyczne wpisywanie", + "detAutoTypeSettings": "Ustawienia automatycznego wpisywania", + "detAutoTypeEnabled": "Włącz automatyczne wpisywanie dla tego wpisu", + "detAutoTypeSequence": "Wciś. klawiszy", + "detAutoTypeInput": "Wprowadz.", + "detAutoTypeShortcutsDesc": "{} albo {}, gdy aplikacja jest nieaktywna", + "detAutoTypeObfuscation": "Mieszaj prawdziwe wciśnięcia klawiszy z losowymi", + "detAutoTypeWindow": "Okno", + "detAutoTypeInputWindow": "Tytuł okna", + "detSetupOtpAlert": "Skanuj kod QR", + "detSetupOtpAlertBody": "Proszę skopiować kod QR, który jest wyświetlony na stronie uwierzytelniania.", + "detSetupOtpAlertBody1": "1. Przejdź do strony uwierzytelniania", + "detSetupOtpAlertBody2": "2. Zrób zrzut ekranu kodu QR {}", + "detSetupOtpAlertBody3": "3. Wklej go tutaj {}", + "detSetupOtpAlertBody3Mobile": "3. Wybierz go albo przeskanuj aparatem za pomocą przycisku Wybierz/Skanuj poniżej", + "detSetupOtpAlertBody4": "Jeżeli nie możesz przeskanować kodu, kliknij Wprowadź kod ręcznie", + "detSetupOtpManualButton": "Wprowadź kod ręcznie", + "detSetupOtpScanButton": "Wybierz/Skanuj", + "detSetupOtpAlertBodyWith": "z {}", + "detOtpImageError": "Błąd odczytu obrazu", + "detOtpImageErrorBody": "Wybacz, nie możemy odczytać formatu obrazu. Proszę skontaktować się z autorami aplikacji wraz z informacjami o błędach.", + "detOtpImageReading": "Odczytywanie kodu QR...", + "detOtpQrError": "Błąd skanowania kodu QR", + "detOtpQrErrorBody": "Wybacz, nie możemy odczytać kodu QR. Proszę spróbować ponownie albo skontaktować się z autorami aplikacji wraz z informacjami o błędach.", + "detOtpQrWrong": "Nieprawidłowy kod QR", + "detOtpQrWrongBody": "Twój kod QR został pomyślnie zeskanowany, ale nie zawiera danych kodu jednorazowego.", + "detOtpField": "Kod jednorazowy", + "detOtpClickToTouch": "Kliknij, aby wygenerować", + "detOtpGenerating": "Generowanie...", + "detOtpTouch": "Dotknij {}", + "detLockField": "Zablokuj to pole, więc jego zawartość nie będzie widoczna i dostępna do wyszukiwania. Wyświetlanie treści wymaga jawnego kliknięcia.", + "detUnlockField": "Odblokuj to pole, dzięki czemu jego treść będzie natychmiast widoczna i dostępna do wyszukiwania", + "detRevealField": "Ujawnij", + "detHideField": "Ukryj", + "detAutoTypeField": "Auto. wpisz", + "detIssuesHideTooltip": "Ukryj to ostrzeżenie", + "detIssueWeakPassword": "Hasło jest słabe, warto je zmienić.", + "detIssuePoorPassword": "Hasło jest bardzo słabe, zdecydowanie warto je zmienić.", + "detIssuePwnedPassword": "To hasło zostało ujawnione w wyniku wycieku danych według {}, zaleca się jego zmianę.", + "detIssuePasswordCheckError": "Wystąpił błąd podczas sprawdzania online siły hasła.", + "detIssueOldPassword": "Hasło jest stare.", + "detIssueCloseAlertHeader": "Ukryj problemy z hasłem", + "detIssueCloseAlertBody": "Istnieją różne sposoby na ukrycie tego ostrzeżenia:", + "detIssueCloseAlertEntry": "Nie pokazuj dla tego wpisu", + "detIssueCloseAlertSettings": "Dostosuj ustawienia globalne", + "autoTypeEntryFields": "Pola wpisu", + "autoTypeModifiers": "Klawisze modyfikujące", + "autoTypeKeys": "Klawisze", + "autoTypeLink": "Więcej...", + "autoTypeError": "Błąd automatycznego wpisywania", + "autoTypeErrorGeneric": "Wystąpił błąd podczas wykonywania automatycznego wpisywania: {}", + "autoTypeErrorAccessibilityMacOS": "Próbowaliśmy wysłać naciśnięcia klawiszy do aplikacji, ale wygląda na to, że to nie działa. Może się tak zdarzyć z powodu brakujących uprawnień, kliknij tutaj, aby przeczytać więcej na ten temat:", + "autoTypeErrorGlobal": "Aby użyć skrótu systemowego, uaktywnij aplikację, w której chcesz wpisać hasło", + "autoTypeErrorNotInstalled": "{} nie jest zainstalowany", + "autoTypeHeader": "Automatyczne wpisywanie: wybierz", + "autoTypeMsgNoWindow": "Nie mogliśmy uzyskać tytułu aktywnego okna. Zacznij pisać, aby wyszukać", + "autoTypeMsgMatchedByWindow": "Wybierz hasło dla {}", + "autoTypeNoMatches": "Brak dopasowań", + "autoTypeSelectionHint": "Wpisz sekwencję automatycznego wpisywania", + "autoTypeSelectionHintAction": "Wpisz tylko hasło", + "autoTypeSelectionHintOpt": "Wpisz tylko nazwę użytkownika", + "autoTypeSelectionHintShift": "Inne pola", + "autoTypeSelectionOtp": "Kod jednorazowy", + "autoTypeUnlockMessage": "Odblokuj do automatycznego wpisywania", + "appSecWarn": "Niezabezpieczone!", + "appSecWarnBody1": "Aplikację załadowano z niezabezpieczonym połączeniem. Ktoś może cię obserwować i ukraść twoje hasła. Zdecydowanie zalecamy przerwanie pracy, chyba że wyraźnie zrozumiesz, co robisz.", + "appSecWarnBody2": "Tak, twoja baza danych jest zaszyfrowana, ale nikt nie może zagwarantować, że aplikacja nie została zmodyfikowana w drodze do ciebie.", + "appSecWarnBtn": "Rozumiem zagrożenia, kontynuuj", + "appUnsavedWarn": "Niezapisane zmiany!", + "appUnsavedWarnBody": "Masz niezapisane pliki. Jeżeli zamkniesz aplikację, zmiany zostaną utracone.", + "appDontExitBtn": "Nie wychodź", + "appCannotLockAutoInit": "Aplikacja nie może być zablokowana, ponieważ autozapisywanie jest wyłączone.", + "appCannotLock": "Masz niezapisane zmiany, które zostaną utracone. Kontynuować?", + "appAutoSave": "Zapisz zmiany automatycznie", + "appSaveError": "Błąd zapisu", + "appSaveErrorBody": "Nie udało się autozapisywanie pliku", + "appSaveErrorBodyMul": "Nie udało się autozapisywanie plików:", + "appSaveErrorExitLoseChanges": "Zamknij i utrać wszystkie zmiany", + "appSaveErrorExitLoseChangesBody": "Możesz zamknąć aplikację i utracić wszystkie zmiany lub przejść do ustawień pliku, aby wyeksportować dane", + "appSettingsError": "Błąd ładowania aplikacji", + "appSettingsErrorBody": "Wystąpił błąd podczas ładowania ustawień aplikacji. Proszę sprawdzać dwukrotnie URL aplikacji albo skontaktować się z administratorem.", + "appNotSupportedError": "Twoja przeglądarka nie obsługuje niektórych ważnych funkcji, z których korzystamy.", + "appTabWarn": "Zbyt wiele kart", + "appTabWarnBody": "KeeWeb nie może być używany w dwóch kartach przeglądarki jednocześnie, proszę zamknąć tę kartę.", + "appRightsAlert": "Blokowanie aplikacji KeeWeb", + "appRightsAlertBody1": "Twoja aplikacja KeeWeb jest zapisywalna. Prosimy o uprawnienia administratora, aby mógł być zapisywalny tylko dla administratorów.", + "appRightsAlertBody2": "Nie chcesz udzielać uprawnień? Możesz to zrobić w Terminalu", + "appBrowserAuthComplete": "Uwierzytelnianie zostało zakończone, możesz teraz zamknąć tę kartę.", + "setGenTitle": "Ustawienia ogólne", + "setGenUpdate": "Aktualizacja", + "setGenNewVersion": "Nowa wersja aplikacji została wydana i pobrana", + "setGenReleaseNotes": "Zobacz informacje o wydaniu", + "setGenReloadToUpdate": "Odśwież, aby zaktualizować", + "setGenUpdateManual": "Nowa wersja została wydana. Aplikacja sprawdzi aktualizacje i zainstaluje je automatycznie, ale takie uaktualnianie z twojej wersji jest niemożliwe.", + "setGenDownloadUpdate": "Pobierz aktualizację", + "setGenUpdateAuto": "Pobierz i zainstaluj automatycznie", + "setGenUpdateCheck": "Sprawdź, ale nie instaluj", + "setGenNoUpdate": "Nigdy nie sprawdzaj aktualizacji", + "setGenUpdateChecking": "Sprawdzanie aktualizacji", + "setGenCheckUpdate": "Sprawdź aktualizacje", + "setGenErrorChecking": "Błąd sprawdzania aktualizacji", + "setGenLastCheckSuccess": "Ostatnie sprawdzenie zakończone sukcesem {}", + "setGenLastCheckVer": "Najnowszą wersją była {}", + "setGenCheckedAt": "Sprawdzono", + "setGenLatestVer": "używasz najnowszej wersji", + "setGenNewVer": "dostępna nowa wersja {}, wydana", + "setGenDownloadingUpdate": "Pobieranie aktualizacji...", + "setGenExtractingUpdate": "Wypakowywanie aktualizacji...", + "setGenCheckErr": "Wystąpił błąd podczas pobierania nowej wersji", + "setGenNeverChecked": "Nigdy nie sprawdzono aktualizacji", + "setGenRestartToUpdate": "Uruchom ponownie KeeWeb, aby zaktualizować", + "setGenDownloadAndRestart": "Pobierz aktualizację i uruchom ponownie", + "setGenAppearance": "Wygląd", + "setGenTheme": "Motyw", + "setGenThemeDefault": "Domyślny", + "setGenThemeDark": "Ciemny", + "setGenThemeLight": "Jasny", + "setGenThemeBlue": "Płaski błękit", + "setGenThemeFb": "Ciemny błękit", + "setGenThemeBl": "Jasny błękit", + "setGenThemeBrown": "Brąz", + "setGenThemeDb": "Ciemny brąz", + "setGenThemeLb": "Jasny brąz", + "setGenThemeTerminal": "Konsolowy", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Jasny konsolowy", + "setGenThemeHighContrast": "Wysoki kontrast", + "setGenThemeHc": "Wysoki kontrast", + "setGenThemeDc": "Ciemny kontrast", + "setGenThemeSol": "Solaryzowany", + "setGenThemeSd": "Solaryzowany ciemny", + "setGenThemeSl": "Solaryzowany jasny", + "setGenMoreThemes": "Więcej motywów", + "setGenAutoSwitchTheme": "Automatycznie przełączaj między jasnym i ciemnym motywem, jeśli to możliwe", + "setGenLocale": "Język", + "setGenLocOther": "inne języki są dostępne jako wtyczki", + "setGenFontSize": "Rozmiar fontu", + "setGenFontSizeNormal": "Normalny", + "setGenFontSizeLarge": "Duży", + "setGenFontSizeLargest": "Największy", + "setGenTitlebarStyle": "Styl okna (wymaga ponownego uruchomienia)", + "setGenTitlebarStyleDefault": "Domyślny", + "setGenTitlebarStyleHidden": "Niestandardowy tytuł", + "setGenTitlebarStyleHiddenInset": "Niestandardowy tytuł, przeciągalne okno", + "setGenShowSubgroups": "Pokaż wpisy ze wszystkich podgrup", + "setGenTableView": "Widok tabeli listy wpisów", + "setGenColorfulIcons": "Kolorowe niestandardowe ikony na liście", + "setGenUseMarkdown": "Markdown w notatkach", + "setGenUseGroupIconForEntries": "Automatycznie używaj ikony grupy do nowych wpisów", + "setGenDirectAutotype": "Jeśli znaleziono tylko jeden pasujący wpis, wybierz go automatycznie dla automatycznego wpisywania", + "setGenFunction": "Działanie", + "setGenAutoSyncOnClose": "Automatycznie zapisuj i synchronizuj przy zamknięciu", + "setGenAutoSyncTimer": "Automatycznie zapisuj i synchronizuj okresowo", + "setGenAutoSyncTimerOff": "Wyłączone", + "setGenAutoSyncTimerInterval": "Co {} minut(y)", + "setGenRememberKeyFiles": "Zapamiętuj pliki kluczy", + "setGenNoRememberKeyFiles": "Nie zapamiętuj", + "setGenRememberKeyFilesData": "Przechowuj w pamięci wewnętrznej aplikacji", + "setGenRememberKeyFilesPath": "Zapamiętaj tylko ścieżkę do plików klucza", + "setGenLockInactive": "Gdy aplikacja jest nieaktywna", + "setGenNoAutoLock": "Wyłącz autoblokowanie", + "setGenLockMinutes": "Przez {} minut", + "setGenLockHour": "Przez godzinę", + "setGenLockHours": "Przez {} godzin", + "setGenLockDay": "Przez dzień", + "setGenClearClip": "Wyczyść schowek po skopiowaniu", + "setGenNoClear": "Nie czyść", + "setGenClearSeconds": "Po {} sekundach", + "setGenClearMinute": "Po minucie", + "setGenMinInstead": "Zminimalizuj aplikację zamiast ją zamykać", + "setGenMinOnFieldCopy": "Zminimalizuj przy kopiowaniu pola", + "setGenLock": "Autoblokowanie", + "setGenLockMinimize": "Gdy aplikacja jest zminimalizowana", + "setGenLockCopy": "Po skopiowaniu hasła", + "setGenLockAutoType": "Przy automatycznym wpisywaniu", + "setGenLockOrSleep": "Gdy komputer jest zablokowany lub uśpiony", + "setGenStorage": "Przechowywanie", + "setGenDisableOfflineStorage": "Nie buforuj załadowanych plików w pamięci offline", + "setGenShortLivedStorageToken": "Używaj krótkotrwałych sesji u dostawców pamięci masowej w chmurze", + "setGenStorageLogout": "Wyloguj", + "setGenShowAdvanced": "Pokaż zaawansowane ustawienia (mogą być niebezpieczne)", + "setGenDevTools": "Pokaż narzędzia twórcy", + "setGenTryBeta": "Wypróbuj jednorazowo wersję beta", + "setGenTryBetaWarning": "Niezapisane pliki", + "setGenTryBetaWarningBody": "Proszę zapisać wszystkie pliki i kliknąć ten przycisk ponownie", + "setGenShowAppLogs": "Pokaż logi aplikacji", + "setGenReloadApp": "Załaduj ponownie aplikację", + "setGenFieldLabelDblClickAutoType": "Autowpisywanie po dwukrotnym kliknięciu etykiet pól", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Nie używaj Touch ID", + "setGenTouchIdMemory": "Odblokuj za pomocą Touch ID tylko wtedy, gdy działa KeeWeb", + "setGenTouchIdFile": "Zawsze używaj Touch ID zamiast hasła głównego", + "setGenTouchIdPass": "Wymagaj hasła głównego po", + "setGenAudit": "Audyt", + "setGenAuditPasswords": "Pokaż ostrzeżenia o sile hasła", + "setGenAuditPasswordEntropy": "Sprawdź długość i losowość hasła", + "setGenExcludePinsFromAudit": "Nigdy nie sprawdzaj krótkich numerycznych kodów PIN, np. 123456", + "setGenCheckPasswordsOnHIBP": "Sprawdź hasła, korzystając z usługi online {}", + "setGenHelpHIBP": "KeeWeb może sprawdzić za pomocą usługi online, czy Twoje hasła nie zostały wcześniej ujawnione w wyniku wycieku danych. Twoje hasło nie może zostać odzyskane na podstawie danych przesłanych online, jednak może zostać ujawniona liczba sprawdzonych haseł. Więcej informacji na temat prywatności podczas korzystania z tej usługi można znaleźć {}. Jeśli ta opcja jest włączona, KeeWeb automatycznie sprawdzi tam Twoje hasła.", + "setGenHelpHIBPLink": "tutaj", + "setGenAuditPasswordAge": "Stare hasła", + "setGenAuditPasswordAgeOff": "Nie pokazuj ostrzeżeń o starych hasłach", + "setGenAuditPasswordAgeOneYear": "Pokaż ostrzeżenia o hasłach starszych niż rok", + "setGenAuditPasswordAgeYears": "Pokaż ostrzeżenia o hasłach starszych niż {} lat(a)", + "setFilePath": "Ścieżka pliku", + "setFileStorage": "Ten plik jest wczytany z {}.", + "setFileIntl": "Ten plik jest przechowywany w wewnętrznym magazynie aplikacji", + "setFileLocalHint": "Chcesz bezproblemowo pracować z plikami lokalnymi?", + "setFileDownloadApp": "Pobierz aplikację desktopową", + "setFileSave": "Zapisz", + "setFileSaveTo": "Zapisz do ...", + "setFileClose": "Zamknij", + "setFileSync": "Synchronizacja", + "setFileSyncVerb": "Synch.", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Ostatnia synchronizacja", + "setFileLastSyncUnknown": "nieznana", + "setFileSyncInProgress": "synchronizacja w toku", + "setFileSyncError": "Błąd synchronizacji", + "setFilePass": "Hasło główne", + "setFileConfirmPass": "Potwierdź hasło główne", + "setFilePassChange": "aby zmienić hasło, wpisz je w polu Potwierdź", + "setFilePassChanged": "twoje hasło zostało zmienione; zostaw puste pole, aby użyć starego hasła", + "setFilePassNotMatch": "hasła nie pasują, wpisz je ponownie", + "setFileKeyFile": "Plik klucza", + "setFileSelKeyFile": "Wybierz plik klucza", + "setFileNames": "Nazwy", + "setFileDefUser": "Domyślny użytkownik", + "setFileEnableTrash": "Włącz kosz", + "setFileHistMode": "Historia wpisu", + "setFileHistLimited": "Automatycznie usuwaj stare zapisy historii", + "setFileHistDisabled": "Nie zapisuj historii", + "setFileHistUnlimited": "Przechowuj na zawsze zapisy historii", + "setFileHistLen": "Długość historii, zachowaj ostatnie zapisy na wpis", + "setFileHistSize": "Rozmiar historii, ogół MB na plik", + "setFileBackups": "Kopie", + "setFileBackupEnable": "Stwórz kopię tego pliku", + "setFileBackupPath": "Ścieżka kopii", + "setFileBackupTime": "Twórz kopie zapasowe", + "setFileBackupNow": "Utwórz kopię", + "setFileBackupNowWorking": "Pracuję...", + "setFileBackupError": "Błąd kopii zapasowej", + "setFileBackupErrorDescription": "Błąd zapisu pliku kopii zapasowej", + "setFileBackupErrorIsDir": "Zła ścieżka kopii zapasowej", + "setFileBackupErrorIsDirDescription": "Ścieżka kopii zapasowej wydaje się wskazywać na katalog. Zamiast tego podaj nazwę pliku w katalogu.", + "setFileBackupOnSave": "Za każdym razem, gdy zapiszę plik", + "setFileBackupDaily": "Codziennie", + "setFileBackupWeekly": "Tygodniowo", + "setFileBackupMonthly": "Miesięcznie", + "setFileBackupManually": "Ręcznie, bez automatycznych kopii zapasowych", + "setFileRounds": "Rundy transformacji klucza", + "setFileKdfParams": "Funkcja derywacji klucza", + "setFileKdfParamsIter": "Iteracje", + "setFileKdfParamsMem": "Pamięć, KB", + "setFileKdfParamsPar": "Równoległość", + "setFileKeyChangeForce": "Pytaj o zmianę klucza po (dni)", + "setFileUseKeyFile": "Użyj pliku klucza", + "setFileUseGenKeyFile": "Użyj wygenerowanego pliku klucza", + "setFileUseOldKeyFile": "Użyj starego pliku klucza", + "setFileGenKeyFile": "Wygeneruj nowy plik klucza", + "setFileDontUseKeyFile": "Nie używaj pliku klucza", + "setFileEmptyPass": "Puste hasło", + "setFileEmptyPassBody": "Zapisywanie bazy danych z pustym hasłem czyni ją zupełnie niezabezpieczoną. Czy naprawdę chcesz to zrobić?", + "setFileSaveError": "Błąd zapisu", + "setFileSaveErrorBody": "Błąd zapisu do pliku", + "setFileAlreadyExists": "Już istnieje", + "setFileAlreadyExistsBody": "Plik {} już istnieje. Nadpisać go?", + "setFileUnsaved": "Niezapisane zmiany", + "setFileUnsavedBody": "Istnieją niezapisane zmiany w tym pliku", + "setFileCloseNoSave": "Zamknij i utrać zmiany", + "setFileDontClose": "Nie zamykaj", + "setFileFormatVersion": "Format pliku", + "setFileExportRaw": "Eksportowanie haseł", + "setFileExportRawBody": "Wyeksportowany plik będzie zawierał twoje hasła, nie będą tam szyfrowane. Czy chcesz kontynuować?", + "setFileDeviceIntro": "Kody jednorazowe z {} będą wyświetlane w aplikacji.", + "setFileDeviceSettings": "Ustawienia", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Nie używaj YubiKey", + "setFileRefreshYubiKeyList": "Odśwież listę", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Używanie YubiKey jako klucza głównego jest niebezpieczne i możesz stracić dostęp do swoich haseł, jeśli coś pójdzie nie tak. Czy wykonałeś kopię zapasową pliku przed zmianą tego ustawienia?", + "setFileYubiKeyErrorEmptyMac": "Wygląda na to, że podłączony jest YubiKey, ale nie jest widoczny. Aby uzyskać dostęp do urządzeń YubiKey, należy dodać KeeWeb do sekcji Monitorowanie danych wejściowych w ustawieniach bezpieczeństwa.", + "setShTitle": "Skróty", + "setShShowAll": "Pokaż wszystkie elementy", + "setShColors": "Pokaż elementy z kolorami", + "setShTrash": "Przejdź do kosza", + "setShFind": "Wyszukaj albo zacznij pisać", + "setShClearSearch": "Czyść wyszukiwanie", + "setShCopyPass": "Skopiuj hasło albo wybrane pole", + "setShCopyUser": "Skopiuj użytkownika", + "setShCopyUrl": "Skopiuj stronę WWW", + "setShAutoType": "Automatyczne wpisywanie wybranego wpisu", + "setShPrev": "Idź do poprzedniego elementu", + "setShNext": "Idź do następnego elementu", + "setShCreateEntry": "Stwórz wpis", + "setShOpen": "Otwórz / Nowy", + "setShSave": "Zapisz wszystkie pliki", + "setShGen": "Wygeneruj hasło", + "setShSet": "Ustawienia aplikacji", + "setShCopyPassGlobal": "Skopiuj hasło", + "setShCopyOtp": "Skopiuj OTP", + "setShAutoTypeGlobal": "Automatyczne wpisywanie", + "setShCopyPassOnly": "Skopiuj hasło", + "setShRestoreApp": "Otwórz {}", + "setShGlobal": "Te ogólnosystemowe skróty działają, gdy aplikacja jest uruchomiona w tle. Możesz je kliknąć, aby wybrać własny skrót.", + "setShLock": "Zablokuj bazę danych", + "setShEdit": "Naciśnij nową kombinację klawiszy, aby ustawić ją jako skrót", + "setPlInstallTitle": "Zainstaluj nowe wtyczki", + "setPlInstallDesc": "Wtyczki KeeWeb dodają funkcje, motywy oraz języki do KeeWeb. Wtyczki działają z tymi samymi uprawnieniami co KeeWeb, mogą uzyskiwać dostęp do wszystkich twoich haseł i zarządzać nimi. Nigdy nie instaluj wtyczek, do których nie masz zaufania.", + "setPlInstallLabel": "URL wtyczki", + "setPlInstallBtn": "Zainstaluj", + "setPlInstallBtnProgress": "Instalowanie", + "setPlUninstallBtn": "Odinstaluj", + "setPlDisableBtn": "Wyłącz", + "setPlEnableBtn": "Włącz", + "setPlUpdateBtn": "Aktualizuj", + "setPlLocaleBtn": "Przełącz na ten język", + "setPlThemeBtn": "Przełącz na ten motyw", + "setPlJs": "kod", + "setPlCss": "style", + "setPlLoc": "język", + "setPlCreatedBy": "Stworzony przez {}", + "setPlLoadTime": "wczytano w {}", + "setPlLastUpdate": "Ostatnie sprawdzenie aktualizacji", + "setPlLoadError": "błąd wczytywania wtyczki", + "setPlGalleryLoading": "Wczytywanie wtyczek, proszę chwilę poczekać", + "setPlGalleryLoadError": "Błąd wczytywania wtyczek", + "setPlInstallUrlTitle": "Dodaj wtyczkę z URL", + "setPlInstallUrlDesc": "Jeżeli w galerii nie ma wtyczki, możesz ją zainstalować ręcznie z URL", + "setPlOfficial": "Oficjalna wtyczka KeeWeb", + "setPlSearch": "Szukaj wtyczek", + "setPlDevelop": "Chcesz programować własne wtyczki?", + "setPlDevelopStart": "Zacznij tutaj", + "setPlTranslate": "Albo możesz {}", + "setPlTranslateLink": "przetłumaczyć tę aplikację na swój język", + "setPlAutoUpdate": "Aktualizuj automatycznie", + "setPlLoadGallery": "Wczytaj galerię wtyczek", + "setBrowserTitle": "Przeglądarka", + "setBrowserIntroDesktop": "KeeWeb może wprowadzać hasła przy użyciu automatycznego wpisywania, jednak rozszerzenie przeglądarki może być wygodniejszym sposobem robienia tego. KeeWeb obsługuje dwa rozszerzenia przeglądarki:", + "setBrowserIntroKeeWebConnect": "oficjalne rozszerzenie KeeWeb, zostało zbudowane z myślą o funkcjach KeeWeb, ale może nie mieć niektórych zaawansowanych możliwości, które mogą być w drugim rozszerzeniu.", + "setBrowserIntroKeePassXcBrowser": "to rozszerzenie zostało opracowane dla KeePassXC, dostępne na rynku od jakiegoś czasu i jest całkiem solidne. Rozszerzenie nie jest częścią KeeWeb i mogą wystąpić problemy ze zgodnością.", + "setBrowserIntroWeb": "Zainstaluj nasze rozszerzenie przeglądarki, aby automatycznie wypełniać hasła z KeeWeb na różnych stronach. Rozszerzenie przeglądarki połączy się z kartą KeeWeb w przeglądarce, aby pobrać hasła. Kliknij tutaj, aby pobrać rozszerzenie:", + "setBrowserNotEnabled": "Integracja przeglądarki nie jest włączona, rozszerzenia nie będą mogły łączyć się z KeeWeb. Użyj poniższych pól wyboru, aby ją włączyć:", + "setBrowserEnablePerBrowser": "Włącz integrację przeglądarki za pomocą poniższych pól wyboru:", + "setBrowserFocusIfLocked": "Otwórz KeeWeb, jeśli rozszerzenie przeglądarki próbuje się połączyć, gdy nie ma otwartego pliku", + "setBrowserFocusIfEmpty": "Pokaż ekran wyboru wpisu, jeśli nie znaleziono dopasowania według adresu URL", + "setBrowserOtherBrowsers": "Inne przeglądarki", + "setBrowserExtensionFor": "dla {}", + "setBrowserExtensionNotSupported": "Nieobsługiwane", + "setBrowserExtensionHelp": "Jak zainstalować?", + "setBrowserExtensionInstall": "Zainstaluj rozszerzenie", + "setBrowserExtensionKPXCWarnHeader": "{} przestanie działać", + "setBrowserExtensionKPXCWarnBody1": "Niestety nie można połączyć jednego rozszerzenia z kilkoma aplikacjami. Jeśli połączysz rozszerzenie z KeeWeb, nadpiszemy skojarzenie z aplikacją, co oznacza, że integracja z {} przestanie działać. Nawet jeśli odznaczysz to pole wyboru, skojarzenie z {} nie zostanie przywrócone. Aby znów działało, skonfiguruj integrację przeglądarki w ustawieniach {}.", + "setBrowserExtensionKPXCWarnBody2": "Skonfigurować rozszerzenie do korzystania z KeeWeb?", + "setBrowserSessions": "Sesje", + "setBrowserSessionsEmpty": "Brak połączonych sesji.", + "setBrowserSessionsIntro": "Te rozszerzenia są teraz połączone z KeeWeb.", + "setBrowserSessionsActiveTooltip": "Sesja aktywna", + "setBrowserSessionsActiveText": "Ta sesja jest aktywna. Może wymieniać dane z KeeWeb na podstawie następujących uprawnień:", + "setBrowserSessionsInactiveTooltip": "Sesja nieaktywna", + "setBrowserSessionsInactiveText": "Ta sesja jest nieaktywna. Rozszerzenie jest połączone z KeeWeb, jednak nie próbowało wymieniać danych. Gdy rozszerzenie czegoś zażąda, będzie można wybrać, co udostępnić.", + "setBrowserSessionsDeniedTooltip": "Brak dostępu", + "setBrowserSessionsDeniedText": "Ta sesja jest nieaktywna. Rozszerzenie jest połączone z KeeWeb, jednak odmówiono dostępu do danych.", + "setBrowserSessionsConnectedDate": "Połączono", + "setBrowserSessionsTerminate": "Zakończ tę sesję", + "setBrowserSessionsAccessToFiles": "Zezwól na dostęp do plików", + "setBrowserSessionsNoFileAccess": "Rozszerzenie nie ma dostępu do żadnego pliku, nie będzie w stanie pobrać haseł z KeeWeb.", + "setBrowserSessionsPasswordsRead": "Hasła odczytane", + "setBrowserSessionsPasswordsWritten": "Hasła zapisane", + "setDevicesTitle": "Urządzenia", + "setDevicesEnableUsb": "Włącz interakcję z urządzeniami USB", + "setDevicesYubiKeyIntro": "Zaleca się przeczytanie {} przed użyciem YubiKey.", + "setDevicesYubiKeyIntroLink": "tego dokumentu", + "setDevicesYubiKeyToolsDesc": "Aby móc korzystać z YubiKey w tym trybie, musisz zainstalować narzędzie o nazwie {}.", + "setDevicesYubiKeyToolsDesc2": "{}, aby uzyskać więcej informacji o tym narzędziu.", + "setDevicesYubiKeyToolsDescLink": "Kliknij tutaj", + "setDevicesYubiKeyToolsStatusChecking": "Sprawdzanie, czy {} jest zainstalowany", + "setDevicesYubiKeyToolsStatusOk": "{} jest zainstalowany", + "setDevicesYubiKeyToolsStatusError": "{} nie jest zainstalowany lub nie działa", + "setDevicesYubiKeyOtpTitle": "Kody jednorazowe", + "setDevicesYubiKeyOtpDesc": "YubiKey może służyć do generowania kodów jednorazowych dla różnych usług.", + "setDevicesYubiKeyOtpShowIcon": "Pokaż ikonę na ekranie startowym", + "setDevicesYubiKeyOtpAutoOpen": "Automatycznie ładuj kody jednorazowe, gdy są otwarte pliki", + "setDevicesYubiKeyOtpMatchEntries": "Pokaż pasujące kody jednorazowe we wpisach", + "setDevicesYubiKeyChalRespTitle": "Wyzwanie-odpowiedź", + "setDevicesYubiKeyChalRespDesc": "Możliwe jest również użycie YubiKey w trybie wyzwanie-odpowiedź, dzięki czemu fragment klucza prywatnego, służącego do szyfrowania plików, znajduje się na YubiKey.", + "setDevicesYubiKeyChalRespShow": "Pokaż opcję używania YubiKey podczas otwierania plików", + "setDevicesYubiKeyStuckWorkaround": "Podłącz ponownie YubiKey, jeśli wydaje się, że zawiesił się podczas ładowania", + "setDevicesYubiKeyRememberChalResp": "Pamiętaj wyzwanie-odpowiedź, gdy aplikacja jest otwarta", + "setAboutTitle": "O", + "setAboutBuilt": "Ta aplikacja jest zbudowana za pomocą tych wspaniałych narzędzi", + "setAboutLic": "Licencja", + "setAboutLicComment": "Sama aplikacja i wszystkie zawarte w niej komponenty są objęte licencją MIT, chyba że określono inaczej", + "setAboutFirst": "Jest to aplikacja otwartoźródłowa stworzona przez {}", + "setAboutSecond": "i na mocy licencji {}.", + "setAboutSource": "Kod źródłowy oraz zagadnienia dostępne na {}.", + "setHelpFormat": "Format pliku", + "setHelpFormatBody": "To jest port {}, aplikacja została zbudowana przy użyciu technologii sieciowych. KeeWeb rozumie pliki w formacie KeePass (KDBX). Możesz stworzyć takie pliki (bazy danych haseł) w KeePass albo w tym programie. Format pliku jest w 100% kompatybilny i powinien być zrozumiany przez oba programy.", + "setHelpProblems": "Problemy?", + "setHelpProblems1": "Jeśli coś pójdzie nie tak, proszę {}", + "setHelpProblems2": "albo {}", + "setHelpOpenIssue": "otworzyć zagadnienie na GitHubie", + "setHelpContactLink": "skontaktować się bezpośrednio z autorem", + "setHelpAppInfo": "Informacje o aplikacji", + "setHelpOtherPlatforms": "Inne platformy", + "setHelpDesktopApps": "Aplikacje desktop", + "setHelpWebApp": "Aplikacja sieciowa", + "setHelpUpdates": "Aktualizacje", + "setHelpTwitter": "Twitter aplikacji", + "dropboxSetupDesc": "Trochę konfiguracji jest wymagane do użycia Dropboksa jako aplikacji na własnym serwerze. Proszę stworzyć własną aplikację Dropbox i wpisać jej klucz poniżej.", + "dropboxAppKey": "Klucz aplikacji Dropbox", + "dropboxAppKeyDesc": "Skopiuj klucz z twojej aplikacji Dropbox (ustawienia programisty)", + "dropboxAppKeyHint": "twój klucz aplikacji", + "dropboxAppSecret": "Sekret aplikacji Dropbox", + "dropboxAppSecretDesc": "Sekret znajduje się obok klucza aplikacji", + "dropboxFolder": "Folder aplikacji", + "dropboxFolderDesc": "Jeżeli twoja aplikacja jest połączona z całym Dropboksem (nie z folderem aplikacji), ustaw tutaj folder z twoimi plikami KDBX", + "dropboxFolderSettingsDesc": "Wybierz dowolny folder w twoim Dropboksie, w którym będą przechowywane pliki (domyślnie folder główny)", + "dropboxFolderPlaceholder": "Folder domyślny", + "dropboxLink": "Połącz aplikację z", + "dropboxLinkApp": "Folderem aplikacji (Apps/KeeWeb)", + "dropboxLinkFull": "Pełnym Dropboksem albo innym folderem", + "dropboxLinkCustom": "Własną aplikacją Dropbox", + "gdriveSharedWithMe": "Udostępnione dla mnie", + "gdriveSharedDrives": "Dyski współdzielone", + "gdriveTeamDrives": "Dyski zespołu", + "webdavSaveMethod": "Metoda zapisu", + "webdavSaveMove": "Prześlij tymczasowy plik i przenieś", + "webdavSavePut": "Nadpisz plik KDBX za pomocą PUT", + "webdavNoLastModified": "Brak nagłówka HTTP Last-Modified", + "webdavStatReload": "Zawsze przeładowuj plik zamiast polegać na nagłówku HTTP Last-Modified", + "launcherSave": "Zapisz bazę danych haseł", + "launcherFileFilter": "Pliki KeePass", + "authPopupRequired": "Okna pop-up są zablokowane", + "authPopupRequiredBody": "Proszę zezwolić przeglądarce na wyskakujące okna dla tej aplikacji.", + "exportFileInfo": "Informacje o pliku", + "exportHtmlName": "Nazwa", + "exportHtmlDate": "Data eksportu", + "exportGenerator": "Oprogramowanie", + "exportDescription": "Ten plik jest generowany za pomocą {}.", + "importCsvTitle": "Importuj z CSV", + "importCsvRun": "Importuj", + "importIgnoreField": "Ignoruj", + "importTo": "Wpisy zostaną zaimportowane do", + "importNewFile": "Nowy plik", + "yubiKeyStuckError": "Wygląda na to, że YubiKey zawiesił się, w ustawieniach aplikacji można włączyć automatyczną naprawę.", + "yubiKeyNoKeyHeader": "Wymagany YubiKey", + "yubiKeyNoKeyBody": "Włóż YubiKey o numerze seryjnym {}", + "yubiKeySlot": "gniazdo", + "yubiKeyTouchRequestedHeader": "Dotknij YubiKey", + "yubiKeyTouchRequestedBody": "Proszę dotknąć YubiKey o numerze seryjnym {}", + "yubiKeyDisabledErrorHeader": "USB jest wyłączone", + "yubiKeyDisabledErrorBody": "YubiKey jest wymagany do otwarcia tego pliku, włącz urządzenia USB w ustawieniach.", + "yubiKeyErrorWithCode": "Błąd YubiKey, kod {}.", + "bioOpenAuthPrompt": "otworzyć \"{}\"", + "extensionErrorNoOpenFiles": "Brak otwartych plików", + "extensionErrorUserRejected": "Żądanie zostało odrzucone", + "extensionErrorNoMatches": "Brak pasujących loginów", + "extensionErrorAlertDisplayed": "Nie można teraz zadać pytania, ponieważ jest wyświetlane inne okno dialogowe. Spróbuj ponownie", + "extensionConnectHeader": "Wymiana danych rozszerzenia", + "extensionConnectIntro": "Rozszerzenie przeglądarki, które identyfikuje się jako {}, próbuje wymieniać dane z KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb nie weryfikuje, czy połączona aplikacja jest tym, za co się podaje. Zatwierdź żądanie tylko wtedy, gdy rozpoznajesz tę aktywność.", + "extensionConnectFiles": "W tej sesji zezwól na dostęp do:", + "extensionConnectAllOtherFiles": "Wszystkich innych plików", + "extensionConnectAllFiles": "Wszystkich plików", + "extensionConnectAskGet": "Pytaj przed zwróceniem haseł do rozszerzenia:", + "extensionConnectAskGetMultiple": "jeśli wystąpi więcej niż jedno dopasowanie", + "extensionConnectAskGetAlways": "zawsze", + "extensionConnectAskSave": "Zapytaj przed zapisaniem nowych haseł w KeeWeb:", + "extensionConnectAskSaveAlways": "zawsze", + "extensionConnectAskSaveAuto": "kiedy nie jest możliwe automatyczne zapisywanie", + "extensionConnectSettingsAreForSession": "Ustawienia wybrane tutaj obowiązują tylko dla aktywnej sesji. Możesz przeglądać sesje i zarządzać nimi w ustawieniach KeeWeb.", + "extensionUnlockMessage": "Odblokuj do połączenia rozszerzenia przeglądarki", + "extensionNewGroupHeader": "Nowa grupa", + "extensionNewGroupBody": "{} próbuje utworzyć nową grupę. Zezwolić na to?", + "extensionNewGroupPath": "Ścieżka grupy", + "extensionNewGroupFile": "Ta grupa zostanie utworzona w:", + "extensionSaveEntryHeader": "Zapisz hasło", + "extensionSaveEntryBody": "{} próbuje zapisać hasło. Zezwolić na to?", + "extensionSaveEntryAuto": "Automatyczne zapisywanie innych haseł w tej sesji", + "extensionSaveEntryNewGroup": "nowa grupa", + "extensionSelectPasswordFor": "Wybierz hasło dla {}", + "selectEntryHeader": "Wybierz wpis", + "selectEntryEnterHint": "użyj wyróżnionego wpisu", + "selectEntryTypingHint": "Zacznij pisać, aby filtrować", + "selectEntryContains": "Zawiera tekst", + "selectEntrySubdomains": "Subdomeny", + "selectEntryFieldHeader": "Wybierz pole", + "selectEntryFieldTouch": "Naciśnij przycisk na urządzeniu, aby wygenerować kod jednorazowy." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/pt-BR/index.html b/keeweb/plugins/translations/pt-BR/index.html new file mode 100644 index 0000000..fe81190 --- /dev/null +++ b/keeweb/plugins/translations/pt-BR/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Português (Brasil) + + + + +

KeeWeb Language: Português (Brasil)

+ https://plugins.keeweb.info/translations/pt-BR + + diff --git a/keeweb/plugins/translations/pt-BR/manifest.json b/keeweb/plugins/translations/pt-BR/manifest.json new file mode 100644 index 0000000..3c2d1a2 --- /dev/null +++ b/keeweb/plugins/translations/pt-BR/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.14.0", + "manifestVersion": "0.1.0", + "name": "language-portuguese-brazil", + "description": "Portuguese (Brazil) language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=pt-BR", + "resources": { + "loc": "LrEXP7j72VzpGmUW6xD4ImAdE835/YDnMVCg2gdneOl8aCiON1s2XWifNHYOB55wkTaEurdFhlvaGZQQF+MeU39eaqTroL/o0Q/+nUyXzWsq/TfNrMQND3K7WHRGVNaUospwGmX6wKkjN81Lg8lLX0mt5QhldSUus7vdF55kccxd9NsSKaKKkqBFfgfGGQ8rrbaLtg/BCVHnjm253skldGKDhy0uRnsiPjY1fUCFC5JwyZKgPUCPa1Yt+EYYWCMx6KjDJqaTRpMpX0c0LRU7poEtOEY5dhxTvm6oVDzHCewXFJayQqgvhaqgGmX0L8Gc7fa9/6AxKQLvhkzQJD1eWA==" + }, + "locale": { + "name": "pt-BR", + "title": "Português (Brasil)", + "flag": "🇧🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/pt-BR/pt-BR.json b/keeweb/plugins/translations/pt-BR/pt-BR.json new file mode 100644 index 0000000..dd070cf --- /dev/null +++ b/keeweb/plugins/translations/pt-BR/pt-BR.json @@ -0,0 +1,776 @@ +{ + "retToApp": "Retornar à aplicação", + "name": "nome", + "icon": "ícone", + "title": "título", + "password": "senha", + "user": "usuário", + "website": "site", + "tags": "marcadores", + "notes": "notas", + "entry": "entrada", + "group": "grupo", + "noTitle": "sem título", + "or": "ou", + "history": "histórico", + "template": "modelo", + "templates": "modelos", + "notImplemented": "Não implementado", + "saveChanges": "Salvar alterações", + "discardChanges": "Descartar alterações", + "advanced": "Avançado", + "shortcuts": "Atalhos", + "help": "Ajuda", + "settings": "Configurações", + "plugins": "Plugins", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "erro", + "oneMinute": "um minuto", + "minutes": "{} minutos", + "oneHour": "uma hora", + "hours": "{} horas", + "oneDay": "um dia", + "days": "{} dias", + "oneWeek": "uma semana", + "oneMonth": "um mês", + "oneYear": "um ano", + "cache": "cache", + "file": "arquivo", + "device": "dispositivo", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Todos os itens", + "menuColors": "Cores", + "menuTrash": "Lixo", + "menuSetGeneral": "Geral", + "menuSetBrowser": "Navegador", + "menuSetAbout": "Sobre", + "menuSetDevices": "Dispositivos", + "menuAlertNoTags": "Sem etiquetas", + "menuAlertNoTagsBody": "Você pode adicionar novas etiquetas durante a edição de campos, na seção Etiquetas.", + "menuEmptyTrash": "Esvaziar a Lixeira", + "menuEmptyTrashAlert": "Esvaziar a Lixeira?", + "menuEmptyTrashAlertBody": "Você não será capaz de recuperar os itens", + "menuItemCollapsed": "Duplo clique para expandir", + "menuRestoreApp": "Abrir {}", + "menuQuitApp": "Fechar {}", + "sysMenuAboutKeeWeb": "Sobre o {}", + "sysMenuServices": "Serviços", + "sysMenuHide": "Ocultar {}", + "sysMenuHideOthers": "Ocultar Outros", + "sysMenuUnhide": "Mostrar Todos", + "sysMenuQuit": "Sair do {}", + "sysMenuEdit": "Editar", + "sysMenuUndo": "Desfazer", + "sysMenuRedo": "Refazer", + "sysMenuCut": "Cortar", + "sysMenuCopy": "Copiar", + "sysMenuPaste": "Colar", + "sysMenuSelectAll": "Selecionar Tudo", + "sysMenuWindow": "Janela", + "sysMenuMinimize": "Minimizar", + "sysMenuClose": "Fechar Janela", + "alertYes": "Sim", + "alertNo": "Não", + "alertOk": "OK", + "alertCancel": "Cancelar", + "alertSignIn": "Entrar", + "alertCopy": "Copiar", + "alertClose": "Fechar", + "alertDoNotAsk": "Não perguntar mais", + "alertAllow": "Permitir", + "alertDeny": "Negar", + "appBeta": "AVISO: versão beta, apenas para preview", + "footerOpen": "Abrir / Novo", + "footerSyncError": "Erro de sincronização", + "footerTitleGen": "Gerar", + "footerTitleLock": "Bloquear", + "genLen": "Comprimento", + "genNewPass": "Nova senha", + "genPresetDefault": "padrão predefinido", + "genPresetDerived": "como senha antiga", + "genPresetPronounceable": "pronunciável", + "genPresetMed": "médio", + "genPresetLong": "longo", + "genPresetPin4": "PIN de 4 dígitos", + "genPresetMac": "Endereço MAC", + "genPresetHash128": "hash de 128-bit", + "genPresetHash256": "hash de 256-bit", + "genHidePass": "Ocultar senha", + "genShowPass": "Mostrar senha", + "grpTitle": "Grupo", + "grpSearch": "Ativar pesquisa de entradas neste grupo", + "grpAutoType": "Ativar auto-teclar", + "grpAutoTypeSeq": "Sequência de auto-teclar", + "grpAutoTypeSeqDefault": "Usar sequência de auto-teclar padrão", + "grpTrash": "Excluir grupo com todas as entradas", + "tagTitle": "Etiqueta", + "tagTrash": "Remover a etiqueta de todas as entradas", + "tagRename": "Renomear", + "tagTrashQuestion": "Remover a etiqueta de todas as entradas?", + "tagTrashQuestionBody": "Essa etiqueta será removida de todas as entradas. Não há como reverter esta ação.", + "tagExists": "Etiqueta já existe", + "tagExistsBody": "Etiqueta com esse nome já existe. Por favor, escolha outro nome.", + "tagBadName": "Nome ruim", + "tagBadNameBody": "Nome da etiqueta não pode conter caracteres {}. Por favor, remova-os.", + "genPsTitle": "Predefinições do gerador", + "genPsCreate": "Nova predefinição", + "genPsDelete": "Excluir predefinição", + "genPsNew": "predefinição", + "genPsEnabled": "Mostrar na lista de predefinições", + "genPsDefault": "Selecionada por padrão", + "genPsDefaultLength": "Comprimento padrão", + "genPsUpper": "Letras latinas maiúsculas", + "genPsLower": "Letras latinas minúsculas", + "genPsDigits": "Dígitos", + "genPsSpecial": "Caracteres especiais", + "genPsBrackets": "Colchetes", + "genPsHigh": "Caracteres ASCII altos", + "genPsAmbiguous": "Caracteres ambíguos", + "genPsInclude": "Símbolos adicionais para incluir", + "genPsExample": "Exemplo de senha gerada", + "genPsPattern": "Padrões", + "genPsPatternHelp": "Padrões podem ser utilizados para especificar regras personalizadas para a seleção de caracteres. Por exemplo, 1-AA irá gerar senhas começando com um digito, seguido por um hífen e duas letras. Você pode usar estes caracteres:", + "genPsAllRanges": "Todos os símbolos", + "genPsIncluded": "Símbolos adicionais acima", + "keyChangeTitleRemote": "Chave mestra alterada", + "keyChangeMessageRemote": "A chave mestra foi alterada para este banco de dados. Por favor, insira uma nova chave", + "keyChangeTitleExpired": "Chave mestra expirada", + "keyChangeMessageExpired": "A chave mestra para este banco de dados expirou. Por favor, insira uma nova chave", + "keyChangeRepeatPassword": "Senha, mais uma vez", + "keyEnter": "Tecle Enter para", + "keyEsc": "Esc", + "iconFavTitle": "Baixar e usar o favicon do site", + "iconSelCustom": "Selecionar ícone personalizado", + "listEmptyTitle": "Vazio", + "listEmptyAdd": "Adicionar com o botão {} acima", + "listGroup": "Grupo", + "listNoWebsite": "sem site", + "listNoUser": "sem usuário", + "listNoAttachments": "sem anexos", + "listAddTemplateHeader": "Modelos", + "listAddTemplateBody1": "Os modelos permitem que você crie entradas com um clique. Adicione algo ao modelo de entrada e clique em {} novamente para usar este modelo.", + "listAddTemplateBody2": "Você pode sempre encontrar seus modelos no grupo {}.", + "searchAddNew": "Adicionar novo", + "searchSort": "Ordenar", + "searchCreated": "Criado", + "searchUpdated": "Atualizado", + "searchAttachments": "Anexos", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Antigo {} Novo", + "searchNO": "Novo {} Antigo", + "searchShiftClickOr": "shift-clique ou", + "searchAdvTitle": "Alternar pesquisa avançada", + "searchSearchIn": "Pesquisa em", + "searchOther": "Outros campos", + "searchProtect": "Campos seguros", + "searchOptions": "Opções", + "searchCase": "Compatibilizar maiúsculas/minúsculas", + "searchRegex": "RegEx", + "searchRank": "auto", + "searchExact": "Exata", + "openOpen": "Abrir", + "openNew": "Novo", + "openNewFile": "Novo", + "openMore": "Mais", + "openDemo": "Demonstração", + "openGenerate": "Gerar", + "openXml": "Importar XML", + "openCaps": "Maiúsculas estão ativadas", + "openClickToOpen": "Clique para abrir um arquivo", + "openKeyFile": "arquivo chave", + "openKeyFileDropbox": "(do Dropbox)", + "openDropHere": "Solte arquivos aqui", + "openFailedRead": "Falha ao ler o arquivo", + "openNothingFound": "Nada encontrado", + "openNothingFoundBody": "Nenhum arquivo que possa ser aberto.", + "openSelectFile": "Selecionar um arquivo", + "openSelectFileBody": "Selecione um arquivo que você deseja abrir", + "openPassFor": "Senha para", + "openRemoveLastQuestion": "Excluir arquivo local?", + "openRemoveLastQuestionBody": "O arquivo que você está excluindo é armazenado apenas dentro do aplicativo. Excluí-lo permanentemente?", + "openRemoveLastQuestionModBody": "O arquivo que você está excluindo tem modificações locais. Excluí-lo e descartar essas modificações?", + "openLocalFile": "Arquivo local", + "openLocalFileBody": "Você vai abrir um arquivo que será armazenado dentro do aplicativo. As alterações feitas não serão salvas de volta no sistema de arquivos. Para obter o arquivo com seus dados, exporte-o nas configurações.", + "openLocalFileDontShow": "Não mostrar isto novamente", + "openWrongFile": "Arquivo incorreto", + "openWrongFileBody": "Este formato de arquivo não é suportado. Este aplicativo funciona com arquivos de formato de banco de dados KeePass (kdbx).", + "openKdbFileBody": "Você está abrindo um arquivo no formato de versão antigo (KDB). Este aplicativo suporta somente o novo formato (kdbx), use o KeePass v2 para converter entre eles.", + "openConfigHeader": "{} Configurações", + "openUrl": "URL", + "openUrlDesc": "https: //server/path/file.kdbx, ou apenas arquivo.kdbx", + "openUser": "Usuário", + "openUserDesc": "Usuário do servidor WebDAV (se necessário)", + "openUserPlaceholder": "sem usuário", + "openPass": "Senha", + "openPassDesc": "Senha do servidor WebDAV (esta não é sua senha de arquivo)", + "openPassPlaceholder": "nenhuma senha", + "openConfigError": "Erro: {}", + "openConfigErrorNotFound": "Arquivo não encontrado", + "openError": "Erro", + "openErrorDescription": "Ocorreu um erro ao abrir o arquivo", + "openErrorDescriptionMaybeTouchIdChanged": "Esse erro é similar ao que acontece quando a configuração do Touch ID é alterada, por exemplo, quando você adiciona ou remove um dedo. Se esse é o caso, va nas Configurações, desabilite o Touch ID e habilite ele novamente.", + "openErrorFileNotFound": "Arquivo não encontrado", + "openListErrorBody": "Ocorreu um erro ao carregar a lista de arquivos", + "openShowAllFiles": "Mostrar todos os arquivos", + "openFileNoCacheError": "Arquivo não encontrado no armazenamento em cache. Isto pode acontecer porque o armazenamento do navegador foi limpo. Para abrir o arquivo, remova-o de KeeWeb e adicione-o novamente.", + "openChalRespHeader": "resposta-do-desafio", + "openChalRespLoading": "Carregando a lista de YubiKeys", + "openChalRespSelectYubiKey": "Selecione o YubiKey que você gostaria de usar", + "openChalRespErrorEmpty": "Nenhum YubiKey encontrado.", + "openChalRespErrorEmptyMac": "Primeira vez utilizando essa funcionalidade no macOS? KeeWeb precisa ser adicionado nas configurações de monitoração de entrada", + "detAttDownload": "Shift-clique no botão anexo para baixar ou", + "detAttDelToRemove": "Excluir para remover", + "detAttSave": "Salvar como...", + "detEmpty": "Suas senhas serão exibidas aqui", + "detGroupRestore": "Para restaurar este grupo, arraste-o para qualquer grupo fora do lixo", + "detHistoryClickPoint": "Clique na linha de tempo do histórico de entrada para ver o estado", + "detHistoryReturn": "retornar à entrada", + "detHistoryRevert": "Reverter para o estado", + "detHistoryDel": "Excluir estado", + "detHistoryEmpty": "vazio", + "detHistoryModified": "modificado", + "detHistoryRec": "registro", + "detHistoryRecs": "registros", + "detHistoryVersion": "Versão", + "detHistorySaved": "Salvo", + "detHistoryNoTitle": "sem título", + "detHistoryCurState": "estado atual", + "detHistoryCurUnsavedState": "Estado atual não salvo", + "detHistoryRevertAlert": "Reverter para o estado do histórico?", + "detHistoryRevertAlertBody": "Seu estado atual será salvo no histórico.", + "detHistoryDeleteAlert": "Deletar este estado do histórico?", + "detHistoryDeleteAlertBody": "Você não poderá restaurar isto.", + "detHistoryDiscardChangesAlert": "Descartar mudanças feitas nesta entrada?", + "detHistoryDiscardChangesAlertBody": "Alterações não salvas serão perdidas, não haverá como voltar atrás.", + "detBackToList": "voltar à lista", + "detSetIconColor": "Alterar cor", + "detSetIcon": "Alterar ícone", + "detDropAttachments": "Solte anexos aqui", + "detDelEntry": "Excluir", + "detDelEntryPerm": "Excluir permanentemente", + "detExpires": "Expira em", + "detExpired": "expirado", + "detGroup": "Grupo", + "detCreated": "Criado", + "detUpdated": "Atualizado", + "detNetField": "Novo Campo", + "detAttachments": "Anexos", + "detDelFromTrash": "Excluir do lixo?", + "detDelFromTrashBody": "Você não pode recupera-lo.", + "detDelFromTrashBodyHint": "Para remover rapidamente todos os itens do lixo, clique no ícone esvaziar no menu do Lixo.", + "detDelToTrash": "Apagar a entrada?", + "detDelToTrashBody": "A entrada será movida para a lixeira.", + "detFieldCopied": "Copiado", + "detFieldCopiedTime": "Copiado em {} segundos", + "detCopyHint": "Você pode copiar o valor do campo clicando no título", + "detMore": "mais", + "detClickToAddField": "Clique para adicionar um novo campo", + "detMenuAddNewField": "Adicionar novo campo", + "detMenuAddNewWebsite": "Adicionar outro website", + "detMenuShowEmpty": "Mostrar campos vazios", + "detMenuHideEmpty": "Ocultar campos vazios", + "detMenuAddField": "Adicionar {}", + "detMenuCopyPassword": "Copiar senha", + "detMenuCopyUser": "Copiar usuário", + "detMenuCopyOtp": "Copie a senha única", + "detSetupOtp": "Senhas únicas", + "detClone": "Faça uma cópia", + "detCopyEntryToClipboard": "Copiar todos os campos", + "detClonedName": "Copiar ", + "detAutoType": "Auto-tipo", + "detAutoTypeSettings": "Config. de auto-digitação", + "detAutoTypeEnabled": "Ativar auto-teclar para esta entrada", + "detAutoTypeSequence": "Teclas", + "detAutoTypeInput": "Entrada", + "detAutoTypeShortcutsDesc": "{} ou {} enquanto o aplicativo está inativo", + "detAutoTypeObfuscation": "Misturar teclas reais com aleatório", + "detAutoTypeWindow": "Janela", + "detAutoTypeInputWindow": "Título da janela", + "detSetupOtpAlert": "Digitalizar o código QR", + "detSetupOtpAlertBody": "Por favor, copie o código QR que é exibido na página de autorização.", + "detSetupOtpAlertBody1": "1. ir para a página de autorização", + "detSetupOtpAlertBody2": "2. faça um screenshot do código QR {}", + "detSetupOtpAlertBody3": "3. cole-o aqui {}", + "detSetupOtpAlertBody3Mobile": "3. selecione-o ou digitalize com a câmera usando o botão Selecionar / Digitalizar abaixo", + "detSetupOtpAlertBody4": "Se não conseguir digitalizar o código, clique em Inserir código manualmente", + "detSetupOtpManualButton": "Digite o código manualmente", + "detSetupOtpScanButton": "Selecionar / Digitalizar", + "detSetupOtpAlertBodyWith": "Com {}", + "detOtpImageError": "Erro ao ler imagem", + "detOtpImageErrorBody": "Lamentamos, mas não conseguimos ler o formato da imagem, contacte os autores da aplicação com detalhes de erro.", + "detOtpImageReading": "Leitura do código QR ...", + "detOtpQrError": "Erro de verificação do código QR", + "detOtpQrErrorBody": "Lamentamos, mas não conseguimos ler o código QR, tente novamente ou contacte os autores da aplicação com os detalhes do erro.", + "detOtpQrWrong": "Código QR errado", + "detOtpQrWrongBody": "Seu código QR foi digitalizado com êxito, mas não contém dados de senha únicos.", + "detOtpField": "senha única", + "detOtpClickToTouch": "Clique para gerar", + "detOtpGenerating": "Gerando...", + "detOtpTouch": "Toque em seu {}", + "detLockField": "Bloquear esse arquivo, assim o conteúdo não poderá ser procurado ou estará visível. Para mostrar o conteúdo será necessário obrigatoriamente clicar.", + "detUnlockField": "Desbloquear este campo, fazendo seu conteúdo pesquisável e visível imediatamente", + "detRevealField": "Mostrar", + "detHideField": "Esconder", + "detAutoTypeField": "Autocompletar", + "detIssuesHideTooltip": "esconder esse aviso", + "detIssueWeakPassword": "Sua senha é fraca, é recomendável que mude.", + "detIssuePoorPassword": "A sua senha é muito fraca, é altamente recomendável que mude-a", + "detIssuePwnedPassword": "Essa senha foi comprometida em um vazamento de acordo com {}, é recomendado que mude-a", + "detIssuePasswordCheckError": "Houve um erro ao checar a força da sua senha", + "detIssueOldPassword": "A senha é antiga.", + "detIssueCloseAlertHeader": "esconda problemas de senhas", + "detIssueCloseAlertBody": "Existem diferentes maneiras de esconder esse aviso:", + "detIssueCloseAlertEntry": "Não mostre para essa entrada", + "detIssueCloseAlertSettings": "Ajuste configurações globais", + "autoTypeEntryFields": "Campos de entrada", + "autoTypeModifiers": "Modificar teclas", + "autoTypeKeys": "Chaves", + "autoTypeLink": "mais...", + "autoTypeError": "Erro de auto-teclar", + "autoTypeErrorGeneric": "Ocorreu um erro ao executar auto-teclar: {}", + "autoTypeErrorAccessibilityMacOS": "Tentamos mandar as teclas apertadas para a aplicação, mas parece que isso não está funcionando. Isso pode acontecer por falta de permissões, clique aqui para ler mais sobre isso:", + "autoTypeErrorGlobal": "Para usar o atalho para todo o sistema, foque o aplicativo onde deseja digitar sua senha", + "autoTypeErrorNotInstalled": "{} não está instalado", + "autoTypeHeader": "Auto-teclar: selecione", + "autoTypeMsgNoWindow": "Não foi possível obter o título da janela ativa, comece a digitar para pesquisar", + "autoTypeMsgMatchedByWindow": "Selecione uma senha para {}", + "autoTypeNoMatches": "sem combinações", + "autoTypeSelectionHint": "Digite a sequência de auto-teclar", + "autoTypeSelectionHintAction": "Escreva apenas a senha", + "autoTypeSelectionHintOpt": "Escreva apenas o nome de usuário", + "autoTypeSelectionHintShift": "Outros campos", + "autoTypeSelectionOtp": "Senha única", + "autoTypeUnlockMessage": "Desbloquear para o auto-preenchimento", + "appSecWarn": "Não seguro!", + "appSecWarnBody1": "Você carregou este aplicativo com conexão insegura. Alguém pode estar observando você e roubando suas senhas. Recomendamos que você pare, a menos que você entenda claramente o que está fazendo.", + "appSecWarnBody2": "Sim, seu banco de dados é criptografado, mas ninguém pode garantir que o aplicativo não foi modificado no caminho para você.", + "appSecWarnBtn": "Eu entendo os riscos, continue", + "appUnsavedWarn": "Alterações não guardadas!", + "appUnsavedWarnBody": "Se você tiver arquivos não salvos, se você fechar o aplicativo, as alterações serão perdidas.", + "appDontExitBtn": "Não saia", + "appCannotLockAutoInit": "O aplicativo não pode ser bloqueado porque o salvamento automático está desativado.", + "appCannotLock": "Você tem alterações não salvas que serão perdidas. Continuar?", + "appAutoSave": "Guardar alterações automaticamente", + "appSaveError": "Salvar erro", + "appSaveErrorBody": "Falha ao salvar automaticamente o arquivo", + "appSaveErrorBodyMul": "Falha ao salvar automaticamente os arquivos:", + "appSaveErrorExitLoseChanges": "sair sem salvar", + "appSaveErrorExitLoseChangesBody": "Você pode sair do app e sem salvar as mudanças ou vá nas configurações para exportar.", + "appSettingsError": "Erro ao carregar o app", + "appSettingsErrorBody": "Ocorreu um erro ao carregar as configurações do aplicativo. Verifique o URL do aplicativo ou entre em contato com seu administrador.", + "appNotSupportedError": "Seu navegador não é suportado.", + "appTabWarn": "Muitas guias", + "appTabWarnBody": "KeeWeb não pode ser usado em duas guias do navegador simultaneamente, por favor, feche esta guia.", + "appRightsAlert": "Bloqueando KeeWeb", + "appRightsAlertBody1": "Seu KeeWeb não está seguro contra mudanças não autorizadas. Nós estamos pedindo sua permissão para que o app seja alterado somente para administradores.", + "appRightsAlertBody2": "Não quer dar permissão? Você pode fazer no Terminal", + "appBrowserAuthComplete": "Autenticação finalizada, você pode fechar esta aba agora.", + "setGenTitle": "Configurações Gerais", + "setGenUpdate": "Atualizar", + "setGenNewVersion": "A nova versão do aplicativo foi lançada e baixada", + "setGenReleaseNotes": "Ver notas de versão", + "setGenReloadToUpdate": "Recarregar para atualizar", + "setGenUpdateManual": "A nova versão foi lançada. Ele irá verificar se há atualizações e instalá-las automaticamente, mas a atualização automática da sua versão é impossível.", + "setGenDownloadUpdate": "Transferir a actualização", + "setGenUpdateAuto": "Faça o download e instale automaticamente", + "setGenUpdateCheck": "Verifique, mas não instale", + "setGenNoUpdate": "Nunca verificar se há atualizações", + "setGenUpdateChecking": "Verificar atualizações", + "setGenCheckUpdate": "Verificar atualizações", + "setGenErrorChecking": "Erro ao verificar atualizações", + "setGenLastCheckSuccess": "A última verificação bem-sucedida foi em {}", + "setGenLastCheckVer": "A versão mais recente foi {}", + "setGenCheckedAt": "Verificado em", + "setGenLatestVer": "Você está usando a versão mais recente", + "setGenNewVer": "Nova versão {} disponível, lançada", + "setGenDownloadingUpdate": "Fazendo o download da atualização ...", + "setGenExtractingUpdate": "Extraindo atualização ...", + "setGenCheckErr": "Ocorreu um erro ao fazer o download da nova versão", + "setGenNeverChecked": "Nunca verificado para atualizações", + "setGenRestartToUpdate": "Reinicie o aplicativo para atualizar", + "setGenDownloadAndRestart": "Fazer o download da atualização e reiniciar", + "setGenAppearance": "Aparência", + "setGenTheme": "Tema", + "setGenThemeDefault": "Padrão", + "setGenThemeDark": "Escuro", + "setGenThemeLight": "Claro", + "setGenThemeBlue": "Azul escuro", + "setGenThemeFb": "Azul plano", + "setGenThemeBl": "Azul claro", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Marrom escuro", + "setGenThemeLb": "Marrom claro", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Terminal claro", + "setGenThemeHighContrast": "Alto contraste", + "setGenThemeHc": "Alto contraste", + "setGenThemeDc": "Contraste escuro", + "setGenThemeSol": "Solarized", + "setGenThemeSd": "Solarized dark", + "setGenThemeSl": "Solarized light", + "setGenMoreThemes": "Mais temas", + "setGenAutoSwitchTheme": "Trocar automaticamente entre os temas claro e escuro quando possível", + "setGenLocale": "Língua", + "setGenLocOther": "Outros idiomas estão disponíveis como plugins", + "setGenFontSize": "Tamanho da fonte", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Grande", + "setGenFontSizeLargest": "Maior", + "setGenTitlebarStyle": "Estilo de janela (requer reinicialização)", + "setGenTitlebarStyleDefault": "Padrão", + "setGenTitlebarStyleHidden": "Título personalizado", + "setGenTitlebarStyleHiddenInset": "Custom title, draggable window", + "setGenShowSubgroups": "Mostrar entradas de todos os subgrupos", + "setGenTableView": "Exibir a lista de inscrições", + "setGenColorfulIcons": "Icones personalizados usam cor na lista", + "setGenUseMarkdown": "Notas em Markdown", + "setGenUseGroupIconForEntries": "Usar automaticamente ícones de grupos para novas entradas.", + "setGenDirectAutotype": "Se uma combinação for encontrada, seleciona automaticamente para auto preenchimento.", + "setGenFunction": "Função", + "setGenAutoSyncOnClose": "Salvar e sincronizar automaticamente ao fechar", + "setGenAutoSyncTimer": "Salvar automaticamente e sincronizar periodicamente", + "setGenAutoSyncTimerOff": "Desabilitado", + "setGenAutoSyncTimerInterval": "A cada {} minuto(s)", + "setGenRememberKeyFiles": "Lembrar dos arquivos de chaves", + "setGenNoRememberKeyFiles": "Não lembrar", + "setGenRememberKeyFilesData": "Utilizar armazenamento interno", + "setGenRememberKeyFilesPath": "Lembre o caminho para os arquivos de chave", + "setGenLockInactive": "Auto-bloquear se o aplicativo ficar inativo", + "setGenNoAutoLock": "Não bloquear", + "setGenLockMinutes": "Em {} minutos", + "setGenLockHour": "Em 1 hora", + "setGenLockHours": "Em {} horas", + "setGenLockDay": "Em 1 dia", + "setGenClearClip": "Limpar área de transferência após copiar", + "setGenNoClear": "Não limpar", + "setGenClearSeconds": "Em {} segundos", + "setGenClearMinute": "Em 1 minuto", + "setGenMinInstead": "Minimizar aplicativo em vez de fechar", + "setGenMinOnFieldCopy": "Minizar ao copiar o campo", + "setGenLock": "Bloqueio automático", + "setGenLockMinimize": "Bloquear automaticamente ao minimizar", + "setGenLockCopy": "Bloquear automaticamente ao copiar uma senha", + "setGenLockAutoType": "Auto bloquear ao auto-teclar", + "setGenLockOrSleep": "Quando o computador estiver bloqueado ou for hibernado", + "setGenStorage": "Armazenamento", + "setGenDisableOfflineStorage": "Não fazer cache dos arquivos carregados no armazenamento offline", + "setGenShortLivedStorageToken": "usar seções de vida curta em provedores de armazenamento em nuvem", + "setGenStorageLogout": "Sair", + "setGenShowAdvanced": "Mostrar configurações avançadas", + "setGenDevTools": "Mostar ferramenta para desenvolvedores", + "setGenTryBeta": "Experimente a versão beta até reiniciar", + "setGenTryBetaWarning": "Arquivos não salvos", + "setGenTryBetaWarningBody": "Por favor salve todos os arquivos e clique aqui novamente", + "setGenShowAppLogs": "Mostrar logs", + "setGenReloadApp": "Recarregar o aplicativo", + "setGenFieldLabelDblClickAutoType": "Preencher automaticamente ao dar clique duplo nos campos.", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Não usar o Touch ID", + "setGenTouchIdMemory": "Desbloquear com o Touch ID enquanto o KeeWeb estiver rodando", + "setGenTouchIdFile": "Sempre usar o Touch ID ao invés da senha mestra", + "setGenTouchIdPass": "Exigir a senha mestra após", + "setGenAudit": "Verificar", + "setGenAuditPasswords": "Mostrar alertas sobre complexidade de senha", + "setGenAuditPasswordEntropy": "Checar tamanho da senha e aleatoriedade.", + "setGenExcludePinsFromAudit": "Nunca checar códigos numéricos PIN, como 123456", + "setGenCheckPasswordsOnHIBP": "Checar senhas usando o serviço {}", + "setGenHelpHIBP": "KeeWeb pode verificar se suas senhas foram comprometidas em vazamentos de dados. Sua senha não pode ser recuperada baseado nos dados vazados, porém senhas checadas nesses serviços podem ser comprometidas por estarem sendo enviadas para outro lugar em que não temos o controle. Mais sobre sua privacidade ao utilizar este serviço poderão ser encontrados aqui: {}. Se essa opção for marcada, KeeWeb irá verificar suas senhas nesse serviço.", + "setGenHelpHIBPLink": "aqui", + "setGenAuditPasswordAge": "senhas antigas", + "setGenAuditPasswordAgeOff": "Esconder avisos sobre senhas antigas", + "setGenAuditPasswordAgeOneYear": "Mostrar avisos de senhas mais antigas que 1 ano.", + "setGenAuditPasswordAgeYears": "Mostrar aletas sobre senhas mais antigas que {} anos.", + "setFilePath": "Caminho do arquivo", + "setFileStorage": "Este arquivo é carregado de {}.", + "setFileIntl": "Esse arquivos está salvo no armazenamento interno", + "setFileLocalHint": "Quer trabalhar perfeitamente com arquivos locais?", + "setFileDownloadApp": "Baixe o aplicativo desktop", + "setFileSave": "Salvar", + "setFileSaveTo": "Salvar em ...", + "setFileClose": "Fechar", + "setFileSync": "Sincronizar", + "setFileSyncVerb": "Sinc", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Última sincronização", + "setFileLastSyncUnknown": "desconhecido", + "setFileSyncInProgress": "sincronização em progresso", + "setFileSyncError": "Erro de sincronização", + "setFilePass": "Senha", + "setFileConfirmPass": "Confirme a senha mestra", + "setFilePassChange": "para mudar sua senha, por favor digite no campo de confirmação", + "setFilePassChanged": "a senha foi trocada; deixe o campo em branco para usar a senha antiga", + "setFilePassNotMatch": "Senha não coincide, por favor digite novamente", + "setFileKeyFile": "Arquivo chave", + "setFileSelKeyFile": "Seleciona um arquivo chave", + "setFileNames": "Nomes", + "setFileDefUser": "Usuário padrão", + "setFileEnableTrash": "Ativar lixeira", + "setFileHistMode": "Histórico de entradas", + "setFileHistLimited": "Apagar todo os registros automaticamente.", + "setFileHistDisabled": "Não salvar histórico", + "setFileHistUnlimited": "Manter informações do histórico para sempre", + "setFileHistLen": "Quantidade do histórico, mantenha os últimos registros por entrada", + "setFileHistSize": "Tamanho do histórico, MB totais por arquivo", + "setFileBackups": "Backups", + "setFileBackupEnable": "Backup este arquivo", + "setFileBackupPath": "Caminho do backup", + "setFileBackupTime": "Faça backups", + "setFileBackupNow": "Faça backup agora", + "setFileBackupNowWorking": "Processando...", + "setFileBackupError": "Erro de backup", + "setFileBackupErrorDescription": "Erro ao gravar o arquivo de backup", + "setFileBackupErrorIsDir": "Caminho do backup inválido", + "setFileBackupErrorIsDirDescription": "O caminho do arquivo parece ser uma pasta. Por favor especifique o nome do arquivo contido dentro dessa pasta.", + "setFileBackupOnSave": "Toda vez eu salvo este arquivo", + "setFileBackupDaily": "Diario", + "setFileBackupWeekly": "Semanalmente", + "setFileBackupMonthly": "Mensalmente", + "setFileBackupManually": "Manual, sem backups automáticos", + "setFileRounds": "Rodadas de encriptação de chave", + "setFileKdfParams": "Função de derivação de chave", + "setFileKdfParamsIter": "Iterações", + "setFileKdfParamsMem": "Memória, KB", + "setFileKdfParamsPar": "Paralelismo", + "setFileKeyChangeForce": "Solicitar troca de chave depois de (dias)", + "setFileUseKeyFile": "Usar arquivo chave", + "setFileUseGenKeyFile": "Use o arquivo chave gerado", + "setFileUseOldKeyFile": "Usar arquivo chave antigo", + "setFileGenKeyFile": "Gera novo arquivo chave", + "setFileDontUseKeyFile": "Não usar arquivo chave", + "setFileEmptyPass": "Senha vazia", + "setFileEmptyPassBody": "Salvar a base de dados com uma senha vazia a deixa completamente desprotegida. Quer realmente fazer isso?", + "setFileSaveError": "Erro de salvamento", + "setFileSaveErrorBody": "Erro ao salvar este arquivo", + "setFileAlreadyExists": "Já existe", + "setFileAlreadyExistsBody": "Arquivo {} já existe. Sobrescrever?", + "setFileUnsaved": "Mudanças não salvas", + "setFileUnsavedBody": "Existem mudanças não salvas para este arquivo", + "setFileCloseNoSave": "Fechar e perder mudanças", + "setFileDontClose": "Não fechar", + "setFileFormatVersion": "Formato de arquivo", + "setFileExportRaw": "Exportando suas senhas", + "setFileExportRawBody": "O arquivo exportado irá conter suas senhas, lá elas não serão criptografadas. Deseja prosseguir?", + "setFileDeviceIntro": "códigos únicos através do {} serão mostradas no app.", + "setFileDeviceSettings": "Configurações", + "setFileYubiKey": "YoubiKey", + "setFileDontUseYubiKey": "Não utilizar o YubiKey", + "setFileRefreshYubiKeyList": "Atualizar a lista", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Utilizando o YubiKey como parte da senha mestre é perigoso e poderá acarretar em perda de acesso às suas senhas caso acontecer algo de errado. Certifique de realizar o backup de seus arquivos antes de alterar essa configuração.", + "setFileYubiKeyErrorEmptyMac": "Parece que você tem um YubiKey conectado, mas não está visível. KeeWeb precisa ser adicionado ao monitoramento de entrada, nas configurações para que tenha acesso ao YubiKey", + "setShTitle": "Atalhos", + "setShShowAll": "Mostra todos os itens", + "setShColors": "Mostra itens com cores", + "setShTrash": "Vá para a lixeira", + "setShFind": "Pesquisa, ou simplesmente inicie a digitar", + "setShClearSearch": "Limpa a pesquisa", + "setShCopyPass": "Copia a senha ou o campo selecionado", + "setShCopyUser": "copia usuário", + "setShCopyUrl": "copia o site", + "setShAutoType": "auto-teclar a entrada selecionada", + "setShPrev": "vai para o item anterior", + "setShNext": "vai para o próximo item", + "setShCreateEntry": "Cria entrada", + "setShOpen": "abrir / novo", + "setShSave": "Salva todos arquivos", + "setShGen": "gera senha", + "setShSet": "config. do aplicativo", + "setShCopyPassGlobal": "copia a senha (com o aplicativo em segundo plano)", + "setShCopyOtp": "copiar o OTP", + "setShAutoTypeGlobal": "auto-teclar (com o aplicativo em segundo plano)", + "setShCopyPassOnly": "Copiar senha", + "setShRestoreApp": "abrir {}", + "setShGlobal": "Esses atalhos de sistema funcionam quando o app está rodando em segundo plano. Você pode clicar neles para selecionar o seu próprio atalho", + "setShLock": "trava a base de dados", + "setShEdit": "Pressione uma nova combinação chave e defina como um atalho", + "setPlInstallTitle": "Instalar novos plugins", + "setPlInstallDesc": "Os plugins adicionam funcionalidades, temas e linguagens ao KeeWeb. Eles rodam com os mesmos privilégios do KeeWeb, podem acessar e gerenciar todas suas senhas. Nunca instale plugins que você não confie.", + "setPlInstallLabel": "URL do plugin", + "setPlInstallBtn": "Instalar", + "setPlInstallBtnProgress": "Instalando", + "setPlUninstallBtn": "Desinstalar", + "setPlDisableBtn": "Desativar", + "setPlEnableBtn": "Habilitar", + "setPlUpdateBtn": "Atualizar", + "setPlLocaleBtn": "Mudar para essa linguagem", + "setPlThemeBtn": "Mudar para esse tema", + "setPlJs": "código", + "setPlCss": "estilos", + "setPlLoc": "linguagem", + "setPlCreatedBy": "Criado por {}", + "setPlLoadTime": "levou {} para carregar", + "setPlLastUpdate": "Última verificação de atualizações", + "setPlLoadError": "erro ao carregar o plugin", + "setPlGalleryLoading": "Carregando os plugins, espere um pouco", + "setPlGalleryLoadError": "Erro ao carregar os plugins", + "setPlInstallUrlTitle": "Adicione um plugin de uma URL", + "setPlInstallUrlDesc": "Se o plugin não está na galeria, você pode o instalar manualmente por uma URL", + "setPlOfficial": "Plugin oficial KeeWeb", + "setPlSearch": "busque por plugins", + "setPlDevelop": "Quer desenvolver seus próprios plugins?", + "setPlDevelopStart": "Inicie aqui", + "setPlTranslate": "Ou você pode {}", + "setPlTranslateLink": "traduzir o aplicativo para sua linguagem", + "setPlAutoUpdate": "Atualizar automaticamente", + "setPlLoadGallery": "Carregar a galeria de plugins", + "setBrowserTitle": "Navegador", + "setBrowserIntroDesktop": "KeeWeb pode digitar senhas automaticamente, usando auto-teclar. Porém, usar uma extensão de navegador é um modo muito mais conveniente de fazer isso. KeeWeb é compatível com as extensões:", + "setBrowserIntroKeeWebConnect": "a extensão oficial do KeeWeb. É feita com as funcionalidades do KeeWeb em mente, mas você pode sentir falta de alguma funcionalidade existente na outra extensão.", + "setBrowserIntroKeePassXcBrowser": "esta extensão foi desenvolvida por KeePassXC. Já está no mercado há bastante tempo e é bem sólida. Não é parte do KeeWeb e pode ter problemas de compatibilidade.", + "setBrowserIntroWeb": "Instale nossa extensão de navegador para autocompletar senhas em diferentes páginas. A extensão conecta-se à aba do KeeWeb no navegador para trazer as senhas. Clique aqui para baixar a extensão:", + "setBrowserNotEnabled": "A integração com o navegador não está habilitada. Extensões não poderão conectar ao KeeWeb. Use as caixas abaixo para habilitar:", + "setBrowserEnablePerBrowser": "Habilite a integração com os navegadores usando as caixas abaixo:", + "setBrowserFocusIfLocked": "Abra o KeeWeb se uma extensão tentar conectar e não houver arquivo aberto", + "setBrowserFocusIfEmpty": "Mostre a tela de seleção se não for encontrada nenhuma correspondência por URL", + "setBrowserOtherBrowsers": "Outros navegadores", + "setBrowserExtensionFor": "para {}", + "setBrowserExtensionNotSupported": "Não suportado", + "setBrowserExtensionHelp": "Como instalar?", + "setBrowserExtensionInstall": "Instalar a extensão", + "setBrowserExtensionKPXCWarnHeader": "{} irá parar de funcionar", + "setBrowserExtensionKPXCWarnBody1": "Infelizmente não é possível conectar uma extensão a vários aplicativos. Se você conectar a extensão ao KeeWeb, a associação atual com {} irá parar de funcionar. Mesmo se você desmarcar esta caixa, a associação com {} não será restaurada. Para que volte a funcionar, configure a integração com o navegador nas configurações de {}.", + "setBrowserExtensionKPXCWarnBody2": "Configurar extensão para usar o KeeWeb?", + "setBrowserSessions": "Sessões", + "setBrowserSessionsEmpty": "Nenhuma sessão conectada.", + "setBrowserSessionsIntro": "Estas extensões estão conectadas ao KeeWeb.", + "setBrowserSessionsActiveTooltip": "Sessão ativa", + "setBrowserSessionsActiveText": "Esta sessão está ativa. Ela pode trocar dados com o KeeWeb de acordo com as seguintes permissões:", + "setBrowserSessionsInactiveTooltip": "Sessão Inativa", + "setBrowserSessionsInactiveText": "Esta sessão está inativa. A extensão está conectada ao KeeWeb, porém, ainda não tentou trocar dados. Quando a extensão solicitar algum dado, você poderá escolher o que pode ser compartilhado.", + "setBrowserSessionsDeniedTooltip": "Acesso negado", + "setBrowserSessionsDeniedText": "Esta sessão está inativa. A extensão está conectada ao KeeWeb, porém, você negou acesso aos dados.", + "setBrowserSessionsConnectedDate": "Conectado", + "setBrowserSessionsTerminate": "Encerrar esta sessão", + "setBrowserSessionsAccessToFiles": "Permitir acesso aos arquivos", + "setBrowserSessionsNoFileAccess": "A extensão não possui acesso a nenhum arquivo. Ela não será capaz de trazer nenhuma senha do KeeWeb.", + "setBrowserSessionsPasswordsRead": "Senhas lidas", + "setBrowserSessionsPasswordsWritten": "Senhas salvas", + "setDevicesTitle": "Dispositivos", + "setDevicesEnableUsb": "Habilitar interação com dispositivos USB", + "setDevicesYubiKeyIntro": "É recomendado ler {} antes de começar a usar a YubiKey.", + "setDevicesYubiKeyIntroLink": "esse documento", + "setDevicesYubiKeyToolsDesc": "Para conseguir usar a YubiKey nesse modo, você precisa instalar uma ferramenta chamada {}", + "setDevicesYubiKeyToolsDesc2": "{} para conseguir mais informações sobre essa ferramenta", + "setDevicesYubiKeyToolsDescLink": "Clique aqui", + "setDevicesYubiKeyToolsStatusChecking": "Checando se {} está instalado", + "setDevicesYubiKeyToolsStatusOk": "{} está instalado", + "setDevicesYubiKeyToolsStatusError": "{} não está instalado ou não está funcionando", + "setDevicesYubiKeyOtpTitle": "Códigos de uso único", + "setDevicesYubiKeyOtpDesc": "A YubiKey pode ser usada para gerar códigos de uso único para diferentes serviços.", + "setDevicesYubiKeyOtpShowIcon": "Mostrar ícone na tela inicial", + "setDevicesYubiKeyOtpAutoOpen": "Carregar automaticamente códigos de uso único quando houverem arquivos abertos", + "setDevicesYubiKeyOtpMatchEntries": "Mostrar códigos de uso único correspondentes em entradas", + "setDevicesYubiKeyChalRespTitle": "Resposta-do-desafio", + "setDevicesYubiKeyChalRespDesc": "Também é possível usar uma YubiKey no modo resposta-do-desafio, para que um pedaço da chave privada usada para criptografar arquivos fique em uma YubiKey.", + "setDevicesYubiKeyChalRespShow": "Mostrar a opção de usar uma YubiKey ao abrir arquivos", + "setDevicesYubiKeyStuckWorkaround": "Reconectar a YubiKey se parecer travada durante o carregamento", + "setDevicesYubiKeyRememberChalResp": "Lembrar a resposta-do-desafio enqunto o app estiver aberto", + "setAboutTitle": "Sobre", + "setAboutBuilt": "Este aplicativo foi criado com essas ferramentas incríveis", + "setAboutLic": "Licença", + "setAboutLicComment": "O aplicativo em si e todos os componentes incluídos que não estão em domínio público são licenciados sob a licença MIT", + "setAboutFirst": "Esta é um aplicativo de código aberto criado por {}", + "setAboutSecond": "e licenciado sob {}", + "setAboutSource": "O código fonte e issues estão no {}.", + "setHelpFormat": "Formato do arquivo", + "setHelpFormatBody": "Esta é uma conversão do aplicativo {} feita com tecnologias web. Ela entende arquivos no formato KeePass (kdbx). Você pode criar esses arquivos (bases de dados de senhas) tanto no KeePass, ou neste aplicativo. O formato do arquivo é 100% compatível e deve ser entendido pelos dois aplicativos.", + "setHelpProblems": "Precisa de ajuda?", + "setHelpProblems1": "Se algo der errado, por favor {}", + "setHelpProblems2": "ou {}", + "setHelpOpenIssue": "abrir questão no gitHub", + "setHelpContactLink": "Entrar em contato com o desenvolvedor", + "setHelpAppInfo": "Informações do App", + "setHelpOtherPlatforms": "Outras plataformas", + "setHelpDesktopApps": "Aplicações Desktop", + "setHelpWebApp": "Aplicação Web", + "setHelpUpdates": "Atualizações", + "setHelpTwitter": "App Twitter", + "dropboxSetupDesc": "É necessária alguma configuração para usar o Dropbox no aplicativo autônomo. Crie seu próprio aplicativo Dropbox e preencha sua chave abaixo.", + "dropboxAppKey": "Chave do aplicativo Dropbox", + "dropboxAppKeyDesc": "Copie a chave do seu aplicativo Dropbox (Configurações do desenvolvedor)", + "dropboxAppKeyHint": "sua chave do aplicativo Dropbox", + "dropboxAppSecret": "Segredo do aplicativo Dropbox", + "dropboxAppSecretDesc": "O segredo pode ser encontrado próximo à chave do aplicativo Dropbox", + "dropboxFolder": "Pasta da aplicação", + "dropboxFolderDesc": "Se o seu aplicativo estiver vinculado ao Dropbox inteiro (não a pasta do aplicativo), defina a pasta com seus arquivos kdbx aqui", + "dropboxFolderSettingsDesc": "Selecione qualquer pasta no seu Dropbox onde os arquivos serão armazenados (pasta raiz por padrão)", + "dropboxFolderPlaceholder": "pasta padrão", + "dropboxLink": "Vincule o aplicativo a", + "dropboxLinkApp": "Pasta de aplicativo (Apps/KeeWeb)", + "dropboxLinkFull": "Dropbox completo ou qualquer pasta", + "dropboxLinkCustom": "Aplicativo Dropbox próprio", + "gdriveSharedWithMe": "Compartilhado comigo", + "gdriveSharedDrives": "Drives compartilhados", + "gdriveTeamDrives": "Drives do time", + "webdavSaveMethod": "Salvar método", + "webdavSaveMove": "Carregar um arquivo temporário e mover", + "webdavSavePut": "Sobrescreva o arquivo kdbx com PUT", + "webdavNoLastModified": "Cabeçalho HTTP \"Last-Modified\" está ausente", + "webdavStatReload": "Sempre recarregue o arquivo em vez de confiar no cabeçalho HTTP \"Last-Modified\"", + "launcherSave": "Salvar banco de dados de senhas", + "launcherFileFilter": "Arquivos KeePass", + "authPopupRequired": "Pop-ups estão bloqueadas", + "authPopupRequiredBody": "Permita as janelas pop-up para este aplicativo em seu navegador.", + "exportFileInfo": "Informação do arquivo", + "exportHtmlName": "Nome", + "exportHtmlDate": "Data de exportação", + "exportGenerator": "Software", + "exportDescription": "Este arquivo é gerado com {}.", + "importCsvTitle": "Importar do CSV", + "importCsvRun": "Importar", + "importIgnoreField": "Ignorar", + "importTo": "Entradas serão importadas para", + "importNewFile": "Novo arquivo", + "yubiKeyStuckError": "A YubiKey parece estar travada, o reparo automático pode ser habilitado nas configurações do app.", + "yubiKeyNoKeyHeader": "A YubiKey é obrigatória", + "yubiKeyNoKeyBody": "Por favor insira sua YubiKey com o número de série {}", + "yubiKeySlot": "espaço", + "yubiKeyTouchRequestedHeader": "Toque sua YubiKey", + "yubiKeyTouchRequestedBody": "Por favor, toque sua YubiKey com o número de série {}", + "yubiKeyDisabledErrorHeader": "O USB está desabilitado", + "yubiKeyDisabledErrorBody": "A YubiKey é obrigatória para abrir esse arquivo, por favor habilite dispositivos USB nas configurações.", + "yubiKeyErrorWithCode": "Erro na YubiKey, código {}", + "bioOpenAuthPrompt": "abrir \"{}\"", + "extensionErrorNoOpenFiles": "Nenhum arquivo aberto", + "extensionErrorUserRejected": "A solicitação foi negada", + "extensionErrorNoMatches": "Nenhum login correspondente", + "extensionErrorAlertDisplayed": "Não é possível perguntar agora porque há outro diálogo aberto. Por favor tente novamente", + "extensionConnectHeader": "Troca de dados com extensão", + "extensionConnectIntro": "Uma extensão de navegador, que se identifica por {}, está tentando trocar dados com o KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb não verifica se a aplicação conectada é quem ela diz que é. Aprove a solicitação apenas se reconhecer esta atividade.", + "extensionConnectFiles": "Nesta sessão, permitir acesso a:", + "extensionConnectAllOtherFiles": "Todos os outros arquivos", + "extensionConnectAllFiles": "Todos os arquivos", + "extensionConnectAskGet": "Perguntar antes de retornar senhas para a extensão:", + "extensionConnectAskGetMultiple": "se houver mais do que uma correspondência", + "extensionConnectAskGetAlways": "sempre", + "extensionConnectAskSave": "Perguntar antes de salvar novas senhas no KeeWeb:", + "extensionConnectAskSaveAlways": "sempre", + "extensionConnectAskSaveAuto": "quando não for possível salvar automaticamente", + "extensionConnectSettingsAreForSession": "As configurações feitas aqui só são válidas para a sessão ativa. Você pode gerenciar as sessões ativas nas configurações do KeeWeb:", + "extensionUnlockMessage": "Desbloqueie para conectar à extensão do navegador", + "extensionNewGroupHeader": "Novo grupo", + "extensionNewGroupBody": "{} está tentando criar um novo grupo. Permitir?", + "extensionNewGroupPath": "Caminho do grupo", + "extensionNewGroupFile": "Este grupo será criado em:", + "extensionSaveEntryHeader": "Salvar senha", + "extensionSaveEntryBody": "{} está tentando salvar uma senha. Permitir?", + "extensionSaveEntryAuto": "Salvar outras senhas automaticamente nesta sessão", + "extensionSaveEntryNewGroup": "novo grupo", + "extensionSelectPasswordFor": "Selecione uma senha para {}", + "selectEntryHeader": "Selecionar entrada", + "selectEntryEnterHint": "usar a entrada marcada", + "selectEntryTypingHint": "Digite para filtrar", + "selectEntryContains": "Contém texto", + "selectEntrySubdomains": "Subdomínios", + "selectEntryFieldHeader": "Selecionar campo", + "selectEntryFieldTouch": "Pressione o botão no seu dispositivo para gerar um código de uso único." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/pt-PT/index.html b/keeweb/plugins/translations/pt-PT/index.html new file mode 100644 index 0000000..7bb5cff --- /dev/null +++ b/keeweb/plugins/translations/pt-PT/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Português + + + + +

KeeWeb Language: Português

+ https://plugins.keeweb.info/translations/pt-PT + + diff --git a/keeweb/plugins/translations/pt-PT/manifest.json b/keeweb/plugins/translations/pt-PT/manifest.json new file mode 100644 index 0000000..c5f079c --- /dev/null +++ b/keeweb/plugins/translations/pt-PT/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.9.0", + "manifestVersion": "0.1.0", + "name": "language-portuguese", + "description": "Portuguese language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=pt-PT", + "resources": { + "loc": "fcXYmBsxFJI7F35nkkoxkom3YOZXajaYuGdaFQGxB+Amu6V+oXCNU8vGjGflRl8dhsuu7qps5gU1FLmzx4ZUjKMoZQMHkYKyhUqcHI0YjUhXG9iN5HZh7GBVGlI3UJhoqjIlHkYjGu6nRzJetqEPAdr8N+8YkDWgT+tp2Ci9EKp09xSLpzfsQKQAWASKR2if17HA48pu4k+br1EVFW5nNzpo9IMthru6jXDggJlsxefLIf3f3M3nzhDFvroh6oRzWUK17xwkKPudVMjpk/PT5bT6gASb9H8J2h04QOAuCLn8BKRLhiokORrTF205xfFoaOSD8eWiwTpB3azx9UL+jQ==" + }, + "locale": { + "name": "pt-PT", + "title": "Português", + "flag": "🇵🇹" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/pt-PT/pt-PT.json b/keeweb/plugins/translations/pt-PT/pt-PT.json new file mode 100644 index 0000000..9f05fe6 --- /dev/null +++ b/keeweb/plugins/translations/pt-PT/pt-PT.json @@ -0,0 +1,683 @@ +{ + "retToApp": "Voltar à aplicação", + "name": "nome", + "icon": "ícone", + "title": "título", + "password": "palavra-passe", + "user": "utilizador", + "website": "site", + "tags": "etiquetas", + "notes": "notas", + "entry": "registo", + "group": "grupo", + "noTitle": "sem título", + "or": "ou", + "history": "histórico", + "template": "pantalha", + "notImplemented": "Não implementado", + "saveChanges": "Guardar alterações", + "discardChanges": "Ignorar alterações", + "advanced": "Avançadas", + "shortcuts": "Atalhos", + "help": "Ajuda", + "settings": "Configurações", + "plugins": "Plugins", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "erro", + "oneMinute": "um minuto", + "minutes": "{} minutos", + "oneHour": "uma hora", + "hours": "{} horas", + "oneDay": "um dia", + "days": "{} dias", + "oneWeek": "uma semana", + "oneMonth": "um mês", + "oneYear": "um ano", + "cache": "cache", + "file": "ficheiro", + "device": "aparelho", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Todos os Itens", + "menuColors": "Cores", + "menuTrash": "Lixo", + "menuSetGeneral": "Geral", + "menuSetAbout": "Sobre", + "menuSetDevices": "Aparelhos", + "menuAlertNoTags": "Sem etiquetas", + "menuAlertNoTagsBody": "Pode adicionar novas etiquetas enquanto altera campos, na secção de etiquetas.", + "menuEmptyTrash": "Esvaziar Lixo", + "menuEmptyTrashAlert": "Esvaziar Lixo?", + "menuEmptyTrashAlertBody": "Não vai ser possível recolocar itens", + "menuItemCollapsed": "Duplo clique para expandir", + "menuRestoreApp": "Abrir {}", + "menuQuitApp": "Desistir {}", + "alertYes": "Sim", + "alertNo": "Não", + "alertOk": "OK", + "alertCancel": "Cancelar", + "alertSignIn": "Entrar", + "alertCopy": "Copiar", + "alertClose": "Fechar", + "alertDoNotAsk": "Nâo pedir outra vez", + "appBeta": "AVISO: versão beta, apenas para pré-visualização", + "footerOpen": "Abrir / Novo", + "footerSyncError": "Erro de sincronização", + "footerTitleGen": "Gerar", + "footerTitleLock": "Bloquear", + "genLen": "Tamanho", + "genNewPass": "Nova Palavra-passe", + "genPresetDefault": "padrão", + "genPresetDerived": "como palavra-passe antiga", + "genPresetPronounceable": "pronunciável", + "genPresetMed": "tamanho médio", + "genPresetLong": "longo", + "genPresetPin4": "PIN de 4 dígitos", + "genPresetMac": "endereço MAC", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "genHidePass": "Ocultar password", + "genShowPass": "glossário de termos", + "grpTitle": "Grupo", + "grpSearch": "Activar pesquisa de registos neste grupo", + "grpAutoType": "Activar preenchimento automático", + "grpAutoTypeSeq": "Sequência de preenchimento automático", + "grpAutoTypeSeqDefault": "Usar sequência de preenchimento automático padrão", + "grpTrash": "Eliminar grupo com todos os registos", + "tagTitle": "Etiqueta", + "tagTrash": "Remover etiquetas de todas as entradas", + "tagRename": "Renomear", + "tagTrashQuestion": "Remover etiquetas de todas as entradas?", + "tagTrashQuestionBody": "Esta etiqueta será removida de todos os registos. Não há forma fácil de a recuperar.", + "tagExists": "Etiqueta já existe", + "tagExistsBody": "Um etiqueta com este nome já existe. Por favor, escolha outra etiqueta.", + "tagBadName": "Nome errado", + "tagBadNameBody": "Etiqueta não pode conter {}. Por favor, remova-os.", + "genPsTitle": "Definições do Gerador", + "genPsCreate": "Nova definição", + "genPsDelete": "Eliminar definição", + "genPsNew": "definição", + "genPsEnabled": "Mostrar na lista de definições", + "genPsDefault": "Seleccionado por padrão", + "genPsDefaultLength": "Tamanho padrão", + "genPsUpper": "Letras maiúsculas em latim", + "genPsLower": "Letras minúsculas em latim", + "genPsDigits": "Dígitos", + "genPsSpecial": "Símbolos especiais", + "genPsBrackets": "Parênteses", + "genPsHigh": "Caracteres ASCII completos", + "genPsAmbiguous": "Símbolos ambíguos", + "genPsInclude": "Incluir símbolos adicionais", + "genPsExample": "Exemplo de palavra-passe gerada", + "genPsPattern": "Padrão", + "genPsPatternHelp": "Padrões podem ser usados para customizar regras para selecionar caracteres. Por exemplo, 1-AA irá gerar palavras chave começando com um digito, seguido de um traço e duas letras. Pode usar estes símbolos:", + "genPsAllRanges": "Todos os símbolos", + "genPsIncluded": "Símbolos adicionais acima", + "keyChangeTitleRemote": "Chave Mestra Alterada", + "keyChangeMessageRemote": "A chave mestra foi alterada na base de dados. Por favor, insira uma chave nova.", + "keyChangeTitleExpired": "Chave Mestra Expirou", + "keyChangeMessageExpired": "A chave metra para esta base de dados expirou. Por favor, insira uma chave nova.", + "keyChangeRepeatPassword": "Palavra-passe, novamente.", + "keyEnter": "Entrar", + "iconFavTitle": "Descarregar e usar favicon do site", + "iconSelCustom": "Seleccionar ícone personalizado", + "listEmptyTitle": "Vazio", + "listEmptyAdd": "adicionar com o botão {} em cima", + "listGroup": "Grupo", + "listNoWebsite": "sem site", + "listNoUser": "sem utilizador", + "listNoAttachments": "sem anexos", + "listAddTemplateHeader": "Templates", + "listAddTemplateBody1": "Pantalhas permitem criar entradas com um click. Adicione algo a template entry/pantalha de entrada e clique {} novamente para usar esta template/pantalha", + "listAddTemplateBody2": "Pode sempre encontrar as suas templates no grupo {}.", + "searchAddNew": "Adicionar Novo", + "searchSort": "Ordenar", + "searchCreated": "Criado", + "searchUpdated": "Actualizado", + "searchAttachments": "Anexos", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Antigo {} Novo", + "searchNO": "Novo {} Antigo", + "searchShiftClickOr": "shift-click ou", + "searchAdvTitle": "Abrir pesquisa avançada", + "searchSearchIn": "Procurar em", + "searchOther": "Outros campos", + "searchProtect": "Campos protegidos", + "searchOptions": "Opções", + "searchCase": "Ignorar capitalização", + "searchRegex": "Expressão regular", + "searchRank": "Auto", + "searchExact": "Exacto", + "openOpen": "Abrir", + "openNew": "Novo", + "openNewFile": "Novo", + "openMore": "Mais", + "openDemo": "Demo", + "openGenerate": "Gerar", + "openXml": "Importar XML", + "openCaps": "Caps Lock activo", + "openClickToOpen": "Clique para abrir um ficheiro", + "openKeyFile": "ficheiro-chave", + "openKeyFileDropbox": "da Dropbox", + "openDropHere": "Largar ficheiros aqui", + "openFailedRead": "Falha ao ler o ficheiro", + "openNothingFound": "Nada encontrado", + "openNothingFoundBody": "Nenhum ficheiro pôde ser aberto.", + "openSelectFile": "Seleccione ficheiro", + "openSelectFileBody": "Seleccione um ficheiro para abrir", + "openPassFor": "Palvara-passe para", + "openRemoveLastQuestion": "Eliminar ficheiro local?", + "openRemoveLastQuestionBody": "O ficheiro que está a eliminar está guardado dentro da aplicação. Eliminar permanentemente?", + "openRemoveLastQuestionModBody": "O ficheiro que está a eliminar tem modificações. Eliminá-lo e descartar essas alterações?", + "openLocalFile": "Ficheiro local", + "openLocalFileBody": "Irá abrir um ficheiro que está guardado dentro da aplicação. Alterações não serão guardadas no sistema de ficheiros. Para obter os ficheiros com os seus dados, exporte o ficheiro a partir das configurações.", + "openLocalFileDontShow": "Não mostrar novamente", + "openWrongFile": "Ficheiro corrompido", + "openWrongFileBody": "O formato deste ficheiro não é suportado. Esta aplicação apenas suporta ficheiros do formato base de dados KeePass (KDBX).", + "openKdbFileBody": "Está a abrir um ficheiro de formato antigo (KDB). Esta aplicação apenas suporta o novo formato (KDBX), por favor use o KeePass v2 para converter entre os dois formatos.", + "openConfigHeader": "Configurações {}", + "openUrl": "URL", + "openUrlDesc": "https://servidor/caminho/ficheiro.kdbx, ou apenas ficheiro.kdbx", + "openUser": "Utilizador", + "openUserDesc": "Nome de utilizador do servidor WebDAV (se necessário)", + "openUserPlaceholder": "Sem utilizador", + "openPass": "Palavra-passe", + "openPassDesc": "Palavra-passe do servidor WebDAV (não é a palavra-passe do ficheiro)", + "openPassPlaceholder": "sem palavra-passe", + "openConfigError": "Erro: {}", + "openConfigErrorNotFound": "Ficheiro não encontrado", + "openError": "Erro", + "openErrorDescription": "Ocorreu um erro ao abrir o ficheiro", + "openErrorFileNotFound": "Ficheiro não encontrado", + "openListErrorBody": "Houve um erro a carregar lista file", + "openShowAllFiles": "Mostrar todos os arquivos", + "openFileNoCacheError": "Arquivo não encontrado no armazenamento cache. Isto pode acontecer porque o armazenamento do navegador não foi limpo. Para abrir file, remova-o de KeeWeb e adicione novamente.", + "openChalRespHeader": "Desafio-Resposta", + "openChalRespLoading": "Carregando lista de YubiKeys", + "openChalRespSelectYubiKey": "Selecione a YubiKey que quer utilizar", + "openChalRespErrorEmpty": "YoubiKeys não encontradas.", + "openChalRespErrorEmptyMac": "A primeira vez a utilizar esta funcionalidade em macOS? KeeWeb tem que ser adicionado à secção Input Monitoring dos parâmetros de segurança.", + "detAttDownload": "Clique na tecla shift sobre o botão do anexo para descarregar ou", + "detAttDelToRemove": "Eliminar para remover", + "detAttSave": "Guardar como ...", + "detEmpty": "As suas palavras-passe serão exibidas aqui", + "detGroupRestore": "Para restaurar este grupo, por favor arraste-o para qualquer grupo fora do lixo", + "detHistoryClickPoint": "Clique no ponto da linha temporal do registo para ver o estado", + "detHistoryReturn": "regressar ao registo", + "detHistoryRevert": "Reverter para estado", + "detHistoryDel": "Eliminar estado", + "detHistoryEmpty": "vazio", + "detHistoryModified": "modificado", + "detHistoryRec": "entrada", + "detHistoryRecs": "entradas", + "detHistoryVersion": "Versão", + "detHistorySaved": "Guardado", + "detHistoryNoTitle": "sem título", + "detHistoryCurState": "estado actual", + "detHistoryCurUnsavedState": "estado actual não guardado", + "detHistoryRevertAlert": "Rerverter para este estado histórico?", + "detHistoryRevertAlertBody": "O seu estado corrente será guardado no histórico.", + "detHistoryDeleteAlert": "Apagar este estado histórico?", + "detHistoryDeleteAlertBody": "Não será capaz de restaurar.", + "detHistoryDiscardChangesAlert": "Descartar alterações feitos a entry?", + "detHistoryDiscardChangesAlertBody": "Mudanças não gravadas serão perdidas, não haverá retorno possível.", + "detBackToList": "voltar à lista", + "detSetIconColor": "Alterar cor", + "detSetIcon": "Alterar ícone", + "detDropAttachments": "largar anexos aqui", + "detDelEntry": "Eliminar", + "detDelEntryPerm": "Eliminar permanentemente", + "detExpires": "Expira", + "detExpired": "Expirou", + "detGroup": "Grupo", + "detCreated": "Criado", + "detUpdated": "Actualizado", + "detNetField": "Novo Campo", + "detAttachments": "Anexos", + "detDelFromTrash": "Eliminar do lixo?", + "detDelFromTrashBody": "Não será possível recuperá-lo.", + "detDelFromTrashBodyHint": "Para remover itens rapidamente do lixo, clique no ícone vazio no menu Lixo.", + "detDelToTrash": "Apagar a entry?", + "detDelToTrashBody": "A entry será movida para a pasta trash/lixo.", + "detFieldCopied": "Copiado", + "detFieldCopiedTime": "Copiado após {} segundos", + "detCopyHint": "Pode copiar o valor do campo ao clicar sobre o seu título", + "detMore": "mais", + "detClickToAddField": "clique para adicionar um novo campo", + "detMenuAddNewField": "Adicionar novo campo", + "detMenuShowEmpty": "Mostrar campos vazios", + "detMenuHideEmpty": "Esconder campos vazios", + "detMenuAddField": "Adicionar {}", + "detMenuCopyPassword": "Copiar palavra-passe", + "detMenuCopyUser": "Copiar utilizador", + "detMenuCopyOtp": "Copiar código único.", + "detSetupOtp": "Palavras-passe únicas", + "detClone": "Criar uma cópia", + "detCopyEntryToClipboard": "Copiar todos os campos", + "detClonedName": "Copiar", + "detAutoType": "Escrita automática", + "detAutoTypeSettings": "Configurações de escrita automática", + "detAutoTypeEnabled": "Activar escrita automática para este registo", + "detAutoTypeSequence": "Atalhos", + "detAutoTypeInput": "Entrada", + "detAutoTypeShortcutsDesc": "{} ou {} enquanto a aplicação está inactiva", + "detAutoTypeObfuscation": "Misture atalhos reais com alteatórios", + "detAutoTypeWindow": "Janela", + "detAutoTypeInputWindow": "Título da janela", + "detSetupOtpAlert": "Digitalizar código QR", + "detSetupOtpAlertBody": "Por favor copie código QR que é exibido na página de autorização.", + "detSetupOtpAlertBody1": "1. vá à página de autorização", + "detSetupOtpAlertBody2": "2. tirar uma imagem de ecrã do código QR {}", + "detSetupOtpAlertBody3": "3. colar aqui {}", + "detSetupOtpAlertBody3Mobile": "3. seleccione ou digitalize com a câmara, utilizando Seleccionar/Digitalizar em baixo", + "detSetupOtpAlertBody4": "Se não conseguir digitalizar o código, clique Submeter código manualmente", + "detSetupOtpManualButton": "Submeter código manualmente", + "detSetupOtpScanButton": "Seleccionar/Digitalizar", + "detSetupOtpAlertBodyWith": "com {}", + "detOtpImageError": "Erro ao digitalizar imagem", + "detOtpImageErrorBody": "Desculpe, não foi possível ler o formato da imagem, por favor contacte os criadores da aplicação com detalhes do erro.", + "detOtpImageReading": "A digitalizar código QR...", + "detOtpQrError": "Erro a digitalizar código QR", + "detOtpQrErrorBody": "Desculpe, não foi possível digitalizar o código QR, por favor tente novamente ou contacte os criadores da aplicação com detalhes do erro.", + "detOtpQrWrong": "Código QR errado", + "detOtpQrWrongBody": "O código QR foi digitalizado com sucesso mas não contem dados da palavra-passe única.", + "detOtpField": "Código único", + "detOtpClickToTouch": "Clique para gerar", + "detOtpGenerating": "A gerar...", + "detOtpTouch": "Toque o seu {}", + "detLockField": "Bloqueie este campo/field, para que o seu conteúdo não seja procurado e visivel. Mostrar o conteúdo requer um clique explicíto.", + "detUnlockField": "Desbloqueie este campo/field, para que o seu conteúdo seja procurável e visível de imediato.", + "detRevealField": "Revele", + "detHideField": "Ocultar", + "detAutoTypeField": "Auto escrita", + "detIssuesHideTooltip": "Oculte este aviso", + "detIssueWeakPassword": "A password é fraca, é recomendado que a mude.", + "detIssuePoorPassword": "A password é muito fraca, é fortemente recomendado que a mude.", + "detIssuePwnedPassword": "A password foi exposta a quebra de dados de acordo com {}, é recomendado que a mude.", + "detIssuePasswordCheckError": "Houve um erro a verificar a potência da password online.", + "detIssueOldPassword": "A password é antiga.", + "detIssueCloseAlertHeader": "Ocultar problemas da password", + "detIssueCloseAlertBody": "Existem diversas formas de ocultar este aviso:", + "detIssueCloseAlertEntry": "Não mostre esta entrada", + "detIssueCloseAlertSettings": "Ajuste os parâmetros globais", + "autoTypeEntryFields": "Campos do registo", + "autoTypeModifiers": "Teclas modificadoras", + "autoTypeKeys": "Teclas", + "autoTypeLink": "mais...", + "autoTypeError": "Erro de escrita automática", + "autoTypeErrorGeneric": "Ocorreu um erro durante a escrita automática: {}", + "autoTypeErrorAccessibilityMacOS": "Tentámos enviar toques de teclas para a aplicação, mas não parece estar a funcionar. Isto pode suceder porque faltam parâmetros de permissão, clique aqui para ler mais sobre isto:", + "autoTypeErrorGlobal": "Para usar atalhos do sistema, por favor aponte a aplicação para onde quer escrever a palavra-passe", + "autoTypeErrorNotInstalled": "{} não está instalado", + "autoTypeHeader": "Escrita automática: Seleccionar", + "autoTypeMsgNoWindow": "Não foi possível obter o título da janela activa, comece a escrever para pesquisar", + "autoTypeMsgMatchedByWindow": "Seleccione a palavra-passe para {}", + "autoTypeNoMatches": "sem resultados", + "autoTypeSelectionHint": "Tecle a sequência de auto escrita", + "autoTypeSelectionHintAction": "Tecle apenas a palavra chave", + "autoTypeSelectionHintOpt": "Tecle apenas o nome de utilizador", + "autoTypeSelectionHintShift": "Outros campos", + "autoTypeSelectionOtp": "Código único", + "appSecWarn": "Inseguro!", + "appSecWarnBody1": "Iniciou a aplicação com uma conexão insegura. Alguém pode estar a observá-lo e a roubar as suas palavras-chave. Aconselhamos que pare a não ser que compreenda claramente o que está a fazer.", + "appSecWarnBody2": "Sim, a sua base de dados está encriptada mas não é possível garantir que a aplicação não foi alterada até chegar a si.", + "appSecWarnBtn": "Compreendo os riscos, prosseguir.", + "appUnsavedWarn": "Alteraçõs não guardadas!", + "appUnsavedWarnBody": "Tem alterações não guardadas, se fechar a aplicação perderá as suas alterações.", + "appDontExitBtn": "Não sair", + "appCannotLockAutoInit": "A aplicação não pode ser bloqueada porque a gravação automática está desabilitada.", + "appCannotLock": "Tem alterações não guardadas que irá perder. Prosseguir?", + "appAutoSave": "Gravar alterações automaticamente", + "appSaveError": "Guardar Erro", + "appSaveErrorBody": "Falha a gravar ficheiro automaticamente", + "appSaveErrorBodyMul": "Falha ao gravar ficheiros automaticamente:", + "appSaveErrorExitLoseChanges": "Termine e perca todas as alterações", + "appSaveErrorExitLoseChangesBody": "Pode terminar a app/aplicação e perder todas as mudanças, ou ir a file/arquivo para exportar os dados", + "appSettingsError": "Erro a iniciar a aplicação", + "appSettingsErrorBody": "Ocorreu um erro ao iniciar as configurações da aplicação. Por favor, verifique o URL da aplicação ou contacte o seu administrador.", + "appNotSupportedError": "O seu navegador não suporta algumas funcionalidades importantes que estamos a usar.", + "appTabWarn": "Demasiados separadores", + "appTabWarnBody": "KeeWeb não pode ser utilizado em dois separadores em simultâneo, por favor feche o separador.", + "appRightsAlert": "A bloquear a aplicação KeeWeb", + "appRightsAlertBody1": "A sua aplicação KeeWeb não está atualmente salvaguardada de mudanças não autorizadas. Pedimos-lhe permissão para tornar a app/aplicação alterável apenas por administradores.", + "appRightsAlertBody2": "Não quer dar permissões? Pode fazê-lo diretamente no Terminal", + "appBrowserAuthComplete": "Autenticação está completa, pode fechar o separador agora.", + "setGenTitle": "Configurações Gerais", + "setGenUpdate": "Actualização", + "setGenNewVersion": "Nova versão da aplicação disponibilizada e descarregada", + "setGenReleaseNotes": "Ver notas da actualização", + "setGenReloadToUpdate": "Recarregar para atualizar", + "setGenUpdateManual": "Nova versão disponibilizada. irá verificar se existem actualizações e instalá-las automaticamente mas actualização automática a partir da sua versão é impossível.", + "setGenDownloadUpdate": "Descarregar atualização", + "setGenUpdateAuto": "Descarregar e instalar automaticamente", + "setGenUpdateCheck": "Verificar mas não instalar", + "setGenNoUpdate": "Nunca verificar atualizações", + "setGenUpdateChecking": "Verificando atualizações", + "setGenCheckUpdate": "Verificar actualizações", + "setGenErrorChecking": "Erro ao verificar actualizações", + "setGenLastCheckSuccess": "Última verificação com sucesso foi em {}", + "setGenLastCheckVer": "a última versão foi {}", + "setGenCheckedAt": "Verificado em", + "setGenLatestVer": "está a usar a última versão", + "setGenNewVer": "nova versão {} disponível", + "setGenDownloadingUpdate": "A descarregar atualização", + "setGenExtractingUpdate": "A extrair atualização", + "setGenCheckErr": "Ocorreu um erro ao descarregar nova versão", + "setGenNeverChecked": "Nunca verificou actualizações", + "setGenRestartToUpdate": "Reiniciar para actualizar", + "setGenDownloadAndRestart": "Descarregar actualização e reiniciar", + "setGenAppearance": "Aspecto", + "setGenTheme": "Tema", + "setGenThemeDefault": "Por defeito", + "setGenThemeDark": "Escuro", + "setGenThemeLight": "Claro", + "setGenThemeBlue": "Azul liso", + "setGenThemeFb": "Azul escuro", + "setGenThemeBl": "Azul claro", + "setGenThemeBrown": "Castanho", + "setGenThemeDb": "Castanho escuro", + "setGenThemeLb": "Castanho claro", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Terminal claro", + "setGenThemeHighContrast": "Alto contraste", + "setGenThemeHc": "Alto contraste", + "setGenThemeDc": "Contraste escuro", + "setGenThemeSol": "Soalheiro", + "setGenThemeSd": "Soalheiro escuro", + "setGenThemeSl": "Soalheiro claro", + "setGenMoreThemes": "Mais temas", + "setGenAutoSwitchTheme": "Mudar automaticamente entre tema claro e escuro quando possível", + "setGenLocale": "Língua", + "setGenLocOther": "Outras linguagens estão disponíveis como plugins", + "setGenFontSize": "Tamanho de letra", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Grande", + "setGenFontSizeLargest": "Maior", + "setGenTitlebarStyle": "Tipo de janela (requer reinício)", + "setGenTitlebarStyleDefault": "Por defeito", + "setGenTitlebarStyleHidden": "Título costumizável", + "setGenTitlebarStyleHiddenInset": "Título costumizável, janela arrastável", + "setGenShowSubgroups": "Mostrar registos para todos os subgrupos", + "setGenTableView": "Visualização de registos em tabela", + "setGenColorfulIcons": "Ícones coloridos customizados na lista", + "setGenUseMarkdown": "Anotar em notas", + "setGenUseGroupIconForEntries": "Usar ícone de grupo automaticamente para novas entradas", + "setGenDirectAutotype": "Se apenas uma entrada fôr encontrada, selecione-a automaticamente para Autotype", + "setGenFunction": "Função", + "setGenAutoSyncOnClose": "Guardar e sincronizar automaticamente ao fechar", + "setGenAutoSyncTimer": "Periodicamente guardar e sincronizar automaticamente", + "setGenAutoSyncTimerOff": "Disabilitado", + "setGenAutoSyncTimerInterval": "Cada {} minuto(s)", + "setGenRememberKeyFiles": "Lembrar ficheiros-chave", + "setGenNoRememberKeyFiles": "Não recordar", + "setGenRememberKeyFilesData": "Guardar na memória interna da app/aplicação", + "setGenRememberKeyFilesPath": "Lembrar apenas caminho para arquivos de chaves", + "setGenLockInactive": "Bloquear automaticamente aplicação se inactiva", + "setGenNoAutoLock": "Não bloquear automaticamente", + "setGenLockMinutes": "Em {} minutos", + "setGenLockHour": "Em uma hora", + "setGenLockHours": "Em {} horas", + "setGenLockDay": "Em um dia", + "setGenClearClip": "Limpar área de transferência após copiar", + "setGenNoClear": "Não limpar", + "setGenClearSeconds": "Em {} segundos", + "setGenClearMinute": "Em um minuto", + "setGenMinInstead": "Minimizar aplicacão em vez de fechar", + "setGenMinOnFieldCopy": "Minimizar quando copiar campo", + "setGenLock": "Bloqueio automatico", + "setGenLockMinimize": "Bloquear automaticamente após minimizar", + "setGenLockCopy": "Bloquear automaticamente ao copiar palavra-passe", + "setGenLockAutoType": "Quando auto-escrita", + "setGenLockOrSleep": "Quando o computador estiver bloqueado ou colocado a dormir", + "setGenStorage": "Armazenamento", + "setGenDisableOfflineStorage": "Não guarde arquivos carregados no armazenamento offline", + "setGenStorageLogout": "Sair", + "setGenShowAdvanced": "Mostrar configurações avançadas", + "setGenDevTools": "Exibir ferramentas de desenv.", + "setGenTryBeta": "Experimente a versão beta até reiniciar", + "setGenTryBetaWarning": "Ficheiros não guardados", + "setGenTryBetaWarningBody": "Por favor guarde todos os ficheiros e clique neste botão novamente", + "setGenShowAppLogs": "Mostrar ficheiro de logs da aplicação", + "setGenReloadApp": "Reiniciar a apicação", + "setGenFieldLabelDblClickAutoType": "Auto-escrita quando duplo clique nas etiquetas dos campos", + "setGenTouchId": "Tough ID", + "setGenTouchIdDisabled": "Não utilize Touch ID", + "setGenTouchIdMemory": "Desbloqueie com Touch ID apenas quando KeeWeb está a correr", + "setGenTouchIdFile": "Utilize sempre Touch ID em vez de palavra-chave mestra", + "setGenTouchIdPass": "Necessário palavra-chave mestra depois", + "setGenAudit": "Auditoria", + "setGenAuditPasswords": "Mostar avisos sobre potência da palavra-chave", + "setGenAuditPasswordEntropy": "Verificar comprimento e aleatoriedade da palavra-chave", + "setGenExcludePinsFromAudit": "Nunca verifique códigos numéricos PIN, como 123456", + "setGenCheckPasswordsOnHIBP": "Verifique palavras-chave utilizando um serviço em linha \"{}\"", + "setGenHelpHIBP": "KeeWeb pode verificar se as suas passwords foram previamente expostas a uma quebra de dados utilizando um serviço em linha. A sua palavra-chave/password não pode ser recuperada baseado em dados enviados em linha, no entando o número de palavras-chave verificadas desta forma podem ser expostas. Mais sobra a sua privacidade quando utiliza este serviço pode ser encontrado em {}. Se esta opção estiver abilitada, KeeWeb automaticamente verificará ali as suas palavras-chave.", + "setGenHelpHIBPLink": "aqui", + "setGenAuditPasswordAge": "Palavra-chave antigas", + "setGenAuditPasswordAgeOff": "Não mostrar avisos sobre palavras-chave antigas", + "setGenAuditPasswordAgeOneYear": "Mostrar avisos sobre palavras-chave com mais de um ano", + "setGenAuditPasswordAgeYears": "Mostrar avisos para passwords com mais de {} anos", + "setFilePath": "Caminho do ficheiro", + "setFileStorage": "Este ficheiro foi carregado de {}.", + "setFileIntl": "Este ficheiro está guardado no armazenamento interno da aplicação", + "setFileLocalHint": "Quer trabalhar perfeitamente com ficheiros locais?", + "setFileDownloadApp": "Descarregar a versão desktop da aplicação", + "setFileSave": "Guardar", + "setFileSaveTo": "Guardar em ...", + "setFileClose": "Fechar", + "setFileSync": "Sincronizar", + "setFileSyncVerb": "Sincronizar", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Última sincronização", + "setFileLastSyncUnknown": "desconhecido", + "setFileSyncInProgress": "Sincronização em progresso", + "setFileSyncError": "Erro de sincronização", + "setFilePass": "Palavra-passe mestra", + "setFileConfirmPass": "Confirmar password/palavra-chave Mestra", + "setFilePassChange": "para mudar a sua password/palavra-chave, por favor escreva-a no campo/field Confirm/Confirmar", + "setFilePassChanged": "palavra-passe mudou; deixar o campo em branco para usar palavra-passe antiga", + "setFilePassNotMatch": "palavra-chave não iguais, por favor escreva novamente", + "setFileKeyFile": "Ficheiro-chave", + "setFileSelKeyFile": "Seleccionar um ficheiro-chave", + "setFileNames": "Nomes", + "setFileDefUser": "Utilizador padrão", + "setFileEnableTrash": "Activar lixo", + "setFileHistMode": "Entry/Entrada histórica", + "setFileHistLimited": "Apague registos históricos antigos automaticamente", + "setFileHistDisabled": "Não guardar histórico", + "setFileHistUnlimited": "Manter registos históricos para sempre", + "setFileHistLen": "Tamanho do histórico, manter últimas entradas por registo", + "setFileHistSize": "Tamanho do histórico, total em MB por ficheiro", + "setFileBackups": "Cópias de segurança", + "setFileBackupEnable": "Criar cópia de segurança para ficheiro", + "setFileBackupPath": "Caminho para cópia de segurança", + "setFileBackupTime": "Fazer cópias de segurança", + "setFileBackupNow": "Fazer cópia de segurança agora", + "setFileBackupNowWorking": "A processar...", + "setFileBackupError": "Erro de cópia de segurança", + "setFileBackupErrorDescription": "Erro ao escrever cópia de segurança", + "setFileBackupErrorIsDir": "Caminho de cópia de segurança inválido", + "setFileBackupErrorIsDirDescription": "O caminho de cópia de segurança parece apontar para uma diretoria. Por favor especifique um ficheiro dentro de uma diretoria.", + "setFileBackupOnSave": "Cada vez que gravo o ficheiro", + "setFileBackupDaily": "Diariamente", + "setFileBackupWeekly": "Semanalmente", + "setFileBackupMonthly": "Mensalmente", + "setFileBackupManually": "Manualmente, sem cópias de segurança automáticas", + "setFileRounds": "Rondas de encriptação", + "setFileKdfParams": "Função de chave de derivação", + "setFileKdfParamsIter": "Iterações", + "setFileKdfParamsMem": "Memória, KB", + "setFileKdfParamsPar": "Paralelismo", + "setFileKeyChangeForce": "Perguntar para alterar chave após (dias)", + "setFileUseKeyFile": "Usar ficheiro-chave", + "setFileUseGenKeyFile": "Usar ficheiro-chave gerado", + "setFileUseOldKeyFile": "Usar ficheiro-chave antigo", + "setFileGenKeyFile": "Gerar novo ficheiro-chave", + "setFileDontUseKeyFile": "Não usar ficheiro-chave", + "setFileEmptyPass": "Palavra-passe vazia", + "setFileEmptyPassBody": "Guardar a base de dados com uma palavra-passe vazia deixa-a totalmente desprotegida. Deseja prosseguir?", + "setFileSaveError": "Erro de gravação", + "setFileSaveErrorBody": "Erro ao gravar o ficheiro", + "setFileAlreadyExists": "Já existe", + "setFileAlreadyExistsBody": "Ficheiro {} já existe. Substituir?", + "setFileUnsaved": "Alterações não guardadas", + "setFileUnsavedBody": "Existem alterações não guardadas neste ficheiro", + "setFileCloseNoSave": "Fechar e perder alterações", + "setFileDontClose": "Não fechar", + "setFileFormatVersion": "Formato de Ficheiro/File", + "setFileExportRaw": "Exporte as suas palavras-chave", + "setFileExportRawBody": "O file/ficheiro exportado contém as suas palavras-chave, elas serão encriptadas aí. Gostaria de continuar?", + "setFileDeviceIntro": "Códigos únicos deste {} serão mostrados na app/aplicação", + "setFileDeviceSettings": "Parâmetros", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Não utilize uma YoubiKey", + "setFileRefreshYubiKeyList": "Refrescar a lista", + "setFileYubiKeyHeader": "YoubiKey", + "setFileYubiKeyBody": "Utilizar a YoubiKey como parte da palavra-chave mestra é perigoso e pode perder acesso às suas palavras-chave se algo correr mal. Fez uma cópia de segurança do seu file/ficheiro antes de mudar este parâmetro?", + "setFileYubiKeyErrorEmptyMac": "Parece que há uma YubiKey ligada mas não visível. KeeWeb tem que ser adicionada à secção de parâmetros de segurança de Input Monitoring para aceder a YubiKeys.", + "setShTitle": "Atalhos", + "setShShowAll": "mostrar todos os itens", + "setShColors": "mostrar itens com cores", + "setShTrash": "ir para o lixo", + "setShFind": "pesquise, ou comece a escrever", + "setShClearSearch": "limpar pesquisa", + "setShCopyPass": "copiar palavra-passe ou seleccionar campo", + "setShCopyUser": "copiar utilizador", + "setShCopyUrl": "copiar o site", + "setShAutoType": "registo com escrita automática", + "setShPrev": "ir para item anterior", + "setShNext": "ir para item seguinte", + "setShCreateEntry": "criar registo", + "setShOpen": "abrir / novo", + "setShSave": "guardar todos os ficheiros", + "setShGen": "gerar palavra-passe", + "setShSet": "configurações da aplicação", + "setShCopyPassGlobal": "copiar palavra-passe (quando aplicação está minimizada)", + "setShCopyOtp": "copiar OTP", + "setShAutoTypeGlobal": "escrita automática (quando aplicação está minimizada)", + "setShCopyPassOnly": "copiar password/palavra-chave", + "setShRestoreApp": "abrir {}", + "setShGlobal": "Estes atalhos de sistema funcionam quando a app/aplicação está a correr nos bastidores, Pode clicá-los para selecionar o seu atalho.", + "setShLock": "bloquear base de dados", + "setShEdit": "Carregue uma nova combinação de teclas para definir como atalho", + "setPlInstallTitle": "Instalar novos plugins", + "setPlInstallDesc": "Plugins de KeeWeb adicionam funcionalidades, temas e linguagens à Kee", + "setPlInstallLabel": "Plugin URL", + "setPlInstallBtn": "Instalar", + "setPlInstallBtnProgress": "Instalando", + "setPlUninstallBtn": "Desinstalar", + "setPlDisableBtn": "Desabilitar", + "setPlEnableBtn": "Abilitar", + "setPlUpdateBtn": "Atualizar", + "setPlLocaleBtn": "Mudar para esta linguagem", + "setPlThemeBtn": "Mudar para este tema", + "setPlJs": "código", + "setPlCss": "estilos", + "setPlLoc": "linguagem", + "setPlCreatedBy": "Criado por {}", + "setPlLoadTime": "levo {} a carregar", + "setPlLastUpdate": "Última verificação para atualizações", + "setPlLoadError": "erro a carregar plugin", + "setPlGalleryLoading": "Carregando plugins, por favor espere um pouco", + "setPlGalleryLoadError": "Erro a carregar plugins", + "setPlInstallUrlTitle": "Adicionar plugin de URL", + "setPlInstallUrlDesc": "Se o plugin não estiver na galeria, pode instalá-lo manualmente de URL", + "setPlOfficial": "Plugin KeeWeb oficial", + "setPlSearch": "Procurar plugins", + "setPlDevelop": "Quer desenvolver os seus próprios plugins?", + "setPlDevelopStart": "Comece aqui", + "setPlTranslate": "Ou pode {}", + "setPlTranslateLink": "traduzir a app/aplicação para a sua língua", + "setPlAutoUpdate": "Atualizar automaticamente", + "setPlLoadGallery": "Carregar galeria de plugin", + "setDevicesTitle": "Dispositivos", + "setDevicesEnableUsb": "Permitir interação com dispositivos USB", + "setDevicesYubiKeyIntro": "É recomendado ler {} antes de usar a YubiKey", + "setDevicesYubiKeyIntroLink": "este documento", + "setDevicesYubiKeyToolsDesc": "Para poder usar a YubiKey neste mode, precisa de instalar uma ferramenta chamada {}.", + "setDevicesYubiKeyToolsDesc2": "{} para ter mais informação sobre esta ferramenta.", + "setDevicesYubiKeyToolsDescLink": "Clique aqui", + "setDevicesYubiKeyToolsStatusChecking": "Verificando se {} está instalado", + "setDevicesYubiKeyToolsStatusOk": "{} está instalado", + "setDevicesYubiKeyToolsStatusError": "{} não está instalado ou não funciona", + "setDevicesYubiKeyOtpTitle": "Códigos temporários", + "setDevicesYubiKeyOtpDesc": "YubiKey pode ser usada para gerar códigos temporários para diferentes serviços.", + "setDevicesYubiKeyOtpShowIcon": "Mostrar o ícone no écran de início", + "setDevicesYubiKeyOtpAutoOpen": "Carregar automaticamente códigos temporários quando há ficheiros abertos", + "setDevicesYubiKeyOtpMatchEntries": "Mostrar códigos temporários iguais na série", + "setDevicesYubiKeyChalRespTitle": "Desafio-Resposta", + "setDevicesYubiKeyChalRespDesc": "Também é possível usar uma YubiKey em modo desafio-resposta de forma a que parte da palavra-chave usada para encriptar ficheiros reside numa YubiKey.", + "setDevicesYubiKeyChalRespShow": "Mostrar a opção de usar uma YubiKey quando abrindo ficheiros", + "setDevicesYubiKeyStuckWorkaround": "Torne a ligar a YubiKey se parecer que está bloqueado durante o carregamento", + "setDevicesYubiKeyRememberChalResp": "Lembrar desafio-resposta enquanto a app/aplicação está aberta", + "setAboutTitle": "Sobre", + "setAboutBuilt": "Esta aplicação foi criada com estas ferramentas incríveis:", + "setAboutLic": "Licença", + "setAboutLicComment": "Esta aplicação e todos os componentes incluídos, que não sejam do domínio público, estão licenciados sobre a licença MIT", + "setAboutFirst": "Esta aplicação de código aberto foi criada por {}", + "setAboutSecond": "e licenciada sob {}", + "setAboutSource": "O código fonte e problemas podem ser encontrados em {}", + "setHelpFormat": "Formato do Ficheiro", + "setHelpFormatBody": "Esta aplicação é uma conversão de {} com tecnologias web. Interpreta ficheiros no formato KeePass (kdbx). Pode criar ficheiros desse formato (bases de dados de palavras-passe) com o KeePass, ou nesta aplicação. O formato de ficheiro é 100% compatível e deve ser interpretado por ambas as aplicações.", + "setHelpProblems": "Precisa de ajuda?", + "setHelpProblems1": "Se algo correr mal, por favor {}", + "setHelpProblems2": "ou {}", + "setHelpOpenIssue": "reporte um problema no Github", + "setHelpContactLink": "contacte um programador directamente", + "setHelpAppInfo": "Informação da aplicação", + "setHelpOtherPlatforms": "Outras plataformas", + "setHelpDesktopApps": "Aplicações para desktop", + "setHelpWebApp": "Aplicação web", + "setHelpUpdates": "Actualizações", + "setHelpTwitter": "Twitter", + "dropboxSetupDesc": "Algumas configurações são necessárias para utilizar a Dropbox no modo self-hosted. Por favor crie a sua aplicação da Dropbox e insira a sua chave em baixo.", + "dropboxAppKey": "Chave da aplicação da Dropbox", + "dropboxAppKeyDesc": "Copiar a chave da sua aplicação da Dropbox (Configurações de Desenvolvimento)", + "dropboxAppKeyHint": "a sua chave da app/aplicação", + "dropboxAppSecret": "Segredo da app/aplicação Dropbox", + "dropboxAppSecretDesc": "O segredo pode ser encontrado junto à chave da app/aplicação", + "dropboxFolder": "Pasta da aplicação", + "dropboxFolderDesc": "Se a sua aplicação está ligada à sua Dropbox totalmente (não apenas a uma pasta de aplicação), configure a pasta com os seus ficheiros kdbx aqui", + "dropboxFolderSettingsDesc": "Seleccione qualquer pasta na sua Dropbox onde os ficheiros serão armazenados (pasta raíz como padrão)", + "dropboxFolderPlaceholder": "pasta padrão", + "dropboxLink": "Conectar aplicação com", + "dropboxLinkApp": "Pasta de aplicação (Apps/KeeWeb)", + "dropboxLinkFull": "Dropbox completa ou alguma pasta", + "dropboxLinkCustom": "Aplicação Dropbox própria", + "gdriveSharedWithMe": "Partilhado comigo", + "webdavSaveMethod": "Guardar método", + "webdavSaveMove": "Enviar um file/ficheiro temporário e mover", + "webdavSavePut": "Reescrever o file/ficheiro kdbx com PUT", + "webdavNoLastModified": "Último cabeçalho HTTP modificado está ausente", + "webdavStatReload": "Recarregue sempre o file/ficheiro em vez de confiar no último cabeçalho HTTP modificado", + "launcherSave": "Guardar base de dados de palavras-passe", + "launcherFileFilter": "Ficheiros KeePass", + "authPopupRequired": "Pop-ups estão bloqueados", + "authPopupRequiredBody": "Por favor, permita pop-ups para esta aplicação no seu navegador.", + "exportFileInfo": "Informação de file/ficheiro", + "exportHtmlName": "Nome", + "exportHtmlDate": "Exportar data", + "exportGenerator": "Software/programa", + "exportDescription": "Este file/ficheiro é gerado com {}.", + "importCsvTitle": "Importar de CSV", + "importCsvRun": "Importar", + "importIgnoreField": "Ignorar", + "importTo": "Entradas serão importadas para", + "importNewFile": "Novo file/ficheiro", + "yubiKeyStuckError": "Esta YubiKey parece estar encravada, auto reparação pode ser abilitada em parâmetros da app/aplicação.", + "yubiKeyNoKeyHeader": "YubiKey necessária", + "yubiKeyNoKeyBody": "Por favor insira a sua YubiKey com número de série {}", + "yubiKeySlot": "espaço", + "yubiKeyTouchRequestedHeader": "Toque a sua YubiKey", + "yubiKeyTouchRequestedBody": "Por favor toque a sua YubiKey com número de série {}", + "yubiKeyDisabledErrorHeader": "USB está disabilitada", + "yubiKeyDisabledErrorBody": "YubiKey é necessária para abrir este file/ficheiro, por favor ab", + "yubiKeyErrorWithCode": "Erro de YubiKey, código {}", + "bioOpenAuthPrompt": "abrir {}" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/ru-RU/index.html b/keeweb/plugins/translations/ru-RU/index.html new file mode 100644 index 0000000..d5b138f --- /dev/null +++ b/keeweb/plugins/translations/ru-RU/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Русский + + + + +

KeeWeb Language: Русский

+ https://plugins.keeweb.info/translations/ru-RU + + diff --git a/keeweb/plugins/translations/ru-RU/manifest.json b/keeweb/plugins/translations/ru-RU/manifest.json new file mode 100644 index 0000000..d689fc4 --- /dev/null +++ b/keeweb/plugins/translations/ru-RU/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.30.0", + "manifestVersion": "0.1.0", + "name": "language-russian", + "description": "Russian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=ru-RU", + "resources": { + "loc": "A9LHxPFYU8KtS6lOREzZukIiBQTHnuK/NxbphGxDGHJHTSAQ485OCExlgd5FOV8+ujbJlZUJKc0KpNKR7iOG9p/KUs1UkXzTEMSOy5F+C6LG6fDuhElgx2Hm09DnGVoyQbnDhrnDfq55StSPn/4tMk6USRMEFqQmXhSW/VhnNfNhtP/ruDrRtpBMUL5VwBym5Q8/ec1Wn/slkD/529/ztckZ4qCp3ZzpqarZWvoTAMzDAf2jj34DlzQFL/tbILEOMlL16mSj9PQsY6QtIqsNGMALe6Egrbty8jNcIR5kmBe+4vfDQM5Wgc4q+4hefSbcxraSn3XRXOi1yXxAral6hA==" + }, + "locale": { + "name": "ru-RU", + "title": "Русский", + "flag": "🇷🇺" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/ru-RU/ru-RU.json b/keeweb/plugins/translations/ru-RU/ru-RU.json new file mode 100644 index 0000000..d5a318b --- /dev/null +++ b/keeweb/plugins/translations/ru-RU/ru-RU.json @@ -0,0 +1,776 @@ +{ + "retToApp": "назад к приложению", + "name": "имя", + "icon": "значок", + "title": "название", + "password": "пароль", + "user": "логин", + "website": "сайт", + "tags": "теги", + "notes": "заметки", + "entry": "запись", + "group": "группа", + "noTitle": "без названия", + "or": "или", + "history": "история", + "template": "шаблон", + "templates": "шаблоны", + "notImplemented": "Не реализовано", + "saveChanges": "Сохранить изменения", + "discardChanges": "Отменить изменения", + "advanced": "Дополнительно", + "shortcuts": "Горячие клавиши", + "help": "Помощь", + "settings": "Настройки", + "plugins": "Плагины", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "ошибка", + "oneMinute": "Одна минута", + "minutes": "{} минут", + "oneHour": "Один час", + "hours": "{} часов", + "oneDay": "Один день", + "days": "{} дней", + "oneWeek": "Одна неделя", + "oneMonth": "Один месяц", + "oneYear": "Один год", + "cache": "кэш", + "file": "файл", + "device": "устройство", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Диск", + "onedrive": "OneDrive", + "menuAllItems": "Все элементы", + "menuColors": "Цвета", + "menuTrash": "Корзина", + "menuSetGeneral": "Основные", + "menuSetBrowser": "Браузер", + "menuSetAbout": "О программе", + "menuSetDevices": "Устройства", + "menuAlertNoTags": "Нет тегов", + "menuAlertNoTagsBody": "Вы можете добавлять новые теги при редактировании полей, в разделе Теги.", + "menuEmptyTrash": "Очистить корзину", + "menuEmptyTrashAlert": "Очистить корзину?", + "menuEmptyTrashAlertBody": "Ваши данные будут удалены навсегда", + "menuItemCollapsed": "Нажмите дважды, чтобы развернуть", + "menuRestoreApp": "Открыть {}", + "menuQuitApp": "Выйти из {}", + "sysMenuAboutKeeWeb": "О программе {}", + "sysMenuServices": "Сервисы", + "sysMenuHide": "Скрыть {}", + "sysMenuHideOthers": "Скрыть другие", + "sysMenuUnhide": "Показать все", + "sysMenuQuit": "Выйти из {}", + "sysMenuEdit": "Правка", + "sysMenuUndo": "Отменить", + "sysMenuRedo": "Повторить", + "sysMenuCut": "Вырезать", + "sysMenuCopy": "Скопировать", + "sysMenuPaste": "Вставить", + "sysMenuSelectAll": "Выделить все", + "sysMenuWindow": "Окно", + "sysMenuMinimize": "Свернуть", + "sysMenuClose": "Закрыть окно", + "alertYes": "Да", + "alertNo": "Нет", + "alertOk": "ОК", + "alertCancel": "Отмена", + "alertSignIn": "Войти", + "alertCopy": "Скопировать", + "alertClose": "Закрыть", + "alertDoNotAsk": "Больше не спрашивать", + "alertAllow": "Разрешить", + "alertDeny": "Отклонить", + "appBeta": "ПРЕДУПРЕЖДЕНИЕ: бета-версия, только для просмотра", + "footerOpen": "Открыть / Создать", + "footerSyncError": "Ошибка синхронизации", + "footerTitleGen": "Сгенерировать", + "footerTitleLock": "Заблокировать", + "genLen": "Длина", + "genNewPass": "Новый пароль", + "genPresetDefault": "стандартный шаблон", + "genPresetDerived": "как старый пароль", + "genPresetPronounceable": "произносимый", + "genPresetMed": "средней длины", + "genPresetLong": "длинный", + "genPresetPin4": "4-значный PIN", + "genPresetMac": "MAC-адрес", + "genPresetHash128": "128-битный хэш", + "genPresetHash256": "256-битный хэш", + "genHidePass": "Скрыть пароль", + "genShowPass": "Показать пароль", + "grpTitle": "Группа", + "grpSearch": "Включить поиск по элементам в этой группе", + "grpAutoType": "Включить автонабор", + "grpAutoTypeSeq": "Последовательность автонабора", + "grpAutoTypeSeqDefault": "Использовать последовательность автонабора по умолчанию", + "grpTrash": "Удалить группу со всеми элементами", + "tagTitle": "Тег", + "tagTrash": "Удалить тег из всех элементов", + "tagRename": "Переименовать", + "tagTrashQuestion": "Удалить тег из всех элементов?", + "tagTrashQuestionBody": "Этот тег будет удален из всех элементов. Нет простого способа вернуть его.", + "tagExists": "Тег уже существует", + "tagExistsBody": "Тег с таким названием уже существует. Пожалуйста, выберите другое название.", + "tagBadName": "Плохое название", + "tagBadNameBody": "Тег не может содержать следующие символы {}. Пожалуйста, удалите их.", + "genPsTitle": "Шаблоны генератора паролей", + "genPsCreate": "Новый шаблон", + "genPsDelete": "Удалить шаблон", + "genPsNew": "шаблон", + "genPsEnabled": "Показать в списке шаблонов", + "genPsDefault": "Использовать по умолчанию", + "genPsDefaultLength": "Стандартная длина", + "genPsUpper": "Прописные латинские буквы", + "genPsLower": "Строчные латинские буквы", + "genPsDigits": "Цифры", + "genPsSpecial": "Специальные символы", + "genPsBrackets": "Скобки", + "genPsHigh": "Расширенный набор ASCII символов", + "genPsAmbiguous": "Неоднозначные символы", + "genPsInclude": "Дополнительные символы", + "genPsExample": "Пример сгенерированного пароля", + "genPsPattern": "Шаблон", + "genPsPatternHelp": "Шаблоны могут быть использованы для указания пользовательских правил выбора символов. Например, 1-AA будет генерировать пароли, начиная с цифры, за которой следует тире и две буквы. Вы можете использовать эти символы:", + "genPsAllRanges": "Все символы", + "genPsIncluded": "Дополнительные символы, добавленные выше", + "keyChangeTitleRemote": "Мастер-ключ изменен", + "keyChangeMessageRemote": "Мастер-ключ был изменен для этой базы данных. Пожалуйста, введите новый ключ.", + "keyChangeTitleExpired": "Мастер-ключ истек", + "keyChangeMessageExpired": "Действие мастер-ключа для этой базы данных закончилось. Введите новый ключ.", + "keyChangeRepeatPassword": "Пароль еще раз", + "keyEnter": "Вход", + "keyEsc": "Esc", + "iconFavTitle": "Загрузить и использовать иконку сайта", + "iconSelCustom": "Выберите свою иконку", + "listEmptyTitle": "Пусто", + "listEmptyAdd": "добавьте с помощью кнопки {} выше", + "listGroup": "Группа", + "listNoWebsite": "нет сайта", + "listNoUser": "нет логина", + "listNoAttachments": "нет вложений", + "listAddTemplateHeader": "Шаблоны", + "listAddTemplateBody1": "Шаблоны позволяют создавать записи одним щелчком мыши. Добавьте что-нибудь в элемент шаблона, а затем нажмите {} еще раз для использования этого шаблона.", + "listAddTemplateBody2": "Вы всегда можете найти свои шаблоны в группе {}.", + "searchAddNew": "Добавить", + "searchSort": "Сортировать", + "searchCreated": "Дата создания", + "searchUpdated": "Дата изменения", + "searchAttachments": "Вложения", + "searchAZ": "А {} Я", + "searchZA": "Я {} А", + "searchON": "старые {} новые", + "searchNO": "новые {} старые", + "searchShiftClickOr": "shift-click или", + "searchAdvTitle": "Расширенный поиск", + "searchSearchIn": "Искать в", + "searchOther": "Другие поля", + "searchProtect": "Защищенные поля", + "searchOptions": "Настройки", + "searchCase": "С учетом регистра", + "searchRegex": "RegEx", + "searchRank": "Автоматически", + "searchExact": "Точное совпадение", + "openOpen": "Открыть", + "openNew": "Создать", + "openNewFile": "Новый", + "openMore": "Больше", + "openDemo": "Демо", + "openGenerate": "Сгенерировать", + "openXml": "Импорт XML", + "openCaps": "Caps Lock включен", + "openClickToOpen": "Нажмите, чтобы открыть файл", + "openKeyFile": "файл ключа", + "openKeyFileDropbox": "(из Dropbox)", + "openDropHere": "перетащите файлы сюда", + "openFailedRead": "Не удалось прочитать файл", + "openNothingFound": "Ничего не найдено", + "openNothingFoundBody": "Мы не нашли подходящих файлов.", + "openSelectFile": "Выберите файл", + "openSelectFileBody": "Выберите файл, который нужно открыть", + "openPassFor": "Пароль для", + "openRemoveLastQuestion": "Удалить локальный файл?", + "openRemoveLastQuestionBody": "Удаляемый файл хранится только внутри приложения. Удалить его навсегда?", + "openRemoveLastQuestionModBody": "Удаляемый файл имеет локальные модификации. Удалить и отменить эти изменения?", + "openLocalFile": "Локальный файл", + "openLocalFileBody": "Вы собираетесь открыть файл, который будет храниться внутри приложения. Внесенные изменения не будут сохранены в файловой системе. Чтобы получить файл с данными, экспортируйте его из настроек.", + "openLocalFileDontShow": "Больше не показывать это сообщение", + "openWrongFile": "Плохой файл", + "openWrongFileBody": "Данный формат файла не поддерживается. Приложение работает с файлами базы данных KeePass (kdbx).", + "openKdbFileBody": "Вы пытаетесь открыть старый формат файла (KDB). Это приложение поддерживает только новый формат (kdbx). Воспользуйтесь KeePass v2 для конвертации в новый формат.", + "openConfigHeader": "Настройки {}", + "openUrl": "URL", + "openUrlDesc": "https://server/path/file.kdbx, или просто file.kdbx", + "openUser": "Логин", + "openUserDesc": "Пользователь WebDAV (если требуется)", + "openUserPlaceholder": "нет логина", + "openPass": "Пароль", + "openPassDesc": "Пароль сервера WebDAV (это не пароль к вашему файлу)", + "openPassPlaceholder": "нет пароля", + "openConfigError": "Ошибка: {}", + "openConfigErrorNotFound": "Файл не найден", + "openError": "Ошибка", + "openErrorDescription": "Ошибка при открытии файла", + "openErrorDescriptionMaybeTouchIdChanged": "Ошибка похожа на то, что обычно происходит при изменении настроек Touch ID, например, при добавлении или удалении пальца. Если это так, перейдите в «Настройки», отключите Touch ID и снова включите его.", + "openErrorFileNotFound": "Файл не найден", + "openListErrorBody": "При загрузке списка файлов произошла ошибка", + "openShowAllFiles": "Показать все файлы", + "openFileNoCacheError": "Файл не найден в кэше. Это могло произойти из-за очистки хранилища браузера. Для открытия файла удалите его из KeeWeb и добавьте снова.", + "openChalRespHeader": "Вызов-ответ", + "openChalRespLoading": "Загрузка списка YubiKey-устройств", + "openChalRespSelectYubiKey": "Выберите YubiKey который хотите использовать", + "openChalRespErrorEmpty": "YubiKey не найден", + "openChalRespErrorEmptyMac": "В первый раз используете эту опцию на macOS? KeeWeb должен быть добавлен в Мониторинг ввода, в настройках безопасности.", + "detAttDownload": "Нажмите Shift и кликните по вложению чтобы загрузить его или", + "detAttDelToRemove": "Delete для удаления", + "detAttSave": "Сохранить как …", + "detEmpty": "Здесь будут отображаться ваши пароли", + "detGroupRestore": "Чтобы восстановить эту группу, перетащите ее в любую группу вне корзины", + "detHistoryClickPoint": "Щелкните точку на временной шкале, чтобы увидеть состояние записи", + "detHistoryReturn": "вернуться к записи", + "detHistoryRevert": "Вернуть до состояния", + "detHistoryDel": "Удалить состояние", + "detHistoryEmpty": "пусто", + "detHistoryModified": "изменено", + "detHistoryRec": "запись", + "detHistoryRecs": "записи", + "detHistoryVersion": "Версия", + "detHistorySaved": "Сохранено", + "detHistoryNoTitle": "нет названия", + "detHistoryCurState": "текущее состояние", + "detHistoryCurUnsavedState": "текущее несохраненное состояние", + "detHistoryRevertAlert": "Вернуться к этому состоянию истории?", + "detHistoryRevertAlertBody": "Ваше текущее состояние будет сохранено в истории.", + "detHistoryDeleteAlert": "Удалить это состояние истории?", + "detHistoryDeleteAlertBody": "Вы не сможете его восстановить.", + "detHistoryDiscardChangesAlert": "Сбросить изменения, внесенные в запись?", + "detHistoryDiscardChangesAlertBody": "Несохраненные изменения будут потеряны, пути назад не будет.", + "detBackToList": "обратно к списку", + "detSetIconColor": "Изменить цвет", + "detSetIcon": "Изменить иконку", + "detDropAttachments": "перетащите файлы сюда", + "detDelEntry": "Удалить", + "detDelEntryPerm": "Удалить навсегда", + "detExpires": "Истекает", + "detExpired": "истекший", + "detGroup": "Группа", + "detCreated": "Создан", + "detUpdated": "Обновлен", + "detNetField": "Новое поле", + "detAttachments": "Вложения", + "detDelFromTrash": "Удалить из корзины?", + "detDelFromTrashBody": "Вы не сможете отменить эту операцию.", + "detDelFromTrashBodyHint": "Для быстрого удаления всех элементов из корзины, щелкните значок очистки в меню корзины.", + "detDelToTrash": "Удалить запись?", + "detDelToTrashBody": "Запись будет перемещена в корзину.", + "detFieldCopied": "скопирован", + "detFieldCopiedTime": "Скопировано на {} секунд", + "detCopyHint": "Вы можете скопировать значение поля, нажав на его заголовок", + "detMore": "еще", + "detClickToAddField": "щелкните, чтобы добавить новое поле", + "detMenuAddNewField": "Добавить новое поле", + "detMenuAddNewWebsite": "Добавить другой сайт", + "detMenuShowEmpty": "Показать пустые поля", + "detMenuHideEmpty": "Скрыть пустые поля", + "detMenuAddField": "Добавить {}", + "detMenuCopyPassword": "Копировать пароль", + "detMenuCopyUser": "Копировать логин", + "detMenuCopyOtp": "Скопировать одноразовый пароль", + "detSetupOtp": "Одноразовые пароли", + "detClone": "Сделать копию", + "detCopyEntryToClipboard": "Скопировать все поля", + "detClonedName": "Копировать", + "detAutoType": "Автонабор", + "detAutoTypeSettings": "Настройки автонабора", + "detAutoTypeEnabled": "Включить автонабор для этой записи", + "detAutoTypeSequence": "Нажатия клавиш", + "detAutoTypeInput": "Ввод", + "detAutoTypeShortcutsDesc": "{} или {} пока приложение неактивно", + "detAutoTypeObfuscation": "Сочетать реальные нажатия клавиш со случайными", + "detAutoTypeWindow": "Окно", + "detAutoTypeInputWindow": "Заголовок окна", + "detSetupOtpAlert": "Сканировать QR-код", + "detSetupOtpAlertBody": "Скопируйте QR-код, который отображается на странице авторизации.", + "detSetupOtpAlertBody1": "1. перейдите на страницу авторизации", + "detSetupOtpAlertBody2": "2. сделайте скриншот QR-кода {}", + "detSetupOtpAlertBody3": "3. вставьте его здесь {}", + "detSetupOtpAlertBody3Mobile": "3. выберите его или выполните сканирование с помощью камеры нажатием кнопки Выбор/Сканирование ниже", + "detSetupOtpAlertBody4": "Если не удается выполнить сканирование кода, щелкните Ввод кода вручную", + "detSetupOtpManualButton": "Ввод кода вручную", + "detSetupOtpScanButton": "Выбор/Сканирование", + "detSetupOtpAlertBodyWith": "с {}", + "detOtpImageError": "Ошибка чтения изображения", + "detOtpImageErrorBody": "Извините, мы не могли прочитать формат изображения, пожалуйста, свяжитесь с авторами приложения с подробными сведениями об ошибке.", + "detOtpImageReading": "Чтение QR-кода…", + "detOtpQrError": "Ошибка сканирования QR-кода", + "detOtpQrErrorBody": "Извините, мы не могли прочитать QR-код, повторите попытку или обратитесь к авторам приложения с подробными сведениями об ошибке.", + "detOtpQrWrong": "Неверный QR-код", + "detOtpQrWrongBody": "Ваш QR-код был успешно проверен, но он не содержит данных одноразового пароля.", + "detOtpField": "Одноразовый пароль", + "detOtpClickToTouch": "Нажмите, чтобы сгенерировать", + "detOtpGenerating": "Генерация…", + "detOtpTouch": "Прикоснитесь к {}", + "detLockField": "Заблокируйте это поле, чтобы его содержимое не было доступно для поиска и не было видно. Для отображения содержимого потребуется явное нажатие на него.", + "detUnlockField": "Разблокируйте это поле, чтобы сделать его содержимое доступным для поиска и видимым", + "detRevealField": "Показать", + "detHideField": "Скрыть", + "detAutoTypeField": "Автонабор", + "detIssuesHideTooltip": "Скрыть предупреждения", + "detIssueWeakPassword": "Пароль слабый, рекомендуется сменить его.", + "detIssuePoorPassword": "Пароль очень слабый, настоятельно рекомендуется сменить его.", + "detIssuePwnedPassword": "Этот пароль был скомпрометирован в результате утечки данных согласно {}, рекомендуется изменить его.", + "detIssuePasswordCheckError": "При проверке надежности пароля произошла ошибка.", + "detIssueOldPassword": "Старый пароль.", + "detIssueCloseAlertHeader": "Скрыть проблемы с паролем", + "detIssueCloseAlertBody": "Вы можете скрыть это предупреждение разными способами:", + "detIssueCloseAlertEntry": "Не показывать для этой записи", + "detIssueCloseAlertSettings": "Изменить глобальные настройки", + "autoTypeEntryFields": "Поля ввода", + "autoTypeModifiers": "Клавиши-модификаторы", + "autoTypeKeys": "Клавиши", + "autoTypeLink": "подробнее…", + "autoTypeError": "Ошибка автонабора", + "autoTypeErrorGeneric": "Ошибка при выполнении автонабора: {}", + "autoTypeErrorAccessibilityMacOS": "Мы попытались отправить нажатия клавиш в приложение, но кажется это не сработало. Это могло произойти из-за отсутствия разрешений. Нажмите здесь, чтобы узнать больше:", + "autoTypeErrorGlobal": "Для использования глобальных горячих клавиш, сделайте активным окно приложения, в котором хотите ввести пароль", + "autoTypeErrorNotInstalled": "{} не установлен", + "autoTypeHeader": "Автонабор: выберите запись", + "autoTypeMsgNoWindow": "Не удалось получить заголовок активного окна, начните вводить текст для поиска", + "autoTypeMsgMatchedByWindow": "Выберите пароль для {}", + "autoTypeNoMatches": "нет совпадений", + "autoTypeSelectionHint": "Автонабор выбранной записи", + "autoTypeSelectionHintAction": "Заполнить только пароль", + "autoTypeSelectionHintOpt": "Заполнить только логин", + "autoTypeSelectionHintShift": "Другие поля", + "autoTypeSelectionOtp": "Одноразовый пароль", + "autoTypeUnlockMessage": "Разблокировать для автонабора", + "appSecWarn": "Не безопасно!", + "appSecWarnBody1": "Вы загрузили это приложение через незащищенное соединение. Кто-то может наблюдать за вами и украсть ваши пароли. Мы настоятельно рекомендуем вам остановиться, если вы четко не понимаете, что делаете.", + "appSecWarnBody2": "Да, база данных зашифрована, но никто не может гарантировать, что приложение не было изменено в пути к вам.", + "appSecWarnBtn": "Я осознаю риск, продолжить", + "appUnsavedWarn": "Несохраненные изменения!", + "appUnsavedWarnBody": "У вас есть несохраненные файлы, если закрыть приложение, изменения будут утеряны.", + "appDontExitBtn": "Не выходить", + "appCannotLockAutoInit": "Приложение не может быть заблокировано, поскольку опция автосохранения отключена.", + "appCannotLock": "Несохраненные изменения будут утеряны. Продолжить?", + "appAutoSave": "Сохранять изменения автоматически", + "appSaveError": "Ошибка сохранения", + "appSaveErrorBody": "Не удалось автоматически сохранить файл", + "appSaveErrorBodyMul": "Не удалось автоматически сохранить файлы:", + "appSaveErrorExitLoseChanges": "Выйти и потерять все изменения", + "appSaveErrorExitLoseChangesBody": "Вы можете выйти из приложения и потерять все изменения, или перейти в настройки файла, чтобы экспортировать данные", + "appSettingsError": "Ошибка загрузки приложения", + "appSettingsErrorBody": "Произошла ошибка при загрузке настроек приложения. Пожалуйста, дважды проверьте URL-адрес приложения или обратитесь к вашему администратору.", + "appNotSupportedError": "Ваш браузер не поддерживает некоторые важные функции, которые мы используем.", + "appTabWarn": "Слишком много вкладок", + "appTabWarnBody": "Нельзя использовать KeeWeb в двух вкладках браузера одновременно. Пожалуйста, закройте эту вкладку.", + "appRightsAlert": "Блокировка приложения KeeWeb", + "appRightsAlertBody1": "Ваше приложение KeeWeb не защищено от несанкционированных изменений. Предлагаем предоставить разрешение на запись в приложении только администраторам.", + "appRightsAlertBody2": "Не хотите предоставить разрешение? Вы сможете сделать это самостоятельно в Терминале.", + "appBrowserAuthComplete": "Авторизация завершена, вы можете закрыть вкладку.", + "setGenTitle": "Общие настройки", + "setGenUpdate": "Обновление", + "setGenNewVersion": "Новая версия приложения была выпущена и загружена", + "setGenReleaseNotes": "Просмотр примечаний к релизу", + "setGenReloadToUpdate": "Перезагрузить для обновления", + "setGenUpdateManual": "Доступна новая версия. Она сможет проверять наличие обновлений и устанавливать их автоматически, но автоматическое обновление с вашей версии невозможно.", + "setGenDownloadUpdate": "Загрузить обновление", + "setGenUpdateAuto": "Автоматическая загрузка и установка", + "setGenUpdateCheck": "Проверять, но не устанавливать", + "setGenNoUpdate": "Никогда не проверять наличие обновлений", + "setGenUpdateChecking": "Проверка обновлений", + "setGenCheckUpdate": "Проверить обновления", + "setGenErrorChecking": "Ошибка при проверке обновлений", + "setGenLastCheckSuccess": "Последняя успешная проверка была в {}", + "setGenLastCheckVer": "последняя версия была {}", + "setGenCheckedAt": "Проверено", + "setGenLatestVer": "вы используете последнюю версию", + "setGenNewVer": "новая версия {} доступна, выпущена", + "setGenDownloadingUpdate": "Загрузка обновления…", + "setGenExtractingUpdate": "Извлечение обновления…", + "setGenCheckErr": "Произошла ошибка при загрузке новой версии", + "setGenNeverChecked": "Никогда не проверять обновления", + "setGenRestartToUpdate": "Перезапустить приложение для обновления", + "setGenDownloadAndRestart": "Скачать обновление и перезагрузить", + "setGenAppearance": "Внешний вид", + "setGenTheme": "Тема", + "setGenThemeDefault": "По умолчанию", + "setGenThemeDark": "Темная", + "setGenThemeLight": "Светлая", + "setGenThemeBlue": "Flat blue", + "setGenThemeFb": "Синяя", + "setGenThemeBl": "Light blue", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Темно-коричневая", + "setGenThemeLb": "Light brown", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Терминал", + "setGenThemeLt": "Terminal light", + "setGenThemeHighContrast": "Высококонтрастная", + "setGenThemeHc": "Высокая контрастность", + "setGenThemeDc": "Темный контраст", + "setGenThemeSol": "Solarized", + "setGenThemeSd": "Выцветшая темная", + "setGenThemeSl": "Выцветшая светлая", + "setGenMoreThemes": "Другие темы", + "setGenAutoSwitchTheme": "Автоматически менять светлую и темную тему, когда это возможно", + "setGenLocale": "Язык", + "setGenLocOther": "другие языки доступны в качестве подключаемых модулей", + "setGenFontSize": "Размер шрифта", + "setGenFontSizeNormal": "Нормальный", + "setGenFontSizeLarge": "Большой", + "setGenFontSizeLargest": "Огромный", + "setGenTitlebarStyle": "Стиль окна (требуется перезапуск)", + "setGenTitlebarStyleDefault": "По умолчанию", + "setGenTitlebarStyleHidden": "Пользовательский заголовок", + "setGenTitlebarStyleHiddenInset": "Пользовательский заголовок, перетаскиваемое окно", + "setGenShowSubgroups": "Показать записи из всех подгрупп", + "setGenTableView": "Табличное представление списка записей", + "setGenColorfulIcons": "Красочные иконки в списке", + "setGenUseMarkdown": "Markdown в заметках", + "setGenUseGroupIconForEntries": "Автоматически использовать иконку группы для новых записей.", + "setGenDirectAutotype": "Если найдена только одна подходящая запись, выбирать ее для автонабора автоматически", + "setGenFunction": "Поведение", + "setGenAutoSyncOnClose": "Автоматически сохранять и синхронизировать при закрытии", + "setGenAutoSyncTimer": "Автоматически сохранять и периодически синхронизировать", + "setGenAutoSyncTimerOff": "Отключено", + "setGenAutoSyncTimerInterval": "Каждые {} минуты", + "setGenRememberKeyFiles": "Запоминать ключевые файлы", + "setGenNoRememberKeyFiles": "Не запоминать", + "setGenRememberKeyFilesData": "Хранить во внутреннем хранилище приложения", + "setGenRememberKeyFilesPath": "Помнить только путь к ключевому файлу", + "setGenLockInactive": "Если приложение неактивно", + "setGenNoAutoLock": "Не блокировать", + "setGenLockMinutes": "Через {} минут", + "setGenLockHour": "Через час", + "setGenLockHours": "Через {} часов", + "setGenLockDay": "Через день", + "setGenClearClip": "Очистка буфера обмена после копирования", + "setGenNoClear": "Не очищать", + "setGenClearSeconds": "Через {} секунд", + "setGenClearMinute": "Через минуту", + "setGenMinInstead": "Свернуть приложение вместо закрытия", + "setGenMinOnFieldCopy": "Свернуть после копирования поля", + "setGenLock": "Авто-блокировка", + "setGenLockMinimize": "Когда приложение свернуто", + "setGenLockCopy": "После копирования пароля", + "setGenLockAutoType": "После автонабора", + "setGenLockOrSleep": "Когда компьютер заблокирован или отправлен в сон", + "setGenStorage": "Хранилище", + "setGenDisableOfflineStorage": "Не кэшировать загруженные файлы в офлайн хранилище", + "setGenShortLivedStorageToken": "Использовать короткие сессии в облачных хранилищах", + "setGenStorageLogout": "Выйти", + "setGenShowAdvanced": "Показать дополнительные настройки", + "setGenDevTools": "Инструменты разработчика", + "setGenTryBeta": "Попробовать бета-версию до перезагрузки", + "setGenTryBetaWarning": "Несохраненные файлы", + "setGenTryBetaWarningBody": "Сохраните все файлы и снова нажмите эту кнопку", + "setGenShowAppLogs": "Журнал приложения", + "setGenReloadApp": "Перезагрузить приложение", + "setGenFieldLabelDblClickAutoType": "Автонабор по двойному клику в названии полей", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Не использовать Touch ID", + "setGenTouchIdMemory": "Разблокировка с помощью Touch ID только при запущенном KeeWeb", + "setGenTouchIdFile": "Всегда использовать Touch ID вместо мастер-пароля", + "setGenTouchIdPass": "Запрашивать мастер-пароль после", + "setGenAudit": "Аудит", + "setGenAuditPasswords": "Показывать предупреждения о надежности пароля", + "setGenAuditPasswordEntropy": "Проверить случайность и длину пароля", + "setGenExcludePinsFromAudit": "Никогда не проверять короткие числовые PIN-коды, например 123456.", + "setGenCheckPasswordsOnHIBP": "Проверить пароли с помощью онлайн-сервиса {}", + "setGenHelpHIBP": "С помощью онлайн-сервиса KeeWeb может проверить, были ли ваши пароли ранее раскрыты в результате утечки данных. Ваш пароль не может быть восстановлен на основе данных, отправленных по сети. Однако может быть раскрыто количество проверенных паролей. Узнать больше о конфиденциальности при использовании этого сервиса можно здесь {}. Если опция включена, KeeWeb будет автоматически проверять пароли.", + "setGenHelpHIBPLink": "здесь", + "setGenAuditPasswordAge": "Старые пароли", + "setGenAuditPasswordAgeOff": "Не показывать предупреждения о старых паролях", + "setGenAuditPasswordAgeOneYear": "Показывать предупреждения для паролей старше 1 года", + "setGenAuditPasswordAgeYears": "Показывать предупреждения для паролей старше {} лет", + "setFilePath": "Путь к файлу", + "setFileStorage": "Это файл загружен из {}.", + "setFileIntl": "Этот файл хранится во внутренней памяти приложения", + "setFileLocalHint": "Хотите работать с локальными файлами?", + "setFileDownloadApp": "Загрузите приложение", + "setFileSave": "Сохранить", + "setFileSaveTo": "Сохранить как …", + "setFileClose": "Закрыть", + "setFileSync": "Синхронизация", + "setFileSyncVerb": "Синхронизировать", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Последняя синхронизация", + "setFileLastSyncUnknown": "неизвестно", + "setFileSyncInProgress": "синхронизация выполняется", + "setFileSyncError": "Ошибка синхронизации", + "setFilePass": "Мастер-пароль", + "setFileConfirmPass": "Подтвердить мастер-пароль", + "setFilePassChange": "чтобы изменить пароль, введите его в поле «Подтвердить»", + "setFilePassChanged": "ваш пароль был изменен; оставьте поле пустым, чтобы использовать старый пароль", + "setFilePassNotMatch": "пароли не совпадают, пожалуйста, введите еще раз", + "setFileKeyFile": "Ключевой файл", + "setFileSelKeyFile": "Выберите ключевой файл", + "setFileNames": "Название", + "setFileDefUser": "Логин по умолчанию", + "setFileEnableTrash": "Включить корзину", + "setFileHistMode": "История записи", + "setFileHistLimited": "Удалять старые записи автоматически", + "setFileHistDisabled": "Не сохранять историю", + "setFileHistUnlimited": "Хранить историю всегда", + "setFileHistLen": "Длина истории, число изменений для каждой записи", + "setFileHistSize": "Размер журнала, общий объем на файл (МБ)", + "setFileBackups": "Резервирование", + "setFileBackupEnable": "Резервное копирование этого файла", + "setFileBackupPath": "Путь к резервной копии", + "setFileBackupTime": "Создание резервных копий", + "setFileBackupNow": "Создать копию", + "setFileBackupNowWorking": "Выполняется…", + "setFileBackupError": "Ошибка резервного копирования", + "setFileBackupErrorDescription": "Ошибка при записи файла резервной копии", + "setFileBackupErrorIsDir": "Неверный путь к резервной копии", + "setFileBackupErrorIsDirDescription": "Кажется, путь к резервной копии указывает на каталог. Пожалуйста, укажите имя файла внутри каталога.", + "setFileBackupOnSave": "Каждый раз при сохранении файла", + "setFileBackupDaily": "Ежедневно", + "setFileBackupWeekly": "Еженедельно", + "setFileBackupMonthly": "Ежемесячно", + "setFileBackupManually": "Только вручную", + "setFileRounds": "Раундов шифрования ключа", + "setFileKdfParams": "Функция деривации ключа", + "setFileKdfParamsIter": "Итераций", + "setFileKdfParamsMem": "Память, КБ", + "setFileKdfParamsPar": "Параллельность", + "setFileKeyChangeForce": "Запросить изменение ключа после (дней)", + "setFileUseKeyFile": "Использовать ключевой файл", + "setFileUseGenKeyFile": "Использовать сгенерированный ключевой файл", + "setFileUseOldKeyFile": "Использовать прежний ключевой файл", + "setFileGenKeyFile": "Создать новый ключевой файл", + "setFileDontUseKeyFile": "Не использовать ключевой файл", + "setFileEmptyPass": "Пустой пароль", + "setFileEmptyPassBody": "Сохранение базы данных с пустым паролем делает ее полностью незащищенной. Вы действительно хотите это сделать?", + "setFileSaveError": "Ошибка при сохранении", + "setFileSaveErrorBody": "Ошибка сохранения файла", + "setFileAlreadyExists": "Уже существует", + "setFileAlreadyExistsBody": "Файл {} уже существует. Перезаписать его?", + "setFileUnsaved": "Несохраненные изменения", + "setFileUnsavedBody": "В этом файле есть несохраненные изменения", + "setFileCloseNoSave": "Закрыть и потерять изменения", + "setFileDontClose": "Не закрывать", + "setFileFormatVersion": "Формат файла", + "setFileExportRaw": "Экспорт паролей", + "setFileExportRawBody": "Экспортированный файл будет содержать ваши пароли в незашифрованном виде. Продолжить?", + "setFileDeviceIntro": "Одноразовые пароли из {} будут отображаться в приложении.", + "setFileDeviceSettings": "Настройки", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Не использовать YubiKey", + "setFileRefreshYubiKeyList": "Обновить список", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Использование YubiKey как часть мастер-ключа может быть опасно, и вы можете потерять ваши пароли, если что-то пойдет не так. Хотите ли вы сделать копию вашего файла перед изменением этой настройки?", + "setFileYubiKeyErrorEmptyMac": "Кажется подключен YubiKey, но его не видно. Для доступа к ключам YubiKey KeeWeb должен быть добавлен в мониторинг ввода, в настройках безопасности.", + "setShTitle": "Горячие клавиши", + "setShShowAll": "показать все элементы", + "setShColors": "показать элементы этого цвета", + "setShTrash": "перейти в корзину", + "setShFind": "поиск или просто начните вводить", + "setShClearSearch": "очистить поиск", + "setShCopyPass": "скопировать пароль или выбранное поле", + "setShCopyUser": "скопировать логин", + "setShCopyUrl": "скопировать сайт", + "setShAutoType": "автонабор выбранной записи", + "setShPrev": "перейти к предыдущей записи", + "setShNext": "перейти к следующей записи", + "setShCreateEntry": "создать запись", + "setShOpen": "открыть / создать", + "setShSave": "сохранить все файлы", + "setShGen": "создать пароль", + "setShSet": "настройки приложения", + "setShCopyPassGlobal": "скопировать пароль", + "setShCopyOtp": "скопировать OTP", + "setShAutoTypeGlobal": "автонабор", + "setShCopyPassOnly": "скопировать пароль", + "setShRestoreApp": "открыть {}", + "setShGlobal": "Эти системные горячие клавиши работают, когда приложение запущено в фоновом режиме. Вы можете нажать на них, чтобы выбрать свою собственную комбинацию.", + "setShLock": "заблокировать базу данных", + "setShEdit": "Нажмите новую комбинацию клавиш", + "setPlInstallTitle": "Установить новые плагины", + "setPlInstallDesc": "Плагины для KeeWeb добавляют новые функции, темы и языки. Плагины работают с теми же привилегиями, что и KeeWeb, они могут получить доступ ко всем вашим паролям и управлять ими. Никогда не устанавливайте плагины, которым вы не доверяете.", + "setPlInstallLabel": "URL-адрес плагина", + "setPlInstallBtn": "Установить", + "setPlInstallBtnProgress": "Установка", + "setPlUninstallBtn": "Удалить", + "setPlDisableBtn": "Отключить", + "setPlEnableBtn": "Включить", + "setPlUpdateBtn": "Обновить", + "setPlLocaleBtn": "Переключиться на этот язык", + "setPlThemeBtn": "Переключиться на эту тему", + "setPlJs": "код", + "setPlCss": "стили", + "setPlLoc": "язык", + "setPlCreatedBy": "Создано {}", + "setPlLoadTime": "потребовалось {} для загрузки", + "setPlLastUpdate": "Последняя проверка обновлений", + "setPlLoadError": "ошибка при загрузке плагина", + "setPlGalleryLoading": "Загрузка плагинов, пожалуйста подождите немного", + "setPlGalleryLoadError": "Ошибка при загрузке плагинов", + "setPlInstallUrlTitle": "Добавить плагин по ссылке", + "setPlInstallUrlDesc": "Если плагин отсутствует в галерее, его можно установить вручную, указав URL-адрес", + "setPlOfficial": "Официальный плагин KeeWeb", + "setPlSearch": "Поиск плагинов", + "setPlDevelop": "Хотите создать собственные плагины?", + "setPlDevelopStart": "Начните здесь", + "setPlTranslate": "Также вы можете {}", + "setPlTranslateLink": "перевести приложение на ваш язык", + "setPlAutoUpdate": "Обновлять автоматически", + "setPlLoadGallery": "Загрузить галерею плагинов", + "setBrowserTitle": "Браузер", + "setBrowserIntroDesktop": "KeeWeb может вводить пароли используя автонабор. Однако, расширение для браузера может быть более удобным. KeeWeb поддерживает два расширения:", + "setBrowserIntroKeeWebConnect": "официальное расширение KeeWeb, сделанное с учетом его функциональности. Но вы можете упустить некоторые дополнительные возможности, доступные в другом расширении.", + "setBrowserIntroKeePassXcBrowser": "это расширение разработано для KeePassXC. Давно существует и весьма надежно. Но данное расширение не часть KeeWeb, и из-за этого могут быть проблемы с совместимостью.", + "setBrowserIntroWeb": "Установите наше расширение для браузера, чтобы автоматически заполнять пароли из KeeWeb на разных страницах. Расширение может подключаться к вкладке KeeWeb в вашем браузере для поиска паролей. Нажмите здесь, чтобы загрузить его:", + "setBrowserNotEnabled": "Интеграция браузера не включена, расширения не могут подключится к KeeWeb. Используйте чекбоксы ниже, чтобы включить их:", + "setBrowserEnablePerBrowser": "Включить интеграцию с браузером используя чекбоксы ниже:", + "setBrowserFocusIfLocked": "Когда нет открытого файла, то открыть KeeWeb, если расширение для браузера пытается подключится", + "setBrowserFocusIfEmpty": "Показывать экран выбора записи, если нет совпадений по URL", + "setBrowserOtherBrowsers": "Другие браузеры", + "setBrowserExtensionFor": "для {}", + "setBrowserExtensionNotSupported": "Не поддерживается", + "setBrowserExtensionHelp": "Как установить?", + "setBrowserExtensionInstall": "Установить расширение", + "setBrowserExtensionKPXCWarnHeader": "{} перестал работать", + "setBrowserExtensionKPXCWarnBody1": "К сожалению, невозможно подключить одно расширение к нескольким приложениям. Если вы подключите расширение к KeeWeb, мы перезапишем его привязку к приложению, а это значит, что интеграция с {} перестанет работать. Даже если вы снимите этот чекбокс, связь с {} не будет восстановлена. Чтобы он снова заработал, настройте интеграцию браузера в настройках {}.", + "setBrowserExtensionKPXCWarnBody2": "Настроить расширение для использования KeeWeb?", + "setBrowserSessions": "Сессии", + "setBrowserSessionsEmpty": "Нет подключенных сессий.", + "setBrowserSessionsIntro": "Эти расширения сейчас подключены к KeeWeb.", + "setBrowserSessionsActiveTooltip": "Активная сессия", + "setBrowserSessionsActiveText": "Эта сессия активна. Она может обмениваться данными с KeeWeb, на основе этих разрешений:", + "setBrowserSessionsInactiveTooltip": "Неактивная сессия", + "setBrowserSessionsInactiveText": "Эта сессия неактивна. Расширение подключено к KeeWeb, но не пыталось обмениваться данными. Когда расширение запрашивает что-либо, вы можете выбрать, чем хотите поделиться.", + "setBrowserSessionsDeniedTooltip": "Доступ запрещен", + "setBrowserSessionsDeniedText": "Эта сессия неактивна. Расширение подключено к KeeWeb, но вы запретили доступ к данным.", + "setBrowserSessionsConnectedDate": "Подключена", + "setBrowserSessionsTerminate": "Закрыть эту сессию", + "setBrowserSessionsAccessToFiles": "Разрешить доступ к файлам", + "setBrowserSessionsNoFileAccess": "Расширение не имеет доступа ни к одному файлу, оно не сможет получить пароли из KeeWeb.", + "setBrowserSessionsPasswordsRead": "Прочитано паролей", + "setBrowserSessionsPasswordsWritten": "Сохранено паролей", + "setDevicesTitle": "Устройства", + "setDevicesEnableUsb": "Включить взаимодействие с USB-устройствами", + "setDevicesYubiKeyIntro": "Перед использованием YubiKey рекомендуется прочитать {}.", + "setDevicesYubiKeyIntroLink": "этот документ", + "setDevicesYubiKeyToolsDesc": "Чтобы использовать YubiKey в этом режиме, вам необходимо установить {}.", + "setDevicesYubiKeyToolsDesc2": "{}, чтобы получить дополнительную информацию об этом инструменте.", + "setDevicesYubiKeyToolsDescLink": "Нажмите здесь", + "setDevicesYubiKeyToolsStatusChecking": "Проверка, установлен ли {}", + "setDevicesYubiKeyToolsStatusOk": "{} установлен", + "setDevicesYubiKeyToolsStatusError": "{} не установлен или не работает", + "setDevicesYubiKeyOtpTitle": "Одноразовые пароли", + "setDevicesYubiKeyOtpDesc": "YubiKey можно использовать для генерации одноразовых паролей к различным сервисам.", + "setDevicesYubiKeyOtpShowIcon": "Показывать значок на стартовом экране", + "setDevicesYubiKeyOtpAutoOpen": "Автоматически загружать одноразовые пароли при наличии открытых файлов", + "setDevicesYubiKeyOtpMatchEntries": "Показать совпадающие одноразовые пароли в записях", + "setDevicesYubiKeyChalRespTitle": "Вызов-Ответ", + "setDevicesYubiKeyChalRespDesc": "Также можно использовать YubiKey в режиме «вызов-ответ», чтобы часть закрытого ключа, используемого для шифрования файлов, находилась на YubiKey.", + "setDevicesYubiKeyChalRespShow": "Показать возможность использования YubiKey при открытии файлов", + "setDevicesYubiKeyStuckWorkaround": "Переподключить YubiKey, если кажется, что он завис во время загрузки", + "setDevicesYubiKeyRememberChalResp": "Помнить вызов-ответ, пока приложение открыто", + "setAboutTitle": "О", + "setAboutBuilt": "KeeWeb создан при помощи этих потрясающих инструментов", + "setAboutLic": "Лицензия", + "setAboutLicComment": "Это приложение и все входящие в него компоненты лицензируются по лицензии MIT, если не указано иное", + "setAboutFirst": "Это приложение с открытым исходным кодом, созданное {}", + "setAboutSecond": "под лицензией {}.", + "setAboutSource": "Исходный код и обсуждение на {}.", + "setHelpFormat": "Формат файла", + "setHelpFormatBody": "Это портированная версия {}, созданная на основе веб-технологий. Она совместима с файлами формата KeePass (kdbx). Файлы базы данных паролей можно создавать как в KeePass, так и в этом приложении. Формат файла на 100% совместим и должен быть понятен обоим приложениям.", + "setHelpProblems": "Нужна помощь?", + "setHelpProblems1": "Если что-то пойдет не так, пожалуйста, {}", + "setHelpProblems2": "или {}", + "setHelpOpenIssue": "откройте проблему на GitHub", + "setHelpContactLink": "обратитесь непосредственно к разработчику", + "setHelpAppInfo": "Информация о приложении", + "setHelpOtherPlatforms": "Другие платформы", + "setHelpDesktopApps": "Классические приложения", + "setHelpWebApp": "Веб-приложение", + "setHelpUpdates": "Обновления", + "setHelpTwitter": "Twitter", + "dropboxSetupDesc": "Для использования Dropbox в автономном приложении требуется дополнительная настройка. Создайте собственное приложение Dropbox и введите его ключ ниже.", + "dropboxAppKey": "Ключ приложения Dropbox", + "dropboxAppKeyDesc": "Скопируйте ключ из собственного приложения Dropbox (настройки для разработчиков)", + "dropboxAppKeyHint": "ключ вашего приложения", + "dropboxAppSecret": "Секрет приложения Dropbox", + "dropboxAppSecretDesc": "Секрет можно найти рядом с ключом приложения", + "dropboxFolder": "Папка приложения", + "dropboxFolderDesc": "Если ваше приложения связано с целым хранилищем Dropbox (а не с отдельной папкой), укажите здесь папку с файлами kdbx", + "dropboxFolderSettingsDesc": "Выберите любую папку в Dropbox, где будут храниться файлы (корневая папка по умолчанию)", + "dropboxFolderPlaceholder": "папка по умолчанию", + "dropboxLink": "Связать приложение с", + "dropboxLinkApp": "Папка приложения (Приложения/KeeWeb)", + "dropboxLinkFull": "Весь Dropbox или любая папка", + "dropboxLinkCustom": "Собственное приложение Dropbox", + "gdriveSharedWithMe": "Доступные мне", + "gdriveSharedDrives": "Общие диски", + "gdriveTeamDrives": "Общие диски", + "webdavSaveMethod": "Метод сохранения", + "webdavSaveMove": "Отправка временного файла и перемещение", + "webdavSavePut": "Перезаписать файл kdbx с помощью PUT", + "webdavNoLastModified": "HTTP-заголовок Last-Modified отсутствует", + "webdavStatReload": "Всегда перезагружать файл вместо того, чтобы полагаться на HTTP-заголовок Last-Modified", + "launcherSave": "Сохранение паролей базы данных", + "launcherFileFilter": "Файлы KeePass", + "authPopupRequired": "Всплывающие окна заблокированы", + "authPopupRequiredBody": "Разрешите всплывающие окна в вашем браузере или попробуйте снова.", + "exportFileInfo": "Информация о файле", + "exportHtmlName": "Имя", + "exportHtmlDate": "Дата экспорта", + "exportGenerator": "Программное обеспечение", + "exportDescription": "Этот файл генерируется с помощью {}.", + "importCsvTitle": "Импорт из CSV", + "importCsvRun": "Импорт", + "importIgnoreField": "Игнорировать", + "importTo": "Записи будут импортированы в", + "importNewFile": "Новый файл", + "yubiKeyStuckError": "Похоже, что YubiKey завис. Автовосстановление можно включить в настройках приложения.", + "yubiKeyNoKeyHeader": "Необходим YubiKey", + "yubiKeyNoKeyBody": "Вставьте YubiKey с серийным номером {}", + "yubiKeySlot": "слот", + "yubiKeyTouchRequestedHeader": "Прикоснитесь к YubiKey", + "yubiKeyTouchRequestedBody": "Прикоснитесь к YubiKey с серийным номером {}", + "yubiKeyDisabledErrorHeader": "USB отключён", + "yubiKeyDisabledErrorBody": "YubiKey необходим для открытия этого файла, включите USB-устройства в настройках.", + "yubiKeyErrorWithCode": "Ошибка YubiKey, код {}.", + "bioOpenAuthPrompt": "открыть \"{}\"", + "extensionErrorNoOpenFiles": "Нет открытых файлов", + "extensionErrorUserRejected": "Запрос был отклонен", + "extensionErrorNoMatches": "Нет подходящих логинов", + "extensionErrorAlertDisplayed": "Невозможно задать вопрос сейчас, потому что отображается другое диалоговое окно, попробуйте еще раз", + "extensionConnectHeader": "Обмен данными с расширением", + "extensionConnectIntro": "Расширение браузера, идентифицирующее себя как {}, пытается обменяться данными с KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb не проверяет, является ли подключенное приложение тем, за кого себя выдает. Одобряйте запрос, только если вы распознаете эту активность.", + "extensionConnectFiles": "В этой сессии, разрешить доступ к:", + "extensionConnectAllOtherFiles": "Все остальные файлы", + "extensionConnectAllFiles": "Все файлы", + "extensionConnectAskGet": "Спрашивать, прежде чем передавать пароли расширению:", + "extensionConnectAskGetMultiple": "если найдено более одного совпадения", + "extensionConnectAskGetAlways": "всегда", + "extensionConnectAskSave": "Спрашивать, прежде чем сохранять новые пароли в KeeWeb:", + "extensionConnectAskSaveAlways": "всегда", + "extensionConnectAskSaveAuto": "когда невозможно сохранить автоматически", + "extensionConnectSettingsAreForSession": "Выбранные здесь настройки действительны только для активной сессии. Вы можете просматривать и управлять сессиями в настройках KeeWeb.", + "extensionUnlockMessage": "Разблокируйте, чтобы подключить расширение браузера", + "extensionNewGroupHeader": "Новая группа", + "extensionNewGroupBody": "{} пытается создать новую группу. Разрешить это?", + "extensionNewGroupPath": "Путь к группе", + "extensionNewGroupFile": "Эта группа будет создана в:", + "extensionSaveEntryHeader": "Сохранить пароль", + "extensionSaveEntryBody": "{} пытается сохранить пароль. Разрешить это?", + "extensionSaveEntryAuto": "Сохранять другие пароли автоматически в этой сессии", + "extensionSaveEntryNewGroup": "новая группа", + "extensionSelectPasswordFor": "Выберите пароль для {}", + "selectEntryHeader": "Выберите запись", + "selectEntryEnterHint": "использовать выбранную запись", + "selectEntryTypingHint": "Начните вводить, чтобы отфильтровать", + "selectEntryContains": "Содержит текст", + "selectEntrySubdomains": "Поддомены", + "selectEntryFieldHeader": "Выберите поле", + "selectEntryFieldTouch": "Нажмите кнопку на своем устройстве, чтобы сгенерировать одноразовый пароль." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/sk/index.html b/keeweb/plugins/translations/sk/index.html new file mode 100644 index 0000000..fa12315 --- /dev/null +++ b/keeweb/plugins/translations/sk/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Slovenčina + + + + +

KeeWeb Language: Slovenčina

+ https://plugins.keeweb.info/translations/sk + + diff --git a/keeweb/plugins/translations/sk/manifest.json b/keeweb/plugins/translations/sk/manifest.json new file mode 100644 index 0000000..de9b130 --- /dev/null +++ b/keeweb/plugins/translations/sk/manifest.json @@ -0,0 +1,21 @@ +{ + "version": "1.11.0", + "manifestVersion": "0.1.0", + "name": "language-slovak", + "description": "Slovak language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=sk", + "resources": { + "loc": "aXUmLWoqGRn4ibrRB6i3HTIcgbDnwtomVbQPbZQY6t+8TerxMX83cMXiNf1qwimS6pykRFFDe00CQfLiULik2h91oYj3Ig7ZjgPkMD2oU7oyHZef5O7RQ3v6sTMSu/aHRVf1f7dsEKiWa1IMO70EmRNrmXN+D3wHUC4zoGJprwmqnMTG+WoUo2gTWagrEMvg9PJskf3dVtdwrwzYXbUx7+T6c5iZChGBu247PWaNJzGRa+rHLvMzgUxkyQk7CSkomJkd0rf0WpE4/vDarFGwh1JHHVTeRLQGoAWwHeQ2txMubbANR/5SH2IamMyoaaHXcTw7JEEBfp9TTGixx9+seA==" + }, + "locale": { + "name": "sk", + "title": "Slovenčina" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/sk/sk.json b/keeweb/plugins/translations/sk/sk.json new file mode 100644 index 0000000..e4685f3 --- /dev/null +++ b/keeweb/plugins/translations/sk/sk.json @@ -0,0 +1,702 @@ +{ + "retToApp": "návrat do aplikácie", + "name": "meno", + "icon": "ikona", + "title": "názov", + "password": "heslo", + "user": "používateľ", + "website": "webstránka", + "tags": "štítky", + "notes": "poznámky", + "entry": "záznam", + "group": "skupina", + "noTitle": "bez názvu", + "or": "alebo", + "history": "história", + "template": "šablóna", + "templates": "Šablóny", + "notImplemented": "Neimplementované", + "saveChanges": "Uložiť zmeny", + "discardChanges": "Zahodiť zmeny", + "advanced": "Pokročilé", + "shortcuts": "Skratky", + "help": "Nápoveda", + "settings": "Nastavenia", + "plugins": "Rozšírenia", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "chyba", + "oneMinute": "minúta", + "minutes": "{} minút", + "oneHour": "hodine", + "hours": "{} hodinách", + "oneDay": "dni", + "days": "{} dňoch", + "oneWeek": "týždni", + "oneMonth": "mesiaci", + "oneYear": "roku", + "cache": "cache", + "file": "súbor", + "device": "zariadenie", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Všetky záznamy", + "menuColors": "Farby", + "menuTrash": "Kôš", + "menuSetGeneral": "Všeobecné", + "menuSetAbout": "O aplikácii", + "menuSetDevices": "Zariadenia", + "menuAlertNoTags": "Bez štítkov", + "menuAlertNoTagsBody": "Môžete pridať nové štítky počas editácie polí v sekcii Štítky", + "menuEmptyTrash": "Vyprázdniť kôš", + "menuEmptyTrashAlert": "Vyprázdniť kôš?", + "menuEmptyTrashAlertBody": "Nebude možné vrátiť záznamy späť", + "menuItemCollapsed": "Rozbaliť dvojklikom", + "menuRestoreApp": "Otvoriť {}", + "menuQuitApp": "Ukončiť {}", + "sysMenuAboutKeeWeb": "O {}", + "sysMenuServices": "Služby", + "sysMenuHide": "Skryť {}", + "sysMenuHideOthers": "Skryť ostatné", + "sysMenuUnhide": "Zobraziť všetky", + "sysMenuQuit": "Ukončiť {}", + "sysMenuEdit": "Upraviť", + "sysMenuUndo": "Krok späť", + "sysMenuRedo": "Vykonať znovu", + "sysMenuCut": "Vystrihnúť", + "sysMenuCopy": "Kopírovať", + "sysMenuPaste": "Vložiť", + "sysMenuSelectAll": "Vybrať všetko", + "sysMenuWindow": "Okno", + "sysMenuMinimize": "Minimalizovať", + "sysMenuClose": "Zavrieť Okno", + "alertYes": "Áno", + "alertNo": "Nie", + "alertOk": "OK", + "alertCancel": "Zrušiť", + "alertSignIn": "Prihlásiť", + "alertCopy": "Kopírovať", + "alertClose": "Zavrieť", + "alertDoNotAsk": "Viac sa nepýtať", + "appBeta": "UPOZORNENIE: beta verzia, len pre náhľad", + "footerOpen": "Otvoriť / Nový", + "footerSyncError": "Chyba synchronizácie", + "footerTitleGen": "Generovať", + "footerTitleLock": "Zamknúť", + "genLen": "Dĺžka", + "genNewPass": "Nové heslo", + "genPresetDefault": "Predvolené", + "genPresetDerived": "ako staré heslo", + "genPresetPronounceable": "vysloviteľné", + "genPresetMed": "stredne dlhé", + "genPresetLong": "dlhé", + "genPresetPin4": "4-čísla PIN", + "genPresetMac": "MAC adresa", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "genHidePass": "Skryť heslo", + "genShowPass": "Zobraziť heslo", + "grpTitle": "Skupina", + "grpSearch": "Povoliť vyhľadávanie záznamov v tejto skupine", + "grpAutoType": "Povoliť auto-type", + "grpAutoTypeSeq": "Auto-type sekvencia", + "grpAutoTypeSeqDefault": "Použiť predvolenú auto-type sekvenciu", + "grpTrash": "Vymazať skupinu aj s jej záznamami", + "tagTitle": "Štítok", + "tagTrash": "Odstrániť štítok zo všetkých záznamov", + "tagRename": "Premenovať", + "tagTrashQuestion": "Odstrániť štítok zo všetkých záznamov?", + "tagTrashQuestionBody": "Štítok bude odstránený zo všetkých záznamov. Nebude jednoduché ho vrátiť späť.", + "tagExists": "Štítok už existuje", + "tagExistsBody": "Štítok s týmto menom už existuje. Prosím vyberte iné meno.", + "tagBadName": "Zlé meno", + "tagBadNameBody": "Názov štítka nemôže obsahovať znak {}. Prosím odstráňte ho.", + "genPsTitle": "Šablóna generátora", + "genPsCreate": "Nová šablóna", + "genPsDelete": "Odstrániť šablónu", + "genPsNew": "šablóna", + "genPsEnabled": "Zobraziť v zozname šablón", + "genPsDefault": "Predvolená šablóna", + "genPsDefaultLength": "Predvolená dĺžka", + "genPsUpper": "Veľké písmená", + "genPsLower": "Malé písmená", + "genPsDigits": "Čísla", + "genPsSpecial": "Špeciálne znaky", + "genPsBrackets": "Zátvorky", + "genPsHigh": "ACII znaky", + "genPsAmbiguous": "Zameniteľené znaky", + "genPsInclude": "Dodatočné znaky", + "genPsExample": "Príklad generovaného hesla", + "genPsPattern": "Vzor", + "genPsPatternHelp": "Vzor môže byť použitý pre špecifikáciu vlastných pravidiel pre výber znakov. Napríklad, 1-AA vygeneruje heslo začínajúce číslom, nasledované pomlčkou a dvoma písmenami. Môžete použiť tieto symboly:", + "genPsAllRanges": "Všetky symboly", + "genPsIncluded": "Dodatočné symboly pridané vyššie", + "keyChangeTitleRemote": "Hlavný kľúč bolo zmenený", + "keyChangeMessageRemote": "Hlavný kľúč databázy bol zmenený. Prosím vložte nový kľúč.", + "keyChangeTitleExpired": "Hlavný kľúč exspiroval", + "keyChangeMessageExpired": "Hlavný kľúč databázy je exspirovaný. Prosím vložte nový kľúč.", + "keyChangeRepeatPassword": "Heslo, znovu", + "keyEnter": "Vložiť", + "iconFavTitle": "Stiahnuť a použiť ikonku webstránky", + "iconSelCustom": "Vybrať vlastnú ikonku", + "listEmptyTitle": "Prázdne", + "listEmptyAdd": "pridať tlačidlom {}", + "listGroup": "Skupina", + "listNoWebsite": "žiadna webstránka", + "listNoUser": "žiadny používateľ", + "listNoAttachments": "žiadne prílohy", + "listAddTemplateHeader": "Šablóny", + "listAddTemplateBody1": "Šablóny umožňujú vytvoriť záznamy jedným klikom. Pridajte niečo do šablóny a znovu kliknite na {} pre použitie šablóny.", + "listAddTemplateBody2": "Vždy môžete nájsť svoje šablóny v skupine {}.", + "searchAddNew": "Pridať nový", + "searchSort": "Zoradiť", + "searchCreated": "Vytvorené", + "searchUpdated": "Upravené", + "searchAttachments": "Prílohy", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Staré {} Nové", + "searchNO": "Nové {} Staré", + "searchShiftClickOr": "shift-klik alebo", + "searchAdvTitle": "Pokročilé vyhľadávanie", + "searchSearchIn": "Vyhľadávať v", + "searchOther": "Ďalšie polia", + "searchProtect": "Zabezpečené polia", + "searchOptions": "Možnosti", + "searchCase": "Rozlišovať veľkosť", + "searchRegex": "Reg. výraz", + "searchRank": "Auto", + "searchExact": "Presne", + "openOpen": "Otvoriť", + "openNew": "Nový", + "openNewFile": "Novy", + "openMore": "Viac", + "openDemo": "Demo", + "openGenerate": "Generovať", + "openXml": "Importovať XML", + "openCaps": "Caps Lock zapnuté", + "openClickToOpen": "Kliknutím otvoríte súbor", + "openKeyFile": "súbor kľúča", + "openKeyFileDropbox": "(z dropbox-u)", + "openDropHere": "pustiť súbor tu", + "openFailedRead": "Nemožno načítať súbor", + "openNothingFound": "Nič nenájdené", + "openNothingFoundBody": "Žiadne súbory nemôžu byť otvorené.", + "openSelectFile": "Vyberte súbor", + "openSelectFileBody": "Vyberte súbor, ktorý chcete otvoriť", + "openPassFor": "Heslo pre", + "openRemoveLastQuestion": "Vymazať lokálny súbor?", + "openRemoveLastQuestionBody": "Súbor, ktorý mažete je uložený len v aplikácii. Zmazať natrvalo?", + "openRemoveLastQuestionModBody": "Súbor, ktorý mažete má lokálne zmeny. Zmazať súbor a zrušiť tieto zmeny?", + "openLocalFile": "Lokálny súbor", + "openLocalFileBody": "Chystáte sa otvoriť súbor, ktorý bude uložený vo vnútri aplikácie. Zmeny, ktoré vykonáte nebudú uložené späť na súborový systém. Pre získanie súboru s dátami použite export v nastaveniach.", + "openLocalFileDontShow": "Znovu nezobrazovať", + "openWrongFile": "Zlý súbor", + "openWrongFileBody": "Formát súboru nie je podporovaný. Aplikácia pracuje s formátom KeePass databázy (kdbx).", + "openKdbFileBody": "Otvárate starý formát súboru (KDB). Aplikácia podporuje len nový formát (kdbx), prosím použite KeePass v2 na konvertovanie.", + "openConfigHeader": "{} Nastavenia", + "openUrl": "URL", + "openUrlDesc": "https://server/path/subor.kdbx, alebo file.kdbx", + "openUser": "Používateľ", + "openUserDesc": "WebDAV server používateľ (ak je požadované)", + "openUserPlaceholder": "žiadny používateľ", + "openPass": "Heslo", + "openPassDesc": "WebDAV server heslo (nie je heslo súboru)", + "openPassPlaceholder": "žiadne heslo", + "openConfigError": "Chyba: {}", + "openConfigErrorNotFound": "Súbor nenájdený", + "openError": "Chyba", + "openErrorDescription": "Chyba pri otváraní súboru", + "openErrorDescriptionMaybeTouchIdChanged": "Chyba zvyčajne nastáva, keď sa zmenia nastavenia Touch ID, napríklad, pridanie alebo odobratie prsta. Ak je to tento prípad, prejdite do Nastavení a zakážte a znovu povoľte Touch ID.", + "openErrorFileNotFound": "Súbor nenájdený", + "openListErrorBody": "Chyba čítania zoznamu súborov", + "openShowAllFiles": "Zobraziť všetky súbory", + "openFileNoCacheError": "Súbor nenájdený v cache úložisku. Toto môže nastať ak je vyčistené úložisko prehliadača. Odstránte súbor z KeeWeb a pridajte ho znovu.", + "openChalRespHeader": "Challenge-Response", + "openChalRespLoading": "Načítavanie zoznamu YubiKeys", + "openChalRespSelectYubiKey": "Vyberte YubiKey, ktorý chete použiť", + "openChalRespErrorEmpty": "YubiKeys neboli nájdené.", + "openChalRespErrorEmptyMac": "Prvýkrát používate túto funkciu v macOS? KeeWeb musí byť pridaný do Input Monitoringu v sekcii nastavenia bezpečnosti.", + "detAttDownload": "Stiahnuť pomocou shift-klik na tlačidlo prílohy alebo", + "detAttDelToRemove": "Zmazať", + "detAttSave": "Uložiť ako ...", + "detEmpty": "Vaše heslo sa zobrazí tu", + "detGroupRestore": "Pre obnovenie tejto skupiny ju potiahnite na akúkoľvek skupinu mimo koša.", + "detHistoryClickPoint": "Kliknite na časovú os pre zobrazenie histórie", + "detHistoryReturn": "späť na záznam", + "detHistoryRevert": "Návrat do minulosti", + "detHistoryDel": "Zmazať históriu", + "detHistoryEmpty": "prázdne", + "detHistoryModified": "zmenené", + "detHistoryRec": "záznam", + "detHistoryRecs": "záznamy", + "detHistoryVersion": "Verzia", + "detHistorySaved": "Uložené", + "detHistoryNoTitle": "bez názvu", + "detHistoryCurState": "aktuálny stav", + "detHistoryCurUnsavedState": "aktuálny neuložený stav", + "detHistoryRevertAlert": "Návrat k tomuto historickému stavu?", + "detHistoryRevertAlertBody": "Váš aktuálny stav bude uložený do histórie.", + "detHistoryDeleteAlert": "Zmazať tento historický stav?", + "detHistoryDeleteAlertBody": "Nebude možné obnoviť.", + "detHistoryDiscardChangesAlert": "Zrušiť zmeny na zázname?", + "detHistoryDiscardChangesAlertBody": "Neuložené zmeny sa stratia, nebude možné sa vrátiť.", + "detBackToList": "späť do zoznamu", + "detSetIconColor": "Zmeniť farbu", + "detSetIcon": "Zmeniť ikonu", + "detDropAttachments": "pustiť prílohu tu", + "detDelEntry": "Zmazať", + "detDelEntryPerm": "Zmazať natrvalo", + "detExpires": "Exspiruje", + "detExpired": "exspirovaný", + "detGroup": "Skupina", + "detCreated": "Vytvorené", + "detUpdated": "Zmenené", + "detNetField": "Nové Pole", + "detAttachments": "Prílohy", + "detDelFromTrash": "Zmazať z koša", + "detDelFromTrashBody": "Nebudete môcť vrátiť späť.", + "detDelFromTrashBodyHint": "Kliknite na ikonu Vyprázdniť v menu Kôš pre rýchle zmazanie všetkých záznamov z koša.", + "detDelToTrash": "Zmazať záznam?", + "detDelToTrashBody": "Záznam bude presunutý do adresára kôš.", + "detFieldCopied": "Skopírované", + "detFieldCopiedTime": "Skopírované na {} sekúnd", + "detCopyHint": "Kliknutím na názov poľa skopírujete jeho hodnotu", + "detMore": "viac", + "detClickToAddField": "kliknite na pridanie nového poľa", + "detMenuAddNewField": "Pridať nové pole", + "detMenuShowEmpty": "Zobraziť prázdne polia", + "detMenuHideEmpty": "Skryť prázdne polia", + "detMenuAddField": "Pridať {}", + "detMenuCopyPassword": "Kopírovať heslo", + "detMenuCopyUser": "Kopírovať používateľa", + "detMenuCopyOtp": "Skopírovať jednorázový kód", + "detSetupOtp": "Jednorázové kódy", + "detClone": "Vytvoriť kópiu", + "detCopyEntryToClipboard": "Kopírovať všetky polia", + "detClonedName": "Kopírovať", + "detAutoType": "Auto-type", + "detAutoTypeSettings": "Nastavenia auto-type", + "detAutoTypeEnabled": "Povoliť auto-type pre tento záznam", + "detAutoTypeSequence": "Poradie kláves", + "detAutoTypeInput": "Vstup", + "detAutoTypeShortcutsDesc": "{} alebo {} keď je aplikácia neaktívna.", + "detAutoTypeObfuscation": "Zmiešať reálne stlačenia kláves s náhodnými", + "detAutoTypeWindow": "Okno", + "detAutoTypeInputWindow": "Názov okna", + "detSetupOtpAlert": "Skenovať QR kód", + "detSetupOtpAlertBody": "Prosím, skopírujte QR kód zobrazený na autorizačnej stránke.", + "detSetupOtpAlertBody1": "1. prejdite na autorizačnú stránku", + "detSetupOtpAlertBody2": "2. spravte snímok obrazovky QR kódu {}", + "detSetupOtpAlertBody3": "3. vložte ho sem {}", + "detSetupOtpAlertBody3Mobile": "3. vyberte alebo naskenujte vašou kamerou použitím tlačidla Vybrať/Skenovať nižšie", + "detSetupOtpAlertBody4": "Ak nemôžete skenovať kód, kliknite Vložiť kód manuálne", + "detSetupOtpManualButton": "Vložiť kód manuálne", + "detSetupOtpScanButton": "Vybrať/Skenovať", + "detSetupOtpAlertBodyWith": "s {}", + "detOtpImageError": "Chyba čítania obrázku", + "detOtpImageErrorBody": "Je nám ľúto, nemôžeme načítať formát obrázku, prosím kontaktujte tvorcu aplikácie s detailami chyby.", + "detOtpImageReading": "Čítanie QR kódu...", + "detOtpQrError": "Chyba skenovania QR kódu", + "detOtpQrErrorBody": "Je nám ľúto, nemôžeme načítať QR kód, prosím skúste to znovu, alebo kontaktujte tvorcu aplikácie s detailami chyby.", + "detOtpQrWrong": "Nesprávny QR kód", + "detOtpQrWrongBody": "QR kód úspešne naskenovaný, ale neobsahuje dáta jednorázového kódu.", + "detOtpField": "Jednorázový kód", + "detOtpClickToTouch": "Kliknutím vygenerovať", + "detOtpGenerating": "Generovanie...", + "detOtpTouch": "Dotknite sa svojho {}", + "detLockField": "Zamknúť toto pole, jeho obsah nebude vyhľadateľný a viditeľný. Zobrazenie obsahu vyžaduje explicitné kliknutie.", + "detUnlockField": "Odomknúť toto pole, obsah bude vyhľadateľný a viditeľný", + "detRevealField": "Odhaliť", + "detHideField": "Skryť", + "detAutoTypeField": "Auto type", + "detIssuesHideTooltip": "Skryť toto upozornenie", + "detIssueWeakPassword": "Heslo je slabé, odporúčame zmeniť ho.", + "detIssuePoorPassword": "Heslo je veľmi slabé, dôrazne odporúčame zmeniť ho.", + "detIssuePwnedPassword": "Toto heslo sa nachádza v zozname prelomených hesiel podľa {}, je odporúčané ho zmeniť.", + "detIssuePasswordCheckError": "Pri online overení sily hesla nastala chyba.", + "detIssueOldPassword": "Heslo je staré.", + "detIssueCloseAlertHeader": "Skryť problémy s heslom", + "detIssueCloseAlertBody": "Sú rôzne spôsoby ako skryť tieto upozornenia:", + "detIssueCloseAlertEntry": "Nezobrazovať pre tento záznam", + "detIssueCloseAlertSettings": "Prispôsobiť globálne nastavenia", + "autoTypeEntryFields": "Polia záznamu", + "autoTypeModifiers": "Špeciálne klávesy", + "autoTypeKeys": "Klávesy", + "autoTypeLink": "viac...", + "autoTypeError": "Chyba auto-type", + "autoTypeErrorGeneric": "Chyba počas vykonávania auto-type: {}", + "autoTypeErrorAccessibilityMacOS": "Snažili sme sa poslať stlačenia klávesov do aplikácie, ale zrejme to nezafungovalo. Môže to byť spôsobené chýbajúcimi oprávneniami, kliknutím sem sa dočítate viac informácií:", + "autoTypeErrorGlobal": "Pre použitie globálnych skratiek, prosím kliknite do aplikácie, kde chcete heslo zadať.", + "autoTypeErrorNotInstalled": "{} nie je nainštalovaný", + "autoTypeHeader": "Auto-Type: Vybrať", + "autoTypeMsgNoWindow": "Nie je možné nájsť aktívne okno, pre spustenie hľadania, žačnite písať", + "autoTypeMsgMatchedByWindow": "Vybrať heslo pre {}", + "autoTypeNoMatches": "žiadna zhoda", + "autoTypeSelectionHint": "Napíšte autotype sekvenciu", + "autoTypeSelectionHintAction": "Napíšte len heslo", + "autoTypeSelectionHintOpt": "Napíšte len používateľské meno", + "autoTypeSelectionHintShift": "Ďalšie polia", + "autoTypeSelectionOtp": "Jednorázový kód", + "appSecWarn": "Nezabezpečené!", + "appSecWarnBody1": "Spustili ste aplikáciu s nezabezpečeným pripojením. Niekto môže čítať váš obsah a ukradnúť vaše heslá. Odporúčame prestať, pokiaľ si nebudete istý, čo robíte.", + "appSecWarnBody2": "Áno, vaša databáza je zakryptovaná, ale nikto negarantuje, že aplikácia nebola cestou k vám zmenená.", + "appSecWarnBtn": "Rozumiem rizikám, chcem pokračovať", + "appUnsavedWarn": "Neuložené zmeny!", + "appUnsavedWarnBody": "Máte neuložené súbory, ak zavriete aplikáciu, zmeny stratíte.", + "appDontExitBtn": "Neodchádzať", + "appCannotLockAutoInit": "Aplikácia nemôže byť zamknutá, lebo automatické ukladanie je zakázené.", + "appCannotLock": "Máte neuložené zmeny, ktoré sa stratia. Pokračovať?", + "appAutoSave": "Uložiť zmeny automaticky", + "appSaveError": "Chyba uloženia", + "appSaveErrorBody": "Automatické uloženie súboru zlyhalo", + "appSaveErrorBodyMul": "Automatické uloženie súborov zlyhalo:", + "appSaveErrorExitLoseChanges": "Ukončiť a stratiť všetky zmeny.", + "appSaveErrorExitLoseChangesBody": "Môžete buď ukončiť aplikáciu a stratiť všetky zmeny, alebo ísť do nastavení súborov a exportovať dáta.", + "appSettingsError": "Chyba načítania aplikácie", + "appSettingsErrorBody": "Chyba načítania nastavení aplikácie. Prosím overte dvakrát URL aplikácie alebo kontaktujte svojho administrátora.", + "appNotSupportedError": "Váš prehliadač nepodporuje niektoré dôležite funkcie, ktoré používame.", + "appTabWarn": "Príliš veľa tabov", + "appTabWarnBody": "KeeWeb nemožno použiť na dvoch taboch naraz, prosím zatvorte tento tab.", + "appRightsAlert": "Zamykanie KeeWeb aplikácie", + "appRightsAlertBody1": "Vaša aplikácia KeeWeb nie je aktuálne chránená proti neautorizovaným zmenám. Žiadame si oprávnenia, aby aplikácia bola zapisovateľná len pre administrátorov.", + "appRightsAlertBody2": "Nechcete poskytnúť oprávnenia? Môžete to urobit pomocou Terminálu.", + "appBrowserAuthComplete": "Overenie kompletné, môžete zavrieť tento tab.", + "setGenTitle": "Všeobecné Nastavenia", + "setGenUpdate": "Aktualizácia", + "setGenNewVersion": "Bola vydaná a stiahnutá nová verzia aplikácie", + "setGenReleaseNotes": "Zobraziť poznámky k vydaniu", + "setGenReloadToUpdate": "Aktualizujte stránku", + "setGenUpdateManual": "Bola vydaná nová verzia. Kontrola a aktualizácia prebieha automaticky, ale automatická aktualizácia z vašej verzie nie je možná.", + "setGenDownloadUpdate": "Stiahnuť aktualizáciu", + "setGenUpdateAuto": "Stiahnuť a nainštalovať automaticky", + "setGenUpdateCheck": "Skontrolovať, ale neinštalovať", + "setGenNoUpdate": "Nikdy nekontrolovať aktualizácie", + "setGenUpdateChecking": "Kontrolujem aktualizácie", + "setGenCheckUpdate": "Skontrolovať aktualizácie", + "setGenErrorChecking": "Chyba kontroly aktualizácií", + "setGenLastCheckSuccess": "Posledná kontrola v {}", + "setGenLastCheckVer": "posledná verzia bola {}", + "setGenCheckedAt": "Kontrolované v", + "setGenLatestVer": "používate aktuálnu verziu", + "setGenNewVer": "nová verzia {} dostupná, uvoľnená", + "setGenDownloadingUpdate": "Sťahovanie aktualizácie...", + "setGenExtractingUpdate": "Rozbaľovanie aktualizácie...", + "setGenCheckErr": "Chyba pri sťahovaní novej verzie", + "setGenNeverChecked": "Nikdy nekontrolovať aktualizácie", + "setGenRestartToUpdate": "Pre aktualizáciu reštartujte KeeWeb", + "setGenDownloadAndRestart": "Stiahnuť aktualizáciu a reštartovať", + "setGenAppearance": "Vzhľad", + "setGenTheme": "Téma", + "setGenThemeDefault": "Predvolená", + "setGenThemeDark": "Tmavá", + "setGenThemeLight": "Svetlá", + "setGenThemeBlue": "Fádna modrá", + "setGenThemeFb": "Tmavomodrá", + "setGenThemeBl": "Svetlomodrá", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Tmavá hnedá", + "setGenThemeLb": "Svetlohnedá", + "setGenThemeTerminal": "Terminál", + "setGenThemeTe": "Terminál", + "setGenThemeLt": "Svetlý terminál", + "setGenThemeHighContrast": "Vysoký kontrast", + "setGenThemeHc": "Vysoký kontrast", + "setGenThemeDc": "Tmavý kontrast", + "setGenThemeSol": "Solarizovaná", + "setGenThemeSd": "Preexponovaná tmavá", + "setGenThemeSl": "Preexponovaná svetlá", + "setGenMoreThemes": "Viac tém", + "setGenAutoSwitchTheme": "Automaticky prepínať medzi svetlou a tmavou témou, keď je to možné", + "setGenLocale": "Jazyk", + "setGenLocOther": "ďalšie jazyky sú dostupné ako doplnok", + "setGenFontSize": "Veľkosť písma", + "setGenFontSizeNormal": "Normálne", + "setGenFontSizeLarge": "Veľké", + "setGenFontSizeLargest": "Najväčšie", + "setGenTitlebarStyle": "Štýl okna (vyžaduje reštart)", + "setGenTitlebarStyleDefault": "Predvolené", + "setGenTitlebarStyleHidden": "Vlastný názov", + "setGenTitlebarStyleHiddenInset": "Vlastný názov, potiahnuteľné okno", + "setGenShowSubgroups": "Zobraziť záznamy zo všetkých podskupín", + "setGenTableView": "Tabuľkové zobrazenie záznamov", + "setGenColorfulIcons": "Farebné vlastné ikony", + "setGenUseMarkdown": "Markdown v poznámkach", + "setGenUseGroupIconForEntries": "Automaticky použiť ikonku skupiny pre nové záznamy", + "setGenDirectAutotype": "Ak je nájdený len jeden zhodný záznam, vyber ho automaticky pre Autotype", + "setGenFunction": "Funkcia", + "setGenAutoSyncOnClose": "Automaticky ulož a synchronizuj pri zatvorení", + "setGenAutoSyncTimer": "Pravideľne automaticky ulož a synchronizuj", + "setGenAutoSyncTimerOff": "Zakázané", + "setGenAutoSyncTimerInterval": "Každých {} minút", + "setGenRememberKeyFiles": "Zapamätať súbory kľúčov", + "setGenNoRememberKeyFiles": "Nezapamätať", + "setGenRememberKeyFilesData": "Uchovávať v internej pamäti aplikácie", + "setGenRememberKeyFilesPath": "Zapamätať len cestu k súborom kľúčov", + "setGenLockInactive": "Ak je aplikácia neaktívna", + "setGenNoAutoLock": "Nezamykať automaticky", + "setGenLockMinutes": "Za {} minút", + "setGenLockHour": "Za hodinu", + "setGenLockHours": "Za {} hodín", + "setGenLockDay": "Po dni", + "setGenClearClip": "Vyčistiť schránku po skopírovaní", + "setGenNoClear": "Nevyčistiť", + "setGenClearSeconds": "Za {} sekúnd", + "setGenClearMinute": "Za minútu", + "setGenMinInstead": "Minimalizovať aplikáciu namiesto zatvorenia", + "setGenMinOnFieldCopy": "Minimalizovať po skopírovaní pola", + "setGenLock": "Automatické zamykanie", + "setGenLockMinimize": "Keď je aplikácia minimalizovaná", + "setGenLockCopy": "Po skopírovaní hesla", + "setGenLockAutoType": "Po auto-type", + "setGenLockOrSleep": "Keď je počítač zamknutý alebo uspaný", + "setGenStorage": "Úložisko", + "setGenDisableOfflineStorage": "Neukladať nahraté súbory do offline úložiska", + "setGenShortLivedStorageToken": "Použiť krátkodobé relácie pre poskytovateľov cloudového úložiska", + "setGenStorageLogout": "Odhlásiť", + "setGenShowAdvanced": "Zobraziť pokročilé nastavenia", + "setGenDevTools": "Zobraziť vývojárske nástroje", + "setGenTryBeta": "Vyskúšať beta verziu do reštartu", + "setGenTryBetaWarning": "Neuložené súbory", + "setGenTryBetaWarningBody": "Prosím uložte všetky súbory a kliknite na tlačidlo znovu", + "setGenShowAppLogs": "Zobraziť logy", + "setGenReloadApp": "Reštartovať aplikáciu", + "setGenFieldLabelDblClickAutoType": "Auto-type dvojitým kliknutím na popis pola", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Nepoužívať Touch ID", + "setGenTouchIdMemory": "Odomknúť s Touch ID len keď je KeeWeb spustený", + "setGenTouchIdFile": "Vždy použiť Touch ID namiesto hlavného hesla", + "setGenTouchIdPass": "Vyžadovať hlavné heslo po", + "setGenAudit": "Audit", + "setGenAuditPasswords": "Zobrazovať upozornenia o sile hesla", + "setGenAuditPasswordEntropy": "Overiť dĺžku hesla a náhodnosť", + "setGenExcludePinsFromAudit": "Neoverovať krátke číselné PIN kódy, ako sú 123456", + "setGenCheckPasswordsOnHIBP": "Overiť heslo pomocou online služby {}", + "setGenHelpHIBP": "KeeWeb môže overiť, či heslo nebolo prelomené pomocou online služby. Vaše heslo nemôže byť obnovené na základe dát poslaných online, každopádne počet overení hesiel môže byť viditeľné. Viac o vašom súkromí pri použití tejto služby nájdete {}. Ak je táto voľba zapnutá, KeeWeb bude automaticky overovať vaše heslá.", + "setGenHelpHIBPLink": "tu", + "setGenAuditPasswordAge": "Staré heslá", + "setGenAuditPasswordAgeOff": "Nezobrazovať upozornenia o starých heslách", + "setGenAuditPasswordAgeOneYear": "Zobraziť upozornenia pre heslá staršie ako jeden rok", + "setGenAuditPasswordAgeYears": "Zobraziť upozornenia pre heslá staršie ako {} rok(y)", + "setFilePath": "Cesta k súboru", + "setFileStorage": "Súbor je načítaný z {}.", + "setFileIntl": "Súbor je uložený v internom úložisku aplikácie", + "setFileLocalHint": "Chcete pracovať bezproblémovo s lokálnymi súbormi?", + "setFileDownloadApp": "Stiahnite si desktopovú aplikáciu", + "setFileSave": "Uložiť", + "setFileSaveTo": "Uložiť do ...", + "setFileClose": "Zatvoriť", + "setFileSync": "Sync.", + "setFileSyncVerb": "Sync.", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Posledná synchronizácia", + "setFileLastSyncUnknown": "neznáme", + "setFileSyncInProgress": "prebieha synchronizácia", + "setFileSyncError": "Chyba synchronizácie", + "setFilePass": "Hlavné heslo", + "setFileConfirmPass": "Potvrdiť hlavné heslo", + "setFilePassChange": "pre zmenu hesla, vyplňte ho prosím do poľa Potvrdiť", + "setFilePassChanged": "vaše heslo bolo zmenené; pre použitie starého hesla ponechajte pole prázdne", + "setFilePassNotMatch": "heslá sa nezhodujú, vyplňte ich prosím znovu", + "setFileKeyFile": "Súbor kľúča", + "setFileSelKeyFile": "Vyberte súbor kľúča", + "setFileNames": "Mená", + "setFileDefUser": "Predvolený používateľ", + "setFileEnableTrash": "Povoliť kôš", + "setFileHistMode": "História záznamov", + "setFileHistLimited": "Zmazať historické záznamy automaticky", + "setFileHistDisabled": "Neukladať históriu", + "setFileHistUnlimited": "Uchovať históriu záznamov", + "setFileHistLen": "Dĺžka histórie, uchovať posledný záznam pre údaj", + "setFileHistSize": "Veľkosť histórie, celkovo MB pre súbor", + "setFileBackups": "Zálohy", + "setFileBackupEnable": "Zálohuj súbor", + "setFileBackupPath": "Cesta k zálohe", + "setFileBackupTime": "Vytváraj zálohy", + "setFileBackupNow": "Zálohuj teraz", + "setFileBackupNowWorking": "Pracujem...", + "setFileBackupError": "Chyba zálohovania", + "setFileBackupErrorDescription": "Chyba zápisu záložného súboru", + "setFileBackupErrorIsDir": "Neplatná cesta k zálohe", + "setFileBackupErrorIsDirDescription": "Cesta k zálohe sa zrejme odkazuje k adresáru. Prosím špecifikujte názov súboru vo vnútri adresára.", + "setFileBackupOnSave": "Vždy keď uložím súbor", + "setFileBackupDaily": "Denne", + "setFileBackupWeekly": "Týždenne", + "setFileBackupMonthly": "Mesačne", + "setFileBackupManually": "Manuálne", + "setFileRounds": "Počet kôl kryptovania kľúča", + "setFileKdfParams": "Funkcia derivovania kľúča", + "setFileKdfParamsIter": "Iterácie", + "setFileKdfParamsMem": "Pamäť, KB", + "setFileKdfParamsPar": "Paralelizmus", + "setFileKeyChangeForce": "Požiadať o zmenu kľúča po (dňoch)", + "setFileUseKeyFile": "Použiť súbor kľúča", + "setFileUseGenKeyFile": "Použiť generovaný súbor kľúča", + "setFileUseOldKeyFile": "Použiť starý súbor kľúča", + "setFileGenKeyFile": "Vygenerovať nový súbor kľúča", + "setFileDontUseKeyFile": "Nepoužívať súbor kľúča", + "setFileEmptyPass": "Prázdne heslo", + "setFileEmptyPassBody": "Uložiť databázu bez hesla ju robí nechránenou. Naozaj to chcete urobiť?", + "setFileSaveError": "Chyba uloženia", + "setFileSaveErrorBody": "Chyba pri ukladaní súboru", + "setFileAlreadyExists": "Už existuje", + "setFileAlreadyExistsBody": "Súbor {} už existuje. Prepísať?", + "setFileUnsaved": "Neuložené zmeny", + "setFileUnsavedBody": "Súbor obsahuje neuložené zmeny", + "setFileCloseNoSave": "Zavrieť a zahodiť zmeny", + "setFileDontClose": "Nezatvoriť", + "setFileFormatVersion": "Formát súboru", + "setFileExportRaw": "Exportovanie vašich hesiel", + "setFileExportRawBody": "Exportovaný súbor bude obsahovať vaše heslá a nebudú enkryptované. Chcete pokračovať?", + "setFileDeviceIntro": "Jednorázové kódy z tohto {} budú zobrazené v applikácii.", + "setFileDeviceSettings": "Nastavenia", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Nepoužiť YubiKey", + "setFileRefreshYubiKeyList": "Obnoviť zoznam", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Používať YubiKey ako súčasť hlavného kľúča je nebezpečné a môžete stratiť prístup k vašim heslám ak sa niečo pokazí. Vykonali ste zálohu súborov pred zmenou týchto nastavení?", + "setFileYubiKeyErrorEmptyMac": "Zdá sa, že je vložený YubiKey, ale nie je viditeľný. Pre prístup k YubiKey, KeeWeb musí byť pridaný do Input Monitoringu v sekcii nastavenia bezpečnosti.", + "setShTitle": "Skratky", + "setShShowAll": "zobraziť všetky záznamy", + "setShColors": "zobraziť záznamy s farbou", + "setShTrash": "ísť do koša", + "setShFind": "hľadať, alebo začať písať", + "setShClearSearch": "vyčistiť vyhľadávanie", + "setShCopyPass": "kopírovať heslo alebo vybrané pole", + "setShCopyUser": "kopírovať používateľa", + "setShCopyUrl": "kopírovať webstránku", + "setShAutoType": "auto-type vybraného záznamu", + "setShPrev": "ísť na predošlý záznam", + "setShNext": "ísť na nasledujúci záznam", + "setShCreateEntry": "vytvoriť záznam", + "setShOpen": "otvoriť / nový", + "setShSave": "uložiť všetky súbory", + "setShGen": "generovať heslo", + "setShSet": "nastavenia aplikácie", + "setShCopyPassGlobal": "kopírovať heslo", + "setShCopyOtp": "kopírovať OTP", + "setShAutoTypeGlobal": "auto-type", + "setShCopyPassOnly": "kopírovať heslo", + "setShRestoreApp": "otvoriť {}", + "setShGlobal": "Tieto globálne skratky fungujú, keď aplikácia beží na pozadí. Kliknutím si môžete zvoliť vlastnú skratku.", + "setShLock": "zamknúť databázu", + "setShEdit": "Stlačte novú kombináciu kláves pre nastavenie skratky", + "setPlInstallTitle": "Inštalovať nový doplnok", + "setPlInstallDesc": "KeeWeb doplnky pridávajú funkcie, témy a jazyky do KeeWeb. Doplnky bežia s rovnakými oprávnaniami ako KeeWeb, môžu pristupovať a spravovať všetky vaše heslá. Nikdy neinštalujte doplnky, ktorým nedôverujete.", + "setPlInstallLabel": "URL doplnku", + "setPlInstallBtn": "Inštalovať", + "setPlInstallBtnProgress": "Inštalácia", + "setPlUninstallBtn": "Odinštalovať", + "setPlDisableBtn": "Zakázať", + "setPlEnableBtn": "Povoliť", + "setPlUpdateBtn": "Aktualizovať", + "setPlLocaleBtn": "Prepnúť jazyk", + "setPlThemeBtn": "Prepnúť tému", + "setPlJs": "kód", + "setPlCss": "štýly", + "setPlLoc": "jazyk", + "setPlCreatedBy": "Vytvoril {}", + "setPlLoadTime": "zaberie {} pre načítanie", + "setPlLastUpdate": "Posledná kontrola aktualizácií", + "setPlLoadError": "chyba načítania doplnku", + "setPlGalleryLoading": "Načítavania doplnkov, prosím počkajte", + "setPlGalleryLoadError": "Chyba načítavania doplnkov", + "setPlInstallUrlTitle": "Pridať doplnok z URL", + "setPlInstallUrlDesc": "Ak doplnok nie je v galérii, môžete ho nainštalovať ručne z URL", + "setPlOfficial": "Oficiálny KeeWeb doplnok", + "setPlSearch": "Vyhľadať doplnky", + "setPlDevelop": "Chcete vyvíjať vlastné doplnky?", + "setPlDevelopStart": "Začnite tu", + "setPlTranslate": "Alebo môžete {}", + "setPlTranslateLink": "preložiť aplikáciu do vášho jazyka", + "setPlAutoUpdate": "Aktualizovať automaticky", + "setPlLoadGallery": "Načítať galériu doplnkov", + "setDevicesTitle": "Zariadenia", + "setDevicesEnableUsb": "Povoliť interakciu s USB zariadeniami", + "setDevicesYubiKeyIntro": "Je odporúčané prečítať {} pred použitím YubiKey.", + "setDevicesYubiKeyIntroLink": "tento dokument", + "setDevicesYubiKeyToolsDesc": "Aby bolo možné použiť YubiKey v tomto móde, musíte nainštalovať tool {}.", + "setDevicesYubiKeyToolsDesc2": "{} pre získanie viac informácií o tomto toole.", + "setDevicesYubiKeyToolsDescLink": "Kliknite", + "setDevicesYubiKeyToolsStatusChecking": "Kontrola, či {} je nainštalovaný", + "setDevicesYubiKeyToolsStatusOk": "{} je nainštalovaný", + "setDevicesYubiKeyToolsStatusError": "{} nie je nainštalovaný alebo nefunguje", + "setDevicesYubiKeyOtpTitle": "Jednorázové kódy", + "setDevicesYubiKeyOtpDesc": "YubiKey môže byť použitý na vygenerovanie jednorázového kódu pre rôzne služby.", + "setDevicesYubiKeyOtpShowIcon": "Zobraziť ikonu na úvodnej obrazovke", + "setDevicesYubiKeyOtpAutoOpen": "Automaticky načítať jednorázové kódy ak sú otvorené súbory", + "setDevicesYubiKeyOtpMatchEntries": "Zobraziť zhodné jednorázové kódy v záznamoch", + "setDevicesYubiKeyChalRespTitle": "Challenge-Response", + "setDevicesYubiKeyChalRespDesc": "YubiKey je tiež možné použiť v challenge-response móde tak, že časť privátneho kľúča je použitá na enkryptovanie súborov nachádzajúcich sa v YubiKey.", + "setDevicesYubiKeyChalRespShow": "Zobraziť možnosti použitie YubiKey pri otváraní súborov", + "setDevicesYubiKeyStuckWorkaround": "Opätovne pripojiť k YubiKey ak sa zasekol počas načítavania", + "setDevicesYubiKeyRememberChalResp": "Zapamätať challenge-response kým je aplikácia otvorená", + "setAboutTitle": "O", + "setAboutBuilt": "Aplikácia je vytvorená týmito úžasnými nástrojmi", + "setAboutLic": "Licencia", + "setAboutLicComment": "Aplikácia samotná a všetky zahrnuté komponenty sú licencované pod MIT licenciou, pokiaľ nie je uvedené inak", + "setAboutFirst": "Túto aplikáciu s otvoreným kódom vytvoril {}", + "setAboutSecond": "a licencovaná pod {}", + "setAboutSource": "Zdrojové kódy a problémy sú na {}", + "setHelpFormat": "Formát Súboru", + "setHelpFormatBody": "Toto je port aplikácie {} vytvorený web technológiami. Rozumie súborom v KeePass formáte (kdbx). Môžete vytvárať súbory (databázu hesiel) aj v KeePass aj v tejto aplikácii. Formát súboru je 100% kompatibilný a mal by byť zrozumiteľný pre obe aplikácie.", + "setHelpProblems": "Potrebujete pomoc?", + "setHelpProblems1": "Ak niečo nefunguje, prosím {}", + "setHelpProblems2": "alebo {}", + "setHelpOpenIssue": "vytvorte bug na GitHub", + "setHelpContactLink": "kontaktujte vývojára priamo", + "setHelpAppInfo": "Informácie", + "setHelpOtherPlatforms": "Ďalšie platformy", + "setHelpDesktopApps": "Desktopová aplikácia", + "setHelpWebApp": "Webová aplikácia", + "setHelpUpdates": "Aktualizácie", + "setHelpTwitter": "Twitter", + "dropboxSetupDesc": "Pre použitie samostatnej Dropbox aplikácie sú vyžadované niektoré konfigurácie. Vytvorte vlastnú Dropbox aplikáciu a vyplňte jej kľúče nižšie.", + "dropboxAppKey": "Aplikačný kľúč dropbox", + "dropboxAppKeyDesc": "Skopírujte kľúč z aplikácie Dropbox (Vývojárske nastavenia)", + "dropboxAppKeyHint": "tvoj kľúč", + "dropboxAppSecret": "Diskrétny údaj dropboxu", + "dropboxAppSecretDesc": "Diskrétny údaj sa nachádza hneď vedľa aplikačného kľúča", + "dropboxFolder": "Adresár aplikácie", + "dropboxFolderDesc": "Pokiaľ vaša aplikácia používa celý Dropbox (nie len adresár aplikácie), nastavte tu adresár s kdbx súbormi", + "dropboxFolderSettingsDesc": "Nastavte akýkoľvek adresár vo vašom Dropboxe, kde budú uložené súbory (koreňový adresár je predvolený)", + "dropboxFolderPlaceholder": "predvolený adresár", + "dropboxLink": "Prilinkovať aplikáciu k", + "dropboxLinkApp": "Aplikačný adresár (Apps/KeeWeb)", + "dropboxLinkFull": "Plný Dropbox alebo akýkoľvek adresár", + "dropboxLinkCustom": "Vlastná Dropbox aplikácia", + "gdriveSharedWithMe": "Zdieľané so mnou", + "webdavSaveMethod": "Metóda uloženia", + "webdavSaveMove": "Nahrať dočasný súbor a presunúť", + "webdavSavePut": "Prepísať kdbx súbor metódou PUT", + "webdavNoLastModified": "Chýba posledne zmenená HTTP hlavička.", + "webdavStatReload": "Vždy načítať súbor namiesto vyhodnocovania HTTP hlavičky naposledy zmenené", + "launcherSave": "Uložiť Databázu Hesiel", + "launcherFileFilter": "Súbor KeePass", + "authPopupRequired": "Vyskakovacie okná sú blokované", + "authPopupRequiredBody": "Povoľte vyskakovacie okná v prehliadači alebo skúste znovu", + "exportFileInfo": "Informácie o súbore", + "exportHtmlName": "Meno", + "exportHtmlDate": "Dátum exportu", + "exportGenerator": "Softvér", + "exportDescription": "Súbor je generovaný {}.", + "importCsvTitle": "Importovať z CSV", + "importCsvRun": "Import", + "importIgnoreField": "Ignorovať", + "importTo": "Záznamy budú importované do", + "importNewFile": "Nový súbor", + "yubiKeyStuckError": "YubiKey sa zdá byť zaseknutý, automatická oprava môže byť povolená v nastaveniach aplikácie.", + "yubiKeyNoKeyHeader": "YubiKey požadovaný", + "yubiKeyNoKeyBody": "Prosím, vložte svoj YubiKey so sériovým číslom {}", + "yubiKeySlot": "slot", + "yubiKeyTouchRequestedHeader": "Dotknite sa svojho YubiKey", + "yubiKeyTouchRequestedBody": "Prosím, dotknite sa svojho YubiKey so sériovým číslom {}", + "yubiKeyDisabledErrorHeader": "USB je zakázané", + "yubiKeyDisabledErrorBody": "YubiKey požaduje otvoriť tento súbor, prosím povoľte USB zariadenia v nastaveniach.", + "yubiKeyErrorWithCode": "Chyba YubiKey, kód {}.", + "bioOpenAuthPrompt": "otvoriť \"{}\"" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/sv-SE/index.html b/keeweb/plugins/translations/sv-SE/index.html new file mode 100644 index 0000000..566b3de --- /dev/null +++ b/keeweb/plugins/translations/sv-SE/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Svenska + + + + +

KeeWeb Language: Svenska

+ https://plugins.keeweb.info/translations/sv-SE + + diff --git a/keeweb/plugins/translations/sv-SE/manifest.json b/keeweb/plugins/translations/sv-SE/manifest.json new file mode 100644 index 0000000..33a3695 --- /dev/null +++ b/keeweb/plugins/translations/sv-SE/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.7.1", + "manifestVersion": "0.1.0", + "name": "language-swedish", + "description": "Swedish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=sv-SE", + "resources": { + "loc": "H6Fs7vjsTmtAvy6PHOxbW3Jts/B9Emw6k2qKFfXH1FfVyaW2aDyYeV35i++F59oODG6Iho661DCZqUmrbyPU7SU9IpbG0bmcxXC2weuk1CLwjkW97a8yTcHZzhGw8bvPf+l/rdyVla6Hp/mfc6v4S60LTTvJZxk1CvWNPmzDDWoL0xF8KI3uhcAOMVHsQdk3vu596SoE8/Mc6JfJ9XMZ9HJ6Szr8Mazqb98bunA3QGhESpmBC1yXfZMHOyBr3XdEZGLtg7NwbgDLH6nTNLoWZw7n/FunMn7YGB4YWtecRxw6dWVOQQHN4wZhKSeG3+mSLhtyxOGyeW8HyaIxHSp4dA==" + }, + "locale": { + "name": "sv-SE", + "title": "Svenska", + "flag": "🇸🇪" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} diff --git a/keeweb/plugins/translations/sv-SE/sv-SE.json b/keeweb/plugins/translations/sv-SE/sv-SE.json new file mode 100644 index 0000000..14a315c --- /dev/null +++ b/keeweb/plugins/translations/sv-SE/sv-SE.json @@ -0,0 +1,502 @@ +{ + "months": [ + "Januari", + "Februari", + "Mars", + "April", + "Maj", + "Juni", + "Juli", + "Augusti", + "September", + "Oktober", + "November", + "December" + ], + "monthsShort": [ + "Jan", + "Feb", + "Mar", + "Apr", + "Maj", + "Jun", + "Jul", + "Aug", + "Sep", + "Okt", + "Nov", + "Dec" + ], + "weekdays": [ + "Söndag", + "Måndag", + "Tisdag", + "Onsdag", + "Torsdag", + "Fredag", + "Lördag" + ], + "weekdaysShort": [ + "Söndag", + "Mån", + "Tis", + "Ons", + "Tor", + "Fre", + "Lör" + ], + "retToApp": "tillbaka till appen", + "name": "namn", + "icon": "ikon", + "title": "Titel", + "password": "Lösenord", + "user": "Användare", + "website": "Webbsida", + "tags": "etiketter", + "notes": "anteckning", + "entry": "post", + "group": "grupp", + "noTitle": "Ingen titel", + "or": "eller", + "history": "Historik", + "notImplemented": "Inte implementerat", + "saveChanges": "Spara ändringar", + "discardChanges": "Rensa ändringar", + "advanced": "Avancerat", + "shortcuts": "Genväg", + "help": "Hjälp", + "settings": "Inställningar", + "cache": "Cache", + "file": "Fil", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Alla objekt", + "menuColors": "Färger", + "menuTrash": "Papperskorg", + "menuSetGeneral": "Generell", + "menuSetAbout": "Om", + "menuAlertNoTags": "Inga etiketter", + "menuAlertNoTagsBody": "Du kan lägga till nya etiketter medan du redigerar fält, i etikett sektionen.", + "menuEmptyTrash": "Töm Papperskorg", + "menuEmptyTrashAlert": "Töm Papperskorg?", + "menuEmptyTrashAlertBody": "Du kommer inte kunna lägga tillbaka dessa", + "menuItemCollapsed": "Dubbelklicka för att expandera", + "alertYes": "Ja", + "alertNo": "Nej", + "alertOk": "OK", + "alertCancel": "Avbryt", + "alertSignIn": "Logga in", + "alertCopy": "Kopiera", + "alertClose": "Stäng", + "appBeta": "VARNING: beta version, endast för förhandsvisning", + "footerOpen": "Öppna / Ny", + "footerSyncError": "Synk fel", + "footerTitleGen": "Generera", + "footerTitleLock": "Lås", + "genLen": "Längd", + "genNewPass": "Nytt lösenord", + "genPresetDefault": "Standard ", + "genPresetDerived": "Som tidigare lösenord", + "genPresetPronounceable": "Uttalbart", + "genPresetMed": "Medellångt", + "genPresetLong": "Långt", + "genPresetPin4": "4-siffrig PIN", + "genPresetMac": "MAC adress", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "genShowPass": "Visa lösenordet", + "grpTitle": "Grupp", + "grpSearch": "Gör det möjligt att söka poster i denna grupp", + "grpAutoType": "Aktivera auto-ifyllning", + "grpAutoTypeSeq": "Auto-ifyllnings sekvens", + "grpAutoTypeSeqDefault": "Använd standard auto-ifyllnings sekvens", + "grpTrash": "Ta bort grupp med alla poster", + "tagTitle": "Etikett", + "tagTrash": "Ta bort etikett från alla poster", + "tagRename": "Döp om", + "tagTrashQuestion": "Ta bort etikett från alla poster?", + "tagTrashQuestionBody": "Denna etikett kommer att tas bort från alla poster. Det finns inget enkelt sätt att få det tillbaka", + "tagExists": "Etiketten finns redan", + "tagExistsBody": "En etikett med detta namn finns redan. Var god och välj ett annat namn.", + "tagBadName": "Dåligt namn", + "tagBadNameBody": "Tag name cannot contain characters {}. Please remove them.", + "genPsTitle": "Generator förinställningar", + "genPsCreate": "Ny förinställning", + "genPsDelete": "Ta bort förinställning", + "genPsNew": "förinställning", + "genPsEnabled": "Visa i förinställnings lista", + "genPsDefault": "Vald som standard", + "genPsDefaultLength": "Standardlängd", + "genPsUpper": "Versala latinska bokstäver", + "genPsLower": "Gemena latinska bokstäver", + "genPsDigits": "Siffror", + "genPsSpecial": "Specialsymboler", + "genPsBrackets": "Parenteser", + "genPsHigh": "Höga ASCII karaktärer", + "genPsAmbiguous": "Tvetydiga symboler", + "genPsInclude": "Tilläggssymboler att inkludera", + "genPsExample": "Exempel på ett genererat lösenord", + "keyChangeTitleRemote": "Huvudnyckel Ändrad", + "keyChangeMessageRemote": "Huvudnyckeln ändrades för denna databas. Var god och ange ny nyckel", + "keyChangeTitleExpired": "Huvudnyckel utgången", + "keyChangeMessageExpired": "Huvudnyckel för denna databas har gått ut. Var god och ange en ny nyckel", + "keyChangeRepeatPassword": "Lösenord, en gång till", + "keyEnter": "Enter", + "iconFavTitle": "Ladda ner och använd webbsidans favicon", + "iconSelCustom": "Använd anpassad ikon", + "listEmptyTitle": "Tom", + "listEmptyAdd": "lägg till med {} knappen ovan", + "listGroup": "Grupp", + "listNoWebsite": "Ingen webbsida", + "listNoUser": "Ingen användare", + "listNoAttachments": "Inga bilagor", + "searchAddNew": "Lägg till ny", + "searchSort": "Sortera", + "searchCreated": "Skapad", + "searchUpdated": "Uppdaterad", + "searchAttachments": "Bilagor", + "searchAZ": "A {} Ö", + "searchZA": "Ö {} A", + "searchON": "Äldst {} Nyast", + "searchNO": "Nyast {} Äldst", + "searchShiftClickOr": "shiftklicka eller", + "searchAdvTitle": "Växla till avancerad sökning", + "searchSearchIn": "Sök inom", + "searchOther": "Andra fält", + "searchProtect": "Säkra fält", + "searchOptions": "Alternativ", + "searchCase": "Matcha bokstavsform", + "searchRegex": "RegEx", + "openOpen": "Öppna", + "openNew": "Ny", + "openMore": "Mer", + "openDemo": "Demo", + "openXml": "Importera XML", + "openCaps": "Caps Lock är på", + "openClickToOpen": "Klicka för att öppna en fil", + "openKeyFile": "nyckelfil", + "openKeyFileDropbox": "(från dropbox)", + "openDropHere": "släpp filen här", + "openFailedRead": "Misslyckades med att läsa filen", + "openNothingFound": "Inget hittat", + "openNothingFoundBody": "Inga filer som kunde öppnas.", + "openSelectFile": "Välj en fil", + "openSelectFileBody": "Välj den fil du vill öppna", + "openPassFor": "Lösenord för", + "openRemoveLastQuestion": "Ta bort lokal fil?", + "openRemoveLastQuestionBody": "Filen du försöker ta bort är förvarad innanför appen. Vill du ta bort den permanent?", + "openRemoveLastQuestionModBody": "Filen du försöker ta bort är innehåller lokala modifikationer. Vill du ta bort den och kassera dessa modifikationer?", + "openLocalFile": "Lokal fil", + "openLocalFileBody": "Du kommer att öppna en fil som kommer att förvaras innanför appen. Ändringar du gör kommer inte att sparas tillbaka till filsystemet. För att få filen med din data måste du exportera den via inställningarna", + "openLocalFileDontShow": "Visa inte detta igen", + "openWrongFile": "Dålig fil", + "openWrongFileBody": "Detta filformat stöds inte. Denna app fungerar endast med KeePass databas formatet (kdbx)", + "openKdbFileBody": "Du öppnar en fil av ett gammalt format (kdb). Denna appen stödjer bara det nya formatet (kbdx), vänligen använd KeePass2 för att konvertera filen till det nya formatet.", + "openConfigHeader": "{} Inställningar", + "openUrl": "URL", + "openUrlDesc": "https://server/sökväg/fil.kdbx, eller fil.kdbx", + "openUser": "Användare", + "openUserDesc": "WebDAV serverns användare (om nödvändigt)", + "openUserPlaceholder": "ingen anv.", + "openPass": "Lösenord", + "openPassDesc": "Lösenord för WebDAV-sever (detta är inte samma som ditt fil-lösenord)", + "openPassPlaceholder": "inget lösenord", + "openConfigError": "Fel: {}", + "openConfigErrorNotFound": "Hittar inte filen", + "openError": "Fel", + "openErrorDescription": "Ett fel uppstod när filen öppnades", + "openErrorFileNotFound": "Ingen fil hittades", + "openShowAllFiles": "Visa alla filar", + "detAttDownload": "Shift-klicka bifogat-knappen för att ladda ned, eller", + "detAttDelToRemove": "Delete för att ta bort", + "detEmpty": "Dina lösenord kommer visas här", + "detGroupRestore": "För att återställa denna gruppen, dra den till någon annan grupp utanför skräp", + "detHistoryClickPoint": "Klicka på tidslinjen för att se läge", + "detHistoryReturn": "Återgå till post", + "detHistoryRevert": "Återställ tillstånd", + "detHistoryDel": "Ta bort tillstånd", + "detHistoryEmpty": "tom", + "detHistoryModified": "modifierad", + "detHistoryRec": "sparning", + "detHistoryRecs": "sparningar", + "detHistoryVersion": "Version", + "detHistorySaved": "Sparad", + "detHistoryNoTitle": "ingen titel", + "detHistoryCurState": "nuvarande tillstånd", + "detHistoryCurUnsavedState": "nuvarande osparat tillstånd", + "detBackToList": "tillbaks till lista", + "detSetIconColor": "Ändra färg", + "detSetIcon": "Ändra ikon", + "detDropAttachments": "släpp bilagor här", + "detDelEntry": "Ta bort", + "detDelEntryPerm": "Ta bort parmanent", + "detExpires": "Går ut", + "detExpired": "Utgånget", + "detGroup": "Grupp", + "detCreated": "Skapad", + "detUpdated": "Uppdaterad", + "detNetField": "Nytt fält", + "detAttachments": "Bilagor", + "detDelFromTrash": "Rensa ur skräpkorg?", + "detDelFromTrashBody": "Du kommer inte kunna återställa det.", + "detDelFromTrashBodyHint": "To quickly remove all items from trash, click Empty icon in Trash menu.", + "detFieldCopied": "Kopierad", + "detFieldCopiedTime": "Kopierat i {} sekunder.", + "detCopyHint": "Du kan kopiera ett värde genom att trycka på dess titel.", + "detMore": "mer", + "detClickToAddField": "Klicka för att lägga till ett nytt fält", + "detMenuAddNewField": "Lägg till nytt fält", + "detMenuShowEmpty": "Visa tomma fält", + "detMenuHideEmpty": "Göm tomma fält", + "detMenuAddField": "Lägg till {}", + "detMenuCopyPassword": "Kopiera lösenord", + "detMenuCopyUser": "Kopiera användare", + "detSetupOtp": "Engångslösenord", + "detClone": "Skapa en kopia", + "detClonedName": "Kopiera", + "detAutoType": "Auto-type", + "detAutoTypeEnabled": "Aktivera auto-type för denna post", + "detAutoTypeSequence": "Tangenttryckningar", + "detAutoTypeInput": "Inmatning", + "detAutoTypeShortcutsDesc": "{} eller {} medans appen är inaktiv", + "detAutoTypeObfuscation": "Blanda riktiga tangenttryckningar med slumpmässiga", + "detAutoTypeWindow": "Fönster", + "detAutoTypeInputWindow": "Fönstertitel", + "detSetupOtpAlert": "Skanna QR koden", + "detSetupOtpAlertBody": "Vänligen kopiera QR koden som visas på autentiseringsidan.", + "detSetupOtpAlertBody1": "1. Gå till autentiseringssidan", + "detSetupOtpAlertBody2": "Ta en skärmdump av QR kod {}", + "detSetupOtpAlertBody3": "Klistra in den här {}", + "detSetupOtpAlertBody3Mobile": "Välj den eller skanna med din kamera genom Välj/Scan knappen nedan.", + "detSetupOtpAlertBody4": "Om du inte kan skanna koden, tryck Skriv koden manuellt", + "detSetupOtpManualButton": "Skrivin koden manuellt", + "detSetupOtpScanButton": "Välj/Skanna", + "detSetupOtpAlertBodyWith": "med {}", + "detOtpImageError": "Fel uppstod vid bildinläsning.", + "detOtpImageErrorBody": "Tyvärr vi kan inte läsa in bildformatet, vänligen kontakta apputgivarna med felbeskrivning.", + "detOtpImageReading": "Läser QR koden...", + "detOtpQrError": "QR-kod skannerfel", + "detOtpQrErrorBody": "Tyvärr, vi kunde inte läsa QR-koden. Vänligen prova igen eller kontakta apputvecklarna med felbeskrivning.", + "detOtpQrWrong": "Fel QR kod", + "detOtpQrWrongBody": "Din QR-kod skannades korrekt men den innehåller inget engångslösenord.", + "autoTypeEntryFields": "Inläggs fält", + "autoTypeModifiers": "Modifier tangent", + "autoTypeKeys": "Tangenter", + "autoTypeLink": "mer...", + "autoTypeError": "Auto-type fel", + "autoTypeErrorGeneric": "Ett fel uppstod medans körning av auto-type: {}", + "autoTypeErrorGlobal": "För att använda genvägar i hela systemet, vänligen fokusera appen dit du vill skriva lösenodet", + "autoTypeErrorNotInstalled": "{} är inte installerad", + "autoTypeHeader": "Auto-type: Välj", + "autoTypeMsgNoWindow": "Vi lyckades inte erhålla aktiv fönstertitel, börja skriva för att söka", + "autoTypeMsgMatchedByWindow": "Välj ett lösenord för {}", + "autoTypeNoMatches": "inga träffar", + "autoTypeSelectionHintShift": "Andra fälter", + "autoTypeSelectionOtp": "Engångslösenord", + "appSecWarn": "Inte säker!", + "appSecWarnBody1": "Du har laddat denna app över en osäker anslutning. Någon kan spionera på dig och stjäla dina lösenord. Vi rekommenderar dig start att sluta, om du inte förstår fullt ut vad du gör.", + "appSecWarnBody2": "Ja, din databas är krypterad men ingen kan garantera att appen ej blivit modifierad påvägen till dig.", + "appSecWarnBtn": "Jag förstår riskerna, fortsätt", + "appUnsavedWarn": "Osparade ändringar!", + "appUnsavedWarnBody": "Du har osparade filer, om du stänger appen kommer ändringarna förloras.", + "appDontExitBtn": "Avsluta inte", + "appCannotLockAutoInit": "The app cannot be locked because autosave is disabled.", + "appCannotLock": "Du har osparade ändringar som kommer förloras. Fortsätta?", + "appAutoSave": "Spara ändringar automatiskt", + "appSaveError": "Fel vid spara", + "appSaveErrorBody": "Fel uppstod för auto-spara fil", + "appSaveErrorBodyMul": "Misslyckades att auto-spara filer", + "appSettingsError": "Fel vid laddning av app", + "appSettingsErrorBody": "Där var ett fel vid laddning av app inställningar. Vänligen dubbelkolla app URL eller kontrollera din administratör.", + "appTabWarn": "För många flikar", + "appTabWarnBody": "KeeWeb kan inte användas i två flikar samtidigt, var god stäng denna fliken.", + "setGenTitle": "Allmänna inställningar", + "setGenUpdate": "Uppdatera", + "setGenNewVersion": "En ny version av appen har laddats ner", + "setGenReleaseNotes": "Visa ändringsanteckningar", + "setGenReloadToUpdate": "Ladda om för att uppdatera", + "setGenUpdateManual": "En ny version har släppts. Kommer kontrollera för uppdateringar och installera dem automatiskt, men automatisk uppgradering från din version är omöjligt.", + "setGenDownloadUpdate": "Ladda ner uppdatering", + "setGenUpdateAuto": "Ladda ner och installera automatiskt", + "setGenUpdateCheck": "Kontrollera men installera inte", + "setGenNoUpdate": "Sök aldrig efter uppdateringar", + "setGenUpdateChecking": "Söker efter uppdateringar", + "setGenCheckUpdate": "Sök efter uppdateringar", + "setGenErrorChecking": "Fel vid kontroll av uppdateringar", + "setGenLastCheckSuccess": "Senast lyckade kontroll var vid {}", + "setGenLastCheckVer": "den senaste versionen var {}", + "setGenCheckedAt": "Kontrollerad vid", + "setGenLatestVer": "Du använder den senaste versionen", + "setGenNewVer": "ny version {} tillgänglig", + "setGenDownloadingUpdate": "Laddar ner uppdateringar", + "setGenExtractingUpdate": "Extraherar uppdatering...", + "setGenCheckErr": "Ett fel uppstod vid nerladdning av ny version", + "setGenNeverChecked": "Kontrollerade aldrig efter uppdateringar", + "setGenRestartToUpdate": "Starta om appen för att uppdatera", + "setGenDownloadAndRestart": "Ladda ner uppdatering och starta om", + "setGenAppearance": "Utseende", + "setGenTheme": "Tema", + "setGenThemeFb": "Platt blå", + "setGenThemeDb": "Mörkbrun", + "setGenThemeWh": "Vit", + "setGenThemeTe": "Terminal", + "setGenThemeHc": "Hög kontrast", + "setGenThemeSd": "Solarized dark", + "setGenThemeSl": "Solarized light", + "setGenLocale": "Språk", + "setGenFontSize": "Teckensnitt storlek", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Stor", + "setGenFontSizeLargest": "Störst", + "setGenTitlebarStyleDefault": "Standard", + "setGenShowSubgroups": "Visa poster från alla subgrupper", + "setGenTableView": "Inläggslista i tabellvy", + "setGenColorfulIcons": "Färgrika specialikoner i lista", + "setGenFunction": "Funktion", + "setGenRememberKeyFiles": "Kom ihåg nyckelfiler", + "setGenNoRememberKeyFiles": "Kom inte ihåg", + "setGenRememberKeyFilesData": "Lagra i intern applagring", + "setGenRememberKeyFilesPath": "Kom bara ihåg sökväg till nyckelfiler.", + "setGenLockInactive": "Lås automatiskt om appen inte är aktiv", + "setGenNoAutoLock": "Lås inte automatiskt", + "setGenLockMinutes": "om {} minuter", + "setGenLockHour": "Om en timme", + "setGenLockHours": "Om {} timmar", + "setGenLockDay": "Om en dag", + "setGenClearClip": "Rensa urklipp efter kopiering", + "setGenNoClear": "Rensa inte", + "setGenClearSeconds": "om {} sekunder", + "setGenClearMinute": "Om en minut", + "setGenMinInstead": "Minimera appen istället för att avsluta", + "setGenLockMinimize": "Auto-lås vid minimering", + "setGenLockCopy": "Auto-lås vid lösenordskopiering", + "setGenStorage": "Lagring", + "setGenShowAdvanced": "Visa advancerade inställningar", + "setGenDevTools": "Visa utvecklarverktyg", + "setGenTryBeta": "Prova beta version tills omstart", + "setGenTryBetaWarning": "Osparade filer", + "setGenTryBetaWarningBody": "Vänligen spara alla filer och klicka på denna knappen igen", + "setGenShowAppLogs": "Visa app log", + "setFilePath": "Sökväg", + "setFileStorage": "Filen laddas från {}", + "setFileIntl": "Denna fil är lagrad i den interna applagringen", + "setFileLocalHint": "Vill du arbeta sömlöst med lokala filer?", + "setFileDownloadApp": "Ladda ner desktop appen", + "setFileSave": "Spara", + "setFileSaveTo": "Spara till ...", + "setFileClose": "Stäng", + "setFileSync": "Synk", + "setFileSyncVerb": "Synk", + "setFileSaveToXml": "XML", + "setFileLastSync": "Senaste synk", + "setFileLastSyncUnknown": "okänd", + "setFileSyncInProgress": "Synk pågår", + "setFileSyncError": "Synkfel", + "setFilePass": "Huvudlösenord", + "setFilePassChanged": "Lösenord blev ändrat; lämna fältet blankt för att använda gamla lösenordet", + "setFileKeyFile": "Nyckelfil", + "setFileSelKeyFile": "Välj en nyckelfil", + "setFileNames": "Namn", + "setFileDefUser": "Standard användare", + "setFileEnableTrash": "Aktivera papperskorg", + "setFileHistLen": "Historik längd, behåll sista anteckning per inlägg", + "setFileHistSize": "Historik storlek, totalt i MB per fil", + "setFileBackups": "Säkerhetskopia", + "setFileBackupEnable": "Säkerhetskopiera denna fil", + "setFileBackupPath": "Sökväg för säkerhetskopia", + "setFileBackupTime": "Skapa säkerhetskopior", + "setFileBackupNow": "Säkerhetskopiera nu", + "setFileBackupNowWorking": "Arbetar...", + "setFileBackupError": "Säkerhetskopieringfel", + "setFileBackupErrorDescription": "Fel vid skrivning av säkerhetskopia", + "setFileBackupOnSave": "Varje gång jag sparar filen", + "setFileBackupDaily": "Dagligen", + "setFileBackupWeekly": "Vekovis", + "setFileBackupMonthly": "Månadsvis", + "setFileBackupManually": "Manuellt, backa inte upp automatiskt", + "setFileRounds": "Nyckelkryptering omgångar", + "setFileKdfParams": "Key derivation function", + "setFileKdfParamsIter": "Iterationer", + "setFileKdfParamsMem": "Minne, KB", + "setFileKdfParamsPar": "Parallelism", + "setFileKeyChangeForce": "Fråga för att ändra nyckel efter (dagar)", + "setFileUseKeyFile": "Använd nyckelfil", + "setFileUseGenKeyFile": "Använd genererad nyckelfil", + "setFileUseOldKeyFile": "Återanvänd en nyckelfil", + "setFileGenKeyFile": "Skapa en ny nyckelfil", + "setFileDontUseKeyFile": "Använd inte en nyckelfil", + "setFileEmptyPass": "Tomt lösenord", + "setFileEmptyPassBody": "Att spara databasen med tomt lösenord gör den helt oskyddad. Vill du verkligen göra det?", + "setFileSaveError": "Spar fel", + "setFileSaveErrorBody": "Fel vid sparning till fil", + "setFileAlreadyExists": "Finns redan", + "setFileAlreadyExistsBody": "Filen {} finns redan. Vill du skriva över den?", + "setFileUnsaved": "Osparade ändringar", + "setFileUnsavedBody": "Det finns osparade ändringar i denna filen", + "setFileCloseNoSave": "Stäng och förlora ändringarna", + "setFileDontClose": "Stäng inte", + "setShTitle": "Genvägar", + "setShShowAll": "Visa alla objekt", + "setShColors": "visa alla objekt med färger", + "setShTrash": "gå till papperskorg", + "setShFind": "Sök, eller börja bara skriv", + "setShClearSearch": "Rensa sök", + "setShCopyPass": "kopiera lösenord eller markerat fält", + "setShCopyUser": "kopiera användare", + "setShCopyUrl": "kopiera hemsida", + "setShAutoType": "auto-type valt inlägg", + "setShPrev": "gå till föregående ", + "setShNext": "Gå till nästa objekt", + "setShCreateEntry": "skapa ny post", + "setShOpen": "öppna / ny", + "setShSave": "spara alla filer", + "setShGen": "generera lösenord", + "setShSet": "app inställningar", + "setShCopyPassGlobal": "Kopiera lösenord (när appen är i bakgrunden)", + "setShAutoTypeGlobal": "Auto-type (när appen är i bakgrunden)", + "setShLock": "lås databas", + "setPlInstallBtn": "Installera", + "setPlUpdateBtn": "Uppdater", + "setPlJs": "kod", + "setPlLoc": "språk", + "setAboutTitle": "Om", + "setAboutBuilt": "Denna appen är byggd med dessa grymt bra verktyg", + "setAboutLic": "Licens", + "setAboutLicComment": "Applikationen och alla inkluderade komponenter som inte är allmän egendom är licenserade under MIT licensen.", + "setAboutFirst": "Detta är ett program med öppen källkod skapat av {}", + "setAboutSecond": "och är licensierad under {}.", + "setAboutSource": "Källkoden och buggar/fel finns på {}.", + "setHelpFormat": "Fil format", + "setHelpFormatBody": "Detta är en portering utav {} programmet byggt med webbteknologier. Den kan läsa filer i KeePass format (kdbx). Du kan skapa såna filer (lösenordsdatabaser) med antingen KeePass, eller i detta program. Filformatet är 100% kompatibelt och skall kunna läsas av båda programmen.", + "setHelpProblems": "Behövs hjälp?", + "setHelpProblems1": "Om något går fel, vänligen {}", + "setHelpProblems2": "eller {}", + "setHelpOpenIssue": "Öppna en bugrapport på Github", + "setHelpContactLink": "Kontakta en utvecklare direkt", + "setHelpAppInfo": "Programinformation", + "setHelpOtherPlatforms": "Andra plattformar", + "setHelpDesktopApps": "Desktop app", + "setHelpWebApp": "Webb app", + "setHelpUpdates": "Uppdateringar", + "setHelpTwitter": "program twitter", + "dropboxSetupDesc": "Vissa konfigurationer behövs för att använda Dropbox i programmet. Vänligen skapa din egen Dropbox app och fyll i nyckeln nedan.", + "dropboxAppKey": "Dropbox app nyckel", + "dropboxAppKeyDesc": "Kopiera nyckeln från din Dropbox app (Utvecklarinställningar)", + "dropboxFolder": "App katalog", + "dropboxFolderDesc": "Om din app är länkad till hela Dropbox (ej app katalog) så ange katalog med kdbx filerna här", + "dropboxFolderSettingsDesc": "Välj vilken katalog i din dropbox där filerna kommer lagras (standard: rotmapp)", + "dropboxFolderPlaceholder": "standard mapp", + "dropboxLink": "Länka appen till", + "dropboxLinkApp": "App katalog (Apps/KeeWeb)", + "dropboxLinkFull": "Hela dropbox eller vilken annan mapp som helst", + "dropboxLinkCustom": "Egen Dropbox app", + "launcherSave": "Spara lösenordsdatabasen", + "launcherFileFilter": "KeePass filer", + "authPopupRequired": "Pop-ups är blockerade", + "authPopupRequiredBody": "Vänligen tillåt pop-ups för denna app i din webbläsare.", + "exportHtmlName": "Namn", + "exportGenerator": "Mjukvara", + "importIgnoreField": "Ignorera" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/tr/index.html b/keeweb/plugins/translations/tr/index.html new file mode 100644 index 0000000..5b22ef2 --- /dev/null +++ b/keeweb/plugins/translations/tr/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Türkçe + + + + +

KeeWeb Language: Türkçe

+ https://plugins.keeweb.info/translations/tr + + diff --git a/keeweb/plugins/translations/tr/manifest.json b/keeweb/plugins/translations/tr/manifest.json new file mode 100644 index 0000000..6ac9ca7 --- /dev/null +++ b/keeweb/plugins/translations/tr/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.20.0", + "manifestVersion": "0.1.0", + "name": "language-turkish", + "description": "Turkish language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=tr", + "resources": { + "loc": "bc/17iVcDLehgsOevfNkxHhxhAs1/8c0Gt1pjumAhhcs6z5VOA6Ex98MI0mck6F3TUi4Z8a0iFe82FbJzuUq9fH06JwizhHFmTaP9AarDnKud0+k0mZ5x8gD28Uokvehk0JcBOf1tvRy0M0PGpN0F94G1zP6vR2KQuFr+Yvc16zvpYDYcsXCCeOX8Z1JWTm61/b15LXoHXGRtB51+P0QuqyVPMAY4LndH7ujbwF2qjA7+HqL1tYPJAh8VAqATdI8rYatVeV4URCj+5cy17Momr/y+hXfQ6jHCkg5fK7iFgO1E2kzn9QieET3X2Vblkg5i/pOThpMskHGKjF8x2oz7w==" + }, + "locale": { + "name": "tr", + "title": "Türkçe", + "flag": "🇹🇷" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/tr/tr.json b/keeweb/plugins/translations/tr/tr.json new file mode 100644 index 0000000..83d807c --- /dev/null +++ b/keeweb/plugins/translations/tr/tr.json @@ -0,0 +1,776 @@ +{ + "retToApp": "Uygulamaya dön", + "name": "İsim", + "icon": "Simge", + "title": "Başlık", + "password": "Parola", + "user": "Kullanıcı", + "website": "Website", + "tags": "Etiketler", + "notes": "Notlar", + "entry": "Girdi", + "group": "Grup", + "noTitle": "Başlık yok", + "or": "ya da", + "history": "Geçmiş", + "template": "Şablon", + "templates": "Şablonlar", + "notImplemented": "Uygulanmadı", + "saveChanges": "Değişiklikleri kaydet", + "discardChanges": "Değişiklikleri yoksay", + "advanced": "Gelişmiş", + "shortcuts": "Kısayollar", + "help": "Yardım", + "settings": "Ayarlar", + "plugins": "Eklentiler", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "hata", + "oneMinute": "bir dakika", + "minutes": "{} dakika", + "oneHour": "bir saat", + "hours": "{} saat", + "oneDay": "bir gün", + "days": "{} gün", + "oneWeek": "bir hafta", + "oneMonth": "bir ay", + "oneYear": "bir yıl", + "cache": "Önbellek", + "file": "Dosya", + "device": "cihaz", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "Tüm ögeler", + "menuColors": "Renkler", + "menuTrash": "Çöp", + "menuSetGeneral": "Genel", + "menuSetBrowser": "Tarayıcı", + "menuSetAbout": "Hakkında", + "menuSetDevices": "Cihazlar", + "menuAlertNoTags": "Etiket yok", + "menuAlertNoTagsBody": "Alanları düzenlerken, etiketler bölümünde yeni etiketler ekleyebilirsiniz.", + "menuEmptyTrash": "Çöpü Boşalt", + "menuEmptyTrashAlert": "Çöp Boşaltılsın Mı? ", + "menuEmptyTrashAlertBody": "Ögeler geri gelmeyecektir", + "menuItemCollapsed": "Genişletmek için çift tıkla", + "menuRestoreApp": "Aç {}", + "menuQuitApp": "Çık {}", + "sysMenuAboutKeeWeb": "Hakkında {}", + "sysMenuServices": "Servisler", + "sysMenuHide": "Gizle {}", + "sysMenuHideOthers": "Diğerlerini Gizle", + "sysMenuUnhide": "Tümünü Göster", + "sysMenuQuit": "Çık {}", + "sysMenuEdit": "Düzenle", + "sysMenuUndo": "Geri al", + "sysMenuRedo": "Yinele", + "sysMenuCut": "Kes", + "sysMenuCopy": "Kopyala", + "sysMenuPaste": "Yapıştır", + "sysMenuSelectAll": "Tümünü Seç", + "sysMenuWindow": "Pencere", + "sysMenuMinimize": "Küçült", + "sysMenuClose": "Pencereyi Kapat", + "alertYes": "Evet", + "alertNo": "Hayır", + "alertOk": "Tamam", + "alertCancel": "İptal", + "alertSignIn": "Oturum Aç", + "alertCopy": "Kopyala", + "alertClose": "Kapat", + "alertDoNotAsk": "Tekrar sorma", + "alertAllow": "İzin Ver", + "alertDeny": "Reddet", + "appBeta": "UYARI: deneme sürümüdür, sadece izlenim edinmek içindir.", + "footerOpen": "Aç / Yeni", + "footerSyncError": "Eşitleme hatası", + "footerTitleGen": "Oluştur", + "footerTitleLock": "Kilitle", + "genLen": "Uzunluk", + "genNewPass": "Yeni parola", + "genPresetDefault": "Varsayılan ayar", + "genPresetDerived": "eski parola gibi", + "genPresetPronounceable": "telaffuz edilebilir", + "genPresetMed": "orta uzunluk", + "genPresetLong": "uzun", + "genPresetPin4": "4 haneli PIN", + "genPresetMac": "MAC adresi", + "genPresetHash128": "128-bit sağlama", + "genPresetHash256": "256-bit sağlama", + "genHidePass": "Parolayı gizle", + "genShowPass": "Parolayı göster", + "grpTitle": "Küme", + "grpSearch": "Bu kümedeki girdileri aramayı etkinleştir", + "grpAutoType": "Otomatik yazım etkin", + "grpAutoTypeSeq": "Otomatik yazım dizisi", + "grpAutoTypeSeqDefault": "Varsayılan otomatik yazım dizisini kullan", + "grpTrash": "Kümeyi tüm girdileriyle birlikte sil", + "tagTitle": "Etiket", + "tagTrash": "Etiketi tüm girdilerden kaldır", + "tagRename": "Yeniden Adlandır", + "tagTrashQuestion": "Etiket tüm girdilerden kaldırılsın mı?", + "tagTrashQuestionBody": "Bu etiket tüm girdilerden kaldırılacak. Etiketi geri koymanın kolay bir yolu olmayacak.", + "tagExists": "Etiket zaten mevcut", + "tagExistsBody": "Bu isimde bir etiket zaten mevcut. Lütfen başka bir isim seçin", + "tagBadName": "Kötü isim", + "tagBadNameBody": "Etiket adı {} karakterini içeremez. Lütfen onları kaldırın.", + "genPsTitle": "Kalıp Oluşturucu", + "genPsCreate": "Yeni kalıp", + "genPsDelete": "Kalıbı sil", + "genPsNew": "kalıp", + "genPsEnabled": "Kalıp listesinde göster", + "genPsDefault": "Varsayılan olarak seçili", + "genPsDefaultLength": "Varsayılan uzunluk", + "genPsUpper": "Büyük harf latin harfleri", + "genPsLower": "Küçük harf latin harfleri", + "genPsDigits": "Rakamlar", + "genPsSpecial": "Özel semboller", + "genPsBrackets": "Parantezler", + "genPsHigh": "Yüksek ASCII karakterleri", + "genPsAmbiguous": "Belirsiz semboller", + "genPsInclude": "Ek olarak eklenecek semboller", + "genPsExample": "Oluşturulmuş örnek parola", + "genPsPattern": "Desen", + "genPsPatternHelp": "Desenler, karakterleri seçmek için özel kurallar belirtmek için kullanılabilir. Örneğin, 1-AA bir rakam ve ardından bir tire ve iki harf ile başlayan parolalar oluşturur. Bu sembolleri kullanabilirsiniz:", + "genPsAllRanges": "Tüm semboller", + "genPsIncluded": "Yukarıdakilere ek semboller", + "keyChangeTitleRemote": "Ana Anahtar Değiştirildi", + "keyChangeMessageRemote": "Bu veritabanının ana anahtarı değişti. Lütfen yeni bir anahtar girin", + "keyChangeTitleExpired": "Ana anahtarın süresi doldu", + "keyChangeMessageExpired": "Bu veritabanı anahtarının süresi doldu. Lütfen yeni bir anahtar seçin", + "keyChangeRepeatPassword": "Şifre, bir kez daha", + "keyEnter": "Gir", + "keyEsc": "Esc", + "iconFavTitle": "Site simgesini indir ve kullan", + "iconSelCustom": "Özel simge seç", + "listEmptyTitle": "Boş", + "listEmptyAdd": "Yukarıdaki {} düğmesini kullanın", + "listGroup": "Küme", + "listNoWebsite": "website yok", + "listNoUser": "kullanıcı yok", + "listNoAttachments": "ek dosya yok", + "listAddTemplateHeader": "Şablonlar", + "listAddTemplateBody1": "Şablonlar tek bir tıklama ile girdiler oluşturmanı sağlar. Şablon girişine bir şey ekle ve bu şablonu tekrar kullanmak için tekrar ardından {}'e tıkla", + "listAddTemplateBody2": "Şablonlarınızı her zaman {} kümesinde bulabilirsiniz.", + "searchAddNew": "Yeni Ekle", + "searchSort": "Sırala", + "searchCreated": "Oluşturuldu", + "searchUpdated": "Güncellendi", + "searchAttachments": "Ekler", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Eski {} Yeni", + "searchNO": "Yeni {} Eski", + "searchShiftClickOr": "shift-tık veya", + "searchAdvTitle": "Gelişmiş aramayı değiştir", + "searchSearchIn": "Ara", + "searchOther": "Diğer alanlar", + "searchProtect": "Güvenli alanlar", + "searchOptions": "Seçenekler", + "searchCase": "Durum eşleştir", + "searchRegex": "Düzenli ifade", + "searchRank": "Otomatik", + "searchExact": "Kesin", + "openOpen": "Aç", + "openNew": "Yeni", + "openNewFile": "Yeni", + "openMore": "Dahası", + "openDemo": "Tanıtım", + "openGenerate": "Oluştur", + "openXml": "XML'den Aktar", + "openCaps": "Caps Lock açık", + "openClickToOpen": "Bir dosya açmak için tıklayın", + "openKeyFile": "anahtar dosyası", + "openKeyFileDropbox": "(dropbox'tan)", + "openDropHere": "dosyaları buraya bırak", + "openFailedRead": "Dosya okunamadı", + "openNothingFound": "Hiçbir şey bulunamadı", + "openNothingFoundBody": "Uygun dosya bulamadık.", + "openSelectFile": "Bir dosya seç", + "openSelectFileBody": "Açmak istediğin dosyayı seç", + "openPassFor": "Parolayı gir", + "openRemoveLastQuestion": "Yerel dosya silinsin mi?", + "openRemoveLastQuestionBody": "Silmekte olduğunuz dosya sadece uygulama içinde saklanıyor. Kalıcı olarak silinsin mi?", + "openRemoveLastQuestionModBody": "Silmekte olduğunuz dosyada yerel değişiklikler var. Değişiklikleri iptal etmek ve dosyayı silmek istediğinize emin misiniz?", + "openLocalFile": "Yerel dosya", + "openLocalFileBody": "Uygulamanın içinde saklanacak bir dosyayı açacaksınız. Yaptığınız değişiklikler dosya sistemine geri kaydedilmeyecektir. Dosyayı verilerinizle birlikte almak için ayarlardan dışa aktarın.", + "openLocalFileDontShow": "Bunu tekrar gösterme", + "openWrongFile": "Geçersiz dosya", + "openWrongFileBody": "Bu dosya uzantısı desteklenmiyor. Bu uygulama KeePass veritabanı uzantı dosyaları (kdbx) ile çalışır.", + "openKdbFileBody": "Eski bir uzantı dosyasını (KDB) açıyorsunuz. Bu uygulama yalnızca yeni sürümü destekliyor. Dosya uzantısını değiştirmek için lütfen KeePass v2'yi kullanın.", + "openConfigHeader": "{} Ayarları", + "openUrl": "URL", + "openUrlDesc": "https://sunucu/dizin/dosya.kdbx, veya sadece dosya.kdbx", + "openUser": "Kullanıcı", + "openUserDesc": "WebDAV sunucu kullanıcı adı (gerekliyse)", + "openUserPlaceholder": "kullanıcı yok", + "openPass": "Parola", + "openPassDesc": "WebDAV sunucu parolası (dosya parolanız değil)", + "openPassPlaceholder": "parola yok", + "openConfigError": "Hata: {}", + "openConfigErrorNotFound": "Dosya bulunamadı", + "openError": "Hata", + "openErrorDescription": "Dosya açılırken bir hata oluştu", + "openErrorDescriptionMaybeTouchIdChanged": "Hata, Touch ID ayarı değiştirildiğinde genellikle olana benzer, örneğin ek bir parmak eklediyseniz veya çıkardıysanız. Durum buysa, Ayarlar'a gidin, Touch ID'yi devre dışı bırakın ve yeniden etkinleştirin.", + "openErrorFileNotFound": "Dosya bulunamadı", + "openListErrorBody": "Dosya listesi yüklenirken bir hata yaşandı", + "openShowAllFiles": "Tüm dosyaları göster", + "openFileNoCacheError": "Önbellek deposunda dosya bulunamadı. Bu olabilir, çünkü tarayıcı depolama alanı temizlendi. Dosyayı açmak için, KeeWeb'den kaldırın ve tekrar ekleyin.", + "openChalRespHeader": "Karşılama Yanıtı", + "openChalRespLoading": "YubiKeys listesi yükleniyor", + "openChalRespSelectYubiKey": "Kullanmak istediğiniz bir YubiKey seçin", + "openChalRespErrorEmpty": "YubiKey bulunamadı.", + "openChalRespErrorEmptyMac": "MacOS'ta bu özelliği ilk kez mi kullanıyorsunuz? Güvenlik ayarlarının Giriş İzleme bölümüne KeeWeb eklenmelidir.", + "detAttDownload": "Eki indirmek için Shift tuşuna basarak tıklayın veya", + "detAttDelToRemove": "Kaldırmak için sil", + "detAttSave": "Farklı kaydet...", + "detEmpty": "Parolalarınız burada gösterilecek", + "detGroupRestore": "Bu kümeyi geri yüklemek için lütfen çöp kutusunun dışındaki herhangi bir kümeye sürükleyin", + "detHistoryClickPoint": "Durumu görüntülemek için girdi geçmişine ait zaman çizelgesi noktasına tıklayın", + "detHistoryReturn": "girdiye geri dön", + "detHistoryRevert": "Duruma döndür", + "detHistoryDel": "Durumu sil", + "detHistoryEmpty": "boş", + "detHistoryModified": "düzenlendi", + "detHistoryRec": "kayıt", + "detHistoryRecs": "kayıtlar", + "detHistoryVersion": "Sürüm", + "detHistorySaved": "Kaydedildi", + "detHistoryNoTitle": "başlık yok", + "detHistoryCurState": "mevcut durum", + "detHistoryCurUnsavedState": "mevcut kaydedilmemiş durum", + "detHistoryRevertAlert": "Bu geçmiş durumuna geri dön?", + "detHistoryRevertAlertBody": "Mevcut durumunuz tarihe kaydedilecektir.", + "detHistoryDeleteAlert": "Bu geçmiş durumu silinsin mi?", + "detHistoryDeleteAlertBody": "Bunu geri yüklemek mümkün olmayacaktır.", + "detHistoryDiscardChangesAlert": "Girdide yapılan değişiklikler iptal edilsin mi?", + "detHistoryDiscardChangesAlertBody": "Kaydedilmemiş değişiklikler kaybedilecek, geri dönüşü olmayacak.", + "detBackToList": "listeye geri dön", + "detSetIconColor": "Rengi değiştir", + "detSetIcon": "Simgeyi değiştir", + "detDropAttachments": "ek dosyaları buraya sürükle", + "detDelEntry": "Sil", + "detDelEntryPerm": "Kalıcı olarak sil", + "detExpires": "Sonlanma", + "detExpired": "sona erdi", + "detGroup": "Grup", + "detCreated": "Oluşturuldu", + "detUpdated": "Güncellendi", + "detNetField": "Yeni Alan", + "detAttachments": "Ekler", + "detDelFromTrash": "Çöpten silinsin mi?", + "detDelFromTrashBody": "Bunu geri getiremeyeceksin.", + "detDelFromTrashBodyHint": "Çöpteki tüm öğeleri hızlıca kaldırmak için Çöp menüsündeki boşaltma simgesini tıklayın.", + "detDelToTrash": "Giriş silinsin mi?", + "detDelToTrashBody": "Giriş çöp klasörüne taşınır.", + "detFieldCopied": "Kopyalandı", + "detFieldCopiedTime": "{} saniyede kopyalandı", + "detCopyHint": "Alan değerini başlığına tıklayarak kopyalayabilirsiniz", + "detMore": "daha fazla", + "detClickToAddField": "yeni bir alan eklemek için tıklayın", + "detMenuAddNewField": "Yeni bir alan ekle", + "detMenuAddNewWebsite": "Başka bir web sitesi ekle", + "detMenuShowEmpty": "Boş alanları göster", + "detMenuHideEmpty": "Boş alanları gizle", + "detMenuAddField": "Ekle {}", + "detMenuCopyPassword": "Parolayı kopyala", + "detMenuCopyUser": "Kullanıcı adını kopyala", + "detMenuCopyOtp": "Tek seferlik kodu kopyala", + "detSetupOtp": "Tek kullanımlık kodlar", + "detClone": "Kopyasını oluştur", + "detCopyEntryToClipboard": "Tüm alanları kopyala", + "detClonedName": "Kopyala", + "detAutoType": "Otomatik yazım", + "detAutoTypeSettings": "Otomatik yazım ayarları", + "detAutoTypeEnabled": "Bu girdi için otomatik yazım etkin", + "detAutoTypeSequence": "Tuş vuruşları", + "detAutoTypeInput": "Girdi", + "detAutoTypeShortcutsDesc": "Uygulama etkin değilken {} veya {}", + "detAutoTypeObfuscation": "Gerçek tuş vuruşlarını rastgele karıştırın", + "detAutoTypeWindow": "Pencere", + "detAutoTypeInputWindow": "Pencere başlığı", + "detSetupOtpAlert": "QR Kodunu tara", + "detSetupOtpAlertBody": "Lütfen yetkilendirme sayfasındaki QR kodu kopyala.", + "detSetupOtpAlertBody1": "1. yetkilendirme sayfasına git", + "detSetupOtpAlertBody2": "2. {} komutu ile QR kodunun ekran görüntüsünü al", + "detSetupOtpAlertBody3": "3. {} komutu ile buraya yapıştır", + "detSetupOtpAlertBody3Mobile": "3. altta yer alan Seç/Tara butonunu kullanarak kameranla seç ya da tara", + "detSetupOtpAlertBody4": "Eğer kod taranmıyor ise, kodu el ile gir", + "detSetupOtpManualButton": "Kodu el ile gir", + "detSetupOtpScanButton": "Seç/Tara", + "detSetupOtpAlertBodyWith": "{} ile", + "detOtpImageError": "Görüntü okunurken hata", + "detOtpImageErrorBody": "Üzgünüm, resim biçimini okuyamadık, lütfen hata ayrıntılarıyla ilgili uygulama geliştiricilerine başvurun.", + "detOtpImageReading": "QR kod okunuyor...", + "detOtpQrError": "QR kod tarama hatası", + "detOtpQrErrorBody": "Üzgünüz, QR kodu okuyamadık, lütfen bir kez daha deneyin ya da hata detayları ile birlikte uygulama yöneticisiyle iletişime geçin.", + "detOtpQrWrong": "Yanlış QR kodu", + "detOtpQrWrongBody": "Qr kodunuz başarıyla tarandı ama tek seferlik kod bilgisi içermiyor.", + "detOtpField": "Tek seferlik kod", + "detOtpClickToTouch": "Üretmek için tıkla", + "detOtpGenerating": "Üretiliyor...", + "detOtpTouch": "Dokunun {}", + "detLockField": "Bu alanı kilitle, böylece içerik aranamaz ve görünmez. İçeriğin görüntülenmesi tıklamanız gerekir.", + "detUnlockField": "Bu alanın kilidini açarak içeriğini hemen aranabilir ve görünür hale getirin", + "detRevealField": "Göster", + "detHideField": "Gizle", + "detAutoTypeField": "Otomatik yazım", + "detIssuesHideTooltip": "Bu uyarıyı gizle", + "detIssueWeakPassword": "Parola zayıf, değiştirmeniz önerilir.", + "detIssuePoorPassword": "Parola çok zayıf, değiştirilmesi şiddetle tavsiye edilir.", + "detIssuePwnedPassword": "Bu parola, {} uyarınca bir veri ihlalinde ifşa edildi, değiştirilmesi önerilir.", + "detIssuePasswordCheckError": "Çevrimiçi parola gücü kontrol edilirken bir hata oluştu.", + "detIssueOldPassword": "Parola eski.", + "detIssueCloseAlertHeader": "Parola sorunlarını gizle", + "detIssueCloseAlertBody": "Bu uyarıyı gizlemenin farklı yolları vardır:", + "detIssueCloseAlertEntry": "Bu giriş için gösterme", + "detIssueCloseAlertSettings": "Genel ayarları yapın", + "autoTypeEntryFields": "Girdi alanları", + "autoTypeModifiers": "Tuşları değiştir", + "autoTypeKeys": "Tuşlar", + "autoTypeLink": "daha fazla...", + "autoTypeError": "Otomatik yazım hatası", + "autoTypeErrorGeneric": "Otomatik yazım uygulanırken bir hata var: {}", + "autoTypeErrorAccessibilityMacOS": "Uygulamaya tuş vuruşlarını göndermeye çalıştık, ancak işe yaramadı. Bu, eksik izinler nedeniyle olabilir, daha fazlasını okumak için burayı tıklayın:", + "autoTypeErrorGlobal": "Sistem genelinde bir kısayol kullanmak için, lütfen parolanızı yazmak istediğiniz uygulamaya odaklanın", + "autoTypeErrorNotInstalled": "{} yüklü değil", + "autoTypeHeader": "Otomatik Yazım: Seç", + "autoTypeMsgNoWindow": "Etkin pencere başlığını alamadık, arama yapmak için yazmaya başla", + "autoTypeMsgMatchedByWindow": "{} için bir parola seç", + "autoTypeNoMatches": "Eşleşme yok", + "autoTypeSelectionHint": "Otomatik yazım sırası", + "autoTypeSelectionHintAction": "Sadece parolanızı yazın", + "autoTypeSelectionHintOpt": "Sadece kullanıcı adınızı yazın", + "autoTypeSelectionHintShift": "Diğer alanlar", + "autoTypeSelectionOtp": "Tek kullanımlık kod", + "autoTypeUnlockMessage": "Otomatik yazmak için kilidi açın", + "appSecWarn": "Güvenli Değil!", + "appSecWarnBody1": "Uygulamayı güvensiz bir bağlantı ile yüklediniz. Birileri sizi izliyor ve şifrenizi çalmaya çalışıyor olabilir. Eğer tam olarak ne yapacağını anlamadıysanız, uygulamayı durdurmanızı önemle tavsiye ediyoruz.", + "appSecWarnBody2": "Evet, veritabanı şifrelenmiş durumda, ancak hiç kimse size uygulamanın değiştirilmediğini garanti edemez.", + "appSecWarnBtn": "Riskleri anlıyorum, devam et", + "appUnsavedWarn": "Değişiklikler kaydedilmedi!", + "appUnsavedWarnBody": "Dosyaları kaydetmediniz, uygulamayı kapatırsanız yaptığınız değişiklikler kaybolacak.", + "appDontExitBtn": "Çıkış yapma", + "appCannotLockAutoInit": "Uygulama kilitlenemiyor çünkü otomatik kayıt devre dışı.", + "appCannotLock": "Kaydedilmediği için kaybolacak değişiklikler var. Devam ediyor musunuz?", + "appAutoSave": "Değişiklikleri otomatik olarak kaydet", + "appSaveError": "Kayıt Hatası", + "appSaveErrorBody": "Dosya otomatik olarak kaydedilemedi", + "appSaveErrorBodyMul": "Dosyalar otomatik olarak kaydedilemedi:", + "appSaveErrorExitLoseChanges": "Çık ve tüm değişiklikleri kaybet", + "appSaveErrorExitLoseChangesBody": "Uygulamadan çıkıp tüm değişiklikleri kaybedebilir veya verileri dışa aktarmak için dosya ayarlarına gidebilirsiniz", + "appSettingsError": "Uygulama başlatılırken hata", + "appSettingsErrorBody": "Uygulama ayarları yüklenirken bir hata oluştu. Lütfen uygulama URL’sini iki kez kontrol edin veya yöneticinize başvurun.", + "appNotSupportedError": "Tarayıcınız kullandığımız bazı önemli özellikleri desteklemiyor.", + "appTabWarn": "Fazla sekme açıldı", + "appTabWarnBody": "KeeWeb aynı anda iki tarayıcı sekmesinde kullanılamaz, lütfen bu sekmeyi kapatın.", + "appRightsAlert": "KeeWeb uygulamasını kilitle", + "appRightsAlertBody1": "KeeWeb uygulamanız şu anda izinsiz değişikliklere karşı korunmuyor. Uygulamayı yalnızca yöneticiler için yazılabilir yapmak için sizden izin istiyoruz.", + "appRightsAlertBody2": "İzin vermek istemiyor musunuz? Uçbirimden kendiniz de yapabilirsiniz", + "appBrowserAuthComplete": "Kimlik doğrulama tamamlandı, bu sekmeyi şimdi kapatabilirsiniz.", + "setGenTitle": "Genel Ayarlar", + "setGenUpdate": "Güncelle", + "setGenNewVersion": "Uygulamanın yeni sürümü çıktı ve indirildi", + "setGenReleaseNotes": "Sürüm notlarını göster", + "setGenReloadToUpdate": "Güncellemek için yeniden başlat", + "setGenUpdateManual": "Yeni bir sürüm yayınlandı. Güncellemeleri kontrol edip otomatik olarak kurar, ancak bu sürümden otomatik güncelleme mümkün değildir.", + "setGenDownloadUpdate": "Güncellemeyi indir", + "setGenUpdateAuto": "İndir ve otomatik olarak kur", + "setGenUpdateCheck": "Kontrol et ama kurma", + "setGenNoUpdate": "Güncellemeleri asla kontrol etme", + "setGenUpdateChecking": "Güncellemeleri kontrol et", + "setGenCheckUpdate": "Güncellemeleri kontrol et", + "setGenErrorChecking": "Güncellemeler kontrol edilirken hata", + "setGenLastCheckSuccess": "Son başarılı kontrol {} 'de yapıldı", + "setGenLastCheckVer": "En son sürüm {} idi", + "setGenCheckedAt": "Kontrol edildi", + "setGenLatestVer": "en son sürümü kullanıyorsunuz", + "setGenNewVer": "yeni sürüm {} mevcut, yayınlandı", + "setGenDownloadingUpdate": "Güncelleme indiriliyor...", + "setGenExtractingUpdate": "Güncelleme çıkartılıyor...", + "setGenCheckErr": "Yeni sürüm indirilirken bir hata oluştu", + "setGenNeverChecked": "Güncellemeleri asla kontrol etme", + "setGenRestartToUpdate": "Güncellemek için KeeWeb'i yeniden başlat", + "setGenDownloadAndRestart": "Güncellemeyi indir ve yeniden başlat", + "setGenAppearance": "Görünüm", + "setGenTheme": "Tema", + "setGenThemeDefault": "Varsayılan", + "setGenThemeDark": "Koyu", + "setGenThemeLight": "Açık", + "setGenThemeBlue": "Düz mavi", + "setGenThemeFb": "Koyu mavi", + "setGenThemeBl": "Açık mavi", + "setGenThemeBrown": "Kahverengi", + "setGenThemeDb": "Koyu kahverengi", + "setGenThemeLb": "Açık kahverengi", + "setGenThemeTerminal": "Uçbirim", + "setGenThemeTe": "Uçbirim", + "setGenThemeLt": "Açık uçbirim", + "setGenThemeHighContrast": "Yüksek kontrast", + "setGenThemeHc": "Yüksek kontrast", + "setGenThemeDc": "Koyu kontrast", + "setGenThemeSol": "Solarize", + "setGenThemeSd": "Solarize koyu", + "setGenThemeSl": "Solarize aydınlık", + "setGenMoreThemes": "Diğer temalar", + "setGenAutoSwitchTheme": "Mümkün olduğunda otomatik olarak açık ve koyu tema arasında geçiş yapın", + "setGenLocale": "Dil", + "setGenLocOther": "Diğer diller eklenti olarak mevcuttur", + "setGenFontSize": "Yazı tipi boyutu", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Geniş", + "setGenFontSizeLargest": "En geniş", + "setGenTitlebarStyle": "Pencere biçimi (yeniden başlatma gerekli)", + "setGenTitlebarStyleDefault": "Varsayılan", + "setGenTitlebarStyleHidden": "Özel başlık", + "setGenTitlebarStyleHiddenInset": "Özel başlık, sürüklenebilir pencere", + "setGenShowSubgroups": "Tüm alt kümelerden girdileri göster", + "setGenTableView": "Girdileri tablo görünümünde listele", + "setGenColorfulIcons": "Listedeki özel renkli simgeler", + "setGenUseMarkdown": "Notları işaretle", + "setGenUseGroupIconForEntries": "Yeni girdiler için otomatik olarak grup simgesini kullan", + "setGenDirectAutotype": "Yalnızca bir eşleşen giriş bulunursa otomatik yazım için bunu seç", + "setGenFunction": "İşlev", + "setGenAutoSyncOnClose": "Otomatik kaydetmeyi ve eşitlemeyi kapat", + "setGenAutoSyncTimer": "Düzenli olarak otomatik kaydet ve eşitle", + "setGenAutoSyncTimerOff": "Devredışı", + "setGenAutoSyncTimerInterval": "Her {} dakikada", + "setGenRememberKeyFiles": "Anahtar dosyalarını hatırla", + "setGenNoRememberKeyFiles": "Hatırlama", + "setGenRememberKeyFilesData": "Uygulama içinde sakla", + "setGenRememberKeyFilesPath": "Sadece anahtar dosyası yolunu hatırla", + "setGenLockInactive": "Uygulama etkin değilse", + "setGenNoAutoLock": "Otomatik kilitleme yapma", + "setGenLockMinutes": "{} dakika içinde ", + "setGenLockHour": "Bir saat içinde", + "setGenLockHours": "{} saat içinde", + "setGenLockDay": "Bir gün içinde", + "setGenClearClip": "Kopyaladıktan sonra panoyu temizle", + "setGenNoClear": "Temizleme", + "setGenClearSeconds": "{} saniye içinde", + "setGenClearMinute": "Bir dakika içinde", + "setGenMinInstead": "Kapatmak yerine simge durumuna küçült", + "setGenMinOnFieldCopy": "Alan kopyasında simge durumuna küçült", + "setGenLock": "Otomatik kilit", + "setGenLockMinimize": "Uygulama küçültüldüğünde", + "setGenLockCopy": "Parola kopyalandıktan sonra", + "setGenLockAutoType": "Otomatik yazımdan sonra", + "setGenLockOrSleep": "Bilgisayar kilitlendiğinde veya uykuya geçtiğinde", + "setGenStorage": "Depolama", + "setGenDisableOfflineStorage": "Yüklenen dosyaları çevrimdışı depolamada önbelleğe alma", + "setGenShortLivedStorageToken": "Bulut depolama sağlayıcılarında kısa süreli oturumlar kullanın", + "setGenStorageLogout": "Oturumu kapat", + "setGenShowAdvanced": "Gelişmiş ayarları göster", + "setGenDevTools": "Geliştirici araçlarını göster", + "setGenTryBeta": "Yeniden başlatılana kadar beta sürümünü dene", + "setGenTryBetaWarning": "Kaydedilmemiş dosyalar", + "setGenTryBetaWarningBody": "Lütfen tüm dosyaları kaydedin ve düğmeye tekrar tıklayın", + "setGenShowAppLogs": "Uygulama günlüklerini göster", + "setGenReloadApp": "Uygulamayı yeniden yükle", + "setGenFieldLabelDblClickAutoType": "Alan etiketlerine çift tıklayınca otomatik yaz", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Touch ID'yi kullanma", + "setGenTouchIdMemory": "Yalnızca KeeWeb çalışırken Touch ID ile kilidi aç", + "setGenTouchIdFile": "Ana parola yerine her zaman Touch ID kullan", + "setGenTouchIdPass": "Sonra ana parola iste", + "setGenAudit": "Denetim", + "setGenAuditPasswords": "Parola gücüyle ilgili uyarıları göster", + "setGenAuditPasswordEntropy": "Parola uzunluğunu ve rastgele oluşunu kontrol et", + "setGenExcludePinsFromAudit": "123456 gibi kısa sayısal PIN kodlarını asla kontrol etme", + "setGenCheckPasswordsOnHIBP": "Bir çevrimiçi hizmeti kullanarak parolaları kontrol et {}", + "setGenHelpHIBP": "KeeWeb, çevrimiçi bir hizmet kullanarak parolalarınızın daha önce bir veri ihlaline maruz kalıp kalmadığını kontrol edebilir. Çevrimiçi olarak gönderilen verilere dayanarak parolanız kurtarılamaz, ancak bu şekilde kontrol edilen parolaların sayısı açığa çıkabilir. Bu hizmeti kullanırken gizliliğiniz hakkında daha fazla bilgiyi {} bulabilirsiniz. Bu seçenek etkinleştirilirse, KeeWeb parolalarınızı orada otomatik olarak kontrol edecektir.", + "setGenHelpHIBPLink": "burada", + "setGenAuditPasswordAge": "Eski parolalar", + "setGenAuditPasswordAgeOff": "Eski parolalar hakkındaki uyarıları gösterme", + "setGenAuditPasswordAgeOneYear": "Bir yıldan eski parolalar için uyarıları göster", + "setGenAuditPasswordAgeYears": "{} yıldan eski parolalar için uyarıları göster", + "setFilePath": "Dosya yolu", + "setFileStorage": "Bu dosya {} den yüklenmiştir.", + "setFileIntl": "Bu dosya dahili uygulama deposunda saklanır", + "setFileLocalHint": "Yerel dosyalar ile sorunsuz çalışmak ister misiniz?", + "setFileDownloadApp": "Bir masaüstü uygulaması indir", + "setFileSave": "Kaydet", + "setFileSaveTo": "Farklı kaydet...", + "setFileClose": "Kapat", + "setFileSync": "Eşitle", + "setFileSyncVerb": "Eşitle", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Son eşitleme", + "setFileLastSyncUnknown": "bilinmeyen", + "setFileSyncInProgress": "eşitleme devam ediyor", + "setFileSyncError": "Eşitleme hatası", + "setFilePass": "Ana parola", + "setFileConfirmPass": "Ana parolayı onayla", + "setFilePassChange": "parolanızı değiştirmek için lütfen Onay alanına yazın", + "setFilePassChanged": "parolanız değiştirildi; eski parolayı kullanmak için alanı boş bırakın", + "setFilePassNotMatch": "parolalar eşleşmiyor, lütfen tekrar yazın", + "setFileKeyFile": "Anahtar dosyası", + "setFileSelKeyFile": "Anahtar dosyasını seç", + "setFileNames": "İsimler", + "setFileDefUser": "Varsayılan kullanıcı", + "setFileEnableTrash": "Çöp kutusunu etkinleştir", + "setFileHistMode": "Girdi geçmişi", + "setFileHistLimited": "Eski geçmiş kayıtlarını otomatik olarak sil", + "setFileHistDisabled": "Geçmişi asla kaydetme", + "setFileHistUnlimited": "Geçmiş kayıtlarını sonsuza kadar sakla", + "setFileHistLen": "Geçmiş uzunluğu, giriş başına son kayıtları sakla", + "setFileHistSize": "Geçmiş boyutu, dosya başına toplam MB", + "setFileBackups": "Yedekler", + "setFileBackupEnable": "Bu dosyayı yedekle", + "setFileBackupPath": "Yedek yolu", + "setFileBackupTime": "Yedekleme yap", + "setFileBackupNow": "Şimdi yedekle", + "setFileBackupNowWorking": "İşleniyor...", + "setFileBackupError": "Yedekleme hatası", + "setFileBackupErrorDescription": "Yedek dosyasını yazarken hata", + "setFileBackupErrorIsDir": "Yedekleme yolu bilinmiyor", + "setFileBackupErrorIsDirDescription": "Yedekleme yolu bir dizine işaret ediyor gibi görünüyor. Lütfen bunun yerine bir dizin içinde bir dosya adı belirtin.", + "setFileBackupOnSave": "Dosyayı her kaydettiğimde", + "setFileBackupDaily": "Günlük", + "setFileBackupWeekly": "Haftalık", + "setFileBackupMonthly": "Aylık", + "setFileBackupManually": "El ile, otomatik yedekleme yok", + "setFileRounds": "Anahtar şifreleme turları", + "setFileKdfParams": "Anahtar üretme işlevi", + "setFileKdfParamsIter": "Tekrarlamalar", + "setFileKdfParamsMem": "Bellek, KB", + "setFileKdfParamsPar": "Benzerlik", + "setFileKeyChangeForce": "Anahtarı değiştirmek için sor (gün)", + "setFileUseKeyFile": "Anahtar dosyası kullan", + "setFileUseGenKeyFile": "Oluşturulan anahtar dosyasını kullan", + "setFileUseOldKeyFile": "Eski anahtar dosyasını kullan", + "setFileGenKeyFile": "Yeni bir anahtar dosyası oluştur", + "setFileDontUseKeyFile": "Anahtar dosyası kullanma", + "setFileEmptyPass": "Boş parola", + "setFileEmptyPassBody": "Veritabanını boş bir parolayla kaydetmek veritabanını tamamen korumasız bırakır. Gerçekten bunu yapmak istiyor musunuz?", + "setFileSaveError": "Hatayı kaydet", + "setFileSaveErrorBody": "Hataları dosyaya kaydet", + "setFileAlreadyExists": "Zaten var", + "setFileAlreadyExistsBody": "{} dosyası zaten var. Üzerine yazmak istiyor musunuz?", + "setFileUnsaved": "Kaydedilmemiş değişiklikler", + "setFileUnsavedBody": "Bu dosyada kaydedilmemiş değişiklikler var", + "setFileCloseNoSave": "Kapat ve değişiklikleri kaydetme", + "setFileDontClose": "Kapatma", + "setFileFormatVersion": "Dosya biçimi", + "setFileExportRaw": "Parolalar dışa aktarılıyor", + "setFileExportRawBody": "Dışa aktarılan dosya parolalarınızı içerecek, orada şifrelenmeyecek. Devam etmek ister misiniz?", + "setFileDeviceIntro": "Bu {} adresinden tek seferlik kodlar uygulamada görüntülenecektir.", + "setFileDeviceSettings": "Ayarlar", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "YubiKey kullanma", + "setFileRefreshYubiKeyList": "Listeyi yenile", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Ana anahtarın bir parçası olarak YubiKey kullanmak tehlikelidir ve bir şeyler ters giderse parolalarına erişiminizi kaybedebilirsiniz. Bu ayarı değiştirmeden önce dosyanızı yedeklediniz mi?", + "setFileYubiKeyErrorEmptyMac": "Takılı bir YubiKey var gibi görünüyor, ancak görünmüyor. YubiKeys'e erişmek için güvenlik ayarlarının Giriş İzleme bölümüne KeeWeb eklenmelidir.", + "setShTitle": "Kısayollar", + "setShShowAll": "tüm ögeleri göster", + "setShColors": "tüm ögeleri renkli göster", + "setShTrash": "çöp kutusuna git", + "setShFind": "ara veya yazmaya başla", + "setShClearSearch": "aramayı temizle", + "setShCopyPass": "parolayı veya seçilen alanı kopyala", + "setShCopyUser": "kullanıcıyı kopyala", + "setShCopyUrl": "web sitesini kopyala", + "setShAutoType": "seçili alanda otomatik yazım", + "setShPrev": "önceki ögeye git", + "setShNext": "sonraki ögeye git", + "setShCreateEntry": "girdi oluştur", + "setShOpen": "aç / yeni", + "setShSave": "tüm dosyaları kaydet", + "setShGen": "parola oluştur", + "setShSet": "uygulama ayarları", + "setShCopyPassGlobal": "parolayı kopyala", + "setShCopyOtp": "OTP kopyala", + "setShAutoTypeGlobal": "otomatik yazım", + "setShCopyPassOnly": "Parolayı kopyala", + "setShRestoreApp": "Aç {}", + "setShGlobal": "Uygulama arka planda çalışırken sistem genelinde çalışan bu kısayollar çalışır. Kendi kısayolunuzu seçmek için üzerilerine tıklayabilirsiniz", + "setShLock": "veritabanını kilitle", + "setShEdit": "Kısayol olarak ayarlamak için yeni bir tuş bileşimine basın", + "setPlInstallTitle": "Yeni eklentiler kur", + "setPlInstallDesc": "KeeWeb eklentileri KeeWeb'e özellikler, temalar ve diller ekler. Eklentiler, KeeWeb ile aynı ayrıcalıklarla çalışır, tüm parolalara erişebilir ve yönetebilirler. Güvenmediğiniz eklentileri asla yüklemeyin.", + "setPlInstallLabel": "Eklenti URL'si", + "setPlInstallBtn": "Kur", + "setPlInstallBtnProgress": "Kuruluyor", + "setPlUninstallBtn": "Kaldır", + "setPlDisableBtn": "Devre dışı", + "setPlEnableBtn": "Etkin", + "setPlUpdateBtn": "Güncelle", + "setPlLocaleBtn": "Bu dile geçiş yap", + "setPlThemeBtn": "Bu temaya geçiş yap", + "setPlJs": "kod", + "setPlCss": "biçimler", + "setPlLoc": "dil", + "setPlCreatedBy": "{} tarafından oluşturuldu", + "setPlLoadTime": "yüklemek için {} aldı", + "setPlLastUpdate": "Güncellemeler için son kontrol", + "setPlLoadError": "eklenti yükleme hatası", + "setPlGalleryLoading": "Eklentileri yüklüyor, lütfen biraz bekleyin", + "setPlGalleryLoadError": "Eklentiler yüklenirken hata", + "setPlInstallUrlTitle": "URL’den eklenti ekle", + "setPlInstallUrlDesc": "Eklenti galeride değilse, URL'yi elle girip yükleyebilirsiniz", + "setPlOfficial": "Resmi KeeWeb eklentisi", + "setPlSearch": "Eklentileri ara", + "setPlDevelop": "Kendi eklentilerini geliştirmek ister misin?", + "setPlDevelopStart": "Buradan başlayın", + "setPlTranslate": "Ya da {}", + "setPlTranslateLink": "uygulamayı kendi diline çevir", + "setPlAutoUpdate": "Otomatik olarak güncelle", + "setPlLoadGallery": "Eklenti galerisini yükle", + "setBrowserTitle": "Tarayıcı", + "setBrowserIntroDesktop": "KeeWeb otomatik yazım kullanarak parola girebilir, ancak bir tarayıcı eklentisi bunu yapmanın daha uygun bir yolu olabilir. KeeWeb iki tarayıcı uzantısını destekler:", + "setBrowserIntroKeeWebConnect": "Resmi KeeWeb eklentisi, KeeWeb'in özellikleri göz önünde bulundurularak oluşturulmuştur, ancak diğer eklentilerde bulunabilecek bazı gelişmiş özellikleri kaçırabilirsiniz.", + "setBrowserIntroKeePassXcBrowser": "Bu eklenti KeePassXC için geliştirildi, bir süredir piyasada ve oldukça sağlam. Eklenti, KeeWeb'in bir parçası değildir ve uyumluluk sorunları olabilir.", + "setBrowserIntroWeb": "Farklı sayfalarda KeeWeb'den parolaları otomatik olarak doldurmak için tarayıcı eklentimizi kurun. Tarayıcı eklentisi, parolaları almak için tarayıcınızdaki bir KeeWeb sekmesine bağlanacaktır. Eklentiyi indirmek için buraya tıklayın:", + "setBrowserNotEnabled": "Tarayıcı bütünleşmesi etkinleştirilmedi, eklentiler KeeWeb'e bağlanamayacak. Etkinleştirmek için aşağıdaki onay kutularını kullanın:", + "setBrowserEnablePerBrowser": "Aşağıdaki onay kutularını kullanarak tarayıcı bütünleşmesini etkinleştirin:", + "setBrowserFocusIfLocked": "Açık dosya yokken bir tarayıcı eklentisi bağlanmaya çalışırsa KeeWeb'i aç", + "setBrowserFocusIfEmpty": "URL'ye göre eşleşme yoksa girdi seçim ekranını göster", + "setBrowserOtherBrowsers": "Diğer tarayıcılar", + "setBrowserExtensionFor": "{} için", + "setBrowserExtensionNotSupported": "Desteklenmiyor", + "setBrowserExtensionHelp": "Nasıl kurulur?", + "setBrowserExtensionInstall": "Eklentiyi kur", + "setBrowserExtensionKPXCWarnHeader": "{} çalışmayı durduracak", + "setBrowserExtensionKPXCWarnBody1": "Bir eklentiyi birkaç uygulamaya bağlamak mümkün değil. Eklentiyi KeeWeb'e bağlarsanız, uygulama ilişkilendirmesinin üzerine yazarız, bu da {} ile bütünleşmenin çalışmayı durduracağı anlamına gelir. Bu onay kutusunun işaretini kaldırsanız bile, {} ile olan ilişki geri yüklenmeyecektir. Tekrar çalışmasını sağlamak için {} ayarlarında tarayıcı bütünleşmesini yapılandırın.", + "setBrowserExtensionKPXCWarnBody2": "KeeWeb'i kullanmak için eklenti yapılandırılsın mı?", + "setBrowserSessions": "Oturumlar", + "setBrowserSessionsEmpty": "Bağlı oturum yok.", + "setBrowserSessionsIntro": "Bu eklenti artık KeeWeb'e bağlı.", + "setBrowserSessionsActiveTooltip": "Etkin oturum", + "setBrowserSessionsActiveText": "Bu oturum aktif. Aşağıdaki izinlere dayalı olarak KeeWeb ile veri alışverişi yapabilir:", + "setBrowserSessionsInactiveTooltip": "Etkin olmayan oturum", + "setBrowserSessionsInactiveText": "Bu oturum etkin değil. Eklenti KeeWeb'e bağlı, ancak veri alışverişi yapmayı denemedi. Eklenti herhangi bir şey istediğinde, ne paylaşmak istediğinizi seçebileceksiniz.", + "setBrowserSessionsDeniedTooltip": "Giriş engellendi", + "setBrowserSessionsDeniedText": "Bu oturum etkin değil. Eklenti KeeWeb'e bağlı, ancak verilere erişimi reddettiniz.", + "setBrowserSessionsConnectedDate": "Bağlı", + "setBrowserSessionsTerminate": "Bu oturumu sonlandır", + "setBrowserSessionsAccessToFiles": "Dosyalara erişime izin ver", + "setBrowserSessionsNoFileAccess": "Eklentinin herhangi bir dosyaya erişimi yok, KeeWeb'den parolaları alamayacak.", + "setBrowserSessionsPasswordsRead": "Parolalar okundu", + "setBrowserSessionsPasswordsWritten": "Parolalar kaydedildi", + "setDevicesTitle": "Cihazlar", + "setDevicesEnableUsb": "USB cihazlarıyla etkileşimi etkinleştir", + "setDevicesYubiKeyIntro": "YubiKey kullanmadan önce {} okumanız önerilir.", + "setDevicesYubiKeyIntroLink": "bu belge", + "setDevicesYubiKeyToolsDesc": "Bu kipte YubiKey kullanabilmek için {} adlı bir araç kurmanız gerekir.", + "setDevicesYubiKeyToolsDesc2": "{} bu araç hakkında daha fazla bilgi almak için.", + "setDevicesYubiKeyToolsDescLink": "Buraya tıkla", + "setDevicesYubiKeyToolsStatusChecking": "{} kurulu olup olmadığını kontrol et", + "setDevicesYubiKeyToolsStatusOk": "{} kuruldu", + "setDevicesYubiKeyToolsStatusError": "{} kurulu değil veya çalışmıyor", + "setDevicesYubiKeyOtpTitle": "Tek seferlik kodlar", + "setDevicesYubiKeyOtpDesc": "YubiKey, farklı hizmetler için tek seferlik kodlar oluşturmak için kullanılabilir.", + "setDevicesYubiKeyOtpShowIcon": "Başlangıç ​​ekranında simgeyi göster", + "setDevicesYubiKeyOtpAutoOpen": "Açık dosyalar olduğunda tek seferlik kodları otomatik olarak yükle", + "setDevicesYubiKeyOtpMatchEntries": "Girdilerde eşleşen tek seferlik kodları göster", + "setDevicesYubiKeyChalRespTitle": "Karşılama Yanıtı", + "setDevicesYubiKeyChalRespDesc": "Karşılama yanıtı kipinde bir YubiKey kullanmak da mümkündür, böylece dosyaları şifrelemek için kullanılan özel anahtar parçası YubiKey'de bulunur.", + "setDevicesYubiKeyChalRespShow": "Dosyaları açarken YubiKey kullanım seçeneğini göster", + "setDevicesYubiKeyStuckWorkaround": "Yükleme sırasında açılmıyor gibi görünüyorsa YubiKey'i yeniden bağlayın", + "setDevicesYubiKeyRememberChalResp": "Uygulama açıkken karşılama yanıtını hatırlayın", + "setAboutTitle": "Hakkında", + "setAboutBuilt": "Bu uygulama, bu müthiş araçlar ile oluşturuldu", + "setAboutLic": "Lisans", + "setAboutLicComment": "Uygulamanın kendisi ve içerdiği tüm bileşenler MIT lisansı altında lisanslanmıştır.", + "setAboutFirst": "Bu açık kaynak kodlu uygulama şu kişiler tarafından oluşturuldu {}", + "setAboutSecond": "ve {} altında lisanslanmıştır.", + "setAboutSource": "Kaynak kod ve sorunlar {} üzerinde.", + "setHelpFormat": "Dosya Biçimi", + "setHelpFormatBody": "Bu, web teknolojileriyle oluşturulmuş bir {} uygulamasının limanıdır. Dosyaları KeePass biçiminde (kdbx) anlar. Bu tür dosyaları (parola veritabanları) KeePass veya bu uygulamada oluşturabilirsiniz. Dosya biçimi %100 uyumludur ve her iki uygulama tarafından da anlaşılır.", + "setHelpProblems": "Yardıma mı ihtiyacın var?", + "setHelpProblems1": "Bir şeyler ters giderse, lütfen {}", + "setHelpProblems2": "yada {}", + "setHelpOpenIssue": "GitHub’da bir sorun aç", + "setHelpContactLink": "geliştirici ile doğrudan iletişime geçin", + "setHelpAppInfo": "Uygulama bilgisi", + "setHelpOtherPlatforms": "Diğer ortamlar", + "setHelpDesktopApps": "Masaüstü uygulaması", + "setHelpWebApp": "Web uygulaması", + "setHelpUpdates": "Güncellemeler", + "setHelpTwitter": "Twitter uygulaması", + "dropboxSetupDesc": "Dropbox'ı kendi kendine barındırılan bir uygulamada kullanmak için bazı yapılandırmalar gerekir. Lütfen kendi Dropbox uygulamanızı oluşturun ve aşağıdaki anahtarı girin.", + "dropboxAppKey": "Dropbox uygulama anahtarı", + "dropboxAppKeyDesc": "Anahtarı Dropbox uygulamanızdan kopyalayın (Geliştirici ayarları)", + "dropboxAppKeyHint": "uygulama anahtarınız", + "dropboxAppSecret": "Dropbox uygulama gizli kodu", + "dropboxAppSecretDesc": "Gizli kodu uygulama anahtarının yanında bulabilirsiniz", + "dropboxFolder": "Uygulama klasörü", + "dropboxFolderDesc": "Uygulamanız tüm Dropbox'lara bağlıysa (uygulama klasörü değil), klasörü kdbx dosyalarınızla buraya ayarlayın", + "dropboxFolderSettingsDesc": "Dropbox üstünde dosyaların depolanacağı herhangi bir klasör seçin (varsayılan kök klasör)", + "dropboxFolderPlaceholder": "varsayılan klasör", + "dropboxLink": "Uygulamayı bağla", + "dropboxLinkApp": "Uygulama klasörü (Uygulama/KeeWeb)", + "dropboxLinkFull": "Dropbox veya herhangi bir klasör", + "dropboxLinkCustom": "Dropbox uygulaması", + "gdriveSharedWithMe": "Benimle paylaşılanlar", + "gdriveSharedDrives": "Paylaşımlı alan", + "gdriveTeamDrives": "Takım alanı", + "webdavSaveMethod": "Yöntemi kaydet", + "webdavSaveMove": "Karşıya geçici bir dosya yükle ve taşı", + "webdavSavePut": "PUT ile kdbx dosyasının üzerine yaz", + "webdavNoLastModified": "Son-Düzenlenme HTTP üst bilgisi yok", + "webdavStatReload": "Son-Düzenlenme HTTP başlığına güvenmek yerine her zaman dosyayı yeniden yükleyin", + "launcherSave": "Parola Veritabanını Kaydet", + "launcherFileFilter": "KeePass dosyaları", + "authPopupRequired": "Açılır pencereler engellendi", + "authPopupRequiredBody": "Lütfen tarayıcınızda açılır pencerelere izin verin veya tekrar deneyin.", + "exportFileInfo": "Dosya bilgisi", + "exportHtmlName": "İsim", + "exportHtmlDate": "Aktarma tarihi", + "exportGenerator": "Yazılım", + "exportDescription": "Bu dosya {} ile oluşturulmuştur.", + "importCsvTitle": "CSV’den içe aktar", + "importCsvRun": "İçeri Aktar", + "importIgnoreField": "Yoksay", + "importTo": "Girişler içe aktarılacaktır", + "importNewFile": "Yeni dosya", + "yubiKeyStuckError": "YubiKey takılmış gibi görünüyor, otomatik onarım uygulama ayarlarında etkinleştirilebilir.", + "yubiKeyNoKeyHeader": "YubiKey gerekli", + "yubiKeyNoKeyBody": "Lütfen YubiKey'nizi {} seri numarasıyla ekleyin", + "yubiKeySlot": "yuva", + "yubiKeyTouchRequestedHeader": "YubiKey'e dokunun", + "yubiKeyTouchRequestedBody": "Lütfen YubiKey'nize {} seri numarası ile dokunun", + "yubiKeyDisabledErrorHeader": "USB devre dışı", + "yubiKeyDisabledErrorBody": "Bu dosyayı açmak için YubiKey gereklidir, lütfen ayarlardan USB cihazlarını etkinleştirin.", + "yubiKeyErrorWithCode": "YubiKey hatası, kod {}.", + "bioOpenAuthPrompt": "aç \"{}\"", + "extensionErrorNoOpenFiles": "Açık dosya yok", + "extensionErrorUserRejected": "İstek reddedildi", + "extensionErrorNoMatches": "Eşleşen giriş yok", + "extensionErrorAlertDisplayed": "Görüntülenen başka bir iletişim kutusu olduğundan sorgulamıyor, lütfen tekrar deneyin", + "extensionConnectHeader": "Eklenti veri alışverişi", + "extensionConnectIntro": "Kendini {} olarak tanımlayan bir tarayıcı eklentisi, KeeWeb ile veri alışverişi yapmaya çalışıyor.", + "extensionConnectUnknownActivity": "KeeWeb, bağlı uygulamanın göründüğü gibi olduğunu doğrulamaz. İsteği yalnızca bu etkinliği tanıyorsanız onaylayın.", + "extensionConnectFiles": "Bu oturumda şunlara erişime izin verin:", + "extensionConnectAllOtherFiles": "Diğer tüm dosyalar", + "extensionConnectAllFiles": "Tüm dosyalar", + "extensionConnectAskGet": "Eklentiye parolaları iade etmeden önce sor:", + "extensionConnectAskGetMultiple": "birden fazla eşleşme varsa", + "extensionConnectAskGetAlways": "her zaman", + "extensionConnectAskSave": "Yeni parolaları KeeWeb'e kaydetmeden önce sor:", + "extensionConnectAskSaveAlways": "her zaman", + "extensionConnectAskSaveAuto": "otomatik olarak kaydetmek mümkün olmadığında", + "extensionConnectSettingsAreForSession": "Burada seçtiğiniz ayarlar sadece aktif oturum için geçerlidir. Oturumları KeeWeb ayarlarında görüntüleyebilir ve yönetebilirsiniz.", + "extensionUnlockMessage": "Bir tarayıcı eklentisi bağlamak için kilidi açın", + "extensionNewGroupHeader": "Yeni grup", + "extensionNewGroupBody": "{} yeni bir grup oluşturmaya çalışıyor. Buna izin ver?", + "extensionNewGroupPath": "Grup yolu", + "extensionNewGroupFile": "Bu grup şurada oluşturulacak:", + "extensionSaveEntryHeader": "Parolayı kaydet", + "extensionSaveEntryBody": "{} bir parola kaydetmeye çalışıyor. Buna izin ver?", + "extensionSaveEntryAuto": "Bu oturumda diğer parolaları otomatik olarak kaydet", + "extensionSaveEntryNewGroup": "yeni grup", + "extensionSelectPasswordFor": "{} için bir parola seç", + "selectEntryHeader": "Girdi seç", + "selectEntryEnterHint": "Vurgulanan girdiyi kullan", + "selectEntryTypingHint": "Filtrelemek için yazmaya başlayın", + "selectEntryContains": "Metin içerir", + "selectEntrySubdomains": "Alt alanlar", + "selectEntryFieldHeader": "Alan seç", + "selectEntryFieldTouch": "Tek seferlik bir kod oluşturmak için cihazınızdaki düğmeye basın." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/uk/index.html b/keeweb/plugins/translations/uk/index.html new file mode 100644 index 0000000..841ba13 --- /dev/null +++ b/keeweb/plugins/translations/uk/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: Українська + + + + +

KeeWeb Language: Українська

+ https://plugins.keeweb.info/translations/uk + + diff --git a/keeweb/plugins/translations/uk/manifest.json b/keeweb/plugins/translations/uk/manifest.json new file mode 100644 index 0000000..f16c9c7 --- /dev/null +++ b/keeweb/plugins/translations/uk/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.25.0", + "manifestVersion": "0.1.0", + "name": "language-ukrainian", + "description": "Ukrainian language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=uk", + "resources": { + "loc": "HjXQtdXL1PPJLzZnL9ZORmJxV3qjqWlQvsfvXtlZR4ZSkCUIapfHOPlRXXggXUoK0++chtduliPbG5pDIL+zwVvyt5JtZmp8eK6vYdEeVXolIoG3/KIZR1hqTfJjYj6RMUU5xkeYkvcggQBjXasVBKPJUJpSwq2ngAF1vANey7PLvc+CJHsSqqYl9sAac5C7S1De9Rg8eCECceJjgkh4AOYBmtQC4q8kX4XpU/IyPQ+YXKSHLRJIPV/PddvM6At3/4akIQXU4DhLS2rVfi/AXP7r7eGFNyalpIcLE/ugtt42IS8upOI9fpMDZKF/XszuYTpFvOfEvN4z73qOBm0/Mg==" + }, + "locale": { + "name": "uk", + "title": "Українська", + "flag": "🇺🇦" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/uk/uk.json b/keeweb/plugins/translations/uk/uk.json new file mode 100644 index 0000000..45a0229 --- /dev/null +++ b/keeweb/plugins/translations/uk/uk.json @@ -0,0 +1,776 @@ +{ + "retToApp": "Повернутись до програми", + "name": "Назва", + "icon": "Піктограма", + "title": "Назва", + "password": "Пароль", + "user": "Користувач", + "website": "Вебсайт", + "tags": "Мітки", + "notes": "Нотатки", + "entry": "Запис", + "group": "Група", + "noTitle": "немає назви ", + "or": "чи", + "history": "історія ", + "template": "шаблон", + "templates": "шаблони", + "notImplemented": "Не реалізовано ", + "saveChanges": "Зберегти зміни ", + "discardChanges": "Відкинути зміни", + "advanced": "Додатково ", + "shortcuts": "Гарячі клавіші ", + "help": "Допомога ", + "settings": "Налаштування ", + "plugins": "Плагіни", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "помилка", + "oneMinute": "одна хвилина", + "minutes": "{} хвилин", + "oneHour": "одна година", + "hours": "{} годин", + "oneDay": "один день", + "days": "{} днів", + "oneWeek": "один тиждень", + "oneMonth": "один місяць", + "oneYear": "один рік", + "cache": "кеш", + "file": "файл", + "device": "пристрій", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Диск ", + "onedrive": "OneDrive", + "menuAllItems": "Всі елементи ", + "menuColors": "Колір ", + "menuTrash": "Смітник", + "menuSetGeneral": "Загальні", + "menuSetBrowser": "Браузер", + "menuSetAbout": "Про програму", + "menuSetDevices": "Пристрої", + "menuAlertNoTags": "Без тегів", + "menuAlertNoTagsBody": "Ви можете додавати нові теги при редагуванні полів в розділі Теги.", + "menuEmptyTrash": "Очистити смітник", + "menuEmptyTrashAlert": "Очистити смітник?", + "menuEmptyTrashAlertBody": "Ви не зможете повернути елементи", + "menuItemCollapsed": "Двічі натисніть, щоб розгорнути", + "menuRestoreApp": "Відкрити {}", + "menuQuitApp": "Вийти з {}", + "sysMenuAboutKeeWeb": "Про {}", + "sysMenuServices": "Послуги", + "sysMenuHide": "Приховати {}", + "sysMenuHideOthers": "Приховати інші", + "sysMenuUnhide": "Показати все", + "sysMenuQuit": "Вийти з {}", + "sysMenuEdit": "Редагувати", + "sysMenuUndo": "Відновити", + "sysMenuRedo": "Повернути", + "sysMenuCut": "Вирізати", + "sysMenuCopy": "Копіювати", + "sysMenuPaste": "Вставити", + "sysMenuSelectAll": "Вибрати все", + "sysMenuWindow": "Вікно", + "sysMenuMinimize": "Згорнути", + "sysMenuClose": "Закрити вікно", + "alertYes": "Так", + "alertNo": "Ні", + "alertOk": "ОК", + "alertCancel": "Скасувати ", + "alertSignIn": "Увійти ", + "alertCopy": "Копіювати ", + "alertClose": "Закрити ", + "alertDoNotAsk": "Більше ніколи не запитувати", + "alertAllow": "Дозволити", + "alertDeny": "Заборонити", + "appBeta": "ПОПЕРЕДЖЕННЯ: бета-версія, тільки для ознайомлення ", + "footerOpen": "Відкрити / Створити ", + "footerSyncError": "Помилка синхронізації ", + "footerTitleGen": "Генерувати", + "footerTitleLock": "Заблокувати", + "genLen": "Довжина ", + "genNewPass": "Новий пароль ", + "genPresetDefault": "Cтандартний шаблон", + "genPresetDerived": "Як старий пароль", + "genPresetPronounceable": "Вимовлюваний", + "genPresetMed": "Середньої довжини", + "genPresetLong": "Довгий", + "genPresetPin4": "4-значний PIN-код", + "genPresetMac": "MAC-адреса", + "genPresetHash128": "128-бітний хеш", + "genPresetHash256": "256-бітний хеш", + "genHidePass": "Сховати пароль", + "genShowPass": "Показати пароль", + "grpTitle": "Група ", + "grpSearch": "Увімкнути пошук записів у цій групі", + "grpAutoType": "Увімкнути автовведення", + "grpAutoTypeSeq": "Послідовність автовведення", + "grpAutoTypeSeqDefault": "Використовувати типову послідовність автовведення", + "grpTrash": "Видалити групу з усіма елементами", + "tagTitle": "Мітка", + "tagTrash": "Видалити мітку з усіх записів", + "tagRename": "Перейменовувати", + "tagTrashQuestion": "Видалити мітку з усіх записів?", + "tagTrashQuestionBody": "Ця мітка буде видалена з усіх записів. І не буде простого способу повернути його назад.", + "tagExists": "Мітка вже існує", + "tagExistsBody": "Мітка з такою назвою вже існує. Будь ласка, оберіть іншу назву.", + "tagBadName": "Погана назва", + "tagBadNameBody": "Назва мітки не може містити символи: {}. Будь ласка, приберіть їх.", + "genPsTitle": "Генератор шаблонів", + "genPsCreate": "Новий шаблон", + "genPsDelete": "Видалити шаблон", + "genPsNew": "шаблон", + "genPsEnabled": "Показати в списку шаблонів", + "genPsDefault": "Вибраний типово", + "genPsDefaultLength": "Стандартна довжина", + "genPsUpper": "Великі латинські літери", + "genPsLower": "Малі латинські літери", + "genPsDigits": "Цифри", + "genPsSpecial": "Спеціальні символи", + "genPsBrackets": "Дужки", + "genPsHigh": "Символи розширеного ASCII", + "genPsAmbiguous": "Неоднозначні символи", + "genPsInclude": "Додаткові символи", + "genPsExample": "Приклад згенерованого пароля", + "genPsPattern": "Шаблон", + "genPsPatternHelp": "Шаблони можна використовувати для встановлення власних правил підбору символів. Наприклад, 1-AA генеруватиме паролі, що починаються цифрою, після якої буде дефіс і дві літери. Ви можете використовувати такі символи:", + "genPsAllRanges": "Усі символи", + "genPsIncluded": "Інші символи додано вище", + "keyChangeTitleRemote": "Головний пароль змінено", + "keyChangeMessageRemote": "Головний пароль цієї бази паролів було змінено. Введіть новий пароль", + "keyChangeTitleExpired": "Термін дії головного пароля завершився", + "keyChangeMessageExpired": "Термін дії головного пароля цієї бази паролів завершився. Будь ласка, введіть новий пароль", + "keyChangeRepeatPassword": "Пароль ще раз", + "keyEnter": "Enter", + "keyEsc": "Esc", + "iconFavTitle": "Завантажити піктограму вебсайту", + "iconSelCustom": "Обрати власну піктограму", + "listEmptyTitle": "Порожньо", + "listEmptyAdd": "додайте за допомогою кнопки {} вище", + "listGroup": "Група", + "listNoWebsite": "сайт відсутній", + "listNoUser": "користувач відсутній", + "listNoAttachments": "немає вкладень", + "listAddTemplateHeader": "Шаблони", + "listAddTemplateBody1": "Шаблони дозволяють створювати записи одним натисканням миші. Додайте щось в шаблон, а потім натисніть {} ще раз, щоб використати цей шаблон.", + "listAddTemplateBody2": "Ви завжди можете знайти свої шаблони в групі {}.", + "searchAddNew": "Додати новий", + "searchSort": "Сортування", + "searchCreated": "Створено", + "searchUpdated": "Оновлено", + "searchAttachments": "Вкладення", + "searchAZ": "А {} Я", + "searchZA": "Я {} А", + "searchON": "Старий {} Новий", + "searchNO": "Новий {} Старий", + "searchShiftClickOr": "shift-click або", + "searchAdvTitle": "Розширений пошук", + "searchSearchIn": "Шукати в", + "searchOther": "Інші поля", + "searchProtect": "Захищені поля", + "searchOptions": "Налаштування", + "searchCase": "З урахуванням регістру", + "searchRegex": "RegEx", + "searchRank": "Автоматично", + "searchExact": "Точний збіг", + "openOpen": "Відкрити", + "openNew": "Створити", + "openNewFile": "Новий", + "openMore": "Більше", + "openDemo": "Демонстрація", + "openGenerate": "Генерувати", + "openXml": "Імпортувати XML", + "openCaps": "Caps Lock увімкнено", + "openClickToOpen": "Натисніть, щоб відкрити файл", + "openKeyFile": "Файл-ключ", + "openKeyFileDropbox": "(із Dropbox)", + "openDropHere": "перетягніть файли сюди", + "openFailedRead": "Не вдалося прочитати файл", + "openNothingFound": "Нічого не знайдено", + "openNothingFoundBody": "Немає файлів, які могли б бути відкриті.", + "openSelectFile": "Оберіть файл", + "openSelectFileBody": "Оберіть файл, який ви бажаєте відкрити", + "openPassFor": "Пароль для", + "openRemoveLastQuestion": "Видалити локальний файл?", + "openRemoveLastQuestionBody": "Файл, який ви видаляєте зберігається тільки всередині програми. Видалити його назавжди?", + "openRemoveLastQuestionModBody": "Файл має локальні зміни. Видалити його без збереження змін?", + "openLocalFile": "Локальний файл", + "openLocalFileBody": "Ви збираєтеся відкрити файл, який зберігатиметься всередині програми. Зроблені зміни не зберігатимуться у файлову систему. Щоб отримати файл з вашими даними, експортуйте його з налаштувань.", + "openLocalFileDontShow": "Не показувати знову", + "openWrongFile": "Поганий файл", + "openWrongFileBody": "Даний формат файлу не підтримується. Програма працює з файлами бази даних KeePass (kdbx).", + "openKdbFileBody": "Ви намагаєтеся відкрити старий формат файлу (KDB). Ця програма підтримує тільки новий формат (kdbx). Скористайтеся KeePass v2 для конвертації в новий формат.", + "openConfigHeader": "Налаштування {}", + "openUrl": "URL", + "openUrlDesc": "https://сервер/шлях/файл.kdbx або просто файл.kdbx", + "openUser": "Логін", + "openUserDesc": "Користувач WebDAV (якщо потрібно)", + "openUserPlaceholder": "немає логіну", + "openPass": "Пароль", + "openPassDesc": "Пароль сервера WebDAV (не вашого файлу паролів)", + "openPassPlaceholder": "немає пароля", + "openConfigError": "Помилка: {}", + "openConfigErrorNotFound": "Файл не знайдено", + "openError": "Помилка", + "openErrorDescription": "Помилка під час відкриття файлу", + "openErrorDescriptionMaybeTouchIdChanged": "Ця помилка схожа на таку, що зазвичай стається при зміні налаштувань Touch ID, наприклад, ви додали чи вилучили відбиток. Якщо це такий випадок, відкрийте Налаштування, вимкніть Touch ID, а потім увімкніть знову.", + "openErrorFileNotFound": "Файл не знайдено", + "openListErrorBody": "Помилка завантаження списку файлів", + "openShowAllFiles": "Показати всі файли", + "openFileNoCacheError": "Файл не знайдено в кеші. Це може трапитися, якщо сховище браузера було очищено. Щоб відкрити файл, видаліть його з KeeWeb і додайте заново.", + "openChalRespHeader": "Виклик-Відповідь", + "openChalRespLoading": "Список YubiKey завантажується", + "openChalRespSelectYubiKey": "Оберіть YubiKey, який ви бажаєте використовувати", + "openChalRespErrorEmpty": "Не знайдено жодного YubiKey", + "openChalRespErrorEmptyMac": "Вперше використовуєте цю функцію на macOS? KeeWeb необхідно додати до розділу спостереження введення в параметрах безпеки.", + "detAttDownload": "Затисніть Shift і клацніть по вкладенню, щоб завантажити його, або натисніть", + "detAttDelToRemove": "Delete для видалення", + "detAttSave": "Зберегти як ...", + "detEmpty": "Тут будуть показані ваші паролі", + "detGroupRestore": "Щоб відновити цю групу, перетягніть її зі смітника в будь-яку іншу групу.", + "detHistoryClickPoint": "Натисніть на точку на часовій шкалі, щоб побачити стан", + "detHistoryReturn": "повернутися до запису", + "detHistoryRevert": "Повернути до стану", + "detHistoryDel": "Видалити стан", + "detHistoryEmpty": "порожньо", + "detHistoryModified": "змінено", + "detHistoryRec": "запис", + "detHistoryRecs": "записи", + "detHistoryVersion": "Версія", + "detHistorySaved": "Збережено", + "detHistoryNoTitle": "немає назви", + "detHistoryCurState": "поточний стан", + "detHistoryCurUnsavedState": "поточний незбережений стан", + "detHistoryRevertAlert": "Повернутися до цього стану історії?", + "detHistoryRevertAlertBody": "Ваш поточний стан буде збережено в історії.", + "detHistoryDeleteAlert": "Видалити цей стан історії?", + "detHistoryDeleteAlertBody": "Ви не зможете відновити його.", + "detHistoryDiscardChangesAlert": "Скасувати зміни, зроблені в запису?", + "detHistoryDiscardChangesAlertBody": "Незбережені зміни буде втрачено без можливості відновлення.", + "detBackToList": "назад до списку", + "detSetIconColor": "Змінити колір", + "detSetIcon": "Змінити піктограму", + "detDropAttachments": "відпустіть файл для прикріплення", + "detDelEntry": "Видалити", + "detDelEntryPerm": "Видалити назавжди", + "detExpires": "Завершується", + "detExpired": "завершений", + "detGroup": "Група", + "detCreated": "Створений", + "detUpdated": "Оновлений", + "detNetField": "Нове поле", + "detAttachments": "Вкладення", + "detDelFromTrash": "Видалити зі смітника?", + "detDelFromTrashBody": "Ви не зможете скасувати цю операцію.", + "detDelFromTrashBodyHint": "Щоб швидко видалити весь вміст смітника, натисніть піктограму очищення в меню смітника.", + "detDelToTrash": "Видалити запис?", + "detDelToTrashBody": "Запис буде переміщено до смітника.", + "detFieldCopied": "скопійовано", + "detFieldCopiedTime": "Копіюється {} секунд", + "detCopyHint": "Ви можете скопіювати значення поля, клацнувши на його назві", + "detMore": "більше", + "detClickToAddField": "натисніть, щоб додати нове поле", + "detMenuAddNewField": "Нове поле", + "detMenuAddNewWebsite": "Додати інший вебсайт", + "detMenuShowEmpty": "Показати порожні поля", + "detMenuHideEmpty": "Приховати порожні поля", + "detMenuAddField": "Додати {}", + "detMenuCopyPassword": "Скопіювати пароль", + "detMenuCopyUser": "Скопіювати логін", + "detMenuCopyOtp": "Скопіювати одноразовий пароль", + "detSetupOtp": "Одноразові коди", + "detClone": "Зробити копію", + "detCopyEntryToClipboard": "Скопіювати всі поля", + "detClonedName": "Копіювати", + "detAutoType": "Автовведення", + "detAutoTypeSettings": "Налаштування автовведення", + "detAutoTypeEnabled": "Увімкнути автовведення для цього запису", + "detAutoTypeSequence": "Натискань клавіш", + "detAutoTypeInput": "Введення", + "detAutoTypeShortcutsDesc": "{} або {} в той час як додаток неактивний", + "detAutoTypeObfuscation": "Змішати реальні натискання клавіш з випадковими", + "detAutoTypeWindow": "Вікно", + "detAutoTypeInputWindow": "Заголовок вікна", + "detSetupOtpAlert": "Сканувати QR код", + "detSetupOtpAlertBody": "Скопіюйте QR-код, який показано на сторінці авторизації.", + "detSetupOtpAlertBody1": "1. перейти на сторінку авторизації", + "detSetupOtpAlertBody2": "2. зробити скріншот QR коду {}", + "detSetupOtpAlertBody3": "3. вставити тут {}", + "detSetupOtpAlertBody3Mobile": "3. вибрати його або сканувати за допомогою камери з допомогою кнопки Вибір/Сканування нижче", + "detSetupOtpAlertBody4": "Якщо ви не можете сканувати код, натисніть Введіть код вручну", + "detSetupOtpManualButton": "Введіть код вручну", + "detSetupOtpScanButton": "Вибір/Сканування", + "detSetupOtpAlertBodyWith": "з {}", + "detOtpImageError": "Помилка зчитування зображення", + "detOtpImageErrorBody": "На жаль, ми не змогли прочитати формат зображення, будь ласка, зв'яжіться з авторами програми з докладною інформацією про помилки.", + "detOtpImageReading": "Зчитування QR коду...", + "detOtpQrError": "Помилка зчитування QR коду...", + "detOtpQrErrorBody": "На жаль, ми не змогли прочитати QR-код, будь ласка, спробуйте ще раз або зв'яжіться з авторами програми з докладною інформацією про помилки.", + "detOtpQrWrong": "Невірний QR код", + "detOtpQrWrongBody": "QR-код успішно відскановано, але він не містить одноразового коду.", + "detOtpField": "Одноразовий пароль", + "detOtpClickToTouch": "Натисніть, щоб згенерувати", + "detOtpGenerating": "Генерується...", + "detOtpTouch": "Натисніть на ваш {}", + "detLockField": "Заблокувати поле, щоб його вміст був недоступним для пошуку й перегляду. Щоб побачити вміст поля, необхідно натиснути на ньому.", + "detUnlockField": "Розблокувати поле, негайно зробивши його вміст доступним для пошуку й перегляду.", + "detRevealField": "Показати", + "detHideField": "Сховати", + "detAutoTypeField": "Автовведення", + "detIssuesHideTooltip": "Приховати це попередження", + "detIssueWeakPassword": "Цей пароль ненадійний. Рекомендується його змінити.", + "detIssuePoorPassword": "Цей пароль дуже ненадійний. Наполегливо рекомендується його змінити.", + "detIssuePwnedPassword": "Цей пароль було викрито з витоком даних, згідно з {}. Рекомендується його змінити.", + "detIssuePasswordCheckError": "При перевірці надійності пароля виникла помилка.", + "detIssueOldPassword": "Пароль застарілий.", + "detIssueCloseAlertHeader": "Приховати проблеми з паролями", + "detIssueCloseAlertBody": "Ви можете приховати це попередження різними способами:", + "detIssueCloseAlertEntry": "Не показувати для цього запису.", + "detIssueCloseAlertSettings": "Змінити глобальні налаштування", + "autoTypeEntryFields": "Поля запису", + "autoTypeModifiers": "Клавіші-модифікатори", + "autoTypeKeys": "Ключі", + "autoTypeLink": "ще", + "autoTypeError": "Помилка автовведення", + "autoTypeErrorGeneric": "При виконанні автовведення виникла помилка: {}", + "autoTypeErrorAccessibilityMacOS": "Спроба відправити команду в програму виявилася невдалою. Це могло статися через відсутні дозволи. Натисніть тут для перегляду подробиць:", + "autoTypeErrorGlobal": "Для використання комбінацій клавіш на рівні системи, зробіть активним вікно програми, в якому ви хочете ввести пароль", + "autoTypeErrorNotInstalled": "{} не встановлений", + "autoTypeHeader": "Автовведення: Оберіть", + "autoTypeMsgNoWindow": "Нам не вдалося отримати активний заголовок вікна, почніть вводити для пошуку", + "autoTypeMsgMatchedByWindow": "Обрати пароль для {}", + "autoTypeNoMatches": "немає збігів", + "autoTypeSelectionHint": "Введіть послідовність автовведення", + "autoTypeSelectionHintAction": "Ввести тільки пароль", + "autoTypeSelectionHintOpt": "Ввести тільки логін", + "autoTypeSelectionHintShift": "Інші поля", + "autoTypeSelectionOtp": "Одноразовий код", + "autoTypeUnlockMessage": "Відімкнути для автозаповнення", + "appSecWarn": "Не безпечно!", + "appSecWarnBody1": "Ви завантажили цю програму через незахищене з'єднання. Хтось може спостерігати за вами і викрасти ваші паролі. Ми наполегливо рекомендуємо вам зупинитися, якщо тільки ви не впевнені в своїх діях.", + "appSecWarnBody2": "Так, ваша база даних в зашифрованому вигляді, але ніхто не може гарантувати, що програма не була змінена на шляху до вас.", + "appSecWarnBtn": "Я розумію, що ризик, як і раніше", + "appUnsavedWarn": "Незбережені зміни!", + "appUnsavedWarnBody": "У вас є незбережені файли, якщо ви закриєте програму, зміни будуть втрачені.", + "appDontExitBtn": "Не виходьте", + "appCannotLockAutoInit": "Програму не можна заблокувати, тому що автозбереження вимкнено.", + "appCannotLock": "У вас є незбережені зміни, які будуть втрачені. Продовжити?", + "appAutoSave": "Зберігати зміни автоматично", + "appSaveError": "Помилка збереження", + "appSaveErrorBody": "Помилка авто-збереження файлу", + "appSaveErrorBodyMul": "Помилка авто-збереження файлів:", + "appSaveErrorExitLoseChanges": "Вийти без збереження змін", + "appSaveErrorExitLoseChangesBody": "Ви можете вийти з програми і втратити всі зміни, або відкрити налаштування й експортувати дані", + "appSettingsError": "Помилка завантаження програми", + "appSettingsErrorBody": "Сталася помилка при завантаженні налаштувань програми. Ретельно перевірте URL-адресу програми, або зверніться до адміністратора.", + "appNotSupportedError": "Ваш браузер не підтримує деякі важливі функції, які ми використовуємо.", + "appTabWarn": "Забагато вкладок ", + "appTabWarnBody": "KeeWeb не може бути використаний в двох вкладках браузера одночасно, будь ласка, закрийте цю вкладку.", + "appRightsAlert": "Блокування KeeWeb програми", + "appRightsAlertBody1": "Ваш застосунок KeeWeb поки що не захищений від внесення несанкціонованих змін. Просимо надати дозвіл на запис у застосунку лише для адміністраторів.", + "appRightsAlertBody2": "Не хочете надавати дозвіл? Тоді, ви можете зробити це самі через Термінал", + "appBrowserAuthComplete": "Авторизацію завершено. Ви можете закрити цю вкладку.", + "setGenTitle": "Загальні налаштування", + "setGenUpdate": "Оновлення", + "setGenNewVersion": "Доступна нова версія програми", + "setGenReleaseNotes": "Примітки до випуску", + "setGenReloadToUpdate": "Перезавантажити для оновлення", + "setGenUpdateManual": "Випущено нову версію. Вона зможе перевіряти наявність і встановлювати оновлення автоматично, але авто-оновлення з поточної версії неможливе.", + "setGenDownloadUpdate": "Завантажити оновлення", + "setGenUpdateAuto": "Завантажувати та встановлювати автоматично", + "setGenUpdateCheck": "Перевіряти але не встановлювати", + "setGenNoUpdate": "Ніколи не перевіряти оновлення", + "setGenUpdateChecking": "Перевірка оновлень", + "setGenCheckUpdate": "Перевірити оновлення", + "setGenErrorChecking": "Помилка перевірки оновлень", + "setGenLastCheckSuccess": "Остання успішна перевірка була в {}", + "setGenLastCheckVer": "остання версія була {}", + "setGenCheckedAt": "Перевірено на", + "setGenLatestVer": "використовується найновіша версія програми", + "setGenNewVer": "нова версія {} доступна, випущена", + "setGenDownloadingUpdate": "Завантаження оновлення...", + "setGenExtractingUpdate": "Вилучення оновлення...", + "setGenCheckErr": "Помилка при завантаженні нової версії", + "setGenNeverChecked": "Ніколи не перевіряти оновлення", + "setGenRestartToUpdate": "Перезапустити KeeWeb для оновлення", + "setGenDownloadAndRestart": "Завантажити оновлення і перезавантажити программу", + "setGenAppearance": "Вид", + "setGenTheme": "Тема", + "setGenThemeDefault": "Типова", + "setGenThemeDark": "Темна", + "setGenThemeLight": "Світла", + "setGenThemeBlue": "Плоска синя", + "setGenThemeFb": "Темна синя", + "setGenThemeBl": "Світла блакитна", + "setGenThemeBrown": "Коричнева", + "setGenThemeDb": "Темна коричнева", + "setGenThemeLb": "Світла коричнева", + "setGenThemeTerminal": "Термінал", + "setGenThemeTe": "Термінал ", + "setGenThemeLt": "Світла Термінал", + "setGenThemeHighContrast": "Високий контраст", + "setGenThemeHc": "Високий контраст", + "setGenThemeDc": "Темний контраст", + "setGenThemeSol": "Сонячне затемнення", + "setGenThemeSd": "Вицвіла темна", + "setGenThemeSl": "Вицвіла світла", + "setGenMoreThemes": "Більше тем", + "setGenAutoSwitchTheme": "Автоматично перемикатися між світлою й темною темами, якщо можливо", + "setGenLocale": "Мова", + "setGenLocOther": "Інші мови доступні як плагіни", + "setGenFontSize": "Розмір шрифту", + "setGenFontSizeNormal": "Нормальний", + "setGenFontSizeLarge": "Великий", + "setGenFontSizeLargest": "Величезний", + "setGenTitlebarStyle": "Стиль вікна (потрібне перезавантаження)", + "setGenTitlebarStyleDefault": "Типово", + "setGenTitlebarStyleHidden": "Нестандартний заголовок", + "setGenTitlebarStyleHiddenInset": "Нестандартний заголовок, перетягувати вікно", + "setGenShowSubgroups": "Показати записи з усіх підгруп", + "setGenTableView": "Перегляд списку записів у вигляді таблиці", + "setGenColorfulIcons": "Власні кольорові піктограми в списку", + "setGenUseMarkdown": "Markdown у нотатках", + "setGenUseGroupIconForEntries": "Використовувати піктограму групи для нових записів", + "setGenDirectAutotype": "Якщо знайдено тільки один запис, вибрати його для автоматичного введення", + "setGenFunction": "Функції", + "setGenAutoSyncOnClose": "Автоматично зберігати та синхронізувати при закритті", + "setGenAutoSyncTimer": "Автоматично зберігати та синхронізувати через деякий період часу", + "setGenAutoSyncTimerOff": "Вимкнено", + "setGenAutoSyncTimerInterval": "Кожні {} хвилин", + "setGenRememberKeyFiles": "Запам'ятовувати ключові файли", + "setGenNoRememberKeyFiles": "Не запам'ятовувати ", + "setGenRememberKeyFilesData": "Зберігати у внутрішній пам'яті програми", + "setGenRememberKeyFilesPath": "Пам'ятати тільки шлях до ключових файлів", + "setGenLockInactive": "Якщо програма неактивна", + "setGenNoAutoLock": "Не блокувати", + "setGenLockMinutes": "через {} хвилин", + "setGenLockHour": "Через годину", + "setGenLockHours": "Через {} годин", + "setGenLockDay": "Через день", + "setGenClearClip": "Очистити буфер після копіювання", + "setGenNoClear": "Не очищати", + "setGenClearSeconds": "через {} секунд", + "setGenClearMinute": "За хвилину", + "setGenMinInstead": "Згортати програму замість закриття", + "setGenMinOnFieldCopy": "Згортати при копіюванні поля", + "setGenLock": "Автоматичне блокування", + "setGenLockMinimize": "При мінімізації", + "setGenLockCopy": "Після копіювання пароля", + "setGenLockAutoType": "При автовведенні", + "setGenLockOrSleep": "Коли комп'ютер заблоковано або відправлено у сон", + "setGenStorage": "Сховище", + "setGenDisableOfflineStorage": "Не зберігати кеш завантажених файлів у автономному сховищі", + "setGenShortLivedStorageToken": "Використовувати короткострокові сеанси для провайдерів хмарних сховищ", + "setGenStorageLogout": "Вийти", + "setGenShowAdvanced": "Показати розширені налаштування", + "setGenDevTools": "Засоби розробки", + "setGenTryBeta": "Використовувати бета-версію до перезавантаження", + "setGenTryBetaWarning": "Незбережені файли", + "setGenTryBetaWarningBody": "Будь ласка, збережіть всі файли і натисніть цю кнопку ще раз", + "setGenShowAppLogs": "Журнал програми", + "setGenReloadApp": "Перезапустити програму", + "setGenFieldLabelDblClickAutoType": "Автовведення при подвійному клацанні на назві полів", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Не використовувати Touch ID", + "setGenTouchIdMemory": "Відмикати з Touch ID лише коли KeeWeb працює", + "setGenTouchIdFile": "Завжди використовувати Touch ID замість головного пароля", + "setGenTouchIdPass": "Вимагати головний пароль через", + "setGenAudit": "Аудит", + "setGenAuditPasswords": "Показувати попередження про надійність пароля", + "setGenAuditPasswordEntropy": "Перевіряти довжину і випадковість пароля", + "setGenExcludePinsFromAudit": "Ніколи не перевіряти числові PIN-коди, наприклад, 123456", + "setGenCheckPasswordsOnHIBP": "Перевіряти паролі з використанням мережевого сервісу {}", + "setGenHelpHIBP": "KeeWeb може перевіряти чи не розкривалися ваші паролі разом з минулими витоками даних, використовуючи мережевий сервіс. Під час цієї перевірки ваші паролі неможливо виявити чи отримати до них доступ, однак кількість паролів, що перевіряється таким чином, може бути доступна. Ви можете ознайомитися докладніше про цей сервіс та про вашу приватність {}. Увімкнувши цю опцію, KeeWeb автоматично перевірятиме ваші паролі.", + "setGenHelpHIBPLink": "тут", + "setGenAuditPasswordAge": "Застарілі паролі", + "setGenAuditPasswordAgeOff": "Не показувати застереження про застарілі паролі", + "setGenAuditPasswordAgeOneYear": "Показувати застереження для паролів старіших одного року", + "setGenAuditPasswordAgeYears": "Показувати застереження для паролів старіших {} років", + "setFilePath": "Шлях до файлу", + "setFileStorage": "Цей файл завантажений з {}.", + "setFileIntl": "Цей файл зберігається у внутрішній пам'яті програми", + "setFileLocalHint": "Хочете працювати легко з локальними файлами?", + "setFileDownloadApp": "Завантажити desktop версію", + "setFileSave": "Зберегти", + "setFileSaveTo": "Зберегти до ...", + "setFileClose": "Закрити", + "setFileSync": "Синхронізація", + "setFileSyncVerb": "Синхронізація", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Остання синхронізація", + "setFileLastSyncUnknown": "невідомо", + "setFileSyncInProgress": "триває синхронізація", + "setFileSyncError": "помилка синхр-ї", + "setFilePass": "Головний пароль", + "setFileConfirmPass": "Підтвердити головний пароль", + "setFilePassChange": "для зміни паролю, будь ласка, введіть його в поле підтвердження", + "setFilePassChanged": "ваш пароль було змінено; залиште поле порожнім, щоб використовувати старий пароль", + "setFilePassNotMatch": "паролі не збігаються, будь ласка, введіть заново", + "setFileKeyFile": "Ключовий файл", + "setFileSelKeyFile": "Оберіть ключовий файл", + "setFileNames": "Назва", + "setFileDefUser": "Типове ім'я користувача", + "setFileEnableTrash": "Увімкнути смітник", + "setFileHistMode": "Історія запису", + "setFileHistLimited": "Автоматично видаляти старі записи історії", + "setFileHistDisabled": "Не зберігати історію", + "setFileHistUnlimited": "Зберігати записи історії завжди", + "setFileHistLen": "Довжина історії, зберігати останню кількість записів ", + "setFileHistSize": "Розмір історії, всього МБ для кожного файлу", + "setFileBackups": "Копії", + "setFileBackupEnable": "Резервування в файл", + "setFileBackupPath": "Шлях до копії", + "setFileBackupTime": "Робити копії", + "setFileBackupNow": "Копіювати зараз", + "setFileBackupNowWorking": "За роботою...", + "setFileBackupError": "Помилка копіювання", + "setFileBackupErrorDescription": "Помилка запису файлу копії ", + "setFileBackupErrorIsDir": "Невалідний шлях до резервної копії", + "setFileBackupErrorIsDirDescription": "Схоже, що шлях до резервної копії вказує на директорію. Будь ласка, вкажіть ім'я файлу всередені директорії.", + "setFileBackupOnSave": "Кожен раз, коли я зберігаю файл", + "setFileBackupDaily": "Щодня", + "setFileBackupWeekly": "Щотижня", + "setFileBackupMonthly": "Щомісяця", + "setFileBackupManually": "Вручну. Не автоматично", + "setFileRounds": "Кількість циклів шифрування", + "setFileKdfParams": "Функція формування ключа ", + "setFileKdfParamsIter": "Повтор ", + "setFileKdfParamsMem": "Пам'ять, кб", + "setFileKdfParamsPar": "Паралелізм ", + "setFileKeyChangeForce": "Вимагати оновлення ключа через (днів)", + "setFileUseKeyFile": "Використовувати ключовий файл", + "setFileUseGenKeyFile": "Використовувати згенерований ключовий файл", + "setFileUseOldKeyFile": "Використовувати старий ключовий файл", + "setFileGenKeyFile": "Згенерувати новий ключовий файл", + "setFileDontUseKeyFile": "Не використовувати ключовий файл", + "setFileEmptyPass": "Порожній пароль", + "setFileEmptyPassBody": "Збереження бази даних з порожнім паролем робить її цілком незахищеною. Ви дійсно хочете зробити це?", + "setFileSaveError": "Помилка збереження", + "setFileSaveErrorBody": "Помилка збереження файлу", + "setFileAlreadyExists": "Вже існує", + "setFileAlreadyExistsBody": "Файл {} вже існує. Перезаписати його?", + "setFileUnsaved": "Незбережені зміни", + "setFileUnsavedBody": "Є незбережені зміни в цьому файлі", + "setFileCloseNoSave": "Закрити і втратити зміни", + "setFileDontClose": "Не закрывати", + "setFileFormatVersion": "Формат файлу", + "setFileExportRaw": "Експортуючи ваші паролі", + "setFileExportRawBody": "Експортований файл буде вміщати ваші паролі, які не будуть зашифровані. Бажаєте продовжити?", + "setFileDeviceIntro": "Одноразові коди з цього {} будуть показані в програмі.", + "setFileDeviceSettings": "Налаштування", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Не використовувати YubiKey", + "setFileRefreshYubiKeyList": "Оновити список", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Використання YubiKey на додачу до вашого головного пароля може бути небезпечним і може призвести до втрати доступу до ваших паролів у випадку збою. Ви зберегли резервну копію свого файлу перед зміною цього налаштування?", + "setFileYubiKeyErrorEmptyMac": "Схоже, у вас під'єднаний YubiKey, але він невидимий. Щоб отримати доступ до YubiKey, необхідно додати KeeWeb до розділу спостереження введення в налаштуваннях безпеки.", + "setShTitle": "Гарячі клавіші", + "setShShowAll": "показати усі елементи", + "setShColors": "показати елементи цього кольору", + "setShTrash": "перейти до смітника", + "setShFind": "пошук, просто почніть вводити", + "setShClearSearch": "очистити пошук", + "setShCopyPass": "скопіювати пароль або вибране поле", + "setShCopyUser": "скопіювати ім'я користувача", + "setShCopyUrl": "скопіювати веб-сайт", + "setShAutoType": "автовведення вибраного запису.", + "setShPrev": "перейти до попереднього запису", + "setShNext": "перейти до наступного запису", + "setShCreateEntry": "створити запис", + "setShOpen": "відкрити/створити", + "setShSave": "зберегти всі файли", + "setShGen": "згенерувати пароль", + "setShSet": "параметри програми", + "setShCopyPassGlobal": "копіювати пароль", + "setShCopyOtp": "скопіювати одноразовий пароль", + "setShAutoTypeGlobal": "автовведення", + "setShCopyPassOnly": "скопіювати пароль", + "setShRestoreApp": "відкрити {}", + "setShGlobal": "Ці загальносистемні комбінації клавіш працюють, коли програма працює у фоновому режимі. Ви можете натиснути на них, щоб виконати необхідну дію.", + "setShLock": "блокувати базу даних", + "setShEdit": "Натисніть нову комбінацію клавіш, щоб встановити їх як гарячу", + "setPlInstallTitle": "Встановити нові плагіни", + "setPlInstallDesc": "Плагіни для KeeWeb додають нові функції, теми і мови. Плагіни працюють з такими самими привілеями, що й KeeWeb, вони можуть отримувати доступ і керування всіма вашими паролями. Ніколи не встановлюйте плагіни, яким ви не довіряєте.", + "setPlInstallLabel": "URL адреса плагіну", + "setPlInstallBtn": "Встановити", + "setPlInstallBtnProgress": "Встановлення", + "setPlUninstallBtn": "Видалити", + "setPlDisableBtn": "Вимкнути", + "setPlEnableBtn": "Увімкнути", + "setPlUpdateBtn": "Оновити", + "setPlLocaleBtn": "Застосувати мову", + "setPlThemeBtn": "Застосувати тему", + "setPlJs": "код", + "setPlCss": "стилі", + "setPlLoc": "мова", + "setPlCreatedBy": "Створено {}", + "setPlLoadTime": "знадобилося {} для завантаження", + "setPlLastUpdate": "Остання перевірка оновлень", + "setPlLoadError": "помилка при завантаженні плагіну", + "setPlGalleryLoading": "Завантаження плагінів, будь ласка зачекайте", + "setPlGalleryLoadError": "Помилка при завантаженні плагінів", + "setPlInstallUrlTitle": "Додати плагін за посиланням", + "setPlInstallUrlDesc": "Якщо плагін відсутній в галереї, ви можете встановити його вручну з URL-адреси", + "setPlOfficial": "Офіційний плагін KeeWeb", + "setPlSearch": "Пошук плагінів", + "setPlDevelop": "Хочете створити власні плагіни?", + "setPlDevelopStart": "Почніть тут", + "setPlTranslate": "Або ви можете {}", + "setPlTranslateLink": "Перекласти програму на вашу мову", + "setPlAutoUpdate": "Оновлювати автоматично", + "setPlLoadGallery": "Завантажити галерею плагінів", + "setBrowserTitle": "Браузер", + "setBrowserIntroDesktop": "KeeWeb може автоматично вводити паролі, однак розширення для браузера може бути зручнішим для цього. KeeWeb підтримує два розширення для браузерів:", + "setBrowserIntroKeeWebConnect": "офіційне розширення KeeWeb, створене й адаптоване спеціально для KeeWeb, але якщо вам не вистачає деяких розширених можливостей, ви можете спробувати інше розширення.", + "setBrowserIntroKeePassXcBrowser": "це розширення було розроблено для KeePassXC. Воно вже зарекомендувало себе протягом певного часу і є досить функціональним. Розширення не належить до продуктів KeeWeb, тому може мати проблеми сумісності.", + "setBrowserIntroWeb": "Встановіть наше розширення для браузера, щоб автоматично заповнювати паролі з KeeWeb на різних сторінках. Розширення з'єднуватиметься з вкладкою KeeWeb у браузері для отримання паролів. Натисніть тут, щоб завантажити розширення:", + "setBrowserNotEnabled": "Інтеграція з браузером не увімкнена. Розширення не зможе з'єднатися з KeeWeb. Використайте прапорці нижче для увімкнення:", + "setBrowserEnablePerBrowser": "Увімкніть інтеграцію з браузером за допомогою прапорців нижче:", + "setBrowserFocusIfLocked": "Відкрийте KeeWeb якщо розширення браузера намагається з'єднатися, коли не відкрито файл", + "setBrowserFocusIfEmpty": "Показувати екран вибору запису якщо не знайдено збігів за URL-адресою", + "setBrowserOtherBrowsers": "Інші браузери", + "setBrowserExtensionFor": "для {}", + "setBrowserExtensionNotSupported": "Не підтримується", + "setBrowserExtensionHelp": "Як встановити?", + "setBrowserExtensionInstall": "Встановити розширення", + "setBrowserExtensionKPXCWarnHeader": "{} припинить роботу", + "setBrowserExtensionKPXCWarnBody1": "На жаль, неможливо з'єднати одне розширення до кількох програм. Якщо ви під'єднаєте розширення до KeeWeb, зв'язок з програмою буде перезаписано, тому інтеграція з {} припиниться. Навіть якщо ви приберете цей прапорець, зв'язок з {} не буде відновлено. Для відновлення роботи налаштуйте інтеграцію з браузером в налаштуваннях {}.", + "setBrowserExtensionKPXCWarnBody2": "Налаштувати розширення для роботи з KeeWeb?", + "setBrowserSessions": "Сеанси", + "setBrowserSessionsEmpty": "Немає під'єднаних сеансів.", + "setBrowserSessionsIntro": "Ці розширення тепер під'єднані до KeeWeb.", + "setBrowserSessionsActiveTooltip": "Активний сеанс", + "setBrowserSessionsActiveText": "Цей сеанс активний. Він може обмінюватися даними з KeeWeb на основі таких дозволів:", + "setBrowserSessionsInactiveTooltip": "Неактивний сеанс", + "setBrowserSessionsInactiveText": "Цей сеанс неактивний. Розширення під'єднано до KeeWeb, однак воно не намагалося виконувати обмін даними. Коли розширення запитає будь-які дані, ви зможете вибрати, до яких даних бажаєте надати доступ.", + "setBrowserSessionsDeniedTooltip": "Доступ заборонено", + "setBrowserSessionsDeniedText": "Цей сеанс неактивний. Розширення під'єднане до KeeWeb, однак ви заборонили доступ до даних.", + "setBrowserSessionsConnectedDate": "З'єднано", + "setBrowserSessionsTerminate": "Видалити цей сеанс", + "setBrowserSessionsAccessToFiles": "Дозволити доступ до файлів", + "setBrowserSessionsNoFileAccess": "Розширення не має доступу до файлів. Воно не зможе отримувати паролі від KeeWeb.", + "setBrowserSessionsPasswordsRead": "Зчитано паролів", + "setBrowserSessionsPasswordsWritten": "Збережено паролів", + "setDevicesTitle": "Пристрої", + "setDevicesEnableUsb": "Увімкнути взаємодію з USB-пристроями", + "setDevicesYubiKeyIntro": "Рекомендується ознайомитися з {} перед використанням YubiKey.", + "setDevicesYubiKeyIntroLink": "цю статтю", + "setDevicesYubiKeyToolsDesc": "Для можливості використання YubiKey в цьому режимі необхідно встановити інструмент {}.", + "setDevicesYubiKeyToolsDesc2": "{} для отримання подробиць про цей інструмент.", + "setDevicesYubiKeyToolsDescLink": "Натисніть тут", + "setDevicesYubiKeyToolsStatusChecking": "Перевірка чи {} встановлений", + "setDevicesYubiKeyToolsStatusOk": "{} встановлений", + "setDevicesYubiKeyToolsStatusError": "{} не встановлений або не працює", + "setDevicesYubiKeyOtpTitle": "Одноразові паролі", + "setDevicesYubiKeyOtpDesc": "YubiKey можна використовувати для генерування одноразових кодів для різних сервісів.", + "setDevicesYubiKeyOtpShowIcon": "Показувати піктограму на головному екрані", + "setDevicesYubiKeyOtpAutoOpen": "Автоматично завантажувати одноразові коди, коли є відкриті файли", + "setDevicesYubiKeyOtpMatchEntries": "Показувати відповідні одноразові коди в записах", + "setDevicesYubiKeyChalRespTitle": "Виклик-Відповідь", + "setDevicesYubiKeyChalRespDesc": "Також можна використовувати YubiKey в режимі виклик-відповідь, щоб частина приватного ключа використовувалась для шифрування файлів, що знаходяться на YubiKey.", + "setDevicesYubiKeyChalRespShow": "Показувати опцію використання YubiKey при відкритті файлів", + "setDevicesYubiKeyStuckWorkaround": "Повторне з'єднання з YubiKey при затримці під час завантаження", + "setDevicesYubiKeyRememberChalResp": "Пам'ятати виклик-відповідь доки програма відкрита", + "setAboutTitle": "Про KeeWeb", + "setAboutBuilt": "Ця програма створена за допомогою цих дивовижних інструментів", + "setAboutLic": "Ліцензія", + "setAboutLicComment": "Програма та всі вбудовані компоненти ліцензовані на умовах MIT-ліцензії, якщо не зазначено іншого", + "setAboutFirst": "Ця програма з відкритим вихідним кодом створена {}", + "setAboutSecond": "під ліцензією {}.", + "setAboutSource": "Вихідний код і питання на {}.", + "setHelpFormat": "Формат файлу", + "setHelpFormatBody": "Ця програма - перенесення програми {}, створеної на основі веб-технологій. Вона сумісна з файлами формату KeePass (kdbx). Ви можете створювати такі файли (бази даних паролів) в KeePass або в цій програмі. Формат файлу на 100% сумісний з обома програмами.", + "setHelpProblems": "Потрібна допомога?", + "setHelpProblems1": "Якщо щось піде не так, будь ласка {}", + "setHelpProblems2": "або {}", + "setHelpOpenIssue": "відкрийте Issue на GitHub", + "setHelpContactLink": "Зв'язатися з розробником", + "setHelpAppInfo": "Інформація про програму", + "setHelpOtherPlatforms": "Інші платформи", + "setHelpDesktopApps": "Desktop версії", + "setHelpWebApp": "Web-додаток", + "setHelpUpdates": "Оновлення", + "setHelpTwitter": "Twitter ", + "dropboxSetupDesc": "Для використання Dropbox в окремій програмі необхідне додаткове налаштування. Створіть власну програму Dropbox та введіть внизу її ключ.", + "dropboxAppKey": "Ключ програми Dropbox", + "dropboxAppKeyDesc": "Скопіюйте ключ з вашої програми Dropbox (налаштування для розробників)", + "dropboxAppKeyHint": "Ваш ключ програми", + "dropboxAppSecret": "Пароль програми Dropbox", + "dropboxAppSecretDesc": "Пароль можна знайти навпроти ключа програми", + "dropboxFolder": "Тека програми", + "dropboxFolderDesc": "Якщо ваша програма пов'язана з усім сховищем Dropbox (а не окремою текою), вкажіть тут теку з файлами kdbx", + "dropboxFolderSettingsDesc": "Виберіть будь-яку теку в Dropbox, де зберігатимуться файли (типово коренева тека)", + "dropboxFolderPlaceholder": "типова тека", + "dropboxLink": "Посилання на програму", + "dropboxLinkApp": "Тека програми (Apps/KeeWeb)", + "dropboxLinkFull": "Увесь Dropbox чи будь-яка тека", + "dropboxLinkCustom": "Свій Dropbox-додаток", + "gdriveSharedWithMe": "Розшарено зі мною", + "gdriveSharedDrives": "Спільні диски", + "gdriveTeamDrives": "Командні диски", + "webdavSaveMethod": "Метод збереження", + "webdavSaveMove": "Завантажити тимчасовий файл і перемістити", + "webdavSavePut": "Перезаписати файл kdbx за допомогою PUT", + "webdavNoLastModified": "Останній змінений HTTP-заголовок відсутній", + "webdavStatReload": "Завжди перезавантажувати файл замість дотримання відповідності останнього зміненого HTTP-заголовка", + "launcherSave": "Збереження пароля бази даних", + "launcherFileFilter": "KeePass файли", + "authPopupRequired": "Спливаючі вікна заблоковані", + "authPopupRequiredBody": "Дозвольте виринаючі вікна у вашому браузері, або спробуйте ще раз.", + "exportFileInfo": "Інформація про файл", + "exportHtmlName": "Ім'я", + "exportHtmlDate": "Дата експорту", + "exportGenerator": "Програмне забезпечення", + "exportDescription": "Цей файл згенеровано з {}.", + "importCsvTitle": "Імпорт з CSV", + "importCsvRun": "Імпортувати", + "importIgnoreField": "Ігнорувати", + "importTo": "Записи буде імпортовано в", + "importNewFile": "Новий файл", + "yubiKeyStuckError": "Схоже, YubiKey не відповідає. Ви можете увімкнути автоматичне виправлення проблем в налаштуваннях програми.", + "yubiKeyNoKeyHeader": "Необхідний YubiKey", + "yubiKeyNoKeyBody": "Будь ласка, під'єднайте YubiKey з серійним номером {}", + "yubiKeySlot": "роз'єм", + "yubiKeyTouchRequestedHeader": "Торкніться до YubiKey", + "yubiKeyTouchRequestedBody": "Торкніться до YubiKey з серійним номером {}", + "yubiKeyDisabledErrorHeader": "USB вимкнено", + "yubiKeyDisabledErrorBody": "Для відкриття цього файлу необхідний YubiKey. Увімкніть пристрої USB в налаштуваннях.", + "yubiKeyErrorWithCode": "Помилка YubiKey, код {}.", + "bioOpenAuthPrompt": "відкрити \"{}\"", + "extensionErrorNoOpenFiles": "Немає відкритих файлів", + "extensionErrorUserRejected": "Запит було заборонено", + "extensionErrorNoMatches": "Немає відповідних записів", + "extensionErrorAlertDisplayed": "Неможливо запитати зараз, тому що відкрито інше вікно. Спробуйте знову", + "extensionConnectHeader": "Обмін даними з розширенням", + "extensionConnectIntro": "Розширення браузера {} намагається обмінятися даними з KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb не перевіряє відповідність під'єднаної програми. Дозволяйте запит лише якщо ви впізнаєте цю активність та довіряєте їй.", + "extensionConnectFiles": "Для цього сеансу дозволити доступ до:", + "extensionConnectAllOtherFiles": "Усі інші файли", + "extensionConnectAllFiles": "Усі файли", + "extensionConnectAskGet": "Запитувати перед наданням паролів розширенню:", + "extensionConnectAskGetMultiple": "якщо більше одного збігу", + "extensionConnectAskGetAlways": "завжди", + "extensionConnectAskSave": "Запитувати перед збереженням нових паролів у KeeWeb:", + "extensionConnectAskSaveAlways": "завжди", + "extensionConnectAskSaveAuto": "коли неможливо зберегти автоматично", + "extensionConnectSettingsAreForSession": "Налаштування, які ви тут виберете, дійсні лише для активного сеансу. Ви можете переглянути і керувати сеансами в налаштуваннях KeeWeb.", + "extensionUnlockMessage": "Відімкніть для з'єднання з розширенням браузера", + "extensionNewGroupHeader": "Нова група", + "extensionNewGroupBody": "{} намагається створити нову групу. Дозволити?", + "extensionNewGroupPath": "Шлях до групи", + "extensionNewGroupFile": "Цю групу буде створено в:", + "extensionSaveEntryHeader": "Зберегти пароль", + "extensionSaveEntryBody": "{} Намагається зберегти пароль. Дозволити?", + "extensionSaveEntryAuto": "Автоматично зберігати паролі в цьому сеансі", + "extensionSaveEntryNewGroup": "нова група", + "extensionSelectPasswordFor": "Оберіть пароль для {}", + "selectEntryHeader": "Оберіть запис", + "selectEntryEnterHint": "використати вибраний запис", + "selectEntryTypingHint": "Почніть вводити для фільтрування", + "selectEntryContains": "Містить текст", + "selectEntrySubdomains": "Піддомени", + "selectEntryFieldHeader": "Оберіть поле", + "selectEntryFieldTouch": "Натисніть кнопку на вашому пристрої, щоб згенерувати одноразовий код." +} \ No newline at end of file diff --git a/keeweb/plugins/translations/zh-CN/index.html b/keeweb/plugins/translations/zh-CN/index.html new file mode 100644 index 0000000..4a23cef --- /dev/null +++ b/keeweb/plugins/translations/zh-CN/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: 简体中文 + + + + +

KeeWeb Language: 简体中文

+ https://plugins.keeweb.info/translations/zh-CN + + diff --git a/keeweb/plugins/translations/zh-CN/manifest.json b/keeweb/plugins/translations/zh-CN/manifest.json new file mode 100644 index 0000000..18c28de --- /dev/null +++ b/keeweb/plugins/translations/zh-CN/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.23.0", + "manifestVersion": "0.1.0", + "name": "language-chinese-simplified", + "description": "Chinese Simplified language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=zh-CN", + "resources": { + "loc": "DHQ6C0NcJSIbtmLmt3JOCbR+hqnTJzTwozD/lCoLE1x/aGOlLDEM0DOaah3ULks/aj65YNh8k5gUUnVu/AxnRJxbyxD6wtu2P7VjqkrQxuNZHncTaXL3b/B4+OMahKMQ46DzbKDA9/xRJQcX6OsgSIH+Lqv9rdn2C8txOYXYDOGWK0CIV0raqexQ/AneNx2MWhqZjzMqBiTLE6HjMnmRMr2F/d3pY5VB8FhX61j9W13UqOmHZF779RZ0JhrUJfaE/5+0AN45NJ58RwURa7+IqcxvoNqIhWO6jE+oNdKLFUCC190rpHZuuyBnWnCAJRfMkNbbLNDVyleKg8By2NjAqQ==" + }, + "locale": { + "name": "zh-CN", + "title": "简体中文", + "flag": "🇨🇳" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/zh-CN/zh-CN.json b/keeweb/plugins/translations/zh-CN/zh-CN.json new file mode 100644 index 0000000..0f4b685 --- /dev/null +++ b/keeweb/plugins/translations/zh-CN/zh-CN.json @@ -0,0 +1,776 @@ +{ + "retToApp": "返回应用", + "name": "名称", + "icon": "图标", + "title": "标题 ", + "password": "密码", + "user": "用户名", + "website": "网站", + "tags": "标签", + "notes": "备注", + "entry": "记录", + "group": "分组", + "noTitle": "无标题", + "or": "或", + "history": "历史", + "template": "模版", + "templates": "模版", + "notImplemented": "未实现", + "saveChanges": "保存更改", + "discardChanges": "放弃更改", + "advanced": "高级", + "shortcuts": "快捷键", + "help": "帮助", + "settings": "设置", + "plugins": "插件", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "错误", + "oneMinute": "1分钟", + "minutes": "{}分钟", + "oneHour": "1小时", + "hours": "{}小时", + "oneDay": "1天", + "days": "{}天", + "oneWeek": "1周", + "oneMonth": "1月", + "oneYear": "1年", + "cache": "缓存", + "file": "文件", + "device": "设备", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "所有项目", + "menuColors": "颜色", + "menuTrash": "回收站", + "menuSetGeneral": "通用", + "menuSetBrowser": "浏览器集成", + "menuSetAbout": "关于", + "menuSetDevices": "设备", + "menuAlertNoTags": "无标签", + "menuAlertNoTagsBody": "您可以在编辑标签字段时新建标签。", + "menuEmptyTrash": "清空回收站", + "menuEmptyTrashAlert": "确认清空回收站?", + "menuEmptyTrashAlertBody": "您将无法恢复这些项目", + "menuItemCollapsed": "双击以展开", + "menuRestoreApp": "打开 {}", + "menuQuitApp": "退出 {}", + "sysMenuAboutKeeWeb": "关于 {}", + "sysMenuServices": "服务", + "sysMenuHide": "隐藏 {}", + "sysMenuHideOthers": "隐藏其他", + "sysMenuUnhide": "全部显示", + "sysMenuQuit": "退出 {}", + "sysMenuEdit": "编辑", + "sysMenuUndo": "撤销", + "sysMenuRedo": "重做", + "sysMenuCut": "剪切", + "sysMenuCopy": "拷贝", + "sysMenuPaste": "粘贴", + "sysMenuSelectAll": "全选", + "sysMenuWindow": "窗口", + "sysMenuMinimize": "最小化", + "sysMenuClose": "关闭窗口", + "alertYes": "确定", + "alertNo": "取消", + "alertOk": "确定", + "alertCancel": "取消", + "alertSignIn": "登录", + "alertCopy": "复制", + "alertClose": "关闭", + "alertDoNotAsk": "不再询问", + "alertAllow": "允许", + "alertDeny": "拒绝", + "appBeta": "警告:测试版本,仅供预览", + "footerOpen": "打开 / 新建", + "footerSyncError": "同步出错", + "footerTitleGen": "生成", + "footerTitleLock": "锁定", + "genLen": "长度", + "genNewPass": "新设密码", + "genPresetDefault": "默认预设", + "genPresetDerived": "类似旧密码", + "genPresetPronounceable": "可读密码", + "genPresetMed": "中等长度", + "genPresetLong": "长密码", + "genPresetPin4": "4位数字 PIN", + "genPresetMac": "MAC 地址", + "genPresetHash128": "128位哈希", + "genPresetHash256": "256位哈希", + "genHidePass": "隐藏密码", + "genShowPass": "显示密码", + "grpTitle": "分组", + "grpSearch": "允许搜索此分组下的记录", + "grpAutoType": "启用自动键入", + "grpAutoTypeSeq": "自动键入序列", + "grpAutoTypeSeqDefault": "使用默认的自动键入序列", + "grpTrash": "删除分组及所有记录", + "tagTitle": "标签", + "tagTrash": "从所有记录中移除标签", + "tagRename": "重命名", + "tagTrashQuestion": "确认从所有记录中移除标签?", + "tagTrashQuestionBody": "该标签将从所有密码记录中删除。它将难以恢复。", + "tagExists": "标签已存在", + "tagExistsBody": "该标签名已存在, 请使用其他名称。", + "tagBadName": "非法名称", + "tagBadNameBody": "标签名称中不能包含字符{}。请删除该字符。", + "genPsTitle": "生成器预设", + "genPsCreate": "新预设", + "genPsDelete": "删除预设", + "genPsNew": "预设", + "genPsEnabled": "在预设列表中显示", + "genPsDefault": "默认选中", + "genPsDefaultLength": "默认长度", + "genPsUpper": "大写拉丁字母", + "genPsLower": "小写拉丁字母", + "genPsDigits": "数字", + "genPsSpecial": "特殊符号", + "genPsBrackets": "括号", + "genPsHigh": "扩展 ASCII 字符", + "genPsAmbiguous": "相似字符", + "genPsInclude": "要包含的其它符号", + "genPsExample": "生成密码示例", + "genPsPattern": "模式", + "genPsPatternHelp": "模式可以指定选择字符的自定义规则。例如,1-AA 将会生成开头是一个数字,然后跟着一个横线和两个字母的密码。您可以使用这些符号:", + "genPsAllRanges": "所有符号", + "genPsIncluded": "上边添加的额外符号", + "keyChangeTitleRemote": "主密钥已更改", + "keyChangeMessageRemote": "此数据库的主密钥已更改。请输入新密钥", + "keyChangeTitleExpired": "主密钥已过期", + "keyChangeMessageExpired": "该数据库的主密钥已过期,请输入新密钥", + "keyChangeRepeatPassword": "密码,再输入一遍", + "keyEnter": "输入", + "keyEsc": "退出", + "iconFavTitle": "下载并使用站点图标", + "iconSelCustom": "选择自定义图标", + "listEmptyTitle": "空", + "listEmptyAdd": "点击 {} 按钮添加", + "listGroup": "分组", + "listNoWebsite": "没有网站", + "listNoUser": "没有用户名", + "listNoAttachments": "没有附件", + "listAddTemplateHeader": "模版", + "listAddTemplateBody1": "模版使您能一键创建记录。在模版记录中添加内容然后再次点击 {} 以使用此模版。", + "listAddTemplateBody2": "您始终能在 {} 分组中找到您的模版。", + "searchAddNew": "新建", + "searchSort": "排序", + "searchCreated": "创建时间", + "searchUpdated": "更新时间", + "searchAttachments": "附件", + "searchAZ": "从 A {} Z", + "searchZA": "从 Z {} A", + "searchON": "从旧 {} 新", + "searchNO": "从新 {} 旧", + "searchShiftClickOr": "shift+单击 或", + "searchAdvTitle": "切换高级搜索", + "searchSearchIn": "搜索范围", + "searchOther": "其他字段", + "searchProtect": "安全字段", + "searchOptions": "选项", + "searchCase": "区分大小写", + "searchRegex": "正则表达式", + "searchRank": "自动排序", + "searchExact": "精确", + "openOpen": "打开", + "openNew": "新建", + "openNewFile": "新建", + "openMore": "更多", + "openDemo": "演示", + "openGenerate": "生成", + "openXml": "导入 XML", + "openCaps": "大写锁定已打开", + "openClickToOpen": "点击以打开文件", + "openKeyFile": "密钥文件", + "openKeyFileDropbox": "(从 Dropbox)", + "openDropHere": "拖放文件到此处", + "openFailedRead": "读取文件失败", + "openNothingFound": "找不到内容", + "openNothingFoundBody": "我们还没有找到合适的文件。", + "openSelectFile": "选择一个文件", + "openSelectFileBody": "选择您想打开的文件", + "openPassFor": "输入密码", + "openRemoveLastQuestion": "删除本地文件?", + "openRemoveLastQuestionBody": "您要删除的文件仅保存在应用内部, 确认永久删除吗?", + "openRemoveLastQuestionModBody": "您要删除的文件已在本地修改, 确认放弃修改并删除吗?", + "openLocalFile": "本地文件", + "openLocalFileBody": "您要打开的文件将存储在当前应用中,您所做的变更不会写回到文件系统中。如果想取回您的数据,请从设置中导出。", + "openLocalFileDontShow": "不再显示", + "openWrongFile": "文件损坏", + "openWrongFileBody": "不支持此文件格式。此应用仅支持 KeePass 数据库格式文件 (kdbx)。", + "openKdbFileBody": "您打开的是旧版本格式的文件 (KDB)。此应用仅支持新格式 (kdbx)。请使用 KeePass v2 转换格式。", + "openConfigHeader": "{} 设置", + "openUrl": "URL", + "openUrlDesc": "https://server/path/file.kdbx, 或 file.kdbx", + "openUser": "用户", + "openUserDesc": "WebDAV 服务器用户名(如果需要)", + "openUserPlaceholder": "没有用户名", + "openPass": "密码", + "openPassDesc": "WebDAV 服务器的密码(这不是您文件的密码)", + "openPassPlaceholder": "没有密码", + "openConfigError": "错误: {}", + "openConfigErrorNotFound": "文件未找到", + "openError": "错误", + "openErrorDescription": "打开文件时出错", + "openErrorDescriptionMaybeTouchIdChanged": "该错误看起来与更改 Touch ID 设置时通常发生的错误类似,例如,您添加或移除了另一个手指。 在这种情况下,请转到“设置”,禁用 Touch ID,然后再次启用它。", + "openErrorFileNotFound": "未找到文件", + "openListErrorBody": "加载文件列表时出现错误", + "openShowAllFiles": "显示所有文件", + "openFileNoCacheError": "无法在缓存中找到文件。发生这个现象是由于浏览器缓存被清除。如需打开文件,请将原文件从KeeWeb中移除,并再次添加。", + "openChalRespHeader": "挑战-应答", + "openChalRespLoading": "加载 YubiKey 列表", + "openChalRespSelectYubiKey": "选择您要使用的YubiKey", + "openChalRespErrorEmpty": "找不到YubiKey。", + "openChalRespErrorEmptyMac": "第一次在 macOS 上使用此功能?KeeWeb 必须被添加到安全性设置的输入监视部分。", + "detAttDownload": "Shift+点击 附件 按钮下载或按", + "detAttDelToRemove": "Delete 键删除文件", + "detAttSave": "另存为", + "detEmpty": "您的密码会显示在这里", + "detGroupRestore": "要恢复分组,请将其从回收站中拖放到任意其它分组", + "detHistoryClickPoint": "点击记录历史时间轴上的点来查看状态", + "detHistoryReturn": "返回至记录", + "detHistoryRevert": "回滚到状态", + "detHistoryDel": "删除此状态", + "detHistoryEmpty": "空", + "detHistoryModified": "已修改", + "detHistoryRec": "记录", + "detHistoryRecs": "记录", + "detHistoryVersion": "版本", + "detHistorySaved": "已保存", + "detHistoryNoTitle": "无标题", + "detHistoryCurState": "当前状态", + "detHistoryCurUnsavedState": "当前未保存状态", + "detHistoryRevertAlert": "恢复到这条历史记录?", + "detHistoryRevertAlertBody": "您当前的状态将保存到历史记录中。", + "detHistoryDeleteAlert": "删除这条历史纪录?", + "detHistoryDeleteAlertBody": "您无法恢复该记录。", + "detHistoryDiscardChangesAlert": "放弃记录的变更?", + "detHistoryDiscardChangesAlertBody": "未保存的变更将丢失,并无法找回。", + "detBackToList": "返回列表", + "detSetIconColor": "更改颜色", + "detSetIcon": "更改图标", + "detDropAttachments": "拖放附件到此处", + "detDelEntry": "删除", + "detDelEntryPerm": "永久删除", + "detExpires": "期限", + "detExpired": "已过期", + "detGroup": "分组", + "detCreated": "创建于", + "detUpdated": "更新于", + "detNetField": "新字段", + "detAttachments": "附件", + "detDelFromTrash": "从回收站中删除吗?", + "detDelFromTrashBody": "删除后将无法恢复。", + "detDelFromTrashBodyHint": "要快速移除回收站内所有项目,请点击回收站菜单内的清空图标。", + "detDelToTrash": "删除记录?", + "detDelToTrashBody": "记录将被移除到回收站。", + "detFieldCopied": "已复制", + "detFieldCopiedTime": "已复制 剪贴板将在 {} 秒后清空", + "detCopyHint": "您可以通过点击字段标题来复制字段值", + "detMore": "更多", + "detClickToAddField": "点击添加一个新的字段", + "detMenuAddNewField": "添加新字段", + "detMenuAddNewWebsite": "添加另一个网址", + "detMenuShowEmpty": "显示空字段", + "detMenuHideEmpty": "隐藏空字段", + "detMenuAddField": "添加 {}", + "detMenuCopyPassword": "复制密码", + "detMenuCopyUser": "复制用户名", + "detMenuCopyOtp": "复制一次性代码", + "detSetupOtp": "一次性代码", + "detClone": "制作副本", + "detCopyEntryToClipboard": "复制所有字段", + "detClonedName": "复制", + "detAutoType": "自动输入", + "detAutoTypeSettings": "自动键入设置", + "detAutoTypeEnabled": "对此记录启用自动输入", + "detAutoTypeSequence": "按键", + "detAutoTypeInput": "输入", + "detAutoTypeShortcutsDesc": "{} 或者 {} ,当 KeeWeb未激活时", + "detAutoTypeObfuscation": "混合真实和随机按键", + "detAutoTypeWindow": "窗口", + "detAutoTypeInputWindow": "窗口标题", + "detSetupOtpAlert": "扫描二维码", + "detSetupOtpAlertBody": "请复制授权页上显示的二维码", + "detSetupOtpAlertBody1": "1. 前往授权页面", + "detSetupOtpAlertBody2": "2. 按下 {} 对二维码截图", + "detSetupOtpAlertBody3": "3. 按下 {} 粘贴截图", + "detSetupOtpAlertBody3Mobile": "3. 选中或者使用下方的“选择 / 扫描”按钮使用你的摄像头进行扫描", + "detSetupOtpAlertBody4": "如果您无法扫描二维码,点击 手动输入", + "detSetupOtpManualButton": "手动输入", + "detSetupOtpScanButton": "选择 / 扫描", + "detSetupOtpAlertBodyWith": "按下 {}", + "detOtpImageError": "读取图片出错", + "detOtpImageErrorBody": "抱歉,我们无法读取此图像格式,请联系应用开发者并提供错误详情。", + "detOtpImageReading": "读取二维码中...", + "detOtpQrError": "二维码扫描出错", + "detOtpQrErrorBody": "抱歉,我们无法读取此二维码,请再尝试一次,或者联系应用开发者并提供错误详情。", + "detOtpQrWrong": "错误的二维码", + "detOtpQrWrongBody": "您的二维码扫描成功,但未包含一次性代码数据。", + "detOtpField": "一次性代码", + "detOtpClickToTouch": "点击以产生", + "detOtpGenerating": "生成中", + "detOtpTouch": "触摸您的 {}", + "detLockField": "锁定该字段,锁定后其内容将不可被搜索及不可见。如需显示相关内容,请单击该字段。", + "detUnlockField": "取消锁定该字段,使其内容立刻可被搜索及可见", + "detRevealField": "提示", + "detHideField": "隐藏", + "detAutoTypeField": "自动填充", + "detIssuesHideTooltip": "隐藏此警告", + "detIssueWeakPassword": "密码很弱,建议更改密码。", + "detIssuePoorPassword": "密码很弱,强烈建议更改它。", + "detIssuePwnedPassword": "此密码{}已暴露在数据泄露中,建议对其进行更改。", + "detIssuePasswordCheckError": "在线检查密码强度时出错。", + "detIssueOldPassword": "这是旧密码", + "detIssueCloseAlertHeader": "隐藏密码问题", + "detIssueCloseAlertBody": "您可以通过以下几种方法隐藏此警告:", + "detIssueCloseAlertEntry": "对该记录不再显示", + "detIssueCloseAlertSettings": "调整全局设置", + "autoTypeEntryFields": "记录字段", + "autoTypeModifiers": "修饰键", + "autoTypeKeys": "按键", + "autoTypeLink": "更多...", + "autoTypeError": "自动输入出错", + "autoTypeErrorGeneric": "自动输入时发生一个错误:{}", + "autoTypeErrorAccessibilityMacOS": "我们试图将击键发送到应用程序,但似乎不起作用。 这可能是由于缺少权限而发生的,请单击此处阅读有关此内容的更多信息:", + "autoTypeErrorGlobal": "要使用系统快捷键,请将应用程序的焦点放在需要输入密码的位置", + "autoTypeErrorNotInstalled": "未安装 {}", + "autoTypeHeader": "自动输入:选择", + "autoTypeMsgNoWindow": "我们无法获取当前窗口的标题,请手动输入以搜索", + "autoTypeMsgMatchedByWindow": "请选择一个密码以用于{}", + "autoTypeNoMatches": "没有匹配项", + "autoTypeSelectionHint": "输入自动类型序列", + "autoTypeSelectionHintAction": "仅输入密码", + "autoTypeSelectionHintOpt": "仅输入用户名", + "autoTypeSelectionHintShift": "其它字段", + "autoTypeSelectionOtp": "一次性代码", + "autoTypeUnlockMessage": "解锁以自动键入", + "appSecWarn": "不安全!", + "appSecWarnBody1": "您已经通过不安全的连接加载当前应用。其他人可能监控并盗窃您的密码。我们强烈建议您停止使用,除非您清楚地了解自己在做什么。", + "appSecWarnBody2": "是的,你的数据库是加密的,但无法保证保证您所获取的应用未被修改。", + "appSecWarnBtn": "我已经了解风险,请继续", + "appUnsavedWarn": "更改未保存!", + "appUnsavedWarnBody": "您有未保存的文件,如果关闭应用,这些更改将丢失。", + "appDontExitBtn": "不要退出", + "appCannotLockAutoInit": "应用无法被锁定,因为自动保存被禁用。", + "appCannotLock": "所以未保存更改将丢失,是否继续?", + "appAutoSave": "自动保存更改", + "appSaveError": "保存出错", + "appSaveErrorBody": "自动保存文件失败", + "appSaveErrorBodyMul": "自动保存失败:", + "appSaveErrorExitLoseChanges": "退出并放弃更改", + "appSaveErrorExitLoseChangesBody": "您可以退出应用程序并放弃所有更改,也可以转到“文件设置”以导出数据", + "appSettingsError": "载入应用时发生错误", + "appSettingsErrorBody": "加载应用设置时出错。请再次检查应用网址或联系您的管理员。", + "appNotSupportedError": "您的浏览器不支持我们使用的一些重要特性。", + "appTabWarn": "标签页过多", + "appTabWarnBody": "KeeWeb 不能同时在两个浏览器标签页中使用。请关闭这个标签页。", + "appRightsAlert": "锁定 KeeWeb 应用", + "appRightsAlertBody1": "您的 KeeWeb 应用目前未被保护以抵御未经授权的更改。我们向您请求许可,以使应用仅能被管理员写入。", + "appRightsAlertBody2": "不想授权?您可以在终端中手动操作", + "appBrowserAuthComplete": "认证已经完成,您可以关闭这个选项卡。", + "setGenTitle": "全局设置", + "setGenUpdate": "更新", + "setGenNewVersion": "新的应用版本已经发布并下载完毕", + "setGenReleaseNotes": "查看版本说明", + "setGenReloadToUpdate": "重新加载以升级", + "setGenUpdateManual": "新版本已经发布。应用将检查更新并自动安装更新,但无法从当前版本自动升级。", + "setGenDownloadUpdate": "下载更新", + "setGenUpdateAuto": "下载并自动安装", + "setGenUpdateCheck": "检查更新但不安装", + "setGenNoUpdate": "从不检查更新", + "setGenUpdateChecking": "检查更新中", + "setGenCheckUpdate": "检查更新", + "setGenErrorChecking": "检查更新发生错误", + "setGenLastCheckSuccess": "最后检查更新时间:{}", + "setGenLastCheckVer": "最新版本为 {}", + "setGenCheckedAt": "检查时间", + "setGenLatestVer": "你正在使用最新的版本", + "setGenNewVer": "新版本 {} 已发布", + "setGenDownloadingUpdate": "下载更新中...", + "setGenExtractingUpdate": "提取更新中...", + "setGenCheckErr": "下载新版本时发生一个错误", + "setGenNeverChecked": "从不检查更新", + "setGenRestartToUpdate": "重启 KeeWeb 以完成更新", + "setGenDownloadAndRestart": "下载更新并重启应用", + "setGenAppearance": "外观", + "setGenTheme": "主题", + "setGenThemeDefault": "默认", + "setGenThemeDark": "深色", + "setGenThemeLight": "浅色", + "setGenThemeBlue": "淡蓝色", + "setGenThemeFb": "深蓝", + "setGenThemeBl": "浅蓝色", + "setGenThemeBrown": "巧克力棕", + "setGenThemeDb": "深棕", + "setGenThemeLb": "浅棕", + "setGenThemeTerminal": "终端", + "setGenThemeTe": "终端", + "setGenThemeLt": "终端(浅色)", + "setGenThemeHighContrast": "高对比度", + "setGenThemeHc": "高对比度", + "setGenThemeDc": "深色对比", + "setGenThemeSol": "太阳黄", + "setGenThemeSd": "深绿", + "setGenThemeSl": "浅绿", + "setGenMoreThemes": "更多主题", + "setGenAutoSwitchTheme": "可用时在浅色和深色主题间自动切换", + "setGenLocale": "语言", + "setGenLocOther": "其他语言可作为插件获得", + "setGenFontSize": "字体大小", + "setGenFontSizeNormal": "正常", + "setGenFontSizeLarge": "大", + "setGenFontSizeLargest": "最大", + "setGenTitlebarStyle": "窗口样式(需要重启)", + "setGenTitlebarStyleDefault": "默认", + "setGenTitlebarStyleHidden": "自定义标题", + "setGenTitlebarStyleHiddenInset": "自定义标题,可拖拽窗口", + "setGenShowSubgroups": "显示所有子分组的记录", + "setGenTableView": "以表格视图显示记录", + "setGenColorfulIcons": "在列表中显示彩色图标", + "setGenUseMarkdown": "在备注中显示 Markdown", + "setGenUseGroupIconForEntries": "新记录自动使用分组图标", + "setGenDirectAutotype": "如果仅找到一个匹配的记录,自动选择它以用于自动键入", + "setGenFunction": "功能", + "setGenAutoSyncOnClose": "在关闭程序时自动保存和同步", + "setGenAutoSyncTimer": "定时自动保存和同步", + "setGenAutoSyncTimerOff": "关闭", + "setGenAutoSyncTimerInterval": "每 {} 分钟", + "setGenRememberKeyFiles": "记住密钥文件", + "setGenNoRememberKeyFiles": "不记忆", + "setGenRememberKeyFilesData": "保存在应用内", + "setGenRememberKeyFilesPath": "只记住密钥文件路径", + "setGenLockInactive": "退到后台自动锁定", + "setGenNoAutoLock": "不自动锁定", + "setGenLockMinutes": "在 {} 分钟后", + "setGenLockHour": "在 1 个小时后", + "setGenLockHours": "{} 个小时内", + "setGenLockDay": "一天内", + "setGenClearClip": "复制后清除剪贴板", + "setGenNoClear": "不清除", + "setGenClearSeconds": "在 {} 秒后", + "setGenClearMinute": "在一分钟后", + "setGenMinInstead": "最小化此应用但不关闭", + "setGenMinOnFieldCopy": "字段复制时最小化", + "setGenLock": "自动锁定", + "setGenLockMinimize": "应用最小化时", + "setGenLockCopy": "复制密码时", + "setGenLockAutoType": "自动输入时", + "setGenLockOrSleep": "当计算机被锁定或进入睡眠状态", + "setGenStorage": "存储", + "setGenDisableOfflineStorage": "不要在离线存储中缓存已加载的文件", + "setGenShortLivedStorageToken": "在云存储提供商中使用短暂的会话", + "setGenStorageLogout": "退出", + "setGenShowAdvanced": "显示高级设置", + "setGenDevTools": "显示开发工具", + "setGenTryBeta": "试用测试版本直到重启", + "setGenTryBetaWarning": "未保存的文件", + "setGenTryBetaWarningBody": "请保存所有文件,并再次点击按钮。", + "setGenShowAppLogs": "显示应用日志", + "setGenReloadApp": "重新加载应用", + "setGenFieldLabelDblClickAutoType": "双击字段标签时自动键入", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "不使用Touch ID", + "setGenTouchIdMemory": "仅当KeeWeb正在运行时, 使用Touch ID解锁", + "setGenTouchIdFile": "总是使用Touch ID代替主密码", + "setGenTouchIdPass": "需要重新输入主密码", + "setGenAudit": "检查", + "setGenAuditPasswords": "显示有关密码强度的警告", + "setGenAuditPasswordEntropy": "检查密码长度和随机性", + "setGenExcludePinsFromAudit": "从不检查短数字PIN码,如123456", + "setGenCheckPasswordsOnHIBP": "使用 {} 在线服务检查密码", + "setGenHelpHIBP": "KeeWeb 可以使用在线服务检查您的密码是否在以往的数据泄露中被暴露。该检查所发送的数据无法被还原成您的密码,但检查过程中涉及的密码数量可能会被泄漏。更多关于使用该服务所涉及的隐私信息,请参见{}。启用该选项后,KeeWeb 将会自动检查您的密码。", + "setGenHelpHIBPLink": "此处", + "setGenAuditPasswordAge": "旧密码", + "setGenAuditPasswordAgeOff": "不显示有关旧密码的警告", + "setGenAuditPasswordAgeOneYear": "显示超过一年的密码警告", + "setGenAuditPasswordAgeYears": "显示超过 {}年的密码警告", + "setFilePath": "文件路径", + "setFileStorage": "文件加载自 {}。", + "setFileIntl": "文件保存在程序内部", + "setFileLocalHint": "希望与本地文件协同工作?", + "setFileDownloadApp": "下载桌面应用程序", + "setFileSave": "保存", + "setFileSaveTo": "保存到...", + "setFileClose": "关闭", + "setFileSync": "同步", + "setFileSyncVerb": "同步", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "上次同步", + "setFileLastSyncUnknown": "未知", + "setFileSyncInProgress": "同步中", + "setFileSyncError": "同步失败", + "setFilePass": "主密码", + "setFileConfirmPass": "确认主密码", + "setFilePassChange": "如要更改您的密码,请先在确认区域输入", + "setFilePassChanged": "您的密码已经更改;留空则继续使用原密码", + "setFilePassNotMatch": "密码不匹配,请重新输入", + "setFileKeyFile": "密钥文件", + "setFileSelKeyFile": "选择一个密钥文件", + "setFileNames": "密码数据库名称", + "setFileDefUser": "默认用户名", + "setFileEnableTrash": "启用回收站", + "setFileHistMode": "记录历史", + "setFileHistLimited": "自动删除旧的历史记录", + "setFileHistDisabled": "不保存历史", + "setFileHistUnlimited": "永久保存历史记录", + "setFileHistLen": "每项记录保留历史记录的长度限制", + "setFileHistSize": "每个文件历史记录的总 MB 大小限制", + "setFileBackups": "备份", + "setFileBackupEnable": "备份此文件", + "setFileBackupPath": "备份路径", + "setFileBackupTime": "备份频率", + "setFileBackupNow": "立刻备份", + "setFileBackupNowWorking": "备份中...", + "setFileBackupError": "备份出错", + "setFileBackupErrorDescription": "写入备份文件出错", + "setFileBackupErrorIsDir": "备份路径无效", + "setFileBackupErrorIsDirDescription": "备份路径似乎指向目录。请在目录中指定文件名。", + "setFileBackupOnSave": "每次保存文件时", + "setFileBackupDaily": "每日", + "setFileBackupWeekly": "每周", + "setFileBackupMonthly": "每月", + "setFileBackupManually": "手动,不使用自动备份", + "setFileRounds": "密钥加密强度", + "setFileKdfParams": "密钥生成算法", + "setFileKdfParamsIter": "迭代次数", + "setFileKdfParamsMem": "内存占用,KB", + "setFileKdfParamsPar": "并行计算", + "setFileKeyChangeForce": "多久后提示更改密钥文件(天)", + "setFileUseKeyFile": "使用密钥文件", + "setFileUseGenKeyFile": "使用生成的密钥文件", + "setFileUseOldKeyFile": "使用原密钥文件", + "setFileGenKeyFile": "生成新的密钥文件", + "setFileDontUseKeyFile": "不使用密钥文件", + "setFileEmptyPass": "不使用密码", + "setFileEmptyPassBody": "不使用密码的数据库将完全不受保护。你确定要这么做?", + "setFileSaveError": "保存出错", + "setFileSaveErrorBody": "保存文件时出错", + "setFileAlreadyExists": "已经存在", + "setFileAlreadyExistsBody": "文件 {} 已经存在。要覆盖吗?", + "setFileUnsaved": "未保存的更改", + "setFileUnsavedBody": "此文件有未保存的更改", + "setFileCloseNoSave": "关闭并放弃更改", + "setFileDontClose": "不要关闭", + "setFileFormatVersion": "文件格式", + "setFileExportRaw": "导出你的密码", + "setFileExportRawBody": "导出的文件将包含您的密码,在此处不会进行加密。 您是否继续吗?", + "setFileDeviceIntro": "来自此 {} 的一次性代码将显示在该应用内。", + "setFileDeviceSettings": "设置", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "不使用YubiKey", + "setFileRefreshYubiKeyList": "刷新列表", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "将YubiKey用作主密钥的一部分很危险,如果出现问题,您可能会失去密码库访问权限。 更改此设置之前,您是否已备份文件?", + "setFileYubiKeyErrorEmptyMac": "看起来好像插入了YubiKey,但是它不可见。 必须将KeeWeb添加到安全设置的“输入监视”部分,才能访问YubiKeys。", + "setShTitle": "快捷键", + "setShShowAll": "显示所有项", + "setShColors": "显示有颜色的项", + "setShTrash": "前往回收站", + "setShFind": "搜索,或直接开始输入", + "setShClearSearch": "清空搜索", + "setShCopyPass": "复制密码或选中的字段", + "setShCopyUser": "复制用户名", + "setShCopyUrl": "复制网站", + "setShAutoType": "自动输入选中的记录", + "setShPrev": "转到上一项", + "setShNext": "转到下一项", + "setShCreateEntry": "新建记录", + "setShOpen": "打开 / 新建", + "setShSave": "保存所有文件", + "setShGen": "生成密码", + "setShSet": "应用设置", + "setShCopyPassGlobal": "复制密码", + "setShCopyOtp": "复制一次性密码", + "setShAutoTypeGlobal": "自动输入", + "setShCopyPassOnly": "复制密码", + "setShRestoreApp": "打开 {}", + "setShGlobal": "当应用在后台运行时,这些系统快捷键会生效。 您可以单击它们选择您自己的快捷键。", + "setShLock": "锁定数据库", + "setShEdit": "按下新的组合键将其设置为快捷键", + "setPlInstallTitle": "安装新插件", + "setPlInstallDesc": "KeeWeb 插件能够添加功能、主题与语言至 KeeWeb 。插件以与 KeeWeb 同样的等级运行,它们能够读取和管理您的全部密码。永远不要安装不信任的插件。", + "setPlInstallLabel": "插件 URL", + "setPlInstallBtn": "安装", + "setPlInstallBtnProgress": "安装中", + "setPlUninstallBtn": "卸载", + "setPlDisableBtn": "禁用", + "setPlEnableBtn": "启用", + "setPlUpdateBtn": "更新", + "setPlLocaleBtn": "切换到此语言", + "setPlThemeBtn": "切换到此主题", + "setPlJs": "代码", + "setPlCss": "样式", + "setPlLoc": "语言", + "setPlCreatedBy": "由 {} 创建", + "setPlLoadTime": "花费 {} 加载", + "setPlLastUpdate": "上次检查更新", + "setPlLoadError": "载入插件时发生错误", + "setPlGalleryLoading": "载入插件中,请稍候", + "setPlGalleryLoadError": "载入插件时发生错误", + "setPlInstallUrlTitle": "从 URL 中添加插件", + "setPlInstallUrlDesc": "如果插件不在插件库中,您可以手动从 URL 中添加插件", + "setPlOfficial": "官方 KeeWeb 插件", + "setPlSearch": "搜索插件", + "setPlDevelop": "想开发您自己的插件?", + "setPlDevelopStart": "从这里开始", + "setPlTranslate": "或者您也可以{}", + "setPlTranslateLink": "将此应用翻译为您的语言", + "setPlAutoUpdate": "自动更新", + "setPlLoadGallery": "加载插件库", + "setBrowserTitle": "浏览器集成", + "setBrowserIntroDesktop": "KeeWeb可以使用自动键入输入密码,但是浏览器扩展可能是一种更方便的方式。KeeWeb支持两种浏览器扩展:", + "setBrowserIntroKeeWebConnect": "官方的KeeWeb扩展,它的构建考虑了KeeWeb的特性,但是您可能会错过一些可以在其他扩展中找到的高级功能。", + "setBrowserIntroKeePassXcBrowser": "这个扩展是为KeePassXC开发的,它在市场上已经有一段时间了,而且非常可靠。该扩展不属于KeeWeb,可能存在兼容性问题。", + "setBrowserIntroWeb": "安装我们的浏览器扩展,在不同的页面上自动填写KeeWeb的密码。浏览器扩展将连接到浏览器中的KeeWeb选项卡以获取密码。单击此处下载扩展:", + "setBrowserNotEnabled": "未启用浏览器集成,扩展将无法连接到Web。使用下面的复选框启用它:", + "setBrowserEnablePerBrowser": "使用以下复选框以启用浏览器集成:", + "setBrowserFocusIfLocked": "如果浏览器扩展尝试连接时无打开的文件,则打开KeeWeb", + "setBrowserFocusIfEmpty": "如果URL未找到匹配项,则显示条目选择页面", + "setBrowserOtherBrowsers": "其他浏览器", + "setBrowserExtensionFor": "为了{}", + "setBrowserExtensionNotSupported": "不支持", + "setBrowserExtensionHelp": "如何安装?", + "setBrowserExtensionInstall": "安装扩展", + "setBrowserExtensionKPXCWarnHeader": "{} 将会停止工作", + "setBrowserExtensionKPXCWarnBody1": "不幸的是,无法将一个扩展连接到多个应用程序。如果将扩展连接到KeeWeb,我们将覆盖其应用程序关联,这意味着与{}的集成将停止工作。即使取消选中此复选框,也不会恢复与{}的关联。要使其再次工作,请在{}设置中配置浏览器集成。", + "setBrowserExtensionKPXCWarnBody2": "配置扩展程序以使用KeeWeb?", + "setBrowserSessions": "会话", + "setBrowserSessionsEmpty": "没有连接的会话。", + "setBrowserSessionsIntro": "这些扩展现在已连接到KeeWeb。", + "setBrowserSessionsActiveTooltip": "活动会话", + "setBrowserSessionsActiveText": "此会话处于活动状态。它可以基于以下权限与KeeWeb交换数据:", + "setBrowserSessionsInactiveTooltip": "非活动会话", + "setBrowserSessionsInactiveText": "此会话处于非活动状态。扩展连接到KeeWeb,但是它没有尝试交换数据。当扩展请求任何内容时,您可以选择要共享的内容。", + "setBrowserSessionsDeniedTooltip": "访问被拒绝", + "setBrowserSessionsDeniedText": "此会话处于非活动状态。扩展已连接到KeeWeb,但您拒绝访问数据。", + "setBrowserSessionsConnectedDate": "已连接", + "setBrowserSessionsTerminate": "终止此会话", + "setBrowserSessionsAccessToFiles": "允许访问文件", + "setBrowserSessionsNoFileAccess": "扩展没有访问任何文件的权限,它将无法从KeeWeb获取密码。", + "setBrowserSessionsPasswordsRead": "已读取的密码", + "setBrowserSessionsPasswordsWritten": "已保存的密码", + "setDevicesTitle": "设备", + "setDevicesEnableUsb": "启用与USB设备交互", + "setDevicesYubiKeyIntro": "建议在使用YubiKey之前先阅读 {} 。", + "setDevicesYubiKeyIntroLink": "这个文件", + "setDevicesYubiKeyToolsDesc": "要在此模式下使用YubiKey,您需要安装一个{}的工具。", + "setDevicesYubiKeyToolsDesc2": "{} 以获得有关此工具的更多信息。", + "setDevicesYubiKeyToolsDescLink": "点击此处", + "setDevicesYubiKeyToolsStatusChecking": "检测{}是否安装", + "setDevicesYubiKeyToolsStatusOk": "{} 已安装", + "setDevicesYubiKeyToolsStatusError": "{} 未安装或无法正常工作", + "setDevicesYubiKeyOtpTitle": "一次性代码", + "setDevicesYubiKeyOtpDesc": "YubiKey 可用于为不同的服务生成一次性代码。", + "setDevicesYubiKeyOtpShowIcon": "在开始屏幕上显示图标", + "setDevicesYubiKeyOtpAutoOpen": "当存在已打开文件时自动加载一次性代码", + "setDevicesYubiKeyOtpMatchEntries": "在条目中显示匹配的一次性代码", + "setDevicesYubiKeyChalRespTitle": "挑战/应答", + "setDevicesYubiKeyChalRespDesc": "也可以在挑战/应答模式下使用YubiKey,以便在YubiKey上驻留一段用于加密文件的私钥。", + "setDevicesYubiKeyChalRespShow": "显示打开文件时使用YubiKey的选项", + "setDevicesYubiKeyStuckWorkaround": "如果在加载过程中YubiKey卡住,请重新连接它", + "setDevicesYubiKeyRememberChalResp": "打开应用程序时记住挑战/应答", + "setAboutTitle": "关于", + "setAboutBuilt": "此应用使用以下优秀工具构建", + "setAboutLic": "许可", + "setAboutLicComment": "除非另有说明,否则应用本身以及所有包含的组件均遵守 MIT 许可协议", + "setAboutFirst": "这是是由 {} 开发的开源应用程序,", + "setAboutSecond": "遵守 {} 许可协议。", + "setAboutSource": "源码及缺陷报告托管于 {} 。", + "setHelpFormat": "文件格式", + "setHelpFormatBody": "这是一个基于 Web 技术构建的 {} 程序的移植版本,支持 KeePass 文件格式 (kdbx)。您可以使用 KeePass 或当前应用创建这种文件 (密码数据库)。文件格式对两者100%兼容。", + "setHelpProblems": "需要一些帮助?", + "setHelpProblems1": "如果出现问题,请 {}", + "setHelpProblems2": "或者 {}", + "setHelpOpenIssue": "在GitHub上新建一个缺陷报告", + "setHelpContactLink": "直接联系开发人员", + "setHelpAppInfo": "应用信息", + "setHelpOtherPlatforms": "其他平台", + "setHelpDesktopApps": "桌面应用程序", + "setHelpWebApp": "网页应用", + "setHelpUpdates": "更新", + "setHelpTwitter": "官方 Twitter", + "dropboxSetupDesc": "在自行托管的应用中使用 Dropbox 需要一些额外配置。请创建您自己的 Dropbox 应用,并在下方填写其 key。", + "dropboxAppKey": "Dropbox 应用 key", + "dropboxAppKeyDesc": "从您的 Dropbox 应用中复制 key (开发者设置)", + "dropboxAppKeyHint": "你的公钥", + "dropboxAppSecret": "Dropbox 应用 secret", + "dropboxAppSecretDesc": "密钥可在公钥下方找到", + "dropboxFolder": "应用文件夹", + "dropboxFolderDesc": "如果您的应用已经链接到整个 Dropbox (而不是应用文件夹),请在这里设置您的 kdbx 文件所在文件夹。", + "dropboxFolderSettingsDesc": "请选 Dropbox 中保存文件的文件夹(默认为根文件夹)", + "dropboxFolderPlaceholder": "默认文件夹", + "dropboxLink": "将 KeeWeb 链接到", + "dropboxLinkApp": "应用文件夹(Apps/KeeWeb)", + "dropboxLinkFull": "整个 Dropbox 或者任意文件夹", + "dropboxLinkCustom": "自有 Dropbox 应用", + "gdriveSharedWithMe": "与我分享", + "gdriveSharedDrives": "共享驱动", + "gdriveTeamDrives": "团队驱动", + "webdavSaveMethod": "保存方式", + "webdavSaveMove": "上传一个临时文件并移动", + "webdavSavePut": "以 PUT 方式覆盖文件", + "webdavNoLastModified": "缺少Last-Modified HTTP标头", + "webdavStatReload": "始终重新加载文件,而不是依赖Last-Modified HTTP标头", + "launcherSave": "保存密码数据库", + "launcherFileFilter": "KeePass 文件", + "authPopupRequired": "弹出窗口已被阻止", + "authPopupRequiredBody": "请在您的浏览器中允许弹出窗口或重试。", + "exportFileInfo": "文件信息", + "exportHtmlName": "名称", + "exportHtmlDate": "导出数据", + "exportGenerator": "软件", + "exportDescription": "此文件由 {} 生成。", + "importCsvTitle": "从CSV文件导入", + "importCsvRun": "导入", + "importIgnoreField": "忽略", + "importTo": "条目将被导入到", + "importNewFile": "新文件", + "yubiKeyStuckError": "YubiKey似乎卡住,可以在应用程序设置中启用自动修复。", + "yubiKeyNoKeyHeader": "需要YubiKey", + "yubiKeyNoKeyBody": "请插入序列号为{} YubiKey", + "yubiKeySlot": "插槽", + "yubiKeyTouchRequestedHeader": "确认您的YubiKey", + "yubiKeyTouchRequestedBody": "请确认序列号{}的YubiKey", + "yubiKeyDisabledErrorHeader": "usb不可用", + "yubiKeyDisabledErrorBody": "需要YubiKey才能打开此文件,请在设置中启用USB设备。", + "yubiKeyErrorWithCode": "YubiKey错误,代码{}。", + "bioOpenAuthPrompt": "打开 \"{}\"", + "extensionErrorNoOpenFiles": "无打开的文件", + "extensionErrorUserRejected": "请求被拒绝", + "extensionErrorNoMatches": "无匹配的登录项", + "extensionErrorAlertDisplayed": "现在无法提问,因为显示了另一个对话框,请重试", + "extensionConnectHeader": "扩展数据交换", + "extensionConnectIntro": "将自身标识为{}的浏览器扩展尝试与Web交换数据。", + "extensionConnectUnknownActivity": "KeeWeb不会验证连接的应用程序是否是它假装的。仅当您识别此活动时才批准请求。", + "extensionConnectFiles": "在此会话中,允许访问:", + "extensionConnectAllOtherFiles": "所有其他的文件", + "extensionConnectAllFiles": "所有文件", + "extensionConnectAskGet": "在返回密码到扩展前询问:", + "extensionConnectAskGetMultiple": "如果有多项匹配", + "extensionConnectAskGetAlways": "总是", + "extensionConnectAskSave": "在保存新密码到KeeWeb前询问:", + "extensionConnectAskSaveAlways": "总是", + "extensionConnectAskSaveAuto": "当无法自动保存时", + "extensionConnectSettingsAreForSession": "您在此处选择的设置仅对活动会话有效。您可以在KeeWeb设置中查看和管理会话。", + "extensionUnlockMessage": "解锁以连接浏览器扩展", + "extensionNewGroupHeader": "新组", + "extensionNewGroupBody": "{}正在尝试创建一个新组,是否允许?", + "extensionNewGroupPath": "组路径", + "extensionNewGroupFile": "该组将被创建到:", + "extensionSaveEntryHeader": "保存密码", + "extensionSaveEntryBody": "{}正在尝试保存密码,是否允许?", + "extensionSaveEntryAuto": "在此会话中自动保存其他密码", + "extensionSaveEntryNewGroup": "新组", + "extensionSelectPasswordFor": "为{}选择密码", + "selectEntryHeader": "选择条目", + "selectEntryEnterHint": "使用高亮的条目", + "selectEntryTypingHint": "开始键入以筛选", + "selectEntryContains": "包含文本", + "selectEntrySubdomains": "子域名", + "selectEntryFieldHeader": "选择字段", + "selectEntryFieldTouch": "按下您的设备上的按钮以生成一次性代码。" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/zh-TW/index.html b/keeweb/plugins/translations/zh-TW/index.html new file mode 100644 index 0000000..e5b6351 --- /dev/null +++ b/keeweb/plugins/translations/zh-TW/index.html @@ -0,0 +1,18 @@ + + + + + KeeWeb Language: 繁體中文 + + + + +

KeeWeb Language: 繁體中文

+ https://plugins.keeweb.info/translations/zh-TW + + diff --git a/keeweb/plugins/translations/zh-TW/manifest.json b/keeweb/plugins/translations/zh-TW/manifest.json new file mode 100644 index 0000000..af2f899 --- /dev/null +++ b/keeweb/plugins/translations/zh-TW/manifest.json @@ -0,0 +1,22 @@ +{ + "version": "1.12.0", + "manifestVersion": "0.1.0", + "name": "language-chinese-traditional", + "description": "Chinese Traditional language", + "author": { + "name": "KeeWeb", + "email": "antelle.net@gmail.com", + "url": "https://keeweb.info" + }, + "license": "MIT", + "url": "https://plugins.keeweb.info/translations?lang=zh-TW", + "resources": { + "loc": "ElkgqBkzPMDLHGotC7h5reM4c55NZHT0GERrtKTcDTSWbVx5umS4hgce2qOmxqPClYgsSUX+RMuTOHJKZOePOn6xMGNDuKAOW7shn8Z+MKl2HGl6ArC5yTcom9z6VvjNVRe2cJaN6YPC9Aq9a186Pu9hZU0lUcEeJFoCsxxiX0M5zCFjmBhuRwE7sCqTrqbqgmMQiuw0PUq+/WDcPsj2gHSIikGlx5+2FNrxRIoIy11NecbKTc0AabcXFJRd/yfKoa2OZKiPkADzb3gzV7GpX1LfyG7JyFsM8l7yFuRf60/sXFCksIdEajSSgQw2LQnSP5UDN2R/DP6lZliYKKcFgA==" + }, + "locale": { + "name": "zh-TW", + "title": "繁體中文", + "flag": "🇹🇼" + }, + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6QVeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1VPdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5gLwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S0QIDAQAB" +} \ No newline at end of file diff --git a/keeweb/plugins/translations/zh-TW/zh-TW.json b/keeweb/plugins/translations/zh-TW/zh-TW.json new file mode 100644 index 0000000..b53b198 --- /dev/null +++ b/keeweb/plugins/translations/zh-TW/zh-TW.json @@ -0,0 +1,713 @@ +{ + "retToApp": "返回系統", + "name": "名稱", + "icon": "圖示", + "title": "標題", + "password": "密碼", + "user": "使用者", + "website": "網站", + "tags": "標籤", + "notes": "備註", + "entry": "紀錄", + "group": "群組", + "noTitle": "無標題", + "or": "或", + "history": "歷史", + "template": "範本", + "templates": "範本", + "notImplemented": "未執行", + "saveChanges": "儲存異動", + "discardChanges": "放棄異動", + "advanced": "進階", + "shortcuts": "快捷鍵", + "help": "幫助", + "settings": "設定", + "plugins": "擴充套件", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "錯誤", + "oneMinute": "一分鐘", + "minutes": "{}分鐘", + "oneHour": "一小時", + "hours": "{}小時", + "oneDay": "一天", + "days": "{}天", + "oneWeek": "一週", + "oneMonth": "一個月", + "oneYear": "一年", + "cache": "緩存", + "file": "檔案", + "device": "裝置", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "所有項目", + "menuColors": "顏色", + "menuTrash": "回收桶", + "menuSetGeneral": "一般", + "menuSetBrowser": "瀏覽器", + "menuSetAbout": "關於", + "menuSetDevices": "裝置", + "menuAlertNoTags": "無標籤", + "menuAlertNoTagsBody": "您可以在標籤欄位中新增標籤。", + "menuEmptyTrash": "清空回收桶", + "menuEmptyTrashAlert": "確定清空回收桶?", + "menuEmptyTrashAlertBody": "您將無法恢復這些項目", + "menuItemCollapsed": "雙擊以展開", + "menuRestoreApp": "開啟 {}", + "menuQuitApp": "離開 {}", + "sysMenuAboutKeeWeb": "關於 {}", + "sysMenuServices": "服務", + "sysMenuHide": "隱藏 {}", + "sysMenuHideOthers": "隱藏其他視窗", + "sysMenuUnhide": "全部顯示", + "sysMenuQuit": "離開 {}", + "sysMenuEdit": "編輯", + "sysMenuUndo": "回復", + "sysMenuRedo": "重做", + "sysMenuCut": "剪下", + "sysMenuCopy": "複製", + "sysMenuPaste": "貼上", + "sysMenuSelectAll": "全選", + "sysMenuWindow": "視窗", + "sysMenuMinimize": "最小化", + "sysMenuClose": "關閉視窗", + "alertYes": "確定", + "alertNo": "取消", + "alertOk": "確定", + "alertCancel": "取消", + "alertSignIn": "登入", + "alertCopy": "複製", + "alertClose": "關閉", + "alertDoNotAsk": "不再詢問", + "alertAllow": "允許", + "alertDeny": "拒絕", + "appBeta": "警告:測試版本,僅供預覽。", + "footerOpen": "打開 / 新建", + "footerSyncError": "同步錯誤", + "footerTitleGen": "生成", + "footerTitleLock": "鎖定", + "genLen": "長度", + "genNewPass": "新建密碼", + "genPresetDefault": "默認預設", + "genPresetDerived": "同舊密碼", + "genPresetPronounceable": "可拼讀", + "genPresetMed": "中等長度", + "genPresetLong": "長", + "genPresetPin4": "4位PIN碼", + "genPresetMac": "MAC位址", + "genPresetHash128": "128位元雜湊", + "genPresetHash256": "256位元雜湊", + "genHidePass": "隱藏密碼", + "genShowPass": "顯示密碼", + "grpTitle": "群組", + "grpSearch": "允許搜尋本群組下的紀錄", + "grpAutoType": "啟用自動輸入", + "grpAutoTypeSeq": "自動輸入順序", + "grpAutoTypeSeqDefault": "使用預設的自動輸入順序", + "grpTrash": "刪除群組及其下所有紀錄", + "tagTitle": "標籤", + "tagTrash": "從所有紀錄中移除標籤", + "tagRename": "重新命名", + "tagTrashQuestion": "確定從所有紀錄中移除標籤?", + "tagTrashQuestionBody": "此標籤將從所有紀錄中刪除。此舉將難以回復。", + "tagExists": "標籤已存在", + "tagExistsBody": "此標籤名稱已存在,請使用其他名稱。", + "tagBadName": "非法的名稱", + "tagBadNameBody": "標籤名稱中不能包含{}等字符,請刪除它們。", + "genPsTitle": "產生器預設", + "genPsCreate": "新增預設", + "genPsDelete": "刪除預設", + "genPsNew": "預設", + "genPsEnabled": "在預設列表中顯示", + "genPsDefault": "默認預設", + "genPsDefaultLength": "默認長度", + "genPsUpper": "大寫拉丁字母", + "genPsLower": "小寫拉丁字母", + "genPsDigits": "數字", + "genPsSpecial": "特殊符號", + "genPsBrackets": "括號", + "genPsHigh": "擴展 ASCII 字符", + "genPsAmbiguous": "相似字符", + "genPsInclude": "要包含的其他符號", + "genPsExample": "生成密碼範例", + "genPsPatternHelp": "您可以使用Pattern作為生成密碼時的一組特定規則。例如,「1-AA」會根據「以一個數字為開頭,接著一個『-』符號,再接著兩個字母」的規則來產生密碼。您可以使用的符號如下:", + "genPsAllRanges": "任意字符", + "keyChangeTitleRemote": "主密鑰已更改", + "keyChangeMessageRemote": "此資料庫的主密鑰已更改,請輸入新的密鑰。", + "keyChangeTitleExpired": "主密鑰已過期", + "keyChangeMessageExpired": "此資料庫的主密鑰已過期,請輸入新的密鑰。", + "keyChangeRepeatPassword": "再次輸入密碼", + "keyEnter": "輸入", + "keyEsc": "Esc", + "iconFavTitle": "下載並使用網站圖標", + "iconSelCustom": "選擇自定義圖示", + "listEmptyTitle": "空", + "listEmptyAdd": "點擊 {} 按鈕新增", + "listGroup": "群組", + "listNoWebsite": "沒有網站", + "listNoUser": "沒有使用者", + "listNoAttachments": "沒有附件", + "listAddTemplateHeader": "範本", + "listAddTemplateBody1": "您可以透過範本一鍵新增紀錄。在範本紀錄中輸入資料,然後按 {} 就可以使用這個範本。", + "listAddTemplateBody2": "你可以隨時在「{}」群組內找到你的範本。", + "searchAddNew": "新增", + "searchSort": "排序", + "searchCreated": "建立時間", + "searchUpdated": "更新時間", + "searchAttachments": "附件", + "searchAZ": "從 A {} Z", + "searchZA": "從 Z {} A", + "searchON": "從舊 {} 新", + "searchNO": "從新 {} 舊", + "searchShiftClickOr": "按住Shift+點擊 或", + "searchAdvTitle": "切換進階搜尋", + "searchSearchIn": "搜尋範圍", + "searchOther": "其他欄位", + "searchProtect": "安全字段", + "searchOptions": "選項", + "searchCase": "區分大小寫", + "searchRegex": "正規表達式", + "searchRank": "自動", + "searchExact": "完全符合", + "openOpen": "打開", + "openNew": "新建", + "openNewFile": "未命名資料庫", + "openMore": "更多", + "openDemo": "展示", + "openGenerate": "生成", + "openXml": "匯入XML", + "openCaps": "大寫鎖定已啟用", + "openClickToOpen": "點擊開啟文件", + "openKeyFile": "密鑰檔", + "openKeyFileDropbox": "(從Dropbox)", + "openDropHere": "拖放檔案到此處", + "openFailedRead": "讀取檔案失敗", + "openNothingFound": "找不到內容", + "openNothingFoundBody": "沒有可以開啟的文件。", + "openSelectFile": "選擇檔案", + "openSelectFileBody": "選擇您想開啟的檔案", + "openPassFor": "輸入密碼以開啟", + "openRemoveLastQuestion": "是否刪除本地檔案?", + "openRemoveLastQuestionBody": "您要刪除的檔案僅保存在KeeWeb中,確定永久刪除嗎?", + "openRemoveLastQuestionModBody": "您要刪除的檔案已在本地端做過修改,確定放棄該異動並刪除檔案嗎?", + "openLocalFile": "本地檔案", + "openLocalFileBody": "您要開啟的檔案將僅保存在KeeWeb中。任何您所造成的異動都不會儲存到檔案系統。若您想要將您的資料儲存為檔案,請在設定中進行匯出。", + "openLocalFileDontShow": "不再顯示", + "openWrongFile": "檔案損毀", + "openWrongFileBody": "不支援此檔案格式。KeeWeb僅支援KeePass的資料庫檔案格式(kdbx)。", + "openKdbFileBody": "您開啟的是舊版的KeePass資料庫檔案格式(kdb)。KeeWeb僅支援新的KeePass資料庫檔案格式(kdbx),請使用KeePass第二版來轉換格式。", + "openConfigHeader": "{}設定", + "openUrl": "URL", + "openUrlDesc": "「https://server/path/file.kdbx」,或「file.kdbx」", + "openUser": "使用者", + "openUserDesc": "WebDAV伺服器使用者名稱(如為必要)", + "openUserPlaceholder": "沒有使用者名稱", + "openPass": "密碼", + "openPassDesc": "WebDAV伺服器的密碼(並非檔案的密碼)", + "openPassPlaceholder": "沒有密碼", + "openConfigError": "錯誤:{}", + "openConfigErrorNotFound": "找不到檔案", + "openError": "錯誤", + "openErrorDescription": "開啟檔案時發生錯誤", + "openErrorDescriptionMaybeTouchIdChanged": "此錯誤與Touch ID設定異動(比如新增或刪除指紋)時所造成的影響十分相似。在這種情況下,可以到設定中將Touch ID停用後再啟用以解決此問題。", + "openErrorFileNotFound": "找不到檔案", + "openListErrorBody": "讀取檔案清單時發生錯誤", + "openShowAllFiles": "顯示所有檔案", + "openFileNoCacheError": "檔案不存在於快取中。這個情況可能是由瀏覽器存儲資料被清空所引起。將檔案從KeeWeb中刪除後重新加入以開啟此檔案。", + "openChalRespHeader": "詰問-回應", + "openChalRespLoading": "正在讀取Yubikey清單", + "openChalRespSelectYubiKey": "選擇一個您想使用的Yubikey", + "openChalRespErrorEmpty": "找不到Yubikey", + "openChalRespErrorEmptyMac": "第一次在 macOS 上使用這個功能?安全起見,您必須額外允許 KeeWeb 監控輸入。", + "detAttDownload": "按住Shift並點擊附件按鈕以下載或", + "detAttDelToRemove": "Delete 以移除", + "detAttSave": "另存為...", + "detEmpty": "您的密碼會顯示在這裡", + "detGroupRestore": "要回復此群組,請將其從回收桶中拖放到回收桶外的任意群組上", + "detHistoryClickPoint": "點擊記錄歷史時間軸上的點來查看狀態", + "detHistoryReturn": "返回紀錄", + "detHistoryRevert": "還原到此狀態", + "detHistoryDel": "刪除此狀態", + "detHistoryEmpty": "空", + "detHistoryModified": "已修改", + "detHistoryRec": "紀錄", + "detHistoryRecs": "紀錄", + "detHistoryVersion": "版本", + "detHistorySaved": "已儲存", + "detHistoryNoTitle": "無標題", + "detHistoryCurState": "當前狀態", + "detHistoryCurUnsavedState": "當前尚未儲存的狀態", + "detHistoryRevertAlert": "還原到此狀態?", + "detHistoryRevertAlertBody": "您的當前狀態將被儲存到歷史紀錄中", + "detHistoryDeleteAlert": "刪除此歷史紀錄狀態?", + "detHistoryDeleteAlertBody": "此動作無法被還原。", + "detHistoryDiscardChangesAlert": "放棄對記錄的異動?", + "detHistoryDiscardChangesAlertBody": "未儲存的異動將會遺失,且將無法回復。", + "detBackToList": "返回列表", + "detSetIconColor": "更改顏色", + "detSetIcon": "更改圖示", + "detDropAttachments": "拖放附件到此處", + "detDelEntry": "刪除", + "detDelEntryPerm": "永久刪除", + "detExpires": "期限", + "detExpired": "已過期", + "detGroup": "分組", + "detCreated": "新建", + "detUpdated": "更新", + "detNetField": "新字段", + "detAttachments": "附件", + "detDelFromTrash": "從回收站中刪除嗎?", + "detDelFromTrashBody": "刪除後將無法恢復.", + "detDelFromTrashBodyHint": "想要快速刪除回收桶內所有內容,請點擊回收桶選單的清空鈕。", + "detDelToTrash": "刪除此紀錄?", + "detDelToTrashBody": "這紀錄將被移到回收資料夾中.", + "detFieldCopied": "已複製", + "detFieldCopiedTime": "複製 {} 秒", + "detCopyHint": "您可以點擊標題以複製欄位內容", + "detMore": "更多", + "detClickToAddField": "點擊來添加新字段", + "detMenuAddNewField": "增加新欄位", + "detMenuAddNewWebsite": "加入另一個網站", + "detMenuShowEmpty": "顯示空字段", + "detMenuHideEmpty": "隱藏空字段", + "detMenuAddField": "添加 {}", + "detMenuCopyPassword": "複製密碼", + "detMenuCopyUser": "複製用戶名", + "detMenuCopyOtp": "複製 OTP(一次性密碼)", + "detSetupOtp": "一次性密碼", + "detClone": "製作副本", + "detCopyEntryToClipboard": "複製所有欄位", + "detClonedName": "複製", + "detAutoType": "自動輸入", + "detAutoTypeSettings": "自動輸入設定", + "detAutoTypeEnabled": "容許自動輸入這個紀錄", + "detAutoTypeSequence": "按鍵", + "detAutoTypeInput": "輸入方法", + "detAutoTypeShortcutsDesc": "{} 或 {} 當程式閒置時喚醒程式", + "detAutoTypeObfuscation": "混合真實和隨機按鍵", + "detAutoTypeWindow": "視窗", + "detAutoTypeInputWindow": "視窗標題", + "detSetupOtpAlert": "掃描 QR code", + "detSetupOtpAlertBody": "請複製驗證頁面上的 QR code 圖片", + "detSetupOtpAlertBody1": "1. 前往驗證網頁", + "detSetupOtpAlertBody2": "2. 擷取屏幕上的QR code {}", + "detSetupOtpAlertBody3": "3. 貼在這裏 {}", + "detSetupOtpAlertBody3Mobile": "3. 使用下面的選取/掃描按鈕,選取或用你的相機掃描", + "detSetupOtpAlertBody4": "如果你不能掃描 QR code ,按手動輸入驗證碼", + "detSetupOtpManualButton": "手動輸入驗證碼", + "detSetupOtpScanButton": "選取/掃描", + "detSetupOtpAlertBodyWith": "{}", + "detOtpImageError": "圖片讀取錯誤", + "detOtpImageErrorBody": "抱歉,我們無法讀取此圖片,請通知程式作者有關本錯誤的資訊。", + "detOtpImageReading": "讀取QR code中...", + "detOtpQrError": "QR code掃描錯誤", + "detOtpQrErrorBody": "抱歉,我們無法讀取QR code,請重試,或通知程式作者有關本錯誤的資訊。", + "detOtpQrWrong": "QR code不正確", + "detOtpQrWrongBody": "QR code 讀取成功,但不含一次性密碼相關資料。", + "detOtpField": "一次性密碼", + "detOtpClickToTouch": "點此顯示", + "detOtpGenerating": "請稍候...", + "detOtpTouch": "觸碰您的 {}", + "detLockField": "鎖定此欄,使其隱藏也不列入搜尋結果。若要檢視內容,必須手動點擊該欄。", + "detUnlockField": "解鎖此欄,使其立即顯示並且允許列入搜尋結果", + "detRevealField": "顯示", + "detHideField": "隱藏", + "detAutoTypeField": "自動輸入", + "detIssuesHideTooltip": "隱藏此警告", + "detIssueWeakPassword": "密碼強度較低,建議更改密碼。", + "detIssuePoorPassword": "密碼強度太低,建議您立刻更改密碼。", + "detIssuePwnedPassword": "根據 {},此密碼已遭外洩,建議您更改密碼。", + "detIssuePasswordCheckError": "檢查密碼強度時出錯。", + "detIssueOldPassword": "此密碼太老舊", + "detIssueCloseAlertHeader": "隱藏密碼問題", + "detIssueCloseAlertBody": "要隱藏此警告,可選用下列方式:", + "detIssueCloseAlertEntry": "僅隱藏與此項相關的警告", + "detIssueCloseAlertSettings": "隱藏所有相關警告", + "autoTypeEntryFields": "登入資料", + "autoTypeModifiers": "更動輸入的按鍵", + "autoTypeKeys": "功能鍵", + "autoTypeLink": "更多...", + "autoTypeError": "自動輸入錯誤", + "autoTypeErrorGeneric": "自動輸入時發生錯誤:{}", + "autoTypeErrorGlobal": "若想使用快速鍵,則請將游標焦點放到要輸入密碼的地方", + "autoTypeErrorNotInstalled": "未安裝 {}", + "autoTypeHeader": "自動輸入:選取", + "autoTypeMsgNoWindow": "我們無法獲取使用中視窗的標題,請自行搜尋紀錄", + "autoTypeMsgMatchedByWindow": "選擇用於 {} 的密碼", + "autoTypeNoMatches": "無吻合紀錄", + "autoTypeSelectionHintAction": "只輸入密碼", + "autoTypeSelectionHintOpt": "只輸入使用者名稱", + "autoTypeSelectionHintShift": "其他欄位", + "autoTypeSelectionOtp": "一次性密碼", + "appSecWarn": "不安全!", + "appSecWarnBody1": "你正使用不安全的連線載入本程式。可能有人正在監察你的活動並偷取你的密碼。除非您很清楚自己正在做什麼,否則我們強烈建議你停止載入。", + "appSecWarnBody2": "你的密碼庫的確已經加密,但無人可以保證你正使用的程式版本未經改裝。", + "appSecWarnBtn": "我了解所面對的風險,並決定繼續", + "appUnsavedWarn": "有修改未儲存!", + "appUnsavedWarnBody": "你有檔案未儲存,若你關閉程式,那些修改將不會保留。", + "appDontExitBtn": "不要離開", + "appCannotLockAutoInit": "未能鎖定程式,因為自動儲存已停用。", + "appCannotLock": "未儲存的修改將會消失,繼續?", + "appAutoSave": "自動儲存", + "appSaveError": "儲存錯誤", + "appSaveErrorBody": "未能自動儲存檔案", + "appSaveErrorBodyMul": "未能自動儲存檔案:", + "appSaveErrorExitLoseChanges": "離開且遺失所有變更", + "appSaveErrorExitLoseChangesBody": "你可以離開且遺失所有變更,或是到檔案設定以匯出檔案。", + "appSettingsError": "程式載入錯誤", + "appSettingsErrorBody": "載入程式設定時發生錯誤。請檢查程式 URL,或通知你的管理員。", + "appNotSupportedError": "您的瀏覽器不支援某些此程式會用到的重要功能。", + "appTabWarn": "標籤頁過多", + "appTabWarnBody": "KeeWeb 不能同時在兩個瀏覽器標籤頁中使用,請關閉這個標籤頁.", + "appRightsAlert": "正在鎖定 KeeWeb", + "appRightsAlertBody1": "需要 KeeWeb 管理者權限才能寫入目前的修改資料", + "appRightsAlertBody2": "不想授權嗎?可以在終端模式手動操作", + "appBrowserAuthComplete": "認證已經完成,您可以關閉這個標籤頁。", + "setGenTitle": "一般設定", + "setGenUpdate": "更新", + "setGenNewVersion": "新程式版本已推出並已下載", + "setGenReleaseNotes": "查看更新紀錄", + "setGenReloadToUpdate": "重新整理以更新", + "setGenUpdateManual": "新版本已推出。本程式會檢查並自動安裝更新,但無法從你的版本自動升級。", + "setGenDownloadUpdate": "下載更新", + "setGenUpdateAuto": "下載並自動安裝", + "setGenUpdateCheck": "檢查更新但不自動安裝", + "setGenNoUpdate": "永不自動檢查更新", + "setGenUpdateChecking": "檢查更新中", + "setGenCheckUpdate": "檢查更新", + "setGenErrorChecking": "檢查更新錯誤", + "setGenLastCheckSuccess": "上次成功檢查更新為 {}", + "setGenLastCheckVer": "最新版本為 {}", + "setGenCheckedAt": "檢查於", + "setGenLatestVer": "你正使用最新版本", + "setGenNewVer": "新版本 {} 已推出", + "setGenDownloadingUpdate": "下載更新中...", + "setGenExtractingUpdate": "提取更新中...", + "setGenCheckErr": "下載新版本時發生錯誤", + "setGenNeverChecked": "從未檢查更新", + "setGenRestartToUpdate": "重啓 KeeWeb 以更新", + "setGenDownloadAndRestart": "下載更新並重啓", + "setGenAppearance": "外觀", + "setGenTheme": "主題", + "setGenThemeDefault": "預設", + "setGenThemeDark": "深色", + "setGenThemeLight": "淺色", + "setGenThemeFb": "藍黑", + "setGenThemeDb": "深啡", + "setGenThemeTe": "錄黑", + "setGenThemeHighContrast": "高對比", + "setGenThemeHc": "高對比", + "setGenThemeSd": "湖水藍", + "setGenThemeSl": "米白", + "setGenLocale": "語言", + "setGenLocOther": "其他語言以擴充套件提供", + "setGenFontSize": "字體大小", + "setGenFontSizeNormal": "正常", + "setGenFontSizeLarge": "大", + "setGenFontSizeLargest": "最大", + "setGenTitlebarStyle": "視窗樣式", + "setGenTitlebarStyleDefault": "預設", + "setGenTitlebarStyleHidden": "自訂標題", + "setGenTitlebarStyleHiddenInset": "自訂標題,可移動視窗", + "setGenShowSubgroups": "顯示所有分類的紀錄", + "setGenTableView": "上下欄檢視", + "setGenColorfulIcons": "在列表顯示彩色自訂圖示", + "setGenFunction": "功能", + "setGenAutoSyncOnClose": "在關閉時自動儲存和同步", + "setGenAutoSyncTimer": "定期自動儲存和同步", + "setGenAutoSyncTimerOff": "已停用", + "setGenAutoSyncTimerInterval": "每 {} 分鐘", + "setGenRememberKeyFiles": "記住密鑰文件", + "setGenNoRememberKeyFiles": "不記憶", + "setGenRememberKeyFilesData": "保存在應用內", + "setGenRememberKeyFilesPath": "只記住密鑰文件路徑", + "setGenLockInactive": "閒置時自動鎖定程式", + "setGenNoAutoLock": "不要自動鎖定", + "setGenLockMinutes": "{} 分鐘後", + "setGenLockHour": "1 小時後", + "setGenLockHours": "{} 個小時內", + "setGenLockDay": "一天內", + "setGenClearClip": "複製後清除剪貼板", + "setGenNoClear": "不要清除", + "setGenClearSeconds": "{} 秒後", + "setGenClearMinute": "1 分鐘後", + "setGenMinInstead": "最小化程式,而不關閉", + "setGenMinOnFieldCopy": "在複製欄位時最小化", + "setGenLock": "自動鎖定", + "setGenLockMinimize": "最小化後自動鎖定", + "setGenLockCopy": "複製密碼後自動鎖定", + "setGenLockAutoType": "自動輸入後自動鎖定", + "setGenLockOrSleep": "當電腦在鎖定或睡眠狀態時", + "setGenStorage": "儲存", + "setGenStorageLogout": "登出", + "setGenShowAdvanced": "顯示進階設定", + "setGenDevTools": "顯示開發人員工具", + "setGenTryBeta": "嘗試測試版直到重啓", + "setGenTryBetaWarning": "檔案未儲存", + "setGenTryBetaWarningBody": "請儲存所有檔案後再按這個按鈕", + "setGenShowAppLogs": "顯示程式紀錄檔", + "setGenReloadApp": "重新載入應用程式", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "不使用 Touch ID", + "setGenTouchIdMemory": "KeeWeb 執行中時,以 Touch ID 解鎖", + "setGenTouchIdFile": "總是使用 Touch ID,而非主密鑰", + "setGenTouchIdPass": "超過一定時間後要求輸入主密碼", + "setGenAudit": "檢查", + "setGenAuditPasswords": "顯示密碼強度相關警告", + "setGenAuditPasswordEntropy": "檢查密碼長度及變化", + "setGenExcludePinsFromAudit": "不要檢查短的數字 PIN 碼(如 123456)", + "setGenCheckPasswordsOnHIBP": "使用線上服務 {} 檢查密碼", + "setGenHelpHIBP": "KeeWeb 能夠用線上服務檢查您的密碼是否曾在之前的資料外洩中被洩漏。以此方式傳送的資料無法被還原成您的密碼,但檢查過的密碼數量可能會被揭露。更多關於使用此服務時的隱私權請參照 {}。若此選項已啟用,KeeWeb 將會自動檢查您的密碼。", + "setGenAuditPasswordAge": "舊密碼", + "setGenAuditPasswordAgeOff": "不顯示舊密碼相關警告", + "setGenAuditPasswordAgeOneYear": "為超過 1 年未變更的舊密碼顯示警告", + "setGenAuditPasswordAgeYears": "為超過 {} 年未變更的舊密碼顯示警告", + "setFilePath": "檔案路徑", + "setFileStorage": "這個檔案讀取自 {} 。", + "setFileIntl": "這個檔案儲存在程式內部空間。", + "setFileLocalHint": "想無縫使用本機檔案?", + "setFileDownloadApp": "下載桌面程式", + "setFileSave": "儲存", + "setFileSaveTo": "另存到...", + "setFileClose": "關閉", + "setFileSync": "同步", + "setFileSyncVerb": "同步", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "最後同步", + "setFileLastSyncUnknown": "未知", + "setFileSyncInProgress": "正在同步", + "setFileSyncError": "同步錯誤", + "setFilePass": "主密碼", + "setFileConfirmPass": "確認主密碼", + "setFilePassChange": "要改變您的密碼,請在此確認欄位中輸入", + "setFilePassChanged": "密碼已更改;留空此欄以使用舊密碼", + "setFilePassNotMatch": "密碼不相符,請重新輸入", + "setFileKeyFile": "密鑰檔", + "setFileSelKeyFile": "選取密鑰檔", + "setFileNames": "名稱", + "setFileDefUser": "預設帳戶名稱", + "setFileEnableTrash": "啟用回收桶", + "setFileHistMode": "紀錄歷史", + "setFileHistLimited": "自動刪除歷史記錄", + "setFileHistDisabled": "不要儲存歷史紀錄", + "setFileHistUnlimited": "保留歷史紀錄", + "setFileHistLen": "每個紀錄保存的舊版本數量", + "setFileHistSize": "每個歷史檔最大容量(MB)", + "setFileBackups": "備份", + "setFileBackupEnable": "備份此檔案", + "setFileBackupPath": "備份路徑", + "setFileBackupTime": "製作備份", + "setFileBackupNow": "現在備份", + "setFileBackupNowWorking": "備份中...", + "setFileBackupError": "備份錯誤", + "setFileBackupErrorDescription": "寫入備份檔案時發生錯誤", + "setFileBackupErrorIsDir": "無效的備份路徑", + "setFileBackupErrorIsDirDescription": "備份路徑似乎是指向一個資料夾,請改為指定在資料夾裡的一個檔案名稱。", + "setFileBackupOnSave": "每次儲存檔案時", + "setFileBackupDaily": "每日", + "setFileBackupWeekly": "每週", + "setFileBackupMonthly": "每月", + "setFileBackupManually": "手動,不要自動備份", + "setFileRounds": "密鑰加密圈數", + "setFileKdfParams": "密鑰生成演算", + "setFileKdfParamsIter": "重複次數", + "setFileKdfParamsMem": "內存占用(KB)", + "setFileKdfParamsPar": "並行計算", + "setFileKeyChangeForce": "在幾多日後要求更改密鑰檔", + "setFileUseKeyFile": "使用密鑰檔", + "setFileUseGenKeyFile": "使用生成的密鑰檔", + "setFileUseOldKeyFile": "使用舊的密鑰檔", + "setFileGenKeyFile": "生成新的密鑰檔", + "setFileDontUseKeyFile": "不要使用密鑰檔", + "setFileEmptyPass": "空的密碼", + "setFileEmptyPassBody": "儲存密碼庫卻不使用密碼,等於完全不加保護。確定真的要這樣做?", + "setFileSaveError": "儲存錯誤", + "setFileSaveErrorBody": "儲存至檔案時發生錯誤", + "setFileAlreadyExists": "檔案已存在", + "setFileAlreadyExistsBody": "檔案 {} 已存在。要複寫檔案嗎?", + "setFileUnsaved": "有變更未儲存", + "setFileUnsavedBody": "這個檔案裏有未儲存的變更", + "setFileCloseNoSave": "放棄變更並關閉", + "setFileDontClose": "不要關閉", + "setFileFormatVersion": "檔案格式", + "setFileExportRaw": "匯出密碼", + "setFileExportRawBody": "匯出的檔案將包含沒有加密的所有密碼,確定要繼續嗎?", + "setFileDeviceIntro": "來自 {} 的一次性密碼將會在此程式中顯示。", + "setFileDeviceSettings": "設定", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "不使用 YubiKey", + "setFileRefreshYubiKeyList": "重新整理列表", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "使用 YubiKey 作為主密鑰的一部分很危險,要是有東西出錯了,你可能會無法存取你的密碼。在改變此設定前,你是否已備份檔案?", + "setFileYubiKeyErrorEmptyMac": "看起來有個 YubiKey 已插入,但不可使用。安全起見,您必須額外允許 KeeWeb 監控輸入,才能存取 YubiKey。", + "setShTitle": "快捷鍵", + "setShShowAll": "顯示所有項目", + "setShColors": "顯示有顏色的項目", + "setShTrash": "前往回收桶", + "setShFind": "搜尋,或直接開始打字", + "setShClearSearch": "清除搜尋", + "setShCopyPass": "複製密碼或選取的欄目", + "setShCopyUser": "複製用戶名", + "setShCopyUrl": "複製網址", + "setShAutoType": "自動輸入選取的紀錄", + "setShPrev": "上一個項目", + "setShNext": "下一個項目", + "setShCreateEntry": "新增紀錄", + "setShOpen": "開啟/新增", + "setShSave": "儲存全部檔案", + "setShGen": "生成密碼", + "setShSet": "程式設定", + "setShCopyPassGlobal": "複製密碼", + "setShCopyOtp": "複製 OTP", + "setShAutoTypeGlobal": "自動輸入", + "setShCopyPassOnly": "複製密碼", + "setShRestoreApp": "開啟{}", + "setShGlobal": "這些系統級別快捷鍵可作用在當KeeWeb程式於背景中執行時。你可點擊他們去設定自己想要的快捷鍵組合。", + "setShLock": "鎖定密碼庫", + "setShEdit": "按下一新的按鍵組合來設成快捷鍵", + "setPlInstallTitle": "安裝新擴充套件", + "setPlInstallDesc": "KeeWeb 擴充套件為 KeeWeb 新增功能,主題和語言包。擴充套件與 KeeWeb 有同等存取權,它們可以讀取和管理你所有密碼。千萬不要安裝你不信任的套件。", + "setPlInstallLabel": "擴充套件 URL", + "setPlInstallBtn": "安裝", + "setPlInstallBtnProgress": "安裝中", + "setPlUninstallBtn": "移除", + "setPlDisableBtn": "停用", + "setPlEnableBtn": "啟用", + "setPlUpdateBtn": "更新", + "setPlLocaleBtn": "轉用此語言", + "setPlThemeBtn": "轉用此主題", + "setPlJs": "程式碼", + "setPlCss": "主題樣式", + "setPlLoc": "語言", + "setPlCreatedBy": "創作者為 {}", + "setPlLoadTime": "需時 {} 載入", + "setPlLastUpdate": "上次檢查更新", + "setPlLoadError": "擴充套件載入錯誤", + "setPlGalleryLoading": "擴充套件載入中,請稍候", + "setPlGalleryLoadError": "擴充套件載入錯誤", + "setPlInstallUrlTitle": "從 URL 新增擴充套件", + "setPlInstallUrlDesc": "如果插件不在插件集之中,你可以手動輸入 URL 安裝", + "setPlOfficial": "官方 KeeWeb 擴充套件", + "setPlSearch": "搜尋擴充套件", + "setPlDevelop": "想開發自己的擴充套件?", + "setPlDevelopStart": "由此開始", + "setPlTranslate": "或者你可以{}", + "setPlTranslateLink": "翻譯本程式到你的語言", + "setPlAutoUpdate": "自動更新", + "setPlLoadGallery": "載入擴充套件庫", + "setBrowserTitle": "瀏覽器", + "setBrowserIntroDesktop": "KeeWeb 可以利用自動輸入的方式輸入密碼,不過安裝瀏覽器擴充套件可能用起來更方便。KeeWeb 支援兩類瀏覽器套件:", + "setBrowserIntroKeeWebConnect": "KeeWeb 官方套件,專為 KeeWeb 打造,不過也許不含某些另一個套件的好用功能。", + "setBrowserIntroKeePassXcBrowser": "KeePassXC 的套件,風行已久且穩定,不過並非為 KeeWeb 打造、可能多少有相容問題。", + "setBrowserIntroWeb": "安裝我們的瀏覽器套件,以便自此瀏覽器裡的 KeeWeb 分頁取用密碼、自動填入網站的登入欄位。點擊下載套件:", + "setBrowserNotEnabled": "尚未啟用瀏覽器整合功能,套件將無法連結 KeeWeb。點擊核取方塊來啟用整合功能:", + "setBrowserEnablePerBrowser": "點擊下列核取方塊,啟用瀏覽器整合功能:", + "setBrowserFocusIfLocked": "若瀏覽器套件嘗試連接時尚未開啟檔案,則打開 KeeWeb", + "setBrowserFocusIfEmpty": "若無法從該 URL 找到相應資料,則開啟選擇畫面", + "setBrowserOtherBrowsers": "其他瀏覽器", + "setBrowserExtensionNotSupported": "未支援", + "setBrowserExtensionHelp": "如何安裝?", + "setBrowserExtensionInstall": "安裝套件", + "setBrowserExtensionKPXCWarnHeader": "{}將停止運作", + "setBrowserExtensionKPXCWarnBody1": "很抱歉,您無法將一個套件同時連結多個 Apps。若您選擇連結 KeeWeb,將斷開與其他 App 間的連結,也就是說 {} 相關整合將失效。即使未來您取消此核取方塊,也無法自動重新連回 {}。若要恢復設定,請前往 {} 的相關頁面修改瀏覽器整合設定。", + "setBrowserExtensionKPXCWarnBody2": "要將此套件連接 KeeWeb?", + "setBrowserSessions": "當前連線", + "setBrowserSessionsEmpty": "未連線", + "setBrowserSessionsIntro": "目前連結到 KeeWeb 的套件如下", + "setBrowserSessionsActiveTooltip": "啟用中連線", + "setBrowserSessionsActiveText": "此連線目前啟用中,可以根據下列權限取用 KeeWeb 資料:", + "setBrowserSessionsInactiveTooltip": "停用的連線", + "setBrowserSessionsInactiveText": "此連線目前已停用。該套件確實連結到 KeeWeb,不過未曾嘗試取用資料。一旦該套件嘗試取用資料,您將可選擇想分享的內容。", + "setBrowserSessionsDeniedTooltip": "拒絕存取", + "setBrowserSessionsDeniedText": "此連線目前已停用。該套件確實連結到 KeeWeb,但您已拒絕其存取資料。", + "setBrowserSessionsConnectedDate": "已連線", + "setBrowserSessionsTerminate": "結束此工作階段", + "setBrowserSessionsAccessToFiles": "允許存取檔案", + "setBrowserSessionsPasswordsRead": "已讀取密碼", + "setBrowserSessionsPasswordsWritten": "已儲存密碼", + "setDevicesTitle": "裝置", + "setDevicesEnableUsb": "啟用與 USB 裝置的互動", + "setDevicesYubiKeyIntro": "在使用 YubiKey 前,推薦先閱讀{}。", + "setDevicesYubiKeyIntroLink": "此文件", + "setDevicesYubiKeyToolsDesc": "您必須先安裝一個叫做{}的工具,才能在此模式中使用 YubiKey。", + "setDevicesYubiKeyToolsDescLink": "點擊這裡", + "setDevicesYubiKeyToolsStatusChecking": "正在檢查是否已安裝{}", + "setDevicesYubiKeyToolsStatusOk": "已安裝{}", + "setDevicesYubiKeyToolsStatusError": "未安裝{}或無法運作", + "setDevicesYubiKeyOtpTitle": "一次性密碼", + "setDevicesYubiKeyOtpDesc": "YubiKey 能夠被用來產生許多不同服務的一次性密碼。", + "setDevicesYubiKeyOtpShowIcon": "在開始畫面中顯示圖示", + "setDevicesYubiKeyOtpAutoOpen": "當有開啟的檔案時,自動載入一次性密碼", + "setDevicesYubiKeyOtpMatchEntries": "顯示與紀錄相符的一次性密碼", + "setAboutTitle": "關於", + "setAboutBuilt": "本程式使用了這些厲害的工具建設", + "setAboutLic": "授權", + "setAboutLicComment": "除另有標註之外,本程式及其組件均以 MIT license 授權。", + "setAboutFirst": "這是個開放原始碼的程式,創造者為 {}", + "setAboutSecond": "並基於 {} 授權。", + "setAboutSource": "原始碼和程式問題發佈在 {} 。", + "setHelpFormat": "檔案格式", + "setHelpFormatBody": "本程式移植自 {} ,並使用 Web 技術搭建。它可以存取 KeePass 密碼庫格式 (.kdbx)。你可以在 KeePass 或本程式創立這種檔案 (密碼庫)。此檔案格式 100% 相容兩個程式,也能在任一個程式正常存取。", + "setHelpProblems": "需要幫助?", + "setHelpProblems1": "如果有什麼差錯,請 {}", + "setHelpProblems2": "或者 {}", + "setHelpOpenIssue": "在 GitHub 新增程式問題", + "setHelpContactLink": "直接聯絡程式開發員", + "setHelpAppInfo": "程式資料", + "setHelpOtherPlatforms": "其他平台", + "setHelpDesktopApps": "桌面版程式", + "setHelpWebApp": "網頁版程式", + "setHelpUpdates": "最新消息", + "setHelpTwitter": "程式的 Twitter", + "dropboxSetupDesc": "在自建程式使用 Dropbox 需要額外設定。請自行建立 Dropbox 應用程式,再於下方填寫程式密鑰。", + "dropboxAppKey": "Dropbox 程式密鑰", + "dropboxAppKeyDesc": "從你的 Dropbox 程式(開發人員設定)複製密鑰", + "dropboxFolder": "程式資料夾", + "dropboxFolderDesc": "如果你的程式連著整個 Dropbox (而非特定的程式資料夾),在此設定含有 .kdbx 檔案的資料夾。", + "dropboxFolderSettingsDesc": "選擇會儲存檔案的 Dropbox 資料夾 (預設為根目錄)", + "dropboxFolderPlaceholder": "預設資料夾", + "dropboxLink": "連接程式到", + "dropboxLinkApp": "程式資料夾 (Apps/KeeWeb)", + "dropboxLinkFull": "整個 Dropbox 或任何資料夾", + "dropboxLinkCustom": "自己的 Dropbox App", + "webdavSaveMethod": "儲存方法", + "webdavSaveMove": "上傳臨時檔案,再移動", + "webdavSavePut": "用 PUT 複寫原有 .kdbx 檔案", + "launcherSave": "儲存密碼庫", + "launcherFileFilter": "KeePass 檔案", + "authPopupRequired": "彈窗被阻擋", + "authPopupRequiredBody": "請容許本程式在你的瀏覽器彈出視窗", + "exportFileInfo": "檔案資訊", + "exportHtmlName": "名稱", + "exportHtmlDate": "輸出日期", + "exportGenerator": "軟體", + "importCsvTitle": "從CSV匯入", + "importCsvRun": "匯入", + "importIgnoreField": "忽略", + "importTo": "紀錄將被匯入到", + "importNewFile": "新檔案名稱", + "extensionConnectFiles": "在此工作階段中,允許下列存取:", + "extensionConnectAskGetMultiple": "當有多個符合", + "extensionConnectAskGetAlways": "總是", + "extensionConnectAskSave": "在儲存新密碼到 KeeWeb 之前先詢問:", + "extensionConnectAskSaveAlways": "總是", + "extensionConnectAskSaveAuto": "當無法自動儲存時", + "extensionNewGroupHeader": "新群組", + "extensionNewGroupBody": "{} 正在嘗試建立新群組,允許這行為?", + "extensionNewGroupPath": "群組路徑", + "extensionNewGroupFile": "此群組將會在此處建立:", + "extensionSaveEntryHeader": "儲存密碼", + "extensionSaveEntryBody": "{} 正嘗試儲存密碼,允許這行為?", + "extensionSaveEntryNewGroup": "新群組", + "selectEntryHeader": "選擇紀錄", + "selectEntryEnterHint": "使用被選中的紀錄", + "selectEntryTypingHint": "開始打字以進行篩選", + "selectEntryContains": "包含文字", + "selectEntrySubdomains": "子網域", + "selectEntryFieldHeader": "選擇欄位", + "selectEntryFieldTouch": "按下您的裝置上的按鈕,以產生一個一次性密碼。" +} \ No newline at end of file diff --git a/plugin.json b/plugin.json new file mode 100644 index 0000000..83f2324 --- /dev/null +++ b/plugin.json @@ -0,0 +1,37 @@ +{ + "name": "keepass", + "author": "Zuoqiu Yingyi", + "url": "https://github.com/Zuoqiu-Yingyi/siyuan-plugin-keepass", + "version": "0.2.1", + "minAppVersion": "2.10.3", + "backends": [ + "all" + ], + "frontends": [ + "all" + ], + "displayName": { + "default": "KeePass Password Manager", + "zh_CN": "KeePass 密码管理器", + "zh_CHT": "KeePass 密碼管理器" + }, + "description": { + "default": "A password manager based on KeeWeb, compatibling with KeePass 3.x and 4.x databases *.kdbx", + "zh_CN": "基于 KeeWeb 的密码管理器,兼容 KeePass 3.x 与 4.x 数据库 *.kdbx", + "zh_CHT": "基於 KeeWeb 的密碼管理器,兼容 KeePass 3.x 與 4.x 數據庫 *.kdbx" + }, + "readme": { + "default": "README.md", + "zh_CN": "README_zh_CN.md", + "zh_CHT": "README_zh_CN.md" + }, + "funding": { + "openCollective": "", + "patreon": "", + "github": "", + "custom": [ + "https://afdian.net/a/zuoqiu", + "https://ko-fi.com/zuoqiu" + ] + } +} diff --git a/preview.png b/preview.png new file mode 100644 index 0000000..463facc Binary files /dev/null and b/preview.png differ