diff --git a/.agents/skills/logseq-i18n/SKILL.md b/.agents/skills/logseq-i18n/SKILL.md new file mode 100644 index 0000000000..a0c3fff2b8 --- /dev/null +++ b/.agents/skills/logseq-i18n/SKILL.md @@ -0,0 +1,167 @@ +--- +name: logseq-i18n +description: "Logseq i18n workflow for adding, renaming, reviewing, or editing translation keys and user-facing strings. Use when: writing UI code with hardcoded text, adding new user-facing strings, editing translation dict files, reviewing i18n compliance, working with notification/show!, adding translatable UI attributes, or any task involving src/resources/dicts/. Also use when the user mentions i18n, translation, localization, or hardcoded strings." +--- + +# Logseq i18n Skill + +## When This Skill Applies + +- Adding or editing user-facing strings in shipped UI +- Replacing hardcoded UI text with translations +- Adding, renaming, deduplicating, or removing keys in `src/resources/dicts/` +- Reviewing code for i18n compliance +- Editing `notification/show!` calls or translatable UI attributes +- Updating i18n tooling, docs, or lint configuration + +## Read These First + +1. `docs/i18n-key-naming.md` for key ownership, reuse, and naming +2. `.i18n-lint.toml` for lint scope, covered helpers/attributes, exclusions, + and allowlists +3. `src/main/frontend/context/i18n.cljs` for the translation helper APIs + +Use `docs/contributing-to-translations.md` only when the task is specifically +about locale contribution workflow. + +## Scope Rules + +- `.i18n-lint.toml` is the source of truth for which files and APIs are checked + for hardcoded UI text. +- Inside that scope, all shipped user-facing UI text must be internationalized. +- Console output does not need i18n. Keep out-of-scope developer-only `(Dev)` + labels inline in code/config, not in translation dictionaries. +- If you introduce a new UI helper, alert API, translatable attribute, UI + namespace, or shipped surface, update `.i18n-lint.toml` so lint coverage + stays accurate. + +## Use These Helpers + +All translation helpers live in `frontend.context.i18n`. + +| Helper | Use for | +|---|---| +| `t` | Standard translation with preferred locale | +| `tt` | Try multiple keys and return the first existing translation | +| `t-en` | Force English text when UI output also needs English console/debug output | +| `interpolate-rich-text` / `interpolate-rich-text-node` | Replace placeholders with rich-text or hiccup fragments | +| `interpolate-sentence` | Keep a full sentence in one key while inserting placeholders and inline links | +| `replace-newlines-with-br` | Render translated newline characters as `[:br]` nodes | +| `locale-join-rich-text` / `locale-join-rich-text-node` | Join rich fragments with locale-aware separators | +| `locale-format-number` / `locale-format-date` / `locale-format-time` | Locale-aware formatting for dynamic values before translation | + +Do not introduce parallel i18n helpers elsewhere unless the change also updates +the shared i18n API deliberately. + +## Core Rules + +### Rule 1: No hardcoded shipped UI text + +If the text is user-facing and in `.i18n-lint.toml` scope, hardcoded literals in +buttons, labels, placeholders, tooltips, dialogs, notifications, empty states, +and similar UI are a bug. + +### Rule 2: Reuse keys by meaning, not by English text + +Search `src/resources/dicts/en.edn` first. Reuse a key only when both match: + +- semantic owner +- textual role + +If the English text matches but the meaning differs, create a new key and follow +`docs/i18n-key-naming.md`. + +### Rule 3: English source lives in `en.edn` + +- Add new English source text to `src/resources/dicts/en.edn`. +- Add non-English entries only when you are also providing actual translations. +- When renaming or removing keys, update affected locale files so stale keys do + not remain behind. +- Do not copy English into non-English locale files just to fill gaps. Tongue + falls back to `:en`. + +### Rule 4: Keep complete sentences together + +- Prefer one translation entry per complete sentence or message. +- Do not split rich text or linked text across multiple keys. +- Use `interpolate-sentence` or `interpolate-rich-text*` when markup and word + order must stay together. + +### Rule 5: Prefer placeholders for plain dynamic text + +Use placeholder strings like `{1}` and `{2}` for plain dynamic text. Format +arguments in the caller before passing them to `t`. + +### Rule 6: Function-valued translations are restricted + +Use function values only when: + +- the locale needs real logic such as conditional/plural behavior, or +- the translation must return hiccup rich text + +When function values are necessary, only these are allowed inside the function +body: + +- `str` +- `when` +- `if` +- `=` + +### Rule 7: Locale details matter + +- Preserve emoji and icon glyphs from `en.edn` exactly. +- Use punctuation natural to the locale. +- Pluralization is locale-specific. Do not force English singular/plural logic + onto every language. + +## Workflow + +When adding or changing user-facing text: + +1. Use `.i18n-lint.toml` to confirm the text is in i18n scope. +2. Search `src/resources/dicts/en.edn` for an exact semantic match. +3. If no exact match exists, name the key with `docs/i18n-key-naming.md`. +4. If the naming guide still does not yield one clear key, stop and ask for + human guidance instead of guessing. +5. Add or update the English source text in `en.edn`. +6. Replace the literal with the appropriate helper from + `frontend.context.i18n`. +7. Add/update locale translations only where actual translations are being + supplied. +8. If you introduced a new linted helper/attribute/surface, update + `.i18n-lint.toml`. + +## Validation + +After changing keys: + +```bash +bb lang:validate-translations +``` + +After changing shipped UI text: + +```bash +bb lang:lint-hardcoded --git-changed +``` + +After editing dictionary files: + +```bash +bb lang:format-dicts +``` + +`bb lang:format-dicts` is the canonical repo formatter for dictionary key +ordering and namespace spacing. + +## Common Mistakes + +| Mistake | Fix | +|---|---| +| Hardcoded UI string in a linted UI surface | Move it into `en.edn` and use a helper from `frontend.context.i18n` | +| Reusing a key only because the English text matches | Reuse only on exact semantic owner + role match | +| Copying English into non-English locale files | Leave the key missing unless you are adding a real translation | +| Using `(fn ...)` for plain placeholder text | Use `"..."` with `{1}`, `{2}`, ... | +| Splitting one sentence across multiple keys | Keep a single translation entry and interpolate into it | +| Adding a new linted helper but not updating `.i18n-lint.toml` | Extend the TOML config in the same change | +| Editing dict files without running `bb lang:format-dicts` | Run the formatter before finishing | diff --git a/.github/workflows/build-desktop-release.yml b/.github/workflows/build-desktop-release.yml index 2cb1331029..34dd47dcbb 100644 --- a/.github/workflows/build-desktop-release.yml +++ b/.github/workflows/build-desktop-release.yml @@ -666,7 +666,7 @@ jobs: ./*.apk release: - # NOTE: For now, we only have beta channel to be released on Github + # NOTE: For now, we only have beta channel to be released on GitHub if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.build-target == 'beta' }} needs: [ build-macos-x64, build-macos-arm64, build-linux-x64, build-linux-arm64, build-windows-x64, build-windows-arm64 ] runs-on: ubuntu-22.04 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 021934e4b8..be4c02100f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -118,6 +118,9 @@ jobs: - name: Lint invalid translation entries run: bb lang:validate-translations + - name: Lint hardcoded user-facing strings + run: bb lang:lint-hardcoded + - name: Lint to keep worker independent of frontend run: bb lint:worker-and-frontend-separate @@ -171,4 +174,4 @@ jobs: run: cd deps/db && yarn nbb-logseq -cp src:../cli/src -m logseq.cli validate -g ../../scripts/properties-graph ../../scripts/schema-graph - name: Export a created DB graph and confirm the export is idempotent - run: cd deps/db && yarn nbb-logseq -cp src:../cli/src -m logseq.cli export-edn -g ../../scripts/properties-graph -f properties.edn --roundtrip \ No newline at end of file + run: cd deps/db && yarn nbb-logseq -cp src:../cli/src -m logseq.cli export-edn -g ../../scripts/properties-graph -f properties.edn --roundtrip diff --git a/.github/workflows/update-i18n-lint.yml b/.github/workflows/update-i18n-lint.yml new file mode 100644 index 0000000000..ed0490d9a4 --- /dev/null +++ b/.github/workflows/update-i18n-lint.yml @@ -0,0 +1,231 @@ +name: Update logseq-i18n-lint binaries + +on: + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +env: + CARGO_TERM_COLOR: always + LINT_REPO: ${{ github.repository_owner }}/logseq-i18n-lint + LINT_REF: master + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Checkout logseq-i18n-lint source + uses: actions/checkout@v4 + with: + repository: ${{ env.LINT_REPO }} + ref: ${{ env.LINT_REF }} + path: lint-src + + - name: Install Rust stable + uses: dtolnay/rust-toolchain@stable + + - name: Cache cargo registry and build artifacts + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + lint-src/target/ + key: test-cargo-${{ hashFiles('lint-src/Cargo.lock') }} + restore-keys: | + test-cargo- + + - name: Run tests + working-directory: lint-src + run: cargo test --locked + + build: + needs: test + strategy: + fail-fast: false + matrix: + include: + - target: x86_64-pc-windows-msvc + os: windows-latest + artifact: logseq-i18n-lint-x86_64-windows.exe + - target: aarch64-pc-windows-msvc + os: windows-latest + artifact: logseq-i18n-lint-aarch64-windows.exe + - target: x86_64-apple-darwin + os: macos-latest + artifact: logseq-i18n-lint-x86_64-macos + - target: aarch64-apple-darwin + os: macos-latest + artifact: logseq-i18n-lint-aarch64-macos + - target: x86_64-unknown-linux-musl + os: ubuntu-latest + artifact: logseq-i18n-lint-x86_64-linux + - target: aarch64-unknown-linux-musl + os: ubuntu-latest + artifact: logseq-i18n-lint-aarch64-linux + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout logseq-i18n-lint source + uses: actions/checkout@v4 + with: + repository: ${{ env.LINT_REPO }} + ref: ${{ env.LINT_REF }} + path: lint-src + + - name: Install Rust stable + uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - name: Cache cargo registry and build artifacts + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + lint-src/target/ + key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('lint-src/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.target }}-cargo- + ${{ runner.os }}-cargo- + + - name: Install cross (Linux ARM64) + if: matrix.target == 'aarch64-unknown-linux-musl' + run: cargo install cross --git https://github.com/cross-rs/cross + + - name: Install musl tools (Linux x64) + if: matrix.target == 'x86_64-unknown-linux-musl' + run: sudo apt-get update && sudo apt-get install -y musl-tools + + - name: Build with cross + if: matrix.target == 'aarch64-unknown-linux-musl' + working-directory: lint-src + run: cross build --release --target ${{ matrix.target }} + + - name: Build with cargo + if: matrix.target != 'aarch64-unknown-linux-musl' + working-directory: lint-src + run: cargo build --release --target ${{ matrix.target }} + + - name: Stage artifact (Unix) + if: runner.os != 'Windows' + run: cp lint-src/target/${{ matrix.target }}/release/logseq-i18n-lint ${{ matrix.artifact }} + + - name: Stage artifact (Windows) + if: runner.os == 'Windows' + shell: bash + run: cp lint-src/target/${{ matrix.target }}/release/logseq-i18n-lint.exe ${{ matrix.artifact }} + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.artifact }} + path: ${{ matrix.artifact }} + + open-pr: + needs: build + runs-on: ubuntu-latest + + steps: + - name: Checkout this repository + uses: actions/checkout@v4 + + - name: Checkout logseq-i18n-lint source + uses: actions/checkout@v4 + with: + repository: ${{ env.LINT_REPO }} + ref: ${{ env.LINT_REF }} + fetch-depth: 0 + path: lint-src + + - name: Download built artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + merge-multiple: true + + - name: Resolve source commit and stage launcher + id: source + run: | + cd lint-src + COMMIT_SHA="$(git rev-parse HEAD)" + SHORT_SHA="$(git rev-parse --short=12 HEAD)" + echo "commit_sha=${COMMIT_SHA}" >> "$GITHUB_OUTPUT" + echo "short_sha=${SHORT_SHA}" >> "$GITHUB_OUTPUT" + cd .. + cp lint-src/scripts/logseq-i18n-lint artifacts/logseq-i18n-lint + + - name: Replace bin artifacts + run: | + cp artifacts/logseq-i18n-lint bin/logseq-i18n-lint + cp artifacts/logseq-i18n-lint-aarch64-linux bin/logseq-i18n-lint-aarch64-linux + cp artifacts/logseq-i18n-lint-aarch64-macos bin/logseq-i18n-lint-aarch64-macos + cp artifacts/logseq-i18n-lint-aarch64-windows.exe bin/logseq-i18n-lint-aarch64-windows.exe + cp artifacts/logseq-i18n-lint-x86_64-linux bin/logseq-i18n-lint-x86_64-linux + cp artifacts/logseq-i18n-lint-x86_64-macos bin/logseq-i18n-lint-x86_64-macos + cp artifacts/logseq-i18n-lint-x86_64-windows.exe bin/logseq-i18n-lint-x86_64-windows.exe + chmod +x bin/logseq-i18n-lint bin/logseq-i18n-lint-*-linux bin/logseq-i18n-lint-*-macos 2>/dev/null || true + + - name: Commit updated binaries + id: commit + env: + SHORT_SHA: ${{ steps.source.outputs.short_sha }} + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + BRANCH="chore/update-i18n-lint-${SHORT_SHA}" + git switch -C "${BRANCH}" + git add -A -- \ + bin/logseq-i18n-lint \ + bin/logseq-i18n-lint-aarch64-linux \ + bin/logseq-i18n-lint-aarch64-macos \ + bin/logseq-i18n-lint-aarch64-windows.exe \ + bin/logseq-i18n-lint-x86_64-linux \ + bin/logseq-i18n-lint-x86_64-macos \ + bin/logseq-i18n-lint-x86_64-windows.exe + + if git diff --cached --quiet; then + echo "No changes to commit" + exit 0 + fi + + git commit -m "chore: update logseq-i18n-lint binaries to ${SHORT_SHA}" + git push origin "${BRANCH}" + echo "branch=${BRANCH}" >> "$GITHUB_OUTPUT" + + - name: Open pull request + if: steps.commit.outputs.branch != '' + env: + GH_TOKEN: ${{ github.token }} + COMMIT_SHA: ${{ steps.source.outputs.commit_sha }} + SHORT_SHA: ${{ steps.source.outputs.short_sha }} + BRANCH: ${{ steps.commit.outputs.branch }} + run: | + gh pr create \ + --base develop \ + --head "${BRANCH}" \ + --title "chore: update logseq-i18n-lint binaries to ${SHORT_SHA}" \ + --body "$(cat <text", +] + +# Format/printf functions — ONLY the FIRST argument (the template string) is flagged, +# and ONLY when the call site is inside a UI context (hiccup or UI function call). +format_functions = [ + "format", + "goog.string/format", + "gstring/format", + "util/format", +] + +# Strings to allow (exact match — also matches after trimming whitespace). +# Keep this list SHORT. Add only strings that: +# 1. Are NOT covered by any allow_pattern +# 2. Have a clear, Logseq-specific reason for appearing in ui context +# 3. Are truly non-translatable (brand names, internal IDs, technical constants) +allow_strings = [ + # Brand name — displayed literally in UI, intentionally not translated. + "Logseq", + "Logseq Sync", + "GitHub", + # Typography test string — rendered as a glyph sample, not translatable. + "Ag", + # Column header abbreviation for row index — shown as-is in table view. + "ID:", + # org-mode structural keywords — shown literally in drawer/block syntax. + ":END:", + # Common non-translatable UI labels. + "URL", + "OPML", + "EDN", + "HTML", + "PNG", + "SQLite", + "HTTP", + "SOCKS5", + # Config directory path shown literally. + "~/.logseq", +] + +# Regex patterns to allow. +allow_patterns = [ + # Developer-only English labels intentionally outside i18n scope. + # e.g., "(Dev) RTC", "(Dev) Profiler" + "^\\(Dev\\)\\s", + + # Logseq macro syntax. + # e.g., {{query ...}}, {{video ...}} + "^\\{\\{", + + # Email addresses. + # e.g., user@example.com, tech.support@domain.org + "^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$", + + # URLs and URI schemes. + # e.g., https://google.com, sfsymbols://icon, file:///path/to/res + "^[a-z]+://[^\\s]*$", + + # Git commands. + # e.g., git commit -m "feat", git push origin main + "^git\\s+[a-z]+(\\s+.*)?$", + + # Tailwind CSS color / shade utility classes. + # e.g., bg-red-500, text-gray-300, border-blue-100 + "^(bg|text|border|ring|shadow|fill|from|via|to|outline|divide|accent|caret|decoration)-[a-z]+-[0-9]+(/[0-9]+)?$", + + # CSS color functions. + # e.g., rgb(255, 255, 255), rgba(0, 0, 0, 0.5) + "^rgba?\\(", + + # CSS custom property access. + # e.g., var(--primary-color), var(--spacing-unit) + "^var\\(--", + + # CSS BEM modifier classes (double-hyphen notation). + # e.g., shortcut-feedback--error, block__title--active + "^[a-z][a-z0-9-]*--[a-z][a-z0-9-]*$", + + # Numeric base prefixes. + # e.g., 0b (binary), 0o (octal), 0x (hex) + "^0[box]$", + + # Regex anchor notation. + # e.g., ^starting-with + "^\\^", + + # Web resource references with specific extensions. + # e.g., script.js, styles.css, module.mjs + "^[a-z][a-z0-9/._-]+\\.(mjs|js|css|wasm)$", + + # MIME types. + # e.g., image/png, application/json, text/html + "^[a-z][a-z0-9+.-]+/[a-z0-9.+*-]+$", + + # Hex colors (3, 4, 6, or 8 digits). + # e.g., #fff, #1a2b3c, #ff00ffaa + "^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$", + + # DOM element IDs. + # e.g., #main-container, #submit-btn + "^#[a-z][a-z0-9-]+$", + + # Dot-notation identifiers (icon library names, SF Symbols, CSS dot-joined classes). + # e.g., person.fill, cloud.sun.rain.fill, bg-red-600.top-1.absolute + "^[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)*$", + + # CSS unit values (supports decimals). + # e.g., 10px, 1.5rem, 100%, 500ms + "^[0-9]+(\\.[0-9]+)?(px|em|rem|vh|vw|%|pt|s|ms)$", + + # DOM element ID / React key fragments (start or end with hyphen). + # e.g., tag-, -refs, sidebar-block-, -custom-query-, -add-property + "^-[a-z0-9]+(-[a-z0-9]+)*$", + "^[a-z0-9]+(-[a-z0-9]+)*-$", + + # Strings starting with a dot (file fragments or class selectors). + # e.g., .hidden, .tmp-file + "^\\.", + + # printf-style format templates. + # e.g., %s, [%d%%], #%x + "^[^A-Za-z ]*%", +] + +# Exception/error constructor functions — arguments are developer-facing, not UI text. +exception_functions = [ + "ex-info", + "throw", +] + +# Functions whose arguments are NOT checked. +ignore_context_functions = [ + "js/console.log", + "js/console.error", + "js/console.warn", + "prn", + "println", + "log/debug", + "log/info", + "log/warn", + "log/error", + "re-pattern", + "re-find", + "re-matches", + "require", + "ns", + # shui utilities that take CSS IDs / class utility strings, not user-visible text. + "shui/cn", + "shui/popup-show", + "shui/popup-show!", + "shui/popup-hide", + "shui/popup-hide!", + "shui/popup-hide-all", + "shui/dialog-open", + "shui/dialog-close", + "shui/dialog-close-all", + "shui/dialog-confirm", + "shui/table-get-selection-rows", + "shui/trigger-as", + # CSS class-joining utilities — string arguments are class names, not UI text. + "util/classnames", + "classnames", + # Icon functions — arguments are icon library identifiers (e.g. "trash", + # "arrow-right"), never user-visible text that needs translation. + "ui/icon", + "shui/tabler-icon", + "icon-v2/root", + # Ghost-icon button — the only positional argument is an icon name. + "button-ghost-icon", + # Shortcut display/trigger functions — arguments are key identifiers + # (e.g. "mod+enter", "backspace"), not translatable text. + "shui/shortcut", + "shui/shortcut-press!", +] + +# ── [check-keys] settings ────────────────────────────────────────────────────── + +[check-keys] + +# Glob patterns for files to skip during check-keys. +# NOTE: **/profiler.cljs is intentionally NOT excluded here so that translation +# key references inside profiler.cljs are detected and not reported as unused. +exclude_patterns = [ + "**/test/**", + "**/tests/**", + "**/dev/**", + "**/node_modules/**", + "**/target/**", + "**/static/**", + "**/cljs-test-runner-out/**", + "**/.nbb/**", + "deps/cli/**", + "deps/publish/**", + "deps/publishing/**", +] + +# Directory containing dictionary EDN files (relative to project_root). +dicts_dir = "src/resources/dicts" + +# Primary dictionary file (relative to project_root). +primary_dict = "src/resources/dicts/en.edn" + +# Key patterns always considered "used" — for dynamically generated keys +# that cannot be detected via static analysis. +always_used_key_patterns = [ + # Table view keys used dynamically via (for [[option-key _] options] (t option-key)). + "^:view\\.table/group-journal-date", + "^:view\\.table/group-page", +] + +# Key namespace prefixes excluded from unused-key checking. +ignore_key_namespaces = [ + # Shortcut keys are dynamically assembled via (keyword "command.ns" name). + "command", + # Shortcut category labels. + "shortcut.category", + # Shortcut handler group keys. + "shortcut.handler", + # Color theme keys derived from built-in-colors vector. + "color", + # Date NLP labels derived from nlp-pages vector. + "date.nlp", + # Flashcard FSRS rating keys derived via (keyword "flashcard.rating" ...). + "flashcard.rating", + # Graph validation keys derived from deprecated config keys. + "graph.validation", + # Left sidebar nav keys derived from tag nav entries. + "nav", +] + +# Map attribute keys whose keyword values are translation key references. +# Combined with ui_attributes during check-keys analysis. +translation_key_attributes = ["i18n-key", "prompt-key", "title-key"] + +# Built-in db-ident definition sources. +# Each entry scopes keyword extraction to a specific named def/defonce form, +# preventing false positives from other keyword literals in the same file. +[[check-keys.db_ident_defs]] +file = "deps/db/src/logseq/db/frontend/property.cljs" +def = "built-in-properties" + +[[check-keys.db_ident_defs]] +file = "deps/db/src/logseq/db/frontend/class.cljs" +def = "built-in-classes" diff --git a/AGENTS.md b/AGENTS.md index 3150b4caa9..94ee64e1f0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,6 +21,8 @@ - Follow existing namespace and file layout; keep related workers and RTC code in their dedicated directories. - Prefer concise, imperative commit subjects aligned with existing history (examples: `fix: download`, `enhance(rtc): ...`). - Clojure map keyword name should prefer `-` instead of `_`, e.g. `:user-id` instead of `:user_id`. +- For i18n work, use `.i18n-lint.toml` as the source of truth for lint scope and exceptions. Inside that scope, shipped UI text must use helpers from `frontend.context.i18n`; console text is exempt. Keep out-of-scope developer-only `(Dev)` labels inline in code/config, not in translation dictionaries. +- Reuse `src/resources/dicts/en.edn` keys only on exact semantic owner + textual role match. Follow `docs/i18n-key-naming.md` for new or renamed keys. Add English source text in `en.edn`; add non-English entries only when providing real translations; keep complete sentences whole; use placeholders for plain dynamic text; run `bb lang:validate-translations`, `bb lang:lint-hardcoded`, and `bb lang:format-dicts` as needed. ## Testing Guidelines - Unit tests live in `src/test/` and should be runnable via `bb dev:lint-and-test`. @@ -32,6 +34,7 @@ - PRs should describe the behavior change, link relevant issues, and note any test coverage added or skipped. ## Agent-Specific Notes +- Project-specific skills live under `.agents/skills/`; load `.agents/skills/logseq-i18n/SKILL.md` for i18n/localization/hardcoded UI text tasks. - Review notes live in `prompts/review.md`; check them when preparing changes. - DB-sync feature guide for AI agents: `docs/agent-guide/db-sync/db-sync-guide.md`. - DB-sync protocol reference: `docs/agent-guide/db-sync/protocol.md`. diff --git a/README.md b/README.md index 4f29c2e054..7b27b515c1 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The DB version is in beta status while the new mobile app and RTC is in alpha. T To get started with the DB version: * To try the latest web version, go to https://test.logseq.com/. -* To try the latest desktop version, login to Github and go to https://github.com/logseq/logseq/actions/workflows/build-desktop-release.yml and click on the latest release. Scroll to the bottom and under the `Artifacts` section download the artifact for your operating system. +* To try the latest desktop version, login to GitHub and go to https://github.com/logseq/logseq/actions/workflows/build-desktop-release.yml and click on the latest release. Scroll to the bottom and under the `Artifacts` section download the artifact for your operating system. * To try the latest by building from the source code * Use `test/db` for stable releases. Fewer bugs and slower updates. Update frequency: days or weeks. * Use `master` for the latest updates as they are developed. Expect more bugs and faster changes. Update frequency: hours or days. diff --git a/bb.edn b/bb.edn index 7e9643d71f..14081b249f 100644 --- a/bb.edn +++ b/bb.edn @@ -222,9 +222,18 @@ lang:missing logseq.tasks.lang/list-missing + lang:pseudo + logseq.tasks.lang/list-pseudo + + lang:format-dicts + logseq.tasks.lang/format-dicts + lang:validate-translations logseq.tasks.lang/validate-translations + lang:lint-hardcoded + logseq.tasks.lang/lint-hardcoded + ai:check-common-errors logseq.tasks.common-errors/check-common-errors} diff --git a/bin/logseq-i18n-lint b/bin/logseq-i18n-lint new file mode 100644 index 0000000000..9b29170bce --- /dev/null +++ b/bin/logseq-i18n-lint @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +# logseq-i18n-lint launcher +# Detects the current OS/arch and runs the prebuilt binary in the same directory. +# All arguments are forwarded to the binary. +# +# Supported platforms: +# Linux x86_64 -> logseq-i18n-lint-x86_64-linux +# Linux aarch64 -> logseq-i18n-lint-aarch64-linux +# macOS x86_64 -> logseq-i18n-lint-x86_64-macos +# macOS arm64 -> logseq-i18n-lint-aarch64-macos +# Windows x86_64 -> logseq-i18n-lint-x86_64-windows.exe (via Git Bash / MSYS2) +# Windows aarch64 -> logseq-i18n-lint-aarch64-windows.exe + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# ── Detect OS ──────────────────────────────────────────────────────────────── + +OS="$(uname -s)" +case "${OS}" in + Linux*) platform="linux" ;; + Darwin*) platform="macos" ;; + MINGW*|MSYS*|CYGWIN*|Windows_NT) + platform="windows" ;; + *) + echo "error: unsupported OS: ${OS}" >&2 + exit 1 + ;; +esac + +# ── Detect architecture ─────────────────────────────────────────────────────── + +ARCH="$(uname -m)" +case "${ARCH}" in + x86_64|amd64) arch="x86_64" ;; + aarch64|arm64) arch="aarch64" ;; + *) + echo "error: unsupported architecture: ${ARCH}" >&2 + exit 1 + ;; +esac + +# ── Resolve binary path ──────────────────────────────────────────────────────── + +if [[ "${platform}" == "windows" ]]; then + bin="${SCRIPT_DIR}/logseq-i18n-lint-${arch}-${platform}.exe" +else + bin="${SCRIPT_DIR}/logseq-i18n-lint-${arch}-${platform}" +fi + +if [[ ! -f "${bin}" ]]; then + echo "error: binary not found: ${bin}" >&2 + echo " Download it from: https://github.com/logseq/logseq-i18n-lint/releases/latest" >&2 + exit 1 +fi + +if [[ ! -x "${bin}" ]]; then + chmod +x "${bin}" +fi + +# ── Run ─────────────────────────────────────────────────────────────────────── + +exec "${bin}" "$@" diff --git a/bin/logseq-i18n-lint-aarch64-linux b/bin/logseq-i18n-lint-aarch64-linux new file mode 100644 index 0000000000..7e489a42b4 Binary files /dev/null and b/bin/logseq-i18n-lint-aarch64-linux differ diff --git a/bin/logseq-i18n-lint-aarch64-macos b/bin/logseq-i18n-lint-aarch64-macos new file mode 100644 index 0000000000..5acdaf7b94 Binary files /dev/null and b/bin/logseq-i18n-lint-aarch64-macos differ diff --git a/bin/logseq-i18n-lint-aarch64-windows.exe b/bin/logseq-i18n-lint-aarch64-windows.exe new file mode 100644 index 0000000000..8bd5286c07 Binary files /dev/null and b/bin/logseq-i18n-lint-aarch64-windows.exe differ diff --git a/bin/logseq-i18n-lint-x86_64-linux b/bin/logseq-i18n-lint-x86_64-linux new file mode 100644 index 0000000000..69169b5e89 Binary files /dev/null and b/bin/logseq-i18n-lint-x86_64-linux differ diff --git a/bin/logseq-i18n-lint-x86_64-macos b/bin/logseq-i18n-lint-x86_64-macos new file mode 100644 index 0000000000..21fe5ecffa Binary files /dev/null and b/bin/logseq-i18n-lint-x86_64-macos differ diff --git a/bin/logseq-i18n-lint-x86_64-windows.exe b/bin/logseq-i18n-lint-x86_64-windows.exe new file mode 100644 index 0000000000..6540cfc883 Binary files /dev/null and b/bin/logseq-i18n-lint-x86_64-windows.exe differ diff --git a/clj-e2e/src/logseq/e2e/graph.clj b/clj-e2e/src/logseq/e2e/graph.clj index 15a49f25f9..0a30801370 100644 --- a/clj-e2e/src/logseq/e2e/graph.clj +++ b/clj-e2e/src/logseq/e2e/graph.clj @@ -1,7 +1,5 @@ (ns logseq.e2e.graph - (:require [clojure.edn :as edn] - [clojure.string :as string] - [logseq.e2e.assert :as assert] + (:require [logseq.e2e.assert :as assert] [logseq.e2e.keyboard :as k] [logseq.e2e.locator :as loc] [logseq.e2e.util :as util] @@ -111,7 +109,7 @@ (.first (w/-query (format "div[data-testid='logseq_db_%s'] .graph-action-btn" graph-name)))] (w/click action-btn) (w/click ".delete-local-graph-menu-item") - (w/click "div[role='alertdialog'] button:text('ok')"))) + (w/click "div[role='alertdialog'] button:text('Confirm')"))) (defn remove-remote-graph [graph-name] @@ -120,7 +118,7 @@ (.first (w/-query (format "div[data-testid='logseq_db_%s'] .graph-action-btn" graph-name)))] (w/click action-btn) (w/click ".delete-remote-graph-menu-item") - (w/click "div[role='alertdialog'] button:text('ok')"))) + (w/click "div[role='alertdialog'] button:text('Confirm')"))) (defn switch-graph [to-graph-name wait-sync? need-input-password?] @@ -136,8 +134,9 @@ (k/esc) (k/esc) (util/search-and-click "(Dev) Validate current graph") - (assert/assert-is-visible (loc/and ".notifications div.notification-success div" (w/get-by-text "Your graph is valid"))) - (let [content (.textContent (loc/and ".notifications div.notification-success div" (w/get-by-text "Your graph is valid"))) - summary (edn/read-string (subs content (string/index-of content "{")))] - (w/click ".notifications div.notification-success .ls-icon-x") - summary)) + (assert/assert-is-visible + (loc/and ".notifications div.notification-success div" + (w/get-by-text "Your graph is valid"))) + (when (w/visible? ".notifications div.notification-success .ls-icon-x") + (w/click ".notifications div.notification-success .ls-icon-x")) + {:valid? true}) diff --git a/clj-e2e/src/logseq/e2e/page.clj b/clj-e2e/src/logseq/e2e/page.clj index 9728da1d78..82ddc6e8c4 100644 --- a/clj-e2e/src/logseq/e2e/page.clj +++ b/clj-e2e/src/logseq/e2e/page.clj @@ -36,9 +36,9 @@ (defn delete-page [page-name] (goto-page page-name) - (w/click "button[title='More']") + (w/click ".toolbar-dots-btn") (w/click "[role='menuitem'] div:text('Delete page')") - (w/click "div[role='alertdialog'] button:text('ok')")) + (w/click "div[role='alertdialog'] button:text('Confirm')")) (defn rename-page [old-page-name new-page-name] diff --git a/clj-e2e/src/logseq/e2e/settings.clj b/clj-e2e/src/logseq/e2e/settings.clj index ff9a8fd6aa..89f69a1fa4 100644 --- a/clj-e2e/src/logseq/e2e/settings.clj +++ b/clj-e2e/src/logseq/e2e/settings.clj @@ -1,16 +1,51 @@ (ns logseq.e2e.settings (:require [logseq.e2e.assert :as assert] - [logseq.e2e.keyboard :as k] + [logseq.e2e.util :as util] [wally.main :as w])) +(def ^:private e2e-init-script + "localStorage.setItem('preferred-language', '\"en\"'); localStorage.setItem('developer-mode', '\"true\"');") + +(def ^:private refresh-ready-script + "(() => document.documentElement.lang === 'en' + && localStorage.getItem('preferred-language') === '\"en\"' + && localStorage.getItem('developer-mode') === '\"true\"')()") + +(defn install-init-script! + [ctx] + (.addInitScript ctx e2e-init-script)) + +(defn wait-test-env-ready! + [] + (loop [remaining 20] + (if (w/eval-js refresh-ready-script) + true + (if (zero? remaining) + (throw (ex-info "test env not ready after refresh" {})) + (do + (util/wait-timeout 250) + (recur (dec remaining))))))) + +(defn- test-env-ready? + [] + (try + (wait-test-env-ready!) + true + (catch Throwable _e + false))) + +(defn refresh-test-env! + [] + (loop [attempt 0] + (w/refresh) + (assert/assert-graph-loaded?) + (if (test-env-ready?) + true + (if (< attempt 2) + (recur (inc attempt)) + (wait-test-env-ready!))))) + (defn developer-mode [] - (w/eval-js "localStorage.setItem('preferred-language', '\"en\"')") - (w/click "button[title='More'] .ls-icon-dots") - (w/click ".ls-icon-settings") - (w/click "[data-id='advanced']") - (let [q (.last (w/-query ".ui__toggle [aria-checked='false']"))] - (when (.isVisible q) - (w/click q))) - (k/esc) + (w/eval-js e2e-init-script) (assert/assert-in-normal-mode?)) diff --git a/clj-e2e/src/logseq/e2e/util.clj b/clj-e2e/src/logseq/e2e/util.clj index 133d2a5742..02643a7fce 100644 --- a/clj-e2e/src/logseq/e2e/util.clj +++ b/clj-e2e/src/logseq/e2e/util.clj @@ -96,7 +96,11 @@ (defn search-and-click [search-text] (search search-text) - (w/click (.first (w/get-by-test-id search-text)))) + (let [result (.first (w/get-by-test-id search-text))] + (repeat-until-visible 5 result #(do + (search search-text) + (wait-timeout 300))) + (w/click result))) (defn wait-editor-gone ([] @@ -153,12 +157,12 @@ :or {username "e2etest" password "Logseq-e2e"}}] (w/eval-js "localStorage.setItem(\"login-enabled\",true);") - (w/click "button[title=\"More\"]") + (w/click ".toolbar-dots-btn") (w/click "div:text(\"Login\")") (input username) (k/tab) (input password) - (w/click "button[type=\"submit\"]:text(\"Sign in\")") + (w/click ".cp__user-login button[type=\"submit\"]") (w/wait-for-not-visible ".cp__user-login")) (defn goto-journals diff --git a/clj-e2e/test/logseq/e2e/fixtures.clj b/clj-e2e/test/logseq/e2e/fixtures.clj index 1a22b35deb..3bb2c10ac9 100644 --- a/clj-e2e/test/logseq/e2e/fixtures.clj +++ b/clj-e2e/test/logseq/e2e/fixtures.clj @@ -23,11 +23,11 @@ (w/grant-permissions :clipboard-write :clipboard-read) (binding [custom-report/*pw-contexts* #{(.context (w/get-page))} custom-report/*pw-page->console-logs* (atom {})] + (settings/install-init-script! (.context (w/get-page))) (w/grant-permissions :clipboard-write :clipboard-read) (w/navigate (pw-page/get-test-url port)) (settings/developer-mode) - (w/refresh) - (assert/assert-graph-loaded?) + (settings/refresh-test-env!) (let [p (w/get-page)] (.onConsoleMessage p (fn [msg] (when custom-report/*pw-page->console-logs* @@ -43,6 +43,7 @@ :slow-mo @config/*slow-mo} p1 (w/make-page page-opts) p2 (w/make-page page-opts)] + (run! #(settings/install-init-script! (.context @%)) [p1 p2]) (reset! *page1 p1) (reset! *page2 p2) (binding [custom-report/*pw-contexts* (set [(.context @p1) (.context @p2)]) @@ -53,8 +54,7 @@ (w/grant-permissions :clipboard-write :clipboard-read) (w/navigate (pw-page/get-test-url (or port @config/*port))) (settings/developer-mode) - (w/refresh) - (assert/assert-graph-loaded?) + (settings/refresh-test-env!) (let [p (w/get-page)] (.onConsoleMessage p @@ -84,7 +84,7 @@ (w/with-page-open p) ; use with-page-open to close playwright instance (binding [custom-report/*pw-contexts* #{ctx} *pw-ctx* ctx] - (.addInitScript ctx "localStorage.setItem('preferred-language', '\"en\"')") + (settings/install-init-script! ctx) (f) (.close (.browser *pw-ctx*))))) @@ -141,7 +141,7 @@ 2 #(w/with-page % (settings/developer-mode) - (w/refresh) + (settings/refresh-test-env!) (util/login-test-account)) [@*page1 @*page2]) (w/with-page @*page1 diff --git a/clj-e2e/test/logseq/e2e/plugins_marketplace_test.clj b/clj-e2e/test/logseq/e2e/plugins_marketplace_test.clj index 1fd6aed519..d92da3539f 100644 --- a/clj-e2e/test/logseq/e2e/plugins_marketplace_test.clj +++ b/clj-e2e/test/logseq/e2e/plugins_marketplace_test.clj @@ -13,7 +13,7 @@ "Opens the plugins dialog via the More menu" [] (util/double-esc) - (w/click "button[title='More'] .ls-icon-dots") + (w/click ".toolbar-dots-btn") (w/click ".ui__dropdown-menu-item:has-text('Plugins')") (w/wait-for ".cp__plugins-page")) diff --git a/clj-e2e/test/logseq/e2e/property_basic_test.clj b/clj-e2e/test/logseq/e2e/property_basic_test.clj index 770e3301b4..2e3c94a2a3 100644 --- a/clj-e2e/test/logseq/e2e/property_basic_test.clj +++ b/clj-e2e/test/logseq/e2e/property_basic_test.clj @@ -14,7 +14,7 @@ fixtures/new-logseq-page fixtures/validate-graph) -(def ^:private property-types ["Text" "Number" "Date" "DateTime" "Checkbox" "Url" "Node"]) +(def ^:private property-types ["Text" "Number" "Date" "DateTime" "Checkbox" "URL" "Node"]) (defn add-new-properties [title-prefix] @@ -23,7 +23,7 @@ (let [property-name (str "p-" title-prefix "-" property-type)] (w/click (util/get-by-text (str title-prefix "-" property-type) true)) (k/press "Control+e") - (util/input-command "Add new property") + (util/input-command "Add property") (w/click "input[placeholder]") (util/input property-name) (w/click (util/get-by-text "New option:" false)) @@ -41,7 +41,7 @@ (k/enter) (k/esc)) "Checkbox" nil - "Url" nil + "URL" nil "Node" (do (w/click (w/get-by-text "Skip choosing tag")) (util/input (str title-prefix "-Node-value")) diff --git a/deps/cli/README.md b/deps/cli/README.md index 9226c8635e..28882fd3d2 100644 --- a/deps/cli/README.md +++ b/deps/cli/README.md @@ -1,6 +1,6 @@ ## Description -This library provides a `logseq` CLI for DB graphs created using the [database-version](/README.md#-database-version). By default, the CLI works offline with local graphs. This allows for running commands automatically on CI/CD platforms like Github Actions. Most CLI commands also connect to the current DB graph in a desktop app (a.k.a. in-app graph) if the [HTTP API Server](https://docs.logseq.com/#/page/local%20http%20server) is turned on. +This library provides a `logseq` CLI for DB graphs created using the [database-version](/README.md#-database-version). By default, the CLI works offline with local graphs. This allows for running commands automatically on CI/CD platforms like GitHub Actions. Most CLI commands also connect to the current DB graph in a desktop app (a.k.a. in-app graph) if the [HTTP API Server](https://docs.logseq.com/#/page/local%20http%20server) is turned on. ## Install diff --git a/deps/common/src/logseq/common/config.cljs b/deps/common/src/logseq/common/config.cljs index 9a22e6532e..09e690b84c 100644 --- a/deps/common/src/logseq/common/config.cljs +++ b/deps/common/src/logseq/common/config.cljs @@ -78,6 +78,9 @@ (defonce block-pattern "-") +(def unused-in-db-graphs-deprecation + "is not used in DB graphs") + (def file-only-config "File only config keys that are deprecated in DB graphs along with descriptions for their deprecation." @@ -100,7 +103,7 @@ :srs/initial-interval :whiteboards-directory :feature/enable-whiteboards?] - (repeat "is not used in DB graphs")) + (repeat unused-in-db-graphs-deprecation)) {:preferred-format "is not used in DB graphs as there is only markdown mode." :property-pages/enabled? diff --git a/deps/common/src/logseq/common/date.cljs b/deps/common/src/logseq/common/date.cljs index 8a68a0739f..273e8218f1 100644 --- a/deps/common/src/logseq/common/date.cljs +++ b/deps/common/src/logseq/common/date.cljs @@ -31,6 +31,7 @@ "MM_dd_yyyy" "yyyy/MM/dd" "yyyy-MM-dd" + "yyyy-MM-dd EEE" "yyyy-MM-dd EEEE" "yyyy_MM_dd" "yyyyMMdd" diff --git a/deps/db/src/logseq/db.cljs b/deps/db/src/logseq/db.cljs index 425854a6ed..a1245d0009 100644 --- a/deps/db/src/logseq/db.cljs +++ b/deps/db/src/logseq/db.cljs @@ -522,6 +522,14 @@ (when db (d/entity db (get-first-page-by-name db page-name)))) +(defn get-journal-page-by-day + "Get a journal page given its :block/journal-day value." + [db journal-day] + (when (and db journal-day) + (when-let [eid (some-> (first (d/datoms db :avet :block/journal-day journal-day)) + :e)] + (d/entity db eid)))) + (def get-built-in-page db-db/get-built-in-page) (def library? db-db/library?) diff --git a/deps/db/src/logseq/db/frontend/property.cljs b/deps/db/src/logseq/db/frontend/property.cljs index 9d02308b1c..fb349d263b 100644 --- a/deps/db/src/logseq/db/frontend/property.cljs +++ b/deps/db/src/logseq/db/frontend/property.cljs @@ -55,17 +55,15 @@ :logseq.property/ui-position {:title "Property position" :schema {:type :keyword :hide? true}} - :logseq.property/classes - {:title "Property classes" - :schema {:type :entity - :cardinality :many - :public? false - :hide? true}} - :logseq.property/value - {:title "Property value" - :schema {:type :any - :public? false - :hide? true}} + :logseq.property/classes {:title "Property classes" + :schema {:type :entity + :cardinality :many + :public? false + :hide? true}} + :logseq.property/value {:title "Property value" + :schema {:type :any + :public? false + :hide? true}} :block/alias {:title "Alias" :attribute :block/alias @@ -230,19 +228,18 @@ :logseq.property.pdf/hl-type {:title "Annotation type" :schema {:type :keyword :hide? true}} - :logseq.property.pdf/hl-color - {:title "Annotation color" - :schema {:type :default :hide? true} - :closed-values - (mapv (fn [[db-ident value]] - {:db-ident db-ident - :value value - :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident)}) - [[:logseq.property/color.yellow "yellow"] - [:logseq.property/color.red "red"] - [:logseq.property/color.green "green"] - [:logseq.property/color.blue "blue"] - [:logseq.property/color.purple "purple"]])} + :logseq.property.pdf/hl-color {:title "Annotation color" + :schema {:type :default :hide? true} + :closed-values + (mapv (fn [[db-ident value]] + {:db-ident db-ident + :value value + :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident)}) + [[:logseq.property/color.yellow "yellow"] + [:logseq.property/color.red "red"] + [:logseq.property/color.green "green"] + [:logseq.property/color.blue "blue"] + [:logseq.property/color.purple "purple"]])} :logseq.property.pdf/hl-page {:title "Annotation page" :schema {:type :raw-number :hide? true}} :logseq.property.pdf/hl-image {:title "Annotation image" @@ -262,14 +259,6 @@ :schema {:type :node :cardinality :many :hide? true}} - ;; TODO: Remove deprecated - :logseq.property.tldraw/page {:title "Tldraw Page" - :schema {:type :map - :hide? true}} - ;; TODO: Remove deprecated - :logseq.property.tldraw/shape {:title "Tldraw Shape" - :schema {:type :map - :hide? true}} ;; Journal props :logseq.property.journal/title-format {:title "Title Format" @@ -277,132 +266,119 @@ {:type :string :public? false}} - :logseq.property/choice-checkbox-state - {:title "Choice checkbox state" - :schema {:type :checkbox - :hide? true} - :queryable? false} + :logseq.property/choice-checkbox-state {:title "Choice checkbox state" + :schema {:type :checkbox + :hide? true} + :queryable? false} ;; tag-scoped choice, a choice can be specified locally for specified tags - :logseq.property/choice-classes - {:title "Choice classes" - :schema {:type :class - :cardinality :many - :public? false - :hide? true - :view-context :never} - :queryable? false} + :logseq.property/choice-classes {:title "Choice classes" + :schema {:type :class + :cardinality :many + :public? false + :hide? true + :view-context :never} + :queryable? false} ;; tag can define which global choices are hidden for its objects - :logseq.property/choice-exclusions - {:title "Choice exclusions" - :schema {:type :node - :cardinality :many - :public? false - :hide? true - :view-context :never} - :queryable? false} - :logseq.property/checkbox-display-properties - {:title "Properties displayed as checkbox" - :schema {:type :property - :cardinality :many - :hide? true} - :queryable? false} + :logseq.property/choice-exclusions {:title "Choice exclusions" + :schema {:type :node + :cardinality :many + :public? false + :hide? true + :view-context :never} + :queryable? false} + :logseq.property/checkbox-display-properties {:title "Properties displayed as checkbox" + :schema {:type :property + :cardinality :many + :hide? true} + :queryable? false} ;; Task props - :logseq.property/status - {:title "Status" - :schema - {:type :default - :public? true - :ui-position :block-left} - :closed-values - (mapv (fn [[db-ident value icon checkbox-state]] - {:db-ident db-ident - :value value - :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident) - :icon {:type :tabler-icon :id icon} - :properties (when (some? checkbox-state) - {:logseq.property/choice-checkbox-state checkbox-state})}) - [[:logseq.property/status.backlog "Backlog" "Backlog"] - [:logseq.property/status.todo "Todo" "Todo" false] - [:logseq.property/status.doing "Doing" "InProgress50"] - [:logseq.property/status.in-review "In Review" "InReview"] - [:logseq.property/status.done "Done" "Done" true] - [:logseq.property/status.canceled "Canceled" "Cancelled"]]) - :properties {:logseq.property/hide-empty-value true - :logseq.property/default-value :logseq.property/status.todo - :logseq.property/enable-history? true} - :queryable? true} - :logseq.property/priority - {:title "Priority" - :schema - {:type :default - :public? true - :ui-position :block-left} - :closed-values - (mapv (fn [[db-ident value icon]] - {:db-ident db-ident - :value value - :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident) - :icon {:type :tabler-icon :id icon}}) - [[:logseq.property/priority.low "Low" "priorityLvlLow"] - [:logseq.property/priority.medium "Medium" "priorityLvlMedium"] - [:logseq.property/priority.high "High" "priorityLvlHigh"] - [:logseq.property/priority.urgent "Urgent" "priorityLvlUrgent"]]) - :properties {:logseq.property/hide-empty-value true - :logseq.property/enable-history? true}} - :logseq.property/deadline - {:title "Deadline" - :schema {:type :datetime - :public? true - :ui-position :block-below} - :properties {:logseq.property/hide-empty-value true - :logseq.property/description "Use it to finish something at a specific date(time)."} - :queryable? true} - :logseq.property/scheduled - {:title "Scheduled" - :schema {:type :datetime - :public? true - :ui-position :block-below} - :properties {:logseq.property/hide-empty-value true - :logseq.property/description "Use it to plan something to start at a specific date(time)."} - :queryable? true} - :logseq.property.repeat/recur-frequency - (let [schema {:type :number - :public? false}] - {:title "Repeating recur frequency" - :schema schema - :properties {:logseq.property/hide-empty-value true - :logseq.property/default-value 1} - :queryable? true}) - :logseq.property.repeat/recur-unit - {:title "Repeating recur unit" - :schema {:type :default - :public? false} - :closed-values (mapv (fn [[db-ident value]] - {:db-ident db-ident - :value value - :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident)}) - [[:logseq.property.repeat/recur-unit.minute "Minute"] - [:logseq.property.repeat/recur-unit.hour "Hour"] - [:logseq.property.repeat/recur-unit.day "Day"] - [:logseq.property.repeat/recur-unit.week "Week"] - [:logseq.property.repeat/recur-unit.month "Month"] - [:logseq.property.repeat/recur-unit.year "Year"]]) - :properties {:logseq.property/hide-empty-value true - :logseq.property/default-value :logseq.property.repeat/recur-unit.day} - :queryable? true} - :logseq.property.repeat/repeated? - {:title "Node Repeats?" - :schema {:type :checkbox - :hide? true} - :queryable? true} - :logseq.property.repeat/temporal-property - {:title "Repeating Temporal Property" - :schema {:type :property - :hide? true}} - :logseq.property.repeat/checked-property - {:title "Repeating Checked Property" - :schema {:type :property - :hide? true}} + :logseq.property/status {:title "Status" + :schema + {:type :default + :public? true + :ui-position :block-left} + :closed-values + (mapv (fn [[db-ident value icon checkbox-state]] + {:db-ident db-ident + :value value + :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident) + :icon {:type :tabler-icon :id icon} + :properties (when (some? checkbox-state) + {:logseq.property/choice-checkbox-state checkbox-state})}) + [[:logseq.property/status.backlog "Backlog" "Backlog"] + [:logseq.property/status.todo "Todo" "Todo" false] + [:logseq.property/status.doing "Doing" "InProgress50"] + [:logseq.property/status.in-review "In Review" "InReview"] + [:logseq.property/status.done "Done" "Done" true] + [:logseq.property/status.canceled "Canceled" "Cancelled"]]) + :properties {:logseq.property/hide-empty-value true + :logseq.property/default-value :logseq.property/status.todo + :logseq.property/enable-history? true} + :queryable? true} + :logseq.property/priority {:title "Priority" + :schema + {:type :default + :public? true + :ui-position :block-left} + :closed-values + (mapv (fn [[db-ident value icon]] + {:db-ident db-ident + :value value + :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident) + :icon {:type :tabler-icon :id icon}}) + [[:logseq.property/priority.low "Low" "priorityLvlLow"] + [:logseq.property/priority.medium "Medium" "priorityLvlMedium"] + [:logseq.property/priority.high "High" "priorityLvlHigh"] + [:logseq.property/priority.urgent "Urgent" "priorityLvlUrgent"]]) + :properties {:logseq.property/hide-empty-value true + :logseq.property/enable-history? true}} + :logseq.property/deadline {:title "Deadline" + :schema {:type :datetime + :public? true + :ui-position :block-below} + :properties {:logseq.property/hide-empty-value true + :logseq.property/description "Use it to finish something at a specific date(time)."} + :queryable? true} + :logseq.property/scheduled {:title "Scheduled" + :schema {:type :datetime + :public? true + :ui-position :block-below} + :properties {:logseq.property/hide-empty-value true + :logseq.property/description "Use it to plan something to start at a specific date(time)."} + :queryable? true} + :logseq.property.repeat/recur-frequency (let [schema {:type :number + :public? false}] + {:title "Repeating recur frequency" + :schema schema + :properties {:logseq.property/hide-empty-value true + :logseq.property/default-value 1} + :queryable? true}) + :logseq.property.repeat/recur-unit {:title "Repeating recur unit" + :schema {:type :default + :public? false} + :closed-values (mapv (fn [[db-ident value]] + {:db-ident db-ident + :value value + :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident)}) + [[:logseq.property.repeat/recur-unit.minute "Minute"] + [:logseq.property.repeat/recur-unit.hour "Hour"] + [:logseq.property.repeat/recur-unit.day "Day"] + [:logseq.property.repeat/recur-unit.week "Week"] + [:logseq.property.repeat/recur-unit.month "Month"] + [:logseq.property.repeat/recur-unit.year "Year"]]) + :properties {:logseq.property/hide-empty-value true + :logseq.property/default-value :logseq.property.repeat/recur-unit.day} + :queryable? true} + :logseq.property.repeat/repeated? {:title "Node Repeats?" + :schema {:type :checkbox + :hide? true} + :queryable? true} + :logseq.property.repeat/temporal-property {:title "Repeating Temporal Property" + :schema {:type :property + :hide? true}} + :logseq.property.repeat/checked-property {:title "Repeating Checked Property" + :schema {:type :property + :hide? true}} ;; TODO: Add more props :Assignee, :Estimate, :Cycle, :Project @@ -426,39 +402,36 @@ :view-context :page :public? true}} - :logseq.property.view/type - {:title "View Type" - :schema - {:type :default - :public? false - :hide? true} - :closed-values - (mapv (fn [[db-ident value icon]] - {:db-ident db-ident - :value value - :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident) - :icon {:type :tabler-icon :id icon}}) - [[:logseq.property.view/type.table "Table View" "table"] - [:logseq.property.view/type.list "List View" "list"] - [:logseq.property.view/type.gallery "Gallery View" "layout-grid"]]) - :properties {:logseq.property/default-value :logseq.property.view/type.table} - :queryable? true} + :logseq.property.view/type {:title "View Type" + :schema + {:type :default + :public? false + :hide? true} + :closed-values + (mapv (fn [[db-ident value icon]] + {:db-ident db-ident + :value value + :uuid (common-uuid/gen-uuid :db-ident-block-uuid db-ident) + :icon {:type :tabler-icon :id icon}}) + [[:logseq.property.view/type.table "Table View" "table"] + [:logseq.property.view/type.list "List View" "list"] + [:logseq.property.view/type.gallery "Gallery View" "layout-grid"]]) + :properties {:logseq.property/default-value :logseq.property.view/type.table} + :queryable? true} - :logseq.property.view/feature-type - {:title "View Feature Type" - :schema - {:type :keyword - :public? false - :hide? true} - :queryable? false} + :logseq.property.view/feature-type {:title "View Feature Type" + :schema + {:type :keyword + :public? false + :hide? true} + :queryable? false} - :logseq.property.view/group-by-property - {:title "View group by property" - :schema - {:type :property - :public? false - :hide? true} - :queryable? true} + :logseq.property.view/group-by-property {:title "View group by property" + :schema + {:type :property + :public? false + :hide? true} + :queryable? true} :logseq.property.view/sort-groups-by-property {:title "View sort groups by" :schema @@ -922,3 +895,52 @@ (when db (let [block (or (d/entity db (:db/id block)) block)] (lookup block db-ident)))) + +(defn built-in-ident->i18n-key + "Derives an i18n key from a built-in db-ident. + Returns nil for non-built-in idents. + Examples: + :block/alias -> :property.built-in/alias + :logseq.property/status -> :property.built-in/status + :logseq.property.code/lang -> :property.built-in/code-lang + :logseq.class/Task -> :class.built-in/task + :logseq.property/status.backlog -> :property.status/backlog" + [db-ident] + (let [ns-str (namespace db-ident) + n (name db-ident)] + (cond + (= ns-str "logseq.class") + (keyword "class.built-in" (string/lower-case n)) + + (or (= ns-str "logseq.property") + (string/starts-with? ns-str "logseq.property.")) + (let [sub-ns (when (not= ns-str "logseq.property") + (subs ns-str (count "logseq.property."))) + dot-idx (string/index-of n ".") + clean-n (string/replace n #"\?$" "")] + (if dot-idx + ;; Closed value: logseq.property/status.backlog -> :property.status/backlog + (let [prop-part (subs clean-n 0 dot-idx) + choice-part (subs clean-n (inc dot-idx)) + subdomain (if sub-ns (str sub-ns "-" prop-part) prop-part)] + (keyword (str "property." subdomain) choice-part)) + ;; Property definition + (if sub-ns + (keyword "property.built-in" (str sub-ns "-" clean-n)) + (keyword "property.built-in" clean-n)))) + + (= ns-str "block") + (keyword "property.built-in" (string/replace n #"\?$" "")) + + :else nil))) + +(defn built-in-display-title + "Returns the display title for a built-in entity (property or class). + `translate-fn` takes an i18n keyword and returns the translated string. + Falls back to (:block/title entity) when no translation is available." + [entity translate-fn] + (or (when-let [i18n-key (some-> (:db/ident entity) built-in-ident->i18n-key)] + (let [s (translate-fn i18n-key)] + (when-not (string/starts-with? (str s) "{Missing") + s))) + (:block/title entity))) diff --git a/deps/db/test/logseq/db_test.cljs b/deps/db/test/logseq/db_test.cljs index cf0ed9bec7..fa66454ec6 100644 --- a/deps/db/test/logseq/db_test.cljs +++ b/deps/db/test/logseq/db_test.cljs @@ -58,6 +58,16 @@ (is (= "movie" (:block/title (ldb/get-case-page @conn "movie")))) (is (= "Movie" (:block/title (ldb/get-case-page @conn "Movie")))))) +(deftest get-journal-page-by-day + (let [conn (db-test/create-conn-with-blocks + {:pages-and-blocks + [{:page {:build/journal 20260410}} + {:page {:build/journal 20260411}}]})] + (is (= "Apr 10th, 2026" + (:block/title (ldb/get-journal-page-by-day @conn 20260410)))) + (is (= "Apr 11th, 2026" + (:block/title (ldb/get-journal-page-by-day @conn 20260411)))))) + (deftest page-exists (let [conn (db-test/create-conn-with-blocks {:properties diff --git a/deps/graph-parser/test/resources/exporter-test-graph/ignored/about.org b/deps/graph-parser/test/resources/exporter-test-graph/ignored/about.org index a94fce6054..7821f7f90f 100644 --- a/deps/graph-parser/test/resources/exporter-test-graph/ignored/about.org +++ b/deps/graph-parser/test/resources/exporter-test-graph/ignored/about.org @@ -17,14 +17,14 @@ Your notes will be stored in the local browser storage. We are using IndexedDB. ** How do I use it? *** 1. Sync between multiple devices - Currently, we only support syncing through Github, more options (e.g. + Currently, we only support syncing through GitHub, more options (e.g. Gitlab, Dropbox, Google Drive, WebDAV, etc.) will be added soon. We are using an excellent web git client called [[https://isomorphic-git.org/][isomorphic-git]]. **** Step 1 - Click the button /Login with Github/. + Click the button /Login with GitHub/. **** Step 2 - Set your Github personal access token, the token will be encrypted and + Set your GitHub personal access token, the token will be encrypted and stored in the browser local storage, our server will never store it. If you know nothing about either Git or the personal access token, no worries, @@ -50,7 +50,7 @@ - Twitter: https://twitter.com/logseq - Discord: https://discord.gg/KpN4eHY where we ask questions and share tips - Website: https://logseq.com/ - - Github: https://github.com/logseq/logseq everyone is encouraged to report issues! + - GitHub: https://github.com/logseq/logseq everyone is encouraged to report issues! - Our blog: https://logseq.com/blog ** Credits to - [[https://roamresearch.com/][Roam Research]] diff --git a/deps/outliner/src/logseq/outliner/core.cljs b/deps/outliner/src/logseq/outliner/core.cljs index f4e4352600..e5090d3d64 100644 --- a/deps/outliner/src/logseq/outliner/core.cljs +++ b/deps/outliner/src/logseq/outliner/core.cljs @@ -842,7 +842,8 @@ (when (seq (filter :logseq.property/built-in? top-level-blocks*)) (throw (ex-info "Built-in nodes can't be deleted" {:type :notification - :payload {:message "Built-in nodes can't be deleted" + :payload {:message "Built-in nodes can't be deleted." + :i18n-key :node/built-in-cant-delete-error :type :error}}))) (when (seq top-level-blocks) (let [from-property (:logseq.property/created-from-property start-block) diff --git a/deps/outliner/src/logseq/outliner/page.cljs b/deps/outliner/src/logseq/outliner/page.cljs index 56ab7fa337..eb8f0fa169 100644 --- a/deps/outliner/src/logseq/outliner/page.cljs +++ b/deps/outliner/src/logseq/outliner/page.cljs @@ -257,13 +257,15 @@ (and (not class?) (not (every? ldb/internal-page? pages))) (throw (ex-info "Cannot create this page unless all parents are pages" {:type :notification - :payload {:message "Cannot create this page unless all parents are pages" + :payload {:message "Cannot create this page unless all parents are pages." + :i18n-key :page.validation/parents-must-be-pages :type :warning}})) (and class? (not (every? ldb/class? pages))) (throw (ex-info "Cannot create this tag unless all parents are tags" {:type :notification - :payload {:message "Cannot create this tag unless all parents are tags" + :payload {:message "Cannot create this tag unless all parents are tags." + :i18n-key :class.validation/parents-must-be-tags :type :warning}})) :else diff --git a/deps/outliner/src/logseq/outliner/property.cljs b/deps/outliner/src/logseq/outliner/property.cljs index 1e6b748dcd..767cc6fc4a 100644 --- a/deps/outliner/src/logseq/outliner/property.cljs +++ b/deps/outliner/src/logseq/outliner/property.cljs @@ -61,7 +61,8 @@ (throw (ex-info "Property is protected and can't be deleted" {:type :notification :payload {:type :error - :message "Property is protected and can't be deleted" + :message "Property is protected and can't be deleted." + :i18n-key :property.validation/protected :entity-idents entity-idents :property property-ident}})))) @@ -72,7 +73,9 @@ ldb/private-tags))] (throw (ex-info "Can't remove private tags" {:type :notification - :payload {:message (str "Can't remove private tags: " (string/join ", " private-tags)) + :payload {:message (str "Can't remove private tags: " (string/join ", " private-tags) ".") + :i18n-key :class.validation/cant-remove-private-tags + :i18n-args [(string/join ", " private-tags)] :type :error} :property-id :block/tags})))) @@ -81,7 +84,8 @@ (when (contains? db-malli-schema/required-properties property-ident) (throw (ex-info "Can't remove required property" {:type :notification - :payload {:message "Can't remove required property" + :payload {:message "Can't remove required property." + :i18n-key :property.validation/cant-remove-required :type :error} :property-id property-ident})))) @@ -144,7 +148,9 @@ (or result (throw (ex-info (str "Can't convert \"" v-str "\" to a number") {:type :notification - :payload {:message (str "Can't convert \"" v-str "\" to a number") + :payload {:message (str "Can't convert \"" v-str "\" to a number.") + :i18n-key :property.validation/cant-convert-to-number + :i18n-args [v-str] :type :error}}))))) (defn ^:api convert-property-input-string @@ -218,6 +224,7 @@ (throw (ex-info "Disallowed many to one conversion" {:type :notification :payload {:message "This property can't change from multiple values to one value because it has existing data." + :i18n-key :property.validation/many-to-one :type :warning}}))) (when (seq tx-data) (ldb/transact! conn tx-data {:outliner-op :update-property @@ -249,11 +256,13 @@ (when-not (m/validate schema value) (let [errors (-> (m/explain schema value) (me/humanize)) - error-msg (str "\"" (:block/title property) "\"" " " (if (coll? errors) (first errors) errors))] + error-msg (str "Property validation failed: \"" (:block/title property) "\" " (if (coll? errors) (first errors) errors))] (throw (ex-info "Schema validation failed" {:type :notification :payload {:message error-msg + :i18n-key :property.validation/invalid-value + :i18n-args [(:block/title property) (if (coll? errors) (first errors) errors)] :type :warning} :property (:db/ident property) :value value @@ -403,7 +412,8 @@ (when (and ref? (= value (:db/id block))) (throw (ex-info "Can't set this block itself as own property value" {:type :notification - :payload {:message "Can't set this block itself as own property value" + :payload {:message "Can't set this block itself as own property value." + :i18n-key :property.validation/cant-set-self-value :type :error}})))) (defn batch-remove-property! @@ -638,6 +648,7 @@ (throw (ex-info (str e) {:type :notification :payload {:message "Property failed to create. Please try a different property name." + :i18n-key :property/create-error :type :error}})))))] (assert (qualified-keyword? db-ident)) (when (and (contains? #{:checkbox} (:logseq.property/type schema)) @@ -831,14 +842,17 @@ (throw (ex-info "Closed value choice already exists" {:error :value-exists :type :notification - :payload {:message "Choice already exists" + :payload {:message "Choice already exists." + :i18n-key :property.choice/already-exists :type :warning}})) validate-message (throw (ex-info "Invalid property value" {:error :value-invalid :type :notification - :payload {:message validate-message + :payload {:message (str "Invalid choice \"" value' "\" for this property: " validate-message ".") + :i18n-key :property.choice/invalid + :i18n-args [value' validate-message] :type :warning}})) (nil? resolved-value) @@ -894,6 +908,7 @@ (throw (ex-info "The choice can't be deleted" {:type :notification :payload {:message "The choice can't be deleted because it's built-in." + :i18n-key :property.choice/cant-delete-built-in :type :warning}})) (let [tx-data (conj (:tx-data (outliner-core/delete-blocks @conn [value-block] {})) (outliner-core/block-with-updated-at {:db/id (:db/id property)}))] diff --git a/deps/outliner/src/logseq/outliner/validate.cljs b/deps/outliner/src/logseq/outliner/validate.cljs index b40f59aea3..b744ea1409 100644 --- a/deps/outliner/src/logseq/outliner/validate.cljs +++ b/deps/outliner/src/logseq/outliner/validate.cljs @@ -19,6 +19,7 @@ (merge meta-m {:type :notification :payload {:message "Page name can't include \"#\"." + :i18n-key :page.validation/name-no-hash :type :warning}})))) (when (and (string/includes? page-title ns-util/parent-char) (not (common-date/normalize-date page-title nil))) @@ -26,6 +27,7 @@ (merge meta-m {:type :notification :payload {:message "Page name can't include \"/\"." + :i18n-key :page.validation/name-no-slash :type :warning}}))))) (defn ^:api validate-page-title @@ -35,6 +37,7 @@ (merge meta-m {:type :notification :payload {:message "Page name can't be blank." + :i18n-key :page.validation/name-blank :type :warning}}))))) (defn- find-other-ids-with-title-and-tags @@ -91,11 +94,15 @@ (throw (ex-info "Duplicate property" {:type :notification :payload {:message (str "Another property named " (pr-str new-title) " already exists.") + :i18n-key :property.validation/duplicate + :i18n-args [new-title] :type :warning}})) (ldb/class? entity) (throw (ex-info "Duplicate class" {:type :notification :payload {:message (str "Another tag named " (pr-str new-title) " already exists.") + :i18n-key :class.validation/duplicate + :i18n-args [new-title] :type :warning}})) :else (throw (ex-info "Duplicate page" @@ -103,6 +110,10 @@ :payload {:message (str "Another page named " (pr-str new-title) " already exists for tags: " (string/join ", " (map (fn [id] (str "#" (:block/title (d/entity db id)))) common-tag-ids))) + :i18n-key :page.validation/duplicate + :i18n-args [new-title + (string/join ", " + (map (fn [id] (str "#" (:block/title (d/entity db id)))) common-tag-ids))] :type :warning}})))))))) (defn ^:api validate-unique-by-name-and-tags @@ -122,6 +133,7 @@ (throw (ex-info "Page can't be renamed to a journal" {:type :notification :payload {:message "This page can't be changed to a journal page" + :i18n-key :journal/page-cant-convert-warning :type :warning}})))) (defn validate-block-title @@ -139,6 +151,7 @@ (merge meta-m {:type :notification :payload {:message "This is an invalid property name. A property name cannot start with page reference characters '#' or '[['." + :i18n-key :property.validation/invalid-name :type :error}})))))) (defn- validate-extends-property-have-correct-type @@ -149,6 +162,7 @@ (throw (ex-info "Can't extend this page since either it is not a tag or is extending from a page that is not a tag" {:type :notification :payload {:message "Can't extend this page since either it is not a tag or is extending from a page that is not a tag" + :i18n-key :class.validation/invalid-extends-type :type :error} :blocks (map #(select-keys % [:db/id :block/title]) (remove ldb/class? child-ents))})))) @@ -158,6 +172,7 @@ (throw (ex-info "Can't change the extends of a built-in tag" {:type :notification :payload {:message "Can't change the extends of a built-in tag" + :i18n-key :class.validation/built-in-extends-change :type :error}})))) (defn- disallow-extends-cycle @@ -169,6 +184,7 @@ (throw (ex-info "Extends cycle" {:type :notification :payload {:message "Tag extends cycle" + :i18n-key :class.validation/extends-cycle :type :error :blocks (map #(select-keys % [:db/id :block/title]) [child])}})))))) @@ -189,6 +205,8 @@ (throw (ex-info (str "Can't set tag with built-in page that isn't a tag " (pr-str (:block/title tag-ent))) {:type :notification :payload {:message (str "Can't set tag with built-in page that isn't a tag " (pr-str (:block/title tag-ent))) + :i18n-key :class.validation/tag-with-non-tag + :i18n-args [(:block/title tag-ent)] :type :error} :property-value v}))))) @@ -201,14 +219,17 @@ (and (every? (fn [id] (ldb/asset? (d/entity db id))) block-eids) (= :logseq.class/Asset (:db/ident (d/entity db v)))))) - (throw (ex-info (str (if delete? "Can't remove tag" "Can't set tag") - " with built-in #" (:block/title (d/entity db v))) - {:type :notification - :payload {:message (str (if delete? "Can't remove tag" "Can't set tag") - " with built-in #" (:block/title (d/entity db v))) - :type :error} - :property-id :block/tags - :property-value v})))) + (let [tag-title (:block/title (d/entity db v))] + (throw (ex-info (str (if delete? "Can't remove tag" "Can't set tag") + " with built-in #" tag-title) + {:type :notification + :payload {:message (str (if delete? "Can't remove tag" "Can't set tag") + " with built-in #" tag-title) + :i18n-key (if delete? :class.validation/cant-remove-tag-built-in :class.validation/cant-set-tag-built-in) + :i18n-args [tag-title] + :type :error} + :property-id :block/tags + :property-value v}))))) (defn- disallow-tagging-a-built-in-entity [db block-eids & {:keys [delete?]}] @@ -219,6 +240,8 @@ {:type :notification :payload {:message (str (if delete? "Can't remove tag" "Can't add tag") " on built-in " (pr-str (:block/title built-in-ent))) + :i18n-key (if delete? :class.validation/cant-remove-tag-on-built-in :class.validation/cant-add-tag-on-built-in) + :i18n-args [(:block/title built-in-ent)] :type :error}})))) (defn- disallow-removing-page-tag @@ -239,6 +262,8 @@ :payload {:message (str "Page " (pr-str (:block/title entity)) " cannot be converted to a block") :type :error + :i18n-key :page.convert/cant-be-block + :i18n-args [(:block/title entity)] :entity (into {} entity) :property :block/tags}})) (= (:db/id library-page) (:db/id (:block/parent entity))) @@ -247,6 +272,8 @@ :payload {:message (str "Page " (pr-str (:block/title entity)) " cannot be converted to a block, please move it to another page first") :type :error + :i18n-key :page.convert/cant-be-block-move-first + :i18n-args [(:block/title entity)] :entity (into {} entity) :property :block/tags}})) (some entity-util/page? (:block/_parent entity)) @@ -255,6 +282,8 @@ :payload {:message (str "Page " (pr-str (:block/title entity)) " cannot be converted to a block because it has page children") :type :error + :i18n-key :page.convert/cant-be-block-has-children + :i18n-args [(:block/title entity)] :entity (into {} entity) :property :block/tags}}))))))))) @@ -274,10 +303,14 @@ (:logseq.property/created-from-property block)) (let [message (if (:logseq.property/created-from-property block) "Can't convert property value to page." - "Can't convert this block to page since its parent is not a page.")] + "Can't convert this block to page since its parent is not a page.") + i18n-key (if (:logseq.property/created-from-property block) + :page.convert/property-value-to-page + :page.convert/block-parent-not-page)] (throw (ex-info message {:type :notification :payload {:message message + :i18n-key i18n-key :type :error :block (into {} block)}}))))))))) diff --git a/deps/shui/src/logseq/shui/dialog/core.cljs b/deps/shui/src/logseq/shui/dialog/core.cljs index 3408f9a66a..bf9e371282 100644 --- a/deps/shui/src/logseq/shui/dialog/core.cljs +++ b/deps/shui/src/logseq/shui/dialog/core.cljs @@ -173,8 +173,9 @@ (rum/defc alert-inner [config] - (let [{:keys [id title description content footer deferred open?]} config - props (dissoc config :id :title :description :content :footer :deferred :open? :alert?)] + (let [{:keys [id title description content footer deferred open? ok-label]} config + props (dissoc config :id :title :description :content :footer :deferred :open? :alert? :ok-label) + ok-label (or ok-label "OK")] (hooks/use-effect! (fn [] @@ -205,15 +206,18 @@ (base/button {:key "ok" :on-click #(do (close!) (p/resolve! deferred true)) - :size :sm} "OK")])))))) + :size :sm} ok-label)])))))) (rum/defc confirm-inner [config] - (let [{:keys [id deferred outside-cancel? data-reminder]} config + (let [{:keys [id deferred outside-cancel? data-reminder data-reminder-label + cancel-label ok-label]} config reminder? (boolean (and id data-reminder)) [ready?, set-ready!] (rum/use-state (not reminder?)) *ok-ref (rum/use-ref nil) - *reminder-ref (rum/use-ref nil)] + *reminder-ref (rum/use-ref nil) + cancel-label (or cancel-label "Cancel") + ok-label (or ok-label "OK")] (hooks/use-effect! (fn [] @@ -245,17 +249,16 @@ :footer [:<> [:span.flex.items-center.pt-1 - (when (and id data-reminder) + (when (and id data-reminder data-reminder-label) [:label.flex.items-center.gap-1.text-sm (form/checkbox {:ref *reminder-ref}) - [:span.opacity-50 "Don't remind me again"]])] + [:span.opacity-50 data-reminder-label]])] [:span.flex.gap-2 (base/button {:key "cancel" :on-click #(do (close!) (p/reject! deferred false)) :variant :outline - :size :sm} - "Cancel") + :size :sm} cancel-label) (base/button {:key "ok" :ref *ok-ref @@ -265,7 +268,7 @@ (js/localStorage.setItem (str id) (js/Date.now)))) (close!) (p/resolve! deferred true)) - :size :sm} "OK")]]))))) + :size :sm} ok-label)]]))))) (rum/defc install-modals < rum/static diff --git a/deps/shui/src/logseq/shui/select/multi.cljs b/deps/shui/src/logseq/shui/select/multi.cljs index 13a98adf84..bb3002cb35 100644 --- a/deps/shui/src/logseq/shui/select/multi.cljs +++ b/deps/shui/src/logseq/shui/select/multi.cljs @@ -2,7 +2,7 @@ (:require [clojure.string :as string] [logseq.shui.form.core :as form] [logseq.shui.hooks :as hooks] - [logseq.shui.popup.core :as popup] + [logseq.shui.popup.core :as shui-popup] [rum.core :as rum])) (defn- get-k [item] @@ -35,8 +35,7 @@ [:div.search-input {:ref *el} (form/input - (merge {:placeholder "search" - :on-key-up #(case (.-key %) + (merge {:on-key-up #(case (.-key %) "ArrowDown" (set-down! (inc down)) "ArrowUp" nil "Enter" (when (fn? on-enter) (on-enter)) @@ -57,10 +56,11 @@ [items selected-items & {:keys [on-chosen item-render value-render head-render foot-render open? close! search-enabled? search-key on-search-key-change + search-input-placeholder search-fn search-key-render item-props content-props]}] - (let [x-content popup/dropdown-menu-content - x-item popup/dropdown-menu-item + (let [x-content shui-popup/dropdown-menu-content + x-item shui-popup/dropdown-menu-item *head-ref (rum/use-ref nil) [search-key1 set-search-key!] (rum/use-state search-key) search-key1' (some-> search-key1 (string/trim) (string/lower-case)) @@ -118,6 +118,7 @@ (when search-enabled? (search-input {:value search-key1 + :placeholder (or search-input-placeholder "") :on-key-down (fn [^js e] (.stopPropagation e) (case (.-key e) diff --git a/docs/contributing-to-translations.md b/docs/contributing-to-translations.md index b2360c5570..70b4f4442a 100644 --- a/docs/contributing-to-translations.md +++ b/docs/contributing-to-translations.md @@ -1,109 +1,138 @@ ## Intro -Thanks for your interest in improving our translations! This document provides -details on how to contribute to a translation. This document assumes you can run -commandline tools, know how to switch languages within Logseq and basic -Clojurescript familiarity. We use [tongue](https://github.com/tonsky/tongue), a -most excellent library, for our translations. +Thanks for helping improve Logseq translations. + +This guide is for contributors who translate existing UI text or add missing +translations for a locale. It is not the guide for changing application code, +inventing dictionary keys, or rewriting the English source text in +`src/resources/dicts/en.edn`. + +If the English wording or key name is wrong, ask a developer to update +`en.edn` and follow [the key naming guide](i18n-key-naming.md). ## Setup -In order to run the commands in this doc, you will need to install +To run the commands in this doc, install [Babashka](https://github.com/babashka/babashka#installation). -## Where to Contribute +## Where Translations Live -Language translations are under, -[src/resources/dicts/](https://github.com/logseq/logseq/blob/master/src/resources/dicts/) with each language having its own file. For example, the es locale is in `es.edn`. +Translation dictionaries live under +[src/resources/dicts/](https://github.com/logseq/logseq/blob/master/src/resources/dicts/). +Each locale has its own EDN file, for example `es.edn`. -## Language Overview +`en.edn` is the source of truth for keys and English text. Most translation +contributors only need to edit their locale file. -First, let's get an overview of Logseq's languages and how many translations your -language has compared to others: +## Find Missing Translations -```shell -$ bb lang:list - -| :locale | :percent-translated | :translation-count | :language | -|----------+---------------------+--------------------+------------------------| -| :es | 100 | 492 | Español | -| :tr | 100 | 492 | Türkçe | -| :en | 100 | 492 | English | -| :uk | 95 | 466 | Українська | -| :ru | 95 | 466 | Русский | -| :ko | 93 | 459 | 한국어 | -| :de | 93 | 459 | Deutsch | -| :fr | 92 | 453 | Français | -| :pt-PT | 92 | 453 | Português (Europeu) | -| :pt-BR | 92 | 451 | Português (Brasileiro) | -| :sk | 90 | 445 | Slovenčina | -| :zh-CN | 90 | 441 | 简体中文 | -| :nb-NO | 75 | 370 | Norsk (bokmål) | -| :ja | 75 | 368 | 日本語 | -| :pl | 72 | 353 | Polski | -| :nl | 72 | 353 | Dutch (Nederlands) | -| :zh-Hant | 71 | 349 | 繁體中文 | -| :it | 71 | 349 | Italiano | -| :af | 22 | 106 | Afrikaans | -Total: 19 -``` - -Let's try to get your language translated as close to 100% as you can! - -## Edit a Language - -To see what translations are missing for your language, let's run a command using `es` as the example language: - -```shell -$ bb lang:missing es -| :translation-key | :string-to-translate | :file | -|---------------------------------------+-------------------------------------------------------+---------------| -| :command.editor/toggle-number-list | Toggle number list | dicts/es.edn | -... -``` - -Now, manually, add keys for your language to the translation files, save and rerun the above command. -Over time you're aiming to have this list drop to zero. Since this process can be tedious, there is an option to print the untranslated strings to copy and paste them to the files: +To see the overall translation status of every locale: ```sh -# When pasting this content, be sure to update the indentation to match the file -$ bb lang:missing es --copy - -;; For dicts/es.edn -:command.editor/toggle-number-list "Toggle number list" -... +bb lang:list ``` -Almost all translations are small. The only exceptions to this are keys that point to files e.g. their value is prefixed with `#resource`. TODO: Update when new tutorials are written +That table includes `:untranslated-count`, which shows how many English keys +are still missing for each locale, and `:same-as-en-count`, which helps you +spot locales that still contain entries copied from English. + +To see which entries are missing for one locale, use `es` as an example: + +```sh +bb lang:missing es +``` + +To print copy/paste-ready entries: + +```sh +bb lang:missing es --copy +``` + +That command prints the missing keys and the current English value so you can +paste them into your locale file and translate them there. + +## Find Entries Still Matching English + +To list them for one locale, use `es` as an example: + +```sh +bb lang:pseudo es +``` + +This is a review tool, not a hard error. Some entries may legitimately match +English, but many are unfinished translations copied from `en.edn`. + +## Edit a Locale + +1. Run `bb lang:missing `. +2. Add the missing keys to `src/resources/dicts/.edn`. +3. Save the file. +4. Run `bb lang:missing ` again until the list is empty or contains + only entries you want to leave for later. + +Missing keys are allowed. Logseq falls back to English automatically, so do not +copy English into your locale file just to make the list shorter. ### Editing Tips -* Some translations may include punctuation like `:` or `!`. When translating them, please use the punctuation that makes the most sense for your language as you don't have to follow the English ones. -* Some translations may include arguments/interpolations e.g. `{1}`. If you see them in a translation, be sure to include them. These arguments are substituted in the string and are usually used for something the app needs to calculate e.g. a number. See [these docs](https://github.com/tonsky/tongue#interpolation) for more examples. -* Rarely, a translation is a function that calls code and look like `(fn ... )` - * The logic for these fns must be simple and can only use the following fns: `str`, `when`, `if` and `=`. - * These fn translations are usually used to handle pluralization or handle formatted text by returning [hiccup-style HTML](https://github.com/weavejester/hiccup#syntax). For example, a hiccup style translation would look like `(fn [] [:div "FOO"])`. See `:on-boarding/main-title` for more examples. +- Translate the complete sentence or label owned by the key. Do not rename keys + or split one sentence across multiple keys. +- If the English value is a plain string, keep your locale value a plain + string. +- Keep placeholders exactly aligned with English, for example `{1}` and `{2}`. +- If the English value uses hiccup or `(fn ...)`, keep the same outer shape and + translate only the user-visible strings inside it. If changing that structure + seems necessary, ask a developer for help. +- Preserve emoji and icon glyphs from `en.edn` exactly, but use punctuation + that is natural for your language. +- If a sentence is already correct in your language without plural logic, use a + plain string. Do not add function logic just because English does. ## Fix Mistakes -There is a lint command to catch common translation mistakes - `bb -lang:validate-translations`. This runs for all contribution pull requests so -you'll need to ensure it doesn't fail. Mistakes that it catches: +Run this before submitting translation changes: -* Adding translation entries for nonexistent entries in English. - * Most common mistake is mistyping an entry name -* Adding English entries for translations that don't exist in the UI. -* Adding translation entries that are just duplicates of the English entry. - * This catches contributors copying entries from English and then forgetting to translate. Sometimes you do want to have the translation be the same. For this case, add an entry to `allowed-duplicates` in -[lang.clj](https://github.com/logseq/logseq/blob/master/scripts/src/logseq/tasks/lang.clj) for your language -with a list of duplicated entries e.g. `:nb-NO #{:port ...}`. +```sh +bb lang:validate-translations +``` -Nonexistent and some invalid entries can be removed by running `bb lang:validate-translations --fix`. +It checks for: + +- locale keys that do not exist in `en.edn` +- dictionary keys that are no longer used +- placeholder mismatches such as `{1}` vs `{2}` +- locale entries that no longer match an English rich-translation shape + +`bb lang:validate-translations` does not flag entries that still match English. +Use `bb lang:pseudo ` when you want to review those separately. + +To remove stale or invalid keys automatically: + +```sh +bb lang:validate-translations --fix +``` + +`--fix` removes invalid or unused keys. It does not repair placeholder mistakes +or rewrite rich translations for you. + +After editing dictionary files, run: + +```sh +bb lang:format-dicts +``` + +This restores the repo's canonical key ordering and namespace spacing. + +You do not need `bb lang:lint-hardcoded` for translation-only work. That +command is for developers who are editing UI code. ## Add a Language To add a new language: -* Add an entry to `frontend.dicts/languages` -* Create a new file under `src/resources/dicts/` and name the file the same as the locale e.g. zz.edn for a hypothetical zz locale. -* Add an entry in `frontend.dicts/dicts` referencing the file you created. -* Then start translating for your language and adding entries in your language's EDN file using the `bb lang:missing` workflow. + +1. Add an entry to `frontend.dicts/languages`. +2. Create a new file under `src/resources/dicts/` and name it after the locale, + for example `zz.edn`. +3. Add that file to `frontend.dicts/dicts`. +4. Use the `bb lang:missing ` workflow to populate translations. +5. Run `bb lang:validate-translations` and `bb lang:format-dicts`. diff --git a/docs/dev-practices.md b/docs/dev-practices.md index 8f983070b4..9ad4360fad 100644 --- a/docs/dev-practices.md +++ b/docs/dev-practices.md @@ -76,23 +76,90 @@ error if it detects an invalid query. ### Translations -We use [tongue](https://github.com/tonsky/tongue), a simple and effective -library, for translations. We have a couple bb tasks for working with -translations under `lang:` e.g. `bb lang:list`. See [the translator -guide](./contributing-to-translations.md) for usage. +We use [tongue](https://github.com/tonsky/tongue) for translations. -One useful task for reviewers (us) and contributors alike, is `bb -lang:validate-translations` which catches [common -mistakes](./contributing-to-translations.md#fix-mistakes)). When reviewing -translations here are some things to keep in mind: +Responsibilities are split across a few files: -* Punctuation and delimiting characters (e.g. `:`, `:`, `?`) should be part of - the translatable string. Those characters and their position may vary depending on the language. -* Translations usually return strings but they can return hiccup vectors with a - fn translation. Hiccup vectors are needed when word order matters for a - translation and formatting is involved. See [this 3 word Turkish - example](https://github.com/logseq/logseq/commit/1d932f07c4a0aad44606da6df03a432fe8421480#r118971415). -* Translations can be anonymous fns with arguments for interpolating strings. Fns should be simple and only include the following fns: `str`, `when`, `if` and `=`. +* [docs/contributing-to-translations.md](./contributing-to-translations.md) is + for locale contributors. +* [docs/i18n-key-naming.md](./i18n-key-naming.md) is for naming and reusing + keys in `src/resources/dicts/en.edn`. +* [.i18n-lint.toml](../.i18n-lint.toml) is the source of truth for hardcoded UI + text lint scope, translatable helpers/attributes, exclusions, and allowlists. + +#### What must be internationalized + +Inside the scope defined by `.i18n-lint.toml`, all user-visible UI text must be +internationalized. + +Exceptions: + +* Console output does not need translation. +* Keep out-of-scope developer-only `(Dev)` labels next to the developer + UI/command definition; do not add them to translation dictionaries. + +If you introduce a new UI helper, alert API, UI namespace, translatable +attribute, or other shipped UI surface, update `.i18n-lint.toml` so the lint +continues to cover it. + +#### Translation helpers + +All translation helpers live in +`src/main/frontend/context/i18n.cljs`. Do not add parallel ad hoc i18n helpers +elsewhere. + +| Helper | Use for | +|---|---| +| `t` | Standard translation with preferred-locale lookup | +| `tt` | Try multiple keys and return the first existing translation | +| `t-en` | Force English output, for example when UI text also needs an English console copy | +| `interpolate-rich-text` / `interpolate-rich-text-node` | Replace placeholders with rich-text or hiccup fragments | +| `interpolate-sentence` | Keep a full sentence in one key while inserting placeholders and inline links | +| `replace-newlines-with-br` | Render translated newline characters as `[:br]` nodes | +| `locale-join-rich-text` / `locale-join-rich-text-node` | Join rich fragments with locale-aware separators | +| `locale-format-number` / `locale-format-date` / `locale-format-time` | Format dynamic numbers and dates before passing them into translations | + +#### Developer workflow + +1. Use `.i18n-lint.toml` to decide whether the text is in i18n scope. +2. Search `src/resources/dicts/en.edn` for an existing key with the same + semantic owner and textual role. +3. If no exact match exists, follow + [the key naming guide](./i18n-key-naming.md) and add the English source text + to `en.edn`. +4. Add non-English locale entries only when you are also providing actual + translations. When renaming or removing keys, clean up stale locale keys. +5. Replace the literal with the appropriate helper from + `frontend.context.i18n`. + +Recommended checks: + +```sh +bb lang:validate-translations +bb lang:lint-hardcoded --git-changed +bb lang:format-dicts +``` + +`bb lang:format-dicts` is the repo-owned formatter for dictionary key ordering +and namespace spacing. Run it after editing dict files. + +#### Content rules + +* Keep each translation as complete as possible. Do not assemble sentences from + fragments in the caller. +* For plain dynamic text, use placeholders like `{1}` and pre-format arguments + in the caller before passing them to `t`. +* Function-valued translations are allowed only when a locale needs real logic + or rich-text hiccup output. When functions are necessary, only `str`, `when`, + `if`, and `=` are allowed inside the function body. +* Keep rich text in a single translation entry. Do not split one sentence + across multiple keys. +* Non-English locale files should contain only actual translations. Do not copy + English values just to fill gaps; Tongue falls back to `:en`. +* Preserve emoji/icon glyphs from `en.edn` exactly, and use punctuation natural + to each locale. +* Pluralization is locale-specific. Do not force English singular/plural rules + onto other languages. ### Spell Checker @@ -444,8 +511,9 @@ These tasks are specific to database graphs. For these tasks there is a one time ### Dev Commands In the app, you can enable Dev commands under `Settings > Advanced > Developer -mode`. Then search for commands starting with `(Dev)`. Commands include -inspectors for block/page data and AST. +mode`. Then search for commands labeled with `(Dev)`. Those labels are +intentionally hardcoded English developer-only labels, not translation keys. +Commands include inspectors for block/page data and AST. ### Desktop Developer Tools diff --git a/docs/i18n-key-naming.md b/docs/i18n-key-naming.md new file mode 100644 index 0000000000..ef804d1597 --- /dev/null +++ b/docs/i18n-key-naming.md @@ -0,0 +1,710 @@ +# Logseq i18n Key Naming Standard + +## Purpose + +This document defines how to name new i18n keys in `src/resources/dicts/en.edn`. + +Goal: given any new user-facing string, this document should let you determine +its key name directly. + +Secondary goal: keep prefixes converged. A name that is slightly less "pure" but +stays inside an existing owner is usually better than creating a new low-density +root or singleton dotted subdomain. + +This standard is intended to be deterministic. After applying it, you should be +able to choose one reasonable key name. If you still cannot determine the name, +treat that as a gap in the standard rather than guessing: + +- AI agents must stop and ask for human guidance. +- Developers are encouraged to report the gap to the Logseq team so the standard + can be clarified. + +Audience: + +- developers adding or renaming English keys +- AI agents reviewing or generating i18n changes + +Non-English locale contributors should not invent or rename keys. They should +use [contributing-to-translations.md](contributing-to-translations.md) instead. + +This document is only about key naming and reuse. Rules for placeholders, +hiccup, punctuation, locale fallback, linting, and helper selection live in +[dev-practices.md](dev-practices.md). + +Developer-only `(Dev)` labels are out of scope for this document. Keep them as +inline English labels next to the developer UI/command definition instead of +adding translation keys. + +## Key Shape + +Use this shape: + +```clojure +:[.]/ +``` + +Rules: + +- `` chooses the semantic owner +- `` is optional and used only for a stable subfeature, workflow, or + representation +- `` describes the text's role inside that owner +- `` names are singular semantic owners +- All segments use kebab-case + +Examples: + +```clojure +:ui/close +:page.delete/confirm-title +:nav.all-pages/title +:settings.editor/show-brackets +:plugin.install-from-file/success +:view.table/sort-ascending +:cmdk.action/open +:mobile.toolbar/undo +``` + +## Before Naming a New Key + +1. Search `src/resources/dicts/en.edn`. +2. Reuse a key only when both match: + - semantic owner + - textual role +3. If the English text matches but the owner or role differs, create a new key. + +Examples: + +- toolbar `"Bold"` and command `"Bold"` are different keys +- dialog `"Close"` and window `"Close"` are different keys +- reusable `"Copied!"` feedback may share a `notification/*` key only when it is + intentionally cross-domain + +## Step 1: Choose the Owner + +The namespace must be chosen by owner, not by file path, not by component name, +and not by where the text happens to be rendered. + +There are only 5 owner classes. + +### 1. Interaction Systems + +Use when the text belongs to an interaction registry or interaction subsystem. + +| Namespace | Use for | +|---|---| +| `command.*` | Built-in command descriptions | +| `shortcut.category` | Shortcut help categories | +| `keymap` | Keybinding editor text | +| `cmdk` | Command palette text | + +Use this class when: + +- the text is attached to a command id +- the text names a shortcut group +- the text belongs to rebinding/conflict/chord UI +- the text belongs only to command palette behavior + +For `command.*` keys: + +- the subdomain is the command group name +- for built-in command descriptions, mirror the command id namespace even when + the command opens another surface or workflow; the owner is still the command + registry entry +- use a stable semantic group name, not an implementation placeholder +- avoid new opaque or self-referential groups such as `command.command` +- `command.command-palette/*` is valid for descriptions attached to + `:command-palette/*` ids; reserve `cmdk.*` for command-palette UI copy itself + +Examples: + +```clojure +:command.editor/bold +:command.graph/open +:command.page/toggle-favorite +:command.shell/run +:shortcut.category/block-editing +:keymap/search-placeholder +:cmdk.action/open +``` + +### 2. Shared Primitives + +Use only when the wording keeps the same meaning across unrelated domains. + +| Namespace | Use for | +|---|---| +| `ui` | Generic actions and states | +| `nav` | Global destinations and route-level constraints | +| `notification` | Reusable cross-feature feedback and notification-center shell controls | +| `search` | Generic search vocabulary | +| `select` | Generic picker vocabulary | +| `format` | Formatting vocabulary | +| `color` | Color vocabulary | + +Qualification rules: + +- removing product context does not change the meaning +- the wording can be reused in multiple unrelated domains +- the wording does not name a specific entity or workflow +- the wording stays natural with the same grammatical role across locales; if + callers need different inflection, gender, number, part of speech, or + label-vs-status behavior, do not force one shared key just because English + matches +- if the text names a product entity such as `graph`, `page`, or `server`, use + that product domain instead +- do not use `notification` for feature-specific toast text just because it is + shown via `notification/show!`; the delivery mechanism does not determine + owner + +Examples: + +```clojure +:ui/close +:ui/save +:nav/home +:notification/copied +:search/no-result +:select/default-prompt +:format/bold +:color/red +``` + +### 3. Product Domains + +This is the default class. Most keys should be here. + +Use when the text belongs to a first-class product feature, entity, or workflow. + +The 5 groups below are taxonomy buckets, not a priority order. Do not infer +ownership priority from subsection order. When multiple product domains seem +plausible, use the conflict rules below. + +#### 3.1 Workspace and content domains + +- `graph` +- `file` +- `page` +- `block` +- `node` +- `journal` +- `library` +- `date` +- `editor` +- `reference` +- `property` +- `class` +- `view` +- `query` +- `icon` +- `asset` +- `pdf` +- `flashcard` + +#### 3.2 Data movement and publishing domains + +- `import` +- `export` +- `publish` + +#### 3.3 Customization, AI, and extensibility domains + +- `settings` +- `theme` +- `plugin` +- `ai` +- `youtube` +- `zotero` +- `server` +- `storage` + +`ai` is a reserved owner for future built-in AI feature UI. Current AI-related +settings copy may still live under `settings.ai/*`. + +#### 3.4 Account, cloud, and security domains + +- `account` +- `sync` +- `collaboration` +- `encryption` + +#### 3.5 Support, diagnostics, and lifecycle domains + +- `onboarding` +- `help` +- `bug-report` +- `shell` +- `profiler` +- `updater` +- `deeplink` + +#### Product domain boundaries + +Use this table to resolve common conflicts. + +| Namespace | Owns | Does not own | +|---|---|---| +| `graph` | Graph lifecycle, graph switching, graph-level state, graph visualization entry points | Individual pages, blocks, raw files | +| `file` | Raw file browser, file metadata, file-level errors | Graph switching, page semantics, import workflow | +| `page` | Page metadata and page-level workflows | Active editing mechanics | +| `block` | Block as stored content entity | Active editing session behavior | +| `node` | Generic node vocabulary intentionally shared across page/block/tag/property-like entities | Page-only, block-only, property-only, or class-only workflows | +| `editor` | Active authoring behavior: selection, cursor actions, paste, heading changes, inline creation | Command registry text, page metadata, property schema | +| `journal` | Journal-only behavior | Generic page behavior | +| `library` | Library page copy and library-specific add/remove flows | Generic page search or generic page metadata outside the library feature | +| `date` | Relative-date vocabulary, natural-language date phrases, and date-only labeling/parsing copy | Journal-only workflows, editor command registries | +| `reference` | Backlinks, linked references, block refs, page refs | Generic search or editing text | +| `property` | Property schema, values, choices, dialogs, validation | Query semantics and result presentation | +| `class` | Class/tag schema and class-specific configuration | Generic property schema | +| `query` | Query definition, query source, query inputs, live-query semantics | Table sorting, grouping, row selection | +| `view` | Result presentation, table controls, grouping, sorting, columns, selection, representation modes | Query source semantics or property schema | +| `icon` | Icon picker, emoji/icon browsing, icon-search tabs and counts | Generic search vocabulary or generic select/picker wording outside icon picking | +| `asset` | Attachments and embedded media assets | Generic file browser or export | +| `pdf` | PDF viewer and PDF-specific reading/annotation behavior | Generic asset browsing or generic reference behavior | +| `flashcard` | Card review, card study flow, card-specific review UI | Generic editor actions or generic query/view controls | +| `import` | Import workflows, import source parsing, import options, and import-specific validation/feedback | Export, publish, or generic file browser wording | +| `export` | Export workflows, export format/options, export progress, and export-specific feedback | Import flows, publish lifecycle, or generic file browser wording | +| `publish` | Publish and unpublish flows, publish access settings, and publish status/failure messages | Generic export formats/backups, sync state, or account identity | +| `settings` | Built-in settings shell copy: settings sections, built-in setting labels, descriptions, and feedback about changing built-in settings | Child feature workflows or subsystem state merely rendered inside settings | +| `theme` | Theme selection and theme-specific customization | Generic settings | +| `plugin` | Plugin lifecycle, marketplace, plugin configuration, install/update/remove flows | Built-in settings or theme selection | +| `ai` | Semantic search, embedding model selection, model download states, and other built-in AI feature UI | Generic settings scaffolding or non-AI search vocabulary | +| `youtube` | YouTube-specific embed and timestamp behavior | Generic asset/video wording or generic mobile warnings | +| `zotero` | Built-in Zotero integration, Zotero attachment access, Zotero-linked or imported file affordances, and Zotero-specific defaults | Generic file browser, generic import/export, or plugin lifecycle | +| `server` | Local HTTP API, MCP, local server setup and diagnostics | Cloud sync or account identity | +| `storage` | Local persistence, sqlite/local-db storage errors, recycle UI and recycle storage constraints | Cloud sync lifecycle or file browser UI | +| `account` | Login, identity, plan, membership, billing-facing account state, and account-authentication actions such as resetting the account password | Graph sync state or passwords/keys that gate encrypted data | +| `sync` | Graph sync, storage usage, invitations, remote graph lifecycle | Login identity or password management | +| `collaboration` | Collaborators, participants, collaboration-only permissions and presence | Generic sync storage accounting | +| `encryption` | Passwords, keypairs, encrypted graph access, and key reset flows for encrypted data | Login/billing identity state or account-authentication actions | +| `onboarding` | First-run setup and initial import/graph setup | General settings or ongoing help | +| `help` | Help hub copy: documentation, handbook, shortcut help, and community/support entry points | Child workflows launched from help, such as bug-reporting | +| `bug-report` | Bug reporting, diagnostics, issue helpers | General help navigation | +| `shell` | Built-in shell command runner UI and its workflow | Built-in command descriptions or generic terminal wording outside the shell runner feature | +| `profiler` | Built-in profiling and diagnostics UI for developers or advanced users | Bug reporting copy, generic settings, or runtime performance logs | +| `updater` | App-release update lifecycle: checking, availability, download/install progress, restart/install actions, and updater-specific errors/status | Settings-shell copy, plugin-update UI, or other container/entry-point copy | +| `deeplink` | `logseq://` or deep-link open flows and deep-link resolution errors | Generic navigation labels or route names | + +#### Product domain conflict rules + +When multiple product domains could plausibly own the same text, apply these +rules in order: + +1. Choose the narrowest stable owner that names the feature, entity, + integration, or workflow itself. +2. Container or hub owners own only their own shell copy. They do not own child + feature copy just because it is rendered there. +3. Status, progress, result, validation, and error copy belongs to the subsystem + or workflow emitting that state. +4. Render location, launch point, or current screen does not determine owner. +5. If the same feature text can appear in multiple places, keep one + feature-owned key instead of forking container-specific duplicates. + +Conflict examples: + +```clojure +:settings.general/check-for-updates +:updater/checking-for-updates +:help.shortcuts/title +:bug-report.inspector/title +``` + +More product-domain examples: + +```clojure +:page/delete +:page.validation/name-no-hash +:page.convert/cant-be-block +:editor/remove-heading +:editor.slash/node-reference +:date.nlp/today +:node/built-in-cant-delete-error +:property/default-value +:view.table/sort-ascending +:plugin/install +:settings.editor/show-brackets +:sync/invitation-sent +:encryption/reset-password +:bug-report.inspector/title +``` + +### 4. Shell Surfaces + +Use only when the meaning depends on the shell surface itself. + +| Namespace | Use for | +|---|---| +| `header` | Header-only actions and labels | +| `sidebar.left` | Left sidebar shell affordances | +| `sidebar.right` | Right sidebar shell affordances | +| `context-menu` | Context menu-only affordances | +| `window` | Window chrome actions | + +Use this class when: + +- moving the text to another surface would change its meaning +- the text describes pane controls, sidebar controls, or window chrome +- the text is not reused in another surface or runtime with the same meaning + +Do not use a surface namespace for: + +- feature titles rendered inside a surface +- route or destination labels rendered inside a surface +- domain workflows that happen to be launched from a surface +- text that already appears with the same meaning in another surface; move it to + `ui`, `nav`, or the feature owner + +Examples: + +```clojure +:header/go-back +:sidebar.left/favorites +:sidebar.right/close +:context-menu/set-icon +:window/minimize +``` + +### 5. Platform Runtimes + +Use only when the text exists because one runtime has a unique implementation. + +| Namespace | Use for | +|---|---| +| `mobile` | Mobile-only runtime behavior | +| `electron` | Electron-only runtime behavior | + +Use this class when: + +- the workflow exists only on one runtime +- the wording refers to a native/runtime-only capability + +Examples: + +```clojure +:mobile.tab/graphs +:mobile.settings/version +:electron/new-window +:electron/add-to-dictionary +``` + +## Step 2: Apply the Decision Tree + +Choose the first matching branch and stop. + +1. Is the text owned by an interaction system? Use `command.*`, + `shortcut.category`, `keymap`, or `cmdk`. +2. Is the text a shared primitive reused across unrelated domains? Use `ui`, + `nav`, `notification`, `search`, `select`, `format`, or `color`. +3. Is the text owned by a product domain? Use the matching product domain + namespace. If multiple product domains seem possible, apply `Product domain + conflict rules` and then stop. +4. Is the text owned by a shell surface? Use `header`, `sidebar.left`, + `sidebar.right`, `context-menu`, or `window`. +5. Is the text runtime-exclusive? Use `mobile` or `electron`. + +If none fits, define a new product domain only when the feature has a clear, +long-lived product boundary. Otherwise, keep the nearest existing product domain +and use a more specific leaf. + +## Owner Constraints + +- Do not create roots from implementation modules or component files such as + `outliner`, `content`, or `views`. +- Do not create plural owner roots such as `flashcards` or `views`. Use the + singular owner. +- Do not use implementation acronyms such as `e2ee` when the product-facing + owner is `encryption`. +- Do not use implementation state holders such as `state` as owners. Use the + semantic feature owner such as `journal.default-query/*`. +- Do not use a surface owner for a destination label. Use `nav/*` or the feature + owner. +- Do not use a container or hub owner such as `settings` or `help` for child + feature text just because the feature is rendered there. +- Do not use a validator or storage engine as owner for a domain rule. + Validation copy belongs to the constrained domain. +- Treat a new root with fewer than ~5 plausible near-term keys as a smell, not a + goal. Small roots are acceptable only when they name a first-class product + feature, entity, or integration with a clear independent boundary. +- When keeping a new root, update this taxonomy in the same change so the + standard stays aligned with `src/resources/dicts/en.edn`. +- Not every existing key in `en.edn` is a good naming precedent. Prefer this + standard even when some legacy keys remain unchanged for compatibility. + +Examples: + +```clojure +:reference.filter/title +:help.handbook/title +:page.validation/name-blank +:property.choice/already-exists +:class.validation/extends-cycle +``` + +## Established Namespace Notes + +These namespaces already exist in `en.edn` and are acceptable patterns, but +they have specific reuse guidance. + +| Namespace | Status | Guidance | +|---|---|---| +| `property.built-in`, `class.built-in` | Intentional | Stable built-in schema vocabularies under the `property` and `class` owners. | +| `block.macro`, `property.repeat-recur-unit` | Intentional | Stable representation/enum groups. This pattern is acceptable when the subdomain names a real user-facing concept. | + +## Step 3: Decide Whether a Subdomain Is Needed + +Use a dotted subdomain only for one of these 4 cases. + +### 1. Stable section + +Examples: + +```clojure +:nav.all-pages/title +:settings/account +:settings.editor/show-brackets +``` + +### 2. Stable workflow + +Examples: + +```clojure +:page.delete/confirm-title +:page.delete/warning +:page.delete/success +:plugin.install-from-file/title +:editor.slash/group-basic +``` + +### 3. Stable representation or mode + +Examples: + +```clojure +:view.table/default-title +:view.table/sort-ascending +:mobile.toolbar/undo +:server.status/running +:cmdk.action/open +``` + +### 4. Stable validator, conversion, or settings section + +Examples: + +```clojure +:page.validation/name-no-hash +:page.convert/cant-be-block +:property.choice/already-exists +:settings/account +:help.shortcuts/title +``` + +Rules: + +- use `.validation/` when the message is the direct result of a validation + check, constraint violation, or failed precondition +- use an existing workflow subdomain such as `.convert/` or `.delete/` for + workflow-specific actions, confirmations, and blockers +- do not create a narrower workflow-variant subdomain when an existing workflow + already owns the text +- for built-in settings tab labels, use flat keys such as `:settings/general`; + reserve `:settings.
/*` for copy inside that settings section +- choose compact concept names for subdomains; do not copy a long UI label + phrase into a subdomain when a shorter stable concept name exists +- prefer a flat key when the dotted subdomain would only contain one string for + now +- if an owner already has a flat canonical key for the concept, prefer flat + role-suffixed siblings such as `about-title` or `auto-update-check-feedback` + over introducing a dotted subdomain just to add another role +- a flat leaf with a structured suffix such as `about-title` or `terms-title` is + acceptable when the same owner already needs the base leaf such as `about` or + `terms` for a different role, and creating a dotted singleton namespace would + be worse +- create a new dotted subdomain only when at least one of these is true: + - the namespace already has sibling keys + - the workflow or section clearly needs multiple roles such as `title` + + `desc`, `confirm-title` + `confirm-desc`, or `empty` + `empty-desc` + - the flat leaf would become less readable than the dotted form +- a prefix with 2 to 4 keys is often healthy; the main smell is a singleton + dotted subdomain shape such as `help.about/*` or `graph.delete-local/*` + +Good examples: + +```clojure +:page.convert/tag-to-page-action +:page.convert/tag-to-page-confirm-desc +:property.validation/invalid-name +:help/about-title +:help/about +:graph/delete-local-confirm-desc +``` + +Do not use a subdomain for: + +- component names +- implementation names +- generic layout slices +- words like `main`, `section`, `btn`, or `modal` when they are only + implementation layout terms and not real user-facing modes, surfaces, or + scopes + +Bad shapes for new keys: + +- `:.main/*` +- `:command.command/*` + +## Step 4: Choose the Leaf + +The leaf describes the text's role inside its owner. + +### 1. Canonical labels + +Use a bare subject or action when the text is the canonical label itself. + +Examples: + +```clojure +:ui/save +:page/backlinks +:property/default-value +:plugin/install +``` + +### 2. Structured role suffixes + +Use these suffixes consistently. + +| Suffix | Use for | +|---|---| +| `title` | Panel, section, page, dialog, modal title | +| `desc` | Supporting description | +| `label` | Control, nav, picker, or form label when it is not the title | +| `prompt` | Short picker or flow prompt | +| `placeholder` | Input placeholder | +| `hint` | Short inline help | +| `tip` | Advice or explanatory tip | +| `tooltip` | Hover text | +| `empty` | Empty-state heading or label | +| `empty-desc` | Empty-state description | +| `confirm-title` | Confirmation title | +| `confirm-desc` | Confirmation body | +| `success` | Success feedback | +| `error` | Error feedback | +| `warning` | Warning feedback | +| `feedback` | Neutral or severity-agnostic feedback | +| `count` | Parameterized count text | +| `action` | Action label when a bare verb would be ambiguous | + +Additional rules: + +- use `desc`, not `description`, for the textual role suffix +- this does not ban the literal word `Description` when it is the product term + being named +- use `prompt`, not `message`, for short chooser, picker, or action-sheet + instructions +- use `label` when the text prefixes an inline value such as an ID, date, or + selected item +- do not split one sentence into `*-prefix` and `*-suffix` keys; keep a single + translation entry and insert links, shortcuts, or styled fragments with + placeholders +- use `error` or `warning` for failure feedback; prefer `*-error` or `*-warning` + over `*-failed` +- for success, error, and warning feedback, prefer an action or condition stem + such as `update-success`, `unpublish-error`, or `invalid-date-warning` instead + of past-tense English like `updated` or `failed` +- do not mechanically shorten a leaf just because one word also appears in the + owner; keep the action or condition name when it distinguishes a workflow or + condition inside that owner, for example `:publish/publish-error`, + `:import/zip-import-error`, or `:date/invalid-date-warning` +- use `feedback` when the same toast or callout may appear with varying + severity, or when the severity is incidental to the wording +- use `status` only when the text names a status field, status value, or status + representation in the product model; do not use `status` as a catch-all suffix + for post-action toasts +- when the base concept is already a fixed product term, keep it intact even if + the role suffix repeats an English word, for example `:ui/error-boundary-error` + +Examples: + +```clojure +:help.shortcuts/label +:graph.switch/select-prompt +:nav.all-pages/title +:server.config/port-label +:graph/delete-local-confirm-desc +:plugin/auto-update-check-feedback +:property/update-success +:publish/unpublish-error +:plugin.install-from-file/success +:graph.switch/empty-desc +:page.convert/tag-to-page-action +``` + +Use `error` or `warning` for failure feedback, based on the feedback severity +shown in the UI. Do not use `failure` as a leaf. + +## Reuse Rules + +Do not reuse a key only because the English text matches. + +Reuse a key only when both are the same: + +1. semantic owner +2. textual role + +Examples: + +- toolbar `"Bold"` and command `"Bold"` are different keys +- dialog `"Close"` and window `"Close"` are different keys +- `"Copied!"` may be shared only if it is intentionally a reusable cross-domain + notification +- settings-shell `"Check for updates"` and updater-state `"Checking for + updates"` are different keys because the owner differs + +When two keys are truly duplicates: + +- keep the key that already follows the standard +- deprecate the duplicate key +- do not merge keys when one message carries extra workflow or domain-specific + detail + +## Naming Workflow + +For every new string: + +1. Identify the owner with the decision tree. +2. Choose the root namespace from the owner taxonomy. +3. Add a subdomain only if the string belongs to a stable section, workflow, or + representation. +4. Choose the leaf from the role rules. +5. Search `src/resources/dicts/en.edn` for an existing key with the same owner + and role. +6. Reuse only on exact semantic match. +7. If the new name would create a new root or a singleton dotted subdomain, + justify why convergence would be worse without it. +8. Add the English source text to `src/resources/dicts/en.edn`. +9. After editing dict files, run `bb lang:format-dicts`. + +## Canonical Examples + +| Need | Correct key | +|---|---| +| Generic dialog close button | `:ui/close` | +| Header back button tooltip | `:header/go-back` | +| Window close button | `:window/close` | +| Graph local deletion confirmation body | `:graph/delete-local-confirm-desc` | +| Page name validation error | `:page.validation/name-no-hash` | +| Active editor action `"Remove heading"` | `:editor/remove-heading` | +| Built-in node delete validation | `:node/built-in-cant-delete-error` | +| Property name input placeholder | `:property/name-placeholder` | +| Recycle item restore action | `:storage.recycle/restore` | +| Recycle page deletion metadata | `:storage.recycle/page-deleted-at` | +| Graph switch picker prompt | `:graph.switch/select-prompt` | +| Export copied page data feedback | `:export/page-data-copied` | +| Live query table title | `:view.table/live-query-title` | +| Table sort ascending action | `:view.table/sort-ascending` | +| Plugin install-from-file success | `:plugin.install-from-file/success` | +| Command palette open action | `:cmdk.action/open` | +| Mobile-only graph tab | `:mobile.tab/graphs` | +| Server running status | `:server.status/running` | diff --git a/packages/ui/package.json b/packages/ui/package.json index 4cb90e893f..d492c28eb1 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -7,7 +7,8 @@ "watch:ui:examples": "parcel serve ./examples/index.html", "build:ui:only": "parcel build --target ui", "build:ui": "rm -rf .parcel-cache && yarn build:ui:only", - "postinstall": "yarn build:ui" + "postinstall": "yarn build:ui", + "test": "node --experimental-strip-types --test src/i18n.test.mts" }, "dependencies": { "@hookform/resolvers": "^5.2.2", diff --git a/packages/ui/src/amplify/errors.ts b/packages/ui/src/amplify/errors.ts new file mode 100644 index 0000000000..e8c459fa2a --- /dev/null +++ b/packages/ui/src/amplify/errors.ts @@ -0,0 +1,42 @@ +type AuthErrorLike = { + code?: string + name?: string + message?: string +} + +function getAuthErrorName(error: unknown) { + const authError = (error ?? {}) as AuthErrorLike + return authError.name || authError.code || '' +} + +export function getAuthErrorMessageKey(error: unknown) { + switch (getAuthErrorName(error)) { + case 'UserNotFoundException': + return 'AUTH_ERROR_USER_NOT_FOUND' + case 'NotAuthorizedException': + return 'AUTH_ERROR_INVALID_CREDENTIALS' + case 'UserNotConfirmedException': + return 'AUTH_ERROR_USER_NOT_CONFIRMED' + case 'UsernameExistsException': + return 'AUTH_ERROR_USERNAME_EXISTS' + case 'InvalidPasswordException': + return 'PW_POLICY_TIP' + case 'CodeMismatchException': + return 'AUTH_ERROR_CODE_MISMATCH' + case 'ExpiredCodeException': + return 'AUTH_ERROR_CODE_EXPIRED' + case 'LimitExceededException': + case 'TooManyRequestsException': + return 'AUTH_ERROR_TOO_MANY_REQUESTS' + case 'TooManyFailedAttemptsException': + return 'AUTH_ERROR_TOO_MANY_ATTEMPTS' + case 'CodeDeliveryFailureException': + return 'AUTH_ERROR_CODE_DELIVERY_FAILED' + case 'UserAlreadyAuthenticatedException': + return 'AUTH_ERROR_ALREADY_AUTHENTICATED' + case 'InvalidParameterException': + return 'AUTH_ERROR_INVALID_PARAMETER' + default: + return 'AUTH_ERROR_GENERIC' + } +} diff --git a/packages/ui/src/amplify/lang.ts b/packages/ui/src/amplify/lang.ts index 6d46e32ba3..10d10a2bfe 100644 --- a/packages/ui/src/amplify/lang.ts +++ b/packages/ui/src/amplify/lang.ts @@ -1,5 +1,6 @@ export default { 'en': { + 'login': 'Login', 'signup': 'Sign Up', 'reset-password': 'Reset Password', 'confirm-code': 'Confirm Code', @@ -8,42 +9,106 @@ export default { '2. must have lowercase characters.\n' + '3. must have uppercase characters.\n' + '4. must have symbol characters.', + 'You are already logged in as': 'You are already logged in as', + 'Sign out': 'Sign Out', + 'Bad Response.': 'Bad Response.', + 'Email': 'Email', + 'Password': 'Password', + 'Sign in': 'Sign In', + 'Confirm': 'Confirm', + 'Don\'t have an account?': 'Don\'t have an account?', + 'Sign up': 'Sign Up', + 'or': 'or', + 'Forgot your password?': 'Forgot your password?', + 'Create account': 'Create Account', + 'Username': 'Username', + 'Confirm Password': 'Confirm Password', + 'New Password': 'New Password', + 'By signing up, you agree to our': 'By signing up, you agree to our', + 'Terms of Service': 'Terms of Service', + ' and ': ' and ', + 'Privacy Policy': 'Privacy Policy', + 'Already have an account?': 'Already have an account?', + 'Reset password': 'Reset Password', + 'Enter the code sent to your email': 'Enter the code sent to your email', + 'Send code': 'Send Code', + 'Resend code': 'Resend Code', + 'Back to login': 'Back to Login', + 'Enter your email': 'Enter your email', + 'Invalid Password': 'Invalid Password', + 'Passwords do not match.': 'Passwords do not match.', + 'We have sent a numeric verification code to your email address at': 'We have sent a numeric verification code to your email address at', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Unsupported sign-in step:', + 'AUTH_ERROR_GENERIC': 'Authentication failed. Please try again.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Incorrect email or password.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Your account is not confirmed yet. Please verify it with the code we sent.', + 'AUTH_ERROR_USERNAME_EXISTS': 'This username is already taken.', + 'AUTH_ERROR_USER_NOT_FOUND': 'We could not find an account for that email address.', + 'AUTH_ERROR_CODE_MISMATCH': 'The verification code is incorrect.', + 'AUTH_ERROR_CODE_EXPIRED': 'The verification code has expired. Please request a new one.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Too many requests. Please wait a moment and try again.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Too many failed attempts. Please wait a moment and try again.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'We could not send the verification code. Please try again later.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'You are already signed in.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Some information is invalid. Please check your input and try again.', }, - 'zh-cn': { + 'zh-CN': { 'login': '登录', 'signup': '注册', 'reset-password': '重置密码', 'confirm-code': '确认验证码', + 'CODE_ON_THE_WAY_TIP': '验证码已发送。请输入我们发送给您的验证码以登录。可能需要一分钟才能收到。', 'PW_POLICY_TIP': '1. 密码长度至少8个字符\n' + '2. 密码必须包含小写字母\n' + '3. 密码必须包含大写字母\n' + '4. 密码必须包含特殊字符', - 'CODE_ON_THE_WAY_TIP': '验证码已发送。请输入我们发送给您的验证码以登录。可能需要一分钟才能收到。', 'Sign in to your account': '登录到您的账户', - 'Email': '电子邮箱', + 'You are already logged in as': '您当前已登录为', + 'Sign out': '退出登录', + 'Bad Response.': '请求失败。', + 'Email': '邮箱', 'Password': '密码', 'Sign in': '登录', 'Confirm': '确认', 'Don\'t have an account?': '还没有账户?', 'Sign up': '注册', - 'or': '或 ', + 'or': '或', 'Forgot your password?': '忘记密码?', - 'Create account': '创建您的账户', + 'Create account': '创建账户', 'Username': '用户名', 'Confirm Password': '确认密码', 'New Password': '新密码', - 'By signing up, you agree to our': '注册即表示您同意我们的 ', + 'By signing up, you agree to our': '注册即表示您同意我们的', 'Terms of Service': '服务条款', + ' and ': '和', 'Privacy Policy': '隐私政策', 'Already have an account?': '已经有账户?', - 'Reset password': '重置您的密码', + 'Reset password': '重置密码', 'Enter the code sent to your email': '输入发送到您邮箱的验证码', 'Send code': '发送验证码', 'Resend code': '重新发送验证码', 'Back to login': '返回登录', - 'Enter your email': '请输入您的电子邮箱' + 'Enter your email': '请输入您的邮箱', + 'Invalid Password': '密码无效', + 'Passwords do not match.': '两次输入的密码不一致。', + 'We have sent a numeric verification code to your email address at': '我们已向此邮箱发送数字验证码:', + 'COUNTDOWN_SUFFIX': '秒', + 'Unsupported sign-in step:': '不支持的登录步骤:', + 'AUTH_ERROR_GENERIC': '认证失败,请重试。', + 'AUTH_ERROR_INVALID_CREDENTIALS': '邮箱或密码错误。', + 'AUTH_ERROR_USER_NOT_CONFIRMED': '账户尚未完成验证,请使用我们发送的验证码完成验证。', + 'AUTH_ERROR_USERNAME_EXISTS': '该用户名已被占用。', + 'AUTH_ERROR_USER_NOT_FOUND': '未找到与该邮箱地址对应的账户。', + 'AUTH_ERROR_CODE_MISMATCH': '验证码不正确。', + 'AUTH_ERROR_CODE_EXPIRED': '验证码已过期,请重新获取。', + 'AUTH_ERROR_TOO_MANY_REQUESTS': '请求过于频繁,请稍后再试。', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': '失败次数过多,请稍后再试。', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': '验证码发送失败,请稍后再试。', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': '您已登录。', + 'AUTH_ERROR_INVALID_PARAMETER': '输入信息无效,请检查后重试。' }, - 'zh-hant': { + 'zh-Hant': { 'login': '登入', 'signup': '註冊', 'reset-password': '重置密碼', @@ -54,28 +119,49 @@ export default { '3. 密碼必須包含大寫字母\n' + '4. 密碼必須包含特殊字符', 'Sign in to your account': '登入到您的帳戶', - 'Email': '電子郵箱', + 'You are already logged in as': '您目前已登入為', + 'Sign out': '登出', + 'Bad Response.': '請求失敗。', + 'Email': '電子郵件', 'Password': '密碼', 'Sign in': '登入', 'Confirm': '確認', 'Don\'t have an account?': '還沒有帳戶?', 'Sign up': '註冊', - 'or': '或 ', + 'or': '或', 'Forgot your password?': '忘記密碼?', - 'Create account': '創建您的帳戶', + 'Create account': '建立帳戶', 'Username': '用戶名', 'Confirm Password': '確認密碼', 'New Password': '新密碼', - 'By signing up, you agree to our': '註冊即表示您同意我們的 ', + 'By signing up, you agree to our': '註冊即表示您同意我們的', 'Terms of Service': '服務條款', + ' and ': '和', 'Privacy Policy': '隱私政策', 'Already have an account?': '已經有帳戶?', - 'Reset password': '重置您的密碼', + 'Reset password': '重置密碼', 'Enter the code sent to your email': '輸入發送到您郵箱的驗證碼', 'Send code': '發送驗證碼', 'Resend code': '重新發送驗證碼', 'Back to login': '返回登入', - 'Enter your email': '請輸入您的電子郵箱' + 'Enter your email': '請輸入您的電子郵件', + 'Invalid Password': '密碼無效', + 'Passwords do not match.': '兩次輸入的密碼不一致。', + 'We have sent a numeric verification code to your email address at': '我們已向此電子郵件地址發送數字驗證碼:', + 'COUNTDOWN_SUFFIX': '秒', + 'Unsupported sign-in step:': '不支援的登入步驟:', + 'AUTH_ERROR_GENERIC': '驗證失敗,請再試一次。', + 'AUTH_ERROR_INVALID_CREDENTIALS': '電子郵件或密碼錯誤。', + 'AUTH_ERROR_USER_NOT_CONFIRMED': '帳戶尚未完成驗證,請使用我們發送的驗證碼完成驗證。', + 'AUTH_ERROR_USERNAME_EXISTS': '此用戶名已被使用。', + 'AUTH_ERROR_USER_NOT_FOUND': '找不到與該電子郵件地址對應的帳戶。', + 'AUTH_ERROR_CODE_MISMATCH': '驗證碼不正確。', + 'AUTH_ERROR_CODE_EXPIRED': '驗證碼已過期,請重新取得。', + 'AUTH_ERROR_TOO_MANY_REQUESTS': '請求過於頻繁,請稍後再試。', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': '失敗次數過多,請稍後再試。', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': '無法發送驗證碼,請稍後再試。', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': '您已登入。', + 'AUTH_ERROR_INVALID_PARAMETER': '輸入資訊無效,請檢查後再試。' }, 'ja': { 'login': 'ログイン', @@ -88,27 +174,1128 @@ export default { '3. パスワードには大文字を含める必要があります。\n' + '4. パスワードには記号を含める必要があります。', 'Sign in to your account': 'アカウントにサインイン', + 'You are already logged in as': '現在のログインユーザー', + 'Sign out': 'ログアウト', + 'Bad Response.': 'リクエストに失敗しました。', 'Email': 'メール', 'Password': 'パスワード', 'Sign in': 'サインイン', 'Confirm': '確認', 'Don\'t have an account?': 'アカウントをお持ちでないですか?', 'Sign up': 'サインアップ', - 'or': 'または ', + 'or': 'または', 'Forgot your password?': 'パスワードをお忘れですか?', - 'Create account': 'アカウントを作成する', + 'Create account': 'アカウントを作成', 'Username': 'ユーザー名', 'New Password': '新しいパスワード', 'Confirm Password': 'パスワードを確認する', - 'By signing up, you agree to our': 'サインアップすることで、あなたは私たちの ', + 'By signing up, you agree to our': 'サインアップすると、次の内容に同意したものとみなされます', 'Terms of Service': '利用規約', + ' and ': 'および', 'Privacy Policy': 'プライバシーポリシー', - 'Already have an account? ': 'すでにアカウントをお持ちですか?', + 'Already have an account?': 'すでにアカウントをお持ちですか?', 'Reset password': 'パスワードをリセットする', 'Enter the code sent to your email': 'メールに送信されたコードを入力してください', 'Send code': 'コードを送信', 'Resend code': 'コードを再送信', 'Back to login': 'ログインに戻る', - 'Enter your email': 'メールアドレスを入力してください' + 'Enter your email': 'メールアドレスを入力してください', + 'Invalid Password': '無効なパスワード', + 'Passwords do not match.': 'パスワードが一致しません。', + 'We have sent a numeric verification code to your email address at': '次のメールアドレスに数字の確認コードを送信しました:', + 'COUNTDOWN_SUFFIX': '秒', + 'Unsupported sign-in step:': '未対応のサインイン手順:', + 'AUTH_ERROR_GENERIC': '認証に失敗しました。もう一度お試しください。', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'メールアドレスまたはパスワードが正しくありません。', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'アカウントの確認がまだ完了していません。送信されたコードで確認してください。', + 'AUTH_ERROR_USERNAME_EXISTS': 'このユーザー名は既に使用されています。', + 'AUTH_ERROR_USER_NOT_FOUND': 'そのメールアドレスに対応するアカウントが見つかりません。', + 'AUTH_ERROR_CODE_MISMATCH': '確認コードが正しくありません。', + 'AUTH_ERROR_CODE_EXPIRED': '確認コードの有効期限が切れています。新しいコードをリクエストしてください。', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'リクエストが多すぎます。しばらく待ってからやり直してください。', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': '失敗回数が多すぎます。しばらく待ってからやり直してください。', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': '確認コードを送信できませんでした。しばらくしてからもう一度お試しください。', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'すでにサインインしています。', + 'AUTH_ERROR_INVALID_PARAMETER': '入力内容が正しくありません。確認してからやり直してください。' + }, + 'de': { + 'login': 'Anmelden', + 'signup': 'Registrieren', + 'reset-password': 'Passwort zurücksetzen', + 'confirm-code': 'Code bestätigen', + 'CODE_ON_THE_WAY_TIP': 'Dein Code ist unterwegs. Um dich anzumelden, gib den Code ein, den wir dir gesendet haben. Es kann eine Minute dauern, bis er ankommt.', + 'PW_POLICY_TIP': '1. Mindestens 8 Zeichen.\n' + + '2. Muss Kleinbuchstaben enthalten.\n' + + '3. Muss Großbuchstaben enthalten.\n' + + '4. Muss Sonderzeichen enthalten.', + 'You are already logged in as': 'Du bist bereits angemeldet als', + 'Sign out': 'Abmelden', + 'Bad Response.': 'Fehlerhafte Antwort.', + 'Email': 'E-Mail', + 'Password': 'Passwort', + 'Sign in': 'Anmelden', + 'Confirm': 'Bestätigen', + 'Don\'t have an account?': 'Noch kein Konto?', + 'Sign up': 'Registrieren', + 'or': 'oder', + 'Forgot your password?': 'Passwort vergessen?', + 'Create account': 'Konto erstellen', + 'Username': 'Benutzername', + 'Confirm Password': 'Passwort bestätigen', + 'New Password': 'Neues Passwort', + 'By signing up, you agree to our': 'Mit der Registrierung stimmst du unseren', + 'Terms of Service': 'Nutzungsbedingungen', + ' and ': ' und ', + 'Privacy Policy': 'Datenschutzrichtlinie', + 'Already have an account?': 'Bereits ein Konto?', + 'Reset password': 'Passwort zurücksetzen', + 'Enter the code sent to your email': 'Gib den an deine E-Mail gesendeten Code ein', + 'Send code': 'Code senden', + 'Resend code': 'Code erneut senden', + 'Back to login': 'Zurück zur Anmeldung', + 'Enter your email': 'E-Mail-Adresse eingeben', + 'Invalid Password': 'Ungültiges Passwort', + 'Passwords do not match.': 'Passwörter stimmen nicht überein.', + 'We have sent a numeric verification code to your email address at': 'Wir haben einen numerischen Bestätigungscode an deine E-Mail-Adresse gesendet:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Nicht unterstützter Anmeldeschritt:', + 'AUTH_ERROR_GENERIC': 'Authentifizierung fehlgeschlagen. Bitte versuche es erneut.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Falsche E-Mail oder falsches Passwort.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Dein Konto ist noch nicht bestätigt. Bitte verifiziere es mit dem Code, den wir gesendet haben.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Dieser Benutzername ist bereits vergeben.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Wir konnten kein Konto für diese E-Mail-Adresse finden.', + 'AUTH_ERROR_CODE_MISMATCH': 'Der Verifizierungscode ist falsch.', + 'AUTH_ERROR_CODE_EXPIRED': 'Der Verifizierungscode ist abgelaufen. Bitte fordere einen neuen an.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Zu viele Anfragen. Bitte warte einen Moment und versuche es erneut.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Zu viele fehlgeschlagene Versuche. Bitte warte einen Moment und versuche es erneut.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Wir konnten den Verifizierungscode nicht senden. Bitte versuche es später erneut.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Du bist bereits angemeldet.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Einige Angaben sind ungültig. Bitte überprüfe deine Eingabe und versuche es erneut.' + }, + 'nl': { + 'login': 'Inloggen', + 'signup': 'Registreren', + 'reset-password': 'Wachtwoord resetten', + 'confirm-code': 'Code bevestigen', + 'CODE_ON_THE_WAY_TIP': 'Je code is onderweg. Om in te loggen, voer de code in die we je hebben gestuurd. Het kan een minuutje duren voordat deze aankomt.', + 'PW_POLICY_TIP': '1. Minimaal 8 tekens.\n' + + '2. Moet kleine letters bevatten.\n' + + '3. Moet hoofdletters bevatten.\n' + + '4. Moet speciale tekens bevatten.', + 'You are already logged in as': 'Je bent al ingelogd als', + 'Sign out': 'Uitloggen', + 'Bad Response.': 'Slechte reactie.', + 'Email': 'E-mail', + 'Password': 'Wachtwoord', + 'Sign in': 'Inloggen', + 'Confirm': 'Bevestigen', + 'Don\'t have an account?': 'Nog geen account?', + 'Sign up': 'Registreren', + 'or': 'of', + 'Forgot your password?': 'Wachtwoord vergeten?', + 'Create account': 'Account aanmaken', + 'Username': 'Gebruikersnaam', + 'Confirm Password': 'Wachtwoord bevestigen', + 'New Password': 'Nieuw wachtwoord', + 'By signing up, you agree to our': 'Door je te registreren, ga je akkoord met onze', + 'Terms of Service': 'Servicevoorwaarden', + ' and ': ' en ', + 'Privacy Policy': 'Privacybeleid', + 'Already have an account?': 'Al een account?', + 'Reset password': 'Wachtwoord resetten', + 'Enter the code sent to your email': 'Voer de code in die naar je e-mail is gestuurd', + 'Send code': 'Code versturen', + 'Resend code': 'Code opnieuw versturen', + 'Back to login': 'Terug naar inloggen', + 'Enter your email': 'Voer je e-mailadres in', + 'Invalid Password': 'Ongeldig wachtwoord', + 'Passwords do not match.': 'Wachtwoorden komen niet overeen.', + 'We have sent a numeric verification code to your email address at': 'We hebben een numerieke verificatiecode gestuurd naar je e-mailadres:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Niet-ondersteunde inlogstap:', + 'AUTH_ERROR_GENERIC': 'Authenticatie mislukt. Probeer het opnieuw.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Onjuist e-mailadres of wachtwoord.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Je account is nog niet bevestigd. Verifieer het met de code die we hebben gestuurd.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Deze gebruikersnaam is al in gebruik.', + 'AUTH_ERROR_USER_NOT_FOUND': 'We konden geen account vinden voor dat e-mailadres.', + 'AUTH_ERROR_CODE_MISMATCH': 'De verificatiecode is onjuist.', + 'AUTH_ERROR_CODE_EXPIRED': 'De verificatiecode is verlopen. Vraag een nieuwe aan.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Te veel verzoeken. Wacht even en probeer het opnieuw.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Te veel mislukte pogingen. Wacht even en probeer het opnieuw.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'We konden de verificatiecode niet versturen. Probeer het later opnieuw.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Je bent al ingelogd.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Bepaalde informatie is ongeldig. Controleer je invoer en probeer het opnieuw.' + }, + 'fr': { + 'login': 'Connexion', + 'signup': 'Inscription', + 'reset-password': 'Réinitialiser le mot de passe', + 'confirm-code': 'Confirmer le code', + 'CODE_ON_THE_WAY_TIP': 'Votre code est en route. Pour vous connecter, saisissez le code que nous vous avons envoyé. Il peut mettre une minute à arriver.', + 'PW_POLICY_TIP': '1. Au moins 8 caractères.\n' + + '2. Doit contenir des lettres minuscules.\n' + + '3. Doit contenir des lettres majuscules.\n' + + '4. Doit contenir des caractères spéciaux.', + 'You are already logged in as': 'Vous êtes déjà connecté en tant que', + 'Sign out': 'Se déconnecter', + 'Bad Response.': 'Mauvaise réponse.', + 'Email': 'E-mail', + 'Password': 'Mot de passe', + 'Sign in': 'Se connecter', + 'Confirm': 'Confirmer', + 'Don\'t have an account?': 'Pas encore de compte ?', + 'Sign up': 'S\'inscrire', + 'or': 'ou', + 'Forgot your password?': 'Mot de passe oublié ?', + 'Create account': 'Créer un compte', + 'Username': 'Nom d\'utilisateur', + 'Confirm Password': 'Confirmer le mot de passe', + 'New Password': 'Nouveau mot de passe', + 'By signing up, you agree to our': 'En vous inscrivant, vous acceptez nos', + 'Terms of Service': 'Conditions d\'utilisation', + ' and ': ' et ', + 'Privacy Policy': 'Politique de confidentialité', + 'Already have an account?': 'Vous avez déjà un compte ?', + 'Reset password': 'Réinitialiser le mot de passe', + 'Enter the code sent to your email': 'Entrez le code envoyé à votre e-mail', + 'Send code': 'Envoyer le code', + 'Resend code': 'Renvoyer le code', + 'Back to login': 'Retour à la connexion', + 'Enter your email': 'Entrez votre e-mail', + 'Invalid Password': 'Mot de passe invalide', + 'Passwords do not match.': 'Les mots de passe ne correspondent pas.', + 'We have sent a numeric verification code to your email address at': 'Nous avons envoyé un code de vérification numérique à votre adresse e-mail :', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Étape de connexion non prise en charge :', + 'AUTH_ERROR_GENERIC': 'Échec de l\'authentification. Veuillez réessayer.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'E-mail ou mot de passe incorrect.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Votre compte n\'est pas encore confirmé. Veuillez le vérifier avec le code que nous avons envoyé.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Ce nom d\'utilisateur est déjà pris.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Nous n\'avons pas pu trouver de compte pour cette adresse e-mail.', + 'AUTH_ERROR_CODE_MISMATCH': 'Le code de vérification est incorrect.', + 'AUTH_ERROR_CODE_EXPIRED': 'Le code de vérification a expiré. Veuillez en demander un nouveau.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Trop de requêtes. Veuillez patienter un moment et réessayer.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Trop de tentatives échouées. Veuillez patienter un moment et réessayer.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Nous n\'avons pas pu envoyer le code de vérification. Veuillez réessayer plus tard.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Vous êtes déjà connecté.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Certaines informations sont invalides. Veuillez vérifier votre saisie et réessayer.' + }, + 'af': { + 'login': 'Aanmeld', + 'signup': 'Registreer', + 'reset-password': 'Stel wagwoord terug', + 'confirm-code': 'Bevestig kode', + 'CODE_ON_THE_WAY_TIP': 'Jou kode is op pad. Om aan te meld, voer die kode in wat ons vir jou gestuur het. Dit kan \'n minuut neem om te arriveer.', + 'PW_POLICY_TIP': '1. Ten minste 8 karakters.\n' + + '2. Moet kleinletters bevat.\n' + + '3. Moet hoofletter bevat.\n' + + '4. Moet simboolkarakters bevat.', + 'You are already logged in as': 'Jy is reeds aangemeld as', + 'Sign out': 'Teken uit', + 'Bad Response.': 'Slegte respons.', + 'Email': 'E-pos', + 'Password': 'Wagwoord', + 'Sign in': 'Teken in', + 'Confirm': 'Bevestig', + 'Don\'t have an account?': 'Het jy nie \'n rekening nie?', + 'Sign up': 'Registreer', + 'or': 'of', + 'Forgot your password?': 'Wagwoord vergeet?', + 'Create account': 'Skep rekening', + 'Username': 'Gebruikersnaam', + 'Confirm Password': 'Bevestig wagwoord', + 'New Password': 'Nuwe wagwoord', + 'By signing up, you agree to our': 'Deur te registreer, stem jy in tot ons', + 'Terms of Service': 'Diensvoorwaardes', + ' and ': ' en ', + 'Privacy Policy': 'Privaatheidsbeleid', + 'Already have an account?': 'Het jy reeds \'n rekening?', + 'Reset password': 'Stel wagwoord terug', + 'Enter the code sent to your email': 'Voer die kode in wat na jou e-pos gestuur is', + 'Send code': 'Stuur kode', + 'Resend code': 'Stuur kode weer', + 'Back to login': 'Terug na aanmelding', + 'Enter your email': 'Voer jou e-posadres in', + 'Invalid Password': 'Ongeldige wagwoord', + 'Passwords do not match.': 'Wagwoorde stem nie ooreen nie.', + 'We have sent a numeric verification code to your email address at': 'Ons het \'n numeriese verifikasiekode na jou e-posadres gestuur:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Nie-ondersteunde aanmeldstap:', + 'AUTH_ERROR_GENERIC': 'Verifikasie het misluk. Probeer asseblief weer.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Verkeerde e-pos of wagwoord.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Jou rekening is nog nie bevestig nie. Verifieer dit met die kode wat ons gestuur het.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Hierdie gebruikersnaam is reeds geneem.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Ons kon nie \'n rekening vind vir daardie e-posadres nie.', + 'AUTH_ERROR_CODE_MISMATCH': 'Die verifikasiekode is verkeerd.', + 'AUTH_ERROR_CODE_EXPIRED': 'Die verifikasiekode het verstryk. Versoek asseblief \'n nuwe een.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Te veel versoeke. Wag asseblief \'n oomblik en probeer weer.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Te veel mislukte pogings. Wag asseblief \'n oomblik en probeer weer.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Ons kon nie die verifikasiekode stuur nie. Probeer asseblief later weer.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Jy is reeds aangemeld.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Sommige inligting is ongeldig. Kontroleer jou invoer en probeer weer.' + }, + 'ca': { + 'login': 'Inicia sessió', + 'signup': 'Registra\'t', + 'reset-password': 'Restableix la contrasenya', + 'confirm-code': 'Confirma el codi', + 'CODE_ON_THE_WAY_TIP': 'El teu codi està en camí. Per iniciar sessió, introdueix el codi que t\'hem enviat. Pot trigar un minut a arribar.', + 'PW_POLICY_TIP': '1. Almenys 8 caràcters.\n' + + '2. Ha de contenir lletres minúscules.\n' + + '3. Ha de contenir lletres majúscules.\n' + + '4. Ha de contenir caràcters especials.', + 'You are already logged in as': 'Ja has iniciat sessió com a', + 'Sign out': 'Tanca la sessió', + 'Bad Response.': 'Resposta incorrecta.', + 'Email': 'Correu electrònic', + 'Password': 'Contrasenya', + 'Sign in': 'Inicia sessió', + 'Confirm': 'Confirma', + 'Don\'t have an account?': 'No tens compte?', + 'Sign up': 'Registra\'t', + 'or': 'o', + 'Forgot your password?': 'Has oblidat la contrasenya?', + 'Create account': 'Crea un compte', + 'Username': 'Nom d\'usuari', + 'Confirm Password': 'Confirma la contrasenya', + 'New Password': 'Nova contrasenya', + 'By signing up, you agree to our': 'En registrar-te, acceptes els nostres', + 'Terms of Service': 'Termes de servei', + ' and ': ' i ', + 'Privacy Policy': 'Política de privadesa', + 'Already have an account?': 'Ja tens compte?', + 'Reset password': 'Restableix la contrasenya', + 'Enter the code sent to your email': 'Introdueix el codi enviat al teu correu electrònic', + 'Send code': 'Envia el codi', + 'Resend code': 'Torna a enviar el codi', + 'Back to login': 'Torna a l\'inici de sessió', + 'Enter your email': 'Introdueix el teu correu electrònic', + 'Invalid Password': 'Contrasenya no vàlida', + 'Passwords do not match.': 'Les contrasenyes no coincideixen.', + 'We have sent a numeric verification code to your email address at': 'Hem enviat un codi de verificació numèric a la teva adreça de correu electrònic:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Pas d\'inici de sessió no admès:', + 'AUTH_ERROR_GENERIC': 'L\'autenticació ha fallat. Torna-ho a intentar.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Correu electrònic o contrasenya incorrectes.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'El teu compte encara no s\'ha confirmat. Verifica\'l amb el codi que t\'hem enviat.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Aquest nom d\'usuari ja està en ús.', + 'AUTH_ERROR_USER_NOT_FOUND': 'No hem pogut trobar un compte per a aquesta adreça de correu electrònic.', + 'AUTH_ERROR_CODE_MISMATCH': 'El codi de verificació és incorrecte.', + 'AUTH_ERROR_CODE_EXPIRED': 'El codi de verificació ha caducat. Sol·licita\'n un de nou.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Massa sol·licituds. Espera un moment i torna-ho a intentar.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Massa intents fallits. Espera un moment i torna-ho a intentar.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'No hem pogut enviar el codi de verificació. Torna-ho a intentar més tard.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Ja has iniciat sessió.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Alguna informació no és vàlida. Comprova la teva entrada i torna-ho a intentar.' + }, + 'es': { + 'login': 'Iniciar sesión', + 'signup': 'Registrarse', + 'reset-password': 'Restablecer contraseña', + 'confirm-code': 'Confirmar código', + 'CODE_ON_THE_WAY_TIP': 'Tu código está en camino. Para iniciar sesión, ingresa el código que te enviamos. Puede tardar un minuto en llegar.', + 'PW_POLICY_TIP': '1. Al menos 8 caracteres.\n' + + '2. Debe contener letras minúsculas.\n' + + '3. Debe contener letras mayúsculas.\n' + + '4. Debe contener caracteres especiales.', + 'You are already logged in as': 'Ya has iniciado sesión como', + 'Sign out': 'Cerrar sesión', + 'Bad Response.': 'Respuesta incorrecta.', + 'Email': 'Correo electrónico', + 'Password': 'Contraseña', + 'Sign in': 'Iniciar sesión', + 'Confirm': 'Confirmar', + 'Don\'t have an account?': '¿No tienes cuenta?', + 'Sign up': 'Registrarse', + 'or': 'o', + 'Forgot your password?': '¿Olvidaste tu contraseña?', + 'Create account': 'Crear cuenta', + 'Username': 'Nombre de usuario', + 'Confirm Password': 'Confirmar contraseña', + 'New Password': 'Nueva contraseña', + 'By signing up, you agree to our': 'Al registrarte, aceptas nuestros', + 'Terms of Service': 'Términos de servicio', + ' and ': ' y ', + 'Privacy Policy': 'Política de privacidad', + 'Already have an account?': '¿Ya tienes cuenta?', + 'Reset password': 'Restablecer contraseña', + 'Enter the code sent to your email': 'Ingresa el código enviado a tu correo electrónico', + 'Send code': 'Enviar código', + 'Resend code': 'Reenviar código', + 'Back to login': 'Volver al inicio de sesión', + 'Enter your email': 'Ingresa tu correo electrónico', + 'Invalid Password': 'Contraseña no válida', + 'Passwords do not match.': 'Las contraseñas no coinciden.', + 'We have sent a numeric verification code to your email address at': 'Hemos enviado un código de verificación numérico a tu dirección de correo electrónico:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Paso de inicio de sesión no compatible:', + 'AUTH_ERROR_GENERIC': 'La autenticación falló. Por favor, inténtalo de nuevo.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Correo electrónico o contraseña incorrectos.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Tu cuenta no está confirmada aún. Verifícala con el código que te enviamos.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Este nombre de usuario ya está en uso.', + 'AUTH_ERROR_USER_NOT_FOUND': 'No pudimos encontrar una cuenta para esa dirección de correo electrónico.', + 'AUTH_ERROR_CODE_MISMATCH': 'El código de verificación es incorrecto.', + 'AUTH_ERROR_CODE_EXPIRED': 'El código de verificación ha expirado. Por favor, solicita uno nuevo.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Demasiadas solicitudes. Por favor, espera un momento e inténtalo de nuevo.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Demasiados intentos fallidos. Por favor, espera un momento e inténtalo de nuevo.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'No pudimos enviar el código de verificación. Por favor, inténtalo más tarde.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Ya has iniciado sesión.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Alguna información no es válida. Por favor, revisa tu entrada e inténtalo de nuevo.' + }, + 'nb-NO': { + 'login': 'Logg inn', + 'signup': 'Registrer deg', + 'reset-password': 'Tilbakestill passord', + 'confirm-code': 'Bekreft kode', + 'CODE_ON_THE_WAY_TIP': 'Koden din er på vei. For å logge inn, skriv inn koden vi sendte deg. Det kan ta ett minutt å komme frem.', + 'PW_POLICY_TIP': '1. Minst 8 tegn.\n' + + '2. Må inneholde små bokstaver.\n' + + '3. Må inneholde store bokstaver.\n' + + '4. Må inneholde symboler.', + 'You are already logged in as': 'Du er allerede logget inn som', + 'Sign out': 'Logg ut', + 'Bad Response.': 'Dårlig svar.', + 'Email': 'E-post', + 'Password': 'Passord', + 'Sign in': 'Logg inn', + 'Confirm': 'Bekreft', + 'Don\'t have an account?': 'Har du ikke en konto?', + 'Sign up': 'Registrer deg', + 'or': 'eller', + 'Forgot your password?': 'Glemt passordet?', + 'Create account': 'Opprett konto', + 'Username': 'Brukernavn', + 'Confirm Password': 'Bekreft passord', + 'New Password': 'Nytt passord', + 'By signing up, you agree to our': 'Ved å registrere deg godtar du våre', + 'Terms of Service': 'Vilkår for bruk', + ' and ': ' og ', + 'Privacy Policy': 'Personvernregler', + 'Already have an account?': 'Har du allerede en konto?', + 'Reset password': 'Tilbakestill passord', + 'Enter the code sent to your email': 'Skriv inn koden som ble sendt til e-posten din', + 'Send code': 'Send kode', + 'Resend code': 'Send kode på nytt', + 'Back to login': 'Tilbake til innlogging', + 'Enter your email': 'Skriv inn e-postadressen din', + 'Invalid Password': 'Ugyldig passord', + 'Passwords do not match.': 'Passordene stemmer ikke overens.', + 'We have sent a numeric verification code to your email address at': 'Vi har sendt en numerisk bekreftelseskode til e-postadressen din:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Ikke-støttet innloggingstrinn:', + 'AUTH_ERROR_GENERIC': 'Autentisering mislyktes. Prøv igjen.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Feil e-post eller passord.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Kontoen din er ikke bekreftet ennå. Bekreft den med koden vi sendte.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Dette brukernavnet er allerede tatt.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Vi fant ingen konto for den e-postadressen.', + 'AUTH_ERROR_CODE_MISMATCH': 'Bekreftelseskoden er feil.', + 'AUTH_ERROR_CODE_EXPIRED': 'Bekreftelseskoden er utløpt. Be om en ny.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'For mange forespørsler. Vent litt og prøv igjen.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'For mange mislykkede forsøk. Vent litt og prøv igjen.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Vi kunne ikke sende bekreftelseskoden. Prøv igjen senere.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Du er allerede logget inn.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Noe informasjon er ugyldig. Sjekk inndataene dine og prøv igjen.' + }, + 'pt-BR': { + 'login': 'Entrar', + 'signup': 'Cadastrar', + 'reset-password': 'Redefinir senha', + 'confirm-code': 'Confirmar código', + 'CODE_ON_THE_WAY_TIP': 'Seu código está a caminho. Para fazer login, insira o código que enviamos para você. Pode levar um minuto para chegar.', + 'PW_POLICY_TIP': '1. Pelo menos 8 caracteres.\n' + + '2. Deve conter letras minúsculas.\n' + + '3. Deve conter letras maiúsculas.\n' + + '4. Deve conter caracteres especiais.', + 'You are already logged in as': 'Você já está conectado como', + 'Sign out': 'Sair', + 'Bad Response.': 'Resposta inválida.', + 'Email': 'E-mail', + 'Password': 'Senha', + 'Sign in': 'Entrar', + 'Confirm': 'Confirmar', + 'Don\'t have an account?': 'Não tem uma conta?', + 'Sign up': 'Cadastrar', + 'or': 'ou', + 'Forgot your password?': 'Esqueceu sua senha?', + 'Create account': 'Criar conta', + 'Username': 'Nome de usuário', + 'Confirm Password': 'Confirmar senha', + 'New Password': 'Nova senha', + 'By signing up, you agree to our': 'Ao se cadastrar, você concorda com nossos', + 'Terms of Service': 'Termos de serviço', + ' and ': ' e ', + 'Privacy Policy': 'Política de privacidade', + 'Already have an account?': 'Já tem uma conta?', + 'Reset password': 'Redefinir senha', + 'Enter the code sent to your email': 'Insira o código enviado para seu e-mail', + 'Send code': 'Enviar código', + 'Resend code': 'Reenviar código', + 'Back to login': 'Voltar ao login', + 'Enter your email': 'Insira seu e-mail', + 'Invalid Password': 'Senha inválida', + 'Passwords do not match.': 'As senhas não correspondem.', + 'We have sent a numeric verification code to your email address at': 'Enviamos um código de verificação numérico para seu endereço de e-mail:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Etapa de login não suportada:', + 'AUTH_ERROR_GENERIC': 'Falha na autenticação. Por favor, tente novamente.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'E-mail ou senha incorretos.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Sua conta ainda não foi confirmada. Por favor, verifique-a com o código que enviamos.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Este nome de usuário já está em uso.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Não encontramos uma conta para esse endereço de e-mail.', + 'AUTH_ERROR_CODE_MISMATCH': 'O código de verificação está incorreto.', + 'AUTH_ERROR_CODE_EXPIRED': 'O código de verificação expirou. Por favor, solicite um novo.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Muitas solicitações. Por favor, aguarde um momento e tente novamente.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Muitas tentativas malsucedidas. Por favor, aguarde um momento e tente novamente.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Não conseguimos enviar o código de verificação. Por favor, tente novamente mais tarde.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Você já está conectado.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Algumas informações são inválidas. Por favor, verifique sua entrada e tente novamente.' + }, + 'pt-PT': { + 'login': 'Iniciar sessão', + 'signup': 'Registar', + 'reset-password': 'Repor palavra-passe', + 'confirm-code': 'Confirmar código', + 'CODE_ON_THE_WAY_TIP': 'O seu código está a caminho. Para iniciar sessão, introduza o código que lhe enviámos. Pode demorar um minuto a chegar.', + 'PW_POLICY_TIP': '1. Pelo menos 8 caracteres.\n' + + '2. Deve conter letras minúsculas.\n' + + '3. Deve conter letras maiúsculas.\n' + + '4. Deve conter caracteres especiais.', + 'You are already logged in as': 'Já iniciou sessão como', + 'Sign out': 'Terminar sessão', + 'Bad Response.': 'Resposta inválida.', + 'Email': 'E-mail', + 'Password': 'Palavra-passe', + 'Sign in': 'Iniciar sessão', + 'Confirm': 'Confirmar', + 'Don\'t have an account?': 'Não tem conta?', + 'Sign up': 'Registar', + 'or': 'ou', + 'Forgot your password?': 'Esqueceu a palavra-passe?', + 'Create account': 'Criar conta', + 'Username': 'Nome de utilizador', + 'Confirm Password': 'Confirmar palavra-passe', + 'New Password': 'Nova palavra-passe', + 'By signing up, you agree to our': 'Ao registar-se, concorda com os nossos', + 'Terms of Service': 'Termos de serviço', + ' and ': ' e ', + 'Privacy Policy': 'Política de privacidade', + 'Already have an account?': 'Já tem conta?', + 'Reset password': 'Repor palavra-passe', + 'Enter the code sent to your email': 'Introduza o código enviado para o seu e-mail', + 'Send code': 'Enviar código', + 'Resend code': 'Reenviar código', + 'Back to login': 'Voltar ao início de sessão', + 'Enter your email': 'Introduza o seu e-mail', + 'Invalid Password': 'Palavra-passe inválida', + 'Passwords do not match.': 'As palavras-passe não coincidem.', + 'We have sent a numeric verification code to your email address at': 'Enviámos um código de verificação numérico para o seu endereço de e-mail:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Passo de início de sessão não suportado:', + 'AUTH_ERROR_GENERIC': 'Falha na autenticação. Por favor, tente novamente.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'E-mail ou palavra-passe incorretos.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'A sua conta ainda não foi confirmada. Por favor, verifique-a com o código que enviámos.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Este nome de utilizador já está em uso.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Não encontrámos nenhuma conta para esse endereço de e-mail.', + 'AUTH_ERROR_CODE_MISMATCH': 'O código de verificação está incorreto.', + 'AUTH_ERROR_CODE_EXPIRED': 'O código de verificação expirou. Por favor, solicite um novo.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Demasiadas solicitações. Por favor, aguarde um momento e tente novamente.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Demasiadas tentativas falhadas. Por favor, aguarde um momento e tente novamente.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Não conseguimos enviar o código de verificação. Por favor, tente novamente mais tarde.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Já tem sessão iniciada.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Algumas informações são inválidas. Por favor, verifique a sua entrada e tente novamente.' + }, + 'ru': { + 'login': 'Войти', + 'signup': 'Зарегистрироваться', + 'reset-password': 'Сбросить пароль', + 'confirm-code': 'Подтвердить код', + 'CODE_ON_THE_WAY_TIP': 'Ваш код в пути. Чтобы войти, введите код, который мы вам отправили. Это может занять минуту.', + 'PW_POLICY_TIP': '1. Не менее 8 символов.\n' + + '2. Должен содержать строчные буквы.\n' + + '3. Должен содержать заглавные буквы.\n' + + '4. Должен содержать специальные символы.', + 'You are already logged in as': 'Вы уже вошли как', + 'Sign out': 'Выйти', + 'Bad Response.': 'Некорректный ответ.', + 'Email': 'Эл. почта', + 'Password': 'Пароль', + 'Sign in': 'Войти', + 'Confirm': 'Подтвердить', + 'Don\'t have an account?': 'Нет аккаунта?', + 'Sign up': 'Зарегистрироваться', + 'or': 'или', + 'Forgot your password?': 'Забыли пароль?', + 'Create account': 'Создать аккаунт', + 'Username': 'Имя пользователя', + 'Confirm Password': 'Подтвердить пароль', + 'New Password': 'Новый пароль', + 'By signing up, you agree to our': 'Регистрируясь, вы соглашаетесь с нашими', + 'Terms of Service': 'Условиями обслуживания', + ' and ': ' и ', + 'Privacy Policy': 'Политикой конфиденциальности', + 'Already have an account?': 'Уже есть аккаунт?', + 'Reset password': 'Сбросить пароль', + 'Enter the code sent to your email': 'Введите код, отправленный на вашу почту', + 'Send code': 'Отправить код', + 'Resend code': 'Отправить код повторно', + 'Back to login': 'Вернуться к входу', + 'Enter your email': 'Введите адрес эл. почты', + 'Invalid Password': 'Неверный пароль', + 'Passwords do not match.': 'Пароли не совпадают.', + 'We have sent a numeric verification code to your email address at': 'Мы отправили числовой код подтверждения на ваш адрес эл. почты:', + 'COUNTDOWN_SUFFIX': 'с', + 'Unsupported sign-in step:': 'Неподдерживаемый шаг входа:', + 'AUTH_ERROR_GENERIC': 'Ошибка аутентификации. Пожалуйста, попробуйте снова.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Неверный адрес эл. почты или пароль.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Ваш аккаунт ещё не подтверждён. Пожалуйста, подтвердите его с помощью кода, который мы отправили.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Это имя пользователя уже занято.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Нам не удалось найти аккаунт с таким адресом эл. почты.', + 'AUTH_ERROR_CODE_MISMATCH': 'Код подтверждения неверен.', + 'AUTH_ERROR_CODE_EXPIRED': 'Срок действия кода подтверждения истёк. Пожалуйста, запросите новый.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Слишком много запросов. Пожалуйста, подождите немного и попробуйте снова.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Слишком много неудачных попыток. Пожалуйста, подождите немного и попробуйте снова.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Нам не удалось отправить код подтверждения. Пожалуйста, попробуйте позже.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Вы уже вошли в систему.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Некоторые данные неверны. Пожалуйста, проверьте введённые данные и попробуйте снова.' + }, + 'it': { + 'login': 'Accedi', + 'signup': 'Registrati', + 'reset-password': 'Reimposta la password', + 'confirm-code': 'Conferma il codice', + 'CODE_ON_THE_WAY_TIP': 'Il tuo codice è in arrivo. Per accedere, inserisci il codice che ti abbiamo inviato. Potrebbe impiegare un minuto ad arrivare.', + 'PW_POLICY_TIP': '1. Almeno 8 caratteri.\n' + + '2. Deve contenere lettere minuscole.\n' + + '3. Deve contenere lettere maiuscole.\n' + + '4. Deve contenere caratteri speciali.', + 'You are already logged in as': 'Sei già connesso come', + 'Sign out': 'Disconnetti', + 'Bad Response.': 'Risposta errata.', + 'Email': 'E-mail', + 'Password': 'Password', + 'Sign in': 'Accedi', + 'Confirm': 'Conferma', + 'Don\'t have an account?': 'Non hai un account?', + 'Sign up': 'Registrati', + 'or': 'o', + 'Forgot your password?': 'Hai dimenticato la password?', + 'Create account': 'Crea account', + 'Username': 'Nome utente', + 'Confirm Password': 'Conferma password', + 'New Password': 'Nuova password', + 'By signing up, you agree to our': 'Registrandoti, accetti i nostri', + 'Terms of Service': 'Termini di servizio', + ' and ': ' e ', + 'Privacy Policy': 'Informativa sulla privacy', + 'Already have an account?': 'Hai già un account?', + 'Reset password': 'Reimposta la password', + 'Enter the code sent to your email': 'Inserisci il codice inviato alla tua e-mail', + 'Send code': 'Invia codice', + 'Resend code': 'Invia di nuovo il codice', + 'Back to login': 'Torna al login', + 'Enter your email': 'Inserisci la tua e-mail', + 'Invalid Password': 'Password non valida', + 'Passwords do not match.': 'Le password non corrispondono.', + 'We have sent a numeric verification code to your email address at': 'Abbiamo inviato un codice di verifica numerico al tuo indirizzo e-mail:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Fase di accesso non supportata:', + 'AUTH_ERROR_GENERIC': 'Autenticazione non riuscita. Riprova.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'E-mail o password errati.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Il tuo account non è ancora confermato. Verificalo con il codice che abbiamo inviato.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Questo nome utente è già in uso.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Non abbiamo trovato un account per quell\'indirizzo e-mail.', + 'AUTH_ERROR_CODE_MISMATCH': 'Il codice di verifica non è corretto.', + 'AUTH_ERROR_CODE_EXPIRED': 'Il codice di verifica è scaduto. Richiedine uno nuovo.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Troppe richieste. Attendi un momento e riprova.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Troppi tentativi falliti. Attendi un momento e riprova.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Non siamo riusciti a inviare il codice di verifica. Riprova più tardi.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Hai già effettuato l\'accesso.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Alcune informazioni non sono valide. Controlla l\'inserimento e riprova.' + }, + 'tr': { + 'login': 'Giriş yap', + 'signup': 'Kayıt ol', + 'reset-password': 'Şifreyi sıfırla', + 'confirm-code': 'Kodu onayla', + 'CODE_ON_THE_WAY_TIP': 'Kodunuz yolda. Giriş yapmak için size gönderdiğimiz kodu girin. Gelmesi bir dakika sürebilir.', + 'PW_POLICY_TIP': '1. En az 8 karakter.\n' + + '2. Küçük harf içermelidir.\n' + + '3. Büyük harf içermelidir.\n' + + '4. Sembol karakterleri içermelidir.', + 'You are already logged in as': 'Zaten şu kullanıcı olarak giriş yapıldı:', + 'Sign out': 'Çıkış yap', + 'Bad Response.': 'Hatalı yanıt.', + 'Email': 'E-posta', + 'Password': 'Şifre', + 'Sign in': 'Giriş yap', + 'Confirm': 'Onayla', + 'Don\'t have an account?': 'Hesabınız yok mu?', + 'Sign up': 'Kayıt ol', + 'or': 'veya', + 'Forgot your password?': 'Şifrenizi mi unuttunuz?', + 'Create account': 'Hesap oluştur', + 'Username': 'Kullanıcı adı', + 'Confirm Password': 'Şifreyi onayla', + 'New Password': 'Yeni şifre', + 'By signing up, you agree to our': 'Kayıt olarak', + 'Terms of Service': 'Kullanım Koşullarımızı', + ' and ': ' ve ', + 'Privacy Policy': 'Gizlilik Politikamızı', + 'Already have an account?': 'Zaten bir hesabınız var mı?', + 'Reset password': 'Şifreyi sıfırla', + 'Enter the code sent to your email': 'E-postanıza gönderilen kodu girin', + 'Send code': 'Kodu gönder', + 'Resend code': 'Kodu yeniden gönder', + 'Back to login': 'Girişe geri dön', + 'Enter your email': 'E-posta adresinizi girin', + 'Invalid Password': 'Geçersiz şifre', + 'Passwords do not match.': 'Şifreler eşleşmiyor.', + 'We have sent a numeric verification code to your email address at': 'E-posta adresinize sayısal bir doğrulama kodu gönderdik:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Desteklenmeyen giriş adımı:', + 'AUTH_ERROR_GENERIC': 'Kimlik doğrulama başarısız oldu. Lütfen tekrar deneyin.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Yanlış e-posta veya şifre.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Hesabınız henüz onaylanmadı. Lütfen gönderdiğimiz kodla doğrulayın.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Bu kullanıcı adı zaten alınmış.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Bu e-posta adresi için bir hesap bulamadık.', + 'AUTH_ERROR_CODE_MISMATCH': 'Doğrulama kodu yanlış.', + 'AUTH_ERROR_CODE_EXPIRED': 'Doğrulama kodunun süresi doldu. Lütfen yeni bir tane isteyin.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Çok fazla istek. Lütfen bir süre bekleyin ve tekrar deneyin.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Çok fazla başarısız deneme. Lütfen bir süre bekleyin ve tekrar deneyin.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Doğrulama kodunu gönderemedik. Lütfen daha sonra tekrar deneyin.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Zaten giriş yapmış durumdasınız.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Bazı bilgiler geçersiz. Lütfen girdinizi kontrol edin ve tekrar deneyin.' + }, + 'ko': { + 'login': '로그인', + 'signup': '회원가입', + 'reset-password': '비밀번호 재설정', + 'confirm-code': '코드 확인', + 'CODE_ON_THE_WAY_TIP': '코드가 전송 중입니다. 로그인하려면 보내드린 코드를 입력하세요. 도착하는 데 약 1분이 걸릴 수 있습니다.', + 'PW_POLICY_TIP': '1. 최소 8자 이상.\n' + + '2. 소문자를 포함해야 합니다.\n' + + '3. 대문자를 포함해야 합니다.\n' + + '4. 특수 문자를 포함해야 합니다.', + 'You are already logged in as': '현재 로그인된 계정:', + 'Sign out': '로그아웃', + 'Bad Response.': '잘못된 응답입니다.', + 'Email': '이메일', + 'Password': '비밀번호', + 'Sign in': '로그인', + 'Confirm': '확인', + 'Don\'t have an account?': '계정이 없으신가요?', + 'Sign up': '회원가입', + 'or': '또는', + 'Forgot your password?': '비밀번호를 잊으셨나요?', + 'Create account': '계정 만들기', + 'Username': '사용자 이름', + 'Confirm Password': '비밀번호 확인', + 'New Password': '새 비밀번호', + 'By signing up, you agree to our': '회원가입 시', + 'Terms of Service': '이용약관', + ' and ': ' 및 ', + 'Privacy Policy': '개인정보 처리방침', + 'Already have an account?': '이미 계정이 있으신가요?', + 'Reset password': '비밀번호 재설정', + 'Enter the code sent to your email': '이메일로 전송된 코드를 입력하세요', + 'Send code': '코드 전송', + 'Resend code': '코드 재전송', + 'Back to login': '로그인으로 돌아가기', + 'Enter your email': '이메일 주소를 입력하세요', + 'Invalid Password': '유효하지 않은 비밀번호', + 'Passwords do not match.': '비밀번호가 일치하지 않습니다.', + 'We have sent a numeric verification code to your email address at': '다음 이메일 주소로 숫자 인증 코드를 전송했습니다:', + 'COUNTDOWN_SUFFIX': '초', + 'Unsupported sign-in step:': '지원되지 않는 로그인 단계:', + 'AUTH_ERROR_GENERIC': '인증에 실패했습니다. 다시 시도해 주세요.', + 'AUTH_ERROR_INVALID_CREDENTIALS': '이메일 또는 비밀번호가 올바르지 않습니다.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': '계정이 아직 확인되지 않았습니다. 전송된 코드로 확인해 주세요.', + 'AUTH_ERROR_USERNAME_EXISTS': '이미 사용 중인 사용자 이름입니다.', + 'AUTH_ERROR_USER_NOT_FOUND': '해당 이메일 주소에 대한 계정을 찾을 수 없습니다.', + 'AUTH_ERROR_CODE_MISMATCH': '인증 코드가 올바르지 않습니다.', + 'AUTH_ERROR_CODE_EXPIRED': '인증 코드가 만료되었습니다. 새로운 코드를 요청해 주세요.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': '요청이 너무 많습니다. 잠시 후 다시 시도해 주세요.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': '실패한 시도가 너무 많습니다. 잠시 후 다시 시도해 주세요.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': '인증 코드를 전송하지 못했습니다. 나중에 다시 시도해 주세요.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': '이미 로그인되어 있습니다.', + 'AUTH_ERROR_INVALID_PARAMETER': '일부 정보가 올바르지 않습니다. 입력 내용을 확인하고 다시 시도해 주세요.' + }, + 'pl': { + 'login': 'Zaloguj się', + 'signup': 'Zarejestruj się', + 'reset-password': 'Zresetuj hasło', + 'confirm-code': 'Potwierdź kod', + 'CODE_ON_THE_WAY_TIP': 'Twój kod jest w drodze. Aby się zalogować, wpisz kod, który Ci wysłaliśmy. Może to zająć minutę.', + 'PW_POLICY_TIP': '1. Co najmniej 8 znaków.\n' + + '2. Musi zawierać małe litery.\n' + + '3. Musi zawierać duże litery.\n' + + '4. Musi zawierać znaki specjalne.', + 'You are already logged in as': 'Jesteś już zalogowany jako', + 'Sign out': 'Wyloguj się', + 'Bad Response.': 'Nieprawidłowa odpowiedź.', + 'Email': 'E-mail', + 'Password': 'Hasło', + 'Sign in': 'Zaloguj się', + 'Confirm': 'Potwierdź', + 'Don\'t have an account?': 'Nie masz konta?', + 'Sign up': 'Zarejestruj się', + 'or': 'lub', + 'Forgot your password?': 'Nie pamiętasz hasła?', + 'Create account': 'Utwórz konto', + 'Username': 'Nazwa użytkownika', + 'Confirm Password': 'Potwierdź hasło', + 'New Password': 'Nowe hasło', + 'By signing up, you agree to our': 'Rejestrując się, zgadzasz się na nasze', + 'Terms of Service': 'Warunki korzystania', + ' and ': ' i ', + 'Privacy Policy': 'Politykę prywatności', + 'Already have an account?': 'Masz już konto?', + 'Reset password': 'Zresetuj hasło', + 'Enter the code sent to your email': 'Wpisz kod wysłany na Twój adres e-mail', + 'Send code': 'Wyślij kod', + 'Resend code': 'Wyślij kod ponownie', + 'Back to login': 'Wróć do logowania', + 'Enter your email': 'Wpisz swój adres e-mail', + 'Invalid Password': 'Nieprawidłowe hasło', + 'Passwords do not match.': 'Hasła nie są identyczne.', + 'We have sent a numeric verification code to your email address at': 'Wysłaliśmy numeryczny kod weryfikacyjny na Twój adres e-mail:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Nieobsługiwany krok logowania:', + 'AUTH_ERROR_GENERIC': 'Uwierzytelnianie nie powiodło się. Spróbuj ponownie.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Nieprawidłowy adres e-mail lub hasło.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Twoje konto nie zostało jeszcze potwierdzone. Zweryfikuj je za pomocą kodu, który wysłaliśmy.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Ta nazwa użytkownika jest już zajęta.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Nie znaleźliśmy konta dla tego adresu e-mail.', + 'AUTH_ERROR_CODE_MISMATCH': 'Kod weryfikacyjny jest nieprawidłowy.', + 'AUTH_ERROR_CODE_EXPIRED': 'Kod weryfikacyjny wygasł. Poproś o nowy.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Zbyt wiele żądań. Poczekaj chwilę i spróbuj ponownie.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Zbyt wiele nieudanych prób. Poczekaj chwilę i spróbuj ponownie.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Nie mogliśmy wysłać kodu weryfikacyjnego. Spróbuj ponownie później.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Jesteś już zalogowany.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Niektóre informacje są nieprawidłowe. Sprawdź dane i spróbuj ponownie.' + }, + 'sk': { + 'login': 'Prihlásiť sa', + 'signup': 'Zaregistrovať sa', + 'reset-password': 'Obnoviť heslo', + 'confirm-code': 'Potvrdiť kód', + 'CODE_ON_THE_WAY_TIP': 'Váš kód je na ceste. Ak sa chcete prihlásiť, zadajte kód, ktorý sme vám poslali. Príchod môže trvať minútu.', + 'PW_POLICY_TIP': '1. Aspoň 8 znakov.\n' + + '2. Musí obsahovať malé písmená.\n' + + '3. Musí obsahovať veľké písmená.\n' + + '4. Musí obsahovať špeciálne znaky.', + 'You are already logged in as': 'Ste už prihlásený ako', + 'Sign out': 'Odhlásiť sa', + 'Bad Response.': 'Neplatná odpoveď.', + 'Email': 'E-mail', + 'Password': 'Heslo', + 'Sign in': 'Prihlásiť sa', + 'Confirm': 'Potvrdiť', + 'Don\'t have an account?': 'Nemáte účet?', + 'Sign up': 'Zaregistrovať sa', + 'or': 'alebo', + 'Forgot your password?': 'Zabudli ste heslo?', + 'Create account': 'Vytvoriť účet', + 'Username': 'Meno používateľa', + 'Confirm Password': 'Potvrdiť heslo', + 'New Password': 'Nové heslo', + 'By signing up, you agree to our': 'Registráciou súhlasíte s našimi', + 'Terms of Service': 'Podmienkami služby', + ' and ': ' a ', + 'Privacy Policy': 'Zásadami ochrany súkromia', + 'Already have an account?': 'Máte už účet?', + 'Reset password': 'Obnoviť heslo', + 'Enter the code sent to your email': 'Zadajte kód odoslaný na váš e-mail', + 'Send code': 'Odoslať kód', + 'Resend code': 'Znova odoslať kód', + 'Back to login': 'Späť na prihlásenie', + 'Enter your email': 'Zadajte svoju e-mailovú adresu', + 'Invalid Password': 'Neplatné heslo', + 'Passwords do not match.': 'Heslá sa nezhodujú.', + 'We have sent a numeric verification code to your email address at': 'Poslali sme číselný overovací kód na vašu e-mailovú adresu:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Nepodporovaný krok prihlásenia:', + 'AUTH_ERROR_GENERIC': 'Overenie zlyhalo. Skúste to prosím znova.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Nesprávny e-mail alebo heslo.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Váš účet ešte nebol potvrdený. Overte ho pomocou kódu, ktorý sme poslali.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Toto meno používateľa je už obsadené.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Pre túto e-mailovú adresu sme nenašli žiadny účet.', + 'AUTH_ERROR_CODE_MISMATCH': 'Overovací kód je nesprávny.', + 'AUTH_ERROR_CODE_EXPIRED': 'Platnosť overovacieho kódu vypršala. Požiadajte o nový.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Príliš veľa požiadaviek. Chvíľu počkajte a skúste to znova.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Príliš veľa neúspešných pokusov. Chvíľu počkajte a skúste to znova.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Overovací kód sa nám nepodarilo odoslať. Skúste to neskôr.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Ste už prihlásený.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Niektoré informácie sú neplatné. Skontrolujte zadané údaje a skúste to znova.' + }, + 'uk': { + 'login': 'Увійти', + 'signup': 'Зареєструватися', + 'reset-password': 'Скинути пароль', + 'confirm-code': 'Підтвердити код', + 'CODE_ON_THE_WAY_TIP': 'Ваш код вже в дорозі. Щоб увійти, введіть код, який ми вам надіслали. Це може зайняти хвилину.', + 'PW_POLICY_TIP': '1. Не менше 8 символів.\n' + + '2. Повинен містити малі літери.\n' + + '3. Повинен містити великі літери.\n' + + '4. Повинен містити спеціальні символи.', + 'You are already logged in as': 'Ви вже увійшли як', + 'Sign out': 'Вийти', + 'Bad Response.': 'Некоректна відповідь.', + 'Email': 'Ел. пошта', + 'Password': 'Пароль', + 'Sign in': 'Увійти', + 'Confirm': 'Підтвердити', + 'Don\'t have an account?': 'Немає облікового запису?', + 'Sign up': 'Зареєструватися', + 'or': 'або', + 'Forgot your password?': 'Забули пароль?', + 'Create account': 'Створити обліковий запис', + 'Username': 'Ім\'я користувача', + 'Confirm Password': 'Підтвердити пароль', + 'New Password': 'Новий пароль', + 'By signing up, you agree to our': 'Реєструючись, ви погоджуєтесь із нашими', + 'Terms of Service': 'Умовами надання послуг', + ' and ': ' та ', + 'Privacy Policy': 'Політикою конфіденційності', + 'Already have an account?': 'Вже є обліковий запис?', + 'Reset password': 'Скинути пароль', + 'Enter the code sent to your email': 'Введіть код, надісланий на вашу пошту', + 'Send code': 'Надіслати код', + 'Resend code': 'Надіслати код повторно', + 'Back to login': 'Повернутися до входу', + 'Enter your email': 'Введіть адресу ел. пошти', + 'Invalid Password': 'Недійсний пароль', + 'Passwords do not match.': 'Паролі не збігаються.', + 'We have sent a numeric verification code to your email address at': 'Ми надіслали числовий код підтвердження на вашу адресу ел. пошти:', + 'COUNTDOWN_SUFFIX': 'с', + 'Unsupported sign-in step:': 'Непідтримуваний крок входу:', + 'AUTH_ERROR_GENERIC': 'Помилка автентифікації. Будь ласка, спробуйте ще раз.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Неправильна адреса ел. пошти або пароль.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Ваш обліковий запис ще не підтверджено. Будь ласка, підтвердьте його за допомогою коду, який ми надіслали.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Це ім\'я користувача вже зайнято.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Нам не вдалося знайти обліковий запис для цієї адреси ел. пошти.', + 'AUTH_ERROR_CODE_MISMATCH': 'Код підтвердження невірний.', + 'AUTH_ERROR_CODE_EXPIRED': 'Термін дії коду підтвердження закінчився. Будь ласка, запросіть новий.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Забагато запитів. Будь ласка, зачекайте хвилину і спробуйте знову.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Забагато невдалих спроб. Будь ласка, зачекайте хвилину і спробуйте знову.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Нам не вдалося надіслати код підтвердження. Будь ласка, спробуйте пізніше.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Ви вже увійшли в систему.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Деяка інформація недійсна. Будь ласка, перевірте введені дані та спробуйте знову.' + }, + 'fa': { + 'login': 'ورود', + 'signup': 'ثبت‌نام', + 'reset-password': 'بازنشانی رمز عبور', + 'confirm-code': 'تأیید کد', + 'CODE_ON_THE_WAY_TIP': 'کد شما در راه است. برای ورود، کدی که برای شما ارسال کرده‌ایم را وارد کنید. ممکن است یک دقیقه طول بکشد تا برسد.', + 'PW_POLICY_TIP': '1. حداقل ۸ کاراکتر.\n' + + '2. باید حروف کوچک داشته باشد.\n' + + '3. باید حروف بزرگ داشته باشد.\n' + + '4. باید نویسه‌های نمادی داشته باشد.', + 'You are already logged in as': 'شما در حال حاضر با این حساب وارد شده‌اید:', + 'Sign out': 'خروج', + 'Bad Response.': 'پاسخ نامعتبر.', + 'Email': 'ایمیل', + 'Password': 'رمز عبور', + 'Sign in': 'ورود', + 'Confirm': 'تأیید', + 'Don\'t have an account?': 'حساب کاربری ندارید؟', + 'Sign up': 'ثبت‌نام', + 'or': 'یا', + 'Forgot your password?': 'رمز عبورتان را فراموش کرده‌اید؟', + 'Create account': 'ایجاد حساب', + 'Username': 'نام کاربری', + 'Confirm Password': 'تأیید رمز عبور', + 'New Password': 'رمز عبور جدید', + 'By signing up, you agree to our': 'با ثبت‌نام، شما با', + 'Terms of Service': 'شرایط خدمات', + ' and ': ' و ', + 'Privacy Policy': 'سیاست حریم خصوصی', + 'Already have an account?': 'حساب کاربری دارید؟', + 'Reset password': 'بازنشانی رمز عبور', + 'Enter the code sent to your email': 'کد ارسال‌شده به ایمیل خود را وارد کنید', + 'Send code': 'ارسال کد', + 'Resend code': 'ارسال مجدد کد', + 'Back to login': 'بازگشت به ورود', + 'Enter your email': 'آدرس ایمیل خود را وارد کنید', + 'Invalid Password': 'رمز عبور نامعتبر', + 'Passwords do not match.': 'رمزهای عبور مطابقت ندارند.', + 'We have sent a numeric verification code to your email address at': 'یک کد تأیید عددی به آدرس ایمیل شما ارسال کرده‌ایم:', + 'COUNTDOWN_SUFFIX': 'ث', + 'Unsupported sign-in step:': 'مرحله ورود پشتیبانی‌نشده:', + 'AUTH_ERROR_GENERIC': 'احراز هویت ناموفق بود. لطفاً دوباره امتحان کنید.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'ایمیل یا رمز عبور اشتباه است.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'حساب شما هنوز تأیید نشده است. لطفاً آن را با کدی که ارسال کرده‌ایم تأیید کنید.', + 'AUTH_ERROR_USERNAME_EXISTS': 'این نام کاربری قبلاً استفاده شده است.', + 'AUTH_ERROR_USER_NOT_FOUND': 'حسابی برای آن آدرس ایمیل پیدا نکردیم.', + 'AUTH_ERROR_CODE_MISMATCH': 'کد تأیید اشتباه است.', + 'AUTH_ERROR_CODE_EXPIRED': 'کد تأیید منقضی شده است. لطفاً یک کد جدید درخواست کنید.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'درخواست‌های بیش از حد. لطفاً کمی صبر کنید و دوباره امتحان کنید.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'تلاش‌های ناموفق زیاد. لطفاً کمی صبر کنید و دوباره امتحان کنید.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'نتوانستیم کد تأیید را ارسال کنیم. لطفاً بعداً دوباره امتحان کنید.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'شما قبلاً وارد شده‌اید.', + 'AUTH_ERROR_INVALID_PARAMETER': 'برخی اطلاعات نامعتبر است. لطفاً ورودی خود را بررسی کنید و دوباره امتحان کنید.' + }, + 'id': { + 'login': 'Masuk', + 'signup': 'Daftar', + 'reset-password': 'Atur ulang kata sandi', + 'confirm-code': 'Konfirmasi kode', + 'CODE_ON_THE_WAY_TIP': 'Kode Anda sedang dalam perjalanan. Untuk masuk, masukkan kode yang kami kirimkan. Mungkin perlu satu menit untuk tiba.', + 'PW_POLICY_TIP': '1. Minimal 8 karakter.\n' + + '2. Harus mengandung huruf kecil.\n' + + '3. Harus mengandung huruf besar.\n' + + '4. Harus mengandung karakter simbol.', + 'You are already logged in as': 'Anda sudah masuk sebagai', + 'Sign out': 'Keluar', + 'Bad Response.': 'Respons buruk.', + 'Email': 'Email', + 'Password': 'Kata sandi', + 'Sign in': 'Masuk', + 'Confirm': 'Konfirmasi', + 'Don\'t have an account?': 'Belum punya akun?', + 'Sign up': 'Daftar', + 'or': 'atau', + 'Forgot your password?': 'Lupa kata sandi?', + 'Create account': 'Buat akun', + 'Username': 'Nama pengguna', + 'Confirm Password': 'Konfirmasi kata sandi', + 'New Password': 'Kata sandi baru', + 'By signing up, you agree to our': 'Dengan mendaftar, Anda menyetujui', + 'Terms of Service': 'Ketentuan Layanan', + ' and ': ' dan ', + 'Privacy Policy': 'Kebijakan Privasi', + 'Already have an account?': 'Sudah punya akun?', + 'Reset password': 'Atur ulang kata sandi', + 'Enter the code sent to your email': 'Masukkan kode yang dikirim ke email Anda', + 'Send code': 'Kirim kode', + 'Resend code': 'Kirim ulang kode', + 'Back to login': 'Kembali ke halaman masuk', + 'Enter your email': 'Masukkan email Anda', + 'Invalid Password': 'Kata sandi tidak valid', + 'Passwords do not match.': 'Kata sandi tidak cocok.', + 'We have sent a numeric verification code to your email address at': 'Kami telah mengirimkan kode verifikasi numerik ke alamat email Anda:', + 'COUNTDOWN_SUFFIX': 'd', + 'Unsupported sign-in step:': 'Langkah masuk yang tidak didukung:', + 'AUTH_ERROR_GENERIC': 'Autentikasi gagal. Silakan coba lagi.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Email atau kata sandi salah.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Akun Anda belum dikonfirmasi. Silakan verifikasi dengan kode yang kami kirimkan.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Nama pengguna ini sudah digunakan.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Kami tidak dapat menemukan akun untuk alamat email tersebut.', + 'AUTH_ERROR_CODE_MISMATCH': 'Kode verifikasi salah.', + 'AUTH_ERROR_CODE_EXPIRED': 'Kode verifikasi telah kedaluwarsa. Silakan minta yang baru.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Terlalu banyak permintaan. Tunggu sebentar dan coba lagi.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Terlalu banyak upaya gagal. Tunggu sebentar dan coba lagi.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Kami tidak dapat mengirimkan kode verifikasi. Silakan coba lagi nanti.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Anda sudah masuk.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Beberapa informasi tidak valid. Periksa masukan Anda dan coba lagi.' + }, + 'cs': { + 'login': 'Přihlásit se', + 'signup': 'Zaregistrovat se', + 'reset-password': 'Obnovit heslo', + 'confirm-code': 'Potvrdit kód', + 'CODE_ON_THE_WAY_TIP': 'Váš kód je na cestě. Chcete-li se přihlásit, zadejte kód, který jsme vám poslali. Příchod může trvat minutu.', + 'PW_POLICY_TIP': '1. Alespoň 8 znaků.\n' + + '2. Musí obsahovat malá písmena.\n' + + '3. Musí obsahovat velká písmena.\n' + + '4. Musí obsahovat speciální znaky.', + 'You are already logged in as': 'Jste již přihlášeni jako', + 'Sign out': 'Odhlásit se', + 'Bad Response.': 'Špatná odpověď.', + 'Email': 'E-mail', + 'Password': 'Heslo', + 'Sign in': 'Přihlásit se', + 'Confirm': 'Potvrdit', + 'Don\'t have an account?': 'Nemáte účet?', + 'Sign up': 'Zaregistrovat se', + 'or': 'nebo', + 'Forgot your password?': 'Zapomněli jste heslo?', + 'Create account': 'Vytvořit účet', + 'Username': 'Uživatelské jméno', + 'Confirm Password': 'Potvrdit heslo', + 'New Password': 'Nové heslo', + 'By signing up, you agree to our': 'Registrací souhlasíte s našimi', + 'Terms of Service': 'Podmínkami služby', + ' and ': ' a ', + 'Privacy Policy': 'Zásadami ochrany osobních údajů', + 'Already have an account?': 'Již máte účet?', + 'Reset password': 'Obnovit heslo', + 'Enter the code sent to your email': 'Zadejte kód odeslaný na váš e-mail', + 'Send code': 'Odeslat kód', + 'Resend code': 'Znovu odeslat kód', + 'Back to login': 'Zpět na přihlášení', + 'Enter your email': 'Zadejte svůj e-mail', + 'Invalid Password': 'Neplatné heslo', + 'Passwords do not match.': 'Hesla se neshodují.', + 'We have sent a numeric verification code to your email address at': 'Zaslali jsme číselný ověřovací kód na vaši e-mailovou adresu:', + 'COUNTDOWN_SUFFIX': 's', + 'Unsupported sign-in step:': 'Nepodporovaný krok přihlášení:', + 'AUTH_ERROR_GENERIC': 'Ověření se nezdařilo. Zkuste to prosím znovu.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'Nesprávný e-mail nebo heslo.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'Váš účet ještě nebyl potvrzen. Ověřte ho prosím pomocí kódu, který jsme odeslali.', + 'AUTH_ERROR_USERNAME_EXISTS': 'Toto uživatelské jméno je již obsazeno.', + 'AUTH_ERROR_USER_NOT_FOUND': 'Nenašli jsme žádný účet pro tuto e-mailovou adresu.', + 'AUTH_ERROR_CODE_MISMATCH': 'Ověřovací kód je nesprávný.', + 'AUTH_ERROR_CODE_EXPIRED': 'Platnost ověřovacího kódu vypršela. Požádejte o nový.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'Příliš mnoho požadavků. Chvíli počkejte a zkuste to znovu.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'Příliš mnoho neúspěšných pokusů. Chvíli počkejte a zkuste to znovu.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'Nepodařilo se nám odeslat ověřovací kód. Zkuste to prosím later.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'Jste již přihlášeni.', + 'AUTH_ERROR_INVALID_PARAMETER': 'Některé informace jsou neplatné. Zkontrolujte svůj vstup a zkuste to znovu.' + }, + 'ar': { + 'login': 'تسجيل الدخول', + 'signup': 'إنشاء حساب', + 'reset-password': 'إعادة تعيين كلمة المرور', + 'confirm-code': 'تأكيد الرمز', + 'CODE_ON_THE_WAY_TIP': 'رمزك في الطريق. لتسجيل الدخول، أدخل الرمز الذي أرسلناه إليك. قد يستغرق الأمر دقيقة للوصول.', + 'PW_POLICY_TIP': '1. 8 أحرف على الأقل.\n' + + '2. يجب أن يحتوي على أحرف صغيرة.\n' + + '3. يجب أن يحتوي على أحرف كبيرة.\n' + + '4. يجب أن يحتوي على رموز.', + 'You are already logged in as': 'أنت بالفعل مسجل دخولك بحساب:', + 'Sign out': 'تسجيل الخروج', + 'Bad Response.': 'استجابة غير صالحة.', + 'Email': 'البريد الإلكتروني', + 'Password': 'كلمة المرور', + 'Sign in': 'تسجيل الدخول', + 'Confirm': 'تأكيد', + 'Don\'t have an account?': 'ليس لديك حساب؟', + 'Sign up': 'إنشاء حساب', + 'or': 'أو', + 'Forgot your password?': 'هل نسيت كلمة المرور؟', + 'Create account': 'إنشاء حساب', + 'Username': 'اسم المستخدم', + 'Confirm Password': 'تأكيد كلمة المرور', + 'New Password': 'كلمة مرور جديدة', + 'By signing up, you agree to our': 'بالتسجيل، أنت توافق على', + 'Terms of Service': 'شروط الخدمة', + ' and ': ' و', + 'Privacy Policy': 'سياسة الخصوصية', + 'Already have an account?': 'لديك حساب بالفعل؟', + 'Reset password': 'إعادة تعيين كلمة المرور', + 'Enter the code sent to your email': 'أدخل الرمز المرسل إلى بريدك الإلكتروني', + 'Send code': 'إرسال الرمز', + 'Resend code': 'إعادة إرسال الرمز', + 'Back to login': 'العودة إلى تسجيل الدخول', + 'Enter your email': 'أدخل بريدك الإلكتروني', + 'Invalid Password': 'كلمة مرور غير صالحة', + 'Passwords do not match.': 'كلمتا المرور غير متطابقتين.', + 'We have sent a numeric verification code to your email address at': 'لقد أرسلنا رمز تحقق رقمياً إلى عنوان بريدك الإلكتروني:', + 'COUNTDOWN_SUFFIX': 'ث', + 'Unsupported sign-in step:': 'خطوة تسجيل دخول غير مدعومة:', + 'AUTH_ERROR_GENERIC': 'فشل المصادقة. يرجى المحاولة مرة أخرى.', + 'AUTH_ERROR_INVALID_CREDENTIALS': 'بريد إلكتروني أو كلمة مرور غير صحيحة.', + 'AUTH_ERROR_USER_NOT_CONFIRMED': 'لم يتم تأكيد حسابك بعد. يرجى التحقق منه باستخدام الرمز الذي أرسلناه.', + 'AUTH_ERROR_USERNAME_EXISTS': 'اسم المستخدم هذا مأخوذ بالفعل.', + 'AUTH_ERROR_USER_NOT_FOUND': 'لم نتمكن من العثور على حساب لعنوان البريد الإلكتروني هذا.', + 'AUTH_ERROR_CODE_MISMATCH': 'رمز التحقق غير صحيح.', + 'AUTH_ERROR_CODE_EXPIRED': 'انتهت صلاحية رمز التحقق. يرجى طلب رمز جديد.', + 'AUTH_ERROR_TOO_MANY_REQUESTS': 'طلبات كثيرة جداً. يرجى الانتظار لحظة والمحاولة مرة أخرى.', + 'AUTH_ERROR_TOO_MANY_ATTEMPTS': 'محاولات فاشلة كثيرة جداً. يرجى الانتظار لحظة والمحاولة مرة أخرى.', + 'AUTH_ERROR_CODE_DELIVERY_FAILED': 'لم نتمكن من إرسال رمز التحقق. يرجى المحاولة مرة أخرى لاحقاً.', + 'AUTH_ERROR_ALREADY_AUTHENTICATED': 'أنت بالفعل مسجل دخولك.', + 'AUTH_ERROR_INVALID_PARAMETER': 'بعض المعلومات غير صالحة. يرجى التحقق من إدخالك والمحاولة مرة أخرى.' } } diff --git a/packages/ui/src/amplify/ui.tsx b/packages/ui/src/amplify/ui.tsx index 859d8a3444..2f0917b147 100644 --- a/packages/ui/src/amplify/ui.tsx +++ b/packages/ui/src/amplify/ui.tsx @@ -2,13 +2,14 @@ import { Button } from '@/components/ui/button' import { Input, InputProps } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { cn } from '@/lib/utils' -import { FormHTMLAttributes, useEffect, useState } from 'react' +import { FormHTMLAttributes, useEffect, useRef, useState } from 'react' import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert' import { AlertCircleIcon, Loader2Icon, LucideEye, LucideEyeClosed, LucideX } from 'lucide-react' import { AuthFormRootContext, t, useAuthFormState } from './core' import * as Auth from 'aws-amplify/auth' import { Skeleton } from '@/components/ui/skeleton' import * as React from 'react' +import { getAuthErrorMessageKey } from './errors' function ErrorTip({ error, removeError }: { error: string | { variant?: 'warning' | 'destructive', title?: string, message: string | any }, @@ -108,14 +109,26 @@ function validatePasswordPolicy(password: string) { } } +function getAuthErrorMessage(error: unknown) { + return t(getAuthErrorMessageKey(error)) +} + function useCountDown() { const [countDownNum, setCountDownNum] = useState(0) + const intervalRef = useRef | null>(null) + const startCountDown = () => { + if (intervalRef.current) { + clearInterval(intervalRef.current) + } setCountDownNum(60) - const interval = setInterval(() => { + intervalRef.current = setInterval(() => { setCountDownNum((num) => { if (num <= 1) { - clearInterval(interval) + if (intervalRef.current) { + clearInterval(intervalRef.current) + intervalRef.current = null + } return 0 } return num - 1 @@ -125,7 +138,10 @@ function useCountDown() { useEffect(() => { return () => { - setCountDownNum(0) + if (intervalRef.current) { + clearInterval(intervalRef.current) + intervalRef.current = null + } } }, []) @@ -224,10 +240,10 @@ export function LoginForm() { await loadSession() return default: - throw new Error('Unsupported sign-in step: ' + nextStep) + throw new Error(`${t('Unsupported sign-in step:')} ${nextStep}`) } } catch (e) { - setErrors({ password: { message: (e as Error).message, title: t('Bad Response.') } }) + setErrors({ password: { message: getAuthErrorMessage(e), title: t('Bad Response.') } }) console.error(e) } finally { setLoading(false) @@ -338,7 +354,7 @@ export function SignupForm() { } } catch (e: any) { console.error(e) - const error = { title: t('Bad Response.'), message: (e as Error).message } + const error = { title: t('Bad Response.'), message: getAuthErrorMessage(e) } let k = 'confirm_password' if (e.name === 'UsernameExistsException') { k = 'username' @@ -423,21 +439,25 @@ export function ResetPasswordForm() { setIsSentCode(true) } catch (error) { console.error('Error sending reset code:', error) - setErrors({ email: { message: (error as Error).message, title: t('Bad Response.') } }) + setErrors({ email: { message: getAuthErrorMessage(error), title: t('Bad Response.') } }) } finally { setLoading(false) } } else { // confirm reset password - if ((data.password as string)?.length < 8) { + try { + validatePasswordPolicy(data.password as string) + } catch (error) { setErrors({ password: { - message: t('Password must be at least 8 characters.'), + message: (error as Error).message, title: t('Invalid Password') } }) return - } else if (data.password !== data.confirm_password) { + } + + if (data.password !== data.confirm_password) { setErrors({ confirm_password: { message: t('Passwords do not match.'), @@ -458,7 +478,7 @@ export function ResetPasswordForm() { setCurrentTab('login') } catch (error) { console.error('Error confirming reset password:', error) - setErrors({ 'confirm_password': { message: (error as Error).message, title: t('Bad Response.') } }) + setErrors({ 'confirm_password': { message: getAuthErrorMessage(error), title: t('Bad Response.') } }) } finally { setLoading(false) } @@ -470,7 +490,7 @@ export function ResetPasswordForm() {
{countDownNum > 0 ? ( - {countDownNum}s + {countDownNum}{t('COUNTDOWN_SUFFIX')} ) : ( { startCountDown() @@ -479,7 +499,7 @@ export function ResetPasswordForm() { console.debug('[Auth] reset pw code re-sent: ', ret) } catch (error) { console.error('Error resending reset code:', error) - setErrors({ email: { message: (error as Error).message, title: t('Bad Response.') } }) + setErrors({ email: { message: getAuthErrorMessage(error), title: t('Bad Response.') } }) } finally {} }} className={'text-sm opacity-70 hover:opacity-90 underline absolute top-3 right-0 select-none'}> {t('Resend code')} @@ -589,7 +609,7 @@ export function ConfirmWithCodeForm( console.debug('confirmSignIn: ', ret) } } catch (e) { - setErrors({ code: { message: (e as Error).message, title: t('Bad Response.') } }) + setErrors({ code: { message: getAuthErrorMessage(e), title: t('Bad Response.') } }) console.error(e) } finally { setLoading(false) @@ -613,7 +633,7 @@ export function ConfirmWithCodeForm( {countDownNum > 0 ? ( - {countDownNum}s + {countDownNum}{t('COUNTDOWN_SUFFIX')} ) : ) -} \ No newline at end of file +} diff --git a/packages/ui/src/i18n.test.mts b/packages/ui/src/i18n.test.mts new file mode 100644 index 0000000000..d65ac2751d --- /dev/null +++ b/packages/ui/src/i18n.test.mts @@ -0,0 +1,48 @@ +import test from 'node:test' +import assert from 'node:assert/strict' + +import { setLocale, setNSDicts, setTranslate, translate } from './i18n' +import { getAuthErrorMessageKey } from './amplify/errors' + +test('translate uses the selected locale when the namespace dict contains it', () => { + setTranslate((locale, dicts, key, ...args) => dicts[locale]?.[key] ?? args[0] ?? key) + setNSDicts('locale', { + en: { greeting: 'Hello' }, + 'zh-CN': { greeting: '你好' } + }) + setLocale('zh-CN') + + assert.equal(translate('locale', 'greeting'), '你好') +}) + +test('translate falls back to English when the current locale is unavailable', () => { + setTranslate((locale, dicts, key, ...args) => dicts[locale]?.[key] ?? args[0] ?? key) + setNSDicts('fallback', { + en: { greeting: 'Hello' } + }) + setLocale('zh-CN') + + assert.equal(translate('fallback', 'greeting'), 'Hello') +}) + +test('translate falls back to English when the current locale dict has no corresponding key', () => { + setTranslate((locale, dicts, key, ...args) => dicts[locale]?.[key] ?? args[0] ?? key) + setNSDicts('fallback', { + en: { greeting: 'Hello' }, + 'zh-CN': { farewell: '再见' } + }) + setLocale('zh-CN') + + assert.equal(translate('fallback', 'greeting'), 'Hello') +}) + +test('getAuthErrorMessageKey maps common Cognito errors to localized keys', () => { + assert.equal(getAuthErrorMessageKey({ name: 'NotAuthorizedException' }), 'AUTH_ERROR_INVALID_CREDENTIALS') + assert.equal(getAuthErrorMessageKey({ name: 'CodeMismatchException' }), 'AUTH_ERROR_CODE_MISMATCH') + assert.equal(getAuthErrorMessageKey({ name: 'InvalidPasswordException' }), 'PW_POLICY_TIP') +}) + +test('getAuthErrorMessageKey falls back to a generic localized key for unknown errors', () => { + assert.equal(getAuthErrorMessageKey({ name: 'SomethingUnexpected' }), 'AUTH_ERROR_GENERIC') + assert.equal(getAuthErrorMessageKey(new Error('plain error')), 'AUTH_ERROR_GENERIC') +}) diff --git a/packages/ui/src/i18n.ts b/packages/ui/src/i18n.ts index 5b366b984b..c335728029 100644 --- a/packages/ui/src/i18n.ts +++ b/packages/ui/src/i18n.ts @@ -13,7 +13,7 @@ let _translate: TranslateFn = ( key: string, ...args: any ) => { - return dicts[locale]?.[key] || args[0] || key + return dicts[locale]?.[key] ?? args[0] ?? key } export function setTranslate(t: TranslateFn) { @@ -24,7 +24,7 @@ export function setLocale(locale: string) { _locale = locale } -export function setNSDicts(ns: string, dicts: Record) { +export function setNSDicts(ns: string, dicts: Record) { (_nsDicts as any)[ns] = dicts } @@ -34,7 +34,7 @@ export const translate = ( ...args: any ) => { const dicts = (_nsDicts as any)[ns] || {} - return _translate( - _nsDicts?.hasOwnProperty(_locale) ? _locale : 'en', - dicts, key, ...args) + const localeDict = dicts[_locale] + const locale = (localeDict && Object.prototype.hasOwnProperty.call(localeDict, key)) ? _locale : 'en' + return _translate(locale, dicts, key, ...args) } \ No newline at end of file diff --git a/prompts/review.md b/prompts/review.md index 459db24d2f..268c759fe3 100644 --- a/prompts/review.md +++ b/prompts/review.md @@ -18,7 +18,7 @@ You're Clojure(script) expert, you're responsible to check those common errors: - Replace `js/console.warn` with `log/warn`. - Replace `js/console.log` with `log/info`. - NOTE: `log/` function takes key-value pairs as arguments - + - After adding a new property in `logseq.db.frontend.property/built-in-properties`, you need to add a corresponding migration in `frontend.worker.db.migrate/schema-version->updates`. - e.g. `["65.10" {:properties [:block/journal-day]}]` @@ -27,7 +27,44 @@ You're Clojure(script) expert, you're responsible to check those common errors: - A function that returns a promise, and its function name starts with "<". +## i18n review rules + +- Use `.i18n-lint.toml` as the source of truth for i18n lint scope, covered UI + helpers, translated attributes, exclusions, and allowlists. +- Inside that scope, all shipped user-facing UI text must use helpers from + `frontend.context.i18n`. Console text is exempt. Keep out-of-scope + developer-only `(Dev)` labels inline in code/config, not in translation + dictionaries. +- If a new user-facing surface is not represented in `.i18n-lint.toml`, flag + the missing lint coverage. +- Reuse existing `src/resources/dicts/en.edn` keys only on exact semantic owner + and textual role match. Otherwise follow `docs/i18n-key-naming.md`. +- Add new English source text to `src/resources/dicts/en.edn`. Add non-English + entries only when providing actual translations. When renaming or removing + keys, clean up stale keys in affected locale files. +- `notification/show!` and translated attributes from `.i18n-lint.toml` + (placeholder/title/aria/label-like UI text) must not receive raw English + string literals unless proven non-user-facing. +- For plain dynamic text, use placeholders like `{1}` and pre-format arguments + in the caller before passing them to `t`. +- Keep complete sentences in one translation entry. Use + `interpolate-rich-text`, `interpolate-sentence`, `locale-join-rich-text`, and + `locale-format-*` from `frontend.context.i18n` instead of assembling text ad + hoc in the caller. +- Function-valued translations are allowed only for real logic or hiccup rich + text, and may only use `str`, `when`, `if`, and `=`. +- Rich text and inline links must stay in a single translation entry, not split + across multiple keys. +- Preserve emoji/icon glyphs from `en.edn`, and use punctuation natural to each + locale. +- Pluralization is locale-specific. Do not force English singular/plural + structure onto other locales. +- After changing keys run `bb lang:validate-translations`; after changing UI + text run `bb lang:lint-hardcoded`; after editing dictionary files run + `bb lang:format-dicts`. +- If you add a new linted helper or attribute, update `.i18n-lint.toml`. + - Prohibit converting js/Uint8Array to vector. e.g. `(vec uint8-array)` - - This operation is very slow when the Uint8Array is large (e.g. an asset). + - This operation is very slow when the Uint8Array is large (e.g. an asset). - `:block/content` attribute is not used in the DB version; `:block/title` is the attribute that stores the main content of the block. diff --git a/scripts/package.json b/scripts/package.json index ea0f5a2339..02350c7eff 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -2,6 +2,9 @@ "name": "nbb-dev-scripts", "version": "1.0.0", "private": true, + "scripts": { + "test": "yarn nbb-logseq -cp test -m logseq.tasks.test-runner" + }, "devDependencies": { "@logseq/nbb-logseq": "github:logseq/nbb-logseq#feat-db-v34" }, diff --git a/scripts/resources/schemaorg-current-https.json b/scripts/resources/schemaorg-current-https.json index 4b85edbf72..f559dab784 100644 --- a/scripts/resources/schemaorg-current-https.json +++ b/scripts/resources/schemaorg-current-https.json @@ -21807,7 +21807,7 @@ { "@id": "schema:SpecialAnnouncement", "@type": "rdfs:Class", - "rdfs:comment": "A SpecialAnnouncement combines a simple date-stamped textual information update\n with contextualized Web links and other structured data. It represents an information update made by a\n locally-oriented organization, for example schools, pharmacies, healthcare providers, community groups, police,\n local government.\n\nFor work in progress guidelines on Coronavirus-related markup see [this doc](https://docs.google.com/document/d/14ikaGCKxo50rRM7nvKSlbUpjyIk2WMQd3IkB1lItlrM/edit#).\n\nThe motivating scenario for SpecialAnnouncement is the [Coronavirus pandemic](https://en.wikipedia.org/wiki/2019%E2%80%9320_coronavirus_pandemic), and the initial vocabulary is oriented to this urgent situation. Schema.org\nexpect to improve the markup iteratively as it is deployed and as feedback emerges from use. In addition to our\nusual [Github entry](https://github.com/schemaorg/schemaorg/issues/2490), feedback comments can also be provided in [this document](https://docs.google.com/document/d/1fpdFFxk8s87CWwACs53SGkYv3aafSxz_DTtOQxMrBJQ/edit#).\n\n\nWhile this schema is designed to communicate urgent crisis-related information, it is not the same as an emergency warning technology like [CAP](https://en.wikipedia.org/wiki/Common_Alerting_Protocol), although there may be overlaps. The intent is to cover\nthe kinds of everyday practical information being posted to existing websites during an emergency situation.\n\nSeveral kinds of information can be provided:\n\nWe encourage the provision of \"name\", \"text\", \"datePosted\", \"expires\" (if appropriate), \"category\" and\n\"url\" as a simple baseline. It is important to provide a value for \"category\" where possible, most ideally as a well known\nURL from Wikipedia or Wikidata. In the case of the 2019-2020 Coronavirus pandemic, this should be \"https://en.wikipedia.org/w/index.php?title=2019-20\\_coronavirus\\_pandemic\" or \"https://www.wikidata.org/wiki/Q81068910\".\n\nFor many of the possible properties, values can either be simple links or an inline description, depending on whether a summary is available. For a link, provide just the URL of the appropriate page as the property's value. For an inline description, use a [[WebContent]] type, and provide the url as a property of that, alongside at least a simple \"[[text]]\" summary of the page. It is\nunlikely that a single SpecialAnnouncement will need all of the possible properties simultaneously.\n\nWe expect that in many cases the page referenced might contain more specialized structured data, e.g. contact info, [[openingHours]], [[Event]], [[FAQPage]] etc. By linking to those pages from a [[SpecialAnnouncement]] you can help make it clearer that the events are related to the situation (e.g. Coronavirus) indicated by the [[category]] property of the [[SpecialAnnouncement]].\n\nMany [[SpecialAnnouncement]]s will relate to particular regions and to identifiable local organizations. Use [[spatialCoverage]] for the region, and [[announcementLocation]] to indicate specific [[LocalBusiness]]es and [[CivicStructure]]s. If the announcement affects both a particular region and a specific location (for example, a library closure that serves an entire region), use both [[spatialCoverage]] and [[announcementLocation]].\n\nThe [[about]] property can be used to indicate entities that are the focus of the announcement. We now recommend using [[about]] only\nfor representing non-location entities (e.g. a [[Course]] or a [[RadioStation]]). For places, use [[announcementLocation]] and [[spatialCoverage]]. Consumers of this markup should be aware that the initial design encouraged the use of [[about]] for locations too.\n\nThe basic content of [[SpecialAnnouncement]] is similar to that of an [RSS](https://en.wikipedia.org/wiki/RSS) or [Atom](https://en.wikipedia.org/wiki/Atom_(Web_standard)) feed. For publishers without such feeds, basic feed-like information can be shared by posting\n[[SpecialAnnouncement]] updates in a page, e.g. using JSON-LD. For sites with Atom/RSS functionality, you can point to a feed\nwith the [[webFeed]] property. This can be a simple URL, or an inline [[DataFeed]] object, with [[encodingFormat]] providing\nmedia type information, e.g. \"application/rss+xml\" or \"application/atom+xml\".\n", + "rdfs:comment": "A SpecialAnnouncement combines a simple date-stamped textual information update\n with contextualized Web links and other structured data. It represents an information update made by a\n locally-oriented organization, for example schools, pharmacies, healthcare providers, community groups, police,\n local government.\n\nFor work in progress guidelines on Coronavirus-related markup see [this doc](https://docs.google.com/document/d/14ikaGCKxo50rRM7nvKSlbUpjyIk2WMQd3IkB1lItlrM/edit#).\n\nThe motivating scenario for SpecialAnnouncement is the [Coronavirus pandemic](https://en.wikipedia.org/wiki/2019%E2%80%9320_coronavirus_pandemic), and the initial vocabulary is oriented to this urgent situation. Schema.org\nexpect to improve the markup iteratively as it is deployed and as feedback emerges from use. In addition to our\nusual [GitHub entry](https://github.com/schemaorg/schemaorg/issues/2490), feedback comments can also be provided in [this document](https://docs.google.com/document/d/1fpdFFxk8s87CWwACs53SGkYv3aafSxz_DTtOQxMrBJQ/edit#).\n\n\nWhile this schema is designed to communicate urgent crisis-related information, it is not the same as an emergency warning technology like [CAP](https://en.wikipedia.org/wiki/Common_Alerting_Protocol), although there may be overlaps. The intent is to cover\nthe kinds of everyday practical information being posted to existing websites during an emergency situation.\n\nSeveral kinds of information can be provided:\n\nWe encourage the provision of \"name\", \"text\", \"datePosted\", \"expires\" (if appropriate), \"category\" and\n\"url\" as a simple baseline. It is important to provide a value for \"category\" where possible, most ideally as a well known\nURL from Wikipedia or Wikidata. In the case of the 2019-2020 Coronavirus pandemic, this should be \"https://en.wikipedia.org/w/index.php?title=2019-20\\_coronavirus\\_pandemic\" or \"https://www.wikidata.org/wiki/Q81068910\".\n\nFor many of the possible properties, values can either be simple links or an inline description, depending on whether a summary is available. For a link, provide just the URL of the appropriate page as the property's value. For an inline description, use a [[WebContent]] type, and provide the url as a property of that, alongside at least a simple \"[[text]]\" summary of the page. It is\nunlikely that a single SpecialAnnouncement will need all of the possible properties simultaneously.\n\nWe expect that in many cases the page referenced might contain more specialized structured data, e.g. contact info, [[openingHours]], [[Event]], [[FAQPage]] etc. By linking to those pages from a [[SpecialAnnouncement]] you can help make it clearer that the events are related to the situation (e.g. Coronavirus) indicated by the [[category]] property of the [[SpecialAnnouncement]].\n\nMany [[SpecialAnnouncement]]s will relate to particular regions and to identifiable local organizations. Use [[spatialCoverage]] for the region, and [[announcementLocation]] to indicate specific [[LocalBusiness]]es and [[CivicStructure]]s. If the announcement affects both a particular region and a specific location (for example, a library closure that serves an entire region), use both [[spatialCoverage]] and [[announcementLocation]].\n\nThe [[about]] property can be used to indicate entities that are the focus of the announcement. We now recommend using [[about]] only\nfor representing non-location entities (e.g. a [[Course]] or a [[RadioStation]]). For places, use [[announcementLocation]] and [[spatialCoverage]]. Consumers of this markup should be aware that the initial design encouraged the use of [[about]] for locations too.\n\nThe basic content of [[SpecialAnnouncement]] is similar to that of an [RSS](https://en.wikipedia.org/wiki/RSS) or [Atom](https://en.wikipedia.org/wiki/Atom_(Web_standard)) feed. For publishers without such feeds, basic feed-like information can be shared by posting\n[[SpecialAnnouncement]] updates in a page, e.g. using JSON-LD. For sites with Atom/RSS functionality, you can point to a feed\nwith the [[webFeed]] property. This can be a simple URL, or an inline [[DataFeed]] object, with [[encodingFormat]] providing\nmedia type information, e.g. \"application/rss+xml\" or \"application/atom+xml\".\n", "rdfs:label": "SpecialAnnouncement", "rdfs:subClassOf": { "@id": "schema:CreativeWork" diff --git a/scripts/src/logseq/tasks/lang.clj b/scripts/src/logseq/tasks/lang.clj index c534875d94..3785852990 100644 --- a/scripts/src/logseq/tasks/lang.clj +++ b/scripts/src/logseq/tasks/lang.clj @@ -7,7 +7,9 @@ [clojure.set :as set] [clojure.string :as string] [frontend.dicts :as dicts] - [logseq.tasks.util :as task-util])) + [logseq.tasks.lang-lint :as lang-lint] + [logseq.tasks.util :as task-util] + [rewrite-clj.node :as node])) (defn- get-dicts [] @@ -19,29 +21,49 @@ (map (juxt :value :label)) (into {}))) -(defn list-langs - "List translated languages with their number of translations" - [] - (let [dicts (get-dicts) - en-count (count (dicts :en)) - langs (get-languages)] - (->> dicts - (map (fn [[locale dicts]] - [locale - (Math/round (* 100.0 (/ (count dicts) en-count))) - (count dicts) - (langs locale)])) - (sort-by #(nth % 2) >) - (map #(zipmap [:locale :percent-translated :translation-count :language] %)) - task-util/print-table))) - (defn- shorten [s length] (if (< (count s) length) s (string/replace (str (subs s 0 length) "...") - ;; Escape newlines for multi-line translations like tutorials + ;; Keep shortened table rows single-line for multi-line translations. "\n" "\\n"))) +(defn list-langs + "List translated languages with their number of translations" + [] + (let [dicts (get-dicts) + langs (get-languages)] + (->> (lang-lint/translation-summary-stats dicts) + (lang-lint/sort-translation-summary-stats) + (map (fn [{:keys [lang translation-count untranslated-count same-as-en-count]}] + {:locale lang + :translation-count translation-count + :untranslated-count (if (= lang :en) "-" untranslated-count) + :same-as-en-count (if (= lang :en) "-" same-as-en-count) + :language (langs lang)})) + task-util/print-table))) + +(defn list-pseudo + "List translations for LOCALE whose localized value is identical to English." + [& args] + (let [lang (or (some-> (first args) keyword) + (task-util/print-usage "LOCALE")) + langs (get-languages) + dicts (get-dicts)] + (when-not (contains? langs lang) + (println "Language" lang "does not have an entry in frontend.dicts/languages") + (System/exit 1)) + (let [findings (->> (lang-lint/identical-translation-findings dicts lang) + (map (fn [{:keys [translation-key default-value]}] + {:translation-key translation-key + :same-as-en-value default-value + :file (str "dicts/" (-> lang name string/lower-case) ".edn")})) + (sort-by (juxt :file :translation-key)))] + (if (empty? findings) + (println "Language" lang "does not contain translations identical to English!") + (task-util/print-table + (map #(update % :same-as-en-value shorten 50) findings)))))) + (defn list-missing "List missing translations for a given language" [& args] @@ -49,7 +71,7 @@ (task-util/print-usage "LOCALE [--copy]")) options (cli/parse-opts (rest args) {:coerce {:copy :boolean}}) _ (when-not (contains? (get-languages) lang) - (println "Language" lang "does not have an entry in dicts/core.cljs") + (println "Language" lang "does not have an entry in frontend.dicts/languages") (System/exit 1)) dicts (get-dicts) all-missing (select-keys (dicts :en) @@ -83,21 +105,138 @@ result invalid-keys))] (spit (fs/file path) new-content)))) +(def ^:private dicts-dir + (fs/path "src/resources/dicts")) + +(def ^:private ignored-dict-node-tags + #{:comment :newline :whitespace}) + +(defn- ignored-dict-node? + [node] + (contains? ignored-dict-node-tags (node/tag node))) + +(defn- dict-map-node + [root] + (->> (:children root) + (remove ignored-dict-node?) + first)) + +(defn- parse-dict-entries + [text] + (let [root (rewrite/parse-string text) + map-node (dict-map-node root)] + (when-not (= :map (node/tag map-node)) + (println "Expected a top-level map in dictionary file.") + (System/exit 1)) + (let [entry-nodes (->> (:children map-node) + (remove ignored-dict-node?))] + (when (odd? (count entry-nodes)) + (println "Encountered an uneven number of top-level dictionary nodes.") + (System/exit 1)) + (mapv (fn [[key-node value-node]] + {:key (rewrite/sexpr key-node) + :value-node value-node}) + (partition 2 entry-nodes))))) + +(defn- render-dict-entry + [{:keys [key value-node]}] + (str " " key " " value-node)) + +(defn- key-namespace-root + [key] + (some-> key namespace (string/split #"\.") first)) + +(defn- key-leaf + [key] + (name key)) + +(defn- compare-dict-keys + [key-a key-b] + (let [namespace-a (namespace key-a) + namespace-b (namespace key-b) + root-a (key-namespace-root key-a) + root-b (key-namespace-root key-b) + root-diff (compare root-a root-b)] + (cond + (not= 0 root-diff) + root-diff + + (not= namespace-a root-a) + (if (= namespace-b root-b) 1 + (let [namespace-diff (compare namespace-a namespace-b)] + (if (zero? namespace-diff) + (compare (key-leaf key-a) (key-leaf key-b)) + namespace-diff))) + + (not= namespace-b root-b) + -1 + + :else + (compare (key-leaf key-a) (key-leaf key-b))))) + +(defn- render-dict + [entries] + (let [sorted-entries (sort #(neg? (compare-dict-keys (:key %1) (:key %2))) entries) + lines (loop [remaining sorted-entries + previous-namespace nil + acc ["{"]] + (if-let [{:keys [key] :as entry} (first remaining)] + (let [current-namespace (namespace key) + acc (cond-> acc + (and previous-namespace + (not= previous-namespace current-namespace)) + (conj "") + true + (conj (render-dict-entry entry)))] + (recur (next remaining) current-namespace acc)) + (conj acc "}")))] + (str (string/join "\n" lines) "\n"))) + +(defn- dict-file-paths + [] + (->> (fs/list-dir dicts-dir) + (filter #(string/ends-with? (str %) ".edn")) + (sort-by fs/file-name))) + +(defn format-dicts + "Formats dictionary files by full-key sort order and inserts a blank line + between namespace groups. Use --check to fail when any file would change." + [& args] + (let [check? (contains? (set args) "--check") + changed? (volatile! false)] + (doseq [path (dict-file-paths)] + (let [file-name (fs/file-name path) + current-text (slurp (str path)) + output-text (-> current-text + parse-dict-entries + render-dict)] + (if (= current-text output-text) + (println file-name ": already formatted") + (do + (vreset! changed? true) + (if check? + (println file-name "would change") + (do + (spit (str path) output-text) + (println file-name ": formatted"))))))) + (when (and check? @changed?) + (System/exit 1)))) + (defn- validate-non-default-languages "This validation finds any translation keys that don't exist in the default language English. Logseq needs to work out of the box with its default language. This catches mistakes where another language has accidentally typoed keys or added ones without updating :en" - [{:keys [fix?]}] + [fix?] (let [dicts (get-dicts) ;; For now defined as :en but clj-kondo analysis could be more thorough valid-keys (set (keys (dicts :en))) invalid-dicts (->> (dissoc dicts :en) - (mapcat (fn [[lang get-dicts]] + (mapcat (fn [[lang lang-dicts]] (map #(hash-map :language lang :invalid-key %) - (set/difference (set (keys get-dicts)) + (set/difference (set (keys lang-dicts)) valid-keys)))))] (if (empty? invalid-dicts) (println "All non-default translations have valid keys!") @@ -107,131 +246,83 @@ (when fix? (delete-invalid-non-default-languages (update-vals (group-by :language invalid-dicts) #(map :invalid-key %))) - (println "These invalid non-language keys have been removed.")) + (println "These invalid translation keys have been removed from non-default dictionaries.")) (System/exit 1))))) -;; Command to check for manual entries: -;; grep -E -oh '\(t [^ ):]+' -r src/main -(def manual-ui-dicts - "Manual list of ui translations because they are dynamic i.e. keyword isn't - first arg. Only map values are used in linter as keys are for easily scanning - grep result." +(def ^:private i18n-lint-launcher-path + (fs/absolutize "bin/logseq-i18n-lint")) - {"(t (shortcut-helper/decorate-namespace" [] ;; shortcuts related so can ignore - "(t (keyword" [:color/yellow :color/red :color/pink :color/green :color/blue - :color/purple :color/gray] - "(tt (keyword" [:left-side-bar/assets :left-side-bar/tasks] +(def ^:private i18n-lint-config-path + (fs/absolutize ".i18n-lint.toml")) - ;; from 3 files - "(t (if" [:asset/show-in-folder :asset/open-in-browser - :search-item/page - :page/make-private :page/make-public] - "(t (name" [] ;; shortcuts related - "(t (dh/decorate-namespace" [] ;; shortcuts related - "(t prompt-key" [:select/default-prompt :select/default-select-multiple :select.graph/prompt] - ;; All args to ui/make-confirm-modal are not keywords - "(t title" [] - "(t (or title-key" [:views.table/live-query-title :views.table/default-title :all-pages/table-title] - "(t subtitle" [:asset/physical-delete]}) - -(defn- delete-not-used-key-from-dict-file - [invalid-keys] - (let [paths (fs/list-dir "src/resources/dicts")] - (doseq [path paths] - (let [result (rewrite/parse-string (String. (fs/read-all-bytes path))) - new-content (str (reduce - (fn [result k] - (rewrite/dissoc result k)) - result invalid-keys))] - (spit (fs/file path) new-content))))) - -(defn- validate-ui-translations-are-used - "This validation checks to see that translations done by (t ...) are equal to - the ones defined for the default :en lang. This catches translations that have - been added in UI but don't have an entry or translations no longer used in the UI" - [{:keys [fix?]}] - (let [actual-dicts (->> (shell {:out :string} - ;; This currently assumes all ui translations - ;; use (t and src/main. This can easily be - ;; tweaked as needed - "grep -E -oh '\\(tt? :[^ )]+' -r src/main") - :out - string/split-lines - (map #(keyword (subs % 4))) - (concat (mapcat val manual-ui-dicts)) - ;; Temporarily unused as they will be brought back soon - (concat [:download]) - set) - expected-dicts (set (remove #(re-find #"^(command|shortcut)\." (str (namespace %))) - (keys (:en (get-dicts))))) - actual-only (set/difference actual-dicts expected-dicts) - expected-only (set/difference expected-dicts actual-dicts)] - (if (and (empty? actual-only) (empty? expected-only)) - (println "All defined :en translation keys match the ones that are used!") - (do - (when (seq actual-only) - (println "\nThese translation keys are invalid because they are used in the UI but not defined:") - (task-util/print-table (map #(hash-map :invalid-key %) actual-only))) - (when (seq expected-only) - (println "\nThese translation keys are invalid because they are not used in the UI:") - (task-util/print-table (map #(hash-map :invalid-key %) expected-only)) - (when fix? - (delete-not-used-key-from-dict-file expected-only) - (println "These invalid ui keys have been removed."))) - (System/exit 1))))) - -(def allowed-duplicates - "Allows certain keys in a language to have the same translation - as English. Happens more in romance languages but pretty rare otherwise" - {:fr #{:port :type :help/docs :search-item/page :shortcut.category/navigating :text/image - :settings-of-plugins :code :shortcut.category/plugins} - :de #{:graph :host :plugins :port - :settings-of-plugins :shortcut.category/navigating - :settings-page/enable-tooltip :settings-page/plugin-system} - :ca #{:port :settings-page/tab-editor :settings-page/tab-general} - :es #{:settings-page/tab-general :settings-page/tab-editor} - :it #{:home :handbook/home :host :help/awesome-logseq - :settings-page/tab-account :settings-page/tab-editor} - :nl #{:plugins :type :left-side-bar/nav-recent-pages :plugin/update} - :pl #{:port :home :host :plugin/marketplace} - :pt-BR #{:plugins :right-side-bar/flashcards :settings-page/enable-flashcards :page/backlinks - :host :settings-page/tab-editor :shortcut.category/plugins :settings-of-plugins - :on-boarding/quick-tour-journal-page-desc-2 :plugin/downloads :plugin/popular - :settings-page/plugin-system} - :pt-PT #{:plugins :settings-of-plugins :plugin/downloads :right-side-bar/flashcards - :settings-page/enable-flashcards :settings-page/plugin-system} - :nb-NO #{:port :type :right-side-bar/flashcards :settings-page/enable-flashcards - :settings-page/tab-editor :linked-references/filter-heading} - :tr #{:help/awesome-logseq} - :id #{:host :port} - :cs #{:host :port :help/blog :settings-page/tab-editor}}) - -(defn- validate-languages-dont-have-duplicates - "Looks up duplicates for all languages" +(defn- ensure-i18n-lint-ready! [] - (let [dicts (get-dicts) - en-dicts (dicts :en) - invalid-dicts - (->> (dissoc dicts :en) - (mapcat - (fn [[lang lang-dicts]] - (keep - #(when (= (en-dicts %) (lang-dicts %)) - {:translation-key % - :lang lang - :duplicate-value (shorten (lang-dicts %) 70)}) - (keys (apply dissoc lang-dicts (allowed-duplicates lang)))))) - (sort-by (juxt :lang :translation-key)))] + (when-not (fs/exists? i18n-lint-launcher-path) + (println "logseq-i18n-lint launcher not found at" (str i18n-lint-launcher-path)) + (System/exit 1)) + (when-not (fs/exists? i18n-lint-config-path) + (println "i18n lint config not found at" (str i18n-lint-config-path)) + (System/exit 1))) + +(defn- run-i18n-lint-command! + [subcommand cli-args] + (ensure-i18n-lint-ready!) + (let [cmd (into ["bash" + (str i18n-lint-launcher-path) + "-c" + (str i18n-lint-config-path) + subcommand] + cli-args) + result (apply shell {:continue true + :out :inherit + :err :inherit} + cmd)] + (when (pos? (:exit result)) + (System/exit (:exit result))))) + +(defn- check-translation-keys + "Use logseq-i18n-lint to detect unused translation keys." + [args] + (run-i18n-lint-command! "check-keys" args)) + +(defn- validate-rich-translations + "Checks that localized rich translations remain rich zero-arg functions. + Missing translations are allowed, but once a locale defines a rich key it + must preserve the same renderable contract as English." + [] + (let [invalid-dicts (lang-lint/rich-translation-mismatch-findings (get-dicts))] (if (empty? invalid-dicts) - (println "All languages have no duplicate English values!") + (println "All rich translations preserve English render contracts!") (do - (println "These translations keys are invalid because they are just copying the English value:") + (println "These translation keys are invalid because they no longer preserve English rich render contracts:") (task-util/print-table invalid-dicts) (System/exit 1))))) +(defn- validate-translation-placeholders + "Checks that every localized string uses the same placeholder set as English. + Missing translations are allowed because Tongue falls back to :en, but once + a locale defines a string it must preserve the placeholder contract." + [] + (let [invalid-dicts (lang-lint/placeholder-mismatch-findings (get-dicts))] + (if (empty? invalid-dicts) + (println "All translations preserve English placeholder contracts!") + (do + (println "These translation keys are invalid because their placeholders do not match English:") + (task-util/print-table + (map #(dissoc % :default-value :localized-value) invalid-dicts)) + (System/exit 1))))) + (defn validate-translations "Runs multiple translation validations that fail fast if one of them is invalid" [& args] - (validate-non-default-languages {:fix? (contains? (set args) "--fix")}) - (validate-ui-translations-are-used {:fix? (contains? (set args) "--fix")}) - (validate-languages-dont-have-duplicates)) + (validate-non-default-languages (contains? (set args) "--fix")) + (check-translation-keys args) + (validate-rich-translations) + (validate-translation-placeholders)) + +(defn lint-hardcoded + "Run logseq-i18n-lint to lint likely hardcoded user-facing strings in UI-oriented source files. + Use -w or --warn-only to report findings without failing and -g or --git-changed to scan + only files changed in git status." + [& args] + (run-i18n-lint-command! "lint" args)) diff --git a/scripts/src/logseq/tasks/lang_lint.cljc b/scripts/src/logseq/tasks/lang_lint.cljc new file mode 100644 index 0000000000..31917208ff --- /dev/null +++ b/scripts/src/logseq/tasks/lang_lint.cljc @@ -0,0 +1,149 @@ +(ns logseq.tasks.lang-lint) + +;; Matches numbered placeholders like `{1}` in translation strings. +(def ^:private translation-placeholder-pattern + #"\{(\d+)\}") + +(defn translation-placeholders + "Return the placeholder indexes referenced by translation string `value`. + + Non-string values return an empty set." + [value] + (if (string? value) + (->> (re-seq translation-placeholder-pattern value) + (map second) + set) + #{})) + +(defn- placeholders-compatible? + [default-value localized-value] + (or (not (string? default-value)) + (not (string? localized-value)) + (= (translation-placeholders default-value) + (translation-placeholders localized-value)))) + +(defn placeholder-mismatch-findings + "Return localized string findings whose placeholder set diverges from + English." + [dicts] + (let [en-dicts (:en dicts)] + (->> (dissoc dicts :en) + (mapcat + (fn [[lang lang-dicts]] + (keep (fn [[translation-key localized-value]] + (let [default-value (get en-dicts translation-key)] + (when (and (string? default-value) + (string? localized-value) + (not (placeholders-compatible? default-value localized-value))) + {:lang lang + :translation-key translation-key + :expected-placeholders (sort (translation-placeholders default-value)) + :actual-placeholders (sort (translation-placeholders localized-value)) + :default-value default-value + :localized-value localized-value}))) + lang-dicts))) + (sort-by (juxt :lang :translation-key)) + vec))) + +(defn- rich-translation-value? + "Return true when `value` preserves the rich zero-arg translation contract. + + Babashka reads dictionary `fn` forms as lists, while tests may pass actual + function values, so both representations are treated as rich translations." + [value] + (or (fn? value) + (and (seq? value) + (= 'fn (first value)) + (= [] (second value))))) + +(defn- value-kind + [value] + (cond + (rich-translation-value? value) :fn + (string? value) :string + (nil? value) :nil + :else :other)) + +(defn rich-translation-mismatch-findings + "Return localized rich-translation findings whose value kind no longer + matches the English zero-arg function contract." + [dicts] + (let [en-dicts (:en dicts)] + (->> (dissoc dicts :en) + (mapcat + (fn [[lang lang-dicts]] + (keep (fn [[translation-key default-value]] + (let [localized-present? (contains? lang-dicts translation-key) + localized-value (get lang-dicts translation-key)] + (when (and localized-present? + (rich-translation-value? default-value) + (not (rich-translation-value? localized-value))) + {:lang lang + :translation-key translation-key + :expected-value-kind :fn + :actual-value-kind (value-kind localized-value)}))) + en-dicts))) + (sort-by (juxt :lang :translation-key)) + vec))) + +(defn identical-translation-findings + "Return localized translation findings whose defined value is identical to + English for the same key." + [dicts lang] + (let [en-dicts (:en dicts) + lang-dicts (get dicts lang)] + (->> lang-dicts + (keep (fn [[translation-key localized-value]] + (let [default-value (get en-dicts translation-key ::missing)] + (when (= default-value localized-value) + {:lang lang + :translation-key translation-key + :default-value default-value})))) + (sort-by :translation-key) + vec))) + +(defn identical-translation-stats + "Return per-locale identical-to-English counts for defined translations." + [dicts] + (let [en-dicts (:en dicts)] + (->> dicts + (map (fn [[lang lang-dicts]] + {:lang lang + :translation-count (count lang-dicts) + :same-as-en-count + (count + (filter (fn [[translation-key localized-value]] + (= (get en-dicts translation-key ::missing) + localized-value)) + lang-dicts))})) + (sort-by (juxt (comp - :same-as-en-count) (comp - :translation-count) :lang)) + vec))) + +(defn translation-summary-stats + "Return per-locale translation summary stats for overview tables." + [dicts] + (let [en-count (count (:en dicts)) + same-as-en-counts (->> (identical-translation-stats dicts) + (map (juxt :lang :same-as-en-count)) + (into {}))] + (->> dicts + (map (fn [[lang lang-dicts]] + {:lang lang + :translation-count (count lang-dicts) + :untranslated-count (when-not (= lang :en) + (max 0 (- en-count (count lang-dicts)))) + :same-as-en-count (when-not (= lang :en) + (get same-as-en-counts lang 0))})) + vec))) + +(defn sort-translation-summary-stats + "Sort translation summary stats with English first, then by untranslated + count descending, then by identical-to-English count descending." + [stats] + (let [en-stats (filter #(= :en (:lang %)) stats) + other-stats (remove #(= :en (:lang %)) stats)] + (into (vec en-stats) + (sort-by (juxt (comp - :untranslated-count) + (comp - :same-as-en-count) + :lang) + other-stats)))) diff --git a/scripts/src/logseq/tasks/util.clj b/scripts/src/logseq/tasks/util.clj deleted file mode 100644 index c2f85ffeb1..0000000000 --- a/scripts/src/logseq/tasks/util.clj +++ /dev/null @@ -1,21 +0,0 @@ -(ns logseq.tasks.util - "Utils for tasks" - (:require [clojure.pprint :as pprint] - [babashka.fs :as fs])) - -(defn file-modified-later-than? - [file comparison-instant] - (pos? (.compareTo (fs/file-time->instant (fs/last-modified-time file)) - comparison-instant))) - -(defn print-usage [arg-str] - (println (format - "Usage: bb %s %s" - (System/getProperty "babashka.task") - arg-str)) - (System/exit 1)) - -(defn print-table - [rows] - (pprint/print-table rows) - (println "Total:" (count rows))) diff --git a/scripts/src/logseq/tasks/util.cljc b/scripts/src/logseq/tasks/util.cljc new file mode 100644 index 0000000000..c3ad4f4442 --- /dev/null +++ b/scripts/src/logseq/tasks/util.cljc @@ -0,0 +1,123 @@ +(ns logseq.tasks.util + "Utils for tasks" + (:require [clojure.string :as string] + #?(:clj [babashka.fs :as fs]))) + +(defn- in-range? + [code-point [start end]] + (<= start code-point end)) + +(def ^:private zero-width-ranges + [[0x0300 0x036F] + [0x1AB0 0x1AFF] + [0x1DC0 0x1DFF] + [0x200C 0x200F] + [0x202A 0x202E] + [0x2060 0x206F] + [0x20D0 0x20FF] + [0xFE00 0xFE0F] + [0xFE20 0xFE2F]]) + +(def ^:private wide-ranges + [[0x1100 0x115F] + [0x2329 0x232A] + [0x2E80 0xA4CF] + [0xAC00 0xD7A3] + [0xF900 0xFAFF] + [0xFE10 0xFE19] + [0xFE30 0xFE6F] + [0xFF00 0xFF60] + [0xFFE0 0xFFE6] + [0x1F300 0x1FAFF] + [0x20000 0x3FFFD]]) + +(defn- code-point-width + [code-point] + (cond + (or (<= 0x0000 code-point 0x001F) + (<= 0x007F code-point 0x009F) + (some #(in-range? code-point %) zero-width-ranges)) + 0 + + (some #(in-range? code-point %) wide-ranges) + 2 + + :else + 1)) + +(defn display-width + [value] + (let [text (str value)] + (loop [index 0 + width 0] + (if (< index #?(:clj (.length text) :cljs (.-length text))) + (let [code-point #?(:clj (.codePointAt text index) + :cljs (.codePointAt text index))] + (recur (+ index #?(:clj (Character/charCount code-point) + :cljs (if (> code-point 0xFFFF) 2 1))) + (+ width (code-point-width code-point)))) + width)))) + +(defn- pad-left + [text width] + (let [padding (- width (display-width text))] + (str (apply str (repeat (max 0 padding) " ")) text))) + +(defn- column-widths + [columns rows] + (reduce + (fn [widths column] + (assoc widths + column + (apply max + (display-width (str column)) + (map #(display-width (str (get % column ""))) rows)))) + {} + columns)) + +(defn- render-separator + [columns widths] + (str "|" (string/join "+" (map #(apply str (repeat (+ 2 (get widths %)) "-")) columns)) "|")) + +(defn- render-row + [columns widths row] + (str "|" + (string/join "|" (map #(str " " + (pad-left (str (get row % "")) (get widths %)) + " ") + columns)) + "|")) + +(defn render-table + [rows] + (when-let [columns (seq (keys (first rows)))] + (let [rows (vec rows) + widths (column-widths columns rows) + header-row (zipmap columns columns)] + (str (string/join + "\n" + (concat [(render-row columns widths header-row) + (render-separator columns widths)] + (map #(render-row columns widths %) rows))) + "\n")))) + +#?(:clj + (defn file-modified-later-than? + [file comparison-instant] + (pos? (.compareTo (fs/file-time->instant (fs/last-modified-time file)) + comparison-instant)))) + +(defn print-usage [arg-str] + (println (str "Usage: bb " + #?(:clj (System/getProperty "babashka.task") + :cljs "task") + " " + arg-str)) + #?(:clj (System/exit 1) + :cljs (js/process.exit 1))) + +(defn print-table + [rows] + (when-some [rendered-table (render-table rows)] + (print rendered-table)) + (println "Total:" (count rows))) diff --git a/scripts/test/logseq/tasks/db_graph/create_graph_with_large_sizes_test.cljs b/scripts/test/logseq/tasks/db_graph/create_graph_with_large_sizes_test.cljs index bd897e07d1..07eb5efa5e 100644 --- a/scripts/test/logseq/tasks/db_graph/create_graph_with_large_sizes_test.cljs +++ b/scripts/test/logseq/tasks/db_graph/create_graph_with_large_sizes_test.cljs @@ -15,8 +15,8 @@ (map (comp :block/title :page) batch))) (is (= ["id-0" "id-4"] (map (comp :block/uuid :page) batch))) - (is (= [["Block" "Block" "Block"] - ["Block" "Block" "Block"]] + (is (= [[(#'sut/build-block-title 10 0) (#'sut/build-block-title 10 1) (#'sut/build-block-title 10 2)] + [(#'sut/build-block-title 11 0) (#'sut/build-block-title 11 1) (#'sut/build-block-title 11 2)]] (map (fn [{:keys [blocks]}] (mapv :block/title blocks)) batch))) diff --git a/scripts/test/logseq/tasks/lang_test.cljs b/scripts/test/logseq/tasks/lang_test.cljs new file mode 100644 index 0000000000..64da85a0ba --- /dev/null +++ b/scripts/test/logseq/tasks/lang_test.cljs @@ -0,0 +1,127 @@ +(ns logseq.tasks.lang-test + (:require [cljs.test :refer [deftest is testing]] + [logseq.tasks.lang-lint :as lang-lint])) + +(deftest translation-placeholders-detect-placeholder-sets + (is (= #{"1" "2"} + (lang-lint/translation-placeholders "Open {1} from {2}"))) + (is (= #{} + (lang-lint/translation-placeholders "Search with Google")))) + +(deftest placeholder-mismatch-findings-detect-non-default-locale-errors + (testing "a localized value must match English placeholders exactly once it is defined" + (let [findings (lang-lint/placeholder-mismatch-findings + {:en {:electron/link-open-confirm "Are you sure?\n\n{1}" + :electron/write-file-failed-with-backup "Write failed {1} {2} {3}."} + :zh-Hant {:electron/link-open-confirm "確定要開啟此外部連結嗎?" + :electron/write-file-failed-with-backup "寫入失敗。備份檔案:{1}"} + :zh-CN {:electron/link-open-confirm "确定要打开此链接吗?\n\n{1}" + :electron/write-file-failed-with-backup "写入文件 {1} 失败,{2}。备份文件已保存到 {3}。"}})] + (is (= [{:lang :zh-Hant + :translation-key :electron/link-open-confirm + :expected-placeholders ["1"] + :actual-placeholders [] + :default-value "Are you sure?\n\n{1}" + :localized-value "確定要開啟此外部連結嗎?"} + {:lang :zh-Hant + :translation-key :electron/write-file-failed-with-backup + :expected-placeholders ["1" "2" "3"] + :actual-placeholders ["1"] + :default-value "Write failed {1} {2} {3}." + :localized-value "寫入失敗。備份檔案:{1}"}] + findings))))) + +(deftest translation-rich-validation-findings-report-rich-contract-mismatches + (testing "a localized rich translation must remain a zero-arg function once defined" + (is (= [{:lang :zh-Hant + :translation-key :e2ee/cloud-password-rich + :expected-value-kind :fn + :actual-value-kind :string} + {:lang :zh-Hant + :translation-key :on-boarding/main-title + :expected-value-kind :fn + :actual-value-kind :string}] + (lang-lint/rich-translation-mismatch-findings + {:en {:on-boarding/main-title (fn [] ["Welcome to " [:strong "Logseq!"]]) + :e2ee/cloud-password-rich (fn [] ["Cloud sentence " [:span "Local sentence"]]) + :e2ee/remember-password-rich (fn [] [[:span "Remember "] "your password."])} + :zh-Hant {:on-boarding/main-title "歡迎使用 Logseq" + :e2ee/cloud-password-rich "雲端密碼" + :e2ee/remember-password-rich (fn [] [[:span "請記住"] "你的密碼。"])}}))))) + +(deftest identical-translation-findings-report-defined-values-equal-to-english + (is (= [{:lang :ko + :translation-key :ui/cancel + :default-value "Cancel"} + {:lang :ko + :translation-key :ui/save + :default-value "Save"}] + (lang-lint/identical-translation-findings + {:en {:ui/cancel "Cancel" + :ui/save "Save" + :ui/close "Close"} + :ko {:ui/cancel "Cancel" + :ui/save "Save" + :ui/close "닫기"} + :fr {:ui/cancel "Annuler"}} + :ko)))) + +(deftest identical-translation-stats-count-defined-values-equal-to-english + (is (= [{:lang :en + :translation-count 2 + :same-as-en-count 2} + {:lang :ko + :translation-count 2 + :same-as-en-count 1} + {:lang :fr + :translation-count 1 + :same-as-en-count 0}] + (lang-lint/identical-translation-stats + {:en {:ui/cancel "Cancel" + :ui/save "Save"} + :ko {:ui/cancel "Cancel" + :ui/save "저장"} + :fr {:ui/cancel "Annuler"}})))) + +(deftest translation-summary-stats-report-untranslated-and-same-as-en-count + (is (= [{:lang :en + :translation-count 4 + :untranslated-count nil + :same-as-en-count nil} + {:lang :fr + :translation-count 2 + :untranslated-count 2 + :same-as-en-count 1} + {:lang :ko + :translation-count 3 + :untranslated-count 1 + :same-as-en-count 2}] + (->> (lang-lint/translation-summary-stats + {:en {:ui/cancel "Cancel" + :ui/save "Save" + :ui/close "Close" + :ui/delete "Delete"} + :ko {:ui/cancel "Cancel" + :ui/save "저장" + :ui/close "Close"} + :fr {:ui/cancel "Annuler" + :ui/save "Save"}}) + (sort-by :lang) + vec)))) + +(deftest sort-translation-summary-stats-keeps-en-first-then-sorts-by-untranslated-and-same-as-en-count + (is (= [:en :ko :fr :zh-Hant] + (->> [{:lang :fr + :untranslated-count 3 + :same-as-en-count 1} + {:lang :en + :untranslated-count nil + :same-as-en-count nil} + {:lang :zh-Hant + :untranslated-count 1 + :same-as-en-count 3} + {:lang :ko + :untranslated-count 3 + :same-as-en-count 2}] + lang-lint/sort-translation-summary-stats + (mapv :lang))))) diff --git a/scripts/test/logseq/tasks/test_runner.cljs b/scripts/test/logseq/tasks/test_runner.cljs index c3ebab68b6..344b72f65f 100644 --- a/scripts/test/logseq/tasks/test_runner.cljs +++ b/scripts/test/logseq/tasks/test_runner.cljs @@ -1,11 +1,15 @@ (ns logseq.tasks.test-runner (:require [cljs.test :as test] [logseq.tasks.db-graph.create-graph-with-clojure-irc-history-test] - [logseq.tasks.db-graph.create-graph-with-large-sizes-test])) + [logseq.tasks.db-graph.create-graph-with-large-sizes-test] + [logseq.tasks.lang-test] + [logseq.tasks.util-test])) (defn -main [& _] (let [{:keys [fail error]} (test/run-tests 'logseq.tasks.db-graph.create-graph-with-large-sizes-test - 'logseq.tasks.db-graph.create-graph-with-clojure-irc-history-test)] + 'logseq.tasks.db-graph.create-graph-with-clojure-irc-history-test + 'logseq.tasks.lang-test + 'logseq.tasks.util-test)] (when (pos? (+ fail error)) (js/process.exit 1)))) diff --git a/scripts/test/logseq/tasks/util_test.cljs b/scripts/test/logseq/tasks/util_test.cljs new file mode 100644 index 0000000000..84e807c32f --- /dev/null +++ b/scripts/test/logseq/tasks/util_test.cljs @@ -0,0 +1,19 @@ +(ns logseq.tasks.util-test + (:require [cljs.test :refer [deftest is]] + [logseq.tasks.util :as util])) + +(deftest display-width-handles-wide-and-combining-characters + (is (= 5 (util/display-width "hello"))) + (is (= 4 (util/display-width "中文"))) + (is (= 4 (util/display-width "한국"))) + (is (= 1 (util/display-width "e\u0301")))) + +(deftest render-table-right-aligns-columns-using-display-width + (is (= (str "| :locale | :language |\n" + "|---------+-----------|\n" + "| :en | English |\n" + "| :ja | 日本語 |\n" + "| :ko | 한국 |\n") + (util/render-table [{:locale :en :language "English"} + {:locale :ja :language "日本語"} + {:locale :ko :language "한국"}])))) diff --git a/src/electron/electron/context_menu.cljs b/src/electron/electron/context_menu.cljs index f5569cbb68..55f0aa5523 100644 --- a/src/electron/electron/context_menu.cljs +++ b/src/electron/electron/context_menu.cljs @@ -1,5 +1,6 @@ (ns electron.context-menu - (:require [electron.utils :as utils] + (:require [electron.i18n :refer [t]] + [electron.utils :as utils] ["electron" :refer [Menu MenuItem shell nativeImage clipboard] :as electron] ["electron-dl" :refer [download]])) @@ -27,19 +28,18 @@ #(. web-contents replaceMisspelling suggestion)})))) (when-let [misspelled-word (not-empty (.-misspelledWord params))] (. menu append - (MenuItem. (clj->js {:label - "Add to dictionary" + (MenuItem. (clj->js {:label (t :electron/add-to-dictionary) :click #(.. web-contents -session (addWordToSpellCheckerDictionary misspelled-word))}))) (. menu append (MenuItem. #js {:type "separator"}))) (when (and utils/mac? has-text? (not link-url)) (. menu append - (MenuItem. #js {:label (str "Look Up “" selection-text "”") + (MenuItem. #js {:label (t :electron/look-up) :click #(. web-contents showDefinitionForSelection)}))) - (when has-text? - (. menu append - (MenuItem. #js {:label "Search with Google" + (when has-text? + (. menu append + (MenuItem. #js {:label (t :electron/search-with-google) :click #(let [url (js/URL. "https://www.google.com/search")] (.. url -searchParams (set "q" selection-text)) (.. shell (openExternal (.toString url))))})) @@ -48,26 +48,26 @@ (when editable? (when has-text? (. menu append - (MenuItem. #js {:label "Cut" + (MenuItem. #js {:label (t :editor/cut) :enabled (.-canCut edit-flags) :role "cut"})) (. menu append - (MenuItem. #js {:label "Copy" + (MenuItem. #js {:label (t :ui/copy) :enabled (.-canCopy edit-flags) :role "copy"}))) (. menu append - (MenuItem. #js {:label "Paste" + (MenuItem. #js {:label (t :editor/paste) :enabled (.-canPaste edit-flags) :role "paste"})) (. menu append - (MenuItem. #js {:label "Select All" + (MenuItem. #js {:label (t :view.table/select-all) :enabled (.-canSelectAll edit-flags) :role "selectAll"}))) (when (= media-type "image") (. menu append - (MenuItem. #js {:label "Save Image" + (MenuItem. #js {:label (t :electron/save-image) :click (fn [menu-item] (let [url (.-srcURL params) url (if (.-transform menu-item) @@ -76,7 +76,7 @@ (download win url)))})) (. menu append - (MenuItem. #js {:label "Save Image As..." + (MenuItem. #js {:label (t :electron/save-image-as) :click (fn [menu-item] (let [url (.-srcURL params) url (if (.-transform menu-item) @@ -85,7 +85,7 @@ (download win url #js {:saveAs true})))})) (. menu append - (MenuItem. #js {:label "Copy Image" + (MenuItem. #js {:label (t :electron/copy-image) :click (fn [] (. clipboard writeImage (. nativeImage createFromPath (subs (.-srcURL params) 7))))}))) diff --git a/src/electron/electron/core.cljs b/src/electron/electron/core.cljs index 732191c778..a75cdcedf6 100644 --- a/src/electron/electron/core.cljs +++ b/src/electron/electron/core.cljs @@ -9,6 +9,7 @@ [electron.db :as db] [electron.exceptions :as exceptions] [electron.handler :as handler] + [electron.i18n :as i18n :refer [t]] [electron.logger :as logger] [electron.server :as server] [electron.updater :refer [init-updater] :as updater] @@ -173,7 +174,7 @@ (let [about-fn (fn [] (.showMessageBox dialog (clj->js {:title "Logseq" :icon (node-path/join js/__dirname "icons/logseq.png") - :message (str "Version " updater/electron-version)}))) + :message (t :electron/version updater/electron-version)}))) template (if mac? [{:label (.-name app) :submenu [{:role "about"} @@ -188,7 +189,7 @@ []) template (conj template {:role "fileMenu" - :submenu [{:label "New Window" + :submenu [{:label (t :electron/new-window) :click (fn [] (handler/open-new-window! nil)) :accelerator (if mac? "CommandOrControl+N" @@ -211,13 +212,13 @@ template (conj template (if mac? {:role "help" - :submenu [{:label "Official Documentation" + :submenu [{:label (t :electron/official-docs) :click #(.openExternal shell "https://docs.logseq.com/")}]} {:role "help" - :submenu [{:label "Official Documentation" + :submenu [{:label (t :electron/official-docs) :click #(.openExternal shell "https://docs.logseq.com/")} {:role "about" - :label "About Logseq" + :label (t :electron/about) :click about-fn}]})) ;; Enable Cmd/Ctrl+= Zoom In template (conj template @@ -334,6 +335,7 @@ (register-default-protocol-client! app) (set-app-menu!) + (i18n/on-locale-change! set-app-menu!) (setup-deeplink!) (.on app "second-instance" diff --git a/src/electron/electron/exceptions.cljs b/src/electron/electron/exceptions.cljs index 3e55807e05..661aa7b1c7 100644 --- a/src/electron/electron/exceptions.cljs +++ b/src/electron/electron/exceptions.cljs @@ -1,21 +1,18 @@ (ns electron.exceptions (:require [electron.logger :as logger] - [electron.utils :as utils] - [clojure.string :as string])) + [electron.utils :as utils])) (defonce uncaughtExceptionChan "uncaughtException") -(defn show-error-tip - [& msg] - (utils/send-to-renderer "notification" - {:type "error" - :payload (string/join "\n" msg)})) - (defn- app-uncaught-handler [^js e] (let [msg (.-message e) stack (.-stack e)] - (show-error-tip "[Main Exception]" msg stack)) + (utils/send-to-renderer "notification" + {:type "error" + :payload (str "[Main Exception]\n" msg "\n" stack) + :i18n-key :electron/main-exception + :i18n-args [msg stack]})) ;; for debug log (logger/error uncaughtExceptionChan (str e))) diff --git a/src/electron/electron/handler.cljs b/src/electron/electron/handler.cljs index 1252273bba..28fb3b9124 100644 --- a/src/electron/electron/handler.cljs +++ b/src/electron/electron/handler.cljs @@ -19,6 +19,7 @@ [electron.db :as db] [electron.find-in-page :as find] [electron.handler-interface :refer [handle]] + [electron.i18n :as i18n] [electron.keychain :as keychain] [electron.logger :as logger] [electron.plugin :as plugin] @@ -121,15 +122,16 @@ (backup-file/backup-file repo :backup-dir path (node-path/extname path) content) (catch :default e (logger/error ::write-file "backup file failed:" e)))] - (utils/send-to-renderer window "notification" {:type "error" - :payload (str "Write to the file " path - " failed, " - e - (when backup-path - (str ". A backup file was saved to " - backup-path - ".")))})))))) - + (utils/send-to-renderer window "notification" + (if backup-path + {:type "error" + :payload (str "Write to the file " path " failed, " e ". A backup file was saved to " backup-path ".") + :i18n-key :electron/write-file-error-with-backup + :i18n-args [path e backup-path]} + {:type "error" + :payload (str "Write to the file " path " failed, " e) + :i18n-key :electron/write-file-error + :i18n-args [path e]}))))))) (defmethod handle :rename [_window [_ old-path new-path]] (logger/info ::rename "from" old-path "to" new-path) (fs/renameSync old-path new-path)) @@ -181,9 +183,12 @@ :files (get-files path)})) (catch js/Error e (do - (utils/send-to-renderer window "notification" {:type "error" - :payload (str "Opening the specified directory failed.\n" - (or (pretty-print-js-error e) (str "Unexpected error: " e)))}) + (utils/send-to-renderer window "notification" + {:type "error" + :payload (str "Opening the specified directory failed.\n" + (or (pretty-print-js-error e) (str "Unexpected error: " e))) + :i18n-key :electron/open-dir-error + :i18n-args [(or (pretty-print-js-error e) (str "Unexpected error: " e))]}) (p/rejected e)))) (p/rejected (js/Error "path empty"))))) @@ -313,6 +318,9 @@ (when graph-name (set-current-graph! window (utils/get-graph-dir graph-name)))) +(defmethod handle :updateElectronLocale [_window [_ locale]] + (i18n/update-locale! locale)) + (defmethod handle :runCli [window [_ {:keys [command args returnResult]}]] (try (let [on-data-handler (fn [message] diff --git a/src/electron/electron/i18n.cljs b/src/electron/electron/i18n.cljs new file mode 100644 index 0000000000..cec1a146f7 --- /dev/null +++ b/src/electron/electron/i18n.cljs @@ -0,0 +1,40 @@ +(ns electron.i18n + "I18n support for the Electron main process. + + The renderer only syncs the active locale. The main process loads dictionary + resources locally so it can translate with the same Tongue fallback behavior + as the renderer without shipping non-serializable translation values over + IPC." + (:require [frontend.dicts :as dicts] + [lambdaisland.glogi :as log] + [tongue.core :as tongue])) + +(def ^:private translate + (tongue/build-translate (assoc dicts/dicts :tongue/fallback :en))) + +(defonce ^:private *locale (atom :en)) +(defonce ^:private *on-locale-change (atom nil)) + +(defn on-locale-change! + "Register a callback to be invoked when translations are updated" + [f] + (reset! *on-locale-change f)) + +(defn update-locale! + "Update the active locale from the frontend renderer." + [language] + (reset! *locale (or (some-> language keyword) :en)) + (when-let [f @*on-locale-change] + (f))) + +(defn t + "Translate `k` in the current Electron locale using Tongue fallback rules." + [& args] + (try + (apply translate @*locale args) + (catch :default e + (log/error :failed-translation {:error e + :arguments args + :lang @*locale}) + (when (not= @*locale :en) + (apply translate :en args))))) diff --git a/src/electron/electron/plugin.cljs b/src/electron/electron/plugin.cljs index 96fe4860bf..7cae8f8f57 100644 --- a/src/electron/electron/plugin.cljs +++ b/src/electron/electron/plugin.cljs @@ -57,7 +57,7 @@ endpoint (api url-suffix) ^js res (fetch endpoint {:timeout (* 1000 5)}) illegal-text (when-not (= 200 (.-status res)) (.text res)) - _ (when-not (string/blank? illegal-text) (throw (js/Error. (str "Github API Failed(" (.-status res) ") " illegal-text)))) + _ (when-not (string/blank? illegal-text) (throw (js/Error. (str "GitHub API Failed(" (.-status res) ") " illegal-text)))) _ (debug "Release latest:" endpoint ":status" (.-status res)) res (response-transform res) res (.json res) @@ -184,7 +184,7 @@ includes the following keys: * :only-check - When set to true, this only fetches the latest version without installing * :plugin-action - When set to 'install', installs the specific :version given -* :repo - A Github repo, not a logseq repo, e.g. user/repo" +* :repo - A GitHub repo, not a logseq repo, e.g. user/repo" [{:keys [version repo only-check plugin-action] :as item}] (if repo (let [action (keyword plugin-action) diff --git a/src/electron/electron/url.cljs b/src/electron/electron/url.cljs index 610e2e09ac..c9941dc46b 100644 --- a/src/electron/electron/url.cljs +++ b/src/electron/electron/url.cljs @@ -25,9 +25,12 @@ [graph-identifier] (if (not-empty graph-identifier) (send-to-renderer "notification" {:type "error" - :payload (str "Failed to open link. Cannot match graph identifier `" graph-identifier "` to any linked graph.")}) + :payload (str "Failed to open link. Cannot match graph identifier `" graph-identifier "` to any linked graph.") + :i18n-key :electron/link-open-failed-no-graph + :i18n-args [graph-identifier]}) (send-to-renderer "notification" {:type "error" - :payload "Failed to open link. Missing graph identifier after `logseq://graph/`."}))) + :payload "Failed to open link. Missing graph identifier after `logseq://graph/`." + :i18n-key :electron/link-open-failed-missing-graph}))) (defn local-url-handler "Given a URL with `graph identifier` as path, `page` (optional) and `block-id` @@ -86,7 +89,9 @@ (send-to-focused-renderer "notification" {:type "error" :payload (str "Unimplemented x-callback-url action: `" action - "`.")} win)))) + "`.") + :i18n-key :electron/unimplemented-callback + :i18n-args [action]} win)))) (defn logseq-url-handler "win - the main window" @@ -112,4 +117,6 @@ (send-to-renderer :notification {:type "error" :payload (str "Failed to open link. Cannot match `" url-host - "` to any target.")})))) + "` to any target.") + :i18n-key :electron/link-open-failed-no-target + :i18n-args [url-host]})))) diff --git a/src/electron/electron/window.cljs b/src/electron/electron/window.cljs index b5e656bc6d..3111126cac 100644 --- a/src/electron/electron/window.cljs +++ b/src/electron/electron/window.cljs @@ -7,6 +7,7 @@ [clojure.string :as string] [electron.configs :as cfgs] [electron.context-menu :as context-menu] + [electron.i18n :refer [t]] [electron.logger :as logger] [electron.state :as state] [electron.utils :refer [mac? win32? linux? dev? open] :as utils])) @@ -126,10 +127,10 @@ (when-let [^js res (and (fn? default-open) (.showMessageBoxSync dialog #js {:type "warning" - :message (str "Are you sure you want to open this link? \n\n" url) + :message (t :electron/link-open-confirm url) :defaultId 1 :cancelId 0 - :buttons #js ["Cancel" "OK"]}))] + :buttons #js [(t :electron/cancel) (t :electron/ok)]}))] (when (= res 1) (default-open url))))))) diff --git a/src/main/electron/listener.cljs b/src/main/electron/listener.cljs index 23079bacd1..88010f0c0b 100644 --- a/src/main/electron/listener.cljs +++ b/src/main/electron/listener.cljs @@ -5,6 +5,8 @@ [clojure.string :as string] [dommy.core :as dom] [electron.ipc :as ipc] + [electron.locale :as electron-locale] + [frontend.context.i18n :as i18n] [frontend.db :as db] [frontend.db.async :as db-async] [frontend.handler.notification :as notification] @@ -26,9 +28,13 @@ [] (safe-api-call "notification" (fn [data] - (let [{:keys [type payload]} (bean/->clj data) + (let [{:keys [type payload i18n-key i18n-args]} (bean/->clj data) type (keyword type) - comp [:div (str payload)]] + i18n-key (when i18n-key (keyword i18n-key)) + content (if i18n-key + (apply i18n/t i18n-key i18n-args) + (str payload)) + comp [:div content]] (notification/show! comp type false)))) (safe-api-call "rebuildSearchIndice" @@ -67,7 +73,7 @@ (p/let [block (db-async/ language keyword) :en))) diff --git a/src/main/frontend/commands.cljs b/src/main/frontend/commands.cljs index 8bdda619ce..9412f29994 100644 --- a/src/main/frontend/commands.cljs +++ b/src/main/frontend/commands.cljs @@ -1,6 +1,7 @@ (ns frontend.commands "Provides functionality for commands and advanced commands" (:require [clojure.string :as string] + [frontend.context.i18n :refer [interpolate-sentence t]] [frontend.date :as date] [frontend.db :as db] [frontend.extensions.video.youtube :as youtube] @@ -17,6 +18,7 @@ [logseq.common.util :as common-util] [logseq.common.util.block-ref :as block-ref] [logseq.common.util.page-ref :as page-ref] + [logseq.db.frontend.property :as db-property] [logseq.graph-parser.property :as gp-property] [promesa.core :as p])) @@ -27,9 +29,10 @@ (defonce command-ask "\\") (defonce *current-command (atom nil)) -(def query-doc +(defn query-doc + [] [:div {:on-pointer-down (fn [e] (.stopPropagation e))} - [:div.font-medium.text-lg.mb-2 "Query examples:"] + [:div.font-medium.text-lg.mb-2 (t :query/examples-title)] [:ul.mb-1 [:li.mb-1 [:code "{{query #tag}}"]] [:li.mb-1 [:code "{{query [[page]]}}"]] @@ -39,38 +42,43 @@ [:li.mb-1 [:code "{{query (and (between -7d +7d) (task Done))}}"]] [:li.mb-1 [:code "{{query (property key value)}}"]] [:li.mb-1 [:code "{{query (tags #tag)}}"]]] - - [:p "Check more examples at " - [:a {:href "https://docs.logseq.com/#/page/queries" - :target "_blank"} - "Queries documentation"] - "."]]) + [:p + (interpolate-sentence + (t :query/examples-desc) + :links [{:href "https://docs.logseq.com/#/page/queries" + :target "_blank"}])]]) (defn link-steps [] [[:editor/input (str command-trigger "link")] [:editor/show-input [{:command :link :id :link - :placeholder "Link" + :placeholder (t :ui/link) :autoFocus true} {:command :link :id :label - :placeholder "Label"}]]]) + :placeholder (t :ui/label)}]]]) (defn image-link-steps [] [[:editor/input (str command-trigger "link")] [:editor/show-input [{:command :image-link :id :link - :placeholder "Link" + :placeholder (t :ui/link) :autoFocus true} {:command :image-link :id :label - :placeholder "Label"}]]]) + :placeholder (t :ui/label)}]]]) (def *extend-slash-commands (atom [])) (defn register-slash-command [cmd] (swap! *extend-slash-commands conj cmd)) +(defn- resolve-slash-command + [command] + (if (fn? command) + (command) + command)) + (defn ->marker [marker] [[:editor/clear-current-slash] @@ -92,8 +100,7 @@ (defn db-based-statuses [] - (map (fn [e] (:block/title e)) - (db-pu/get-closed-property-values :logseq.property/status))) + (db-pu/get-closed-property-values :logseq.property/status)) (defn db-based-embed-block [] @@ -142,38 +149,41 @@ (defn get-statuses [] - (let [result (->> + (let [group-label (t :editor.slash/group-task-status) + result (->> (db-based-statuses) - (mapv (fn [command] - (let [icon (case command + (mapv (fn [status] + (let [command (:block/title status) + label (db-property/built-in-display-title status t) + icon (case command "Canceled" "Cancelled" "Doing" "InProgress50" command)] - [command (->marker command) (str "Set status to " command) icon]))))] + [label (->marker command) (t :editor.slash/status-desc label) icon]))))] (when (seq result) - (map (fn [v] (conj v "TASK STATUS")) result)))) + (map (fn [v] (conj v group-label)) result)))) (defn db-based-priorities [] - (map (fn [e] (str "Priority " (:block/title e))) - (db-pu/get-closed-property-values :logseq.property/priority))) + (db-pu/get-closed-property-values :logseq.property/priority)) (defn get-priorities [] - (let [with-no-priority #(cons ["No priority" (->priority nil) "" :icon/priorityLvlNone] %) + (let [group-label (t :editor.slash/group-priority) + with-no-priority #(cons [(t :editor.slash/no-priority) (->priority nil) "" :icon/priorityLvlNone] %) result (->> (db-based-priorities) - (mapv (fn [item] - (let [command item - item (string/replace item #"^Priority " "")] - [command - (->priority item) - (str "Set priority to " item) - (str "priorityLvl" item)]))) + (mapv (fn [priority] + (let [value (:block/title priority) + label (db-property/built-in-display-title priority t)] + [(t :editor.slash/priority-label label) + (->priority value) + (t :editor.slash/priority-desc label) + (str "priorityLvl" value)]))) (with-no-priority) (vec))] (when (seq result) - (map (fn [v] (into v ["PRIORITY"])) result)))) + (map (fn [v] (into v [group-label])) result)))) ;; Credits to roamresearch.com @@ -185,10 +195,15 @@ (defn- headings [] - (into [["Normal text" (->heading nil) "Clear heading and set to normal text" :icon/text "Heading"]] + (into [[(t :editor.slash/normal-text) + (->heading nil) + (t :editor.slash/normal-text-desc) + :icon/text + (t :editor.slash/group-heading)]] (mapv (fn [level] - (let [heading (str "Heading " level)] - [heading (->heading level) heading (str "h-" level) "Heading"])) (range 1 7)))) + (let [heading (t :editor.slash/heading-label level)] + [heading (->heading level) heading (str "h-" level) (t :editor.slash/group-heading)])) + (range 1 7)))) (defonce *latest-matched-command (atom "")) (defonce *matched-commands (atom nil)) @@ -200,36 +215,36 @@ (->> (concat ;; basic - [["Node reference" + [[(t :editor.slash/node-reference) [[:editor/input page-ref/left-and-right-brackets {:backward-pos 2}] [:editor/search-page]] - "Create a backlink to a node (a page or a block)" + (t :editor.slash/node-reference-desc) :icon/pageRef - "BASIC"] - ["Node embed" + (t :editor.slash/group-basic)] + [(t :editor.slash/node-embed) (embed-block) - "Embed a node here" + (t :editor.slash/node-embed-desc) :icon/blockEmbed]] ;; format - [["Link" (link-steps) "Create a HTTP link" :icon/link "FORMAT"] - ["Image link" (image-link-steps) "Create a HTTP link to a image" :icon/photoLink] + [[(t :ui/link) (link-steps) (t :editor.slash/link-desc) :icon/link (t :editor.slash/group-format)] + [(t :editor.slash/image-link) (image-link-steps) (t :editor.slash/image-link-desc) :icon/photoLink] (when (state/markdown?) - ["Underline" [[:editor/input "" - {:last-pattern command-trigger - :backward-pos 6}]] "Create a underline text decoration" + [(t :editor.slash/underline) [[:editor/input "" + {:last-pattern command-trigger + :backward-pos 6}]] (t :editor.slash/underline-desc) :icon/underline]) - ["Code block" + [(t :editor.slash/code-block) (code-block-steps) - "Insert code block" + (t :editor.slash/code-block-desc) :icon/code] - ["Quote" + [(t :class.built-in/quote-block) (quote-block-steps) - "Create a quote block" + (t :editor.slash/quote-desc) :icon/quote] - ["Math block" + [(t :editor.slash/math-block) (math-block-steps) - "Create a latex block" + (t :editor.slash/math-block-desc) :icon/math]] (headings) @@ -238,79 +253,80 @@ (get-statuses) ;; task date - [["Deadline" + [[(t :property.built-in/deadline) [[:editor/clear-current-slash] [:editor/set-deadline]] "" :icon/calendar-stats - "TASK DATE"] - ["Scheduled" + (t :editor.slash/group-task-date)] + [(t :property.built-in/scheduled) [[:editor/clear-current-slash] [:editor/set-scheduled]] "" :icon/calendar-month - "TASK DATE"]] + (t :editor.slash/group-task-date)]] ;; priority (get-priorities) ;; time & date - [["Tomorrow" - #(get-page-ref-text (date/tomorrow)) - "Insert the date of tomorrow" + [[(t :date.nlp/tomorrow) + #(get-page-ref-text (db/get-journal-page-title (date/tomorrow))) + (t :editor.slash/tomorrow-desc) :icon/tomorrow - "TIME & DATE"] - ["Yesterday" #(get-page-ref-text (date/yesterday)) "Insert the date of yesterday" :icon/yesterday] - ["Today" #(get-page-ref-text (date/today)) "Insert the date of today" :icon/calendar] - ["Current time" #(date/get-current-time) "Insert current time" :icon/clock] - ["Date picker" [[:editor/show-date-picker]] "Pick a date and insert here" :icon/calendar-dots]] + (t :editor.slash/group-time-and-date)] + [(t :date.nlp/yesterday) #(get-page-ref-text (db/get-journal-page-title (date/yesterday))) (t :editor.slash/yesterday-desc) :icon/yesterday] + [(t :date.nlp/today) #(get-page-ref-text (db/get-today-journal-title)) (t :editor.slash/today-desc) :icon/calendar] + [(t :editor.slash/current-time) #(date/get-current-time) (t :editor.slash/current-time-desc) :icon/clock] + [(t :editor.slash/date-picker) [[:editor/show-date-picker]] (t :editor.slash/date-picker-desc) :icon/calendar-dots]] ;; order list - [["Number list" + [[(t :editor.slash/number-list) [[:editor/clear-current-slash] [:editor/toggle-own-number-list]] - "Number list" + (t :editor.slash/number-list) :icon/numberedParents - "LIST TYPE"] - ["Number children" [[:editor/clear-current-slash] - [:editor/toggle-children-number-list]] - "Number children" + (t :editor.slash/group-list-type)] + [(t :editor.slash/number-children) [[:editor/clear-current-slash] + [:editor/toggle-children-number-list]] + (t :editor.slash/number-children) :icon/numberedChildren]] ;; advanced - [["Query" (query-steps) query-doc :icon/query "ADVANCED"] - ["Advanced Query" (advanced-query-steps) "Create an advanced query block" :icon/query] - ["Query function" [[:editor/input "{{function }}" {:backward-pos 2}]] "Create a query function" :icon/queryCode] - ["Calculator" + [[(t :property.built-in/query) (query-steps) (query-doc) :icon/query (t :editor.slash/group-advanced)] + [(t :editor.slash/advanced-query) (advanced-query-steps) (t :editor.slash/advanced-query-desc) :icon/query] + [(t :editor.slash/query-function) [[:editor/input "{{function }}" {:backward-pos 2}]] (t :editor.slash/query-function-desc) :icon/queryCode] + [(t :editor.slash/calculator) (calc-steps) - "Insert a calculator" :icon/calculator] + (t :editor.slash/calculator-desc) :icon/calculator] - ["Upload an asset" + [(t :editor.slash/upload-asset) [[:editor/click-hidden-file-input :id]] - "Upload file types like image, pdf, docx, etc.)" + (t :editor.slash/upload-asset-desc) :icon/upload] - ["Template" [[:editor/input command-trigger nil] - [:editor/search-template]] "Insert a created template here" + [(t :class.built-in/template) [[:editor/input command-trigger nil] + [:editor/search-template]] (t :editor.slash/template-desc) :icon/template] - ["Embed HTML " (->inline "html") "" :icon/htmlEmbed] + [(t :editor.slash/embed-html) (->inline "html") "" :icon/htmlEmbed] - ["Embed Video URL" [[:editor/input "{{video }}" {:last-pattern command-trigger - :backward-pos 2}]] "" + [(t :editor.slash/embed-video-url) [[:editor/input "{{video }}" {:last-pattern command-trigger + :backward-pos 2}]] "" :icon/videoEmbed] - ["Embed Youtube timestamp" [[:youtube/insert-timestamp]] "" :icon/videoEmbed] + [(t :editor.slash/embed-youtube-timestamp) [[:youtube/insert-timestamp]] "" :icon/videoEmbed] - ["Embed Twitter tweet" [[:editor/input "{{tweet }}" {:last-pattern command-trigger - :backward-pos 2}]] "" + [(t :editor.slash/embed-twitter-tweet) [[:editor/input "{{tweet }}" {:last-pattern command-trigger + :backward-pos 2}]] "" :icon/xEmbed] - ["Add new property" [[:editor/clear-current-slash] - [:editor/new-property]] "" + [(t :command.editor/add-property) [[:editor/clear-current-slash] + [:editor/new-property]] "" :icon/cube-plus]] (let [commands (->> @*extend-slash-commands + (map resolve-slash-command) (remove (fn [command] (when (map? (last command)) (false? (:db-graph? (last command)))))))] commands) @@ -320,7 +336,7 @@ (state/get-commands) (when-let [plugin-commands (seq (some->> (state/get-plugins-slash-commands) (mapv #(vec (concat % [nil :icon/puzzle])))))] - (-> plugin-commands (vec) (update 0 (fn [v] (conj v "PLUGINS")))))) + (-> plugin-commands (vec) (update 0 (fn [v] (conj v (t :editor.slash/group-plugins))))))) (remove nil?) (util/distinct-by-last-wins first)))) @@ -650,7 +666,7 @@ (contains? #{:scheduled :deadline} type) (string/blank? (gobj/get (state/get-input) "value"))) (do - (notification/show! [:div "Please add some content first."] :warning) + (notification/show! [:div (t :editor/add-content-first-warning)] :warning) (restore-state)) (do (state/set-timestamp-block! nil) diff --git a/src/main/frontend/components/all_pages.cljs b/src/main/frontend/components/all_pages.cljs index 1c9fe28717..d9009c5f7e 100644 --- a/src/main/frontend/components/all_pages.cljs +++ b/src/main/frontend/components/all_pages.cljs @@ -10,7 +10,7 @@ (defn- columns [] (->> [{:id :block/title - :name (t :block/name) + :name (t :page/name) :cell (fn [_table row _column] (component-block/page-cp {:show-non-exists-page? true :skip-async-load? true @@ -33,5 +33,4 @@ (views/view {:view-parent (db/get-page common-config/views-page-name) :view-feature-type :all-pages :show-items-count? true - :columns columns' - :title-key :all-pages/table-title})])) + :columns columns'})])) diff --git a/src/main/frontend/components/assets.cljs b/src/main/frontend/components/assets.cljs index 58387cabad..730c5d3fad 100644 --- a/src/main/frontend/components/assets.cljs +++ b/src/main/frontend/components/assets.cljs @@ -69,18 +69,18 @@ (do (set-dir! val dir nil) (shui/dialog-close!)) (notification/show! - (util/format "Alias name of [%s] already exists!" val) :warning))))] + (t :asset/alias-already-exists val) :warning))))] [:div.cp__assets-alias-name-content - [:h1.text-2xl.opacity-90.mb-6 "What's the alias name of this selected directory?"] - [:p [:strong "Directory path:"] + [:h1.text-2xl.opacity-90.mb-6 (t :asset/alias-name-dialog-title)] + [:p [:strong (t :asset/alias-directory-path-label)] [:a {:on-click #(when (util/electron?) (js/apis.openPath dir))} dir]] - [:p [:strong "Alias name:"] + [:p [:strong (t :asset/alias-name-label)] [:input.px-1.border.rounded {:autoFocus true :value val - :placeholder "eg. Books" + :placeholder (t :asset/alias-name-placeholder) :on-change (fn [^js e] (set-val! (util/trim-safe (.. e -target -value)))) :on-key-up (fn [^js e] @@ -90,7 +90,7 @@ [:div.pt-6.flex.justify-end (ui/button - "Save" + (t :ui/save) :disabled (string/blank? val) :on-click on-submit)]])) @@ -181,20 +181,20 @@ :dune))) :input-opts {:class "cp__assets-alias-ext-input" - :placeholder "E.g. mp3" + :placeholder (t :asset/file-extension-placeholder) :on-blur #(reset! *ext-editing-dir nil)}}) [:small.ext-label.is-plus {:on-click #(reset! *ext-editing-dir dir)} - (ui/icon "plus") "Acceptable file extensions"])] + (ui/icon "plus") (t :asset/acceptable-file-extensions)])] [:span.ctrls.flex.space-x-3.text-xs.opacity-30.hover:opacity-100.whitespace-nowrap.hidden.mt-1 [:a {:on-click #(rm-dir dir)} (ui/icon "trash-x")]]]])] [:p.pt-2 (ui/button - "+ Add directory" + (t :asset/add-directory) :on-click #(p/let [path (ipc/ipc :openDialog)] (when-not (or (string/blank? path) (pick-exist path)) @@ -213,7 +213,7 @@ [:div.cp__assets-settings.panel-wrap [:div.it [:label.block.text-sm.font-medium.leading-5.opacity-70 - "Alias directories"] + (t :asset/alias-directories)] [:div (ui/toggle alias-enabled? #(state/set-assets-alias-enabled! (not alias-enabled?)) @@ -223,7 +223,7 @@ (when alias-enabled? [:div.pt-4 - [:h2.font-bold.opacity-80 "Selected directories:"] + [:h2.font-bold.opacity-80 (t :asset/selected-directories)] (alias-directories)])])) (rum/defc edit-external-url-form @@ -261,9 +261,9 @@ (p/then #(when on-saved (on-saved asset-block false))) (p/catch err-handle) (p/finally #(set-saving? false))))))} - [:label [:span.block.pb-2.text-sm.opacity-60 "Asset title:"] + [:label [:span.block.pb-2.text-sm.opacity-60 (t :asset/title-label)] (shui/input {:small true :default-value title :name "title"})] - [:label [:span.block.pb-2.text-sm.opacity-60 "Asset external url:"] + [:label [:span.block.pb-2.text-sm.opacity-60 (t :asset/external-url-label)] [:span.flex.items-center.gap-2 (shui/input {:small true :default-value url :name "src"}) (when (util/electron?) @@ -272,14 +272,14 @@ :on-click (fn [^js e] (.preventDefault e) (p/let [^js ret (ipc/ipc :showOpenDialog {:properties ["openFile"] - :title "Select Asset File"})] + :title (t :asset/select-file)})] (let [file-path (some-> ret (bean/->clj) :filePaths (first))] (when (not (string/blank? file-path)) (let [^js input (-> (.-target e) (.closest "form") (.querySelector "input[name='src']"))] (set! (.-value input) file-path))))))} - "Select from disk"))]] + (t :asset/select-from-disk)))]] [:div.flex.justify-end.pt-3 - (ui/button (if create? "Create" "Save") {:disabled saving?})]])) + (ui/button (if create? (t :ui/create) (t :ui/save)) {:disabled saving?})]])) (rum/defc edit-external-url-content [asset-block pdf-current] @@ -300,7 +300,7 @@ (shui/alert {:variant "warning"} (shui/alert-description - "Creating a local asset from an external one. PDF annotations require a local asset to work properly.")) + (t :asset/create-local-copy-warning))) (let [title (util/node-path.basename url)] (edit-external-url-form asset-block {:url url :title title :on-saved on-saved!}))])))]) diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index c508f39550..2d3be879b4 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -274,15 +274,15 @@ "ico" "image/x-icon"} mime (get ext->mime ext)] (if-not mime - (notification/show! (str "Copy image is not supported for ." ext " files") :warning) + (notification/show! (t :asset/copy-image-unsupported-extension (str "." ext)) :warning) (-> (p/let [binary (fs/read-file-raw nil image-src {}) blob (js/Blob. (array binary) (clj->js {:type mime}))] (util/copy-image-blob-to-clipboard blob)) - (p/then #(notification/show! "Copied!" :success)) + (p/then #(notification/show! (t :notification/copied) :success)) (p/catch (fn [error] (js/console.error error)))))) (-> (util/copy-image-to-clipboard src') - (p/then #(notification/show! "Copied!" :success)) + (p/then #(notification/show! (t :notification/copied) :success)) (p/catch (fn [error] (js/console.error error)))))) handle-delete! @@ -297,8 +297,10 @@ {:default-checked @*local-selected? :on-checked-change #(reset! *local-selected? %)}) (t :asset/physical-delete)])] - {:title (t :asset/confirm-delete (.toLocaleLowerCase (t :text/image))) - :outside-cancel? true}) + {:title (t :asset/confirm-delete-image) + :outside-cancel? true + :cancel-label (t :ui/cancel) + :ok-label (t :ui/confirm)}) (p/then (fn [] (shui/dialog-close!) (editor-handler/delete-asset-of-block! @@ -367,7 +369,7 @@ (ipc/ipc "openFileInFolder" image-src) (js/window.apis.openExternal image-src)))} [:span.flex.items-center.gap-1 - (ui/icon "folder-pin") (t (if local? :asset/show-in-folder :asset/open-in-browser))])) + (ui/icon "folder-pin") (t (if local? :asset/show-file-in-folder :asset/open-in-browser))])) (when-not config/publishing? [:<> @@ -594,40 +596,38 @@ [:div.as-plain-image-link (resizable-image config title href metadata full_text false)]))))) -(def timestamp-to-string export-common-handler/timestamp-to-string) - (defn timestamp [{:keys [active _date _time _repetition _wday] :as t} kind] (let [prefix (case kind - "Scheduled" + :scheduled [:i {:class "fa fa-calendar" :style {:margin-right 3.5}}] - "Deadline" + :deadline [:i {:class "fa fa-calendar-times-o" :style {:margin-right 3.5}}] - "Date" + :date nil - "Closed" + :closed nil - "Started" + :started [:i {:class "fa fa-clock-o" :style {:margin-right 3.5}}] - "Start" - "From: " - "Stop" - "To: " + :start + (t :ui/from) + :stop + (t :ui/to) nil) - class (when (= kind "Closed") + class (when (= kind :closed) "line-through")] [:span.timestamp (cond-> {:active (str active)} class (assoc :class class)) - prefix (timestamp-to-string t)])) + prefix (export-common-handler/timestamp-to-string t)])) (defn range [{:keys [start stop]} stopped?] [:div {:class "timestamp-range" :stopped stopped?} - (timestamp start "Start") - (timestamp stop "Stop")]) + (timestamp start :start) + (timestamp stop :stop)]) (declare map-inline) (declare markup-element-cp) @@ -702,7 +702,7 @@ recycled? (str " line-through opacity-70") untitled? (str " opacity-50")) :data-ref page-name - :title (when recycled? "Deleted") + :title (when recycled? (t :ui/deleted)) :draggable true :on-drag-start (fn [e] (editor-handler/block->data-transfer! page-name e true)) @@ -765,7 +765,7 @@ (ldb/page? page-entity) (if untitled? - (t :untitled) + (t :ui/untitled) (let [s (util/trim-safe (if show-unique-title? (block-handler/block-unique-title page-entity {:with-tags? with-tags?}) (:block/title page-entity)))] @@ -1053,9 +1053,9 @@ percent (when in-progress? (int (* 100 (/ loaded total)))) label (case direction - :upload "Uploading" - :download "Downloading" - "Syncing") + :upload (t :asset/uploading) + :download (t :asset/downloading) + (t :asset/syncing)) progress-view (when in-progress? [:div.asset-transfer-progress [:div.asset-transfer-progress-label (str label " " percent "%")] @@ -1091,7 +1091,7 @@ (if progress-view [:div.asset-transfer-shell (or content - [:div.asset-transfer-placeholder (str label " asset...")]) + [:div.asset-transfer-placeholder (t :asset/transfer-placeholder label)]) progress-view] content))) @@ -1143,7 +1143,7 @@ (and (string? uuid-or-title) (string/ends-with? uuid-or-title ".excalidraw")) [:div.draw {:on-click (fn [e] (.stopPropagation e))} - [:div.warning "Excalidraw is no longer supported by default, we plan to support it through plugins."]] + [:div.warning (t :block/excalidraw-no-longer-supported)]] :else (let [blank-title? (string/blank? (:block/title block))] @@ -1230,7 +1230,7 @@ [(assoc attributes :class "inline") (inline-text {:add-margin? false} format macro-content)])) [attributes - [:span.warning {:title (str "Unsupported macro name: " name)} + [:span.warning {:title (t :block.macro/unsupported-name name)} (macro->text name arguments)]])))) (rum/defc nested-link < rum/reactive @@ -1314,7 +1314,7 @@ [config url s label title metadata full_text] (cond (string/blank? s) - [:span.warning {:title "Invalid link"} full_text] + [:span.warning {:title (t :block/invalid-link)} full_text] (= \# (first s)) (->elem :a {:on-click #(route-handler/jump-to-anchor! (mldoc/anchorLink (subs s 1)))} (subs s 1)) @@ -1372,7 +1372,7 @@ {:keys [link-depth]} config link-depth (or link-depth 0)] (if (> link-depth max-depth-of-links) - [:p.warning.text-sm "Block ref nesting is too deep"] + [:p.warning.text-sm (t :block/ref-nesting-too-deep)] (block-reference (assoc config :reference? true :link-depth (inc link-depth) @@ -1540,9 +1540,9 @@ :src src :width width :height height}])))) - [:span.warning.mr-1 {:title "Invalid URL"} + [:span.warning.mr-1 {:title (t :block/invalid-url)} (macro->text "video" arguments)]) - [:span.warning.mr-1 {:title "Empty URL"} + [:span.warning.mr-1 {:title (t :block/empty-url)} (macro->text "video" arguments)])) (defn- macro-else-cp @@ -1564,13 +1564,13 @@ arguments)] (cond (= name "query") - [:div.warning "{{query}} is deprecated. Use '/Query' command instead."] + [:div.warning (t :block.macro/query-deprecated)] (= name "function") (macro-function-cp config arguments) (= name "namespace") - [:div.warning (str "{{namespace}} is deprecated. Use the " common-config/library-page-name " feature instead.")] + [:div.warning (t :block.macro/namespace-deprecated (t :library/title))] (= name "youtube") (when-let [url (first arguments)] @@ -1617,7 +1617,7 @@ (ui/tweet-embed id))))) (= name "embed") - [:div.warning "{{embed}} is deprecated. Use '/Node embed' command instead."] + [:div.warning (t :block.macro/embed-deprecated)] (= name "renderer") (when config/lsp-enabled? @@ -1644,7 +1644,7 @@ [s] (let [result (common-util/safe-read-string s) result' (if (seq result) result - [:div.warning {:title "Invalid hiccup"} + [:div.warning {:title (t :block/invalid-hiccup)} s])] (-> result' (hiccups.core/html) @@ -1718,7 +1718,7 @@ ["Inline_Hiccup" s] ;; String to hiccup (ui/catch-error - [:div.warning {:title "Invalid hiccup"} s] + [:div.warning {:title (t :block/invalid-hiccup)} s] [:span {:dangerouslySetInnerHTML {:__html (hiccup->html s)}}]) @@ -1733,15 +1733,15 @@ ["Timestamp" [(:or "Scheduled" "Deadline") _timestamp]] nil ["Timestamp" ["Date" t]] - (timestamp t "Date") + (timestamp t :date) ["Timestamp" ["Closed" t]] - (timestamp t "Closed") + (timestamp t :closed) ["Timestamp" ["Range" t]] (range t false) ["Timestamp" ["Clock" ["Stopped" t]]] (range t true) ["Timestamp" ["Clock" ["Started" t]]] - (timestamp t "Started") + (timestamp t :started) ["Cookie" ["Percent" n]] [:span {:class "cookie-percent"} @@ -2111,8 +2111,8 @@ (when-let [created-by (and (ldb/get-graph-rtc-uuid (db/get-db)) (:logseq.property/created-by-ref block))] [:div (:block/title created-by)]) - [:div "Created: " (date/int->local-time-2 (:block/created-at block))] - [:div "Last edited: " (date/int->local-time-2 (:block/updated-at block))]]))))])) + [:div (t :block/created-label (date/int->local-time-2 (:block/created-at block)))] + [:div (t :block/last-edited-label (date/int->local-time-2 (:block/updated-at block)))]]))))])) (rum/defc dnd-separator [move-to] @@ -2224,8 +2224,8 @@ (when *show-query? (swap! *show-query? not)))} (ui/icon "settings")) [:div.opacity-75 (if show-query? - "Hide query" - "Set query")]))] + (t :block/hide-query) + (t :block/set-query))]))] [:div (merge {:class (if query? @@ -2238,7 +2238,7 @@ {:on-click on-title-click}))) (cond (and query? blank? (or advanced-query? show-query?)) - [:span.opacity-75.hover:opacity-100 "Untitled query"] + [:span.opacity-75.hover:opacity-100 (t :block/untitled-query)] (and query? blank?) (query-builder-component/builder query {}) :else @@ -2255,8 +2255,8 @@ :on-click (fn [e] (util/stop e) (state/pub-event! [:modal/show-cards (:db/id block)]))} - "Practice") - [:div "Practice cards"])]) + (t :block/practice)) + [:div (t :block/practice-cards)])]) (when-let [property (:logseq.property/created-from-property block)] (when-let [message (when (= :url (:logseq.property/type property)) (first (outliner-property/validate-property-value (db/get-db) property (:db/id block))))] @@ -2272,16 +2272,23 @@ [config block {:keys [*show-query?]}] (let [block' (db/entity (:db/id block)) node-display-type (:logseq.property.node/display-type block') + display-title (:display-title config) db (db/get-db) query? (ldb/class-instance? (entity-plus/entity-memoized db :logseq.class/Query) block')] (cond (and (:page-title? config) (ldb/page? block) (string/blank? (:block/title block))) - [:div.opacity-75 "Untitled"] + [:div.opacity-75 (t :ui/untitled)] (and (ldb/asset? block) (= :pdf (some-> (:logseq.property.asset/type block) string/lower-case keyword))) (asset-cp config block) + display-title + (text-block-title (dissoc config :display-title) + (-> block + (assoc :block/title display-title) + (dissoc :block.temp/ast-title :block.temp/ast-body))) + (:raw-title? config) (text-block-title (dissoc config :raw-title?) block) @@ -2500,11 +2507,11 @@ (shui/dropdown-menu-item {:key "Remove tag" :on-click #(db-property-handler/delete-property-value! (:db/id block) :block/tags (:db/id tag))} - "Remove tag"))]) + (t :block/remove-tag)))]) popup-opts))} (if (and @*hover? (not private-tag?) (not config/publishing?)) [:a.inline-flex.text-muted-foreground - {:title "Remove this tag" + {:title (t :block/remove-this-tag) :style {:margin-top 1 :padding-left 2 :margin-right 2} @@ -2554,7 +2561,7 @@ [:div.flex.flex-row.items-center.gap-1 (when-not (ldb/private-tags (:db/ident tag)) (shui/button - {:title "Remove tag" + {:title (t :block/remove-tag) :variant :ghost :class "!p-1 text-muted-foreground" :size :sm @@ -2665,7 +2672,7 @@ {:variant :ghost :size :sm :class "px-1 py-0 h-6 text-muted-foreground hover:text-foreground" - :title "Add reaction" + :title (t :command.editor/add-reaction) :on-click open-picker! :on-pointer-down (fn [e] (util/stop e))} @@ -2676,9 +2683,9 @@ (let [[sort-desc? set-sort-desc!] (rum/use-state true)] [:div.p-2.text-muted-foreground.text-sm.max-h-96 [:div.font-medium.mb-2.flex.flex-row.gap-2.items-center - [:div "Status history"] + [:div (t :block/status-history)] (shui/button-ghost-icon (if sort-desc? :arrow-down :arrow-up) - {:title "Sort order" + {:title (t :block/sort-order) :class "text-muted-foreground !h-4 !w-4" :icon-props {:size 14} :on-click #(set-sort-desc! (not sort-desc?))})] @@ -2785,7 +2792,7 @@ (when (and (> (count content) (state/block-content-max-length (state/get-current-repo))) (not (contains? #{:code} (:logseq.property.node/display-type block)))) [:div.warning.text-sm - "Large block will not be editable or searchable to not slow down the app, please use another editor to edit this block."]) + (t :block/large-block-warning)]) [:div.flex.flex-row.justify-between.block-content-inner (when-not plugin-slotted? [:div.block-head-wrap @@ -2800,7 +2807,7 @@ (when (> block-refs-count' 0) [:div.h-6 (shui/button {:variant :ghost - :title "Open block references" + :title (t :block/open-block-references) :class (str "px-1 py-0 w-5 h-5 opacity-70 hover:opacity-100" (when (and (util/mobile?) (seq (:block/_parent block))) " !pr-4")) @@ -2839,10 +2846,9 @@ {:on-click (fn [] (set-editing! true) (editor-handler/edit-block! query :max {:container-id (:container-id config)}))} - "Click to fix query: " - (:block/title query)]) + (t :block/click-to-fix-query (:block/title query))]) [:div.flex.flex-1.flex-col.w-full.gap-2 - (ui/block-error "Block Render Error:" + (ui/block-error (t :block/render-error) {:content (or (:block/title query) (:block/title block)) :section-attrs @@ -2916,7 +2922,7 @@ {:id editor-id :class (util/classnames [{:opacity-50 (boolean (or (ldb/built-in? block) (ldb/journal? block)))}])} (ui/catch-error - (ui/block-error "Something wrong in the editor" {}) + (ui/block-error (t :sync/something-wrong) {}) (editor-box {:block block :block-id uuid :block-parent-id block-id @@ -3388,7 +3394,7 @@ (let [element (dom/create-element "div")] (-> element (dom/set-attr! "id" "dragging-ghost-element") - (dom/set-text! (str "Moving " (count blocks) " blocks")) + (dom/set-text! (t :editor/moving-blocks-count (count blocks))) (dom/set-class! "p-2 rounded text-sm")) element))] (doseq [block blocks] @@ -3498,7 +3504,7 @@ (if advanced-query? (src-cp (assoc config :code-block query) {:language "clojure"}) [:div - [:div.opacity-75.ml-5.text-sm.mb-1 "Set query:"] + [:div.opacity-75.ml-5.text-sm.mb-1 (t :block/set-query-label)] (block-container config query)])])) (when (and (not (or (:table? config) (:property? config))) @@ -3796,7 +3802,7 @@ (when-let [langs (map (fn [m] (.-name m)) js/window.CodeMirror.modeInfo)] (let [options (map (fn [lang] {:label lang :value lang}) langs)] (select/select {:items options - :input-default-placeholder "Choose language" + :input-default-placeholder (t :editor/code-language-placeholder) :on-chosen (fn [chosen _ _ e] (let [lang (:value chosen)] @@ -3854,7 +3860,7 @@ (db-property-handler/set-block-property! (:db/id block) :logseq.property.code/lang lang)))) {:align :end})))} - (or language "Choose language") + (or language (t :editor/code-language-placeholder)) (ui/icon "chevron-down")) (shui/button {:variant :text @@ -3863,9 +3869,9 @@ (util/stop-propagation e) (when-let [^js cm (util/get-cm-instance (util/rec-get-node (.-target e) "ls-block"))] (util/copy-to-clipboard! (.getValue cm)) - (notification/show! "Copied!" :success)))} + (notification/show! (t :notification/copied) :success)))} (ui/icon "copy") - "Copy")] + (t :ui/copy))] (lazy-editor/editor config (str (d/squuid)) attr code options) (let [options (:options options) block (:block config)] (when (and (= language "clojure") (contains? (set options) ":results")) @@ -3933,7 +3939,7 @@ [:pre.pre-wrap-white-space (join-lines l)] ["Quote" _l] - [:div.warning "#+BEGIN_QUOTE is deprecated. Use '/Quote' command instead."] + [:div.warning (t :block/deprecated-quote)] ["Raw_Html" content] (when (not html-export?) [:div.raw_html.inline-block @@ -3945,7 +3951,7 @@ {:__html (security/sanitize-html content)}}]) ["Hiccup" content] (ui/catch-error - [:div.warning {:title "Invalid hiccup"} + [:div.warning {:title (t :block/invalid-hiccup)} content] [:div.hiccup_html.inline {:dangerouslySetInnerHTML @@ -3954,10 +3960,10 @@ ["Export" "latex" _options content] (if html-export? (latex/html-export content true false) - [:div.warning "'#+BEGIN_EXPORT latex' is deprecated. Use '/Math block' command instead."]) + [:div.warning (t :block/deprecated-latex-export)]) ["Custom" "query" _options _result _content] - [:div.warning "#+BEGIN_QUERY is deprecated. Use '/Advanced Query' command instead."] + [:div.warning (t :block/deprecated-query-syntax)] ["Custom" "note" _options result _content] (ui/admonition "note" (markup-elements-cp config result)) @@ -4281,7 +4287,7 @@ (ui/foldable [:div.with-foldable-page (page-cp config page) - (when alias? [:span.text-sm.font-medium.opacity-50 " Alias"])] + (when alias? [:span.text-sm.font-medium.opacity-50 (str " " (t :property.built-in/alias))])] items {:debug-id page}) [:div.only-page-blocks items]))])) @@ -4305,7 +4311,7 @@ (ui/foldable [:div (page-cp config page) - (when alias? [:span.text-sm.font-medium.opacity-50 " Alias"])] + (when alias? [:span.text-sm.font-medium.opacity-50 (str " " (t :property.built-in/alias))])] (fn [] (let [{top-level-blocks true others false} (group-by (fn [b] (= (:db/id page) (:db/id (first b)))) @@ -4354,7 +4360,7 @@ (ui/foldable [:div (page-cp config page) - (when alias? [:span.text-sm.font-medium.opacity-50 " Alias"])] + (when alias? [:span.text-sm.font-medium.opacity-50 (str " " (t :property.built-in/alias))])] (fn [] (blocks-container config blocks)) {})])))))] diff --git a/src/main/frontend/components/bug_report.cljs b/src/main/frontend/components/bug_report.cljs index daf4665197..7a4c762887 100644 --- a/src/main/frontend/components/bug_report.cljs +++ b/src/main/frontend/components/bug_report.cljs @@ -9,6 +9,10 @@ [reitit.frontend.easy :as rfe] [rum.core :as rum])) +(defn paste-shortcut-label + [mac?] + (if mac? "⌘+V" "Ctrl+V")) + (defn parse-clipboard-data-transfer "parse dataTransfer @@ -44,7 +48,7 @@ copy-result-to-clipboard! (fn [result] (util/copy-to-clipboard! result) - (notification/show! (t :bug-report/inspector-page-copy-notif))) + (notification/show! (t :bug-report.inspector/copied))) reset-step! (fn [] (set-step! 0) @@ -58,26 +62,27 @@ [:div.flex.flex-col (when (= step 0) - (list [:div.mx-auto (t :bug-report/inspector-page-desc-1)] - [:div.mx-auto (t :bug-report/inspector-page-desc-2)] + (list (for [line (string/split-lines (t :bug-report.inspector/desc + (paste-shortcut-label util/mac?)))] + [:div.mx-auto line]) ;; for mobile - [:input.form-input.is-large.transition.duration-150.ease-in-out {:type "text" :placeholder (t :bug-report/inspector-page-placeholder)}] + [:input.form-input.is-large.transition.duration-150.ease-in-out {:type "text" :placeholder (t :bug-report.inspector/placeholder)}] [:div.flex.justify-between.items-center.mt-2 - [:div (t :bug-report/inspector-page-tip)] - (ui/button (t :bug-report/inspector-page-btn-back) :on-click #(util/open-url (rfe/href :bug-report)))])) + [:div (t :bug-report.inspector/tip)] + (ui/button (t :bug-report.inspector/back) :on-click #(util/open-url (rfe/href :bug-report)))])) (when (= step 1) (list - [:div (t :bug-report/inspector-page-desc-clipboard)] + [:div (t :bug-report.inspector/clipboard-desc)] [:div.flex.justify-between.items-center.mt-2 - [:div (t :bug-report/inspector-page-desc-copy)] - (ui/button (t :bug-report/inspector-page-btn-copy) :on-click #(copy-result-to-clipboard! (js/JSON.stringify (clj->js result) nil 2)))] + [:div (t :bug-report.inspector/copy-desc)] + (ui/button (t :bug-report.inspector/copy) :on-click #(copy-result-to-clipboard! (js/JSON.stringify (clj->js result) nil 2)))] [:div.flex.justify-between.items-center.mt-2 - [:div (t :bug-report/inspector-page-desc-create-issue)] - (ui/button (t :bug-report/inspector-page-btn-create-issue) :href (header/bug-report-url))] + [:div (t :bug-report.inspector/create-issue-desc)] + (ui/button (t :bug-report.inspector/create-issue) :href (header/bug-report-url))] [:div.flex.justify-between.items-center.mt-2 - [:div (t :bug-report/inspector-page-tip)] - (ui/button (t :bug-report/inspector-page-btn-back) :on-click reset-step!)] + [:div (t :bug-report.inspector/tip)] + (ui/button (t :bug-report.inspector/back) :on-click reset-step!)] [:pre.whitespace-pre-wrap [:code (js/JSON.stringify (clj->js result) nil 2)]]))])) @@ -87,7 +92,7 @@ [:div.flex.flex-col ;; container (cond (= name "clipboard-data-inspector") - [:h1.text-2xl.mx-auto.mb-4 (ui/icon "clipboard") " " (-> (t :bug-report/clipboard-inspector-title) (string/capitalize))]) + [:h1.text-2xl.mx-auto.mb-4 (ui/icon "clipboard") " " (-> (t :bug-report.inspector/title) (string/capitalize))]) (cond (= name "clipboard-data-inspector") (clipboard-data-inspector))])) @@ -106,17 +111,17 @@ [:div.flex.flex-col.items-center [:div.flex.items-center.mb-2 (ui/icon "bug") - [:h1.text-3xl.ml-2 (t :bug-report/main-title)]] - [:div.opacity-60 (t :bug-report/main-desc)]] + [:h1.text-3xl.ml-2 (t :bug-report/title)]] + [:div.opacity-60 (t :bug-report/desc)]] [:div.cp__bug-report-reporter.rounded-lg.p-8.mt-8 - [:h1.text-2xl (t :bug-report/section-clipboard-title)] - [:div.opacity-60 (t :bug-report/section-clipboard-desc)] - (report-item-button (t :bug-report/section-clipboard-btn-title) - (t :bug-report/section-clipboard-btn-desc) + [:h1.text-2xl (t :bug-report.clipboard/title)] + [:div.opacity-60 (t :bug-report.clipboard/desc)] + (report-item-button (t :bug-report.clipboard/action-title) + (t :bug-report.clipboard/action-desc) "clipboard" {:on-click #(util/open-url (rfe/href :bug-report-tools {:tool "clipboard-data-inspector"}))}) [:div.py-2] ;; divider [:div.flex.flex-col - [:h1.text-2xl (t :bug-report/section-issues-title)] - [:div.opacity-60 (t :bug-report/section-issues-desc)] - (report-item-button (t :bug-report/section-issues-btn-title) (t :bug-report/section-issues-btn-desc) "message-report" {:on-click #(util/open-url (header/bug-report-url))})]]]) + [:h1.text-2xl (t :bug-report.issue/title)] + [:div.opacity-60 (t :bug-report.issue/desc)] + (report-item-button (t :bug-report.issue/action-title) (t :bug-report.issue/action-desc) "message-report" {:on-click #(util/open-url (header/bug-report-url))})]]]) diff --git a/src/main/frontend/components/class.cljs b/src/main/frontend/components/class.cljs index a2dc9193ca..17f80bb0d9 100644 --- a/src/main/frontend/components/class.cljs +++ b/src/main/frontend/components/class.cljs @@ -1,5 +1,6 @@ (ns frontend.components.class (:require [frontend.components.block :as block] + [frontend.context.i18n :refer [t]] [frontend.db.model :as model] [frontend.state :as state] [frontend.ui :as ui] @@ -30,7 +31,7 @@ default-collapsed? (> (count children-pages) 30)] (ui/foldable [:div.font-medium.opacity-50 - (str "Children (" (count children-pages) ")")] + (t :property/children-count (count children-pages))] [:div.ml-1.mt-2 (class-children-aux class {:default-collapsed? default-collapsed?})] {:default-collapsed? false :title-trigger? true})))) diff --git a/src/main/frontend/components/cmdk/core.cljs b/src/main/frontend/components/cmdk/core.cljs index d69c00b3c9..20cd4f4a61 100644 --- a/src/main/frontend/components/cmdk/core.cljs +++ b/src/main/frontend/components/cmdk/core.cljs @@ -7,7 +7,7 @@ [frontend.components.cmdk.state :as cmdk-state] [frontend.components.icon :as icon-component] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :as i18n :refer [t]] [frontend.db :as db] [frontend.db.async :as db-async] [frontend.db.model :as model] @@ -60,14 +60,28 @@ (let [current-page (state/get-current-page)] (->> [(when current-page - {:filter {:group :current-page} :text "Search only current page" :info "Add filter to search" :icon-theme :gray :icon "file"}) - {:filter {:group :nodes} :text "Search only nodes" :info "Add filter to search" :icon-theme :gray :icon "point-filled"} - {:filter {:group :code} :text "Search only code" :info "Add filter to search" :icon-theme :gray :icon "code"} - {:filter {:group :commands} :text "Search only commands" :info "Add filter to search" :icon-theme :gray :icon "command"} - {:filter {:group :files} :text "Search only files" :info "Add filter to search" :icon-theme :gray :icon "file"} - {:filter {:group :themes} :text "Search only themes" :info "Add filter to search" :icon-theme :gray :icon "palette"}] + {:filter {:group :current-page} :text (t :cmdk.filter/current-page) :info (t :cmdk.filter/add) :icon-theme :gray :icon "file"}) + {:filter {:group :nodes} :text (t :cmdk.filter/nodes) :info (t :cmdk.filter/add) :icon-theme :gray :icon "point-filled"} + {:filter {:group :codes} :text (t :cmdk.filter/codes) :info (t :cmdk.filter/add) :icon-theme :gray :icon "code"} + {:filter {:group :commands} :text (t :cmdk.filter/commands) :info (t :cmdk.filter/add) :icon-theme :gray :icon "command"} + {:filter {:group :files} :text (t :cmdk.filter/files) :info (t :cmdk.filter/add) :icon-theme :gray :icon "file"} + {:filter {:group :themes} :text (t :cmdk.filter/themes) :info (t :cmdk.filter/add) :icon-theme :gray :icon "palette"}] (remove nil?)))) +(defn- group-label + [group] + (case group + :filters (t :cmdk.group/filters) + :current-page (t :cmdk.group/current-page) + :nodes (t :cmdk.group/nodes) + :codes (t :cmdk.group/codes) + :files (t :cmdk.group/files) + :create (t :cmdk.group/create) + :recently-updated-pages (t :cmdk.group/recently-updated) + :commands (t :cmdk.group/commands) + :themes (t :cmdk.group/themes) + (name group))) + ;; The results are separated into groups, and loaded/fetched/queried separately (def default-results {:recently-updated-pages {:status :success :show :less :items nil} @@ -75,7 +89,7 @@ :favorites {:status :success :show :less :items nil} :current-page {:status :success :show :less :items nil} :nodes {:status :success :show :less :items nil} - :code {:status :success :show :less :items nil} + :codes {:status :success :show :less :items nil} :files {:status :success :show :less :items nil} :themes {:status :success :show :less :items nil} :filters {:status :success :show :less :items nil}}) @@ -94,18 +108,18 @@ (when (ldb/class? class) class))] (->> [{:text (cond - class "Configure tag" - class? "Create tag" - :else "Create page") + class (t :cmdk.create/configure-tag) + class? (t :cmdk.create/tag) + :else (t :cmdk.create/page)) :icon (if class "settings" "new-page") :icon-theme :gray :info (cond class - (str "Configure #" class-name) + (t :cmdk.info/configure-tag class-name) class? - (str "Create tag called '" class-name "'") + (t :cmdk.info/create-tag class-name) :else - (str "Create page called '" q "'")) + (t :cmdk.info/create-page q)) :source-create :page :class class}] (remove nil?))))) @@ -143,41 +157,38 @@ [] start-with-slash? - [["Filters" :filters (visible-items :filters)] - ["Current page" :current-page (visible-items :current-page)] - ["Nodes" :nodes (visible-items :nodes)]] + [[(group-label :filters) :filters (visible-items :filters)] + [(group-label :current-page) :current-page (visible-items :current-page)] + [(group-label :nodes) :nodes (visible-items :nodes)]] include-slash? [(when-not node-exists? - ["Create" :create (create-items input)]) + [(group-label :create) :create (create-items input)]) - ["Current page" :current-page (visible-items :current-page)] - ["Nodes" :nodes (visible-items :nodes)] - ["Files" :files (visible-items :files)] - ["Filters" :filters (visible-items :filters)]] + [(group-label :current-page) :current-page (visible-items :current-page)] + [(group-label :nodes) :nodes (visible-items :nodes)] + [(group-label :files) :files (visible-items :files)] + [(group-label :filters) :filters (visible-items :filters)]] filter-group [(when (= filter-group :nodes) - ["Current page" :current-page (visible-items :current-page)]) - [(cond - (= filter-group :current-page) "Current page" - (= filter-group :code) "Code" - :else (name filter-group)) + [(group-label :current-page) :current-page (visible-items :current-page)]) + [(group-label filter-group) filter-group (visible-items filter-group)] (when-not node-exists? - ["Create" :create (create-items input)])] + [(group-label :create) :create (create-items input)])] :else (->> [(when-not node-exists? - ["Create" :create (create-items input)]) - ["Current page" :current-page (visible-items :current-page)] - ["Nodes" :nodes (visible-items :nodes)] - ["Recently updated" :recently-updated-pages (visible-items :recently-updated-pages)] - ["Commands" :commands (visible-items :commands)] - ["Files" :files (visible-items :files)] - ["Filters" :filters (visible-items :filters)]] + [(group-label :create) :create (create-items input)]) + [(group-label :current-page) :current-page (visible-items :current-page)] + [(group-label :nodes) :nodes (visible-items :nodes)] + [(group-label :recently-updated-pages) :recently-updated-pages (visible-items :recently-updated-pages)] + [(group-label :commands) :commands (visible-items :commands)] + [(group-label :files) :files (visible-items :files)] + [(group-label :filters) :filters (visible-items :filters)]] (remove nil?))) order (remove nil? order*)] (for [[group-name group-key group-items] order] @@ -188,22 +199,29 @@ (count (get-in results [group-key :items]))) (mapv #(assoc % :group group-key :item-index (vswap! index inc)) group-items)]))) -(defn state->highlighted-item [state] - (or (some-> state ::highlighted-item deref) - (first @(::all-items-cache state)))) +(defn state->highlighted-item + ([state] + (state->highlighted-item state nil)) + ([state fallback-item] + (or (some-> state ::highlighted-item deref) + fallback-item + (first @(::all-items-cache state))))) -(defn state->action [state] - (let [highlighted-item (state->highlighted-item state) +(defn state->action + ([state] + (state->action state nil)) + ([state fallback-item] + (let [highlighted-item (state->highlighted-item state fallback-item) action (get-action)] - (cond (and (:source-block highlighted-item) (= action :move-blocks)) :trigger - (:source-block highlighted-item) :open - (:file-path highlighted-item) :open - (:source-search highlighted-item) :search - (:source-command highlighted-item) :trigger - (:source-create highlighted-item) :create - (:filter highlighted-item) :filter - (:source-theme highlighted-item) :theme - :else nil))) + (cond (and (:source-block highlighted-item) (= action :move-blocks)) :trigger + (:source-block highlighted-item) :open + (:file-path highlighted-item) :open + (:source-search highlighted-item) :search + (:source-command highlighted-item) :trigger + (:source-create highlighted-item) :create + (:filter highlighted-item) :filter + (:source-theme highlighted-item) :theme + :else nil)))) ;; Each result group has it's own load-results function (defmulti load-results (fn [group _state] group)) @@ -347,14 +365,14 @@ (swap! !results update group merge {:status :success :items items-on-current-page})) (swap! !results update group merge {:status :success :items items}))))) -(defmethod load-results :code [group state] +(defmethod load-results :codes [group state] (let [!input (::input state) !results (::results state) repo (state/get-current-repo) current-page (when-let [id (page-util/get-current-page-id)] (db/entity id)) opts (cmdk-state/cmdk-block-search-options - {:filter-group :code + {:filter-group :codes :dev? config/dev?})] (swap! !results assoc-in [group :status] :loading) (p/let [blocks (search/block-search repo @!input opts) @@ -385,7 +403,7 @@ themes (if (string/blank? @!input) themes (search/fuzzy-search themes @!input :limit 100 :extract-fn :name)) - themes (cons {:name "Logseq Default theme" + themes (cons {:name (t :theme/logseq-default) :pid "logseq-classic-theme" :mode (state/sub :ui/theme) :url nil} themes) @@ -583,7 +601,7 @@ create-class? (string/starts-with? @!input "#") create-page? (= :page (:source-create item)) class (when create-class? (get-class-from-input @!input))] - (if (and (= (:text item) "Configure tag") (:class item)) + (if (:class item) (state/pub-event! [:dialog/show-block (:class item) {:tag-dialog? true}]) (p/let [result (cond create-class? @@ -797,10 +815,10 @@ can-show-more? (< (count visible-items) (count items)) show-less #(swap! (::results state) assoc-in [group :show] :less) show-more #(swap! (::results state) assoc-in [group :show] :more)] - [:div {:class (if (= title "Create") + [:div {:class (if (= group :create) "border-b border-gray-06 last:border-b-0" "border-b border-gray-06 pb-1 last:border-b-0")} - (when-not (= title "Create") + (when-not (= group :create) [:div {:class "text-xs py-1.5 px-3 flex justify-between items-center gap-2 text-gray-11 bg-gray-02 h-8"} [:div {:class "font-bold text-gray-11 pl-0.5 cursor-pointer select-none" :on-click (fn [_e] @@ -828,10 +846,10 @@ ((if (= show :more) show-less show-more)))} (if (= show :more) [:div.flex.flex-row.gap-1.items-center - "Show less" + (t :ui/show-less) (shui/shortcut "mod up" {:style :compact})] [:div.flex.flex-row.gap-1.items-center - "Show more" + (t :ui/show-more) (shui/shortcut "mod down" {:style :compact})])])]) [:div.search-results @@ -926,7 +944,7 @@ (:block/properties page'))] (if link (js/window.open link) - (notification/show! "No link found in this page's properties." :warning))) + (notification/show! (t :cmdk.error/no-page-link) :warning))) (:source-block item) (p/let [block-id (:block/uuid (:source-block item)) @@ -935,9 +953,9 @@ link (re-find editor-handler/url-regex (:block/title block))] (if link (js/window.open link) - (notification/show! "No link found in this block's content." :warning))) + (notification/show! (t :cmdk.error/no-block-link) :warning))) :else - (notification/show! "No link for this search item." :warning)))) + (notification/show! (t :cmdk.error/no-search-item-link) :warning)))) (defn- keydown-handler [state e] @@ -1023,16 +1041,16 @@ action (get-action)] (cond (= action :move-blocks) - "Move blocks to" + (t :cmdk.input/move-blocks-placeholder) (= search-mode :graph) - "Add graph filter" + (t :cmdk.input/add-graph-filter-placeholder) (= action :new-page) - "Type a page name to create" + (t :cmdk.input/type-page-name-placeholder) :else - "What are you looking for?"))) + (t :cmdk.input/default-placeholder)))) (rum/defc input-row [state all-items opts] @@ -1090,16 +1108,18 @@ :on-composition-end debounced-composition-end :default-value input}]])) +(defn- tip-with-shortcut + [template shortcut & [shortcut-opts]] + (into [:div.flex.flex-row.gap-1.items-center.opacity-50.hover:opacity-100] + (i18n/interpolate-rich-text + template + [(shui/shortcut shortcut shortcut-opts)]))) + (defn rand-tip [] (rand-nth - [[:div.flex.flex-row.gap-1.items-center.opacity-50.hover:opacity-100 - [:div "Type"] - (shui/shortcut "/") - [:div "to filter search results"]] - [:div.flex.flex-row.gap-1.items-center.opacity-50.hover:opacity-100 - (shui/shortcut ["mod" "enter"] {:style :combo}) - [:div "to open search in the sidebar"]]])) + [(tip-with-shortcut (t :cmdk.tip/filter-results) "/") + (tip-with-shortcut (t :cmdk.tip/open-sidebar) ["mod" "enter"] {:style :combo})])) (rum/defcs tip < {:init (fn [state] @@ -1108,10 +1128,7 @@ (let [filter' @(::filter state)] (cond filter' - [:div.flex.flex-row.gap-1.items-center.opacity-50.hover:opacity-100 - [:div "Type"] - (shui/shortcut "esc") - [:div "to clear search filter"]] + (tip-with-shortcut (t :cmdk.tip/clear-filter) "esc") :else (::rand-tip inner-state)))) @@ -1137,49 +1154,53 @@ :aria-hidden? true})))])) (rum/defc hints - [state] - (let [action (state->action state) + [state fallback-item] + (let [action (state->action state fallback-item) button-fn (fn [text shortcut & {:as opts}] (hint-button text shortcut {:on-click #(handle-action action (assoc state :opts opts) %) :muted true}))] - (when action - [:div.hints - [:div.text-sm.leading-6 - [:div.flex.flex-row.gap-1.items-center - [:div.font-medium.text-gray-12 "Tip:"] - (tip state)]] + [:div.hints + [:div.text-sm.leading-6 + [:div.flex.flex-row.gap-1.items-center] + [:div.font-medium.text-gray-12 (t :cmdk.tip/label) + (tip state)]] - [:div.gap-2.hidden.md:flex {:style {:margin-right -6}} - (case action - :open - [:<> - (button-fn "Open" ["return"]) - (button-fn "Open in sidebar" ["shift" "return"] {:open-sidebar? true}) - (when (:source-block @(::highlighted-item state)) (button-fn "Copy ref" ["cmd" "c"]))] + [:div.gap-2.hidden.md:flex {:style {:margin-right -6}} + (case action + :open + [:<> + (button-fn (t :cmdk.action/open) ["return"]) + (button-fn (t :cmdk.action/open-in-sidebar) ["shift" "return"] {:open-sidebar? true}) + (when (:source-block (state->highlighted-item state fallback-item)) + (button-fn (t :cmdk.action/copy-ref) ["cmd" "c"]))] - :search - [:<> - (button-fn "Search" ["return"])] + :search + [:<> + (button-fn (t :cmdk.action/search) ["return"])] - :trigger - [:<> - (button-fn "Trigger" ["return"])] + :trigger + [:<> + (button-fn (t :cmdk.action/trigger) ["return"])] - :create - [:<> - (button-fn "Create" ["return"])] + :create + [:<> + (button-fn (t :cmdk.action/create) ["return"])] - :filter - [:<> - (button-fn "Filter" ["return"])] + :filter + [:<> + (button-fn (t :cmdk.action/filter) ["return"])] - nil)]]))) + :theme + [:<> + (button-fn (t :cmdk.action/apply-theme) ["return"])] + + nil)]])) (rum/defc search-only [state group-name] [:div.flex.flex-row.gap-1.items-center - [:div "Search only:"] + [:div (t :cmdk.filter/only-label)] [:div group-name] (shui/button {:variant :ghost @@ -1270,7 +1291,7 @@ (when group-filter [:div.flex.flex-col.px-3.py-1.opacity-70.text-sm - (search-only state (string/capitalize (name group-filter)))]) + (search-only state (group-label group-filter))]) (let [items (filter (fn [[_group-name group-key group-count _group-items]] @@ -1288,8 +1309,8 @@ (result-group state title group-key group-items first-item sidebar?))) [:div.flex.flex-col.p-4.opacity-50 (when-not (string/blank? @*input) - "No matched results")]))] - (when-not sidebar? (hints state))])) + (t :search/no-result))]))] + (when-not sidebar? (hints state first-item))])) (rum/defc cmdk-modal [props] [:div {:class "cp__cmdk__modal rounded-lg w-[90dvw] max-w-4xl relative" diff --git a/src/main/frontend/components/container.cljs b/src/main/frontend/components/container.cljs index c752cac371..47de27a509 100644 --- a/src/main/frontend/components/container.cljs +++ b/src/main/frontend/components/container.cljs @@ -13,7 +13,7 @@ [frontend.components.theme :as theme] [frontend.components.window-controls :as window-controls] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :refer [interpolate-rich-text-node t]] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.db.async :as db-async] @@ -192,31 +192,35 @@ {:on-click state/toggle-document-mode!} "D"] [:div.p-2 - [:p.mb-2 [:b "Document mode"]] + [:p.mb-2 [:b (t :editor.document-mode/title)]] [:ul [:li - [:div.inline-block.mr-1 (ui/render-keyboard-shortcut (shortcut-dh/gen-shortcut-seq :editor/new-line) - :shortcut-id :editor/new-line)] - [:p.inline-block "to create new block"]] - [:li - [:p.inline-block.mr-1 "Click `D` or type"] - [:div.inline-block.mr-1 (ui/render-keyboard-shortcut (shortcut-dh/gen-shortcut-seq :ui/toggle-document-mode) - :shortcut-id :ui/toggle-document-mode)] - [:p.inline-block "to toggle document mode"]]]]))) + [:p.inline-block.mr-1 + (interpolate-rich-text-node + (t :editor.document-mode/new-block-hint) + [[:div.inline-block.mr-1 (ui/render-keyboard-shortcut (shortcut-dh/gen-shortcut-seq :editor/new-line) + :shortcut-id :editor/new-line)]])] + [:li + [:p.inline-block.mr-1 + (interpolate-rich-text-node + (t :editor.document-mode/toggle-desc) + [[:div.inline-block.mr-1 + (ui/render-keyboard-shortcut (shortcut-dh/gen-shortcut-seq :ui/toggle-document-mode) + :shortcut-id :ui/toggle-document-mode)]])]]]]]))) (def help-menu-items - [{:title "Handbook" :icon "book-2" :on-click #(handbooks/toggle-handbooks)} - {:title "Keyboard shortcuts" :icon "command" :on-click #(state/sidebar-add-block! (state/get-current-repo) "shortcut-settings" :shortcut-settings)} - {:title "Documentation" :icon "help" :href "https://docs.logseq.com/"} + [{:title (t :help/handbook) :icon "book-2" :on-click #(handbooks/toggle-handbooks)} + {:title (t :help.shortcuts/label) :icon "command" :on-click #(state/sidebar-add-block! (state/get-current-repo) "shortcut-settings" :shortcut-settings)} + {:title (t :help/docs) :icon "help" :href "https://docs.logseq.com/"} :hr - {:title "Report bug" :icon "bug" :on-click #(rfe/push-state :bug-report)} - {:title "Request feature" :icon "git-pull-request" :href "https://discuss.logseq.com/c/feedback/feature-requests/"} - {:title "Submit feedback" :icon "messages" :href "https://discuss.logseq.com/c/feedback/13"} + {:title (t :help/bug) :icon "bug" :on-click #(rfe/push-state :bug-report)} + {:title (t :help/feature) :icon "git-pull-request" :href "https://discuss.logseq.com/c/feedback/feature-requests/"} + {:title (t :help/submit-feedback) :icon "messages" :href "https://discuss.logseq.com/c/feedback/13"} :hr - {:title "Ask the community" :icon "brand-discord" :href "https://discord.com/invite/KpN4eHY"} - {:title "Support forum" :icon "message" :href "https://discuss.logseq.com/"} + {:title (t :help/ask-community) :icon "brand-discord" :href "https://discord.com/invite/KpN4eHY"} + {:title (t :help/support-forum) :icon "message" :href "https://discuss.logseq.com/"} :hr - {:title "Release notes" :icon "asterisk" :href "https://docs.logseq.com/#/page/changelog"}]) + {:title (t :help/release-notes) :icon "asterisk" :href "https://docs.logseq.com/#/page/changelog"}]) (rum/defc help-menu-popup [] @@ -258,13 +262,15 @@ handbooks-open? (state/sub :ui/handbooks-open?)] [:<> [:div.cp__sidebar-help-btn - [:div.inner - {:title (t :help-shortcut-title) - :on-click #(state/toggle! :ui/help-open?)} - [:svg.scale-125 {:stroke "currentColor", :fill "none", :stroke-linejoin "round", :width "24", :view-box "0 0 24 24", :xmlns "http://www.w3.org/2000/svg", :stroke-linecap "round", :stroke-width "2", :class "icon icon-tabler icon-tabler-help-small", :height "24"} - [:path {:stroke "none", :d "M0 0h24v24H0z", :fill "none"}] - [:path {:d "M12 16v.01"}] - [:path {:d "M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483"}]]]] + (ui/tooltip + [:div.inner + {:on-click #(state/toggle! :ui/help-open?)} + [:svg.scale-125 {:stroke "currentColor", :fill "none", :stroke-linejoin "round", :width "24", :view-box "0 0 24 24", :xmlns "http://www.w3.org/2000/svg", :stroke-linecap "round", :stroke-width "2", :class "icon icon-tabler icon-tabler-help-small", :height "24"} + [:path {:stroke "none", :d "M0 0h24v24H0z", :fill "none"}] + [:path {:d "M12 16v.01"}] + [:path {:d "M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483"}]]] + (t :help.shortcuts/desc) + {:root-props {:delay-duration 100}})] (when help-open? (help-menu-popup)) @@ -304,7 +310,9 @@ (when (context-menu-click-should-hide? target) (shui/popup-hide! id)))) :data-keep-selection true} - content]) + (if (fn? content) + (content {:id id}) + content)]) (merge {:on-before-hide state/dom-clear-selection! :on-after-hide state/state-clear-selection! @@ -316,7 +324,8 @@ (cond (and page (not block-id)) (do - (show! (cp-content/page-title-custom-context-menu-content page-entity)) + (show! (fn [{:keys [id]}] + (cp-content/page-title-custom-context-menu-content page-entity id))) (state/set-state! :page-title/context nil)) block-ref @@ -442,7 +451,7 @@ :on-key-up (fn [e] (when (= "Enter" (.-key e)) (ui/focus-element (ui/main-node))))} - (t :accessibility/skip-to-main-content)] + (t :nav/skip-to-main-content)] [:div.#app-container {:on-mouse-up on-mouse-up} [:div#left-container @@ -459,7 +468,7 @@ (if (state/sub :rtc/uploading?) [:div.flex.items-center.justify-center.full-height-without-header - (ui/loading "Creating remote graph...")] + (ui/loading (t :sync/creating-remote-graph))] (main {:route-match route-match :margin-less-pages? margin-less-pages? :logged? logged? diff --git a/src/main/frontend/components/content.cljs b/src/main/frontend/components/content.cljs index ad84249870..667624c803 100644 --- a/src/main/frontend/components/content.cljs +++ b/src/main/frontend/components/content.cljs @@ -18,6 +18,7 @@ [frontend.handler.property :as property-handler] [frontend.handler.property.util :as pu] [frontend.handler.reaction :as reaction-handler] + [frontend.modules.shortcut.data-helper :as shortcut-dh] [frontend.state :as state] [frontend.ui :as ui] [frontend.util :as util] @@ -95,7 +96,7 @@ (shui/dropdown-menu-item {:key "copy" :on-click #(editor-handler/copy-selection-blocks true)} - (t :editor/copy) + (t :ui/copy) (ui/dropdown-shortcut :editor/copy)) (shui/dropdown-menu-item @@ -106,12 +107,12 @@ (shui/popup-hide!) (shui/dialog-open! #(export/export-blocks block-uuids {:export-type :selected-nodes}))))} - (t :content/copy-export-as)) + (t :export/copy-or-export-as)) (shui/dropdown-menu-item {:key "copy block refs" :on-click editor-handler/copy-block-refs} - (t :content/copy-block-ref)) + (t :block/copy-ref)) (shui/dropdown-menu-separator) @@ -174,12 +175,12 @@ {:key "Open in sidebar" :on-click (fn [_e] (editor-handler/open-block-in-sidebar! block-id))} - (t :content/open-in-sidebar) + (t :sidebar.right/open) (ui/dropdown-shortcut "shift+click")) (shui/dropdown-menu-sub (shui/dropdown-menu-sub-trigger - "Add reaction") + (t :command.editor/add-reaction)) (shui/dropdown-menu-sub-content [:div.p-1 (icon-component/icon-search @@ -191,8 +192,8 @@ (reaction-handler/toggle-reaction! block-id emoji-id) (state/hide-custom-context-menu!) (shui/popup-hide!)) - (notification/show! "Please pick an emoji reaction." :warning)))) - :tabs [[:emoji "Emojis"]] + (notification/show! (t :block.reaction/emoji-required-warning) :warning)))) + :tabs [[:emoji (t :icon/tab-emojis)]] :default-tab :emoji :show-used? true :icon-value nil})])) @@ -230,7 +231,7 @@ {:key "Copy block ref" :on-click (fn [_e] (editor-handler/copy-block-ref! block-id ref/->block-ref))} - (t :content/copy-block-ref)) + (t :block/copy-ref)) ;; TODO Logseq protocol mobile support (when (util/electron?) @@ -241,7 +242,7 @@ tap-f (fn [block-id] (url-util/get-logseq-graph-uuid-url nil current-repo block-id))] (editor-handler/copy-block-ref! block-id tap-f)))} - (t :content/copy-block-url))) + (t :block/copy-url))) (when (and (util/electron?) (ldb/asset? block)) (shui/dropdown-menu-item @@ -258,7 +259,7 @@ :on-click (fn [_] (shui/dialog-open! #(export/export-blocks [block-id] {:export-type :block})))} - (t :content/copy-export-as)) + (t :export/copy-or-export-as)) (when-not property-default-value? (shui/dropdown-menu-item @@ -321,29 +322,29 @@ (shui/dropdown-menu-separator) (shui/dropdown-menu-sub (shui/dropdown-menu-sub-trigger - "Developer tools") + (t :context-menu/developer-tools)) - (shui/dropdown-menu-sub-content - (shui/dropdown-menu-item - {:key "(Dev) Show block data" + (shui/dropdown-menu-sub-content + (shui/dropdown-menu-item + {:key :dev/show-block-data :on-click (fn [] (dev-common-handler/show-entity-data [:block/uuid block-id]))} - (t :dev/show-block-data)) + (shortcut-dh/shortcut-desc-by-id :dev/show-block-data)) (shui/dropdown-menu-item - {:key "(Dev) Show block AST" + {:key :dev/show-block-ast :on-click (fn [] (let [block (db/entity [:block/uuid block-id])] (dev-common-handler/show-content-ast (:block/title block) (get block :block/format :markdown))))} - (t :dev/show-block-ast)) + (shortcut-dh/shortcut-desc-by-id :dev/show-block-ast)) (shui/dropdown-menu-item - {:key "(Dev) Show block content history" + {:key :dev/show-block-content-history :on-click (fn [] (let [token (state/get-auth-id-token) graph-uuid (ldb/get-graph-rtc-uuid (db/get-db))] (p/let [blocks-versions (state/ (for [{:keys [title options]} page-menu-options] - (shui/dropdown-menu-item options title))]))) + (let [on-click (:on-click options)] + (shui/dropdown-menu-item + (assoc options + :on-click (fn [e] + (when-not (false? (when on-click (on-click e))) + (shui/popup-hide! popup-id)))) + title)))]))) ;; TODO: content could be changed ;; Also, keyboard bindings should only be activated after @@ -400,7 +406,7 @@ [:div {:id id} (if hiccup hiccup - [:div.cursor (t :content/click-to-edit)])]) + [:div.cursor (t :editor/click-to-edit)])]) (rum/defc non-hiccup-content [id content on-click on-hide config format] @@ -421,7 +427,7 @@ {:id id :on-click on-click} (if (string/blank? content) - [:div.cursor (t :content/click-to-edit)] + [:div.cursor (t :editor/click-to-edit)] content)])))) (rum/defcs content < rum/reactive diff --git a/src/main/frontend/components/db_based/page.cljs b/src/main/frontend/components/db_based/page.cljs index cb8e6c57ce..28406c8d35 100644 --- a/src/main/frontend/components/db_based/page.cljs +++ b/src/main/frontend/components/db_based/page.cljs @@ -1,6 +1,7 @@ (ns frontend.components.db-based.page "Page components only for DB graphs" (:require [frontend.components.property.config :as property-config] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.util :as util] @@ -23,4 +24,4 @@ :align "start" :as-dropdown? true :dropdown-menu? true}))} - "Configure property"))) + (t :property/configure)))) diff --git a/src/main/frontend/components/e2ee.cljs b/src/main/frontend/components/e2ee.cljs index 5aca99b8d0..f5597aae98 100644 --- a/src/main/frontend/components/e2ee.cljs +++ b/src/main/frontend/components/e2ee.cljs @@ -1,6 +1,7 @@ (ns frontend.components.e2ee (:require [clojure.string :as string] [frontend.common.crypt :as crypt] + [frontend.context.i18n :refer [t]] [frontend.state :as state] [frontend.ui :as ui] [frontend.util :as util] @@ -19,27 +20,20 @@ (shui/dialog-close!))] [:div.e2ee-password-modal-overlay [:div.encryption-password.max-w-2xl.e2ee-password-modal-content.flex.flex-col.gap-8.p-4 - [:div.text-2xl.font-medium "Set password for remote graphs"] + [:div.text-2xl.font-medium (t :encryption/set-password-title)] [:div.init-remote-pw-tips.space-x-4.hidden.sm:flex [:div.flex-1.flex.items-center [:span.px-3.flex (ui/icon "key")] - [:p - [:span "Please make sure you "] - "remember the password you have set, as we are unable to reset or retrieve it in case you forget it, " - [:span "and we recommend you "] - "keep a secure backup " - [:span "of the password."]]] + [:p (t :encryption/remember-password-rich)]] [:div.flex-1.flex.items-center [:span.px-3.flex (ui/icon "lock")] - [:p - "If you lose your password, all of your data in the cloud can’t be decrypted. " - [:span "You will still be able to access the local version of your graph."]]]] + [:p (t :encryption/cloud-password-rich)]]] [:div.flex.flex-col.gap-4 (shui/toggle-password - {:placeholder "Enter password" + {:placeholder (t :encryption/enter-password) :value password :on-change (fn [e] (set-password! (-> e .-target .-value))) :on-blur (fn [] @@ -48,20 +42,20 @@ [:div.flex.flex-col.gap-2 (shui/toggle-password - {:placeholder "Enter password again" + {:placeholder (t :encryption/enter-password-again) :value password-confirm :on-change (fn [e] (set-password-confirm! (-> e .-target .-value))) :on-blur (fn [] (set-matched! (= password-confirm password)))}) (when (false? matched?) [:div.text-warning.text-sm - "Password not matched"])] + (t :encryption/password-not-matched)])] (shui/button {:on-click on-submit :disabled (or (string/blank? password) (false? matched?))} - "Submit")]]])) + (t :ui/submit))]]])) (rum/defc e2ee-password-to-decrypt-private-key [encrypted-private-key private-key-promise refresh-token] @@ -78,7 +72,7 @@ (set-decrypt-fail! true))))))] [:div.e2ee-password-modal-overlay [:div.e2ee-password-modal-content.flex.flex-col.gap-8.p-4 - [:div.text-2xl.font-medium "Enter password for remote graphs"] + [:div.text-2xl.font-medium (t :encryption/enter-password-title)] [:div.flex.flex-col.gap-4 [:div.flex.flex-col.gap-1 (shui/toggle-password @@ -89,11 +83,11 @@ :on-change (fn [e] (set-decrypt-fail! false) (set-password! (-> e .-target .-value)))}) - (when decrypt-fail? [:p.text-warning.text-sm "Wrong password"])] + (when decrypt-fail? [:p.text-warning.text-sm (t :encryption/wrong-password)])] (shui/button {:on-click on-submit :disabled (string/blank? password) :on-key-press (fn [e] (when (= "Enter" (util/ekey e)) (on-submit)))} - "Submit")]]])) + (t :ui/submit))]]])) diff --git a/src/main/frontend/components/editor.cljs b/src/main/frontend/components/editor.cljs index 52cb1398f6..c16dc60193 100644 --- a/src/main/frontend/components/editor.cljs +++ b/src/main/frontend/components/editor.cljs @@ -40,11 +40,14 @@ (defn filter-commands [page? commands] (if page? - (filter (fn [item] - (or - (= "Add new property" (first item)) - (when (= (count item) 5) - (contains? #{"TASK STATUS" "TASK DATE" "PRIORITY"} (last item))))) commands) + (let [task-groups #{(t :editor.slash/group-task-status) + (t :editor.slash/group-task-date) + (t :editor.slash/group-priority)}] + (filter (fn [item] + (or + (= (t :command.editor/add-property) (first item)) + (when (= (count item) 5) + (contains? task-groups (last item))))) commands)) commands)) (defn node-render @@ -70,8 +73,8 @@ (:nlp-date? block') (ui/icon "calendar" {:size 14}) - (or (string/starts-with? (str (:block/title block')) (t :new-tag)) - (string/starts-with? (str (:block/title block')) (t :new-page))) + (or (string/starts-with? (str (:block/title block')) (t :editor/new-tag)) + (string/starts-with? (str (:block/title block')) (t :editor/new-page))) (ui/icon "plus" {:size 14}) :else @@ -79,8 +82,8 @@ (let [title (let [alias (get-in block' [:alias :block/title])] (block-handler/block-unique-title block' {:alias alias}))] - (if (or (string/starts-with? title (t :new-tag)) - (string/starts-with? title (t :new-page))) + (if (or (string/starts-with? title (t :editor/new-tag)) + (string/starts-with? title (t :editor/new-page))) title (block-handler/block-title-with-icon block' (search-handler/highlight-exact-query title q) @@ -184,9 +187,9 @@ ;; Don't show 'New tag' for an internal page because it already shows 'Convert ...' (when-not (let [entity (db/get-page q)] (and (ldb/internal-page? entity) (= (:block/title entity) q))) - [{:block/title (str (t :new-tag) " " q)}]) + [{:block/title (str (t :editor/new-tag) " " q)}]) partial-matched-pages) - (cons {:block/title (str (t :new-page) " " q)} + (cons {:block/title (str (t :editor/new-page) " " q)} partial-matched-pages))))) (defn- search-pages @@ -202,7 +205,7 @@ :db/id (:db/id block) :block/uuid (:block/uuid block) :convert-page-to-tag? true - :friendly-title (util/format "Convert \"%s\" to tag" q)} classes) + :friendly-title (t :page.convert/page-to-tag-action q)} classes) classes)) (editor-handler/> (map (fn [title] {:block/title title - :nlp-date? true}) - date/nlp-pages) + (->> (date/nlp-pages-i18n :nlp-date? true) (take 10))) ;; reorder, shortest and starts-with first. (if (and (seq matched-pages) @@ -237,8 +238,8 @@ :item-render (fn [block _chosen?] (node-render block q {:db-tag? db-tag?})) :empty-placeholder [:div.text-gray-500.text-sm.px-4.py-2 (if db-tag? - "Search for a tag" - "Search for a node")] + (t :editor/search-for-tag) + (t :editor/search-for-node))] :class "black"}) (when (and db-tag? @@ -246,7 +247,7 @@ (not= "page" (string/lower-case q))) [:p.px-1.opacity-50.text-sm.flex.flex-row.items-center.gap-2 (shui/shortcut "mod+enter") - [:span " to display this tag inline instead of at the end of this node."]])]))) + [:span (t :editor/display-tag-inline-hint)]])]))) (rum/defcs page-search < rum/reactive {:init (fn [state] @@ -368,7 +369,7 @@ matched-templates {:on-chosen (editor-handler/template-on-chosen-handler id) :on-enter (fn [_state] (state/clear-editor-action!)) - :empty-placeholder [:div.text-gray-500.px-4.py-2.text-sm "Search for a template"] + :empty-placeholder [:div.text-gray-500.px-4.py-2.text-sm (t :editor/search-template-placeholder)] :item-render (fn [template] (:block/title template)) :class "black"}))) @@ -471,7 +472,7 @@ placeholder (assoc :placeholder placeholder)))) (ui/button - "Submit" + (t :ui/submit) :on-click (fn [e] (util/stop e) diff --git a/src/main/frontend/components/export.cljs b/src/main/frontend/components/export.cljs index 8d90c2d20d..780d1cdd17 100644 --- a/src/main/frontend/components/export.cljs +++ b/src/main/frontend/components/export.cljs @@ -3,7 +3,7 @@ [cljs-time.core :as t] [cljs.pprint :as pprint] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :refer [interpolate-rich-text-node interpolate-sentence t]] [frontend.db :as db] [frontend.handler.block :as block-handler] [frontend.handler.db-based.export :as db-export-handler] @@ -32,31 +32,31 @@ repo (state/get-current-repo)] [:div.flex.flex-col.gap-4 [:div.font-medium.opacity-50 - "Schedule backup"] + (t :export.backup/schedule)] (if (utils/nfsSupported) [:<> (if backup-folder [:div.flex.flex-row.items-center.gap-1.text-sm - [:div.opacity-50 "Backup folder:"] + [:div.opacity-50 (t :export.backup/folder)] backup-folder (shui/button {:variant :ghost :class "!px-1 !py-1" - :title "Change backup folder" + :title (t :export.backup/cancel) :on-click (fn [] (p/do! (db/transact! [[:db/retractEntity :logseq.kv/graph-backup-folder]]) (reset! *backup-folder nil))) :size :sm} - (ui/icon "edit"))] + (ui/icon "x"))] (shui/button {:variant :default :on-click (fn [] (p/let [[folder-name _handle] (export/choose-backup-folder repo)] (reset! *backup-folder folder-name)))} - "Set backup folder first")) + (t :export.backup/set-folder-first))) [:div.opacity-50.text-sm - "Backup will be created every hour."] + (t :export.backup/hourly-note)] (when backup-folder (shui/button @@ -66,67 +66,68 @@ (p/let [result (export/backup-db-graph repo)] (case result true - (notification/show! "Backup successful!" :success) + (notification/show! (t :export/backup-successful) :success) :graph-not-changed - (notification/show! "Graph has not been updated since last export." :success) + (notification/show! (t :export/no-updates-since-last-export) :success) nil) (export/auto-db-backup! repo)) (p/catch (fn [error] (println "Failed to backup.") (js/console.error error)))))} - "Backup now"))] + (t :export.backup/backup-now)))] [:div - [:span "Your browser doesn't support "] - [:a - {:href "https://developer.chrome.com/docs/capabilities/web-apis/file-system-access" - :target "_blank"} - "The File System Access API"] - [:span ", please switch to a Chromium-based browser."]])])) + [:span + (interpolate-sentence + (t :export.backup/unsupported-desc) + :links [{:href "https://developer.chrome.com/docs/capabilities/web-apis/file-system-access" + :target "_blank"}])]])])) (rum/defc export [] (when-let [current-repo (state/get-current-repo)] [:div.export - [:h1.title.mb-8 (t :export)] + [:h1.title.mb-8 (t :export/title)] [:div.flex.flex-col.gap-4.ml-1 [:div [:a.font-medium {:on-click #(export/export-repo-as-sqlite-db! current-repo)} - (t :export-sqlite-db)] - [:p.text-sm.opacity-70.mb-0 "Primary way to backup graph's content to a single .sqlite file."]] + (t :export/sqlite-db)] + [:p.text-sm.opacity-70.mb-0 (t :export.backup/sqlite-desc)]] [:div [:a.font-medium {:on-click #(export/export-repo-as-zip! current-repo)} - (t :export-zip)] - [:p.text-sm.opacity-70.mb-0 "Primary way to backup graph's content and assets to a .zip file."]] + (t :export/zip)] + [:p.text-sm.opacity-70.mb-0 (t :export.backup/zip-desc)]] (when-not (util/mobile?) [:div [:a.font-medium {:on-click #(db-export-handler/export-repo-as-db-edn! current-repo)} - (t :export-db-edn)] - [:p.text-sm.opacity-70.mb-0 "Exports to a readable and editable .edn file. Don't rely on this as a primary backup."]]) + (t :export/db-edn)] + [:p.text-sm.opacity-70.mb-0 (t :export/edn-desc)]]) (when-not (mobile-util/native-platform?) [:div [:a.font-medium {:on-click #(export-text/export-repo-as-markdown! current-repo)} - (t :export-markdown)]]) + (t :export/markdown)]]) (when (util/electron?) [:div [:a.font-medium {:on-click #(export/download-repo-as-html! current-repo)} - (t :export-public-pages)]]) + (t :export/public-pages)]]) [:div [:a.font-medium {:on-click #(export/export-repo-as-debug-transit! current-repo)} - "Export debug transit file"] - [:p.text-sm.opacity-70.mb-0 "Exports to a .transit file to send to us for debugging. Any sensitive data will be removed in the exported file."]] + (t :export/debug-transit-file)] + [:p.text-sm.opacity-70.mb-0 (t :export/debug-transit-desc)]] (if (util/electron?) [:div [:hr] - [:div "Hourly backups are enabled for this graph, " - [:a.ml-1 {:on-click (fn [] - (let [path (config/get-electron-backup-dir (state/get-current-repo))] - (js/window.apis.openPath path)))} - "open backups folder for this graph"]]] + [:div + (interpolate-rich-text-node + (t :export.backup/enabled-desc) + [[:a.ml-1 {:on-click (fn [] + (let [path (config/get-electron-backup-dir (state/get-current-repo))] + (js/window.apis.openPath path)))} + (t :export.backup/open-folder)]])]] (when (and util/web-platform? (not (util/mobile?))) [:div @@ -135,11 +136,11 @@ (def *export-block-type (atom :text)) -(def text-indent-style-options [{:label "dashes" +(def text-indent-style-options [{:title-key :export/indent-style-dashes :selected false} - {:label "spaces" + {:title-key :export/indent-style-spaces :selected false} - {:label "no-indent" + {:title-key :export/indent-style-none :selected false}]) (defn- export-helper @@ -250,7 +251,7 @@ {:class "-m-5"} [:div.p-6 [:div.flex.pb-3 - (ui/button "Text" + (ui/button (t :export/format-text) :class "mr-4 w-20" :on-click #(do (reset! *export-block-type :text) (reset! *content (export-helper top-level-uuids)))) @@ -280,26 +281,26 @@ (if (= :png tp) [:div.flex.items-center.justify-center.relative (when (not @*content) [:div.absolute (ui/loading "")]) - [:img {:alt "export preview" :id "export-preview" :class "my-4" :style {:visibility (when (not @*content) "hidden")}}]] + [:img {:alt (t :export/preview-alt) :id "export-preview" :class "my-4" :style {:visibility (when (not @*content) "hidden")}}]] [:textarea.overflow-y-auto.h-96 {:value @*content :read-only true}]) (if (= :png tp) [:div.flex.items-center - [:div (t :export-transparent-background)] + [:div (t :export/transparent-background)] (ui/checkbox {:class "mr-2 ml-4" :on-change (fn [e] (reset! *content nil) (get-image-blob top-level-uuids (merge options {:transparent-bg? e.currentTarget.checked}) (fn [blob] (reset! *content blob))))})] (let [options (->> text-indent-style-options (mapv (fn [opt] - (if (= @*text-indent-style (:label opt)) + (if (= @*text-indent-style (:title-key opt)) (assoc opt :selected true) opt))))] [:div [:div.flex.items-center [:label.mr-4 {:style {:visibility (if (= :text tp) "visible" "hidden")}} - "Indentation style:"] + (t :export/indent-style-label)] [:select.block.my-2.text-lg.rounded.border.py-0.px-1 {:style {:visibility (if (= :text tp) "visible" "hidden")} :on-change (fn [e] @@ -307,13 +308,13 @@ (state/set-export-block-text-indent-style! value) (reset! *text-indent-style value) (reset! *content (export-helper top-level-uuids))))} - (for [{:keys [label value selected]} options] + (for [{:keys [title-key value selected]} options] [:option (cond-> - {:key label - :value (or value label)} + {:key title-key + :value (or value (name title-key))} selected (assoc :selected selected)) - label])]] + (t title-key)])]] [:div.flex.items-center (ui/checkbox {:class "mr-2" :style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")} @@ -323,7 +324,7 @@ (reset! *text-remove-options (state/get-export-block-text-remove-options)) (reset! *content (export-helper top-level-uuids)))}) [:div {:style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")}} - "[[text]] -> text"] + (t :export/page-ref-text)] (ui/checkbox {:class "mr-2 ml-4" :style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")} @@ -334,7 +335,7 @@ (reset! *content (export-helper top-level-uuids)))}) [:div {:style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")}} - "remove emphasis"] + (t :export/remove-emphasis)] (ui/checkbox {:class "mr-2 ml-4" :style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")} @@ -345,7 +346,7 @@ (reset! *content (export-helper top-level-uuids)))}) [:div {:style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")}} - "remove #tags"]] + (t :export/remove-tags)]] [:div.flex.items-center (ui/checkbox {:class "mr-2" @@ -357,7 +358,7 @@ (reset! *text-other-options (state/get-export-block-text-other-options)) (reset! *content (export-helper top-level-uuids)))}) [:div {:style {:visibility (if (#{:text} tp) "visible" "hidden")}} - "newline after block"] + (t :export/newline-after-block)] (ui/checkbox {:class "mr-2 ml-4" :style {:visibility (if (#{:text} tp) "visible" "hidden")} @@ -367,7 +368,7 @@ (reset! *text-remove-options (state/get-export-block-text-remove-options)) (reset! *content (export-helper top-level-uuids)))}) [:div {:style {:visibility (if (#{:text} tp) "visible" "hidden")}} - "remove properties"]] + (t :export/remove-properties)]] [:div.flex.items-center (ui/checkbox {:class "mr-2" @@ -379,11 +380,11 @@ (reset! *text-other-options (state/get-export-block-text-other-options)) (reset! *content (export-helper top-level-uuids)))}) [:div {:style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")}} - "open blocks only (skip collapsed children)"]] + (t :export/open-blocks-only)]] [:div.flex.items-center [:label.mr-2 {:style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")}} - "level <="] + (t :export/level-lte)] [:select.block.my-2.text-lg.rounded.border.px-2.py-0 {:style {:visibility (if (#{:text :html :opml} tp) "visible" "hidden")} :value (or (:keep-only-level<=N @*text-other-options) :all) @@ -398,14 +399,14 @@ (when @*content [:div.mt-4.flex.flex-row.gap-2 - (ui/button (if @*copied? (t :export-copied-to-clipboard) (t :export-copy-to-clipboard)) + (ui/button (if @*copied? (t :export/copied-to-clipboard) (t :ui/copy-to-clipboard)) :class "mr-4" :on-click (fn [] (if (= tp :png) (js/navigator.clipboard.write [(js/ClipboardItem. #js {"image/png" @*content})]) (util/copy-to-clipboard! @*content :html (when (= tp :html) @*content))) (reset! *copied? true))) - (ui/button (t :export-save-to-file) + (ui/button (t :export/save-to-file) :on-click #(let [file-name (if (uuid? top-level-uuids) (-> (db/get-page top-level-uuids) (util/get-page-title)) diff --git a/src/main/frontend/components/file.cljs b/src/main/frontend/components/file.cljs index db410449f7..26db3f3a0d 100644 --- a/src/main/frontend/components/file.cljs +++ b/src/main/frontend/components/file.cljs @@ -63,7 +63,7 @@ [] [:div.flex-1.overflow-hidden [:h1.title - (t :all-files)] + (t :nav/all-files)] (files-all)]) ;; FIXME: misuse of rpath and fpath diff --git a/src/main/frontend/components/filepicker.cljs b/src/main/frontend/components/filepicker.cljs index 299e04310a..ecfd8f950f 100644 --- a/src/main/frontend/components/filepicker.cljs +++ b/src/main/frontend/components/filepicker.cljs @@ -1,9 +1,10 @@ (ns frontend.components.filepicker "File picker" - (:require [rum.core :as rum] + (:require [cljs-drag-n-drop.core :as dnd] + [frontend.context.i18n :refer [t]] + [goog.dom :as gdom] [logseq.shui.ui :as shui] - [cljs-drag-n-drop.core :as dnd] - [goog.dom :as gdom])) + [rum.core :as rum])) (rum/defcs picker < (rum/local nil ::input) @@ -43,4 +44,4 @@ :height 28}})] [:div {:class "flex flex-col gap-px"} [:div {:class "font-medium text-muted-foreground"} - "Drag 'n' drop files here, or click to select files"]]]]]])) + (t :asset/drop-hint)]]]]]])) diff --git a/src/main/frontend/components/find_in_page.cljs b/src/main/frontend/components/find_in_page.cljs index 56e1cbe701..e7167f1a4d 100644 --- a/src/main/frontend/components/find_in_page.cljs +++ b/src/main/frontend/components/find_in_page.cljs @@ -1,5 +1,6 @@ (ns frontend.components.find-in-page (:require [rum.core :as rum] + [frontend.context.i18n :refer [t]] [frontend.ui :as ui] [frontend.state :as state] [frontend.util :as util] @@ -27,8 +28,8 @@ [:div.flex.w-48.relative [:input#search-in-page-input.form-input.block.sm:text-sm.sm:leading-5.my-2.border-none.mr-4.outline-none {:auto-focus true - :placeholder "Find in page" - :aria-label "Find in page" + :placeholder (t :search.find-in-page/input-placeholder) + :aria-label (t :search.find-in-page/input-placeholder) :value q :on-composition-start on-change-fn :on-composition-end on-change-fn @@ -61,7 +62,7 @@ (debounced-search)) :intent "link" :small? true - :title "Match case" + :title (t :search.find-in-page/match-case) :class (str (when match-case? "active ") "text-lg")) (ui/button @@ -72,7 +73,7 @@ :intent "link" :small? true :class "text-lg" - :title "Previous result") + :title (t :search.find-in-page/previous-result)) (ui/button (ui/icon "caret-down") @@ -82,7 +83,7 @@ :intent "link" :small? true :class "text-lg" - :title "Next result") + :title (t :search.find-in-page/next-result)) (ui/button (ui/icon "x") @@ -91,7 +92,7 @@ :intent "link" :small? true :class "text-lg" - :title "Close")]) + :title (t :ui/close))]) (rum/defc search < rum/reactive [] diff --git a/src/main/frontend/components/header.cljs b/src/main/frontend/components/header.cljs index a2ab43d630..f08df9fb4b 100644 --- a/src/main/frontend/components/header.cljs +++ b/src/main/frontend/components/header.cljs @@ -16,7 +16,7 @@ [frontend.components.settings :as settings] [frontend.components.svg :as svg] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :as i18n :refer [t]] [frontend.db :as db] [frontend.handler :as handler] [frontend.handler.db-based.rtc-flows :as rtc-flows] @@ -44,7 +44,7 @@ < {:key-fn #(identity "home-button")} [] (shui/button-ghost-icon :home - {:title (t :home) + {:title (t :nav/home) :on-click #(do (when (mobile-util/native-iphone?) (state/set-left-sidebar-open! false)) @@ -74,7 +74,7 @@ {:on-click #(shui/dialog-open! (fn [] [:div.p-2.-mb-8 - [:h1.text-3xl.-mt-2.-ml-2 "Collaborators:"] + [:h1.text-3xl.-mt-2.-ml-2 (t :collaboration/members)] (settings/settings-collaboration)]) {:id :rtc-collaborators})}) @@ -98,9 +98,9 @@ [{:keys [on-click]}] (ui/with-shortcut :ui/toggle-left-sidebar "bottom" [:button.#left-menu.cp__header-left-menu.button.icon - {:title (t :header/toggle-left-sidebar) - :on-click on-click} - (ui/icon "menu-2" {:size ui/icon-size})])) + {:on-click on-click} + (ui/icon "menu-2" {:size ui/icon-size})] + (t :header/toggle-left-sidebar))) (defn bug-report-url [] (let [ua (.-userAgent js/navigator) @@ -137,7 +137,7 @@ (if favorited? (page-handler/> [(when (state/enable-editing?) - {:title (t :settings) + {:title (t :nav/settings) :options {:on-click state/open-settings!} :icon (ui/icon "settings")}) (when config/lsp-enabled? - {:title (t :plugins) + {:title (t :nav/plugins) :options {:on-click #(plugin-handler/goto-plugins-dashboard!)} :icon (ui/icon "apps")}) - {:title (t :appearance) + {:title (t :nav/appearance) :options {:on-click #(state/pub-event! [:ui/toggle-appearance])} :icon (ui/icon "color-swatch")} (when (db/get-page common-config/recycle-page-name) - {:title "Recycle" + {:title (t :storage.recycle/title) :options {:on-click page-handler/open-recycle!} :icon (ui/icon "trash")}) (when current-repo - {:title (t :export-graph) + {:title (t :export/graph) :options {:on-click #(shui/dialog-open! export/export)} :icon (ui/icon "database-export")}) (when (and current-repo (state/enable-editing?)) - {:title (t :import) + {:title (t :import/title) :options {:href (rfe/href :import)} :icon (ui/icon "file-upload")}) (when config/publishing? - {:title (t :toggle-theme) + {:title (t :ui/toggle-theme) :options {:on-click #(state/toggle-theme!)} :icon (ui/icon "bulb")}) (when-not (or config/publishing? login?) - {:title (t :login) + {:title (t :ui/login) :options {:on-click #(state/pub-event! [:user/login])} :icon (ui/icon "user")}) @@ -189,57 +189,61 @@ [:b.leading-none (user-handler/username)] [:small.opacity-70 (user-handler/email)] [:i.absolute.opacity-0.group-hover:opacity-100.text-red-rx-09 - {:class "right-1 top-3" :title (t :logout)} + {:class "right-1 top-3" :title (t :ui/logout)} (ui/icon "logout")]] :options {:on-click #(user-handler/logout) :class "w-full"}})] (concat page-menu-and-hr) (remove nil?)))] - (shui/button-ghost-icon :dots - {:title (t :header/more) - :class "toolbar-dots-btn" - :on-pointer-down (fn [^js e] - (shui/popup-show! (.-target e) - (fn [{:keys [id]}] - (for [{:keys [hr item title options icon]} (items)] - (let [on-click' (:on-click options) - href (:href options)] - (if hr - (shui/dropdown-menu-separator) - (shui/dropdown-menu-item - (assoc options - :on-click (fn [^js e] - (when on-click' - (when-not (false? (on-click' e)) - (shui/popup-hide! id))))) - (or item - (if href - [:a.flex.items-center.w-full - {:href href :on-click #(shui/popup-hide! id) - :style {:color "inherit"}} - [:span.flex.items-center.gap-1.w-full - icon [:div title]]] - [:span.flex.items-center.gap-1.w-full - icon [:div title]]))))))) - {:align "end" - :as-dropdown? true - :content-props {:class "w-64" - :align-offset -32}}))}))) + (ui/tooltip + (shui/button-ghost-icon + :dots {:class "toolbar-dots-btn" + :on-pointer-down (fn [^js e] + (shui/popup-show! (.-target e) + (fn [{:keys [id]}] + (for [{:keys [hr item title options icon]} (items)] + (let [on-click' (:on-click options) + href (:href options)] + (if hr + (shui/dropdown-menu-separator) + (shui/dropdown-menu-item + (assoc options + :on-click (fn [^js e] + (when on-click' + (when-not (false? (on-click' e)) + (shui/popup-hide! id))))) + (or item + (if href + [:a.flex.items-center.w-full + {:href href :on-click #(shui/popup-hide! id) + :style {:color "inherit"}} + [:span.flex.items-center.gap-1.w-full + icon [:div title]]] + [:span.flex.items-center.gap-1.w-full + icon [:div title]]))))))) + {:align "end" + :as-dropdown? true + :content-props {:class "w-64" + :align-offset -32}}))}) + (t :header/more) + {:trigger-props {:as-child true}}))) (rum/defc back-and-forward < {:key-fn #(identity "nav-history-buttons")} [] [:div.flex.flex-row (ui/with-shortcut :go/backward "bottom" - (shui/button-ghost-icon :arrow-left - {:title (t :header/go-back) :on-click #(js/window.history.back) - :class "it navigation nav-left"})) + (shui/button-ghost-icon + :arrow-left {:on-click #(js/window.history.back) + :class "it navigation nav-left"}) + (t :header/go-back)) (ui/with-shortcut :go/forward "bottom" - (shui/button-ghost-icon :arrow-right - {:title (t :header/go-forward) :on-click #(js/window.history.forward) - :class "it navigation nav-right"}))]) + (shui/button-ghost-icon + :arrow-right {:on-click #(js/window.history.forward) + :class "it navigation nav-right"}) + (t :header/go-forward))]) (rum/defc updater-tips-new-version [t] @@ -268,7 +272,7 @@ (when downloaded [:div.cp__header-tips - [:p (t :updater/new-version-install) + [:p (t :updater/update-ready-to-install) [:a.restart.ml-2 {:on-click #(handler/quit-and-install-new-version!)} (svg/reload 16) [:strong (t :updater/quit-and-install)]]]]))) @@ -329,13 +333,13 @@ :class "block h-4 w-4 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none"})) (shui/tooltip-content {:onPointerDownOutside (fn [e] (.preventDefault e))} - (str "Highlight recent blocks" - (when (not= recent-days 0) - (str ": " recent-days " days ago"))))))) + (if (zero? recent-days) + (t :header/highlight-recent-blocks) + (t :header/highlight-recent-blocks-days-ago recent-days)))))) (shui/button {:variant :ghost :size :sm - :title "Quit highlight recent blocks" + :title (t :header/quit-highlight-recent-blocks) :class "opacity-50 hover:opacity-100" :on-click (fn [] (state/toggle-highlight-recent-blocks!))} (ui/icon "x" {:size 16}))])) @@ -373,7 +377,7 @@ (when (and running? (= repo current-repo)) [:div.search-index-progress [ui/loading ""] - [:span.search-index-progress__text (str "Indexing " progress' "%")] + [:span.search-index-progress__text (t :search/index-progress progress')] [:div.search-index-progress__bar [:div.search-index-progress__bar-fill {:style {:width (str progress' "%")}}]]]))) @@ -406,19 +410,20 @@ (when-not (or (state/home?) custom-home-page?) (ui/with-shortcut :go/backward "bottom" [:button.it.navigation.nav-left.button.icon.opacity-70 - {:title (t :header/go-back) :on-click #(js/window.history.back)} - (ui/icon "chevron-left" {:size 26})])) + {:on-click #(js/window.history.back)} + (ui/icon "chevron-left" {:size 26})] + (t :header/go-back))) ;; search button for non-mobile (when current-repo (ui/with-shortcut :go/search "right" [:button.button.icon#search-button {:data-keep-selection true - :title (t :header/search) :on-click #(do (when (or (mobile-util/native-android?) (mobile-util/native-iphone?)) (state/set-left-sidebar-open! false)) (state/pub-event! [:go/search]))} - (ui/icon "search" {:size ui/icon-size})])))]] + (ui/icon "search" {:size ui/icon-size})] + (t :nav/search))))]] [:div.r.flex.drag-region.justify-between.items-center.gap-2.overflow-x-hidden.w-full [:div.flex.flex-1 @@ -461,7 +466,7 @@ (when config/publishing? [:a.text-sm.font-medium.button {:href (rfe/href :graph)} - (t :graph)]) + (t :nav/graph)]) (toolbar-dots-menu {:t t :current-repo current-repo diff --git a/src/main/frontend/components/icon.cljs b/src/main/frontend/components/icon.cljs index 7ae3902aca..185771aeb0 100644 --- a/src/main/frontend/components/icon.cljs +++ b/src/main/frontend/components/icon.cljs @@ -5,6 +5,7 @@ [cljs-bean.core :as bean] [clojure.string :as string] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.search :as search] [frontend.storage :as storage] [frontend.ui :as ui] @@ -196,7 +197,9 @@ (defn- normalize-tabs [tabs default-tab] - (let [tabs (or tabs [[:all "All"] [:emoji "Emojis"] [:icon "Icons"]]) + (let [tabs (or tabs [[:all (t :icon/tab-all)] + [:emoji (t :icon/tab-emojis)] + [:icon (t :icon/tab-icons)]]) default-tab (or default-tab (ffirst tabs) :all) default-tab (if (some #(= (first %) default-tab) tabs) default-tab @@ -211,11 +214,11 @@ (filterv #(= :emoji (:type %)) used-items)) sections (cond-> [] (and show-used? (seq emoji-used-items)) - (conj {:title "Frequently used" + (conj {:title (t :ui/frequently-used) :items emoji-used-items :virtual-list? false}) true - (conj {:title (util/format "Emojis (%s)" (count emojis*)) + (conj {:title (t :icon/emojis-count (count emojis*)) :items emojis* :virtual-list? true}))] sections)) @@ -242,7 +245,7 @@ (rum/defc icons-cp < rum/static [icons opts] (pane-section - (util/format "Icons (%s)" (count icons)) + (t :icon/icons-count (count icons)) icons opts)) @@ -254,11 +257,11 @@ opts (assoc opts :virtual-list? false)] [:div.all-pane.pb-10 (when (count used-items) - (pane-section "Frequently used" used-items opts)) - (pane-section (util/format "Emojis (%s)" (count emojis)) + (pane-section (t :ui/frequently-used) used-items opts)) + (pane-section (t :icon/emojis-count (count emojis)) emoji-items opts) - (pane-section (util/format "Icons (%s)" (count (get-tabler-icons))) + (pane-section (t :icon/icons-count (count (get-tabler-icons))) icon-items opts)])) @@ -414,7 +417,10 @@ [(shui/input {:auto-focus true :ref *input-ref - :placeholder (util/format "Search %ss" (string/lower-case (name tab))) + :placeholder (case tab + :emoji (t :icon/search-emojis) + :icon (t :icon/search-icons) + (t :icon/search-all)) :default-value "" :on-focus #(reset! *select-mode? false) :on-key-down (fn [^js e] @@ -451,7 +457,7 @@ (let [matched (concat (:emojis result) (:icons result))] (when (seq matched) (pane-section - (util/format "Matched (%s)" (count matched)) + (t :icon/matched-count (count matched)) matched opts)))] [:div.flex.flex-1.flex-col.gap-1 @@ -532,4 +538,4 @@ (if (vector? icon-value) ; hiccup icon-value (icon icon-value (merge {:color? true} icon-props))) - (or empty-label "Empty")))))) + (or empty-label (t :ui/empty))))))) diff --git a/src/main/frontend/components/imports.cljs b/src/main/frontend/components/imports.cljs index ce352c7cb5..c546c47192 100644 --- a/src/main/frontend/components/imports.cljs +++ b/src/main/frontend/components/imports.cljs @@ -10,7 +10,7 @@ [frontend.components.repo :as repo] [frontend.components.svg :as svg] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :refer [t t-en]] [frontend.db :as db] [frontend.fs :as fs] [frontend.handler.assets :as assets-handler] @@ -69,7 +69,7 @@ [& {:keys [reload?] :or {reload? true}}] (state/pub-event! [:graph/sync-context]) - (notification/show! "Import finished!" :success) + (notification/show! (t :import/file-finished) :success) (shui/dialog-close! :import-indicator) (route-handler/redirect-to-home!) (if util/web-platform? @@ -86,10 +86,10 @@ (let [graph-name (string/trim graph-name)] (cond (string/blank? graph-name) - (notification/show! "Empty graph name." :error) + (notification/show! (t :import/empty-graph-name) :error) (repo-handler/graph-already-exists? graph-name) - (notification/show! "Please specify another name as another graph with this name already exists!" :error) + (notification/show! (t :import/graph-name-conflict) :error) :else (let [reader (js/FileReader.)] @@ -108,10 +108,10 @@ (let [graph-name (string/trim graph-name)] (cond (string/blank? graph-name) - (notification/show! "Empty graph name." :error) + (notification/show! (t :import/empty-graph-name) :error) (repo-handler/graph-already-exists? graph-name) - (notification/show! "Please specify another name as another graph with this name already exists!" :error) + (notification/show! (t :import/graph-name-conflict) :error) :else (db-import-handler/import-from-sqlite-zip! file graph-name @@ -122,10 +122,10 @@ (let [graph-name (string/trim graph-name)] (cond (string/blank? graph-name) - (notification/show! "Empty graph name." :error) + (notification/show! (t :import/empty-graph-name) :error) (repo-handler/graph-already-exists? graph-name) - (notification/show! "Please specify another name as another graph with this name already exists!" :error) + (notification/show! (t :import/graph-name-conflict) :error) :else (do @@ -148,7 +148,7 @@ (.readAsText reader file))))) :else - (notification/show! "Please choose an EDN or a JSON file." + (notification/show! (t :import/select-edn-or-json) :error)))) (rum/defcs set-graph-name-dialog @@ -163,7 +163,7 @@ [:div.sm:flex.sm:items-start [:div.mt-3.text-center.sm:mt-0.sm:text-left [:h3#modal-headline.leading-6.font-medium.pb-2 - "New graph name:"]]] + (t :import/new-graph-name)]]] [:input.form-input.block.w-full.sm:text-sm.sm:leading-5.my-2.mb-4 {:auto-focus true @@ -174,7 +174,7 @@ (on-submit)))}] [:div.mt-5.sm:mt-4.flex - (ui/button "Submit" + (ui/button (t :ui/submit) {:on-click on-submit})]])) (rum/defc import-file-graph-dialog @@ -206,9 +206,9 @@ (shui/form-field {:name "graph-name"} (fn [field error] (shui/form-item - (shui/form-label "New graph name") + (shui/form-label (t :import/new-graph-name)) (shui/form-control - (shui/input (merge {:placeholder "Graph name"} field))) + (shui/input (merge {:placeholder (t :import/graph-name-placeholder)} field))) (when error (shui/form-description [:b.text-red-800 (:message error)]))))) @@ -217,7 +217,7 @@ (fn [field] (shui/form-item {:class "pt-3 flex justify-start items-center space-x-3 space-y-0 my-3 pr-3"} - (shui/form-label "Extract inline code snippets as child blocks") + (shui/form-label (t :import/extract-inline-code-snippets)) (shui/form-control (shui/checkbox {:checked (:value field) :on-checked-change (:onChange field)}))))) @@ -226,7 +226,7 @@ (fn [field] (shui/form-item {:class "pt-3 flex justify-start items-center space-x-3 space-y-0 my-3 pr-3"} - (shui/form-label "Import all tags") + (shui/form-label (t :import/all-tags)) (shui/form-control (shui/checkbox {:checked (:value field) :on-checked-change (fn [e] @@ -237,18 +237,18 @@ (fn [field _error] (shui/form-item {:class "pt-3"} - (shui/form-label "Import specific tags") + (shui/form-label (t :import/specific-tags)) (shui/form-control (shui/input (merge field - {:placeholder "tag 1, tag 2" :disabled convert-all-tags-input}))) - (shui/form-description "Tags are case insensitive")))) + {:placeholder (t :import/tag-classes-placeholder) :disabled convert-all-tags-input}))) + (shui/form-description (t :import/tags-case-insensitive))))) (shui/form-field {:name "remove-inline-tags?"} (fn [field] (shui/form-item {:class "pt-3 flex justify-start items-center space-x-3 space-y-0 my-3 pr-3"} - (shui/form-label "Remove inline tags") - (shui/form-description "Default behavior for DB graphs") + (shui/form-label (t :import/remove-inline-tags)) + (shui/form-description (t :import/default-db-graph-behavior)) (shui/form-control (shui/checkbox {:checked (:value field) :on-checked-change (:onChange field)}))))) @@ -257,64 +257,59 @@ (fn [field _error] (shui/form-item {:class "pt-3"} - (shui/form-label "Import additional tags from property values") + (shui/form-label (t :import/property-value-tags)) (shui/form-control - (shui/input (merge {:placeholder "e.g. type"} field))) + (shui/input (merge {:placeholder (t :import/property-classes-placeholder)} field))) (shui/form-description - "Properties are case insensitive and separated by commas")))) + (t :import/properties-case-insensitive-commas))))) (shui/form-field {:name "property-parent-classes"} (fn [field _error] (shui/form-item {:class "pt-3"} - (shui/form-label "Import tag parents from property values") + (shui/form-label (t :import/property-value-tag-parents)) (shui/form-control - (shui/input (merge {:placeholder "e.g. parent"} field))) + (shui/input (merge {:placeholder (t :import/property-parent-classes-placeholder)} field))) (shui/form-description - "Properties are case insensitive and separated by commas")))) + (t :import/properties-case-insensitive-commas))))) - (shui/button {:type "submit" :class "right-0 mt-3"} "Submit")]))]) + (shui/button {:type "submit" :class "right-0 mt-3"} (t :ui/submit))]))]) (defn- validate-imported-data [db import-state files] (when-let [org-files (seq (filter #(= "org" (path/file-ext (:path %))) files))] (log/info :org-files (mapv :path org-files)) - (notification/show! (str "Imported " (count org-files) " org file(s) as markdown. Support for org files will be added later.") + (notification/show! (t :import/org-files-imported (count org-files)) :info false)) (when-let [ignored-files (seq @(:ignored-files import-state))] - (notification/show! (str "Import ignored " (count ignored-files) " " - (if (= 1 (count ignored-files)) "file" "files") - ". See the javascript console for more details.") + (notification/show! (t :import/ignored-files (count ignored-files)) :info false) (log/error :import-ignored-files {:msg (str "Import ignored " (count ignored-files) " file(s)")}) (pprint/pprint ignored-files)) (when-let [ignored-assets (seq @(:ignored-assets import-state))] - (notification/show! (str "Import ignored " (count ignored-assets) " " - (if (= 1 (count ignored-assets)) "asset" "assets") - ". See the javascript console for more details.") + (notification/show! (t :import/ignored-assets (count ignored-assets)) :info false) (log/error :import-ignored-assets {:msg (str "Import ignored " (count ignored-assets) " asset(s)")}) (pprint/pprint ignored-assets)) (when-let [ignored-props (seq @(:ignored-properties import-state))] (notification/show! [:.mb-2 - [:.text-lg.mb-2 (str "Import ignored " (count ignored-props) " " - (if (= 1 (count ignored-props)) "property" "properties"))] + [:.text-lg.mb-2 (t :import/ignored-properties (count ignored-props))] [:span.text-xs - "To fix a property type, change the property value to the correct type and reimport the graph"] + (t :import/ignored-properties-fix)] (->> ignored-props (map (fn [{:keys [property value schema location]}] [(str "Property " (pr-str property) " with value " (pr-str value)) (if (= property :icon) (if (:page location) - (str "Page icons can't be imported. Go to the page " (pr-str (:page location)) " to manually import it.") - (str "Block icons can't be imported. Manually import it at the block: " (pr-str (:block location)))) + (t :import/page-icons-cannot-be-imported (pr-str (:page location))) + (t :import/block-icons-cannot-be-imported (pr-str (:block location)))) (if (not= (get-in schema [:type :to]) (get-in schema [:type :from])) - (str "Property value has type " (get-in schema [:type :to]) " instead of type " (get-in schema [:type :from])) - "Property should be imported manually"))])) + (t :import/property-type-mismatch (get-in schema [:type :to]) (get-in schema [:type :from])) + (t :import/property-import-manually)))])) (map (fn [[k v]] [:dl.my-2.mb-0 - [:dt.m-0 [:strong k]] + [:dt.m-0 [:strong k]] [:dd {:class "text-warning"} v]])))] :warning false)) (let [{:keys [errors]} (db-validate/validate-local-db! db {:verbose true})] @@ -322,7 +317,7 @@ (do (log/error :import-errors {:msg (str "Import detected " (count errors) " invalid block(s):")}) (pprint/pprint errors) - (notification/show! (str "Import detected " (count errors) " invalid block(s). These blocks may be buggy when you interact with them. See the javascript console for more.") + (notification/show! (t :import/invalid-blocks-detected (count errors)) :warning false)) (log/info :import-valid {:msg "Valid import!"})))) @@ -337,14 +332,11 @@ (defn- read-and-copy-asset [repo repo-dir file assets buffer-handler] (let [^js file-object (:file-object file)] (if (assets-handler/exceed-limit-size? file-object) - (do - (js/console.log (str "Skipped copying asset " (pr-str (:path file)) " because it is larger than the 100M max.")) + (let [path (pr-str (:path file))] + (log/info :import-asset-skipped-too-large {:msg (t-en :import/asset-too-large-warning path)}) ;; This asset will also be included in the ignored-assets count. Better to be explicit about ignoring ;; these so users are aware of this - (notification/show! - (str "Skipped copying asset " (pr-str (:path file)) " because it is larger than the 100M max.") - :info - false)) + (notification/show! (t :import/asset-too-large-warning path) :info false)) (p/let [buffer (.arrayBuffer file-object) bytes-array (js/Uint8Array. buffer) checksum (db-asset/ (.-scrollWidth el) + (+ (.-clientWidth el) 1))) + (set-truncated?! false))) + title-el [:span.page-title {:ref *title-ref + :class (when untitled? "opacity-50")} + display-title]] + (hooks/use-effect! + (fn [] + (if-let [^js el (rum/deref *title-ref)] + (let [observer (js/ResizeObserver. (fn [_] (sync-truncated!)))] + (.observe observer el) + (sync-truncated!) + #(.disconnect observer)) + (do + (set-truncated?! false) + nil))) + [page-id display-title tooltip-title]) + (hooks/use-effect! + (fn [] + (let [raf-id (js/requestAnimationFrame sync-truncated!)] + #(js/cancelAnimationFrame raf-id))) + [left-sidebar-resized-at]) + (if (and truncated? (not (string/blank? tooltip-title))) + (ui/tooltip title-el tooltip-title) + title-el))) + (rum/defc ^:large-vars/cleanup-todo page-name < rum/reactive db-mixins/query [page recent?] (when-let [id (:db/id page)] (let [page (db/sub-block id) + left-sidebar-resized-at (rum/react ui-handler/*left-sidebar-resized-at) icon (icon/get-node-icon-cp page {:size 16}) title (:block/title page) untitled? (db-model/untitled-page? title) + display-title (cond + (not (db/page? page)) + (block/inline-text :markdown (string/replace (apply str (take 64 (:block/title page))) "\n" " ")) + untitled? (t :ui/untitled) + :else (block-handler/block-unique-title page)) + tooltip-title (or (block-handler/block-unique-title page) + (when untitled? (t :ui/untitled))) ctx-icon #(shui/tabler-icon %1 {:class "scale-90 pr-1 opacity-80"}) open-in-sidebar #(state/sidebar-add-block! (state/get-current-repo) @@ -58,12 +98,12 @@ :on-click #(page-handler/ - {:on-click - (fn [e] - (if (gobj/get e "shiftKey") - (open-in-sidebar) - (route-handler/redirect-to-page! (:block/uuid page) {:click-from-recent? recent?}))) - :on-context-menu (fn [^js e] - (shui/popup-show! e (x-menu-content) - {:as-dropdown? true - :content-props {:on-click (fn [] (shui/popup-hide!)) - :class "w-60"}}) - (util/stop e))} - (ldb/object? page) - (assoc :title (block-handler/block-unique-title page)))) + {:on-click + (fn [e] + (if (gobj/get e "shiftKey") + (open-in-sidebar) + (route-handler/redirect-to-page! (:block/uuid page) {:click-from-recent? recent?}))) + :on-context-menu (fn [^js e] + (shui/popup-show! e (x-menu-content) + {:as-dropdown? true + :content-props {:on-click (fn [] (shui/popup-hide!)) + :class "w-60"}}) + (util/stop e))}) [:span.page-icon {:key "page-icon"} icon] - [:span.page-title {:key "title" - :class (when untitled? "opacity-50")} - (cond - (not (db/page? page)) - (block/inline-text :markdown (string/replace (apply str (take 64 (:block/title page))) "\n" " ")) - untitled? (t :untitled) - :else (block-handler/block-unique-title page))] + (page-title-content id display-title tooltip-title untitled? left-sidebar-resized-at) ;; dots trigger (shui/button @@ -132,6 +163,15 @@ [:div.sidebar-graphs (repo/graphs-selector)]) +(defn navigation-label-key + [nav] + (case nav + :flashcards :nav/flashcards + :all-pages :nav.all-pages/label + :graph-view :nav/graph-view + :tag/tasks :nav/tasks + :tag/assets :nav/assets)) + (rum/defc sidebar-navigations-edit-content [{:keys [_id navs checked-navs set-checked-navs!]}] (let [[local-navs set-local-navs!] (rum/use-state checked-navs)] @@ -141,8 +181,7 @@ (set-checked-navs! local-navs)) [local-navs]) - (for [nav navs - :let [name' (name nav)]] + (for [nav navs] (shui/dropdown-menu-checkbox-item {:checked (contains? (set local-navs) nav) :onCheckedChange (fn [v] (set-local-navs! @@ -150,8 +189,7 @@ (if v (conj local-navs nav) (filterv #(not= nav %) local-navs)))))} - (tt (keyword "left-side-bar" name') - (keyword "right-side-bar" name')))))) + (t (navigation-label-key nav)))))) (rum/defc sidebar-content-group < rum/reactive [name {:keys [class count more header-props enter-show-more? collapsable?]} child] @@ -186,7 +224,7 @@ [checked-navs]) (sidebar-content-group - [:a.wrap-th [:strong.flex-1 "Navigations"]] + [:a.wrap-th [:strong.flex-1 (t :sidebar.left/navigations)]] {:collapsable? false :enter-show-more? true :header-props {:on-click (fn [^js e] (when-let [^js _el (some-> (.-target e) (.closest ".as-edit"))] @@ -218,7 +256,7 @@ {:class "journals-nav" :active (and (not srs-open?) (or (= route-name :all-journals) (= route-name :home))) - :title (t :left-side-bar/journals) + :title (t :nav/journals) :on-click-handler (fn [e] (if (gobj/get e "shiftKey") (route-handler/sidebar-journals!) @@ -233,7 +271,7 @@ (let [num (state/sub :srs/cards-due-count)] (sidebar-item {:class "flashcards-nav" - :title (t :right-side-bar/flashcards) + :title (t :nav/flashcards) :icon "infinity" :shortcut :go/flashcards :active srs-open? @@ -245,7 +283,7 @@ (= nav :graph-view) (sidebar-item {:class "graph-view-nav" - :title (t :right-side-bar/graph-view) + :title (t :nav/graph-view) :href (rfe/href :graph) :active (and (not srs-open?) (= route-name :graph)) :icon "hierarchy" @@ -254,7 +292,7 @@ (= nav :all-pages) (sidebar-item {:class "all-pages-nav" - :title (t :right-side-bar/all-pages) + :title (t :nav.all-pages/label) :href (rfe/href :all-pages) :active (and (not srs-open?) (= route-name :all-pages)) :icon "files"}) @@ -265,8 +303,7 @@ (when-let [tag-uuid (and class-ident (:block/uuid (db/entity class-ident)))] (sidebar-item {:class (str "tag-view-nav " name'') - :title (tt (keyword "left-side-bar" name'') - (keyword "right-side-bar" name'')) + :title (t (navigation-label-key nav)) :href (rfe/href :page {:name tag-uuid}) :active (= (str tag-uuid) (get-in route-match [:path-params :name])) :icon "hash"})))))]))) @@ -277,7 +314,7 @@ favorite-entities (page-handler/get-favorites)] (sidebar-content-group [:a.wrap-th - [:strong.flex-1 (t :left-side-bar/nav-favorites)]] + [:strong.flex-1 (t :sidebar.left/favorites)]] {:class "favorites" :count (count favorite-entities) @@ -301,7 +338,7 @@ [] (let [pages (recent-handler/get-recent-pages)] (sidebar-content-group - [:a.wrap-th [:strong.flex-1 (t :left-side-bar/nav-recent-pages)]] + [:a.wrap-th [:strong.flex-1 (t :sidebar.left/recent-pages)]] {:class "recent" :count (count pages)} @@ -309,8 +346,7 @@ [:ul.text-sm (for [page pages] [:li.recent-item.select-none.font-medium - {:key (str "recent-" (:db/id page)) - :title (block-handler/block-unique-title page)} + {:key (str "recent-" (:db/id page))} (page-name page true)])]))) (rum/defc ^:large-vars/cleanup-todo sidebar-container @@ -446,7 +482,8 @@ (.. el-doc -classList (add "is-resizing-buf")))) (.on "dragend" (fn [] (.. sidebar-el -classList (remove "is-resizing")) - (.. el-doc -classList (remove "is-resizing-buf")))))) + (.. el-doc -classList (remove "is-resizing-buf")) + (reset! ui-handler/*left-sidebar-resized-at (js/Date.now)))))) #())) []) [:span.left-sidebar-resizer {:ref *el-ref}])) diff --git a/src/main/frontend/components/library.cljs b/src/main/frontend/components/library.cljs index 86495a1e40..08ee1a0406 100644 --- a/src/main/frontend/components/library.cljs +++ b/src/main/frontend/components/library.cljs @@ -2,6 +2,7 @@ "Library page" (:require [clojure.string :as string] [frontend.components.select :as components-select] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.handler.editor :as editor-handler] [frontend.search :as search] @@ -47,7 +48,7 @@ {:outliner-op :save-block}) (set-selected-choices! (disj selected-choices chosen))))) :multiple-choices? true - :input-default-placeholder "Add pages" + :input-default-placeholder (t :library/add-pages) :show-new-when-not-exact-match? false :on-input set-input! :input-opts {:class "!p-1 !text-sm"} @@ -68,4 +69,4 @@ (select-pages library-page)]) {:align :start}))} (ui/icon "plus" {:size 16}) - "Add existing pages to Library")]) + (t :library/add-existing-pages))]) diff --git a/src/main/frontend/components/objects.cljs b/src/main/frontend/components/objects.cljs index eb1f92c161..723bc794f7 100644 --- a/src/main/frontend/components/objects.cljs +++ b/src/main/frontend/components/objects.cljs @@ -2,6 +2,7 @@ "Provides table views for class objects and property related objects" (:require [frontend.components.filepicker :as filepicker] [frontend.components.views :as views] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.db.react :as react] @@ -28,7 +29,7 @@ (defn- build-asset-file-column [config] {:id :file - :name "File" + :name (t :file/label) :type :string :header views/header-cp :cell (fn [_table row _column] @@ -84,7 +85,7 @@ (shui/dialog-open! (fn [] [:div.flex.flex-col.gap-2 - [:div.font-medium "Add assets"] + [:div.font-medium (t :asset/add-assets)] (filepicker/picker {:on-change (fn [_e files] (p/let [entities (editor-handler/upload-asset! nil files :markdown editor-handler/*asset-uploading? true)] diff --git a/src/main/frontend/components/onboarding.cljs b/src/main/frontend/components/onboarding.cljs index 005310a994..b7df76a194 100644 --- a/src/main/frontend/components/onboarding.cljs +++ b/src/main/frontend/components/onboarding.cljs @@ -10,31 +10,31 @@ [:span.mr-1 (t :help/forum-community)] (ui/icon "message-circle" {:style {:font-size 20}})] list - [{:title (t :help/title-usage) + [{:title (t :help/usage-title) :children [[[:a {:on-click (fn [] (state/sidebar-add-block! (state/get-current-repo) "shortcut-settings" :shortcut-settings))} [:div.flex-row.inline-flex.items-center - [:span.mr-1 (t :help/shortcuts)] + [:span.mr-1 (t :help.shortcuts/label)] (ui/icon "command" {:style {:font-size 20}})]]] [(t :help/docs) "https://docs.logseq.com/"] [(t :help/start) "https://docs.logseq.com/#/page/tutorial"] ["FAQ" "https://docs.logseq.com/#/page/faq"]]} - {:title (t :help/title-community) + {:title (t :help/community-title) :children [[(t :help/awesome-logseq) "https://github.com/logseq/awesome-logseq"] [(t :help/blog) "https://blog.logseq.com"] [discourse-with-icon "https://discuss.logseq.com"]]} - {:title (t :help/title-development) + {:title (t :help/development-title) :children [[(t :help/roadmap) "https://discuss.logseq.com/t/logseq-product-roadmap/34267"] [(t :help/bug) "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml"] [(t :help/feature) "https://discuss.logseq.com/c/feedback/feature-requests/"] [(t :help/changelog) "https://docs.logseq.com/#/page/changelog"]]} - {:title (t :help/title-about) + {:title (t :help/about-title) :children [[(t :help/about) "https://blog.logseq.com/about/"]]} - {:title (t :help/title-terms) + {:title (t :help/terms-title) :children [[(t :help/privacy) "https://blog.logseq.com/privacy-policy/"] [(t :help/terms) "https://blog.logseq.com/terms/"]]}]] diff --git a/src/main/frontend/components/onboarding/setups.cljs b/src/main/frontend/components/onboarding/setups.cljs index da59652e4f..54556f0e2f 100644 --- a/src/main/frontend/components/onboarding/setups.cljs +++ b/src/main/frontend/components/onboarding/setups.cljs @@ -11,12 +11,12 @@ [:h1.text-xl (if picker? - [:span (t :on-boarding/main-title)] - [:span (t :on-boarding/importing-main-title)])] + [:span (t :onboarding.setup/title)] + [:span (t :onboarding.import-option/title)])] [:h2 (if picker? - (t :on-boarding/main-desc) - (t :on-boarding/importing-main-desc))] + (t :onboarding.setup/desc) + (t :onboarding.import-option/desc))] content])]) diff --git a/src/main/frontend/components/page.cljs b/src/main/frontend/components/page.cljs index 73b8a24db3..d973b8158a 100644 --- a/src/main/frontend/components/page.cljs +++ b/src/main/frontend/components/page.cljs @@ -218,7 +218,7 @@ (shui/button {:variant :ghost :class "text-muted-foreground w-full" :on-click (fn [] (route-handler/redirect-to-page! (:block/uuid block)))} - "Load more")) + (t :ui/load-more))) (when-not more? (when-not hide-add-button? (add-button block config)))]))))) @@ -233,7 +233,7 @@ (let [query' (assoc query :collapsed? true)] (rum/with-key (ui/catch-error - (ui/component-error "Failed default query:" {:content (pr-str query')}) + (ui/component-error (t :page/default-query-error) {:content (pr-str query')}) (query/custom-query (component-block/wrap-query-components {:editor-box editor/box :page page-cp @@ -255,7 +255,7 @@ (state/pub-event! [:editor/new-property {:property-key "Icon" :block page :target (.-target e)}]))} - "Add icon")) + (t :command.editor/add-property-icon))) (shui/button {:variant :ghost @@ -277,14 +277,14 @@ (state/pub-event! [:editor/new-property opts]))))} (cond (ldb/class? page) - "Add tag property" + (t :class/add-property) (ldb/property? page) - "Configure" + (t :ui/configure) :else - "Set property"))]]) + (t :property/set-property)))]]) (rum/defc db-page-title - [page {:keys [sidebar? journals? container-id tag-dialog?]}] + [page {:keys [sidebar? journals? container-id tag-dialog? display-title]}] (let [with-actions? (not config/publishing?)] [:div.ls-page-title.flex.flex-1.w-full.content.items-start.title {:class "title" @@ -305,6 +305,7 @@ :hide-title? sidebar? :sidebar? sidebar? :tag-dialog? tag-dialog? + :display-title display-title :hide-children? true :container-id container-id :show-tag-and-property-classes? true @@ -392,12 +393,12 @@ (shui/tabs-trigger {:value "tag" :class "py-1 text-xs"} - "Tagged nodes")) + (t :class/tagged-nodes))) (when property? (shui/tabs-trigger {:value "property" :class "py-1 text-xs"} - "Nodes with property")) + (t :property/nodes-with-property))) (when property? (db-page/configure-property page)))]) @@ -422,7 +423,7 @@ :size :sm :class "px-1 text-muted-foreground" :on-click #(set-collapsed! (not collapsed?))} - [:span.text-xs (str (if collapsed? "Open" "Hide")) " properties"])] + [:span.text-xs (t (if collapsed? :page/open-properties :page/hide-properties))])] (when-not collapsed? [:<> @@ -451,11 +452,11 @@ recycle-page? (and (ldb/page? page) (= title common-config/recycle-page-name)) fmt-journal? (boolean (date/journal-title->int title)) - today? (and - journal? - (= title (date/journal-name))) + today? (model/today-journal-page? page) home? (= :home (state/get-current-route)) recycled? (ldb/recycled? page) + page-display-title (when (ldb/page? page) + (route-handler/built-in-page-title (:block/title page))) show-tabs? (and (or class-page? (ldb/property? page)) (not tag-dialog?)) blocks-ready? (or journals? (= page-id @linked-refs-blocks-ready-page-id)) @@ -469,7 +470,7 @@ (if recycled? [:div.flex-1.page.relative.cp__page-inner-wrap [:div.relative.grid.gap-4.sm:gap-8.page-inner.mb-16 - [:div.opacity-75 "Node has been moved to Recycle"]]] + [:div.opacity-75 (t :page/moved-to-recycle)]]] [:div.flex-1.page.relative.cp__page-inner-wrap (merge (if (seq (:block/tags page)) (let [page-names (map :block/title (:block/tags page))] @@ -490,6 +491,7 @@ {:sidebar? sidebar? :journals? journals? :container-id (:container-id state) + :display-title page-display-title :tag-dialog? tag-dialog?})) (lsp-pagebar-slot)]) @@ -551,7 +553,7 @@ class-page? property-page?) [:div.fade-in.delay {:key "page-unlinked-references"} (reference/unlinked-references page {:sidebar? sidebar?})])])])) - [:div.opacity-75 "Page not found"]))) + [:div.opacity-75 (t :page/not-found)]))) (rum/defcs page-aux < rum/reactive {:init (fn [state] @@ -653,8 +655,8 @@ [state] (let [*simulation-paused? pixi/*simulation-paused?] [:div.flex.flex-col.mb-2 - [:p {:title "Pause simulation"} - "Pause simulation"] + [:p {:title (t :graph/pause-simulation)} + (t :graph/pause-simulation)] (ui/toggle (rum/react *simulation-paused?) (fn [] @@ -697,19 +699,14 @@ [:div.shadow-xl.rounded-sm [:ul (graph-filter-section - [:span.font-medium "Nodes"] + [:span.font-medium (t :graph/nodes)] (fn [open?] (filter-expand-area open? [:div [:p.text-sm.opacity-70.px-4 - (let [c1 (count (:nodes graph)) - s1 (if (> c1 1) "s" "") - ;; c2 (count (:links graph)) - ;; s2 (if (> c2 1) "s" "") - ] - ;; (util/format "%d page%s, %d link%s" c1 s1 c2 s2) - (util/format "%d page%s" c1 s1))] + (let [c1 (count (:nodes graph))] + (t :graph/page-count c1))] [:div.p-6 ;; [:div.flex.items-center.justify-between.mb-2 ;; [:span "Layout"] @@ -725,7 +722,7 @@ ;; (set-setting! :layout value)) ;; {:class "graph-layout"})] [:div.flex.items-center.justify-between.mb-2 - [:span (t :settings-page/enable-journals)] + [:span (t :settings.features/enable-journals)] ;; FIXME: why it's not aligned well? [:div.mt-1 (ui/toggle journal? @@ -735,7 +732,7 @@ (set-setting! :journal? value))) true)]] [:div.flex.items-center.justify-between.mb-2 - [:span "Orphan pages"] + [:span (t :graph/orphan-pages)] [:div.mt-1 (ui/toggle orphan-pages? (fn [] @@ -744,7 +741,7 @@ (set-setting! :orphan-pages? value))) true)]] [:div.flex.items-center.justify-between.mb-2 - [:span "Built-in pages"] + [:span (t :graph/built-in-pages)] [:div.mt-1 (ui/toggle builtin-pages? (fn [] @@ -753,7 +750,7 @@ (set-setting! :builtin-pages? value))) true)]] [:div.flex.items-center.justify-between.mb-2 - [:span "Excluded pages"] + [:span (t :graph/excluded-pages)] [:div.mt-1 (ui/toggle excluded-pages? (fn [] @@ -763,7 +760,7 @@ true)]] [:div.flex.flex-col.mb-2 - [:p "Created before"] + [:p (t :graph/created-before)] (when created-at-filter [:div (.toDateString (js/Date. (+ created-at-filter (get-in graph [:all-pages :created-at-min]))))]) @@ -781,8 +778,8 @@ (when (seq focus-nodes) [:div.flex.flex-col.mb-2 - [:p {:title "N hops from selected nodes"} - "N hops from selected nodes"] + [:p {:title (t :graph/n-hops-from-selected-nodes)} + (t :graph/n-hops-from-selected-nodes)] (ui/tooltip (ui/slider (or n-hops 10) {:min 1 @@ -797,10 +794,10 @@ (reset! *created-at-filter nil) (set-setting! :created-at-filter nil) (state/clear-search-filters!))} - "Reset Graph"]]])) + (t :graph/reset)]]])) {}) (graph-filter-section - [:span.font-medium "Search"] + [:span.font-medium (t :graph/search)] (fn [open?] (filter-expand-area open? @@ -814,26 +811,25 @@ svg/close]]) [:a.opacity-70.opacity-100 {:on-click state/clear-search-filters!} - "Clear All"]] + (t :notification/clear-all)]] [:a.opacity-70.opacity-100 {:on-click #(route-handler/go-to-search! :graph)} - "Click to search"])])) + (t :graph/click-to-search)])])) {:search-filters search-graph-filters}) (graph-filter-section - [:span.font-medium "Forces"] + [:span.font-medium (t :graph/forces)] (fn [open?] (filter-expand-area - open? - [:div - [:p.text-sm.opacity-70.px-4 - (let [c2 (count (:links graph)) - s2 (if (> c2 1) "s" "")] - (util/format "%d link%s" c2 s2))] + open? + [:div + [:p.text-sm.opacity-70.px-4 + (let [c2 (count (:links graph))] + (t :graph/link-count c2))] [:div.p-6 (simulation-switch) [:div.flex.flex-col.mb-2 - [:p {:title "Link Distance"} - "Link Distance"] + [:p {:title (t :graph/link-distance)} + (t :graph/link-distance)] (ui/tooltip (ui/slider (/ link-dist 10) {:min 1 ;; 10 @@ -844,8 +840,8 @@ [:div link-dist])] [:div.flex.flex-col.mb-2 - [:p {:title "Charge Strength"} - "Charge Strength"] + [:p {:title (t :graph/charge-strength)} + (t :graph/charge-strength)] (ui/tooltip (ui/slider (/ charge-strength 100) {:min -10 ;;-1000 @@ -856,8 +852,8 @@ [:div charge-strength])] [:div.flex.flex-col.mb-2 - [:p {:title "Charge Range"} - "Charge Range"] + [:p {:title (t :graph/charge-range)} + (t :graph/charge-range)] (ui/tooltip (ui/slider (/ charge-range 100) {:min 5 ;;500 @@ -873,17 +869,17 @@ (reset! *link-dist 70) (reset! *charge-strength -600) (reset! *charge-range 600))} - "Reset Forces"]]])) + (t :graph/reset-forces)]]])) {}) (graph-filter-section - [:span.font-medium "Export"] + [:span.font-medium (t :ui/export)] (fn [open?] (filter-expand-area open? (when-let [canvas (js/document.querySelector "#global-graph canvas")] [:div.p-6 ;; We'll get an empty image if we don't wrap this in a requestAnimationFrame - [:div [:a {:on-click #(.requestAnimationFrame js/window (fn [] (utils/canvasToImage canvas "graph" "png")))} "as PNG"]]]))) + [:div [:a {:on-click #(.requestAnimationFrame js/window (fn [] (utils/canvasToImage canvas "graph" "png")))} (t :graph/as-png)]]]))) {:search-filters search-graph-filters})]]]])) (defonce last-node-position (atom nil)) @@ -984,7 +980,7 @@ (let [show-journals-in-page-graph? (rum/react *show-journals-in-page-graph?)] [:div.sidebar-item.flex-col [:div.flex.items-center.justify-between.mb-0 - [:span (t :right-side-bar/show-journals)] + [:span (t :graph.page/show-journals)] [:div.mt-1 (ui/toggle show-journals-in-page-graph? ;my-val; (fn [] @@ -1018,7 +1014,7 @@ (let [current-page (or (and (= :page (state/sub [:route-match :data :name])) (state/sub [:route-match :path-params :name])) - (date/today)) + (model/get-today-journal-title)) theme (:ui/theme @state/state) show-journals-in-page-graph (rum/react *show-journals-in-page-graph?) page-entity (db/get-page current-page)] @@ -1038,7 +1034,7 @@ (ui/icon "alert-triangle")]] [:div.mt-3.text-center.sm:mt-0.sm:ml-4.sm:text-left [:h3#modal-headline.text-lg.leading-6.font-medium - (t :page/batch-delete-confirmation)]]] + (t :page.delete/batch-confirm-title)]]] [:ol.p-2.pt-4 (for [page-item pages] @@ -1046,16 +1042,16 @@ [:a {:href (rfe/href :page {:name (:block/uuid page-item)})} (component-block/page-cp {} page-item)]])] - [:p.px-2.opacity-50 [:small (str "Total: " (count pages))]] + [:p.px-2.opacity-50 [:small (t :page.delete/total (count pages))]] [:div.pt-6.flex.justify-end.gap-4 (ui/button - (t :cancel) + (t :ui/cancel) :variant :outline :on-click close) (ui/button - (t :yes) + (t :ui/yes) :on-click (fn [] (close) (let [failed-pages (atom [])] @@ -1066,7 +1062,7 @@ (swap! failed-pages conj (:block/name page)))})) pages))] (if (seq @failed-pages) - (notification/show! (t :all-pages/failed-to-delete-pages (string/join ", " (map pr-str @failed-pages))) + (notification/show! (t :page.delete/warning (string/join ", " (map pr-str @failed-pages))) :warning false) - (notification/show! (t :tips/all-done) :success)))) + (notification/show! (t :ui/all-done) :success)))) (js/setTimeout #(refresh-fn) 200)))]])) diff --git a/src/main/frontend/components/page_menu.cljs b/src/main/frontend/components/page_menu.cljs index 7151f45733..23af51f597 100644 --- a/src/main/frontend/components/page_menu.cljs +++ b/src/main/frontend/components/page_menu.cljs @@ -10,6 +10,7 @@ [frontend.handler.page :as page-handler] [frontend.handler.publish :as publish-handler] [frontend.mobile.util :as mobile-util] + [frontend.modules.shortcut.data-helper :as shortcut-dh] [frontend.state :as state] [frontend.util :as util] [logseq.db :as ldb] @@ -33,11 +34,11 @@ {:on-submit (fn [e] (.preventDefault e) (submit!))} - [:div.text-lg.font-medium "Publish page"] + [:div.text-lg.font-medium (t :publish/dialog-title)] [:div.text-sm.opacity-70 - "Optionally protect this page with a password. Leave empty for public access."] + (t :publish/dialog-desc)] (shui/toggle-password - {:placeholder "Optional password" + {:placeholder (t :publish/password-optional-placeholder) :value password :on-change (fn [e] (set-password! (util/evalue e)))}) @@ -46,20 +47,20 @@ {:variant "ghost" :type "button" :on-click #(shui/dialog-close!)} - "Cancel") + (t :ui/cancel)) (shui/button {:type "submit" :auto-focus true :disabled publishing?} (if publishing? - "Publishing..." - "Publish"))]])) + (t :publish/publishing) + (t :publish/action)))]])) (defn- delete-page! [page] (page-handler/> all-themes (filter #(= (:mode %) mode)) @@ -66,19 +69,19 @@ no-mode-themes (->> all-themes (filter #(= (:mode %) nil)) (sort-by #(:name %)) - (map-indexed (fn [idx opt] (assoc opt :group-first (zero? idx) :group-desc (if (zero? idx) "light & dark themes" nil))))) + (map-indexed (fn [idx opt] (assoc opt :group-first (zero? idx) :group-desc (if (zero? idx) (t :plugin.themes/light-and-dark) nil))))) selected (state/sub :plugin/selected-theme) themes (map-indexed (fn [idx opt] (let [selected? (= (:url opt) selected)] (when selected? (reset! *cursor (+ idx 1))) (assoc opt :mode mode :selected selected?))) (concat themes no-mode-themes)) - themes (cons {:name (string/join " " ["Default" (string/capitalize mode) "Theme"]) + themes (cons {:name (t :plugin.themes/default-name (string/capitalize mode-title)) :url nil - :description (string/join " " ["Logseq default" mode "theme."]) + :description (t :plugin.themes/default-desc mode-title) :mode mode :selected (nil? selected) :group-first true - :group-desc (str mode " themes")} themes)] + :group-desc (t :plugin.themes/group mode-title)} themes)] (reset! *themes themes) (reset! *total (count themes)) state))} @@ -108,7 +111,7 @@ *themes (::themes state)] [:div.cp__themes-installed {:tab-index -1} - [:h1.mb-4.text-2xl.p-1 (t :themes)] + [:h1.mb-4.text-2xl.p-1 (t :nav/themes)] (map-indexed (fn [idx opt] (let [current-selected? (:selected opt) @@ -141,9 +144,9 @@ (fn [^js e] (case (keyword (aget e "name")) :IllegalPluginPackageError - (plugin-handler/show-illegal-plugin-package-notification! e) + (plugin-handler/show-illegal-plugin-package-notification! e) :ExistedImportedPluginPackageError - (notification/show! (str "Existed plugin package (" (.-message e) ").") :error) + (notification/show! (t :plugin/existed-package (.-message e)) :error) :default) (plugin-handler/reset-unpacked-state)) reg-handle #(plugin-handler/reset-unpacked-state)] @@ -158,7 +161,7 @@ [unpacked-pkg-path]) (when unpacked-pkg-path - [:strong.inline-flex.px-3 "Loading ..."])) + [:strong.inline-flex.px-3 (t :ui/loading)])) (rum/defc category-tabs [t total-nums category on-action] @@ -167,14 +170,14 @@ (ui/button [:span.flex.items-center (ui/icon "puzzle") - (t :plugins) (when (vector? total-nums) (str " (" (first total-nums) ")"))] + (t :nav/plugins) (when (vector? total-nums) (str " (" (first total-nums) ")"))] :intent "link" :on-click #(on-action :plugins) :class (if (= category :plugins) "active" "")) (ui/button [:span.flex.items-center (ui/icon "palette") - (t :themes) (when (vector? total-nums) (str " (" (last total-nums) ")"))] + (t :nav/themes) (when (vector? total-nums) (str " (" (last total-nums) ")"))] :intent "link" :on-click #(on-action :themes) :class (if (= category :themes) "active" ""))]) @@ -260,7 +263,9 @@ [:li {:on-click #(plugin-handler/open-report-modal! id name)} (t :plugin/report-security)] [:li {:on-click #(-> (shui/dialog-confirm! - [:b (t :plugin/delete-alert name)]) + [:b (t :plugin/delete-alert name)] + {:cancel-label (t :ui/cancel) + :ok-label (t :ui/confirm)}) (p/then (fn [] (plugin-common-handler/unregister-plugin id) @@ -315,7 +320,7 @@ disabled? market? *search-key has-other-pending? installing-or-updating? installed? stat coming-update] - (let [name (or title name "Untitled") + (let [name (or title name (t :ui/untitled)) web? (not (nil? webPkg)) unpacked? (and (not web?) (not iir)) new-version (state/coming-update-new-version? coming-update)] @@ -356,18 +361,18 @@ (reset! *search-key (str "@" author)) (.select el))} author] [:small {:on-click #(do - (notification/show! "Copied!" :success) + (notification/show! (t :notification/copied) :success) (util/copy-to-clipboard! id))} (str "ID: " id)]]] - ;; Github repo + ;; GitHub repo [:div.flag.is-top.flex.items-center.space-x-2 (cond (false? (:supportsDB item)) - [:a.flex.cursor-help {:title "Not supports DB graph"} + [:a.flex.cursor-help {:title (t :plugin/does-not-support-db)} (shui/tabler-icon "database-off" {:size 17})] (true? (:supportsDB item)) - [:a.flex.cursor-help {:title "Supports DB graph"} + [:a.flex.cursor-help {:title (t :plugin/supports-db)} (shui/tabler-icon "database-heart" {:size 17})]) (when repo [:a.flex {:target "_blank" @@ -425,19 +430,19 @@ *test-input (rum/create-ref) disabled? (or (= (:type opts) "system") (= (:type opts) "direct"))] [:div.cp__settings-network-proxy-cnt - [:h1.mb-2.text-2xl.font-bold (t :settings-page/network-proxy)] + [:h1.mb-2.text-2xl.font-bold (t :settings.advanced/network-proxy)] [:div.p-2 - [:p [:label [:strong (t :type)] - (ui/select [{:label "System" :value "system" :selected (= type "system")} - {:label "Direct" :value "direct" :selected (= type "direct")} - {:label "HTTP" :value "http" :selected (= type "http")} - {:label "SOCKS5" :value "socks5" :selected (= type "socks5")}] + [:p [:label [:strong (t :ui/type)] + (ui/select [{:label (t :plugin.proxy/system) :value "system" :selected (= type "system")} + {:label (t :plugin.proxy/direct) :value "direct" :selected (= type "direct")} + {:label "HTTP" :value "http" :selected (= type "http")} + {:label "SOCKS5" :value "socks5" :selected (= type "socks5")}] (fn [_e value] (set-opts! (assoc opts :type value :protocol value))))]] [:p.flex [:label.pr-4 {:class (if disabled? "opacity-50" nil)} - [:strong (t :host)] + [:strong (t :ui/host)] [:input.form-input.is-small {:value (:host opts) :disabled disabled? @@ -446,7 +451,7 @@ [:label {:class (if disabled? "opacity-50" nil)} - [:strong (t :port)] + [:strong (t :ui/port)] [:input.form-input.is-small {:value (:port opts) :type "number" :min 1 :max 65535 :disabled disabled? @@ -471,7 +476,7 @@ [:option "https://s3.amazonaws.com"] [:option "https://clients3.google.com/generate_204"]]] - (ui/button (if testing? (ui/loading "Testing") "Test URL") + (ui/button (if testing? (ui/loading (t :plugin.proxy/testing)) (t :plugin.proxy/test-url)) :intent "logseq" :on-click #(let [val (util/trim-safe (.-value (rum/deref *test-input)))] (when (and (not testing?) (not (string/blank? val))) @@ -480,13 +485,13 @@ (js->clj result :keywordize-keys true)) (p/then (fn [{:keys [code response-ms]}] (notification/clear! :proxy-net-check) - (notification/show! (str "Success! Status " code " in " response-ms "ms.") :success))) + (notification/show! (t :plugin/proxy-check-success code response-ms) :success))) (p/catch (fn [e] (notification/show! (str e) :error false :proxy-net-check))) (p/finally (fn [] (set-testing?! false)))))))] [:p.pt-2 - (ui/button (t :save) + (ui/button (t :ui/save) :on-click (fn [] (p/let [_ (ipc/ipc :setProxy opts)] (state/set-state! [:electron/user-cfgs :settings/agent] opts))))]]])) @@ -498,7 +503,7 @@ handle-submit! (fn [] (set-pending? true) (-> (plugin-handler/load-plugin-from-web-url! url) - (p/then #(do (notification/show! "New plugin registered!" :success) + (p/then #(do (notification/show! (t :plugin/new-registered) :success) (shui/dialog-close!))) (p/catch #(notification/show! (str %) :error)) (p/finally @@ -512,13 +517,13 @@ :auto-focus true}) [:span.text-gray-10 (shui/tabler-icon "info-circle" {:size 13}) - [:span "URLs support both GitHub repositories and local development servers. - (For examples: https://github.com/xyhp915/logseq-journals-calendar, - http://localhost:8080/)"]]] + [:span (t :plugin.install-from-web-url/supports-note + "https://github.com/xyhp915/logseq-journals-calendar" + "http://localhost:8080/")]]] [:div.flex.justify-end (shui/button {:disabled (or pending? (string/blank? url)) :on-click handle-submit!} - (if pending? (ui/loading) "Install"))]])) + (if pending? (ui/loading) (t :plugin/install)))]])) (rum/defc install-from-github-release-container [] @@ -527,7 +532,7 @@ [pending set-pending!] (rum/use-state false) *input (rum/use-ref nil)] [:div.p-4.flex.flex-col.pb-0 - (shui/input {:placeholder "GitHub repo url" + (shui/input {:placeholder (t :plugin.install-from-web-url/repo-url-placeholder) :value url :ref *input :on-change #(set-url! (util/evalue %)) @@ -536,11 +541,11 @@ [:label.flex.items-center.gap-2 (shui/checkbox {:checked (:theme? opts) :on-checked-change #(set-opts! (assoc opts :theme? %))}) - [:span.opacity-60 "theme?"]] + [:span.opacity-60 (t :plugin.install-from-web-url/theme-label)]] [:label.flex.items-center.gap-2 (shui/checkbox {:checked (:effect? opts) :on-checked-change #(set-opts! (assoc opts :effect? %))}) - [:span.opacity-60 "effect?"]]] + [:span.opacity-60 (t :plugin.install-from-web-url/effect-label)]]] [:div.flex.justify-end.pt-3 (shui/button {:on-click (fn [] @@ -559,23 +564,26 @@ (p/then #(shui/dialog-close!)) (p/catch #(notification/show! (str %) :error)) (p/finally #(set-pending! false)))) - (notification/show! "Invalid GitHub repo url" :error))))) + (notification/show! (t :plugin/invalid-github-repo-url) :error))))) :disabled pending} - (if pending (ui/loading "Installing") "Install"))]])) + (if pending (ui/loading (t :plugin/installing)) (t :plugin/install)))]])) (rum/defc auto-check-for-updates-control [] (let [[enabled, set-enabled!] (rum/use-state (plugin-handler/get-enabled-auto-check-for-updates?)) - text (t :plugin/auto-check-for-updates)] + text (t :plugin/auto-update-check)] [:div.flex.items-center.justify-between.px-3.py-2 {:on-click (fn [] - (let [t (not enabled)] - (set-enabled! t) - (plugin-handler/set-enabled-auto-check-for-updates t) + (let [next-enabled (not enabled)] + (set-enabled! next-enabled) + (plugin-handler/set-enabled-auto-check-for-updates next-enabled) (notification/show! - [:span text [:strong.pl-1 (if t "ON" "OFF")] "!"] - (if t :success :info))))} + (into [:span] + (interpolate-rich-text + (t :plugin/auto-update-check-feedback) + [[:strong.pl-1 (t (if next-enabled :ui/on :ui/off))]])) + (if next-enabled :success :info))))} [:span.pr-3.opacity-80 text] (ui/toggle enabled #() true)])) @@ -703,7 +711,7 @@ :options {:on-click #(plugin-handler/user-check-enabled-for-updates! (not= :plugins category))}}]) (when (util/electron?) - [{:title [:span.flex.items-center.gap-1 (ui/icon "world") (t :settings-page/network-proxy)] + [{:title [:span.flex.items-center.gap-1 (ui/icon "world") (t :settings.advanced/network-proxy)] :options {:on-click #(state/pub-event! [:go/proxy-settings agent-opts])}} {:title [:span.flex.items-center.gap-1 (ui/icon "arrow-down-circle") (t :plugin.install-from-file/menu-title)] @@ -927,7 +935,7 @@ [:p.flex.justify-center.py-20 svg/loading] @*error - [:p.flex.justify-center.pt-20.opacity-50 (t :plugin/remote-error) (.-message @*error)] + [:p.flex.justify-center.pt-20.opacity-50 (t :plugin/remote-error (.-message @*error))] :else [:div.cp__plugins-marketplace-cnt @@ -1051,7 +1059,7 @@ (lazy-items-loader load-more-pages!) [:div.flex.items-center.justify-center.py-28.flex-col.gap-2.opacity-30 (shui/tabler-icon "list-search" {:size 40}) - [:span.text-sm "Nothing Found."]])]])) + [:span.text-sm (t :plugin/empty)]])]])) (rum/defcs waiting-coming-updates < rum/reactive @@ -1093,7 +1101,7 @@ (ui/tooltip [:span.opacity-30.hover:opacity-80 (ui/icon "info-circle")] [:p notes]))]])] ;; all done - [:div.py-4 [:strong.text-4xl (str "\uD83C\uDF89 " (t :plugin/all-updated))]]) + [:div.py-4 [:strong.text-4xl (str "🎉 " (t :plugin/update-all-success))]]) ;; actions (when (seq updates) @@ -1142,7 +1150,7 @@ (plugin-config-handler/replace-plugins plugins) (shui/dialog-close! "ls-plugins-from-file-modal")))]] ;; all done - [:div.py-4 [:strong.text-xl (str "\uD83C\uDF89 " (t :plugin.install-from-file/success))]])]) + [:div.py-4 [:strong.text-xl (str "🎉 " (t :plugin.install-from-file/success))]])]) (defn open-select-theme! [] @@ -1223,17 +1231,17 @@ (plugin-handler/op-pinned-toolbar-item! pkey (if pinned? :remove :add))) true))}}) [{:hr true} - {:title (t :plugins) + {:title (t :nav/plugins) :options {:on-click #(plugin-handler/goto-plugins-dashboard!) :class "extra-item mt-2"} :icon (ui/icon "apps")} - {:title (t :themes) + {:title (t :nav/themes) :options {:on-click #(plugin-handler/show-themes-modal!) :class "extra-item"} :icon (ui/icon "palette")} - {:title (t :settings) + {:title (t :nav/settings) :options {:on-click #(plugin-handler/goto-plugins-settings!) :class "extra-item"} :icon (ui/icon "adjustments")} @@ -1381,7 +1389,7 @@ :class (when-not (util/electron?) "web-platform") :tab-index "-1"} - [:h1 (t :plugins)] + [:h1 (t :nav/plugins)] (when (util/electron?) [:<> @@ -1488,7 +1496,7 @@ (when nav? [:aside.md:w-64 {:style {:min-width "10rem"}} [:header.cp__settings-header - [:h1.cp__settings-modal-title (or title (t :settings-of-plugins))]] + [:h1.cp__settings-modal-title (or title (t :plugin.settings/title))]] (let [plugins (plugin-handler/get-enabled-plugins-if-setting-schema)] [:ul.settings-plugin-list (for [{:keys [id name title icon]} plugins] @@ -1508,7 +1516,7 @@ (when-let [^js pl (and focused (= @*cache focused) (plugin-handler/get-plugin-inst focused))] (ui/catch-error - [:p.warning.text-lg.mt-5 "Settings schema Error!"] + [:p.warning.text-lg.mt-5 (t :plugin/settings-schema-error)] (plugins-settings/settings-container (bean/->clj (.-settingsSchema pl)) pl)))]]]])) @@ -1526,16 +1534,15 @@ [pid name url] [:div [:span.block.whitespace-normal - "This plugin " - [:strong.text-error "#" name] - " takes too long to load, affecting the application startup time and - potentially causing other plugins to fail to load."] + (interpolate-rich-text-node + (t :plugin/perf-tip) + [[:strong.text-error (str "#" name)]])] [:path.opacity-50 [:small [:span.pr-1 (ui/icon "folder")] url]] [:p - (ui/button "Disable now" + (ui/button (t :plugin/disable-now) :small? true :on-click (fn [] @@ -1543,9 +1550,10 @@ (p/then #(do (notification/clear! pid) (notification/show! - [:span "The plugin " - [:strong.text-error "#" name] - " is disabled."] :success + (interpolate-rich-text-node + (t :plugin/disable-for-performance-feedback) + [[:strong.text-error (str "#" name)]]) + :success true nil 3000 nil))) (p/catch #(js/console.error %)))))]]) @@ -1576,7 +1584,7 @@ (fn [] [:div.settings-modal.of-plugins (focused-settings-content title)]) - {:label "plugin-settings-modal" + {:label :plugin-settings-modal :align :start :id "ls-focused-settings-modal"})) diff --git a/src/main/frontend/components/plugins_settings.cljs b/src/main/frontend/components/plugins_settings.cljs index 51010b2711..254c3f7634 100644 --- a/src/main/frontend/components/plugins_settings.cljs +++ b/src/main/frontend/components/plugins_settings.cljs @@ -1,6 +1,7 @@ (ns frontend.components.plugins-settings (:require [cljs-bean.core :as bean] [frontend.components.lazy-editor :as lazy-editor] + [frontend.context.i18n :refer [t]] [frontend.handler.notification :as notification] [frontend.handler.plugin :as plugin-handler] [frontend.security :as security] @@ -25,8 +26,8 @@ (plugin-handler/open-settings-file-in-default-app! pid) (set-edit-mode! #(if % nil :code))))} (if (= edit-mode :code) - "Exit code mode" - "Edit settings.json")]) + (t :plugin.settings/exit-code-mode) + (t :plugin.settings/edit-settings-json))]) (rum/defc render-item-input [val {:keys [key type title default description inputAs]} update-setting!] @@ -104,7 +105,7 @@ (rum/defc render-item-not-handled [s] - [:p.text-red-500 (str "#Not Handled# " s)]) + [:p.text-red-500 (t :plugin/setting-not-handled s)]) (rum/defc settings-container [schema ^js pl] @@ -147,7 +148,7 @@ (let [^js cm (util/get-cm-instance (-> (.-target e) (.closest ".code-mode-wrap"))) content' (some-> (.toJSON plugin-settings) (js/JSON.stringify nil 2))] (.setValue cm content')))} - "Reset") + (t :ui/reset)) (shui/button {:size :sm :on-click (fn [^js e] (try @@ -158,7 +159,7 @@ (set-edit-mode! nil)) (catch js/Error e (notification/show! (.-message e) :error))))} - "Save")]] + (t :ui/save))]] ;; render with gui items (for [desc schema @@ -179,4 +180,4 @@ key)))]] ;; no settings - [:h2.font-bold.text-lg.py-4.warning "No Settings Schema!"]))) + [:h2.font-bold.text-lg.py-4.warning (t :plugin/no-settings-schema)]))) diff --git a/src/main/frontend/components/profiler.cljs b/src/main/frontend/components/profiler.cljs index 01393199fd..0664077063 100644 --- a/src/main/frontend/components/profiler.cljs +++ b/src/main/frontend/components/profiler.cljs @@ -2,6 +2,7 @@ "Profiler UI" (:require [clojure.set :as set] [fipp.edn :as fipp] + [frontend.context.i18n :refer [t]] [frontend.handler.profiler :as profiler-handler] [frontend.util :as util] [logseq.shui.ui :as shui] @@ -17,31 +18,32 @@ *mem-leak-reports (get state ::mem-leak-reports) *register-fn-name (get state ::register-fn-name)] [:div - [:b "Profiling fns(Only support UI thread now):"] - [:div.pb-4 + [:b "Profiling fns (Only support UI thread now):"] + [:div.pb-1 (for [f-name profiling-fns] [:div.flex.flex-row.items-center.gap-2 [:pre.select-text (str f-name)] [:a.inline.close.flex.transition-opacity.duration-300.ease-in - {:title "Unregister" + {:title (t :profiler/unregister) :on-pointer-down (fn [e] (util/stop e) (profiler-handler/unregister-fn! f-name))} (shui/tabler-icon "x")]])] - [:div.flex.flex-row.items-center.gap-2 + [:div.flex.flex-row.items-center.gap-2.mb-2 (shui/button - {:on-click (fn [] + {:size :sm + :on-click (fn [] (when-let [fn-sym (some-> @*register-fn-name symbol)] (profiler-handler/register-fn! fn-sym)))} "Register fn") - [:input.form-input.my-2.py-1 + [:input.form-input.flex-1.h-8.leading-8.py-0.box-border {:on-change (fn [e] (reset! *register-fn-name (util/evalue e))) :on-focus (fn [e] (let [v (.-value (.-target e))] - (when (= v "input fn name here") + (when (= v (t :profiler/input-fn-placeholder)) (set! (.-value (.-target e)) "")))) - :placeholder "input fn name here"}]] - [:div.flex.gap-2.flex-wrap.items-center.pb-3 + :placeholder (t :profiler/input-fn-placeholder)}]] + [:div.flex.gap-2.flex-wrap.items-center.pb-1 (shui/button {:size :sm :on-click (fn [_] (reset! *reports (profiler-handler/profile-report)))} @@ -53,23 +55,25 @@ (shui/tabler-icon "x") "Reset reports")] (let [update-time-sum (fn [m] (update-vals m (fn [m2] (update-vals m2 #(.toFixed % 6)))))] - [:div.pb-4 + [:div.pb-0 [:pre.select-text (when @*reports (-> @*reports (update :time-sum update-time-sum) (fipp/pprint {:width 20}) with-out-str))]]) - [:hr] - [:b "Atom/Volatile Mem Leak Detect(Only support UI thread now):"] - [:pre "Only check atoms/volatiles with a value type of `coll`. + [:hr.my-2] + [:div.pb-1 + [:b "Atom/Volatile Mem Leak Detect (Only support UI thread now):"] + [:pre.mb-2 "Only check atoms/volatiles with a value type of `coll`. The report shows refs with coll-size > 5k and atom's watches-count > 1k. `ref` means atom or volatile. -`ref-hash` means `(hash ref)`."] - [:div.flex.flex-row.items-center.gap-2 +`ref-hash` means `(hash ref)`."]] + [:div.flex.flex-row.items-center.gap-2.pb-2 (if (= 2 (count (set/difference #{'cljs.core/reset! 'cljs.core/vreset!} (set profiling-fns)))) (shui/button - {:on-click (fn [] + {:size :sm + :on-click (fn [] (profiler-handler/mem-leak-detect))} "Start to detect") (shui/button diff --git a/src/main/frontend/components/property.cljs b/src/main/frontend/components/property.cljs index 3f4ec3c393..3deb8229c3 100644 --- a/src/main/frontend/components/property.cljs +++ b/src/main/frontend/components/property.cljs @@ -9,6 +9,7 @@ [frontend.components.select :as select] [frontend.components.svg :as svg] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.db.async :as db-async] @@ -50,7 +51,7 @@ (do (when (and (not (ldb/public-built-in-property? property)) (ldb/built-in? property)) - (notification/show! "This is a private built-in property that can't be used." :error)) + (notification/show! (t :property/private-built-in-not-usable) :error)) property) ;; new property entered or converting page to property (if (db-property/valid-property-name? property-title) @@ -62,7 +63,7 @@ _ (when add-class-property? (pv/> (concat db-property-type/user-built-in-property-types @@ -134,7 +135,7 @@ (shui/select-trigger {:class "!px-2 !py-0 !h-8"} (shui/select-value - {:placeholder "Select a property type"})) + {:placeholder (t :property/select-type-placeholder)})) (shui/select-content (shui/select-group (for [{:keys [label value disabled]} schema-types] @@ -144,7 +145,7 @@ (util/stop-propagation e)))} label))))) (when show-type-change-hints? (ui/tooltip (svg/info) - [:span "Changing the property type clears some property configurations."]))])) + [:span (t :property/type-change-warning)]))])) (rum/defc property-select [select-opts] @@ -172,7 +173,7 @@ (map (fn [x] (let [convert? (:convert-page-to-property? x)] {:label (if convert? - (util/format "Convert \"%s\" to property" (:block/title x)) + (t :property/convert-page-to-property (:block/title x)) (let [ident (:db/ident x) ns' (some-> ident (namespace)) plugin? (some-> ident (api-block/plugin-property-key?)) @@ -200,7 +201,7 @@ :new-case-sensitive? true :show-new-when-not-exact-match? true ;; :exact-match-exclude-items (fn [s] (contains? excluded-properties s)) - :input-default-placeholder "Add or change property" + :input-default-placeholder (t :property/add-or-change) :on-input set-q!} select-opts))]]))) @@ -279,7 +280,7 @@ :a {:tabIndex 0 :title (or (:block/title (:logseq.property/description property)) - (:block/title property)) + (db-property/built-in-display-title property t)) :class "property-k flex select-none jtrigger w-full" :on-pointer-down (fn [^js e] (when (util/meta-key? e) @@ -302,7 +303,7 @@ :dropdown-menu? true :as-dropdown? true})))} - (:block/title property))) + (db-property/built-in-display-title property t))) (rum/defc property-key-cp < rum/static [block property {:keys [other-position? class-schema?]}] @@ -339,7 +340,7 @@ (if config/publishing? [:a.property-k.flex.select-none.jtrigger {:on-click #(route-handler/redirect-to-page! (:block/uuid property))} - (:block/title property)] + (db-property/built-in-display-title property t)] (property-key-title block property class-schema?))])) (defn- bidirectional-property-icon-cp @@ -362,7 +363,7 @@ (if (and blocks-container (seq entities)) [:div.property-block-container.content.w-full (blocks-container config entities)] - [:span.opacity-60 "Empty"]))) + [:span.opacity-60 (t :view.filter/empty)]))) (rum/defc bidirectional-properties-section < rum/static [bidirectional-properties] @@ -493,7 +494,7 @@ [:div.flex.flex-row.items-center.shrink-0 (ui/icon "plus" {:size 15 :class "opacity-50"}) [:div.ml-1 {:style {:margin-top 1}} - "Add property"]]]]))) + (t :property/add-new)]]]]))) (defn- resolve-linked-block-if-exists "Properties will be updated for the linked page instead of the refed block. @@ -684,7 +685,7 @@ [:details.my-1 [:summary.text-sm.opacity-50.hover:opacity-90.cursor-pointer {:style {:margin-left 11}} - [:span.ml-1 "Hidden properties"]] + [:span.ml-1 (t :property/hidden-properties)]] [:div.mt-1 (properties-section block hidden-properties opts)]])) @@ -854,7 +855,7 @@ [:div.property-key.text-sm (property-key-cp block (db/entity :logseq.property.class/properties) {})]] [:div.text-muted-foreground {:style {:margin-left 26}} - "Tag properties are inherited by all nodes using the tag. For example, each #Task node inherits 'Status' and 'Priority'."]] + (t :class/tag-properties-desc)]] [:div.ml-4 (properties-section block properties opts') (hidden-properties-cp block hidden-properties diff --git a/src/main/frontend/components/property/config.cljs b/src/main/frontend/components/property/config.cljs index 927c3e0ea3..4eb9b13e5f 100644 --- a/src/main/frontend/components/property/config.cljs +++ b/src/main/frontend/components/property/config.cljs @@ -6,6 +6,7 @@ [frontend.components.property.value :as pv] [frontend.components.select :as select] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.db.async :as db-async] @@ -100,12 +101,12 @@ :value (:block/uuid class)}) classes) options (if no-class? - (cons {:label "Skip choosing tag" + (cons {:label (t :property/skip-choosing-tag) :value :no-tag} options) options) opts {:items options - :input-default-placeholder (if multiple-choices? "Choose tags" "Choose tag") + :input-default-placeholder (if multiple-choices? (t :property/choose-tags) (t :property/choose-tag)) :dropdown? false :close-modal? false :multiple-choices? multiple-choices? @@ -182,13 +183,13 @@ (shui/input {:ref *input-ref :size "sm" :default-value title - :placeholder "name" + :placeholder (t :property/name-placeholder) :disabled disabled? :on-key-down (fn [e] (when (contains? #{"ArrowLeft" "ArrowRight"} (util/ekey e)) (util/stop-propagation e))) :on-change (fn [^js e] (set-form-data! (assoc form-data :title (util/trim-safe (util/evalue e)))))})] - [:div.pt-2 (shui/textarea {:placeholder "description" :default-value description + [:div.pt-2 (shui/textarea {:placeholder (t :property/description-placeholder) :default-value description :disabled disabled? :on-change (fn [^js e] (set-form-data! (assoc form-data :description (util/trim-safe (util/evalue e)))))})] (let [dirty? (not= (rum/deref *form-data) form-data)] @@ -208,7 +209,7 @@ (p/then #(set-sub-open! false)) (p/catch #(shui/toast! (str %) :error)) (p/finally #(set-saving! false))))} - "Save")])])) + (t :ui/save))])])) (rum/defc choice-base-edit-form [own-property block owner-block] @@ -239,9 +240,9 @@ (shui/input {:ref *input-ref :size "sm" :default-value (:value form-data) :on-change (fn [^js e] (set-form-data! (assoc form-data :value (util/trim-safe (util/evalue e))))) - :placeholder "title"})] + :placeholder (t :property/title-placeholder)})] [:div.pt-2 (shui/textarea - {:placeholder "description" :default-value (:description form-data) + {:placeholder (t :property/description-placeholder) :default-value (:description form-data) :on-change (fn [^js e] (set-form-data! (assoc form-data :description (util/trim-safe (util/evalue e)))))})] [:div.pt-2.flex.justify-end (let [dirty? (not= (rum/deref *form-data) form-data)] @@ -257,7 +258,7 @@ (p/then #(shui/popup-hide!)) (p/catch #(shui/toast! (str %) :error)))) :variant (if dirty? :default :secondary)} - "Save"))]])) + (t :ui/save)))]])) (defn restore-root-highlight-item! [id] @@ -335,18 +336,18 @@ excluded-ids (set (keep :db/id (:logseq.property/choice-exclusions owner-block'))) global-choice? (empty? (:logseq.property/choice-classes block))] [:li - (shui/button {:size :sm :variant :ghost :title "Drag && Drop to reorder"} + (shui/button {:size :sm :variant :ghost :title (t :property/drag-to-reorder)} (shui/tabler-icon "grip-vertical" {:size 14})) (icon-component/icon-picker icon {:on-chosen (fn [_e icon] (update-icon! icon)) :popup-opts {:align "start"} :del-btn? (boolean icon) :empty-label "?" - :button-opts {:title "Set Icon"}}) + :button-opts {:title (t :property/set-icon)}}) [:strong {:on-click (fn [^js e] (shui/popup-show! (.-target e) - (fn [] (choice-base-edit-form property block owner-block)) - {:id :ls-base-edit-form - :align "start"})) + (fn [] (choice-base-edit-form property block owner-block)) + {:id :ls-base-edit-form + :align "start"})) :title value} value] (shui/dropdown-menu @@ -355,7 +356,7 @@ :disabled disabled?} (shui/button {:size :sm :variant :ghost - :title "More settings"} + :title (t :property/more-settings)} (shui/tabler-icon "dots" {:size 16}))) (shui/dropdown-menu-content ;; default choice @@ -372,10 +373,10 @@ value))} (shui/checkbox {:id "default value" :size :sm - :title "Set as default choice" + :title (t :property/set-default-choice) :class "mr-1 opacity-50 hover:opacity-100" :checked default-value?}) - "Set as default choice"))) + (t :property/set-default-choice)))) (when (and owner-class? owner-block' global-choice?) (let [excluded? (contains? excluded-ids (:db/id block)) @@ -389,24 +390,24 @@ :on-click toggle-exclusion!} (shui/checkbox {:id "exclude for tag" :size :sm - :title "Hide choice for this tag" + :title (t :property/hide-choice-for-tag) :class "mr-1 opacity-50 hover:opacity-100" :checked excluded?}) - (str "Hide for #" tag-title)))) + (t :property/hide-for-tag tag-title)))) (when-not (and owner-class? global-choice?) (shui/dropdown-menu-item {:key "delete" :class "del" :on-click delete-choice!} - [:span.w-full.text-red-rx-09.opacity-90.flex.items-center.hover:opacity-100 - (ui/icon "x" {:class "scale-90 pr-1"}) "Delete"]))))])) + [:span.w-full.text-red-rx-09.opacity-90.flex.items-center.hover:opacity-100 + (ui/icon "x" {:class "scale-90 pr-1"}) (t :ui/delete)]))))])) (rum/defc add-existing-values [property values {:keys [toggle-fn]}] [:div.flex.flex-col.gap-1.w-64.p-4.overflow-y-auto {:class "max-h-[50dvh]"} - [:div "Existing values:"] + [:div (t :property/existing-values)] [:ol (for [value values] [:li (:label value)])] @@ -416,7 +417,7 @@ (map (fn [{:keys [value]}] (:block/uuid value)) values))] (toggle-fn)))} - "Add choices")]) + (t :property/add-choices))]) (rum/defcs choices-sub-pane < rum/reactive db-mixins/query (rum/local false ::show-hidden?) @@ -459,7 +460,7 @@ :class "text-muted-foreground" :on-click (fn [] (swap! *show-hidden? not))} - (if @*show-hidden? "Hide hidden choices" "Show hidden choices"))) + (if @*show-hidden? (t :property/hide-hidden-choices) (t :property/show-hidden-choices)))) [:ul.choices-list (dnd/items choice-items {:sort-by-inner-element? false @@ -485,7 +486,7 @@ ;; add choice (when-not disabled? (dropdown-editor-menuitem - {:icon :plus :title "Add choice" + {:icon :plus :title (t :property/add-choice) :item-props {:on-click (fn [^js e] (p/let [values (db-async/ {:on-value-change @@ -542,7 +543,7 @@ unchecked-choice (assoc :default-value (:db/id unchecked-choice)))) - [:div.mt-2 "Map checked to"] + [:div.mt-2 (t :property/map-checked-to)] (select-cp (cond-> {:on-value-change @@ -554,11 +555,12 @@ checked-choice (assoc :default-value (:db/id checked-choice))))]])) -(def position-labels - {:properties {:icon :layout-distribute-horizontal :title "Block properties"} - :block-left {:icon :layout-align-right :title "Beginning of the block"} - :block-right {:icon :layout-align-left :title "End of the block"} - :block-below {:icon :layout-align-top :title "Below the block"}}) +(defn position-labels + [] + {:properties {:icon :layout-distribute-horizontal :title (t :property/ui-position-properties)} + :block-left {:icon :layout-align-right :title (t :property/ui-position-block-left)} + :block-right {:icon :layout-align-left :title (t :property/ui-position-block-right)} + :block-below {:icon :layout-align-top :title (t :property/ui-position-block-below)}}) (rum/defc ui-position-sub-pane [property {:keys [id set-sub-open! _ui-position]}] @@ -572,7 +574,7 @@ (restore-root-highlight-item! id))) item-props {:on-select handle-select!}] [:div.ls-property-dropdown.ls-property-ui-position-sub-pane - (for [[k v] position-labels] + (for [[k v] (position-labels)] (let [item-props (assoc item-props :data-value k)] (dropdown-editor-menuitem (assoc v :item-props item-props))))])) @@ -580,10 +582,13 @@ (defn property-type-label [property-type] (case property-type - :default - "Text" - :datetime - "DateTime" + :default (t :property/type-text) + :number (t :property/type-number) + :date (t :property/type-date) + :datetime (t :property/type-datetime) + :checkbox (t :property/type-checkbox) + :url (t :property/type-url) + :node (t :property/type-node) ((comp string/capitalize name) property-type))) (defn- handle-delete-property! @@ -594,14 +599,20 @@ (property-handler/remove-block-property! (:block/uuid block) (:db/ident property)))] (if (and class? class-schema?) (-> (shui/dialog-confirm! - [:p "Are you sure you want to delete the property from this tag?"] + [:p (t :property/delete-from-tag-confirm)] {:id :delete-property-from-class - :data-reminder :ok}) + :data-reminder :ok + :data-reminder-label (t :ui/dont-remind-me-again) + :cancel-label (t :ui/cancel) + :ok-label (t :ui/confirm)}) (p/then remove!)) (-> (shui/dialog-confirm! - "Are you sure you want to delete the property from this node?" + (t :property/delete-from-node-confirm) {:id :delete-property-from-node - :data-reminder :ok}) + :data-reminder :ok + :data-reminder-label (t :ui/dont-remind-me-again) + :cancel-label (t :ui/cancel) + :ok-label (t :ui/confirm)}) (p/then remove!))))) (rum/defc property-type-sub-pane @@ -634,14 +645,14 @@ option (if (= :checkbox property-type) (let [default-value (:logseq.property/scalar-default-value property)] {:icon :settings-2 - :title "Default value" + :title (t :property/default-value) :toggle-checked? (boolean default-value) :checkbox? true :on-toggle-checked-change (fn [] (db-property-handler/set-block-property! (:block/uuid property) :logseq.property/scalar-default-value (not default-value)))}) (let [default-value (:logseq.property/default-value property)] - {:icon :settings-2 :title "Default value" - :desc (if default-value (db-property/property-value-content default-value) "Set value") + {:icon :settings-2 :title (t :property/default-value) + :desc (if default-value (db-property/property-value-content default-value) (t :property/set-value)) :submenu-content (fn [] (pdv/default-value-config property))}))] (dropdown-editor-menuitem (assoc option :disabled? config/publishing?)))) @@ -649,7 +660,7 @@ "property: block entity" [property owner-block values {:keys [class-schema? debug? with-title? more-options] :or {with-title? true}}] - (let [title (:block/title property) + (let [title (db-property/built-in-display-title property t) property-type (:logseq.property/type property) property-type-label' (some-> property-type (property-type-label)) enable-closed-values? (contains? db-property-type/closed-value-property-types @@ -664,18 +675,18 @@ (->> [(when with-title? [:h3.font-medium.px-2.py-2.opacity-80.flex.items-center.gap-1 - "Configure property"]) + (t :property/configure)]) (when-not special-built-in-prop? - (dropdown-editor-menuitem {:icon :pencil :title "Property name" :desc [:span.flex.items-center.gap-1 icon title] + (dropdown-editor-menuitem {:icon :pencil :title (t :property/name) :desc [:span.flex.items-center.gap-1 icon title] :submenu-content (fn [ops] (name-edit-pane property (assoc ops :disabled? disabled?)))})) (let [disabled?' (or disabled? (and property-type (seq values)))] (dropdown-editor-menuitem {:icon :letter-t - :title "Property type" + :title (t :property/type) :desc (if disabled?' (ui/tooltip [:span (str property-type-label')] [:div.w-96 - "The type of this property is locked once you start using it. This is to make sure all your existing information stays correct if the property type is changed later. To unlock, all uses of a property must be deleted."]) + (t :property/type-locked-help)]) (str property-type-label')) :disabled? disabled?' :submenu-content (fn [ops] @@ -685,7 +696,7 @@ (not (contains? #{:logseq.property.class/extends} (:db/ident property)))) (dropdown-editor-menuitem {:icon :hash :disabled? disabled? - :title "Specify node tags" + :title (t :property/specify-node-tags) :desc "" :submenu-content (fn [_ops] [:div.px-4 @@ -700,8 +711,8 @@ (when enable-closed-values? (let [values (:property/closed-values property)] - (dropdown-editor-menuitem {:icon :list :title "Available choices" - :desc (when (seq values) (str (count values) " choices")) + (dropdown-editor-menuitem {:icon :list :title (t :property/available-choices) + :desc (when (seq values) (t :property/choices-count (count values))) :submenu-content (fn [] (choices-sub-pane property {:disabled? config/publishing? @@ -713,14 +724,14 @@ (when (>= (count values) 2) (dropdown-editor-menuitem {:icon :checkbox - :title "Checkbox state mapping" + :title (t :property/checkbox-state-mapping) :disabled? config/publishing? :submenu-content (fn [] (checkbox-state-mapping values))})))) (when (and (contains? db-property-type/cardinality-property-types property-type) (not disabled?)) (let [many? (db-property/many? property)] - (dropdown-editor-menuitem {:icon :checks :title "Multiple values" + (dropdown-editor-menuitem {:icon :checks :title (t :property/multiple-values) :toggle-checked? many? :on-toggle-checked-change (fn [] @@ -730,7 +741,9 @@ ;; Only show dialog for existing values as it can be reversed for unused properties (if (and (seq values) (not many?)) (-> (shui/dialog-confirm! - "This action cannot be undone. Do you want to change this property to have multiple values?") + (t :property/multiple-values-confirm) + {:cancel-label (t :ui/cancel) + :ok-label (t :ui/confirm)}) (p/then update-cardinality-fn)) (update-cardinality-fn))))}))) @@ -744,20 +757,20 @@ (empty? (:property/closed-values property)) (contains? #{nil :properties} (:logseq.property/ui-position property))))) (let [position (:logseq.property/ui-position property)] - (dropdown-editor-menuitem {:icon :float-left :title "UI position" :desc (some->> position (get position-labels) (:title)) + (dropdown-editor-menuitem {:icon :float-left :title (t :property/ui-position) :desc (some-> (position-labels) (get position) :title) :item-props {:class "ui__position-trigger-item"} :disabled? config/publishing? :submenu-content (fn [ops] (ui-position-sub-pane property (assoc ops :ui-position position)))}))) (when (not (contains? #{:logseq.property.class/extends :logseq.property.class/properties} (:db/ident property))) - (dropdown-editor-menuitem {:icon :eye-off :title "Hide by default" :toggle-checked? (boolean (:logseq.property/hide? property)) + (dropdown-editor-menuitem {:icon :eye-off :title (t :property/hide-by-default) :toggle-checked? (boolean (:logseq.property/hide? property)) :disabled? config/publishing? :on-toggle-checked-change #(db-property-handler/set-block-property! (:db/id property) :logseq.property/hide? %)})) (when (not (contains? #{:logseq.property.class/extends :logseq.property.class/properties} (:db/ident property))) (dropdown-editor-menuitem - {:icon :eye-off :title "Hide empty value" + {:icon :eye-off :title (t :property/hide-empty-value) :toggle-checked? (boolean (:logseq.property/hide-empty-value property)) :disabled? config/publishing? :on-toggle-checked-change (fn [] @@ -772,7 +785,7 @@ [:<> (shui/dropdown-menu-separator) (dropdown-editor-menuitem - {:icon :share-3 :title "Go to this property" :desc "" + {:icon :share-3 :title (t :property/go-to-this-property) :desc "" :item-props {:class "opacity-90 focus:opacity-100" :on-select (fn [] (shui/popup-hide-all!) @@ -784,19 +797,19 @@ (set (map :db/id (:logseq.property/checkbox-display-properties owner-block))) (:db/id property))] (dropdown-editor-menuitem - {:icon :checkbox - :title (if class-schema? "Show as checkbox on tagged nodes" "Show as checkbox on node") - :disabled? config/publishing? - :desc (when owner-block - (shui/switch - {:id "show as checkbox" :size "sm" - :checked checked? - :on-click util/stop-propagation - :on-checked-change - (fn [value] - (if value - (db-property-handler/set-block-property! (:db/id owner-block) :logseq.property/checkbox-display-properties (:db/id property)) - (db-property-handler/delete-property-value! (:db/id owner-block) :logseq.property/checkbox-display-properties (:db/id property))))}))}))))) + {:icon :checkbox}) + :title (if class-schema? (t :property/show-as-checkbox-on-tagged-nodes) (t :property/show-as-checkbox-on-node)) + :disabled? config/publishing? + :desc (when owner-block + (shui/switch + {:id "show as checkbox" :size "sm" + :checked checked? + :on-click util/stop-propagation + :on-checked-change + (fn [value] + (if value + (db-property-handler/set-block-property! (:db/id owner-block) :logseq.property/checkbox-display-properties (:db/id property)) + (db-property-handler/delete-property-value! (:db/id owner-block) :logseq.property/checkbox-display-properties (:db/id property))))})))))) (when (and owner-block ;; Any property should be removable from Tag Properties @@ -806,7 +819,7 @@ (dropdown-editor-menuitem {:id :delete-property :icon :x - :title (if class-schema? "Delete property from tag" "Delete property from node") + :title (if class-schema? (t :property/delete-from-tag) (t :property/delete-from-node)) :desc "" :disabled? false :item-props {:class "opacity-60 focus:!text-red-rx-09 focus:opacity-100" :on-select (fn [^js e] diff --git a/src/main/frontend/components/property/value.cljs b/src/main/frontend/components/property/value.cljs index e7614dbbe9..6090e50f57 100644 --- a/src/main/frontend/components/property/value.cljs +++ b/src/main/frontend/components/property/value.cljs @@ -7,6 +7,7 @@ [frontend.components.icon :as icon-component] [frontend.components.select :as select] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.date :as date] [frontend.db :as db] [frontend.db-mixins :as db-mixins] @@ -54,16 +55,11 @@ (rum/defc property-empty-btn-value [property & opts] - (let [text (cond - (= (:db/ident property) :logseq.property/description) - "Add description" - :else - "Empty")] - (if (= text "Empty") - (shui/button (merge {:class "empty-btn" :variant :text} opts) - text) - (shui/button (merge {:class "empty-btn" :variant :text} opts) - text)))) + (let [text (if (= (:db/ident property) :logseq.property/description) + (t :property/add-description) + (t :ui/empty))] + (shui/button (merge {:class "empty-btn" :variant :text} opts) + text))) (rum/defc property-empty-text-value [property {:keys [property-position table-view?]}] @@ -74,7 +70,7 @@ (if-let [icon (:logseq.property/icon property)] (icon-component/icon icon {:color? true}) (ui/icon "line-dashed")) - "Empty"))]) + (t :ui/empty)))]) (defn- get-selected-blocks [] @@ -204,7 +200,7 @@ (:db/id (db/entity :block/page)) {:entity-id? entity-id?}))))) (when (seq (:view/selected-blocks @state/state)) - (notification/show! "Property updated!" :success)) + (notification/show! (t :property/update-success) :success)) (when-not many? (cond exit-edit? @@ -264,11 +260,13 @@ (db-property-handler/remove-block-property! (:db/id block) :logseq.property.repeat/temporal-property)))))] (if (#{:logseq.property/deadline :logseq.property/scheduled} (:db/ident property)) - [:div "Repeat task"] - [:div "Repeat " (if (= :date (:logseq.property/type property)) "date" "datetime")])]] + [:div (t :property.repeat/task)] + [:div (t (if (= :date (:logseq.property/type property)) + :property.repeat/date + :property.repeat/datetime))])]] [:div.flex.flex-row.gap-2.ls-repeat-task-frequency [:div.flex.text-muted-foreground - "Every"] + (t :property.repeat/every)] ;; recur frequency [:div.w-10.mr-2 @@ -292,7 +290,7 @@ (db/entity :logseq.property/status.done))] [:div.flex.flex-col.gap-2 [:div.text-muted-foreground - "When"] + (t :property.repeat/when)] (shui/select (cond-> {:on-value-change (fn [v] @@ -302,16 +300,16 @@ property-id (assoc :default-value property-id)) (shui/select-trigger - (shui/select-value {:placeholder "Select a property"})) + (shui/select-value {:placeholder (t :property/select-property-placeholder)})) (shui/select-content (map (fn [choice] (shui/select-item {:key (str (:db/id choice)) - :value (:db/id choice)} (:block/title choice))) properties))) + :value (:db/id choice)} (db-property/built-in-display-title choice t))) properties))) [:div.flex.flex-row.gap-1 [:div.text-muted-foreground - "is:"] + (t :property.repeat/is-label)] (when done-choice - (db-property/property-value-content done-choice))]])])) + (db-property/built-in-display-title done-choice t))]])])) (defn- id + (js/document.getElementById) + (.querySelector "[aria-selected=true]"))] + (.focus selected-day) + (js/setTimeout #(focus-selected-day! id (dec remaining)) 16)))) + (rum/defcs calendar-inner < rum/reactive db-mixins/query (rum/local (str "calendar-inner-" (js/Date.now)) ::identity) {:init (fn [state] @@ -336,10 +343,7 @@ state) :will-mount (fn [state] (js/setTimeout - #(some-> @(::identity state) - (js/document.getElementById) - (.querySelector "[aria-selected=true]") - (.focus)) 16) + #(focus-selected-day! @(::identity state) 10) 16) state) :will-unmount (fn [state] (shui/popup-hide!) @@ -405,7 +409,7 @@ (let [overdue? (when date (t/after? current-time (t/plus date (t/seconds 59))))] [:div (cond-> {} overdue? (assoc :class "overdue" - :title "Overdue")) + :title (t :property/overdue))) content]))) (defn- start-of-local-day [^js d] @@ -421,9 +425,9 @@ tomorrow (js/Date. (+ (.getTime today) ms-in-day)) yesterday (js/Date. (- (.getTime today) ms-in-day))] (cond - (= (.getTime given-date) (.getTime yesterday)) "Yesterday" - (= (.getTime given-date) (.getTime today)) "Today" - (= (.getTime given-date) (.getTime tomorrow)) "Tomorrow" + (= (.getTime given-date) (.getTime yesterday)) (t :date.nlp/yesterday) + (= (.getTime given-date) (.getTime today)) (t :date.nlp/today) + (= (.getTime given-date) (.getTime tomorrow)) (t :date.nlp/tomorrow) :else nil))) (rum/defc datetime-value @@ -623,7 +627,7 @@ (remove nil?) (remove #(= :logseq.property/empty-placeholder %)) set) - clear-value (str "No " (:block/title property)) + clear-value (t :property/clear-value) clear-value-label [:div.flex.flex-row.items-center.gap-1.text-sm (ui/icon "x" {:size 14}) [:div clear-value]] @@ -795,13 +799,7 @@ :items options :selected-choices selected-choices :dropdown? dropdown? - :input-default-placeholder (cond - tags? - "Set tags" - alias? - "Set alias" - :else - (str "Set " (:block/title property))) + :input-default-placeholder (t :property/set-placeholder (db-property/built-in-display-title property t)) :show-new-when-not-exact-match? (not (or (and extends-property? (or (contains? (set children-pages) (:db/id block)) @@ -953,7 +951,8 @@ (remove (fn [b] (contains? #{:logseq.property.repeat/recur-unit.minute :logseq.property.repeat/recur-unit.hour} (:db/ident b)))))] (keep (fn [block] (let [icon (pu/get-block-property-value block :logseq.property/icon) - value (db-property/closed-value-content block)] + value (or (db-property/built-in-display-title block t) + (db-property/closed-value-content block))] {:label (if icon [:div.flex.flex-row.gap-1.items-center (icon-component/icon icon {:color? true}) @@ -969,9 +968,9 @@ (distinct))) items (->> (cond (= :checkbox type) - [{:label "True" + [{:label (t :ui/true) :value true} - {:label "False" + {:label (t :ui/false) :value false}] (= :date type) (map (fn [m] (let [label (:block/title (db/entity (:value m)))] @@ -997,7 +996,7 @@ :selected-choices selected-choices :dropdown? dropdown? :show-new-when-not-exact-match? (not (or closed-values? (= :date type))) - :input-default-placeholder (str "Set " (:block/title property)) + :input-default-placeholder (t :property/set-placeholder (db-property/built-in-display-title property t)) :extract-chosen-fn :value :extract-fn (fn [x] (or (:label-value x) (:label x))) :content-props content-props @@ -1070,7 +1069,7 @@ :style {:min-height 20 :margin-left 3} :on-click #( result-count 1) " results" " result"))])])) + (t :search/result-count result-count)])])) (defn- calculate-collapsed? [current-block current-block-uuid {:keys [collapsed? container-id]}] @@ -167,7 +189,9 @@ :group-by-page? (query-result/get-group-by-page q {:table? table?})}] (if (:custom-query? config) ;; Don't display recursive results when query blocks are a query result - [:code (if dsl-query? (str "Results for " (pr-str query)) "Advanced query results")] + [:code (if dsl-query? + (t :query/results-for (pr-str query)) + (t :query/advanced-results))] (when-not (and built-in-query? (empty? result)) [:div.custom-query (get config :attr {}) (when (and dsl-query? builder) builder) @@ -175,7 +199,7 @@ (if built-in-query? [:div {:style {:margin-left 2}} (ui/foldable - (query-title config (:title q) {:result-count (count result)}) + (query-title config q {:result-count (count result)}) (fn [] (custom-query-inner config q opts)) {:default-collapsed? collapsed? @@ -191,7 +215,7 @@ [state {:keys [built-in-query?] :as config} {:keys [collapsed?] :as q}] (ui/catch-error - (ui/block-error "Query Error:" {:content (:query q)}) + (ui/block-error (t :query/error) {:content (:query q)}) (let [*query-error (:query-error state) current-block-uuid (or (:block/uuid (:block config)) (:block/uuid config)) @@ -205,7 +229,7 @@ :current-block current-block :current-block-uuid current-block-uuid :collapsed? collapsed?' - :built-in-query? (built-in-custom-query? (:title q)) + :built-in-query? (resolve-built-in-query? built-in-query? q) :*query-error *query-error)] (when (or built-in-collapsed? (not collapsed?')) (custom-query* config' q))))) diff --git a/src/main/frontend/components/query/builder.cljs b/src/main/frontend/components/query/builder.cljs index 417573b14c..4e06ceedff 100644 --- a/src/main/frontend/components/query/builder.cljs +++ b/src/main/frontend/components/query/builder.cljs @@ -8,6 +8,7 @@ [frontend.db.async :as db-async] [frontend.db.model :as db-model] [frontend.db.query-dsl :as query-dsl] + [frontend.context.i18n :refer [t]] [frontend.handler.editor :as editor-handler] [frontend.handler.query.builder :as query-builder] [frontend.mixins :as mixins] @@ -42,6 +43,23 @@ (swap! *tree #(query-builder/append-element % loc x)) (when toggle? (toggle-fn))) +(defn- filter-label + [value] + (case value + "tags" (t :property.built-in/tags) + "page reference" (t :query.builder/filter-page-reference-label) + "property" (t :class.built-in/property) + "task" (t :class.built-in/task) + "priority" (t :property.built-in/priority) + "page" (t :query.builder/filter-page-label) + "full text search" (t :query.builder/filter-full-text-search-label) + "between" (t :view.filter/operator-between) + "sample" (t :query.builder/filter-sample-label) + "and" (t :query.builder/operator-and-label) + "or" (t :view.filter/or) + "not" (t :query.builder/operator-not-label) + value)) + (rum/defcs search < (rum/local nil ::input-value) (mixins/event-mixin (fn [state] @@ -63,8 +81,8 @@ (let [*input-value (::input-value state)] [:input#query-builder-search.form-input.block.sm:text-sm.sm:leading-5 {:auto-focus true - :placeholder "Full text search" - :aria-label "Full text search" + :placeholder (t :search/full-text-placeholder) + :aria-label (t :search/full-text-placeholder) :on-change #(reset! *input-value (util/evalue %))}])) (defonce *between-dates (atom {})) @@ -102,15 +120,15 @@ [state {:keys [tree loc] :as opts}] [:div.between-date.p-4 {:on-pointer-down (fn [e] (util/stop-propagation e))} [:div.flex.flex-row.items-center.gap-2 - [:div.font-medium "Between: "] - (datepicker :start "Start date" + (datepicker :start (t :query.builder/between-start-label) (merge opts {:on-select (fn [] (when-let [^js end-input (js/document.querySelector ".query-builder-datepicker[data-key=end]")] (when (string/blank? (.-value end-input)) (.focus end-input))))})) - (datepicker :end "End date" opts)] + "~" + (datepicker :end (t :query.builder/between-end-label) opts)] [:p.pt-2 - (ui/button "Submit" + (ui/button (t :ui/submit) :on-click (fn [] (let [{:keys [start end]} @*between-dates] (when (and start end) @@ -134,7 +152,7 @@ [:div.flex.flex-row.justify-between.gap-1.items-center.px-1.pb-1.border-b [:label.opacity-50.cursor.select-none.text-sm {:for "built-in"} - "Show built-in properties"] + (t :query.builder/show-built-in-properties)] (shui/checkbox {:id "built-in" :value @*private-property? @@ -149,8 +167,9 @@ (rum/defc property-value-select-inner < rum/reactive db-mixins/query [*property *private-property? *tree opts loc values] - (let [values' (cons {:label "Select all" - :value "Select all"} + (let [select-all-label (t :view.table/select-all) + values' (cons {:label select-all-label + :value select-all-label} (map #(hash-map :value (str (:value %)) ;; Preserve original-value as non-string values like boolean do not display in select :original-value (:value %)) @@ -158,7 +177,7 @@ (select values' (fn [{:keys [value original-value]}] (let [k (if @*private-property? :private-property :property) - x (if (= value "Select all") + x (if (= value select-all-label) [k @*property] [k @*property original-value])] (reset! *property nil) @@ -292,14 +311,18 @@ (let [*mode (::mode state) filters query-builder/db-based-block-filters filters-and-ops (concat filters query-builder/operators) - operator? #(contains? query-builder/operators-set (keyword %))] + operator? #(contains? query-builder/operators-set (keyword %)) + select-items (mapv (fn [value] + {:value value + :label (filter-label value)}) + (map name filters-and-ops))] [:div.query-builder-picker (if @*mode (when-not (operator? @*mode) (db-based-query-filter-picker state *tree loc clause opts)) [:div (select - (map name filters-and-ops) + select-items (fn [{:keys [value]}] (cond (operator? value) @@ -307,7 +330,11 @@ :else (reset! *mode value))) - {:input-default-placeholder "Add filter/operator"})])])) + {:extract-fn (fn [{:keys [label value]}] + (if label + (str label " " value) + value)) + :input-default-placeholder (t :query.builder/add-filter-or-operator-placeholder)})])])) (rum/defc add-filter [*tree loc clause] @@ -322,7 +349,7 @@ (picker *tree loc clause {:toggle-fn #(shui/popup-hide! id)})) {:align :start}))} (ui/icon "plus" {:size 14}) - (when (= [0] loc) "Filter"))) + (when (= [0] loc) (t :query.builder/filter)))) (declare clauses-group) @@ -340,7 +367,7 @@ (str clause) (string? clause) - (str "Search: " clause) + (t :query.builder/search-label clause) (= (keyword f) :page-ref) (ref/->page-ref (uuid->page-title (second clause))) @@ -384,9 +411,9 @@ (second end))] (str (cond (= k :block/created-at) - "Created" + (t :query.builder/created-label) (= k :block/updated-at) - "Updated" + (t :query.builder/updated-label) :else (or (:block/title (db/entity k)) (name k))) " " start @@ -403,7 +430,7 @@ (symbol? (last clause))) (name (last clause)) (second (last clause)))] - (str "between: " (uuid->page-title start) " ~ " (uuid->page-title end))) + (t :query.builder/between-journal-label (uuid->page-title start) (uuid->page-title end))) (contains? #{:task :priority} (keyword f)) (str (name f) ": " @@ -423,24 +450,24 @@ (rum/defc clause-inner [*tree loc clause & {:keys [operator?]}] (let [popup [:div.p-4.flex.flex-col.gap-2 - [:a {:title "Delete" + [:a {:title (t :ui/delete) :on-click (fn [] (swap! *tree (fn [q] (let [loc' (if operator? (vec (butlast loc)) loc)] (query-builder/remove-element q loc')))) (shui/popup-hide!))} - "Delete"] + (t :ui/delete)] (when operator? - [:a {:title "Unwrap this operator" + [:a {:title (t :query.builder/unwrap-operator) :on-click (fn [] (swap! *tree (fn [q] (let [loc' (vec (butlast loc))] (query-builder/unwrap-operator q loc')))) (shui/popup-hide!))} - "Unwrap"]) + (t :query.builder/unwrap-operator)]) - [:div.font-medium.text-sm "Wrap this filter with: "] + [:div.font-medium.text-sm (t :query.builder/wrap-filter-with-label)] [:div.flex.flex-row.gap-2 (for [op query-builder/operators] (ui/button (string/upper-case (name op)) @@ -454,7 +481,7 @@ (when operator? [:div - [:div.font-medium.text-sm "Replace with: "] + [:div.font-medium.text-sm (t :query.builder/replace-with-label)] [:div.flex.flex-row.gap-2 (for [op (remove #{(keyword (string/lower-case clause))} query-builder/operators)] (ui/button (string/upper-case (name op)) diff --git a/src/main/frontend/components/query/view.cljs b/src/main/frontend/components/query/view.cljs index 4a8f7c00b6..9096e0bf5e 100644 --- a/src/main/frontend/components/query/view.cljs +++ b/src/main/frontend/components/query/view.cljs @@ -32,7 +32,7 @@ [:div.query-result.w-full (views/view {:config (assoc {:custom-query? true} :sidebar? (:sidebar? config)) - :title-key :views.table/live-query-title + :title-key :view.table/live-query-title :view-entity view-entity :view-feature-type :query-result :data ids diff --git a/src/main/frontend/components/quick_add.cljs b/src/main/frontend/components/quick_add.cljs index ef836bc167..f823366924 100644 --- a/src/main/frontend/components/quick_add.cljs +++ b/src/main/frontend/components/quick_add.cljs @@ -1,7 +1,7 @@ (ns frontend.components.quick-add "Quick add" (:require [frontend.components.page :as page] - [frontend.date :as date] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db.model :as model] [frontend.handler.editor :as editor-handler] @@ -37,7 +37,7 @@ (editor-handler/quick-add-open-last-block!)) state)} [] - (when (model/get-journal-page (date/today)) + (when (model/get-today-journal-page) (when-let [add-page (ldb/get-built-in-page (db/get-db) common-config/quick-add-page-name)] (let [mobile? (util/mobile?) add-button [:div @@ -47,16 +47,13 @@ :on-click (fn [_e] (editor-handler/quick-add-blocks!))} (when-not mobile? (shui/shortcut ["mod" "e"])) - "Add to today")]] + (t :editor.quick-add/add-to-today))]] [:div.ls-quick-add.flex.flex-1.flex-col.w-full.gap-4 - (when-not (util/mobile?) + (when-not mobile? [:div.flex.flex-row.justify-between.gap-4.items-center - {:class (if mobile? - "pt-4" - "border-b pb-4")} + {:class "border-b pb-4"} [:div.font-medium - "Quick add"] - add-button]) + (t :editor.quick-add/title)]]) (if mobile? [:div.w-full.mt-4 (page-blocks add-page)] diff --git a/src/main/frontend/components/recycle.cljs b/src/main/frontend/components/recycle.cljs index 6687ab1f36..4e8f263c0b 100644 --- a/src/main/frontend/components/recycle.cljs +++ b/src/main/frontend/components/recycle.cljs @@ -3,6 +3,7 @@ (:require [clojure.string :as string] [datascript.core :as d] [frontend.components.block :as component-block] + [frontend.context.i18n :as i18n :refer [t]] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.db.react :as react] @@ -58,7 +59,7 @@ (if (ldb/page? root) (:block/title root) (or (:block/title (resolve-entity db (:logseq.property.recycle/original-page root))) - "Unknown page"))) + (t :page/unknown)))) (defn- deleted-by [db root] @@ -86,23 +87,24 @@ (deleted-by-avatar user) [:div.min-w-0 [:div.truncate - (str (if (ldb/page? root) "Page" "Block") - " deleted " - (.toLocaleString (js/Date. deleted-at)))]]] + (t (if (ldb/page? root) + :storage.recycle/page-deleted-at + :storage.recycle/block-deleted-at) + (i18n/locale-format-date (js/Date. deleted-at)))]]] [:div.flex.items-center.gap-1 (shui/button {:variant :ghost :size :xs :class "!py-0 !px-1 h-4" :on-click #(page-handler/restore-recycled! root-uuid)} - "Restore") + (t :storage.recycle/restore)) (shui/button {:variant :ghost :size :xs :class "!py-0 !px-1 h-4 hover:text-red-rx-09 dark:hover:text-red-rx-10 hover:bg-red-rx-04-alpha dark:hover:bg-red-rx-06-alpha" :on-click #(when (js/confirm delete-message) (page-handler/delete-recycled-permanently! root-uuid))} - "Delete")]])) + (t :ui/delete))]])) (defn- deleted-root-outliner [root] @@ -134,7 +136,7 @@ #(compare %2 %1)))] [:div {:class (util/classnames ["flex" "flex-col" "gap-8" "ls-recycle-page-content" class])} [:div.text-sm.text-muted-foreground.ls-recycle-page-description.ml-1 - "Deleted pages and blocks stay here until restored or automatically garbage collected after 30 days."] + (t :storage.recycle/retention-desc)] (if (seq groups) (for [[title roots] groups] [:section {:key title} @@ -145,4 +147,4 @@ [:div {:key (str (:block/uuid root))} (deleted-root-header db* root) (deleted-root-outliner root)])]]) - [:div.text-sm.text-muted-foreground "Recycle is empty."])])) + [:div.text-sm.text-muted-foreground (t :storage.recycle/empty)])])) diff --git a/src/main/frontend/components/reference.cljs b/src/main/frontend/components/reference.cljs index d20103ab0b..8798c499df 100644 --- a/src/main/frontend/components/reference.cljs +++ b/src/main/frontend/components/reference.cljs @@ -2,6 +2,7 @@ (:require [frontend.common.missionary :as c.m] [frontend.components.reference-filters :as filters] [frontend.components.views :as views] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.db.async :as db-async] @@ -18,7 +19,7 @@ (let [filters (db-reference/get-filters page-entity) reference-filter (fn [{:keys [ref-pages-count]}] (shui/button - {:title "Page filter" + {:title (t :reference/page-filter) :variant "ghost" :class "text-muted-foreground !px-1" :size :sm diff --git a/src/main/frontend/components/reference_filters.cljs b/src/main/frontend/components/reference_filters.cljs index 698e4a5185..d812236b05 100644 --- a/src/main/frontend/components/reference_filters.cljs +++ b/src/main/frontend/components/reference_filters.cljs @@ -80,24 +80,24 @@ [:div.mx-auto.flex-shrink-0.flex.items-center.justify-center.h-12.w-12.rounded-full.bg-gray-200.text-gray-500.sm:mx-0.sm:h-10.sm:w-10 (ui/icon "filter" {:size 20})] [:div.mt-3.text-center.sm:mt-0.sm:ml-4.sm:text-left.pb-2 - [:h3#modal-headline.text-lg.leading-6.font-medium (t :linked-references/filter-heading)] + [:h3#modal-headline.text-lg.leading-6.font-medium (t :reference.filter/title)] [:span.text-xs - (t :linked-references/filter-directions)]]] + (t :reference.filter/directions)]]] (when (or (seq included) (seq excluded)) [:div.cp__filters.mb-4.ml-2 (when (seq included) [:div.flex.flex-row.flex-wrap.center-items - [:div.mr-1.font-medium.py-1 (t :linked-references/filter-includes)] + [:div.mr-1.font-medium.py-1 (t :reference.filter/includes)] (filtered-refs page-entity filters included false)]) (when (seq excluded) [:div.flex.flex-row.flex-wrap - [:div.mr-1.font-medium.py-1 (t :linked-references/filter-excludes)] + [:div.mr-1.font-medium.py-1 (t :reference.filter/excludes)] (filtered-refs page-entity filters excluded false)])]) [:div.cp__filters-input-panel.flex.focus-within:bg-gray-03 (ui/icon "search") [:input.cp__filters-input.w-full.bg-transparent - {:placeholder (t :linked-references/filter-search) + {:placeholder (t :reference.filter/search-placeholder) :autofocus true :ref (fn [^js el] (when el (-> (p/delay 32) (p/then #(.focus el))))) diff --git a/src/main/frontend/components/repo.cljs b/src/main/frontend/components/repo.cljs index 5854e5366a..8c30298e7c 100644 --- a/src/main/frontend/components/repo.cljs +++ b/src/main/frontend/components/repo.cljs @@ -2,7 +2,7 @@ (:require [clojure.string :as string] [frontend.components.rtc.indicator :as rtc-indicator] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :as i18n :refer [t]] [frontend.db :as db] [frontend.handler.db-based.rtc-flows :as rtc-flows] [frontend.handler.db-based.sync :as rtc-handler] @@ -50,7 +50,7 @@ [dst] (when (number? dst) (try - (.toLocaleString (js/Date. dst)) + (i18n/locale-format-date (js/Date. dst)) (catch js/Error _e nil)))) (rum/defc ^:large-vars/cleanup-todo repos-inner @@ -77,7 +77,7 @@ (when-not (util/capacitor?) (state/pub-event! [:graph/pull-down-remote-graph repo]))))))] (when-let [time (some-> (or last-seen-at created-at) (safe-locale-date))] - [:small.text-muted-foreground (str "Last opened at: " time)])] + [:small.text-muted-foreground (t :graph/last-opened-at-label time)])] [:div.controls [:div.flex.flex-row.items-center @@ -86,7 +86,9 @@ {:on-click #(util/open-url (str "file://" root))} (shui/tabler-icon "folder-pin") [:span.pl-1 root]]) - (let [manager? (user-handler/manager? url)] + (let [manager? (user-handler/manager? url) + config {:cancel-label (t :ui/cancel) + :ok-label (t :ui/confirm)}] (shui/dropdown-menu (shui/dropdown-menu-trigger {:asChild true} @@ -102,14 +104,15 @@ {:key "delete-locally" :class "delete-local-graph-menu-item" :on-click (fn [] - (let [prompt-str (str "Are you sure you want to permanently delete the graph \"" graph-name "\" from Logseq?")] + (let [prompt-str (t :graph/delete-local-confirm-desc graph-name)] (-> (shui/dialog-confirm! [:p.font-medium.-my-4 prompt-str [:span.my-2.flex.font-normal.opacity-75 - [:small "⚠️ Notice that we can't recover this graph after being deleted. Make sure you have backups before deleting it."]]]) + [:small (t :graph/delete-warning)]]] + config) (p/then (fn [] (repo-handler/remove-repo! repo))))))} - "Delete local graph")) + (t :graph/delete-local-action))) (when (and root (user-handler/logged-in?) (user-handler/rtc-group?) @@ -138,7 +141,7 @@ (p/do! (rtc-flows/trigger-rtc-start repo) (rtc-handler/ (shui/dialog-confirm! [:p.font-medium.-my-4 prompt-str [:span.my-2.flex.font-normal.opacity-75 - [:small "⚠️ Notice that we can't recover this graph after being deleted. Make sure you have backups before deleting it."]]]) + [:small (t :graph/delete-warning)]]] + config) (p/then (fn [] (state/set-state! :rtc/loading-graphs? true) @@ -159,16 +163,17 @@ (p/do! (rtc-handler/ (shui/dialog-confirm! - [:p.font-medium.-my-4 prompt-str]) + [:p.font-medium.-my-4 prompt-str] + config) (p/then (fn [] (state/set-state! :rtc/loading-graphs? true) @@ -176,16 +181,16 @@ (state/ (rtc-handler/ #" GraphUUID)] (when short-repo-name {:title [:span.flex.items-center.title-wrap short-repo-name (when remote? [:span.pl-1.flex.items-center - {:title (str "<" GraphName "> #" GraphUUID)} + {:title title} (ui/icon (if graph-e2ee? "lock" "cloud") {:size 18}) (when-not ready-for-use? - [:span.opacity.text-sm.pl-1 "preparing"]) + [:span.opacity.text-sm.pl-1 (t :graph/preparing)]) (when downloading? - [:span.opacity.text-sm.pl-1 "downloading"])])] + [:span.opacity.text-sm.pl-1 (t :graph/downloading)])])] :hover-detail repo-url ;; show full path on hover :options {:on-click (fn [e] @@ -305,14 +311,14 @@ {:size :sm :variant :ghost :on-click #(state/pub-event! [:graph/new-db-graph])} (shui/tabler-icon "database-plus") - [:span (if util/electron? "Create db graph" "Create new graph")])) + [:span (if util/electron? (t :graph/create-db) (t :graph/create-new))])) (when-not config/publishing? (shui/button {:size :sm :variant :ghost :on-click (fn [] (route-handler/redirect! {:to :import}))} (shui/tabler-icon "database-import") - [:span (t :import-notes)])) + [:span (t :import/notes)])) (when-not config/publishing? (shui/button {:size :sm :variant :ghost @@ -320,7 +326,7 @@ (if (util/capacitor?) (state/pub-event! [:mobile/set-tab "graphs"]) (route-handler/redirect-to-all-graphs)))} - (shui/tabler-icon "layout-2") [:span (t :all-graphs)]))]) + (shui/tabler-icon "layout-2") [:span (t :graph/all-graphs)]))]) (rum/defcs repos-dropdown-content < rum/reactive [_state & {:keys [contentid footer?] :as opts @@ -341,7 +347,7 @@ items-fn #(repos-dropdown-links repos current-repo downloading-graph-id opts) header-fn #(when (> (count repos) 1) ; show switch to if there are multiple repos [:div.font-medium.md:text-sm.md:opacity-50.p-2.flex.flex-row.justify-between.items-center - [:h4.pb-1 (t :left-side-bar/switch)] + [:h4.pb-1 (t :graph.switch/prompt)] (when login? (if remotes-loading? @@ -349,7 +355,7 @@ (shui/button {:variant :ghost :size :sm - :title "Refresh remote graphs" + :title (t :graph/refresh-remote-graphs) :class "!h-6 !px-1 relative right-[-4px]" :on-click (fn [] (rtc-handler/|\\#\\\\") @@ -418,24 +425,28 @@ [s] (common-util/safe-re-find reserved-chars-pattern s)) +(defn- reserved-character-item + [character label] + [:li (str character " (" label ")")]) + (defn invalid-graph-name-warning [] (notification/show! [:div - [:p "Graph name can't contain following reserved characters:"] + [:p (t :graph.validation/name-reserved-characters-warning)] [:ul - [:li "< (less than)"] - [:li "> (greater than)"] - [:li ": (colon)"] - [:li "\" (double quote)"] - [:li "/ (forward slash)"] - [:li "\\ (backslash)"] - [:li "| (vertical bar or pipe)"] - [:li "? (question mark)"] - [:li "* (asterisk)"] - [:li "# (hash)"] + (reserved-character-item "<" (t :graph.validation/reserved-character-less-than)) + (reserved-character-item ">" (t :graph.validation/reserved-character-greater-than)) + (reserved-character-item ":" (t :graph.validation/reserved-character-colon)) + (reserved-character-item "\"" (t :graph.validation/reserved-character-double-quote)) + (reserved-character-item "/" (t :graph.validation/reserved-character-forward-slash)) + (reserved-character-item "\\" (t :graph.validation/reserved-character-backslash)) + (reserved-character-item "|" (t :graph.validation/reserved-character-pipe)) + (reserved-character-item "?" (t :graph.validation/reserved-character-question-mark)) + (reserved-character-item "*" (t :graph.validation/reserved-character-asterisk)) + (reserved-character-item "#" (t :graph.validation/reserved-character-hash)) ;; `+` is used to encode path that includes `:` or `/` - [:li "+ (plus)"]]] + (reserved-character-item "+" (t :graph.validation/reserved-character-plus))]] :warning false)) (defn invalid-graph-name? @@ -516,7 +527,7 @@ (shui/input {:disabled creating-db? :ref input-ref - :placeholder "your graph name" + :placeholder (t :graph/name-placeholder) :on-key-down submit! :autoComplete "off"}) (when rtc-group? @@ -531,7 +542,7 @@ (set-cloud? v)))}) [:label.opacity-70.text-sm {:for "rtc-sync"} - "Use Logseq Sync?"] + (t :graph/use-sync-label)] (when cloud? [:div.flex.flex-row.items-center.gap-1.ml-3 (shui/checkbox @@ -539,17 +550,17 @@ :checked graph-e2ee? :on-checked-change (fn [] - (set-graph-e2ee? (not graph-e2ee?)))}) + (set-graph-e2ee? (not graph-e2ee?)))}) [:label.opacity-70.text-sm {:for "rtc-graph-e2ee"} - "Encrypt graph data"]])]]) + (t :graph/encrypt-data-label)]])]]) (shui/button {:disabled (and cloud? graph-e2ee? (not e2ee-rsa-key-ensured?)) :on-click #(submit! % true) :on-key-down submit!} (if creating-db? - (ui/loading "Creating graph") - "Submit"))])) + (ui/loading (t :graph/creating)) + (t :ui/submit)))])) (rum/defc new-db-graph < rum/reactive [] diff --git a/src/main/frontend/components/right_sidebar.cljs b/src/main/frontend/components/right_sidebar.cljs index 742d6c70c6..774b86cd8c 100644 --- a/src/main/frontend/components/right_sidebar.cljs +++ b/src/main/frontend/components/right_sidebar.cljs @@ -11,7 +11,6 @@ [frontend.components.plugins :as plugins] [frontend.config :as config] [frontend.context.i18n :refer [t]] - [frontend.date :as date] [frontend.db :as db] [frontend.db.async :as db-async] [frontend.db.rtc.debug-ui :as rtc-debug-ui] @@ -35,9 +34,9 @@ (when-not (util/sm-breakpoint?) (ui/with-shortcut :ui/toggle-right-sidebar "left" (shui/button-ghost-icon :layout-sidebar-right - {:title (t :right-side-bar/toggle-right-sidebar) - :class "toggle-right-sidebar" - :on-click ui-handler/toggle-right-sidebar!})))) + {:class "toggle-right-sidebar" + :on-click ui-handler/toggle-right-sidebar!}) + (t :sidebar.right/toggle)))) (rum/defc block-cp < rum/reactive [repo idx block] @@ -76,7 +75,7 @@ (rum/defc search-title < rum/reactive [*input] (let [input (rum/react *input) - input' (if (string/blank? input) "Blank input" input)] + input' (if (string/blank? input) (t :search/blank-input) input)] [:span.overflow-hidden.text-ellipsis input'])) (rum/defc sidebar-search @@ -114,20 +113,20 @@ (case (keyword block-type) :contents (when-let [page (db/get-page "Contents")] - [[:.flex.items-center (ui/icon "list-details" {:class "text-md mr-2"}) (t :right-side-bar/contents)] + [[:.flex.items-center (ui/icon "list-details" {:class "text-md mr-2"}) (t :page/contents)] (page-cp repo (str (:block/uuid page)))]) :help - [[:.flex.items-center (ui/icon "help" {:class "text-md mr-2"}) (t :right-side-bar/help)] (onboarding/help)] + [[:.flex.items-center (ui/icon "help" {:class "text-md mr-2"}) (t :nav/help)] (onboarding/help)] :page-graph - [[:.flex.items-center (ui/icon "hierarchy" {:class "text-md mr-2"}) (t :right-side-bar/page-graph)] + [[:.flex.items-center (ui/icon "hierarchy" {:class "text-md mr-2"}) (t :graph.page/title)] (page/page-graph)] :block-ref (let [lookup (if (integer? db-id) db-id [:block/uuid db-id])] (when-let [block (db/entity repo lookup)] - [(t :right-side-bar/block-ref) + [(t :reference/blocks) (block-with-breadcrumb repo block idx [repo db-id block-type] true)])) :block @@ -149,7 +148,7 @@ (sidebar-search repo block-type init-key db-id *db-id)] :shortcut-settings - [[:.flex.items-center (ui/icon "command" {:class "text-md mr-2"}) (t :help/shortcuts)] + [[:.flex.items-center (ui/icon "command" {:class "text-md mr-2"}) (t :help.shortcuts/label)] (shortcut-settings)] :rtc @@ -193,22 +192,22 @@ block (when (integer? db-id) (db/entity db-id)) page? (or (contains? #{:page :contents} type) (ldb/page? block))] [:<> - (menu-item {:on-click #(state/sidebar-remove-block! idx)} (t :right-side-bar/pane-close)) - (when multi-items? (menu-item {:on-click #(state/sidebar-remove-rest! db-id)} (t :right-side-bar/pane-close-others))) + (menu-item {:on-click #(state/sidebar-remove-block! idx)} (t :sidebar.right/close)) + (when multi-items? (menu-item {:on-click #(state/sidebar-remove-rest! db-id)} (t :sidebar.right/close-others))) (when multi-items? (menu-item {:on-click (fn [] (state/clear-sidebar-blocks!) - (state/hide-right-sidebar!))} (t :right-side-bar/pane-close-all))) + (state/hide-right-sidebar!))} (t :sidebar.right/close-all))) (when (and (not collapsed?) multi-items?) [:hr.menu-separator]) - (when-not collapsed? (menu-item {:on-click #(state/sidebar-block-toggle-collapse! db-id)} (t :right-side-bar/pane-collapse))) - (when multi-items? (menu-item {:on-click #(state/sidebar-block-collapse-rest! db-id)} (t :right-side-bar/pane-collapse-others))) - (when multi-items? (menu-item {:on-click #(state/sidebar-block-set-collapsed-all! true)} (t :right-side-bar/pane-collapse-all))) + (when-not collapsed? (menu-item {:on-click #(state/sidebar-block-toggle-collapse! db-id)} (t :sidebar.right/collapse))) + (when multi-items? (menu-item {:on-click #(state/sidebar-block-collapse-rest! db-id)} (t :sidebar.right/collapse-others))) + (when multi-items? (menu-item {:on-click #(state/sidebar-block-set-collapsed-all! true)} (t :sidebar.right/collapse-all))) (when (and collapsed? multi-items?) [:hr.menu-separator]) - (when collapsed? (menu-item {:on-click #(state/sidebar-block-toggle-collapse! db-id)} (t :right-side-bar/pane-expand))) - (when multi-items? (menu-item {:on-click #(state/sidebar-block-set-collapsed-all! false)} (t :right-side-bar/pane-expand-all))) + (when collapsed? (menu-item {:on-click #(state/sidebar-block-toggle-collapse! db-id)} (t :sidebar.right/expand))) + (when multi-items? (menu-item {:on-click #(state/sidebar-block-set-collapsed-all! false)} (t :sidebar.right/expand-all))) (when page? [:hr.menu-separator]) (when page? (menu-item {:on-click (fn [] (route-handler/redirect-to-page! (:block/uuid block)))} - (t :right-side-bar/pane-open-as-page)))])) + (t :sidebar.right/open-as-page)))])) (rum/defc drop-indicator [idx drag-to] @@ -278,23 +277,26 @@ [:div.ml-1.font-medium.text-sm.overflow-hidden.whitespace-nowrap title]] [:.item-actions.flex.items-center - (shui/button - {:title (t :right-side-bar/pane-more) - :class "px-2 py-2 h-8 w-8 text-muted-foreground" - :variant :ghost - :on-click #(shui/popup-show! - (.-target %) - (actions-menu-content db-id idx block-type collapsed? block-count) - {:as-dropdown? true - :content-props {:on-click (fn [] (shui/popup-hide!))}})} - (ui/icon "dots")) + (ui/tooltip + (shui/button + {:class "px-2 py-2 h-8 w-8 text-muted-foreground" + :variant :ghost + :on-click #(shui/popup-show! + (.-target %) + (actions-menu-content db-id idx block-type collapsed? block-count) + {:as-dropdown? true + :content-props {:on-click (fn [] (shui/popup-hide!))}})} + (ui/icon "dots")) + (t :sidebar.right/more)) - (shui/button - {:title (t :right-side-bar/pane-close) - :variant :ghost - :class "px-2 py-2 h-8 w-8 text-muted-foreground" - :on-click #(state/sidebar-remove-block! idx)} - (ui/icon "x"))]] + (ui/tooltip + (shui/button + {:variant :ghost + :class "px-2 py-2 h-8 w-8 text-muted-foreground" + :on-click #(state/sidebar-remove-block! idx)} + (ui/icon "x")) + (t :sidebar.right/close))] + ] [:div {:role "region" :id (str "sidebar-panel-content-" idx) @@ -335,7 +337,7 @@ :file (get-in match [:path-params :path]) - (date/journal-name))] + (db/get-today-journal-title))] (when page (string/lower-case page)))) @@ -424,7 +426,7 @@ {:ref el-ref :role "separator" :aria-orientation "vertical" - :aria-label (t :right-side-bar/separator) + :aria-label (t :sidebar.right/resize-handle) :aria-valuemin (* min-ratio 100) :aria-valuemax (* max-ratio 100) :aria-valuenow 50 @@ -477,7 +479,7 @@ [:div.text-sm [:button.button.cp__right-sidebar-settings-btn {:on-click (fn [_e] (state/sidebar-add-block! repo "contents" :contents))} - (t :right-side-bar/contents)]] + (t :page/contents)]] [:div.text-sm [:button.button.cp__right-sidebar-settings-btn {:on-click (fn [] @@ -486,12 +488,12 @@ repo page :page-graph)))} - (t :right-side-bar/page-graph)]] + (t :graph.page/title)]] [:div.text-sm [:button.button.cp__right-sidebar-settings-btn {:on-click (fn [_e] (state/sidebar-add-block! repo "help" :help))} - (t :right-side-bar/help)]] + (t :nav/help)]] (for [{:keys [db-id block-type label]} (dev-sidebar-items developer-mode?)] [:div.text-sm {:key (str "dev-sidebar-item-" (name block-type))} @@ -507,7 +509,7 @@ (sidebar-item repo idx db-id block-type block-count) (str "sidebar-block-" db-id))) [:div.p-4 - [:span.font-medium.opacity-50 "Loading ..."]])]]])) + [:span.font-medium.opacity-50 (t :ui/loading)]])]]])) (rum/defcs sidebar < rum/reactive [state] diff --git a/src/main/frontend/components/right_sidebar.css b/src/main/frontend/components/right_sidebar.css index 5f154c138f..15b27502a0 100644 --- a/src/main/frontend/components/right_sidebar.css +++ b/src/main/frontend/components/right_sidebar.css @@ -28,3 +28,7 @@ html[data-theme=light] { @apply opacity-100; } } + +.sidebar-panel-content { + @apply pt-2; +} diff --git a/src/main/frontend/components/rtc/indicator.cljs b/src/main/frontend/components/rtc/indicator.cljs index 0fbb542274..4eb9387834 100644 --- a/src/main/frontend/components/rtc/indicator.cljs +++ b/src/main/frontend/components/rtc/indicator.cljs @@ -7,6 +7,7 @@ [frontend.db :as db] [frontend.flows :as flows] [frontend.handler.db-based.rtc-flows :as rtc-flows] + [frontend.context.i18n :refer [locale-format-date t]] [frontend.handler.db-based.sync :as rtc-handler] [frontend.state :as state] [frontend.ui :as ui] @@ -102,7 +103,7 @@ (when (seq downloading) [:details [:summary - (util/format "Downloading assets (%s)" (count downloading))] + (t :sync/assets-downloading-count (count downloading))] [:div.flex.flex-col.gap-1.text-sm (for [{:keys [block percent]} downloading] [:div.flex.flex-row.gap-1.items-center @@ -111,7 +112,7 @@ (when (seq uploading) [:details [:summary - (util/format "Uploading assets (%s)" (count uploading))] + (t :sync/assets-uploading-count (count uploading))] [:div.flex.flex-col.gap-1.text-sm (for [{:keys [block percent]} uploading] [:div.flex.flex-row.gap-1.items-center @@ -127,18 +128,17 @@ download-logs upload-logs misc-logs pending-local-ops pending-server-ops]} (hooks/use-flow-state (m/watch *detail-info))] [:div.rtc-info.flex.flex-col.gap-1.p-2.text-gray-11 - [:div.font-medium.mb-2 (if online? "Online" "Offline")] - [:div [:span.font-medium.mr-1 (or pending-local-ops 0)] "pending local changes"] + [:div.font-medium.mb-2 (t (if online? :sync/online :sync/offline))] + [:div [:span.font-medium.mr-1 (or pending-local-ops 0)] (t :sync/pending-local-changes)] ;; FIXME: pending-server-ops - [:div [:span.font-medium.mr-1 (or pending-server-ops 0)] "pending server changes"] + [:div [:span.font-medium.mr-1 (or pending-server-ops 0)] (t :sync/pending-server-changes)] (assets-progressing) ;; FIXME: What's the type for downloaded log? (when-let [latest-log (some (fn [l] (when (contains? #{:rtc.log/push-local-update} (:type l)) l)) misc-logs)] (when-let [time (:created-at latest-log)] - [:div.text-sm "Last synced time: " - (.toLocaleString time)])) + [:div.text-sm (t :sync/last-synced-time-label (locale-format-date time))])) [:a.fade-link.text-sm {:on-click #(set-expand-debug! (not expand-debug?))} - "More debug info"] + (t :sync/more-debug-info)] (when expand-debug? [:div.rtc-info-debug [:pre.select-text @@ -161,7 +161,7 @@ :on-click (fn [] (rtc-handler/> rtc-flows/rtc-upload-log-flow @@ -285,4 +285,4 @@ :on-click #(shui/popup-show! (.-target %) (uploading-logs) {:align "end"})} - "Uploading..."))) + (t :sync/uploading)))) diff --git a/src/main/frontend/components/scheduled_deadlines.cljs b/src/main/frontend/components/scheduled_deadlines.cljs index fb65b50864..a56fa13542 100644 --- a/src/main/frontend/components/scheduled_deadlines.cljs +++ b/src/main/frontend/components/scheduled_deadlines.cljs @@ -2,8 +2,10 @@ (:require [clojure.string :as string] [frontend.components.block :as block] [frontend.components.content :as content] + [frontend.context.i18n :refer [t]] [frontend.components.editor :as editor] [frontend.date :as date] + [frontend.db :as db] [frontend.db.async :as db-async] [frontend.state :as state] [frontend.ui :as ui] @@ -14,7 +16,7 @@ [page-name] (and (date/valid-journal-title? (string/capitalize page-name)) (not (true? (state/scheduled-deadlines-disabled?))) - (= (string/lower-case page-name) (string/lower-case (date/journal-name))))) + (db/today-journal-page? page-name))) (rum/defcs scheduled-and-deadlines < rum/reactive {:init (fn [state] @@ -29,7 +31,7 @@ (when (seq scheduled-or-deadlines) [:div.scheduled-or-deadlines (ui/foldable - [:div.text-sm.font-medium "Scheduled and Deadline"] + [:div.text-sm.font-medium (t :page/scheduled-and-deadline)] (fn [] [:div.scheduled-deadlines.references-blocks.mb-6 (let [ref-hiccup (block/->hiccup scheduled-or-deadlines diff --git a/src/main/frontend/components/select.cljs b/src/main/frontend/components/select.cljs index a9f5b94aed..c9538e34ae 100644 --- a/src/main/frontend/components/select.cljs +++ b/src/main/frontend/components/select.cljs @@ -139,7 +139,7 @@ search-result') search-result') new-option {:value @*input - :label (str "+ New option: " @*input)} + :label (t :select/new-option @*input)} search-result (if (and show-new-when-not-exact-match? (not exact-match?) (not (string/blank? @*input)) @@ -173,7 +173,7 @@ results-container-f (fn [] (if loading? [:div.px-1.py-2 - (ui/loading "Loading ...")] + (ui/loading (t :ui/loading))] [:div {:class (when (seq search-result) "py-1")} [:div.item-results-wrap @@ -204,7 +204,7 @@ :empty-placeholder (empty-placeholder t)})] (when (and multiple-choices? (fn? on-apply)) - [:div.p-4 (ui/button "Apply" + [:div.p-4 (ui/button (t :ui/apply) {:small? true :on-pointer-down (fn [e] (util/stop e) @@ -251,13 +251,13 @@ {:value (text-util/get-graph-name-from-path url) :id (config/get-repo-dir url) :graph url})))) - :prompt-key :select.graph/prompt + :prompt-key :graph.switch/select-prompt :on-chosen #(state/pub-event! [:graph/switch (:graph %)]) :empty-placeholder (fn [t] [:div.px-4.py-2 - [:div.mb-2 (t :select.graph/empty-placeholder-description)] + [:div.mb-2 (t :graph.switch/empty-desc)] (ui/button - (t :select.graph/add-graph) + (t :graph.switch/add-graph-action) :href (rfe/href :graphs) :on-click state/close-modal!)])} :graph-remove diff --git a/src/main/frontend/components/selection.cljs b/src/main/frontend/components/selection.cljs index 7176b78cb4..16a5775681 100644 --- a/src/main/frontend/components/selection.cljs +++ b/src/main/frontend/components/selection.cljs @@ -1,6 +1,7 @@ (ns frontend.components.selection "Block selection" (:require [frontend.db :as db] + [frontend.context.i18n :refer [t]] [frontend.handler.editor :as editor-handler] [frontend.state :as state] [frontend.ui :as ui] @@ -33,7 +34,7 @@ :selected-blocks selected-blocks :property-key "Tags" :on-dialog-close #(state/pub-event! [:editor/hide-action-bar])}]))) - (ui/tooltip (ui/icon "hash" {:size 13}) "Set tag" + (ui/tooltip (ui/icon "hash" {:size 13}) (t :property/set-tags) {:trigger-props {:class "flex"}})) (shui/button (assoc button-opts @@ -42,7 +43,7 @@ (on-copy) (state/clear-selection!) (state/pub-event! [:editor/hide-action-bar]))) - "Copy") + (t :ui/copy)) (shui/button (assoc button-opts :on-pointer-down (fn [e] @@ -50,7 +51,7 @@ (state/pub-event! [:editor/new-property {:target (.-target e) :selected-blocks selected-blocks :on-dialog-close #(state/pub-event! [:editor/hide-action-bar])}]))) - "Set property") + (t :property/set-property)) (shui/button (assoc button-opts :on-pointer-down (fn [e] @@ -60,7 +61,7 @@ :remove-property? true :select-opts {:show-new-when-not-exact-match? false} :on-dialog-close #(state/pub-event! [:editor/hide-action-bar])}]))) - "Unset property") + (t :property/unset-property)) (when-not (contains? #{:logseq.class/Page} (:db/ident view-parent)) (shui/button (assoc button-opts diff --git a/src/main/frontend/components/server.cljs b/src/main/frontend/components/server.cljs index dbd0d2e18d..0974182b42 100644 --- a/src/main/frontend/components/server.cljs +++ b/src/main/frontend/components/server.cljs @@ -2,6 +2,7 @@ (:require [clojure.string :as string] [electron.ipc :as ipc] + [frontend.context.i18n :refer [t]] [frontend.handler.notification :as notification] [frontend.state :as state] [frontend.ui :as ui] @@ -25,7 +26,7 @@ *tokens (::tokens _state) changed? (not= @*tokens (:tokens server-state))] [:div.cp__server-tokens-panel.pt-6 - [:h2.text-3xl.-translate-y-4 "Authorization tokens"] + [:h2.text-3xl.-translate-y-4 (t :server.token/title)] ;; items (let [update-value! (fn [idx k v] (swap! *tokens assoc-in [idx k] v))] (for [[idx {:keys [value name]}] (medley/indexed @*tokens)] @@ -33,12 +34,12 @@ {:key idx} [:input.form-input.basis-36 {:auto-focus true - :placeholder "name" + :placeholder (t :server.token/name-placeholder) :value name :on-change #(let [value (.-value (.-target %))] (update-value! idx :name value))}] [:input.form-input - {:placeholder "value" + {:placeholder (t :server.token/value-placeholder) :value value :on-change #(let [value (.-value (.-target %))] (update-value! idx :value value))}] @@ -49,19 +50,19 @@ (update-value! idx :value new-token) (when input-el (js/setTimeout (fn [] (.select input-el)) 64))) - :title "Regenerate token value"} + :title (t :server.token/regenerate-value)} [:span.flex.items-center (ui/icon "refresh")]] [:button.px-2.opacity-50.hover:opacity-90.active:opacity-100 {:on-click #(reset! *tokens (into [] (medley/remove-nth idx @*tokens)))} [:span.flex.items-center (ui/icon "trash-x")]]])) [:p.flex.justify-end.pt-6.space-x-3 - (ui/button "+ Add new token" + (ui/button (t :server.token/add-new) :on-click #(swap! *tokens conj {}) :variant :outline) - (ui/button "Save" + (ui/button (t :ui/save) :on-click (fn [] (-> (ipc/ipc :server/set-config {:tokens @*tokens}) - (p/then #(notification/show! "Update tokens successfully!" :success)) + (p/then #(notification/show! (t :server.token/update-success) :success)) (p/catch #(js/console.error %)) (p/finally #(close-panel)))) :disabled (not changed?))]])) @@ -86,26 +87,29 @@ (apply not=)))] [:div.cp__server-configs-panel.pt-5 - [:h2.text-3xl.-translate-y-4 "Server configurations"] + [:h2.text-3xl.-translate-y-4 (t :server.config/title)] - [:div.item.flex.items-center.space-x-3 - [:label.basis-96 - [:strong "Host"] + [:div.flex.items-end.gap-3 + [:div.flex.flex-col.gap-1.flex-1 + [:strong (t :ui/host)] [:input.form-input - {:value host + {:value (or host "") :on-change #(let [value (.-value (.-target %))] (swap! *configs assoc :host value))}]] - - [:label - [:strong "Port (1 ~ 65535)"] + [:div.flex.flex-col.gap-1 + {:class "w-40"} + [:strong (t :server.config/port-label)] [:input.form-input {:auto-focus true - :value port - :min "1" - :max "65535" - :type "number" - :on-change #(let [value (.-value (.-target %))] - (swap! *configs assoc :port value))}]]] + :value (or port "") + :type "text" + :inputMode "numeric" + :pattern "[0-9]*" + :on-change #(let [value (util/evalue %) + port (if (string/blank? value) 1 (util/sanitize-port-input value))] + (swap! *configs assoc :port port)) + :on-blur #(let [value (.-value (.-target %))] + (swap! *configs assoc :port (util/normalize-port-input value)))}]]] [:p.py-3.px-1 [:label.flex.space-x-2.items-center @@ -114,12 +118,12 @@ (swap! *configs assoc :autostart checked)) :checked (not (false? autostart))}) - [:strong.select-none "Auto start server with the app launched"]]] + [:strong.select-none (t :server.config/auto-start-label)]]] [:p.flex.justify-end.pt-6.space-x-3 - (ui/button "Reset" :variant :outline + (ui/button (t :server.config/reset) :variant :outline :on-click #(reset! *configs (select-keys server-state [:host :port :autostart]))) - (ui/button "Save & Apply" + (ui/button (t :server.config/save-and-apply) :disabled (not changed?) :on-click (fn [] (let [configs (select-keys @*configs [:host :port :autostart])] @@ -130,6 +134,17 @@ (ipc/ipc :server/do :restart)))) (p/catch #(notification/show! (str %) :error))))))]])) +(defn- server-status-label + [status] + (-> (case status + :starting (t :server.status/starting) + :running (t :server.status/running) + :closing (t :server.status/closing) + :closed (t :server.status/closed) + :error (t :server.status/error) + (t :server.status/stopped)) + string/upper-case)) + (rum/defc server-indicator [server-state] @@ -149,7 +164,7 @@ (hooks/use-effect! #(when error - (notification/show! (str "[Server] " error) :error)) + (notification/show! (t :server/error-notification error) :error)) [error]) [:div.cp__server-indicator @@ -162,22 +177,22 @@ (cond running? - {:title "Stop server" + {:title (t :server/stop) :options {:on-click #(ipc/ipc :server/do :stop)} :icon [:span.text-red-500.flex.items-center (ui/icon "player-stop")]} :else - {:title "Start server" + {:title (t :server/start) :options {:on-click #(ipc/ipc :server/do :restart)} :icon [:span.text-green-500.flex.items-center (ui/icon "player-play")]}) - {:title "Authorization tokens" + {:title (t :server.token/title) :options {:on-click #(shui/dialog-open! (fn [] (panel-of-tokens shui/dialog-close!)))} :icon (ui/icon "key")} - {:title "Server configurations" + {:title (t :server.config/title) :options {:on-click #(shui/dialog-open! (fn [] (panel-of-configs shui/dialog-close!)))} @@ -187,7 +202,7 @@ [:div.links-header.flex.justify-center.py-2 [:span.ml-1.text-sm.opacity-70 (if-not running? - (string/upper-case (or (:status server-state) "stopped")) + (server-status-label status) [:span.flex.flex-col.gap-1.text-xs.font-mono [:a.hover:underline.flex.items-center {:href href} href (shui/tabler-icon "external-link" {:size 12 :class "inline-block ml-1 pt-[1px]"})] @@ -195,7 +210,7 @@ [:a.hover:underline.flex.items-center {:on-click (fn [] (util/copy-to-clipboard! (str href "/mcp")) - (notification/show! "MCP URL copied to clipboard!" :success))} + (notification/show! (t :server/mcp-url-copied) :success))} (str href "/mcp") (shui/tabler-icon "copy" {:size 12 :class "inline-block ml-1 mt-[1px]"})])])]] (for [{:keys [hr? title options icon]} items] diff --git a/src/main/frontend/components/settings.cljs b/src/main/frontend/components/settings.cljs index 3ef92b75ec..b0dcc118b1 100644 --- a/src/main/frontend/components/settings.cljs +++ b/src/main/frontend/components/settings.cljs @@ -7,7 +7,7 @@ [frontend.components.shortcut :as shortcut] [frontend.components.svg :as svg] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :refer [interpolate-rich-text-node locale-join-rich-text-node locale-format-date t]] [frontend.date :as date] [frontend.db :as db] [frontend.dicts :as dicts] @@ -54,26 +54,24 @@ (let [update-pending? (state/sub :electron/updater-pending?) {:keys [type payload]} (state/sub :electron/updater)] [:span.cp__settings-app-updater - [:div.ctls.flex.items-center - [:div.mt-1.sm:mt-0.sm:col-span-2.flex.gap-4.items-center.flex-wrap [:div (cond (mobile-util/native-android?) (ui/button - (t :settings-page/check-for-updates) + (t :settings.general/check-for-updates) :class "text-sm mr-1" :href "https://github.com/logseq/logseq/releases") (mobile-util/native-ios?) (ui/button - (t :settings-page/check-for-updates) + (t :settings.general/check-for-updates) :class "text-sm mr-1" :href "https://apps.apple.com/app/logseq/id1601013908") (util/electron?) (ui/button - (if update-pending? (t :settings-page/checking) (t :settings-page/check-for-updates)) + (if update-pending? (t :updater/checking-for-updates) (t :settings.general/check-for-updates)) :class "text-sm mr-1" :disabled update-pending? :on-click #(js/window.apis.checkForUpdates true)) @@ -82,10 +80,12 @@ nil)] [:div.text-sm.cursor - {:title (str (t :settings-page/revision) config/revision) + {:title (t :settings.general/revision config/revision) :on-click (fn [] - (notification/show! [:div "Current Revision: " + (notification/show! [:div + [:span (t :settings.general/current-revision-label)] [:a {:target "_blank" + :style {:margin-inline-start "0.25rem"} :href (str "https://github.com/logseq/logseq/commit/" config/revision)} config/revision]] :info @@ -95,53 +95,55 @@ [:a.text-sm.fade-link.underline.inline {:target "_blank" :href "https://docs.logseq.com/#/page/changelog"} - (t :settings-page/changelog)]]] + (t :settings.general/changelog)]]] - (when-not (or update-pending? - (string/blank? type)) + (when-not (string/blank? type) [:div.update-state.text-sm (case type "checking-for-update" - [:p (t :settings-page/checking)] + [:p (t :updater/checking-for-updates)] "update-not-available" - [:p (t :settings-page/app-updated)] + [:p (t :updater/up-to-date)] "update-available" (let [{:keys [name url]} payload] - [:p (str (t :settings-page/update-available)) + [:p + [:span (t :updater/update-available)] [:a.link {:on-click (fn [e] (js/window.apis.openExternal url) - (util/stop e))} + (util/stop e)) + :style {:margin-inline-start "0.25rem"}} svg/external-link name " 🎉"]]) "download-progress" (let [percent (some-> payload :percent js/Math.round)] - [:p (str "Downloading update" - (when (number? percent) - (str " " percent "%")) - "...")]) + [:p (t :updater/downloading-progress (or percent 0))]) "update-downloaded" [:div.flex.items-center.gap-2.flex-wrap - [:p (t :updater/new-version-install)] + [:p (t :updater/update-ready-to-install)] (ui/button (t :updater/quit-and-install) :class "text-sm" :on-click #(ipc/ipc :quitAndInstall))] "error" - [:p (t :settings-page/update-error-1) [:br] (t :settings-page/update-error-2) - [:a.link - {:on-click - (fn [e] - (js/window.apis.openExternal "https://github.com/logseq/logseq/releases") - (util/stop e))} - svg/external-link " release channel"]] - - nil)])])) + (let [release-channel-link + [:a.link.inline-flex.items-center.gap-1 + {:on-click + (fn [e] + (js/window.apis.openExternal "https://github.com/logseq/logseq/releases") + (util/stop e))} + svg/external-link + (t :settings.general/release-channel)]] + [:p + (interpolate-rich-text-node + (t :updater/update-error) + [release-channel-link] + true)]))])])) (rum/defc outdenting-hint [] @@ -149,10 +151,10 @@ {:style {:box-shadow "0 4px 20px 4px rgba(0, 20, 60, .1), 0 4px 80px -8px rgba(0, 20, 60, .2)"}} [:div {:style {:margin "12px" :max-width "500px"}} [:p.text-sm - (t :settings-page/preferred-outdenting-tip) + (t :settings.editor/preferred-outdenting-tip) [:a.text-sm {:target "_blank" :href "https://discuss.logseq.com/t/whats-your-preferred-outdent-behavior-the-direct-one-or-the-logical-one/978"} - (t :settings-page/preferred-outdenting-tip-more)]] + (t :settings.editor/preferred-outdenting-tip-more)]] [:img {:src "https://discuss.logseq.com/uploads/default/original/1X/e8ea82f63a5e01f6d21b5da827927f538f3277b9.gif" :width 500 :height 500}]]]) @@ -163,7 +165,7 @@ {:style {:box-shadow "0 4px 20px 4px rgba(0, 20, 60, .1), 0 4px 80px -8px rgba(0, 20, 60, .2)"}} [:div {:style {:margin "12px" :max-width "500px"}} [:p.text-sm - (t :settings-page/auto-expand-block-refs-tip)] + (t :settings.editor/auto-expand-block-refs-tip)] [:img {:src "https://user-images.githubusercontent.com/28241963/225818326-118deda9-9d1e-477d-b0ce-771ca0bcd976.gif" :width 500 :height 500}]]]) @@ -196,32 +198,32 @@ (defn edit-config-edn [] (row-with-button-action - {:left-label (t :settings-page/custom-configuration) - :button-label (t :settings-page/edit-config-edn) + {:left-label (t :settings.general/custom-configuration) + :button-label (t :settings.general/edit-config-edn) :href (rfe/href :file {:path (config/get-repo-config-path)}) :on-click ui-handler/toggle-settings-modal! :-for "config_edn"})) (defn edit-global-config-edn [] (row-with-button-action - {:left-label (t :settings-page/custom-global-configuration) - :button-label (t :settings-page/edit-global-config-edn) + {:left-label (t :settings.general/custom-global-configuration) + :button-label (t :settings.general/edit-global-config-edn) :href (rfe/href :file {:path (global-config-handler/global-config-path)}) :on-click ui-handler/toggle-settings-modal! :-for "global_config_edn"})) (defn edit-custom-css [] (row-with-button-action - {:left-label (t :settings-page/custom-theme) - :button-label (t :settings-page/edit-custom-css) + {:left-label (t :settings.general/custom-theme) + :button-label (t :settings.general/edit-custom-css) :href (rfe/href :file {:path (config/get-custom-css-path)}) :on-click ui-handler/toggle-settings-modal! :-for "customize_css"})) (defn edit-export-css [] (row-with-button-action - {:left-label (t :settings-page/export-theme) - :button-label (t :settings-page/edit-export-css) + {:left-label (t :settings.general/export-theme) + :button-label (t :settings.general/edit-export-css) :href (rfe/href :file {:path (config/get-export-css-path)}) :on-click ui-handler/toggle-settings-modal! :-for "export_css"})) @@ -230,7 +232,7 @@ [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center [:label.block.text-sm.font-medium.leading-5.opacity-70 {:for "show_brackets"} - (t :settings-page/show-brackets)] + (t :settings.editor/show-brackets)] [:div [:div.rounded-md.sm:max-w-xs (ui/toggle show-brackets? @@ -245,7 +247,7 @@ [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center [:label.block.text-sm.font-medium.leading-5.opacity-70 {:for "wide_mode"} - (t :settings-page/wide-mode)] + (t :settings.editor/wide-mode)] [:div [:div.rounded-md.sm:max-w-xs (ui/toggle wide-mode? @@ -260,7 +262,7 @@ [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4 [:label.block.text-sm.font-medium.leading-5.opacity-70 {:for "font_family"} - (t :settings-page/editor-font)] + (t :settings.general/editor-font)] [:div.flex.flex-col.col-span-2 [:div.flex.gap-2 (for [t [:default :serif :mono] @@ -280,14 +282,14 @@ [:label.w-full.flex.items-center.cursor-pointer (shui/checkbox {:checked (boolean global) :on-checked-change #(state/set-editor-font! {:global %})}) - [:span.pl-1.text-sm.opacity-70 "Set as global font family"]]]]]) + [:span.pl-1.text-sm.opacity-70 (t :settings.general/editor-font-set-global)]]]]]) (rum/defcs switch-spell-check-row < rum/reactive [state t] (let [enabled? (state/sub [:electron/user-cfgs :spell-check])] [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center [:label.block.text-sm.font-medium.leading-5.opacity-70 - (t :settings-page/spell-checker)] + (t :settings.editor/spell-checker)] [:div [:div.rounded-md.sm:max-w-xs (ui/toggle @@ -295,7 +297,7 @@ (fn [] (state/set-state! [:electron/user-cfgs :spell-check] (not enabled?)) (p/then (ipc/ipc :userAppCfgs :spell-check (not enabled?)) - #(when (js/confirm (t :relaunch-confirm-to-work)) + #(when (js/confirm (t :ui/relaunch-confirm)) (js/logseq.api.relaunch)))) true)]]])) @@ -303,7 +305,7 @@ (let [enabled? (state/sub [:electron/user-cfgs :auto-update]) enabled? (if (nil? enabled?) true enabled?)] (toggle "usage-diagnostics" - (t :settings-page/auto-updater) + (t :settings.advanced/auto-updater) enabled? #((state/set-state! [:electron/user-cfgs :auto-update] (not enabled?)) (ipc/ipc :userAppCfgs :auto-update (not enabled?)))))) @@ -312,6 +314,7 @@ (let [on-change (fn [e] (let [lang-code (util/evalue e)] (state/set-preferred-language! lang-code) + (state/pub-event! [:init/commands]) (ui-handler/re-render-root!))) action [:select.form-select.is-small {:value preferred-language :on-change on-change} @@ -319,7 +322,7 @@ (let [lang-code (name (:value language)) lang-label (:label language)] [:option {:key lang-code :value lang-code} lang-label]))]] - (row-with-button-action {:left-label (t :language) + (row-with-button-action {:left-label (t :settings.general/language) :-for "preferred_language" :action action}))) @@ -329,15 +332,19 @@ dark? (= "dark" theme) system-theme? (state/sub :ui/system-theme?) switch-theme (if dark? "light" "dark") + switch-theme-label (case switch-theme + "light" (t :settings.general/theme-light) + "dark" (t :settings.general/theme-dark) + (t :settings.general/theme-system)) color-accent (state/sub :ui/radix-color) pick-theme [:ul.cp__theme-modes-options [:li {:on-click (partial state/use-theme-mode! "light") - :class (classnames [{:active (and (not system-theme?) (not dark?))}])} [:i.mode-light {:class (when color-accent "radix")}] [:strong (t :settings-page/theme-light)]] + :class (classnames [{:active (and (not system-theme?) (not dark?))}])} [:i.mode-light {:class (when color-accent "radix")}] [:strong (t :settings.general/theme-light)]] [:li {:on-click (partial state/use-theme-mode! "dark") - :class (classnames [{:active (and (not system-theme?) dark?)}])} [:i.mode-dark {:class (when color-accent "radix")}] [:strong (t :settings-page/theme-dark)]] + :class (classnames [{:active (and (not system-theme?) dark?)}])} [:i.mode-dark {:class (when color-accent "radix")}] [:strong (t :settings.general/theme-dark)]] [:li {:on-click (partial state/use-theme-mode! "system") - :class (classnames [{:active system-theme?}])} [:i.mode-system {:class (when color-accent "radix")}] [:strong (t :settings-page/theme-system)]]]] - (row-with-button-action {:left-label (t :right-side-bar/switch-theme (string/capitalize switch-theme)) + :class (classnames [{:active system-theme?}])} [:i.mode-system {:class (when color-accent "radix")}] [:strong (t :settings.general/theme-system)]]]] + (row-with-button-action {:left-label (t :theme/switch-to switch-theme-label) :-for "toggle_theme" :action pick-theme :desc (ui/render-keyboard-shortcut @@ -347,6 +354,25 @@ (rum/defc accent-color-row < rum/reactive [_in-modal?] (let [color-accent (state/sub :ui/radix-color) + color-label (fn [color] + (case color + :none [:p {:style {:max-width "300px"}} + (t :settings.general/accent-color-none-desc)] + :logseq (t :settings.general/accent-color-logseq) + :tomato (t :color/tomato) + :red (t :color/red) + :crimson (t :color/crimson) + :pink (t :color/pink) + :plum (t :color/plum) + :purple (t :color/purple) + :violet (t :color/violet) + :indigo (t :color/indigo) + :blue (t :color/blue) + :cyan (t :color/cyan) + :teal (t :color/teal) + :green (t :color/green) + :grass (t :color/grass) + :orange (t :color/orange))) pick-theme [:div.cp__accent-colors-list-wrap {:class (if _in-modal? "as-modal-picker" "")} (for [color (concat [:none :logseq] colors/color-list) @@ -370,15 +396,11 @@ :style {:background-color (if-not none? (str "var(--rx-" (name color) "-07)") "") :opacity (if (or none? active?) 1 0)}}]) - (case color - :none [:p {:style {:max-width "300px"}} - "Cancel accent color. This is currently in beta stage and mainly used for compatibility with custom themes."] - :logseq "Logseq classical color" - (str (name color) " color")))])]] + (color-label color))])]] [:div (row-with-button-action - {:left-label (t :settings-page/accent-color) + {:left-label (t :settings.general/accent-color) :-for "toggle_radix_theme" :desc (when-not _in-modal? [:span.pl-6 (ui/render-keyboard-shortcut @@ -387,7 +409,7 @@ :stretch (boolean _in-modal?) :action pick-theme}) [:div.text-sm.opacity-50.mt-1 - (t :settings-page/accent-color-alert)]])) + (t :settings.general/accent-color-alert)]])) (rum/defc appearance < rum/reactive [] @@ -402,7 +424,7 @@ [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center [:label.block.text-sm.font-medium.leading-5.opacity-70 {:for "custom_date_format"} - (t :settings-page/custom-date-format)] + (t :settings.editor/custom-date-format)] [:div.mt-1.sm:mt-0.sm:col-span-2 [:div.max-w-lg.rounded-md [:select.form-select.is-small @@ -414,14 +436,14 @@ (property-handler/set-block-property! :logseq.class/Journal :logseq.property.journal/title-format format) - (notification/show! "Please refresh the app for this change to take effect")) + (notification/show! (t :settings.general/refresh-required-feedback))) (shui/dialog-close-all!))))} (for [format (sort (date/journal-title-formatters))] [:option {:key format} format])]]]]) (defn outdenting-row [t logical-outdenting?] (toggle "preferred_outdenting" - [(t :settings-page/preferred-outdenting) + [(t :settings.editor/preferred-outdenting) (ui/tooltip [:span.flex.px-2 (svg/info)] (outdenting-hint) {:content-props {:side "right"}})] logical-outdenting? @@ -429,21 +451,21 @@ (defn showing-full-blocks [t show-full-blocks?] (toggle "show_full_blocks" - (t :settings-page/show-full-blocks) + (t :settings.editor/show-full-blocks) show-full-blocks? config-handler/toggle-show-full-blocks!)) (defn preferred-pasting-file [t preferred-pasting-file?] (toggle "preferred_pasting_file" - [(t :settings-page/preferred-pasting-file) + [(t :settings.editor/preferred-pasting-file) (ui/tooltip [:span.flex.px-2 (svg/info)] - [:span.block.w-64 (t :settings-page/preferred-pasting-file-hint)])] + [:span.block.w-64 (t :settings.editor/preferred-pasting-file-hint)])] preferred-pasting-file? config-handler/toggle-preferred-pasting-file!)) (defn auto-expand-row [t auto-expand-block-refs?] (toggle "auto_expand_block_refs" - [(t :settings-page/auto-expand-block-refs) + [(t :settings.editor/auto-expand-block-refs) (ui/tooltip [:span.flex.px-2 (svg/info)] (auto-expand-hint))] auto-expand-block-refs? @@ -451,14 +473,14 @@ (defn tooltip-row [t enable-tooltip?] (toggle "enable_tooltip" - (t :settings-page/enable-tooltip) + (t :settings.editor/enable-tooltip) enable-tooltip? (fn [] (config-handler/toggle-ui-enable-tooltip!)))) (defn shortcut-tooltip-row [t enable-shortcut-tooltip?] (toggle "enable_tooltip" - (t :settings-page/enable-shortcut-tooltip) + (t :settings.editor/enable-shortcut-tooltip) enable-shortcut-tooltip? (fn [] (state/toggle-shortcut-tooltip!)))) @@ -473,21 +495,21 @@ (p/do! (config-handler/set-config! :default-home new-home) (config-handler/set-config! :feature/enable-journals? true) - (notification/show! "Journals enabled" :success))) + (notification/show! (t :settings.features/journals-enable-success) :success))) ;; FIXME: home page should be db id instead of page name (ldb/get-page (db/get-db) value) (let [home (get (state/get-config) :default-home {}) new-home (assoc home :page value)] (config-handler/set-config! :default-home new-home) - (notification/show! "Home default page updated successfully!" :success)) + (notification/show! (t :settings.features/home-default-page-update-success) :success)) :else - (notification/show! (str "The page \"" value "\" doesn't exist yet. Please create that page first, and then try again.") :warning)))) + (notification/show! (t :settings.features/page-not-found value) :warning)))) (defn journal-row [enable-journals?] (toggle "enable_journals" - (t :settings-page/enable-journals) + (t :settings.features/enable-journals) enable-journals? (fn [] (let [value (not enable-journals?)] @@ -495,7 +517,7 @@ (defn enable-all-pages-public-row [t enable-all-pages-public?] (toggle "all pages public" - (t :settings-page/enable-all-pages-public) + (t :settings.editor/enable-all-pages-public) enable-all-pages-public? (fn [] (let [value (not enable-all-pages-public?)] @@ -503,31 +525,31 @@ (defn usage-diagnostics-row [t instrument-disabled?] (toggle "usage-diagnostics" - (t :settings-page/disable-sentry) + (t :settings.advanced/disable-sentry) (not instrument-disabled?) (fn [] (instrument/disable-instrument (not instrument-disabled?))) - [:span.text-sm.opacity-50 (t :settings-page/disable-sentry-desc)])) + [:span.text-sm.opacity-50 (t :settings.advanced/disable-sentry-desc)])) ;; (defn clear-cache-row [t] -;; (row-with-button-action {:left-label (t :settings-page/clear-cache) -;; :button-label (t :settings-page/clear) +;; (row-with-button-action {:left-label "Clear cache" +;; :button-label "Clear" ;; :on-click #(state/pub-event! [:graph/clear-cache!]) ;; :-for "clear_cache"})) (defn version-row [t version] - (row-with-button-action {:left-label (t :settings-page/current-version) + (row-with-button-action {:left-label (t :settings.general/current-version) :action (app-updater version) :-for "current-version"})) (defn developer-mode-row [t developer-mode?] (toggle "developer_mode" - (t :settings-page/developer-mode) + (t :settings.advanced/developer-mode) developer-mode? (fn [] (let [mode (not developer-mode?)] (state/set-developer-mode! mode))) - [:div.text-sm.opacity-50 (t :settings-page/developer-mode-desc)])) + [:div.text-sm.opacity-50 (t :settings.advanced/developer-mode-desc)])) (rum/defc plugin-enabled-switcher [t] @@ -584,12 +606,12 @@ (config/set-custom-sync-server-url! nil) (set-url! "") (-> (push-sync-config-to-worker!) - (p/then #(notification/show! (t :settings-page/sync-server-url-cleared) :success)) + (p/then #(notification/show! (t :settings.sync-server/clear-success) :success)) (p/catch #(notification/show! (str "Failed to update worker: " %) :error))))] [:div.cp__settings-sync-server-cnt - [:h1.mb-2.text-2xl.font-bold (t :settings-page/sync-server-url)] + [:h1.mb-2.text-2xl.font-bold (t :settings.sync-server/url)] [:div.p-2 - [:p.text-sm.opacity-70.mb-4 (t :settings-page/sync-server-url-desc)] + [:p.text-sm.opacity-70.mb-4 (t :settings.sync-server/url-desc)] [:p [:label [:strong "URL"] @@ -606,19 +628,19 @@ (if (string/blank? trimmed) (reset-url!) (if-not (config/valid-sync-server-url? trimmed) - (notification/show! "URL must start with https:// or http://" :error) + (notification/show! (t :settings.sync-server/url-invalid-error) :error) (do (config/set-custom-sync-server-url! trimmed) (-> (push-sync-config-to-worker!) - (p/then #(notification/show! (t :settings-page/sync-server-url-saved) :success)) + (p/then #(notification/show! (t :settings.sync-server/save-success) :success)) (p/catch #(notification/show! (str "Failed to update worker: " %) :error))))))))} - (t :save)) + (t :ui/save)) (when (seq url) (shui/button {:size :sm :variant :outline :on-click (fn [] (reset-url!))} - (t :settings-page/sync-server-url-reset)))]]])) + (t :settings.sync-server/reset)))]]])) (rum/defc sync-server-url-button [] @@ -627,14 +649,14 @@ [:span.pr-1 (if (seq current-url) current-url - (t :settings-page/sync-server-url-default))] + "Logseq Sync")] (ui/icon "edit")] :class "text-sm" :on-click #(state/pub-event! [:go/sync-server-settings])))) (defn sync-server-url-row [] (row-with-button-action - {:left-label (t :settings-page/sync-server-url) + {:left-label (t :settings.sync-server/url) :action (sync-server-url-button)})) (rum/defc user-proxy-settings @@ -642,8 +664,8 @@ (ui/button [:span.flex.items-center [:span.pr-1 (case type - "system" "System Default" - "direct" "Direct" + "system" (t :plugin.proxy/system) + "direct" (t :plugin.proxy/direct) (and protocol host port (str protocol "://" host ":" port)))] (ui/icon "edit")] :class "text-sm" @@ -651,22 +673,22 @@ (defn plugin-system-switcher-row [] (row-with-button-action - {:left-label (t :settings-page/plugin-system) + {:left-label (t :settings.features/plugin-system) :action (plugin-enabled-switcher t)})) (defn http-server-switcher-row [] (row-with-button-action - {:left-label "HTTP API server" + {:left-label (t :server/title) :action (http-server-enabled-switcher t)})) (defn flashcards-switcher-row [enable-flashcards?] (row-with-button-action - {:left-label (t :settings-page/enable-flashcards) + {:left-label (t :settings.features/enable-flashcards) :action (flashcards-enabled-switcher enable-flashcards?)})) (defn https-user-agent-row [agent-opts] (row-with-button-action - {:left-label (t :settings-page/network-proxy) + {:left-label (t :settings.advanced/network-proxy) :action (user-proxy-settings agent-opts)})) (rum/defcs auto-chmod-row < rum/reactive @@ -676,25 +698,25 @@ (state/sub [:electron/user-cfgs :feature/enable-automatic-chmod?]))] (toggle "automatic-chmod" - (t :settings-page/auto-chmod) + (t :settings.advanced/auto-chmod) enabled? #(do (state/set-state! [:electron/user-cfgs :feature/enable-automatic-chmod?] (not enabled?)) (ipc/ipc :userAppCfgs :feature/enable-automatic-chmod? (not enabled?))) - [:span.text-sm.opacity-50 (t :settings-page/auto-chmod-desc)]))) + [:span.text-sm.opacity-50 (t :settings.advanced/auto-chmod-desc)]))) (rum/defcs native-titlebar-row < rum/reactive [state t] (let [enabled? (state/sub [:electron/user-cfgs :window/native-titlebar?])] (toggle "native-titlebar" - (t :settings-page/native-titlebar) + (t :settings.general/native-titlebar) enabled? - #(when (js/confirm (t :relaunch-confirm-to-work)) + #(when (js/confirm (t :ui/relaunch-confirm)) (state/set-state! [:electron/user-cfgs :window/native-titlebar?] (not enabled?)) (ipc/ipc :userAppCfgs :window/native-titlebar? (not enabled?)) (js/logseq.api.relaunch)) - [:span.text-sm.opacity-50 (t :settings-page/native-titlebar-desc)]))) + [:span.text-sm.opacity-50 (t :settings.general/native-titlebar-desc)]))) (rum/defcs settings-general < rum/reactive [_state current-repo] @@ -758,7 +780,7 @@ ;; (ui/admonition ;; :warning - ;; [:p (t :settings-page/clear-cache-warning)]) + ;; [:p "Clearing the cache will discard open graphs. You will lose unsaved changes."]) ])) (rum/defc settings-account-usage-description [pro-account? graph-usage] @@ -769,7 +791,7 @@ (reduce + 0)) storage-usage-formatted (cond (zero? storage-usage) "0.0" - (< storage-usage 0.01) "Less than 0.01" + (< storage-usage 0.01) "< 0.01" :else (gstring/format "%.2f" storage-usage)) ;; TODO: check logic on this. What are the rules around storage limits? ;; do we, and should we be able to, give individual users more storage? @@ -779,15 +801,19 @@ (map #(get-in graph-usage [% :limit-gbs] default-storage-limit)) (reduce + 0)) storage-percent (/ storage-usage storage-limit 0.01) - storage-percent-formatted (gstring/format "%.1f" storage-percent)] + storage-percent-formatted (gstring/format "%.1f" storage-percent) + count-percent-node [:strong.text-white (str count-percent "%")] + storage-percent-node [:strong.text-white (str storage-percent-formatted "%")] + synced-graphs-summary (interpolate-rich-text-node + (t :settings.account/synced-graphs) + [count-usage count-limit count-percent-node]) + storage-usage-summary (interpolate-rich-text-node + (t :settings.account/storage-usage) + [storage-usage-formatted storage-limit storage-percent-node])] [:div.text-sm - (when pro-account? - [:<> - (gstring/format "%s of %s synced graphs " count-usage count-limit) - [:strong.text-white (gstring/format "(%s%%)" count-percent)] - ", "]) - (gstring/format "%sGB of %sGB total storage " storage-usage-formatted storage-limit) - [:strong.text-white (gstring/format "(%s%%)" storage-percent-formatted)]])) + (if pro-account? + (locale-join-rich-text-node [synced-graphs-summary storage-usage-summary]) + storage-usage-summary)])) ; storage-usage-formatted "GB of " storage-limit "GB total storage" ; [:strong.text-white " (" storage-percent-formatted "%)"]])) @@ -819,125 +845,131 @@ (cond logged-in? [:div.grid.grid-cols-3.gap-8.pt-2 - [:div "Current plan"] + [:div (t :account/current-plan)] [:div.col-span-2 [:div {:class "w-full bg-gray-500/10 rounded-lg p-4 flex flex-col gap-4"} [:div.flex.gap-4.items-center (if pro-account? - [:div.flex-1 "Pro"] - [:div.flex-1 "Free"]) + [:div.flex-1 (t :account/plan-pro)] + [:div.flex-1 (t :account/plan-free)]) (cond has-subscribed? - (ui/button "Manage plan" {:class "p-1 h-8 justify-center" - :disabled true - :icon "upload"}) + (ui/button (t :account/manage-plan) {:class "p-1 h-8 justify-center" + :disabled true + :icon "upload"}) ; :on-click user-handler/upgrade}) (not pro-account?) - (ui/button "Upgrade plan" {:class "p-1 h-8 justify-center" - :icon "upload" - :on-click user-handler/upgrade}) + (ui/button (t :account/upgrade-plan) {:class "p-1 h-8 justify-center" + :icon "upload" + :on-click user-handler/upgrade}) :else nil)] (settings-account-usage-graphs pro-account? graph-usage) (settings-account-usage-description pro-account? graph-usage)]] (when has-subscribed? [:<> - [:div "Billing"] + [:div (t :account/billing)] [:div.col-span-2.flex.flex-col.gap-4 (cond ;; If there is no expiration date, print the renewal date (and renewal-date (nil? expiration-date)) [:div - [:strong.font-semibold "Next billing date: " - (date/get-locale-string renewal-date)]] + [:strong.font-semibold + (t :account/billing-next-date-label + (locale-format-date renewal-date))]] ;; If the expiration date is in the future, word it as such (< (js/Date.) expiration-date) [:div - [:strong.font-semibold "Pro plan expires on: " - (date/get-locale-string expiration-date)]] + [:strong.font-semibold + (t :account/billing-expires-on-label + (locale-format-date expiration-date))]] ;; Otherwise, ind :else [:div - [:strong.font-semibold "Pro plan expired on: " - (date/get-locale-string expiration-date)]]) + [:strong.font-semibold + (t :account/billing-expired-on-label + (locale-format-date expiration-date))]]) - [:div (ui/button "Open invoices" {:class "w-full h-8 p-1 justify-center" - :disabled true - :background "gray" - :icon "receipt"})]]]) - [:div "Profile"] + [:div (ui/button (t :account/open-invoices) {:class "w-full h-8 p-1 justify-center" + :disabled true + :background "gray" + :icon "receipt"})]]]) + [:div (t :account/profile)] [:div.col-span-2.grid.grid-cols-2.gap-4 [:div.flex.flex-col.gap-2.box-border {:class "basis-1/2"} - [:label.text-sm.font-semibold "First name"] + [:label.text-sm.font-semibold (t :account/first-name)] [:input.rounded.border.px-2.py-1.box-border {:class "border-blue-500 bg-black/25 w-full"}]] [:div.flex.flex-col.gap-2 {:class "basis-1/2"} - [:label.text-sm.font-semibold "Last name"] + [:label.text-sm.font-semibold (t :account/last-name)] [:input.rounded.border.px-2.py-1.box-border {:class "border-blue-500 bg-black/25 w-full"}]] [:div.flex-1.flex.flex-col.gap-2.col-span-2 - [:label.text-sm.font-semibold "Username"] + [:label.text-sm.font-semibold (t :account/username)] [:input.rounded.border.px-2.py-1.box-border {:class "border-blue-500 bg-black/25" :value (user-handler/email)}]]] - [:div "Authentication"] + [:div (t :account/authentication)] [:div.col-span-2 [:div.grid.grid-cols-2.gap-4 - [:div (ui/button (t :logout) {:class "p-1 h-8 justify-center w-full" - :background "gray" - :icon "logout" - :on-click user-handler/logout})] - [:div (ui/button "Reset password" {:class "p-1 h-8 justify-center w-full" - :disabled true - :background "gray" - :icon "key" - :on-click user-handler/logout})] - [:div.col-span-2 (ui/button "Delete Account" {:class "p-1 h-8 justify-center w-full" + [:div (ui/button (t :ui/logout) {:class "p-1 h-8 justify-center w-full" + :background "gray" + :icon "logout" + :on-click user-handler/logout})] + [:div (ui/button (t :account/reset-password) {:class "p-1 h-8 justify-center w-full" :disabled true - :background "red"})]]]] + :background "gray" + :icon "key" + :on-click user-handler/logout})] + [:div.col-span-2 (ui/button (t :account/delete-account) {:class "p-1 h-8 justify-center w-full" + :disabled true + :background "red"})]]]] (not logged-in?) [:div.grid.grid-cols-3.gap-8.pt-2 - [:div "Authentication"] + [:div (t :account/authentication)] [:div.col-span-2.flex.flex-wrap.gap-4 - [:div.w-full.text-white "With a Logseq account, you can access cloud-based services like Logseq Sync and alpha/beta features."] - [:div.flex-1 (ui/button "Sign up" {:class "h-8 w-full text-center justify-center" - :on-click (fn [] - (state/close-settings!) - (state/pub-event! [:user/login]))})] - [:div.flex-1 (ui/button (t :login) {:icon "login" - :class "h-8 w-full text-center justify-center" - :background "gray" - :on-click (fn [] - (state/close-settings!) - (state/pub-event! [:user/login]))})]] + [:div.w-full.text-white (t :account/benefits-desc)] + [:div.flex-1 + (ui/button (t :account/sign-up) {:class "h-8 w-full text-center justify-center" + :on-click (fn [] + (state/close-settings!) + (state/pub-event! [:user/login]))})] + [:div.flex-1 + (ui/button (t :ui/login) {:icon "login" + :class "h-8 w-full text-center justify-center" + :background "gray" + :on-click (fn [] + (state/close-settings!) + (state/pub-event! [:user/login]))})]] [:div.col-span-3.flex.flex-col.gap-4 {:class "bg-black/20 p-4 rounded-lg"} [:div.flex.w-full.items-center [:div {:class "w-1/2 text-lg"} - "Discover the power of " - [:strong {:class "text-white/80"} "Logseq Sync"]] + (interpolate-rich-text-node + (t :account/discover-sync-desc) + [[:strong {:class "text-white/80"} "Logseq Sync"]])] [:div {:class "w-1/2 bg-gradient-to-r from-white/10 to-transparent p-3 rounded-lg flex items-center gap-2 px-5 ml-5"} [:div.w-3.h-3.rounded-full.bg-green-500] - "Synced"]] + (t :account/synced-status)]] [:div.flex.w-full.gap-4 [:div {:class "w-1/2 bg-black/50 rounded-lg p-4 pt-10 relative flex flex-col gap-4"} - [:div.absolute.top-0.left-4.bg-gray-700.uppercase.px-2.py-1.rounded-b-lg.font-bold.text-xs "Free"] + [:div.absolute.top-0.left-4.bg-gray-700.uppercase.px-2.py-1.rounded-b-lg.font-bold.text-xs (t :account/plan-free)] [:div [:strong.text-white.text-xl.font-normal "$0"]] - [:div.text-white.font-bold {:class "h-[2.5rem] "} "Get started with basic syncing"] + [:div.text-white.font-bold {:class "h-[2.5rem] "} (t :account/plan-free-summary)] [:ul.text-xs.list-none.m-0.flex.flex-col.gap-0.5 - [:li "Unlimited unsynced graphs"] - [:li "1 synced graph (up to 50MB, notes only)"] - [:li "No asset syncing"] - [:li "Access to core Logseq features"]]] + [:li (t :account/unlimited-unsynced-graphs)] + [:li (t :account/free-plan-sync-limit)] + [:li (t :account/no-asset-syncing)] + [:li (t :account/core-features)]]] [:div {:class "w-1/2 bg-black/50 rounded-lg p-4 pt-10 relative flex flex-col gap-4"} - [:div.absolute.top-0.left-4.bg-blue-700.uppercase.px-2.py-1.rounded-b-lg.font-bold.text-xs "Pro"] + [:div.absolute.top-0.left-4.bg-blue-700.uppercase.px-2.py-1.rounded-b-lg.font-bold.text-xs (t :account/plan-pro)] [:div [:strong.text-white.text-xl.font-normal "$10"] - [:span.text-xs.font-base {:class "ml-0.5"} "/ month"]] - [:div.text-white.font-bold {:class "h-[2.5rem]"} "Unlock advanced syncing and more"] + [:span.text-xs.font-base {:class "ml-0.5"} " / " (t :account/month)]] + [:div.text-white.font-bold {:class "h-[2.5rem]"} (t :account/plan-pro-summary)] [:ul.text-xs.list-none.m-0.flex.flex-col.gap-0.5 - [:li "Unlimited unsynced graphs"] - [:li "10 synced graphs (up to 5GB each)"] - [:li "Sync assets up to 100MB per file"] - [:li "Early access to alpha/beta features"] - [:li "Upcoming cloud-based features, including Logseq Publish"]]]]]])]])) + [:li (t :account/unlimited-unsynced-graphs)] + [:li (t :account/pro-plan-sync-limit)] + [:li (t :account/sync-assets-limit)] + [:li (t :account/early-access-alpha-beta)] + [:li (t :account/upcoming-cloud-features)]]]]]])]])) (rum/defc settings-features < rum/reactive [] @@ -951,7 +983,7 @@ [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center [:label.block.text-sm.font-medium.leading-5.opacity-70 {:for "default page"} - (t :settings-page/home-default-page)] + (t :settings.features/home-default-page)] [:div.mt-1.sm:mt-0.sm:col-span-2 [:div.max-w-lg.rounded-md.sm:max-w-xs [:input#home-default-page.form-input.is-small.transition.duration-150.ease-in-out @@ -971,16 +1003,16 @@ (if logged-in? [:div (user-handler/email) - [:p (ui/button (t :logout) {:class "p-1" - :icon "logout" - :on-click user-handler/logout})]] + [:p (ui/button (t :ui/logout) {:class "p-1" + :icon "logout" + :on-click user-handler/logout})]] [:div - (ui/button (t :login) {:class "p-1" - :icon "login" - :on-click (fn [] - (state/close-settings!) - (state/pub-event! [:user/login]))}) - [:p.text-sm.opacity-50 (t :settings-page/login-prompt)]])])])) + (ui/button (t :ui/login) {:class "p-1" + :icon "login" + :on-click (fn [] + (state/close-settings!) + (state/pub-event! [:user/login]))}) + [:p.text-sm.opacity-50 (t :settings.features/login-prompt)]])])])) (def DEFAULT-ACTIVE-TAB-STATE (if config/ENABLE-SETTINGS-ACCOUNT-TAB [:account :account] [:general :general])) @@ -1023,7 +1055,7 @@ {:on-key-press (fn [e] (when (= "Enter" (.-key e)) (invite-user!)))} - [:h2.opacity-50.font-medium "Members:"] + [:h2.opacity-50.font-medium (t :collaboration/members)] [:div.users.flex.flex-col.gap-1 (if loading? (for [i (range 2)] @@ -1062,19 +1094,19 @@ (p/then (fn [] (rtc-handler/ (p/do! - (set-force-reset-status! "Force resetting password ...") + (set-force-reset-status! (t :encryption/force-resetting-password)) (state/ (p/do! @@ -1185,31 +1217,23 @@ (p/let [r (state/ (p/do! - (set-reset-password-status! "Updating password ...") + (set-reset-password-status! (t :encryption/updating-password)) (state/ i { - border-color: var(--ls-link-text-color); - border-width: 2px; + box-shadow: inset 0 0 0 2px var(--ls-link-text-color); } } > i { - @apply block w-[70px] h-[47px] rounded overflow-hidden border-0 border-solid border-transparent bg-gray-04; + @apply block w-[70px] rounded overflow-hidden bg-gray-04; + aspect-ratio: 160 / 92; - background: url("../img/theme-modes.png") no-repeat; - background-size: 355%; + background: url('../img/light-theme.png') no-repeat center / cover; &.mode-dark { - background-position-x: -97px; + background: url('../img/dark-theme.png') no-repeat center / cover; } &.mode-system { - background-position-x: -194px; + background: url('../img/system-theme.png') no-repeat center / cover; } &.mode-dark.radix { diff --git a/src/main/frontend/components/shell.cljs b/src/main/frontend/components/shell.cljs index 803842be9f..6d6b49f337 100644 --- a/src/main/frontend/components/shell.cljs +++ b/src/main/frontend/components/shell.cljs @@ -1,5 +1,6 @@ (ns frontend.components.shell (:require [rum.core :as rum] + [frontend.context.i18n :refer [t]] [frontend.ui :as ui] [frontend.util :as util] [frontend.handler.shell :as shell-handler] @@ -31,7 +32,7 @@ [:div [:div [:h1.title - "Input command"] + (t :shell/input-command-title)] [:div.mt-4.mb-4.relative.rounded-md.shadow-sm [:input#run-command.form-input.font-mono.block.w-full.sm:text-sm.sm:leading-5 {:autoFocus true @@ -40,7 +41,7 @@ :on-change (fn [e] (reset! *command (util/evalue e)))}]]]] [:div.flex.flex-row.items-center - (ui/button "Run" :on-click run-command) + (ui/button (t :ui/run) :on-click run-command) [:div.ml-4 (when loading? (ui/loading ""))]]]])) diff --git a/src/main/frontend/components/shortcut.cljs b/src/main/frontend/components/shortcut.cljs index 53ef5102b6..21aad32cee 100644 --- a/src/main/frontend/components/shortcut.cljs +++ b/src/main/frontend/components/shortcut.cljs @@ -1,7 +1,7 @@ (ns frontend.components.shortcut (:require [cljs-bean.core :as bean] [clojure.string :as string] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :as i18n :refer [t]] [frontend.modules.shortcut.config :as shortcut-config] [frontend.modules.shortcut.core :as shortcut] [frontend.modules.shortcut.data-helper :as dh] @@ -164,7 +164,7 @@ {:on-click (fn [^js e] (.stopPropagation e) (clear!)) - :aria-label "Remove filter"} + :aria-label (t :keymap/remove-filter)} (ui/icon "x" {:size 12})]]) (when-not has-keystroke? [:span.shortcut-input-placeholder (t :keymap/press-keys-to-filter)])] @@ -298,7 +298,7 @@ {:on-click (fn [] (set-q! "") (js/setTimeout #(some-> (rum/deref *search-ref) (.focus)) 50)) - :aria-label "Clear search"} + :aria-label (t :keymap/clear-search)} (ui/icon "x" {:size 12})])]) (defn- open-keystroke-filter! @@ -340,7 +340,7 @@ {:on-click (fn [^js e] (.stopPropagation e) (set-keystroke! "")) - :aria-label "Clear keystroke filter"} + :aria-label (t :keymap/clear-keystroke-filter)} (ui/icon "x" {:size 12})]]))) (defn- pane-filter-pills @@ -364,12 +364,12 @@ [:button.flex.items-center.icon-link {:tab-index -1 :on-click toggle-categories-fn - :aria-label "Toggle categories pane"} + :aria-label (t :keymap/toggle-categories-pane)} (ui/icon "fold")] [:button.flex.items-center.icon-link {:tab-index -1 :on-click refresh-shortcuts-list! - :aria-label "Refresh all"} + :aria-label (t :keymap/refresh-all)} (ui/icon "refresh")]])) (rum/defc pane-controls @@ -508,6 +508,11 @@ ^{:key (str "stroke-" i)} (shui/shortcut stroke {:style :compact}))]))) +(defn- feedback-inline-label + [template replacements] + (into [:span] + (i18n/interpolate-rich-text template replacements))) + (defn- prefix-conflict-label "Render content for a prefix-conflict amber banner with inline keycaps. n=1: keycap + quoted name inline. n=2-3: vertical list with keycap + name. @@ -517,7 +522,7 @@ (cond (= n 1) (let [{:keys [binding name]} (first details)] - [:<> + [:span.shortcut-feedback-inline [:span (t :keymap/deactivates-chord)] (chord-keycap binding) [:span.shortcut-feedback-name (str \u201c name \u201d)]]) @@ -934,10 +939,10 @@ (for [[idx x] (map-indexed vector current-binding) :when (string? x)] [:div.shortcut-input-binding {:key x} - (shui/shortcut x {:chord-separator (t :keymap/chord-separator)}) + (shui/shortcut x {:chord-separator "->"}) (when (#{:idle :accepted :esc-hint :removed :reset} render-state) [:button.shortcut-binding-remove - {:aria-label "Remove binding" + {:aria-label (t :keymap/remove-binding) :on-click (fn [^js e] (.stopPropagation e) (let [new-binding (vec (concat (subvec current-binding 0 idx) @@ -952,10 +957,10 @@ (when (and (#{:recording :conflict-cross :conflict-same} render-state) (not (string/blank? keystroke))) [:div.shortcut-input-binding.shortcut-input-binding--pending - (shui/shortcut keystroke) + (shui/shortcut keystroke {:chord-separator "->"}) (when (#{:conflict-cross :conflict-same} render-state) [:button.shortcut-binding-remove - {:aria-label "Remove binding" + {:aria-label (t :keymap/remove-binding) :on-click (fn [^js e] (.stopPropagation e) (cancel-fn!))} @@ -980,8 +985,9 @@ (case rec-state :conflict-cross [:div.shortcut-feedback.shortcut-feedback--error - [:span (t :keymap/used-by) - [:span.shortcut-feedback-name (conflict-action-names (:exact key-conflicts))]] + (feedback-inline-label (t :keymap/used-by-action) + [[:span.shortcut-feedback-name + (conflict-action-names (:exact key-conflicts))]]) (ui/tooltip (shui/button {:variant :destructive :size :xs @@ -997,11 +1003,14 @@ (cond (:cross-context? accepted-info) [:div.shortcut-feedback.shortcut-feedback--warning - [:span (t :keymap/also-used-for) - [:span.shortcut-feedback-name - (:cross-action-name accepted-info)] - (when-let [ctx (:cross-context-label accepted-info)] - (str (t :keymap/in-context) ctx))]] + (if-let [ctx (:cross-context-label accepted-info)] + (feedback-inline-label (t :keymap/also-used-for-action-in-context) + [[:span.shortcut-feedback-name + (:cross-action-name accepted-info)] + [:span ctx]]) + (feedback-inline-label (t :keymap/also-used-for-action) + [[:span.shortcut-feedback-name + (:cross-action-name accepted-info)]]))] (:prefix-conflicts? accepted-info) [:div.shortcut-feedback.shortcut-feedback--warning @@ -1009,20 +1018,23 @@ undo-link] (:from accepted-info) - (if-let [prefix-details' (:prefix-details accepted-info)] + (let [reassigned-label + (into [:span] + (i18n/interpolate-rich-text + (t :keymap/reassigned-from) + [[:span.shortcut-feedback-name (:from accepted-info)]]))] + (if-let [prefix-details' (:prefix-details accepted-info)] ;; Post-reassign with prefix info (mixed case) [:<> [:div.shortcut-feedback.shortcut-feedback--success - [:span (t :keymap/reassigned-from) - [:span.shortcut-feedback-name (:from accepted-info)]] + reassigned-label undo-link] [:div.shortcut-feedback.shortcut-feedback--warning (prefix-conflict-label prefix-details')]] ;; Pure reassign, no prefix [:div.shortcut-feedback.shortcut-feedback--success - [:span (t :keymap/reassigned-from) - [:span.shortcut-feedback-name (:from accepted-info)]] - undo-link]) + reassigned-label + undo-link])) :else [:div.shortcut-feedback.shortcut-feedback--success @@ -1418,7 +1430,7 @@ (for [b user-binding :when (string? b)] [:span {:key b :style {:display "contents"}} - (shui/shortcut b {:chord-separator (t :keymap/chord-separator)})]))] + (shui/shortcut b {:chord-separator "->"})]))] :else (for [b binding @@ -1426,4 +1438,4 @@ [:span {:key b :style {:display "contents"}} (shui/shortcut (dh/binding-for-display id b) {:raw-binding [b] - :chord-separator (t :keymap/chord-separator)})]))]])))))])])]]))) + :chord-separator "->"})]))]])))))])])]]))) diff --git a/src/main/frontend/components/shortcut.css b/src/main/frontend/components/shortcut.css index d01ce82709..07fcce59db 100644 --- a/src/main/frontend/components/shortcut.css +++ b/src/main/frontend/components/shortcut.css @@ -436,6 +436,13 @@ button.shortcut-feedback-action { } } +.shortcut-feedback-inline { + display: inline-flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; +} + .shortcut-feedback-action { @apply cursor-pointer font-medium whitespace-nowrap; color: var(--rx-red-11, #dc2626); @@ -503,7 +510,8 @@ button.shortcut-feedback-action { } .shortcut-toolbar-hint { - @apply ml-3; + @apply ml-3 inline-flex items-center; + gap: 6px; color: var(--lx-gray-11, var(--rx-gray-11)); } diff --git a/src/main/frontend/components/shortcut_help.cljs b/src/main/frontend/components/shortcut_help.cljs index e83b64bbd6..3b2bd02a3b 100644 --- a/src/main/frontend/components/shortcut_help.cljs +++ b/src/main/frontend/components/shortcut_help.cljs @@ -13,8 +13,8 @@ [:table.classic-table.w-full [:thead [:tr - [:th.text-left [:b (t :help/shortcuts-triggers)]] - [:th.text-right [:b (t :help/shortcut)]]]] + [:th.text-left [:b (t :help.shortcuts/triggers)]] + [:th.text-right [:b (t :help.shortcuts/shortcut-column)]]]] [:tbody [:tr [:td.text-left (t :help/slash-autocomplete)] @@ -31,42 +31,42 @@ [:td.text-right [:code block-ref/left-and-right-parens]]] [:tr [:td.text-left (t :help/open-link-in-sidebar)] - [:td.text-right [:code "Shift click reference"]]] + [:td.text-right [:code (t :help/open-link-in-sidebar-action)]]] [:tr [:td.text-left (t :help/context-menu)] - [:td.text-right [:code "Right click bullet"]]]]]) + [:td.text-right [:code (t :help/context-menu-action)]]]]]) (defn markdown-syntax [] (let [list [:bold :italics :del :mark :latex :code :link :pre :img] title (t :help/markdown-syntax) learn-more "https://www.markdownguide.org/basic-syntax" - raw {:bold (str "**" (t :bold) "**") - :italics (str "_" (t :italics) "_") + raw {:bold (str "**" (t :format/bold) "**") + :italics (str "_" (t :format/italics) "_") :link "[Link](https://www.example.com)" - :del (str "~~" (t :strikethrough) "~~") - :mark (str "^^" (t :highlight) "^^") + :del (str "~~" (t :format/strikethrough) "~~") + :mark (str "^^" (t :format/highlight) "^^") :latex "$$E = mc^2$$" - :code (str "`" (t :code) "`") + :code (str "`" (t :format/code) "`") :pre "```clojure\n (println \"Hello world!\")\n```" :img "![image](https://asset.logseq.com/static/img/logo.png)"} - rendered {:italics [:i (t :italics)] - :bold [:b (t :bold)] - :link [:a {:href "https://www.example.com"} "Link"] - :del [:del (t :strikethrough)] - :mark [:mark (t :highlight)] + rendered {:italics [:i (t :format/italics)] + :bold [:b (t :format/bold)] + :link [:a {:href "https://www.example.com"} (t :ui/link)] + :del [:del (t :format/strikethrough)] + :mark [:mark (t :format/highlight)] :latex (latex/latex "E = mc^2" true false) - :code [:code (t :code)] + :code [:code (t :format/code)] :pre (highlight/highlight "help-highlight" {:data-lang "clojure"} "(println \"Hello world!\")") :img [:img {:style {:float "right" :width 32 :height 32} :src "https://asset.logseq.com/static/img/logo.png" - :alt "image"}]}] + :alt (t :ui/image)}]}] [:table.classic-table.w-full [:thead [:tr [:th.text-left [:b title]] - [:th.text-right [:a {:href learn-more} "Learn more →"]]]] + [:th.text-right [:a {:href learn-more} (str (t :help/learn-more) " →")]]]] [:tbody (map (fn [name] [:tr @@ -79,7 +79,7 @@ :or {show-title? true}}] [:div.cp__shortcut-page.px-2 {:class "-mt-2"} - (when show-title? [:h1.title (t :help/shortcut-page-title)]) + (when show-title? [:h1.title (t :help.shortcuts/title)]) (trigger-table) (markdown-syntax) (shortcut/shortcut-keymap-x)]) diff --git a/src/main/frontend/components/theme.cljs b/src/main/frontend/components/theme.cljs index 89d33e2335..58e3fa4bcb 100644 --- a/src/main/frontend/components/theme.cljs +++ b/src/main/frontend/components/theme.cljs @@ -1,9 +1,8 @@ (ns frontend.components.theme - (:require [clojure.string :as string] - [electron.ipc :as ipc] + (:require [electron.ipc :as ipc] [frontend.components.settings :as settings] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :as i18n :refer [t]] [frontend.extensions.pdf.core :as pdf] [frontend.handler.plugin :as plugin-handler] [frontend.handler.plugin-config :as plugin-config-handler] @@ -68,9 +67,10 @@ [editor-font]) (hooks/use-effect! - #(let [doc js/document.documentElement] - (.setAttribute doc "lang" preferred-language) - (some-> preferred-language (string/lower-case) (js/LSI18N.setLocale))) + #(let [doc js/document.documentElement + preferred-language' (i18n/locale-tag preferred-language)] + (.setAttribute doc "lang" preferred-language') + (js/LSI18N.setLocale preferred-language')) [preferred-language]) (hooks/use-effect! @@ -102,7 +102,7 @@ (hooks/use-effect! #(let [db-restored? (false? db-restoring?)] (if db-restoring? - (util/set-title! (t :loading)) + (util/set-title! (t :ui/loading)) (when db-restored? (route-handler/update-page-title! route)))) [db-restoring? route]) @@ -132,7 +132,7 @@ (if settings-open? (shui/dialog-open! (fn [] [:div.settings-modal (settings/settings settings-open?)]) - {:label "app-settings" + {:label :app-settings :align :top :content-props {:onOpenAutoFocus #(.preventDefault %)} :id :app-settings}) diff --git a/src/main/frontend/components/user/login.cljs b/src/main/frontend/components/user/login.cljs index 6e5a4ca02b..c03e994026 100644 --- a/src/main/frontend/components/user/login.cljs +++ b/src/main/frontend/components/user/login.cljs @@ -85,7 +85,7 @@ [] (shui/dialog-open! (fn [_close] (modal-inner)) - {:label "user-login" + {:label :user-login :content-props {:onPointerDownOutside #(if (by-id "#user-auth-login") (let [inputs (sel ".ls-authenticator-content form input:not([type=checkbox])") inputs (some->> inputs (map (fn [^js e] (.-value e))) (remove string/blank?))] diff --git a/src/main/frontend/components/views.cljs b/src/main/frontend/components/views.cljs index edc459552c..ef8d8fd591 100644 --- a/src/main/frontend/components/views.cljs +++ b/src/main/frontend/components/views.cljs @@ -17,6 +17,7 @@ [frontend.components.selection :as selection] [frontend.config :as config] [frontend.context.i18n :refer [t]] + [frontend.dicts :as dicts] [frontend.date :as date] [frontend.db :as db] [frontend.db-mixins :as db-mixins] @@ -82,7 +83,7 @@ (when value (db-async/> (concat [{:id :select - :name "Select" + :name (t :view.table/select-column) :header (fn [table _column] (header-checkbox table)) :cell (fn [table row column] (row-checkbox table row column)) @@ -378,14 +383,14 @@ :resizable? false} (when with-id? {:id :id - :name "ID" + :name "#" :header (fn [_table _column] (header-index)) :cell (fn [table row _column] (inc (.indexOf (:rows table) (:db/id row)))) :resizable? false}) (when with-object-name? {:id :block/title - :name "Name" + :name (t :view.table/name-column) :type :string :header header-cp :cell (fn [_table row _column style] @@ -410,7 +415,7 @@ (fn [row] (db-view/get-property-value-for-search row property)))] {:id ident :name (or (:name property) - (:block/title property)) + (db-property/built-in-display-title property t)) :header (or (:header property) header-cp) :cell (or (:cell property) @@ -460,10 +465,11 @@ columns)) (defonce groups-sort-by-options - [["Journal date" :block/journal-day] - ["Page name" :block/title] - ["Page updated date" :block/updated-at] - ["Page created date" :block/created-at]]) + [[:view.table/group-journal-date :block/journal-day] + [:view.table/group-page-name :block/title] + [:view.table/group-page-updated-date :block/updated-at] + [:view.table/group-page-created-date :block/created-at]]) + (defonce groups-sort-by-name->property-identity (into {} groups-sort-by-options)) (defonce groups-sort-by-property-identity->name @@ -474,37 +480,39 @@ (let [property-ident (or (:db/ident sort-by-value) :block/journal-day)] (shui/dropdown-menu-sub (shui/dropdown-menu-sub-trigger - "Sort groups by") + (t :view.table/sort-groups-by)) (shui/dropdown-menu-sub-content - (for [[option _] groups-sort-by-options] + (for [[option-key _] groups-sort-by-options] (shui/dropdown-menu-checkbox-item - {:key option - :checked (= option (groups-sort-by-property-identity->name property-ident)) + {:key (name option-key) + :checked (= option-key (groups-sort-by-property-identity->name property-ident)) :onCheckedChange (fn [checked?] - (let [property-id (:db/id (db/entity (groups-sort-by-name->property-identity option)))] + (let [property-id (:db/id (db/entity (groups-sort-by-name->property-identity option-key)))] (if checked? (db-property-handler/set-block-property! (:db/id view-entity) :logseq.property.view/sort-groups-by-property property-id) (db-property-handler/remove-block-property! (:db/id view-entity) :logseq.property.view/sort-groups-by-property)))) :onSelect (fn [e] (.preventDefault e))} - option)))))) + (t option-key))))))) (rum/defc groups-sort-order [view-entity desc?] - (shui/dropdown-menu-sub - (shui/dropdown-menu-sub-trigger - "Sort groups order") - (shui/dropdown-menu-sub-content - (for [option ["Descending" "Ascending"]] - (shui/dropdown-menu-checkbox-item - {:key option - :checked (= option (if desc? "Descending" "Ascending")) - :onCheckedChange (fn [checked?] - (db-property-handler/set-block-property! (:db/id view-entity) :logseq.property.view/sort-groups-desc? - (or (and checked? (= "Descending" option)) - (and (not checked?) (not= "Descending" option))))) - :onSelect (fn [e] (.preventDefault e))} - option))))) + (let [descending-label (t :view.table/descending) + ascending-label (t :view.table/ascending)] + (shui/dropdown-menu-sub + (shui/dropdown-menu-sub-trigger + (t :view.table/sort-groups-order)) + (shui/dropdown-menu-sub-content + (for [option [descending-label ascending-label]] + (shui/dropdown-menu-checkbox-item + {:key option + :checked (= option (if desc? descending-label ascending-label)) + :onCheckedChange (fn [checked?] + (db-property-handler/set-block-property! (:db/id view-entity) :logseq.property.view/sort-groups-desc? + (or (and checked? (= descending-label option)) + (and (not checked?) (not= descending-label option))))) + :onSelect (fn [e] (.preventDefault e))} + option)))))) (rum/defc more-actions [view-entity columns {:keys [column-visible? rows column-toggle-visibility]} {:keys [group-by-property-ident]}] @@ -515,7 +523,7 @@ (:logseq.property.view/feature-type view-entity)) (:logseq.property/query view-entity)) [{:id :block/page - :name "Page"}]) + :name (t :view.table/page)}]) (filter (fn [column] (when (:id column) (when-let [p (db/entity (:id column))] @@ -537,7 +545,7 @@ (when table? (shui/dropdown-menu-sub (shui/dropdown-menu-sub-trigger - "Columns visibility") + (t :view.table/columns-visibility)) (shui/dropdown-menu-sub-content (for [column (remove #(or (false? (:column-list? %)) (:disable-hide? %)) columns)] @@ -551,7 +559,7 @@ (when (seq group-by-columns) (shui/dropdown-menu-sub (shui/dropdown-menu-sub-trigger - "Group by") + (t :view.table/group-by)) (shui/dropdown-menu-sub-content (for [column group-by-columns] (shui/dropdown-menu-checkbox-item @@ -572,7 +580,7 @@ (shui/dropdown-menu-item {:key "export-edn" :on-click #(db-export-handler/export-view-nodes-data rows {:group-by? (some? group-by-property-ident)})} - "Export EDN")))))) + (t :view/export-edn))))))) (defn- get-column-size [column sized-columns] @@ -603,13 +611,13 @@ {:variant "text" :class "h-8 !pl-4 !px-2 !py-0 hover:text-foreground w-full justify-start"} (ui/icon "plus") - "New property")]) + (t :view/new-property))]) (rum/defc action-bar < rum/static [table selected-rows {:keys [on-delete-rows]}] (shui/table-actions {} - [:div (str (count selected-rows) " selected")] + [:div (t :view.table/selected-count (count selected-rows))] (selection/action-bar {:on-cut #(on-delete-rows table selected-rows) :selected-blocks selected-rows @@ -1019,7 +1027,7 @@ (if show-input? [:div.flex.flex-row.items-center (shui/input - {:placeholder "Type to search" + {:placeholder (t :view.filter/type-to-search) :auto-focus true :value input :on-change (fn [e] @@ -1052,21 +1060,22 @@ (= :datetime (:logseq.property/type property)) (contains? #{:block/created-at :block/updated-at} (:db/ident property)))) -(def timestamp-options +(defn timestamp-options + [] [{:value "1 day ago" - :label "1 day ago"} + :label (t :view.filter/relative-1-day-ago)} {:value "3 days ago" - :label "3 days ago"} + :label (t :view.filter/relative-3-days-ago)} {:value "1 week ago" - :label "1 week ago"} + :label (t :view.filter/relative-1-week-ago)} {:value "1 month ago" - :label "1 month ago"} + :label (t :view.filter/relative-1-month-ago)} {:value "3 months ago" - :label "3 months ago"} + :label (t :view.filter/relative-3-months-ago)} {:value "1 year ago" - :label "1 year ago"} - {:value "Custom date" - :label "Custom date"}]) + :label (t :view.filter/relative-1-year-ago)} + {:value :custom-date + :label (t :view.filter/custom-date)}]) (rum/defc ^:large-vars/cleanup-todo filter-property < rum/static [view-entity columns {:keys [data-fns] :as table} opts] @@ -1081,7 +1090,7 @@ items (map (fn [column] {:label (:name column) :value column}) columns) - option {:input-default-placeholder "Filter" + option {:input-default-placeholder (t :view.filter/filter) :input-opts {:class "!px-2 !py-1"} :items items :extract-fn :label @@ -1117,15 +1126,15 @@ (let [option (cond timestamp? (merge option - {:items timestamp-options - :input-default-placeholder (if property (:block/title property) "Select") + {:items (timestamp-options) + :input-default-placeholder (if property (db-property/built-in-display-title property t) (t :select/default-prompt)) :on-chosen (fn [value _ _ e] (shui/popup-hide!) (let [set-filter-fn (fn [value] (let [filters' (conj (:filters filters) [(:db/ident property) :after value])] (set-filters! {:or? (:or? filters) :filters filters'})))] - (if (= value "Custom date") + (if (= value :custom-date) (shui/popup-show! (.-target e) (ui/nlp-calendar @@ -1138,11 +1147,11 @@ (set-filter-fn value))))}) property (if checkbox? - (let [items [{:value true :label "true"} - {:value false :label "false"}]] + (let [items [{:value true :label (string/lower-case (t :ui/true))} + {:value false :label (string/lower-case (t :ui/false))}]] (merge option {:items items - :input-default-placeholder (if property (:block/title property) "Select") + :input-default-placeholder (if property (db-property/built-in-display-title property t) (t :select/default-prompt)) :on-chosen (fn [value] (let [filters' (conj (:filters filters) [(:db/ident property) :is value])] (set-filters! {:or? (:or? filters) @@ -1150,7 +1159,7 @@ (let [items values] (merge option {:items items - :input-default-placeholder (if property (:block/title property) "Select") + :input-default-placeholder (if property (db-property/built-in-display-title property t) (t :select/default-prompt)) :multiple-choices? true :on-chosen (fn [_value _selected? selected] (let [selected-value (if (and (map? (first selected)) @@ -1173,14 +1182,14 @@ (set-filters! {:or? (:or? filters) :filters filters'})))} [:span.opacity-75.hover:opacity-100.font-normal.text-sm - "Is Empty"]) + (t :view.filter/is-empty)]) (shui/button {:variant :ghost :size :sm :class "justify-start" :on-click (fn [] (let [filters' (conj (:filters filters) [(:db/ident property) :is-not :empty])] (set-filters! {:or? (:or? filters) :filters filters'})))} [:span.opacity-75.hover:opacity-100.font-normal.text-sm - "Is Not Empty"])] + (t :view.filter/is-not-empty)])] (select/select option))))) (rum/defc filter-properties < rum/static @@ -1200,19 +1209,19 @@ (defn operator->text [operator] (case operator - :is "is" - :is-not "is not" - :text-contains "text contains" - :text-not-contains "text not contains" - :date-before "date before" - :date-after "date after" - :before "before" - :after "after" + :is (t :view.filter/operator-is) + :is-not (t :view.filter/operator-is-not) + :text-contains (t :view.filter/operator-text-contains) + :text-not-contains (t :view.filter/operator-text-not-contains) + :date-before (t :view.filter/operator-date-before) + :date-after (t :view.filter/operator-date-after) + :before (t :view.filter/operator-before) + :after (t :view.filter/operator-after) :number-gt ">" :number-lt "<" :number-gte ">=" :number-lte "<=" - :between "between")) + :between (t :view.filter/operator-between))) (defn get-property-operators [property] @@ -1292,7 +1301,7 @@ [:<> (shui/input {:auto-focus true - :placeholder "from" + :placeholder (t :view.filter/from) :value (str start) :onChange (fn [e] (let [input-value (util/evalue e) @@ -1304,7 +1313,7 @@ :class "w-24 !h-6 !py-0 border-none focus-visible:ring-0 focus-visible:ring-offset-0"}) (shui/input {:value (str end) - :placeholder "to" + :placeholder (t :view.filter/to) :onChange (fn [e] (let [input-value (util/evalue e) number-value (when-not (string/blank? input-value) @@ -1344,16 +1353,17 @@ v)) data))) items (cond (contains? #{:before :after} operator) - timestamp-options + (timestamp-options) (= type :checkbox) - [{:value true :label "true"} {:value false :label "false"}] + [{:value true :label (string/lower-case (t :ui/true))} + {:value false :label (string/lower-case (t :ui/false))}] :else values)] (shui/popup-show! (.-target e) (fn [] (let [option (cond-> - {:input-default-placeholder (:block/title property) + {:input-default-placeholder (db-property/built-in-display-title property t) :input-opts {:class "!px-3 !py-1"} :items items :extract-fn :label @@ -1369,7 +1379,7 @@ (update col idx (fn [[property operator _value]] [property operator value']))))))] - (if (= value "Custom date") + (if (= value :custom-date) (shui/popup-show! (.-target e) (ui/nlp-calendar @@ -1397,7 +1407,7 @@ (fn [[property operator _value]] [property operator :empty]))))))} [:span.opacity-75.hover:opacity-100.font-normal.text-sm - "Empty"])] + (t :view.filter/empty)])] (select/select option)))) {:align :start})))} (let [value (cond @@ -1423,13 +1433,13 @@ [:div (str value)] (= value :empty) - [:div "Empty"] + [:div (t :view.filter/empty)] (seq value) (->> (map (fn [v] [:div (get-property-value-content v)]) value) - (interpose [:div "or"])) + (interpose [:div (t :view.filter/or)])) :else - "All")]))))) + (t :view/all))]))))) (rum/defc filter-value < rum/static [view-entity table property operator value filters set-filters! idx opts] @@ -1472,7 +1482,7 @@ (let [[property-ident operator value] filter' property (if (= property-ident :block/title) {:db/ident property-ident - :block/title "Name"} + :block/title (t :view.table/name-column)} (or (db/entity property-ident) (some (fn [column] (when (= (:id column) property-ident) {:db/ident (:id column) @@ -1483,7 +1493,7 @@ :variant "ghost" :size :sm :disabled true} - [:span.text-xs (:block/title property)]) + [:span.text-xs (db-property/built-in-display-title property t)]) (filter-operator property operator filters set-filters! idx) (filter-value view-entity table property operator value filters set-filters! idx opts) (shui/button @@ -1504,11 +1514,11 @@ (shui/select-trigger {:class "opacity-75 hover:opacity-100 !px-2 !py-0 !h-6"} (shui/select-value - {:placeholder "Match"})) + {:placeholder (t :view.filter/match)})) (shui/select-content (shui/select-group - (shui/select-item {:value "and"} "Match all filters") - (shui/select-item {:value "or"} "Match any filter"))))])]))) + (shui/select-item {:value "and"} (t :view.filter/match-all-filters)) + (shui/select-item {:value "or"} (t :view.filter/match-any-filter)))))])]))) (rum/defc new-record-button < rum/static [table view-entity] @@ -1523,7 +1533,7 @@ (let [f (get-in table [:data-fns :add-new-object!])] (f view-entity table)))} (ui/icon (if asset? "upload" "plus"))) - [:div "New node"]))) + [:div (t :node/new)]))) (rum/defc add-new-row < rum/static [view-entity table] @@ -1532,7 +1542,7 @@ (let [f (get-in table [:data-fns :add-new-object!])] (f view-entity table)))} (ui/icon "plus" {:size 14}) - [:div "New"]]) + [:div (t :view/new)]]) (defn- table-filters->persist-state [filters] @@ -1751,7 +1761,7 @@ {:size :sm :class "!px-1" :variant :ghost - :title "Drag && Drop to reorder"} + :title (t :view.table/drag-to-reorder)} (shui/tabler-icon "grip-vertical" {:size 14})) [:div.text-muted-foreground.whitespace-nowrap (str name ":")]] @@ -1766,11 +1776,11 @@ (shui/select-trigger {:class "order-button !px-2 !py-0 !h-8"} (shui/select-value - {:placeholder "Select order"})) + {:placeholder (t :view.table/select-order)})) (shui/select-content (shui/select-group - (shui/select-item {:value "asc"} "Ascending") - (shui/select-item {:value "desc"} "Descending")))) + (shui/select-item {:value "asc"} (t :view.table/ascending)) + (shui/select-item {:value "desc"} (t :view.table/descending))))) (shui/button {:variant "ghost" :class "text-muted-foreground !px-1" @@ -1809,7 +1819,7 @@ (f nil) (shui/popup-hide!)))} (ui/icon "trash" {:size 15}) - [:span.ml-1 "Delete sort"])])) + [:span.ml-1 (t :view.table/delete-sort)])])) (rum/defc view-sorting [table columns sorting] @@ -1862,15 +1872,15 @@ "" (case view-feature-type :linked-references - "Linked references" + (t :view/linked-references) :unlinked-references - "Unlinked references" + (t :view/unlinked-references) :class-objects - "All" + (t :view/all) :property-objects - "All" + (t :view/all) :all-pages - "All" + (t :view/all) "")) view-block-id (common-uuid/gen-uuid :view-block-uuid (str (:block/uuid view-parent) view-feature-type)) result (editor-handler/api-insert-new-block! view-title @@ -1883,6 +1893,37 @@ (assoc :custom-uuid view-block-id)))] (db/entity [:block/uuid (:block/uuid result)])))) +(def ^:private default-view-title-key-by-feature-type + {:linked-references :view/linked-references + :unlinked-references :view/unlinked-references + :class-objects :view/all + :property-objects :view/all + :all-pages :view/all}) + +(def ^:private default-view-title-candidates + (reduce-kv + (fn [acc feature-type title-key] + (assoc acc feature-type + (set (keep #(get % title-key) (vals dicts/dicts))))) + {} + default-view-title-key-by-feature-type)) + +(defn display-view-title + [view] + (let [title (:block/title view) + feature-type (:logseq.property.view/feature-type view) + title-key (get default-view-title-key-by-feature-type feature-type)] + (cond + (= title "") + (t :view/new-view) + + (and title-key + (contains? (get default-view-title-candidates feature-type) title)) + (t title-key) + + :else + title))) + (rum/defc views-tab < rum/reactive db-mixins/query [view-parent current-view {:keys [views data items-count set-view-entity! set-data! set-views! view-feature-type show-items-count? config references? opacity]}] (let [refs-total-count (:refs-total-count config)] @@ -1902,10 +1943,10 @@ [:<> (shui/dropdown-menu-sub (shui/dropdown-menu-sub-trigger - "Rename") + (t :view/rename)) (shui/dropdown-menu-sub-content (when-let [block-container-cp (state/get-component :block/container)] - (block-container-cp {} view)))) + (block-container-cp {:display-title (display-view-title view)} view)))) (shui/dropdown-menu-item {:key "Delete" :on-click (fn [] @@ -1915,7 +1956,7 @@ (set-views! views') (set-view-entity! (first views')) (shui/popup-hide!))))} - "Delete")]) + (t :ui/delete))]) {:as-dropdown? true :dropdown-menu? true :align "start" @@ -1929,10 +1970,7 @@ (when-let [icon (:logseq.property/icon (db/entity display-type))] (icon-component/icon icon {:color? true :size 15})))) - (let [title (:block/title view)] - (if (= title "") - "New view" - title)) + (display-view-title view) (when (and current-view? show-items-count? (> items-count 0) (seq data)) [:span.text-muted-foreground.text-xs items-count @@ -1940,12 +1978,12 @@ (> refs-total-count items-count)) [:span [:span "/"] - [:span {:title "Total refs count"} refs-total-count]])])))) + [:span {:title (t :view.table/total-refs-count)} refs-total-count]])])))) (shui/button {:variant :text :size :sm - :title "Add new view" + :title (t :view/add-new-view) :class (str "!px-1 -ml-1 text-muted-foreground hover:text-foreground transition-opacity ease-in duration-300 " opacity) :on-click (fn [] (p/let [view (create-view! view-parent view-feature-type {:auto-triggered? false})] @@ -1971,7 +2009,7 @@ [:div.flex.flex-row.items-center.gap-2 (if (= view-feature-type :query-result) [:div.font-medium.opacity-50.text-sm - (t (or title-key :views.table/default-title) + (t (or title-key :view.table/default-title) (count (:rows table)))] (views-tab view-parent view-entity (assoc option :hover? hover? @@ -2012,15 +2050,16 @@ (let [c (state/get-component :block/page-cp)] (c {:disable-preview? true} value)) [:div.text-muted-foreground.text-sm - "Pages"]) + (t :view.table/pages)]) (some? value) (let [icon (pu/get-block-property-value value :logseq.property/icon)] [:div.flex.flex-row.gap-1.items-center (when icon (icon-component/icon icon {:color? true})) (readable-property-value value)]) + :else - (str "No " (:block/title group-by-property)))] + (t :view.table/no-group-value (:block/title group-by-property)))] body-fn (fn [] (let [render (view-cp view-entity (assoc table' :rows group) @@ -2149,7 +2188,7 @@ readable-property-value #(cond (and (map? %) (or (:block/title %) (:logseq.property/value %))) (db-property/property-value-content %) (= (:db/ident %) :logseq.property/empty-placeholder) - "Empty" + (t :ui/empty) :else (str %)) group-by-page? (= :block/page group-by-property-ident) @@ -2173,7 +2212,7 @@ layouts such as table and list are supported. Args: * view-entity: a db Entity * option: - * title-key: dict key defaults to `:views.table/default-title` + * title-key: dict key defaults to `:view.table/default-title` * data: a collections of entities * set-data!: `fn` to update `data` * columns: view columns including properties and db attributes, which could be built by `build-columns` diff --git a/src/main/frontend/components/window_controls.cljs b/src/main/frontend/components/window_controls.cljs index e4f881de06..48b536f175 100644 --- a/src/main/frontend/components/window_controls.cljs +++ b/src/main/frontend/components/window_controls.cljs @@ -12,25 +12,29 @@ fullscreen? (state/sub :electron/window-fullscreen?)] [:div.window-controls.flex (if fullscreen? - [:button.button.icon.fullscreen-toggle - {:title (t :window/exit-fullscreen) - :on-click window-handler/toggle-fullscreen!} - (ui/icon "arrows-minimize")] + (ui/tooltip + [:button.button.icon.fullscreen-toggle + {:on-click window-handler/toggle-fullscreen!} + (ui/icon "arrows-minimize")] + (t :window/exit-fullscreen)) [:<> - [:button.button.icon.minimize - {:title (t :window/minimize) - :on-click window-handler/minimize!} - (svg/window-minimize)] + (ui/tooltip + [:button.button.icon.minimize + {:on-click window-handler/minimize!} + (svg/window-minimize)] + (t :window/minimize)) - [:button.button.icon.maximize-toggle - {:title (if maximized? (t :window/restore) (t :window/maximize)) - :class (if maximized? "restore" "maximize") - :on-click window-handler/toggle-maximized!} - (if maximized? - (svg/window-restore) - (svg/window-maximize))] + (ui/tooltip + [:button.button.icon.maximize-toggle + {:class (if maximized? "restore" "maximize") + :on-click window-handler/toggle-maximized!} + (if maximized? + (svg/window-restore) + (svg/window-maximize))] + (if maximized? (t :window/restore) (t :window/maximize))) - [:button.button.icon.close - {:title (t :window/close) - :on-click window-handler/close!} - (svg/window-close)]])])) + (ui/tooltip + [:button.button.icon.close + {:on-click window-handler/close!} + (svg/window-close)] + (t :window/close))])])) diff --git a/src/main/frontend/context/i18n.cljs b/src/main/frontend/context/i18n.cljs index ecaefa749a..b5d05147c3 100644 --- a/src/main/frontend/context/i18n.cljs +++ b/src/main/frontend/context/i18n.cljs @@ -4,19 +4,52 @@ throughout the application." (:require [clojure.string :as string] [frontend.dicts :as dicts] - [medley.core :as medley] - [tongue.core :as tongue] [frontend.state :as state] - [lambdaisland.glogi :as log])) + [lambdaisland.glogi :as log] + [medley.core :as medley] + [tongue.core :as tongue])) (def dicts (merge dicts/dicts {:tongue/fallback :en})) (def translate (tongue/build-translate dicts)) +(defn preferred-locale + [] + (or (some-> (state/sub :preferred-language) keyword) :en)) + +(defn locale-tag + [language] + (name (or (some-> language keyword) :en))) + +(def ^:private placeholder-pattern + #"\{(\d+)\}") + +(def ^:private placeholder-split-pattern + #"\{\d+\}") + +(def ^:private sentence-link-pattern + #"\{\{([^}]+)\}\}") + +(def ^:private sentence-keyed-link-pattern + #"\$([a-zA-Z_-]+)\{\{([^}]+)\}\}") + +(def ^:private rich-text-separator-by-locale + {:ar "، " + :fa "، " + :ja "、" + :zh-CN "," + :zh-Hant ","}) + +(defn t-en + "Translate using English locale, ignoring user preference. + Useful for user-facing text that also requires output to the console." + [& args] + (apply translate :en args)) + (defn t [& args] - (let [preferred-language (keyword (state/sub :preferred-language))] + (let [preferred-language (preferred-locale)] (try (apply translate preferred-language args) (catch :default e @@ -26,7 +59,8 @@ :payload {:type :failed-translation :arguments args :lang preferred-language}}]) - (apply translate :en args))))) + (when (not= preferred-language :en) + (apply translate :en args)))))) (defn tt [& keys] @@ -36,6 +70,169 @@ keys) t)) +(defn- append-line-break-fragments + "Append `text` to `acc`, replacing newline characters with `[:br]` nodes." + [acc text] + (let [parts (string/split text #"\r?\n" -1) + last-idx (dec (count parts))] + (reduce-kv (fn [acc idx part] + (cond-> acc + (not (empty? part)) (conj part) + (< idx last-idx) (conj [:br]))) + acc + parts))) + +(defn- append-rich-text-fragment + [acc fragment replace-newlines?] + (cond + (string? fragment) + (if replace-newlines? + (append-line-break-fragments acc fragment) + (if (empty? fragment) acc (conj acc fragment))) + + (nil? fragment) + acc + + :else + (conj acc fragment))) + +(defn interpolate-rich-text + "Interpolate a translated template while allowing replacements to be hiccup + nodes or other non-string values. + + When `replace-newlines?` is true, newline characters in string fragments are + replaced with `[:br]` nodes." + ([template replacements] + (interpolate-rich-text template replacements false)) + ([template replacements replace-newlines?] + (if-not (string? template) + [template] + (let [segments (string/split template placeholder-split-pattern) + placeholder-ids (map second (re-seq placeholder-pattern template))] + (reduce (fn [acc [segment placeholder-id]] + (let [acc' (append-rich-text-fragment acc segment replace-newlines?)] + (if-not placeholder-id + acc' + (let [idx (dec (js/parseInt placeholder-id 10)) + replacement (nth replacements idx nil)] + (if (nil? replacement) + (conj acc' (str "{" placeholder-id "}")) + (append-rich-text-fragment acc' replacement replace-newlines?)))))) + [] + (map vector segments (concat placeholder-ids [nil]))))))) + +(defn interpolate-rich-text-node + "Interpolate a translated template and wrap the fragments in a fragment node. + + When `replace-newlines?` is true, newline characters in string fragments are + replaced with `[:br]` nodes." + ([template replacements] + (interpolate-rich-text-node template replacements false)) + ([template replacements replace-newlines?] + (into [:<>] (interpolate-rich-text template replacements replace-newlines?)))) + +(defn replace-newlines-with-br + "Replace newline characters in a string or rich-text string fragments with + `[:br]` nodes." + [fragments] + (let [fragments' (if (string? fragments) [fragments] fragments)] + (reduce (fn [acc fragment] + (if (string? fragment) + (append-line-break-fragments acc fragment) + (conj acc fragment))) + [] + fragments'))) + +(defn locale-join-rich-text + "Join rich-text fragments with a locale-aware separator." + [fragments] + (let [separator (get rich-text-separator-by-locale (preferred-locale) ", ") + fragments' (vec (remove nil? fragments))] + (vec (interpose separator fragments')))) + +(defn locale-join-rich-text-node + "Join rich-text fragments with a locale-aware separator and wrap them in a + fragment node." + [fragments] + (into [:<>] (locale-join-rich-text fragments))) + +(defn locale-format-number + "Format a number using Intl.NumberFormat with the application locale." + ([n] (locale-format-number n {})) + ([n opts] + (let [tag (locale-tag (state/sub :preferred-language))] + (.format (js/Intl.NumberFormat. tag (clj->js opts)) n)))) + +(defn locale-format-date + "Format a js/Date using Intl.DateTimeFormat with the application locale." + ([d] (locale-format-date d {:year "numeric" :month "short" :day "numeric"})) + ([d opts] + (let [tag (locale-tag (state/sub :preferred-language))] + (.format (js/Intl.DateTimeFormat. tag (clj->js opts)) d)))) + +(defn locale-format-time + "Format a js/Date as time string using Intl.DateTimeFormat with the + application locale." + [d] + (locale-format-date d {:hour "2-digit" :minute "2-digit" :hourCycle "h23"})) + +(defn- split-by-sentence-links + "Split `template` into segments for sentence link interpolation. + When `keyed?` is true, matches $key{{text}} patterns; otherwise matches {{text}}." + [template keyed?] + (let [pat (if keyed? sentence-keyed-link-pattern sentence-link-pattern)] + (loop [remaining template + result []] + (if-let [m (first (re-seq pat remaining))] + (let [full-match (first m) + idx (string/index-of remaining full-match) + before (subs remaining 0 idx) + after (subs remaining (+ idx (count full-match)))] + (recur after + (if keyed? + (conj result {:text before :key (keyword (second m)) :link-text (nth m 2)}) + (conj result {:text before :link-text (second m)})))) + (conj result {:text remaining}))))) + +(defn interpolate-sentence + "Interpolate a translated complete-sentence template that may contain: + - Numeric placeholders {1}, {2}, etc. (text substitution via :placeholders) + - Link placeholders {{display text}} or $key{{display text}} (via :links) + + :placeholders — vector of strings substituted for {1}, {2}, etc. in order + :links — either: + - vector of link-attrs maps, applied to each {{text}} in sequence + - map of keyword->link-attrs, applied to each $key{{text}} by key + + Returns a [:<> ...] hiccup fragment." + [template & {:keys [placeholders links]}] + (let [template' (if (seq placeholders) + (loop [t template + idx 1 + remaining placeholders] + (if (empty? remaining) + t + (recur (string/replace t (str "{" idx "}") (str (first remaining))) + (inc idx) + (rest remaining)))) + template) + keyed? (map? links) + segments (split-by-sentence-links template' keyed?) + link-idx (atom 0) + fragments (reduce + (fn [acc {:keys [text key link-text]}] + (let [acc' (if (empty? text) acc (conj acc text))] + (if link-text + (let [attrs (if keyed? + (get links key) + (nth links @link-idx nil))] + (when-not keyed? (swap! link-idx inc)) + (conj acc' [:a attrs link-text])) + acc'))) + [] + segments)] + (into [:<>] fragments))) + (defn- fetch-local-language [] (.. js/window -navigator -language)) diff --git a/src/main/frontend/date.cljs b/src/main/frontend/date.cljs index 849b242ce6..cc44e66ea2 100644 --- a/src/main/frontend/date.cljs +++ b/src/main/frontend/date.cljs @@ -1,27 +1,29 @@ (ns frontend.date "Journal date related utility fns" (:require ["chrono-node" :as chrono] - [cljs-bean.core :as bean] [cljs-time.coerce :as tc] [cljs-time.core :as t] [cljs-time.format :as tf] [cljs-time.local :as tl] + [clojure.string :as string] + [frontend.context.i18n :as i18n] [frontend.state :as state] [goog.object :as gobj] [lambdaisland.glogi :as log] [logseq.common.date :as common-date] [logseq.common.util.date-time :as date-time-util])) +(def ^:private custom-formatter (tf/formatter "yyyy-MM-dd'T'HH:mm:ssZZ")) +(def ^:private custom-formatter-2 (tf/formatter "yyyy-MM-dd-HH-mm-ss")) +(def ^:private mmm-do-yyyy-formatter (tf/formatter "MMM do, yyyy")) +(def ^:private yyyy-MM-dd-HH-mm-formatter (tf/formatter "yyyy-MM-dd HH:mm")) +(def ^:private iso-parser (tf/formatter "yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'")) + (defn nld-parse [s] (when (string? s) ((gobj/get chrono "parseDate") s))) -(def custom-formatter (tf/formatter "yyyy-MM-dd'T'HH:mm:ssZZ")) - -(def ^:private mmm-do-yyyy-formatter (tf/formatter "MMM do, yyyy")) -(def ^:private yyyy-MM-dd-HH-mm-formatter (tf/formatter "yyyy-MM-dd HH:mm")) - (defn journal-title-formatters [] (common-date/journal-title-formatters (state/get-date-formatter))) @@ -34,20 +36,11 @@ (tf/formatter formatter-str) custom-formatter) date-time))) -(defn get-locale-string - "Accepts a :date-time-no-ms string representation, or a cljs-time date object" - [input] - (try - (->> (cond->> input - (string? input) (tf/parse (tf/formatters :date-time-no-ms))) - (t/to-default-time-zone) - (tf/unparse mmm-do-yyyy-formatter)) - (catch :default _e - nil))) - -(def custom-formatter-2 (tf/formatter "yyyy-MM-dd-HH-mm-ss")) -(defn get-date-time-string-2 [] - (tf/unparse custom-formatter-2 (tl/local-now))) +(defn get-date-time-string-2 + ([] + (get-date-time-string-2 (tl/local-now))) + ([date-time] + (tf/unparse custom-formatter-2 date-time))) (defn journal-name ([] @@ -69,6 +62,10 @@ [] (journal-name)) +(defn today-journal-day + [] + (date-time-util/date->int (js/Date.))) + (defn today-name [] (tf/unparse mmm-do-yyyy-formatter (t/today))) @@ -83,13 +80,7 @@ (defn get-current-time [] - (let [d (js/Date.)] - (.toLocaleTimeString - d - (gobj/get js/window.navigator "language") - (bean/->js {:hour "2-digit" - :minute "2-digit" - :hourCycle "h23"})))) + (i18n/locale-format-time (js/Date.))) (defn valid-journal-title? [title] @@ -119,7 +110,6 @@ yyyy-MM-dd-HH-mm-formatter (t/to-default-time-zone (tc/from-long n)))) -(def iso-parser (tf/formatter "yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'")) (defn parse-iso [string] (tf/parse iso-parser string)) @@ -169,6 +159,32 @@ "Next Saturday" "Next Sunday"]) +(defn- nlp-page->i18n-key + "Derives a :date.nlp/* i18n key from an English NLP page string. + Example: \"Last Monday\" -> :date.nlp/last-monday" + [s] + (keyword "date.nlp" (-> s string/lower-case (string/replace " " "-")))) + +(defn- with-i18n-titles + "Wraps a collection of English display strings, returning a seq of maps with + {:block/title :nlp-original-title + ...extra}. + key-fn derives an i18n keyword from each English string. + t-fn is the translation function (frontend.context.i18n/t)." + [items key-fn t-fn extra] + (map (fn [en] + (merge extra + {:block/title (t-fn (key-fn en)) + :nlp-original-title en})) + items)) + +(defn nlp-pages-i18n + "Returns nlp-pages as a seq of maps with translated :block/title labels. + :nlp-original-title preserves the English string for chrono-node NLP parsing. + Accepts optional keyword args merged into every output map." + [& {:as extra}] + (with-i18n-titles nlp-pages nlp-page->i18n-key i18n/t extra)) + (comment (def default-formatter (tf/formatter "MMM do, yyyy")) (def zh-formatter (tf/formatter "YYYY年MM月dd日")) diff --git a/src/main/frontend/db.cljs b/src/main/frontend/db.cljs index cdf427ebdc..407904c5d4 100644 --- a/src/main/frontend/db.cljs +++ b/src/main/frontend/db.cljs @@ -27,7 +27,9 @@ get-block-parent get-block-parents get-block-immediate-children get-file get-latest-journals get-page get-case-page - get-page-format journal-page? page? sub-block + get-journal-page get-journal-page-by-day + get-journal-page-title get-today-journal-page get-today-journal-title + get-page-format journal-page? today-journal-page? page? sub-block page-exists? get-alias-source-page has-children?]) (defn start-db-conn! @@ -50,4 +52,4 @@ (:init-db? tx-meta)) (conn/transact! repo tx-data tx-meta)) (ui-outliner-tx/transact! tx-meta - (outliner-op/transact! tx-data tx-meta))))) \ No newline at end of file + (outliner-op/transact! tx-data tx-meta))))) diff --git a/src/main/frontend/db/model.cljs b/src/main/frontend/db/model.cljs index 6bc33f4f56..0c7644189d 100644 --- a/src/main/frontend/db/model.cljs +++ b/src/main/frontend/db/model.cljs @@ -4,6 +4,7 @@ [clojure.walk :as walk] [datascript.core :as d] [frontend.common.graph-view :as graph-view] + [frontend.date :as date] [frontend.db.conn :as conn] [frontend.db.react :as react] [frontend.db.utils :as db-utils] @@ -269,7 +270,41 @@ independent of format as format specific heading characters are stripped" (defn get-journal-page [page-name] (when page-name - (ldb/get-journal-page (conn/get-db) page-name))) + (let [db (conn/get-db)] + (or + (ldb/get-journal-page db page-name) + (when-let [journal-day (date/journal-title->int page-name)] + (ldb/get-journal-page-by-day db journal-day)))))) + +(defn get-journal-page-by-day + [journal-day] + (when journal-day + (ldb/get-journal-page-by-day (conn/get-db) journal-day))) + +(defn get-journal-page-title + [page-name] + (or (:block/title (get-journal-page page-name)) + page-name)) + +(defn get-today-journal-page + [] + (get-journal-page-by-day (date/today-journal-day))) + +(defn get-today-journal-title + [] + (or (:block/title (get-today-journal-page)) + (date/today))) + +(defn today-journal-page? + [page] + (let [page (cond + (or (string? page) (uuid? page)) + (get-page page) + :else + page)] + (and (ldb/journal? page) + (= (:block/journal-day page) + (date/today-journal-day))))) (defn get-case-page [page-name-or-uuid] diff --git a/src/main/frontend/db/query_react.cljs b/src/main/frontend/db/query_react.cljs index 545907f8dc..c731c80c9a 100644 --- a/src/main/frontend/db/query_react.cljs +++ b/src/main/frontend/db/query_react.cljs @@ -2,7 +2,6 @@ "Custom queries." (:require [clojure.string :as string] [clojure.walk :as walk] - [frontend.date :as date] [frontend.db.conn :as conn] [frontend.db.model :as model] [frontend.db.react :as react] @@ -24,7 +23,7 @@ (or (when-let [name-or-uuid (state/get-current-page)] (:block/title (model/get-block-by-uuid name-or-uuid))) (:page (state/get-default-home)) - (date/today)))} + (model/get-today-journal-title)))} opts)))) (defn custom-query-result-transform diff --git a/src/main/frontend/db/rtc/debug_ui.cljs b/src/main/frontend/db/rtc/debug_ui.cljs index f7789bbdf1..8344787c01 100644 --- a/src/main/frontend/db/rtc/debug_ui.cljs +++ b/src/main/frontend/db/rtc/debug_ui.cljs @@ -110,19 +110,20 @@ (if (nil? rtc-lock) (shui/button {:variant :outline + :size :sm :class "text-green-rx-09 border-green-rx-10 hover:text-green-rx-10" :on-click (fn [] (state/ keys-state (fipp/pprint {:width 20}) diff --git a/src/main/frontend/dicts.cljc b/src/main/frontend/dicts.cljc index a00947bd11..54ffcb8da5 100644 --- a/src/main/frontend/dicts.cljc +++ b/src/main/frontend/dicts.cljc @@ -15,29 +15,20 @@ :clj (defmacro edn-resource [file] (edn/read-string {:readers {'resource resource}} (rc/slurp-resource &env file)))) -(def ^:private en-dicts-raw (edn-resource "dicts/en.edn")) +(def ^:private en-dicts (edn-resource "dicts/en.edn")) (def categories "Shortcut categories described in default language" - (set (filter #(= "shortcut.category" (namespace %)) (keys en-dicts-raw)))) + (set (filter #(= "shortcut.category" (namespace %)) (keys en-dicts)))) (def abbreviated-commands - "Commands defined in default language and in a format that - frontend.modules.shortcut.* namespaces understand e.g. :date-picker/complete - instead of :command.date-picker/complete" - (set (keys (:commands en-dicts-raw)))) - -(defn- decorate-namespace [k] - (let [n (name k) - ns (namespace k)] - (keyword (str "command." ns) n))) - -(def ^:private en-dicts - (merge (dissoc en-dicts-raw :commands) - ;; Dynamically add :command ns prefix since command descriptions have to - ;; stay in sync with frontend.modules.shortcut.config keywords which do not - ;; have the prefix - (update-keys (:commands en-dicts-raw) decorate-namespace))) + "Built-in shortcut command ids derived from flattened `:command.*` English + translation keys, converted to the abbreviated keyword format used by + `frontend.modules.shortcut.*`." + (set (map (fn [k] + (keyword (subs (namespace k) 8) (name k))) + (filter #(some-> % namespace (.startsWith "command.")) + (keys en-dicts))))) (def dicts "Main dictionary map used by tongue to translate app" diff --git a/src/main/frontend/extensions/fsrs.cljs b/src/main/frontend/extensions/fsrs.cljs index 279b691454..e294dda625 100644 --- a/src/main/frontend/extensions/fsrs.cljs +++ b/src/main/frontend/extensions/fsrs.cljs @@ -6,7 +6,6 @@ [frontend.components.block :as component-block] [frontend.components.macro :as component-macro] [frontend.context.i18n :refer [t]] - [frontend.date :as date] [frontend.db :as db] [frontend.db-mixins :as db-mixins] [frontend.db.async :as db-async] @@ -29,8 +28,12 @@ [rum.core :as rum] [tick.core :as tick])) -(commands/register-slash-command ["Cloze" - [[:editor/input "{{cloze }}" {:backward-pos 2}]]]) +(commands/register-slash-command + (fn [] + [(t :editor.slash/cloze) + [[:editor/input "{{cloze }}" {:backward-pos 2}]] + nil + :icon/brackets-contain])) (def ^:private instant->inst-ms (comp inst-ms tick/inst)) (defn- inst-ms->instant [ms] (tick/instant (js/Date. ms))) @@ -115,7 +118,7 @@ (defn- shortcut {:again "1" :hard "2" :good "3" :easy "4"}) +(defn- rating-key + [rating] + (keyword "flashcard.rating" (name rating))) + +(defn- rating-desc-key + [rating] + (keyword "flashcard.rating" (str (name rating) "-desc"))) + +(defn- rating-label + [rating] + (t (rating-key rating))) + (defn- rating-btns [repo block *card-index *phase] (let [block-id (:db/id block)] @@ -173,14 +191,14 @@ (fn [rating] (let [card-map (get-card-map block) due (:due (fsrs.core/repeat-card! card-map rating))] - (btn-with-shortcut {:btn-text (string/capitalize (name rating)) + (btn-with-shortcut {:btn-text (rating-label rating) :shortcut (rating->shortcut rating) :due due :id (str "card-" (name rating)) :on-click #(do (repeat-card! repo block-id rating) (swap! *card-index inc) (reset! *phase :init))}))) - (keys rating->shortcut)) + ratings) (shui/button {:variant :ghost :size :sm @@ -189,18 +207,11 @@ (shui/popup-show! (.-target e) (fn [] [:div.p-4.max-w-lg - [:dl - [:dt "Again"] - [:dd "We got the answer wrong. Automatically means that we have forgotten the card. This is a lapse in memory."]] - [:dl - [:dt "Hard"] - [:dd "The answer was correct but we were not confident about it and/or took too long to recall."]] - [:dl - [:dt "Good"] - [:dd "The answer was correct but we took some mental effort to recall it."]] - [:dl - [:dt "Easy"] - [:dd "The answer was correct and we were confident and quick in our recall without mental effort."]]]) + (for [rating ratings] + ^{:key (name rating)} + [:dl + [:dt (t (rating-key rating))] + [:dd (t (rating-desc-key rating))]])]) {:align "start"}))} (ui/icon "info-circle"))])) @@ -232,11 +243,11 @@ (if (contains? #{:show-cloze :show-answer} next-phase) (btn-with-shortcut {:btn-text (case next-phase :show-answer - (t :flashcards/modal-btn-show-answers) + (t :flashcard.review/show-answers) :show-cloze - (t :flashcards/modal-btn-show-clozes) + (t :flashcard.review/show-clozes) :init - (t :flashcards/modal-btn-hide-answers)) + (t :flashcard.review/hide-answers)) :shortcut "s" :id "card-answers" :on-click #(swap! *phase @@ -253,7 +264,7 @@ *loading? (atom nil) cards-id (last (:rum/args state)) *cards-list (atom [{:db/id :global - :block/title "All cards"}]) + :block/title (t :flashcard/all-cards)}]) repo (state/get-current-repo) cards-class-id (:db/id (entity-plus/entity-memoized (db/get-db) :logseq.class/Cards))] (reset! *loading? true) @@ -270,7 +281,7 @@ (assoc block :block/title (:block/title query-block)))))) cards))] (reset! *cards-list (concat [{:db/id :global - :block/title "All cards"}] + :block/title (t :flashcard/all-cards)}] (remove (fn [card] (string/blank? (:block/title card))) @@ -290,7 +301,7 @@ *cards-list (::cards-list state) all-cards (or (rum/react *cards-list) [{:db/id :global - :block/title "All cards"}]) + :block/title (t :flashcard/all-cards)}]) *block-ids (::block-ids state) block-ids (rum/react *block-ids) loading? (rum/react (::loading? state)) @@ -310,7 +321,7 @@ (shui/select-trigger {:class "!px-2 !py-0 !h-8 w-64"} (shui/select-value - {:placeholder "Select cards"})) + {:placeholder (t :flashcard/select-cards)})) (shui/select-content (shui/select-group (for [card-entity all-cards] @@ -320,7 +331,7 @@ {:variant :ghost :id "ls-cards-add" :size :sm - :title "Add new query" + :title (t :flashcard/add-query) :class "!px-1 text-muted-foreground" :on-click (fn [] (p/let [saved-block ( - [:h2 (t :handbook/popular-topics)] + [:h2 (t :help.handbook/popular-topics)] [:div.topics-list (for [topic-key popular-topics] (when-let [topic (and (string? topic-key) (->> (util/safe-lower-case topic-key) (csk/->snake_case_string) (get handbooks-nodes)))] - (topic-card topic #(nav-to-pane! [:topic-detail topic (t :handbook/title)] [:dashboard]) nil)))]]) + (topic-card topic #(nav-to-pane! [:topic-detail topic (t :help.handbook/title)] [:dashboard]) nil)))]]) - [:h2 (t :handbook/help-categories)] + [:h2 (t :help.handbook/help-categories)] [:div.categories-list (let [categories (:children root) categories (conj (vec categories) {:key :ls-shortcuts - :title [:span "Keyboard shortcuts"] - :children [:span (->> (vals @shortcut-config/*config) - (map count) - (apply +)) - " shortcuts"] + :title [:span (t :help.shortcuts/label)] + :children [:span (t :help.handbook/shortcuts-count + (->> (vals @shortcut-config/*config) + (map count) + (apply +)))] :color "#2563EB" :icon "command"})] - (for [{:keys [key title children color icon] :as category} categories + (for [{:keys [key _title children color icon] :as category} categories :let [total (if counted? (count children) 0)]] [:button.category-card.text-left {:key key @@ -293,26 +300,26 @@ (do (state/toggle! :ui/handbooks-open?) (state/open-right-sidebar!) (state/sidebar-add-block! (state/get-current-repo) "shortcut-settings" :shortcut-settings)) - (nav-to-pane! [:topics category title] pane-state))} + (nav-to-pane! [:topics category (display-category-title category)] pane-state))} [:div.icon-wrap (ui/icon (or icon "chart-bubble") {:size 20})] [:div.text-wrap - [:strong title] + [:strong (display-category-title category)] (cond (vector? children) children :else - [:span (str total " " (util/safe-lower-case (t :handbook/topics)))])]]))]])) + [:span (str total " " (util/safe-lower-case (t :help.handbook/topics)))])]]))]])) (rum/defc pane-settings [dev-watch? set-dev-watch?] [:div.pane.pane-settings [:div.item [:p.flex.items-center.space-x-3.mb-0 - [:strong "Writing mode (preview in time)"] + [:strong (t :help.handbook/writing-mode)] (ui/toggle dev-watch? #(set-dev-watch? (not dev-watch?)) true)] - [:small.opacity-30 (str "Resources from " (get-handbooks-endpoint "/"))]]]) + [:small.opacity-30 (t :help.handbook/resources-from (get-handbooks-endpoint "/"))]]]) (rum/defc search-bar [pane-state nav! handbooks-nodes search-state set-search-state!] @@ -362,7 +369,7 @@ {:style {:top 6 :left 7}} (ui/icon "search" {:size 12})] - [:input {:placeholder (t :handbook/search) + [:input {:placeholder (t :help.handbook/search-placeholder) :auto-focus true :default-value q :on-change #(set-q! (util/evalue %)) @@ -445,7 +452,7 @@ (p/then #(.json %)) (p/then #(when-let [count (.-approximate_presence_count ^js %)] (swap! *config assoc - :discord-online (.toLocaleString count) + :discord-online (i18n/locale-format-number count) :discord-online-created (js/Date.now))))))) [discord-count]) @@ -457,30 +464,30 @@ {:class "flex-1" :href "https://discord.gg/KpN4eHY"} [:div.inner.flex.space-x-1.flex-col (ui/icon "brand-discord" {:class "opacity-30" :size 26}) - [:h1.font-medium.py-1 "Chat on Discord"] - [:h2.text-xs.leading-4.opacity-40 "Ask quick questions, meet fellow users, and learn new workflows."] + [:h1.font-medium.py-1 (t :help.handbook/chat-on-discord)] + [:h2.text-xs.leading-4.opacity-40 (t :help.handbook/chat-on-discord-desc)] [:small.flex.items-center.pt-1.5 [:i.block.rounded-full.bg-green-500 {:style {:width "8px" :height "8px"}}] [:span.pl-2.opacity-90 [:strong.opacity-60 (or discord-count "?")] - [:span.opacity-70.font-light " users online"]]]]) + [:span.opacity-70.font-light (str " " (t :help.handbook/users-online))]]]]) (link-card {:class "flex-1" :href "https://discuss.logseq.com"} [:div.inner.flex.space-x-1.flex-col (ui/icon "message-dots" {:class "opacity-30" :size 26}) - [:h1.font-medium.py-1 "Visit the forum"] - [:h2.text-xs.leading-4.opacity-40 "Give feedback, request features, and have in-depth conversations."] + [:h1.font-medium.py-1 (t :help.handbook/visit-the-forum)] + [:h2.text-xs.leading-4.opacity-40 (t :help.handbook/visit-the-forum-desc)] [:small.flex.items-center.pt-1.5 [:i.flex.items-center.opacity-50 (ui/icon "bolt" {:size 14})] [:span.pl-1.opacity-90 - [:strong.opacity-60 "800+"] - [:span.opacity-70.font-light " monthly posts"]]]])]])) + [:strong.opacity-60 "800+"] ;; TODO: fetch real data + [:span.opacity-70.font-light (str " " (t :help.handbook/monthly-posts))]]]])]])) (rum/defc ^:large-vars/data-var content [] (let [[active-pane-state, set-active-pane-state!] - (rum/use-state [:dashboard nil (t :handbook/title)]) + (rum/use-state [:dashboard nil (t :help.handbook/title)]) [handbooks-state, set-handbooks-state!] (rum/use-state nil) @@ -551,7 +558,7 @@ (let [v (! c :return))))) [handbooks-nodes]) @@ -589,7 +596,7 @@ [:div.hd.flex.justify-between.select-none.draggable-handle [:h1.text-xl.flex.items-center.font-bold (if pane-dashboard? - [:span (t :handbook/title)] + [:span (t :help.handbook/title)] [:button.active:opacity-80.flex.items-center.cursor-pointer {:on-click (fn [] (let [prev (first history-state) prev (cond-> prev @@ -598,34 +605,34 @@ (set-active-pane-state! prev) (set-history-state! (rest history-state))))} [:span.pr-2.flex.items-center (ui/icon "chevron-left")] - (let [title (or (last active-pane-state) (t :handbook/title) "")] + (let [title (or (last active-pane-state) (t :help.handbook/title) "")] [:span.truncate.title {:title title} title])])] [:div.flex.items-center.space-x-3 (when (> (count history-state) 1) - [:a.flex.items-center {:aria-label (t :handbook/home) :tabIndex "0" :on-click #(force-nav-dashboard!)} (ui/icon "home")]) + [:a.flex.items-center {:aria-label (t :help.handbook/home) :tabIndex "0" :on-click #(force-nav-dashboard!)} (ui/icon "home")]) (when pane-topic? [:a.flex.items-center - {:aria-label "Copy topic link" :tabIndex "0" + {:aria-label (t :help.handbook/copy-topic-link) :tabIndex "0" :on-click (fn [] (let [s (str "logseq://handbook/" (:key (second active-pane-state)))] (util/copy-to-clipboard! s) (notification/show! - [:div [:strong.block "Handbook link copied!"] + [:div [:strong.block (t :help.handbook/link-copied)] [:label.opacity-50 s]] :success)))} (ui/icon "copy")]) (when (state/developer-mode?) - [:a.flex.items-center {:aria-label (t :handbook/settings) + [:a.flex.items-center {:aria-label (t :nav/settings) :tabIndex "0" - :on-click #(nav-to-pane! [:settings nil "Settings"] active-pane-state)} + :on-click #(nav-to-pane! [:settings nil (t :nav/settings)] active-pane-state)} (ui/icon "settings")]) - [:a.flex.items-center {:aria-label (t :handbook/close) :tabIndex "0" :on-click #(state/toggle! :ui/handbooks-open?)} + [:a.flex.items-center {:aria-label (t :ui/close) :tabIndex "0" :on-click #(state/toggle! :ui/handbooks-open?)} (ui/icon "x")]]] (when (and (not pane-settings?) (not handbooks-loaded?)) [:div.flex.items-center.justify-center.pt-32 (if-not (:error handbooks-state) - (ui/loading "Loading ...") + (ui/loading (t :ui/loading)) [:code (:error handbooks-state)])]) (when (or pane-settings? handbooks-loaded?) diff --git a/src/main/frontend/extensions/pdf/assets.cljs b/src/main/frontend/extensions/pdf/assets.cljs index 08ec847c7b..6cb9bf9ba7 100644 --- a/src/main/frontend/extensions/pdf/assets.cljs +++ b/src/main/frontend/extensions/pdf/assets.cljs @@ -1,7 +1,7 @@ (ns frontend.extensions.pdf.assets (:require [clojure.string :as string] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :as i18n :refer [t]] [frontend.db :as db] [frontend.db.async :as db-async] [frontend.db.model :as db-model] @@ -70,7 +70,7 @@ ref-block) (let [ref-asset-id (:image content) image? (not (nil? ref-asset-id)) - text (if image? (.toLocaleString (js/Date.)) + text (if image? (i18n/locale-format-date (js/Date.)) (:text content)) colors (:property/closed-values (db/entity :logseq.property.pdf/hl-color)) color-id (some (fn [color] (when (= (:block/title color) (:color properties)) @@ -306,7 +306,7 @@ :on-click (fn [e] (util/stop e) (-> (util/copy-image-to-clipboard (common-config/remove-asset-protocol @*src)) - (p/then #(notification/show! "Copied!" :success))))} + (p/then #(notification/show! (t :notification/copied) :success))))} (ui/icon "copy")]) [:button.asset-action-btn diff --git a/src/main/frontend/extensions/pdf/core.cljs b/src/main/frontend/extensions/pdf/core.cljs index d9e618edfc..32ee0460dd 100644 --- a/src/main/frontend/extensions/pdf/core.cljs +++ b/src/main/frontend/extensions/pdf/core.cljs @@ -222,7 +222,7 @@ (and id [:li.item {:data-action "link"} (t :pdf/linked-ref)]) - (and id [:li.item {:data-action "del"} (t :delete)]) + (and id [:li.item {:data-action "del"} (t :ui/delete)]) (when (and config/lsp-enabled? (not area?)) (for [[_ {:keys [key label extras] :as _cmd} action pid] @@ -850,7 +850,7 @@ [:div.extensions__pdf-viewer-cnt.visible-scrollbar [:div.extensions__pdf-viewer.overflow-x-auto.absolute {:ref *el-ref :class (util/classnames [{:is-area-dashed area-dashed?}])} - [:div.pdfViewer "viewer pdf"] + [:div.pdfViewer (t :pdf/viewer)] [:div.pp-holder] ;; block hls refs @@ -877,23 +877,23 @@ [state confirm-fn] (let [password (get state ::password)] [:div.container - [:div.text-lg.mb-4 "Password required"] + [:div.text-lg.mb-4 (t :pdf/password-required)] [:div.sm:flex.sm:items-start [:div.mt-3.text-center.sm:mt-0.sm:text-left [:h3#modal-headline.leading-6.font-medium - "This document is password protected. Please enter a password:"]]] + (t :pdf/password-protected-desc)]] - [:input.form-input.block.w-full.sm:text-sm.sm:leading-5.my-2.mb-4 - {:auto-focus true - :on-change (fn [e] - (reset! password (util/evalue e)))}] + [:input.form-input.block.w-full.sm:text-sm.sm:leading-5.my-2.mb-4 + {:auto-focus true + :on-change (fn [e] + (reset! password (util/evalue e)))}] - [:div.mt-5.sm:mt-4.flex - (ui/button - "Submit" - {:on-click (fn [] - (let [password @password] - (confirm-fn password)))})]])) + [:div.mt-5.sm:mt-4.flex + (ui/button + (t :ui/submit) + {:on-click (fn [] + (let [password @password] + (confirm-fn password)))})]]])) (defonce debounced-set-property! (debounce property-handler/set-block-property! 300)) @@ -941,9 +941,9 @@ (p/catch (fn [^js e] (js/console.error "[load hls error]" e) - (let [msg (str (util/format "Error: failed to load the highlights file: \"%s\". \n" - (:hls-file pdf-current)) - e)] + (let [msg (t :pdf/load-highlights-file-error + (:hls-file pdf-current) + (str e))] (notification/show! msg :error) (set-hls-state! {:loaded true :error e}))))) #()) @@ -980,7 +980,7 @@ "MissingPDFException" (do (notification/show! - (str "Error: " (.-message error) "\n Is this the correct path?") + (t :pdf/missing-file-error (.-message error)) :error false) (state/set-state! :pdf/current nil)) @@ -988,9 +988,7 @@ "InvalidPDFException" (do (notification/show! - (str "Error: " (.-message error) "\n" - "Is this .pdf file corrupted?\n" - "Please confirm with external pdf viewer.") + (t :pdf/corrupted-file-error (.-message error)) :error false) (state/set-state! :pdf/current nil)) @@ -1008,8 +1006,7 @@ (do (notification/show! - (str "Error: " (.-name error) "\n" (.-message error) "\n" - "Please confirm with pdf file resource.") + (t :pdf/generic-error (.-name error) (.-message error)) :error false) (state/set-state! :pdf/current nil))))) diff --git a/src/main/frontend/extensions/pdf/toolbar.cljs b/src/main/frontend/extensions/pdf/toolbar.cljs index 781e390a29..450af411e6 100644 --- a/src/main/frontend/extensions/pdf/toolbar.cljs +++ b/src/main/frontend/extensions/pdf/toolbar.cljs @@ -122,13 +122,13 @@ [:p {:key k} [:strong k] " " [:i (pr-str v)]])] [:div.flex.items-center.justify-center.pt-2.pb--2 - (ui/button "Copy all" + (ui/button (t :ui/copy-all) :on-click (fn [] (let [text (.-innerText (js/document.querySelector "#pdf-docinfo > .inner-text")) text (string/replace text #"[\n\t]+" "\n")] (util/copy-to-clipboard! text) - (notification/show! "Copied!" :success) + (notification/show! (t :notification/copied) :success) (close-fn!))))]]) (defn make-docinfo-in-modal @@ -222,7 +222,7 @@ [:div.input-inner.flex.items-center [:div.input-wrap.relative [:input - {:placeholder "search" + {:placeholder (t :pdf/search-placeholder) :type "text" :ref *el-input :auto-focus true @@ -252,7 +252,7 @@ (when entered-active0? (ui/button {:icon "arrow-back" :intent "link" - :title "Enter to search" + :title (t :pdf/enter-to-search) :class "icon-enter" :small? true}))] @@ -281,10 +281,11 @@ (:status find-state))] (if-not (= ::not-found status) [:div.flex.px-3.py-3.text-xs.opacity-90 - (apply max (map :current [find-state matches])) " of " - (:total find-state) - (str " matches (\"" (:query find-state) "\")")] - [:div.px-3.py-3.text-xs.opacity-80.text-red-600 "Not found."]))]]])) + (t :pdf/find-results + (apply max (map :current [find-state matches])) + (:total find-state) + (:query find-state))] + [:div.px-3.py-3.text-xs.opacity-80.text-red-600 (t :pdf/not-found)]))]]])) (rum/defc pdf-outline-item [^js viewer @@ -372,7 +373,7 @@ {:upt-outline-node! upt-outline-node!}) idx)) outline-data)] - [:section.is-empty "No outlines"])]))) + [:section.is-empty (t :pdf/no-outlines)])]))) (rum/defc area-image-for-db [repo id] @@ -411,7 +412,7 @@ [:h6.flex [:span.flex.items-center [:small {:data-color (:color properties)}] - [:strong "Page " page]] + [:strong (t :pdf/page-label page)]] [:button {:title (t :pdf/linked-ref) @@ -453,9 +454,9 @@ [:div.extensions__pdf-outline-tabs [:div.inner [:button {:class (when contents? "active") - :on-click #(set-active-tab! "contents")} "Contents"] + :on-click #(set-active-tab! "contents")} (t :page/contents)] [:button {:class (when-not contents? "active") - :on-click #(set-active-tab! "highlights")} "Highlights"]]] + :on-click #(set-active-tab! "highlights")} (t :pdf/highlights)]]] [:div.extensions__pdf-outline-panels (if contents? @@ -527,123 +528,121 @@ [:div.extensions__pdf-header [:div.extensions__pdf-toolbar [:div.inner - [:div.r.flex.buttons + ;; appearance + [:a.button + {:title (t :pdf/more-settings) + :on-click #(set-settings-visible! (not settings-visible?))} + (svg/adjustments 18)] - ;; appearance - [:a.button - {:title "More settings" - :on-click #(set-settings-visible! (not settings-visible?))} - (svg/adjustments 18)] + ;; selection + [:a.button + {:title (t :pdf/area-highlight-shortcut (if util/mac? "⌘" "Shift")) + :class (when area-mode? "is-active") + :on-click #(set-area-mode! (not area-mode?))} + (svg/icon-area 18)] - ;; selection - [:a.button - {:title (str "Area highlight (" (if util/mac? "⌘" "Shift") ")") - :class (when area-mode? "is-active") - :on-click #(set-area-mode! (not area-mode?))} - (svg/icon-area 18)] + [:a.button + {:title (t :pdf/highlight-mode) + :class (when highlight-mode? "is-active") + :on-click #(set-highlight-mode! (not highlight-mode?))} + (svg/highlighter 16)] - [:a.button - {:title "Highlight mode" - :class (when highlight-mode? "is-active") - :on-click #(set-highlight-mode! (not highlight-mode?))} - (svg/highlighter 16)] + ;; zoom + [:a.button + {:title (t :pdf/zoom-out) + :on-click (fn [] + (pdf-utils/zoom-out-viewer viewer) + (dispatch-extra-state!))} + (svg/zoom-out 18)] - ;; zoom - [:a.button - {:title "Zoom out" - :on-click (fn [] - (pdf-utils/zoom-out-viewer viewer) - (dispatch-extra-state!))} - (svg/zoom-out 18)] + [:a.button + {:title (t :pdf/zoom-in) + :on-click (fn [] + (pdf-utils/zoom-in-viewer viewer) + (dispatch-extra-state!))} + (svg/zoom-in 18)] - [:a.button - {:title "Zoom in" - :on-click (fn [] - (pdf-utils/zoom-in-viewer viewer) - (dispatch-extra-state!))} - (svg/zoom-in 18)] + [:a.button + {:title (t :pdf/auto-fit) + :on-click (fn [] + (pdf-utils/reset-viewer-auto! viewer) + (dispatch-extra-state!))} + (svg/auto-fit 18)] - [:a.button - {:title "Auto fit" - :on-click (fn [] - (pdf-utils/reset-viewer-auto! viewer) - (dispatch-extra-state!))} - (svg/auto-fit 18)] + [:a.button + {:title (t :pdf/outline) + :on-click #(set-outline-visible! (not outline-visible?))} + (svg/view-list 16)] - [:a.button - {:title "Outline" - :on-click #(set-outline-visible! (not outline-visible?))} - (svg/view-list 16)] + ;; search + [:a.button + {:title (t :pdf/search) + :on-click #(set-finder-visible! (not finder-visible?))} + (svg/search2 19)] - ;; search - [:a.button - {:title "Search" - :on-click #(set-finder-visible! (not finder-visible?))} - (svg/search2 19)] + ;; annotations + [:a.button + {:title (t :pdf/annotations-page) + :on-click (fn [] + (if asset-block + (pdf-assets/goto-annotations-page! (:pdf/current @state/state)) + (state/pub-event! [:asset/dialog-edit-external-url nil pdf-current])))} + (svg/annotations 16)] - ;; annotations - [:a.button - {:title "Annotations page" - :on-click (fn [] - (if asset-block - (pdf-assets/goto-annotations-page! (:pdf/current @state/state)) - (state/pub-event! [:asset/dialog-edit-external-url nil pdf-current])))} - (svg/annotations 16)] + ;; system window + [:a.button + {:title (if in-system-window? + (t :pdf/open-in-app-window) + (t :pdf/open-in-external-window)) + :on-click #(if in-system-window? + (pdf-windows/exit-pdf-in-system-window! true) + (on-external-window!))} + (ui/icon (if in-system-window? + "window-minimize" + "window-maximize"))] - ;; system window - [:a.button - {:title (if in-system-window? - "Open in app window" - "Open in external window") - :on-click #(if in-system-window? - (pdf-windows/exit-pdf-in-system-window! true) - (on-external-window!))} - (ui/icon (if in-system-window? - "window-minimize" - "window-maximize"))] + ;; pager + [:div.pager.flex.items-center.ml-1 - ;; pager - [:div.pager.flex.items-center.ml-1 + [:span.nu.flex.items-center.opacity-70 + [:input {:ref *page-ref + :type "number" + :min 1 + :max total-page-num + :class (util/classnames [{:is-long (> (util/safe-parse-int current-page-num) 999)}]) + :default-value current-page-num + :on-mouse-enter #(.select ^js (.-target %)) + :on-key-up (fn [^js e] + (let [^js input (.-target e) + value (util/safe-parse-int (.-value input))] + (set-current-page-num! value) + (when (and (= (.-keyCode e) 13) value (> value 0)) + (->> (if (> value total-page-num) total-page-num value) + (set! (. viewer -currentPageNumber))))))}] + [:small "/ " total-page-num]] - [:span.nu.flex.items-center.opacity-70 - [:input {:ref *page-ref - :type "number" - :min 1 - :max total-page-num - :class (util/classnames [{:is-long (> (util/safe-parse-int current-page-num) 999)}]) - :default-value current-page-num - :on-mouse-enter #(.select ^js (.-target %)) - :on-key-up (fn [^js e] - (let [^js input (.-target e) - value (util/safe-parse-int (.-value input))] - (set-current-page-num! value) - (when (and (= (.-keyCode e) 13) value (> value 0)) - (->> (if (> value total-page-num) total-page-num value) - (set! (. viewer -currentPageNumber))))))}] - [:small "/ " total-page-num]] + [:span.ct.flex.items-center + [:a.button {:on-click #(. viewer previousPage)} (svg/up-narrow)] + [:a.button {:on-click #(. viewer nextPage)} (svg/down-narrow)]]] - [:span.ct.flex.items-center - [:a.button {:on-click #(. viewer previousPage)} (svg/up-narrow)] - [:a.button {:on-click #(. viewer nextPage)} (svg/down-narrow)]]] + [:a.button + {:on-click #(if in-system-window? + (pdf-windows/exit-pdf-in-system-window! false) + (state/set-current-pdf! nil))} + (t :ui/close)]]] - [:a.button - {:on-click #(if in-system-window? - (pdf-windows/exit-pdf-in-system-window! false) - (state/set-current-pdf! nil))} - (t :close)]]] + ;; contents outline + (pdf-outline-&-highlights viewer outline-visible? set-outline-visible!) - ;; contents outline - (pdf-outline-&-highlights viewer outline-visible? set-outline-visible!) + ;; finder + (when finder-visible? + (pdf-finder viewer {:hide-finder! #(set-finder-visible! false)})) - ;; finder - (when finder-visible? - (pdf-finder viewer {:hide-finder! #(set-finder-visible! false)})) - - ;; settings - (when settings-visible? - (pdf-settings - viewer - viewer-theme - {:t t - :hide-settings! #(set-settings-visible! false) - :select-theme! #(set-viewer-theme! %)}))]])) + ;; settings + (when settings-visible? + (pdf-settings + viewer + viewer-theme + {:t t + :hide-settings! #(set-settings-visible! false) + :select-theme! #(set-viewer-theme! %)}))])) diff --git a/src/main/frontend/extensions/sci.cljs b/src/main/frontend/extensions/sci.cljs index 2a86ee2097..3028fc6cb6 100644 --- a/src/main/frontend/extensions/sci.cljs +++ b/src/main/frontend/extensions/sci.cljs @@ -4,7 +4,8 @@ - For :result-transform evaluation - For cljs evaluation in Src blocks - For evaluating {{function }} under query tables" - (:require [sci.core :as sci] + (:require [frontend.context.i18n :refer [t]] + [sci.core :as sci] [frontend.util :as util] [goog.dom] [goog.object] @@ -64,7 +65,7 @@ "Evaluate code with sci in a block context" [code block] [:div - [:code "Results:"] + [:code (t :view/results)] [:div.results.mt-1 (let [result (eval-string code {:bindings {'block block}})] (if (and (vector? result) (:hiccup (meta result))) diff --git a/src/main/frontend/extensions/video/youtube.cljs b/src/main/frontend/extensions/video/youtube.cljs index 45b4df1ae8..195d8ff730 100644 --- a/src/main/frontend/extensions/video/youtube.cljs +++ b/src/main/frontend/extensions/video/youtube.cljs @@ -2,6 +2,7 @@ (:require [cljs.core.async :refer [ (sub-zotero-config) keys set) default #{"default"}] @@ -56,7 +62,7 @@ (let [profile (get-profile)] (-> (sub-zotero-config) (get profile) - (get k (get default-settings k))))) + (get k (default-setting k))))) (defn zotero-full-path [item-key filename] @@ -70,7 +76,7 @@ (rum/defc zotero-imported-file [item-key filename] (if (string/blank? (setting :zotero-data-directory)) - [:p.warning "This is a zotero imported file, setting Zotero data directory would allow you to open the file in Logseq"] + [:p.warning (t :zotero/imported-file-warning)] (let [filename (read-string filename) full-path (zotero-full-path item-key filename)] (open-button full-path)))) @@ -78,7 +84,7 @@ (rum/defc zotero-linked-file [path] (if (string/blank? (setting :zotero-linked-attachment-base-directory)) - [:p.warning "This is a zotero linked file, setting Zotero linked attachment base directory would allow you to open the file in Logseq"] + [:p.warning (t :zotero/linked-file-warning)] (let [path (read-string path) full-path (str "file://" diff --git a/src/main/frontend/format/block.cljs b/src/main/frontend/format/block.cljs index b5c07a76a7..8e0f652927 100644 --- a/src/main/frontend/format/block.cljs +++ b/src/main/frontend/format/block.cljs @@ -5,6 +5,7 @@ (:require [cljs.cache :as cache] [clojure.string :as string] [frontend.common.cache :as common.cache] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.format :as format] [frontend.format.mldoc :as mldoc] @@ -40,7 +41,7 @@ and handles unexpected failure." (log/error :exception e) (state/pub-event! [:capture-error {:error e :payload {:type "Extract-blocks"}}]) - (notification/show! "An unexpected error occurred during block extraction." :error) + (notification/show! (t :block/extraction-error) :error) [])))) (defn parse-block diff --git a/src/main/frontend/handler/block.cljs b/src/main/frontend/handler/block.cljs index 2aa3f78cb6..31ab472974 100644 --- a/src/main/frontend/handler/block.cljs +++ b/src/main/frontend/handler/block.cljs @@ -3,6 +3,7 @@ [datascript.impl.entity :as de] [dommy.core :as dom] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db.async :as db-async] [frontend.db.model :as db-model] @@ -153,7 +154,7 @@ (when-let [block-id (:block/uuid block)] (let [block (or (db/entity [:block/uuid block-id]) block)] (if (ldb/recycled? block) - (notification/show! "Recycle is read-only." :warning) + (notification/show! (t :storage.recycle/readonly) :warning) (p/do! (db-async/deprecation-i18n-key + [config-key] + (when config-key + (if (= common-config/unused-in-db-graphs-deprecation + (get common-config/file-only-config config-key)) + :graph.validation/config-unused-in-db-graphs-warning + (keyword "graph.validation" + (str "config-" (normalize-config-key config-key) "-warning"))))) + +(defn- config-deprecation-message + [config-key] + (some-> config-key + config-key->deprecation-i18n-key + t)) + +(defn- deprecated-config-key? + [config-key] + (or (contains? common-config/file-only-config config-key) + (contains? #{:editor/command-trigger + :arweave/gateway} + config-key))) + (defn- error-list [errors class] (map (fn [[k v]] @@ -48,7 +78,9 @@ nested keys or positional errors e.g. tuples" [m schema path] (if-let [errors (->> m (m/explain schema) me/humanize)] (do - (config-notification-show! [:<> "The file " (file-link path) " has the following errors:"] + (config-notification-show! (i18n/interpolate-rich-text-node + (t :file.config/error-title) + [(file-link path)]) (error-list (humanize-more errors) "text-error")) false) true)) @@ -68,21 +100,24 @@ nested keys or positional errors e.g. tuples" true (and failed? (string/includes? (second parsed-body) "duplicate key")) (do - (notification/show! (gstring/format "The file '%s' has duplicate keys. The key '%s' is assigned multiple times." - path, (subs (second parsed-body) 36)) + (notification/show! (t :file/config-duplicate-keys path (subs (second parsed-body) 36)) :error) false) failed? (do - (config-notification-show! [:<> "Failed to read file " (file-link path)] - "Make sure your config is wrapped in {}. Also make sure that the characters '( { [' have their corresponding closing character ') } ]'.") + (config-notification-show! (i18n/interpolate-rich-text-node + (t :file.config/read-failed-title) + [(file-link path)]) + (t :file.config/read-failed-desc)) false) ;; Custom error message is better than malli's "invalid type" error (not (map? parsed-body)) (do - (config-notification-show! [:<> "The file " (file-link path) " s not valid."] - "Make sure the config is wrapped in {}.") + (config-notification-show! (i18n/interpolate-rich-text-node + (t :file.config/invalid-title) + [(file-link path)]) + (t :file.config/invalid-desc)) false) :else (validate-config-map parsed-body schema path)))) @@ -91,13 +126,7 @@ nested keys or positional errors e.g. tuples" "Detects config keys that will or have been deprecated" [path content] (let [body (try (edn/read-string content) - (catch :default _ ::failed-to-detect)) - warnings (merge - {:editor/command-trigger - "is no longer supported. Please use '/' and report bugs on it." - :arweave/gateway - "is no longer supported."} - common-config/file-only-config)] + (catch :default _ ::failed-to-detect))] (cond (= body ::failed-to-detect) (log/info :msg "Skip deprecation check since config is not valid edn") @@ -106,8 +135,13 @@ nested keys or positional errors e.g. tuples" (log/info :msg "Skip deprecation check since config is not a map") :else - (when-let [deprecations (seq (keep #(when (body (key %)) %) warnings))] - (config-notification-show! [:<> "The file " (file-link path) " has the following deprecations:"] + (when-let [deprecations (seq (keep (fn [config-key] + (when (deprecated-config-key? config-key) + [config-key (config-deprecation-message config-key)])) + (keys body)))] + (config-notification-show! (i18n/interpolate-rich-text-node + (t :file.config/deprecation-title) + [(file-link path)]) (error-list deprecations "text-warning") :warning false))))) diff --git a/src/main/frontend/handler/common/developer.cljs b/src/main/frontend/handler/common/developer.cljs index 5bb29a8c50..435e119d52 100644 --- a/src/main/frontend/handler/common/developer.cljs +++ b/src/main/frontend/handler/common/developer.cljs @@ -6,6 +6,7 @@ [clojure.string :as string] [datascript.impl.entity :as de] [frontend.db :as db] + [frontend.context.i18n :refer [t]] [frontend.format.mldoc :as mldoc] [frontend.handler.db-based.sync :as rtc-handler] [frontend.handler.notification :as notification] @@ -47,7 +48,7 @@ [:pre.code (str "ID: " (:db/id result) "\n" pull-data)] [:br] - (ui/button "Copy to clipboard" + (ui/button (t :ui/copy-to-clipboard) :on-click #(.writeText js/navigator.clipboard pull-data))] :success false))) @@ -61,7 +62,7 @@ (notification/show! [:div.ls-wrap-widen ;; Show clipboard at top since content is really long for pages - (ui/button "Copy to clipboard" + (ui/button (t :ui/copy-to-clipboard) :on-click #(.writeText js/navigator.clipboard ast-data)) [:br] [:pre.code ast-data]] @@ -73,17 +74,17 @@ ;; Use editor state to locate most recent block (if-let [block-uuid (:block-id (first (state/get-editor-args)))] (show-entity-data [:block/uuid block-uuid]) - (notification/show! "No block found" :warning))) + (notification/show! (t :block/not-found-warning) :warning))) (defn ^:export show-block-ast [] (if-let [{:block/keys [title format]} (:block (first (state/get-editor-args)))] (show-content-ast title (or format :markdown)) - (notification/show! "No block found" :warning))) + (notification/show! (t :block/not-found-warning) :warning))) (defn ^:export show-page-data [] (if-let [page-id (page-util/get-current-page-id)] (show-entity-data page-id) - (notification/show! "No page found" :warning))) + (notification/show! (t :page/not-found-warning) :warning))) (defn ^:export validate-db [] (state/") - ", remote: " (or remote-checksum "") - ". Downloaded " filename ".edn with " (count blocks) - " blocks and checksum attrs " (pr-str checksum-attrs) ".") + (t :graph.diagnostics/checksum-recomputed-success + recomputed-checksum + (or local-checksum "") + (or remote-checksum "") + filename + (count blocks) + (pr-str checksum-attrs)) :success false))) - (notification/show! "Unable to compute checksum diagnostics for current graph." :warning)))) + (notification/show! (t :graph.diagnostics/checksum-unavailable-warning) :warning)))) (p/catch (fn [error] (js/console.error "recompute-checksum-diagnostics failed:" error) - (notification/show! "Failed to compute graph checksum diagnostics." :error)))) - (notification/show! "No graph found" :warning))) + (notification/show! (t :graph.diagnostics/checksum-failed-error) :error)))) + (notification/show! (t :graph.diagnostics/no-graph-warning) :warning))) (defn ^:export export-client-ops-sqlite [] @@ -234,23 +237,22 @@ blob (js/Blob. #js [payload] (clj->js {:type "application/octet-stream"}))] (utils/saveToFile blob filename "sqlite") (notification/show! - (str "Client ops SQLite exported: " filename ".sqlite") + (t :graph.diagnostics/client-ops-export-success filename) :success false)) (notification/show! - (str "Client ops SQLite export failed: invalid payload type " - (pr-str (type data)) - ".") + (t :graph.diagnostics/client-ops-export-invalid-payload-warning + (pr-str (type data))) :warning)))) (p/catch (fn [error] (js/console.error "export-client-ops-sqlite failed:" error) - (notification/show! "Failed to export client ops SQLite." :error)))) - (notification/show! "No graph found" :warning))) + (notification/show! (t :graph.diagnostics/client-ops-export-failed-error) :error)))) + (notification/show! (t :graph.diagnostics/no-graph-warning) :warning))) (defn import-chosen-graph [repo] (p/let [_ (persist-db/ (p/let [res (ui-outliner-tx/transact! {:outliner-op :delete-page} (outliner-op/delete-page! page-uuid))] diff --git a/src/main/frontend/handler/db_based/export.cljs b/src/main/frontend/handler/db_based/export.cljs index 784f182bcc..f99e432625 100644 --- a/src/main/frontend/handler/db_based/export.cljs +++ b/src/main/frontend/handler/db_based/export.cljs @@ -2,6 +2,7 @@ "Handles DB graph exports and imports across graphs" (:require [cljs.pprint :as pprint] [clojure.string :as string] + [frontend.context.i18n :refer [t]] [frontend.handler.notification :as notification] [frontend.state :as state] [frontend.util :as util] @@ -31,8 +32,8 @@ (when-not (:export-edn-error result) (.writeText js/navigator.clipboard pull-data) (println pull-data) - (notification/show! "Copied block's data!" :success))) - (notification/show! "No block found" :warning))) + (notification/show! (t :export/block-data-copied) :success))) + (notification/show! (t :block/not-found-warning) :warning))) (defn export-view-nodes-data [rows {:keys [group-by?]}] (p/let [result (js failed))) (when (and (pos? asset-total) (not= asset-total (+ copied (count failed)))) (notification/show! - (str "Imported " copied " of " asset-total " assets. See console for details.") + (t :import/assets-import-partial copied asset-total) :warning false)) (state/set-state! :graph/importing nil) (state/set-state! :graph/importing-state nil) @@ -169,7 +170,7 @@ (js/console.error e) (state/set-state! :graph/importing nil) (state/set-state! :graph/importing-state nil) - (notification/show! (str "Zip import failed: " (.-message e)) :error))))) + (notification/show! (t :import/zip-import-error (.-message e)) :error))))) (defn import-from-debug-transit! [bare-graph-name raw finished-ok-handler] @@ -197,7 +198,7 @@ (edn/read-string file-body) (catch :default e (js/console.error e) - (notification/show! "The given EDN file is not valid EDN. Please fix and try again." + (notification/show! (t :import/invalid-edn-file) :error) (finished-error-handler) nil))] @@ -218,7 +219,7 @@ (p/catch (fn [e] (js/console.error e) - (notification/show! (str "Unexpected error: " (.-message e)) + (notification/show! (t :import/unexpected-error (.-message e)) :error) (finished-error-handler))))))) @@ -229,12 +230,12 @@ (if-let [eid (:block-id (first (state/get-editor-args)))] (let [ent (db/entity [:block/uuid eid])] (if-not (:block/page ent) - {:error "Can't import block into a non-block entity. Please import block elsewhere."} + {:error (t :import/cannot-import-block-into-non-block-entity)} (merge (select-keys ent [:block/uuid]) {:block/page (select-keys (:block/page ent) [:block/uuid])}))) - (notification/show! "No block found" :warning)))] + (notification/show! (t :block/not-found-warning) :warning)))] (cond (or (= ::invalid-import export-map) (not (map? export-map))) - (notification/show! "The submitted EDN data is invalid! Please fix and try again." :warning) + (notification/show! (t :import/submitted-edn-invalid) :warning) (:error block) (do (notification/show! (:error block) :error) @@ -249,7 +250,7 @@ (ui-handler/re-render-root!) (if error (notification/show! error :error) - (notification/show! "Import successful!" :success)))))) + (notification/show! (t :import/successful) :success)))))) (defn ^:export import-edn-data-dialog "Displays dialog which allows users to paste and import sqlite.build EDN Data" @@ -257,7 +258,7 @@ (let [import-inputs (atom {:import-data "" :import-block? false})] (shui/dialog-open! [:div - [:label.flex.my-2.text-lg "Import EDN Data"] + [:label.flex.my-2.text-lg (t :command.misc/import-edn-data)] #_[:label.block.flex.items-center.py-3 (shui/checkbox {:on-checked-change #(swap! import-inputs update :import-block? not)}) [:small.pl-2 (str "Import into current block")]] @@ -268,4 +269,4 @@ :on-change (fn [^js e] (swap! import-inputs assoc :import-data (util/evalue e)))}) (shui/button {:class "mt-3" :on-click (partial import-edn-data-from-form import-inputs)} - "Import")]))) + (t :import/title))]))) diff --git a/src/main/frontend/handler/db_based/page.cljs b/src/main/frontend/handler/db_based/page.cljs index 198154b47e..7cc09ac546 100644 --- a/src/main/frontend/handler/db_based/page.cljs +++ b/src/main/frontend/handler/db_based/page.cljs @@ -2,6 +2,7 @@ "DB graph only page util fns" (:require [clojure.string :as string] [datascript.impl.entity :as de] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.db.async :as db-async] [frontend.handler.common.page :as page-common-handler] @@ -46,11 +47,11 @@ "Converts a Page to a Tag" [page-entity] (cond (db/page-exists? (:block/title page-entity) #{:logseq.class/Tag}) - (notification/show! (str "A tag with the name \"" (:block/title page-entity) "\" already exists.") :warning false) + (notification/show! (t :page.convert/page-to-tag-duplicate (:block/title page-entity)) :warning false) (:block/parent page-entity) - (notification/show! "Namespaced pages can't be tags" :error false) + (notification/show! (t :page.convert/page-to-tag-namespaced) :error false) (ldb/built-in? page-entity) - (notification/show! "Built-in pages can't be used as tags" :error) + (notification/show! (t :page.convert/page-to-tag-built-in) :error) :else ;; FIXME: should move to worker (let [txs [(db-class/build-new-class (db/get-db) @@ -64,12 +65,12 @@ (defn convert-tag-to-page! [entity] (cond (db/page-exists? (:block/title entity) #{:logseq.class/Page}) - (notification/show! (str "A page with the name \"" (:block/title entity) "\" already exists.") :warning false) + (notification/show! (t :page.convert/tag-to-page-duplicate (:block/title entity)) :warning false) (ldb/built-in? entity) - (notification/show! "Built-in tags can't be converted to pages" :error) + (notification/show! (t :page.convert/tag-to-page-built-in) :error) :else (if (seq (:logseq.property.class/_extends entity)) - (notification/show! "This tag cannot be converted because it has tag children. All tag children must be removed or converted before converting this tag." :error false) + (notification/show! (t :page.convert/tag-to-page-has-children) :error false) (p/let [objects (db-async/ (shui/dialog-confirm! - "Converting a tag to page also removes its tag properties and its tag from all nodes tagged with it. Are you ok with that?" + (t :page.convert/tag-to-page-confirm-desc) {:id :convert-tag-to-page - :data-reminder :ok}) + :data-reminder :ok + :data-reminder-label (t :ui/dont-remind-me-again) + :cancel-label (t :ui/cancel) + :ok-label (t :ui/confirm)}) (p/then convert-fn))))))) (defn > checksum (db-async/ file (assets-handler/exceed-limit-size?)) - (notification/show! [:div "Asset size shouldn't be larger than 100M"] + (notification/show! [:div (t :asset/size-too-large)] :warning false) (throw (ex-info "Asset size shouldn't be larger than 100M" {:file-name file-name})))] @@ -1367,7 +1367,7 @@ Returns: asset entities" [repo files & {:keys [pdf-area? last-edit-block save-to-page]}] (p/let [[repo-dir asset-dir-rpath] (assets-handler/ensure-assets-dir! repo) - today-page-name (date/today) + today-page-name (db-model/get-today-journal-title) today-page-e (db-model/get-journal-page today-page-name) today-page (if (nil? today-page-e) (state/pub-event! [:page/create today-page-name]) @@ -1489,7 +1489,7 @@ (= prefix block-ref/left-parens) (notification/show! - "To reference a node, please use `[[]]`." + (t :editor/reference-node-use-page-ref) :warning) (= prefix block-ref/left-parens) @@ -1545,11 +1545,11 @@ :enable-snippet? false :page-only? page-only?}) matched (remove (fn [b] (= (:block/uuid b) (:block/uuid block))) result) + extract-fn #(str (:block/title %) " " (:nlp-original-title %)) result' (-> (concat matched (when nlp-pages? - (map (fn [title] {:block/title title :nlp-date? true :page? true}) - date/nlp-pages))) - (search/fuzzy-search q {:extract-fn :block/title :limit 50})) + (date/nlp-pages-i18n :nlp-date? true :page? true))) + (search/fuzzy-search q {:extract-fn extract-fn :limit 50})) result'' (let [ids (set (map :block/uuid result'))] (concat result' (remove (fn [item] (ids (:block/uuid item))) matched)))] (sort-by (complement :page?) result''))) @@ -2002,7 +2002,7 @@ (catch :default ^js/Error e (notification/show! - (util/format "Template insert error: %s" (.-message e)) + (t :editor/template-insert-error (.-message e)) :error))))))))) (defn template-on-chosen-handler @@ -2541,7 +2541,7 @@ (= key commands/hashtag)) (do (util/stop e) - (notification/show! "Page name can't include \"#\"." :warning)) + (notification/show! (t :page.validation/name-no-hash) :warning)) ;; stop accepting edits if the new block is not created yet (some? @(:editor/async-unsaved-chars @state/state)) (do @@ -3081,7 +3081,7 @@ :or {collapse? false expanded? false incremental? true root-block nil}}] (when-let [page (or page (state/get-current-page) - (date/today))] + (db-model/get-today-journal-title))] (p/let [block-id (or root-block (parse-uuid page)) page-id (let [page-entity (db/get-page page)] (when (ldb/page? page-entity) @@ -3535,7 +3535,7 @@ (defn quick-add-blocks! [] - (let [today (db/get-page (date/today)) + (let [today (db-model/get-today-journal-page) add-page (ldb/get-built-in-page (db/get-db) common-config/quick-add-page-name)] (p/do! (save-current-block!) @@ -3549,7 +3549,7 @@ (state/close-modal!) (shui/popup-hide!) (when (seq children) - (notification/show! "Blocks added to today!" :success)))))))) + (notification/show! (t :journal/add-blocks-to-today-success) :success)))))))) (defn quick-add [] diff --git a/src/main/frontend/handler/events.cljs b/src/main/frontend/handler/events.cljs index 93590304f4..3973f886d8 100644 --- a/src/main/frontend/handler/events.cljs +++ b/src/main/frontend/handler/events.cljs @@ -10,6 +10,7 @@ [frontend.commands :as commands] [frontend.components.rtc.indicator :as indicator] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.date :as date] [frontend.db :as db] [frontend.db.async :as db-async] @@ -357,7 +358,7 @@ (defmethod handle :rtc/remote-graph-gone [_] (p/do! - (notification/show! "This graph has been removed from Logseq Sync." :warning false) + (notification/show! (t :graph/removed-from-sync) :warning false) (rtc-handler/ " error-code) :error))))) + (str "[" (t :plugin/checked) "]<" title "> " error-code) :error))))) (if (and updated? downloading?) ;; try to start consume downloading item @@ -251,14 +252,14 @@ (do (reaction-handler/toggle-reaction! target-block-id emoji-id) (shui/popup-hide! popup-id)) - (notification/show! "Please pick an emoji reaction." :warning))))] + (notification/show! (t :block.reaction/emoji-required-warning) :warning))))] (when (and target-block-id target') (shui/popup-show! target' (fn [{:keys [id]}] (icon-component/icon-search {:on-chosen (fn [_e icon _keep-popup?] (on-pick id icon)) - :tabs [[:emoji "Emojis"]] + :tabs [[:emoji (t :icon/tab-emojis)]] :default-tab :emoji :show-used? true :icon-value nil})) @@ -275,7 +276,7 @@ (shui/dialog-open! repo/new-db-graph {:id :new-db-graph - :title [:h2 "Create a new graph"] + :title [:h2 (t :graph/create-new)] :align (if (util/mobile?) :top :center) :style {:max-width "500px"}})) @@ -325,7 +326,7 @@ (shui/dialog-open! (assets/edit-external-url-content asset-block pdf-current) {:id :edit-external-asset-source-dialog - :title (str (if asset-block "Edit" "Create") " asset") + :title (if asset-block (t :asset/edit-title) (t :asset/create-title)) :center? true})) (defn ensure-user-rsa-keys-if-possible! diff --git a/src/main/frontend/handler/export.cljs b/src/main/frontend/handler/export.cljs index 3fd8241311..1d1f84a16b 100644 --- a/src/main/frontend/handler/export.cljs +++ b/src/main/frontend/handler/export.cljs @@ -2,6 +2,7 @@ (:require ["/frontend/utils" :as utils] [clojure.string :as string] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.db :as db] [frontend.extensions.zip :as zip] [frontend.handler.assets :as assets-handler] @@ -44,20 +45,20 @@ (defn db-based-export-repo-as-zip! [repo] - (state/pub-event! [:dialog/export-zip "Preparing zip"]) + (state/pub-event! [:dialog/export-zip (t :export/preparing-zip)]) (-> (p/let [db-data (persist-db/ chosen - (string/replace-first (str (t :new-tag) " ") "") - (string/replace-first (str (t :new-page) " ") "")) + (string/replace-first (str (t :editor/new-tag) " ") "") + (string/replace-first (str (t :editor/new-page) " ") "")) wrapped? (= page-ref/left-brackets (common-util/safe-subs edit-content (- pos 2) pos)) chosen-last-part (if (text/namespace-page? chosen) (text/get-namespace-last-part chosen) @@ -227,9 +227,10 @@ (throw (ex-info "No chosen item" {:chosen chosen-result}))) chosen (:block/title chosen-result) - chosen' (string/replace-first chosen (str (t :new-page) " ") "") + chosen' (string/replace-first chosen (str (t :editor/new-page) " ") "") + nlp-title (or (:nlp-original-title chosen-result) chosen') [chosen' chosen-result] (or (when (and (:nlp-date? chosen-result) (not (de/entity? chosen-result))) - (when-let [result (date/nld-parse chosen')] + (when-let [result (date/nld-parse nlp-title)] (let [d (doto (goog.date.DateTime.) (.setTime (.getTime result))) gd (goog.date.Date. (.getFullYear d) (.getMonth d) (.getDate d)) page (date/js-date->journal-title gd)] @@ -288,18 +289,18 @@ (not config/publishing?)) (when-let [title (date/today)] (state/set-today! title) - (p/let [today-page (util/page-name-sanity-lc title) - page (ldb/get-journal-page (db/get-db) (date/today-name))] + (p/let [today-page-lc-title (util/page-name-sanity-lc title) + page (db/get-today-journal-page)] (when-not page (p/let [result ( msg + (keyword? msg) + name) pending? (seq (:plugin/updates-pending @state/state))] (if (and only-check pending?) @@ -373,9 +376,10 @@ ;; notify human tips (notification/show! (str - (if (= :error type) "[Error]" "") + (if (= :error type) (t :ui/error) "") "<" (:id payload) "> " - msg) type))) + msg) + type))) (when-not fake-error? (js/console.error "Update Error:" (:error-code payload)))) @@ -651,12 +655,13 @@ [:h1.opacity-90.font-bold.pb-1.flex.item-center.gap-1 [:span.text-red-rx-10.flex.items-center (shui/tabler-icon "alert-triangle-filled" {:size 20})] [:span name " " [:code "#" (str pid)]]]) - [:p - "If any plugin is unavailable or you think it contains malicious code, - please email " [:a.hover:underline {:href (str "mailto://support@logseq.com?subject=Report plugin from Logseq Marketplace" - (when pid (str " (#" pid ")")))} "support@logseq.com"] - " . Mention the name of the plugin and the URL of its GitHub repository. - The Logseq team usually responds within a business day."]]))) + (into [:p] + (interpolate-rich-text + (t :plugin/report-modal-desc) + [[:a.hover:underline + {:href (str "mailto://support@logseq.com?subject=Report plugin from Logseq Marketplace" + (when pid (str " (#" pid ")")))} + "support@logseq.com"]]))]))) (defn parse-user-md-content [content {:keys [url]}] @@ -685,12 +690,12 @@ (and (string/blank? (string/trim content)) (throw (js/Error. "blank readme content"))) (state/set-state! :plugin/active-readme [content item]) (shui/dialog-open! (fn [_] (display)) - {:label "plugin-readme" + {:label :plugin-readme :content-props {:class "max-h-[86vh] overflow-auto"}})) (p/catch #(do (js/console.warn %) - (notification/show! "No README content." :warning)))) + (notification/show! (t :plugin/readme-empty-warning) :warning)))) ;; market - (shui/dialog-open! (fn [_] (display item nil)) {:label "plugin-readme"})))) + (shui/dialog-open! (fn [_] (display item nil)) {:label :plugin-readme})))) (defn load-unpacked-plugin [] @@ -847,7 +852,7 @@ (when auto-checking? (set-auto-checking! false)) (when (or auto-checking? (not user-checking?)) - ;; TODO: too many requests may be limited by Github api + ;; TODO: too many requests may be limited by GitHub api (when-let [plugins (seq (take 32 (state/get-enabled?-installed-plugins theme?)))] (->> plugins (map (fn [v] [(keyword (:id v)) v])) @@ -947,7 +952,7 @@ ;; components (rum/defc lsp-indicator < rum/reactive [] - (let [text (or (state/sub :plugin/indicator-text) (when (not (util/electron?)) "LOADING"))] + (let [text (or (state/sub :plugin/indicator-text) (when (not (util/electron?)) (t :plugin/loading-indicator)))] (when-not (true? text) [:div.flex.align-items.justify-center.h-screen.w-full.preboot-loading [:span.flex.items-center.justify-center.flex-col @@ -989,7 +994,7 @@ (.on "beforeload" (fn [^js pl] (let [text (when (util/electron?) - (util/format "Load plugin: %s..." (.-id pl)))] + (t :plugin/load-plugin-indicator (.-id pl)))] (some->> text (state/set-state! :plugin/indicator-text))))) (.on "reloaded" @@ -1094,7 +1099,7 @@ (p/catch (fn [^js e] (log/error :setup-plugin-system-error e) - (state/set-state! :plugin/indicator-text (str "Fatal: " e)))))) + (state/set-state! :plugin/indicator-text (t :plugin/fatal-error (str e))))))) (defn setup! "setup plugin core handler" diff --git a/src/main/frontend/handler/plugin_config.cljs b/src/main/frontend/handler/plugin_config.cljs index cd650f0222..d0365e92ea 100644 --- a/src/main/frontend/handler/plugin_config.cljs +++ b/src/main/frontend/handler/plugin_config.cljs @@ -9,6 +9,7 @@ when a plugin is installed, updated or removed" [clojure.pprint :as pprint] [clojure.set :as set] [frontend.fs :as fs] + [frontend.context.i18n :refer [t]] [frontend.handler.common.plugin :as plugin-common-handler] [frontend.handler.global-config :as global-config-handler] [frontend.handler.notification :as notification] @@ -84,7 +85,7 @@ returns map of plugins to install and uninstall" edn-plugins (edn/read-string edn-plugins*)] (if-let [errors (->> edn-plugins (m/explain plugin-config-schema/Plugins-edn) me/humanize)] (do - (notification/show! "Invalid plugins.edn provided. See javascript console for specific errors" + (notification/show! (t :plugin/invalid-plugins-edn) :error) (log/error :plugin-edn-errors errors)) (let [plugins-to-change (determine-plugins-to-change @@ -93,7 +94,7 @@ returns map of plugins to install and uninstall" (state/pub-event! [:go/plugins-from-file plugins-to-change])))) (fn [e] (if (= :reader-exception (:type (ex-data e))) - (notification/show! "Malformed plugins.edn provided. Please check the file has correct edn syntax." + (notification/show! (t :plugin/malformed-plugins-edn) :error) (log/error :unexpected-error e))))) diff --git a/src/main/frontend/handler/publish.cljs b/src/main/frontend/handler/publish.cljs index 0ba580fddc..b2327e5400 100644 --- a/src/main/frontend/handler/publish.cljs +++ b/src/main/frontend/handler/publish.cljs @@ -3,6 +3,7 @@ (:require [cljs-bean.core :as bean] [clojure.string :as string] [frontend.config :as config] + [frontend.context.i18n :as i18n :refer [t]] [frontend.db :as db] [frontend.db.model :as db-model] [frontend.fs :as fs] @@ -393,17 +394,19 @@ (when url (notification/show! [:div.inline - [:span "Published to: "] - [:a {:target "_blank" - :href url} - url]] + (into [:span] + (i18n/interpolate-rich-text + (t :publish/published-to) + [[:a {:target "_blank" + :href url} + url]]))] :success false)))))) (p/catch (fn [error] (js/console.error error) - (notification/show! "Publish failed." :error)))) - (notification/show! "Publish failed." :error))) - (notification/show! "Publish failed: invalid page." :error))))) + (notification/show! (t :publish/publish-error) :error)))) + (notification/show! (t :publish/publish-error) :error))) + (notification/show! (t :publish/invalid-page-error) :error))))) (defn unpublish-page! [page] @@ -424,12 +427,12 @@ (do (property-handler/remove-block-property! (:db/id page) :logseq.property.publish/published-url) - (notification/show! "Unpublished." :success false)) + (notification/show! (t :publish/unpublished) :success false)) (p/let [body (.text resp)] (throw (ex-info "Unpublish failed" {:status (.-status resp) :body body}))))) (p/catch (fn [error] (js/console.error error) - (notification/show! "Unpublish failed." :error)))) - (notification/show! "Unpublish failed: missing page id." :error))))) + (notification/show! (t :publish/unpublish-error) :error)))) + (notification/show! (t :publish/unpublish-missing-page-id) :error))))) diff --git a/src/main/frontend/handler/reaction.cljs b/src/main/frontend/handler/reaction.cljs index 267b80b4b5..a8b5035926 100644 --- a/src/main/frontend/handler/reaction.cljs +++ b/src/main/frontend/handler/reaction.cljs @@ -1,6 +1,7 @@ (ns frontend.handler.reaction "Reactions handler" - (:require [frontend.handler.notification :as notification] + (:require [frontend.context.i18n :refer [t]] + [frontend.handler.notification :as notification] [frontend.handler.user :as user-handler] [frontend.modules.outliner.op :as outliner-op] [frontend.modules.outliner.ui :as ui-outliner-tx] @@ -14,5 +15,5 @@ (ui-outliner-tx/transact! {:outliner-op :toggle-reaction} (outliner-op/toggle-reaction! target-uuid emoji-id user-uuid))) (do - (notification/show! "Unsupported reaction emoji." :warning) + (notification/show! (t :block.reaction/unsupported-emoji-warning) :warning) false))) diff --git a/src/main/frontend/handler/repo.cljs b/src/main/frontend/handler/repo.cljs index 9d3852f4dd..e93de0961e 100644 --- a/src/main/frontend/handler/repo.cljs +++ b/src/main/frontend/handler/repo.cljs @@ -3,6 +3,7 @@ (:require [clojure.string :as string] [electron.ipc :as ipc] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.date :as date] [frontend.db :as db] [frontend.db.persist :as db-persist] @@ -39,13 +40,12 @@ (do (state/set-current-repo! nil) (when-let [graph (:url (first (state/get-repos)))] - (notification/show! (str "Removed graph " - (pr-str (text-util/get-graph-name-from-path url)) - ". Redirecting to graph " - (pr-str (text-util/get-graph-name-from-path graph))) + (notification/show! (t :graph/removed-and-redirecting + (text-util/get-graph-name-from-path url) + (text-util/get-graph-name-from-path graph)) :success) (state/pub-event! [:graph/switch graph {:persist? false}]))) - (notification/show! (str "Removed graph " (pr-str (text-util/get-graph-name-from-path url))) :success)))))) + (notification/show! (t :graph/removed (text-util/get-graph-name-from-path url)) :success)))))) (defn start-repo-db-if-not-exists! [repo & {:as opts}] @@ -154,7 +154,7 @@ (prn "New db created: " full-graph-name) full-graph-name) (p/catch (fn [error] - (notification/show! "Create graph failed." :error) + (notification/show! (t :graph/create-error) :error) (js/console.error error))))) (defn new-db! @@ -164,7 +164,7 @@ (let [full-graph-name (str config/db-version-prefix graph)] (if (graph-already-exists? graph) (state/pub-event! [:notification/show - {:content (str "The graph '" graph "' already exists. Please try again with another name.") + {:content (t :graph/already-exists-error graph) :status :error}]) (create-db full-graph-name opts))))) @@ -173,5 +173,5 @@ (p/do! (state/ Logseq." + (t :mobile/microphone-access-denied) :warning) (shui/popup-hide!)) nil)))) diff --git a/src/main/frontend/mobile/camera.cljs b/src/main/frontend/mobile/camera.cljs index 7cf7aced13..79b3947a0c 100644 --- a/src/main/frontend/mobile/camera.cljs +++ b/src/main/frontend/mobile/camera.cljs @@ -1,6 +1,7 @@ (ns frontend.mobile.camera (:require ["@capacitor/camera" :refer [Camera CameraResultType]] [clojure.string :as string] + [frontend.context.i18n :refer [t]] [frontend.date :as date] [frontend.handler.editor :as editor-handler] [frontend.handler.notification :as notification] @@ -17,7 +18,7 @@ (defn- notify-camera-permission-denied! [] (notification/show! - "Camera access is denied. Enable it in Settings > Logseq." + (t :mobile/camera-access-denied) :warning)) (defn- camera-denied-error? diff --git a/src/main/frontend/mobile/footer.cljs b/src/main/frontend/mobile/footer.cljs index 7518577e8f..7383025b1e 100644 --- a/src/main/frontend/mobile/footer.cljs +++ b/src/main/frontend/mobile/footer.cljs @@ -1,6 +1,6 @@ (ns frontend.mobile.footer (:require [clojure.string :as string] - [frontend.date :as date] + [frontend.db :as db] [frontend.handler.editor :as editor-handler] [frontend.mobile.util :as mobile-util] [frontend.state :as state] @@ -30,7 +30,7 @@ (mobile-bar-command state/toggle-document-mode! "notes") (mobile-bar-command #(let [page (or (state/get-current-page) - (string/lower-case (date/journal-name)))] + (string/lower-case (db/get-today-journal-title)))] (editor-handler/api-insert-new-block! "" {:page page diff --git a/src/main/frontend/mobile/intent.cljs b/src/main/frontend/mobile/intent.cljs index 81d854708d..14361549b6 100644 --- a/src/main/frontend/mobile/intent.cljs +++ b/src/main/frontend/mobile/intent.cljs @@ -8,6 +8,7 @@ [clojure.set :as set] [clojure.string :as string] [frontend.config :as config] + [frontend.context.i18n :refer [interpolate-rich-text-node t]] [frontend.date :as date] [frontend.db :as db] [frontend.handler.assets :as assets-handler] @@ -53,13 +54,13 @@ (defn open-or-share-file "Share file to mobile platform" [uri] - (p/let [options [{:title "Open" + (p/let [options [{:title (t :ui/open) :style "DEFAULT"} - {:title "Share"} - {:title "Cancel" + {:title (t :mobile.intent/share)} + {:title (t :ui/cancel) :style "CANCEL"}] - result (.showActions ActionSheet (clj->js {:title "File Options" - :message "Select an option to perform" + result (.showActions ActionSheet (clj->js {:title (t :mobile.intent/file-options) + :message (t :mobile.intent/select-option-prompt) :options options})) index (.-index result)] @@ -67,8 +68,8 @@ (if (and (= index 0) (mobile-util/native-android?)) (.openFile mobile-util/folder-picker (clj->js {:uri uri})) (.share Share (clj->js {:url uri - :dialogTitle "Open file with your favorite app" - :title "Open file with your favorite app"})))))) + :dialogTitle (t :mobile.intent/open-with-app) + :title (t :mobile.intent/open-with-app)})))))) (defn- is-link [url] @@ -121,16 +122,16 @@ (defn- handle-received-media [result] (p/let [{:keys [url]} result - page (or (state/get-current-page) (string/lower-case (date/journal-name))) + page (or (state/get-current-page) (string/lower-case (db/get-today-journal-title))) format (db/get-page-format page)] (-> (embed-asset-file url format) (p/catch (fn [error] (log/error :share-import-media-failed {:error error :url url}) - (notification/show! "Failed to import the shared media. Please try again." :error false)))))) + (notification/show! (t :mobile.share/media-import-error) :error false)))))) (defn- handle-received-application [result] (p/let [{:keys [url type]} result - page (or (state/get-current-page) (string/lower-case (date/journal-name))) + page (or (state/get-current-page) (string/lower-case (db/get-today-journal-title))) format (db/get-page-format page) application-type (last (string/split type "/")) content (cond @@ -143,10 +144,11 @@ :else (notification/show! [:div - (str "Import " application-type " file has not been supported. You can report it on ") - [:a {:href "https://github.com/logseq/logseq/issues" - :target "_blank"} "Github"] - ". We will look into it soon."] + (interpolate-rich-text-node + (t :mobile.share/unsupported-import-type) + [application-type + [:a {:href "https://github.com/logseq/logseq/issues" + :target "_blank"} "GitHub"]])] :warning false))] (when content (if (state/get-edit-block) @@ -181,7 +183,7 @@ result) (p/catch (fn [error] (log/error :handle-asset-file {:error error :url url}) - (notification/show! "Failed to import the shared file. Please try again." :error false))))) + (notification/show! (t :mobile.share/file-import-error) :error false))))) (defn- handle-payload-resource [{:keys [type name ext url] :as resource} format] @@ -194,10 +196,10 @@ :else (notification/show! [:div - "Parsing current shared content are not supported. Please report the following codes on " - [:a {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml" - :target "_blank"} "Github"] - ". We will look into it soon." + (interpolate-rich-text-node + (t :mobile.share/unsupported-content-warning) + [[:a {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml" + :target "_blank"} "GitHub"]]) [:pre.code (with-out-str (pprint/pprint resource))]] :warning false)) (cond @@ -207,17 +209,17 @@ :else (notification/show! [:div - "Parsing current shared content are not supported. Please report the following codes on " - [:a {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml" - :target "_blank"} "Github"] - ". We will look into it soon." + (interpolate-rich-text-node + (t :mobile.share/unsupported-content-warning) + [[:a {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml" + :target "_blank"} "GitHub"]]) [:pre.code (with-out-str (pprint/pprint resource))]] :warning false)))) (defn handle-payload "Mobile share intent handler v2, use complex payload to support more types of content." [payload] ;; use :text template, use {url} as rich text placeholder - (p/let [page (or (state/get-current-page) (string/lower-case (date/journal-name))) + (p/let [page (or (state/get-current-page) (string/lower-case (db/get-today-journal-title))) format (db/get-page-format page) template (get-in (state/get-config) @@ -238,7 +240,7 @@ (keyword (:ext resource)))) resources))) (let [time (date/get-current-time) - date-ref-name (date/today) + date-ref-name (db/get-today-journal-title) content (-> template (string/replace "{time}" time) (string/replace "{date}" date-ref-name) @@ -280,10 +282,10 @@ :else (notification/show! [:div - "Parsing current shared content are not supported. Please report the following codes on " - [:a {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml" - :target "_blank"} "Github"] - ". We will look into it soon." + (interpolate-rich-text-node + (t :mobile.share/unsupported-content-warning) + [[:a {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml" + :target "_blank"} "GitHub"]]) [:pre.code (with-out-str (pprint/pprint result))]] :warning false))))) (defn handle-received [] diff --git a/src/main/frontend/modules/outliner/op.cljs b/src/main/frontend/modules/outliner/op.cljs index df28534303..0e9325e41a 100644 --- a/src/main/frontend/modules/outliner/op.cljs +++ b/src/main/frontend/modules/outliner/op.cljs @@ -1,8 +1,8 @@ (ns frontend.modules.outliner.op "Build outliner ops" (:require [datascript.impl.entity :as de] - [frontend.handler.user :as user-handler] - [frontend.db.utils :as db-utils])) + [frontend.db.utils :as db-utils] + [frontend.handler.user :as user-handler])) (defn- current-user-delete-opts [opts] diff --git a/src/main/frontend/modules/shortcut/config.cljs b/src/main/frontend/modules/shortcut/config.cljs index 0a779392be..40975bce76 100644 --- a/src/main/frontend/modules/shortcut/config.cljs +++ b/src/main/frontend/modules/shortcut/config.cljs @@ -38,12 +38,15 @@ ;; almost everywhere else they are not which could cause needless conflicts ;; with other config keys -;; To add a new entry to this map, first add it here and then a description for -;; it under :commands keys of frontend.dicts.en/dicts +;; To add a new entry to this map, first add it here and then provide a default +;; English label either via a matching `:command.*` key in `en.edn` or via +;; inline `:desc` for developer-only labels that intentionally stay out of i18n. ;; A shortcut is a map with the following keys: ;; * :binding - A string representing a keybinding. Avoid using single letter ;; shortcuts to allow chords that start with those characters ;; * :fn - Fn or a qualified keyword that represents a fn +;; * :desc - Optional default English label for non-translated developer-only +;; shortcuts such as `(Dev)` commands ;; * :inactive - Optional boolean to disable a shortcut for certain conditions ;; e.g. a given platform or feature condition (def ^:large-vars/data-var all-built-in-keyboard-shortcuts @@ -372,11 +375,11 @@ :inactive config/publishing? :fn #(state/pub-event! [:publish/open-dialog])} - :command/run {:binding "mod+shift+1" + :shell/run {:binding "mod+shift+1" :inactive (not (util/electron?)) :fn #(do (editor-handler/escape-editing {:select? true}) - (state/pub-event! [:command/run]))} + (state/pub-event! [:shell/run]))} :go/home {:binding "g h" :fn #(route-handler/redirect-to-home!)} @@ -429,7 +432,7 @@ :ui/toggle-contents {:binding "alt+shift+c" :fn ui-handler/toggle-contents!} - :command/toggle-favorite {:binding "mod+shift+f" + :page/toggle-favorite {:binding "mod+shift+f" :fn page-handler/toggle-favorite!} :editor/quick-add {:binding (if mac? "mod+e" "mod+alt+e") @@ -474,22 +477,27 @@ :fn #(state/pub-event! [:ui/toggle-appearance])} :dev/gc-graph {:binding [] + :desc "(Dev) Garbage collect graph (remove unused data in SQLite)" :inactive (not (state/developer-mode?)) :fn #(repo-handler/gc-graph! (state/get-current-repo))} :dev/replace-graph-with-db-file {:binding [] + :desc "(Dev) Replace graph with its db.sqlite file" :inactive (or (not (util/electron?)) (not (state/developer-mode?))) :fn :frontend.handler.common.developer/replace-graph-with-db-file} :dev/show-block-data {:binding [] + :desc "(Dev) Show block data" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/show-block-data} :dev/show-block-ast {:binding [] + :desc "(Dev) Show block AST" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/show-block-ast} :dev/show-page-data {:binding [] + :desc "(Dev) Show page data" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/show-page-data} @@ -506,28 +514,42 @@ :fn :frontend.handler.db-based.import/import-edn-data-dialog} :dev/validate-db {:binding [] + :desc "(Dev) Validate current graph" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/validate-db} :dev/recompute-checksum {:binding [] + :desc "(Dev) Recompute graph checksum" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/recompute-checksum-diagnostics} :dev/export-client-ops-sqlite {:binding [] + :desc "(Dev) Export client ops sqlite" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/export-client-ops-sqlite} :dev/rtc-stop {:binding [] + :desc "(Dev) RTC Stop" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/rtc-stop} :dev/rtc-start {:binding [] + :desc "(Dev) RTC Start" :inactive (not (state/developer-mode?)) :fn :frontend.handler.common.developer/rtc-start}}) (let [keyboard-commands - {::commands (set (keys all-built-in-keyboard-shortcuts)) - ::dicts/commands dicts/abbreviated-commands}] - (assert (= (::commands keyboard-commands) (::dicts/commands keyboard-commands)) - (str "Keyboard commands must have an english label" + {::commands (->> (keys all-built-in-keyboard-shortcuts) + (remove #(= (namespace %) "cards")) + set) + ::dicts/commands dicts/abbreviated-commands + ::described-commands (->> all-built-in-keyboard-shortcuts + (keep (fn [[id opts]] + (when (:desc opts) id))) + set)}] + (assert (= (::commands keyboard-commands) + (into (::dicts/commands keyboard-commands) + (::described-commands keyboard-commands))) + (str "Keyboard commands must have a default english label from `en.edn` or inline `:desc`" (data/diff (::commands keyboard-commands) - (::dicts/commands keyboard-commands))))) + (into (::dicts/commands keyboard-commands) + (::described-commands keyboard-commands)))))) (defn- resolve-fn "Converts a keyword fn to the actual fn. The fn to be resolved needs to be @@ -640,7 +662,7 @@ :editor/copy :editor/copy-text :editor/cut - :command/toggle-favorite + :page/toggle-favorite :editor/jump]) (with-meta {:before m/enable-when-not-component-editing!})) @@ -664,7 +686,7 @@ :search/re-index :sidebar/open-today-page :sidebar/clear - :command/run + :shell/run :publish/open-dialog :command-palette/toggle :editor/add-property @@ -854,8 +876,8 @@ :pdf/next-page :pdf/close :pdf/find - :command/toggle-favorite - :command/run + :page/toggle-favorite + :shell/run :graph/export-as-html :graph/open :graph/remove diff --git a/src/main/frontend/modules/shortcut/data_helper.cljs b/src/main/frontend/modules/shortcut/data_helper.cljs index 385d1478ef..9535e42338 100644 --- a/src/main/frontend/modules/shortcut/data_helper.cljs +++ b/src/main/frontend/modules/shortcut/data_helper.cljs @@ -386,6 +386,10 @@ :binding (binding-for-display id binding)))) +(defn shortcut-desc-by-id + [id] + (get-shortcut-desc (assoc (shortcut-data-by-id id) :id id))) + (defn shortcuts->commands [handler-id] (let [m (get @shortcut-config/*config handler-id)] (->> m diff --git a/src/main/frontend/page.cljs b/src/main/frontend/page.cljs index 06b20003bd..a222e65788 100644 --- a/src/main/frontend/page.cljs +++ b/src/main/frontend/page.cljs @@ -3,7 +3,7 @@ (:require [frontend.components.container :as container] [frontend.components.plugins :as plugin] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :refer [interpolate-sentence t]] [frontend.handler.export :as export] [frontend.handler.notification :as notification] [frontend.handler.plugin :as plugin-handler] @@ -37,79 +37,90 @@ [:div#left-container [:div#main-container.cp__sidebar-main-layout.flex-1.flex [:div#main-content-container.scrollbar-spacing.w-full.flex.justify-center - [:div.cp__sidebar-main-content - [:div.ls-center - [:div.icon-box.p-1.rounded.mb-3 (ui/icon "bug" {:style {:font-size ui/icon-size}})] - [:div.text-xl.font-bold - (t :page/something-went-wrong)] - [:div.mt-2.mb-2 (t :page/logseq-is-having-a-problem)] - [:div - ;; TODO: Enable once multi-window case doesn't result in possible data loss - #_[:div.flex.flex-row.justify-between.align-items.mb-2 - [:div.flex.flex-col.items-start - [:div.text-2xs.uppercase (t :page/step "1")] - [:div [:span.font-bold "Reload"] " the app"]] - [:div (ui/icon "command") (ui/icon "letter-r")]] - [:div.flex.flex-row.justify-between.align-items.mb-2.items-center.py-4 - [:div.flex.flex-col.items-start - [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "1")] - [:div [:span.highlighted.font-bold "Rebuild"] [:span.toned-down " search index"]]] - [:div - (ui/button (t :page/try) - :small? true - :on-click (fn [] - (search-handler/rebuild-indices! true)))]] - [:div.flex.flex-row.justify-between.align-items.mb-2.items-center.separator-top.py-4 - [:div.flex.flex-col.items-start - [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "2")] - [:div [:span.highlighted.font-bold "Relaunch"] [:span.toned-down " the app"]] - [:div.text-xs.toned-down "Quit the app and then reopen it."]] - [:div (shui/shortcut ["cmd" (if (util/electron?) "q" "r")])]] - [:div.flex.flex-row.justify-between.align-items.mb-4.items-center.separator-top.py-4 - [:div.flex.flex-col.items-start.mr-2 - [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "3")] - [:div [:span.highlighted.font-bold "Export "] [:span.toned-down " current graph as SQLite db"]] - [:div.text-xs.toned-down "You can send it to help@logseq.com for debugging."] - [:a#download-as-sqlite-db.hidden]] - [:div - (ui/button "Export graph" - :small? true - :on-click #(export/export-repo-as-sqlite-db! current-repo))]] - - [:div.flex.flex-row.justify-between.align-items.mb-4.items-center.separator-top.py-4 - [:div.flex.flex-col.items-start - [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "4")] - [:div [:span.highlighted.font-bold "Clear"] [:span.toned-down " local storage"]] - [:div.text-xs.toned-down "This does delete minor preferences like dark/light theme preference."]] - [:div - (ui/button (t :page/try) - :small? true - :on-click (fn [] - (.clear js/localStorage) - (notification/show! "Cleared!" :success)))]]] - [:div - [:p "You can also go to " - [:a {:title "All graphs" - :on-click (fn [] - (set! (.-href js/window.location) (rfe/href :graphs)) - (.reload js/window.location))} - "All graphs"] - " to switch to another graph."] - [:p "If these troubleshooting steps have not solved your problem, please " - [:a.underline - {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml"} - "open an issue."]]]]]]]]] + [:div.cp__sidebar-main-content + [:div.flex.justify-center.px-4.py-10.sm:px-6.sm:py-14 + [:div.w-full.max-w-3xl.flex.flex-col.gap-10.sm:gap-14 + [:div.w-full.max-w-2xl.mx-auto + [:div.flex.flex-col.items-start.gap-3.mb-6 + [:div.icon-box.p-1.rounded (ui/icon "bug" {:style {:font-size ui/icon-size}})] + [:div.text-2xl.font-bold (t :page/something-went-wrong)] + [:div.text-lg.leading-8 (t :page/logseq-is-having-a-problem)]] + [:div + ;; TODO: Enable once multi-window case doesn't result in possible data loss + #_[:div.flex.flex-row.justify-between.align-items.mb-2 + [:div.flex.flex-col.items-start + [:div.text-2xs.uppercase (t :page/step "1")] + [:div [:span.font-bold (t :plugin/reload)] (str " " (t :page/the-app))]] + [:div (ui/icon "command") (ui/icon "letter-r")]] + [:div.flex.flex-col.gap-4.sm:flex-row.sm:items-center.sm:justify-between.py-4 + [:div.flex.flex-col.items-start.pr-4 + [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "1")] + [:div.leading-8 + [:span.highlighted.font-bold (t :page/rebuild)] + [:span.toned-down (str " " (t :page/search-index))]]] + [:div.sm:self-start + (ui/button (t :page/try) + :small? true + :on-click (fn [] + (search-handler/rebuild-indices! true)))]] + [:div.flex.flex-col.gap-4.sm:flex-row.sm:items-center.sm:justify-between.separator-top.py-4 + [:div.flex.flex-col.items-start.pr-4 + [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "2")] + [:div.leading-8 + [:span.highlighted.font-bold (t :page/relaunch)] + [:span.toned-down (str " " (t :page/the-app))]] + [:div.text-xs.leading-6.toned-down (t :page/relaunch-desc)]] + [:div.sm:self-start + (shui/shortcut ["cmd" (if (util/electron?) "q" "r")])]] + [:div.flex.flex-col.gap-4.sm:flex-row.sm:items-center.sm:justify-between.separator-top.py-4 + [:div.flex.flex-col.items-start.pr-4 + [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "3")] + [:div.leading-8 + [:span.highlighted.font-bold (t :ui/export)] + [:span.toned-down (str " " (t :page/current-graph-as-sqlite-db))]] + [:div.text-xs.leading-6.toned-down (t :page/send-db-for-debugging)] + [:a#download-as-sqlite-db.hidden]] + [:div.sm:self-start + (ui/button (t :export/graph) + :small? true + :on-click #(export/export-repo-as-sqlite-db! current-repo))]] + [:div.flex.flex-col.gap-4.sm:flex-row.sm:items-center.sm:justify-between.separator-top.py-4 + [:div.flex.flex-col.items-start.pr-4 + [:div.text-2xs.font-bold.uppercase.toned-down (t :page/step "4")] + [:div.leading-8 + [:span.highlighted.font-bold (t :page/clear)] + [:span.toned-down (str " " (t :page/local-storage))]] + [:div.text-xs.leading-6.toned-down (t :page/clear-local-storage-desc)]] + [:div.sm:self-start + (ui/button (t :page/try) + :small? true + :on-click (fn [] + (.clear js/localStorage) + (notification/show! (t :page/cleared) :success)))]]] + [:div.max-w-2xl.mx-auto.mt-6.space-y-2.text-base.leading-8 + [:p.m-0 + (interpolate-sentence + (t :page/open-all-graphs-desc) + :links + [{:on-click (fn [] + (set! (.-href js/window.location) (rfe/href :graphs)) + (.reload js/window.location))}])] + [:p.m-0 + (interpolate-sentence + (t :page/open-issue-desc) + :links + [{:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml"}])]]]]]]]]]] (ui/notification)])) (rum/defc not-found [] [:div {:class "flex flex-col items-center justify-center min-h-screen bg-background"} [:h1 {:class "text-6xl font-bold text-gray-12 mb-4"} "404"] - [:h2 {:class "text-2xl font-semibold text-gray-10 mb-6"} "Page Not Found"] - [:p {:class "text-gray-500 mb-8"} "Oops! The page you're looking for doesn't exist."] + [:h2 {:class "text-2xl font-semibold text-gray-10 mb-6"} (t :page/not-found-title)] + [:p {:class "text-gray-500 mb-8"} (t :page/not-found-desc)] (shui/button {:on-click #(rfe/push-state :home) :variant :outline} - (shui/tabler-icon "home") "Go back home")]) + (shui/tabler-icon "home") (t :page/go-back-home))]) (rum/defc current-page < rum/reactive {:did-mount (fn [state] diff --git a/src/main/frontend/persist_db/browser.cljs b/src/main/frontend/persist_db/browser.cljs index 8d8696466f..eb810d41af 100644 --- a/src/main/frontend/persist_db/browser.cljs +++ b/src/main/frontend/persist_db/browser.cljs @@ -6,6 +6,7 @@ [electron.ipc :as ipc] [frontend.common.thread-api :as thread-api :refer [def-thread-api]] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.db.transact :as db-transact] [frontend.handler.notification :as notification] [frontend.handler.worker :as worker-handler] @@ -192,7 +193,7 @@ (js/window.location.reload) (do (log/error :sqlite-error error) - (notification/show! (str "SQLiteDB error: " error) :error)))) + (notification/show! (t :storage/sqlitedb-error error) :error)))) (defrecord InBrowser [] protocol/PersistentDB @@ -226,10 +227,10 @@ ( (state/clj args) title (or title "") url (or url "") @@ -29,7 +31,7 @@ redirect-page? (get-in (state/get-config) [:quick-capture-options :redirect-page?] false) - today-page (string/lower-case today) + today-page (string/lower-case today-page-title) current-page (state/get-current-page) ;; empty when in journals page default-page (get-in (state/get-config) [:quick-capture-options :default-page]) @@ -72,7 +74,7 @@ template (get-in (state/get-config) [:quick-capture-templates :text] "**{time}** [[quick capture]]: {text} {url}") - date-ref-name (date/today) + date-ref-name today-page-title content (-> template (string/replace "{time}" time) (string/replace "{date}" date-ref-name) @@ -96,4 +98,4 @@ :edit-block? true :replace-empty-target? true}) 100)))) - (notification/show! "Failed to parse date to journal name." :error))) + (notification/show! (t :journal/parse-date-to-name-error) :error))) diff --git a/src/main/frontend/state.cljs b/src/main/frontend/state.cljs index b7591d3be9..6dc1b42c47 100644 --- a/src/main/frontend/state.cljs +++ b/src/main/frontend/state.cljs @@ -8,7 +8,9 @@ [datascript.core :as d] [dommy.core :as dom] [electron.ipc :as ipc] + [electron.locale :as electron-locale] [frontend.db.conn-state :as db-conn-state] + [frontend.dicts :as dicts] [frontend.flows :as flows] [frontend.mobile.util :as mobile-util] [frontend.spec.storage :as storage-spec] @@ -35,6 +37,27 @@ (defonce *editor-info (atom nil)) (defonce app-ready-promise (p/deferred)) +(def ^:private supported-locale-tags + (into {} + (map (fn [locale] + [(string/lower-case (name locale)) locale]) + (keys dicts/dicts)))) + +(defn- canonical-preferred-language + "Convert browser/storage locale tags into one supported locale string." + [language] + (let [tag (cond + (keyword? language) (name language) + (string? language) language + :else nil)] + (when-not (string/blank? tag) + (let [normalized-tag (some-> tag string/trim string/lower-case) + base-tag (some-> normalized-tag (string/split #"-") first)] + (some-> (or (get supported-locale-tags normalized-tag) + (get supported-locale-tags base-tag) + :en) + name))))) + (def db-worker-ready-flow "`page-ref (date/today)) - "yesterday" (ref/->page-ref (date/yesterday)) - "tomorrow" (ref/->page-ref (date/tomorrow)) + {"today" (ref/->page-ref (db/get-journal-page-title (date/today))) + "yesterday" (ref/->page-ref (db/get-journal-page-title (date/yesterday))) + "tomorrow" (ref/->page-ref (db/get-journal-page-title (date/tomorrow))) "time" (date/get-current-time) "current page" (when-let [current-page (or (state/get-current-page) - (date/today))] + (db/get-journal-page-title (date/today)))] (let [block-uuid (parse-uuid current-page) page (if block-uuid (db-utils/entity [:block/uuid block-uuid]) diff --git a/src/main/frontend/ui.cljs b/src/main/frontend/ui.cljs index c36dca5603..1b9b76ac6e 100644 --- a/src/main/frontend/ui.cljs +++ b/src/main/frontend/ui.cljs @@ -12,7 +12,7 @@ [electron.ipc :as ipc] [frontend.components.svg :as svg] [frontend.config :as config] - [frontend.context.i18n :refer [t]] + [frontend.context.i18n :as i18n :refer [t]] [frontend.date :as date] [frontend.db-mixins :as db-mixins] [frontend.handler.notification :as notification] @@ -103,7 +103,7 @@ :on-click #(add-bgcolor-fn color)} [:div.heading-bg {:style {:background-color (str "var(--color-" color "-500)")}}]]) [:a - {:title (t :remove-background) + {:title (t :ui/remove-background) :on-click rm-bgcolor-fn} [:div.heading-bg.remove "-"]]]]) @@ -230,6 +230,8 @@ [:span.keyboard-shortcut (shui/shortcut sequence opts)])) +(def ^:private append-no-padding-class " no-padding") + (rum/defc menu-link [{:keys [only-child? no-padding? class shortcut] :as options} child] (if only-child? @@ -238,7 +240,7 @@ [:a.flex.justify-between.menu-link (cond-> options (true? no-padding?) - (assoc :class (str class " no-padding")) + (assoc :class (str class append-no-padding-class)) true (dissoc :no-padding?)) @@ -291,7 +293,7 @@ [:div.flex-shrink-0.flex {:style {:margin-top -9 :margin-right -18}} (button - {:button-props {"aria-label" "Close"} + {:button-props {"aria-label" (t :ui/close)} :variant :ghost :class "hover:bg-transparent hover:text-foreground scale-90" :on-click (fn [] @@ -554,7 +556,7 @@ (shui/shortcut binding {:glow? true})]))) (defn loading - ([] (loading (t :loading))) + ([] (loading (t :ui/loading))) ([content] (loading content nil)) ([content opts] [:div.flex.flex-row.items-center.inline.icon-loading @@ -689,7 +691,7 @@ (log/error :exception error) (notification/show! [:div.flex.flex-col.gap-2 - [:div (str "Error caught by UI!\n " error)] + [:div (t :ui/error-boundary-error error)] (str (.-stack error))] `:error) (assoc state ::error error))} [{error ::error, c :rum/react-component} error-view view] @@ -706,7 +708,7 @@ [:h5.text-error.pb-1 title] [:a.text-xs.opacity-50.hover:opacity-80 {:href "https://github.com/logseq/logseq/issues/new?labels=from:in-app&template=bug_report.yaml" - :target "_blank"} "report issue"]] + :target "_blank"} (t :bug-report.issue/report-link)]] (when content [:pre.m-0.text-sm (str content)])]) (def component-error @@ -864,12 +866,19 @@ (rum/defc with-shortcut < rum/reactive < {:key-fn (fn [key pos] (str "shortcut-" key pos))} - [shortcut-key _position content] + [shortcut-key _position content & [title]] (let [shortcut-tooltip? (state/sub :ui/shortcut-tooltip?) - enabled-tooltip? (state/enable-tooltip?)] + enabled-tooltip? (state/enable-tooltip?) + binding (when shortcut-key (shortcut-dh/shortcut-binding shortcut-key)) + first-binding (when (and binding (not (false? binding))) (first binding))] (if (and enabled-tooltip? shortcut-tooltip?) (tooltip content - [:div.text-sm.font-medium (keyboard-shortcut-from-config shortcut-key)] + (if title + [:div.flex.flex-col.items-start.gap-1 + [:span.text-xs.opacity-80 title] + (when first-binding + (shui/shortcut first-binding {:glow? false}))] + (keyboard-shortcut-from-config shortcut-key)) {:trigger-props {:as-child true}}) content))) @@ -941,7 +950,7 @@ "" :disabled? (and (some? heading) (= heading i)) :icon (str "h-" i) - :title (t :heading i) + :title (t :editor/heading i) :class "to-heading-button" :on-click #(add-heading-fn i) :intent "link" @@ -952,7 +961,7 @@ :icon "h-auto" :disabled? (and (some? heading) (true? heading)) :class "to-heading-button" - :title (t :auto-heading) + :title (t :editor/auto-heading) :on-click auto-heading-fn :intent "link" :small? true) @@ -961,7 +970,7 @@ :icon "heading-off" :disabled? (and (some? heading) (not heading)) :class "to-heading-button" - :title (t :remove-heading) + :title (t :editor/remove-heading) :on-click rm-heading-fn :intent "link" :small? true)]])) @@ -988,8 +997,8 @@ (defn get-month-label [n] - (some->> n (nth month-values) - (name))) + (when (number? n) + (i18n/locale-format-date (js/Date. 2000 n 1) {:month "long"}))) (rum/defc date-year-month-select [{:keys [name value onChange _children]}] @@ -1011,8 +1020,8 @@ :size :sm} (get-month-label value))) (shui/dropdown-menu-content - (for [[idx month] (medley/indexed month-values) - :let [label (clojure.core/name month)]] + (for [[idx _month] (medley/indexed month-values) + :let [label (get-month-label idx)]] (shui/dropdown-menu-checkbox-item {:checked (= value idx) :on-select (fn [] @@ -1030,6 +1039,8 @@ :caption-layout "dropdown-buttons" :fromYear 1000 :toYear 3000 + :formatters {:formatWeekdayName (fn [weekday _] + (i18n/locale-format-date weekday {:weekday "short"}))} :components (cond-> {:Dropdown #(date-year-month-select (bean/bean %))} del-btn? (assoc :Head #(DelDateButton on-delete))) :class-names {:months "" :root (when del-btn? "has-del-btn")} @@ -1062,7 +1073,7 @@ (let [value (get-current-hh-mm)] (set! (.-value (gdom/getElement "time-picker")) value) (on-change value)))} - "Use current time")]) + (t :ui/use-current-time))]) (rum/defc nlp-calendar [{:keys [selected on-select on-day-click] :as opts}] @@ -1088,7 +1099,7 @@ (shui/input {:type "text" - :placeholder "e.g. Next week" + :placeholder (t :ui/date-natural-language-placeholder) :class "mx-3 mb-3" :style {:width "initial" :tab-index -1} @@ -1102,7 +1113,7 @@ (if-let [date (and result (doto (goog.date.DateTime.) (.setTime (.getTime result))))] (let [on-select' (or (:on-select opts) (:on-day-click opts))] (on-select' date)) - (notification/show! (str (pr-str value) " is not a valid date. Please try again") :warning)))))))})])) + (notification/show! (t :date/invalid-date-warning (pr-str value)) :warning)))))))})])) (comment (rum/defc skeleton diff --git a/src/main/frontend/util.cljc b/src/main/frontend/util.cljc index 87d45cddb6..5d61cbb0af 100644 --- a/src/main/frontend/util.cljc +++ b/src/main/frontend/util.cljc @@ -1385,3 +1385,19 @@ (defn rtc-test? [] (string/includes? js/window.location.search "?rtc-test=true"))) + +#?(:cljs + (defn sanitize-port-input + "Strips all non-digit characters from a port input string." + [value] + (some-> value + trim-safe + (string/replace #"\D" "")))) + +#?(:cljs + (defn normalize-port-input + "Normalizes a port input to a valid port number string (1–65535), or nil." + [value] + (let [digits (sanitize-port-input value)] + (when (seq digits) + (str (-> digits js/parseInt (max 1) (min 65535))))))) diff --git a/src/main/frontend/worker/db/validate.cljs b/src/main/frontend/worker/db/validate.cljs index 6294a54041..bec0044d96 100644 --- a/src/main/frontend/worker/db/validate.cljs +++ b/src/main/frontend/worker/db/validate.cljs @@ -239,22 +239,24 @@ :entity (:entity error) :error (dissoc error :entity))) - (if errors - (do - (fix-invalid-blocks! conn errors) - (shared-service/broadcast-to-clients! :log [:db-invalid :error - {:msg "Validation errors" - :errors errors}]) - (shared-service/broadcast-to-clients! :notification - [(str "Validation detected " (count errors) " invalid block(s). These blocks may be buggy. Attempting to fix invalid blocks. Run validation again to see if they were fixed.") - :warning false])) + (if errors + (do + (fix-invalid-blocks! conn errors) + (shared-service/broadcast-to-clients! :log [:db-invalid :error + {:msg "Validation errors" + :errors errors}]) + (shared-service/broadcast-to-clients! :notification + [nil :warning false nil nil + {:i18n-key :graph.validation/invalid-blocks-detected + :i18n-args [(count errors)]}])) - (shared-service/broadcast-to-clients! :notification - [(str "Your graph is valid! " (assoc (db-validate/graph-counts db entities) :datoms datom-count)) - :success false])) - {:errors errors - :datom-count datom-count - :invalid-entity-ids invalid-entity-ids}))) + (shared-service/broadcast-to-clients! :notification + [nil :success false nil nil + {:i18n-key :graph.validation/valid + :i18n-args [(assoc (db-validate/graph-counts db entities) :datoms datom-count)]}])) + {:errors errors + :datom-count datom-count + :invalid-entity-ids invalid-entity-ids}))) (defn recompute-checksum-diagnostics [_repo conn {:keys [local-checksum remote-checksum] :as _sync-diagnostics}] diff --git a/src/main/frontend/worker/db_worker.cljs b/src/main/frontend/worker/db_worker.cljs index 3d17dc7046..2292028f48 100644 --- a/src/main/frontend/worker/db_worker.cljs +++ b/src/main/frontend/worker/db_worker.cljs @@ -983,7 +983,9 @@ :notification (do (log/error ::apply-outliner-ops-failed e) - (shared-service/broadcast-to-clients! :notification [(:message payload) (:type payload) (:clear? payload) (:uid payload) (:timeout payload)])) + (shared-service/broadcast-to-clients! :notification + [(:message payload) (:type payload) (:clear? payload) (:uid payload) (:timeout payload) + {:i18n-key (:i18n-key payload) :i18n-args (:i18n-args payload)}])) (throw e))))))) (def-thread-api :thread-api/sync-app-state @@ -1039,8 +1041,7 @@ (js/console.error "export-edn error: " e) (js/console.error "Stack:\n" (.-stack e)) (worker-util/post-message :notification - ["An unexpected error occurred during export. See the javascript console for details." - :error]) + [nil :error nil nil nil {:i18n-key :export/error-unexpected}]) {:export-edn-error (.-message e)})))) (def-thread-api :thread-api/get-view-data @@ -1182,7 +1183,8 @@ (when-not (and (or (:undo? tx-meta) (:redo? tx-meta)) (not worker-util/dev?)) (shared-service/broadcast-to-clients! :notification - [["Invalid data writing to db!"] :error]) + [nil :error nil nil nil + {:i18n-key :storage/invalid-data-writing}]) (worker-util/post-message :capture-error {:error (ex-info "Invalid data writing to db" tx-meta) :payload {} diff --git a/src/main/logseq/api/editor.cljs b/src/main/logseq/api/editor.cljs index 5c1d247dc3..8a354635a2 100644 --- a/src/main/logseq/api/editor.cljs +++ b/src/main/logseq/api/editor.cljs @@ -3,7 +3,6 @@ (:require [cljs-bean.core :as bean] [cljs.reader] [frontend.commands :as commands] - [frontend.date :as date] [frontend.db :as db] [frontend.db.async :as db-async] [frontend.db.model :as db-model] @@ -105,8 +104,7 @@ (defn get_today_page [] - (p/let [today-name (date/today) - page ( page (sdk-utils/result->js)))) (defn get_all_pages @@ -360,7 +358,7 @@ (p/let [uuid-or-page-name (or uuid-or-page-name (state/get-current-page) - (date/today)) + (db-model/get-today-journal-title)) block ( [{:id "home" - :title "Home" + :title (t :nav/home) :systemImage "house" :role "normal"} {:id "graphs" - :title "Graphs" + :title (t :mobile.tab/graphs) :systemImage "app.background.dotted" :role "normal"} {:id "capture" - :title "Capture" + :title (t :mobile.tab/capture) :systemImage "tray" :role "normal"} {:id "go to" - :title "Go To" + :title (t :mobile.tab/go-to) :systemImage "square.stack.3d.down.right" :role "normal"}] (mobile-util/native-android?) (conj {:id "search" - :title "Search" + :title (t :nav/search) :systemImage "search" :role "search"})))) diff --git a/src/main/mobile/components/app.cljs b/src/main/mobile/components/app.cljs index 0d66e2a0a9..bd4fee7b36 100644 --- a/src/main/mobile/components/app.cljs +++ b/src/main/mobile/components/app.cljs @@ -142,16 +142,20 @@ (rum/defc app [current-repo route-match] (let [[tab] (mobile-state/use-tab) + preferred-language (state/sub :preferred-language) [theme] (frum/use-atom-in state/state :ui/theme)] (use-screen-size-effects!) (use-theme-effects! current-repo theme) (hooks/use-effect! (fn [] - (when (mobile-util/native-platform?) - (bottom-tabs/configure)) (when-let [element (util/app-scroll-container-node)] (common-handler/listen-to-scroll! element))) []) + (hooks/use-effect! + (fn [] + (when (mobile-util/native-platform?) + (bottom-tabs/configure))) + [preferred-language]) [:<> (mobile-header/header current-repo tab) (main-content tab route-match)])) diff --git a/src/main/mobile/components/editor_toolbar.cljs b/src/main/mobile/components/editor_toolbar.cljs index dfa0a85865..28257343d5 100644 --- a/src/main/mobile/components/editor_toolbar.cljs +++ b/src/main/mobile/components/editor_toolbar.cljs @@ -1,6 +1,7 @@ (ns mobile.components.editor-toolbar "Mobile editor toolbar" (:require [frontend.commands :as commands] + [frontend.context.i18n :refer [t]] [frontend.handler.editor :as editor-handler] [frontend.handler.history :as history] [frontend.mobile.camera :as mobile-camera] @@ -59,7 +60,9 @@ (defn- indent-outdent-action [indent?] {:id (if indent? "indent" "outdent") - :title (if indent? "Indent" "Outdent") + :title (if indent? + (t :mobile.toolbar/indent) + (t :mobile.toolbar/outdent)) :system-icon (if indent? "arrow.right" "arrow.left") :handler (fn [] (blur-if-compositing) @@ -68,7 +71,7 @@ (defn- undo-action [] {:id "undo" - :title "Undo" + :title (t :mobile.toolbar/undo) :system-icon "arrow.uturn.backward" :event? true :handler (fn [] @@ -78,7 +81,7 @@ (defn- redo-action [] {:id "redo" - :title "Redo" + :title (t :mobile.toolbar/redo) :system-icon "arrow.uturn.forward" :event? true :handler (fn [] @@ -88,7 +91,7 @@ (defn- todo-action [] {:id "todo" - :title "Todo" + :title (t :mobile.toolbar/todo) :system-icon "checkmark.square" :event? true :handler (fn [] @@ -98,7 +101,7 @@ (defn- tag-action [] {:id "tag" - :title "Tag" + :title (t :mobile.toolbar/tag) :system-icon "number" :event? true :handler #(insert-text "#" {})}) @@ -106,7 +109,7 @@ (defn- page-ref-action [] {:id "page-ref" - :title "Reference" + :title (t :mobile.toolbar/reference) ;; TODO: create sf symbol for brackets :system-icon "parentheses" :event? true @@ -115,7 +118,7 @@ (defn- slash-action [] {:id "slash" - :title "Slash" + :title (t :mobile.toolbar/slash) :system-icon "command" :event? true :handler #(insert-text "/" {})}) @@ -123,7 +126,7 @@ (defn- camera-action [] {:id "camera" - :title "Photo" + :title (t :mobile.toolbar/photo) :system-icon "camera" :event? true :handler #(when-let [parent-id (state/get-edit-input-id)] @@ -132,14 +135,14 @@ (defn- audio-action [] {:id "audio" - :title "Audio" + :title (t :mobile.toolbar/audio) :system-icon "waveform" :handler #(recorder/record!)}) (defn- keyboard-action [] {:id "keyboard" - :title "Hide" + :title (t :mobile.toolbar/hide) :system-icon "keyboard.chevron.compact.down" :handler #(p/do! (editor-handler/save-current-block!) diff --git a/src/main/mobile/components/header.cljs b/src/main/mobile/components/header.cljs index f4fb8cb141..9b31f911b7 100644 --- a/src/main/mobile/components/header.cljs +++ b/src/main/mobile/components/header.cljs @@ -2,6 +2,7 @@ "App top header" (:require ["@capacitor/dialog" :refer [Dialog]] [clojure.string :as string] + [frontend.context.i18n :refer [t]] [frontend.components.repo :as repo] [frontend.components.rtc.indicator :as rtc-indicator] [frontend.date :as date] @@ -62,7 +63,7 @@ {:on-click (fn [] (route-handler/redirect! {:to :import}))} [:span.text-lg.flex.gap-2.items-center (shui/tabler-icon "file-upload" {:class "opacity-80" :size 22}) - "Import"])]) + (t :import/title)])]) {:default-height false})) (defn open-page-settings @@ -77,10 +78,10 @@ (p/do! (shui/popup-hide!) (-> (.confirm ^js Dialog - #js {:title "Confirm" - :message (str "Are you sure to delete this " - (if (entity-util/page? block) "page" "block") - "?")}) + #js {:title (t :ui/confirm) + :message (if (entity-util/page? block) + (t :mobile.header/delete-page-confirm-desc) + (t :mobile.header/delete-block-confirm-desc))}) (p/then (fn [^js result] (let [value (.-value result)] @@ -95,8 +96,8 @@ (notification/show! msg :warning))})))))))))} [:span.text-lg.flex.gap-2.items-center.text-red-700 (shui/tabler-icon "trash" {:class "opacity-80" :size 22}) - "Delete"])]) - {:title "Actions" + (t :ui/delete)])]) + {:title (t :mobile.header/actions) :default-height false})) (defn- open-graph-switch! @@ -109,7 +110,7 @@ {:on-click #(p/do! (shui/popup-hide!) (state/pub-event! [:graph/new-db-graph]))} - "Create new graph")]) + (t :mobile.header/create-graph))]) {:default-height false})) (defn- register-native-top-bar-events! [*configure-top-bar-f] @@ -200,10 +201,7 @@ (rum/defc header-inner [current-repo tab route-match] - (let [short-repo-name (if current-repo - (db-conn/get-short-repo-name current-repo) - "Select a Graph") - route-name (get-in route-match [:data :name]) + (let [route-name (get-in route-match [:data :name]) route-view (get-in route-match [:data :view]) route-id (get-in route-match [:parameters :path :name]) page-route? (= route-name :page) @@ -219,10 +217,12 @@ pending-asset-ops (:pending-asset-ops detail-info) fallback-title (cond (= tab "home") - short-repo-name + (if current-repo + (db-conn/get-short-repo-name current-repo) + (t :graph.switch/select-prompt)) (= tab "search") - "Search" + (t :nav/search) :else (string/capitalize tab)) diff --git a/src/main/mobile/components/selection_toolbar.cljs b/src/main/mobile/components/selection_toolbar.cljs index 0e1b8c2c28..91904ec1f2 100644 --- a/src/main/mobile/components/selection_toolbar.cljs +++ b/src/main/mobile/components/selection_toolbar.cljs @@ -1,6 +1,7 @@ (ns mobile.components.selection-toolbar "Selection action bar, activated when swipe on a block" (:require [frontend.db :as db] + [frontend.context.i18n :refer [t]] [frontend.handler.editor :as editor-handler] [frontend.mobile.util :as mobile-util] [frontend.state :as state] @@ -30,35 +31,35 @@ [] (let [close! close-selection-bar!] [{:id "copy" - :label "Copy" + :label (t :ui/copy) :system-icon "doc.on.doc" :handler (fn [] (editor-handler/copy-selection-blocks false) (close!))} {:id "outdent" - :label "Outdent" + :label (t :mobile.toolbar/outdent) :system-icon "arrow.left" :handler (fn [] (editor-handler/on-tab :left))} {:id "indent" - :label "Indent" + :label (t :mobile.toolbar/indent) :system-icon "arrow.right" :handler (fn [] (editor-handler/on-tab :right))} {:id "delete" - :label "Delete" + :label (t :ui/delete) :system-icon "trash" :handler (fn [] (editor-handler/cut-selection-blocks false {:mobile-action-bar? true}) (close!))} {:id "copy-ref" - :label "Copy ref" + :label (t :mobile.toolbar/copy-ref) :system-icon "r.square" :handler (fn [] (editor-handler/copy-block-refs) (close!))} {:id "copy-url" - :label "Copy url" + :label (t :mobile.toolbar/copy-url) :system-icon "link" :handler (fn [] (let [current-repo (state/get-current-repo) @@ -68,7 +69,7 @@ (editor-handler/copy-block-ref! block-id tap-f))) (close!))} {:id "unselect" - :label "Unselect" + :label (t :mobile.toolbar/unselect) :system-icon "xmark" :handler (fn [] (state/clear-selection!) diff --git a/src/main/mobile/components/settings.cljs b/src/main/mobile/components/settings.cljs index 1952ac4b2e..50b0eed4fe 100644 --- a/src/main/mobile/components/settings.cljs +++ b/src/main/mobile/components/settings.cljs @@ -4,6 +4,7 @@ [frontend.common.missionary :as c.m] [frontend.components.user.login :as login] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.handler.user :as user-handler] [frontend.state :as state] [frontend.ui :as ui] @@ -32,14 +33,14 @@ [:div.w-full.h-full (login/page-impl)]) {:id :login})} - "Login") + (t :ui/login)) ;; Logged in: account cell [:div.mobile-setting-item [:div.flex.items-center.gap-3 [:div.w-10.h-10.rounded-full.flex.items-center.justify-center.text-base.font-semibold initial] [:div.flex.flex-col.items-start - [:span.text-base.font-semibold (or username "Account")] + [:span.text-base.font-semibold (or username (t :mobile.settings/account))] [:span.text-xs email]]]])])) (defn theme-select @@ -50,9 +51,9 @@ :on-change (fn [e] (let [new-value (.. e -target -value)] (on-change new-value)))} - [:option {:value "system"} "System"] - [:option {:value "light"} "Light"] - [:option {:value "dark"} "Dark"]]) + [:option {:value "system"} (t :settings.general/theme-system)] + [:option {:value "light"} (t :settings.general/theme-light)] + [:option {:value "dark"} (t :settings.general/theme-dark)]]) (rum/defc log [] @@ -63,11 +64,11 @@ (hooks/use-effect! #(c.m/run-task* (m/sp - (set-worker-records! (c.m/> (if show-worker-log? worker-records @mobile-state/*log) error-only? @@ -116,39 +123,39 @@ (user-profile login?) [:div.space-y-4 [:div.mobile-setting-item - [:span.text-base "Theme"] + [:span.text-base (t :mobile.settings/theme)] [:div.flex.items-center (theme-select {:value theme-value :on-change state/use-theme-mode!})]] [:div.mobile-setting-item - [:span.text-base "Version"] + [:span.text-base (t :mobile.settings/version)] [:span.text-sm version/version]] (let [revision (string/replace config/revision "-dirty" "")] [:div.mobile-setting-item {:on-click (fn [] (js/window.open (str "https://github.com/logseq/logseq/commit/" revision)))} - [:span.text-base "Revision"] + [:span.text-base (t :mobile.settings/revision)] [:span.text-sm revision]]) [:div.mobile-setting-item {:on-click (fn [] (js/window.open "https://github.com/logseq/db-test/issues"))} - [:span.text-base "Report bug"]] + [:span.text-base (t :mobile.settings/report-bug)]] [:div.mobile-setting-item {:on-click (fn [] (shui/popup-show! nil (fn [] (log)) {}))} - [:span.text-base "Check log"]] + [:span.text-base (t :mobile.settings/check-log)]] [:div.mobile-setting-item {:on-click #(state/pub-event! [:go/sync-server-settings])} - [:span.text-base "Sync server URL"] + [:span.text-base (t :settings.sync-server/url)] [:span.text-sm.opacity-70 (if-let [custom (config/get-custom-sync-server-url)] custom - "Logseq sync (default)")]] + "Logseq Sync")]] (when login? [:div.mobile-setting-item @@ -156,21 +163,21 @@ (p/do! (user-handler/logout) (shui/popup-hide!)))} - [:span.text-base "Logout"]]) + [:span.text-base (t :ui/logout)]]) [:div.flex.flex-row.flex-row.gap-4 [:a {:href "https://discord.com/invite/KpN4eHY" :target "_blank"} [:div.flex.items-center (ui/icon "brand-discord") - [:span.ml-1 "Discord community"]]] + [:span.ml-1 (t :mobile.settings/discord-community)]]] [:a {:href "https://discuss.logseq.com" :target "_blank"} [:div.flex.items-center (ui/icon "message") - [:span.ml-1 "Forum"]]] + [:span.ml-1 (t :mobile.settings/forum)]]] [:a {:href "https://github.com/logseq/logseq" :target "_blank"} [:div.flex.items-center (ui/icon "brand-github") - [:span.ml-1 "GitHub"]]]]]])) + [:span.ml-1 (t :mobile.settings/github)]]]]]])) diff --git a/src/main/mobile/components/ui.cljs b/src/main/mobile/components/ui.cljs index 4f76824f65..b8d591503e 100644 --- a/src/main/mobile/components/ui.cljs +++ b/src/main/mobile/components/ui.cljs @@ -1,6 +1,7 @@ (ns mobile.components.ui "Mobile ui" - (:require [frontend.handler.notification :as notification] + (:require [frontend.context.i18n :refer [t]] + [frontend.handler.notification :as notification] [frontend.rum :as r] [frontend.state :as state] [logseq.shui.ui :as shui] @@ -19,7 +20,7 @@ {:size :sm :on-click (fn [] (notification/clear-all!))} - "clear all")]]) + (t :notification/clear-all))]]) (rum/defc notification-content [state content status uid] diff --git a/src/main/mobile/deeplink.cljs b/src/main/mobile/deeplink.cljs index 857475e8ee..3965a46401 100644 --- a/src/main/mobile/deeplink.cljs +++ b/src/main/mobile/deeplink.cljs @@ -2,6 +2,7 @@ "Share/open link" (:require [clojure.string :as string] [frontend.config :as config] + [frontend.context.i18n :refer [t]] [frontend.db.async :as db-async] [frontend.handler.notification :as notification] [frontend.handler.route :as route-handler] @@ -50,7 +51,7 @@ (if graph-url (do (state/pub-event! [:graph/switch graph-url]) (reset! *link-to-another-graph true)) - (notification/show! (str "Open graph failed. Graph `" graph-name "` doesn't exist.") :error false)))) + (notification/show! (t :deeplink/open-graph-error graph-name) :error false)))) (when (or (= graph-name current-graph-name) @*link-to-another-graph) @@ -61,15 +62,13 @@ (p/let [block (db-async/ text" + :export/preparing-zip "Berei zip voor" + :export/preview-alt "uitvoer voorskou" + :export/public-pages "Openbare bladsye voer uit" + :export/remove-emphasis "verwyder beklemtoning" + :export/remove-properties "verwyder eienskappe" + :export/remove-tags "verwyder #etikette" + :export/save-to-file "Stoor na lêer" + :export/sqlite-db "SQLite-database voer uit" + :export/title "Uitvoer" + :export/transparent-background "Deursigtige agtergrond" + :export/view-nodes-data-copied "Weergaveknooppuntgegevens na klembord gekopieerd" + :export/zip "DB SQLite en lêers voer uit" + :export/zip-error "ZIP voer uit mislukt." + + :export.backup/backup-now "Rugsteun nou" + :export.backup/cancel "Kanselleer rugsteun" + :export.backup/enabled-desc "Uurlikse rugsteune is geaktiveer vir hierdie grafiek, {1}." + :export.backup/folder "Rugsteungids:" + :export.backup/hourly-note "Rugsteun sal elke uur geskep word." + :export.backup/open-folder "maak rugsteungids oop vir hierdie grafiek" + :export.backup/schedule "Skeduleer rugsteun" + :export.backup/set-folder-first "Stel eers rugsteungids" + :export.backup/sqlite-desc "Primêre manier om grafiekinhoud na 'n enkele .sqlite-lêer te rugsteun." + :export.backup/unsupported-desc "Jou blaaier ondersteun nie {{The File System Access API}} nie, skakel asseblief oor na 'n Chromium-gebaseerde blaaier." + :export.backup/zip-desc "Primêre manier om grafiekinhoud en bates na 'n .zip-lêer te rugsteun." + + :file/config-duplicate-keys "Die lêer '{1}' het duplikaatsleutels. Die sleutel '{2}' word verskeie kere toegeken." + :file/config-invalid "Konfigurasielêer is ongeldig" + :file/format-not-supported "Formaat .{1} word nie ondersteun nie." + :file/label "Lêer" + :file/last-modified-at "Laas verander op" + :file/name "Lêer naam" + :file/no-data "Geen data" + :file/title "Lêer {1}" + + :file.config/deprecation-title "Die lêer {1} het die volgende verouderinge:" + :file.config/error-title "Die lêer {1} het die volgende foute:" + :file.config/invalid-desc "Maak seker dat die konfigurasie in {} ingesluit is." + :file.config/invalid-title "Die lêer {1} is ongeldig." + :file.config/read-failed-desc "Maak seker dat u konfigurasie in {} ingesluit is. Maak ook seker dat die karakters '( { [' hulle ooreenstemmende sluitkarakters ') } ]' het." + :file.config/read-failed-title "Kon lêer {1} nie lees nie" + + :flashcard/add-query "Voeg nuwe navraag by" + :flashcard/all-cards "Alle kaarte" + :flashcard/select-cards "Kies kaarte" + :flashcard/shortcut-tooltip "Sneltoets: {1}" + + :flashcard.empty/desc "Jy kan \"{1}\" by enige blok voeg om dit in 'n kaart te verander, of \"/cloze\" gebruik om 'n paar clozes by te voeg." + :flashcard.empty/title "Welkom by Flitskaarte" + + :flashcard.rating/again "Weer" + :flashcard.rating/again-desc "Ons het die antwoord verkeerd gehad. Dit beteken outomaties dat ons die kaart vergeet het. Dit is 'n geheueglips。" + :flashcard.rating/easy "Maklik" + :flashcard.rating/easy-desc "Die antwoord was korrek en ons het dit vinnig en met selfvertroue onthou, sonder geestelike inspanning。" + :flashcard.rating/good "Goed" + :flashcard.rating/good-desc "Die antwoord was korrek, maar dit het 'n bietjie geestelike inspanning gekos om dit te onthou。" + :flashcard.rating/hard "Moeilik" + :flashcard.rating/hard-desc "Die antwoord was korrek, maar ons was nie seker daarvan nie of dit het te lank geneem om dit te onthou." + + :flashcard.review/finished "Klaar! 💯" + :flashcard.review/hide-answers "Versteek antwoorde" + :flashcard.review/show-answers "Wys antwoorde" + :flashcard.review/show-clozes "Wys invullings" + + :format/bold "Vet" + :format/code "Kode" + :format/highlight "Uitlig" + :format/italics "Kursief" + :format/strikethrough "Deurhaal" + + :graph/all-graphs "Alle grafieke" + :graph/already-exists-error "Die grafiek '{1}' bestaan reeds. Probeer asseblief weer met 'n ander naam." + :graph/as-png "as PNG" + :graph/built-in-pages "Ingeboude bladsye" + :graph/charge-range "Ladingsreikwydte" + :graph/charge-strength "Ladingsterkte" + :graph/click-to-search "Klik om te soek" + :graph/create-db "Skep DB-grafiek" + :graph/create-error "Grafiek aanmaken mislukt" + :graph/create-new "Skep 'n nuwe grafiek" + :graph/created-before "Geskep voor" + :graph/creating "Grafiek word geskep" + :graph/delete-local-action "Verwyder plaaslike grafiek" + :graph/delete-local-confirm-desc "Is u seker dat u die grafiek \"{1}\" permanent uit Logseq wil verwyder?" + :graph/delete-server-action "Verwyder van server" + :graph/delete-server-confirm-desc "Is u seker dat u die grafiek \"{1}\" permanent vanaf ons bediener wil verwyder?" + :graph/delete-warning "⚠️ Let daarop dat ons hierdie grafiek nie kan herwin nadat dit verwyder is nie. Maak seker dat u 'n rugsteun het voordat u dit verwyder." + :graph/diff "Git diff" + :graph/downloading "laai af" + :graph/encrypt-data-label "Enkripteer grafiekdata" + :graph/excluded-pages "Uitgeslote bladsye" + :graph/forces "Kragte" + :graph/gc-success "Grafiek gc suksesvol!" + :graph/last-opened-at-label "Laas oopgemaak: {1}" + :graph/leave-action "Verlaat hierdie grafiek" + :graph/leave-confirm-desc "Is u seker dat u hierdie grafiek wil verlaat?" + :graph/leave-error "Grafiek verlaten mislukt" + :graph/left "Grafiek verlaten" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "skakel" "skakels"))) + :graph/link-distance "Skakelafstand" + :graph/local-graphs "Plaaslike grafieke" + :graph/n-hops-from-selected-nodes "N hoppe van gekose nodusse" + :graph/name-placeholder "jou grafieknaam" + :graph/nodes "Nodusse" + :graph/orphan-pages "Weesbladsye" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "bladsy" "bladsye"))) + :graph/pause-simulation "Onderbreek simulasie" + :graph/preparing "berei voor" + :graph/refresh-remote-graphs "Verfris afgeleë grafieke" + :graph/remote-graphs "Afgeleë grafieke" + :graph/removed "Verwyder grafiek \"{1}\"" + :graph/removed-and-redirecting "Verwyder grafiek \"{1}\". Herlei tans na grafiek \"{2}\"" + :graph/removed-from-sync "Grafiek uit synchronisatie verwijderd" + :graph/reset "Herstel grafiek" + :graph/reset-forces "Herstel kragte" + :graph/search "Soek" + :graph/shared-graphs "Gedeelde grafieke" + :graph/updated-switching "Grafiek bijgewerkt. Schakelen..." + :graph/use-sync-beta "Gebruik Logseq Sync (beta-toetsing)" + :graph/use-sync-label "Gebruik Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Kon nie grafiekkontrolesomdiagnostiek bereken nie." + :graph.diagnostics/checksum-recomputed-success "Kontrolesom herbereken. Herbereken: {1}, plaaslik: {2}, afgeleë: {3}. {4}.edn is afgelaai met {5} blokke en kontrolesom-eienskappe {6}." + :graph.diagnostics/checksum-unavailable-warning "Kan nie kontrolesomdiagnostiek vir die huidige grafiek bereken nie." + :graph.diagnostics/client-ops-export-failed-error "Kon nie Client ops SQLite uitvoer nie." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Uitvoer van Client ops SQLite het misluk: ongeldige payload-tipe {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite uitgevoer: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Geen grafiek gevind nie." + + :graph.page/show-journals "Wys joernale" + :graph.page/title "Bladsygrafiek" + + :graph.switch/add-graph-action "Voeg grafiek by" + :graph.switch/empty-desc "Geen items beskikbaar nie" + :graph.switch/prompt "Wissel" + :graph.switch/select-prompt "Kies grafiek" + + :graph.validation/config-arweave-gateway-warning "word nie meer ondersteun nie." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "word nie meer ondersteun nie. Gebruik asseblief '/' en rapporteer foute daarvan." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "word nie in DB-grafieke gebruik nie omdat daar slegs markdown-modus is." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Validering het {1} ongeldig(e) blok(ke) opspoor. Hierdie blokke kan gebrekkig wees. Probeer om ongeldig blokke te herstel. Voer validering weer uit om te sien of hulle herstel is." + :graph.validation/name-reserved-characters-warning "Grafieknaam kan nie die volgende gereserveerde karakters bevat nie:" + :graph.validation/reserved-character-asterisk "asterisk" + :graph.validation/reserved-character-backslash "backslash" + :graph.validation/reserved-character-colon "dubbelpunt" + :graph.validation/reserved-character-double-quote "dubbele aanhalingsteken" + :graph.validation/reserved-character-forward-slash "skuinsstreep" + :graph.validation/reserved-character-greater-than "groter as" + :graph.validation/reserved-character-hash "hekkie" + :graph.validation/reserved-character-less-than "kleiner as" + :graph.validation/reserved-character-pipe "vertikale streep of pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "vraagteken" + :graph.validation/valid "U grafiek is geldig! {1}" + + :header/go-back "Terug" + :header/go-forward "Vorentoe" + :header/highlight-recent-blocks "Merk onlangse blokke" + :header/highlight-recent-blocks-days-ago "Merk onlangse blokke: {1} dae gelede" + :header/more "Meer" + :header/quit-highlight-recent-blocks "Staak uitlig van onlangse blokke" + :header/toggle-left-sidebar "Wissel linker sypaneel" + + :help/about "Oor Logseq" + :help/about-title "Oor" + :help/ask-community "Vra die gemeenskap" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Blok verwysing" + :help/blog "Blog" + :help/bug "Rapporteer fout op GitHub" + :help/changelog "Veranderingslog" + :help/community-title "Gemeenskap" + :help/context-menu "Konteks kaart" + :help/context-menu-action "Regskliek kolpunt" + :help/development-title "Ontwikkeling" + :help/docs "Dokumentasie" + :help/feature "Kenmerkversoek" + :help/forum-community "Forumgemeenskap" + :help/handbook "Handboek" + :help/learn-more "Leer meer" + :help/markdown-syntax "Markdown-sintaksis" + :help/open-link-in-sidebar "Maak skakel in kantlys oop" + :help/open-link-in-sidebar-action "Shift-kliek verwysing" + :help/privacy "Privaatheidsbeleid" + :help/reference-autocomplete "Blad verwysing Outovoltooi" + :help/release-notes "Vrystellingsnotas" + :help/roadmap "Padkaart" + :help/search "Soek" + :help/slash-autocomplete "Slash outovoltooi" + :help/start "Aan die gang" + :help/submit-feedback "Dien terugvoer in" + :help/support-forum "Ondersteuningsforum" + :help/terms "Voorwaardes" + :help/terms-title "Voorwaardes" + :help/usage-title "Gebruik" + + :help.handbook/chat-on-discord "Gesels op Discord" + :help.handbook/chat-on-discord-desc "Vra vinnige vrae, ontmoet medegebruikers en leer nuwe werksvloeie." + :help.handbook/copy-topic-link "Kopieer onderwerpsskakel" + :help.handbook/current-chapter "Huidige hoofstuk" + :help.handbook/help-categories "Hulpkategorieë" + :help.handbook/home "Tuis" + :help.handbook/link-copied "Handboekskakel gekopieer!" + :help.handbook/monthly-posts "maandelikse plasings" + :help.handbook/next-chapter "Volgende hoofstuk" + :help.handbook/popular-topics "Gewilde onderwerpe" + :help.handbook/prev-chapter "Vorige hoofstuk" + :help.handbook/resources-from "Hulpbronne van {1}" + :help.handbook/search-placeholder "Soek" + :help.handbook/shortcuts-count "{1} sneltoetse" + :help.handbook/sync "Sinkronisering" + :help.handbook/title "Handboek" + :help.handbook/topics "Onderwerpe" + :help.handbook/users-online "gebruikers aanlyn" + :help.handbook/visit-the-forum "Besoek die forum" + :help.handbook/visit-the-forum-desc "Gee terugvoer, versoek kenmerke en voer diepgaande gesprekke." + :help.handbook/writing-mode "Skryfmodus (voorskou binnekort)" + + :help.shortcuts/desc "Wys kortpaaie en wenke" + :help.shortcuts/label "Sleutelbord kortpaaie" + :help.shortcuts/shortcut-column "Kortpad" + :help.shortcuts/title "Snelsleutels" + :help.shortcuts/triggers "Snelsleutels en snellers" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Ikone ({1})" + :icon/matched-count "Gevind ({1})" + :icon/search-all "Soek alles" + :icon/search-emojis "Soek emojis" + :icon/search-icons "Soek ikone" + :icon/tab-all "Alles" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Ikone" + + :import/all-tags "Alle tags voer in" + :import/asset-too-large-warning "Kopiëring van bate {1} is oorgeslaan omdat dit die limiet van 100 MB oorskry." + :import/assets-import-partial "{1}/{2} lêers geïmporteerd. Details in console." + :import/assets-imported "{1} lêers geïmporteerd." + :import/assets-skipped "{1} lêers overgeslagen. Details in console." + :import/block-icons-cannot-be-imported "Blokpictogrammen kunnen nie worden geïmporteerd. Importeer handmatig in blok {1}." + :import/cannot-import-block-into-non-block-entity "Kan blok nie voer in in niet-blokentiteit." + :import/db-edn-desc "Voer 'n DB-grafiek se EDN-uitvoer in na 'n nuwe DB-grafiek" + :import/db-edn-title "EDN na DB-grafiek" + :import/debug-transit-desc "Voer ontfoutings-transit-lêer in na 'n nuwe DB-grafiek" + :import/debug-transit-title "Ontfoutings-Transit" + :import/default-db-graph-behavior "Verstek DB-grafiekgedrag" + :import/empty-graph-name "Grafieknaam mag nie leeg zijn." + :import/extract-inline-code-snippets "Inline codefragmenten extraheren als subblokken" + :import/file-finished "Import voltooid!" + :import/file-to-db-desc "Voer 'n lêergebaseerde Logseq-grafiekgids in na 'n nuwe DB-grafiek" + :import/file-to-db-title "Lêer na DB-grafiek" + :import/graph-name-conflict "Er bestaat reeds 'n grafiek met deze naam. Kies 'n andere naam!" + :import/graph-name-placeholder "Grafieknaam" + :import/ignored-assets "{1} lêers overgeslagen tijdens import. Details in die JavaScript-console." + :import/ignored-files "{1} lêers overgeslagen tijdens import. Details in die JavaScript-console." + :import/ignored-properties "{1} eienskappe overgeslagen tijdens import" + :import/ignored-properties-fix "Om die eienskapstype te corrigeren, wijzig die waarde en importeer opnieuw" + :import/invalid-blocks-detected "{1} ongeldige blokken gedetecteerd. Interactie werkt mogelijk niet. Details in die JavaScript-console." + :import/invalid-edn-file "Het opgegeven EDN-lêer is ongeldig. Corrigeer die en probeer opnieuw." + :import/loading "Voer in" + :import/logseq-config-missing "Importfout: Logseq-grafiek bevat geen 'logseq/config.edn' lêer." + :import/new-graph-name "Nuwe grafieknaam" + :import/notes "Voer notas in" + :import/org-files-imported "{1} Org-lêers geïmporteerd als Markdown. Org-ondersteuning wordt later toegevoegd." + :import/page-icons-cannot-be-imported "Bladsypictogrammen kunnen nie worden geïmporteerd. Importeer handmatig op bladsy {1}." + :import/properties-case-insensitive-commas "Eienskapsnamen (hoofdletterongevoelig, kommagescheiden)" + :import/property-classes-placeholder "bijv. type" + :import/property-import-manually "Deze eienskap moet handmatig worden geïmporteerd" + :import/property-parent-classes-placeholder "bijv. parent" + :import/property-type-mismatch "Eienskapswaarde is van type {1}, nie {2}" + :import/property-value-tag-parents "Tag-bovenliggende elementen voer in uit eienskapswaarden" + :import/property-value-tags "Extra tags voer in uit eienskapswaarden" + :import/remove-inline-tags "Inline tags verwyder" + :import/select-edn-or-json "Selecteer 'n EDN- of JSON-lêer." + :import/specific-tags "Specifieke tags voer in" + :import/sqlite-and-assets-desc "Voer 'n zip in wat db.sqlite en 'n bategids bevat" + :import/sqlite-and-assets-title "SQLite + bates (.zip)" + :import/submitted-edn-invalid "De opgegeven EDN-gegevens zijn ongeldig! Corrigeer en probeer opnieuw." + :import/successful "Invoer suksesvol!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tags (hoofdletterongevoelig)" + :import/title "Invoer" + :import/unexpected-error "Onverwachte fout: {1}" + :import/zip-import-error "Zip-invoer het misluk: {1}" + :import/zip-missing-db-sqlite "ZIP-lêer bevat geen db.sqlite" + + :journal/add-blocks-to-today-success "Vandaag toegevoegde blokken" + :journal/page-cant-convert-warning "Deze bladsy is geen dagboekbladsy." + :journal/parse-date-to-name-error "Dagboeknaam parseren mislukt" + + :journal.default-query/doing "BESIG" + :journal.default-query/todo "TE DOEN" + + :keymap/all "Alles" + :keymap/already-bound "Snelsleutel reeds toegewezen" + :keymap/also-used-for-action "Ook gebruikt voor {1}" + :keymap/also-used-for-action-in-context "Ook gebruikt voor {1} In context {2}" + :keymap/clear "Maak skoon" + :keymap/clear-keystroke-filter "Verwyder toetsaanslagfilter" + :keymap/clear-search "Verwyder soektog" + :keymap/custom "Pasgemaak" + :keymap/deactivates-chord "Deaktiveer" + :keymap/deactivates-chords "Deaktiveer {1} kortpadkombinasies" + :keymap/disabled "Gedeaktiveer" + :keymap/esc-is-reserved "Esc is gereserveerd" + :keymap/hint-cancel "Kanselleer" + :keymap/hint-close "Sluit" + :keymap/hint-reassign "Opnieuw toewijzen" + :keymap/hint-remove "Verwyder" + :keymap/keystroke-filter "Toetsaanslagfilter" + :keymap/no-matching-shortcuts "Geen overeenkomende snelsleutels" + :keymap/press-a-shortcut "Druk op 'n snelsleutel" + :keymap/press-keys-to-filter "Druk op toetsen om te filteren" + :keymap/reassign "Opnieuw toewijzen" + :keymap/reassign-tooltip "De snelsleutel van deze actie opnieuw toewijzen" + :keymap/reassigned-from "Opnieuw toegewezen van {1}" + :keymap/refresh-all "Verfris alles" + :keymap/remove-binding "Verwyder binding" + :keymap/remove-filter "Verwyder filter" + :keymap/reset "Herstel" + :keymap/reset-to-default "Verstek herstellen" + :keymap/search-by-keys "Soek op toetsen" + :keymap/search-placeholder "Snelsleutel soek…" + :keymap/shortcut-added "Snelsleutel toegevoegd" + :keymap/shortcut-removed "Snelsleutel verwijderd" + :keymap/toggle-categories-pane "Wissel kategoriepaneel" + :keymap/undo "Ontdoen" + :keymap/unset "Niet ingesteld" + :keymap/used-by-action "Gebruikt door {1}" + + :library/add-existing-pages "Voeg bestaande bladsye by Biblioteek" + :library/add-pages "Voeg bladsye by" + :library/title "Biblioteek" + + :mobile/camera-access-denied "Kamera-toegang is geweier. Aktiveer dit in Instellings > Logseq." + :mobile/microphone-access-denied "Mikrofoon-toegang is geweier. Aktiveer dit in Instellings > Logseq." + + :mobile.header/actions "Aksies" + :mobile.header/create-graph "Grafiek aanmaken" + :mobile.header/delete-block-confirm-desc "Dit blok verwyder?" + :mobile.header/delete-page-confirm-desc "Deze bladsy verwyder?" + + :mobile.intent/file-options "Lêeropsies" + :mobile.intent/open-with-app "Maak lêer oop met jou gunstelingtoep" + :mobile.intent/select-option-prompt "Kies 'n opsie om uit te voer" + :mobile.intent/share "Deel" + + :mobile.log/all "Alle" + :mobile.log/errors-only "Alleen fouten" + :mobile.log/full "Volledig" + :mobile.log/new-first "Nieuwste eerst" + :mobile.log/old-first "Oudste eerst" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Rekening" + :mobile.settings/check-log "Logboek" + :mobile.settings/discord-community "Discord-community" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Bug melden" + :mobile.settings/revision "Revisie" + :mobile.settings/theme "Tema" + :mobile.settings/version "Weergawe" + + :mobile.share/file-import-error "Lêer voer in mislukt" + :mobile.share/media-import-error "Media voer in mislukt" + :mobile.share/unsupported-content-warning "Ontleding van huidige gedeelde inhoud word nie ondersteun nie. Rapporteer asseblief die volgende kodes op {1}. Ons sal dit binnekort ondersoek." + :mobile.share/unsupported-import-type "Invoer van {1}-lêer word nie ondersteun nie. Jy kan dit op {2} rapporteer. Ons sal dit binnekort ondersoek." + + :mobile.tab/capture "Vastleggen" + :mobile.tab/go-to "Ga naar" + :mobile.tab/graphs "Grafieken" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Kopieer verwysing" + :mobile.toolbar/copy-url "Kopieer URL" + :mobile.toolbar/hide "Versteek" + :mobile.toolbar/indent "Inspringen" + :mobile.toolbar/outdent "Uitspringen" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Herdoen" + :mobile.toolbar/reference "Referentie" + :mobile.toolbar/slash "Schuine streep" + :mobile.toolbar/tag "Etiket" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Ontdoen" + :mobile.toolbar/unselect "Ontkies" + + :nav/all-files "Alle lêers" + :nav/all-journals "Alle joernale" + :nav/appearance "Voorkoms" + :nav/assets "Lêers" + :nav/cannot-go-to-internal-page "Kan nie na interne bladsy gaan nie" + :nav/flashcards "Flitskaarte" + :nav/graph "Grafiek" + :nav/graph-view "Grafiekaansig" + :nav/help "Hulp" + :nav/home "Tuis" + :nav/invalid-jump-error "Ongeldige sprong" + :nav/journals "Joernale" + :nav/plugins "Uitbreidings" + :nav/search "Soek" + :nav/settings "Instellings" + :nav/skip-to-main-content "Gaan na hoofinhoud" + :nav/tasks "Take" + :nav/themes "Temas" + + :nav.all-pages/label "Alle bladsye" + :nav.all-pages/title "Alle bladsye" + + :node/built-in-cant-delete-error "Ingebouwde elementen kunnen nie worden verwijderd." + :node/new "Nuwe node" + + :notification/clear-all "Verwyder alles" + :notification/copied "Gekopieer" + + :onboarding.import/desc "Beschrijving van voer in" + :onboarding.import/sqlite-desc "Importeer vanuit SQLite-database" + :onboarding.import/title "Voer in" + + :onboarding.import-option/desc "Importeer gegevens uit andere applicaties" + :onboarding.import-option/title "Data-invoer" + + :onboarding.setup/desc "Werkspasie vir jou kennis" + :onboarding.setup/title (fn [] ["Welkom by " [:strong "Logseq!"]]) + + :page/add-to-favorites "Voeg by gunstelinge" + :page/added-tag-to-node "Het merker \"{1}\" by \"{2}\" gevoeg" + :page/backlinks "Terugskakels" + :page/clear "Maak skoon" + :page/clear-local-storage-desc "Dit verwyder geringe voorkeure soos donker/lig-tema-voorkeur." + :page/cleared "Skoongemaak" + :page/contents "Inhoud" + :page/convert-to-tag "Skakel om na etiket" + :page/copy-url "Kopieer bladsy-URL" + :page/create "Skep 'n nuwe bladsy" + :page/created-at "Geskep op" + :page/current-graph-as-sqlite-db "huidige grafiek as SQLite-databasis" + :page/default-query-error "Verstek navraag misluk:" + :page/delete "Verwyder" + :page/go-back-home "Gaan terug huis toe" + :page/hide-properties "Versteek eienskappe" + :page/local-storage "plaaslike berging" + :page/logseq-is-having-a-problem "Logseq ondervind 'n probleem" + :page/make-private "Maak privaat" + :page/make-public "Maak publiek" + :page/moved-to-recycle "Nodus is na Herwinning geskuif" + :page/name "Bladsynaam" + :page/no-page-found-to-copy "Geen bladsy gevind om te kopieer nie" + :page/not-found "Bladsy nie gevind nie" + :page/not-found-desc "Oeps! Die bladsy waarna jy soek bestaan nie." + :page/not-found-title "Bladsy nie gevind nie" + :page/not-found-warning "Geen bladsy gevind nie" + :page/open-all-graphs-desc "Jy kan ook na {{All graphs}} gaan om na 'n ander grafiek oor te skakel." + :page/open-issue-desc "As hierdie foutsoeking jou probleem nie opgelos het nie, {{open an issue}} asseblief." + :page/open-properties "Maak eienskappe oop" + :page/rebuild "Herbou" + :page/relaunch "Herbegin" + :page/relaunch-desc "Sluit en heropen die toep." + :page/scheduled-and-deadline "Geskeduleerd en spertyd" + :page/search-index "soekindeks" + :page/send-db-for-debugging "Jy kan dit na help@logseq.com stuur vir ontfouting." + :page/something-went-wrong "Iets het skeefgeloop" + :page/step "Stap {1}" + :page/the-app "die toep" + :page/try "Probeer" + :page/unfavorite "Verwyder van gunstelinge" + :page/unknown "Onbekende bladsy" + :page/updated-at "Opgedateer op" + + :page.convert/block-parent-not-page "Blok kan nie worden geconverteerd. Bovenliggend element is geen bladsy." + :page.convert/cant-be-block "Bladsy \"{1}\" kan nie na 'n blok omgeskakel word nie." + :page.convert/cant-be-block-has-children "Bladsy \"{1}\" kan nie na 'n blok omgeskakel word nie, want dit het bladsykinders." + :page.convert/cant-be-block-move-first "Bladsy \"{1}\" kan nie na 'n blok omgeskakel word nie, skuif dit asseblief eers na 'n ander bladsy." + :page.convert/page-to-tag-action "Skakel \"{1}\" om na etiket" + :page.convert/page-to-tag-built-in "Ingebouwde bladsye kunnen geen tags zijn" + :page.convert/page-to-tag-duplicate "'n Merker met die naam \"{1}\" bestaan ​​reeds." + :page.convert/page-to-tag-namespaced "Naamruimte-bladsye kunnen geen tags zijn" + :page.convert/property-value-to-page "Eienskapswaarde kan nie na bladsy worden geconverteerd." + :page.convert/tag-to-page-action "Skakel etiket om na bladsy" + :page.convert/tag-to-page-built-in "Ingebouwde tags kunnen geen bladsye zijn" + :page.convert/tag-to-page-confirm-desc "Om 'n etiket na 'n bladsy om te skakel, verwyder ook sy eienskappe en die etiket van alle nodusse wat daarmee gemerk is. Is jy oukei daarmee?" + :page.convert/tag-to-page-duplicate "'n Bladsy met die naam \"{1}\" bestaan reeds." + :page.convert/tag-to-page-has-children "Tag heeft onderliggende elementen en kan nie worden geconverteerd" + + :page.delete/batch-confirm-title "Is jy seker jy wil hierdie bladsye uitvee? Eienskappe en etikette sal permanent uitgevee word en bladsye sal na Herwinning geskuif word." + :page.delete/confirm-title "Is jy seker jy wil hierdie bladsy uitvee?" + :page.delete/permanent-confirm-title "Is jy seker jy wil hierdie bladsy permanent uitvee?" + :page.delete/success "Bladsy \"{1}\" is suksesvol uitgevee!" + :page.delete/total "Totaal: {1}" + :page.delete/warning "Die inhoud van hierdie bladsye is uitgevee, maar kon nie uitgevee word nie: {1}. Sien javascript-konsole vir meer besonderhede." + + :page.validation/cant-set-built-in-tags "Nuwe bladsy kan nie ingeboude merkers stel nie: {1}" + :page.validation/duplicate "'n Ander bladsy met die naam \"{1}\" bestaan ​​reeds vir merkers: {2}." + :page.validation/name-blank "Bladsynaam mag nie leeg zijn." + :page.validation/name-no-hash "Bladsynaam kan nie # insluit nie" + :page.validation/name-no-slash "Bladsynaam mag geen / bevatten." + :page.validation/parents-must-be-pages "Bovenliggende bladsye moeten bladsye zijn." + + :pdf/annotations-page "Aantekeninge-bladsy" + :pdf/area-highlight-shortcut "Gebiedsuitligting ({1})" + :pdf/auto-fit "Outomatiese pas" + :pdf/auto-open-context-menu "Contextmenu outomaties maak oop" + :pdf/copy-ref "Kopieer PDF-verwysing" + :pdf/copy-text "Kopieer teks" + :pdf/corrupted-file-error "Fout: {1}\nIs hierdie .pdf-lêer korrup?\nBevestig asseblief met 'n eksterne PDF-kyker." + :pdf/doc-metadata "Dokumentmetadata" + :pdf/enter-to-search "Enter om te soek" + :pdf/find-results "{1} van {2} treffers (\"{3}\")" + :pdf/generic-error "Fout: {1}\n{2}\nBevestig asseblief met die PDF-lêerbron." + :pdf/highlight-mode "Uitligtingsmodus" + :pdf/highlights "Uitligtings" + :pdf/hl-block-colored "Gekleurde uitligging" + :pdf/linked-ref "Gekoppelde verwysing" + :pdf/load-highlights-file-error "Fout: kon die hooglighslêer nie laai nie: \"{1}\". \n{2}" + :pdf/missing-file-error "Fout: {1}\n Is dit die korrekte pad?" + :pdf/more-settings "Meer instellings" + :pdf/no-outlines "Geen omlyning nie" + :pdf/not-found "Nie gevind nie." + :pdf/open-in-app-window "Maak oop in toepvenster" + :pdf/open-in-external-window "Maak oop in eksterne venster" + :pdf/outline "Omlyning" + :pdf/page-label "Bladsy {1}" + :pdf/password-protected-desc "Hierdie dokument is wagwoordbeskerm. Voer asseblief 'n wagwoord in:" + :pdf/password-required "Wagwoord benodig" + :pdf/search "Soek" + :pdf/search-placeholder "soek" + :pdf/toggle-dashed "Wissel stippellyn" + :pdf/viewer "PDF-kyker" + :pdf/zoom-in "Zoem in" + :pdf/zoom-out "Zoem uit" + + :plugin/all "Alles" + :plugin/auto-update-check "Outomaties op updates controleren" + :plugin/auto-update-check-feedback "Outomatiese opdateringkontrole: {1}!" + :plugin/check-all-updates "Kyk vir alle opdaterings" + :plugin/check-update "Kyk vir opdaterings" + :plugin/checked "Gekontroleer" + :plugin/checking-for-updates "Updates controleren" + :plugin/contribute "✨ Bydra" + :plugin/custom-js-alert "Pasgemaakte JS-waarskuwing" + :plugin/date-added "Datum toegevoegd" + :plugin/delete-alert "Is jy seker jy wil die inprop [{1}] deïnstalleer?" + :plugin/disable-for-performance-feedback "Die inprop {1} is gedeaktiveer." + :plugin/disable-now "Deaktiveer nou" + :plugin/disabled "Gedeaktiveer" + :plugin/does-not-support-db "Ondersteun nie DB-grafieke nie" + :plugin/downloads "Downloads" + :plugin/empty "Niks gevind nie." + :plugin/enabled "Geaktiveer" + :plugin/existed-package "Bestaande inproppakket ({1})." + :plugin/fatal-error "Fataal: {1}" + :plugin/found-n-updates "{1} updates gevonden" + :plugin/found-updates "Updates gevonden" + :plugin/install "Installeer" + :plugin/install-error "Installasie het misluk: {1}\n{2}" + :plugin/installed "Geïnstalleer" + :plugin/installed-plugin "Geïnstalleerde inprop: {1}" + :plugin/installing "Installeer tans" + :plugin/invalid-github-repo-url "Ongeldige GitHub-repo-URL" + :plugin/invalid-package "Ongeldig pakket" + :plugin/invalid-plugins-edn "Ongeldige plugins.edn" + :plugin/list-of-updates "Updatelijst" + :plugin/load-from-web-url "Laden vanuit URL" + :plugin/load-plugin-indicator "Laai plugin: {1}..." + :plugin/load-unpacked "Laai ongepakte uitbreiding" + :plugin/loading-indicator "LAAI" + :plugin/malformed-plugins-edn "Onjuiste plugins.edn" + :plugin/marketplace "Uitbreidingswinkel" + :plugin/new-registered "Nieuwe plug-in geregistreerd" + :plugin/no-settings-schema "Geen instellingskema nie!" + :plugin/not-installed "Nie geïnstalleer nie" + :plugin/open-logseq-dir "Logseq-map maak oop" + :plugin/open-package "Maak pakket oop" + :plugin/open-preferences "Voorkeuren maak oop" + :plugin/open-settings "Maak instellings oop" + :plugin/perf-tip "Hierdie inprop {1} neem te lank om te laai, wat die toepassingsopstarttyd beïnvloed en moontlik ander inproppe kan verhoed om te laai." + :plugin/popular "Gewild" + :plugin/proxy-check-success "Sukses! Status {1} oor {2}ms." + :plugin/readme-empty-warning "Geen README-inhoud" + :plugin/refresh-lists "Herlaai lyste" + :plugin/reload "Herlaai" + :plugin/remote-error "Externe fout: {1}" + :plugin/report-modal-desc "As 'n inpropper nie beskikbaar is of u dink dit bevat skadelike kode, stuur asseblief 'n e-pos aan {1}. Noem die naam van die inpropper en die URL van sy GitHub-depository. Die Logseq-span reageer gewoonlik binne 'n besigheidsdag." + :plugin/report-security "Beveiligingsprobleem melden" + :plugin/restart "Herbegin" + :plugin/search-plugin "Plug-in soek" + :plugin/security-warning "Beveiligingswaarskuwing" + :plugin/setting-not-handled "#Nie Hanteer Nie# {1}" + :plugin/settings-schema-error "Instellingskema-fout!" + :plugin/stars "Sterre" + :plugin/supports-db "DB-ondersteuning" + :plugin/title "Titel ({1})" + :plugin/uninstall "Deïnstalleer" + :plugin/unpacked "Ongepak" + :plugin/unpacked-tips "Wenke vir ongepakte uitbreidings" + :plugin/up-to-date "Dit is op datum {1}" + :plugin/update "Opdateer" + :plugin/update-all-selected "Alle geselecteerde opdateer" + :plugin/update-all-success "Alle plug-ins bijgewerkt" + :plugin/update-available "Opdatering beskikbaar" + :plugin/update-plugin "Dateer inprop op: {1} - {2}" + :plugin/updates-downloading "Updates laai af" + :plugin/updating "Opdateer tans" + + :plugin.install-from-file/menu-title "Installeer vanaf lêer" + :plugin.install-from-file/notice "Kies 'n uitbreidingslêer om te installeer" + :plugin.install-from-file/success "Uitbreiding geïnstalleer" + :plugin.install-from-file/title "Installeer uitbreiding vanaf lêer" + + :plugin.install-from-web-url/effect-label "effek" + :plugin.install-from-web-url/repo-url-placeholder "GitHub-repo-URL" + :plugin.install-from-web-url/supports-note "URL's ondersteun beide GitHub-depository's en plaaslike ontwikkelingsbedieners. (Vir voorbeelde: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Deur dit te verwyder, word die plugin net van Logseq losgekoppel en die bronmap onaangeraak gelaat." + :plugin.package-config/parse-error "Kon nie die plugin-pakketkonfigurasie ontleed nie." + :plugin.package-config/remove-error "Kon nie die beskadigde plugin verwyder nie." + :plugin.package-config/remove-external-success "Die beskadigde plugin is uit die pluginlys verwyder." + :plugin.package-config/remove-installed-success "Beskadigde plugin \"{1}\" verwyder." + + :plugin.proxy/direct "Direk" + :plugin.proxy/system "Stelsel" + :plugin.proxy/test-url "Toets-URL" + :plugin.proxy/testing "Toets tans" + + :plugin.settings/edit-settings-json "Wysig settings.json" + :plugin.settings/exit-code-mode "Verlaat kodemodus" + :plugin.settings/title "Uitbreidingsinstellings" + + :plugin.themes/default-desc "Logseq se verstektema ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Temas ({1})" + :plugin.themes/light-and-dark "ligte & donker temas" + + :profiler/input-fn-placeholder "voer funksienaam hier in" + :profiler/unregister "Onregistreer" + + :property/add-choice "Voeg keuse by" + :property/add-choices "Voeg keuses by" + :property/add-description "Voeg beskrywing by" + :property/add-new "Voeg eienskap by" + :property/add-or-change "Voeg eienskap by of verander" + :property/available-choices "Beschikbare keuzes" + :property/change-tooltip "Verander {1}" + :property/checkbox-state-mapping "Selectievaketoewijzing" + :property/children-count "Kinders ({1})" + :property/choices-count "{1} keuses" + :property/choose-tag "Kies etiket" + :property/choose-tags "Kies etikette" + :property/clear-value "Vee uit" + :property/configure "Konfigureer" + :property/convert-page-to-property "Skakel \"{1}\" om na eienskap" + :property/create-error "Eienskap aanmaken mislukt." + :property/default-value "Verstekwaarde" + :property/delete-from-node "Van knooppunt verwyder" + :property/delete-from-node-confirm "Deze eienskap van die knooppunt verwyder?" + :property/delete-from-tag "Van tag verwyder" + :property/delete-from-tag-confirm "Deze eienskap van die tag verwyder?" + :property/description-placeholder "Beschrijving invoeren" + :property/drag-to-reorder "Sleep om te herordenen" + :property/existing-values "Bestaande waarden" + :property/go-to-this-property "Ga na eienskapsbladsy" + :property/hidden-properties "Versteekte eienskappe" + :property/hide-by-default "Versteek by verstek" + :property/hide-choice-for-tag "Keuze versteek vir tag" + :property/hide-empty-value "Lege waarden versteek" + :property/hide-for-tag "Versteek vir #{1}" + :property/hide-hidden-choices "Verborgen keuzes versteek" + :property/map-checked-to "Aangevinkt toewijzen aan" + :property/map-unchecked-to "Niet-aangevinkt toewijzen aan" + :property/more-settings "Meer instellings" + :property/multiple-values "Meervoudige waardes" + :property/multiple-values-confirm "Meerdere waarden aktiveer?" + :property/name "Naam" + :property/name-placeholder "Eienskapsnaam" + :property/nodes-with-property "Nodusse met eienskap" + :property/overdue "Agterstallig" + :property/private-built-in-not-usable "Privé ingebouwde eienskap is nie bruikbaar" + :property/select-choice "Keuze kies" + :property/select-property-placeholder "Kies 'n eienskap" + :property/select-type-placeholder "Kies 'n eienskapstipe" + :property/self-reference "Selfverwysing" + :property/set-default-choice "Verstekkeuze instellen" + :property/set-default-value "Stel verstekwaarde in" + :property/set-icon "Pictogram instellen" + :property/set-placeholder "Stel {1}" + :property/set-property "Stel eienskap" + :property/set-tags "Stel etikette" + :property/set-value "Stel waarde" + :property/show-as-checkbox-on-node "Als selectievakje op knooppunt tonen" + :property/show-as-checkbox-on-tagged-nodes "Als selectievakje op getagde knooppunten tonen" + :property/show-hidden-choices "Verborgen keuzes tonen" + :property/skip-choosing-tag "Tagkeuze overslaan" + :property/specify-node-tags "Knooppunttags opgeven" + :property/title-placeholder "Titel" + :property/type "Tipe" + :property/type-change-warning "Die verandering van eienskapstipe verwyder sommige eienskapkonfigurasies." + :property/type-checkbox "Selectievakje" + :property/type-date "Datum" + :property/type-datetime "Datum/Tijd" + :property/type-locked-help "Type vergrendeld" + :property/type-node "Knooppunt" + :property/type-number "Getal" + :property/type-text "Tekst" + :property/type-url "URL" + :property/ui-position "UI-positie" + :property/ui-position-block-below "Onder blok" + :property/ui-position-block-left "Links van blok" + :property/ui-position-block-right "Rechts van blok" + :property/ui-position-properties "Eienskappe" + :property/unset-property "Verwyder eienskap" + :property/update-success "Opgedateer" + + :property.built-in/alias "Skuilnaam" + :property.built-in/asset "Bate" + :property.built-in/asset-align "Batebelyning" + :property.built-in/asset-checksum "Lêerkontrolsom" + :property.built-in/asset-external-file-name "Eksterne lêernaam" + :property.built-in/asset-external-url "Eksterne URL" + :property.built-in/asset-height "Beeldhoogte" + :property.built-in/asset-last-visit-page "Laaste besoekte bladsy" + :property.built-in/asset-remote-metadata "Lêer afgeleë metadata" + :property.built-in/asset-resize-metadata "Bate hergrootte-metadata" + :property.built-in/asset-size "Lêergrootte" + :property.built-in/asset-type "Lêertipe" + :property.built-in/asset-width "Beeldbreedte" + :property.built-in/background-color "Agtergrondkleur" + :property.built-in/built-in "Ingeboude?" + :property.built-in/checkbox-display-properties "Eienskappe vertoon as merkblokkie" + :property.built-in/choice-checkbox-state "Keuse-merkblokkiestatus" + :property.built-in/choice-classes "Keuseklasse" + :property.built-in/choice-exclusions "Keuse-uitsluitings" + :property.built-in/class-bidirectional-property-title "Tweerigtingeienskapstitel" + :property.built-in/class-enable-bidirectional "Aktiveer tweerigtingeienskappe" + :property.built-in/class-extends "Brei uit" + :property.built-in/class-hide-from-node "Versteek van nodus" + :property.built-in/class-properties "Etiketeienskappe" + :property.built-in/classes "Eienskapklasse" + :property.built-in/closed-value-property "Geslote waarde-eienskap" + :property.built-in/code-lang "Kodemodus" + :property.built-in/collapsed "Nodus ingekort?" + :property.built-in/created-at "Nodus geskep op" + :property.built-in/created-by-ref "Nodus geskep deur" + :property.built-in/created-from-property "Geskep van eienskap" + :property.built-in/deadline "Spertyd" + :property.built-in/default-value "Verstekwaarde" + :property.built-in/deleted-at "Geskrap op" + :property.built-in/deleted-by-ref "Geskrap deur" + :property.built-in/description "Beskrywing" + :property.built-in/enable-history "Aktiveer eienskapgeskiedenis" + :property.built-in/exclude-from-graph-view "Uitgesluit van grafiekaansig?" + :property.built-in/fsrs-due "Verskuldig" + :property.built-in/fsrs-state "Status" + :property.built-in/heading "Opskrif" + :property.built-in/hide "Versteek hierdie eienskap of bladsy" + :property.built-in/hide-empty-value "Versteek leë waarde" + :property.built-in/history-block "Geskiedenisblok" + :property.built-in/history-property "Geskiedeniseienskap" + :property.built-in/history-ref-value "Geskiedeniswaarde" + :property.built-in/history-scalar-value "Geskiedenis skalêre waarde" + :property.built-in/icon "Ikoon" + :property.built-in/journal-day "Joernaaldatum" + :property.built-in/journal-title-format "Titelformaat" + :property.built-in/link "Nodus skakel na" + :property.built-in/linked-references-excludes "Uitgeslote verwysings" + :property.built-in/linked-references-includes "Ingeslote verwysings" + :property.built-in/ls-type "LS-tipe" + :property.built-in/node-display-type "Nodus-vertoontipe" + :property.built-in/order "Nodusvolgorde" + :property.built-in/order-list-type "Lystipe" + :property.built-in/page "Nodusbladsy" + :property.built-in/page-tags "Bladsy-etikette" + :property.built-in/parent "Nodus-ouer" + :property.built-in/priority "Prioriteit" + :property.built-in/public "Eienskap publiek?" + :property.built-in/publish-published-url "Gepubliseerde URL" + :property.built-in/publishing-public "Publisering publiek?" + :property.built-in/query "Navraag" + :property.built-in/reaction-emoji-id "Reaksie-emoji" + :property.built-in/reaction-target "Reaksieteiken" + :property.built-in/recycle-original-order "Herwinning oorspronklike volgorde" + :property.built-in/recycle-original-page "Herwinning oorspronklike bladsy" + :property.built-in/recycle-original-parent "Herwinning oorspronklike ouer" + :property.built-in/refs "Nodusverwysings" + :property.built-in/repeat-checked-property "Herhaalmerkeienskap" + :property.built-in/repeat-recur-frequency "Herhalende herhaalfrekwensie" + :property.built-in/repeat-recur-unit "Herhalende herhaaleenheid" + :property.built-in/repeat-repeated "Nodus herhaal?" + :property.built-in/repeat-temporal-property "Herhalende temporele eienskap" + :property.built-in/scalar-default-value "Nie-verwysingstipe verstekwaarde" + :property.built-in/scheduled "Geskeduleer" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Verwysing na groot bloktitel gestoor in afgeleë objekberging" + :property.built-in/table-filters "Aansigfilters" + :property.built-in/table-hidden-columns "Aansig versteekte kolomme" + :property.built-in/table-ordered-columns "Aansig geordende kolomme" + :property.built-in/table-pinned-columns "Tabelaansig vasgespelde kolomme" + :property.built-in/table-sized-columns "Aansig kolominstellings" + :property.built-in/table-sorting "Aansigsortering" + :property.built-in/tags "Etikette" + :property.built-in/template-applied-to "Pas sjabloon toe op etikette" + :property.built-in/title "Nodustitel" + :property.built-in/type "Eienskapstipe" + :property.built-in/ui-position "Eienskapposisie" + :property.built-in/updated-at "Nodus bygewerk op" + :property.built-in/used-template "Gebruikte sjabloon" + :property.built-in/user-avatar "Gebruikeravatar" + :property.built-in/user-email "Gebruiker-e-pos" + :property.built-in/user-name "Gebruikersnaam" + :property.built-in/value "Eienskapwaarde" + :property.built-in/view-context "Eienskap-aansigkonteks" + :property.built-in/view-feature-type "Aansigkenmerktipe" + :property.built-in/view-for "Hierdie aansig behoort aan" + :property.built-in/view-group-by-property "Aansig groepeer volgens eienskap" + :property.built-in/view-sort-groups-by-property "Aansig sorteer groepe volgens" + :property.built-in/view-sort-groups-desc "Aansig sorteer groepe AFLOPEND" + :property.built-in/view-type "Aansigtipe" + + :property.choice/already-exists "Keuze bestaat al." + :property.choice/cant-delete-built-in "Ingebouwde keuze kan nie worden verwijderd." + :property.choice/invalid "Ongeldige keuse \"{1}\" vir hierdie eiendom: {2}" + + :property.color/blue "blou" + :property.color/green "groen" + :property.color/purple "pers" + :property.color/red "rooi" + :property.color/yellow "geel" + + :property.priority/high "Hoog" + :property.priority/low "Laag" + :property.priority/medium "Medium" + :property.priority/urgent "Dringend" + + :property.repeat/date "Herhaaldatum" + :property.repeat/datetime "Herhaaldatumtyd" + :property.repeat/every "Elke" + :property.repeat/is-label "is:" + :property.repeat/task "Herhaaltaak" + :property.repeat/when "Wanneer" + + :property.repeat-recur-unit/day "Dag" + :property.repeat-recur-unit/hour "Uur" + :property.repeat-recur-unit/minute "Minuut" + :property.repeat-recur-unit/month "Maand" + :property.repeat-recur-unit/week "Week" + :property.repeat-recur-unit/year "Jaar" + + :property.status/backlog "Backlog" + :property.status/canceled "Gekanselleer" + :property.status/doing "Besig" + :property.status/done "Klaar" + :property.status/in-review "In hersiening" + :property.status/todo "Te doen" + + :property.validation/cant-convert-to-number "Kan nie \"{1}\" na 'n getal omskakel nie." + :property.validation/cant-remove-required "Vereiste eienskap kan nie worden verwijderd." + :property.validation/cant-set-self-value "Kan nie als eigen eienskapswaarde worden ingesteld." + :property.validation/duplicate "Eienskap '{1}' bestaat al." + :property.validation/invalid-name "Dit is 'n ongeldige eienskapnaam. 'n Eienskapnaam kan nie met bladsyverwysingkarakters '#' of '[[' begin nie." + :property.validation/invalid-value "Eiendom \"{1}\" het ongeldige waarde: {2}" + :property.validation/many-to-one "Eienskap met meerdere waarden kan nie worden geconverteerd na enkele waarde." + :property.validation/protected "Deze eienskap is beschermd en kan nie worden gewijzigd." + + :property.view-type/gallery "Galeryaansig" + :property.view-type/list "Lysaansig" + :property.view-type/table "Tabelaansig" + + :publish/action "Publiseer" + :publish/dialog-desc "Beskerm hierdie bladsy opsioneel met 'n wagwoord. Laat leeg vir publieke toegang." + :publish/dialog-title "Publiseer bladsy" + :publish/invalid-page-error "Ongeldige bladsy" + :publish/password-optional-placeholder "Opsionele wagwoord" + :publish/publish-error "Publicatie mislukt" + :publish/published-to "Gepubliceerd na {1}" + :publish/publishing "Publiseer tans..." + :publish/unpublish "Ontpubliseer" + :publish/unpublish-error "Publicatie ongedaan maken mislukt" + :publish/unpublish-missing-page-id "Publicatie ongedaan maken: bladsy-ID ontbreekt" + :publish/unpublished "Publicatie ongedaan gemaakt" + + :query/advanced-results "Gevorderde navraagresultate" + :query/custom-view-error "Pasgemaakte aansigfout: {1}" + :query/error "Navraagfout:" + :query/examples-desc "Kyk meer voorbeelde by {{Queries documentation}}." + :query/examples-title "Navraagvoorbeelde:" + :query/results-for "Resultate vir {1}" + + :query.builder/add-filter-or-operator-placeholder "Voeg filter/operator by" + :query.builder/between-end-label "Einddatum" + :query.builder/between-journal-label "tussen: {1} ~ {2}" + :query.builder/between-start-label "Begindatum" + :query.builder/created-label "Geskep" + :query.builder/filter "Filter" + :query.builder/filter-full-text-search-label "Voltekssoek" + :query.builder/filter-page-label "Bladsy" + :query.builder/filter-page-reference-label "Bladsyverwysing" + :query.builder/filter-sample-label "Steekproef" + :query.builder/operator-and-label "en" + :query.builder/operator-not-label "nie" + :query.builder/replace-with-label "Vervang met:" + :query.builder/search-label "Soek: {1}" + :query.builder/show-built-in-properties "Wys ingeboude eienskappe" + :query.builder/unwrap-operator "Ontvou" + :query.builder/updated-label "Bygewerk" + :query.builder/wrap-filter-with-label "Vou hierdie filter met:" + + :reference/blocks "Blok verwysing" + :reference/copy "Kopieer verwysing" + :reference/delete "Verwyder verwysing" + :reference/page-filter "Bladsyfilter" + :reference/replace-with-embed "Vervang met inbedding" + :reference/replace-with-text "Vervang met teks" + + :reference.filter/directions "Filterrichtingen" + :reference.filter/excludes "Uitgesloten" + :reference.filter/includes "Inbegrepen" + :reference.filter/search-placeholder "Soek" + :reference.filter/title "Filter" + + :search/blank-input "Leë invoer" + :search/full-text-placeholder "Voltekssoektog" + :search/index-progress "Indekseer {1}%" + :search/indices-rebuilt-success "Soekindekse is suksesvol herbou!" + :search/no-result "Geen resultate nie" + :search/result-count "{1} resultate" + + :search.find-in-page/input-placeholder "Soek in bladsy" + :search.find-in-page/match-case "Hooflettersensitief" + :search.find-in-page/next-result "Volgende resultaat" + :search.find-in-page/previous-result "Vorige resultaat" + + :select/default-prompt "Kies een" + :select/default-select-multiple "Kies een of meer" + :select/new-option "+ Nuwe opsie: {1}" + + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "MCP-URL gekopieerd" + :server/start "Begin" + :server/stop "Stop" + :server/title "HTTP API-server" + + :server.config/auto-start-label "Outomaties starten" + :server.config/port-label "Poortbereik" + :server.config/reset "Herstel" + :server.config/save-and-apply "Stoor en pas toe" + :server.config/title "Serverconfiguratie" + + :server.status/closed "Gesloten" + :server.status/closing "Sluit" + :server.status/error "Fout" + :server.status/running "Actief" + :server.status/starting "Starten" + :server.status/stopped "Gestopt" + + :server.token/add-new "Nieuw token voeg by" + :server.token/name-placeholder "Servernaam" + :server.token/regenerate-value "Tokenwaarde opnieuw genereren" + :server.token/title "Autorisatietokens" + :server.token/update-success "Tokens bijgewerkt" + :server.token/value-placeholder "Waarde" + + :settings/account "Rekening" + :settings/advanced "Gevorderd" + :settings/ai "KI" + :settings/collaboration "Samewerking" + :settings/editor "Redigeerder" + :settings/encryption "Enkripsie" + :settings/features "Kenmerke" + :settings/general "Algemeen" + :settings/keymap "Snelsleutels" + :settings/plugins "Uitbreidingsinstellings" + + :settings.account/storage-usage "{1}GB van {2}GB totale berging ({3})" + :settings.account/synced-graphs "{1} van {2} gesinkroniseerde grafieke ({3})" + + :settings.advanced/auto-chmod "Outomaties chmod" + :settings.advanced/auto-chmod-desc "Lêersmachtigingen outomaties instellen" + :settings.advanced/auto-updater "Outomatiese opdaterings" + :settings.advanced/developer-mode "Ontwikkelaar modus" + :settings.advanced/developer-mode-desc "Ontwikkelaarmodus help bydraers en ontwikkelaars van uitbreidings om hul integrasie met Logseq doeltreffender te toets." + :settings.advanced/disable-sentry "Deaktiveer Sentry" + :settings.advanced/disable-sentry-desc "Deaktiveer ongelukrapportering" + :settings.advanced/network-proxy "Netwerkvolmag" + + :settings.ai/enable-mcp-server "Aktiveer MCP-bediener" + :settings.ai/enable-mcp-server-desc "MCP-server aktiveer vir AI-integratie" + + :settings.editor/auto-expand-block-refs "Blokreferenties outomaties uitklappen" + :settings.editor/auto-expand-block-refs-tip "Klik om blokreferenties outomaties uit te klappen" + :settings.editor/custom-date-format "Pasgemaakte datumformaat" + :settings.editor/enable-all-pages-public "Maak alle bladsye publiek" + :settings.editor/enable-shortcut-tooltip "Aktiveer snelsleutelwenke" + :settings.editor/enable-tooltip "Aktiveer nutswenke" + :settings.editor/preferred-outdenting "Voorkeur-uitspring" + :settings.editor/preferred-outdenting-tip "Inspringingtip" + :settings.editor/preferred-outdenting-tip-more "→ Meer over inspringen" + :settings.editor/preferred-pasting-file "Voorkeurlêerplakking" + :settings.editor/preferred-pasting-file-hint "Lêer plakken tip" + :settings.editor/show-brackets "Wys hakies" + :settings.editor/show-full-blocks "Wys volle blokke" + :settings.editor/spell-checker "Speltoetser" + :settings.editor/wide-mode "Wye modus" + + :settings.features/enable-flashcards "Aktiveer flitskaarte" + :settings.features/enable-journals "Aktiveer joernale" + :settings.features/home-default-page "Verstek tuisbladsy" + :settings.features/home-default-page-update-success "Verstekbladsy opgedateer" + :settings.features/journals-enable-success "Joernale geaktiveer" + :settings.features/login-prompt "Meld aan om te sinkroniseer" + :settings.features/page-not-found "Die bladsy \"{1}\" bestaan nog nie. Skep asseblief eers daardie bladsy en probeer dan weer." + :settings.features/plugin-system "Uitbreidingstelsel" + + :settings.general/accent-color "Aksentkleur" + :settings.general/accent-color-alert "Kleurwaarskuwing" + :settings.general/accent-color-logseq "Logseq klassieke kleur" + :settings.general/accent-color-none-desc "Kanselleer aksentkleur. Dit is tans in betafase en word hoofsaaklik vir versoenbaarheid met pasgemaakte temas gebruik." + :settings.general/changelog "Veranderingslog" + :settings.general/check-for-updates "Kyk vir opdaterings" + :settings.general/current-revision-label "Huidige revisie" + :settings.general/current-version "Huidige weergawe" + :settings.general/custom-configuration "Pasgemaakte konfigurasie" + :settings.general/custom-global-configuration "Pasgemaakte globale konfigurasie" + :settings.general/custom-theme "Pasgemaakte tema" + :settings.general/edit-config-edn "Wysig config.edn (vir huidige stoor)" + :settings.general/edit-custom-css "Wysig pasgemaakte CSS" + :settings.general/edit-export-css "Wysig uitvoer-CSS" + :settings.general/edit-global-config-edn "Wysig globale config.edn" + :settings.general/editor-font "Redigeerder-lettertipe" + :settings.general/editor-font-set-global "Stel as globale lettertipefamilie" + :settings.general/export-theme "Voer tema uit" + :settings.general/language "Taal" + :settings.general/native-titlebar "Stelseltitelbalk" + :settings.general/native-titlebar-desc "Systeemeigen titelbalk gebruiken" + :settings.general/refresh-required-feedback "Vernieuwen vereist" + :settings.general/release-channel "vrystelling kanaal" + :settings.general/revision "Hersiening: {1}" + :settings.general/theme-dark "Donker" + :settings.general/theme-light "Lig" + :settings.general/theme-system "Stelsel" + + :settings.sync-server/clear-success "Sinkronisasiebediener-URL uitgevee. Gebruik amptelike Logseq Sync." + :settings.sync-server/reset "Verstek herstellen" + :settings.sync-server/save-success "Sinkronisasiebediener-URL gestoor." + :settings.sync-server/url "Sinkronisasiebediener-URL" + :settings.sync-server/url-desc "Stel 'n pasgemaakte HTTPS-sinkronisasiebediener-URL vir self-gehoste sinkronisasie. Jou Logseq-verifikasietokens sal na hierdie bediener gestuur word, gebruik dus slegs 'n betroubare URL. Laat dit leeg om die amptelike Logseq Sync te gebruik." + :settings.sync-server/url-invalid-error "URL moet met https:// of http:// begin" + + :shell/input-command-title "Voer opdrag in" + + :shortcut.category/basics "Basiese" + :shortcut.category/block-command-editing "Blok-opdragwysiging" + :shortcut.category/block-editing "Blokwysiging" + :shortcut.category/block-selection "Blokseleksie" + :shortcut.category/formatting "Formatering" + :shortcut.category/navigating "Navigasie" + :shortcut.category/others "Ander" + :shortcut.category/plugins "Uitbreidings" + :shortcut.category/toggle "Wissel" + + :sidebar.left/favorites "Gunstelinge" + :sidebar.left/navigations "Navigasie" + :sidebar.left/recent-pages "Onlangse bladsye" + + :sidebar.right/close "Sluit paneel" + :sidebar.right/close-all "Sluit alle panele" + :sidebar.right/close-others "Sluit ander panele" + :sidebar.right/collapse "Vou paneel op" + :sidebar.right/collapse-all "Vou alle panele op" + :sidebar.right/collapse-others "Vou ander panele op" + :sidebar.right/expand "Brei paneel uit" + :sidebar.right/expand-all "Brei alle panele uit" + :sidebar.right/more "Meer" + :sidebar.right/open "Maak in kantlys oop" + :sidebar.right/open-as-page "Maak oop as bladsy" + :sidebar.right/resize-handle "Skeiding" + :sidebar.right/toggle "Wissel regter sypaneel" + + :storage/invalid-data-writing "Ongeldige gegevensschrijving." + :storage/sqlitedb-error "SQLiteDB-fout: {1}" + :storage/sqlitedb-import-error "SQLiteDB invoerfout: {1}" + :storage/sqlitedb-save-error "SQLiteDB stoor fout: {1}" + + :storage.recycle/block-deleted-at "Blok uitgevee {1}" + :storage.recycle/empty "Herwinning is leeg." + :storage.recycle/page-deleted-at "Bladsy uitgevee {1}" + :storage.recycle/readonly "Prullenbak (alleen-lezen)" + :storage.recycle/restore "Herstel" + :storage.recycle/retention-desc "Geskrapte bladsye en blokke bly hier totdat hulle herstel word of na 30 dae outomaties opgeskoon word." + :storage.recycle/title "Herwinning" + + :sync/assets-downloading-count "Bates word afgelaai ({1})" + :sync/assets-uploading-count "Bates word opgelaai ({1})" + :sync/creating-remote-graph "Skep tans afgeleë grafiek..." + :sync/downloading "Laai af..." + :sync/downloading-graph "Laai {1} af ..." + :sync/graph-count-exceed-limit "Grens grafiekaantal overschreden" + :sync/invitation-sent "Uitnodiging verzonden" + :sync/last-synced-time-label "Laaste sinchronisasietyd: {1}" + :sync/more-debug-info "Meer foutsporingsinfo" + :sync/offline "Vanlyn" + :sync/online "Aanlyn" + :sync/pending-local-changes "hangende plaaslike wysiginge" + :sync/pending-server-changes "hangende bediener-wysiginge" + :sync/something-wrong "Synchronisatiefout" + :sync/start-sync "Begin sinkronisering" + :sync/storage-exceed-limit "Opslaglimiet overschreden" + :sync/uploading "Laai op..." + :sync/user-doesnt-exist-yet "Gebruiker bestaat nog niet" + + :theme/logseq-default "Logseq-verstektema" + :theme/switch-to "Skakel oor na die {1} tema" + + :ui/all-done "Alles klaar" + :ui/apply "Pas toe" + :ui/cancel "Kanselleer" + :ui/close "Sluit" + :ui/configure "Stel op" + :ui/confirm "Bevestig" + :ui/copy "Kopieer" + :ui/copy-all "Kopieer alles" + :ui/copy-to-clipboard "Kopieer na knipbord" + :ui/create "Skep" + :ui/date-natural-language-placeholder "bv. Volgende week" + :ui/delete "Verwyder" + :ui/deleted "Verwyder" + :ui/dont-remind-me-again "Moet my nie weer herinner nie" + :ui/empty "Leeg" + :ui/error "Fout" + :ui/error-boundary-error "Fout gevang deur UI!\n {1}" + :ui/export "Voer uit" + :ui/false "Onwaar" + :ui/fix "Maak reg!" + :ui/frequently-used "Gereeld gebruik" + :ui/from "Van: " + :ui/host "Host" + :ui/image "beeld" + :ui/label "Etiket" + :ui/link "Skakel" + :ui/load-more "Laai meer" + :ui/loading "Laai" + :ui/login "Meld aan" + :ui/logout "Meld af" + :ui/off "AF" + :ui/on "AAN" + :ui/open "Maak oop" + :ui/open-named "Maak {1} oop" + :ui/port "Poort" + :ui/refresh "Verfris" + :ui/relaunch-confirm "Hierdie verandering vereis dat die app herbegin word. Herbegin nou?" + :ui/remove-background "Verwyder agtergrond" + :ui/reset "Herstel" + :ui/run "Voer uit" + :ui/save "Stoor" + :ui/show-less "Wys minder" + :ui/show-more "Wys meer" + :ui/skip "Slaan oor" + :ui/submit "Dien in" + :ui/to "Na: " + :ui/toggle-theme "Wissel tema" + :ui/true "Waar" + :ui/type "Tipe" + :ui/untitled "Titelloos" + :ui/use-current-time "Gebruik huidige tyd" + :ui/yes "Ja" + + :updater/checking-for-updates "Kyk vir opdaterings" + :updater/downloading-progress "Laai opdatering af ({1}%)" + :updater/quit-and-install "Herbegin en installeer" + :updater/up-to-date "Applicatie bijgewerkt 🎉" + :updater/update-available "Opdatering beskikbaar" + :updater/update-error "⚠️ Oeps, iets het verkeerd gegaan!\nGaan na die {1}." + :updater/update-ready-to-install "Opdatering is gereed om te installeer" + + :view/add-new-view "Weergave voeg by" + :view/all "Alles" + :view/export-edn "EDN voer uit" + :view/linked-references "Gekoppelde verwysings" + :view/new "Nuut" + :view/new-property "Nuwe eienskap" + :view/new-view "Nuwe aansig" + :view/rename "Hernoem" + :view/results "Resultate:" + :view/unlinked-references "Ongekoppelde verwysings" + + :view.filter/custom-date "Aangepaste datum" + :view.filter/empty "Leeg" + :view.filter/filter "Filter" + :view.filter/from "Van" + :view.filter/is-empty "Is leeg" + :view.filter/is-not-empty "Is nie leeg" + :view.filter/match "Overeenkomst" + :view.filter/match-all-filters "Aan alle filters voldoen" + :view.filter/match-any-filter "Aan 'n filter voldoen" + :view.filter/operator-after "Na" + :view.filter/operator-before "Voor" + :view.filter/operator-between "Tussen" + :view.filter/operator-date-after "Na datum" + :view.filter/operator-date-before "Voor datum" + :view.filter/operator-is "Is" + :view.filter/operator-is-not "Is niet" + :view.filter/operator-text-contains "Tekst bevat" + :view.filter/operator-text-not-contains "Tekst bevat niet" + :view.filter/or "Of" + :view.filter/relative-1-day-ago "1 dag geleden" + :view.filter/relative-1-month-ago "1 maand geleden" + :view.filter/relative-1-week-ago "1 week geleden" + :view.filter/relative-1-year-ago "1 jaar geleden" + :view.filter/relative-3-days-ago "3 dagen geleden" + :view.filter/relative-3-months-ago "3 maanden geleden" + :view.filter/to "Tot" + :view.filter/type-to-search "Tik om te soek" + + :view.table/ascending "Stygende" + :view.table/columns-visibility "Kolomsigbaarheid" + :view.table/default-title "{1} knooppunten" + :view.table/delete-sort "Verwyder sortering" + :view.table/descending "Dalende" + :view.table/drag-to-reorder "Sleep om te herordenen" + :view.table/group-by "Groepeer volgens" + :view.table/group-journal-date "Joernaaldatum" + :view.table/group-page-created-date "Bladsy-skeppingsdatum" + :view.table/group-page-name "Bladsynaam" + :view.table/group-page-updated-date "Bladsy-opdateringsdatum" + :view.table/live-query-title "Live query ({1})" + :view.table/name-column "Naam" + :view.table/no-group-value "Geen {1}" + :view.table/page "Bladsy" + :view.table/pages "Bladsye" + :view.table/pin "Vastmaken" + :view.table/row-number "Rijnummer" + :view.table/select-all "Kies alles" + :view.table/select-column "Kolom kies" + :view.table/select-order "Volgorde kies" + :view.table/select-row "Rij kies" + :view.table/selected-count "Gekies: {1}" + :view.table/sort-ascending "Oplopend" + :view.table/sort-descending "Aflopend" + :view.table/sort-groups-by "Groepen sorteren op" + :view.table/sort-groups-order "Groepsvolgorde" + :view.table/total-refs-count "Totaal aantal referenties" + :view.table/unpin "Losmaken" + + :window/close "Sluit venster" + :window/exit-fullscreen "Verlaat volskerm" + :window/maximize "Maksimeer" + :window/minimize "Minimeer" + :window/restore "Herstel" + + :youtube/embed-first-reminder-mobile "Voeg eers 'n YouTube-video in, gebruik dan hierdie ikoon.\nOnthou: U kan 'n rou YouTube-URL op mobiel as ingebedde video plak." + :youtube/player-not-ready "YouTube-speler is nog nie gereed nie." + :youtube/timestamps-not-available-mobile "YouTube-tydstewels is nog nie op mobiel beskikbaar nie." + + :zotero/attachments "Aanhangsels" + :zotero/imported-file-warning "Hierdie is 'n ingevoerde Zotero-lêer, stel Zotero-datagids om die lêer in Logseq oop te maak." + :zotero/linked-file-warning "Hierdie is 'n gekoppelde Zotero-lêer, stel basisgids vir Zotero-gekoppelde aanhangsels om die lêer in Logseq oop te maak." + :zotero/notes "Aantekeninge" +} diff --git a/src/resources/dicts/ar.edn b/src/resources/dicts/ar.edn index 9b2959fecf..b3c800159e 100644 --- a/src/resources/dicts/ar.edn +++ b/src/resources/dicts/ar.edn @@ -1,551 +1,1861 @@ -{:accessibility/skip-to-main-content "تخطى إلى المحتوى الرئيسي" - :handbook/title "المساعدة" - :handbook/topics "المواضيع" - :handbook/popular-topics "المواضيع الشائعة" - :handbook/help-categories "قائمة المساعدة" - :handbook/search "البحث" - :handbook/home "الصفحة الرئيسية" - :handbook/settings "الإعدادات" - :handbook/close "إغلاق" - :on-boarding/importing-main-title "استيراد الملاحظات الحالية" - :on-boarding/importing-main-desc "يمكنك القيام بهذا لاحقاً في التطبيق." - :on-boarding/importing-title "هل لديك ملاحظات لاستيرادها؟" - :on-boarding/importing-desc "إذا كانت بتنسيق EDN أو Markdown، فإن Logseq يقبلها." - :on-boarding/importing-sqlite-desc "استيراد ملف SQLite مٌصدر من مخططك في Logseq إلى قاعدة بيانات مخطط جديدة" - :on-boarding/main-title (fn [] ["مرحباً بك في " [:strong "Logseq!"]]) - :on-boarding/main-desc "أولاً، عليك اختيار مجلد حيث يخزن logseq أفكارك، ملاحظاتك، وخواطرك." - :bug-report/main-title "التبليغ عن خطأ" - :bug-report/clipboard-inspector-title "فاحص بيانات الحافظة" - :bug-report/main-desc "هل يمكنك مساعدتنا بالتبليغ عن خطأ؟ سنقوم بحله في أسرع ما نقدر عليه." - :bug-report/section-clipboard-title "هل الخطأ الذي واجهته مرتبط بهذه الميزات؟" - :bug-report/section-clipboard-desc "يمكنك استخدام هذه الأدوات المفيدة لتزويدنا بمعلومات إضافية." - :bug-report/section-clipboard-btn-title "مساعد الحافظة" - :bug-report/section-clipboard-btn-desc "فحص وجمع بيانات الحافظة" - :bug-report/section-issues-title "أو..." - :bug-report/section-issues-desc "إذا لم تتوفر لديك أدوات لجمع معلومات إضافية، فيرجى الإبلاغ عن الخطأ مباشرة." - :bug-report/section-issues-btn-title "إرسال التقرير عن الخطأ" - :bug-report/section-issues-btn-desc "ساعد في تحسين Logseq!" - :bug-report/inspector-page-desc-1 "اضغط Ctrl+V / ⌘+V لفحص بيانات حافظتك" - :bug-report/inspector-page-desc-2 "أو انقر هنا للصق إذا كنت تستخدم نسخة الهاتف" - :bug-report/inspector-page-placeholder "اضغط مطولاً هنا للصق إذا كنت تستخدم نسخة الهاتف" - :bug-report/inspector-page-tip "هل هناك خطأ؟ لا مشكلة، انقر هنا للعودة إلى الخطوة السابقة." - :bug-report/inspector-page-btn-back "عد للخلف" - :bug-report/inspector-page-btn-copy "انسخ النتيجة" - :bug-report/inspector-page-copy-notif "تم النسخ إلى الحافظة!" - :bug-report/inspector-page-btn-create-issue "إنشاء قضية" - :bug-report/inspector-page-desc-clipboard "هذه هي البيانات المقروءة من الحافظة" - :bug-report/inspector-page-desc-copy "إذا كان هذا مناسباً للمشاركة، فانقر على زر النسخ." - :bug-report/inspector-page-desc-create-issue "يمكنك الآن عن النتيجة التي تم نسخها في الحافظة. يرجى لصق النتيجة في قسم 'Additional Context' وتحديد مصدر المحتوى الأصلي. شكراً!" - :help/title-usage "الاستخدام" - :help/title-community "المجتمع" - :help/title-development "التطور" - :help/title-about "حول" - :help/title-terms "الشروط والأحكام" - :help/start "البدأ" - :help/about "حول Logseq" - :help/roadmap "جدولة" - :help/bug "تقرير عن خطأ" - :help/feature "طلب ميزة" - :help/changelog "سجل التغييرات" - :help/blog "مدونة Logesq" - :help/docs "الوثائق" - :help/privacy "سياسة الخصوصية" - :help/terms "الشروط والأحكام" - :help/forum-community "منتدى المجتمع" - :help/awesome-logseq "Logseq الرائع" - :help/shortcuts "اختصارات لوحة المفاتيح" - :help/shortcuts-triggers "المحفزات" - :help/shortcut "الاختصارات" - :help/search "البحث في الصفحات/الكتل/الأوامر" - :help/slash-autocomplete "إكمال تلقائي للشرطة المائلة" - :help/reference-autocomplete "مرجع الصفحة للإكمال التلقائي" - :help/block-reference "مرجع الكتلة" - :help/open-link-in-sidebar "افتح الرابط في النافذة الجانبية" - :search-item/page "صفحة" - :search-item/no-result "لا توجد نتيجة متطابقة" - :help/context-menu "قائمة سياق الكتلة" - :help/markdown-syntax "بناءالجملة في Markdown" - :bold "عريض" - :italics "مائل" - :highlight "نص مظلل" - :strikethrough "خط في المنتصف" - :code "كود" - :untitled "بدون عنوان" - :right-side-bar/help "مساعدة" - :right-side-bar/switch-theme "وضع السمة" - :right-side-bar/contents "المحتويات" - :right-side-bar/page-graph "مخطط الصفحة" - :right-side-bar/block-ref "مرجع الكتلة" - :right-side-bar/graph-view "عرض المخطط" - :right-side-bar/all-pages "الصفحات" - :right-side-bar/flashcards "بطاقات تعليمية" - :right-side-bar/show-journals "عرض اليوميات" - :right-side-bar/separator "معالج تغيير حجم النافذة الجانبية اليمنى" - :right-side-bar/toggle-right-sidebar "تبديل النافذة الجانبية اليمنى" - :right-side-bar/pane-close "إغلاق" - :right-side-bar/pane-close-others "إغلاق نوافذ آخرى" - :right-side-bar/pane-close-all "إغلاق الكل" - :right-side-bar/pane-collapse "طي" - :right-side-bar/pane-collapse-others "طي النوافذ الأخرى" - :right-side-bar/pane-collapse-all "طي الجميع" - :right-side-bar/pane-expand "توسيع" - :right-side-bar/pane-expand-all "توسيع الكل" - :right-side-bar/pane-open-as-page "افتح كصفحة" - :right-side-bar/pane-more "المزيد" - :left-side-bar/switch "التبديل إلى:" - :left-side-bar/journals "اليوميات" - :left-side-bar/assets "الأصول" - :left-side-bar/tasks "المهام" - :left-side-bar/nav-favorites "المفضلة" - :left-side-bar/nav-recent-pages "حديث" - :page/something-went-wrong "حدث خطأ ما" - :page/logseq-is-having-a-problem "Logseq يواجه مشكلة. لمحاولة إعادته إلى حالة العمل، يرجى اتباع الخطوات الآمنة التالية بالترتيب:" - :page/step "الخطوة {1}" - :page/try "حاول" - :page/db-delete-confirmation "هل أنت متأكد من رغبتك في حذف هذه الصفحة؟" - :page/make-public "اجعلها متاحة للنشر" - :page/make-private "اجعله خاصاً" - :page/delete "حذف الصفحة" - :page/add-to-favorites "أضف إلى المفضلة" - :page/unfavorite "إزالة من المفضلة" - :block/name "اسم الصفحة" - :page/copy-page-url "انسخ رابط الصفحة" - :page/convert-to-tag "التحويل إلى وسم" - :page/convert-tag-to-page "تحويل الوسم إلى صفحة" - :file/name "اسم الملف" - :file/last-modified-at "آخر تعديل في" - :file/no-data "لا توجد بيانات" - :file/format-not-supported "التنسيق .{1} ليس مدعوماً." - :page/created-at "تم إنشاؤه في" - :page/updated-at "تم التحديث في" - :page/backlinks "الروابط الخلفية" - :linked-references/filter-search "ابحث في الصفحات المرتبطة" - :linked-references/filter-heading "مرشح" - :linked-references/filter-directions "انقر للإضافة، وانقر على مفتاح shift لاستبعاده. انقر مرة أخرى لإزالته." - :linked-references/filter-includes "يتضمن: " - :linked-references/filter-excludes "المستبعد: " - :editor/block-search "ابحث عن كتلة" - :text/image "صورة" - :asset/show-in-folder "عرض الصورة في المجلد" - :asset/open-in-browser "افتح الصورة في المتصفح" - :asset/delete "احذف الصورة" - :asset/copy "انسخ الصورة" - :asset/maximize "تكبير الصورة" - :asset/ref-block "كتلة مرجع للمرفق" - :asset/confirm-delete "هل أنت متأكد من رغبتك في حذف {1}؟" - :asset/physical-delete "قم بإزالة الملف أيضاً (لا يمكن استعادته)" - :color/gray "رمادي" - :color/red "أحمر" - :color/yellow "أصفر" - :color/green "أخضر" +{ + :account/authentication "المصادقة" + :account/benefits-desc "مع حساب Logseq، يمكنك الوصول إلى الخدمات السحابية مثل Logseq Sync والميزات التجريبية." + :account/billing "الفوترة" + :account/billing-expired-on-label "انتهت خطة Pro في: {1}" + :account/billing-expires-on-label "تنتهي خطة Pro في: {1}" + :account/billing-next-date-label "تاريخ الفوترة التالي: {1}" + :account/core-features "الوصول إلى ميزات Logseq الأساسية" + :account/current-plan "الخطة الحالية" + :account/delete-account "حذف الحساب" + :account/discover-sync-desc "اكتشف قوة {1}" + :account/early-access-alpha-beta "وصول مبكر إلى الميزات التجريبية" + :account/first-name "الاسم الأول" + :account/free-plan-sync-limit "رسم بياني واحد متزامن (حتى 50 ميجابايت، ملاحظات فقط)" + :account/last-name "اسم العائلة" + :account/manage-plan "إدارة الخطة" + :account/month "شهر" + :account/no-asset-syncing "بدون مزامنة الأصول" + :account/open-invoices "فتح الفواتير" + :account/plan-free "مجاني" + :account/plan-free-summary "ابدأ بالمزامنة الأساسية" + :account/plan-pro "Pro" + :account/plan-pro-summary "افتح المزامنة المتقدمة والمزيد" + :account/pro-plan-sync-limit "10 رسوم بيانية متزامنة (حتى 5 جيجابايت لكل واحد)" + :account/profile "الملف الشخصي" + :account/refresh-token-warning "تحديث الرمز: حالة غير عادية" + :account/reset-password "إعادة تعيين كلمة المرور" + :account/sign-up "إنشاء حساب" + :account/sync-assets-limit "مزامنة الأصول حتى 100 ميجابايت لكل ملف" + :account/synced-status "متزامن" + :account/unlimited-unsynced-graphs "رسوم بيانية غير متزامنة غير محدودة" + :account/upcoming-cloud-features "ميزات سحابية قادمة، بما في ذلك Logseq Publish" + :account/upgrade-plan "ترقية الخطة" + :account/username "اسم المستخدم" + + :asset/acceptable-file-extensions "امتدادات الملفات المقبولة" + :asset/add-assets "إضافة أصول" + :asset/add-directory "إضافة مجلد" + :asset/alias-already-exists "الاسم المستعار \"{1}\" موجود بالفعل!" + :asset/alias-directories "مجلدات بأسماء مستعارة" + :asset/alias-directory-path-label "مسار المجلد:" + :asset/alias-name-dialog-title "ما الاسم المستعار لهذا المجلد المحدد؟" + :asset/alias-name-label "الاسم المستعار:" + :asset/alias-name-placeholder "مثال: كتب" + :asset/align "محاذاة" + :asset/align-center "وسط" + :asset/align-left "يسار" + :asset/align-right "يمين" + :asset/already-exists "الأصل موجود بالفعل، العنوان: {1}، مرجع العقدة: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "لا يمكن تضمين العنصر الأصلي كخاصية" + :asset/confirm-delete-image "هل أنت متأكد من أنك تريد حذف هذه الصورة؟" + :asset/copy "نسخ" + :asset/copy-image-unsupported-extension "نسخ الصورة غير مدعوم لملفات {1}" + :asset/create-local-copy-warning "إنشاء أصل محلي من أصل خارجي. تتطلب تعليقات PDF التوضيحية أصلًا محليًا للعمل بشكل صحيح." + :asset/create-title "إنشاء أصل" + :asset/delete "حذف" + :asset/downloading "جاري التنزيل" + :asset/drop-hint "اسحب وأفلت الملفات هنا، أو انقر لتحديد الملفات" + :asset/edit-title "تعديل الأصل" + :asset/external-url-label "رابط الأصل الخارجي:" + :asset/file-extension-placeholder "مثال: mp3" + :asset/maximize "تكبير" + :asset/open-in-browser "فتح في المتصفح" + :asset/physical-delete "حذف الملف نهائياً" + :asset/ref-block "كتلة مرجعية" + :asset/select-file "تحديد ملف الأصل" + :asset/select-from-disk "التحديد من القرص" + :asset/selected-directories "المجلدات المحددة:" + :asset/show-file-in-folder "إظهار الملف في المجلد" + :asset/size-too-large "الملف كبير جداً" + :asset/syncing "جاري المزامنة" + :asset/title-label "عنوان الأصل:" + :asset/transfer-placeholder "{1} ملف..." + :asset/uploading "جاري الرفع" + + :block/click-to-fix-query "انقر لإصلاح الاستعلام: {1}" + :block/copy-ref "نسخ مرجع الكتلة" + :block/copy-url "نسخ رابط الكتلة" + :block/created-label "تاريخ الإنشاء: {1}" + :block/deprecated-latex-export "‏'#+BEGIN_EXPORT latex' مهمل. استخدم أمر '/Math block' بدلاً من ذلك." + :block/deprecated-query-syntax "‏#+BEGIN_QUERY مهمل. استخدم أمر '/Advanced Query' بدلاً من ذلك." + :block/deprecated-quote "‏#+BEGIN_QUOTE مهمل. استخدم أمر '/Quote' بدلاً من ذلك." + :block/empty-url "رابط فارغ" + :block/excalidraw-no-longer-supported "لم يعد Excalidraw مدعومًا بشكل افتراضي، نخطط لدعمه من خلال الإضافات." + :block/extraction-error "خطأ في استخراج الكتلة" + :block/hide-query "إخفاء الاستعلام" + :block/invalid-hiccup "hiccup غير صالح" + :block/invalid-link "رابط غير صالح" + :block/invalid-url "رابط URL غير صالح" + :block/large-block-warning "الكتلة الكبيرة لن تكون قابلة للتعديل أو البحث لتجنب إبطاء التطبيق، يرجى استخدام محرر آخر لتعديل هذه الكتلة." + :block/last-edited-label "آخر تعديل: {1}" + :block/not-found-warning "لم يتم العثور على كتلة" + :block/open-block-references "فتح مراجع الكتلة" + :block/practice "تدريب" + :block/practice-cards "تدريب البطاقات" + :block/ref-nesting-too-deep "تداخل مرجع الكتلة عميق جدًا" + :block/remove-tag "إزالة الوسم" + :block/remove-this-tag "إزالة هذا الوسم" + :block/render-error "خطأ في عرض الكتلة:" + :block/set-query "تعيين استعلام" + :block/set-query-label "تعيين استعلام:" + :block/sort-order "ترتيب الفرز" + :block/status-history "سجل الحالة" + :block/untitled-query "استعلام بدون عنوان" + + :block.macro/embed-deprecated "{{embed}} مستهلك. استخدم أمر '/Node embed' بدلاً من ذلك." + :block.macro/namespace-deprecated "{{namespace}} مستهلك. استخدم ميزة {1} بدلاً من ذلك." + :block.macro/query-deprecated "{{query}} مستهلك. استخدم أمر '/Query' بدلاً من ذلك." + :block.macro/unsupported-name "اسم ماكرو غير مدعوم: {1}" + + :block.reaction/emoji-required-warning "الرمز التعبيري مطلوب" + :block.reaction/unsupported-emoji-warning "رمز تعبيري غير مدعوم" + + :bug-report/desc "الإبلاغ عن خطأ" + :bug-report/title "الإبلاغ عن خطأ" + + :bug-report.clipboard/action-desc "فحص الحافظة" + :bug-report.clipboard/action-title "فاحص الحافظة" + :bug-report.clipboard/desc "استخدم فاحص الحافظة إذا واجهت مشاكل في النسخ واللصق" + :bug-report.clipboard/title "الحافظة" + + :bug-report.inspector/back "رجوع" + :bug-report.inspector/clipboard-desc "محتوى الحافظة" + :bug-report.inspector/copied "تم النسخ إلى الحافظة" + :bug-report.inspector/copy "نسخ" + :bug-report.inspector/copy-desc "نسخ تقرير التشخيص" + :bug-report.inspector/create-issue "إنشاء مشكلة" + :bug-report.inspector/create-issue-desc "يمكنك الآن الإبلاغ عن النتيجة التي لصقتها في الحافظة. يرجى لصق النتيجة في قسم 'Additional Context' وذكر المكان الذي نسخت منه المحتوى الأصلي. شكرًا!" + :bug-report.inspector/desc "اضغط {1} لفحص بيانات حافظتك\nأو انقر هنا للصق إذا كنت تستخدم نسخة الهاتف" + :bug-report.inspector/placeholder "الصق المحتوى هنا" + :bug-report.inspector/tip "نصيحة: استخدم Ctrl+V للصق" + :bug-report.inspector/title "فاحص الحافظة" + + :bug-report.issue/action-desc "عرض المشاكل المعروفة" + :bug-report.issue/action-title "مشاكل GitHub" + :bug-report.issue/desc "تحقق مما إذا كانت مشكلتك قد تم الإبلاغ عنها بالفعل" + :bug-report.issue/report-link "الإبلاغ عن مشكلة" + :bug-report.issue/title "المشاكل المعروفة" + + :class/add-property "إضافة خاصية للوسم" + :class/tag-properties-desc "تُورَّث خصائص الوسم إلى جميع العُقد التي تستخدمه. على سبيل المثال، ترث كل عقدة #Task كلاً من 'Status' و'Priority'." + :class/tagged-nodes "العُقد الموسومة" + + :class.built-in/asset "أصل" + :class.built-in/card "بطاقة" + :class.built-in/cards "بطاقات" + :class.built-in/code-block "كود" + :class.built-in/journal "يومية" + :class.built-in/math-block "رياضيات" + :class.built-in/page "صفحة" + :class.built-in/pdf-annotation "تعليق PDF التوضيحي" + :class.built-in/property "خاصية" + :class.built-in/query "استعلام" + :class.built-in/quote-block "اقتباس" + :class.built-in/root "الوسم الجذري" + :class.built-in/tag "وسم" + :class.built-in/task "مهمة" + :class.built-in/template "قالب" + :class.built-in/whiteboard "سبورة" + + :class.validation/built-in-extends-change "لا يمكن تغيير وراثة العناصر المدمجة." + :class.validation/cant-add-tag-on-built-in "لا يمكن إضافة علامة على \"{1}\" المدمج." + :class.validation/cant-remove-private-tags "لا يمكن إزالة العلامات الخاصة: {1}." + :class.validation/cant-remove-tag-built-in "لا يمكن إزالة الوسم المضمّن #{1}." + :class.validation/cant-remove-tag-on-built-in "لا يمكن إزالة العلامة الموجودة في \"{1}\" المضمنة." + :class.validation/cant-set-tag-built-in "لا يمكن تعيين الوسم المضمّن #{1}." + :class.validation/duplicate "الوسم '{1}' موجود بالفعل." + :class.validation/extends-cycle "تم اكتشاف دورة في الوراثة." + :class.validation/invalid-extends-type "نوع وراثة غير صالح." + :class.validation/parents-must-be-tags "الأصول يجب أن تكون وسوماً." + :class.validation/tag-with-non-tag "لا يمكن تعيين علامة بصفحة مضمنة ليست علامة \"{1}\"." + + :cmdk.action/apply-theme "تطبيق السمة" + :cmdk.action/copy-ref "نسخ المرجع" + :cmdk.action/create "إنشاء" + :cmdk.action/filter "تصفية" + :cmdk.action/open "فتح" + :cmdk.action/open-in-sidebar "فتح في الشريط الجانبي" + :cmdk.action/search "بحث" + :cmdk.action/trigger "تنفيذ" + + :cmdk.create/configure-tag "تكوين الوسم" + :cmdk.create/page "إنشاء صفحة" + :cmdk.create/tag "إنشاء وسم" + + :cmdk.error/no-block-link "لا يوجد رابط في هذه الكتلة." + :cmdk.error/no-page-link "لا يوجد رابط في هذه الصفحة." + :cmdk.error/no-search-item-link "لا يوجد رابط في نتيجة البحث هذه." + + :cmdk.filter/add "إضافة فلتر" + :cmdk.filter/codes "الكود فقط" + :cmdk.filter/commands "الأوامر فقط" + :cmdk.filter/current-page "الصفحة الحالية فقط" + :cmdk.filter/files "الملفات فقط" + :cmdk.filter/nodes "العقد فقط" + :cmdk.filter/only-label "البحث فقط:" + :cmdk.filter/themes "السمات فقط" + + :cmdk.group/codes "الكود" + :cmdk.group/commands "الأوامر" + :cmdk.group/create "إنشاء" + :cmdk.group/current-page "الصفحة الحالية" + :cmdk.group/files "الملفات" + :cmdk.group/filters "الفلاتر" + :cmdk.group/nodes "العقد" + :cmdk.group/recently-updated "محدّثة مؤخراً" + :cmdk.group/themes "السمات" + + :cmdk.info/configure-tag "تهيئة الوسم #{1}" + :cmdk.info/create-page "إنشاء صفحة '{1}'" + :cmdk.info/create-tag "إنشاء وسم '{1}'" + + :cmdk.input/add-graph-filter-placeholder "إضافة فلتر للرسم البياني" + :cmdk.input/default-placeholder "ما الذي تبحث عنه؟" + :cmdk.input/move-blocks-placeholder "نقل الكتل" + :cmdk.input/type-page-name-placeholder "اكتب اسم الصفحة" + + :cmdk.tip/clear-filter "اضغط على {1} لمسح فلتر البحث" + :cmdk.tip/filter-results "اضغط على {1} لتصفية نتائج البحث" + :cmdk.tip/label "نصيحة:" + :cmdk.tip/open-sidebar "اضغط على {1} لفتح البحث في الشريط الجانبي" + + :collaboration/email-address "عنوان البريد الإلكتروني" + :collaboration/invite "دعوة" + :collaboration/members "الأعضاء:" + :collaboration/remove-access "إزالة الوصول" + :collaboration/remove-access-error "فشل إزالة العضو" + :color/blue "أزرق" - :color/purple "أرجواني" + :color/crimson "قرمزي" + :color/cyan "سماوي" + :color/grass "أخضر عشبي" + :color/gray "رمادي" + :color/green "أخضر" + :color/indigo "نيلي" + :color/orange "برتقالي" :color/pink "وردي" - :editor/copy "نسخ" + :color/plum "برقوقي" + :color/purple "بنفسجي" + :color/red "أحمر" + :color/teal "أزرق مخضر" + :color/tomato "طماطمي" + :color/violet "بنفسجي" + :color/yellow "أصفر" + + :command.auto-complete/complete "إكمال" + :command.auto-complete/meta-complete "إكمال تلقائي" + :command.auto-complete/next "التالي" + :command.auto-complete/prev "السابق" + :command.auto-complete/shift-complete "إكمال مع Shift" + + :command.command-palette/toggle "لوحة الأوامر" + + :command.editor/add-property "إضافة خاصية" + :command.editor/add-property-deadline "إضافة موعد نهائي" + :command.editor/add-property-icon "إضافة أيقونة" + :command.editor/add-property-priority "إضافة أولوية" + :command.editor/add-property-status "إضافة حالة" + :command.editor/add-reaction "إضافة تفاعل" + :command.editor/backspace "مسح للخلف" + :command.editor/backward-kill-word "حذف الكلمة السابقة" + :command.editor/backward-word "الكلمة السابقة" + :command.editor/beginning-of-block "بداية الكتلة" + :command.editor/bold "غامق" + :command.editor/clear-block "مسح الكتلة" + :command.editor/collapse-block-children "طي" + :command.editor/copy "نسخ" + :command.editor/copy-embed "نسخ التضمين" + :command.editor/copy-page-url "نسخ رابط الصفحة" + :command.editor/copy-text "نسخ النص" + :command.editor/cut "قص" + :command.editor/cycle-todo "تبديل TODO" + :command.editor/delete "حذف" + :command.editor/delete-selection "حذف التحديد" + :command.editor/down "أسفل" + :command.editor/end-of-block "نهاية الكتلة" + :command.editor/escape-editing "الخروج من التحرير" + :command.editor/expand-block-children "توسيع" + :command.editor/follow-link "اتبع الرابط تحت المؤشر" + :command.editor/forward-kill-word "حذف الكلمة التالية" + :command.editor/forward-word "الكلمة التالية" + :command.editor/highlight "تمييز" + :command.editor/indent "رفع رتبة الكتلة" + :command.editor/insert-link "إدراج رابط" + :command.editor/insert-youtube-timestamp "إدراج طابع زمني YouTube" + :command.editor/italics "مائل" + :command.editor/jump "انتقال" + :command.editor/kill-line-after "حذف السطر بعد المؤشر" + :command.editor/kill-line-before "حذف السطر قبل المؤشر" + :command.editor/left "يسار" + :command.editor/move-block-down "نقل الكتلة للأسفل" + :command.editor/move-block-up "نقل الكتلة للأعلى" + :command.editor/move-blocks "نقل الكتل" + :command.editor/new-block "إنشاء كتلة جديدة" + :command.editor/new-line "إنشاء سطر جديد في الكتلة الحالية" + :command.editor/open-edit "فتح التحرير" + :command.editor/open-link-in-sidebar "فتح الرابط في الشريط الجانبي" + :command.editor/open-selected-blocks-in-sidebar "فتح الكتل المحددة في الشريط الجانبي" + :command.editor/outdent "خفض رتبة الكتلة" + :command.editor/paste-text-in-one-block-at-point "لصق النص في كتلة واحدة" + :command.editor/quick-add "إضافة سريعة" + :command.editor/redo "إعادة" + :command.editor/right "يمين" + :command.editor/select-all-blocks "تحديد جميع الكتل" + :command.editor/select-block-down "تحديد الكتلة أدناه" + :command.editor/select-block-up "تحديد الكتلة أعلاه" + :command.editor/select-down "تحديد للأسفل" + :command.editor/select-parent "تحديد العنصر الأصلي" + :command.editor/select-up "تحديد للأعلى" + :command.editor/set-tags "تعيين الوسوم" + :command.editor/strike-through "يتوسطه خط" + :command.editor/toggle-block-children "تبديل عرض الكتل الفرعية" + :command.editor/toggle-display-hidden-properties "تبديل عرض الخصائص المخفية" + :command.editor/toggle-number-list "القائمة المرقمة" + :command.editor/toggle-open-blocks "تبديل الكتل المفتوحة" + :command.editor/undo "تراجع" + :command.editor/up "أعلى" + :command.editor/zoom-in "التركيز على الكتلة المحررة / أو الانتقال للأمام" + :command.editor/zoom-out "الخروج من تركيز الكتلة / أو الرجوع للخلف" + + :command.go/all-graphs "كل الرسوم البيانية" + :command.go/all-pages "كل الصفحات" + :command.go/backward "رجوع" + :command.go/electron-find-in-page "البحث في الصفحة" + :command.go/electron-jump-to-the-next "الانتقال للتالي" + :command.go/electron-jump-to-the-previous "الانتقال للسابق" + :command.go/flashcards "البطاقات التعليمية" + :command.go/forward "تقدم" + :command.go/graph-view "عرض الرسم البياني" + :command.go/home "الرئيسية" + :command.go/journals "الذهاب إلى اليوميات" + :command.go/keyboard-shortcuts "اختصارات لوحة المفاتيح" + :command.go/next-journal "اليومية التالية" + :command.go/prev-journal "اليومية السابقة" + :command.go/search "البحث في الصفحات والكتل" + :command.go/search-in-page "البحث في الصفحة" + :command.go/search-themes "البحث عن سمات" + :command.go/tomorrow "غداً" + + :command.graph/add "إضافة رسم بياني" + :command.graph/db-add "إضافة إلى قاعدة البيانات" + :command.graph/db-save "حفظ قاعدة البيانات" + :command.graph/export-as-html "تصدير كـ HTML" + :command.graph/open "فتح رسم بياني" + :command.graph/remove "إزالة رسم بياني" + + :command.misc/copy "نسخ" + :command.misc/export-block-data "تصدير بيانات الكتلة" + :command.misc/export-graph-ontology-data "تصدير أنطولوجيا الرسم" + :command.misc/export-page-data "تصدير بيانات الصفحة" + :command.misc/import-edn-data "استيراد بيانات EDN" + + :command.page/toggle-favorite "تبديل المفضلة" + + :command.pdf/close "إغلاق PDF" + :command.pdf/find "البحث في PDF" + :command.pdf/next-page "الصفحة التالية" + :command.pdf/previous-page "الصفحة السابقة" + + :command.publish/open-dialog "فتح حوار النشر" + + :command.search/re-index "إعادة الفهرسة" + + :command.shell/run "تشغيل" + + :command.sidebar/clear "مسح الشريط الجانبي" + :command.sidebar/close-top "إغلاق اللوحة العلوية" + :command.sidebar/open-today-page "فتح صفحة اليوم" + + :command.ui/clear-all-notifications "مسح كل الإشعارات" + :command.ui/customize-appearance "تخصيص المظهر" + :command.ui/goto-plugins "الانتقال إلى الإضافات" + :command.ui/highlight-recent-blocks "تمييز الكتل الأخيرة" + :command.ui/install-plugin-from-github "تثبيت إضافة من GitHub" + :command.ui/install-plugins-from-file "تثبيت إضافات من ملف" + :command.ui/select-theme-color "اختيار لون السمة" + :command.ui/toggle-brackets "تبديل الأقواس" + :command.ui/toggle-contents "تبديل المحتويات" + :command.ui/toggle-document-mode "تبديل وضع المستند" + :command.ui/toggle-help "تبديل المساعدة" + :command.ui/toggle-left-sidebar "تبديل الشريط الجانبي الأيسر" + :command.ui/toggle-right-sidebar "إظهار/إخفاء النافذة الجانبية اليمنى" + :command.ui/toggle-settings "تبديل الإعدادات" + :command.ui/toggle-theme "التبديل في المظهر فاتح/داكن" + :command.ui/toggle-wide-mode "تبديل الوضع العريض" + + :command.window/close "إغلاق النافذة" + + :context-menu/developer-tools "أدوات المطور" + :context-menu/make-a-flashcard "إنشاء بطاقة تعليمية" + :context-menu/set-icon "تعيين أيقونة" + :context-menu/toggle-number-list "تبديل القائمة المرقمة" + + :date/invalid-date-warning "{1} ليس تاريخًا صالحًا. يرجى المحاولة مرة أخرى" + + :date.nlp/last-friday "الجمعة الماضية" + :date.nlp/last-monday "الاثنين الماضي" + :date.nlp/last-month "الشهر الماضي" + :date.nlp/last-saturday "السبت الماضي" + :date.nlp/last-sunday "الأحد الماضي" + :date.nlp/last-thursday "الخميس الماضي" + :date.nlp/last-tuesday "الثلاثاء الماضي" + :date.nlp/last-wednesday "الأربعاء الماضي" + :date.nlp/last-week "الأسبوع الماضي" + :date.nlp/last-year "السنة الماضية" + :date.nlp/next-friday "الجمعة القادمة" + :date.nlp/next-monday "الاثنين القادم" + :date.nlp/next-month "الشهر القادم" + :date.nlp/next-saturday "السبت القادم" + :date.nlp/next-sunday "الأحد القادم" + :date.nlp/next-thursday "الخميس القادم" + :date.nlp/next-tuesday "الثلاثاء القادم" + :date.nlp/next-wednesday "الأربعاء القادم" + :date.nlp/next-week "الأسبوع القادم" + :date.nlp/next-year "السنة القادمة" + :date.nlp/this-friday "هذا الجمعة" + :date.nlp/this-monday "هذا الاثنين" + :date.nlp/this-month "هذا الشهر" + :date.nlp/this-saturday "هذا السبت" + :date.nlp/this-sunday "هذا الأحد" + :date.nlp/this-thursday "هذا الخميس" + :date.nlp/this-tuesday "هذا الثلاثاء" + :date.nlp/this-wednesday "هذا الأربعاء" + :date.nlp/this-week "هذا الأسبوع" + :date.nlp/this-year "هذه السنة" + :date.nlp/today "اليوم" + :date.nlp/tomorrow "غداً" + :date.nlp/yesterday "أمس" + + :deeplink/open-block-error "فشل فتح الرابط. الكتلة `{1}` غير موجودة في الرسم الحالي." + :deeplink/open-graph-error "فشل فتح الرسم. الرسم `{1}` غير موجود." + :deeplink/open-page-error "فشل فتح الرابط. الصفحة `{1}` غير موجودة في الرسم الحالي." + + :editor/add-content-first-warning "يرجى إضافة بعض المحتوى أولاً." + :editor/auto-heading "عنوان تلقائي" + :editor/block-search "ابحث عن كتلة" + :editor/click-to-edit "انقر للتعديل" + :editor/code-language-placeholder "اختر اللغة" + :editor/collapse-block-children "طي الكتل الفرعية" :editor/cut "قص" - :editor/expand-block-children "توسيع الجميع" - :editor/collapse-block-children "طي الجميع" - :editor/delete-selection "احذف الكتل المحددة" - :editor/cycle-todo "تدوير حالة TODO" - :dev/show-page-data "(للمطورين) إظهار بيانات الصفحة" - :dev/show-block-data "(للمطورين) إظهار بيانات الكتلة" - :dev/show-block-ast "(للمطورين) إظهار شجرة البناء النحوي (AST) للكتلة" - :content/copy-export-as "نسخ / تصدير باسم" - :content/copy-block-url "نسخ رابط الكتلة" - :content/copy-block-ref "نسخ مرجع الكتلة" - :content/copy-ref "انسخ هذا المرجع" - :content/delete-ref "احذف هذا المرجع" - :content/replace-with-text "الاستبدال كنص" - :content/replace-with-embed "الاستبدال بتضمين" - :content/open-in-sidebar "افتح في النافذة الجانبية" - :content/click-to-edit "انقر للتعديل" - :context-menu/make-a-flashcard "اصنع بطاقة تعليمية" - :context-menu/toggle-number-list "إظهار/إخفاء قائمة الأرقام" - :settings-page/ai "الذكاء الاصطناعي" - :settings-page/tab-ai "الذكاء الاصطناعي" - :settings-page/enable-mcp-server "خادم برتوكول سياق النموذج (MCP)" - :settings-page/enable-mcp-server-desc "تفعيل خادم برتوكول سياق النموذج (MCP) للسماح بالاتصال مع تطبيقات الذكاء الاصطناعي. يعتمد خادم برتوكول سياق النموذج (MCP) على واجهة برمجة تطبيقات HTTP (HTTP API)" - :settings-page/edit-config-edn "تعديل ملف config.edn" - :settings-page/edit-global-config-edn "تعديل ملف التكوين العام config.edn" - :settings-page/edit-custom-css "تحرير ملف custom.css" - :settings-page/edit-export-css "تحرير ملف export.css" - :settings-page/custom-configuration "تكوين مخصص" - :settings-page/custom-global-configuration "تكوين عام مخصص" - :settings-page/theme-light "فاتح" - :settings-page/theme-dark "داكن" - :settings-page/theme-system "النظام" - :settings-page/custom-theme "تخصيص السمة" - :settings-page/export-theme "تصدير السمة" - :settings-page/show-brackets "إظهار الأقواس المربعة" - :settings-page/wide-mode "الوضع الواسع" - :settings-page/editor-font "الخط" - :settings-page/accent-color "لون التمييز" - :settings-page/accent-color-alert "اختيار لون تمييز قد يؤدي إلى إلغاء أي سمة قمت باختيارها." - :settings-page/spell-checker "المدقق الإملائي" - :settings-page/auto-updater "تحديث تلقائي" - :settings-page/disable-sentry "إرسال بيانات الاستخدام والتشخيصات إلى Logseq" - :settings-page/disable-sentry-desc "لن يقوم برنامج Logseq أبداً بجمع قاعدة بيانات المخطط المحلية الخاصة بك أو يبيع بياناتك." - :settings-page/preferred-outdenting "رفع الرتبة" - :settings-page/preferred-outdenting-tip "يظهر الجانب الأيسر إزاحة المسافة البادئة بالإعدادات الافتراضية، ويظهر الجانب الأيمن إزاحة المسافة البادئة المنطقية، رفع/وخفض الرتبة." - :settings-page/preferred-outdenting-tip-more "→ افهم أكثر" - :settings-page/show-full-blocks "عرض جميع أسطر مرجع الكتلة" - :settings-page/auto-expand-block-refs "توسيع مرجع الكتلة تلقائياً عند التكبير" - :settings-page/auto-expand-block-refs-tip "يتحكم هذا الخيار في توسيع مرجع الكتلة تلقائياً عند التكبير" - :settings-page/custom-date-format "تنسيق التاريخ المفضل" - :settings-page/preferred-pasting-file-hint "عند التفعيل، سيتم تنزيل الصورة وإدراجها عند نسخها من الإنترنت. وعند التعطيل، سيتم لصق رابط الصورة." - :settings-page/preferred-pasting-file "تفضيل لصق الملف" - :settings-page/enable-shortcut-tooltip "تفعيل تلميحات الاختصارات" - :settings-page/enable-tooltip "تلميحات الأدوات" - :settings-page/enable-journals "اليوميات" - :settings-page/enable-all-pages-public "جميع الصفحات عامة عند النشر" - :settings-page/home-default-page "تعيين الصفحة الرئيسية الافتراضية" - :settings-page/clear-cache "مسح ذاكرة التخزين المؤقت" - :settings-page/clear "مسح" - :settings-page/clear-cache-warning "سيؤدي مسح ذاكرة التخزين المؤقت إلى حذف المخططات البيانية المفتوحة. ستفقد التغييرات غير المحفوظة." - :settings-page/developer-mode "وضع المطور" - :settings-page/developer-mode-desc "يساعد وضع المطورين المساهمين ومطوري الإضافات على اختبار عمليات التكامل الخاصة بهم مع Logseq بكفاءة أكبر." - :settings-page/current-version "الإصدار الحالي" - :settings-page/tab-general "عام" - :settings-page/tab-editor "المحرر" - :settings-page/tab-keymap "مخطط المفاتيح" - :settings-page/tab-account "الحساب" - :settings-page/tab-advanced "الإعدادات المتقدمة" - :settings-page/tab-features "الخصائص" - :settings-page/tab-collaboration "التعاون" - :settings-page/tab-encryption "التشفير" - :settings-page/plugin-system "الإضافات" - :settings-page/enable-flashcards "البطائق التعليمية" - :settings-page/network-proxy "وكيل الشبكة (proxy)" - :settings-page/login-prompt "للوصول إلى الميزات الجديدة قبل الجميع، يجب أن تكون راعياً أو داعماً لـ Logseq عبر منصة Open Collective، وبالتالي يجب عليك تسجيل الدخول أولاً." - :settings-page/native-titlebar "شريط عنوان النافذة" - :settings-page/native-titlebar-desc "تفعيل شريط عنوان النافذة الخاص بالنظام على Windows و Linux." - :settings-page/check-for-updates "تحقق من وجود تحديثات" - :settings-page/checking "جار التحقق..." - :settings-page/revision "مراجعة: " - :settings-page/changelog "ما الجديد؟" - :settings-page/app-updated "التطبيق محدث 🎉" - :settings-page/update-available "تم العثور على إصدار جديد " - :settings-page/update-error-1 "⚠️ عفواً، حدث خطأ ما!" - :settings-page/update-error-2 " الرجاء التحقق من " + :editor/cycle-todo "تبديل TODO" + :editor/delete-selection "حذف التحديد" + :editor/display-tag-inline-hint "لعرض هذا الوسم ضمن السطر بدلًا من نهاية هذه العقدة." + :editor/expand-block-children "توسيع الكتل الفرعية" + :editor/heading "العنوان {1}" + :editor/moving-blocks-count "جارٍ نقل {1} كتلة" + :editor/new-page "صفحة جديدة" + :editor/new-tag "وسم جديد" + :editor/no-block-selected-warning "لم يتم تحديد كتلة" + :editor/paste "لصق" + :editor/reference-node-use-page-ref "لمرجع عقدة، يرجى استخدام `[[]]`." + :editor/remove-heading "إزالة العنوان" + :editor/search-for-node "ابحث عن عقدة" + :editor/search-for-tag "ابحث عن وسم" + :editor/search-template-placeholder "البحث عن قالب" + :editor/template-insert-error "خطأ في إدراج النموذج: {1}" - :settings-page/auto-chmod "تغيير صلاحيات الملفات تلقائياً" - :settings-page/auto-chmod-desc "عطل هذا الخيار للسماح للمستخدمين بالتحرير بناء على صلاحيات عضوية المجموعة." - :yes "نعم" + :editor.document-mode/new-block-hint "{1} لإنشاء كتلة جديدة" + :editor.document-mode/title "وضع المستند" + :editor.document-mode/toggle-desc "انقر `D` أو اكتب {1} للتبديل إلى وضع المستند" - :cancel "إلغاء" - :close "إغلاق" - :delete "حذف" - :save "حفظ" - :type "النوع" - :host "المضيف" - :port "المنفذ" - :flashcards/modal-welcome-title "حان وقت إنشاء بطاقتك التعليمية الأولى!" - :flashcards/modal-welcome-desc-1 "يمكنك إضافة \"{1}\" إلى أي كتلة لتحويلها إلى بطاقة أو تشغيل \"/cloze\" لإضافة بعض الفراغات." - :flashcards/modal-finished "تهانينا، لقد راجعت جميع البطاقات التعليمية لهذا الاستعلام، نراك في المرة القادمة! 💯" - :flashcards/modal-btn-show-answers "عرض الإجابات" - :flashcards/modal-btn-hide-answers "إخفاء الإجابات" - :flashcards/modal-btn-show-clozes "عرض ما في الفراغات" + :editor.quick-add/add-to-today "أضف إلى اليوم" + :editor.quick-add/title "إضافة سريعة" - :home "الصفحة الرئيسية" - :new-page "صفحة جديدة: " - :new-tag "وسم جديد: " - :graph "مخطط بياني" - :graph/all-graphs "جميع المخططات البيانية" - :graph/local-graphs "المخططات البيانية المحلية:" - :graph/remote-graphs "المخططات البيانية البعيدة:" - :graph/shared-graphs "شاركها الآخرين:" - :export "تصدير" - :export-graph "تصدير المخطط البياني" - :export-page "تصدير الصفحة" - :export-markdown "تصدير كملف Markdown قياسي (بدون خصائص الكتلة)" - :export-public-pages "تصدير الصفحات العام" - :export-db-edn "تصدير ملف EDN" - :export-sqlite-db "تصدير قاعدة بيانات SQlite" - :export-zip "تصدير قاعدة بيانات SQLite و الأصول" - :export-transparent-background "خلفية شفافة" - :export-copy-to-clipboard "نسخ إلى الحافظة" - :export-copied-to-clipboard "تم النسخ إلى الحافظة!" - :export-save-to-file "حفظ في ملف" - :all-graphs "جميع المخططات البيانية" - :all-pages "الصفحات" - ;; E.g. 1 Page or 2 Pages - :all-pages/table-title (fn [total] (str total (if (= total 1) " صفحة" " صفحات"))) - :all-pages/failed-to-delete-pages "تعذر حذف محتوى هذه الصفحات {1}. راجع وحدة تحكم جافا سكريبت لمزيد من التفاصيل." - :all-files "جميع الملفات" - :all-journals "جميع اليوميات" - :settings "الإعدادات" - :settings-of-plugins "الإضافات" - :plugins "الإضافات" - :themes "السمات" - :appearance "المظهر" - :relaunch-confirm-to-work "يجب إعادة تشغيل التطبيق لكي يعمل. هل تريد إعادة تشغيله الآن؟" - :import-notes "استيراد الملاحظات الحالية" - :import "استيراد" - :importing "الاستيراد" - :help-shortcut-title "انقر للاطلاع على الاختصارات والنصائح الأخرى" - :loading "تحميل..." - :login "تسجيل الدخول" - :logout "تسجيل الخروج" - :download "تنزيل" - :language "اللغة" - :remove-background "إزالة الخلفية" - :remove-heading "إزالة العنوان" - :heading "العنوان {1}" - :auto-heading "عنوان تلقائي" - :toggle-theme "تبديل المظهر" + :editor.slash/advanced-query "استعلام متقدم" + :editor.slash/advanced-query-desc "إنشاء كتلة استعلام متقدمة" + :editor.slash/calculator "آلة حاسبة" + :editor.slash/calculator-desc "إدراج آلة حاسبة" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "كتلة رمز" + :editor.slash/code-block-desc "إدراج كتلة رمز" + :editor.slash/current-time "الوقت الحالي" + :editor.slash/current-time-desc "إدراج الوقت الحالي" + :editor.slash/date-picker "منتقي التاريخ" + :editor.slash/date-picker-desc "اختر تاريخاً وأدرجه هنا" + :editor.slash/embed-html "تضمين HTML" + :editor.slash/embed-twitter-tweet "تضمين تغريدة Twitter" + :editor.slash/embed-video-url "تضمين عنوان URL فيديو" + :editor.slash/embed-youtube-timestamp "تضمين طابع زمني YouTube" + :editor.slash/group-advanced "متقدم" + :editor.slash/group-basic "أساسي" + :editor.slash/group-format "تنسيق" + :editor.slash/group-heading "عنوان" + :editor.slash/group-list-type "نوع القائمة" + :editor.slash/group-plugins "الإضافات" + :editor.slash/group-priority "الأولوية" + :editor.slash/group-task-date "تاريخ المهمة" + :editor.slash/group-task-status "حالة المهمة" + :editor.slash/group-time-and-date "الوقت والتاريخ" + :editor.slash/heading-label "عنوان {1}" + :editor.slash/image-link "رابط صورة" + :editor.slash/image-link-desc "إنشاء رابط HTTP لصورة" + :editor.slash/link-desc "إنشاء رابط HTTP" + :editor.slash/math-block "كتلة رياضيات" + :editor.slash/math-block-desc "إنشاء كتلة LaTeX" + :editor.slash/no-priority "بدون أولوية" + :editor.slash/node-embed "تضمين عقدة" + :editor.slash/node-embed-desc "تضمين عقدة هنا" + :editor.slash/node-reference "مرجع عقدة" + :editor.slash/node-reference-desc "إنشاء رابط خلفي إلى عقدة (صفحة أو كتلة)" + :editor.slash/normal-text "نص عادي" + :editor.slash/normal-text-desc "مسح العنوان وتعيينه كنص عادي" + :editor.slash/number-children "عدد الأطفال" + :editor.slash/number-list "قائمة مرقمة" + :editor.slash/priority-desc "ضبط الأولوية على {1}" + :editor.slash/priority-label "الأولوية {1}" + :editor.slash/query-function "دالة الاستعلام" + :editor.slash/query-function-desc "إنشاء دالة استعلام" + :editor.slash/quote-desc "إنشاء كتلة اقتباس" + :editor.slash/status-desc "تعيين الحالة إلى {1}" + :editor.slash/template-desc "إدراج نموذج تم إنشاؤه هنا" + :editor.slash/today-desc "إدراج تاريخ اليوم" + :editor.slash/tomorrow-desc "إدراج تاريخ غداً" + :editor.slash/underline "تسطير" + :editor.slash/underline-desc "إنشاء زخرفة نص مسطرة" + :editor.slash/upload-asset "رفع ملف" + :editor.slash/upload-asset-desc "رفع أنواع ملفات مثل صورة أو PDF أو DOCX وغيرها" + :editor.slash/yesterday-desc "إدراج تاريخ أمس" - :help/shortcut-page-title "اختصارات لوحة المفاتيح" + :electron/about "حول Logseq" + :electron/add-to-dictionary "إضافة إلى القاموس" + :electron/block-not-exist "فشل فتح الرابط. معرّف الكتلة `{1}` غير موجود في الرسم البياني." + :electron/cancel "إلغاء" + :electron/copy-image "نسخ الصورة" + :electron/link-open-confirm "هل أنت متأكد من أنك تريد فتح هذا الرابط؟\n{1}" + :electron/link-open-failed-missing-graph "فشل فتح الرابط. الرسم البياني مفقود." + :electron/link-open-failed-no-graph "فشل فتح الرابط. تعذّر مطابقة معرّف الرسم البياني `{1}` مع أي رسم بياني مرتبط." + :electron/link-open-failed-no-target "فشل فتح الرابط. تعذّر مطابقة `{1}` مع أي هدف." + :electron/look-up "البحث عن التحديد" + :electron/main-exception "[استثناء العملية الرئيسية]\n{1}\n{2}" + :electron/new-window "نافذة جديدة" + :electron/official-docs "التوثيق الرسمي" + :electron/ok "موافق" + :electron/open-dir-error "فشل فتح المجلد: {1}" + :electron/save-image "حفظ الصورة" + :electron/save-image-as "حفظ الصورة باسم" + :electron/search-with-google "البحث في Google" + :electron/unimplemented-callback "إجراء x-callback-url غير مُنفَّذ: `{1}`." + :electron/version "الإصدار {1}" + :electron/write-file-error "فشلت الكتابة إلى الملف {1}، {2}." + :electron/write-file-error-with-backup "فشلت الكتابة إلى الملف {1}، {2}. تم حفظ نسخة احتياطية في {3}." - :plugin/installed "المثبت" - :plugin/installed-plugin "الإضافات المثبتة: {1}" - :plugin/not-installed "غير المثبتة" - :plugin/installing "يتم التثبيت" - :plugin/install "تثبيت" - :plugin/reload "إعادة تحميل" - :plugin/update "تحديث" - :plugin/update-plugin "تحديث الإضافة: {1} - {2}" - :plugin/check-update "تحقق من وجود التحديثات" - :plugin/check-all-updates "تحقق من جميع التحديثات" - :plugin/found-updates "تحديثات جديدة" - :plugin/found-n-updates "تم العثور على {1} تحديثات" - :plugin/update-all-selected "تحديث جميع العناصر المحددة" - :plugin/all-updated "تم التحديث بالكامل!" - :plugin/updates-downloading "جار تنزيل التحديثات" - :plugin/refresh-lists "تحديث القوائم" - :plugin/enabled "تفعيل" - :plugin/disabled "تعطيل" - :plugin/update-available "يتوفر تحديث" - :plugin/updating "جار التحديث" - :plugin/uninstall "إلغاء التثبيت" - :plugin/marketplace "المتجر" - :plugin/downloads "التنزيلات" - :plugin/date-added "تمت إضافته حديثاً" - :plugin/supports-db "يدعم مخططات قواعد البيانات" - :plugin/popular "رائج" - :plugin/stars "النجوم" - :plugin/title "العنوان ({1})" - :plugin/all "الجميع" - :plugin/unpacked "غير مضغوطة" - :plugin/delete-alert "هل أنت متأكد من رغبتك في إلغاء تثبيت الإضافة [{1}]؟" - :plugin/open-settings "افتح الإعدادات" - :plugin/open-package "افتح الحزمة" - :plugin/report-security "الإبلاغ عن إضافة" - :plugin/load-unpacked "تحميل الإضافة غير المضغوطة" - :plugin/restart "إعادة تشغيل التطبيق" - :plugin/unpacked-tips "حدد مسار الإضافة" - :plugin/contribute "✨ برمجة وتقديم إضافة جديدة" - :plugin/up-to-date "محدث {1}" - :plugin/custom-js-alert "تم العثور على ملف custom.js، هل تسمح بتشغيله؟ (إذا كنت لا تفهم محتوى هذا الملف، نوصي بعدم السماح بالتشغيل، لما قد ينطوي عليه من مخاطر أمنية)." - :plugin/security-warning "يمكن للإضافات الوصول إلى مخططك وملفاتك المحلية، وإجراء طلبات عبر الشبكة. - كما يمكنها أن تتسبب في تلف البيانات أو فقدانها. نحن نعمل حالياً على وضع قواعد وصول مناسبة لمخططاتك. - في هذه الأثناء، تأكد من امتلاكك لنسخ احتياطية منتظمة لمخططاتك، ولا تقم بتثبيت الإضافات إلا عندما يمكنك قراءة وفهم شفرة المصدر." - :plugin/search-plugin "البحث في الإضافات" - :plugin/open-preferences "فتح التفضيلات" - :plugin/open-logseq-dir "فتح" - :plugin/remote-error "خطأ في الاتصال الخارجي: " - :plugin/checking-for-updates "جار التحقق من تحديثات الإضافات..." - :plugin/list-of-updates "تحديثات الإضافة: " - :plugin/auto-check-for-updates "التحقق التلقائي من وجود تحديثات" - :plugin/load-from-web-url "تحميل الإضافة من رابط من الإنترنت (URL)" - :plugin.install-from-file/menu-title "التثبيت من ملف plugins.edn" - :plugin.install-from-file/title "تثبيت الإضافات من ملف plugins.edn" - :plugin.install-from-file/notice "ستحل الإضافات التالية محل إضافاتك الحالية:" - :plugin.install-from-file/success "تم تثبيت جميع الإضافات!" + :encryption/cloud-password-rich (fn [] ["إذا فقدت كلمة المرور، فلن يكون بالإمكان فك تشفير أي من بياناتك في السحابة. " [:span "سيظل بإمكانك الوصول إلى النسخة المحلية من الرسم البياني الخاص بك."]]) + :encryption/current-password "كلمة المرور الحالية" + :encryption/enter-password "أدخل كلمة المرور" + :encryption/enter-password-again "أدخل كلمة المرور مرة أخرى" + :encryption/enter-password-title "أدخل كلمة المرور" + :encryption/failed-to-force-reset-password "فشل إعادة تعيين كلمة المرور" + :encryption/failed-to-update-password "فشل تحديث كلمة المرور" + :encryption/fetch-key-pair-error "خطأ في جلب زوج مفاتيح RSA للمستخدم: {1}" + :encryption/fetching-key-pair "جارٍ جلب زوج المفاتيح" + :encryption/force-reset-password "إعادة تعيين كلمة المرور" + :encryption/force-reset-password-successfully "تمت إعادة تعيين كلمة المرور" + :encryption/force-resetting-password "جارٍ إعادة التعيين" + :encryption/forgot-password-question "نسيت كلمة المرور؟" + :encryption/forgot-password-warning "إذا نسيت كلمة المرور، لا يمكن استعادة البيانات المشفرة." + :encryption/init-key-pair "تهيئة زوج المفاتيح" + :encryption/init-key-pair-error "خطأ زوج المفاتيح الأولية: {1}" + :encryption/password-not-matched "كلمتا المرور غير متطابقتين" + :encryption/password-updated-successfully "تم تحديث كلمة المرور" + :encryption/remember-password-rich (fn [] [[:span "يرجى التأكد من أنك "] "تتذكر كلمة المرور التي عينتها، لأننا لا نستطيع إعادة تعيينها أو استعادتها إذا نسيتها، " [:span "ونوصي بأن "] "تحتفظ بنسخة احتياطية آمنة منها."]) + :encryption/reset-password "إعادة تعيين كلمة المرور" + :encryption/set-new-password "تعيين كلمة مرور جديدة" + :encryption/set-password-title "تعيين كلمة المرور" + :encryption/updating-password "جارٍ تحديث كلمة المرور" + :encryption/wrong-password "كلمة مرور خاطئة" - :pdf/copy-ref "نسخ المرجع" + :export/backup-successful "تم إنشاء النسخة الاحتياطية!" + :export/block-data-copied "تم نسخ بيانات الكتلة إلى الحافظة" + :export/collecting-assets "جارٍ جمع الأصول" + :export/copied-to-clipboard "تم النسخ إلى الحافظة!" + :export/copy-or-export-as "تصدير كـ" + :export/creating-zip "جارٍ إنشاء ملف مضغوط" + :export/db-backup-error "فشل النسخ الاحتياطي لقاعدة البيانات." + :export/db-edn "تصدير كملف EDN" + :export/debug-transit-desc "يصدّر إلى ملف .transit لإرساله إلينا لتصحيح الأخطاء. ستتم إزالة أي بيانات حساسة من الملف المصدّر." + :export/debug-transit-file "تصدير ملف transit للتصحيح" + :export/edn-desc "يصدّر إلى ملف .edn قابل للقراءة والتعديل. لا تعتمد على هذا كنسخة احتياطية أساسية." + :export/error-unexpected "حدث خطأ غير متوقع أثناء التصدير. راجع وحدة تحكم جافا سكريبت للحصول على التفاصيل." + :export/exporting "جارٍ التصدير" + :export/finalizing "جارٍ الإنهاء" + :export/format-text "نص" + :export/graph "تصدير الرسم البياني" + :export/graph-ontology-data-copied "تم نسخ بيانات أنطولوجيا الرسم إلى الحافظة" + :export/indent-style-dashes "شرطات" + :export/indent-style-label "نمط المسافة البادئة:" + :export/indent-style-none "بدون مسافة بادئة" + :export/indent-style-spaces "مسافات" + :export/level-lte "المستوى <=" + :export/markdown "تصدير كـ Markdown (بدون خصائص الكتل)" + :export/newline-after-block "سطر جديد بعد الكتلة" + :export/no-updates-since-last-export "لا توجد تغييرات منذ آخر تصدير." + :export/open-blocks-only "الكتل المفتوحة فقط (تخطي الأبناء المطويين)" + :export/page "تصدير الصفحة" + :export/page-data-copied "تم نسخ بيانات الصفحة إلى الحافظة" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "جارٍ تحضير الملف المضغوط" + :export/preview-alt "معاينة التصدير" + :export/public-pages "تصدير الصفحات العامة" + :export/remove-emphasis "إزالة التأكيد" + :export/remove-properties "إزالة الخصائص" + :export/remove-tags "إزالة #الوسوم" + :export/save-to-file "حفظ إلى ملف" + :export/sqlite-db "تصدير قاعدة بيانات SQLite" + :export/title "تصدير" + :export/transparent-background "خلفية شفافة" + :export/view-nodes-data-copied "تم نسخ بيانات عقد العرض إلى الحافظة" + :export/zip "تصدير DB SQLite والملفات" + :export/zip-error "فشل تصدير ZIP." + + :export.backup/backup-now "نسخ احتياطي الآن" + :export.backup/cancel "إلغاء النسخ الاحتياطي" + :export.backup/enabled-desc "النسخ الاحتياطي كل ساعة مفعّل لهذا الرسم البياني، {1}." + :export.backup/folder "مجلد النسخ الاحتياطي:" + :export.backup/hourly-note "سيتم إنشاء نسخة احتياطية كل ساعة." + :export.backup/open-folder "فتح مجلد النسخ الاحتياطية لهذا الرسم البياني" + :export.backup/schedule "جدولة النسخ الاحتياطي" + :export.backup/set-folder-first "حدد مجلد النسخ الاحتياطي أولاً" + :export.backup/sqlite-desc "الطريقة الأساسية لنسخ محتوى الرسم البياني احتياطيًا إلى ملف .sqlite واحد." + :export.backup/unsupported-desc "متصفحك لا يدعم {{The File System Access API}}، يرجى التبديل إلى متصفح مبني على Chromium." + :export.backup/zip-desc "الطريقة الأساسية لنسخ محتوى الرسم البياني والأصول احتياطيًا إلى ملف .zip." + + :file/config-duplicate-keys "يحتوي الملف '{1}' على مفاتيح مكررة. تم تعيين المفتاح \"{2}\" عدة مرات." + :file/config-invalid "ملف التكوين غير صالح" + :file/format-not-supported "التنسيق .{1} ليس مدعوماً." + :file/label "ملف" + :file/last-modified-at "آخر تعديل في" + :file/name "اسم الملف" + :file/no-data "لا توجد بيانات" + :file/title "ملف {1}" + + :file.config/deprecation-title "الملف {1} يحتوي على الاستخدامات التالية المستهلكة:" + :file.config/error-title "الملف {1} يحتوي على الأخطاء التالية:" + :file.config/invalid-desc "تأكد من أن الإعدادات محاطة بـ {}." + :file.config/invalid-title "الملف {1} غير صالح." + :file.config/read-failed-desc "تأكد من أن الإعدادات محاطة بـ {}. تأكد أيضاً من أن الأحرف '( { [' لها أحرفها الإغلاق المقابلة ') } ]'." + :file.config/read-failed-title "فشل في قراءة الملف {1}" + + :flashcard/add-query "إضافة استعلام جديد" + :flashcard/all-cards "كل البطاقات" + :flashcard/select-cards "تحديد البطاقات" + :flashcard/shortcut-tooltip "اختصار: {1}" + + :flashcard.empty/desc "لإنشاء بطاقة، أضف «{1}» إلى أي كتلة أو استخدم «/cloze» لإنشاء فراغات." + :flashcard.empty/title "مرحباً بالبطاقات التعليمية" + + :flashcard.rating/again "مرة أخرى" + :flashcard.rating/again-desc "كانت الإجابة خاطئة. وهذا يعني تلقائياً أننا نسينا البطاقة. إنها هفوة في الذاكرة。" + :flashcard.rating/easy "سهل" + :flashcard.rating/easy-desc "كانت الإجابة صحيحة وتذكرناها بسرعة وبثقة من دون جهد ذهني。" + :flashcard.rating/good "جيد" + :flashcard.rating/good-desc "كانت الإجابة صحيحة، لكننا احتجنا إلى بعض الجهد الذهني لتذكرها。" + :flashcard.rating/hard "صعب" + :flashcard.rating/hard-desc "كانت الإجابة صحيحة، لكننا لم نكن واثقين منها أو استغرقنا وقتًا طويلًا لتذكرها." + + :flashcard.review/finished "تهانينا، لقد راجعت كل بطاقات هذا الاستعلام. إلى اللقاء! 💯" + :flashcard.review/hide-answers "إخفاء الإجابات" + :flashcard.review/show-answers "عرض الإجابات" + :flashcard.review/show-clozes "إظهار الفراغات" + + :format/bold "غامق" + :format/code "كود" + :format/highlight "تمييز" + :format/italics "مائل" + :format/strikethrough "يتوسطه خط" + + :graph/all-graphs "كل الرسوم البيانية" + :graph/already-exists-error "الرسم البياني '{1}' موجود بالفعل. يرجى المحاولة باسم آخر." + :graph/as-png "كصورة PNG" + :graph/built-in-pages "صفحات مدمجة" + :graph/charge-range "نطاق الشحنة" + :graph/charge-strength "قوة الشحنة" + :graph/click-to-search "انقر للبحث" + :graph/create-db "إنشاء رسم بياني DB" + :graph/create-error "فشل إنشاء الرسم البياني" + :graph/create-new "إنشاء رسم بياني جديد" + :graph/created-before "أُنشئ قبل" + :graph/creating "جارٍ إنشاء الرسم البياني" + :graph/delete-local-action "حذف الرسم البياني المحلي" + :graph/delete-local-confirm-desc "هل أنت متأكد من رغبتك في حذف الرسم البياني \"{1}\" نهائياً من Logseq؟" + :graph/delete-server-action "حذف من الخادم" + :graph/delete-server-confirm-desc "هل أنت متأكد من رغبتك في حذف الرسم البياني \"{1}\" نهائياً من خادمنا؟" + :graph/delete-warning "⚠️ لاحظ أنه لا يمكننا استرجاع هذا الرسم البياني بعد حذفه. تأكد من أن لديك نسخ احتياطية قبل حذفه." + :graph/diff "Git diff" + :graph/downloading "جارٍ التنزيل" + :graph/encrypt-data-label "تشفير بيانات الرسم البياني" + :graph/excluded-pages "صفحات مستبعدة" + :graph/forces "القوى" + :graph/gc-success "تم تنظيف الرسم البياني بنجاح!" + :graph/last-opened-at-label "آخر فتح: {1}" + :graph/leave-action "مغادرة هذا الرسم البياني" + :graph/leave-confirm-desc "هل أنت متأكد من رغبتك في مغادرة هذا الرسم البياني؟" + :graph/leave-error "فشل مغادرة الرسم البياني" + :graph/left "تمت المغادرة" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "رابط" "روابط"))) + :graph/link-distance "مسافة الرابط" + :graph/local-graphs "الرسوم المحلية" + :graph/n-hops-from-selected-nodes "عدد القفزات من العقد المحددة" + :graph/name-placeholder "اسم الرسم البياني" + :graph/nodes "العقد" + :graph/orphan-pages "صفحات يتيمة" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "صفحة" "صفحات"))) + :graph/pause-simulation "إيقاف المحاكاة مؤقتًا" + :graph/preparing "جارٍ التحضير" + :graph/refresh-remote-graphs "تحديث الرسوم البيانية البعيدة" + :graph/remote-graphs "الرسوم البعيدة" + :graph/removed "تمت إزالة الرسم البياني «{1}»" + :graph/removed-and-redirecting "تمت إزالة الرسم البياني «{1}». جارٍ التحويل إلى الرسم البياني «{2}»" + :graph/removed-from-sync "تمت إزالة الرسم من المزامنة" + :graph/reset "إعادة تعيين الرسم البياني" + :graph/reset-forces "إعادة تعيين القوى" + :graph/search "بحث" + :graph/shared-graphs "الرسوم المشتركة" + :graph/updated-switching "تم تحديث الرسم. جارٍ التبديل..." + :graph/use-sync-beta "استخدم Logseq Sync (اختبار بيتا)" + :graph/use-sync-label "استخدام Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "فشل حساب تشخيصات checksum للرسم البياني." + :graph.diagnostics/checksum-recomputed-success "أُعيد حساب checksum. المُعاد حسابه: {1}، المحلي: {2}، البعيد: {3}. تم تنزيل {4}.edn مع {5} كتلة وسمات checksum {6}." + :graph.diagnostics/checksum-unavailable-warning "تعذر حساب تشخيصات checksum للرسم البياني الحالي." + :graph.diagnostics/client-ops-export-failed-error "فشل تصدير Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "فشل تصدير Client ops SQLite: نوع payload غير صالح {1}." + :graph.diagnostics/client-ops-export-success "تم تصدير Client ops SQLite: {1}.sqlite" + :graph.diagnostics/no-graph-warning "لم يتم العثور على رسم بياني." + + :graph.page/show-journals "عرض اليوميات" + :graph.page/title "رسم الصفحة" + + :graph.switch/add-graph-action "إضافة رسم بياني" + :graph.switch/empty-desc "لا توجد عناصر متاحة" + :graph.switch/prompt "تبديل" + :graph.switch/select-prompt "اختر رسماً بيانياً" + + :graph.validation/config-arweave-gateway-warning "لم يعد مدعوماً." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "لم يعد مدعوماً. يرجى استخدام '/' والإبلاغ عن الأخطاء فيها." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "لا يُستخدم في رسوم بيانية قواعد البيانات لأن هناك فقط وضع تخفيض السعر." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "اكتشف التحقق {1} كتلة (كتل) غير صالحة. قد تكون هذه الكتل معيبة. محاولة إصلاح الكتل غير الصالحة. قم بتشغيل التحقق مرة أخرى لترى ما إذا تم إصلاحها." + :graph.validation/name-reserved-characters-warning "لا يمكن أن يحتوي اسم الرسم البياني على الأحرف المحجوزة التالية:" + :graph.validation/reserved-character-asterisk "نجمة" + :graph.validation/reserved-character-backslash "شرطة مائلة عكسية" + :graph.validation/reserved-character-colon "نقطتان" + :graph.validation/reserved-character-double-quote "علامة اقتباس مزدوجة" + :graph.validation/reserved-character-forward-slash "شرطة مائلة" + :graph.validation/reserved-character-greater-than "أكبر من" + :graph.validation/reserved-character-hash "علامة #" + :graph.validation/reserved-character-less-than "أقل من" + :graph.validation/reserved-character-pipe "خط عمودي أو بايب" + :graph.validation/reserved-character-plus "علامة +" + :graph.validation/reserved-character-question-mark "علامة استفهام" + :graph.validation/valid "الرسم البياني صالح! {1}" + + :header/go-back "رجوع" + :header/go-forward "تقدم" + :header/highlight-recent-blocks "تمييز الكتل الحديثة" + :header/highlight-recent-blocks-days-ago "تمييز الكتل الحديثة: منذ {1} يومًا" + :header/more "المزيد" + :header/quit-highlight-recent-blocks "إيقاف تمييز الكتل الأخيرة" + :header/toggle-left-sidebar "تبديل الشريط الجانبي الأيسر" + + :help/about "حول Logseq" + :help/about-title "حول" + :help/ask-community "اسأل المجتمع" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "مرجع الكتلة" + :help/blog "المدونة" + :help/bug "الإبلاغ عن خطأ على GitHub" + :help/changelog "سجل التغييرات" + :help/community-title "المجتمع" + :help/context-menu "قائمة سياق الكتلة" + :help/context-menu-action "انقر بزر الفأرة الأيمن على التعداد" + :help/development-title "التطوير" + :help/docs "التوثيق" + :help/feature "طلب ميزة" + :help/forum-community "مجتمع المنتدى" + :help/handbook "الدليل" + :help/learn-more "اعرف المزيد" + :help/markdown-syntax "صيغة Markdown" + :help/open-link-in-sidebar "فتح الرابط في الشريط الجانبي" + :help/open-link-in-sidebar-action "Shift+النقر على المرجع" + :help/privacy "سياسة الخصوصية" + :help/reference-autocomplete "مرجع الصفحة للإكمال التلقائي" + :help/release-notes "ملاحظات الإصدار" + :help/roadmap "خارطة الطريق" + :help/search "بحث" + :help/slash-autocomplete "إكمال تلقائي للشرطة المائلة" + :help/start "البدء" + :help/submit-feedback "إرسال ملاحظات" + :help/support-forum "منتدى الدعم" + :help/terms "الشروط" + :help/terms-title "الشروط" + :help/usage-title "الاستخدام" + + :help.handbook/chat-on-discord "الدردشة على Discord" + :help.handbook/chat-on-discord-desc "اطرح أسئلة سريعة، تعرّف على مستخدمين آخرين، وتعلّم طرق عمل جديدة." + :help.handbook/copy-topic-link "نسخ رابط الموضوع" + :help.handbook/current-chapter "الفصل الحالي" + :help.handbook/help-categories "فئات المساعدة" + :help.handbook/home "الرئيسية" + :help.handbook/link-copied "تم نسخ رابط الدليل!" + :help.handbook/monthly-posts "منشورات شهرية" + :help.handbook/next-chapter "الفصل التالي" + :help.handbook/popular-topics "المواضيع الشائعة" + :help.handbook/prev-chapter "الفصل السابق" + :help.handbook/resources-from "مصادر من {1}" + :help.handbook/search-placeholder "بحث" + :help.handbook/shortcuts-count "{1} اختصارات" + :help.handbook/sync "المزامنة" + :help.handbook/title "الدليل" + :help.handbook/topics "المواضيع" + :help.handbook/users-online "مستخدمون متصلون" + :help.handbook/visit-the-forum "زيارة المنتدى" + :help.handbook/visit-the-forum-desc "قدّم ملاحظات، اطلب ميزات، وأجرِ محادثات معمّقة." + :help.handbook/writing-mode "وضع الكتابة (معاينة مع مرور الوقت)" + + :help.shortcuts/desc "عرض الاختصارات والنصائح" + :help.shortcuts/label "اختصارات لوحة المفاتيح" + :help.shortcuts/shortcut-column "الاختصارات" + :help.shortcuts/title "اختصارات لوحة المفاتيح" + :help.shortcuts/triggers "الاختصارات والمحفزات" + + :icon/emojis-count "الرموز التعبيرية ({1})" + :icon/icons-count "الأيقونات ({1})" + :icon/matched-count "مطابق ({1})" + :icon/search-all "ابحث في الكل" + :icon/search-emojis "ابحث في الرموز التعبيرية" + :icon/search-icons "ابحث في الأيقونات" + :icon/tab-all "الكل" + :icon/tab-emojis "الرموز التعبيرية" + :icon/tab-icons "الأيقونات" + + :import/all-tags "استيراد كل الوسوم" + :import/asset-too-large-warning "تم تخطي نسخ الأصل {1} لأنه يتجاوز حد 100 ميجابايت." + :import/assets-import-partial "{1}/{2} ملف تم استيرادها. التفاصيل في وحدة التحكم." + :import/assets-imported "{1} ملف تم استيرادها." + :import/assets-skipped "{1} ملف تم تخطيها. التفاصيل في وحدة التحكم." + :import/block-icons-cannot-be-imported "لا يمكن استيراد أيقونات الكتل. استوردها يدوياً في الكتلة {1}." + :import/cannot-import-block-into-non-block-entity "لا يمكن استيراد كتلة إلى كيان غير كتلة." + :import/db-edn-desc "استيراد تصدير EDN لرسم بياني DB إلى رسم بياني DB جديد" + :import/db-edn-title "EDN إلى رسم بياني DB" + :import/debug-transit-desc "استيراد ملف transit للتصحيح إلى رسم بياني DB جديد" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "سلوك رسم DB الافتراضي" + :import/empty-graph-name "اسم الرسم البياني لا يمكن أن يكون فارغاً." + :import/extract-inline-code-snippets "استخراج مقتطفات الكود كأجزاء فرعية" + :import/file-finished "اكتمل الاستيراد!" + :import/file-to-db-desc "استيراد مجلد رسم بياني Logseq المستند إلى ملفات إلى رسم بياني DB جديد" + :import/file-to-db-title "ملف إلى رسم بياني DB" + :import/graph-name-conflict "رسم بياني بهذا الاسم موجود بالفعل. اختر اسماً آخر!" + :import/graph-name-placeholder "اسم الرسم البياني" + :import/ignored-assets "{1} ملف تم تخطيها أثناء الاستيراد. التفاصيل في وحدة تحكم JavaScript." + :import/ignored-files "{1} ملف تم تخطيها أثناء الاستيراد. التفاصيل في وحدة تحكم JavaScript." + :import/ignored-properties "{1} خاصية تم تخطيها أثناء الاستيراد" + :import/ignored-properties-fix "لإصلاح نوع الخاصية، غيّر القيمة وأعد الاستيراد" + :import/invalid-blocks-detected "{1} كتلة غير صالحة. قد لا يعمل التفاعل. التفاصيل في وحدة تحكم JavaScript." + :import/invalid-edn-file "ملف EDN المقدم غير صالح. صححه وحاول مرة أخرى." + :import/loading "جارٍ الاستيراد" + :import/logseq-config-missing "خطأ: رسم Logseq لا يحتوي على ملف 'logseq/config.edn'." + :import/new-graph-name "اسم رسم بياني جديد" + :import/notes "استيراد الملاحظات" + :import/org-files-imported "{1} ملف Org تم استيرادها كـ Markdown. دعم Org سيضاف لاحقاً." + :import/page-icons-cannot-be-imported "لا يمكن استيراد أيقونات الصفحات. استوردها يدوياً في الصفحة {1}." + :import/properties-case-insensitive-commas "أسماء الخصائص (غير حساسة لحالة الأحرف، مفصولة بفاصلة)" + :import/property-classes-placeholder "مثال: type" + :import/property-import-manually "يجب استيراد هذه الخاصية يدوياً" + :import/property-parent-classes-placeholder "مثال: parent" + :import/property-type-mismatch "قيمة الخاصية من نوع {1}، وليس {2}" + :import/property-value-tag-parents "استيراد الوسوم الأصلية من قيم الخصائص" + :import/property-value-tags "استيراد وسوم إضافية من قيم الخصائص" + :import/remove-inline-tags "إزالة الوسوم المضمنة" + :import/select-edn-or-json "اختر ملف EDN أو JSON." + :import/specific-tags "استيراد وسوم محددة" + :import/sqlite-and-assets-desc "استيراد ملف مضغوط يحتوي على db.sqlite ومجلد أصول" + :import/sqlite-and-assets-title "SQLite + أصول (.zip)" + :import/submitted-edn-invalid "بيانات EDN المقدمة غير صالحة! صححها وحاول مرة أخرى." + :import/successful "تم الاستيراد بنجاح!" + :import/tag-classes-placeholder "وسم1، وسم2" + :import/tags-case-insensitive "الوسوم (غير حساسة لحالة الأحرف)" + :import/title "استيراد" + :import/unexpected-error "خطأ غير متوقع: {1}" + :import/zip-import-error "فشل استيراد الملف المضغوط: {1}" + :import/zip-missing-db-sqlite "ملف ZIP لا يحتوي على db.sqlite" + + :journal/add-blocks-to-today-success "الكتل المضافة اليوم" + :journal/page-cant-convert-warning "هذه الصفحة ليست صفحة يومية." + :journal/parse-date-to-name-error "فشل تحليل اسم اليومية" + + :journal.default-query/doing "قيد التنفيذ" + :journal.default-query/todo "للتنفيذ" + + :keymap/all "الكل" + :keymap/already-bound "الاختصار مرتبط بالفعل" + :keymap/also-used-for-action "يُستخدم أيضًا لـ {1}" + :keymap/also-used-for-action-in-context "يُستخدم أيضًا لـ {1} السياق: {2}" + :keymap/clear "مسح" + :keymap/clear-keystroke-filter "مسح فلتر ضغطات المفاتيح" + :keymap/clear-search "مسح البحث" + :keymap/custom "مخصص" + :keymap/deactivates-chord "يعطّل" + :keymap/deactivates-chords "يعطّل {1} من اختصارات المفاتيح المركبة" + :keymap/disabled "معطل" + :keymap/esc-is-reserved "Esc محجوز" + :keymap/hint-cancel "إلغاء" + :keymap/hint-close "إغلاق" + :keymap/hint-reassign "إعادة تعيين" + :keymap/hint-remove "إزالة" + :keymap/keystroke-filter "فلتر ضغطات المفاتيح" + :keymap/no-matching-shortcuts "لا توجد اختصارات مطابقة" + :keymap/press-a-shortcut "اضغط اختصاراً" + :keymap/press-keys-to-filter "اضغط المفاتيح للتصفية" + :keymap/reassign "إعادة تعيين" + :keymap/reassign-tooltip "إعادة تعيين اختصار هذا الإجراء" + :keymap/reassigned-from "أعيد تعيينه من {1}" + :keymap/refresh-all "تحديث الكل" + :keymap/remove-binding "إزالة الربط" + :keymap/remove-filter "إزالة الفلتر" + :keymap/reset "إعادة تعيين" + :keymap/reset-to-default "إعادة التعيين للافتراضي" + :keymap/search-by-keys "البحث بالمفاتيح" + :keymap/search-placeholder "البحث عن اختصار…" + :keymap/shortcut-added "تمت إضافة الاختصار" + :keymap/shortcut-removed "تمت إزالة الاختصار" + :keymap/toggle-categories-pane "تبديل لوحة الفئات" + :keymap/undo "تراجع" + :keymap/unset "غير محدد" + :keymap/used-by-action "مستخدَم بواسطة {1}" + + :library/add-existing-pages "أضف الصفحات الموجودة إلى المكتبة" + :library/add-pages "إضافة صفحات" + :library/title "المكتبة" + + :mobile/camera-access-denied "يتم الوصول إلى الكاميرا مرفوضة. تمكنه في الإعدادات > Logseq." + :mobile/microphone-access-denied "يتم الوصول إلى الميكروفون مرفوضة. تمكنه في الإعدادات > Logseq." + + :mobile.header/actions "الإجراءات" + :mobile.header/create-graph "إنشاء رسم بياني" + :mobile.header/delete-block-confirm-desc "حذف هذه الكتلة؟" + :mobile.header/delete-page-confirm-desc "حذف هذه الصفحة؟" + + :mobile.intent/file-options "خيارات الملف" + :mobile.intent/open-with-app "فتح الملف بتطبيقك المفضل" + :mobile.intent/select-option-prompt "اختر إجراءً للتنفيذ" + :mobile.intent/share "مشاركة" + + :mobile.log/all "الكل" + :mobile.log/errors-only "الأخطاء فقط" + :mobile.log/full "كامل" + :mobile.log/new-first "الأحدث أولاً" + :mobile.log/old-first "الأقدم أولاً" + :mobile.log/ui "واجهة المستخدم" + :mobile.log/worker "العامل" + + :mobile.settings/account "الحساب" + :mobile.settings/check-log "السجل" + :mobile.settings/discord-community "مجتمع Discord" + :mobile.settings/forum "المنتدى" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "الإبلاغ عن خطأ" + :mobile.settings/revision "المراجعة" + :mobile.settings/theme "السمة" + :mobile.settings/version "الإصدار" + + :mobile.share/file-import-error "فشل استيراد الملف" + :mobile.share/media-import-error "فشل استيراد الوسائط" + :mobile.share/unsupported-content-warning "تحليل المحتوى المشترك الحالي غير مدعوم. يرجى الإبلاغ عن الأكواد التالية على {1}. سننظر في الأمر قريبًا." + :mobile.share/unsupported-import-type "استيراد ملف {1} غير مدعوم. يمكنك الإبلاغ عنه على {2}. سننظر في الأمر قريبًا." + + :mobile.tab/capture "التقاط" + :mobile.tab/go-to "الانتقال إلى" + :mobile.tab/graphs "الرسوم البيانية" + + :mobile.toolbar/audio "صوت" + :mobile.toolbar/copy-ref "نسخ المرجع" + :mobile.toolbar/copy-url "نسخ الرابط" + :mobile.toolbar/hide "إخفاء" + :mobile.toolbar/indent "مسافة بادئة" + :mobile.toolbar/outdent "إزالة المسافة البادئة" + :mobile.toolbar/photo "صورة" + :mobile.toolbar/redo "إعادة" + :mobile.toolbar/reference "مرجع" + :mobile.toolbar/slash "شرطة" + :mobile.toolbar/tag "وسم" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "تراجع" + :mobile.toolbar/unselect "إلغاء التحديد" + + :nav/all-files "كل الملفات" + :nav/all-journals "كل اليوميات" + :nav/appearance "المظهر" + :nav/assets "الملفات" + :nav/cannot-go-to-internal-page "لا يمكن الانتقال إلى صفحة داخلية" + :nav/flashcards "البطاقات التعليمية" + :nav/graph "الرسم البياني" + :nav/graph-view "عرض الرسم البياني" + :nav/help "مساعدة" + :nav/home "الرئيسية" + :nav/invalid-jump-error "انتقال غير صالح" + :nav/journals "اليوميات" + :nav/plugins "الإضافات" + :nav/search "بحث" + :nav/settings "الإعدادات" + :nav/skip-to-main-content "الانتقال إلى المحتوى الرئيسي" + :nav/tasks "المهام" + :nav/themes "السمات" + + :nav.all-pages/label "كل الصفحات" + :nav.all-pages/title "كل الصفحات" + + :node/built-in-cant-delete-error "لا يمكن حذف العناصر المدمجة." + :node/new "عقدة جديدة" + + :notification/clear-all "مسح الكل" + :notification/copied "تم النسخ" + + :onboarding.import/desc "وصف الاستيراد" + :onboarding.import/sqlite-desc "الاستيراد من قاعدة بيانات SQLite" + :onboarding.import/title "استيراد" + + :onboarding.import-option/desc "استيراد البيانات من تطبيقات أخرى" + :onboarding.import-option/title "استيراد البيانات" + + :onboarding.setup/desc "مساحة عمل لمعرفتك" + :onboarding.setup/title (fn [] ["مرحباً بك في " [:strong "Logseq"] "!"]) + + :page/add-to-favorites "إضافة إلى المفضلة" + :page/added-tag-to-node "تمت إضافة العلامة \"{1}\" إلى \"{2}\"" + :page/backlinks "الروابط العكسية" + :page/clear "مسح" + :page/clear-local-storage-desc "هذا يحذف التفضيلات البسيطة مثل تفضيل السمة الداكنة/الفاتحة." + :page/cleared "تم المسح" + :page/contents "المحتويات" + :page/convert-to-tag "تحويل إلى وسم" + :page/copy-url "نسخ رابط الصفحة" + :page/create "إنشاء صفحة جديدة" + :page/created-at "أُنشئ في" + :page/current-graph-as-sqlite-db "الرسم البياني الحالي كقاعدة بيانات SQLite" + :page/default-query-error "فشل الاستعلام الافتراضي:" + :page/delete "حذف" + :page/go-back-home "العودة إلى الصفحة الرئيسية" + :page/hide-properties "إخفاء الخصائص" + :page/local-storage "التخزين المحلي" + :page/logseq-is-having-a-problem "يواجه Logseq مشكلة. لمحاولة إعادته إلى حالة عمل مستقرة، جرّب الخطوات الآمنة التالية بالترتيب:" + :page/make-private "جعلها خاصة" + :page/make-public "جعلها عامة" + :page/moved-to-recycle "تم نقل العقدة إلى سلة المحذوفات" + :page/name "اسم الصفحة" + :page/no-page-found-to-copy "لم يتم العثور على صفحة للنسخ" + :page/not-found "الصفحة غير موجودة" + :page/not-found-desc "عذرًا! الصفحة التي تبحث عنها غير موجودة." + :page/not-found-title "الصفحة غير موجودة" + :page/not-found-warning "لم يتم العثور على صفحة" + :page/open-all-graphs-desc "يمكنك أيضًا الذهاب إلى {{All graphs}} للتبديل إلى رسم بياني آخر." + :page/open-issue-desc "إذا لم تحل خطوات استكشاف الأخطاء هذه مشكلتك، يرجى {{open an issue}}." + :page/open-properties "فتح الخصائص" + :page/rebuild "إعادة البناء" + :page/relaunch "إعادة التشغيل" + :page/relaunch-desc "إنهاء التطبيق وإعادة فتحه." + :page/scheduled-and-deadline "المجدول والموعد النهائي" + :page/search-index "فهرس البحث" + :page/send-db-for-debugging "يمكنك إرساله إلى help@logseq.com لتصحيح الأخطاء." + :page/something-went-wrong "حدث خطأ ما" + :page/step "الخطوة {1}" + :page/the-app "التطبيق" + :page/try "حاول" + :page/unfavorite "إزالة من المفضلة" + :page/unknown "صفحة غير معروفة" + :page/updated-at "حُدّث في" + + :page.convert/block-parent-not-page "لا يمكن تحويل الكتلة. الأصل ليس صفحة." + :page.convert/cant-be-block "لا يمكن تحويل الصفحة \"{1}\" إلى كتلة." + :page.convert/cant-be-block-has-children "لا يمكن تحويل الصفحة \"{1}\" إلى كتلة لأنها تحتوي على صفحات فرعية." + :page.convert/cant-be-block-move-first "لا يمكن تحويل الصفحة \"{1}\" إلى كتلة، يرجى نقلها إلى صفحة أخرى أولاً." + :page.convert/page-to-tag-action "تحويل \"{1}\" إلى وسم" + :page.convert/page-to-tag-built-in "الصفحات المدمجة لا يمكن أن تكون وسوماً" + :page.convert/page-to-tag-duplicate "هناك علامة بالاسم \"{1}\" موجودة بالفعل." + :page.convert/page-to-tag-namespaced "صفحات مساحة الأسماء لا يمكن أن تكون وسوماً" + :page.convert/property-value-to-page "لا يمكن تحويل قيمة الخاصية إلى صفحة." + :page.convert/tag-to-page-action "تحويل الوسم إلى صفحة" + :page.convert/tag-to-page-built-in "الوسوم المدمجة لا يمكن أن تكون صفحات" + :page.convert/tag-to-page-confirm-desc "سيؤدي تحويل الوسم إلى صفحة أيضًا إلى إزالة خصائص الوسم وإزالة الوسم من جميع العقد الموسومة به. هل أنت موافق على ذلك؟" + :page.convert/tag-to-page-duplicate "توجد صفحة بالاسم \"{1}\" بالفعل." + :page.convert/tag-to-page-has-children "الوسم له عناصر فرعية ولا يمكن تحويله" + + :page.delete/batch-confirm-title "هل أنت متأكد أنك تريد حذف هذه الصفحات؟ سيتم حذف الخصائص والوسوم نهائياً وستُنقل الصفحات إلى سلة المحذوفات." + :page.delete/confirm-title "هل أنت متأكد أنك تريد حذف هذه الصفحة؟" + :page.delete/permanent-confirm-title "هل أنت متأكد أنك تريد حذف هذه الصفحة نهائياً؟" + :page.delete/success "تم حذف الصفحة «{1}» بنجاح!" + :page.delete/total "الإجمالي: {1}" + :page.delete/warning "تم حذف محتواها من هذه الصفحات ولكن تعذر حذفها: {1}. راجع وحدة تحكم جافا سكريبت لمزيد من التفاصيل." + + :page.validation/cant-set-built-in-tags "لا يمكن للصفحة الجديدة تعيين علامات مضمنة: {1}" + :page.validation/duplicate "هناك صفحة أخرى باسم \"{1}\" موجودة بالفعل للعلامات: {2}." + :page.validation/name-blank "اسم الصفحة لا يمكن أن يكون فارغاً." + :page.validation/name-no-hash "اسم الصفحة لا يمكن أن يتضمن #" + :page.validation/name-no-slash "اسم الصفحة لا يمكن أن يحتوي /." + :page.validation/parents-must-be-pages "الأصول يجب أن تكون صفحات." + + :pdf/annotations-page "صفحة التعليقات التوضيحية" + :pdf/area-highlight-shortcut "تمييز المنطقة ({1})" + :pdf/auto-fit "ملاءمة تلقائية" + :pdf/auto-open-context-menu "فتح قائمة السياق تلقائياً" + :pdf/copy-ref "نسخ مرجع PDF" :pdf/copy-text "نسخ النص" - :pdf/linked-ref "مرجع مرتبط" - :pdf/toggle-dashed "نمط التظليل المتقطع لمنطقة" - :pdf/hl-block-colored "عنوان ملون لكتلة التظليل" - :pdf/auto-open-context-menu "إظهار قائمة الخيارات تلقائياً عند التحديد" + :pdf/corrupted-file-error "خطأ: {1}\nهل ملف .pdf هذا تالف؟\nيرجى التأكد باستخدام عارض PDF خارجي." :pdf/doc-metadata "بيانات المستند الوصفية" + :pdf/enter-to-search "اضغط Enter للبحث" + :pdf/find-results "{1} من {2} تطابقات (\"{3}\")" + :pdf/generic-error "خطأ: {1}\n{2}\nيرجى التأكد من مصدر ملف PDF." + :pdf/highlight-mode "وضع التمييز" + :pdf/highlights "التمييزات" + :pdf/hl-block-colored "تمييز ملون" + :pdf/linked-ref "مرجع مرتبط" + :pdf/load-highlights-file-error "خطأ: فشل تحميل ملف الخطوط: \"{1}\". \n{2}" + :pdf/missing-file-error "خطأ: {1}\n هل هذا هو المسار الصحيح؟" + :pdf/more-settings "مزيد من الإعدادات" + :pdf/no-outlines "لا توجد مخططات" + :pdf/not-found "غير موجود." + :pdf/open-in-app-window "فتح في نافذة التطبيق" + :pdf/open-in-external-window "فتح في نافذة خارجية" + :pdf/outline "المخطط" + :pdf/page-label "صفحة {1}" + :pdf/password-protected-desc "هذا المستند محمي بكلمة مرور. يرجى إدخال كلمة المرور:" + :pdf/password-required "كلمة المرور مطلوبة" + :pdf/search "بحث" + :pdf/search-placeholder "بحث" + :pdf/toggle-dashed "تبديل الخط المتقطع" + :pdf/viewer "عارض PDF" + :pdf/zoom-in "تكبير" + :pdf/zoom-out "تصغير" - :updater/new-version-install "تم تنزيل نسخة جديدة." - :updater/quit-and-install "أعد تشغيل البرنامج للتثبيت" + :plugin/all "الكل" + :plugin/auto-update-check "التحقق التلقائي من التحديثات" + :plugin/auto-update-check-feedback "التحقق التلقائي من التحديثات: {1}!" + :plugin/check-all-updates "التحقق من كل التحديثات" + :plugin/check-update "التحقق من التحديثات" + :plugin/checked "تم الفحص" + :plugin/checking-for-updates "جارٍ التحقق من التحديثات" + :plugin/contribute "✨ المساهمة" + :plugin/custom-js-alert "تنبيه JS مخصص" + :plugin/date-added "تاريخ الإضافة" + :plugin/delete-alert "هل أنت متأكد من أنك تريد إلغاء تثبيت المكوّن الإضافي [{1}]؟" + :plugin/disable-for-performance-feedback "تم تعطيل الإضافة {1}." + :plugin/disable-now "تعطيل الآن" + :plugin/disabled "معطلة" + :plugin/does-not-support-db "لا يدعم رسوم DB البيانية" + :plugin/downloads "التنزيلات" + :plugin/empty "لم يتم العثور على شيء." + :plugin/enabled "مفعلة" + :plugin/existed-package "حزمة البرنامج الإضافي الموجودة ({1})." + :plugin/fatal-error "خطأ جسيم: {1}" + :plugin/found-n-updates "{1} تحديثات متاحة" + :plugin/found-updates "تم العثور على تحديثات" + :plugin/install "تثبيت" + :plugin/install-error "فشل التثبيت: {1}\n{2}" + :plugin/installed "مثبتة" + :plugin/installed-plugin "البرنامج المساعد المثبت: {1}" + :plugin/installing "جارٍ التثبيت" + :plugin/invalid-github-repo-url "رابط مستودع GitHub غير صالح" + :plugin/invalid-package "حزمة غير صالحة" + :plugin/invalid-plugins-edn "ملف plugins.edn غير صالح" + :plugin/list-of-updates "قائمة التحديثات" + :plugin/load-from-web-url "تحميل من رابط" + :plugin/load-plugin-indicator "جارٍ تحميل الإضافة: {1}..." + :plugin/load-unpacked "تحميل إضافة غير محزمة" + :plugin/loading-indicator "جارٍ التحميل" + :plugin/malformed-plugins-edn "خطأ في ملف plugins.edn" + :plugin/marketplace "متجر الإضافات" + :plugin/new-registered "إضافة جديدة مسجلة" + :plugin/no-settings-schema "لا يوجد مخطط إعدادات!" + :plugin/not-installed "غير مثبتة" + :plugin/open-logseq-dir "فتح مجلد Logseq" + :plugin/open-package "فتح الحزمة" + :plugin/open-preferences "فتح التفضيلات" + :plugin/open-settings "فتح الإعدادات" + :plugin/perf-tip "هذه الإضافة {1} تستغرق وقتًا طويلاً للتحميل، مما يؤثر على وقت بدء التطبيق وقد يتسبب في فشل تحميل إضافات أخرى." + :plugin/popular "شائع" + :plugin/proxy-check-success "نجح الفحص: الحالة {1} خلال {2} مللي ثانية." + :plugin/readme-empty-warning "لا يوجد محتوى README" + :plugin/refresh-lists "تحديث القوائم" + :plugin/reload "إعادة تحميل" + :plugin/remote-error "خطأ من المصدر البعيد: {1}" + :plugin/report-modal-desc "إذا كان أي مكون إضافي غير متاح أو كنت تعتقد أنه يحتوي على رمز ضار، يرجى إرسال بريد إلى {1}. اذكر اسم المكون الإضافي وعنوان URL لمستودع GitHub الخاص به. عادة ما يرد فريق Logseq في غضون يوم عمل واحد." + :plugin/report-security "الإبلاغ عن مشكلة أمنية" + :plugin/restart "إعادة تشغيل" + :plugin/search-plugin "البحث عن إضافة" + :plugin/security-warning "تحذير أمني" + :plugin/setting-not-handled "#غير معالج# {1}" + :plugin/settings-schema-error "خطأ في مخطط الإعدادات!" + :plugin/stars "نجوم" + :plugin/supports-db "دعم DB" + :plugin/title "العنوان ({1})" + :plugin/uninstall "إلغاء التثبيت" + :plugin/unpacked "غير محزمة" + :plugin/unpacked-tips "نصائح للإضافات غير المحزمة" + :plugin/up-to-date "محدَّث {1}" + :plugin/update "تحديث" + :plugin/update-all-selected "تحديث كل المحددة" + :plugin/update-all-success "تم تحديث كل الإضافات" + :plugin/update-available "تحديث متاح" + :plugin/update-plugin "تحديث البرنامج المساعد: {1} - {2}" + :plugin/updates-downloading "جارٍ تنزيل التحديثات" + :plugin/updating "جارٍ التحديث" - :tips/all-done "كل شيء جاهز!" + :plugin.install-from-file/menu-title "التثبيت من ملف" + :plugin.install-from-file/notice "اختر ملف إضافة للتثبيت" + :plugin.install-from-file/success "تم تثبيت الإضافة" + :plugin.install-from-file/title "تثبيت إضافة من ملف" + + :plugin.install-from-web-url/effect-label "تأثير" + :plugin.install-from-web-url/repo-url-placeholder "رابط مستودع GitHub" + :plugin.install-from-web-url/supports-note "تدعم عناوين URL كل من مستودعات GitHub وخوادم التطوير المحلية. (للأمثلة: {1}, {2})" + :plugin.install-from-web-url/theme-label "سمة" + + :plugin.package-config/detach-desc "إزالتها تفصل الإضافة عن Logseq فقط وتبقي مجلد المصدر دون تغيير." + :plugin.package-config/parse-error "فشل تحليل إعدادات حزمة الإضافة." + :plugin.package-config/remove-error "فشل إزالة الإضافة المعطوبة." + :plugin.package-config/remove-external-success "تمت إزالة الإضافة المعطوبة من قائمة الإضافات." + :plugin.package-config/remove-installed-success "تمت إزالة الإضافة المعطوبة \"{1}\"." + + :plugin.proxy/direct "مباشر" + :plugin.proxy/system "النظام" + :plugin.proxy/test-url "اختبار URL" + :plugin.proxy/testing "جارٍ الاختبار" + + :plugin.settings/edit-settings-json "تعديل settings.json" + :plugin.settings/exit-code-mode "إنهاء وضع الكود" + :plugin.settings/title "إعدادات الإضافات" + + :plugin.themes/default-desc "سمة Logseq الافتراضية {1}." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "سمات {1}" + :plugin.themes/light-and-dark "سمات فاتحة وداكنة" + + :profiler/input-fn-placeholder "أدخل اسم الدالة هنا" + :profiler/unregister "إلغاء التسجيل" + + :property/add-choice "إضافة خيار" + :property/add-choices "إضافة خيارات" + :property/add-description "إضافة وصف" + :property/add-new "إضافة خاصية" + :property/add-or-change "إضافة أو تغيير خاصية" + :property/available-choices "الخيارات المتاحة" + :property/change-tooltip "تغيير {1}" + :property/checkbox-state-mapping "ربط حالة مربع الاختيار" + :property/children-count "الأطفال ({1})" + :property/choices-count "{1} الاختيارات" + :property/choose-tag "اختر وسماً" + :property/choose-tags "اختر وسوماً" + :property/clear-value "مسح" + :property/configure "تكوين" + :property/convert-page-to-property "تحويل \"{1}\" إلى خاصية" + :property/create-error "فشل إنشاء الخاصية." + :property/default-value "القيمة الافتراضية" + :property/delete-from-node "حذف من العقدة" + :property/delete-from-node-confirm "حذف هذه الخاصية من العقدة؟" + :property/delete-from-tag "حذف من الوسم" + :property/delete-from-tag-confirm "حذف هذه الخاصية من الوسم؟" + :property/description-placeholder "أدخل الوصف" + :property/drag-to-reorder "اسحب لإعادة الترتيب" + :property/existing-values "القيم الموجودة" + :property/go-to-this-property "الانتقال إلى صفحة الخاصية" + :property/hidden-properties "خصائص مخفية" + :property/hide-by-default "إخفاء افتراضياً" + :property/hide-choice-for-tag "إخفاء الخيار للوسم" + :property/hide-empty-value "إخفاء القيم الفارغة" + :property/hide-for-tag "إخفاء للوسم #{1}" + :property/hide-hidden-choices "إخفاء الخيارات المخفية" + :property/map-checked-to "ربط المحدد بـ" + :property/map-unchecked-to "ربط غير المحدد بـ" + :property/more-settings "مزيد من الإعدادات" + :property/multiple-values "قيم متعددة" + :property/multiple-values-confirm "تفعيل القيم المتعددة؟" + :property/name "الاسم" + :property/name-placeholder "اسم الخاصية" + :property/nodes-with-property "العُقد ذات الخاصية" + :property/overdue "متأخر" + :property/private-built-in-not-usable "خاصية مدمجة خاصة لا يمكن استخدامها" + :property/select-choice "اختر خياراً" + :property/select-property-placeholder "اختر خاصية" + :property/select-type-placeholder "اختر نوع الخاصية" + :property/self-reference "مرجع ذاتي" + :property/set-default-choice "تعيين الخيار الافتراضي" + :property/set-default-value "تعيين القيمة الافتراضية" + :property/set-icon "تعيين أيقونة" + :property/set-placeholder "تعيين {1}" + :property/set-property "تعيين الخاصية" + :property/set-tags "تعيين الوسوم" + :property/set-value "تعيين القيمة" + :property/show-as-checkbox-on-node "عرض كمربع اختيار على العقدة" + :property/show-as-checkbox-on-tagged-nodes "عرض كمربع اختيار على العقد الموسومة" + :property/show-hidden-choices "عرض الخيارات المخفية" + :property/skip-choosing-tag "تخطي اختيار الوسم" + :property/specify-node-tags "تحديد وسوم العقدة" + :property/title-placeholder "العنوان" + :property/type "النوع" + :property/type-change-warning "تغيير نوع الخاصية يمسح بعض إعدادات الخاصية." + :property/type-checkbox "مربع اختيار" + :property/type-date "تاريخ" + :property/type-datetime "تاريخ/وقت" + :property/type-locked-help "النوع مقفل" + :property/type-node "عقدة" + :property/type-number "رقم" + :property/type-text "نص" + :property/type-url "URL" + :property/ui-position "موضع واجهة المستخدم" + :property/ui-position-block-below "أسفل الكتلة" + :property/ui-position-block-left "يسار الكتلة" + :property/ui-position-block-right "يمين الكتلة" + :property/ui-position-properties "الخصائص" + :property/unset-property "إلغاء تعيين الخاصية" + :property/update-success "محدّثة" + + :property.built-in/alias "اسم مستعار" + :property.built-in/asset "أصل" + :property.built-in/asset-align "محاذاة الأصل" + :property.built-in/asset-checksum "المجموع التحققي للملف" + :property.built-in/asset-external-file-name "اسم الملف الخارجي" + :property.built-in/asset-external-url "الرابط الخارجي" + :property.built-in/asset-height "ارتفاع الصورة" + :property.built-in/asset-last-visit-page "آخر صفحة تمت زيارتها" + :property.built-in/asset-remote-metadata "بيانات الملف البعيدة الوصفية" + :property.built-in/asset-resize-metadata "بيانات تغيير حجم الأصل الوصفية" + :property.built-in/asset-size "حجم الملف" + :property.built-in/asset-type "نوع الملف" + :property.built-in/asset-width "عرض الصورة" + :property.built-in/background-color "لون الخلفية" + :property.built-in/built-in "مدمج؟" + :property.built-in/checkbox-display-properties "خصائص معروضة كمربع اختيار" + :property.built-in/choice-checkbox-state "حالة مربع اختيار الخيار" + :property.built-in/choice-classes "فئات الخيار" + :property.built-in/choice-exclusions "استثناءات الخيار" + :property.built-in/class-bidirectional-property-title "عنوان الخاصية ثنائية الاتجاه" + :property.built-in/class-enable-bidirectional "تفعيل الخصائص ثنائية الاتجاه" + :property.built-in/class-extends "يمتد من" + :property.built-in/class-hide-from-node "إخفاء من العقدة" + :property.built-in/class-properties "خصائص الوسم" + :property.built-in/classes "فئات الخاصية" + :property.built-in/closed-value-property "خاصية القيمة المغلقة" + :property.built-in/code-lang "وضع الكود" + :property.built-in/collapsed "العقدة مطوية؟" + :property.built-in/created-at "تاريخ إنشاء العقدة" + :property.built-in/created-by-ref "أُنشئت العقدة بواسطة" + :property.built-in/created-from-property "أُنشئت من خاصية" + :property.built-in/deadline "الموعد النهائي" + :property.built-in/default-value "القيمة الافتراضية" + :property.built-in/deleted-at "تاريخ الحذف" + :property.built-in/deleted-by-ref "حُذفت بواسطة" + :property.built-in/description "الوصف" + :property.built-in/enable-history "تفعيل سجل الخاصية" + :property.built-in/exclude-from-graph-view "مستبعد من عرض الرسم البياني؟" + :property.built-in/fsrs-due "الاستحقاق" + :property.built-in/fsrs-state "الحالة" + :property.built-in/heading "عنوان" + :property.built-in/hide "إخفاء هذه الخاصية أو الصفحة" + :property.built-in/hide-empty-value "إخفاء القيمة الفارغة" + :property.built-in/history-block "كتلة السجل" + :property.built-in/history-property "خاصية السجل" + :property.built-in/history-ref-value "قيمة مرجع السجل" + :property.built-in/history-scalar-value "القيمة العددية للسجل" + :property.built-in/icon "أيقونة" + :property.built-in/journal-day "تاريخ اليومية" + :property.built-in/journal-title-format "تنسيق العنوان" + :property.built-in/link "العقدة ترتبط بـ" + :property.built-in/linked-references-excludes "المراجع المستبعدة" + :property.built-in/linked-references-includes "المراجع المضمّنة" + :property.built-in/ls-type "نوع LS" + :property.built-in/node-display-type "نوع عرض العقدة" + :property.built-in/order "ترتيب العقدة" + :property.built-in/order-list-type "نوع القائمة" + :property.built-in/page "صفحة العقدة" + :property.built-in/page-tags "وسوم الصفحة" + :property.built-in/parent "العقدة الأب" + :property.built-in/priority "الأولوية" + :property.built-in/public "خاصية عامة؟" + :property.built-in/publish-published-url "الرابط المنشور" + :property.built-in/publishing-public "نشر عام؟" + :property.built-in/query "استعلام" + :property.built-in/reaction-emoji-id "رمز تعبيري للتفاعل" + :property.built-in/reaction-target "هدف التفاعل" + :property.built-in/recycle-original-order "الترتيب الأصلي في سلة المحذوفات" + :property.built-in/recycle-original-page "الصفحة الأصلية في سلة المحذوفات" + :property.built-in/recycle-original-parent "الأب الأصلي في سلة المحذوفات" + :property.built-in/refs "مراجع العقدة" + :property.built-in/repeat-checked-property "خاصية التكرار المحددة" + :property.built-in/repeat-recur-frequency "تكرار التكرار" + :property.built-in/repeat-recur-unit "وحدة التكرار" + :property.built-in/repeat-repeated "العقدة تتكرر؟" + :property.built-in/repeat-temporal-property "الخاصية الزمنية للتكرار" + :property.built-in/scalar-default-value "القيمة الافتراضية لغير المرجعية" + :property.built-in/scheduled "مجدول" + :property.built-in/status "الحالة" + :property.built-in/sync-large-title-object "مرجع إلى عنوان كتلة كبير مخزن في التخزين البعيد" + :property.built-in/table-filters "فلاتر العرض" + :property.built-in/table-hidden-columns "أعمدة العرض المخفية" + :property.built-in/table-ordered-columns "أعمدة العرض المرتبة" + :property.built-in/table-pinned-columns "أعمدة الجدول المثبتة" + :property.built-in/table-sized-columns "إعدادات أعمدة العرض" + :property.built-in/table-sorting "فرز العرض" + :property.built-in/tags "وسوم" + :property.built-in/template-applied-to "تطبيق القالب على الوسوم" + :property.built-in/title "عنوان العقدة" + :property.built-in/type "نوع الخاصية" + :property.built-in/ui-position "موضع الخاصية" + :property.built-in/updated-at "تاريخ تحديث العقدة" + :property.built-in/used-template "القالب المستخدم" + :property.built-in/user-avatar "صورة المستخدم" + :property.built-in/user-email "بريد المستخدم الإلكتروني" + :property.built-in/user-name "اسم المستخدم" + :property.built-in/value "قيمة الخاصية" + :property.built-in/view-context "سياق عرض الخاصية" + :property.built-in/view-feature-type "نوع ميزة العرض" + :property.built-in/view-for "هذا العرض ينتمي إلى" + :property.built-in/view-group-by-property "تجميع العرض حسب الخاصية" + :property.built-in/view-sort-groups-by-property "فرز مجموعات العرض حسب" + :property.built-in/view-sort-groups-desc "فرز مجموعات العرض تنازليًا" + :property.built-in/view-type "نوع العرض" + + :property.choice/already-exists "الخيار موجود بالفعل." + :property.choice/cant-delete-built-in "لا يمكن حذف خيار مدمج." + :property.choice/invalid "اختيار غير صالح \"{1}\" لهذه الخاصية: {2}" + + :property.color/blue "أزرق" + :property.color/green "أخضر" + :property.color/purple "بنفسجي" + :property.color/red "أحمر" + :property.color/yellow "أصفر" + + :property.priority/high "عالية" + :property.priority/low "منخفضة" + :property.priority/medium "متوسطة" + :property.priority/urgent "عاجلة" + + :property.repeat/date "تاريخ التكرار" + :property.repeat/datetime "تاريخ ووقت التكرار" + :property.repeat/every "كل" + :property.repeat/is-label "هو:" + :property.repeat/task "مهمة متكررة" + :property.repeat/when "متى" + + :property.repeat-recur-unit/day "يوم" + :property.repeat-recur-unit/hour "ساعة" + :property.repeat-recur-unit/minute "دقيقة" + :property.repeat-recur-unit/month "شهر" + :property.repeat-recur-unit/week "أسبوع" + :property.repeat-recur-unit/year "سنة" + + :property.status/backlog "قائمة الانتظار" + :property.status/canceled "ملغى" + :property.status/doing "قيد التنفيذ" + :property.status/done "مكتمل" + :property.status/in-review "قيد المراجعة" + :property.status/todo "للتنفيذ" + + :property.validation/cant-convert-to-number "لا يمكن تحويل \"{1}\" إلى رقم." + :property.validation/cant-remove-required "لا يمكن إزالة خاصية مطلوبة." + :property.validation/cant-set-self-value "لا يمكن تعيينه كقيمة لخاصيته." + :property.validation/duplicate "الخاصية '{1}' موجودة بالفعل." + :property.validation/invalid-name "هذا اسم خاصية غير صالح. لا يمكن أن يبدأ اسم الخاصية بأحرف مرجع الصفحة '#' أو '[['." + :property.validation/invalid-value "تحتوي الخاصية \"{1}\" على قيمة غير صالحة: {2}" + :property.validation/many-to-one "لا يمكن تحويل خاصية متعددة القيم إلى أحادية." + :property.validation/protected "هذه الخاصية محمية ولا يمكن تغييرها." + + :property.view-type/gallery "عرض المعرض" + :property.view-type/list "عرض القائمة" + :property.view-type/table "عرض الجدول" + + :publish/action "نشر" + :publish/dialog-desc "يمكنك حماية هذه الصفحة بكلمة مرور اختياريًا. اتركها فارغة للوصول العام." + :publish/dialog-title "نشر الصفحة" + :publish/invalid-page-error "صفحة غير صالحة" + :publish/password-optional-placeholder "كلمة مرور اختيارية" + :publish/publish-error "فشل النشر" + :publish/published-to "تم النشر إلى {1}" + :publish/publishing "جارٍ النشر..." + :publish/unpublish "إلغاء النشر" + :publish/unpublish-error "فشل إلغاء النشر" + :publish/unpublish-missing-page-id "إلغاء النشر: معرف الصفحة مفقود" + :publish/unpublished "تم إلغاء النشر" + + :query/advanced-results "نتائج الاستعلام المتقدم" + :query/custom-view-error "خطأ في العرض المخصص: {1}" + :query/error "خطأ في الاستعلام:" + :query/examples-desc "تحقق من المزيد من الأمثلة في {{Queries documentation}}." + :query/examples-title "أمثلة الاستعلامات:" + :query/results-for "نتائج {1}" + + :query.builder/add-filter-or-operator-placeholder "إضافة عامل تصفية/معامل" + :query.builder/between-end-label "تاريخ الانتهاء" + :query.builder/between-journal-label "بين: {1} ~ {2}" + :query.builder/between-start-label "تاريخ البدء" + :query.builder/created-label "تاريخ الإنشاء" + :query.builder/filter "تصفية" + :query.builder/filter-full-text-search-label "البحث النصي الكامل" + :query.builder/filter-page-label "صفحة" + :query.builder/filter-page-reference-label "مرجع الصفحة" + :query.builder/filter-sample-label "عينة" + :query.builder/operator-and-label "و" + :query.builder/operator-not-label "ليس" + :query.builder/replace-with-label "استبدال بـ:" + :query.builder/search-label "بحث: {1}" + :query.builder/show-built-in-properties "إظهار الخصائص المدمجة" + :query.builder/unwrap-operator "فك التغليف" + :query.builder/updated-label "تاريخ التحديث" + :query.builder/wrap-filter-with-label "تغليف هذا الفلتر بـ:" + + :reference/blocks "مرجع الكتلة" + :reference/copy "نسخ المرجع" + :reference/delete "حذف المرجع" + :reference/page-filter "فلتر الصفحة" + :reference/replace-with-embed "استبدال بالتضمين" + :reference/replace-with-text "استبدال بنص" + + :reference.filter/directions "انقر للتضمين، وShift+انقر للاستبعاد. وانقر مرة أخرى للإزالة." + :reference.filter/excludes "المستثناة" + :reference.filter/includes "المضمنة" + :reference.filter/search-placeholder "بحث" + :reference.filter/title "تصفية" + + :search/blank-input "إدخال فارغ" + :search/full-text-placeholder "بحث في النص الكامل" + :search/index-progress "جارٍ فهرسة {1}%" + :search/indices-rebuilt-success "تم إعادة بناء فهارس البحث بنجاح!" + :search/no-result "لا توجد نتائج" + :search/result-count "{1} نتيجة" + + :search.find-in-page/input-placeholder "البحث في الصفحة" + :search.find-in-page/match-case "مطابقة حالة الأحرف" + :search.find-in-page/next-result "النتيجة التالية" + :search.find-in-page/previous-result "النتيجة السابقة" :select/default-prompt "اختر واحداً" :select/default-select-multiple "اختر واحداً أو أكثر" - :select.graph/prompt "اختر مخطط" - :select.graph/empty-placeholder-description "لا توجد مخططات مطابقة. هل تريد إضافة مخطط جديد؟" - :select.graph/add-graph "نعم، أضف مخطط جديد" + :select/new-option "+ خيار جديد: {1}" - :notification/clear-all "مسح الجميع" + :server/error-notification "[الخادم] {1}" + :server/mcp-url-copied "تم نسخ رابط MCP" + :server/start "بدء" + :server/stop "إيقاف" + :server/title "خادم HTTP API" + + :server.config/auto-start-label "بدء تلقائي" + :server.config/port-label "نطاق المنفذ" + :server.config/reset "إعادة تعيين" + :server.config/save-and-apply "حفظ وتطبيق" + :server.config/title "تكوين الخادم" + + :server.status/closed "مغلق" + :server.status/closing "جارٍ الإغلاق" + :server.status/error "خطأ" + :server.status/running "قيد التشغيل" + :server.status/starting "جارٍ البدء" + :server.status/stopped "متوقف" + + :server.token/add-new "إضافة رمز جديد" + :server.token/name-placeholder "اسم الخادم" + :server.token/regenerate-value "إعادة إنشاء قيمة الرمز" + :server.token/title "رموز التفويض" + :server.token/update-success "تم تحديث الرموز" + :server.token/value-placeholder "القيمة" + + :settings/account "الحساب" + :settings/advanced "متقدم" + :settings/ai "الذكاء الاصطناعي" + :settings/collaboration "التعاون" + :settings/editor "المحرر" + :settings/encryption "التشفير" + :settings/features "الميزات" + :settings/general "عام" + :settings/keymap "الاختصارات" + :settings/plugins "إعدادات الإضافات" + + :settings.account/storage-usage "{1} جيجابايت من أصل {2} جيجابايت من مساحة التخزين ({3})" + :settings.account/synced-graphs "{1} من {2} الرسوم البيانية المتزامنة ({3})" + + :settings.advanced/auto-chmod "chmod تلقائي" + :settings.advanced/auto-chmod-desc "تعيين أذونات الملفات تلقائياً" + :settings.advanced/auto-updater "التحديثات التلقائية" + :settings.advanced/developer-mode "وضع المطور" + :settings.advanced/developer-mode-desc "يساعد وضع المطورين المساهمين ومطوري الإضافات على اختبار عمليات التكامل الخاصة بهم مع Logseq بكفاءة أكبر." + :settings.advanced/disable-sentry "تعطيل Sentry" + :settings.advanced/disable-sentry-desc "تعطيل تقارير الأعطال" + :settings.advanced/network-proxy "وكيل الشبكة" + + :settings.ai/enable-mcp-server "تفعيل خادم MCP" + :settings.ai/enable-mcp-server-desc "تفعيل خادم MCP لتكامل الذكاء الاصطناعي" + + :settings.editor/auto-expand-block-refs "توسيع مراجع الكتل تلقائياً" + :settings.editor/auto-expand-block-refs-tip "انقر لتوسيع مراجع الكتل تلقائياً" + :settings.editor/custom-date-format "تنسيق تاريخ مخصص" + :settings.editor/enable-all-pages-public "جعل كل الصفحات عامة" + :settings.editor/enable-shortcut-tooltip "تفعيل تلميحات الاختصارات" + :settings.editor/enable-tooltip "تفعيل التلميحات" + :settings.editor/preferred-outdenting "إزالة المسافة البادئة المنطقية" + :settings.editor/preferred-outdenting-tip "يعرض الجانب الأيسر إزالة المسافة البادئة بالإعداد الافتراضي، بينما يعرض الجانب الأيمن إزالة المسافة البادئة المنطقية عند تفعيل هذا الخيار " + :settings.editor/preferred-outdenting-tip-more "→ معرفة المزيد" + :settings.editor/preferred-pasting-file "تفضيل لصق الملفات" + :settings.editor/preferred-pasting-file-hint "عند التفعيل، سيؤدي لصق صورة من الإنترنت إلى تنزيلها وإدراجها. وعند التعطيل، سيُلصق رابط الصورة فقط." + :settings.editor/show-brackets "عرض الأقواس" + :settings.editor/show-full-blocks "عرض الكتل كاملة" + :settings.editor/spell-checker "المدقق الإملائي" + :settings.editor/wide-mode "الوضع العريض" + + :settings.features/enable-flashcards "تفعيل البطاقات التعليمية" + :settings.features/enable-journals "تفعيل اليوميات" + :settings.features/home-default-page "الصفحة الرئيسية الافتراضية" + :settings.features/home-default-page-update-success "تم تحديث الصفحة الافتراضية" + :settings.features/journals-enable-success "اليوميات مفعلة" + :settings.features/login-prompt "سجل الدخول للمزامنة" + :settings.features/page-not-found "الصفحة «{1}» غير موجودة بعد. الرجاء إنشاء تلك الصفحة أولاً، ثم حاول مرة أخرى." + :settings.features/plugin-system "نظام الإضافات" + + :settings.general/accent-color "لون التمييز" + :settings.general/accent-color-alert "قد يؤدي اختيار لون تمييز إلى تجاوز أي سمة اخترتها." + :settings.general/accent-color-logseq "لون Logseq الكلاسيكي" + :settings.general/accent-color-none-desc "إلغاء لون التركيز. هذا حالياً في مرحلة بيتا وتستخدم في المقام الأول من أجل التوافق مع المواضيع المخصصة." + :settings.general/changelog "سجل التغييرات" + :settings.general/check-for-updates "التحقق من التحديثات" + :settings.general/current-revision-label "المراجعة الحالية" + :settings.general/current-version "الإصدار الحالي" + :settings.general/custom-configuration "تكوين مخصص" + :settings.general/custom-global-configuration "تكوين عام مخصص" + :settings.general/custom-theme "سمة مخصصة" + :settings.general/edit-config-edn "تعديل ملف config.edn" + :settings.general/edit-custom-css "تعديل CSS المخصص" + :settings.general/edit-export-css "تعديل CSS التصدير" + :settings.general/edit-global-config-edn "تعديل config.edn العام" + :settings.general/editor-font "خط المحرر" + :settings.general/editor-font-set-global "تعيين كخط عام" + :settings.general/export-theme "تصدير السمة" + :settings.general/language "اللغة" + :settings.general/native-titlebar "شريط عنوان النظام" + :settings.general/native-titlebar-desc "استخدام شريط عنوان النظام" + :settings.general/refresh-required-feedback "يلزم التحديث" + :settings.general/release-channel "قناة الإصدار" + :settings.general/revision "المراجعة: {1}" + :settings.general/theme-dark "داكن" + :settings.general/theme-light "فاتح" + :settings.general/theme-system "النظام" + + :settings.sync-server/clear-success "تم مسح URL خادم المزامنة. سيتم استخدام Logseq Sync الرسمي." + :settings.sync-server/reset "إعادة التعيين للافتراضي" + :settings.sync-server/save-success "تم حفظ URL خادم المزامنة." + :settings.sync-server/url "URL خادم المزامنة" + :settings.sync-server/url-desc "عيّن URL مخصصًا لخادم مزامنة HTTPS للمزامنة المستضافة ذاتيًا. سيتم إرسال رموز مصادقة Logseq الخاصة بك إلى هذا الخادم، لذا استخدم URL موثوقًا فقط. اتركه فارغًا لاستخدام Logseq Sync الرسمي." + :settings.sync-server/url-invalid-error "يجب أن يبدأ URL بـ https:// أو http://" + + :shell/input-command-title "إدخال الأمر" :shortcut.category/basics "الأساسيات" + :shortcut.category/block-command-editing "تحرير أوامر الكتلة" + :shortcut.category/block-editing "تحرير الكتلة" + :shortcut.category/block-selection "تحديد الكتلة" :shortcut.category/formatting "التنسيق" :shortcut.category/navigating "التنقل" - :shortcut.category/block-editing "تحرير الكتل (عام)" - :shortcut.category/block-command-editing "تحرير أوامر الكتل" - :shortcut.category/block-selection "تحديد الكتل (اضغط Esc للخروج من التحديد)" - :shortcut.category/toggle "مفاتيح التبديل" :shortcut.category/others "أخرى" :shortcut.category/plugins "الإضافات" + :shortcut.category/toggle "تبديل" - :keymap/all "الجميع" - :keymap/disabled "المعطلة" - :keymap/unset "غير المعينة" - :keymap/custom "مخصصة" - :keymap/keystroke-filter "ترشيح ضغطات المفاتيح" - :window/minimize "تصغير" + :sidebar.left/favorites "المفضلة" + :sidebar.left/navigations "التنقل" + :sidebar.left/recent-pages "الصفحات الأخيرة" + + :sidebar.right/close "إغلاق اللوحة" + :sidebar.right/close-all "إغلاق كل اللوحات" + :sidebar.right/close-others "إغلاق اللوحات الأخرى" + :sidebar.right/collapse "طي اللوحة" + :sidebar.right/collapse-all "طي كل اللوحات" + :sidebar.right/collapse-others "طي اللوحات الأخرى" + :sidebar.right/expand "توسيع اللوحة" + :sidebar.right/expand-all "توسيع كل اللوحات" + :sidebar.right/more "المزيد" + :sidebar.right/open "فتح في الشريط الجانبي" + :sidebar.right/open-as-page "فتح كصفحة" + :sidebar.right/resize-handle "فاصل" + :sidebar.right/toggle "تبديل الشريط الجانبي الأيمن" + + :storage/invalid-data-writing "كتابة بيانات غير صالحة." + :storage/sqlitedb-error "خطأ SQLiteDB: {1}" + :storage/sqlitedb-import-error "خطأ في استيراد SQLiteDB: {1}" + :storage/sqlitedb-save-error "خطأ في حفظ SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "تم حذف الكتلة «{1}»" + :storage.recycle/empty "سلة المحذوفات فارغة." + :storage.recycle/page-deleted-at "تم حذف الصفحة «{1}»" + :storage.recycle/readonly "سلة المهملات (للقراءة فقط)" + :storage.recycle/restore "استعادة" + :storage.recycle/retention-desc "تبقى الصفحات والكتل المحذوفة هنا حتى تتم استعادتها أو يتم تنظيفها تلقائياً بعد 30 يوماً." + :storage.recycle/title "سلة المحذوفات" + + :sync/assets-downloading-count "تنزيل الأصول ({1})" + :sync/assets-uploading-count "تحميل الأصول ({1})" + :sync/creating-remote-graph "جارٍ إنشاء الرسم البياني البعيد..." + :sync/downloading "جارٍ التنزيل..." + :sync/downloading-graph "جارٍ تنزيل {1} ..." + :sync/graph-count-exceed-limit "عدد الرسوم تجاوز الحد" + :sync/invitation-sent "تم إرسال الدعوة" + :sync/last-synced-time-label "آخر وقت مزامنة: {1}" + :sync/more-debug-info "مزيد من معلومات التصحيح" + :sync/offline "غير متصل" + :sync/online "متصل" + :sync/pending-local-changes "التغييرات المحلية المعلقة" + :sync/pending-server-changes "التغييرات من الخادم المعلقة" + :sync/something-wrong "خطأ في المزامنة" + :sync/start-sync "ابدأ المزامنة" + :sync/storage-exceed-limit "تم تجاوز حد التخزين" + :sync/uploading "جارٍ الرفع..." + :sync/user-doesnt-exist-yet "المستخدم غير موجود بعد" + + :theme/logseq-default "سمة Logseq الافتراضية" + :theme/switch-to "قم بالتبديل إلى السمة {1}" + + :ui/all-done "تم الكل" + :ui/apply "تطبيق" + :ui/cancel "إلغاء" + :ui/close "إغلاق" + :ui/configure "إعداد" + :ui/confirm "تأكيد" + :ui/copy "نسخ" + :ui/copy-all "نسخ الكل" + :ui/copy-to-clipboard "نسخ إلى الحافظة" + :ui/create "إنشاء" + :ui/date-natural-language-placeholder "مثال: الأسبوع القادم" + :ui/delete "حذف" + :ui/deleted "محذوف" + :ui/dont-remind-me-again "لا تذكرني مجددًا" + :ui/empty "فارغ" + :ui/error "خطأ" + :ui/error-boundary-error "خطأ التقطته واجهة المستخدم!\n {1}" + :ui/export "تصدير" + :ui/false "خطأ" + :ui/fix "أصلحه!" + :ui/frequently-used "الأكثر استخدامًا" + :ui/from "من: " + :ui/host "المضيف" + :ui/image "صورة" + :ui/label "تسمية" + :ui/link "رابط" + :ui/load-more "تحميل المزيد" + :ui/loading "جارٍ التحميل" + :ui/login "تسجيل الدخول" + :ui/logout "تسجيل الخروج" + :ui/off "إيقاف" + :ui/on "تشغيل" + :ui/open "فتح" + :ui/open-named "افتح {1}" + :ui/port "المنفذ" + :ui/refresh "تحديث" + :ui/relaunch-confirm "يتطلب هذا التغيير إعادة تشغيل التطبيق. هل تريد إعادة تشغيله الآن؟" + :ui/remove-background "إزالة الخلفية" + :ui/reset "إعادة تعيين" + :ui/run "تشغيل" + :ui/save "حفظ" + :ui/show-less "عرض أقل" + :ui/show-more "عرض المزيد" + :ui/skip "تخطي" + :ui/submit "إرسال" + :ui/to "إلى: " + :ui/toggle-theme "تبديل السمة" + :ui/true "صحيح" + :ui/type "النوع" + :ui/untitled "بدون عنوان" + :ui/use-current-time "استخدام الوقت الحالي" + :ui/yes "نعم" + + :updater/checking-for-updates "جارٍ التحقق من التحديثات" + :updater/downloading-progress "جارٍ تنزيل التحديث ({1}%)" + :updater/quit-and-install "أعد التشغيل وثبّت" + :updater/up-to-date "تطبيقك محدَّث لآخر إصدار 🎉" + :updater/update-available "يتوفر تحديث" + :updater/update-error "⚠️ عفواً، حدث خطأ ما!\nالرجاء التحقق من {1}." + :updater/update-ready-to-install "التحديث جاهز للتثبيت" + + :view/add-new-view "إضافة عرض" + :view/all "الكل" + :view/export-edn "تصدير EDN" + :view/linked-references "المراجع المرتبطة" + :view/new "جديد" + :view/new-property "خاصية جديدة" + :view/new-view "عرض جديد" + :view/rename "إعادة تسمية" + :view/results "النتائج:" + :view/unlinked-references "المراجع غير المرتبطة" + + :view.filter/custom-date "تاريخ مخصص" + :view.filter/empty "فارغ" + :view.filter/filter "تصفية" + :view.filter/from "من" + :view.filter/is-empty "فارغ" + :view.filter/is-not-empty "غير فارغ" + :view.filter/match "مطابقة" + :view.filter/match-all-filters "مطابقة كل الفلاتر" + :view.filter/match-any-filter "مطابقة أي فلتر" + :view.filter/operator-after "بعد" + :view.filter/operator-before "قبل" + :view.filter/operator-between "بين" + :view.filter/operator-date-after "بعد التاريخ" + :view.filter/operator-date-before "قبل التاريخ" + :view.filter/operator-is "يساوي" + :view.filter/operator-is-not "لا يساوي" + :view.filter/operator-text-contains "يحتوي على" + :view.filter/operator-text-not-contains "لا يحتوي على" + :view.filter/or "أو" + :view.filter/relative-1-day-ago "منذ يوم" + :view.filter/relative-1-month-ago "منذ شهر" + :view.filter/relative-1-week-ago "منذ أسبوع" + :view.filter/relative-1-year-ago "منذ سنة" + :view.filter/relative-3-days-ago "منذ 3 أيام" + :view.filter/relative-3-months-ago "منذ 3 أشهر" + :view.filter/to "إلى" + :view.filter/type-to-search "اكتب للبحث" + + :view.table/ascending "تصاعدي" + :view.table/columns-visibility "إظهار الأعمدة" + :view.table/default-title "{1} عقدة" + :view.table/delete-sort "حذف الفرز" + :view.table/descending "تنازلي" + :view.table/drag-to-reorder "اسحب لإعادة الترتيب" + :view.table/group-by "التجميع حسب" + :view.table/group-journal-date "تاريخ اليومية" + :view.table/group-page-created-date "تاريخ إنشاء الصفحة" + :view.table/group-page-name "اسم الصفحة" + :view.table/group-page-updated-date "تاريخ تحديث الصفحة" + :view.table/live-query-title "استعلام مباشر ({1})" + :view.table/name-column "الاسم" + :view.table/no-group-value "لا يوجد {1}" + :view.table/page "صفحة" + :view.table/pages "الصفحات" + :view.table/pin "تثبيت" + :view.table/row-number "رقم الصف" + :view.table/select-all "تحديد الكل" + :view.table/select-column "اختر عموداً" + :view.table/select-order "اختر الترتيب" + :view.table/select-row "اختر صفاً" + :view.table/selected-count "المحدد: {1}" + :view.table/sort-ascending "تصاعدي" + :view.table/sort-descending "تنازلي" + :view.table/sort-groups-by "ترتيب المجموعات حسب" + :view.table/sort-groups-order "ترتيب المجموعات" + :view.table/total-refs-count "إجمالي المراجع" + :view.table/unpin "إلغاء التثبيت" + + :window/close "إغلاق النافذة" + :window/exit-fullscreen "الخروج من ملء الشاشة" :window/maximize "تكبير" + :window/minimize "تصغير" :window/restore "استعادة" - :window/close "إغلاق" - :window/exit-fullscreen "الخروج من وضع ملء الشاشة" - :header/toggle-left-sidebar "إظهار/إخفاء الشريط الجانبي الأيسر" - :header/search "البحث" - :header/more "المزيد" - :header/go-back "ارجع" - :header/go-forward "امض" + :youtube/embed-first-reminder-mobile "يرجى تضمين فيديو YouTube أولاً، ثم استخدم هذا الرمز.\nتذكر: يمكنك لصق عنوان URL لـ YouTube الخام كفيديو مضمن على الجوال." + :youtube/player-not-ready "مشغل YouTube غير جاهز حتى الآن." + :youtube/timestamps-not-available-mobile "طوابع زمنية YouTube غير متاحة على الجوال حتى الآن." - ;; E.g. 1 node or 2 nodes - :views.table/live-query-title (fn [total] (str "استعلام مباشر (" total ")")) - :views.table/default-title (fn [total] (str total (if (<= total 1) " عقدة" " عقد"))) - - ;; Commands are nested for now to stay in sync with the shortcuts system. - ;; Other languages should not nest keys under :commands - - :command.pdf/previous-page "Pdf: الصفحة السابقة في المستند الحالي" - :command.pdf/next-page "Pdf: الصفحة التالية في المستند الحالي" - :command.pdf/close "Pdf: إغلاق المستند الحالي" - :command.pdf/find "Pdf: بحث في النصوص في المستند الحالي" - :command.auto-complete/complete "الإكمال-التلقائي: اختيار العنصر المحدد" - :command.auto-complete/prev "الإكمال-التلقائي: اختيار العنصر السابق" - :command.auto-complete/next "الإكمال-التلقائي: اختيار العنصر التالي" - :command.auto-complete/shift-complete "الإكمال-التلقائي: فتح العنصر المحدد في النافذة الجانبية" - :command.auto-complete/meta-complete "الإكمال-التلقائي: اضغط Cmd + Enter لاختيار العنصر المحدد" - :command.cards/toggle-answers "البطاقات: إظهار/إخفاء الإجابات/الفراغات" - :command.cards/again "البطاقات مجدداً" - :command.cards/hard "البطاقات: صعبة" - :command.cards/good "البطاقات: جيدة" - :command.cards/easy "البطاقات: سهلة" - :command.editor/escape-editing "الخروج من المحرر" - :command.editor/backspace "مسح/حذف للخلف (Backspace)" - :command.editor/delete "حذف / حذف للأمام" - :command.editor/new-block "إنشاء كتلة جديدة" - :command.editor/new-line "إنشاء سطر جديد في الكتلة الحالية" - :command.editor/follow-link "اتبع الرابط تحت المؤشر" - :command.editor/open-link-in-sidebar "افتح الرابط في النافذة الجانبية" - :command.editor/bold "عريض" - :command.editor/italics "مائل" - :command.editor/highlight "مظلل" - :command.editor/strike-through "خط في المنتصف" - :command.editor/clear-block "حذف محتوى الكتلة بالكامل" - :command.editor/kill-line-before "حذف السطر قبل موقع المؤشر" - :command.editor/copy-embed "نسخ رابط تضمين يشير إلى الكتلة الحالية" - :command.editor/kill-line-after "حذف السطر بعد موقع المؤشر" - :command.editor/beginning-of-block "نقل المؤشر إلى بداية الكتلة" - :command.editor/end-of-block "نقل المؤشر إلى نهاية الكتلة" - :command.editor/forward-word "نقل المؤشر كلمة للأمام" - :command.editor/backward-word "نقل المؤشر كلمة للخلف" - :command.editor/forward-kill-word "حذف كلمة للأمام" - :command.editor/backward-kill-word "حذف كلمة للخلف" - :command.editor/paste-text-in-one-block-at-point "لصق النص في كتلة واحدة عند نقطة المؤشر" - :command.editor/insert-youtube-timestamp "إدراج الطابع الزمني ليوتيوب" - :command.editor/cycle-todo "تبديل حالة قائمة المهام (TODO)" - :command.editor/up "نقل المؤشر للأعلى / تحديد للأعلى" - :command.editor/down "نقل المؤشر للأسفل / تحديد للأسفل" - :command.editor/left "نقل المؤشر لليسار / فتح الكتلة المحددة من بدايتها" - :command.editor/right "نقل المؤشر لليمين / فتح الكتلة المحددة من نهايتها" - :command.editor/select-up "تحديد المحتوى أعلاه" - :command.editor/select-down "تحديد المحتوى أدناه" - :command.editor/move-block-up "نقل الكتلة للأعلى" - :command.editor/move-block-down "نقل الكتلة للأسفل" - :command.editor/move-blocks "نقل الكتل إلى" - :command.editor/open-edit "تحرير الكتلة المحددة" - :command.editor/open-selected-blocks-in-sidebar "فتح الكتل/ة المحددة في النافذة الجانبية" - :command.editor/select-block-up "تحديد الكتلة أعلاه" - :command.editor/select-block-down "تحديد الكتلة أدناه" - :command.editor/delete-selection "حذف الكتل المحددة" - :command.editor/expand-block-children "توسيع" - :command.editor/collapse-block-children "طي" - :command.editor/toggle-block-children "تبديل التوسيع/الطي" - :command.editor/indent "رفع رتبة الكتلة" - :command.editor/outdent "خفض رتبة الكتلة" - :command.editor/copy "نسخ (ينسخ النص المحدد أو مرجع الكتلة)" - :command.editor/copy-text "نسخ المحدد كنص" - :command.editor/cut "قص" - :command.editor/undo "تراجع" - :command.editor/redo "إعادة" - :command.editor/quick-add "إضافة سريعة" - :command.editor/insert-link "رابط HTML" - :command.editor/select-all-blocks "تحديد جميع الكتل" - :command.editor/select-parent "تحديد الكتلة الأم" - :command.editor/zoom-in "التركيز على الكتلة المحررة / أو الانتقال للأمام" - :command.editor/zoom-out "الخروج من تركيز الكتلة / أو الرجوع للخلف" - :command.editor/toggle-number-list "تبديل حالة قائمة الأرقام" - :command.editor/add-property "إضافة ميزة" - :command.editor/set-tags "تعيين الوسوم للكتل/ة المحددة" - :command.editor/add-property-deadline "إضافة موعد نهائي للمهمة في الكتلة المحددة" - :command.editor/add-property-status "إضافة حالة للمهمة في الكتلة المحددة" - :command.editor/add-property-priority "إضافة أولوية للمهمة في الكتلة المحددة" - :command.editor/add-property-icon "إضافة أيقونة" - :command.editor/jump "الانتقال إلى مفتاح أو قيمة خاصية" - :command.ui/toggle-brackets "تبديل إظهار/إخفاء الأقواس" - :command.go/electron-find-in-page "البحث عن نص في الصفحة" - :command.go/electron-jump-to-the-next "الانتقال إلى النتيجة التالية في شريط البحث" - :command.go/electron-jump-to-the-previous "الانتقال إلى النتيجة السابقة في شريط البحث" - :command.go/search "البحث في الصفحات والكتل" - :command.go/search-themes "البحث عن السمات" - :command.go/search-in-page "البحث عن الكتل في الصفحة" - :command.command-palette/toggle "بحث عن الأوامر" - :command.go/journals "الذهاب إلى اليوميات" - :command.go/backward "للخلف" - :command.go/forward "للأمام" - :command.search/re-index "إعادة بناء فهرس البحث" - :command.sidebar/open-today-page "فتح صفحة اليوم في النافذة الجانبية اليمنى" - :command.sidebar/close-top "إغلاق العنصر الأعلى في النافذة الجانبية اليمنى" - :command.sidebar/clear "مسح كافة العناصر في النافذة الجانبية اليمنى" - :command.misc/copy "نسخ" - :command.publish/open-dialog "فتح نافذة النشر للصفحة الحالية" - :command.graph/export-as-html "تصدير صفحات المخطط العامة بصيغة HTML" - :command.graph/open "اختر مخطط لفتحه" - :command.graph/remove "إزالة مخطط" - :command.graph/add "إضافة مخطط" - :command.graph/db-add "إضافة مخطط قاعدة بيانات" - :command.graph/db-save "حفظ قاعدة البيانات الحلية على القرص (~/logseq/graphs/your-current-graph)" - :command.command/run "تشغيل أمر git" - :command.go/home "الانتقال إلى الصفحة الرئيسية" - :command.go/all-graphs "الانتقال إلى كافة المخططات" - :command.go/all-pages "الانتقال إلى كافة الصفحات" - :command.go/graph-view "الانتقال إلى عرض المخطط" - :command.go/keyboard-shortcuts "الانتقال إلى اختصارات لوحة المفاتيح" - :command.go/tomorrow "الانتقال إلى تاريخ الغد" - :command.go/next-journal "الانتقال إلى اليومية التالية" - :command.go/prev-journal "الانتقال إلى اليومية السابقة" - :command.go/flashcards "تبديل عرض البطاقات التعليمية" - :command.ui/toggle-document-mode "تبديل وضع المستند" - :command.ui/toggle-settings "تبديل إظهار الإعدادات" - :command.ui/toggle-right-sidebar "إظهار/إخفاء النافذة الجانبية اليمنى" - :command.ui/toggle-left-sidebar "إظهار/إخفاء النافذة الجانبية اليسرى" - :command.ui/toggle-help "تبديل (مساعدة)" - :command.ui/toggle-theme "التبديل في المظهر فاتح/داكن" - :command.ui/toggle-contents "تبديل عرض المحتويات في النافذة الجانبية" - :command.ui/customize-appearance "تخصيص المظهر" - ;; :ui/open-new-window "Open another window" - :command.command/toggle-favorite "إضافة إلى/إزالة من المفضلة" - :command.editor/copy-page-url "نسخ رابط الصفحة" - :command.ui/toggle-wide-mode "تبديل الوضع العريض" - :command.ui/highlight-recent-blocks "تبديل تظليل الكتل الحديثة" - :command.editor/toggle-display-hidden-properties "تبديل عرض الخصائص المخفية" - :command.ui/select-theme-color "اختيار ألوان السمات المتاحة" - :command.ui/goto-plugins "الانتقال إلى لوحة الإضافات" - :command.ui/install-plugins-from-file "تثبيت الإضافات من ملف plugins.edn" - :command.ui/install-plugin-from-github "تثبيت إضافة من إصدارات GitHub" - :command.editor/toggle-open-blocks "تبديل فتح الكتل (طي أو توسيع كافة الكتل)" - :command.ui/clear-all-notifications "مسح كافة الإشعارات" - :command.misc/export-block-data "تصدير بيانات EDN للكتلة" - :command.misc/export-page-data "تصدير بيانات EDN للصفحة" - :command.misc/export-graph-ontology-data "تصدير بيانات EDN لوسوم وخصائص المخطط" - :command.misc/import-edn-data "استيراد بيانات EDN" - :command.dev/show-block-data "(للمطورين) عرض بيانات الكتلة" - :command.dev/show-block-ast "(للمطورين) عرض بنية الكتلة (AST)" - :command.dev/show-page-data "(للمطورين) عرض بيانات الصفحة" - :command.dev/replace-graph-with-db-file "(للمطورين) استبدال المخطط بملف قاعدة البيانات الخاص به db.sqlite" - :command.dev/validate-db "(للمطورين) التحقق من صحة بيانات المخطط الحالي" - :command.dev/gc-graph "(للمطورين) تنظيف المخطط (إزالة البيانات غير المستخدمة من SQLite)" - :command.dev/rtc-stop "(للمطورين) إيقاف ساعة الوقت الحقيقي RTC" - :command.dev/rtc-start "(للمطورين) تشغيل ساعة الوقت الحقيقي RTC" - :command.window/close "إغلاق النافذة"} + :zotero/attachments "المرفقات" + :zotero/imported-file-warning "هذا ملف Zotero مستورد، عيّن دليل بيانات Zotero لفتح الملف في Logseq." + :zotero/linked-file-warning "هذا ملف Zotero مرتبط، عيّن الدليل الأساسي للمرفقات المرتبطة في Zotero لفتح الملف في Logseq." + :zotero/notes "ملاحظات" +} diff --git a/src/resources/dicts/ca.edn b/src/resources/dicts/ca.edn index 085f63e99c..24a161a40e 100644 --- a/src/resources/dicts/ca.edn +++ b/src/resources/dicts/ca.edn @@ -1,459 +1,1861 @@ -{:all-files "Llista d'arxius" - :all-graphs "Llista de grafs" - :all-journals "Llista de diaris" - :auto-heading "Encapçalaments automàtics" - :bold "Negreta" - :cancel "Cancel·lar" - :close "Tancar" - :code "Codi" - :delete "Eliminar" - :download "Descarregar" - :export "Exportar" - :export-copied-to-clipboard "¡Copiat al porta-retalls!" - :export-copy-to-clipboard "Copiar al porta-retalls" - :export-graph "Exportar graf" - :export-markdown "Exportar com Markdown estàndard (sense propietats de bloc)" - :export-page "Exportar pàgina" - :export-public-pages "Exportar pàgines públiques" - :export-save-to-file "Desar a arxiu" - :export-transparent-background "Fons transparent" - :graph "Graf" - :heading "Encapçalament {1}" - :help-shortcut-title "Clic per veure dreceres i altres suggeriments" - :highlight "Ressaltat" - :home "Inici" - :host "Servidor" - :import "Importar" - :importing "Important" - :italics "Cursiva" - :language "Idioma" - :loading "Carregant..." - :login "Iniciar sessió" - :logout "Tancar sessió" - :new-page "Nova pàgina:" - :plugins "Extensions" - :port "Port" - :relaunch-confirm-to-work "Ha de reiniciar la aplicació per fer que funcioni. Desitja reiniciar-la ara?" - :remove-background "Eliminar el fons" - :remove-heading "Eliminar encapçalament" - :save "Desar" - :settings "Opcions" - :settings-of-plugins "Opcions d'Extensions" - :strikethrough "Ratllat" - :themes "Temes" - :toggle-theme "Alternar tema" - :type "Tipus" - :untitled "Sense títol" - :yes "Si" - :accessibility/skip-to-main-content "Anar a contingut principal" - :asset/confirm-delete "¿Està segur que desitja eliminar aquest {1}?" - :asset/copy "Copiar imatge" - :asset/delete "Eliminar imatge" - :asset/maximize "Maximitzar imatge" - :asset/open-in-browser "Obrir imatge al navegador" - :asset/physical-delete "Eliminar també l'arxiu (aquesta acció no es pot desfer)" - :asset/show-in-folder "Mostrar imatge a la carpeta" - :block/name "Nom de pàgina" - :bug-report/clipboard-inspector-title "Inspector de dades del porta-retalls" - :bug-report/inspector-page-btn-back "Retrocedir" - :bug-report/inspector-page-btn-copy "Copiar el resultat" - :bug-report/inspector-page-btn-create-issue "Crear un report" - :bug-report/inspector-page-copy-notif "¡Copiat al porta-retalls!" - :bug-report/inspector-page-desc-1 "Pressiona Ctrl+V / ⌘+V per inspeccionar el porta-retalls" - :bug-report/inspector-page-desc-2 "o fes clic aquí per enganxar si estàs utilitzant la versió mòbil" - :bug-report/inspector-page-desc-clipboard "Aquí estan les dades llegides del porta-retalls." - :bug-report/inspector-page-desc-copy "Si això està be per compartir, fes clic al botó de copiar." - :bug-report/inspector-page-desc-create-issue "Ara pots reportar el resultat enganxat al porta-retalls. Si us plau, enganxa el resultat a la secció 'Context addicional' i menciona d'on has copiat el contingut original. ¡Gràcies!" - :bug-report/inspector-page-placeholder "Mantingui pressionat aquí per enganxar si està en un dispositiu mòbil" - :bug-report/inspector-page-tip "Hi ha alguna errada? Cap problema, fes clic per tornar al pas anterior." - :bug-report/main-desc "Podries ajudar-nos reportant un error? Nosaltres el resolem tan aviat com puguem." - :bug-report/main-title "Reportar una errada" - :bug-report/section-clipboard-btn-desc "Inspeccionar i recol·lectar dades del porta-retalls" - :bug-report/section-clipboard-btn-title "Ajudant del porta-retalls" - :bug-report/section-clipboard-desc "Pots utilitzar aquestes pràctiques eines per proporcionar-nos informació addicional." - :bug-report/section-clipboard-title "La errada està relacionada amb aquestes característiques?" - :bug-report/section-issues-btn-desc "¡Ajuda a millorar Logseq!" - :bug-report/section-issues-btn-title "Enviar un report de errades" - :bug-report/section-issues-desc "Si no hi ha eines disponibles per recopilar informació addicional, reporta la errada directament." - :bug-report/section-issues-title "O ..." - :color/blue "Blau" - :color/gray "Gris" - :color/green "Verd" - :color/pink "Rosa" - :color/purple "Púrpura" - :color/red "Vermell" - :color/yellow "Groc" - :command.auto-complete/complete "Auto-completar: Escollir elements seleccionats" - :command.auto-complete/next "Auto-completar: Seleccionar següent element" - :command.auto-complete/prev "Auto-completar: Seleccionar element anterior" - :command.auto-complete/shift-complete "Auto-completar: Obrir element seleccionat al panell lateral" - :command.cards/toggle-answers "Targetes: mostrar/ocultar respostes/prova de completar frases " - :command.command-palette/toggle "Cercar ordres" - :command.command/run "Executar ordre git" - :command.command/toggle-favorite "Afegir/Eliminar de favorits" - :command.dev/show-block-ast "(Dev) Mostrar AST de bloc" - :command.dev/show-block-data "(Dev) Mostrar dades de bloc" - :command.dev/show-page-data "(Dev) Mostrar dades de pàgina" - :command.editor/backspace "Retrocedir / Eliminar endarrere" - :command.editor/backward-kill-word "Esborrar paraula anterior" - :command.editor/backward-word "Moure cursor una paraula endarrere" - :command.editor/beginning-of-block "Moure cursor al inici del bloc" - :command.editor/bold "Negreta" - :command.editor/clear-block "Esborrar el contingut del bloc" - :command.editor/collapse-block-children "Col·lapsar" - :command.editor/copy "Copiar" - :command.editor/copy-embed "Copiar bloc per incrustar" - :command.editor/copy-page-url "Copiar url de pàgina" - :command.editor/copy-text "Copiar selecció com text" - :command.editor/cut "Enganxar" - :command.editor/cycle-todo "Rotar estat TODO del element" - :command.editor/delete "Suprimir / Eliminar endavant" - :command.editor/delete-selection "Eliminar blocs seleccionats" - :command.editor/down "Moure cursor avall / Seleccionar avall" - :command.editor/end-of-block "Moure cursor al final del bloc" - :command.editor/escape-editing "Sortir de edició" - :command.editor/expand-block-children "Expandir" - :command.editor/follow-link "Seguir enllaç sota el cursor" - :command.editor/forward-kill-word "Esborrar paraula següent" - :command.editor/forward-word "Moure cursor una paraula endavant" - :command.editor/highlight "Ressaltat" - :command.editor/indent "Augmentar sagnat" - :command.editor/insert-link "Enllaç html" - :command.editor/insert-youtube-timestamp "Inserir marca de temps de YouTube" - :command.editor/italics "Cursiva" - :command.editor/kill-line-after "Esborrar línia posterior al cursor" - :command.editor/kill-line-before "Esborrar línia anterior al cursor" - :command.editor/left "Moure cursor a l'esquerra / Obrir bloc seleccionat al inici" - :command.editor/move-block-down "Moure bloc avall" - :command.editor/move-block-up "Moure bloc amunt" - :command.editor/new-block "Crear bloc nou" - :command.editor/new-line "Nova línia al bloc" - :command.editor/open-edit "Editar bloc seleccionat" - :command.editor/open-link-in-sidebar "Obrir enllaç al panell lateral" - :command.editor/outdent "Disminuir indentació" - :command.editor/paste-text-in-one-block-at-point "Enganxar text en un bloc al punt" - :command.editor/redo "Refer" - :command.editor/right "Moure cursor a la dreta / Obrir bloc seleccionat al final" - :command.editor/select-all-blocks "Seleccionar tots els blocs" - :command.editor/select-block-down "Seleccionar bloc de sota" - :command.editor/select-block-up "Seleccionar bloc de sobre" - :command.editor/select-down "Seleccionar el contingut a continuació" - :command.editor/select-parent "Seleccionar bloc pare" - :command.editor/select-up "Seleccionar contingut anterior" - :command.editor/strike-through "Ratllat" - :command.editor/toggle-number-list "Alternar llista de nombres" - :command.editor/toggle-open-blocks "Alternar blocs oberts, (col·lapsar o expandir tots)" - :command.editor/toggle-block-children "Alternar Expandir/Col·lapsar" - :command.editor/undo "Desfer" - :command.editor/up "Moure cursor amunt / Seleccionar amunt" - :command.editor/zoom-in "Apropar / Endavant" - :command.editor/zoom-out "Allunyar / Enrere" - :command.go/all-graphs "Anar a tots els grafs" - :command.go/all-pages "Anar a totes les pàgines" - :command.go/backward "Enrere" - :command.go/electron-find-in-page "Trobar text a la pàgina" - :command.go/electron-jump-to-the-next "Saltar a la següent coincidència de la cerca" - :command.go/electron-jump-to-the-previous "Saltar a la coincidència anterior de la cerca" - :command.go/flashcards "Alternar targetes de memorització" - :command.go/forward "Endavant" - :command.go/graph-view "Anar a la vista de grafs" - :command.go/home "Anar a la pàgina d'inici" - :command.go/journals "Anar al diari" - :command.go/keyboard-shortcuts "Anar a dreceres de teclat" - :command.go/next-journal "Anar al següent diari" - :command.go/prev-journal "Anar al diari anterior" - :command.go/search "Cercar al graf" - :command.go/search-in-page "Cercar blocs a la pàgina" - :command.go/tomorrow "Anar a demà" - :command.graph/add "Afegir un graf" - :command.graph/export-as-html "Exportar un graf públic com html " - :command.graph/open "Seleccionar graf a obrir" - :command.graph/remove "Eliminar un graf" - :command.misc/copy "Copiar" - :command.pdf/close "Pdf: Tancar document pdf actual" - :command.pdf/find "Pdf: Cercar text en el document pdf actual" - :command.pdf/next-page "Pdf: Pàgina següent del document pdf actual" - :command.pdf/previous-page "Pdf: Pàgina anterior del document pdf actual" - :command.search/re-index "Reconstruir índex de cerca" - :command.sidebar/clear "Tancar tot al panell lateral dret" - :command.sidebar/close-top "Tancar l'element superior del panell lateral dret" - :command.sidebar/open-today-page "Obrir diari al panell lateral dret" - :command.ui/clear-all-notifications "Esborrar totes les notificacions" - :command.ui/goto-plugins "Anar al panell d'extensions" - :command.ui/install-plugins-from-file "Instal·lar extensions de plugins.edn" - :command.ui/select-theme-color "Seleccionar temes de colors disponibles" - :command.ui/toggle-brackets "Alternar claudàtors" - :command.ui/toggle-contents "Alternar contingut al panell lateral" - :command.ui/toggle-document-mode "Alternar mode document" - :command.ui/toggle-help "Alternar ajuda" - :command.ui/toggle-left-sidebar "Alternar panell lateral esquerra" - :command.ui/toggle-right-sidebar "Alternar panell lateral dret" - :command.ui/toggle-settings "Alternar Opcions" - :command.ui/toggle-theme "Alternar entre tema clar/fosc" - :command.ui/toggle-wide-mode "Alternar mode ample" - :command.window/close "Tancar finestra" - :content/click-to-edit "Clic per editar" - :content/copy-block-ref "Copiar referència de bloc" - :content/copy-block-url "Copiar URL del bloc" - :content/copy-export-as "Copiar / Exportar com..." - :content/copy-ref "Copiar aquesta referència" - :content/delete-ref "Eliminar aquesta referència" - :content/open-in-sidebar "Obrir a panell lateral" - :content/replace-with-embed "Reemplaçar amb incrustació" - :content/replace-with-text "Reemplaçar amb text" - :context-menu/make-a-flashcard "Crear una targeta de memorització" - :context-menu/toggle-number-list "Alternar llista de nombres" - :dev/show-block-ast "(Dev) Mostrar AST de bloc" - :dev/show-block-data "(Dev) Mostrar dades de bloc" - :dev/show-page-data "(Dev) Mostrar dades de pàgina" - :editor/block-search "Cercar un bloc" - :editor/collapse-block-children "Col·lapsar tot" - :editor/copy "Copiar" - :editor/cut "Tallar" - :editor/cycle-todo "Rotar l'estat de la TODO del element actual" - :editor/delete-selection "Eliminar els blocs seleccionats" - :editor/expand-block-children "Expandir tot" - :file/format-not-supported "Format .{1} no suportat." - :file/last-modified-at "Data de modificació" - :file/name "Nom del arxiu" - :file/no-data "No hi ha dades" - :flashcards/modal-finished "¡Felicitats, has revisat totes les targetes a aquesta consulta, ene veiem la propera vegada! 💯" - :flashcards/modal-welcome-desc-1 "Pot afegir \"{1}\" a qualsevol bloc per convertir-lo en una targeta o executar \"/cloze\" per afegir alguns clozes." - :flashcards/modal-welcome-title "¡És hora de crear una targeta!" - :graph/all-graphs "Tots els grafs" - :graph/local-graphs "Grafs locals:" - :graph/remote-graphs "Grafs remots:" - :handbook/close "Tancar" - :handbook/help-categories "Categories d'ajuda" - :handbook/home "Inici" - :handbook/popular-topics "Temes populars" - :handbook/search "Cercar" - :handbook/settings "Opcions" - :handbook/title "Ajuda" - :handbook/topics "Temes" - :header/go-back "Retrocedir" - :header/go-forward "Avançar" - :header/more "Mes" - :header/search "Cercar" - :header/toggle-left-sidebar "Alternar panell lateral esquerre" - :help/about "Sobre Logseq" - :help/awesome-logseq "Increïble Logseq" - :help/block-reference "Referència de bloc" - :help/blog "Blog de Logseq" - :help/bug "Reportar un problema" - :help/changelog "Registre de canvis" - :help/context-menu "Menú contextual" - :help/docs "Documentació" - :help/feature "Sol·licitar una funció" - :help/forum-community "Fòrum de la comunitat" - :help/markdown-syntax "Sintaxi de Markdown" - :help/open-link-in-sidebar "Obrir enllaç al panell lateral" - :help/privacy "Política de privacitat" - :help/reference-autocomplete "Referència de pàgina" - :help/roadmap "Full de ruta" - :help/search "Cercar pàgines/blocs/ordres" - :help/shortcut "Drecera" - :help/shortcut-page-title "Dreceres de teclat" - :help/shortcuts "Dreceres de teclat" - :help/shortcuts-triggers "Iniciadors" - :help/slash-autocomplete "Autocompletat de barra '/'" - :help/start "Començar" - :help/terms "Termes" - :help/title-about "Sobre la" - :help/title-community "Comunitat" - :help/title-development "Desenvolupament" - :help/title-terms "Termes" - :help/title-usage "Utilització" - :keymap/all "Tot" - :keymap/custom "Personalitzat" - :keymap/disabled "Deshabilitat" - :keymap/keystroke-filter "Filtre de pulsació de tecles" - :keymap/unset "Sense establir" - :left-side-bar/journals "Diaris" - :left-side-bar/nav-favorites "Preferits" - :left-side-bar/nav-recent-pages "Recents" - :left-side-bar/switch "Canviar a:" - :linked-references/filter-directions "Faci clic per incloure i shift-clic per excloure. Faci clic un altre cop per eliminar." - :linked-references/filter-excludes "Excloure: " - :linked-references/filter-heading "Filtre" - :linked-references/filter-includes "Incloure: " - :linked-references/filter-search "Cercar a les pàgines vinculades" - :notification/clear-all "Netejar tot" - :on-boarding/importing-desc "Si estan en format EDN o Markdown Logseq pot treballar amb ells." - :on-boarding/importing-main-desc "També pot fer això després a la aplicació." - :on-boarding/importing-main-title "Importar notes existents" - :on-boarding/importing-title "Tens notes que vulguis importar?" - :on-boarding/main-desc "Primer tens que escollir una carpeta on Logseq desarà els teus pensaments, idees i notes." - :on-boarding/main-title (fn [] ["¡Benvingut a " [:strong "Logseq!"]]) - :page/add-to-favorites "Afegir a Preferits" - :page/backlinks "Enllaços per retrocedir" - :page/copy-page-url "Copiar URL de la pàgina" - :page/created-at "Creada el" - :page/delete "Eliminar pàgina" - :page/logseq-is-having-a-problem "Logseq està tenint un problema. Per intentar tornar a un estat de treball, intenti el següent procediment en ordre:" - :page/make-private "Fer privada" - :page/make-public "Fer pública al publicar" - :page/something-went-wrong "Alguna cosa ha sortit malament" - :page/step "Pas {1}" - :page/try "Intentar" - :page/unfavorite "Treure pàgina de preferides" - :page/updated-at "Actualitzada el" - :pdf/auto-open-context-menu "Obrir automàticament el menú contextual per a selecció." - :pdf/copy-ref "Copiar referència" - :pdf/copy-text "Copiar text" - :pdf/doc-metadata "Metadades del document" - :pdf/hl-block-colored "Etiqueta de color para ressaltar bloc" - :pdf/linked-ref "Referències vinculades" - :pdf/toggle-dashed "Estil puntejat per les àrees ressaltades" - :plugin/all "Tot" - :plugin/all-updated "¡Tot està actualitzat!" - :plugin/auto-check-for-updates "Comprovació automàtica d'actualitzacions" - :plugin/check-all-updates "Cercar actualitzacions" - :plugin/checking-for-updates "Comprovant actualitzacions d'extensions..." - :plugin/check-update "Cercar actualització" - :plugin/contribute "✨ Escriure i publicar una nova extensió" - :plugin/custom-js-alert "S'ha trobat l'arxiu custom.js, desitja permetre que s'executi? (Si no entén el contingut d'aquest arxiu es recomana no permetre la seva execució ja que representa certs riscs de seguretat)." - :plugin/delete-alert "Està segur de desinstal·lar la extensió [{1}]?" - :plugin/disabled "Inactiu" - :plugin/downloads "Descàrregues" - :plugin/enabled "Habilitat" - :plugin/found-n-updates "S'han trobat {1} actualitzacions" - :plugin/found-updates "Noves actualitzacions" - :plugin/install "Instal·lar" - :plugin/installed "Instal·lat" - :plugin/installed-plugin "Extensió instal·lada: {1}" - :plugin.install-from-file/menu-title "Instal·lar des de plugins.edn" - :plugin.install-from-file/notice "Les següents extensions reemplaçaran les seves extensions: " - :plugin.install-from-file/success "¡Totes les extensions han estat instal·lades !" - :plugin.install-from-file/title "Instal·lar extensions des de plugins.edn" - :plugin/installing "Instal·lant" - :plugin/list-of-updates "Actualitzacions d'extensions: " - :plugin/load-unpacked "Carregar extensió desempaquetada" - :plugin/marketplace "Catàleg" - :plugin/not-installed "No instal·lat" - :plugin/open-logseq-dir "Obrir" - :plugin/open-package "Obrir paquet" - :plugin/open-preferences "Obrir preferències" - :plugin/open-settings "Obrir opcions" - :plugin/refresh-lists "Actualitzar llistes" - :plugin/reload "Recarregar" - :plugin/remote-error "Error remot: " - :plugin/restart "Reiniciar la aplicació" - :plugin/search-plugin "Cercar extensions" - :plugin/security-warning "Les extensions poden accedir al teu graf, arxius locals i emetre sol·licituds de xarxa." - :plugin/stars "Estrelles" - :plugin/title "Títol ({1})" - :plugin/uninstall "Desinstal·lar" - :plugin/unpacked "Desempaquetat" - :plugin/unpacked-tips "Seleccionar el directori de la extensió" - :plugin/update "Actualitzar" - :plugin/update-all-selected "Actualitzar tot lo seleccionat" - :plugin/update-available "Actualització disponible" - :plugin/update-plugin "Actualitzat extensió: {1} - {2}" - :plugin/updates-downloading "Descarregant totes les actualitzacions" - :plugin/updating "Actualitzant" - :plugin/up-to-date "Està actualitzat {1}" - :right-side-bar/block-ref "Referència de bloc" - :right-side-bar/contents "Contingut" - :right-side-bar/flashcards "Targetes de memorització" - :right-side-bar/graph-view "Vista de Graf" - :right-side-bar/help "Ajuda" - :right-side-bar/page-graph "Graf de pàgina" - :right-side-bar/pane-close "Tancar" - :right-side-bar/pane-close-all "Tancar tot" - :right-side-bar/pane-close-others "Tancar altres" - :right-side-bar/pane-collapse "Col·lapsar" - :right-side-bar/pane-collapse-all "Col·lapsar tot" - :right-side-bar/pane-collapse-others "Col·lapsar altres" - :right-side-bar/pane-expand "Expandir" - :right-side-bar/pane-expand-all "Expandir tot" - :right-side-bar/pane-more "Mes" - :right-side-bar/pane-open-as-page "Obrir com pàgina" - :right-side-bar/separator "Eina per redimensionar panell dret " - :right-side-bar/show-journals "Mostrar Diaris" - :right-side-bar/switch-theme "Temes" - :right-side-bar/toggle-right-sidebar "Alternar panell lateral dret" - :search-item/no-result "Sense resultats coincidents" - :search-item/page "Pàgina" - :select/default-prompt "Seleccioni un" - :select/default-select-multiple "Seleccioni un o varis" - :select.graph/add-graph "Si, afegir un altre graf" - :select.graph/empty-placeholder-description "No trobem un graf. Vol afegir-ne un?" - :select.graph/prompt "Seleccioni un graf" - :settings-page/app-updated "La aplicació està actualitzada 🎉" - :settings-page/auto-chmod "Canviar automàticament els permisos dels arxius" - :settings-page/auto-chmod-desc "Desactivar els permisos de edició dels usuaris amb permisos atorgats per pertanyen-ça a un grup." - :settings-page/auto-expand-block-refs "Expandir referències de bloc automàticament al fer un apropament" - :settings-page/auto-expand-block-refs-tip "Aquesta opció controla si expandir el bloc de referències automàticament al fer un apropament." - :settings-page/auto-updater "Auto actualitzador" - :settings-page/changelog "Què hi ha de nou?" - :settings-page/check-for-updates "Cerca d'actualitzacions" - :settings-page/checking "Cercant ..." - :settings-page/clear "Netejar" - :settings-page/clear-cache "Netejar memòria cau" - :settings-page/clear-cache-warning "Netejar la memòria cau tancarà els grafs oberts. Es perdran en canvis no desats." - :settings-page/current-version "Versió actual" - :settings-page/custom-configuration "Configuració personalitzada" - :settings-page/custom-date-format "Format de data preferida" - :settings-page/custom-global-configuration "Configuració global personalitzada" - :settings-page/custom-theme "Tema personalitzat" - :settings-page/developer-mode "Mode desenvolupador" - :settings-page/developer-mode-desc "El mode desenvolupador permet als col·laboradors i desenvolupadors d'extensions provar les integracions amb Logseq de manera més eficient." - :settings-page/disable-sentry "Enviar dades d'ús i diagnòstics a Logseq" - :settings-page/disable-sentry-desc " Logseq mai recol·lectarà la seva base de dades de grafs local o vendrà les seves dades." - :settings-page/edit-config-edn "Editar config.edn (per aquest repositori)" - :settings-page/edit-custom-css "Editar custom.css" - :settings-page/edit-export-css "Editar export.css" - :settings-page/edit-global-config-edn "Editar config.edn global" - :settings-page/enable-all-pages-public "Fer totes les pàgines publiques al publicar" - :settings-page/enable-flashcards "Targetes de memorització" - :settings-page/enable-journals "Habilitar diaris" - :settings-page/enable-shortcut-tooltip "Habilitar descripció emergent de dreceres de teclat" - :settings-page/enable-tooltip "Habilitar descripció emergent" - :settings-page/export-theme "Tema exportació" - :settings-page/home-default-page "Establir pàgina d'inici" - :settings-page/login-prompt "Per accedir a noves característiques abans que ningú ha de ser patrocinador de Logseq en Open Collective y després iniciar sessió." - :settings-page/native-titlebar "Barra de títol nativa" - :settings-page/native-titlebar-desc "Habilita la barra de títol nativa de la finestra de Windows i Linux." - :settings-page/network-proxy "Proxy de xarxa" - :settings-page/plugin-system "Habilitar extensions" - :settings-page/preferred-outdenting "Disminució lògica de sagnat" - :settings-page/preferred-outdenting-tip "El costat esquerra mostra el sagnat amb la configuració per defecte, i el dret mostra amb el sagnat lògic habilitat" - :settings-page/preferred-outdenting-tip-more "→ conèixer més" - :settings-page/preferred-pasting-file "Preferir enganxar arxiu" - :settings-page/preferred-pasting-file-hint "Quan està habilitat, al enganxar una imatge de internet la imatge serà descarregada i inserida. Quan està deshabilitat, l'enllaç a la imatge serà enganxat." - :settings-page/revision "Revisió: " - :settings-page/show-brackets "Mostrar claudàtors" - :settings-page/show-full-blocks "Mostrar totes les línies de una referència a bloc" - :settings-page/spell-checker "Corrector ortogràfic" - :settings-page/tab-account "Compte" - :settings-page/tab-advanced "Avançat" - :settings-page/tab-editor "Editor" - :settings-page/tab-features "Característiques" - :settings-page/tab-general "General" - :settings-page/tab-keymap "Mapa de teclat" - :settings-page/theme-dark "fosc" - :settings-page/theme-light "clar" - :settings-page/theme-system "sistema" - :settings-page/update-available "S'ha trobat una nova versió" - :settings-page/update-error-1 "¡⚠️ Ups, alguna cosa ha fallat!" - :settings-page/update-error-2 " Si us plau comprovi" - :shortcut.category/basics "Bàsic" - :shortcut.category/block-command-editing "Ordres d'edició de bloc" - :shortcut.category/block-editing "Edició de bloc general" - :shortcut.category/block-selection "Selecció de blocs (prémer Esc para sortir)" - :shortcut.category/formatting "Format" - :shortcut.category/navigating "Navegació" - :shortcut.category/others "Altres" - :shortcut.category/plugins "Extensions" - :shortcut.category/toggle "Alternar" - :text/image "Imatge" - :tips/all-done "¡Tot fet!" - :updater/new-version-install "S'ha descarregat una nova versió." - :updater/quit-and-install "Reiniciar per instal·lar" - :window/close "Tancar" - :window/exit-fullscreen "Sortir de pantalla completa" - :window/maximize "Maximitzar" - :window/minimize "Minimitzar" - :window/restore "Restaurar" +{ + :account/authentication "Autenticació" + :account/benefits-desc "Amb un compte de Logseq, podeu accedir a serveis al núvol com Logseq Sync i funcions alfa/beta." + :account/billing "Facturació" + :account/billing-expired-on-label "El pla Pro va caducar el: {1}" + :account/billing-expires-on-label "El pla Pro caduca el: {1}" + :account/billing-next-date-label "Propera data de facturació: {1}" + :account/core-features "Accés a les funcions principals de Logseq" + :account/current-plan "Pla actual" + :account/delete-account "Suprimeix el compte" + :account/discover-sync-desc "Descobriu el poder de {1}" + :account/early-access-alpha-beta "Accés anticipat a funcions alfa/beta" + :account/first-name "Nom" + :account/free-plan-sync-limit "1 graf sincronitzat (fins a 50 MB, només notes)" + :account/last-name "Cognoms" + :account/manage-plan "Gestionar el pla" + :account/month "mes" + :account/no-asset-syncing "Sense sincronització de recursos" + :account/open-invoices "Obrir factures" + :account/plan-free "Gratuït" + :account/plan-free-summary "Comenceu amb la sincronització bàsica" + :account/plan-pro "Pro" + :account/plan-pro-summary "Desbloquegeu la sincronització avançada i més" + :account/pro-plan-sync-limit "10 grafs sincronitzats (fins a 5 GB cadascun)" + :account/profile "Perfil" + :account/refresh-token-warning "Actualització del token: estat excepcional" + :account/reset-password "Restablir la contrasenya" + :account/sign-up "Registrar-se" + :account/sync-assets-limit "Sincronitzar recursos fins a 100 MB per fitxer" + :account/synced-status "Sincronitzat" + :account/unlimited-unsynced-graphs "Grafs no sincronitzats il·limitats" + :account/upcoming-cloud-features "Properes funcions al núvol, incloent Logseq Publish" + :account/upgrade-plan "Millorar el pla" + :account/username "Nom d'usuari" + + :asset/acceptable-file-extensions "Extensions de fitxer acceptades" + :asset/add-assets "Afegir recursos" + :asset/add-directory "Afegir directori" + :asset/alias-already-exists "El nom d'àlies \"{1}\" ja existeix!" + :asset/alias-directories "Directoris d'àlies" + :asset/alias-directory-path-label "Camí del directori:" + :asset/alias-name-dialog-title "Quin és el nom d'àlies d'aquest directori seleccionat?" + :asset/alias-name-label "Nom d'àlies:" + :asset/alias-name-placeholder "p. ex. Llibres" + :asset/align "Alineació" + :asset/align-center "Centre" + :asset/align-left "Esquerra" + :asset/align-right "Dreta" + :asset/already-exists "L'actiu ja existeix, títol: {1}, referència del node: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "No es pot incrustar el pare com a propietat pròpia" + :asset/confirm-delete-image "Esteu segur que voleu eliminar aquesta imatge?" + :asset/copy "Copiar imatge" + :asset/copy-image-unsupported-extension "Copiar la imatge no és compatible amb els fitxers {1}" + :asset/create-local-copy-warning "S'està creant un recurs local a partir d'un d'extern. Les anotacions PDF requereixen un recurs local per funcionar correctament." + :asset/create-title "Crear recurs" + :asset/delete "Eliminar imatge" + :asset/downloading "Descàrrega en curs" + :asset/drop-hint "Arrossegueu i deixeu anar fitxers aquí, o feu clic per seleccionar-ne" + :asset/edit-title "Editar recurs" + :asset/external-url-label "URL externa del recurs:" + :asset/file-extension-placeholder "p. ex. mp3" + :asset/maximize "Maximitzar imatge" + :asset/open-in-browser "Obrir imatge al navegador" + :asset/physical-delete "Eliminar també l'arxiu (aquesta acció no es pot desfer)" + :asset/ref-block "Bloc de referència" + :asset/select-file "Seleccioneu el fitxer del recurs" + :asset/select-from-disk "Seleccionar del disc" + :asset/selected-directories "Directoris seleccionats:" + :asset/show-file-in-folder "Mostrar el fitxer a la carpeta" + :asset/size-too-large "El recurs és massa gran" + :asset/syncing "Sincronització en curs" + :asset/title-label "Títol del recurs:" + :asset/transfer-placeholder "{1} fitxers..." + :asset/uploading "Envio en curs" + + :block/click-to-fix-query "Feu clic per corregir la consulta: {1}" + :block/copy-ref "Copiar referència de bloc" + :block/copy-url "Copiar URL del bloc" + :block/created-label "Creat: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' està obsolet. Feu servir la comanda '/Math block' en lloc seu." + :block/deprecated-query-syntax "#+BEGIN_QUERY està obsolet. Feu servir la comanda '/Advanced Query' en lloc seu." + :block/deprecated-quote "#+BEGIN_QUOTE està obsolet. Feu servir la comanda '/Quote' en lloc seu." + :block/empty-url "URL buida" + :block/excalidraw-no-longer-supported "Excalidraw ja no és compatible per defecte, tenim previst donar-hi suport a través de connectors." + :block/extraction-error "Error en l'extracció del bloc" + :block/hide-query "Amagar consulta" + :block/invalid-hiccup "Hiccup no vàlid" + :block/invalid-link "Enllaç no vàlid" + :block/invalid-url "URL no vàlida" + :block/large-block-warning "El bloc gran no serà editable ni cercable per no alentir l'aplicació, feu servir un altre editor per editar aquest bloc." + :block/last-edited-label "Darrera edició: {1}" + :block/not-found-warning "No s'ha trobat cap bloc" + :block/open-block-references "Obrir les referències del bloc" + :block/practice "Practicar" + :block/practice-cards "Practicar targetes" + :block/ref-nesting-too-deep "L'anidament de referències de bloc és massa profund" + :block/remove-tag "Eliminar etiqueta" + :block/remove-this-tag "Eliminar aquesta etiqueta" + :block/render-error "Error de renderització del bloc:" + :block/set-query "Establir consulta" + :block/set-query-label "Establir consulta:" + :block/sort-order "Ordre de classificació" + :block/status-history "Historial d'estat" + :block/untitled-query "Consulta sense títol" + + :block.macro/embed-deprecated "{{embed}} està deprecat. Utilitza la comanda '/Node embed' en seu lloc." + :block.macro/namespace-deprecated "{{namespace}} està deprecat. Utilitza la funcionalitat {1} en seu lloc." + :block.macro/query-deprecated "{{query}} està deprecat. Utilitza la comanda '/Query' en seu lloc." + :block.macro/unsupported-name "Nom de macro no suportat: {1}" + + :block.reaction/emoji-required-warning "Emoji obligatori" + :block.reaction/unsupported-emoji-warning "Emoji de reacció no suportat" + + :bug-report/desc "Informar d'un error" + :bug-report/title "Informar d'un error" + + :bug-report.clipboard/action-desc "Inspeccionar porta-retalls" + :bug-report.clipboard/action-title "Inspector del porta-retalls" + :bug-report.clipboard/desc "Si teniu problemes amb copiar i enganxar, useu l'inspector del porta-retalls" + :bug-report.clipboard/title "Porta-retalls" + + :bug-report.inspector/back "Enrere" + :bug-report.inspector/clipboard-desc "Contingut del porta-retalls" + :bug-report.inspector/copied "Copiat al porta-retalls" + :bug-report.inspector/copy "Copia" + :bug-report.inspector/copy-desc "Copiar l'informe de diagnòstic" + :bug-report.inspector/create-issue "Crear issue" + :bug-report.inspector/create-issue-desc "Ara podeu informar del resultat enganxat al porta-retalls. Enganxeu el resultat a la secció 'Additional Context' i indiqueu d'on heu copiat el contingut original. Gràcies!" + :bug-report.inspector/desc "Pressiona {1} per inspeccionar el porta-retalls\no fes clic aquí per enganxar si estàs utilitzant la versió mòbil" + :bug-report.inspector/placeholder "Enganxeu el contingut aquí" + :bug-report.inspector/tip "Consell: useu Ctrl+V per enganxar" + :bug-report.inspector/title "Inspector del porta-retalls" + + :bug-report.issue/action-desc "Veure problemes coneguts" + :bug-report.issue/action-title "Problemes a GitHub" + :bug-report.issue/desc "Comproveu si el vostre problema ja ha estat reportat" + :bug-report.issue/report-link "Informa d'un problema" + :bug-report.issue/title "Problemes coneguts" + + :class/add-property "Afegeix una propietat d'etiqueta" + :class/tag-properties-desc "Les propietats de l'etiqueta s'hereten a tots els nodes que la fan servir. Per exemple, cada node #Task hereta 'Status' i 'Priority'." + :class/tagged-nodes "Nodes etiquetats" + + :class.built-in/asset "Recurs" + :class.built-in/card "Targeta" + :class.built-in/cards "Targetes" + :class.built-in/code-block "Codi" + :class.built-in/journal "Diari" + :class.built-in/math-block "Matemàtiques" + :class.built-in/page "Pàgina" + :class.built-in/pdf-annotation "Anotació PDF" + :class.built-in/property "Propietat" + :class.built-in/query "Consulta" + :class.built-in/quote-block "Cita" + :class.built-in/root "Etiqueta arrel" + :class.built-in/tag "Etiqueta" + :class.built-in/task "Tasca" + :class.built-in/template "Plantilla" + :class.built-in/whiteboard "Pissarra" + + :class.validation/built-in-extends-change "L'herència d'elements integrats no es pot canviar." + :class.validation/cant-add-tag-on-built-in "No es pot afegir l'etiqueta a \"{1}\" integrat." + :class.validation/cant-remove-private-tags "No es poden eliminar les etiquetes privades: {1}." + :class.validation/cant-remove-tag-built-in "No es pot eliminar l'etiqueta amb #{1} integrat." + :class.validation/cant-remove-tag-on-built-in "No es pot eliminar l'etiqueta del \"{1}\" integrat." + :class.validation/cant-set-tag-built-in "No es pot establir l'etiqueta amb #{1} integrat." + :class.validation/duplicate "L'etiqueta '{1}' ja existeix." + :class.validation/extends-cycle "Cicle detectat en la relació d'herència." + :class.validation/invalid-extends-type "Tipus d'herència no vàlid." + :class.validation/parents-must-be-tags "Els pares d'etiquetes han de ser etiquetes." + :class.validation/tag-with-non-tag "No es pot establir una etiqueta amb una pàgina integrada que no sigui una etiqueta \"{1}\"." + + :cmdk.action/apply-theme "Aplica el tema" + :cmdk.action/copy-ref "Copiar referència" + :cmdk.action/create "Crear" + :cmdk.action/filter "Filtrar" + :cmdk.action/open "Obrir" + :cmdk.action/open-in-sidebar "Obrir a la barra lateral" + :cmdk.action/search "Cercar" + :cmdk.action/trigger "Executar" + + :cmdk.create/configure-tag "Configurar etiqueta" + :cmdk.create/page "Crear pàgina" + :cmdk.create/tag "Crear etiqueta" + + :cmdk.error/no-block-link "Aquest bloc no conté enllaços." + :cmdk.error/no-page-link "Aquesta pàgina no conté enllaços." + :cmdk.error/no-search-item-link "Aquest resultat de cerca no conté enllaços." + + :cmdk.filter/add "Afegir filtre" + :cmdk.filter/codes "Només codi" + :cmdk.filter/commands "Només ordres" + :cmdk.filter/current-page "Només pàgina actual" + :cmdk.filter/files "Només fitxers" + :cmdk.filter/nodes "Només nodes" + :cmdk.filter/only-label "Només cerca:" + :cmdk.filter/themes "Només temes" + + :cmdk.group/codes "Codi" + :cmdk.group/commands "Ordres" + :cmdk.group/create "Crear" + :cmdk.group/current-page "Pàgina actual" + :cmdk.group/files "Fitxers" + :cmdk.group/filters "Filtres" + :cmdk.group/nodes "Nodes" + :cmdk.group/recently-updated "Actualitzats recentment" + :cmdk.group/themes "Temes" + + :cmdk.info/configure-tag "Configurar #{1}" + :cmdk.info/create-page "Crear la pàgina '{1}'" + :cmdk.info/create-tag "Crear l'etiqueta '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Afegir filtre de graf" + :cmdk.input/default-placeholder "Què esteu buscant?" + :cmdk.input/move-blocks-placeholder "Moure blocs" + :cmdk.input/type-page-name-placeholder "Escriviu el nom de la pàgina" + + :cmdk.tip/clear-filter "Prem {1} per esborrar el filtre de cerca" + :cmdk.tip/filter-results "Prem {1} per filtrar els resultats de cerca" + :cmdk.tip/label "Consell:" + :cmdk.tip/open-sidebar "Prem {1} per obrir la cerca a la barra lateral" + + :collaboration/email-address "Adreça electrònica" + :collaboration/invite "Convidar" + :collaboration/members "Membres:" + :collaboration/remove-access "Eliminar accés" + :collaboration/remove-access-error "Error en eliminar el membre" + + :color/blue "Blau" + :color/crimson "Carmesí" + :color/cyan "Cian" + :color/grass "Verd herba" + :color/gray "Gris" + :color/green "Verd" + :color/indigo "Índigo" + :color/orange "Taronja" + :color/pink "Rosa" + :color/plum "Pruna" + :color/purple "Púrpura" + :color/red "Vermell" + :color/teal "Verd blavós" + :color/tomato "Tomàquet" + :color/violet "Violeta" + :color/yellow "Groc" + + :command.auto-complete/complete "Auto-completar: Escollir elements seleccionats" + :command.auto-complete/meta-complete "Autocompletar Meta" + :command.auto-complete/next "Auto-completar: Seleccionar següent element" + :command.auto-complete/prev "Auto-completar: Seleccionar element anterior" + :command.auto-complete/shift-complete "Auto-completar: Obrir element seleccionat al panell lateral" + + :command.command-palette/toggle "Alternar paleta d'ordres" + + :command.editor/add-property "Afegir propietat" + :command.editor/add-property-deadline "Afegir termini" + :command.editor/add-property-icon "Afegir icona" + :command.editor/add-property-priority "Afegir prioritat" + :command.editor/add-property-status "Afegir estat" + :command.editor/add-reaction "Afegir reacció" + :command.editor/backspace "Retrocedir / Eliminar endarrere" + :command.editor/backward-kill-word "Esborrar paraula anterior" + :command.editor/backward-word "Moure cursor una paraula endarrere" + :command.editor/beginning-of-block "Moure cursor al inici del bloc" + :command.editor/bold "Negreta" + :command.editor/clear-block "Esborrar el contingut del bloc" + :command.editor/collapse-block-children "Col·lapsar" + :command.editor/copy "Copiar" + :command.editor/copy-embed "Copiar bloc per incrustar" + :command.editor/copy-page-url "Copiar URL de la pàgina" + :command.editor/copy-text "Copiar selecció com text" + :command.editor/cut "Enganxar" + :command.editor/cycle-todo "Rotar estat TODO del element" + :command.editor/delete "Suprimir / Eliminar endavant" + :command.editor/delete-selection "Eliminar blocs seleccionats" + :command.editor/down "Moure cursor avall / Seleccionar avall" + :command.editor/end-of-block "Moure cursor al final del bloc" + :command.editor/escape-editing "Sortir de edició" + :command.editor/expand-block-children "Expandir" + :command.editor/follow-link "Seguir enllaç sota el cursor" + :command.editor/forward-kill-word "Esborrar paraula següent" + :command.editor/forward-word "Moure cursor una paraula endavant" + :command.editor/highlight "Ressaltat" + :command.editor/indent "Augmentar sagnat" + :command.editor/insert-link "Enllaç HTML" + :command.editor/insert-youtube-timestamp "Inserir marca de temps de YouTube" + :command.editor/italics "Cursiva" + :command.editor/jump "Anar a" + :command.editor/kill-line-after "Esborrar línia posterior al cursor" + :command.editor/kill-line-before "Esborrar línia anterior al cursor" + :command.editor/left "Moure cursor a l'esquerra / Obrir bloc seleccionat al inici" + :command.editor/move-block-down "Moure bloc avall" + :command.editor/move-block-up "Moure bloc amunt" + :command.editor/move-blocks "Moure blocs" + :command.editor/new-block "Crear bloc nou" + :command.editor/new-line "Nova línia al bloc" + :command.editor/open-edit "Editar bloc seleccionat" + :command.editor/open-link-in-sidebar "Obrir enllaç al panell lateral" + :command.editor/open-selected-blocks-in-sidebar "Obrir blocs seleccionats a la barra lateral" + :command.editor/outdent "Disminuir indentació" + :command.editor/paste-text-in-one-block-at-point "Enganxar text en un bloc al punt" + :command.editor/quick-add "Addició ràpida" + :command.editor/redo "Refer" + :command.editor/right "Moure cursor a la dreta / Obrir bloc seleccionat al final" + :command.editor/select-all-blocks "Seleccionar tots els blocs" + :command.editor/select-block-down "Seleccionar bloc de sota" + :command.editor/select-block-up "Seleccionar bloc de sobre" + :command.editor/select-down "Seleccionar el contingut a continuació" + :command.editor/select-parent "Seleccionar bloc pare" + :command.editor/select-up "Seleccionar contingut anterior" + :command.editor/set-tags "Definir etiquetes" + :command.editor/strike-through "Ratllat" + :command.editor/toggle-block-children "Mostrar/amagar fills del bloc" + :command.editor/toggle-display-hidden-properties "Mostrar/amagar propietats amagades" + :command.editor/toggle-number-list "Alternar llista numerada" + :command.editor/toggle-open-blocks "Alternar blocs oberts, (col·lapsar o expandir tots)" + :command.editor/undo "Desfer" + :command.editor/up "Moure cursor amunt / Seleccionar amunt" + :command.editor/zoom-in "Apropar / Endavant" + :command.editor/zoom-out "Allunyar / Enrere" + + :command.go/all-graphs "Anar a tots els grafs" + :command.go/all-pages "Anar a totes les pàgines" + :command.go/backward "Enrere" + :command.go/electron-find-in-page "Trobar text a la pàgina" + :command.go/electron-jump-to-the-next "Saltar a la següent coincidència de la cerca" + :command.go/electron-jump-to-the-previous "Saltar a la coincidència anterior de la cerca" + :command.go/flashcards "Alternar targetes de memorització" + :command.go/forward "Endavant" + :command.go/graph-view "Anar a la vista de grafs" + :command.go/home "Anar a la pàgina d'inici" + :command.go/journals "Anar al diari" + :command.go/keyboard-shortcuts "Anar a dreceres de teclat" + :command.go/next-journal "Anar al següent diari" + :command.go/prev-journal "Anar al diari anterior" + :command.go/search "Cercar al graf" + :command.go/search-in-page "Cercar a la pàgina" + :command.go/search-themes "Cercar temes" + :command.go/tomorrow "Anar a demà" + + :command.graph/add "Afegir un graf" + :command.graph/db-add "Afegir a la base de dades" + :command.graph/db-save "Desar base de dades" + :command.graph/export-as-html "Exportar un graf públic com html " + :command.graph/open "Seleccionar graf a obrir" + :command.graph/remove "Eliminar un graf" + + :command.misc/copy "Copiar" + :command.misc/export-block-data "Exportar dades del bloc" + :command.misc/export-graph-ontology-data "Exportar dades de l'ontologia del graf" + :command.misc/export-page-data "Exportar dades de la pàgina" + :command.misc/import-edn-data "Importar dades EDN" + + :command.page/toggle-favorite "Afegir/Eliminar de favorits" + + :command.pdf/close "PDF: Tancar document pdf actual" + :command.pdf/find "PDF: Cercar text en el document pdf actual" + :command.pdf/next-page "PDF: Pàgina següent del document pdf actual" + :command.pdf/previous-page "PDF: Pàgina anterior del document pdf actual" + + :command.publish/open-dialog "Obrir diàleg de publicació" + + :command.search/re-index "Reconstruir índex de cerca" + + :command.shell/run "Executar ordre git" + + :command.sidebar/clear "Tancar tot al panell lateral dret" + :command.sidebar/close-top "Tancar l'element superior del panell lateral dret" + :command.sidebar/open-today-page "Obrir diari al panell lateral dret" + + :command.ui/clear-all-notifications "Esborrar totes les notificacions" + :command.ui/customize-appearance "Personalitzar aparença" + :command.ui/goto-plugins "Anar al panell d'extensions" + :command.ui/highlight-recent-blocks "Ressaltar blocs recents" + :command.ui/install-plugin-from-github "Instal·lar connector de GitHub" + :command.ui/install-plugins-from-file "Instal·lar extensions de plugins.edn" + :command.ui/select-theme-color "Seleccionar temes de colors disponibles" + :command.ui/toggle-brackets "Alternar claudàtors" + :command.ui/toggle-contents "Alternar contingut al panell lateral" + :command.ui/toggle-document-mode "Alternar mode document" + :command.ui/toggle-help "Alternar ajuda" + :command.ui/toggle-left-sidebar "Alternar panell lateral esquerra" + :command.ui/toggle-right-sidebar "Alternar panell lateral dret" + :command.ui/toggle-settings "Alternar Opcions" + :command.ui/toggle-theme "Alternar entre tema clar/fosc" + :command.ui/toggle-wide-mode "Alternar mode ample" + + :command.window/close "Tancar finestra" + + :context-menu/developer-tools "Eines de desenvolupament" + :context-menu/make-a-flashcard "Crear flashcard" + :context-menu/set-icon "Definir icona" + :context-menu/toggle-number-list "Alternar llista numerada" + + :date/invalid-date-warning "{1} no és una data vàlida. Si us plau, torna-ho a provar" + + :date.nlp/last-friday "Divendres passat" + :date.nlp/last-monday "Dilluns passat" + :date.nlp/last-month "Mes passat" + :date.nlp/last-saturday "Dissabte passat" + :date.nlp/last-sunday "Diumenge passat" + :date.nlp/last-thursday "Dijous passat" + :date.nlp/last-tuesday "Dimarts passat" + :date.nlp/last-wednesday "Dimecres passat" + :date.nlp/last-week "Setmana passada" + :date.nlp/last-year "Any passat" + :date.nlp/next-friday "Divendres que ve" + :date.nlp/next-monday "Dilluns que ve" + :date.nlp/next-month "Proper mes" + :date.nlp/next-saturday "Dissabte que ve" + :date.nlp/next-sunday "Diumenge que ve" + :date.nlp/next-thursday "Dijous que ve" + :date.nlp/next-tuesday "Dimarts que ve" + :date.nlp/next-wednesday "Dimecres que ve" + :date.nlp/next-week "Propera setmana" + :date.nlp/next-year "Proper any" + :date.nlp/this-friday "Aquest divendres" + :date.nlp/this-monday "Aquest dilluns" + :date.nlp/this-month "Aquest mes" + :date.nlp/this-saturday "Aquest dissabte" + :date.nlp/this-sunday "Aquest diumenge" + :date.nlp/this-thursday "Aquest dijous" + :date.nlp/this-tuesday "Aquest dimarts" + :date.nlp/this-wednesday "Aquest dimecres" + :date.nlp/this-week "Aquesta setmana" + :date.nlp/this-year "Aquest any" + :date.nlp/today "Avui" + :date.nlp/tomorrow "Demà" + :date.nlp/yesterday "Ahir" + + :deeplink/open-block-error "No s'ha pogut obrir l'enllaç. L'ID del bloc `{1}` no existeix al graf actual." + :deeplink/open-graph-error "No s'ha pogut obrir el graf. El graf `{1}` no existeix." + :deeplink/open-page-error "No s'ha pogut obrir l'enllaç. La pàgina `{1}` no existeix al graf actual." + + :editor/add-content-first-warning "Afegiu primer algun contingut." + :editor/auto-heading "Títol automàtic" + :editor/block-search "Cercar un bloc" + :editor/click-to-edit "Clic per editar" + :editor/code-language-placeholder "Seleccionar idioma" + :editor/collapse-block-children "Replegar fills del bloc" + :editor/cut "Tallar" + :editor/cycle-todo "Alternar TODO" + :editor/delete-selection "Eliminar selecció" + :editor/display-tag-inline-hint "per mostrar aquesta etiqueta en línia en lloc del final d'aquest node." + :editor/expand-block-children "Expandir fills del bloc" + :editor/heading "Títol {1}" + :editor/moving-blocks-count "S'estan movent {1} blocs" + :editor/new-page "Nova pàgina" + :editor/new-tag "Nova etiqueta" + :editor/no-block-selected-warning "Cap bloc seleccionat" + :editor/paste "Enganxar" + :editor/reference-node-use-page-ref "Per referenciar un node, utilitzeu `[[]]`." + :editor/remove-heading "Eliminar títol" + :editor/search-for-node "Cerca un node" + :editor/search-for-tag "Cerca una etiqueta" + :editor/search-template-placeholder "Cercar una plantilla" + :editor/template-insert-error "Error en inserir plantilla: {1}" + + :editor.document-mode/new-block-hint "{1} per crear un bloc nou" + :editor.document-mode/title "Mode document" + :editor.document-mode/toggle-desc "Feu clic a `D` o escriviu {1} per alternar el mode document" + + :editor.quick-add/add-to-today "Afegeix a la pàgina d'avui" + :editor.quick-add/title "Addició ràpida" + + :editor.slash/advanced-query "Consulta avançada" + :editor.slash/advanced-query-desc "Crear un bloc de consulta avançada" + :editor.slash/calculator "Calculadora" + :editor.slash/calculator-desc "Inserir una calculadora" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Bloc de codi" + :editor.slash/code-block-desc "Inserir bloc de codi" + :editor.slash/current-time "Hora actual" + :editor.slash/current-time-desc "Inserir l'hora actual" + :editor.slash/date-picker "Selector de data" + :editor.slash/date-picker-desc "Seleccionar una data i inserir-la aquí" + :editor.slash/embed-html "Incrustar HTML" + :editor.slash/embed-twitter-tweet "Incrustar tweet de Twitter" + :editor.slash/embed-video-url "Incrustar URL de vídeo" + :editor.slash/embed-youtube-timestamp "Incrustar timestamp de YouTube" + :editor.slash/group-advanced "AVANÇAT" + :editor.slash/group-basic "BÀSIC" + :editor.slash/group-format "FORMAT" + :editor.slash/group-heading "Capçalera" + :editor.slash/group-list-type "TIPUS DE LLISTA" + :editor.slash/group-plugins "COMPLEMENTS" + :editor.slash/group-priority "PRIORITAT" + :editor.slash/group-task-date "DATA DE LA TASCA" + :editor.slash/group-task-status "ESTAT DE LA TASCA" + :editor.slash/group-time-and-date "HORA I DATA" + :editor.slash/heading-label "Capçalera {1}" + :editor.slash/image-link "Enllaç d'imatge" + :editor.slash/image-link-desc "Crear un enllaç HTTP a una imatge" + :editor.slash/link-desc "Crear un enllaç HTTP" + :editor.slash/math-block "Bloc matemàtic" + :editor.slash/math-block-desc "Crear un bloc LaTeX" + :editor.slash/no-priority "Sense prioritat" + :editor.slash/node-embed "Incrustació de node" + :editor.slash/node-embed-desc "Incrustar un node aquí" + :editor.slash/node-reference "Referència de node" + :editor.slash/node-reference-desc "Crear un enllaç cap a un node (una pàgina o un bloc)" + :editor.slash/normal-text "Text normal" + :editor.slash/normal-text-desc "Netejar capçalera i establir com a text normal" + :editor.slash/number-children "Fills numerats" + :editor.slash/number-list "Llista numerada" + :editor.slash/priority-desc "Establir prioritat a {1}" + :editor.slash/priority-label "Prioritat {1}" + :editor.slash/query-function "Funció de consulta" + :editor.slash/query-function-desc "Crear una funció de consulta" + :editor.slash/quote-desc "Crear un bloc de cita" + :editor.slash/status-desc "Establir estat a {1}" + :editor.slash/template-desc "Inserir una plantilla creada aquí" + :editor.slash/today-desc "Inserir la data d'avui" + :editor.slash/tomorrow-desc "Inserir la data de demà" + :editor.slash/underline "Subratllat" + :editor.slash/underline-desc "Crear una decoració de text subratllada" + :editor.slash/upload-asset "Enviar un arxiu" + :editor.slash/upload-asset-desc "Enviar tipus d'arxiu com imatge, PDF, DOCX, etc." + :editor.slash/yesterday-desc "Inserir la data d'ahir" + + :electron/about "Quant a Logseq" + :electron/add-to-dictionary "Afegir al diccionari" + :electron/block-not-exist "No s'ha pogut obrir l'enllaç. L'identificador del bloc `{1}` no existeix al graf." + :electron/cancel "Cancel·lar" + :electron/copy-image "Copiar imatge" + :electron/link-open-confirm "Esteu segur que voleu obrir aquest enllaç?\n{1}" + :electron/link-open-failed-missing-graph "No s'ha pogut obrir l'enllaç. Graf absent." + :electron/link-open-failed-no-graph "No s'ha pogut obrir l'enllaç. No s'ha pogut relacionar l'identificador de graf `{1}` amb cap graf enllaçat." + :electron/link-open-failed-no-target "No s'ha pogut obrir l'enllaç. No s'ha pogut relacionar `{1}` amb cap destinació." + :electron/look-up "Cercar la selecció" + :electron/main-exception "[Excepció del procés principal]\n{1}\n{2}" + :electron/new-window "Nova finestra" + :electron/official-docs "Documentació oficial" + :electron/ok "D'acord" + :electron/open-dir-error "No s'ha pogut obrir el directori: {1}" + :electron/save-image "Desar imatge" + :electron/save-image-as "Desar imatge com a" + :electron/search-with-google "Cercar a Google" + :electron/unimplemented-callback "Acció x-callback-url no implementada: `{1}`." + :electron/version "Versió {1}" + :electron/write-file-error "No s'ha pogut escriure al fitxer {1}, {2}." + :electron/write-file-error-with-backup "No s'ha pogut escriure al fitxer {1}, {2}. S'ha desat un fitxer de còpia de seguretat a {3}." + + :encryption/cloud-password-rich (fn [] ["Si perdeu la contrasenya, no es podrà desxifrar cap de les dades que tingueu al núvol. " [:span "Tot i així, encara podreu accedir a la versió local del vostre gràfic."]]) + :encryption/current-password "Contrasenya actual" + :encryption/enter-password "Introduïu la contrasenya" + :encryption/enter-password-again "Introduïu la contrasenya de nou" + :encryption/enter-password-title "Introduïu la contrasenya" + :encryption/failed-to-force-reset-password "Error en el restabliment forçat de la contrasenya" + :encryption/failed-to-update-password "Error en actualitzar la contrasenya" + :encryption/fetch-key-pair-error "S'està obtenint l'err de parell de claus rsa de l'usuari: {1}" + :encryption/fetching-key-pair "Obtenint parell de claus" + :encryption/force-reset-password "Restablir contrasenya forçosament" + :encryption/force-reset-password-successfully "Contrasenya restablida forçosament" + :encryption/force-resetting-password "Restabliment forçat en curs" + :encryption/forgot-password-question "Heu oblidat la contrasenya?" + :encryption/forgot-password-warning "Si oblideu la contrasenya, les dades encriptades no es podran recuperar." + :encryption/init-key-pair "Inicialitzar parell de claus" + :encryption/init-key-pair-error "Error de parell de claus d'inici: {1}" + :encryption/password-not-matched "Les contrasenyes no coincideixen" + :encryption/password-updated-successfully "Contrasenya actualitzada" + :encryption/remember-password-rich (fn [] [[:span "Assegureu-vos de "] "recordar la contrasenya que heu definit, perquè no la podrem restablir ni recuperar si l'oblideu, " [:span "i us recomanem "] "guardar-ne una còpia de seguretat segura."]) + :encryption/reset-password "Restablir contrasenya" + :encryption/set-new-password "Definir nova contrasenya" + :encryption/set-password-title "Definir contrasenya" + :encryption/updating-password "Actualitzant contrasenya" + :encryption/wrong-password "Contrasenya incorrecta" + + :export/backup-successful "Còpia de seguretat realitzada!" + :export/block-data-copied "Dades del bloc copiades al porta-retalls" + :export/collecting-assets "Recollint recursos" + :export/copied-to-clipboard "Copiat al porta-retalls!" + :export/copy-or-export-as "Copiar / Exportar com..." + :export/creating-zip "Creant zip" + :export/db-backup-error "Error en la còpia de seguretat de la base de dades." + :export/db-edn "Exportar com a fitxer EDN" + :export/debug-transit-desc "Exporta a un fitxer .transit per enviar-nos per a depuració. Les dades sensibles s'eliminaran del fitxer exportat." + :export/debug-transit-file "Exportar fitxer de depuració transit" + :export/edn-desc "Exporta a un fitxer .edn llegible i editable. No confieu en això com a còpia de seguretat principal." + :export/error-unexpected "S'ha produït un error inesperat durant l'exportació. Consulta la consola de JavaScript per a més detalls." + :export/exporting "Exportant" + :export/finalizing "Finalitzant" + :export/format-text "Text" + :export/graph "Exportar graf" + :export/graph-ontology-data-copied "Dades de l'ontologia del graf copiades al porta-retalls" + :export/indent-style-dashes "guions" + :export/indent-style-label "Estil de sagnat:" + :export/indent-style-none "sense sagnat" + :export/indent-style-spaces "espais" + :export/level-lte "nivell <=" + :export/markdown "Exportar com a Markdown estàndard (sense propietats de bloc)" + :export/newline-after-block "salt de línia després del bloc" + :export/no-updates-since-last-export "Sense actualitzacions des de la darrera exportació." + :export/open-blocks-only "només blocs oberts (omet els fills replegats)" + :export/page "Exportar pàgina" + :export/page-data-copied "Dades de la pàgina copiades al porta-retalls" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Preparant zip" + :export/preview-alt "previsualització de l'exportació" + :export/public-pages "Exportar pàgines públiques" + :export/remove-emphasis "elimina l'èmfasi" + :export/remove-properties "elimina propietats" + :export/remove-tags "elimina #etiquetes" + :export/save-to-file "Desar a fitxer" + :export/sqlite-db "Exportar base de dades SQLite" + :export/title "Exportar" + :export/transparent-background "Fons transparent" + :export/view-nodes-data-copied "Dades dels nodes de la visualització copiades al porta-retalls" + :export/zip "Exportar base de dades SQLite i recursos" + :export/zip-error "Error en l'exportació del ZIP." + + :export.backup/backup-now "Fer còpia de seguretat ara" + :export.backup/cancel "Cancel·lar còpia de seguretat" + :export.backup/enabled-desc "Les còpies de seguretat horàries estan activades per a aquest graf, {1}." + :export.backup/folder "Carpeta de còpies de seguretat:" + :export.backup/hourly-note "Es crearà una còpia de seguretat cada hora." + :export.backup/open-folder "obrir la carpeta de còpies de seguretat d'aquest graf" + :export.backup/schedule "Programar còpia de seguretat" + :export.backup/set-folder-first "Establiu primer la carpeta de còpies de seguretat" + :export.backup/sqlite-desc "Manera principal de fer còpia de seguretat del contingut del graf en un sol fitxer .sqlite." + :export.backup/unsupported-desc "El vostre navegador no és compatible amb {{The File System Access API}}, canvieu a un navegador basat en Chromium." + :export.backup/zip-desc "Manera principal de fer còpia de seguretat del contingut i els recursos del graf en un fitxer .zip." + + :file/config-duplicate-keys "El fitxer '{1}' té claus duplicades. La clau '{2}' s'assigna diverses vegades." + :file/config-invalid "El fitxer de configuració no és vàlid" + :file/format-not-supported "Format .{1} no suportat." + :file/label "Fitxer" + :file/last-modified-at "Data de modificació" + :file/name "Nom del arxiu" + :file/no-data "No hi ha dades" + :file/title "Fitxer {1}" + + :file.config/deprecation-title "El fitxer {1} té les següents deprecacions:" + :file.config/error-title "El fitxer {1} té els següents errors:" + :file.config/invalid-desc "Assegureu-vos que la configuració està envoltada en {}." + :file.config/invalid-title "El fitxer {1} no és vàlid." + :file.config/read-failed-desc "Assegureu-vos que la vostra configuració està envoltada en {}. Assegureu-vos també que els caràcters '( { [' tenen els seus caràcters de tancament corresponents ') } ]'." + :file.config/read-failed-title "Error al llegir el fitxer {1}" + + :flashcard/add-query "Afegir nova consulta" + :flashcard/all-cards "Totes les targetes" + :flashcard/select-cards "Seleccionar targetes" + :flashcard/shortcut-tooltip "Drecera: {1}" + + :flashcard.empty/desc "Pots afegir \"{1}\" a qualsevol bloc per convertir-lo en una targeta o activar \"/cloze\" per afegir-hi alguns clozes." + :flashcard.empty/title "Benvingut als Flashcards" + + :flashcard.rating/again "De nou" + :flashcard.rating/again-desc "Hem respost malament. Això vol dir automàticament que hem oblidat la targeta. És un lapsus de memòria。" + :flashcard.rating/easy "Fàcil" + :flashcard.rating/easy-desc "La resposta era correcta i l'hem recordada ràpidament i amb confiança, sense esforç mental。" + :flashcard.rating/good "Bé" + :flashcard.rating/good-desc "La resposta era correcta, però ha calgut una mica d'esforç mental per recordar-la。" + :flashcard.rating/hard "Difícil" + :flashcard.rating/hard-desc "La resposta era correcta, però no n'estàvem segurs o vam trigar massa a recordar-la." + + :flashcard.review/finished "Acabat! 💯" + :flashcard.review/hide-answers "Amagar respostes" + :flashcard.review/show-answers "Mostrar respostes" + :flashcard.review/show-clozes "Mostrar buits" + + :format/bold "Negreta" + :format/code "Codi" + :format/highlight "Ressaltar" + :format/italics "Cursiva" + :format/strikethrough "Ratllat" + + :graph/all-graphs "Tots els grafs" + :graph/already-exists-error "El graf '{1}' ja existeix. Proveu amb un altre nom." + :graph/as-png "com a PNG" + :graph/built-in-pages "Pàgines integrades" + :graph/charge-range "Abast de càrrega" + :graph/charge-strength "Força de càrrega" + :graph/click-to-search "Feu clic per cercar" + :graph/create-db "Crea un graf de BD" + :graph/create-error "Error en crear el graf" + :graph/create-new "Crear un graf nou" + :graph/created-before "Creat abans de" + :graph/creating "S'està creant el graf" + :graph/delete-local-action "Suprimeix el graf local" + :graph/delete-local-confirm-desc "Esteu segur que voleu eliminar permanentment el gràfic \"{1}\" de Logseq?" + :graph/delete-server-action "Suprimeix del servidor" + :graph/delete-server-confirm-desc "Esteu segur que voleu eliminar permanentment el gràfic \"{1}\" del nostre servidor?" + :graph/delete-warning "⚠️ Tingueu en compte que no podem recuperar aquest gràfic després de ser eliminat. Assegureu-vos que teniu còpies de seguretat abans de suprimir-lo." + :graph/diff "Git diff" + :graph/downloading "descarregant" + :graph/encrypt-data-label "Xifra les dades del graf" + :graph/excluded-pages "Pàgines excloses" + :graph/forces "Forces" + :graph/gc-success "Neteja del graf realitzada correctament!" + :graph/last-opened-at-label "Últim cop obert: {1}" + :graph/leave-action "Surt d'aquest graf" + :graph/leave-confirm-desc "Esteu segur que voleu abandonar aquest gràfic?" + :graph/leave-error "Error en sortir del graf" + :graph/left "Graf abandonat" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "enllaç" "enllaços"))) + :graph/link-distance "Distància d'enllaç" + :graph/local-graphs "Grafs locals" + :graph/n-hops-from-selected-nodes "N salts des dels nodes seleccionats" + :graph/name-placeholder "el nom del vostre graf" + :graph/nodes "Nodes" + :graph/orphan-pages "Pàgines òrfenes" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "pàgina" "pàgines"))) + :graph/pause-simulation "Pausar simulació" + :graph/preparing "preparant" + :graph/refresh-remote-graphs "Actualitzar grafs remots" + :graph/remote-graphs "Grafs remots" + :graph/removed "S'ha eliminat el gràfic \"{1}\"" + :graph/removed-and-redirecting "S'ha eliminat el gràfic \"{1}\". S'està redirigint al gràfic \"{2}\"" + :graph/removed-from-sync "Graf eliminat de la sincronització" + :graph/reset "Restablir graf" + :graph/reset-forces "Restablir forces" + :graph/search "Cercar" + :graph/shared-graphs "Grafs compartits" + :graph/updated-switching "Graf actualitzat. Canviant..." + :graph/use-sync-beta "Utilitza Logseq Sync (beta)" + :graph/use-sync-label "Utilitza Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "No s'han pogut calcular els diagnòstics de suma de comprovació del graf." + :graph.diagnostics/checksum-recomputed-success "S'ha recalculat la suma de comprovació. Recalculada: {1}, local: {2}, remota: {3}. S'ha baixat {4}.edn amb {5} blocs i atributs de suma de comprovació {6}." + :graph.diagnostics/checksum-unavailable-warning "No s'han pogut calcular els diagnòstics de suma de comprovació del graf actual." + :graph.diagnostics/client-ops-export-failed-error "No s'ha pogut exportar Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "L'exportació de Client ops SQLite ha fallat: tipus de càrrega no vàlid {1}." + :graph.diagnostics/client-ops-export-success "S'ha exportat Client ops SQLite: {1}.sqlite" + :graph.diagnostics/no-graph-warning "No s'ha trobat cap graf." + + :graph.page/show-journals "Mostrar Diaris" + :graph.page/title "Graf de pàgina" + + :graph.switch/add-graph-action "Si, afegir un altre graf" + :graph.switch/empty-desc "No trobem un graf. Vol afegir-ne un?" + :graph.switch/prompt "Canviar" + :graph.switch/select-prompt "Seleccioni un graf" + + :graph.validation/config-arweave-gateway-warning "ja no és compatible." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "ja no és compatible. Si us plau, utilitza '/' i informa dels errors." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "no s'utilitza en gràfics DB ja que només hi ha mode markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "La validació ha detectat {1} bloc(s) no vàlid(s). Aquests blocs poden tenir errors. S'intenta corregir els blocs no vàlids. Executa de nou la validació per veure si han estat corregits." + :graph.validation/name-reserved-characters-warning "El nom del graf no pot contenir els caràcters reservats següents:" + :graph.validation/reserved-character-asterisk "asterisc" + :graph.validation/reserved-character-backslash "barra invertida" + :graph.validation/reserved-character-colon "dos punts" + :graph.validation/reserved-character-double-quote "cometes dobles" + :graph.validation/reserved-character-forward-slash "barra" + :graph.validation/reserved-character-greater-than "més gran que" + :graph.validation/reserved-character-hash "coixinet" + :graph.validation/reserved-character-less-than "més petit que" + :graph.validation/reserved-character-pipe "barra vertical o pipe" + :graph.validation/reserved-character-plus "més" + :graph.validation/reserved-character-question-mark "signe d'interrogació" + :graph.validation/valid "El vostre gràfic és vàlid! {1}" + + :header/go-back "Enrere" + :header/go-forward "Endavant" + :header/highlight-recent-blocks "Ressalta els blocs recents" + :header/highlight-recent-blocks-days-ago "Ressalta els blocs recents: fa {1} dies" + :header/more "Més" + :header/quit-highlight-recent-blocks "Deixar de ressaltar els blocs recents" + :header/toggle-left-sidebar "Alternar barra lateral esquerra" + + :help/about "Sobre Logseq" + :help/about-title "Quant a" + :help/ask-community "Preguntar a la comunitat" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Referència de bloc" + :help/blog "Blog de Logseq" + :help/bug "Informar d'un error a GitHub" + :help/changelog "Registre de canvis" + :help/community-title "Comunitat" + :help/context-menu "Menú contextual" + :help/context-menu-action "Clic dret al punt" + :help/development-title "Desenvolupament" + :help/docs "Documentació" + :help/feature "Sol·licitud de funcionalitat" + :help/forum-community "Comunitat del fòrum" + :help/handbook "Manual" + :help/learn-more "Més informació" + :help/markdown-syntax "Sintaxi de Markdown" + :help/open-link-in-sidebar "Obrir enllaç al panell lateral" + :help/open-link-in-sidebar-action "Maj + clic a la referència" + :help/privacy "Política de privacitat" + :help/reference-autocomplete "Referència de pàgina" + :help/release-notes "Notes de la versió" + :help/roadmap "Full de ruta" + :help/search "Cerca" + :help/slash-autocomplete "Autocompletat de barra '/'" + :help/start "Començar" + :help/submit-feedback "Enviar comentaris" + :help/support-forum "Fòrum de suport" + :help/terms "Termes" + :help/terms-title "Termes" + :help/usage-title "Ús" + + :help.handbook/chat-on-discord "Xatejar a Discord" + :help.handbook/chat-on-discord-desc "Feu preguntes ràpides, coneixeu altres usuaris i apreneu nous fluxos de treball." + :help.handbook/copy-topic-link "Copiar l'enllaç del tema" + :help.handbook/current-chapter "Capítol actual" + :help.handbook/help-categories "Categories d'ajuda" + :help.handbook/home "Inici" + :help.handbook/link-copied "Enllaç del manual copiat!" + :help.handbook/monthly-posts "publicacions mensuals" + :help.handbook/next-chapter "Capítol següent" + :help.handbook/popular-topics "Temes populars" + :help.handbook/prev-chapter "Capítol anterior" + :help.handbook/resources-from "Recursos de {1}" + :help.handbook/search-placeholder "Cerca" + :help.handbook/shortcuts-count "{1} dreceres" + :help.handbook/sync "Sincronització" + :help.handbook/title "Manual" + :help.handbook/topics "Temes" + :help.handbook/users-online "usuaris en línia" + :help.handbook/visit-the-forum "Visiteu el fòrum" + :help.handbook/visit-the-forum-desc "Doneu comentaris, sol·liciteu funcions i tingueu converses en profunditat." + :help.handbook/writing-mode "Mode d'escriptura (previsualització amb el temps)" + + :help.shortcuts/desc "Veure dreceres i consells" + :help.shortcuts/label "Dreceres de teclat" + :help.shortcuts/shortcut-column "Drecera" + :help.shortcuts/title "Dreceres de teclat" + :help.shortcuts/triggers "Iniciadors" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Icones ({1})" + :icon/matched-count "Coincidències ({1})" + :icon/search-all "Cerca-ho tot" + :icon/search-emojis "Cerca emojis" + :icon/search-icons "Cerca icones" + :icon/tab-all "Tot" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Icones" + + :import/all-tags "Importar totes les etiquetes" + :import/asset-too-large-warning "S'ha omès copiar el recurs {1} perquè supera el límit de 100 MB." + :import/assets-import-partial "{1}/{2} recursos importats. Detalls a la consola." + :import/assets-imported "{1} recursos importats." + :import/assets-skipped "{1} recursos omesos. Detalls a la consola." + :import/block-icons-cannot-be-imported "Les icones de blocs no es poden importar. Importeu-les manualment al bloc {1}." + :import/cannot-import-block-into-non-block-entity "No es pot importar un bloc en una entitat que no és bloc." + :import/db-edn-desc "Importar l'exportació EDN d'un graf DB a un graf DB nou" + :import/db-edn-title "EDN a graf DB" + :import/debug-transit-desc "Importar fitxer de depuració transit a un graf DB nou" + :import/debug-transit-title "Depuració Transit" + :import/default-db-graph-behavior "Comportament per defecte del graf de base de dades" + :import/empty-graph-name "El nom del graf no pot estar buit." + :import/extract-inline-code-snippets "Extreure fragments de codi inline com a sub-blocs" + :import/file-finished "Importació completada!" + :import/file-to-db-desc "Importar una carpeta de graf Logseq basat en fitxers a un graf DB nou" + :import/file-to-db-title "Fitxer a graf DB" + :import/graph-name-conflict "Ja existeix un graf amb aquest nom. Trieu un altre nom!" + :import/graph-name-placeholder "Nom del graf" + :import/ignored-assets "{1} recursos omesos durant la importació. Detalls a la consola JavaScript." + :import/ignored-files "{1} fitxers omesos durant la importació. Detalls a la consola JavaScript." + :import/ignored-properties "{1} propietats omeses durant la importació" + :import/ignored-properties-fix "Per corregir el tipus de propietat, canvieu el valor al tipus correcte i reimporteu el graf" + :import/invalid-blocks-detected "{1} blocs no vàlids detectats durant la importació. La interacció pot fallar. Detalls a la consola JavaScript." + :import/invalid-edn-file "El fitxer EDN proporcionat no és vàlid. Corregiu-lo i torneu-ho a provar." + :import/loading "Important" + :import/logseq-config-missing "Error d'importació: el graf Logseq no té el fitxer 'logseq/config.edn'." + :import/new-graph-name "Nou nom del graf" + :import/notes "Importar notes existents" + :import/org-files-imported "{1} fitxers Org importats com a Markdown. El suport a fitxers Org s'afegirà més endavant." + :import/page-icons-cannot-be-imported "Les icones de pàgines no es poden importar. Importeu-les manualment a la pàgina {1}." + :import/properties-case-insensitive-commas "Noms de propietats (sense distinció de majúscules, separats per comes)" + :import/property-classes-placeholder "ex. type" + :import/property-import-manually "Aquesta propietat s'ha d'importar manualment" + :import/property-parent-classes-placeholder "ex. parent" + :import/property-type-mismatch "El valor de la propietat és de tipus {1}, no {2}" + :import/property-value-tag-parents "Importar pares d'etiquetes dels valors de propietats" + :import/property-value-tags "Importar etiquetes addicionals dels valors de propietats" + :import/remove-inline-tags "Eliminar etiquetes inline" + :import/select-edn-or-json "Seleccioneu un fitxer EDN o JSON." + :import/specific-tags "Importar etiquetes específiques" + :import/sqlite-and-assets-desc "Importar un zip que contingui db.sqlite i una carpeta de recursos" + :import/sqlite-and-assets-title "SQLite + recursos (.zip)" + :import/submitted-edn-invalid "Les dades EDN enviades no són vàlides! Corregiu-les i torneu-ho a provar." + :import/successful "Importació realitzada correctament!" + :import/tag-classes-placeholder "Etiqueta1, Etiqueta2" + :import/tags-case-insensitive "Etiquetes (sense distinció de majúscules)" + :import/title "Importar" + :import/unexpected-error "Error inesperat: {1}" + :import/zip-import-error "La importació del zip ha fallat: {1}" + :import/zip-missing-db-sqlite "El ZIP no conté db.sqlite" + + :journal/add-blocks-to-today-success "Blocs afegits avui" + :journal/page-cant-convert-warning "Aquesta pàgina no és una pàgina de diari." + :journal/parse-date-to-name-error "Error en analitzar el nom del diari" + + :journal.default-query/doing "EN CURS" + :journal.default-query/todo "PENDENT" + + :keymap/all "Tots" + :keymap/already-bound "Drecera ja en ús" + :keymap/also-used-for-action "També usat per {1}" + :keymap/also-used-for-action-in-context "També usat per {1} En context {2}" + :keymap/clear "Esborrar" + :keymap/clear-keystroke-filter "Netejar filtre de tecles" + :keymap/clear-search "Netejar cerca" + :keymap/custom "Personalitzats" + :keymap/deactivates-chord "Desactiva la drecera" + :keymap/deactivates-chords "Desactiva {1} combinacions de dreceres" + :keymap/disabled "Desactivats" + :keymap/esc-is-reserved "Esc és reservat" + :keymap/hint-cancel "Cancel·lar" + :keymap/hint-close "Tancar" + :keymap/hint-reassign "Reassignar" + :keymap/hint-remove "Eliminar" + :keymap/keystroke-filter "Filtrar per tecla" + :keymap/no-matching-shortcuts "Cap drecera coincident" + :keymap/press-a-shortcut "Premeu una drecera" + :keymap/press-keys-to-filter "Premeu tecles per filtrar" + :keymap/reassign "Reassignar" + :keymap/reassign-tooltip "Reassignar la drecera d'aquesta acció" + :keymap/reassigned-from "Reassignat de {1}" + :keymap/refresh-all "Actualitzar-ho tot" + :keymap/remove-binding "Eliminar assignació" + :keymap/remove-filter "Eliminar filtre" + :keymap/reset "Restablir" + :keymap/reset-to-default "Restablir per defecte" + :keymap/search-by-keys "Cercar per tecles" + :keymap/search-placeholder "Cercar dreceres…" + :keymap/shortcut-added "Drecera afegida" + :keymap/shortcut-removed "Drecera eliminada" + :keymap/toggle-categories-pane "Alternar panell de categories" + :keymap/undo "Desfer" + :keymap/unset "No definit" + :keymap/used-by-action "Usat per {1}" + + :library/add-existing-pages "Afegeix pàgines existents a la Biblioteca" + :library/add-pages "Afegeix pàgines" + :library/title "Biblioteca" + + :mobile/camera-access-denied "L'accés a la càmera està denegat. Habilita-la a Configuració > Logseq." + :mobile/microphone-access-denied "L'accés al micròfon està denegat. Habilita-lo a Configuració > Logseq." + + :mobile.header/actions "Accions" + :mobile.header/create-graph "Crear graf" + :mobile.header/delete-block-confirm-desc "Voleu eliminar aquest bloc?" + :mobile.header/delete-page-confirm-desc "Voleu eliminar aquesta pàgina?" + + :mobile.intent/file-options "Opcions de fitxer" + :mobile.intent/open-with-app "Obrir el fitxer amb la vostra aplicació preferida" + :mobile.intent/select-option-prompt "Seleccioneu una opció a realitzar" + :mobile.intent/share "Compartir" + + :mobile.log/all "Tots" + :mobile.log/errors-only "Només errors" + :mobile.log/full "Complet" + :mobile.log/new-first "Més recents primer" + :mobile.log/old-first "Més antics primer" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Compte" + :mobile.settings/check-log "Veure registre" + :mobile.settings/discord-community "Comunitat Discord" + :mobile.settings/forum "Fòrum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Informar d'un error" + :mobile.settings/revision "Revisió" + :mobile.settings/theme "Tema" + :mobile.settings/version "Versió" + + :mobile.share/file-import-error "Error en importar fitxer compartit" + :mobile.share/media-import-error "Error en importar mitjà compartit" + :mobile.share/unsupported-content-warning "L'anàlisi del contingut compartit actual no és compatible. Informeu dels codis següents a {1}. Ho revisarem aviat." + :mobile.share/unsupported-import-type "La importació de fitxers {1} no és compatible. Podeu informar-ne a {2}. Ho revisarem aviat." + + :mobile.tab/capture "Capturar" + :mobile.tab/go-to "Anar a" + :mobile.tab/graphs "Grafs" + + :mobile.toolbar/audio "Àudio" + :mobile.toolbar/copy-ref "Copiar ref" + :mobile.toolbar/copy-url "Copiar url" + :mobile.toolbar/hide "Amagar" + :mobile.toolbar/indent "Sagnar" + :mobile.toolbar/outdent "Treure sagnat" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Refer" + :mobile.toolbar/reference "Referència" + :mobile.toolbar/slash "Barra" + :mobile.toolbar/tag "Etiqueta" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Desfer" + :mobile.toolbar/unselect "Desseleccionar" + + :nav/all-files "Tots els fitxers" + :nav/all-journals "Tots els diaris" + :nav/appearance "Aparença" + :nav/assets "Recursos" + :nav/cannot-go-to-internal-page "No es pot navegar a la pàgina interna" + :nav/flashcards "Flashcards" + :nav/graph "Graf" + :nav/graph-view "Vista de Graf" + :nav/help "Ajuda" + :nav/home "Inici" + :nav/invalid-jump-error "Salt no vàlid" + :nav/journals "Diaris" + :nav/plugins "Connectors" + :nav/search "Cerca" + :nav/settings "Configuració" + :nav/skip-to-main-content "Anar a contingut principal" + :nav/tasks "Tasques" + :nav/themes "Temes" + + :nav.all-pages/label "Totes les pàgines" + :nav.all-pages/title "Totes les pàgines" + + :node/built-in-cant-delete-error "Els elements integrats no es poden eliminar." + :node/new "Nou node" + + :notification/clear-all "Netejar tot" + :notification/copied "Copiat" + + :onboarding.import/desc "Descripció d'importació" + :onboarding.import/sqlite-desc "Importar des de base de dades SQLite" + :onboarding.import/title "Importar" + + :onboarding.import-option/desc "Podeu importar les vostres dades des d'altres aplicacions" + :onboarding.import-option/title "Importar dades" + + :onboarding.setup/desc "L'espai de treball del vostre coneixement" + :onboarding.setup/title (fn [] ["Benvingut a " [:strong "Logseq!"]]) + + :page/add-to-favorites "Afegir a Preferits" + :page/added-tag-to-node "S'ha afegit l'etiqueta \"{1}\" a \"{2}\"" + :page/backlinks "Backlinks" + :page/clear "Netejar" + :page/clear-local-storage-desc "Això suprimeix preferències menors com la preferència de tema clar/fosc." + :page/cleared "Esborrat" + :page/contents "Contingut" + :page/convert-to-tag "Convertir en etiqueta" + :page/copy-url "Copiar URL de la pàgina" + :page/create "Crea una pàgina nova" + :page/created-at "Creada el" + :page/current-graph-as-sqlite-db "graf actual com a base de dades SQLite" + :page/default-query-error "Error de consulta per defecte:" + :page/delete "Eliminar pàgina" + :page/go-back-home "Tornar a l'inici" + :page/hide-properties "Amagar propietats" + :page/local-storage "emmagatzematge local" + :page/logseq-is-having-a-problem "Logseq està tenint un problema. Per intentar tornar a un estat de treball, intenti el següent procediment en ordre:" + :page/make-private "Fer privada" + :page/make-public "Fer pública al publicar" + :page/moved-to-recycle "El node s'ha mogut a la paperera" + :page/name "Nom de la pàgina" + :page/no-page-found-to-copy "No s'ha trobat cap pàgina per copiar" + :page/not-found "Pàgina no trobada" + :page/not-found-desc "Ups! La pàgina que cerqueu no existeix." + :page/not-found-title "Pàgina no trobada" + :page/not-found-warning "No s'ha trobat cap pàgina" + :page/open-all-graphs-desc "També podeu anar a {{All graphs}} per canviar a un altre graf." + :page/open-issue-desc "Si aquests passos de resolució de problemes no han solucionat el vostre problema, {{open an issue}}." + :page/open-properties "Obrir propietats" + :page/rebuild "Reconstruir" + :page/relaunch "Reiniciar" + :page/relaunch-desc "Tanqueu i torneu a obrir l'aplicació." + :page/scheduled-and-deadline "Programat i data límit" + :page/search-index "índex de cerca" + :page/send-db-for-debugging "Podeu enviar-lo a help@logseq.com per a depuració." + :page/something-went-wrong "Alguna cosa ha sortit malament" + :page/step "Pas {1}" + :page/the-app "l'aplicació" + :page/try "Intentar" + :page/unfavorite "Treure pàgina de preferides" + :page/unknown "Pàgina desconeguda" + :page/updated-at "Actualitzada el" + + :page.convert/block-parent-not-page "No es pot convertir el bloc. El pare no és una pàgina." + :page.convert/cant-be-block "La pàgina \"{1}\" no es pot convertir en un bloc." + :page.convert/cant-be-block-has-children "La pàgina \"{1}\" no es pot convertir en un bloc perquè té una pàgina secundària." + :page.convert/cant-be-block-move-first "La pàgina \"{1}\" no es pot convertir en un bloc, primer moveu-la a una altra pàgina." + :page.convert/page-to-tag-action "Converteix \"{1}\" en etiqueta" + :page.convert/page-to-tag-built-in "Les pàgines integrades no poden ser etiquetes" + :page.convert/page-to-tag-duplicate "Ja existeix una etiqueta amb el nom \"{1}\"." + :page.convert/page-to-tag-namespaced "Les pàgines amb espai de noms no poden ser etiquetes" + :page.convert/property-value-to-page "No es pot convertir el valor de la propietat en pàgina." + :page.convert/tag-to-page-action "Convertir etiqueta en pàgina" + :page.convert/tag-to-page-built-in "Les etiquetes integrades no poden ser pàgines" + :page.convert/tag-to-page-confirm-desc "Convertir una etiqueta en pàgina també n'elimina les propietats i l'etiqueta de tots els nodes que la fan servir. Ho voleu fer?" + :page.convert/tag-to-page-duplicate "Ja existeix una pàgina amb el nom \"{1}\"." + :page.convert/tag-to-page-has-children "L'etiqueta té fills i no es pot convertir" + + :page.delete/batch-confirm-title "Esteu segur que voleu suprimir aquestes pàgines? Les propietats i les etiquetes se suprimiran permanentment i les pàgines es mouran a la Paperera." + :page.delete/confirm-title "Esteu segur que voleu suprimir aquesta pàgina?" + :page.delete/permanent-confirm-title "Esteu segur que voleu suprimir permanentment aquesta pàgina?" + :page.delete/success "La pàgina \"{1}\" s'ha suprimit correctament!" + :page.delete/total "Total: {1}" + :page.delete/warning "S'ha suprimit el contingut d'aquestes pàgines, però no s'han pogut suprimir: {1}. Vegeu la consola javascript per a més detalls." + + :page.validation/cant-set-built-in-tags "La pàgina nova no pot establir etiquetes integrades: {1}" + :page.validation/duplicate "Ja existeix una altra pàgina anomenada \"{1}\" per a les etiquetes: {2}." + :page.validation/name-blank "El nom de la pàgina no pot estar buit." + :page.validation/name-no-hash "El nom de la pàgina no pot contenir #" + :page.validation/name-no-slash "El nom de la pàgina no pot contenir /." + :page.validation/parents-must-be-pages "Els pares de pàgines han de ser pàgines." + + :pdf/annotations-page "Pàgina d'anotacions" + :pdf/area-highlight-shortcut "Ressaltar àrea ({1})" + :pdf/auto-fit "Ajust automàtic" + :pdf/auto-open-context-menu "Obrir menú contextual automàticament" + :pdf/copy-ref "Copiar referència" + :pdf/copy-text "Copiar text" + :pdf/corrupted-file-error "Error: {1}\nAquest fitxer .pdf està malmès?\nConfirmeu-ho amb un visor de PDF extern." + :pdf/doc-metadata "Metadades del document" + :pdf/enter-to-search "Premeu Intro per cercar" + :pdf/find-results "{1} de {2} coincidències (\"{3}\")" + :pdf/generic-error "Error: {1}\n{2}\nConfirmeu-ho amb el recurs del fitxer PDF." + :pdf/highlight-mode "Mode de ressaltat" + :pdf/highlights "Ressaltats" + :pdf/hl-block-colored "Etiqueta de color para ressaltar bloc" + :pdf/linked-ref "Referències vinculades" + :pdf/load-highlights-file-error "Error: no s'ha pogut carregar el fitxer de ressalts: \"{1}\". \n{2}" + :pdf/missing-file-error "Error: {1}\n Aquest és el camí correcte?" + :pdf/more-settings "Més configuració" + :pdf/no-outlines "Sense esquema" + :pdf/not-found "No trobat." + :pdf/open-in-app-window "Obrir a la finestra de l'aplicació" + :pdf/open-in-external-window "Obrir en una finestra externa" + :pdf/outline "Esquema" + :pdf/page-label "Pàgina {1}" + :pdf/password-protected-desc "Aquest document està protegit amb contrasenya. Introduïu una contrasenya:" + :pdf/password-required "Cal contrasenya" + :pdf/search "Cercar" + :pdf/search-placeholder "cercar" + :pdf/toggle-dashed "Estil puntejat per les àrees ressaltades" + :pdf/viewer "visor PDF" + :pdf/zoom-in "Ampliar" + :pdf/zoom-out "Reduir" + + :plugin/all "Tot" + :plugin/auto-update-check "Comprovar actualitzacions automàticament" + :plugin/auto-update-check-feedback "Comprovació automàtica d'actualitzacions: {1}!" + :plugin/check-all-updates "Cercar actualitzacions" + :plugin/check-update "Cercar actualització" + :plugin/checked "Comprovat" + :plugin/checking-for-updates "Comprovant actualitzacions" + :plugin/contribute "✨ Escriure i publicar una nova extensió" + :plugin/custom-js-alert "S'ha trobat l'arxiu custom.js, desitja permetre que s'executi? (Si no entén el contingut d'aquest arxiu es recomana no permetre la seva execució ja que representa certs riscs de seguretat)." + :plugin/date-added "Data d'addició" + :plugin/delete-alert "Està segur de desinstal·lar la extensió [{1}]?" + :plugin/disable-for-performance-feedback "El connector {1} està desactivat." + :plugin/disable-now "Desactivar ara" + :plugin/disabled "Inactiu" + :plugin/does-not-support-db "No és compatible amb grafs DB" + :plugin/downloads "Descàrregues" + :plugin/empty "No s'ha trobat res." + :plugin/enabled "Habilitat" + :plugin/existed-package "Hi havia un paquet de connectors ({1})." + :plugin/fatal-error "Fatal: {1}" + :plugin/found-n-updates "{1} actualitzacions trobades" + :plugin/found-updates "Actualitzacions trobades" + :plugin/install "Instal·lar" + :plugin/install-error "Error en la instal·lació: {1}\n{2}" + :plugin/installed "Instal·lat" + :plugin/installed-plugin "Connector instal·lat: {1}" + :plugin/installing "Instal·lant" + :plugin/invalid-github-repo-url "URL del repositori GitHub no vàlida" + :plugin/invalid-package "Paquet no vàlid" + :plugin/invalid-plugins-edn "plugins.edn no vàlid" + :plugin/list-of-updates "Llista d'actualitzacions" + :plugin/load-from-web-url "Carregar des d'URL web" + :plugin/load-plugin-indicator "Carrega el complement: {1}..." + :plugin/load-unpacked "Carregar extensió desempaquetada" + :plugin/loading-indicator "CARREGANT" + :plugin/malformed-plugins-edn "plugins.edn malformat" + :plugin/marketplace "Catàleg" + :plugin/new-registered "Nou connector registrat" + :plugin/no-settings-schema "No hi ha esquema de configuració!" + :plugin/not-installed "No instal·lat" + :plugin/open-logseq-dir "Obrir carpeta Logseq" + :plugin/open-package "Obrir paquet" + :plugin/open-preferences "Obrir preferències" + :plugin/open-settings "Obrir opcions" + :plugin/perf-tip "Aquest connector {1} triga massa a carregar-se, afecta el temps d'inici de l'aplicació i pot provocar que altres connectors no es carreguin." + :plugin/popular "Popular" + :plugin/proxy-check-success "Èxit! Estat {1} en {2}ms." + :plugin/readme-empty-warning "Sense contingut README" + :plugin/refresh-lists "Actualitzar llistes" + :plugin/reload "Recarregar" + :plugin/remote-error "Error remot: {1}" + :plugin/report-modal-desc "Si algún connector no està disponible o creus que conté codi maliciós, envia un correu electrònic a {1}. Menciona el nom del connector i l'URL del seu repositori de GitHub. L'equip de Logseq generalment respon en un dia hàbil." + :plugin/report-security "Informar de problema de seguretat" + :plugin/restart "Reiniciar la aplicació" + :plugin/search-plugin "Cercar connector" + :plugin/security-warning "Avís de seguretat" + :plugin/setting-not-handled "#No gestionat# {1}" + :plugin/settings-schema-error "Error de l'esquema de configuració!" + :plugin/stars "Estrelles" + :plugin/supports-db "Suport BD" + :plugin/title "Títol ({1})" + :plugin/uninstall "Desinstal·lar" + :plugin/unpacked "Desempaquetat" + :plugin/unpacked-tips "Seleccionar el directori de la extensió" + :plugin/up-to-date "Està actualitzat {1}" + :plugin/update "Actualitzar" + :plugin/update-all-selected "Actualitzar tots els seleccionats" + :plugin/update-all-success "Tots els connectors actualitzats" + :plugin/update-available "Actualització disponible" + :plugin/update-plugin "Actualitza el connector: {1} - {2}" + :plugin/updates-downloading "Descarregant actualitzacions" + :plugin/updating "Actualitzant" + + :plugin.install-from-file/menu-title "Instal·lar des de plugins.edn" + :plugin.install-from-file/notice "Les següents extensions reemplaçaran les seves extensions: " + :plugin.install-from-file/success "¡Totes les extensions han estat instal·lades !" + :plugin.install-from-file/title "Instal·lar extensions des de plugins.edn" + + :plugin.install-from-web-url/effect-label "efecte" + :plugin.install-from-web-url/repo-url-placeholder "URL del repositori GitHub" + :plugin.install-from-web-url/supports-note "Les URL admeten tant els repositoris de GitHub com els servidors de desenvolupament local. (Per exemple: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Treure'l només desvincula el connector de Logseq i manté intacta la carpeta d'origen." + :plugin.package-config/parse-error "No s'ha pogut analitzar la configuració del paquet del connector." + :plugin.package-config/remove-error "No s'ha pogut eliminar el connector trencat." + :plugin.package-config/remove-external-success "S'ha eliminat el connector trencat de la llista de connectors." + :plugin.package-config/remove-installed-success "S'ha eliminat el connector trencat \"{1}\"." + + :plugin.proxy/direct "Directe" + :plugin.proxy/system "Sistema" + :plugin.proxy/test-url "URL de prova" + :plugin.proxy/testing "Provant" + + :plugin.settings/edit-settings-json "Edita settings.json" + :plugin.settings/exit-code-mode "Surt del mode de codi" + :plugin.settings/title "Configuració de connectors" + + :plugin.themes/default-desc "Tema per defecte de Logseq ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Temes ({1})" + :plugin.themes/light-and-dark "temes clars & foscos" + + :profiler/input-fn-placeholder "introduïu el nom de la funció aquí" + :profiler/unregister "Desregistrar" + + :property/add-choice "Afegir opció" + :property/add-choices "Afegir opcions" + :property/add-description "Afegeix una descripció" + :property/add-new "Afegeix una propietat" + :property/add-or-change "Afegeix o canvia la propietat" + :property/available-choices "Opcions disponibles" + :property/change-tooltip "Canviar {1}" + :property/checkbox-state-mapping "Mapatge d'estat de casella" + :property/children-count "Nens ({1})" + :property/choices-count "{1} opcions" + :property/choose-tag "Triar etiqueta" + :property/choose-tags "Triar etiquetes" + :property/clear-value "Esborra" + :property/configure "Configurar" + :property/convert-page-to-property "Converteix \"{1}\" en propietat" + :property/create-error "Error en crear la propietat." + :property/default-value "Valor per defecte" + :property/delete-from-node "Eliminar del node" + :property/delete-from-node-confirm "Voleu eliminar aquesta propietat del node?" + :property/delete-from-tag "Eliminar de l'etiqueta" + :property/delete-from-tag-confirm "Voleu eliminar aquesta propietat de l'etiqueta?" + :property/description-placeholder "Inserir descripció" + :property/drag-to-reorder "Arrossegueu per reordenar" + :property/existing-values "Valors existents" + :property/go-to-this-property "Anar a la pàgina de la propietat" + :property/hidden-properties "Propietats ocultes" + :property/hide-by-default "Amagar per defecte" + :property/hide-choice-for-tag "Amagar opció per etiqueta" + :property/hide-empty-value "Amagar valors buits" + :property/hide-for-tag "Amaga per a #{1}" + :property/hide-hidden-choices "Amagar opcions amagades" + :property/map-checked-to "Mapejar marcat a" + :property/map-unchecked-to "Mapejar desmarcat a" + :property/more-settings "Més configuració" + :property/multiple-values "Valors múltiples" + :property/multiple-values-confirm "Activar valors múltiples?" + :property/name "Nom" + :property/name-placeholder "Nom de la propietat" + :property/nodes-with-property "Nodes amb propietat" + :property/overdue "Endarrerit" + :property/private-built-in-not-usable "Propietat integrada privada no utilitzable" + :property/select-choice "Seleccionar opció" + :property/select-property-placeholder "Seleccioneu una propietat" + :property/select-type-placeholder "Seleccioneu un tipus de propietat" + :property/self-reference "Autoreferència" + :property/set-default-choice "Definir opció per defecte" + :property/set-default-value "Defineix el valor per defecte" + :property/set-icon "Definir icona" + :property/set-placeholder "Establir {1}" + :property/set-property "Assigna una propietat" + :property/set-tags "Assigna etiquetes" + :property/set-value "Definir valor" + :property/show-as-checkbox-on-node "Mostrar com a casella al node" + :property/show-as-checkbox-on-tagged-nodes "Mostrar com a casella als nodes amb etiqueta" + :property/show-hidden-choices "Mostrar opcions amagades" + :property/skip-choosing-tag "Saltar tria d'etiqueta" + :property/specify-node-tags "Especificar etiquetes del node" + :property/title-placeholder "Títol" + :property/type "Tipus" + :property/type-change-warning "El canvi de tipus de propietat esborra algunes configuracions de la propietat." + :property/type-checkbox "Casella de selecció" + :property/type-date "Data" + :property/type-datetime "Data/Hora" + :property/type-locked-help "El tipus està bloquejat" + :property/type-node "Node" + :property/type-number "Número" + :property/type-text "Text" + :property/type-url "URL" + :property/ui-position "Posició a la UI" + :property/ui-position-block-below "Sota el bloc" + :property/ui-position-block-left "A l'esquerra del bloc" + :property/ui-position-block-right "A la dreta del bloc" + :property/ui-position-properties "Propietats" + :property/unset-property "Treu la propietat" + :property/update-success "Actualitzat" + + :property.built-in/alias "Àlies" + :property.built-in/asset "Recurs" + :property.built-in/asset-align "Alineació del recurs" + :property.built-in/asset-checksum "Suma de verificació del fitxer" + :property.built-in/asset-external-file-name "Nom del fitxer extern" + :property.built-in/asset-external-url "URL externa" + :property.built-in/asset-height "Alçada de la imatge" + :property.built-in/asset-last-visit-page "Darrera pàgina visitada" + :property.built-in/asset-remote-metadata "Metadades remotes del fitxer" + :property.built-in/asset-resize-metadata "Metadades de redimensionament del recurs" + :property.built-in/asset-size "Mida del fitxer" + :property.built-in/asset-type "Tipus de fitxer" + :property.built-in/asset-width "Amplada de la imatge" + :property.built-in/background-color "Color de fons" + :property.built-in/built-in "Integrat?" + :property.built-in/checkbox-display-properties "Propietats mostrades com a casella de selecció" + :property.built-in/choice-checkbox-state "Estat de la casella de selecció" + :property.built-in/choice-classes "Classes d'opció" + :property.built-in/choice-exclusions "Exclusions d'opció" + :property.built-in/class-bidirectional-property-title "Títol de la propietat bidireccional" + :property.built-in/class-enable-bidirectional "Activar propietats bidireccionals" + :property.built-in/class-extends "Estén" + :property.built-in/class-hide-from-node "Amagar del node" + :property.built-in/class-properties "Propietats de l'etiqueta" + :property.built-in/classes "Classes de la propietat" + :property.built-in/closed-value-property "Propietat de valor tancat" + :property.built-in/code-lang "Mode de codi" + :property.built-in/collapsed "Node plegat?" + :property.built-in/created-at "Node creat el" + :property.built-in/created-by-ref "Node creat per" + :property.built-in/created-from-property "Creat a partir de la propietat" + :property.built-in/deadline "Data límit" + :property.built-in/default-value "Valor per defecte" + :property.built-in/deleted-at "Suprimit el" + :property.built-in/deleted-by-ref "Suprimit per" + :property.built-in/description "Descripció" + :property.built-in/enable-history "Activar historial de la propietat" + :property.built-in/exclude-from-graph-view "Exclòs de la vista del graf?" + :property.built-in/fsrs-due "Venciment" + :property.built-in/fsrs-state "Estat" + :property.built-in/heading "Encapçalament" + :property.built-in/hide "Amagar aquesta propietat o pàgina" + :property.built-in/hide-empty-value "Amagar valor buit" + :property.built-in/history-block "Bloc d'historial" + :property.built-in/history-property "Propietat d'historial" + :property.built-in/history-ref-value "Valor de referència de l'historial" + :property.built-in/history-scalar-value "Valor escalar de l'historial" + :property.built-in/icon "Icona" + :property.built-in/journal-day "Data del diari" + :property.built-in/journal-title-format "Format del títol" + :property.built-in/link "El node enllaça a" + :property.built-in/linked-references-excludes "Referències excloses" + :property.built-in/linked-references-includes "Referències incloses" + :property.built-in/ls-type "Tipus LS" + :property.built-in/node-display-type "Tipus de visualització del node" + :property.built-in/order "Ordre del node" + :property.built-in/order-list-type "Tipus de llista" + :property.built-in/page "Pàgina del node" + :property.built-in/page-tags "Etiquetes de pàgina" + :property.built-in/parent "Node pare" + :property.built-in/priority "Prioritat" + :property.built-in/public "Propietat pública?" + :property.built-in/publish-published-url "URL publicada" + :property.built-in/publishing-public "Publicació pública?" + :property.built-in/query "Consulta" + :property.built-in/reaction-emoji-id "Emoji de reacció" + :property.built-in/reaction-target "Objectiu de reacció" + :property.built-in/recycle-original-order "Ordre original de la paperera" + :property.built-in/recycle-original-page "Pàgina original de la paperera" + :property.built-in/recycle-original-parent "Pare original de la paperera" + :property.built-in/refs "Referències del node" + :property.built-in/repeat-checked-property "Propietat marcada de repetició" + :property.built-in/repeat-recur-frequency "Freqüència de recurrència de repetició" + :property.built-in/repeat-recur-unit "Unitat de recurrència de repetició" + :property.built-in/repeat-repeated "El node es repeteix?" + :property.built-in/repeat-temporal-property "Propietat temporal de repetició" + :property.built-in/scalar-default-value "Valor per defecte de tipus no referència" + :property.built-in/scheduled "Programat" + :property.built-in/status "Estat" + :property.built-in/sync-large-title-object "Referència al títol de bloc gran emmagatzemat a l'emmagatzematge d'objectes remot" + :property.built-in/table-filters "Filtres de vista" + :property.built-in/table-hidden-columns "Columnes ocultes de la vista" + :property.built-in/table-ordered-columns "Columnes ordenades de la vista" + :property.built-in/table-pinned-columns "Columnes fixades de la vista de taula" + :property.built-in/table-sized-columns "Configuració de columnes de la vista" + :property.built-in/table-sorting "Ordenació de la vista" + :property.built-in/tags "Etiquetes" + :property.built-in/template-applied-to "Aplicar plantilla a les etiquetes" + :property.built-in/title "Títol del node" + :property.built-in/type "Tipus de propietat" + :property.built-in/ui-position "Posició de la propietat" + :property.built-in/updated-at "Node actualitzat el" + :property.built-in/used-template "Plantilla utilitzada" + :property.built-in/user-avatar "Avatar de l'usuari" + :property.built-in/user-email "Correu electrònic de l'usuari" + :property.built-in/user-name "Nom de l'usuari" + :property.built-in/value "Valor de la propietat" + :property.built-in/view-context "Context de la vista de la propietat" + :property.built-in/view-feature-type "Tipus de funció de la vista" + :property.built-in/view-for "Aquesta vista pertany a" + :property.built-in/view-group-by-property "Agrupar vista per propietat" + :property.built-in/view-sort-groups-by-property "Ordenar grups de la vista per" + :property.built-in/view-sort-groups-desc "Ordenar grups de la vista DESC" + :property.built-in/view-type "Tipus de vista" + + :property.choice/already-exists "L'opció ja existeix." + :property.choice/cant-delete-built-in "L'opció integrada no es pot eliminar." + :property.choice/invalid "Opció \"{1}\" no vàlida per a aquesta propietat: {2}" + + :property.color/blue "blau" + :property.color/green "verd" + :property.color/purple "porpra" + :property.color/red "vermell" + :property.color/yellow "groc" + + :property.priority/high "Alta" + :property.priority/low "Baixa" + :property.priority/medium "Mitjana" + :property.priority/urgent "Urgent" + + :property.repeat/date "Data de repetició" + :property.repeat/datetime "Data i hora de repetició" + :property.repeat/every "Cada" + :property.repeat/is-label "és:" + :property.repeat/task "Tasca de repetició" + :property.repeat/when "Quan" + + :property.repeat-recur-unit/day "Dia" + :property.repeat-recur-unit/hour "Hora" + :property.repeat-recur-unit/minute "Minut" + :property.repeat-recur-unit/month "Mes" + :property.repeat-recur-unit/week "Setmana" + :property.repeat-recur-unit/year "Any" + + :property.status/backlog "Backlog" + :property.status/canceled "Cancel·lat" + :property.status/doing "En curs" + :property.status/done "Fet" + :property.status/in-review "En revisió" + :property.status/todo "Pendent" + + :property.validation/cant-convert-to-number "No es pot convertir \"{1}\" en un número." + :property.validation/cant-remove-required "La propietat obligatòria no es pot eliminar." + :property.validation/cant-set-self-value "No es pot definir com a valor de propietat propi." + :property.validation/duplicate "La propietat '{1}' ja existeix." + :property.validation/invalid-name "Aquest és un nom de propietat no vàlid. Un nom de propietat no pot començar amb els caràcters de referència de pàgina '#' o '[[')." + :property.validation/invalid-value "La propietat \"{1}\" té un valor no vàlid: {2}" + :property.validation/many-to-one "No es pot convertir una propietat de múltiples valors a valor únic." + :property.validation/protected "Aquesta propietat és protegida i no es pot modificar." + + :property.view-type/gallery "Vista de galeria" + :property.view-type/list "Vista de llista" + :property.view-type/table "Vista de taula" + + :publish/action "Publicar" + :publish/dialog-desc "Opcionalment protegiu aquesta pàgina amb una contrasenya. Deixeu-ho buit per a accés públic." + :publish/dialog-title "Publicar pàgina" + :publish/invalid-page-error "Pàgina no vàlida" + :publish/password-optional-placeholder "Contrasenya opcional" + :publish/publish-error "Error en la publicació" + :publish/published-to "Publicat a {1}" + :publish/publishing "Publicant..." + :publish/unpublish "Despublica" + :publish/unpublish-error "Error en despublicar" + :publish/unpublish-missing-page-id "Despublicar: ID de pàgina absent" + :publish/unpublished "Despublicat" + + :query/advanced-results "Resultats de la consulta avançada" + :query/custom-view-error "Error de vista personalitzada: {1}" + :query/error "Error de consulta:" + :query/examples-desc "Consulteu més exemples a {{Queries documentation}}." + :query/examples-title "Exemples de consultes:" + :query/results-for "Resultats per a {1}" + + :query.builder/add-filter-or-operator-placeholder "Afegeix filtre/operador" + :query.builder/between-end-label "Data final" + :query.builder/between-journal-label "entre: {1} ~ {2}" + :query.builder/between-start-label "Data d'inici" + :query.builder/created-label "Creat" + :query.builder/filter "Filtre" + :query.builder/filter-full-text-search-label "Cerca de text complet" + :query.builder/filter-page-label "Pàgina" + :query.builder/filter-page-reference-label "Referència de pàgina" + :query.builder/filter-sample-label "Mostra" + :query.builder/operator-and-label "i" + :query.builder/operator-not-label "no" + :query.builder/replace-with-label "Substituir per:" + :query.builder/search-label "Cercar: {1}" + :query.builder/show-built-in-properties "Mostra les propietats integrades" + :query.builder/unwrap-operator "Desembolcallar" + :query.builder/updated-label "Actualitzat" + :query.builder/wrap-filter-with-label "Embolcallar aquest filtre amb:" + + :reference/blocks "Referència de bloc" + :reference/copy "Copiar aquesta referència" + :reference/delete "Eliminar aquesta referència" + :reference/page-filter "Filtre de pàgina" + :reference/replace-with-embed "Substituir per incrustació" + :reference/replace-with-text "Substituir per text" + + :reference.filter/directions "Direccions del filtre" + :reference.filter/excludes "Exclosos" + :reference.filter/includes "Inclosos" + :reference.filter/search-placeholder "Cercar a les pàgines vinculades" + :reference.filter/title "Filtre" + + :search/blank-input "Entrada buida" + :search/full-text-placeholder "Cerca de text complet" + :search/index-progress "Indexant {1}%" + :search/indices-rebuilt-success "Índexs de recerca reconstruïts correctament!" + :search/no-result "Sense resultats" + :search/result-count "{1} resultats" + + :search.find-in-page/input-placeholder "Cercar a la pàgina" + :search.find-in-page/match-case "Distingeix majúscules i minúscules" + :search.find-in-page/next-result "Resultat següent" + :search.find-in-page/previous-result "Resultat anterior" + + :select/default-prompt "Seleccioni un" + :select/default-select-multiple "Seleccioni un o varis" + :select/new-option "+ Opció nova: {1}" + + :server/error-notification "[Servidor] {1}" + :server/mcp-url-copied "URL MCP copiada" + :server/start "Iniciar" + :server/stop "Aturar" + :server/title "Servidor d'API HTTP" + + :server.config/auto-start-label "Iniciar automàticament amb l'aplicació" + :server.config/port-label "Rang de ports" + :server.config/reset "Restablir" + :server.config/save-and-apply "Desar i aplicar" + :server.config/title "Configuracions del servidor" + + :server.status/closed "Tancat" + :server.status/closing "Tancant" + :server.status/error "Error" + :server.status/running "En execució" + :server.status/starting "Iniciant" + :server.status/stopped "Aturat" + + :server.token/add-new "Afegir nou token" + :server.token/name-placeholder "Nom del servidor" + :server.token/regenerate-value "Regenerar valor del token" + :server.token/title "Tokens d'autorització" + :server.token/update-success "Tokens actualitzats" + :server.token/value-placeholder "Valor" + + :settings/account "Compte" + :settings/advanced "Avançat" + :settings/ai "IA" + :settings/collaboration "Col·laboració" + :settings/editor "Editor" + :settings/encryption "Encriptació" + :settings/features "Característiques" + :settings/general "General" + :settings/keymap "Dreceres" + :settings/plugins "Configuració de connectors" + + :settings.account/storage-usage "{1}GB d'emmagatzematge total de {2}GB ({3})" + :settings.account/synced-graphs "{1} de {2} gràfics sincronitzats ({3})" + + :settings.advanced/auto-chmod "Auto chmod" + :settings.advanced/auto-chmod-desc "Definir permisos de fitxers automàticament" + :settings.advanced/auto-updater "Auto actualitzador" + :settings.advanced/developer-mode "Mode desenvolupador" + :settings.advanced/developer-mode-desc "El mode desenvolupador permet als col·laboradors i desenvolupadors d'extensions provar les integracions amb Logseq de manera més eficient." + :settings.advanced/disable-sentry "Enviar dades d'ús i diagnòstics a Logseq" + :settings.advanced/disable-sentry-desc " Logseq mai recol·lectarà la seva base de dades de grafs local o vendrà les seves dades." + :settings.advanced/network-proxy "Proxy de xarxa" + + :settings.ai/enable-mcp-server "Activar servidor MCP" + :settings.ai/enable-mcp-server-desc "Activar servidor MCP per integració amb IA" + + :settings.editor/auto-expand-block-refs "Expandir referències de blocs automàticament" + :settings.editor/auto-expand-block-refs-tip "Expandir referències de blocs automàticament en fer clic" + :settings.editor/custom-date-format "Format de data preferida" + :settings.editor/enable-all-pages-public "Fer totes les pàgines publiques al publicar" + :settings.editor/enable-shortcut-tooltip "Habilitar descripció emergent de dreceres de teclat" + :settings.editor/enable-tooltip "Activar indicacions" + :settings.editor/preferred-outdenting "Disminució lògica de sagnat" + :settings.editor/preferred-outdenting-tip "Consell de sagnat preferit" + :settings.editor/preferred-outdenting-tip-more "→ Més informació sobre sagnat" + :settings.editor/preferred-pasting-file "Preferir enganxar arxiu" + :settings.editor/preferred-pasting-file-hint "Consell d'enganxat de fitxers" + :settings.editor/show-brackets "Mostrar claudàtors" + :settings.editor/show-full-blocks "Mostrar totes les línies de una referència a bloc" + :settings.editor/spell-checker "Corrector ortogràfic" + :settings.editor/wide-mode "Mode ample" + + :settings.features/enable-flashcards "Activar flashcards" + :settings.features/enable-journals "Habilitar diaris" + :settings.features/home-default-page "Establir pàgina d'inici" + :settings.features/home-default-page-update-success "Pàgina d'inici per defecte actualitzada" + :settings.features/journals-enable-success "Diaris activats" + :settings.features/login-prompt "Per accedir a noves característiques abans que ningú ha de ser patrocinador de Logseq en Open Collective y després iniciar sessió." + :settings.features/page-not-found "La pàgina \"{1}\" encara no existeix. Creeu aquesta pàgina primer i, després, torneu-ho a provar." + :settings.features/plugin-system "Sistema de connectors" + + :settings.general/accent-color "Color d'accent" + :settings.general/accent-color-alert "Alerta de color d'accent" + :settings.general/accent-color-logseq "Color clàssic de Logseq" + :settings.general/accent-color-none-desc "Cancel·la el color d'accent. Aquesta funcionalitat està actualment en fase beta i s'utilitza principalment per a la compatibilitat amb temes personalitzats." + :settings.general/changelog "Registre de canvis" + :settings.general/check-for-updates "Comprovar actualitzacions" + :settings.general/current-revision-label "Revisió actual" + :settings.general/current-version "Versió actual" + :settings.general/custom-configuration "Configuració personalitzada" + :settings.general/custom-global-configuration "Configuració global personalitzada" + :settings.general/custom-theme "Tema personalitzat" + :settings.general/edit-config-edn "Editar config.edn (per aquest repositori)" + :settings.general/edit-custom-css "Editar custom.css" + :settings.general/edit-export-css "Editar export.css" + :settings.general/edit-global-config-edn "Editar config.edn global" + :settings.general/editor-font "Tipografia de l'editor" + :settings.general/editor-font-set-global "Establir com a familia de fonts global" + :settings.general/export-theme "Tema exportació" + :settings.general/language "Idioma" + :settings.general/native-titlebar "Barra de títol nativa" + :settings.general/native-titlebar-desc "Usar la barra de títol nativa del sistema" + :settings.general/refresh-required-feedback "Cal actualitzar" + :settings.general/release-channel "canal de llançament" + :settings.general/revision "Revisió: {1}" + :settings.general/theme-dark "Fosc" + :settings.general/theme-light "Clar" + :settings.general/theme-system "Sistema" + + :settings.sync-server/clear-success "S'ha esborrat l'URL del servidor de sincronització. S'utilitzarà Logseq Sync oficial." + :settings.sync-server/reset "Restablir per defecte" + :settings.sync-server/save-success "S'ha desat l'URL del servidor de sincronització." + :settings.sync-server/url "URL del servidor de sincronització" + :settings.sync-server/url-desc "Defineix una URL HTTPS personalitzada per al servidor de sincronització autoallotjat. Els teus testimonis d'autenticació de Logseq s'enviaran a aquest servidor, així que fes servir només una URL de confiança. Deixa-ho buit per fer servir Logseq Sync oficial." + :settings.sync-server/url-invalid-error "L'URL ha de començar per https:// o http://" + + :shell/input-command-title "Introdueix una ordre" + + :shortcut.category/basics "Bàsic" + :shortcut.category/block-command-editing "Ordres d'edició de bloc" + :shortcut.category/block-editing "Edició de bloc general" + :shortcut.category/block-selection "Selecció de blocs (prémer Esc para sortir)" + :shortcut.category/formatting "Format" + :shortcut.category/navigating "Navegació" + :shortcut.category/others "Altres" + :shortcut.category/plugins "Connectors" + :shortcut.category/toggle "Alternar" + + :sidebar.left/favorites "Preferits" + :sidebar.left/navigations "Navegació" + :sidebar.left/recent-pages "Recents" + + :sidebar.right/close "Tancar panell" + :sidebar.right/close-all "Tancar tots els panells" + :sidebar.right/close-others "Tancar altres panells" + :sidebar.right/collapse "Replegar panell" + :sidebar.right/collapse-all "Replegar tots els panells" + :sidebar.right/collapse-others "Replegar altres panells" + :sidebar.right/expand "Expandir panell" + :sidebar.right/expand-all "Expandir tots els panells" + :sidebar.right/more "Més opcions del panell" + :sidebar.right/open "Obrir a panell lateral" + :sidebar.right/open-as-page "Obrir com a pàgina" + :sidebar.right/resize-handle "Eina per redimensionar panell dret " + :sidebar.right/toggle "Alternar barra lateral dreta" + + :storage/invalid-data-writing "Escriptura de dades no vàlida." + :storage/sqlitedb-error "Error de SQLiteDB: {1}" + :storage/sqlitedb-import-error "Error d'importació de SQLiteDB: {1}" + :storage/sqlitedb-save-error "Error de desar SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Bloqueig suprimit {1}" + :storage.recycle/empty "La paperera és buida." + :storage.recycle/page-deleted-at "Pàgina suprimida {1}" + :storage.recycle/readonly "Paperera (només lectura)" + :storage.recycle/restore "Restaurar" + :storage.recycle/retention-desc "Les pàgines i els blocs suprimits es queden aquí fins que es restauren o s'eliminen automàticament després de 30 dies." + :storage.recycle/title "Paperera" + + :sync/assets-downloading-count "Descàrrega de fitxers ({1})" + :sync/assets-uploading-count "Pujada de fitxers ({1})" + :sync/creating-remote-graph "S'està creant el gràfic remot..." + :sync/downloading "Descarregant..." + :sync/downloading-graph "Descarregant {1} ..." + :sync/graph-count-exceed-limit "El nombre de grafs supera el límit" + :sync/invitation-sent "Invitació enviada" + :sync/last-synced-time-label "Darrera sincronització: {1}" + :sync/more-debug-info "Més informació de depuració" + :sync/offline "Fora de línia" + :sync/online "En línia" + :sync/pending-local-changes "canvis locals pendents" + :sync/pending-server-changes "canvis del servidor pendents" + :sync/something-wrong "Error de sincronització" + :sync/start-sync "Inicia la sincronització" + :sync/storage-exceed-limit "L'emmagatzematge supera el límit" + :sync/uploading "Pujant..." + :sync/user-doesnt-exist-yet "L'usuari encara no existeix" + + :theme/logseq-default "Tema per defecte de Logseq" + :theme/switch-to "Canvia al tema {1}" + + :ui/all-done "Tot fet" + :ui/apply "Aplica" + :ui/cancel "Cancel·la" + :ui/close "Tanca" + :ui/configure "Configura" + :ui/confirm "Confirma" + :ui/copy "Copiar" + :ui/copy-all "Copia-ho tot" + :ui/copy-to-clipboard "Copiar al porta-retalls" + :ui/create "Crear" + :ui/date-natural-language-placeholder "p. ex. La setmana vinent" + :ui/delete "Elimina" + :ui/deleted "Suprimit" + :ui/dont-remind-me-again "No m'ho tornis a recordar" + :ui/empty "Buit" + :ui/error "Error" + :ui/error-boundary-error "Error detectat per la interfície!\n {1}" + :ui/export "Exportar" + :ui/false "Fals" + :ui/fix "Arregla-ho!" + :ui/frequently-used "Utilitzat freqüentment" + :ui/from "De: " + :ui/host "Host" + :ui/image "imatge" + :ui/label "Etiqueta" + :ui/link "Enllaç" + :ui/load-more "Carrega'n més" + :ui/loading "Carregant" + :ui/login "Iniciar sessió" + :ui/logout "Tancar sessió" + :ui/off "DESACTIVAT" + :ui/on "ACTIVAT" + :ui/open "Obre" + :ui/open-named "Obre {1}" + :ui/port "Port" + :ui/refresh "Actualitzar" + :ui/relaunch-confirm "Cal reiniciar l'aplicació per aplicar aquest canvi. La voleu reiniciar ara?" + :ui/remove-background "Eliminar fons" + :ui/reset "Restableix" + :ui/run "Executa" + :ui/save "Desa" + :ui/show-less "Mostra'n menys" + :ui/show-more "Mostra'n més" + :ui/skip "Omet" + :ui/submit "Envia" + :ui/to "A: " + :ui/toggle-theme "Alternar tema" + :ui/true "Cert" + :ui/type "Tipus" + :ui/untitled "Sense títol" + :ui/use-current-time "Utilitza l'hora actual" + :ui/yes "Sí" + + :updater/checking-for-updates "S'estan comprovant les actualitzacions" + :updater/downloading-progress "S'està baixant l'actualització ({1}%)" + :updater/quit-and-install "Reinicia i instal·la" + :updater/up-to-date "Aplicació actualitzada 🎉" + :updater/update-available "Actualització disponible" + :updater/update-error "¡⚠️ Ups, alguna cosa ha fallat!\nSi us plau comproveu el {1}." + :updater/update-ready-to-install "L'actualització està a punt per instal·lar-se" + + :view/add-new-view "Afegir nova visualització" + :view/all "Tots" + :view/export-edn "Exportar EDN" + :view/linked-references "Referències vinculades" + :view/new "Nou" + :view/new-property "Nova propietat" + :view/new-view "Nova visualització" + :view/rename "Reanomenar" + :view/results "Resultats:" + :view/unlinked-references "Referències no vinculades" + + :view.filter/custom-date "Data personalitzada" + :view.filter/empty "Buit" + :view.filter/filter "Filtre" + :view.filter/from "Des de" + :view.filter/is-empty "Està buit" + :view.filter/is-not-empty "No està buit" + :view.filter/match "Coincidència" + :view.filter/match-all-filters "Coincidir amb tots els filtres" + :view.filter/match-any-filter "Coincidir amb qualsevol filtre" + :view.filter/operator-after "Després de" + :view.filter/operator-before "Abans de" + :view.filter/operator-between "Entre" + :view.filter/operator-date-after "Data després de" + :view.filter/operator-date-before "Data abans de" + :view.filter/operator-is "És" + :view.filter/operator-is-not "No és" + :view.filter/operator-text-contains "El text conté" + :view.filter/operator-text-not-contains "El text no conté" + :view.filter/or "O" + :view.filter/relative-1-day-ago "Fa 1 dia" + :view.filter/relative-1-month-ago "Fa 1 mes" + :view.filter/relative-1-week-ago "Fa 1 setmana" + :view.filter/relative-1-year-ago "Fa 1 any" + :view.filter/relative-3-days-ago "Fa 3 dies" + :view.filter/relative-3-months-ago "Fa 3 mesos" + :view.filter/to "Fins a" + :view.filter/type-to-search "Escriviu per cercar" + + :view.table/ascending "Ascendent" + :view.table/columns-visibility "Visibilitat de columnes" + :view.table/default-title "{1} nodes" + :view.table/delete-sort "Suprimir ordenació" + :view.table/descending "Descendent" + :view.table/drag-to-reorder "Arrossegueu per reordenar" + :view.table/group-by "Agrupar per" + :view.table/group-journal-date "Data del diari" + :view.table/group-page-created-date "Data de creació de la pàgina" + :view.table/group-page-name "Nom de la pàgina" + :view.table/group-page-updated-date "Data d'actualització de la pàgina" + :view.table/live-query-title "Consulta en viu ({1})" + :view.table/name-column "Nom" + :view.table/no-group-value "Cap {1}" + :view.table/page "Pàgina" + :view.table/pages "Pàgines" + :view.table/pin "Fixar" + :view.table/row-number "Número de fila" + :view.table/select-all "Seleccionar tot" + :view.table/select-column "Seleccionar columna" + :view.table/select-order "Seleccionar ordre" + :view.table/select-row "Seleccionar fila" + :view.table/selected-count "Seleccionats: {1}" + :view.table/sort-ascending "Ascendent" + :view.table/sort-descending "Descendent" + :view.table/sort-groups-by "Ordenar grups per" + :view.table/sort-groups-order "Ordre dels grups" + :view.table/total-refs-count "Total de referències" + :view.table/unpin "Desafixar" + + :window/close "Tancar finestra" + :window/exit-fullscreen "Sortir de pantalla completa" + :window/maximize "Maximitzar" + :window/minimize "Minimitzar" + :window/restore "Restaurar" + + :youtube/embed-first-reminder-mobile "Si us plau, incrusta primer un vídeo de YouTube i després utilitza aquesta icona.\nRecordar: pots enganxar una URL de YouTube directa com a vídeo incrustat en dispositius mòbils." + :youtube/player-not-ready "El reproductor de YouTube encara no està preparat." + :youtube/timestamps-not-available-mobile "Les marques de temps de YouTube encara no estan disponibles en dispositius mòbils." + + :zotero/attachments "Adjunts" + :zotero/imported-file-warning "Aquest és un fitxer importat de Zotero, configura directori de dades de Zotero per obrir el fitxer a Logseq." + :zotero/linked-file-warning "Aquest és un fitxer enllaçat de Zotero, configura directori base dels adjunts enllaçats de Zotero per obrir el fitxer a Logseq." + :zotero/notes "Notes" } diff --git a/src/resources/dicts/cs.edn b/src/resources/dicts/cs.edn index 64802f2e3b..0fa5ff4ac1 100644 --- a/src/resources/dicts/cs.edn +++ b/src/resources/dicts/cs.edn @@ -1,468 +1,1861 @@ -{:accessibility/skip-to-main-content "Přeskočit na hlavní obsah" - :handbook/title "Nápověda" - :handbook/topics "Témata" - :handbook/popular-topics "Oblíbená témata" - :handbook/help-categories "Kategorie nápovědy" - :handbook/search "Vyhledávání" - :handbook/home "Domů" - :handbook/settings "Nastavení" - :handbook/close "Zavřít" - :on-boarding/importing-main-title "Import stávajících poznámek" - :on-boarding/importing-main-desc "Tento postup můžete provést i později v aplikaci." - :on-boarding/importing-title "Máte již poznámky, které chcete importovat?" - :on-boarding/importing-desc "Pokud jsou ve formátu EDN nebo Markdown, Logseq s nimi dokáže pracovat." - :on-boarding/main-title (fn [] ["Vítejte v " [:strong "Logseq!"]]) - :on-boarding/main-desc "Nejprve si musíte vybrat složku, do které bude Logseq ukládat vaše myšlenky, nápady a poznámky." - :bug-report/main-title "Nahlášení chyby" - :bug-report/clipboard-inspector-title "Inspektor dat schránky" - :bug-report/main-desc "Můžete nám pomoci odesláním hlášení o chybě? Vyřešíme to, jakmile to bude možné." - :bug-report/section-clipboard-title "Souvisí chyba, na kterou jste narazili, s těmito funkcemi?" - :bug-report/section-clipboard-desc "Pomocí těchto praktických nástrojů nám můžete poskytnout další informace." - :bug-report/section-clipboard-btn-title "Pomocník pro schránku" - :bug-report/section-clipboard-btn-desc "Kontrola a shromažďování dat schránky" - :bug-report/section-issues-title "Nebo ..." - :bug-report/section-issues-desc "Pokud nemáte k dispozici žádné nástroje pro shromažďování dalších informací, nahlaste chybu přímo." - :bug-report/section-issues-btn-title "Odeslání hlášení chyby" - :bug-report/section-issues-btn-desc "Pomozte vylepšit Logseq!" - :bug-report/inspector-page-desc-1 "Stisknutím kláves Ctrl+V / ⌘+V zkontrolujte data schránky." - :bug-report/inspector-page-desc-2 "nebo klikněte zde pro vložení, pokud používáte mobilní verzi" - :bug-report/inspector-page-placeholder "Dlouhým stisknutím zde vložíte, pokud používáte mobilní aplikaci" - :bug-report/inspector-page-tip "Je něco špatně? Žádný problém, kliknutím se vrátíte k předchozímu kroku." - :bug-report/inspector-page-btn-back "Vraťte se zpět" - :bug-report/inspector-page-btn-copy "Kopírovat výsledek" - :bug-report/inspector-page-copy-notif "Zkopírováno do schránky!" - :bug-report/inspector-page-btn-create-issue "Vytvoření problému" - :bug-report/inspector-page-desc-clipboard "Zde jsou data načtená ze schránky." - :bug-report/inspector-page-desc-copy "Pokud je možné je sdílet, klikněte na tlačítko Kopírovat." - :bug-report/inspector-page-desc-create-issue "Nyní můžete nahlásit výsledek vložený do schránky. Výsledek vložte do části „Další kontext“ a uveďte, odkud jste původní obsah zkopírovali. Děkujeme!" - :help/title-usage "Použití" - :help/title-community "Komunita" - :help/title-development "Vývoj" - :help/title-about "O nás" - :help/title-terms "Podmínky" - :help/start "Začínáme" - :help/about "O Logseq" - :help/roadmap "Plán činnosti" - :help/bug "Nahlásit chybu" - :help/feature "Požadovat novou funkci" - :help/changelog "Seznam změn" - :help/docs "Dokumentace" - :help/privacy "Zásady ochrany osobních údajů" - :help/terms "Podmínky používání" - :help/forum-community "Komunitní fórum" - :help/shortcuts "Klávesové zkratky" - :help/shortcuts-triggers "Akce" - :help/shortcut "Zkratky" - :help/search "Hledání stránek/bloků/příkazů" - :help/slash-autocomplete "Automatické dokončování lomítka" - :help/reference-autocomplete "Automatické dokončování odkazů na stránky" - :help/block-reference "Reference na blok" - :help/open-link-in-sidebar "Otevřít odkaz v postranním panelu" - :search-item/page "Stránka" - :search-item/no-result "Žádný odpovídající výsledek" - :help/context-menu "Kontextová nabídka bloku" - :bold "Tučné" - :italics "Kurzíva" - :highlight "Zvýraznění" - :strikethrough "Přeškrtnutí" - :code "Kód" - :untitled "Bez názvu" - :right-side-bar/help "Nápověda" - :right-side-bar/switch-theme "Motiv" - :right-side-bar/contents "Obsah" - :right-side-bar/page-graph "Graf stránky" - :right-side-bar/block-ref "Reference bloku" - :right-side-bar/graph-view "Zobrazení grafu" - :right-side-bar/flashcards "Kartičky" - :right-side-bar/show-journals "Zobrazit deníky" - :right-side-bar/separator "Nástroj na změnu velikosti pravého postranního panelu" - :right-side-bar/toggle-right-sidebar "Přepínání pravého postranního panelu" - :right-side-bar/pane-close "Zavřít" - :right-side-bar/pane-close-others "Zavřít ostatní" - :right-side-bar/pane-close-all "Zavřít vše" - :right-side-bar/pane-collapse "Sbalit" - :right-side-bar/pane-collapse-others "Sbalit ostatní" - :right-side-bar/pane-collapse-all "Sbalit vše" - :right-side-bar/pane-expand "Rozbalit" - :right-side-bar/pane-expand-all "Rozbalit vše" - :right-side-bar/pane-open-as-page "Otevřít jjako stránku" - :right-side-bar/pane-more "Více" - :left-side-bar/switch "Přepnout na:" - :left-side-bar/journals "Deníky" - :left-side-bar/nav-favorites "Oblíbené" - :left-side-bar/nav-recent-pages "Nedávné" - :page/something-went-wrong "Něco se pokazilo" - :page/logseq-is-having-a-problem "Logseq má problém. Chcete-li se pokusit uvést jej zpět do funkčního stavu, vyzkoušejte prosím následující bezpečné kroky v uvedeném pořadí:" - :page/step "Krok {1}" - :page/try "Zkusit" - :page/make-public "Označit stránku jjako veřejnou" - :page/make-private "Označit stránku jjako soukromou" - :page/delete "Smazat stránku" - :page/add-to-favorites "Přidat do oblíbených" - :page/unfavorite "Odebrat z oblíbených" - :block/name "Název stránky" - :page/copy-page-url "Zkopírovat adresu URL stránky" - :file/name "Název souboru" - :file/last-modified-at "Naposledy upraveno v" - :file/no-data "Žádná data" - :file/format-not-supported "Formát .{1} není podporován." - :page/created-at "Vytvořeno v" - :page/updated-at "Aktualizováno v" - :page/backlinks "Zpětné odkazy" - :linked-references/filter-search "Vyhledávání v odkazovaných stránkách" - :editor/block-search "Vyhledání bloku" - :text/image "Obrázek" - :asset/show-in-folder "Zobrazit obrázek ve složce" - :asset/open-in-browser "Otevřít obrázek v prohlížeči" - :asset/delete "Odstranit obrázek" - :asset/copy "Kopírovat obrázek" - :asset/maximize "Maximalizovat obrázek" - :asset/confirm-delete "Jste si jisti, že chcete odstranit tento {1}?" - :asset/physical-delete "Odstraňte i tento soubor (všimněte si, že jej nelze obnovit)." - :color/gray "Šedá" - :color/red "Červená" - :color/yellow "Žlutá" - :color/green "Zelená" - :color/blue "Modrá" - :color/purple "Fialová" - :color/pink "Růžová" - :editor/copy "Kopírovat" - :editor/cut "Vyjmout" - :editor/expand-block-children "Rozbalit vše" - :editor/collapse-block-children "Sbalit vše" - :editor/delete-selection "Odstranit vybrané bloky" - :editor/cycle-todo "Přepnout stav TODO" - :dev/show-page-data "(Dev) Zobrazit data stránky" - :dev/show-block-data "(Dev) Zobrazit data stránky bloku" - :dev/show-block-ast "(Dev) Zobrazit AST blok" - :content/copy-export-as "Kopírovat / Exportovat jako..." - :content/copy-block-url "Kopírovat adresu bloku" - :content/copy-block-ref "Kopírovat odkaz bloku" - :content/copy-ref "Kopírovat odkaz" - :content/delete-ref "Odstranit odkaz" - :content/replace-with-text "Nahradit textem" - :content/replace-with-embed "Nahradit vložením" - :content/open-in-sidebar "Otevřít v postranním panelu" - :content/click-to-edit "Kliknutím upravit" - :context-menu/make-a-flashcard "Vytvořit kartičku" - :context-menu/toggle-number-list "Přepnout seznam čísel" - :settings-page/edit-config-edn "upravit config.edn" - :settings-page/edit-global-config-edn "upravit globální config.edn" - :settings-page/edit-custom-css "upravit custom.css" - :settings-page/edit-export-css "upravit export.css" - :settings-page/custom-configuration "Vlastní konfigurace" - :settings-page/custom-global-configuration "Vlastní globální konfigurace" - :settings-page/theme-light "světlý" - :settings-page/theme-dark "tmavý" - :settings-page/theme-system "systémový" - :settings-page/custom-theme "Vlastní motiv" - :settings-page/export-theme "Exportovat motiv" - :settings-page/show-brackets "Zobrazit závorky" - :settings-page/spell-checker "Kontrola pravopisu" - :settings-page/auto-updater "Automatická aktualizace" - :settings-page/disable-sentry "Odesílání dat o používání a diagnostiky do systému Logseq" - :settings-page/disable-sentry-desc "Společnost Logseq nikdy nebude shromažďovat vaši místní databázi grafů ani prodávat vaše data." - :settings-page/preferred-outdenting "Logické odsazení" - :settings-page/preferred-outdenting-tip "Levá strana ukazuje odsazení s předvoleným nastavením, a pravá ukazuje odsazení s logickým odsadením " - :settings-page/preferred-outdenting-tip-more "→ Další informace" - :settings-page/show-full-blocks "Zobrazení všech řádků odkazu na blok" - :settings-page/auto-expand-block-refs "Automatické rozbalení odkazů na bloky při zvětšení" - :settings-page/auto-expand-block-refs-tip "Tato volba určuje, zda se mají odkazy na bloky automaticky rozbalovat při zvětšení." - :settings-page/custom-date-format "Preferovaný formát data" - :settings-page/preferred-pasting-file-hint "Je-li tato možnost povolena, vložení obrázku z internetu jej stáhne a vloží. Je-li zakázáno, vloží se odkaz na obrázek." - :settings-page/preferred-pasting-file "Uprednostnit vložení souboru" - :settings-page/enable-shortcut-tooltip "Povolit nápovědy ke klávesovým zkratkám" - :settings-page/enable-tooltip "Povolit okno s nápovědou" - :settings-page/enable-journals "Denníky" - :settings-page/enable-all-pages-public "Všechny stránky jsou při publikování veřejné" - :settings-page/home-default-page "Nastavení výchozí domovské stránky" - :settings-page/clear-cache "Vymazat mezipaměť" - :settings-page/clear "Vymazat" - :settings-page/clear-cache-warning "Vymazáním mezipaměti dojde k odstranění otevřených grafů. Ztratíte neuložené změny." - :settings-page/developer-mode "Vývojářský režim" - :settings-page/developer-mode-desc "Vývojářský režim pomáhá přispěvatelům a vývojářům rozšíření efektivněji testovat jejich integrace se službou Logseq." - :settings-page/current-version "Aktuální verze" - :settings-page/tab-general "Obecné" - :settings-page/tab-keymap "Klávesové zkratky" - :settings-page/tab-account "Účet" - :settings-page/tab-advanced "Pokročilé" - :settings-page/tab-features "Funkce" - :settings-page/plugin-system "Zásuvné moduly" - :settings-page/enable-flashcards "Kartičky" - :settings-page/network-proxy "Síťový proxy server" - :settings-page/login-prompt "Chcete-li získat přístup k novým funkcím dříve než ostatní, musíte být sponzorem nebo podporovatelem Open Collective společnosti Logseq, následně sa musíte přihlásit." - :settings-page/native-titlebar "Nativní záhlaví okna" - :settings-page/native-titlebar-desc "Aktivuje nativní záhlaví okna na systémech Windows a Linux." - :settings-page/check-for-updates "Kontrola aktualizací" - :settings-page/checking "Kontrola ..." - :settings-page/revision "Revize: " - :settings-page/changelog "Co je nového?" - :settings-page/app-updated "Vaše aplikace je aktuální 🎉" - :settings-page/update-available "Nalezena nová verze " - :settings-page/update-error-1 "⚠️ Ups, něco se pokazilo!" - :settings-page/update-error-2 " Podívejte se prosím na " - :settings-page/auto-chmod "Automatická změna oprávnění k souborům" - :settings-page/auto-chmod-desc "Zakázat, abyste umožnili úpravy více uživatelům s oprávněními udělenými na základě členství ve skupině." - :yes "Ano" +{ + :account/authentication "Ověření" + :account/benefits-desc "S účtem Logseq máte přístup ke cloudovým službám, jako je Logseq Sync, a k alfa/beta funkcím." + :account/billing "Fakturace" + :account/billing-expired-on-label "Plán Pro vypršel dne: {1}" + :account/billing-expires-on-label "Plán Pro vyprší dne: {1}" + :account/billing-next-date-label "Další datum fakturace: {1}" + :account/core-features "Přístup k základním funkcím Logseq" + :account/current-plan "Aktuální plán" + :account/delete-account "Smazat účet" + :account/discover-sync-desc "Objevte sílu {1}" + :account/early-access-alpha-beta "Přednostní přístup k alfa/beta funkcím" + :account/first-name "Jméno" + :account/free-plan-sync-limit "1 synchronizovaný graf (do 50 MB, pouze poznámky)" + :account/last-name "Příjmení" + :account/manage-plan "Spravovat plán" + :account/month "měsíc" + :account/no-asset-syncing "Bez synchronizace souborů" + :account/open-invoices "Otevřít faktury" + :account/plan-free "Zdarma" + :account/plan-free-summary "Začněte se základní synchronizací" + :account/plan-pro "Pro" + :account/plan-pro-summary "Odemkněte pokročilou synchronizaci a další funkce" + :account/pro-plan-sync-limit "10 synchronizovaných grafů (každý až 5 GB)" + :account/profile "Profil" + :account/refresh-token-warning "Obnovit token: výjimečný stav" + :account/reset-password "Obnovit heslo" + :account/sign-up "Registrace" + :account/sync-assets-limit "Synchronizace souborů do 100 MB na soubor" + :account/synced-status "Synchronizováno" + :account/unlimited-unsynced-graphs "Neomezený počet nesynchronizovaných grafů" + :account/upcoming-cloud-features "Nadcházející cloudové funkce, včetně Logseq Publish" + :account/upgrade-plan "Upgradovat plán" + :account/username "Uživatelské jméno" - :cancel "Zrušit" - :close "Zavřít" - :delete "Odstranit" - :save "Uložit" - :type "Typ" - :flashcards/modal-welcome-title "Čas vytvořit kartu!" - :flashcards/modal-welcome-desc-1 "Můžete přidat \"{1}\" k jakémukoli bloku, abyste jej změnili na kartu, nebo spustit \"/cloze\", abyste přidali nějaké cloze." - :flashcards/modal-finished "Gratulujeme, prohlédli jste si všechny karty pro tento dotaz, uvidíme se příště! 💯" - :home "Domů" - :new-page "Nová stránka:" - :graph "Graf" - :graph/all-graphs "Všechny grafy" - :graph/local-graphs "Místní grafy:" - :graph/remote-graphs "Vzdálené grafy:" - :export "Exportovat" - :export-graph "Exportovat graf" - :export-page "Exportovat stránku" - :export-markdown "Export jako standardní Markdown (bez vlastností bloků)" - :export-public-pages "Exportovat veřejné stránky" - :export-transparent-background "Průhledné pozadí" - :export-copy-to-clipboard "Kopírovat do schránky" - :export-copied-to-clipboard "Zkopírováno do schránky!" - :export-save-to-file "Uložit do souboru" - :all-graphs "Všechny grafy" - :all-files "Všechny soubory" - :all-journals "Všechny denníky" - :settings "Nastavení" - :settings-of-plugins "Zásuvné moduly" - :plugins "Zásuvné moduly" - :themes "Motivy" - :relaunch-confirm-to-work "Aby aplikace fungovala správně, je potřeba ji restartovat. Chcete ji restartovat teď?" - :import "Importovat" - :importing "Importuje se" - :help-shortcut-title "Kliknutím zobrazíte zkratky a další tipy" - :loading "Načítání ..." - :login "Přihlášení" - :logout "Odhlášení" - :download "Stáhnout" - :language "Jazyk" - :remove-background "Odstranit pozadí" - :remove-heading "Odstranit nadpis" - :heading "Nadpis {1}" - :auto-heading "Automatický nadpis" - :toggle-theme "Přepnout motiv" + :asset/acceptable-file-extensions "Povolené přípony souborů" + :asset/add-assets "Přidat soubory" + :asset/add-directory "Přidat adresář" + :asset/alias-already-exists "Alias \"{1}\" již existuje!" + :asset/alias-directories "Aliasy adresářů" + :asset/alias-directory-path-label "Cesta k adresáři:" + :asset/alias-name-dialog-title "Jaký alias má mít tento vybraný adresář?" + :asset/alias-name-label "Název aliasu:" + :asset/alias-name-placeholder "např. Knihy" + :asset/align "Zarovnání" + :asset/align-center "Na střed" + :asset/align-left "Vlevo" + :asset/align-right "Vpravo" + :asset/already-exists "Dílo již existuje, název: {1}, odkaz na uzel: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Nelze vložit rodiče jako vlastní vlastnost" + :asset/confirm-delete-image "Jste si jisti, že chcete odstranit tento obrázek?" + :asset/copy "Kopírovat obrázek" + :asset/copy-image-unsupported-extension "Kopírování obrázku není pro soubory {1} podporováno" + :asset/create-local-copy-warning "Vytváření lokální kopie z externího souboru. PDF anotace vyžadují lokální soubor pro správné fungování." + :asset/create-title "Vytvořit soubor" + :asset/delete "Odstranit obrázek" + :asset/downloading "Stahování" + :asset/drop-hint "Přetáhněte soubory sem, nebo klikněte pro výběr" + :asset/edit-title "Upravit soubor" + :asset/external-url-label "Externí URL souboru:" + :asset/file-extension-placeholder "např. mp3" + :asset/maximize "Maximalizovat obrázek" + :asset/open-in-browser "Otevřít obrázek v prohlížeči" + :asset/physical-delete "Odstraňte i tento soubor (všimněte si, že jej nelze obnovit)." + :asset/ref-block "Referenční blok" + :asset/select-file "Vybrat soubor" + :asset/select-from-disk "Vybrat z disku" + :asset/selected-directories "Vybrané adresáře:" + :asset/show-file-in-folder "Zobrazit soubor ve složce" + :asset/size-too-large "Soubor je příliš velký" + :asset/syncing "Synchronizace" + :asset/title-label "Název souboru:" + :asset/transfer-placeholder "{1} souborů..." + :asset/uploading "Nahrávání" - :help/shortcut-page-title "Klávesové zkratky" + :block/click-to-fix-query "Klikněte pro opravu dotazu: {1}" + :block/copy-ref "Kopírovat odkaz bloku" + :block/copy-url "Kopírovat adresu bloku" + :block/created-label "Vytvořeno: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' je zastaralé. Použijte příkaz '/Math block'." + :block/deprecated-query-syntax "#+BEGIN_QUERY je zastaralé. Použijte příkaz '/Advanced Query'." + :block/deprecated-quote "#+BEGIN_QUOTE je zastaralé. Použijte příkaz '/Quote'." + :block/empty-url "Prázdná URL" + :block/excalidraw-no-longer-supported "Excalidraw již není ve výchozím nastavení podporován, plánujeme jeho podporu prostřednictvím pluginů." + :block/extraction-error "Chyba extrakce bloku" + :block/hide-query "Skrýt dotaz" + :block/invalid-hiccup "Neplatný hiccup" + :block/invalid-link "Neplatný odkaz" + :block/invalid-url "Neplatná URL" + :block/large-block-warning "Velký blok nebude editovatelný ani prohledávatelný, aby nezpomaloval aplikaci. Použijte jiný editor pro úpravu tohoto bloku." + :block/last-edited-label "Naposledy upraveno: {1}" + :block/not-found-warning "Blok nenalezen" + :block/open-block-references "Otevřít reference bloku" + :block/practice "Procvičovat" + :block/practice-cards "Procvičovat kartičky" + :block/ref-nesting-too-deep "Zanoření reference bloku je příliš hluboké" + :block/remove-tag "Odebrat tag" + :block/remove-this-tag "Odebrat tento tag" + :block/render-error "Chyba vykreslení bloku:" + :block/set-query "Nastavit dotaz" + :block/set-query-label "Nastavit dotaz:" + :block/sort-order "Pořadí řazení" + :block/status-history "Historie stavů" + :block/untitled-query "Dotaz bez názvu" - :plugin/installed "Nainstalováno" - :plugin/installed-plugin "Nainstalovaný zásuvný modul: {1}" - :plugin/not-installed "Nenainstalováno" - :plugin/installing "Instaluje sa" - :plugin/install "Instalovat" - :plugin/reload "Znovu načíst" - :plugin/update "Aktualizovat" - :plugin/update-plugin "Aktualizovat zásuvný modul: {1} - {2}" - :plugin/check-update "Zkontrolovat aktualizaci" - :plugin/check-all-updates "Zkontrolovat všechny aktualizace" - :plugin/found-updates "Nové aktualizace" - :plugin/found-n-updates "Nalezené {1} aktualizace" - :plugin/update-all-selected "Aktualizovat všechny vybrané" - :plugin/all-updated "Všechny aktualizovány!" - :plugin/updates-downloading "Stahování aktualizací" - :plugin/refresh-lists "Obnovit seznamy" - :plugin/enabled "Povolené" - :plugin/disabled "Zakázané" - :plugin/update-available "K dispozici je aktualizace" - :plugin/updating "Aktualizuje se" - :plugin/uninstall "Odinstalovat" - :plugin/marketplace "Obchod" - :plugin/downloads "Počet stáhnutí" - :plugin/stars "Počet hvězdiček" - :plugin/title "Název ({1})" - :plugin/all "Všechny" - :plugin/unpacked "Rozbalené" - :plugin/delete-alert "Opravdu chcete odinstalovat zásuvný modul [{1}]?" - :plugin/open-settings "Otevřít nastavení" - :plugin/open-package "Otevřít balík" - :plugin/load-unpacked "Načíst rozbalený zásuvný modul" - :plugin/restart "Restartujte aplikaci" - :plugin/unpacked-tips "Vyberte adresář zásuvného modulu" - :plugin/contribute "✨ Napište a odešlete nový zásuvný modul" - :plugin/up-to-date "Je aktuální {1}" - :plugin/custom-js-alert "Nalezen soubor custom.js, je povoleno jeho spuštění? (Pokud nerozumíte obsahu tohoto souboru, doporučujeme spuštění nepovolit, protože má určitá bezpečnostní rizika)." - :plugin/security-warning "Zásuvné moduly mohou přistupovat k vašemu grafu a místním souborům, vydávat síťové požadavky. Mohou také způsobit poškození nebo ztrátu dat. Pracujeme na správných pravidlech přístupu ke grafům. Mezitím se ujistěte, že pravidelně zálohujete své grafy, a instalujte zásuvné moduly pouze tehdy, když jste schopni číst zdrojový kód a rozumíte mu." - :plugin/search-plugin "Vyhledávání zásuvných modulů" - :plugin/open-preferences "Otevřít předvolby" - :plugin/open-logseq-dir "Otevřít Logseq adresář" - :plugin/remote-error "Vzdálená chyba: " - :plugin/checking-for-updates "Kontrola aktualizací zásuvných modulů ..." - :plugin/list-of-updates "Aktualizace zásuvných modulů: " - :plugin/auto-check-for-updates "Automatická kontrola aktualizací" - :plugin.install-from-file/menu-title "Instalace ze souboru plugins.edn" - :plugin.install-from-file/title "Instalace zásuvných modulů ze souboru plugins.edn" - :plugin.install-from-file/notice "Následující zásuvné moduly nahradí vaše zásuvné moduly::" - :plugin.install-from-file/success "Všechny zásuvné moduly byly úspěšně nainstalované!" - :pdf/copy-ref "Kopírovat odkaz" - :pdf/copy-text "Kopírovat text" - :pdf/linked-ref "Prepojené odkazy" - :pdf/toggle-dashed "Čárkovaný styl pro zvýraznění oblasti" - :pdf/hl-block-colored "Barevný štítek pro zvýraznění bloku" - :pdf/auto-open-context-menu "Automatické otevření kontextové nabídky pro výběry" - :pdf/doc-metadata "Metadata dokumentu" + :block.macro/embed-deprecated "{{embed}} je zastaralé. Místo toho použijte příkaz '/Node embed'." + :block.macro/namespace-deprecated "{{namespace}} je zastaralé. Místo toho použijte funkci {1}." + :block.macro/query-deprecated "{{query}} je zastaralé. Místo toho použijte příkaz '/Query'." + :block.macro/unsupported-name "Nepodporovaný název makra: {1}" - :updater/new-version-install "Byla stažena nová verze." - :updater/quit-and-install "Restartujte pro instalaci" + :block.reaction/emoji-required-warning "Vyžadován emoji" + :block.reaction/unsupported-emoji-warning "Nepodporovaný emoji reakce" - :tips/all-done "Hotovo!" + :bug-report/desc "Nahlásit chybu" + :bug-report/title "Nahlásit chybu" - :select/default-prompt "Vyberte jednu" - :select/default-select-multiple "Vyberte jednu nebo více možností" - :select.graph/prompt "Vyberte graf" - :select.graph/empty-placeholder-description "Žádné odpovídající grafy. Chcete přidat další?" - :select.graph/add-graph "Ano, přidejte další graf" + :bug-report.clipboard/action-desc "Zkontrolovat schránku" + :bug-report.clipboard/action-title "Inspektor schránky" + :bug-report.clipboard/desc "Pokud máte problémy s kopírováním a vkládáním, použijte inspektor schránky" + :bug-report.clipboard/title "Schránka" - :notification/clear-all "Odstranit vše" + :bug-report.inspector/back "Zpět" + :bug-report.inspector/clipboard-desc "Obsah schránky" + :bug-report.inspector/copied "Zkopírováno do schránky" + :bug-report.inspector/copy "Kopírovat" + :bug-report.inspector/copy-desc "Zkopírovat diagnostickou zprávu" + :bug-report.inspector/create-issue "Vytvořit hlášení" + :bug-report.inspector/create-issue-desc "Nyní můžete nahlásit výsledek vložený do schránky. Vložte prosím výsledek do sekce 'Additional Context' a uveďte, odkud jste zkopírovali původní obsah. Děkujeme!" + :bug-report.inspector/desc "Stisknutím kláves {1} zkontrolujte data schránky.\nnebo klikněte zde pro vložení, pokud používáte mobilní verzi" + :bug-report.inspector/placeholder "Vložte obsah sem" + :bug-report.inspector/tip "Tip: použijte Ctrl+V pro vložení" + :bug-report.inspector/title "Inspektor schránky" - :shortcut.category/basics "Základy" - :shortcut.category/formatting "Formátování" - :shortcut.category/navigating "Navigace" - :shortcut.category/block-editing "Obecné úpravy bloků" - :shortcut.category/block-command-editing "Příkazy na úpravu bloků" - :shortcut.category/block-selection "Výběr bloku (výběr ukončíte stisknutím klávesy Esc)" - :shortcut.category/toggle "Přepínače" - :shortcut.category/others "Ostatní" - :shortcut.category/plugins "Zásuvné moduly" - :keymap/all "Všechny" - :keymap/disabled "Zakázané" - :keymap/unset "Nenastavené" - :keymap/custom "Vlastní" - :keymap/keystroke-filter "Filtrovat klávesové zkratky" - :window/minimize "Minimalizovat" - :window/maximize "Maximalizace" - :window/restore "Obnovit" - :window/close "Zavřít" - :window/exit-fullscreen "Ukončit režim celé obrazovky" + :bug-report.issue/action-desc "Procházet známé problémy" + :bug-report.issue/action-title "Hlášení na GitHubu" + :bug-report.issue/desc "Zkontrolujte, zda váš problém nebyl již nahlášen" + :bug-report.issue/report-link "Nahlásit problém" + :bug-report.issue/title "Známé problémy" - :header/toggle-left-sidebar "Zobrazit/Skrýt levý boční panel" - :header/search "Hledat" - :header/more "více" - :header/go-back "Zpátky" - :header/go-forward "Vpřed" + :class/add-property "Přidat vlastnost tagu" + :class/tag-properties-desc "Vlastnosti tagu dědí všechny uzly, které tag používají. Například každý uzel #Task dědí 'Status' a 'Priority'." + :class/tagged-nodes "Otagované uzly" - :command.pdf/previous-page "Pdf: Předchozí stránka aktuálního pdf dokumentu" - :command.pdf/next-page "Pdf: Další stránka aktuálního pdf dokumentu" - :command.pdf/close "Pdf: Zavřít aktuální pdf dokument" - :command.pdf/find "Pdf: Vyhledávání textu aktuálního pdf dokumentu" - :command.auto-complete/complete "Automatické doplňování: Vybrat vybranou položku" - :command.auto-complete/prev "Automatické doplňování: Výběr předchozí položky" - :command.auto-complete/next "Automatické doplňování: Vyberte další položku" - :command.auto-complete/shift-complete "Automatické doplňování: Otevřít vybranou položku v postranním panelu" - :command.cards/toggle-answers "Karty: zobrazit/skrýt odpovědi" - :command.editor/escape-editing "Zrušit úpravu" - :command.editor/backspace "Odstranit dozadu" - :command.editor/delete "Odstranit dopředu" - :command.editor/new-block "Vytvořit nový blok" - :command.editor/new-line "Nový řádek v aktuálním bloku" - :command.editor/follow-link "Přejít na odkaz pod kurzorom" - :command.editor/open-link-in-sidebar "Otevřít odkaz v postranním panelu" - :command.editor/bold "Tučný" - :command.editor/italics "Kurzíva" - :command.editor/highlight "Zvýraznit" - :command.editor/strike-through "Preškrtnout" - :command.editor/clear-block "Odstranit celý obsah bloku" - :command.editor/kill-line-before "Odstranit řádek před pozicí kurzoru" - :command.editor/copy-embed "Kopírovat vložený blok směřující k aktuálnímu bloku" - :command.editor/kill-line-after "Odstranit řádek za pozicí kurzoru" - :command.editor/beginning-of-block "Přesunout kurzor na začátek bloku" - :command.editor/end-of-block "Přesunout kurzor na konec bloku" - :command.editor/forward-word "Posunout kurzor o slovo dopředu" - :command.editor/backward-word "Přesunout kurzor o slovo dozadu" - :command.editor/forward-kill-word "Vymazat slovo dopředu" - :command.editor/backward-kill-word "Vymazat slovo dozadu" - :command.editor/paste-text-in-one-block-at-point "Vložit text do jednoho bloku na daném místě" - :command.editor/insert-youtube-timestamp "Vložit časové razítko z YouTube" - :command.editor/cycle-todo "Zmenit stav TODO aktuální položky" - :command.editor/up "Posunout kurzor nahoru/vybrat nahoru" - :command.editor/down "Posunout kurzor dole/vybrat dolů" - :command.editor/left "Posunout kurzor doleva/otevřít vybraný blok na začátku" - :command.editor/right "Posunout kurzor doprava/otevřít vybraný blok na konci" - :command.editor/select-up "Vybrat obsah nad" - :command.editor/select-down "Vybrat obsah pod" - :command.editor/move-block-up "Posunout blok nahoru" - :command.editor/move-block-down "Posunout blok dolů" - :command.editor/open-edit "Upravit vybraný blok" - :command.editor/select-block-up "Vybrat blok nad" - :command.editor/select-block-down "Vybrat blok nižšpodie" - :command.editor/delete-selection "Odstranit vybrané bloky" - :command.editor/expand-block-children "Rozbalit" - :command.editor/collapse-block-children "Sbalit" - :command.editor/indent "Odsadit blok" - :command.editor/outdent "Zrušit odsazení bloku" - :command.editor/copy "Kopírovat (kopíruje buď výběr, nebo odkaz na blok)" - :command.editor/copy-text "Kopírovat výběr jako text" - :command.editor/cut "Vyjmout" - :command.editor/undo "Zpátky" - :command.editor/redo "Znovu" - :command.editor/insert-link "HTML odkaz" - :command.editor/select-all-blocks "Vybrat všechny bloky" - :command.editor/select-parent "Vybrat rodičovský blok" - :command.editor/zoom-in "Přiblížit upravovaný blok / Jinak dopředu" - :command.editor/zoom-out "Oddálit upravaný blok / Jinak dozadu" - :command.editor/toggle-number-list "Přepnout číslovaný seznam" - :command.ui/toggle-brackets "Přepnout zobrazení závorek" - :command.go/electron-find-in-page "Najít text na stránce" - :command.go/electron-jump-to-the-next "Přeskočit na další shodu s vyhledáváním v panelu Hledat" - :command.go/electron-jump-to-the-previous "Přeskočit na předchozí shodu vyhledávání v panelu Hledat" - :command.go/search "Hledat stránky a bloky" - :command.go/search-in-page "Hledat bloky na stránce" - :command.command-palette/toggle "Hledat příkazy" - :command.go/journals "Přejít na deníky" - :command.go/backward "Zpátky" - :command.go/forward "Vpřed" - :command.search/re-index "Přestavět vyhledávací index" - :command.sidebar/open-today-page "Otevřít dnešní stránku v pravém postranním panelu" - :command.sidebar/close-top "Zavřít horní položku v pravém postranním panelu" - :command.sidebar/clear "Vymazat vše v pravém postranním panelu" - :command.misc/copy "Kopírovat" - :command.graph/export-as-html "Exportovat veřejné stránky grafu jako HTML" - :command.graph/open "Vybrat graf na otevření" - :command.graph/remove "Odstranit graf" - :command.graph/add "Přidat graf" - :command.command/run "Spustiť příkaz GIT" - :command.go/home "Přejít na domovskou stránku" - :command.go/all-graphs "Přejít na všechny grafy" - :command.go/all-pages "Přejít na všechny stránky" - :command.go/graph-view "Přejít na zobrazení grafu" - :command.go/keyboard-shortcuts "Přejít na klávesové zkratky" - :command.go/tomorrow "Přejít na zítřejší denník" - :command.go/next-journal "Přejít na další denník" - :command.go/prev-journal "Přejít na předcházející denník" - :command.go/flashcards "Zobrazit/Skrýt kartičky" - :command.ui/toggle-document-mode "Zobrazit/Skrýt režim dokumentu" - :command.ui/toggle-settings "Přepnout nastavení" - :command.ui/toggle-right-sidebar "Zobrazit/Skrýt pravý postranní panel" - :command.ui/toggle-left-sidebar "Zobrazit/Skrýt levý postranní panel" - :command.ui/toggle-help "Zobrazit/Skrýt nápovědu" - :command.ui/toggle-theme "Přepínání mezi tmavým/světlým motivem" - :command.ui/toggle-contents "Zobrazit/Skrýt obsah na postranním panelu" - :command.command/toggle-favorite "Přidat/Odstranit z oblíbených" - :command.editor/copy-page-url "Kopírovat URL adresu stránky" - :command.ui/toggle-wide-mode "Přepnout širokouhlý režim" - :command.ui/select-theme-color "Vybrat dostupné barvy motivu" - :command.ui/goto-plugins "Přejít na ovládací panel zásuvných modulů" - :command.ui/install-plugins-from-file "Nainstalovat zásuvné moduly ze souboru plugins.edn“" - :command.editor/toggle-open-blocks "Přepnout otevřené bloky (sbalit nebo rozbalit všechny bloky)" - :command.ui/clear-all-notifications "Vymazat všechna oznámení" - :command.dev/show-block-data "(Dev) Zobrazit údaje bloku" - :command.dev/show-block-ast "(Dev) Zobrazit AST bloku" - :command.dev/show-page-data "(Dev) Zobrazit údaje stránky" - :command.window/close "Zavřít okno" - :host "Host" - :port "Port" -:command.editor/toggle-block-children "Přepnout rozbalit/sbalit" -:help/awesome-logseq "Úžasný Logseq" -:help/blog "Logseq blog" -:help/markdown-syntax "Markdown syntaxe" -:linked-references/filter-directions "Kliknutím na tlačítko zahrnete a kliknutím s klávesou Shift vyloučíte. Dalším kliknutím odstraníte." -:linked-references/filter-excludes "Nezahrnuje: " -:linked-references/filter-heading "Filtruje" -:linked-references/filter-includes "Zahrnuje: " -:settings-page/tab-editor "Editor"} + :class.built-in/asset "Soubor" + :class.built-in/card "Kartička" + :class.built-in/cards "Kartičky" + :class.built-in/code-block "Kód" + :class.built-in/journal "Deník" + :class.built-in/math-block "Matematika" + :class.built-in/page "Stránka" + :class.built-in/pdf-annotation "PDF anotace" + :class.built-in/property "Vlastnost" + :class.built-in/query "Dotaz" + :class.built-in/quote-block "Citace" + :class.built-in/root "Kořenový tag" + :class.built-in/tag "Štítek" + :class.built-in/task "Úkol" + :class.built-in/template "Šablona" + :class.built-in/whiteboard "Tabule" + + :class.validation/built-in-extends-change "Dědičnost vestavěných prvků nelze změnit." + :class.validation/cant-add-tag-on-built-in "Nelze přidat značku k vestavěnému „{1}“." + :class.validation/cant-remove-private-tags "Soukromé značky nelze odebrat: {1}." + :class.validation/cant-remove-tag-built-in "Nelze odebrat štítek s vestavěným #{1}." + :class.validation/cant-remove-tag-on-built-in "Nelze odebrat štítek na vestavěném „{1}“." + :class.validation/cant-set-tag-built-in "Nelze nastavit štítek s vestavěným #{1}." + :class.validation/duplicate "Štítek '{1}' již existuje." + :class.validation/extends-cycle "Zjištěn cyklus v dědičnosti." + :class.validation/invalid-extends-type "Neplatný typ dědičnosti." + :class.validation/parents-must-be-tags "Rodiče štítků musí být štítky." + :class.validation/tag-with-non-tag "Nelze nastavit značku s vestavěnou stránkou, která není značkou „{1}“." + + :cmdk.action/apply-theme "Použít motiv" + :cmdk.action/copy-ref "Kopírovat odkaz" + :cmdk.action/create "Vytvořit" + :cmdk.action/filter "Filtr" + :cmdk.action/open "Otevřít" + :cmdk.action/open-in-sidebar "Otevřít v postranním panelu" + :cmdk.action/search "Hledat" + :cmdk.action/trigger "Spustit" + + :cmdk.create/configure-tag "Konfigurovat štítek" + :cmdk.create/page "Vytvořit stránku" + :cmdk.create/tag "Vytvořit štítek" + + :cmdk.error/no-block-link "V tomto bloku nejsou žádné odkazy." + :cmdk.error/no-page-link "Na této stránce nejsou žádné odkazy." + :cmdk.error/no-search-item-link "V tomto výsledku hledání nejsou žádné odkazy." + + :cmdk.filter/add "Přidat filtr" + :cmdk.filter/codes "Pouze kód" + :cmdk.filter/commands "Pouze příkazy" + :cmdk.filter/current-page "Pouze aktuální stránka" + :cmdk.filter/files "Pouze soubory" + :cmdk.filter/nodes "Pouze uzly" + :cmdk.filter/only-label "Pouze hledat:" + :cmdk.filter/themes "Pouze motivy" + + :cmdk.group/codes "Kód" + :cmdk.group/commands "Příkazy" + :cmdk.group/create "Vytvořit" + :cmdk.group/current-page "Aktuální stránka" + :cmdk.group/files "Soubory" + :cmdk.group/filters "Filtry" + :cmdk.group/nodes "Uzly" + :cmdk.group/recently-updated "Nedávno aktualizované" + :cmdk.group/themes "Motivy" + + :cmdk.info/configure-tag "Konfigurovat #{1}" + :cmdk.info/create-page "Vytvořit stránku '{1}'" + :cmdk.info/create-tag "Vytvořit štítek '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Přidat filtr grafu" + :cmdk.input/default-placeholder "Co hledáte?" + :cmdk.input/move-blocks-placeholder "Přesunout bloky" + :cmdk.input/type-page-name-placeholder "Zadejte název stránky" + + :cmdk.tip/clear-filter "Stiskněte {1} pro vymazání filtru hledání" + :cmdk.tip/filter-results "Stiskněte {1} pro filtrování výsledků hledání" + :cmdk.tip/label "Tip:" + :cmdk.tip/open-sidebar "Stiskněte {1} pro otevření hledání v postranním panelu" + + :collaboration/email-address "E-mailová adresa" + :collaboration/invite "Pozvat" + :collaboration/members "Členové:" + :collaboration/remove-access "Odebrat přístup" + :collaboration/remove-access-error "Nepodařilo se odebrat člena" + + :color/blue "Modrá" + :color/crimson "karmínová" + :color/cyan "azurová" + :color/grass "trávová" + :color/gray "Šedá" + :color/green "Zelená" + :color/indigo "indigová" + :color/orange "oranžová" + :color/pink "Růžová" + :color/plum "švestková" + :color/purple "Fialová" + :color/red "Červená" + :color/teal "modrozelená" + :color/tomato "rajčatová" + :color/violet "fialková" + :color/yellow "Žlutá" + + :command.auto-complete/complete "Automatické doplňování: Vybrat vybranou položku" + :command.auto-complete/meta-complete "Meta-automatické dokončení" + :command.auto-complete/next "Automatické doplňování: Vyberte další položku" + :command.auto-complete/prev "Automatické doplňování: Výběr předchozí položky" + :command.auto-complete/shift-complete "Automatické doplňování: Otevřít vybranou položku v postranním panelu" + + :command.command-palette/toggle "Paleta příkazů" + + :command.editor/add-property "Přidat vlastnost" + :command.editor/add-property-deadline "Přidat termín" + :command.editor/add-property-icon "Přidat ikonu" + :command.editor/add-property-priority "Přidat prioritu" + :command.editor/add-property-status "Přidat stav" + :command.editor/add-reaction "Přidat reakci" + :command.editor/backspace "Odstranit dozadu" + :command.editor/backward-kill-word "Vymazat slovo dozadu" + :command.editor/backward-word "Přesunout kurzor o slovo dozadu" + :command.editor/beginning-of-block "Přesunout kurzor na začátek bloku" + :command.editor/bold "Tučný" + :command.editor/clear-block "Odstranit celý obsah bloku" + :command.editor/collapse-block-children "Sbalit" + :command.editor/copy "Kopírovat (kopíruje buď výběr, nebo odkaz na blok)" + :command.editor/copy-embed "Kopírovat vložený blok směřující k aktuálnímu bloku" + :command.editor/copy-page-url "Kopírovat URL stránky" + :command.editor/copy-text "Kopírovat výběr jako text" + :command.editor/cut "Vyjmout" + :command.editor/cycle-todo "Zmenit stav TODO aktuální položky" + :command.editor/delete "Odstranit dopředu" + :command.editor/delete-selection "Odstranit vybrané bloky" + :command.editor/down "Posunout kurzor dole/vybrat dolů" + :command.editor/end-of-block "Přesunout kurzor na konec bloku" + :command.editor/escape-editing "Zrušit úpravu" + :command.editor/expand-block-children "Rozbalit" + :command.editor/follow-link "Přejít na odkaz pod kurzorom" + :command.editor/forward-kill-word "Vymazat slovo dopředu" + :command.editor/forward-word "Posunout kurzor o slovo dopředu" + :command.editor/highlight "Zvýraznit" + :command.editor/indent "Odsadit blok" + :command.editor/insert-link "HTML odkaz" + :command.editor/insert-youtube-timestamp "Vložit časové razítko z YouTube" + :command.editor/italics "Kurzíva" + :command.editor/jump "Přejít" + :command.editor/kill-line-after "Odstranit řádek za pozicí kurzoru" + :command.editor/kill-line-before "Odstranit řádek před pozicí kurzoru" + :command.editor/left "Posunout kurzor doleva/otevřít vybraný blok na začátku" + :command.editor/move-block-down "Posunout blok dolů" + :command.editor/move-block-up "Posunout blok nahoru" + :command.editor/move-blocks "Přesunout bloky" + :command.editor/new-block "Vytvořit nový blok" + :command.editor/new-line "Nový řádek v aktuálním bloku" + :command.editor/open-edit "Upravit vybraný blok" + :command.editor/open-link-in-sidebar "Otevřít odkaz v postranním panelu" + :command.editor/open-selected-blocks-in-sidebar "Otevřít vybrané bloky v panelu" + :command.editor/outdent "Zrušit odsazení bloku" + :command.editor/paste-text-in-one-block-at-point "Vložit text do jednoho bloku na daném místě" + :command.editor/quick-add "Rychle přidat" + :command.editor/redo "Znovu" + :command.editor/right "Posunout kurzor doprava/otevřít vybraný blok na konci" + :command.editor/select-all-blocks "Vybrat všechny bloky" + :command.editor/select-block-down "Vybrat blok nižšpodie" + :command.editor/select-block-up "Vybrat blok nad" + :command.editor/select-down "Vybrat obsah pod" + :command.editor/select-parent "Vybrat rodičovský blok" + :command.editor/select-up "Vybrat obsah nad" + :command.editor/set-tags "Nastavit štítky" + :command.editor/strike-through "Preškrtnout" + :command.editor/toggle-block-children "Zobrazit/skrýt podřízené bloky" + :command.editor/toggle-display-hidden-properties "Zobrazit/skrýt skryté vlastnosti" + :command.editor/toggle-number-list "Číslovaný seznam" + :command.editor/toggle-open-blocks "Přepnout otevřené bloky (sbalit nebo rozbalit všechny bloky)" + :command.editor/undo "Zpátky" + :command.editor/up "Posunout kurzor nahoru/vybrat nahoru" + :command.editor/zoom-in "Přiblížit upravovaný blok / Jinak dopředu" + :command.editor/zoom-out "Oddálit upravaný blok / Jinak dozadu" + + :command.go/all-graphs "Přejít na všechny grafy" + :command.go/all-pages "Přejít na všechny stránky" + :command.go/backward "Zpátky" + :command.go/electron-find-in-page "Najít text na stránce" + :command.go/electron-jump-to-the-next "Přeskočit na další shodu s vyhledáváním v panelu Hledat" + :command.go/electron-jump-to-the-previous "Přeskočit na předchozí shodu vyhledávání v panelu Hledat" + :command.go/flashcards "Zobrazit/Skrýt kartičky" + :command.go/forward "Vpřed" + :command.go/graph-view "Přejít na zobrazení grafu" + :command.go/home "Přejít na domovskou stránku" + :command.go/journals "Přejít na deníky" + :command.go/keyboard-shortcuts "Přejít na klávesové zkratky" + :command.go/next-journal "Přejít na další denník" + :command.go/prev-journal "Přejít na předcházející denník" + :command.go/search "Hledat stránky a bloky" + :command.go/search-in-page "Hledat na stránce" + :command.go/search-themes "Hledat motivy" + :command.go/tomorrow "Přejít na zítřejší denník" + + :command.graph/add "Přidat graf" + :command.graph/db-add "Přidat do databáze" + :command.graph/db-save "Uložit databázi" + :command.graph/export-as-html "Exportovat veřejné stránky grafu jako HTML" + :command.graph/open "Vybrat graf na otevření" + :command.graph/remove "Odstranit graf" + + :command.misc/copy "Kopírovat" + :command.misc/export-block-data "Exportovat data bloku" + :command.misc/export-graph-ontology-data "Exportovat ontologii grafu" + :command.misc/export-page-data "Exportovat data stránky" + :command.misc/import-edn-data "Importovat data EDN" + + :command.page/toggle-favorite "Přidat/Odstranit z oblíbených" + + :command.pdf/close "PDF: Zavřít aktuální pdf dokument" + :command.pdf/find "PDF: Vyhledávání textu aktuálního pdf dokumentu" + :command.pdf/next-page "PDF: Další stránka aktuálního pdf dokumentu" + :command.pdf/previous-page "PDF: Předchozí stránka aktuálního pdf dokumentu" + + :command.publish/open-dialog "Otevřít dialog publikace" + + :command.search/re-index "Přestavět vyhledávací index" + + :command.shell/run "Spustiť příkaz GIT" + + :command.sidebar/clear "Vymazat vše v pravém postranním panelu" + :command.sidebar/close-top "Zavřít horní položku v pravém postranním panelu" + :command.sidebar/open-today-page "Otevřít dnešní stránku v pravém postranním panelu" + + :command.ui/clear-all-notifications "Vymazat všechna oznámení" + :command.ui/customize-appearance "Přizpůsobit vzhled" + :command.ui/goto-plugins "Přejít na ovládací panel zásuvných modulů" + :command.ui/highlight-recent-blocks "Zvýraznit nedávné bloky" + :command.ui/install-plugin-from-github "Nainstalovat plugin z GitHubu" + :command.ui/install-plugins-from-file "Nainstalovat zásuvné moduly ze souboru plugins.edn“" + :command.ui/select-theme-color "Vybrat dostupné barvy motivu" + :command.ui/toggle-brackets "Přepnout zobrazení závorek" + :command.ui/toggle-contents "Zobrazit/Skrýt obsah na postranním panelu" + :command.ui/toggle-document-mode "Zobrazit/Skrýt režim dokumentu" + :command.ui/toggle-help "Zobrazit/Skrýt nápovědu" + :command.ui/toggle-left-sidebar "Zobrazit/Skrýt levý postranní panel" + :command.ui/toggle-right-sidebar "Zobrazit/Skrýt pravý postranní panel" + :command.ui/toggle-settings "Přepnout nastavení" + :command.ui/toggle-theme "Přepínání mezi tmavým/světlým motivem" + :command.ui/toggle-wide-mode "Přepnout širokouhlý režim" + + :command.window/close "Zavřít okno" + + :context-menu/developer-tools "Vývojářské nástroje" + :context-menu/make-a-flashcard "Vytvořit kartičku" + :context-menu/set-icon "Nastavit ikonu" + :context-menu/toggle-number-list "Přepnout číslovaný seznam" + + :date/invalid-date-warning "{1} není platné datum. Zkuste to prosím znovu" + + :date.nlp/last-friday "Minulý pátek" + :date.nlp/last-monday "Minulé pondělí" + :date.nlp/last-month "Minulý měsíc" + :date.nlp/last-saturday "Minulou sobotu" + :date.nlp/last-sunday "Minulou neděli" + :date.nlp/last-thursday "Minulý čtvrtek" + :date.nlp/last-tuesday "Minulé úterý" + :date.nlp/last-wednesday "Minulou středu" + :date.nlp/last-week "Minulý týden" + :date.nlp/last-year "Minulý rok" + :date.nlp/next-friday "Příští pátek" + :date.nlp/next-monday "Příští pondělí" + :date.nlp/next-month "Příští měsíc" + :date.nlp/next-saturday "Příští sobotu" + :date.nlp/next-sunday "Příští neděli" + :date.nlp/next-thursday "Příští čtvrtek" + :date.nlp/next-tuesday "Příští úterý" + :date.nlp/next-wednesday "Příští středu" + :date.nlp/next-week "Příští týden" + :date.nlp/next-year "Příští rok" + :date.nlp/this-friday "Tento pátek" + :date.nlp/this-monday "Toto pondělí" + :date.nlp/this-month "Tento měsíc" + :date.nlp/this-saturday "Tuto sobotu" + :date.nlp/this-sunday "Tuto neděli" + :date.nlp/this-thursday "Tento čtvrtek" + :date.nlp/this-tuesday "Toto úterý" + :date.nlp/this-wednesday "Tuto středu" + :date.nlp/this-week "Tento týden" + :date.nlp/this-year "Tento rok" + :date.nlp/today "Dnes" + :date.nlp/tomorrow "Zítra" + :date.nlp/yesterday "Včera" + + :deeplink/open-block-error "Nepodařilo se otevřít odkaz. ID bloku `{1}` neexistuje v aktuálním grafu." + :deeplink/open-graph-error "Nepodařilo se otevřít graf. Graf `{1}` neexistuje." + :deeplink/open-page-error "Nepodařilo se otevřít odkaz. Stránka `{1}` neexistuje v aktuálním grafu." + + :editor/add-content-first-warning "Nejprve prosím přidejte nějaký obsah." + :editor/auto-heading "Automatický nadpis" + :editor/block-search "Vyhledání bloku" + :editor/click-to-edit "Kliknutím upravit" + :editor/code-language-placeholder "Vyberte jazyk" + :editor/collapse-block-children "Sbalit podřízené bloky" + :editor/cut "Vyjmout" + :editor/cycle-todo "Přepnout TODO" + :editor/delete-selection "Smazat výběr" + :editor/display-tag-inline-hint "pro zobrazení tohoto štítku přímo v textu místo na konci tohoto uzlu." + :editor/expand-block-children "Rozbalit podřízené bloky" + :editor/heading "Nadpis {1}" + :editor/moving-blocks-count "Přesouvání {1} bloků" + :editor/new-page "Nová stránka" + :editor/new-tag "Nový štítek" + :editor/no-block-selected-warning "Žádné bloky nevybrány" + :editor/paste "Vložit" + :editor/reference-node-use-page-ref "Chcete-li odkazovat na uzel, použijte `[[]]`." + :editor/remove-heading "Odstranit nadpis" + :editor/search-for-node "Hledat uzel" + :editor/search-for-tag "Hledat štítek" + :editor/search-template-placeholder "Hledat šablonu" + :editor/template-insert-error "Chyba vložení šablony: {1}" + + :editor.document-mode/new-block-hint "{1} pro vytvoření nového bloku" + :editor.document-mode/title "Režim dokumentu" + :editor.document-mode/toggle-desc "Klikněte `D` nebo zadejte {1} pro přepnutí režimu dokumentu" + + :editor.quick-add/add-to-today "Přidat na dnešní stránku" + :editor.quick-add/title "Rychlé přidání" + + :editor.slash/advanced-query "Pokročilý dotaz" + :editor.slash/advanced-query-desc "Vytvoř pokročilý dotazovací blok" + :editor.slash/calculator "Kalkulačka" + :editor.slash/calculator-desc "Vložit kalkulačku" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Blok kódu" + :editor.slash/code-block-desc "Vložit blok kódu" + :editor.slash/current-time "Aktuální čas" + :editor.slash/current-time-desc "Vložit aktuální čas" + :editor.slash/date-picker "Výběr data" + :editor.slash/date-picker-desc "Vyberte datum a vložte jej zde" + :editor.slash/embed-html "Vložit HTML" + :editor.slash/embed-twitter-tweet "Vložit tweet z Twitteru" + :editor.slash/embed-video-url "Vložit URL videa" + :editor.slash/embed-youtube-timestamp "Vložit časové razítko YouTube" + :editor.slash/group-advanced "POKROČILÉ" + :editor.slash/group-basic "ZÁKLADNÍ" + :editor.slash/group-format "FORMÁT" + :editor.slash/group-heading "Nadpis" + :editor.slash/group-list-type "TYP SEZNAMU" + :editor.slash/group-plugins "PLUGINY" + :editor.slash/group-priority "PRIORITA" + :editor.slash/group-task-date "DATUM ÚKOLU" + :editor.slash/group-task-status "STAV ÚKOLU" + :editor.slash/group-time-and-date "ČAS A DATUM" + :editor.slash/heading-label "Nadpis {1}" + :editor.slash/image-link "Odkaz na obrázek" + :editor.slash/image-link-desc "Vytvořit HTTP odkaz na obrázek" + :editor.slash/link-desc "Vytvořit HTTP odkaz" + :editor.slash/math-block "Matematický blok" + :editor.slash/math-block-desc "Vytvořit LaTeX blok" + :editor.slash/no-priority "Bez priority" + :editor.slash/node-embed "Vložit uzel" + :editor.slash/node-embed-desc "Vložit uzel sem" + :editor.slash/node-reference "Odkaz na uzel" + :editor.slash/node-reference-desc "Vytvořit zpětný odkaz na uzel (stránka nebo blok)" + :editor.slash/normal-text "Normální text" + :editor.slash/normal-text-desc "Smazat nadpis a nastavit na normální text" + :editor.slash/number-children "Číslovat potomky" + :editor.slash/number-list "Číslovaný seznam" + :editor.slash/priority-desc "Nastavit prioritu na {1}" + :editor.slash/priority-label "Priorita {1}" + :editor.slash/query-function "Funkce dotazu" + :editor.slash/query-function-desc "Vytvořit funkci dotazu" + :editor.slash/quote-desc "Vytvořit blok citátu" + :editor.slash/status-desc "Nastavit stav na {1}" + :editor.slash/template-desc "Vložit vytvořenou šablonu zde" + :editor.slash/today-desc "Vložit dnešní datum" + :editor.slash/tomorrow-desc "Vložit zítřejší datum" + :editor.slash/underline "Podtržení" + :editor.slash/underline-desc "Vytvořit podtržené formátování textu" + :editor.slash/upload-asset "Nahrát soubor" + :editor.slash/upload-asset-desc "Nahrát typy souborů jako obrázek, PDF, DOCX atd." + :editor.slash/yesterday-desc "Vložit včerejší datum" + + :electron/about "O Logseq" + :electron/add-to-dictionary "Přidat do slovníku" + :electron/block-not-exist "Otevření odkazu se nezdařilo. ID bloku `{1}` v grafu neexistuje." + :electron/cancel "Zrušit" + :electron/copy-image "Kopírovat obrázek" + :electron/link-open-confirm "Opravdu chcete otevřít tento odkaz?\n{1}" + :electron/link-open-failed-missing-graph "Nepodařilo se otevřít odkaz. Chybí graf." + :electron/link-open-failed-no-graph "Otevření odkazu se nezdařilo. Identifikátor grafu `{1}` se nepodařilo přiřadit k žádnému propojenému grafu." + :electron/link-open-failed-no-target "Otevření odkazu se nezdařilo. `{1}` se nepodařilo přiřadit k žádnému cíli." + :electron/look-up "Hledat výběr" + :electron/main-exception "[Výjimka hlavního procesu]\n{1}\n{2}" + :electron/new-window "Nové okno" + :electron/official-docs "Oficiální dokumentace" + :electron/ok "OK" + :electron/open-dir-error "Nepodařilo se otevřít adresář: {1}" + :electron/save-image "Uložit obrázek" + :electron/save-image-as "Uložit obrázek jako" + :electron/search-with-google "Hledat na Google" + :electron/unimplemented-callback "Neimplementovaná akce x-callback-url: `{1}`." + :electron/version "Verze {1}" + :electron/write-file-error "Zápis do souboru {1} selhal, {2}." + :electron/write-file-error-with-backup "Zápis do souboru {1} selhal, {2}. Záložní soubor byl uložen do {3}." + + :encryption/cloud-password-rich (fn [] ["Pokud ztratíte heslo, žádná vaše data v cloudu nebude možné dešifrovat. " [:span "Pořád ale budete mít přístup k místní verzi svého grafu."]]) + :encryption/current-password "Aktuální heslo" + :encryption/enter-password "Zadejte heslo" + :encryption/enter-password-again "Zadejte heslo znovu" + :encryption/enter-password-title "Zadejte heslo" + :encryption/failed-to-force-reset-password "Nepodařilo se vynutit reset hesla" + :encryption/failed-to-update-password "Nepodařilo se aktualizovat heslo" + :encryption/fetch-key-pair-error "Chyba při načítání páru klíčů rsa uživatele: {1}" + :encryption/fetching-key-pair "Načítání páru klíčů" + :encryption/force-reset-password "Vynutit reset hesla" + :encryption/force-reset-password-successfully "Heslo vynuceně resetováno" + :encryption/force-resetting-password "Vynucený reset" + :encryption/forgot-password-question "Zapomněli jste heslo?" + :encryption/forgot-password-warning "Pokud zapomenete heslo, šifrovaná data nebude možné obnovit." + :encryption/init-key-pair "Inicializovat pár klíčů" + :encryption/init-key-pair-error "Chyba inicializačního páru klíčů: {1}" + :encryption/password-not-matched "Hesla se neshodují" + :encryption/password-updated-successfully "Heslo aktualizováno" + :encryption/remember-password-rich (fn [] [[:span "Ujistěte se prosím, že si "] "nastavené heslo pamatujete, protože pokud ho zapomenete, nemůžeme ho resetovat ani obnovit, " [:span "a doporučujeme "] "uložit si jeho bezpečnou zálohu."]) + :encryption/reset-password "Resetovat heslo" + :encryption/set-new-password "Nastavit nové heslo" + :encryption/set-password-title "Nastavit heslo" + :encryption/updating-password "Aktualizace hesla" + :encryption/wrong-password "Nesprávné heslo" + + :export/backup-successful "Záloha vytvořena!" + :export/block-data-copied "Data bloku zkopírována do schránky" + :export/collecting-assets "Shromažďování souborů" + :export/copied-to-clipboard "Zkopírováno do schránky!" + :export/copy-or-export-as "Kopírovat / Exportovat jako..." + :export/creating-zip "Vytváření zipu" + :export/db-backup-error "Nepodařilo se vytvořit zálohu DB." + :export/db-edn "Exportovat jako soubor EDN" + :export/debug-transit-desc "Exportuje do souboru .transit pro účely ladění. Citlivá data budou z exportovaného souboru odstraněna." + :export/debug-transit-file "Exportovat ladicí transit soubor" + :export/edn-desc "Exportuje do čitelného a editovatelného souboru .edn. Nespoléhejte na tento formát jako na primární zálohu." + :export/error-unexpected "Během exportu došlo k neočekávané chybě. Podrobnosti naleznete v konzole JavaScript." + :export/exporting "Exportování" + :export/finalizing "Dokončování" + :export/format-text "Text" + :export/graph "Exportovat graf" + :export/graph-ontology-data-copied "Data ontologie grafu zkopírována do schránky" + :export/indent-style-dashes "pomlčky" + :export/indent-style-label "Styl odsazení:" + :export/indent-style-none "bez odsazení" + :export/indent-style-spaces "mezery" + :export/level-lte "úroveň <=" + :export/markdown "Exportovat jako Markdown (bez vlastností bloků)" + :export/newline-after-block "nový řádek po bloku" + :export/no-updates-since-last-export "Žádné aktualizace od posledního exportu." + :export/open-blocks-only "jen otevřené bloky (přeskočit sbalené potomky)" + :export/page "Exportovat stránku" + :export/page-data-copied "Data stránky zkopírována do schránky" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Příprava zipu" + :export/preview-alt "náhled exportu" + :export/public-pages "Exportovat veřejné stránky" + :export/remove-emphasis "odstranit zvýraznění" + :export/remove-properties "odstranit vlastnosti" + :export/remove-tags "odstranit #štítky" + :export/save-to-file "Uložit do souboru" + :export/sqlite-db "Exportovat databázi SQLite" + :export/title "Export" + :export/transparent-background "Průhledné pozadí" + :export/view-nodes-data-copied "Data uzlů pohledu zkopírována do schránky" + :export/zip "Exportovat DB SQLite a soubory" + :export/zip-error "Export ZIP selhal." + + :export.backup/backup-now "Zálohovat nyní" + :export.backup/cancel "Zrušit zálohu" + :export.backup/enabled-desc "Hodinové zálohy jsou pro tento graf povoleny, {1}." + :export.backup/folder "Složka záloh:" + :export.backup/hourly-note "Záloha bude vytvořena každou hodinu." + :export.backup/open-folder "otevřít složku záloh tohoto grafu" + :export.backup/schedule "Naplánovat zálohu" + :export.backup/set-folder-first "Nejprve nastavte složku záloh" + :export.backup/sqlite-desc "Primární způsob zálohování obsahu grafu do jednoho souboru .sqlite." + :export.backup/unsupported-desc "Váš prohlížeč nepodporuje {{The File System Access API}}, přepněte prosím na prohlížeč založený na Chromiu." + :export.backup/zip-desc "Primární způsob zálohování obsahu grafu a souborů do souboru .zip." + + :file/config-duplicate-keys "Soubor '{1}' má duplicitní klíče. Klíč '{2}' je přiřazen vícekrát." + :file/config-invalid "Konfigurační soubor je neplatný" + :file/format-not-supported "Formát .{1} není podporován." + :file/label "Soubor" + :file/last-modified-at "Naposledy upraveno v" + :file/name "Název souboru" + :file/no-data "Žádná data" + :file/title "Soubor {1}" + + :file.config/deprecation-title "Soubor {1} má následující zastarálosti:" + :file.config/error-title "Soubor {1} má následující chyby:" + :file.config/invalid-desc "Ujistěte se, že je konfigurace uzavřena v {}." + :file.config/invalid-title "Soubor {1} není platný." + :file.config/read-failed-desc "Ujistěte se, že je konfigurace uzavřena v {}. Také se ujistěte, že znaky '( { [' mají odpovídající uzavírací znak ') } ]'." + :file.config/read-failed-title "Čtení souboru {1} se nezdařilo" + + :flashcard/add-query "Přidat nový dotaz" + :flashcard/all-cards "Všechny kartičky" + :flashcard/select-cards "Vybrat kartičky" + :flashcard/shortcut-tooltip "Klávesová zkratka: {1}" + + :flashcard.empty/desc "Můžete přidat „{1}“ k jakémukoli bloku, abyste z něj udělali kartu, nebo spustit „/cloze“ pro přidání některých cloze." + :flashcard.empty/title "Vítejte v Kartičkách" + + :flashcard.rating/again "Znovu" + :flashcard.rating/again-desc "Odpověď byla špatně. To automaticky znamená, že jsme kartičku zapomněli. Je to výpadek paměti。" + :flashcard.rating/easy "Snadné" + :flashcard.rating/easy-desc "Odpověď byla správná a vybavili jsme si ji rychle a jistě, bez mentální námahy。" + :flashcard.rating/good "Dobré" + :flashcard.rating/good-desc "Odpověď byla správná, ale stálo nás určité mentální úsilí si ji vybavit。" + :flashcard.rating/hard "Těžké" + :flashcard.rating/hard-desc "Odpověď byla správná, ale nebyli jsme si jí jistí nebo nám trvalo příliš dlouho si ji vybavit." + + :flashcard.review/finished "Hotovo! 💯" + :flashcard.review/hide-answers "Skrýt odpovědi" + :flashcard.review/show-answers "Zobrazit odpovědi" + :flashcard.review/show-clozes "Zobrazit mezery" + + :format/bold "Tučné" + :format/code "Kód" + :format/highlight "Zvýraznění" + :format/italics "Kurzíva" + :format/strikethrough "Přeškrtnutí" + + :graph/all-graphs "Všechny grafy" + :graph/already-exists-error "Graf '{1}' již existuje. Zkuste prosím jiný název." + :graph/as-png "jako PNG" + :graph/built-in-pages "Vestavěné stránky" + :graph/charge-range "Rozsah náboje" + :graph/charge-strength "Síla náboje" + :graph/click-to-search "Klikněte pro vyhledávání" + :graph/create-db "Vytvořit DB graf" + :graph/create-error "Nepodařilo se vytvořit graf" + :graph/create-new "Vytvořit nový graf" + :graph/created-before "Vytvořeno před" + :graph/creating "Vytváření grafu" + :graph/delete-local-action "Smazat lokální graf" + :graph/delete-local-confirm-desc "Opravdu chcete trvale smazat graf \"{1}\" z Logseq?" + :graph/delete-server-action "Smazat ze serveru" + :graph/delete-server-confirm-desc "Opravdu chcete trvale smazat graf \"{1}\" z našeho serveru?" + :graph/delete-warning "⚠️ Upozorňujeme, že po smazání nemůžeme tento graf obnovit. Před smazáním se ujistěte, že máte zálohy." + :graph/diff "Git diff" + :graph/downloading "stahování" + :graph/encrypt-data-label "Zašifrovat data grafu" + :graph/excluded-pages "Vyloučené stránky" + :graph/forces "Síly" + :graph/gc-success "Úklid grafu proběhl úspěšně!" + :graph/last-opened-at-label "Naposledy otevřeno: {1}" + :graph/leave-action "Opustit tento graf" + :graph/leave-confirm-desc "Opravdu chcete opustit tento graf?" + :graph/leave-error "Nepodařilo se opustit graf" + :graph/left "Graf opuštěn" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "odkaz" "odkazů"))) + :graph/link-distance "Vzdálenost propojení" + :graph/local-graphs "Lokální grafy" + :graph/n-hops-from-selected-nodes "N skoků od vybraných uzlů" + :graph/name-placeholder "název vašeho grafu" + :graph/nodes "Uzly" + :graph/orphan-pages "Osiřelé stránky" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "stránka" "stránek"))) + :graph/pause-simulation "Pozastavit simulaci" + :graph/preparing "příprava" + :graph/refresh-remote-graphs "Obnovit vzdálené grafy" + :graph/remote-graphs "Vzdálené grafy" + :graph/removed "Odebrán graf „{1}“" + :graph/removed-and-redirecting "Odstraněn graf „{1}“. Přesměrování na graf „{2}“" + :graph/removed-from-sync "Graf odstraněn ze synchronizace" + :graph/reset "Resetovat graf" + :graph/reset-forces "Resetovat síly" + :graph/search "Hledat" + :graph/shared-graphs "Sdílené grafy" + :graph/updated-switching "Graf aktualizován. Přepínání..." + :graph/use-sync-beta "Použít Logseq Sync (beta testování)" + :graph/use-sync-label "Použít Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Výpočet diagnostiky kontrolního součtu grafu selhal." + :graph.diagnostics/checksum-recomputed-success "Kontrolní součet byl přepočítán. Přepočítaný: {1}, lokální: {2}, vzdálený: {3}. Byl stažen soubor {4}.edn s {5} bloky a atributy kontrolního součtu {6}." + :graph.diagnostics/checksum-unavailable-warning "Nelze vypočítat diagnostiku kontrolního součtu pro aktuální graf." + :graph.diagnostics/client-ops-export-failed-error "Nepodařilo se exportovat Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Export Client ops SQLite selhal: neplatný typ payloadu {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exportován: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Nebyl nalezen žádný graf." + + :graph.page/show-journals "Zobrazit deníky" + :graph.page/title "Graf stránky" + + :graph.switch/add-graph-action "Ano, přidejte další graf" + :graph.switch/empty-desc "Žádné odpovídající grafy. Chcete přidat další?" + :graph.switch/prompt "Přepnout" + :graph.switch/select-prompt "Vyberte graf" + + :graph.validation/config-arweave-gateway-warning "již není podporováno." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "již není podporováno. Prosím použijte '/' a hlaste chyby." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "se v grafech DB nepoužívá, protože existuje pouze režim značkovacího jazyka." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Ověření zjistilo {1} neplatný blok (bloky). Tyto bloky mohou být chybné. Pokus o opravu neplatných bloků. Spusťte ověření znovu, aby se zobrazilo, zda byly opraveny." + :graph.validation/name-reserved-characters-warning "Název grafu nesmí obsahovat následující vyhrazené znaky:" + :graph.validation/reserved-character-asterisk "hvězdička" + :graph.validation/reserved-character-backslash "zpětné lomítko" + :graph.validation/reserved-character-colon "dvojtečka" + :graph.validation/reserved-character-double-quote "dvojitá uvozovka" + :graph.validation/reserved-character-forward-slash "lomítko" + :graph.validation/reserved-character-greater-than "větší než" + :graph.validation/reserved-character-hash "mřížka" + :graph.validation/reserved-character-less-than "menší než" + :graph.validation/reserved-character-pipe "svislá čára nebo pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "otazník" + :graph.validation/valid "Váš graf je platný! {1}" + + :header/go-back "Zpět" + :header/go-forward "Vpřed" + :header/highlight-recent-blocks "Zvýraznit nedávné bloky" + :header/highlight-recent-blocks-days-ago "Zvýraznit nedávné bloky: před {1} dny" + :header/more "Více" + :header/quit-highlight-recent-blocks "Ukončit zvýraznění nedávných bloků" + :header/toggle-left-sidebar "Přepnout levý panel" + + :help/about "O Logseq" + :help/about-title "O aplikaci" + :help/ask-community "Zeptejte se komunity" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Reference na blok" + :help/blog "Blog" + :help/bug "Nahlásit chybu na GitHubu" + :help/changelog "Protokol změn" + :help/community-title "Komunita" + :help/context-menu "Kontextová nabídka bloku" + :help/context-menu-action "Kliknutí pravým tlačítkem na odrážku" + :help/development-title "Vývoj" + :help/docs "Dokumentace" + :help/feature "Požadavek na funkci" + :help/forum-community "Komunita na fóru" + :help/handbook "Příručka" + :help/learn-more "Zjistit více" + :help/markdown-syntax "Markdown syntaxe" + :help/open-link-in-sidebar "Otevřít odkaz v postranním panelu" + :help/open-link-in-sidebar-action "Shift+klik na odkaz" + :help/privacy "Zásady ochrany osobních údajů" + :help/reference-autocomplete "Automatické dokončování odkazů na stránky" + :help/release-notes "Poznámky k vydání" + :help/roadmap "Plán vývoje" + :help/search "Hledat" + :help/slash-autocomplete "Automatické dokončování lomítka" + :help/start "Začínáme" + :help/submit-feedback "Odeslat zpětnou vazbu" + :help/support-forum "Fórum podpory" + :help/terms "Podmínky" + :help/terms-title "Podmínky" + :help/usage-title "Používání" + + :help.handbook/chat-on-discord "Chat na Discordu" + :help.handbook/chat-on-discord-desc "Ptejte se, potkávejte se s ostatními uživateli a učte se nové postupy." + :help.handbook/copy-topic-link "Kopírovat odkaz na téma" + :help.handbook/current-chapter "Aktuální kapitola" + :help.handbook/help-categories "Kategorie nápovědy" + :help.handbook/home "Domů" + :help.handbook/link-copied "Odkaz na příručku zkopírován!" + :help.handbook/monthly-posts "měsíčních příspěvků" + :help.handbook/next-chapter "Další kapitola" + :help.handbook/popular-topics "Populární témata" + :help.handbook/prev-chapter "Předchozí kapitola" + :help.handbook/resources-from "Zdroje od {1}" + :help.handbook/search-placeholder "Hledat" + :help.handbook/shortcuts-count "{1} zkratek" + :help.handbook/sync "Synchronizace" + :help.handbook/title "Příručka" + :help.handbook/topics "Témata" + :help.handbook/users-online "uživatelů online" + :help.handbook/visit-the-forum "Navštívit fórum" + :help.handbook/visit-the-forum-desc "Poskytněte zpětnou vazbu, požadujte funkce a veďte podrobné diskuze." + :help.handbook/writing-mode "Režim psaní (náhled v čase)" + + :help.shortcuts/desc "Zobrazit zkratky a tipy" + :help.shortcuts/label "Klávesové zkratky" + :help.shortcuts/shortcut-column "Zkratky" + :help.shortcuts/title "Klávesové zkratky" + :help.shortcuts/triggers "Akce" + + :icon/emojis-count "Emoji ({1})" + :icon/icons-count "Ikony ({1})" + :icon/matched-count "Nalezeno ({1})" + :icon/search-all "Hledat vše" + :icon/search-emojis "Hledat emoji" + :icon/search-icons "Hledat ikony" + :icon/tab-all "Vše" + :icon/tab-emojis "Emoji" + :icon/tab-icons "Ikony" + + :import/all-tags "Importovat všechny štítky" + :import/asset-too-large-warning "Kopírování assetu {1} bylo přeskočeno, protože překračuje limit 100 MB." + :import/assets-import-partial "{1}/{2} souborů importováno. Podrobnosti v konzoli." + :import/assets-imported "{1} souborů importováno." + :import/assets-skipped "{1} souborů přeskočeno. Podrobnosti v konzoli." + :import/block-icons-cannot-be-imported "Ikony bloků nelze importovat. Importujte ručně v bloku {1}." + :import/cannot-import-block-into-non-block-entity "Nelze importovat blok do entity, která není blokem." + :import/db-edn-desc "Importovat EDN export DB grafu do nového DB grafu" + :import/db-edn-title "EDN do DB grafu" + :import/debug-transit-desc "Importovat ladicí transit soubor do nového DB grafu" + :import/debug-transit-title "Ladicí Transit" + :import/default-db-graph-behavior "Výchozí chování DB grafu" + :import/empty-graph-name "Název grafu nemůže být prázdný." + :import/extract-inline-code-snippets "Extrahovat inline kód jako podbloky" + :import/file-finished "Import dokončen!" + :import/file-to-db-desc "Importovat souborový graf Logseq do nového DB grafu" + :import/file-to-db-title "Soubor do DB grafu" + :import/graph-name-conflict "Graf s tímto názvem již existuje. Zvolte jiný název!" + :import/graph-name-placeholder "Název grafu" + :import/ignored-assets "{1} souborů přeskočeno při importu. Podrobnosti v JavaScript konzoli." + :import/ignored-files "{1} souborů přeskočeno při importu. Podrobnosti v JavaScript konzoli." + :import/ignored-properties "{1} vlastností přeskočeno při importu" + :import/ignored-properties-fix "Pro opravu typu vlastnosti změňte hodnotu na správný typ a opakujte import" + :import/invalid-blocks-detected "{1} neplatných bloků zjištěno při importu. Interakce nemusí fungovat. Podrobnosti v JavaScript konzoli." + :import/invalid-edn-file "Poskytnutý soubor EDN je neplatný. Opravte a zkuste znovu." + :import/loading "Importování" + :import/logseq-config-missing "Chyba importu: graf Logseq neobsahuje soubor 'logseq/config.edn'." + :import/new-graph-name "Nový název grafu" + :import/notes "Importovat poznámky" + :import/org-files-imported "{1} souborů Org importováno jako Markdown. Podpora Org bude přidána později." + :import/page-icons-cannot-be-imported "Ikony stránek nelze importovat. Importujte ručně na stránce {1}." + :import/properties-case-insensitive-commas "Názvy vlastností (bez rozlišení velikosti písmen, oddělené čárkami)" + :import/property-classes-placeholder "např. type" + :import/property-import-manually "Tuto vlastnost je třeba importovat ručně" + :import/property-parent-classes-placeholder "např. parent" + :import/property-type-mismatch "Hodnota vlastnosti je typu {1}, ne {2}" + :import/property-value-tag-parents "Importovat rodiče štítků z hodnot vlastností" + :import/property-value-tags "Importovat další štítky z hodnot vlastností" + :import/remove-inline-tags "Odstranit inline štítky" + :import/select-edn-or-json "Vyberte soubor EDN nebo JSON." + :import/specific-tags "Importovat konkrétní štítky" + :import/sqlite-and-assets-desc "Importovat zip obsahující db.sqlite a složku souborů" + :import/sqlite-and-assets-title "SQLite + soubory (.zip)" + :import/submitted-edn-invalid "Poskytnutá data EDN jsou neplatná! Opravte a zkuste znovu." + :import/successful "Import úspěšný!" + :import/tag-classes-placeholder "Štítek1, Štítek2" + :import/tags-case-insensitive "Štítky (bez rozlišení velikosti písmen)" + :import/title "Import" + :import/unexpected-error "Neočekávaná chyba: {1}" + :import/zip-import-error "Import ZIP se nezdařil: {1}" + :import/zip-missing-db-sqlite "ZIP neobsahuje db.sqlite" + + :journal/add-blocks-to-today-success "Bloky přidané dnes" + :journal/page-cant-convert-warning "Tato stránka není stránkou deníku." + :journal/parse-date-to-name-error "Nepodařilo se analyzovat název deníku" + + :journal.default-query/doing "PROBÍHÁ" + :journal.default-query/todo "K VYŘÍZENÍ" + + :keymap/all "Všechny" + :keymap/already-bound "Zkratka již přiřazena" + :keymap/also-used-for-action "Také používáno pro {1}" + :keymap/also-used-for-action-in-context "Také používáno pro {1} V kontextu {2}" + :keymap/clear "Vymazat" + :keymap/clear-keystroke-filter "Vymazat filtr kláves" + :keymap/clear-search "Vymazat hledání" + :keymap/custom "Vlastní" + :keymap/deactivates-chord "Deaktivuje" + :keymap/deactivates-chords "Deaktivuje {1} kombinací zkratek" + :keymap/disabled "Zakázané" + :keymap/esc-is-reserved "Esc je rezervován" + :keymap/hint-cancel "Zrušit" + :keymap/hint-close "Zavřít" + :keymap/hint-reassign "Přiřadit znovu" + :keymap/hint-remove "Odstranit" + :keymap/keystroke-filter "Filtr podle stisknutí" + :keymap/no-matching-shortcuts "Žádné odpovídající zkratky" + :keymap/press-a-shortcut "Stiskněte klávesovou zkratku" + :keymap/press-keys-to-filter "Stiskněte klávesy pro filtrování" + :keymap/reassign "Přiřadit znovu" + :keymap/reassign-tooltip "Přiřadit znovu zkratku této akce" + :keymap/reassigned-from "Přiřazeno znovu z {1}" + :keymap/refresh-all "Obnovit vše" + :keymap/remove-binding "Odebrat přiřazení" + :keymap/remove-filter "Odebrat filtr" + :keymap/reset "Resetovat" + :keymap/reset-to-default "Resetovat na výchozí" + :keymap/search-by-keys "Hledat podle kláves" + :keymap/search-placeholder "Hledat zkratky…" + :keymap/shortcut-added "Zkratka přidána" + :keymap/shortcut-removed "Zkratka odstraněna" + :keymap/toggle-categories-pane "Přepnout panel kategorií" + :keymap/undo "Zpět" + :keymap/unset "Nenastaveno" + :keymap/used-by-action "Používáno {1}" + + :library/add-existing-pages "Přidat existující stránky do Knihovny" + :library/add-pages "Přidat stránky" + :library/title "Knihovna" + + :mobile/camera-access-denied "Přístup k fotoaparátu je odepřen. Povolte jej v Nastavení > Logseq." + :mobile/microphone-access-denied "Přístup k mikrofonu je odepřen. Povolte jej v Nastavení > Logseq." + + :mobile.header/actions "Akce" + :mobile.header/create-graph "Vytvořit graf" + :mobile.header/delete-block-confirm-desc "Smazat tento blok?" + :mobile.header/delete-page-confirm-desc "Smazat tuto stránku?" + + :mobile.intent/file-options "Možnosti souboru" + :mobile.intent/open-with-app "Otevřít soubor ve vaší oblíbené aplikaci" + :mobile.intent/select-option-prompt "Vyberte akci k provedení" + :mobile.intent/share "Sdílet" + + :mobile.log/all "Všechny" + :mobile.log/errors-only "Pouze chyby" + :mobile.log/full "Plný" + :mobile.log/new-first "Nejnovější první" + :mobile.log/old-first "Nejstarší první" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Účet" + :mobile.settings/check-log "Protokol" + :mobile.settings/discord-community "Komunita Discord" + :mobile.settings/forum "Fórum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Nahlásit chybu" + :mobile.settings/revision "Revize" + :mobile.settings/theme "Motiv" + :mobile.settings/version "Verze" + + :mobile.share/file-import-error "Import souboru selhal" + :mobile.share/media-import-error "Import médií selhal" + :mobile.share/unsupported-content-warning "Analýza aktuálního sdíleného obsahu není podporována. Nahlaste prosím následující kódy na {1}. Brzy se na to podíváme." + :mobile.share/unsupported-import-type "Import souboru {1} není podporován. Můžete to nahlásit na {2}. Brzy se na to podíváme." + + :mobile.tab/capture "Zachytit" + :mobile.tab/go-to "Přejít na" + :mobile.tab/graphs "Grafy" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Kopírovat referenci" + :mobile.toolbar/copy-url "Kopírovat URL" + :mobile.toolbar/hide "Skrýt" + :mobile.toolbar/indent "Odsadit" + :mobile.toolbar/outdent "Zmenšit odsazení" + :mobile.toolbar/photo "Fotografie" + :mobile.toolbar/redo "Znovu" + :mobile.toolbar/reference "Odkaz" + :mobile.toolbar/slash "Lomítko" + :mobile.toolbar/tag "Štítek" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Zpět" + :mobile.toolbar/unselect "Zrušit výběr" + + :nav/all-files "Všechny soubory" + :nav/all-journals "Všechny deníky" + :nav/appearance "Vzhled" + :nav/assets "Soubory" + :nav/cannot-go-to-internal-page "Nelze přejít na interní stránku" + :nav/flashcards "Kartičky" + :nav/graph "Graf" + :nav/graph-view "Zobrazení grafu" + :nav/help "Nápověda" + :nav/home "Domů" + :nav/invalid-jump-error "Neplatný skok" + :nav/journals "Deníky" + :nav/plugins "Pluginy" + :nav/search "Hledat" + :nav/settings "Nastavení" + :nav/skip-to-main-content "Přeskočit na hlavní obsah" + :nav/tasks "Úkoly" + :nav/themes "Motivy" + + :nav.all-pages/label "Všechny stránky" + :nav.all-pages/title "Všechny stránky" + + :node/built-in-cant-delete-error "Vestavěné prvky nelze smazat." + :node/new "Nový uzel" + + :notification/clear-all "Odstranit vše" + :notification/copied "Zkopírováno" + + :onboarding.import/desc "Popis importu" + :onboarding.import/sqlite-desc "Import z databáze SQLite" + :onboarding.import/title "Import" + + :onboarding.import-option/desc "Můžete importovat data z jiných aplikací" + :onboarding.import-option/title "Import dat" + + :onboarding.setup/desc "Pracovní prostor pro vaše znalosti" + :onboarding.setup/title (fn [] ["Vítejte v " [:strong "Logseq!"]]) + + :page/add-to-favorites "Přidat do oblíbených" + :page/added-tag-to-node "Přidána značka „{1}“ k „{2}“" + :page/backlinks "Zpětné odkazy" + :page/clear "Vymazat" + :page/clear-local-storage-desc "Tímto se smažou drobné preference, jako je nastavení tmavého/světlého motivu." + :page/cleared "Vymazáno" + :page/contents "Obsah" + :page/convert-to-tag "Převést na štítek" + :page/copy-url "Zkopírovat adresu URL stránky" + :page/create "Vytvořit novou stránku" + :page/created-at "Vytvořeno v" + :page/current-graph-as-sqlite-db "aktuální graf jako SQLite databáze" + :page/default-query-error "Chyba výchozího dotazu:" + :page/delete "Smazat stránku" + :page/go-back-home "Přejít na hlavní stránku" + :page/hide-properties "Skrýt vlastnosti" + :page/local-storage "místní úložiště" + :page/logseq-is-having-a-problem "Logseq má problém. Chcete-li se pokusit uvést jej zpět do funkčního stavu, vyzkoušejte prosím následující bezpečné kroky v uvedeném pořadí:" + :page/make-private "Označit stránku jjako soukromou" + :page/make-public "Označit stránku jjako veřejnou" + :page/moved-to-recycle "Uzel byl přesunut do koše" + :page/name "Název stránky" + :page/no-page-found-to-copy "Nebyla nalezena stránka ke zkopírování" + :page/not-found "Stránka nenalezena" + :page/not-found-desc "Ups! Stránka, kterou hledáte, neexistuje." + :page/not-found-title "Stránka nenalezena" + :page/not-found-warning "Stránka nenalezena" + :page/open-all-graphs-desc "Můžete také přejít na {{All graphs}} a přepnout na jiný graf." + :page/open-issue-desc "Pokud tyto kroky nevyřešily váš problém, prosím {{open an issue}}." + :page/open-properties "Otevřít vlastnosti" + :page/rebuild "Přestavět" + :page/relaunch "Restartovat" + :page/relaunch-desc "Ukončit a znovu otevřít aplikaci." + :page/scheduled-and-deadline "Naplánováno a termín" + :page/search-index "index vyhledávání" + :page/send-db-for-debugging "Můžete ho poslat na help@logseq.com k ladění." + :page/something-went-wrong "Něco se pokazilo" + :page/step "Krok {1}" + :page/the-app "aplikace" + :page/try "Zkusit" + :page/unfavorite "Odebrat z oblíbených" + :page/unknown "Neznámá stránka" + :page/updated-at "Aktualizováno v" + + :page.convert/block-parent-not-page "Nelze převést blok. Rodič není stránka." + :page.convert/cant-be-block "Stránku „{1}“ nelze převést na blok." + :page.convert/cant-be-block-has-children "Stránku „{1}“ nelze převést na blok, protože má podřízené stránky." + :page.convert/cant-be-block-move-first "Stránku „{1}“ nelze převést na blok, nejprve ji prosím přesuňte na jinou stránku." + :page.convert/page-to-tag-action "Převést \"{1}\" na štítek" + :page.convert/page-to-tag-built-in "Vestavěné stránky nemohou být štítky" + :page.convert/page-to-tag-duplicate "Značka s názvem „{1}“ již existuje." + :page.convert/page-to-tag-namespaced "Stránky s jmenným prostorem nemohou být štítky" + :page.convert/property-value-to-page "Nelze převést hodnotu vlastnosti na stránku." + :page.convert/tag-to-page-action "Převést štítek na stránku" + :page.convert/tag-to-page-built-in "Vestavěné štítky nemohou být stránkami" + :page.convert/tag-to-page-confirm-desc "Převedení štítku na stránku také odstraní jeho vlastnosti štítku a tento štítek ze všech uzlů, které jím jsou označeny. Souhlasíte s tím?" + :page.convert/tag-to-page-duplicate "Stránka s názvem „{1}“ již existuje." + :page.convert/tag-to-page-has-children "Štítek má podřízené prvky a nelze ho převést" + + :page.delete/batch-confirm-title "Opravdu chcete smazat tyto stránky? Vlastnosti a štítky budou trvale smazány a stránky budou přesunuty do Koše." + :page.delete/confirm-title "Opravdu chcete smazat tuto stránku?" + :page.delete/permanent-confirm-title "Opravdu chcete trvale smazat tuto stránku?" + :page.delete/success "Stránka „{1}“ byla úspěšně smazána!" + :page.delete/total "Celkem: {1}" + :page.delete/warning "Obsah těchto stránek byl smazán, ale nepodařilo se je smazat: {1}. Další podrobnosti naleznete v konzole javascript." + + :page.validation/cant-set-built-in-tags "Nová stránka nemůže nastavit vestavěné značky: {1}" + :page.validation/duplicate "Jiná stránka s názvem „{1}“ již existuje pro značky: {2}." + :page.validation/name-blank "Název stránky nemůže být prázdný." + :page.validation/name-no-hash "Název stránky nemůže obsahovat #" + :page.validation/name-no-slash "Název stránky nemůže obsahovat /." + :page.validation/parents-must-be-pages "Rodiče stránek musí být stránky." + + :pdf/annotations-page "Stránka anotací" + :pdf/area-highlight-shortcut "Zvýraznění oblasti ({1})" + :pdf/auto-fit "Automatické přizpůsobení" + :pdf/auto-open-context-menu "Automaticky otevírat kontextové menu" + :pdf/copy-ref "Kopírovat odkaz" + :pdf/copy-text "Kopírovat text" + :pdf/corrupted-file-error "Chyba: {1}\nJe tento soubor .pdf poškozený?\nOvěřte prosím v externím prohlížeči PDF." + :pdf/doc-metadata "Metadata dokumentu" + :pdf/enter-to-search "Enter pro hledání" + :pdf/find-results "{1} z {2} shod (\"{3}\")" + :pdf/generic-error "Chyba: {1}\n{2}\nOvěřte prosím zdroj PDF souboru." + :pdf/highlight-mode "Režim zvýrazňování" + :pdf/highlights "Zvýraznění" + :pdf/hl-block-colored "Barevný štítek pro zvýraznění bloku" + :pdf/linked-ref "Prepojené odkazy" + :pdf/load-highlights-file-error "Chyba: selhalo načtení souboru zvýraznění: \"{1}\". \n{2}" + :pdf/missing-file-error "Chyba: {1}\n Je tato cesta správná?" + :pdf/more-settings "Další nastavení" + :pdf/no-outlines "Žádné osnovy" + :pdf/not-found "Nenalezeno." + :pdf/open-in-app-window "Otevřít v okně aplikace" + :pdf/open-in-external-window "Otevřít v externím okně" + :pdf/outline "Osnova" + :pdf/page-label "Strana {1}" + :pdf/password-protected-desc "Tento dokument je chráněn heslem. Zadejte prosím heslo:" + :pdf/password-required "Vyžadováno heslo" + :pdf/search "Hledat" + :pdf/search-placeholder "hledat" + :pdf/toggle-dashed "Čárkovaný styl pro zvýraznění oblasti" + :pdf/viewer "prohlížeč PDF" + :pdf/zoom-in "Přiblížit" + :pdf/zoom-out "Oddálit" + + :plugin/all "Všechny" + :plugin/auto-update-check "Automaticky kontrolovat aktualizace" + :plugin/auto-update-check-feedback "Automatická kontrola aktualizací: {1}!" + :plugin/check-all-updates "Zkontrolovat všechny aktualizace" + :plugin/check-update "Zkontrolovat aktualizaci" + :plugin/checked "Zkontrolováno" + :plugin/checking-for-updates "Kontrola aktualizací" + :plugin/contribute "✨ Napište a odešlete nový zásuvný modul" + :plugin/custom-js-alert "Nalezen soubor custom.js, je povoleno jeho spuštění? (Pokud nerozumíte obsahu tohoto souboru, doporučujeme spuštění nepovolit, protože má určitá bezpečnostní rizika)." + :plugin/date-added "Datum přidání" + :plugin/delete-alert "Opravdu chcete odinstalovat zásuvný modul [{1}]?" + :plugin/disable-for-performance-feedback "Plugin {1} je zakázán." + :plugin/disable-now "Zakázat nyní" + :plugin/disabled "Zakázané" + :plugin/does-not-support-db "Nepodporuje DB grafy" + :plugin/downloads "Stažení" + :plugin/empty "Nic nenalezeno." + :plugin/enabled "Povolené" + :plugin/existed-package "Existující balíček pluginu ({1})." + :plugin/fatal-error "Kritická chyba: {1}" + :plugin/found-n-updates "{1} aktualizací nalezeno" + :plugin/found-updates "Nalezeny aktualizace" + :plugin/install "Instalovat" + :plugin/install-error "Instalace selhala: {1}\n{2}" + :plugin/installed "Nainstalováno" + :plugin/installed-plugin "Nainstalovaný plugin: {1}" + :plugin/installing "Instaluje sa" + :plugin/invalid-github-repo-url "Neplatná URL repozitáře GitHub" + :plugin/invalid-package "Neplatný balíček" + :plugin/invalid-plugins-edn "Neplatný plugins.edn" + :plugin/list-of-updates "Seznam aktualizací" + :plugin/load-from-web-url "Načíst z URL" + :plugin/load-plugin-indicator "Načítání pluginu: {1}..." + :plugin/load-unpacked "Načíst rozbalený zásuvný modul" + :plugin/loading-indicator "Načítání" + :plugin/malformed-plugins-edn "Chybný plugins.edn" + :plugin/marketplace "Tržiště pluginů" + :plugin/new-registered "Nový plugin zaregistrován" + :plugin/no-settings-schema "Žádné schéma nastavení!" + :plugin/not-installed "Nenainstalováno" + :plugin/open-logseq-dir "Otevřít složku Logseq" + :plugin/open-package "Otevřít balík" + :plugin/open-preferences "Otevřít předvolby" + :plugin/open-settings "Otevřít nastavení" + :plugin/perf-tip "Tento plugin {1} se načítá příliš dlouho, což ovlivňuje dobu spuštění aplikace a může způsobit selhání načítání jiných pluginů." + :plugin/popular "Populární" + :plugin/proxy-check-success "Úspěch! Stav {1} za {2}ms." + :plugin/readme-empty-warning "Žádný obsah README" + :plugin/refresh-lists "Obnovit seznamy" + :plugin/reload "Znovu načíst" + :plugin/remote-error "Vzdálená chyba: {1}" + :plugin/report-modal-desc "Pokud je nějaký plugin nedostupný nebo si myslíte, že obsahuje škodlivý kód, prosím pošlete e-mail na {1}. Uveďte název pluginu a adresu URL jeho úložiště GitHub. Tým Logseq obvykle reaguje během jednoho pracovního dne." + :plugin/report-security "Nahlásit problém bezpečnosti" + :plugin/restart "Restartujte aplikaci" + :plugin/search-plugin "Hledat plugin" + :plugin/security-warning "Bezpečnostní upozornění" + :plugin/setting-not-handled "#Neošetřeno# {1}" + :plugin/settings-schema-error "Chyba schématu nastavení!" + :plugin/stars "Počet hvězdiček" + :plugin/supports-db "Podpora DB" + :plugin/title "Název ({1})" + :plugin/uninstall "Odinstalovat" + :plugin/unpacked "Rozbalené" + :plugin/unpacked-tips "Vyberte adresář zásuvného modulu" + :plugin/up-to-date "Je aktuální {1}" + :plugin/update "Aktualizovat" + :plugin/update-all-selected "Aktualizovat všechny vybrané" + :plugin/update-all-success "Všechny pluginy aktualizovány" + :plugin/update-available "K dispozici je aktualizace" + :plugin/update-plugin "Aktualizační plugin: {1} - {2}" + :plugin/updates-downloading "Stahování aktualizací" + :plugin/updating "Aktualizuje se" + + :plugin.install-from-file/menu-title "Instalace ze souboru plugins.edn" + :plugin.install-from-file/notice "Následující zásuvné moduly nahradí vaše zásuvné moduly::" + :plugin.install-from-file/success "Všechny zásuvné moduly byly úspěšně nainstalované!" + :plugin.install-from-file/title "Instalace zásuvných modulů ze souboru plugins.edn" + + :plugin.install-from-web-url/effect-label "efekt" + :plugin.install-from-web-url/repo-url-placeholder "URL GitHub repozitáře" + :plugin.install-from-web-url/supports-note "Adresy URL podporují jak úložiště GitHub, tak lokální vývojové servery. (Příklady: {1}, {2})" + :plugin.install-from-web-url/theme-label "motiv" + + :plugin.package-config/detach-desc "Jeho odstranění plugin pouze odpojí od Logseq a ponechá zdrojovou složku beze změny." + :plugin.package-config/parse-error "Nepodařilo se zpracovat konfiguraci balíčku pluginu." + :plugin.package-config/remove-error "Nepodařilo se odstranit poškozený plugin." + :plugin.package-config/remove-external-success "Poškozený plugin byl odstraněn ze seznamu pluginů." + :plugin.package-config/remove-installed-success "Poškozený plugin „{1}“ byl odstraněn." + + :plugin.proxy/direct "Přímé" + :plugin.proxy/system "Systém" + :plugin.proxy/test-url "Otestovat URL" + :plugin.proxy/testing "Testování" + + :plugin.settings/edit-settings-json "Upravit settings.json" + :plugin.settings/exit-code-mode "Ukončit režim kódu" + :plugin.settings/title "Nastavení pluginů" + + :plugin.themes/default-desc "Výchozí {1} motiv Logseq." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} motivy" + :plugin.themes/light-and-dark "světlé & tmavé motivy" + + :profiler/input-fn-placeholder "zadejte název funkce" + :profiler/unregister "Odregistrovat" + + :property/add-choice "Přidat volbu" + :property/add-choices "Přidat volby" + :property/add-description "Přidat popis" + :property/add-new "Přidat vlastnost" + :property/add-or-change "Přidat nebo změnit vlastnost" + :property/available-choices "Dostupné volby" + :property/change-tooltip "Změnit {1}" + :property/checkbox-state-mapping "Mapování stavů zaškrtávacího pole" + :property/children-count "Děti ({1})" + :property/choices-count "{1} možností" + :property/choose-tag "Vybrat štítek" + :property/choose-tags "Vybrat štítky" + :property/clear-value "Vymazat" + :property/configure "Konfigurovat" + :property/convert-page-to-property "Převést \"{1}\" na vlastnost" + :property/create-error "Nepodařilo se vytvořit vlastnost." + :property/default-value "Výchozí hodnota" + :property/delete-from-node "Odstranit z uzlu" + :property/delete-from-node-confirm "Odstranit tuto vlastnost z uzlu?" + :property/delete-from-tag "Odstranit ze štítku" + :property/delete-from-tag-confirm "Odstranit tuto vlastnost ze štítku?" + :property/description-placeholder "Zadejte popis" + :property/drag-to-reorder "Přetáhněte pro změnu pořadí" + :property/existing-values "Existující hodnoty" + :property/go-to-this-property "Přejít na stránku vlastnosti" + :property/hidden-properties "Skryté vlastnosti" + :property/hide-by-default "Skrýt ve výchozím nastavení" + :property/hide-choice-for-tag "Skrýt volbu pro štítek" + :property/hide-empty-value "Skrýt prázdné hodnoty" + :property/hide-for-tag "Skrýt pro #{1}" + :property/hide-hidden-choices "Skrýt skryté volby" + :property/map-checked-to "Mapovat zaškrtnuté na" + :property/map-unchecked-to "Mapovat nezaškrtnuté na" + :property/more-settings "Další nastavení" + :property/multiple-values "Více hodnot" + :property/multiple-values-confirm "Zapnout více hodnot?" + :property/name "Název" + :property/name-placeholder "Název vlastnosti" + :property/nodes-with-property "Uzly s vlastností" + :property/overdue "Po termínu" + :property/private-built-in-not-usable "Soukromá vestavěná vlastnost nedostupná" + :property/select-choice "Vybrat volbu" + :property/select-property-placeholder "Vybrat vlastnost" + :property/select-type-placeholder "Vybrat typ vlastnosti" + :property/self-reference "Vlastní reference" + :property/set-default-choice "Nastavit výchozí volbu" + :property/set-default-value "Nastavit výchozí hodnotu" + :property/set-icon "Nastavit ikonu" + :property/set-placeholder "Nastavit {1}" + :property/set-property "Nastavit vlastnost" + :property/set-tags "Nastavit štítky" + :property/set-value "Nastavit hodnotu" + :property/show-as-checkbox-on-node "Zobrazit jako zaškrtávací pole na uzlu" + :property/show-as-checkbox-on-tagged-nodes "Zobrazit jako zaškrtávací pole na uzlech se štítkem" + :property/show-hidden-choices "Zobrazit skryté volby" + :property/skip-choosing-tag "Přeskočit výběr štítku" + :property/specify-node-tags "Určit štítky uzlu" + :property/title-placeholder "Název" + :property/type "Typ" + :property/type-change-warning "Změna typu vlastnosti vymaže některé konfigurace vlastnosti." + :property/type-checkbox "Zaškrtávací pole" + :property/type-date "Datum" + :property/type-datetime "Datum/Čas" + :property/type-locked-help "Typ zamčen" + :property/type-node "Uzel" + :property/type-number "Číslo" + :property/type-text "Text" + :property/type-url "URL" + :property/ui-position "Pozice v UI" + :property/ui-position-block-below "Pod blokem" + :property/ui-position-block-left "Vlevo od bloku" + :property/ui-position-block-right "Vpravo od bloku" + :property/ui-position-properties "Vlastnosti" + :property/unset-property "Odebrat vlastnost" + :property/update-success "Aktualizováno" + + :property.built-in/alias "Alias" + :property.built-in/asset "Soubor" + :property.built-in/asset-align "Zarovnání souboru" + :property.built-in/asset-checksum "Kontrolní součet souboru" + :property.built-in/asset-external-file-name "Název externího souboru" + :property.built-in/asset-external-url "Externí URL" + :property.built-in/asset-height "Výška obrázku" + :property.built-in/asset-last-visit-page "Naposledy zobrazená strana" + :property.built-in/asset-remote-metadata "Vzdálená metadata souboru" + :property.built-in/asset-resize-metadata "Metadata změny velikosti" + :property.built-in/asset-size "Velikost souboru" + :property.built-in/asset-type "Typ souboru" + :property.built-in/asset-width "Šířka obrázku" + :property.built-in/background-color "Barva pozadí" + :property.built-in/built-in "Vestavěné?" + :property.built-in/checkbox-display-properties "Vlastnosti zobrazené jako zaškrtávací pole" + :property.built-in/choice-checkbox-state "Stav zaškrtnutí volby" + :property.built-in/choice-classes "Třídy volby" + :property.built-in/choice-exclusions "Vyloučení volby" + :property.built-in/class-bidirectional-property-title "Název obousměrné vlastnosti" + :property.built-in/class-enable-bidirectional "Povolit obousměrné vlastnosti" + :property.built-in/class-extends "Rozšiřuje" + :property.built-in/class-hide-from-node "Skrýt z uzlu" + :property.built-in/class-properties "Vlastnosti tagu" + :property.built-in/classes "Třídy vlastnosti" + :property.built-in/closed-value-property "Vlastnost s uzavřenou hodnotou" + :property.built-in/code-lang "Režim kódu" + :property.built-in/collapsed "Uzel sbalený?" + :property.built-in/created-at "Uzel vytvořen" + :property.built-in/created-by-ref "Uzel vytvořen uživatelem" + :property.built-in/created-from-property "Vytvořeno z vlastnosti" + :property.built-in/deadline "Termín" + :property.built-in/default-value "Výchozí hodnota" + :property.built-in/deleted-at "Smazáno" + :property.built-in/deleted-by-ref "Smazáno uživatelem" + :property.built-in/description "Popis" + :property.built-in/enable-history "Povolit historii vlastnosti" + :property.built-in/exclude-from-graph-view "Vyloučeno z pohledu grafu?" + :property.built-in/fsrs-due "Termín" + :property.built-in/fsrs-state "Stav" + :property.built-in/heading "Nadpis" + :property.built-in/hide "Skrýt tuto vlastnost nebo stránku" + :property.built-in/hide-empty-value "Skrýt prázdnou hodnotu" + :property.built-in/history-block "Blok historie" + :property.built-in/history-property "Vlastnost historie" + :property.built-in/history-ref-value "Hodnota historie" + :property.built-in/history-scalar-value "Skalární hodnota historie" + :property.built-in/icon "Ikona" + :property.built-in/journal-day "Datum deníku" + :property.built-in/journal-title-format "Formát názvu" + :property.built-in/link "Uzel odkazuje na" + :property.built-in/linked-references-excludes "Vyloučené reference" + :property.built-in/linked-references-includes "Zahrnuté reference" + :property.built-in/ls-type "Typ LS" + :property.built-in/node-display-type "Typ zobrazení uzlu" + :property.built-in/order "Pořadí uzlu" + :property.built-in/order-list-type "Typ seznamu" + :property.built-in/page "Stránka uzlu" + :property.built-in/page-tags "Tagy stránky" + :property.built-in/parent "Nadřazený uzel" + :property.built-in/priority "Priorita" + :property.built-in/public "Vlastnost veřejná?" + :property.built-in/publish-published-url "Publikovaná URL" + :property.built-in/publishing-public "Veřejné publikování?" + :property.built-in/query "Dotaz" + :property.built-in/reaction-emoji-id "Emoji reakce" + :property.built-in/reaction-target "Cíl reakce" + :property.built-in/recycle-original-order "Původní pořadí v koši" + :property.built-in/recycle-original-page "Původní stránka v koši" + :property.built-in/recycle-original-parent "Původní nadřazený uzel v koši" + :property.built-in/refs "Reference uzlu" + :property.built-in/repeat-checked-property "Opakovaná zkontrolovaná vlastnost" + :property.built-in/repeat-recur-frequency "Frekvence opakování" + :property.built-in/repeat-recur-unit "Jednotka opakování" + :property.built-in/repeat-repeated "Uzel se opakuje?" + :property.built-in/repeat-temporal-property "Opakovaná časová vlastnost" + :property.built-in/scalar-default-value "Výchozí hodnota nereferenčního typu" + :property.built-in/scheduled "Naplánováno" + :property.built-in/status "Stav" + :property.built-in/sync-large-title-object "Reference na velký název bloku uložený ve vzdáleném úložišti objektů" + :property.built-in/table-filters "Filtry pohledu" + :property.built-in/table-hidden-columns "Skryté sloupce pohledu" + :property.built-in/table-ordered-columns "Seřazené sloupce pohledu" + :property.built-in/table-pinned-columns "Připnuté sloupce tabulky" + :property.built-in/table-sized-columns "Nastavení sloupců pohledu" + :property.built-in/table-sorting "Řazení pohledu" + :property.built-in/tags "Tagy" + :property.built-in/template-applied-to "Použít šablonu na tagy" + :property.built-in/title "Název uzlu" + :property.built-in/type "Typ vlastnosti" + :property.built-in/ui-position "Pozice vlastnosti" + :property.built-in/updated-at "Uzel aktualizován" + :property.built-in/used-template "Použitá šablona" + :property.built-in/user-avatar "Avatar uživatele" + :property.built-in/user-email "E-mail uživatele" + :property.built-in/user-name "Jméno uživatele" + :property.built-in/value "Hodnota vlastnosti" + :property.built-in/view-context "Kontext pohledu vlastnosti" + :property.built-in/view-feature-type "Typ funkce pohledu" + :property.built-in/view-for "Tento pohled patří k" + :property.built-in/view-group-by-property "Seskupit pohled podle vlastnosti" + :property.built-in/view-sort-groups-by-property "Řadit skupiny pohledu podle" + :property.built-in/view-sort-groups-desc "Řadit skupiny pohledu sestupně" + :property.built-in/view-type "Typ pohledu" + + :property.choice/already-exists "Volba již existuje." + :property.choice/cant-delete-built-in "Vestavěnou volbu nelze smazat." + :property.choice/invalid "Neplatná volba „{1}“ pro tuto vlastnost: {2}" + + :property.color/blue "modrá" + :property.color/green "zelená" + :property.color/purple "fialová" + :property.color/red "červená" + :property.color/yellow "žlutá" + + :property.priority/high "Vysoká" + :property.priority/low "Nízká" + :property.priority/medium "Střední" + :property.priority/urgent "Urgentní" + + :property.repeat/date "Datum opakování" + :property.repeat/datetime "Datum a čas opakování" + :property.repeat/every "Každý" + :property.repeat/is-label "je:" + :property.repeat/task "Opakovaný úkol" + :property.repeat/when "Kdy" + + :property.repeat-recur-unit/day "Den" + :property.repeat-recur-unit/hour "Hodina" + :property.repeat-recur-unit/minute "Minuta" + :property.repeat-recur-unit/month "Měsíc" + :property.repeat-recur-unit/week "Týden" + :property.repeat-recur-unit/year "Rok" + + :property.status/backlog "Backlog" + :property.status/canceled "Zrušeno" + :property.status/doing "Probíhá" + :property.status/done "Hotovo" + :property.status/in-review "Na kontrole" + :property.status/todo "K vyřízení" + + :property.validation/cant-convert-to-number "Nelze převést „{1}“ na číslo." + :property.validation/cant-remove-required "Požadovanou vlastnost nelze odstranit." + :property.validation/cant-set-self-value "Nelze nastavit jako vlastní hodnotu vlastnosti." + :property.validation/duplicate "Vlastnost '{1}' již existuje." + :property.validation/invalid-name "Toto je neplatný název vlastnosti. Název vlastnosti nemůže začínat znaky odkazu na stránku '#' nebo '[['." + :property.validation/invalid-value "Vlastnost „{1}“ má neplatnou hodnotu: {2}" + :property.validation/many-to-one "Nelze převést vlastnost s více hodnotami na jednu." + :property.validation/protected "Tato vlastnost je chráněná a nelze ji změnit." + + :property.view-type/gallery "Galerie" + :property.view-type/list "Seznam" + :property.view-type/table "Tabulka" + + :publish/action "Publikovat" + :publish/dialog-desc "Volitelně chraňte tuto stránku heslem. Ponechte prázdné pro veřejný přístup." + :publish/dialog-title "Publikovat stránku" + :publish/invalid-page-error "Neplatná stránka" + :publish/password-optional-placeholder "Volitelné heslo" + :publish/publish-error "Chyba publikace" + :publish/published-to "Publikováno na {1}" + :publish/publishing "Publikování..." + :publish/unpublish "Zrušit publikování" + :publish/unpublish-error "Zrušení publikace selhalo" + :publish/unpublish-missing-page-id "Zrušit publikaci: chybí ID stránky" + :publish/unpublished "Publikace zrušena" + + :query/advanced-results "Výsledky pokročilého dotazu" + :query/custom-view-error "Chyba vlastního pohledu: {1}" + :query/error "Chyba dotazu:" + :query/examples-desc "Další příklady naleznete na {{Queries documentation}}." + :query/examples-title "Příklady dotazů:" + :query/results-for "Výsledky pro {1}" + + :query.builder/add-filter-or-operator-placeholder "Přidat filtr/operátor" + :query.builder/between-end-label "Datum konce" + :query.builder/between-journal-label "mezi: {1} ~ {2}" + :query.builder/between-start-label "Datum začátku" + :query.builder/created-label "Vytvořeno" + :query.builder/filter "Filtr" + :query.builder/filter-full-text-search-label "Plnotextové vyhledávání" + :query.builder/filter-page-label "Stránka" + :query.builder/filter-page-reference-label "Odkaz na stránku" + :query.builder/filter-sample-label "Příklad" + :query.builder/operator-and-label "a" + :query.builder/operator-not-label "ne" + :query.builder/replace-with-label "Nahradit za:" + :query.builder/search-label "Hledat: {1}" + :query.builder/show-built-in-properties "Zobrazit vestavěné vlastnosti" + :query.builder/unwrap-operator "Rozbalit" + :query.builder/updated-label "Aktualizováno" + :query.builder/wrap-filter-with-label "Zabalit tento filtr do:" + + :reference/blocks "Reference bloku" + :reference/copy "Kopírovat odkaz" + :reference/delete "Odstranit odkaz" + :reference/page-filter "Filtr stránek" + :reference/replace-with-embed "Nahradit vložením" + :reference/replace-with-text "Nahradit textem" + + :reference.filter/directions "Směry filtru" + :reference.filter/excludes "Vyloučené" + :reference.filter/includes "Zahrnuté" + :reference.filter/search-placeholder "Vyhledávání v odkazovaných stránkách" + :reference.filter/title "Filtr" + + :search/blank-input "Prázdný vstup" + :search/full-text-placeholder "Fulltextové vyhledávání" + :search/index-progress "Indexování {1} %" + :search/indices-rebuilt-success "Indexy vyhledávání byly úspěšně znovu vytvořeny!" + :search/no-result "Žádné výsledky" + :search/result-count "{1} výsledků" + + :search.find-in-page/input-placeholder "Najít na stránce" + :search.find-in-page/match-case "Rozlišovat velikost" + :search.find-in-page/next-result "Další výsledek" + :search.find-in-page/previous-result "Předchozí výsledek" + + :select/default-prompt "Vyberte jednu" + :select/default-select-multiple "Vyberte jednu nebo více možností" + :select/new-option "+ Nová možnost: {1}" + + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "URL MCP zkopírováno" + :server/start "Spustit" + :server/stop "Zastavit" + :server/title "HTTP API server" + + :server.config/auto-start-label "Spustit automaticky" + :server.config/port-label "Rozsah portů" + :server.config/reset "Resetovat" + :server.config/save-and-apply "Uložit a použít" + :server.config/title "Konfigurace serveru" + + :server.status/closed "Zavřený" + :server.status/closing "Zavírání" + :server.status/error "Chyba" + :server.status/running "Běží" + :server.status/starting "Spouštění" + :server.status/stopped "Zastavený" + + :server.token/add-new "Přidat nový token" + :server.token/name-placeholder "Název serveru" + :server.token/regenerate-value "Regenerovat hodnotu tokenu" + :server.token/title "Autorizační tokeny" + :server.token/update-success "Tokeny aktualizovány" + :server.token/value-placeholder "Hodnota" + + :settings/account "Účet" + :settings/advanced "Pokročilé" + :settings/ai "AI" + :settings/collaboration "Spolupráce" + :settings/editor "Editor" + :settings/encryption "Šifrování" + :settings/features "Funkce" + :settings/general "Obecné" + :settings/keymap "Klávesové zkratky" + :settings/plugins "Nastavení pluginů" + + :settings.account/storage-usage "{1}GB z {2}GB celkového úložiště ({3})" + :settings.account/synced-graphs "{1} z {2} synchronizovaných grafů ({3})" + + :settings.advanced/auto-chmod "Automatický chmod" + :settings.advanced/auto-chmod-desc "Automaticky nastavovat oprávnění souborů" + :settings.advanced/auto-updater "Automatická aktualizace" + :settings.advanced/developer-mode "Vývojářský režim" + :settings.advanced/developer-mode-desc "Vývojářský režim pomáhá přispěvatelům a vývojářům rozšíření efektivněji testovat jejich integrace se službou Logseq." + :settings.advanced/disable-sentry "Odesílání dat o používání a diagnostiky do systému Logseq" + :settings.advanced/disable-sentry-desc "Společnost Logseq nikdy nebude shromažďovat vaši místní databázi grafů ani prodávat vaše data." + :settings.advanced/network-proxy "Síťový proxy server" + + :settings.ai/enable-mcp-server "Zapnout server MCP" + :settings.ai/enable-mcp-server-desc "Zapnout server MCP pro integraci s AI" + + :settings.editor/auto-expand-block-refs "Automaticky rozbalit odkazy na bloky" + :settings.editor/auto-expand-block-refs-tip "Automaticky rozbalit odkazy na bloky při kliknutí" + :settings.editor/custom-date-format "Preferovaný formát data" + :settings.editor/enable-all-pages-public "Všechny stránky jsou při publikování veřejné" + :settings.editor/enable-shortcut-tooltip "Povolit nápovědy ke klávesovým zkratkám" + :settings.editor/enable-tooltip "Zapnout nápovědy" + :settings.editor/preferred-outdenting "Logické odsazení" + :settings.editor/preferred-outdenting-tip "Tip pro odsazení" + :settings.editor/preferred-outdenting-tip-more "→ Více o odsazení" + :settings.editor/preferred-pasting-file "Uprednostnit vložení souboru" + :settings.editor/preferred-pasting-file-hint "Tip pro vkládání souborů" + :settings.editor/show-brackets "Zobrazit závorky" + :settings.editor/show-full-blocks "Zobrazení všech řádků odkazu na blok" + :settings.editor/spell-checker "Kontrola pravopisu" + :settings.editor/wide-mode "Široký režim" + + :settings.features/enable-flashcards "Zapnout kartičky" + :settings.features/enable-journals "Denníky" + :settings.features/home-default-page "Nastavení výchozí domovské stránky" + :settings.features/home-default-page-update-success "Domovská stránka aktualizována" + :settings.features/journals-enable-success "Deníky zapnuty" + :settings.features/login-prompt "Chcete-li získat přístup k novým funkcím dříve než ostatní, musíte být sponzorem nebo podporovatelem Open Collective společnosti Logseq, následně sa musíte přihlásit." + :settings.features/page-not-found "Stránka „{1}“ zatím neexistuje. Nejprve prosím vytvořte tuto stránku a poté to zkuste znovu." + :settings.features/plugin-system "Systém pluginů" + + :settings.general/accent-color "Barva akcentu" + :settings.general/accent-color-alert "Upozornění na barvu" + :settings.general/accent-color-logseq "Klasická barva Logseq" + :settings.general/accent-color-none-desc "Zrušit barvu zvýraznění. Toto je v současné době v beta verzi a používá se především pro kompatibilitu s vlastními motivy." + :settings.general/changelog "Protokol změn" + :settings.general/check-for-updates "Zkontrolovat aktualizace" + :settings.general/current-revision-label "Aktuální revize" + :settings.general/current-version "Aktuální verze" + :settings.general/custom-configuration "Vlastní konfigurace" + :settings.general/custom-global-configuration "Vlastní globální konfigurace" + :settings.general/custom-theme "Vlastní motiv" + :settings.general/edit-config-edn "upravit config.edn" + :settings.general/edit-custom-css "upravit custom.css" + :settings.general/edit-export-css "upravit export.css" + :settings.general/edit-global-config-edn "upravit globální config.edn" + :settings.general/editor-font "Písmo editoru" + :settings.general/editor-font-set-global "Nastavit jako globální rodinu písem" + :settings.general/export-theme "Exportovat motiv" + :settings.general/language "Jazyk" + :settings.general/native-titlebar "Nativní záhlaví" + :settings.general/native-titlebar-desc "Použít nativní záhlaví systému" + :settings.general/refresh-required-feedback "Vyžadováno obnovení" + :settings.general/release-channel "kanál vydání" + :settings.general/revision "Revize: {1}" + :settings.general/theme-dark "Tmavý" + :settings.general/theme-light "Světlý" + :settings.general/theme-system "Systémový" + + :settings.sync-server/clear-success "URL synchronizačního serveru bylo vymazáno. Použije se oficiální Logseq Sync." + :settings.sync-server/reset "Resetovat na výchozí" + :settings.sync-server/save-success "URL synchronizačního serveru bylo uloženo." + :settings.sync-server/url "URL synchronizačního serveru" + :settings.sync-server/url-desc "Nastavte vlastní URL serveru HTTPS pro samostatně hostovanou synchronizaci. Vaše ověřovací tokeny Logseq budou odesílány na tento server, proto používejte pouze důvěryhodnou URL. Nechte prázdné pro použití oficiálního Logseq Sync." + :settings.sync-server/url-invalid-error "URL musí začínat na https:// nebo http://" + + :shell/input-command-title "Zadat příkaz" + + :shortcut.category/basics "Základy" + :shortcut.category/block-command-editing "Příkazy na úpravu bloků" + :shortcut.category/block-editing "Obecné úpravy bloků" + :shortcut.category/block-selection "Výběr bloku (výběr ukončíte stisknutím klávesy Esc)" + :shortcut.category/formatting "Formátování" + :shortcut.category/navigating "Navigace" + :shortcut.category/others "Ostatní" + :shortcut.category/plugins "Pluginy" + :shortcut.category/toggle "Přepínače" + + :sidebar.left/favorites "Oblíbené" + :sidebar.left/navigations "Navigace" + :sidebar.left/recent-pages "Nedávné" + + :sidebar.right/close "Zavřít panel" + :sidebar.right/close-all "Zavřít všechny panely" + :sidebar.right/close-others "Zavřít ostatní panely" + :sidebar.right/collapse "Sbalit panel" + :sidebar.right/collapse-all "Sbalit všechny panely" + :sidebar.right/collapse-others "Sbalit ostatní panely" + :sidebar.right/expand "Rozbalit panel" + :sidebar.right/expand-all "Rozbalit všechny panely" + :sidebar.right/more "Více" + :sidebar.right/open "Otevřít v postranním panelu" + :sidebar.right/open-as-page "Otevřít jako stránku" + :sidebar.right/resize-handle "Nástroj na změnu velikosti pravého postranního panelu" + :sidebar.right/toggle "Přepnout pravý panel" + + :storage/invalid-data-writing "Neplatný zápis dat." + :storage/sqlitedb-error "Chyba SQLiteDB: {1}" + :storage/sqlitedb-import-error "Chyba importu SQLiteDB: {1}" + :storage/sqlitedb-save-error "Chyba ukládání SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Blok smazán {1}" + :storage.recycle/empty "Koš je prázdný." + :storage.recycle/page-deleted-at "Stránka smazána {1}" + :storage.recycle/readonly "Koš (pouze pro čtení)" + :storage.recycle/restore "Obnovit" + :storage.recycle/retention-desc "Smazané stránky a bloky zde zůstávají, dokud nejsou obnoveny nebo automaticky odstraněny po 30 dnech." + :storage.recycle/title "Koš" + + :sync/assets-downloading-count "Stahování prostředků ({1})" + :sync/assets-uploading-count "Nahrávání prostředků ({1})" + :sync/creating-remote-graph "Vytváří se vzdálený graf..." + :sync/downloading "Stahování..." + :sync/downloading-graph "Stahování {1} ..." + :sync/graph-count-exceed-limit "Překročen limit počtu grafů" + :sync/invitation-sent "Pozvánka odeslána" + :sync/last-synced-time-label "Poslední synchronizace: {1}" + :sync/more-debug-info "Více ladicích informací" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "čekající místní změny" + :sync/pending-server-changes "čekající změny serveru" + :sync/something-wrong "Chyba synchronizace" + :sync/start-sync "Spustit synchronizaci" + :sync/storage-exceed-limit "Překročen limit úložiště" + :sync/uploading "Nahrávání..." + :sync/user-doesnt-exist-yet "Uživatel ještě neexistuje" + + :theme/logseq-default "Výchozí motiv Logseq" + :theme/switch-to "Přepnout na motiv {1}" + + :ui/all-done "Vše hotovo" + :ui/apply "Použít" + :ui/cancel "Zrušit" + :ui/close "Zavřít" + :ui/configure "Nastavit" + :ui/confirm "Potvrdit" + :ui/copy "Kopírovat" + :ui/copy-all "Zkopírovat vše" + :ui/copy-to-clipboard "Kopírovat do schránky" + :ui/create "Vytvořit" + :ui/date-natural-language-placeholder "např. Příští týden" + :ui/delete "Smazat" + :ui/deleted "Smazáno" + :ui/dont-remind-me-again "Už mi nepřipomínat" + :ui/empty "Prázdné" + :ui/error "Chyba" + :ui/error-boundary-error "Chyba zachycená uživatelským rozhraním!\n {1}" + :ui/export "Export" + :ui/false "Ne" + :ui/fix "Opravit!" + :ui/frequently-used "Často používané" + :ui/from "Od: " + :ui/host "Hostitel" + :ui/image "obrázek" + :ui/label "Štítek" + :ui/link "Odkaz" + :ui/load-more "Načíst více" + :ui/loading "Načítání" + :ui/login "Přihlásit se" + :ui/logout "Odhlásit se" + :ui/off "Vypnuto" + :ui/on "Zapnuto" + :ui/open "Otevřít" + :ui/open-named "Otevřít {1}" + :ui/port "Port" + :ui/refresh "Obnovit" + :ui/relaunch-confirm "Pro použití této změny je potřeba restartovat aplikaci. Restartovat nyní?" + :ui/remove-background "Odstranit pozadí" + :ui/reset "Resetovat" + :ui/run "Spustit" + :ui/save "Uložit" + :ui/show-less "Zobrazit méně" + :ui/show-more "Zobrazit více" + :ui/skip "Přeskočit" + :ui/submit "Odeslat" + :ui/to "Do: " + :ui/toggle-theme "Přepnout motiv" + :ui/true "Ano" + :ui/type "Typ" + :ui/untitled "Bez názvu" + :ui/use-current-time "Použít aktuální čas" + :ui/yes "Ano" + + :updater/checking-for-updates "Kontrolují se aktualizace" + :updater/downloading-progress "Stahuje se aktualizace ({1} %)" + :updater/quit-and-install "Restartovat a nainstalovat" + :updater/up-to-date "Aplikace aktualizována 🎉" + :updater/update-available "Aktualizace je k dispozici" + :updater/update-error "⚠️ Ups, něco se pokazilo!\nPodívejte se prosím na {1}." + :updater/update-ready-to-install "Aktualizace je připravena k instalaci" + + :view/add-new-view "Přidat pohled" + :view/all "Všechny" + :view/export-edn "Exportovat EDN" + :view/linked-references "Prepojené odkazy" + :view/new "Nový" + :view/new-property "Nová vlastnost" + :view/new-view "Nový pohled" + :view/rename "Přejmenovat" + :view/results "Výsledky:" + :view/unlinked-references "Neprepojené odkazy" + + :view.filter/custom-date "Vlastní datum" + :view.filter/empty "Prázdné" + :view.filter/filter "Filtr" + :view.filter/from "Od" + :view.filter/is-empty "Je prázdné" + :view.filter/is-not-empty "Není prázdné" + :view.filter/match "Shoda" + :view.filter/match-all-filters "Odpovídá všem filtrům" + :view.filter/match-any-filter "Odpovídá libovolnému filtru" + :view.filter/operator-after "Po" + :view.filter/operator-before "Před" + :view.filter/operator-between "Mezi" + :view.filter/operator-date-after "Datum po" + :view.filter/operator-date-before "Datum před" + :view.filter/operator-is "Je" + :view.filter/operator-is-not "Není" + :view.filter/operator-text-contains "Text obsahuje" + :view.filter/operator-text-not-contains "Text neobsahuje" + :view.filter/or "Nebo" + :view.filter/relative-1-day-ago "Před 1 dnem" + :view.filter/relative-1-month-ago "Před 1 měsícem" + :view.filter/relative-1-week-ago "Před 1 týdnem" + :view.filter/relative-1-year-ago "Před 1 rokem" + :view.filter/relative-3-days-ago "Před 3 dny" + :view.filter/relative-3-months-ago "Před 3 měsíci" + :view.filter/to "Do" + :view.filter/type-to-search "Zadejte pro hledání" + + :view.table/ascending "Vzestupně" + :view.table/columns-visibility "Viditelnost sloupců" + :view.table/default-title "{1} uzlů" + :view.table/delete-sort "Smazat řazení" + :view.table/descending "Sestupně" + :view.table/drag-to-reorder "Přetáhněte pro změnu pořadí" + :view.table/group-by "Seskupit podle" + :view.table/group-journal-date "Datum deníku" + :view.table/group-page-created-date "Datum vytvoření stránky" + :view.table/group-page-name "Název stránky" + :view.table/group-page-updated-date "Datum aktualizace stránky" + :view.table/live-query-title "Živý dotaz ({1})" + :view.table/name-column "Název" + :view.table/no-group-value "Žádné {1}" + :view.table/page "Stránka" + :view.table/pages "Stránky" + :view.table/pin "Připnout" + :view.table/row-number "Číslo řádku" + :view.table/select-all "Vybrat vše" + :view.table/select-column "Vybrat sloupec" + :view.table/select-order "Vybrat pořadí" + :view.table/select-row "Vybrat řádek" + :view.table/selected-count "Vybráno: {1}" + :view.table/sort-ascending "Vzestupně" + :view.table/sort-descending "Sestupně" + :view.table/sort-groups-by "Řadit skupiny podle" + :view.table/sort-groups-order "Pořadí skupin" + :view.table/total-refs-count "Celkem odkazů" + :view.table/unpin "Odepnout" + + :window/close "Zavřít okno" + :window/exit-fullscreen "Opustit celou obrazovku" + :window/maximize "Maximalizovat" + :window/minimize "Minimalizovat" + :window/restore "Obnovit" + + :youtube/embed-first-reminder-mobile "Nejprve vložte video z YouTube, pak použijte tuto ikonu.\nPomůcka: Na mobilním zařízení můžete vložit nezpracovanou adresu URL z YouTube jako vložené video." + :youtube/player-not-ready "Přehrávač YouTube ještě není připraven." + :youtube/timestamps-not-available-mobile "Časové značky YouTube zatím nejsou na mobilních zařízeních dostupné." + + :zotero/attachments "Přílohy" + :zotero/imported-file-warning "Toto je importovaný soubor ze Zotera, nastavte datový adresář Zotera, abyste mohli soubor otevřít v Logseq." + :zotero/linked-file-warning "Toto je propojený soubor ze Zotera, nastavte základní adresář propojených příloh Zotera, abyste mohli soubor otevřít v Logseq." + :zotero/notes "Poznámky" +} diff --git a/src/resources/dicts/de.edn b/src/resources/dicts/de.edn index c557a7ab63..77f4cec302 100644 --- a/src/resources/dicts/de.edn +++ b/src/resources/dicts/de.edn @@ -1,252 +1,1198 @@ -{:all-files "Alle Dateien" - :all-graphs "Alle Graphen" - :all-journals "Alle Journale" - :all-pages "Seiten" - :appearance "Erscheinungsbild" - :auto-heading "Automatische Überschrift" - :bold "Fett" - :cancel "Abbrechen" - :close "Schließen" - :code "Quelltext" - :delete "Löschen" - :download "Herunterladen" - :export "Exportieren" - :export-copied-to-clipboard "In die Zwischenablage kopiert!" - :export-copy-to-clipboard "Kopieren" - :export-db-edn "Als EDN exportieren" - :export-graph "Graph exportieren" - :export-markdown "Als Standard-Markdown exportieren (ohne Block-Eigenschaften)" - :export-page "Seite exportieren" - :export-public-pages "Öffentliche Seiten exportieren" - :export-save-to-file "Als Datei speichern" - :export-sqlite-db "Als SQLite DB exportieren" - :export-transparent-background "Transparenter Hintergrund" - :export-zip "SQLite DB and Anlagen exportieren" - :graph "Graph" - :heading "Überschrift {1}" - :highlight "Hervorhebung" - :home "Startseite" - :host "Host" - :import "Importieren" - :import-notes "Bestehende Notizen importieren" - :importing "Importiere" - :italics "Kursiv" - :language "Sprache" - :loading "Lädt..." - :login "Einloggen" - :logout "Ausloggen" - :new-page "Neue Seite:" - :new-tag "Neuer Tag:" - :plugins "Plugins" - :port "Port" - :relaunch-confirm-to-work "Sie sollten die App neu starten, damit sie funktioniert. Möchten Sie sie jetzt neu starten?" - :remove-background "Hintergrund entfernen" - :remove-heading "Überschrift entfernen" - :save "Speichern" - :settings "Einstellungen" - :settings-of-plugins "Plugins" - :strikethrough "Durchstreichung" - :themes "Themen" - :toggle-theme "Thema umschalten" - :type "Typ" - :untitled "Ohne Titel" - :yes "Ja" +{ + :account/authentication "Authentifizierung" + :account/benefits-desc "Mit einem Logseq-Konto können Sie auf cloudbasierte Dienste wie Logseq Sync und Alpha-/Beta-Funktionen zugreifen." + :account/billing "Abrechnung" + :account/billing-expired-on-label "Pro-Plan abgelaufen am: {1}" + :account/billing-expires-on-label "Pro-Plan läuft ab am: {1}" + :account/billing-next-date-label "Nächstes Abrechnungsdatum: {1}" + :account/core-features "Zugang zu den Kernfunktionen von Logseq" + :account/current-plan "Aktueller Plan" + :account/delete-account "Konto löschen" + :account/discover-sync-desc "Entdecken Sie die Möglichkeiten von {1}" + :account/early-access-alpha-beta "Frühzeitiger Zugang zu Alpha-/Beta-Funktionen" + :account/first-name "Vorname" + :account/free-plan-sync-limit "1 synchronisierter Graph (bis zu 50 MB, nur Notizen)" + :account/last-name "Nachname" + :account/manage-plan "Plan verwalten" + :account/month "Monat" + :account/no-asset-syncing "Keine Asset-Synchronisierung" + :account/open-invoices "Rechnungen öffnen" + :account/plan-free "Kostenlos" + :account/plan-free-summary "Starten Sie mit einfacher Synchronisierung" + :account/plan-pro "Pro" + :account/plan-pro-summary "Erweiterte Synchronisierung und mehr freischalten" + :account/pro-plan-sync-limit "10 synchronisierte Graphen (jeweils bis zu 5 GB)" + :account/profile "Profil" + :account/refresh-token-warning "Token-Aktualisierung: Außergewöhnlicher Status" + :account/reset-password "Passwort zurücksetzen" + :account/sign-up "Registrieren" + :account/sync-assets-limit "Assets bis zu 100 MB pro Datei synchronisieren" + :account/synced-status "Synchronisiert" + :account/unlimited-unsynced-graphs "Unbegrenzte nicht-synchronisierte Graphen" + :account/upcoming-cloud-features "Kommende cloudbasierte Funktionen, einschließlich Logseq Publish" + :account/upgrade-plan "Plan upgraden" + :account/username "Benutzername" - :accessibility/skip-to-main-content "Zum Hauptinhalt springen" - - :all-pages/failed-to-delete-pages "Der Inhalt dieser Seiten wurde gelöscht, die Seiten selbst konnten jedoch nicht entfernt werden: {1}. Siehe JavaScript-Konsole für weitere Details." - :all-pages/table-title (fn [total] (str total (if (= total 1) " Seite" " Seiten"))) - - :asset/confirm-delete "{1} wirklich löschen?" + :asset/acceptable-file-extensions "Zulässige Dateierweiterungen" + :asset/add-assets "Assets hinzufügen" + :asset/add-directory "Verzeichnis hinzufügen" + :asset/alias-already-exists "Aliasname \"{1}\" existiert bereits!" + :asset/alias-directories "Alias-Verzeichnisse" + :asset/alias-directory-path-label "Verzeichnispfad:" + :asset/alias-name-dialog-title "Wie lautet der Aliasname für dieses ausgewählte Verzeichnis?" + :asset/alias-name-label "Aliasname:" + :asset/alias-name-placeholder "z. B. Bücher" + :asset/align "Ausrichtung" + :asset/align-center "Zentriert" + :asset/align-left "Linksbündig" + :asset/align-right "Rechtsbündig" + :asset/already-exists "Asset existiert bereits, Titel: {1}, Knotenreferenz: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Elternelement kann nicht als eigene Eigenschaft eingebettet werden" + :asset/confirm-delete-image "Möchten Sie dieses Bild wirklich löschen?" :asset/copy "Bild kopieren" + :asset/copy-image-unsupported-extension "Das Kopieren von Bildern wird für Dateien vom Typ {1} nicht unterstützt" + :asset/create-local-copy-warning "Es wird ein lokales Asset aus einem externen erstellt. PDF-Anmerkungen erfordern ein lokales Asset, um richtig zu funktionieren." + :asset/create-title "Asset erstellen" :asset/delete "Bild löschen" + :asset/downloading "Wird heruntergeladen" + :asset/drop-hint "Dateien hierher ziehen oder klicken, um Dateien auszuwählen" + :asset/edit-title "Asset bearbeiten" + :asset/external-url-label "Externe Asset-URL:" + :asset/file-extension-placeholder "z. B. mp3" :asset/maximize "Bild maximieren" :asset/open-in-browser "Bild im Browser öffnen" :asset/physical-delete "Datei ebenfalls entfernen (Achtung: die Datei kann nicht wiederhergestellt werden)" :asset/ref-block "Anlagen-Verweis-Block" - :asset/show-in-folder "Bild im Ordner anzeigen" + :asset/select-file "Asset-Datei auswählen" + :asset/select-from-disk "Von Festplatte auswählen" + :asset/selected-directories "Ausgewählte Verzeichnisse:" + :asset/show-file-in-folder "Datei im Ordner anzeigen" + :asset/size-too-large "Asset-Größe ist zu groß" + :asset/syncing "Wird synchronisiert" + :asset/title-label "Asset-Titel:" + :asset/transfer-placeholder "{1} Anlagen..." + :asset/uploading "Wird hochgeladen" - :block/name "Seitenname" + :block/click-to-fix-query "Klicken, um Abfrage zu reparieren: {1}" + :block/copy-ref "Blockreferenz kopieren" + :block/copy-url "Block-URL kopieren" + :block/created-label "Erstellt: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' ist veraltet. Verwenden Sie stattdessen den Befehl '/Math block'." + :block/deprecated-query-syntax "#+BEGIN_QUERY ist veraltet. Verwenden Sie stattdessen den Befehl '/Advanced Query'." + :block/deprecated-quote "#+BEGIN_QUOTE ist veraltet. Verwenden Sie stattdessen den Befehl '/Quote'." + :block/empty-url "Leere URL" + :block/excalidraw-no-longer-supported "Excalidraw wird standardmäßig nicht mehr unterstützt. Wir planen die Unterstützung über Plugins." + :block/extraction-error "Block-Extraktionsfehler" + :block/hide-query "Abfrage ausblenden" + :block/invalid-hiccup "Ungültiges Hiccup" + :block/invalid-link "Ungültiger Link" + :block/invalid-url "Ungültige URL" + :block/large-block-warning "Große Blöcke sind nicht bearbeitbar oder durchsuchbar, um die App nicht zu verlangsamen. Bitte verwenden Sie einen anderen Editor, um diesen Block zu bearbeiten." + :block/last-edited-label "Zuletzt bearbeitet: {1}" + :block/not-found-warning "Kein Block gefunden" + :block/open-block-references "Block-Referenzen öffnen" + :block/practice "Üben" + :block/practice-cards "Karteikarten üben" + :block/ref-nesting-too-deep "Block-Referenz-Verschachtelung ist zu tief" + :block/remove-tag "Tag entfernen" + :block/remove-this-tag "Diesen Tag entfernen" + :block/render-error "Block-Renderfehler:" + :block/set-query "Abfrage festlegen" + :block/set-query-label "Abfrage festlegen:" + :block/sort-order "Sortierreihenfolge" + :block/status-history "Statusverlauf" + :block/untitled-query "Unbenannte Abfrage" - :bug-report/main-title "Bug melden" - :bug-report/clipboard-inspector-title "Untersuchung der Zwischenablage" - :bug-report/main-desc "Können Sie uns mit einer Fehlermeldung helfen? Wir werden es schnellstmöglich beheben." - :bug-report/section-clipboard-title "Steht der Fehler in Zusammenhang mit einer dieser Funktionen?" - :bug-report/section-clipboard-desc "Sie können diese praktischen Werkzeuge verwenden, um uns zusätzliche Informationen zu geben." - :bug-report/section-clipboard-btn-title "Zwischenablagenhelfer" - :bug-report/section-clipboard-btn-desc "Daten der Zwischenablage sammeln und einsehen" - :bug-report/section-issues-title "Oder..." - :bug-report/section-issues-desc "Wenn Ihnen keine Werkzeuge zum Sammeln zusätzlicher Information zur Verfügung stehen, melden Sie den Fehler bitte direkt." - :bug-report/section-issues-btn-title "Fehlerbericht einsenden" - :bug-report/section-issues-btn-desc "Helfen Sie, Logseq zu verbessern!" - :bug-report/inspector-page-desc-1 "Drücken Sie Ctrl+V / ⌘+V, um Ihre Zwischenablage einzusehen" - :bug-report/inspector-page-desc-2 "oder klicken Sie hier zum Einfügen, wenn Sie die mobile Version nutzen" - :bug-report/inspector-page-placeholder "Auf Mobilgeräten hier lang gedrückt halten" - :bug-report/inspector-page-tip "Etwas stimmt nicht? Kein Problem, klicken Sie hier, um zum letzten Schritt zurückzugehen." - :bug-report/inspector-page-btn-back "Zurück" - :bug-report/inspector-page-btn-copy "Ergebnis kopieren" - :bug-report/inspector-page-copy-notif "In die Zwischenablage kopiert!" - :bug-report/inspector-page-btn-create-issue "Issue erstellen" - :bug-report/inspector-page-desc-clipboard "Hier sind die Daten aus der Zwischenablage." - :bug-report/inspector-page-desc-copy "Wenn Sie das teilen wollen, drücken Sie den \"Kopieren\"-Knopf." - :bug-report/inspector-page-desc-create-issue "Sie können nun die Ergebnisse melden. Bitte fügen Sie den Inhalt der Zwischenablage im Abschnitt 'Additional Context' ein und beschreiben Sie, woher Sie ihn ursprünglich kopiert haben. Danke viel Mal!" + :block.macro/embed-deprecated "{{embed}} ist veraltet. Verwenden Sie stattdessen den Befehl '/Node embed'." + :block.macro/namespace-deprecated "{{namespace}} ist veraltet. Verwenden Sie die Funktion {1}." + :block.macro/query-deprecated "{{query}} ist veraltet. Verwenden Sie stattdessen den Befehl '/Query'." + :block.macro/unsupported-name "Nicht unterstützter Makro-Name: {1}" + + :block.reaction/emoji-required-warning "Emoji erforderlich" + :block.reaction/unsupported-emoji-warning "Nicht unterstütztes Reaktions-Emoji" + + :bug-report/desc "Können Sie uns mit einer Fehlermeldung helfen? Wir werden es schnellstmöglich beheben." + :bug-report/title "Bug melden" + + :bug-report.clipboard/action-desc "Daten der Zwischenablage sammeln und einsehen" + :bug-report.clipboard/action-title "Zwischenablagenhelfer" + :bug-report.clipboard/desc "Sie können diese praktischen Werkzeuge verwenden, um uns zusätzliche Informationen zu geben." + :bug-report.clipboard/title "Steht der Fehler in Zusammenhang mit einer dieser Funktionen?" + + :bug-report.inspector/back "Zurück" + :bug-report.inspector/clipboard-desc "Hier sind die Daten aus der Zwischenablage." + :bug-report.inspector/copied "In die Zwischenablage kopiert!" + :bug-report.inspector/copy "Ergebnis kopieren" + :bug-report.inspector/copy-desc "Wenn Sie das teilen wollen, drücken Sie den \"Kopieren\"-Knopf." + :bug-report.inspector/create-issue "Issue erstellen" + :bug-report.inspector/create-issue-desc "Sie können nun das in Ihre Zwischenablage eingefügte Ergebnis melden. Bitte fügen Sie das Ergebnis im Abschnitt 'Additional Context' ein und geben Sie an, woher Sie den ursprünglichen Inhalt kopiert haben. Danke!" + :bug-report.inspector/desc "Drücken Sie {1}, um Ihre Zwischenablage einzusehen\noder klicken Sie hier zum Einfügen, wenn Sie die mobile Version nutzen" + :bug-report.inspector/placeholder "Auf Mobilgeräten hier lang gedrückt halten" + :bug-report.inspector/tip "Etwas stimmt nicht? Kein Problem, klicken Sie hier, um zum letzten Schritt zurückzugehen." + :bug-report.inspector/title "Untersuchung der Zwischenablage" + + :bug-report.issue/action-desc "Helfen Sie, Logseq zu verbessern!" + :bug-report.issue/action-title "Fehlerbericht einsenden" + :bug-report.issue/desc "Wenn Ihnen keine Werkzeuge zum Sammeln zusätzlicher Information zur Verfügung stehen, melden Sie den Fehler bitte direkt." + :bug-report.issue/report-link "Problem melden" + :bug-report.issue/title "Oder..." + + :class/add-property "Tag-Eigenschaft hinzufügen" + :class/tag-properties-desc "Tag-Eigenschaften werden von allen Knoten geerbt, die das Tag verwenden. Zum Beispiel erbt jeder #Task-Knoten 'Status' und 'Priority'." + :class/tagged-nodes "Getaggte Knoten" + + :class.built-in/asset "Asset" + :class.built-in/card "Karte" + :class.built-in/cards "Karten" + :class.built-in/code-block "Code" + :class.built-in/journal "Journal" + :class.built-in/math-block "Mathe" + :class.built-in/page "Seite" + :class.built-in/pdf-annotation "PDF-Anmerkung" + :class.built-in/property "Eigenschaft" + :class.built-in/query "Abfrage" + :class.built-in/quote-block "Zitat" + :class.built-in/root "Stamm-Tag" + :class.built-in/tag "Tag" + :class.built-in/task "Aufgabe" + :class.built-in/template "Vorlage" + :class.built-in/whiteboard "Whiteboard" + + :class.validation/built-in-extends-change "Vererbung eingebauter Elemente kann nicht geändert werden." + :class.validation/cant-add-tag-on-built-in "Tag kann nicht zum integrierten „{1}“ hinzugefügt werden." + :class.validation/cant-remove-private-tags "Private Tags können nicht entfernt werden: {1}." + :class.validation/cant-remove-tag-built-in "Tag mit integriertem #{1} kann nicht entfernt werden." + :class.validation/cant-remove-tag-on-built-in "Tag kann nicht für integriertes „{1}“ entfernt werden." + :class.validation/cant-set-tag-built-in "Tag kann nicht mit integriertem #{1} festgelegt werden." + :class.validation/duplicate "Tag '{1}' existiert bereits." + :class.validation/extends-cycle "Zyklus in Vererbungsbeziehung erkannt." + :class.validation/invalid-extends-type "Ungültiger Vererbungstyp." + :class.validation/parents-must-be-tags "Eltern von Tags müssen Tags sein." + :class.validation/tag-with-non-tag "Tag kann nicht mit integrierter Seite festgelegt werden, die kein Tag „{1}“ ist." + + :cmdk.action/apply-theme "Thema anwenden" + :cmdk.action/copy-ref "Referenz kopieren" + :cmdk.action/create "Erstellen" + :cmdk.action/filter "Filter" + :cmdk.action/open "Öffnen" + :cmdk.action/open-in-sidebar "In Seitenleiste öffnen" + :cmdk.action/search "Suchen" + :cmdk.action/trigger "Ausführen" + + :cmdk.create/configure-tag "Tag konfigurieren" + :cmdk.create/page "Seite erstellen" + :cmdk.create/tag "Tag erstellen" + + :cmdk.error/no-block-link "Dieser Block enthält keine Links." + :cmdk.error/no-page-link "Diese Seite enthält keine Links." + :cmdk.error/no-search-item-link "Dieses Suchergebnis enthält keine Links." + + :cmdk.filter/add "Filter hinzufügen" + :cmdk.filter/codes "Nur Code" + :cmdk.filter/commands "Nur Befehle" + :cmdk.filter/current-page "Nur aktuelle Seite" + :cmdk.filter/files "Nur Dateien" + :cmdk.filter/nodes "Nur Knoten" + :cmdk.filter/only-label "Nur suchen:" + :cmdk.filter/themes "Nur Designs" + + :cmdk.group/codes "Code" + :cmdk.group/commands "Befehle" + :cmdk.group/create "Erstellen" + :cmdk.group/current-page "Aktuelle Seite" + :cmdk.group/files "Dateien" + :cmdk.group/filters "Filter" + :cmdk.group/nodes "Knoten" + :cmdk.group/recently-updated "Kürzlich aktualisiert" + :cmdk.group/themes "Designs" + + :cmdk.info/configure-tag "#{1} konfigurieren" + :cmdk.info/create-page "Seite '{1}' erstellen" + :cmdk.info/create-tag "Tag '{1}' erstellen" + + :cmdk.input/add-graph-filter-placeholder "Graphfilter hinzufügen" + :cmdk.input/default-placeholder "Wonach suchen Sie?" + :cmdk.input/move-blocks-placeholder "Blöcke verschieben" + :cmdk.input/type-page-name-placeholder "Seitenname eingeben" + + :cmdk.tip/clear-filter "Drücken Sie {1}, um den Suchfilter zu löschen" + :cmdk.tip/filter-results "Drücken Sie {1}, um Suchergebnisse zu filtern" + :cmdk.tip/label "Tipp:" + :cmdk.tip/open-sidebar "Drücken Sie {1}, um die Suche in der Seitenleiste zu öffnen" + + :collaboration/email-address "E-Mail-Adresse" + :collaboration/invite "Einladen" + :collaboration/members "Mitglieder:" + :collaboration/remove-access "Zugang entfernen" + :collaboration/remove-access-error "Mitglied entfernen fehlgeschlagen" - :color/gray "Grau" - :color/red "Rot" - :color/yellow "Gelb" - :color/green "Grün" :color/blue "Blau" - :color/purple "Violett" + :color/crimson "Karmesin" + :color/cyan "Cyan" + :color/grass "Grasgrün" + :color/gray "Grau" + :color/green "Grün" + :color/indigo "Indigo" + :color/orange "Orange" :color/pink "Rosa" + :color/plum "Pflaume" + :color/purple "Violett" + :color/red "Rot" + :color/teal "Petrol" + :color/tomato "Tomate" + :color/violet "Violett" + :color/yellow "Gelb" - :content/click-to-edit "Klicken zum bearbeiten" - :editor/copy "Kopieren" - :editor/cut "Ausschneiden" - :content/copy-block-ref "Blockreferenz kopieren" - :content/open-in-sidebar "In Seitenleiste öffnen" + :command.auto-complete/complete "Automatische Vervollständigung: Ausgewähltes Element auswählen" + :command.auto-complete/meta-complete "Autovervollständigung: Strg + Enter zum Auswählen des markierten Elements" + :command.auto-complete/next "Automatische Vervollständigung: Nächstes Element auswählen" + :command.auto-complete/prev "Automatische Vervollständigung: Vorheriges Element auswählen" + :command.auto-complete/shift-complete "Automatische Vervollständigung: Ausgewähltes Element in der Seitenleiste öffnen" + :command.command-palette/toggle "Suchbefehle" + + :command.editor/add-property "Eigenschaft hinzufügen" + :command.editor/add-property-deadline "Deadline zum ausgewählten Block hinzufügen" + :command.editor/add-property-icon "Icon hinzufügen" + :command.editor/add-property-priority "Priorität zum ausgewählten Block hinzufügen" + :command.editor/add-property-status "Status zum ausgewählten Block hinzufügen" + :command.editor/add-reaction "Reaktion hinzufügen" + :command.editor/backspace "Backspace / Rückwärts löschen" + :command.editor/backward-kill-word "Ein Wort rückwärts löschen" + :command.editor/backward-word "Cursor ein Wort zurückbewegen" + :command.editor/beginning-of-block "Cursor an den Anfang eines Blocks bewegen" + :command.editor/bold "Fett" + :command.editor/clear-block "Gesamten Blockinhalt löschen" + :command.editor/collapse-block-children "Zusammenklappen" + :command.editor/copy "Kopieren (kopiert entweder die Auswahl oder die Blockreferenz)" + :command.editor/copy-embed "Kopieren einer Blockeinbettung, die auf den aktuellen Block verweist" + :command.editor/copy-page-url "Seiten-URL kopieren" + :command.editor/copy-text "Auswahl als Text kopieren" + :command.editor/cut "Ausschneiden" + :command.editor/cycle-todo "Den TODO-Status des aktuellen Eintrags ändern" + :command.editor/delete "Löschen / Vorwärts löschen" + :command.editor/delete-selection "Ausgewählte Blöcke löschen" + :command.editor/down "Cursor nach unten bewegen / Nach unten auswählen" + :command.editor/end-of-block "Cursor an das Ende eines Blocks bewegen" + :command.editor/escape-editing "Bearbeitung abschließen" + :command.editor/expand-block-children "Erweitern" + :command.editor/follow-link "Link unter dem Cursor folgen" + :command.editor/forward-kill-word "Ein Wort vorwärts löschen" + :command.editor/forward-word "Cursor ein Wort vorwärts bewegen" + :command.editor/highlight "Hervorheben" + :command.editor/indent "Block einrücken" + :command.editor/insert-link "HTML-Link" + :command.editor/insert-youtube-timestamp "YouTube-Zeitstempel einfügen" + :command.editor/italics "Kursiv" + :command.editor/jump "Zu Property-Schlüssel oder -Wert springen" + :command.editor/kill-line-after "Zeile nach der Cursorposition löschen" + :command.editor/kill-line-before "Zeile vor der Cursorposition löschen" + :command.editor/left "Cursor nach links bewegen / Ausgewählten Block am Anfang öffnen" + :command.editor/move-block-down "Block nach unten verschieben" + :command.editor/move-block-up "Block nach oben verschieben" + :command.editor/move-blocks "Blöcke verschieben nach" + :command.editor/new-block "Neuen Block erstellen" + :command.editor/new-line "Neue Zeile innerhalb des Blocks erstellen" + :command.editor/open-edit "Ausgewählten Block bearbeiten" + :command.editor/open-link-in-sidebar "Link in Seitenleiste öffnen" + :command.editor/open-selected-blocks-in-sidebar "Ausgewählte Blöcke in Seitenleiste öffnen" + :command.editor/outdent "Block ausrücken" + :command.editor/paste-text-in-one-block-at-point "Text in einen Block an Stelle einfügen" + :command.editor/quick-add "Schnell hinzufügen" + :command.editor/redo "Wiederholen" + :command.editor/right "Cursor nach rechts bewegen / Ausgewählten Block am Ende öffnen" + :command.editor/select-all-blocks "Alle Blöcke auswählen" + :command.editor/select-block-down "Block unterhalb auswählen" + :command.editor/select-block-up "Block oberhalb auswählen" + :command.editor/select-down "Inhalt unten auswählen" + :command.editor/select-parent "Übergeordneten Block auswählen" + :command.editor/select-up "Inhalt oben auswählen" + :command.editor/set-tags "Tags für ausgewählte Blöcke setzen" + :command.editor/strike-through "Durchgestrichen" + :command.editor/toggle-block-children "Ein-/Ausklappen umschalten" + :command.editor/toggle-display-hidden-properties "Alle Properties anzeigen/verstecken" + :command.editor/toggle-number-list "Nummeriert/Unnummeriert umschalten" + :command.editor/toggle-open-blocks "Öffnen von Blöcken umschalten (alle Blöcke ein- oder ausklappen)" + :command.editor/undo "Rückgängig" + :command.editor/up "Cursor nach oben bewegen / Nach oben auswählen" + :command.editor/zoom-in "Heranzoomen" + :command.editor/zoom-out "Herauszoomen" + + :command.go/all-graphs "Zu allen Graphen springen" + :command.go/all-pages "Zu allen Seiten springen" + :command.go/backward "Zurück" + :command.go/electron-find-in-page "Text in Seite finden" + :command.go/electron-jump-to-the-next "Zum nächsten Treffer in der Suchleiste springen" + :command.go/electron-jump-to-the-previous "Zum vorherigen Treffer in der Suchleiste springen" + :command.go/flashcards "Karteikarten umdrehen" + :command.go/forward "Vorwärts" + :command.go/graph-view "Zur Graph-Ansicht springen" + :command.go/home "Zur Startseite springen" + :command.go/journals "Zu Journalen springen" + :command.go/keyboard-shortcuts "Zu Tastaturkürzeln springen" + :command.go/next-journal "Zum nächsten Journal springen" + :command.go/prev-journal "Zum vorherigen Journal springen" + :command.go/search "Volltextsuche" + :command.go/search-in-page "Blöcke in Seite suchen" + :command.go/search-themes "Themen suchen" + :command.go/tomorrow "Zu morgen springen" + + :command.graph/add "Einen Graph hinzufügen" + :command.graph/db-add "DB-Graph hinzufügen" + :command.graph/db-save "Aktuelle DB auf Festplatte speichern (~/logseq/graphs/dein-aktueller-graph)" + :command.graph/export-as-html "Öffentliche Graphseite als HTML exportieren" + :command.graph/open "Graph zum Öffnen auswählen" + :command.graph/remove "Einen Graph entfernen" + + :command.misc/copy "Kopieren" + :command.misc/export-block-data "Block-EDN-Daten exportieren" + :command.misc/export-graph-ontology-data "Graph-Tags und -Properties als EDN exportieren" + :command.misc/export-page-data "Seiten-EDN-Daten exportieren" + :command.misc/import-edn-data "EDN-Daten importieren" + + :command.page/toggle-favorite "Zu Favoriten hinzufügen/entfernen" + + :command.pdf/close "PDF: Aktuelles PDF-Dokument schließen" + :command.pdf/find "PDF: Text des aktuellen PDF-Dokuments durchsuchen" + :command.pdf/next-page "PDF: Nächste Seite des aktuellen PDF-Dokuments" + :command.pdf/previous-page "PDF: Vorherige Seite des aktuellen PDF-Dokuments" + + :command.publish/open-dialog "Veröffentlichungsdialog öffnen" + + :command.search/re-index "Suchindex neu erstellen" + + :command.shell/run "Git-Befehl ausführen" + + :command.sidebar/clear "Alles in der rechten Seitenleiste entfernen" + :command.sidebar/close-top "Schließt das oberste Element in der rechten Seitenleiste" + :command.sidebar/open-today-page "Seite des heutigen Tages in der rechten Seitenleiste öffnen" + + :command.ui/clear-all-notifications "Alle Benachrichtigungen entfernen" + :command.ui/customize-appearance "Erscheinungsbild anpassen" + :command.ui/goto-plugins "Zum Plugin-Dashboard springen" + :command.ui/highlight-recent-blocks "Hervorhebung aktueller Blöcke umschalten" + :command.ui/install-plugin-from-github "Plugin von GitHub-Release installieren" + :command.ui/install-plugins-from-file "Plugins aus plugins.edn installieren" + :command.ui/select-theme-color "Verfügbare Themenfarben auswählen" + :command.ui/toggle-brackets "Umschalten, ob Klammern angezeigt werden sollen" + :command.ui/toggle-contents "Inhalt in Seitenleiste umschalten" + :command.ui/toggle-document-mode "Dokumentenmodus umschalten" + :command.ui/toggle-help "Hilfe aktivieren" + :command.ui/toggle-left-sidebar "Linke Seitenleiste umschalten" + :command.ui/toggle-right-sidebar "Rechte Seitenleiste umschalten" + :command.ui/toggle-settings "Einstellungen umschalten" + :command.ui/toggle-theme "Umschalten zwischen dunklem/hellem Theme" + :command.ui/toggle-wide-mode "Breitbildmodus umschalten" + + :command.window/close "Fenster schließen" + + :context-menu/developer-tools "Entwicklertools" + :context-menu/make-a-flashcard "Eine Karteikarte erstellen" + :context-menu/set-icon "Symbol setzen" + :context-menu/toggle-number-list "Nummeriert/Unnummeriert umschalten" + + :date/invalid-date-warning "{1} ist kein gültiges Datum. Bitte versuchen Sie es erneut" + + :date.nlp/last-friday "Letzten Freitag" + :date.nlp/last-monday "Letzten Montag" + :date.nlp/last-month "Letzten Monat" + :date.nlp/last-saturday "Letzten Samstag" + :date.nlp/last-sunday "Letzten Sonntag" + :date.nlp/last-thursday "Letzten Donnerstag" + :date.nlp/last-tuesday "Letzten Dienstag" + :date.nlp/last-wednesday "Letzten Mittwoch" + :date.nlp/last-week "Letzte Woche" + :date.nlp/last-year "Letztes Jahr" + :date.nlp/next-friday "Nächsten Freitag" + :date.nlp/next-monday "Nächsten Montag" + :date.nlp/next-month "Nächsten Monat" + :date.nlp/next-saturday "Nächsten Samstag" + :date.nlp/next-sunday "Nächsten Sonntag" + :date.nlp/next-thursday "Nächsten Donnerstag" + :date.nlp/next-tuesday "Nächsten Dienstag" + :date.nlp/next-wednesday "Nächsten Mittwoch" + :date.nlp/next-week "Nächste Woche" + :date.nlp/next-year "Nächstes Jahr" + :date.nlp/this-friday "Diesen Freitag" + :date.nlp/this-monday "Diesen Montag" + :date.nlp/this-month "Diesen Monat" + :date.nlp/this-saturday "Diesen Samstag" + :date.nlp/this-sunday "Diesen Sonntag" + :date.nlp/this-thursday "Diesen Donnerstag" + :date.nlp/this-tuesday "Diesen Dienstag" + :date.nlp/this-wednesday "Diesen Mittwoch" + :date.nlp/this-week "Diese Woche" + :date.nlp/this-year "Dieses Jahr" + :date.nlp/today "Heute" + :date.nlp/tomorrow "Morgen" + :date.nlp/yesterday "Gestern" + + :deeplink/open-block-error "Link konnte nicht geöffnet werden. Block-ID `{1}` existiert nicht im aktuellen Graphen." + :deeplink/open-graph-error "Graph konnte nicht geöffnet werden. Graph `{1}` existiert nicht." + :deeplink/open-page-error "Link konnte nicht geöffnet werden. Seite `{1}` existiert nicht im aktuellen Graphen." + + :editor/add-content-first-warning "Bitte fügen Sie zuerst Inhalt hinzu." + :editor/auto-heading "Automatische Überschrift" :editor/block-search "Nach einem Block suchen" + :editor/click-to-edit "Klicken zum bearbeiten" + :editor/code-language-placeholder "Sprache wählen" + :editor/collapse-block-children "Alles einklappen" + :editor/cut "Ausschneiden" + :editor/cycle-todo "Den TODO-Status des aktuellen Elements rotieren" + :editor/delete-selection "Ausgewählte Blöcke entfernen" + :editor/display-tag-inline-hint "um diesen Tag inline statt am Ende dieses Knotens anzuzeigen." + :editor/expand-block-children "Alles ausklappen" + :editor/heading "Überschrift {1}" + :editor/moving-blocks-count "Verschiebe {1} Blöcke" + :editor/new-page "Neue Seite" + :editor/new-tag "Neuer Tag" + :editor/no-block-selected-warning "Kein Block ausgewählt" + :editor/paste "Einfügen" + :editor/reference-node-use-page-ref "Verwenden Sie `[[]]`, um einen Knoten zu referenzieren." + :editor/remove-heading "Überschrift entfernen" + :editor/search-for-node "Nach einem Knoten suchen" + :editor/search-for-tag "Nach einem Tag suchen" + :editor/search-template-placeholder "Nach einer Vorlage suchen" + :editor/template-insert-error "Vorlageneinfügungsfehler: {1}" + :editor.document-mode/new-block-hint "{1} um einen neuen Block zu erstellen" + :editor.document-mode/title "Dokumentmodus" + :editor.document-mode/toggle-desc "Klicken Sie `D` oder geben Sie {1} ein, um den Dokumentmodus umzuschalten" + + :editor.quick-add/add-to-today "Zur heutigen Seite hinzufügen" + :editor.quick-add/title "Schnell hinzufügen" + + :editor.slash/advanced-query "Erweiterte Abfrage" + :editor.slash/advanced-query-desc "Erstelle einen Block mit erweiterte Abfrage" + :editor.slash/calculator "Taschenrechner" + :editor.slash/calculator-desc "Taschenrechner einfügen" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Code-Block" + :editor.slash/code-block-desc "Code-Block einfügen" + :editor.slash/current-time "Aktuelle Zeit" + :editor.slash/current-time-desc "Aktuelle Zeit einfügen" + :editor.slash/date-picker "Datumsauswahl" + :editor.slash/date-picker-desc "Wählen Sie ein Datum aus und fügen Sie es ein" + :editor.slash/embed-html "HTML einbetten" + :editor.slash/embed-twitter-tweet "Twitter-Tweet einbetten" + :editor.slash/embed-video-url "Video-URL einbetten" + :editor.slash/embed-youtube-timestamp "YouTube-Zeitstempel einbetten" + :editor.slash/group-advanced "ERWEITERT" + :editor.slash/group-basic "GRUNDLEGEND" + :editor.slash/group-format "FORMATIERUNG" + :editor.slash/group-heading "Überschrift" + :editor.slash/group-list-type "LISTENTYP" + :editor.slash/group-plugins "PLUGINS" + :editor.slash/group-priority "PRIORITÄT" + :editor.slash/group-task-date "AUFGABENDATUM" + :editor.slash/group-task-status "AUFGABENSTATUS" + :editor.slash/group-time-and-date "ZEIT & DATUM" + :editor.slash/heading-label "Überschrift {1}" + :editor.slash/image-link "Bildlink" + :editor.slash/image-link-desc "Erstelle einen HTTP-Link zu einem Bild" + :editor.slash/link-desc "Erstelle einen HTTP-Link" + :editor.slash/math-block "Mathematik-Block" + :editor.slash/math-block-desc "Erstelle einen LaTeX-Block" + :editor.slash/no-priority "Keine Priorität" + :editor.slash/node-embed "Knoten einbetten" + :editor.slash/node-embed-desc "Bette einen Knoten hier ein" + :editor.slash/node-reference "Knotenreferenz" + :editor.slash/node-reference-desc "Erstelle einen Rücklink zu einem Knoten (eine Seite oder ein Block)" + :editor.slash/normal-text "Normaler Text" + :editor.slash/normal-text-desc "Überschrift löschen und auf Normaltext einstellen" + :editor.slash/number-children "Nummeriere Kinder" + :editor.slash/number-list "Nummerierte Liste" + :editor.slash/priority-desc "Priorität auf {1} setzen" + :editor.slash/priority-label "Priorität {1}" + :editor.slash/query-function "Abfragefunktion" + :editor.slash/query-function-desc "Erstelle eine Abfragefunktion" + :editor.slash/quote-desc "Erstelle einen Zitat-Block" + :editor.slash/status-desc "Status auf {1} setzen" + :editor.slash/template-desc "Füge eine erstellte Vorlage hier ein" + :editor.slash/today-desc "Füge das Datum von heute ein" + :editor.slash/tomorrow-desc "Füge das Datum von morgen ein" + :editor.slash/underline "Unterstrichen" + :editor.slash/underline-desc "Erstelle eine unterstrichene Textdekoration" + :editor.slash/upload-asset "Anlagen hochladen" + :editor.slash/upload-asset-desc "Laden Sie Dateitypen wie Bilder, PDF, DOCX usw. hoch" + :editor.slash/yesterday-desc "Füge das Datum von gestern ein" + + :electron/about "Über Logseq" + :electron/add-to-dictionary "Zum Wörterbuch hinzufügen" + :electron/block-not-exist "Öffnen des Links fehlgeschlagen. Die Block-ID `{1}` existiert im Graphen nicht." + :electron/cancel "Abbrechen" + :electron/copy-image "Bild kopieren" + :electron/link-open-confirm "Möchten Sie diesen Link wirklich öffnen?\n{1}" + :electron/link-open-failed-missing-graph "Link konnte nicht geöffnet werden. Graph fehlt." + :electron/link-open-failed-no-graph "Öffnen des Links fehlgeschlagen. Die Graph-Kennung `{1}` konnte keinem verknüpften Graphen zugeordnet werden." + :electron/link-open-failed-no-target "Öffnen des Links fehlgeschlagen. `{1}` konnte keinem Ziel zugeordnet werden." + :electron/look-up "Auswahl nachschlagen" + :electron/main-exception "[Hauptprozess-Ausnahme]\n{1}\n{2}" + :electron/new-window "Neues Fenster" + :electron/official-docs "Offizielle Dokumentation" + :electron/ok "OK" + :electron/open-dir-error "Verzeichnis konnte nicht geöffnet werden: {1}" + :electron/save-image "Bild speichern" + :electron/save-image-as "Bild speichern unter" + :electron/search-with-google "Mit Google suchen" + :electron/unimplemented-callback "Nicht implementierte x-callback-url-Aktion: `{1}`." + :electron/version "Version {1}" + :electron/write-file-error "Schreiben in die Datei {1} fehlgeschlagen, {2}." + :electron/write-file-error-with-backup "Schreiben in die Datei {1} fehlgeschlagen, {2}. Eine Sicherung wurde unter {3} gespeichert." + + :encryption/cloud-password-rich (fn [] ["Wenn Sie Ihr Passwort verlieren, können Ihre Daten in der Cloud nicht entschlüsselt werden. " [:span "Sie können weiterhin auf die lokale Version Ihres Graphen zugreifen."]]) + :encryption/current-password "Aktuelles Passwort" + :encryption/enter-password "Passwort eingeben" + :encryption/enter-password-again "Passwort erneut eingeben" + :encryption/enter-password-title "Passwort eingeben" + :encryption/failed-to-force-reset-password "Erzwungenes Zurücksetzen des Passworts fehlgeschlagen" + :encryption/failed-to-update-password "Passwortaktualisierung fehlgeschlagen" + :encryption/fetch-key-pair-error "Fehler beim Abrufen des RSA-Schlüsselpaars des Benutzers: {1}" + :encryption/fetching-key-pair "Schlüsselpaar wird abgerufen" + :encryption/force-reset-password "Passwort erzwungen zurücksetzen" + :encryption/force-reset-password-successfully "Passwort wurde erzwungen zurückgesetzt" + :encryption/force-resetting-password "Passwort wird erzwungen zurückgesetzt" + :encryption/forgot-password-question "Passwort vergessen?" + :encryption/forgot-password-warning "Wenn Sie Ihr Passwort vergessen, können verschlüsselte Daten nicht wiederhergestellt werden." + :encryption/init-key-pair "Schlüsselpaar initialisieren" + :encryption/init-key-pair-error "Init-Schlüsselpaarfehler: {1}" + :encryption/password-not-matched "Passwörter stimmen nicht überein" + :encryption/password-updated-successfully "Passwort wurde aktualisiert" + :encryption/remember-password-rich (fn [] [[:span "Bitte stellen Sie sicher, dass Sie "] "sich an das gesetzte Passwort erinnern, da wir es nicht zurücksetzen oder wiederherstellen können, wenn Sie es vergessen, " [:span "und wir empfehlen Ihnen, "] "eine sichere Sicherungskopie des Passworts aufzubewahren."]) + :encryption/reset-password "Passwort zurücksetzen" + :encryption/set-new-password "Neues Passwort festlegen" + :encryption/set-password-title "Passwort festlegen" + :encryption/updating-password "Passwort wird aktualisiert" + :encryption/wrong-password "Falsches Passwort" + + :export/backup-successful "Backup erfolgreich!" + :export/block-data-copied "Blockdaten in Zwischenablage kopiert" + :export/collecting-assets "Assets werden gesammelt" + :export/copied-to-clipboard "In Zwischenablage kopiert!" + :export/copy-or-export-as "Kopieren / Exportieren als.." + :export/creating-zip "ZIP wird erstellt" + :export/db-backup-error "Datenbank-Backup fehlgeschlagen. Bitte geben Sie einen Backup-Ordner im Export an." + :export/db-edn "Als EDN-Datei exportieren" + :export/debug-transit-desc "Exportiert in eine .transit-Datei zur Fehlerbehebung. Sensible Daten werden in der exportierten Datei entfernt." + :export/debug-transit-file "Debug-Transit-Datei exportieren" + :export/edn-desc "Exportiert in eine lesbare und bearbeitbare .edn-Datei. Verlassen Sie sich nicht darauf als primäres Backup." + :export/error-unexpected "Beim Exportieren ist ein unerwarteter Fehler aufgetreten. Weitere Informationen finden Sie in der JavaScript-Konsole." + :export/exporting "Wird exportiert" + :export/finalizing "Wird abgeschlossen" + :export/format-text "Text" + :export/graph "Graph exportieren" + :export/graph-ontology-data-copied "Graph-Ontologie-Daten in Zwischenablage kopiert" + :export/indent-style-dashes "Striche" + :export/indent-style-label "Einrückungsstil:" + :export/indent-style-none "Keine Einrückung" + :export/indent-style-spaces "Leerzeichen" + :export/level-lte "Ebene <=" + :export/markdown "Als Standard-Markdown exportieren (ohne Block-Eigenschaften)" + :export/newline-after-block "Zeilenumbruch nach Block" + :export/no-updates-since-last-export "Keine Aktualisierungen seit dem letzten Export." + :export/open-blocks-only "nur offene Blöcke (eingeklappte Kinder überspringen)" + :export/page "Seite exportieren" + :export/page-data-copied "Seitendaten in Zwischenablage kopiert" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "ZIP wird vorbereitet" + :export/preview-alt "Exportvorschau" + :export/public-pages "Öffentliche Seiten exportieren" + :export/remove-emphasis "Hervorhebungen entfernen" + :export/remove-properties "Eigenschaften entfernen" + :export/remove-tags "#Tags entfernen" + :export/save-to-file "In Datei speichern" + :export/sqlite-db "SQLite-Datenbank exportieren" + :export/title "Exportieren" + :export/transparent-background "Transparenter Hintergrund" + :export/view-nodes-data-copied "Ansichtsknoten-Daten in Zwischenablage kopiert" + :export/zip "SQLite-Datenbank und Assets exportieren" + :export/zip-error "ZIP-Export fehlgeschlagen." + + :export.backup/backup-now "Jetzt sichern" + :export.backup/cancel "Sicherung abbrechen" + :export.backup/enabled-desc "Stündliche Sicherungen sind für diesen Graphen aktiviert, {1}." + :export.backup/folder "Sicherungsordner:" + :export.backup/hourly-note "Es wird stündlich eine Sicherung erstellt." + :export.backup/open-folder "Sicherungsordner für diesen Graphen öffnen" + :export.backup/schedule "Sicherung planen" + :export.backup/set-folder-first "Zuerst Sicherungsordner festlegen" + :export.backup/sqlite-desc "Primäre Methode zur Sicherung des Graph-Inhalts in eine einzelne .sqlite-Datei." + :export.backup/unsupported-desc "Ihr Browser unterstützt die {{The File System Access API}} nicht. Bitte wechseln Sie zu einem Chromium-basierten Browser." + :export.backup/zip-desc "Primäre Methode zur Sicherung des Graph-Inhalts und der Assets in eine .zip-Datei." + + :file/config-duplicate-keys "Die Datei „{1}“ weist doppelte Schlüssel auf. Der Schlüssel '{2}' ist mehrfach vergeben." + :file/config-invalid "Konfigurationsdatei ist ungültig" :file/format-not-supported "Format .{1} wird nicht unterstützt." + :file/label "Datei" :file/last-modified-at "Zuletzt geändert am" :file/name "Dateinamen" :file/no-data "Keine Daten" - :flashcards/modal-finished "Gratulation, alle Karten für diese Runde sind geschafft, bis zum nächsten Mal! 💯" - :flashcards/modal-welcome-desc-1 "Fügen Sie \"{1}\" zu einem beliebigen Block hinzu, um daraus eine Karte zu machen, oder nutzen Sie \"/cloze\", um Clozes zu erstellen." - :flashcards/modal-welcome-title "Zeit, eine Karte zu erstellen!" + :file/title "Datei {1}" + + :file.config/deprecation-title "Die Datei {1} enthält die folgenden Veraltungen:" + :file.config/error-title "Die Datei {1} enthält die folgenden Fehler:" + :file.config/invalid-desc "Stellen Sie sicher, dass die Konfiguration in {} eingeschlossen ist." + :file.config/invalid-title "Die Datei {1} ist ungültig." + :file.config/read-failed-desc "Stellen Sie sicher, dass Ihre Konfiguration in {} eingeschlossen ist. Überprüfen Sie auch, dass die Zeichen '( { [' ihre entsprechenden Schließzeichen ') } ]' haben." + :file.config/read-failed-title "Fehler beim Lesen der Datei {1}" + + :flashcard/add-query "Neue Abfrage hinzufügen" + :flashcard/all-cards "Alle Karten" + :flashcard/select-cards "Karten auswählen" + :flashcard/shortcut-tooltip "Tastenkürzel: {1}" + + :flashcard.empty/desc "Fügen Sie \"{1}\" zu einem beliebigen Block hinzu, um daraus eine Karte zu machen, oder nutzen Sie \"/cloze\", um Clozes zu erstellen." + :flashcard.empty/title "Zeit, eine Karte zu erstellen!" + + :flashcard.rating/again "Erneut" + :flashcard.rating/again-desc "Wir haben die Antwort falsch gegeben. Das bedeutet automatisch, dass wir die Karte vergessen haben. Das ist ein Gedächtnisaussetzer." + :flashcard.rating/easy "Leicht" + :flashcard.rating/easy-desc "Die Antwort war richtig und wir konnten uns schnell und sicher ohne große Anstrengung erinnern." + :flashcard.rating/good "Gut" + :flashcard.rating/good-desc "Die Antwort war richtig, aber wir mussten uns etwas anstrengen, um uns daran zu erinnern." + :flashcard.rating/hard "Schwer" + :flashcard.rating/hard-desc "Die Antwort war richtig, aber wir waren uns nicht sicher oder brauchten zu lange, um sie abzurufen." + + :flashcard.review/finished "Gratulation, alle Karten für diese Runde sind geschafft, bis zum nächsten Mal! 💯" + :flashcard.review/hide-answers "Antworten ausblenden" + :flashcard.review/show-answers "Antworten anzeigen" + :flashcard.review/show-clozes "Lücken anzeigen" + + :format/bold "Fett" + :format/code "Code" + :format/highlight "Hervorhebung" + :format/italics "Kursiv" + :format/strikethrough "Durchgestrichen" :graph/all-graphs "Alle Graphen" + :graph/already-exists-error "Der Graph '{1}' existiert bereits. Bitte versuchen Sie es mit einem anderen Namen." + :graph/as-png "als PNG" + :graph/built-in-pages "Integrierte Seiten" + :graph/charge-range "Ladungsbereich" + :graph/charge-strength "Ladungsstärke" + :graph/click-to-search "Klicken zum Suchen" + :graph/create-db "DB-Graph erstellen" + :graph/create-error "Graph-Erstellung fehlgeschlagen" + :graph/create-new "Neuen Graphen erstellen" + :graph/created-before "Erstellt vor" + :graph/creating "Graph wird erstellt" + :graph/delete-local-action "Lokalen Graphen löschen" + :graph/delete-local-confirm-desc "Sind Sie sicher, dass Sie den Graphen \"{1}\" permanent aus Logseq löschen möchten?" + :graph/delete-server-action "Vom Server löschen" + :graph/delete-server-confirm-desc "Sind Sie sicher, dass Sie den Graphen \"{1}\" permanent von unserem Server löschen möchten?" + :graph/delete-warning "⚠️ Beachten Sie, dass wir diesen Graphen nach dem Löschen nicht wiederherstellen können. Stellen Sie sicher, dass Sie eine Sicherung haben, bevor Sie ihn löschen." + :graph/diff "Git diff" + :graph/downloading "wird heruntergeladen" + :graph/encrypt-data-label "Graphdaten verschlüsseln" + :graph/excluded-pages "Ausgeschlossene Seiten" + :graph/forces "Kräfte" + :graph/gc-success "Graph-Bereinigung erfolgreich!" + :graph/last-opened-at-label "Zuletzt geöffnet: {1}" + :graph/leave-action "Diesen Graphen verlassen" + :graph/leave-confirm-desc "Sind Sie sicher, dass Sie diesen Graphen verlassen möchten?" + :graph/leave-error "Graph verlassen fehlgeschlagen" + :graph/left "Graph verlassen" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "Link" "Links"))) + :graph/link-distance "Linkabstand" :graph/local-graphs "Lokale Graphen:" + :graph/n-hops-from-selected-nodes "N Sprünge von ausgewählten Knoten" + :graph/name-placeholder "Ihr Graphname" + :graph/nodes "Knoten" + :graph/orphan-pages "Verwaiste Seiten" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "Seite" "Seiten"))) + :graph/pause-simulation "Simulation pausieren" + :graph/preparing "wird vorbereitet" + :graph/refresh-remote-graphs "Entfernte Graphen aktualisieren" :graph/remote-graphs "Remote-Graphs:" + :graph/removed "Diagramm entfernt „{1}“" + :graph/removed-and-redirecting "Diagramm „{1}“ entfernt. Weiterleitung zum Diagramm „{2}“" + :graph/removed-from-sync "Graph aus Synchronisierung entfernt" + :graph/reset "Graph zurücksetzen" + :graph/reset-forces "Kräfte zurücksetzen" + :graph/search "Suche" + :graph/shared-graphs "Geteilte Graphen" + :graph/updated-switching "Graph aktualisiert. Wechsel..." + :graph/use-sync-beta "Logseq Sync verwenden (Betatest)" + :graph/use-sync-label "Logseq Sync verwenden?" - :handbook/close "Schließen" - :handbook/help-categories "Hilfekategorien" - :handbook/home "Startseite" - :handbook/popular-topics "Beliebte Themen" - :handbook/search "Suche" - :handbook/settings "Einstellungen" - :handbook/title "Hilfe" - :handbook/topics "Themen" + :graph.diagnostics/checksum-failed-error "Die Prüfsummen-Diagnose des Graphen konnte nicht berechnet werden." + :graph.diagnostics/checksum-recomputed-success "Prüfsumme neu berechnet. Neu berechnet: {1}, lokal: {2}, remote: {3}. {4}.edn wurde mit {5} Blöcken und Prüfsummenattributen {6} heruntergeladen." + :graph.diagnostics/checksum-unavailable-warning "Die Prüfsummen-Diagnose für den aktuellen Graphen konnte nicht berechnet werden." + :graph.diagnostics/client-ops-export-failed-error "Client ops SQLite konnte nicht exportiert werden." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Export von Client ops SQLite fehlgeschlagen: ungültiger Payload-Typ {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exportiert: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Kein Graph gefunden." + + :graph.page/show-journals "Zeige Journale" + :graph.page/title "Seiten-Graph" + + :graph.switch/add-graph-action "Ja, weiteren Graphen hinzufügen" + :graph.switch/empty-desc "Keine übereinstimmenden Graphen. Möchten Sie einen weiteren hinzufügen?" + :graph.switch/prompt "Wechseln zu:" + :graph.switch/select-prompt "Einen Graphen auswählen" + + :graph.validation/config-arweave-gateway-warning "wird nicht mehr unterstützt." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "wird nicht mehr unterstützt. Bitte verwenden Sie '/' und melden Sie Fehler darin." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "wird bei DB-Graphen nicht verwendet, da es nur den Markdown-Modus gibt." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Validierung hat {1} ungültige Block(Blöcke) erkannt. Diese Blöcke können fehlerhaft sein. Versuchen, ungültige Blöcke zu reparieren. Führen Sie die Validierung erneut durch, um zu sehen, ob sie repariert wurden." + :graph.validation/name-reserved-characters-warning "Graphname darf folgende reservierte Zeichen nicht enthalten:" + :graph.validation/reserved-character-asterisk "Sternchen" + :graph.validation/reserved-character-backslash "Backslash" + :graph.validation/reserved-character-colon "Doppelpunkt" + :graph.validation/reserved-character-double-quote "doppeltes Anführungszeichen" + :graph.validation/reserved-character-forward-slash "Schrägstrich" + :graph.validation/reserved-character-greater-than "größer als" + :graph.validation/reserved-character-hash "Raute" + :graph.validation/reserved-character-less-than "kleiner als" + :graph.validation/reserved-character-pipe "senkrechter Strich oder Pipe" + :graph.validation/reserved-character-plus "Plus" + :graph.validation/reserved-character-question-mark "Fragezeichen" + :graph.validation/valid "Ihr Graph ist gültig! {1}" :header/go-back "Zurück" :header/go-forward "Vorwärts" + :header/highlight-recent-blocks "Kürzlich bearbeitete Blöcke hervorheben" + :header/highlight-recent-blocks-days-ago "Kürzlich bearbeitete Blöcke hervorheben: vor {1} Tagen" :header/more "Weitere Optionen" - :header/search "Suchen" + :header/quit-highlight-recent-blocks "Hervorhebung kürzlicher Blöcke beenden" :header/toggle-left-sidebar "Linke Seitenleiste umschalten" :help/about "Über Logseq" + :help/about-title "Über" + :help/ask-community "Community fragen" + :help/awesome-logseq "Awesome Logseq" :help/block-reference "Blockverweis" :help/blog "Logseq Blog" :help/bug "Fehlerbericht" :help/changelog "Änderungsprotokoll" + :help/community-title "Community" :help/context-menu "Kontextmenü" + :help/context-menu-action "Rechtsklick auf Aufzählungspunkt" + :help/development-title "Entwicklung" :help/docs "Dokumentation" :help/feature "Feature-Anfrage" :help/forum-community "Forum" + :help/handbook "Handbuch" + :help/learn-more "Mehr erfahren" :help/markdown-syntax "Syntax von Markdown" :help/open-link-in-sidebar "Link in Seitenleiste öffnen" + :help/open-link-in-sidebar-action "Umschalt-Klick auf Referenz" :help/privacy "Datenschutzrichtlinie" :help/reference-autocomplete "Seitenverweis Autovervollständigung" - :help/search "Suche Seiten/Blöcke/Befehle" - :help/shortcut "Tastaturkürzel" - :help/shortcut-page-title "Tastaturbefehl" - :help/shortcuts "Tastaturkürzel" - :help-shortcut-title "Hier klicken, um Tastenkombinationen und weitere Tipps zu sehen" - :help/shortcuts-triggers "Auslöser" + :help/release-notes "Versionshinweise" + :help/roadmap "Roadmap" + :help/search "Suche" :help/slash-autocomplete "/-Autovervollständigung" :help/start "Einstieg" + :help/submit-feedback "Feedback senden" + :help/support-forum "Support-Forum" :help/terms "Nutzungsbedingungen" - :help/title-about "Über" - :help/title-development "Entwicklung" - :help/title-terms "Rechtliches" - :help/title-usage "Bedienung" + :help/terms-title "Rechtliches" + :help/usage-title "Bedienung" + + :help.handbook/chat-on-discord "Auf Discord chatten" + :help.handbook/chat-on-discord-desc "Stellen Sie schnelle Fragen, treffen Sie andere Nutzer und lernen Sie neue Arbeitsabläufe kennen." + :help.handbook/copy-topic-link "Themenlink kopieren" + :help.handbook/current-chapter "Aktuelles Kapitel" + :help.handbook/help-categories "Hilfekategorien" + :help.handbook/home "Startseite" + :help.handbook/link-copied "Handbuchlink kopiert!" + :help.handbook/monthly-posts "monatliche Beiträge" + :help.handbook/next-chapter "Nächstes Kapitel" + :help.handbook/popular-topics "Beliebte Themen" + :help.handbook/prev-chapter "Vorheriges Kapitel" + :help.handbook/resources-from "Ressourcen von {1}" + :help.handbook/search-placeholder "Suche" + :help.handbook/shortcuts-count "{1} Tastenkürzel" + :help.handbook/sync "Synchronisierung" + :help.handbook/title "Hilfe" + :help.handbook/topics "Themen" + :help.handbook/users-online "Nutzer online" + :help.handbook/visit-the-forum "Forum besuchen" + :help.handbook/visit-the-forum-desc "Geben Sie Feedback, stellen Sie Funktionswünsche und führen Sie ausführliche Gespräche." + :help.handbook/writing-mode "Schreibmodus (Vorschau in Kürze)" + + :help.shortcuts/desc "Tastenkombinationen und Tipps anzeigen" + :help.shortcuts/label "Tastaturkürzel" + :help.shortcuts/shortcut-column "Tastaturkürzel" + :help.shortcuts/title "Tastaturbefehl" + :help.shortcuts/triggers "Auslöser" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Icons ({1})" + :icon/matched-count "Treffer ({1})" + :icon/search-all "Alles durchsuchen" + :icon/search-emojis "Emojis suchen" + :icon/search-icons "Icons suchen" + :icon/tab-all "Alle" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Icons" + + :import/all-tags "Alle Tags importieren" + :import/asset-too-large-warning "Das Kopieren des Assets {1} wurde übersprungen, weil es das Limit von 100 MB überschreitet." + :import/assets-import-partial "{1}/{2} Assets importiert. Details in der Konsole." + :import/assets-imported "{1} Assets importiert." + :import/assets-skipped "{1} Assets übersprungen. Details in der Konsole." + :import/block-icons-cannot-be-imported "Block-Symbole können nicht importiert werden. Bitte manuell bei Block {1} importieren." + :import/cannot-import-block-into-non-block-entity "Block kann nicht in eine Nicht-Block-Entität importiert werden. Bitte an anderer Stelle importieren." + :import/db-edn-desc "EDN-Export eines DB-Graphen in einen neuen DB-Graphen importieren" + :import/db-edn-title "EDN zu DB-Graph" + :import/debug-transit-desc "Debug-Transit-Datei in einen neuen DB-Graphen importieren" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Standardverhalten für Datenbank-Graphen" + :import/empty-graph-name "Graphname darf nicht leer sein." + :import/extract-inline-code-snippets "Inline-Code-Snippets als Unterblöcke extrahieren" + :import/file-finished "Import abgeschlossen!" + :import/file-to-db-desc "Einen dateibasierten Logseq-Graphordner in einen neuen DB-Graphen importieren" + :import/file-to-db-title "Datei zu DB-Graph" + :import/graph-name-conflict "Ein Graph mit diesem Namen existiert bereits. Bitte wählen Sie einen anderen Namen!" + :import/graph-name-placeholder "Graphname" + :import/ignored-assets "{1} Assets beim Import übersprungen. Details in der JavaScript-Konsole." + :import/ignored-files "{1} Dateien beim Import übersprungen. Details in der JavaScript-Konsole." + :import/ignored-properties "{1} Eigenschaften beim Import übersprungen" + :import/ignored-properties-fix "Um den Eigenschaftstyp zu korrigieren, ändern Sie den Eigenschaftswert in den richtigen Typ und importieren Sie den Graphen erneut" + :import/invalid-blocks-detected "{1} ungültige Blöcke beim Import erkannt. Die Interaktion könnte fehlschlagen. Details in der JavaScript-Konsole." + :import/invalid-edn-file "Die bereitgestellte EDN-Datei ist ungültig. Bitte korrigieren und erneut versuchen." + :import/loading "Importiere" + :import/logseq-config-missing "Import fehlgeschlagen: Logseq-Graph hat keine 'logseq/config.edn' Datei." + :import/new-graph-name "Neuer Graphname" + :import/notes "Vorhandene Notizen importieren" + :import/org-files-imported "{1} Org-Dateien als Markdown importiert. Org-Datei-Unterstützung wird später hinzugefügt." + :import/page-icons-cannot-be-imported "Seiten-Symbole können nicht importiert werden. Bitte manuell bei Seite {1} importieren." + :import/properties-case-insensitive-commas "Eigenschaftsnamen (Groß-/Kleinschreibung egal, durch Komma getrennt)" + :import/property-classes-placeholder "z.B. type" + :import/property-import-manually "Diese Eigenschaft muss manuell importiert werden" + :import/property-parent-classes-placeholder "z.B. parent" + :import/property-type-mismatch "Eigenschaftswert hat den Typ {1}, nicht {2}" + :import/property-value-tag-parents "Tag-Eltern aus Eigenschaftswerten importieren" + :import/property-value-tags "Zusätzliche Tags aus Eigenschaftswerten importieren" + :import/remove-inline-tags "Inline-Tags entfernen" + :import/select-edn-or-json "EDN- oder JSON-Datei auswählen." + :import/specific-tags "Bestimmte Tags importieren" + :import/sqlite-and-assets-desc "Eine ZIP-Datei mit db.sqlite und einem Assets-Ordner importieren" + :import/sqlite-and-assets-title "SQLite + Assets (.zip)" + :import/submitted-edn-invalid "Übermittelte EDN-Daten sind ungültig! Bitte korrigieren und erneut versuchen." + :import/successful "Import erfolgreich!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tags (Groß-/Kleinschreibung egal)" + :import/title "Importieren" + :import/unexpected-error "Unerwarteter Fehler: {1}" + :import/zip-import-error "Zip-Import fehlgeschlagen: {1}" + :import/zip-missing-db-sqlite "ZIP enthält keine db.sqlite" + + :journal/add-blocks-to-today-success "Heute hinzugefügte Blöcke" + :journal/page-cant-convert-warning "Diese Seite ist keine Journalseite." + :journal/parse-date-to-name-error "Parsen des Journalnamens fehlgeschlagen" + + :journal.default-query/doing "IN ARBEIT" + :journal.default-query/todo "ZU ERLEDIGEN" :keymap/all "Alle" + :keymap/already-bound "Tastenkombination wird bereits verwendet" + :keymap/also-used-for-action "Auch verwendet für {1}" + :keymap/also-used-for-action-in-context "Auch verwendet für {1} Im Kontext {2}" + :keymap/clear "Löschen" + :keymap/clear-keystroke-filter "Tastenfilter löschen" + :keymap/clear-search "Suche löschen" :keymap/custom "Benutzerdefiniert" + :keymap/deactivates-chord "Deaktiviert Tastenkombination" + :keymap/deactivates-chords "Deaktiviert {1} Shortcut-Kombinationen" :keymap/disabled "Deaktiviert" - :keymap/keystroke-filter "Tastenkombination-Filter" + :keymap/esc-is-reserved "Esc ist reserviert" + :keymap/hint-cancel "Abbrechen" + :keymap/hint-close "Schließen" + :keymap/hint-reassign "Neu zuweisen" + :keymap/hint-remove "Entfernen" + :keymap/keystroke-filter "Tastendruck-Filter" + :keymap/no-matching-shortcuts "Keine passenden Tastenkombinationen" + :keymap/press-a-shortcut "Drücken Sie eine Tastenkombination" + :keymap/press-keys-to-filter "Tasten drücken zum Filtern" + :keymap/reassign "Neu zuweisen" + :keymap/reassign-tooltip "Tastenkombination dieser Aktion neu zuweisen" + :keymap/reassigned-from "Zugewiesen von {1}" + :keymap/refresh-all "Alle aktualisieren" + :keymap/remove-binding "Belegung entfernen" + :keymap/remove-filter "Filter entfernen" + :keymap/reset "Zurücksetzen" + :keymap/reset-to-default "Auf Standard zurücksetzen" + :keymap/search-by-keys "Nach Tasten suchen" + :keymap/search-placeholder "Tastenkombinationen suchen…" + :keymap/shortcut-added "Tastenkombination hinzugefügt" + :keymap/shortcut-removed "Tastenkombination entfernt" + :keymap/toggle-categories-pane "Kategorienbereich umschalten" + :keymap/undo "Rückgängig" :keymap/unset "Nicht gesetzt" + :keymap/used-by-action "Verwendet von {1}" - :left-side-bar/assets "Anlagen" - :left-side-bar/journals "Journale" - :left-side-bar/nav-favorites "Favoriten" - :left-side-bar/nav-recent-pages "Neuste" - :left-side-bar/switch "Wechseln zu:" - :left-side-bar/tasks "Aufgaben" + :library/add-existing-pages "Vorhandene Seiten zur Bibliothek hinzufügen" + :library/add-pages "Seiten hinzufügen" + :library/title "Bibliothek" - :linked-references/filter-directions "Klicken um einzuschließen, Umschalt+Klicken um auszuschließen. Erneut klicken zum Entfernen." - :linked-references/filter-excludes "Ausgeschlossen: " - :linked-references/filter-includes "Eingeschlossen: " - :linked-references/filter-search "Suche in verknüpften Seiten" + :mobile/camera-access-denied "Kamerazugriff ist verweigert. Aktivieren Sie ihn in Einstellungen > Logseq." + :mobile/microphone-access-denied "Mikrophonzugriff ist verweigert. Aktivieren Sie ihn in Einstellungen > Logseq." + + :mobile.header/actions "Aktionen" + :mobile.header/create-graph "Graph erstellen" + :mobile.header/delete-block-confirm-desc "Möchten Sie diesen Block wirklich löschen?" + :mobile.header/delete-page-confirm-desc "Möchten Sie diese Seite wirklich löschen?" + + :mobile.intent/file-options "Dateioptionen" + :mobile.intent/open-with-app "Datei mit Ihrer bevorzugten App öffnen" + :mobile.intent/select-option-prompt "Wählen Sie eine auszuführende Option" + :mobile.intent/share "Teilen" + + :mobile.log/all "Alle" + :mobile.log/errors-only "Nur Fehler" + :mobile.log/full "Vollständig" + :mobile.log/new-first "Neueste zuerst" + :mobile.log/old-first "Älteste zuerst" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Konto" + :mobile.settings/check-log "Protokoll prüfen" + :mobile.settings/discord-community "Discord-Community" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Fehler melden" + :mobile.settings/revision "Revision" + :mobile.settings/theme "Design" + :mobile.settings/version "Version" + + :mobile.share/file-import-error "Import der geteilten Datei fehlgeschlagen" + :mobile.share/media-import-error "Import des geteilten Mediums fehlgeschlagen" + :mobile.share/unsupported-content-warning "Das Parsen des aktuell geteilten Inhalts wird nicht unterstützt. Bitte melden Sie die folgenden Codes auf {1}. Wir kümmern uns bald darum." + :mobile.share/unsupported-import-type "Der Import von {1}-Dateien wird nicht unterstützt. Sie können dies auf {2} melden. Wir kümmern uns bald darum." + + :mobile.tab/capture "Erfassen" + :mobile.tab/go-to "Gehe zu" + :mobile.tab/graphs "Graphen" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Referenz kopieren" + :mobile.toolbar/copy-url "URL kopieren" + :mobile.toolbar/hide "Ausblenden" + :mobile.toolbar/indent "Einrücken" + :mobile.toolbar/outdent "Ausrücken" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Wiederholen" + :mobile.toolbar/reference "Referenz" + :mobile.toolbar/slash "Schrägstrich" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Rückgängig" + :mobile.toolbar/unselect "Auswahl aufheben" + + :nav/all-files "Alle Dateien" + :nav/all-journals "Alle Journale" + :nav/appearance "Erscheinungsbild" + :nav/assets "Anlagen" + :nav/cannot-go-to-internal-page "Kann nicht zu interner Seite navigieren" + :nav/flashcards "Karteikarten" + :nav/graph "Graph" + :nav/graph-view "Graph-Ansicht" + :nav/help "Hilfe" + :nav/home "Startseite" + :nav/invalid-jump-error "Ungültiger Sprung" + :nav/journals "Journale" + :nav/plugins "Plugins" + :nav/search "Suchen" + :nav/settings "Einstellungen" + :nav/skip-to-main-content "Zum Hauptinhalt springen" + :nav/tasks "Aufgaben" + :nav/themes "Designs" + + :nav.all-pages/label "Seiten" + :nav.all-pages/title "Alle Seiten" + + :node/built-in-cant-delete-error "Eingebaute Elemente können nicht gelöscht werden." + :node/new "Neuer Knoten" :notification/clear-all "Alles löschen" + :notification/copied "Kopiert" - :on-boarding/importing-desc "Logseq importiert EDN und Markdown." - :on-boarding/importing-main-desc "Sie können dies auch später in der App tun." - :on-boarding/importing-main-title "Vorhandene Notizen importieren" - :on-boarding/importing-sqlite-desc "SQLite-DB-Export deines Logseq-Graphs in einen neuen DB-Graph importieren" - :on-boarding/importing-title "Möchten Sie bestehende Notizen importieren?" + :onboarding.import/desc "Logseq importiert EDN und Markdown." + :onboarding.import/sqlite-desc "Aus SQLite-Datenbank importieren" + :onboarding.import/title "Möchten Sie bestehende Notizen importieren?" + + :onboarding.import-option/desc "Sie können dies auch später in der App tun." + :onboarding.import-option/title "Vorhandene Notizen importieren" + + :onboarding.setup/desc "Wählen Sie ein Verzeichnis, wo Logseq Ihre Gedanken, Ideen und Notizen aufbewahren kann." + :onboarding.setup/title (fn [] ["Willkommen bei " [:strong "Logseq!"]]) - :on-boarding/main-desc "Wählen Sie ein Verzeichnis, wo Logseq Ihre Gedanken, Ideen und Notizen aufbewahren kann." - :on-boarding/main-title (fn [] ["Willkommen bei " [:strong "Logseq!"]]) :page/add-to-favorites "Zu Favoriten hinzufügen" - :page/copy-page-url "Seiten-URL kopieren" - :page/convert-tag-to-page "Tag zu Seite konvertieren" - :page/convert-to-tag "Zu Tag konvertieren" + :page/added-tag-to-node "Tag „{1}“ zu „{2}“ hinzugefügt" + :page/backlinks "Rückverweise" + :page/clear "Löschen" + :page/clear-local-storage-desc "Dadurch werden kleinere Einstellungen wie die Hell-/Dunkel-Modus-Präferenz gelöscht." + :page/cleared "Gelöscht" + :page/contents "Inhalt" + :page/convert-to-tag "In Tag umwandeln" + :page/copy-url "Seiten-URL kopieren" + :page/create "Neue Seite erstellen" :page/created-at "Erstellt am" - :page/db-delete-confirmation "Diese Seite wirklich entfernen?" + :page/current-graph-as-sqlite-db "Aktueller Graph als SQLite-Datenbank" + :page/default-query-error "Standardabfrage fehlgeschlagen:" :page/delete "Seite löschen" + :page/go-back-home "Zurück zur Startseite" + :page/hide-properties "Eigenschaften ausblenden" + :page/local-storage "Lokaler Speicher" :page/logseq-is-having-a-problem "Logseq hat ein Problem festgestellt. Versuche zurückzukehren ..." :page/make-private "Privat machen" :page/make-public "Beim Export in HTML veröffentlichen" + :page/moved-to-recycle "Knoten wurde in den Papierkorb verschoben" + :page/name "Seitenname" + :page/no-page-found-to-copy "Keine Seite zum Kopieren gefunden" + :page/not-found "Seite nicht gefunden" + :page/not-found-desc "Hoppla! Die gesuchte Seite existiert nicht." + :page/not-found-title "Seite nicht gefunden" + :page/not-found-warning "Keine Seite gefunden" + :page/open-all-graphs-desc "Sie können auch zu {{All graphs}} gehen, um zu einem anderen Graphen zu wechseln." + :page/open-issue-desc "Falls diese Fehlerbehebungsschritte Ihr Problem nicht gelöst haben, {{open an issue}}." + :page/open-properties "Eigenschaften öffnen" + :page/rebuild "Neu aufbauen" + :page/relaunch "Neu starten" + :page/relaunch-desc "App beenden und neu öffnen." + :page/scheduled-and-deadline "Geplant und Frist" + :page/search-index "Suchindex" + :page/send-db-for-debugging "Sie können die Datei zur Fehlerbehebung an help@logseq.com senden." :page/something-went-wrong "Es ist etwas schief gelaufen." :page/step "Schritt {1}" + :page/the-app "die App" :page/try "Versuch" :page/unfavorite "Seite aus Favoriten entfernen" + :page/unknown "Unbekannte Seite" :page/updated-at "Aktualisiert am" + + :page.convert/block-parent-not-page "Block kann nicht konvertiert werden. Elternelement ist keine Seite." + :page.convert/cant-be-block "Seite „{1}“ kann nicht in einen Block umgewandelt werden." + :page.convert/cant-be-block-has-children "Seite „{1}“ kann nicht in einen Block konvertiert werden, da sie untergeordnete Seiten hat." + :page.convert/cant-be-block-move-first "Seite „{1}“ kann nicht in einen Block umgewandelt werden, bitte verschieben Sie sie zuerst auf eine andere Seite." + :page.convert/page-to-tag-action "\"{1}\" in Tag umwandeln" + :page.convert/page-to-tag-built-in "Eingebaute Seiten können nicht als Tags verwendet werden" + :page.convert/page-to-tag-duplicate "Ein Tag mit dem Namen „{1}“ existiert bereits." + :page.convert/page-to-tag-namespaced "Namespace-Seiten können nicht als Tags verwendet werden" + :page.convert/property-value-to-page "Eigenschaftswert kann nicht in Seite konvertiert werden." + :page.convert/tag-to-page-action "Tag in Seite umwandeln" + :page.convert/tag-to-page-built-in "Eingebaute Tags können nicht als Seiten verwendet werden" + :page.convert/tag-to-page-confirm-desc "Wenn ein Tag in eine Seite umgewandelt wird, werden auch seine Tag-Eigenschaften und der Tag von allen Knoten entfernt, die damit getaggt sind. Ist das in Ordnung?" + :page.convert/tag-to-page-duplicate "Eine Seite mit dem Namen „{1}“ existiert bereits." + :page.convert/tag-to-page-has-children "Tag mit Unterelementen kann nicht konvertiert werden" + + :page.delete/batch-confirm-title "Diese Seiten wirklich entfernen? Eigenschaften und Tags werden dauerhaft gelöscht und Seiten werden in den Papierkorb verschoben." + :page.delete/confirm-title "Diese Seite wirklich entfernen?" + :page.delete/permanent-confirm-title "Diese Seite wirklich dauerhaft entfernen?" + :page.delete/success "Seite „{1}“ wurde erfolgreich gelöscht!" + :page.delete/total "Gesamt: {1}" + :page.delete/warning "Der Inhalt dieser Seiten wurde gelöscht, konnte aber nicht gelöscht werden: {1}. Weitere Informationen finden Sie in der Javascript-Konsole." + + :page.validation/cant-set-built-in-tags "Neue Seite kann keine integrierten Tags festlegen: {1}" + :page.validation/duplicate "Eine andere Seite mit dem Namen „{1}“ existiert bereits für die Tags: {2}." + :page.validation/name-blank "Seitenname darf nicht leer sein." + :page.validation/name-no-hash "Seitenname darf kein # enthalten" + :page.validation/name-no-slash "Seitenname darf kein / enthalten." + :page.validation/parents-must-be-pages "Eltern von Seiten müssen Seiten sein." + + :pdf/annotations-page "Anmerkungsseite" + :pdf/area-highlight-shortcut "Bereichshervorhebung ({1})" + :pdf/auto-fit "Automatisch anpassen" :pdf/auto-open-context-menu "Kontextmenü automatisch bei Auswahl öffnen" :pdf/copy-ref "Referenz kopieren" :pdf/copy-text "Text kopieren" + :pdf/corrupted-file-error "Fehler: {1}\nIst diese .pdf-Datei beschädigt?\nBitte prüfen Sie mit einem externen PDF-Viewer." :pdf/doc-metadata "Metadaten des Dokuments" + :pdf/enter-to-search "Eingabetaste zum Suchen" + :pdf/find-results "{1} von {2} Treffern (\"{3}\")" + :pdf/generic-error "Fehler: {1}\n{2}\nBitte prüfen Sie die PDF-Dateiressource." + :pdf/highlight-mode "Hervorhebungsmodus" + :pdf/highlights "Hervorhebungen" :pdf/hl-block-colored "Farbige Beschriftung für Highlight-Block" :pdf/linked-ref "Verlinkte Referenzen" + :pdf/load-highlights-file-error "Fehler: Die Markierungsdatei konnte nicht geladen werden: \"{1}\". \n{2}" + :pdf/missing-file-error "Fehler: {1}\n Ist dies der richtige Pfad?" + :pdf/more-settings "Weitere Einstellungen" + :pdf/no-outlines "Keine Gliederung" + :pdf/not-found "Nicht gefunden." + :pdf/open-in-app-window "Im App-Fenster öffnen" + :pdf/open-in-external-window "Im externen Fenster öffnen" + :pdf/outline "Gliederung" + :pdf/page-label "Seite {1}" + :pdf/password-protected-desc "Dieses Dokument ist passwortgeschützt. Bitte geben Sie ein Passwort ein:" + :pdf/password-required "Passwort erforderlich" + :pdf/search "Suche" + :pdf/search-placeholder "Suchen" :pdf/toggle-dashed "Gestrichelter Stil für die Hervorhebung von Bereichen" + :pdf/viewer "PDF-Viewer" + :pdf/zoom-in "Vergrößern" + :pdf/zoom-out "Verkleinern" :plugin/all "Alle" - :plugin/all-updated "Alle aktualisiert!" - :plugin/auto-check-for-updates "Automatisch Updates suchen" + :plugin/auto-update-check "Automatisch Updates suchen" + :plugin/auto-update-check-feedback "Automatische Update-Prüfung: {1}!" :plugin/check-all-updates "Alle Updates überprüfen" :plugin/check-update "Update überprüfen" + :plugin/checked "Geprüft" :plugin/checking-for-updates "Suche nach Aktualisierungen für Plugins ..." :plugin/contribute "✨ Schreiben und veröffentlichen Sie ein neues Plugin" :plugin/custom-js-alert "Datei custom.js gefunden. Darf sie ausgeführt werden? (Wenn Sie den Inhalt dieser Datei nicht verstehen, wird empfohlen, die Ausführung nicht zuzulassen, da dies gewisse Sicherheitsrisiken birgt)." + :plugin/date-added "Hinzugefügt am" :plugin/delete-alert "Wollen Sie wirklich das Plugin [{1}] deinstallieren?" + :plugin/disable-for-performance-feedback "Das Plugin {1} ist deaktiviert." + :plugin/disable-now "Jetzt deaktivieren" :plugin/disabled "Deaktiviert" + :plugin/does-not-support-db "Unterstützt keine DB-Graphen" + :plugin/downloads "Downloads" + :plugin/empty "Nichts gefunden." :plugin/enabled "Aktiviert" + :plugin/existed-package "Vorhandenes Plugin-Paket ({1})." + :plugin/fatal-error "Fatal: {1}" :plugin/found-n-updates "{1} Aktualisierungen gefunden" :plugin/found-updates "Aktualisierungen gefunden" :plugin/install "Installieren" + :plugin/install-error "Installation fehlgeschlagen: {1}\n{2}" :plugin/installed "Installiert" :plugin/installed-plugin "Plugin installiert: {1}" :plugin/installing "Installiere" + :plugin/invalid-github-repo-url "Ungültige GitHub-Repository-URL" + :plugin/invalid-package "Ungültiges Paket" + :plugin/invalid-plugins-edn "Ungültige plugins.edn" :plugin/list-of-updates "Aktualisierungen für Plugins: " :plugin/load-from-web-url "Plugin per URL laden" + :plugin/load-plugin-indicator "Plugin laden: {1}..." :plugin/load-unpacked "Entpacktes Plugin laden" + :plugin/loading-indicator "LÄDT" + :plugin/malformed-plugins-edn "Fehlerhafte plugins.edn" :plugin/marketplace "Marktplatz" + :plugin/new-registered "Neues Plugin registriert" + :plugin/no-settings-schema "Kein Einstellungsschema!" :plugin/not-installed "Nicht installiert" :plugin/open-logseq-dir "Öffnen" :plugin/open-package "Paket öffnen" :plugin/open-preferences "Einstellungen öffnen" :plugin/open-settings "Einstellungen öffnen" + :plugin/perf-tip "Dieses Plugin {1} braucht zu lange zum Laden, was die Startzeit der Anwendung beeinträchtigt und möglicherweise das Laden anderer Plugins verhindert." :plugin/popular "Beliebt" + :plugin/proxy-check-success "Erfolg! Status {1} in {2}ms." + :plugin/readme-empty-warning "Kein README-Inhalt" :plugin/refresh-lists "Liste aktualisieren" :plugin/reload "Neu laden" - :plugin/remote-error "Serverfehler: " - :plugin/report-security "Plugin melden" + :plugin/remote-error "Serverfehler: {1}" + :plugin/report-modal-desc "Wenn ein Plugin nicht verfügbar ist oder Sie der Meinung sind, dass es bösartigen Code enthält, mailen Sie bitte an {1}. Nennen Sie den Namen des Plugins und die URL seines GitHub-Repositorys. Das Logseq-Team antwortet normalerweise innerhalb eines Geschäftstages." + :plugin/report-security "Sicherheitsproblem melden" :plugin/restart "App neu starten" :plugin/search-plugin "Plugins suchen" :plugin/security-warning "Plugins haben Zugriff auf Ihre Graphen und die Dateien auf Ihrem Computer und können über Netzwerke kommunizieren." + :plugin/setting-not-handled "#Nicht behandelt# {1}" + :plugin/settings-schema-error "Fehler im Einstellungsschema!" :plugin/stars "Sterne" + :plugin/supports-db "DB-Unterstützung" :plugin/title "Titel ({1})" :plugin/uninstall "Deinstallieren" :plugin/unpacked "Entpackt" @@ -254,285 +1200,662 @@ :plugin/up-to-date "Ist aktualisert: {1}" :plugin/update "Aktualisierung" :plugin/update-all-selected "Alle ausgewählten aktualisieren" + :plugin/update-all-success "Alle aktualisiert!" :plugin/update-available "Aktualisierung verfügbar" :plugin/update-plugin "Aktualisiere plugin: {1} - {2}" :plugin/updates-downloading "Aktualisierungen werden heruntergeladen" :plugin/updating "Aktualisiere" :plugin.install-from-file/menu-title "Aus plugins.edn installieren" - :plugin.install-from-file/title "Plugins aus plugins.edn installieren" :plugin.install-from-file/notice "Die folgenden Plugins werden Ihre Plugins ersetzen:" :plugin.install-from-file/success "Alle Plugins installiert!" + :plugin.install-from-file/title "Plugins aus plugins.edn installieren" - :right-side-bar/all-pages "Seiten" - :right-side-bar/block-ref "Blockreferenz" - :right-side-bar/contents "Inhalt" - :right-side-bar/flashcards "Karteikarten" - :right-side-bar/graph-view "Graph-Ansicht" - :right-side-bar/help "Hilfe" - :right-side-bar/page-graph "Seiten-Graph" - :right-side-bar/pane-close "Schließen" - :right-side-bar/pane-close-all "Alle schließen" - :right-side-bar/pane-close-others "Andere schließen" - :right-side-bar/pane-collapse "Ausklappen" - :right-side-bar/pane-collapse-all "Alle ausklappen" - :right-side-bar/pane-collapse-others "Andere ausklappen" - :right-side-bar/pane-expand "Einklappen" - :right-side-bar/pane-expand-all "Alle einklappen" - :right-side-bar/pane-more "Mehr" - :right-side-bar/pane-open-as-page "Als Seite öffnen" - :right-side-bar/separator "Griff zur Größenänderung der rechten Seitenleiste" - :right-side-bar/show-journals "Zeige Journale" - :right-side-bar/switch-theme "Zu {1} Thema wechseln" - :right-side-bar/toggle-right-sidebar "Rechte Seitenleiste umschalten" + :plugin.install-from-web-url/effect-label "Effekt" + :plugin.install-from-web-url/repo-url-placeholder "GitHub-Repository-URL" + :plugin.install-from-web-url/supports-note "URLs unterstützen sowohl GitHub-Repositorys als auch lokale Entwicklungsserver. (Für Beispiele: {1}, {2})" + :plugin.install-from-web-url/theme-label "Theme" + + :plugin.package-config/detach-desc "Durch das Entfernen wird das Plugin nur von Logseq getrennt, der Quellordner bleibt unberührt." + :plugin.package-config/parse-error "Die Paketkonfiguration des Plugins konnte nicht geparst werden." + :plugin.package-config/remove-error "Das defekte Plugin konnte nicht entfernt werden." + :plugin.package-config/remove-external-success "Das defekte Plugin wurde aus der Plugin-Liste entfernt." + :plugin.package-config/remove-installed-success "Defektes Plugin „{1}“ entfernt." + + :plugin.proxy/direct "Direkt" + :plugin.proxy/system "System" + :plugin.proxy/test-url "Test-URL" + :plugin.proxy/testing "Wird getestet" + + :plugin.settings/edit-settings-json "settings.json bearbeiten" + :plugin.settings/exit-code-mode "Code-Modus beenden" + :plugin.settings/title "Plugin-Einstellungen" + + :plugin.themes/default-desc "Logseq-Standardtheme ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Themes ({1})" + :plugin.themes/light-and-dark "helle & dunkle Themes" + + :profiler/input-fn-placeholder "Funktionsnamen hier eingeben" + :profiler/unregister "Abmelden" + + :property/add-choice "Auswahl hinzufügen" + :property/add-choices "Auswahlen hinzufügen" + :property/add-description "Beschreibung hinzufügen" + :property/add-new "Eigenschaft hinzufügen" + :property/add-or-change "Eigenschaft hinzufügen oder ändern" + :property/available-choices "Verfügbare Auswahlen" + :property/change-tooltip "{1} ändern" + :property/checkbox-state-mapping "Checkbox-Status-Zuordnung" + :property/children-count "Kinder ({1})" + :property/choices-count "{1} Auswahlmöglichkeiten" + :property/choose-tag "Tag auswählen" + :property/choose-tags "Tags auswählen" + :property/clear-value "Leeren" + :property/configure "Konfigurieren" + :property/convert-page-to-property "\"{1}\" in Eigenschaft umwandeln" + :property/create-error "Eigenschaftserstellung fehlgeschlagen." + :property/default-value "Standardwert" + :property/delete-from-node "Vom Knoten entfernen" + :property/delete-from-node-confirm "Möchten Sie diese Eigenschaft vom Knoten entfernen?" + :property/delete-from-tag "Vom Tag entfernen" + :property/delete-from-tag-confirm "Möchten Sie diese Eigenschaft vom Tag entfernen?" + :property/description-placeholder "Beschreibung eingeben" + :property/drag-to-reorder "Ziehen zum Umordnen" + :property/existing-values "Vorhandene Werte" + :property/go-to-this-property "Zur Eigenschaftsseite" + :property/hidden-properties "Versteckte Eigenschaften" + :property/hide-by-default "Standardmäßig ausblenden" + :property/hide-choice-for-tag "Auswahl für Tag ausblenden" + :property/hide-empty-value "Leere Werte ausblenden" + :property/hide-for-tag "Ausblenden für #{1}" + :property/hide-hidden-choices "Versteckte Auswahlen ausblenden" + :property/map-checked-to "Angehakt zuordnen zu" + :property/map-unchecked-to "Nicht angehakt zuordnen zu" + :property/more-settings "Weitere Einstellungen" + :property/multiple-values "Mehrfachwerte" + :property/multiple-values-confirm "Mehrfachwerte aktivieren?" + :property/name "Name" + :property/name-placeholder "Eigenschaftsname" + :property/nodes-with-property "Knoten mit Eigenschaft" + :property/overdue "Überfällig" + :property/private-built-in-not-usable "Private eingebaute Eigenschaft ist nicht verwendbar" + :property/select-choice "Auswahl treffen" + :property/select-property-placeholder "Eine Eigenschaft auswählen" + :property/select-type-placeholder "Einen Eigenschaftstyp auswählen" + :property/self-reference "Selbstreferenz" + :property/set-default-choice "Standardauswahl festlegen" + :property/set-default-value "Standardwert festlegen" + :property/set-icon "Symbol setzen" + :property/set-placeholder "{1} festlegen" + :property/set-property "Eigenschaft setzen" + :property/set-tags "Tags setzen" + :property/set-value "Wert setzen" + :property/show-as-checkbox-on-node "Als Checkbox auf Knoten anzeigen" + :property/show-as-checkbox-on-tagged-nodes "Als Checkbox auf getaggten Knoten anzeigen" + :property/show-hidden-choices "Versteckte Auswahlen anzeigen" + :property/skip-choosing-tag "Tag-Auswahl überspringen" + :property/specify-node-tags "Knoten-Tags angeben" + :property/title-placeholder "Titel" + :property/type "Typ" + :property/type-change-warning "Das Ändern des Eigenschaftstyps löscht einige Eigenschaftskonfigurationen." + :property/type-checkbox "Checkbox" + :property/type-date "Datum" + :property/type-datetime "Datum/Zeit" + :property/type-locked-help "Typ ist gesperrt" + :property/type-node "Knoten" + :property/type-number "Zahl" + :property/type-text "Text" + :property/type-url "URL" + :property/ui-position "UI-Position" + :property/ui-position-block-below "Unter Block" + :property/ui-position-block-left "Links vom Block" + :property/ui-position-block-right "Rechts vom Block" + :property/ui-position-properties "Eigenschaften" + :property/unset-property "Eigenschaft entfernen" + :property/update-success "Aktualisiert" + + :property.built-in/alias "Alias" + :property.built-in/asset "Asset" + :property.built-in/asset-align "Asset-Ausrichtung" + :property.built-in/asset-checksum "Dateiprüfsumme" + :property.built-in/asset-external-file-name "Externer Dateiname" + :property.built-in/asset-external-url "Externe URL" + :property.built-in/asset-height "Bildhöhe" + :property.built-in/asset-last-visit-page "Zuletzt besuchte Seite" + :property.built-in/asset-remote-metadata "Entfernte Dateimetadaten" + :property.built-in/asset-resize-metadata "Asset-Größenänderungs-Metadaten" + :property.built-in/asset-size "Dateigröße" + :property.built-in/asset-type "Dateityp" + :property.built-in/asset-width "Bildbreite" + :property.built-in/background-color "Hintergrundfarbe" + :property.built-in/built-in "Integriert?" + :property.built-in/checkbox-display-properties "Als Checkbox angezeigte Eigenschaften" + :property.built-in/choice-checkbox-state "Auswahl-Checkbox-Status" + :property.built-in/choice-classes "Auswahlklassen" + :property.built-in/choice-exclusions "Auswahlausschlüsse" + :property.built-in/class-bidirectional-property-title "Bidirektionaler Eigenschaftstitel" + :property.built-in/class-enable-bidirectional "Bidirektionale Eigenschaften aktivieren" + :property.built-in/class-extends "Erweitert" + :property.built-in/class-hide-from-node "Vom Knoten ausblenden" + :property.built-in/class-properties "Tag-Eigenschaften" + :property.built-in/classes "Eigenschaftsklassen" + :property.built-in/closed-value-property "Geschlossene Werteigenschaft" + :property.built-in/code-lang "Code-Modus" + :property.built-in/collapsed "Knoten eingeklappt?" + :property.built-in/created-at "Knoten erstellt am" + :property.built-in/created-by-ref "Knoten erstellt von" + :property.built-in/created-from-property "Erstellt aus Eigenschaft" + :property.built-in/deadline "Frist" + :property.built-in/default-value "Standardwert" + :property.built-in/deleted-at "Gelöscht am" + :property.built-in/deleted-by-ref "Gelöscht von" + :property.built-in/description "Beschreibung" + :property.built-in/enable-history "Eigenschaftsverlauf aktivieren" + :property.built-in/exclude-from-graph-view "Von Graphansicht ausgeschlossen?" + :property.built-in/fsrs-due "Fällig" + :property.built-in/fsrs-state "Status" + :property.built-in/heading "Überschrift" + :property.built-in/hide "Diese Eigenschaft oder Seite ausblenden" + :property.built-in/hide-empty-value "Leeren Wert ausblenden" + :property.built-in/history-block "Verlaufsblock" + :property.built-in/history-property "Verlaufseigenschaft" + :property.built-in/history-ref-value "Verlaufswert" + :property.built-in/history-scalar-value "Skalarer Verlaufswert" + :property.built-in/icon "Symbol" + :property.built-in/journal-day "Journaldatum" + :property.built-in/journal-title-format "Titelformat" + :property.built-in/link "Knoten verlinkt zu" + :property.built-in/linked-references-excludes "Ausgeschlossene Referenzen" + :property.built-in/linked-references-includes "Eingeschlossene Referenzen" + :property.built-in/ls-type "LS-Typ" + :property.built-in/node-display-type "Knoten-Anzeigetyp" + :property.built-in/order "Knotenreihenfolge" + :property.built-in/order-list-type "Listentyp" + :property.built-in/page "Knotenseite" + :property.built-in/page-tags "Seiten-Tags" + :property.built-in/parent "Elternknoten" + :property.built-in/priority "Priorität" + :property.built-in/public "Eigenschaft öffentlich?" + :property.built-in/publish-published-url "Veröffentlichte URL" + :property.built-in/publishing-public "Veröffentlichung öffentlich?" + :property.built-in/query "Abfrage" + :property.built-in/reaction-emoji-id "Reaktions-Emoji" + :property.built-in/reaction-target "Reaktionsziel" + :property.built-in/recycle-original-order "Papierkorb-Originalreihenfolge" + :property.built-in/recycle-original-page "Papierkorb-Originalseite" + :property.built-in/recycle-original-parent "Papierkorb-Originaleltern" + :property.built-in/refs "Knotenreferenzen" + :property.built-in/repeat-checked-property "Wiederholende geprüfte Eigenschaft" + :property.built-in/repeat-recur-frequency "Wiederholungshäufigkeit" + :property.built-in/repeat-recur-unit "Wiederholungseinheit" + :property.built-in/repeat-repeated "Knoten wiederholt?" + :property.built-in/repeat-temporal-property "Wiederholende zeitliche Eigenschaft" + :property.built-in/scalar-default-value "Standardwert für Nicht-Referenztyp" + :property.built-in/scheduled "Geplant" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Referenz auf großen Block-Titel im Remote-Objektspeicher" + :property.built-in/table-filters "Ansichtsfilter" + :property.built-in/table-hidden-columns "Ausgeblendete Ansichtsspalten" + :property.built-in/table-ordered-columns "Sortierte Ansichtsspalten" + :property.built-in/table-pinned-columns "Angeheftete Tabellenspalten" + :property.built-in/table-sized-columns "Ansichtsspalten-Einstellungen" + :property.built-in/table-sorting "Ansichtssortierung" + :property.built-in/tags "Tags" + :property.built-in/template-applied-to "Vorlage auf Tags anwenden" + :property.built-in/title "Knotentitel" + :property.built-in/type "Eigenschaftstyp" + :property.built-in/ui-position "Eigenschaftsposition" + :property.built-in/updated-at "Knoten aktualisiert am" + :property.built-in/used-template "Verwendete Vorlage" + :property.built-in/user-avatar "Benutzer-Avatar" + :property.built-in/user-email "Benutzer-E-Mail" + :property.built-in/user-name "Benutzername" + :property.built-in/value "Eigenschaftswert" + :property.built-in/view-context "Eigenschafts-Ansichtskontext" + :property.built-in/view-feature-type "Ansichtsfunktionstyp" + :property.built-in/view-for "Diese Ansicht gehört zu" + :property.built-in/view-group-by-property "Ansicht gruppieren nach Eigenschaft" + :property.built-in/view-sort-groups-by-property "Ansichtsgruppen sortieren nach" + :property.built-in/view-sort-groups-desc "Ansichtsgruppen absteigend sortieren" + :property.built-in/view-type "Ansichtstyp" + + :property.choice/already-exists "Auswahl existiert bereits." + :property.choice/cant-delete-built-in "Eingebaute Auswahl kann nicht gelöscht werden." + :property.choice/invalid "Ungültige Auswahl „{1}“ für diese Eigenschaft: {2}" + + :property.color/blue "Blau" + :property.color/green "Grün" + :property.color/purple "Lila" + :property.color/red "Rot" + :property.color/yellow "Gelb" + + :property.priority/high "Hoch" + :property.priority/low "Niedrig" + :property.priority/medium "Mittel" + :property.priority/urgent "Dringend" + + :property.repeat/date "Wiederholungsdatum" + :property.repeat/datetime "Wiederholungsdatum/-zeit" + :property.repeat/every "Alle" + :property.repeat/is-label "ist:" + :property.repeat/task "Aufgabe wiederholen" + :property.repeat/when "Wann" + + :property.repeat-recur-unit/day "Tag" + :property.repeat-recur-unit/hour "Stunde" + :property.repeat-recur-unit/minute "Minute" + :property.repeat-recur-unit/month "Monat" + :property.repeat-recur-unit/week "Woche" + :property.repeat-recur-unit/year "Jahr" + + :property.status/backlog "Backlog" + :property.status/canceled "Abgebrochen" + :property.status/doing "In Arbeit" + :property.status/done "Erledigt" + :property.status/in-review "In Überprüfung" + :property.status/todo "Zu erledigen" + + :property.validation/cant-convert-to-number "„{1}“ kann nicht in eine Zahl umgewandelt werden." + :property.validation/cant-remove-required "Erforderliche Eigenschaft kann nicht entfernt werden." + :property.validation/cant-set-self-value "Sich selbst als Eigenschaftswert setzen ist nicht möglich." + :property.validation/duplicate "Eigenschaft '{1}' existiert bereits." + :property.validation/invalid-name "Dies ist ein ungültiger Eigenschaftsname. Ein Eigenschaftsname darf nicht mit den Seitenverweiszeichen „#“ oder „[[“ beginnen." + :property.validation/invalid-value "Eigenschaft „{1}“ hat ungültigen Wert: {2}" + :property.validation/many-to-one "Mehrwertige Eigenschaft kann nicht in einwertige konvertiert werden." + :property.validation/protected "Diese Eigenschaft ist geschützt und kann nicht geändert werden." + + :property.view-type/gallery "Galerieansicht" + :property.view-type/list "Listenansicht" + :property.view-type/table "Tabellenansicht" + + :publish/action "Veröffentlichen" + :publish/dialog-desc "Schützen Sie diese Seite optional mit einem Passwort. Lassen Sie das Feld leer für öffentlichen Zugang." + :publish/dialog-title "Seite veröffentlichen" + :publish/invalid-page-error "Ungültige Seite" + :publish/password-optional-placeholder "Optionales Passwort" + :publish/publish-error "Veröffentlichung fehlgeschlagen" + :publish/published-to "Veröffentlicht auf {1}" + :publish/publishing "Wird veröffentlicht..." + :publish/unpublish "Veröffentlichung aufheben" + :publish/unpublish-error "Veröffentlichung zurücknehmen fehlgeschlagen" + :publish/unpublish-missing-page-id "Veröffentlichung zurücknehmen: Seiten-ID fehlt" + :publish/unpublished "Veröffentlichung zurückgenommen" + + :query/advanced-results "Ergebnisse der erweiterten Abfrage" + :query/custom-view-error "Fehler in benutzerdefinierter Ansicht: {1}" + :query/error "Abfragefehler:" + :query/examples-desc "Weitere Beispiele finden Sie unter {{Queries documentation}}." + :query/examples-title "Abfragebeispiele:" + :query/results-for "Ergebnisse für {1}" + + :query.builder/add-filter-or-operator-placeholder "Filter/Operator hinzufügen" + :query.builder/between-end-label "Enddatum" + :query.builder/between-journal-label "zwischen: {1} ~ {2}" + :query.builder/between-start-label "Startdatum" + :query.builder/created-label "Erstellt" + :query.builder/filter "Filter" + :query.builder/filter-full-text-search-label "Volltextsuche" + :query.builder/filter-page-label "Seite" + :query.builder/filter-page-reference-label "Seitenreferenz" + :query.builder/filter-sample-label "Stichprobe" + :query.builder/operator-and-label "und" + :query.builder/operator-not-label "nicht" + :query.builder/replace-with-label "Ersetzen durch:" + :query.builder/search-label "Suche: {1}" + :query.builder/show-built-in-properties "Integrierte Eigenschaften anzeigen" + :query.builder/unwrap-operator "Entpacken" + :query.builder/updated-label "Aktualisiert" + :query.builder/wrap-filter-with-label "Diesen Filter umschließen mit:" + + :reference/blocks "Blockreferenz" + :reference/copy "Diese Referenz kopieren" + :reference/delete "Diese Referenz löschen" + :reference/page-filter "Seitenfilter" + :reference/replace-with-embed "Mit Verankerung ersetzen" + :reference/replace-with-text "Mit Text ersetzen" + + :reference.filter/directions "Filterrichtungen" + :reference.filter/excludes "Ausgeschlossen: " + :reference.filter/includes "Eingeschlossen: " + :reference.filter/search-placeholder "Suche in verknüpften Seiten" + :reference.filter/title "Referenzfilter" + + :search/blank-input "Leere Eingabe" + :search/full-text-placeholder "Volltextsuche" + :search/index-progress "Indexierung {1} %" + :search/indices-rebuilt-success "Suchindizes erfolgreich neu aufgebaut!" + :search/no-result "Keine übereinstimmenden Treffer" + :search/result-count "{1} Ergebnisse" + + :search.find-in-page/input-placeholder "Auf Seite suchen" + :search.find-in-page/match-case "Groß-/Kleinschreibung beachten" + :search.find-in-page/next-result "Nächstes Ergebnis" + :search.find-in-page/previous-result "Vorheriges Ergebnis" + + :select/default-prompt "Wählen Sie einen" :select/default-select-multiple "Ein oder mehrere auswählen" + :select/new-option "+ Neue Option: {1}" - :settings-page/app-updated "Ihre Version ist aktuell 🎉" - :settings-page/auto-expand-block-refs "Automatisch beim Heranzoomen Blockreferenzen erweitern..." - :settings-page/auto-expand-block-refs-tip "Diese Option steuert, ob Blockreferenzen beim Heranzoomen automatisch ausgeklappt werden." - :settings-page/changelog "Was ist neu?" - :settings-page/check-for-updates "Nach Updates suchen" - :settings-page/checking "Überprüfe ..." - :settings-page/native-titlebar "Native Titelleiste" - :settings-page/native-titlebar-desc "Die klassische Titelleiste auf Windows und Linux verwenden." - :settings-page/preferred-outdenting-tip "Linke Seite: Ausrücken mit Standardeinstellung - Rechte Seite: Ausrücken mit aktivierter Logischer Ausrückung" - :settings-page/preferred-outdenting-tip-more "→ Mehr erfahren" - :settings-page/preferred-pasting-file-hint "Wenn aktiviert, werden eingefügte Bilder aus dem Internet heruntergeladen und in assets/ gespeichert. Wenn deaktiviert, wird ein Weblink zum Bild eingefügt." - :settings-page/theme-dark "Dunkel" - :settings-page/theme-light "Hell" - :settings-page/theme-system "System" - :settings-page/update-available "Neue Version gefunden: " - :settings-page/update-error-1 "⚠️ Ups, Etwas ist schiefgelaufen!" - :settings-page/update-error-2 " Überprüfen Sie den " + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "MCP-URL kopiert" + :server/start "Starten" + :server/stop "Stoppen" + :server/title "HTTP-API-Server" - :tips/all-done "Alles erledigt!" + :server.config/auto-start-label "Automatisch mit App starten" + :server.config/port-label "Portbereich" + :server.config/reset "Zurücksetzen" + :server.config/save-and-apply "Speichern und anwenden" + :server.config/title "Server-Konfigurationen" + + :server.status/closed "Geschlossen" + :server.status/closing "Wird geschlossen" + :server.status/error "Fehler" + :server.status/running "Läuft" + :server.status/starting "Startet" + :server.status/stopped "Gestoppt" + + :server.token/add-new "Neues Token hinzufügen" + :server.token/name-placeholder "Servername" + :server.token/regenerate-value "Token-Wert neu generieren" + :server.token/title "Autorisierungs-Tokens" + :server.token/update-success "Tokens aktualisiert" + :server.token/value-placeholder "Wert" + + :settings/account "Konto" + :settings/advanced "Erweitert" + :settings/ai "KI" + :settings/collaboration "Zusammenarbeit" + :settings/editor "Editor" + :settings/encryption "Verschlüsselung" + :settings/features "Funktionen" + :settings/general "Allgemein" + :settings/keymap "Tastenbelegung" + :settings/plugins "Plugin-Einstellungen" + + :settings.account/storage-usage "{1}GB von {2}GB Gesamtspeicher ({3})" + :settings.account/synced-graphs "{1} von {2} synchronisierten Diagrammen ({3})" + + :settings.advanced/auto-chmod "Dateiberechtigungen automatisch ändern" + :settings.advanced/auto-chmod-desc "Deaktivieren um Bearbeitung durch mehrere Nutzer mit Gruppenmitgliedschafts-Berechtigungen zu erlauben." + :settings.advanced/auto-updater "Automatisches Update" + :settings.advanced/developer-mode "Entwicklermodus" + :settings.advanced/developer-mode-desc "Der Entwicklermodus hilft Mitwirkenden und Entwicklern von Erweiterungen, ihre Integration mit Logseq effizienter zu testen." + :settings.advanced/disable-sentry "Nutzungs- und Diagnostik-Daten an Logseq senden" + :settings.advanced/disable-sentry-desc "Logseq wird niemals Ihre lokale Graphdatenbank sammeln oder Ihre Daten verkaufen." + :settings.advanced/network-proxy "Netzwerk-Proxy" + + :settings.ai/enable-mcp-server "MCP-Server aktivieren" + :settings.ai/enable-mcp-server-desc "MCP-Server für KI-Integration aktivieren" + + :settings.editor/auto-expand-block-refs "Automatisch beim Heranzoomen Blockreferenzen erweitern..." + :settings.editor/auto-expand-block-refs-tip "Diese Option steuert, ob Blockreferenzen beim Heranzoomen automatisch ausgeklappt werden." + :settings.editor/custom-date-format "Bevorzugtes Datumsformat" + :settings.editor/enable-all-pages-public "Alle Seiten bei Veröffentlichung öffentlich" + :settings.editor/enable-shortcut-tooltip "Tooltips für Verknüpfungen aktivieren" + :settings.editor/enable-tooltip "Tooltips aktivieren" + :settings.editor/preferred-outdenting "Logische Ausrückung" + :settings.editor/preferred-outdenting-tip "Linke Seite: Ausrücken mit Standardeinstellung - Rechte Seite: Ausrücken mit aktivierter Logischer Ausrückung" + :settings.editor/preferred-outdenting-tip-more "→ Mehr erfahren" + :settings.editor/preferred-pasting-file "Einfügen der Datei bevorzugen" + :settings.editor/preferred-pasting-file-hint "Wenn aktiviert, werden eingefügte Bilder aus dem Internet heruntergeladen und in assets/ gespeichert. Wenn deaktiviert, wird ein Weblink zum Bild eingefügt." + :settings.editor/show-brackets "Klammern anzeigen" + :settings.editor/show-full-blocks "Alle Zeilen einer Blockreferenz anzeigen" + :settings.editor/spell-checker "Rechtschreibprüfung" + :settings.editor/wide-mode "Breitbildmodus" + + :settings.features/enable-flashcards "Karteikarten" + :settings.features/enable-journals "Journale einschalten" + :settings.features/home-default-page "Standard-Homepage einrichten" + :settings.features/home-default-page-update-success "Standard-Startseite aktualisiert" + :settings.features/journals-enable-success "Journale aktiviert" + :settings.features/login-prompt "Um vor allen anderen auf neue Funktionen zugreifen zu können, müssen Sie ein Open Collective Sponsor oder Backer von Logseq sein und sich daher zuerst anmelden." + :settings.features/page-not-found "Die Seite „{1}“ existiert noch nicht. Bitte erstellen Sie zuerst diese Seite und versuchen Sie es dann erneut." + :settings.features/plugin-system "Plugin-System" + + :settings.general/accent-color "Akzentfarbe" + :settings.general/accent-color-alert "Auswählen einer Akzentfarbe kann das ausgewählte Thema überschreiben." + :settings.general/accent-color-logseq "Klassische Logseq-Farbe" + :settings.general/accent-color-none-desc "Akzentfarbe deaktivieren. Dies befindet sich derzeit in der Betaphase und wird hauptsächlich zur Kompatibilität mit benutzerdefinierten Designs verwendet." + :settings.general/changelog "Was ist neu?" + :settings.general/check-for-updates "Nach Updates suchen" + :settings.general/current-revision-label "Aktuelle Revision" + :settings.general/current-version "Aktuelle Version" + :settings.general/custom-configuration "Individuelle Konfiguration" + :settings.general/custom-global-configuration "Benutzerdefinierte globale Konfiguration" + :settings.general/custom-theme "Individuelles Theme" + :settings.general/edit-config-edn "config.edn bearbeiten (im aktuellen Repository)" + :settings.general/edit-custom-css "custom.css bearbeiten" + :settings.general/edit-export-css "export.css bearbeiten" + :settings.general/edit-global-config-edn "Globale config.edn bearbeiten" + :settings.general/editor-font "Schriftart" + :settings.general/editor-font-set-global "Als globale Schriftart festlegen" + :settings.general/export-theme "Theme exportieren" + :settings.general/language "Sprache" + :settings.general/native-titlebar "Native Titelleiste" + :settings.general/native-titlebar-desc "Die klassische Titelleiste auf Windows und Linux verwenden." + :settings.general/refresh-required-feedback "Seite muss neu geladen werden" + :settings.general/release-channel "Release-Kanal" + :settings.general/revision "Revision: {1}" + :settings.general/theme-dark "Dunkel" + :settings.general/theme-light "Hell" + :settings.general/theme-system "System" + + :settings.sync-server/clear-success "Die URL des Sync-Servers wurde gelöscht. Es wird der offizielle Logseq Sync verwendet." + :settings.sync-server/reset "Auf Standard zurücksetzen" + :settings.sync-server/save-success "Die URL des Sync-Servers wurde gespeichert." + :settings.sync-server/url "URL des Sync-Servers" + :settings.sync-server/url-desc "Legen Sie eine benutzerdefinierte HTTPS-URL für einen selbst gehosteten Sync-Server fest. Ihre Logseq-Authentifizierungstokens werden an diesen Server gesendet, daher sollten Sie nur eine vertrauenswürdige URL verwenden. Lassen Sie das Feld leer, um den offiziellen Logseq Sync zu verwenden." + :settings.sync-server/url-invalid-error "URL muss mit https:// oder http:// beginnen" + + :shell/input-command-title "Befehl eingeben" + + :shortcut.category/basics "Grundlagen" + :shortcut.category/block-command-editing "Block-Befehlsbearbeitung" + :shortcut.category/block-editing "Blockbearbeitung allgemein" + :shortcut.category/block-selection "Block-Auswahl" + :shortcut.category/formatting "Formatierung" + :shortcut.category/navigating "Navigation" + :shortcut.category/others "Sonstiges" + :shortcut.category/plugins "Plugins" + :shortcut.category/toggle "Umschalten" + + :sidebar.left/favorites "Favoriten" + :sidebar.left/navigations "Navigation" + :sidebar.left/recent-pages "Neuste" + + :sidebar.right/close "Schließen" + :sidebar.right/close-all "Alle schließen" + :sidebar.right/close-others "Andere schließen" + :sidebar.right/collapse "Ausklappen" + :sidebar.right/collapse-all "Alle ausklappen" + :sidebar.right/collapse-others "Andere ausklappen" + :sidebar.right/expand "Einklappen" + :sidebar.right/expand-all "Alle einklappen" + :sidebar.right/more "Mehr" + :sidebar.right/open "In Seitenleiste öffnen" + :sidebar.right/open-as-page "Als Seite öffnen" + :sidebar.right/resize-handle "Griff zur Größenänderung der rechten Seitenleiste" + :sidebar.right/toggle "Rechte Seitenleiste umschalten" + + :storage/invalid-data-writing "Ungültiger Datenschreibvorgang." + :storage/sqlitedb-error "SQLiteDB-Fehler: {1}" + :storage/sqlitedb-import-error "SQLiteDB-Importfehler: {1}" + :storage/sqlitedb-save-error "SQLiteDB-Speicherfehler: {1}" + + :storage.recycle/block-deleted-at "Block gelöscht {1}" + :storage.recycle/empty "Papierkorb ist leer." + :storage.recycle/page-deleted-at "Seite gelöscht {1}" + :storage.recycle/readonly "Papierkorb (Nur Lesen)" + :storage.recycle/restore "Wiederherstellen" + :storage.recycle/retention-desc "Gelöschte Seiten und Blöcke bleiben hier, bis sie wiederhergestellt oder nach 30 Tagen automatisch bereinigt werden." + :storage.recycle/title "Papierkorb" + + :sync/assets-downloading-count "Ressourcen werden heruntergeladen ({1})" + :sync/assets-uploading-count "Ressourcen werden hochgeladen ({1})" + :sync/creating-remote-graph "Remote-Graph wird erstellt..." + :sync/downloading "Wird heruntergeladen..." + :sync/downloading-graph "{1} wird heruntergeladen ..." + :sync/graph-count-exceed-limit "Graph-Anzahl überschreitet das Limit" + :sync/invitation-sent "Einladung gesendet" + :sync/last-synced-time-label "Letzte Synchronisierung: {1}" + :sync/more-debug-info "Mehr Debug-Infos" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "ausstehende lokale Änderungen" + :sync/pending-server-changes "ausstehende Serveränderungen" + :sync/something-wrong "Synchronisierungsfehler aufgetreten" + :sync/start-sync "Synchronisierung starten" + :sync/storage-exceed-limit "Speicherplatz überschreitet das Limit" + :sync/uploading "Wird hochgeladen..." + :sync/user-doesnt-exist-yet "Benutzer existiert noch nicht" + + :theme/logseq-default "Logseq-Standardtheme" + :theme/switch-to "Zu {1} Thema wechseln" + + :ui/all-done "Fertig" + :ui/apply "Anwenden" + :ui/cancel "Abbrechen" + :ui/close "Schließen" + :ui/configure "Konfigurieren" + :ui/confirm "Bestätigen" + :ui/copy "Kopieren" + :ui/copy-all "Alles kopieren" + :ui/copy-to-clipboard "In Zwischenablage kopieren" + :ui/create "Erstellen" + :ui/date-natural-language-placeholder "z. B. Nächste Woche" + :ui/delete "Löschen" + :ui/deleted "Gelöscht" + :ui/dont-remind-me-again "Nicht mehr erinnern" + :ui/empty "Leer" + :ui/error "Fehler" + :ui/error-boundary-error "Fehler von der Oberfläche abgefangen!\n {1}" + :ui/export "Exportieren" + :ui/false "Falsch" + :ui/fix "Beheben!" + :ui/frequently-used "Häufig verwendet" + :ui/from "Von: " + :ui/host "Host" + :ui/image "Bild" + :ui/label "Bezeichnung" + :ui/link "Link" + :ui/load-more "Mehr laden" + :ui/loading "Laden" + :ui/login "Anmelden" + :ui/logout "Abmelden" + :ui/off "AUS" + :ui/on "AN" + :ui/open "Öffnen" + :ui/open-named "Öffne {1}" + :ui/port "Port" + :ui/refresh "Aktualisieren" + :ui/relaunch-confirm "Diese Änderung erfordert einen Neustart der App. Jetzt neu starten?" + :ui/remove-background "Hintergrund entfernen" + :ui/reset "Zurücksetzen" + :ui/run "Ausführen" + :ui/save "Speichern" + :ui/show-less "Weniger anzeigen" + :ui/show-more "Mehr anzeigen" + :ui/skip "Überspringen" + :ui/submit "Absenden" + :ui/to "Nach: " + :ui/toggle-theme "Design wechseln" + :ui/true "Wahr" + :ui/type "Typ" + :ui/untitled "Unbenannt" + :ui/use-current-time "Aktuelle Uhrzeit verwenden" + :ui/yes "Ja" + + :updater/checking-for-updates "Suche nach Updates" + :updater/downloading-progress "Update wird heruntergeladen ({1} %)" + :updater/quit-and-install "Neu starten und installieren" + :updater/up-to-date "Ihre Version ist aktuell 🎉" + :updater/update-available "Update verfügbar" + :updater/update-error "⚠️ Ups, Etwas ist schiefgelaufen!\nÜberprüfen Sie den {1}." + :updater/update-ready-to-install "Update ist bereit zur Installation" + + :view/add-new-view "Neue Ansicht hinzufügen" + :view/all "Alle" + :view/export-edn "EDN exportieren" + :view/linked-references "Verlinkte Referenzen" + :view/new "Neu" + :view/new-property "Neue Eigenschaft" + :view/new-view "Neue Ansicht" + :view/rename "Umbenennen" + :view/results "Ergebnisse:" + :view/unlinked-references "Nicht verlinkte Referenzen" + + :view.filter/custom-date "Benutzerdefiniertes Datum" + :view.filter/empty "Leer" + :view.filter/filter "Filter" + :view.filter/from "Von" + :view.filter/is-empty "Ist leer" + :view.filter/is-not-empty "Ist nicht leer" + :view.filter/match "Übereinstimmung" + :view.filter/match-all-filters "Alle Filter erfüllen" + :view.filter/match-any-filter "Mindestens einen Filter erfüllen" + :view.filter/operator-after "Nach" + :view.filter/operator-before "Vor" + :view.filter/operator-between "Zwischen" + :view.filter/operator-date-after "Datum nach" + :view.filter/operator-date-before "Datum vor" + :view.filter/operator-is "Ist" + :view.filter/operator-is-not "Ist nicht" + :view.filter/operator-text-contains "Text enthält" + :view.filter/operator-text-not-contains "Text enthält nicht" + :view.filter/or "Oder" + :view.filter/relative-1-day-ago "Vor 1 Tag" + :view.filter/relative-1-month-ago "Vor 1 Monat" + :view.filter/relative-1-week-ago "Vor 1 Woche" + :view.filter/relative-1-year-ago "Vor 1 Jahr" + :view.filter/relative-3-days-ago "Vor 3 Tagen" + :view.filter/relative-3-months-ago "Vor 3 Monaten" + :view.filter/to "Bis" + :view.filter/type-to-search "Zum Suchen eingeben" + + :view.table/ascending "Aufsteigend" + :view.table/columns-visibility "Spalten-Sichtbarkeit" + :view.table/default-title "{1} Knoten" + :view.table/delete-sort "Sortierung entfernen" + :view.table/descending "Absteigend" + :view.table/drag-to-reorder "Ziehen zum Umordnen" + :view.table/group-by "Gruppieren nach" + :view.table/group-journal-date "Journaldatum" + :view.table/group-page-created-date "Erstellungsdatum der Seite" + :view.table/group-page-name "Seitenname" + :view.table/group-page-updated-date "Aktualisierungsdatum der Seite" + :view.table/live-query-title "Live-Abfrage ({1})" + :view.table/name-column "Name" + :view.table/no-group-value "Kein {1}" + :view.table/page "Seite" + :view.table/pages "Seiten" + :view.table/pin "Anheften" + :view.table/row-number "Zeilennummer" + :view.table/select-all "Alle auswählen" + :view.table/select-column "Spalte auswählen" + :view.table/select-order "Reihenfolge auswählen" + :view.table/select-row "Zeile auswählen" + :view.table/selected-count "Ausgewählt: {1}" + :view.table/sort-ascending "Aufsteigend" + :view.table/sort-descending "Absteigend" + :view.table/sort-groups-by "Gruppen sortieren nach" + :view.table/sort-groups-order "Gruppen-Sortierreihenfolge" + :view.table/total-refs-count "Gesamte Referenzen" + :view.table/unpin "Loslösen" - :window/minimize "Minimieren" - :window/maximize "Maximieren" - :window/restore "Wiederherstellen" :window/close "Schliessen" :window/exit-fullscreen "Vollbild verlassen" + :window/maximize "Maximieren" + :window/minimize "Minimieren" + :window/restore "Wiederherstellen" - :search-item/no-result "Keine übereinstimmenden Treffer" - :search-item/page "Seite" - :select/default-prompt "Wählen Sie einen" + :youtube/embed-first-reminder-mobile "Bitte betten Sie zunächst ein YouTube-Video ein und verwenden Sie dann dieses Symbol.\nDenken Sie daran: Sie können eine reine YouTube-URL auf dem Mobilgerät als eingebettetes Video einfügen." + :youtube/player-not-ready "YouTube-Player ist noch nicht bereit." + :youtube/timestamps-not-available-mobile "YouTube-Zeitstempel sind auf Mobilgeräten noch nicht verfügbar." - :select.graph/add-graph "Ja, weiteren Graphen hinzufügen" - :select.graph/empty-placeholder-description "Keine übereinstimmenden Graphen. Möchten Sie einen weiteren hinzufügen?" - :select.graph/prompt "Einen Graphen auswählen" - - :settings-page/accent-color "Akzentfarbe" - :settings-page/accent-color-alert "Auswählen einer Akzentfarbe kann das ausgewählte Thema überschreiben." - :settings-page/auto-chmod "Dateiberechtigungen automatisch ändern" - :settings-page/auto-chmod-desc "Deaktivieren um Bearbeitung durch mehrere Nutzer mit Gruppenmitgliedschafts-Berechtigungen zu erlauben." - :settings-page/auto-updater "Automatisches Update" - :settings-page/clear "Löschen" - :settings-page/clear-cache "Cache löschen" - :settings-page/clear-cache-warning "Wenn Sie den Cache löschen, werden offene Graphen verworfen. Nicht gespeicherte Änderungen gehen dabei verloren." - :settings-page/current-version "Aktuelle Version" - :settings-page/custom-configuration "Individuelle Konfiguration" - :settings-page/custom-date-format "Bevorzugtes Datumsformat" - :settings-page/custom-global-configuration "Benutzerdefinierte globale Konfiguration" - :settings-page/custom-theme "Individuelles Theme" - :settings-page/developer-mode "Entwicklermodus" - :settings-page/developer-mode-desc "Der Entwicklermodus hilft Mitwirkenden und Entwicklern von Erweiterungen, ihre Integration mit Logseq effizienter zu testen." - :settings-page/disable-sentry "Nutzungs- und Diagnostik-Daten an Logseq senden" - :settings-page/disable-sentry-desc "Logseq wird niemals Ihre lokale Graphdatenbank sammeln oder Ihre Daten verkaufen." - :settings-page/edit-config-edn "config.edn bearbeiten (im aktuellen Repository)" - :settings-page/edit-custom-css "custom.css bearbeiten" - :settings-page/edit-export-css "export.css bearbeiten" - :settings-page/edit-global-config-edn "Globale config.edn bearbeiten" - :settings-page/editor-font "Schriftart" - :settings-page/enable-all-pages-public "Alle Seiten bei Veröffentlichung öffentlich" - :settings-page/enable-flashcards "Karteikarten" - :settings-page/enable-journals "Journale einschalten" - :settings-page/enable-shortcut-tooltip "Tooltips für Verknüpfungen aktivieren" - :settings-page/enable-tooltip "Tooltips" - :settings-page/export-theme "Theme exportieren" - :settings-page/home-default-page "Standard-Homepage einrichten" - :settings-page/login-prompt "Um vor allen anderen auf neue Funktionen zugreifen zu können, müssen Sie ein Open Collective Sponsor oder Backer von Logseq sein und sich daher zuerst anmelden." - :settings-page/network-proxy "Netzwerk-Proxy" - :settings-page/plugin-system "Plugins" - :settings-page/preferred-outdenting "Logische Ausrückung" - :settings-page/preferred-pasting-file "Einfügen der Datei bevorzugen" - :settings-page/show-brackets "Klammern anzeigen" - :settings-page/show-full-blocks "Alle Zeilen einer Blockreferenz anzeigen" - :settings-page/spell-checker "Rechtschreibprüfung" - :settings-page/tab-advanced "Erweitert" - :settings-page/tab-collaboration "Zusammenarbeit" - :settings-page/tab-features "Funktionen" - :settings-page/tab-general "Allgemein" - :settings-page/tab-keymap "Tastenbelegung" - :settings-page/wide-mode "Breitbildmodus" - - :text/image "Bild" - - :updater/new-version-install "Eine neue Version wurde heruntergeladen." - :updater/quit-and-install "Neu starten, um zu installieren" - - :content/copy-block-url "Block-URL kopieren" - :content/copy-export-as "Kopieren / Exportieren als.." - :content/copy-ref "Diese Referenz kopieren" - :content/delete-ref "Diese Referenz löschen" - :content/replace-with-embed "Mit Verankerung ersetzen" - :content/replace-with-text "Mit Text ersetzen" - :context-menu/make-a-flashcard "Eine Karteikarte erstellen" - :context-menu/toggle-number-list "Nummeriert/Unnummeriert umschalten" - :dev/show-block-ast "(Dev) Block-AST anzeigen" - :dev/show-block-data "(Dev) Block-Daten anzeigen" - :dev/show-page-data "(Dev) Seiten-Daten anzeigen" - :editor/collapse-block-children "Alles einklappen" - :editor/cycle-todo "Den TODO-Status des aktuellen Elements rotieren" - :editor/delete-selection "Ausgewählte Blöcke entfernen" - :editor/expand-block-children "Alles ausklappen" - - :command.auto-complete/complete "Automatische Vervollständigung: Ausgewähltes Element auswählen" - :command.auto-complete/meta-complete "Autovervollständigung: Strg + Enter zum Auswählen des markierten Elements" - :command.auto-complete/next "Automatische Vervollständigung: Nächstes Element auswählen" - :command.auto-complete/prev "Automatische Vervollständigung: Vorheriges Element auswählen" - :command.auto-complete/shift-complete "Automatische Vervollständigung: Ausgewähltes Element in der Seitenleiste öffnen" - :command.cards/again "Karten: Nochmal" - :command.cards/easy "Karten: Einfach" - :command.cards/good "Karten: Gut" - :command.cards/hard "Karten: Schwer" - :command.cards/toggle-answers "Karten: Antworten/Lücken ein-/ausblenden" - :command.command-palette/toggle "Suchbefehle" - :command.command/run "Git-Befehl ausführen" - :command.command/toggle-favorite "Zu Favoriten hinzufügen/entfernen" - :command.dev/gc-graph "(Dev) Graph bereinigen (ungenutzte Daten in SQLite entfernen)" - :command.dev/replace-graph-with-db-file "(Dev) Graph mit db.sqlite-Datei ersetzen" - :command.dev/rtc-start "(Dev) RTC starten" - :command.dev/rtc-stop "(Dev) RTC stoppen" - :command.dev/show-block-ast "(Dev) Block-AST anzeigen" - :command.dev/show-block-data "(Dev) Blockdaten anzeigen" - :command.dev/show-page-data "(Dev) Seitendaten anzeigen" - :command.dev/validate-db "(Dev) Aktuellen Graph validieren" - :command.editor/add-property "Property hinzufügen" - :command.editor/add-property-deadline "Deadline zum ausgewählten Block hinzufügen" - :command.editor/add-property-icon "Icon hinzufügen" - :command.editor/add-property-priority "Priorität zum ausgewählten Block hinzufügen" - :command.editor/add-property-status "Status zum ausgewählten Block hinzufügen" - :command.editor/backspace "Backspace / Rückwärts löschen" - :command.editor/backward-kill-word "Ein Wort rückwärts löschen" - :command.editor/backward-word "Cursor ein Wort zurückbewegen" - :command.editor/beginning-of-block "Cursor an den Anfang eines Blocks bewegen" - :command.editor/bold "Fett" - :command.editor/clear-block "Gesamten Blockinhalt löschen" - :command.editor/collapse-block-children "Zusammenklappen" - :command.editor/copy "Kopieren (kopiert entweder die Auswahl oder die Blockreferenz)" - :command.editor/copy-embed "Kopieren einer Blockeinbettung, die auf den aktuellen Block verweist" - :command.editor/copy-page-url "Seiten-URL kopieren" - :command.editor/copy-text "Auswahl als Text kopieren" - :command.editor/cut "Ausschneiden" - :command.editor/cycle-todo "Den TODO-Status des aktuellen Eintrags ändern" - :command.editor/delete "Löschen / Vorwärts löschen" - :command.editor/delete-selection "Ausgewählte Blöcke löschen" - :command.editor/down "Cursor nach unten bewegen / Nach unten auswählen" - :command.editor/end-of-block "Cursor an das Ende eines Blocks bewegen" - :command.editor/escape-editing "Bearbeitung abschließen" - :command.editor/expand-block-children "Erweitern" - :command.editor/follow-link "Link unter dem Cursor folgen" - :command.editor/forward-kill-word "Ein Wort vorwärts löschen" - :command.editor/forward-word "Cursor ein Wort vorwärts bewegen" - :command.editor/highlight "Hervorheben" - :command.editor/indent "Block einrücken" - :command.editor/insert-link "HTML-Link" - :command.editor/insert-youtube-timestamp "YouTube-Zeitstempel einfügen" - :command.editor/italics "Kursiv" - :command.editor/jump "Zu Property-Schlüssel oder -Wert springen" - :command.editor/kill-line-after "Zeile nach der Cursorposition löschen" - :command.editor/kill-line-before "Zeile vor der Cursorposition löschen" - :command.editor/left "Cursor nach links bewegen / Ausgewählten Block am Anfang öffnen" - :command.editor/move-block-down "Block nach unten verschieben" - :command.editor/move-block-up "Block nach oben verschieben" - :command.editor/move-blocks "Blöcke verschieben nach" - :command.editor/new-block "Neuen Block erstellen" - :command.editor/new-line "Neue Zeile innerhalb des Blocks erstellen" - :command.editor/open-edit "Ausgewählten Block bearbeiten" - :command.editor/open-link-in-sidebar "Link in Seitenleiste öffnen" - :command.editor/open-selected-blocks-in-sidebar "Ausgewählte Blöcke in Seitenleiste öffnen" - :command.editor/outdent "Block ausrücken" - :command.editor/paste-text-in-one-block-at-point "Text in einen Block an Stelle einfügen" - :command.editor/quick-add "Schnell hinzufügen" - :command.editor/redo "Wiederholen" - :command.editor/right "Cursor nach rechts bewegen / Ausgewählten Block am Ende öffnen" - :command.editor/select-all-blocks "Alle Blöcke auswählen" - :command.editor/select-block-down "Block unterhalb auswählen" - :command.editor/select-block-up "Block oberhalb auswählen" - :command.editor/select-down "Inhalt unten auswählen" - :command.editor/select-parent "Übergeordneten Block auswählen" - :command.editor/select-up "Inhalt oben auswählen" - :command.editor/set-tags "Tags für ausgewählte Blöcke setzen" - :command.editor/strike-through "Durchgestrichen" - :command.editor/toggle-block-children "Ein-/Ausklappen umschalten" - :command.editor/toggle-display-hidden-properties "Alle Properties anzeigen/verstecken" - :command.editor/toggle-number-list "Nummeriert/Unnummeriert umschalten" - :command.editor/toggle-open-blocks "Öffnen von Blöcken umschalten (alle Blöcke ein- oder ausklappen)" - :command.editor/undo "Rückgängig" - :command.editor/up "Cursor nach oben bewegen / Nach oben auswählen" - :command.editor/zoom-in "Heranzoomen" - :command.editor/zoom-out "Herauszoomen" - :command.go/all-graphs "Zu allen Graphen springen" - :command.go/all-pages "Zu allen Seiten springen" - :command.go/backward "Zurück" - :command.go/electron-find-in-page "Text in Seite finden" - :command.go/electron-jump-to-the-next "Zum nächsten Treffer in der Suchleiste springen" - :command.go/electron-jump-to-the-previous "Zum vorherigen Treffer in der Suchleiste springen" - :command.go/flashcards "Karteikarten umdrehen" - :command.go/forward "Vorwärts" - :command.go/graph-view "Zur Graph-Ansicht springen" - :command.go/home "Zur Startseite springen" - :command.go/journals "Zu Journalen springen" - :command.go/keyboard-shortcuts "Zu Tastaturkürzeln springen" - :command.go/next-journal "Zum nächsten Journal springen" - :command.go/prev-journal "Zum vorherigen Journal springen" - :command.go/search "Volltextsuche" - :command.go/search-in-page "Blöcke in Seite suchen" - :command.go/search-themes "Themen suchen" - :command.go/tomorrow "Zu morgen springen" - :command.graph/add "Einen Graph hinzufügen" - :command.graph/db-add "DB-Graph hinzufügen" - :command.graph/db-save "Aktuelle DB auf Festplatte speichern (~/logseq/graphs/dein-aktueller-graph)" - :command.graph/export-as-html "Öffentliche Graphseite als HTML exportieren" - :command.graph/open "Graph zum Öffnen auswählen" - :command.graph/remove "Einen Graph entfernen" - :command.misc/copy "Kopieren" - :command.misc/export-block-data "Block-EDN-Daten exportieren" - :command.misc/export-graph-ontology-data "Graph-Tags und -Properties als EDN exportieren" - :command.misc/export-page-data "Seiten-EDN-Daten exportieren" - :command.misc/import-edn-data "EDN-Daten importieren" - :command.pdf/close "PDF: Aktuelles PDF-Dokument schließen" - :command.pdf/find "PDF: Text des aktuellen PDF-Dokuments durchsuchen" - :command.pdf/next-page "PDF: Nächste Seite des aktuellen PDF-Dokuments" - :command.pdf/previous-page "PDF: Vorherige Seite des aktuellen PDF-Dokuments" - :command.search/re-index "Suchindex neu erstellen" - :command.sidebar/clear "Alles in der rechten Seitenleiste entfernen" - :command.sidebar/close-top "Schließt das oberste Element in der rechten Seitenleiste" - :command.sidebar/open-today-page "Seite des heutigen Tages in der rechten Seitenleiste öffnen" - :command.ui/clear-all-notifications "Alle Benachrichtigungen entfernen" - :command.ui/customize-appearance "Erscheinungsbild anpassen" - :command.ui/goto-plugins "Zum Plugin-Dashboard springen" - :command.ui/highlight-recent-blocks "Hervorhebung aktueller Blöcke umschalten" - :command.ui/install-plugin-from-github "Plugin von GitHub-Release installieren" - :command.ui/install-plugins-from-file "Plugins aus plugins.edn installieren" - :command.ui/select-theme-color "Verfügbare Themenfarben auswählen" - :command.ui/toggle-brackets "Umschalten, ob Klammern angezeigt werden sollen" - :command.ui/toggle-contents "Inhalt in Seitenleiste umschalten" - :command.ui/toggle-document-mode "Dokumentenmodus umschalten" - :command.ui/toggle-help "Hilfe aktivieren" - :command.ui/toggle-left-sidebar "Linke Seitenleiste umschalten" - :command.ui/toggle-right-sidebar "Rechte Seitenleiste umschalten" - :command.ui/toggle-settings "Einstellungen umschalten" - :command.ui/toggle-theme "Umschalten zwischen dunklem/hellem Theme" - :command.ui/toggle-wide-mode "Breitbildmodus umschalten" - :command.window/close "Fenster schließen" - :shortcut.category/basics "Grundlagen" - :shortcut.category/block-command-editing "Blockbefehl bearbeiten" - :shortcut.category/block-editing "Blockbearbeitung allgemein" - :shortcut.category/block-selection "Blockauswahl (Esc drücken, um die Auswahl zu beenden)" - :shortcut.category/formatting "Formatierung" - :shortcut.category/navigating "Navigation" - :shortcut.category/others "Sonstiges" - :shortcut.category/toggle "Umschalten" - - :views.table/live-query-title (fn [total] (str "Echtzeit-Query (" total ")"))} + :zotero/attachments "Anhänge" + :zotero/imported-file-warning "Dies ist eine importierte Zotero-Datei, lege Zotero-Datenverzeichnis fest, um die Datei in Logseq zu öffnen." + :zotero/linked-file-warning "Dies ist eine verknüpfte Zotero-Datei, lege Basisverzeichnis für verknüpfte Zotero-Anhänge fest, um die Datei in Logseq zu öffnen." + :zotero/notes "Notizen" +} diff --git a/src/resources/dicts/en.edn b/src/resources/dicts/en.edn index 71b70df466..50b57ef5ed 100644 --- a/src/resources/dicts/en.edn +++ b/src/resources/dicts/en.edn @@ -1,596 +1,1861 @@ -{:accessibility/skip-to-main-content "Skip to main content" - :handbook/title "Help" - :handbook/topics "Topics" - :handbook/popular-topics "Popular topics" - :handbook/help-categories "Help categories" - :handbook/search "Search" - :handbook/home "Home" - :handbook/settings "Settings" - :handbook/close "Close" - :on-boarding/importing-main-title "Import existing notes" - :on-boarding/importing-main-desc "You can also do this later in the app." - :on-boarding/importing-title "Do you already have notes that you want to import?" - :on-boarding/importing-desc "If they are in an EDN or Markdown format Logseq can work with them." - :on-boarding/importing-sqlite-desc "Import a SQLite DB Export of your Logseq graph into a new DB graph" - :on-boarding/main-title (fn [] ["Welcome to " [:strong "Logseq!"]]) - :on-boarding/main-desc "First you need to choose a folder where Logseq will store your thoughts, ideas, notes." - :bug-report/main-title "Bug report" - :bug-report/clipboard-inspector-title "Clipboard data inspector" - :bug-report/main-desc "Can you help us out by submitting a bug report? We'll get it sorted out as soon as we can." - :bug-report/section-clipboard-title "Is the bug you encountered related to these features?" - :bug-report/section-clipboard-desc "You can use these handy tools to give us additional information." - :bug-report/section-clipboard-btn-title "Clipboard helper" - :bug-report/section-clipboard-btn-desc "Inspect and collect clipboard data" - :bug-report/section-issues-title "Or..." - :bug-report/section-issues-desc "If there are no tools available for you to gather additional information, please report the bug directly." - :bug-report/section-issues-btn-title "Submit a bug report" - :bug-report/section-issues-btn-desc "Help Make Logseq Better!" - :bug-report/inspector-page-desc-1 "Press Ctrl+V / ⌘+V to inspect your clipboard data" - :bug-report/inspector-page-desc-2 "or click here to paste if you are using the mobile version" - :bug-report/inspector-page-placeholder "Long press here to paste if you are on mobile" - :bug-report/inspector-page-tip "Something wrong? No problem, click to go back to the previous step." - :bug-report/inspector-page-btn-back "Go back" - :bug-report/inspector-page-btn-copy "Copy the result" - :bug-report/inspector-page-copy-notif "Copied to clipboard!" - :bug-report/inspector-page-btn-create-issue "Create an issue" - :bug-report/inspector-page-desc-clipboard "Here is the data read from clipboard." - :bug-report/inspector-page-desc-copy "If this is okay to share, click the copy button." - :bug-report/inspector-page-desc-create-issue "Now you can report the result pasted to your clipboard. Please paste the result in the 'Additional Context' section and state where you copied the original content from. Thanks!" - :help/title-usage "Usage" - :help/title-community "Community" - :help/title-development "Development" - :help/title-about "About" - :help/title-terms "Terms" - :help/start "Getting started" +{ + :account/authentication "Authentication" + :account/benefits-desc "With a Logseq account, you can access cloud-based services like Logseq Sync and alpha/beta features." + :account/billing "Billing" + :account/billing-expired-on-label "Pro plan expired on: {1}" + :account/billing-expires-on-label "Pro plan expires on: {1}" + :account/billing-next-date-label "Next billing date: {1}" + :account/core-features "Access to core Logseq features" + :account/current-plan "Current plan" + :account/delete-account "Delete Account" + :account/discover-sync-desc "Discover the power of {1}" + :account/early-access-alpha-beta "Early access to alpha/beta features" + :account/first-name "First name" + :account/free-plan-sync-limit "1 synced graph (up to 50MB, notes only)" + :account/last-name "Last name" + :account/manage-plan "Manage plan" + :account/month "month" + :account/no-asset-syncing "No asset syncing" + :account/open-invoices "Open invoices" + :account/plan-free "Free" + :account/plan-free-summary "Get started with basic syncing" + :account/plan-pro "Pro" + :account/plan-pro-summary "Unlock advanced syncing and more" + :account/pro-plan-sync-limit "10 synced graphs (up to 5GB each)" + :account/profile "Profile" + :account/refresh-token-warning "exceptional status when refresh-token" + :account/reset-password "Reset password" + :account/sign-up "Sign up" + :account/sync-assets-limit "Sync assets up to 100MB per file" + :account/synced-status "Synced" + :account/unlimited-unsynced-graphs "Unlimited unsynced graphs" + :account/upcoming-cloud-features "Upcoming cloud-based features, including Logseq Publish" + :account/upgrade-plan "Upgrade plan" + :account/username "Username" + + :asset/acceptable-file-extensions "Acceptable file extensions" + :asset/add-assets "Add assets" + :asset/add-directory "Add directory" + :asset/alias-already-exists "Alias name of \"{1}\" already exists!" + :asset/alias-directories "Alias directories" + :asset/alias-directory-path-label "Directory path:" + :asset/alias-name-dialog-title "What's the alias name of this selected directory?" + :asset/alias-name-label "Alias name:" + :asset/alias-name-placeholder "e.g. Books" + :asset/align "Align" + :asset/align-center "Align center" + :asset/align-left "Align left" + :asset/align-right "Align right" + :asset/already-exists "Asset exists already, title: {1}, node reference: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Can't embed parent block as its own property" + :asset/confirm-delete-image "Are you sure you want to delete this image?" + :asset/copy "Copy image" + :asset/copy-image-unsupported-extension "Copy image is not supported for {1} files" + :asset/create-local-copy-warning "Creating a local asset from an external one. PDF annotations require a local asset to work properly." + :asset/create-title "Create asset" + :asset/delete "Delete image" + :asset/downloading "Downloading" + :asset/drop-hint "Drag 'n' drop files here, or click to select files" + :asset/edit-title "Edit asset" + :asset/external-url-label "Asset external URL:" + :asset/file-extension-placeholder "e.g. mp3" + :asset/maximize "Maximize image" + :asset/open-in-browser "Open image in browser" + :asset/physical-delete "Remove the file too (notice it can't be restored)" + :asset/ref-block "Asset ref block" + :asset/select-file "Select Asset File" + :asset/select-from-disk "Select from disk" + :asset/selected-directories "Selected directories:" + :asset/show-file-in-folder "Show file in folder" + :asset/size-too-large "Asset size shouldn't be larger than 100M" + :asset/syncing "Syncing" + :asset/title-label "Asset title:" + :asset/transfer-placeholder "{1} asset..." + :asset/uploading "Uploading" + + :block/click-to-fix-query "Click to fix query: {1}" + :block/copy-ref "Copy block ref" + :block/copy-url "Copy block URL" + :block/created-label "Created: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' is deprecated. Use '/Math block' command instead." + :block/deprecated-query-syntax "#+BEGIN_QUERY is deprecated. Use '/Advanced Query' command instead." + :block/deprecated-quote "#+BEGIN_QUOTE is deprecated. Use '/Quote' command instead." + :block/empty-url "Empty URL" + :block/excalidraw-no-longer-supported "Excalidraw is no longer supported by default, we plan to support it through plugins." + :block/extraction-error "An unexpected error occurred during block extraction." + :block/hide-query "Hide query" + :block/invalid-hiccup "Invalid hiccup" + :block/invalid-link "Invalid link" + :block/invalid-url "Invalid URL" + :block/large-block-warning "Large block will not be editable or searchable to not slow down the app, please use another editor to edit this block." + :block/last-edited-label "Last edited: {1}" + :block/not-found-warning "No block found" + :block/open-block-references "Open block references" + :block/practice "Practice" + :block/practice-cards "Practice cards" + :block/ref-nesting-too-deep "Block ref nesting is too deep" + :block/remove-tag "Remove tag" + :block/remove-this-tag "Remove this tag" + :block/render-error "Block Render Error:" + :block/set-query "Set query" + :block/set-query-label "Set query:" + :block/sort-order "Sort order" + :block/status-history "Status history" + :block/untitled-query "Untitled query" + + :block.macro/embed-deprecated "{{embed}} is deprecated. Use '/Node embed' command instead." + :block.macro/namespace-deprecated "{{namespace}} is deprecated. Use the {1} feature instead." + :block.macro/query-deprecated "{{query}} is deprecated. Use '/Query' command instead." + :block.macro/unsupported-name "Unsupported macro name: {1}" + + :block.reaction/emoji-required-warning "Please pick an emoji reaction." + :block.reaction/unsupported-emoji-warning "Unsupported reaction emoji." + + :bug-report/desc "Can you help us out by submitting a bug report? We'll get it sorted out as soon as we can." + :bug-report/title "Bug report" + + :bug-report.clipboard/action-desc "Inspect and collect clipboard data" + :bug-report.clipboard/action-title "Clipboard helper" + :bug-report.clipboard/desc "You can use these handy tools to give us additional information." + :bug-report.clipboard/title "Is the bug you encountered related to these features?" + + :bug-report.inspector/back "Go back" + :bug-report.inspector/clipboard-desc "Here is the data read from clipboard." + :bug-report.inspector/copied "Copied to clipboard!" + :bug-report.inspector/copy "Copy the result" + :bug-report.inspector/copy-desc "If this is okay to share, click the copy button." + :bug-report.inspector/create-issue "Create an issue" + :bug-report.inspector/create-issue-desc "Now you can report the result pasted to your clipboard. Please paste the result in the 'Additional Context' section and state where you copied the original content from. Thanks!" + :bug-report.inspector/desc "Press {1} to inspect your clipboard data\nor click here to paste if you are using the mobile version" + :bug-report.inspector/placeholder "Long press here to paste if you are on mobile" + :bug-report.inspector/tip "Something wrong? No problem, click to go back to the previous step." + :bug-report.inspector/title "Clipboard data inspector" + + :bug-report.issue/action-desc "Help Make Logseq Better!" + :bug-report.issue/action-title "Submit a bug report" + :bug-report.issue/desc "If there are no tools available for you to gather additional information, please report the bug directly." + :bug-report.issue/report-link "Report issue" + :bug-report.issue/title "Or..." + + :class/add-property "Add tag property" + :class/tag-properties-desc "Tag properties are inherited by all nodes using the tag. For example, each #Task node inherits 'Status' and 'Priority'." + :class/tagged-nodes "Tagged nodes" + + :class.built-in/asset "Asset" + :class.built-in/card "Card" + :class.built-in/cards "Cards" + :class.built-in/code-block "Code" + :class.built-in/journal "Journal" + :class.built-in/math-block "Math" + :class.built-in/page "Page" + :class.built-in/pdf-annotation "PDF Annotation" + :class.built-in/property "Property" + :class.built-in/query "Query" + :class.built-in/quote-block "Quote" + :class.built-in/root "Root Tag" + :class.built-in/tag "Tag" + :class.built-in/task "Task" + :class.built-in/template "Template" + :class.built-in/whiteboard "Whiteboard" + + :class.validation/built-in-extends-change "Can't change the extends of a built-in tag." + :class.validation/cant-add-tag-on-built-in "Can't add tag on built-in \"{1}\"." + :class.validation/cant-remove-private-tags "Can't remove private tags: {1}." + :class.validation/cant-remove-tag-built-in "Can't remove tag with built-in #{1}." + :class.validation/cant-remove-tag-on-built-in "Can't remove tag on built-in \"{1}\"." + :class.validation/cant-set-tag-built-in "Can't set tag with built-in #{1}." + :class.validation/duplicate "Another tag named \"{1}\" already exists." + :class.validation/extends-cycle "Tag extends cycle." + :class.validation/invalid-extends-type "Can't extend this page since either it is not a tag or is extending from a page that is not a tag." + :class.validation/parents-must-be-tags "Cannot create this tag unless all parents are tags." + :class.validation/tag-with-non-tag "Can't set tag with built-in page that isn't a tag \"{1}\"." + + :cmdk.action/apply-theme "Apply theme" + :cmdk.action/copy-ref "Copy ref" + :cmdk.action/create "Create" + :cmdk.action/filter "Filter" + :cmdk.action/open "Open" + :cmdk.action/open-in-sidebar "Open in sidebar" + :cmdk.action/search "Search" + :cmdk.action/trigger "Trigger" + + :cmdk.create/configure-tag "Configure tag" + :cmdk.create/page "Create page" + :cmdk.create/tag "Create tag" + + :cmdk.error/no-block-link "No link found in this block's content." + :cmdk.error/no-page-link "No link found in this page's properties." + :cmdk.error/no-search-item-link "No link for this search item." + + :cmdk.filter/add "Add filter to search" + :cmdk.filter/codes "Search only codes" + :cmdk.filter/commands "Search only commands" + :cmdk.filter/current-page "Search only current page" + :cmdk.filter/files "Search only files" + :cmdk.filter/nodes "Search only nodes" + :cmdk.filter/only-label "Search only:" + :cmdk.filter/themes "Search only themes" + + :cmdk.group/codes "Code" + :cmdk.group/commands "Commands" + :cmdk.group/create "Create" + :cmdk.group/current-page "Current page" + :cmdk.group/files "Files" + :cmdk.group/filters "Filters" + :cmdk.group/nodes "Nodes" + :cmdk.group/recently-updated "Recently updated" + :cmdk.group/themes "Themes" + + :cmdk.info/configure-tag "Configure #{1}" + :cmdk.info/create-page "Create page called '{1}'" + :cmdk.info/create-tag "Create tag called '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Add graph filter" + :cmdk.input/default-placeholder "What are you looking for?" + :cmdk.input/move-blocks-placeholder "Move blocks to" + :cmdk.input/type-page-name-placeholder "Type a page name to create" + + :cmdk.tip/clear-filter "Press {1} to clear search filter" + :cmdk.tip/filter-results "Press {1} to filter search results" + :cmdk.tip/label "Tip:" + :cmdk.tip/open-sidebar "Press {1} to open search in the sidebar" + + :collaboration/email-address "Email address" + :collaboration/invite "Invite" + :collaboration/members "Members:" + :collaboration/remove-access "Remove access" + :collaboration/remove-access-error "Failed to remove member." + + :color/blue "Blue" + :color/crimson "Crimson" + :color/cyan "Cyan" + :color/grass "Grass" + :color/gray "Gray" + :color/green "Green" + :color/indigo "Indigo" + :color/orange "Orange" + :color/pink "Pink" + :color/plum "Plum" + :color/purple "Purple" + :color/red "Red" + :color/teal "Teal" + :color/tomato "Tomato" + :color/violet "Violet" + :color/yellow "Yellow" + + :command.auto-complete/complete "Auto-complete: Choose selected item" + :command.auto-complete/meta-complete "Auto-complete: Cmd + Enter to choose selected item" + :command.auto-complete/next "Auto-complete: Select next item" + :command.auto-complete/prev "Auto-complete: Select previous item" + :command.auto-complete/shift-complete "Auto-complete: Open selected item in sidebar" + + :command.command-palette/toggle "Search commands" + + :command.editor/add-property "Add property" + :command.editor/add-property-deadline "Add task deadline to selected block" + :command.editor/add-property-icon "Add icon" + :command.editor/add-property-priority "Add task priority to selected block" + :command.editor/add-property-status "Add task status to selected block" + :command.editor/add-reaction "Add reaction" + :command.editor/backspace "Backspace / Delete backwards" + :command.editor/backward-kill-word "Delete a word backwards" + :command.editor/backward-word "Move cursor backward a word" + :command.editor/beginning-of-block "Move cursor to the beginning of a block" + :command.editor/bold "Bold" + :command.editor/clear-block "Delete entire block content" + :command.editor/collapse-block-children "Collapse" + :command.editor/copy "Copy (copies either selection, or block reference)" + :command.editor/copy-embed "Copy a block embed pointing to the current block" + :command.editor/copy-page-url "Copy page url" + :command.editor/copy-text "Copy selections as text" + :command.editor/cut "Cut" + :command.editor/cycle-todo "Rotate the TODO state" + :command.editor/delete "Delete / Delete forwards" + :command.editor/delete-selection "Delete selected blocks" + :command.editor/down "Move cursor down / Select down" + :command.editor/end-of-block "Move cursor to the end of a block" + :command.editor/escape-editing "Escape editing" + :command.editor/expand-block-children "Expand" + :command.editor/follow-link "Follow link under cursor" + :command.editor/forward-kill-word "Delete a word forwards" + :command.editor/forward-word "Move cursor forward a word" + :command.editor/highlight "Highlight" + :command.editor/indent "Indent block" + :command.editor/insert-link "HTML Link" + :command.editor/insert-youtube-timestamp "Insert youtube timestamp" + :command.editor/italics "Italics" + :command.editor/jump "Jump to a property key or value" + :command.editor/kill-line-after "Delete line after cursor position" + :command.editor/kill-line-before "Delete line before cursor position" + :command.editor/left "Move cursor left / Open selected block at beginning" + :command.editor/move-block-down "Move block down" + :command.editor/move-block-up "Move block up" + :command.editor/move-blocks "Move blocks to" + :command.editor/new-block "Create new block" + :command.editor/new-line "New line in current block" + :command.editor/open-edit "Edit selected block" + :command.editor/open-link-in-sidebar "Open link in sidebar" + :command.editor/open-selected-blocks-in-sidebar "Open selected block(s) in sidebar" + :command.editor/outdent "Outdent block" + :command.editor/paste-text-in-one-block-at-point "Paste text into one block at point" + :command.editor/quick-add "Quick add" + :command.editor/redo "Redo" + :command.editor/right "Move cursor right / Open selected block at end" + :command.editor/select-all-blocks "Select all blocks" + :command.editor/select-block-down "Select block below" + :command.editor/select-block-up "Select block above" + :command.editor/select-down "Select content below" + :command.editor/select-parent "Select parent block" + :command.editor/select-up "Select content above" + :command.editor/set-tags "Set tags for selected block(s)" + :command.editor/strike-through "Strikethrough" + :command.editor/toggle-block-children "Toggle expand/collapse" + :command.editor/toggle-display-hidden-properties "Toggle display hidden properties" + :command.editor/toggle-number-list "Toggle number list" + :command.editor/toggle-open-blocks "Toggle open blocks (collapse or expand all blocks)" + :command.editor/undo "Undo" + :command.editor/up "Move cursor up / Select up" + :command.editor/zoom-in "Zoom in editing block / Forwards otherwise" + :command.editor/zoom-out "Zoom out editing block / Backwards otherwise" + + :command.go/all-graphs "Go to all graphs" + :command.go/all-pages "Go to all pages" + :command.go/backward "Backwards" + :command.go/electron-find-in-page "Find text in page" + :command.go/electron-jump-to-the-next "Jump to the next match to your Find bar search" + :command.go/electron-jump-to-the-previous "Jump to the previous match to your Find bar search" + :command.go/flashcards "Toggle flashcards" + :command.go/forward "Forwards" + :command.go/graph-view "Go to graph view" + :command.go/home "Go to home" + :command.go/journals "Go to journals" + :command.go/keyboard-shortcuts "Go to keyboard shortcuts" + :command.go/next-journal "Go to next journal" + :command.go/prev-journal "Go to previous journal" + :command.go/search "Search pages and blocks" + :command.go/search-in-page "Search blocks in page" + :command.go/search-themes "Search themes" + :command.go/tomorrow "Go to tomorrow" + + :command.graph/add "Add a graph" + :command.graph/db-add "Add a DB graph" + :command.graph/db-save "Save the current db to the disk (~/logseq/graphs/your-current-graph)" + :command.graph/export-as-html "Export public graph pages as HTML" + :command.graph/open "Select graph to open" + :command.graph/remove "Remove a graph" + + :command.misc/copy "Copy" + :command.misc/export-block-data "Export block EDN data" + :command.misc/export-graph-ontology-data "Export graph's tags and properties EDN data" + :command.misc/export-page-data "Export page EDN data" + :command.misc/import-edn-data "Import EDN data" + + :command.page/toggle-favorite "Add to/remove from favorites" + + :command.pdf/close "PDF: Close current pdf doc" + :command.pdf/find "PDF: Search text of current pdf doc" + :command.pdf/next-page "PDF: Next page of current pdf doc" + :command.pdf/previous-page "PDF: Previous page of current pdf doc" + + :command.publish/open-dialog "Open publish dialog for current page" + + :command.search/re-index "Rebuild search index" + + :command.shell/run "Run git command" + + :command.sidebar/clear "Clear all in the right sidebar" + :command.sidebar/close-top "Closes the top item in the right sidebar" + :command.sidebar/open-today-page "Open today's page in the right sidebar" + + :command.ui/clear-all-notifications "Clear all notifications" + :command.ui/customize-appearance "Customize appearance" + :command.ui/goto-plugins "Go to plugins dashboard" + :command.ui/highlight-recent-blocks "Toggle highlight recent blocks" + :command.ui/install-plugin-from-github "Install plugin from GitHub release" + :command.ui/install-plugins-from-file "Install plugins from plugins.edn" + :command.ui/select-theme-color "Select available theme colors" + :command.ui/toggle-brackets "Toggle whether to display brackets" + :command.ui/toggle-contents "Toggle Contents in sidebar" + :command.ui/toggle-document-mode "Toggle document mode" + :command.ui/toggle-help "Toggle help" + :command.ui/toggle-left-sidebar "Toggle left sidebar" + :command.ui/toggle-right-sidebar "Toggle right sidebar" + :command.ui/toggle-settings "Toggle settings" + :command.ui/toggle-theme "Toggle between dark/light theme" + :command.ui/toggle-wide-mode "Toggle wide mode" + + :command.window/close "Close window" + + :context-menu/developer-tools "Developer tools" + :context-menu/make-a-flashcard "Make a Flashcard" + :context-menu/set-icon "Set icon" + :context-menu/toggle-number-list "Toggle number list" + + :date/invalid-date-warning "{1} is not a valid date. Please try again" + + :date.nlp/last-friday "Last Friday" + :date.nlp/last-monday "Last Monday" + :date.nlp/last-month "Last month" + :date.nlp/last-saturday "Last Saturday" + :date.nlp/last-sunday "Last Sunday" + :date.nlp/last-thursday "Last Thursday" + :date.nlp/last-tuesday "Last Tuesday" + :date.nlp/last-wednesday "Last Wednesday" + :date.nlp/last-week "Last week" + :date.nlp/last-year "Last year" + :date.nlp/next-friday "Next Friday" + :date.nlp/next-monday "Next Monday" + :date.nlp/next-month "Next month" + :date.nlp/next-saturday "Next Saturday" + :date.nlp/next-sunday "Next Sunday" + :date.nlp/next-thursday "Next Thursday" + :date.nlp/next-tuesday "Next Tuesday" + :date.nlp/next-wednesday "Next Wednesday" + :date.nlp/next-week "Next week" + :date.nlp/next-year "Next year" + :date.nlp/this-friday "This Friday" + :date.nlp/this-monday "This Monday" + :date.nlp/this-month "This month" + :date.nlp/this-saturday "This Saturday" + :date.nlp/this-sunday "This Sunday" + :date.nlp/this-thursday "This Thursday" + :date.nlp/this-tuesday "This Tuesday" + :date.nlp/this-wednesday "This Wednesday" + :date.nlp/this-week "This week" + :date.nlp/this-year "This year" + :date.nlp/today "Today" + :date.nlp/tomorrow "Tomorrow" + :date.nlp/yesterday "Yesterday" + + :deeplink/open-block-error "Open link failed. Block-id `{1}` doesn't exist in the graph." + :deeplink/open-graph-error "Open graph failed. Graph `{1}` doesn't exist." + :deeplink/open-page-error "Open link failed. Page `{1}` doesn't exist in the graph." + + :editor/add-content-first-warning "Please add some content first." + :editor/auto-heading "Auto heading" + :editor/block-search "Search for a block" + :editor/click-to-edit "Click to edit" + :editor/code-language-placeholder "Choose language" + :editor/collapse-block-children "Collapse all" + :editor/cut "Cut" + :editor/cycle-todo "Rotate the TODO state" + :editor/delete-selection "Delete selected blocks" + :editor/display-tag-inline-hint "to display this tag inline instead of at the end of this node." + :editor/expand-block-children "Expand all" + :editor/heading "Heading {1}" + :editor/moving-blocks-count (fn [n] (str "Moving " n (if (> n 1) " blocks" " block"))) + :editor/new-page "New page" + :editor/new-tag "New tag" + :editor/no-block-selected-warning "There's no block selected, please select blocks first." + :editor/paste "Paste" + :editor/reference-node-use-page-ref "To reference a node, please use `[[]]`." + :editor/remove-heading "Remove heading" + :editor/search-for-node "Search for a node" + :editor/search-for-tag "Search for a tag" + :editor/search-template-placeholder "Search for a template" + :editor/template-insert-error "Template insert error: {1}" + + :editor.document-mode/new-block-hint "{1} to create new block" + :editor.document-mode/title "Document mode" + :editor.document-mode/toggle-desc "Click `D` or type {1} to toggle document mode" + + :editor.quick-add/add-to-today "Add to today" + :editor.quick-add/title "Quick add" + + :editor.slash/advanced-query "Advanced Query" + :editor.slash/advanced-query-desc "Create an advanced query block" + :editor.slash/calculator "Calculator" + :editor.slash/calculator-desc "Insert a calculator" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Code block" + :editor.slash/code-block-desc "Insert code block" + :editor.slash/current-time "Current time" + :editor.slash/current-time-desc "Insert current time" + :editor.slash/date-picker "Date picker" + :editor.slash/date-picker-desc "Pick a date and insert here" + :editor.slash/embed-html "Embed HTML" + :editor.slash/embed-twitter-tweet "Embed Twitter tweet" + :editor.slash/embed-video-url "Embed Video URL" + :editor.slash/embed-youtube-timestamp "Embed YouTube timestamp" + :editor.slash/group-advanced "ADVANCED" + :editor.slash/group-basic "BASIC" + :editor.slash/group-format "FORMAT" + :editor.slash/group-heading "Heading" + :editor.slash/group-list-type "LIST TYPE" + :editor.slash/group-plugins "PLUGINS" + :editor.slash/group-priority "PRIORITY" + :editor.slash/group-task-date "TASK DATE" + :editor.slash/group-task-status "TASK STATUS" + :editor.slash/group-time-and-date "TIME & DATE" + :editor.slash/heading-label "Heading {1}" + :editor.slash/image-link "Image link" + :editor.slash/image-link-desc "Create a HTTP link to an image" + :editor.slash/link-desc "Create a HTTP link" + :editor.slash/math-block "Math block" + :editor.slash/math-block-desc "Create a LaTeX block" + :editor.slash/no-priority "No priority" + :editor.slash/node-embed "Node embed" + :editor.slash/node-embed-desc "Embed a node here" + :editor.slash/node-reference "Node reference" + :editor.slash/node-reference-desc "Create a backlink to a node (a page or a block)" + :editor.slash/normal-text "Normal text" + :editor.slash/normal-text-desc "Clear heading and set to normal text" + :editor.slash/number-children "Number children" + :editor.slash/number-list "Number list" + :editor.slash/priority-desc "Set priority to {1}" + :editor.slash/priority-label "Priority {1}" + :editor.slash/query-function "Query function" + :editor.slash/query-function-desc "Create a query function" + :editor.slash/quote-desc "Create a quote block" + :editor.slash/status-desc "Set status to {1}" + :editor.slash/template-desc "Insert a created template here" + :editor.slash/today-desc "Insert the date of today" + :editor.slash/tomorrow-desc "Insert the date of tomorrow" + :editor.slash/underline "Underline" + :editor.slash/underline-desc "Create an underline text decoration" + :editor.slash/upload-asset "Upload an asset" + :editor.slash/upload-asset-desc "Upload file types like image, PDF, DOCX, etc." + :editor.slash/yesterday-desc "Insert the date of yesterday" + + :electron/about "About Logseq" + :electron/add-to-dictionary "Add to dictionary" + :electron/block-not-exist "Open link failed. Block-id `{1}` doesn't exist in the graph." + :electron/cancel "Cancel" + :electron/copy-image "Copy Image" + :electron/link-open-confirm "Are you sure you want to open this link? \n{1}" + :electron/link-open-failed-missing-graph "Failed to open link. Missing graph identifier after `logseq://graph/`." + :electron/link-open-failed-no-graph "Failed to open link. Cannot match graph identifier `{1}` to any linked graph." + :electron/link-open-failed-no-target "Failed to open link. Cannot match `{1}` to any target." + :electron/look-up "Look up selection" + :electron/main-exception "[Main Exception]\n{1}\n{2}" + :electron/new-window "New Window" + :electron/official-docs "Official Documentation" + :electron/ok "OK" + :electron/open-dir-error "Opening the specified directory failed.\n{1}" + :electron/save-image "Save Image" + :electron/save-image-as "Save Image As..." + :electron/search-with-google "Search with Google" + :electron/unimplemented-callback "Unimplemented x-callback-url action: `{1}`." + :electron/version "Version {1}" + :electron/write-file-error "Write to the file {1} failed, {2}." + :electron/write-file-error-with-backup "Write to the file {1} failed, {2}. A backup file was saved to {3}." + + :encryption/cloud-password-rich (fn [] ["If you lose your password, all of your data in the cloud can't be decrypted. " [:span "You will still be able to access the local version of your graph."]]) + :encryption/current-password "Current password" + :encryption/enter-password "Enter password" + :encryption/enter-password-again "Enter password again" + :encryption/enter-password-title "Enter password for remote graphs" + :encryption/failed-to-force-reset-password "Failed to force resetting password." + :encryption/failed-to-update-password "Failed to update password." + :encryption/fetch-key-pair-error "Fetching user rsa-key-pair err: {1}" + :encryption/fetching-key-pair "Fetching user rsa-key-pair..." + :encryption/force-reset-password "Force reset password" + :encryption/force-reset-password-successfully "Force reset password successfully!" + :encryption/force-resetting-password "Force resetting password ..." + :encryption/forgot-password-question "Forgot password?" + :encryption/forgot-password-warning "If you forget your password, you can force a reset of your encryption password. However, this will make all currently encrypted graph data stored on the server permanently unreadable. After resetting, you'll need to re-upload your graphs from the client." + :encryption/init-key-pair "Init E2EE encrypt-key-pair" + :encryption/init-key-pair-error "Init key-pair err: {1}" + :encryption/password-not-matched "Password not matched" + :encryption/password-updated-successfully "Password updated successfully!" + :encryption/remember-password-rich (fn [] [[:span "Please make sure you "] "remember the password you have set, as we are unable to reset or retrieve it if you forget it, " [:span "and we recommend you "] "keep a secure backup of the password."]) + :encryption/reset-password "Reset password" + :encryption/set-new-password "Set new password" + :encryption/set-password-title "Set password for remote graphs" + :encryption/updating-password "Updating password ..." + :encryption/wrong-password "Wrong password" + + :export/backup-successful "Backup successful!" + :export/block-data-copied "Copied block's data!" + :export/collecting-assets "Collecting assets" + :export/copied-to-clipboard "Copied to clipboard!" + :export/copy-or-export-as "Copy / Export as.." + :export/creating-zip "Creating zip" + :export/db-backup-error "DB backup failed, please go to Export and specify a backup folder." + :export/db-edn "Export EDN file" + :export/debug-transit-desc "Exports to a .transit file to send to us for debugging. Any sensitive data will be removed in the exported file." + :export/debug-transit-file "Export debug transit file" + :export/edn-desc "Exports to a readable and editable .edn file. Don't rely on this as a primary backup." + :export/error-unexpected "An unexpected error occurred during export. See the javascript console for details." + :export/exporting "Exporting" + :export/finalizing "Finalizing" + :export/format-text "Text" + :export/graph "Export graph" + :export/graph-ontology-data-copied "Copied graphs's ontology data!" + :export/indent-style-dashes "dashes" + :export/indent-style-label "Indentation style:" + :export/indent-style-none "no-indent" + :export/indent-style-spaces "spaces" + :export/level-lte "level <=" + :export/markdown "Export as standard Markdown (no block properties)" + :export/newline-after-block "newline after block" + :export/no-updates-since-last-export "Graph has not been updated since last export." + :export/open-blocks-only "open blocks only (skip collapsed children)" + :export/page "Export page" + :export/page-data-copied "Copied page's data!" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Preparing zip" + :export/preview-alt "export preview" + :export/public-pages "Export public pages" + :export/remove-emphasis "remove emphasis" + :export/remove-properties "remove properties" + :export/remove-tags "remove #tags" + :export/save-to-file "Save to file" + :export/sqlite-db "Export SQLite DB" + :export/title "Export" + :export/transparent-background "Transparent background" + :export/view-nodes-data-copied "Copied view nodes' data!" + :export/zip "Export both SQLite DB and assets" + :export/zip-error "Export zip failed." + + :export.backup/backup-now "Backup now" + :export.backup/cancel "Cancel backup" + :export.backup/enabled-desc "Hourly backups are enabled for this graph, {1}." + :export.backup/folder "Backup folder:" + :export.backup/hourly-note "Backup will be created every hour." + :export.backup/open-folder "open backups folder for this graph" + :export.backup/schedule "Schedule backup" + :export.backup/set-folder-first "Set backup folder first" + :export.backup/sqlite-desc "Primary way to backup graph's content to a single .sqlite file." + :export.backup/unsupported-desc "Your browser doesn't support {{The File System Access API}}, please switch to a Chromium-based browser." + :export.backup/zip-desc "Primary way to backup graph's content and assets to a .zip file." + + :file/config-duplicate-keys "The file '{1}' has duplicate keys. The key '{2}' is assigned multiple times." + :file/config-invalid "The file 'logseq/config.edn' is invalid. Please reload the app to in order to see the error and fix it." + :file/format-not-supported "Format .{1} is not supported." + :file/label "File" + :file/last-modified-at "Last modified at" + :file/name "File name" + :file/no-data "No data" + :file/title "File {1}" + + :file.config/deprecation-title "The file {1} has the following deprecations:" + :file.config/error-title "The file {1} has the following errors:" + :file.config/invalid-desc "Make sure the config is wrapped in {}." + :file.config/invalid-title "The file {1} is not valid." + :file.config/read-failed-desc "Make sure your config is wrapped in {}. Also make sure that the characters '( { [' have their corresponding closing character ') } ]'." + :file.config/read-failed-title "Failed to read file {1}" + + :flashcard/add-query "Add new query" + :flashcard/all-cards "All cards" + :flashcard/select-cards "Select cards" + :flashcard/shortcut-tooltip "Shortcut: {1}" + + :flashcard.empty/desc "You can add \"{1}\" to any block to turn it into a card or trigger \"/cloze\" to add some clozes." + :flashcard.empty/title "Time to create a card!" + + :flashcard.rating/again "Again" + :flashcard.rating/again-desc "We got the answer wrong. Automatically means that we have forgotten the card. This is a lapse in memory." + :flashcard.rating/easy "Easy" + :flashcard.rating/easy-desc "The answer was correct and we were confident and quick in our recall without mental effort." + :flashcard.rating/good "Good" + :flashcard.rating/good-desc "The answer was correct but we took some mental effort to recall it." + :flashcard.rating/hard "Hard" + :flashcard.rating/hard-desc "The answer was correct but we were not confident about it or took too long to recall." + + :flashcard.review/finished "Congrats, you've reviewed all the cards for this query, see you next time! 💯" + :flashcard.review/hide-answers "Hide answers" + :flashcard.review/show-answers "Show answers" + :flashcard.review/show-clozes "Show clozes" + + :format/bold "Bold" + :format/code "Code" + :format/highlight "Highlight" + :format/italics "Italics" + :format/strikethrough "Strikethrough" + + :graph/all-graphs "All graphs" + :graph/already-exists-error "The graph '{1}' already exists. Please try again with another name." + :graph/as-png "as PNG" + :graph/built-in-pages "Built-in pages" + :graph/charge-range "Charge Range" + :graph/charge-strength "Charge Strength" + :graph/click-to-search "Click to search" + :graph/create-db "Create db graph" + :graph/create-error "Create graph failed." + :graph/create-new "Create a new graph" + :graph/created-before "Created before" + :graph/creating "Creating graph" + :graph/delete-local-action "Delete local graph" + :graph/delete-local-confirm-desc "Are you sure you want to permanently delete the graph \"{1}\" from Logseq?" + :graph/delete-server-action "Delete from server" + :graph/delete-server-confirm-desc "Are you sure you want to permanently delete the graph \"{1}\" from our server?" + :graph/delete-warning "⚠️ Notice that we can't recover this graph after being deleted. Make sure you have backups before deleting it." + :graph/diff "Git diff" + :graph/downloading "downloading" + :graph/encrypt-data-label "Encrypt graph data" + :graph/excluded-pages "Excluded pages" + :graph/forces "Forces" + :graph/gc-success "Graph gc successfully!" + :graph/last-opened-at-label "Last opened at: {1}" + :graph/leave-action "Leave this graph" + :graph/leave-confirm-desc "Are you sure you want to leave this graph?" + :graph/leave-error "Failed to leave graph." + :graph/left "Left graph." + :graph/link-count (fn [n] (str n " " (if (= 1 n) "link" "links"))) + :graph/link-distance "Link Distance" + :graph/local-graphs "Local graphs:" + :graph/n-hops-from-selected-nodes "N hops from selected nodes" + :graph/name-placeholder "your graph name" + :graph/nodes "Nodes" + :graph/orphan-pages "Orphan pages" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "page" "pages"))) + :graph/pause-simulation "Pause simulation" + :graph/preparing "preparing" + :graph/refresh-remote-graphs "Refresh remote graphs" + :graph/remote-graphs "Remote graphs:" + :graph/removed "Removed graph \"{1}\"" + :graph/removed-and-redirecting "Removed graph \"{1}\". Redirecting to graph \"{2}\"" + :graph/removed-from-sync "This graph has been removed from Logseq Sync." + :graph/reset "Reset Graph" + :graph/reset-forces "Reset Forces" + :graph/search "Search" + :graph/shared-graphs "Shared by others:" + :graph/updated-switching "Graph updated! Switching to graph ..." + :graph/use-sync-beta "Use Logseq Sync (Beta testing)" + :graph/use-sync-label "Use Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Failed to compute graph checksum diagnostics." + :graph.diagnostics/checksum-recomputed-success "Checksum recomputed. Recomputed: {1}, local: {2}, remote: {3}. Downloaded {4}.edn with {5} blocks and checksum attributes {6}." + :graph.diagnostics/checksum-unavailable-warning "Unable to compute checksum diagnostics for the current graph." + :graph.diagnostics/client-ops-export-failed-error "Failed to export client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Client ops SQLite export failed: invalid payload type {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exported: {1}.sqlite" + :graph.diagnostics/no-graph-warning "No graph found." + + :graph.page/show-journals "Show Journals" + :graph.page/title "Page graph" + + :graph.switch/add-graph-action "Yes, add another graph" + :graph.switch/empty-desc "No matched graphs. Do you want to add another one?" + :graph.switch/prompt "Switch to:" + :graph.switch/select-prompt "Select a graph" + + :graph.validation/config-arweave-gateway-warning "is no longer supported." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration." + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property." + :graph.validation/config-editor-command-trigger-warning "is no longer supported. Please use '/' and report bugs on it." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs." + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled." + :graph.validation/config-preferred-format-warning "is not used in DB graphs as there is only markdown mode." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages." + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs." + :graph.validation/invalid-blocks-detected "Validation detected {1} invalid block(s). These blocks may be buggy. Attempting to fix invalid blocks. Run validation again to see if they were fixed." + :graph.validation/name-reserved-characters-warning "Graph name can't contain following reserved characters:" + :graph.validation/reserved-character-asterisk "asterisk" + :graph.validation/reserved-character-backslash "backslash" + :graph.validation/reserved-character-colon "colon" + :graph.validation/reserved-character-double-quote "double quote" + :graph.validation/reserved-character-forward-slash "forward slash" + :graph.validation/reserved-character-greater-than "greater than" + :graph.validation/reserved-character-hash "hash" + :graph.validation/reserved-character-less-than "less than" + :graph.validation/reserved-character-pipe "vertical bar or pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "question mark" + :graph.validation/valid "Your graph is valid! {1}" + + :header/go-back "Go back" + :header/go-forward "Go forward" + :header/highlight-recent-blocks "Highlight recent blocks" + :header/highlight-recent-blocks-days-ago "Highlight recent blocks: {1} days ago" + :header/more "More" + :header/quit-highlight-recent-blocks "Quit highlight recent blocks" + :header/toggle-left-sidebar "Toggle left sidebar" + :help/about "About Logseq" - :help/roadmap "Roadmap" - :help/bug "Bug report" - :help/feature "Feature request" - :help/changelog "Changelog" - :help/blog "Logseq blog" - :help/docs "Documentation" - :help/privacy "Privacy policy" - :help/terms "Terms" - :help/forum-community "Forum community" + :help/about-title "About" + :help/ask-community "Ask the community" :help/awesome-logseq "Awesome Logseq" - :help/shortcuts "Keyboard shortcuts" - :help/shortcuts-triggers "Triggers" - :help/shortcut "Shortcut" + :help/block-reference "Block reference" + :help/blog "Logseq blog" + :help/bug "Bug report" + :help/changelog "Changelog" + :help/community-title "Community" + :help/context-menu "Block context menu" + :help/context-menu-action "Right-click bullet" + :help/development-title "Development" + :help/docs "Documentation" + :help/feature "Feature request" + :help/forum-community "Forum community" + :help/handbook "Handbook" + :help/learn-more "Learn more" + :help/markdown-syntax "Markdown syntax" + :help/open-link-in-sidebar "Open link in sidebar" + :help/open-link-in-sidebar-action "Shift-click reference" + :help/privacy "Privacy policy" + :help/reference-autocomplete "Page reference autocomplete" + :help/release-notes "Release notes" + :help/roadmap "Roadmap" :help/search "Search pages/blocks/commands" :help/slash-autocomplete "Slash autocomplete" - :help/reference-autocomplete "Page reference autocomplete" - :help/block-reference "Block reference" - :help/open-link-in-sidebar "Open link in sidebar" - :search-item/page "Page" - :search-item/no-result "No matched result" - :help/context-menu "Block context menu" - :help/markdown-syntax "Markdown syntax" - :bold "Bold" - :italics "Italics" - :highlight "Highlight" - :strikethrough "Strikethrough" - :code "Code" - :untitled "Untitled" - :right-side-bar/help "Help" - :right-side-bar/switch-theme "Theme mode" - :right-side-bar/contents "Contents" - :right-side-bar/page-graph "Page graph" - :right-side-bar/block-ref "Block references" - :right-side-bar/graph-view "Graph view" - :right-side-bar/all-pages "Pages" - :right-side-bar/flashcards "Flashcards" - :right-side-bar/show-journals "Show Journals" - :right-side-bar/separator "Right sidebar resize handler" - :right-side-bar/toggle-right-sidebar "Toggle right sidebar" - :right-side-bar/pane-close "Close" - :right-side-bar/pane-close-others "Close others" - :right-side-bar/pane-close-all "Close all" - :right-side-bar/pane-collapse "Collapse" - :right-side-bar/pane-collapse-others "Collapse others" - :right-side-bar/pane-collapse-all "Collapse all" - :right-side-bar/pane-expand "Expand" - :right-side-bar/pane-expand-all "Expand all" - :right-side-bar/pane-open-as-page "Open as page" - :right-side-bar/pane-more "More" - :left-side-bar/switch "Switch to:" - :left-side-bar/journals "Journals" - :left-side-bar/assets "Assets" - :left-side-bar/tasks "Tasks" - :left-side-bar/nav-favorites "Favorites" - :left-side-bar/nav-recent-pages "Recent" - :page/something-went-wrong "Something went wrong" - :page/logseq-is-having-a-problem "Logseq is having a problem. To try to get it back to a working state, please try the following safe steps in order:" - :page/step "Step {1}" - :page/try "Try" - :page/batch-delete-confirmation "Are you sure you want to delete these page(s)? Properties and tags will be permanently deleted and pages will be recycled." - :page/db-delete-confirmation "Are you sure you want to delete this page?" - :page/permanently-delete-confirmation "Are you sure you want to permanently delete this page?" - :page/make-public "Make it public for publishing" - :page/make-private "Make it private" - :page/delete "Delete page" + :help/start "Getting started" + :help/submit-feedback "Submit feedback" + :help/support-forum "Support forum" + :help/terms "Terms" + :help/terms-title "Terms" + :help/usage-title "Usage" + + :help.handbook/chat-on-discord "Chat on Discord" + :help.handbook/chat-on-discord-desc "Ask quick questions, meet fellow users, and learn new workflows." + :help.handbook/copy-topic-link "Copy topic link" + :help.handbook/current-chapter "Current chapter" + :help.handbook/help-categories "Help categories" + :help.handbook/home "Home" + :help.handbook/link-copied "Handbook link copied!" + :help.handbook/monthly-posts "monthly posts" + :help.handbook/next-chapter "Next chapter" + :help.handbook/popular-topics "Popular topics" + :help.handbook/prev-chapter "Prev chapter" + :help.handbook/resources-from "Resources from {1}" + :help.handbook/search-placeholder "Search" + :help.handbook/shortcuts-count "{1} shortcuts" + :help.handbook/sync "Sync" + :help.handbook/title "Help" + :help.handbook/topics "Topics" + :help.handbook/users-online "users online" + :help.handbook/visit-the-forum "Visit the forum" + :help.handbook/visit-the-forum-desc "Give feedback, request features, and have in-depth conversations." + :help.handbook/writing-mode "Writing mode (preview in time)" + + :help.shortcuts/desc "View shortcuts and tips" + :help.shortcuts/label "Keyboard shortcuts" + :help.shortcuts/shortcut-column "Shortcut" + :help.shortcuts/title "Keyboard shortcuts" + :help.shortcuts/triggers "Triggers" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Icons ({1})" + :icon/matched-count "Matched ({1})" + :icon/search-all "Search all" + :icon/search-emojis "Search emojis" + :icon/search-icons "Search icons" + :icon/tab-all "All" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Icons" + + :import/all-tags "Import all tags" + :import/asset-too-large-warning "Skipped copying asset {1} because it exceeds the 100 MB limit." + :import/assets-import-partial "Imported {1} of {2} assets. See console for details." + :import/assets-imported "Imported {1} assets." + :import/assets-skipped "Skipped {1} assets. See console for details." + :import/block-icons-cannot-be-imported "Block icons can't be imported. Manually import it at the block: {1}" + :import/cannot-import-block-into-non-block-entity "Can't import block into a non-block entity. Please import block elsewhere." + :import/db-edn-desc "Import a DB graph's EDN export into a new DB graph" + :import/db-edn-title "EDN to DB graph" + :import/debug-transit-desc "Import debug transit file into a new DB graph" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Default behavior for DB graphs" + :import/empty-graph-name "Empty graph name." + :import/extract-inline-code-snippets "Extract inline code snippets as child blocks" + :import/file-finished "Import finished!" + :import/file-to-db-desc "Import a file-based Logseq graph folder into a new DB graph" + :import/file-to-db-title "File to DB graph" + :import/graph-name-conflict "Please specify another name as another graph with this name already exists!" + :import/graph-name-placeholder "Graph name" + :import/ignored-assets (fn [count] (str "Import ignored " count " " (if (= 1 count) "asset" "assets") ". See the javascript console for more details.")) + :import/ignored-files (fn [count] (str "Import ignored " count " " (if (= 1 count) "file" "files") ". See the javascript console for more details.")) + :import/ignored-properties (fn [count] (str "Import ignored " count " " (if (= 1 count) "property" "properties"))) + :import/ignored-properties-fix "To fix a property type, change the property value to the correct type and reimport the graph" + :import/invalid-blocks-detected "Import detected {1} invalid block(s). These blocks may be buggy when you interact with them. See the javascript console for more." + :import/invalid-edn-file "The given EDN file is not valid EDN. Please fix and try again." + :import/loading "Importing" + :import/logseq-config-missing "Import failed as the file 'logseq/config.edn' was not found for a Logseq graph." + :import/new-graph-name "New graph name" + :import/notes "Import existing notes" + :import/org-files-imported "Imported {1} org file(s) as markdown. Support for org files will be added later." + :import/page-icons-cannot-be-imported "Page icons can't be imported. Go to the page {1} to manually import it." + :import/properties-case-insensitive-commas "Properties are case insensitive and separated by commas" + :import/property-classes-placeholder "e.g. type" + :import/property-import-manually "Property should be imported manually" + :import/property-parent-classes-placeholder "e.g. parent" + :import/property-type-mismatch "Property value has type {1} instead of type {2}" + :import/property-value-tag-parents "Import tag parents from property values" + :import/property-value-tags "Import additional tags from property values" + :import/remove-inline-tags "Remove inline tags" + :import/select-edn-or-json "Please choose an EDN or a JSON file." + :import/specific-tags "Import specific tags" + :import/sqlite-and-assets-desc "Import a zip containing db.sqlite and an assets folder" + :import/sqlite-and-assets-title "SQLite + assets (.zip)" + :import/submitted-edn-invalid "The submitted EDN data is invalid! Please fix and try again." + :import/successful "Import successful!" + :import/tag-classes-placeholder "tag 1, tag 2" + :import/tags-case-insensitive "Tags are case insensitive" + :import/title "Import" + :import/unexpected-error "Unexpected error: {1}" + :import/zip-import-error "Zip import failed: {1}" + :import/zip-missing-db-sqlite "Zip missing db.sqlite. Please check the archive structure." + + :journal/add-blocks-to-today-success "Blocks added to today!" + :journal/page-cant-convert-warning "This page can't be changed to a journal page." + :journal/parse-date-to-name-error "Failed to parse date to journal name." + + :journal.default-query/doing "DOING" + :journal.default-query/todo "TODO" + + :keymap/all "All" + :keymap/already-bound "Already bound to this action" + :keymap/also-used-for-action "Also used for {1}" + :keymap/also-used-for-action-in-context "Also used for {1} in {2}" + :keymap/clear "Clear" + :keymap/clear-keystroke-filter "Clear keystroke filter" + :keymap/clear-search "Clear search" + :keymap/custom "Custom" + :keymap/deactivates-chord "Deactivates" + :keymap/deactivates-chords "Deactivates {1} chord shortcuts" + :keymap/disabled "Disabled" + :keymap/esc-is-reserved "Esc is reserved" + :keymap/hint-cancel "Cancel" + :keymap/hint-close "Close" + :keymap/hint-reassign "Reassign" + :keymap/hint-remove "Remove" + :keymap/keystroke-filter "Keystroke filter" + :keymap/no-matching-shortcuts "No matching shortcuts" + :keymap/press-a-shortcut "Press a shortcut" + :keymap/press-keys-to-filter "Press keys to filter" + :keymap/reassign "Reassign" + :keymap/reassign-tooltip "Remove from the other action and assign here" + :keymap/reassigned-from "Reassigned from {1}" + :keymap/refresh-all "Refresh all" + :keymap/remove-binding "Remove binding" + :keymap/remove-filter "Remove filter" + :keymap/reset "Reset" + :keymap/reset-to-default "Reset to default" + :keymap/search-by-keys "Search by keys" + :keymap/search-placeholder "Search shortcuts..." + :keymap/shortcut-added "Shortcut added" + :keymap/shortcut-removed "Shortcut removed" + :keymap/toggle-categories-pane "Toggle categories pane" + :keymap/undo "Undo" + :keymap/unset "Unset" + :keymap/used-by-action "Used by {1}" + + :library/add-existing-pages "Add existing pages to Library" + :library/add-pages "Add pages" + :library/title "Library" + + :mobile/camera-access-denied "Camera access is denied. Enable it in Settings > Logseq." + :mobile/microphone-access-denied "Microphone access is denied. Enable it in Settings > Logseq." + + :mobile.header/actions "Actions" + :mobile.header/create-graph "Create new graph" + :mobile.header/delete-block-confirm-desc "Are you sure to delete this block?" + :mobile.header/delete-page-confirm-desc "Are you sure to delete this page?" + + :mobile.intent/file-options "File Options" + :mobile.intent/open-with-app "Open file with your favorite app" + :mobile.intent/select-option-prompt "Select an option to perform" + :mobile.intent/share "Share" + + :mobile.log/all "All" + :mobile.log/errors-only "Errors only" + :mobile.log/full "Full log" + :mobile.log/new-first "New record first" + :mobile.log/old-first "Old record first" + :mobile.log/ui "UI logs" + :mobile.log/worker "worker logs" + + :mobile.settings/account "Account" + :mobile.settings/check-log "Check log" + :mobile.settings/discord-community "Discord community" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Report bug" + :mobile.settings/revision "Revision" + :mobile.settings/theme "Theme" + :mobile.settings/version "Version" + + :mobile.share/file-import-error "Failed to import the shared file. Please try again." + :mobile.share/media-import-error "Failed to import the shared media. Please try again." + :mobile.share/unsupported-content-warning "Parsing current shared content is not supported. Please report the following codes on {1}. We will look into it soon." + :mobile.share/unsupported-import-type "Import {1} file is not supported. You can report it on {2}. We will look into it soon." + + :mobile.tab/capture "Capture" + :mobile.tab/go-to "Go To" + :mobile.tab/graphs "Graphs" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Copy ref" + :mobile.toolbar/copy-url "Copy url" + :mobile.toolbar/hide "Hide" + :mobile.toolbar/indent "Indent" + :mobile.toolbar/outdent "Outdent" + :mobile.toolbar/photo "Photo" + :mobile.toolbar/redo "Redo" + :mobile.toolbar/reference "Reference" + :mobile.toolbar/slash "Slash" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "Todo" + :mobile.toolbar/undo "Undo" + :mobile.toolbar/unselect "Unselect" + + :nav/all-files "All files" + :nav/all-journals "All journals" + :nav/appearance "Appearance" + :nav/assets "Assets" + :nav/cannot-go-to-internal-page "Cannot go to an internal page." + :nav/flashcards "Flashcards" + :nav/graph "Graph" + :nav/graph-view "Graph view" + :nav/help "Help" + :nav/home "Home" + :nav/invalid-jump-error "Invalid jump" + :nav/journals "Journals" + :nav/plugins "Plugins" + :nav/search "Search" + :nav/settings "Settings" + :nav/skip-to-main-content "Skip to main content" + :nav/tasks "Tasks" + :nav/themes "Themes" + + :nav.all-pages/label "Pages" + :nav.all-pages/title "Pages" + + :node/built-in-cant-delete-error "Built-in nodes can't be deleted." + :node/new "New node" + + :notification/clear-all "Clear all" + :notification/copied "Copied!" + + :onboarding.import/desc "If they are in an EDN or Markdown format Logseq can work with them." + :onboarding.import/sqlite-desc "Import a SQLite DB Export of your Logseq graph into a new DB graph" + :onboarding.import/title "Do you already have notes that you want to import?" + + :onboarding.import-option/desc "You can also do this later in the app." + :onboarding.import-option/title "Import existing notes" + + :onboarding.setup/desc "First you need to choose a folder where Logseq will store your thoughts, ideas, notes." + :onboarding.setup/title (fn [] ["Welcome to " [:strong "Logseq!"]]) + :page/add-to-favorites "Add to Favorites" - :page/unfavorite "Unfavorite page" - :block/name "Page name" - :page/copy-page-url "Copy page URL" - :page/convert-to-tag "Convert to Tag" - :page/convert-tag-to-page "Convert Tag to Page" - :file/name "File name" - :file/last-modified-at "Last modified at" - :file/no-data "No data" - :file/format-not-supported "Format .{1} is not supported." - :page/created-at "Created At" - :page/updated-at "Updated At" + :page/added-tag-to-node "Added tag \"{1}\" to \"{2}\"" :page/backlinks "Backlinks" - :linked-references/filter-search "Search in linked pages" - :linked-references/filter-heading "Filter" - :linked-references/filter-directions "Click to include and shift-click to exclude. Click again to remove." - :linked-references/filter-includes "Includes: " - :linked-references/filter-excludes "Excludes: " - :editor/block-search "Search for a block" - :text/image "Image" - :asset/show-file-in-folder "Show file in folder" - :asset/show-in-folder "Show image in folder" - :asset/open-in-browser "Open image in browser" - :asset/delete "Delete image" - :asset/copy "Copy image" - :asset/maximize "Maximize image" - :asset/ref-block "Asset ref block" - :asset/confirm-delete "Are you sure you want to delete this {1}?" - :asset/physical-delete "Remove the file too (notice it can't be restored)" - :asset/align "Align" - :asset/align-left "Align left" - :asset/align-center "Align center" - :asset/align-right "Align right" - :color/gray "Gray" - :color/red "Red" - :color/yellow "Yellow" - :color/green "Green" - :color/blue "Blue" - :color/purple "Purple" - :color/pink "Pink" - :editor/copy "Copy" - :editor/cut "Cut" - :editor/expand-block-children "Expand all" - :editor/collapse-block-children "Collapse all" - :editor/delete-selection "Delete selected blocks" - :editor/cycle-todo "Rotate the TODO state" - :dev/show-page-data "(Dev) Show page data" - :dev/show-block-data "(Dev) Show block data" - :dev/show-block-ast "(Dev) Show block AST" - :content/copy-export-as "Copy / Export as.." - :content/copy-block-url "Copy block URL" - :content/copy-block-ref "Copy block ref" - :content/copy-ref "Copy this reference" - :content/delete-ref "Delete this reference" - :content/replace-with-text "Replace with text" - :content/replace-with-embed "Replace with embed" - :content/open-in-sidebar "Open in sidebar" - :content/click-to-edit "Click to edit" - :context-menu/make-a-flashcard "Make a Flashcard" - :context-menu/toggle-number-list "Toggle number list" - :context-menu/set-icon "Set icon" - :settings-page/ai "AI" - :settings-page/tab-ai "AI" - :settings-page/enable-mcp-server "MCP Server" - :settings-page/enable-mcp-server-desc "Enable MCP Server to allow commmunication with local AI applications. MCP Server depends on HTTP API server." - :settings-page/edit-config-edn "Edit config.edn" - :settings-page/edit-global-config-edn "Edit global config.edn" - :settings-page/edit-custom-css "Edit custom.css" - :settings-page/edit-export-css "Edit export.css" - :settings-page/custom-configuration "Custom configuration" - :settings-page/custom-global-configuration "Custom global configuration" - :settings-page/theme-light "light" - :settings-page/theme-dark "dark" - :settings-page/theme-system "system" - :settings-page/custom-theme "Custom theme" - :settings-page/export-theme "Export theme" - :settings-page/show-brackets "Show brackets" - :settings-page/wide-mode "Wide mode" - :settings-page/editor-font "Font" - :settings-page/accent-color "Accent color" - :settings-page/accent-color-alert "Choosing an accent color may override any theme you have selected." - :settings-page/spell-checker "Spell checker" - :settings-page/auto-updater "Auto updater" - :settings-page/disable-sentry "Send usage data and diagnostics to Logseq" - :settings-page/disable-sentry-desc "Logseq will never collect your local graph database or sell your data." - :settings-page/preferred-outdenting "Logical outdenting" - :settings-page/preferred-outdenting-tip "The left side shows outdenting with the default setting, and the right shows outdenting with logical outdenting enabled " - :settings-page/preferred-outdenting-tip-more "→ Learn more" - :settings-page/show-full-blocks "Show all lines of a block reference" - :settings-page/auto-expand-block-refs "Expand block references automatically when zoom-in" - :settings-page/auto-expand-block-refs-tip "This option controls whether to expand the block references automatically when zoom-in." - :settings-page/custom-date-format "Preferred date format" - :settings-page/preferred-pasting-file-hint "When enabled, pasting an image from the internet will download and insert the image. When disabled, it will paste the link to the image." - :settings-page/preferred-pasting-file "Prefer pasting file" - :settings-page/enable-shortcut-tooltip "Enable shortcut tooltip" - :settings-page/enable-tooltip "Tooltips" - :settings-page/enable-journals "Journals" - :settings-page/enable-all-pages-public "All pages public when publishing" - :settings-page/home-default-page "Set the default home page" - :settings-page/clear-cache "Clear cache" - :settings-page/clear "Clear" - :settings-page/clear-cache-warning "Clearing the cache will discard open graphs. You will lose unsaved changes." - :settings-page/developer-mode "Developer mode" - :settings-page/developer-mode-desc "Developer mode helps contributors and extension developers test their integrations with Logseq more efficiently." - :settings-page/current-version "Current version" - :settings-page/tab-general "General" - :settings-page/tab-editor "Editor" - :settings-page/tab-keymap "Keymap" - :settings-page/tab-account "Account" - :settings-page/tab-advanced "Advanced" - :settings-page/tab-features "Features" - :settings-page/tab-collaboration "Collaboration" - :settings-page/tab-encryption "Encryption" - :settings-page/plugin-system "Plugins" - :settings-page/enable-flashcards "Flashcards" - :settings-page/network-proxy "Network proxy" - :settings-page/sync-server-url "Sync server URL" - :settings-page/sync-server-url-desc "Set a custom HTTPS sync server URL for self-hosted sync. Your Logseq authentication tokens will be sent to this server, so only use a trusted URL. Leave empty to use the official Logseq sync." - :settings-page/sync-server-url-saved "Sync server URL saved." - :settings-page/sync-server-url-cleared "Sync server URL cleared. Using official Logseq sync." - :settings-page/sync-server-url-default "Logseq sync (default)" - :settings-page/sync-server-url-reset "Reset to default" - :settings-page/login-prompt "To access new features before anyone else you must be an Open Collective Sponsor or Backer of Logseq and therefore log in first." - :settings-page/native-titlebar "Native title bar" - :settings-page/native-titlebar-desc "Enables the native window title bar on Windows and Linux." - :settings-page/check-for-updates "Check for updates" - :settings-page/checking "Checking ..." - :settings-page/revision "Revision: " - :settings-page/changelog "What's new?" - :settings-page/app-updated "Your app is up-to-date 🎉" - :settings-page/update-available "Found new release " - :settings-page/update-error-1 "⚠️ Oops, Something Went Wrong!" - :settings-page/update-error-2 " Please check out the " + :page/clear "Clear" + :page/clear-local-storage-desc "This does delete minor preferences like dark/light theme preference." + :page/cleared "Cleared!" + :page/contents "Contents" + :page/convert-to-tag "Convert to Tag" + :page/copy-url "Copy page URL" + :page/create "Create a new page" + :page/created-at "Created At" + :page/current-graph-as-sqlite-db "current graph as SQLite db" + :page/default-query-error "Failed default query:" + :page/delete "Delete page" + :page/go-back-home "Go back home" + :page/hide-properties "Hide properties" + :page/local-storage "local storage" + :page/logseq-is-having-a-problem "Logseq is having a problem. To try to get it back to a working state, please try the following safe steps in order:" + :page/make-private "Make it private" + :page/make-public "Make it public for publishing" + :page/moved-to-recycle "Node has been moved to Recycle" + :page/name "Page name" + :page/no-page-found-to-copy "No page found to copy" + :page/not-found "Page not found" + :page/not-found-desc "Oops! The page you're looking for doesn't exist." + :page/not-found-title "Page Not Found" + :page/not-found-warning "No page found" + :page/open-all-graphs-desc "You can also go to {{All graphs}} to switch to another graph." + :page/open-issue-desc "If these troubleshooting steps have not solved your problem, please {{open an issue}}." + :page/open-properties "Open properties" + :page/rebuild "Rebuild" + :page/relaunch "Relaunch" + :page/relaunch-desc "Quit and reopen the app." + :page/scheduled-and-deadline "Scheduled and Deadline" + :page/search-index "search index" + :page/send-db-for-debugging "You can send it to help@logseq.com for debugging." + :page/something-went-wrong "Something went wrong" + :page/step "Step {1}" + :page/the-app "the app" + :page/try "Try" + :page/unfavorite "Unfavorite page" + :page/unknown "Unknown page" + :page/updated-at "Updated At" - :settings-page/auto-chmod "Automatically change file permissions" - :settings-page/auto-chmod-desc "Disable to allow editing by multiple users with permissions granted by group membership." - :yes "Yes" + :page.convert/block-parent-not-page "Can't convert this block to page since its parent is not a page." + :page.convert/cant-be-block "Page \"{1}\" cannot be converted to a block." + :page.convert/cant-be-block-has-children "Page \"{1}\" cannot be converted to a block because it has page children." + :page.convert/cant-be-block-move-first "Page \"{1}\" cannot be converted to a block, please move it to another page first." + :page.convert/page-to-tag-action "Convert \"{1}\" to tag" + :page.convert/page-to-tag-built-in "Built-in pages can't be used as tags" + :page.convert/page-to-tag-duplicate "A tag with the name \"{1}\" already exists." + :page.convert/page-to-tag-namespaced "Namespaced pages can't be tags" + :page.convert/property-value-to-page "Can't convert property value to page." + :page.convert/tag-to-page-action "Convert Tag to Page" + :page.convert/tag-to-page-built-in "Built-in tags can't be converted to pages" + :page.convert/tag-to-page-confirm-desc "Converting a tag to page also removes its tag properties and its tag from all nodes tagged with it. Are you ok with that?" + :page.convert/tag-to-page-duplicate "A page with the name \"{1}\" already exists." + :page.convert/tag-to-page-has-children "This tag cannot be converted because it has tag children. All tag children must be removed or converted before converting this tag." - :cancel "Cancel" - :close "Close" - :delete "Delete" - :save "Save" - :type "Type" - :host "Host" - :port "Port" - :flashcards/modal-welcome-title "Time to create a card!" - :flashcards/modal-welcome-desc-1 "You can add \"{1}\" to any block to turn it into a card or trigger \"/cloze\" to add some clozes." - :flashcards/modal-finished "Congrats, you've reviewed all the cards for this query, see you next time! 💯" - :flashcards/modal-btn-show-answers "Show answers" - :flashcards/modal-btn-hide-answers "Hide answers" - :flashcards/modal-btn-show-clozes "Show clozes" + :page.delete/batch-confirm-title "Are you sure you want to delete these pages? Properties and tags will be permanently deleted and pages will be moved to Recycle." + :page.delete/confirm-title "Are you sure you want to delete this page?" + :page.delete/permanent-confirm-title "Are you sure you want to permanently delete this page?" + :page.delete/success "Page \"{1}\" was deleted successfully!" + :page.delete/total "Total: {1}" + :page.delete/warning "These pages had their content deleted but were unable to be deleted: {1}. See javascript console for more details." - :home "Home" - :new-page "New page:" - :new-tag "New tag:" - :graph "Graph" - :graph/all-graphs "All graphs" - :graph/local-graphs "Local graphs:" - :graph/remote-graphs "Remote graphs:" - :graph/shared-graphs "Shared by others:" - :export "Export" - :export-graph "Export graph" - :export-page "Export page" - :export-markdown "Export as standard Markdown (no block properties)" - :export-public-pages "Export public pages" - :export-db-edn "Export EDN file" - :export-sqlite-db "Export SQLite DB" - :export-zip "Export both SQLite DB and assets" - :export-transparent-background "Transparent background" - :export-copy-to-clipboard "Copy to clipboard" - :export-copied-to-clipboard "Copied to clipboard!" - :export-save-to-file "Save to file" - :all-graphs "All graphs" - :all-pages "Pages" - ;; E.g. 1 Page or 2 Pages - :all-pages/table-title (fn [total] (str total (if (= total 1) " Page" " Pages"))) - :all-pages/failed-to-delete-pages "These pages had their content deleted but were unable to be deleted: {1}. See javascript console for more details." - :all-files "All files" - :all-journals "All journals" - :settings "Settings" - :settings-of-plugins "Plugins" - :plugins "Plugins" - :themes "Themes" - :appearance "Appearance" - :relaunch-confirm-to-work "Should relaunch app to make it work. Do you want to restart it now?" - :import-notes "Import existing notes" - :import "Import" - :importing "Importing" - :help-shortcut-title "Click to check shortcuts and other tips" - :loading "Loading..." - :login "Login" - :logout "Logout" - :download "Download" - :language "Language" - :remove-background "Remove background" - :remove-heading "Remove heading" - :heading "Heading {1}" - :auto-heading "Auto heading" - :toggle-theme "Toggle theme" - - :help/shortcut-page-title "Keyboard shortcuts" - - :plugin/installed "Installed" - :plugin/installed-plugin "Installed plugin: {1}" - :plugin/not-installed "Not installed" - :plugin/installing "Installing" - :plugin/install "Install" - :plugin/reload "Reload" - :plugin/update "Update" - :plugin/update-plugin "Update plugin: {1} - {2}" - :plugin/check-update "Check update" - :plugin/check-all-updates "Check all updates" - :plugin/found-updates "New updates" - :plugin/found-n-updates "Found {1} updates" - :plugin/update-all-selected "Update all of selected" - :plugin/all-updated "All updated!" - :plugin/updates-downloading "Downloading updates" - :plugin/refresh-lists "Refresh lists" - :plugin/enabled "Enabled" - :plugin/disabled "Disabled" - :plugin/update-available "Update available" - :plugin/updating "Updating" - :plugin/uninstall "Uninstall" - :plugin/marketplace "Marketplace" - :plugin/downloads "Downloads" - :plugin/date-added "Newly added" - :plugin/supports-db "Supports DB graphs" - :plugin/popular "Popular" - :plugin/stars "Stars" - :plugin/title "Title ({1})" - :plugin/all "All" - :plugin/unpacked "Unpacked" - :plugin/delete-alert "Are you sure you want to uninstall the plugin [{1}]?" - :plugin/open-settings "Open settings" - :plugin/open-package "Open package" - :plugin/report-security "Report plugin" - :plugin/load-unpacked "Load unpacked plugin" - :plugin/restart "Restart App" - :plugin/unpacked-tips "Select the plugin directory" - :plugin/contribute "✨ Write and submit new plugin" - :plugin/up-to-date "It's up to date {1}" - :plugin/custom-js-alert "Found the custom.js file, is it allowed to execute? (If you don't understand the content of this file, it is recommended not to allow execution, which has certain security risks.)" - :plugin/security-warning "Plugins can access your graph and your local files, issue network requests. - They can also cause data corruption or loss. We're working on proper access rules for your graphs. - Meanwhile, make sure you have regular backups of your graphs and only install the plugins when you can read and - understand the source code." - :plugin/search-plugin "Search plugins" - :plugin/open-preferences "Open Preferences" - :plugin/open-logseq-dir "Open" - :plugin/remote-error "Remote error: " - :plugin/checking-for-updates "Checking for plugin updates ..." - :plugin/list-of-updates "Plugin Updates: " - :plugin/auto-check-for-updates "Auto check for updates" - :plugin/load-from-web-url "Load plugin from web url" - :plugin.install-from-file/menu-title "Install from plugins.edn" - :plugin.install-from-file/title "Install plugins from plugins.edn" - :plugin.install-from-file/notice "The following plugins will replace your plugins:" - :plugin.install-from-file/success "All plugins installed!" + :page.validation/cant-set-built-in-tags "New page can't set built-in tags: {1}" + :page.validation/duplicate "Another page named \"{1}\" already exists for tags: {2}." + :page.validation/name-blank "Page name can't be blank." + :page.validation/name-no-hash "Page name can't include \"#\"." + :page.validation/name-no-slash "Page name can't include \"/\"." + :page.validation/parents-must-be-pages "Cannot create this page unless all parents are pages." + :pdf/annotations-page "Annotations page" + :pdf/area-highlight-shortcut "Area highlight ({1})" + :pdf/auto-fit "Auto fit" + :pdf/auto-open-context-menu "Auto open context menu for selections" :pdf/copy-ref "Copy ref" :pdf/copy-text "Copy text" - :pdf/linked-ref "Linked references" - :pdf/toggle-dashed "Dashed style for area highlight" - :pdf/hl-block-colored "Colored label for highlight block" - :pdf/auto-open-context-menu "Auto open context menu for selections" + :pdf/corrupted-file-error "Error: {1}\nIs this .pdf file corrupted?\nPlease confirm with external pdf viewer." :pdf/doc-metadata "Document metadata" + :pdf/enter-to-search "Enter to search" + :pdf/find-results "{1} of {2} matches (\"{3}\")" + :pdf/generic-error "Error: {1}\n{2}\nPlease confirm with pdf file resource." + :pdf/highlight-mode "Highlight mode" + :pdf/highlights "Highlights" + :pdf/hl-block-colored "Colored label for highlight block" + :pdf/linked-ref "Linked references" + :pdf/load-highlights-file-error "Error: failed to load the highlights file: \"{1}\". \n{2}" + :pdf/missing-file-error "Error: {1}\n Is this the correct path?" + :pdf/more-settings "More settings" + :pdf/no-outlines "No outlines" + :pdf/not-found "Not found." + :pdf/open-in-app-window "Open in app window" + :pdf/open-in-external-window "Open in external window" + :pdf/outline "Outline" + :pdf/page-label "Page {1}" + :pdf/password-protected-desc "This document is password protected. Please enter a password:" + :pdf/password-required "Password required" + :pdf/search "Search" + :pdf/search-placeholder "search" + :pdf/toggle-dashed "Dashed style for area highlight" + :pdf/viewer "viewer pdf" + :pdf/zoom-in "Zoom in" + :pdf/zoom-out "Zoom out" - :updater/new-version-install "A new version has been downloaded." - :updater/quit-and-install "Restart to install" + :plugin/all "All" + :plugin/auto-update-check "Auto check for updates" + :plugin/auto-update-check-feedback "Auto check for updates: {1}!" + :plugin/check-all-updates "Check all updates" + :plugin/check-update "Check update" + :plugin/checked "Checked" + :plugin/checking-for-updates "Checking for plugin updates ..." + :plugin/contribute "✨ Write and submit new plugin" + :plugin/custom-js-alert "Found the custom.js file, is it allowed to execute? (If you don't understand the content of this file, it is recommended not to allow execution, which has certain security risks.)" + :plugin/date-added "Newly added" + :plugin/delete-alert "Are you sure you want to uninstall the plugin [{1}]?" + :plugin/disable-for-performance-feedback "The plugin {1} is disabled." + :plugin/disable-now "Disable now" + :plugin/disabled "Disabled" + :plugin/does-not-support-db "Does not support DB graphs" + :plugin/downloads "Downloads" + :plugin/empty "Nothing Found." + :plugin/enabled "Enabled" + :plugin/existed-package "Existed plugin package ({1})." + :plugin/fatal-error "Fatal: {1}" + :plugin/found-n-updates "Found {1} updates" + :plugin/found-updates "New updates" + :plugin/install "Install" + :plugin/install-error "Install failed: {1}\n{2}" + :plugin/installed "Installed" + :plugin/installed-plugin "Installed plugin: {1}" + :plugin/installing "Installing" + :plugin/invalid-github-repo-url "Invalid GitHub repo url" + :plugin/invalid-package "Illegal Logseq plugin package." + :plugin/invalid-plugins-edn "Invalid plugins.edn provided. See javascript console for specific errors" + :plugin/list-of-updates "Plugin Updates: " + :plugin/load-from-web-url "Load plugin from web url" + :plugin/load-plugin-indicator "Load plugin: {1}..." + :plugin/load-unpacked "Load unpacked plugin" + :plugin/loading-indicator "LOADING" + :plugin/malformed-plugins-edn "Malformed plugins.edn provided. Please check the file has correct edn syntax." + :plugin/marketplace "Marketplace" + :plugin/new-registered "New plugin registered!" + :plugin/no-settings-schema "No Settings Schema!" + :plugin/not-installed "Not installed" + :plugin/open-logseq-dir "Open" + :plugin/open-package "Open package" + :plugin/open-preferences "Open Preferences" + :plugin/open-settings "Open settings" + :plugin/perf-tip "This plugin {1} takes too long to load, affecting the application startup time and potentially causing other plugins to fail to load." + :plugin/popular "Popular" + :plugin/proxy-check-success "Success! Status {1} in {2}ms." + :plugin/readme-empty-warning "No README content." + :plugin/refresh-lists "Refresh lists" + :plugin/reload "Reload" + :plugin/remote-error "Remote error: {1}" + :plugin/report-modal-desc "If any plugin is unavailable or you think it contains malicious code, please email {1}. Mention the name of the plugin and the URL of its GitHub repository. The Logseq team usually responds within a business day." + :plugin/report-security "Report plugin" + :plugin/restart "Restart App" + :plugin/search-plugin "Search plugins" + :plugin/security-warning "Plugins can access your graph and your local files, issue network requests.\nThey can also cause data corruption or loss. We're working on proper access rules for your graphs.\nMeanwhile, make sure you have regular backups of your graphs and only install the plugins when you can read and\nunderstand the source code." + :plugin/setting-not-handled "#Not Handled# {1}" + :plugin/settings-schema-error "Settings schema Error!" + :plugin/stars "Stars" + :plugin/supports-db "Supports DB graphs" + :plugin/title "Title ({1})" + :plugin/uninstall "Uninstall" + :plugin/unpacked "Unpacked" + :plugin/unpacked-tips "Select the plugin directory" + :plugin/up-to-date "It's up to date {1}" + :plugin/update "Update" + :plugin/update-all-selected "Update all of selected" + :plugin/update-all-success "All updated!" + :plugin/update-available "Update available" + :plugin/update-plugin "Update plugin: {1} - {2}" + :plugin/updates-downloading "Downloading updates" + :plugin/updating "Updating" - :tips/all-done "All Done!" + :plugin.install-from-file/menu-title "Install from plugins.edn" + :plugin.install-from-file/notice "The following plugins will replace your plugins:" + :plugin.install-from-file/success "All plugins installed!" + :plugin.install-from-file/title "Install plugins from plugins.edn" + + :plugin.install-from-web-url/effect-label "effect" + :plugin.install-from-web-url/repo-url-placeholder "GitHub repo url" + :plugin.install-from-web-url/supports-note "URLs support both GitHub repositories and local development servers. (For Examples: {1}, {2})" + :plugin.install-from-web-url/theme-label "theme" + + :plugin.package-config/detach-desc "Removing it only detaches the plugin from Logseq and keeps the source folder untouched." + :plugin.package-config/parse-error "Failed to parse the plugin package config." + :plugin.package-config/remove-error "Failed to remove the broken plugin." + :plugin.package-config/remove-external-success "Removed the broken plugin from the plugin list." + :plugin.package-config/remove-installed-success "Removed broken plugin \"{1}\"." + + :plugin.proxy/direct "Direct" + :plugin.proxy/system "System" + :plugin.proxy/test-url "Test URL" + :plugin.proxy/testing "Testing" + + :plugin.settings/edit-settings-json "Edit settings.json" + :plugin.settings/exit-code-mode "Exit code mode" + :plugin.settings/title "Plugins" + + :plugin.themes/default-desc "Logseq default {1} theme." + :plugin.themes/default-name "Default {1} Theme" + :plugin.themes/group "{1} themes" + :plugin.themes/light-and-dark "light & dark themes" + + :profiler/input-fn-placeholder "input fn name here" + :profiler/unregister "Unregister" + + :property/add-choice "Add choice" + :property/add-choices "Add choices" + :property/add-description "Add description" + :property/add-new "Add property" + :property/add-or-change "Add or change property" + :property/available-choices "Available choices" + :property/change-tooltip "Change {1}" + :property/checkbox-state-mapping "Checkbox state mapping" + :property/children-count "Children ({1})" + :property/choices-count "{1} choices" + :property/choose-tag "Choose tag" + :property/choose-tags "Choose tags" + :property/clear-value "Clear" + :property/configure "Configure property" + :property/convert-page-to-property "Convert \"{1}\" to property" + :property/create-error "Property failed to create. Please try a different property name." + :property/default-value "Default value" + :property/delete-from-node "Delete property from node" + :property/delete-from-node-confirm "Are you sure you want to delete the property from this node?" + :property/delete-from-tag "Delete property from tag" + :property/delete-from-tag-confirm "Are you sure you want to delete the property from this tag?" + :property/description-placeholder "description" + :property/drag-to-reorder "Drag && Drop to reorder" + :property/existing-values "Existing values:" + :property/go-to-this-property "Go to this property" + :property/hidden-properties "Hidden properties" + :property/hide-by-default "Hide by default" + :property/hide-choice-for-tag "Hide choice for this tag" + :property/hide-empty-value "Hide empty value" + :property/hide-for-tag "Hide for #{1}" + :property/hide-hidden-choices "Hide hidden choices" + :property/map-checked-to "Map checked to" + :property/map-unchecked-to "Map unchecked to" + :property/more-settings "More settings" + :property/multiple-values "Multiple values" + :property/multiple-values-confirm "This action cannot be undone. Do you want to change this property to have multiple values?" + :property/name "Property name" + :property/name-placeholder "name" + :property/nodes-with-property "Nodes with property" + :property/overdue "Overdue" + :property/private-built-in-not-usable "This is a private built-in property that can't be used." + :property/select-choice "Select a choice" + :property/select-property-placeholder "Select a property" + :property/select-type-placeholder "Select a property type" + :property/self-reference "Self reference" + :property/set-default-choice "Set as default choice" + :property/set-default-value "Set default value" + :property/set-icon "Set Icon" + :property/set-placeholder "Set {1}" + :property/set-property "Set property" + :property/set-tags "Set tags" + :property/set-value "Set value" + :property/show-as-checkbox-on-node "Show as checkbox on node" + :property/show-as-checkbox-on-tagged-nodes "Show as checkbox on tagged nodes" + :property/show-hidden-choices "Show hidden choices" + :property/skip-choosing-tag "Skip choosing tag" + :property/specify-node-tags "Specify node tags" + :property/title-placeholder "title" + :property/type "Property type" + :property/type-change-warning "Changing the property type clears some property configurations." + :property/type-checkbox "Checkbox" + :property/type-date "Date" + :property/type-datetime "DateTime" + :property/type-locked-help "The type of this property is locked once you start using it. This is to make sure all your existing information stays correct if the property type is changed later. To unlock, all uses of a property must be deleted." + :property/type-node "Node" + :property/type-number "Number" + :property/type-text "Text" + :property/type-url "URL" + :property/ui-position "UI position" + :property/ui-position-block-below "Below the block" + :property/ui-position-block-left "Beginning of the block" + :property/ui-position-block-right "End of the block" + :property/ui-position-properties "Block properties" + :property/unset-property "Unset property" + :property/update-success "Property updated!" + + :property.built-in/alias "Alias" + :property.built-in/asset "Asset" + :property.built-in/asset-align "Asset alignment" + :property.built-in/asset-checksum "File checksum" + :property.built-in/asset-external-file-name "External file name" + :property.built-in/asset-external-url "External URL" + :property.built-in/asset-height "Image height" + :property.built-in/asset-last-visit-page "Last visit page" + :property.built-in/asset-remote-metadata "File remote metadata" + :property.built-in/asset-resize-metadata "Asset resize metadata" + :property.built-in/asset-size "File Size" + :property.built-in/asset-type "File Type" + :property.built-in/asset-width "Image width" + :property.built-in/background-color "Background color" + :property.built-in/built-in "Built in?" + :property.built-in/checkbox-display-properties "Properties displayed as checkbox" + :property.built-in/choice-checkbox-state "Choice checkbox state" + :property.built-in/choice-classes "Choice classes" + :property.built-in/choice-exclusions "Choice exclusions" + :property.built-in/class-bidirectional-property-title "Bidirectional property title" + :property.built-in/class-enable-bidirectional "Enable bidirectional properties" + :property.built-in/class-extends "Extends" + :property.built-in/class-hide-from-node "Hide from Node" + :property.built-in/class-properties "Tag Properties" + :property.built-in/classes "Property classes" + :property.built-in/closed-value-property "Closed value property" + :property.built-in/code-lang "Code Mode" + :property.built-in/collapsed "Node collapsed?" + :property.built-in/created-at "Node created at" + :property.built-in/created-by-ref "Node created by" + :property.built-in/created-from-property "Created from property" + :property.built-in/deadline "Deadline" + :property.built-in/default-value "Default value" + :property.built-in/deleted-at "Deleted at" + :property.built-in/deleted-by-ref "Deleted by" + :property.built-in/description "Description" + :property.built-in/enable-history "Enable property history" + :property.built-in/exclude-from-graph-view "Excluded from Graph view?" + :property.built-in/fsrs-due "Due" + :property.built-in/fsrs-state "State" + :property.built-in/heading "Heading" + :property.built-in/hide "Hide this property or page" + :property.built-in/hide-empty-value "Hide empty value" + :property.built-in/history-block "History block" + :property.built-in/history-property "History property" + :property.built-in/history-ref-value "History value" + :property.built-in/history-scalar-value "History scalar value" + :property.built-in/icon "Icon" + :property.built-in/journal-day "Journal date" + :property.built-in/journal-title-format "Title Format" + :property.built-in/link "Node links to" + :property.built-in/linked-references-excludes "Excluded references" + :property.built-in/linked-references-includes "Included references" + :property.built-in/ls-type "LS type" + :property.built-in/node-display-type "Node Display Type" + :property.built-in/order "Node order" + :property.built-in/order-list-type "List type" + :property.built-in/page "Node page" + :property.built-in/page-tags "Page Tags" + :property.built-in/parent "Node parent" + :property.built-in/priority "Priority" + :property.built-in/public "Property public?" + :property.built-in/publish-published-url "Published URL" + :property.built-in/publishing-public "Publishing Public?" + :property.built-in/query "Query" + :property.built-in/reaction-emoji-id "Reaction emoji" + :property.built-in/reaction-target "Reaction target" + :property.built-in/recycle-original-order "Recycle original order" + :property.built-in/recycle-original-page "Recycle original page" + :property.built-in/recycle-original-parent "Recycle original parent" + :property.built-in/refs "Node references" + :property.built-in/repeat-checked-property "Repeating Checked Property" + :property.built-in/repeat-recur-frequency "Repeating recur frequency" + :property.built-in/repeat-recur-unit "Repeating recur unit" + :property.built-in/repeat-repeated "Node Repeats?" + :property.built-in/repeat-temporal-property "Repeating Temporal Property" + :property.built-in/scalar-default-value "Non ref type default value" + :property.built-in/scheduled "Scheduled" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Reference to large block title stored in remote object storage" + :property.built-in/table-filters "View filters" + :property.built-in/table-hidden-columns "View hidden columns" + :property.built-in/table-ordered-columns "View ordered columns" + :property.built-in/table-pinned-columns "Table view pinned columns" + :property.built-in/table-sized-columns "View columns settings" + :property.built-in/table-sorting "View sorting" + :property.built-in/tags "Tags" + :property.built-in/template-applied-to "Apply template to tags" + :property.built-in/title "Node title" + :property.built-in/type "Property type" + :property.built-in/ui-position "Property position" + :property.built-in/updated-at "Node updated at" + :property.built-in/used-template "Used template" + :property.built-in/user-avatar "User Avatar" + :property.built-in/user-email "User Email" + :property.built-in/user-name "User Name" + :property.built-in/value "Property value" + :property.built-in/view-context "Property view context" + :property.built-in/view-feature-type "View Feature Type" + :property.built-in/view-for "This view belongs to" + :property.built-in/view-group-by-property "View group by property" + :property.built-in/view-sort-groups-by-property "View sort groups by" + :property.built-in/view-sort-groups-desc "View sort groups DESC" + :property.built-in/view-type "View Type" + + :property.choice/already-exists "Choice already exists." + :property.choice/cant-delete-built-in "The choice can't be deleted because it's built-in." + :property.choice/invalid "Invalid choice \"{1}\" for this property: {2}" + + :property.color/blue "blue" + :property.color/green "green" + :property.color/purple "purple" + :property.color/red "red" + :property.color/yellow "yellow" + + :property.priority/high "High" + :property.priority/low "Low" + :property.priority/medium "Medium" + :property.priority/urgent "Urgent" + + :property.repeat/date "Repeat date" + :property.repeat/datetime "Repeat datetime" + :property.repeat/every "Every" + :property.repeat/is-label "is:" + :property.repeat/task "Repeat task" + :property.repeat/when "When" + + :property.repeat-recur-unit/day "Day" + :property.repeat-recur-unit/hour "Hour" + :property.repeat-recur-unit/minute "Minute" + :property.repeat-recur-unit/month "Month" + :property.repeat-recur-unit/week "Week" + :property.repeat-recur-unit/year "Year" + + :property.status/backlog "Backlog" + :property.status/canceled "Canceled" + :property.status/doing "Doing" + :property.status/done "Done" + :property.status/in-review "In Review" + :property.status/todo "Todo" + + :property.validation/cant-convert-to-number "Can't convert \"{1}\" to a number." + :property.validation/cant-remove-required "Can't remove required property." + :property.validation/cant-set-self-value "Can't set this block itself as own property value." + :property.validation/duplicate "Another property named \"{1}\" already exists." + :property.validation/invalid-name "This is an invalid property name. A property name cannot start with page reference characters '#' or '[['." + :property.validation/invalid-value "Property \"{1}\" has invalid value: {2}" + :property.validation/many-to-one "This property can't change from multiple values to one value because it has existing data." + :property.validation/protected "Property is protected and can't be deleted." + + :property.view-type/gallery "Gallery View" + :property.view-type/list "List View" + :property.view-type/table "Table View" + + :publish/action "Publish" + :publish/dialog-desc "Optionally protect this page with a password. Leave empty for public access." + :publish/dialog-title "Publish page" + :publish/invalid-page-error "Publish failed: invalid page." + :publish/password-optional-placeholder "Optional password" + :publish/publish-error "Publish failed." + :publish/published-to "Published to: {1}" + :publish/publishing "Publishing..." + :publish/unpublish "Unpublish" + :publish/unpublish-error "Unpublish failed." + :publish/unpublish-missing-page-id "Unpublish failed: missing page id." + :publish/unpublished "Unpublished." + + :query/advanced-results "Advanced query results" + :query/custom-view-error "Custom view error: {1}" + :query/error "Query error:" + :query/examples-desc "Check more examples at {{Queries documentation}}." + :query/examples-title "Query examples:" + :query/results-for "Results for {1}" + + :query.builder/add-filter-or-operator-placeholder "Add filter/operator" + :query.builder/between-end-label "End date" + :query.builder/between-journal-label "between: {1} ~ {2}" + :query.builder/between-start-label "Start date" + :query.builder/created-label "Created" + :query.builder/filter "Filter" + :query.builder/filter-full-text-search-label "Full text search" + :query.builder/filter-page-label "Page" + :query.builder/filter-page-reference-label "Page reference" + :query.builder/filter-sample-label "Sample" + :query.builder/operator-and-label "and" + :query.builder/operator-not-label "not" + :query.builder/replace-with-label "Replace with:" + :query.builder/search-label "Search: {1}" + :query.builder/show-built-in-properties "Show built-in properties" + :query.builder/unwrap-operator "Unwrap" + :query.builder/updated-label "Updated" + :query.builder/wrap-filter-with-label "Wrap this filter with:" + + :reference/blocks "Block references" + :reference/copy "Copy this reference" + :reference/delete "Delete this reference" + :reference/page-filter "Page filter" + :reference/replace-with-embed "Replace with embed" + :reference/replace-with-text "Replace with text" + + :reference.filter/directions "Click to include and shift-click to exclude. Click again to remove." + :reference.filter/excludes "Excludes: " + :reference.filter/includes "Includes: " + :reference.filter/search-placeholder "Search in linked pages" + :reference.filter/title "Filter" + + :search/blank-input "Blank input" + :search/full-text-placeholder "Full text search" + :search/index-progress "Indexing {1}%" + :search/indices-rebuilt-success "Search indices rebuilt successfully!" + :search/no-result "No matched result" + :search/result-count (fn [n] (str n (if (> n 1) " results" " result"))) + + :search.find-in-page/input-placeholder "Find in page" + :search.find-in-page/match-case "Match case" + :search.find-in-page/next-result "Next result" + :search.find-in-page/previous-result "Previous result" :select/default-prompt "Select one" :select/default-select-multiple "Select one or multiple" - :select.graph/prompt "Select a graph" - :select.graph/empty-placeholder-description "No matched graphs. Do you want to add another one?" - :select.graph/add-graph "Yes, add another graph" + :select/new-option "+ New option: {1}" - :notification/clear-all "Clear all" + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "MCP URL copied to clipboard!" + :server/start "Start server" + :server/stop "Stop server" + :server/title "HTTP API server" + + :server.config/auto-start-label "Auto start server with the app launched" + :server.config/port-label "Port (1 ~ 65535)" + :server.config/reset "Reset" + :server.config/save-and-apply "Save & Apply" + :server.config/title "Server configurations" + + :server.status/closed "Closed" + :server.status/closing "Closing" + :server.status/error "Error" + :server.status/running "Running" + :server.status/starting "Starting" + :server.status/stopped "Stopped" + + :server.token/add-new "+ Add new token" + :server.token/name-placeholder "name" + :server.token/regenerate-value "Regenerate token value" + :server.token/title "Authorization tokens" + :server.token/update-success "Update tokens successfully!" + :server.token/value-placeholder "value" + + :settings/account "Account" + :settings/advanced "Advanced" + :settings/ai "AI" + :settings/collaboration "Collaboration" + :settings/editor "Editor" + :settings/encryption "Encryption" + :settings/features "Features" + :settings/general "General" + :settings/keymap "Keymap" + :settings/plugins "Plugins" + + :settings.account/storage-usage "{1}GB of {2}GB total storage ({3})" + :settings.account/synced-graphs "{1} of {2} synced graphs ({3})" + + :settings.advanced/auto-chmod "Automatically change file permissions" + :settings.advanced/auto-chmod-desc "Disable to allow editing by multiple users with permissions granted by group membership." + :settings.advanced/auto-updater "Auto updater" + :settings.advanced/developer-mode "Developer mode" + :settings.advanced/developer-mode-desc "Developer mode helps contributors and extension developers test their integrations with Logseq more efficiently." + :settings.advanced/disable-sentry "Send usage data and diagnostics to Logseq" + :settings.advanced/disable-sentry-desc "Logseq will never collect your local graph database or sell your data." + :settings.advanced/network-proxy "Network proxy" + + :settings.ai/enable-mcp-server "MCP Server" + :settings.ai/enable-mcp-server-desc "Enable MCP Server to allow commmunication with local AI applications. MCP Server depends on HTTP API server." + + :settings.editor/auto-expand-block-refs "Expand block references automatically when zoom-in" + :settings.editor/auto-expand-block-refs-tip "This option controls whether to expand the block references automatically when zoom-in." + :settings.editor/custom-date-format "Preferred date format" + :settings.editor/enable-all-pages-public "All pages public when publishing" + :settings.editor/enable-shortcut-tooltip "Enable shortcut tooltip" + :settings.editor/enable-tooltip "Tooltips" + :settings.editor/preferred-outdenting "Logical outdenting" + :settings.editor/preferred-outdenting-tip "The left side shows outdenting with the default setting, and the right shows outdenting with logical outdenting enabled " + :settings.editor/preferred-outdenting-tip-more "→ Learn more" + :settings.editor/preferred-pasting-file "Prefer pasting file" + :settings.editor/preferred-pasting-file-hint "When enabled, pasting an image from the internet will download and insert the image. When disabled, it will paste the link to the image." + :settings.editor/show-brackets "Show brackets" + :settings.editor/show-full-blocks "Show all lines of a block reference" + :settings.editor/spell-checker "Spell checker" + :settings.editor/wide-mode "Wide mode" + + :settings.features/enable-flashcards "Flashcards" + :settings.features/enable-journals "Journals" + :settings.features/home-default-page "Set the default home page" + :settings.features/home-default-page-update-success "Home default page updated successfully!" + :settings.features/journals-enable-success "Journals enabled" + :settings.features/login-prompt "To access new features before anyone else you must be an Open Collective Sponsor or Backer of Logseq and therefore log in first." + :settings.features/page-not-found "The page \"{1}\" doesn't exist yet. Please create that page first, and then try again." + :settings.features/plugin-system "Plugins" + + :settings.general/accent-color "Accent color" + :settings.general/accent-color-alert "Choosing an accent color may override any theme you have selected." + :settings.general/accent-color-logseq "Logseq classic color" + :settings.general/accent-color-none-desc "Cancel accent color. This is currently in beta stage and mainly used for compatibility with custom themes." + :settings.general/changelog "What's new?" + :settings.general/check-for-updates "Check for updates" + :settings.general/current-revision-label "Current Revision: " + :settings.general/current-version "Current version" + :settings.general/custom-configuration "Custom configuration" + :settings.general/custom-global-configuration "Custom global configuration" + :settings.general/custom-theme "Custom theme" + :settings.general/edit-config-edn "Edit config.edn" + :settings.general/edit-custom-css "Edit custom.css" + :settings.general/edit-export-css "Edit export.css" + :settings.general/edit-global-config-edn "Edit global config.edn" + :settings.general/editor-font "Font" + :settings.general/editor-font-set-global "Set as global font family" + :settings.general/export-theme "Export theme" + :settings.general/language "Language" + :settings.general/native-titlebar "Native title bar" + :settings.general/native-titlebar-desc "Enables the native window title bar on Windows and Linux." + :settings.general/refresh-required-feedback "Please refresh the app for this change to take effect" + :settings.general/release-channel "release channel" + :settings.general/revision "Revision: {1}" + :settings.general/theme-dark "dark" + :settings.general/theme-light "light" + :settings.general/theme-system "system" + + :settings.sync-server/clear-success "Sync server URL cleared. Using official Logseq Sync." + :settings.sync-server/reset "Reset to default" + :settings.sync-server/save-success "Sync server URL saved." + :settings.sync-server/url "Sync Server URL" + :settings.sync-server/url-desc "Set a custom HTTPS sync server URL for self-hosted sync. Your Logseq authentication tokens will be sent to this server, so only use a trusted URL. Leave empty to use the official Logseq Sync." + :settings.sync-server/url-invalid-error "URL must start with https:// or http://" + + :shell/input-command-title "Input command" :shortcut.category/basics "Basics" + :shortcut.category/block-command-editing "Block command editing" + :shortcut.category/block-editing "Block editing general" + :shortcut.category/block-selection "Block selection (press Esc to quit selection)" :shortcut.category/formatting "Formatting" :shortcut.category/navigating "Navigation" - :shortcut.category/block-editing "Block editing general" - :shortcut.category/block-command-editing "Block command editing" - :shortcut.category/block-selection "Block selection (press Esc to quit selection)" - :shortcut.category/toggle "Toggle" :shortcut.category/others "Others" :shortcut.category/plugins "Plugins" + :shortcut.category/toggle "Toggle" - :keymap/all "All" - :keymap/disabled "Disabled" - :keymap/unset "Unset" - :keymap/custom "Custom" - :keymap/keystroke-filter "Keystroke filter" - :keymap/search-placeholder "Search shortcuts..." - :keymap/search-by-keys "Search by keys" - :keymap/press-keys-to-filter "Press keys to filter\u2026" - :keymap/press-a-shortcut "Press a shortcut\u2026" - :keymap/clear "Clear" - :keymap/reset "Reset" - :keymap/undo "Undo" - :keymap/reassign "Reassign" - :keymap/reassign-tooltip "Remove from the other action and assign here" - :keymap/used-by "Used by " - :keymap/already-bound "Already bound to this action" - :keymap/also-used-for "Also used for " - :keymap/in-context " in " - :keymap/reassigned-from "Reassigned from " - :keymap/shortcut-added "Shortcut added" - :keymap/shortcut-removed "Shortcut removed" - :keymap/reset-to-default "Reset to default" - :keymap/esc-is-reserved "Esc is reserved" - :keymap/no-matching-shortcuts "No matching shortcuts" - :keymap/chord-separator "then" - :keymap/hint-remove "Remove " - :keymap/hint-close "Close " - :keymap/hint-cancel "Cancel " - :keymap/hint-reassign "Reassign " - :keymap/deactivates-chord "Deactivates " - :keymap/deactivates-chords "Deactivates {1} chord shortcuts" + :sidebar.left/favorites "Favorites" + :sidebar.left/navigations "Navigations" + :sidebar.left/recent-pages "Recent" + + :sidebar.right/close "Close" + :sidebar.right/close-all "Close all" + :sidebar.right/close-others "Close others" + :sidebar.right/collapse "Collapse" + :sidebar.right/collapse-all "Collapse all" + :sidebar.right/collapse-others "Collapse others" + :sidebar.right/expand "Expand" + :sidebar.right/expand-all "Expand all" + :sidebar.right/more "More" + :sidebar.right/open "Open in sidebar" + :sidebar.right/open-as-page "Open as page" + :sidebar.right/resize-handle "Right sidebar resize handler" + :sidebar.right/toggle "Toggle right sidebar" + + :storage/invalid-data-writing "Invalid data writing to db!" + :storage/sqlitedb-error "SQLiteDB error: {1}" + :storage/sqlitedb-import-error "SQLiteDB import error: {1}" + :storage/sqlitedb-save-error "SQLiteDB save error: {1}" + + :storage.recycle/block-deleted-at "Block deleted {1}" + :storage.recycle/empty "Recycle is empty." + :storage.recycle/page-deleted-at "Page deleted {1}" + :storage.recycle/readonly "Recycle is read-only." + :storage.recycle/restore "Restore" + :storage.recycle/retention-desc "Deleted pages and blocks stay here until restored or automatically garbage collected after 30 days." + :storage.recycle/title "Recycle" + + :sync/assets-downloading-count "Downloading assets ({1})" + :sync/assets-uploading-count "Uploading assets ({1})" + :sync/creating-remote-graph "Creating remote graph..." + :sync/downloading "Downloading..." + :sync/downloading-graph "Downloading {1} ..." + :sync/graph-count-exceed-limit "Sync graph count exceed limit" + :sync/invitation-sent "Invitation sent!" + :sync/last-synced-time-label "Last synced time: {1}" + :sync/more-debug-info "More debug info" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "pending local changes" + :sync/pending-server-changes "pending server changes" + :sync/something-wrong "Something wrong, please try again." + :sync/start-sync "Start sync" + :sync/storage-exceed-limit "Sync storage exceed limit" + :sync/uploading "Uploading..." + :sync/user-doesnt-exist-yet "User doesn't exist yet." + + :theme/logseq-default "Logseq Default theme" + :theme/switch-to "Switch to {1} theme" + + :ui/all-done "All Done!" + :ui/apply "Apply" + :ui/cancel "Cancel" + :ui/close "Close" + :ui/configure "Configure" + :ui/confirm "Confirm" + :ui/copy "Copy" + :ui/copy-all "Copy all" + :ui/copy-to-clipboard "Copy to clipboard" + :ui/create "Create" + :ui/date-natural-language-placeholder "e.g. Next week" + :ui/delete "Delete" + :ui/deleted "Deleted" + :ui/dont-remind-me-again "Don't remind me again" + :ui/empty "Empty" + :ui/error "Error" + :ui/error-boundary-error "Error caught by UI!\n {1}" + :ui/export "Export" + :ui/false "False" + :ui/fix "Fix it!" + :ui/frequently-used "Frequently used" + :ui/from "From: " + :ui/host "Host" + :ui/image "image" + :ui/label "Label" + :ui/link "Link" + :ui/load-more "Load more" + :ui/loading "Loading..." + :ui/login "Login" + :ui/logout "Logout" + :ui/off "OFF" + :ui/on "ON" + :ui/open "Open" + :ui/open-named "Open {1}" + :ui/port "Port" + :ui/refresh "Refresh" + :ui/relaunch-confirm "Restart the app to apply this change. Restart now?" + :ui/remove-background "Remove background" + :ui/reset "Reset" + :ui/run "Run" + :ui/save "Save" + :ui/show-less "Show less" + :ui/show-more "Show more" + :ui/skip "Skip" + :ui/submit "Submit" + :ui/to "To: " + :ui/toggle-theme "Toggle theme" + :ui/true "True" + :ui/type "Type" + :ui/untitled "Untitled" + :ui/use-current-time "Use current time" + :ui/yes "Yes" + + :updater/checking-for-updates "Checking for updates" + :updater/downloading-progress "Downloading update ({1}%)" + :updater/quit-and-install "Restart and install" + :updater/up-to-date "Your app is up-to-date 🎉" + :updater/update-available "Update available" + :updater/update-error "⚠️ Oops, Something Went Wrong!\nPlease check out the {1}." + :updater/update-ready-to-install "Update ready to install" + + :view/add-new-view "Add new view" + :view/all "All" + :view/export-edn "Export EDN" + :view/linked-references "Linked references" + :view/new "New" + :view/new-property "New property" + :view/new-view "New view" + :view/rename "Rename" + :view/results "Results:" + :view/unlinked-references "Unlinked references" + + :view.filter/custom-date "Custom date" + :view.filter/empty "Empty" + :view.filter/filter "Filter" + :view.filter/from "from" + :view.filter/is-empty "Is Empty" + :view.filter/is-not-empty "Is Not Empty" + :view.filter/match "Match" + :view.filter/match-all-filters "Match all filters" + :view.filter/match-any-filter "Match any filter" + :view.filter/operator-after "after" + :view.filter/operator-before "before" + :view.filter/operator-between "between" + :view.filter/operator-date-after "date after" + :view.filter/operator-date-before "date before" + :view.filter/operator-is "is" + :view.filter/operator-is-not "is not" + :view.filter/operator-text-contains "text contains" + :view.filter/operator-text-not-contains "text not contains" + :view.filter/or "or" + :view.filter/relative-1-day-ago "1 day ago" + :view.filter/relative-1-month-ago "1 month ago" + :view.filter/relative-1-week-ago "1 week ago" + :view.filter/relative-1-year-ago "1 year ago" + :view.filter/relative-3-days-ago "3 days ago" + :view.filter/relative-3-months-ago "3 months ago" + :view.filter/to "to" + :view.filter/type-to-search "Type to search" + + :view.table/ascending "Ascending" + :view.table/columns-visibility "Columns visibility" + :view.table/default-title (fn [total] (str total (if (<= total 1) " Node" " Nodes"))) + :view.table/delete-sort "Delete sort" + :view.table/descending "Descending" + :view.table/drag-to-reorder "Drag && Drop to reorder" + :view.table/group-by "Group by" + :view.table/group-journal-date "Journal date" + :view.table/group-page-created-date "Page created date" + :view.table/group-page-name "Page name" + :view.table/group-page-updated-date "Page updated date" + :view.table/live-query-title "Live query ({1})" + :view.table/name-column "Name" + :view.table/no-group-value "No {1}" + :view.table/page "Page" + :view.table/pages "Pages" + :view.table/pin "Pin" + :view.table/row-number "Row number" + :view.table/select-all "Select all" + :view.table/select-column "Select" + :view.table/select-order "Select order" + :view.table/select-row "Select row" + :view.table/selected-count "Selected: {1}" + :view.table/sort-ascending "Sort ascending" + :view.table/sort-descending "Sort descending" + :view.table/sort-groups-by "Sort groups by" + :view.table/sort-groups-order "Sort groups order" + :view.table/total-refs-count "Total refs count" + :view.table/unpin "Unpin" - :window/minimize "Minimize" - :window/maximize "Maximize" - :window/restore "Restore" :window/close "Close" :window/exit-fullscreen "Exit full screen" + :window/maximize "Maximize" + :window/minimize "Minimize" + :window/restore "Restore" - :header/toggle-left-sidebar "Toggle left sidebar" - :header/search "Search" - :header/more "More" - :header/go-back "Go back" - :header/go-forward "Go forward" + :youtube/embed-first-reminder-mobile "Please embed a YouTube video at first, then use this icon.\nRemember: You can paste a raw YouTube url as embedded video on mobile." + :youtube/player-not-ready "YouTube player isn't ready yet." + :youtube/timestamps-not-available-mobile "YouTube timestamps aren't available on mobile yet." - ;; E.g. 1 node or 2 nodes - :views.table/live-query-title (fn [total] (str "Live query (" total ")")) - :views.table/default-title (fn [total] (str total (if (<= total 1) " Node" " Nodes"))) - - ;; Commands are nested for now to stay in sync with the shortcuts system. - ;; Other languages should not nest keys under :commands - :commands - {:pdf/previous-page "Pdf: Previous page of current pdf doc" - :pdf/next-page "Pdf: Next page of current pdf doc" - :pdf/close "Pdf: Close current pdf doc" - :pdf/find "Pdf: Search text of current pdf doc" - :auto-complete/complete "Auto-complete: Choose selected item" - :auto-complete/prev "Auto-complete: Select previous item" - :auto-complete/next "Auto-complete: Select next item" - :auto-complete/shift-complete "Auto-complete: Open selected item in sidebar" - :auto-complete/meta-complete "Auto-complete: Cmd + Enter to choose selected item" - :cards/toggle-answers "Cards: show/hide answers/clozes" - :cards/again "Cards: again" - :cards/hard "Cards: hard" - :cards/good "Cards: good" - :cards/easy "Cards: easy" - :editor/escape-editing "Escape editing" - :editor/backspace "Backspace / Delete backwards" - :editor/delete "Delete / Delete forwards" - :editor/new-block "Create new block" - :editor/new-line "New line in current block" - :editor/follow-link "Follow link under cursor" - :editor/open-link-in-sidebar "Open link in sidebar" - :editor/bold "Bold" - :editor/italics "Italics" - :editor/highlight "Highlight" - :editor/strike-through "Strikethrough" - :editor/clear-block "Delete entire block content" - :editor/kill-line-before "Delete line before cursor position" - :editor/copy-embed "Copy a block embed pointing to the current block" - :editor/kill-line-after "Delete line after cursor position" - :editor/beginning-of-block "Move cursor to the beginning of a block" - :editor/end-of-block "Move cursor to the end of a block" - :editor/forward-word "Move cursor forward a word" - :editor/backward-word "Move cursor backward a word" - :editor/forward-kill-word "Delete a word forwards" - :editor/backward-kill-word "Delete a word backwards" - :editor/paste-text-in-one-block-at-point "Paste text into one block at point" - :editor/insert-youtube-timestamp "Insert youtube timestamp" - :editor/cycle-todo "Rotate the TODO state" - :editor/up "Move cursor up / Select up" - :editor/down "Move cursor down / Select down" - :editor/left "Move cursor left / Open selected block at beginning" - :editor/right "Move cursor right / Open selected block at end" - :editor/select-up "Select content above" - :editor/select-down "Select content below" - :editor/move-block-up "Move block up" - :editor/move-block-down "Move block down" - :editor/move-blocks "Move blocks to" - :editor/open-edit "Edit selected block" - :editor/open-selected-blocks-in-sidebar "Open selected block(s) in sidebar" - :editor/select-block-up "Select block above" - :editor/select-block-down "Select block below" - :editor/delete-selection "Delete selected blocks" - :editor/expand-block-children "Expand" - :editor/collapse-block-children "Collapse" - :editor/toggle-block-children "Toggle expand/collapse" - :editor/indent "Indent block" - :editor/outdent "Outdent block" - :editor/copy "Copy (copies either selection, or block reference)" - :editor/copy-text "Copy selections as text" - :editor/cut "Cut" - :editor/undo "Undo" - :editor/redo "Redo" - :editor/quick-add "Quick add" - :editor/insert-link "HTML Link" - :editor/select-all-blocks "Select all blocks" - :editor/select-parent "Select parent block" - :editor/zoom-in "Zoom in editing block / Forwards otherwise" - :editor/zoom-out "Zoom out editing block / Backwards otherwise" - :editor/toggle-number-list "Toggle number list" - :editor/add-property "Add property" - :editor/set-tags "Set tags for selected block(s)" - :editor/add-property-deadline "Add task deadline to selected block" - :editor/add-property-status "Add task status to selected block" - :editor/add-property-priority "Add task priority to selected block" - :editor/add-property-icon "Add icon" - :editor/add-reaction "Add reaction" - :editor/jump "Jump to a property key or value" - :ui/toggle-brackets "Toggle whether to display brackets" - :go/electron-find-in-page "Find text in page" - :go/electron-jump-to-the-next "Jump to the next match to your Find bar search" - :go/electron-jump-to-the-previous "Jump to the previous match to your Find bar search" - :go/search "Search pages and blocks" - :go/search-themes "Search themes" - :go/search-in-page "Search blocks in page" - :command-palette/toggle "Search commands" - :go/journals "Go to journals" - :go/backward "Backwards" - :go/forward "Forwards" - :search/re-index "Rebuild search index" - :sidebar/open-today-page "Open today's page in the right sidebar" - :sidebar/close-top "Closes the top item in the right sidebar" - :sidebar/clear "Clear all in the right sidebar" - :misc/copy "Copy" - :publish/open-dialog "Open publish dialog for current page" - :graph/export-as-html "Export public graph pages as html" - :graph/open "Select graph to open" - :graph/remove "Remove a graph" - :graph/add "Add a graph" - :graph/db-add "Add a DB graph" - :graph/db-save "Save the current db to the disk (~/logseq/graphs/your-current-graph)" - :command/run "Run git command" - :go/home "Go to home" - :go/all-graphs "Go to all graphs" - :go/all-pages "Go to all pages" - :go/graph-view "Go to graph view" - :go/keyboard-shortcuts "Go to keyboard shortcuts" - :go/tomorrow "Go to tomorrow" - :go/next-journal "Go to next journal" - :go/prev-journal "Go to previous journal" - :go/flashcards "Toggle flashcards" - :ui/toggle-document-mode "Toggle document mode" - :ui/toggle-settings "Toggle settings" - :ui/toggle-right-sidebar "Toggle right sidebar" - :ui/toggle-left-sidebar "Toggle left sidebar" - :ui/toggle-help "Toggle help" - :ui/toggle-theme "Toggle between dark/light theme" - :ui/toggle-contents "Toggle Contents in sidebar" - :ui/customize-appearance "Customize appearance" - ;; :ui/open-new-window "Open another window" - :command/toggle-favorite "Add to/remove from favorites" - :editor/copy-page-url "Copy page url" - :ui/toggle-wide-mode "Toggle wide mode" - :ui/highlight-recent-blocks "Toggle highlight recent blocks" - :editor/toggle-display-hidden-properties "Toggle display hidden properties" - :ui/select-theme-color "Select available theme colors" - :ui/goto-plugins "Go to plugins dashboard" - :ui/install-plugins-from-file "Install plugins from plugins.edn" - :ui/install-plugin-from-github "Install plugin from GitHub release" - :editor/toggle-open-blocks "Toggle open blocks (collapse or expand all blocks)" - :ui/clear-all-notifications "Clear all notifications" - :misc/export-block-data "Export block EDN data" - :misc/export-page-data "Export page EDN data" - :misc/export-graph-ontology-data "Export graph's tags and properties EDN data" - :misc/import-edn-data "Import EDN data" - :dev/show-block-data "(Dev) Show block data" - :dev/show-block-ast "(Dev) Show block AST" - :dev/show-page-data "(Dev) Show page data" - :dev/replace-graph-with-db-file "(Dev) Replace graph with its db.sqlite file" - :dev/validate-db "(Dev) Validate current graph" - :dev/recompute-checksum "(Dev) Recompute graph checksum" - :dev/export-client-ops-sqlite "(Dev) Export client ops sqlite" - :dev/gc-graph "(Dev) Garbage collect graph (remove unused data in SQLite)" - :dev/rtc-stop "(Dev) RTC Stop" - :dev/rtc-start "(Dev) RTC Start" - :window/close "Close window"}} + :zotero/attachments "Attachments" + :zotero/imported-file-warning "This is a Zotero imported file, set Zotero data directory to open the file in Logseq." + :zotero/linked-file-warning "This is a Zotero linked file, set Zotero linked attachment base directory to open the file in Logseq." + :zotero/notes "Notes" +} diff --git a/src/resources/dicts/es.edn b/src/resources/dicts/es.edn index 2a0cc4c416..ee4eb5f936 100644 --- a/src/resources/dicts/es.edn +++ b/src/resources/dicts/es.edn @@ -1,458 +1,1861 @@ -{:all-files "Lista de archivos" - :all-graphs "Lista de grafos" - :all-journals "Lista de diarios" - :auto-heading "Encabezados automáticos" - :bold "Negrita" - :cancel "Cancelar" - :close "Cerrar" - :code "Código" - :delete "Eliminar" - :download "Descargar" - :export "Exportar" - :export-copied-to-clipboard "¡Copiado al portapapeles!" - :export-copy-to-clipboard "Copiar al portapapeles" - :export-graph "Exportar grafo" - :export-markdown "Exportar como Markdown estándar (sin propiedades de bloque)" - :export-page "Exportar página" - :export-public-pages "Exportar páginas públicas" - :export-save-to-file "Guardar a archivo" - :export-transparent-background "Fondo transparente" - :graph "Grafo" - :heading "Encabezado {1}" - :help-shortcut-title "Clic para ver atajos y otras sugerencias" - :highlight "Resaltado" - :home "Inicio" - :host "Servidor" - :import "Importar" - :importing "Importando" - :italics "Cursiva" - :language "Idioma" - :loading "Cargando..." - :login "Iniciar sesión" - :logout "Cerrar sesión" - :new-page "Nueva página:" - :plugins "Extensiones" - :port "Puerto" - :relaunch-confirm-to-work "Debe relanzar la aplicación para hacer que funcione. ¿Desea reiniciarla ahora?" - :remove-background "Eliminar el fondo" - :remove-heading "Eliminar encabezado" - :save "Guardar" - :settings "Opciones" - :settings-of-plugins "Opciones de Extensiones" - :strikethrough "Tachado" - :themes "Temas" - :toggle-theme "Alternar tema" - :type "Tipo" - :untitled "Sin título" - :yes "Sí" - :accessibility/skip-to-main-content "Saltar a contenido principal" - :asset/confirm-delete "¿Está seguro que desea eliminar este {1}?" - :asset/copy "Copiar imagen" - :asset/delete "Eliminar imagen" - :asset/maximize "Maximizar imagen" - :asset/open-in-browser "Abrir imagen en el navegador" - :asset/physical-delete "Eliminar también el archivo (esta acción no se puede deshacer)" - :asset/show-in-folder "Mostrar imagen en la carpeta" - :block/name "Nombre de página" - :bug-report/clipboard-inspector-title "Inspector de datos del portapapeles" - :bug-report/inspector-page-btn-back "Ir hacia atrás" - :bug-report/inspector-page-btn-copy "Copiar el resultado" - :bug-report/inspector-page-btn-create-issue "Crear un reporte" - :bug-report/inspector-page-copy-notif "¡Copiado al portapapeles!" - :bug-report/inspector-page-desc-1 "Presiona Ctrl+V / ⌘+V para inspeccionar tu portapapeles" - :bug-report/inspector-page-desc-2 "o da clic aquí para pegar si estás usando la versión móvil" - :bug-report/inspector-page-desc-clipboard "Aquí están los datos leídos del portapapeles." - :bug-report/inspector-page-desc-copy "Si esto está bien para compartir, da clic en el botón de copiar." - :bug-report/inspector-page-desc-create-issue "Ahora puedes reportar el resultado pegado en tu portapapeles. Por favor pega el resultado en la sección 'Contexto adicional' y menciona de donde copiaste el contenido original. ¡Gracias!" - :bug-report/inspector-page-placeholder "Mantenga presionado aquí para pegar si está en un dispositivo móvil" - :bug-report/inspector-page-tip "¿Hay algo mal? No hay problema, da clic para regresar al paso anterior." - :bug-report/main-desc "¿Podrías ayudarnos resportando un error? Nosotros lo resolveremos tan pronto como podamos." - :bug-report/main-title "Reportar un problema" - :bug-report/section-clipboard-btn-desc "Inspeccionar y recolectar datos del portapapeles" - :bug-report/section-clipboard-btn-title "Ayudante para portapapeles" - :bug-report/section-clipboard-desc "Puedes usar estas prácticas herramientas para darnos información adicional." - :bug-report/section-clipboard-title "¿El problema que encontró está relacionado con estas características?" - :bug-report/section-issues-btn-desc "¡Ayuda a mejorar Logseq!" - :bug-report/section-issues-btn-title "Enviar un reporte de problemas" - :bug-report/section-issues-desc "Si no hay herramientas disponibles para recopilar información adicional, reporta el error directamente." - :bug-report/section-issues-title "O ..." - :color/blue "Azul" - :color/gray "Gris" - :color/green "Verde" - :color/pink "Rosa" - :color/purple "Púrpura" - :color/red "Rojo" - :color/yellow "Amarillo" - :command.auto-complete/complete "Auto-completar: Escoger elementos seleccionados" - :command.auto-complete/next "Auto-completar: Seleccionar elemento siguiente" - :command.auto-complete/prev "Auto-completar: Seleccionar elemento anterior" - :command.auto-complete/shift-complete "Auto-completar: Abrir elemento seleccionado en barra lateral" - :command.cards/toggle-answers "Tarjetas: mostrar/ocultar respuestas/prueba de completar oraciones " - :command.command-palette/toggle "Buscar comandos" - :command.command/run "Ejecutar comando git" - :command.command/toggle-favorite "Agregar a/eliminar de favoritos" - :command.dev/show-block-ast "(Dev) Mostrar AST de bloque" - :command.dev/show-block-data "(Dev) Mostrar datos de bloque" - :command.dev/show-page-data "(Dev) Mostrar datos de página" - :command.editor/backspace "Retroceso / Eliminar hacia atrás" - :command.editor/backward-kill-word "Borrar palabra anterior" - :command.editor/backward-word "Mover cursor una palabra atrás" - :command.editor/beginning-of-block "Mover cursor al inicio del bloque" - :command.editor/bold "Negrita" - :command.editor/clear-block "Borrar contenido del bloque" - :command.editor/collapse-block-children "Colapsar" - :command.editor/copy "Copiar" - :command.editor/copy-embed "Copiar una incrustación de bloque apuntando al bloque actual" - :command.editor/copy-page-url "Copiar url de página" - :command.editor/copy-text "Copiar selección como texto" - :command.editor/cut "Pegar" - :command.editor/cycle-todo "Rotar estado TODO del elemento" - :command.editor/delete "Suprimir / Eliminar hacia delante" - :command.editor/delete-selection "Eliminar bloques seleccionados" - :command.editor/down "Mover cursor abajo / Seleccionar abajo" - :command.editor/end-of-block "Mover cursor al final del bloque" - :command.editor/escape-editing "Escapar de edición" - :command.editor/expand-block-children "Expandir" - :command.editor/follow-link "Seguir enlace bajo el cursor" - :command.editor/forward-kill-word "Borrar palabra posterior" - :command.editor/forward-word "Mover cursor una palabra adelante" - :command.editor/highlight "Resaltado" - :command.editor/indent "Aumentar sangría" - :command.editor/insert-link "Enlace html" - :command.editor/insert-youtube-timestamp "Insertar marca de tiempo de YouTube" - :command.editor/italics "Cursiva" - :command.editor/kill-line-after "Borrar línea despues del cursor" - :command.editor/kill-line-before "Borrar línea antes del cursor" - :command.editor/left "Mover cursor a la izquierda / Abrir bloque seleccionado al inicio" - :command.editor/move-block-down "Mover bloque abajo" - :command.editor/move-block-up "Mover bloque arriba" - :command.editor/new-block "Crear bloque nuevo" - :command.editor/new-line "Nueva línea en bloque" - :command.editor/open-edit "Editar bloque seleccionado" - :command.editor/open-link-in-sidebar "Abrir enlace en barra lateral" - :command.editor/outdent "Disminuir sangría" - :command.editor/paste-text-in-one-block-at-point "Pegar texto en un bloque en el punto" - :command.editor/redo "Rehacer" - :command.editor/right "Mover cursor a la derecha / Abrir bloque seleccionado al final" - :command.editor/select-all-blocks "Seleccionar todos los bloques" - :command.editor/select-block-down "Seleccionar bloque de abajo" - :command.editor/select-block-up "Seleccionar bloque de arriba" - :command.editor/select-down "Seleccionar el contenido a continuación" - :command.editor/select-parent "Seleccionar bloque padre" - :command.editor/select-up "Seleccionar contenido anterior" - :command.editor/strike-through "Tachado" - :command.editor/toggle-number-list "Alternar lista de números" - :command.editor/toggle-open-blocks "Alternar bloques abiertos, (colapsar o expandir todos)" - :command.editor/undo "Deshacer" - :command.editor/up "Mover cursor arriba / Seleccionar arriba" - :command.editor/zoom-in "Acercar / Adelante" - :command.editor/zoom-out "Alejar / Atrás" - :command.go/all-graphs "Ir a todos los grafos" - :command.go/all-pages "Ir a todas las páginas" - :command.go/backward "Hacia atrás" - :command.go/electron-find-in-page "Encontrar texto en página" - :command.go/electron-jump-to-the-next "Saltar a la siguiente coincidencia de tu búsqueda en la barra Encontrar" - :command.go/electron-jump-to-the-previous "Saltar a la coincidencia anterior de tu búsqueda en la barra Encontrar" - :command.go/flashcards "Alternar tarjetas de memorización" - :command.go/forward "Hacia adelante" - :command.go/graph-view "Ir a vista de grafos" - :command.go/home "Ir a página de inicio" - :command.go/journals "Ir a los diarios" - :command.go/keyboard-shortcuts "Ir a atajos de teclado" - :command.go/next-journal "Ir al siguiente diario" - :command.go/prev-journal "Ir al diario anterior" - :command.go/search "Buscar en el grafo" - :command.go/search-in-page "Buscar bloques en página" - :command.go/tomorrow "Ir a mañana" - :command.graph/add "Agregar un grafo" - :command.graph/export-as-html "Exportar grafo público como html " - :command.graph/open "Seleccionar grafo a abrir" - :command.graph/remove "Eliminar un grafo" - :command.misc/copy "Copiar" - :command.pdf/close "Pdf: Cerrar documento pdf actual" - :command.pdf/find "Pdf: Buscar texto del documento pdf actual" - :command.pdf/next-page "Pdf: Página siguiente del documento pdf actual" - :command.pdf/previous-page "Pdf: Página previa del documento pdf actual" - :command.search/re-index "Reconstruir índice de búsqueda" - :command.sidebar/clear "Cerrar todo en la barra lateral derecha" - :command.sidebar/close-top "Cierra el elemento superior en la barra lateral derecha" - :command.sidebar/open-today-page "Abrir la página de hoy en barra lateral derecha" - :command.ui/clear-all-notifications "Borrar todas las notificaciones" - :command.ui/goto-plugins "Ir al panel de extensiones" - :command.ui/install-plugins-from-file "Instalar extensiones de plugins.edn" - :command.ui/select-theme-color "Seleccionar temas de colores disponibles" - :command.ui/toggle-brackets "Alternar corchetes" - :command.ui/toggle-contents "Alternar Contenido en barra lateral" - :command.ui/toggle-document-mode "Alternar modo documento" - :command.ui/toggle-help "Alternar ayuda" - :command.ui/toggle-left-sidebar "Alternar barra lateral izquierda" - :command.ui/toggle-right-sidebar "Alternar barra lateral" - :command.ui/toggle-settings "Alternar Opciones" - :command.ui/toggle-theme "Alternar entre tema claro/oscuro" - :command.ui/toggle-wide-mode "Alternar modo ancho" - :command.window/close "Cerrar ventana" - :content/click-to-edit "Clic para editar" - :content/copy-block-ref "Copiar referencia de bloque" - :content/copy-block-url "Copiar URL del bloque" - :content/copy-export-as "Copiar / Exportar como..." - :content/copy-ref "Copiar esta referencia" - :content/delete-ref "Eliminar esta referencia" - :content/open-in-sidebar "Abrir en barra lateral" - :content/replace-with-embed "Reemplazar con incrustación" - :content/replace-with-text "Reemplazar con texto" - :context-menu/make-a-flashcard "Crear una tarjeta de memorización" - :context-menu/toggle-number-list "Alternar lista de números" - :dev/show-block-ast "(Dev) Mostrar AST de bloque" - :dev/show-block-data "(Dev) Mostrar datos de bloque" - :dev/show-page-data "(Dev) Mostrar datos de página" - :editor/block-search "Buscar un bloque" - :editor/collapse-block-children "Colapsar todo" - :editor/copy "Copiar" - :editor/cut "Cortar" - :editor/cycle-todo "Rotar el estado de la TODO del elemento actual" - :editor/delete-selection "Eliminar los bloques seleccionados" - :editor/expand-block-children "Expandir todo" - :file/format-not-supported "Formato .{1} no soportado." - :file/last-modified-at "Fecha de modificación" - :file/name "Nombre del archivo" - :file/no-data "No hay datos" - :flashcards/modal-finished "¡Felicidades, has revisado todas las tarjetas en esta consulta, nos vemos en la próxima! 💯" - :flashcards/modal-welcome-desc-1 "Puedes agregar \"{1}\" a cualquier bloque para convertirlo en una tarjeta o ejecutar \"/cloze\" para agregar algunos clozes." - :flashcards/modal-welcome-title "¡Hora de crear una tarjeta!" - :graph/all-graphs "Todos los grafos" - :graph/local-graphs "Grafos locales:" - :graph/remote-graphs "Grafos remotos:" - :handbook/close "Cerrar" - :handbook/help-categories "Categorías de ayuda" - :handbook/home "Inicio" - :handbook/popular-topics "Temas populares" - :handbook/search "Buscar" - :handbook/settings "Opciones" - :handbook/title "Ayuda" - :handbook/topics "Temas" - :header/go-back "Ir hacia atrás" - :header/go-forward "Ir haca adelante" - :header/more "Más" - :header/search "Buscar" - :header/toggle-left-sidebar "Alternar barra lateral izquierda" - :help/about "Acerca de Logseq" - :help/awesome-logseq "Increíble Logseq" - :help/block-reference "Referencia de bloque" - :help/blog "Blog de Logseq" - :help/bug "Reportar un problema" - :help/changelog "Registro de cambios" - :help/context-menu "Menú contextual" - :help/docs "Documentación" - :help/feature "Solicitar una función" - :help/forum-community "Foro de la comunidad" - :help/markdown-syntax "Sintaxis de Markdown" - :help/open-link-in-sidebar "Abrir enlace en barra lateral" - :help/privacy "Política de privacidad" - :help/reference-autocomplete "Referencia de página" - :help/roadmap "Hoja de ruta" - :help/search "Buscar páginas/bloques/comandos" - :help/shortcut "Atajo" - :help/shortcut-page-title "Atajos de teclado" - :help/shortcuts "Atajos de teclado" - :help/shortcuts-triggers "Iniciadores" - :help/slash-autocomplete "Autocompletado de barra '/'" - :help/start "Comenzando" - :help/terms "Términos" - :help/title-about "Acerca de" - :help/title-community "Comunidad" - :help/title-development "Desarrollo" - :help/title-terms "Términos" - :help/title-usage "Uso" - :keymap/all "Todo" - :keymap/custom "Personalizado" - :keymap/disabled "Deshabilitado" - :keymap/keystroke-filter "Filtro de pulsación de teclas" - :keymap/unset "Sin asignar" - :left-side-bar/journals "Diarios" - :left-side-bar/nav-favorites "Favoritos" - :left-side-bar/nav-recent-pages "Recientes" - :left-side-bar/switch "Cambiar a:" - :linked-references/filter-directions "Haga clic para incluir y haga shift-clic para excluir. Haga clic nuevamente para eliminar." - :linked-references/filter-excludes "Excluye: " - :linked-references/filter-heading "Filtro" - :linked-references/filter-includes "Incluye: " - :linked-references/filter-search "Buscar en las páginas vinculadas" - :notification/clear-all "Limpiar todo" - :on-boarding/importing-desc "Si están en formato EDN o Markdown Logseq puede trabajar con ellos." - :on-boarding/importing-main-desc "También puedes hacer esto después en la aplicación." - :on-boarding/importing-main-title "Importar notas existentes" - :on-boarding/importing-title "¿Tienes notas que quieras importar?" - :on-boarding/main-desc "Primero tienes que escoger una carpeta donde Logseq va a guardar tus pensamientos, ideas y notas." - :on-boarding/main-title (fn [] ["¡Bienvenido a " [:strong "Logseq!"]]) - :page/add-to-favorites "Añadir a Favoritos" - :page/backlinks "Vínculos de retroceso" - :page/copy-page-url "Copiar URL de la página" - :page/created-at "Creada el" - :page/delete "Eliminar página" - :page/logseq-is-having-a-problem "Logseq está teniendo un problema. Para intentar volver a un estado de trabajo, intenta los siguientes pasos seguros en orden:" - :page/make-private "Hacer privada" - :page/make-public "Hacer pública al publicar" - :page/something-went-wrong "Algo malió sal" - :page/step "Paso {1}" - :page/try "Intentar" - :page/unfavorite "Quitar página de favoritos" - :page/updated-at "Actualizada el" - :pdf/auto-open-context-menu "Abrir automaticamente menú contextual para la selección." - :pdf/copy-ref "Copiar referencia" - :pdf/copy-text "Copiar texto" - :pdf/doc-metadata "Metadatos del documento" - :pdf/hl-block-colored "Etiqueta de color para resaltar bloque" - :pdf/linked-ref "Referencias vinculadas" - :pdf/toggle-dashed "Estilo punteado para las áreas resaltadas" - :plugin/all "Todo" - :plugin/all-updated "¡Todo está actualizado!" - :plugin/auto-check-for-updates "Comprobación automática de actualizaciones" - :plugin/check-all-updates "Buscar actualizaciones" - :plugin/checking-for-updates "Comprobando por actualizaciones de extensiones..." - :plugin/check-update "Buscar actualización" - :plugin/contribute "✨ Escribir y publicar nueva extensión" - :plugin/custom-js-alert "Se encontró el archivo custom.js, desea permitir que se ejecute? (Si no comprende el contenido de este archivo se recomienda no permitir su ejecución dado que representa ciertos riesgos de seguridad)." - :plugin/delete-alert "¿Está seguro de desinstalar la extensión [{1}]?" - :plugin/disabled "Inactivo" - :plugin/downloads "Descargas" - :plugin/enabled "Habilitado" - :plugin/found-n-updates "Se encontraron {1} actualizaciones" - :plugin/found-updates "Nuevas actualizaciones" - :plugin/install "Instalar" - :plugin/installed "Instalado" - :plugin/installed-plugin "Extensión instalada: {1}" - :plugin.install-from-file/menu-title "Instalar desde plugins.edn" - :plugin.install-from-file/notice "Las siguientes extensiones van a reemplazar tus extensiones: " - :plugin.install-from-file/success "¡Todas las extensiones fueron instaladas!" - :plugin.install-from-file/title "Instalar extensiones desde plugins.edn" - :plugin/installing "Instalando" - :plugin/list-of-updates "Actualizaciones de extensiones: " - :plugin/load-unpacked "Cargar extensión desempaquetada" - :plugin/marketplace "Tienda" - :plugin/not-installed "No instalado" - :plugin/open-logseq-dir "Abrir" - :plugin/open-package "Abrir paquete" - :plugin/open-preferences "Abrir preferencias" - :plugin/open-settings "Abrir opciones" - :plugin/refresh-lists "Actualizar listas" - :plugin/reload "Recargar" - :plugin/remote-error "Error remoto: " - :plugin/restart "Reiniciar la aplicación" - :plugin/search-plugin "Buscar extensiones" - :plugin/security-warning "Las extensiones pueden acceder a tu grafo y tus archivos locales, emitir solicitudes de red." - :plugin/stars "Estrellas" - :plugin/title "Título ({1})" - :plugin/uninstall "Desinstalar" - :plugin/unpacked "Desempaquetado" - :plugin/unpacked-tips "Seleccionar el directorio de la extensión" - :plugin/update "Actualizar" - :plugin/update-all-selected "Actualizar todo lo seleccionado" - :plugin/update-available "Actualización disponible" - :plugin/update-plugin "Actualizar extensión: {1} - {2}" - :plugin/updates-downloading "Descargando todas las actualizaciones" - :plugin/updating "Actualizando" - :plugin/up-to-date "Está actualizado {1}" - :right-side-bar/block-ref "Referencia de bloque" - :right-side-bar/contents "Contenido" - :right-side-bar/flashcards "Tarjetas de memorización" - :right-side-bar/graph-view "Vista de Grafo" - :right-side-bar/help "Ayuda" - :right-side-bar/page-graph "Grafo de página" - :right-side-bar/pane-close "Cerrar" - :right-side-bar/pane-close-all "Cerrar todo" - :right-side-bar/pane-close-others "Cerrar otros" - :right-side-bar/pane-collapse "Colapsar" - :right-side-bar/pane-collapse-all "Colapsar todo" - :right-side-bar/pane-collapse-others "Colapsar otros" - :right-side-bar/pane-expand "Expandir" - :right-side-bar/pane-expand-all "Expandir todo" - :right-side-bar/pane-more "Más" - :right-side-bar/pane-open-as-page "Abrir como página" - :right-side-bar/separator "Right sidebar resize handler " - :right-side-bar/show-journals "Mostrar Diarios" - :right-side-bar/switch-theme "Temas" - :right-side-bar/toggle-right-sidebar "Alternar barra lateral derecha" - :search-item/no-result "Sin resultados que coincidan" - :search-item/page "Página" - :select/default-prompt "Seleccione uno" - :select/default-select-multiple "Seleccionar uno o varios" - :select.graph/add-graph "Sí, añadir otro grafo" - :select.graph/empty-placeholder-description "No encontramos un grafo. ¿Quiere añadir otro?" - :select.graph/prompt "Seleccione un grafo" - :settings-page/app-updated "Tu aplicación está actualizada 🎉" - :settings-page/auto-chmod "Cambiar automaticamente los permisos de archivo" - :settings-page/auto-chmod-desc "Desactivar el permitir la edición de múltiples usuarios con permisos otorgados por la membresía del grupo." - :settings-page/auto-expand-block-refs "Expandir referencias de bloque automáticamente al hacer un acercamiento" - :settings-page/auto-expand-block-refs-tip "Esta opción controla si expandir el bloque de referencias automáticamente al hacer un acercamiento." - :settings-page/auto-updater "Auto actualizador" - :settings-page/changelog "¿Qué hay de nuevo?" - :settings-page/check-for-updates "Comprobar actualizaciones" - :settings-page/checking "Comprobando ..." - :settings-page/clear "Limpiar" - :settings-page/clear-cache "Limpiar caché" - :settings-page/clear-cache-warning "Limpiar la caché va a desechar los grafos abiertos. Vas a perder los cambios no guardados." - :settings-page/current-version "Versión actual" - :settings-page/custom-configuration "Configuración personalizada" - :settings-page/custom-date-format "Formato de fecha preferido" - :settings-page/custom-global-configuration "Configuración global personalizada" - :settings-page/custom-theme "Tema personalizado" - :settings-page/developer-mode "Modo desarrollador" - :settings-page/developer-mode-desc "El modo desarrollador permite a los colaboradores y desarrolladores de extensiones probar sus integraciones con Logseq más eficientemente." - :settings-page/disable-sentry "Enviar datos de uso y diagnósticos a Logseq" - :settings-page/disable-sentry-desc " Logseq nunca va a recolectar tu base de datos de grafos local o vender tus datos." - :settings-page/edit-config-edn "Editar config.edn (para este repositorio)" - :settings-page/edit-custom-css "Editar custom.css" - :settings-page/edit-export-css "Editar export.css" - :settings-page/edit-global-config-edn "Editar config.edn global" - :settings-page/enable-all-pages-public "Hacer todas las páginas públicas al publicar" - :settings-page/enable-flashcards "Tarjetas de memorización" - :settings-page/enable-journals "Habilitar diarios" - :settings-page/enable-shortcut-tooltip "Habilitar descripción emergente de atajos de teclado" - :settings-page/enable-tooltip "Habilitar descripción emergente" - :settings-page/export-theme "Tema exportación" - :settings-page/home-default-page "Establecer página de inicio" - :settings-page/login-prompt "Para acceder a nuevas características antes que nadie debes ser un patrocinador de Logseq en Open Collective y después iniciar sesión." - :settings-page/native-titlebar "Barra de título nativa" - :settings-page/native-titlebar-desc "Habilta la barra de título nativa de la ventana en Windows y Linux." - :settings-page/network-proxy "Proxy de red" - :settings-page/plugin-system "Habilitar extensiones" - :settings-page/preferred-outdenting "Disminución lógica de sangría" - :settings-page/preferred-outdenting-tip "El lado izquierdo muestra sangría con la configuración por defecto, y el derecho muestra con sangría lógica habilitada" - :settings-page/preferred-outdenting-tip-more "→ Aprende más" - :settings-page/preferred-pasting-file "Preferir pegar archivo" - :settings-page/preferred-pasting-file-hint "Cuando está habilitado, al pegar una imagen de internet la imagen será descargada e insertada. Cuando está deshabilitado, el enlace a la imagen será pegado." - :settings-page/revision "Revisión: " - :settings-page/show-brackets "Mostrar corchetes" - :settings-page/show-full-blocks "Mostrar todas las líneas de una referencia a bloque" - :settings-page/spell-checker "Corrector ortográfico" - :settings-page/tab-account "Cuenta" - :settings-page/tab-advanced "Avanzado" - :settings-page/tab-editor "Editor" - :settings-page/tab-features "Características" - :settings-page/tab-general "General" - :settings-page/tab-keymap "Mapa de teclado" - :settings-page/theme-dark "oscuro" - :settings-page/theme-light "claro" - :settings-page/theme-system "sistema" - :settings-page/update-available "Se encontró nuevo lanzamiento" - :settings-page/update-error-1 "¡⚠️ Ups, algo malió sal!" - :settings-page/update-error-2 " Por favor comprueba" - :shortcut.category/basics "Básico" - :shortcut.category/block-command-editing "Comandos edición de bloque" - :shortcut.category/block-editing "Edición de bloque general" - :shortcut.category/block-selection "Selección de bloques (pulsar Esc para salir)" - :shortcut.category/formatting "Formato" - :shortcut.category/navigating "Navegación" - :shortcut.category/others "Otros" - :shortcut.category/plugins "Extensiones" - :shortcut.category/toggle "Alternar" - :text/image "Imagen" - :tips/all-done "¡Todo hecho!" - :updater/new-version-install "Se descargó una nueva versión." - :updater/quit-and-install "Reiniciar para instalar" - :window/close "Cerrar" - :window/exit-fullscreen "Salir de pantalla completa" - :window/maximize "Maximizar" - :window/minimize "Minimizar" - :window/restore "Restaurar" +{ + :account/authentication "Autenticación" + :account/benefits-desc "Con una cuenta de Logseq, puedes acceder a servicios en la nube como Logseq Sync y funciones alfa/beta." + :account/billing "Facturación" + :account/billing-expired-on-label "El plan Pro expiró el: {1}" + :account/billing-expires-on-label "El plan Pro expira el: {1}" + :account/billing-next-date-label "Próxima fecha de facturación: {1}" + :account/core-features "Acceso a las funciones principales de Logseq" + :account/current-plan "Plan actual" + :account/delete-account "Eliminar cuenta" + :account/discover-sync-desc "Descubre el poder de {1}" + :account/early-access-alpha-beta "Acceso anticipado a funciones alfa/beta" + :account/first-name "Nombre" + :account/free-plan-sync-limit "1 grafo sincronizado (hasta 50MB, solo notas)" + :account/last-name "Apellido" + :account/manage-plan "Administrar plan" + :account/month "mes" + :account/no-asset-syncing "Sin sincronización de archivos adjuntos" + :account/open-invoices "Ver facturas" + :account/plan-free "Gratis" + :account/plan-free-summary "Comienza con sincronización básica" + :account/plan-pro "Pro" + :account/plan-pro-summary "Desbloquea sincronización avanzada y más" + :account/pro-plan-sync-limit "10 grafos sincronizados (hasta 5GB cada uno)" + :account/profile "Perfil" + :account/refresh-token-warning "Actualización del token: estado excepcional" + :account/reset-password "Restablecer contraseña" + :account/sign-up "Registrarse" + :account/sync-assets-limit "Sincronizar archivos adjuntos de hasta 100MB por archivo" + :account/synced-status "Sincronizado" + :account/unlimited-unsynced-graphs "Grafos no sincronizados ilimitados" + :account/upcoming-cloud-features "Próximas funciones en la nube, incluyendo Logseq Publish" + :account/upgrade-plan "Mejorar plan" + :account/username "Nombre de usuario" + + :asset/acceptable-file-extensions "Extensiones de archivo aceptadas" + :asset/add-assets "Agregar archivos adjuntos" + :asset/add-directory "Agregar directorio" + :asset/alias-already-exists "¡El nombre de alias \"{1}\" ya existe!" + :asset/alias-directories "Directorios con alias" + :asset/alias-directory-path-label "Ruta del directorio:" + :asset/alias-name-dialog-title "¿Cuál es el nombre de alias de este directorio seleccionado?" + :asset/alias-name-label "Nombre de alias:" + :asset/alias-name-placeholder "p. ej. Libros" + :asset/align "Alineación" + :asset/align-center "Centrado" + :asset/align-left "Izquierda" + :asset/align-right "Derecha" + :asset/already-exists "El activo ya existe, título: {1}, referencia de nodo: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "No se puede incrustar el padre como su propia propiedad" + :asset/confirm-delete-image "¿Está seguro de que desea eliminar esta imagen?" + :asset/copy "Copiar imagen" + :asset/copy-image-unsupported-extension "No se admite copiar imágenes para archivos {1}" + :asset/create-local-copy-warning "Creando un archivo local a partir de uno externo. Las anotaciones PDF requieren un archivo local para funcionar correctamente." + :asset/create-title "Crear archivo adjunto" + :asset/delete "Eliminar imagen" + :asset/downloading "Descargando" + :asset/drop-hint "Arrastra y suelta archivos aquí, o haz clic para seleccionar" + :asset/edit-title "Editar archivo adjunto" + :asset/external-url-label "URL externa del archivo:" + :asset/file-extension-placeholder "p. ej. mp3" + :asset/maximize "Maximizar imagen" + :asset/open-in-browser "Abrir imagen en el navegador" + :asset/physical-delete "Eliminar también el archivo (esta acción no se puede deshacer)" + :asset/ref-block "Bloque de referencia" + :asset/select-file "Seleccionar archivo adjunto" + :asset/select-from-disk "Seleccionar desde disco" + :asset/selected-directories "Directorios seleccionados:" + :asset/show-file-in-folder "Mostrar archivo en la carpeta" + :asset/size-too-large "El recurso es demasiado grande" + :asset/syncing "Sincronizando" + :asset/title-label "Título del archivo adjunto:" + :asset/transfer-placeholder "{1} archivos..." + :asset/uploading "Subiendo" + + :block/click-to-fix-query "Clic para corregir la consulta: {1}" + :block/copy-ref "Copiar referencia de bloque" + :block/copy-url "Copiar URL del bloque" + :block/created-label "Creado: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' está obsoleto. Usa el comando '/Math block' en su lugar." + :block/deprecated-query-syntax "#+BEGIN_QUERY está obsoleto. Usa el comando '/Advanced Query' en su lugar." + :block/deprecated-quote "#+BEGIN_QUOTE está obsoleto. Usa el comando '/Quote' en su lugar." + :block/empty-url "URL vacía" + :block/excalidraw-no-longer-supported "Excalidraw ya no es compatible por defecto, planeamos soportarlo a través de plugins." + :block/extraction-error "Error de extracción de bloque" + :block/hide-query "Ocultar consulta" + :block/invalid-hiccup "Hiccup inválido" + :block/invalid-link "Enlace inválido" + :block/invalid-url "URL inválida" + :block/large-block-warning "Los bloques grandes no serán editables ni buscables para no ralentizar la aplicación, por favor usa otro editor para editar este bloque." + :block/last-edited-label "Última edición: {1}" + :block/not-found-warning "No se encontró ningún bloque" + :block/open-block-references "Abrir referencias del bloque" + :block/practice "Practicar" + :block/practice-cards "Practicar tarjetas" + :block/ref-nesting-too-deep "La anidación de referencias de bloque es demasiado profunda" + :block/remove-tag "Eliminar etiqueta" + :block/remove-this-tag "Eliminar esta etiqueta" + :block/render-error "Error de renderizado del bloque:" + :block/set-query "Establecer consulta" + :block/set-query-label "Establecer consulta:" + :block/sort-order "Orden de clasificación" + :block/status-history "Historial de estado" + :block/untitled-query "Consulta sin título" + + :block.macro/embed-deprecated "{{embed}} está obsoleto. Usa el comando '/Node embed' en su lugar." + :block.macro/namespace-deprecated "{{namespace}} está obsoleto. Usa la función {1} en su lugar." + :block.macro/query-deprecated "{{query}} está obsoleto. Usa el comando '/Query' en su lugar." + :block.macro/unsupported-name "Nombre de macro no compatible: {1}" + + :block.reaction/emoji-required-warning "Se requiere emoji" + :block.reaction/unsupported-emoji-warning "Emoji de reacción no compatible" + + :bug-report/desc "¿Podrías ayudarnos resportando un error? Nosotros lo resolveremos tan pronto como podamos." + :bug-report/title "Reportar un problema" + + :bug-report.clipboard/action-desc "Inspeccionar y recolectar datos del portapapeles" + :bug-report.clipboard/action-title "Ayudante para portapapeles" + :bug-report.clipboard/desc "Puedes usar estas prácticas herramientas para darnos información adicional." + :bug-report.clipboard/title "¿El problema que encontró está relacionado con estas características?" + + :bug-report.inspector/back "Ir hacia atrás" + :bug-report.inspector/clipboard-desc "Aquí están los datos leídos del portapapeles." + :bug-report.inspector/copied "¡Copiado al portapapeles!" + :bug-report.inspector/copy "Copiar el resultado" + :bug-report.inspector/copy-desc "Si esto está bien para compartir, da clic en el botón de copiar." + :bug-report.inspector/create-issue "Crear un reporte" + :bug-report.inspector/create-issue-desc "Ahora puedes reportar el resultado pegado en tu portapapeles. Pega el resultado en la sección 'Additional Context' e indica de dónde copiaste el contenido original. ¡Gracias!" + :bug-report.inspector/desc "Presiona {1} para inspeccionar tu portapapeles\no da clic aquí para pegar si estás usando la versión móvil" + :bug-report.inspector/placeholder "Mantenga presionado aquí para pegar si está en un dispositivo móvil" + :bug-report.inspector/tip "¿Hay algo mal? No hay problema, da clic para regresar al paso anterior." + :bug-report.inspector/title "Inspector de datos del portapapeles" + + :bug-report.issue/action-desc "¡Ayuda a mejorar Logseq!" + :bug-report.issue/action-title "Enviar un reporte de problemas" + :bug-report.issue/desc "Si no hay herramientas disponibles para recopilar información adicional, reporta el error directamente." + :bug-report.issue/report-link "Reportar problema" + :bug-report.issue/title "O ..." + + :class/add-property "Añadir propiedad de etiqueta" + :class/tag-properties-desc "Las propiedades de la etiqueta se heredan en todos los nodos que usan la etiqueta. Por ejemplo, cada nodo #Task hereda 'Status' y 'Priority'." + :class/tagged-nodes "Nodos etiquetados" + + :class.built-in/asset "Archivo adjunto" + :class.built-in/card "Tarjeta" + :class.built-in/cards "Tarjetas" + :class.built-in/code-block "Código" + :class.built-in/journal "Diario" + :class.built-in/math-block "Matemáticas" + :class.built-in/page "Página" + :class.built-in/pdf-annotation "Anotación PDF" + :class.built-in/property "Propiedad" + :class.built-in/query "Consulta" + :class.built-in/quote-block "Cita" + :class.built-in/root "Etiqueta raíz" + :class.built-in/tag "Etiqueta" + :class.built-in/task "Tarea" + :class.built-in/template "Plantilla" + :class.built-in/whiteboard "Pizarra" + + :class.validation/built-in-extends-change "La herencia de elementos integrados no se puede cambiar." + :class.validation/cant-add-tag-on-built-in "No se puede agregar una etiqueta en el \"{1}\" integrado." + :class.validation/cant-remove-private-tags "No se pueden eliminar etiquetas privadas: {1}." + :class.validation/cant-remove-tag-built-in "No se puede eliminar la etiqueta con #{1} integrado." + :class.validation/cant-remove-tag-on-built-in "No se puede eliminar la etiqueta en \"{1}\" integrado." + :class.validation/cant-set-tag-built-in "No se puede configurar la etiqueta con #{1} integrado." + :class.validation/duplicate "La etiqueta '{1}' ya existe." + :class.validation/extends-cycle "Se detectó un ciclo en la relación de herencia." + :class.validation/invalid-extends-type "Tipo de herencia inválido." + :class.validation/parents-must-be-tags "Los padres de etiquetas deben ser etiquetas." + :class.validation/tag-with-non-tag "No se puede establecer una etiqueta con una página integrada que no sea una etiqueta \"{1}\"." + + :cmdk.action/apply-theme "Aplicar tema" + :cmdk.action/copy-ref "Copiar referencia" + :cmdk.action/create "Crear" + :cmdk.action/filter "Filtrar" + :cmdk.action/open "Abrir" + :cmdk.action/open-in-sidebar "Abrir en barra lateral" + :cmdk.action/search "Buscar" + :cmdk.action/trigger "Ejecutar" + + :cmdk.create/configure-tag "Configurar etiqueta" + :cmdk.create/page "Crear página" + :cmdk.create/tag "Crear etiqueta" + + :cmdk.error/no-block-link "Este bloque no contiene enlaces." + :cmdk.error/no-page-link "Esta página no contiene enlaces." + :cmdk.error/no-search-item-link "Este resultado de búsqueda no contiene enlaces." + + :cmdk.filter/add "Añadir filtro" + :cmdk.filter/codes "Solo código" + :cmdk.filter/commands "Solo comandos" + :cmdk.filter/current-page "Solo página actual" + :cmdk.filter/files "Solo archivos" + :cmdk.filter/nodes "Solo nodos" + :cmdk.filter/only-label "Solo buscar:" + :cmdk.filter/themes "Solo temas" + + :cmdk.group/codes "Código" + :cmdk.group/commands "Comandos" + :cmdk.group/create "Crear" + :cmdk.group/current-page "Página actual" + :cmdk.group/files "Archivos" + :cmdk.group/filters "Filtros" + :cmdk.group/nodes "Nodos" + :cmdk.group/recently-updated "Actualizados recientemente" + :cmdk.group/themes "Temas" + + :cmdk.info/configure-tag "Configurar #{1}" + :cmdk.info/create-page "Crear la página '{1}'" + :cmdk.info/create-tag "Crear la etiqueta '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Añadir filtro de grafo" + :cmdk.input/default-placeholder "¿Qué está buscando?" + :cmdk.input/move-blocks-placeholder "Mover bloques" + :cmdk.input/type-page-name-placeholder "Escribir nombre de página" + + :cmdk.tip/clear-filter "Pulsa {1} para borrar el filtro de búsqueda" + :cmdk.tip/filter-results "Pulsa {1} para filtrar los resultados de búsqueda" + :cmdk.tip/label "Consejo:" + :cmdk.tip/open-sidebar "Pulsa {1} para abrir la búsqueda en la barra lateral" + + :collaboration/email-address "Dirección de correo electrónico" + :collaboration/invite "Invitar" + :collaboration/members "Miembros:" + :collaboration/remove-access "Revocar acceso" + :collaboration/remove-access-error "Error al eliminar el miembro" + + :color/blue "Azul" + :color/crimson "Carmesí" + :color/cyan "Cian" + :color/grass "Verde hierba" + :color/gray "Gris" + :color/green "Verde" + :color/indigo "Índigo" + :color/orange "Naranja" + :color/pink "Rosa" + :color/plum "Ciruela" + :color/purple "Púrpura" + :color/red "Rojo" + :color/teal "Verde azulado" + :color/tomato "Tomate" + :color/violet "Violeta" + :color/yellow "Amarillo" + + :command.auto-complete/complete "Auto-completar: Escoger elementos seleccionados" + :command.auto-complete/meta-complete "Autocompletado Meta" + :command.auto-complete/next "Auto-completar: Seleccionar elemento siguiente" + :command.auto-complete/prev "Auto-completar: Seleccionar elemento anterior" + :command.auto-complete/shift-complete "Auto-completar: Abrir elemento seleccionado en barra lateral" + + :command.command-palette/toggle "Buscar comandos" + + :command.editor/add-property "Añadir propiedad" + :command.editor/add-property-deadline "Añadir fecha límite" + :command.editor/add-property-icon "Añadir icono" + :command.editor/add-property-priority "Añadir prioridad" + :command.editor/add-property-status "Añadir estado" + :command.editor/add-reaction "Añadir reacción" + :command.editor/backspace "Retroceso / Eliminar hacia atrás" + :command.editor/backward-kill-word "Borrar palabra anterior" + :command.editor/backward-word "Mover cursor una palabra atrás" + :command.editor/beginning-of-block "Mover cursor al inicio del bloque" + :command.editor/bold "Negrita" + :command.editor/clear-block "Borrar contenido del bloque" + :command.editor/collapse-block-children "Colapsar" + :command.editor/copy "Copiar" + :command.editor/copy-embed "Copiar una incrustación de bloque apuntando al bloque actual" + :command.editor/copy-page-url "Copiar url de página" + :command.editor/copy-text "Copiar selección como texto" + :command.editor/cut "Pegar" + :command.editor/cycle-todo "Rotar estado TODO del elemento" + :command.editor/delete "Suprimir / Eliminar hacia delante" + :command.editor/delete-selection "Eliminar bloques seleccionados" + :command.editor/down "Mover cursor abajo / Seleccionar abajo" + :command.editor/end-of-block "Mover cursor al final del bloque" + :command.editor/escape-editing "Escapar de edición" + :command.editor/expand-block-children "Expandir" + :command.editor/follow-link "Seguir enlace bajo el cursor" + :command.editor/forward-kill-word "Borrar palabra posterior" + :command.editor/forward-word "Mover cursor una palabra adelante" + :command.editor/highlight "Resaltado" + :command.editor/indent "Aumentar sangría" + :command.editor/insert-link "Enlace HTML" + :command.editor/insert-youtube-timestamp "Insertar marca de tiempo de YouTube" + :command.editor/italics "Cursiva" + :command.editor/jump "Ir a" + :command.editor/kill-line-after "Borrar línea despues del cursor" + :command.editor/kill-line-before "Borrar línea antes del cursor" + :command.editor/left "Mover cursor a la izquierda / Abrir bloque seleccionado al inicio" + :command.editor/move-block-down "Mover bloque abajo" + :command.editor/move-block-up "Mover bloque arriba" + :command.editor/move-blocks "Mover bloques" + :command.editor/new-block "Crear bloque nuevo" + :command.editor/new-line "Nueva línea en bloque" + :command.editor/open-edit "Editar bloque seleccionado" + :command.editor/open-link-in-sidebar "Abrir enlace en barra lateral" + :command.editor/open-selected-blocks-in-sidebar "Abrir bloques seleccionados en barra lateral" + :command.editor/outdent "Disminuir sangría" + :command.editor/paste-text-in-one-block-at-point "Pegar texto en un bloque en el punto" + :command.editor/quick-add "Añadir rápido" + :command.editor/redo "Rehacer" + :command.editor/right "Mover cursor a la derecha / Abrir bloque seleccionado al final" + :command.editor/select-all-blocks "Seleccionar todos los bloques" + :command.editor/select-block-down "Seleccionar bloque de abajo" + :command.editor/select-block-up "Seleccionar bloque de arriba" + :command.editor/select-down "Seleccionar el contenido a continuación" + :command.editor/select-parent "Seleccionar bloque padre" + :command.editor/select-up "Seleccionar contenido anterior" + :command.editor/set-tags "Establecer etiquetas" + :command.editor/strike-through "Tachado" + :command.editor/toggle-block-children "Mostrar/ocultar hijos del bloque" + :command.editor/toggle-display-hidden-properties "Mostrar/ocultar propiedades ocultas" + :command.editor/toggle-number-list "Alternar lista de números" + :command.editor/toggle-open-blocks "Alternar bloques abiertos, (colapsar o expandir todos)" + :command.editor/undo "Deshacer" + :command.editor/up "Mover cursor arriba / Seleccionar arriba" + :command.editor/zoom-in "Acercar / Adelante" + :command.editor/zoom-out "Alejar / Atrás" + + :command.go/all-graphs "Ir a todos los grafos" + :command.go/all-pages "Ir a todas las páginas" + :command.go/backward "Hacia atrás" + :command.go/electron-find-in-page "Encontrar texto en página" + :command.go/electron-jump-to-the-next "Saltar a la siguiente coincidencia de tu búsqueda en la barra Encontrar" + :command.go/electron-jump-to-the-previous "Saltar a la coincidencia anterior de tu búsqueda en la barra Encontrar" + :command.go/flashcards "Alternar tarjetas de memorización" + :command.go/forward "Hacia adelante" + :command.go/graph-view "Ir a vista de grafos" + :command.go/home "Ir a página de inicio" + :command.go/journals "Ir a los diarios" + :command.go/keyboard-shortcuts "Ir a atajos de teclado" + :command.go/next-journal "Ir al siguiente diario" + :command.go/prev-journal "Ir al diario anterior" + :command.go/search "Buscar en el grafo" + :command.go/search-in-page "Buscar bloques en página" + :command.go/search-themes "Buscar temas" + :command.go/tomorrow "Ir a mañana" + + :command.graph/add "Agregar un grafo" + :command.graph/db-add "Añadir a base de datos" + :command.graph/db-save "Guardar base de datos" + :command.graph/export-as-html "Exportar grafo público como html " + :command.graph/open "Seleccionar grafo a abrir" + :command.graph/remove "Eliminar un grafo" + + :command.misc/copy "Copiar" + :command.misc/export-block-data "Exportar datos del bloque" + :command.misc/export-graph-ontology-data "Exportar datos de ontología del grafo" + :command.misc/export-page-data "Exportar datos de la página" + :command.misc/import-edn-data "Importar datos EDN" + + :command.page/toggle-favorite "Agregar a/eliminar de favoritos" + + :command.pdf/close "PDF: Cerrar documento pdf actual" + :command.pdf/find "PDF: Buscar texto del documento pdf actual" + :command.pdf/next-page "PDF: Página siguiente del documento pdf actual" + :command.pdf/previous-page "PDF: Página previa del documento pdf actual" + + :command.publish/open-dialog "Abrir diálogo de publicación" + + :command.search/re-index "Reconstruir índice de búsqueda" + + :command.shell/run "Ejecutar comando git" + + :command.sidebar/clear "Cerrar todo en la barra lateral derecha" + :command.sidebar/close-top "Cierra el elemento superior en la barra lateral derecha" + :command.sidebar/open-today-page "Abrir la página de hoy en barra lateral derecha" + + :command.ui/clear-all-notifications "Borrar todas las notificaciones" + :command.ui/customize-appearance "Personalizar apariencia" + :command.ui/goto-plugins "Ir al panel de extensiones" + :command.ui/highlight-recent-blocks "Resaltar bloques recientes" + :command.ui/install-plugin-from-github "Instalar extensión desde GitHub" + :command.ui/install-plugins-from-file "Instalar extensiones de plugins.edn" + :command.ui/select-theme-color "Seleccionar temas de colores disponibles" + :command.ui/toggle-brackets "Alternar corchetes" + :command.ui/toggle-contents "Alternar Contenido en barra lateral" + :command.ui/toggle-document-mode "Alternar modo documento" + :command.ui/toggle-help "Alternar ayuda" + :command.ui/toggle-left-sidebar "Alternar barra lateral izquierda" + :command.ui/toggle-right-sidebar "Alternar barra lateral" + :command.ui/toggle-settings "Alternar Opciones" + :command.ui/toggle-theme "Alternar entre tema claro/oscuro" + :command.ui/toggle-wide-mode "Alternar modo ancho" + + :command.window/close "Cerrar ventana" + + :context-menu/developer-tools "Herramientas de desarrollador" + :context-menu/make-a-flashcard "Crear una tarjeta de memorización" + :context-menu/set-icon "Establecer icono" + :context-menu/toggle-number-list "Alternar lista de números" + + :date/invalid-date-warning "{1} no es una fecha válida. Por favor inténtalo de nuevo" + + :date.nlp/last-friday "Viernes pasado" + :date.nlp/last-monday "Lunes pasado" + :date.nlp/last-month "El mes pasado" + :date.nlp/last-saturday "Sábado pasado" + :date.nlp/last-sunday "Domingo pasado" + :date.nlp/last-thursday "Jueves pasado" + :date.nlp/last-tuesday "Martes pasado" + :date.nlp/last-wednesday "Miércoles pasado" + :date.nlp/last-week "La semana pasada" + :date.nlp/last-year "El año pasado" + :date.nlp/next-friday "Viernes próximo" + :date.nlp/next-monday "Lunes próximo" + :date.nlp/next-month "El próximo mes" + :date.nlp/next-saturday "Sábado próximo" + :date.nlp/next-sunday "Domingo próximo" + :date.nlp/next-thursday "Jueves próximo" + :date.nlp/next-tuesday "Martes próximo" + :date.nlp/next-wednesday "Miércoles próximo" + :date.nlp/next-week "La próxima semana" + :date.nlp/next-year "El próximo año" + :date.nlp/this-friday "Este viernes" + :date.nlp/this-monday "Este lunes" + :date.nlp/this-month "Este mes" + :date.nlp/this-saturday "Este sábado" + :date.nlp/this-sunday "Este domingo" + :date.nlp/this-thursday "Este jueves" + :date.nlp/this-tuesday "Este martes" + :date.nlp/this-wednesday "Este miércoles" + :date.nlp/this-week "Esta semana" + :date.nlp/this-year "Este año" + :date.nlp/today "Hoy" + :date.nlp/tomorrow "Mañana" + :date.nlp/yesterday "Ayer" + + :deeplink/open-block-error "No se pudo abrir el enlace. El ID de bloque `{1}` no existe en el grafo actual." + :deeplink/open-graph-error "No se pudo abrir el grafo. El grafo `{1}` no existe." + :deeplink/open-page-error "No se pudo abrir el enlace. La página `{1}` no existe en el grafo actual." + + :editor/add-content-first-warning "Por favor agrega contenido primero." + :editor/auto-heading "Encabezado automático" + :editor/block-search "Buscar un bloque" + :editor/click-to-edit "Clic para editar" + :editor/code-language-placeholder "Seleccionar idioma" + :editor/collapse-block-children "Colapsar todo" + :editor/cut "Cortar" + :editor/cycle-todo "Rotar el estado de la TODO del elemento actual" + :editor/delete-selection "Eliminar los bloques seleccionados" + :editor/display-tag-inline-hint "para mostrar esta etiqueta en línea en lugar de al final de este nodo." + :editor/expand-block-children "Expandir todo" + :editor/heading "Título {1}" + :editor/moving-blocks-count "Moviendo {1} bloques" + :editor/new-page "Nueva página" + :editor/new-tag "Nueva etiqueta" + :editor/no-block-selected-warning "Ningún bloque seleccionado" + :editor/paste "Pegar" + :editor/reference-node-use-page-ref "Para referenciar un nodo, por favor usa `[[]]`." + :editor/remove-heading "Quitar encabezado" + :editor/search-for-node "Buscar un nodo" + :editor/search-for-tag "Buscar una etiqueta" + :editor/search-template-placeholder "Buscar una plantilla" + :editor/template-insert-error "Error al insertar plantilla: {1}" + + :editor.document-mode/new-block-hint "{1} para crear un nuevo bloque" + :editor.document-mode/title "Modo documento" + :editor.document-mode/toggle-desc "Pulsa `D` o escribe {1} para alternar el modo documento" + + :editor.quick-add/add-to-today "Añadir a la página de hoy" + :editor.quick-add/title "Añadir rápido" + + :editor.slash/advanced-query "Consulta avanzada" + :editor.slash/advanced-query-desc "Crear un bloque de consulta avanzada" + :editor.slash/calculator "Calculadora" + :editor.slash/calculator-desc "Insertar una calculadora" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Bloque de código" + :editor.slash/code-block-desc "Insertar bloque de código" + :editor.slash/current-time "Hora actual" + :editor.slash/current-time-desc "Insertar la hora actual" + :editor.slash/date-picker "Selector de fecha" + :editor.slash/date-picker-desc "Selecciona una fecha e insértala aquí" + :editor.slash/embed-html "Insertar HTML" + :editor.slash/embed-twitter-tweet "Insertar tweet de Twitter" + :editor.slash/embed-video-url "Insertar URL de vídeo" + :editor.slash/embed-youtube-timestamp "Insertar timestamp de YouTube" + :editor.slash/group-advanced "AVANZADO" + :editor.slash/group-basic "BÁSICO" + :editor.slash/group-format "FORMATO" + :editor.slash/group-heading "Encabezado" + :editor.slash/group-list-type "TIPO DE LISTA" + :editor.slash/group-plugins "COMPLEMENTOS" + :editor.slash/group-priority "PRIORIDAD" + :editor.slash/group-task-date "FECHA DE TAREA" + :editor.slash/group-task-status "ESTADO DE TAREA" + :editor.slash/group-time-and-date "HORA Y FECHA" + :editor.slash/heading-label "Encabezado {1}" + :editor.slash/image-link "Enlace de imagen" + :editor.slash/image-link-desc "Crear un enlace HTTP a una imagen" + :editor.slash/link-desc "Crear un enlace HTTP" + :editor.slash/math-block "Bloque matemático" + :editor.slash/math-block-desc "Crear un bloque LaTeX" + :editor.slash/no-priority "Sin prioridad" + :editor.slash/node-embed "Inserción de nodo" + :editor.slash/node-embed-desc "Insertar un nodo aquí" + :editor.slash/node-reference "Referencia de nodo" + :editor.slash/node-reference-desc "Crear un enlace hacia atrás a un nodo (una página o un bloque)" + :editor.slash/normal-text "Texto normal" + :editor.slash/normal-text-desc "Limpiar encabezado y establecer como texto normal" + :editor.slash/number-children "Hijos numerados" + :editor.slash/number-list "Lista numerada" + :editor.slash/priority-desc "Establecer prioridad a {1}" + :editor.slash/priority-label "Prioridad {1}" + :editor.slash/query-function "Función de consulta" + :editor.slash/query-function-desc "Crear una función de consulta" + :editor.slash/quote-desc "Crear un bloque de cita" + :editor.slash/status-desc "Establecer estado a {1}" + :editor.slash/template-desc "Insertar una plantilla creada aquí" + :editor.slash/today-desc "Insertar la fecha de hoy" + :editor.slash/tomorrow-desc "Insertar la fecha de mañana" + :editor.slash/underline "Subrayado" + :editor.slash/underline-desc "Crear decoración de texto subrayado" + :editor.slash/upload-asset "Cargar un archivo" + :editor.slash/upload-asset-desc "Cargar tipos de archivo como imagen, PDF, DOCX, etc." + :editor.slash/yesterday-desc "Insertar la fecha de ayer" + + :electron/about "Acerca de Logseq" + :electron/add-to-dictionary "Añadir al diccionario" + :electron/block-not-exist "No se pudo abrir el enlace. El identificador de bloque `{1}` no existe en el grafo." + :electron/cancel "Cancelar" + :electron/copy-image "Copiar imagen" + :electron/link-open-confirm "¿Seguro que deseas abrir este enlace?\n{1}" + :electron/link-open-failed-missing-graph "No se pudo abrir el enlace. Falta el grafo." + :electron/link-open-failed-no-graph "No se pudo abrir el enlace. No se pudo asociar el identificador de grafo `{1}` con ningún grafo vinculado." + :electron/link-open-failed-no-target "No se pudo abrir el enlace. No se pudo asociar `{1}` con ningún destino." + :electron/look-up "Buscar selección" + :electron/main-exception "[Excepción del proceso principal]\n{1}\n{2}" + :electron/new-window "Nueva ventana" + :electron/official-docs "Documentación oficial" + :electron/ok "OK" + :electron/open-dir-error "No se pudo abrir el directorio: {1}" + :electron/save-image "Guardar imagen" + :electron/save-image-as "Guardar imagen como" + :electron/search-with-google "Buscar con Google" + :electron/unimplemented-callback "Acción x-callback-url no implementada: `{1}`." + :electron/version "Versión {1}" + :electron/write-file-error "No se pudo escribir en el archivo {1}, {2}." + :electron/write-file-error-with-backup "No se pudo escribir en el archivo {1}, {2}. Se guardó un archivo de respaldo en {3}." + + :encryption/cloud-password-rich (fn [] ["Si pierdes tu contraseña, no se podrá descifrar ninguno de tus datos en la nube. " [:span "Aun así, podrás seguir accediendo a la versión local de tu grafo."]]) + :encryption/current-password "Contraseña actual" + :encryption/enter-password "Ingresar contraseña" + :encryption/enter-password-again "Ingresar contraseña de nuevo" + :encryption/enter-password-title "Ingresar contraseña" + :encryption/failed-to-force-reset-password "Error en el restablecimiento forzado de contraseña" + :encryption/failed-to-update-password "Error al actualizar la contraseña" + :encryption/fetch-key-pair-error "Obteniendo usuario rsa-key-pair err: {1}" + :encryption/fetching-key-pair "Obteniendo par de claves" + :encryption/force-reset-password "Restablecer contraseña forzosamente" + :encryption/force-reset-password-successfully "Contraseña restablecida forzosamente" + :encryption/force-resetting-password "Restablecimiento forzado en progreso" + :encryption/forgot-password-question "¿Olvidó su contraseña?" + :encryption/forgot-password-warning "Si olvida su contraseña, los datos cifrados no se podrán recuperar." + :encryption/init-key-pair "Inicializar par de claves" + :encryption/init-key-pair-error "Error de par de claves de inicio: {1}" + :encryption/password-not-matched "Las contraseñas no coinciden" + :encryption/password-updated-successfully "Contraseña actualizada" + :encryption/remember-password-rich (fn [] [[:span "Asegúrate de "] "recordar la contraseña que configuraste, porque no podremos restablecerla ni recuperarla si la olvidas, " [:span "y te recomendamos "] "guardar una copia de seguridad segura de ella."]) + :encryption/reset-password "Restablecer contraseña" + :encryption/set-new-password "Establecer nueva contraseña" + :encryption/set-password-title "Establecer contraseña" + :encryption/updating-password "Actualizando contraseña" + :encryption/wrong-password "Contraseña incorrecta" + + :export/backup-successful "¡Copia de seguridad exitosa!" + :export/block-data-copied "Datos del bloque copiados al portapapeles" + :export/collecting-assets "Recopilando archivos adjuntos" + :export/copied-to-clipboard "¡Copiado al portapapeles!" + :export/copy-or-export-as "Copiar / Exportar como..." + :export/creating-zip "Creando zip" + :export/db-backup-error "Error en la copia de seguridad de la base de datos." + :export/db-edn "Exportar como archivo EDN" + :export/debug-transit-desc "Exporta a un archivo .transit para enviárnoslo para depuración. Los datos sensibles serán eliminados del archivo exportado." + :export/debug-transit-file "Exportar archivo transit de depuración" + :export/edn-desc "Exporta a un archivo .edn legible y editable. No dependas de esto como respaldo principal." + :export/error-unexpected "Ocurrió un error inesperado durante la exportación. Consulta la consola de JavaScript para más detalles." + :export/exporting "Exportando" + :export/finalizing "Finalizando" + :export/format-text "Texto" + :export/graph "Exportar grafo" + :export/graph-ontology-data-copied "Datos de ontología del grafo copiados al portapapeles" + :export/indent-style-dashes "guiones" + :export/indent-style-label "Estilo de indentación:" + :export/indent-style-none "sin indentación" + :export/indent-style-spaces "espacios" + :export/level-lte "nivel <=" + :export/markdown "Exportar como Markdown estándar (sin propiedades de bloque)" + :export/newline-after-block "salto de línea después del bloque" + :export/no-updates-since-last-export "Sin actualizaciones desde la última exportación." + :export/open-blocks-only "solo bloques abiertos (omitir hijos contraídos)" + :export/page "Exportar página" + :export/page-data-copied "Datos de página copiados al portapapeles" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Preparando zip" + :export/preview-alt "vista previa de exportación" + :export/public-pages "Exportar páginas públicas" + :export/remove-emphasis "quitar énfasis" + :export/remove-properties "quitar propiedades" + :export/remove-tags "quitar #etiquetas" + :export/save-to-file "Guardar en archivo" + :export/sqlite-db "Exportar base de datos SQLite" + :export/title "Exportar" + :export/transparent-background "Fondo transparente" + :export/view-nodes-data-copied "Datos de nodos de vista copiados al portapapeles" + :export/zip "Exportar base de datos SQLite y recursos" + :export/zip-error "Error en la exportación ZIP." + + :export.backup/backup-now "Respaldar ahora" + :export.backup/cancel "Cancelar respaldo" + :export.backup/enabled-desc "Los respaldos por hora están habilitados para este grafo, {1}." + :export.backup/folder "Carpeta de respaldo:" + :export.backup/hourly-note "Se creará un respaldo cada hora." + :export.backup/open-folder "abrir carpeta de respaldos de este grafo" + :export.backup/schedule "Programar respaldo" + :export.backup/set-folder-first "Establece la carpeta de respaldo primero" + :export.backup/sqlite-desc "Forma principal de respaldar el contenido del grafo en un único archivo .sqlite." + :export.backup/unsupported-desc "Tu navegador no es compatible con {{The File System Access API}}, por favor cambia a un navegador basado en Chromium." + :export.backup/zip-desc "Forma principal de respaldar el contenido y archivos adjuntos del grafo en un archivo .zip." + + :file/config-duplicate-keys "El archivo '{1}' tiene claves duplicadas. La clave '{2}' se asigna varias veces." + :file/config-invalid "El archivo de configuración es inválido" + :file/format-not-supported "Formato .{1} no soportado." + :file/label "Archivo" + :file/last-modified-at "Fecha de modificación" + :file/name "Nombre del archivo" + :file/no-data "No hay datos" + :file/title "Archivo {1}" + + :file.config/deprecation-title "El archivo {1} tiene las siguientes deprecaciones:" + :file.config/error-title "El archivo {1} tiene los siguientes errores:" + :file.config/invalid-desc "Asegúrate de que la configuración está envuelta en {}." + :file.config/invalid-title "El archivo {1} no es válido." + :file.config/read-failed-desc "Asegúrate de que tu configuración está envuelta en {}. También asegúrate de que los caracteres '( { [' tienen sus caracteres de cierre correspondientes ') } ]'." + :file.config/read-failed-title "Error al leer el archivo {1}" + + :flashcard/add-query "Agregar nueva consulta" + :flashcard/all-cards "Todas las tarjetas" + :flashcard/select-cards "Seleccionar tarjetas" + :flashcard/shortcut-tooltip "Atajo: {1}" + + :flashcard.empty/desc "Puedes agregar \"{1}\" a cualquier bloque para convertirlo en una tarjeta o ejecutar \"/cloze\" para agregar algunos clozes." + :flashcard.empty/title "¡Hora de crear una tarjeta!" + + :flashcard.rating/again "Otra vez" + :flashcard.rating/again-desc "Respondimos mal. Esto significa automáticamente que hemos olvidado la tarjeta. Es un lapsus de memoria." + :flashcard.rating/easy "Fácil" + :flashcard.rating/easy-desc "La respuesta fue correcta y la recordamos rápido y con confianza, sin esfuerzo mental." + :flashcard.rating/good "Bien" + :flashcard.rating/good-desc "La respuesta fue correcta, pero tuvimos que hacer un pequeño esfuerzo mental para recordarla." + :flashcard.rating/hard "Difícil" + :flashcard.rating/hard-desc "La respuesta fue correcta, pero no estábamos seguros o tardamos demasiado en recordarla." + + :flashcard.review/finished "¡Felicidades, has revisado todas las tarjetas en esta consulta, nos vemos en la próxima! 💯" + :flashcard.review/hide-answers "Ocultar respuestas" + :flashcard.review/show-answers "Mostrar respuestas" + :flashcard.review/show-clozes "Mostrar espacios en blanco" + + :format/bold "Negrita" + :format/code "Código" + :format/highlight "Resaltado" + :format/italics "Cursiva" + :format/strikethrough "Tachado" + + :graph/all-graphs "Todos los grafos" + :graph/already-exists-error "El grafo '{1}' ya existe. Por favor intenta con otro nombre." + :graph/as-png "como PNG" + :graph/built-in-pages "Páginas integradas" + :graph/charge-range "Rango de carga" + :graph/charge-strength "Fuerza de carga" + :graph/click-to-search "Clic para buscar" + :graph/create-db "Crear un grafo de BD" + :graph/create-error "Error al crear el grafo" + :graph/create-new "Crear un nuevo grafo" + :graph/created-before "Creado antes de" + :graph/creating "Creando grafo" + :graph/delete-local-action "Eliminar grafo local" + :graph/delete-local-confirm-desc "¿Está seguro de que desea eliminar permanentemente el gráfo \"{1}\" de Logseq?" + :graph/delete-server-action "Eliminar del servidor" + :graph/delete-server-confirm-desc "¿Está seguro de que desea eliminar permanentemente el gráfo \"{1}\" de nuestro servidor?" + :graph/delete-warning "⚠️ Tenga en cuenta que no podemos recuperar este gráfo después de eliminarlo. Asegúrate de tener copias de seguridad antes de eliminarlo." + :graph/diff "Git diff" + :graph/downloading "descargando" + :graph/encrypt-data-label "Cifrar datos del grafo" + :graph/excluded-pages "Páginas excluidas" + :graph/forces "Fuerzas" + :graph/gc-success "¡Limpieza del grafo completada!" + :graph/last-opened-at-label "Abierto por última vez: {1}" + :graph/leave-action "Salir de este grafo" + :graph/leave-confirm-desc "¿Está seguro de que desea abandonar este gráfo?" + :graph/leave-error "Error al abandonar el grafo" + :graph/left "Grafo abandonado" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "enlace" "enlaces"))) + :graph/link-distance "Distancia de enlace" + :graph/local-graphs "Grafos locales:" + :graph/n-hops-from-selected-nodes "N saltos desde los nodos seleccionados" + :graph/name-placeholder "nombre de tu grafo" + :graph/nodes "Nodos" + :graph/orphan-pages "Páginas huérfanas" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "página" "páginas"))) + :graph/pause-simulation "Pausar simulación" + :graph/preparing "preparando" + :graph/refresh-remote-graphs "Actualizar grafos remotos" + :graph/remote-graphs "Grafos remotos:" + :graph/removed "Gráfico eliminado \"{1}\"" + :graph/removed-and-redirecting "Se eliminó el gráfico \"{1}\". Redirigiendo al gráfico \"{2}\"" + :graph/removed-from-sync "Grafo eliminado de la sincronización" + :graph/reset "Restablecer grafo" + :graph/reset-forces "Restablecer fuerzas" + :graph/search "Buscar" + :graph/shared-graphs "Grafos compartidos" + :graph/updated-switching "Grafo actualizado. Cambiando..." + :graph/use-sync-beta "Usar Logseq Sync (beta)" + :graph/use-sync-label "Usar Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "No se pudieron calcular los diagnósticos de suma de comprobación del grafo." + :graph.diagnostics/checksum-recomputed-success "Suma de comprobación recalculada. Recalculada: {1}, local: {2}, remota: {3}. Se descargó {4}.edn con {5} bloques y atributos de suma de comprobación {6}." + :graph.diagnostics/checksum-unavailable-warning "No se pudieron calcular los diagnósticos de suma de comprobación del grafo actual." + :graph.diagnostics/client-ops-export-failed-error "No se pudo exportar Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Error al exportar Client ops SQLite: tipo de payload no válido {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exportado: {1}.sqlite" + :graph.diagnostics/no-graph-warning "No se encontró ningún grafo." + + :graph.page/show-journals "Mostrar Diarios" + :graph.page/title "Grafo de página" + + :graph.switch/add-graph-action "Sí, añadir otro grafo" + :graph.switch/empty-desc "No encontramos un grafo. ¿Quiere añadir otro?" + :graph.switch/prompt "Cambiar a:" + :graph.switch/select-prompt "Seleccione un grafo" + + :graph.validation/config-arweave-gateway-warning "ya no es compatible." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "ya no es compatible. Por favor usa '/' y reporta los bugs." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "no se usa en gráfos DB ya que solo hay modo markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "La validación detectó {1} bloque(s) inválido(s). Estos bloques pueden tener errores. Intentando corregir bloques inválidos. Ejecuta la validación nuevamente para ver si se corrigieron." + :graph.validation/name-reserved-characters-warning "El nombre del grafo no puede contener los siguientes caracteres reservados:" + :graph.validation/reserved-character-asterisk "asterisco" + :graph.validation/reserved-character-backslash "barra invertida" + :graph.validation/reserved-character-colon "dos puntos" + :graph.validation/reserved-character-double-quote "comillas dobles" + :graph.validation/reserved-character-forward-slash "barra" + :graph.validation/reserved-character-greater-than "mayor que" + :graph.validation/reserved-character-hash "almohadilla" + :graph.validation/reserved-character-less-than "menor que" + :graph.validation/reserved-character-pipe "barra vertical o pipe" + :graph.validation/reserved-character-plus "más" + :graph.validation/reserved-character-question-mark "signo de interrogación" + :graph.validation/valid "¡Tu gráfo es válido! {1}" + + :header/go-back "Ir hacia atrás" + :header/go-forward "Ir haca adelante" + :header/highlight-recent-blocks "Resaltar bloques recientes" + :header/highlight-recent-blocks-days-ago "Resaltar bloques recientes: hace {1} días" + :header/more "Más" + :header/quit-highlight-recent-blocks "Dejar de resaltar bloques recientes" + :header/toggle-left-sidebar "Alternar barra lateral izquierda" + + :help/about "Acerca de Logseq" + :help/about-title "Acerca de" + :help/ask-community "Preguntar a la comunidad" + :help/awesome-logseq "Increíble Logseq" + :help/block-reference "Referencia de bloque" + :help/blog "Blog de Logseq" + :help/bug "Reportar un problema" + :help/changelog "Registro de cambios" + :help/community-title "Comunidad" + :help/context-menu "Menú contextual" + :help/context-menu-action "Clic derecho en la viñeta" + :help/development-title "Desarrollo" + :help/docs "Documentación" + :help/feature "Solicitar una función" + :help/forum-community "Foro de la comunidad" + :help/handbook "Manual" + :help/learn-more "Más información" + :help/markdown-syntax "Sintaxis de Markdown" + :help/open-link-in-sidebar "Abrir enlace en barra lateral" + :help/open-link-in-sidebar-action "Mayús + clic en la referencia" + :help/privacy "Política de privacidad" + :help/reference-autocomplete "Referencia de página" + :help/release-notes "Notas de la versión" + :help/roadmap "Hoja de ruta" + :help/search "Buscar páginas/bloques/comandos" + :help/slash-autocomplete "Autocompletado de barra '/'" + :help/start "Comenzando" + :help/submit-feedback "Enviar comentarios" + :help/support-forum "Foro de soporte" + :help/terms "Términos" + :help/terms-title "Términos" + :help/usage-title "Uso" + + :help.handbook/chat-on-discord "Chatear en Discord" + :help.handbook/chat-on-discord-desc "Haz preguntas rápidas, conoce a otros usuarios y aprende nuevos flujos de trabajo." + :help.handbook/copy-topic-link "Copiar enlace del tema" + :help.handbook/current-chapter "Capítulo actual" + :help.handbook/help-categories "Categorías de ayuda" + :help.handbook/home "Inicio" + :help.handbook/link-copied "¡Enlace del manual copiado!" + :help.handbook/monthly-posts "publicaciones mensuales" + :help.handbook/next-chapter "Siguiente capítulo" + :help.handbook/popular-topics "Temas populares" + :help.handbook/prev-chapter "Capítulo anterior" + :help.handbook/resources-from "Recursos de {1}" + :help.handbook/search-placeholder "Buscar" + :help.handbook/shortcuts-count "{1} atajos" + :help.handbook/sync "Sincronización" + :help.handbook/title "Ayuda" + :help.handbook/topics "Temas" + :help.handbook/users-online "usuarios en línea" + :help.handbook/visit-the-forum "Visitar el foro" + :help.handbook/visit-the-forum-desc "Da tu opinión, solicita funciones y participa en conversaciones detalladas." + :help.handbook/writing-mode "Modo escritura (vista previa próximamente)" + + :help.shortcuts/desc "Ver atajos y consejos" + :help.shortcuts/label "Atajos de teclado" + :help.shortcuts/shortcut-column "Atajo" + :help.shortcuts/title "Atajos de teclado" + :help.shortcuts/triggers "Iniciadores" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Iconos ({1})" + :icon/matched-count "Coincidencias ({1})" + :icon/search-all "Buscar todo" + :icon/search-emojis "Buscar emojis" + :icon/search-icons "Buscar iconos" + :icon/tab-all "Todo" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Iconos" + + :import/all-tags "Importar todas las etiquetas" + :import/asset-too-large-warning "Se omitió copiar el recurso {1} porque supera el límite de 100 MB." + :import/assets-import-partial "{1}/{2} recursos importados. Detalles en la consola." + :import/assets-imported "{1} recursos importados." + :import/assets-skipped "{1} recursos omitidos. Detalles en la consola." + :import/block-icons-cannot-be-imported "Los iconos de bloque no se pueden importar. Impórtelos manualmente en el bloque {1}." + :import/cannot-import-block-into-non-block-entity "No se puede importar un bloque en una entidad que no es bloque." + :import/db-edn-desc "Importar la exportación EDN de un grafo DB a un nuevo grafo DB" + :import/db-edn-title "EDN a grafo DB" + :import/debug-transit-desc "Importar archivo transit de depuración a un nuevo grafo DB" + :import/debug-transit-title "Transit de depuración" + :import/default-db-graph-behavior "Comportamiento predeterminado del grafo de base de datos" + :import/empty-graph-name "El nombre del grafo no puede estar vacío." + :import/extract-inline-code-snippets "Extraer fragmentos de código en línea como sub-bloques" + :import/file-finished "¡Importación completada!" + :import/file-to-db-desc "Importar una carpeta de grafo Logseq basado en archivos a un nuevo grafo DB" + :import/file-to-db-title "Archivo a grafo DB" + :import/graph-name-conflict "Ya existe un grafo con este nombre. ¡Elija otro nombre!" + :import/graph-name-placeholder "Nombre del grafo" + :import/ignored-assets "{1} recursos omitidos durante la importación. Detalles en la consola de JavaScript." + :import/ignored-files "{1} archivos omitidos durante la importación. Detalles en la consola de JavaScript." + :import/ignored-properties "{1} propiedades omitidas durante la importación" + :import/ignored-properties-fix "Para corregir el tipo de propiedad, cambie el valor al tipo correcto y reimporte el grafo" + :import/invalid-blocks-detected "{1} bloques inválidos detectados durante la importación. La interacción podría fallar. Detalles en la consola de JavaScript." + :import/invalid-edn-file "El archivo EDN proporcionado es inválido. Corrija e intente de nuevo." + :import/loading "Importando" + :import/logseq-config-missing "Error de importación: el grafo Logseq no tiene archivo 'logseq/config.edn'." + :import/new-graph-name "Nuevo nombre del grafo" + :import/notes "Importar notas existentes" + :import/org-files-imported "{1} archivos Org importados como Markdown. El soporte para archivos Org se añadirá más adelante." + :import/page-icons-cannot-be-imported "Los iconos de página no se pueden importar. Impórtelos manualmente en la página {1}." + :import/properties-case-insensitive-commas "Nombres de propiedades (sin distinguir mayúsculas, separados por comas)" + :import/property-classes-placeholder "ej. type" + :import/property-import-manually "Esta propiedad debe importarse manualmente" + :import/property-parent-classes-placeholder "ej. parent" + :import/property-type-mismatch "El valor de la propiedad es de tipo {1}, no {2}" + :import/property-value-tag-parents "Importar padres de etiquetas desde valores de propiedades" + :import/property-value-tags "Importar etiquetas adicionales desde valores de propiedades" + :import/remove-inline-tags "Eliminar etiquetas en línea" + :import/select-edn-or-json "Seleccionar archivo EDN o JSON." + :import/specific-tags "Importar etiquetas específicas" + :import/sqlite-and-assets-desc "Importar un zip que contiene db.sqlite y una carpeta de archivos adjuntos" + :import/sqlite-and-assets-title "SQLite + archivos adjuntos (.zip)" + :import/submitted-edn-invalid "¡Los datos EDN enviados son inválidos! Corrija e intente de nuevo." + :import/successful "¡Importación exitosa!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Etiquetas (sin distinguir mayúsculas)" + :import/title "Importar" + :import/unexpected-error "Error inesperado: {1}" + :import/zip-import-error "Falló la importación de zip: {1}" + :import/zip-missing-db-sqlite "El ZIP no contiene db.sqlite" + + :journal/add-blocks-to-today-success "Bloques añadidos hoy" + :journal/page-cant-convert-warning "Esta página no es una página de diario." + :journal/parse-date-to-name-error "Error al analizar el nombre del diario" + + :journal.default-query/doing "EN CURSO" + :journal.default-query/todo "POR HACER" + + :keymap/all "Todo" + :keymap/already-bound "Atajo ya en uso" + :keymap/also-used-for-action "También usado para {1}" + :keymap/also-used-for-action-in-context "También usado para {1} En contexto {2}" + :keymap/clear "Limpiar" + :keymap/clear-keystroke-filter "Limpiar filtro de teclas" + :keymap/clear-search "Limpiar búsqueda" + :keymap/custom "Personalizado" + :keymap/deactivates-chord "Desactiva el atajo" + :keymap/deactivates-chords "Desactiva {1} combinaciones de atajos" + :keymap/disabled "Deshabilitado" + :keymap/esc-is-reserved "Esc está reservado" + :keymap/hint-cancel "Cancelar" + :keymap/hint-close "Cerrar" + :keymap/hint-reassign "Reasignar" + :keymap/hint-remove "Eliminar" + :keymap/keystroke-filter "Filtro de pulsación de teclas" + :keymap/no-matching-shortcuts "No hay atajos coincidentes" + :keymap/press-a-shortcut "Presione un atajo" + :keymap/press-keys-to-filter "Presione teclas para filtrar" + :keymap/reassign "Reasignar" + :keymap/reassign-tooltip "Reasignar el atajo de esta acción" + :keymap/reassigned-from "Reasignado desde {1}" + :keymap/refresh-all "Actualizar todo" + :keymap/remove-binding "Eliminar atajo" + :keymap/remove-filter "Eliminar filtro" + :keymap/reset "Restablecer" + :keymap/reset-to-default "Restablecer a predeterminado" + :keymap/search-by-keys "Buscar por teclas" + :keymap/search-placeholder "Buscar atajos…" + :keymap/shortcut-added "Atajo añadido" + :keymap/shortcut-removed "Atajo eliminado" + :keymap/toggle-categories-pane "Alternar panel de categorías" + :keymap/undo "Deshacer" + :keymap/unset "Sin asignar" + :keymap/used-by-action "Usado por {1}" + + :library/add-existing-pages "Añadir páginas existentes a la Biblioteca" + :library/add-pages "Agregar páginas" + :library/title "Biblioteca" + + :mobile/camera-access-denied "El acceso a la cámara está denegado. Habilítalo en Configuración > Logseq." + :mobile/microphone-access-denied "El acceso al micrófono está denegado. Habilítalo en Configuración > Logseq." + + :mobile.header/actions "Acciones" + :mobile.header/create-graph "Crear grafo" + :mobile.header/delete-block-confirm-desc "¿Desea eliminar este bloque?" + :mobile.header/delete-page-confirm-desc "¿Desea eliminar esta página?" + + :mobile.intent/file-options "Opciones de archivo" + :mobile.intent/open-with-app "Abrir archivo con tu aplicación favorita" + :mobile.intent/select-option-prompt "Selecciona una opción a realizar" + :mobile.intent/share "Compartir" + + :mobile.log/all "Todos" + :mobile.log/errors-only "Solo errores" + :mobile.log/full "Completo" + :mobile.log/new-first "Más recientes primero" + :mobile.log/old-first "Más antiguos primero" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Cuenta" + :mobile.settings/check-log "Ver registro" + :mobile.settings/discord-community "Comunidad Discord" + :mobile.settings/forum "Foro" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Reportar error" + :mobile.settings/revision "Revisión" + :mobile.settings/theme "Tema" + :mobile.settings/version "Versión" + + :mobile.share/file-import-error "Error al importar archivo compartido" + :mobile.share/media-import-error "Error al importar medio compartido" + :mobile.share/unsupported-content-warning "El análisis del contenido compartido actual no es compatible. Por favor reporta los siguientes códigos en {1}. Lo revisaremos pronto." + :mobile.share/unsupported-import-type "La importación de archivos {1} no es compatible. Puedes reportarlo en {2}. Lo revisaremos pronto." + + :mobile.tab/capture "Capturar" + :mobile.tab/go-to "Ir a" + :mobile.tab/graphs "Grafos" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Copiar referencia" + :mobile.toolbar/copy-url "Copiar URL" + :mobile.toolbar/hide "Ocultar" + :mobile.toolbar/indent "Indentar" + :mobile.toolbar/outdent "Desindentar" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Rehacer" + :mobile.toolbar/reference "Referencia" + :mobile.toolbar/slash "Barra" + :mobile.toolbar/tag "Etiqueta" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Deshacer" + :mobile.toolbar/unselect "Deseleccionar" + + :nav/all-files "Todos los archivos" + :nav/all-journals "Todos los diarios" + :nav/appearance "Apariencia" + :nav/assets "Recursos" + :nav/cannot-go-to-internal-page "No se puede ir a la página interna" + :nav/flashcards "Tarjetas de memorización" + :nav/graph "Grafo" + :nav/graph-view "Vista de Grafo" + :nav/help "Ayuda" + :nav/home "Inicio" + :nav/invalid-jump-error "Salto inválido" + :nav/journals "Diarios" + :nav/plugins "Extensiones" + :nav/search "Buscar" + :nav/settings "Configuración" + :nav/skip-to-main-content "Saltar a contenido principal" + :nav/tasks "Tareas" + :nav/themes "Temas" + + :nav.all-pages/label "Todas las páginas" + :nav.all-pages/title "Todas las páginas" + + :node/built-in-cant-delete-error "Los elementos integrados no se pueden eliminar." + :node/new "Nuevo nodo" + + :notification/clear-all "Limpiar todo" + :notification/copied "Copiado" + + :onboarding.import/desc "Si están en formato EDN o Markdown Logseq puede trabajar con ellos." + :onboarding.import/sqlite-desc "Importar desde base de datos SQLite" + :onboarding.import/title "¿Tienes notas que quieras importar?" + + :onboarding.import-option/desc "También puedes hacer esto después en la aplicación." + :onboarding.import-option/title "Importar notas existentes" + + :onboarding.setup/desc "Primero tienes que escoger una carpeta donde Logseq va a guardar tus pensamientos, ideas y notas." + :onboarding.setup/title (fn [] ["¡Bienvenido a " [:strong "Logseq!"]]) + + :page/add-to-favorites "Añadir a Favoritos" + :page/added-tag-to-node "Se agregó la etiqueta \"{1}\" a \"{2}\"" + :page/backlinks "Vínculos de retroceso" + :page/clear "Limpiar" + :page/clear-local-storage-desc "Esto elimina preferencias menores como la preferencia de tema claro/oscuro." + :page/cleared "Vaciado" + :page/contents "Contenido" + :page/convert-to-tag "Convertir en etiqueta" + :page/copy-url "Copiar URL de la página" + :page/create "Crear una nueva página" + :page/created-at "Creada el" + :page/current-graph-as-sqlite-db "grafo actual como base de datos SQLite" + :page/default-query-error "Error en consulta predeterminada:" + :page/delete "Eliminar página" + :page/go-back-home "Volver al inicio" + :page/hide-properties "Ocultar propiedades" + :page/local-storage "almacenamiento local" + :page/logseq-is-having-a-problem "Logseq está teniendo un problema. Para intentar volver a un estado de trabajo, intenta los siguientes pasos seguros en orden:" + :page/make-private "Hacer privada" + :page/make-public "Hacer pública al publicar" + :page/moved-to-recycle "El nodo ha sido movido a la papelera" + :page/name "Nombre de la página" + :page/no-page-found-to-copy "No se encontró ninguna página para copiar" + :page/not-found "Página no encontrada" + :page/not-found-desc "¡Ups! La página que buscas no existe." + :page/not-found-title "Página no encontrada" + :page/not-found-warning "No se encontró ninguna página" + :page/open-all-graphs-desc "También puedes ir a {{All graphs}} para cambiar a otro grafo." + :page/open-issue-desc "Si estos pasos de solución no resolvieron tu problema, por favor {{open an issue}}." + :page/open-properties "Abrir propiedades" + :page/rebuild "Reconstruir" + :page/relaunch "Reiniciar" + :page/relaunch-desc "Cerrar y volver a abrir la aplicación." + :page/scheduled-and-deadline "Programado y Fecha límite" + :page/search-index "índice de búsqueda" + :page/send-db-for-debugging "Puedes enviarlo a help@logseq.com para depuración." + :page/something-went-wrong "Algo malió sal" + :page/step "Paso {1}" + :page/the-app "la aplicación" + :page/try "Intentar" + :page/unfavorite "Quitar página de favoritos" + :page/unknown "Página desconocida" + :page/updated-at "Actualizada el" + + :page.convert/block-parent-not-page "No se puede convertir el bloque. El padre no es una página." + :page.convert/cant-be-block "La página \"{1}\" no se puede convertir en un bloque." + :page.convert/cant-be-block-has-children "La página \"{1}\" no se puede convertir en un bloque porque tiene páginas secundarias." + :page.convert/cant-be-block-move-first "La página \"{1}\" no se puede convertir en un bloque; muévala primero a otra página." + :page.convert/page-to-tag-action "Convertir \"{1}\" en etiqueta" + :page.convert/page-to-tag-built-in "Las páginas integradas no pueden ser etiquetas" + :page.convert/page-to-tag-duplicate "Ya existe una etiqueta con el nombre \"{1}\"." + :page.convert/page-to-tag-namespaced "Las páginas con espacio de nombres no pueden ser etiquetas" + :page.convert/property-value-to-page "No se puede convertir el valor de propiedad en página." + :page.convert/tag-to-page-action "Convertir etiqueta en página" + :page.convert/tag-to-page-built-in "Las etiquetas integradas no pueden ser páginas" + :page.convert/tag-to-page-confirm-desc "Convertir una etiqueta en página también elimina sus propiedades de etiqueta y la etiqueta de todos los nodos que la usan. ¿Desea continuar?" + :page.convert/tag-to-page-duplicate "Ya existe una página con el nombre \"{1}\"." + :page.convert/tag-to-page-has-children "La etiqueta tiene elementos hijos y no se puede convertir" + + :page.delete/batch-confirm-title "¿Está seguro de que desea eliminar estas páginas? Las propiedades y etiquetas se eliminarán permanentemente y las páginas se moverán a la Papelera." + :page.delete/confirm-title "¿Está seguro de que desea eliminar esta página?" + :page.delete/permanent-confirm-title "¿Está seguro de que desea eliminar permanentemente esta página?" + :page.delete/success "¡La página \"{1}\" se eliminó correctamente!" + :page.delete/total "Total: {1}" + :page.delete/warning "Se eliminó el contenido de estas páginas pero no se pudo eliminar: {1}. Consulte la consola de JavaScript para obtener más detalles." + + :page.validation/cant-set-built-in-tags "La nueva página no puede establecer etiquetas integradas: {1}" + :page.validation/duplicate "Ya existe otra página denominada \"{1}\" para las etiquetas: {2}." + :page.validation/name-blank "El nombre de página no puede estar vacío." + :page.validation/name-no-hash "El nombre de página no puede incluir #" + :page.validation/name-no-slash "El nombre de página no puede contener /." + :page.validation/parents-must-be-pages "Los padres de páginas deben ser páginas." + + :pdf/annotations-page "Página de anotaciones" + :pdf/area-highlight-shortcut "Resaltado de área ({1})" + :pdf/auto-fit "Ajuste automático" + :pdf/auto-open-context-menu "Abrir automaticamente menú contextual para la selección." + :pdf/copy-ref "Copiar referencia" + :pdf/copy-text "Copiar texto" + :pdf/corrupted-file-error "Error: {1}\n¿Está corrupto este archivo .pdf?\nPor favor confirma con un visor PDF externo." + :pdf/doc-metadata "Metadatos del documento" + :pdf/enter-to-search "Enter para buscar" + :pdf/find-results "{1} de {2} coincidencias (\"{3}\")" + :pdf/generic-error "Error: {1}\n{2}\nPor favor confirma con el recurso del archivo PDF." + :pdf/highlight-mode "Modo resaltado" + :pdf/highlights "Resaltados" + :pdf/hl-block-colored "Etiqueta de color para resaltar bloque" + :pdf/linked-ref "Referencias vinculadas" + :pdf/load-highlights-file-error "Error: fallo al cargar el archivo de resaltado: \"{1}\". \n{2}" + :pdf/missing-file-error "Error: {1}\n ¿Es esta la ruta correcta?" + :pdf/more-settings "Más ajustes" + :pdf/no-outlines "Sin esquema" + :pdf/not-found "No encontrado." + :pdf/open-in-app-window "Abrir en ventana de la aplicación" + :pdf/open-in-external-window "Abrir en ventana externa" + :pdf/outline "Esquema" + :pdf/page-label "Página {1}" + :pdf/password-protected-desc "Este documento está protegido con contraseña. Por favor ingresa una contraseña:" + :pdf/password-required "Contraseña requerida" + :pdf/search "Buscar" + :pdf/search-placeholder "buscar" + :pdf/toggle-dashed "Estilo punteado para las áreas resaltadas" + :pdf/viewer "visor PDF" + :pdf/zoom-in "Acercar" + :pdf/zoom-out "Alejar" + + :plugin/all "Todo" + :plugin/auto-update-check "Comprobación automática de actualizaciones" + :plugin/auto-update-check-feedback "Comprobación automática de actualizaciones: {1}!" + :plugin/check-all-updates "Buscar actualizaciones" + :plugin/check-update "Buscar actualización" + :plugin/checked "Comprobado" + :plugin/checking-for-updates "Comprobando por actualizaciones de extensiones..." + :plugin/contribute "✨ Escribir y publicar nueva extensión" + :plugin/custom-js-alert "Se encontró el archivo custom.js, desea permitir que se ejecute? (Si no comprende el contenido de este archivo se recomienda no permitir su ejecución dado que representa ciertos riesgos de seguridad)." + :plugin/date-added "Fecha de adición" + :plugin/delete-alert "¿Está seguro de desinstalar la extensión [{1}]?" + :plugin/disable-for-performance-feedback "El plugin {1} está desactivado." + :plugin/disable-now "Desactivar ahora" + :plugin/disabled "Inactivo" + :plugin/does-not-support-db "No es compatible con grafos DB" + :plugin/downloads "Descargas" + :plugin/empty "No se encontró nada." + :plugin/enabled "Habilitado" + :plugin/existed-package "Paquete de complementos existente ({1})." + :plugin/fatal-error "Fatal: {1}" + :plugin/found-n-updates "Se encontraron {1} actualizaciones" + :plugin/found-updates "Nuevas actualizaciones" + :plugin/install "Instalar" + :plugin/install-error "Error en la instalación: {1}\n{2}" + :plugin/installed "Instalado" + :plugin/installed-plugin "Extensión instalada: {1}" + :plugin/installing "Instalando" + :plugin/invalid-github-repo-url "URL de repositorio GitHub inválida" + :plugin/invalid-package "Paquete inválido" + :plugin/invalid-plugins-edn "plugins.edn inválido" + :plugin/list-of-updates "Actualizaciones de extensiones: " + :plugin/load-from-web-url "Cargar desde URL web" + :plugin/load-plugin-indicator "Cargar complemento: {1}..." + :plugin/load-unpacked "Cargar extensión desempaquetada" + :plugin/loading-indicator "CARGANDO" + :plugin/malformed-plugins-edn "plugins.edn malformado" + :plugin/marketplace "Tienda" + :plugin/new-registered "Nueva extensión registrada" + :plugin/no-settings-schema "¡Sin esquema de configuración!" + :plugin/not-installed "No instalado" + :plugin/open-logseq-dir "Abrir" + :plugin/open-package "Abrir paquete" + :plugin/open-preferences "Abrir preferencias" + :plugin/open-settings "Abrir opciones" + :plugin/perf-tip "Este plugin {1} tarda demasiado en cargar, afectando el tiempo de inicio de la aplicación y posiblemente causando que otros plugins no se carguen." + :plugin/popular "Popular" + :plugin/proxy-check-success "¡Éxito! Estado {1} en {2}ms." + :plugin/readme-empty-warning "Sin contenido README" + :plugin/refresh-lists "Actualizar listas" + :plugin/reload "Recargar" + :plugin/remote-error "Error remoto: {1}" + :plugin/report-modal-desc "Si algún plugin no está disponible o crees que contiene código malicioso, envía un correo a {1}. Menciona el nombre del plugin y la URL de su repositorio de GitHub. El equipo de Logseq generalmente responde dentro de un día hábil." + :plugin/report-security "Reportar problema de seguridad" + :plugin/restart "Reiniciar la aplicación" + :plugin/search-plugin "Buscar extensiones" + :plugin/security-warning "Las extensiones pueden acceder a tu grafo y tus archivos locales, emitir solicitudes de red." + :plugin/setting-not-handled "#No Manejado# {1}" + :plugin/settings-schema-error "¡Error en el esquema de configuración!" + :plugin/stars "Estrellas" + :plugin/supports-db "Soporte BD" + :plugin/title "Título ({1})" + :plugin/uninstall "Desinstalar" + :plugin/unpacked "Desempaquetado" + :plugin/unpacked-tips "Seleccionar el directorio de la extensión" + :plugin/up-to-date "Está actualizado {1}" + :plugin/update "Actualizar" + :plugin/update-all-selected "Actualizar todo lo seleccionado" + :plugin/update-all-success "¡Todo está actualizado!" + :plugin/update-available "Actualización disponible" + :plugin/update-plugin "Actualizar extensión: {1} - {2}" + :plugin/updates-downloading "Descargando todas las actualizaciones" + :plugin/updating "Actualizando" + + :plugin.install-from-file/menu-title "Instalar desde plugins.edn" + :plugin.install-from-file/notice "Las siguientes extensiones van a reemplazar tus extensiones: " + :plugin.install-from-file/success "¡Todas las extensiones fueron instaladas!" + :plugin.install-from-file/title "Instalar extensiones desde plugins.edn" + + :plugin.install-from-web-url/effect-label "efecto" + :plugin.install-from-web-url/repo-url-placeholder "URL del repositorio GitHub" + :plugin.install-from-web-url/supports-note "Las URL admiten tanto repositorios de GitHub como servidores de desarrollo local. (Por ejemplo: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Al quitarlo solo se desvincula el plugin de Logseq y se mantiene intacta la carpeta de origen." + :plugin.package-config/parse-error "No se pudo analizar la configuración del paquete del plugin." + :plugin.package-config/remove-error "No se pudo eliminar el plugin dañado." + :plugin.package-config/remove-external-success "Se eliminó el plugin dañado de la lista de plugins." + :plugin.package-config/remove-installed-success "Se eliminó el plugin dañado \"{1}\"." + + :plugin.proxy/direct "Directo" + :plugin.proxy/system "Sistema" + :plugin.proxy/test-url "URL de prueba" + :plugin.proxy/testing "Probando" + + :plugin.settings/edit-settings-json "Editar settings.json" + :plugin.settings/exit-code-mode "Salir del modo código" + :plugin.settings/title "Configuración de extensiones" + + :plugin.themes/default-desc "Tema predeterminado de Logseq ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Temas ({1})" + :plugin.themes/light-and-dark "temas claros & oscuros" + + :profiler/input-fn-placeholder "ingresa el nombre de la función aquí" + :profiler/unregister "Desregistrar" + + :property/add-choice "Añadir opción" + :property/add-choices "Añadir opciones" + :property/add-description "Agregar descripción" + :property/add-new "Agregar propiedad" + :property/add-or-change "Agregar o cambiar propiedad" + :property/available-choices "Opciones disponibles" + :property/change-tooltip "Cambiar {1}" + :property/checkbox-state-mapping "Correspondencia de estado de casilla" + :property/children-count "Niños ({1})" + :property/choices-count "{1} opciones" + :property/choose-tag "Elegir etiqueta" + :property/choose-tags "Elegir etiquetas" + :property/clear-value "Borrar" + :property/configure "Configurar" + :property/convert-page-to-property "Convertir \"{1}\" en propiedad" + :property/create-error "Error al crear la propiedad." + :property/default-value "Valor predeterminado" + :property/delete-from-node "Eliminar del nodo" + :property/delete-from-node-confirm "¿Desea eliminar esta propiedad del nodo?" + :property/delete-from-tag "Eliminar de la etiqueta" + :property/delete-from-tag-confirm "¿Desea eliminar esta propiedad de la etiqueta?" + :property/description-placeholder "Ingresar descripción" + :property/drag-to-reorder "Arrastrar para reordenar" + :property/existing-values "Valores existentes" + :property/go-to-this-property "Ir a la página de propiedad" + :property/hidden-properties "Propiedades ocultas" + :property/hide-by-default "Ocultar por defecto" + :property/hide-choice-for-tag "Ocultar opción para etiqueta" + :property/hide-empty-value "Ocultar valores vacíos" + :property/hide-for-tag "Ocultar para #{1}" + :property/hide-hidden-choices "Ocultar opciones ocultas" + :property/map-checked-to "Asociar marcado a" + :property/map-unchecked-to "Asociar desmarcado a" + :property/more-settings "Más configuraciones" + :property/multiple-values "Valores múltiples" + :property/multiple-values-confirm "¿Habilitar valores múltiples?" + :property/name "Nombre" + :property/name-placeholder "Nombre de la propiedad" + :property/nodes-with-property "Nodos con propiedad" + :property/overdue "Vencido" + :property/private-built-in-not-usable "Propiedad integrada privada no utilizable" + :property/select-choice "Seleccionar opción" + :property/select-property-placeholder "Seleccionar una propiedad" + :property/select-type-placeholder "Seleccionar un tipo de propiedad" + :property/self-reference "Autorreferencia" + :property/set-default-choice "Establecer opción predeterminada" + :property/set-default-value "Establecer valor predeterminado" + :property/set-icon "Establecer icono" + :property/set-placeholder "Establecer {1}" + :property/set-property "Asignar propiedad" + :property/set-tags "Asignar etiquetas" + :property/set-value "Establecer valor" + :property/show-as-checkbox-on-node "Mostrar como casilla en el nodo" + :property/show-as-checkbox-on-tagged-nodes "Mostrar como casilla en nodos etiquetados" + :property/show-hidden-choices "Mostrar opciones ocultas" + :property/skip-choosing-tag "Omitir elección de etiqueta" + :property/specify-node-tags "Especificar etiquetas del nodo" + :property/title-placeholder "Título" + :property/type "Tipo" + :property/type-change-warning "Cambiar el tipo de propiedad elimina algunas configuraciones de la propiedad." + :property/type-checkbox "Casilla de verificación" + :property/type-date "Fecha" + :property/type-datetime "Fecha/Hora" + :property/type-locked-help "El tipo está bloqueado" + :property/type-node "Nodo" + :property/type-number "Número" + :property/type-text "Texto" + :property/type-url "URL" + :property/ui-position "Posición UI" + :property/ui-position-block-below "Debajo del bloque" + :property/ui-position-block-left "A la izquierda del bloque" + :property/ui-position-block-right "A la derecha del bloque" + :property/ui-position-properties "Propiedades" + :property/unset-property "Quitar propiedad" + :property/update-success "Actualizado" + + :property.built-in/alias "Alias" + :property.built-in/asset "Archivo adjunto" + :property.built-in/asset-align "Alineación del archivo" + :property.built-in/asset-checksum "Suma de verificación del archivo" + :property.built-in/asset-external-file-name "Nombre de archivo externo" + :property.built-in/asset-external-url "URL externa" + :property.built-in/asset-height "Altura de imagen" + :property.built-in/asset-last-visit-page "Última página visitada" + :property.built-in/asset-remote-metadata "Metadatos remotos del archivo" + :property.built-in/asset-resize-metadata "Metadatos de redimensionamiento" + :property.built-in/asset-size "Tamaño del archivo" + :property.built-in/asset-type "Tipo de archivo" + :property.built-in/asset-width "Ancho de imagen" + :property.built-in/background-color "Color de fondo" + :property.built-in/built-in "¿Integrado?" + :property.built-in/checkbox-display-properties "Propiedades mostradas como casilla" + :property.built-in/choice-checkbox-state "Estado de casilla de opción" + :property.built-in/choice-classes "Clases de opción" + :property.built-in/choice-exclusions "Exclusiones de opción" + :property.built-in/class-bidirectional-property-title "Título de propiedad bidireccional" + :property.built-in/class-enable-bidirectional "Habilitar propiedades bidireccionales" + :property.built-in/class-extends "Extiende" + :property.built-in/class-hide-from-node "Ocultar del nodo" + :property.built-in/class-properties "Propiedades de la etiqueta" + :property.built-in/classes "Clases de propiedad" + :property.built-in/closed-value-property "Propiedad de valor cerrado" + :property.built-in/code-lang "Modo de código" + :property.built-in/collapsed "¿Nodo colapsado?" + :property.built-in/created-at "Nodo creado el" + :property.built-in/created-by-ref "Nodo creado por" + :property.built-in/created-from-property "Creado desde propiedad" + :property.built-in/deadline "Fecha límite" + :property.built-in/default-value "Valor predeterminado" + :property.built-in/deleted-at "Eliminado el" + :property.built-in/deleted-by-ref "Eliminado por" + :property.built-in/description "Descripción" + :property.built-in/enable-history "Habilitar historial de propiedad" + :property.built-in/exclude-from-graph-view "¿Excluir de la vista de grafo?" + :property.built-in/fsrs-due "Vencimiento" + :property.built-in/fsrs-state "Estado" + :property.built-in/heading "Encabezado" + :property.built-in/hide "Ocultar esta propiedad o página" + :property.built-in/hide-empty-value "Ocultar valor vacío" + :property.built-in/history-block "Bloque de historial" + :property.built-in/history-property "Propiedad de historial" + :property.built-in/history-ref-value "Valor de referencia del historial" + :property.built-in/history-scalar-value "Valor escalar del historial" + :property.built-in/icon "Ícono" + :property.built-in/journal-day "Fecha del diario" + :property.built-in/journal-title-format "Formato del título" + :property.built-in/link "El nodo enlaza a" + :property.built-in/linked-references-excludes "Referencias excluidas" + :property.built-in/linked-references-includes "Referencias incluidas" + :property.built-in/ls-type "Tipo LS" + :property.built-in/node-display-type "Tipo de visualización del nodo" + :property.built-in/order "Orden del nodo" + :property.built-in/order-list-type "Tipo de lista" + :property.built-in/page "Página del nodo" + :property.built-in/page-tags "Etiquetas de página" + :property.built-in/parent "Nodo padre" + :property.built-in/priority "Prioridad" + :property.built-in/public "¿Propiedad pública?" + :property.built-in/publish-published-url "URL publicada" + :property.built-in/publishing-public "¿Publicación pública?" + :property.built-in/query "Consulta" + :property.built-in/reaction-emoji-id "Emoji de reacción" + :property.built-in/reaction-target "Objetivo de reacción" + :property.built-in/recycle-original-order "Orden original en papelera" + :property.built-in/recycle-original-page "Página original en papelera" + :property.built-in/recycle-original-parent "Padre original en papelera" + :property.built-in/refs "Referencias del nodo" + :property.built-in/repeat-checked-property "Propiedad marcada de repetición" + :property.built-in/repeat-recur-frequency "Frecuencia de repetición" + :property.built-in/repeat-recur-unit "Unidad de repetición" + :property.built-in/repeat-repeated "¿El nodo se repite?" + :property.built-in/repeat-temporal-property "Propiedad temporal de repetición" + :property.built-in/scalar-default-value "Valor predeterminado de tipo no referencial" + :property.built-in/scheduled "Programado" + :property.built-in/status "Estado" + :property.built-in/sync-large-title-object "Referencia a título de bloque grande almacenado en almacenamiento remoto" + :property.built-in/table-filters "Filtros de vista" + :property.built-in/table-hidden-columns "Columnas ocultas de vista" + :property.built-in/table-ordered-columns "Columnas ordenadas de vista" + :property.built-in/table-pinned-columns "Columnas fijadas de vista de tabla" + :property.built-in/table-sized-columns "Configuración de columnas de vista" + :property.built-in/table-sorting "Ordenamiento de vista" + :property.built-in/tags "Etiquetas" + :property.built-in/template-applied-to "Aplicar plantilla a etiquetas" + :property.built-in/title "Título del nodo" + :property.built-in/type "Tipo de propiedad" + :property.built-in/ui-position "Posición de la propiedad" + :property.built-in/updated-at "Nodo actualizado el" + :property.built-in/used-template "Plantilla utilizada" + :property.built-in/user-avatar "Avatar del usuario" + :property.built-in/user-email "Correo del usuario" + :property.built-in/user-name "Nombre del usuario" + :property.built-in/value "Valor de la propiedad" + :property.built-in/view-context "Contexto de vista de propiedad" + :property.built-in/view-feature-type "Tipo de función de vista" + :property.built-in/view-for "Esta vista pertenece a" + :property.built-in/view-group-by-property "Agrupar vista por propiedad" + :property.built-in/view-sort-groups-by-property "Ordenar grupos de vista por" + :property.built-in/view-sort-groups-desc "Ordenar grupos de vista DESC" + :property.built-in/view-type "Tipo de vista" + + :property.choice/already-exists "La opción ya existe." + :property.choice/cant-delete-built-in "La opción integrada no se puede eliminar." + :property.choice/invalid "Elección no válida \"{1}\" para esta propiedad: {2}" + + :property.color/blue "azul" + :property.color/green "verde" + :property.color/purple "morado" + :property.color/red "rojo" + :property.color/yellow "amarillo" + + :property.priority/high "Alta" + :property.priority/low "Baja" + :property.priority/medium "Media" + :property.priority/urgent "Urgente" + + :property.repeat/date "Fecha de repetición" + :property.repeat/datetime "Fecha y hora de repetición" + :property.repeat/every "Cada" + :property.repeat/is-label "es:" + :property.repeat/task "Tarea de repetición" + :property.repeat/when "Cuándo" + + :property.repeat-recur-unit/day "Día" + :property.repeat-recur-unit/hour "Hora" + :property.repeat-recur-unit/minute "Minuto" + :property.repeat-recur-unit/month "Mes" + :property.repeat-recur-unit/week "Semana" + :property.repeat-recur-unit/year "Año" + + :property.status/backlog "Backlog" + :property.status/canceled "Cancelado" + :property.status/doing "En curso" + :property.status/done "Hecho" + :property.status/in-review "En revisión" + :property.status/todo "Por hacer" + + :property.validation/cant-convert-to-number "No se puede convertir \"{1}\" en un número." + :property.validation/cant-remove-required "La propiedad requerida no se puede eliminar." + :property.validation/cant-set-self-value "No se puede establecer como su propio valor de propiedad." + :property.validation/duplicate "La propiedad '{1}' ya existe." + :property.validation/invalid-name "Este es un nombre de propiedad no válido. El nombre de una propiedad no puede comenzar con los caracteres de referencia de página '#' o '[['." + :property.validation/invalid-value "La propiedad \"{1}\" tiene un valor no válido: {2}" + :property.validation/many-to-one "No se puede convertir una propiedad de valores múltiples a valor único." + :property.validation/protected "Esta propiedad está protegida y no se puede modificar." + + :property.view-type/gallery "Vista de galería" + :property.view-type/list "Vista de lista" + :property.view-type/table "Vista de tabla" + + :publish/action "Publicar" + :publish/dialog-desc "Opcionalmente protege esta página con una contraseña. Déjalo vacío para acceso público." + :publish/dialog-title "Publicar página" + :publish/invalid-page-error "Página inválida" + :publish/password-optional-placeholder "Contraseña opcional" + :publish/publish-error "Error en la publicación" + :publish/published-to "Publicado en {1}" + :publish/publishing "Publicando..." + :publish/unpublish "Despublicar" + :publish/unpublish-error "Error al despublicar" + :publish/unpublish-missing-page-id "Despublicar: falta el ID de página" + :publish/unpublished "Despublicado" + + :query/advanced-results "Resultados de la consulta avanzada" + :query/custom-view-error "Error de vista personalizada: {1}" + :query/error "Error de consulta:" + :query/examples-desc "Consulta más ejemplos en {{Queries documentation}}." + :query/examples-title "Ejemplos de consultas:" + :query/results-for "Resultados para {1}" + + :query.builder/add-filter-or-operator-placeholder "Agregar filtro/operador" + :query.builder/between-end-label "Fecha final" + :query.builder/between-journal-label "entre: {1} ~ {2}" + :query.builder/between-start-label "Fecha inicial" + :query.builder/created-label "Creado" + :query.builder/filter "Filtro" + :query.builder/filter-full-text-search-label "Búsqueda de texto completo" + :query.builder/filter-page-label "Página" + :query.builder/filter-page-reference-label "Referencia de página" + :query.builder/filter-sample-label "Muestra" + :query.builder/operator-and-label "y" + :query.builder/operator-not-label "no" + :query.builder/replace-with-label "Reemplazar con:" + :query.builder/search-label "Buscar: {1}" + :query.builder/show-built-in-properties "Mostrar propiedades integradas" + :query.builder/unwrap-operator "Desenvolver" + :query.builder/updated-label "Actualizado" + :query.builder/wrap-filter-with-label "Envolver este filtro con:" + + :reference/blocks "Referencia de bloque" + :reference/copy "Copiar esta referencia" + :reference/delete "Eliminar esta referencia" + :reference/page-filter "Filtro de página" + :reference/replace-with-embed "Reemplazar con incrustación" + :reference/replace-with-text "Reemplazar con texto" + + :reference.filter/directions "Haga clic para incluir y haga shift-clic para excluir. Haga clic nuevamente para eliminar." + :reference.filter/excludes "Excluye: " + :reference.filter/includes "Incluye: " + :reference.filter/search-placeholder "Buscar en las páginas vinculadas" + :reference.filter/title "Filtro" + + :search/blank-input "Entrada vacía" + :search/full-text-placeholder "Búsqueda de texto completo" + :search/index-progress "Indexando {1}%" + :search/indices-rebuilt-success "¡Índices de búsqueda reconstruidos exitosamente!" + :search/no-result "Sin resultados que coincidan" + :search/result-count "{1} resultados" + + :search.find-in-page/input-placeholder "Buscar en la página" + :search.find-in-page/match-case "Coincidir mayúsculas" + :search.find-in-page/next-result "Siguiente resultado" + :search.find-in-page/previous-result "Resultado anterior" + + :select/default-prompt "Seleccione uno" + :select/default-select-multiple "Seleccionar uno o varios" + :select/new-option "+ Nueva opción: {1}" + + :server/error-notification "[Servidor] {1}" + :server/mcp-url-copied "URL MCP copiada" + :server/start "Iniciar" + :server/stop "Detener" + :server/title "Servidor API HTTP" + + :server.config/auto-start-label "Iniciar automáticamente con la aplicación" + :server.config/port-label "Rango de puertos" + :server.config/reset "Restablecer" + :server.config/save-and-apply "Guardar y aplicar" + :server.config/title "Configuraciones del servidor" + + :server.status/closed "Cerrado" + :server.status/closing "Cerrando" + :server.status/error "Error" + :server.status/running "Ejecutándose" + :server.status/starting "Iniciando" + :server.status/stopped "Detenido" + + :server.token/add-new "Añadir nuevo token" + :server.token/name-placeholder "Nombre del servidor" + :server.token/regenerate-value "Regenerar valor del token" + :server.token/title "Tokens de autorización" + :server.token/update-success "Tokens actualizados" + :server.token/value-placeholder "Valor" + + :settings/account "Cuenta" + :settings/advanced "Avanzado" + :settings/ai "IA" + :settings/collaboration "Colaboración" + :settings/editor "Editor" + :settings/encryption "Cifrado" + :settings/features "Características" + :settings/general "General" + :settings/keymap "Mapa de teclado" + :settings/plugins "Configuración de extensiones" + + :settings.account/storage-usage "{1}GB de {2}GB de almacenamiento total ({3})" + :settings.account/synced-graphs "{1} de {2} gráficos sincronizados ({3})" + + :settings.advanced/auto-chmod "Cambiar automaticamente los permisos de archivo" + :settings.advanced/auto-chmod-desc "Desactivar el permitir la edición de múltiples usuarios con permisos otorgados por la membresía del grupo." + :settings.advanced/auto-updater "Auto actualizador" + :settings.advanced/developer-mode "Modo desarrollador" + :settings.advanced/developer-mode-desc "El modo desarrollador permite a los colaboradores y desarrolladores de extensiones probar sus integraciones con Logseq más eficientemente." + :settings.advanced/disable-sentry "Enviar datos de uso y diagnósticos a Logseq" + :settings.advanced/disable-sentry-desc " Logseq nunca va a recolectar tu base de datos de grafos local o vender tus datos." + :settings.advanced/network-proxy "Proxy de red" + + :settings.ai/enable-mcp-server "Habilitar servidor MCP" + :settings.ai/enable-mcp-server-desc "Habilitar servidor MCP para integración con IA" + + :settings.editor/auto-expand-block-refs "Expandir referencias de bloque automáticamente al hacer un acercamiento" + :settings.editor/auto-expand-block-refs-tip "Esta opción controla si expandir el bloque de referencias automáticamente al hacer un acercamiento." + :settings.editor/custom-date-format "Formato de fecha preferido" + :settings.editor/enable-all-pages-public "Hacer todas las páginas públicas al publicar" + :settings.editor/enable-shortcut-tooltip "Habilitar descripción emergente de atajos de teclado" + :settings.editor/enable-tooltip "Habilitar descripción emergente" + :settings.editor/preferred-outdenting "Disminución lógica de sangría" + :settings.editor/preferred-outdenting-tip "El lado izquierdo muestra sangría con la configuración por defecto, y el derecho muestra con sangría lógica habilitada" + :settings.editor/preferred-outdenting-tip-more "→ Aprende más" + :settings.editor/preferred-pasting-file "Preferir pegar archivo" + :settings.editor/preferred-pasting-file-hint "Cuando está habilitado, al pegar una imagen de internet la imagen será descargada e insertada. Cuando está deshabilitado, el enlace a la imagen será pegado." + :settings.editor/show-brackets "Mostrar corchetes" + :settings.editor/show-full-blocks "Mostrar todas las líneas de una referencia a bloque" + :settings.editor/spell-checker "Corrector ortográfico" + :settings.editor/wide-mode "Modo ancho" + + :settings.features/enable-flashcards "Tarjetas de memorización" + :settings.features/enable-journals "Habilitar diarios" + :settings.features/home-default-page "Establecer página de inicio" + :settings.features/home-default-page-update-success "Página de inicio actualizada" + :settings.features/journals-enable-success "Diarios habilitados" + :settings.features/login-prompt "Para acceder a nuevas características antes que nadie debes ser un patrocinador de Logseq en Open Collective y después iniciar sesión." + :settings.features/page-not-found "La página \"{1}\" aún no existe. Primero cree esa página y luego vuelva a intentarlo." + :settings.features/plugin-system "Habilitar extensiones" + + :settings.general/accent-color "Color de acento" + :settings.general/accent-color-alert "Alerta de color de acento" + :settings.general/accent-color-logseq "Color clásico de Logseq" + :settings.general/accent-color-none-desc "Cancelar color de acento. Esta función está actualmente en fase beta y se usa principalmente para la compatibilidad con temas personalizados." + :settings.general/changelog "¿Qué hay de nuevo?" + :settings.general/check-for-updates "Comprobar actualizaciones" + :settings.general/current-revision-label "Revisión actual" + :settings.general/current-version "Versión actual" + :settings.general/custom-configuration "Configuración personalizada" + :settings.general/custom-global-configuration "Configuración global personalizada" + :settings.general/custom-theme "Tema personalizado" + :settings.general/edit-config-edn "Editar config.edn (para este repositorio)" + :settings.general/edit-custom-css "Editar custom.css" + :settings.general/edit-export-css "Editar export.css" + :settings.general/edit-global-config-edn "Editar config.edn global" + :settings.general/editor-font "Fuente del editor" + :settings.general/editor-font-set-global "Establecer como fuente global" + :settings.general/export-theme "Tema exportación" + :settings.general/language "Idioma" + :settings.general/native-titlebar "Barra de título nativa" + :settings.general/native-titlebar-desc "Habilta la barra de título nativa de la ventana en Windows y Linux." + :settings.general/refresh-required-feedback "Se requiere actualización" + :settings.general/release-channel "canal de lanzamiento" + :settings.general/revision "Revisión: {1}" + :settings.general/theme-dark "oscuro" + :settings.general/theme-light "claro" + :settings.general/theme-system "sistema" + + :settings.sync-server/clear-success "Se borró la URL del servidor de sincronización. Se usará Logseq Sync oficial." + :settings.sync-server/reset "Restablecer a predeterminado" + :settings.sync-server/save-success "Se guardó la URL del servidor de sincronización." + :settings.sync-server/url "URL del servidor de sincronización" + :settings.sync-server/url-desc "Configura una URL HTTPS personalizada para un servidor de sincronización autoalojado. Tus tokens de autenticación de Logseq se enviarán a este servidor, así que usa solo una URL de confianza. Déjalo vacío para usar Logseq Sync oficial." + :settings.sync-server/url-invalid-error "La URL debe empezar por https:// o http://" + + :shell/input-command-title "Introducir comando" + + :shortcut.category/basics "Básico" + :shortcut.category/block-command-editing "Comandos edición de bloque" + :shortcut.category/block-editing "Edición de bloque general" + :shortcut.category/block-selection "Selección de bloques (pulsar Esc para salir)" + :shortcut.category/formatting "Formato" + :shortcut.category/navigating "Navegación" + :shortcut.category/others "Otros" + :shortcut.category/plugins "Extensiones" + :shortcut.category/toggle "Alternar" + + :sidebar.left/favorites "Favoritos" + :sidebar.left/navigations "Navegación" + :sidebar.left/recent-pages "Recientes" + + :sidebar.right/close "Cerrar" + :sidebar.right/close-all "Cerrar todo" + :sidebar.right/close-others "Cerrar otros" + :sidebar.right/collapse "Colapsar" + :sidebar.right/collapse-all "Colapsar todo" + :sidebar.right/collapse-others "Colapsar otros" + :sidebar.right/expand "Expandir" + :sidebar.right/expand-all "Expandir todo" + :sidebar.right/more "Más" + :sidebar.right/open "Abrir en barra lateral" + :sidebar.right/open-as-page "Abrir como página" + :sidebar.right/resize-handle "Right sidebar resize handler " + :sidebar.right/toggle "Alternar barra lateral derecha" + + :storage/invalid-data-writing "Escritura de datos inválida." + :storage/sqlitedb-error "Error de SQLiteDB: {1}" + :storage/sqlitedb-import-error "Error de importación de SQLiteDB: {1}" + :storage/sqlitedb-save-error "Error al guardar SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Bloque eliminado {1}" + :storage.recycle/empty "La papelera está vacía." + :storage.recycle/page-deleted-at "Página eliminada {1}" + :storage.recycle/readonly "Papelera (solo lectura)" + :storage.recycle/restore "Restaurar" + :storage.recycle/retention-desc "Las páginas y bloques eliminados permanecen aquí hasta que se restauren o se recojan automáticamente después de 30 días." + :storage.recycle/title "Papelera" + + :sync/assets-downloading-count "Descargando archivos ({1})" + :sync/assets-uploading-count "Subiendo archivos ({1})" + :sync/creating-remote-graph "Creando grafo remoto..." + :sync/downloading "Descargando..." + :sync/downloading-graph "Descargando {1} ..." + :sync/graph-count-exceed-limit "El número de grafos excede el límite" + :sync/invitation-sent "Invitación enviada" + :sync/last-synced-time-label "Última sincronización: {1}" + :sync/more-debug-info "Más info de depuración" + :sync/offline "Sin conexión" + :sync/online "En línea" + :sync/pending-local-changes "cambios locales pendientes" + :sync/pending-server-changes "cambios del servidor pendientes" + :sync/something-wrong "Error de sincronización" + :sync/start-sync "Iniciar sincronización" + :sync/storage-exceed-limit "El almacenamiento excede el límite" + :sync/uploading "Subiendo..." + :sync/user-doesnt-exist-yet "El usuario aún no existe" + + :theme/logseq-default "Tema predeterminado de Logseq" + :theme/switch-to "Cambiar al tema {1}" + + :ui/all-done "¡Todo hecho!" + :ui/apply "Aplicar" + :ui/cancel "Cancelar" + :ui/close "Cerrar" + :ui/configure "Configurar" + :ui/confirm "Confirmar" + :ui/copy "Copiar" + :ui/copy-all "Copiar todo" + :ui/copy-to-clipboard "Copiar al portapapeles" + :ui/create "Crear" + :ui/date-natural-language-placeholder "p. ej. La próxima semana" + :ui/delete "Eliminar" + :ui/deleted "Eliminado" + :ui/dont-remind-me-again "No recordarme de nuevo" + :ui/empty "Vacío" + :ui/error "Error" + :ui/error-boundary-error "¡Error capturado por la interfaz!\n {1}" + :ui/export "Exportar" + :ui/false "Falso" + :ui/fix "Arréglalo!" + :ui/frequently-used "Uso frecuente" + :ui/from "De: " + :ui/host "Host" + :ui/image "imagen" + :ui/label "Etiqueta" + :ui/link "Enlace" + :ui/load-more "Cargar más" + :ui/loading "Cargando" + :ui/login "Iniciar sesión" + :ui/logout "Cerrar sesión" + :ui/off "DESACTIVADO" + :ui/on "ACTIVADO" + :ui/open "Abrir" + :ui/open-named "Abrir {1}" + :ui/port "Puerto" + :ui/refresh "Actualizar" + :ui/relaunch-confirm "Este cambio requiere reiniciar la aplicación. ¿Reiniciarla ahora?" + :ui/remove-background "Quitar fondo" + :ui/reset "Restablecer" + :ui/run "Ejecutar" + :ui/save "Guardar" + :ui/show-less "Mostrar menos" + :ui/show-more "Mostrar más" + :ui/skip "Omitir" + :ui/submit "Enviar" + :ui/to "A: " + :ui/toggle-theme "Cambiar tema" + :ui/true "Verdadero" + :ui/type "Tipo" + :ui/untitled "Sin título" + :ui/use-current-time "Usar la hora actual" + :ui/yes "Sí" + + :updater/checking-for-updates "Buscando actualizaciones" + :updater/downloading-progress "Descargando actualización ({1}%)" + :updater/quit-and-install "Reiniciar e instalar" + :updater/up-to-date "Tu aplicación está actualizada 🎉" + :updater/update-available "Actualización disponible" + :updater/update-error "⚠️ Ups, algo salió mal!\nPor favor comprueba el {1}." + :updater/update-ready-to-install "La actualización está lista para instalarse" + + :view/add-new-view "Añadir nueva vista" + :view/all "Todos" + :view/export-edn "Exportar EDN" + :view/linked-references "Referencias vinculadas" + :view/new "Nuevo" + :view/new-property "Nueva propiedad" + :view/new-view "Nueva vista" + :view/rename "Renombrar" + :view/results "Resultados:" + :view/unlinked-references "Referencias no vinculadas" + + :view.filter/custom-date "Fecha personalizada" + :view.filter/empty "Vacío" + :view.filter/filter "Filtro" + :view.filter/from "Desde" + :view.filter/is-empty "Está vacío" + :view.filter/is-not-empty "No está vacío" + :view.filter/match "Coincidencia" + :view.filter/match-all-filters "Cumplir todos los filtros" + :view.filter/match-any-filter "Cumplir al menos un filtro" + :view.filter/operator-after "Después de" + :view.filter/operator-before "Antes de" + :view.filter/operator-between "Entre" + :view.filter/operator-date-after "Fecha después de" + :view.filter/operator-date-before "Fecha antes de" + :view.filter/operator-is "Es" + :view.filter/operator-is-not "No es" + :view.filter/operator-text-contains "El texto contiene" + :view.filter/operator-text-not-contains "El texto no contiene" + :view.filter/or "O" + :view.filter/relative-1-day-ago "Hace 1 día" + :view.filter/relative-1-month-ago "Hace 1 mes" + :view.filter/relative-1-week-ago "Hace 1 semana" + :view.filter/relative-1-year-ago "Hace 1 año" + :view.filter/relative-3-days-ago "Hace 3 días" + :view.filter/relative-3-months-ago "Hace 3 meses" + :view.filter/to "Hasta" + :view.filter/type-to-search "Escribir para buscar" + + :view.table/ascending "Ascendente" + :view.table/columns-visibility "Visibilidad de columnas" + :view.table/default-title "{1} nodos" + :view.table/delete-sort "Eliminar ordenamiento" + :view.table/descending "Descendente" + :view.table/drag-to-reorder "Arrastrar para reordenar" + :view.table/group-by "Agrupar por" + :view.table/group-journal-date "Fecha del diario" + :view.table/group-page-created-date "Fecha de creación de la página" + :view.table/group-page-name "Nombre de la página" + :view.table/group-page-updated-date "Fecha de actualización de la página" + :view.table/live-query-title "Consulta en vivo ({1})" + :view.table/name-column "Nombre" + :view.table/no-group-value "Sin {1}" + :view.table/page "Página" + :view.table/pages "Páginas" + :view.table/pin "Fijar" + :view.table/row-number "Número de fila" + :view.table/select-all "Seleccionar todo" + :view.table/select-column "Seleccionar columna" + :view.table/select-order "Seleccionar orden" + :view.table/select-row "Seleccionar fila" + :view.table/selected-count "Seleccionados: {1}" + :view.table/sort-ascending "Ascendente" + :view.table/sort-descending "Descendente" + :view.table/sort-groups-by "Ordenar grupos por" + :view.table/sort-groups-order "Orden de los grupos" + :view.table/total-refs-count "Total de referencias" + :view.table/unpin "Desfijar" + + :window/close "Cerrar" + :window/exit-fullscreen "Salir de pantalla completa" + :window/maximize "Maximizar" + :window/minimize "Minimizar" + :window/restore "Restaurar" + + :youtube/embed-first-reminder-mobile "Primero debes incrustar un vídeo de YouTube y luego usa este icono.\nRecuerda: puedes pegar una URL de YouTube directa como vídeo incrustado en móvil." + :youtube/player-not-ready "El reproductor de YouTube no está listo aún." + :youtube/timestamps-not-available-mobile "Las marcas de tiempo de YouTube no están disponibles en móvil aún." + + :zotero/attachments "Archivos adjuntos" + :zotero/imported-file-warning "Este es un archivo importado de Zotero, configure directorio de datos de Zotero para abrir el archivo en Logseq." + :zotero/linked-file-warning "Este es un archivo vinculado de Zotero, configure directorio base de archivos adjuntos vinculados de Zotero para abrir el archivo en Logseq." + :zotero/notes "Notas" } diff --git a/src/resources/dicts/fa.edn b/src/resources/dicts/fa.edn index 9005ce0801..be73542b93 100644 --- a/src/resources/dicts/fa.edn +++ b/src/resources/dicts/fa.edn @@ -1,317 +1,1861 @@ -{:accessibility/skip-to-main-content "برو به محتوای اصلی" - :handbook/title "راهنما" - :handbook/topics "موضوعات" - :handbook/popular-topics "موضوعات محبوب" - :handbook/help-categories "دسته‌بندی‌های راهنما" - :handbook/search "جستجو" - :handbook/home "خانه" - :handbook/settings "تنظیمات" - :handbook/close "بستن" - :on-boarding/importing-main-title "درون‌ریزی یادداشت‌های موجود" - :on-boarding/importing-main-desc "این کار را می‌توانید بعدا هم انجام دهید." - :on-boarding/importing-title "آیا یادداشت‌هایی از پیش دارید که بخواهد وارد برنامه کنید؟" - :on-boarding/importing-desc "اگر در قالب‌های EDN یا مارک‌داون هستند، لاگ‌سیک می‌تواند با آن‌ها کار کند." - :on-boarding/main-title (fn [] ["به " [:strong "لاگ‌سیک"] "خوش‌آمدید!"]) - :on-boarding/main-desc "در ابتدا نیاز به انتخاب پوشه‌ای دارید که لاگ‌سیک، افکار، ایده‌ها و یادداشت‌های شما را در آن‌جا ذخیره کند." - :help/title-usage "استفاده" - :help/title-community "اجتماع" - :help/title-development "توسعه" - :help/title-about "درباره" - :help/title-terms "قوانین" - :help/start "شروع" - :help/about "درباره لاگ‌سیک" - :help/roadmap "مسیر توسعه" - :help/bug "گزارش مشکل" - :help/feature "درخواست ویژگی" - :help/changelog "فهرست تغییرات" - :help/blog "بلاگ لاگ‌سیک" - :help/docs "مستندات" - :help/privacy "سیاست حریم شخصی" - :help/terms "قوانین" - :help/forum-community "تالار گفتگو" - :help/shortcuts "کلیدهای میان‌بر" - :help/shortcuts-triggers "محرک‌ها" - :help/shortcut "میان‌بر" - :help/search "جستجو در برگه‌ها/بلوک‌ها/نظرات" - :help/block-reference "ارجاع بلوک" - :help/open-link-in-sidebar "باز کردن پیوند در نوار کناری" - :search-item/page "برگه" - :search-item/no-result "نتایجی یافت نشد" - :help/context-menu "فهرست زمینه‌ای بلوک" - :help/markdown-syntax "نحو مارک‌داون" - :bold "ضخیم" - :italics "کج" - :strikethrough "خط‌زده" - :code "کد" - :untitled "بدون عنوان" - :right-side-bar/help "راهنما" - :right-side-bar/switch-theme "پوسته" - :right-side-bar/contents "محتوا" - :right-side-bar/page-graph "گراف برگه" - :right-side-bar/block-ref "ارجاعات بلوک" - :right-side-bar/graph-view "نمای گراف" - :right-side-bar/flashcards "فلش کارت‌ها" - :right-side-bar/show-journals "نمایش روزنگارها" - :right-side-bar/separator "دستگیره تغییر اندازه نوار سمت راست" - :right-side-bar/toggle-right-sidebar "باز و بسته کردن نوار سمت راست" - :right-side-bar/pane-close "بستن" - :right-side-bar/pane-close-others "بسته بقیه" - :right-side-bar/pane-close-all "بستن همه" - :right-side-bar/pane-collapse "جمع کردن" - :right-side-bar/pane-collapse-others "جمع کردن بقیه" - :right-side-bar/pane-collapse-all "جمع کردن همه" - :right-side-bar/pane-expand "گسترش" - :right-side-bar/pane-expand-all "گسترش همه" - :right-side-bar/pane-open-as-page "باز کردن به عنوان صفحه" - :right-side-bar/pane-more "بیشتر" - :left-side-bar/switch "تغییر به:" - :left-side-bar/journals "روزنگارها" - :left-side-bar/nav-favorites "برگزیده‌ها" - :left-side-bar/nav-recent-pages "اخیر" - :page/something-went-wrong "اشتباهی رخ داد" - :page/logseq-is-having-a-problem "لاگ‌سیک دچار مشکلی شده است. برای بازگرداندن آن به حالت قابل استفاده لطفا گام‌های زیر را به ترتیب انجام دهید:" - :page/step "گام {1}" - :page/try "امتحان کنید" - :page/make-public "عمومی ساختن برای انتشار" - :page/make-private "تبدیل به خصوصی" - :page/delete "حذف برگه" - :page/add-to-favorites "افزودن به برگزیده‌ها" - :page/unfavorite "برداشتن از برگزیده‌ها" - :block/name "نام برگه" - :page/copy-page-url "رونوشت از نشانی برگه" - :file/name "نام پرونده" - :file/last-modified-at "آخرین تغییر در" - :file/no-data "بدون داده" - :file/format-not-supported "قالب .{1} پشتیبانی نمی‌شود." - :page/created-at "ساخته شده در" - :page/updated-at "به‌روز شده در" - :linked-references/filter-search "جستجو در برگه‌های پیوند شده" - :linked-references/filter-heading "پالایه" - :linked-references/filter-directions "برای شمول کلیک و برای استثناء کردن، شیفت کلیک کنید. دوباره کلیک کنید تا پاک شود." - :linked-references/filter-includes "شامل شده‌ها: " - :linked-references/filter-excludes "استثناء شده‌ها: " - :editor/block-search "جستجو برای بلوک" - :text/image "تصویر" - :asset/show-in-folder "نمایش تصویر در پوشه" - :asset/open-in-browser "باز کردن تصویر در مرورگر" - :asset/delete "حذف تصویر" - :asset/copy "رونوشت تصویر" - :asset/maximize "بیشینه کردن تصویر" - :asset/confirm-delete "آیا مطمئنید که می‌خواید این {1} را پاک کنید؟" - :asset/physical-delete "به همراه حذف پرونده (توجه داشته باشید که این کار بازگشت‌پذیر نیست)" - :color/gray "خاکستری" - :color/red "قرمز" - :color/yellow "زرد" - :color/green "سبز" +{ + :account/authentication "احراز هویت" + :account/benefits-desc "با داشتن حساب کاربری Logseq، می‌توانید به سرویس‌های مبتنی بر ابر مانند Logseq Sync و ویژگی‌های آلفا/بتا دسترسی داشته باشید." + :account/billing "صورتحساب" + :account/billing-expired-on-label "طرح Pro در تاریخ {1} منقضی شده است" + :account/billing-expires-on-label "طرح Pro در تاریخ {1} منقضی می‌شود" + :account/billing-next-date-label "تاریخ صورتحساب بعدی: {1}" + :account/core-features "دسترسی به ویژگی‌های اصلی Logseq" + :account/current-plan "طرح فعلی" + :account/delete-account "حذف حساب کاربری" + :account/discover-sync-desc "قدرت {1} را کشف کنید" + :account/early-access-alpha-beta "دسترسی زودهنگام به ویژگی‌های آلفا/بتا" + :account/first-name "نام" + :account/free-plan-sync-limit "۱ گراف همگام‌سازی شده (حداکثر ۵۰ مگابایت، فقط یادداشت)" + :account/last-name "نام خانوادگی" + :account/manage-plan "مدیریت طرح" + :account/month "ماه" + :account/no-asset-syncing "بدون همگام‌سازی فایل‌های پیوست" + :account/open-invoices "مشاهده فاکتورها" + :account/plan-free "رایگان" + :account/plan-free-summary "شروع با همگام‌سازی پایه" + :account/plan-pro "Pro" + :account/plan-pro-summary "فعال‌سازی همگام‌سازی پیشرفته و بیشتر" + :account/pro-plan-sync-limit "۱۰ گراف همگام‌سازی شده (هرکدام حداکثر ۵ گیگابایت)" + :account/profile "پروفایل" + :account/refresh-token-warning "بازآوری توکن: وضعیت غیرعادی" + :account/reset-password "بازنشانی رمز عبور" + :account/sign-up "ثبت‌نام" + :account/sync-assets-limit "همگام‌سازی فایل‌های پیوست تا ۱۰۰ مگابایت برای هر فایل" + :account/synced-status "همگام‌سازی شده" + :account/unlimited-unsynced-graphs "گراف‌های همگام‌سازی نشده نامحدود" + :account/upcoming-cloud-features "ویژگی‌های ابری آینده، از جمله Logseq Publish" + :account/upgrade-plan "ارتقای طرح" + :account/username "نام کاربری" + + :asset/acceptable-file-extensions "پسوندهای فایل قابل قبول" + :asset/add-assets "افزودن فایل‌های پیوست" + :asset/add-directory "افزودن پوشه" + :asset/alias-already-exists "نام مستعار \"{1}\" از قبل وجود دارد!" + :asset/alias-directories "پوشه‌های مستعار" + :asset/alias-directory-path-label "مسیر پوشه:" + :asset/alias-name-dialog-title "نام مستعار این پوشه انتخاب شده چیست؟" + :asset/alias-name-label "نام مستعار:" + :asset/alias-name-placeholder "مثلاً کتاب‌ها" + :asset/align "تراز" + :asset/align-center "وسط" + :asset/align-left "چپ" + :asset/align-right "راست" + :asset/already-exists "دارایی از قبل وجود دارد، عنوان: {1}، مرجع گره: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "نمی‌توان والد را به عنوان ویژگی خودش جاسازی کرد" + :asset/confirm-delete-image "آیا مطمئن هستید که می‌خواهید این تصویر را حذف کنید؟" + :asset/copy "کپی" + :asset/copy-image-unsupported-extension "کپی تصویر برای فایل‌های {1} پشتیبانی نمی‌شود" + :asset/create-local-copy-warning "ایجاد فایل پیوست محلی از یک فایل خارجی. حاشیه‌نویسی PDF نیاز به فایل پیوست محلی دارد تا به درستی کار کند." + :asset/create-title "ایجاد فایل پیوست" + :asset/delete "حذف" + :asset/downloading "در حال دانلود" + :asset/drop-hint "فایل‌ها را اینجا بکشید و رها کنید، یا کلیک کنید تا فایل انتخاب شود" + :asset/edit-title "ویرایش فایل پیوست" + :asset/external-url-label "آدرس خارجی فایل پیوست:" + :asset/file-extension-placeholder "مثلاً mp3" + :asset/maximize "بیشینه" + :asset/open-in-browser "باز کردن در مرورگر" + :asset/physical-delete "حذف فیزیکی فایل" + :asset/ref-block "بلوک مرجع" + :asset/select-file "انتخاب فایل پیوست" + :asset/select-from-disk "انتخاب از دیسک" + :asset/selected-directories "پوشه‌های انتخاب شده:" + :asset/show-file-in-folder "نمایش فایل در پوشه" + :asset/size-too-large "فایل خیلی بزرگ است" + :asset/syncing "در حال همگام‌سازی" + :asset/title-label "عنوان فایل پیوست:" + :asset/transfer-placeholder "{1} دارایی..." + :asset/uploading "در حال بارگذاری" + + :block/click-to-fix-query "برای رفع پرس‌وجو کلیک کنید: {1}" + :block/copy-ref "رونوشت ارجاع بلوک" + :block/copy-url "کپی آدرس بلوک" + :block/created-label "ایجاد شده: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' منسوخ شده است. به جای آن از دستور '/Math block' استفاده کنید." + :block/deprecated-query-syntax "#+BEGIN_QUERY منسوخ شده است. به جای آن از دستور '/Advanced Query' استفاده کنید." + :block/deprecated-quote "#+BEGIN_QUOTE منسوخ شده است. به جای آن از دستور '/Quote' استفاده کنید." + :block/empty-url "آدرس خالی" + :block/excalidraw-no-longer-supported "Excalidraw دیگر به صورت پیش‌فرض پشتیبانی نمی‌شود، ما قصد داریم از طریق افزونه‌ها از آن پشتیبانی کنیم." + :block/extraction-error "خطا در استخراج بلوک" + :block/hide-query "پنهان کردن پرس‌وجو" + :block/invalid-hiccup "hiccup نامعتبر" + :block/invalid-link "پیوند نامعتبر" + :block/invalid-url "آدرس نامعتبر" + :block/large-block-warning "بلوک بزرگ قابل ویرایش یا جستجو نخواهد بود تا برنامه کند نشود، لطفاً از ویرایشگر دیگری برای ویرایش این بلوک استفاده کنید." + :block/last-edited-label "آخرین ویرایش: {1}" + :block/not-found-warning "بلوکی یافت نشد" + :block/open-block-references "باز کردن مراجع بلوک" + :block/practice "تمرین" + :block/practice-cards "تمرین کارت‌ها" + :block/ref-nesting-too-deep "تودرتویی مرجع بلوک بیش از حد عمیق است" + :block/remove-tag "حذف برچسب" + :block/remove-this-tag "حذف این برچسب" + :block/render-error "خطای رندر بلوک:" + :block/set-query "تنظیم پرس‌وجو" + :block/set-query-label "تنظیم پرس‌وجو:" + :block/sort-order "ترتیب مرتب‌سازی" + :block/status-history "تاریخچه وضعیت" + :block/untitled-query "پرس‌وجوی بدون عنوان" + + :block.macro/embed-deprecated "{{embed}} منسوخ است. به جای آن از دستور '/Node embed' استفاده کنید." + :block.macro/namespace-deprecated "{{namespace}} منسوخ است. به جای آن از ویژگی {1} استفاده کنید." + :block.macro/query-deprecated "{{query}} منسوخ است. به جای آن از دستور '/Query' استفاده کنید." + :block.macro/unsupported-name "نام ماکروی پشتیبانی‌نشده: {1}" + + :block.reaction/emoji-required-warning "ایموجی لازم است" + :block.reaction/unsupported-emoji-warning "ایموجی واکنش پشتیبانی نمی‌شود" + + :bug-report/desc "گزارش باگ" + :bug-report/title "گزارش باگ" + + :bug-report.clipboard/action-desc "بررسی کلیپ‌بورد" + :bug-report.clipboard/action-title "بازرسی کلیپ‌بورد" + :bug-report.clipboard/desc "اگر مشکلی در کپی و جای‌گذاری دارید از بازرسی کلیپ‌بورد استفاده کنید" + :bug-report.clipboard/title "کلیپ‌بورد" + + :bug-report.inspector/back "بازگشت" + :bug-report.inspector/clipboard-desc "محتوای کلیپ‌بورد" + :bug-report.inspector/copied "در کلیپ‌بورد کپی شد" + :bug-report.inspector/copy "کپی" + :bug-report.inspector/copy-desc "کپی گزارش تشخیصی" + :bug-report.inspector/create-issue "ایجاد مشکل" + :bug-report.inspector/create-issue-desc "اکنون می‌توانید نتیجه‌ای را که در کلیپ‌بورد چسبانده‌اید گزارش کنید. لطفاً نتیجه را در بخش 'Additional Context' قرار دهید و بگویید محتوای اصلی را از کجا کپی کرده‌اید. متشکریم!" + :bug-report.inspector/desc "{1} را فشار دهید تا داده‌های کلیپ‌بورد خود را بررسی کنید\nیا اگر نسخه موبایل استفاده می‌کنید اینجا کلیک کنید تا جای‌گذاری کنید" + :bug-report.inspector/placeholder "محتوا را اینجا جای‌گذاری کنید" + :bug-report.inspector/tip "نکته: از Ctrl+V برای جای‌گذاری استفاده کنید" + :bug-report.inspector/title "بازرسی کلیپ‌بورد" + + :bug-report.issue/action-desc "مشاهده مشکلات شناخته‌شده" + :bug-report.issue/action-title "مشکلات GitHub" + :bug-report.issue/desc "بررسی کنید آیا مشکل شما قبلاً گزارش شده است" + :bug-report.issue/report-link "گزارش مشکل" + :bug-report.issue/title "مشکلات شناخته‌شده" + + :class/add-property "افزودن ویژگی برچسب" + :class/tag-properties-desc "ویژگی‌های برچسب به همهٔ گره‌هایی که از آن برچسب استفاده می‌کنند به ارث می‌رسد. برای مثال، هر گره #Task ویژگی‌های 'Status' و 'Priority' را به ارث می‌برد。" + :class/tagged-nodes "گره‌های برچسب‌خورده" + + :class.built-in/asset "فایل پیوست" + :class.built-in/card "کارت" + :class.built-in/cards "کارت‌ها" + :class.built-in/code-block "کد" + :class.built-in/journal "ژورنال" + :class.built-in/math-block "ریاضی" + :class.built-in/page "صفحه" + :class.built-in/pdf-annotation "حاشیه‌نویسی PDF" + :class.built-in/property "ویژگی" + :class.built-in/query "پرس‌وجو" + :class.built-in/quote-block "نقل قول" + :class.built-in/root "برچسب ریشه" + :class.built-in/tag "برچسب" + :class.built-in/task "وظیفه" + :class.built-in/template "الگو" + :class.built-in/whiteboard "تخته سفید" + + :class.validation/built-in-extends-change "وراثت عناصر داخلی قابل تغییر نیست." + :class.validation/cant-add-tag-on-built-in "برچسب روی \"{1}\" داخلی اضافه نمی‌شود." + :class.validation/cant-remove-private-tags "نمی توان برچسب های خصوصی را حذف کرد: {1}." + :class.validation/cant-remove-tag-built-in "نمی‌توان برچسب داخلی #{1} را حذف کرد." + :class.validation/cant-remove-tag-on-built-in "برچسب روی \"{1}\" داخلی حذف نمی‌شود." + :class.validation/cant-set-tag-built-in "نمی‌توان برچسب داخلی #{1} را تنظیم کرد." + :class.validation/duplicate "برچسب '{1}' از قبل وجود دارد." + :class.validation/extends-cycle "چرخه در وراثت شناسایی شد." + :class.validation/invalid-extends-type "نوع وراثت نامعتبر." + :class.validation/parents-must-be-tags "والدین باید برچسب باشند." + :class.validation/tag-with-non-tag "نمی توان برچسب را با صفحه داخلی که برچسب \"{1}\" نیست تنظیم کرد." + + :cmdk.action/apply-theme "اعمال پوسته" + :cmdk.action/copy-ref "کپی مرجع" + :cmdk.action/create "ایجاد" + :cmdk.action/filter "فیلتر" + :cmdk.action/open "باز کردن" + :cmdk.action/open-in-sidebar "باز کردن در نوار کناری" + :cmdk.action/search "جستجو" + :cmdk.action/trigger "اجرا" + + :cmdk.create/configure-tag "پیکربندی برچسب" + :cmdk.create/page "ایجاد صفحه" + :cmdk.create/tag "ایجاد برچسب" + + :cmdk.error/no-block-link "پیوندی در این بلوک نیست." + :cmdk.error/no-page-link "پیوندی در این صفحه نیست." + :cmdk.error/no-search-item-link "پیوندی در این نتیجه جستجو نیست." + + :cmdk.filter/add "افزودن فیلتر" + :cmdk.filter/codes "فقط کد" + :cmdk.filter/commands "فقط دستورات" + :cmdk.filter/current-page "فقط صفحه فعلی" + :cmdk.filter/files "فقط فایل‌ها" + :cmdk.filter/nodes "فقط گره‌ها" + :cmdk.filter/only-label "فقط جستجو:" + :cmdk.filter/themes "فقط پوسته‌ها" + + :cmdk.group/codes "کد" + :cmdk.group/commands "دستورات" + :cmdk.group/create "ایجاد" + :cmdk.group/current-page "صفحه فعلی" + :cmdk.group/files "فایل‌ها" + :cmdk.group/filters "فیلترها" + :cmdk.group/nodes "گره‌ها" + :cmdk.group/recently-updated "اخیراً به‌روزرسانی شده" + :cmdk.group/themes "پوسته‌ها" + + :cmdk.info/configure-tag "پیکربندی #{1}" + :cmdk.info/create-page "ایجاد صفحه '{1}'" + :cmdk.info/create-tag "ایجاد برچسب '{1}'" + + :cmdk.input/add-graph-filter-placeholder "افزودن فیلتر گراف" + :cmdk.input/default-placeholder "به دنبال چه می‌گردید؟" + :cmdk.input/move-blocks-placeholder "انتقال بلوک‌ها" + :cmdk.input/type-page-name-placeholder "نام صفحه را تایپ کنید" + + :cmdk.tip/clear-filter "{1} را فشار دهید تا فیلتر جستجو پاک شود" + :cmdk.tip/filter-results "{1} را فشار دهید تا نتایج جستجو فیلتر شوند" + :cmdk.tip/label "نکته:" + :cmdk.tip/open-sidebar "{1} را فشار دهید تا جستجو در نوار کناری باز شود" + + :collaboration/email-address "آدرس ایمیل" + :collaboration/invite "دعوت" + :collaboration/members "اعضا:" + :collaboration/remove-access "حذف دسترسی" + :collaboration/remove-access-error "حذف عضو ناموفق بود" + :color/blue "آبی" - :color/purple "بنفش" + :color/crimson "زرشکی" + :color/cyan "فیروزه‌ای" + :color/grass "سبز چمنی" + :color/gray "خاکستری" + :color/green "سبز" + :color/indigo "نیلی" + :color/orange "نارنجی" :color/pink "صورتی" - :editor/copy "رونوشت" + :color/plum "آلویی" + :color/purple "بنفش" + :color/red "قرمز" + :color/teal "سبزآبی" + :color/tomato "گوجه‌ای" + :color/violet "بنفش" + :color/yellow "زرد" + + :command.auto-complete/complete "تکمیل" + :command.auto-complete/meta-complete "تکمیل خودکار" + :command.auto-complete/next "بعدی" + :command.auto-complete/prev "قبلی" + :command.auto-complete/shift-complete "تکمیل با Shift" + + :command.command-palette/toggle "پالت دستورات" + + :command.editor/add-property "افزودن ویژگی" + :command.editor/add-property-deadline "افزودن مهلت" + :command.editor/add-property-icon "افزودن آیکون" + :command.editor/add-property-priority "افزودن اولویت" + :command.editor/add-property-status "افزودن وضعیت" + :command.editor/add-reaction "افزودن واکنش" + :command.editor/backspace "حذف به عقب" + :command.editor/backward-kill-word "حذف کلمه قبلی" + :command.editor/backward-word "کلمه قبلی" + :command.editor/beginning-of-block "ابتدای بلوک" + :command.editor/bold "درشت" + :command.editor/clear-block "پاک کردن بلوک" + :command.editor/collapse-block-children "جمع کردن فرزندان بلوک" + :command.editor/copy "کپی" + :command.editor/copy-embed "کپی جاسازی" + :command.editor/copy-page-url "کپی آدرس صفحه" + :command.editor/copy-text "کپی متن" + :command.editor/cut "برش" + :command.editor/cycle-todo "تغییر TODO" + :command.editor/delete "حذف" + :command.editor/delete-selection "حذف انتخاب‌شده" + :command.editor/down "پایین" + :command.editor/end-of-block "انتهای بلوک" + :command.editor/escape-editing "خروج از ویرایش" + :command.editor/expand-block-children "باز کردن فرزندان بلوک" + :command.editor/follow-link "دنبال کردن پیوند" + :command.editor/forward-kill-word "حذف کلمه بعدی" + :command.editor/forward-word "کلمه بعدی" + :command.editor/highlight "برجسته" + :command.editor/indent "تورفتگی" + :command.editor/insert-link "درج پیوند" + :command.editor/insert-youtube-timestamp "درج زمان YouTube" + :command.editor/italics "کج" + :command.editor/jump "پرش" + :command.editor/kill-line-after "حذف خط بعد از مکان‌نما" + :command.editor/kill-line-before "حذف خط قبل از مکان‌نما" + :command.editor/left "چپ" + :command.editor/move-block-down "انتقال بلوک به پایین" + :command.editor/move-block-up "انتقال بلوک به بالا" + :command.editor/move-blocks "انتقال بلوک‌ها" + :command.editor/new-block "بلوک جدید" + :command.editor/new-line "خط جدید" + :command.editor/open-edit "باز کردن ویرایش" + :command.editor/open-link-in-sidebar "باز کردن پیوند در نوار کناری" + :command.editor/open-selected-blocks-in-sidebar "باز کردن بلوک‌های انتخاب‌شده در نوار کناری" + :command.editor/outdent "برون‌رفتگی" + :command.editor/paste-text-in-one-block-at-point "جای‌گذاری متن در یک بلوک" + :command.editor/quick-add "افزودن سریع" + :command.editor/redo "بازانجام" + :command.editor/right "راست" + :command.editor/select-all-blocks "انتخاب همه بلوک‌ها" + :command.editor/select-block-down "انتخاب بلوک پایین" + :command.editor/select-block-up "انتخاب بلوک بالا" + :command.editor/select-down "انتخاب به پایین" + :command.editor/select-parent "انتخاب والد" + :command.editor/select-up "انتخاب به بالا" + :command.editor/set-tags "تنظیم برچسب‌ها" + :command.editor/strike-through "خط‌خورده" + :command.editor/toggle-block-children "تغییر نمایش فرزندان بلوک" + :command.editor/toggle-display-hidden-properties "تغییر نمایش ویژگی‌های پنهان" + :command.editor/toggle-number-list "لیست شماره‌دار" + :command.editor/toggle-open-blocks "تغییر بلوک‌های باز" + :command.editor/undo "واگرد" + :command.editor/up "بالا" + :command.editor/zoom-in "بزرگ‌نمایی" + :command.editor/zoom-out "کوچک‌نمایی" + + :command.go/all-graphs "همه گراف‌ها" + :command.go/all-pages "همه صفحات" + :command.go/backward "بازگشت" + :command.go/electron-find-in-page "یافتن در صفحه" + :command.go/electron-jump-to-the-next "پرش به بعدی" + :command.go/electron-jump-to-the-previous "پرش به قبلی" + :command.go/flashcards "فلش‌کارت‌ها" + :command.go/forward "جلو" + :command.go/graph-view "نمای گراف" + :command.go/home "خانه" + :command.go/journals "روزنامه‌ها" + :command.go/keyboard-shortcuts "میان‌برهای صفحه‌کلید" + :command.go/next-journal "روزنامه بعدی" + :command.go/prev-journal "روزنامه قبلی" + :command.go/search "جستجو" + :command.go/search-in-page "جستجو در صفحه" + :command.go/search-themes "جستجوی پوسته‌ها" + :command.go/tomorrow "فردا" + + :command.graph/add "افزودن گراف" + :command.graph/db-add "افزودن به پایگاه داده" + :command.graph/db-save "ذخیره پایگاه داده" + :command.graph/export-as-html "صادر کردن به عنوان HTML" + :command.graph/open "باز کردن گراف" + :command.graph/remove "حذف گراف" + + :command.misc/copy "کپی" + :command.misc/export-block-data "صادر کردن داده‌های بلوک" + :command.misc/export-graph-ontology-data "صادر کردن آنتولوژی گراف" + :command.misc/export-page-data "صادر کردن داده‌های صفحه" + :command.misc/import-edn-data "وارد کردن داده‌های EDN" + + :command.page/toggle-favorite "تغییر علاقه‌مندی" + + :command.pdf/close "بستن PDF" + :command.pdf/find "یافتن در PDF" + :command.pdf/next-page "صفحه بعدی" + :command.pdf/previous-page "صفحه قبلی" + + :command.publish/open-dialog "باز کردن پنجره انتشار" + + :command.search/re-index "شاخص‌گذاری مجدد" + + :command.shell/run "اجرا" + + :command.sidebar/clear "پاک کردن نوار کناری" + :command.sidebar/close-top "بستن پنل بالایی" + :command.sidebar/open-today-page "باز کردن صفحه امروز" + + :command.ui/clear-all-notifications "پاک کردن همه اعلان‌ها" + :command.ui/customize-appearance "سفارشی‌سازی ظاهر" + :command.ui/goto-plugins "رفتن به افزونه‌ها" + :command.ui/highlight-recent-blocks "برجسته‌سازی بلوک‌های اخیر" + :command.ui/install-plugin-from-github "نصب افزونه از GitHub" + :command.ui/install-plugins-from-file "نصب افزونه‌ها از فایل" + :command.ui/select-theme-color "انتخاب رنگ پوسته" + :command.ui/toggle-brackets "تغییر نمایش کروشه" + :command.ui/toggle-contents "تغییر نمایش محتوا" + :command.ui/toggle-document-mode "تغییر حالت سند" + :command.ui/toggle-help "تغییر نمایش راهنما" + :command.ui/toggle-left-sidebar "تغییر نوار کناری چپ" + :command.ui/toggle-right-sidebar "تغییر نوار کناری راست" + :command.ui/toggle-settings "تغییر نمایش تنظیمات" + :command.ui/toggle-theme "تغییر پوسته" + :command.ui/toggle-wide-mode "تغییر حالت عریض" + + :command.window/close "بستن پنجره" + + :context-menu/developer-tools "ابزارهای توسعه‌دهنده" + :context-menu/make-a-flashcard "ایجاد فلش‌کارت" + :context-menu/set-icon "تنظیم آیکون" + :context-menu/toggle-number-list "تغییر لیست شماره‌دار" + + :date/invalid-date-warning "{1} تاریخ معتبری نیست. لطفا دوباره امتحان کنید" + + :date.nlp/last-friday "جمعه گذشته" + :date.nlp/last-monday "دوشنبه گذشته" + :date.nlp/last-month "ماه گذشته" + :date.nlp/last-saturday "شنبه گذشته" + :date.nlp/last-sunday "یکشنبه گذشته" + :date.nlp/last-thursday "پنج‌شنبه گذشته" + :date.nlp/last-tuesday "سه‌شنبه گذشته" + :date.nlp/last-wednesday "چهارشنبه گذشته" + :date.nlp/last-week "هفته گذشته" + :date.nlp/last-year "سال گذشته" + :date.nlp/next-friday "جمعه آینده" + :date.nlp/next-monday "دوشنبه آینده" + :date.nlp/next-month "ماه آینده" + :date.nlp/next-saturday "شنبه آینده" + :date.nlp/next-sunday "یکشنبه آینده" + :date.nlp/next-thursday "پنج‌شنبه آینده" + :date.nlp/next-tuesday "سه‌شنبه آینده" + :date.nlp/next-wednesday "چهارشنبه آینده" + :date.nlp/next-week "هفته آینده" + :date.nlp/next-year "سال آینده" + :date.nlp/this-friday "این جمعه" + :date.nlp/this-monday "این دوشنبه" + :date.nlp/this-month "این ماه" + :date.nlp/this-saturday "این شنبه" + :date.nlp/this-sunday "این یکشنبه" + :date.nlp/this-thursday "این پنج‌شنبه" + :date.nlp/this-tuesday "این سه‌شنبه" + :date.nlp/this-wednesday "این چهارشنبه" + :date.nlp/this-week "این هفته" + :date.nlp/this-year "این سال" + :date.nlp/today "امروز" + :date.nlp/tomorrow "فردا" + :date.nlp/yesterday "دیروز" + + :deeplink/open-block-error "باز کردن پیوند ناموفق بود. بلوک `{1}` در گراف فعلی وجود ندارد." + :deeplink/open-graph-error "باز کردن گراف ناموفق بود. گراف `{1}` وجود ندارد." + :deeplink/open-page-error "باز کردن پیوند ناموفق بود. صفحه `{1}` در گراف فعلی وجود ندارد." + + :editor/add-content-first-warning "لطفاً ابتدا محتوایی اضافه کنید." + :editor/auto-heading "عنوان خودکار" + :editor/block-search "جستجو برای بلوک" + :editor/click-to-edit "برای ویرایش، کلیک کنید" + :editor/code-language-placeholder "انتخاب زبان" + :editor/collapse-block-children "جمع کردن فرزندان بلوک" :editor/cut "برش" - :editor/expand-block-children "گسترش همه" - :editor/collapse-block-children "جمع کردن همه" - :editor/delete-selection "حذف بلوک‌های انتخاب شده" - :editor/cycle-todo "چرخش وضعیت TODO مورد جاری" - :content/copy-export-as "رونوشت / برون‌ریزی به صورت.." - :content/copy-block-url "رونوشت نشانی بلوک" - :content/copy-block-ref "رونوشت ارجاع بلوک" - :content/copy-ref "رونوشت از این ارجاع" - :content/delete-ref "حذف این ارجاع" - :content/replace-with-text "جایگزینی با متن" - :content/replace-with-embed "جایگزینی با جاساز" - :content/open-in-sidebar "باز کردن در نوار کناری" - :content/click-to-edit "برای ویرایش، کلیک کنید" - :context-menu/make-a-flashcard "ساخت یک فلش کارت" - :context-menu/toggle-number-list "تغییر فهرست شمارشی" - :settings-page/app-updated "برنامه شما به روز است 🎉" -:settings-page/auto-chmod "تغییر خودکار سطوح دسترسی پرونده" -:settings-page/auto-chmod-desc "غیر فعال کنید تا اجازه ویرایش توسط چند کاربر با دسترسی‌هایی که از طریق عضویت گروه اعطا شده است را بدهید." -:settings-page/auto-expand-block-refs "گسترش خودکار ارجاعات بلوک در زمان بزرگ‌نمایی" -:settings-page/auto-expand-block-refs-tip "این گزینه تعیین می‌کند که آیا ارجاعات بلوک در زمان بزرگ‌نمایی به طور خودکار گسترش یابد یا خیر." -:settings-page/auto-updater "به‌روزرسان خودکار" -:settings-page/changelog "چه خبر؟" -:settings-page/check-for-updates "بررسی برای به‌روزرسانی" -:settings-page/checking "در حال بررسی ..." -:settings-page/clear "پاک کردن" -:settings-page/clear-cache "پاک کردن حافظه نهان" -:settings-page/clear-cache-warning "عملیات پاک کردن حافظه نهان، گراف‌های باز را نادیده می‌گیرد. تغییرات ذخیره نشده را از دست خواهید داد." -:settings-page/current-version "نسخه جاری" -:settings-page/custom-configuration "پیکربندی سفارشی" -:settings-page/custom-date-format "قالب تاریخ ترجیحی" -:settings-page/custom-global-configuration "پیکربندی سراسری سفارشی" -:settings-page/custom-theme "پوسته سفارشی" -:settings-page/developer-mode "حالت توسعه‌دهنده" -:settings-page/developer-mode-desc "حالت توسعه‌دهنده به مشارکت‌کنندگان و توسعه‌دهندگان افزونه‌ها امکان می‌دهد تا به شکل مؤثرتری بتوانند یکپارچگی کارشان با لاگ‌سیک را به آزمون بگذارند." -:settings-page/disable-sentry "فرستادن داده‌های استفاده و ارزیابی به لاگ‌سیک" -:settings-page/disable-sentry-desc "لاگ‌سیک هرگز پایگاه داده گراف محلی شما را گردآوری نکرده و داده‌های شما را نمی‌فروشد." -:settings-page/edit-config-edn "ویرایش config.edn" -:settings-page/edit-custom-css "ویرایش custom.css" -:settings-page/edit-export-css "ویرایش export.css" -:settings-page/edit-global-config-edn "ویرایش سراسری config.edn" -:settings-page/enable-all-pages-public "عمومی کردن همه صفحه‌ها در زمانی انتشار" -:settings-page/enable-flashcards "فلش‌کارت‌ها" -:settings-page/enable-journals "روزنگارها" -:settings-page/export-theme "برون‌ریزی پوسته" -:settings-page/home-default-page "تنظیم صفحه خانگی پیش‌فرض" -:settings-page/login-prompt "برای آن که پیش از دیگران به ویژگی‌های جدید دسترسی پیدا کنید لازم است حامی لاگ‌سیک روی اوپن کالکتیو باشید و بنابراین لازم است که ابتدا وارد حساب‌تان بشوید." -:settings-page/native-titlebar "نوار عنوان بومی" -:settings-page/native-titlebar-desc "نوار عنوان پنجره بومی را روی گنولینوکس و ویندوز فعال می‌کند." -:settings-page/network-proxy "پروکسی شبکه" -:settings-page/plugin-system "افزونه‌ها" -:settings-page/preferred-outdenting "برون‌رفتگی منطقی" -:settings-page/preferred-outdenting-tip "سمت چپ، فرون‌رفتگی با تنظیمات پیش‌فرض را نمایش می‌دهد و سمت راست، برون‌رفتگی در حالت فعال بودن برون‌رفتگی منطقی را " -:settings-page/preferred-outdenting-tip-more "← بیشتر بدانید" -:settings-page/preferred-pasting-file "شیوه ترجیحی چسباندن پرونده" -:settings-page/preferred-pasting-file-hint "وقتی فعال باشد، چسباندن یک تصویر از اینترنت باعث بارگیری و درج تصویر می‌شود. وقتی غیر فعال باشد، تنها پیوند به تصویر چسبانده خواهد شد." -:settings-page/revision "بازبینی: " -:settings-page/show-brackets "نمایش براکت" -:settings-page/show-full-blocks "نمایش تمام خطوط یک ارجاع بلوکی" -:settings-page/spell-checker "بررسی کننده نگارش" -:settings-page/tab-account "حساب" -:settings-page/tab-advanced "پیشرفته" -:settings-page/tab-editor "ویرایش‌گر" -:settings-page/tab-features "ویژگی‌ها" -:settings-page/tab-general "عمومی" -:settings-page/tab-keymap "نگاشت کلید" -:settings-page/theme-dark "تیره" -:settings-page/theme-light "روشن" -:settings-page/theme-system "سامانه" -:settings-page/update-available "انتشار جدید پیدا شد " -:settings-page/update-error-1 "⚠️ اوه، مشکلی پیش آمد!" + :editor/cycle-todo "تغییر TODO" + :editor/delete-selection "حذف انتخاب‌شده" + :editor/display-tag-inline-hint "تا این برچسب به‌صورت درون‌خطی به‌جای انتهای این گره نمایش داده شود." + :editor/expand-block-children "باز کردن فرزندان بلوک" + :editor/heading "سرفصل {1}" + :editor/moving-blocks-count "در حال انتقال {1} بلوک" + :editor/new-page "صفحه جدید" + :editor/new-tag "برچسب جدید" + :editor/no-block-selected-warning "بلوکی انتخاب نشده" + :editor/paste "چسباندن" + :editor/reference-node-use-page-ref "برای ارجاع به یک گره، لطفاً از `[[]]` استفاده کنید." + :editor/remove-heading "حذف عنوان" + :editor/search-for-node "جستجوی گره" + :editor/search-for-tag "جستجوی برچسب" + :editor/search-template-placeholder "جستجوی الگو" + :editor/template-insert-error "خطا در درج الگو: {1}" - :yes "بله" + :editor.document-mode/new-block-hint "{1} برای ایجاد بلوک جدید" + :editor.document-mode/title "حالت سند" + :editor.document-mode/toggle-desc "روی `D` کلیک کنید یا {1} را تایپ کنید تا حالت سند تغییر کند" + + :editor.quick-add/add-to-today "افزودن به امروز" + :editor.quick-add/title "افزودن سریع" + + :editor.slash/advanced-query "پرس‌وجو پیشرفته" + :editor.slash/advanced-query-desc "ایجاد یک بلوک پرس‌وجو پیشرفته" + :editor.slash/calculator "ماشین حساب" + :editor.slash/calculator-desc "درج ماشین حساب" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "بلوک کد" + :editor.slash/code-block-desc "درج بلوک کد" + :editor.slash/current-time "زمان فعلی" + :editor.slash/current-time-desc "درج زمان فعلی" + :editor.slash/date-picker "انتخاب‌کننده تاریخ" + :editor.slash/date-picker-desc "یک تاریخ را انتخاب کنید و اینجا درج کنید" + :editor.slash/embed-html "درج HTML" + :editor.slash/embed-twitter-tweet "درج توییت Twitter" + :editor.slash/embed-video-url "درج URL ویدیو" + :editor.slash/embed-youtube-timestamp "درج طابع زمانی YouTube" + :editor.slash/group-advanced "پیشرفته" + :editor.slash/group-basic "پایه‌ای" + :editor.slash/group-format "قالب‌بندی" + :editor.slash/group-heading "عنوان" + :editor.slash/group-list-type "نوع لیست" + :editor.slash/group-plugins "افزونه‌ها" + :editor.slash/group-priority "اولویت" + :editor.slash/group-task-date "تاریخ وظیفه" + :editor.slash/group-task-status "وضعیت وظیفه" + :editor.slash/group-time-and-date "زمان و تاریخ" + :editor.slash/heading-label "عنوان {1}" + :editor.slash/image-link "لینک تصویر" + :editor.slash/image-link-desc "ایجاد یک لینک HTTP برای تصویر" + :editor.slash/link-desc "ایجاد یک لینک HTTP" + :editor.slash/math-block "بلوک ریاضیات" + :editor.slash/math-block-desc "ایجاد یک بلوک LaTeX" + :editor.slash/no-priority "بدون اولویت" + :editor.slash/node-embed "درج گره" + :editor.slash/node-embed-desc "درج یک گره اینجا" + :editor.slash/node-reference "ارجاع گره" + :editor.slash/node-reference-desc "ایجاد یک پیوند برگشتی به یک گره (یک صفحه یا یک بلوک)" + :editor.slash/normal-text "متن عادی" + :editor.slash/normal-text-desc "پاک کردن عنوان و تنظیم به متن عادی" + :editor.slash/number-children "شماره‌گذاری فرزندان" + :editor.slash/number-list "لیست شماره‌دار" + :editor.slash/priority-desc "تنظیم اولویت به {1}" + :editor.slash/priority-label "اولویت {1}" + :editor.slash/query-function "تابع پرس‌وجو" + :editor.slash/query-function-desc "ایجاد یک تابع پرس‌وجو" + :editor.slash/quote-desc "ایجاد یک بلوک نقل‌قول" + :editor.slash/status-desc "تنظیم وضعیت به {1}" + :editor.slash/template-desc "درج یک الگوی ایجادشده اینجا" + :editor.slash/today-desc "درج تاریخ امروز" + :editor.slash/tomorrow-desc "درج تاریخ فردا" + :editor.slash/underline "زیرخط" + :editor.slash/underline-desc "ایجاد یک تزیین زیرخط" + :editor.slash/upload-asset "بارگذاری فایل" + :editor.slash/upload-asset-desc "بارگذاری انواع فایل مثل تصویر، PDF، DOCX و غیره" + :editor.slash/yesterday-desc "درج تاریخ دیروز" + + :electron/about "درباره Logseq" + :electron/add-to-dictionary "افزودن به فرهنگ لغت" + :electron/block-not-exist "باز کردن پیوند ناموفق بود. شناسهٔ بلوک `{1}` در گراف وجود ندارد." + :electron/cancel "لغو" + :electron/copy-image "کپی تصویر" + :electron/link-open-confirm "آیا مطمئن هستید که می‌خواهید این پیوند را باز کنید؟\n{1}" + :electron/link-open-failed-missing-graph "باز کردن پیوند ناموفق بود. گراف مفقود است." + :electron/link-open-failed-no-graph "باز کردن پیوند ناموفق بود. شناسهٔ گراف `{1}` با هیچ گراف پیوندشده‌ای مطابقت ندارد." + :electron/link-open-failed-no-target "باز کردن پیوند ناموفق بود. `{1}` با هیچ هدفی مطابقت ندارد." + :electron/look-up "جست‌وجوی مورد انتخاب‌شده" + :electron/main-exception "[استثنای فرایند اصلی]\n{1}\n{2}" + :electron/new-window "پنجره جدید" + :electron/official-docs "مستندات رسمی" + :electron/ok "تأیید" + :electron/open-dir-error "باز کردن پوشه ناموفق بود: {1}" + :electron/save-image "ذخیره تصویر" + :electron/save-image-as "ذخیره تصویر به عنوان" + :electron/search-with-google "جست‌وجو در Google" + :electron/unimplemented-callback "اقدام x-callback-url پیاده‌سازی نشده است: `{1}`." + :electron/version "نسخه {1}" + :electron/write-file-error "نوشتن در فایل {1} ناموفق بود، {2}." + :electron/write-file-error-with-backup "نوشتن در فایل {1} ناموفق بود، {2}. یک فایل پشتیبان در {3} ذخیره شد." + + :encryption/cloud-password-rich (fn [] ["اگر گذرواژه خود را گم کنید، هیچ‌یک از داده‌های شما در ابر قابل رمزگشایی نخواهد بود. " [:span "با این حال همچنان می‌توانید به نسخه محلی گراف خود دسترسی داشته باشید."]]) + :encryption/current-password "رمز عبور فعلی" + :encryption/enter-password "رمز عبور را وارد کنید" + :encryption/enter-password-again "رمز عبور را دوباره وارد کنید" + :encryption/enter-password-title "وارد کردن رمز عبور" + :encryption/failed-to-force-reset-password "بازنشانی رمز عبور ناموفق بود" + :encryption/failed-to-update-password "به‌روزرسانی رمز عبور ناموفق بود" + :encryption/fetch-key-pair-error "خطا در دریافت جفت‌کلید RSA کاربر: {1}" + :encryption/fetching-key-pair "در حال دریافت جفت کلید" + :encryption/force-reset-password "بازنشانی رمز عبور" + :encryption/force-reset-password-successfully "رمز عبور بازنشانی شد" + :encryption/force-resetting-password "در حال بازنشانی" + :encryption/forgot-password-question "رمز عبور را فراموش کردید؟" + :encryption/forgot-password-warning "اگر رمز عبور را فراموش کنید، داده‌های رمزگذاری‌شده قابل بازیابی نیستند." + :encryption/init-key-pair "مقداردهی اولیه جفت کلید" + :encryption/init-key-pair-error "خطای جفت کلید آغازین: {1}" + :encryption/password-not-matched "رمزهای عبور مطابقت ندارند" + :encryption/password-updated-successfully "رمز عبور به‌روزرسانی شد" + :encryption/remember-password-rich (fn [] [[:span "حتماً "] "گذرواژه‌ای را که تعیین کرده‌اید به خاطر بسپارید، چون اگر آن را فراموش کنید ما نمی‌توانیم آن را بازنشانی یا بازیابی کنیم، " [:span "و توصیه می‌کنیم "] "یک نسخه پشتیبان امن از آن نگه دارید."]) + :encryption/reset-password "بازنشانی رمز عبور" + :encryption/set-new-password "تنظیم رمز عبور جدید" + :encryption/set-password-title "تنظیم رمز عبور" + :encryption/updating-password "در حال به‌روزرسانی رمز عبور" + :encryption/wrong-password "رمز عبور اشتباه" + + :export/backup-successful "پشتیبان‌گیری موفق بود!" + :export/block-data-copied "داده‌های بلوک در کلیپ‌بورد کپی شد" + :export/collecting-assets "جمع‌آوری فایل‌های پیوست" + :export/copied-to-clipboard "در کلیپ‌بورد کپی شد!" + :export/copy-or-export-as "صادر کردن به عنوان" + :export/creating-zip "ایجاد فایل zip" + :export/db-backup-error "پشتیبان‌گیری پایگاه داده ناموفق بود." + :export/db-edn "صادر کردن به عنوان فایل EDN" + :export/debug-transit-desc "به فایل .transit برای ارسال به ما جهت اشکال‌زدایی صادر می‌کند. هرگونه داده حساس در فایل صادر شده حذف خواهد شد." + :export/debug-transit-file "صدور فایل transit اشکال‌زدایی" + :export/edn-desc "به فایل .edn قابل خواندن و ویرایش صادر می‌کند. به عنوان پشتیبان اصلی به آن تکیه نکنید." + :export/error-unexpected "خطای غیرمنتظره‌ای هنگام صادرات رخ داد. برای جزئیات کنسول جاوااسکریپت را ببینید." + :export/exporting "در حال صدور" + :export/finalizing "نهایی‌سازی" + :export/format-text "متن" + :export/graph "صادر کردن گراف" + :export/graph-ontology-data-copied "داده‌های آنتولوژی گراف در کلیپ‌بورد کپی شد" + :export/indent-style-dashes "خط تیره" + :export/indent-style-label "سبک تورفتگی:" + :export/indent-style-none "بدون تورفتگی" + :export/indent-style-spaces "فاصله" + :export/level-lte "سطح <=" + :export/markdown "صادر کردن به عنوان Markdown (بدون ویژگی‌های بلوک)" + :export/newline-after-block "خط جدید بعد از بلوک" + :export/no-updates-since-last-export "تغییری از آخرین صادرات وجود ندارد." + :export/open-blocks-only "فقط بلوک‌های باز (نادیده گرفتن فرزندان جمع‌شده)" + :export/page "صادر کردن صفحه" + :export/page-data-copied "داده‌های صفحه در کلیپ‌بورد کپی شد" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "آماده‌سازی فایل zip" + :export/preview-alt "پیش‌نمایش صدور" + :export/public-pages "صادر کردن صفحات عمومی" + :export/remove-emphasis "حذف تأکید" + :export/remove-properties "حذف ویژگی‌ها" + :export/remove-tags "حذف #برچسب‌ها" + :export/save-to-file "ذخیره در فایل" + :export/sqlite-db "صادر کردن پایگاه داده SQLite" + :export/title "صادر کردن" + :export/transparent-background "پس‌زمینه شفاف" + :export/view-nodes-data-copied "داده‌های گره‌های نمایش در کلیپ‌بورد کپی شد" + :export/zip "صادر کردن DB SQLite و فایل‌ها" + :export/zip-error "صادر کردن ZIP ناموفق بود." + + :export.backup/backup-now "پشتیبان‌گیری الان" + :export.backup/cancel "لغو پشتیبان‌گیری" + :export.backup/enabled-desc "پشتیبان‌گیری ساعتی برای این گراف فعال است، {1}." + :export.backup/folder "پوشه پشتیبان:" + :export.backup/hourly-note "هر ساعت یک نسخه پشتیبان ایجاد خواهد شد." + :export.backup/open-folder "باز کردن پوشه پشتیبان‌ها برای این گراف" + :export.backup/schedule "زمان‌بندی پشتیبان‌گیری" + :export.backup/set-folder-first "ابتدا پوشه پشتیبان را تنظیم کنید" + :export.backup/sqlite-desc "روش اصلی پشتیبان‌گیری محتوای گراف در یک فایل .sqlite." + :export.backup/unsupported-desc "مرورگر شما از {{The File System Access API}} پشتیبانی نمی‌کند، لطفاً به مرورگر مبتنی بر Chromium تغییر دهید." + :export.backup/zip-desc "روش اصلی پشتیبان‌گیری محتوا و فایل‌های پیوست گراف در یک فایل .zip." + + :file/config-duplicate-keys "فایل \"{1}\" دارای کلیدهای تکراری است. کلید \"{2}\" چندین بار اختصاص داده شده است." + :file/config-invalid "فایل پیکربندی نامعتبر است" + :file/format-not-supported "قالب .{1} پشتیبانی نمی‌شود." + :file/label "پرونده" + :file/last-modified-at "آخرین تغییر در" + :file/name "نام پرونده" + :file/no-data "بدون داده" + :file/title "پرونده {1}" + + :file.config/deprecation-title "پرونده {1} دارای منسوخات زیر است:" + :file.config/error-title "پرونده {1} دارای خطاهای زیر است:" + :file.config/invalid-desc "مطمئن شوید که تنظیمات درون {} قرار دارند." + :file.config/invalid-title "پرونده {1} معتبر نیست." + :file.config/read-failed-desc "مطمئن شوید که تنظیمات درون {} قرار دارند. همچنین مطمئن شوید که نویسه‌های '( { [' دارای نویسه بسته‌کننده مربوطه ') } ]' هستند." + :file.config/read-failed-title "خواندن پرونده {1} ناموفق بود" + + :flashcard/add-query "افزودن پرس‌وجوی جدید" + :flashcard/all-cards "همهٔ کارت‌ها" + :flashcard/select-cards "انتخاب کارت‌ها" + :flashcard/shortcut-tooltip "میانبر: {1}" + + :flashcard.empty/desc "برای ساخت کارت، «{1}» را به هر بلوک اضافه کنید یا از «/cloze» برای ساخت جای‌خالی استفاده کنید." + :flashcard.empty/title "به فلش‌کارت‌ها خوش آمدید" + + :flashcard.rating/again "دوباره" + :flashcard.rating/again-desc "پاسخ را اشتباه دادیم. این به طور خودکار یعنی کارت را فراموش کرده‌ایم. این یک لغزش حافظه است。" + :flashcard.rating/easy "آسان" + :flashcard.rating/easy-desc "پاسخ درست بود و بدون تلاش ذهنی، سریع و با اطمینان آن را به یاد آوردیم。" + :flashcard.rating/good "خوب" + :flashcard.rating/good-desc "پاسخ درست بود، اما برای به خاطر آوردنش کمی تلاش ذهنی لازم بود。" + :flashcard.rating/hard "سخت" + :flashcard.rating/hard-desc "پاسخ درست بود، اما به آن مطمئن نبودیم یا یادآوری آن خیلی طول کشید." + + :flashcard.review/finished "تبریک، همه کارت‌های این پرس‌وجو را مرور کردید. تا بعد! 💯" + :flashcard.review/hide-answers "مخفی کردن پاسخ‌ها" + :flashcard.review/show-answers "نمایش پاسخ‌ها" + :flashcard.review/show-clozes "نمایش جاخالی‌ها" + + :format/bold "درشت" + :format/code "کد" + :format/highlight "برجسته" + :format/italics "کج" + :format/strikethrough "خط‌خورده" - :cancel "لغو" - :close "بستن" - :delete "پاک کردن" - :save "ذخیره" - :type "نوع" - :host "میزبان" - :port "درگاه" - :home "خانه" - :new-page "برگه جدید:" - :graph "گراف" :graph/all-graphs "همه گراف‌ها" - :graph/local-graphs "گراف‌های محلی:" - :graph/remote-graphs "گراف‌های راه‌دور:" - :export "برون‌ریزی" - :export-graph "برون‌ریزی گراف" - :export-page "برون‌ریزی برگه" - :export-markdown "برون‌ریزی به صورت مارک‌داون معیاری (بدون خصوصیات بلوک‌ها)" - :export-public-pages "برون‌ریزی برگه‌های عمومی" - :export-transparent-background "پس‌زمینه شفاف" - :export-copy-to-clipboard "رونوشت در بریده‌دان" - :export-copied-to-clipboard "در بریده‌دان رونوشت شد!" - :export-save-to-file "ذخیره در پرونده" - :all-graphs "همهٔ گراف‌ها" - :all-files "همهٔ پرونده‌ها" - :all-journals "همهٔ روزنگارها" - :settings "تنظیمات" - :settings-of-plugins "افزونه‌ها" - :plugins "افزونه‌ها" - :themes "پوسته‌ها" - :relaunch-confirm-to-work "برای آن که کار کند لازم است که برنامه از نو راه‌اندازی شود. می‌خواید هم‌اکنون بازراه‌اندازی کنید؟" - :import "درون‌ریزی" - :importing "در حال درون‌ریزی" - :help-shortcut-title "برای بررسی میان‌برها و دیگر نکات کلیک کنید" - :loading "در حال بار شدن..." - :login "ورود" - :logout "خروج" - :download "بارگیری" - :language "زبان" - :remove-background "حذف پس‌زمینه" - :toggle-theme "تغییر پوسته" + :graph/already-exists-error "گراف '{1}' از قبل وجود دارد. لطفاً با نام دیگری دوباره امتحان کنید." + :graph/as-png "به صورت PNG" + :graph/built-in-pages "صفحات داخلی" + :graph/charge-range "محدوده بار" + :graph/charge-strength "قدرت بار" + :graph/click-to-search "برای جستجو کلیک کنید" + :graph/create-db "ایجاد گراف DB" + :graph/create-error "ایجاد گراف ناموفق بود" + :graph/create-new "ایجاد گراف جدید" + :graph/created-before "ایجاد شده قبل از" + :graph/creating "در حال ایجاد گراف" + :graph/delete-local-action "حذف گراف محلی" + :graph/delete-local-confirm-desc "آیا مطمئن هستید که می‌خواهید گراف \"{1}\" را برای‌ همیشه از Logseq حذف کنید؟" + :graph/delete-server-action "حذف از سرور" + :graph/delete-server-confirm-desc "آیا مطمئن هستید که می‌خواهید گراف \"{1}\" را برای‌ همیشه از سرور ما حذف کنید؟" + :graph/delete-warning "⚠️ توجه داشته باشید که پس از حذف نمی‌توانیم این گراف را بازیابی کنیم. مطمئن شوید که قبل از حذف پشتیبان‌های پیشگیری‌کننده دارید." + :graph/diff "Git diff" + :graph/downloading "در حال دانلود" + :graph/encrypt-data-label "رمزنگاری داده‌های گراف" + :graph/excluded-pages "صفحات مستثنی شده" + :graph/forces "نیروها" + :graph/gc-success "پاکسازی گراف با موفقیت انجام شد!" + :graph/last-opened-at-label "آخرین بار باز شده: {1}" + :graph/leave-action "ترک این گراف" + :graph/leave-confirm-desc "آیا مطمئن هستید که می‌خواهید این گراف را ترک کنید؟" + :graph/leave-error "ترک گراف ناموفق بود" + :graph/left "ترک شد" + :graph/link-count "{1} پیوند" + :graph/link-distance "فاصله پیوند" + :graph/local-graphs "گراف‌های محلی" + :graph/n-hops-from-selected-nodes "تعداد گام از گره‌های انتخاب شده" + :graph/name-placeholder "نام گراف شما" + :graph/nodes "گره‌ها" + :graph/orphan-pages "صفحات یتیم" + :graph/page-count "{1} صفحه" + :graph/pause-simulation "توقف شبیه‌سازی" + :graph/preparing "در حال آماده‌سازی" + :graph/refresh-remote-graphs "بازخوانی گراف‌های راه دور" + :graph/remote-graphs "گراف‌های راه دور" + :graph/removed "گراف «{1}» حذف شد" + :graph/removed-and-redirecting "گراف «{1}» حذف شد. در حال انتقال به گراف «{2}»" + :graph/removed-from-sync "گراف از همگام‌سازی حذف شد" + :graph/reset "بازنشانی گراف" + :graph/reset-forces "بازنشانی نیروها" + :graph/search "جستجو" + :graph/shared-graphs "گراف‌های اشتراکی" + :graph/updated-switching "گراف به‌روزرسانی شد. در حال تغییر..." + :graph/use-sync-beta "استفاده از Logseq Sync (آزمایش بتا)" + :graph/use-sync-label "استفاده از Logseq Sync?" - :help/shortcut-page-title "کلیدهای میان‌بر" + :graph.diagnostics/checksum-failed-error "محاسبهٔ عیب‌یابی checksum گراف ناموفق بود." + :graph.diagnostics/checksum-recomputed-success "Checksum دوباره محاسبه شد. مقدار جدید: {1}، محلی: {2}، راه‌دور: {3}. فایل {4}.edn با {5} بلوک و ویژگی‌های checksum {6} دانلود شد." + :graph.diagnostics/checksum-unavailable-warning "محاسبهٔ عیب‌یابی checksum برای گراف فعلی ممکن نشد." + :graph.diagnostics/client-ops-export-failed-error "صدور Client ops SQLite ناموفق بود." + :graph.diagnostics/client-ops-export-invalid-payload-warning "صدور Client ops SQLite ناموفق بود: نوع payload نامعتبر {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite صادر شد: {1}.sqlite" + :graph.diagnostics/no-graph-warning "هیچ گرافی پیدا نشد." + + :graph.page/show-journals "نمایش روزنامه‌ها" + :graph.page/title "گراف صفحه" + + :graph.switch/add-graph-action "افزودن گراف" + :graph.switch/empty-desc "موردی در دسترس نیست" + :graph.switch/prompt "تغییر" + :graph.switch/select-prompt "یک گراف انتخاب کنید" + + :graph.validation/config-arweave-gateway-warning "دیگر پشتیبانی‌نشده است." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "دیگر پشتیبانی‌نشده است. لطفاً از '/' استفاده کنید و خطاهای آن را گزارش دهید." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "در گراف‌های پایگاه داده استفاده نمی‌شود زیرا فقط حالت نشانه‌گذاری وجود دارد." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "تایید‌کنندگی {1} بلاک (بلاک‌های) معتبر نیست را تشخیص داد. این بلاک‌ها ممکن است معیب باشند. تلاش برای اصلاح بلاک‌های معتبرنشده. تایید‌کنندگی را دوباره اجرا کنید تا ببینید آیا تعمیر شده‌اند." + :graph.validation/name-reserved-characters-warning "نام گراف نمی‌تواند شامل نویسه‌های رزرو شده زیر باشد:" + :graph.validation/reserved-character-asterisk "ستاره" + :graph.validation/reserved-character-backslash "بک‌اسلش" + :graph.validation/reserved-character-colon "دونقطه" + :graph.validation/reserved-character-double-quote "گیومهٔ دوتایی" + :graph.validation/reserved-character-forward-slash "اسلش" + :graph.validation/reserved-character-greater-than "بزرگ‌تر از" + :graph.validation/reserved-character-hash "علامت #" + :graph.validation/reserved-character-less-than "کوچک‌تر از" + :graph.validation/reserved-character-pipe "خط عمودی یا پایپ" + :graph.validation/reserved-character-plus "علامت +" + :graph.validation/reserved-character-question-mark "علامت سؤال" + :graph.validation/valid "گراف شما معتبر است! {1}" + + :header/go-back "بازگشت" + :header/go-forward "جلو" + :header/highlight-recent-blocks "برجسته‌کردن بلوک‌های اخیر" + :header/highlight-recent-blocks-days-ago "برجسته‌کردن بلوک‌های اخیر: {1} روز پیش" + :header/more "بیشتر" + :header/quit-highlight-recent-blocks "خروج از برجسته‌سازی بلوک‌های اخیر" + :header/toggle-left-sidebar "تغییر نوار کناری چپ" + + :help/about "درباره لاگ‌سیک" + :help/about-title "درباره" + :help/ask-community "از جامعه بپرسید" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "ارجاع بلوک" + :help/blog "وبلاگ" + :help/bug "گزارش باگ در GitHub" + :help/changelog "سیاهه تغییرات" + :help/community-title "جامعه" + :help/context-menu "فهرست زمینه‌ای بلوک" + :help/context-menu-action "کلیک راست روی بولت" + :help/development-title "توسعه" + :help/docs "مستندات" + :help/feature "درخواست ویژگی" + :help/forum-community "جامعه انجمن" + :help/handbook "کتابچه راهنما" + :help/learn-more "بیشتر بدانید" + :help/markdown-syntax "نحو Markdown" + :help/open-link-in-sidebar "باز کردن پیوند در نوار کناری" + :help/open-link-in-sidebar-action "Shift+کلیک روی ارجاع" + :help/privacy "سیاست حریم شخصی" + :help/reference-autocomplete "[[ارجاع]] برای تکمیل خودکار صفحه" + :help/release-notes "یادداشت‌های انتشار" + :help/roadmap "نقشه راه" + :help/search "جستجو" + :help/slash-autocomplete "/اسلش برای تکمیل خودکار" + :help/start "شروع" + :help/submit-feedback "ارسال بازخورد" + :help/support-forum "انجمن پشتیبانی" + :help/terms "شرایط" + :help/terms-title "شرایط" + :help/usage-title "استفاده" + + :help.handbook/chat-on-discord "گفتگو در Discord" + :help.handbook/chat-on-discord-desc "سؤالات سریع بپرسید، با کاربران دیگر آشنا شوید و روش‌های کاری جدید بیاموزید." + :help.handbook/copy-topic-link "کپی پیوند موضوع" + :help.handbook/current-chapter "فصل فعلی" + :help.handbook/help-categories "دسته‌های راهنما" + :help.handbook/home "خانه" + :help.handbook/link-copied "پیوند کتابچه راهنما کپی شد!" + :help.handbook/monthly-posts "پست‌های ماهانه" + :help.handbook/next-chapter "فصل بعدی" + :help.handbook/popular-topics "موضوعات محبوب" + :help.handbook/prev-chapter "فصل قبلی" + :help.handbook/resources-from "منابع از {1}" + :help.handbook/search-placeholder "جستجو" + :help.handbook/shortcuts-count "{1} میانبر" + :help.handbook/sync "همگام‌سازی" + :help.handbook/title "راهنما" + :help.handbook/topics "موضوعات" + :help.handbook/users-online "کاربران آنلاین" + :help.handbook/visit-the-forum "بازدید از انجمن" + :help.handbook/visit-the-forum-desc "بازخورد بدهید، ویژگی درخواست کنید و گفتگوهای عمیق داشته باشید." + :help.handbook/writing-mode "حالت نوشتن (پیش‌نمایش در زمان)" + + :help.shortcuts/desc "نمایش میان‌برها و نکات" + :help.shortcuts/label "کلیدهای میان‌بر" + :help.shortcuts/shortcut-column "میان‌بر" + :help.shortcuts/title "میان‌برهای صفحه‌کلید" + :help.shortcuts/triggers "میان‌برها و محرک‌ها" + + :icon/emojis-count "ایموجی‌ها ({1})" + :icon/icons-count "آیکون‌ها ({1})" + :icon/matched-count "مطابق ({1})" + :icon/search-all "جستجو در همه" + :icon/search-emojis "جستجوی ایموجی‌ها" + :icon/search-icons "جستجوی آیکون‌ها" + :icon/tab-all "همه" + :icon/tab-emojis "ایموجی‌ها" + :icon/tab-icons "آیکون‌ها" + + :import/all-tags "وارد کردن همه برچسب‌ها" + :import/asset-too-large-warning "کپی دارایی {1} رد شد چون از محدودیت 100 مگابایت بیشتر است." + :import/assets-import-partial "{1}/{2} فایل وارد شد. جزئیات در کنسول." + :import/assets-imported "{1} فایل وارد شد." + :import/assets-skipped "{1} فایل نادیده گرفته شد. جزئیات در کنسول." + :import/block-icons-cannot-be-imported "آیکون‌های بلوک قابل وارد کردن نیستند. به صورت دستی در بلوک {1} وارد کنید." + :import/cannot-import-block-into-non-block-entity "نمی‌توان بلوک را به موجودیت غیربلوکی وارد کرد." + :import/db-edn-desc "وارد کردن صادرات EDN یک گراف DB به گراف DB جدید" + :import/db-edn-title "EDN به گراف DB" + :import/debug-transit-desc "وارد کردن فایل transit اشکال‌زدایی به گراف DB جدید" + :import/debug-transit-title "Transit اشکال‌زدایی" + :import/default-db-graph-behavior "رفتار پیش‌فرض گراف DB" + :import/empty-graph-name "نام گراف نمی‌تواند خالی باشد." + :import/extract-inline-code-snippets "استخراج قطعه‌کدهای درون‌خطی به عنوان زیرمجموعه" + :import/file-finished "وارد کردن تمام شد!" + :import/file-to-db-desc "وارد کردن پوشه گراف Logseq مبتنی بر فایل به گراف DB جدید" + :import/file-to-db-title "فایل به گراف DB" + :import/graph-name-conflict "گرافی با این نام از قبل وجود دارد. نام دیگری انتخاب کنید!" + :import/graph-name-placeholder "نام گراف" + :import/ignored-assets "{1} فایل در حین وارد کردن نادیده گرفته شد. جزئیات در کنسول JavaScript." + :import/ignored-files "{1} فایل در حین وارد کردن نادیده گرفته شد. جزئیات در کنسول JavaScript." + :import/ignored-properties "{1} ویژگی در حین وارد کردن نادیده گرفته شد" + :import/ignored-properties-fix "برای اصلاح نوع ویژگی، مقدار را تغییر دهید و دوباره وارد کنید" + :import/invalid-blocks-detected "{1} بلوک نامعتبر. تعامل ممکن نیست. جزئیات در کنسول JavaScript." + :import/invalid-edn-file "فایل EDN ارائه‌شده نامعتبر است. اصلاح کرده و دوباره تلاش کنید." + :import/loading "در حال وارد کردن" + :import/logseq-config-missing "خطا: گراف Logseq فایل 'logseq/config.edn' را ندارد." + :import/new-graph-name "نام گراف جدید" + :import/notes "وارد کردن یادداشت‌ها" + :import/org-files-imported "{1} فایل Org به عنوان Markdown وارد شد. پشتیبانی Org بعداً اضافه خواهد شد." + :import/page-icons-cannot-be-imported "آیکون‌های صفحه قابل وارد کردن نیستند. به صورت دستی در صفحه {1} وارد کنید." + :import/properties-case-insensitive-commas "نام ویژگی‌ها (بدون حساسیت به حروف، جدا شده با کاما)" + :import/property-classes-placeholder "مثال: type" + :import/property-import-manually "این ویژگی باید به صورت دستی وارد شود" + :import/property-parent-classes-placeholder "مثال: parent" + :import/property-type-mismatch "مقدار ویژگی از نوع {1} است، نه {2}" + :import/property-value-tag-parents "وارد کردن برچسب‌های والد از مقادیر ویژگی" + :import/property-value-tags "وارد کردن برچسب‌های اضافی از مقادیر ویژگی" + :import/remove-inline-tags "حذف برچسب‌های درون‌خطی" + :import/select-edn-or-json "یک فایل EDN یا JSON انتخاب کنید." + :import/specific-tags "وارد کردن برچسب‌های خاص" + :import/sqlite-and-assets-desc "وارد کردن فایل zip شامل db.sqlite و پوشه assets" + :import/sqlite-and-assets-title "SQLite + فایل‌های پیوست (.zip)" + :import/submitted-edn-invalid "داده EDN ارائه‌شده نامعتبر است! اصلاح کرده و دوباره تلاش کنید." + :import/successful "وارد کردن موفق بود!" + :import/tag-classes-placeholder "برچسب۱، برچسب۲" + :import/tags-case-insensitive "برچسب‌ها (بدون حساسیت به حروف)" + :import/title "وارد کردن" + :import/unexpected-error "خطای غیرمنتظره: {1}" + :import/zip-import-error "وارد کردن فایل فشرده انجام نشد: {1}" + :import/zip-missing-db-sqlite "فایل ZIP شامل db.sqlite نیست" + + :journal/add-blocks-to-today-success "بلوک‌های اضافه‌شده امروز" + :journal/page-cant-convert-warning "این صفحه یک روزنامه نیست." + :journal/parse-date-to-name-error "تجزیه نام روزنامه ناموفق بود" + + :journal.default-query/doing "در حال انجام" + :journal.default-query/todo "انجام‌دادنی" + + :keymap/all "همه" + :keymap/already-bound "میان‌بر قبلاً اختصاص داده شده" + :keymap/also-used-for-action "همچنین برای {1}" + :keymap/also-used-for-action-in-context "همچنین برای {1} زمینه: {2}" + :keymap/clear "پاک کردن" + :keymap/clear-keystroke-filter "پاک کردن فیلتر کلید" + :keymap/clear-search "پاک کردن جستجو" + :keymap/custom "سفارشی" + :keymap/deactivates-chord "غیرفعال می‌کند" + :keymap/deactivates-chords "{1} ترکیب میان‌بر را غیرفعال می‌کند" + :keymap/disabled "غیرفعال" + :keymap/esc-is-reserved "Esc رزرو شده" + :keymap/hint-cancel "لغو" + :keymap/hint-close "بستن" + :keymap/hint-reassign "اختصاص مجدد" + :keymap/hint-remove "حذف" + :keymap/keystroke-filter "فیلتر ضربات کلید" + :keymap/no-matching-shortcuts "میان‌بر مطابقی یافت نشد" + :keymap/press-a-shortcut "یک میان‌بر فشار دهید" + :keymap/press-keys-to-filter "کلیدها را برای فیلتر فشار دهید" + :keymap/reassign "اختصاص مجدد" + :keymap/reassign-tooltip "اختصاص مجدد میان‌بر این عمل" + :keymap/reassigned-from "اختصاص مجدد از {1}" + :keymap/refresh-all "بازخوانی همه" + :keymap/remove-binding "حذف اختصاص کلید" + :keymap/remove-filter "حذف فیلتر" + :keymap/reset "بازنشانی" + :keymap/reset-to-default "بازنشانی به پیش‌فرض" + :keymap/search-by-keys "جستجو بر اساس کلیدها" + :keymap/search-placeholder "جستجوی میان‌بر…" + :keymap/shortcut-added "میان‌بر اضافه شد" + :keymap/shortcut-removed "میان‌بر حذف شد" + :keymap/toggle-categories-pane "تغییر وضعیت پنل دسته‌بندی‌ها" + :keymap/undo "واگرد" + :keymap/unset "تنظیم‌نشده" + :keymap/used-by-action "در حال استفاده توسط {1}" + + :library/add-existing-pages "افزودن صفحه‌های موجود به کتابخانه" + :library/add-pages "افزودن صفحه‌ها" + :library/title "کتابخانه" + + :mobile/camera-access-denied "دسترسی دوربین رد شده است. آن را در تنظیمات > Logseq فعال کنید." + :mobile/microphone-access-denied "دسترسی میکروفون رد شده است. آن را در تنظیمات > Logseq فعال کنید." + + :mobile.header/actions "عملیات" + :mobile.header/create-graph "ایجاد گراف" + :mobile.header/delete-block-confirm-desc "این بلوک حذف شود؟" + :mobile.header/delete-page-confirm-desc "این صفحه حذف شود؟" + + :mobile.intent/file-options "گزینه‌های فایل" + :mobile.intent/open-with-app "باز کردن فایل با برنامه مورد علاقه شما" + :mobile.intent/select-option-prompt "یک گزینه برای انجام انتخاب کنید" + :mobile.intent/share "اشتراک‌گذاری" + + :mobile.log/all "همه" + :mobile.log/errors-only "فقط خطاها" + :mobile.log/full "کامل" + :mobile.log/new-first "جدیدترین اول" + :mobile.log/old-first "قدیمی‌ترین اول" + :mobile.log/ui "رابط کاربری" + :mobile.log/worker "ورکر" + + :mobile.settings/account "حساب" + :mobile.settings/check-log "گزارش" + :mobile.settings/discord-community "جامعه Discord" + :mobile.settings/forum "انجمن" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "گزارش باگ" + :mobile.settings/revision "بازنگری" + :mobile.settings/theme "پوسته" + :mobile.settings/version "نسخه" + + :mobile.share/file-import-error "وارد کردن فایل ناموفق بود" + :mobile.share/media-import-error "وارد کردن رسانه ناموفق بود" + :mobile.share/unsupported-content-warning "تجزیه محتوای مشترک فعلی پشتیبانی نمی‌شود. لطفاً کدهای زیر را در {1} گزارش دهید. ما به زودی آن را بررسی خواهیم کرد." + :mobile.share/unsupported-import-type "وارد کردن فایل {1} پشتیبانی نمی‌شود. می‌توانید آن را در {2} گزارش دهید. ما به زودی آن را بررسی خواهیم کرد." + + :mobile.tab/capture "ضبط" + :mobile.tab/go-to "رفتن به" + :mobile.tab/graphs "گراف‌ها" + + :mobile.toolbar/audio "صوت" + :mobile.toolbar/copy-ref "کپی مرجع" + :mobile.toolbar/copy-url "کپی آدرس" + :mobile.toolbar/hide "مخفی" + :mobile.toolbar/indent "تورفتگی" + :mobile.toolbar/outdent "برون‌رفتگی" + :mobile.toolbar/photo "عکس" + :mobile.toolbar/redo "بازانجام" + :mobile.toolbar/reference "مرجع" + :mobile.toolbar/slash "اسلش" + :mobile.toolbar/tag "برچسب" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "واگرد" + :mobile.toolbar/unselect "لغو انتخاب" + + :nav/all-files "همه فایل‌ها" + :nav/all-journals "همه روزنامه‌ها" + :nav/appearance "ظاهر" + :nav/assets "فایل‌ها" + :nav/cannot-go-to-internal-page "نمی‌توان به صفحه داخلی رفت" + :nav/flashcards "فلش‌کارت‌ها" + :nav/graph "گراف" + :nav/graph-view "نمای گراف" + :nav/help "راهنما" + :nav/home "خانه" + :nav/invalid-jump-error "پرش نامعتبر" + :nav/journals "روزنامه‌ها" + :nav/plugins "افزونه‌ها" + :nav/search "جستجو" + :nav/settings "تنظیمات" + :nav/skip-to-main-content "پرش به محتوای اصلی" + :nav/tasks "وظایف" + :nav/themes "پوسته‌ها" + + :nav.all-pages/label "همه صفحات" + :nav.all-pages/title "همه صفحات" + + :node/built-in-cant-delete-error "عناصر داخلی قابل حذف نیستند." + :node/new "گره جدید" + + :notification/clear-all "پاک کردن همه" + :notification/copied "کپی شد" + + :onboarding.import/desc "توضیحات وارد کردن" + :onboarding.import/sqlite-desc "وارد کردن از پایگاه داده SQLite" + :onboarding.import/title "وارد کردن" + + :onboarding.import-option/desc "وارد کردن داده‌ها از برنامه‌های دیگر" + :onboarding.import-option/title "وارد کردن داده‌ها" + + :onboarding.setup/desc "فضای کاری برای دانش شما" + :onboarding.setup/title (fn [] ["به " [:strong "Logseq"] " خوش آمدید!"]) + + :page/add-to-favorites "افزودن به علاقه‌مندی‌ها" + :page/added-tag-to-node "برچسب \"{1}\" را به \"{2}\" اضافه کرد" + :page/backlinks "پیوندهای بازگشتی" + :page/clear "پاک کردن" + :page/clear-local-storage-desc "این کار تنظیمات جزئی مانند ترجیح تم تیره/روشن را حذف می‌کند." + :page/cleared "پاک شد" + :page/contents "محتوا" + :page/convert-to-tag "تبدیل به برچسب" + :page/copy-url "کپی آدرس صفحه" + :page/create "ایجاد صفحه جدید" + :page/created-at "ایجاد شده در" + :page/current-graph-as-sqlite-db "گراف فعلی به صورت پایگاه داده SQLite" + :page/default-query-error "خطای پرس‌وجوی پیش‌فرض:" + :page/delete "حذف" + :page/go-back-home "بازگشت به صفحه اصلی" + :page/hide-properties "مخفی کردن ویژگی‌ها" + :page/local-storage "حافظه محلی" + :page/logseq-is-having-a-problem "Logseq با مشکلی مواجه شده است. برای برگرداندن برنامه به حالت پایدار، لطفاً این مراحل امن را به‌ترتیب امتحان کنید:" + :page/make-private "خصوصی کردن" + :page/make-public "عمومی کردن" + :page/moved-to-recycle "گره به سطل بازیافت منتقل شد" + :page/name "نام صفحه" + :page/no-page-found-to-copy "صفحه‌ای برای کپی یافت نشد" + :page/not-found "صفحه پیدا نشد" + :page/not-found-desc "اوه! صفحه‌ای که به دنبال آن هستید وجود ندارد." + :page/not-found-title "صفحه پیدا نشد" + :page/not-found-warning "صفحه‌ای یافت نشد" + :page/open-all-graphs-desc "همچنین می‌توانید به {{All graphs}} بروید تا به گراف دیگری تغییر دهید." + :page/open-issue-desc "اگر این مراحل عیب‌یابی مشکل شما را حل نکرده است، لطفاً {{open an issue}}." + :page/open-properties "باز کردن ویژگی‌ها" + :page/rebuild "بازسازی" + :page/relaunch "راه‌اندازی مجدد" + :page/relaunch-desc "خروج و باز کردن مجدد برنامه." + :page/scheduled-and-deadline "زمان‌بندی شده و مهلت" + :page/search-index "ایندکس جستجو" + :page/send-db-for-debugging "می‌توانید آن را برای اشکال‌زدایی به help@logseq.com ارسال کنید." + :page/something-went-wrong "مشکلی پیش آمد" + :page/step "مرحله {1}" + :page/the-app "برنامه" + :page/try "تلاش" + :page/unfavorite "حذف از علاقه‌مندی‌ها" + :page/unknown "صفحه ناشناخته" + :page/updated-at "به‌روزرسانی شده در" + + :page.convert/block-parent-not-page "تبدیل بلوک ممکن نیست. والد صفحه نیست." + :page.convert/cant-be-block "صفحه \"{1}\" را نمی توان به بلوک تبدیل کرد." + :page.convert/cant-be-block-has-children "صفحه \"{1}\" را نمی توان به بلوک تبدیل کرد زیرا دارای فرزند صفحه است." + :page.convert/cant-be-block-move-first "صفحه \"{1}\" را نمی توان به بلوک تبدیل کرد، لطفاً ابتدا آن را به صفحه دیگری منتقل کنید." + :page.convert/page-to-tag-action "تبدیل \"{1}\" به برچسب" + :page.convert/page-to-tag-built-in "صفحات داخلی نمی‌توانند برچسب باشند" + :page.convert/page-to-tag-duplicate "یک برچسب با نام \"{1}\" از قبل وجود دارد." + :page.convert/page-to-tag-namespaced "صفحات فضای نام نمی‌توانند برچسب باشند" + :page.convert/property-value-to-page "تبدیل مقدار ویژگی به صفحه ممکن نیست." + :page.convert/tag-to-page-action "تبدیل برچسب به صفحه" + :page.convert/tag-to-page-built-in "برچسب‌های داخلی نمی‌توانند صفحه باشند" + :page.convert/tag-to-page-confirm-desc "تبدیل یک برچسب به صفحه، ویژگی‌های برچسب آن و خود برچسب را نیز از همه گره‌هایی که با آن برچسب خورده‌اند حذف می‌کند. با این کار موافقید؟" + :page.convert/tag-to-page-duplicate "صفحه ای با نام \"{1}\" از قبل وجود دارد." + :page.convert/tag-to-page-has-children "برچسب دارای فرزندان است و نمی‌توان تبدیل کرد" + + :page.delete/batch-confirm-title "آیا مطمئن هستید که می‌خواهید این صفحات را حذف کنید؟ ویژگی‌ها و برچسب‌ها برای همیشه حذف می‌شوند و صفحه‌ها به سطل بازیافت منتقل می‌شوند." + :page.delete/confirm-title "آیا مطمئن هستید که می خواهید این صفحه را حذف کنید؟" + :page.delete/permanent-confirm-title "آیا مطمئن هستید که می‌خواهید این صفحه را برای همیشه حذف کنید؟" + :page.delete/success "صفحه «{1}» با موفقیت حذف شد!" + :page.delete/total "مجموع: {1}" + :page.delete/warning "محتوای این صفحات حذف شد اما حذف نشدند: {1}. برای جزئیات بیشتر به کنسول جاوا اسکریپت مراجعه کنید." + + :page.validation/cant-set-built-in-tags "صفحه جدید نمی تواند برچسب های داخلی را تنظیم کند: {1}" + :page.validation/duplicate "صفحه دیگری با نام \"{1}\" از قبل برای برچسب‌ها وجود دارد: {2}." + :page.validation/name-blank "نام صفحه نمی‌تواند خالی باشد." + :page.validation/name-no-hash "نام صفحه نمی‌تواند شامل # باشد" + :page.validation/name-no-slash "نام صفحه نمی‌تواند شامل / باشد." + :page.validation/parents-must-be-pages "والدین باید صفحه باشند." + + :pdf/annotations-page "صفحه حاشیه‌نویسی‌ها" + :pdf/area-highlight-shortcut "برجسته‌سازی ناحیه ({1})" + :pdf/auto-fit "تنظیم خودکار" + :pdf/auto-open-context-menu "باز کردن خودکار منوی زمینه" + :pdf/copy-ref "کپی مرجع PDF" + :pdf/copy-text "کپی متن" + :pdf/corrupted-file-error "خطا: {1}\nآیا این فایل .pdf خراب است؟\nلطفاً با نمایشگر pdf خارجی بررسی کنید." + :pdf/doc-metadata "فراداده سند" + :pdf/enter-to-search "Enter برای جستجو" + :pdf/find-results "{1} از {2} مورد (\"{3}\")" + :pdf/generic-error "خطا: {1}\n{2}\nلطفاً منبع فایل pdf را بررسی کنید." + :pdf/highlight-mode "حالت برجسته‌سازی" + :pdf/highlights "برجسته‌سازی‌ها" + :pdf/hl-block-colored "برجسته‌سازی رنگی" + :pdf/linked-ref "مرجع پیوندشده" + :pdf/load-highlights-file-error "خطا: خواندن پرونده برجسته‌ها شکست خورد: \"{1}\". \n{2}" + :pdf/missing-file-error "خطا: {1}\n آیا این مسیر صحیح است؟" + :pdf/more-settings "تنظیمات بیشتر" + :pdf/no-outlines "بدون فهرست" + :pdf/not-found "پیدا نشد." + :pdf/open-in-app-window "باز کردن در پنجره برنامه" + :pdf/open-in-external-window "باز کردن در پنجره خارجی" + :pdf/outline "فهرست" + :pdf/page-label "صفحه {1}" + :pdf/password-protected-desc "این سند با رمز عبور محافظت شده است. لطفاً یک رمز عبور وارد کنید:" + :pdf/password-required "رمز عبور لازم است" + :pdf/search "جستجو" + :pdf/search-placeholder "جستجو" + :pdf/toggle-dashed "تغییر خط‌چین" + :pdf/viewer "نمایشگر pdf" + :pdf/zoom-in "بزرگ‌نمایی" + :pdf/zoom-out "کوچک‌نمایی" - :plugin/installed "نصب شده" - :plugin/installed-plugin "افزونه نصب شده: {1}" - :plugin/not-installed "نصب نشده" - :plugin/installing "در حال نصب" - :plugin/install "نصب" - :plugin/reload "بار کردن مجدد" - :plugin/update "به‌روزرسانی" - :plugin/update-plugin "به‌روزرسانی افزونه: {1} - {2}" - :plugin/check-update "بررسی به‌روزرسانی" - :plugin/check-all-updates "بررسی همه به‌روزرسانی‌ها" - :plugin/found-updates "به‌روزرسانی‌های جدید" - :plugin/found-n-updates "{1} به‌روزرسانی پیدا شد" - :plugin/update-all-selected "به‌روزرسانی همه انتخاب شده‌ها" - :plugin/all-updated "همگی به‌روز شدند!" - :plugin/updates-downloading "بارگیری به‌روزرسانی‌ها" - :plugin/refresh-lists "تازه‌سازی فهرست‌ها" - :plugin/enabled "فعال" - :plugin/disabled "غیرفعال" - :plugin/update-available "به‌روزرسانی موجود است" - :plugin/updating "در حال به‌روزرسانی" - :plugin/uninstall "حذف نصب" - :plugin/marketplace "بازارچه" - :plugin/downloads "بارگیری‌ها" - :plugin/stars "ستاره‌ها" - :plugin/title "عنوان ({1})" :plugin/all "همه" - :plugin/unpacked "بسته‌بندی نشده" - :plugin/delete-alert "برای حذف افزونهٔ [{1}] اطمینان دارید؟" - :plugin/open-settings "باز کردن تنظیمات" + :plugin/auto-update-check "بررسی خودکار به‌روزرسانی‌ها" + :plugin/auto-update-check-feedback "بررسی خودکار به‌روزرسانی‌ها: {1}!" + :plugin/check-all-updates "بررسی همه به‌روزرسانی‌ها" + :plugin/check-update "بررسی به‌روزرسانی" + :plugin/checked "بررسی شد" + :plugin/checking-for-updates "در حال بررسی به‌روزرسانی‌ها" + :plugin/contribute "✨ مشارکت" + :plugin/custom-js-alert "هشدار JS سفارشی" + :plugin/date-added "تاریخ افزودن" + :plugin/delete-alert "آیا مطمئن هستید که می خواهید افزونه [{1}] را حذف نصب کنید؟" + :plugin/disable-for-performance-feedback "افزونه {1} غیرفعال شده است." + :plugin/disable-now "غیرفعال کردن فوری" + :plugin/disabled "غیرفعال" + :plugin/does-not-support-db "از گراف‌های DB پشتیبانی نمی‌کند" + :plugin/downloads "دانلودها" + :plugin/empty "چیزی پیدا نشد." + :plugin/enabled "فعال" + :plugin/existed-package "بسته افزونه موجود ({1})." + :plugin/fatal-error "خطای بحرانی: {1}" + :plugin/found-n-updates "{1} به‌روزرسانی موجود" + :plugin/found-updates "به‌روزرسانی یافت شد" + :plugin/install "نصب" + :plugin/install-error "نصب ناموفق: {1}\n{2}" + :plugin/installed "نصب‌شده" + :plugin/installed-plugin "پلاگین نصب شده: {1}" + :plugin/installing "در حال نصب" + :plugin/invalid-github-repo-url "آدرس مخزن GitHub نامعتبر" + :plugin/invalid-package "بسته نامعتبر" + :plugin/invalid-plugins-edn "فایل plugins.edn نامعتبر" + :plugin/list-of-updates "فهرست به‌روزرسانی‌ها" + :plugin/load-from-web-url "بارگذاری از آدرس وب" + :plugin/load-plugin-indicator "در حال بارگذاری افزونه: {1}..." + :plugin/load-unpacked "بارگذاری افزونه بسته‌بندی‌نشده" + :plugin/loading-indicator "در حال بارگذاری" + :plugin/malformed-plugins-edn "خطا در فایل plugins.edn" + :plugin/marketplace "فروشگاه افزونه‌ها" + :plugin/new-registered "افزونه جدید ثبت شد" + :plugin/no-settings-schema "بدون طرح تنظیمات!" + :plugin/not-installed "نصب نشده" + :plugin/open-logseq-dir "باز کردن پوشه Logseq" :plugin/open-package "باز کردن بسته" - :plugin/load-unpacked "بار کردن افزونه بسته‌بندی نشده" - :plugin/restart "بازراه‌اندازی برنامه" - :plugin/unpacked-tips "انتخاب پوشهٔ افزونه" - :plugin/contribute "✨ افزونهٔ جدید نوشته و بفرستید" - :plugin/up-to-date "به روز است {1}" - :plugin/custom-js-alert "پرونده‌ای به نام custom.js پیدا کردم. مجازم که اجرایش کنم؟ (اگر از محتوای این پرونده سر در نمی‌آورید، پیشنهاد می‌شود که اجازه اجرا را ندهید چون می‌تواند مخاطرات امنیتی داشته باشد.)" - :plugin/security-warning "افزونه‌ها می‌توانند به گراف و پرونده‌های محلی شما دسترسی داشته و درخواست‌هایی روی شبکه بفرستند. - آن‌ها همجنین می‌توانند باعت تخریب و یا از دست رفتن داده‌ها شوند. ما مشغول کار روی قوانین دسترسی مناسب برای گراف شما هستیم. - در این بین، اطمینان حاصل کنید که به طور منظم از گراف‌های خود نسخه پشتیبان تهیه کرده و تنها زمانی از افزونه‌ها استفاده کنید - که می‌توانید کد منبع آن‌ها مطالعه و درک کنید." - :plugin/search-plugin "جستجوی افزونه‌ها" - :plugin/open-preferences "باز کردن ترجیحات" - :plugin/open-logseq-dir "باز کردن" - :plugin/remote-error "خطای راه دور: " - :plugin/checking-for-updates "در حال بررسی به‌روزرسانی افزونه‌ها..." - :plugin/list-of-updates "افزونه‌های دارای به‌روزرسانی: " - :plugin/auto-check-for-updates "بررسی خودکار برای به‌روزرسانی" - :plugin.install-from-file/menu-title "نصب از plugins.edn" - :plugin.install-from-file/title "نصب افزونه‌ها از plugins.edn" - :plugin.install-from-file/notice "این افزونه‌ها جایگزین افزونه‌های شما می‌‌شوند:" - :plugin.install-from-file/success "همه افزونه‌ها نصب شدند!" + :plugin/open-preferences "باز کردن تنظیمات" + :plugin/open-settings "باز کردن تنظیمات" + :plugin/perf-tip "این افزونه {1} زمان زیادی برای بارگذاری می‌برد، بر زمان راه‌اندازی برنامه تأثیر می‌گذارد و ممکن است باعث شکست بارگذاری سایر افزونه‌ها شود." + :plugin/popular "محبوب" + :plugin/proxy-check-success "بررسی با موفقیت انجام شد: وضعیت {1} در {2} میلی‌ثانیه." + :plugin/readme-empty-warning "محتوای README وجود ندارد" + :plugin/refresh-lists "بازآوری فهرست‌ها" + :plugin/reload "بارگذاری مجدد" + :plugin/remote-error "خطای راه‌دور: {1}" + :plugin/report-modal-desc "اگر هیچ افزونه‌ای غیرفعال است یا فکر می‌کنید که دارای کد مخرب است، لطفاً به {1} ایمیل بفرستید. نام افزونه و URL مخزن GitHub آن را ذکر کنید. تیم Logseq معمولاً در طول یک روز کاری پاسخ می‌دهد." + :plugin/report-security "گزارش مشکل امنیتی" + :plugin/restart "راه‌اندازی مجدد" + :plugin/search-plugin "جستجوی افزونه" + :plugin/security-warning "هشدار امنیتی" + :plugin/setting-not-handled "#مدیریت نشده# {1}" + :plugin/settings-schema-error "خطای طرح تنظیمات!" + :plugin/stars "ستاره‌ها" + :plugin/supports-db "پشتیبانی DB" + :plugin/title "عنوان ({1})" + :plugin/uninstall "حذف" + :plugin/unpacked "بسته‌بندی‌نشده" + :plugin/unpacked-tips "نکات افزونه بسته‌بندی‌نشده" + :plugin/up-to-date "به‌روز است {1}" + :plugin/update "به‌روزرسانی" + :plugin/update-all-selected "به‌روزرسانی همه انتخاب‌شده" + :plugin/update-all-success "همه افزونه‌ها به‌روز شد" + :plugin/update-available "به‌روزرسانی موجود" + :plugin/update-plugin "به روز رسانی افزونه: {1} - {2}" + :plugin/updates-downloading "در حال دانلود به‌روزرسانی‌ها" + :plugin/updating "در حال به‌روزرسانی" - :updater/new-version-install "نسخه‌ای جدید بارگیری شده است." - :updater/quit-and-install "بازراه‌اندازی برای نصب" + :plugin.install-from-file/menu-title "نصب از فایل" + :plugin.install-from-file/notice "یک فایل افزونه برای نصب انتخاب کنید" + :plugin.install-from-file/success "افزونه نصب شد" + :plugin.install-from-file/title "نصب افزونه از فایل" - :tips/all-done "همه انجام شدند!" + :plugin.install-from-web-url/effect-label "افکت" + :plugin.install-from-web-url/repo-url-placeholder "آدرس مخزن GitHub" + :plugin.install-from-web-url/supports-note "آدرس‌های URL هم مخازن GitHub و هم سرورهای توسعه محلی را پشتیبانی می‌کنند. (برای نمونه‌ها: {1}, {2})" + :plugin.install-from-web-url/theme-label "پوسته" + + :plugin.package-config/detach-desc "حذف آن فقط افزونه را از Logseq جدا می‌کند و پوشهٔ منبع را دست‌نخورده نگه می‌دارد." + :plugin.package-config/parse-error "تجزیهٔ پیکربندی بستهٔ افزونه ناموفق بود." + :plugin.package-config/remove-error "حذف افزونهٔ خراب ناموفق بود." + :plugin.package-config/remove-external-success "افزونهٔ خراب از فهرست افزونه‌ها حذف شد." + :plugin.package-config/remove-installed-success "افزونهٔ خراب «{1}» حذف شد." + + :plugin.proxy/direct "مستقیم" + :plugin.proxy/system "سیستم" + :plugin.proxy/test-url "آزمون URL" + :plugin.proxy/testing "در حال آزمایش" + + :plugin.settings/edit-settings-json "ویرایش settings.json" + :plugin.settings/exit-code-mode "خروج از حالت کد" + :plugin.settings/title "تنظیمات افزونه‌ها" + + :plugin.themes/default-desc "تم پیش‌فرض {1} Logseq." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "تم‌های {1}" + :plugin.themes/light-and-dark "تم‌های روشن و تیره" + + :profiler/input-fn-placeholder "نام تابع را اینجا وارد کنید" + :profiler/unregister "لغو ثبت" + + :property/add-choice "افزودن گزینه" + :property/add-choices "افزودن گزینه‌ها" + :property/add-description "افزودن توضیح" + :property/add-new "افزودن ویژگی" + :property/add-or-change "افزودن یا تغییر ویژگی" + :property/available-choices "گزینه‌های موجود" + :property/change-tooltip "تغییر {1}" + :property/checkbox-state-mapping "نگاشت وضعیت چک‌باکس" + :property/children-count "کودکان ({1})" + :property/choices-count "{1} انتخاب" + :property/choose-tag "انتخاب برچسب" + :property/choose-tags "انتخاب برچسب‌ها" + :property/clear-value "پاک کردن" + :property/configure "پیکربندی" + :property/convert-page-to-property "تبدیل \"{1}\" به ویژگی" + :property/create-error "ایجاد ویژگی ناموفق بود." + :property/default-value "مقدار پیش‌فرض" + :property/delete-from-node "حذف از گره" + :property/delete-from-node-confirm "این ویژگی از گره حذف شود؟" + :property/delete-from-tag "حذف از برچسب" + :property/delete-from-tag-confirm "این ویژگی از برچسب حذف شود؟" + :property/description-placeholder "توضیحات را وارد کنید" + :property/drag-to-reorder "برای مرتب‌سازی بکشید" + :property/existing-values "مقادیر موجود" + :property/go-to-this-property "رفتن به صفحه ویژگی" + :property/hidden-properties "ویژگی‌های پنهان" + :property/hide-by-default "مخفی به‌طور پیش‌فرض" + :property/hide-choice-for-tag "مخفی کردن گزینه برای برچسب" + :property/hide-empty-value "مخفی کردن مقادیر خالی" + :property/hide-for-tag "پنهان برای #{1}" + :property/hide-hidden-choices "مخفی کردن گزینه‌های پنهان" + :property/map-checked-to "نگاشت تیک‌خورده به" + :property/map-unchecked-to "نگاشت تیک‌نخورده به" + :property/more-settings "تنظیمات بیشتر" + :property/multiple-values "مقادیر چندگانه" + :property/multiple-values-confirm "مقادیر چندگانه فعال شود؟" + :property/name "نام" + :property/name-placeholder "نام ویژگی" + :property/nodes-with-property "گره‌های دارای ویژگی" + :property/overdue "عقب‌افتاده" + :property/private-built-in-not-usable "ویژگی داخلی خصوصی قابل استفاده نیست" + :property/select-choice "انتخاب گزینه" + :property/select-property-placeholder "انتخاب ویژگی" + :property/select-type-placeholder "انتخاب نوع ویژگی" + :property/self-reference "ارجاع به خود" + :property/set-default-choice "تنظیم گزینه پیش‌فرض" + :property/set-default-value "تنظیم مقدار پیش‌فرض" + :property/set-icon "تنظیم آیکون" + :property/set-placeholder "تنظیم {1}" + :property/set-property "تنظیم ویژگی" + :property/set-tags "تنظیم برچسب‌ها" + :property/set-value "تنظیم مقدار" + :property/show-as-checkbox-on-node "نمایش به عنوان چک‌باکس روی گره" + :property/show-as-checkbox-on-tagged-nodes "نمایش به عنوان چک‌باکس روی گره‌های برچسب‌دار" + :property/show-hidden-choices "نمایش گزینه‌های پنهان" + :property/skip-choosing-tag "رد شدن از انتخاب برچسب" + :property/specify-node-tags "تعیین برچسب‌های گره" + :property/title-placeholder "عنوان" + :property/type "نوع" + :property/type-change-warning "تغییر نوع ویژگی برخی تنظیمات ویژگی را پاک می‌کند." + :property/type-checkbox "چک‌باکس" + :property/type-date "تاریخ" + :property/type-datetime "تاریخ/زمان" + :property/type-locked-help "نوع قفل شده" + :property/type-node "گره" + :property/type-number "عدد" + :property/type-text "متن" + :property/type-url "URL" + :property/ui-position "موقعیت رابط کاربری" + :property/ui-position-block-below "زیر بلوک" + :property/ui-position-block-left "چپ بلوک" + :property/ui-position-block-right "راست بلوک" + :property/ui-position-properties "ویژگی‌ها" + :property/unset-property "حذف ویژگی" + :property/update-success "به‌روزرسانی شد" + + :property.built-in/alias "نام مستعار" + :property.built-in/asset "فایل پیوست" + :property.built-in/asset-align "تراز فایل پیوست" + :property.built-in/asset-checksum "جمع‌بررسی فایل" + :property.built-in/asset-external-file-name "نام فایل خارجی" + :property.built-in/asset-external-url "آدرس خارجی" + :property.built-in/asset-height "ارتفاع تصویر" + :property.built-in/asset-last-visit-page "آخرین صفحه بازدید شده" + :property.built-in/asset-remote-metadata "فراداده راه دور فایل" + :property.built-in/asset-resize-metadata "فراداده تغییر اندازه فایل پیوست" + :property.built-in/asset-size "اندازه فایل" + :property.built-in/asset-type "نوع فایل" + :property.built-in/asset-width "عرض تصویر" + :property.built-in/background-color "رنگ پس‌زمینه" + :property.built-in/built-in "داخلی؟" + :property.built-in/checkbox-display-properties "ویژگی‌های نمایش داده شده به صورت چک‌باکس" + :property.built-in/choice-checkbox-state "وضعیت چک‌باکس انتخاب" + :property.built-in/choice-classes "کلاس‌های انتخاب" + :property.built-in/choice-exclusions "استثناهای انتخاب" + :property.built-in/class-bidirectional-property-title "عنوان ویژگی دوطرفه" + :property.built-in/class-enable-bidirectional "فعال‌سازی ویژگی‌های دوطرفه" + :property.built-in/class-extends "گسترش می‌دهد" + :property.built-in/class-hide-from-node "پنهان از گره" + :property.built-in/class-properties "ویژگی‌های برچسب" + :property.built-in/classes "کلاس‌های ویژگی" + :property.built-in/closed-value-property "ویژگی مقدار بسته" + :property.built-in/code-lang "حالت کد" + :property.built-in/collapsed "گره جمع شده؟" + :property.built-in/created-at "تاریخ ایجاد گره" + :property.built-in/created-by-ref "ایجاد شده توسط" + :property.built-in/created-from-property "ایجاد شده از ویژگی" + :property.built-in/deadline "مهلت" + :property.built-in/default-value "مقدار پیش‌فرض" + :property.built-in/deleted-at "تاریخ حذف" + :property.built-in/deleted-by-ref "حذف شده توسط" + :property.built-in/description "توضیحات" + :property.built-in/enable-history "فعال‌سازی تاریخچه ویژگی" + :property.built-in/exclude-from-graph-view "مستثنی از نمای گراف؟" + :property.built-in/fsrs-due "موعد" + :property.built-in/fsrs-state "وضعیت" + :property.built-in/heading "سرتیتر" + :property.built-in/hide "پنهان کردن این ویژگی یا صفحه" + :property.built-in/hide-empty-value "پنهان کردن مقدار خالی" + :property.built-in/history-block "بلوک تاریخچه" + :property.built-in/history-property "ویژگی تاریخچه" + :property.built-in/history-ref-value "مقدار تاریخچه" + :property.built-in/history-scalar-value "مقدار اسکالر تاریخچه" + :property.built-in/icon "آیکون" + :property.built-in/journal-day "تاریخ ژورنال" + :property.built-in/journal-title-format "قالب عنوان" + :property.built-in/link "گره پیوند می‌دهد به" + :property.built-in/linked-references-excludes "مراجع مستثنی شده" + :property.built-in/linked-references-includes "مراجع شامل شده" + :property.built-in/ls-type "نوع LS" + :property.built-in/node-display-type "نوع نمایش گره" + :property.built-in/order "ترتیب گره" + :property.built-in/order-list-type "نوع لیست" + :property.built-in/page "صفحه گره" + :property.built-in/page-tags "برچسب‌های صفحه" + :property.built-in/parent "والد گره" + :property.built-in/priority "اولویت" + :property.built-in/public "ویژگی عمومی؟" + :property.built-in/publish-published-url "آدرس منتشر شده" + :property.built-in/publishing-public "انتشار عمومی؟" + :property.built-in/query "پرس‌وجو" + :property.built-in/reaction-emoji-id "ایموجی واکنش" + :property.built-in/reaction-target "هدف واکنش" + :property.built-in/recycle-original-order "ترتیب اصلی بازیافت" + :property.built-in/recycle-original-page "صفحه اصلی بازیافت" + :property.built-in/recycle-original-parent "والد اصلی بازیافت" + :property.built-in/refs "مراجع گره" + :property.built-in/repeat-checked-property "ویژگی بررسی شده تکرار" + :property.built-in/repeat-recur-frequency "فرکانس تکرار" + :property.built-in/repeat-recur-unit "واحد تکرار" + :property.built-in/repeat-repeated "تکرار گره؟" + :property.built-in/repeat-temporal-property "ویژگی زمانی تکرار" + :property.built-in/scalar-default-value "مقدار پیش‌فرض نوع غیر مرجع" + :property.built-in/scheduled "زمان‌بندی شده" + :property.built-in/status "وضعیت" + :property.built-in/sync-large-title-object "مرجع به عنوان بلوک بزرگ ذخیره شده در فضای ذخیره‌سازی شیء راه دور" + :property.built-in/table-filters "فیلترهای نما" + :property.built-in/table-hidden-columns "ستون‌های پنهان نما" + :property.built-in/table-ordered-columns "ستون‌های مرتب شده نما" + :property.built-in/table-pinned-columns "ستون‌های سنجاق شده نمای جدول" + :property.built-in/table-sized-columns "تنظیمات ستون‌های نما" + :property.built-in/table-sorting "مرتب‌سازی نما" + :property.built-in/tags "برچسب‌ها" + :property.built-in/template-applied-to "اعمال الگو به برچسب‌ها" + :property.built-in/title "عنوان گره" + :property.built-in/type "نوع ویژگی" + :property.built-in/ui-position "موقعیت ویژگی" + :property.built-in/updated-at "تاریخ به‌روزرسانی گره" + :property.built-in/used-template "الگوی استفاده شده" + :property.built-in/user-avatar "آواتار کاربر" + :property.built-in/user-email "ایمیل کاربر" + :property.built-in/user-name "نام کاربر" + :property.built-in/value "مقدار ویژگی" + :property.built-in/view-context "زمینه نمای ویژگی" + :property.built-in/view-feature-type "نوع ویژگی نما" + :property.built-in/view-for "این نما متعلق به" + :property.built-in/view-group-by-property "گروه‌بندی نما بر اساس ویژگی" + :property.built-in/view-sort-groups-by-property "مرتب‌سازی گروه‌های نما بر اساس" + :property.built-in/view-sort-groups-desc "مرتب‌سازی نزولی گروه‌های نما" + :property.built-in/view-type "نوع نما" + + :property.choice/already-exists "گزینه از قبل وجود دارد." + :property.choice/cant-delete-built-in "حذف گزینه داخلی ممکن نیست." + :property.choice/invalid "انتخاب نامعتبر \"{1}\" برای این ویژگی: {2}" + + :property.color/blue "آبی" + :property.color/green "سبز" + :property.color/purple "بنفش" + :property.color/red "قرمز" + :property.color/yellow "زرد" + + :property.priority/high "بالا" + :property.priority/low "پایین" + :property.priority/medium "متوسط" + :property.priority/urgent "فوری" + + :property.repeat/date "تاریخ تکرار" + :property.repeat/datetime "تاریخ و زمان تکرار" + :property.repeat/every "هر" + :property.repeat/is-label "هست:" + :property.repeat/task "وظیفه تکراری" + :property.repeat/when "چه زمانی" + + :property.repeat-recur-unit/day "روز" + :property.repeat-recur-unit/hour "ساعت" + :property.repeat-recur-unit/minute "دقیقه" + :property.repeat-recur-unit/month "ماه" + :property.repeat-recur-unit/week "هفته" + :property.repeat-recur-unit/year "سال" + + :property.status/backlog "در انتظار" + :property.status/canceled "لغو شده" + :property.status/doing "در حال انجام" + :property.status/done "انجام شده" + :property.status/in-review "در حال بررسی" + :property.status/todo "انجام‌دادنی" + + :property.validation/cant-convert-to-number "نمی توان \"{1}\" را به عدد تبدیل کرد." + :property.validation/cant-remove-required "حذف ویژگی ضروری ممکن نیست." + :property.validation/cant-set-self-value "نمی‌توان خود را به عنوان مقدار ویژگی تنظیم کرد." + :property.validation/duplicate "ویژگی '{1}' از قبل وجود دارد." + :property.validation/invalid-name "این نام دارایی نامعتبر است. نام دارایی نمی تواند با نویسه های مرجع صفحه \"#\" یا \"[[\" شروع شود." + :property.validation/invalid-value "خاصیت \"{1}\" دارای مقدار نامعتبر است: {2}" + :property.validation/many-to-one "تبدیل ویژگی چندمقداری به تک‌مقداری ممکن نیست." + :property.validation/protected "این ویژگی محافظت شده و قابل تغییر نیست." + + :property.view-type/gallery "نمای گالری" + :property.view-type/list "نمای لیست" + :property.view-type/table "نمای جدول" + + :publish/action "انتشار" + :publish/dialog-desc "در صورت تمایل این صفحه را با رمز عبور محافظت کنید. برای دسترسی عمومی خالی بگذارید." + :publish/dialog-title "انتشار صفحه" + :publish/invalid-page-error "صفحه نامعتبر" + :publish/password-optional-placeholder "رمز عبور اختیاری" + :publish/publish-error "انتشار ناموفق بود" + :publish/published-to "منتشر شد در {1}" + :publish/publishing "در حال انتشار..." + :publish/unpublish "لغو انتشار" + :publish/unpublish-error "لغو انتشار ناموفق بود" + :publish/unpublish-missing-page-id "لغو انتشار: شناسه صفحه مفقود" + :publish/unpublished "لغو انتشار شد" + + :query/advanced-results "نتایج پرس‌وجوی پیشرفته" + :query/custom-view-error "خطای نمای سفارشی: {1}" + :query/error "خطای پرس‌وجو:" + :query/examples-desc "نمونه‌های بیشتر را در {{Queries documentation}} ببینید." + :query/examples-title "نمونه‌های پرس‌وجو:" + :query/results-for "نتایج برای {1}" + + :query.builder/add-filter-or-operator-placeholder "افزودن فیلتر/عملگر" + :query.builder/between-end-label "تاریخ پایان" + :query.builder/between-journal-label "بین: {1} ~ {2}" + :query.builder/between-start-label "تاریخ شروع" + :query.builder/created-label "ایجاد شده" + :query.builder/filter "فیلتر" + :query.builder/filter-full-text-search-label "جستجوی تمام‌متن" + :query.builder/filter-page-label "صفحه" + :query.builder/filter-page-reference-label "ارجاع صفحه" + :query.builder/filter-sample-label "نمونه" + :query.builder/operator-and-label "و" + :query.builder/operator-not-label "نه" + :query.builder/replace-with-label "جایگزینی با:" + :query.builder/search-label "جستجو: {1}" + :query.builder/show-built-in-properties "نمایش ویژگی‌های داخلی" + :query.builder/unwrap-operator "بازکردن" + :query.builder/updated-label "به‌روزرسانی شده" + :query.builder/wrap-filter-with-label "بسته‌بندی این فیلتر با:" + + :reference/blocks "ارجاعات بلوک" + :reference/copy "کپی مرجع" + :reference/delete "حذف مرجع" + :reference/page-filter "فیلتر صفحه" + :reference/replace-with-embed "جایگزینی با جاسازی" + :reference/replace-with-text "جایگزینی با متن" + + :reference.filter/directions "برای افزودن کلیک کنید و برای حذف Shift+کلیک کنید. برای برداشتن، دوباره کلیک کنید." + :reference.filter/excludes "مستثنی‌شده" + :reference.filter/includes "شامل‌شده" + :reference.filter/search-placeholder "جستجو" + :reference.filter/title "فیلتر" + + :search/blank-input "ورودی خالی" + :search/full-text-placeholder "جستجوی متن کامل" + :search/index-progress "در حال ایندکس‌گذاری {1}٪" + :search/indices-rebuilt-success "فهرس‌های جستجو با موفقیت بازسازی شدند!" + :search/no-result "نتیجه‌ای یافت نشد" + :search/result-count "{1} نتیجه" + + :search.find-in-page/input-placeholder "پیدا کردن در صفحه" + :search.find-in-page/match-case "حساس به حروف" + :search.find-in-page/next-result "نتیجه بعدی" + :search.find-in-page/previous-result "نتیجه قبلی" :select/default-prompt "یکی را انتخاب کنید" :select/default-select-multiple "یک یا چند مورد را انتخاب کنید" - :select.graph/prompt "یک گراف را انتخاب کنید" - :select.graph/empty-placeholder-description "گرافی یافت نشد. می‌خواهید مورد دیگری را اضافه کنید؟" - :select.graph/add-graph "بله، گراف دیگری را اضافه کن" + :select/new-option "+ گزینه جدید: {1}" - :notification/clear-all "پاک کردن همه" + :server/error-notification "[سرور] {1}" + :server/mcp-url-copied "آدرس MCP کپی شد" + :server/start "شروع" + :server/stop "توقف" + :server/title "سرور HTTP API" - :shortcut.category/basics "مقدماتی" + :server.config/auto-start-label "شروع خودکار" + :server.config/port-label "محدوده پورت" + :server.config/reset "بازنشانی" + :server.config/save-and-apply "ذخیره و اعمال" + :server.config/title "پیکربندی سرور" + + :server.status/closed "بسته" + :server.status/closing "در حال بستن" + :server.status/error "خطا" + :server.status/running "در حال اجرا" + :server.status/starting "در حال شروع" + :server.status/stopped "متوقف" + + :server.token/add-new "افزودن توکن جدید" + :server.token/name-placeholder "نام سرور" + :server.token/regenerate-value "بازتولید مقدار توکن" + :server.token/title "توکن‌های مجوز" + :server.token/update-success "توکن‌ها به‌روزرسانی شد" + :server.token/value-placeholder "مقدار" + + :settings/account "حساب" + :settings/advanced "پیشرفته" + :settings/ai "هوش مصنوعی" + :settings/collaboration "همکاری" + :settings/editor "ویرایشگر" + :settings/encryption "رمزگذاری" + :settings/features "ویژگی‌ها" + :settings/general "عمومی" + :settings/keymap "میان‌برها" + :settings/plugins "تنظیمات افزونه‌ها" + + :settings.account/storage-usage "{1} گیگابایت از {2} گیگابایت فضای ذخیره‌سازی ({3})" + :settings.account/synced-graphs "{1} از {2} نمودارهای همگام‌سازی شده ({3})" + + :settings.advanced/auto-chmod "chmod خودکار" + :settings.advanced/auto-chmod-desc "تنظیم خودکار مجوزهای فایل" + :settings.advanced/auto-updater "به‌روزرسانی خودکار" + :settings.advanced/developer-mode "حالت توسعه‌دهنده" + :settings.advanced/developer-mode-desc "حالت توسعه‌دهنده به مشارکت‌کنندگان و توسعه‌دهندگان افزونه‌ها امکان می‌دهد تا به شکل مؤثرتری بتوانند یکپارچگی کارشان با لاگ‌سیک را به آزمون بگذارند." + :settings.advanced/disable-sentry "غیرفعال‌سازی Sentry" + :settings.advanced/disable-sentry-desc "غیرفعال‌سازی گزارش خرابی" + :settings.advanced/network-proxy "پروکسی شبکه" + + :settings.ai/enable-mcp-server "فعال‌سازی سرور MCP" + :settings.ai/enable-mcp-server-desc "فعال‌سازی سرور MCP برای ادغام هوش مصنوعی" + + :settings.editor/auto-expand-block-refs "باز کردن خودکار مراجع بلوک" + :settings.editor/auto-expand-block-refs-tip "برای باز کردن خودکار مراجع بلوک کلیک کنید" + :settings.editor/custom-date-format "قالب تاریخ سفارشی" + :settings.editor/enable-all-pages-public "عمومی کردن همه صفحات" + :settings.editor/enable-shortcut-tooltip "فعال‌سازی راهنمای میان‌بر" + :settings.editor/enable-tooltip "فعال‌سازی راهنما" + :settings.editor/preferred-outdenting "برون‌رفتگی منطقی" + :settings.editor/preferred-outdenting-tip "سمت چپ، برون‌رفتگی را با تنظیم پیش‌فرض نشان می‌دهد و سمت راست، برون‌رفتگی منطقی را با فعال بودن این گزینه نشان می‌دهد " + :settings.editor/preferred-outdenting-tip-more "→ بیشتر بخوانید" + :settings.editor/preferred-pasting-file "ترجیح جای‌گذاری فایل" + :settings.editor/preferred-pasting-file-hint "اگر فعال باشد، چسباندن تصویر از اینترنت آن را دانلود و درج می‌کند. اگر غیرفعال باشد، فقط پیوند تصویر چسبانده می‌شود." + :settings.editor/show-brackets "نمایش کروشه‌ها" + :settings.editor/show-full-blocks "نمایش کامل بلوک‌ها" + :settings.editor/spell-checker "غلط‌یاب" + :settings.editor/wide-mode "حالت عریض" + + :settings.features/enable-flashcards "فعال‌سازی فلش‌کارت‌ها" + :settings.features/enable-journals "فعال‌سازی روزنامه‌ها" + :settings.features/home-default-page "صفحه پیش‌فرض خانه" + :settings.features/home-default-page-update-success "صفحه پیش‌فرض به‌روزرسانی شد" + :settings.features/journals-enable-success "روزنامه‌ها فعال شد" + :settings.features/login-prompt "برای همگام‌سازی وارد شوید" + :settings.features/page-not-found "صفحه «{1}» هنوز وجود ندارد. لطفاً ابتدا آن صفحه را ایجاد کنید و سپس دوباره امتحان کنید." + :settings.features/plugin-system "سیستم افزونه" + + :settings.general/accent-color "رنگ تأکیدی" + :settings.general/accent-color-alert "انتخاب رنگ تأکیدی ممکن است پوسته‌ای را که انتخاب کرده‌اید نادیده بگیرد." + :settings.general/accent-color-logseq "رنگ کلاسیک Logseq" + :settings.general/accent-color-none-desc "لغو رنگ لهجه. این در حال حاضر در مرحلة بتا است و عمدتاً برای سازگاری با تم‌های سفارشی استفاده می‌شود." + :settings.general/changelog "سیاهه تغییرات" + :settings.general/check-for-updates "بررسی به‌روزرسانی‌ها" + :settings.general/current-revision-label "بازنگری فعلی" + :settings.general/current-version "نسخه فعلی" + :settings.general/custom-configuration "پیکربندی سفارشی" + :settings.general/custom-global-configuration "پیکربندی سراسری سفارشی" + :settings.general/custom-theme "پوسته سفارشی" + :settings.general/edit-config-edn "ویرایش config.edn" + :settings.general/edit-custom-css "ویرایش CSS سفارشی" + :settings.general/edit-export-css "ویرایش CSS صادرات" + :settings.general/edit-global-config-edn "ویرایش config.edn سراسری" + :settings.general/editor-font "فونت ویرایشگر" + :settings.general/editor-font-set-global "تنظیم به عنوان فونت سراسری" + :settings.general/export-theme "صادر کردن پوسته" + :settings.general/language "زبان" + :settings.general/native-titlebar "نوار عنوان سیستم" + :settings.general/native-titlebar-desc "استفاده از نوار عنوان سیستم" + :settings.general/refresh-required-feedback "بازآوری لازم است" + :settings.general/release-channel "کانال انتشار" + :settings.general/revision "بازنگری: {1}" + :settings.general/theme-dark "تیره" + :settings.general/theme-light "روشن" + :settings.general/theme-system "سیستم" + + :settings.sync-server/clear-success "URL سرور همگام‌سازی پاک شد. از Logseq Sync رسمی استفاده می‌شود." + :settings.sync-server/reset "بازنشانی به پیش‌فرض" + :settings.sync-server/save-success "URL سرور همگام‌سازی ذخیره شد." + :settings.sync-server/url "URL سرور همگام‌سازی" + :settings.sync-server/url-desc "برای همگام‌سازی خودمیزبان، یک URL سفارشی HTTPS برای سرور همگام‌سازی تنظیم کنید. توکن‌های احراز هویت Logseq شما به این سرور ارسال می‌شوند، پس فقط از URL قابل اعتماد استفاده کنید. برای استفاده از Logseq Sync رسمی، این بخش را خالی بگذارید." + :settings.sync-server/url-invalid-error "URL باید با https:// یا http:// شروع شود" + + :shell/input-command-title "ورود دستور" + + :shortcut.category/basics "اصول" + :shortcut.category/block-command-editing "ویرایش دستورات بلوک" + :shortcut.category/block-editing "ویرایش بلوک" + :shortcut.category/block-selection "انتخاب بلوک" :shortcut.category/formatting "قالب‌بندی" :shortcut.category/navigating "ناوبری" - :shortcut.category/block-editing "تنظیمات عمومی ویرایش بلوک" - :shortcut.category/block-command-editing "ویرایش دستوری بلوک" - :shortcut.category/block-selection "انتخاب بلوک (با دکمه Esc از حالت انتخاب خارج می‌شوید)" - :shortcut.category/toggle "تغییر حالت" :shortcut.category/others "سایر" :shortcut.category/plugins "افزونه‌ها" - :keymap/all "همه" - :keymap/disabled "غیر فعال" - :keymap/unset "تنظیم نشده" - :keymap/custom "سفارشی" - :keymap/keystroke-filter "پالایهٔ تاج‌مهره" - :window/minimize "کمینه‌سازی" - :window/maximize "بیشینه‌سازی" - :window/restore "بازگردانی" - :window/close "بستن" - :window/exit-fullscreen "خروج از حالت تمام صفحه" + :shortcut.category/toggle "تغییر" - :header/toggle-left-sidebar "تغییر وضعیت نوار چپ" - :header/search "جستجو" - :header/more "بیشتر" - :header/go-back "برو عقب" - :header/go-forward "برو جلو" + :sidebar.left/favorites "علاقه‌مندی‌ها" + :sidebar.left/navigations "ناوبری" + :sidebar.left/recent-pages "صفحات اخیر" + + :sidebar.right/close "بستن پنل" + :sidebar.right/close-all "بستن همه پنل‌ها" + :sidebar.right/close-others "بستن پنل‌های دیگر" + :sidebar.right/collapse "جمع کردن پنل" + :sidebar.right/collapse-all "جمع کردن همه پنل‌ها" + :sidebar.right/collapse-others "جمع کردن پنل‌های دیگر" + :sidebar.right/expand "باز کردن پنل" + :sidebar.right/expand-all "باز کردن همه پنل‌ها" + :sidebar.right/more "بیشتر" + :sidebar.right/open "باز کردن در نوار کناری" + :sidebar.right/open-as-page "باز کردن به عنوان صفحه" + :sidebar.right/resize-handle "جداکننده" + :sidebar.right/toggle "تغییر نوار کناری راست" + + :storage/invalid-data-writing "نوشتن داده نامعتبر." + :storage/sqlitedb-error "خطای SQLiteDB: {1}" + :storage/sqlitedb-import-error "خطای وارد کردن SQLiteDB: {1}" + :storage/sqlitedb-save-error "خطای ذخیره SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "بلوک «{1}» حذف شد" + :storage.recycle/empty "سطل بازیافت خالی است." + :storage.recycle/page-deleted-at "صفحه «{1}» حذف شد" + :storage.recycle/readonly "سطل بازیافت (فقط خواندنی)" + :storage.recycle/restore "بازیابی" + :storage.recycle/retention-desc "صفحه‌ها و بلوک‌های حذف‌شده تا زمانی که بازیابی شوند یا پس از ۳۰ روز به‌طور خودکار پاک‌سازی شوند، اینجا می‌مانند。" + :storage.recycle/title "سطل بازیافت" + + :sync/assets-downloading-count "دانلود دارایی‌ها ({1})" + :sync/assets-uploading-count "بارگذاری دارایی‌ها ({1})" + :sync/creating-remote-graph "در حال ایجاد گراف راه‌دور..." + :sync/downloading "در حال دانلود..." + :sync/downloading-graph "در حال دانلود {1} ..." + :sync/graph-count-exceed-limit "تعداد گراف‌ها از حد مجاز فراتر رفت" + :sync/invitation-sent "دعوت‌نامه ارسال شد" + :sync/last-synced-time-label "آخرین زمان همگام‌سازی: {1}" + :sync/more-debug-info "اطلاعات اشکال‌زدایی بیشتر" + :sync/offline "آفلاین" + :sync/online "آنلاین" + :sync/pending-local-changes "تغییرات محلی در انتظار" + :sync/pending-server-changes "تغییرات سرور در انتظار" + :sync/something-wrong "خطا در همگام‌سازی" + :sync/start-sync "شروع همگام‌سازی" + :sync/storage-exceed-limit "فضای ذخیره‌سازی از حد مجاز فراتر رفت" + :sync/uploading "در حال بارگذاری..." + :sync/user-doesnt-exist-yet "کاربر هنوز وجود ندارد" + + :theme/logseq-default "تم پیش‌فرض Logseq" + :theme/switch-to "به طرح زمینه {1} بروید" + + :ui/all-done "همه‌چیز انجام شد" + :ui/apply "اعمال" + :ui/cancel "لغو" + :ui/close "بستن" + :ui/configure "پیکربندی" + :ui/confirm "تأیید" + :ui/copy "کپی" + :ui/copy-all "کپی همه" + :ui/copy-to-clipboard "کپی در کلیپ‌بورد" + :ui/create "ایجاد" + :ui/date-natural-language-placeholder "مثلاً هفته آینده" + :ui/delete "حذف" + :ui/deleted "حذف‌شده" + :ui/dont-remind-me-again "دیگر یادآوری نکن" + :ui/empty "خالی" + :ui/error "خطا" + :ui/error-boundary-error "خطا توسط رابط کاربری گرفته شد!\n {1}" + :ui/export "صدور" + :ui/false "نادرست" + :ui/fix "اصلاحش کن!" + :ui/frequently-used "پرکاربرد" + :ui/from "از: " + :ui/host "میزبان" + :ui/image "تصویر" + :ui/label "برچسب" + :ui/link "پیوند" + :ui/load-more "بارگذاری بیشتر" + :ui/loading "در حال بارگذاری" + :ui/login "ورود" + :ui/logout "خروج" + :ui/off "خاموش" + :ui/on "روشن" + :ui/open "باز کردن" + :ui/open-named "باز کردن {1}" + :ui/port "پورت" + :ui/refresh "بازخوانی" + :ui/relaunch-confirm "برای اعمال این تغییر باید برنامه دوباره راه‌اندازی شود. اکنون دوباره راه‌اندازی شود؟" + :ui/remove-background "حذف پس‌زمینه" + :ui/reset "بازنشانی" + :ui/run "اجرا" + :ui/save "ذخیره" + :ui/show-less "نمایش کمتر" + :ui/show-more "نمایش بیشتر" + :ui/skip "رد کردن" + :ui/submit "ارسال" + :ui/to "به: " + :ui/toggle-theme "تغییر پوسته" + :ui/true "درست" + :ui/type "نوع" + :ui/untitled "بدون عنوان" + :ui/use-current-time "استفاده از زمان فعلی" + :ui/yes "بله" + + :updater/checking-for-updates "در حال بررسی به‌روزرسانی‌ها" + :updater/downloading-progress "در حال دانلود به‌روزرسانی ({1}٪)" + :updater/quit-and-install "راه‌اندازی مجدد و نصب" + :updater/up-to-date "برنامه شما به‌روز است 🎉" + :updater/update-available "به‌روزرسانی موجود است" + :updater/update-error "⚠️ اوه، مشکلی پیش آمد!\nلطفاً {1} را بررسی کنید." + :updater/update-ready-to-install "به‌روزرسانی برای نصب آماده است" + + :view/add-new-view "افزودن نما" + :view/all "همه" + :view/export-edn "صادر کردن EDN" + :view/linked-references "مراجع پیوندشده" + :view/new "جدید" + :view/new-property "ویژگی جدید" + :view/new-view "نمای جدید" + :view/rename "تغییر نام" + :view/results "نتایج:" + :view/unlinked-references "مراجع پیوندنشده" + + :view.filter/custom-date "تاریخ سفارشی" + :view.filter/empty "خالی" + :view.filter/filter "فیلتر" + :view.filter/from "از" + :view.filter/is-empty "خالی است" + :view.filter/is-not-empty "خالی نیست" + :view.filter/match "تطابق" + :view.filter/match-all-filters "تطابق همه فیلترها" + :view.filter/match-any-filter "تطابق هر فیلتری" + :view.filter/operator-after "بعد از" + :view.filter/operator-before "قبل از" + :view.filter/operator-between "بین" + :view.filter/operator-date-after "بعد از تاریخ" + :view.filter/operator-date-before "قبل از تاریخ" + :view.filter/operator-is "برابر است با" + :view.filter/operator-is-not "برابر نیست با" + :view.filter/operator-text-contains "شامل" + :view.filter/operator-text-not-contains "شامل نباشد" + :view.filter/or "یا" + :view.filter/relative-1-day-ago "یک روز پیش" + :view.filter/relative-1-month-ago "یک ماه پیش" + :view.filter/relative-1-week-ago "یک هفته پیش" + :view.filter/relative-1-year-ago "یک سال پیش" + :view.filter/relative-3-days-ago "سه روز پیش" + :view.filter/relative-3-months-ago "سه ماه پیش" + :view.filter/to "تا" + :view.filter/type-to-search "برای جستجو تایپ کنید" + + :view.table/ascending "صعودی" + :view.table/columns-visibility "نمایش ستون‌ها" + :view.table/default-title "{1} گره" + :view.table/delete-sort "حذف مرتب‌سازی" + :view.table/descending "نزولی" + :view.table/drag-to-reorder "برای مرتب‌سازی بکشید" + :view.table/group-by "گروه‌بندی بر اساس" + :view.table/group-journal-date "تاریخ ژورنال" + :view.table/group-page-created-date "تاریخ ایجاد صفحه" + :view.table/group-page-name "نام صفحه" + :view.table/group-page-updated-date "تاریخ به‌روزرسانی صفحه" + :view.table/live-query-title "پرس‌وجوی زنده ({1})" + :view.table/name-column "نام" + :view.table/no-group-value "بدون {1}" + :view.table/page "صفحه" + :view.table/pages "صفحه‌ها" + :view.table/pin "سنجاق" + :view.table/row-number "شماره ردیف" + :view.table/select-all "انتخاب همه" + :view.table/select-column "انتخاب ستون" + :view.table/select-order "انتخاب ترتیب" + :view.table/select-row "انتخاب ردیف" + :view.table/selected-count "انتخاب‌شده: {1}" + :view.table/sort-ascending "صعودی" + :view.table/sort-descending "نزولی" + :view.table/sort-groups-by "مرتب‌سازی گروه‌ها بر اساس" + :view.table/sort-groups-order "ترتیب گروه‌ها" + :view.table/total-refs-count "مجموع مراجع" + :view.table/unpin "برداشتن سنجاق" + + :window/close "بستن پنجره" + :window/exit-fullscreen "خروج از تمام‌صفحه" + :window/maximize "بیشینه" + :window/minimize "کمینه" + :window/restore "بازیابی" + + :youtube/embed-first-reminder-mobile "لطفاً ابتدا یک ویدیوی YouTube جاسازی کنید، سپس از این نماد استفاده کنید.\nیادآوری: می‌توانید یک URL خام YouTube را به عنوان ویدیو جاسازی‌شده بر روی موبایل جاسازی کنید." + :youtube/player-not-ready "پخش‌کننده YouTube هنوز آماده نیست." + :youtube/timestamps-not-available-mobile "مهرزمان‌های YouTube هنوز بر روی موبایل در دسترس نیستند." + + :zotero/attachments "پیوست‌ها" + :zotero/imported-file-warning "این یک فایل واردشده از Zotero است، برای باز کردن فایل در Logseq، پوشه دادهٔ Zotero را تنظیم کنید." + :zotero/linked-file-warning "این یک فایل پیوندی Zotero است، برای باز کردن فایل در Logseq، پوشه پایهٔ پیوست‌های پیوندی Zotero را تنظیم کنید." + :zotero/notes "یادداشت‌ها" } diff --git a/src/resources/dicts/fr.edn b/src/resources/dicts/fr.edn index d45669a8eb..845dacaaff 100644 --- a/src/resources/dicts/fr.edn +++ b/src/resources/dicts/fr.edn @@ -1,458 +1,1861 @@ -{:help/about "À propos de Logseq" - :help/bug "Signaler une anomalie" - :help/feature "Demander une fonctionnalité" - :help/changelog "Journal des modifications" - :help/blog "Blog de Logseq" - :help/docs "Documentation" - :help/privacy "Politique de confidentialité" - :help/terms "Conditions d'utilisation" - :help/search "Recherches des pages, blocs ou commandes" - :help/shortcuts "Raccourcis clavier" - :help/shortcuts-triggers "Actions déclenchées" - :help/shortcut "Raccourcis" - :help/slash-autocomplete "Autocomplétion avec Slash" - :help/reference-autocomplete "Autocomplétion des références à une Page" - :help/block-reference "Référence à un Bloc" - :help/open-link-in-sidebar "Ouvrir le lien dans la barre latérale" - :help/context-menu "Menu contextuel" - :help/markdown-syntax "Syntaxe Markdown" - :bold "Gras" - :italics "Italique" - :highlight "Surligner" - :strikethrough "Barré" - :right-side-bar/help "Aide" - :right-side-bar/switch-theme "Basculer sur le thème {1}" - :right-side-bar/contents "Contenus" - :right-side-bar/block-ref "Référence des blocs" - :right-side-bar/graph-view "Vue graphe" - :right-side-bar/flashcards "Cartes-mémoire" - :left-side-bar/journals "Journaux" - :page/make-public "Rendre la page publique" - :page/make-private "Rendre la page privée" - :page/delete "Supprimer la page (supprime le fichier)" - :block/name "Nom de la page" - :file/name "Nom de fichier" - :file/last-modified-at "Dernières modifications à" - :file/no-data "Aucune donnée" - :file/format-not-supported "Le format .{1} n'est pas pris en charge." - :editor/block-search "Rechercher un bloc" - :editor/copy "Copier" - :editor/cut "Couper" - :content/copy-block-ref "Copier la référence du bloc" - :content/open-in-sidebar "Ouvrir dans la barre latérale" - :content/click-to-edit "Cliquer pour modifier" - :settings-page/edit-config-edn "Modifier config.edn (pour le dépôt actuel)" - :settings-page/developer-mode "Le mode développeur" - :settings-page/developer-mode-desc "Le mode développeur aide les contributeurs et les développeurs d'extension à tester leur intégration avec Logseq." - :settings-page/preferred-pasting-file "Fichier de préférence pour le collage" - :yes "Oui" - :cancel "Annuler" - :graph "Graphe" - :all-files "Tous les fichiers" - :all-journals "Tous les journaux" - :settings "Préférences" - :import "Importer" - :download "Télécharger" - :language "Langage" - :remove-background "Retirer l'arrière-plan" - :all-graphs "Tous les graphes" - :auto-heading "Titres automatiques" - :close "Fermer" - :delete "Effacer" - :export "Exporter" - :export-graph "Exporter le graphe" - :export-markdown "Exporter en Markdown standard (sans bloc de propriétés)" - :export-page "Exporter la page" - :export-public-pages "Exporter les pages publiques" - :heading "Entête {1}" - :help-shortcut-title "Cliquez pour voir les raccourcis et autres astuces" - :host "Hôte" - :importing "Importation en cours" - :login "Connexion" - :logout "Déconnexion" - :plugins "Extensions" - :port "Port" - :relaunch-confirm-to-work "Il est nécessaire de relancer l'application pour que ça fonctionne. Voulez-vous redémarrer ?" - :remove-heading "Retirer les entêtes" - :save "Enregistrer" - :settings-of-plugins "Extensions" - :themes "Thèmes" - :untitled "Sans titre" - :type "Type" - :accessibility/skip-to-main-content "Aller au contenu principal" - :asset/confirm-delete "Voulez-vous vraiment supprimer {1} ?" - :asset/copy "Copier l'image" - :asset/delete "Supprimer l'image" - :asset/maximize "Agrandir l'image" - :asset/open-in-browser "Ouvrir l'image dans le navigateur" - :asset/physical-delete " Supprimer le fichier également (notez qu'il ne pourra pas être restauré)" - :asset/show-in-folder "Montrer l'image dans le dossier" - :color/blue "Bleu" - :color/gray "Gris" - :color/green "Vert" - :color/pink "Rose" - :color/purple "Violet" - :color/red "Rouge" - :color/yellow "Jaune" - :graph/all-graphs "Tous les graphes" - :help/forum-community "Forum communautaire" - :help/shortcut-page-title "Raccourcis clavier" - :help/start "Démarrage" - :left-side-bar/nav-favorites "Favoris" - :left-side-bar/nav-recent-pages "Récentes" - :linked-references/filter-directions "Cliquer pour inclure et `Maj+clic` pour exclure. Cliquez à nouveau pour enlever." - :linked-references/filter-excludes "Exclut : " - :linked-references/filter-heading "Filtrer" - :linked-references/filter-includes "Inclut : " - :linked-references/filter-search "Rechercher dans les pages liées" - :page/add-to-favorites "Ajouter aux Favoris" - :page/backlinks "Rétro-lien" - :page/copy-page-url "Copier l'URL de la page" - :page/created-at "Créée le" - :page/unfavorite "Retirer la page des favoris" - :page/updated-at "Mise à jour le" - :pdf/copy-ref "Copier la référence" - :pdf/copy-text "Copier le texte" - :pdf/doc-metadata "Métadonnées du document" - :pdf/hl-block-colored "Étiquette colorée pour le bloc surligné" - :pdf/linked-ref "Références liées" - :pdf/toggle-dashed "Style de pointillés pour la zone de surlignage" - :plugin/all "Toutes" - :plugin/check-all-updates "Vérifier toutes les mises à jour" - :plugin/check-update "Vérifier la mise à jour" - :plugin/contribute "✨ Écrire et proposer une nouvelle extension" - :plugin/custom-js-alert "Fichier custom.js trouvé, est-il autorisé à s'exécuter ? (Si vous ne comprenez pas le contenu de ce fichier, il est recommandé de ne pas en autoriser l'exécution, car cela vous expose à des risques de sécurité)." - :plugin/delete-alert "Voulez-vous vraiment désinstaller l'extension [{1}] ?" - :plugin/disabled "Désactivée" - :plugin/downloads "Téléchargements" - :plugin/enabled "Activée" - :plugin/install "Installer" - :plugin/installed "Installée" - :plugin/installing "Installation en cours" - :plugin/load-unpacked "Charger une extension décompressée" - :plugin/marketplace "Boutique" - :plugin/not-installed "Non installée" - :plugin/open-package "Ouvrir le paquet" - :plugin/open-settings "Ouvrir les réglages" - :plugin/refresh-lists "Rafraîchir la liste" - :plugin/reload "Recharger" - :plugin/restart "Redémarrer l'application" - :plugin/stars "Étoiles" - :plugin/uninstall "Désinstaller" - :plugin/unpacked "Décompressée" - :plugin/unpacked-tips "Sélectionnez le dossier de l'extension" - :plugin/update "Mettre à jour" - :plugin/update-available "Mise à jour disponible" - :plugin/updating "Mise à jour en cours" - :plugin.install-from-file/menu-title "Installer depuis plugins.edn" - :plugin.install-from-file/notice "Les extensions suivantes vont remplacer vos extensions :" - :plugin.install-from-file/success "Toutes les extensions sont installées !" - :plugin.install-from-file/title "Installer des extensions depuis plugins.edn" - :right-side-bar/page-graph "Graphe de la page" - :right-side-bar/separator "Poignée de redimensionnement de la barre latérale droite" - :right-side-bar/show-journals "Montrer les journaux" - :search-item/page "Page" - :select/default-prompt "Sélectionnez" - :select.graph/add-graph "Oui, ajouter un autre graphe" - :select.graph/empty-placeholder-description "Aucun graphe trouvé. Souhaitez-vous en ajouter un ?" - :select.graph/prompt "Choisir un graphe" - :settings-page/auto-updater "Mises à jour automatiques" - :settings-page/clear "Nettoyer" - :settings-page/clear-cache "Nettoyer le cache" - :settings-page/current-version "Version actuelle" - :settings-page/custom-configuration "Configuration personnalisée" - :settings-page/custom-date-format "Format de date préféré" - :settings-page/custom-global-configuration "Configuration globale personnalisée" - :settings-page/custom-theme "Thème personnalisé" - :settings-page/disable-sentry "Envoyer des données d'utilisation et de diagnostic à Logseq" - :settings-page/edit-custom-css "Modifier custom.css" - :settings-page/edit-export-css "Modifier export.css" - :settings-page/edit-global-config-edn "Modifier le fichier global config.edn" - :settings-page/enable-all-pages-public "Toutes les pages publiques lors de la publication" - :settings-page/enable-flashcards "Cartes mémoire" - :settings-page/enable-shortcut-tooltip "Activer les astuces sur les raccourcis" - :settings-page/enable-tooltip "Astuces" - :settings-page/export-theme "Exporter le thème" - :settings-page/home-default-page "Régler la page d'accueil par défaut" - :settings-page/login-prompt "Pour accéder aux nouvelles fonctionnalités avant tout le monde, vous devez être sponsor ou \"backer\" (contributeur) sur Open Collective, puis vous connecter." - :settings-page/network-proxy "Proxy réseau" - :settings-page/plugin-system "Extensions" - :settings-page/preferred-outdenting "Mise en retrait logique" - :settings-page/show-brackets "Montrer les parenthèses, crochets et accolades" - :settings-page/spell-checker "Vérification orthographique" - :settings-page/tab-advanced "Avancé" - :settings-page/tab-editor "Éditeur" - :settings-page/tab-features "Fonctionnalités" - :settings-page/tab-general "Général" - :text/image "Image" - :updater/new-version-install "Une nouvelle version a été téléchargée." - :updater/quit-and-install "Relancez pour installer" - :notification/clear-all "Tout effacer" - :settings-page/clear-cache-warning "Vider le cache supprimera les graphiques ouverts. Vous perdrez les modifications non enregistrées." - :settings-page/disable-sentry-desc "Logseq ne collectera jamais votre base de données de graphes locale ni ne vendra vos données." - :command.editor/indent "Indenter un bloc vers la droite" - :command.editor/outdent "Indenter un bloc vers la gauche" - :command.editor/move-block-up "Déplacer un bloc au-dessus" - :command.editor/move-block-down "Déplacer un bloc en dessous" - :command.editor/new-block "Créer un nouveau bloc" - :command.editor/new-line "Aller à la ligne dans un bloc" - :command.editor/zoom-in "Zoomer" - :command.editor/zoom-out "Dézoomer" - :command.editor/follow-link "Suivre le lien sous le curseur" - :command.editor/open-link-in-sidebar "Ouvrir le lien dans la barre latérale" - :command.editor/expand-block-children "Étendre" - :command.editor/collapse-block-children "Réduire" - :command.editor/select-block-up "Sélectionner le bloc au-dessus" - :command.editor/select-block-down "Sélectionner le bloc en dessous" - :command.editor/select-all-blocks "Sélectionner tous les blocs" - :command.ui/toggle-help "Afficher l'aide" - :command.go/search "Recherche globale dans le texte" - :command.go/search-in-page "Rechercher des blocs dans la page" - :command.ui/toggle-document-mode "Intervertir le mode document" - :command.ui/toggle-theme "Intervertir le thème foncé/clair" - :command.ui/toggle-right-sidebar "Afficher/cacher la barre latérale" - :command.go/journals "Aller au Journal" - :command.auto-complete/complete "Auto-complétion : choisir l'élément sélectionné" - :command.auto-complete/next "Auto-complétion : sélection de l'élément suivant" - :command.auto-complete/prev "Auto-complétion : sélectionner l'élément précédent" - :command.auto-complete/shift-complete "Auto-complétion : ouvrir l'élément sélectionné dans la barre latérale" - :command.cards/toggle-answers "Cartes : montrer/masquer les réponses/clozes" - :command.command-palette/toggle "Rechercher des commandes" - :command.command/run "Lancer une commande Git" - :command.command/toggle-favorite "Ajouter/retirer des favoris" - :command.editor/backspace "Retour arrière / Effacer en arrière" - :command.editor/backward-kill-word "Supprimer un mot en arrière" - :command.editor/backward-word "Déplacer le curseur avant un mot" - :command.editor/beginning-of-block "Déplacer le curseur au début du bloc" - :command.editor/bold "Gras" - :command.editor/clear-block "Supprimer tout le contenu d'un bloc" - :command.editor/copy "Copier (copie soit une sélection, soit une référence de bloc)…" - :command.editor/copy-embed "Copier une intégration de ce bloc" - :command.editor/copy-text "Copier le texte de la sélection" - :command.editor/cut "Couper" - :command.editor/cycle-todo "Basculer l'état du TODO de l'élément" - :command.editor/delete "Supprimer / Efface en avant" - :command.editor/delete-selection "Supprimer les blocs sélectionnés" - :command.editor/down "Déplacer le curseur vers le bas / Sélectionner vers le bas" - :command.editor/end-of-block "Déplacer le curseur à la fin du bloc" - :command.editor/escape-editing "Quitter l'édition" - :command.editor/forward-kill-word "Supprimer un mot en avant" - :command.editor/forward-word "Déplacer le curseur d'un mot en avant" - :command.editor/highlight "Surlignage" - :command.editor/insert-link "Lien HTML" - :command.editor/insert-youtube-timestamp "Insérer un horodatage YouTube" - :command.editor/italics "Italique" - :command.editor/kill-line-after "Effacer la ligne après la position du curseur" - :command.editor/kill-line-before "Effacer la ligne avant la position du curseur" - :command.editor/left "Déplacer le curseur à gauche / Ouvrir au début du bloc sélectionné" - :command.editor/open-edit "Modifier le bloc sélectionné" - :command.editor/paste-text-in-one-block-at-point "Coller le texte dans un bloc" - :command.editor/redo "Refaire" - :command.editor/right "Déplacer le curseur à droite / Ouvrir à la fin du bloc sélectionné" - :command.editor/select-down "Sélectionner le contenu en dessous" - :command.editor/select-up "Sélectionner le contenu au-dessus" - :command.editor/strike-through "Barrer" - :command.editor/toggle-open-blocks "Réduire ou étendre les blocs" - :command.editor/undo "Annuler" - :command.editor/up "Déplacer le curseur vers le haut / Sélectionner au-dessus" - :command.go/all-graphs "Aller vers tous les graphes" - :command.go/all-pages "Aller vers toutes les pages" - :command.go/backward "En arrière" - :command.go/electron-find-in-page "Chercher du texte dans une page" - :command.go/electron-jump-to-the-next "Aller vers le résultat de recherche suivant" - :command.go/electron-jump-to-the-previous "Aller vers le résultat de recherche précédent" - :command.go/flashcards "Basculer les cartes mémoire" - :command.go/forward "En avant" - :command.go/graph-view "Aller vers la vue en graphe" - :command.go/home "Aller vers l'accueil" - :command.go/keyboard-shortcuts "Aller vers les raccourcis clavier" - :command.go/next-journal "Aller au journal suivant" - :command.go/prev-journal "Aller au journal précédent" - :command.go/tomorrow "Aller vers demain" - :command.graph/add "Ajouter un graphe" - :command.graph/export-as-html "Exporter les pages publiques du graphe en HTML" - :command.graph/open "Sélectionner un graphe à ouvrir" - :command.graph/remove "Retirer un graphe" - :command.pdf/close "PDF : fermer le document PDF" - :command.pdf/find "PDF : rechercher du texte dans le document" - :command.pdf/next-page "PDF : page suivante du document en cours" - :command.pdf/previous-page "PDF : page précédente du document en cours" - :command.search/re-index "Reconstruire l'index de recherche" - :command.sidebar/clear "Vider intégralement la barre latérale droite" - :command.sidebar/open-today-page "Ouvrir la page du jour dans la barre latérale droite" - :command.ui/goto-plugins "Aller vers le panneau des extensions" - :command.ui/install-plugins-from-file "Installer les extensions depuis plugins.edn" - :command.ui/select-theme-color "Sélectionner les couleurs disponibles du thème" - :command.ui/toggle-brackets "Basculer l'affichage des crochets" - :command.ui/toggle-contents "Basculer l'affichage du contenu dans la barre latérale" - :command.ui/toggle-left-sidebar "Basculer la barre latérale gauche" - :command.ui/toggle-settings "Basculer l'affichage des réglages" - :command.ui/toggle-wide-mode "Basculer la vue en pleine largeur" - :shortcut.category/basics "Bases" - :shortcut.category/block-command-editing "Édition de commande de bloc" - :shortcut.category/block-editing "Édition de bloc en général" - :shortcut.category/block-selection "Sélection de bloc (appuyer sur Esc pour quitter la sélection)" - :shortcut.category/formatting "Formats" - :shortcut.category/navigating "Navigation" - :shortcut.category/others "Autres" - :shortcut.category/toggle "Basculer" - :command.editor/select-parent "Sélectionnez le bloc parent" - :command.sidebar/close-top "Ferme l'élément supérieur dans la barre latérale droite" - :export-copied-to-clipboard "Copié dans le presse-papier" - :code "Code" - :loading "Chargement…" - :export-copy-to-clipboard "Copier dans le presse-papier" - :export-save-to-file "Enregistrer le fichier" - :export-transparent-background "Arrière-plan transparent" - :home "Accueil" - :new-page "Nouvelle page :" - :toggle-theme "Changer le thème" - :bug-report/clipboard-inspector-title "Inspecteur du presse-papier" - :bug-report/inspector-page-btn-back "Retour en arrière" - :bug-report/inspector-page-btn-copy "Copier le résultat" - :bug-report/inspector-page-btn-create-issue "Soumettre un problème" - :bug-report/inspector-page-copy-notif "Copié dans le presse-papier !" - :bug-report/inspector-page-desc-1 "Appuyer Ctrl+V / ⌘+V pour inspecter votre presse-papier" - :bug-report/inspector-page-desc-2 "ou cliquer ici pour coller si vous êtes sur mobile…" - :bug-report/inspector-page-desc-clipboard "Voici les données lues depuis votre presse-papier." - :bug-report/inspector-page-desc-copy "Si ceci peut être partagé, cliquez sur le bouton Copier." - :window/maximize "Agrandir" - :window/minimize "Réduire" - :window/restore "Restorer" - :window/exit-fullscreen "Quitter le mode plein écran" - :window/close "Fermer" - :tips/all-done "Tout est complété !" - :shortcut.category/plugins "Plugins" - :settings-page/update-error-2 "Vérifiez le/la" - :settings-page/update-error-1 "⚠️ Oups, quelque chose s'est mal passé !" - :settings-page/update-available "Nouvelle mise à jour trouvée" - :settings-page/theme-system "système" - :settings-page/theme-light "Clair" - :settings-page/theme-dark "Foncé" - :settings-page/tab-account "Compte" - :bug-report/inspector-page-desc-create-issue "Vous pouvez maintenant signaler le résultat copié dans votre presse-pa…" - :bug-report/inspector-page-placeholder "Appuyer longuement ici pour coller si vous êtes sur mobile" - :bug-report/inspector-page-tip "Quelque chose ne va pas ? Pas de problème, cliquez pour retourner à…" - :bug-report/main-desc "Pouvez-vous nous aider en signalant un bogue ? Nous…" - :bug-report/main-title "Signalement de bogue" - :bug-report/section-clipboard-btn-desc "Inspecter et récupérer les données du presse-papier" - :bug-report/section-clipboard-btn-title "Assistant Presse-papier" - :bug-report/section-clipboard-desc "Vous pouvez utiliser ces outils pratiques pour nous donner plus…" - :bug-report/section-clipboard-title "Est-ce que le bogue rencontré est relié à ces fonctionn…" - :bug-report/section-issues-btn-desc "Aidez à rendre Logseq meilleur !" - :bug-report/section-issues-btn-title "Soumettre un signalement de bogue" - :bug-report/section-issues-desc "S'il n'y a pas d'outils accessibles pour vous permettre de…" - :bug-report/section-issues-title "Ou…" - :command.dev/show-block-ast "(Dev) Montrer le bloc AST" - :command.dev/show-block-data "(Dev) Montrer les données du bloc" - :command.dev/show-page-data "(Dev) Montrer les données de la page" - :command.editor/copy-page-url "Copier l'URL de la page" - :command.editor/toggle-number-list "Activer la liste numérotée" - :command.misc/copy "Copier" - :command.ui/clear-all-notifications "Effacer toutes les notifications" - :content/copy-block-url "Copier l'URL du bloc" - :content/copy-ref "Copier cette référence" - :content/copy-export-as "Copier / Exporter sous…" - :content/delete-ref "Supprimer cette référence" - :content/replace-with-embed "Remplacer avec une intégration" - :content/replace-with-text "Remplacer avec du texte" - :context-menu/make-a-flashcard "Créer une carte mémoire" - :context-menu/toggle-number-list "Activer la liste numérotée" - :dev/show-block-ast "(Dev) Montrer le bloc AST" - :dev/show-block-data "(Dev) Montrer les données du bloc" - :dev/show-page-data "(Dev) Montrer les données de la page" - :editor/collapse-block-children "Réduire tout" - :editor/cycle-todo "Basculer l'état TODO de l'élément courant" - :editor/delete-selection "Supprimer les blocs sélectionnés" - :editor/expand-block-children "Étendre tout" - :flashcards/modal-finished "Bravo, vous avez révisé toutes les cartes pour ce…" - :flashcards/modal-welcome-desc-1 "Vous pouvez ajouter \"{1}\" à un bloc pour le transformer en…" - :flashcards/modal-welcome-title "C'est le temps de créer une carte mémoire !" - :graph/local-graphs "Graphes locaux :" - :graph/remote-graphs "Graphes distants :" - :header/go-back "Retour" - :header/go-forward "Suivant" - :header/more "Plus" - :header/search "Rechercher" - :header/toggle-left-sidebar "Activer le panneau latéral gauche" - :help/awesome-logseq "Merveilleux Logseq" - :help/roadmap "Feuille de route" - :help/title-about "À propos" - :help/title-community "Communauté" - :help/title-development "Développement" - :help/title-terms "Termes" - :help/title-usage "Utilisation" - :left-side-bar/switch "Basculer à :" - :on-boarding/importing-desc "S'ils sont dans le format EDN ou Markdown, les Logs…" - :on-boarding/importing-main-desc "Vous pouvez aussi faire ça plus tard dans l'appli." - :on-boarding/importing-main-title "Importer les notes existantes" - :on-boarding/importing-title "Avez-vous déjà des notes que vous désirez importer ?…" - :on-boarding/main-desc "Premièrement, vous devez choisir un dossier où Logseq…" - :on-boarding/main-title "(fn [] [\"Bienvenue sur \" [:strong \"Logseq !\"]])" - :page/logseq-is-having-a-problem "Logseq a un problème. Pour essayer de le ravoir…" - :page/something-went-wrong "Quelque chose s'est mal passé" - :page/step "Étape {1}" - :page/try "Essayer" - :plugin/all-updated "Tout est à jour !" - :plugin/auto-check-for-updates "Vérifier automatiquement les mises à jour" - :plugin/checking-for-updates "Vérification des mises à jour d'extensions" - :plugin/found-n-updates "{1} mise(s) à jour trouvée(s)" - :plugin/found-updates "Nouvelles mises à jours" - :plugin/installed-plugin "Extension installée : {1}" - :plugin/list-of-updates "Mises à jour de l'extension :" - :plugin/open-logseq-dir "Ouvrir" - :plugin/open-preferences "Ouvrir les préférences" - :plugin/remote-error "Erreur distante :" - :plugin/search-plugin "Chercher des extensions" - :plugin/security-warning "Les extensions peuvent accéder à vos graphes et vos fichiers locaux…" - :plugin/title "Titre ({1})" - :plugin/up-to-date "C'est à jour {1}" - :plugin/update-all-selected "Mettre à jour tous les éléments sélectionnés" - :plugin/update-plugin "Mettre à jour l'extension : {1} - {2}" - :plugin/updates-downloading "Téléchargement des extensions" - :right-side-bar/toggle-right-sidebar "Activer le panneau latéral droit" - :search-item/no-result "Aucun résultat correspondant" - :select/default-select-multiple "Choisir un ou plusieurs" - :settings-page/app-updated "Votre appli est à jour 🎉" - :settings-page/auto-expand-block-refs "Étendre les références de bloc automatiquement lors du zoom…" - :settings-page/auto-expand-block-refs-tip "Cette option contrôle s'il faut étendre le bloc…" - :settings-page/changelog "Quoi de neuf ?" - :settings-page/check-for-updates "Vérifier les mises à jour" - :settings-page/checking "Vérification en cours…" - :settings-page/enable-journals "Journaux" - :settings-page/native-titlebar "Barre de titre native" - :settings-page/native-titlebar-desc "Active la barre de titre native de la fenêtre sur Windows et…" - :settings-page/preferred-outdenting-tip "Le côté gauche montre la désindentation avec les paramètres par déf…" - :settings-page/preferred-outdenting-tip-more "→ Apprenez-en plus" - :settings-page/preferred-pasting-file-hint "Lorsqu'activé, coller une image d'Internet…" - :settings-page/revision "Révision :" - :settings-page/show-full-blocks "Montrer toutes les lignes d'une référence de bloc" - :command.window/close "Fermer la fenêtre" - :handbook/close "Fermer" - :handbook/help-categories "Catégories d'aide" - :handbook/home "Accueil" - :handbook/popular-topics "Sujets populaires" - :handbook/search "Rechercher" - :handbook/settings "Préférences" - :handbook/title "Aide" - :handbook/topics "Sujets" - :keymap/all "Tous" - :keymap/custom "Personnalisé" - :keymap/disabled "Désactivé" - :keymap/keystroke-filter "Filtre de frappe" - :keymap/unset "Effacer" - :pdf/auto-open-context-menu "Ouvrir automatiquement le menu contextuel pour les sélections" - :right-side-bar/pane-close "Fermer" - :right-side-bar/pane-close-all "Tout fermer" - :right-side-bar/pane-close-others "Fermer les autres" - :right-side-bar/pane-collapse "Réduire" - :right-side-bar/pane-collapse-all "Tout réduire" - :right-side-bar/pane-collapse-others "Réduire les autres" - :right-side-bar/pane-expand "Étendre" - :right-side-bar/pane-expand-all "Tout étendre" - :right-side-bar/pane-more "Plus" - :right-side-bar/pane-open-as-page "Ouvrir comme une page" - :settings-page/auto-chmod "Automatiquement changer les permissions du fichier" - :settings-page/auto-chmod-desc "Désactiver pour permettre l'édition par plusieurs utilisateurs avec les permissions données par l'appartenance au groupe." - :settings-page/tab-keymap "Raccourcis" - } +{ + :account/authentication "Authentification" + :account/benefits-desc "Avec un compte Logseq, vous pouvez accéder à des services cloud comme Logseq Sync et aux fonctionnalités alpha/bêta." + :account/billing "Facturation" + :account/billing-expired-on-label "Le plan Pro a expiré le : {1}" + :account/billing-expires-on-label "Le plan Pro expire le : {1}" + :account/billing-next-date-label "Prochaine date de facturation : {1}" + :account/core-features "Accès aux fonctionnalités principales de Logseq" + :account/current-plan "Plan actuel" + :account/delete-account "Supprimer le compte" + :account/discover-sync-desc "Découvrez la puissance de {1}" + :account/early-access-alpha-beta "Accès anticipé aux fonctionnalités alpha/bêta" + :account/first-name "Prénom" + :account/free-plan-sync-limit "1 graphe synchronisé (jusqu'à 50 Mo, notes uniquement)" + :account/last-name "Nom" + :account/manage-plan "Gérer le plan" + :account/month "mois" + :account/no-asset-syncing "Pas de synchronisation des fichiers joints" + :account/open-invoices "Voir les factures" + :account/plan-free "Gratuit" + :account/plan-free-summary "Commencez avec la synchronisation de base" + :account/plan-pro "Pro" + :account/plan-pro-summary "Débloquez la synchronisation avancée et plus" + :account/pro-plan-sync-limit "10 graphes synchronisés (jusqu'à 5 Go chacun)" + :account/profile "Profil" + :account/refresh-token-warning "Actualisation du token : statut exceptionnel" + :account/reset-password "Réinitialiser le mot de passe" + :account/sign-up "S'inscrire" + :account/sync-assets-limit "Synchroniser les fichiers joints jusqu'à 100 Mo par fichier" + :account/synced-status "Synchronisé" + :account/unlimited-unsynced-graphs "Graphes non synchronisés illimités" + :account/upcoming-cloud-features "Prochaines fonctionnalités cloud, dont Logseq Publish" + :account/upgrade-plan "Passer au plan supérieur" + :account/username "Nom d'utilisateur" + + :asset/acceptable-file-extensions "Extensions de fichier acceptées" + :asset/add-assets "Ajouter des fichiers" + :asset/add-directory "Ajouter un répertoire" + :asset/alias-already-exists "Le nom d'alias \"{1}\" existe déjà !" + :asset/alias-directories "Répertoires avec alias" + :asset/alias-directory-path-label "Chemin du répertoire :" + :asset/alias-name-dialog-title "Quel est le nom d'alias de ce répertoire sélectionné ?" + :asset/alias-name-label "Nom d'alias :" + :asset/alias-name-placeholder "ex. Livres" + :asset/align "Alignement" + :asset/align-center "Centré" + :asset/align-left "Gauche" + :asset/align-right "Droite" + :asset/already-exists "L'actif existe déjà, titre : {1}, référence du nœud : [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Impossible d'intégrer le parent comme sa propre propriété" + :asset/confirm-delete-image "Voulez-vous vraiment supprimer cette image ?" + :asset/copy "Copier l'image" + :asset/copy-image-unsupported-extension "La copie d'image n'est pas prise en charge pour les fichiers {1}" + :asset/create-local-copy-warning "Création d'un fichier local à partir d'un fichier externe. Les annotations PDF nécessitent un fichier local pour fonctionner correctement." + :asset/create-title "Créer un fichier" + :asset/delete "Supprimer l'image" + :asset/downloading "Téléchargement en cours" + :asset/drop-hint "Glissez-déposez des fichiers ici, ou cliquez pour sélectionner" + :asset/edit-title "Modifier le fichier" + :asset/external-url-label "URL externe du fichier :" + :asset/file-extension-placeholder "ex. mp3" + :asset/maximize "Agrandir l'image" + :asset/open-in-browser "Ouvrir l'image dans le navigateur" + :asset/physical-delete " Supprimer le fichier également (notez qu'il ne pourra pas être restauré)" + :asset/ref-block "Bloc de référence" + :asset/select-file "Sélectionner un fichier" + :asset/select-from-disk "Sélectionner depuis le disque" + :asset/selected-directories "Répertoires sélectionnés :" + :asset/show-file-in-folder "Afficher le fichier dans le dossier" + :asset/size-too-large "La taille de la ressource est trop grande" + :asset/syncing "Synchronisation en cours" + :asset/title-label "Titre du fichier :" + :asset/transfer-placeholder "{1} fichiers..." + :asset/uploading "Chargement en cours" + + :block/click-to-fix-query "Cliquer pour corriger la requête : {1}" + :block/copy-ref "Copier la référence du bloc" + :block/copy-url "Copier l'URL du bloc" + :block/created-label "Créé : {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' est obsolète. Utilisez la commande '/Math block' à la place." + :block/deprecated-query-syntax "#+BEGIN_QUERY est obsolète. Utilisez la commande '/Advanced Query' à la place." + :block/deprecated-quote "#+BEGIN_QUOTE est obsolète. Utilisez la commande '/Quote' à la place." + :block/empty-url "URL vide" + :block/excalidraw-no-longer-supported "Excalidraw n'est plus pris en charge par défaut, nous prévoyons de le supporter via des plugins." + :block/extraction-error "Erreur d'extraction du bloc" + :block/hide-query "Masquer la requête" + :block/invalid-hiccup "Hiccup invalide" + :block/invalid-link "Lien invalide" + :block/invalid-url "URL invalide" + :block/large-block-warning "Un bloc trop volumineux ne sera ni modifiable ni recherchable pour ne pas ralentir l'application, veuillez utiliser un autre éditeur pour modifier ce bloc." + :block/last-edited-label "Dernière modification : {1}" + :block/not-found-warning "Aucun bloc trouvé" + :block/open-block-references "Ouvrir les références du bloc" + :block/practice "Pratiquer" + :block/practice-cards "Pratiquer les cartes" + :block/ref-nesting-too-deep "L'imbrication des références de bloc est trop profonde" + :block/remove-tag "Retirer le tag" + :block/remove-this-tag "Retirer ce tag" + :block/render-error "Erreur de rendu du bloc :" + :block/set-query "Définir la requête" + :block/set-query-label "Définir la requête :" + :block/sort-order "Ordre de tri" + :block/status-history "Historique des statuts" + :block/untitled-query "Requête sans titre" + + :block.macro/embed-deprecated "{{embed}} est obsolète. Utilisez la commande '/Node embed' à la place." + :block.macro/namespace-deprecated "{{namespace}} est obsolète. Utilisez la fonctionnalité {1} à la place." + :block.macro/query-deprecated "{{query}} est obsolète. Utilisez la commande '/Query' à la place." + :block.macro/unsupported-name "Nom de macro non pris en charge : {1}" + + :block.reaction/emoji-required-warning "Emoji requis" + :block.reaction/unsupported-emoji-warning "Emoji de réaction non supporté" + + :bug-report/desc "Pouvez-vous nous aider en envoyant un signalement de bogue ? Nous ferons le nécessaire dès que possible." + :bug-report/title "Signalement de bogue" + + :bug-report.clipboard/action-desc "Inspecter et récupérer les données du presse-papier" + :bug-report.clipboard/action-title "Assistant Presse-papier" + :bug-report.clipboard/desc "Vous pouvez utiliser ces outils pratiques pour nous fournir des informations supplémentaires." + :bug-report.clipboard/title "Le bogue rencontré est-il lié à ces fonctionnalités ?" + + :bug-report.inspector/back "Retour en arrière" + :bug-report.inspector/clipboard-desc "Voici les données lues depuis votre presse-papier." + :bug-report.inspector/copied "Copié dans le presse-papier !" + :bug-report.inspector/copy "Copier le résultat" + :bug-report.inspector/copy-desc "Si ceci peut être partagé, cliquez sur le bouton Copier." + :bug-report.inspector/create-issue "Soumettre un problème" + :bug-report.inspector/create-issue-desc "Vous pouvez maintenant signaler le résultat collé dans votre presse-papiers. Veuillez coller le résultat dans la section 'Additional Context' et indiquer d'où vous avez copié le contenu d'origine. Merci !" + :bug-report.inspector/desc "Appuyez sur {1} pour inspecter les données de votre presse-papiers\nou cliquez ici pour coller si vous utilisez la version mobile" + :bug-report.inspector/placeholder "Appuyer longuement ici pour coller si vous êtes sur mobile" + :bug-report.inspector/tip "Un problème ? Aucun souci, cliquez pour revenir à l'étape précédente." + :bug-report.inspector/title "Inspecteur du presse-papier" + + :bug-report.issue/action-desc "Aidez à rendre Logseq meilleur !" + :bug-report.issue/action-title "Soumettre un signalement de bogue" + :bug-report.issue/desc "S'il n'y a pas d'outil pour recueillir des informations supplémentaires, veuillez signaler le bogue directement." + :bug-report.issue/report-link "Signaler un problème" + :bug-report.issue/title "Ou…" + + :class/add-property "Ajouter une propriété d'étiquette" + :class/tag-properties-desc "Les propriétés de l'étiquette sont héritées par tous les nœuds qui utilisent cette étiquette. Par exemple, chaque nœud #Task hérite de 'Status' et 'Priority'." + :class/tagged-nodes "Nœuds étiquetés" + + :class.built-in/asset "Fichier" + :class.built-in/card "Carte" + :class.built-in/cards "Cartes" + :class.built-in/code-block "Code" + :class.built-in/journal "Journal" + :class.built-in/math-block "Maths" + :class.built-in/page "Page" + :class.built-in/pdf-annotation "Annotation PDF" + :class.built-in/property "Propriété" + :class.built-in/query "Requête" + :class.built-in/quote-block "Citation" + :class.built-in/root "Tag racine" + :class.built-in/tag "Tag" + :class.built-in/task "Tâche" + :class.built-in/template "Modèle" + :class.built-in/whiteboard "Tableau blanc" + + :class.validation/built-in-extends-change "L'héritage des éléments intégrés ne peut pas être modifié." + :class.validation/cant-add-tag-on-built-in "Impossible d'ajouter une balise sur \"{1}\" intégré." + :class.validation/cant-remove-private-tags "Impossible de supprimer les balises privées : {1}." + :class.validation/cant-remove-tag-built-in "Impossible de supprimer la balise avec #{1} intégré." + :class.validation/cant-remove-tag-on-built-in "Impossible de supprimer la balise sur \"{1}\" intégré." + :class.validation/cant-set-tag-built-in "Impossible de définir le tag avec le #{1} intégré." + :class.validation/duplicate "Le tag '{1}' existe déjà." + :class.validation/extends-cycle "Cycle détecté dans la relation d'héritage." + :class.validation/invalid-extends-type "Type d'héritage invalide." + :class.validation/parents-must-be-tags "Les parents de tags doivent être des tags." + :class.validation/tag-with-non-tag "Impossible de définir une balise avec une page intégrée qui n'est pas une balise \"{1}\"." + + :cmdk.action/apply-theme "Appliquer le thème" + :cmdk.action/copy-ref "Copier la référence" + :cmdk.action/create "Créer" + :cmdk.action/filter "Filtrer" + :cmdk.action/open "Ouvrir" + :cmdk.action/open-in-sidebar "Ouvrir dans la barre latérale" + :cmdk.action/search "Rechercher" + :cmdk.action/trigger "Exécuter" + + :cmdk.create/configure-tag "Configurer le tag" + :cmdk.create/page "Créer une page" + :cmdk.create/tag "Créer un tag" + + :cmdk.error/no-block-link "Ce bloc ne contient aucun lien." + :cmdk.error/no-page-link "Cette page ne contient aucun lien." + :cmdk.error/no-search-item-link "Ce résultat de recherche ne contient aucun lien." + + :cmdk.filter/add "Ajouter un filtre" + :cmdk.filter/codes "Code uniquement" + :cmdk.filter/commands "Commandes uniquement" + :cmdk.filter/current-page "Page actuelle uniquement" + :cmdk.filter/files "Fichiers uniquement" + :cmdk.filter/nodes "Nœuds uniquement" + :cmdk.filter/only-label "Recherche uniquement :" + :cmdk.filter/themes "Thèmes uniquement" + + :cmdk.group/codes "Code" + :cmdk.group/commands "Commandes" + :cmdk.group/create "Créer" + :cmdk.group/current-page "Page actuelle" + :cmdk.group/files "Fichiers" + :cmdk.group/filters "Filtres" + :cmdk.group/nodes "Nœuds" + :cmdk.group/recently-updated "Récemment mis à jour" + :cmdk.group/themes "Thèmes" + + :cmdk.info/configure-tag "Configurer #{1}" + :cmdk.info/create-page "Créer la page '{1}'" + :cmdk.info/create-tag "Créer le tag '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Ajouter un filtre de graphe" + :cmdk.input/default-placeholder "Que cherchez-vous ?" + :cmdk.input/move-blocks-placeholder "Déplacer les blocs" + :cmdk.input/type-page-name-placeholder "Saisir le nom de la page" + + :cmdk.tip/clear-filter "Appuyez sur {1} pour effacer le filtre de recherche" + :cmdk.tip/filter-results "Appuyez sur {1} pour filtrer les résultats de recherche" + :cmdk.tip/label "Astuce :" + :cmdk.tip/open-sidebar "Appuyez sur {1} pour ouvrir la recherche dans la barre latérale" + + :collaboration/email-address "Adresse e-mail" + :collaboration/invite "Inviter" + :collaboration/members "Membres :" + :collaboration/remove-access "Retirer l'accès" + :collaboration/remove-access-error "Échec de la suppression du membre" + + :color/blue "Bleu" + :color/crimson "Cramoisi" + :color/cyan "Cyan" + :color/grass "Vert herbe" + :color/gray "Gris" + :color/green "Vert" + :color/indigo "Indigo" + :color/orange "Orange" + :color/pink "Rose" + :color/plum "Prune" + :color/purple "Violet" + :color/red "Rouge" + :color/teal "Bleu sarcelle" + :color/tomato "Tomate" + :color/violet "Violet" + :color/yellow "Jaune" + + :command.auto-complete/complete "Auto-complétion : choisir l'élément sélectionné" + :command.auto-complete/meta-complete "Complétion automatique Meta" + :command.auto-complete/next "Auto-complétion : sélection de l'élément suivant" + :command.auto-complete/prev "Auto-complétion : sélectionner l'élément précédent" + :command.auto-complete/shift-complete "Auto-complétion : ouvrir l'élément sélectionné dans la barre latérale" + + :command.command-palette/toggle "Rechercher des commandes" + + :command.editor/add-property "Ajouter une propriété" + :command.editor/add-property-deadline "Ajouter une échéance" + :command.editor/add-property-icon "Ajouter une icône" + :command.editor/add-property-priority "Ajouter une priorité" + :command.editor/add-property-status "Ajouter un statut" + :command.editor/add-reaction "Ajouter une réaction" + :command.editor/backspace "Retour arrière / Effacer en arrière" + :command.editor/backward-kill-word "Supprimer un mot en arrière" + :command.editor/backward-word "Déplacer le curseur avant un mot" + :command.editor/beginning-of-block "Déplacer le curseur au début du bloc" + :command.editor/bold "Gras" + :command.editor/clear-block "Supprimer tout le contenu d'un bloc" + :command.editor/collapse-block-children "Réduire" + :command.editor/copy "Copier (copie soit la sélection, soit une référence de bloc)" + :command.editor/copy-embed "Copier une intégration de ce bloc" + :command.editor/copy-page-url "Copier l'URL de la page" + :command.editor/copy-text "Copier le texte de la sélection" + :command.editor/cut "Couper" + :command.editor/cycle-todo "Basculer l'état du TODO de l'élément" + :command.editor/delete "Supprimer / Efface en avant" + :command.editor/delete-selection "Supprimer les blocs sélectionnés" + :command.editor/down "Déplacer le curseur vers le bas / Sélectionner vers le bas" + :command.editor/end-of-block "Déplacer le curseur à la fin du bloc" + :command.editor/escape-editing "Quitter l'édition" + :command.editor/expand-block-children "Étendre" + :command.editor/follow-link "Suivre le lien sous le curseur" + :command.editor/forward-kill-word "Supprimer un mot en avant" + :command.editor/forward-word "Déplacer le curseur d'un mot en avant" + :command.editor/highlight "Surlignage" + :command.editor/indent "Indenter un bloc vers la droite" + :command.editor/insert-link "Lien HTML" + :command.editor/insert-youtube-timestamp "Insérer un horodatage YouTube" + :command.editor/italics "Italique" + :command.editor/jump "Aller à" + :command.editor/kill-line-after "Effacer la ligne après la position du curseur" + :command.editor/kill-line-before "Effacer la ligne avant la position du curseur" + :command.editor/left "Déplacer le curseur à gauche / Ouvrir au début du bloc sélectionné" + :command.editor/move-block-down "Déplacer un bloc en dessous" + :command.editor/move-block-up "Déplacer un bloc au-dessus" + :command.editor/move-blocks "Déplacer les blocs" + :command.editor/new-block "Créer un nouveau bloc" + :command.editor/new-line "Aller à la ligne dans un bloc" + :command.editor/open-edit "Modifier le bloc sélectionné" + :command.editor/open-link-in-sidebar "Ouvrir le lien dans la barre latérale" + :command.editor/open-selected-blocks-in-sidebar "Ouvrir les blocs sélectionnés dans la barre latérale" + :command.editor/outdent "Indenter un bloc vers la gauche" + :command.editor/paste-text-in-one-block-at-point "Coller le texte dans un bloc" + :command.editor/quick-add "Ajout rapide" + :command.editor/redo "Refaire" + :command.editor/right "Déplacer le curseur à droite / Ouvrir à la fin du bloc sélectionné" + :command.editor/select-all-blocks "Sélectionner tous les blocs" + :command.editor/select-block-down "Sélectionner le bloc en dessous" + :command.editor/select-block-up "Sélectionner le bloc au-dessus" + :command.editor/select-down "Sélectionner le contenu en dessous" + :command.editor/select-parent "Sélectionnez le bloc parent" + :command.editor/select-up "Sélectionner le contenu au-dessus" + :command.editor/set-tags "Définir les tags" + :command.editor/strike-through "Barrer" + :command.editor/toggle-block-children "Afficher/masquer les enfants du bloc" + :command.editor/toggle-display-hidden-properties "Afficher/masquer les propriétés cachées" + :command.editor/toggle-number-list "Activer la liste numérotée" + :command.editor/toggle-open-blocks "Réduire ou étendre les blocs" + :command.editor/undo "Annuler" + :command.editor/up "Déplacer le curseur vers le haut / Sélectionner au-dessus" + :command.editor/zoom-in "Zoomer" + :command.editor/zoom-out "Dézoomer" + + :command.go/all-graphs "Aller vers tous les graphes" + :command.go/all-pages "Aller vers toutes les pages" + :command.go/backward "En arrière" + :command.go/electron-find-in-page "Chercher du texte dans une page" + :command.go/electron-jump-to-the-next "Aller vers le résultat de recherche suivant" + :command.go/electron-jump-to-the-previous "Aller vers le résultat de recherche précédent" + :command.go/flashcards "Basculer les cartes mémoire" + :command.go/forward "En avant" + :command.go/graph-view "Aller vers la vue en graphe" + :command.go/home "Aller vers l'accueil" + :command.go/journals "Aller au Journal" + :command.go/keyboard-shortcuts "Aller vers les raccourcis clavier" + :command.go/next-journal "Aller au journal suivant" + :command.go/prev-journal "Aller au journal précédent" + :command.go/search "Recherche globale dans le texte" + :command.go/search-in-page "Rechercher des blocs dans la page" + :command.go/search-themes "Rechercher des thèmes" + :command.go/tomorrow "Aller vers demain" + + :command.graph/add "Ajouter un graphe" + :command.graph/db-add "Ajouter à la base de données" + :command.graph/db-save "Enregistrer la base de données" + :command.graph/export-as-html "Exporter les pages publiques du graphe en HTML" + :command.graph/open "Sélectionner un graphe à ouvrir" + :command.graph/remove "Retirer un graphe" + + :command.misc/copy "Copier" + :command.misc/export-block-data "Exporter les données du bloc" + :command.misc/export-graph-ontology-data "Exporter les données d'ontologie du graphe" + :command.misc/export-page-data "Exporter les données de la page" + :command.misc/import-edn-data "Importer des données EDN" + + :command.page/toggle-favorite "Ajouter/retirer des favoris" + + :command.pdf/close "PDF : fermer le document PDF" + :command.pdf/find "PDF : rechercher du texte dans le document" + :command.pdf/next-page "PDF : page suivante du document en cours" + :command.pdf/previous-page "PDF : page précédente du document en cours" + + :command.publish/open-dialog "Ouvrir le dialogue de publication" + + :command.search/re-index "Reconstruire l'index de recherche" + + :command.shell/run "Lancer une commande Git" + + :command.sidebar/clear "Vider intégralement la barre latérale droite" + :command.sidebar/close-top "Ferme l'élément supérieur dans la barre latérale droite" + :command.sidebar/open-today-page "Ouvrir la page du jour dans la barre latérale droite" + + :command.ui/clear-all-notifications "Effacer toutes les notifications" + :command.ui/customize-appearance "Personnaliser l'apparence" + :command.ui/goto-plugins "Aller vers le panneau des extensions" + :command.ui/highlight-recent-blocks "Surligner les blocs récents" + :command.ui/install-plugin-from-github "Installer une extension depuis GitHub" + :command.ui/install-plugins-from-file "Installer les extensions depuis plugins.edn" + :command.ui/select-theme-color "Sélectionner les couleurs disponibles du thème" + :command.ui/toggle-brackets "Basculer l'affichage des crochets" + :command.ui/toggle-contents "Basculer l'affichage du contenu dans la barre latérale" + :command.ui/toggle-document-mode "Intervertir le mode document" + :command.ui/toggle-help "Afficher l'aide" + :command.ui/toggle-left-sidebar "Basculer la barre latérale gauche" + :command.ui/toggle-right-sidebar "Afficher/cacher la barre latérale" + :command.ui/toggle-settings "Basculer l'affichage des réglages" + :command.ui/toggle-theme "Intervertir le thème foncé/clair" + :command.ui/toggle-wide-mode "Basculer la vue en pleine largeur" + + :command.window/close "Fermer la fenêtre" + + :context-menu/developer-tools "Outils de développement" + :context-menu/make-a-flashcard "Créer une carte mémoire" + :context-menu/set-icon "Définir l'icône" + :context-menu/toggle-number-list "Activer la liste numérotée" + + :date/invalid-date-warning "{1} n'est pas une date valide. Veuillez réessayer" + + :date.nlp/last-friday "Vendredi dernier" + :date.nlp/last-monday "Lundi dernier" + :date.nlp/last-month "Le mois dernier" + :date.nlp/last-saturday "Samedi dernier" + :date.nlp/last-sunday "Dimanche dernier" + :date.nlp/last-thursday "Jeudi dernier" + :date.nlp/last-tuesday "Mardi dernier" + :date.nlp/last-wednesday "Mercredi dernier" + :date.nlp/last-week "La semaine dernière" + :date.nlp/last-year "L'année dernière" + :date.nlp/next-friday "Vendredi prochain" + :date.nlp/next-monday "Lundi prochain" + :date.nlp/next-month "Le mois prochain" + :date.nlp/next-saturday "Samedi prochain" + :date.nlp/next-sunday "Dimanche prochain" + :date.nlp/next-thursday "Jeudi prochain" + :date.nlp/next-tuesday "Mardi prochain" + :date.nlp/next-wednesday "Mercredi prochain" + :date.nlp/next-week "La semaine prochaine" + :date.nlp/next-year "L'année prochaine" + :date.nlp/this-friday "Ce vendredi" + :date.nlp/this-monday "Ce lundi" + :date.nlp/this-month "Ce mois-ci" + :date.nlp/this-saturday "Ce samedi" + :date.nlp/this-sunday "Ce dimanche" + :date.nlp/this-thursday "Ce jeudi" + :date.nlp/this-tuesday "Ce mardi" + :date.nlp/this-wednesday "Ce mercredi" + :date.nlp/this-week "Cette semaine" + :date.nlp/this-year "Cette année" + :date.nlp/today "Aujourd'hui" + :date.nlp/tomorrow "Demain" + :date.nlp/yesterday "Hier" + + :deeplink/open-block-error "Impossible d'ouvrir le lien. L'ID de bloc `{1}` n'existe pas dans le graphe actuel." + :deeplink/open-graph-error "Impossible d'ouvrir le graphe. Le graphe `{1}` n'existe pas." + :deeplink/open-page-error "Impossible d'ouvrir le lien. La page `{1}` n'existe pas dans le graphe actuel." + + :editor/add-content-first-warning "Veuillez d'abord ajouter du contenu." + :editor/auto-heading "Titre automatique" + :editor/block-search "Rechercher un bloc" + :editor/click-to-edit "Cliquer pour modifier" + :editor/code-language-placeholder "Choisir une langue" + :editor/collapse-block-children "Réduire tout" + :editor/cut "Couper" + :editor/cycle-todo "Basculer l'état TODO de l'élément courant" + :editor/delete-selection "Supprimer les blocs sélectionnés" + :editor/display-tag-inline-hint "pour afficher cette étiquette en ligne au lieu de la fin de ce nœud." + :editor/expand-block-children "Étendre tout" + :editor/heading "Rubrique {1}" + :editor/moving-blocks-count "Déplacement de {1} blocs" + :editor/new-page "Nouvelle page" + :editor/new-tag "Nouveau tag" + :editor/no-block-selected-warning "Aucun bloc sélectionné" + :editor/paste "Coller" + :editor/reference-node-use-page-ref "Pour référencer un nœud, veuillez utiliser `[[]]`." + :editor/remove-heading "Supprimer le titre" + :editor/search-for-node "Rechercher un nœud" + :editor/search-for-tag "Rechercher une étiquette" + :editor/search-template-placeholder "Rechercher un modèle" + :editor/template-insert-error "Erreur d'insertion de modèle : {1}" + + :editor.document-mode/new-block-hint "{1} pour créer un nouveau bloc" + :editor.document-mode/title "Mode document" + :editor.document-mode/toggle-desc "Cliquez sur `D` ou tapez {1} pour basculer le mode document" + + :editor.quick-add/add-to-today "Ajouter à la page du jour" + :editor.quick-add/title "Ajout rapide" + + :editor.slash/advanced-query "Requête avancée" + :editor.slash/advanced-query-desc "Créer un bloc de requête avancée" + :editor.slash/calculator "Calculatrice" + :editor.slash/calculator-desc "Insérer une calculatrice" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Bloc de code" + :editor.slash/code-block-desc "Insérer un bloc de code" + :editor.slash/current-time "Heure actuelle" + :editor.slash/current-time-desc "Insérer l'heure actuelle" + :editor.slash/date-picker "Sélecteur de date" + :editor.slash/date-picker-desc "Choisir une date et l'insérer ici" + :editor.slash/embed-html "Intégrer du HTML" + :editor.slash/embed-twitter-tweet "Intégrer un tweet Twitter" + :editor.slash/embed-video-url "Intégrer une URL vidéo" + :editor.slash/embed-youtube-timestamp "Intégrer un timestamp YouTube" + :editor.slash/group-advanced "AVANCÉ" + :editor.slash/group-basic "BASIQUE" + :editor.slash/group-format "FORMAT" + :editor.slash/group-heading "Titre" + :editor.slash/group-list-type "TYPE DE LISTE" + :editor.slash/group-plugins "PLUGINS" + :editor.slash/group-priority "PRIORITÉ" + :editor.slash/group-task-date "DATE DE TÂCHE" + :editor.slash/group-task-status "ÉTAT DE TÂCHE" + :editor.slash/group-time-and-date "HEURE ET DATE" + :editor.slash/heading-label "Titre {1}" + :editor.slash/image-link "Lien image" + :editor.slash/image-link-desc "Créer un lien HTTP vers une image" + :editor.slash/link-desc "Créer un lien HTTP" + :editor.slash/math-block "Bloc mathématique" + :editor.slash/math-block-desc "Créer un bloc LaTeX" + :editor.slash/no-priority "Pas de priorité" + :editor.slash/node-embed "Intégration de nœud" + :editor.slash/node-embed-desc "Intégrer un nœud ici" + :editor.slash/node-reference "Référence de nœud" + :editor.slash/node-reference-desc "Créer un rétrolien vers un nœud (une page ou un bloc)" + :editor.slash/normal-text "Texte normal" + :editor.slash/normal-text-desc "Supprimer le titre et définir en texte normal" + :editor.slash/number-children "Enfants numérotés" + :editor.slash/number-list "Liste numérotée" + :editor.slash/priority-desc "Définir la priorité à {1}" + :editor.slash/priority-label "Priorité {1}" + :editor.slash/query-function "Fonction de requête" + :editor.slash/query-function-desc "Créer une fonction de requête" + :editor.slash/quote-desc "Créer un bloc de citation" + :editor.slash/status-desc "Définir l'état à {1}" + :editor.slash/template-desc "Insérer un modèle créé ici" + :editor.slash/today-desc "Insérer la date d'aujourd'hui" + :editor.slash/tomorrow-desc "Insérer la date de demain" + :editor.slash/underline "Souligné" + :editor.slash/underline-desc "Créer un décor de texte souligné" + :editor.slash/upload-asset "Charger un fichier" + :editor.slash/upload-asset-desc "Télécharger des types de fichiers comme image, PDF, DOCX, etc." + :editor.slash/yesterday-desc "Insérer la date d'hier" + + :electron/about "À propos de Logseq" + :electron/add-to-dictionary "Ajouter au dictionnaire" + :electron/block-not-exist "Échec de l'ouverture du lien. L'identifiant de bloc `{1}` n'existe pas dans le graphe." + :electron/cancel "Annuler" + :electron/copy-image "Copier l'image" + :electron/link-open-confirm "Voulez-vous vraiment ouvrir ce lien ?\n{1}" + :electron/link-open-failed-missing-graph "Impossible d'ouvrir le lien. Graphe manquant." + :electron/link-open-failed-no-graph "Échec de l'ouverture du lien. Impossible d'associer l'identifiant de graphe `{1}` à un graphe lié." + :electron/link-open-failed-no-target "Échec de l'ouverture du lien. Impossible d'associer `{1}` à une cible." + :electron/look-up "Rechercher la sélection" + :electron/main-exception "[Exception du processus principal]\n{1}\n{2}" + :electron/new-window "Nouvelle fenêtre" + :electron/official-docs "Documentation officielle" + :electron/ok "OK" + :electron/open-dir-error "Impossible d'ouvrir le répertoire : {1}" + :electron/save-image "Enregistrer l'image" + :electron/save-image-as "Enregistrer l'image sous" + :electron/search-with-google "Rechercher avec Google" + :electron/unimplemented-callback "Action x-callback-url non implémentée : `{1}`." + :electron/version "Version {1}" + :electron/write-file-error "Échec de l'écriture du fichier {1}, {2}." + :electron/write-file-error-with-backup "Échec de l'écriture du fichier {1}, {2}. Un fichier de sauvegarde a été enregistré dans {3}." + + :encryption/cloud-password-rich (fn [] ["Si vous perdez votre mot de passe, aucune des données stockées dans le cloud ne pourra être déchiffrée. " [:span "Vous pourrez toutefois toujours accéder à la version locale de votre graphe."]]) + :encryption/current-password "Mot de passe actuel" + :encryption/enter-password "Saisir le mot de passe" + :encryption/enter-password-again "Saisir le mot de passe à nouveau" + :encryption/enter-password-title "Saisir le mot de passe" + :encryption/failed-to-force-reset-password "Échec de la réinitialisation forcée du mot de passe" + :encryption/failed-to-update-password "Échec de la mise à jour du mot de passe" + :encryption/fetch-key-pair-error "Erreur de récupération de la paire de clés rsa de l'utilisateur : {1}" + :encryption/fetching-key-pair "Récupération de la paire de clés" + :encryption/force-reset-password "Réinitialisation forcée du mot de passe" + :encryption/force-reset-password-successfully "Réinitialisation forcée du mot de passe réussie" + :encryption/force-resetting-password "Réinitialisation forcée en cours" + :encryption/forgot-password-question "Mot de passe oublié ?" + :encryption/forgot-password-warning "Si vous oubliez votre mot de passe, les données chiffrées ne pourront pas être récupérées." + :encryption/init-key-pair "Initialiser la paire de clés" + :encryption/init-key-pair-error "Erreur de paire de clés d'initialisation : {1}" + :encryption/password-not-matched "Les mots de passe ne correspondent pas" + :encryption/password-updated-successfully "Mot de passe mis à jour" + :encryption/remember-password-rich (fn [] [[:span "Assurez-vous de bien "] "mémoriser le mot de passe choisi, car nous ne pourrons ni le réinitialiser ni le récupérer si vous l'oubliez, " [:span "et nous vous recommandons de "] "conserver une sauvegarde sécurisée du mot de passe."]) + :encryption/reset-password "Réinitialiser le mot de passe" + :encryption/set-new-password "Définir un nouveau mot de passe" + :encryption/set-password-title "Définir le mot de passe" + :encryption/updating-password "Mise à jour du mot de passe" + :encryption/wrong-password "Mot de passe incorrect" + + :export/backup-successful "Sauvegarde réussie !" + :export/block-data-copied "Données du bloc copiées dans le presse-papiers" + :export/collecting-assets "Collecte des fichiers" + :export/copied-to-clipboard "Copié dans le presse-papiers !" + :export/copy-or-export-as "Copier / Exporter sous…" + :export/creating-zip "Création du zip" + :export/db-backup-error "Échec de la sauvegarde de la base de données." + :export/db-edn "Exporter en fichier EDN" + :export/debug-transit-desc "Exporte vers un fichier .transit à nous envoyer pour le débogage. Les données sensibles seront supprimées du fichier exporté." + :export/debug-transit-file "Exporter le fichier transit de débogage" + :export/edn-desc "Exporte vers un fichier .edn lisible et modifiable. Ne vous fiez pas à ceci comme sauvegarde principale." + :export/error-unexpected "Une erreur inattendue s'est produite lors de l'export. Consultez la console JavaScript pour plus de détails." + :export/exporting "Exportation" + :export/finalizing "Finalisation" + :export/format-text "Texte" + :export/graph "Exporter le graphe" + :export/graph-ontology-data-copied "Données d'ontologie du graphe copiées dans le presse-papiers" + :export/indent-style-dashes "tirets" + :export/indent-style-label "Style d'indentation :" + :export/indent-style-none "sans indentation" + :export/indent-style-spaces "espaces" + :export/level-lte "niveau <=" + :export/markdown "Exporter en Markdown standard (sans propriétés de bloc)" + :export/newline-after-block "retour à la ligne après le bloc" + :export/no-updates-since-last-export "Aucune mise à jour depuis le dernier export." + :export/open-blocks-only "blocs ouverts uniquement (ignorer les enfants réduits)" + :export/page "Exporter la page" + :export/page-data-copied "Données de page copiées dans le presse-papiers" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Préparation du zip" + :export/preview-alt "aperçu de l'export" + :export/public-pages "Exporter les pages publiques" + :export/remove-emphasis "retirer l'emphase" + :export/remove-properties "retirer les propriétés" + :export/remove-tags "retirer les #tags" + :export/save-to-file "Enregistrer dans un fichier" + :export/sqlite-db "Exporter la base SQLite" + :export/title "Exporter" + :export/transparent-background "Arrière-plan transparent" + :export/view-nodes-data-copied "Données des nœuds de vue copiées dans le presse-papiers" + :export/zip "Exporter base SQLite et ressources" + :export/zip-error "Échec de l'export ZIP." + + :export.backup/backup-now "Sauvegarder maintenant" + :export.backup/cancel "Annuler la sauvegarde" + :export.backup/enabled-desc "Les sauvegardes horaires sont activées pour ce graphe, {1}." + :export.backup/folder "Dossier de sauvegarde :" + :export.backup/hourly-note "Une sauvegarde sera créée toutes les heures." + :export.backup/open-folder "ouvrir le dossier de sauvegardes pour ce graphe" + :export.backup/schedule "Planifier la sauvegarde" + :export.backup/set-folder-first "Définir d'abord le dossier de sauvegarde" + :export.backup/sqlite-desc "Moyen principal de sauvegarder le contenu du graphe dans un seul fichier .sqlite." + :export.backup/unsupported-desc "Votre navigateur ne prend pas en charge {{The File System Access API}}, veuillez passer à un navigateur basé sur Chromium." + :export.backup/zip-desc "Moyen principal de sauvegarder le contenu et les fichiers du graphe dans un fichier .zip." + + :file/config-duplicate-keys "Le fichier '{1}' contient des clés en double. La clé '{2}' est attribuée plusieurs fois." + :file/config-invalid "Le fichier de configuration est invalide" + :file/format-not-supported "Le format .{1} n'est pas pris en charge." + :file/label "Fichier" + :file/last-modified-at "Dernières modifications à" + :file/name "Nom de fichier" + :file/no-data "Aucune donnée" + :file/title "Fichier {1}" + + :file.config/deprecation-title "Le fichier {1} a les dépréciations suivantes :" + :file.config/error-title "Le fichier {1} a les erreurs suivantes :" + :file.config/invalid-desc "Assurez-vous que la configuration est enveloppée dans {}." + :file.config/invalid-title "Le fichier {1} n'est pas valide." + :file.config/read-failed-desc "Assurez-vous que votre configuration est enveloppée dans {}. Assurez-vous également que les caractères '( { [' ont leurs caractères fermants correspondants ') } ]'." + :file.config/read-failed-title "Impossible de lire le fichier {1}" + + :flashcard/add-query "Ajouter une nouvelle requête" + :flashcard/all-cards "Toutes les cartes" + :flashcard/select-cards "Sélectionner les cartes" + :flashcard/shortcut-tooltip "Raccourci : {1}" + + :flashcard.empty/desc "Vous pouvez ajouter \"{1}\" à n’importe quel bloc pour le transformer en carte, ou utiliser \"/cloze\" pour ajouter des textes à trous." + :flashcard.empty/title "C'est le temps de créer une carte mémoire !" + + :flashcard.rating/again "Encore" + :flashcard.rating/again-desc "Nous avons donné une mauvaise réponse. Cela signifie automatiquement que nous avons oublié la carte. C'est un oubli." + :flashcard.rating/easy "Facile" + :flashcard.rating/easy-desc "La réponse était correcte et nous nous en sommes souvenus rapidement et avec assurance, sans effort mental." + :flashcard.rating/good "Bien" + :flashcard.rating/good-desc "La réponse était correcte, mais il a fallu un certain effort mental pour nous en souvenir." + :flashcard.rating/hard "Difficile" + :flashcard.rating/hard-desc "La réponse était correcte, mais nous n'étions pas sûrs de nous ou avons mis trop de temps à nous en souvenir." + + :flashcard.review/finished "Bravo, vous avez révisé toutes les cartes de cette requête. À la prochaine ! 💯" + :flashcard.review/hide-answers "Masquer les réponses" + :flashcard.review/show-answers "Afficher les réponses" + :flashcard.review/show-clozes "Afficher les lacunes" + + :format/bold "Gras" + :format/code "Code" + :format/highlight "Surbrillance" + :format/italics "Italique" + :format/strikethrough "Barré" + + :graph/all-graphs "Tous les graphes" + :graph/already-exists-error "Le graphe '{1}' existe déjà. Veuillez réessayer avec un autre nom." + :graph/as-png "en PNG" + :graph/built-in-pages "Pages intégrées" + :graph/charge-range "Portée de la charge" + :graph/charge-strength "Force de la charge" + :graph/click-to-search "Cliquer pour rechercher" + :graph/create-db "Créer un graphe BDD" + :graph/create-error "Échec de la création du graphe" + :graph/create-new "Créer un nouveau graphe" + :graph/created-before "Créé avant" + :graph/creating "Création du graphe" + :graph/delete-local-action "Supprimer le graphe local" + :graph/delete-local-confirm-desc "Êtes-vous sûr de vouloir supprimer définitivement le graphique « {1} » de Logseq ?" + :graph/delete-server-action "Supprimer du serveur" + :graph/delete-server-confirm-desc "Êtes-vous sûr de vouloir supprimer définitivement le graphique « {1} » de notre serveur ?" + :graph/delete-warning "⚠️ Notez que nous ne pouvons pas récupérer ce graphique après sa suppression. Assurez-vous d'avoir des sauvegardes avant de le supprimer." + :graph/diff "Git diff" + :graph/downloading "téléchargement" + :graph/encrypt-data-label "Chiffrer les données du graphe" + :graph/excluded-pages "Pages exclues" + :graph/forces "Forces" + :graph/gc-success "Nettoyage du graphe réussi !" + :graph/last-opened-at-label "Dernière ouverture: {1}" + :graph/leave-action "Quitter ce graphe" + :graph/leave-confirm-desc "Êtes-vous sûr de vouloir quitter ce graphique ?" + :graph/leave-error "Échec pour quitter le graphe" + :graph/left "Graphe quitté" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "lien" "liens"))) + :graph/link-distance "Distance des liens" + :graph/local-graphs "Graphes locaux :" + :graph/n-hops-from-selected-nodes "N sauts depuis les nœuds sélectionnés" + :graph/name-placeholder "nom de votre graphe" + :graph/nodes "Nœuds" + :graph/orphan-pages "Pages orphelines" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "page" "pages"))) + :graph/pause-simulation "Mettre en pause la simulation" + :graph/preparing "préparation" + :graph/refresh-remote-graphs "Actualiser les graphes distants" + :graph/remote-graphs "Graphes distants :" + :graph/removed "Graphique supprimé « {1} »" + :graph/removed-and-redirecting "Graphique supprimé « {1} ». Redirection vers le graphique « {2} »" + :graph/removed-from-sync "Graphe retiré de la synchronisation" + :graph/reset "Réinitialiser le graphe" + :graph/reset-forces "Réinitialiser les forces" + :graph/search "Rechercher" + :graph/shared-graphs "Graphes partagés" + :graph/updated-switching "Graphe mis à jour. Changement..." + :graph/use-sync-beta "Utiliser Logseq Sync (bêta)" + :graph/use-sync-label "Utiliser Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Échec du calcul des diagnostics de somme de contrôle du graphe." + :graph.diagnostics/checksum-recomputed-success "Somme de contrôle recalculée. Recalculée : {1}, locale : {2}, distante : {3}. {4}.edn a été téléchargé avec {5} blocs et les attributs de somme de contrôle {6}." + :graph.diagnostics/checksum-unavailable-warning "Impossible de calculer les diagnostics de somme de contrôle pour le graphe actuel." + :graph.diagnostics/client-ops-export-failed-error "Échec de l'export de Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Échec de l'export de Client ops SQLite : type de payload invalide {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exporté : {1}.sqlite" + :graph.diagnostics/no-graph-warning "Aucun graphe trouvé." + + :graph.page/show-journals "Montrer les journaux" + :graph.page/title "Graphe de la page" + + :graph.switch/add-graph-action "Oui, ajouter un autre graphe" + :graph.switch/empty-desc "Aucun graphe trouvé. Souhaitez-vous en ajouter un ?" + :graph.switch/prompt "Basculer à :" + :graph.switch/select-prompt "Choisir un graphe" + + :graph.validation/config-arweave-gateway-warning "n'est plus pris en charge." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "n'est plus pris en charge. Veuillez utiliser '/' et signaler les bugs." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "n'est pas utilisé dans les graphiques DB car il n'y a que le mode markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "La validation a détecté {1} bloc(s) invalide(s). Ces blocs peuvent être bogués. Tentative de correction des blocs invalides. Exécutez la validation à nouveau pour voir s'ils ont été corrigés." + :graph.validation/name-reserved-characters-warning "Le nom du graphe ne peut pas contenir les caractères réservés suivants :" + :graph.validation/reserved-character-asterisk "astérisque" + :graph.validation/reserved-character-backslash "barre oblique inverse" + :graph.validation/reserved-character-colon "deux-points" + :graph.validation/reserved-character-double-quote "guillemet double" + :graph.validation/reserved-character-forward-slash "barre oblique" + :graph.validation/reserved-character-greater-than "supérieur à" + :graph.validation/reserved-character-hash "dièse" + :graph.validation/reserved-character-less-than "inférieur à" + :graph.validation/reserved-character-pipe "barre verticale ou pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "point d'interrogation" + :graph.validation/valid "Votre graphique est valide ! {1}" + + :header/go-back "Retour" + :header/go-forward "Suivant" + :header/highlight-recent-blocks "Mettre en surbrillance les blocs récents" + :header/highlight-recent-blocks-days-ago "Mettre en surbrillance les blocs récents : il y a {1} jours" + :header/more "Plus" + :header/quit-highlight-recent-blocks "Arrêter la surbrillance des blocs récents" + :header/toggle-left-sidebar "Activer le panneau latéral gauche" + + :help/about "À propos de Logseq" + :help/about-title "À propos" + :help/ask-community "Demander à la communauté" + :help/awesome-logseq "Merveilleux Logseq" + :help/block-reference "Référence à un Bloc" + :help/blog "Blog de Logseq" + :help/bug "Signaler une anomalie" + :help/changelog "Journal des modifications" + :help/community-title "Communauté" + :help/context-menu "Menu contextuel" + :help/context-menu-action "Clic droit sur la puce" + :help/development-title "Développement" + :help/docs "Documentation" + :help/feature "Demander une fonctionnalité" + :help/forum-community "Forum communautaire" + :help/handbook "Manuel" + :help/learn-more "En savoir plus" + :help/markdown-syntax "Syntaxe Markdown" + :help/open-link-in-sidebar "Ouvrir le lien dans la barre latérale" + :help/open-link-in-sidebar-action "Maj + clic sur la référence" + :help/privacy "Politique de confidentialité" + :help/reference-autocomplete "Autocomplétion des références à une Page" + :help/release-notes "Notes de version" + :help/roadmap "Feuille de route" + :help/search "Recherches des pages, blocs ou commandes" + :help/slash-autocomplete "Autocomplétion avec Slash" + :help/start "Démarrage" + :help/submit-feedback "Envoyer un retour" + :help/support-forum "Forum d'assistance" + :help/terms "Conditions d'utilisation" + :help/terms-title "Termes" + :help/usage-title "Utilisation" + + :help.handbook/chat-on-discord "Discuter sur Discord" + :help.handbook/chat-on-discord-desc "Posez des questions rapides, rencontrez d'autres utilisateurs et découvrez de nouveaux flux de travail." + :help.handbook/copy-topic-link "Copier le lien du sujet" + :help.handbook/current-chapter "Chapitre actuel" + :help.handbook/help-categories "Catégories d'aide" + :help.handbook/home "Accueil" + :help.handbook/link-copied "Lien du manuel copié !" + :help.handbook/monthly-posts "articles mensuels" + :help.handbook/next-chapter "Chapitre suivant" + :help.handbook/popular-topics "Sujets populaires" + :help.handbook/prev-chapter "Chapitre précédent" + :help.handbook/resources-from "Ressources de {1}" + :help.handbook/search-placeholder "Rechercher" + :help.handbook/shortcuts-count "{1} raccourcis" + :help.handbook/sync "Synchronisation" + :help.handbook/title "Aide" + :help.handbook/topics "Sujets" + :help.handbook/users-online "utilisateurs en ligne" + :help.handbook/visit-the-forum "Visiter le forum" + :help.handbook/visit-the-forum-desc "Donnez votre avis, proposez des fonctionnalités et participez à des discussions approfondies." + :help.handbook/writing-mode "Mode écriture (aperçu dans le temps)" + + :help.shortcuts/desc "Voir les raccourcis et astuces" + :help.shortcuts/label "Raccourcis clavier" + :help.shortcuts/shortcut-column "Raccourcis" + :help.shortcuts/title "Raccourcis clavier" + :help.shortcuts/triggers "Actions déclenchées" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Icônes ({1})" + :icon/matched-count "Correspondances ({1})" + :icon/search-all "Tout rechercher" + :icon/search-emojis "Rechercher des emojis" + :icon/search-icons "Rechercher des icônes" + :icon/tab-all "Tout" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Icônes" + + :import/all-tags "Importer tous les tags" + :import/asset-too-large-warning "La copie de la ressource {1} a été ignorée car elle dépasse la limite de 100 MB." + :import/assets-import-partial "{1}/{2} ressources importées. Détails dans la console." + :import/assets-imported "{1} ressources importées." + :import/assets-skipped "{1} ressources ignorées. Détails dans la console." + :import/block-icons-cannot-be-imported "Les icônes de bloc ne peuvent pas être importées. Veuillez les importer manuellement au bloc {1}." + :import/cannot-import-block-into-non-block-entity "Impossible d'importer un bloc dans une entité non-bloc." + :import/db-edn-desc "Importer l'export EDN d'un graphe DB dans un nouveau graphe DB" + :import/db-edn-title "EDN vers graphe DB" + :import/debug-transit-desc "Importer un fichier transit de débogage dans un nouveau graphe DB" + :import/debug-transit-title "Transit de débogage" + :import/default-db-graph-behavior "Comportement par défaut du graphe de base de données" + :import/empty-graph-name "Le nom du graphe ne peut pas être vide." + :import/extract-inline-code-snippets "Extraire les extraits de code en ligne comme sous-blocs" + :import/file-finished "Importation terminée !" + :import/file-to-db-desc "Importer un dossier de graphe Logseq basé sur des fichiers dans un nouveau graphe DB" + :import/file-to-db-title "Fichier vers graphe DB" + :import/graph-name-conflict "Un graphe avec ce nom existe déjà. Veuillez choisir un autre nom !" + :import/graph-name-placeholder "Nom du graphe" + :import/ignored-assets "{1} ressources ignorées lors de l'importation. Détails dans la console JavaScript." + :import/ignored-files "{1} fichiers ignorés lors de l'importation. Détails dans la console JavaScript." + :import/ignored-properties "{1} propriétés ignorées lors de l'importation" + :import/ignored-properties-fix "Pour corriger le type de propriété, modifiez la valeur et réimportez le graphe" + :import/invalid-blocks-detected "{1} blocs invalides détectés lors de l'importation. L'interaction pourrait échouer. Détails dans la console JavaScript." + :import/invalid-edn-file "Le fichier EDN fourni est invalide. Veuillez corriger et réessayer." + :import/loading "Importation" + :import/logseq-config-missing "Échec de l'importation : le graphe Logseq n'a pas de fichier 'logseq/config.edn'." + :import/new-graph-name "Nouveau nom du graphe" + :import/notes "Importer les notes existantes" + :import/org-files-imported "{1} fichiers Org importés en Markdown. Le support des fichiers Org sera ajouté ultérieurement." + :import/page-icons-cannot-be-imported "Les icônes de page ne peuvent pas être importées. Veuillez les importer manuellement à la page {1}." + :import/properties-case-insensitive-commas "Noms de propriétés (insensible à la casse, séparés par des virgules)" + :import/property-classes-placeholder "ex. type" + :import/property-import-manually "Cette propriété doit être importée manuellement" + :import/property-parent-classes-placeholder "ex. parent" + :import/property-type-mismatch "La valeur de la propriété est de type {1}, pas {2}" + :import/property-value-tag-parents "Importer les parents de tags depuis les valeurs de propriétés" + :import/property-value-tags "Importer des tags supplémentaires depuis les valeurs de propriétés" + :import/remove-inline-tags "Supprimer les tags en ligne" + :import/select-edn-or-json "Sélectionner un fichier EDN ou JSON." + :import/specific-tags "Importer des tags spécifiques" + :import/sqlite-and-assets-desc "Importer un zip contenant db.sqlite et un dossier de fichiers" + :import/sqlite-and-assets-title "SQLite + fichiers (.zip)" + :import/submitted-edn-invalid "Les données EDN soumises sont invalides ! Veuillez corriger et réessayer." + :import/successful "Importation réussie !" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tags (insensible à la casse)" + :import/title "Importer" + :import/unexpected-error "Erreur inattendue : {1}" + :import/zip-import-error "Échec de l'importation Zip : {1}" + :import/zip-missing-db-sqlite "Le ZIP ne contient pas de db.sqlite" + + :journal/add-blocks-to-today-success "Blocs ajoutés aujourd'hui" + :journal/page-cant-convert-warning "Cette page n'est pas une page de journal." + :journal/parse-date-to-name-error "Échec de l'analyse du nom du journal" + + :journal.default-query/doing "EN COURS" + :journal.default-query/todo "À FAIRE" + + :keymap/all "Tous" + :keymap/already-bound "Raccourci déjà utilisé" + :keymap/also-used-for-action "Aussi utilisé pour {1}" + :keymap/also-used-for-action-in-context "Aussi utilisé pour {1} Dans le contexte {2}" + :keymap/clear "Effacer" + :keymap/clear-keystroke-filter "Effacer le filtre de touches" + :keymap/clear-search "Effacer la recherche" + :keymap/custom "Personnalisé" + :keymap/deactivates-chord "Désactive le raccourci" + :keymap/deactivates-chords "Désactive {1} combinaisons de raccourcis" + :keymap/disabled "Désactivé" + :keymap/esc-is-reserved "Échap est réservé" + :keymap/hint-cancel "Annuler" + :keymap/hint-close "Fermer" + :keymap/hint-reassign "Réassigner" + :keymap/hint-remove "Supprimer" + :keymap/keystroke-filter "Filtre de frappe" + :keymap/no-matching-shortcuts "Aucun raccourci correspondant" + :keymap/press-a-shortcut "Appuyez sur un raccourci" + :keymap/press-keys-to-filter "Appuyez sur des touches pour filtrer" + :keymap/reassign "Réassigner" + :keymap/reassign-tooltip "Réassigner le raccourci de cette action" + :keymap/reassigned-from "Réassigné depuis {1}" + :keymap/refresh-all "Tout actualiser" + :keymap/remove-binding "Supprimer le raccourci" + :keymap/remove-filter "Supprimer le filtre" + :keymap/reset "Réinitialiser" + :keymap/reset-to-default "Rétablir par défaut" + :keymap/search-by-keys "Rechercher par touches" + :keymap/search-placeholder "Rechercher des raccourcis…" + :keymap/shortcut-added "Raccourci ajouté" + :keymap/shortcut-removed "Raccourci supprimé" + :keymap/toggle-categories-pane "Basculer le panneau des catégories" + :keymap/undo "Annuler" + :keymap/unset "Effacer" + :keymap/used-by-action "Utilisé par {1}" + + :library/add-existing-pages "Ajouter des pages existantes à la bibliothèque" + :library/add-pages "Ajouter des pages" + :library/title "Bibliothèque" + + :mobile/camera-access-denied "L'accès à la caméra est refusé. Activez-le dans Paramètres > Logseq." + :mobile/microphone-access-denied "L'accès au microphone est refusé. Activez-le dans Paramètres > Logseq." + + :mobile.header/actions "Actions" + :mobile.header/create-graph "Créer un graphe" + :mobile.header/delete-block-confirm-desc "Voulez-vous vraiment supprimer ce bloc ?" + :mobile.header/delete-page-confirm-desc "Voulez-vous vraiment supprimer cette page ?" + + :mobile.intent/file-options "Options du fichier" + :mobile.intent/open-with-app "Ouvrir le fichier avec votre application préférée" + :mobile.intent/select-option-prompt "Sélectionnez une option à exécuter" + :mobile.intent/share "Partager" + + :mobile.log/all "Tous" + :mobile.log/errors-only "Erreurs uniquement" + :mobile.log/full "Complet" + :mobile.log/new-first "Plus récents d'abord" + :mobile.log/old-first "Plus anciens d'abord" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Compte" + :mobile.settings/check-log "Consulter le journal" + :mobile.settings/discord-community "Communauté Discord" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Signaler un bug" + :mobile.settings/revision "Révision" + :mobile.settings/theme "Thème" + :mobile.settings/version "Version" + + :mobile.share/file-import-error "Échec de l'importation du fichier partagé" + :mobile.share/media-import-error "Échec de l'importation du média partagé" + :mobile.share/unsupported-content-warning "L'analyse du contenu partagé actuel n'est pas prise en charge. Veuillez signaler les codes suivants sur {1}. Nous examinerons cela rapidement." + :mobile.share/unsupported-import-type "L'import de fichier {1} n'est pas pris en charge. Vous pouvez le signaler sur {2}. Nous examinerons cela rapidement." + + :mobile.tab/capture "Capturer" + :mobile.tab/go-to "Aller à" + :mobile.tab/graphs "Graphes" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Copier la réf." + :mobile.toolbar/copy-url "Copier l'URL" + :mobile.toolbar/hide "Masquer" + :mobile.toolbar/indent "Indenter" + :mobile.toolbar/outdent "Désindenter" + :mobile.toolbar/photo "Photo" + :mobile.toolbar/redo "Rétablir" + :mobile.toolbar/reference "Référence" + :mobile.toolbar/slash "Barre oblique" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Annuler" + :mobile.toolbar/unselect "Désélectionner" + + :nav/all-files "Tous les fichiers" + :nav/all-journals "Tous les journaux" + :nav/appearance "Apparence" + :nav/assets "Ressources" + :nav/cannot-go-to-internal-page "Impossible d'accéder à la page interne" + :nav/flashcards "Cartes-mémoire" + :nav/graph "Graphe" + :nav/graph-view "Vue graphe" + :nav/help "Aide" + :nav/home "Accueil" + :nav/invalid-jump-error "Saut invalide" + :nav/journals "Journaux" + :nav/plugins "Extensions" + :nav/search "Rechercher" + :nav/settings "Paramètres" + :nav/skip-to-main-content "Aller au contenu principal" + :nav/tasks "Tâches" + :nav/themes "Thèmes" + + :nav.all-pages/label "Toutes les pages" + :nav.all-pages/title "Toutes les pages" + + :node/built-in-cant-delete-error "Les éléments intégrés ne peuvent pas être supprimés." + :node/new "Nouveau nœud" + + :notification/clear-all "Tout effacer" + :notification/copied "Copié" + + :onboarding.import/desc "S'ils sont au format EDN ou Markdown, Logseq peut les importer." + :onboarding.import/sqlite-desc "Importer depuis une base SQLite" + :onboarding.import/title "Avez-vous déjà des notes à importer ?" + + :onboarding.import-option/desc "Vous pouvez aussi faire ça plus tard dans l'appli." + :onboarding.import-option/title "Importer les notes existantes" + + :onboarding.setup/desc "Vous devez d'abord choisir un dossier dans lequel Logseq stockera vos idées, pensées et notes." + :onboarding.setup/title (fn [] ["Bienvenue sur " [:strong "Logseq !"]]) + + :page/add-to-favorites "Ajouter aux Favoris" + :page/added-tag-to-node "Ajout de la balise \"{1}\" à \"{2}\"" + :page/backlinks "Rétro-lien" + :page/clear "Effacer" + :page/clear-local-storage-desc "Cela supprime des préférences mineures comme le choix du thème clair/sombre." + :page/cleared "Effacé" + :page/contents "Contenus" + :page/convert-to-tag "Convertir en tag" + :page/copy-url "Copier l'URL de la page" + :page/create "Créer une nouvelle page" + :page/created-at "Créée le" + :page/current-graph-as-sqlite-db "graphe actuel en tant que base de données SQLite" + :page/default-query-error "Échec de la requête par défaut :" + :page/delete "Supprimer la page (supprime le fichier)" + :page/go-back-home "Retour à l'accueil" + :page/hide-properties "Masquer les propriétés" + :page/local-storage "stockage local" + :page/logseq-is-having-a-problem "Logseq rencontre un problème. Pour essayer de le remettre en état de fonctionnement, veuillez suivre ces étapes sûres dans l'ordre :" + :page/make-private "Rendre la page privée" + :page/make-public "Rendre la page publique" + :page/moved-to-recycle "Le nœud a été déplacé vers la corbeille" + :page/name "Nom de la page" + :page/no-page-found-to-copy "Aucune page trouvée à copier" + :page/not-found "Page introuvable" + :page/not-found-desc "Oups ! La page que vous recherchez n'existe pas." + :page/not-found-title "Page introuvable" + :page/not-found-warning "Aucune page trouvée" + :page/open-all-graphs-desc "Vous pouvez aussi aller dans {{All graphs}} pour changer de graphe." + :page/open-issue-desc "Si ces étapes de dépannage n'ont pas résolu votre problème, veuillez {{open an issue}}." + :page/open-properties "Ouvrir les propriétés" + :page/rebuild "Reconstruire" + :page/relaunch "Relancer" + :page/relaunch-desc "Quitter et rouvrir l'application." + :page/scheduled-and-deadline "Planifié et Échéance" + :page/search-index "index de recherche" + :page/send-db-for-debugging "Vous pouvez l'envoyer à help@logseq.com pour le débogage." + :page/something-went-wrong "Quelque chose s'est mal passé" + :page/step "Étape {1}" + :page/the-app "l'application" + :page/try "Essayer" + :page/unfavorite "Retirer la page des favoris" + :page/unknown "Page inconnue" + :page/updated-at "Mise à jour le" + + :page.convert/block-parent-not-page "Impossible de convertir le bloc. Le parent n'est pas une page." + :page.convert/cant-be-block "La page \"{1}\" ne peut pas être convertie en bloc." + :page.convert/cant-be-block-has-children "La page \"{1}\" ne peut pas être convertie en bloc car elle a des enfants de page." + :page.convert/cant-be-block-move-first "La page \"{1}\" ne peut pas être convertie en bloc, veuillez d'abord la déplacer vers une autre page." + :page.convert/page-to-tag-action "Convertir \"{1}\" en tag" + :page.convert/page-to-tag-built-in "Les pages intégrées ne peuvent pas être des tags" + :page.convert/page-to-tag-duplicate "Une balise portant le nom \"{1}\" existe déjà." + :page.convert/page-to-tag-namespaced "Les pages avec espace de noms ne peuvent pas être des tags" + :page.convert/property-value-to-page "Impossible de convertir la valeur de propriété en page." + :page.convert/tag-to-page-action "Convertir le tag en page" + :page.convert/tag-to-page-built-in "Les tags intégrés ne peuvent pas être des pages" + :page.convert/tag-to-page-confirm-desc "Convertir un tag en page supprime également ses propriétés de tag ainsi que ce tag de tous les nœuds qui l'utilisent. Voulez-vous continuer ?" + :page.convert/tag-to-page-duplicate "Une page portant le nom « {1} » existe déjà." + :page.convert/tag-to-page-has-children "Le tag a des éléments enfants et ne peut pas être converti" + + :page.delete/batch-confirm-title "Etes-vous sûr de vouloir supprimer ces pages ? Les propriétés et les tags seront supprimés définitivement et les pages seront déplacées dans la Corbeille." + :page.delete/confirm-title "Etes-vous sûr de vouloir supprimer cette page ?" + :page.delete/permanent-confirm-title "Etes-vous sûr de vouloir supprimer définitivement cette page ?" + :page.delete/success "La page « {1} » a été supprimée avec succès !" + :page.delete/total "Total : {1}" + :page.delete/warning "Le contenu de ces pages a été supprimé mais n'a pas pu être supprimé : {1}. Voir la console javascript pour plus de détails." + + :page.validation/cant-set-built-in-tags "La nouvelle page ne peut pas définir de balises intégrées : {1}" + :page.validation/duplicate "Une autre page nommée \"{1}\" existe déjà pour les balises : {2}." + :page.validation/name-blank "Le nom de page ne peut pas être vide." + :page.validation/name-no-hash "Le nom de page ne peut pas contenir #" + :page.validation/name-no-slash "Le nom de page ne peut pas contenir /." + :page.validation/parents-must-be-pages "Les parents de pages doivent être des pages." + + :pdf/annotations-page "Page d'annotations" + :pdf/area-highlight-shortcut "Surbrillance de zone ({1})" + :pdf/auto-fit "Ajustement auto" + :pdf/auto-open-context-menu "Ouvrir automatiquement le menu contextuel pour les sélections" + :pdf/copy-ref "Copier la référence" + :pdf/copy-text "Copier le texte" + :pdf/corrupted-file-error "Erreur : {1}\nCe fichier .pdf est-il corrompu ?\nVeuillez vérifier avec un lecteur PDF externe." + :pdf/doc-metadata "Métadonnées du document" + :pdf/enter-to-search "Entrée pour rechercher" + :pdf/find-results "{1} sur {2} résultats (\"{3}\")" + :pdf/generic-error "Erreur : {1}\n{2}\nVeuillez vérifier la ressource du fichier PDF." + :pdf/highlight-mode "Mode surbrillance" + :pdf/highlights "Surbrillances" + :pdf/hl-block-colored "Étiquette colorée pour le bloc surligné" + :pdf/linked-ref "Références liées" + :pdf/load-highlights-file-error "Erreur : impossible de charger le fichier de surbrillance : « {1} ». \n{2}" + :pdf/missing-file-error "Erreur : {1}\n Est-ce le bon chemin ?" + :pdf/more-settings "Plus de paramètres" + :pdf/no-outlines "Aucun plan" + :pdf/not-found "Introuvable." + :pdf/open-in-app-window "Ouvrir dans la fenêtre de l'application" + :pdf/open-in-external-window "Ouvrir dans une fenêtre externe" + :pdf/outline "Plan" + :pdf/page-label "Page {1}" + :pdf/password-protected-desc "Ce document est protégé par un mot de passe. Veuillez entrer un mot de passe :" + :pdf/password-required "Mot de passe requis" + :pdf/search "Rechercher" + :pdf/search-placeholder "rechercher" + :pdf/toggle-dashed "Style de pointillés pour la zone de surlignage" + :pdf/viewer "visionneuse PDF" + :pdf/zoom-in "Zoom avant" + :pdf/zoom-out "Zoom arrière" + + :plugin/all "Toutes" + :plugin/auto-update-check "Vérifier automatiquement les mises à jour" + :plugin/auto-update-check-feedback "Vérification automatique des mises à jour: {1}!" + :plugin/check-all-updates "Vérifier toutes les mises à jour" + :plugin/check-update "Vérifier la mise à jour" + :plugin/checked "Vérifié" + :plugin/checking-for-updates "Vérification des mises à jour d'extensions" + :plugin/contribute "✨ Écrire et proposer une nouvelle extension" + :plugin/custom-js-alert "Fichier custom.js trouvé, est-il autorisé à s'exécuter ? (Si vous ne comprenez pas le contenu de ce fichier, il est recommandé de ne pas en autoriser l'exécution, car cela vous expose à des risques de sécurité)." + :plugin/date-added "Date d'ajout" + :plugin/delete-alert "Voulez-vous vraiment désinstaller l'extension [{1}] ?" + :plugin/disable-for-performance-feedback "Le plugin {1} est désactivé." + :plugin/disable-now "Désactiver maintenant" + :plugin/disabled "Désactivée" + :plugin/does-not-support-db "Ne prend pas en charge les graphes DB" + :plugin/downloads "Téléchargements" + :plugin/empty "Rien trouvé." + :plugin/enabled "Activée" + :plugin/existed-package "Package de plugin existant ({1})." + :plugin/fatal-error "Fatal: {1}" + :plugin/found-n-updates "{1} mise(s) à jour trouvée(s)" + :plugin/found-updates "Nouvelles mises à jours" + :plugin/install "Installer" + :plugin/install-error "Installation échouée : {1}\n{2}" + :plugin/installed "Installée" + :plugin/installed-plugin "Extension installée : {1}" + :plugin/installing "Installation en cours" + :plugin/invalid-github-repo-url "URL de dépôt GitHub invalide" + :plugin/invalid-package "Paquet invalide" + :plugin/invalid-plugins-edn "plugins.edn invalide" + :plugin/list-of-updates "Mises à jour de l'extension :" + :plugin/load-from-web-url "Charger depuis une URL web" + :plugin/load-plugin-indicator "Charger le plugin: {1}..." + :plugin/load-unpacked "Charger une extension décompressée" + :plugin/loading-indicator "CHARGEMENT" + :plugin/malformed-plugins-edn "plugins.edn malformé" + :plugin/marketplace "Boutique" + :plugin/new-registered "Nouvelle extension enregistrée" + :plugin/no-settings-schema "Pas de schéma de paramètres !" + :plugin/not-installed "Non installée" + :plugin/open-logseq-dir "Ouvrir" + :plugin/open-package "Ouvrir le paquet" + :plugin/open-preferences "Ouvrir les préférences" + :plugin/open-settings "Ouvrir les réglages" + :plugin/perf-tip "Ce plugin {1} met trop de temps à charger, affectant le temps de démarrage de l'application et pouvant empêcher le chargement d'autres plugins." + :plugin/popular "Populaire" + :plugin/proxy-check-success "Succès ! Statut {1} dans {2}ms." + :plugin/readme-empty-warning "Pas de contenu README" + :plugin/refresh-lists "Rafraîchir la liste" + :plugin/reload "Recharger" + :plugin/remote-error "Erreur distante : {1}" + :plugin/report-modal-desc "Si un plugin n'est pas disponible ou si vous pensez qu'il contient du code malveillant, veuillez envoyer un e-mail à {1}. Mentionnez le nom du plugin et l'URL de son référentiel GitHub. L'équipe Logseq répond généralement dans un délai d'un jour ouvrable." + :plugin/report-security "Signaler un problème de sécurité" + :plugin/restart "Redémarrer l'application" + :plugin/search-plugin "Chercher des extensions" + :plugin/security-warning "Les extensions peuvent accéder à vos graphes et à vos fichiers locaux, et envoyer des requêtes réseau. Elles peuvent aussi provoquer une corruption ou une perte de données. Nous travaillons sur des règles d'accès adaptées. En attendant, sauvegardez régulièrement vos graphes et n'installez que des extensions dont vous comprenez le code source." + :plugin/setting-not-handled "#Non géré# {1}" + :plugin/settings-schema-error "Erreur du schéma de paramètres !" + :plugin/stars "Étoiles" + :plugin/supports-db "Support BD" + :plugin/title "Titre ({1})" + :plugin/uninstall "Désinstaller" + :plugin/unpacked "Décompressée" + :plugin/unpacked-tips "Sélectionnez le dossier de l'extension" + :plugin/up-to-date "C'est à jour {1}" + :plugin/update "Mettre à jour" + :plugin/update-all-selected "Mettre à jour tous les éléments sélectionnés" + :plugin/update-all-success "Tout est à jour !" + :plugin/update-available "Mise à jour disponible" + :plugin/update-plugin "Mettre à jour l'extension : {1} - {2}" + :plugin/updates-downloading "Téléchargement des extensions" + :plugin/updating "Mise à jour en cours" + + :plugin.install-from-file/menu-title "Installer depuis plugins.edn" + :plugin.install-from-file/notice "Les extensions suivantes vont remplacer vos extensions :" + :plugin.install-from-file/success "Toutes les extensions sont installées !" + :plugin.install-from-file/title "Installer des extensions depuis plugins.edn" + + :plugin.install-from-web-url/effect-label "effet" + :plugin.install-from-web-url/repo-url-placeholder "URL du dépôt GitHub" + :plugin.install-from-web-url/supports-note "Les URL supportent à la fois les référentiels GitHub et les serveurs de développement local. (Exemples : {1}, {2})" + :plugin.install-from-web-url/theme-label "thème" + + :plugin.package-config/detach-desc "Le retirer ne fait que détacher le plugin de Logseq et laisse le dossier source intact." + :plugin.package-config/parse-error "Impossible d'analyser la configuration du paquet du plugin." + :plugin.package-config/remove-error "Impossible de supprimer le plugin corrompu." + :plugin.package-config/remove-external-success "Le plugin corrompu a été retiré de la liste des plugins." + :plugin.package-config/remove-installed-success "Plugin corrompu « {1} » supprimé." + + :plugin.proxy/direct "Direct" + :plugin.proxy/system "Système" + :plugin.proxy/test-url "URL de test" + :plugin.proxy/testing "Test en cours" + + :plugin.settings/edit-settings-json "Modifier settings.json" + :plugin.settings/exit-code-mode "Quitter le mode code" + :plugin.settings/title "Paramètres des extensions" + + :plugin.themes/default-desc "Thème par défaut de Logseq ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Thèmes ({1})" + :plugin.themes/light-and-dark "thèmes clairs & sombres" + + :profiler/input-fn-placeholder "saisir le nom de la fonction ici" + :profiler/unregister "Désenregistrer" + + :property/add-choice "Ajouter un choix" + :property/add-choices "Ajouter des choix" + :property/add-description "Ajouter une description" + :property/add-new "Ajouter une propriété" + :property/add-or-change "Ajouter ou modifier une propriété" + :property/available-choices "Choix disponibles" + :property/change-tooltip "Modifier {1}" + :property/checkbox-state-mapping "Correspondance d'état de case à cocher" + :property/children-count "Enfants ({1})" + :property/choices-count "{1} choix" + :property/choose-tag "Choisir un tag" + :property/choose-tags "Choisir des tags" + :property/clear-value "Effacer" + :property/configure "Configurer" + :property/convert-page-to-property "Convertir \"{1}\" en propriété" + :property/create-error "Échec de la création de la propriété." + :property/default-value "Valeur par défaut" + :property/delete-from-node "Supprimer du nœud" + :property/delete-from-node-confirm "Voulez-vous supprimer cette propriété du nœud ?" + :property/delete-from-tag "Supprimer du tag" + :property/delete-from-tag-confirm "Voulez-vous supprimer cette propriété du tag ?" + :property/description-placeholder "Saisir une description" + :property/drag-to-reorder "Glisser pour réordonner" + :property/existing-values "Valeurs existantes" + :property/go-to-this-property "Aller à la page de propriété" + :property/hidden-properties "Propriétés masquées" + :property/hide-by-default "Masquer par défaut" + :property/hide-choice-for-tag "Masquer le choix pour le tag" + :property/hide-empty-value "Masquer les valeurs vides" + :property/hide-for-tag "Cacher pour #{1}" + :property/hide-hidden-choices "Masquer les choix cachés" + :property/map-checked-to "Associer coché à" + :property/map-unchecked-to "Associer non coché à" + :property/more-settings "Plus de paramètres" + :property/multiple-values "Valeurs multiples" + :property/multiple-values-confirm "Activer les valeurs multiples ?" + :property/name "Nom" + :property/name-placeholder "Nom de la propriété" + :property/nodes-with-property "Nœuds avec propriété" + :property/overdue "En retard" + :property/private-built-in-not-usable "Propriété intégrée privée non utilisable" + :property/select-choice "Sélectionner un choix" + :property/select-property-placeholder "Sélectionner une propriété" + :property/select-type-placeholder "Sélectionner un type de propriété" + :property/self-reference "Auto-référence" + :property/set-default-choice "Définir le choix par défaut" + :property/set-default-value "Définir la valeur par défaut" + :property/set-icon "Définir l'icône" + :property/set-placeholder "Définir {1}" + :property/set-property "Définir la propriété" + :property/set-tags "Définir les étiquettes" + :property/set-value "Définir la valeur" + :property/show-as-checkbox-on-node "Afficher comme case à cocher sur le nœud" + :property/show-as-checkbox-on-tagged-nodes "Afficher comme case à cocher sur les nœuds tagués" + :property/show-hidden-choices "Afficher les choix cachés" + :property/skip-choosing-tag "Ignorer le choix du tag" + :property/specify-node-tags "Spécifier les tags du nœud" + :property/title-placeholder "Titre" + :property/type "Type" + :property/type-change-warning "Changer le type de propriété efface certaines configurations de la propriété." + :property/type-checkbox "Case à cocher" + :property/type-date "Date" + :property/type-datetime "Date/Heure" + :property/type-locked-help "Le type est verrouillé" + :property/type-node "Nœud" + :property/type-number "Nombre" + :property/type-text "Texte" + :property/type-url "URL" + :property/ui-position "Position UI" + :property/ui-position-block-below "Sous le bloc" + :property/ui-position-block-left "À gauche du bloc" + :property/ui-position-block-right "À droite du bloc" + :property/ui-position-properties "Propriétés" + :property/unset-property "Retirer la propriété" + :property/update-success "Mis à jour" + + :property.built-in/alias "Alias" + :property.built-in/asset "Fichier" + :property.built-in/asset-align "Alignement du fichier" + :property.built-in/asset-checksum "Somme de contrôle du fichier" + :property.built-in/asset-external-file-name "Nom du fichier externe" + :property.built-in/asset-external-url "URL externe" + :property.built-in/asset-height "Hauteur de l'image" + :property.built-in/asset-last-visit-page "Dernière page visitée" + :property.built-in/asset-remote-metadata "Métadonnées distantes du fichier" + :property.built-in/asset-resize-metadata "Métadonnées de redimensionnement" + :property.built-in/asset-size "Taille du fichier" + :property.built-in/asset-type "Type de fichier" + :property.built-in/asset-width "Largeur de l'image" + :property.built-in/background-color "Couleur d'arrière-plan" + :property.built-in/built-in "Intégré ?" + :property.built-in/checkbox-display-properties "Propriétés affichées comme case à cocher" + :property.built-in/choice-checkbox-state "État de la case à cocher du choix" + :property.built-in/choice-classes "Classes du choix" + :property.built-in/choice-exclusions "Exclusions du choix" + :property.built-in/class-bidirectional-property-title "Titre de la propriété bidirectionnelle" + :property.built-in/class-enable-bidirectional "Activer les propriétés bidirectionnelles" + :property.built-in/class-extends "Étend" + :property.built-in/class-hide-from-node "Masquer du nœud" + :property.built-in/class-properties "Propriétés du tag" + :property.built-in/classes "Classes de la propriété" + :property.built-in/closed-value-property "Propriété à valeur fermée" + :property.built-in/code-lang "Mode code" + :property.built-in/collapsed "Nœud replié ?" + :property.built-in/created-at "Nœud créé le" + :property.built-in/created-by-ref "Nœud créé par" + :property.built-in/created-from-property "Créé à partir de la propriété" + :property.built-in/deadline "Échéance" + :property.built-in/default-value "Valeur par défaut" + :property.built-in/deleted-at "Supprimé le" + :property.built-in/deleted-by-ref "Supprimé par" + :property.built-in/description "Description" + :property.built-in/enable-history "Activer l'historique de la propriété" + :property.built-in/exclude-from-graph-view "Exclu de la vue graphe ?" + :property.built-in/fsrs-due "Échéance" + :property.built-in/fsrs-state "État" + :property.built-in/heading "Titre" + :property.built-in/hide "Masquer cette propriété ou page" + :property.built-in/hide-empty-value "Masquer la valeur vide" + :property.built-in/history-block "Bloc d'historique" + :property.built-in/history-property "Propriété d'historique" + :property.built-in/history-ref-value "Valeur de référence d'historique" + :property.built-in/history-scalar-value "Valeur scalaire d'historique" + :property.built-in/icon "Icône" + :property.built-in/journal-day "Date du journal" + :property.built-in/journal-title-format "Format du titre" + :property.built-in/link "Le nœud pointe vers" + :property.built-in/linked-references-excludes "Références exclues" + :property.built-in/linked-references-includes "Références incluses" + :property.built-in/ls-type "Type LS" + :property.built-in/node-display-type "Type d'affichage du nœud" + :property.built-in/order "Ordre du nœud" + :property.built-in/order-list-type "Type de liste" + :property.built-in/page "Page du nœud" + :property.built-in/page-tags "Tags de page" + :property.built-in/parent "Parent du nœud" + :property.built-in/priority "Priorité" + :property.built-in/public "Propriété publique ?" + :property.built-in/publish-published-url "URL publiée" + :property.built-in/publishing-public "Publication publique ?" + :property.built-in/query "Requête" + :property.built-in/reaction-emoji-id "Emoji de réaction" + :property.built-in/reaction-target "Cible de la réaction" + :property.built-in/recycle-original-order "Ordre original de la corbeille" + :property.built-in/recycle-original-page "Page originale de la corbeille" + :property.built-in/recycle-original-parent "Parent original de la corbeille" + :property.built-in/refs "Références du nœud" + :property.built-in/repeat-checked-property "Propriété cochée de répétition" + :property.built-in/repeat-recur-frequency "Fréquence de récurrence" + :property.built-in/repeat-recur-unit "Unité de récurrence" + :property.built-in/repeat-repeated "Le nœud se répète ?" + :property.built-in/repeat-temporal-property "Propriété temporelle de répétition" + :property.built-in/scalar-default-value "Valeur par défaut non référencée" + :property.built-in/scheduled "Planifié" + :property.built-in/status "Statut" + :property.built-in/sync-large-title-object "Référence vers le titre de bloc volumineux stocké dans le stockage d'objets distant" + :property.built-in/table-filters "Filtres de la vue" + :property.built-in/table-hidden-columns "Colonnes masquées de la vue" + :property.built-in/table-ordered-columns "Colonnes ordonnées de la vue" + :property.built-in/table-pinned-columns "Colonnes épinglées de la vue tableau" + :property.built-in/table-sized-columns "Paramètres des colonnes de la vue" + :property.built-in/table-sorting "Tri de la vue" + :property.built-in/tags "Tags" + :property.built-in/template-applied-to "Appliquer le modèle aux tags" + :property.built-in/title "Titre du nœud" + :property.built-in/type "Type de propriété" + :property.built-in/ui-position "Position de la propriété" + :property.built-in/updated-at "Nœud mis à jour le" + :property.built-in/used-template "Modèle utilisé" + :property.built-in/user-avatar "Avatar de l'utilisateur" + :property.built-in/user-email "E-mail de l'utilisateur" + :property.built-in/user-name "Nom de l'utilisateur" + :property.built-in/value "Valeur de la propriété" + :property.built-in/view-context "Contexte de la vue de la propriété" + :property.built-in/view-feature-type "Type de fonctionnalité de la vue" + :property.built-in/view-for "Cette vue appartient à" + :property.built-in/view-group-by-property "Propriété de regroupement de la vue" + :property.built-in/view-sort-groups-by-property "Tri des groupes de la vue par" + :property.built-in/view-sort-groups-desc "Tri des groupes de la vue DESC" + :property.built-in/view-type "Type de vue" + + :property.choice/already-exists "Le choix existe déjà." + :property.choice/cant-delete-built-in "Le choix intégré ne peut pas être supprimé." + :property.choice/invalid "Choix \"{1}\" non valide pour cette propriété : {2}" + + :property.color/blue "bleu" + :property.color/green "vert" + :property.color/purple "violet" + :property.color/red "rouge" + :property.color/yellow "jaune" + + :property.priority/high "Haute" + :property.priority/low "Basse" + :property.priority/medium "Moyenne" + :property.priority/urgent "Urgente" + + :property.repeat/date "Date de répétition" + :property.repeat/datetime "Date et heure de répétition" + :property.repeat/every "Tous les" + :property.repeat/is-label "est :" + :property.repeat/task "Tâche récurrente" + :property.repeat/when "Quand" + + :property.repeat-recur-unit/day "Jour" + :property.repeat-recur-unit/hour "Heure" + :property.repeat-recur-unit/minute "Minute" + :property.repeat-recur-unit/month "Mois" + :property.repeat-recur-unit/week "Semaine" + :property.repeat-recur-unit/year "Année" + + :property.status/backlog "Backlog" + :property.status/canceled "Annulé" + :property.status/doing "En cours" + :property.status/done "Terminé" + :property.status/in-review "En revue" + :property.status/todo "À faire" + + :property.validation/cant-convert-to-number "Impossible de convertir \"{1}\" en nombre." + :property.validation/cant-remove-required "La propriété requise ne peut pas être supprimée." + :property.validation/cant-set-self-value "Impossible de se définir comme valeur de propriété." + :property.validation/duplicate "La propriété '{1}' existe déjà." + :property.validation/invalid-name "Il s'agit d'un nom de propriété non valide. Un nom de propriété ne peut pas commencer par les caractères de référence de page « # » ou « [[»." + :property.validation/invalid-value "La propriété \"{1}\" a une valeur non valide : {2}" + :property.validation/many-to-one "Impossible de convertir une propriété à valeurs multiples en valeur unique." + :property.validation/protected "Cette propriété est protégée et ne peut pas être modifiée." + + :property.view-type/gallery "Vue galerie" + :property.view-type/list "Vue liste" + :property.view-type/table "Vue tableau" + + :publish/action "Publier" + :publish/dialog-desc "Protégez éventuellement cette page avec un mot de passe. Laissez vide pour un accès public." + :publish/dialog-title "Publier la page" + :publish/invalid-page-error "Page invalide" + :publish/password-optional-placeholder "Mot de passe optionnel" + :publish/publish-error "Échec de la publication" + :publish/published-to "Publié sur {1}" + :publish/publishing "Publication..." + :publish/unpublish "Dépublier" + :publish/unpublish-error "Échec de la dépublication" + :publish/unpublish-missing-page-id "Dépublication : ID de page manquant" + :publish/unpublished "Dépublié" + + :query/advanced-results "Résultats de la requête avancée" + :query/custom-view-error "Erreur de vue personnalisée : {1}" + :query/error "Erreur de requête :" + :query/examples-desc "Consultez plus d'exemples sur {{Queries documentation}}." + :query/examples-title "Exemples de requêtes :" + :query/results-for "Résultats pour {1}" + + :query.builder/add-filter-or-operator-placeholder "Ajouter un filtre/opérateur" + :query.builder/between-end-label "Date de fin" + :query.builder/between-journal-label "entre : {1} ~ {2}" + :query.builder/between-start-label "Date de début" + :query.builder/created-label "Créé" + :query.builder/filter "Filtre" + :query.builder/filter-full-text-search-label "Recherche plein texte" + :query.builder/filter-page-label "Page" + :query.builder/filter-page-reference-label "Référence de page" + :query.builder/filter-sample-label "Échantillon" + :query.builder/operator-and-label "et" + :query.builder/operator-not-label "non" + :query.builder/replace-with-label "Remplacer par :" + :query.builder/search-label "Recherche : {1}" + :query.builder/show-built-in-properties "Afficher les propriétés intégrées" + :query.builder/unwrap-operator "Déballer" + :query.builder/updated-label "Mis à jour" + :query.builder/wrap-filter-with-label "Encapsuler ce filtre avec :" + + :reference/blocks "Référence des blocs" + :reference/copy "Copier cette référence" + :reference/delete "Supprimer cette référence" + :reference/page-filter "Filtre de page" + :reference/replace-with-embed "Remplacer avec une intégration" + :reference/replace-with-text "Remplacer avec du texte" + + :reference.filter/directions "Cliquer pour inclure et `Maj+clic` pour exclure. Cliquez à nouveau pour enlever." + :reference.filter/excludes "Exclut : " + :reference.filter/includes "Inclut : " + :reference.filter/search-placeholder "Rechercher dans les pages liées" + :reference.filter/title "Filtrer" + + :search/blank-input "Entrée vide" + :search/full-text-placeholder "Recherche en texte intégral" + :search/index-progress "Indexation {1} %" + :search/indices-rebuilt-success "Les indices de recherche ont été reconstruits avec succès !" + :search/no-result "Aucun résultat correspondant" + :search/result-count "{1} résultats" + + :search.find-in-page/input-placeholder "Rechercher dans la page" + :search.find-in-page/match-case "Respecter la casse" + :search.find-in-page/next-result "Résultat suivant" + :search.find-in-page/previous-result "Résultat précédent" + + :select/default-prompt "Sélectionnez" + :select/default-select-multiple "Choisir un ou plusieurs" + :select/new-option "+ Nouvelle option: {1}" + + :server/error-notification "[Serveur] {1}" + :server/mcp-url-copied "URL MCP copiée" + :server/start "Démarrer" + :server/stop "Arrêter" + :server/title "Serveur API HTTP" + + :server.config/auto-start-label "Démarrer automatiquement avec l'application" + :server.config/port-label "Plage de ports" + :server.config/reset "Réinitialiser" + :server.config/save-and-apply "Enregistrer et appliquer" + :server.config/title "Configurations du serveur" + + :server.status/closed "Fermé" + :server.status/closing "Fermeture" + :server.status/error "Erreur" + :server.status/running "En cours" + :server.status/starting "Démarrage" + :server.status/stopped "Arrêté" + + :server.token/add-new "Ajouter un nouveau token" + :server.token/name-placeholder "Nom du serveur" + :server.token/regenerate-value "Régénérer la valeur du token" + :server.token/title "Tokens d'autorisation" + :server.token/update-success "Tokens mis à jour" + :server.token/value-placeholder "Valeur" + + :settings/account "Compte" + :settings/advanced "Avancé" + :settings/ai "IA" + :settings/collaboration "Collaboration" + :settings/editor "Éditeur" + :settings/encryption "Chiffrement" + :settings/features "Fonctionnalités" + :settings/general "Général" + :settings/keymap "Raccourcis" + :settings/plugins "Paramètres des extensions" + + :settings.account/storage-usage "{1}Go sur {2}Go de stockage total ({3})" + :settings.account/synced-graphs "{1} sur {2} graphiques synchronisés ({3})" + + :settings.advanced/auto-chmod "Automatiquement changer les permissions du fichier" + :settings.advanced/auto-chmod-desc "Désactiver pour permettre l'édition par plusieurs utilisateurs avec les permissions données par l'appartenance au groupe." + :settings.advanced/auto-updater "Mises à jour automatiques" + :settings.advanced/developer-mode "Le mode développeur" + :settings.advanced/developer-mode-desc "Le mode développeur aide les contributeurs et les développeurs d'extension à tester leur intégration avec Logseq." + :settings.advanced/disable-sentry "Envoyer des données d'utilisation et de diagnostic à Logseq" + :settings.advanced/disable-sentry-desc "Logseq ne collectera jamais votre base de données de graphes locale ni ne vendra vos données." + :settings.advanced/network-proxy "Proxy réseau" + + :settings.ai/enable-mcp-server "Activer le serveur MCP" + :settings.ai/enable-mcp-server-desc "Activer le serveur MCP pour l'intégration IA" + + :settings.editor/auto-expand-block-refs "Étendre automatiquement les références de bloc lors du zoom" + :settings.editor/auto-expand-block-refs-tip "Cette option contrôle si les références de bloc sont développées automatiquement lors du zoom." + :settings.editor/custom-date-format "Format de date préféré" + :settings.editor/enable-all-pages-public "Toutes les pages publiques lors de la publication" + :settings.editor/enable-shortcut-tooltip "Activer les astuces sur les raccourcis" + :settings.editor/enable-tooltip "Astuces" + :settings.editor/preferred-outdenting "Mise en retrait logique" + :settings.editor/preferred-outdenting-tip "La partie gauche montre la désindentation avec le réglage par défaut, et la partie droite avec la désindentation logique activée." + :settings.editor/preferred-outdenting-tip-more "→ Apprenez-en plus" + :settings.editor/preferred-pasting-file "Fichier de préférence pour le collage" + :settings.editor/preferred-pasting-file-hint "Lorsqu'elle est activée, coller une image depuis Internet la téléchargera et l'insérera. Sinon, seul son lien sera collé." + :settings.editor/show-brackets "Montrer les parenthèses, crochets et accolades" + :settings.editor/show-full-blocks "Montrer toutes les lignes d'une référence de bloc" + :settings.editor/spell-checker "Vérification orthographique" + :settings.editor/wide-mode "Mode large" + + :settings.features/enable-flashcards "Cartes mémoire" + :settings.features/enable-journals "Journaux" + :settings.features/home-default-page "Régler la page d'accueil par défaut" + :settings.features/home-default-page-update-success "Page d'accueil par défaut mise à jour" + :settings.features/journals-enable-success "Journaux activés" + :settings.features/login-prompt "Pour accéder aux nouvelles fonctionnalités avant tout le monde, vous devez être sponsor ou \"backer\" (contributeur) sur Open Collective, puis vous connecter." + :settings.features/page-not-found "La page « {1} » n'existe pas encore. Veuillez d'abord créer cette page, puis réessayer." + :settings.features/plugin-system "Extensions" + + :settings.general/accent-color "Couleur d'accentuation" + :settings.general/accent-color-alert "Alerte de couleur d'accentuation" + :settings.general/accent-color-logseq "Couleur classique de Logseq" + :settings.general/accent-color-none-desc "Annuler la couleur d'accentuation. Cette fonction est actuellement en version bêta et est principalement utilisée pour la compatibilité avec les thèmes personnalisés." + :settings.general/changelog "Quoi de neuf ?" + :settings.general/check-for-updates "Vérifier les mises à jour" + :settings.general/current-revision-label "Révision actuelle" + :settings.general/current-version "Version actuelle" + :settings.general/custom-configuration "Configuration personnalisée" + :settings.general/custom-global-configuration "Configuration globale personnalisée" + :settings.general/custom-theme "Thème personnalisé" + :settings.general/edit-config-edn "Modifier config.edn (pour le dépôt actuel)" + :settings.general/edit-custom-css "Modifier custom.css" + :settings.general/edit-export-css "Modifier export.css" + :settings.general/edit-global-config-edn "Modifier le fichier global config.edn" + :settings.general/editor-font "Police de l'éditeur" + :settings.general/editor-font-set-global "Définir comme police globale" + :settings.general/export-theme "Exporter le thème" + :settings.general/language "Langue" + :settings.general/native-titlebar "Barre de titre native" + :settings.general/native-titlebar-desc "Active la barre de titre native de la fenêtre sous Windows et Linux." + :settings.general/refresh-required-feedback "Actualisation requise" + :settings.general/release-channel "canal de publication" + :settings.general/revision "Révision : {1}" + :settings.general/theme-dark "Foncé" + :settings.general/theme-light "Clair" + :settings.general/theme-system "système" + + :settings.sync-server/clear-success "L'URL du serveur de synchronisation a été effacée. Logseq Sync officiel sera utilisé." + :settings.sync-server/reset "Rétablir par défaut" + :settings.sync-server/save-success "L'URL du serveur de synchronisation a été enregistrée." + :settings.sync-server/url "URL du serveur de synchronisation" + :settings.sync-server/url-desc "Définissez une URL HTTPS personnalisée pour un serveur de synchronisation auto-hébergé. Vos jetons d'authentification Logseq seront envoyés à ce serveur, utilisez donc uniquement une URL de confiance. Laissez vide pour utiliser Logseq Sync officiel." + :settings.sync-server/url-invalid-error "L'URL doit commencer par https:// ou http://" + + :shell/input-command-title "Entrer la commande" + + :shortcut.category/basics "Bases" + :shortcut.category/block-command-editing "Édition de commande de bloc" + :shortcut.category/block-editing "Édition de bloc en général" + :shortcut.category/block-selection "Sélection de bloc (appuyer sur Esc pour quitter la sélection)" + :shortcut.category/formatting "Formats" + :shortcut.category/navigating "Navigation" + :shortcut.category/others "Autres" + :shortcut.category/plugins "Extensions" + :shortcut.category/toggle "Basculer" + + :sidebar.left/favorites "Favoris" + :sidebar.left/navigations "Navigations" + :sidebar.left/recent-pages "Récentes" + + :sidebar.right/close "Fermer" + :sidebar.right/close-all "Tout fermer" + :sidebar.right/close-others "Fermer les autres" + :sidebar.right/collapse "Réduire" + :sidebar.right/collapse-all "Tout réduire" + :sidebar.right/collapse-others "Réduire les autres" + :sidebar.right/expand "Étendre" + :sidebar.right/expand-all "Tout étendre" + :sidebar.right/more "Plus" + :sidebar.right/open "Ouvrir dans la barre latérale" + :sidebar.right/open-as-page "Ouvrir comme une page" + :sidebar.right/resize-handle "Poignée de redimensionnement de la barre latérale droite" + :sidebar.right/toggle "Activer le panneau latéral droit" + + :storage/invalid-data-writing "Écriture de données invalide." + :storage/sqlitedb-error "Erreur SQLiteDB : {1}" + :storage/sqlitedb-import-error "Erreur d'importation SQLiteDB : {1}" + :storage/sqlitedb-save-error "Erreur de sauvegarde SQLiteDB : {1}" + + :storage.recycle/block-deleted-at "Bloc supprimé {1}" + :storage.recycle/empty "La corbeille est vide." + :storage.recycle/page-deleted-at "Page supprimée {1}" + :storage.recycle/readonly "Corbeille (lecture seule)" + :storage.recycle/restore "Restaurer" + :storage.recycle/retention-desc "Les pages et blocs supprimés restent ici jusqu'à leur restauration ou leur suppression automatique après 30 jours." + :storage.recycle/title "Corbeille" + + :sync/assets-downloading-count "Téléchargement des fichiers ({1})" + :sync/assets-uploading-count "Envoi des fichiers ({1})" + :sync/creating-remote-graph "Création du graphe distant..." + :sync/downloading "Téléchargement..." + :sync/downloading-graph "Téléchargement de {1} ..." + :sync/graph-count-exceed-limit "Le nombre de graphes dépasse la limite" + :sync/invitation-sent "Invitation envoyée" + :sync/last-synced-time-label "Dernière synchronisation : {1}" + :sync/more-debug-info "Plus d'infos de débogage" + :sync/offline "Hors ligne" + :sync/online "En ligne" + :sync/pending-local-changes "modifications locales en attente" + :sync/pending-server-changes "modifications du serveur en attente" + :sync/something-wrong "Erreur de synchronisation" + :sync/start-sync "Démarrer la synchronisation" + :sync/storage-exceed-limit "Le stockage dépasse la limite" + :sync/uploading "Envoi..." + :sync/user-doesnt-exist-yet "L'utilisateur n'existe pas encore" + + :theme/logseq-default "Thème par défaut de Logseq" + :theme/switch-to "Basculer sur le thème {1}" + + :ui/all-done "Tout est complété !" + :ui/apply "Appliquer" + :ui/cancel "Annuler" + :ui/close "Fermer" + :ui/configure "Configurer" + :ui/confirm "Confirmer" + :ui/copy "Copier" + :ui/copy-all "Tout copier" + :ui/copy-to-clipboard "Copier dans le presse-papiers" + :ui/create "Créer" + :ui/date-natural-language-placeholder "ex. La semaine prochaine" + :ui/delete "Supprimer" + :ui/deleted "Supprimé" + :ui/dont-remind-me-again "Ne plus me le rappeler" + :ui/empty "Vide" + :ui/error "Erreur" + :ui/error-boundary-error "Erreur interceptée par l'interface !\n {1}" + :ui/export "Exporter" + :ui/false "Faux" + :ui/fix "Corriger!" + :ui/frequently-used "Fréquemment utilisés" + :ui/from "De: " + :ui/host "Hôte" + :ui/image "image" + :ui/label "Libellé" + :ui/link "Lien" + :ui/load-more "Charger plus" + :ui/loading "Chargement" + :ui/login "Connexion" + :ui/logout "Déconnexion" + :ui/off "DÉSACTIVÉ" + :ui/on "ACTIVÉ" + :ui/open "Ouvrir" + :ui/open-named "Ouvrir {1}" + :ui/port "Port" + :ui/refresh "Actualiser" + :ui/relaunch-confirm "Cette modification nécessite de redémarrer l'application. Redémarrer maintenant ?" + :ui/remove-background "Supprimer l'arrière-plan" + :ui/reset "Réinitialiser" + :ui/run "Exécuter" + :ui/save "Enregistrer" + :ui/show-less "Afficher moins" + :ui/show-more "Afficher plus" + :ui/skip "Ignorer" + :ui/submit "Soumettre" + :ui/to "À: " + :ui/toggle-theme "Changer de thème" + :ui/true "Vrai" + :ui/type "Type" + :ui/untitled "Sans titre" + :ui/use-current-time "Utiliser l'heure actuelle" + :ui/yes "Oui" + + :updater/checking-for-updates "Recherche de mises à jour" + :updater/downloading-progress "Téléchargement de la mise à jour ({1} %)" + :updater/quit-and-install "Redémarrer et installer" + :updater/up-to-date "Votre appli est à jour 🎉" + :updater/update-available "Mise à jour disponible" + :updater/update-error "⚠️ Oups, quelque chose s'est mal passé !\nVérifiez le {1}." + :updater/update-ready-to-install "La mise à jour est prête à être installée" + + :view/add-new-view "Ajouter une nouvelle vue" + :view/all "Tous" + :view/export-edn "Exporter en EDN" + :view/linked-references "Références liées" + :view/new "Nouveau" + :view/new-property "Nouvelle propriété" + :view/new-view "Nouvelle vue" + :view/rename "Renommer" + :view/results "Résultats :" + :view/unlinked-references "Références non liées" + + :view.filter/custom-date "Date personnalisée" + :view.filter/empty "Vide" + :view.filter/filter "Filtre" + :view.filter/from "De" + :view.filter/is-empty "Est vide" + :view.filter/is-not-empty "N'est pas vide" + :view.filter/match "Correspondance" + :view.filter/match-all-filters "Correspondre à tous les filtres" + :view.filter/match-any-filter "Correspondre à au moins un filtre" + :view.filter/operator-after "Après" + :view.filter/operator-before "Avant" + :view.filter/operator-between "Entre" + :view.filter/operator-date-after "Date après" + :view.filter/operator-date-before "Date avant" + :view.filter/operator-is "Est" + :view.filter/operator-is-not "N'est pas" + :view.filter/operator-text-contains "Le texte contient" + :view.filter/operator-text-not-contains "Le texte ne contient pas" + :view.filter/or "Ou" + :view.filter/relative-1-day-ago "Il y a 1 jour" + :view.filter/relative-1-month-ago "Il y a 1 mois" + :view.filter/relative-1-week-ago "Il y a 1 semaine" + :view.filter/relative-1-year-ago "Il y a 1 an" + :view.filter/relative-3-days-ago "Il y a 3 jours" + :view.filter/relative-3-months-ago "Il y a 3 mois" + :view.filter/to "À" + :view.filter/type-to-search "Saisir pour rechercher" + + :view.table/ascending "Croissant" + :view.table/columns-visibility "Visibilité des colonnes" + :view.table/default-title "{1} nœuds" + :view.table/delete-sort "Supprimer le tri" + :view.table/descending "Décroissant" + :view.table/drag-to-reorder "Glisser pour réordonner" + :view.table/group-by "Grouper par" + :view.table/group-journal-date "Date du journal" + :view.table/group-page-created-date "Date de création de la page" + :view.table/group-page-name "Nom de la page" + :view.table/group-page-updated-date "Date de mise à jour de la page" + :view.table/live-query-title "Requête en direct ({1})" + :view.table/name-column "Nom" + :view.table/no-group-value "Aucun {1}" + :view.table/page "Page" + :view.table/pages "Pages" + :view.table/pin "Épingler" + :view.table/row-number "Numéro de ligne" + :view.table/select-all "Tout sélectionner" + :view.table/select-column "Sélectionner la colonne" + :view.table/select-order "Sélectionner l'ordre" + :view.table/select-row "Sélectionner la ligne" + :view.table/selected-count "Sélection : {1}" + :view.table/sort-ascending "Croissant" + :view.table/sort-descending "Décroissant" + :view.table/sort-groups-by "Trier les groupes par" + :view.table/sort-groups-order "Ordre de tri des groupes" + :view.table/total-refs-count "Total des références" + :view.table/unpin "Désépingler" + + :window/close "Fermer" + :window/exit-fullscreen "Quitter le mode plein écran" + :window/maximize "Agrandir" + :window/minimize "Réduire" + :window/restore "Restorer" + + :youtube/embed-first-reminder-mobile "Veuillez d'abord intégrer une vidéo YouTube, puis utilisez cette icône.\nRappelez-vous : vous pouvez coller une URL YouTube brute comme vidéo intégrée sur mobile." + :youtube/player-not-ready "Le lecteur YouTube n'est pas encore prêt." + :youtube/timestamps-not-available-mobile "Les horodatages YouTube ne sont pas encore disponibles sur mobile." + + :zotero/attachments "Pièces jointes" + :zotero/imported-file-warning "Ceci est un fichier importé de Zotero, définissez répertoire de données Zotero pour ouvrir le fichier dans Logseq." + :zotero/linked-file-warning "Ceci est un fichier lié de Zotero, définissez répertoire de base des pièces jointes liées de Zotero pour ouvrir le fichier dans Logseq." + :zotero/notes "Notes" +} diff --git a/src/resources/dicts/id.edn b/src/resources/dicts/id.edn index 34d192ac22..123d78908d 100644 --- a/src/resources/dicts/id.edn +++ b/src/resources/dicts/id.edn @@ -1,360 +1,262 @@ -{:accessibility/skip-to-main-content "Lompat ke konten utama" - :on-boarding/importing-main-title "Mengimpor catatan yang ada" - :on-boarding/importing-main-desc "Anda juga dapat melakukan ini nanti di aplikasi." - :on-boarding/importing-title "Apakah Anda sudah memiliki catatan yang ingin Anda impor?" - :on-boarding/importing-desc "Jika ia dalam format EDN atau Markdown, Logseq dapat bekerja dengannya." - :on-boarding/main-title (fn [] ["Selamat datang di " [:strong "Logseq!"]]) - :on-boarding/main-desc "Pertama, Anda harus memilih folder di mana Logseq akan menyimpan pemikiran, ide, catatan Anda." - :bug-report/main-title "Laporan bug" - :bug-report/clipboard-inspector-title "Pemeriksa data papan klip" - :bug-report/main-desc "Dapatkah Anda membantu kami dengan mengirimkan laporan bug? Kami akan menyelesaikannya sesegera mungkin." - :bug-report/section-clipboard-title "Apakah bug yang Anda temui terkait dengan fitur-fitur ini?" - :bug-report/section-clipboard-desc "Anda dapat menggunakan alat bantu praktis ini untuk memberikan informasi tambahan kepada kami." - :bug-report/section-clipboard-btn-title "Pembantu papan klip" - :bug-report/section-clipboard-btn-desc "Memeriksa dan mengumpulkan data papan klip" - :bug-report/section-issues-title "Atau..." - :bug-report/section-issues-desc "Jika tidak ada alat bantu yang tersedia bagi Anda untuk mengumpulkan informasi tambahan, silakan laporkan bug secara langsung." - :bug-report/section-issues-btn-title "Mengirimkan laporan bug" - :bug-report/section-issues-btn-desc "Bantu Jadikan Logseq Lebih Baik!" - :bug-report/inspector-page-desc-1 "Tekan Ctrl+V / ⌘+V untuk memeriksa data papan klip Anda" - :bug-report/inspector-page-desc-2 "atau klik di sini untuk menempelkan jika Anda menggunakan versi seluler" - :bug-report/inspector-page-placeholder "Tekan lama di sini untuk menempelkan jika Anda menggunakan ponsel" - :bug-report/inspector-page-tip "Ada yang salah? Tidak masalah, klik untuk kembali ke langkah sebelumnya." - :bug-report/inspector-page-btn-back "Kembali" - :bug-report/inspector-page-btn-copy "Salin hasilnya" - :bug-report/inspector-page-copy-notif "Disalin ke papan klip!" - :bug-report/inspector-page-btn-create-issue "Buat masalah" - :bug-report/inspector-page-desc-clipboard "Berikut ini adalah data yang dibaca dari clipboard." - :bug-report/inspector-page-desc-copy "Jika ini boleh dibagikan, klik tombol salin." - :bug-report/inspector-page-desc-create-issue "Sekarang Anda dapat melaporkan hasil yang ditempelkan ke clipboard Anda. Silakan tempelkan hasilnya di bagian 'Konteks Tambahan' dan sebutkan dari mana Anda menyalin konten asli. Terima kasih!" - :help/title-usage "Penggunaan" - :help/title-community "Komunitas" - :help/title-development "Pengembangan" - :help/title-about "Tentang" - :help/title-terms "Ketentuan" - :help/start "Memulai" - :help/about "Tentang Logseq" - :help/roadmap "Peta jalan" - :help/bug "Laporan bug" - :help/feature "Permintaan fitur" - :help/changelog "Catatan perubahan" - :help/blog "Blog Logseq" - :help/docs "Dokumentasi" - :help/privacy "Kebijakan privasi" - :help/terms "Ketentuan" - :help/forum-community "Komunitas forum" - :help/awesome-logseq "Logseq yang mengagumkan" - :help/shortcuts "Pintasan keyboard" - :help/shortcuts-triggers "Pemicu" - :help/shortcut "Pintasan" - :help/slash-autocomplete "Pelengkapan otomatis garis miring" - :help/reference-autocomplete "Pelengkapan otomatis referensi halaman" - :help/block-reference "Blok referensi" - :help/open-link-in-sidebar "Buka tautan di bilah sisi" - :search-item/page "Halaman" - :search-item/no-result "Tidak ada hasil yang cocok" - :help/context-menu "Blokir menu konteks" - :help/markdown-syntax "Sintaks penurunan harga" - :bold "Cetak tebal" - :italics "Cetak miring" - :highlight "Sorot" - :strikethrough "Dicoret" - :code "Kode" - :untitled "Tanpa judul" - :right-side-bar/help "Bantuan" - :right-side-bar/switch-theme "Mode tema" - :right-side-bar/contents "Konten" - :right-side-bar/page-graph "Grafik halaman" - :right-side-bar/block-ref "Referensi blok" - :right-side-bar/graph-view "Tampilan grafik" - :right-side-bar/flashcards "Kartu flash" - :right-side-bar/show-journals "Tampilkan Jurnal" - :right-side-bar/separator "Pengatur ukuran bilah sisi kanan" - :right-side-bar/toggle-right-sidebar "Beralih ke bilah sisi kanan" - :right-side-bar/pane-close "Tutup" - :right-side-bar/pane-close-others "Tutup yang lain" - :right-side-bar/pane-close-all "Tutup semua" - :right-side-bar/pane-collapse "Menciutkan" - :right-side-bar/pane-collapse-others "Menciutkan yang lain" - :right-side-bar/pane-collapse-all "Tutup semua" - :right-side-bar/pane-expand "Memperluas" - :right-side-bar/pane-expand-all "Perluas semua" - :right-side-bar/pane-open-as-page "Buka sebagai halaman" - :right-side-bar/pane-more "Lebih banyak" - :left-side-bar/switch "Beralih ke:" - :left-side-bar/journals "Jurnal" - :left-side-bar/nav-favorites "Favorit" - :left-side-bar/nav-recent-pages "Halaman terbaru" - :page/something-went-wrong "Ada masalah" - :page/logseq-is-having-a-problem "Logseq mengalami masalah. Untuk mencoba mengembalikannya ke keadaan yang berfungsi, silakan coba langkah-langkah aman berikut ini secara berurutan:" - :page/step "Langkah {1}" - :page/try "Coba" - :page/make-public "Buat publik untuk dipublikasikan" - :page/make-private "Buat pribadi" - :page/delete "Hapus halaman" - :page/add-to-favorites "Tambahkan ke Favorit" - :page/unfavorite "Hapus dari Favorit" - :block/name "Nama Halaman" - :page/copy-page-url "Salin URL halaman" - :file/name "Nama berkas" - :file/last-modified-at "Terakhir diubah pada" - :file/no-data "Tidak ada data" - :file/format-not-supported "Format .{1} tidak didukung." - :page/created-at "Dibuat pada" - :page/updated-at "Diperbarui pada" - :page/backlinks "Tautan balik" - :linked-references/filter-search "Cari di halaman terhubung" - :editor/block-search "Cari blok" - :text/image "Gambar" - :asset/show-in-folder "Tampilkan gambar di folder" - :asset/open-in-browser "Buka gambar di peramban" - :asset/delete "Hapus gambar" +{ + :account/authentication "Autentikasi" + :account/benefits-desc "Dengan akun Logseq, Anda dapat mengakses layanan berbasis cloud seperti Logseq Sync dan fitur alpha/beta." + :account/billing "Tagihan" + :account/billing-expired-on-label "Paket Pro kedaluwarsa pada: {1}" + :account/billing-expires-on-label "Paket Pro kedaluwarsa pada: {1}" + :account/billing-next-date-label "Tanggal tagihan berikutnya: {1}" + :account/core-features "Akses ke fitur inti Logseq" + :account/current-plan "Paket saat ini" + :account/delete-account "Hapus Akun" + :account/discover-sync-desc "Temukan kehebatan {1}" + :account/early-access-alpha-beta "Akses awal ke fitur alpha/beta" + :account/first-name "Nama depan" + :account/free-plan-sync-limit "1 graf tersinkronisasi (hingga 50MB, catatan saja)" + :account/last-name "Nama belakang" + :account/manage-plan "Kelola paket" + :account/month "bulan" + :account/no-asset-syncing "Tidak ada sinkronisasi aset" + :account/open-invoices "Buka faktur" + :account/plan-free "Gratis" + :account/plan-free-summary "Mulai dengan sinkronisasi dasar" + :account/plan-pro "Pro" + :account/plan-pro-summary "Buka sinkronisasi lanjutan dan lainnya" + :account/pro-plan-sync-limit "10 graf tersinkronisasi (hingga 5GB per graf)" + :account/profile "Profil" + :account/refresh-token-warning "Pembaruan token: status tidak biasa" + :account/reset-password "Atur ulang kata sandi" + :account/sign-up "Daftar" + :account/sync-assets-limit "Sinkronisasi aset hingga 100MB per file" + :account/synced-status "Tersinkronisasi" + :account/unlimited-unsynced-graphs "Graf tidak tersinkronisasi tanpa batas" + :account/upcoming-cloud-features "Fitur berbasis cloud yang akan datang, termasuk Logseq Publish" + :account/upgrade-plan "Tingkatkan paket" + :account/username "Nama pengguna" + + :asset/acceptable-file-extensions "Ekstensi file yang diterima" + :asset/add-assets "Tambah aset" + :asset/add-directory "Tambah direktori" + :asset/alias-already-exists "Nama alias \"{1}\" sudah ada!" + :asset/alias-directories "Direktori alias" + :asset/alias-directory-path-label "Jalur direktori:" + :asset/alias-name-dialog-title "Apa nama alias untuk direktori yang dipilih ini?" + :asset/alias-name-label "Nama alias:" + :asset/alias-name-placeholder "mis. Buku" + :asset/align "Perataan" + :asset/align-center "Tengah" + :asset/align-left "Kiri" + :asset/align-right "Kanan" + :asset/already-exists "Aset sudah ada, judul: {1}, referensi simpul: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Tidak dapat menyematkan induk sebagai propertinya sendiri" + :asset/confirm-delete-image "Apakah Anda yakin ingin menghapus gambar ini?" :asset/copy "Salin gambar" + :asset/copy-image-unsupported-extension "Menyalin gambar tidak didukung untuk file {1}" + :asset/create-local-copy-warning "Membuat aset lokal dari aset eksternal. Anotasi PDF memerlukan aset lokal agar berfungsi dengan baik." + :asset/create-title "Buat aset" + :asset/delete "Hapus gambar" + :asset/downloading "Mengunduh" + :asset/drop-hint "Seret dan lepas file di sini, atau klik untuk memilih file" + :asset/edit-title "Edit aset" + :asset/external-url-label "URL eksternal aset:" + :asset/file-extension-placeholder "mis. mp3" :asset/maximize "Perbesar gambar" - :asset/confirm-delete "Apakah Anda yakin ingin menghapus {1} ini?" + :asset/open-in-browser "Buka gambar di peramban" :asset/physical-delete "Hapus juga berkasnya (perhatikan bahwa ini tidak dapat dikembalikan)" - :color/gray "Abu-abu" - :color/red "Merah" - :color/yellow "Kuning" - :color/green "Hijau" + :asset/ref-block "Blok referensi" + :asset/select-file "Pilih File Aset" + :asset/select-from-disk "Pilih dari disk" + :asset/selected-directories "Direktori yang dipilih:" + :asset/show-file-in-folder "Tampilkan file di folder" + :asset/size-too-large "Berkas terlalu besar" + :asset/syncing "Menyinkronkan" + :asset/title-label "Judul aset:" + :asset/transfer-placeholder "{1} aset..." + :asset/uploading "Mengunggah" + + :block/click-to-fix-query "Klik untuk memperbaiki kueri: {1}" + :block/copy-ref "Salin referensi blok" + :block/copy-url "Salin URL blok" + :block/created-label "Dibuat: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' sudah tidak digunakan. Gunakan perintah '/Math block' sebagai gantinya." + :block/deprecated-query-syntax "#+BEGIN_QUERY sudah tidak digunakan. Gunakan perintah '/Advanced Query' sebagai gantinya." + :block/deprecated-quote "#+BEGIN_QUOTE sudah tidak digunakan. Gunakan perintah '/Quote' sebagai gantinya." + :block/empty-url "URL kosong" + :block/excalidraw-no-longer-supported "Excalidraw tidak lagi didukung secara bawaan, kami berencana mendukungnya melalui plugin." + :block/extraction-error "Kesalahan ekstraksi blok" + :block/hide-query "Sembunyikan kueri" + :block/invalid-hiccup "Hiccup tidak valid" + :block/invalid-link "Tautan tidak valid" + :block/invalid-url "URL tidak valid" + :block/large-block-warning "Blok besar tidak akan dapat diedit atau dicari agar tidak memperlambat aplikasi, silakan gunakan editor lain untuk mengedit blok ini." + :block/last-edited-label "Terakhir diedit: {1}" + :block/not-found-warning "Blok tidak ditemukan" + :block/open-block-references "Buka referensi blok" + :block/practice "Latihan" + :block/practice-cards "Latihan kartu" + :block/ref-nesting-too-deep "Referensi blok terlalu dalam" + :block/remove-tag "Hapus tag" + :block/remove-this-tag "Hapus tag ini" + :block/render-error "Kesalahan Render Blok:" + :block/set-query "Atur kueri" + :block/set-query-label "Atur kueri:" + :block/sort-order "Urutan sortir" + :block/status-history "Riwayat status" + :block/untitled-query "Kueri tanpa judul" + + :block.macro/embed-deprecated "{{embed}} tidak lagi digunakan. Gunakan perintah '/Node embed' sebagai gantinya." + :block.macro/namespace-deprecated "{{namespace}} tidak lagi digunakan. Gunakan fitur {1} sebagai gantinya." + :block.macro/query-deprecated "{{query}} tidak lagi digunakan. Gunakan perintah '/Query' sebagai gantinya." + :block.macro/unsupported-name "Nama makro tidak didukung: {1}" + + :block.reaction/emoji-required-warning "Emoji diperlukan" + :block.reaction/unsupported-emoji-warning "Emoji reaksi tidak didukung" + + :bug-report/desc "Dapatkah Anda membantu kami dengan mengirimkan laporan bug? Kami akan menyelesaikannya sesegera mungkin." + :bug-report/title "Laporan bug" + + :bug-report.clipboard/action-desc "Memeriksa dan mengumpulkan data papan klip" + :bug-report.clipboard/action-title "Pembantu papan klip" + :bug-report.clipboard/desc "Anda dapat menggunakan alat bantu praktis ini untuk memberikan informasi tambahan kepada kami." + :bug-report.clipboard/title "Apakah bug yang Anda temui terkait dengan fitur-fitur ini?" + + :bug-report.inspector/back "Kembali" + :bug-report.inspector/clipboard-desc "Berikut ini adalah data yang dibaca dari clipboard." + :bug-report.inspector/copied "Disalin ke papan klip!" + :bug-report.inspector/copy "Salin hasilnya" + :bug-report.inspector/copy-desc "Jika ini boleh dibagikan, klik tombol salin." + :bug-report.inspector/create-issue "Buat masalah" + :bug-report.inspector/create-issue-desc "Sekarang Anda dapat melaporkan hasil yang ditempelkan ke clipboard. Silakan tempelkan hasilnya di bagian 'Additional Context' dan sebutkan dari mana Anda menyalin konten asli. Terima kasih!" + :bug-report.inspector/desc "Tekan {1} untuk memeriksa data papan klip Anda\natau klik di sini untuk menempelkan jika Anda menggunakan versi seluler" + :bug-report.inspector/placeholder "Tekan lama di sini untuk menempelkan jika Anda menggunakan ponsel" + :bug-report.inspector/tip "Ada yang salah? Tidak masalah, klik untuk kembali ke langkah sebelumnya." + :bug-report.inspector/title "Pemeriksa data papan klip" + + :bug-report.issue/action-desc "Bantu Jadikan Logseq Lebih Baik!" + :bug-report.issue/action-title "Mengirimkan laporan bug" + :bug-report.issue/desc "Jika tidak ada alat bantu yang tersedia bagi Anda untuk mengumpulkan informasi tambahan, silakan laporkan bug secara langsung." + :bug-report.issue/report-link "Laporkan masalah" + :bug-report.issue/title "Atau..." + + :class/add-property "Tambahkan properti tag" + :class/tag-properties-desc "Properti tag diwarisi oleh semua node yang menggunakan tag tersebut. Misalnya, setiap node #Task mewarisi 'Status' dan 'Priority'." + :class/tagged-nodes "Node bertag" + + :class.built-in/asset "Aset" + :class.built-in/card "Kartu" + :class.built-in/cards "Kartu" + :class.built-in/code-block "Kode" + :class.built-in/journal "Jurnal" + :class.built-in/math-block "Matematika" + :class.built-in/page "Halaman" + :class.built-in/pdf-annotation "Anotasi PDF" + :class.built-in/property "Properti" + :class.built-in/query "Kueri" + :class.built-in/quote-block "Kutipan" + :class.built-in/root "Tag Akar" + :class.built-in/tag "Tag" + :class.built-in/task "Tugas" + :class.built-in/template "Templat" + :class.built-in/whiteboard "Papan Tulis" + + :class.validation/built-in-extends-change "Pewarisan elemen bawaan tidak dapat diubah." + :class.validation/cant-add-tag-on-built-in "Tidak dapat menambahkan tag pada \"{1}\" bawaan." + :class.validation/cant-remove-private-tags "Tidak dapat menghapus tag pribadi: {1}." + :class.validation/cant-remove-tag-built-in "Tidak dapat menghapus tag dengan #{1} bawaan." + :class.validation/cant-remove-tag-on-built-in "Tidak dapat menghapus tag pada \"{1}\" bawaan." + :class.validation/cant-set-tag-built-in "Tidak dapat menyetel tag dengan #{1} bawaan." + :class.validation/duplicate "Tag '{1}' sudah ada." + :class.validation/extends-cycle "Siklus terdeteksi pada pewarisan." + :class.validation/invalid-extends-type "Tipe pewarisan tidak valid." + :class.validation/parents-must-be-tags "Induk harus berupa tag." + :class.validation/tag-with-non-tag "Tidak dapat menyetel tag dengan halaman bawaan yang bukan tag \"{1}\"." + + :cmdk.action/apply-theme "Terapkan tema" + :cmdk.action/copy-ref "Salin referensi" + :cmdk.action/create "Buat" + :cmdk.action/filter "Filter" + :cmdk.action/open "Buka" + :cmdk.action/open-in-sidebar "Buka di sidebar" + :cmdk.action/search "Cari" + :cmdk.action/trigger "Jalankan" + + :cmdk.create/configure-tag "Konfigurasi tag" + :cmdk.create/page "Buat halaman" + :cmdk.create/tag "Buat tag" + + :cmdk.error/no-block-link "Tidak ada tautan di blok ini." + :cmdk.error/no-page-link "Tidak ada tautan di halaman ini." + :cmdk.error/no-search-item-link "Tidak ada tautan di hasil pencarian ini." + + :cmdk.filter/add "Tambah filter" + :cmdk.filter/codes "Hanya kode" + :cmdk.filter/commands "Hanya perintah" + :cmdk.filter/current-page "Hanya halaman saat ini" + :cmdk.filter/files "Hanya berkas" + :cmdk.filter/nodes "Hanya node" + :cmdk.filter/only-label "Hanya pencarian:" + :cmdk.filter/themes "Hanya tema" + + :cmdk.group/codes "Kode" + :cmdk.group/commands "Perintah" + :cmdk.group/create "Buat" + :cmdk.group/current-page "Halaman saat ini" + :cmdk.group/files "Berkas" + :cmdk.group/filters "Filter" + :cmdk.group/nodes "Node" + :cmdk.group/recently-updated "Baru diperbarui" + :cmdk.group/themes "Tema" + + :cmdk.info/configure-tag "Konfigurasi #{1}" + :cmdk.info/create-page "Buat halaman '{1}'" + :cmdk.info/create-tag "Buat tag '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Tambah filter grafik" + :cmdk.input/default-placeholder "Apa yang Anda cari?" + :cmdk.input/move-blocks-placeholder "Pindahkan blok" + :cmdk.input/type-page-name-placeholder "Ketik nama halaman" + + :cmdk.tip/clear-filter "Tekan {1} untuk menghapus filter pencarian" + :cmdk.tip/filter-results "Tekan {1} untuk memfilter hasil pencarian" + :cmdk.tip/label "Tips:" + :cmdk.tip/open-sidebar "Tekan {1} untuk membuka pencarian di sidebar" + + :collaboration/email-address "Alamat email" + :collaboration/invite "Undang" + :collaboration/members "Anggota:" + :collaboration/remove-access "Hapus akses" + :collaboration/remove-access-error "Gagal menghapus anggota" + :color/blue "Biru" - :color/purple "Ungu" + :color/crimson "merah karmin" + :color/cyan "sian" + :color/grass "hijau rumput" + :color/gray "Abu-abu" + :color/green "Hijau" + :color/indigo "nila" + :color/orange "oranye" :color/pink "Merah muda" - :editor/copy "Salin" - :editor/cut "Potong" - :editor/expand-block-children "Perluas semua" - :editor/collapse-block-children "Tutup semua" - :editor/delete-selection "Hapus blok terpilih" - :editor/cycle-todo "Putar status TODO item saat ini" - :dev/show-page-data "(Dev) Tampilkan data halaman" - :dev/show-block-data "(Dev) Tampilkan data blok" - :dev/show-block-ast "(Dev) Tampilkan AST blok" - :content/copy-export-as "Salin / Ekspor sebagai.." - :content/copy-block-url "Salin URL blok" - :content/copy-block-ref "Salin referensi blok" - :content/copy-ref "Salin referensi ini" - :content/delete-ref "Hapus referensi ini" - :content/replace-with-text "Ganti dengan teks" - :content/replace-with-embed "Ganti dengan penanaman" - :content/open-in-sidebar "Buka di sidebar" - :content/click-to-edit "Klik untuk menyunting" - :context-menu/make-a-flashcard "Buat Kartu Belajar" - :context-menu/toggle-number-list "Alihkan daftar nomor" - :settings-page/edit-config-edn "Sunting config.edn" - :settings-page/edit-global-config-edn "Sunting global config.edn" - :settings-page/edit-custom-css "Sunting custom.css" - :settings-page/edit-export-css "Sunting export.css" - :settings-page/custom-configuration "Konfigurasi kustom" - :settings-page/custom-global-configuration "Konfigurasi global kustom" - :settings-page/theme-light "terang" - :settings-page/theme-dark "gelap" - :settings-page/theme-system "sistem" - :settings-page/custom-theme "Tema kustom" - :settings-page/export-theme "Ekspor tema" - :settings-page/show-brackets "Tampilkan tanda kurung" - :settings-page/spell-checker "Pemeriksa ejaan" - :settings-page/auto-updater "Pembaruan otomatis" - :settings-page/disable-sentry "Kirim data penggunaan dan diagnosa ke Logseq" - :settings-page/disable-sentry-desc "Logseq tidak akan pernah mengumpulkan database grafik lokal Anda atau menjual data Anda." - :settings-page/preferred-outdenting "Pengaturan penyingkiran logis" - :settings-page/preferred-outdenting-tip "Sisi kiri menunjukkan penyingkiran dengan pengaturan default, dan sisi kanan menunjukkan penyingkiran logis yang diaktifkan " - :settings-page/preferred-outdenting-tip-more "→ Pelajari lebih lanjut" - :settings-page/show-full-blocks "Tampilkan semua baris referensi blok" - :settings-page/auto-expand-block-refs "Perluas referensi blok secara otomatis saat zoom-in" - :settings-page/auto-expand-block-refs-tip "Opsi ini mengontrol apakah referensi blok akan diperluas secara otomatis saat zoom-in." - :settings-page/custom-date-format "Format tanggal yang diinginkan" - :settings-page/preferred-pasting-file-hint "Ketika diaktifkan, menempelkan gambar dari internet akan mengunduh dan menyisipkan gambar. Ketika dinonaktifkan, akan menempelkan tautan ke gambar." - :settings-page/preferred-pasting-file "Lebih suka menempelkan berkas" - :settings-page/enable-shortcut-tooltip "Aktifkan tooltip pintasan" - :settings-page/enable-tooltip "Tooltip" - :settings-page/enable-journals "Jurnal" - :settings-page/enable-all-pages-public "Semua halaman menjadi publik saat dipublikasikan" - :settings-page/home-default-page "Atur halaman beranda default" - :settings-page/clear-cache "Hapus cache" - :settings-page/clear "Hapus" - :settings-page/clear-cache-warning "Menghapus cache akan menghapus grafik yang terbuka. Anda akan kehilangan perubahan yang belum disimpan." - :settings-page/developer-mode "Mode pengembang" - :settings-page/developer-mode-desc "Mode pengembang membantu kontributor dan pengembang ekstensi menguji integrasi mereka dengan Logseq dengan lebih efisien." - :settings-page/current-version "Versi saat ini" - :settings-page/tab-general "Umum" - :settings-page/tab-editor "Penyunting" - :settings-page/tab-keymap "Pemetaan tombol" - :settings-page/tab-account "Akun" - :settings-page/tab-advanced "Lanjutan" - :settings-page/tab-features "Fitur" - :settings-page/plugin-system "Pengaya" - :settings-page/enable-flashcards "Kartu Belajar" - :settings-page/network-proxy "Proxy jaringan" - :settings-page/login-prompt "Untuk mengakses fitur-fitur baru sebelum orang lain, Anda harus menjadi Sponsor atau Pendukung Logseq di Open Collective dan oleh karena itu harus masuk terlebih dahulu." - :settings-page/native-titlebar "Bilah judul asli" - :settings-page/native-titlebar-desc "Aktifkan bilah judul jendela asli di Windows dan Linux." - :settings-page/check-for-updates "Periksa pembaruan" - :settings-page/checking "Memeriksa ..." - :settings-page/revision "Revisi: " - :settings-page/changelog "Apa yang baru?" - :settings-page/app-updated "Aplikasi Anda sudah terbaru 🎉" - :settings-page/update-available "Ditemukan rilis baru " - :settings-page/update-error-1 "⚠️ Ups, Ada Sesuatu yang Salah!" - :settings-page/update-error-2 " Silakan cek " - - :yes "Ya" - - :cancel "Batal" - :close "Tutup" - :delete "Hapus" - :save "Simpan" - :type "Jenis" - :host "Host" - :port "Port" - :flashcards/modal-welcome-title "Saatnya membuat kartu!" - :flashcards/modal-welcome-desc-1 "Anda dapat menambahkan \"{1}\" ke blok apa pun untuk mengubahnya menjadi kartu atau memicu \"/cloze\" untuk menambahkan beberapa cloze." - :flashcards/modal-finished "Selamat, Anda telah meninjau semua kartu untuk pertanyaan ini, sampai jumpa berikutnya! 💯" - :home "Beranda" - :new-page "Halaman baru:" - :graph "Grafik" - :graph/all-graphs "Semua grafik" - :graph/local-graphs "Grafik lokal:" - :graph/remote-graphs "Grafik jarak jauh:" - :export "Ekspor" - :export-graph "Ekspor grafik" - :export-page "Ekspor halaman" - :export-markdown "Ekspor sebagai Markdown standar (tanpa properti blok)" - :export-public-pages "Ekspor halaman publik" - :export-transparent-background "Latar belakang transparan" - :export-copy-to-clipboard "Salin ke clipboard" - :export-copied-to-clipboard "Disalin ke clipboard!" - :export-save-to-file "Simpan ke berkas" - :all-graphs "Semua grafik" - :all-files "Semua berkas" - :all-journals "Semua jurnal" - :settings "Pengaturan" - :settings-of-plugins "Pengaya" - :plugins "Pengaya" - :themes "Tema" - :relaunch-confirm-to-work "Harus mengulang aplikasi untuk membuatnya berfungsi. Apakah Anda ingin me-restart sekarang?" - :import "Impor" - :importing "Mengimpor" - :help-shortcut-title "Klik untuk memeriksa pintasan dan tips lainnya" - :loading "Memuat..." - :login "Masuk" - :logout "Keluar" - :download "Unduh" - :language "Bahasa" - :remove-background "Hapus latar belakang" - :remove-heading "Hapus judul" - :heading "Judul {1}" - :auto-heading "Judul otomatis" - :toggle-theme "Alihkan tema" - - :help/shortcut-page-title "Pintasan Papan Ketik" - - :plugin/installed "Terpasang" - :plugin/installed-plugin "Plugin Terpasang: {1}" - :plugin/not-installed "Belum Terpasang" - :plugin/installing "Sedang Menginstal" - :plugin/install "Instal" - :plugin/reload "Muat Ulang" - :plugin/update "Perbarui" - :plugin/update-plugin "Perbarui Plugin: {1} - {2}" - :plugin/check-update "Periksa Pembaruan" - :plugin/check-all-updates "Periksa Semua Pembaruan" - :plugin/found-updates "Pembaruan Baru" - :plugin/found-n-updates "Ditemukan {1} Pembaruan" - :plugin/update-all-selected "Perbarui Semua yang Dipilih" - :plugin/all-updated "Semua Telah Diperbarui!" - :plugin/updates-downloading "Mengunduh Pembaruan" - :plugin/refresh-lists "Segarkan Daftar" - :plugin/enabled "Aktif" - :plugin/disabled "Nonaktif" - :plugin/update-available "Pembaruan Tersedia" - :plugin/updating "Sedang Memperbarui" - :plugin/uninstall "Uninstal" - :plugin/marketplace "Pasar" - :plugin/downloads "Unduhan" - :plugin/stars "Bintang" - :plugin/title "Judul ({1})" - :plugin/all "Semua" - :plugin/unpacked "Diekstrak" - :plugin/delete-alert "Apakah Anda yakin ingin menginstal plugin ini [{1}]?" - :plugin/open-settings "Buka pengaturan" - :plugin/open-package "Buka paket" - :plugin/load-unpacked "Muatkan plugin yang diekstrak" - :plugin/restart "Restart Aplikasi" - :plugin/unpacked-tips "Pilih direktori plugin" - :plugin/contribute "✨ Tulis dan kirimkan plugin baru" - :plugin/up-to-date "Ini terbaru {1}" - :plugin/custom-js-alert "Ditemukan berkas custom.js, izinkan eksekusi? (Jika Anda tidak memahami kontennya, disarankan untuk tidak mengizinkan eksekusi, yang memiliki risiko keamanan tertentu.)" - :plugin/security-warning "Plugin dapat mengakses grafik dan berkas lokal Anda, mengeluarkan permintaan jaringan. - Mereka juga dapat menyebabkan kerusakan atau kehilangan data. Kami sedang mengerjakan aturan akses yang tepat untuk grafik Anda. - Sementara itu, pastikan Anda memiliki cadangan rutin dari grafik Anda dan hanya menginstal plugin ketika Anda dapat membaca dan - mengerti kode sumbernya." - :plugin/search-plugin "Cari plugin" - :plugin/open-preferences "Buka Preferensi" - :plugin/open-logseq-dir "Buka" - :plugin/remote-error "Kesalahan jarak jauh: " - :plugin/checking-for-updates "Memeriksa pembaruan plugin ..." - :plugin/list-of-updates "Pembaruan Plugin: " - :plugin/auto-check-for-updates "Periksa otomatis pembaruan" - :plugin.install-from-file/menu-title "Instal dari plugins.edn" - :plugin.install-from-file/title "Instal plugin dari plugins.edn" - :plugin.install-from-file/notice "Plugin berikut akan menggantikan plugin Anda:" - :plugin.install-from-file/success "Semua plugin terinstal!" - :pdf/copy-ref "Salin ref" - :pdf/copy-text "Salin teks" - :pdf/linked-ref "Referensi terkait" - :pdf/toggle-dashed "Gaya putus-putus untuk sorotan area" - :pdf/hl-block-colored "Label berwarna untuk blok sorotan" - :pdf/doc-metadata "Metadata Dokumen" - - :updater/new-version-install "Versi baru telah diunduh." - :updater/quit-and-install "Mulai ulang untuk menginstal" - - :tips/all-done "Semua Selesai!" - - :select/default-prompt "Pilih salah satu" - :select/default-select-multiple "Pilih satu atau beberapa" - :select.graph/prompt "Pilih grafik" - :select.graph/empty-placeholder-description "Tidak ada grafik yang cocok. Apakah Anda ingin menambahkan yang lain?" - :select.graph/add-graph "Ya, tambahkan grafik lain" - - :notification/clear-all "Hapus semua" - - :shortcut.category/basics "Dasar" - :shortcut.category/formatting "Pemformatan" - :shortcut.category/navigating "Navigasi" - :shortcut.category/block-editing "Penyuntingan Blok Umum" - :shortcut.category/block-command-editing "Penyuntingan Perintah Blok" - :shortcut.category/block-selection "Pemilihan Blok (tekan Esc untuk keluar dari pemilihan)" - :shortcut.category/toggle "Beralih" - :shortcut.category/others "Lainnya" - :shortcut.category/plugins "Plugin" - :keymap/all "Semua" - :keymap/disabled "Nonaktifkan" - :keymap/unset "Tidak diatur" - :keymap/custom "Kustom" - :keymap/keystroke-filter "Filter Pekerjaan Tombol" - :window/minimize "Minimalkan" - :window/maximize "Maksimalkan" - :window/restore "Pulihkan" - :window/close "Tutup" - :window/exit-fullscreen "Keluar dari layar penuh" - - :header/toggle-left-sidebar "Alihkan bilah sisi kiri" - :header/search "Cari" - :header/more "Lainnya" - :header/go-back "Kembali" - :header/go-forward "Maju" + :color/plum "ungu prem" + :color/purple "Ungu" + :color/red "Merah" + :color/teal "hijau kebiruan" + :color/tomato "merah tomat" + :color/violet "lembayung" + :color/yellow "Kuning" :command.auto-complete/complete "Pelengkapan otomatis: Pilih item yang dipilih" + :command.auto-complete/meta-complete "Lengkapi otomatis" :command.auto-complete/next "Pelengkapan otomatis: Pilih item berikutnya" :command.auto-complete/prev "Pelengkapan otomatis: Pilih item sebelumnya" :command.auto-complete/shift-complete "APelengkapan otomatis: Buka item yang dipilih di sidebar" - :command.cards/toggle-answers "Kartu: tampilkan / sembunyikan jawaban/clozes" - :command.command/run "Jalankan perintah git" - :command.command/toggle-favorite "Tambahkan/hapus dari favorit" - :command.dev/show-block-ast "(Dev) Tampilkan AST blok" - :command.dev/show-block-data "(Dev) Tampilkan data blok" - :command.dev/show-page-data "(Dev) Tampilkan data halaman" + + :command.command-palette/toggle "Palet perintah" + + :command.editor/add-property "Tambah properti" + :command.editor/add-property-deadline "Tambah tenggat" + :command.editor/add-property-icon "Tambah ikon" + :command.editor/add-property-priority "Tambah prioritas" + :command.editor/add-property-status "Tambah status" + :command.editor/add-reaction "Tambah reaksi" :command.editor/backspace "Backspace / Hapus ke belakang" :command.editor/backward-kill-word "Hapus kata ke belakang" :command.editor/backward-word "Geser kursor ke belakang satu kata" @@ -382,17 +284,21 @@ :command.editor/insert-link "Tautan HTML" :command.editor/insert-youtube-timestamp "Sisipkan penanda waktu YouTube" :command.editor/italics "Miring" + :command.editor/jump "Lompat" :command.editor/kill-line-after "Hapus baris setelah posisi kursor" :command.editor/kill-line-before "Hapus baris sebelum posisi kursor" :command.editor/left "Geser kursor ke kiri / Buka blok yang dipilih di awal" :command.editor/move-block-down "Geser blok ke bawah" :command.editor/move-block-up "Geser blok ke atas" + :command.editor/move-blocks "Pindahkan blok" :command.editor/new-block "Buat blok baru" :command.editor/new-line "Baris baru dalam blok saat ini" :command.editor/open-edit "Sunting blok yang dipilih" :command.editor/open-link-in-sidebar "Buka tautan di sidebar" + :command.editor/open-selected-blocks-in-sidebar "Buka blok terpilih di sidebar" :command.editor/outdent "Kurangi sisipan blok" :command.editor/paste-text-in-one-block-at-point "Tempelkan teks ke dalam satu blok pada posisi kursor" + :command.editor/quick-add "Tambah cepat" :command.editor/redo "Lakukan lagi" :command.editor/right "Geser kursor ke kanan / Buka blok yang dipilih di akhir" :command.editor/select-all-blocks "Pilih semua blok" @@ -401,13 +307,17 @@ :command.editor/select-down "Pilih konten di bawah" :command.editor/select-parent "Pilih blok induk" :command.editor/select-up "Pilih konten di atas" + :command.editor/set-tags "Atur tag" :command.editor/strike-through "Coret" + :command.editor/toggle-block-children "Tampilkan/sembunyikan anak blok" + :command.editor/toggle-display-hidden-properties "Tampilkan/sembunyikan properti tersembunyi" :command.editor/toggle-number-list "Hidupkan/matikan daftar angka" :command.editor/toggle-open-blocks "Hidupkan/matikan blok terbuka (perluas atau perkecil semua blok)" :command.editor/undo "Batal" :command.editor/up "Geser kursor ke atas / Pilih ke atas" :command.editor/zoom-in "Perbesar blok yang sedang disunting / Maju sebaliknya" :command.editor/zoom-out "Perkecil blok yang sedang disunting / Mundur sebaliknya" + :command.go/all-graphs "Buka semua grafik" :command.go/all-pages "Buka semua halaman" :command.go/backward "Mundur" @@ -423,22 +333,45 @@ :command.go/next-journal "Buka jurnal berikutnya" :command.go/prev-journal "Buka jurnal sebelumnya" :command.go/search "Cari halaman dan blok" + :command.go/search-in-page "Cari di halaman" + :command.go/search-themes "Cari tema" :command.go/tomorrow "Buka ke esok hari" + :command.graph/add "Tambahkan grafik" + :command.graph/db-add "Tambah ke database" + :command.graph/db-save "Simpan database" :command.graph/export-as-html "Ekspor halaman grafik sebagai HTML" :command.graph/open "Pilih grafik untuk dibuka" :command.graph/remove "Hapus grafik" + :command.misc/copy "Salin" - :command.pdf/close "Pdf: Tutup dokumen pdf saat ini" - :command.pdf/find "Pdf: Cari teks dokumen pdf saat ini" - :command.pdf/next-page "Pdf: Halaman berikutnya dokumen pdf saat ini" - :command.pdf/previous-page "Pdf: Halaman sebelumnya dokumen pdf saat ini" + :command.misc/export-block-data "Ekspor data blok" + :command.misc/export-graph-ontology-data "Ekspor ontologi grafik" + :command.misc/export-page-data "Ekspor data halaman" + :command.misc/import-edn-data "Impor data EDN" + + :command.page/toggle-favorite "Tambahkan/hapus dari favorit" + + :command.pdf/close "PDF: Tutup dokumen pdf saat ini" + :command.pdf/find "PDF: Cari teks dokumen pdf saat ini" + :command.pdf/next-page "PDF: Halaman berikutnya dokumen pdf saat ini" + :command.pdf/previous-page "PDF: Halaman sebelumnya dokumen pdf saat ini" + + :command.publish/open-dialog "Buka dialog publikasi" + :command.search/re-index "Bangun ulang indeks pencarian" + + :command.shell/run "Jalankan perintah git" + :command.sidebar/clear "Hapus semua di bilah sisi kanan" :command.sidebar/close-top "Tutup item teratas di bilah sisi kanan" :command.sidebar/open-today-page "Buka halaman hari ini di bilah sisi kanan" + :command.ui/clear-all-notifications "Hapus semua pemberitahuan" + :command.ui/customize-appearance "Kustomisasi tampilan" :command.ui/goto-plugins "Buka dasbor plugin" + :command.ui/highlight-recent-blocks "Sorot blok terbaru" + :command.ui/install-plugin-from-github "Instal plugin dari GitHub" :command.ui/install-plugins-from-file "Pasang plugin dari plugins.edn" :command.ui/select-theme-color "Pilih warna tema yang tersedia" :command.ui/toggle-brackets "Alihkan tampilan tanda kurung" @@ -449,4 +382,1480 @@ :command.ui/toggle-right-sidebar "Alihkan bilah sisi kanan" :command.ui/toggle-settings "Alihkan pengaturan" :command.ui/toggle-theme "Alihkan antara tema gelap/cerah" - :command.ui/toggle-wide-mode "Alihkan mode lebar"} + :command.ui/toggle-wide-mode "Alihkan mode lebar" + + :command.window/close "Tutup jendela" + + :context-menu/developer-tools "Alat pengembang" + :context-menu/make-a-flashcard "Buat Kartu Belajar" + :context-menu/set-icon "Atur ikon" + :context-menu/toggle-number-list "Alihkan daftar nomor" + + :date/invalid-date-warning "{1} bukan tanggal yang sah. Silakan coba lagi" + + :date.nlp/last-friday "Jumat lalu" + :date.nlp/last-monday "Senin lalu" + :date.nlp/last-month "Bulan lalu" + :date.nlp/last-saturday "Sabtu lalu" + :date.nlp/last-sunday "Minggu lalu" + :date.nlp/last-thursday "Kamis lalu" + :date.nlp/last-tuesday "Selasa lalu" + :date.nlp/last-wednesday "Rabu lalu" + :date.nlp/last-week "Minggu lalu" + :date.nlp/last-year "Tahun lalu" + :date.nlp/next-friday "Jumat depan" + :date.nlp/next-monday "Senin depan" + :date.nlp/next-month "Bulan depan" + :date.nlp/next-saturday "Sabtu depan" + :date.nlp/next-sunday "Minggu depan" + :date.nlp/next-thursday "Kamis depan" + :date.nlp/next-tuesday "Selasa depan" + :date.nlp/next-wednesday "Rabu depan" + :date.nlp/next-week "Minggu depan" + :date.nlp/next-year "Tahun depan" + :date.nlp/this-friday "Jumat ini" + :date.nlp/this-monday "Senin ini" + :date.nlp/this-month "Bulan ini" + :date.nlp/this-saturday "Sabtu ini" + :date.nlp/this-sunday "Minggu ini" + :date.nlp/this-thursday "Kamis ini" + :date.nlp/this-tuesday "Selasa ini" + :date.nlp/this-wednesday "Rabu ini" + :date.nlp/this-week "Minggu ini" + :date.nlp/this-year "Tahun ini" + :date.nlp/today "Hari ini" + :date.nlp/tomorrow "Besok" + :date.nlp/yesterday "Kemarin" + + :deeplink/open-block-error "Gagal membuka tautan. Blok `{1}` tidak ada di grafik saat ini." + :deeplink/open-graph-error "Gagal membuka grafik. Grafik `{1}` tidak ada." + :deeplink/open-page-error "Gagal membuka tautan. Halaman `{1}` tidak ada di grafik saat ini." + + :editor/add-content-first-warning "Silakan tambahkan konten terlebih dahulu." + :editor/auto-heading "Judul otomatis" + :editor/block-search "Cari blok" + :editor/click-to-edit "Klik untuk menyunting" + :editor/code-language-placeholder "Pilih bahasa" + :editor/collapse-block-children "Tutup semua" + :editor/cut "Potong" + :editor/cycle-todo "Putar status TODO item saat ini" + :editor/delete-selection "Hapus blok terpilih" + :editor/display-tag-inline-hint "untuk menampilkan tag ini secara inline, bukan di akhir node ini." + :editor/expand-block-children "Perluas semua" + :editor/heading "Judul {1}" + :editor/moving-blocks-count "Memindahkan {1} blok" + :editor/new-page "Halaman baru" + :editor/new-tag "Tag baru" + :editor/no-block-selected-warning "Tidak ada blok yang dipilih" + :editor/paste "Tempel" + :editor/reference-node-use-page-ref "Untuk merujuk node, silakan gunakan `[[]]`." + :editor/remove-heading "Hapus judul" + :editor/search-for-node "Cari node" + :editor/search-for-tag "Cari tag" + :editor/search-template-placeholder "Cari templat" + :editor/template-insert-error "Kesalahan penyisipan templat: {1}" + + :editor.document-mode/new-block-hint "{1} untuk membuat blok baru" + :editor.document-mode/title "Mode dokumen" + :editor.document-mode/toggle-desc "Klik `D` atau ketik {1} untuk beralih mode dokumen" + + :editor.quick-add/add-to-today "Tambahkan ke halaman hari ini" + :editor.quick-add/title "Tambah cepat" + + :editor.slash/advanced-query "Kueri Lanjutan" + :editor.slash/advanced-query-desc "Buat blok kueri lanjutan" + :editor.slash/calculator "Kalkulator" + :editor.slash/calculator-desc "Sisipkan kalkulator" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Blok Kode" + :editor.slash/code-block-desc "Sisipkan blok kode" + :editor.slash/current-time "Waktu Saat Ini" + :editor.slash/current-time-desc "Sisipkan waktu saat ini" + :editor.slash/date-picker "Pemilih Tanggal" + :editor.slash/date-picker-desc "Pilih tanggal dan sisipkan di sini" + :editor.slash/embed-html "Sematkan HTML" + :editor.slash/embed-twitter-tweet "Sematkan Tweet Twitter" + :editor.slash/embed-video-url "Sematkan URL Video" + :editor.slash/embed-youtube-timestamp "Sematkan Stempel Waktu YouTube" + :editor.slash/group-advanced "LANJUTAN" + :editor.slash/group-basic "DASAR" + :editor.slash/group-format "FORMAT" + :editor.slash/group-heading "Judul" + :editor.slash/group-list-type "TIPE DAFTAR" + :editor.slash/group-plugins "PLUGIN" + :editor.slash/group-priority "PRIORITAS" + :editor.slash/group-task-date "TANGGAL TUGAS" + :editor.slash/group-task-status "STATUS TUGAS" + :editor.slash/group-time-and-date "WAKTU & TANGGAL" + :editor.slash/heading-label "Judul {1}" + :editor.slash/image-link "Tautan Gambar" + :editor.slash/image-link-desc "Buat tautan HTTP ke gambar" + :editor.slash/link-desc "Buat tautan HTTP" + :editor.slash/math-block "Blok Matematika" + :editor.slash/math-block-desc "Buat blok LaTeX" + :editor.slash/no-priority "Tidak Ada Prioritas" + :editor.slash/node-embed "Sematkan Node" + :editor.slash/node-embed-desc "Sematkan node di sini" + :editor.slash/node-reference "Referensi Node" + :editor.slash/node-reference-desc "Buat tautan balik ke node (halaman atau blok)" + :editor.slash/normal-text "Teks Normal" + :editor.slash/normal-text-desc "Hapus judul dan atur ke teks normal" + :editor.slash/number-children "Anak Angka" + :editor.slash/number-list "Daftar Bernomor" + :editor.slash/priority-desc "Atur prioritas ke {1}" + :editor.slash/priority-label "Prioritas {1}" + :editor.slash/query-function "Fungsi Kueri" + :editor.slash/query-function-desc "Buat fungsi kueri" + :editor.slash/quote-desc "Buat blok kutipan" + :editor.slash/status-desc "Atur status ke {1}" + :editor.slash/template-desc "Sisipkan templat yang dibuat di sini" + :editor.slash/today-desc "Sisipkan tanggal hari ini" + :editor.slash/tomorrow-desc "Sisipkan tanggal besok" + :editor.slash/underline "Garis Bawah" + :editor.slash/underline-desc "Buat dekorasi teks garis bawah" + :editor.slash/upload-asset "Unggah Aset" + :editor.slash/upload-asset-desc "Unggah jenis file seperti gambar, PDF, DOCX, dll." + :editor.slash/yesterday-desc "Sisipkan tanggal kemarin" + + :electron/about "Tentang Logseq" + :electron/add-to-dictionary "Tambahkan ke kamus" + :electron/block-not-exist "Gagal membuka tautan. ID blok `{1}` tidak ada di grafik." + :electron/cancel "Batal" + :electron/copy-image "Salin gambar" + :electron/link-open-confirm "Apakah Anda yakin ingin membuka tautan ini?\n{1}" + :electron/link-open-failed-missing-graph "Gagal membuka tautan. Grafik tidak ditemukan." + :electron/link-open-failed-no-graph "Gagal membuka tautan. Pengidentifikasi grafik `{1}` tidak dapat dicocokkan dengan grafik tertaut mana pun." + :electron/link-open-failed-no-target "Gagal membuka tautan. `{1}` tidak dapat dicocokkan dengan target mana pun." + :electron/look-up "Cari teks yang dipilih" + :electron/main-exception "[Pengecualian proses utama]\n{1}\n{2}" + :electron/new-window "Jendela baru" + :electron/official-docs "Dokumentasi resmi" + :electron/ok "OK" + :electron/open-dir-error "Gagal membuka folder: {1}" + :electron/save-image "Simpan gambar" + :electron/save-image-as "Simpan gambar sebagai" + :electron/search-with-google "Cari di Google" + :electron/unimplemented-callback "Aksi x-callback-url belum diimplementasikan: `{1}`." + :electron/version "Versi {1}" + :electron/write-file-error "Penulisan ke berkas {1} gagal, {2}." + :electron/write-file-error-with-backup "Penulisan ke berkas {1} gagal, {2}. Berkas cadangan disimpan di {3}." + + :encryption/cloud-password-rich (fn [] ["Jika Anda kehilangan kata sandi, semua data Anda di cloud tidak dapat didekripsi. " [:span "Anda masih dapat mengakses versi lokal grafik Anda."]]) + :encryption/current-password "Kata sandi saat ini" + :encryption/enter-password "Masukkan kata sandi" + :encryption/enter-password-again "Masukkan kata sandi lagi" + :encryption/enter-password-title "Masukkan kata sandi" + :encryption/failed-to-force-reset-password "Gagal mereset kata sandi" + :encryption/failed-to-update-password "Gagal memperbarui kata sandi" + :encryption/fetch-key-pair-error "Mengambil kesalahan pasangan kunci rsa pengguna: {1}" + :encryption/fetching-key-pair "Mengambil pasangan kunci" + :encryption/force-reset-password "Reset kata sandi" + :encryption/force-reset-password-successfully "Kata sandi berhasil direset" + :encryption/force-resetting-password "Mereset" + :encryption/forgot-password-question "Lupa kata sandi?" + :encryption/forgot-password-warning "Jika Anda lupa kata sandi, data terenkripsi tidak dapat dipulihkan." + :encryption/init-key-pair "Inisialisasi pasangan kunci" + :encryption/init-key-pair-error "Kesalahan pasangan kunci init: {1}" + :encryption/password-not-matched "Kata sandi tidak cocok" + :encryption/password-updated-successfully "Kata sandi diperbarui" + :encryption/remember-password-rich (fn [] [[:span "Pastikan Anda "] "mengingat kata sandi yang Anda tetapkan, karena kami tidak dapat mengatur ulang atau memulihkannya jika Anda lupa, " [:span "dan kami menyarankan Anda "] "menyimpan cadangan kata sandi tersebut di tempat yang aman."]) + :encryption/reset-password "Reset kata sandi" + :encryption/set-new-password "Atur kata sandi baru" + :encryption/set-password-title "Atur kata sandi" + :encryption/updating-password "Memperbarui kata sandi" + :encryption/wrong-password "Kata sandi salah" + + :export/backup-successful "Pencadangan berhasil!" + :export/block-data-copied "Data blok disalin ke papan klip" + :export/collecting-assets "Mengumpulkan aset" + :export/copied-to-clipboard "Disalin ke papan klip!" + :export/copy-or-export-as "Salin / Ekspor sebagai.." + :export/creating-zip "Membuat zip" + :export/db-backup-error "Pencadangan database gagal." + :export/db-edn "Ekspor sebagai file EDN" + :export/debug-transit-desc "Mengekspor ke file .transit untuk dikirimkan kepada kami untuk debugging. Data sensitif akan dihapus dari file yang diekspor." + :export/debug-transit-file "Ekspor file debug transit" + :export/edn-desc "Mengekspor ke file .edn yang dapat dibaca dan diedit. Jangan mengandalkan ini sebagai cadangan utama." + :export/error-unexpected "Kesalahan tak terduga terjadi selama ekspor. Lihat konsol JavaScript untuk detailnya." + :export/exporting "Mengekspor" + :export/finalizing "Menyelesaikan" + :export/format-text "Teks" + :export/graph "Ekspor grafik" + :export/graph-ontology-data-copied "Data ontologi grafik disalin ke papan klip" + :export/indent-style-dashes "strip" + :export/indent-style-label "Gaya indentasi:" + :export/indent-style-none "tanpa indentasi" + :export/indent-style-spaces "spasi" + :export/level-lte "tingkat <=" + :export/markdown "Ekspor sebagai Markdown (tanpa properti blok)" + :export/newline-after-block "baris baru setelah blok" + :export/no-updates-since-last-export "Tidak ada perubahan sejak ekspor terakhir." + :export/open-blocks-only "hanya blok terbuka (lewati anak yang diciutkan)" + :export/page "Ekspor halaman" + :export/page-data-copied "Data halaman disalin ke papan klip" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Menyiapkan zip" + :export/preview-alt "pratinjau ekspor" + :export/public-pages "Ekspor halaman publik" + :export/remove-emphasis "hapus penekanan" + :export/remove-properties "hapus properti" + :export/remove-tags "hapus #tag" + :export/save-to-file "Simpan ke file" + :export/sqlite-db "Ekspor database SQLite" + :export/title "Ekspor" + :export/transparent-background "Latar belakang transparan" + :export/view-nodes-data-copied "Data node tampilan disalin ke papan klip" + :export/zip "Ekspor DB SQLite dan berkas" + :export/zip-error "Ekspor ZIP gagal." + + :export.backup/backup-now "Cadangkan sekarang" + :export.backup/cancel "Batalkan pencadangan" + :export.backup/enabled-desc "Pencadangan per jam diaktifkan untuk graf ini, {1}." + :export.backup/folder "Folder cadangan:" + :export.backup/hourly-note "Cadangan akan dibuat setiap jam." + :export.backup/open-folder "buka folder cadangan untuk graf ini" + :export.backup/schedule "Jadwalkan pencadangan" + :export.backup/set-folder-first "Atur folder cadangan terlebih dahulu" + :export.backup/sqlite-desc "Cara utama untuk mencadangkan konten graf ke satu file .sqlite." + :export.backup/unsupported-desc "Browser Anda tidak mendukung {{The File System Access API}}, silakan beralih ke browser berbasis Chromium." + :export.backup/zip-desc "Cara utama untuk mencadangkan konten graf dan aset ke file .zip." + + :file/config-duplicate-keys "File '{1}' memiliki kunci duplikat. Kunci '{2}' ditetapkan beberapa kali." + :file/config-invalid "File konfigurasi tidak valid" + :file/format-not-supported "Format .{1} tidak didukung." + :file/label "Berkas" + :file/last-modified-at "Terakhir diubah pada" + :file/name "Nama berkas" + :file/no-data "Tidak ada data" + :file/title "Berkas {1}" + + :file.config/deprecation-title "Berkas {1} memiliki penghentian dukungan berikut:" + :file.config/error-title "Berkas {1} memiliki kesalahan berikut:" + :file.config/invalid-desc "Pastikan konfignya dibungkus dengan {}." + :file.config/invalid-title "Berkas {1} tidak valid." + :file.config/read-failed-desc "Pastikan konfignya dibungkus dengan {}. Juga pastikan karakter '( { [' memiliki karakter penutup yang sesuai ') } ]'." + :file.config/read-failed-title "Gagal membaca berkas {1}" + + :flashcard/add-query "Tambah kueri baru" + :flashcard/all-cards "Semua kartu" + :flashcard/select-cards "Pilih kartu" + :flashcard/shortcut-tooltip "Pintasan: {1}" + + :flashcard.empty/desc "Anda dapat menambahkan \"{1}\" ke blok apa pun untuk mengubahnya menjadi kartu atau memicu \"/cloze\" untuk menambahkan beberapa cloze." + :flashcard.empty/title "Saatnya membuat kartu!" + + :flashcard.rating/again "Lagi" + :flashcard.rating/again-desc "Jawaban kita salah. Ini otomatis berarti kita telah melupakan kartu ini. Ini adalah kelupaan。" + :flashcard.rating/easy "Mudah" + :flashcard.rating/easy-desc "Jawabannya benar dan kita mengingatnya dengan cepat dan yakin tanpa usaha mental。" + :flashcard.rating/good "Baik" + :flashcard.rating/good-desc "Jawabannya benar, tetapi perlu sedikit usaha mental untuk mengingatnya。" + :flashcard.rating/hard "Sulit" + :flashcard.rating/hard-desc "Jawabannya benar, tetapi kita tidak yakin atau membutuhkan waktu terlalu lama untuk mengingatnya." + + :flashcard.review/finished "Selamat, Anda telah meninjau semua kartu untuk pertanyaan ini, sampai jumpa berikutnya! 💯" + :flashcard.review/hide-answers "Sembunyikan jawaban" + :flashcard.review/show-answers "Tampilkan jawaban" + :flashcard.review/show-clozes "Tampilkan isian" + + :format/bold "Tebal" + :format/code "Kode" + :format/highlight "Sorot" + :format/italics "Miring" + :format/strikethrough "Coret" + + :graph/all-graphs "Semua grafik" + :graph/already-exists-error "Graf '{1}' sudah ada. Silakan coba lagi dengan nama lain." + :graph/as-png "sebagai PNG" + :graph/built-in-pages "Halaman bawaan" + :graph/charge-range "Rentang Muatan" + :graph/charge-strength "Kekuatan Muatan" + :graph/click-to-search "Klik untuk mencari" + :graph/create-db "Buat graf DB" + :graph/create-error "Gagal membuat grafik" + :graph/create-new "Buat graf baru" + :graph/created-before "Dibuat sebelum" + :graph/creating "Membuat graf" + :graph/delete-local-action "Hapus graf lokal" + :graph/delete-local-confirm-desc "Apakah Anda yakin ingin menghapus graf \"{1}\" dari Logseq secara permanen?" + :graph/delete-server-action "Hapus dari server" + :graph/delete-server-confirm-desc "Apakah Anda yakin ingin menghapus graf \"{1}\" dari server kami secara permanen?" + :graph/delete-warning "⚠️ Perhatikan bahwa kami tidak dapat memulihkan graf ini setelah dihapus. Pastikan Anda memiliki salinan cadangan sebelum menghapusnya." + :graph/diff "Git diff" + :graph/downloading "mengunduh" + :graph/encrypt-data-label "Enkripsi data graf" + :graph/excluded-pages "Halaman yang dikecualikan" + :graph/forces "Gaya" + :graph/gc-success "Pembersihan graf berhasil!" + :graph/last-opened-at-label "Terakhir dibuka: {1}" + :graph/leave-action "Tinggalkan graf ini" + :graph/leave-confirm-desc "Apakah Anda yakin ingin meninggalkan graf ini?" + :graph/leave-error "Gagal meninggalkan grafik" + :graph/left "Ditinggalkan" + :graph/link-count "{1} tautan" + :graph/link-distance "Jarak Tautan" + :graph/local-graphs "Grafik lokal:" + :graph/n-hops-from-selected-nodes "N lompatan dari node yang dipilih" + :graph/name-placeholder "nama graf Anda" + :graph/nodes "Node" + :graph/orphan-pages "Halaman yatim" + :graph/page-count "{1} halaman" + :graph/pause-simulation "Jeda simulasi" + :graph/preparing "menyiapkan" + :graph/refresh-remote-graphs "Segarkan graf jarak jauh" + :graph/remote-graphs "Grafik jarak jauh:" + :graph/removed "Grafik \"{1}\" dihapus" + :graph/removed-and-redirecting "Grafik \"{1}\" dihapus. Mengalihkan ke grafik \"{2}\"" + :graph/removed-from-sync "Grafik dihapus dari sinkronisasi" + :graph/reset "Reset Graf" + :graph/reset-forces "Reset Gaya" + :graph/search "Cari" + :graph/shared-graphs "Grafik bersama" + :graph/updated-switching "Grafik diperbarui. Beralih..." + :graph/use-sync-beta "Gunakan Logseq Sync (uji beta)" + :graph/use-sync-label "Gunakan Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Gagal menghitung diagnostik checksum grafik." + :graph.diagnostics/checksum-recomputed-success "Checksum dihitung ulang. Hasil perhitungan ulang: {1}, lokal: {2}, remote: {3}. {4}.edn diunduh dengan {5} blok dan atribut checksum {6}." + :graph.diagnostics/checksum-unavailable-warning "Tidak dapat menghitung diagnostik checksum untuk grafik saat ini." + :graph.diagnostics/client-ops-export-failed-error "Gagal mengekspor Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Ekspor Client ops SQLite gagal: tipe payload tidak valid {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite diekspor: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Grafik tidak ditemukan." + + :graph.page/show-journals "Tampilkan Jurnal" + :graph.page/title "Grafik halaman" + + :graph.switch/add-graph-action "Ya, tambahkan grafik lain" + :graph.switch/empty-desc "Tidak ada grafik yang cocok. Apakah Anda ingin menambahkan yang lain?" + :graph.switch/prompt "Beralih ke:" + :graph.switch/select-prompt "Pilih grafik" + + :graph.validation/config-arweave-gateway-warning "tidak lagi didukung." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "tidak lagi didukung. Gunakan '/' dan laporkan bug terkaitnya." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "tidak digunakan dalam graf DB karena hanya ada mode markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Validasi mendeteksi {1} blok yang tidak valid. Blok-blok ini mungkin memiliki bug. Mencoba memperbaiki blok yang tidak valid. Jalankan validasi lagi untuk melihat apakah sudah diperbaiki." + :graph.validation/name-reserved-characters-warning "Nama graf tidak boleh mengandung karakter khusus berikut:" + :graph.validation/reserved-character-asterisk "asterisk" + :graph.validation/reserved-character-backslash "garis miring terbalik" + :graph.validation/reserved-character-colon "titik dua" + :graph.validation/reserved-character-double-quote "tanda kutip ganda" + :graph.validation/reserved-character-forward-slash "garis miring" + :graph.validation/reserved-character-greater-than "lebih besar dari" + :graph.validation/reserved-character-hash "tanda pagar" + :graph.validation/reserved-character-less-than "lebih kecil dari" + :graph.validation/reserved-character-pipe "garis vertikal atau pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "tanda tanya" + :graph.validation/valid "Graf Anda valid! {1}" + + :header/go-back "Kembali" + :header/go-forward "Maju" + :header/highlight-recent-blocks "Sorot blok terbaru" + :header/highlight-recent-blocks-days-ago "Sorot blok terbaru: {1} hari lalu" + :header/more "Lainnya" + :header/quit-highlight-recent-blocks "Hentikan sorotan blok terbaru" + :header/toggle-left-sidebar "Alihkan bilah sisi kiri" + + :help/about "Tentang Logseq" + :help/about-title "Tentang" + :help/ask-community "Tanya komunitas" + :help/awesome-logseq "Logseq yang mengagumkan" + :help/block-reference "Blok referensi" + :help/blog "Blog Logseq" + :help/bug "Laporan bug" + :help/changelog "Catatan perubahan" + :help/community-title "Komunitas" + :help/context-menu "Blokir menu konteks" + :help/context-menu-action "Klik kanan bullet" + :help/development-title "Pengembangan" + :help/docs "Dokumentasi" + :help/feature "Permintaan fitur" + :help/forum-community "Komunitas forum" + :help/handbook "Buku Panduan" + :help/learn-more "Pelajari lebih lanjut" + :help/markdown-syntax "Sintaks penurunan harga" + :help/open-link-in-sidebar "Buka tautan di bilah sisi" + :help/open-link-in-sidebar-action "Shift+klik referensi" + :help/privacy "Kebijakan privasi" + :help/reference-autocomplete "Pelengkapan otomatis referensi halaman" + :help/release-notes "Catatan rilis" + :help/roadmap "Peta jalan" + :help/search "Cari" + :help/slash-autocomplete "Pelengkapan otomatis garis miring" + :help/start "Memulai" + :help/submit-feedback "Kirim umpan balik" + :help/support-forum "Forum dukungan" + :help/terms "Ketentuan" + :help/terms-title "Ketentuan" + :help/usage-title "Penggunaan" + + :help.handbook/chat-on-discord "Mengobrol di Discord" + :help.handbook/chat-on-discord-desc "Ajukan pertanyaan singkat, bertemu pengguna lain, dan pelajari alur kerja baru." + :help.handbook/copy-topic-link "Salin tautan topik" + :help.handbook/current-chapter "Bab saat ini" + :help.handbook/help-categories "Kategori bantuan" + :help.handbook/home "Beranda" + :help.handbook/link-copied "Tautan buku panduan disalin!" + :help.handbook/monthly-posts "postingan bulanan" + :help.handbook/next-chapter "Bab berikutnya" + :help.handbook/popular-topics "Topik populer" + :help.handbook/prev-chapter "Bab sebelumnya" + :help.handbook/resources-from "Sumber daya dari {1}" + :help.handbook/search-placeholder "Cari" + :help.handbook/shortcuts-count "{1} pintasan" + :help.handbook/sync "Sinkronisasi" + :help.handbook/title "Panduan" + :help.handbook/topics "Topik" + :help.handbook/users-online "pengguna online" + :help.handbook/visit-the-forum "Kunjungi forum" + :help.handbook/visit-the-forum-desc "Berikan umpan balik, ajukan fitur, dan lakukan diskusi mendalam." + :help.handbook/writing-mode "Mode menulis (pratinjau segera)" + + :help.shortcuts/desc "Lihat pintasan dan tips" + :help.shortcuts/label "Pintasan keyboard" + :help.shortcuts/shortcut-column "Pintasan" + :help.shortcuts/title "Pintasan Papan Ketik" + :help.shortcuts/triggers "Pemicu" + + :icon/emojis-count "Emoji ({1})" + :icon/icons-count "Ikon ({1})" + :icon/matched-count "Cocok ({1})" + :icon/search-all "Cari semua" + :icon/search-emojis "Cari emoji" + :icon/search-icons "Cari ikon" + :icon/tab-all "Semua" + :icon/tab-emojis "Emoji" + :icon/tab-icons "Ikon" + + :import/all-tags "Impor semua tag" + :import/asset-too-large-warning "Penyalinan aset {1} dilewati karena melebihi batas 100 MB." + :import/assets-import-partial "{1}/{2} berkas diimpor. Detail di konsol." + :import/assets-imported "{1} berkas diimpor." + :import/assets-skipped "{1} berkas dilewati. Detail di konsol." + :import/block-icons-cannot-be-imported "Ikon blok tidak dapat diimpor. Impor secara manual di blok {1}." + :import/cannot-import-block-into-non-block-entity "Tidak dapat mengimpor blok ke entitas non-blok." + :import/db-edn-desc "Impor ekspor EDN graf DB ke graf DB baru" + :import/db-edn-title "EDN ke graf DB" + :import/debug-transit-desc "Impor file debug transit ke graf DB baru" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Perilaku default grafik DB" + :import/empty-graph-name "Nama grafik tidak boleh kosong." + :import/extract-inline-code-snippets "Ekstrak potongan kode inline sebagai sub-bagian" + :import/file-finished "Impor selesai!" + :import/file-to-db-desc "Impor folder graf Logseq berbasis file ke graf DB baru" + :import/file-to-db-title "File ke graf DB" + :import/graph-name-conflict "Grafik dengan nama ini sudah ada. Pilih nama lain!" + :import/graph-name-placeholder "Nama grafik" + :import/ignored-assets "{1} berkas dilewati saat impor. Detail di konsol JavaScript." + :import/ignored-files "{1} berkas dilewati saat impor. Detail di konsol JavaScript." + :import/ignored-properties "{1} properti dilewati saat impor" + :import/ignored-properties-fix "Untuk memperbaiki tipe properti, ubah nilainya dan impor ulang" + :import/invalid-blocks-detected "{1} blok tidak valid. Interaksi mungkin tidak berfungsi. Detail di konsol JavaScript." + :import/invalid-edn-file "File EDN yang diberikan tidak valid. Perbaiki dan coba lagi." + :import/loading "Mengimpor" + :import/logseq-config-missing "Kesalahan: Grafik Logseq tidak memiliki file 'logseq/config.edn'." + :import/new-graph-name "Nama grafik baru" + :import/notes "Impor catatan" + :import/org-files-imported "{1} file Org diimpor sebagai Markdown. Dukungan Org akan ditambahkan nanti." + :import/page-icons-cannot-be-imported "Ikon halaman tidak dapat diimpor. Impor secara manual di halaman {1}." + :import/properties-case-insensitive-commas "Nama properti (tidak peka huruf besar-kecil, dipisahkan koma)" + :import/property-classes-placeholder "Contoh: type" + :import/property-import-manually "Properti ini harus diimpor secara manual" + :import/property-parent-classes-placeholder "Contoh: parent" + :import/property-type-mismatch "Nilai properti bertipe {1}, bukan {2}" + :import/property-value-tag-parents "Impor tag induk dari nilai properti" + :import/property-value-tags "Impor tag tambahan dari nilai properti" + :import/remove-inline-tags "Hapus tag inline" + :import/select-edn-or-json "Pilih file EDN atau JSON." + :import/specific-tags "Impor tag tertentu" + :import/sqlite-and-assets-desc "Impor zip yang berisi db.sqlite dan folder aset" + :import/sqlite-and-assets-title "SQLite + aset (.zip)" + :import/submitted-edn-invalid "Data EDN yang dikirim tidak valid! Perbaiki dan coba lagi." + :import/successful "Impor berhasil!" + :import/tag-classes-placeholder "tag1, tag2" + :import/tags-case-insensitive "Tag (tidak peka huruf besar-kecil)" + :import/title "Impor" + :import/unexpected-error "Kesalahan tidak terduga: {1}" + :import/zip-import-error "Impor zip gagal: {1}" + :import/zip-missing-db-sqlite "File ZIP tidak mengandung db.sqlite" + + :journal/add-blocks-to-today-success "Blok ditambahkan hari ini" + :journal/page-cant-convert-warning "Halaman ini bukan jurnal." + :journal/parse-date-to-name-error "Gagal mengurai nama jurnal" + + :journal.default-query/doing "SEDANG DIKERJAKAN" + :journal.default-query/todo "UNTUK DIKERJAKAN" + + :keymap/all "Semua" + :keymap/already-bound "Pintasan sudah ditetapkan" + :keymap/also-used-for-action "Juga digunakan untuk {1}" + :keymap/also-used-for-action-in-context "Juga digunakan untuk {1} Dalam konteks {2}" + :keymap/clear "Hapus" + :keymap/clear-keystroke-filter "Hapus filter ketukan tombol" + :keymap/clear-search "Hapus pencarian" + :keymap/custom "Kustom" + :keymap/deactivates-chord "Menonaktifkan" + :keymap/deactivates-chords "Menonaktifkan {1} kombinasi pintasan" + :keymap/disabled "Nonaktifkan" + :keymap/esc-is-reserved "Esc dicadangkan" + :keymap/hint-cancel "Batal" + :keymap/hint-close "Tutup" + :keymap/hint-reassign "Tetapkan ulang" + :keymap/hint-remove "Hapus" + :keymap/keystroke-filter "Filter Pekerjaan Tombol" + :keymap/no-matching-shortcuts "Tidak ada pintasan yang cocok" + :keymap/press-a-shortcut "Tekan pintasan" + :keymap/press-keys-to-filter "Tekan tombol untuk menyaring" + :keymap/reassign "Tetapkan ulang" + :keymap/reassign-tooltip "Tetapkan ulang pintasan tindakan ini" + :keymap/reassigned-from "Ditetapkan ulang dari {1}" + :keymap/refresh-all "Segarkan semua" + :keymap/remove-binding "Hapus ikatan" + :keymap/remove-filter "Hapus filter" + :keymap/reset "Setel ulang" + :keymap/reset-to-default "Reset ke default" + :keymap/search-by-keys "Cari berdasarkan tombol" + :keymap/search-placeholder "Cari pintasan…" + :keymap/shortcut-added "Pintasan ditambahkan" + :keymap/shortcut-removed "Pintasan dihapus" + :keymap/toggle-categories-pane "Alihkan panel kategori" + :keymap/undo "Batal" + :keymap/unset "Tidak diatur" + :keymap/used-by-action "Digunakan oleh {1}" + + :library/add-existing-pages "Tambahkan halaman yang ada ke Pustaka" + :library/add-pages "Tambah halaman" + :library/title "Pustaka" + + :mobile/camera-access-denied "Akses kamera ditolak. Aktifkan di Setelan > Logseq." + :mobile/microphone-access-denied "Akses mikrofon ditolak. Aktifkan di Setelan > Logseq." + + :mobile.header/actions "Tindakan" + :mobile.header/create-graph "Buat grafik" + :mobile.header/delete-block-confirm-desc "Hapus blok ini?" + :mobile.header/delete-page-confirm-desc "Hapus halaman ini?" + + :mobile.intent/file-options "Opsi File" + :mobile.intent/open-with-app "Buka file dengan aplikasi favorit Anda" + :mobile.intent/select-option-prompt "Pilih opsi untuk dilakukan" + :mobile.intent/share "Bagikan" + + :mobile.log/all "Semua" + :mobile.log/errors-only "Hanya kesalahan" + :mobile.log/full "Penuh" + :mobile.log/new-first "Terbaru dahulu" + :mobile.log/old-first "Terlama dahulu" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Akun" + :mobile.settings/check-log "Log" + :mobile.settings/discord-community "Komunitas Discord" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Laporkan bug" + :mobile.settings/revision "Revisi" + :mobile.settings/theme "Tema" + :mobile.settings/version "Versi" + + :mobile.share/file-import-error "Gagal mengimpor berkas" + :mobile.share/media-import-error "Gagal mengimpor media" + :mobile.share/unsupported-content-warning "Mengurai konten yang dibagikan saat ini tidak didukung. Silakan laporkan kode berikut di {1}. Kami akan segera memeriksanya." + :mobile.share/unsupported-import-type "Impor file {1} tidak didukung. Anda dapat melaporkannya di {2}. Kami akan segera memeriksanya." + + :mobile.tab/capture "Tangkap" + :mobile.tab/go-to "Buka" + :mobile.tab/graphs "Grafik" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Salin referensi" + :mobile.toolbar/copy-url "Salin url" + :mobile.toolbar/hide "Sembunyikan" + :mobile.toolbar/indent "Inden" + :mobile.toolbar/outdent "Kurangi sisipan" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Ulangi" + :mobile.toolbar/reference "Referensi" + :mobile.toolbar/slash "Garis miring" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Batal" + :mobile.toolbar/unselect "Batalkan pilihan" + + :nav/all-files "Semua berkas" + :nav/all-journals "Semua jurnal" + :nav/appearance "Tampilan" + :nav/assets "Berkas" + :nav/cannot-go-to-internal-page "Tidak dapat membuka halaman internal" + :nav/flashcards "Kartu flash" + :nav/graph "Grafik" + :nav/graph-view "Tampilan grafik" + :nav/help "Bantuan" + :nav/home "Beranda" + :nav/invalid-jump-error "Lompatan tidak valid" + :nav/journals "Jurnal" + :nav/plugins "Plugin" + :nav/search "Cari" + :nav/settings "Pengaturan" + :nav/skip-to-main-content "Lompat ke konten utama" + :nav/tasks "Tugas" + :nav/themes "Tema" + + :nav.all-pages/label "Semua halaman" + :nav.all-pages/title "Semua halaman" + + :node/built-in-cant-delete-error "Elemen bawaan tidak dapat dihapus." + :node/new "Node baru" + + :notification/clear-all "Hapus semua" + :notification/copied "Disalin" + + :onboarding.import/desc "Jika ia dalam format EDN atau Markdown, Logseq dapat bekerja dengannya." + :onboarding.import/sqlite-desc "Impor dari database SQLite" + :onboarding.import/title "Apakah Anda sudah memiliki catatan yang ingin Anda impor?" + + :onboarding.import-option/desc "Anda juga dapat melakukan ini nanti di aplikasi." + :onboarding.import-option/title "Mengimpor catatan yang ada" + + :onboarding.setup/desc "Pertama, Anda harus memilih folder di mana Logseq akan menyimpan pemikiran, ide, catatan Anda." + :onboarding.setup/title (fn [] ["Selamat datang di " [:strong "Logseq!"]]) + + :page/add-to-favorites "Tambahkan ke Favorit" + :page/added-tag-to-node "Menambahkan tag \"{1}\" ke \"{2}\"" + :page/backlinks "Tautan balik" + :page/clear "Bersihkan" + :page/clear-local-storage-desc "Ini akan menghapus preferensi minor seperti preferensi tema gelap/terang." + :page/cleared "Dibersihkan" + :page/contents "Konten" + :page/convert-to-tag "Ubah menjadi tag" + :page/copy-url "Salin URL halaman" + :page/create "Buat halaman baru" + :page/created-at "Dibuat pada" + :page/current-graph-as-sqlite-db "graf saat ini sebagai database SQLite" + :page/default-query-error "Kueri bawaan gagal:" + :page/delete "Hapus halaman" + :page/go-back-home "Kembali ke beranda" + :page/hide-properties "Sembunyikan properti" + :page/local-storage "penyimpanan lokal" + :page/logseq-is-having-a-problem "Logseq mengalami masalah. Untuk mencoba mengembalikannya ke keadaan yang berfungsi, silakan coba langkah-langkah aman berikut ini secara berurutan:" + :page/make-private "Buat pribadi" + :page/make-public "Buat publik untuk dipublikasikan" + :page/moved-to-recycle "Node telah dipindahkan ke Tempat Sampah" + :page/name "Nama halaman" + :page/no-page-found-to-copy "Tidak ditemukan halaman untuk disalin" + :page/not-found "Halaman tidak ditemukan" + :page/not-found-desc "Ups! Halaman yang Anda cari tidak ada." + :page/not-found-title "Halaman Tidak Ditemukan" + :page/not-found-warning "Halaman tidak ditemukan" + :page/open-all-graphs-desc "Anda juga dapat pergi ke {{All graphs}} untuk beralih ke graf lain." + :page/open-issue-desc "Jika langkah-langkah pemecahan masalah ini belum menyelesaikan masalah Anda, silakan {{open an issue}}." + :page/open-properties "Buka properti" + :page/rebuild "Bangun ulang" + :page/relaunch "Luncurkan ulang" + :page/relaunch-desc "Keluar dan buka kembali aplikasi." + :page/scheduled-and-deadline "Terjadwal dan Tenggat" + :page/search-index "indeks pencarian" + :page/send-db-for-debugging "Anda dapat mengirimkannya ke help@logseq.com untuk debugging." + :page/something-went-wrong "Ada masalah" + :page/step "Langkah {1}" + :page/the-app "aplikasi" + :page/try "Coba" + :page/unfavorite "Hapus dari Favorit" + :page/unknown "Halaman tidak dikenal" + :page/updated-at "Diperbarui pada" + + :page.convert/block-parent-not-page "Tidak dapat mengubah blok. Induk bukan halaman." + :page.convert/cant-be-block "Halaman \"{1}\" tidak dapat dikonversi menjadi blok." + :page.convert/cant-be-block-has-children "Halaman \"{1}\" tidak dapat diubah menjadi blok karena memiliki turunan halaman." + :page.convert/cant-be-block-move-first "Halaman \"{1}\" tidak dapat diubah menjadi blok, harap dipindahkan ke halaman lain terlebih dahulu." + :page.convert/page-to-tag-action "Ubah \"{1}\" menjadi tag" + :page.convert/page-to-tag-built-in "Halaman bawaan tidak bisa menjadi tag" + :page.convert/page-to-tag-duplicate "Tag dengan nama \"{1}\" sudah ada." + :page.convert/page-to-tag-namespaced "Halaman namespace tidak bisa menjadi tag" + :page.convert/property-value-to-page "Tidak dapat mengubah nilai properti menjadi halaman." + :page.convert/tag-to-page-action "Ubah tag menjadi halaman" + :page.convert/tag-to-page-built-in "Tag bawaan tidak bisa menjadi halaman" + :page.convert/tag-to-page-confirm-desc "Mengubah tag menjadi halaman juga akan menghapus properti tag tersebut dan tag itu dari semua node yang menggunakannya. Lanjutkan?" + :page.convert/tag-to-page-duplicate "Halaman dengan nama \"{1}\" sudah ada." + :page.convert/tag-to-page-has-children "Tag memiliki anak dan tidak bisa diubah" + + :page.delete/batch-confirm-title "Apakah Anda yakin ingin menghapus halaman-halaman ini? Properti dan tag akan dihapus secara permanen dan halaman akan dipindahkan ke Tempat Sampah." + :page.delete/confirm-title "Apakah Anda yakin ingin menghapus halaman ini?" + :page.delete/permanent-confirm-title "Apakah Anda yakin ingin menghapus halaman ini secara permanen?" + :page.delete/success "Halaman \"{1}\" berhasil dihapus!" + :page.delete/total "Total: {1}" + :page.delete/warning "Halaman-halaman ini telah dihapus isinya tetapi tidak dapat dihapus: {1}. Lihat konsol javascript untuk detail selengkapnya." + + :page.validation/cant-set-built-in-tags "Halaman baru tidak dapat menyetel tag bawaan: {1}" + :page.validation/duplicate "Halaman lain bernama \"{1}\" sudah ada untuk tag: {2}." + :page.validation/name-blank "Nama halaman tidak boleh kosong." + :page.validation/name-no-hash "Nama halaman tidak boleh mengandung #" + :page.validation/name-no-slash "Nama halaman tidak boleh mengandung /." + :page.validation/parents-must-be-pages "Induk harus berupa halaman." + + :pdf/annotations-page "Halaman anotasi" + :pdf/area-highlight-shortcut "Sorotan area ({1})" + :pdf/auto-fit "Sesuaikan otomatis" + :pdf/auto-open-context-menu "Buka menu konteks otomatis" + :pdf/copy-ref "Salin ref" + :pdf/copy-text "Salin teks" + :pdf/corrupted-file-error "Kesalahan: {1}\nApakah file .pdf ini rusak?\nSilakan konfirmasi dengan penampil pdf eksternal." + :pdf/doc-metadata "Metadata Dokumen" + :pdf/enter-to-search "Enter untuk mencari" + :pdf/find-results "{1} dari {2} kecocokan (\"{3}\")" + :pdf/generic-error "Kesalahan: {1}\n{2}\nSilakan konfirmasi dengan sumber file pdf." + :pdf/highlight-mode "Mode sorotan" + :pdf/highlights "Sorotan" + :pdf/hl-block-colored "Label berwarna untuk blok sorotan" + :pdf/linked-ref "Referensi terkait" + :pdf/load-highlights-file-error "Kesalahan: gagal memuat berkas sorotan \"{1}\". \n{2}" + :pdf/missing-file-error "Kesalahan: {1}\n Apakah ini jalur yang benar?" + :pdf/more-settings "Pengaturan lainnya" + :pdf/no-outlines "Tidak ada kerangka" + :pdf/not-found "Tidak ditemukan." + :pdf/open-in-app-window "Buka di jendela aplikasi" + :pdf/open-in-external-window "Buka di jendela eksternal" + :pdf/outline "Kerangka" + :pdf/page-label "Halaman {1}" + :pdf/password-protected-desc "Dokumen ini dilindungi kata sandi. Silakan masukkan kata sandi:" + :pdf/password-required "Kata sandi diperlukan" + :pdf/search "Cari" + :pdf/search-placeholder "cari" + :pdf/toggle-dashed "Gaya putus-putus untuk sorotan area" + :pdf/viewer "penampil pdf" + :pdf/zoom-in "Perbesar" + :pdf/zoom-out "Perkecil" + + :plugin/all "Semua" + :plugin/auto-update-check "Periksa otomatis pembaruan" + :plugin/auto-update-check-feedback "Pemeriksaan pembaruan otomatis: {1}!" + :plugin/check-all-updates "Periksa Semua Pembaruan" + :plugin/check-update "Periksa Pembaruan" + :plugin/checked "Diperiksa" + :plugin/checking-for-updates "Memeriksa pembaruan plugin ..." + :plugin/contribute "✨ Tulis dan kirimkan plugin baru" + :plugin/custom-js-alert "Ditemukan berkas custom.js, izinkan eksekusi? (Jika Anda tidak memahami kontennya, disarankan untuk tidak mengizinkan eksekusi, yang memiliki risiko keamanan tertentu.)" + :plugin/date-added "Tanggal ditambahkan" + :plugin/delete-alert "Apakah Anda yakin ingin menginstal plugin ini [{1}]?" + :plugin/disable-for-performance-feedback "Plugin {1} dinonaktifkan." + :plugin/disable-now "Nonaktifkan sekarang" + :plugin/disabled "Nonaktif" + :plugin/does-not-support-db "Tidak mendukung graf DB" + :plugin/downloads "Unduhan" + :plugin/empty "Tidak Ada yang Ditemukan." + :plugin/enabled "Aktif" + :plugin/existed-package "Paket plugin yang ada ({1})." + :plugin/fatal-error "Kesalahan fatal: {1}" + :plugin/found-n-updates "Ditemukan {1} Pembaruan" + :plugin/found-updates "Pembaruan Baru" + :plugin/install "Instal" + :plugin/install-error "Instalasi gagal: {1}\n{2}" + :plugin/installed "Terpasang" + :plugin/installed-plugin "Plugin Terpasang: {1}" + :plugin/installing "Sedang Menginstal" + :plugin/invalid-github-repo-url "URL repositori GitHub tidak valid" + :plugin/invalid-package "Paket tidak valid" + :plugin/invalid-plugins-edn "File plugins.edn tidak valid" + :plugin/list-of-updates "Pembaruan Plugin: " + :plugin/load-from-web-url "Muat dari URL web" + :plugin/load-plugin-indicator "Memuat plugin: {1}..." + :plugin/load-unpacked "Muatkan plugin yang diekstrak" + :plugin/loading-indicator "Memuat" + :plugin/malformed-plugins-edn "Kesalahan pada file plugins.edn" + :plugin/marketplace "Pasar" + :plugin/new-registered "Plugin baru terdaftar" + :plugin/no-settings-schema "Tidak Ada Skema Pengaturan!" + :plugin/not-installed "Belum Terpasang" + :plugin/open-logseq-dir "Buka" + :plugin/open-package "Buka paket" + :plugin/open-preferences "Buka Preferensi" + :plugin/open-settings "Buka pengaturan" + :plugin/perf-tip "Plugin {1} ini memerlukan waktu terlalu lama untuk dimuat, memengaruhi waktu startup aplikasi dan berpotensi menyebabkan plugin lain gagal dimuat." + :plugin/popular "Populer" + :plugin/proxy-check-success "Sukses! Status {1} dalam {2}ms." + :plugin/readme-empty-warning "Tidak ada konten README" + :plugin/refresh-lists "Segarkan Daftar" + :plugin/reload "Muat Ulang" + :plugin/remote-error "Kesalahan jarak jauh: {1}" + :plugin/report-modal-desc "Jika ada plugin yang tidak tersedia atau Anda berpikir itu berisi kode jahat, silakan kirim email ke {1}. Sebutkan nama plugin dan URL repositori GitHubnya. Tim Logseq biasanya merespons dalam satu hari kerja." + :plugin/report-security "Laporkan masalah keamanan" + :plugin/restart "Restart Aplikasi" + :plugin/search-plugin "Cari plugin" + :plugin/security-warning "Plugin dapat mengakses grafik dan berkas lokal Anda, mengeluarkan permintaan jaringan.\r\n Mereka juga dapat menyebabkan kerusakan atau kehilangan data. Kami sedang mengerjakan aturan akses yang tepat untuk grafik Anda.\r\n Sementara itu, pastikan Anda memiliki cadangan rutin dari grafik Anda dan hanya menginstal plugin ketika Anda dapat membaca dan\r\n mengerti kode sumbernya." + :plugin/setting-not-handled "#Tidak Ditangani# {1}" + :plugin/settings-schema-error "Kesalahan Skema Pengaturan!" + :plugin/stars "Bintang" + :plugin/supports-db "Dukungan DB" + :plugin/title "Judul ({1})" + :plugin/uninstall "Uninstal" + :plugin/unpacked "Diekstrak" + :plugin/unpacked-tips "Pilih direktori plugin" + :plugin/up-to-date "Ini terbaru {1}" + :plugin/update "Perbarui" + :plugin/update-all-selected "Perbarui Semua yang Dipilih" + :plugin/update-all-success "Semua Telah Diperbarui!" + :plugin/update-available "Pembaruan Tersedia" + :plugin/update-plugin "Perbarui Plugin: {1} - {2}" + :plugin/updates-downloading "Mengunduh Pembaruan" + :plugin/updating "Sedang Memperbarui" + + :plugin.install-from-file/menu-title "Instal dari plugins.edn" + :plugin.install-from-file/notice "Plugin berikut akan menggantikan plugin Anda:" + :plugin.install-from-file/success "Semua plugin terinstal!" + :plugin.install-from-file/title "Instal plugin dari plugins.edn" + + :plugin.install-from-web-url/effect-label "efek" + :plugin.install-from-web-url/repo-url-placeholder "URL repositori GitHub" + :plugin.install-from-web-url/supports-note "URL mendukung repositori GitHub dan server pengembangan lokal. (Contoh: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Menghapusnya hanya melepaskan plugin dari Logseq dan membiarkan folder sumber tetap utuh." + :plugin.package-config/parse-error "Gagal mengurai konfigurasi paket plugin." + :plugin.package-config/remove-error "Gagal menghapus plugin rusak." + :plugin.package-config/remove-external-success "Plugin rusak telah dihapus dari daftar plugin." + :plugin.package-config/remove-installed-success "Plugin rusak \"{1}\" telah dihapus." + + :plugin.proxy/direct "Langsung" + :plugin.proxy/system "Sistem" + :plugin.proxy/test-url "Uji URL" + :plugin.proxy/testing "Menguji" + + :plugin.settings/edit-settings-json "Sunting settings.json" + :plugin.settings/exit-code-mode "Keluar dari mode kode" + :plugin.settings/title "Pengaturan plugin" + + :plugin.themes/default-desc "Tema {1} bawaan Logseq." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "tema {1}" + :plugin.themes/light-and-dark "tema terang & gelap" + + :profiler/input-fn-placeholder "masukkan nama fungsi di sini" + :profiler/unregister "Batalkan pendaftaran" + + :property/add-choice "Tambah pilihan" + :property/add-choices "Tambah pilihan" + :property/add-description "Tambah deskripsi" + :property/add-new "Tambah properti" + :property/add-or-change "Tambah atau ubah properti" + :property/available-choices "Pilihan tersedia" + :property/change-tooltip "Ubah {1}" + :property/checkbox-state-mapping "Pemetaan status checkbox" + :property/children-count "Anak-anak ({1})" + :property/choices-count "{1} pilihan" + :property/choose-tag "Pilih tag" + :property/choose-tags "Pilih tag" + :property/clear-value "Kosongkan" + :property/configure "Konfigurasi" + :property/convert-page-to-property "Ubah \"{1}\" menjadi properti" + :property/create-error "Gagal membuat properti." + :property/default-value "Nilai default" + :property/delete-from-node "Hapus dari node" + :property/delete-from-node-confirm "Hapus properti ini dari node?" + :property/delete-from-tag "Hapus dari tag" + :property/delete-from-tag-confirm "Hapus properti ini dari tag?" + :property/description-placeholder "Masukkan deskripsi" + :property/drag-to-reorder "Seret untuk mengurutkan" + :property/existing-values "Nilai yang ada" + :property/go-to-this-property "Buka halaman properti" + :property/hidden-properties "Properti tersembunyi" + :property/hide-by-default "Sembunyikan secara default" + :property/hide-choice-for-tag "Sembunyikan pilihan untuk tag" + :property/hide-empty-value "Sembunyikan nilai kosong" + :property/hide-for-tag "Sembunyikan untuk #{1}" + :property/hide-hidden-choices "Sembunyikan pilihan tersembunyi" + :property/map-checked-to "Petakan tercentang ke" + :property/map-unchecked-to "Petakan tidak tercentang ke" + :property/more-settings "Pengaturan lainnya" + :property/multiple-values "Nilai ganda" + :property/multiple-values-confirm "Aktifkan nilai ganda?" + :property/name "Nama" + :property/name-placeholder "Nama properti" + :property/nodes-with-property "Node dengan properti" + :property/overdue "Terlambat" + :property/private-built-in-not-usable "Properti bawaan privat tidak dapat digunakan" + :property/select-choice "Pilih pilihan" + :property/select-property-placeholder "Pilih properti" + :property/select-type-placeholder "Pilih tipe properti" + :property/self-reference "Referensi mandiri" + :property/set-default-choice "Atur pilihan default" + :property/set-default-value "Tetapkan nilai default" + :property/set-icon "Atur ikon" + :property/set-placeholder "Atur {1}" + :property/set-property "Atur properti" + :property/set-tags "Atur tag" + :property/set-value "Atur nilai" + :property/show-as-checkbox-on-node "Tampilkan sebagai checkbox di node" + :property/show-as-checkbox-on-tagged-nodes "Tampilkan sebagai checkbox di node bertag" + :property/show-hidden-choices "Tampilkan pilihan tersembunyi" + :property/skip-choosing-tag "Lewati pemilihan tag" + :property/specify-node-tags "Tentukan tag node" + :property/title-placeholder "Judul" + :property/type "Tipe" + :property/type-change-warning "Mengubah tipe properti akan menghapus beberapa konfigurasi properti." + :property/type-checkbox "Checkbox" + :property/type-date "Tanggal" + :property/type-datetime "Tanggal/Waktu" + :property/type-locked-help "Tipe terkunci" + :property/type-node "Node" + :property/type-number "Angka" + :property/type-text "Teks" + :property/type-url "URL" + :property/ui-position "Posisi UI" + :property/ui-position-block-below "Di bawah blok" + :property/ui-position-block-left "Kiri blok" + :property/ui-position-block-right "Kanan blok" + :property/ui-position-properties "Properti" + :property/unset-property "Hapus properti" + :property/update-success "Diperbarui" + + :property.built-in/alias "Alias" + :property.built-in/asset "Aset" + :property.built-in/asset-align "Perataan aset" + :property.built-in/asset-checksum "Checksum file" + :property.built-in/asset-external-file-name "Nama file eksternal" + :property.built-in/asset-external-url "URL eksternal" + :property.built-in/asset-height "Tinggi gambar" + :property.built-in/asset-last-visit-page "Halaman terakhir dikunjungi" + :property.built-in/asset-remote-metadata "Metadata jarak jauh file" + :property.built-in/asset-resize-metadata "Metadata pengubahan ukuran aset" + :property.built-in/asset-size "Ukuran File" + :property.built-in/asset-type "Tipe File" + :property.built-in/asset-width "Lebar gambar" + :property.built-in/background-color "Warna latar belakang" + :property.built-in/built-in "Bawaan?" + :property.built-in/checkbox-display-properties "Properti ditampilkan sebagai kotak centang" + :property.built-in/choice-checkbox-state "Status kotak centang pilihan" + :property.built-in/choice-classes "Kelas pilihan" + :property.built-in/choice-exclusions "Pengecualian pilihan" + :property.built-in/class-bidirectional-property-title "Judul properti dua arah" + :property.built-in/class-enable-bidirectional "Aktifkan properti dua arah" + :property.built-in/class-extends "Memperluas" + :property.built-in/class-hide-from-node "Sembunyikan dari Node" + :property.built-in/class-properties "Properti Tag" + :property.built-in/classes "Kelas properti" + :property.built-in/closed-value-property "Properti nilai tertutup" + :property.built-in/code-lang "Mode Kode" + :property.built-in/collapsed "Node diciutkan?" + :property.built-in/created-at "Node dibuat pada" + :property.built-in/created-by-ref "Node dibuat oleh" + :property.built-in/created-from-property "Dibuat dari properti" + :property.built-in/deadline "Tenggat" + :property.built-in/default-value "Nilai bawaan" + :property.built-in/deleted-at "Dihapus pada" + :property.built-in/deleted-by-ref "Dihapus oleh" + :property.built-in/description "Deskripsi" + :property.built-in/enable-history "Aktifkan riwayat properti" + :property.built-in/exclude-from-graph-view "Dikecualikan dari tampilan Graf?" + :property.built-in/fsrs-due "Jatuh tempo" + :property.built-in/fsrs-state "Status" + :property.built-in/heading "Judul" + :property.built-in/hide "Sembunyikan properti atau halaman ini" + :property.built-in/hide-empty-value "Sembunyikan nilai kosong" + :property.built-in/history-block "Blok riwayat" + :property.built-in/history-property "Properti riwayat" + :property.built-in/history-ref-value "Nilai riwayat" + :property.built-in/history-scalar-value "Nilai skalar riwayat" + :property.built-in/icon "Ikon" + :property.built-in/journal-day "Tanggal jurnal" + :property.built-in/journal-title-format "Format Judul" + :property.built-in/link "Node menautkan ke" + :property.built-in/linked-references-excludes "Referensi yang dikecualikan" + :property.built-in/linked-references-includes "Referensi yang disertakan" + :property.built-in/ls-type "Tipe LS" + :property.built-in/node-display-type "Tipe Tampilan Node" + :property.built-in/order "Urutan node" + :property.built-in/order-list-type "Tipe daftar" + :property.built-in/page "Halaman node" + :property.built-in/page-tags "Tag Halaman" + :property.built-in/parent "Induk node" + :property.built-in/priority "Prioritas" + :property.built-in/public "Properti publik?" + :property.built-in/publish-published-url "URL yang diterbitkan" + :property.built-in/publishing-public "Penerbitan Publik?" + :property.built-in/query "Kueri" + :property.built-in/reaction-emoji-id "Emoji reaksi" + :property.built-in/reaction-target "Target reaksi" + :property.built-in/recycle-original-order "Urutan asli tempat sampah" + :property.built-in/recycle-original-page "Halaman asli tempat sampah" + :property.built-in/recycle-original-parent "Induk asli tempat sampah" + :property.built-in/refs "Referensi node" + :property.built-in/repeat-checked-property "Properti Tercentang Berulang" + :property.built-in/repeat-recur-frequency "Frekuensi pengulangan" + :property.built-in/repeat-recur-unit "Satuan pengulangan" + :property.built-in/repeat-repeated "Node Berulang?" + :property.built-in/repeat-temporal-property "Properti Temporal Berulang" + :property.built-in/scalar-default-value "Nilai bawaan tipe non-referensi" + :property.built-in/scheduled "Terjadwal" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Referensi ke judul blok besar yang disimpan di penyimpanan objek jarak jauh" + :property.built-in/table-filters "Filter tampilan" + :property.built-in/table-hidden-columns "Kolom tersembunyi tampilan" + :property.built-in/table-ordered-columns "Kolom terurut tampilan" + :property.built-in/table-pinned-columns "Kolom tersemat tampilan tabel" + :property.built-in/table-sized-columns "Pengaturan kolom tampilan" + :property.built-in/table-sorting "Pengurutan tampilan" + :property.built-in/tags "Tag" + :property.built-in/template-applied-to "Terapkan templat ke tag" + :property.built-in/title "Judul node" + :property.built-in/type "Tipe properti" + :property.built-in/ui-position "Posisi properti" + :property.built-in/updated-at "Node diperbarui pada" + :property.built-in/used-template "Templat yang digunakan" + :property.built-in/user-avatar "Avatar Pengguna" + :property.built-in/user-email "Email Pengguna" + :property.built-in/user-name "Nama Pengguna" + :property.built-in/value "Nilai properti" + :property.built-in/view-context "Konteks tampilan properti" + :property.built-in/view-feature-type "Tipe Fitur Tampilan" + :property.built-in/view-for "Tampilan ini milik" + :property.built-in/view-group-by-property "Kelompokkan tampilan berdasarkan properti" + :property.built-in/view-sort-groups-by-property "Urutkan grup tampilan berdasarkan" + :property.built-in/view-sort-groups-desc "Urutkan grup tampilan menurun" + :property.built-in/view-type "Tipe Tampilan" + + :property.choice/already-exists "Pilihan sudah ada." + :property.choice/cant-delete-built-in "Tidak dapat menghapus pilihan bawaan." + :property.choice/invalid "Pilihan \"{1}\" tidak valid untuk properti ini: {2}" + + :property.color/blue "biru" + :property.color/green "hijau" + :property.color/purple "ungu" + :property.color/red "merah" + :property.color/yellow "kuning" + + :property.priority/high "Tinggi" + :property.priority/low "Rendah" + :property.priority/medium "Sedang" + :property.priority/urgent "Mendesak" + + :property.repeat/date "Tanggal pengulangan" + :property.repeat/datetime "Tanggal dan waktu pengulangan" + :property.repeat/every "Setiap" + :property.repeat/is-label "adalah:" + :property.repeat/task "Tugas berulang" + :property.repeat/when "Kapan" + + :property.repeat-recur-unit/day "Hari" + :property.repeat-recur-unit/hour "Jam" + :property.repeat-recur-unit/minute "Menit" + :property.repeat-recur-unit/month "Bulan" + :property.repeat-recur-unit/week "Minggu" + :property.repeat-recur-unit/year "Tahun" + + :property.status/backlog "Backlog" + :property.status/canceled "Dibatalkan" + :property.status/doing "Sedang Dikerjakan" + :property.status/done "Selesai" + :property.status/in-review "Dalam Peninjauan" + :property.status/todo "Untuk Dikerjakan" + + :property.validation/cant-convert-to-number "Tidak dapat mengonversi \"{1}\" menjadi angka." + :property.validation/cant-remove-required "Tidak dapat menghapus properti wajib." + :property.validation/cant-set-self-value "Tidak dapat menetapkan diri sebagai nilai propertinya." + :property.validation/duplicate "Properti '{1}' sudah ada." + :property.validation/invalid-name "Ini adalah nama properti yang tidak valid. Nama properti tidak boleh diawali dengan karakter referensi halaman '#' atau '[['." + :property.validation/invalid-value "Properti \"{1}\" memiliki nilai tidak valid: {2}" + :property.validation/many-to-one "Tidak dapat mengubah properti bernilai ganda menjadi tunggal." + :property.validation/protected "Properti ini dilindungi dan tidak dapat diubah." + + :property.view-type/gallery "Tampilan Galeri" + :property.view-type/list "Tampilan Daftar" + :property.view-type/table "Tampilan Tabel" + + :publish/action "Terbitkan" + :publish/dialog-desc "Lindungi halaman ini dengan kata sandi (opsional). Biarkan kosong untuk akses publik." + :publish/dialog-title "Terbitkan halaman" + :publish/invalid-page-error "Halaman tidak valid" + :publish/password-optional-placeholder "Kata sandi opsional" + :publish/publish-error "Publikasi gagal" + :publish/published-to "Dipublikasikan ke {1}" + :publish/publishing "Menerbitkan..." + :publish/unpublish "Batalkan publikasi" + :publish/unpublish-error "Pembatalan publikasi gagal" + :publish/unpublish-missing-page-id "Pembatalan publikasi: ID halaman tidak ditemukan" + :publish/unpublished "Publikasi dibatalkan" + + :query/advanced-results "Hasil kueri lanjutan" + :query/custom-view-error "Kesalahan tampilan kustom: {1}" + :query/error "Kesalahan kueri:" + :query/examples-desc "Lihat lebih banyak contoh di {{Queries documentation}}." + :query/examples-title "Contoh kueri:" + :query/results-for "Hasil untuk {1}" + + :query.builder/add-filter-or-operator-placeholder "Tambah filter/operator" + :query.builder/between-end-label "Tanggal akhir" + :query.builder/between-journal-label "antara: {1} ~ {2}" + :query.builder/between-start-label "Tanggal mulai" + :query.builder/created-label "Dibuat" + :query.builder/filter "Filter" + :query.builder/filter-full-text-search-label "Pencarian teks lengkap" + :query.builder/filter-page-label "Halaman" + :query.builder/filter-page-reference-label "Referensi halaman" + :query.builder/filter-sample-label "Contoh" + :query.builder/operator-and-label "dan" + :query.builder/operator-not-label "bukan" + :query.builder/replace-with-label "Ganti dengan:" + :query.builder/search-label "Cari: {1}" + :query.builder/show-built-in-properties "Tampilkan properti bawaan" + :query.builder/unwrap-operator "Buka bungkus" + :query.builder/updated-label "Diperbarui" + :query.builder/wrap-filter-with-label "Bungkus filter ini dengan:" + + :reference/blocks "Referensi blok" + :reference/copy "Salin referensi ini" + :reference/delete "Hapus referensi ini" + :reference/page-filter "Filter halaman" + :reference/replace-with-embed "Ganti dengan penanaman" + :reference/replace-with-text "Ganti dengan teks" + + :reference.filter/directions "Arah filter" + :reference.filter/excludes "Dikecualikan" + :reference.filter/includes "Disertakan" + :reference.filter/search-placeholder "Cari di halaman terhubung" + :reference.filter/title "Filter" + + :search/blank-input "Input kosong" + :search/full-text-placeholder "Pencarian teks lengkap" + :search/index-progress "Mengindeks {1}%" + :search/indices-rebuilt-success "Indeks pencarian berhasil dibangun kembali!" + :search/no-result "Tidak ada hasil yang cocok" + :search/result-count "{1} hasil" + + :search.find-in-page/input-placeholder "Temukan di halaman" + :search.find-in-page/match-case "Cocokkan huruf besar/kecil" + :search.find-in-page/next-result "Hasil berikutnya" + :search.find-in-page/previous-result "Hasil sebelumnya" + + :select/default-prompt "Pilih salah satu" + :select/default-select-multiple "Pilih satu atau beberapa" + :select/new-option "+ Opsi baru: {1}" + + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "URL MCP disalin" + :server/start "Mulai" + :server/stop "Berhenti" + :server/title "Server HTTP API" + + :server.config/auto-start-label "Mulai otomatis" + :server.config/port-label "Rentang port" + :server.config/reset "Setel ulang" + :server.config/save-and-apply "Simpan dan terapkan" + :server.config/title "Konfigurasi server" + + :server.status/closed "Tertutup" + :server.status/closing "Menutup" + :server.status/error "Kesalahan" + :server.status/running "Berjalan" + :server.status/starting "Memulai" + :server.status/stopped "Berhenti" + + :server.token/add-new "Tambah token baru" + :server.token/name-placeholder "Nama server" + :server.token/regenerate-value "Buat ulang nilai token" + :server.token/title "Token otorisasi" + :server.token/update-success "Token diperbarui" + :server.token/value-placeholder "Nilai" + + :settings/account "Akun" + :settings/advanced "Lanjutan" + :settings/ai "AI" + :settings/collaboration "Kolaborasi" + :settings/editor "Editor" + :settings/encryption "Enkripsi" + :settings/features "Fitur" + :settings/general "Umum" + :settings/keymap "Pemetaan tombol" + :settings/plugins "Pengaturan plugin" + + :settings.account/storage-usage "{1}GB dari {2}GB total penyimpanan ({3})" + :settings.account/synced-graphs "{1} dari {2} grafik yang disinkronkan ({3})" + + :settings.advanced/auto-chmod "chmod otomatis" + :settings.advanced/auto-chmod-desc "Atur izin file secara otomatis" + :settings.advanced/auto-updater "Pembaruan otomatis" + :settings.advanced/developer-mode "Mode pengembang" + :settings.advanced/developer-mode-desc "Mode pengembang membantu kontributor dan pengembang ekstensi menguji integrasi mereka dengan Logseq dengan lebih efisien." + :settings.advanced/disable-sentry "Kirim data penggunaan dan diagnosa ke Logseq" + :settings.advanced/disable-sentry-desc "Logseq tidak akan pernah mengumpulkan database grafik lokal Anda atau menjual data Anda." + :settings.advanced/network-proxy "Proxy jaringan" + + :settings.ai/enable-mcp-server "Aktifkan server MCP" + :settings.ai/enable-mcp-server-desc "Aktifkan server MCP untuk integrasi AI" + + :settings.editor/auto-expand-block-refs "Perluas referensi blok secara otomatis saat zoom-in" + :settings.editor/auto-expand-block-refs-tip "Opsi ini mengontrol apakah referensi blok akan diperluas secara otomatis saat zoom-in." + :settings.editor/custom-date-format "Format tanggal yang diinginkan" + :settings.editor/enable-all-pages-public "Semua halaman menjadi publik saat dipublikasikan" + :settings.editor/enable-shortcut-tooltip "Aktifkan tooltip pintasan" + :settings.editor/enable-tooltip "Tooltip" + :settings.editor/preferred-outdenting "Pengaturan penyingkiran logis" + :settings.editor/preferred-outdenting-tip "Sisi kiri menunjukkan penyingkiran dengan pengaturan default, dan sisi kanan menunjukkan penyingkiran logis yang diaktifkan " + :settings.editor/preferred-outdenting-tip-more "→ Pelajari lebih lanjut" + :settings.editor/preferred-pasting-file "Lebih suka menempelkan berkas" + :settings.editor/preferred-pasting-file-hint "Ketika diaktifkan, menempelkan gambar dari internet akan mengunduh dan menyisipkan gambar. Ketika dinonaktifkan, akan menempelkan tautan ke gambar." + :settings.editor/show-brackets "Tampilkan tanda kurung" + :settings.editor/show-full-blocks "Tampilkan semua baris referensi blok" + :settings.editor/spell-checker "Pemeriksa ejaan" + :settings.editor/wide-mode "Mode lebar" + + :settings.features/enable-flashcards "Kartu Belajar" + :settings.features/enable-journals "Jurnal" + :settings.features/home-default-page "Atur halaman beranda default" + :settings.features/home-default-page-update-success "Halaman default diperbarui" + :settings.features/journals-enable-success "Jurnal diaktifkan" + :settings.features/login-prompt "Untuk mengakses fitur-fitur baru sebelum orang lain, Anda harus menjadi Sponsor atau Pendukung Logseq di Open Collective dan oleh karena itu harus masuk terlebih dahulu." + :settings.features/page-not-found "Halaman \"{1}\" belum ada. Harap buat halaman itu terlebih dahulu, lalu coba lagi." + :settings.features/plugin-system "Pengaya" + + :settings.general/accent-color "Warna aksen" + :settings.general/accent-color-alert "Peringatan warna" + :settings.general/accent-color-logseq "Warna klasik Logseq" + :settings.general/accent-color-none-desc "Batalkan warna aksen. Ini saat ini dalam tahap beta dan terutama digunakan untuk kompatibilitas dengan tema khusus." + :settings.general/changelog "Apa yang baru?" + :settings.general/check-for-updates "Periksa pembaruan" + :settings.general/current-revision-label "Revisi saat ini" + :settings.general/current-version "Versi saat ini" + :settings.general/custom-configuration "Konfigurasi kustom" + :settings.general/custom-global-configuration "Konfigurasi global kustom" + :settings.general/custom-theme "Tema kustom" + :settings.general/edit-config-edn "Sunting config.edn" + :settings.general/edit-custom-css "Sunting custom.css" + :settings.general/edit-export-css "Sunting export.css" + :settings.general/edit-global-config-edn "Sunting global config.edn" + :settings.general/editor-font "Font editor" + :settings.general/editor-font-set-global "Atur sebagai keluarga font global" + :settings.general/export-theme "Ekspor tema" + :settings.general/language "Bahasa" + :settings.general/native-titlebar "Bilah judul asli" + :settings.general/native-titlebar-desc "Aktifkan bilah judul jendela asli di Windows dan Linux." + :settings.general/refresh-required-feedback "Perlu dimuat ulang" + :settings.general/release-channel "saluran rilis" + :settings.general/revision "Revisi: {1}" + :settings.general/theme-dark "gelap" + :settings.general/theme-light "terang" + :settings.general/theme-system "sistem" + + :settings.sync-server/clear-success "URL server sinkronisasi dihapus. Menggunakan Logseq Sync resmi." + :settings.sync-server/reset "Reset ke default" + :settings.sync-server/save-success "URL server sinkronisasi disimpan." + :settings.sync-server/url "URL Server Sinkronisasi" + :settings.sync-server/url-desc "Tetapkan URL server sinkronisasi HTTPS kustom untuk sinkronisasi self-hosted. Token autentikasi Logseq Anda akan dikirim ke server ini, jadi gunakan hanya URL yang tepercaya. Biarkan kosong untuk menggunakan Logseq Sync resmi." + :settings.sync-server/url-invalid-error "URL harus diawali dengan https:// atau http://" + + :shell/input-command-title "Masukkan perintah" + + :shortcut.category/basics "Dasar" + :shortcut.category/block-command-editing "Penyuntingan Perintah Blok" + :shortcut.category/block-editing "Penyuntingan Blok Umum" + :shortcut.category/block-selection "Pemilihan Blok (tekan Esc untuk keluar dari pemilihan)" + :shortcut.category/formatting "Pemformatan" + :shortcut.category/navigating "Navigasi" + :shortcut.category/others "Lainnya" + :shortcut.category/plugins "Plugin" + :shortcut.category/toggle "Beralih" + + :sidebar.left/favorites "Favorit" + :sidebar.left/navigations "Navigasi" + :sidebar.left/recent-pages "Halaman terbaru" + + :sidebar.right/close "Tutup" + :sidebar.right/close-all "Tutup semua" + :sidebar.right/close-others "Tutup yang lain" + :sidebar.right/collapse "Menciutkan" + :sidebar.right/collapse-all "Tutup semua" + :sidebar.right/collapse-others "Menciutkan yang lain" + :sidebar.right/expand "Memperluas" + :sidebar.right/expand-all "Perluas semua" + :sidebar.right/more "Lebih banyak" + :sidebar.right/open "Buka di sidebar" + :sidebar.right/open-as-page "Buka sebagai halaman" + :sidebar.right/resize-handle "Pengatur ukuran bilah sisi kanan" + :sidebar.right/toggle "Beralih ke bilah sisi kanan" + + :storage/invalid-data-writing "Penulisan data tidak valid." + :storage/sqlitedb-error "Kesalahan SQLiteDB: {1}" + :storage/sqlitedb-import-error "Kesalahan impor SQLiteDB: {1}" + :storage/sqlitedb-save-error "Kesalahan penyimpanan SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Blok dihapus {1}" + :storage.recycle/empty "Tempat Sampah kosong." + :storage.recycle/page-deleted-at "Halaman dihapus {1}" + :storage.recycle/readonly "Tempat sampah (hanya-baca)" + :storage.recycle/restore "Pulihkan" + :storage.recycle/retention-desc "Halaman dan blok yang dihapus tetap di sini sampai dipulihkan atau dibersihkan otomatis setelah 30 hari." + :storage.recycle/title "Tempat Sampah" + + :sync/assets-downloading-count "Mengunduh aset ({1})" + :sync/assets-uploading-count "Mengunggah aset ({1})" + :sync/creating-remote-graph "Membuat graph jarak jauh..." + :sync/downloading "Mengunduh..." + :sync/downloading-graph "Mengunduh {1} ..." + :sync/graph-count-exceed-limit "Jumlah grafik melebihi batas" + :sync/invitation-sent "Undangan terkirim" + :sync/last-synced-time-label "Waktu sinkronisasi terakhir: {1}" + :sync/more-debug-info "Info debug lainnya" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "perubahan lokal yang tertunda" + :sync/pending-server-changes "perubahan server yang tertunda" + :sync/something-wrong "Kesalahan sinkronisasi" + :sync/start-sync "Mulai sinkronisasi" + :sync/storage-exceed-limit "Penyimpanan melebihi batas" + :sync/uploading "Mengunggah..." + :sync/user-doesnt-exist-yet "Pengguna belum ada" + + :theme/logseq-default "Tema bawaan Logseq" + :theme/switch-to "Beralih ke tema {1}" + + :ui/all-done "Semua Selesai!" + :ui/apply "Terapkan" + :ui/cancel "Batal" + :ui/close "Tutup" + :ui/configure "Konfigurasikan" + :ui/confirm "Konfirmasi" + :ui/copy "Salin" + :ui/copy-all "Salin semua" + :ui/copy-to-clipboard "Salin ke papan klip" + :ui/create "Buat" + :ui/date-natural-language-placeholder "mis. Minggu depan" + :ui/delete "Hapus" + :ui/deleted "Dihapus" + :ui/dont-remind-me-again "Jangan ingatkan saya lagi" + :ui/empty "Kosong" + :ui/error "Kesalahan" + :ui/error-boundary-error "Kesalahan tertangkap oleh UI!\n {1}" + :ui/export "Ekspor" + :ui/false "Salah" + :ui/fix "Perbaiki!" + :ui/frequently-used "Sering digunakan" + :ui/from "Dari: " + :ui/host "Host" + :ui/image "gambar" + :ui/label "Label" + :ui/link "Tautan" + :ui/load-more "Muat lebih banyak" + :ui/loading "Memuat" + :ui/login "Masuk" + :ui/logout "Keluar" + :ui/off "Nonaktif" + :ui/on "Aktif" + :ui/open "Buka" + :ui/open-named "Buka {1}" + :ui/port "Port" + :ui/refresh "Segarkan" + :ui/relaunch-confirm "Perubahan ini memerlukan aplikasi dimulai ulang. Mulai ulang sekarang?" + :ui/remove-background "Hapus latar belakang" + :ui/reset "Setel ulang" + :ui/run "Jalankan" + :ui/save "Simpan" + :ui/show-less "Tampilkan lebih sedikit" + :ui/show-more "Tampilkan lebih banyak" + :ui/skip "Lewati" + :ui/submit "Kirim" + :ui/to "Ke: " + :ui/toggle-theme "Ganti tema" + :ui/true "Benar" + :ui/type "Tipe" + :ui/untitled "Tanpa judul" + :ui/use-current-time "Gunakan waktu saat ini" + :ui/yes "Ya" + + :updater/checking-for-updates "Memeriksa pembaruan" + :updater/downloading-progress "Mengunduh pembaruan ({1}%)" + :updater/quit-and-install "Mulai ulang dan pasang" + :updater/up-to-date "Aplikasi Anda sudah terbaru 🎉" + :updater/update-available "Pembaruan tersedia" + :updater/update-error "⚠️ Ups, Ada Sesuatu yang Salah!\nSilakan cek {1}." + :updater/update-ready-to-install "Pembaruan siap dipasang" + + :view/add-new-view "Tambah tampilan" + :view/all "Semua" + :view/export-edn "Ekspor EDN" + :view/linked-references "Referensi tertaut" + :view/new "Baru" + :view/new-property "Properti baru" + :view/new-view "Tampilan baru" + :view/rename "Ganti nama" + :view/results "Hasil:" + :view/unlinked-references "Referensi tidak tertaut" + + :view.filter/custom-date "Tanggal kustom" + :view.filter/empty "Kosong" + :view.filter/filter "Filter" + :view.filter/from "Dari" + :view.filter/is-empty "Kosong" + :view.filter/is-not-empty "Tidak kosong" + :view.filter/match "Cocok" + :view.filter/match-all-filters "Cocok semua filter" + :view.filter/match-any-filter "Cocok filter apa pun" + :view.filter/operator-after "Setelah" + :view.filter/operator-before "Sebelum" + :view.filter/operator-between "Antara" + :view.filter/operator-date-after "Setelah tanggal" + :view.filter/operator-date-before "Sebelum tanggal" + :view.filter/operator-is "Adalah" + :view.filter/operator-is-not "Bukan" + :view.filter/operator-text-contains "Mengandung" + :view.filter/operator-text-not-contains "Tidak mengandung" + :view.filter/or "Atau" + :view.filter/relative-1-day-ago "1 hari lalu" + :view.filter/relative-1-month-ago "1 bulan lalu" + :view.filter/relative-1-week-ago "1 minggu lalu" + :view.filter/relative-1-year-ago "1 tahun lalu" + :view.filter/relative-3-days-ago "3 hari lalu" + :view.filter/relative-3-months-ago "3 bulan lalu" + :view.filter/to "Ke" + :view.filter/type-to-search "Ketik untuk mencari" + + :view.table/ascending "Naik" + :view.table/columns-visibility "Tampilkan kolom" + :view.table/default-title "{1} node" + :view.table/delete-sort "Hapus pengurutan" + :view.table/descending "Turun" + :view.table/drag-to-reorder "Seret untuk mengurutkan" + :view.table/group-by "Kelompokkan berdasarkan" + :view.table/group-journal-date "Tanggal jurnal" + :view.table/group-page-created-date "Tanggal pembuatan halaman" + :view.table/group-page-name "Nama halaman" + :view.table/group-page-updated-date "Tanggal pembaruan halaman" + :view.table/live-query-title "Kueri langsung ({1})" + :view.table/name-column "Nama" + :view.table/no-group-value "Tidak ada {1}" + :view.table/page "Halaman" + :view.table/pages "Halaman" + :view.table/pin "Sematkan" + :view.table/row-number "Nomor baris" + :view.table/select-all "Pilih semua" + :view.table/select-column "Pilih kolom" + :view.table/select-order "Pilih urutan" + :view.table/select-row "Pilih baris" + :view.table/selected-count "Dipilih: {1}" + :view.table/sort-ascending "Naik" + :view.table/sort-descending "Turun" + :view.table/sort-groups-by "Urutkan grup berdasarkan" + :view.table/sort-groups-order "Urutan grup" + :view.table/total-refs-count "Total referensi" + :view.table/unpin "Lepas sematan" + + :window/close "Tutup" + :window/exit-fullscreen "Keluar dari layar penuh" + :window/maximize "Maksimalkan" + :window/minimize "Minimalkan" + :window/restore "Pulihkan" + + :youtube/embed-first-reminder-mobile "Silakan sisipkan video YouTube terlebih dahulu, kemudian gunakan ikon ini.\nIngat: Anda dapat menempel URL YouTube mentah sebagai video yang disematkan di seluler." + :youtube/player-not-ready "Pemutar YouTube belum siap." + :youtube/timestamps-not-available-mobile "Cap waktu YouTube belum tersedia di seluler." + + :zotero/attachments "Lampiran" + :zotero/imported-file-warning "Ini adalah file Zotero yang diimpor, atur direktori data Zotero untuk membuka file ini di Logseq." + :zotero/linked-file-warning "Ini adalah file Zotero yang ditautkan, atur direktori dasar lampiran tertaut Zotero untuk membuka file ini di Logseq." + :zotero/notes "Catatan" +} diff --git a/src/resources/dicts/it.edn b/src/resources/dicts/it.edn index 7ac4129f25..c2f40a0252 100644 --- a/src/resources/dicts/it.edn +++ b/src/resources/dicts/it.edn @@ -1,458 +1,1861 @@ -{:help/start "Per iniziare" - :help/about "Informazioni su Logseq" - :help/bug "Segnala un problema" - :help/feature "Richiedi una funzionalità" - :help/changelog "Registro delle modifiche" - :help/blog "blog di Logseq" - :help/docs "Documentazione" - :help/privacy "Politica sulla riservatezza" - :help/terms "Termini di Servizio" - :help/shortcuts "Scorciatoie da tastiera" - :help/shortcuts-triggers "Attivazione delle scorciatoie" - :help/shortcut "Scorciatoia" - :help/slash-autocomplete "Completamento automatico con barra (/)" - :help/reference-autocomplete "Completamento automatico del riferimento di pagina" - :help/block-reference "Riferimento di blocco" - :help/open-link-in-sidebar "Apri il link nel pannello laterale" - :help/context-menu "Menù contestuale del blocco" - :help/markdown-syntax "Sintassi Markdown" - :bold "Grassetto" - :italics "Corsivo" - :highlight "Evidenzia" - :strikethrough "Barrato" - :code "Codice" - :right-side-bar/help "Aiuto" - :right-side-bar/switch-theme "Modalità tema" - :right-side-bar/contents "Contenuti" - :right-side-bar/page-graph "Grafo della pagina" - :right-side-bar/block-ref "Riferimento al blocco" - :right-side-bar/graph-view "Vista del grafo" - :right-side-bar/show-journals "Mostra diari" - :left-side-bar/journals "Diario" - :left-side-bar/nav-favorites "Preferiti" - :left-side-bar/nav-recent-pages "Recenti" - :page/make-public "Segna come pubblico per la pubblicazione" - :page/make-private "Segna come privato" - :page/delete "Elimina pagina" - :page/add-to-favorites "Aggiungi ai Preferiti" - :page/unfavorite "Rimuovi la pagina dai Preferiti" - :block/name "Nome pagina" - :page/copy-page-url "Copia URL pagina" - :file/name "Nome File" - :file/last-modified-at "Ultima modifica alle" - :file/no-data "Nessun dato" - :file/format-not-supported "Il formato .{1} non è supportato." - :page/created-at "Creato alle" - :page/updated-at "Aggiornato alle" - :page/backlinks "Collegamenti a ritroso" - :editor/block-search "Cerca un blocco" - :text/image "Immagine" - :asset/confirm-delete "Sei sicuro di voler eliminare questo {1}?" - :asset/physical-delete "Rimuovi anche i file (non possono essere ripristinati)" - :editor/copy "Copia" - :editor/cut "Taglia" - :content/copy-block-ref "Copia riferimento di blocco" - :content/open-in-sidebar "Apri nel pannello laterale" - :content/click-to-edit "Clicca per modificare" - :settings-page/edit-config-edn "Modifica config.edn" - :settings-page/edit-custom-css "Modifica custom.css" - :settings-page/custom-configuration "Configurazione personalizzata" - :settings-page/custom-theme "Tema personalizzato" - :settings-page/show-brackets "Mostra parentesi" - :settings-page/spell-checker "Correttore ortografico" - :settings-page/auto-updater "Aggiornamento automatico" - :settings-page/disable-sentry "Invia dati di utilizzo e diagnostica a Logseq" - :settings-page/preferred-outdenting "Indentazione logica" - :settings-page/custom-date-format "Formato data preferito" - :settings-page/enable-shortcut-tooltip "Abilita suggerimenti a comparsa" - :settings-page/enable-tooltip "Suggerimenti" - :settings-page/enable-journals "Diario" - :settings-page/enable-all-pages-public "Durante la pubblicazione tutte le pagine sono pubbliche" - :settings-page/home-default-page "Imposta la home page predefinita" - :settings-page/clear-cache "Pulisci cache" - :settings-page/clear "Pulisci" - :settings-page/developer-mode "Modalità sviluppatore" - :settings-page/developer-mode-desc "La modalità sviluppatore aiuta i contributori e gli sviluppatori di estensioni a testare le loro integrazioni con Logseq in modo più efficiente." - :settings-page/current-version "Versione attuale" - :settings-page/tab-general "Generale" - :settings-page/tab-advanced "Avanzate" - :settings-page/plugin-system "Sistema di plugin" - :settings-page/network-proxy "Proxy di rete" - :yes "Sì" - :cancel "Annulla" - :close "Chiudi" - :delete "Elimina" - :save "Salva" - :type "Tipo" - :port "Porta" - :graph "Grafo" - :export "Esporta" - :export-graph "Esporta grafo" - :export-page "Esporta pagina" - :export-markdown "Esporta come Markdown standard (senza le proprietà dei blocchi)" - :export-public-pages "Esporta le pagine pubbliche" - :all-graphs "Tutti i grafi" - :all-files "Tutti i file" - :all-journals "Tutte le pagine di diario" - :settings "Impostazioni" - :settings-of-plugins "Impostazioni plugin" - :plugins "Plugin" - :themes "Temi" - :relaunch-confirm-to-work "È necessario riavviare l'app per farla funzionare. Vuoi riavviarla ora?" - :import "Importa" - :help-shortcut-title "Clicca per conoscere le scorciatoie e altri suggerimenti" - :login "Accedi" - :logout "Esci" - :download "Scarica" - :language "Lingua" - :remove-background "Rimuovi lo sfondo" - :help/shortcut-page-title "Scorciatoie da tastiera" - :plugin/installed "Installati" - :plugin/not-installed "Non installati" - :plugin/installing "Installazione" - :plugin/install "Installa" - :plugin/reload "Ricarica" - :plugin/update "Aggiorna" - :plugin/check-update "Controlla aggiornamenti" - :plugin/check-all-updates "Controlla tutti gli aggiornamenti" - :plugin/refresh-lists "Ricarica lista" - :plugin/enabled "Abilitati" - :plugin/disabled "Disabilitati" - :plugin/update-available "Aggiornamento disponibile" - :plugin/updating "Aggiornamento" - :plugin/uninstall "Disinstalla" - :plugin/marketplace "Libreria" - :plugin/downloads "Numero di scaricamenti" - :plugin/stars "Stelle" - :plugin/all "Tutti" - :plugin/unpacked "Non pacchettizzati" - :plugin/delete-alert "Sei sicuro di voler disinstallare [{1}]?" - :plugin/open-settings "Apri impostazioni" - :plugin/open-package "Apri pacchetto" - :plugin/load-unpacked "Carica plugin non pacchettizzato" - :plugin/restart "Riavvia app" - :plugin/unpacked-tips "Seleziona la cartella del plugin" - :plugin/contribute "✨ Sviluppa e sottoponici un nuovo plugin" - :plugin/custom-js-alert "Trovato il file custom.js, è consentito eseguirlo? (Se non si comprende il contenuto di questo file, si consiglia di non consentire l'esecuzione, che presenta alcuni rischi per la sicurezza.)" - :pdf/copy-ref "Copia riferimenti" - :pdf/copy-text "Copia testo" - :pdf/linked-ref "Riferimenti collegati" - :pdf/toggle-dashed "Stile tratteggiato per evidenziare l'area" - :updater/new-version-install "Una nuova versione è stata scaricata." - :updater/quit-and-install "Riavvia per installarla" - :select/default-prompt "Selezionane uno" - :select.graph/prompt "Seleziona un grafo" - :select.graph/empty-placeholder-description "Non ci sono grafi corrispondenti. Vuoi aggiungerne uno nuovo?" - :select.graph/add-graph "Sì, aggiungi un nuovo grafo" - :settings-page/edit-export-css "Modifica export.css" - :settings-page/enable-flashcards "Flashcard" - :settings-page/export-theme "Esporta tema" - :command.pdf/previous-page "Pagina precedente del pdf corrente" - :command.pdf/next-page "Pagina successiva del pdf corrente" - :command.auto-complete/complete "Auto completamento: Scegli l'oggetto selezionato" - :command.auto-complete/prev "Auto completamento: Seleziona l'oggetto precedente" - :command.auto-complete/next "Auto completamento: Seleziona l'oggetto successivo" - :command.auto-complete/shift-complete "Auto completamento: Apri l'oggetto selezionato nel pannello laterale" - :command.cards/toggle-answers "Carte: mostra/nascondi risposte/chiusure" - :command.editor/escape-editing "Esci dalla modifica" - :command.editor/backspace "Tasto Backspace / Cancella all'indietro" - :command.editor/delete "Tasto Delete / Cancella avanti" - :command.editor/new-block "Crea un nuovo blocco" - :command.editor/new-line "Nuova riga a capo nel blocco attuale" - :command.editor/follow-link "Segui il link sotto al cursore" - :command.editor/open-link-in-sidebar "Apri il link nel pannello laterale" - :command.editor/bold "Grassetto" - :command.editor/italics "Corsivo" - :command.editor/highlight "Evidenzia" - :command.editor/strike-through "Barrato" - :command.editor/clear-block "Elimina l'intero contenuto del blocco" - :command.editor/kill-line-before "Cancella la riga prima della posizione del cursore" - :command.editor/kill-line-after "Cancella la riga dopo la posizione del cursore" - :command.editor/beginning-of-block "Muovi il cursore all'inizio di un blocco" - :command.editor/end-of-block "Muovi il cursore alla fine di un blocco" - :command.editor/forward-word "Muovi il cursore in avanti di una parola" - :command.editor/backward-word "Muovi il cursore all'indietro di una parola" - :command.editor/forward-kill-word "Elimina una parola in avanti" - :command.editor/backward-kill-word "Elimina una parola all'indietro" - :command.editor/paste-text-in-one-block-at-point "Incolla testo in un blocco al punto" - :command.editor/insert-youtube-timestamp "Inserisci marca temporale di YouTube" - :command.editor/cycle-todo "Cicla lo stato TODO dell'elemento corrente" - :command.editor/up "Muovi il cursore sopra / Seleziona sopra" - :command.editor/down "Muovi il cursore sotto / Seleziona sotto" - :command.editor/left "Muovi il cursore a sinistra / Apri il blocco selezionato all'inizio" - :command.editor/right "Muovi il cursore a destra / Apri il blocco selezionato all'inizio" - :command.editor/select-up "Seleziona il contenuto sopra" - :command.editor/select-down "Seleziona il contenuto sotto" - :command.editor/move-block-up "Muovi il blocco sopra" - :command.editor/move-block-down "Muovi il blocco sotto" - :command.editor/open-edit "Modifica il blocco selezionato" - :command.editor/select-block-up "Seleziona blocco sopra" - :command.editor/select-block-down "Seleziona blocco sotto" - :command.editor/delete-selection "Elimina i blocchi selezionati" - :command.editor/expand-block-children "Espandi" - :command.editor/collapse-block-children "Comprimi" - :command.editor/indent "Indenta blocco" - :command.editor/outdent "Diminuisci indentazione" - :command.editor/copy "Copia (copia una selezione o un riferimento di blocco)" - :command.editor/cut "Taglia" - :command.editor/undo "Annulla" - :command.editor/redo "Ripeti" - :command.editor/select-all-blocks "Seleziona tutti i blocchi" - :command.editor/zoom-in "Ingrandisci blocco di modifica / Avanti altrimenti" - :command.editor/zoom-out "Rimpicciolisci il blocco di modifica / Indietro altrimenti" - :command.ui/toggle-brackets "Selezionare se visualizzare le parentesi" - :command.go/search "Ricerca testo completo" - :command.go/journals "Vai ai diari" - :command.go/backward "Indietro" - :command.go/forward "Avanti" - :command.search/re-index "Ricostruisci indice di ricerca" - :command.sidebar/open-today-page "Apri la pagina di oggi nel pannello laterale destro" - :command.sidebar/clear "Pulisci tutto nel pannello laterale destro" - :command.graph/open "Seleziona il diagramma da aprire" - :command.graph/remove "Rimuovi un diagramma" - :command.graph/add "Aggiungi un diagramma" - :command.command/run "Esegui comando Git" - :command.go/home "Vai all'inizio" - :command.go/all-pages "Vai a tutte le pagine" - :command.go/graph-view "Vai alla visualizzazione diagramma" - :command.go/keyboard-shortcuts "Vai alle scorciatoie da tastiera" - :command.go/tomorrow "Vai a domani" - :command.go/next-journal "Vai al prossimo diario" - :command.go/prev-journal "Vai al diario precedente" - :command.go/flashcards "Attiva/disattiva carte flash" - :command.ui/toggle-document-mode "Attiva/disattiva modalità documento" - :command.ui/toggle-settings "Attiva/disattiva impostazioni" - :command.ui/toggle-right-sidebar "Attiva/disattiva pannello laterale destra" - :command.ui/toggle-left-sidebar "Attiva/disattiva pannello laterale sinistra" - :command.ui/toggle-help "Attiva/disattiva aiuto" - :command.ui/toggle-theme "Passa dal tema scuro a quello chiaro" - :command.ui/toggle-contents "Attiva/disattiva i contenuti nel pannello laterale" - :command.command/toggle-favorite "Aggiungi a/rimuovi dai preferiti" - :command.ui/toggle-wide-mode "Attiva/disattiva modalità ampia" - :command.ui/select-theme-color "Seleziona i colori del tema disponibili" - :command.ui/goto-plugins "Vai alla dashboard dei plugin" - :command.editor/toggle-open-blocks "Attiva/disattiva i blocchi aperti (collassa o espandi tutti i blocchi)" - :shortcut.category/basics "Nozioni di base" - :shortcut.category/formatting "Formattazione" - :shortcut.category/navigating "Navigazione" - :shortcut.category/block-editing "Modifica blocco generale" - :shortcut.category/block-command-editing "Modifica comandi blocco" - :shortcut.category/block-selection "Selezione blocco (premi Esc per uscire dalla selezione)" - :shortcut.category/toggle "Attiva/disattiva" - :shortcut.category/others "Altri" - :command.editor/copy-embed "Copia un incorporamento di blocco che punta al blocco corrente" - :command.editor/copy-text "Copia le selezioni come testo" - :command.pdf/close "Chiudi anteprima PDF" - :auto-heading "Titoli automatici" - :export-copied-to-clipboard "Copiato negli appunti!" - :export-copy-to-clipboard "Copia negli appunti" - :export-save-to-file "Salva come file" - :export-transparent-background "Sfondo trasparente" - :heading "Titolo {1}" - :home "Home" - :host "Host" - :importing "Importando" - :loading "Caricamento..." - :new-page "Nuova pagina:" - :remove-heading "Rimuovi titolo" - :toggle-theme "Inverti tema" - :untitled "Senza titolo" - :accessibility/skip-to-main-content "Salta al contenuto principale" +{ + :account/authentication "Autenticazione" + :account/benefits-desc "Con un account Logseq, puoi accedere a servizi basati su cloud come Logseq Sync e funzionalità alfa/beta." + :account/billing "Fatturazione" + :account/billing-expired-on-label "Il piano Pro è scaduto il: {1}" + :account/billing-expires-on-label "Il piano Pro scade il: {1}" + :account/billing-next-date-label "Prossima data di fatturazione: {1}" + :account/core-features "Accesso alle funzionalità principali di Logseq" + :account/current-plan "Piano attuale" + :account/delete-account "Elimina account" + :account/discover-sync-desc "Scopri la potenza di {1}" + :account/early-access-alpha-beta "Accesso anticipato alle funzionalità alfa/beta" + :account/first-name "Nome" + :account/free-plan-sync-limit "1 grafo sincronizzato (fino a 50MB, solo note)" + :account/last-name "Cognome" + :account/manage-plan "Gestisci piano" + :account/month "mese" + :account/no-asset-syncing "Nessuna sincronizzazione risorse" + :account/open-invoices "Apri fatture" + :account/plan-free "Gratuito" + :account/plan-free-summary "Inizia con la sincronizzazione base" + :account/plan-pro "Pro" + :account/plan-pro-summary "Sblocca la sincronizzazione avanzata e altro" + :account/pro-plan-sync-limit "10 grafi sincronizzati (fino a 5GB ciascuno)" + :account/profile "Profilo" + :account/refresh-token-warning "Aggiornamento token: stato eccezionale" + :account/reset-password "Reimposta password" + :account/sign-up "Registrati" + :account/sync-assets-limit "Sincronizza risorse fino a 100MB per file" + :account/synced-status "Sincronizzato" + :account/unlimited-unsynced-graphs "Grafi non sincronizzati illimitati" + :account/upcoming-cloud-features "Funzionalità cloud in arrivo, incluso Logseq Publish" + :account/upgrade-plan "Aggiorna piano" + :account/username "Nome utente" + + :asset/acceptable-file-extensions "Estensioni file accettate" + :asset/add-assets "Aggiungi risorse" + :asset/add-directory "Aggiungi cartella" + :asset/alias-already-exists "Il nome alias \"{1}\" esiste già!" + :asset/alias-directories "Cartelle alias" + :asset/alias-directory-path-label "Percorso cartella:" + :asset/alias-name-dialog-title "Qual è il nome alias di questa cartella selezionata?" + :asset/alias-name-label "Nome alias:" + :asset/alias-name-placeholder "es. Libri" + :asset/align "Allineamento" + :asset/align-center "Centro" + :asset/align-left "Sinistra" + :asset/align-right "Destra" + :asset/already-exists "L'asset esiste già, titolo: {1}, riferimento nodo: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Impossibile incorporare il genitore come propria proprietà" + :asset/confirm-delete-image "Sei sicuro di voler eliminare questa immagine?" :asset/copy "Copia immagine" + :asset/copy-image-unsupported-extension "La copia dell'immagine non è supportata per i file {1}" + :asset/create-local-copy-warning "Creazione di una risorsa locale da una esterna. Le annotazioni PDF richiedono una risorsa locale per funzionare correttamente." + :asset/create-title "Crea risorsa" :asset/delete "Elimina immagine" + :asset/downloading "Download in corso" + :asset/drop-hint "Trascina i file qui, o clicca per selezionarli" + :asset/edit-title "Modifica risorsa" + :asset/external-url-label "URL esterno della risorsa:" + :asset/file-extension-placeholder "es. mp3" :asset/maximize "Ingrandisci immagine" :asset/open-in-browser "Apri immagine nel browser" - :asset/show-in-folder "Mostra nella cartella" - :bug-report/clipboard-inspector-title "Ispettore dati degli appunti" - :bug-report/inspector-page-btn-back "Indietro" - :bug-report/inspector-page-btn-copy "Copia il risultato" - :bug-report/inspector-page-btn-create-issue "Segnala un problema" - :bug-report/inspector-page-copy-notif "Copiato negli appunti!" - :bug-report/inspector-page-desc-1 "Premi Ctrl+V / ⌘+V per ispezionare gli appunti" - :bug-report/inspector-page-desc-2 "oppure clicca qui per incollare se stai usando la versione mobile" - :bug-report/inspector-page-desc-clipboard "Questi sono i dati letti dagli appunti." - :bug-report/inspector-page-desc-copy "Se possono essere condivisi, clicca il pulsante per copiare." - :bug-report/inspector-page-desc-create-issue "Ora puoi riportare il risultato incollato negli appunti. Per favore, incolla il risultato nella sezione 'Contesto Aggiuntivo' e precisa da dove hai copiato il contesto originale." - :bug-report/inspector-page-placeholder "Premi a lungo qui se sei da mobile" - :bug-report/inspector-page-tip "Qualcosa non va? Nessun problema, clicca per tornare al passo precedente." - :bug-report/main-desc "Puoi aiutarci segnalando un difetto? Ce ne occuperemo il prima possibile." - :bug-report/main-title "Segnalazione di un difetto" - :bug-report/section-clipboard-btn-desc "Ispeziona e raccogli dati sugli appunti" - :bug-report/section-clipboard-btn-title "Aiutante degli appunti" - :bug-report/section-clipboard-desc "Puoi usare questi utili strumenti per darci informazioni aggiuntive." - :bug-report/section-clipboard-title "Il difetto che hai incontrato ha a che fare con queste funzionalità?" - :bug-report/section-issues-btn-desc "Aiutaci a migliorare Logseq!" - :bug-report/section-issues-btn-title "Segnala un difetto" - :bug-report/section-issues-desc "Se non puoi raccogliere informazioni aggiuntive, segnala il difetto direttamente." - :bug-report/section-issues-title "Oppure..." + :asset/physical-delete "Rimuovi anche i file (non possono essere ripristinati)" + :asset/ref-block "Blocco di riferimento" + :asset/select-file "Seleziona file risorsa" + :asset/select-from-disk "Seleziona dal disco" + :asset/selected-directories "Cartelle selezionate:" + :asset/show-file-in-folder "Mostra file nella cartella" + :asset/size-too-large "La risorsa è troppo grande" + :asset/syncing "Sincronizzazione in corso" + :asset/title-label "Titolo risorsa:" + :asset/transfer-placeholder "{1} file..." + :asset/uploading "Caricamento in corso" + + :block/click-to-fix-query "Clicca per correggere la query: {1}" + :block/copy-ref "Copia riferimento di blocco" + :block/copy-url "Copia indirizzo del blocco" + :block/created-label "Creato: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' è deprecato. Usa il comando '/Math block' invece." + :block/deprecated-query-syntax "#+BEGIN_QUERY è deprecato. Usa il comando '/Advanced Query' invece." + :block/deprecated-quote "#+BEGIN_QUOTE è deprecato. Usa il comando '/Quote' invece." + :block/empty-url "URL vuoto" + :block/excalidraw-no-longer-supported "Excalidraw non è più supportato per impostazione predefinita, prevediamo di supportarlo tramite plugin." + :block/extraction-error "Errore estrazione blocco" + :block/hide-query "Nascondi query" + :block/invalid-hiccup "Hiccup non valido" + :block/invalid-link "Link non valido" + :block/invalid-url "URL non valido" + :block/large-block-warning "I blocchi grandi non saranno modificabili o ricercabili per non rallentare l'app, usa un altro editor per modificare questo blocco." + :block/last-edited-label "Ultima modifica: {1}" + :block/not-found-warning "Nessun blocco trovato" + :block/open-block-references "Apri riferimenti del blocco" + :block/practice "Esercitati" + :block/practice-cards "Esercitati con le carte" + :block/ref-nesting-too-deep "Annidamento del riferimento al blocco troppo profondo" + :block/remove-tag "Rimuovi tag" + :block/remove-this-tag "Rimuovi questo tag" + :block/render-error "Errore rendering blocco:" + :block/set-query "Imposta query" + :block/set-query-label "Imposta query:" + :block/sort-order "Ordine di ordinamento" + :block/status-history "Cronologia stato" + :block/untitled-query "Query senza titolo" + + :block.macro/embed-deprecated "{{embed}} è deprecato. Usa il comando '/Node embed' invece." + :block.macro/namespace-deprecated "{{namespace}} è deprecato. Usa la funzionalità {1} invece." + :block.macro/query-deprecated "{{query}} è deprecato. Usa il comando '/Query' invece." + :block.macro/unsupported-name "Nome macro non supportato: {1}" + + :block.reaction/emoji-required-warning "Emoji richiesta" + :block.reaction/unsupported-emoji-warning "Emoji di reazione non supportata" + + :bug-report/desc "Puoi aiutarci segnalando un difetto? Ce ne occuperemo il prima possibile." + :bug-report/title "Segnalazione di un difetto" + + :bug-report.clipboard/action-desc "Ispeziona e raccogli dati sugli appunti" + :bug-report.clipboard/action-title "Aiutante degli appunti" + :bug-report.clipboard/desc "Puoi usare questi utili strumenti per darci informazioni aggiuntive." + :bug-report.clipboard/title "Il difetto che hai incontrato ha a che fare con queste funzionalità?" + + :bug-report.inspector/back "Indietro" + :bug-report.inspector/clipboard-desc "Questi sono i dati letti dagli appunti." + :bug-report.inspector/copied "Copiato negli appunti!" + :bug-report.inspector/copy "Copia il risultato" + :bug-report.inspector/copy-desc "Se possono essere condivisi, clicca il pulsante per copiare." + :bug-report.inspector/create-issue "Segnala un problema" + :bug-report.inspector/create-issue-desc "Ora puoi segnalare il risultato incollato negli appunti. Incolla il risultato nella sezione 'Additional Context' e indica da dove hai copiato il contenuto originale. Grazie!" + :bug-report.inspector/desc "Premi {1} per ispezionare gli appunti\noppure clicca qui per incollare se stai usando la versione mobile" + :bug-report.inspector/placeholder "Premi a lungo qui se sei da mobile" + :bug-report.inspector/tip "Qualcosa non va? Nessun problema, clicca per tornare al passo precedente." + :bug-report.inspector/title "Ispettore dati degli appunti" + + :bug-report.issue/action-desc "Aiutaci a migliorare Logseq!" + :bug-report.issue/action-title "Segnala un difetto" + :bug-report.issue/desc "Se non puoi raccogliere informazioni aggiuntive, segnala il difetto direttamente." + :bug-report.issue/report-link "Segnala problema" + :bug-report.issue/title "Oppure..." + + :class/add-property "Aggiungi proprietà del tag" + :class/tag-properties-desc "Le proprietà del tag sono ereditate da tutti i nodi che usano quel tag. Per esempio, ogni nodo #Task eredita 'Status' e 'Priority'." + :class/tagged-nodes "Nodi taggati" + + :class.built-in/asset "Risorsa" + :class.built-in/card "Carta" + :class.built-in/cards "Carte" + :class.built-in/code-block "Codice" + :class.built-in/journal "Diario" + :class.built-in/math-block "Matematica" + :class.built-in/page "Pagina" + :class.built-in/pdf-annotation "Annotazione PDF" + :class.built-in/property "Proprietà" + :class.built-in/query "Query" + :class.built-in/quote-block "Citazione" + :class.built-in/root "Tag radice" + :class.built-in/tag "Tag" + :class.built-in/task "Attività" + :class.built-in/template "Modello" + :class.built-in/whiteboard "Lavagna" + + :class.validation/built-in-extends-change "L'ereditarietà degli elementi predefiniti non può essere modificata." + :class.validation/cant-add-tag-on-built-in "Impossibile aggiungere tag su \"{1}\" integrato." + :class.validation/cant-remove-private-tags "Impossibile rimuovere i tag privati: {1}." + :class.validation/cant-remove-tag-built-in "Impossibile rimuovere il tag con il #{1} integrato." + :class.validation/cant-remove-tag-on-built-in "Impossibile rimuovere il tag su \"{1}\" integrato." + :class.validation/cant-set-tag-built-in "Impossibile impostare il tag con il #{1} integrato." + :class.validation/duplicate "Il tag '{1}' esiste già." + :class.validation/extends-cycle "Ciclo rilevato nella relazione di ereditarietà." + :class.validation/invalid-extends-type "Tipo di ereditarietà non valido." + :class.validation/parents-must-be-tags "I genitori dei tag devono essere tag." + :class.validation/tag-with-non-tag "Impossibile impostare un tag con una pagina incorporata che non sia un tag \"{1}\"." + + :cmdk.action/apply-theme "Applica tema" + :cmdk.action/copy-ref "Copia riferimento" + :cmdk.action/create "Crea" + :cmdk.action/filter "Filtra" + :cmdk.action/open "Apri" + :cmdk.action/open-in-sidebar "Apri nella barra laterale" + :cmdk.action/search "Cerca" + :cmdk.action/trigger "Esegui" + + :cmdk.create/configure-tag "Configura tag" + :cmdk.create/page "Crea pagina" + :cmdk.create/tag "Crea tag" + + :cmdk.error/no-block-link "Questo blocco non contiene link." + :cmdk.error/no-page-link "Questa pagina non contiene link." + :cmdk.error/no-search-item-link "Questo risultato di ricerca non contiene link." + + :cmdk.filter/add "Aggiungi filtro" + :cmdk.filter/codes "Solo codice" + :cmdk.filter/commands "Solo comandi" + :cmdk.filter/current-page "Solo pagina corrente" + :cmdk.filter/files "Solo file" + :cmdk.filter/nodes "Solo nodi" + :cmdk.filter/only-label "Solo ricerca:" + :cmdk.filter/themes "Solo temi" + + :cmdk.group/codes "Codice" + :cmdk.group/commands "Comandi" + :cmdk.group/create "Crea" + :cmdk.group/current-page "Pagina corrente" + :cmdk.group/files "File" + :cmdk.group/filters "Filtri" + :cmdk.group/nodes "Nodi" + :cmdk.group/recently-updated "Aggiornati di recente" + :cmdk.group/themes "Temi" + + :cmdk.info/configure-tag "Configura #{1}" + :cmdk.info/create-page "Crea la pagina '{1}'" + :cmdk.info/create-tag "Crea il tag '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Aggiungi filtro grafo" + :cmdk.input/default-placeholder "Cosa stai cercando?" + :cmdk.input/move-blocks-placeholder "Sposta blocchi" + :cmdk.input/type-page-name-placeholder "Inserisci nome pagina" + + :cmdk.tip/clear-filter "Premi {1} per cancellare il filtro di ricerca" + :cmdk.tip/filter-results "Premi {1} per filtrare i risultati di ricerca" + :cmdk.tip/label "Suggerimento:" + :cmdk.tip/open-sidebar "Premi {1} per aprire la ricerca nella barra laterale" + + :collaboration/email-address "Indirizzo email" + :collaboration/invite "Invita" + :collaboration/members "Membri:" + :collaboration/remove-access "Rimuovi accesso" + :collaboration/remove-access-error "Rimozione membro fallita" + :color/blue "Blu" + :color/crimson "Cremisi" + :color/cyan "Ciano" + :color/grass "Verde erba" :color/gray "Grigio" :color/green "Verde" + :color/indigo "Indaco" + :color/orange "Arancione" :color/pink "Rosa" + :color/plum "Prugna" :color/purple "Viola" :color/red "Rosso" + :color/teal "Verde petrolio" + :color/tomato "Pomodoro" + :color/violet "Viola" :color/yellow "Giallo" + + :command.auto-complete/complete "Auto completamento: Scegli l'oggetto selezionato" + :command.auto-complete/meta-complete "Completamento automatico Meta" + :command.auto-complete/next "Auto completamento: Seleziona l'oggetto successivo" + :command.auto-complete/prev "Auto completamento: Seleziona l'oggetto precedente" + :command.auto-complete/shift-complete "Auto completamento: Apri l'oggetto selezionato nel pannello laterale" + :command.command-palette/toggle "Cerca un comando" - :command.dev/show-block-ast "(Dev) Mostra AST del blocco" - :command.dev/show-block-data "(Dev) Mostra dati del blocco" - :command.dev/show-page-data "(Dev) Mostra dati della pagina" + + :command.editor/add-property "Aggiungi proprietà" + :command.editor/add-property-deadline "Aggiungi scadenza" + :command.editor/add-property-icon "Aggiungi icona" + :command.editor/add-property-priority "Aggiungi priorità" + :command.editor/add-property-status "Aggiungi stato" + :command.editor/add-reaction "Aggiungi reazione" + :command.editor/backspace "Tasto Backspace / Cancella all'indietro" + :command.editor/backward-kill-word "Elimina una parola all'indietro" + :command.editor/backward-word "Muovi il cursore all'indietro di una parola" + :command.editor/beginning-of-block "Muovi il cursore all'inizio di un blocco" + :command.editor/bold "Grassetto" + :command.editor/clear-block "Elimina l'intero contenuto del blocco" + :command.editor/collapse-block-children "Comprimi" + :command.editor/copy "Copia (copia una selezione o un riferimento di blocco)" + :command.editor/copy-embed "Copia un incorporamento di blocco che punta al blocco corrente" :command.editor/copy-page-url "Copia indirizzo della pagina" + :command.editor/copy-text "Copia le selezioni come testo" + :command.editor/cut "Taglia" + :command.editor/cycle-todo "Cicla lo stato TODO dell'elemento corrente" + :command.editor/delete "Tasto Delete / Cancella avanti" + :command.editor/delete-selection "Elimina i blocchi selezionati" + :command.editor/down "Muovi il cursore sotto / Seleziona sotto" + :command.editor/end-of-block "Muovi il cursore alla fine di un blocco" + :command.editor/escape-editing "Esci dalla modifica" + :command.editor/expand-block-children "Espandi" + :command.editor/follow-link "Segui il link sotto al cursore" + :command.editor/forward-kill-word "Elimina una parola in avanti" + :command.editor/forward-word "Muovi il cursore in avanti di una parola" + :command.editor/highlight "Evidenzia" + :command.editor/indent "Indenta blocco" :command.editor/insert-link "Link HTML" + :command.editor/insert-youtube-timestamp "Inserisci marca temporale di YouTube" + :command.editor/italics "Corsivo" + :command.editor/jump "Vai a" + :command.editor/kill-line-after "Cancella la riga dopo la posizione del cursore" + :command.editor/kill-line-before "Cancella la riga prima della posizione del cursore" + :command.editor/left "Muovi il cursore a sinistra / Apri il blocco selezionato all'inizio" + :command.editor/move-block-down "Muovi il blocco sotto" + :command.editor/move-block-up "Muovi il blocco sopra" + :command.editor/move-blocks "Sposta blocchi" + :command.editor/new-block "Crea un nuovo blocco" + :command.editor/new-line "Nuova riga a capo nel blocco attuale" + :command.editor/open-edit "Modifica il blocco selezionato" + :command.editor/open-link-in-sidebar "Apri il link nel pannello laterale" + :command.editor/open-selected-blocks-in-sidebar "Apri blocchi selezionati nella barra laterale" + :command.editor/outdent "Diminuisci indentazione" + :command.editor/paste-text-in-one-block-at-point "Incolla testo in un blocco al punto" + :command.editor/quick-add "Aggiungi rapido" + :command.editor/redo "Ripeti" + :command.editor/right "Muovi il cursore a destra / Apri il blocco selezionato all'inizio" + :command.editor/select-all-blocks "Seleziona tutti i blocchi" + :command.editor/select-block-down "Seleziona blocco sotto" + :command.editor/select-block-up "Seleziona blocco sopra" + :command.editor/select-down "Seleziona il contenuto sotto" :command.editor/select-parent "Seleziona blocco genitore" + :command.editor/select-up "Seleziona il contenuto sopra" + :command.editor/set-tags "Imposta tag" + :command.editor/strike-through "Barrato" + :command.editor/toggle-block-children "Mostra/nascondi figli del blocco" + :command.editor/toggle-display-hidden-properties "Mostra/nascondi proprietà nascoste" :command.editor/toggle-number-list "Attiva/disattiva elenco numerato" + :command.editor/toggle-open-blocks "Attiva/disattiva i blocchi aperti (collassa o espandi tutti i blocchi)" + :command.editor/undo "Annulla" + :command.editor/up "Muovi il cursore sopra / Seleziona sopra" + :command.editor/zoom-in "Ingrandisci blocco di modifica / Avanti altrimenti" + :command.editor/zoom-out "Rimpicciolisci il blocco di modifica / Indietro altrimenti" + :command.go/all-graphs "Vai a tutti i grafi" + :command.go/all-pages "Vai a tutte le pagine" + :command.go/backward "Indietro" :command.go/electron-find-in-page "Cerca testo nella pagina" :command.go/electron-jump-to-the-next "Vai al prossimo risultato nella ricerca" :command.go/electron-jump-to-the-previous "Vai al precedente risultato nella ricerca" + :command.go/flashcards "Attiva/disattiva carte flash" + :command.go/forward "Avanti" + :command.go/graph-view "Vai alla visualizzazione diagramma" + :command.go/home "Vai all'inizio" + :command.go/journals "Vai ai diari" + :command.go/keyboard-shortcuts "Vai alle scorciatoie da tastiera" + :command.go/next-journal "Vai al prossimo diario" + :command.go/prev-journal "Vai al diario precedente" + :command.go/search "Ricerca testo completo" :command.go/search-in-page "Cerca tra i blocchi nella pagina" + :command.go/search-themes "Cerca temi" + :command.go/tomorrow "Vai a domani" + + :command.graph/add "Aggiungi un diagramma" + :command.graph/db-add "Aggiungi al database" + :command.graph/db-save "Salva database" :command.graph/export-as-html "Esporta pagine pubbliche del grafo come HTML" + :command.graph/open "Seleziona il diagramma da aprire" + :command.graph/remove "Rimuovi un diagramma" + :command.misc/copy "Copia" + :command.misc/export-block-data "Esporta dati del blocco" + :command.misc/export-graph-ontology-data "Esporta dati ontologia del grafo" + :command.misc/export-page-data "Esporta dati della pagina" + :command.misc/import-edn-data "Importa dati EDN" + + :command.page/toggle-favorite "Aggiungi a/rimuovi dai preferiti" + + :command.pdf/close "Chiudi anteprima PDF" :command.pdf/find "PDF: cerca testo nel documento" + :command.pdf/next-page "Pagina successiva del pdf corrente" + :command.pdf/previous-page "Pagina precedente del pdf corrente" + + :command.publish/open-dialog "Apri dialogo pubblicazione" + + :command.search/re-index "Ricostruisci indice di ricerca" + + :command.shell/run "Esegui comando Git" + + :command.sidebar/clear "Pulisci tutto nel pannello laterale destro" :command.sidebar/close-top "Chiudi l'elemento in alto nel pannello laterale destra" + :command.sidebar/open-today-page "Apri la pagina di oggi nel pannello laterale destro" + :command.ui/clear-all-notifications "Cancella tutte le notifiche" + :command.ui/customize-appearance "Personalizza aspetto" + :command.ui/goto-plugins "Vai alla dashboard dei plugin" + :command.ui/highlight-recent-blocks "Evidenzia blocchi recenti" + :command.ui/install-plugin-from-github "Installa estensione da GitHub" :command.ui/install-plugins-from-file "Installa plugin da plugins.edn" + :command.ui/select-theme-color "Seleziona i colori del tema disponibili" + :command.ui/toggle-brackets "Selezionare se visualizzare le parentesi" + :command.ui/toggle-contents "Attiva/disattiva i contenuti nel pannello laterale" + :command.ui/toggle-document-mode "Attiva/disattiva modalità documento" + :command.ui/toggle-help "Attiva/disattiva aiuto" + :command.ui/toggle-left-sidebar "Attiva/disattiva pannello laterale sinistra" + :command.ui/toggle-right-sidebar "Attiva/disattiva pannello laterale destra" + :command.ui/toggle-settings "Attiva/disattiva impostazioni" + :command.ui/toggle-theme "Passa dal tema scuro a quello chiaro" + :command.ui/toggle-wide-mode "Attiva/disattiva modalità ampia" + :command.window/close "Chiudi finestra" - :content/copy-block-url "Copia indirizzo del blocco" - :content/copy-export-as "Copia / Esporta come..." - :content/copy-ref "Copia riferimento" - :content/delete-ref "Elimina riferimento" - :content/replace-with-embed "Sostituisci con un'integrazione" - :content/replace-with-text "Sostituisci con testo" + + :context-menu/developer-tools "Strumenti di sviluppo" :context-menu/make-a-flashcard "Crea flashcard" + :context-menu/set-icon "Imposta icona" :context-menu/toggle-number-list "Attiva/disattiva elenco numerato" - :dev/show-block-ast "(Dev) Mostra AST del blocco" - :dev/show-block-data "(Dev) Mostra dati del blocco" - :dev/show-page-data "(Dev) Mostra dati della pagina" + + :date/invalid-date-warning "{1} non è una data valida. Per favore riprova" + + :date.nlp/last-friday "Venerdì scorso" + :date.nlp/last-monday "Lunedì scorso" + :date.nlp/last-month "Il mese scorso" + :date.nlp/last-saturday "Sabato scorso" + :date.nlp/last-sunday "Domenica scorsa" + :date.nlp/last-thursday "Giovedì scorso" + :date.nlp/last-tuesday "Martedì scorso" + :date.nlp/last-wednesday "Mercoledì scorso" + :date.nlp/last-week "La settimana scorsa" + :date.nlp/last-year "L'anno scorso" + :date.nlp/next-friday "Venerdì prossimo" + :date.nlp/next-monday "Lunedì prossimo" + :date.nlp/next-month "Il prossimo mese" + :date.nlp/next-saturday "Sabato prossimo" + :date.nlp/next-sunday "Domenica prossima" + :date.nlp/next-thursday "Giovedì prossimo" + :date.nlp/next-tuesday "Martedì prossimo" + :date.nlp/next-wednesday "Mercoledì prossimo" + :date.nlp/next-week "La prossima settimana" + :date.nlp/next-year "L'anno prossimo" + :date.nlp/this-friday "Questo venerdì" + :date.nlp/this-monday "Questo lunedì" + :date.nlp/this-month "Questo mese" + :date.nlp/this-saturday "Questo sabato" + :date.nlp/this-sunday "Questa domenica" + :date.nlp/this-thursday "Questo giovedì" + :date.nlp/this-tuesday "Questo martedì" + :date.nlp/this-wednesday "Questo mercoledì" + :date.nlp/this-week "Questa settimana" + :date.nlp/this-year "Quest'anno" + :date.nlp/today "Oggi" + :date.nlp/tomorrow "Domani" + :date.nlp/yesterday "Ieri" + + :deeplink/open-block-error "Impossibile aprire il link. L'ID blocco `{1}` non esiste nel grafo corrente." + :deeplink/open-graph-error "Impossibile aprire il grafo. Il grafo `{1}` non esiste." + :deeplink/open-page-error "Impossibile aprire il link. La pagina `{1}` non esiste nel grafo corrente." + + :editor/add-content-first-warning "Aggiungi prima del contenuto." + :editor/auto-heading "Titolo automatico" + :editor/block-search "Cerca un blocco" + :editor/click-to-edit "Clicca per modificare" + :editor/code-language-placeholder "Seleziona lingua" :editor/collapse-block-children "Collassa tutto" + :editor/cut "Taglia" :editor/cycle-todo "Alterna lo stato del TODO corrente" :editor/delete-selection "Elimina blocchi selezionati" + :editor/display-tag-inline-hint "per visualizzare questo tag in linea invece che alla fine di questo nodo." :editor/expand-block-children "Espandi tutto" - :flashcards/modal-finished "Congratulazioni, hai ripassato tutte le carte in questo quiz, alla prossima!" - :flashcards/modal-welcome-desc-1 "Puoi aggiungere \"{1}\" a qualsiasi blocco per trasformarlo in una carta o attivare \"/cloze\" per aggiungere cloze." - :flashcards/modal-welcome-title "Tempo di creare una carta!" + :editor/heading "Intestazione {1}" + :editor/moving-blocks-count "Spostamento di {1} blocchi" + :editor/new-page "Nuova pagina" + :editor/new-tag "Nuovo tag" + :editor/no-block-selected-warning "Nessun blocco selezionato" + :editor/paste "Incolla" + :editor/reference-node-use-page-ref "Per fare riferimento a un nodo, utilizza `[[]]`." + :editor/remove-heading "Rimuovi titolo" + :editor/search-for-node "Cerca un nodo" + :editor/search-for-tag "Cerca un tag" + :editor/search-template-placeholder "Cerca un modello" + :editor/template-insert-error "Errore nell'inserimento del modello: {1}" + + :editor.document-mode/new-block-hint "{1} per creare un nuovo blocco" + :editor.document-mode/title "Modalità documento" + :editor.document-mode/toggle-desc "Premi `D` o digita {1} per attivare/disattivare la modalità documento" + + :editor.quick-add/add-to-today "Aggiungi alla pagina di oggi" + :editor.quick-add/title "Aggiunta rapida" + + :editor.slash/advanced-query "Query avanzata" + :editor.slash/advanced-query-desc "Crea un blocco di query avanzata" + :editor.slash/calculator "Calcolatrice" + :editor.slash/calculator-desc "Inserisci una calcolatrice" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Blocco di codice" + :editor.slash/code-block-desc "Inserisci blocco di codice" + :editor.slash/current-time "Ora attuale" + :editor.slash/current-time-desc "Inserisci l'ora attuale" + :editor.slash/date-picker "Selezione data" + :editor.slash/date-picker-desc "Seleziona una data e inseriscila qui" + :editor.slash/embed-html "Incorpora HTML" + :editor.slash/embed-twitter-tweet "Incorpora tweet Twitter" + :editor.slash/embed-video-url "Incorpora URL video" + :editor.slash/embed-youtube-timestamp "Incorpora timestamp YouTube" + :editor.slash/group-advanced "AVANZATE" + :editor.slash/group-basic "BASE" + :editor.slash/group-format "FORMATO" + :editor.slash/group-heading "Intestazione" + :editor.slash/group-list-type "TIPO DI ELENCO" + :editor.slash/group-plugins "PLUGIN" + :editor.slash/group-priority "PRIORITÀ" + :editor.slash/group-task-date "DATA ATTIVITÀ" + :editor.slash/group-task-status "STATO ATTIVITÀ" + :editor.slash/group-time-and-date "ORA E DATA" + :editor.slash/heading-label "Intestazione {1}" + :editor.slash/image-link "Link immagine" + :editor.slash/image-link-desc "Crea un link HTTP a un'immagine" + :editor.slash/link-desc "Crea un link HTTP" + :editor.slash/math-block "Blocco matematico" + :editor.slash/math-block-desc "Crea un blocco LaTeX" + :editor.slash/no-priority "Nessuna priorità" + :editor.slash/node-embed "Incorporamento nodo" + :editor.slash/node-embed-desc "Incorpora un nodo qui" + :editor.slash/node-reference "Riferimento nodo" + :editor.slash/node-reference-desc "Crea un collegamento all'indietro a un nodo (una pagina o un blocco)" + :editor.slash/normal-text "Testo normale" + :editor.slash/normal-text-desc "Cancella intestazione e imposta a testo normale" + :editor.slash/number-children "Figli numerati" + :editor.slash/number-list "Elenco numerato" + :editor.slash/priority-desc "Imposta priorità a {1}" + :editor.slash/priority-label "Priorità {1}" + :editor.slash/query-function "Funzione query" + :editor.slash/query-function-desc "Crea una funzione query" + :editor.slash/quote-desc "Crea un blocco virgolette" + :editor.slash/status-desc "Imposta stato a {1}" + :editor.slash/template-desc "Inserisci un modello creato qui" + :editor.slash/today-desc "Inserisci la data di oggi" + :editor.slash/tomorrow-desc "Inserisci la data di domani" + :editor.slash/underline "Sottolineato" + :editor.slash/underline-desc "Crea una decorazione di testo sottolineata" + :editor.slash/upload-asset "Carica un file" + :editor.slash/upload-asset-desc "Carica tipi di file come immagine, PDF, DOCX, ecc." + :editor.slash/yesterday-desc "Inserisci la data di ieri" + + :electron/about "Informazioni su Logseq" + :electron/add-to-dictionary "Aggiungi al dizionario" + :electron/block-not-exist "Apertura del link non riuscita. L'ID del blocco `{1}` non esiste nel grafo." + :electron/cancel "Annulla" + :electron/copy-image "Copia immagine" + :electron/link-open-confirm "Vuoi davvero aprire questo link?\n{1}" + :electron/link-open-failed-missing-graph "Impossibile aprire il link. Grafo mancante." + :electron/link-open-failed-no-graph "Apertura del link non riuscita. Impossibile associare l'identificatore del grafo `{1}` a un grafo collegato." + :electron/link-open-failed-no-target "Apertura del link non riuscita. Impossibile associare `{1}` ad alcuna destinazione." + :electron/look-up "Cerca la selezione" + :electron/main-exception "[Eccezione del processo principale]\n{1}\n{2}" + :electron/new-window "Nuova finestra" + :electron/official-docs "Documentazione ufficiale" + :electron/ok "OK" + :electron/open-dir-error "Impossibile aprire la directory: {1}" + :electron/save-image "Salva immagine" + :electron/save-image-as "Salva immagine come" + :electron/search-with-google "Cerca con Google" + :electron/unimplemented-callback "Azione x-callback-url non implementata: `{1}`." + :electron/version "Versione {1}" + :electron/write-file-error "Scrittura del file {1} non riuscita, {2}." + :electron/write-file-error-with-backup "Scrittura del file {1} non riuscita, {2}. Un file di backup è stato salvato in {3}." + + :encryption/cloud-password-rich (fn [] ["Se perdi la password, nessuno dei tuoi dati nel cloud potrà essere decifrato. " [:span "Potrai comunque continuare ad accedere alla versione locale del tuo grafo."]]) + :encryption/current-password "Password attuale" + :encryption/enter-password "Inserisci password" + :encryption/enter-password-again "Inserisci di nuovo la password" + :encryption/enter-password-title "Inserisci password" + :encryption/failed-to-force-reset-password "Ripristino forzato della password fallito" + :encryption/failed-to-update-password "Aggiornamento password fallito" + :encryption/fetch-key-pair-error "Errore durante il recupero della coppia di chiavi rsa dell'utente: {1}" + :encryption/fetching-key-pair "Recupero coppia di chiavi" + :encryption/force-reset-password "Ripristino forzato password" + :encryption/force-reset-password-successfully "Ripristino forzato della password riuscito" + :encryption/force-resetting-password "Ripristino forzato in corso" + :encryption/forgot-password-question "Password dimenticata?" + :encryption/forgot-password-warning "Se dimentichi la password, i dati crittografati non potranno essere recuperati." + :encryption/init-key-pair "Inizializza coppia di chiavi" + :encryption/init-key-pair-error "Errore coppia di chiavi iniziali: {1}" + :encryption/password-not-matched "Le password non corrispondono" + :encryption/password-updated-successfully "Password aggiornata" + :encryption/remember-password-rich (fn [] [[:span "Assicurati di "] "ricordare la password che hai impostato, perché se la dimentichi non possiamo reimpostarla né recuperarla, " [:span "e ti consigliamo di "] "conservarne una copia di backup sicura."]) + :encryption/reset-password "Ripristina password" + :encryption/set-new-password "Imposta nuova password" + :encryption/set-password-title "Imposta password" + :encryption/updating-password "Aggiornamento password" + :encryption/wrong-password "Password errata" + + :export/backup-successful "Backup riuscito!" + :export/block-data-copied "Dati del blocco copiati negli appunti" + :export/collecting-assets "Raccolta risorse" + :export/copied-to-clipboard "Copiato negli appunti!" + :export/copy-or-export-as "Copia / Esporta come..." + :export/creating-zip "Creazione zip" + :export/db-backup-error "Backup del database fallito." + :export/db-edn "Esporta come file EDN" + :export/debug-transit-desc "Esporta in un file .transit da inviarci per il debug. I dati sensibili saranno rimossi dal file esportato." + :export/debug-transit-file "Esporta file transit di debug" + :export/edn-desc "Esporta in un file .edn leggibile e modificabile. Non affidarti a questo come backup principale." + :export/error-unexpected "Si è verificato un errore imprevisto durante l'esportazione. Consulta la console JavaScript per i dettagli." + :export/exporting "Esportazione" + :export/finalizing "Finalizzazione" + :export/format-text "Testo" + :export/graph "Esporta grafo" + :export/graph-ontology-data-copied "Dati ontologia del grafo copiati negli appunti" + :export/indent-style-dashes "trattini" + :export/indent-style-label "Stile indentazione:" + :export/indent-style-none "senza indentazione" + :export/indent-style-spaces "spazi" + :export/level-lte "livello <=" + :export/markdown "Esporta come Markdown standard (senza proprietà dei blocchi)" + :export/newline-after-block "nuova riga dopo il blocco" + :export/no-updates-since-last-export "Nessun aggiornamento dall'ultima esportazione." + :export/open-blocks-only "solo blocchi aperti (salta i figli compressi)" + :export/page "Esporta pagina" + :export/page-data-copied "Dati della pagina copiati negli appunti" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Preparazione zip" + :export/preview-alt "anteprima esportazione" + :export/public-pages "Esporta pagine pubbliche" + :export/remove-emphasis "rimuovi enfasi" + :export/remove-properties "rimuovi proprietà" + :export/remove-tags "rimuovi i #tag" + :export/save-to-file "Salva su file" + :export/sqlite-db "Esporta database SQLite" + :export/title "Esporta" + :export/transparent-background "Sfondo trasparente" + :export/view-nodes-data-copied "Dati dei nodi della vista copiati negli appunti" + :export/zip "Esporta database SQLite e risorse" + :export/zip-error "Esportazione ZIP fallita." + + :export.backup/backup-now "Backup adesso" + :export.backup/cancel "Annulla backup" + :export.backup/enabled-desc "I backup orari sono abilitati per questo grafo, {1}." + :export.backup/folder "Cartella di backup:" + :export.backup/hourly-note "Il backup verrà creato ogni ora." + :export.backup/open-folder "apri la cartella dei backup per questo grafo" + :export.backup/schedule "Pianifica backup" + :export.backup/set-folder-first "Imposta prima la cartella di backup" + :export.backup/sqlite-desc "Metodo principale per eseguire il backup del contenuto del grafo in un singolo file .sqlite." + :export.backup/unsupported-desc "Il tuo browser non supporta {{The File System Access API}}, passa a un browser basato su Chromium." + :export.backup/zip-desc "Metodo principale per eseguire il backup del contenuto e delle risorse del grafo in un file .zip." + + :file/config-duplicate-keys "Il file '{1}' contiene chiavi duplicate. La chiave \"{2}\" viene assegnata più volte." + :file/config-invalid "Il file di configurazione non è valido" + :file/format-not-supported "Il formato .{1} non è supportato." + :file/label "File" + :file/last-modified-at "Ultima modifica alle" + :file/name "Nome File" + :file/no-data "Nessun dato" + :file/title "File {1}" + + :file.config/deprecation-title "Il file {1} ha le seguenti deprecazioni:" + :file.config/error-title "Il file {1} ha i seguenti errori:" + :file.config/invalid-desc "Assicurati che la configurazione sia racchiusa in {}." + :file.config/invalid-title "Il file {1} non è valido." + :file.config/read-failed-desc "Assicurati che la tua configurazione sia racchiusa in {}. Assicurati inoltre che i caratteri '( { [' abbiano i corrispondenti caratteri di chiusura ') } ]'." + :file.config/read-failed-title "Impossibile leggere il file {1}" + + :flashcard/add-query "Aggiungi nuova query" + :flashcard/all-cards "Tutte le carte" + :flashcard/select-cards "Seleziona carte" + :flashcard/shortcut-tooltip "Scorciatoia: {1}" + + :flashcard.empty/desc "Puoi aggiungere \"{1}\" a qualsiasi blocco per trasformarlo in una carta o attivare \"/cloze\" per aggiungere cloze." + :flashcard.empty/title "Tempo di creare una carta!" + + :flashcard.rating/again "Di nuovo" + :flashcard.rating/again-desc "Abbiamo sbagliato la risposta. Questo significa automaticamente che abbiamo dimenticato la carta. È una dimenticanza." + :flashcard.rating/easy "Facile" + :flashcard.rating/easy-desc "La risposta era corretta e l'abbiamo ricordata rapidamente e con sicurezza, senza sforzo mentale." + :flashcard.rating/good "Bene" + :flashcard.rating/good-desc "La risposta era corretta, ma ci è voluto un po' di sforzo mentale per ricordarla." + :flashcard.rating/hard "Difficile" + :flashcard.rating/hard-desc "La risposta era corretta, ma non ne eravamo sicuri o ci è voluto troppo tempo per ricordarla." + + :flashcard.review/finished "Congratulazioni, hai ripassato tutte le carte in questo quiz, alla prossima! 💯" + :flashcard.review/hide-answers "Nascondi risposte" + :flashcard.review/show-answers "Mostra risposte" + :flashcard.review/show-clozes "Mostra lacune" + + :format/bold "Grassetto" + :format/code "Codice" + :format/highlight "Evidenziazione" + :format/italics "Corsivo" + :format/strikethrough "Barrato" + :graph/all-graphs "Tutti i grafi" + :graph/already-exists-error "Il grafo '{1}' esiste già. Riprova con un altro nome." + :graph/as-png "come PNG" + :graph/built-in-pages "Pagine integrate" + :graph/charge-range "Intervallo di carica" + :graph/charge-strength "Intensità di carica" + :graph/click-to-search "Clicca per cercare" + :graph/create-db "Crea un grafo DB" + :graph/create-error "Creazione del grafo fallita" + :graph/create-new "Crea un nuovo grafo" + :graph/created-before "Creato prima di" + :graph/creating "Creazione del grafo" + :graph/delete-local-action "Elimina grafo locale" + :graph/delete-local-confirm-desc "Sei sicuro di voler eliminare permanentemente il grafo \"{1}\" da Logseq?" + :graph/delete-server-action "Elimina dal server" + :graph/delete-server-confirm-desc "Sei sicuro di voler eliminare permanentemente il grafo \"{1}\" dal nostro server?" + :graph/delete-warning "⚠️ Nota che non possiamo recuperare questo grafo dopo l'eliminazione. Assicurati di avere i backup prima di eliminarlo." + :graph/diff "Git diff" + :graph/downloading "download in corso" + :graph/encrypt-data-label "Cifra i dati del grafo" + :graph/excluded-pages "Pagine escluse" + :graph/forces "Forze" + :graph/gc-success "Pulizia del grafo completata con successo!" + :graph/last-opened-at-label "Ultima apertura: {1}" + :graph/leave-action "Esci da questo grafo" + :graph/leave-confirm-desc "Sei sicuro di voler abbandonare questo grafo?" + :graph/leave-error "Uscita dal grafo fallita" + :graph/left "Grafo lasciato" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "collegamento" "collegamenti"))) + :graph/link-distance "Distanza dei link" :graph/local-graphs "Grafi locali:" + :graph/n-hops-from-selected-nodes "N salti dai nodi selezionati" + :graph/name-placeholder "nome del tuo grafo" + :graph/nodes "Nodi" + :graph/orphan-pages "Pagine orfane" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "pagina" "pagine"))) + :graph/pause-simulation "Metti in pausa la simulazione" + :graph/preparing "preparazione" + :graph/refresh-remote-graphs "Aggiorna grafi remoti" :graph/remote-graphs "Grafi remoti:" - :handbook/close "Chiudi" - :handbook/help-categories "Categorie di aiuto" - :handbook/home "Home" - :handbook/popular-topics "Argomenti popolari" - :handbook/search "Cerca" - :handbook/settings "Impostazioni" - :handbook/title "Aiuto" - :handbook/topics "Argomenti" + :graph/removed "Grafico rimosso \"{1}\"" + :graph/removed-and-redirecting "Grafico rimosso \"{1}\". Reindirizzamento al grafico \"{2}\"" + :graph/removed-from-sync "Grafo rimosso dalla sincronizzazione" + :graph/reset "Reimposta grafo" + :graph/reset-forces "Reimposta forze" + :graph/search "Cerca" + :graph/shared-graphs "Grafi condivisi" + :graph/updated-switching "Grafo aggiornato. Cambio..." + :graph/use-sync-beta "Usa Logseq Sync (beta)" + :graph/use-sync-label "Usa Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Impossibile calcolare la diagnostica del checksum del grafo." + :graph.diagnostics/checksum-recomputed-success "Checksum ricalcolato. Ricalcolato: {1}, locale: {2}, remoto: {3}. {4}.edn è stato scaricato con {5} blocchi e attributi checksum {6}." + :graph.diagnostics/checksum-unavailable-warning "Impossibile calcolare la diagnostica del checksum per il grafo corrente." + :graph.diagnostics/client-ops-export-failed-error "Impossibile esportare Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Esportazione di Client ops SQLite non riuscita: tipo di payload non valido {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite esportato: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Nessun grafo trovato." + + :graph.page/show-journals "Mostra diari" + :graph.page/title "Grafo della pagina" + + :graph.switch/add-graph-action "Sì, aggiungi un nuovo grafo" + :graph.switch/empty-desc "Non ci sono grafi corrispondenti. Vuoi aggiungerne uno nuovo?" + :graph.switch/prompt "Passa a:" + :graph.switch/select-prompt "Seleziona un grafo" + + :graph.validation/config-arweave-gateway-warning "non è più supportato." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "non è più supportato. Per favore usa '/' e segnala i bug." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "non è usato nei grafi DB poiché c'è solo la modalità markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "La validazione ha rilevato {1} blocco(i) non valido(i). Questi blocchi potrebbero contenere errori. Tentativo di correggere i blocchi non validi. Esegui di nuovo la validazione per vedere se sono stati corretti." + :graph.validation/name-reserved-characters-warning "Il nome del grafo non può contenere i seguenti caratteri riservati:" + :graph.validation/reserved-character-asterisk "asterisco" + :graph.validation/reserved-character-backslash "barra rovesciata" + :graph.validation/reserved-character-colon "due punti" + :graph.validation/reserved-character-double-quote "virgolette doppie" + :graph.validation/reserved-character-forward-slash "barra" + :graph.validation/reserved-character-greater-than "maggiore di" + :graph.validation/reserved-character-hash "cancelletto" + :graph.validation/reserved-character-less-than "minore di" + :graph.validation/reserved-character-pipe "barra verticale o pipe" + :graph.validation/reserved-character-plus "più" + :graph.validation/reserved-character-question-mark "punto interrogativo" + :graph.validation/valid "Il tuo grafo è valido! {1}" + :header/go-back "Indietro" :header/go-forward "Avanti" + :header/highlight-recent-blocks "Evidenzia i blocchi recenti" + :header/highlight-recent-blocks-days-ago "Evidenzia i blocchi recenti: {1} giorni fa" :header/more "Altro" - :header/search "Cerca" + :header/quit-highlight-recent-blocks "Esci dall'evidenziazione blocchi recenti" :header/toggle-left-sidebar "Attiva/disattiva il pannello laterale sinistro" + + :help/about "Informazioni su Logseq" + :help/about-title "Chi siamo" + :help/ask-community "Chiedi alla comunità" :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Riferimento di blocco" + :help/blog "blog di Logseq" + :help/bug "Segnala un problema" + :help/changelog "Registro delle modifiche" + :help/community-title "Comunità" + :help/context-menu "Menù contestuale del blocco" + :help/context-menu-action "Clic destro sul punto elenco" + :help/development-title "Sviluppo" + :help/docs "Documentazione" + :help/feature "Richiedi una funzionalità" :help/forum-community "Forum della comunità" + :help/handbook "Manuale" + :help/learn-more "Scopri di più" + :help/markdown-syntax "Sintassi Markdown" + :help/open-link-in-sidebar "Apri il link nel pannello laterale" + :help/open-link-in-sidebar-action "Maiusc + clic sul riferimento" + :help/privacy "Politica sulla riservatezza" + :help/reference-autocomplete "Completamento automatico del riferimento di pagina" + :help/release-notes "Note di rilascio" :help/roadmap "Tabella di marcia" :help/search "Cerca pagine/blocchi/comandi" - :help/title-about "Chi siamo" - :help/title-community "Comunità" - :help/title-development "Sviluppo" - :help/title-terms "Termini" - :help/title-usage "Utilizzo" + :help/slash-autocomplete "Completamento automatico con barra (/)" + :help/start "Per iniziare" + :help/submit-feedback "Invia feedback" + :help/support-forum "Forum di supporto" + :help/terms "Termini di Servizio" + :help/terms-title "Termini" + :help/usage-title "Utilizzo" + + :help.handbook/chat-on-discord "Chatta su Discord" + :help.handbook/chat-on-discord-desc "Fai domande rapide, incontra altri utenti e scopri nuovi flussi di lavoro." + :help.handbook/copy-topic-link "Copia link argomento" + :help.handbook/current-chapter "Capitolo attuale" + :help.handbook/help-categories "Categorie di aiuto" + :help.handbook/home "Home" + :help.handbook/link-copied "Link del manuale copiato!" + :help.handbook/monthly-posts "post mensili" + :help.handbook/next-chapter "Capitolo successivo" + :help.handbook/popular-topics "Argomenti popolari" + :help.handbook/prev-chapter "Capitolo precedente" + :help.handbook/resources-from "Risorse da {1}" + :help.handbook/search-placeholder "Cerca" + :help.handbook/shortcuts-count "{1} scorciatoie" + :help.handbook/sync "Sincronizzazione" + :help.handbook/title "Aiuto" + :help.handbook/topics "Argomenti" + :help.handbook/users-online "utenti online" + :help.handbook/visit-the-forum "Visita il forum" + :help.handbook/visit-the-forum-desc "Invia feedback, richiedi funzionalità e partecipa a conversazioni approfondite." + :help.handbook/writing-mode "Modalità scrittura (anteprima nel tempo)" + + :help.shortcuts/desc "Vedi scorciatoie e suggerimenti" + :help.shortcuts/label "Scorciatoie da tastiera" + :help.shortcuts/shortcut-column "Scorciatoia" + :help.shortcuts/title "Scorciatoie da tastiera" + :help.shortcuts/triggers "Attivazione delle scorciatoie" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Icone ({1})" + :icon/matched-count "Corrispondenze ({1})" + :icon/search-all "Cerca tutto" + :icon/search-emojis "Cerca emoji" + :icon/search-icons "Cerca icone" + :icon/tab-all "Tutti" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Icone" + + :import/all-tags "Importa tutti i tag" + :import/asset-too-large-warning "La copia dell'asset {1} è stata saltata perché supera il limite di 100 MB." + :import/assets-import-partial "{1}/{2} risorse importate. Dettagli nella console." + :import/assets-imported "{1} risorse importate." + :import/assets-skipped "{1} risorse saltate. Dettagli nella console." + :import/block-icons-cannot-be-imported "Le icone dei blocchi non possono essere importate. Importale manualmente al blocco {1}." + :import/cannot-import-block-into-non-block-entity "Impossibile importare un blocco in un'entità non-blocco." + :import/db-edn-desc "Importa l'esportazione EDN di un grafo DB in un nuovo grafo DB" + :import/db-edn-title "EDN a grafo DB" + :import/debug-transit-desc "Importa file transit di debug in un nuovo grafo DB" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Comportamento predefinito del grafo database" + :import/empty-graph-name "Il nome del grafo non può essere vuoto." + :import/extract-inline-code-snippets "Estrai frammenti di codice in linea come sotto-blocchi" + :import/file-finished "Importazione completata!" + :import/file-to-db-desc "Importa una cartella di un grafo Logseq basato su file in un nuovo grafo DB" + :import/file-to-db-title "File a grafo DB" + :import/graph-name-conflict "Un grafo con questo nome esiste già. Scegli un altro nome!" + :import/graph-name-placeholder "Nome del grafo" + :import/ignored-assets "{1} risorse saltate durante l'importazione. Dettagli nella console JavaScript." + :import/ignored-files "{1} file saltati durante l'importazione. Dettagli nella console JavaScript." + :import/ignored-properties "{1} proprietà saltate durante l'importazione" + :import/ignored-properties-fix "Per correggere il tipo di proprietà, modifica il valore e reimporta il grafo" + :import/invalid-blocks-detected "{1} blocchi non validi rilevati durante l'importazione. L'interazione potrebbe fallire. Dettagli nella console JavaScript." + :import/invalid-edn-file "Il file EDN fornito non è valido. Correggi e riprova." + :import/loading "Importazione" + :import/logseq-config-missing "Importazione fallita: il grafo Logseq non ha il file 'logseq/config.edn'." + :import/new-graph-name "Nuovo nome del grafo" + :import/notes "Importa note esistenti" + :import/org-files-imported "{1} file Org importati come Markdown. Il supporto Org sarà aggiunto in seguito." + :import/page-icons-cannot-be-imported "Le icone delle pagine non possono essere importate. Importale manualmente alla pagina {1}." + :import/properties-case-insensitive-commas "Nomi proprietà (non distingue maiuscole, separati da virgole)" + :import/property-classes-placeholder "es. type" + :import/property-import-manually "Questa proprietà deve essere importata manualmente" + :import/property-parent-classes-placeholder "es. parent" + :import/property-type-mismatch "Il valore della proprietà è di tipo {1}, non {2}" + :import/property-value-tag-parents "Importa genitori dei tag dai valori delle proprietà" + :import/property-value-tags "Importa tag aggiuntivi dai valori delle proprietà" + :import/remove-inline-tags "Rimuovi tag in linea" + :import/select-edn-or-json "Seleziona un file EDN o JSON." + :import/specific-tags "Importa tag specifici" + :import/sqlite-and-assets-desc "Importa uno zip contenente db.sqlite e una cartella risorse" + :import/sqlite-and-assets-title "SQLite + risorse (.zip)" + :import/submitted-edn-invalid "I dati EDN inviati non sono validi! Correggi e riprova." + :import/successful "Importazione riuscita!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tag (non distingue maiuscole)" + :import/title "Importa" + :import/unexpected-error "Errore imprevisto: {1}" + :import/zip-import-error "Importazione zip non riuscita: {1}" + :import/zip-missing-db-sqlite "Lo ZIP non contiene db.sqlite" + + :journal/add-blocks-to-today-success "Blocchi aggiunti oggi" + :journal/page-cant-convert-warning "Questa pagina non è una pagina di diario." + :journal/parse-date-to-name-error "Analisi del nome del diario fallita" + + :journal.default-query/doing "IN CORSO" + :journal.default-query/todo "DA FARE" + :keymap/all "Tutti" + :keymap/already-bound "Scorciatoia già in uso" + :keymap/also-used-for-action "Usata anche per {1}" + :keymap/also-used-for-action-in-context "Usata anche per {1} Nel contesto {2}" + :keymap/clear "Cancella" + :keymap/clear-keystroke-filter "Cancella filtro tasti" + :keymap/clear-search "Cancella ricerca" :keymap/custom "Personalizzati" + :keymap/deactivates-chord "Disattiva la scorciatoia" + :keymap/deactivates-chords "Disattiva {1} combinazioni di scorciatoie" :keymap/disabled "Disabilitati" + :keymap/esc-is-reserved "Esc è riservato" + :keymap/hint-cancel "Annulla" + :keymap/hint-close "Chiudi" + :keymap/hint-reassign "Riassegna" + :keymap/hint-remove "Rimuovi" :keymap/keystroke-filter "Digita scorciatoia per filtrare" + :keymap/no-matching-shortcuts "Nessuna scorciatoia corrispondente" + :keymap/press-a-shortcut "Premi una scorciatoia" + :keymap/press-keys-to-filter "Premi tasti per filtrare" + :keymap/reassign "Riassegna" + :keymap/reassign-tooltip "Riassegna la scorciatoia di questa azione" + :keymap/reassigned-from "Riassegnata da {1}" + :keymap/refresh-all "Aggiorna tutto" + :keymap/remove-binding "Rimuovi associazione" + :keymap/remove-filter "Rimuovi filtro" + :keymap/reset "Ripristina" + :keymap/reset-to-default "Ripristina predefinito" + :keymap/search-by-keys "Cerca per tasti" + :keymap/search-placeholder "Cerca scorciatoie…" + :keymap/shortcut-added "Scorciatoia aggiunta" + :keymap/shortcut-removed "Scorciatoia rimossa" + :keymap/toggle-categories-pane "Mostra/nascondi pannello categorie" + :keymap/undo "Annulla" :keymap/unset "Non impostata" - :left-side-bar/switch "Passa a:" - :linked-references/filter-search "Cerca nelle pagine collegate" + :keymap/used-by-action "Usata da {1}" + + :library/add-existing-pages "Aggiungi pagine esistenti alla Libreria" + :library/add-pages "Aggiungi pagine" + :library/title "Libreria" + + :mobile/camera-access-denied "L'accesso alla fotocamera è negato. Abilitalo in Impostazioni > Logseq." + :mobile/microphone-access-denied "L'accesso al microfono è negato. Abilitalo in Impostazioni > Logseq." + + :mobile.header/actions "Azioni" + :mobile.header/create-graph "Crea grafo" + :mobile.header/delete-block-confirm-desc "Vuoi davvero eliminare questo blocco?" + :mobile.header/delete-page-confirm-desc "Vuoi davvero eliminare questa pagina?" + + :mobile.intent/file-options "Opzioni file" + :mobile.intent/open-with-app "Apri il file con la tua app preferita" + :mobile.intent/select-option-prompt "Seleziona un'opzione da eseguire" + :mobile.intent/share "Condividi" + + :mobile.log/all "Tutti" + :mobile.log/errors-only "Solo errori" + :mobile.log/full "Completo" + :mobile.log/new-first "Più recenti per primi" + :mobile.log/old-first "Più vecchi per primi" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Account" + :mobile.settings/check-log "Controlla log" + :mobile.settings/discord-community "Comunità Discord" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Segnala bug" + :mobile.settings/revision "Revisione" + :mobile.settings/theme "Tema" + :mobile.settings/version "Versione" + + :mobile.share/file-import-error "Importazione file condiviso fallita" + :mobile.share/media-import-error "Importazione media condiviso fallita" + :mobile.share/unsupported-content-warning "L'analisi del contenuto condiviso attuale non è supportata. Segnala i seguenti codici su {1}. Li esamineremo presto." + :mobile.share/unsupported-import-type "L'importazione di file {1} non è supportata. Puoi segnalarlo su {2}. Li esamineremo presto." + + :mobile.tab/capture "Cattura" + :mobile.tab/go-to "Vai a" + :mobile.tab/graphs "Grafi" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Copia riferimento" + :mobile.toolbar/copy-url "Copia URL" + :mobile.toolbar/hide "Nascondi" + :mobile.toolbar/indent "Rientra" + :mobile.toolbar/outdent "Riduci rientro" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Ripristina" + :mobile.toolbar/reference "Riferimento" + :mobile.toolbar/slash "Barra" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Annulla" + :mobile.toolbar/unselect "Deseleziona" + + :nav/all-files "Tutti i file" + :nav/all-journals "Tutti i diari" + :nav/appearance "Aspetto" + :nav/assets "Risorse" + :nav/cannot-go-to-internal-page "Impossibile navigare alla pagina interna" + :nav/flashcards "Flashcard" + :nav/graph "Grafo" + :nav/graph-view "Vista del grafo" + :nav/help "Aiuto" + :nav/home "Home" + :nav/invalid-jump-error "Salto non valido" + :nav/journals "Diario" + :nav/plugins "Estensioni" + :nav/search "Cerca" + :nav/settings "Impostazioni" + :nav/skip-to-main-content "Salta al contenuto principale" + :nav/tasks "Attività" + :nav/themes "Temi" + + :nav.all-pages/label "Tutte le pagine" + :nav.all-pages/title "Tutte le pagine" + + :node/built-in-cant-delete-error "Gli elementi predefiniti non possono essere eliminati." + :node/new "Nuovo nodo" + :notification/clear-all "Pulisci tutte" - :on-boarding/importing-desc "Se sono in formato EDN o Markdown Logseq può lavorarci." - :on-boarding/importing-main-desc "Puoi farlo anche dopo nell'app." - :on-boarding/importing-main-title "Importa note esistenti" - :on-boarding/importing-title "Hai già note che vuoi importare?" - :on-boarding/main-desc "Per prima cosa devi scegliere una cartella in cui Logseq conserverò i tuoi pensieri, idee e note." - :on-boarding/main-title (fn [] ["Benvenuti in " [:strong "Logseq!"]]) + :notification/copied "Copiato" + + :onboarding.import/desc "Se sono in formato EDN o Markdown Logseq può lavorarci." + :onboarding.import/sqlite-desc "Importa da database SQLite" + :onboarding.import/title "Hai già note che vuoi importare?" + + :onboarding.import-option/desc "Puoi farlo anche dopo nell'app." + :onboarding.import-option/title "Importa note esistenti" + + :onboarding.setup/desc "Per prima cosa devi scegliere una cartella in cui Logseq conserverò i tuoi pensieri, idee e note." + :onboarding.setup/title (fn [] ["Benvenuti in " [:strong "Logseq!"]]) + + :page/add-to-favorites "Aggiungi ai Preferiti" + :page/added-tag-to-node "Aggiunto tag \"{1}\" a \"{2}\"" + :page/backlinks "Collegamenti a ritroso" + :page/clear "Cancella" + :page/clear-local-storage-desc "Questo elimina preferenze minori come la preferenza tema chiaro/scuro." + :page/cleared "Svuotato" + :page/contents "Contenuti" + :page/convert-to-tag "Converti in tag" + :page/copy-url "Copia URL pagina" + :page/create "Crea una nuova pagina" + :page/created-at "Creato alle" + :page/current-graph-as-sqlite-db "grafo attuale come database SQLite" + :page/default-query-error "Query predefinita fallita:" + :page/delete "Elimina pagina" + :page/go-back-home "Torna alla home" + :page/hide-properties "Nascondi proprietà" + :page/local-storage "archiviazione locale" :page/logseq-is-having-a-problem "Logseq sta riscontrando un problema. Per tentare di farlo tornare a funzionare esegue i seguenti passi in ordine:" + :page/make-private "Segna come privato" + :page/make-public "Segna come pubblico per la pubblicazione" + :page/moved-to-recycle "Il nodo è stato spostato nel cestino" + :page/name "Nome pagina" + :page/no-page-found-to-copy "Nessuna pagina trovata da copiare" + :page/not-found "Pagina non trovata" + :page/not-found-desc "Oops! La pagina che stai cercando non esiste." + :page/not-found-title "Pagina non trovata" + :page/not-found-warning "Nessuna pagina trovata" + :page/open-all-graphs-desc "Puoi anche andare a {{All graphs}} per passare a un altro grafo." + :page/open-issue-desc "Se questi passaggi di risoluzione dei problemi non hanno risolto il tuo problema, {{open an issue}}." + :page/open-properties "Apri proprietà" + :page/rebuild "Ricostruisci" + :page/relaunch "Riavvia" + :page/relaunch-desc "Chiudi e riapri l'app." + :page/scheduled-and-deadline "Pianificati e scadenze" + :page/search-index "indice di ricerca" + :page/send-db-for-debugging "Puoi inviarlo a help@logseq.com per il debug." :page/something-went-wrong "Qualcosa è andato storto" :page/step "Passo {1}" + :page/the-app "l'app" :page/try "Prova" + :page/unfavorite "Rimuovi la pagina dai Preferiti" + :page/unknown "Pagina sconosciuta" + :page/updated-at "Aggiornato alle" + + :page.convert/block-parent-not-page "Impossibile convertire il blocco. Il genitore non è una pagina." + :page.convert/cant-be-block "La pagina \"{1}\" non può essere convertita in un blocco." + :page.convert/cant-be-block-has-children "La pagina \"{1}\" non può essere convertita in un blocco perché ha pagine secondarie." + :page.convert/cant-be-block-move-first "La pagina \"{1}\" non può essere convertita in un blocco, spostala prima in un'altra pagina." + :page.convert/page-to-tag-action "Converti \"{1}\" in tag" + :page.convert/page-to-tag-built-in "Le pagine predefinite non possono essere tag" + :page.convert/page-to-tag-duplicate "Esiste già un tag con il nome \"{1}\"." + :page.convert/page-to-tag-namespaced "Le pagine con namespace non possono essere tag" + :page.convert/property-value-to-page "Impossibile convertire il valore della proprietà in pagina." + :page.convert/tag-to-page-action "Converti tag in pagina" + :page.convert/tag-to-page-built-in "I tag predefiniti non possono essere pagine" + :page.convert/tag-to-page-confirm-desc "La conversione di un tag in una pagina rimuove anche le sue proprietà di tag e il tag da tutti i nodi che lo usano. Vuoi continuare?" + :page.convert/tag-to-page-duplicate "Esiste già una pagina con il nome \"{1}\"." + :page.convert/tag-to-page-has-children "Il tag ha elementi figli e non può essere convertito" + + :page.delete/batch-confirm-title "Sei sicuro di voler eliminare queste pagine? Proprietà e tag saranno eliminati definitivamente e le pagine verranno spostate nel Cestino." + :page.delete/confirm-title "Sei sicuro di voler eliminare questa pagina?" + :page.delete/permanent-confirm-title "Sei sicuro di voler eliminare definitivamente questa pagina?" + :page.delete/success "La pagina \"{1}\" è stata eliminata con successo!" + :page.delete/total "Totale: {1}" + :page.delete/warning "I contenuti di queste pagine sono stati eliminati ma non è stato possibile eliminarli: {1}. Vedi la console JavaScript per maggiori dettagli." + + :page.validation/cant-set-built-in-tags "La nuova pagina non può impostare tag integrati: {1}" + :page.validation/duplicate "Esiste già un'altra pagina denominata \"{1}\" per i tag: {2}." + :page.validation/name-blank "Il nome della pagina non può essere vuoto." + :page.validation/name-no-hash "Il nome della pagina non può contenere #" + :page.validation/name-no-slash "Il nome della pagina non può contenere /." + :page.validation/parents-must-be-pages "I genitori delle pagine devono essere pagine." + + :pdf/annotations-page "Pagina annotazioni" + :pdf/area-highlight-shortcut "Evidenziazione area ({1})" + :pdf/auto-fit "Adattamento automatico" :pdf/auto-open-context-menu "Apri menù contestuale per le selezioni automaticamente" + :pdf/copy-ref "Copia riferimenti" + :pdf/copy-text "Copia testo" + :pdf/corrupted-file-error "Errore: {1}\nQuesto file .pdf è corrotto?\nVerifica con un visualizzatore PDF esterno." :pdf/doc-metadata "Metadati del documento" + :pdf/enter-to-search "Premi Invio per cercare" + :pdf/find-results "{1} di {2} corrispondenze (\"{3}\")" + :pdf/generic-error "Errore: {1}\n{2}\nVerifica con la risorsa del file PDF." + :pdf/highlight-mode "Modalità evidenziazione" + :pdf/highlights "Evidenziazioni" :pdf/hl-block-colored "Etichetta colorata per il blocco evidenziato" - :plugin/all-updated "Aggiornati tutti!" - :plugin/auto-check-for-updates "Controlla automaticamente per aggiornamenti" + :pdf/linked-ref "Riferimenti collegati" + :pdf/load-highlights-file-error "Errore: impossibile caricare il file di evidenziazione: \"{1}\". \n{2}" + :pdf/missing-file-error "Errore: {1}\n Il percorso è corretto?" + :pdf/more-settings "Altre impostazioni" + :pdf/no-outlines "Nessun indice" + :pdf/not-found "Non trovato." + :pdf/open-in-app-window "Apri nella finestra dell'app" + :pdf/open-in-external-window "Apri in finestra esterna" + :pdf/outline "Indice" + :pdf/page-label "Pagina {1}" + :pdf/password-protected-desc "Questo documento è protetto da password. Inserisci una password:" + :pdf/password-required "Password richiesta" + :pdf/search "Cerca" + :pdf/search-placeholder "cerca" + :pdf/toggle-dashed "Stile tratteggiato per evidenziare l'area" + :pdf/viewer "visualizzatore PDF" + :pdf/zoom-in "Ingrandisci" + :pdf/zoom-out "Riduci" + + :plugin/all "Tutti" + :plugin/auto-update-check "Controlla automaticamente per aggiornamenti" + :plugin/auto-update-check-feedback "Controllo automatico degli aggiornamenti: {1}!" + :plugin/check-all-updates "Controlla tutti gli aggiornamenti" + :plugin/check-update "Controlla aggiornamenti" + :plugin/checked "Controllato" :plugin/checking-for-updates "Controllando se ci sono plugin da aggiornare..." + :plugin/contribute "✨ Sviluppa e sottoponici un nuovo plugin" + :plugin/custom-js-alert "Trovato il file custom.js, è consentito eseguirlo? (Se non si comprende il contenuto di questo file, si consiglia di non consentire l'esecuzione, che presenta alcuni rischi per la sicurezza.)" + :plugin/date-added "Data di aggiunta" + :plugin/delete-alert "Sei sicuro di voler disinstallare [{1}]?" + :plugin/disable-for-performance-feedback "Il plugin {1} è stato disabilitato." + :plugin/disable-now "Disabilita ora" + :plugin/disabled "Disabilitati" + :plugin/does-not-support-db "Non supporta i grafi DB" + :plugin/downloads "Numero di scaricamenti" + :plugin/empty "Nessun risultato." + :plugin/enabled "Abilitati" + :plugin/existed-package "Pacchetto plugin esistente ({1})." + :plugin/fatal-error "Fatale: {1}" :plugin/found-n-updates "Trovati {1} aggiornamenti" :plugin/found-updates "Nuovi aggiornamenti" + :plugin/install "Installa" + :plugin/install-error "Installazione fallita: {1}\n{2}" + :plugin/installed "Installati" :plugin/installed-plugin "Plugin installati: {1}" + :plugin/installing "Installazione" + :plugin/invalid-github-repo-url "URL del repository GitHub non valida" + :plugin/invalid-package "Pacchetto non valido" + :plugin/invalid-plugins-edn "plugins.edn non valido" :plugin/list-of-updates "Plugin da aggiornare: " + :plugin/load-from-web-url "Carica da URL web" + :plugin/load-plugin-indicator "Carica plugin: {1}..." + :plugin/load-unpacked "Carica plugin non pacchettizzato" + :plugin/loading-indicator "CARICAMENTO" + :plugin/malformed-plugins-edn "plugins.edn malformato" + :plugin/marketplace "Libreria" + :plugin/new-registered "Nuova estensione registrata" + :plugin/no-settings-schema "Nessuno schema impostazioni!" + :plugin/not-installed "Non installati" :plugin/open-logseq-dir "Apri" + :plugin/open-package "Apri pacchetto" :plugin/open-preferences "Apri preferenze" - :plugin/remote-error "Errore remoto: " + :plugin/open-settings "Apri impostazioni" + :plugin/perf-tip "Il plugin {1} impiega troppo tempo per caricarsi, influenzando il tempo di avvio dell'applicazione e potenzialmente causando il mancato caricamento di altri plugin." + :plugin/popular "Popolare" + :plugin/proxy-check-success "Successo! Stato {1} tra {2}ms." + :plugin/readme-empty-warning "Nessun contenuto README" + :plugin/refresh-lists "Ricarica lista" + :plugin/reload "Ricarica" + :plugin/remote-error "Errore remoto: {1}" + :plugin/report-modal-desc "Se un plugin non è disponibile o ritieni che contenga codice dannoso, invia un'email a {1}. Menziona il nome del plugin e l'URL del suo repository GitHub. Il team di Logseq di solito risponde entro un giorno lavorativo." + :plugin/report-security "Segnala problema di sicurezza" + :plugin/restart "Riavvia app" :plugin/search-plugin "Cerca plugin" :plugin/security-warning "I plugin hanno accesso al tuo grafo e file locali, possono effettuare richieste in rete.\n Possono anche causare corruzione e perdita di dati. Stiamo lavorando a regole di accesso appropriate sui tuoi grafi.\n Nel frattempo, assicurati di fare backup dei tuoi grafi regolarmente e installa plugin solo quando puoi leggere e\n capirne il codice sorgente." + :plugin/setting-not-handled "#Non gestito# {1}" + :plugin/settings-schema-error "Errore nello schema delle impostazioni!" + :plugin/stars "Stelle" + :plugin/supports-db "Supporto DB" :plugin/title "Titolo ({1})" + :plugin/uninstall "Disinstalla" + :plugin/unpacked "Non pacchettizzati" + :plugin/unpacked-tips "Seleziona la cartella del plugin" :plugin/up-to-date "È aggiornato {1}" + :plugin/update "Aggiorna" :plugin/update-all-selected "Aggiorna i selezionati" + :plugin/update-all-success "Aggiornati tutti!" + :plugin/update-available "Aggiornamento disponibile" :plugin/update-plugin "Aggiorna i plugin: {1} - {2}" :plugin/updates-downloading "Scaricando aggiornamenti" + :plugin/updating "Aggiornamento" + :plugin.install-from-file/menu-title "Installa da plugins.edn" :plugin.install-from-file/notice "I seguenti plugin sostituiranno i seguenti plugin:" :plugin.install-from-file/success "Tutti i plugin installati!" :plugin.install-from-file/title "Installa plugin da plugins.edn" - :right-side-bar/flashcards "Flashcard" - :right-side-bar/pane-close "Chiudi" - :right-side-bar/pane-close-all "Chiudi tutti" - :right-side-bar/pane-close-others "Chiudi altri" - :right-side-bar/pane-collapse "Collassa" - :right-side-bar/pane-collapse-all "Collassa tutti" - :right-side-bar/pane-collapse-others "Collassa altri" - :right-side-bar/pane-expand "Espandi" - :right-side-bar/pane-expand-all "Espandi tutti" - :right-side-bar/pane-more "Altro" - :right-side-bar/pane-open-as-page "Apri come pagina" - :right-side-bar/separator "Bordo per ridimensionare il pannello laterale destro" - :right-side-bar/toggle-right-sidebar "Attiva/disattiva pannello laterale destro" - :search-item/no-result "Nessun risultato" - :search-item/page "Pagina" + + :plugin.install-from-web-url/effect-label "effetto" + :plugin.install-from-web-url/repo-url-placeholder "URL del repository GitHub" + :plugin.install-from-web-url/supports-note "Gli URL supportano sia i repository GitHub che i server di sviluppo locale. (Per esempio: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "La rimozione si limita a scollegare il plugin da Logseq e lascia intatta la cartella sorgente." + :plugin.package-config/parse-error "Impossibile analizzare la configurazione del pacchetto del plugin." + :plugin.package-config/remove-error "Impossibile rimuovere il plugin danneggiato." + :plugin.package-config/remove-external-success "Il plugin danneggiato è stato rimosso dall'elenco dei plugin." + :plugin.package-config/remove-installed-success "Plugin danneggiato \"{1}\" rimosso." + + :plugin.proxy/direct "Diretto" + :plugin.proxy/system "Sistema" + :plugin.proxy/test-url "URL di test" + :plugin.proxy/testing "Test in corso" + + :plugin.settings/edit-settings-json "Modifica settings.json" + :plugin.settings/exit-code-mode "Esci dalla modalità codice" + :plugin.settings/title "Impostazioni estensioni" + + :plugin.themes/default-desc "Tema predefinito di Logseq ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Temi ({1})" + :plugin.themes/light-and-dark "temi chiari & scuri" + + :profiler/input-fn-placeholder "inserisci il nome della funzione qui" + :profiler/unregister "Annulla registrazione" + + :property/add-choice "Aggiungi opzione" + :property/add-choices "Aggiungi opzioni" + :property/add-description "Aggiungi descrizione" + :property/add-new "Aggiungi proprietà" + :property/add-or-change "Aggiungi o modifica proprietà" + :property/available-choices "Opzioni disponibili" + :property/change-tooltip "Cambia {1}" + :property/checkbox-state-mapping "Mappatura stato casella di controllo" + :property/children-count "Bambini ({1})" + :property/choices-count "{1} scelte" + :property/choose-tag "Scegli tag" + :property/choose-tags "Scegli tag" + :property/clear-value "Cancella" + :property/configure "Configura" + :property/convert-page-to-property "Converti \"{1}\" in proprietà" + :property/create-error "Creazione proprietà fallita." + :property/default-value "Valore predefinito" + :property/delete-from-node "Elimina dal nodo" + :property/delete-from-node-confirm "Vuoi eliminare questa proprietà dal nodo?" + :property/delete-from-tag "Elimina dal tag" + :property/delete-from-tag-confirm "Vuoi eliminare questa proprietà dal tag?" + :property/description-placeholder "Inserisci descrizione" + :property/drag-to-reorder "Trascina per riordinare" + :property/existing-values "Valori esistenti" + :property/go-to-this-property "Vai alla pagina della proprietà" + :property/hidden-properties "Proprietà nascoste" + :property/hide-by-default "Nascondi per impostazione predefinita" + :property/hide-choice-for-tag "Nascondi opzione per tag" + :property/hide-empty-value "Nascondi valori vuoti" + :property/hide-for-tag "Nascondi per #{1}" + :property/hide-hidden-choices "Nascondi opzioni nascoste" + :property/map-checked-to "Mappa selezionato a" + :property/map-unchecked-to "Mappa deselezionato a" + :property/more-settings "Altre impostazioni" + :property/multiple-values "Valori multipli" + :property/multiple-values-confirm "Abilitare valori multipli?" + :property/name "Nome" + :property/name-placeholder "Nome della proprietà" + :property/nodes-with-property "Nodi con proprietà" + :property/overdue "Scaduto" + :property/private-built-in-not-usable "Proprietà predefinita privata non utilizzabile" + :property/select-choice "Seleziona opzione" + :property/select-property-placeholder "Seleziona una proprietà" + :property/select-type-placeholder "Seleziona un tipo di proprietà" + :property/self-reference "Autoreferenza" + :property/set-default-choice "Imposta opzione predefinita" + :property/set-default-value "Imposta valore predefinito" + :property/set-icon "Imposta icona" + :property/set-placeholder "Imposta {1}" + :property/set-property "Imposta proprietà" + :property/set-tags "Imposta tag" + :property/set-value "Imposta valore" + :property/show-as-checkbox-on-node "Mostra come casella sul nodo" + :property/show-as-checkbox-on-tagged-nodes "Mostra come casella sui nodi con tag" + :property/show-hidden-choices "Mostra opzioni nascoste" + :property/skip-choosing-tag "Salta scelta tag" + :property/specify-node-tags "Specifica tag del nodo" + :property/title-placeholder "Titolo" + :property/type "Tipo" + :property/type-change-warning "La modifica del tipo di proprietà cancella alcune configurazioni della proprietà." + :property/type-checkbox "Casella di controllo" + :property/type-date "Data" + :property/type-datetime "Data/Ora" + :property/type-locked-help "Il tipo è bloccato" + :property/type-node "Nodo" + :property/type-number "Numero" + :property/type-text "Testo" + :property/type-url "URL" + :property/ui-position "Posizione UI" + :property/ui-position-block-below "Sotto il blocco" + :property/ui-position-block-left "A sinistra del blocco" + :property/ui-position-block-right "A destra del blocco" + :property/ui-position-properties "Proprietà" + :property/unset-property "Rimuovi proprietà" + :property/update-success "Aggiornato" + + :property.built-in/alias "Alias" + :property.built-in/asset "Risorsa" + :property.built-in/asset-align "Allineamento risorsa" + :property.built-in/asset-checksum "Checksum file" + :property.built-in/asset-external-file-name "Nome file esterno" + :property.built-in/asset-external-url "URL esterno" + :property.built-in/asset-height "Altezza immagine" + :property.built-in/asset-last-visit-page "Ultima pagina visitata" + :property.built-in/asset-remote-metadata "Metadati remoti del file" + :property.built-in/asset-resize-metadata "Metadati ridimensionamento risorsa" + :property.built-in/asset-size "Dimensione file" + :property.built-in/asset-type "Tipo file" + :property.built-in/asset-width "Larghezza immagine" + :property.built-in/background-color "Colore di sfondo" + :property.built-in/built-in "Integrato?" + :property.built-in/checkbox-display-properties "Proprietà visualizzate come casella di spunta" + :property.built-in/choice-checkbox-state "Stato casella di spunta scelta" + :property.built-in/choice-classes "Classi scelta" + :property.built-in/choice-exclusions "Esclusioni scelta" + :property.built-in/class-bidirectional-property-title "Titolo proprietà bidirezionale" + :property.built-in/class-enable-bidirectional "Abilita proprietà bidirezionali" + :property.built-in/class-extends "Estende" + :property.built-in/class-hide-from-node "Nascondi dal nodo" + :property.built-in/class-properties "Proprietà tag" + :property.built-in/classes "Classi proprietà" + :property.built-in/closed-value-property "Proprietà a valore chiuso" + :property.built-in/code-lang "Modalità codice" + :property.built-in/collapsed "Nodo compresso?" + :property.built-in/created-at "Nodo creato il" + :property.built-in/created-by-ref "Nodo creato da" + :property.built-in/created-from-property "Creato dalla proprietà" + :property.built-in/deadline "Scadenza" + :property.built-in/default-value "Valore predefinito" + :property.built-in/deleted-at "Eliminato il" + :property.built-in/deleted-by-ref "Eliminato da" + :property.built-in/description "Descrizione" + :property.built-in/enable-history "Abilita cronologia proprietà" + :property.built-in/exclude-from-graph-view "Escluso dalla vista grafo?" + :property.built-in/fsrs-due "Scadenza" + :property.built-in/fsrs-state "Stato" + :property.built-in/heading "Intestazione" + :property.built-in/hide "Nascondi questa proprietà o pagina" + :property.built-in/hide-empty-value "Nascondi valore vuoto" + :property.built-in/history-block "Blocco cronologia" + :property.built-in/history-property "Proprietà cronologia" + :property.built-in/history-ref-value "Valore cronologia" + :property.built-in/history-scalar-value "Valore scalare cronologia" + :property.built-in/icon "Icona" + :property.built-in/journal-day "Data del diario" + :property.built-in/journal-title-format "Formato titolo" + :property.built-in/link "Il nodo collega a" + :property.built-in/linked-references-excludes "Riferimenti esclusi" + :property.built-in/linked-references-includes "Riferimenti inclusi" + :property.built-in/ls-type "Tipo LS" + :property.built-in/node-display-type "Tipo visualizzazione nodo" + :property.built-in/order "Ordine nodo" + :property.built-in/order-list-type "Tipo lista" + :property.built-in/page "Pagina nodo" + :property.built-in/page-tags "Tag pagina" + :property.built-in/parent "Nodo genitore" + :property.built-in/priority "Priorità" + :property.built-in/public "Proprietà pubblica?" + :property.built-in/publish-published-url "URL pubblicato" + :property.built-in/publishing-public "Pubblicazione pubblica?" + :property.built-in/query "Query" + :property.built-in/reaction-emoji-id "Emoji reazione" + :property.built-in/reaction-target "Obiettivo reazione" + :property.built-in/recycle-original-order "Ordine originale cestino" + :property.built-in/recycle-original-page "Pagina originale cestino" + :property.built-in/recycle-original-parent "Genitore originale cestino" + :property.built-in/refs "Riferimenti nodo" + :property.built-in/repeat-checked-property "Proprietà selezionata ripetizione" + :property.built-in/repeat-recur-frequency "Frequenza di ricorrenza ripetizione" + :property.built-in/repeat-recur-unit "Unità di ricorrenza ripetizione" + :property.built-in/repeat-repeated "Il nodo si ripete?" + :property.built-in/repeat-temporal-property "Proprietà temporale ripetizione" + :property.built-in/scalar-default-value "Valore predefinito tipo non riferimento" + :property.built-in/scheduled "Pianificato" + :property.built-in/status "Stato" + :property.built-in/sync-large-title-object "Riferimento al titolo di blocco grande archiviato nello storage remoto" + :property.built-in/table-filters "Filtri vista" + :property.built-in/table-hidden-columns "Colonne nascoste vista" + :property.built-in/table-ordered-columns "Colonne ordinate vista" + :property.built-in/table-pinned-columns "Colonne fissate vista tabella" + :property.built-in/table-sized-columns "Impostazioni colonne vista" + :property.built-in/table-sorting "Ordinamento vista" + :property.built-in/tags "Tag" + :property.built-in/template-applied-to "Applica modello ai tag" + :property.built-in/title "Titolo nodo" + :property.built-in/type "Tipo proprietà" + :property.built-in/ui-position "Posizione proprietà" + :property.built-in/updated-at "Nodo aggiornato il" + :property.built-in/used-template "Modello utilizzato" + :property.built-in/user-avatar "Avatar utente" + :property.built-in/user-email "Email utente" + :property.built-in/user-name "Nome utente" + :property.built-in/value "Valore proprietà" + :property.built-in/view-context "Contesto vista proprietà" + :property.built-in/view-feature-type "Tipo funzionalità vista" + :property.built-in/view-for "Questa vista appartiene a" + :property.built-in/view-group-by-property "Raggruppa vista per proprietà" + :property.built-in/view-sort-groups-by-property "Ordina gruppi vista per" + :property.built-in/view-sort-groups-desc "Ordina gruppi vista DESC" + :property.built-in/view-type "Tipo vista" + + :property.choice/already-exists "L'opzione esiste già." + :property.choice/cant-delete-built-in "L'opzione predefinita non può essere eliminata." + :property.choice/invalid "Scelta non valida \"{1}\" per questa proprietà: {2}" + + :property.color/blue "blu" + :property.color/green "verde" + :property.color/purple "viola" + :property.color/red "rosso" + :property.color/yellow "giallo" + + :property.priority/high "Alta" + :property.priority/low "Bassa" + :property.priority/medium "Media" + :property.priority/urgent "Urgente" + + :property.repeat/date "Data ripetizione" + :property.repeat/datetime "Data e ora ripetizione" + :property.repeat/every "Ogni" + :property.repeat/is-label "è:" + :property.repeat/task "Attività ripetizione" + :property.repeat/when "Quando" + + :property.repeat-recur-unit/day "Giorno" + :property.repeat-recur-unit/hour "Ora" + :property.repeat-recur-unit/minute "Minuto" + :property.repeat-recur-unit/month "Mese" + :property.repeat-recur-unit/week "Settimana" + :property.repeat-recur-unit/year "Anno" + + :property.status/backlog "Backlog" + :property.status/canceled "Annullato" + :property.status/doing "In corso" + :property.status/done "Completato" + :property.status/in-review "In revisione" + :property.status/todo "Da fare" + + :property.validation/cant-convert-to-number "Impossibile convertire \"{1}\" in un numero." + :property.validation/cant-remove-required "La proprietà richiesta non può essere rimossa." + :property.validation/cant-set-self-value "Impossibile impostare se stesso come valore della proprietà." + :property.validation/duplicate "La proprietà '{1}' esiste già." + :property.validation/invalid-name "Questo è un nome di proprietà non valido. Il nome di una proprietà non può iniziare con i caratteri di riferimento della pagina \"#\" o \"[[\"." + :property.validation/invalid-value "La proprietà \"{1}\" ha un valore non valido: {2}" + :property.validation/many-to-one "Impossibile convertire una proprietà a valori multipli in valore singolo." + :property.validation/protected "Questa proprietà è protetta e non può essere modificata." + + :property.view-type/gallery "Vista galleria" + :property.view-type/list "Vista lista" + :property.view-type/table "Vista tabella" + + :publish/action "Pubblica" + :publish/dialog-desc "Proteggi opzionalmente questa pagina con una password. Lascia vuoto per accesso pubblico." + :publish/dialog-title "Pubblica pagina" + :publish/invalid-page-error "Pagina non valida" + :publish/password-optional-placeholder "Password opzionale" + :publish/publish-error "Pubblicazione fallita" + :publish/published-to "Pubblicato su {1}" + :publish/publishing "Pubblicazione in corso..." + :publish/unpublish "Depubblica" + :publish/unpublish-error "Depubblicazione fallita" + :publish/unpublish-missing-page-id "Depubblicazione: ID pagina mancante" + :publish/unpublished "Depubblicato" + + :query/advanced-results "Risultati della query avanzata" + :query/custom-view-error "Errore vista personalizzata: {1}" + :query/error "Errore query:" + :query/examples-desc "Controlla altri esempi su {{Queries documentation}}." + :query/examples-title "Esempi di query:" + :query/results-for "Risultati per {1}" + + :query.builder/add-filter-or-operator-placeholder "Aggiungi filtro/operatore" + :query.builder/between-end-label "Data fine" + :query.builder/between-journal-label "tra: {1} ~ {2}" + :query.builder/between-start-label "Data inizio" + :query.builder/created-label "Creato" + :query.builder/filter "Filtro" + :query.builder/filter-full-text-search-label "Ricerca testo completo" + :query.builder/filter-page-label "Pagina" + :query.builder/filter-page-reference-label "Riferimento pagina" + :query.builder/filter-sample-label "Campione" + :query.builder/operator-and-label "e" + :query.builder/operator-not-label "non" + :query.builder/replace-with-label "Sostituisci con:" + :query.builder/search-label "Cerca: {1}" + :query.builder/show-built-in-properties "Mostra le proprietà integrate" + :query.builder/unwrap-operator "Rimuovi involucro" + :query.builder/updated-label "Aggiornato" + :query.builder/wrap-filter-with-label "Avvolgi questo filtro con:" + + :reference/blocks "Riferimento al blocco" + :reference/copy "Copia riferimento" + :reference/delete "Elimina riferimento" + :reference/page-filter "Filtro pagina" + :reference/replace-with-embed "Sostituisci con un'integrazione" + :reference/replace-with-text "Sostituisci con testo" + + :reference.filter/directions "Click per includere e Shift-Click per escludere. Clicca di nuovo per rimuovere." + :reference.filter/excludes "Esclude: " + :reference.filter/includes "Include: " + :reference.filter/search-placeholder "Cerca nelle pagine collegate" + :reference.filter/title "Filtro" + + :search/blank-input "Input vuoto" + :search/full-text-placeholder "Ricerca full text" + :search/index-progress "Indicizzazione {1}%" + :search/indices-rebuilt-success "Indici di ricerca ricostruiti con successo!" + :search/no-result "Nessun risultato" + :search/result-count "{1} risultati" + + :search.find-in-page/input-placeholder "Trova nella pagina" + :search.find-in-page/match-case "Maiuscole/minuscole" + :search.find-in-page/next-result "Risultato successivo" + :search.find-in-page/previous-result "Risultato precedente" + + :select/default-prompt "Selezionane uno" :select/default-select-multiple "Seleziona uno o molteplici" - :settings-page/app-updated "La tua app è aggiornata 🎉" - :settings-page/auto-chmod "Cambia permessi dei file automaticamente" - :settings-page/auto-chmod-desc "Disabilita per consentire la modifica da più utenti autorizzati dall'appartenenza al gruppo." - :settings-page/auto-expand-block-refs "Espandi riferimenti ai blocchi automaticamente quando si ingrandisce" - :settings-page/auto-expand-block-refs-tip "Questa opzione controlla se espandere i riferimenti ai blocchi automaticamente quando si ingrandisce." - :settings-page/changelog "Che c'è di nuovo?" - :settings-page/check-for-updates "Controlla se ci sono aggiornamenti" - :settings-page/checking "Controllando..." - :settings-page/clear-cache-warning "Pulire la chache scarterà i grafi aperti. Perderai modifiche non salvate." - :settings-page/custom-global-configuration "Configurazione globale personalizzata" - :settings-page/disable-sentry-desc "Logseq non raccoglierà mai il database del grafo locale e non venderà mai i tuoi dati." - :settings-page/edit-global-config-edn "Modifica config.edn globale" - :settings-page/login-prompt "Per avere accesso a nuove funzionalità prima di tutti gli altri devi essere uno sponsor di Open Collective oppure supportare Logseq, quindi devi prima accedere." - :settings-page/native-titlebar "Barra del titolo nativa" - :settings-page/native-titlebar-desc "Abilita la barra del titolo nativa su Windows e Linux." - :settings-page/preferred-outdenting-tip "Il lato sinistro mostra l'indentazione con impostazioni predefinite, e il lato destro mostra l'indentazione logica abilitata." - :settings-page/preferred-outdenting-tip-more "→ Scopri di più" - :settings-page/preferred-pasting-file "Preferisci incollare file" - :settings-page/preferred-pasting-file-hint "Quando abilitata, incollare un'immagine da internet scaricherà e inserirà l'immagine. Quando disabilitata, incollerà il link all'immagine." - :settings-page/revision "Revisione: " - :settings-page/show-full-blocks "Mostra tutte le righe del riferimento ad un blocco" - :settings-page/tab-account "Account" - :settings-page/tab-editor "Editor" - :settings-page/tab-features "Funzionalità" - :settings-page/tab-keymap "Scorciatoie" - :settings-page/theme-dark "Scuro" - :settings-page/theme-light "Chiaro" - :settings-page/theme-system "Sistema" - :settings-page/update-available "Trovato una nuova versione " - :settings-page/update-error-1 "⚠️ Ops, qualcosa è andato storto!" - :settings-page/update-error-2 " Per favore, controlla il " - :shortcut.category/plugins "Plugin" - :tips/all-done "Tutto fatto!" + :select/new-option "+ Nuova opzione: {1}" + + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "URL MCP copiato" + :server/start "Avvia" + :server/stop "Ferma" + :server/title "Server API HTTP" + + :server.config/auto-start-label "Avvia automaticamente con l'app" + :server.config/port-label "Intervallo porte" + :server.config/reset "Ripristina" + :server.config/save-and-apply "Salva e applica" + :server.config/title "Configurazioni del server" + + :server.status/closed "Chiuso" + :server.status/closing "Chiusura" + :server.status/error "Errore" + :server.status/running "In esecuzione" + :server.status/starting "Avvio" + :server.status/stopped "Fermato" + + :server.token/add-new "Aggiungi nuovo token" + :server.token/name-placeholder "Nome del server" + :server.token/regenerate-value "Rigenera valore del token" + :server.token/title "Token di autorizzazione" + :server.token/update-success "Token aggiornati" + :server.token/value-placeholder "Valore" + + :settings/account "Account" + :settings/advanced "Avanzate" + :settings/ai "IA" + :settings/collaboration "Collaborazione" + :settings/editor "Editor" + :settings/encryption "Crittografia" + :settings/features "Funzionalità" + :settings/general "Generale" + :settings/keymap "Scorciatoie" + :settings/plugins "Impostazioni estensioni" + + :settings.account/storage-usage "{1}GB di {2}GB di spazio di archiviazione totale ({3})" + :settings.account/synced-graphs "{1} di {2} grafici sincronizzati ({3})" + + :settings.advanced/auto-chmod "Cambia permessi dei file automaticamente" + :settings.advanced/auto-chmod-desc "Disabilita per consentire la modifica da più utenti autorizzati dall'appartenenza al gruppo." + :settings.advanced/auto-updater "Aggiornamento automatico" + :settings.advanced/developer-mode "Modalità sviluppatore" + :settings.advanced/developer-mode-desc "La modalità sviluppatore aiuta i contributori e gli sviluppatori di estensioni a testare le loro integrazioni con Logseq in modo più efficiente." + :settings.advanced/disable-sentry "Invia dati di utilizzo e diagnostica a Logseq" + :settings.advanced/disable-sentry-desc "Logseq non raccoglierà mai il database del grafo locale e non venderà mai i tuoi dati." + :settings.advanced/network-proxy "Proxy di rete" + + :settings.ai/enable-mcp-server "Abilita server MCP" + :settings.ai/enable-mcp-server-desc "Abilita il server MCP per l'integrazione AI" + + :settings.editor/auto-expand-block-refs "Espandi riferimenti ai blocchi automaticamente quando si ingrandisce" + :settings.editor/auto-expand-block-refs-tip "Questa opzione controlla se espandere i riferimenti ai blocchi automaticamente quando si ingrandisce." + :settings.editor/custom-date-format "Formato data preferito" + :settings.editor/enable-all-pages-public "Durante la pubblicazione tutte le pagine sono pubbliche" + :settings.editor/enable-shortcut-tooltip "Abilita suggerimenti a comparsa" + :settings.editor/enable-tooltip "Suggerimenti" + :settings.editor/preferred-outdenting "Indentazione logica" + :settings.editor/preferred-outdenting-tip "Il lato sinistro mostra l'indentazione con impostazioni predefinite, e il lato destro mostra l'indentazione logica abilitata." + :settings.editor/preferred-outdenting-tip-more "→ Scopri di più" + :settings.editor/preferred-pasting-file "Preferisci incollare file" + :settings.editor/preferred-pasting-file-hint "Quando abilitata, incollare un'immagine da internet scaricherà e inserirà l'immagine. Quando disabilitata, incollerà il link all'immagine." + :settings.editor/show-brackets "Mostra parentesi" + :settings.editor/show-full-blocks "Mostra tutte le righe del riferimento ad un blocco" + :settings.editor/spell-checker "Correttore ortografico" + :settings.editor/wide-mode "Modalità ampia" + + :settings.features/enable-flashcards "Flashcard" + :settings.features/enable-journals "Diario" + :settings.features/home-default-page "Imposta la home page predefinita" + :settings.features/home-default-page-update-success "Pagina iniziale predefinita aggiornata" + :settings.features/journals-enable-success "Diari abilitati" + :settings.features/login-prompt "Per avere accesso a nuove funzionalità prima di tutti gli altri devi essere uno sponsor di Open Collective oppure supportare Logseq, quindi devi prima accedere." + :settings.features/page-not-found "La pagina \"{1}\" non esiste ancora. Per favore crea prima quella pagina e poi riprova." + :settings.features/plugin-system "Sistema di plugin" + + :settings.general/accent-color "Colore di accento" + :settings.general/accent-color-alert "Avviso colore di accento" + :settings.general/accent-color-logseq "Colore classico di Logseq" + :settings.general/accent-color-none-desc "Annulla il colore di accento. Questa funzione è attualmente in fase beta ed è principalmente utilizzata per la compatibilità con temi personalizzati." + :settings.general/changelog "Che c'è di nuovo?" + :settings.general/check-for-updates "Controlla se ci sono aggiornamenti" + :settings.general/current-revision-label "Revisione attuale" + :settings.general/current-version "Versione attuale" + :settings.general/custom-configuration "Configurazione personalizzata" + :settings.general/custom-global-configuration "Configurazione globale personalizzata" + :settings.general/custom-theme "Tema personalizzato" + :settings.general/edit-config-edn "Modifica config.edn" + :settings.general/edit-custom-css "Modifica custom.css" + :settings.general/edit-export-css "Modifica export.css" + :settings.general/edit-global-config-edn "Modifica config.edn globale" + :settings.general/editor-font "Font dell'editor" + :settings.general/editor-font-set-global "Imposta come famiglia di font globale" + :settings.general/export-theme "Esporta tema" + :settings.general/language "Lingua" + :settings.general/native-titlebar "Barra del titolo nativa" + :settings.general/native-titlebar-desc "Abilita la barra del titolo nativa su Windows e Linux." + :settings.general/refresh-required-feedback "Aggiornamento richiesto" + :settings.general/release-channel "canale di rilascio" + :settings.general/revision "Revisione: {1}" + :settings.general/theme-dark "Scuro" + :settings.general/theme-light "Chiaro" + :settings.general/theme-system "Sistema" + + :settings.sync-server/clear-success "L'URL del server di sincronizzazione è stata cancellata. Verrà usato Logseq Sync ufficiale." + :settings.sync-server/reset "Ripristina predefinito" + :settings.sync-server/save-success "URL del server di sincronizzazione salvato." + :settings.sync-server/url "URL del server di sincronizzazione" + :settings.sync-server/url-desc "Imposta un URL HTTPS personalizzato per un server di sincronizzazione self-hosted. I tuoi token di autenticazione Logseq verranno inviati a questo server, quindi usa solo un URL affidabile. Lascia vuoto per usare Logseq Sync ufficiale." + :settings.sync-server/url-invalid-error "L'URL deve iniziare con https:// o http://" + + :shell/input-command-title "Inserisci comando" + + :shortcut.category/basics "Nozioni di base" + :shortcut.category/block-command-editing "Modifica comandi blocco" + :shortcut.category/block-editing "Modifica blocco generale" + :shortcut.category/block-selection "Selezione blocco (premi Esc per uscire dalla selezione)" + :shortcut.category/formatting "Formattazione" + :shortcut.category/navigating "Navigazione" + :shortcut.category/others "Altri" + :shortcut.category/plugins "Estensioni" + :shortcut.category/toggle "Attiva/disattiva" + + :sidebar.left/favorites "Preferiti" + :sidebar.left/navigations "Navigazione" + :sidebar.left/recent-pages "Recenti" + + :sidebar.right/close "Chiudi" + :sidebar.right/close-all "Chiudi tutti" + :sidebar.right/close-others "Chiudi altri" + :sidebar.right/collapse "Collassa" + :sidebar.right/collapse-all "Collassa tutti" + :sidebar.right/collapse-others "Collassa altri" + :sidebar.right/expand "Espandi" + :sidebar.right/expand-all "Espandi tutti" + :sidebar.right/more "Altro" + :sidebar.right/open "Apri nel pannello laterale" + :sidebar.right/open-as-page "Apri come pagina" + :sidebar.right/resize-handle "Bordo per ridimensionare il pannello laterale destro" + :sidebar.right/toggle "Attiva/disattiva pannello laterale destro" + + :storage/invalid-data-writing "Scrittura dati non valida." + :storage/sqlitedb-error "Errore SQLiteDB: {1}" + :storage/sqlitedb-import-error "Errore di importazione SQLiteDB: {1}" + :storage/sqlitedb-save-error "Errore di salvataggio SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Blocco eliminato {1}" + :storage.recycle/empty "Il cestino è vuoto." + :storage.recycle/page-deleted-at "Pagina eliminata {1}" + :storage.recycle/readonly "Cestino (solo lettura)" + :storage.recycle/restore "Ripristina" + :storage.recycle/retention-desc "Le pagine e i blocchi eliminati restano qui finché non vengono ripristinati o rimossi automaticamente dopo 30 giorni." + :storage.recycle/title "Cestino" + + :sync/assets-downloading-count "Download delle risorse ({1})" + :sync/assets-uploading-count "Upload delle risorse ({1})" + :sync/creating-remote-graph "Creazione del grafo remoto..." + :sync/downloading "Download in corso..." + :sync/downloading-graph "Download di {1} ..." + :sync/graph-count-exceed-limit "Il numero di grafi supera il limite" + :sync/invitation-sent "Invito inviato" + :sync/last-synced-time-label "Ultima sincronizzazione: {1}" + :sync/more-debug-info "Più info di debug" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "modifiche locali in sospeso" + :sync/pending-server-changes "modifiche del server in sospeso" + :sync/something-wrong "Errore di sincronizzazione" + :sync/start-sync "Avvia sincronizzazione" + :sync/storage-exceed-limit "Lo spazio di archiviazione supera il limite" + :sync/uploading "Upload in corso..." + :sync/user-doesnt-exist-yet "L'utente non esiste ancora" + + :theme/logseq-default "Tema predefinito di Logseq" + :theme/switch-to "Passa al tema {1}" + + :ui/all-done "Tutto fatto!" + :ui/apply "Applica" + :ui/cancel "Annulla" + :ui/close "Chiudi" + :ui/configure "Configura" + :ui/confirm "Conferma" + :ui/copy "Copia" + :ui/copy-all "Copia tutto" + :ui/copy-to-clipboard "Copia negli appunti" + :ui/create "Crea" + :ui/date-natural-language-placeholder "es. Prossima settimana" + :ui/delete "Elimina" + :ui/deleted "Eliminato" + :ui/dont-remind-me-again "Non ricordarmelo più" + :ui/empty "Vuoto" + :ui/error "Errore" + :ui/error-boundary-error "Errore rilevato dall'interfaccia!\n {1}" + :ui/export "Esporta" + :ui/false "Falso" + :ui/fix "Correggi!" + :ui/frequently-used "Usati di frequente" + :ui/from "Da: " + :ui/host "Host" + :ui/image "immagine" + :ui/label "Etichetta" + :ui/link "Link" + :ui/load-more "Carica altro" + :ui/loading "Caricamento" + :ui/login "Accedi" + :ui/logout "Esci" + :ui/off "DISATTIVATO" + :ui/on "ATTIVATO" + :ui/open "Apri" + :ui/open-named "Apri {1}" + :ui/port "Porta" + :ui/refresh "Aggiorna" + :ui/relaunch-confirm "Questa modifica richiede il riavvio dell'app. Riavviare ora?" + :ui/remove-background "Rimuovi sfondo" + :ui/reset "Reimposta" + :ui/run "Esegui" + :ui/save "Salva" + :ui/show-less "Mostra meno" + :ui/show-more "Mostra altro" + :ui/skip "Salta" + :ui/submit "Invia" + :ui/to "A: " + :ui/toggle-theme "Cambia tema" + :ui/true "Vero" + :ui/type "Tipo" + :ui/untitled "Senza titolo" + :ui/use-current-time "Usa l'ora corrente" + :ui/yes "Sì" + + :updater/checking-for-updates "Verifica aggiornamenti" + :updater/downloading-progress "Download dell'aggiornamento ({1}%)" + :updater/quit-and-install "Riavvia e installa" + :updater/up-to-date "La tua app è aggiornata 🎉" + :updater/update-available "Aggiornamento disponibile" + :updater/update-error "⚠️ Ops, qualcosa è andato storto!\nPer favore, controlla il {1}." + :updater/update-ready-to-install "L'aggiornamento è pronto per l'installazione" + + :view/add-new-view "Aggiungi nuova vista" + :view/all "Tutti" + :view/export-edn "Esporta EDN" + :view/linked-references "Riferimenti collegati" + :view/new "Nuovo" + :view/new-property "Nuova proprietà" + :view/new-view "Nuova vista" + :view/rename "Rinomina" + :view/results "Risultati:" + :view/unlinked-references "Riferimenti non collegati" + + :view.filter/custom-date "Data personalizzata" + :view.filter/empty "Vuoto" + :view.filter/filter "Filtro" + :view.filter/from "Da" + :view.filter/is-empty "È vuoto" + :view.filter/is-not-empty "Non è vuoto" + :view.filter/match "Corrispondenza" + :view.filter/match-all-filters "Soddisfa tutti i filtri" + :view.filter/match-any-filter "Soddisfa almeno un filtro" + :view.filter/operator-after "Dopo" + :view.filter/operator-before "Prima" + :view.filter/operator-between "Tra" + :view.filter/operator-date-after "Data dopo" + :view.filter/operator-date-before "Data prima" + :view.filter/operator-is "È" + :view.filter/operator-is-not "Non è" + :view.filter/operator-text-contains "Il testo contiene" + :view.filter/operator-text-not-contains "Il testo non contiene" + :view.filter/or "O" + :view.filter/relative-1-day-ago "1 giorno fa" + :view.filter/relative-1-month-ago "1 mese fa" + :view.filter/relative-1-week-ago "1 settimana fa" + :view.filter/relative-1-year-ago "1 anno fa" + :view.filter/relative-3-days-ago "3 giorni fa" + :view.filter/relative-3-months-ago "3 mesi fa" + :view.filter/to "A" + :view.filter/type-to-search "Digita per cercare" + + :view.table/ascending "Crescente" + :view.table/columns-visibility "Visibilità colonne" + :view.table/default-title "{1} nodi" + :view.table/delete-sort "Elimina ordinamento" + :view.table/descending "Decrescente" + :view.table/drag-to-reorder "Trascina per riordinare" + :view.table/group-by "Raggruppa per" + :view.table/group-journal-date "Data del diario" + :view.table/group-page-created-date "Data di creazione della pagina" + :view.table/group-page-name "Nome pagina" + :view.table/group-page-updated-date "Data di aggiornamento della pagina" + :view.table/live-query-title "Query in tempo reale ({1})" + :view.table/name-column "Nome" + :view.table/no-group-value "Nessun {1}" + :view.table/page "Pagina" + :view.table/pages "Pagine" + :view.table/pin "Fissa" + :view.table/row-number "Numero di riga" + :view.table/select-all "Seleziona tutto" + :view.table/select-column "Seleziona colonna" + :view.table/select-order "Seleziona ordine" + :view.table/select-row "Seleziona riga" + :view.table/selected-count "Selezionati: {1}" + :view.table/sort-ascending "Crescente" + :view.table/sort-descending "Decrescente" + :view.table/sort-groups-by "Ordina gruppi per" + :view.table/sort-groups-order "Ordine dei gruppi" + :view.table/total-refs-count "Totale riferimenti" + :view.table/unpin "Rilascia" + :window/close "Chiudi" :window/exit-fullscreen "Esci da schermo intero" :window/maximize "Massimizza" :window/minimize "Minimizza" :window/restore "Ripristina" - :command.editor/toggle-block-children "Espandi/Comprimi" - :linked-references/filter-directions "Click per includere e Shift-Click per escludere. Clicca di nuovo per rimuovere." - :linked-references/filter-excludes "Esclude: " - :linked-references/filter-heading "Filtro" - :linked-references/filter-includes "Include: "} + + :youtube/embed-first-reminder-mobile "Per favore, incrustra prima un video di YouTube, poi usa questa icona.\nRicorda: puoi incollare un URL YouTube diretto come video incorporato su mobile." + :youtube/player-not-ready "Il player YouTube non è ancora pronto." + :youtube/timestamps-not-available-mobile "Gli timestamp di YouTube non sono ancora disponibili su mobile." + + :zotero/attachments "Allegati" + :zotero/imported-file-warning "Questo è un file Zotero importato, imposta directory dei dati di Zotero per aprire il file in Logseq." + :zotero/linked-file-warning "Questo è un file Zotero collegato, imposta directory di base degli allegati collegati di Zotero per aprire il file in Logseq." + :zotero/notes "Note" +} diff --git a/src/resources/dicts/ja.edn b/src/resources/dicts/ja.edn index a0738613ee..4fc122f6b8 100644 --- a/src/resources/dicts/ja.edn +++ b/src/resources/dicts/ja.edn @@ -1,479 +1,1861 @@ -{:accessibility/skip-to-main-content "メインの内容まで飛ぶ" - :handbook/title "ヘルプ" - :handbook/topics "話題" - :handbook/popular-topics "人気のある話題" - :handbook/help-categories "ヘルプのカテゴリ" - :handbook/search "検索" - :handbook/home "ホーム" - :handbook/settings "設定" - :handbook/close "閉じる" - :on-boarding/importing-main-title "既に存在するノートを読み込む" - :on-boarding/importing-main-desc "これは後にアプリ内で行うこともできます。" - :on-boarding/importing-title "既に持っている読み込みたいノートはありますか?" - :on-boarding/importing-desc "EDN、Markdown形式のいずれかであればLogseqはうまく処理できます。" - :on-boarding/main-title (fn [] [[:strong "Logseq"] "へようこそ!"]) - :on-boarding/main-desc "はじめに、あなたの考えやアイデア、ノートを保存しておくためのフォルダを選択する必要があります。" - :bug-report/main-title "バグ報告" - :bug-report/clipboard-inspector-title "クリップボードのデータを調査" - :bug-report/main-desc "バグ報告を提出することで我々を手伝っていただけると嬉しいです。できるだけ早くバグを解決したいと考えています。" - :bug-report/section-clipboard-title "あなたの遭遇したバグはこれらの機能に関連していますか?" - :bug-report/section-clipboard-desc "追加の情報を提供する場合は、これらのツールを使うと便利です。" - :bug-report/section-clipboard-btn-title "クリップボードヘルパー" - :bug-report/section-clipboard-btn-desc "クリップボードのデータを調査し、修正する" - :bug-report/section-issues-title "もしくは..." - :bug-report/section-issues-desc "もし追加の情報を収集するツールが使えなかった場合、直接バグを報告してください。" - :bug-report/section-issues-btn-title "バグ報告を提出する" - :bug-report/section-issues-btn-desc "あなたのお手伝いでLogseqはより良くなります!" - :bug-report/inspector-page-btn-back "戻る" - :bug-report/inspector-page-btn-copy "結果をコピー" - :bug-report/inspector-page-btn-create-issue "イシューを作成する" - :bug-report/inspector-page-copy-notif "クリップボードにコピーしました!" - :bug-report/inspector-page-desc-1 "クリップボードのデータを見るには、 Ctrl+V / ⌘+V を押してください" - :bug-report/inspector-page-desc-2 "もしあなたがモバイル版を使っている場合、ここをクリックして貼り付けしてください" - :bug-report/inspector-page-desc-clipboard "これがクリップボードから読み込まれたデータです。" - :bug-report/inspector-page-desc-copy "共有する準備ができたら、コピーボタンをクリックしてください。" - :bug-report/inspector-page-desc-create-issue "これで、クリップボードの内容を結果として報告できるようになりました。「Additional Context」セクションにその結果を貼り付けた上で、元々のコンテンツをコピーしてきた場所を記載してください。ここまでご協力ありがとうございます。" - :bug-report/inspector-page-placeholder "モバイル端末を利用している場合は、ここを長押ししてください" - :bug-report/inspector-page-tip "なにかおかしいですか?問題ありません、クリックすることで前のステップに戻ることができます。" - :help/title-usage "使い方" - :help/title-community "コミュニティ" - :help/title-development "開発" - :help/title-about "私たちについて" - :help/title-terms "規約" - :help/start "はじめに" +{ + :account/authentication "認証" + :account/benefits-desc "Logseqアカウントを使用すると、Logseq Syncやアルファ/ベータ機能などのクラウドベースのサービスにアクセスできます。" + :account/billing "請求" + :account/billing-expired-on-label "Proプランの有効期限切れ:{1}" + :account/billing-expires-on-label "Proプランの有効期限:{1}" + :account/billing-next-date-label "次回請求日:{1}" + :account/core-features "Logseqのコア機能へのアクセス" + :account/current-plan "現在のプラン" + :account/delete-account "アカウントを削除" + :account/discover-sync-desc "{1}のパワーを発見しよう" + :account/early-access-alpha-beta "アルファ/ベータ機能への早期アクセス" + :account/first-name "名" + :account/free-plan-sync-limit "同期グラフ1つ(最大50MB、ノートのみ)" + :account/last-name "姓" + :account/manage-plan "プランを管理" + :account/month "月" + :account/no-asset-syncing "アセットの同期なし" + :account/open-invoices "請求書を開く" + :account/plan-free "Free" + :account/plan-free-summary "基本的な同期で始めましょう" + :account/plan-pro "Pro" + :account/plan-pro-summary "高度な同期機能などをアンロック" + :account/pro-plan-sync-limit "同期グラフ10個(各最大5GB)" + :account/profile "プロフィール" + :account/refresh-token-warning "トークンリフレッシュ:異常ステータス" + :account/reset-password "パスワードをリセット" + :account/sign-up "サインアップ" + :account/sync-assets-limit "1ファイルあたり最大100MBのアセットを同期" + :account/synced-status "同期済み" + :account/unlimited-unsynced-graphs "未同期グラフは無制限" + :account/upcoming-cloud-features "Logseq Publishを含む今後のクラウドベース機能" + :account/upgrade-plan "プランをアップグレード" + :account/username "ユーザー名" + + :asset/acceptable-file-extensions "許可されるファイル拡張子" + :asset/add-assets "アセットを追加" + :asset/add-directory "ディレクトリを追加" + :asset/alias-already-exists "\"{1}\"のエイリアス名はすでに存在しています!" + :asset/alias-directories "エイリアスディレクトリ" + :asset/alias-directory-path-label "ディレクトリパス:" + :asset/alias-name-dialog-title "選択されたディレクトリのエイリアス名を入力してください" + :asset/alias-name-label "エイリアス名:" + :asset/alias-name-placeholder "例:Books" + :asset/align "配置" + :asset/align-center "中央揃え" + :asset/align-left "左揃え" + :asset/align-right "右揃え" + :asset/already-exists "アセットはすでに存在します、タイトル: {1}、ノード参照: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "自身のプロパティとして親を埋め込むことはできません" + :asset/confirm-delete-image "この画像を削除してもよろしいですか?" + :asset/copy "アセットをコピー" + :asset/copy-image-unsupported-extension "{1} ファイルは画像のコピーに対応していません" + :asset/create-local-copy-warning "外部アセットからローカルアセットを作成します。PDFの注釈機能にはローカルアセットが必要です。" + :asset/create-title "アセットを作成" + :asset/delete "画像を削除" + :asset/downloading "ダウンロード中" + :asset/drop-hint "ここにファイルをドラッグ&ドロップするか、クリックしてファイルを選択" + :asset/edit-title "アセットを編集" + :asset/external-url-label "アセットの外部URL:" + :asset/file-extension-placeholder "例:mp3" + :asset/maximize "最大化" + :asset/open-in-browser "ブラウザで開く" + :asset/physical-delete "ファイルも削除します(元に戻せないことにご注意ください)" + :asset/ref-block "画像ブロック引用" + :asset/select-file "アセットファイルを選択" + :asset/select-from-disk "ディスクから選択" + :asset/selected-directories "選択されたディレクトリ:" + :asset/show-file-in-folder "ファイルをフォルダーに表示" + :asset/size-too-large "アセットのサイズが大きすぎます" + :asset/syncing "同期中" + :asset/title-label "アセットのタイトル:" + :asset/transfer-placeholder "{1} 個のアセット..." + :asset/uploading "アップロード中" + + :block/click-to-fix-query "クリックしてクエリを修正:{1}" + :block/copy-ref "ブロック参照をコピー" + :block/copy-url "ブロックのURLをコピー" + :block/created-label "作成日:{1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex'は非推奨です。代わりに'/Math block'コマンドを使用してください。" + :block/deprecated-query-syntax "#+BEGIN_QUERYは非推奨です。代わりに'/Advanced Query'コマンドを使用してください。" + :block/deprecated-quote "#+BEGIN_QUOTEは非推奨です。代わりに'/Quote'コマンドを使用してください。" + :block/empty-url "空のURL" + :block/excalidraw-no-longer-supported "Excalidrawはデフォルトではサポートされなくなりました。プラグインでのサポートを計画しています。" + :block/extraction-error "ブロック抽出エラー" + :block/hide-query "クエリを非表示" + :block/invalid-hiccup "無効なhiccup" + :block/invalid-link "無効なリンク" + :block/invalid-url "無効なURL" + :block/large-block-warning "大きなブロックはアプリの速度低下を防ぐため、編集や検索ができません。別のエディタでこのブロックを編集してください。" + :block/last-edited-label "最終編集日:{1}" + :block/not-found-warning "ブロックが見つかりません" + :block/open-block-references "ブロック参照を開く" + :block/practice "練習" + :block/practice-cards "カードを練習" + :block/ref-nesting-too-deep "ブロック参照のネストが深すぎます" + :block/remove-tag "タグを削除" + :block/remove-this-tag "このタグを削除" + :block/render-error "ブロック描画エラー:" + :block/set-query "クエリを設定" + :block/set-query-label "クエリを設定:" + :block/sort-order "並び順" + :block/status-history "ステータス履歴" + :block/untitled-query "無題のクエリ" + + :block.macro/embed-deprecated "{{embed}}は非推奨です。代わりに'/ノード埋め込み'コマンドを使用してください。" + :block.macro/namespace-deprecated "{{namespace}}は非推奨です。代わりに{1}機能を使用してください。" + :block.macro/query-deprecated "{{query}}は非推奨です。代わりに'/クエリ'コマンドを使用してください。" + :block.macro/unsupported-name "サポートされていないマクロ名:{1}" + + :block.reaction/emoji-required-warning "絵文字が必要です" + :block.reaction/unsupported-emoji-warning "サポートされていないリアクション絵文字" + + :bug-report/desc "バグ報告を提出することで我々を手伝っていただけると嬉しいです。できるだけ早くバグを解決したいと考えています。" + :bug-report/title "バグ報告" + + :bug-report.clipboard/action-desc "クリップボードのデータを調査し、修正する" + :bug-report.clipboard/action-title "クリップボードヘルパー" + :bug-report.clipboard/desc "追加の情報を提供する場合は、これらのツールを使うと便利です。" + :bug-report.clipboard/title "あなたの遭遇したバグはこれらの機能に関連していますか?" + + :bug-report.inspector/back "戻る" + :bug-report.inspector/clipboard-desc "これがクリップボードから読み込まれたデータです。" + :bug-report.inspector/copied "クリップボードにコピーしました!" + :bug-report.inspector/copy "結果をコピー" + :bug-report.inspector/copy-desc "共有する準備ができたら、コピーボタンをクリックしてください。" + :bug-report.inspector/create-issue "イシューを作成する" + :bug-report.inspector/create-issue-desc "これで、クリップボードの内容を結果として報告できるようになりました。結果を「Additional Context」セクションに貼り付け、元の内容をどこからコピーしたかも記載してください。ありがとうございます。" + :bug-report.inspector/desc "クリップボードのデータを見るには、 {1} を押してください\nもしあなたがモバイル版を使っている場合、ここをクリックして貼り付けしてください" + :bug-report.inspector/placeholder "モバイル端末を利用している場合は、ここを長押ししてください" + :bug-report.inspector/tip "なにかおかしいですか?問題ありません、クリックすることで前のステップに戻ることができます。" + :bug-report.inspector/title "クリップボードのデータを調査" + + :bug-report.issue/action-desc "あなたのお手伝いでLogseqはより良くなります!" + :bug-report.issue/action-title "バグ報告を提出する" + :bug-report.issue/desc "もし追加の情報を収集するツールが使えなかった場合、直接バグを報告してください。" + :bug-report.issue/report-link "問題を報告" + :bug-report.issue/title "もしくは..." + + :class/add-property "タグプロパティを追加" + :class/tag-properties-desc "タグのプロパティは、そのタグを使うすべてのノードに継承されます。たとえば、各 #Task ノードは 'Status' と 'Priority' を継承します。" + :class/tagged-nodes "タグ付きノード" + + :class.built-in/asset "アセット" + :class.built-in/card "カード" + :class.built-in/cards "カード" + :class.built-in/code-block "コード" + :class.built-in/journal "ジャーナル" + :class.built-in/math-block "数式" + :class.built-in/page "ページ" + :class.built-in/pdf-annotation "PDF注釈" + :class.built-in/property "プロパティ" + :class.built-in/query "クエリ" + :class.built-in/quote-block "引用" + :class.built-in/root "ルートタグ" + :class.built-in/tag "タグ" + :class.built-in/task "タスク" + :class.built-in/template "テンプレート" + :class.built-in/whiteboard "ホワイトボード" + + :class.validation/built-in-extends-change "組み込み項目の継承関係は変更できません。" + :class.validation/cant-add-tag-on-built-in "組み込みの「{1}」にタグを追加できません。" + :class.validation/cant-remove-private-tags "プライベートタグを削除できません: {1}。" + :class.validation/cant-remove-tag-built-in "組み込み #{1} を含むタグは削除できません。" + :class.validation/cant-remove-tag-on-built-in "組み込み「{1}」のタグを削除できません。" + :class.validation/cant-set-tag-built-in "組み込み #{1} ではタグを設定できません。" + :class.validation/duplicate "タグ「{1}」は既に存在します。" + :class.validation/extends-cycle "継承関係に循環が発生しています。" + :class.validation/invalid-extends-type "無効な継承タイプです。" + :class.validation/parents-must-be-tags "タグの親はタグでなければなりません。" + :class.validation/tag-with-non-tag "タグ「{1}」以外の組み込みページにはタグを設定できません。" + + :cmdk.action/apply-theme "テーマを適用" + :cmdk.action/copy-ref "参照をコピー" + :cmdk.action/create "作成" + :cmdk.action/filter "フィルター" + :cmdk.action/open "開く" + :cmdk.action/open-in-sidebar "サイドバーで開く" + :cmdk.action/search "検索" + :cmdk.action/trigger "実行" + + :cmdk.create/configure-tag "タグを設定" + :cmdk.create/page "ページを作成" + :cmdk.create/tag "タグを作成" + + :cmdk.error/no-block-link "このブロックの内容にリンクが見つかりません。" + :cmdk.error/no-page-link "このページのプロパティにリンクが見つかりません。" + :cmdk.error/no-search-item-link "この検索項目にリンクがありません。" + + :cmdk.filter/add "フィルターを追加" + :cmdk.filter/codes "コードのみ検索" + :cmdk.filter/commands "コマンドのみ検索" + :cmdk.filter/current-page "現在のページのみ" + :cmdk.filter/files "ファイルのみ" + :cmdk.filter/nodes "ノードのみ" + :cmdk.filter/only-label "検索のみ:" + :cmdk.filter/themes "テーマのみ検索" + + :cmdk.group/codes "コード" + :cmdk.group/commands "コマンド" + :cmdk.group/create "作成" + :cmdk.group/current-page "現在のページ" + :cmdk.group/files "ファイル" + :cmdk.group/filters "フィルター" + :cmdk.group/nodes "ノード" + :cmdk.group/recently-updated "最近更新" + :cmdk.group/themes "テーマ" + + :cmdk.info/configure-tag "#{1} を設定" + :cmdk.info/create-page "ページ「{1}」を作成" + :cmdk.info/create-tag "タグ「{1}」を作成" + + :cmdk.input/add-graph-filter-placeholder "グラフフィルターを追加" + :cmdk.input/default-placeholder "何をお探しですか?" + :cmdk.input/move-blocks-placeholder "ブロックの移動先" + :cmdk.input/type-page-name-placeholder "作成するページ名を入力" + + :cmdk.tip/clear-filter "{1} を押して検索フィルターをクリア" + :cmdk.tip/filter-results "{1} を押して検索結果をフィルター" + :cmdk.tip/label "ヒント:" + :cmdk.tip/open-sidebar "{1} を押してサイドバーで検索を開く" + + :collaboration/email-address "メールアドレス" + :collaboration/invite "招待" + :collaboration/members "メンバー:" + :collaboration/remove-access "アクセスを削除" + :collaboration/remove-access-error "メンバーの削除に失敗しました" + + :color/blue "青" + :color/crimson "深紅" + :color/cyan "シアン" + :color/grass "草色" + :color/gray "グレー" + :color/green "緑" + :color/indigo "藍色" + :color/orange "オレンジ" + :color/pink "ピンク" + :color/plum "梅色" + :color/purple "紫" + :color/red "赤" + :color/teal "青緑" + :color/tomato "トマト" + :color/violet "紫" + :color/yellow "黄" + + :command.auto-complete/complete "自動補完:現在の項目を選択" + :command.auto-complete/meta-complete "メタ補完" + :command.auto-complete/next "自動補完:次の項目を選択" + :command.auto-complete/prev "自動補完:前の項目を選択" + :command.auto-complete/shift-complete "自動補完:選択した項目をサイドバーで開く" + + :command.command-palette/toggle "検索コマンド" + + :command.editor/add-property "プロパティを追加" + :command.editor/add-property-deadline "期限プロパティを追加" + :command.editor/add-property-icon "アイコンプロパティを追加" + :command.editor/add-property-priority "優先度プロパティを追加" + :command.editor/add-property-status "ステータスプロパティを追加" + :command.editor/add-reaction "リアクションを追加" + :command.editor/backspace "前の文字を削除" + :command.editor/backward-kill-word "前方の単語を削除" + :command.editor/backward-word "前の単語に移動" + :command.editor/beginning-of-block "ブロックの先頭に移動" + :command.editor/bold "太字" + :command.editor/clear-block "ブロックの内容をクリア" + :command.editor/collapse-block-children "子ブロックを折り畳む" + :command.editor/copy "コピー" + :command.editor/copy-embed "埋め込みブロックをコピー" + :command.editor/copy-page-url "ページURLをコピー" + :command.editor/copy-text "選択したテキストをコピー" + :command.editor/cut "切り取り" + :command.editor/cycle-todo "TODOステータスを切替" + :command.editor/delete "右削除" + :command.editor/delete-selection "選択したブロックを削除" + :command.editor/down "カーソルを下へ" + :command.editor/end-of-block "ブロックの末尾に移動" + :command.editor/escape-editing "編集を終了" + :command.editor/expand-block-children "子ブロックを展開する" + :command.editor/follow-link "リンクを開く" + :command.editor/forward-kill-word "後方の単語を削除" + :command.editor/forward-word "次の単語に移動" + :command.editor/highlight "ハイライト" + :command.editor/indent "インデント" + :command.editor/insert-link "リンク挿入" + :command.editor/insert-youtube-timestamp "YouTubeのタイプスタンプを挿入" + :command.editor/italics "斜体" + :command.editor/jump "ブロックにジャンプ" + :command.editor/kill-line-after "カーソルより後ろの行を削除" + :command.editor/kill-line-before "カーソルより前の行を削除" + :command.editor/left "カーソルを左へ" + :command.editor/move-block-down "ブロックを下へ移動" + :command.editor/move-block-up "ブロックを上へ移動" + :command.editor/move-blocks "ブロックを移動" + :command.editor/new-block "新しいブロック" + :command.editor/new-line "新しい行" + :command.editor/open-edit "選択したブロックを編集" + :command.editor/open-link-in-sidebar "サイドバーでリンクを開く" + :command.editor/open-selected-blocks-in-sidebar "選択したブロックをサイドバーで開く" + :command.editor/outdent "アウトデント" + :command.editor/paste-text-in-one-block-at-point "カーソル位置へ文字列として貼り付け" + :command.editor/quick-add "クイック追加" + :command.editor/redo "やり直し" + :command.editor/right "カーソルを右へ" + :command.editor/select-all-blocks "全てのブロックを選択" + :command.editor/select-block-down "下のブロックを選択" + :command.editor/select-block-up "上のブロックを選択" + :command.editor/select-down "下の内容を選択" + :command.editor/select-parent "親ブロックを選択" + :command.editor/select-up "上の内容を選択" + :command.editor/set-tags "タグを設定" + :command.editor/strike-through "取り消し線" + :command.editor/toggle-block-children "展開する/折り畳む" + :command.editor/toggle-display-hidden-properties "非表示プロパティの表示切替" + :command.editor/toggle-number-list "数字付きリスト/通常のリストへ切り替え" + :command.editor/toggle-open-blocks "ブロック展開の切り替え(全てのブロックを折り畳む/展開する)" + :command.editor/undo "元に戻す" + :command.editor/up "カーソルを上へ" + :command.editor/zoom-in "ズームイン" + :command.editor/zoom-out "ズームアウト" + + :command.go/all-graphs "全グラフへ移動" + :command.go/all-pages "全ページへ移動" + :command.go/backward "戻る" + :command.go/electron-find-in-page "ページ内テキスト検索" + :command.go/electron-jump-to-the-next "次のマッチに移動" + :command.go/electron-jump-to-the-previous "前のマッチに移動" + :command.go/flashcards "フラッシュカードへ切り替え" + :command.go/forward "前へ" + :command.go/graph-view "グラフビューへ移動" + :command.go/home "ホームへ移動" + :command.go/journals "日誌" + :command.go/keyboard-shortcuts "キーボードショートカットへ移動" + :command.go/next-journal "次の日誌へ移動" + :command.go/prev-journal "前の日誌へ移動" + :command.go/search "検索" + :command.go/search-in-page "ページ内のブロックを検索" + :command.go/search-themes "テーマを検索" + :command.go/tomorrow "明日" + + :command.graph/add "グラフを追加" + :command.graph/db-add "データベース:グラフを追加" + :command.graph/db-save "データベース:グラフを保存" + :command.graph/export-as-html "公開グラフをHTMLとしてエクスポート" + :command.graph/open "グラフを開く" + :command.graph/remove "グラフを削除" + + :command.misc/copy "コピー" + :command.misc/export-block-data "ブロックデータをエクスポート" + :command.misc/export-graph-ontology-data "グラフオントロジーデータをエクスポート" + :command.misc/export-page-data "ページデータをエクスポート" + :command.misc/import-edn-data "EDNデータをインポート" + + :command.page/toggle-favorite "お気に入りの切替" + + :command.pdf/close "PDF:現在のPDF文書を閉じる" + :command.pdf/find "PDF: 現在のPDFでテキスト検索" + :command.pdf/next-page "PDF:現在のPDF文書で次のページへ" + :command.pdf/previous-page "PDF:現在のPDF文書で前のページへ" + + :command.publish/open-dialog "公開ダイアログを開く" + + :command.search/re-index "検索インデックスを再構築" + + :command.shell/run "Gitコマンドを実行" + + :command.sidebar/clear "右サイドバーの内容を全てクリア" + :command.sidebar/close-top "右サイドバーの一番上の項目を閉じる" + :command.sidebar/open-today-page "サイドバーで今日のページを開く" + + :command.ui/clear-all-notifications "すべての通知をクリア" + :command.ui/customize-appearance "外観をカスタマイズ" + :command.ui/goto-plugins "プラグインへ" + :command.ui/highlight-recent-blocks "最近のブロックをハイライト" + :command.ui/install-plugin-from-github "GitHubからプラグインをインストール" + :command.ui/install-plugins-from-file "プラグインをplugins.ednからインストール" + :command.ui/select-theme-color "テーマカラーを選択" + :command.ui/toggle-brackets "括弧の表示を切替" + :command.ui/toggle-contents "目次の表示/非表示" + :command.ui/toggle-document-mode "ドキュメントモードの切り替え" + :command.ui/toggle-help "ヘルプの表示/非表示" + :command.ui/toggle-left-sidebar "左サイドバーを開閉" + :command.ui/toggle-right-sidebar "右サイドバーを開閉" + :command.ui/toggle-settings "設定を開く" + :command.ui/toggle-theme "テーマの切り替え" + :command.ui/toggle-wide-mode "ワイドモードの切り替え" + + :command.window/close "ウィンドウを閉じる" + + :context-menu/developer-tools "開発者ツール" + :context-menu/make-a-flashcard "フラッシュカードを作る" + :context-menu/set-icon "アイコンを設定" + :context-menu/toggle-number-list "番号付きリストの切替" + + :date/invalid-date-warning "{1} は有効な日付ではありません。もう一度試してください" + + :date.nlp/last-friday "先週の金曜日" + :date.nlp/last-monday "先週の月曜日" + :date.nlp/last-month "先月" + :date.nlp/last-saturday "先週の土曜日" + :date.nlp/last-sunday "先週の日曜日" + :date.nlp/last-thursday "先週の木曜日" + :date.nlp/last-tuesday "先週の火曜日" + :date.nlp/last-wednesday "先週の水曜日" + :date.nlp/last-week "先週" + :date.nlp/last-year "昨年" + :date.nlp/next-friday "来週の金曜日" + :date.nlp/next-monday "来週の月曜日" + :date.nlp/next-month "来月" + :date.nlp/next-saturday "来週の土曜日" + :date.nlp/next-sunday "来週の日曜日" + :date.nlp/next-thursday "来週の木曜日" + :date.nlp/next-tuesday "来週の火曜日" + :date.nlp/next-wednesday "来週の水曜日" + :date.nlp/next-week "来週" + :date.nlp/next-year "来年" + :date.nlp/this-friday "今週の金曜日" + :date.nlp/this-monday "今週の月曜日" + :date.nlp/this-month "今月" + :date.nlp/this-saturday "今週の土曜日" + :date.nlp/this-sunday "今週の日曜日" + :date.nlp/this-thursday "今週の木曜日" + :date.nlp/this-tuesday "今週の火曜日" + :date.nlp/this-wednesday "今週の水曜日" + :date.nlp/this-week "今週" + :date.nlp/this-year "今年" + :date.nlp/today "今日" + :date.nlp/tomorrow "明日" + :date.nlp/yesterday "昨日" + + :deeplink/open-block-error "リンクを開けませんでした。ブロックID `{1}` は現在のグラフに存在しません。" + :deeplink/open-graph-error "グラフを開けませんでした。グラフ `{1}` は存在しません。" + :deeplink/open-page-error "リンクを開けませんでした。ページ `{1}` は現在のグラフに存在しません。" + + :editor/add-content-first-warning "先にコンテンツを追加してください。" + :editor/auto-heading "自動見出し" + :editor/block-search "ブロックを検索" + :editor/click-to-edit "クリックで編集" + :editor/code-language-placeholder "言語を選択" + :editor/collapse-block-children "折りたたむ" + :editor/cut "カット" + :editor/cycle-todo "TODOステータスを切替" + :editor/delete-selection "選択を削除" + :editor/display-tag-inline-hint "このタグをこのノードの末尾ではなくインラインで表示します。" + :editor/expand-block-children "展開する" + :editor/heading "見出し {1}" + :editor/moving-blocks-count "{1} 個のブロックを移動中" + :editor/new-page "新しいページ" + :editor/new-tag "新しいタグ" + :editor/no-block-selected-warning "ブロックが選択されていません" + :editor/paste "貼り付け" + :editor/reference-node-use-page-ref "ノードを参照するには `[[]]` を使用してください。" + :editor/remove-heading "見出しを削除" + :editor/search-for-node "ノードを検索" + :editor/search-for-tag "タグを検索" + :editor/search-template-placeholder "テンプレートを検索" + :editor/template-insert-error "テンプレート挿入エラー: {1}" + + :editor.document-mode/new-block-hint "{1}で新しいブロックを作成" + :editor.document-mode/title "ドキュメントモード" + :editor.document-mode/toggle-desc "`D`をクリックするか{1}を入力してドキュメントモードを切り替え" + + :editor.quick-add/add-to-today "今日のページに追加" + :editor.quick-add/title "クイック追加" + + :editor.slash/advanced-query "詳細クエリ" + :editor.slash/advanced-query-desc "詳細クエリブロックを作成" + :editor.slash/calculator "電卓" + :editor.slash/calculator-desc "電卓を挿入" + :editor.slash/cloze "穴埋め" + :editor.slash/code-block "コードブロック" + :editor.slash/code-block-desc "コードブロックを挿入" + :editor.slash/current-time "現在時刻" + :editor.slash/current-time-desc "現在時刻を挿入" + :editor.slash/date-picker "日付ピッカー" + :editor.slash/date-picker-desc "日付を選択してここに挿入" + :editor.slash/embed-html "HTMLを埋め込む" + :editor.slash/embed-twitter-tweet "Twitterツイートを埋め込む" + :editor.slash/embed-video-url "ビデオURLを埋め込む" + :editor.slash/embed-youtube-timestamp "YouTubeタイムスタンプを埋め込む" + :editor.slash/group-advanced "詳細" + :editor.slash/group-basic "基本" + :editor.slash/group-format "書式" + :editor.slash/group-heading "見出し" + :editor.slash/group-list-type "リストタイプ" + :editor.slash/group-plugins "プラグイン" + :editor.slash/group-priority "優先度" + :editor.slash/group-task-date "タスク日付" + :editor.slash/group-task-status "タスクステータス" + :editor.slash/group-time-and-date "時間と日付" + :editor.slash/heading-label "見出し {1}" + :editor.slash/image-link "画像リンク" + :editor.slash/image-link-desc "画像への HTTP リンクを作成" + :editor.slash/link-desc "HTTP リンクを作成" + :editor.slash/math-block "数式ブロック" + :editor.slash/math-block-desc "LaTeX ブロックを作成" + :editor.slash/no-priority "優先度なし" + :editor.slash/node-embed "ノード埋め込み" + :editor.slash/node-embed-desc "ここにノードを埋め込む" + :editor.slash/node-reference "ノード参照" + :editor.slash/node-reference-desc "ノード(ページまたはブロック)へのバックリンクを作成" + :editor.slash/normal-text "通常のテキスト" + :editor.slash/normal-text-desc "見出しをクリアして通常のテキストに設定" + :editor.slash/number-children "子にナンバリング" + :editor.slash/number-list "番号リスト" + :editor.slash/priority-desc "優先度を {1} に設定" + :editor.slash/priority-label "優先度 {1}" + :editor.slash/query-function "クエリ関数" + :editor.slash/query-function-desc "クエリ関数を作成" + :editor.slash/quote-desc "引用ブロックを作成" + :editor.slash/status-desc "ステータスを {1} に設定" + :editor.slash/template-desc "作成されたテンプレートをここに挿入" + :editor.slash/today-desc "今日の日付を挿入" + :editor.slash/tomorrow-desc "明日の日付を挿入" + :editor.slash/underline "下線" + :editor.slash/underline-desc "下線テキスト装飾を作成" + :editor.slash/upload-asset "アセットをアップロード" + :editor.slash/upload-asset-desc "画像、PDF、DOCX などのファイル形式をアップロード" + :editor.slash/yesterday-desc "昨日の日付を挿入" + + :electron/about "Logseqについて" + :electron/add-to-dictionary "辞書に追加" + :electron/block-not-exist "リンクを開けませんでした。ブロックID `{1}` はグラフ内に存在しません。" + :electron/cancel "キャンセル" + :electron/copy-image "画像をコピー" + :electron/link-open-confirm "このリンクを開いてもよろしいですか?\n{1}" + :electron/link-open-failed-missing-graph "リンクを開けませんでした。グラフがありません。" + :electron/link-open-failed-no-graph "リンクを開けませんでした。グラフ識別子 `{1}` に一致するリンク済みグラフがありません。" + :electron/link-open-failed-no-target "リンクを開けませんでした。`{1}` に一致する対象がありません。" + :electron/look-up "選択内容を調べる" + :electron/main-exception "[メインプロセス例外]\n{1}\n{2}" + :electron/new-window "新しいウィンドウ" + :electron/official-docs "公式ドキュメント" + :electron/ok "OK" + :electron/open-dir-error "ディレクトリを開けませんでした:{1}" + :electron/save-image "画像を保存" + :electron/save-image-as "画像を別名で保存" + :electron/search-with-google "Googleで検索" + :electron/unimplemented-callback "未実装の x-callback-url アクションです: `{1}`。" + :electron/version "バージョン {1}" + :electron/write-file-error "ファイル {1} への書き込みに失敗しました。{2}。" + :electron/write-file-error-with-backup "ファイル {1} への書き込みに失敗しました。{2}。バックアップファイルを {3} に保存しました。" + + :encryption/cloud-password-rich (fn [] ["パスワードを失うと、クラウド上のデータは復号できなくなります。 " [:span "それでもグラフのローカル版には引き続きアクセスできます。"]]) + :encryption/current-password "現在のパスワード" + :encryption/enter-password "パスワードを入力" + :encryption/enter-password-again "パスワードを再入力" + :encryption/enter-password-title "パスワードを入力" + :encryption/failed-to-force-reset-password "パスワードの強制リセットに失敗しました" + :encryption/failed-to-update-password "パスワードの更新に失敗しました" + :encryption/fetch-key-pair-error "ユーザー rsa キー ペアを取得中にエラー: {1}" + :encryption/fetching-key-pair "キーペアを取得中" + :encryption/force-reset-password "パスワードを強制リセット" + :encryption/force-reset-password-successfully "パスワードを強制リセットしました" + :encryption/force-resetting-password "パスワードを強制リセット中" + :encryption/forgot-password-question "パスワードをお忘れですか?" + :encryption/forgot-password-warning "パスワードを忘れた場合、暗号化されたデータは復元できません。" + :encryption/init-key-pair "キーペアを初期化" + :encryption/init-key-pair-error "キーペアの初期化エラー: {1}" + :encryption/password-not-matched "パスワードが一致しません" + :encryption/password-updated-successfully "パスワードを更新しました" + :encryption/remember-password-rich (fn [] [[:span "設定したパスワードは必ず "] "覚えておいてください。忘れてもこちらでリセットや復旧はできません。 " [:span "また、"] "安全な場所にバックアップを保管しておくことをおすすめします。"]) + :encryption/reset-password "パスワードをリセット" + :encryption/set-new-password "新しいパスワードを設定" + :encryption/set-password-title "パスワードを設定" + :encryption/updating-password "パスワードを更新中" + :encryption/wrong-password "パスワードが正しくありません" + + :export/backup-successful "バックアップに成功しました!" + :export/block-data-copied "ブロックデータをクリップボードにコピーしました" + :export/collecting-assets "アセットを収集中" + :export/copied-to-clipboard "クリップボードにコピーしました!" + :export/copy-or-export-as "コピー/エクスポート形式" + :export/creating-zip "zipを作成中" + :export/db-backup-error "データベースのバックアップに失敗しました。エクスポートからバックアップフォルダを指定してください。" + :export/db-edn "EDNファイルをエクスポート" + :export/debug-transit-desc "デバッグ用に.transitファイルにエクスポートします。エクスポートされたファイルからセンシティブなデータは除去されます。" + :export/debug-transit-file "デバッグ用transitファイルをエクスポート" + :export/edn-desc "読み取り・編集可能な.ednファイルにエクスポートします。プライマリバックアップとしては使用しないでください。" + :export/error-unexpected "エクスポート中に予期しないエラーが発生しました。詳細はJavaScriptコンソールを参照してください。" + :export/exporting "エクスポート中" + :export/finalizing "完了処理中" + :export/format-text "テキスト" + :export/graph "グラフをエクスポート" + :export/graph-ontology-data-copied "グラフオントロジーデータをクリップボードにコピーしました" + :export/indent-style-dashes "ダッシュ" + :export/indent-style-label "インデントスタイル:" + :export/indent-style-none "インデントなし" + :export/indent-style-spaces "スペース" + :export/level-lte "レベル <=" + :export/markdown "標準Markdownとしてエクスポート(ブロックプロパティなし)" + :export/newline-after-block "ブロック後に改行" + :export/no-updates-since-last-export "前回のエクスポート以降、グラフに更新はありません。" + :export/open-blocks-only "開いているブロックのみ (折りたたまれた子をスキップ)" + :export/page "ページをエクスポート" + :export/page-data-copied "ページデータをクリップボードにコピーしました" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "zipを準備中" + :export/preview-alt "エクスポートプレビュー" + :export/public-pages "公開ページをエクスポート" + :export/remove-emphasis "強調を削除" + :export/remove-properties "プロパティを削除" + :export/remove-tags "#タグを削除" + :export/save-to-file "ファイルに保存" + :export/sqlite-db "SQLiteデータベースをエクスポート" + :export/title "エクスポート" + :export/transparent-background "透過背景" + :export/view-nodes-data-copied "ビューノードデータをクリップボードにコピーしました" + :export/zip "SQLiteデータベースとアセットをエクスポート" + :export/zip-error "ZIPエクスポートに失敗しました。" + + :export.backup/backup-now "今すぐバックアップ" + :export.backup/cancel "バックアップをキャンセル" + :export.backup/enabled-desc "このグラフの1時間ごとのバックアップが有効です。{1}。" + :export.backup/folder "バックアップフォルダ:" + :export.backup/hourly-note "バックアップは毎時間作成されます。" + :export.backup/open-folder "このグラフのバックアップフォルダを開く" + :export.backup/schedule "バックアップをスケジュール" + :export.backup/set-folder-first "先にバックアップフォルダを設定してください" + :export.backup/sqlite-desc "グラフのコンテンツを1つの.sqliteファイルにバックアップするプライマリな方法です。" + :export.backup/unsupported-desc "お使いのブラウザは{{The File System Access API}}をサポートしていません。Chromiumベースのブラウザに切り替えてください。" + :export.backup/zip-desc "グラフのコンテンツとアセットを.zipファイルにバックアップするプライマリな方法です。" + + :file/config-duplicate-keys "ファイル '{1}' には重複したキーがあります。キー「{2}」が複数回割り当てられています。" + :file/config-invalid "設定ファイルが無効です" + :file/format-not-supported "現在のところ、{1}形式はサポートされていません。" + :file/label "ファイル" + :file/last-modified-at "最終更新日時 " + :file/name "ファイル名" + :file/no-data "ファイルにデータがありません" + :file/title "ファイル {1}" + + :file.config/deprecation-title "ファイル{1}に以下の非推奨事項があります:" + :file.config/error-title "ファイル{1}に以下のエラーがあります:" + :file.config/invalid-desc "設定が{}で囲まれていることを確認してください。" + :file.config/invalid-title "ファイル{1}は無効です。" + :file.config/read-failed-desc "設定が{}で囲まれていることを確認してください。また、文字'( { ['に対応する閉じ文字') } ]'があることを確認してください。" + :file.config/read-failed-title "ファイル{1}の読み込みに失敗しました" + + :flashcard/add-query "新しいクエリを追加" + :flashcard/all-cards "すべてのカード" + :flashcard/select-cards "カードを選択" + :flashcard/shortcut-tooltip "ショートカット:{1}" + + :flashcard.empty/desc "「{1}」を任意のブロックに追加してカードに変えたり、「/cloze」をトリガーしていくつかのクローズを追加したりできます。" + :flashcard.empty/title "フラッシュカードを作成する時間です!" + + :flashcard.rating/again "もう一度" + :flashcard.rating/again-desc "答えを間違えました。これはそのカードを忘れていたことを意味します。記憶の抜けです。" + :flashcard.rating/easy "簡単" + :flashcard.rating/easy-desc "答えは正しく、ほとんど努力せずに素早く自信を持って思い出せました。" + :flashcard.rating/good "良い" + :flashcard.rating/good-desc "答えは正しかったものの、思い出すのに少し頭を使いました。" + :flashcard.rating/hard "難しい" + :flashcard.rating/hard-desc "答えは正しかったものの、自信がなかった、または思い出すのに時間がかかりすぎました。" + + :flashcard.review/finished "おめでとうございます、今回のテストの全カードを見直しました。また会いましょう!💯" + :flashcard.review/hide-answers "答えを隠す" + :flashcard.review/show-answers "答えを表示" + :flashcard.review/show-clozes "穴埋めを表示" + + :format/bold "太字" + :format/code "コード" + :format/highlight "ハイライト" + :format/italics "斜体" + :format/strikethrough "取り消し線" + + :graph/all-graphs "すべてのグラフ" + :graph/already-exists-error "グラフ'{1}'はすでに存在します。別の名前で再度お試しください。" + :graph/as-png "PNGとして" + :graph/built-in-pages "組み込みページ" + :graph/charge-range "チャージ範囲" + :graph/charge-strength "チャージ強度" + :graph/click-to-search "クリックして検索" + :graph/create-db "DBグラフを作成" + :graph/create-error "グラフの作成に失敗しました" + :graph/create-new "新しいグラフを作成" + :graph/created-before "以前に作成" + :graph/creating "グラフを作成中" + :graph/delete-local-action "ローカルグラフを削除" + :graph/delete-local-confirm-desc "Logseqからグラフ\"{1}\"を永久に削除してもよろしいですか?" + :graph/delete-server-action "サーバーから削除" + :graph/delete-server-confirm-desc "サーバーからグラフ\"{1}\"を永久に削除してもよろしいですか?" + :graph/delete-warning "⚠️ 削除されたグラフは復旧できません。削除する前に必ずバックアップを作成してください。" + :graph/diff "Git diff" + :graph/downloading "ダウンロード中" + :graph/encrypt-data-label "グラフデータを暗号化" + :graph/excluded-pages "除外されたページ" + :graph/forces "力" + :graph/gc-success "グラフのGCが正常に完了しました!" + :graph/last-opened-at-label "最後に開いた日時: {1}" + :graph/leave-action "このグラフを離れる" + :graph/leave-confirm-desc "本当にこのグラフを離れてもよろしいですか?" + :graph/leave-error "グラフの退出に失敗しました" + :graph/left "グラフを退出しました" + :graph/link-count "{1} リンク" + :graph/link-distance "リンク距離" + :graph/local-graphs "ローカルグラフ" + :graph/n-hops-from-selected-nodes "選択ノードからのホップ数" + :graph/name-placeholder "グラフ名を入力" + :graph/nodes "ノード" + :graph/orphan-pages "孤立ページ" + :graph/page-count "{1} ページ" + :graph/pause-simulation "シミュレーションを一時停止" + :graph/preparing "準備中" + :graph/refresh-remote-graphs "リモートグラフを更新" + :graph/remote-graphs "リモートグラフ" + :graph/removed "グラフ「{1}」を削除しました" + :graph/removed-and-redirecting "グラフ「{1}」を削除しました。グラフ「{2}」にリダイレクトしています" + :graph/removed-from-sync "同期からグラフを削除しました" + :graph/reset "グラフをリセット" + :graph/reset-forces "力をリセット" + :graph/search "検索" + :graph/shared-graphs "共有グラフ" + :graph/updated-switching "グラフが更新されました。切り替え中..." + :graph/use-sync-beta "Logseq Sync を使う (ベータテスト)" + :graph/use-sync-label "Logseq Sync を使いますか?" + + :graph.diagnostics/checksum-failed-error "グラフのチェックサム診断の計算に失敗しました。" + :graph.diagnostics/checksum-recomputed-success "チェックサムを再計算しました。再計算結果: {1}、ローカル: {2}、リモート: {3}。{5} 個のブロックとチェックサム属性 {6} を含む {4}.edn をダウンロードしました。" + :graph.diagnostics/checksum-unavailable-warning "現在のグラフのチェックサム診断を計算できません。" + :graph.diagnostics/client-ops-export-failed-error "Client ops SQLite のエクスポートに失敗しました。" + :graph.diagnostics/client-ops-export-invalid-payload-warning "Client ops SQLite のエクスポートに失敗しました: 無効な payload タイプ {1}。" + :graph.diagnostics/client-ops-export-success "Client ops SQLite をエクスポートしました: {1}.sqlite" + :graph.diagnostics/no-graph-warning "グラフが見つかりません。" + + :graph.page/show-journals "日誌を表示" + :graph.page/title "ページグラフ" + + :graph.switch/add-graph-action "はい、新規グラフを追加します。" + :graph.switch/empty-desc "マッチするグラフがありません。新しいグラフを追加しますか?" + :graph.switch/prompt "切替" + :graph.switch/select-prompt "グラフを選んでください" + + :graph.validation/config-arweave-gateway-warning "はサポートされなくなりました。" + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "はサポートされなくなりました。代わりに'/'を使用し、バグを報告してください。" + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "DBグラフではMarkdownモードのみのため使用されません。" + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "検証により{1}個の無効なブロック(複数)が検出されました。これらのブロックは問題がある可能性があります。無効なブロックを修正しようとしています。検証を再度実行して修正されたかどうかを確認してください。" + :graph.validation/name-reserved-characters-warning "グラフ名には以下の予約文字を使用できません:" + :graph.validation/reserved-character-asterisk "アスタリスク" + :graph.validation/reserved-character-backslash "バックスラッシュ" + :graph.validation/reserved-character-colon "コロン" + :graph.validation/reserved-character-double-quote "二重引用符" + :graph.validation/reserved-character-forward-slash "スラッシュ" + :graph.validation/reserved-character-greater-than "大なり" + :graph.validation/reserved-character-hash "シャープ" + :graph.validation/reserved-character-less-than "小なり" + :graph.validation/reserved-character-pipe "縦棒またはパイプ" + :graph.validation/reserved-character-plus "プラス" + :graph.validation/reserved-character-question-mark "疑問符" + :graph.validation/valid "グラフは有効です!{1}" + + :header/go-back "戻る" + :header/go-forward "進む" + :header/highlight-recent-blocks "最近のブロックを強調表示" + :header/highlight-recent-blocks-days-ago "最近のブロックを強調表示: {1}日前" + :header/more "もっと見る" + :header/quit-highlight-recent-blocks "最近のブロックのハイライトを終了" + :header/toggle-left-sidebar "左サイドバーを開閉" + :help/about "Logseqについて" - :help/roadmap "ロードマップ" - :help/bug "バグ報告" - :help/feature "機能リクエスト" - :help/changelog "更新履歴" - :help/blog "Logseq ブログ" - :help/docs "ドキュメント" - :help/privacy "プライバシーポリシー" - :help/terms "利用規約" - :help/forum-community "フォーラムコミュニティ" + :help/about-title "Logseqについて" + :help/ask-community "コミュニティに質問" :help/awesome-logseq "素晴らしきLogseq" - :help/shortcuts "キーボードショートカット" - :help/shortcuts-triggers "トリガー" - :help/shortcut "ショートカット" + :help/block-reference "ブロック参照" + :help/blog "Logseq ブログ" + :help/bug "バグ報告" + :help/changelog "更新履歴" + :help/community-title "コミュニティ" + :help/context-menu "ブロックのコンテキストメニュー" + :help/context-menu-action "箇条書きの右クリック" + :help/development-title "開発" + :help/docs "ドキュメント" + :help/feature "機能リクエスト" + :help/forum-community "フォーラムコミュニティ" + :help/handbook "ハンドブック" + :help/learn-more "詳しく見る" + :help/markdown-syntax "マークダウン文法" + :help/open-link-in-sidebar "サイドバーでリンクを開く" + :help/open-link-in-sidebar-action "Shift+参照をクリック" + :help/privacy "プライバシーポリシー" + :help/reference-autocomplete "ページ参照の自動補完" + :help/release-notes "リリースノート" + :help/roadmap "ロードマップ" :help/search "ページ、ブロック、コマンドを検索" :help/slash-autocomplete "スラッシュで自動補完" - :help/reference-autocomplete "ページ参照の自動補完" - :help/block-reference "ブロック参照" - :help/open-link-in-sidebar "サイドバーでリンクを開く" - :search-item/page "ページ" - :search-item/no-result "一致する結果がありません" - :help/context-menu "ブロックのコンテキストメニュー" - :help/markdown-syntax "マークダウン文法" - :bold "太字" - :italics "斜体" - :highlight "ハイライト" - :strikethrough "取り消し線" - :code "コード" - :untitled "タイトルなし" - :right-side-bar/help "ヘルプ" - :right-side-bar/switch-theme "テーマ" - :right-side-bar/contents "目次" - :right-side-bar/page-graph "ページグラフ" - :right-side-bar/block-ref "ブロック参照" - :right-side-bar/graph-view "グラフビュー" - :right-side-bar/flashcards "フラッシュカード" - :right-side-bar/show-journals "日誌を表示" - :right-side-bar/separator "右サイドバーのサイズ変更" - :right-side-bar/toggle-right-sidebar "右サイドバーを開閉" - :right-side-bar/pane-close "閉じる" - :right-side-bar/pane-close-others "他を全て閉じる" - :right-side-bar/pane-close-all "全て閉じる" - :right-side-bar/pane-collapse "折り畳む" - :right-side-bar/pane-collapse-others "他を全て折り畳む" - :right-side-bar/pane-collapse-all "全て折り畳む" - :right-side-bar/pane-expand "展開する" - :right-side-bar/pane-expand-all "全て展開する" - :right-side-bar/pane-open-as-page "ページとして開く" - :right-side-bar/pane-more "もっと" - :left-side-bar/switch "グラフを切り替える:" - :left-side-bar/journals "日誌" - :left-side-bar/nav-favorites "お気に入り" - :left-side-bar/nav-recent-pages "最新" - :page/something-went-wrong "問題が発生しました。" - :page/logseq-is-having-a-problem "Logseqになにか問題があります。きちんと動く状態に戻すため、以下の項目を上から順番に実行してください:" - :page/step "ステップ{1}" - :page/try "試す" - :page/make-public "パブリッシュのため公開する" - :page/make-private "非公開にする" - :page/delete "ページを削除" - :page/add-to-favorites "お気に入りへ追加" - :page/unfavorite "お気に入りを解除" - :block/name "ページ名" - :page/copy-page-url "ページの URL をコピー" - :file/name "ファイル名" - :file/last-modified-at "最終更新日時 " - :file/no-data "データがありません" - :file/format-not-supported ".{1} 形式はサポートされていません。" - :page/created-at "作成日時 " - :page/updated-at "更新日時 " + :help/start "はじめに" + :help/submit-feedback "フィードバックを送信" + :help/support-forum "サポートフォーラム" + :help/terms "利用規約" + :help/terms-title "規約" + :help/usage-title "使い方" + + :help.handbook/chat-on-discord "Discordでチャット" + :help.handbook/chat-on-discord-desc "気軽に質問したり、他のユーザーと交流したり、新しいワークフローを学びましょう。" + :help.handbook/copy-topic-link "トピックリンクをコピー" + :help.handbook/current-chapter "現在の章" + :help.handbook/help-categories "ヘルプのカテゴリ" + :help.handbook/home "ホーム" + :help.handbook/link-copied "ハンドブックのリンクをコピーしました!" + :help.handbook/monthly-posts "月間投稿数" + :help.handbook/next-chapter "次の章" + :help.handbook/popular-topics "人気のある話題" + :help.handbook/prev-chapter "前の章" + :help.handbook/resources-from "{1}のリソース" + :help.handbook/search-placeholder "検索" + :help.handbook/shortcuts-count "{1}個のショートカット" + :help.handbook/sync "同期" + :help.handbook/title "ヘルプ" + :help.handbook/topics "話題" + :help.handbook/users-online "オンラインユーザー" + :help.handbook/visit-the-forum "フォーラムにアクセス" + :help.handbook/visit-the-forum-desc "フィードバックの提供、機能のリクエスト、詳細なディスカッションができます。" + :help.handbook/writing-mode "ライティングモード(プレビュー中)" + + :help.shortcuts/desc "ショートカットとヒントを見る" + :help.shortcuts/label "キーボードショートカット" + :help.shortcuts/shortcut-column "ショートカット" + :help.shortcuts/title "キーボードショートカット" + :help.shortcuts/triggers "トリガー" + + :icon/emojis-count "絵文字 ({1})" + :icon/icons-count "アイコン ({1})" + :icon/matched-count "一致 ({1})" + :icon/search-all "すべてを検索" + :icon/search-emojis "絵文字を検索" + :icon/search-icons "アイコンを検索" + :icon/tab-all "すべて" + :icon/tab-emojis "絵文字" + :icon/tab-icons "アイコン" + + :import/all-tags "すべてのタグをインポート" + :import/asset-too-large-warning "アセット {1} のコピーは、100 MB の上限を超えているためスキップされました。" + :import/assets-import-partial "{1}/{2}個のアセットをインポートしました。詳細はコンソールを確認してください。" + :import/assets-imported "{1}個のアセットをインポートしました。" + :import/assets-skipped "{1}個のアセットをスキップしました。詳細はコンソールを確認してください。" + :import/block-icons-cannot-be-imported "ブロックアイコンはインポートできません。ブロック{1}で手動でインポートしてください。" + :import/cannot-import-block-into-non-block-entity "ブロック以外のエンティティにブロックをインポートできません。他の場所にインポートしてください。" + :import/db-edn-desc "DBグラフのEDNエクスポートを新しいDBグラフにインポート" + :import/db-edn-title "EDNからDBグラフ" + :import/debug-transit-desc "デバッグ用transitファイルを新しいDBグラフにインポート" + :import/debug-transit-title "デバッグTransit" + :import/default-db-graph-behavior "データベースグラフのデフォルト動作" + :import/empty-graph-name "グラフ名を空にすることはできません。" + :import/extract-inline-code-snippets "インラインコードスニペットを子ブロックとして抽出" + :import/file-finished "インポート完了!" + :import/file-to-db-desc "ファイルベースのLogseqグラフフォルダを新しいDBグラフにインポート" + :import/file-to-db-title "ファイルからDBグラフ" + :import/graph-name-conflict "同じ名前のグラフが既に存在します。別の名前を指定してください!" + :import/graph-name-placeholder "グラフ名" + :import/ignored-assets "インポート中に{1}個のアセットがスキップされました。詳細はJavaScriptコンソールを確認してください。" + :import/ignored-files "インポート中に{1}個のファイルがスキップされました。詳細はJavaScriptコンソールを確認してください。" + :import/ignored-properties "インポート中に{1}個のプロパティがスキップされました" + :import/ignored-properties-fix "プロパティの型を修正するには、プロパティ値を正しい型に変更してグラフを再インポートしてください" + :import/invalid-blocks-detected "インポート中に{1}個の無効なブロックが検出されました。操作時に問題が生じる可能性があります。詳細はJavaScriptコンソールを確認してください。" + :import/invalid-edn-file "指定されたEDNファイルは無効です。修正してから再試行してください。" + :import/loading "インポート中" + :import/logseq-config-missing "インポートに失敗しました:Logseqグラフに「logseq/config.edn」ファイルが見つかりません。" + :import/new-graph-name "新しいグラフ名" + :import/notes "既存のノートをインポート" + :import/org-files-imported "{1}個のorgファイルをMarkdownとしてインポートしました。orgファイルのサポートは今後追加予定です。" + :import/page-icons-cannot-be-imported "ページアイコンはインポートできません。ページ{1}で手動でインポートしてください。" + :import/properties-case-insensitive-commas "プロパティ名は大文字小文字を区別しません。カンマ区切り" + :import/property-classes-placeholder "例: type" + :import/property-import-manually "このプロパティは手動でインポートする必要があります" + :import/property-parent-classes-placeholder "例: parent" + :import/property-type-mismatch "プロパティ値の型は{1}ですが、{2}ではありません" + :import/property-value-tag-parents "プロパティ値からタグの親をインポート" + :import/property-value-tags "プロパティ値から追加タグをインポート" + :import/remove-inline-tags "インラインタグを削除" + :import/select-edn-or-json "EDNまたはJSONファイルを選択してください。" + :import/specific-tags "特定のタグをインポート" + :import/sqlite-and-assets-desc "db.sqliteとassetsフォルダを含むzipをインポート" + :import/sqlite-and-assets-title "SQLite + アセット(.zip)" + :import/submitted-edn-invalid "送信されたEDNデータが無効です!修正してから再試行してください。" + :import/successful "インポートに成功しました!" + :import/tag-classes-placeholder "タグ1, タグ2" + :import/tags-case-insensitive "タグは大文字小文字を区別しません" + :import/title "インポート" + :import/unexpected-error "予期しないエラー:{1}" + :import/zip-import-error "ZIP インポートに失敗しました: {1}" + :import/zip-missing-db-sqlite "ZIPにdb.sqliteが含まれていません" + + :journal/add-blocks-to-today-success "今日追加されたブロック" + :journal/page-cant-convert-warning "このページはジャーナルページではありません。" + :journal/parse-date-to-name-error "ジャーナル名へのパースに失敗しました" + + :journal.default-query/doing "進行中" + :journal.default-query/todo "TODO" + + :keymap/all "すべて" + :keymap/already-bound "ショートカットは既に使用中" + :keymap/also-used-for-action "以下にも使用:{1}" + :keymap/also-used-for-action-in-context "以下にも使用:{1}、コンテキスト内:{2}" + :keymap/clear "クリア" + :keymap/clear-keystroke-filter "キーストロークフィルタをクリア" + :keymap/clear-search "検索をクリア" + :keymap/custom "カスタム" + :keymap/deactivates-chord "キーコンビネーションを無効化" + :keymap/deactivates-chords "{1} 個の同時押しショートカットを無効にします" + :keymap/disabled "無効" + :keymap/esc-is-reserved "Escは予約済みキーです" + :keymap/hint-cancel "キャンセル" + :keymap/hint-close "閉じる" + :keymap/hint-reassign "再割り当て" + :keymap/hint-remove "削除" + :keymap/keystroke-filter "キーストロークフィルター" + :keymap/no-matching-shortcuts "一致するショートカットがありません" + :keymap/press-a-shortcut "ショートカットキーを押してください" + :keymap/press-keys-to-filter "キーを押してフィルター" + :keymap/reassign "再割り当て" + :keymap/reassign-tooltip "このコマンドにショートカットを再割り当て" + :keymap/reassigned-from "{1}から再割り当て済み" + :keymap/refresh-all "すべて更新" + :keymap/remove-binding "バインドを削除" + :keymap/remove-filter "フィルタを削除" + :keymap/reset "リセット" + :keymap/reset-to-default "デフォルトに戻す" + :keymap/search-by-keys "キーで検索" + :keymap/search-placeholder "ショートカットを検索…" + :keymap/shortcut-added "ショートカットを追加しました" + :keymap/shortcut-removed "ショートカットを削除しました" + :keymap/toggle-categories-pane "カテゴリペインの切り替え" + :keymap/undo "元に戻す" + :keymap/unset "未設定" + :keymap/used-by-action "以下のコマンドが使用中:{1}" + + :library/add-existing-pages "既存のページをライブラリに追加" + :library/add-pages "ページを追加" + :library/title "ライブラリ" + + :mobile/camera-access-denied "カメラアクセスが拒否されました。設定 > Logseqで有効にしてください。" + :mobile/microphone-access-denied "マイクアクセスが拒否されました。設定 > Logseqで有効にしてください。" + + :mobile.header/actions "アクション" + :mobile.header/create-graph "グラフを作成" + :mobile.header/delete-block-confirm-desc "このブロックを削除してもよろしいですか?" + :mobile.header/delete-page-confirm-desc "このページを削除してもよろしいですか?" + + :mobile.intent/file-options "ファイルオプション" + :mobile.intent/open-with-app "お好みのアプリでファイルを開く" + :mobile.intent/select-option-prompt "実行するオプションを選択" + :mobile.intent/share "共有" + + :mobile.log/all "すべて" + :mobile.log/errors-only "エラーのみ" + :mobile.log/full "完全" + :mobile.log/new-first "新しい順" + :mobile.log/old-first "古い順" + :mobile.log/ui "UI" + :mobile.log/worker "ワーカー" + + :mobile.settings/account "アカウント" + :mobile.settings/check-log "ログを確認" + :mobile.settings/discord-community "Discordコミュニティ" + :mobile.settings/forum "フォーラム" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "バグを報告" + :mobile.settings/revision "リビジョン" + :mobile.settings/theme "テーマ" + :mobile.settings/version "バージョン" + + :mobile.share/file-import-error "共有ファイルのインポートに失敗しました" + :mobile.share/media-import-error "共有メディアのインポートに失敗しました" + :mobile.share/unsupported-content-warning "現在の共有コンテンツの解析はサポートされていません。以下のコードを{1}に報告してください。早急に対応いたします。" + :mobile.share/unsupported-import-type "{1}ファイルのインポートはサポートされていません。{2}に報告してください。早急に対応いたします。" + + :mobile.tab/capture "キャプチャ" + :mobile.tab/go-to "移動" + :mobile.tab/graphs "グラフ" + + :mobile.toolbar/audio "音声" + :mobile.toolbar/copy-ref "参照をコピー" + :mobile.toolbar/copy-url "URLをコピー" + :mobile.toolbar/hide "非表示" + :mobile.toolbar/indent "インデント" + :mobile.toolbar/outdent "アウトデント" + :mobile.toolbar/photo "写真" + :mobile.toolbar/redo "やり直し" + :mobile.toolbar/reference "参照" + :mobile.toolbar/slash "スラッシュ" + :mobile.toolbar/tag "タグ" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "元に戻す" + :mobile.toolbar/unselect "選択解除" + + :nav/all-files "すべてのファイル" + :nav/all-journals "すべてのジャーナル" + :nav/appearance "外観" + :nav/assets "アセット" + :nav/cannot-go-to-internal-page "内部ページに移動できません" + :nav/flashcards "フラッシュカード" + :nav/graph "グラフ" + :nav/graph-view "グラフビュー" + :nav/help "ヘルプ" + :nav/home "ホーム" + :nav/invalid-jump-error "無効なジャンプ" + :nav/journals "日誌" + :nav/plugins "プラグイン" + :nav/search "検索" + :nav/settings "設定" + :nav/skip-to-main-content "メインの内容まで飛ぶ" + :nav/tasks "タスク" + :nav/themes "テーマ" + + :nav.all-pages/label "すべてのページ" + :nav.all-pages/title "すべてのページ" + + :node/built-in-cant-delete-error "組み込み項目は削除できません。" + :node/new "新しいノード" + + :notification/clear-all "すべてクリア" + :notification/copied "コピーしました" + + :onboarding.import/desc "EDN、Markdown形式のいずれかであればLogseqはうまく処理できます。" + :onboarding.import/sqlite-desc "SQLiteデータベースからインポート" + :onboarding.import/title "既に持っている読み込みたいノートはありますか?" + + :onboarding.import-option/desc "これは後にアプリ内で行うこともできます。" + :onboarding.import-option/title "既に存在するノートを読み込む" + + :onboarding.setup/desc "はじめに、あなたの考えやアイデア、ノートを保存しておくためのフォルダを選択する必要があります。" + :onboarding.setup/title (fn [] [["ようこそ! " [:strong "Logseq"] " へ!"]]) + + :page/add-to-favorites "お気に入りに追加" + :page/added-tag-to-node "タグ「{1}」を「{2}」に追加しました" :page/backlinks "バックリンク" - :linked-references/filter-search "リンクされたページを検索" - :linked-references/filter-heading "絞り込む" - :linked-references/filter-directions "クリックすると含むもの、Shiftを押しながらクリックすると含まないものを検索します。もう一度クリックすると取り消します。" - :linked-references/filter-includes "含む: " - :linked-references/filter-excludes "含まない: " - :editor/block-search "ブロックを検索" - :text/image "画像" - :asset/show-in-folder "画像のフォルダを開く" - :asset/open-in-browser "ブラウザで開く" - :asset/delete "画像を削除" - :asset/copy "画像をコピー" - :asset/maximize "画像を最大化" - :asset/ref-block "画像ブロック引用" + :page/clear "クリア" + :page/clear-local-storage-desc "ダーク/ライトテーマの設定など軽微な設定が削除されます。" + :page/cleared "クリアしました" + :page/contents "目次" + :page/convert-to-tag "タグに変換" + :page/copy-url "ページURLをコピー" + :page/create "新しいページを作成" + :page/created-at "作成日" + :page/current-graph-as-sqlite-db "現在のグラフをSQLite dbとして" + :page/default-query-error "デフォルトクエリの失敗:" + :page/delete "ページを削除" + :page/go-back-home "ホームに戻る" + :page/hide-properties "プロパティを隠す" + :page/local-storage "ローカルストレージ" + :page/logseq-is-having-a-problem "Logseqになにか問題があります。きちんと動く状態に戻すため、以下の項目を上から順番に実行してください:" + :page/make-private "非公開にする" + :page/make-public "パブリッシュのため公開する" + :page/moved-to-recycle "ノードはごみ箱に移動されました" + :page/name "ページ名" + :page/no-page-found-to-copy "コピーするページが見つかりません" + :page/not-found "ページが見つかりません" + :page/not-found-desc "お探しのページは存在しません。" + :page/not-found-title "ページが見つかりません" + :page/not-found-warning "ページが見つかりません" + :page/open-all-graphs-desc "{{All graphs}}に移動して別のグラフに切り替えることもできます。" + :page/open-issue-desc "これらのトラブルシューティング手順で問題が解決しない場合は、{{open an issue}}してください。" + :page/open-properties "プロパティを開く" + :page/rebuild "再構築" + :page/relaunch "再起動" + :page/relaunch-desc "アプリを終了して再度開きます。" + :page/scheduled-and-deadline "予定日と期限" + :page/search-index "検索インデックス" + :page/send-db-for-debugging "デバッグ用にhelp@logseq.comに送信できます。" + :page/something-went-wrong "問題が発生しました。" + :page/step "ステップ{1}" + :page/the-app "アプリ" + :page/try "試す" + :page/unfavorite "お気に入りを解除" + :page/unknown "不明なページ" + :page/updated-at "更新日時 " - :asset/confirm-delete "この {1} を削除してもよろしいですか?" - :asset/physical-delete "ファイルも削除します(元に戻せないことにご注意ください)" - :color/gray "グレー" - :color/red "赤" - :color/yellow "黄" - :color/green "緑" - :color/blue "青" - :color/purple "紫" - :color/pink "ピンク" - :editor/copy "コピー" - :editor/cut "カット" - :editor/expand-block-children "全て展開する" - :editor/collapse-block-children "全て折り畳む" - :editor/delete-selection "選択したブロックを削除" - :editor/cycle-todo "現在のアイテムのTODO状態を切り替える" - :dev/show-page-data "(開発) ページのデータを表示" - :dev/show-block-data "(開発) ブロックのデータの表示" - :dev/show-block-ast "(開発) ブロックの抽象構文木を表示" - :content/copy-export-as "特定の書式でコピー/書き出し.." - :content/copy-block-url "ブロックのURLをコピー" - :content/copy-block-ref "ブロック参照をコピー" - :content/copy-ref "この参照をコピー" - :content/delete-ref "この参照を削除" - :content/replace-with-text "テキストに置換" - :content/replace-with-embed "埋め込みに置換" - :content/open-in-sidebar "サイドバーで開く" - :content/click-to-edit "クリックで編集" - :context-menu/make-a-flashcard "フラッシュカードを作る" - :context-menu/toggle-number-list "数字付きリスト/通常のリストへ切り替え" - :settings-page/edit-config-edn "config.ednを編集" - :settings-page/edit-global-config-edn "グローバルなconfig.ednを編集" - :settings-page/edit-custom-css "custom.cssを編集" - :settings-page/edit-export-css "export.cssを編集" - :settings-page/custom-configuration "カスタム設定" - :settings-page/custom-global-configuration "全体の設定を変更する" - :settings-page/theme-light "ライト" - :settings-page/theme-dark "ダーク" - :settings-page/theme-system "システム" - :settings-page/custom-theme "カスタムテーマ" - :settings-page/export-theme "テーマの出力" - :settings-page/show-brackets "ブラケットを表示" - :settings-page/wide-mode "ワイドモード" - :settings-page/editor-font "エディターフォント" - :settings-page/accent-color "ハイライトカラー" - :settings-page/accent-color-alert "アクセントカラーを選択すると、選択したテーマが上書きされる場合があります。" - :settings-page/spell-checker "スペルチェッカー" - :settings-page/auto-updater "自動更新" - :settings-page/disable-sentry "使用状況データと診断内容をLogseqへ送信します。" - :settings-page/disable-sentry-desc "Logseqはあなたのローカルなグラフを決して取得しませんし、あなたのデータを売ることも決してありません。 " - :settings-page/preferred-outdenting "論理的なアウトデント" - :settings-page/preferred-outdenting-tip "左側は既定のままの場合のアウトデントを示しています。右側は論理的なアウトデントを有効にした場合のアウトデントを示しています。" - :settings-page/preferred-outdenting-tip-more "→ もっと学ぶ" - :settings-page/show-full-blocks "ブロック参照の全ての行を表示する" - :settings-page/auto-expand-block-refs "ズームインしたとき、ブロック参照を自動で展開する" - :settings-page/auto-expand-block-refs-tip "このオプションは、ズームインしたときにブロック参照を展開するかどうかを指定します。" - :settings-page/custom-date-format "日時の表示形式" - :settings-page/preferred-pasting-file-hint "このオプションが有効な場合、インターネットから画像を貼り付けたとき、画像をダウンロードして挿入します。無効な場合、画像へのリンクを挿入します。" - :settings-page/preferred-pasting-file "ファイルの貼り付けを優先する" - :settings-page/enable-shortcut-tooltip "ショートカットのツールチップを表示" - :settings-page/enable-tooltip "ツールチップ" - :settings-page/enable-journals "日誌" - :settings-page/enable-all-pages-public "パブリッシュ時には全てのページを公開する" - :settings-page/home-default-page "起動時のホームページを設定" - :settings-page/clear-cache "キャッシュをクリア" - :settings-page/clear "クリア" - :settings-page/clear-cache-warning "キャッシュをクリアすると、開いているグラフは破棄されます。保存されていない変更は失われます。" - :settings-page/developer-mode "開発者モード" - :settings-page/developer-mode-desc "開発者モードはコントリビューターと機能拡張の開発者がLogseqとの統合をより効率的にテストする助けになります。" - :settings-page/current-version "現在のバージョン" - :settings-page/tab-general "一般" - :settings-page/tab-editor "エディタ" - :settings-page/tab-keymap "キーマップ" - :settings-page/tab-account "アカウント" - :settings-page/tab-advanced "高度な設定" - :settings-page/tab-features "機能" - :settings-page/plugin-system "プラグイン" - :settings-page/enable-flashcards "フラッシュカード" - :settings-page/network-proxy "ネットワークプロキシ" - :settings-page/login-prompt "新しい機能を誰よりも早く使いたい場合は、LogseqのOpen Collective Sponsorか後援者になった上で、ログインしてください。" - :settings-page/native-titlebar "ネイティブのタイトルバー" - :settings-page/native-titlebar-desc "WindowsとLinuxで、ウィンドウにおけるネイティブのタイトルバーを有効にします。" - :settings-page/check-for-updates "更新を確認" - :settings-page/checking "確認しています..." - :settings-page/revision "リビジョン:" - :settings-page/changelog "更新履歴" - :settings-page/app-updated "このアプリは最新版です 🎉" - :settings-page/update-available "新しいリリースがみつかりました " - :settings-page/update-error-1 "⚠️ なにか問題が発生しました" - :settings-page/update-error-2 "次のリンクをご確認ください:" - :settings-page/auto-chmod "ファイルの権限を自動で変更する" - :settings-page/auto-chmod-desc "グループ メンバーシップを用いて、複数人のユーザに編集を許可する権限を与えたい場合、この機能を無効にしてください。" - :yes "はい" + :page.convert/block-parent-not-page "ブロックを変換できません。親がページではありません。" + :page.convert/cant-be-block "ページ「{1}」はブロックに変換できません。" + :page.convert/cant-be-block-has-children "ページ「{1}」にはページの子があるため、ブロックに変換できません。" + :page.convert/cant-be-block-move-first "ページ「{1}」はブロックに変換できません。まず別のページに移動してください。" + :page.convert/page-to-tag-action "\"{1}\"をタグに変換" + :page.convert/page-to-tag-built-in "組み込みページはタグにできません" + :page.convert/page-to-tag-duplicate "「{1}」という名前のタグはすでに存在します。" + :page.convert/page-to-tag-namespaced "名前空間ページはタグにできません" + :page.convert/property-value-to-page "プロパティ値をページに変換できません。" + :page.convert/tag-to-page-action "タグをページに変換" + :page.convert/tag-to-page-built-in "組み込みタグはページにできません" + :page.convert/tag-to-page-confirm-desc "タグをページに変換すると、そのタグのプロパティと、そのタグが付いているすべてのノードからそのタグも削除されます。続行してもよろしいですか?" + :page.convert/tag-to-page-duplicate "「{1}」という名前のページはすでに存在します。" + :page.convert/tag-to-page-has-children "子要素を持つタグは変換できません" - :cancel "キャンセル" - :close "閉じる" - :delete "削除" - :save "保存" - :type "種別" - :host "ホスト" - :port "ポート" - :flashcards/modal-welcome-title "フラッシュカードを作成する時間です!" - :flashcards/modal-welcome-desc-1 "ブロックに「#card」を追加することでカードとすることができます。また、「/cloze」で穴埋めを追加できます。" - :flashcards/modal-finished "おめでとうございます、今回のテストの全カードを見直しました。また会いましょう!💯" - :home "ホーム" - :new-page "新しいページ:" - :graph "グラフ" - :graph/all-graphs "全グラフ" - :graph/local-graphs "ローカルグラフ:" - :graph/remote-graphs "リモートグラフ:" - :export "エクスポート" - :export-graph "グラフをエクスポート" - :export-page "ページをエクスポート" - :export-markdown "標準Markdownでエクスポート(blockプロパティなし)" - :export-public-pages "公開ページのエクスポート" - :export-transparent-background "背景を透過" - :export-copy-to-clipboard "クリップボードにコピー" - :export-copied-to-clipboard "クリップボードにコピーしました" - :export-save-to-file "ファイルに保存" - :all-graphs "全グラフ" - :all-files "全ファイル" - :all-journals "全日誌" - :settings "設定" - :settings-of-plugins "プラグイン設定" - :plugins "プラグイン" - :themes "テーマ" - :appearance "インターフェース" - :relaunch-confirm-to-work "動作させるには再起動が必要です。いますぐ再起動しますか?" - :import "インポート" - :importing "インポートしています" - :help-shortcut-title "クリックしてショートカットと他のお役立ち情報を確認" - :loading "読み込み中..." - :login "ログイン" - :logout "ログアウト" - :download "ダウンロード" - :language "言語" - :remove-background "背景を消去" - :remove-heading "見出しを消去" - :heading "見出し {1}" - :auto-heading "自動見出し" - :toggle-theme "テーマを切り替える" + :page.delete/batch-confirm-title "これらのページを削除してもよろしいですか?プロパティとタグは完全に削除され、ページはごみ箱に移動されます。" + :page.delete/confirm-title "このページを削除してもよろしいですか?" + :page.delete/permanent-confirm-title "このページを完全に削除してもよろしいですか?" + :page.delete/success "ページ「{1}」は正常に削除されました。" + :page.delete/total "合計: {1}" + :page.delete/warning "これらのページのコンテンツは削除されましたが、削除できませんでした: {1}。詳細については、JavaScript コンソールを参照してください。" - :help/shortcut-page-title "キーボードショートカット" - - :plugin/installed "インストール済" - :plugin/installed-plugin "インストールされたプラグイン:{1}" - :plugin/not-installed "未インストール" - :plugin/installing "インストール中" - :plugin/install "インストール" - :plugin/reload "リロード" - :plugin/update "更新" - :plugin/update-plugin "プラグインをアップデートします:{1} - {2}" - :plugin/check-update "更新を確認" - :plugin/check-all-updates "全ての更新を確認" - :plugin/found-updates "新しい更新" - :plugin/found-n-updates "{1}個の更新がみつかりました" - :plugin/update-all-selected "選択された全てのプラグインをアップデートします" - :plugin/all-updated "全ての更新が完了しました!" - :plugin/updates-downloading "プラグインをダウンロードします" - :plugin/refresh-lists "リスト更新" - :plugin/enabled "有効化" - :plugin/disabled "無効化" - :plugin/update-available "利用可能な更新を適用" - :plugin/updating "更新中" - :plugin/uninstall "アンインストール" - :plugin/marketplace "マーケットプレース" - :plugin/downloads "ダウンロード" - :plugin/stars "スター" - :plugin/title "タイトル ({1})" - :plugin/all "全て" - :plugin/unpacked "展開済" - :plugin/delete-alert "プラグイン [{1}] をアンインストールしてもよいですか?" - :plugin/open-settings "設定を開く" - :plugin/open-package "パッケージを開く" - :plugin/load-unpacked "展開されたプラグインをロード" - :plugin/restart "アプリを再起動" - :plugin/unpacked-tips "プラグインディレクトリを選択" - :plugin/contribute "✨ 新規プラグインの作成とサブミット" - :plugin/up-to-date "最新版です!{1}" - :plugin/custom-js-alert "custom.js ファイルを見つけました。実行を許可しますか? (もしあなたがこのファイルの内容を理解していない場合、セキュリティのリスクがあるため許可しないことをお勧めします。)" - :plugin/security-warning "プラグインはあなたのグラフとローカルファイルにアクセスでき、ネットワークへの接続を要求することもできます。 -また、プラグインによってデータの破損や損失が引き起こされるかもしれません。私たちはグラフに適切なアクセス制限ルールを設けられるよう開発を進めています。 -その間、定期的にグラフのバックアップを取り、自分が読んで理解できるプラグインだけをインストールするようお願いします。" - - :plugin/search-plugin "プラグインを検索" - :plugin/open-preferences "設定を開く" - :plugin/open-logseq-dir "開く" - :plugin/remote-error "リモートエラー:" - :plugin/checking-for-updates "プラグインの更新を確認しています..." - :plugin/list-of-updates "プラグインの更新:" - :plugin/auto-check-for-updates "自動で更新を確認する" - :plugin.install-from-file/menu-title "plugins.ednからインストール" - :plugin.install-from-file/title "plugins.ednからプラグインをインストール" - :plugin.install-from-file/notice "以下のプラグインはあなたのプラグインTheを置き換えます:" - :plugin.install-from-file/success "全てのプラグインのインストールを完了しました。" + :page.validation/cant-set-built-in-tags "新しいページでは組み込みタグを設定できません: {1}" + :page.validation/duplicate "タグ {2} には、「{1}」という名前の別のページがすでに存在します。" + :page.validation/name-blank "ページ名を空にすることはできません。" + :page.validation/name-no-hash "ページ名に # を含めることはできません" + :page.validation/name-no-slash "ページ名に / を含めることはできません。" + :page.validation/parents-must-be-pages "ページの親はページでなければなりません。" + :pdf/annotations-page "注釈ページ" + :pdf/area-highlight-shortcut "エリアハイライト({1})" + :pdf/auto-fit "自動フィット" + :pdf/auto-open-context-menu "自動でコンテキストメニューを開く" :pdf/copy-ref "参照をコピー" :pdf/copy-text "テキストをコピー" - :pdf/linked-ref "リンクありの参照元" - :pdf/toggle-dashed "領域のハイライトに破線を使う" - :pdf/hl-block-colored "ブロックをハイライトするための色付きラベル" - :pdf/auto-open-context-menu "自動でコンテキストメニューを開く" + :pdf/corrupted-file-error "エラー:{1}\nこの.pdfファイルは破損していませんか?\n外部PDFビューアで確認してください。" :pdf/doc-metadata "ドキュメントのメタデータ" + :pdf/enter-to-search "Enterで検索" + :pdf/find-results "{2}件中{1}件目(\"{3}\")" + :pdf/generic-error "エラー:{1}\n{2}\nPDFファイルのリソースを確認してください。" + :pdf/highlight-mode "ハイライトモード" + :pdf/highlights "ハイライト" + :pdf/hl-block-colored "ブロックをハイライトするための色付きラベル" + :pdf/linked-ref "リンクありの参照元" + :pdf/load-highlights-file-error "エラー:ハイライトファイル\"{1}\"の読み込みに失敗しました。 \n{2}" + :pdf/missing-file-error "エラー:{1}\nこのパスは正しいですか?" + :pdf/more-settings "その他の設定" + :pdf/no-outlines "アウトラインなし" + :pdf/not-found "見つかりません。" + :pdf/open-in-app-window "アプリウィンドウで開く" + :pdf/open-in-external-window "外部ウィンドウで開く" + :pdf/outline "アウトライン" + :pdf/page-label "ページ {1}" + :pdf/password-protected-desc "このドキュメントはパスワードで保護されています。パスワードを入力してください:" + :pdf/password-required "パスワードが必要です" + :pdf/search "検索" + :pdf/search-placeholder "検索" + :pdf/toggle-dashed "領域のハイライトに破線を使う" + :pdf/viewer "PDFビューア" + :pdf/zoom-in "拡大" + :pdf/zoom-out "縮小" - :updater/new-version-install "新しいバージョンがダウンロードされました。" - :updater/quit-and-install "インストールのためアプリを再起動してください。" + :plugin/all "全て" + :plugin/auto-update-check "プラグインの更新を自動チェック" + :plugin/auto-update-check-feedback "自動更新チェック: {1}!" + :plugin/check-all-updates "全ての更新を確認" + :plugin/check-update "更新を確認" + :plugin/checked "確認済み" + :plugin/checking-for-updates "更新を確認中" + :plugin/contribute "✨ 新規プラグインの作成とサブミット" + :plugin/custom-js-alert "custom.js ファイルを見つけました。実行を許可しますか? (もしあなたがこのファイルの内容を理解していない場合、セキュリティのリスクがあるため許可しないことをお勧めします。)" + :plugin/date-added "追加日" + :plugin/delete-alert "プラグイン [{1}] をアンインストールしてもよいですか?" + :plugin/disable-for-performance-feedback "プラグイン{1}は無効化されました。" + :plugin/disable-now "今すぐ無効化" + :plugin/disabled "無効化" + :plugin/does-not-support-db "DBグラフはサポートされていません" + :plugin/downloads "ダウンロード" + :plugin/empty "見つかりませんでした。" + :plugin/enabled "有効化" + :plugin/existed-package "既存のプラグイン パッケージ ({1})。" + :plugin/fatal-error "致命的エラー: {1}" + :plugin/found-n-updates "{1}個の更新が見つかりました" + :plugin/found-updates "更新が見つかりました" + :plugin/install "インストール" + :plugin/install-error "インストール失敗:{1}\n{2}" + :plugin/installed "インストール済" + :plugin/installed-plugin "インストールされたプラグイン:{1}" + :plugin/installing "インストール中" + :plugin/invalid-github-repo-url "無効なGitHubリポジトリURL" + :plugin/invalid-package "無効なパッケージ" + :plugin/invalid-plugins-edn "無効なplugins.edn" + :plugin/list-of-updates "更新リスト" + :plugin/load-from-web-url "WebURLから読み込み" + :plugin/load-plugin-indicator "プラグインを読み込み中: {1}..." + :plugin/load-unpacked "展開されたプラグインをロード" + :plugin/loading-indicator "読み込み中" + :plugin/malformed-plugins-edn "不正なplugins.edn" + :plugin/marketplace "マーケットプレース" + :plugin/new-registered "新しいプラグインが登録されました" + :plugin/no-settings-schema "設定スキーマがありません!" + :plugin/not-installed "未インストール" + :plugin/open-logseq-dir "Logseqディレクトリを開く" + :plugin/open-package "パッケージを開く" + :plugin/open-preferences "環境設定を開く" + :plugin/open-settings "設定を開く" + :plugin/perf-tip "プラグイン{1}の読み込みに時間がかかりすぎており、アプリケーションの起動時間に影響を与え、他のプラグインが読み込めなくなる可能性があります。" + :plugin/popular "人気" + :plugin/proxy-check-success "成功しました! {2}ミリ秒後のステータス{1}。" + :plugin/readme-empty-warning "READMEの内容がありません" + :plugin/refresh-lists "リスト更新" + :plugin/reload "リロード" + :plugin/remote-error "リモートエラー: {1}" + :plugin/report-modal-desc "プラグインが利用できない、または悪意のあるコードが含まれていると思われる場合は、{1}にメールしてください。プラグインの名前とGitHubリポジトリのURLを記入してください。Logseqチームは通常1営業日以内に対応します。" + :plugin/report-security "セキュリティを報告" + :plugin/restart "アプリを再起動" + :plugin/search-plugin "プラグインを検索" + :plugin/security-warning "プラグインはあなたのグラフとローカルファイルにアクセスでき、ネットワークへの接続を要求することもできます。\r\n また、プラグインによってデータの破損や損失が引き起こされるかもしれません。私たちはグラフに適切なアクセス制限ルールを設けられるよう開発を進めています。\r\n その間、定期的にグラフのバックアップを取り、自分が読んで理解できるプラグインだけをインストールするようお願いします。" + :plugin/setting-not-handled "#未処理# {1}" + :plugin/settings-schema-error "設定スキーマエラー!" + :plugin/stars "スター" + :plugin/supports-db "DB対応" + :plugin/title "タイトル ({1})" + :plugin/uninstall "アンインストール" + :plugin/unpacked "展開済" + :plugin/unpacked-tips "プラグインディレクトリを選択" + :plugin/up-to-date "最新版です!{1}" + :plugin/update "更新" + :plugin/update-all-selected "選択したすべてを更新" + :plugin/update-all-success "全ての更新が完了しました!" + :plugin/update-available "利用可能な更新を適用" + :plugin/update-plugin "プラグインをアップデートします:{1} - {2}" + :plugin/updates-downloading "更新をダウンロード中" + :plugin/updating "更新中" - :tips/all-done "全て完了しました" + :plugin.install-from-file/menu-title "plugins.ednからインストール" + :plugin.install-from-file/notice "以下のプラグインはあなたのプラグインTheを置き換えます:" + :plugin.install-from-file/success "全てのプラグインのインストールを完了しました。" + :plugin.install-from-file/title "plugins.ednからプラグインをインストール" + + :plugin.install-from-web-url/effect-label "エフェクト" + :plugin.install-from-web-url/repo-url-placeholder "GitHubリポジトリURL" + :plugin.install-from-web-url/supports-note "URLはGitHubリポジトリとローカル開発サーバーの両方をサポートしています。(例:{1}、{2})" + :plugin.install-from-web-url/theme-label "テーマ" + + :plugin.package-config/detach-desc "削除しても、Logseq からプラグインを切り離すだけで、元のフォルダーはそのまま残ります。" + :plugin.package-config/parse-error "プラグインパッケージ設定の解析に失敗しました。" + :plugin.package-config/remove-error "破損したプラグインの削除に失敗しました。" + :plugin.package-config/remove-external-success "破損したプラグインをプラグイン一覧から削除しました。" + :plugin.package-config/remove-installed-success "破損したプラグイン「{1}」を削除しました。" + + :plugin.proxy/direct "直接接続" + :plugin.proxy/system "システム" + :plugin.proxy/test-url "URLをテスト" + :plugin.proxy/testing "テスト中" + + :plugin.settings/edit-settings-json "settings.json を編集" + :plugin.settings/exit-code-mode "コードモードを終了" + :plugin.settings/title "プラグイン設定" + + :plugin.themes/default-desc "Logseq のデフォルト{1}テーマ." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1}テーマ" + :plugin.themes/light-and-dark "ライト・ダークテーマ" + + :profiler/input-fn-placeholder "関数名を入力" + :profiler/unregister "登録解除" + + :property/add-choice "選択肢を追加" + :property/add-choices "選択肢を追加" + :property/add-description "説明を追加" + :property/add-new "プロパティを追加" + :property/add-or-change "プロパティを追加または変更" + :property/available-choices "利用可能な選択肢" + :property/change-tooltip "{1}を変更" + :property/checkbox-state-mapping "チェックボックスの状態マッピング" + :property/children-count "の子供たち ({1})" + :property/choices-count "{1} の選択肢" + :property/choose-tag "タグを選択" + :property/choose-tags "タグを選択" + :property/clear-value "クリア" + :property/configure "設定" + :property/convert-page-to-property "\"{1}\"をプロパティに変換" + :property/create-error "プロパティの作成に失敗しました。" + :property/default-value "デフォルト値" + :property/delete-from-node "ノードから削除" + :property/delete-from-node-confirm "このプロパティをノードから削除してもよろしいですか?" + :property/delete-from-tag "タグから削除" + :property/delete-from-tag-confirm "このプロパティをタグから削除してもよろしいですか?" + :property/description-placeholder "説明を入力" + :property/drag-to-reorder "ドラッグで並び替え" + :property/existing-values "既存の値" + :property/go-to-this-property "このプロパティのページへ" + :property/hidden-properties "非表示のプロパティ" + :property/hide-by-default "デフォルトで非表示" + :property/hide-choice-for-tag "タグの選択肢を非表示" + :property/hide-empty-value "空の値を非表示" + :property/hide-for-tag "#{1} のために非表示にする" + :property/hide-hidden-choices "隠し選択肢を非表示" + :property/map-checked-to "チェック時のマッピング先" + :property/map-unchecked-to "未チェック時のマッピング先" + :property/more-settings "その他の設定" + :property/multiple-values "複数値" + :property/multiple-values-confirm "複数値を有効にしますか?" + :property/name "名前" + :property/name-placeholder "プロパティ名" + :property/nodes-with-property "プロパティを持つノード" + :property/overdue "期限超過" + :property/private-built-in-not-usable "プライベートな組み込みプロパティは使用できません" + :property/select-choice "選択肢を選択" + :property/select-property-placeholder "プロパティを選択" + :property/select-type-placeholder "プロパティタイプを選択" + :property/self-reference "自己参照" + :property/set-default-choice "デフォルトの選択肢を設定" + :property/set-default-value "デフォルト値を設定" + :property/set-icon "アイコンを設定" + :property/set-placeholder "{1}を設定" + :property/set-property "プロパティを設定" + :property/set-tags "タグを設定" + :property/set-value "値を設定" + :property/show-as-checkbox-on-node "ノードにチェックボックスとして表示" + :property/show-as-checkbox-on-tagged-nodes "タグ付きノードにチェックボックスとして表示" + :property/show-hidden-choices "隠し選択肢を表示" + :property/skip-choosing-tag "タグの選択をスキップ" + :property/specify-node-tags "ノードタグを指定" + :property/title-placeholder "タイトル" + :property/type "タイプ" + :property/type-change-warning "プロパティタイプを変更すると、一部のプロパティ設定がクリアされます。" + :property/type-checkbox "チェックボックス" + :property/type-date "日付" + :property/type-datetime "日時" + :property/type-locked-help "型がロックされています" + :property/type-node "ノード" + :property/type-number "数値" + :property/type-text "テキスト" + :property/type-url "URL" + :property/ui-position "UI位置" + :property/ui-position-block-below "ブロックの下" + :property/ui-position-block-left "ブロックの左" + :property/ui-position-block-right "ブロックの右" + :property/ui-position-properties "プロパティ" + :property/unset-property "プロパティを解除" + :property/update-success "更新しました" + + :property.built-in/alias "エイリアス" + :property.built-in/asset "アセット" + :property.built-in/asset-align "アセットの配置" + :property.built-in/asset-checksum "ファイルチェックサム" + :property.built-in/asset-external-file-name "外部ファイル名" + :property.built-in/asset-external-url "外部URL" + :property.built-in/asset-height "画像の高さ" + :property.built-in/asset-last-visit-page "最後に閲覧したページ" + :property.built-in/asset-remote-metadata "ファイルのリモートメタデータ" + :property.built-in/asset-resize-metadata "アセットリサイズメタデータ" + :property.built-in/asset-size "ファイルサイズ" + :property.built-in/asset-type "ファイルタイプ" + :property.built-in/asset-width "画像の幅" + :property.built-in/background-color "背景色" + :property.built-in/built-in "組み込み?" + :property.built-in/checkbox-display-properties "チェックボックスとして表示するプロパティ" + :property.built-in/choice-checkbox-state "選択肢チェックボックスの状態" + :property.built-in/choice-classes "選択肢クラス" + :property.built-in/choice-exclusions "選択肢の除外" + :property.built-in/class-bidirectional-property-title "双方向プロパティタイトル" + :property.built-in/class-enable-bidirectional "双方向プロパティを有効化" + :property.built-in/class-extends "継承" + :property.built-in/class-hide-from-node "ノードから非表示" + :property.built-in/class-properties "タグプロパティ" + :property.built-in/classes "プロパティクラス" + :property.built-in/closed-value-property "クローズド値プロパティ" + :property.built-in/code-lang "コードモード" + :property.built-in/collapsed "ノード折りたたみ?" + :property.built-in/created-at "ノード作成日時" + :property.built-in/created-by-ref "ノード作成者" + :property.built-in/created-from-property "プロパティから作成" + :property.built-in/deadline "期限" + :property.built-in/default-value "デフォルト値" + :property.built-in/deleted-at "削除日時" + :property.built-in/deleted-by-ref "削除者" + :property.built-in/description "説明" + :property.built-in/enable-history "プロパティ履歴を有効化" + :property.built-in/exclude-from-graph-view "グラフビューから除外?" + :property.built-in/fsrs-due "期日" + :property.built-in/fsrs-state "状態" + :property.built-in/heading "見出し" + :property.built-in/hide "このプロパティまたはページを非表示" + :property.built-in/hide-empty-value "空の値を非表示" + :property.built-in/history-block "履歴ブロック" + :property.built-in/history-property "履歴プロパティ" + :property.built-in/history-ref-value "履歴値" + :property.built-in/history-scalar-value "履歴スカラー値" + :property.built-in/icon "アイコン" + :property.built-in/journal-day "ジャーナル日付" + :property.built-in/journal-title-format "タイトル形式" + :property.built-in/link "ノードのリンク先" + :property.built-in/linked-references-excludes "除外する参照" + :property.built-in/linked-references-includes "含める参照" + :property.built-in/ls-type "LSタイプ" + :property.built-in/node-display-type "ノード表示タイプ" + :property.built-in/order "ノード順序" + :property.built-in/order-list-type "リストタイプ" + :property.built-in/page "ノードページ" + :property.built-in/page-tags "ページタグ" + :property.built-in/parent "ノード親" + :property.built-in/priority "優先度" + :property.built-in/public "プロパティ公開?" + :property.built-in/publish-published-url "公開URL" + :property.built-in/publishing-public "公開中?" + :property.built-in/query "クエリ" + :property.built-in/reaction-emoji-id "リアクション絵文字" + :property.built-in/reaction-target "リアクション対象" + :property.built-in/recycle-original-order "ごみ箱の元の順序" + :property.built-in/recycle-original-page "ごみ箱の元のページ" + :property.built-in/recycle-original-parent "ごみ箱の元の親" + :property.built-in/refs "ノード参照" + :property.built-in/repeat-checked-property "繰り返しチェック済みプロパティ" + :property.built-in/repeat-recur-frequency "繰り返し頻度" + :property.built-in/repeat-recur-unit "繰り返し単位" + :property.built-in/repeat-repeated "ノード繰り返し?" + :property.built-in/repeat-temporal-property "繰り返し時間プロパティ" + :property.built-in/scalar-default-value "非参照型のデフォルト値" + :property.built-in/scheduled "予定日" + :property.built-in/status "ステータス" + :property.built-in/sync-large-title-object "リモートオブジェクトストレージに保存された大きなブロックタイトルへの参照" + :property.built-in/table-filters "ビューフィルタ" + :property.built-in/table-hidden-columns "ビューの非表示列" + :property.built-in/table-ordered-columns "ビューの列順序" + :property.built-in/table-pinned-columns "テーブルビューの固定列" + :property.built-in/table-sized-columns "ビューの列設定" + :property.built-in/table-sorting "ビューのソート" + :property.built-in/tags "タグ" + :property.built-in/template-applied-to "テンプレートをタグに適用" + :property.built-in/title "ノードタイトル" + :property.built-in/type "プロパティタイプ" + :property.built-in/ui-position "プロパティ位置" + :property.built-in/updated-at "ノード更新日時" + :property.built-in/used-template "使用テンプレート" + :property.built-in/user-avatar "ユーザーアバター" + :property.built-in/user-email "ユーザーメール" + :property.built-in/user-name "ユーザー名" + :property.built-in/value "プロパティ値" + :property.built-in/view-context "プロパティビューコンテキスト" + :property.built-in/view-feature-type "ビュー機能タイプ" + :property.built-in/view-for "このビューの所属先" + :property.built-in/view-group-by-property "ビューのグループ化プロパティ" + :property.built-in/view-sort-groups-by-property "ビューのグループソート" + :property.built-in/view-sort-groups-desc "ビューのグループ降順ソート" + :property.built-in/view-type "ビュータイプ" + + :property.choice/already-exists "選択肢は既に存在します。" + :property.choice/cant-delete-built-in "組み込みの選択肢は削除できません。" + :property.choice/invalid "このプロパティに対する選択 \"{1}\" は無効です: {2}" + + :property.color/blue "青" + :property.color/green "緑" + :property.color/purple "紫" + :property.color/red "赤" + :property.color/yellow "黄" + + :property.priority/high "高" + :property.priority/low "低" + :property.priority/medium "中" + :property.priority/urgent "緊急" + + :property.repeat/date "繰り返し日付" + :property.repeat/datetime "繰り返し日時" + :property.repeat/every "間隔" + :property.repeat/is-label "条件:" + :property.repeat/task "繰り返しタスク" + :property.repeat/when "タイミング" + + :property.repeat-recur-unit/day "日" + :property.repeat-recur-unit/hour "時間" + :property.repeat-recur-unit/minute "分" + :property.repeat-recur-unit/month "月" + :property.repeat-recur-unit/week "週" + :property.repeat-recur-unit/year "年" + + :property.status/backlog "バックログ" + :property.status/canceled "キャンセル済み" + :property.status/doing "進行中" + :property.status/done "完了" + :property.status/in-review "レビュー中" + :property.status/todo "未着手" + + :property.validation/cant-convert-to-number "「{1}」を数値に変換できません。" + :property.validation/cant-remove-required "必須プロパティは削除できません。" + :property.validation/cant-set-self-value "自分自身をプロパティ値に設定できません。" + :property.validation/duplicate "プロパティ「{1}」は既に存在します。" + :property.validation/invalid-name "これは無効なプロパティ名です。プロパティ名をページ参照文字「#」または「[[」で始めることはできません。" + :property.validation/invalid-value "プロパティ「{1}」に無効な値があります: {2}" + :property.validation/many-to-one "複数値プロパティを単一値プロパティに変更できません。" + :property.validation/protected "このプロパティは保護されており、変更できません。" + + :property.view-type/gallery "ギャラリービュー" + :property.view-type/list "リストビュー" + :property.view-type/table "テーブルビュー" + + :publish/action "公開" + :publish/dialog-desc "オプションでこのページをパスワードで保護できます。空欄の場合は公開アクセスになります。" + :publish/dialog-title "ページを公開" + :publish/invalid-page-error "無効なページ" + :publish/password-optional-placeholder "パスワード(任意)" + :publish/publish-error "公開に失敗しました" + :publish/published-to "{1}に公開しました" + :publish/publishing "公開中..." + :publish/unpublish "公開を取り消す" + :publish/unpublish-error "公開取り消しに失敗しました" + :publish/unpublish-missing-page-id "公開取り消し:ページIDが不足" + :publish/unpublished "公開を取り消しました" + + :query/advanced-results "高度なクエリ結果" + :query/custom-view-error "カスタムビューエラー:{1}" + :query/error "クエリエラー:" + :query/examples-desc "その他の例は{{Queries documentation}}をご確認ください。" + :query/examples-title "クエリの例:" + :query/results-for "{1} の結果" + + :query.builder/add-filter-or-operator-placeholder "フィルター/演算子を追加" + :query.builder/between-end-label "終了日" + :query.builder/between-journal-label "期間:{1} 〜 {2}" + :query.builder/between-start-label "開始日" + :query.builder/created-label "作成日" + :query.builder/filter "フィルター" + :query.builder/filter-full-text-search-label "全文検索" + :query.builder/filter-page-label "ページ" + :query.builder/filter-page-reference-label "ページ参照" + :query.builder/filter-sample-label "サンプル" + :query.builder/operator-and-label "かつ" + :query.builder/operator-not-label "除外" + :query.builder/replace-with-label "置き換え:" + :query.builder/search-label "検索:{1}" + :query.builder/show-built-in-properties "組み込みプロパティを表示" + :query.builder/unwrap-operator "アンラップ" + :query.builder/updated-label "更新日" + :query.builder/wrap-filter-with-label "このフィルタをラップ:" + + :reference/blocks "ブロック参照" + :reference/copy "この参照をコピー" + :reference/delete "この参照を削除" + :reference/page-filter "ページフィルタ" + :reference/replace-with-embed "埋め込みに置換" + :reference/replace-with-text "テキストに置換" + + :reference.filter/directions "クリックすると含むもの、Shiftを押しながらクリックすると含まないものを検索します。もう一度クリックすると取り消します。" + :reference.filter/excludes "含まない: " + :reference.filter/includes "含む: " + :reference.filter/search-placeholder "リンクされたページを検索" + :reference.filter/title "絞り込む" + + :search/blank-input "空の入力" + :search/full-text-placeholder "全文検索" + :search/index-progress "索引作成中 {1}%" + :search/indices-rebuilt-success "検索インデックスが正常に再構築されました!" + :search/no-result "結果なし" + :search/result-count "{1} 件の結果" + + :search.find-in-page/input-placeholder "ページ内検索" + :search.find-in-page/match-case "大文字小文字を区別" + :search.find-in-page/next-result "次の結果" + :search.find-in-page/previous-result "前の結果" :select/default-prompt "選択してください" :select/default-select-multiple "一つもしくは複数選択してください" - :select.graph/prompt "グラフを選んでください" - :select.graph/empty-placeholder-description "マッチするグラフがありません。新しいグラフを追加しますか?" - :select.graph/add-graph "はい、新規グラフを追加します。" + :select/new-option "+ 新しいオプション: {1}" - :notification/clear-all "全てクリア" + :server/error-notification "[サーバー] {1}" + :server/mcp-url-copied "MCP URLをコピーしました" + :server/start "開始" + :server/stop "停止" + :server/title "HTTP APIサーバー" + + :server.config/auto-start-label "アプリ起動時に自動開始" + :server.config/port-label "ポート範囲" + :server.config/reset "リセット" + :server.config/save-and-apply "保存して適用" + :server.config/title "サーバー設定" + + :server.status/closed "終了" + :server.status/closing "終了中" + :server.status/error "エラー" + :server.status/running "実行中" + :server.status/starting "起動中" + :server.status/stopped "停止" + + :server.token/add-new "新しいトークンを追加" + :server.token/name-placeholder "サーバー名" + :server.token/regenerate-value "トークン値を再生成" + :server.token/title "認証トークン" + :server.token/update-success "トークンを更新しました" + :server.token/value-placeholder "値" + + :settings/account "アカウント" + :settings/advanced "高度な設定" + :settings/ai "AI" + :settings/collaboration "コラボレーション" + :settings/editor "エディタ" + :settings/encryption "暗号化" + :settings/features "機能" + :settings/general "一般" + :settings/keymap "キーマップ" + :settings/plugins "プラグイン設定" + + :settings.account/storage-usage "{1}GB / {2}GB の合計ストレージ({3})" + :settings.account/synced-graphs "{1}/{2} 個の同期グラフ({3})" + + :settings.advanced/auto-chmod "ファイル権限を自動設定" + :settings.advanced/auto-chmod-desc "ファイル保存時に権限を自動設定します" + :settings.advanced/auto-updater "自動更新" + :settings.advanced/developer-mode "開発者モード" + :settings.advanced/developer-mode-desc "開発者モードはコントリビューターと機能拡張の開発者がLogseqとの統合をより効率的にテストする助けになります。" + :settings.advanced/disable-sentry "使用状況データと診断内容をLogseqへ送信します。" + :settings.advanced/disable-sentry-desc "Logseqはあなたのローカルなグラフを決して取得しませんし、あなたのデータを売ることも決してありません。 " + :settings.advanced/network-proxy "ネットワークプロキシ" + + :settings.ai/enable-mcp-server "MCPサーバーを有効化" + :settings.ai/enable-mcp-server-desc "MCPサーバーを有効にしてAI連携を可能にします" + + :settings.editor/auto-expand-block-refs "ブロック参照を自動展開" + :settings.editor/auto-expand-block-refs-tip "このオプションは、ズームインしたときにブロック参照を展開するかどうかを指定します。" + :settings.editor/custom-date-format "日時の表示形式" + :settings.editor/enable-all-pages-public "すべてのページを公開にする" + :settings.editor/enable-shortcut-tooltip "ショートカットのツールチップを表示" + :settings.editor/enable-tooltip "ツールチップ" + :settings.editor/preferred-outdenting "論理的なアウトデント" + :settings.editor/preferred-outdenting-tip "左側は既定のままの場合のアウトデントを示しています。右側は論理的なアウトデントを有効にした場合のアウトデントを示しています。" + :settings.editor/preferred-outdenting-tip-more "→ もっと学ぶ" + :settings.editor/preferred-pasting-file "ファイルの貼り付けを優先する" + :settings.editor/preferred-pasting-file-hint "このオプションが有効な場合、インターネットから画像を貼り付けたとき、画像をダウンロードして挿入します。無効な場合、画像へのリンクを挿入します。" + :settings.editor/show-brackets "ブラケットを表示" + :settings.editor/show-full-blocks "ブロック参照の全ての行を表示する" + :settings.editor/spell-checker "スペルチェッカー" + :settings.editor/wide-mode "ワイドモード" + + :settings.features/enable-flashcards "フラッシュカード" + :settings.features/enable-journals "日誌" + :settings.features/home-default-page "起動時のホームページを設定" + :settings.features/home-default-page-update-success "ホームのデフォルトページを更新しました" + :settings.features/journals-enable-success "ジャーナルを有効化" + :settings.features/login-prompt "新しい機能を誰よりも早く使いたい場合は、LogseqのOpen Collective Sponsorか後援者になった上で、ログインしてください。" + :settings.features/page-not-found "ページ「{1}」はまだ存在しません。まずそのページを作成してから、再試行してください。" + :settings.features/plugin-system "プラグイン" + + :settings.general/accent-color "ハイライトカラー" + :settings.general/accent-color-alert "アクセントカラーを選択すると、選択したテーマが上書きされる場合があります。" + :settings.general/accent-color-logseq "Logseq クラシックカラー" + :settings.general/accent-color-none-desc "アクセントカラーをキャンセルします。現在ベータ段階であり、主にカスタムテーマとの互換性のために使用されます。" + :settings.general/changelog "更新履歴" + :settings.general/check-for-updates "更新を確認" + :settings.general/current-revision-label "現在のリビジョン" + :settings.general/current-version "現在のバージョン" + :settings.general/custom-configuration "カスタム設定" + :settings.general/custom-global-configuration "全体の設定を変更する" + :settings.general/custom-theme "カスタムテーマ" + :settings.general/edit-config-edn "config.ednを編集" + :settings.general/edit-custom-css "custom.cssを編集" + :settings.general/edit-export-css "export.cssを編集" + :settings.general/edit-global-config-edn "グローバルなconfig.ednを編集" + :settings.general/editor-font "エディターフォント" + :settings.general/editor-font-set-global "グローバルフォントファミリーとして設定" + :settings.general/export-theme "テーマの出力" + :settings.general/language "言語" + :settings.general/native-titlebar "ネイティブタイトルバー" + :settings.general/native-titlebar-desc "OSのネイティブタイトルバーを使用(再起動が必要)" + :settings.general/refresh-required-feedback "ページの再読み込みが必要です" + :settings.general/release-channel "リリースチャンネル" + :settings.general/revision "リビジョン:{1}" + :settings.general/theme-dark "ダーク" + :settings.general/theme-light "ライト" + :settings.general/theme-system "システム" + + :settings.sync-server/clear-success "同期サーバー URL をクリアしました。公式の Logseq Sync を使用します。" + :settings.sync-server/reset "デフォルトに戻す" + :settings.sync-server/save-success "同期サーバー URL を保存しました。" + :settings.sync-server/url "同期サーバー URL" + :settings.sync-server/url-desc "セルフホスト同期用のカスタム HTTPS 同期サーバー URL を設定します。Logseq の認証トークンはこのサーバーに送信されるため、信頼できる URL のみを使用してください。空のままにすると、公式の Logseq Sync を使用します。" + :settings.sync-server/url-invalid-error "URL は https:// または http:// で始まる必要があります" + + :shell/input-command-title "コマンド入力" :shortcut.category/basics "基本操作" - :shortcut.category/formatting "書式" + :shortcut.category/block-command-editing "ブロック編集テキスト操作" + :shortcut.category/block-editing "ブロック編集基本" + :shortcut.category/block-selection "ブロック選択操作" + :shortcut.category/formatting "フォーマット" :shortcut.category/navigating "ナビゲーション" - :shortcut.category/block-editing "ブロック単位の編集" - :shortcut.category/block-command-editing "ブロック内の編集" - :shortcut.category/block-selection "ブロック選択" - :shortcut.category/toggle "切り替え" :shortcut.category/others "その他" :shortcut.category/plugins "プラグイン" + :shortcut.category/toggle "切替" + + :sidebar.left/favorites "お気に入り" + :sidebar.left/navigations "ナビゲーション" + :sidebar.left/recent-pages "最近のページ" + + :sidebar.right/close "閉じる" + :sidebar.right/close-all "全て閉じる" + :sidebar.right/close-others "他を全て閉じる" + :sidebar.right/collapse "折り畳む" + :sidebar.right/collapse-all "全て折り畳む" + :sidebar.right/collapse-others "他を全て折り畳む" + :sidebar.right/expand "展開する" + :sidebar.right/expand-all "全て展開する" + :sidebar.right/more "もっと" + :sidebar.right/open "サイドバーで開く" + :sidebar.right/open-as-page "ページとして開く" + :sidebar.right/resize-handle "右サイドバーのサイズ変更" + :sidebar.right/toggle "右サイドバーを開閉" + + :storage/invalid-data-writing "無効なデータの書き込みです。" + :storage/sqlitedb-error "SQLiteDB エラー: {1}" + :storage/sqlitedb-import-error "SQLiteDB インポート エラー: {1}" + :storage/sqlitedb-save-error "SQLiteDB 保存エラー: {1}" + + :storage.recycle/block-deleted-at "ブロックが削除されました {1}" + :storage.recycle/empty "ごみ箱は空です。" + :storage.recycle/page-deleted-at "ページが削除されました {1}" + :storage.recycle/readonly "ごみ箱(読み取り専用)" + :storage.recycle/restore "復元" + :storage.recycle/retention-desc "削除されたページとブロックは、復元されるか、30 日後に自動でガベージコレクトされるまでここに残ります。" + :storage.recycle/title "ごみ箱" + + :sync/assets-downloading-count "アセットをダウンロード中({1})" + :sync/assets-uploading-count "アセットをアップロード中({1})" + :sync/creating-remote-graph "リモートグラフを作成しています..." + :sync/downloading "ダウンロード中..." + :sync/downloading-graph "{1}をダウンロード中..." + :sync/graph-count-exceed-limit "グラフ数が上限を超えています" + :sync/invitation-sent "招待を送信しました" + :sync/last-synced-time-label "最終同期日時:{1}" + :sync/more-debug-info "デバッグ情報をさらに表示" + :sync/offline "オフライン" + :sync/online "オンライン" + :sync/pending-local-changes "保留中のローカル変更" + :sync/pending-server-changes "保留中のサーバー変更" + :sync/something-wrong "同期エラーが発生しました" + :sync/start-sync "同期を開始" + :sync/storage-exceed-limit "ストレージ容量の上限を超えています" + :sync/uploading "アップロード中..." + :sync/user-doesnt-exist-yet "ユーザーはまだ存在しません" + + :theme/logseq-default "Logseq デフォルトテーマ" + :theme/switch-to "{1} テーマに切り替える" + + :ui/all-done "全て完了しました" + :ui/apply "適用" + :ui/cancel "キャンセル" + :ui/close "閉じる" + :ui/configure "設定" + :ui/confirm "確認" + :ui/copy "コピー" + :ui/copy-all "すべてコピー" + :ui/copy-to-clipboard "クリップボードにコピー" + :ui/create "作成" + :ui/date-natural-language-placeholder "例:来週" + :ui/delete "削除" + :ui/deleted "削除済み" + :ui/dont-remind-me-again "今後表示しない" + :ui/empty "空" + :ui/error "エラー" + :ui/error-boundary-error "UIでエラーが発生しました!\n {1}" + :ui/export "エクスポート" + :ui/false "偽" + :ui/fix "修正する!" + :ui/frequently-used "よく使う" + :ui/from "から: " + :ui/host "ホスト" + :ui/image "画像" + :ui/label "ラベル" + :ui/link "リンク" + :ui/load-more "さらに読み込む" + :ui/loading "読み込み中" + :ui/login "ログイン" + :ui/logout "ログアウト" + :ui/off "オフ" + :ui/on "オン" + :ui/open "開く" + :ui/open-named "{1}を開く" + :ui/port "ポート" + :ui/refresh "更新" + :ui/relaunch-confirm "この変更を適用するにはアプリの再起動が必要です。今すぐ再起動しますか?" + :ui/remove-background "背景を削除" + :ui/reset "リセット" + :ui/run "実行" + :ui/save "保存" + :ui/show-less "表示を減らす" + :ui/show-more "さらに表示" + :ui/skip "スキップ" + :ui/submit "送信" + :ui/to "まで: " + :ui/toggle-theme "テーマを切替" + :ui/true "真" + :ui/type "タイプ" + :ui/untitled "無題" + :ui/use-current-time "現在の時刻を使う" + :ui/yes "はい" + + :updater/checking-for-updates "アップデートを確認しています" + :updater/downloading-progress "アップデートをダウンロードしています({1}%)" + :updater/quit-and-install "再起動してインストール" + :updater/up-to-date "アプリが更新されました 🎉" + :updater/update-available "アップデートがあります" + :updater/update-error "⚠️ なにか問題が発生しました\n{1} をご確認ください。" + :updater/update-ready-to-install "アップデートをインストールできます" + + :view/add-new-view "新しいビューを追加" + :view/all "すべて" + :view/export-edn "EDNをエクスポート" + :view/linked-references "リンクされた参照" + :view/new "新規" + :view/new-property "新しいプロパティ" + :view/new-view "新しいビュー" + :view/rename "名前を変更" + :view/results "結果:" + :view/unlinked-references "リンクされていない参照" + + :view.filter/custom-date "カスタム日付" + :view.filter/empty "空" + :view.filter/filter "フィルター" + :view.filter/from "開始" + :view.filter/is-empty "空である" + :view.filter/is-not-empty "空でない" + :view.filter/match "一致" + :view.filter/match-all-filters "すべてのフィルターに一致" + :view.filter/match-any-filter "いずれかのフィルターに一致" + :view.filter/operator-after "以降" + :view.filter/operator-before "以前" + :view.filter/operator-between "範囲内" + :view.filter/operator-date-after "日付が以降" + :view.filter/operator-date-before "日付が以前" + :view.filter/operator-is "である" + :view.filter/operator-is-not "でない" + :view.filter/operator-text-contains "テキストを含む" + :view.filter/operator-text-not-contains "テキストを含まない" + :view.filter/or "または" + :view.filter/relative-1-day-ago "1日前" + :view.filter/relative-1-month-ago "1ヶ月前" + :view.filter/relative-1-week-ago "1週間前" + :view.filter/relative-1-year-ago "1年前" + :view.filter/relative-3-days-ago "3日前" + :view.filter/relative-3-months-ago "3ヶ月前" + :view.filter/to "終了" + :view.filter/type-to-search "入力して検索" + + :view.table/ascending "昇順" + :view.table/columns-visibility "列の表示" + :view.table/default-title "{1} ノード" + :view.table/delete-sort "ソートを削除" + :view.table/descending "降順" + :view.table/drag-to-reorder "ドラッグで並び替え" + :view.table/group-by "グループ分け" + :view.table/group-journal-date "ジャーナル日付" + :view.table/group-page-created-date "ページ作成日" + :view.table/group-page-name "ページ名" + :view.table/group-page-updated-date "ページ更新日" + :view.table/live-query-title "ライブクエリ ({1})" + :view.table/name-column "名前" + :view.table/no-group-value "{1}なし" + :view.table/page "ページ" + :view.table/pages "ページ" + :view.table/pin "固定" + :view.table/row-number "行番号" + :view.table/select-all "すべて選択" + :view.table/select-column "列を選択" + :view.table/select-order "順序を選択" + :view.table/select-row "行を選択" + :view.table/selected-count "選択済み: {1}" + :view.table/sort-ascending "昇順" + :view.table/sort-descending "降順" + :view.table/sort-groups-by "グループの並び替え基準" + :view.table/sort-groups-order "グループの並び順" + :view.table/total-refs-count "参照数合計" + :view.table/unpin "固定解除" - :keymap/all "全て" - :keymap/disabled "無効" - :keymap/unset "未定義" - :keymap/custom "カスタム" - :keymap/keystroke-filter "キーを打鍵して絞り込む" - :window/minimize "最小化" - :window/maximize "最大化" - :window/restore "復元" :window/close "閉じる" :window/exit-fullscreen "フルスクリーンを終了" + :window/maximize "最大化" + :window/minimize "最小化" + :window/restore "復元" - :header/toggle-left-sidebar "左サイドバーを開閉" - :header/search "検索" - :header/more "もっと見る" - :header/go-back "戻る" - :header/go-forward "進む" - :command.pdf/next-page "PDF:現在のPDF文書で次のページへ" - :command.pdf/previous-page "PDF:現在のPDF文書で前のページへ" - :command.pdf/close "PDF:現在のPDF文書を閉じる" - :command.pdf/find "PDF:現在のPDF文書を検索" - :command.auto-complete/complete "自動補完:項目を選択" - :command.auto-complete/prev "自動補完:前の項目を選択" - :command.auto-complete/next "自動補完:次の項目を選択" - :command.auto-complete/shift-complete "自動補完:選択した項目をサイドバーで開く" - :command.cards/toggle-answers "カード:答えや穴埋めを表示/隠す" - :command.editor/escape-editing "編集をやめる" - :command.editor/backspace "前の文字を削除" - :command.editor/delete "次の文字を削除" - :command.editor/new-block "新しいブロック" - :command.editor/new-line "新しい行" - :command.editor/follow-link "リンクを開く" - :command.editor/open-link-in-sidebar "サイドバーでリンクを開く" - :command.editor/bold "太字" - :command.editor/italics "斜体" - :command.editor/highlight "ハイライト" - :command.editor/strike-through "打ち消し線" - :command.editor/clear-block "ブロックをクリア" - :command.editor/kill-line-before "行中のカーソル位置から前を削除" - :command.editor/copy-embed "現在のブロックを指すブロック埋め込みをコピー" - :command.editor/kill-line-after "行中のカーソル位置から先を削除" - :command.editor/beginning-of-block "カーソルをブロックのはじめへ移動" - :command.editor/end-of-block "カーソルをブロックの最後へ移動" - :command.editor/forward-word "カーソルを次の単語へ移動" - :command.editor/backward-word "カーソルを前の単語へ移動" - :command.editor/forward-kill-word "次の単語を削除" - :command.editor/backward-kill-word "前の単語を削除" - :command.editor/paste-text-in-one-block-at-point "カーソル位置へ文字列として貼り付け" - :command.editor/insert-youtube-timestamp "YouTubeのタイプスタンプを挿入" - :command.editor/cycle-todo "現在の項目の TODO 状態を循環させる" - :command.editor/up "カーソル上移動 / 上を選択" - :command.editor/down "カーソル下移動 / 下を選択" - :command.editor/left "カーソル左移動 / 左を選択" - :command.editor/right "カーソル右移動 / 右を選択" - :command.editor/select-up "上のコンテンツを選ぶ" - :command.editor/select-down "下のコンテンツを選ぶ" - :command.editor/move-block-up "ブロックを上へ移動" - :command.editor/move-block-down "ブロックを下へ移動" - :command.editor/open-edit "選択したブロックを編集" - :command.editor/select-block-up "上のブロックを選択" - :command.editor/select-block-down "下のブロックを選択" - :command.editor/delete-selection "選択したブロックを削除" - :command.editor/expand-block-children "子ブロックを展開する" - :command.editor/collapse-block-children "子ブロックを折り畳む" - :command.editor/toggle-block-children "展開する/折り畳む" - :command.editor/indent "インデント" - :command.editor/outdent "アウトデント" - :command.editor/copy "コピー" - :command.editor/copy-text "選択範囲を文字列としてコピー" - :command.editor/cut "切り取り" - :command.editor/undo "元に戻す" - :command.editor/redo "やり直し" - :command.editor/insert-link "リンク挿入" - :command.editor/select-all-blocks "全てのブロックを選択" - :command.editor/select-parent "親ブロックを選択" - :command.editor/zoom-in "ズームイン" - :command.editor/zoom-out "ズームアウト" - :command.editor/toggle-number-list "数字付きリスト/通常のリストへ切り替え" - :command.ui/toggle-brackets "ブラケットの表示/非表示" - :command.go/electron-find-in-page "ページ内で文字列検索" - :command.go/electron-jump-to-the-next "文字列検索で次を検索" - :command.go/electron-jump-to-the-previous "文字列検索で前を検索" - :command.go/search "検索" - :command.command-palette/toggle "検索コマンド" - :command.go/search-in-page "ページ内のブロックを検索" - :command.go/journals "日誌" - :command.go/backward "戻る" - :command.go/forward "前へ" - :command.search/re-index "インデックス再構築" - :command.sidebar/open-today-page "今日の日誌を右サイドバーで開く" - :command.sidebar/close-top "右サイドバーの一番上の項目を閉じる" - :command.sidebar/clear "右サイドバーの内容を全てクリア" - :command.misc/copy "コピー" - :command.graph/export-as-html "公開グラフのページをHTMLとしてエクスポート" - :command.graph/open "グラフを選択して開く" - :command.graph/remove "グラフを削除" - :command.graph/add "グラフを追加" - :command.command/run "Git コマンドを実行" - :command.go/home "ホームへ移動" - :command.go/all-graphs "全グラフへ移動" - :command.go/all-pages "全ページへ移動" - :command.go/graph-view "グラフビューへ移動" - :command.go/keyboard-shortcuts "キーボードショートカットへ移動" - :command.go/tomorrow "明日へ移動" - :command.go/next-journal "次の日誌へ移動" - :command.go/prev-journal "前の日誌へ移動" - :command.go/flashcards "フラッシュカードへ切り替え" - :command.ui/toggle-document-mode "ドキュメントモードの切り替え" - :command.ui/toggle-settings "設定を開く" - :command.ui/toggle-right-sidebar "右サイドバーを開閉" - :command.ui/toggle-left-sidebar "左サイドバーを開閉" - :command.ui/toggle-help "ヘルプの表示/非表示" - :command.ui/toggle-theme "テーマの切り替え" - :command.ui/toggle-contents "目次の開閉" - :command.command/toggle-favorite "お気に入りへ追加/削除" - :command.editor/copy-page-url "ページのURLをコピー" - :command.ui/toggle-wide-mode "ワイドモードの切り替え" - :command.ui/select-theme-color "利用可能なテーマ色を選択" - :command.ui/goto-plugins "プラグインへ" - :command.ui/install-plugins-from-file "プラグインをplugins.ednからインストール" - :command.editor/toggle-open-blocks "ブロック展開の切り替え(全てのブロックを折り畳む/展開する)" - :command.ui/clear-all-notifications "通知をすべてクリア" - :command.dev/show-block-data "(開発) ブロックのデータを表示" - :command.dev/show-block-ast "(開発) ブロックの抽象構文木の表示" - :command.dev/show-page-data "(開発) ページのデータを表示" - :command.window/close "ウィンドウを閉じる"} + :youtube/embed-first-reminder-mobile "まずYouTube動画を埋め込み、次にこのアイコンを使用してください。\n注意:モバイルでは、YouTube URLを直接貼り付けて埋め込み動画として使用できます。" + :youtube/player-not-ready "YouTubeプレーヤーはまだ準備できていません。" + :youtube/timestamps-not-available-mobile "YouTubeタイムスタンプはまだモバイルで利用できません。" + + :zotero/attachments "添付ファイル" + :zotero/imported-file-warning "これは Zotero からインポートされたファイルです、Logseq でファイルを開くには Zotero データディレクトリ を設定してください。" + :zotero/linked-file-warning "これは Zotero にリンクされたファイルです、Logseq でファイルを開くには Zotero リンク添付ファイルのベースディレクトリ を設定してください。" + :zotero/notes "ノート" +} diff --git a/src/resources/dicts/ko.edn b/src/resources/dicts/ko.edn index 2c5814f156..8451131436 100644 --- a/src/resources/dicts/ko.edn +++ b/src/resources/dicts/ko.edn @@ -1,323 +1,1861 @@ -{:help/start "시작" - :help/about "Logseq에 대하여" - :help/roadmap "로드맵" - :help/bug "오류 제보" - :help/feature "기능 제안" - :help/changelog "변경 사항" - :help/blog "Logseq 블로그" - :help/docs "안내 문서" - :help/privacy "개인정보 보호정책" - :help/terms "약관" - :help/shortcuts "키보드 단축키" - :help/shortcuts-triggers "트리거" - :help/shortcut "단축키" - :help/slash-autocomplete "Slash 자동 완성" - :help/reference-autocomplete "페이지 참조 자동 완성" - :help/block-reference "블록 참조" - :help/open-link-in-sidebar "사이드바에서 링크 열기" - :help/context-menu "블록 컨텍스트 메뉴" - :help/markdown-syntax "Markdown 문법" - :bold "볼드체" - :italics "이탤릭체" - :highlight "하이라이트" - :strikethrough "취소선" - :code "코드" - :right-side-bar/help "도움말" - :right-side-bar/switch-theme "테마 모드" - :right-side-bar/contents "콘텐츠" - :right-side-bar/page-graph "페이지 그래프" - :right-side-bar/block-ref "블록 참조" - :right-side-bar/graph-view "그래프 뷰" - :right-side-bar/flashcards "플래시 카드" - :left-side-bar/journals "일지" - :left-side-bar/nav-favorites "즐겨찾기" - :left-side-bar/nav-recent-pages "최근 페이지" - :page/make-public "출판 전 공개 상태로 만들기" - :page/make-private "비공개 상태로 만들기" - :page/delete "페이지 삭제" - :page/add-to-favorites "즐겨찾기에 추가" - :page/unfavorite "즐겨찾기에서 삭제" - :block/name "페이지 이름" - :page/copy-page-url "페이지 URL 복사" - :file/name "파일 이름" - :file/last-modified-at "마지막 편집 시간:" - :file/no-data "데이터 없음" - :file/format-not-supported "확장자 .{1} 형태의 파일은 지원되지 않습니다." - :page/created-at "생성 시간:" - :page/updated-at "수정 시간:" - :page/backlinks "역링크" - :editor/block-search "블록 검색" - :text/image "이미지" - :asset/confirm-delete "정말 {1} 을/를 삭제하겠습니까?" - :asset/physical-delete "파일 또한 삭제 (복구 불가능)" - :editor/copy "복사" - :editor/cut "잘라내기" - :content/copy-block-ref "블록 주소 복사" - :content/open-in-sidebar "사이드바에서 열기" - :content/click-to-edit "클릭하여 수정" - :settings-page/edit-config-edn "config.edn 수정" - :settings-page/edit-custom-css "custom.css 수정" - :settings-page/edit-export-css "export.css 수정" - :settings-page/custom-configuration "사용자 설정" - :settings-page/custom-theme "사용자 테마" - :settings-page/export-theme "웹 배포 테마" - :settings-page/show-brackets "대괄호 표시" - :settings-page/spell-checker "문법 검사" - :settings-page/auto-updater "자동 업데이트" - :settings-page/disable-sentry "사용 통계와 분석을 Logseq에 전송" - :settings-page/preferred-outdenting "논리적 아웃덴팅" - :settings-page/custom-date-format "선호하는 날짜 형식" - :settings-page/enable-shortcut-tooltip "단축키 툴팁 활성화" - :settings-page/enable-tooltip "툴팁 활성화" - :settings-page/enable-journals "일지 활성화" - :settings-page/enable-all-pages-public "출판할 때 모든 페이지 공개로 설정" - :settings-page/home-default-page "기본 홈 페이지 설정" - :settings-page/clear-cache "캐시 지우기" - :settings-page/clear "지우기" - :settings-page/developer-mode "개발자 모드" - :settings-page/developer-mode-desc "개발자 모드는 컨트리뷰터와 확장 프로그램 개발자들이 Logseq과의 연동을 더 쉽고 효율적으로 테스트할 수 있게 도와줍니다." - :settings-page/current-version "현재 버전" - :settings-page/tab-general "일반" - :settings-page/tab-editor "에디터" - :settings-page/tab-advanced "고급" - :settings-page/plugin-system "플러그인 시스템" - :settings-page/network-proxy "네트워크 프록시" - :yes "예" - :cancel "취소" - :close "닫기" - :delete "삭제" - :save "저장" - :type "타입" - :host "호스트" - :port "포트" - :graph "그래프" - :export "내보내기" - :export-graph "그래프 내보내기" - :export-page "페이지 내보내기" - :export-markdown "표준 Markdown으로 내보내기 (블록 속성 미포함)" - :export-public-pages "공개 페이지 내보내기" - :all-graphs "모든 그래프" - :all-files "모든 파일" - :all-journals "모든 일지" - :settings "설정" - :settings-of-plugins "플러그인 설정" - :plugins "플러그인" - :themes "테마" - :relaunch-confirm-to-work "완료하려면 앱을 재시작해야 합니다. 지금 재시작하시겠습니까?" - :import "불러오기" - :help-shortcut-title "다른 단축키와 도움말 확인하기" - :login "로그인" - :logout "로그아웃" - :download "다운로드" - :language "언어" - :remove-background "배경 제거" +{ + :account/authentication "인증" + :account/benefits-desc "Logseq 계정이 있으면 Logseq Sync 및 알파/베타 기능과 같은 클라우드 기반 서비스를 이용할 수 있습니다." + :account/billing "결제" + :account/billing-expired-on-label "Pro 플랜 만료일: {1}" + :account/billing-expires-on-label "Pro 플랜 만료 예정일: {1}" + :account/billing-next-date-label "다음 결제일: {1}" + :account/core-features "Logseq 핵심 기능 이용" + :account/current-plan "현재 플랜" + :account/delete-account "계정 삭제" + :account/discover-sync-desc "{1}의 강력한 기능을 경험해 보세요" + :account/early-access-alpha-beta "알파/베타 기능 조기 체험" + :account/first-name "이름" + :account/free-plan-sync-limit "동기화 그래프 1개 (최대 50MB, 노트만 해당)" + :account/last-name "성" + :account/manage-plan "플랜 관리" + :account/month "월" + :account/no-asset-syncing "자산 동기화 불가" + :account/open-invoices "청구서 열기" + :account/plan-free "무료" + :account/plan-free-summary "기본 동기화로 시작하기" + :account/plan-pro "Pro" + :account/plan-pro-summary "고급 동기화 및 추가 기능 잠금 해제" + :account/pro-plan-sync-limit "동기화 그래프 10개 (각 최대 5GB)" + :account/profile "프로필" + :account/refresh-token-warning "토큰 갱신: 비정상 상태" + :account/reset-password "비밀번호 재설정" + :account/sign-up "가입" + :account/sync-assets-limit "파일당 최대 100MB 자산 동기화" + :account/synced-status "동기화됨" + :account/unlimited-unsynced-graphs "비동기화 그래프 무제한" + :account/upcoming-cloud-features "Logseq Publish를 포함한 클라우드 기반 기능 출시 예정" + :account/upgrade-plan "플랜 업그레이드" + :account/username "사용자 이름" - :help/shortcut-page-title "키보드 단축키" - - :plugin/installed "설치됨" - :plugin/not-installed "설치되지 않음" - :plugin/installing "설치 중" - :plugin/install "설치" - :plugin/reload "다시 불러오기" - :plugin/update "업데이트" - :plugin/check-update "업데이트 확인" - :plugin/check-all-updates "모든 업데이트 확인" - :plugin/refresh-lists "리스트 새로고침" - :plugin/enabled "활성화됨" - :plugin/disabled "비활성화됨" - :plugin/update-available "업데이트 가능" - :plugin/updating "업데이트 중" - :plugin/uninstall "설지 제거" - :plugin/marketplace "마켓플레이스" - :plugin/downloads "다운로드" - :plugin/stars "스타" - :plugin/all "전체" - :plugin/unpacked "압축 해제됨" - :plugin/delete-alert "다음 [{1}] 플러그인을 삭제하시겠습니까?" - :plugin/open-settings "설정 열기" - :plugin/open-package "패키지 열기" - :plugin/load-unpacked "압축 해제된 플러그인 불러오기" - :plugin/restart "앱 다시 시작" - :plugin/unpacked-tips "플러그인 디렉토리 열기" - :plugin/contribute "✨ 새 플러그인을 만들고 기여하기" - :plugin/custom-js-alert "custom.js 파일을 감지했습니다. 실행을 허용하겠습니까? (파일의 내용을 이해하지 못한다면 보안과 안전 상의 이유로 실행하지 않는 것이 권장됩니다." - - :pdf/copy-ref "참조 복사하기" - :pdf/copy-text "텍스트 복사하기" - :pdf/linked-ref "링크된 참조" - :pdf/toggle-dashed "영역 하이라이트를 위해 Dashed style 사용" - :pdf/hl-block-colored "색상으로 강조된 블록입니다" - :pdf/auto-open-context-menu "자동으로 컨텍스트 메뉴를 엽니다" - :pdf/doc-metadata "메타데이터" - - :updater/new-version-install "새 버전이 다운로드되었습니다." - :updater/quit-and-install "다시 시작하여 설치하십시오." - - :select/default-prompt "하나를 선택하십시오" - :select.graph/prompt "그래프를 선택하십시오." - :select.graph/empty-placeholder-description "일치하는 그래프가 없습니다. 새로 추가하시겠습니까?" - :select.graph/add-graph "네, 새 그래프를 추가합니다" - - :auto-heading "자동 헤딩" - :heading "헤딩 {1}" - :importing "불러오는 중" - :remove-heading "헤딩 제거" - :untitled "제목 없음" - :accessibility/skip-to-main-content "메인 컨텐츠로 건너뛰기" - :asset/copy "이미지 복사" + :asset/acceptable-file-extensions "허용되는 파일 확장자" + :asset/add-assets "자산 추가" + :asset/add-directory "디렉터리 추가" + :asset/alias-already-exists "\"{1}\"의 별칭이 이미 존재합니다!" + :asset/alias-directories "별칭 디렉터리" + :asset/alias-directory-path-label "디렉터리 경로:" + :asset/alias-name-dialog-title "선택한 디렉터리의 별칭을 입력하세요." + :asset/alias-name-label "별칭:" + :asset/alias-name-placeholder "예: Books" + :asset/align "정렬" + :asset/align-center "가운데 정렬" + :asset/align-left "왼쪽 정렬" + :asset/align-right "오른쪽 정렬" + :asset/already-exists "자산이 이미 존재합니다. 제목: {1}, 노드 참조: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "자신의 속성으로 부모를 임베드할 수 없습니다" + :asset/confirm-delete-image "이 이미지를 삭제하시겠습니까?" + :asset/copy "에셋 복사" + :asset/copy-image-unsupported-extension "{1} 파일은 이미지 복사를 지원하지 않습니다" + :asset/create-local-copy-warning "외부 자산에서 로컬 자산을 생성합니다. PDF 주석이 제대로 작동하려면 로컬 자산이 필요합니다." + :asset/create-title "자산 만들기" :asset/delete "이미지 삭제" - :asset/maximize "이미지 최대화" - :asset/open-in-browser "이미지 브라우저에서 열기" - :asset/show-in-folder "이미지 폴더에서 열기" + :asset/downloading "다운로드 중" + :asset/drop-hint "여기에 파일을 끌어다 놓거나 클릭하여 파일을 선택하세요" + :asset/edit-title "자산 편집" + :asset/external-url-label "자산 외부 URL:" + :asset/file-extension-placeholder "예: mp3" + :asset/maximize "최대화" + :asset/open-in-browser "브라우저에서 열기" + :asset/physical-delete "파일 또한 삭제 (복구 불가능)" + :asset/ref-block "블록 참조" + :asset/select-file "자산 파일 선택" + :asset/select-from-disk "디스크에서 선택" + :asset/selected-directories "선택된 디렉터리:" + :asset/show-file-in-folder "파일을 폴더에서 보기" + :asset/size-too-large "에셋 크기가 너무 큽니다" + :asset/syncing "동기화 중" + :asset/title-label "자산 제목:" + :asset/transfer-placeholder "{1}개 에셋 이동 중..." + :asset/uploading "업로드 중" + + :block/click-to-fix-query "클릭하여 쿼리 수정: {1}" + :block/copy-ref "블록 주소 복사" + :block/copy-url "블록 URL 복사" + :block/created-label "생성일: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex'는 더 이상 지원되지 않습니다. '/Math block' 명령을 대신 사용하세요." + :block/deprecated-query-syntax "#+BEGIN_QUERY는 더 이상 지원되지 않습니다. '/Advanced Query' 명령을 대신 사용하세요." + :block/deprecated-quote "#+BEGIN_QUOTE는 더 이상 지원되지 않습니다. '/Quote' 명령을 대신 사용하세요." + :block/empty-url "빈 URL" + :block/excalidraw-no-longer-supported "Excalidraw는 더 이상 기본적으로 지원되지 않으며, 플러그인을 통해 지원할 예정입니다." + :block/extraction-error "블록 추출 오류" + :block/hide-query "쿼리 숨기기" + :block/invalid-hiccup "잘못된 hiccup" + :block/invalid-link "잘못된 링크" + :block/invalid-url "잘못된 URL" + :block/large-block-warning "큰 블록은 앱 속도 저하를 방지하기 위해 편집 및 검색이 불가능합니다. 다른 편집기를 사용하여 이 블록을 편집해 주세요." + :block/last-edited-label "최종 편집일: {1}" + :block/not-found-warning "블록을 찾을 수 없습니다" + :block/open-block-references "블록 참조 열기" + :block/practice "연습" + :block/practice-cards "카드 연습" + :block/ref-nesting-too-deep "블록 참조 중첩이 너무 깊습니다" + :block/remove-tag "태그 제거" + :block/remove-this-tag "이 태그 제거" + :block/render-error "블록 렌더링 오류:" + :block/set-query "쿼리 설정" + :block/set-query-label "쿼리 설정:" + :block/sort-order "정렬 순서" + :block/status-history "상태 이력" + :block/untitled-query "제목 없는 쿼리" + + :block.macro/embed-deprecated "{{embed}}는 더 이상 사용되지 않습니다. 대신 '/노드 포함' 명령을 사용하세요." + :block.macro/namespace-deprecated "{{namespace}}는 더 이상 사용되지 않습니다. 대신 {1} 기능을 사용하세요." + :block.macro/query-deprecated "{{query}}는 더 이상 사용되지 않습니다. 대신 '/쿼리' 명령을 사용하세요." + :block.macro/unsupported-name "지원되지 않는 매크로 이름: {1}" + + :block.reaction/emoji-required-warning "이모지가 필요합니다" + :block.reaction/unsupported-emoji-warning "지원되지 않는 리액션 이모지" + + :bug-report/desc "버그 보고서를 제출해 도움을 주시면 감사하겠습니다. 가능한 빨리 해결하겠습니다." + :bug-report/title "버그 보고" + + :bug-report.clipboard/action-desc "클립보드 데이터를 검사하고 수정합니다" + :bug-report.clipboard/action-title "클립보드 도우미" + :bug-report.clipboard/desc "추가 정보를 제공할 때 이 도구들이 유용합니다." + :bug-report.clipboard/title "발견한 버그가 이 기능과 관련이 있나요?" + + :bug-report.inspector/back "뒤로" + :bug-report.inspector/clipboard-desc "클립보드에서 읽은 데이터입니다." + :bug-report.inspector/copied "클립보드에 복사했습니다!" + :bug-report.inspector/copy "결과 복사" + :bug-report.inspector/copy-desc "공유할 준비가 되면 복사 버튼을 클릭하세요." + :bug-report.inspector/create-issue "이슈 생성" + :bug-report.inspector/create-issue-desc "이제 클립보드에 붙여 넣은 결과를 보고할 수 있습니다. 결과를 'Additional Context' 섹션에 붙여 넣고 원본 내용을 어디에서 복사했는지 적어 주세요. 감사합니다!" + :bug-report.inspector/desc "{1}를 눌러 클립보드 데이터를 확인하세요\n모바일을 사용 중이라면 여기를 클릭하여 붙여넣기 하세요" + :bug-report.inspector/placeholder "모바일 기기를 사용 중이라면 여기를 길게 누르세요" + :bug-report.inspector/tip "문제가 있으신가요? 괜찮습니다. 클릭하면 이전 단계로 돌아갈 수 있습니다." + :bug-report.inspector/title "클립보드 데이터 검사" + + :bug-report.issue/action-desc "여러분의 도움으로 Logseq가 더 좋아집니다!" + :bug-report.issue/action-title "버그 보고서 제출" + :bug-report.issue/desc "추가 정보 수집 도구를 사용할 수 없는 경우 직접 버그를 보고해 주세요." + :bug-report.issue/report-link "문제 보고" + :bug-report.issue/title "또는..." + + :class/add-property "태그 속성 추가" + :class/tag-properties-desc "태그 속성은 해당 태그를 사용하는 모든 노드에 상속됩니다. 예를 들어 각 #Task 노드는 'Status'와 'Priority'를 상속합니다。" + :class/tagged-nodes "태그된 노드" + + :class.built-in/asset "자산" + :class.built-in/card "카드" + :class.built-in/cards "카드" + :class.built-in/code-block "코드" + :class.built-in/journal "저널" + :class.built-in/math-block "수학" + :class.built-in/page "페이지" + :class.built-in/pdf-annotation "PDF 주석" + :class.built-in/property "속성" + :class.built-in/query "쿼리" + :class.built-in/quote-block "인용" + :class.built-in/root "루트 태그" + :class.built-in/tag "태그" + :class.built-in/task "작업" + :class.built-in/template "템플릿" + :class.built-in/whiteboard "화이트보드" + + :class.validation/built-in-extends-change "내장 항목의 상속 관계는 변경할 수 없습니다." + :class.validation/cant-add-tag-on-built-in "내장된 \"{1}\"에 태그를 추가할 수 없습니다." + :class.validation/cant-remove-private-tags "비공개 태그를 제거할 수 없습니다: {1}." + :class.validation/cant-remove-tag-built-in "#{1}이 내장된 태그를 제거할 수 없습니다." + :class.validation/cant-remove-tag-on-built-in "내장된 \"{1}\"에서 태그를 제거할 수 없습니다." + :class.validation/cant-set-tag-built-in "내장된 #{1}로는 태그를 설정할 수 없습니다." + :class.validation/duplicate "태그 '{1}'이(가) 이미 존재합니다." + :class.validation/extends-cycle "상속 관계에 순환이 발생했습니다." + :class.validation/invalid-extends-type "유효하지 않은 상속 유형입니다." + :class.validation/parents-must-be-tags "태그의 부모는 태그여야 합니다." + :class.validation/tag-with-non-tag "\"{1}\" 태그가 아닌 내장 페이지에는 태그를 설정할 수 없습니다." + + :cmdk.action/apply-theme "테마 적용" + :cmdk.action/copy-ref "참조 복사" + :cmdk.action/create "만들기" + :cmdk.action/filter "필터" + :cmdk.action/open "열기" + :cmdk.action/open-in-sidebar "사이드바에서 열기" + :cmdk.action/search "검색" + :cmdk.action/trigger "실행" + + :cmdk.create/configure-tag "태그 설정" + :cmdk.create/page "페이지 만들기" + :cmdk.create/tag "태그 만들기" + + :cmdk.error/no-block-link "이 블록 내용에 링크가 없습니다." + :cmdk.error/no-page-link "이 페이지 속성에 링크가 없습니다." + :cmdk.error/no-search-item-link "이 검색 항목에 링크가 없습니다." + + :cmdk.filter/add "필터 추가" + :cmdk.filter/codes "코드만 검색" + :cmdk.filter/commands "명령만 검색" + :cmdk.filter/current-page "현재 페이지만" + :cmdk.filter/files "파일만" + :cmdk.filter/nodes "노드만" + :cmdk.filter/only-label "검색만:" + :cmdk.filter/themes "테마만 검색" + + :cmdk.group/codes "코드" + :cmdk.group/commands "명령" + :cmdk.group/create "만들기" + :cmdk.group/current-page "현재 페이지" + :cmdk.group/files "파일" + :cmdk.group/filters "필터" + :cmdk.group/nodes "노드" + :cmdk.group/recently-updated "최근 업데이트" + :cmdk.group/themes "테마" + + :cmdk.info/configure-tag "#{1} 설정" + :cmdk.info/create-page "페이지 '{1}' 만들기" + :cmdk.info/create-tag "태그 '{1}' 만들기" + + :cmdk.input/add-graph-filter-placeholder "그래프 필터 추가" + :cmdk.input/default-placeholder "무엇을 찾으시나요?" + :cmdk.input/move-blocks-placeholder "블록 이동" + :cmdk.input/type-page-name-placeholder "만들 페이지 이름 입력" + + :cmdk.tip/clear-filter "{1}을 눌러 검색 필터 지우기" + :cmdk.tip/filter-results "{1}을 눌러 검색 결과 필터링" + :cmdk.tip/label "팁:" + :cmdk.tip/open-sidebar "{1}을 눌러 사이드바에서 검색 열기" + + :collaboration/email-address "이메일 주소" + :collaboration/invite "초대" + :collaboration/members "멤버:" + :collaboration/remove-access "접근 권한 제거" + :collaboration/remove-access-error "멤버 제거에 실패했습니다" + :color/blue "파란색" + :color/crimson "진홍색" + :color/cyan "시안" + :color/grass "잔디색" :color/gray "회색" :color/green "초록색" + :color/indigo "남색" + :color/orange "주황색" :color/pink "분홍색" + :color/plum "자두색" :color/purple "보라색" :color/red "빨간색" + :color/teal "청록색" + :color/tomato "토마토색" + :color/violet "보라색" :color/yellow "노란색" + + :command.auto-complete/complete "자동완성: 현재 항목 선택" + :command.auto-complete/meta-complete "메타 완성" + :command.auto-complete/next "자동완성: 다음 항목" + :command.auto-complete/prev "자동완성: 이전 항목" + :command.auto-complete/shift-complete "자동완성: 사이드바에서 열기" + + :command.command-palette/toggle "명령 팔레트 전환" + + :command.editor/add-property "속성 추가" + :command.editor/add-property-deadline "마감일 속성 추가" + :command.editor/add-property-icon "아이콘 속성 추가" + :command.editor/add-property-priority "우선순위 속성 추가" + :command.editor/add-property-status "상태 속성 추가" + :command.editor/add-reaction "리액션 추가" + :command.editor/backspace "뒤로 삭제" + :command.editor/backward-kill-word "앞 단어 삭제" + :command.editor/backward-word "이전 단어로 이동" + :command.editor/beginning-of-block "블록 처음으로 이동" + :command.editor/bold "굵게" + :command.editor/clear-block "블록 내용 지우기" + :command.editor/collapse-block-children "접기" + :command.editor/copy "복사" + :command.editor/copy-embed "임베드 블록 복사" + :command.editor/copy-page-url "페이지 URL 복사" + :command.editor/copy-text "선택한 텍스트 복사" + :command.editor/cut "잘라내기" + :command.editor/cycle-todo "TODO 상태 전환" + :command.editor/delete "앞으로 삭제" + :command.editor/delete-selection "선택 블록 삭제" + :command.editor/down "아래로 이동" + :command.editor/end-of-block "블록 끝으로 이동" + :command.editor/escape-editing "편집 종료" + :command.editor/expand-block-children "펼치기" + :command.editor/follow-link "커서 아래 링크 따라가기" + :command.editor/forward-kill-word "다음 단어 삭제" + :command.editor/forward-word "다음 단어로 이동" + :command.editor/highlight "형광펜" + :command.editor/indent "들여쓰기" + :command.editor/insert-link "HTML 링크" + :command.editor/insert-youtube-timestamp "YouTube 타임스탬프 삽입" + :command.editor/italics "기울임" + :command.editor/jump "블록으로 이동" + :command.editor/kill-line-after "커서 오른쪽 줄 삭제" + :command.editor/kill-line-before "커서 왼쪽 줄 삭제" + :command.editor/left "왼쪽으로 이동" + :command.editor/move-block-down "블록 아래로 이동" + :command.editor/move-block-up "블록 위로 이동" + :command.editor/move-blocks "블록 이동" + :command.editor/new-block "블록 만들기" + :command.editor/new-line "블록 내 줄바꿈" + :command.editor/open-edit "선택한 블록 편집" + :command.editor/open-link-in-sidebar "사이드바에서 열기" + :command.editor/open-selected-blocks-in-sidebar "선택한 블록을 사이드바에서 열기" + :command.editor/outdent "내어쓰기" + :command.editor/paste-text-in-one-block-at-point "블록의 지점에 텍스트 붙여넣기" + :command.editor/quick-add "빠른 추가" + :command.editor/redo "다시 실행" + :command.editor/right "오른쪽으로 이동" + :command.editor/select-all-blocks "모든 블록 선택" + :command.editor/select-block-down "아래 블록 선택" + :command.editor/select-block-up "위 블록 선택" + :command.editor/select-down "아래 내용 선택" + :command.editor/select-parent "부모 블록 선택" + :command.editor/select-up "위 내용 선택" + :command.editor/set-tags "태그 설정" + :command.editor/strike-through "취소선" + :command.editor/toggle-block-children "블록 하위 요소 접기/펼치기" + :command.editor/toggle-display-hidden-properties "숨겨진 속성 표시 전환" + :command.editor/toggle-number-list "번호 목록 전환" + :command.editor/toggle-open-blocks "모든 블록 접기/펼치기 전환 (비편집 상태)" + :command.editor/undo "실행 취소" + :command.editor/up "위로 이동" + :command.editor/zoom-in "확대" + :command.editor/zoom-out "축소" + + :command.go/all-graphs "모든 그래프" + :command.go/all-pages "모든 페이지" + :command.go/backward "뒤로" + :command.go/electron-find-in-page "페이지 내 텍스트 검색" + :command.go/electron-jump-to-the-next "다음 일치 항목으로 이동" + :command.go/electron-jump-to-the-previous "이전 일치 항목으로 이동" + :command.go/flashcards "플래시카드" + :command.go/forward "앞으로" + :command.go/graph-view "그래프 보기" + :command.go/home "홈" + :command.go/journals "저널로 이동" + :command.go/keyboard-shortcuts "키보드 단축키" + :command.go/next-journal "다음 저널" + :command.go/prev-journal "이전 저널" + :command.go/search "페이지 및 블록 검색" + :command.go/search-in-page "페이지 내 검색" + :command.go/search-themes "테마 검색" + :command.go/tomorrow "내일" + + :command.graph/add "그래프 추가" + :command.graph/db-add "데이터베이스: 그래프 추가" + :command.graph/db-save "데이터베이스: 그래프 저장" + :command.graph/export-as-html "공개 그래프를 HTML로 내보내기" + :command.graph/open "그래프 열기" + :command.graph/remove "그래프 제거" + + :command.misc/copy "복사" + :command.misc/export-block-data "블록 데이터 내보내기" + :command.misc/export-graph-ontology-data "그래프 온톨로지 데이터 내보내기" + :command.misc/export-page-data "페이지 데이터 내보내기" + :command.misc/import-edn-data "EDN 데이터 가져오기" + + :command.page/toggle-favorite "즐겨찾기 전환" + + :command.pdf/close "현재 PDF 닫기" + :command.pdf/find "PDF: 현재 PDF에서 텍스트 검색" + :command.pdf/next-page "PDF 다음 페이지" + :command.pdf/previous-page "PDF 이전 페이지" + + :command.publish/open-dialog "게시 대화상자 열기" + + :command.search/re-index "검색 인덱스 재구성" + + :command.shell/run "Git 명령 실행" + + :command.sidebar/clear "사이드바 비우기" + :command.sidebar/close-top "상단 사이드바 패널 닫기" + :command.sidebar/open-today-page "사이드바에서 오늘 페이지 열기" + + :command.ui/clear-all-notifications "모든 알림 지우기" + :command.ui/customize-appearance "외관 사용자 정의" + :command.ui/goto-plugins "플러그인" + :command.ui/highlight-recent-blocks "최근 블록 강조" + :command.ui/install-plugin-from-github "GitHub에서 플러그인 설치" + :command.ui/install-plugins-from-file "파일에서 플러그인 설치" + :command.ui/select-theme-color "테마 색상 선택" + :command.ui/toggle-brackets "괄호 표시 전환" + :command.ui/toggle-contents "목차 표시/숨기기" + :command.ui/toggle-document-mode "문서 모드 전환" + :command.ui/toggle-help "도움말 표시/숨기기" + :command.ui/toggle-left-sidebar "왼쪽 사이드바 전환" + :command.ui/toggle-right-sidebar "오른쪽 사이드바 전환" + :command.ui/toggle-settings "설정 표시/숨기기" + :command.ui/toggle-theme "다크/라이트 테마 전환" + :command.ui/toggle-wide-mode "와이드 모드 전환" + + :command.window/close "창 닫기" + + :context-menu/developer-tools "개발자 도구" + :context-menu/make-a-flashcard "플래시카드 만들기" + :context-menu/set-icon "아이콘 설정" + :context-menu/toggle-number-list "번호 목록 전환" + + :date/invalid-date-warning "{1}은(는) 유효한 날짜가 아닙니다. 다시 시도해 주세요" + + :date.nlp/last-friday "지난 금요일" + :date.nlp/last-monday "지난 월요일" + :date.nlp/last-month "지난 달" + :date.nlp/last-saturday "지난 토요일" + :date.nlp/last-sunday "지난 일요일" + :date.nlp/last-thursday "지난 목요일" + :date.nlp/last-tuesday "지난 화요일" + :date.nlp/last-wednesday "지난 수요일" + :date.nlp/last-week "지난 주" + :date.nlp/last-year "지난 해" + :date.nlp/next-friday "다음 금요일" + :date.nlp/next-monday "다음 월요일" + :date.nlp/next-month "다음 달" + :date.nlp/next-saturday "다음 토요일" + :date.nlp/next-sunday "다음 일요일" + :date.nlp/next-thursday "다음 목요일" + :date.nlp/next-tuesday "다음 화요일" + :date.nlp/next-wednesday "다음 수요일" + :date.nlp/next-week "다음 주" + :date.nlp/next-year "내년" + :date.nlp/this-friday "이번 금요일" + :date.nlp/this-monday "이번 월요일" + :date.nlp/this-month "이번 달" + :date.nlp/this-saturday "이번 토요일" + :date.nlp/this-sunday "이번 일요일" + :date.nlp/this-thursday "이번 목요일" + :date.nlp/this-tuesday "이번 화요일" + :date.nlp/this-wednesday "이번 수요일" + :date.nlp/this-week "이번 주" + :date.nlp/this-year "올해" + :date.nlp/today "오늘" + :date.nlp/tomorrow "내일" + :date.nlp/yesterday "어제" + + :deeplink/open-block-error "링크를 열 수 없습니다. 블록 ID `{1}`이(가) 현재 그래프에 존재하지 않습니다." + :deeplink/open-graph-error "그래프를 열 수 없습니다. 그래프 `{1}`이(가) 존재하지 않습니다." + :deeplink/open-page-error "링크를 열 수 없습니다. 페이지 `{1}`이(가) 현재 그래프에 존재하지 않습니다." + + :editor/add-content-first-warning "먼저 내용을 추가해 주세요." + :editor/auto-heading "자동 제목" + :editor/block-search "블록 검색" + :editor/click-to-edit "클릭하여 수정" + :editor/code-language-placeholder "언어 선택" + :editor/collapse-block-children "접기" + :editor/cut "잘라내기" + :editor/cycle-todo "TODO 상태 전환" + :editor/delete-selection "선택 삭제" + :editor/display-tag-inline-hint "이 태그를 이 노드의 끝이 아니라 인라인으로 표시합니다." + :editor/expand-block-children "펼치기" + :editor/heading "제목 {1}" + :editor/moving-blocks-count "{1}개 블록 이동 중" + :editor/new-page "새 페이지" + :editor/new-tag "새 태그" + :editor/no-block-selected-warning "블록이 선택되지 않았습니다" + :editor/paste "붙여넣기" + :editor/reference-node-use-page-ref "노드를 참조하려면 `[[]]`를 사용하세요." + :editor/remove-heading "제목 제거" + :editor/search-for-node "노드 검색" + :editor/search-for-tag "태그 검색" + :editor/search-template-placeholder "템플릿 검색" + :editor/template-insert-error "템플릿 삽입 오류: {1}" + + :editor.document-mode/new-block-hint "{1}(으)로 새 블록 만들기" + :editor.document-mode/title "문서 모드" + :editor.document-mode/toggle-desc "`D`를 클릭하거나 {1}을 입력하여 문서 모드 전환" + + :editor.quick-add/add-to-today "오늘 페이지에 추가" + :editor.quick-add/title "빠른 추가" + + :editor.slash/advanced-query "고급 쿼리" + :editor.slash/advanced-query-desc "고급 쿼리 블록 만들기" + :editor.slash/calculator "계산기" + :editor.slash/calculator-desc "계산기 삽입" + :editor.slash/cloze "클로즈" + :editor.slash/code-block "코드 블록" + :editor.slash/code-block-desc "코드 블록 삽입" + :editor.slash/current-time "현재 시간" + :editor.slash/current-time-desc "현재 시간 삽입" + :editor.slash/date-picker "날짜 선택" + :editor.slash/date-picker-desc "날짜를 선택하여 여기에 삽입" + :editor.slash/embed-html "HTML 임베드" + :editor.slash/embed-twitter-tweet "트위터 트윗 임베드" + :editor.slash/embed-video-url "비디오 URL 임베드" + :editor.slash/embed-youtube-timestamp "YouTube 타임스탬프 임베드" + :editor.slash/group-advanced "고급" + :editor.slash/group-basic "기본" + :editor.slash/group-format "서식" + :editor.slash/group-heading "제목" + :editor.slash/group-list-type "목록 유형" + :editor.slash/group-plugins "플러그인" + :editor.slash/group-priority "우선순위" + :editor.slash/group-task-date "작업 날짜" + :editor.slash/group-task-status "작업 상태" + :editor.slash/group-time-and-date "시간 및 날짜" + :editor.slash/heading-label "제목 {1}" + :editor.slash/image-link "이미지 링크" + :editor.slash/image-link-desc "이미지로의 HTTP 링크 생성" + :editor.slash/link-desc "HTTP 링크 생성" + :editor.slash/math-block "수식 블록" + :editor.slash/math-block-desc "LaTeX 블록 생성" + :editor.slash/no-priority "우선순위 없음" + :editor.slash/node-embed "노드 임베드" + :editor.slash/node-embed-desc "여기에 노드 임베드" + :editor.slash/node-reference "노드 참조" + :editor.slash/node-reference-desc "노드(페이지 또는 블록)에 대한 백링크 생성" + :editor.slash/normal-text "일반 텍스트" + :editor.slash/normal-text-desc "제목을 지우고 일반 텍스트로 설정" + :editor.slash/number-children "자식 번호 매기기" + :editor.slash/number-list "번호 목록" + :editor.slash/priority-desc "우선순위를 {1}로 설정" + :editor.slash/priority-label "우선순위 {1}" + :editor.slash/query-function "쿼리 함수" + :editor.slash/query-function-desc "쿼리 함수 생성" + :editor.slash/quote-desc "인용문 블록 생성" + :editor.slash/status-desc "상태를 {1}로 설정" + :editor.slash/template-desc "생성된 템플릿을 여기에 삽입" + :editor.slash/today-desc "오늘 날짜 삽입" + :editor.slash/tomorrow-desc "내일 날짜 삽입" + :editor.slash/underline "밑줄" + :editor.slash/underline-desc "밑줄 텍스트 장식 생성" + :editor.slash/upload-asset "에셋 업로드" + :editor.slash/upload-asset-desc "이미지, PDF, DOCX 등의 파일 업로드" + :editor.slash/yesterday-desc "어제 날짜 삽입" + + :electron/about "Logseq에 대해" + :electron/add-to-dictionary "사전에 추가" + :electron/block-not-exist "링크 열기에 실패했습니다. 블록 ID `{1}` 가 그래프에 존재하지 않습니다." + :electron/cancel "취소" + :electron/copy-image "이미지 복사" + :electron/link-open-confirm "이 링크를 여시겠습니까?\n{1}" + :electron/link-open-failed-missing-graph "링크를 열 수 없습니다. 그래프가 없습니다." + :electron/link-open-failed-no-graph "링크 열기에 실패했습니다. 그래프 식별자 `{1}` 를 연결된 어떤 그래프와도 일치시킬 수 없습니다." + :electron/link-open-failed-no-target "링크 열기에 실패했습니다. `{1}` 를 어떤 대상과도 일치시킬 수 없습니다." + :electron/look-up "선택 항목 검색" + :electron/main-exception "[메인 프로세스 예외]\n{1}\n{2}" + :electron/new-window "새 창" + :electron/official-docs "공식 문서" + :electron/ok "확인" + :electron/open-dir-error "디렉토리를 열 수 없습니다: {1}" + :electron/save-image "이미지 저장" + :electron/save-image-as "다른 이름으로 이미지 저장" + :electron/search-with-google "Google에서 검색" + :electron/unimplemented-callback "구현되지 않은 x-callback-url 동작입니다: `{1}`." + :electron/version "버전 {1}" + :electron/write-file-error "파일 {1}에 쓰지 못했습니다, {2}." + :electron/write-file-error-with-backup "파일 {1}에 쓰지 못했습니다, {2}. 백업 파일이 {3}에 저장되었습니다." + + :encryption/cloud-password-rich (fn [] ["비밀번호를 분실하면 클라우드에 있는 데이터는 복호화할 수 없습니다. " [:span "그래도 그래프의 로컬 버전에는 계속 접근할 수 있습니다."]]) + :encryption/current-password "현재 비밀번호" + :encryption/enter-password "비밀번호 입력" + :encryption/enter-password-again "비밀번호 재입력" + :encryption/enter-password-title "비밀번호 입력" + :encryption/failed-to-force-reset-password "비밀번호 강제 초기화에 실패했습니다" + :encryption/failed-to-update-password "비밀번호 업데이트에 실패했습니다" + :encryption/fetch-key-pair-error "사용자 rsa-key-pair를 가져오는 중 오류: {1}" + :encryption/fetching-key-pair "키 쌍을 가져오는 중" + :encryption/force-reset-password "비밀번호 강제 초기화" + :encryption/force-reset-password-successfully "비밀번호를 강제 초기화했습니다" + :encryption/force-resetting-password "비밀번호 강제 초기화 중" + :encryption/forgot-password-question "비밀번호를 잊으셨나요?" + :encryption/forgot-password-warning "비밀번호를 잊으면 암호화된 데이터를 복구할 수 없습니다." + :encryption/init-key-pair "키 쌍 초기화" + :encryption/init-key-pair-error "초기화 키 쌍 오류: {1}" + :encryption/password-not-matched "비밀번호가 일치하지 않습니다" + :encryption/password-updated-successfully "비밀번호가 업데이트되었습니다" + :encryption/remember-password-rich (fn [] [[:span "설정한 비밀번호를 반드시 "] "기억해 두세요. 잊어버리면 저희가 재설정하거나 복구해 드릴 수 없으며, " [:span "안전한 백업을 "] "보관해 두는 것을 권장합니다."]) + :encryption/reset-password "비밀번호 재설정" + :encryption/set-new-password "새 비밀번호 설정" + :encryption/set-password-title "비밀번호 설정" + :encryption/updating-password "비밀번호 업데이트 중" + :encryption/wrong-password "비밀번호가 올바르지 않습니다" + + :export/backup-successful "백업에 성공했습니다!" + :export/block-data-copied "블록 데이터를 클립보드에 복사했습니다" + :export/collecting-assets "자산 수집 중" + :export/copied-to-clipboard "클립보드에 복사했습니다!" + :export/copy-or-export-as "복사/내보내기 형식" + :export/creating-zip "zip 파일 생성 중" + :export/db-backup-error "데이터베이스 백업에 실패했습니다. 내보내기에서 백업 폴더를 지정하세요." + :export/db-edn "EDN 파일 내보내기" + :export/debug-transit-desc "디버깅을 위해 .transit 파일로 내보냅니다. 민감한 데이터는 내보낸 파일에서 제거됩니다." + :export/debug-transit-file "디버그 transit 파일 내보내기" + :export/edn-desc "읽기 및 편집 가능한 .edn 파일로 내보냅니다. 기본 백업으로 사용하지 마세요." + :export/error-unexpected "내보내기 중 예기치 않은 오류가 발생했습니다. 자바스크립트 콘솔에서 자세한 내용을 확인하세요." + :export/exporting "내보내는 중" + :export/finalizing "마무리 중" + :export/format-text "텍스트" + :export/graph "그래프 내보내기" + :export/graph-ontology-data-copied "그래프 온톨로지 데이터를 클립보드에 복사했습니다" + :export/indent-style-dashes "대시" + :export/indent-style-label "들여쓰기 스타일:" + :export/indent-style-none "들여쓰기 없음" + :export/indent-style-spaces "공백" + :export/level-lte "레벨 <=" + :export/markdown "표준 Markdown으로 내보내기 (블록 속성 제외)" + :export/newline-after-block "블록 뒤 줄바꿈" + :export/no-updates-since-last-export "이전 내보내기 이후 그래프에 업데이트가 없습니다." + :export/open-blocks-only "펼친 블록만 (접힌 하위 블록 건너뛰기)" + :export/page "페이지 내보내기" + :export/page-data-copied "페이지 데이터를 클립보드에 복사했습니다" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "zip 준비 중" + :export/preview-alt "내보내기 미리보기" + :export/public-pages "공개 페이지 내보내기" + :export/remove-emphasis "강조 제거" + :export/remove-properties "속성 제거" + :export/remove-tags "#태그 제거" + :export/save-to-file "파일로 저장" + :export/sqlite-db "SQLite 데이터베이스 내보내기" + :export/title "내보내기" + :export/transparent-background "투명 배경" + :export/view-nodes-data-copied "뷰 노드 데이터를 클립보드에 복사했습니다" + :export/zip "SQLite 데이터베이스 및 에셋 내보내기" + :export/zip-error "ZIP 내보내기에 실패했습니다." + + :export.backup/backup-now "지금 백업" + :export.backup/cancel "백업 취소" + :export.backup/enabled-desc "이 그래프에 대해 매시간 백업이 활성화되어 있습니다, {1}." + :export.backup/folder "백업 폴더:" + :export.backup/hourly-note "매시간 백업이 생성됩니다." + :export.backup/open-folder "이 그래프의 백업 폴더 열기" + :export.backup/schedule "백업 예약" + :export.backup/set-folder-first "먼저 백업 폴더를 설정하세요" + :export.backup/sqlite-desc "그래프 내용을 단일 .sqlite 파일로 백업하는 기본 방법입니다." + :export.backup/unsupported-desc "이 브라우저는 {{The File System Access API}}를 지원하지 않습니다. Chromium 기반 브라우저로 전환해 주세요." + :export.backup/zip-desc "그래프 내용과 자산을 .zip 파일로 백업하는 기본 방법입니다." + + :file/config-duplicate-keys "'{1}' 파일에 중복된 키가 있습니다. '{2}' 키가 여러 번 할당되었습니다." + :file/config-invalid "설정 파일이 유효하지 않습니다" + :file/format-not-supported "{1} 형식은 현재 지원되지 않습니다." + :file/label "파일" + :file/last-modified-at "마지막 편집 시간:" + :file/name "파일 이름" + :file/no-data "파일에 데이터가 없습니다" + :file/title "파일 {1}" + + :file.config/deprecation-title "파일 {1}에 다음과 같은 더 이상 사용되지 않는 항목이 있습니다:" + :file.config/error-title "파일 {1}에 다음과 같은 오류가 있습니다:" + :file.config/invalid-desc "설정이 {}로 감싸져 있는지 확인하세요." + :file.config/invalid-title "파일 {1}이(가) 유효하지 않습니다." + :file.config/read-failed-desc "설정이 {}로 감싸져 있는지 확인하세요. 또한 문자 '( { ['에 대응하는 닫는 문자 ') } ]'이(가) 있는지 확인하세요." + :file.config/read-failed-title "파일 {1} 읽기 실패" + + :flashcard/add-query "새 쿼리 추가" + :flashcard/all-cards "모든 카드" + :flashcard/select-cards "카드 선택" + :flashcard/shortcut-tooltip "단축키: {1}" + + :flashcard.empty/desc "아무 블록에 \"{1}\"을 추가하거나 \"/cloze\"로 빈칸을 만들어 플래시카드를 생성할 수 있습니다." + :flashcard.empty/title "플래시카드를 만들어 보세요!" + + :flashcard.rating/again "다시" + :flashcard.rating/again-desc "정답을 맞히지 못했습니다. 이는 우리가 이 카드를 잊었다는 뜻입니다. 기억의 공백입니다。" + :flashcard.rating/easy "쉬움" + :flashcard.rating/easy-desc "정답이었고, 큰 노력 없이 빠르고 자신 있게 떠올릴 수 있었습니다。" + :flashcard.rating/good "좋음" + :flashcard.rating/good-desc "정답은 맞았지만 떠올리기 위해 어느 정도 정신적인 노력이 필요했습니다。" + :flashcard.rating/hard "어려움" + :flashcard.rating/hard-desc "정답은 맞았지만 확신이 없었거나 떠올리는 데 너무 오래 걸렸습니다." + + :flashcard.review/finished "축하합니다! 오늘 복습을 모두 마쳤습니다! 💯" + :flashcard.review/hide-answers "답변 숨기기" + :flashcard.review/show-answers "답변 보기" + :flashcard.review/show-clozes "빈칸 보기" + + :format/bold "굵게" + :format/code "코드" + :format/highlight "형광펜" + :format/italics "기울임" + :format/strikethrough "취소선" + :graph/all-graphs "모든 그래프" + :graph/already-exists-error "'{1}' 그래프가 이미 존재합니다. 다른 이름으로 다시 시도해 주세요." + :graph/as-png "PNG로" + :graph/built-in-pages "기본 제공 페이지" + :graph/charge-range "전하 범위" + :graph/charge-strength "전하 강도" + :graph/click-to-search "클릭하여 검색" + :graph/create-db "DB 그래프 만들기" + :graph/create-error "그래프 생성에 실패했습니다" + :graph/create-new "새 그래프 만들기" + :graph/created-before "이전에 생성됨" + :graph/creating "그래프 생성 중" + :graph/delete-local-action "로컬 그래프 삭제" + :graph/delete-local-confirm-desc "정말로 Logseq에서 그래프 \"{1}\"을(를) 영구적으로 삭제하시겠습니까?" + :graph/delete-server-action "서버에서 삭제" + :graph/delete-server-confirm-desc "정말로 서버에서 그래프 \"{1}\"을(를) 영구적으로 삭제하시겠습니까?" + :graph/delete-warning "⚠️ 삭제된 그래프는 복구할 수 없습니다. 삭제하기 전에 백업이 있는지 확인하세요." + :graph/diff "Git diff" + :graph/downloading "다운로드 중" + :graph/encrypt-data-label "그래프 데이터 암호화" + :graph/excluded-pages "제외된 페이지" + :graph/forces "힘" + :graph/gc-success "그래프 가비지 컬렉션 성공!" + :graph/last-opened-at-label "마지막으로 연 시각: {1}" + :graph/leave-action "이 그래프 나가기" + :graph/leave-confirm-desc "정말로 이 그래프를 떠나시겠습니까?" + :graph/leave-error "그래프 나가기에 실패했습니다" + :graph/left "그래프를 나갔습니다" + :graph/link-count "{1}링크" + :graph/link-distance "링크 거리" + :graph/local-graphs "로컬 그래프" + :graph/n-hops-from-selected-nodes "선택한 노드에서 N 홉" + :graph/name-placeholder "그래프 이름" + :graph/nodes "노드" + :graph/orphan-pages "고립된 페이지" + :graph/page-count "{1}페이지" + :graph/pause-simulation "시뮬레이션 일시 중지" + :graph/preparing "준비 중" + :graph/refresh-remote-graphs "원격 그래프 새로고침" + :graph/remote-graphs "원격 그래프" + :graph/removed "그래프 \"{1}\" 제거됨" + :graph/removed-and-redirecting "그래프 \"{1}\"을(를) 제거했습니다. 그래프 \"{2}\"로 리디렉션 중" + :graph/removed-from-sync "동기화에서 그래프가 제거되었습니다" + :graph/reset "그래프 초기화" + :graph/reset-forces "힘 초기화" + :graph/search "검색" + :graph/shared-graphs "공유 그래프" + :graph/updated-switching "그래프가 업데이트되었습니다. 전환 중..." + :graph/use-sync-beta "Logseq Sync 사용 (베타 테스트)" + :graph/use-sync-label "Logseq Sync 사용?" + + :graph.diagnostics/checksum-failed-error "그래프 체크섬 진단 계산에 실패했습니다." + :graph.diagnostics/checksum-recomputed-success "체크섬을 다시 계산했습니다. 다시 계산한 값: {1}, 로컬: {2}, 원격: {3}. 블록 {5}개와 체크섬 속성 {6}이 포함된 {4}.edn을 다운로드했습니다." + :graph.diagnostics/checksum-unavailable-warning "현재 그래프의 체크섬 진단을 계산할 수 없습니다." + :graph.diagnostics/client-ops-export-failed-error "Client ops SQLite를 내보내지 못했습니다." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Client ops SQLite 내보내기에 실패했습니다: 잘못된 payload 유형 {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite를 내보냈습니다: {1}.sqlite" + :graph.diagnostics/no-graph-warning "그래프를 찾을 수 없습니다." + + :graph.page/show-journals "저널 표시" + :graph.page/title "페이지 그래프" + + :graph.switch/add-graph-action "네, 새 그래프를 추가합니다" + :graph.switch/empty-desc "일치하는 그래프가 없습니다. 새로 추가하시겠습니까?" + :graph.switch/prompt "전환" + :graph.switch/select-prompt "그래프를 선택하십시오." + + :graph.validation/config-arweave-gateway-warning "은(는) 더 이상 지원되지 않습니다." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "은(는) 더 이상 지원되지 않습니다. 대신 '/'를 사용하고 버그를 보고해 주세요." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "DB 그래프에서는 Markdown 모드만 있으므로 사용되지 않습니다." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "검증에서 {1}개의 유효하지 않은 블록을 감지했습니다. 이러한 블록에 문제가 있을 수 있습니다. 유효하지 않은 블록을 수정하려고 시도 중입니다. 다시 검증을 실행하여 수정되었는지 확인하세요." + :graph.validation/name-reserved-characters-warning "그래프 이름에 다음 예약 문자를 사용할 수 없습니다:" + :graph.validation/reserved-character-asterisk "별표" + :graph.validation/reserved-character-backslash "백슬래시" + :graph.validation/reserved-character-colon "콜론" + :graph.validation/reserved-character-double-quote "큰따옴표" + :graph.validation/reserved-character-forward-slash "슬래시" + :graph.validation/reserved-character-greater-than "보다 큼" + :graph.validation/reserved-character-hash "해시" + :graph.validation/reserved-character-less-than "보다 작음" + :graph.validation/reserved-character-pipe "세로 막대 또는 파이프" + :graph.validation/reserved-character-plus "플러스" + :graph.validation/reserved-character-question-mark "물음표" + :graph.validation/valid "그래프가 유효합니다! {1}" + + :header/go-back "뒤로" + :header/go-forward "앞으로" + :header/highlight-recent-blocks "최근 블록 강조" + :header/highlight-recent-blocks-days-ago "최근 블록 강조: {1}일 전" + :header/more "더 보기" + :header/quit-highlight-recent-blocks "최근 블록 강조 종료" + :header/toggle-left-sidebar "왼쪽 사이드바 전환" + + :help/about "Logseq 소개" + :help/about-title "Logseq에 대해" + :help/ask-community "커뮤니티에 질문하기" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "블록 참조" + :help/blog "Logseq 블로그" + :help/bug "버그 보고" + :help/changelog "변경 기록" + :help/community-title "커뮤니티" + :help/context-menu "블록 컨텍스트 메뉴" + :help/context-menu-action "불릿 오른쪽 클릭" + :help/development-title "개발" + :help/docs "문서" + :help/feature "기능 제안" :help/forum-community "포럼 커뮤니티" - :linked-references/filter-search "링크된 페이지에서 검색" - :notification/clear-all "모두 제거" + :help/handbook "핸드북" + :help/learn-more "자세히 알아보기" + :help/markdown-syntax "Markdown 문법" + :help/open-link-in-sidebar "사이드바에서 링크 열기" + :help/open-link-in-sidebar-action "Shift+참조 클릭" + :help/privacy "개인정보 처리방침" + :help/reference-autocomplete "페이지 참조 자동 완성" + :help/release-notes "릴리스 노트" + :help/roadmap "로드맵" + :help/search "검색" + :help/slash-autocomplete "Slash 자동 완성" + :help/start "시작하기" + :help/submit-feedback "피드백 제출" + :help/support-forum "지원 포럼" + :help/terms "이용약관" + :help/terms-title "약관" + :help/usage-title "사용법" + + :help.handbook/chat-on-discord "Discord에서 대화하기" + :help.handbook/chat-on-discord-desc "빠른 질문을 하고, 다른 사용자를 만나고, 새로운 워크플로우를 배워보세요." + :help.handbook/copy-topic-link "주제 링크 복사" + :help.handbook/current-chapter "현재 챕터" + :help.handbook/help-categories "도움말 카테고리" + :help.handbook/home "홈" + :help.handbook/link-copied "핸드북 링크가 복사되었습니다!" + :help.handbook/monthly-posts "월간 게시물" + :help.handbook/next-chapter "다음 챕터" + :help.handbook/popular-topics "인기 주제" + :help.handbook/prev-chapter "이전 챕터" + :help.handbook/resources-from "{1}의 리소스" + :help.handbook/search-placeholder "검색" + :help.handbook/shortcuts-count "단축키 {1}개" + :help.handbook/sync "동기화" + :help.handbook/title "도움말" + :help.handbook/topics "주제" + :help.handbook/users-online "온라인 사용자" + :help.handbook/visit-the-forum "포럼 방문하기" + :help.handbook/visit-the-forum-desc "피드백을 제공하고, 기능을 요청하고, 심층적인 대화를 나눠보세요." + :help.handbook/writing-mode "쓰기 모드 (조만간 미리보기)" + + :help.shortcuts/desc "단축키와 팁 보기" + :help.shortcuts/label "키보드 단축키" + :help.shortcuts/shortcut-column "단축키" + :help.shortcuts/title "키보드 단축키" + :help.shortcuts/triggers "트리거" + + :icon/emojis-count "이모지 ({1})" + :icon/icons-count "아이콘 ({1})" + :icon/matched-count "일치 ({1})" + :icon/search-all "전체 검색" + :icon/search-emojis "이모지 검색" + :icon/search-icons "아이콘 검색" + :icon/tab-all "전체" + :icon/tab-emojis "이모지" + :icon/tab-icons "아이콘" + + :import/all-tags "모든 태그 가져오기" + :import/asset-too-large-warning "에셋 {1} 복사는 100 MB 제한을 초과하여 건너뛰었습니다." + :import/assets-import-partial "{1}/{2}개 에셋을 가져왔습니다. 자세한 내용은 콘솔을 확인하세요." + :import/assets-imported "{1}개 에셋을 가져왔습니다." + :import/assets-skipped "{1}개 에셋을 건너뛰었습니다. 자세한 내용은 콘솔을 확인하세요." + :import/block-icons-cannot-be-imported "블록 아이콘을 가져올 수 없습니다. 블록 {1}에서 수동으로 가져오세요." + :import/cannot-import-block-into-non-block-entity "블록이 아닌 엔티티에 블록을 가져올 수 없습니다. 다른 위치에서 가져오세요." + :import/db-edn-desc "DB 그래프의 EDN 내보내기를 새 DB 그래프로 가져오기" + :import/db-edn-title "EDN에서 DB 그래프로" + :import/debug-transit-desc "디버그 transit 파일을 새 DB 그래프로 가져오기" + :import/debug-transit-title "디버그 Transit" + :import/default-db-graph-behavior "데이터베이스 그래프의 기본 동작" + :import/empty-graph-name "그래프 이름은 비워둘 수 없습니다." + :import/extract-inline-code-snippets "인라인 코드 스니펫을 하위 블록으로 추출" + :import/file-finished "가져오기 완료!" + :import/file-to-db-desc "파일 기반 Logseq 그래프 폴더를 새 DB 그래프로 가져오기" + :import/file-to-db-title "파일에서 DB 그래프로" + :import/graph-name-conflict "같은 이름의 그래프가 이미 존재합니다. 다른 이름을 지정하세요!" + :import/graph-name-placeholder "그래프 이름" + :import/ignored-assets "가져오는 중 {1}개 에셋을 건너뛰었습니다. 자세한 내용은 JavaScript 콘솔을 확인하세요." + :import/ignored-files "가져오는 중 {1}개 파일을 건너뛰었습니다. 자세한 내용은 JavaScript 콘솔을 확인하세요." + :import/ignored-properties "가져오는 중 {1}개 속성을 건너뛰었습니다" + :import/ignored-properties-fix "속성 유형을 수정하려면 속성 값을 올바른 유형으로 변경한 후 그래프를 다시 가져오세요" + :import/invalid-blocks-detected "가져오는 중 {1}개의 잘못된 블록이 발견되었습니다. 상호 작용 시 문제가 발생할 수 있습니다. 자세한 내용은 JavaScript 콘솔을 확인하세요." + :import/invalid-edn-file "제공된 EDN 파일이 유효하지 않습니다. 수정 후 다시 시도하세요." + :import/loading "가져오는 중" + :import/logseq-config-missing "가져오기 실패: Logseq 그래프에 'logseq/config.edn' 파일이 없습니다." + :import/new-graph-name "새 그래프 이름" + :import/notes "기존 노트 가져오기" + :import/org-files-imported "{1}개 org 파일을 마크다운으로 가져왔습니다. org 파일 지원은 추후 추가될 예정입니다." + :import/page-icons-cannot-be-imported "페이지 아이콘을 가져올 수 없습니다. 페이지 {1}에서 수동으로 가져오세요." + :import/properties-case-insensitive-commas "속성 이름은 대소문자를 구분하지 않으며 쉼표로 구분" + :import/property-classes-placeholder "예: type" + :import/property-import-manually "이 속성은 수동으로 가져와야 합니다" + :import/property-parent-classes-placeholder "예: parent" + :import/property-type-mismatch "속성 값의 유형이 {1}이며, {2}가 아닙니다" + :import/property-value-tag-parents "속성 값에서 태그 부모 가져오기" + :import/property-value-tags "속성 값에서 추가 태그 가져오기" + :import/remove-inline-tags "인라인 태그 제거" + :import/select-edn-or-json "EDN 또는 JSON 파일을 선택하세요." + :import/specific-tags "특정 태그 가져오기" + :import/sqlite-and-assets-desc "db.sqlite와 assets 폴더가 포함된 zip 파일 가져오기" + :import/sqlite-and-assets-title "SQLite + 자산 (.zip)" + :import/submitted-edn-invalid "제출된 EDN 데이터가 유효하지 않습니다! 수정 후 다시 시도하세요." + :import/successful "가져오기에 성공했습니다!" + :import/tag-classes-placeholder "태그1, 태그2" + :import/tags-case-insensitive "태그는 대소문자를 구분하지 않습니다" + :import/title "가져오기" + :import/unexpected-error "예기치 않은 오류: {1}" + :import/zip-import-error "우편번호 가져오기 실패: {1}" + :import/zip-missing-db-sqlite "ZIP에 db.sqlite가 포함되어 있지 않습니다" + + :journal/add-blocks-to-today-success "오늘 추가된 블록" + :journal/page-cant-convert-warning "이 페이지는 저널 페이지가 아닙니다." + :journal/parse-date-to-name-error "저널 이름 파싱에 실패했습니다" + + :journal.default-query/doing "진행 중" + :journal.default-query/todo "할 일" + + :keymap/all "전체" + :keymap/already-bound "단축키가 이미 사용 중입니다" + :keymap/also-used-for-action "다음에도 사용됨 {1}" + :keymap/also-used-for-action-in-context "다음에도 사용됨 {1} 컨텍스트 내 {2}" + :keymap/clear "지우기" + :keymap/clear-keystroke-filter "키 입력 필터 지우기" + :keymap/clear-search "검색 지우기" + :keymap/custom "사용자 정의" + :keymap/deactivates-chord "키 조합 비활성화" + :keymap/deactivates-chords "{1}개의 조합 단축키를 비활성화합니다." + :keymap/disabled "비활성화" + :keymap/esc-is-reserved "Esc는 예약된 키입니다" + :keymap/hint-cancel "취소" + :keymap/hint-close "닫기" + :keymap/hint-reassign "재할당" + :keymap/hint-remove "제거" + :keymap/keystroke-filter "키 입력 필터" + :keymap/no-matching-shortcuts "일치하는 단축키가 없습니다" + :keymap/press-a-shortcut "단축키를 눌러주세요" + :keymap/press-keys-to-filter "키를 눌러 필터" + :keymap/reassign "재할당" + :keymap/reassign-tooltip "이 명령에 단축키를 재할당" + :keymap/reassigned-from "{1}에서 재할당됨" + :keymap/refresh-all "모두 새로고침" + :keymap/remove-binding "단축키 제거" + :keymap/remove-filter "필터 제거" + :keymap/reset "초기화" + :keymap/reset-to-default "기본값으로 복원" + :keymap/search-by-keys "키로 검색" + :keymap/search-placeholder "단축키 검색…" + :keymap/shortcut-added "단축키가 추가되었습니다" + :keymap/shortcut-removed "단축키가 제거되었습니다" + :keymap/toggle-categories-pane "카테고리 패널 전환" + :keymap/undo "실행 취소" + :keymap/unset "미설정" + :keymap/used-by-action "다음 명령에서 사용 중 {1}" + + :library/add-existing-pages "기존 페이지를 라이브러리에 추가" + :library/add-pages "페이지 추가" + :library/title "라이브러리" + + :mobile/camera-access-denied "카메라 액세스가 거부되었습니다. 설정 > Logseq에서 활성화하세요." + :mobile/microphone-access-denied "마이크 액세스가 거부되었습니다. 설정 > Logseq에서 활성화하세요." + + :mobile.header/actions "작업" + :mobile.header/create-graph "그래프 만들기" + :mobile.header/delete-block-confirm-desc "이 블록을 삭제하시겠습니까?" + :mobile.header/delete-page-confirm-desc "이 페이지를 삭제하시겠습니까?" + + :mobile.intent/file-options "파일 옵션" + :mobile.intent/open-with-app "즐겨 사용하는 앱으로 파일 열기" + :mobile.intent/select-option-prompt "수행할 옵션을 선택하세요" + :mobile.intent/share "공유" + + :mobile.log/all "전체" + :mobile.log/errors-only "오류만" + :mobile.log/full "전체" + :mobile.log/new-first "최신순" + :mobile.log/old-first "오래된순" + :mobile.log/ui "UI" + :mobile.log/worker "워커" + + :mobile.settings/account "계정" + :mobile.settings/check-log "로그 확인" + :mobile.settings/discord-community "Discord 커뮤니티" + :mobile.settings/forum "포럼" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "버그 보고" + :mobile.settings/revision "리비전" + :mobile.settings/theme "테마" + :mobile.settings/version "버전" + + :mobile.share/file-import-error "공유 파일 가져오기에 실패했습니다" + :mobile.share/media-import-error "공유 미디어 가져오기에 실패했습니다" + :mobile.share/unsupported-content-warning "현재 공유된 콘텐츠의 구문 분석은 지원되지 않습니다. {1}에 다음 코드를 보고해 주세요. 곧 확인하겠습니다." + :mobile.share/unsupported-import-type "{1} 파일 가져오기는 지원되지 않습니다. {2}에 보고해 주시면 곧 확인하겠습니다." + + :mobile.tab/capture "캡처" + :mobile.tab/go-to "이동" + :mobile.tab/graphs "그래프" + + :mobile.toolbar/audio "오디오" + :mobile.toolbar/copy-ref "참조 복사" + :mobile.toolbar/copy-url "URL 복사" + :mobile.toolbar/hide "숨기기" + :mobile.toolbar/indent "들여쓰기" + :mobile.toolbar/outdent "내어쓰기" + :mobile.toolbar/photo "사진" + :mobile.toolbar/redo "다시 실행" + :mobile.toolbar/reference "참조" + :mobile.toolbar/slash "슬래시" + :mobile.toolbar/tag "태그" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "실행 취소" + :mobile.toolbar/unselect "선택 해제" + + :nav/all-files "모든 파일" + :nav/all-journals "모든 저널" + :nav/appearance "외관" + :nav/assets "에셋" + :nav/cannot-go-to-internal-page "내부 페이지로 이동할 수 없습니다" + :nav/flashcards "플래시 카드" + :nav/graph "그래프" + :nav/graph-view "그래프 보기" + :nav/help "도움말" + :nav/home "홈" + :nav/invalid-jump-error "잘못된 이동" + :nav/journals "일지" + :nav/plugins "플러그인" + :nav/search "검색" + :nav/settings "설정" + :nav/skip-to-main-content "메인 컨텐츠로 건너뛰기" + :nav/tasks "작업" + :nav/themes "테마" + + :nav.all-pages/label "모든 페이지" + :nav.all-pages/title "모든 페이지" + + :node/built-in-cant-delete-error "내장 항목은 삭제할 수 없습니다." + :node/new "새 노드" + + :notification/clear-all "모두 지우기" + :notification/copied "복사했습니다" + + :onboarding.import/desc "EDN 또는 Markdown 형식의 노트를 Logseq에서 가져올 수 있습니다." + :onboarding.import/sqlite-desc "SQLite 데이터베이스에서 가져오기" + :onboarding.import/title "가져올 기존 노트가 있으신가요?" + + :onboarding.import-option/desc "나중에 앱 내에서 수행할 수도 있습니다." + :onboarding.import-option/title "기존 노트 가져오기" + + :onboarding.setup/desc "먼저 생각과 아이디어, 노트를 저장할 폴더를 선택하세요." + :onboarding.setup/title (fn [] [["환영합니다! " [:strong "Logseq"] "에 오신 것을 환영합니다!"]]) + + :page/add-to-favorites "즐겨찾기에 추가" + :page/added-tag-to-node "\"{2}\"에 \"{1}\" 태그를 추가했습니다." + :page/backlinks "역링크" + :page/clear "지우기" + :page/clear-local-storage-desc "다크/라이트 테마 설정과 같은 일부 환경설정이 삭제됩니다." + :page/cleared "지워졌습니다" + :page/contents "목차" + :page/convert-to-tag "태그로 변환" + :page/copy-url "페이지 URL 복사" + :page/create "새 페이지 만들기" + :page/created-at "생성일" + :page/current-graph-as-sqlite-db "현재 그래프를 SQLite DB로" + :page/default-query-error "기본 쿼리 실패:" + :page/delete "페이지 삭제" + :page/go-back-home "홈으로 돌아가기" + :page/hide-properties "속성 숨기기" + :page/local-storage "로컬 스토리지" :page/logseq-is-having-a-problem "Logseq에 문제가 발생하였습니다. 작업 환경으로 돌아가기 위해서는 다음 지시를 따라주십시오." + :page/make-private "비공개 상태로 만들기" + :page/make-public "출판 전 공개 상태로 만들기" + :page/moved-to-recycle "노드가 휴지통으로 이동되었습니다" + :page/name "페이지 이름" + :page/no-page-found-to-copy "복사할 페이지를 찾을 수 없습니다" + :page/not-found "페이지를 찾을 수 없습니다" + :page/not-found-desc "죄송합니다! 찾으시는 페이지가 존재하지 않습니다." + :page/not-found-title "페이지를 찾을 수 없음" + :page/not-found-warning "페이지를 찾을 수 없습니다" + :page/open-all-graphs-desc "{{All graphs}}에서 다른 그래프로 전환할 수도 있습니다." + :page/open-issue-desc "이러한 문제 해결 단계로도 해결되지 않은 경우 {{open an issue}}을 열어주세요." + :page/open-properties "속성 열기" + :page/rebuild "재구성" + :page/relaunch "재실행" + :page/relaunch-desc "앱을 종료하고 다시 엽니다." + :page/scheduled-and-deadline "예정일 및 마감일" + :page/search-index "검색 인덱스" + :page/send-db-for-debugging "디버깅을 위해 help@logseq.com으로 보낼 수 있습니다." :page/something-went-wrong "문제가 발생하였습니다." :page/step "스텝 {1}" + :page/the-app "앱" :page/try "시도" - :plugin.install-from-file/title "plugins.edn에서 설치" + :page/unfavorite "즐겨찾기에서 삭제" + :page/unknown "알 수 없는 페이지" + :page/updated-at "수정 시간:" + + :page.convert/block-parent-not-page "블록을 변환할 수 없습니다. 부모가 페이지가 아닙니다." + :page.convert/cant-be-block "페이지 \"{1}\"을(를) 블록으로 변환할 수 없습니다." + :page.convert/cant-be-block-has-children "페이지 \"{1}\"에는 하위 페이지가 있으므로 블록으로 변환할 수 없습니다." + :page.convert/cant-be-block-move-first "페이지 \"{1}\"은(는) 블록으로 변환할 수 없습니다. 먼저 다른 페이지로 이동하세요." + :page.convert/page-to-tag-action "\"{1}\"을 태그로 변환" + :page.convert/page-to-tag-built-in "내장 페이지는 태그로 사용할 수 없습니다" + :page.convert/page-to-tag-duplicate "이름이 \"{1}\"인 태그가 이미 존재합니다." + :page.convert/page-to-tag-namespaced "네임스페이스 페이지는 태그로 사용할 수 없습니다" + :page.convert/property-value-to-page "속성 값을 페이지로 변환할 수 없습니다." + :page.convert/tag-to-page-action "태그를 페이지로 변환" + :page.convert/tag-to-page-built-in "내장 태그는 페이지로 사용할 수 없습니다" + :page.convert/tag-to-page-confirm-desc "태그를 페이지로 변환하면 해당 태그의 속성과 그 태그가 달린 모든 노드에서 그 태그도 함께 제거됩니다. 계속하시겠습니까?" + :page.convert/tag-to-page-duplicate "이름이 \"{1}\"인 페이지가 이미 존재합니다." + :page.convert/tag-to-page-has-children "자식 요소가 있는 태그는 변환할 수 없습니다" + + :page.delete/batch-confirm-title "이 페이지들을 삭제하시겠습니까? 속성과 태그는 영구적으로 삭제되고 페이지는 휴지통으로 이동됩니다." + :page.delete/confirm-title "이 페이지를 삭제하시겠습니까?" + :page.delete/permanent-confirm-title "이 페이지를 영구적으로 삭제하시겠습니까?" + :page.delete/success "페이지 \"{1}\"이(가) 성공적으로 삭제되었습니다!" + :page.delete/total "합계: {1}" + :page.delete/warning "다음 페이지의 콘텐츠가 삭제되었지만 삭제할 수 없습니다. {1}. 자세한 내용은 자바스크립트 콘솔을 참조하세요." + + :page.validation/cant-set-built-in-tags "새 페이지에서는 내장 태그를 설정할 수 없습니다: {1}" + :page.validation/duplicate "{2} 태그에 대해 \"{1}\"이라는 이름의 다른 페이지가 이미 존재합니다." + :page.validation/name-blank "페이지 이름은 비워둘 수 없습니다." + :page.validation/name-no-hash "페이지 이름에 #을 포함할 수 없습니다" + :page.validation/name-no-slash "페이지 이름에 /를 포함할 수 없습니다." + :page.validation/parents-must-be-pages "페이지의 부모는 페이지여야 합니다." + + :pdf/annotations-page "주석 페이지" + :pdf/area-highlight-shortcut "영역 하이라이트 ({1})" + :pdf/auto-fit "자동 맞춤" + :pdf/auto-open-context-menu "자동으로 컨텍스트 메뉴를 엽니다" + :pdf/copy-ref "참조 복사" + :pdf/copy-text "텍스트 복사" + :pdf/corrupted-file-error "오류: {1}\n이 .pdf 파일이 손상되었나요?\n외부 PDF 뷰어로 확인해 주세요." + :pdf/doc-metadata "메타데이터" + :pdf/enter-to-search "Enter로 검색" + :pdf/find-results "{2}개 중 {1}번째 일치 (\"{3}\")" + :pdf/generic-error "오류: {1}\n{2}\nPDF 파일 리소스를 확인해 주세요." + :pdf/highlight-mode "하이라이트 모드" + :pdf/highlights "하이라이트" + :pdf/hl-block-colored "색상으로 강조된 블록입니다" + :pdf/linked-ref "링크된 참조" + :pdf/load-highlights-file-error "오류: 강조 표시 파일 \"{1}\"을(를) 로드하지 못했습니다. \n{2}" + :pdf/missing-file-error "오류: {1}\n올바른 경로인가요?" + :pdf/more-settings "추가 설정" + :pdf/no-outlines "목차 없음" + :pdf/not-found "찾을 수 없습니다." + :pdf/open-in-app-window "앱 창에서 열기" + :pdf/open-in-external-window "외부 창에서 열기" + :pdf/outline "목차" + :pdf/page-label "페이지 {1}" + :pdf/password-protected-desc "이 문서는 비밀번호로 보호되어 있습니다. 비밀번호를 입력해 주세요:" + :pdf/password-required "비밀번호 필요" + :pdf/search "검색" + :pdf/search-placeholder "검색" + :pdf/toggle-dashed "영역 하이라이트를 위해 Dashed style 사용" + :pdf/viewer "PDF 뷰어" + :pdf/zoom-in "확대" + :pdf/zoom-out "축소" + + :plugin/all "전체" + :plugin/auto-update-check "플러그인 업데이트 자동 확인" + :plugin/auto-update-check-feedback "업데이트 자동 확인: {1}!" + :plugin/check-all-updates "모든 업데이트 확인" + :plugin/check-update "업데이트 확인" + :plugin/checked "확인됨" + :plugin/checking-for-updates "업데이트 확인 중" + :plugin/contribute "✨ 새 플러그인을 만들고 기여하기" + :plugin/custom-js-alert "custom.js 파일을 감지했습니다. 실행을 허용하겠습니까? (파일의 내용을 이해하지 못한다면 보안과 안전 상의 이유로 실행하지 않는 것이 권장됩니다." + :plugin/date-added "추가일" + :plugin/delete-alert "다음 [{1}] 플러그인을 삭제하시겠습니까?" + :plugin/disable-for-performance-feedback "플러그인 {1}이(가) 비활성화되었습니다." + :plugin/disable-now "지금 비활성화" + :plugin/disabled "비활성화됨" + :plugin/does-not-support-db "DB 그래프를 지원하지 않습니다" + :plugin/downloads "다운로드" + :plugin/empty "결과 없음." + :plugin/enabled "활성화됨" + :plugin/existed-package "기존 플러그인 패키지({1})." + :plugin/fatal-error "치명적 오류: {1}" + :plugin/found-n-updates "{1}개 업데이트를 찾았습니다" + :plugin/found-updates "업데이트를 찾았습니다" + :plugin/install "설치" + :plugin/install-error "설치 실패: {1}\n{2}" + :plugin/installed "설치됨" + :plugin/installed-plugin "설치된 플러그인: {1}" + :plugin/installing "설치 중" + :plugin/invalid-github-repo-url "유효하지 않은 GitHub 저장소 URL" + :plugin/invalid-package "유효하지 않은 패키지" + :plugin/invalid-plugins-edn "유효하지 않은 plugins.edn" + :plugin/list-of-updates "업데이트 목록" + :plugin/load-from-web-url "웹 URL에서 불러오기" + :plugin/load-plugin-indicator "플러그인 로드 중: {1}..." + :plugin/load-unpacked "압축 해제된 플러그인 불러오기" + :plugin/loading-indicator "불러오는 중" + :plugin/malformed-plugins-edn "잘못된 형식의 plugins.edn" + :plugin/marketplace "마켓플레이스" + :plugin/new-registered "새 플러그인이 등록되었습니다" + :plugin/no-settings-schema "설정 스키마 없음!" + :plugin/not-installed "설치되지 않음" + :plugin/open-logseq-dir "Logseq 디렉토리 열기" + :plugin/open-package "패키지 열기" + :plugin/open-preferences "환경설정 열기" + :plugin/open-settings "설정 열기" + :plugin/perf-tip "플러그인 {1}의 로딩 시간이 너무 길어 애플리케이션 시작 시간에 영향을 주며 다른 플러그인 로딩에 실패를 줄 수 있습니다." + :plugin/popular "인기" + :plugin/proxy-check-success "성공! {2}ms 후 상태 {1}." + :plugin/readme-empty-warning "README 내용이 없습니다" + :plugin/refresh-lists "리스트 새로고침" + :plugin/reload "다시 불러오기" + :plugin/remote-error "원격 오류: {1}" + :plugin/report-modal-desc "플러그인을 사용할 수 없거나 악성 코드가 포함되어 있다고 생각하면 {1}로 이메일을 보내주세요. 플러그인 이름과 GitHub 저장소 URL을 언급하세요. Logseq 팀은 보통 업무일 기준 하루 이내에 응답합니다." + :plugin/report-security "보안 문제 보고" + :plugin/restart "앱 다시 시작" + :plugin/search-plugin "플러그인 검색" + :plugin/security-warning "보안 경고" + :plugin/setting-not-handled "#처리되지 않음# {1}" + :plugin/settings-schema-error "설정 스키마 오류!" + :plugin/stars "스타" + :plugin/supports-db "DB 지원" + :plugin/title "제목({1})" + :plugin/uninstall "설지 제거" + :plugin/unpacked "압축 해제됨" + :plugin/unpacked-tips "플러그인 디렉토리 열기" + :plugin/up-to-date "최신 상태입니다 {1}" + :plugin/update "업데이트" + :plugin/update-all-selected "선택된 항목 모두 업데이트" + :plugin/update-all-success "모든 플러그인이 최신입니다" + :plugin/update-available "업데이트 가능" + :plugin/update-plugin "플러그인 업데이트: {1} - {2}" + :plugin/updates-downloading "업데이트 다운로드 중" + :plugin/updating "업데이트 중" + + :plugin.install-from-file/menu-title "plugins.edn에서 설치" :plugin.install-from-file/notice "다음의 플러그인들이 교체될 것입니다:" :plugin.install-from-file/success "플러그인 설치 성공!" - :plugin.install-from-file/menu-title "plugins.edn에서 설치" - :right-side-bar/show-journals "일지 보기" - :search-item/page "페이지" - :settings-page/clear-cache-warning "캐시 삭제로, 현재 작업 내용을 잃을 수 있습니다." - :settings-page/custom-global-configuration "전역 사용자 설정" - :settings-page/disable-sentry-desc "Logseq는 사용자의 로컬 그래프 데이터베이스 정보를 수집하지 않습니다." - :settings-page/edit-global-config-edn "전역 config.edn 수정" - :settings-page/enable-flashcards "플래시 카드 활성화" - :settings-page/login-prompt "Logseq의 새로운 기능을 먼저 체험하기 위해서는, Open Collective Sponsor가 되거나 Logseq의 Backer가 되어야 합니다. 먼저, 로그인 하십시오." - :settings-page/preferred-pasting-file "파일로 붙여넣기" - :settings-page/show-full-blocks "블록 참조의 모든 줄 표시" - :settings-page/tab-features "기능" + :plugin.install-from-file/title "plugins.edn에서 설치" - :shortcut.category/formatting "포맷" - :shortcut.category/basics "기본 동작" - :shortcut.category/navigating "내비게이션" - :shortcut.category/block-editing "블록 편집" - :shortcut.category/block-command-editing "블록 내부 편집" - :shortcut.category/block-selection "블록 선택" - :shortcut.category/toggle "토글" - :shortcut.category/others "기타" - :command.editor/indent "들여쓰기" - :command.editor/outdent "내어쓰기" - :command.editor/move-block-up "위로 블록 이동" - :command.editor/move-block-down "아래로 블록 이동" - :command.editor/new-block "새 블록" - :command.editor/new-line "새 줄" - :command.editor/zoom-in "확대" - :command.editor/zoom-out "축소" - :command.editor/follow-link "링크 열기" - :command.editor/open-link-in-sidebar "사이드바에서 링크 열기" - :command.editor/expand-block-children "하위 블록 열기" - :command.editor/collapse-block-children "하위 블록 닫기" - :command.editor/select-block-up "위 블록 선택" - :command.editor/select-block-down "아래 블록 선택" - :command.editor/select-all-blocks "모든 블록 선택" - :command.editor/paste-text-in-one-block-at-point "현재 위치에 텍스트를 붙여넣기" - :command.ui/toggle-help "도움말 토글" - :command.go/search "검색으로 이동" - :command.go/backward "뒤로 이동" - :command.go/forward "앞으로 이동" - :command.go/flashcards "플래시 카드로 이동" - :command.go/home "홈으로 이동" - :command.go/all-pages "모든 페이지로 이동" - :command.go/graph-view "그래프 뷰로 이동" - :command.go/tomorrow "내일로 이동" - :command.go/next-journal "다음 일지로 이동" - :command.go/prev-journal "이전 일지로 이동" - :command.go/keyboard-shortcuts "키보드 단축키로 이동" - :command.ui/toggle-document-mode "문서 모드 토글" - :command.ui/toggle-contents "목차 토글" - :command.ui/toggle-theme "테마 토글" - :command.ui/toggle-right-sidebar "오른쪽 사이드바 토글" - :command.ui/toggle-settings "설정 토글" - :command.go/journals "일지로 이동" - :command.ui/toggle-wide-mode "와이드 모드 토글" - :command.ui/toggle-brackets "대괄호 토글" - :command.search/re-index "다시 인덱스하기" - :command.editor/bold "볼드체" - :command.editor/italics "이탤릭체" - :command.editor/insert-link "링크 삽입" - :command.editor/highlight "하이라" - :command.editor/undo "실행 취소" - :command.editor/redo "다시 실행" - :command.editor/copy "복사" - :command.editor/cut "잘라내기" - :command.editor/up "위로 이동" - :command.editor/down "아래로 이동" - :command.editor/left "왼쪽으로 이동" - :command.editor/right "오른쪽으로 이동" - :command.editor/select-up "위 콘텐츠 선택" - :command.editor/select-down "아래 콘텐츠 선택" - :command.editor/backspace "이전 문자 삭제" - :command.editor/delete "다음 문자 삭제" - :command.editor/cycle-todo "할 일 돌아보기" - :command.editor/clear-block "블록 클리어" - :command.editor/kill-line-before "이전 줄 삭제" - :command.editor/kill-line-after "다음 줄 삭제" - :command.editor/beginning-of-block "블록 시작으로 이동" - :command.editor/end-of-block "블록 끝으로 이동" - :command.editor/forward-word "다음 단어로 이동" - :command.editor/backward-word "이전 단어로 이동" - :command.editor/forward-kill-word "다음 단어 삭제" - :command.editor/backward-kill-word "이전 단어 삭제" - :command.editor/open-edit "선택한 블록 편집" - :command.editor/delete-selection "선택한 블록 삭제" - :command.editor/toggle-open-blocks "열린 블록 토글" - :command.ui/toggle-left-sidebar "왼쪽 사이드바 토글" - :command.pdf/next-page "다음 페이지" - :command.pdf/previous-page "이전 페이지" - :command.command/run "Git 명령 실행" - :command.graph/open "그래프 열기" - :command.graph/remove "그래프 제거" - :command.graph/add "그래프 추가" - :command.sidebar/clear "사이드바 클리어" - :command.sidebar/open-today-page "오늘의 일지를 사이드바에서 열기" - :command.editor/insert-youtube-timestamp "YouTube 타임스탬프 삽입" - :command.auto-complete/complete "항목 선택" - :command.auto-complete/prev "이전 항목 선택" - :command.auto-complete/next "다음 항목 선택" - :command.auto-complete/shift-complete "선택 항목 열기" - :command.cards/toggle-answers "정답 토글" - :command.command/toggle-favorite "즐겨찾기 토글" - :command.editor/escape-editing "편집 나가기" - :command.editor/strike-through "취소선" - :command.misc/copy "복사" - :command.ui/goto-plugins "플러그인 페이지로 이동" - :command.ui/select-theme-color "테마 색상 선택" - :command.editor/copy-text "선택한 영역을 텍스트로 복사" - :command.pdf/close "PDF 닫기" - :command.dev/show-block-ast "(개발자) 블록 AST 보기" - :command.dev/show-block-data "(개발자) 블록 데이터 보기" - :command.dev/show-page-data "(개발자) 페이지 데이터 보기" - :command.editor/copy-embed "현재 블록의 블록 임베드 복사" - :command.editor/select-parent "부모 블록 선택" - :command.go/all-graphs "모든 그래프로 이동" - :command.go/electron-find-in-page "페이지에서 검색" - :command.go/electron-jump-to-the-next "다음 검색 항목으로 이동" - :command.go/electron-jump-to-the-previous "이전 검색 항목으로 이동" - :command.graph/export-as-html "그래프를 html로 내보내기" - :command.pdf/find "PDF: 현재 PDF 문서에서 검색" - :command.sidebar/close-top "우축 사이드바의 최상단 항목 닫기" - :command.ui/clear-all-notifications "모든 알람 제거" - :command.ui/install-plugins-from-file "plugins.edn에서 플러그인 설치" - :command.command-palette/toggle "명령어 검색" - :command.go/search-in-page "현재 페이지에서 블록 검색" + :plugin.install-from-web-url/effect-label "효과" + :plugin.install-from-web-url/repo-url-placeholder "GitHub 저장소 URL" + :plugin.install-from-web-url/supports-note "URL은 GitHub 저장소와 로컬 개발 서버를 모두 지원합니다. (예시: {1}, {2})" + :plugin.install-from-web-url/theme-label "테마" - :settings-page/preferred-outdenting-tip "왼쪽은 기본 상태, 오른쪽은 설정이 활성화된 상태를 표시합니다. " - :settings-page/preferred-outdenting-tip-more "→ 더 알아보기" - :settings-page/preferred-pasting-file-hint "활성화하면, 인터넷으로부터 이미지를 붙여넣기할 때 이미지를 다운로드한 뒤 삽입합니다. 비활성화하면, 이미지의 링크를 붙여넣습니다." - :settings-page/auto-expand-block-refs "확대 시 블록 참조 펼치기" - :settings-page/auto-expand-block-refs-tip "이 설정은 블록을 확대할 때 블록 참조를 자동으로 펼칠지를 결정합니다." - :settings-page/tab-keymap "단축키" - } + :plugin.package-config/detach-desc "제거해도 Logseq에서 플러그인 연결만 해제되며 원본 폴더는 그대로 유지됩니다." + :plugin.package-config/parse-error "플러그인 패키지 설정을 파싱하지 못했습니다." + :plugin.package-config/remove-error "손상된 플러그인을 제거하지 못했습니다." + :plugin.package-config/remove-external-success "손상된 플러그인을 플러그인 목록에서 제거했습니다." + :plugin.package-config/remove-installed-success "손상된 플러그인 \"{1}\"을 제거했습니다." + + :plugin.proxy/direct "직접 연결" + :plugin.proxy/system "시스템" + :plugin.proxy/test-url "URL 테스트" + :plugin.proxy/testing "테스트 중" + + :plugin.settings/edit-settings-json "settings.json 편집" + :plugin.settings/exit-code-mode "코드 모드 종료" + :plugin.settings/title "플러그인 설정" + + :plugin.themes/default-desc "Logseq 기본 {1} 테마." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} 테마" + :plugin.themes/light-and-dark "라이트 및 다크 테마" + + :profiler/input-fn-placeholder "함수 이름을 입력하세요" + :profiler/unregister "등록 해제" + + :property/add-choice "선택지 추가" + :property/add-choices "선택지 추가" + :property/add-description "설명 추가" + :property/add-new "속성 추가" + :property/add-or-change "속성 추가 또는 변경" + :property/available-choices "사용 가능한 선택지" + :property/change-tooltip "{1} 변경" + :property/checkbox-state-mapping "체크박스 상태 매핑" + :property/children-count "어린이({1})" + :property/choices-count "{1} 선택 사항" + :property/choose-tag "태그 선택" + :property/choose-tags "태그 선택" + :property/clear-value "지우기" + :property/configure "설정" + :property/convert-page-to-property "\"{1}\"을 속성으로 변환" + :property/create-error "속성 생성에 실패했습니다." + :property/default-value "기본값" + :property/delete-from-node "노드에서 삭제" + :property/delete-from-node-confirm "이 속성을 노드에서 삭제하시겠습니까?" + :property/delete-from-tag "태그에서 삭제" + :property/delete-from-tag-confirm "이 속성을 태그에서 삭제하시겠습니까?" + :property/description-placeholder "설명 입력" + :property/drag-to-reorder "드래그로 재정렬" + :property/existing-values "기존 값" + :property/go-to-this-property "이 속성의 페이지로" + :property/hidden-properties "숨겨진 속성" + :property/hide-by-default "기본적으로 숨기기" + :property/hide-choice-for-tag "태그의 선택지 숨기기" + :property/hide-empty-value "빈 값 숨기기" + :property/hide-for-tag "#{1} 숨기기" + :property/hide-hidden-choices "숨겨진 선택지 숨기기" + :property/map-checked-to "체크 시 매핑 대상" + :property/map-unchecked-to "미체크 시 매핑 대상" + :property/more-settings "추가 설정" + :property/multiple-values "복수 값" + :property/multiple-values-confirm "복수 값을 활성화하시겠습니까?" + :property/name "이름" + :property/name-placeholder "속성 이름" + :property/nodes-with-property "속성이 있는 노드" + :property/overdue "기한 초과" + :property/private-built-in-not-usable "프라이빗 내장 속성은 사용할 수 없습니다" + :property/select-choice "선택지 선택" + :property/select-property-placeholder "속성 선택" + :property/select-type-placeholder "속성 유형 선택" + :property/self-reference "자기 참조" + :property/set-default-choice "기본 선택지 설정" + :property/set-default-value "기본값 설정" + :property/set-icon "아이콘 설정" + :property/set-placeholder "{1} 설정" + :property/set-property "속성 설정" + :property/set-tags "태그 설정" + :property/set-value "값 설정" + :property/show-as-checkbox-on-node "노드에 체크박스로 표시" + :property/show-as-checkbox-on-tagged-nodes "태그된 노드에 체크박스로 표시" + :property/show-hidden-choices "숨겨진 선택지 표시" + :property/skip-choosing-tag "태그 선택 건너뛰기" + :property/specify-node-tags "노드 태그 지정" + :property/title-placeholder "제목" + :property/type "유형" + :property/type-change-warning "속성 유형을 변경하면 일부 속성 설정이 지워집니다." + :property/type-checkbox "체크박스" + :property/type-date "날짜" + :property/type-datetime "날짜/시간" + :property/type-locked-help "유형이 잠겨 있습니다" + :property/type-node "노드" + :property/type-number "숫자" + :property/type-text "텍스트" + :property/type-url "URL" + :property/ui-position "UI 위치" + :property/ui-position-block-below "블록 아래" + :property/ui-position-block-left "블록 왼쪽" + :property/ui-position-block-right "블록 오른쪽" + :property/ui-position-properties "속성" + :property/unset-property "속성 해제" + :property/update-success "업데이트되었습니다" + + :property.built-in/alias "별칭" + :property.built-in/asset "자산" + :property.built-in/asset-align "자산 정렬" + :property.built-in/asset-checksum "파일 체크섬" + :property.built-in/asset-external-file-name "외부 파일 이름" + :property.built-in/asset-external-url "외부 URL" + :property.built-in/asset-height "이미지 높이" + :property.built-in/asset-last-visit-page "마지막 방문 페이지" + :property.built-in/asset-remote-metadata "파일 원격 메타데이터" + :property.built-in/asset-resize-metadata "자산 크기 조정 메타데이터" + :property.built-in/asset-size "파일 크기" + :property.built-in/asset-type "파일 유형" + :property.built-in/asset-width "이미지 너비" + :property.built-in/background-color "배경색" + :property.built-in/built-in "기본 제공 여부" + :property.built-in/checkbox-display-properties "체크박스로 표시되는 속성" + :property.built-in/choice-checkbox-state "선택 체크박스 상태" + :property.built-in/choice-classes "선택 클래스" + :property.built-in/choice-exclusions "선택 제외" + :property.built-in/class-bidirectional-property-title "양방향 속성 제목" + :property.built-in/class-enable-bidirectional "양방향 속성 활성화" + :property.built-in/class-extends "확장" + :property.built-in/class-hide-from-node "노드에서 숨기기" + :property.built-in/class-properties "태그 속성" + :property.built-in/classes "속성 클래스" + :property.built-in/closed-value-property "닫힌 값 속성" + :property.built-in/code-lang "코드 모드" + :property.built-in/collapsed "노드 접힘 여부" + :property.built-in/created-at "노드 생성 시간" + :property.built-in/created-by-ref "노드 작성자" + :property.built-in/created-from-property "속성에서 생성됨" + :property.built-in/deadline "마감일" + :property.built-in/default-value "기본값" + :property.built-in/deleted-at "삭제 시간" + :property.built-in/deleted-by-ref "삭제자" + :property.built-in/description "설명" + :property.built-in/enable-history "속성 이력 활성화" + :property.built-in/exclude-from-graph-view "그래프 뷰에서 제외 여부" + :property.built-in/fsrs-due "예정일" + :property.built-in/fsrs-state "상태" + :property.built-in/heading "제목" + :property.built-in/hide "이 속성 또는 페이지 숨기기" + :property.built-in/hide-empty-value "빈 값 숨기기" + :property.built-in/history-block "이력 블록" + :property.built-in/history-property "이력 속성" + :property.built-in/history-ref-value "이력 값" + :property.built-in/history-scalar-value "이력 스칼라 값" + :property.built-in/icon "아이콘" + :property.built-in/journal-day "저널 날짜" + :property.built-in/journal-title-format "제목 형식" + :property.built-in/link "노드 링크 대상" + :property.built-in/linked-references-excludes "제외된 참조" + :property.built-in/linked-references-includes "포함된 참조" + :property.built-in/ls-type "LS 유형" + :property.built-in/node-display-type "노드 표시 유형" + :property.built-in/order "노드 순서" + :property.built-in/order-list-type "목록 유형" + :property.built-in/page "노드 페이지" + :property.built-in/page-tags "페이지 태그" + :property.built-in/parent "상위 노드" + :property.built-in/priority "우선순위" + :property.built-in/public "속성 공개 여부" + :property.built-in/publish-published-url "게시된 URL" + :property.built-in/publishing-public "게시 공개 여부" + :property.built-in/query "쿼리" + :property.built-in/reaction-emoji-id "반응 이모지" + :property.built-in/reaction-target "반응 대상" + :property.built-in/recycle-original-order "휴지통 원래 순서" + :property.built-in/recycle-original-page "휴지통 원래 페이지" + :property.built-in/recycle-original-parent "휴지통 원래 상위 노드" + :property.built-in/refs "노드 참조" + :property.built-in/repeat-checked-property "반복 확인 속성" + :property.built-in/repeat-recur-frequency "반복 주기 빈도" + :property.built-in/repeat-recur-unit "반복 주기 단위" + :property.built-in/repeat-repeated "노드 반복 여부" + :property.built-in/repeat-temporal-property "반복 시간 속성" + :property.built-in/scalar-default-value "비참조 유형 기본값" + :property.built-in/scheduled "예정일" + :property.built-in/status "상태" + :property.built-in/sync-large-title-object "원격 객체 스토리지에 저장된 큰 블록 제목 참조" + :property.built-in/table-filters "뷰 필터" + :property.built-in/table-hidden-columns "뷰 숨겨진 열" + :property.built-in/table-ordered-columns "뷰 열 순서" + :property.built-in/table-pinned-columns "테이블 뷰 고정 열" + :property.built-in/table-sized-columns "뷰 열 설정" + :property.built-in/table-sorting "뷰 정렬" + :property.built-in/tags "태그" + :property.built-in/template-applied-to "태그에 템플릿 적용" + :property.built-in/title "노드 제목" + :property.built-in/type "속성 유형" + :property.built-in/ui-position "속성 위치" + :property.built-in/updated-at "노드 업데이트 시간" + :property.built-in/used-template "사용된 템플릿" + :property.built-in/user-avatar "사용자 아바타" + :property.built-in/user-email "사용자 이메일" + :property.built-in/user-name "사용자 이름" + :property.built-in/value "속성 값" + :property.built-in/view-context "속성 뷰 컨텍스트" + :property.built-in/view-feature-type "뷰 기능 유형" + :property.built-in/view-for "이 뷰가 속한 대상" + :property.built-in/view-group-by-property "뷰 그룹 기준 속성" + :property.built-in/view-sort-groups-by-property "뷰 그룹 정렬 기준" + :property.built-in/view-sort-groups-desc "뷰 그룹 내림차순 정렬" + :property.built-in/view-type "뷰 유형" + + :property.choice/already-exists "선택지가 이미 존재합니다." + :property.choice/cant-delete-built-in "내장 선택지는 삭제할 수 없습니다." + :property.choice/invalid "이 속성에 대한 잘못된 선택 \"{1}\": {2}" + + :property.color/blue "파랑" + :property.color/green "초록" + :property.color/purple "보라" + :property.color/red "빨강" + :property.color/yellow "노랑" + + :property.priority/high "높음" + :property.priority/low "낮음" + :property.priority/medium "보통" + :property.priority/urgent "긴급" + + :property.repeat/date "반복 날짜" + :property.repeat/datetime "반복 날짜 및 시간" + :property.repeat/every "마다" + :property.repeat/is-label "상태:" + :property.repeat/task "반복 작업" + :property.repeat/when "시점" + + :property.repeat-recur-unit/day "일" + :property.repeat-recur-unit/hour "시간" + :property.repeat-recur-unit/minute "분" + :property.repeat-recur-unit/month "월" + :property.repeat-recur-unit/week "주" + :property.repeat-recur-unit/year "년" + + :property.status/backlog "백로그" + :property.status/canceled "취소됨" + :property.status/doing "진행 중" + :property.status/done "완료" + :property.status/in-review "검토 중" + :property.status/todo "할 일" + + :property.validation/cant-convert-to-number "\"{1}\"을(를) 숫자로 변환할 수 없습니다." + :property.validation/cant-remove-required "필수 속성은 제거할 수 없습니다." + :property.validation/cant-set-self-value "자기 자신을 속성 값으로 설정할 수 없습니다." + :property.validation/duplicate "속성 '{1}'이(가) 이미 존재합니다." + :property.validation/invalid-name "잘못된 속성 이름입니다. 속성 이름은 페이지 참조 문자 '#' 또는 '[['으로 시작할 수 없습니다." + :property.validation/invalid-value "속성 \"{1}\"에 잘못된 값이 있습니다: {2}" + :property.validation/many-to-one "복수 값 속성을 단일 값 속성으로 변경할 수 없습니다." + :property.validation/protected "이 속성은 보호되어 있어 변경할 수 없습니다." + + :property.view-type/gallery "갤러리 뷰" + :property.view-type/list "목록 뷰" + :property.view-type/table "테이블 뷰" + + :publish/action "게시" + :publish/dialog-desc "비밀번호로 이 페이지를 보호할 수 있습니다. 공개 접근을 원하면 비워 두세요." + :publish/dialog-title "페이지 게시" + :publish/invalid-page-error "유효하지 않은 페이지" + :publish/password-optional-placeholder "비밀번호 (선택 사항)" + :publish/publish-error "게시에 실패했습니다" + :publish/published-to "{1}에 게시했습니다" + :publish/publishing "게시 중..." + :publish/unpublish "게시 취소" + :publish/unpublish-error "게시 취소에 실패했습니다" + :publish/unpublish-missing-page-id "게시 취소: 페이지 ID 없음" + :publish/unpublished "게시가 취소되었습니다" + + :query/advanced-results "고급 쿼리 결과" + :query/custom-view-error "커스텀 뷰 오류: {1}" + :query/error "쿼리 오류:" + :query/examples-desc "{{Queries documentation}}에서 더 많은 예제를 확인하세요." + :query/examples-title "쿼리 예제:" + :query/results-for "{1} 결과" + + :query.builder/add-filter-or-operator-placeholder "필터/연산자 추가" + :query.builder/between-end-label "종료 날짜" + :query.builder/between-journal-label "기간: {1} ~ {2}" + :query.builder/between-start-label "시작 날짜" + :query.builder/created-label "생성일" + :query.builder/filter "필터" + :query.builder/filter-full-text-search-label "전문 검색" + :query.builder/filter-page-label "페이지" + :query.builder/filter-page-reference-label "페이지 참조" + :query.builder/filter-sample-label "샘플" + :query.builder/operator-and-label "및" + :query.builder/operator-not-label "제외" + :query.builder/replace-with-label "다음으로 교체:" + :query.builder/search-label "검색: {1}" + :query.builder/show-built-in-properties "내장 속성 표시" + :query.builder/unwrap-operator "래핑 해제" + :query.builder/updated-label "수정일" + :query.builder/wrap-filter-with-label "이 필터를 다음으로 래핑:" + + :reference/blocks "블록 참조" + :reference/copy "참조 복사" + :reference/delete "참조 삭제" + :reference/page-filter "페이지 필터" + :reference/replace-with-embed "임베드로 대체" + :reference/replace-with-text "텍스트로 대체" + + :reference.filter/directions "필터 방향" + :reference.filter/excludes "제외 필터" + :reference.filter/includes "포함 필터" + :reference.filter/search-placeholder "검색 필터" + :reference.filter/title "참조 필터" + + :search/blank-input "빈 입력" + :search/full-text-placeholder "전문 검색" + :search/index-progress "인덱싱 {1}%" + :search/indices-rebuilt-success "검색 인덱스가 성공적으로 재구성되었습니다!" + :search/no-result "결과 없음" + :search/result-count "{1}개 결과" + + :search.find-in-page/input-placeholder "페이지에서 찾기" + :search.find-in-page/match-case "대소문자 구분" + :search.find-in-page/next-result "다음 결과" + :search.find-in-page/previous-result "이전 결과" + + :select/default-prompt "하나를 선택하십시오" + :select/default-select-multiple "복수 선택" + :select/new-option "+ 새 옵션: {1}" + + :server/error-notification "[서버] {1}" + :server/mcp-url-copied "MCP URL이 복사되었습니다" + :server/start "시작" + :server/stop "중지" + :server/title "HTTP API 서버" + + :server.config/auto-start-label "앱 시작 시 자동 시작" + :server.config/port-label "포트 범위" + :server.config/reset "초기화" + :server.config/save-and-apply "저장 및 적용" + :server.config/title "서버 설정" + + :server.status/closed "종료" + :server.status/closing "종료 중" + :server.status/error "오류" + :server.status/running "실행 중" + :server.status/starting "시작 중" + :server.status/stopped "중지" + + :server.token/add-new "새 토큰 추가" + :server.token/name-placeholder "서버 이름" + :server.token/regenerate-value "토큰 값 재생성" + :server.token/title "인증 토큰" + :server.token/update-success "토큰이 업데이트되었습니다" + :server.token/value-placeholder "값" + + :settings/account "계정" + :settings/advanced "고급" + :settings/ai "AI" + :settings/collaboration "협업" + :settings/editor "편집기" + :settings/encryption "암호화" + :settings/features "기능" + :settings/general "일반" + :settings/keymap "단축키" + :settings/plugins "플러그인 설정" + + :settings.account/storage-usage "총 저장용량 {1}GB 중 {2}GB ({3})" + :settings.account/synced-graphs "{2} 중 {1} 동기화된 그래프 ({3})" + + :settings.advanced/auto-chmod "파일 권한 자동 설정" + :settings.advanced/auto-chmod-desc "파일 저장 시 권한을 자동 설정합니다" + :settings.advanced/auto-updater "자동 업데이트" + :settings.advanced/developer-mode "개발자 모드" + :settings.advanced/developer-mode-desc "개발자 모드는 컨트리뷰터와 확장 프로그램 개발자들이 Logseq과의 연동을 더 쉽고 효율적으로 테스트할 수 있게 도와줍니다." + :settings.advanced/disable-sentry "사용 통계와 분석을 Logseq에 전송" + :settings.advanced/disable-sentry-desc "Logseq는 사용자의 로컬 그래프 데이터베이스 정보를 수집하지 않습니다." + :settings.advanced/network-proxy "네트워크 프록시" + + :settings.ai/enable-mcp-server "MCP 서버 활성화" + :settings.ai/enable-mcp-server-desc "MCP 서버를 활성화하여 AI 연동을 가능하게 합니다" + + :settings.editor/auto-expand-block-refs "블록 참조 자동 확장" + :settings.editor/auto-expand-block-refs-tip "이 설정은 블록을 확대할 때 블록 참조를 자동으로 펼칠지를 결정합니다." + :settings.editor/custom-date-format "선호하는 날짜 형식" + :settings.editor/enable-all-pages-public "모든 페이지 공개" + :settings.editor/enable-shortcut-tooltip "단축키 툴팁 활성화" + :settings.editor/enable-tooltip "툴팁 활성화" + :settings.editor/preferred-outdenting "논리적 아웃덴팅" + :settings.editor/preferred-outdenting-tip "왼쪽은 기본 상태, 오른쪽은 설정이 활성화된 상태를 표시합니다. " + :settings.editor/preferred-outdenting-tip-more "→ 더 알아보기" + :settings.editor/preferred-pasting-file "파일로 붙여넣기" + :settings.editor/preferred-pasting-file-hint "활성화하면, 인터넷으로부터 이미지를 붙여넣기할 때 이미지를 다운로드한 뒤 삽입합니다. 비활성화하면, 이미지의 링크를 붙여넣습니다." + :settings.editor/show-brackets "대괄호 표시" + :settings.editor/show-full-blocks "블록 참조의 모든 줄 표시" + :settings.editor/spell-checker "문법 검사" + :settings.editor/wide-mode "와이드 모드" + + :settings.features/enable-flashcards "플래시 카드 활성화" + :settings.features/enable-journals "일지 활성화" + :settings.features/home-default-page "기본 홈 페이지 설정" + :settings.features/home-default-page-update-success "홈 기본 페이지가 업데이트되었습니다" + :settings.features/journals-enable-success "저널 활성화" + :settings.features/login-prompt "Logseq의 새로운 기능을 먼저 체험하기 위해서는, Open Collective Sponsor가 되거나 Logseq의 Backer가 되어야 합니다. 먼저, 로그인 하십시오." + :settings.features/page-not-found "\"{1}\" 페이지가 아직 존재하지 않습니다. 먼저 해당 페이지를 만든 후 다시 시도하세요." + :settings.features/plugin-system "플러그인 시스템" + + :settings.general/accent-color "강조 색상" + :settings.general/accent-color-alert "강조 색상이 변경되었습니다. 적용하려면 새로고침하세요." + :settings.general/accent-color-logseq "Logseq 클래식 색상" + :settings.general/accent-color-none-desc "강조 색상을 취소합니다. 현재 베타 단계이며 주로 사용자 정의 테마와의 호환성을 위해 사용됩니다." + :settings.general/changelog "변경 기록" + :settings.general/check-for-updates "업데이트 확인" + :settings.general/current-revision-label "현재 리비전" + :settings.general/current-version "현재 버전" + :settings.general/custom-configuration "사용자 설정" + :settings.general/custom-global-configuration "전역 사용자 설정" + :settings.general/custom-theme "사용자 테마" + :settings.general/edit-config-edn "config.edn 수정" + :settings.general/edit-custom-css "custom.css 수정" + :settings.general/edit-export-css "export.css 수정" + :settings.general/edit-global-config-edn "전역 config.edn 수정" + :settings.general/editor-font "편집기 글꼴" + :settings.general/editor-font-set-global "전체 글꼴로 설정" + :settings.general/export-theme "웹 배포 테마" + :settings.general/language "언어" + :settings.general/native-titlebar "기본 타이틀바" + :settings.general/native-titlebar-desc "OS의 기본 타이틀바를 사용합니다 (재시작 필요)" + :settings.general/refresh-required-feedback "페이지 새로고침이 필요합니다" + :settings.general/release-channel "릴리즈 채널" + :settings.general/revision "리비전: {1}" + :settings.general/theme-dark "다크" + :settings.general/theme-light "라이트" + :settings.general/theme-system "시스템" + + :settings.sync-server/clear-success "동기화 서버 URL을 지웠습니다. 공식 Logseq Sync를 사용합니다." + :settings.sync-server/reset "기본값으로 복원" + :settings.sync-server/save-success "동기화 서버 URL을 저장했습니다." + :settings.sync-server/url "동기화 서버 URL" + :settings.sync-server/url-desc "셀프 호스팅 동기화를 위해 사용자 지정 HTTPS 동기화 서버 URL을 설정합니다. Logseq 인증 토큰이 이 서버로 전송되므로 신뢰할 수 있는 URL만 사용하세요. 비워 두면 공식 Logseq Sync를 사용합니다." + :settings.sync-server/url-invalid-error "URL은 https:// 또는 http://로 시작해야 합니다" + + :shell/input-command-title "명령어 입력" + + :shortcut.category/basics "기본" + :shortcut.category/block-command-editing "블록 편집 텍스트 조작" + :shortcut.category/block-editing "블록 편집 기본" + :shortcut.category/block-selection "블록 선택 조작" + :shortcut.category/formatting "서식" + :shortcut.category/navigating "탐색" + :shortcut.category/others "기타" + :shortcut.category/plugins "플러그인" + :shortcut.category/toggle "전환" + + :sidebar.left/favorites "즐겨찾기" + :sidebar.left/navigations "탐색" + :sidebar.left/recent-pages "최근 페이지" + + :sidebar.right/close "패널 닫기" + :sidebar.right/close-all "모든 패널 닫기" + :sidebar.right/close-others "다른 패널 닫기" + :sidebar.right/collapse "패널 접기" + :sidebar.right/collapse-all "모든 패널 접기" + :sidebar.right/collapse-others "다른 패널 접기" + :sidebar.right/expand "패널 펼치기" + :sidebar.right/expand-all "모든 패널 펼치기" + :sidebar.right/more "패널 더 보기" + :sidebar.right/open "사이드바에서 열기" + :sidebar.right/open-as-page "페이지로 열기" + :sidebar.right/resize-handle "구분선" + :sidebar.right/toggle "오른쪽 사이드바 전환" + + :storage/invalid-data-writing "유효하지 않은 데이터 쓰기입니다." + :storage/sqlitedb-error "SQLiteDB 오류: {1}" + :storage/sqlitedb-import-error "SQLiteDB 가져오기 오류: {1}" + :storage/sqlitedb-save-error "SQLiteDB 저장 오류: {1}" + + :storage.recycle/block-deleted-at "차단이 삭제되었습니다. {1}" + :storage.recycle/empty "휴지통이 비어 있습니다." + :storage.recycle/page-deleted-at "페이지가 삭제되었습니다. {1}" + :storage.recycle/readonly "휴지통 (읽기 전용)" + :storage.recycle/restore "복원" + :storage.recycle/retention-desc "삭제된 페이지와 블록은 복원되거나 30일 후 자동으로 정리될 때까지 여기에 남아 있습니다。" + :storage.recycle/title "휴지통" + + :sync/assets-downloading-count "자산 다운로드 중 ({1})" + :sync/assets-uploading-count "자산 업로드 중 ({1})" + :sync/creating-remote-graph "원격 그래프를 생성하는 중..." + :sync/downloading "다운로드 중..." + :sync/downloading-graph "{1} 다운로드 중 ..." + :sync/graph-count-exceed-limit "그래프 수가 제한을 초과했습니다" + :sync/invitation-sent "초대장을 보냈습니다" + :sync/last-synced-time-label "마지막 동기화 시간: {1}" + :sync/more-debug-info "추가 디버그 정보" + :sync/offline "오프라인" + :sync/online "온라인" + :sync/pending-local-changes "대기 중인 로컬 변경사항" + :sync/pending-server-changes "대기 중인 서버 변경사항" + :sync/something-wrong "동기화 오류가 발생했습니다" + :sync/start-sync "동기화 시작" + :sync/storage-exceed-limit "저장 용량이 제한을 초과했습니다" + :sync/uploading "업로드 중..." + :sync/user-doesnt-exist-yet "사용자가 아직 존재하지 않습니다" + + :theme/logseq-default "Logseq 기본 테마" + :theme/switch-to "{1} 테마로 전환" + + :ui/all-done "완료" + :ui/apply "적용" + :ui/cancel "취소" + :ui/close "닫기" + :ui/configure "구성" + :ui/confirm "확인" + :ui/copy "복사" + :ui/copy-all "모두 복사" + :ui/copy-to-clipboard "클립보드에 복사" + :ui/create "만들기" + :ui/date-natural-language-placeholder "예: 다음 주" + :ui/delete "삭제" + :ui/deleted "삭제됨" + :ui/dont-remind-me-again "다시 알리지 않기" + :ui/empty "비어 있음" + :ui/error "오류" + :ui/error-boundary-error "UI 오류 발생!\n {1}" + :ui/export "내보내기" + :ui/false "거짓" + :ui/fix "수정하기!" + :ui/frequently-used "자주 사용됨" + :ui/from "부터: " + :ui/host "호스트" + :ui/image "이미지" + :ui/label "라벨" + :ui/link "링크" + :ui/load-more "더 불러오기" + :ui/loading "로딩 중" + :ui/login "로그인" + :ui/logout "로그아웃" + :ui/off "꺼짐" + :ui/on "켜짐" + :ui/open "열기" + :ui/open-named "{1} 열기" + :ui/port "포트" + :ui/refresh "새로고침" + :ui/relaunch-confirm "이 변경 사항을 적용하려면 앱을 다시 시작해야 합니다. 지금 다시 시작하시겠습니까?" + :ui/remove-background "배경 제거" + :ui/reset "재설정" + :ui/run "실행" + :ui/save "저장" + :ui/show-less "적게 보기" + :ui/show-more "더 보기" + :ui/skip "건너뛰기" + :ui/submit "제출" + :ui/to "까지: " + :ui/toggle-theme "테마 전환" + :ui/true "참" + :ui/type "유형" + :ui/untitled "제목 없음" + :ui/use-current-time "현재 시간 사용" + :ui/yes "네" + + :updater/checking-for-updates "업데이트를 확인하는 중" + :updater/downloading-progress "업데이트 다운로드 중 ({1}%)" + :updater/quit-and-install "다시 시작하고 설치" + :updater/up-to-date "앱이 업데이트되었습니다 🎉" + :updater/update-available "업데이트 가능" + :updater/update-error "⚠️ 이런, 문제가 발생했습니다!\n{1}을 확인해 주세요." + :updater/update-ready-to-install "업데이트를 설치할 준비가 되었습니다" + + :view/add-new-view "새 뷰 추가" + :view/all "전체" + :view/export-edn "EDN 내보내기" + :view/linked-references "링크된 참조" + :view/new "새로 만들기" + :view/new-property "새 속성" + :view/new-view "새 뷰" + :view/rename "이름 변경" + :view/results "결과:" + :view/unlinked-references "링크되지 않은 참조" + + :view.filter/custom-date "사용자 지정 날짜" + :view.filter/empty "비어 있음" + :view.filter/filter "필터" + :view.filter/from "시작" + :view.filter/is-empty "비어 있음" + :view.filter/is-not-empty "비어 있지 않음" + :view.filter/match "일치" + :view.filter/match-all-filters "모든 필터 일치" + :view.filter/match-any-filter "하나 이상의 필터 일치" + :view.filter/operator-after "이후" + :view.filter/operator-before "이전" + :view.filter/operator-between "사이" + :view.filter/operator-date-after "날짜 이후" + :view.filter/operator-date-before "날짜 이전" + :view.filter/operator-is "같음" + :view.filter/operator-is-not "같지 않음" + :view.filter/operator-text-contains "텍스트 포함" + :view.filter/operator-text-not-contains "텍스트 미포함" + :view.filter/or "또는" + :view.filter/relative-1-day-ago "1일 전" + :view.filter/relative-1-month-ago "1개월 전" + :view.filter/relative-1-week-ago "1주 전" + :view.filter/relative-1-year-ago "1년 전" + :view.filter/relative-3-days-ago "3일 전" + :view.filter/relative-3-months-ago "3개월 전" + :view.filter/to "끝" + :view.filter/type-to-search "입력하여 검색" + + :view.table/ascending "오름차순" + :view.table/columns-visibility "열 표시" + :view.table/default-title "{1}개 노드" + :view.table/delete-sort "정렬 삭제" + :view.table/descending "내림차순" + :view.table/drag-to-reorder "드래그로 재정렬" + :view.table/group-by "그룹화" + :view.table/group-journal-date "저널 날짜" + :view.table/group-page-created-date "페이지 생성 날짜" + :view.table/group-page-name "페이지 이름" + :view.table/group-page-updated-date "페이지 업데이트 날짜" + :view.table/live-query-title "라이브 쿼리 ({1})" + :view.table/name-column "이름" + :view.table/no-group-value "{1} 없음" + :view.table/page "페이지" + :view.table/pages "페이지" + :view.table/pin "고정" + :view.table/row-number "행 번호" + :view.table/select-all "모두 선택" + :view.table/select-column "열 선택" + :view.table/select-order "정렬 선택" + :view.table/select-row "행 선택" + :view.table/selected-count "선택됨: {1}" + :view.table/sort-ascending "오름차순" + :view.table/sort-descending "내림차순" + :view.table/sort-groups-by "그룹 정렬 기준" + :view.table/sort-groups-order "그룹 정렬 방향" + :view.table/total-refs-count "총 참조 수" + :view.table/unpin "고정 해제" + + :window/close "창 닫기" + :window/exit-fullscreen "전체 화면 종료" + :window/maximize "최대화" + :window/minimize "최소화" + :window/restore "복원" + + :youtube/embed-first-reminder-mobile "먼저 YouTube 동영상을 포함한 후 이 아이콘을 사용하세요.\n기억하세요: 모바일에서 원본 YouTube URL을 붙여넣어 포함된 동영상을 사용할 수 있습니다." + :youtube/player-not-ready "YouTube 플레이어가 아직 준비되지 않았습니다." + :youtube/timestamps-not-available-mobile "YouTube 타임스탬프는 아직 모바일에서 사용할 수 없습니다." + + :zotero/attachments "첨부 파일" + :zotero/imported-file-warning "이 파일은 Zotero에서 가져온 파일입니다, Logseq에서 파일을 열려면 Zotero 데이터 디렉터리를 설정하세요." + :zotero/linked-file-warning "이 파일은 Zotero에 연결된 파일입니다, Logseq에서 파일을 열려면 Zotero 연결 첨부파일 기본 디렉터리를 설정하세요." + :zotero/notes "노트" +} diff --git a/src/resources/dicts/nb-no.edn b/src/resources/dicts/nb-no.edn index b549fdfb42..a4380bb92c 100644 --- a/src/resources/dicts/nb-no.edn +++ b/src/resources/dicts/nb-no.edn @@ -1,465 +1,1861 @@ -{:help/start "Kom i gang" - :help/about "Om Logseq" - :help/roadmap "Veikart" - :help/bug "Feilrapport" - :help/feature "Funksjonsforespørsel" - :help/changelog "Endringslogg" - :help/blog "Logseq Blogg" - :help/docs "Dokumentasjon" - :help/privacy "Personvernerklæring" - :help/terms "Vilkår" - :help/awesome-logseq "Fantastiske Logseq" - :help/shortcuts "Tastatursnarveier" - :help/shortcuts-triggers "Utløsere" - :help/shortcut "Snarvei" - :help/slash-autocomplete "Skråstrek Autofullføring" - :help/reference-autocomplete "Sidereferanse Autofullføring" - :help/block-reference "Blokkreferanse" - :help/forum-community "Forum-samfunn" - :help/open-link-in-sidebar "Åpne lenke i sidestolpe" - :help/context-menu "Kontekstmeny" - :help/markdown-syntax "Markdown syntaks" - :bold "Fet" - :italics "Kursiv" - :highlight "Markering" - :strikethrough "Gjennomstreking" - :code "Kode" - :right-side-bar/help "Hjelp" - :right-side-bar/switch-theme "Tema moduser" - :right-side-bar/contents "Innhold" - :right-side-bar/page-graph "Sidegraf" - :right-side-bar/block-ref "Blokkreferanse" - :right-side-bar/graph-view "Grafvisning" - :right-side-bar/separator "Høyre sidestolpe størrelsesendring" - :right-side-bar/show-journals "Vis dagbøker" - :left-side-bar/journals "Dagbøker" - :left-side-bar/nav-favorites "Favoritter" - :left-side-bar/nav-recent-pages "Nylig" - :page/make-public "Gjør den offentlig for publisering" - :page/make-private "Gjør den privat" - :page/delete "Slett side" - :page/add-to-favorites "Legg til i Favoritter" - :page/unfavorite "Fjern side fra Faoritter" - :block/name "Navn på siden" - :file/name "Filnavn" - :file/last-modified-at "Sist endret" - :file/no-data "Ingen data" - :file/format-not-supported "Format .{1} er ikke støttet." - :page/created-at "Opprettet" - :page/updated-at "Oppdatert" - :page/backlinks "Tilbakekoblinger" - :editor/block-search "Søk etter en blokk" - :text/image "Bilde" - :asset/confirm-delete "Er du sikker på at du vil slette denne {1}?" +{ + :account/authentication "Autentisering" + :account/benefits-desc "Med en Logseq-konto kan du få tilgang til skybaserte tjenester som Logseq Sync og alfa-/betafunksjoner." + :account/billing "Fakturering" + :account/billing-expired-on-label "Pro-abonnement utløp: {1}" + :account/billing-expires-on-label "Pro-abonnement utløper: {1}" + :account/billing-next-date-label "Neste faktureringsdato: {1}" + :account/core-features "Tilgang til kjernefunksjonene i Logseq" + :account/current-plan "Gjeldende abonnement" + :account/delete-account "Slett konto" + :account/discover-sync-desc "Oppdag kraften i {1}" + :account/early-access-alpha-beta "Tidlig tilgang til alfa-/betafunksjoner" + :account/first-name "Fornavn" + :account/free-plan-sync-limit "1 synkronisert graf (opptil 50 MB, kun notater)" + :account/last-name "Etternavn" + :account/manage-plan "Administrer abonnement" + :account/month "måned" + :account/no-asset-syncing "Ingen synkronisering av vedlegg" + :account/open-invoices "Åpne fakturaer" + :account/plan-free "Gratis" + :account/plan-free-summary "Kom i gang med grunnleggende synkronisering" + :account/plan-pro "Pro" + :account/plan-pro-summary "Lås opp avansert synkronisering og mer" + :account/pro-plan-sync-limit "10 synkroniserte grafer (opptil 5 GB hver)" + :account/profile "Profil" + :account/refresh-token-warning "Token-oppdatering: uvanlig status" + :account/reset-password "Tilbakestill passord" + :account/sign-up "Registrer deg" + :account/sync-assets-limit "Synkroniser vedlegg opptil 100 MB per fil" + :account/synced-status "Synkronisert" + :account/unlimited-unsynced-graphs "Ubegrenset antall usynkroniserte grafer" + :account/upcoming-cloud-features "Kommende skybaserte funksjoner, inkludert Logseq Publish" + :account/upgrade-plan "Oppgrader abonnement" + :account/username "Brukernavn" + + :asset/acceptable-file-extensions "Godkjente filendelser" + :asset/add-assets "Legg til vedlegg" + :asset/add-directory "Legg til mappe" + :asset/alias-already-exists "Aliasnavnet \"{1}\" finnes allerede!" + :asset/alias-directories "Aliasmapper" + :asset/alias-directory-path-label "Mappesti:" + :asset/alias-name-dialog-title "Hva er aliasnavnet for denne valgte mappen?" + :asset/alias-name-label "Aliasnavn:" + :asset/alias-name-placeholder "f.eks. Bøker" + :asset/align "Justering" + :asset/align-center "Midtstill" + :asset/align-left "Venstre" + :asset/align-right "Høyre" + :asset/already-exists "ressurs eksisterer allerede, tittel: {1}, nodereferanse: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Overordnet element kan ikke bygges inn som egen egenskap" + :asset/confirm-delete-image "Er du sikker på at du vil slette dette bildet?" + :asset/copy "Kopier" + :asset/copy-image-unsupported-extension "Kopiering av bilder støttes ikke for {1}-filer" + :asset/create-local-copy-warning "Oppretter en lokal kopi fra et eksternt vedlegg. PDF-merknader krever et lokalt vedlegg for å fungere riktig." + :asset/create-title "Opprett vedlegg" + :asset/delete "Slett" + :asset/downloading "Laster ned" + :asset/drop-hint "Dra og slipp filer her, eller klikk for å velge filer" + :asset/edit-title "Rediger vedlegg" + :asset/external-url-label "Ekstern URL for vedlegg:" + :asset/file-extension-placeholder "f.eks. mp3" + :asset/maximize "Maksimer" + :asset/open-in-browser "Åpne i nettleser" :asset/physical-delete "Fjerner også filen (merk at den ikke kan gjenopprettes)" - :editor/copy "Kopier" - :editor/cut "Klipp ut" - :content/copy-block-ref "Kopier blokkreferanse" - :content/open-in-sidebar "Åpne i sidefeltet" - :content/click-to-edit "Klikk for å redigere" - :settings-page/edit-config-edn "Rediger config.edn for nåværende repo" - :settings-page/edit-custom-css "Rediger custom.css" - :settings-page/custom-configuration "Tilpasset konfigurasjon" - :settings-page/custom-theme "Tilpasset tema" - :settings-page/show-brackets "Vis klammer" - :settings-page/spell-checker "Stavekontroll" - :settings-page/auto-updater "Automatisk oppdatering" - :settings-page/disable-sentry "Send bruksdata og diagnostikk til Logseq" - :settings-page/preferred-outdenting "Skru på logiske innrykk" - :settings-page/custom-date-format "Foretrukket datoformat" - :settings-page/enable-shortcut-tooltip "Skru på tooltip for snarveier" - :settings-page/enable-tooltip "Aktiver verktøytips" - :settings-page/enable-journals "Aktiver dagbøker" - :settings-page/enable-all-pages-public "Aktiver alle sider som offentlige ved publisering" - :settings-page/home-default-page "Angi standard hjemmeside" - :settings-page/clear-cache "Slett hurtigbuffer" - :settings-page/clear "Slett" - :settings-page/developer-mode "Utviklermodus" - :settings-page/developer-mode-desc "Utviklermodus hjelper bidragsytere og tilleggsutviklere med å teste sine integrasjoner mot Logseq mer effektivt." - :settings-page/current-version "Nåværende versjon" - :settings-page/tab-general "Generelt" - :settings-page/tab-advanced "Avansert" - :settings-page/custom-global-configuration "Egendefinert global konfigurasjon" - :settings-page/edit-global-config-edn "Rediger global config.edn" - :settings-page/export-theme "Eksporter tema" - :settings-page/tab-features "Funksjoner" - :yes "Ja" - :cancel "Avbryt" - :close "Lukk" - :delete "Slett" - :graph "Graf" - :export "Eksport" - :export-graph "Eksporter graf" - :export-page "Eksporter side" - :export-markdown "Eksporter som standard Markdown (ingen blokk-egenskaper)" - :export-public-pages "Eksporter offentlige sider" - :all-graphs "Alle grafer" - :all-files "Alle filer" - :all-journals "Alle dagbøker" - :settings "Innstillinger" - :plugins "Utvidelser" - :themes "Tema" - :relaunch-confirm-to-work "Appen må startes på nytt for at dette skal virke. Vil du starte på nytt nå?" - :import "Importer" - :help-shortcut-title "Klikk for å sjekke snarveier og andre tips" - :login "Logg inn" - :logout "Logg ut" - :download "Last ned" - :language "Språk" - :remove-background "Fjern bakgrunn" + :asset/ref-block "Referanseblokk" + :asset/select-file "Velg vedleggsfil" + :asset/select-from-disk "Velg fra disk" + :asset/selected-directories "Valgte mapper:" + :asset/show-file-in-folder "Vis fil i mappe" + :asset/size-too-large "Filen er for stor" + :asset/syncing "Synkroniserer" + :asset/title-label "Vedleggstittel:" + :asset/transfer-placeholder "{1} vedlegg..." + :asset/uploading "Laster opp" - :help/shortcut-page-title "Tastatursnarveier" + :block/click-to-fix-query "Klikk for å fikse spørring: {1}" + :block/copy-ref "Kopier blokkreferanse" + :block/copy-url "Kopier blokk-URL" + :block/created-label "Opprettet: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' er utdatert. Bruk '/Math block'-kommandoen i stedet." + :block/deprecated-query-syntax "#+BEGIN_QUERY er utdatert. Bruk '/Advanced Query'-kommandoen i stedet." + :block/deprecated-quote "#+BEGIN_QUOTE er utdatert. Bruk '/Quote'-kommandoen i stedet." + :block/empty-url "Tom URL" + :block/excalidraw-no-longer-supported "Excalidraw støttes ikke lenger som standard, vi planlegger å støtte det gjennom utvidelser." + :block/extraction-error "Blokkekstraksjonfeil" + :block/hide-query "Skjul spørring" + :block/invalid-hiccup "Ugyldig hiccup" + :block/invalid-link "Ugyldig lenke" + :block/invalid-url "Ugyldig URL" + :block/large-block-warning "Store blokker vil ikke kunne redigeres eller søkes i for å unngå at appen blir treg. Bruk en annen editor for å redigere denne blokken." + :block/last-edited-label "Sist redigert: {1}" + :block/not-found-warning "Ingen blokk funnet" + :block/open-block-references "Åpne blokkreferanser" + :block/practice "Øv" + :block/practice-cards "Øv på kort" + :block/ref-nesting-too-deep "Blokkreferanse-nesting er for dyp" + :block/remove-tag "Fjern tagg" + :block/remove-this-tag "Fjern denne taggen" + :block/render-error "Feil ved blokkgjengivelse:" + :block/set-query "Sett spørring" + :block/set-query-label "Sett spørring:" + :block/sort-order "Sorteringsrekkefølge" + :block/status-history "Statushistorikk" + :block/untitled-query "Navnløs spørring" - :plugin/installed "Installert" - :plugin/installing "Innstallerer" - :plugin/install "Innstaller" - :plugin/reload "Last på nytt" - :plugin/update "Oppdater" - :plugin/check-update "Se etter oppdatering" - :plugin/check-all-updates "Se etter alle oppdateringer" - :plugin/refresh-lists "Oppfrisk lister" - :plugin/enabled "Aktivert" - :plugin/disabled "Deaktivert" - :plugin/update-available "Oppdatering tilgjengelig" - :plugin/updating "Oppdaterer" - :plugin/uninstall "Avinstaller" - :plugin/marketplace "Markedsplass" - :plugin/downloads "Nedlastinger" - :plugin/stars "Stjerner" - :plugin/all "Alle" - :plugin/unpacked "Utpakket" - :plugin/delete-alert "Vil du avinstallere utvidelse [{1}]?" - :plugin/open-settings "Åpne innstillinger" - :plugin/open-package "Åpne pakke" - :plugin/load-unpacked "Last inn utpakket utvidelse" - :plugin/restart "Start App på nytt" - :plugin/unpacked-tips "Velg mappe for utvidelse" - :plugin/contribute "✨ Skriv og send inn en ny utvidelse" - :plugin/custom-js-alert "Fant custom.js fil, får den lov til å kjøre? (Hvis du ikke forstår innholdet i denne filen er det anbefalt å ikke la den kjøre. Dette kan ha sikkerhetsrisiko.)" + :block.macro/embed-deprecated "{{embed}} er foreldet. Bruk '/Node embed'-kommandoen i stedet." + :block.macro/namespace-deprecated "{{namespace}} er foreldet. Bruk {1}-funksjonen i stedet." + :block.macro/query-deprecated "{{query}} er foreldet. Bruk '/Query'-kommandoen i stedet." + :block.macro/unsupported-name "Makronavn ikke støttet: {1}" - :pdf/copy-ref "Kopier ref" - :pdf/copy-text "Kopier tekst" - :pdf/linked-ref "Lenkede referanser" - :pdf/toggle-dashed "Stiplet stil for utheving av område" + :block.reaction/emoji-required-warning "Emoji påkrevd" + :block.reaction/unsupported-emoji-warning "Ustøttet reaksjonsemoji" - :updater/new-version-install "En ny versjon er lastet ned. Start applikasjonen på nytt for å installere." - :updater/quit-and-install "Start på nytt for å installere" + :bug-report/desc "Rapporter en feil" + :bug-report/title "Rapporter feil" - :select/default-prompt "Velg en" - :select.graph/prompt "Velg en graf" - :select.graph/empty-placeholder-description "Ingen grafer matcher. Vil du legge til en ny?" - :select.graph/add-graph "Ja, legg til en ny graf" + :bug-report.clipboard/action-desc "Sjekk utklippstavle" + :bug-report.clipboard/action-title "Utklippstavleinspektør" + :bug-report.clipboard/desc "Bruk utklippstavleinspektøren hvis du opplever kopierings- og limproblemer" + :bug-report.clipboard/title "Utklippstavle" + + :bug-report.inspector/back "Tilbake" + :bug-report.inspector/clipboard-desc "Utklippstavleinnhold" + :bug-report.inspector/copied "Kopiert til utklippstavle" + :bug-report.inspector/copy "Kopier" + :bug-report.inspector/copy-desc "Kopier diagnoserapport" + :bug-report.inspector/create-issue "Opprett sak" + :bug-report.inspector/create-issue-desc "Nå kan du rapportere resultatet som ble limt inn på utklippstavlen. Lim inn resultatet i delen 'Additional Context' og oppgi hvor du kopierte det opprinnelige innholdet fra. Takk!" + :bug-report.inspector/desc "Trykk {1} for å inspisere data på utklippstavlen\neller trykk her for å lime inn om du bruker mobilversjonen" + :bug-report.inspector/placeholder "Lim inn innholdet her" + :bug-report.inspector/tip "Tips: Bruk Ctrl+V for å lime inn" + :bug-report.inspector/title "Utklippstavleinspektør" + + :bug-report.issue/action-desc "Se kjente problemer" + :bug-report.issue/action-title "GitHub-saker" + :bug-report.issue/desc "Sjekk om problemet ditt allerede er rapportert" + :bug-report.issue/report-link "Rapporter problem" + :bug-report.issue/title "Kjente problemer" + + :class/add-property "Legg til tagg-egenskap" + :class/tag-properties-desc "Tagg-egenskaper arves av alle noder som bruker taggen. For eksempel arver hver #Task-node 'Status' og 'Priority'." + :class/tagged-nodes "Taggede noder" + + :class.built-in/asset "Vedlegg" + :class.built-in/card "Kort" + :class.built-in/cards "Kort" + :class.built-in/code-block "Kode" + :class.built-in/journal "Journal" + :class.built-in/math-block "Matematikk" + :class.built-in/page "Side" + :class.built-in/pdf-annotation "PDF-merknad" + :class.built-in/property "Egenskap" + :class.built-in/query "Spørring" + :class.built-in/quote-block "Sitat" + :class.built-in/root "Rottagg" + :class.built-in/tag "Tagg" + :class.built-in/task "Oppgave" + :class.built-in/template "Mal" + :class.built-in/whiteboard "Tavle" + + :class.validation/built-in-extends-change "Arv av innebygde elementer kan ikke endres." + :class.validation/cant-add-tag-on-built-in "Kan ikke legge til tag på den innebygde \"{1}\"." + :class.validation/cant-remove-private-tags "Kan ikke fjerne private tagger: {1}." + :class.validation/cant-remove-tag-built-in "Kan ikke fjerne taggen med innebygd #{1}." + :class.validation/cant-remove-tag-on-built-in "Kan ikke fjerne taggen på den innebygde \"{1}\"." + :class.validation/cant-set-tag-built-in "Kan ikke angi tag med innebygd #{1}." + :class.validation/duplicate "Tagg '{1}' finnes allerede." + :class.validation/extends-cycle "Syklus i arv oppdaget." + :class.validation/invalid-extends-type "Ugyldig arvstype." + :class.validation/parents-must-be-tags "Overordnede tagger må være tagger." + :class.validation/tag-with-non-tag "Kan ikke angi tag med innebygd side som ikke er en tag \"{1}\"." + + :cmdk.action/apply-theme "Bruk tema" + :cmdk.action/copy-ref "Kopier referanse" + :cmdk.action/create "Opprett" + :cmdk.action/filter "Filter" + :cmdk.action/open "Åpne" + :cmdk.action/open-in-sidebar "Åpne i sidepanel" + :cmdk.action/search "Søk" + :cmdk.action/trigger "Utfør" + + :cmdk.create/configure-tag "Konfigurer tagg" + :cmdk.create/page "Opprett side" + :cmdk.create/tag "Opprett tagg" + + :cmdk.error/no-block-link "Ingen lenke i denne blokken." + :cmdk.error/no-page-link "Ingen lenke på denne siden." + :cmdk.error/no-search-item-link "Ingen lenke i dette søkeresultatet." + + :cmdk.filter/add "Legg til filter" + :cmdk.filter/codes "Kun kode" + :cmdk.filter/commands "Kun kommandoer" + :cmdk.filter/current-page "Kun gjeldende side" + :cmdk.filter/files "Kun filer" + :cmdk.filter/nodes "Kun noder" + :cmdk.filter/only-label "Kun søk:" + :cmdk.filter/themes "Kun temaer" + + :cmdk.group/codes "Kode" + :cmdk.group/commands "Kommandoer" + :cmdk.group/create "Opprett" + :cmdk.group/current-page "Gjeldende side" + :cmdk.group/files "Filer" + :cmdk.group/filters "Filtre" + :cmdk.group/nodes "Noder" + :cmdk.group/recently-updated "Nylig oppdatert" + :cmdk.group/themes "Temaer" + + :cmdk.info/configure-tag "Konfigurer #{1}" + :cmdk.info/create-page "Opprett side '{1}'" + :cmdk.info/create-tag "Opprett tagg '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Legg til grafilter" + :cmdk.input/default-placeholder "Hva leter du etter?" + :cmdk.input/move-blocks-placeholder "Flytt blokker" + :cmdk.input/type-page-name-placeholder "Skriv sidenavn" + + :cmdk.tip/clear-filter "Trykk {1} for å tømme søkefilteret" + :cmdk.tip/filter-results "Trykk {1} for å filtrere søkeresultater" + :cmdk.tip/label "Tips:" + :cmdk.tip/open-sidebar "Trykk {1} for å åpne søk i sidepanelet" + + :collaboration/email-address "E-postadresse" + :collaboration/invite "Inviter" + :collaboration/members "Medlemmer:" + :collaboration/remove-access "Fjern tilgang" + :collaboration/remove-access-error "Kunne ikke fjerne medlem" - :host "Vert" - :save "Lagrer..." - :settings-of-plugins "Innstillinger for utvidelser" - :graph/all-graphs "Alle grafer" - :page/copy-page-url "Kopier side URL" - :plugin/not-installed "Ikke installert" - :settings-page/edit-export-css "Rediger export.css" - :settings-page/network-proxy "Nettverksproxy" - :settings-page/plugin-system "System for utvidelser" - :asset/copy "Kopier bilde" - :asset/delete "Slett bilde" - :asset/maximize "Maksimer bilde" - :asset/open-in-browser "Åpne bilde i nettleser" - :asset/show-in-folder "Vis bilde i mappe" - :linked-references/filter-search "Søk i lenkede referanser" - :auto-heading "Automatisk overskrift" - :heading "Overskrift {1}" - :remove-heading "Fjern overskrift" - :untitled "Uten navn" - :accessibility/skip-to-main-content "Hopp til hovedinnhold" :color/blue "Blå" + :color/crimson "Karmosin" + :color/cyan "Cyan" + :color/grass "Gressgrønn" :color/gray "Grå" :color/green "Grønn" + :color/indigo "Indigo" + :color/orange "Oransje" :color/pink "Rosa" + :color/plum "Plomme" :color/purple "Lilla" :color/red "Rød" + :color/teal "Blågrønn" + :color/tomato "Tomat" + :color/violet "Fiolett" :color/yellow "Gul" - :content/copy-block-url "Kopier blokk URL" - :content/copy-export-as "Kopier / Eksporter som.." - :content/copy-ref "Kopier denne referansen" - :content/delete-ref "Slett denne referansen" - :content/replace-with-embed "Erstatt med innebygging" - :content/replace-with-text "Erstatt med tekst" - :context-menu/make-a-flashcard "Lag et Flashcard" - :context-menu/toggle-number-list "Veksle nummerliste" - :dev/show-block-ast "(Dev) Vis blokk AST" - :dev/show-block-data "(Dev) Vis blokk data" - :dev/show-page-data "(Dev) Vis side data" - :editor/collapse-block-children "Skjul alle" - :editor/cycle-todo "Roterer TODO statusen for gjeldende element" - :editor/delete-selection "Slett valgte blokker" - :editor/expand-block-children "Utvid alle" - :notification/clear-all "Fjern alt" - :page/logseq-is-having-a-problem "Logseq har et problem. Prøver å få den tilbake ..." - :page/something-went-wrong "Noe gikk galt" - :page/step "Steg {1}" - :page/try "Prøv" - :pdf/doc-metadata "Dokument metadata" - :pdf/hl-block-colored "Farget merkelapp for å label for utheve blokk" - :plugin/found-n-updates "Fant {1} oppdatering" - :plugin/found-updates "Nye oppateringer" - :plugin/update-all-selected "Oppdater alle valgte" - :plugin/updates-downloading "Laster ned oppdateringer" - :plugin.install-from-file/menu-title "Installer fra plugins.edn" - :plugin.install-from-file/notice "Følgende utvidelser vil erstatte dine utvidelser:" - :plugin.install-from-file/success "Alle utvidelser er installert!" - :plugin.install-from-file/title "Installer utvidelser fra plugins.edn" - :search-item/page "Side" - :select/default-select-multiple "Velg en eller flere" - :settings-page/auto-expand-block-refs "Utvid blokkreferanser automatisk når zoomet inn..." - :settings-page/clear-cache-warning "Tømming av hurtigbufferen vil forkaste dine åpne grafer. Du m..." - :settings-page/disable-sentry-desc "Logseq vil aldri samle inn dine lokale graf sin databas..." - :settings-page/login-prompt "For å få tilgang til nye funksjoner før alle andre må du..." - :settings-page/preferred-pasting-file "Foretrekk innliming av fil" - :settings-page/show-full-blocks "Vis alle linjer av en blokkreferanse" - :shortcut.category/formatting "Formatering" - :shortcut.category/basics "Basis" - :shortcut.category/navigating "Navigasjon" - :shortcut.category/block-editing "Blokkredigering generelt" - :shortcut.category/block-command-editing "Blokkredigering kommandoer" - :shortcut.category/block-selection "Blokkseleksjon (trykk ESC for å avslutte)" - :shortcut.category/toggle "Veksling" - :shortcut.category/others "Annet" - :command.editor/indent "Innrykk inn" - :command.editor/outdent "Innrykk ut" - :command.editor/move-block-up "Flytt blokk opp" - :command.editor/move-block-down "Flytt blokk ned" - :command.editor/new-block "Opprett ny blokk" - :command.editor/new-line "Ny linje i nåværende blokk" - :command.editor/zoom-in "Zoom inn / Fremover" - :command.editor/zoom-out "Zoom ut / Tilbake" - :command.editor/follow-link "Følg lenke under markøren" - :command.editor/open-link-in-sidebar "Åpne lenke i sidestolpe" - :command.editor/expand-block-children "Utvid" - :command.editor/collapse-block-children "Slå sammen" - :command.editor/select-block-up "Velg blokk over" - :command.editor/select-block-down "Velg blokk under" - :command.editor/select-all-blocks "Velg alle blokker" - :command.ui/toggle-help "Vis hjelp" - :command.go/search "Fulltekst søk" - :command.ui/toggle-document-mode "Aktiver dokumentmodus" - :command.ui/toggle-contents "Åpne favoritter i sidestolpen" - :command.ui/toggle-theme "Veksle mellom lyst og mørkt tema" - :command.ui/toggle-left-sidebar "Aktiver venstre sidestolpe" - :command.ui/toggle-right-sidebar "Aktiver høyre sidestolpe" - :command.ui/toggle-settings "Åpne innstillinger" - :command.go/journals "Gå til dagbok" - :command.ui/toggle-wide-mode "Aktiver vid-modus" - :command.ui/toggle-brackets "Aktiver vising av klammer" - :command.search/re-index "Gjenoppbygg søkeindeks" - :command.editor/bold "Fet" - :command.editor/italics "Kursiv" - :command.editor/insert-link "HTML lenke" - :command.editor/highlight "Markering" - :command.editor/undo "Angre" - :command.editor/redo "Gjør om" - :command.editor/copy "Kopier" - :command.editor/cut "Klipp ut" - :command.editor/up "Flytt markøren opp / Velg opp" - :command.editor/down "Flytt markøren ned / Velg ned" - :command.editor/left "Flytt markøren til venstre / Åpne valgt blokk på begynnelsen" - :command.editor/right "Flytt markøren til høyre / Åpne valgt blokk på slutten" - :command.editor/backspace "Backspace / Slett bakover" - :command.editor/delete "Delete / Slett forover" - :command.editor/cycle-todo "Veksle TODO status for valg linje" - :command.editor/clear-block "Slett alt innhold i blokken" - :command.editor/kill-line-before "Slett linje foran markøren" - :command.editor/kill-line-after "Slett linsje etter markøren" - :command.editor/beginning-of-block "Flytt markøren til begynnelsen av blokken" - :command.editor/end-of-block "Flytt markøren til slutten av blokken" - :command.editor/forward-word "Flytt markøren frem ett ord" - :command.editor/backward-word "Flytt markøren bakover ett ord" - :command.editor/forward-kill-word "Slett ett ord forover" - :command.editor/backward-kill-word "Slett ett ord bakover" - :command.editor/open-edit "Rediger valgt blokk" - :command.editor/delete-selection "Slett valgte blokker" - :command.editor/toggle-open-blocks "Veksle åpne blokker (slå sammen eller utvid alle blokker)" + :command.auto-complete/complete "Autofullfør: Bruk valgt punkt" + :command.auto-complete/meta-complete "Meta autofullfør" :command.auto-complete/next "Autofullfør: Velg neste punkt" :command.auto-complete/prev "Autofullfør: Velg forrige punkt" :command.auto-complete/shift-complete "Autofullfør: Åpne valgt punkt i sidestolpen" - :command.cards/toggle-answers "Kort: vis/skjul svar/clozes" - :command.command/run "Kjør git kommando" - :command.command/toggle-favorite "Legg til eller fjern fra favoritter" - :command.editor/escape-editing "Avslutt redigering" - :command.editor/insert-youtube-timestamp "Sett inn YouTube tidsstempel" - :command.editor/paste-text-in-one-block-at-point "Lim inn tekst i blokk ved markør" - :command.editor/select-down "Velg innhold under" - :command.editor/select-up "Velg innhold over" - :command.editor/strike-through "Gjennomstreking" + + :command.command-palette/toggle "Kommandopalett" + + :command.editor/add-property "Legg til egenskap" + :command.editor/add-property-deadline "Legg til frist" + :command.editor/add-property-icon "Legg til ikon" + :command.editor/add-property-priority "Legg til prioritet" + :command.editor/add-property-status "Legg til status" + :command.editor/add-reaction "Legg til reaksjon" + :command.editor/backspace "Backspace / Slett bakover" + :command.editor/backward-kill-word "Slett ett ord bakover" + :command.editor/backward-word "Flytt markøren bakover ett ord" + :command.editor/beginning-of-block "Flytt markøren til begynnelsen av blokken" + :command.editor/bold "Fet" + :command.editor/clear-block "Slett alt innhold i blokken" + :command.editor/collapse-block-children "Slå sammen" + :command.editor/copy "Kopier" :command.editor/copy-embed "Kopier en blokkinnebygging som peker til nåværende blokk" + :command.editor/copy-page-url "Kopier side-URL" :command.editor/copy-text "Kopier utvalg som tekst" + :command.editor/cut "Klipp ut" + :command.editor/cycle-todo "Veksle TODO status for valg linje" + :command.editor/delete "Delete / Slett forover" + :command.editor/delete-selection "Slett valgte blokker" + :command.editor/down "Flytt markøren ned / Velg ned" + :command.editor/end-of-block "Flytt markøren til slutten av blokken" + :command.editor/escape-editing "Avslutt redigering" + :command.editor/expand-block-children "Utvid" + :command.editor/follow-link "Følg lenke under markøren" + :command.editor/forward-kill-word "Slett ett ord forover" + :command.editor/forward-word "Flytt markøren frem ett ord" + :command.editor/highlight "Markering" + :command.editor/indent "Innrykk inn" + :command.editor/insert-link "Sett inn lenke" + :command.editor/insert-youtube-timestamp "Sett inn YouTube tidsstempel" + :command.editor/italics "Kursiv" + :command.editor/jump "Hopp" + :command.editor/kill-line-after "Slett linsje etter markøren" + :command.editor/kill-line-before "Slett linje foran markøren" + :command.editor/left "Flytt markøren til venstre / Åpne valgt blokk på begynnelsen" + :command.editor/move-block-down "Flytt blokk ned" + :command.editor/move-block-up "Flytt blokk opp" + :command.editor/move-blocks "Flytt blokker" + :command.editor/new-block "Opprett ny blokk" + :command.editor/new-line "Ny linje i nåværende blokk" + :command.editor/open-edit "Rediger valgt blokk" + :command.editor/open-link-in-sidebar "Åpne lenke i sidestolpe" + :command.editor/open-selected-blocks-in-sidebar "Åpne valgte blokker i sidepanel" + :command.editor/outdent "Innrykk ut" + :command.editor/paste-text-in-one-block-at-point "Lim inn tekst i blokk ved markør" + :command.editor/quick-add "Hurtigtillegg" + :command.editor/redo "Gjør om" + :command.editor/right "Flytt markøren til høyre / Åpne valgt blokk på slutten" + :command.editor/select-all-blocks "Velg alle blokker" + :command.editor/select-block-down "Velg blokk under" + :command.editor/select-block-up "Velg blokk over" + :command.editor/select-down "Velg innhold under" + :command.editor/select-parent "Velg overordnet" + :command.editor/select-up "Velg innhold over" + :command.editor/set-tags "Sett tagger" + :command.editor/strike-through "Gjennomstreking" + :command.editor/toggle-block-children "Vis/skjul underordnede blokker" + :command.editor/toggle-display-hidden-properties "Vis/skjul skjulte egenskaper" + :command.editor/toggle-number-list "Nummerert liste" + :command.editor/toggle-open-blocks "Veksle åpne blokker (slå sammen eller utvid alle blokker)" + :command.editor/undo "Angre" + :command.editor/up "Flytt markøren opp / Velg opp" + :command.editor/zoom-in "Zoom inn / Fremover" + :command.editor/zoom-out "Zoom ut / Tilbake" + + :command.go/all-graphs "Alle grafer" :command.go/all-pages "Gå til alle sider" :command.go/backward "Bakover" - :command.go/flashcards "Veksle flashcards" + :command.go/electron-find-in-page "Søk på side" + :command.go/electron-jump-to-the-next "Hopp til neste" + :command.go/electron-jump-to-the-previous "Hopp til forrige" + :command.go/flashcards "Flashkort" :command.go/forward "Fremover" :command.go/graph-view "Gå til graf visning" :command.go/home "Gå hjem" + :command.go/journals "Gå til dagbok" :command.go/keyboard-shortcuts "Gå til tastatursnarveier" :command.go/next-journal "Gå til neste dagbok" :command.go/prev-journal "Gå til forrige dagbok" + :command.go/search "Fulltekst søk" + :command.go/search-in-page "Søk på side" + :command.go/search-themes "Søk etter temaer" :command.go/tomorrow "Gå til i morgen" - :command.go/all-graphs "Gå til alle grafer" - :command.go/electron-find-in-page "Finn tekst på siden" - :command.go/electron-jump-to-the-next "Hopp til neste treff i søket" - :command.go/electron-jump-to-the-previous "Hopp til forrige treff i søket" + :command.graph/add "Legg til graf" + :command.graph/db-add "Legg til i database" + :command.graph/db-save "Lagre database" + :command.graph/export-as-html "Eksporter som HTML" :command.graph/open "Velg graf for å åpne" :command.graph/remove "Fjern en graf" + + :command.misc/copy "Kopier" + :command.misc/export-block-data "Eksporter blokkdata" + :command.misc/export-graph-ontology-data "Eksporter grafontologi" + :command.misc/export-page-data "Eksporter sidedata" + :command.misc/import-edn-data "Importer EDN-data" + + :command.page/toggle-favorite "Legg til eller fjern fra favoritter" + :command.pdf/close "Lukk nåværende pdf leser" + :command.pdf/find "Søk i PDF" :command.pdf/next-page "Neste side i nåværende pdf dok" :command.pdf/previous-page "Forrige side i nåværende pdf dok" + + :command.publish/open-dialog "Åpne publiseringsdialog" + + :command.search/re-index "Gjenoppbygg søkeindeks" + + :command.shell/run "Kjør git kommando" + :command.sidebar/clear "Fjern alt i høyre sidestolpe" + :command.sidebar/close-top "Lukk øverste panel" :command.sidebar/open-today-page "Åpne dagens side i høyre sidestolpe" - :command.ui/goto-plugins "Gå til dashbord for utvidelser" - :command.ui/select-theme-color "Velg tilgjengelige temafarger" - :command.dev/show-block-ast "(Dev) Vis blokk AST" - :command.dev/show-block-data "(Dev) Vis blokk data" - :command.dev/show-page-data "(Dev) Vis side data" - :command.editor/copy-page-url "Kopier side url" - :command.editor/select-parent "Velg overordnet blokk" - :command.editor/toggle-number-list "Veksle nummerliste" - :command.graph/export-as-html "Eksporter offentlig graf som html" - :command.pdf/find "Pdf: Søk tekst i nåværende pdf doc" - :command.sidebar/close-top "Lukker øverste objekt i høyre sidestolpe" + :command.ui/clear-all-notifications "Fjern alle varsler" - :command.ui/install-plugins-from-file "Installer utvidelser fra plugins.edn" - :home "Hjem" - :importing "Importerer" - :port "Port" - :toggle-theme "Bytt tema" - :type "Type" - :command.misc/copy "Kopier" - :header/go-back "Gå tilbake" - :header/go-forward "Gå fremover" + :command.ui/customize-appearance "Tilpass utseende" + :command.ui/goto-plugins "Gå til dashbord for utvidelser" + :command.ui/highlight-recent-blocks "Uthev nylige blokker" + :command.ui/install-plugin-from-github "Installer utvidelse fra GitHub" + :command.ui/install-plugins-from-file "Installer utvidelser fra fil" + :command.ui/select-theme-color "Velg tilgjengelige temafarger" + :command.ui/toggle-brackets "Aktiver vising av klammer" + :command.ui/toggle-contents "Åpne favoritter i sidestolpen" + :command.ui/toggle-document-mode "Aktiver dokumentmodus" + :command.ui/toggle-help "Slå av/på hjelp" + :command.ui/toggle-left-sidebar "Aktiver venstre sidestolpe" + :command.ui/toggle-right-sidebar "Aktiver høyre sidestolpe" + :command.ui/toggle-settings "Slå av/på innstillinger" + :command.ui/toggle-theme "Veksle mellom lyst og mørkt tema" + :command.ui/toggle-wide-mode "Aktiver vid-modus" + + :command.window/close "Lukk vindu" + + :context-menu/developer-tools "Utviklerverktøy" + :context-menu/make-a-flashcard "Lag flashkort" + :context-menu/set-icon "Sett ikon" + :context-menu/toggle-number-list "Slå av/på nummerert liste" + + :date/invalid-date-warning "{1} er ikke en gyldig dato. Vennligst prøv igjen" + + :date.nlp/last-friday "Forrige fredag" + :date.nlp/last-monday "Forrige mandag" + :date.nlp/last-month "Forrige måned" + :date.nlp/last-saturday "Forrige lørdag" + :date.nlp/last-sunday "Forrige søndag" + :date.nlp/last-thursday "Forrige torsdag" + :date.nlp/last-tuesday "Forrige tirsdag" + :date.nlp/last-wednesday "Forrige onsdag" + :date.nlp/last-week "Forrige uke" + :date.nlp/last-year "Forrige år" + :date.nlp/next-friday "Neste fredag" + :date.nlp/next-monday "Neste mandag" + :date.nlp/next-month "Neste måned" + :date.nlp/next-saturday "Neste lørdag" + :date.nlp/next-sunday "Neste søndag" + :date.nlp/next-thursday "Neste torsdag" + :date.nlp/next-tuesday "Neste tirsdag" + :date.nlp/next-wednesday "Neste onsdag" + :date.nlp/next-week "Neste uke" + :date.nlp/next-year "Neste år" + :date.nlp/this-friday "Denne fredagen" + :date.nlp/this-monday "Denne mandagen" + :date.nlp/this-month "Denne måneden" + :date.nlp/this-saturday "Denne lørdagen" + :date.nlp/this-sunday "Denne søndagen" + :date.nlp/this-thursday "Denne torsdagen" + :date.nlp/this-tuesday "Denne tirsdagen" + :date.nlp/this-wednesday "Denne onsdagen" + :date.nlp/this-week "Denne uken" + :date.nlp/this-year "Dette året" + :date.nlp/today "I dag" + :date.nlp/tomorrow "I morgen" + :date.nlp/yesterday "I går" + + :deeplink/open-block-error "Kunne ikke åpne lenke. Blokk-ID `{1}` finnes ikke i gjeldende graf." + :deeplink/open-graph-error "Kunne ikke åpne graf. Graf `{1}` finnes ikke." + :deeplink/open-page-error "Kunne ikke åpne lenke. Side `{1}` finnes ikke i gjeldende graf." + + :editor/add-content-first-warning "Vennligst legg til innhold først." + :editor/auto-heading "Automatisk overskrift" + :editor/block-search "Søk etter en blokk" + :editor/click-to-edit "Klikk for å redigere" + :editor/code-language-placeholder "Velg språk" + :editor/collapse-block-children "Skjul underordnede blokker" + :editor/cut "Klipp ut" + :editor/cycle-todo "Veksle TODO" + :editor/delete-selection "Slett utvalg" + :editor/display-tag-inline-hint "for å vise denne taggen inline i stedet for på slutten av denne noden." + :editor/expand-block-children "Utvid underordnede blokker" + :editor/heading "Overskrift {1}" + :editor/moving-blocks-count "Flytter {1} blokker" + :editor/new-page "Ny side" + :editor/new-tag "Ny tagg" + :editor/no-block-selected-warning "Ingen blokk valgt" + :editor/paste "Lim inn" + :editor/reference-node-use-page-ref "Bruk `[[]]` for å referere til en node." + :editor/remove-heading "Fjern overskrift" + :editor/search-for-node "Søk etter en node" + :editor/search-for-tag "Søk etter en tagg" + :editor/search-template-placeholder "Søk etter en mal" + :editor/template-insert-error "Feil ved malinnlegging: {1}" + + :editor.document-mode/new-block-hint "{1} for å opprette ny blokk" + :editor.document-mode/title "Dokumentmodus" + :editor.document-mode/toggle-desc "Klikk `D` eller skriv {1} for å veksle dokumentmodus" + + :editor.quick-add/add-to-today "Legg til på dagens side" + :editor.quick-add/title "Hurtigtillegg" + + :editor.slash/advanced-query "Avansert spørring" + :editor.slash/advanced-query-desc "Lag en avansert spørring blokk" + :editor.slash/calculator "Kalkulator" + :editor.slash/calculator-desc "Sett inn kalkulator" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Kodeblokk" + :editor.slash/code-block-desc "Sett inn kodeblokk" + :editor.slash/current-time "Gjeldende tid" + :editor.slash/current-time-desc "Sett inn gjeldende tid" + :editor.slash/date-picker "Datovalg" + :editor.slash/date-picker-desc "Velg en dato og sett inn" + :editor.slash/embed-html "Bygg inn HTML" + :editor.slash/embed-twitter-tweet "Bygg inn Twitter-tweet" + :editor.slash/embed-video-url "Bygg inn video-URL" + :editor.slash/embed-youtube-timestamp "Bygg inn YouTube-tidsstempel" + :editor.slash/group-advanced "AVANSERT" + :editor.slash/group-basic "GRUNNLEGGENDE" + :editor.slash/group-format "FORMATERING" + :editor.slash/group-heading "Overskrift" + :editor.slash/group-list-type "LISTETYPE" + :editor.slash/group-plugins "PLUGINER" + :editor.slash/group-priority "PRIORITET" + :editor.slash/group-task-date "OPPGAVEDATO" + :editor.slash/group-task-status "OPPGAVESTATUS" + :editor.slash/group-time-and-date "TID & DATO" + :editor.slash/heading-label "Overskrift {1}" + :editor.slash/image-link "Bildelenke" + :editor.slash/image-link-desc "Lag en HTTP-lenke til et bilde" + :editor.slash/link-desc "Lag en HTTP-lenke" + :editor.slash/math-block "Matematikkblokk" + :editor.slash/math-block-desc "Lag en LaTeX-blokk" + :editor.slash/no-priority "Ingen prioritet" + :editor.slash/node-embed "Bygg inn node" + :editor.slash/node-embed-desc "Bygg inn en node her" + :editor.slash/node-reference "Nodereferanse" + :editor.slash/node-reference-desc "Lag en baklenke til en node (en side eller blokk)" + :editor.slash/normal-text "Normal tekst" + :editor.slash/normal-text-desc "Fjern overskrift og sett til normal tekst" + :editor.slash/number-children "Nummerer barn" + :editor.slash/number-list "Nummerert liste" + :editor.slash/priority-desc "Sett prioritet til {1}" + :editor.slash/priority-label "Prioritet {1}" + :editor.slash/query-function "Spørringsfunksjon" + :editor.slash/query-function-desc "Lag en spørringsfunksjon" + :editor.slash/quote-desc "Lag en sittatblokk" + :editor.slash/status-desc "Sett status til {1}" + :editor.slash/template-desc "Sett inn en opprettet mal her" + :editor.slash/today-desc "Sett inn dagens dato" + :editor.slash/tomorrow-desc "Sett inn morgens dato" + :editor.slash/underline "Understreket" + :editor.slash/underline-desc "Lag en understreket tekstdekorasjon" + :editor.slash/upload-asset "Last opp vedlegg" + :editor.slash/upload-asset-desc "Last opp filtyper som bilde, PDF, DOCX, osv." + :editor.slash/yesterday-desc "Sett inn gårsdagens dato" + + :electron/about "Om Logseq" + :electron/add-to-dictionary "Legg til i ordbok" + :electron/block-not-exist "Kunne ikke åpne lenken. Blokk-ID `{1}` finnes ikke i grafen." + :electron/cancel "Avbryt" + :electron/copy-image "Kopier bilde" + :electron/link-open-confirm "Er du sikker på at du vil åpne denne lenken?\n{1}" + :electron/link-open-failed-missing-graph "Kunne ikke åpne lenke. Graf mangler." + :electron/link-open-failed-no-graph "Kunne ikke åpne lenken. Grafidentifikatoren `{1}` kunne ikke matches mot noen koblet graf." + :electron/link-open-failed-no-target "Kunne ikke åpne lenken. `{1}` kunne ikke matches mot noe mål." + :electron/look-up "Slå opp markering" + :electron/main-exception "[Unntak i hovedprosess]\n{1}\n{2}" + :electron/new-window "Nytt vindu" + :electron/official-docs "Offisiell dokumentasjon" + :electron/ok "OK" + :electron/open-dir-error "Kunne ikke åpne mappe: {1}" + :electron/save-image "Lagre bilde" + :electron/save-image-as "Lagre bilde som" + :electron/search-with-google "Søk med Google" + :electron/unimplemented-callback "Uimplementert x-callback-url-handling: `{1}`." + :electron/version "Versjon {1}" + :electron/write-file-error "Skriving til filen {1} mislyktes, {2}." + :electron/write-file-error-with-backup "Skriving til filen {1} mislyktes, {2}. En sikkerhetskopi ble lagret i {3}." + + :encryption/cloud-password-rich (fn [] ["Hvis du mister passordet ditt, kan ingen av dataene dine i skyen dekrypteres. " [:span "Du vil fortsatt kunne få tilgang til den lokale versjonen av grafen din."]]) + :encryption/current-password "Gjeldende passord" + :encryption/enter-password "Skriv inn passord" + :encryption/enter-password-again "Skriv inn passord igjen" + :encryption/enter-password-title "Skriv inn passord" + :encryption/failed-to-force-reset-password "Tvungen tilbakestilling av passord mislyktes" + :encryption/failed-to-update-password "Oppdatering av passord mislyktes" + :encryption/fetch-key-pair-error "Henter bruker rsa-nøkkel-par feil: {1}" + :encryption/fetching-key-pair "Henter nøkkelpar" + :encryption/force-reset-password "Tvungen tilbakestilling av passord" + :encryption/force-reset-password-successfully "Passord tvunget tilbakestilt" + :encryption/force-resetting-password "Tvungen tilbakestilling" + :encryption/forgot-password-question "Glemt passord?" + :encryption/forgot-password-warning "Hvis du glemmer passordet, kan krypterte data ikke gjenopprettes." + :encryption/init-key-pair "Initialiser nøkkelpar" + :encryption/init-key-pair-error "Init nøkkelpar feil: {1}" + :encryption/password-not-matched "Passordene stemmer ikke overens" + :encryption/password-updated-successfully "Passord oppdatert" + :encryption/remember-password-rich (fn [] [[:span "Pass på at du "] "husker passordet du har satt, siden vi ikke kan tilbakestille eller hente det frem hvis du glemmer det, " [:span "og vi anbefaler at du "] "oppbevarer en sikker sikkerhetskopi av passordet."]) + :encryption/reset-password "Tilbakestill passord" + :encryption/set-new-password "Sett nytt passord" + :encryption/set-password-title "Sett passord" + :encryption/updating-password "Oppdaterer passord" + :encryption/wrong-password "Feil passord" + + :export/backup-successful "Sikkerhetskopi opprettet!" + :export/block-data-copied "Blokkdata kopiert til utklippstavle" + :export/collecting-assets "Samler inn vedlegg" + :export/copied-to-clipboard "Kopiert til utklippstavle!" + :export/copy-or-export-as "Eksporter som" + :export/creating-zip "Oppretter zip" + :export/db-backup-error "DB-sikkerhetskopi mislyktes." + :export/db-edn "Eksporter som EDN-fil" + :export/debug-transit-desc "Eksporterer til en .transit-fil for feilsøking. Sensitive data vil bli fjernet fra den eksporterte filen." + :export/debug-transit-file "Eksporter debug transit-fil" + :export/edn-desc "Eksporterer til en lesbar og redigerbar .edn-fil. Ikke bruk dette som primær sikkerhetskopi." + :export/error-unexpected "Det oppstod en uventet feil under eksport. Se JavaScript-konsollen for detaljer." + :export/exporting "Eksporterer" + :export/finalizing "Fullfører" + :export/format-text "Tekst" + :export/graph "Eksporter graf" + :export/graph-ontology-data-copied "Grafontologidata kopiert til utklippstavle" + :export/indent-style-dashes "bindestreker" + :export/indent-style-label "Innrykningsstil:" + :export/indent-style-none "ingen innrykk" + :export/indent-style-spaces "mellomrom" + :export/level-lte "nivå <=" + :export/markdown "Eksporter som Markdown (uten blokkegenskaper)" + :export/newline-after-block "ny linje etter blokk" + :export/no-updates-since-last-export "Ingen endringer siden siste eksport." + :export/open-blocks-only "bare åpne blokker (hopp over sammenklappede barn)" + :export/page "Eksporter side" + :export/page-data-copied "Sidedata kopiert til utklippstavle" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Forbereder zip" + :export/preview-alt "forhåndsvisning av eksport" + :export/public-pages "Eksporter offentlige sider" + :export/remove-emphasis "fjern utheving" + :export/remove-properties "fjern egenskaper" + :export/remove-tags "fjern #tagger" + :export/save-to-file "Lagre til fil" + :export/sqlite-db "Eksporter SQLite-database" + :export/title "Eksporter" + :export/transparent-background "Gjennomsiktig bakgrunn" + :export/view-nodes-data-copied "Visningsnodedata kopiert til utklippstavle" + :export/zip "Eksporter DB SQLite og filer" + :export/zip-error "ZIP-eksport mislyktes." + + :export.backup/backup-now "Sikkerhetskopier nå" + :export.backup/cancel "Avbryt sikkerhetskopiering" + :export.backup/enabled-desc "Timebaserte sikkerhetskopier er aktivert for denne grafen, {1}." + :export.backup/folder "Sikkerhetskopieringsmappe:" + :export.backup/hourly-note "Sikkerhetskopi vil bli opprettet hver time." + :export.backup/open-folder "åpne sikkerhetskopieringsmappen for denne grafen" + :export.backup/schedule "Planlegg sikkerhetskopiering" + :export.backup/set-folder-first "Angi sikkerhetskopieringsmappe først" + :export.backup/sqlite-desc "Primær måte å sikkerhetskopiere grafens innhold til en enkelt .sqlite-fil." + :export.backup/unsupported-desc "Nettleseren din støtter ikke {{The File System Access API}}, vennligst bytt til en Chromium-basert nettleser." + :export.backup/zip-desc "Primær måte å sikkerhetskopiere grafens innhold og vedlegg til en .zip-fil." + + :file/config-duplicate-keys "Filen '{1}' har dupliserte nøkler. Nøkkelen '{2}' er tildelt flere ganger." + :file/config-invalid "Konfigurasjonsfilen er ugyldig" + :file/format-not-supported "Format .{1} er ikke støttet." + :file/label "Fil" + :file/last-modified-at "Sist endret" + :file/name "Filnavn" + :file/no-data "Ingen data" + :file/title "Fil {1}" + + :file.config/deprecation-title "Filen {1} har følgende foreldelser:" + :file.config/error-title "Filen {1} har følgende feil:" + :file.config/invalid-desc "Sørg for at konfigurasjonen er omgitt av {}." + :file.config/invalid-title "Filen {1} er ikke gyldig." + :file.config/read-failed-desc "Sørg for at konfigurasjonen er omgitt av {}. Kontroller også at tegnene '( { [' har tilsvarende avsluttende tegn ') } ]'." + :file.config/read-failed-title "Kunne ikke lese fil {1}" + + :flashcard/add-query "Legg til ny spørring" + :flashcard/all-cards "Alle kort" + :flashcard/select-cards "Velg kort" + :flashcard/shortcut-tooltip "Hurtigtast: {1}" + + :flashcard.empty/desc "Du kan legge til \"{1}\" til en hvilken som helst blokk for å gjøre den om til et kort eller utløse \"/cloze\" for å legge til noen clozes." + :flashcard.empty/title "Velkommen til Flashkort" + + :flashcard.rating/again "Igjen" + :flashcard.rating/again-desc "Vi svarte feil. Det betyr automatisk at vi har glemt kortet. Dette er en minnesvikt。" + :flashcard.rating/easy "Lett" + :flashcard.rating/easy-desc "Svaret var riktig, og vi husket det raskt og sikkert uten mental innsats。" + :flashcard.rating/good "Bra" + :flashcard.rating/good-desc "Svaret var riktig, men det krevde litt mental innsats å huske det。" + :flashcard.rating/hard "Vanskelig" + :flashcard.rating/hard-desc "Svaret var riktig, men vi var ikke sikre på det eller brukte for lang tid på å huske det." + + :flashcard.review/finished "Ferdig! 💯" + :flashcard.review/hide-answers "Skjul svar" + :flashcard.review/show-answers "Vis svar" + :flashcard.review/show-clozes "Vis utfylling" + + :format/bold "Fet" + :format/code "Kode" + :format/highlight "Uthev" + :format/italics "Kursiv" + :format/strikethrough "Gjennomstreking" + + :graph/all-graphs "Alle grafer" + :graph/already-exists-error "Grafen '{1}' finnes allerede. Vennligst prøv igjen med et annet navn." + :graph/as-png "som PNG" + :graph/built-in-pages "Innebygde sider" + :graph/charge-range "Ladningsrekkevidde" + :graph/charge-strength "Ladningsstyrke" + :graph/click-to-search "Klikk for å søke" + :graph/create-db "Opprett DB-graf" + :graph/create-error "Grafoppretting mislyktes" + :graph/create-new "Opprett en ny graf" + :graph/created-before "Opprettet før" + :graph/creating "Graf opprettes" + :graph/delete-local-action "Slett lokal graf" + :graph/delete-local-confirm-desc "Er du sikker på at du vil slette grafen \"{1}\" permanent fra Logseq?" + :graph/delete-server-action "Slett fra server" + :graph/delete-server-confirm-desc "Er du sikker på at du vil slette grafen \"{1}\" permanent fra serveren vår?" + :graph/delete-warning "⚠️ Vær oppmerksom på at vi ikke kan gjenopprette denne grafen etter sletting. Sørg for at du har en sikkerhetskopi før du sletter den." + :graph/diff "Git diff" + :graph/downloading "laster ned" + :graph/encrypt-data-label "Krypter grafdata" + :graph/excluded-pages "Ekskluderte sider" + :graph/forces "Krefter" + :graph/gc-success "Grafopprydding vellykket!" + :graph/last-opened-at-label "Sist åpnet: {1}" + :graph/leave-action "Forlat denne grafen" + :graph/leave-confirm-desc "Er du sikker på at du vil forlate denne grafen?" + :graph/leave-error "Kunne ikke forlate graf" + :graph/left "Forlot graf" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "lenke" "lenker"))) + :graph/link-distance "Lenkeavstand" + :graph/local-graphs "Lokale grafer" + :graph/n-hops-from-selected-nodes "N hopp fra valgte noder" + :graph/name-placeholder "navnet på grafen din" + :graph/nodes "Noder" + :graph/orphan-pages "Foreldreløse sider" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "side" "sider"))) + :graph/pause-simulation "Pause simulering" + :graph/preparing "forbereder" + :graph/refresh-remote-graphs "Oppdater eksterne grafer" + :graph/remote-graphs "Eksterne grafer" + :graph/removed "Fjernet graf \"{1}\"" + :graph/removed-and-redirecting "Fjernet graf \"{1}\". Omdirigerer til graf \"{2}\"" + :graph/removed-from-sync "Graf fjernet fra synkronisering" + :graph/reset "Tilbakestill graf" + :graph/reset-forces "Tilbakestill krefter" + :graph/search "Søk" + :graph/shared-graphs "Delte grafer" + :graph/updated-switching "Graf oppdatert. Bytter..." + :graph/use-sync-beta "Bruk Logseq Sync (betatest)" + :graph/use-sync-label "Bruk Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Kunne ikke beregne sjekksumdiagnostikk for grafen." + :graph.diagnostics/checksum-recomputed-success "Sjekksum beregnet på nytt. Ny beregning: {1}, lokal: {2}, ekstern: {3}. {4}.edn ble lastet ned med {5} blokker og sjekksumattributter {6}." + :graph.diagnostics/checksum-unavailable-warning "Kan ikke beregne sjekksumdiagnostikk for gjeldende graf." + :graph.diagnostics/client-ops-export-failed-error "Kunne ikke eksportere Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Eksport av Client ops SQLite mislyktes: ugyldig payload-type {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite eksportert: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Fant ingen graf." + + :graph.page/show-journals "Vis dagbøker" + :graph.page/title "Sidegraf" + + :graph.switch/add-graph-action "Ja, legg til en ny graf" + :graph.switch/empty-desc "Ingen grafer matcher. Vil du legge til en ny?" + :graph.switch/prompt "Bytt" + :graph.switch/select-prompt "Velg en graf" + + :graph.validation/config-arweave-gateway-warning "støttes ikke lenger." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "støttes ikke lenger. Vennligst bruk '/' og rapporter feil på det." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "brukes ikke i DB-grafer da det bare er markdown-modus." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Validering oppdaget {1} ugyldige blokk(er). Disse blokkene kan være feilaktige. Forsøker å reparere ugyldige blokker. Kjør validering igjen for å se om de ble reparert." + :graph.validation/name-reserved-characters-warning "Grafnavnet kan ikke inneholde følgende reserverte tegn:" + :graph.validation/reserved-character-asterisk "stjerne" + :graph.validation/reserved-character-backslash "omvendt skråstrek" + :graph.validation/reserved-character-colon "kolon" + :graph.validation/reserved-character-double-quote "dobbelt anførselstegn" + :graph.validation/reserved-character-forward-slash "skråstrek" + :graph.validation/reserved-character-greater-than "større enn" + :graph.validation/reserved-character-hash "hashtegn" + :graph.validation/reserved-character-less-than "mindre enn" + :graph.validation/reserved-character-pipe "loddrett strek eller pipe" + :graph.validation/reserved-character-plus "pluss" + :graph.validation/reserved-character-question-mark "spørsmålstegn" + :graph.validation/valid "Grafen din er gyldig! {1}" + + :header/go-back "Tilbake" + :header/go-forward "Fremover" + :header/highlight-recent-blocks "Fremhev nylige blokker" + :header/highlight-recent-blocks-days-ago "Fremhev nylige blokker: for {1} dager siden" :header/more "Mer" - :header/search "Søk" - :header/toggle-left-sidebar "Veksle venstre sidestolpe" - :help/title-about "Om" - :help/title-community "Samfunn" - :help/title-development "Utvikling" - :help/title-terms "Betingelser" - :help/title-usage "Bruk" - :plugin/all-updated "Alt er oppdatert!" - :plugin/checking-for-updates "Ser etter oppdateringer for utvidelser" - :plugin/list-of-updates "Oppdateringer for utvidelser: " - :plugin/open-logseq-dir "Åpne" - :plugin/open-preferences "Åpne Innstillinger" - :plugin/remote-error "Ekstern feil: " - :plugin/search-plugin "Søk utvidelser" - :plugin/security-warning "Utvidelser kan få tilgang til din graf og dine lokale filer..." - :right-side-bar/flashcards "Flashcards" - :right-side-bar/toggle-right-sidebar "Veksle høyre sidestolpe" - :settings-page/enable-flashcards "Flashcards" - :settings-page/native-titlebar "Native tittellinje" - :settings-page/native-titlebar-desc "Skrur på Windows native tittellinje på vinduet..." - :settings-page/preferred-pasting-file-hint "Når skrudd på gir dette et hint når du limer inn et bile fra internett..." - :settings-page/tab-editor "Editor" + :header/quit-highlight-recent-blocks "Avslutt markering av nylige blokker" + :header/toggle-left-sidebar "Slå av/på venstre sidepanel" + + :help/about "Om Logseq" + :help/about-title "Om" + :help/ask-community "Spør fellesskapet" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Blokkreferanse" + :help/blog "Blogg" + :help/bug "Rapporter feil på GitHub" + :help/changelog "Endringslogg" + :help/community-title "Fellesskap" + :help/context-menu "Kontekstmeny" + :help/context-menu-action "Høyreklikk på punkttegn" + :help/development-title "Utvikling" + :help/docs "Dokumentasjon" + :help/feature "Funksjonsønske" + :help/forum-community "Forumfellesskap" + :help/handbook "Håndbok" + :help/learn-more "Lær mer" + :help/markdown-syntax "Markdown-syntaks" + :help/open-link-in-sidebar "Åpne lenke i sidestolpe" + :help/open-link-in-sidebar-action "Shift-klikk på referanse" + :help/privacy "Personvernerklæring" + :help/reference-autocomplete "Sidereferanse Autofullføring" + :help/release-notes "Utgivelsesnotater" + :help/roadmap "Veikart" + :help/search "Søk" + :help/slash-autocomplete "Skråstrek Autofullføring" + :help/start "Kom i gang" + :help/submit-feedback "Send tilbakemelding" + :help/support-forum "Brukerstøtteforum" + :help/terms "Vilkår" + :help/terms-title "Vilkår" + :help/usage-title "Bruk" + + :help.handbook/chat-on-discord "Chat på Discord" + :help.handbook/chat-on-discord-desc "Still raske spørsmål, møt andre brukere og lær nye arbeidsflyter." + :help.handbook/copy-topic-link "Kopier emnelenke" + :help.handbook/current-chapter "Gjeldende kapittel" + :help.handbook/help-categories "Hjelpekategorier" + :help.handbook/home "Hjem" + :help.handbook/link-copied "Håndboklenke kopiert!" + :help.handbook/monthly-posts "månedlige innlegg" + :help.handbook/next-chapter "Neste kapittel" + :help.handbook/popular-topics "Populære emner" + :help.handbook/prev-chapter "Forrige kapittel" + :help.handbook/resources-from "Ressurser fra {1}" + :help.handbook/search-placeholder "Søk" + :help.handbook/shortcuts-count "{1} hurtigtaster" + :help.handbook/sync "Synkronisering" + :help.handbook/title "Håndbok" + :help.handbook/topics "Emner" + :help.handbook/users-online "brukere pålogget" + :help.handbook/visit-the-forum "Besøk forumet" + :help.handbook/visit-the-forum-desc "Gi tilbakemelding, be om funksjoner og ha dyptgående samtaler." + :help.handbook/writing-mode "Skrivemodus (forhåndsvisning snart)" + + :help.shortcuts/desc "Vis snarveier og tips" + :help.shortcuts/label "Tastatursnarveier" + :help.shortcuts/shortcut-column "Snarvei" + :help.shortcuts/title "Tastatursnarveier" + :help.shortcuts/triggers "Hurtigtaster og utløsere" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Ikoner ({1})" + :icon/matched-count "Treff ({1})" + :icon/search-all "Søk i alt" + :icon/search-emojis "Søk i emojis" + :icon/search-icons "Søk i ikoner" + :icon/tab-all "Alle" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Ikoner" + + :import/all-tags "Importer alle tagger" + :import/asset-too-large-warning "Kopiering av ressursen {1} ble hoppet over fordi den overstiger grensen på 100 MB." + :import/assets-import-partial "{1}/{2} filer importert. Detaljer i konsollen." + :import/assets-imported "{1} filer importert." + :import/assets-skipped "{1} filer hoppet over. Detaljer i konsollen." + :import/block-icons-cannot-be-imported "Blokkikoner kan ikke importeres. Importer manuelt i blokk {1}." + :import/cannot-import-block-into-non-block-entity "Kan ikke importere blokk til ikke-blokkentitet." + :import/db-edn-desc "Importer en DB-grafs EDN-eksport til en ny DB-graf" + :import/db-edn-title "EDN til DB-graf" + :import/debug-transit-desc "Importer debug transit-fil til en ny DB-graf" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Standard DB-grafoppførsel" + :import/empty-graph-name "Grafnavn kan ikke være tomt." + :import/extract-inline-code-snippets "Ekstraher innebygde kodebiter som underblokker" + :import/file-finished "Import fullført!" + :import/file-to-db-desc "Importer en filbasert Logseq-grafmappe til en ny DB-graf" + :import/file-to-db-title "Fil til DB-graf" + :import/graph-name-conflict "En graf med dette navnet finnes allerede. Velg et annet navn!" + :import/graph-name-placeholder "Grafnavn" + :import/ignored-assets "{1} filer ble hoppet over under import. Detaljer i JavaScript-konsollen." + :import/ignored-files "{1} filer ble hoppet over under import. Detaljer i JavaScript-konsollen." + :import/ignored-properties "{1} egenskaper ble hoppet over under import" + :import/ignored-properties-fix "For å fikse egenskapstypen, endre verdien og importer på nytt" + :import/invalid-blocks-detected "{1} ugyldige blokker oppdaget. Interaksjon fungerer kanskje ikke. Detaljer i JavaScript-konsollen." + :import/invalid-edn-file "Den oppgitte EDN-filen er ugyldig. Korriger og prøv igjen." + :import/loading "Importerer" + :import/logseq-config-missing "Importfeil: Logseq-graf inneholder ikke 'logseq/config.edn'-fil." + :import/new-graph-name "Nytt grafnavn" + :import/notes "Importer notater" + :import/org-files-imported "{1} Org-filer importert som Markdown. Org-støtte legges til senere." + :import/page-icons-cannot-be-imported "Sideikoner kan ikke importeres. Importer manuelt på side {1}." + :import/properties-case-insensitive-commas "Egenskapsnavn (ufølsom for store/små bokstaver, kommaseparert)" + :import/property-classes-placeholder "f.eks. type" + :import/property-import-manually "Denne egenskapen må importeres manuelt" + :import/property-parent-classes-placeholder "f.eks. parent" + :import/property-type-mismatch "Egenskapsverdi er av type {1}, ikke {2}" + :import/property-value-tag-parents "Importer overordnede tagger fra egenskapsverdier" + :import/property-value-tags "Importer ekstra tagger fra egenskapsverdier" + :import/remove-inline-tags "Fjern innebygde tagger" + :import/select-edn-or-json "Velg en EDN- eller JSON-fil." + :import/specific-tags "Importer spesifikke tagger" + :import/sqlite-and-assets-desc "Importer en zip som inneholder db.sqlite og en vedleggsmappe" + :import/sqlite-and-assets-title "SQLite + vedlegg (.zip)" + :import/submitted-edn-invalid "De oppgitte EDN-dataene er ugyldige! Korriger og prøv igjen." + :import/successful "Import vellykket!" + :import/tag-classes-placeholder "Tagg1, Tagg2" + :import/tags-case-insensitive "Tagger (ufølsom for store/små bokstaver)" + :import/title "Importer" + :import/unexpected-error "Uventet feil: {1}" + :import/zip-import-error "Zip-import mislyktes: {1}" + :import/zip-missing-db-sqlite "ZIP-fil inneholder ikke db.sqlite" + + :journal/add-blocks-to-today-success "Blokker lagt til i dag" + :journal/page-cant-convert-warning "Denne siden er ikke en dagbokside." + :journal/parse-date-to-name-error "Parsing av dagboknavn mislyktes" + + :journal.default-query/doing "GJØR" + :journal.default-query/todo "Å GJØRE" + + :keymap/all "Alle" + :keymap/already-bound "Hurtigtast allerede tilordnet" + :keymap/also-used-for-action "Også brukt for {1}" + :keymap/also-used-for-action-in-context "Også brukt for {1} I kontekst {2}" + :keymap/clear "Tøm" + :keymap/clear-keystroke-filter "Tøm tastetrykksfilter" + :keymap/clear-search "Tøm søk" + :keymap/custom "Egendefinert" + :keymap/deactivates-chord "Deaktiverer" + :keymap/deactivates-chords "Deaktiverer {1} hurtigtastkombinasjoner" + :keymap/disabled "Deaktivert" + :keymap/esc-is-reserved "Esc er reservert" + :keymap/hint-cancel "Avbryt" + :keymap/hint-close "Lukk" + :keymap/hint-reassign "Tilordne på nytt" + :keymap/hint-remove "Fjern" + :keymap/keystroke-filter "Tastetrykfilter" + :keymap/no-matching-shortcuts "Ingen samsvarende hurtigtaster" + :keymap/press-a-shortcut "Trykk en hurtigtast" + :keymap/press-keys-to-filter "Trykk taster for å filtrere" + :keymap/reassign "Tilordne på nytt" + :keymap/reassign-tooltip "Tilordne hurtigtasten for denne handlingen på nytt" + :keymap/reassigned-from "Tilordnet på nytt fra {1}" + :keymap/refresh-all "Oppdater alle" + :keymap/remove-binding "Fjern tilordning" + :keymap/remove-filter "Fjern filter" + :keymap/reset "Tilbakestill" + :keymap/reset-to-default "Tilbakestill til standard" + :keymap/search-by-keys "Søk etter taster" + :keymap/search-placeholder "Søk etter hurtigtast…" + :keymap/shortcut-added "Hurtigtast lagt til" + :keymap/shortcut-removed "Hurtigtast fjernet" + :keymap/toggle-categories-pane "Vis/skjul kategoriruten" + :keymap/undo "Angre" + :keymap/unset "Ikke satt" + :keymap/used-by-action "Brukt av {1}" + + :library/add-existing-pages "Legg til eksisterende sider i Bibliotek" + :library/add-pages "Legg til sider" + :library/title "Bibliotek" + + :mobile/camera-access-denied "Kameratilgang nektet. Aktiver den i Innstillinger > Logseq." + :mobile/microphone-access-denied "Mikrofontilgang nektet. Aktiver den i Innstillinger > Logseq." + + :mobile.header/actions "Handlinger" + :mobile.header/create-graph "Opprett graf" + :mobile.header/delete-block-confirm-desc "Slette denne blokken?" + :mobile.header/delete-page-confirm-desc "Slette denne siden?" + + :mobile.intent/file-options "Filalternativer" + :mobile.intent/open-with-app "Åpne filen med din foretrukne app" + :mobile.intent/select-option-prompt "Velg en handling å utføre" + :mobile.intent/share "Del" + + :mobile.log/all "Alle" + :mobile.log/errors-only "Kun feil" + :mobile.log/full "Fullstendig" + :mobile.log/new-first "Nyeste først" + :mobile.log/old-first "Eldste først" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Konto" + :mobile.settings/check-log "Logg" + :mobile.settings/discord-community "Discord-fellesskap" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Rapporter feil" + :mobile.settings/revision "Revisjon" + :mobile.settings/theme "Tema" + :mobile.settings/version "Versjon" + + :mobile.share/file-import-error "Filimport mislyktes" + :mobile.share/media-import-error "Mediaimport mislyktes" + :mobile.share/unsupported-content-warning "Tolking av gjeldende delt innhold støttes ikke. Vennligst rapporter følgende koder på {1}. Vi vil se på det snart." + :mobile.share/unsupported-import-type "Import av {1}-fil støttes ikke. Du kan rapportere det på {2}. Vi vil se på det snart." + + :mobile.tab/capture "Fange" + :mobile.tab/go-to "Gå til" + :mobile.tab/graphs "Grafer" + + :mobile.toolbar/audio "Lyd" + :mobile.toolbar/copy-ref "Kopier referanse" + :mobile.toolbar/copy-url "Kopier URL" + :mobile.toolbar/hide "Skjul" + :mobile.toolbar/indent "Innrykk" + :mobile.toolbar/outdent "Fjern innrykk" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Gjør om" + :mobile.toolbar/reference "Referanse" + :mobile.toolbar/slash "Skråstrek" + :mobile.toolbar/tag "Tagg" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Angre" + :mobile.toolbar/unselect "Opphev valg" + + :nav/all-files "Alle filer" + :nav/all-journals "Alle dagbøker" + :nav/appearance "Utseende" + :nav/assets "Filer" + :nav/cannot-go-to-internal-page "Kan ikke gå til intern side" + :nav/flashcards "Flashkort" + :nav/graph "Graf" + :nav/graph-view "Grafvisning" + :nav/help "Hjelp" + :nav/home "Hjem" + :nav/invalid-jump-error "Ugyldig hopp" + :nav/journals "Dagbøker" + :nav/plugins "Utvidelser" + :nav/search "Søk" + :nav/settings "Innstillinger" + :nav/skip-to-main-content "Gå til hovedinnhold" + :nav/tasks "Oppgaver" + :nav/themes "Temaer" + + :nav.all-pages/label "Alle sider" + :nav.all-pages/title "Alle sider" + + :node/built-in-cant-delete-error "Innebygde elementer kan ikke slettes." + :node/new "Ny node" + + :notification/clear-all "Fjern alle" + :notification/copied "Kopiert" + + :onboarding.import/desc "Importbeskrivelse" + :onboarding.import/sqlite-desc "Importer fra SQLite-database" + :onboarding.import/title "Importer" + + :onboarding.import-option/desc "Importer data fra andre programmer" + :onboarding.import-option/title "Dataimport" + + :onboarding.setup/desc "Arbeidsområde for din kunnskap" + :onboarding.setup/title (fn [] ["Velkommen til " [:strong "Logseq!"]]) + + :page/add-to-favorites "Legg til i Favoritter" + :page/added-tag-to-node "La til taggen \"{1}\" til \"{2}\"" + :page/backlinks "Tilbakekoblinger" + :page/clear "Tøm" + :page/clear-local-storage-desc "Dette sletter mindre innstillinger som mørkt/lyst tema-preferanse." + :page/cleared "Tømt" + :page/contents "Innhold" + :page/convert-to-tag "Konverter til tagg" + :page/copy-url "Kopier side URL" + :page/create "Opprett en ny side" + :page/created-at "Opprettet" + :page/current-graph-as-sqlite-db "gjeldende graf som SQLite-database" + :page/default-query-error "Feil i standardspørring:" + :page/delete "Slett side" + :page/go-back-home "Gå tilbake til startsiden" + :page/hide-properties "Skjul egenskaper" + :page/local-storage "lokal lagring" + :page/logseq-is-having-a-problem "Logseq har et problem" + :page/make-private "Gjør den privat" + :page/make-public "Gjør den offentlig for publisering" + :page/moved-to-recycle "Noden er flyttet til papirkurven" + :page/name "Sidenavn" + :page/no-page-found-to-copy "Ingen side funnet å kopiere" + :page/not-found "Siden ble ikke funnet" + :page/not-found-desc "Oi! Siden du leter etter finnes ikke." + :page/not-found-title "Siden ble ikke funnet" + :page/not-found-warning "Ingen side funnet" + :page/open-all-graphs-desc "Du kan også gå til {{All graphs}} for å bytte til en annen graf." + :page/open-issue-desc "Hvis disse feilsøkingsstegene ikke har løst problemet ditt, vennligst {{open an issue}}." + :page/open-properties "Åpne egenskaper" + :page/rebuild "Gjenoppbygg" + :page/relaunch "Start på nytt" + :page/relaunch-desc "Avslutt og åpne appen på nytt." + :page/scheduled-and-deadline "Planlagt og frist" + :page/search-index "søkeindeks" + :page/send-db-for-debugging "Du kan sende den til help@logseq.com for feilsøking." + :page/something-went-wrong "Noe gikk galt" + :page/step "Steg {1}" + :page/the-app "appen" + :page/try "Prøv" + :page/unfavorite "Fjern side fra Faoritter" + :page/unknown "Ukjent side" + :page/updated-at "Oppdatert" + + :page.convert/block-parent-not-page "Blokk kan ikke konverteres. Overordnet er ikke en side." + :page.convert/cant-be-block "Siden \"{1}\" kan ikke konverteres til en blokk." + :page.convert/cant-be-block-has-children "Siden \"{1}\" kan ikke konverteres til en blokk fordi den har underordnede sider." + :page.convert/cant-be-block-move-first "Siden \"{1}\" kan ikke konverteres til en blokk, vennligst flytt den til en annen side først." + :page.convert/page-to-tag-action "Gjør \"{1}\" om til tagg" + :page.convert/page-to-tag-built-in "Innebygde sider kan ikke være tagger" + :page.convert/page-to-tag-duplicate "En tag med navnet \"{1}\" eksisterer allerede." + :page.convert/page-to-tag-namespaced "Navneromssider kan ikke være tagger" + :page.convert/property-value-to-page "Egenskapsverdi kan ikke konverteres til side." + :page.convert/tag-to-page-action "Konverter tagg til side" + :page.convert/tag-to-page-built-in "Innebygde tagger kan ikke være sider" + :page.convert/tag-to-page-confirm-desc "Når du konverterer en tagg til en side, fjernes også taggegenskapene og taggen fra alle noder som er merket med den. Vil du fortsette?" + :page.convert/tag-to-page-duplicate "En side med navnet \"{1}\" eksisterer allerede." + :page.convert/tag-to-page-has-children "Tagg har underordnede elementer og kan ikke konverteres" + + :page.delete/batch-confirm-title "Er du sikker på at du vil slette disse sidene? Egenskaper og tagger blir slettet permanent, og sidene blir flyttet til Papirkurv." + :page.delete/confirm-title "Er du sikker på at du vil slette denne siden?" + :page.delete/permanent-confirm-title "Er du sikker på at du vil slette denne siden permanent?" + :page.delete/success "Side \"{1}\" ble slettet!" + :page.delete/total "Totalt: {1}" + :page.delete/warning "Innholdet på disse sidene ble slettet, men kunne ikke slettes: {1}. Se javascript-konsollen for mer informasjon." + + :page.validation/cant-set-built-in-tags "Ny side kan ikke angi innebygde tagger: {1}" + :page.validation/duplicate "En annen side kalt \"{1}\" eksisterer allerede for tagger: {2}." + :page.validation/name-blank "Sidenavn kan ikke være tomt." + :page.validation/name-no-hash "Sidenavn kan ikke inneholde #" + :page.validation/name-no-slash "Sidenavn kan ikke inneholde /." + :page.validation/parents-must-be-pages "Overordnede sider må være sider." + + :pdf/annotations-page "Merknadsside" + :pdf/area-highlight-shortcut "Områdemarkering ({1})" + :pdf/auto-fit "Autotilpass" + :pdf/auto-open-context-menu "Åpne kontekstmeny automatisk" + :pdf/copy-ref "Kopier ref" + :pdf/copy-text "Kopier tekst" + :pdf/corrupted-file-error "Feil: {1}\nEr denne .pdf-filen skadet?\nVennligst bekreft med ekstern PDF-leser." + :pdf/doc-metadata "Dokumentmetadata" + :pdf/enter-to-search "Trykk Enter for å søke" + :pdf/find-results "{1} av {2} treff (\"{3}\")" + :pdf/generic-error "Feil: {1}\n{2}\nVennligst bekreft med PDF-filressursen." + :pdf/highlight-mode "Markeringsmodus" + :pdf/highlights "Markeringer" + :pdf/hl-block-colored "Farget markering" + :pdf/linked-ref "Lenkede referanser" + :pdf/load-highlights-file-error "Feil: kunne ikke laste markeringsfilen: \"{1}\". \n{2}" + :pdf/missing-file-error "Feil: {1}\n Er dette riktig sti?" + :pdf/more-settings "Flere innstillinger" + :pdf/no-outlines "Ingen disposisjon" + :pdf/not-found "Ikke funnet." + :pdf/open-in-app-window "Åpne i appvindu" + :pdf/open-in-external-window "Åpne i eksternt vindu" + :pdf/outline "Disposisjon" + :pdf/page-label "Side {1}" + :pdf/password-protected-desc "Dette dokumentet er passordbeskyttet. Vennligst skriv inn et passord:" + :pdf/password-required "Passord påkrevd" + :pdf/search "Søk" + :pdf/search-placeholder "søk" + :pdf/toggle-dashed "Stiplet stil for utheving av område" + :pdf/viewer "PDF-leser" + :pdf/zoom-in "Zoom inn" + :pdf/zoom-out "Zoom ut" + + :plugin/all "Alle" + :plugin/auto-update-check "Sjekk automatisk etter oppdateringer" + :plugin/auto-update-check-feedback "Automatisk oppdateringssjekk: {1}!" + :plugin/check-all-updates "Se etter alle oppdateringer" + :plugin/check-update "Sjekk etter oppdateringer" + :plugin/checked "Sjekket" + :plugin/checking-for-updates "Sjekker etter oppdateringer" + :plugin/contribute "✨ Skriv og send inn en ny utvidelse" + :plugin/custom-js-alert "Fant custom.js fil, får den lov til å kjøre? (Hvis du ikke forstår innholdet i denne filen er det anbefalt å ikke la den kjøre. Dette kan ha sikkerhetsrisiko.)" + :plugin/date-added "Lagt til" + :plugin/delete-alert "Vil du avinstallere utvidelse [{1}]?" + :plugin/disable-for-performance-feedback "Utvidelsen {1} er deaktivert." + :plugin/disable-now "Deaktiver nå" + :plugin/disabled "Deaktivert" + :plugin/does-not-support-db "Støtter ikke DB-grafer" + :plugin/downloads "Nedlastinger" + :plugin/empty "Ingenting funnet." + :plugin/enabled "Aktivert" + :plugin/existed-package "Eksisterte plugin-pakke ({1})." + :plugin/fatal-error "Fatal: {1}" + :plugin/found-n-updates "{1} oppdateringer funnet" + :plugin/found-updates "Oppdateringer funnet" + :plugin/install "Innstaller" + :plugin/install-error "Installasjonen mislyktes: {1}\n{2}" + :plugin/installed "Installert" + :plugin/installed-plugin "Installert plugin: {1}" + :plugin/installing "Innstallerer" + :plugin/invalid-github-repo-url "Ugyldig GitHub-repo-URL" + :plugin/invalid-package "Ugyldig pakke" + :plugin/invalid-plugins-edn "Ugyldig plugins.edn" + :plugin/list-of-updates "Oppdateringsliste" + :plugin/load-from-web-url "Last fra URL" + :plugin/load-plugin-indicator "Last inn plugin: {1}..." + :plugin/load-unpacked "Last inn utpakket utvidelse" + :plugin/loading-indicator "LASTER" + :plugin/malformed-plugins-edn "Feil i plugins.edn" + :plugin/marketplace "Utvidelsesbutikk" + :plugin/new-registered "Ny utvidelse registrert" + :plugin/no-settings-schema "Ingen innstillingsskjema!" + :plugin/not-installed "Ikke installert" + :plugin/open-logseq-dir "Åpne Logseq-mappe" + :plugin/open-package "Åpne pakke" + :plugin/open-preferences "Åpne innstillinger" + :plugin/open-settings "Åpne innstillinger" + :plugin/perf-tip "Denne utvidelsen {1} bruker for lang tid på å laste, noe som påvirker oppstartstiden for applikasjonen og kan føre til at andre utvidelser ikke lastes." + :plugin/popular "Populær" + :plugin/proxy-check-success "Suksess! Status {1} om {2}ms." + :plugin/readme-empty-warning "Ingen README-innhold" + :plugin/refresh-lists "Oppfrisk lister" + :plugin/reload "Last på nytt" + :plugin/remote-error "Ekstern feil: {1}" + :plugin/report-modal-desc "Hvis et programtillegg ikke er tilgjengelig eller du tror det inneholder skadelig kode, send en e-post til {1}. Nevn navn på programtillegget og URL-en til GitHub-depotet. Logseq-teamet svarer vanligvis innen en arbeidsdag." + :plugin/report-security "Rapporter sikkerhetsproblem" + :plugin/restart "Start App på nytt" + :plugin/search-plugin "Søk etter utvidelse" + :plugin/security-warning "Sikkerhetsvarsel" + :plugin/setting-not-handled "#Ikke håndtert# {1}" + :plugin/settings-schema-error "Feil i innstillingsskjema!" + :plugin/stars "Stjerner" + :plugin/supports-db "DB-støtte" + :plugin/title "Tittel ({1})" + :plugin/uninstall "Avinstaller" + :plugin/unpacked "Utpakket" + :plugin/unpacked-tips "Velg mappe for utvidelse" + :plugin/up-to-date "Den er oppdatert {1}" + :plugin/update "Oppdater" + :plugin/update-all-selected "Oppdater alle valgte" + :plugin/update-all-success "Alle utvidelser oppdatert" + :plugin/update-available "Oppdatering tilgjengelig" + :plugin/update-plugin "Oppdater plugin: {1} - {2}" + :plugin/updates-downloading "Laster ned oppdateringer" + :plugin/updating "Oppdaterer" + + :plugin.install-from-file/menu-title "Installer fra fil" + :plugin.install-from-file/notice "Velg en utvidelsesfil å installere" + :plugin.install-from-file/success "Utvidelse installert" + :plugin.install-from-file/title "Installer utvidelse fra fil" + + :plugin.install-from-web-url/effect-label "effekt" + :plugin.install-from-web-url/repo-url-placeholder "GitHub-repo-URL" + :plugin.install-from-web-url/supports-note "URL-adresser støtter både GitHub-depotier og lokale utviklingsservere. (For eksempler: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Å fjerne den kobler bare pluginen fra Logseq og lar kildemappen være urørt." + :plugin.package-config/parse-error "Kunne ikke tolke konfigurasjonen for plugin-pakken." + :plugin.package-config/remove-error "Kunne ikke fjerne den ødelagte pluginen." + :plugin.package-config/remove-external-success "Den ødelagte pluginen ble fjernet fra pluginlisten." + :plugin.package-config/remove-installed-success "Ødelagt plugin \"{1}\" ble fjernet." + + :plugin.proxy/direct "Direkte" + :plugin.proxy/system "System" + :plugin.proxy/test-url "Test-URL" + :plugin.proxy/testing "Tester" + + :plugin.settings/edit-settings-json "Rediger settings.json" + :plugin.settings/exit-code-mode "Avslutt kodemodus" + :plugin.settings/title "Utvidelsesinnstillinger" + + :plugin.themes/default-desc "Logseq-standardtema ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Temaer ({1})" + :plugin.themes/light-and-dark "lyse & mørke temaer" + + :profiler/input-fn-placeholder "skriv inn funksjonsnavn her" + :profiler/unregister "Avregistrer" + + :property/add-choice "Legg til valg" + :property/add-choices "Legg til valg" + :property/add-description "Legg til beskrivelse" + :property/add-new "Legg til egenskap" + :property/add-or-change "Legg til eller endre egenskap" + :property/available-choices "Tilgjengelige valg" + :property/change-tooltip "Endre {1}" + :property/checkbox-state-mapping "Avkrysningsbokstilordning" + :property/children-count "barn ({1})" + :property/choices-count "{1} valg" + :property/choose-tag "Velg tagg" + :property/choose-tags "Velg tagger" + :property/clear-value "Tøm" + :property/configure "Konfigurer" + :property/convert-page-to-property "Gjør \"{1}\" om til egenskap" + :property/create-error "Egenskapsoppretting mislyktes." + :property/default-value "Standardverdi" + :property/delete-from-node "Slett fra node" + :property/delete-from-node-confirm "Slette denne egenskapen fra noden?" + :property/delete-from-tag "Slett fra tagg" + :property/delete-from-tag-confirm "Slette denne egenskapen fra taggen?" + :property/description-placeholder "Skriv inn beskrivelse" + :property/drag-to-reorder "Dra for å omorganisere" + :property/existing-values "Eksisterende verdier" + :property/go-to-this-property "Gå til egenskapsside" + :property/hidden-properties "Skjulte egenskaper" + :property/hide-by-default "Skjul som standard" + :property/hide-choice-for-tag "Skjul valg for tagg" + :property/hide-empty-value "Skjul tomme verdier" + :property/hide-for-tag "Skjul for #{1}" + :property/hide-hidden-choices "Skjul skjulte valg" + :property/map-checked-to "Tilordne avkrysset til" + :property/map-unchecked-to "Tilordne uavkrysset til" + :property/more-settings "Flere innstillinger" + :property/multiple-values "Flere verdier" + :property/multiple-values-confirm "Aktivere flere verdier?" + :property/name "Navn" + :property/name-placeholder "Egenskapsnavn" + :property/nodes-with-property "Noder med egenskap" + :property/overdue "Forfalt" + :property/private-built-in-not-usable "Privat innebygd egenskap kan ikke brukes" + :property/select-choice "Velg et valg" + :property/select-property-placeholder "Velg en egenskap" + :property/select-type-placeholder "Velg en egenskapstype" + :property/self-reference "Selvreferanse" + :property/set-default-choice "Sett standardvalg" + :property/set-default-value "Angi standardverdi" + :property/set-icon "Sett ikon" + :property/set-placeholder "Sett {1}" + :property/set-property "Sett egenskap" + :property/set-tags "Sett tagger" + :property/set-value "Sett verdi" + :property/show-as-checkbox-on-node "Vis som avkrysningsboks på node" + :property/show-as-checkbox-on-tagged-nodes "Vis som avkrysningsboks på taggede noder" + :property/show-hidden-choices "Vis skjulte valg" + :property/skip-choosing-tag "Hopp over taggvalg" + :property/specify-node-tags "Angi nodetagger" + :property/title-placeholder "Tittel" + :property/type "Type" + :property/type-change-warning "Endring av egenskapstype fjerner noen egenskapskonfigurasjoner." + :property/type-checkbox "Avkrysningsboks" + :property/type-date "Dato" + :property/type-datetime "Dato/Tid" + :property/type-locked-help "Type låst" + :property/type-node "Node" + :property/type-number "Tall" + :property/type-text "Tekst" + :property/type-url "URL" + :property/ui-position "UI-posisjon" + :property/ui-position-block-below "Under blokk" + :property/ui-position-block-left "Venstre for blokk" + :property/ui-position-block-right "Høyre for blokk" + :property/ui-position-properties "Egenskaper" + :property/unset-property "Fjern egenskap" + :property/update-success "Oppdatert" + + :property.built-in/alias "Alias" + :property.built-in/asset "Vedlegg" + :property.built-in/asset-align "Vedleggsjustering" + :property.built-in/asset-checksum "Filkontrollsum" + :property.built-in/asset-external-file-name "Eksternt filnavn" + :property.built-in/asset-external-url "Ekstern URL" + :property.built-in/asset-height "Bildehøyde" + :property.built-in/asset-last-visit-page "Sist besøkt side" + :property.built-in/asset-remote-metadata "Fjernmetadata for fil" + :property.built-in/asset-resize-metadata "Metadata for vedleggsstørrelse" + :property.built-in/asset-size "Filstørrelse" + :property.built-in/asset-type "Filtype" + :property.built-in/asset-width "Bildebredde" + :property.built-in/background-color "Bakgrunnsfarge" + :property.built-in/built-in "Innebygd?" + :property.built-in/checkbox-display-properties "Egenskaper vist som avkrysningsboks" + :property.built-in/choice-checkbox-state "Valgavkrysningsstatus" + :property.built-in/choice-classes "Valgklasser" + :property.built-in/choice-exclusions "Valgekskluderinger" + :property.built-in/class-bidirectional-property-title "Tittel for toveis egenskap" + :property.built-in/class-enable-bidirectional "Aktiver toveis egenskaper" + :property.built-in/class-extends "Utvider" + :property.built-in/class-hide-from-node "Skjul fra node" + :property.built-in/class-properties "Taggegenskaper" + :property.built-in/classes "Egenskapsklasser" + :property.built-in/closed-value-property "Lukket verdiegenskap" + :property.built-in/code-lang "Kodemodus" + :property.built-in/collapsed "Node kollapset?" + :property.built-in/created-at "Node opprettet" + :property.built-in/created-by-ref "Node opprettet av" + :property.built-in/created-from-property "Opprettet fra egenskap" + :property.built-in/deadline "Frist" + :property.built-in/default-value "Standardverdi" + :property.built-in/deleted-at "Slettet" + :property.built-in/deleted-by-ref "Slettet av" + :property.built-in/description "Beskrivelse" + :property.built-in/enable-history "Aktiver egenskapshistorikk" + :property.built-in/exclude-from-graph-view "Ekskludert fra grafvisning?" + :property.built-in/fsrs-due "Forfaller" + :property.built-in/fsrs-state "Tilstand" + :property.built-in/heading "Overskrift" + :property.built-in/hide "Skjul denne egenskapen eller siden" + :property.built-in/hide-empty-value "Skjul tom verdi" + :property.built-in/history-block "Historikkblokk" + :property.built-in/history-property "Historikkegenskap" + :property.built-in/history-ref-value "Historikkverdi" + :property.built-in/history-scalar-value "Historikk skalarverdi" + :property.built-in/icon "Ikon" + :property.built-in/journal-day "Journaldato" + :property.built-in/journal-title-format "Tittelformat" + :property.built-in/link "Node lenker til" + :property.built-in/linked-references-excludes "Ekskluderte referanser" + :property.built-in/linked-references-includes "Inkluderte referanser" + :property.built-in/ls-type "LS-type" + :property.built-in/node-display-type "Nodevisningstype" + :property.built-in/order "Noderekkefølge" + :property.built-in/order-list-type "Listetype" + :property.built-in/page "Nodeside" + :property.built-in/page-tags "Sidetagger" + :property.built-in/parent "Nodeforelder" + :property.built-in/priority "Prioritet" + :property.built-in/public "Egenskap offentlig?" + :property.built-in/publish-published-url "Publisert URL" + :property.built-in/publishing-public "Publisering offentlig?" + :property.built-in/query "Spørring" + :property.built-in/reaction-emoji-id "Reaksjonsemoji" + :property.built-in/reaction-target "Reaksjonsmål" + :property.built-in/recycle-original-order "Opprinnelig rekkefølge i papirkurv" + :property.built-in/recycle-original-page "Opprinnelig side i papirkurv" + :property.built-in/recycle-original-parent "Opprinnelig forelder i papirkurv" + :property.built-in/refs "Nodereferanser" + :property.built-in/repeat-checked-property "Gjentakende avkrysset egenskap" + :property.built-in/repeat-recur-frequency "Gjentakelsesfrekvens" + :property.built-in/repeat-recur-unit "Gjentakelsesenhet" + :property.built-in/repeat-repeated "Node gjentas?" + :property.built-in/repeat-temporal-property "Gjentakende tidsegenskap" + :property.built-in/scalar-default-value "Standardverdi for ikke-referansetype" + :property.built-in/scheduled "Planlagt" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Referanse til stor blokktittel lagret i ekstern objektlagring" + :property.built-in/table-filters "Visningsfiltre" + :property.built-in/table-hidden-columns "Skjulte kolonner i visning" + :property.built-in/table-ordered-columns "Sorterte kolonner i visning" + :property.built-in/table-pinned-columns "Festede kolonner i tabellvisning" + :property.built-in/table-sized-columns "Kolonneinnstillinger i visning" + :property.built-in/table-sorting "Visningssortering" + :property.built-in/tags "Tagger" + :property.built-in/template-applied-to "Bruk mal på tagger" + :property.built-in/title "Nodetittel" + :property.built-in/type "Egenskapstype" + :property.built-in/ui-position "Egenskapsposisjon" + :property.built-in/updated-at "Node oppdatert" + :property.built-in/used-template "Brukt mal" + :property.built-in/user-avatar "Brukeravatar" + :property.built-in/user-email "Bruker-e-post" + :property.built-in/user-name "Brukernavn" + :property.built-in/value "Egenskapsverdi" + :property.built-in/view-context "Visningskontekst for egenskap" + :property.built-in/view-feature-type "Visningsfunksjonstype" + :property.built-in/view-for "Denne visningen tilhører" + :property.built-in/view-group-by-property "Visning gruppert etter egenskap" + :property.built-in/view-sort-groups-by-property "Visning sorter grupper etter" + :property.built-in/view-sort-groups-desc "Visning sorter grupper synkende" + :property.built-in/view-type "Visningstype" + + :property.choice/already-exists "Valget finnes allerede." + :property.choice/cant-delete-built-in "Innebygd valg kan ikke slettes." + :property.choice/invalid "Ugyldig valg \"{1}\" for denne egenskapen: {2}" + + :property.color/blue "blå" + :property.color/green "grønn" + :property.color/purple "lilla" + :property.color/red "rød" + :property.color/yellow "gul" + + :property.priority/high "Høy" + :property.priority/low "Lav" + :property.priority/medium "Middels" + :property.priority/urgent "Haster" + + :property.repeat/date "Gjenta dato" + :property.repeat/datetime "Gjenta dato og tid" + :property.repeat/every "Hver" + :property.repeat/is-label "er:" + :property.repeat/task "Gjenta oppgave" + :property.repeat/when "Når" + + :property.repeat-recur-unit/day "Dag" + :property.repeat-recur-unit/hour "Time" + :property.repeat-recur-unit/minute "Minutt" + :property.repeat-recur-unit/month "Måned" + :property.repeat-recur-unit/week "Uke" + :property.repeat-recur-unit/year "År" + + :property.status/backlog "Backlog" + :property.status/canceled "Avbrutt" + :property.status/doing "Pågår" + :property.status/done "Ferdig" + :property.status/in-review "Til gjennomgang" + :property.status/todo "Å gjøre" + + :property.validation/cant-convert-to-number "Kan ikke konvertere \"{1}\" til et tall." + :property.validation/cant-remove-required "Påkrevd egenskap kan ikke fjernes." + :property.validation/cant-set-self-value "Kan ikke settes som egen egenskapsverdi." + :property.validation/duplicate "Egenskap '{1}' finnes allerede." + :property.validation/invalid-name "Dette er et ugyldig egenskapsnavn. Et egenskapsnavn kan ikke starte med sidereferansetegn '#' eller '[['." + :property.validation/invalid-value "Egenskapen \"{1}\" har ugyldig verdi: {2}" + :property.validation/many-to-one "Flerverdiegenskap kan ikke konverteres til enkelverdi." + :property.validation/protected "Denne egenskapen er beskyttet og kan ikke endres." + + :property.view-type/gallery "Gallerivisning" + :property.view-type/list "Listevisning" + :property.view-type/table "Tabellvisning" + + :publish/action "Publiser" + :publish/dialog-desc "Beskytt eventuelt denne siden med et passord. La feltet stå tomt for offentlig tilgang." + :publish/dialog-title "Publiser side" + :publish/invalid-page-error "Ugyldig side" + :publish/password-optional-placeholder "Valgfritt passord" + :publish/publish-error "Publisering mislyktes" + :publish/published-to "Publisert til {1}" + :publish/publishing "Publiserer..." + :publish/unpublish "Avpubliser" + :publish/unpublish-error "Avpublisering mislyktes" + :publish/unpublish-missing-page-id "Avpubliser: side-ID mangler" + :publish/unpublished "Avpublisert" + + :query/advanced-results "Resultater for avansert spørring" + :query/custom-view-error "Feil i tilpasset visning: {1}" + :query/error "Spørringsfeil:" + :query/examples-desc "Se flere eksempler på {{Queries documentation}}." + :query/examples-title "Spørringseksempler:" + :query/results-for "Resultater for {1}" + + :query.builder/add-filter-or-operator-placeholder "Legg til filter/operator" + :query.builder/between-end-label "Sluttdato" + :query.builder/between-journal-label "mellom: {1} ~ {2}" + :query.builder/between-start-label "Startdato" + :query.builder/created-label "Opprettet" + :query.builder/filter "Filter" + :query.builder/filter-full-text-search-label "Fulltekstsøk" + :query.builder/filter-page-label "Side" + :query.builder/filter-page-reference-label "Sidereferanse" + :query.builder/filter-sample-label "Utvalg" + :query.builder/operator-and-label "og" + :query.builder/operator-not-label "ikke" + :query.builder/replace-with-label "Erstatt med:" + :query.builder/search-label "Søk: {1}" + :query.builder/show-built-in-properties "Vis innebygde egenskaper" + :query.builder/unwrap-operator "Pakk ut" + :query.builder/updated-label "Oppdatert" + :query.builder/wrap-filter-with-label "Pakk dette filteret med:" + + :reference/blocks "Blokkreferanse" + :reference/copy "Kopier referanse" + :reference/delete "Slett referanse" + :reference/page-filter "Sidefilter" + :reference/replace-with-embed "Erstatt med innbygging" + :reference/replace-with-text "Erstatt med tekst" + + :reference.filter/directions "Filterretninger" + :reference.filter/excludes "Ekskluderte" + :reference.filter/includes "Inkluderte" + :reference.filter/search-placeholder "Søk i lenkede referanser" + :reference.filter/title "Filter" + + :search/blank-input "Tom inndata" + :search/full-text-placeholder "Fulltekstsøk" + :search/index-progress "Indekserer {1} %" + :search/indices-rebuilt-success "Søkeindekser bygget på nytt!" + :search/no-result "Ingen resultater" + :search/result-count "{1} resultater" + + :search.find-in-page/input-placeholder "Finn på siden" + :search.find-in-page/match-case "Skill mellom store og små bokstaver" + :search.find-in-page/next-result "Neste resultat" + :search.find-in-page/previous-result "Forrige resultat" + + :select/default-prompt "Velg en" + :select/default-select-multiple "Velg en eller flere" + :select/new-option "+ Nytt alternativ: {1}" + + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "MCP-URL kopiert" + :server/start "Start" + :server/stop "Stopp" + :server/title "HTTP API-server" + + :server.config/auto-start-label "Start automatisk" + :server.config/port-label "Portområde" + :server.config/reset "Tilbakestill" + :server.config/save-and-apply "Lagre og bruk" + :server.config/title "Serverkonfigurasjon" + + :server.status/closed "Lukket" + :server.status/closing "Lukker" + :server.status/error "Feil" + :server.status/running "Kjører" + :server.status/starting "Starter" + :server.status/stopped "Stoppet" + + :server.token/add-new "Legg til nytt token" + :server.token/name-placeholder "Servernavn" + :server.token/regenerate-value "Regenerer tokenverdi" + :server.token/title "Autorisasjonstokener" + :server.token/update-success "Tokener oppdatert" + :server.token/value-placeholder "Verdi" + + :settings/account "Konto" + :settings/advanced "Avansert" + :settings/ai "AI" + :settings/collaboration "Samarbeid" + :settings/editor "Redigering" + :settings/encryption "Kryptering" + :settings/features "Funksjoner" + :settings/general "Generelt" + :settings/keymap "Hurtigtaster" + :settings/plugins "Utvidelsesinnstillinger" + + :settings.account/storage-usage "{1}GB med {2}GB totalt lagringsplass ({3})" + :settings.account/synced-graphs "{1} av {2} synkroniserte grafer ({3})" + + :settings.advanced/auto-chmod "Automatisk chmod" + :settings.advanced/auto-chmod-desc "Still inn filtillatelser automatisk" + :settings.advanced/auto-updater "Automatiske oppdateringer" + :settings.advanced/developer-mode "Utviklermodus" + :settings.advanced/developer-mode-desc "Utviklermodus hjelper bidragsytere og tilleggsutviklere med å teste sine integrasjoner mot Logseq mer effektivt." + :settings.advanced/disable-sentry "Send bruksdata og diagnostikk til Logseq" + :settings.advanced/disable-sentry-desc "Deaktiver krasjrapportering" + :settings.advanced/network-proxy "Nettverksproxy" + + :settings.ai/enable-mcp-server "Aktiver MCP-server" + :settings.ai/enable-mcp-server-desc "Aktiver MCP-server for AI-integrasjon" + + :settings.editor/auto-expand-block-refs "Utvid blokkreferanser automatisk" + :settings.editor/auto-expand-block-refs-tip "Klikk for å utvide blokkreferanser automatisk" + :settings.editor/custom-date-format "Foretrukket datoformat" + :settings.editor/enable-all-pages-public "Aktiver alle sider som offentlige ved publisering" + :settings.editor/enable-shortcut-tooltip "Skru på tooltip for snarveier" + :settings.editor/enable-tooltip "Aktiver verktøytips" + :settings.editor/preferred-outdenting "Skru på logiske innrykk" + :settings.editor/preferred-outdenting-tip "Innrykkstips" + :settings.editor/preferred-outdenting-tip-more "→ Mer om innrykk" + :settings.editor/preferred-pasting-file "Foretrukket filinnliming" + :settings.editor/preferred-pasting-file-hint "Tips for filinnliming" + :settings.editor/show-brackets "Vis klammer" + :settings.editor/show-full-blocks "Vis hele blokker" + :settings.editor/spell-checker "Stavekontroll" + :settings.editor/wide-mode "Bred modus" + + :settings.features/enable-flashcards "Aktiver flashkort" + :settings.features/enable-journals "Aktiver dagbøker" + :settings.features/home-default-page "Angi standard hjemmeside" + :settings.features/home-default-page-update-success "Standardside oppdatert" + :settings.features/journals-enable-success "Dagbøker aktivert" + :settings.features/login-prompt "Logg inn for å synkronisere" + :settings.features/page-not-found "Siden \"{1}\" eksisterer ikke ennå. Opprett den siden først, og prøv deretter på nytt." + :settings.features/plugin-system "Utvidelses-system" + + :settings.general/accent-color "Aksentfarge" + :settings.general/accent-color-alert "Fargevarsel" + :settings.general/accent-color-logseq "Klassisk Logseq-farge" + :settings.general/accent-color-none-desc "Avbryt accentfarge. Dette er for øyeblikket i betastadium og brukes hovedsakelig for kompatibilitet med egendefinerte temaer." + :settings.general/changelog "Endringslogg" + :settings.general/check-for-updates "Sjekk etter oppdateringer" + :settings.general/current-revision-label "Gjeldende revisjon" + :settings.general/current-version "Nåværende versjon" + :settings.general/custom-configuration "Tilpasset konfigurasjon" + :settings.general/custom-global-configuration "Tilpasset global konfigurasjon" + :settings.general/custom-theme "Tilpasset tema" + :settings.general/edit-config-edn "Rediger config.edn for nåværende repo" + :settings.general/edit-custom-css "Rediger custom.css" + :settings.general/edit-export-css "Rediger export.css" + :settings.general/edit-global-config-edn "Rediger global config.edn" + :settings.general/editor-font "Redigeringsskrifttype" + :settings.general/editor-font-set-global "Sett som global skriftfamilie" + :settings.general/export-theme "Eksporter tema" + :settings.general/language "Språk" + :settings.general/native-titlebar "Systemtittellinje" + :settings.general/native-titlebar-desc "Bruk systemets egen tittellinje" + :settings.general/refresh-required-feedback "Oppdatering nødvendig" + :settings.general/release-channel "utgivelseskanal" + :settings.general/revision "Revisjon: {1}" + :settings.general/theme-dark "Mørk" + :settings.general/theme-light "Lys" + :settings.general/theme-system "System" + + :settings.sync-server/clear-success "URL-en til synkroniseringsserveren ble fjernet. Offisiell Logseq Sync brukes." + :settings.sync-server/reset "Tilbakestill til standard" + :settings.sync-server/save-success "URL-en til synkroniseringsserveren ble lagret." + :settings.sync-server/url "URL til synkroniseringsserver" + :settings.sync-server/url-desc "Angi en egendefinert HTTPS-URL for en selvhostet synkroniseringsserver. Logseq-autentiseringstokenene dine sendes til denne serveren, så bruk bare en pålitelig URL. La feltet være tomt for å bruke offisiell Logseq Sync." + :settings.sync-server/url-invalid-error "URL må starte med https:// eller http://" + + :shell/input-command-title "Skriv inn kommando" + + :shortcut.category/basics "Basis" + :shortcut.category/block-command-editing "Blokkredigering kommandoer" + :shortcut.category/block-editing "Blokkredigering generelt" + :shortcut.category/block-selection "Blokkseleksjon (trykk ESC for å avslutte)" + :shortcut.category/formatting "Formatering" + :shortcut.category/navigating "Navigasjon" + :shortcut.category/others "Annet" :shortcut.category/plugins "Utvidelser" - :window/close "Lukk" - :window/exit-fullscreen "Gå ut av fullskjerm" + :shortcut.category/toggle "Slå av/på" + + :sidebar.left/favorites "Favoritter" + :sidebar.left/navigations "Navigasjon" + :sidebar.left/recent-pages "Nylige sider" + + :sidebar.right/close "Lukk panel" + :sidebar.right/close-all "Lukk alle paneler" + :sidebar.right/close-others "Lukk andre paneler" + :sidebar.right/collapse "Skjul panel" + :sidebar.right/collapse-all "Skjul alle paneler" + :sidebar.right/collapse-others "Skjul andre paneler" + :sidebar.right/expand "Utvid panel" + :sidebar.right/expand-all "Utvid alle paneler" + :sidebar.right/more "Mer" + :sidebar.right/open "Åpne i sidefeltet" + :sidebar.right/open-as-page "Åpne som side" + :sidebar.right/resize-handle "Skillelinje" + :sidebar.right/toggle "Slå av/på høyre sidepanel" + + :storage/invalid-data-writing "Ugyldig dataskriving." + :storage/sqlitedb-error "SQLiteDB-feil: {1}" + :storage/sqlitedb-import-error "SQLiteDB import feil: {1}" + :storage/sqlitedb-save-error "SQLiteDB-lagringsfeil: {1}" + + :storage.recycle/block-deleted-at "Blokk slettet {1}" + :storage.recycle/empty "Papirkurven er tom." + :storage.recycle/page-deleted-at "Side slettet {1}" + :storage.recycle/readonly "Papirkurv (skrivebeskyttet)" + :storage.recycle/restore "Gjenopprett" + :storage.recycle/retention-desc "Slettede sider og blokker blir her til de gjenopprettes eller automatisk ryddes opp etter 30 dager." + :storage.recycle/title "Papirkurv" + + :sync/assets-downloading-count "Nedlasting av ressurser ({1})" + :sync/assets-uploading-count "Opplasting av ressurser ({1})" + :sync/creating-remote-graph "Oppretter ekstern graf..." + :sync/downloading "Laster ned..." + :sync/downloading-graph "Laster ned {1} ..." + :sync/graph-count-exceed-limit "Grafantall overskrider grensen" + :sync/invitation-sent "Invitasjon sendt" + :sync/last-synced-time-label "Sist synkronisert: {1}" + :sync/more-debug-info "Mer feilsøkingsinfo" + :sync/offline "Frakoblet" + :sync/online "På nett" + :sync/pending-local-changes "ventende lokale endringer" + :sync/pending-server-changes "ventende serverendringer" + :sync/something-wrong "Synkroniseringsfeil" + :sync/start-sync "Start synkronisering" + :sync/storage-exceed-limit "Lagringsgrense overskredet" + :sync/uploading "Laster opp..." + :sync/user-doesnt-exist-yet "Bruker finnes ikke ennå" + + :theme/logseq-default "Logseq-standardtema" + :theme/switch-to "Bytt til {1}-tema" + + :ui/all-done "Alt ferdig" + :ui/apply "Bruk" + :ui/cancel "Avbryt" + :ui/close "Lukk" + :ui/configure "Konfigurer" + :ui/confirm "Bekreft" + :ui/copy "Kopier" + :ui/copy-all "Kopier alt" + :ui/copy-to-clipboard "Kopier til utklippstavle" + :ui/create "Opprett" + :ui/date-natural-language-placeholder "f.eks. Neste uke" + :ui/delete "Slett" + :ui/deleted "Slettet" + :ui/dont-remind-me-again "Ikke påminn meg igjen" + :ui/empty "Tom" + :ui/error "Feil" + :ui/error-boundary-error "Feil fanget av brukergrensesnittet!\n {1}" + :ui/export "Eksporter" + :ui/false "Usann" + :ui/fix "Fiks det!" + :ui/frequently-used "Ofte brukt" + :ui/from "Fra: " + :ui/host "Host" + :ui/image "bilde" + :ui/label "Etikett" + :ui/link "Lenke" + :ui/load-more "Last inn mer" + :ui/loading "Laster" + :ui/login "Logg inn" + :ui/logout "Logg ut" + :ui/off "AV" + :ui/on "PÅ" + :ui/open "Åpne" + :ui/open-named "Åpne {1}" + :ui/port "Port" + :ui/refresh "Oppdater" + :ui/relaunch-confirm "Denne endringen krever at appen startes på nytt. Starte på nytt nå?" + :ui/remove-background "Fjern bakgrunn" + :ui/reset "Tilbakestill" + :ui/run "Kjør" + :ui/save "Lagre" + :ui/show-less "Vis mindre" + :ui/show-more "Vis mer" + :ui/skip "Hopp over" + :ui/submit "Send" + :ui/to "Til: " + :ui/toggle-theme "Bytt tema" + :ui/true "Sann" + :ui/type "Type" + :ui/untitled "Uten tittel" + :ui/use-current-time "Bruk nåværende tid" + :ui/yes "Ja" + + :updater/checking-for-updates "Ser etter oppdateringer" + :updater/downloading-progress "Laster ned oppdatering ({1} %)" + :updater/quit-and-install "Start på nytt og installer" + :updater/up-to-date "Applikasjon oppdatert 🎉" + :updater/update-available "Oppdatering tilgjengelig" + :updater/update-error "⚠️ Oops, noe gikk galt!\nVennligst sjekk ut {1}." + :updater/update-ready-to-install "Oppdateringen er klar til å installeres" + + :view/add-new-view "Legg til visning" + :view/all "Alle" + :view/export-edn "Eksporter EDN" + :view/linked-references "Lenkede referanser" + :view/new "Ny" + :view/new-property "Ny egenskap" + :view/new-view "Ny visning" + :view/rename "Gi nytt navn" + :view/results "Resultater:" + :view/unlinked-references "Ikke-lenkede referanser" + + :view.filter/custom-date "Egendefinert dato" + :view.filter/empty "Tom" + :view.filter/filter "Filter" + :view.filter/from "Fra" + :view.filter/is-empty "Er tom" + :view.filter/is-not-empty "Er ikke tom" + :view.filter/match "Treff" + :view.filter/match-all-filters "Oppfyll alle filtre" + :view.filter/match-any-filter "Oppfyll et filter" + :view.filter/operator-after "Etter" + :view.filter/operator-before "Før" + :view.filter/operator-between "Mellom" + :view.filter/operator-date-after "Etter dato" + :view.filter/operator-date-before "Før dato" + :view.filter/operator-is "Er" + :view.filter/operator-is-not "Er ikke" + :view.filter/operator-text-contains "Tekst inneholder" + :view.filter/operator-text-not-contains "Tekst inneholder ikke" + :view.filter/or "Eller" + :view.filter/relative-1-day-ago "1 dag siden" + :view.filter/relative-1-month-ago "1 måned siden" + :view.filter/relative-1-week-ago "1 uke siden" + :view.filter/relative-1-year-ago "1 år siden" + :view.filter/relative-3-days-ago "3 dager siden" + :view.filter/relative-3-months-ago "3 måneder siden" + :view.filter/to "Til" + :view.filter/type-to-search "Skriv for å søke" + + :view.table/ascending "Stigende" + :view.table/columns-visibility "Kolonnesynlighet" + :view.table/default-title "{1} noder" + :view.table/delete-sort "Slett sortering" + :view.table/descending "Synkende" + :view.table/drag-to-reorder "Dra for å omorganisere" + :view.table/group-by "Grupper etter" + :view.table/group-journal-date "Journaldato" + :view.table/group-page-created-date "Opprettelsesdato for side" + :view.table/group-page-name "Sidenavn" + :view.table/group-page-updated-date "Oppdateringsdato for side" + :view.table/live-query-title "Direktespørring ({1})" + :view.table/name-column "Navn" + :view.table/no-group-value "Ingen {1}" + :view.table/page "Side" + :view.table/pages "Sider" + :view.table/pin "Fest" + :view.table/row-number "Radnummer" + :view.table/select-all "Velg alle" + :view.table/select-column "Velg kolonne" + :view.table/select-order "Velg rekkefølge" + :view.table/select-row "Velg rad" + :view.table/selected-count "Valgt: {1}" + :view.table/sort-ascending "Stigende" + :view.table/sort-descending "Synkende" + :view.table/sort-groups-by "Sorter grupper etter" + :view.table/sort-groups-order "Grupperekkefølge" + :view.table/total-refs-count "Totalt antall referanser" + :view.table/unpin "Løsne" + + :window/close "Lukk vindu" + :window/exit-fullscreen "Avslutt fullskjerm" :window/maximize "Maksimer" :window/minimize "Minimer" :window/restore "Gjenopprett" - :loading "Laster..." - :new-page "Ny side:" - :bug-report/inspector-page-btn-back "Gå tilbake" - :bug-report/inspector-page-btn-copy "Kopier resultatet" - :bug-report/inspector-page-btn-create-issue "Opprett et problem" - :bug-report/inspector-page-copy-notif "Kopiert til utklippstavle!" - :bug-report/inspector-page-desc-1 "Trykk Ctrl+V / ⌘+V for å inspisere data på utklippstavlen" - :bug-report/inspector-page-desc-2 "eller trykk her for å lime inn om du bruker mobilversjonen" - :bug-report/inspector-page-desc-clipboard "Her er data lest fra utklippstavlen." - :bug-report/inspector-page-desc-copy "Dersom dette er ok å dele, trykk på kopier knappen." - :bug-report/inspector-page-desc-create-issue "Nå kan du rapportere resultatet som er limt inn i utklippstavlen. Vennligst lim inn resultatet i 'Additional Context' seksjonen og fortell hvor du kopierte innholdet fra. Takk!" - :bug-report/inspector-page-placeholder "Trykk og hold her for å lime inn dersom du er på mobil" - :bug-report/inspector-page-tip "Noe galt? Ikk enoe problem, klikk for å gå tilbake til forrige steg." - :bug-report/main-desc "Kan du hjelpe oss ved å sende inn en feilrapport? Vi vil fikse det så snart vi kan." - :bug-report/main-title "Feilrapport" - :bug-report/section-clipboard-btn-desc "Inspiser og samle inn data fra utklippstavlen" - :bug-report/section-clipboard-btn-title "Utklippstavle-hjelper" - :bug-report/section-clipboard-desc "Du kan bruke disse hendige verktøyene for å gi oss mer informasjon." - :bug-report/section-clipboard-title "Er feilen du opplevde relatert til disse funksjonene?" - :bug-report/section-issues-btn-desc "Hjelp oss med å gjøre Logseq bedre!" - :bug-report/section-issues-btn-title "Send inn en feilrapport" - :bug-report/section-issues-desc "Dersom det ikke er verktøy tilgjengelig som kan hjelpe med med å samle inn ytterligere informasjon, vennligst meld inn feilen direkte." - :bug-report/section-issues-title "Eller..." - :flashcards/modal-finished "Grattis, du har gjennomgått alle kort for denne spørringen. Ses neste gang! 💯" - :flashcards/modal-welcome-desc-1 "Du kan legge til \"{1}\" til en hvilkensomhelst blokk for å gjøre den opp til et kort, eller skrive \"/cloze\" for å legge til clozes." - :flashcards/modal-welcome-title "På tide å opprette et kort!" - :graph/local-graphs "Lokale grafer:" - :graph/remote-graphs "Fjerngrafer:" - :left-side-bar/switch "Bytt til:" - :on-boarding/importing-desc "Om de er i EDN eller Markdown format kan Logseq fungere med dem." - :on-boarding/importing-main-desc "Du kan også gjøre dette senere i appen." - :on-boarding/importing-main-title "Importer eksisterende notater" - :on-boarding/importing-title "Har du notater fra før som du ønsker å importere?" - :on-boarding/main-desc "Først må du velge en mappe der Logseq vil lagre dine tanker, ideer, notater." - :on-boarding/main-title (fn [] ["Velkommen til " [:strong "Logseq!"]]) - :plugin/auto-check-for-updates "Se etter oppdateringer automatisk" - :plugin/installed-plugin "Innstallert utvidelse: {1}" - :plugin/title "Tittel ({1})" - :plugin/up-to-date "Den er oppdatert {1}" - :plugin/update-plugin "Oppdater utvidelse: {1} - {2}" - :settings-page/app-updated "Appen er oppdatert 🎉" - :settings-page/auto-expand-block-refs-tip "Dette valget styrer om blokkreferansen automatisk ekspanderes dersom du zoomer inn." - :settings-page/changelog "Hva er nytt?" - :settings-page/check-for-updates "Sjekk for oppdateringer" - :settings-page/checking "Sjekker ..." - :settings-page/preferred-outdenting-tip "Den venstre siden viser inntrykk med standardinnstillingen, og den høyre viser innrykk med logiske innrykk aktivert " - :settings-page/preferred-outdenting-tip-more "→ Lær mer" - :settings-page/revision "Revisjon: " - :settings-page/tab-account "Konto" - :settings-page/theme-dark "mørk" - :settings-page/theme-light "lyst" - :settings-page/theme-system "følg system" - :settings-page/update-available "Fant ny versjon " - :settings-page/update-error-1 "⚠️ Oops, noe gikk galt!" - :settings-page/update-error-2 " Vennligst sjekk ut " - :tips/all-done "Alt fullført!" - :export-copied-to-clipboard "Kopiert til utklippstavle!" - :export-copy-to-clipboard "Kopier til utklippstavle" - :export-save-to-file "Lagre til fil" - :export-transparent-background "Transparent bakgrunn" - :bug-report/clipboard-inspector-title "Utklippstavle datainspektør" - :search-item/no-result "Ingen matchende resultat" - :right-side-bar/pane-close-all "Lukk alle" - :right-side-bar/pane-close-others "Lukk andre" - :right-side-bar/pane-close "Lukk" - :right-side-bar/pane-collapse "Kollapse" - :right-side-bar/pane-collapse-all "Kollapse alle" - :right-side-bar/pane-collapse-others "Kollapse andre" - :right-side-bar/pane-expand "Ekspander" - :right-side-bar/pane-expand-all "Ekspander alle" - :right-side-bar/pane-more "Mer" - :right-side-bar/pane-open-as-page "Åpne som side" - :command.window/close "Lukk vindu" - :keymap/all "Alle" - :keymap/custom "Tilpasset" - :keymap/disabled "Deaktivert" - :keymap/keystroke-filter "Tastetrykk filter" - :keymap/unset "Avstill" - :settings-page/auto-chmod "Automatisk endre filtillatelser" - :settings-page/auto-chmod-desc "Deaktiver for å tillate redigering av flere brukere med tillatelser gitt av gruppemedlemskap." - :settings-page/tab-keymap "Tastatur" - :command.command-palette/toggle "Søk kommandoer" - :command.go/search-in-page "Søk blokker på side" - :handbook/close "Lukk" - :handbook/help-categories "Hjelp kategorier" - :handbook/home "Hjem" - :handbook/popular-topics "Populære emner" - :handbook/search "Søk" - :handbook/settings "Innstillinger" - :handbook/title "Hjelp" - :handbook/topics "Emner" - :help/search "Søk sider/blokker/kommandoer" - :linked-references/filter-directions "Klikk for å inkludere og shift-klikk for å ekskludere. Klikk igjen for å fjerne." - :linked-references/filter-excludes "Ekskluderer: " - :linked-references/filter-heading "Filter" - :linked-references/filter-includes "Inkluderer: " - :pdf/auto-open-context-menu "Auto-åpne kontekstmeny for valg" - } + :youtube/embed-first-reminder-mobile "Bygg inn en YouTube-video først, og bruk deretter dette ikonet.\nHusk: Du kan lime inn en vanlig YouTube-URL som innebygd video på mobil." + :youtube/player-not-ready "YouTube-avspilleren er ikke klar ennå." + :youtube/timestamps-not-available-mobile "YouTube-tidsstempel er ennå ikke tilgjengelige på mobil." + + :zotero/attachments "Vedlegg" + :zotero/imported-file-warning "Dette er en importert Zotero-fil, angi Zotero-datamappe for å åpne filen i Logseq." + :zotero/linked-file-warning "Dette er en lenket Zotero-fil, angi basemappe for Zotero-lenkede vedlegg for å åpne filen i Logseq." + :zotero/notes "Notater" +} diff --git a/src/resources/dicts/nl.edn b/src/resources/dicts/nl.edn index 3cd3dca84c..dd1273c56b 100644 --- a/src/resources/dicts/nl.edn +++ b/src/resources/dicts/nl.edn @@ -1,248 +1,1861 @@ -{:all-files "Alle bestanden" - :all-graphs "Alle grafieken" - :all-journals "Alle Journalen" - :bold "Vet" - :cancel "Annuleren" - :close "Sluiten" - :delete "Verwijderen" - :download "Downloaden" - :export "Exporteren" - :export-graph "Grafiek exporteren" - :export-markdown "Exporteren als standaard Markdown (geen blok eigenschappen)" - :export-page "Exporteer pagina" - :export-public-pages "Exporteer openbare pagina's" - :graph "Grafiek" - :help-shortcut-title "Klik om sneltoetsen en andere tips te bekijken" - :highlight "Markeer" - :import "Importeren" - :italics "Cursief" - :language "Taal" - :login "Inloggen" - :logout "Uitloggen" - :plugins "Plugins" - :port "Poort" - :relaunch-confirm-to-work "U moet de app opnieuw opstarten om het te laten werken. Wil u het nu opnieuw opstarten?" - :remove-background "Verwijder achtergrond" - :save "Opslaan" - :settings "Instellingen" - :settings-of-plugins "Plugin instellingen" - :strikethrough "Doorgestreept" - :themes "Thema's" - :type "Type" - :yes "Ja" +{ + :account/authentication "Authenticatie" + :account/benefits-desc "Met een Logseq-account heb je toegang tot cloudgebaseerde diensten zoals Logseq Sync en alfa/bèta-functies." + :account/billing "Facturering" + :account/billing-expired-on-label "Pro-abonnement verlopen op: {1}" + :account/billing-expires-on-label "Pro-abonnement verloopt op: {1}" + :account/billing-next-date-label "Volgende factuurdatum: {1}" + :account/core-features "Toegang tot de kernfuncties van Logseq" + :account/current-plan "Huidig abonnement" + :account/delete-account "Account verwijderen" + :account/discover-sync-desc "Ontdek de kracht van {1}" + :account/early-access-alpha-beta "Vroege toegang tot alfa/bèta-functies" + :account/first-name "Voornaam" + :account/free-plan-sync-limit "1 gesynchroniseerde grafiek (tot 50MB, alleen notities)" + :account/last-name "Achternaam" + :account/manage-plan "Abonnement beheren" + :account/month "maand" + :account/no-asset-syncing "Geen synchronisatie van bijlagen" + :account/open-invoices "Facturen openen" + :account/plan-free "Gratis" + :account/plan-free-summary "Begin met eenvoudige synchronisatie" + :account/plan-pro "Pro" + :account/plan-pro-summary "Ontgrendel geavanceerde synchronisatie en meer" + :account/pro-plan-sync-limit "10 gesynchroniseerde grafieken (tot 5GB elk)" + :account/profile "Profiel" + :account/refresh-token-warning "Token vernieuwen: uitzonderlijke status" + :account/reset-password "Wachtwoord opnieuw instellen" + :account/sign-up "Registreren" + :account/sync-assets-limit "Synchroniseer bijlagen tot 100MB per bestand" + :account/synced-status "Gesynchroniseerd" + :account/unlimited-unsynced-graphs "Onbeperkt aantal niet-gesynchroniseerde grafieken" + :account/upcoming-cloud-features "Aankomende cloudgebaseerde functies, waaronder Logseq Publish" + :account/upgrade-plan "Abonnement upgraden" + :account/username "Gebruikersnaam" - :asset/confirm-delete "Weet u zeker dat u dit wilt verwijderen {1}?" + :asset/acceptable-file-extensions "Toegestane bestandsextensies" + :asset/add-assets "Bijlagen toevoegen" + :asset/add-directory "Map toevoegen" + :asset/alias-already-exists "Aliasnaam \"{1}\" bestaat al!" + :asset/alias-directories "Aliasmappen" + :asset/alias-directory-path-label "Mappad:" + :asset/alias-name-dialog-title "Wat is de aliasnaam voor deze geselecteerde map?" + :asset/alias-name-label "Aliasnaam:" + :asset/alias-name-placeholder "bijv. Boeken" + :asset/align "Uitlijning" + :asset/align-center "Midden" + :asset/align-left "Links" + :asset/align-right "Rechts" + :asset/already-exists "Asset bestaat al, titel: {1}, knooppuntreferentie: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Bovenliggend element kan niet als eigen eigenschap worden ingesloten" + :asset/confirm-delete-image "Weet u zeker dat u deze afbeelding wilt verwijderen?" + :asset/copy "Kopiëren" + :asset/copy-image-unsupported-extension "Afbeelding kopiëren wordt niet ondersteund voor {1}-bestanden" + :asset/create-local-copy-warning "Er wordt een lokale bijlage aangemaakt van een externe bron. PDF-annotaties vereisen een lokale bijlage om correct te werken." + :asset/create-title "Bijlage aanmaken" + :asset/delete "Verwijderen" + :asset/downloading "Downloaden" + :asset/drop-hint "Sleep bestanden hierheen, of klik om bestanden te selecteren" + :asset/edit-title "Bijlage bewerken" + :asset/external-url-label "Externe URL van bijlage:" + :asset/file-extension-placeholder "bijv. mp3" + :asset/maximize "Maximaliseren" + :asset/open-in-browser "Openen in browser" :asset/physical-delete "Verwijder het bestand ook (let op dat het niet hersteld kan worden)" + :asset/ref-block "Referentieblok" + :asset/select-file "Bijlagebestand selecteren" + :asset/select-from-disk "Selecteren van schijf" + :asset/selected-directories "Geselecteerde mappen:" + :asset/show-file-in-folder "Bestand in map tonen" + :asset/size-too-large "Bestand is te groot" + :asset/syncing "Synchroniseren" + :asset/title-label "Bijlagetitel:" + :asset/transfer-placeholder "{1} bijlagen..." + :asset/uploading "Uploaden" - :block/name "Pagina naam" + :block/click-to-fix-query "Klik om zoekopdracht te herstellen: {1}" + :block/copy-ref "Kopieer blok ref" + :block/copy-url "Blok-URL kopiëren" + :block/created-label "Aangemaakt: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' is verouderd. Gebruik in plaats daarvan de '/Math block'-opdracht." + :block/deprecated-query-syntax "#+BEGIN_QUERY is verouderd. Gebruik in plaats daarvan de '/Advanced Query'-opdracht." + :block/deprecated-quote "#+BEGIN_QUOTE is verouderd. Gebruik in plaats daarvan de '/Quote'-opdracht." + :block/empty-url "Lege URL" + :block/excalidraw-no-longer-supported "Excalidraw wordt standaard niet meer ondersteund, we zijn van plan het via plug-ins te ondersteunen." + :block/extraction-error "Blokextractiefout" + :block/hide-query "Zoekopdracht verbergen" + :block/invalid-hiccup "Ongeldig hiccup" + :block/invalid-link "Ongeldige link" + :block/invalid-url "Ongeldige URL" + :block/large-block-warning "Grote blokken zijn niet bewerkbaar of doorzoekbaar om de app niet te vertragen. Gebruik een andere editor om dit blok te bewerken." + :block/last-edited-label "Laatst bewerkt: {1}" + :block/not-found-warning "Geen blok gevonden" + :block/open-block-references "Blokreferenties openen" + :block/practice "Oefenen" + :block/practice-cards "Kaarten oefenen" + :block/ref-nesting-too-deep "Blokreferentie is te diep genest" + :block/remove-tag "Tag verwijderen" + :block/remove-this-tag "Deze tag verwijderen" + :block/render-error "Blok-renderfout:" + :block/set-query "Zoekopdracht instellen" + :block/set-query-label "Zoekopdracht instellen:" + :block/sort-order "Sorteervolgorde" + :block/status-history "Statusgeschiedenis" + :block/untitled-query "Naamloze zoekopdracht" + :block.macro/embed-deprecated "{{embed}} is verouderd. Gebruik in plaats daarvan het commando '/Node embed'." + :block.macro/namespace-deprecated "{{namespace}} is verouderd. Gebruik de functie {1}." + :block.macro/query-deprecated "{{query}} is verouderd. Gebruik in plaats daarvan het commando '/Query'." + :block.macro/unsupported-name "Macronaam niet ondersteund: {1}" - :content/click-to-edit "Klik om te bewerken" - :editor/copy "Kopieer" - :editor/cut "Knip" - :content/copy-block-ref "Kopieer blok ref" - :content/open-in-sidebar "Open in zijbalk" + :block.reaction/emoji-required-warning "Emoji vereist" + :block.reaction/unsupported-emoji-warning "Niet-ondersteunde reactie-emoji" + :bug-report/desc "Een bug melden" + :bug-report/title "Bug melden" + + :bug-report.clipboard/action-desc "Klembord controleren" + :bug-report.clipboard/action-title "Klembordinspector" + :bug-report.clipboard/desc "Gebruik de klembordinspector als u kopieer- en plakproblemen ervaart" + :bug-report.clipboard/title "Klembord" + + :bug-report.inspector/back "Terug" + :bug-report.inspector/clipboard-desc "Klembordinhoud" + :bug-report.inspector/copied "Naar klembord gekopieerd" + :bug-report.inspector/copy "Kopiëren" + :bug-report.inspector/copy-desc "Diagnostisch rapport kopiëren" + :bug-report.inspector/create-issue "Issue aanmaken" + :bug-report.inspector/create-issue-desc "Je kunt nu het resultaat melden dat je op je klembord hebt geplakt. Plak het resultaat in de sectie 'Additional Context' en vermeld waar je de oorspronkelijke inhoud hebt gekopieerd. Dank je!" + :bug-report.inspector/desc "Druk op {1} om uw klembordgegevens te inspecteren\nof klik hier om te plakken als u de mobiele versie gebruikt" + :bug-report.inspector/placeholder "Plak de inhoud hier" + :bug-report.inspector/tip "Tip: gebruik Ctrl+V om te plakken" + :bug-report.inspector/title "Klembordinspector" + + :bug-report.issue/action-desc "Bekende issues bekijken" + :bug-report.issue/action-title "GitHub Issues" + :bug-report.issue/desc "Controleer of uw probleem al gemeld is" + :bug-report.issue/report-link "Probleem melden" + :bug-report.issue/title "Bekende issues" + + :class/add-property "Tag-eigenschap toevoegen" + :class/tag-properties-desc "Tag-eigenschappen worden geërfd door alle knooppunten die de tag gebruiken. Bijvoorbeeld, elke #Task-knoop erft 'Status' en 'Priority'." + :class/tagged-nodes "Getagde knooppunten" + + :class.built-in/asset "Bijlage" + :class.built-in/card "Kaart" + :class.built-in/cards "Kaarten" + :class.built-in/code-block "Code" + :class.built-in/journal "Dagboek" + :class.built-in/math-block "Wiskunde" + :class.built-in/page "Pagina" + :class.built-in/pdf-annotation "PDF-annotatie" + :class.built-in/property "Eigenschap" + :class.built-in/query "Zoekopdracht" + :class.built-in/quote-block "Citaat" + :class.built-in/root "Hoofdtag" + :class.built-in/tag "Tag" + :class.built-in/task "Taak" + :class.built-in/template "Sjabloon" + :class.built-in/whiteboard "Whiteboard" + + :class.validation/built-in-extends-change "Overerving van ingebouwde elementen kan niet worden gewijzigd." + :class.validation/cant-add-tag-on-built-in "Kan geen tag toevoegen aan de ingebouwde \"{1}\"." + :class.validation/cant-remove-private-tags "Kan privétags niet verwijderen: {1}." + :class.validation/cant-remove-tag-built-in "Kan tag met ingebouwde #{1} niet verwijderen." + :class.validation/cant-remove-tag-on-built-in "Kan tag op ingebouwde \"{1}\" niet verwijderen." + :class.validation/cant-set-tag-built-in "Kan tag niet instellen met ingebouwde #{1}." + :class.validation/duplicate "Tag '{1}' bestaat al." + :class.validation/extends-cycle "Cyclus in overerving gedetecteerd." + :class.validation/invalid-extends-type "Ongeldig overervingstype." + :class.validation/parents-must-be-tags "Bovenliggende tags moeten tags zijn." + :class.validation/tag-with-non-tag "Kan geen tag instellen met een ingebouwde pagina die geen tag \"{1}\" is." + + :cmdk.action/apply-theme "Thema toepassen" + :cmdk.action/copy-ref "Referentie kopiëren" + :cmdk.action/create "Aanmaken" + :cmdk.action/filter "Filter" + :cmdk.action/open "Openen" + :cmdk.action/open-in-sidebar "In zijbalk openen" + :cmdk.action/search "Zoeken" + :cmdk.action/trigger "Uitvoeren" + + :cmdk.create/configure-tag "Tag configureren" + :cmdk.create/page "Pagina aanmaken" + :cmdk.create/tag "Tag aanmaken" + + :cmdk.error/no-block-link "Geen link in dit blok." + :cmdk.error/no-page-link "Geen link op deze pagina." + :cmdk.error/no-search-item-link "Geen link in dit zoekresultaat." + + :cmdk.filter/add "Filter toevoegen" + :cmdk.filter/codes "Alleen code" + :cmdk.filter/commands "Alleen commando's" + :cmdk.filter/current-page "Alleen huidige pagina" + :cmdk.filter/files "Alleen bestanden" + :cmdk.filter/nodes "Alleen knooppunten" + :cmdk.filter/only-label "Alleen zoeken:" + :cmdk.filter/themes "Alleen thema's" + + :cmdk.group/codes "Code" + :cmdk.group/commands "Commando's" + :cmdk.group/create "Aanmaken" + :cmdk.group/current-page "Huidige pagina" + :cmdk.group/files "Bestanden" + :cmdk.group/filters "Filters" + :cmdk.group/nodes "Knooppunten" + :cmdk.group/recently-updated "Recent bijgewerkt" + :cmdk.group/themes "Thema's" + + :cmdk.info/configure-tag "#{1} configureren" + :cmdk.info/create-page "Pagina '{1}' aanmaken" + :cmdk.info/create-tag "Tag '{1}' aanmaken" + + :cmdk.input/add-graph-filter-placeholder "Grafiekfilter toevoegen" + :cmdk.input/default-placeholder "Waar zoekt u naar?" + :cmdk.input/move-blocks-placeholder "Blokken verplaatsen" + :cmdk.input/type-page-name-placeholder "Typ paginanaam" + + :cmdk.tip/clear-filter "Druk op {1} om het zoekfilter te wissen" + :cmdk.tip/filter-results "Druk op {1} om zoekresultaten te filteren" + :cmdk.tip/label "Tip:" + :cmdk.tip/open-sidebar "Druk op {1} om zoeken in de zijbalk te openen" + + :collaboration/email-address "E-mailadres" + :collaboration/invite "Uitnodigen" + :collaboration/members "Leden:" + :collaboration/remove-access "Toegang intrekken" + :collaboration/remove-access-error "Lid verwijderen mislukt" + + :color/blue "Blauw" + :color/crimson "Karmozijn" + :color/cyan "Cyaan" + :color/grass "Grasgroen" + :color/gray "Grijs" + :color/green "Groen" + :color/indigo "Indigo" + :color/orange "Oranje" + :color/pink "Roze" + :color/plum "Pruim" + :color/purple "Paars" + :color/red "Rood" + :color/teal "Petrol" + :color/tomato "Tomaat" + :color/violet "Violet" + :color/yellow "Geel" + + :command.auto-complete/complete "Automatisch aanvullen: Kies geselecteerd item" + :command.auto-complete/meta-complete "Meta automatisch aanvullen" + :command.auto-complete/next "Automatisch aanvullen: Selecteer volgend item" + :command.auto-complete/prev "Automatisch aanvullen: Selecteer vorig item" + :command.auto-complete/shift-complete "Automatisch aanvullen: Open geselecteerd item in zijbalk" + + :command.command-palette/toggle "Commandopalet" + + :command.editor/add-property "Eigenschap toevoegen" + :command.editor/add-property-deadline "Deadline toevoegen" + :command.editor/add-property-icon "Pictogram toevoegen" + :command.editor/add-property-priority "Prioriteit toevoegen" + :command.editor/add-property-status "Status toevoegen" + :command.editor/add-reaction "Reactie toevoegen" + :command.editor/backspace "Backspace / Achteruit wissen" + :command.editor/backward-kill-word "Een woord achterwaarts wissen" + :command.editor/backward-word "Verplaats de cursor een woord achteruit" + :command.editor/beginning-of-block "Verplaats de cursor naar het begin van een blok" + :command.editor/bold "Vet" + :command.editor/clear-block "Wis volledige blokinhoud" + :command.editor/collapse-block-children "Samenvouwen" + :command.editor/copy "Kopiëren (kopieert een selectie of een blokverwijzing)" + :command.editor/copy-embed "Kopieer een blok embed dat wijst naar het huidige blok" + :command.editor/copy-page-url "Pagina-URL kopiëren" + :command.editor/copy-text "Kopieer selecties als tekst" + :command.editor/cut "Knip" + :command.editor/cycle-todo "Draai de TODO status van het huidige item" + :command.editor/delete "Verwijderen / verwijderen vooruit" + :command.editor/delete-selection "Verwijder geselecteerde blokken" + :command.editor/down "Verplaats cursor omlaag / Selecteer omlaag" + :command.editor/end-of-block "Verplaats cursor naar het einde van een blok" + :command.editor/escape-editing "Klaar met bewerken" + :command.editor/expand-block-children "Openvouwen" + :command.editor/follow-link "Volg de link onder de cursor" + :command.editor/forward-kill-word "Een woord vooruit verwijderen" + :command.editor/forward-word "Verplaats de cursor een woord vooruit" + :command.editor/highlight "Markeer" + :command.editor/indent "Blok inspringen" + :command.editor/insert-link "Link invoegen" + :command.editor/insert-youtube-timestamp "Voeg youtube tijdstempel toe" + :command.editor/italics "Cursief" + :command.editor/jump "Springen" + :command.editor/kill-line-after "Verwijder regel na cursorpositie" + :command.editor/kill-line-before "Verwijder regel voor cursorpositie" + :command.editor/left "Verplaats cursor naar links / Open geselecteerd blok bij het begin" + :command.editor/move-block-down "Verplaats blok omlaag" + :command.editor/move-block-up "Verplaats blok omhoog" + :command.editor/move-blocks "Blokken verplaatsen" + :command.editor/new-block "Maak nieuw blok" + :command.editor/new-line "Nieuwe regel in huidig blok" + :command.editor/open-edit "Bewerk geselecteerde blok" + :command.editor/open-link-in-sidebar "Open link in zijbalk" + :command.editor/open-selected-blocks-in-sidebar "Geselecteerde blokken in zijbalk openen" + :command.editor/outdent "Verminder blok inspringing" + :command.editor/paste-text-in-one-block-at-point "Plak tekst in een blok op punt" + :command.editor/quick-add "Snel toevoegen" + :command.editor/redo "Herhaal" + :command.editor/right "Beweeg cursor naar rechts / Open geselecteerd blok aan einde" + :command.editor/select-all-blocks "Selecteer alle blokken" + :command.editor/select-block-down "Selecteer blok hieronder" + :command.editor/select-block-up "Selecteer blok hierboven" + :command.editor/select-down "Selecteer inhoud hieronder" + :command.editor/select-parent "Bovenliggende selecteren" + :command.editor/select-up "Selecteer inhoud hierboven" + :command.editor/set-tags "Tags instellen" + :command.editor/strike-through "Doorstrepen" + :command.editor/toggle-block-children "Onderliggende blokken tonen/verbergen" + :command.editor/toggle-display-hidden-properties "Verborgen eigenschappen tonen/verbergen" + :command.editor/toggle-number-list "Genummerde lijst" + :command.editor/toggle-open-blocks "Toggle open blocks (open of dichtklappen van alle blokken)" + :command.editor/undo "Ongedaan maken" + :command.editor/up "Verplaats cursor omhoog / Selecteer omhoog" + :command.editor/zoom-in "Zoom in bewerkingsblok / Vooruit anders" + :command.editor/zoom-out "Zoom uit bewerkingsblok / Achteruit anders" + + :command.go/all-graphs "Alle grafieken" + :command.go/all-pages "Ga naar alle pagina's" + :command.go/backward "Achteruit" + :command.go/electron-find-in-page "Zoeken op pagina" + :command.go/electron-jump-to-the-next "Naar volgende springen" + :command.go/electron-jump-to-the-previous "Naar vorige springen" + :command.go/flashcards "Flashcards" + :command.go/forward "Vooruit" + :command.go/graph-view "Ga naar grafiekweergave" + :command.go/home "Ga naar home" + :command.go/journals "Ga naar journaals" + :command.go/keyboard-shortcuts "Ga naar sneltoetsen" + :command.go/next-journal "Ga naar volgende journaal" + :command.go/prev-journal "Ga naar vorige journaal" + :command.go/search "Zoeken in volledige tekst" + :command.go/search-in-page "Op pagina zoeken" + :command.go/search-themes "Thema zoeken" + :command.go/tomorrow "Ga naar morgen" + + :command.graph/add "Voeg een grafiek toe" + :command.graph/db-add "Aan database toevoegen" + :command.graph/db-save "Database opslaan" + :command.graph/export-as-html "Exporteren als HTML" + :command.graph/open "Selecteer grafiek om te openen" + :command.graph/remove "Verwijder een grafiek" + + :command.misc/copy "Kopieer" + :command.misc/export-block-data "Blokgegevens exporteren" + :command.misc/export-graph-ontology-data "Grafiek-ontologie exporteren" + :command.misc/export-page-data "Paginagegevens exporteren" + :command.misc/import-edn-data "EDN-gegevens importeren" + + :command.page/toggle-favorite "Toevoegen aan/verwijderen uit favorieten" + + :command.pdf/close "Huidige pdf-viewer sluiten" + :command.pdf/find "Zoeken in PDF" + :command.pdf/next-page "Volgende pagina van huidige pdf doc" + :command.pdf/previous-page "Vorige pagina van huidige pdf doc" + + :command.publish/open-dialog "Publicatiedialoog openen" + + :command.search/re-index "Bouw zoekindex opnieuw op" + + :command.shell/run "Voer git commando uit" + + :command.sidebar/clear "Wis alles in de rechter zijbalk" + :command.sidebar/close-top "Bovenste paneel sluiten" + :command.sidebar/open-today-page "Open de pagina van vandaag in de rechter zijbalk" + + :command.ui/clear-all-notifications "Alle meldingen wissen" + :command.ui/customize-appearance "Uiterlijk aanpassen" + :command.ui/goto-plugins "Ga naar plugins dashboard" + :command.ui/highlight-recent-blocks "Recente blokken markeren" + :command.ui/install-plugin-from-github "Plug-in vanuit GitHub installeren" + :command.ui/install-plugins-from-file "Plug-ins vanuit bestand installeren" + :command.ui/select-theme-color "Selecteer beschikbare themakleuren" + :command.ui/toggle-brackets "Toggle tussen het weergeven van beugels" + :command.ui/toggle-contents "Toggle inhoud in zijbalk" + :command.ui/toggle-document-mode "Schakel tussen documentmodus" + :command.ui/toggle-help "Help in-/uitschakelen" + :command.ui/toggle-left-sidebar "Toggle linker zijbalk" + :command.ui/toggle-right-sidebar "Toggle rechter zijbalk" + :command.ui/toggle-settings "Instellingen in-/uitschakelen" + :command.ui/toggle-theme "Toggle tussen donker/licht thema" + :command.ui/toggle-wide-mode "Toggle brede modus" + + :command.window/close "Venster sluiten" + + :context-menu/developer-tools "Hulpmiddelen voor ontwikkelaars" + :context-menu/make-a-flashcard "Flashcard maken" + :context-menu/set-icon "Pictogram instellen" + :context-menu/toggle-number-list "Genummerde lijst in-/uitschakelen" + + :date/invalid-date-warning "{1} is geen geldige datum. Probeer het opnieuw" + + :date.nlp/last-friday "Vorige vrijdag" + :date.nlp/last-monday "Vorige maandag" + :date.nlp/last-month "Vorige maand" + :date.nlp/last-saturday "Vorige zaterdag" + :date.nlp/last-sunday "Vorige zondag" + :date.nlp/last-thursday "Vorige donderdag" + :date.nlp/last-tuesday "Vorige dinsdag" + :date.nlp/last-wednesday "Vorige woensdag" + :date.nlp/last-week "Vorige week" + :date.nlp/last-year "Vorig jaar" + :date.nlp/next-friday "Volgende vrijdag" + :date.nlp/next-monday "Volgende maandag" + :date.nlp/next-month "Volgende maand" + :date.nlp/next-saturday "Volgende zaterdag" + :date.nlp/next-sunday "Volgende zondag" + :date.nlp/next-thursday "Volgende donderdag" + :date.nlp/next-tuesday "Volgende dinsdag" + :date.nlp/next-wednesday "Volgende woensdag" + :date.nlp/next-week "Volgende week" + :date.nlp/next-year "Volgend jaar" + :date.nlp/this-friday "Deze vrijdag" + :date.nlp/this-monday "Deze maandag" + :date.nlp/this-month "Deze maand" + :date.nlp/this-saturday "Deze zaterdag" + :date.nlp/this-sunday "Deze zondag" + :date.nlp/this-thursday "Deze donderdag" + :date.nlp/this-tuesday "Deze dinsdag" + :date.nlp/this-wednesday "Deze woensdag" + :date.nlp/this-week "Deze week" + :date.nlp/this-year "Dit jaar" + :date.nlp/today "Vandaag" + :date.nlp/tomorrow "Morgen" + :date.nlp/yesterday "Gisteren" + + :deeplink/open-block-error "Link openen mislukt. Blok-ID `{1}` bestaat niet in de huidige grafiek." + :deeplink/open-graph-error "Grafiek openen mislukt. Grafiek `{1}` bestaat niet." + :deeplink/open-page-error "Link openen mislukt. Pagina `{1}` bestaat niet in de huidige grafiek." + + :editor/add-content-first-warning "Voeg eerst wat inhoud toe." + :editor/auto-heading "Automatische kop" :editor/block-search "Zoek voor een blok" + :editor/click-to-edit "Klik om te bewerken" + :editor/code-language-placeholder "Kies taal" + :editor/collapse-block-children "Onderliggende blokken inklappen" + :editor/cut "Knip" + :editor/cycle-todo "TODO wisselen" + :editor/delete-selection "Selectie verwijderen" + :editor/display-tag-inline-hint "om deze tag inline weer te geven in plaats van aan het einde van deze node." + :editor/expand-block-children "Onderliggende blokken uitklappen" + :editor/heading "Kop {1}" + :editor/moving-blocks-count "Bezig met verplaatsen van {1} blokken" + :editor/new-page "Nieuwe pagina" + :editor/new-tag "Nieuwe tag" + :editor/no-block-selected-warning "Geen blok geselecteerd" + :editor/paste "Plakken" + :editor/reference-node-use-page-ref "Gebruik `[[]]` om naar een knooppunt te verwijzen." + :editor/remove-heading "Kop verwijderen" + :editor/search-for-node "Naar een node zoeken" + :editor/search-for-tag "Naar een tag zoeken" + :editor/search-template-placeholder "Zoek naar een sjabloon" + :editor/template-insert-error "Sjabloonfout bij invoeren: {1}" + + :editor.document-mode/new-block-hint "{1} om een nieuw blok aan te maken" + :editor.document-mode/title "Documentmodus" + :editor.document-mode/toggle-desc "Klik op `D` of typ {1} om documentmodus te wisselen" + + :editor.quick-add/add-to-today "Toevoegen aan de pagina van vandaag" + :editor.quick-add/title "Snel toevoegen" + + :editor.slash/advanced-query "Geavanceerde zoekopdracht" + :editor.slash/advanced-query-desc "Maak een geavanceerd zoekopdracht blok" + :editor.slash/calculator "Rekenmachine" + :editor.slash/calculator-desc "Rekenmachine invoegen" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Codeblok" + :editor.slash/code-block-desc "Codeblok invoegen" + :editor.slash/current-time "Huidige tijd" + :editor.slash/current-time-desc "Huidige tijd invoegen" + :editor.slash/date-picker "Datumkiezer" + :editor.slash/date-picker-desc "Selecteer een datum en voeg in" + :editor.slash/embed-html "HTML insluiten" + :editor.slash/embed-twitter-tweet "Twitter-tweet insluiten" + :editor.slash/embed-video-url "Video-URL insluiten" + :editor.slash/embed-youtube-timestamp "YouTube-timestamp insluiten" + :editor.slash/group-advanced "GEAVANCEERD" + :editor.slash/group-basic "BASIS" + :editor.slash/group-format "OPMAAK" + :editor.slash/group-heading "Kop" + :editor.slash/group-list-type "LIJSTTYPE" + :editor.slash/group-plugins "PLUGINS" + :editor.slash/group-priority "PRIORITEIT" + :editor.slash/group-task-date "TAAKDATUM" + :editor.slash/group-task-status "TAAKSTATUS" + :editor.slash/group-time-and-date "TIJD & DATUM" + :editor.slash/heading-label "Kop {1}" + :editor.slash/image-link "Afbeeldingskoppeling" + :editor.slash/image-link-desc "Maak een HTTP-koppeling naar een afbeelding" + :editor.slash/link-desc "Maak een HTTP-koppeling" + :editor.slash/math-block "Wiskundeblok" + :editor.slash/math-block-desc "Maak een LaTeX-blok" + :editor.slash/no-priority "Geen prioriteit" + :editor.slash/node-embed "Knooppunt insluiten" + :editor.slash/node-embed-desc "Sluit een knooppunt hier in" + :editor.slash/node-reference "Knoopverwijzing" + :editor.slash/node-reference-desc "Maak een teruglink naar een knooppunt (een pagina of blok)" + :editor.slash/normal-text "Normale tekst" + :editor.slash/normal-text-desc "Kop verwijderen en instellen op normale tekst" + :editor.slash/number-children "Nummering van onderliggende items" + :editor.slash/number-list "Genummerde lijst" + :editor.slash/priority-desc "Prioriteit instellen op {1}" + :editor.slash/priority-label "Prioriteit {1}" + :editor.slash/query-function "Query-functie" + :editor.slash/query-function-desc "Maak een query-functie" + :editor.slash/quote-desc "Maak een citatblok" + :editor.slash/status-desc "Status instellen op {1}" + :editor.slash/template-desc "Voeg een gemaakte sjabloon hier in" + :editor.slash/today-desc "Voeg de datum van vandaag in" + :editor.slash/tomorrow-desc "Voeg de datum van morgen in" + :editor.slash/underline "Onderstrepen" + :editor.slash/underline-desc "Maak een onderstreepte textdecoratie" + :editor.slash/upload-asset "Bijlage uploaden" + :editor.slash/upload-asset-desc "Upload bestandstypen zoals afbeelding, PDF, DOCX, enz." + :editor.slash/yesterday-desc "Voeg de datum van gisteren in" + + :electron/about "Over Logseq" + :electron/add-to-dictionary "Aan woordenboek toevoegen" + :electron/block-not-exist "Link openen mislukt. Blok-id `{1}` bestaat niet in de grafiek." + :electron/cancel "Annuleren" + :electron/copy-image "Afbeelding kopiëren" + :electron/link-open-confirm "Weet je zeker dat je deze link wilt openen?\n{1}" + :electron/link-open-failed-missing-graph "Link openen mislukt. Grafiek ontbreekt." + :electron/link-open-failed-no-graph "Link openen mislukt. Grafiek-id `{1}` kon niet aan een gekoppelde grafiek worden gekoppeld." + :electron/link-open-failed-no-target "Link openen mislukt. `{1}` kon niet aan een doel worden gekoppeld." + :electron/look-up "Selectie opzoeken" + :electron/main-exception "[Uitzondering in hoofdproces]\n{1}\n{2}" + :electron/new-window "Nieuw venster" + :electron/official-docs "Officiële documentatie" + :electron/ok "OK" + :electron/open-dir-error "Map openen mislukt: {1}" + :electron/save-image "Afbeelding opslaan" + :electron/save-image-as "Afbeelding opslaan als" + :electron/search-with-google "Zoeken met Google" + :electron/unimplemented-callback "Niet geïmplementeerde x-callback-url-actie: `{1}`." + :electron/version "Versie {1}" + :electron/write-file-error "Schrijven naar bestand {1} mislukt, {2}." + :electron/write-file-error-with-backup "Schrijven naar bestand {1} mislukt, {2}. Er is een back-upbestand opgeslagen in {3}." + + :encryption/cloud-password-rich (fn [] ["Als je je wachtwoord kwijtraakt, kan geen van je gegevens in de cloud worden ontsleuteld. " [:span "Je kunt nog steeds bij de lokale versie van je grafiek."]]) + :encryption/current-password "Huidig wachtwoord" + :encryption/enter-password "Wachtwoord invoeren" + :encryption/enter-password-again "Wachtwoord opnieuw invoeren" + :encryption/enter-password-title "Wachtwoord invoeren" + :encryption/failed-to-force-reset-password "Geforceerd wachtwoord resetten mislukt" + :encryption/failed-to-update-password "Wachtwoord bijwerken mislukt" + :encryption/fetch-key-pair-error "Fout bij ophalen van gebruiker rsa-sleutelpaar: {1}" + :encryption/fetching-key-pair "Sleutelpaar ophalen" + :encryption/force-reset-password "Wachtwoord geforceerd resetten" + :encryption/force-reset-password-successfully "Wachtwoord geforceerd gereset" + :encryption/force-resetting-password "Geforceerd resetten" + :encryption/forgot-password-question "Wachtwoord vergeten?" + :encryption/forgot-password-warning "Als u uw wachtwoord vergeet, kunnen versleutelde gegevens niet worden hersteld." + :encryption/init-key-pair "Sleutelpaar initialiseren" + :encryption/init-key-pair-error "Fout bij init-sleutelpaar: {1}" + :encryption/password-not-matched "Wachtwoorden komen niet overeen" + :encryption/password-updated-successfully "Wachtwoord bijgewerkt" + :encryption/remember-password-rich (fn [] [[:span "Zorg ervoor dat je "] "het ingestelde wachtwoord onthoudt, want we kunnen het niet resetten of terughalen als je het vergeet, " [:span "en we raden aan om "] "er een veilige back-up van te bewaren."]) + :encryption/reset-password "Wachtwoord resetten" + :encryption/set-new-password "Nieuw wachtwoord instellen" + :encryption/set-password-title "Wachtwoord instellen" + :encryption/updating-password "Wachtwoord bijwerken" + :encryption/wrong-password "Onjuist wachtwoord" + + :export/backup-successful "Back-up aangemaakt!" + :export/block-data-copied "Blokgegevens naar klembord gekopieerd" + :export/collecting-assets "Bijlagen verzamelen" + :export/copied-to-clipboard "Naar klembord gekopieerd!" + :export/copy-or-export-as "Exporteren als" + :export/creating-zip "Zip-bestand aanmaken" + :export/db-backup-error "DB-back-up aanmaken mislukt." + :export/db-edn "Exporteren als EDN-bestand" + :export/debug-transit-desc "Exporteert naar een .transit-bestand om naar ons te sturen voor foutopsporing. Gevoelige gegevens worden verwijderd uit het geëxporteerde bestand." + :export/debug-transit-file "Debug-transitbestand exporteren" + :export/edn-desc "Exporteert naar een leesbaar en bewerkbaar .edn-bestand. Gebruik dit niet als primaire back-up." + :export/error-unexpected "Er is een onverwachte fout opgetreden bij het exporteren. Zie de JavaScript-console voor details." + :export/exporting "Exporteren" + :export/finalizing "Afronden" + :export/format-text "Tekst" + :export/graph "Grafiek exporteren" + :export/graph-ontology-data-copied "Grafiek-ontologiegegevens naar klembord gekopieerd" + :export/indent-style-dashes "streepjes" + :export/indent-style-label "Inspringingstijl:" + :export/indent-style-none "geen inspringing" + :export/indent-style-spaces "spaties" + :export/level-lte "niveau <=" + :export/markdown "Exporteren als Markdown (zonder blokeigenschappen)" + :export/newline-after-block "nieuwe regel na blok" + :export/no-updates-since-last-export "Geen wijzigingen sinds laatste export." + :export/open-blocks-only "alleen open blokken (ingeklapte kinderen overslaan)" + :export/page "Pagina exporteren" + :export/page-data-copied "Paginagegevens naar klembord gekopieerd" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Zip-bestand voorbereiden" + :export/preview-alt "exportvoorbeeld" + :export/public-pages "Openbare pagina's exporteren" + :export/remove-emphasis "nadruk verwijderen" + :export/remove-properties "eigenschappen verwijderen" + :export/remove-tags "#tags verwijderen" + :export/save-to-file "Opslaan als bestand" + :export/sqlite-db "SQLite-database exporteren" + :export/title "Exporteren" + :export/transparent-background "Transparante achtergrond" + :export/view-nodes-data-copied "Weergaveknooppuntgegevens naar klembord gekopieerd" + :export/zip "DB SQLite en bestanden exporteren" + :export/zip-error "ZIP exporteren mislukt." + + :export.backup/backup-now "Nu back-uppen" + :export.backup/cancel "Back-up annuleren" + :export.backup/enabled-desc "Elk uur wordt er een back-up gemaakt van deze grafiek, {1}." + :export.backup/folder "Back-upmap:" + :export.backup/hourly-note "Er wordt elk uur een back-up aangemaakt." + :export.backup/open-folder "back-upmap voor deze grafiek openen" + :export.backup/schedule "Back-up inplannen" + :export.backup/set-folder-first "Stel eerst een back-upmap in" + :export.backup/sqlite-desc "Primaire manier om de inhoud van de grafiek naar een enkel .sqlite-bestand te back-uppen." + :export.backup/unsupported-desc "Je browser ondersteunt {{The File System Access API}} niet, schakel over naar een Chromium-gebaseerde browser." + :export.backup/zip-desc "Primaire manier om de inhoud en bijlagen van de grafiek naar een .zip-bestand te back-uppen." + + :file/config-duplicate-keys "Het bestand '{1}' heeft dubbele sleutels. De sleutel '{2}' wordt meerdere keren toegewezen." + :file/config-invalid "Configuratiebestand is ongeldig" :file/format-not-supported "Formaat .{1} wordt niet ondersteund." + :file/label "Bestand" :file/last-modified-at "Laatst aangepast op" :file/name "Bestandsnaam" :file/no-data "Geen gegevens" + :file/title "Bestand {1}" + + :file.config/deprecation-title "Het bestand {1} heeft de volgende verouderingen:" + :file.config/error-title "Het bestand {1} heeft de volgende fouten:" + :file.config/invalid-desc "Zorg ervoor dat de configuratie tussen {} staat." + :file.config/invalid-title "Het bestand {1} is niet geldig." + :file.config/read-failed-desc "Zorg ervoor dat uw configuratie tussen {} staat. Zorg er ook voor dat de tekens '( { [' hun bijbehorende sluitende tekens ') } ]' hebben." + :file.config/read-failed-title "Kan bestand {1} niet lezen" + + :flashcard/add-query "Nieuwe zoekopdracht toevoegen" + :flashcard/all-cards "Alle kaarten" + :flashcard/select-cards "Kaarten selecteren" + :flashcard/shortcut-tooltip "Sneltoets: {1}" + + :flashcard.empty/desc "Je kunt \"{1}\" aan elk blok toevoegen om er een kaart van te maken, of \"/cloze\" activeren om wat clozes toe te voegen." + :flashcard.empty/title "Welkom bij Flashcards" + + :flashcard.rating/again "Opnieuw" + :flashcard.rating/again-desc "We hadden het antwoord fout. Dat betekent automatisch dat we de kaart zijn vergeten. Dit is een geheugenfout。" + :flashcard.rating/easy "Makkelijk" + :flashcard.rating/easy-desc "Het antwoord was correct en we herinnerden het snel en vol vertrouwen, zonder mentale inspanning。" + :flashcard.rating/good "Goed" + :flashcard.rating/good-desc "Het antwoord was correct, maar het kostte enige mentale inspanning om het te herinneren。" + :flashcard.rating/hard "Moeilijk" + :flashcard.rating/hard-desc "Het antwoord was correct, maar we waren er niet zeker van of het duurde te lang om het te herinneren." + + :flashcard.review/finished "Klaar! 💯" + :flashcard.review/hide-answers "Antwoorden verbergen" + :flashcard.review/show-answers "Antwoorden tonen" + :flashcard.review/show-clozes "Clozes tonen" + + :format/bold "Vet" + :format/code "Code" + :format/highlight "Markeren" + :format/italics "Cursief" + :format/strikethrough "Doorhalen" + + :graph/all-graphs "Alle grafieken" + :graph/already-exists-error "De grafiek '{1}' bestaat al. Probeer het opnieuw met een andere naam." + :graph/as-png "als PNG" + :graph/built-in-pages "Ingebouwde pagina's" + :graph/charge-range "Laadbereik" + :graph/charge-strength "Laadsterkte" + :graph/click-to-search "Klik om te zoeken" + :graph/create-db "DB-grafiek maken" + :graph/create-error "Grafiek aanmaken mislukt" + :graph/create-new "Nieuwe grafiek aanmaken" + :graph/created-before "Aangemaakt voor" + :graph/creating "Grafiek wordt gemaakt" + :graph/delete-local-action "Lokale grafiek verwijderen" + :graph/delete-local-confirm-desc "Weet u zeker dat u de grafiek \"{1}\" permanent uit Logseq wilt verwijderen?" + :graph/delete-server-action "Van server verwijderen" + :graph/delete-server-confirm-desc "Weet u zeker dat u de grafiek \"{1}\" permanent van onze server wilt verwijderen?" + :graph/delete-warning "⚠️ Let op: we kunnen deze grafiek na verwijdering niet herstellen. Zorg ervoor dat u een back-up hebt voordat u deze verwijdert." + :graph/diff "Git diff" + :graph/downloading "downloaden" + :graph/encrypt-data-label "Grafiekgegevens versleutelen" + :graph/excluded-pages "Uitgesloten pagina's" + :graph/forces "Krachten" + :graph/gc-success "Grafiek opgeschoond!" + :graph/last-opened-at-label "Laatst geopend: {1}" + :graph/leave-action "Deze grafiek verlaten" + :graph/leave-confirm-desc "Weet u zeker dat u deze grafiek wilt verlaten?" + :graph/leave-error "Grafiek verlaten mislukt" + :graph/left "Grafiek verlaten" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "link" "links"))) + :graph/link-distance "Linkafstand" + :graph/local-graphs "Lokale grafieken" + :graph/n-hops-from-selected-nodes "N stappen van geselecteerde knooppunten" + :graph/name-placeholder "naam van je grafiek" + :graph/nodes "Knooppunten" + :graph/orphan-pages "Weespagina's" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "pagina" "pagina's"))) + :graph/pause-simulation "Simulatie pauzeren" + :graph/preparing "voorbereiden" + :graph/refresh-remote-graphs "Externe grafieken vernieuwen" + :graph/remote-graphs "Externe grafieken" + :graph/removed "Grafiek verwijderd \"{1}\"" + :graph/removed-and-redirecting "Grafiek \"{1}\" verwijderd. Omleiden naar grafiek \"{2}\"" + :graph/removed-from-sync "Grafiek uit synchronisatie verwijderd" + :graph/reset "Grafiek resetten" + :graph/reset-forces "Krachten resetten" + :graph/search "Zoeken" + :graph/shared-graphs "Gedeelde grafieken" + :graph/updated-switching "Grafiek bijgewerkt. Schakelen..." + :graph/use-sync-beta "Logseq Sync gebruiken (bètatest)" + :graph/use-sync-label "Logseq Sync gebruiken?" + + :graph.diagnostics/checksum-failed-error "Kan checksum-diagnostiek voor de grafiek niet berekenen." + :graph.diagnostics/checksum-recomputed-success "Checksum opnieuw berekend. Herberekend: {1}, lokaal: {2}, extern: {3}. {4}.edn is gedownload met {5} blokken en checksum-attributen {6}." + :graph.diagnostics/checksum-unavailable-warning "Kan geen checksum-diagnostiek voor de huidige grafiek berekenen." + :graph.diagnostics/client-ops-export-failed-error "Kan Client ops SQLite niet exporteren." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Exporteren van Client ops SQLite mislukt: ongeldig payloadtype {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite geëxporteerd: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Geen grafiek gevonden." + + :graph.page/show-journals "Toon Journaals" + :graph.page/title "Pagina grafiek" + + :graph.switch/add-graph-action "Ja, voeg nog een grafiek toe" + :graph.switch/empty-desc "Geen overeenkomende grafieken. Wilt u er een toevoegen?" + :graph.switch/prompt "Wisselen" + :graph.switch/select-prompt "Selecteer een grafiek" + + :graph.validation/config-arweave-gateway-warning "wordt niet meer ondersteund." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "wordt niet meer ondersteund. Gebruik alstublieft '/' en meld hiervan op bugs." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "wordt niet gebruikt in DB-grafieken omdat er alleen markdown-modus is." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Validatie heeft {1} ongeldig(e) blok(en) gedetecteerd. Deze blokken kunnen buggy zijn. Poging om ongeldige blokken te repareren. Voer validatie opnieuw uit om te zien of ze zijn hersteld." + :graph.validation/name-reserved-characters-warning "Grafieknaam mag de volgende gereserveerde tekens niet bevatten:" + :graph.validation/reserved-character-asterisk "asterisk" + :graph.validation/reserved-character-backslash "backslash" + :graph.validation/reserved-character-colon "dubbelepunt" + :graph.validation/reserved-character-double-quote "dubbel aanhalingsteken" + :graph.validation/reserved-character-forward-slash "slash" + :graph.validation/reserved-character-greater-than "groter dan" + :graph.validation/reserved-character-hash "hekje" + :graph.validation/reserved-character-less-than "kleiner dan" + :graph.validation/reserved-character-pipe "verticale streep of pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "vraagteken" + :graph.validation/valid "Uw grafiek is geldig! {1}" + + :header/go-back "Terug" + :header/go-forward "Vooruit" + :header/highlight-recent-blocks "Recente blokken markeren" + :header/highlight-recent-blocks-days-ago "Recente blokken markeren: {1} dagen geleden" + :header/more "Meer" + :header/quit-highlight-recent-blocks "Markering van recente blokken stoppen" + :header/toggle-left-sidebar "Linker zijbalk in-/uitschakelen" :help/about "Over Logseq" + :help/about-title "Over" + :help/ask-community "Vraag de community" + :help/awesome-logseq "Awesome Logseq" :help/block-reference "Blok referentie" - :help/bug "Rapporteer een fout" - :help/changelog "Verander logboek" + :help/blog "Blog" + :help/bug "Bug melden op GitHub" + :help/changelog "Wijzigingslogboek" + :help/community-title "Community" :help/context-menu "Blok context menu" + :help/context-menu-action "Rechtsklik op opsommingsteken" + :help/development-title "Ontwikkeling" :help/docs "Documentatie" - :help/feature "Functie verzoek" - :help/forum-community "Forum gemeenschap" + :help/feature "Functieverzoek" + :help/forum-community "Forumcommunity" + :help/handbook "Handboek" + :help/learn-more "Meer informatie" + :help/markdown-syntax "Markdown-syntaxis" + :help/open-link-in-sidebar "Open link in zijbalk" + :help/open-link-in-sidebar-action "Shift-klik op referentie" :help/privacy "Privacybeleid" :help/reference-autocomplete "Automatisch aanvullen van paginareferenties" - :help/shortcut "Snelkoppeling" - :help/shortcut-page-title "Toetsenbord snelkoppelingen" - :help/shortcuts "Toetsenbord snelkoppelingen" + :help/release-notes "Releaseopmerkingen" + :help/roadmap "Routekaart" + :help/search "Zoeken" :help/slash-autocomplete "Slash-Autocomplete" :help/start "Aan de slag" + :help/submit-feedback "Feedback versturen" + :help/support-forum "Ondersteuningsforum" :help/terms "Voorwaarden" - :help/open-link-in-sidebar "Open link in zijbalk" + :help/terms-title "Voorwaarden" + :help/usage-title "Gebruik" - :left-side-bar/journals "Journalen" - :left-side-bar/nav-favorites "Favorieten" - :left-side-bar/nav-recent-pages "Recent" - :linked-references/filter-search "Zoeken in gelinkte pagina's" + :help.handbook/chat-on-discord "Chat op Discord" + :help.handbook/chat-on-discord-desc "Stel snelle vragen, ontmoet andere gebruikers en ontdek nieuwe werkwijzen." + :help.handbook/copy-topic-link "Onderwerplink kopiëren" + :help.handbook/current-chapter "Huidig hoofdstuk" + :help.handbook/help-categories "Helpcategorieën" + :help.handbook/home "Start" + :help.handbook/link-copied "Handboeklink gekopieerd!" + :help.handbook/monthly-posts "maandelijkse berichten" + :help.handbook/next-chapter "Volgend hoofdstuk" + :help.handbook/popular-topics "Populaire onderwerpen" + :help.handbook/prev-chapter "Vorig hoofdstuk" + :help.handbook/resources-from "Bronnen van {1}" + :help.handbook/search-placeholder "Zoeken" + :help.handbook/shortcuts-count "{1} sneltoetsen" + :help.handbook/sync "Synchronisatie" + :help.handbook/title "Handboek" + :help.handbook/topics "Onderwerpen" + :help.handbook/users-online "gebruikers online" + :help.handbook/visit-the-forum "Bezoek het forum" + :help.handbook/visit-the-forum-desc "Geef feedback, vraag functies aan en voer diepgaande gesprekken." + :help.handbook/writing-mode "Schrijfmodus (binnenkort beschikbaar)" + + :help.shortcuts/desc "Sneltoetsen en tips bekijken" + :help.shortcuts/label "Toetsenbord snelkoppelingen" + :help.shortcuts/shortcut-column "Snelkoppeling" + :help.shortcuts/title "Toetsenbord snelkoppelingen" + :help.shortcuts/triggers "Sneltoetsen en triggers" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Iconen ({1})" + :icon/matched-count "Treffers ({1})" + :icon/search-all "Alles doorzoeken" + :icon/search-emojis "Emojis zoeken" + :icon/search-icons "Iconen zoeken" + :icon/tab-all "Alles" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Iconen" + + :import/all-tags "Alle tags importeren" + :import/asset-too-large-warning "Het kopiëren van asset {1} is overgeslagen omdat deze de limiet van 100 MB overschrijdt." + :import/assets-import-partial "{1}/{2} bestanden geïmporteerd. Details in console." + :import/assets-imported "{1} bestanden geïmporteerd." + :import/assets-skipped "{1} bestanden overgeslagen. Details in console." + :import/block-icons-cannot-be-imported "Blokpictogrammen kunnen niet worden geïmporteerd. Importeer handmatig in blok {1}." + :import/cannot-import-block-into-non-block-entity "Kan blok niet importeren in niet-blokentiteit." + :import/db-edn-desc "Importeer de EDN-export van een DB-grafiek in een nieuwe DB-grafiek" + :import/db-edn-title "EDN naar DB-grafiek" + :import/debug-transit-desc "Importeer debug-transitbestand in een nieuwe DB-grafiek" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Standaard DB-grafiekgedrag" + :import/empty-graph-name "Grafieknaam mag niet leeg zijn." + :import/extract-inline-code-snippets "Inline codefragmenten extraheren als subblokken" + :import/file-finished "Import voltooid!" + :import/file-to-db-desc "Importeer een bestandsgebaseerde Logseq-grafiekmap in een nieuwe DB-grafiek" + :import/file-to-db-title "Bestand naar DB-grafiek" + :import/graph-name-conflict "Er bestaat al een grafiek met deze naam. Kies een andere naam!" + :import/graph-name-placeholder "Grafieknaam" + :import/ignored-assets "{1} bestanden overgeslagen tijdens import. Details in de JavaScript-console." + :import/ignored-files "{1} bestanden overgeslagen tijdens import. Details in de JavaScript-console." + :import/ignored-properties "{1} eigenschappen overgeslagen tijdens import" + :import/ignored-properties-fix "Om het eigenschapstype te corrigeren, wijzig de waarde en importeer opnieuw" + :import/invalid-blocks-detected "{1} ongeldige blokken gedetecteerd. Interactie werkt mogelijk niet. Details in de JavaScript-console." + :import/invalid-edn-file "Het opgegeven EDN-bestand is ongeldig. Corrigeer het en probeer opnieuw." + :import/loading "Importeren" + :import/logseq-config-missing "Importfout: Logseq-grafiek bevat geen 'logseq/config.edn' bestand." + :import/new-graph-name "Nieuwe grafieknaam" + :import/notes "Notities importeren" + :import/org-files-imported "{1} Org-bestanden geïmporteerd als Markdown. Org-ondersteuning wordt later toegevoegd." + :import/page-icons-cannot-be-imported "Paginapictogrammen kunnen niet worden geïmporteerd. Importeer handmatig op pagina {1}." + :import/properties-case-insensitive-commas "Eigenschapsnamen (hoofdletterongevoelig, kommagescheiden)" + :import/property-classes-placeholder "bijv. type" + :import/property-import-manually "Deze eigenschap moet handmatig worden geïmporteerd" + :import/property-parent-classes-placeholder "bijv. parent" + :import/property-type-mismatch "Eigenschapswaarde is van type {1}, niet {2}" + :import/property-value-tag-parents "Tag-bovenliggende elementen importeren uit eigenschapswaarden" + :import/property-value-tags "Extra tags importeren uit eigenschapswaarden" + :import/remove-inline-tags "Inline tags verwijderen" + :import/select-edn-or-json "Selecteer een EDN- of JSON-bestand." + :import/specific-tags "Specifieke tags importeren" + :import/sqlite-and-assets-desc "Importeer een zip met db.sqlite en een bijlagenmap" + :import/sqlite-and-assets-title "SQLite + bijlagen (.zip)" + :import/submitted-edn-invalid "De opgegeven EDN-gegevens zijn ongeldig! Corrigeer en probeer opnieuw." + :import/successful "Import geslaagd!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tags (hoofdletterongevoelig)" + :import/title "Importeren" + :import/unexpected-error "Onverwachte fout: {1}" + :import/zip-import-error "Zip-import mislukt: {1}" + :import/zip-missing-db-sqlite "ZIP-bestand bevat geen db.sqlite" + + :journal/add-blocks-to-today-success "Vandaag toegevoegde blokken" + :journal/page-cant-convert-warning "Deze pagina is geen dagboekpagina." + :journal/parse-date-to-name-error "Dagboeknaam parseren mislukt" + + :journal.default-query/doing "BEZIG" + :journal.default-query/todo "TE DOEN" + + :keymap/all "Alle" + :keymap/already-bound "Sneltoets al toegewezen" + :keymap/also-used-for-action "Ook gebruikt voor {1}" + :keymap/also-used-for-action-in-context "Ook gebruikt voor {1} In context {2}" + :keymap/clear "Wissen" + :keymap/clear-keystroke-filter "Toetsaanslagfilter wissen" + :keymap/clear-search "Zoekopdracht wissen" + :keymap/custom "Aangepast" + :keymap/deactivates-chord "Deactiveert" + :keymap/deactivates-chords "Deactiveert {1} sneltoetscombinaties" + :keymap/disabled "Uitgeschakeld" + :keymap/esc-is-reserved "Esc is gereserveerd" + :keymap/hint-cancel "Annuleren" + :keymap/hint-close "Sluiten" + :keymap/hint-reassign "Opnieuw toewijzen" + :keymap/hint-remove "Verwijderen" + :keymap/keystroke-filter "Toetsaanslagfilter" + :keymap/no-matching-shortcuts "Geen overeenkomende sneltoetsen" + :keymap/press-a-shortcut "Druk op een sneltoets" + :keymap/press-keys-to-filter "Druk op toetsen om te filteren" + :keymap/reassign "Opnieuw toewijzen" + :keymap/reassign-tooltip "De sneltoets van deze actie opnieuw toewijzen" + :keymap/reassigned-from "Opnieuw toegewezen van {1}" + :keymap/refresh-all "Alles vernieuwen" + :keymap/remove-binding "Sneltoets verwijderen" + :keymap/remove-filter "Filter verwijderen" + :keymap/reset "Resetten" + :keymap/reset-to-default "Standaard herstellen" + :keymap/search-by-keys "Zoeken op toetsen" + :keymap/search-placeholder "Sneltoets zoeken…" + :keymap/shortcut-added "Sneltoets toegevoegd" + :keymap/shortcut-removed "Sneltoets verwijderd" + :keymap/toggle-categories-pane "Categorieënpaneel in-/uitschakelen" + :keymap/undo "Ongedaan maken" + :keymap/unset "Niet ingesteld" + :keymap/used-by-action "Gebruikt door {1}" + + :library/add-existing-pages "Bestaande pagina's aan de Bibliotheek toevoegen" + :library/add-pages "Pagina's toevoegen" + :library/title "Bibliotheek" + + :mobile/camera-access-denied "Cameratoegang is geweigerd. Schakel het in bij Instellingen > Logseq." + :mobile/microphone-access-denied "Microfoontogang is geweigerd. Schakel het in bij Instellingen > Logseq." + + :mobile.header/actions "Acties" + :mobile.header/create-graph "Grafiek aanmaken" + :mobile.header/delete-block-confirm-desc "Dit blok verwijderen?" + :mobile.header/delete-page-confirm-desc "Deze pagina verwijderen?" + + :mobile.intent/file-options "Bestandsopties" + :mobile.intent/open-with-app "Bestand openen met je favoriete app" + :mobile.intent/select-option-prompt "Selecteer een actie om uit te voeren" + :mobile.intent/share "Delen" + + :mobile.log/all "Alle" + :mobile.log/errors-only "Alleen fouten" + :mobile.log/full "Volledig" + :mobile.log/new-first "Nieuwste eerst" + :mobile.log/old-first "Oudste eerst" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Account" + :mobile.settings/check-log "Logboek" + :mobile.settings/discord-community "Discord-community" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Bug melden" + :mobile.settings/revision "Revisie" + :mobile.settings/theme "Thema" + :mobile.settings/version "Versie" + + :mobile.share/file-import-error "Bestand importeren mislukt" + :mobile.share/media-import-error "Media importeren mislukt" + :mobile.share/unsupported-content-warning "Het parsen van de huidige gedeelde inhoud wordt niet ondersteund. Meld de volgende codes op {1}. We zullen het snel bekijken." + :mobile.share/unsupported-import-type "Het importeren van {1}-bestanden wordt niet ondersteund. Je kunt het melden op {2}. We zullen het snel bekijken." + + :mobile.tab/capture "Vastleggen" + :mobile.tab/go-to "Ga naar" + :mobile.tab/graphs "Grafieken" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Referentie kopiëren" + :mobile.toolbar/copy-url "URL kopiëren" + :mobile.toolbar/hide "Verbergen" + :mobile.toolbar/indent "Inspringen" + :mobile.toolbar/outdent "Uitspringen" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Opnieuw" + :mobile.toolbar/reference "Referentie" + :mobile.toolbar/slash "Schuine streep" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Ongedaan maken" + :mobile.toolbar/unselect "Deselecteren" + + :nav/all-files "Alle bestanden" + :nav/all-journals "Alle dagboeken" + :nav/appearance "Uiterlijk" + :nav/assets "Bestanden" + :nav/cannot-go-to-internal-page "Kan niet naar interne pagina navigeren" + :nav/flashcards "Flashcards" + :nav/graph "Grafiek" + :nav/graph-view "Grafiekweergave" + :nav/help "Help" + :nav/home "Start" + :nav/invalid-jump-error "Ongeldige sprong" + :nav/journals "Journalen" + :nav/plugins "Plug-ins" + :nav/search "Zoeken" + :nav/settings "Instellingen" + :nav/skip-to-main-content "Naar hoofdinhoud gaan" + :nav/tasks "Taken" + :nav/themes "Thema's" + + :nav.all-pages/label "Alle pagina's" + :nav.all-pages/title "Alle pagina's" + + :node/built-in-cant-delete-error "Ingebouwde elementen kunnen niet worden verwijderd." + :node/new "Nieuw knooppunt" + + :notification/clear-all "Alles wissen" + :notification/copied "Gekopieerd" + + :onboarding.import/desc "Beschrijving van importeren" + :onboarding.import/sqlite-desc "Importeer vanuit SQLite-database" + :onboarding.import/title "Importeren" + + :onboarding.import-option/desc "Importeer gegevens uit andere applicaties" + :onboarding.import-option/title "Gegevens importeren" + + :onboarding.setup/desc "Werkruimte voor uw kennis" + :onboarding.setup/title (fn [] ["Welkom bij " [:strong "Logseq!"]]) :page/add-to-favorites "Voeg aan favorieten toe" - :page/copy-page-url "Kopieer pagina URL" + :page/added-tag-to-node "Tag \"{1}\" toegevoegd aan \"{2}\"" + :page/backlinks "Terugverwijzingen" + :page/clear "Wissen" + :page/clear-local-storage-desc "Dit verwijdert kleine voorkeuren zoals de donker/licht themavoorkeur." + :page/cleared "Gewist" + :page/contents "Inhoud" + :page/convert-to-tag "Naar tag converteren" + :page/copy-url "Kopieer pagina URL" + :page/create "Nieuwe pagina maken" :page/created-at "Aangemaakt op" + :page/current-graph-as-sqlite-db "huidige grafiek als SQLite-database" + :page/default-query-error "Standaardzoekopdracht mislukt:" :page/delete "Verwijder pagina" + :page/go-back-home "Terug naar startpagina" + :page/hide-properties "Eigenschappen verbergen" + :page/local-storage "lokale opslag" + :page/logseq-is-having-a-problem "Logseq ondervindt een probleem" :page/make-private "Maak prive" :page/make-public "Maak publiek" + :page/moved-to-recycle "Knooppunt is verplaatst naar Prullenbak" + :page/name "Paginanaam" + :page/no-page-found-to-copy "Geen pagina gevonden om te kopiëren" + :page/not-found "Pagina niet gevonden" + :page/not-found-desc "Oeps! De pagina die je zoekt bestaat niet." + :page/not-found-title "Pagina niet gevonden" + :page/not-found-warning "Geen pagina gevonden" + :page/open-all-graphs-desc "Je kunt ook naar {{All graphs}} gaan om naar een andere grafiek te wisselen." + :page/open-issue-desc "Als deze stappen voor probleemoplossing je probleem niet hebben opgelost, {{open an issue}}." + :page/open-properties "Eigenschappen openen" + :page/rebuild "Opnieuw opbouwen" + :page/relaunch "Opnieuw starten" + :page/relaunch-desc "App afsluiten en opnieuw openen." + :page/scheduled-and-deadline "Gepland en deadline" + :page/search-index "zoekindex" + :page/send-db-for-debugging "Je kunt het naar help@logseq.com sturen voor foutopsporing." + :page/something-went-wrong "Er is iets misgegaan" + :page/step "Stap {1}" + :page/the-app "de app" + :page/try "Probeer" :page/unfavorite "Pagina uit favorieten verwijderen" + :page/unknown "Onbekende pagina" :page/updated-at "Bijgewerkt op" + + :page.convert/block-parent-not-page "Blok kan niet worden geconverteerd. Bovenliggend element is geen pagina." + :page.convert/cant-be-block "Pagina \"{1}\" kan niet worden geconverteerd naar een blok." + :page.convert/cant-be-block-has-children "Pagina \"{1}\" kan niet worden geconverteerd naar een blok omdat deze pagina-kinderen heeft." + :page.convert/cant-be-block-move-first "Pagina \"{1}\" kan niet worden geconverteerd naar een blok. Verplaats deze eerst naar een andere pagina." + :page.convert/page-to-tag-action "Zet \"{1}\" om naar tag" + :page.convert/page-to-tag-built-in "Ingebouwde pagina's kunnen geen tags zijn" + :page.convert/page-to-tag-duplicate "Er bestaat al een tag met de naam \"{1}\"." + :page.convert/page-to-tag-namespaced "Naamruimte-pagina's kunnen geen tags zijn" + :page.convert/property-value-to-page "Eigenschapswaarde kan niet naar pagina worden geconverteerd." + :page.convert/tag-to-page-action "Tag naar pagina converteren" + :page.convert/tag-to-page-built-in "Ingebouwde tags kunnen geen pagina's zijn" + :page.convert/tag-to-page-confirm-desc "Als u een tag omzet naar een pagina, worden ook de tageigenschappen en de tag van alle knooppunten verwijderd die deze tag gebruiken. Wilt u doorgaan?" + :page.convert/tag-to-page-duplicate "Er bestaat al een pagina met de naam \"{1}\"." + :page.convert/tag-to-page-has-children "Tag heeft onderliggende elementen en kan niet worden geconverteerd" + + :page.delete/batch-confirm-title "Weet u zeker dat u deze pagina's wilt verwijderen? Eigenschappen en tags worden permanent verwijderd en pagina's worden naar de Prullenbak verplaatst." + :page.delete/confirm-title "Weet u zeker dat u deze pagina wilt verwijderen?" + :page.delete/permanent-confirm-title "Weet u zeker dat u deze pagina permanent wilt verwijderen?" + :page.delete/success "Pagina \"{1}\" is succesvol verwijderd!" + :page.delete/total "Totaal: {1}" + :page.delete/warning "Van deze pagina's is de inhoud verwijderd, maar deze kon niet worden verwijderd: {1}. Zie JavaScript-console voor meer details." + + :page.validation/cant-set-built-in-tags "Nieuwe pagina kan geen ingebouwde tags instellen: {1}" + :page.validation/duplicate "Er bestaat al een andere pagina met de naam \"{1}\" voor tags: {2}." + :page.validation/name-blank "Paginanaam mag niet leeg zijn." + :page.validation/name-no-hash "Paginanaam mag geen # bevatten" + :page.validation/name-no-slash "Paginanaam mag geen / bevatten." + :page.validation/parents-must-be-pages "Bovenliggende pagina's moeten pagina's zijn." + + :pdf/annotations-page "Annotatiepagina" + :pdf/area-highlight-shortcut "Gebiedsmarkering ({1})" + :pdf/auto-fit "Automatisch passend" + :pdf/auto-open-context-menu "Contextmenu automatisch openen" :pdf/copy-ref "Kopieer ref" :pdf/copy-text "Kopieer tekst" + :pdf/corrupted-file-error "Fout: {1}\nIs dit .pdf-bestand beschadigd?\nControleer met een externe pdf-viewer." + :pdf/doc-metadata "Documentmetadata" + :pdf/enter-to-search "Enter om te zoeken" + :pdf/find-results "{1} van {2} resultaten (\"{3}\")" + :pdf/generic-error "Fout: {1}\n{2}\nControleer het pdf-bestand." + :pdf/highlight-mode "Markeermodus" + :pdf/highlights "Markeringen" + :pdf/hl-block-colored "Gekleurde markering" :pdf/linked-ref "Gekoppelde referenties" + :pdf/load-highlights-file-error "Fout: kan het markeringsbestand niet laden: \"{1}\". \n{2}" + :pdf/missing-file-error "Fout: {1}\n Is dit het juiste pad?" + :pdf/more-settings "Meer instellingen" + :pdf/no-outlines "Geen overzicht" + :pdf/not-found "Niet gevonden." + :pdf/open-in-app-window "Openen in app-venster" + :pdf/open-in-external-window "Openen in extern venster" + :pdf/outline "Overzicht" + :pdf/page-label "Pagina {1}" + :pdf/password-protected-desc "Dit document is beveiligd met een wachtwoord. Voer een wachtwoord in:" + :pdf/password-required "Wachtwoord vereist" + :pdf/search "Zoeken" + :pdf/search-placeholder "zoeken" :pdf/toggle-dashed "Gestippelde stijl voor gebiedsmarkering" + :pdf/viewer "pdf-viewer" + :pdf/zoom-in "Inzoomen" + :pdf/zoom-out "Uitzoomen" :plugin/all "Alle" + :plugin/auto-update-check "Automatisch op updates controleren" + :plugin/auto-update-check-feedback "Automatische updatecontrole: {1}!" :plugin/check-all-updates "Check alle updates" + :plugin/check-update "Op updates controleren" + :plugin/checked "Gecontroleerd" + :plugin/checking-for-updates "Updates controleren" :plugin/contribute "✨ Schrijf en dien nieuwe plugin in" - :plugin/custom-js-alert "custom.js bestand gevonden, mag deze uitgevoerd worden? (Als je niet begrijpt wat dit bestand inhoud is het aangeraden om het uivoeren hiervan niet toe te staan, dit is in verband met beveiligings risico's.)" ;; TODO + :plugin/custom-js-alert "custom.js bestand gevonden, mag deze uitgevoerd worden? (Als je niet begrijpt wat dit bestand inhoud is het aangeraden om het uivoeren hiervan niet toe te staan, dit is in verband met beveiligings risico's.)" + :plugin/date-added "Datum toegevoegd" :plugin/delete-alert "Weet je zeker dat je plugin [{1}] wilt verwijderen?" + :plugin/disable-for-performance-feedback "De plug-in {1} is uitgeschakeld." + :plugin/disable-now "Nu uitschakelen" :plugin/disabled "Uitgeschakeld" + :plugin/does-not-support-db "Ondersteunt geen DB-grafieken" + :plugin/downloads "Downloads" + :plugin/empty "Niets gevonden." :plugin/enabled "Ingeschakeld" + :plugin/existed-package "Bestaand plug-inpakket ({1})." + :plugin/fatal-error "Fataal: {1}" + :plugin/found-n-updates "{1} updates gevonden" + :plugin/found-updates "Updates gevonden" :plugin/install "Installeren" + :plugin/install-error "Installatie mislukt: {1}\n{2}" :plugin/installed "Geïnstalleerd" + :plugin/installed-plugin "Geïnstalleerde plug-in: {1}" :plugin/installing "Installeren" + :plugin/invalid-github-repo-url "Ongeldige GitHub-repo-URL" + :plugin/invalid-package "Ongeldig pakket" + :plugin/invalid-plugins-edn "Ongeldige plugins.edn" + :plugin/list-of-updates "Updatelijst" + :plugin/load-from-web-url "Laden vanuit URL" + :plugin/load-plugin-indicator "Plugin laden: {1}..." :plugin/load-unpacked "Laad uitgepakte plugin" + :plugin/loading-indicator "LADEN" + :plugin/malformed-plugins-edn "Onjuiste plugins.edn" + :plugin/marketplace "Plug-in-winkel" + :plugin/new-registered "Nieuwe plug-in geregistreerd" + :plugin/no-settings-schema "Geen instellingsschema!" :plugin/not-installed "Niet geïnstalleerd" + :plugin/open-logseq-dir "Logseq-map openen" :plugin/open-package "Open pakket" + :plugin/open-preferences "Voorkeuren openen" :plugin/open-settings "Open instellingen" + :plugin/perf-tip "Deze plug-in {1} laadt te lang, wat de opstarttijd van de applicatie beïnvloedt en mogelijk andere plug-ins verhindert te laden." + :plugin/popular "Populair" + :plugin/proxy-check-success "Succes! Status {1} over {2}ms." + :plugin/readme-empty-warning "Geen README-inhoud" :plugin/refresh-lists "Vernieuw lijsten" :plugin/reload "Herlaad" + :plugin/remote-error "Externe fout: {1}" + :plugin/report-modal-desc "Als een plugin niet beschikbaar is of u denkt dat deze schadelijke code bevat, stuur dan een e-mail naar {1}. Vermeld de naam van de plugin en de URL van de bijbehorende GitHub-repository. Het Logseq-team reageert meestal binnen een werkdag." + :plugin/report-security "Beveiligingsprobleem melden" :plugin/restart "Herstart app" + :plugin/search-plugin "Plug-in zoeken" + :plugin/security-warning "Beveiligingswaarschuwing" + :plugin/setting-not-handled "#Niet afgehandeld# {1}" + :plugin/settings-schema-error "Fout in instellingsschema!" :plugin/stars "Sterren" + :plugin/supports-db "DB-ondersteuning" + :plugin/title "Titel ({1})" :plugin/uninstall "Verwijder" :plugin/unpacked "Uitgepakt" :plugin/unpacked-tips "Selecteer de plugin map" - :plugin/update "Update" + :plugin/up-to-date "Het is up-to-date {1}" + :plugin/update "Bijwerken" + :plugin/update-all-selected "Alle geselecteerde bijwerken" + :plugin/update-all-success "Alle plug-ins bijgewerkt" :plugin/update-available "Update beschikbaar" + :plugin/update-plugin "Update-plug-in: {1} - {2}" + :plugin/updates-downloading "Updates downloaden" :plugin/updating "Bijwerken" - :right-side-bar/block-ref "Blok verwijzingen" - :right-side-bar/contents "Inhoud" - :right-side-bar/graph-view "Grafiekweergave" - :right-side-bar/page-graph "Pagina grafiek" - :right-side-bar/show-journals "Toon Journaals" - :right-side-bar/switch-theme "Thema modes" + :plugin.install-from-file/menu-title "Vanuit bestand installeren" + :plugin.install-from-file/notice "Selecteer een plug-in-bestand om te installeren" + :plugin.install-from-file/success "Plug-in succesvol geïnstalleerd" + :plugin.install-from-file/title "Plug-in vanuit bestand installeren" + + :plugin.install-from-web-url/effect-label "effect" + :plugin.install-from-web-url/repo-url-placeholder "GitHub repo-URL" + :plugin.install-from-web-url/supports-note "URL's ondersteunen zowel GitHub-repositories als lokale ontwikkelingservers. (Voor voorbeelden: {1}, {2})" + :plugin.install-from-web-url/theme-label "thema" + + :plugin.package-config/detach-desc "Door deze te verwijderen wordt de plugin alleen losgekoppeld van Logseq en blijft de bronmap onaangetast." + :plugin.package-config/parse-error "Kan de pakketconfiguratie van de plugin niet parseren." + :plugin.package-config/remove-error "Kan de beschadigde plugin niet verwijderen." + :plugin.package-config/remove-external-success "De beschadigde plugin is uit de pluginlijst verwijderd." + :plugin.package-config/remove-installed-success "Beschadigde plugin \"{1}\" verwijderd." + + :plugin.proxy/direct "Direct" + :plugin.proxy/system "Systeem" + :plugin.proxy/test-url "Test-URL" + :plugin.proxy/testing "Testen" + + :plugin.settings/edit-settings-json "settings.json bewerken" + :plugin.settings/exit-code-mode "Codemodus afsluiten" + :plugin.settings/title "Plug-in-instellingen" + + :plugin.themes/default-desc "Standaardthema van Logseq ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Thema's ({1})" + :plugin.themes/light-and-dark "lichte & donkere thema's" + + :profiler/input-fn-placeholder "voer hier functienaam in" + :profiler/unregister "Uitschrijven" + + :property/add-choice "Keuze toevoegen" + :property/add-choices "Keuzes toevoegen" + :property/add-description "Beschrijving toevoegen" + :property/add-new "Eigenschap toevoegen" + :property/add-or-change "Eigenschap toevoegen of wijzigen" + :property/available-choices "Beschikbare keuzes" + :property/change-tooltip "Wijzig {1}" + :property/checkbox-state-mapping "Selectievaketoewijzing" + :property/children-count "Kinderen ({1})" + :property/choices-count "{1} keuzes" + :property/choose-tag "Tag kiezen" + :property/choose-tags "Tags kiezen" + :property/clear-value "Wissen" + :property/configure "Configureren" + :property/convert-page-to-property "Zet \"{1}\" om naar eigenschap" + :property/create-error "Eigenschap aanmaken mislukt." + :property/default-value "Standaardwaarde" + :property/delete-from-node "Van knooppunt verwijderen" + :property/delete-from-node-confirm "Deze eigenschap van het knooppunt verwijderen?" + :property/delete-from-tag "Van tag verwijderen" + :property/delete-from-tag-confirm "Deze eigenschap van de tag verwijderen?" + :property/description-placeholder "Beschrijving invoeren" + :property/drag-to-reorder "Sleep om te herordenen" + :property/existing-values "Bestaande waarden" + :property/go-to-this-property "Ga naar eigenschapspagina" + :property/hidden-properties "Verborgen eigenschappen" + :property/hide-by-default "Standaard verbergen" + :property/hide-choice-for-tag "Keuze verbergen voor tag" + :property/hide-empty-value "Lege waarden verbergen" + :property/hide-for-tag "Verbergen voor #{1}" + :property/hide-hidden-choices "Verborgen keuzes verbergen" + :property/map-checked-to "Aangevinkt toewijzen aan" + :property/map-unchecked-to "Niet-aangevinkt toewijzen aan" + :property/more-settings "Meer instellingen" + :property/multiple-values "Meerdere waarden" + :property/multiple-values-confirm "Meerdere waarden inschakelen?" + :property/name "Naam" + :property/name-placeholder "Eigenschapsnaam" + :property/nodes-with-property "Knooppunten met eigenschap" + :property/overdue "Achterstallig" + :property/private-built-in-not-usable "Privé ingebouwde eigenschap is niet bruikbaar" + :property/select-choice "Keuze selecteren" + :property/select-property-placeholder "Selecteer een eigenschap" + :property/select-type-placeholder "Selecteer een eigenschapstype" + :property/self-reference "Zelfreferentie" + :property/set-default-choice "Standaardkeuze instellen" + :property/set-default-value "Standaardwaarde instellen" + :property/set-icon "Pictogram instellen" + :property/set-placeholder "Stel {1} in" + :property/set-property "Eigenschap instellen" + :property/set-tags "Tags instellen" + :property/set-value "Waarde instellen" + :property/show-as-checkbox-on-node "Als selectievakje op knooppunt tonen" + :property/show-as-checkbox-on-tagged-nodes "Als selectievakje op getagde knooppunten tonen" + :property/show-hidden-choices "Verborgen keuzes tonen" + :property/skip-choosing-tag "Tagkeuze overslaan" + :property/specify-node-tags "Knooppunttags opgeven" + :property/title-placeholder "Titel" + :property/type "Type" + :property/type-change-warning "Het wijzigen van het eigenschapstype wist sommige eigenschapsinstellingen." + :property/type-checkbox "Selectievakje" + :property/type-date "Datum" + :property/type-datetime "Datum/Tijd" + :property/type-locked-help "Type vergrendeld" + :property/type-node "Knooppunt" + :property/type-number "Getal" + :property/type-text "Tekst" + :property/type-url "URL" + :property/ui-position "UI-positie" + :property/ui-position-block-below "Onder blok" + :property/ui-position-block-left "Links van blok" + :property/ui-position-block-right "Rechts van blok" + :property/ui-position-properties "Eigenschappen" + :property/unset-property "Eigenschap verwijderen" + :property/update-success "Bijgewerkt" + + :property.built-in/alias "Alias" + :property.built-in/asset "Bijlage" + :property.built-in/asset-align "Bijlage-uitlijning" + :property.built-in/asset-checksum "Bestandscontrolesom" + :property.built-in/asset-external-file-name "Externe bestandsnaam" + :property.built-in/asset-external-url "Externe URL" + :property.built-in/asset-height "Afbeeldingshoogte" + :property.built-in/asset-last-visit-page "Laatst bezochte pagina" + :property.built-in/asset-remote-metadata "Externe bestandsmetadata" + :property.built-in/asset-resize-metadata "Metadata voor bijlagegrootte" + :property.built-in/asset-size "Bestandsgrootte" + :property.built-in/asset-type "Bestandstype" + :property.built-in/asset-width "Afbeeldingsbreedte" + :property.built-in/background-color "Achtergrondkleur" + :property.built-in/built-in "Ingebouwd?" + :property.built-in/checkbox-display-properties "Eigenschappen weergegeven als selectievakje" + :property.built-in/choice-checkbox-state "Keuze selectievakjestatus" + :property.built-in/choice-classes "Keuzeklassen" + :property.built-in/choice-exclusions "Keuze-uitsluitingen" + :property.built-in/class-bidirectional-property-title "Bidirectionele eigenschapstitel" + :property.built-in/class-enable-bidirectional "Bidirectionele eigenschappen inschakelen" + :property.built-in/class-extends "Breidt uit" + :property.built-in/class-hide-from-node "Verbergen voor knooppunt" + :property.built-in/class-properties "Tag-eigenschappen" + :property.built-in/classes "Eigenschapsklassen" + :property.built-in/closed-value-property "Eigenschap met gesloten waarde" + :property.built-in/code-lang "Codemodus" + :property.built-in/collapsed "Knooppunt ingeklapt?" + :property.built-in/created-at "Knooppunt aangemaakt op" + :property.built-in/created-by-ref "Knooppunt aangemaakt door" + :property.built-in/created-from-property "Aangemaakt vanuit eigenschap" + :property.built-in/deadline "Deadline" + :property.built-in/default-value "Standaardwaarde" + :property.built-in/deleted-at "Verwijderd op" + :property.built-in/deleted-by-ref "Verwijderd door" + :property.built-in/description "Beschrijving" + :property.built-in/enable-history "Eigenschapsgeschiedenis inschakelen" + :property.built-in/exclude-from-graph-view "Uitgesloten van grafiekweergave?" + :property.built-in/fsrs-due "Vervaldatum" + :property.built-in/fsrs-state "Status" + :property.built-in/heading "Kop" + :property.built-in/hide "Deze eigenschap of pagina verbergen" + :property.built-in/hide-empty-value "Lege waarde verbergen" + :property.built-in/history-block "Geschiedenisblok" + :property.built-in/history-property "Geschiedeniseigenschap" + :property.built-in/history-ref-value "Geschiedeniswaarde" + :property.built-in/history-scalar-value "Scalaire geschiedeniswaarde" + :property.built-in/icon "Pictogram" + :property.built-in/journal-day "Dagboekdatum" + :property.built-in/journal-title-format "Titelformaat" + :property.built-in/link "Knooppunt linkt naar" + :property.built-in/linked-references-excludes "Uitgesloten referenties" + :property.built-in/linked-references-includes "Opgenomen referenties" + :property.built-in/ls-type "LS-type" + :property.built-in/node-display-type "Weergavetype knooppunt" + :property.built-in/order "Knooppuntvolgorde" + :property.built-in/order-list-type "Lijsttype" + :property.built-in/page "Knooppuntpagina" + :property.built-in/page-tags "Paginatags" + :property.built-in/parent "Bovenliggend knooppunt" + :property.built-in/priority "Prioriteit" + :property.built-in/public "Eigenschap openbaar?" + :property.built-in/publish-published-url "Gepubliceerde URL" + :property.built-in/publishing-public "Publicatie openbaar?" + :property.built-in/query "Zoekopdracht" + :property.built-in/reaction-emoji-id "Reactie-emoji" + :property.built-in/reaction-target "Reactiedoel" + :property.built-in/recycle-original-order "Oorspronkelijke prullenbak-volgorde" + :property.built-in/recycle-original-page "Oorspronkelijke prullenbak-pagina" + :property.built-in/recycle-original-parent "Oorspronkelijk bovenliggend prullenbak-knooppunt" + :property.built-in/refs "Knooppuntreferenties" + :property.built-in/repeat-checked-property "Herhalende gecontroleerde eigenschap" + :property.built-in/repeat-recur-frequency "Herhalingsfrequentie" + :property.built-in/repeat-recur-unit "Herhalingseenheid" + :property.built-in/repeat-repeated "Knooppunt herhaalt?" + :property.built-in/repeat-temporal-property "Herhalende temporele eigenschap" + :property.built-in/scalar-default-value "Standaardwaarde niet-referentietype" + :property.built-in/scheduled "Gepland" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Referentie naar grote bloktitel opgeslagen in externe objectopslag" + :property.built-in/table-filters "Weergavefilters" + :property.built-in/table-hidden-columns "Verborgen kolommen in weergave" + :property.built-in/table-ordered-columns "Kolomvolgorde in weergave" + :property.built-in/table-pinned-columns "Vastgezette kolommen in tabelweergave" + :property.built-in/table-sized-columns "Kolominstellingen in weergave" + :property.built-in/table-sorting "Sortering in weergave" + :property.built-in/tags "Tags" + :property.built-in/template-applied-to "Sjabloon toepassen op tags" + :property.built-in/title "Knooppunttitel" + :property.built-in/type "Eigenschapstype" + :property.built-in/ui-position "Eigenschapspositie" + :property.built-in/updated-at "Knooppunt bijgewerkt op" + :property.built-in/used-template "Gebruikt sjabloon" + :property.built-in/user-avatar "Gebruikersavatar" + :property.built-in/user-email "E-mailadres gebruiker" + :property.built-in/user-name "Gebruikersnaam" + :property.built-in/value "Eigenschapswaarde" + :property.built-in/view-context "Weergavecontext eigenschap" + :property.built-in/view-feature-type "Weergavefunctietype" + :property.built-in/view-for "Deze weergave behoort tot" + :property.built-in/view-group-by-property "Weergave groeperen op eigenschap" + :property.built-in/view-sort-groups-by-property "Weergave groepen sorteren op" + :property.built-in/view-sort-groups-desc "Weergave groepen aflopend sorteren" + :property.built-in/view-type "Weergavetype" + + :property.choice/already-exists "Keuze bestaat al." + :property.choice/cant-delete-built-in "Ingebouwde keuze kan niet worden verwijderd." + :property.choice/invalid "Ongeldige keuze \"{1}\" voor deze eigenschap: {2}" + + :property.color/blue "blauw" + :property.color/green "groen" + :property.color/purple "paars" + :property.color/red "rood" + :property.color/yellow "geel" + + :property.priority/high "Hoog" + :property.priority/low "Laag" + :property.priority/medium "Gemiddeld" + :property.priority/urgent "Urgent" + + :property.repeat/date "Herhaaldatum" + :property.repeat/datetime "Herhaaldatum en -tijd" + :property.repeat/every "Elke" + :property.repeat/is-label "is:" + :property.repeat/task "Herhaaltaak" + :property.repeat/when "Wanneer" + + :property.repeat-recur-unit/day "Dag" + :property.repeat-recur-unit/hour "Uur" + :property.repeat-recur-unit/minute "Minuut" + :property.repeat-recur-unit/month "Maand" + :property.repeat-recur-unit/week "Week" + :property.repeat-recur-unit/year "Jaar" + + :property.status/backlog "Backlog" + :property.status/canceled "Geannuleerd" + :property.status/doing "Bezig" + :property.status/done "Klaar" + :property.status/in-review "In beoordeling" + :property.status/todo "Te doen" + + :property.validation/cant-convert-to-number "Kan \"{1}\" niet naar een getal converteren." + :property.validation/cant-remove-required "Vereiste eigenschap kan niet worden verwijderd." + :property.validation/cant-set-self-value "Kan niet als eigen eigenschapswaarde worden ingesteld." + :property.validation/duplicate "Eigenschap '{1}' bestaat al." + :property.validation/invalid-name "Dit is een ongeldige eigenschapsnaam. Een eigenschapsnaam mag niet beginnen met paginaverwijzingstekens '#' of '[['." + :property.validation/invalid-value "Eigenschap \"{1}\" heeft een ongeldige waarde: {2}" + :property.validation/many-to-one "Eigenschap met meerdere waarden kan niet worden geconverteerd naar enkele waarde." + :property.validation/protected "Deze eigenschap is beschermd en kan niet worden gewijzigd." + + :property.view-type/gallery "Galerijweergave" + :property.view-type/list "Lijstweergave" + :property.view-type/table "Tabelweergave" + + :publish/action "Publiceren" + :publish/dialog-desc "Beveilig deze pagina optioneel met een wachtwoord. Laat leeg voor openbare toegang." + :publish/dialog-title "Pagina publiceren" + :publish/invalid-page-error "Ongeldige pagina" + :publish/password-optional-placeholder "Optioneel wachtwoord" + :publish/publish-error "Publicatie mislukt" + :publish/published-to "Gepubliceerd naar {1}" + :publish/publishing "Publiceren..." + :publish/unpublish "Publicatie intrekken" + :publish/unpublish-error "Publicatie ongedaan maken mislukt" + :publish/unpublish-missing-page-id "Publicatie ongedaan maken: pagina-ID ontbreekt" + :publish/unpublished "Publicatie ongedaan gemaakt" + + :query/advanced-results "Resultaten van geavanceerde query" + :query/custom-view-error "Fout in aangepaste weergave: {1}" + :query/error "Zoekopdracht-fout:" + :query/examples-desc "Bekijk meer voorbeelden op {{Queries documentation}}." + :query/examples-title "Voorbeelden van zoekopdrachten:" + :query/results-for "Resultaten voor {1}" + + :query.builder/add-filter-or-operator-placeholder "Filter/operator toevoegen" + :query.builder/between-end-label "Einddatum" + :query.builder/between-journal-label "tussen: {1} ~ {2}" + :query.builder/between-start-label "Startdatum" + :query.builder/created-label "Aangemaakt" + :query.builder/filter "Filter" + :query.builder/filter-full-text-search-label "Volledige-tekstzoeking" + :query.builder/filter-page-label "Pagina" + :query.builder/filter-page-reference-label "Paginaverwijzing" + :query.builder/filter-sample-label "Steekproef" + :query.builder/operator-and-label "en" + :query.builder/operator-not-label "niet" + :query.builder/replace-with-label "Vervangen door:" + :query.builder/search-label "Zoeken: {1}" + :query.builder/show-built-in-properties "Ingebouwde eigenschappen tonen" + :query.builder/unwrap-operator "Uitpakken" + :query.builder/updated-label "Bijgewerkt" + :query.builder/wrap-filter-with-label "Dit filter omhullen met:" + + :reference/blocks "Blok verwijzingen" + :reference/copy "Referentie kopiëren" + :reference/delete "Referentie verwijderen" + :reference/page-filter "Paginafilter" + :reference/replace-with-embed "Vervangen door insluiting" + :reference/replace-with-text "Vervangen door tekst" + + :reference.filter/directions "Filterrichtingen" + :reference.filter/excludes "Uitgesloten" + :reference.filter/includes "Inbegrepen" + :reference.filter/search-placeholder "Zoeken in gelinkte pagina's" + :reference.filter/title "Filter" + + :search/blank-input "Lege invoer" + :search/full-text-placeholder "Zoeken in volledige tekst" + :search/index-progress "Indexeren {1}%" + :search/indices-rebuilt-success "Zoekindexen zijn opnieuw opgebouwd!" + :search/no-result "Geen resultaten" + :search/result-count "{1} resultaten" + + :search.find-in-page/input-placeholder "Zoeken op pagina" + :search.find-in-page/match-case "Hoofdlettergevoelig" + :search.find-in-page/next-result "Volgend resultaat" + :search.find-in-page/previous-result "Vorig resultaat" :select/default-prompt "Kies één" - :select.graph/add-graph "Ja, voeg nog een grafiek toe" - :select.graph/empty-placeholder-description "Geen overeenkomende grafieken. Wilt u er een toevoegen?" - :select.graph/prompt "Selecteer een grafiek" + :select/default-select-multiple "Selecteer een of meerdere" + :select/new-option "+ Nieuwe optie: {1}" - :settings-page/clear "Verwijder" - :settings-page/clear-cache "Cache wissen" - :settings-page/current-version "Huidige versie" - :settings-page/custom-configuration "Aangepaste configuratie" - :settings-page/custom-date-format "Gewenst datumformaat" - :settings-page/custom-theme "Aangepast thema" - :settings-page/developer-mode "Ontwikkelaar modus" - :settings-page/developer-mode-desc "De ontwikkelaarsmodus helpt bijdragers en extensie-ontwikkelaars om hun integratie met Logseq efficiënter te testen." - :settings-page/disable-sentry "Gebruiksgegevens en diagnostiek naar Logseq sturen" - :settings-page/edit-config-edn "Bewerk config.edn" - :settings-page/edit-custom-css "Bewerk custom.css" - :settings-page/edit-export-css "Bewerk export.css" - :settings-page/enable-all-pages-public "Alle pagina's openbaar bij publiceren" + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "MCP-URL gekopieerd" + :server/start "Starten" + :server/stop "Stoppen" + :server/title "HTTP API-server" - :settings-page/enable-journals "Journaals" - :settings-page/enable-shortcut-tooltip "Snelkoppeling tooltip inschakelen" - :settings-page/enable-tooltip "Tooltips inschakelen" - :settings-page/export-theme "Exporteer thema" - :settings-page/home-default-page "De standaard startpagina instellen" - :settings-page/network-proxy "Netwerk proxy" - :settings-page/plugin-system "Plugin systeem" - :settings-page/preferred-outdenting "Logische uitdenting" - :settings-page/show-brackets "Toon beugels" - :settings-page/spell-checker "Spellingcontrole" - :settings-page/tab-advanced "Geavanceerd" - :settings-page/tab-general "Algemeen" - :text/image "Afbeelding" + :server.config/auto-start-label "Automatisch starten" + :server.config/port-label "Poortbereik" + :server.config/reset "Resetten" + :server.config/save-and-apply "Opslaan en toepassen" + :server.config/title "Serverconfiguratie" - :updater/new-version-install "Een nieuwe versie is gedownload." - :updater/quit-and-install "Herstart om te installeren" + :server.status/closed "Gesloten" + :server.status/closing "Sluiten" + :server.status/error "Fout" + :server.status/running "Actief" + :server.status/starting "Starten" + :server.status/stopped "Gestopt" - :command.auto-complete/complete "Automatisch aanvullen: Kies geselecteerd item" - :command.auto-complete/next "Automatisch aanvullen: Selecteer volgend item" - :command.auto-complete/prev "Automatisch aanvullen: Selecteer vorig item" - :command.auto-complete/shift-complete "Automatisch aanvullen: Open geselecteerd item in zijbalk" - :command.cards/toggle-answers "Kaarten: toon/verberg antwoorden/clozes" - :command.command/run "Voer git commando uit" - :command.command/toggle-favorite "Toevoegen aan/verwijderen uit favorieten" - :command.editor/backspace "Backspace / Achteruit wissen" - :command.editor/backward-kill-word "Een woord achterwaarts wissen" - :command.editor/backward-word "Verplaats de cursor een woord achteruit" - :command.editor/beginning-of-block "Verplaats de cursor naar het begin van een blok" - :command.editor/bold "Vet" - :command.editor/clear-block "Wis volledige blokinhoud" - :command.editor/collapse-block-children "Samenvouwen" - :command.editor/copy "Kopiëren (kopieert een selectie of een blokverwijzing)" - :command.editor/copy-embed "Kopieer een blok embed dat wijst naar het huidige blok" - :command.editor/copy-text "Kopieer selecties als tekst" - :command.editor/cut "Knip" - :command.editor/cycle-todo "Draai de TODO status van het huidige item" - :command.editor/delete "Verwijderen / verwijderen vooruit" - :command.editor/delete-selection "Verwijder geselecteerde blokken" - :command.editor/down "Verplaats cursor omlaag / Selecteer omlaag" - :command.editor/end-of-block "Verplaats cursor naar het einde van een blok" - :command.editor/escape-editing "Klaar met bewerken" - :command.editor/expand-block-children "Openvouwen" - :command.editor/follow-link "Volg de link onder de cursor" - :command.editor/forward-kill-word "Een woord vooruit verwijderen" - :command.editor/forward-word "Verplaats de cursor een woord vooruit" - :command.editor/highlight "Markeer" - :command.editor/indent "Blok inspringen" - :command.editor/insert-youtube-timestamp "Voeg youtube tijdstempel toe" - :command.editor/italics "Cursief" - :command.editor/kill-line-after "Verwijder regel na cursorpositie" - :command.editor/kill-line-before "Verwijder regel voor cursorpositie" - :command.editor/left "Verplaats cursor naar links / Open geselecteerd blok bij het begin" - :command.editor/move-block-down "Verplaats blok omlaag" - :command.editor/move-block-up "Verplaats blok omhoog" - :command.editor/new-block "Maak nieuw blok" - :command.editor/new-line "Nieuwe regel in huidig blok" - :command.editor/open-edit "Bewerk geselecteerde blok" - :command.editor/open-link-in-sidebar "Open link in zijbalk" - :command.editor/outdent "Verminder blok inspringing" - :command.editor/paste-text-in-one-block-at-point "Plak tekst in een blok op punt" - :command.editor/redo "Herhaal" - :command.editor/right "Beweeg cursor naar rechts / Open geselecteerd blok aan einde" - :command.editor/select-all-blocks "Selecteer alle blokken" - :command.editor/select-block-down "Selecteer blok hieronder" - :command.editor/select-block-up "Selecteer blok hierboven" - :command.editor/select-down "Selecteer inhoud hieronder" - :command.editor/select-up "Selecteer inhoud hierboven" - :command.editor/strike-through "Doorstrepen" - :command.editor/toggle-open-blocks "Toggle open blocks (open of dichtklappen van alle blokken)" - :command.editor/undo "Ongedaan maken" - :command.editor/up "Verplaats cursor omhoog / Selecteer omhoog" - :command.editor/zoom-in "Zoom in bewerkingsblok / Vooruit anders" - :command.editor/zoom-out "Zoom uit bewerkingsblok / Achteruit anders" - :command.go/all-pages "Ga naar alle pagina's" - :command.go/backward "Achteruit" - :command.go/forward "Vooruit" - :command.go/graph-view "Ga naar grafiekweergave" - :command.go/home "Ga naar home" - :command.go/journals "Ga naar journaals" - :command.go/keyboard-shortcuts "Ga naar sneltoetsen" - :command.go/next-journal "Ga naar volgende journaal" - :command.go/prev-journal "Ga naar vorige journaal" - :command.go/search "Zoeken in volledige tekst" - :command.go/tomorrow "Ga naar morgen" - :command.graph/add "Voeg een grafiek toe" - :command.graph/open "Selecteer grafiek om te openen" - :command.graph/remove "Verwijder een grafiek" - :command.misc/copy "Kopieer" - :command.pdf/close "Huidige pdf-viewer sluiten" - :command.pdf/next-page "Volgende pagina van huidige pdf doc" - :command.pdf/previous-page "Vorige pagina van huidige pdf doc" - :command.search/re-index "Bouw zoekindex opnieuw op" - :command.sidebar/clear "Wis alles in de rechter zijbalk" - :command.sidebar/open-today-page "Open de pagina van vandaag in de rechter zijbalk" - :command.ui/goto-plugins "Ga naar plugins dashboard" - :command.ui/select-theme-color "Selecteer beschikbare themakleuren" - :command.ui/toggle-brackets "Toggle tussen het weergeven van beugels" - :command.ui/toggle-contents "Toggle inhoud in zijbalk" - :command.ui/toggle-document-mode "Schakel tussen documentmodus" - :command.ui/toggle-left-sidebar "Toggle linker zijbalk" - :command.ui/toggle-right-sidebar "Toggle rechter zijbalk" - :command.ui/toggle-theme "Toggle tussen donker/licht thema" - :command.ui/toggle-wide-mode "Toggle brede modus" - :shortcut.category/basics "Basis" + :server.token/add-new "Nieuw token toevoegen" + :server.token/name-placeholder "Servernaam" + :server.token/regenerate-value "Tokenwaarde opnieuw genereren" + :server.token/title "Autorisatietokens" + :server.token/update-success "Tokens bijgewerkt" + :server.token/value-placeholder "Waarde" + + :settings/account "Account" + :settings/advanced "Geavanceerd" + :settings/ai "AI" + :settings/collaboration "Samenwerking" + :settings/editor "Editor" + :settings/encryption "Versleuteling" + :settings/features "Functies" + :settings/general "Algemeen" + :settings/keymap "Sneltoetsen" + :settings/plugins "Plug-in-instellingen" + + :settings.account/storage-usage "{1}GB van {2}GB totale opslagruimte ({3})" + :settings.account/synced-graphs "{1} van {2} gesynchroniseerde grafieken ({3})" + + :settings.advanced/auto-chmod "Automatisch chmod" + :settings.advanced/auto-chmod-desc "Bestandsmachtigingen automatisch instellen" + :settings.advanced/auto-updater "Automatische updates" + :settings.advanced/developer-mode "Ontwikkelaar modus" + :settings.advanced/developer-mode-desc "De ontwikkelaarsmodus helpt bijdragers en extensie-ontwikkelaars om hun integratie met Logseq efficiënter te testen." + :settings.advanced/disable-sentry "Gebruiksgegevens en diagnostiek naar Logseq sturen" + :settings.advanced/disable-sentry-desc "Crashrapportage uitschakelen" + :settings.advanced/network-proxy "Netwerk proxy" + + :settings.ai/enable-mcp-server "MCP-server inschakelen" + :settings.ai/enable-mcp-server-desc "MCP-server inschakelen voor AI-integratie" + + :settings.editor/auto-expand-block-refs "Blokreferenties automatisch uitklappen" + :settings.editor/auto-expand-block-refs-tip "Klik om blokreferenties automatisch uit te klappen" + :settings.editor/custom-date-format "Gewenst datumformaat" + :settings.editor/enable-all-pages-public "Alle pagina's openbaar bij publiceren" + :settings.editor/enable-shortcut-tooltip "Snelkoppeling tooltip inschakelen" + :settings.editor/enable-tooltip "Tooltips inschakelen" + :settings.editor/preferred-outdenting "Logische uitdenting" + :settings.editor/preferred-outdenting-tip "Inspringingtip" + :settings.editor/preferred-outdenting-tip-more "→ Meer over inspringen" + :settings.editor/preferred-pasting-file "Voorkeur voor bestanden plakken" + :settings.editor/preferred-pasting-file-hint "Bestand plakken tip" + :settings.editor/show-brackets "Toon beugels" + :settings.editor/show-full-blocks "Volledige blokken tonen" + :settings.editor/spell-checker "Spellingcontrole" + :settings.editor/wide-mode "Brede modus" + + :settings.features/enable-flashcards "Flashcards inschakelen" + :settings.features/enable-journals "Journaals" + :settings.features/home-default-page "De standaard startpagina instellen" + :settings.features/home-default-page-update-success "Startpagina bijgewerkt" + :settings.features/journals-enable-success "Dagboeken ingeschakeld" + :settings.features/login-prompt "Log in om te synchroniseren" + :settings.features/page-not-found "De pagina \"{1}\" bestaat nog niet. Maak eerst die pagina aan en probeer het vervolgens opnieuw." + :settings.features/plugin-system "Plug-insysteem" + + :settings.general/accent-color "Accentkleur" + :settings.general/accent-color-alert "Kleurwaarschuwing" + :settings.general/accent-color-logseq "Klassieke Logseq-kleur" + :settings.general/accent-color-none-desc "Akcentkleur annuleren. Dit is momenteel in bètafase en wordt vooral gebruikt voor compatibiliteit met aangepaste thema's." + :settings.general/changelog "Wijzigingslogboek" + :settings.general/check-for-updates "Op updates controleren" + :settings.general/current-revision-label "Huidige revisie" + :settings.general/current-version "Huidige versie" + :settings.general/custom-configuration "Aangepaste configuratie" + :settings.general/custom-global-configuration "Aangepaste globale configuratie" + :settings.general/custom-theme "Aangepast thema" + :settings.general/edit-config-edn "Bewerk config.edn" + :settings.general/edit-custom-css "Bewerk custom.css" + :settings.general/edit-export-css "Bewerk export.css" + :settings.general/edit-global-config-edn "Globale config.edn bewerken" + :settings.general/editor-font "Editorlettertype" + :settings.general/editor-font-set-global "Instellen als globaal lettertype" + :settings.general/export-theme "Exporteer thema" + :settings.general/language "Taal" + :settings.general/native-titlebar "Systeemeigen titelbalk" + :settings.general/native-titlebar-desc "Systeemeigen titelbalk gebruiken" + :settings.general/refresh-required-feedback "Vernieuwen vereist" + :settings.general/release-channel "releasekanaal" + :settings.general/revision "Revisie: {1}" + :settings.general/theme-dark "Donker" + :settings.general/theme-light "Licht" + :settings.general/theme-system "Systeem" + + :settings.sync-server/clear-success "De URL van de synchronisatieserver is gewist. De officiële Logseq Sync wordt gebruikt." + :settings.sync-server/reset "Standaard herstellen" + :settings.sync-server/save-success "De URL van de synchronisatieserver is opgeslagen." + :settings.sync-server/url "URL van de synchronisatieserver" + :settings.sync-server/url-desc "Stel een aangepaste HTTPS-URL in voor een zelfgehoste synchronisatieserver. Je Logseq-authenticatietokens worden naar deze server gestuurd, dus gebruik alleen een vertrouwde URL. Laat dit leeg om de officiële Logseq Sync te gebruiken." + :settings.sync-server/url-invalid-error "URL moet beginnen met https:// of http://" + + :shell/input-command-title "Opdracht invoeren" + + :shortcut.category/basics "Basis" :shortcut.category/block-command-editing "Blokcommando's bewerken" - :shortcut.category/block-editing "Blokbewerking algemeen" - :shortcut.category/block-selection "Blokselectie (druk op Esc om selectie te beëindigen)" - :shortcut.category/formatting "Formatteren" - :shortcut.category/navigating "Navigatie" - :shortcut.category/others "Anderen"} + :shortcut.category/block-editing "Blokbewerking algemeen" + :shortcut.category/block-selection "Blokselectie (druk op Esc om selectie te beëindigen)" + :shortcut.category/formatting "Formatteren" + :shortcut.category/navigating "Navigeren" + :shortcut.category/others "Anderen" + :shortcut.category/plugins "Plug-ins" + :shortcut.category/toggle "In-/uitschakelen" + + :sidebar.left/favorites "Favorieten" + :sidebar.left/navigations "Navigatie" + :sidebar.left/recent-pages "Recente pagina's" + + :sidebar.right/close "Paneel sluiten" + :sidebar.right/close-all "Alle panelen sluiten" + :sidebar.right/close-others "Andere panelen sluiten" + :sidebar.right/collapse "Paneel inklappen" + :sidebar.right/collapse-all "Alle panelen inklappen" + :sidebar.right/collapse-others "Andere panelen inklappen" + :sidebar.right/expand "Paneel uitklappen" + :sidebar.right/expand-all "Alle panelen uitklappen" + :sidebar.right/more "Meer" + :sidebar.right/open "Open in zijbalk" + :sidebar.right/open-as-page "Als pagina openen" + :sidebar.right/resize-handle "Scheidingslijn" + :sidebar.right/toggle "Rechter zijbalk in-/uitschakelen" + + :storage/invalid-data-writing "Ongeldige gegevensschrijving." + :storage/sqlitedb-error "SQLiteDB-fout: {1}" + :storage/sqlitedb-import-error "SQLiteDB-importfout: {1}" + :storage/sqlitedb-save-error "SQLiteDB-opslagfout: {1}" + + :storage.recycle/block-deleted-at "Blok verwijderd {1}" + :storage.recycle/empty "Prullenbak is leeg." + :storage.recycle/page-deleted-at "Pagina verwijderd {1}" + :storage.recycle/readonly "Prullenbak (alleen-lezen)" + :storage.recycle/restore "Herstellen" + :storage.recycle/retention-desc "Verwijderde pagina's en blokken blijven hier totdat ze worden hersteld of na 30 dagen automatisch worden opgeschoond." + :storage.recycle/title "Prullenbak" + + :sync/assets-downloading-count "Elementen worden gedownload ({1})" + :sync/assets-uploading-count "Elementen worden geüpload ({1})" + :sync/creating-remote-graph "Externe grafiek maken..." + :sync/downloading "Downloaden..." + :sync/downloading-graph "{1} downloaden ..." + :sync/graph-count-exceed-limit "Grens grafiekaantal overschreden" + :sync/invitation-sent "Uitnodiging verzonden" + :sync/last-synced-time-label "Laatst gesynchroniseerd: {1}" + :sync/more-debug-info "Meer debuginfo" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "in behandeling zijnde lokale wijzigingen" + :sync/pending-server-changes "in behandeling zijnde serverwijzigingen" + :sync/something-wrong "Synchronisatiefout" + :sync/start-sync "Synchronisatie starten" + :sync/storage-exceed-limit "Opslaglimiet overschreden" + :sync/uploading "Uploaden..." + :sync/user-doesnt-exist-yet "Gebruiker bestaat nog niet" + + :theme/logseq-default "Standaardthema van Logseq" + :theme/switch-to "Schakel over naar het thema {1}" + + :ui/all-done "Alles klaar" + :ui/apply "Toepassen" + :ui/cancel "Annuleren" + :ui/close "Sluiten" + :ui/configure "Configureren" + :ui/confirm "Bevestigen" + :ui/copy "Kopiëren" + :ui/copy-all "Alles kopiëren" + :ui/copy-to-clipboard "Naar klembord kopiëren" + :ui/create "Aanmaken" + :ui/date-natural-language-placeholder "bijv. Volgende week" + :ui/delete "Verwijderen" + :ui/deleted "Verwijderd" + :ui/dont-remind-me-again "Herinner me hier niet meer aan" + :ui/empty "Leeg" + :ui/error "Fout" + :ui/error-boundary-error "Fout opgevangen door UI!\n {1}" + :ui/export "Exporteren" + :ui/false "Onwaar" + :ui/fix "Los het op!" + :ui/frequently-used "Veelgebruikt" + :ui/from "Van: " + :ui/host "Host" + :ui/image "afbeelding" + :ui/label "Label" + :ui/link "Link" + :ui/load-more "Meer laden" + :ui/loading "Laden" + :ui/login "Inloggen" + :ui/logout "Uitloggen" + :ui/off "UIT" + :ui/on "AAN" + :ui/open "Openen" + :ui/open-named "Open {1}" + :ui/port "Poort" + :ui/refresh "Vernieuwen" + :ui/relaunch-confirm "Voor deze wijziging moet de app opnieuw worden gestart. Nu opnieuw starten?" + :ui/remove-background "Achtergrond verwijderen" + :ui/reset "Resetten" + :ui/run "Uitvoeren" + :ui/save "Opslaan" + :ui/show-less "Minder tonen" + :ui/show-more "Meer tonen" + :ui/skip "Overslaan" + :ui/submit "Verzenden" + :ui/to "Naar: " + :ui/toggle-theme "Thema wisselen" + :ui/true "Waar" + :ui/type "Type" + :ui/untitled "Zonder titel" + :ui/use-current-time "Huidige tijd gebruiken" + :ui/yes "Ja" + + :updater/checking-for-updates "Controleren op updates" + :updater/downloading-progress "Update downloaden ({1}%)" + :updater/quit-and-install "Herstart en installeer" + :updater/up-to-date "Applicatie bijgewerkt 🎉" + :updater/update-available "Update beschikbaar" + :updater/update-error "⚠️ Oeps, er is iets misgegaan!\nBekijk het {1}." + :updater/update-ready-to-install "Update is klaar om te installeren" + + :view/add-new-view "Weergave toevoegen" + :view/all "Alle" + :view/export-edn "EDN exporteren" + :view/linked-references "Gekoppelde referenties" + :view/new "Nieuw" + :view/new-property "Nieuwe eigenschap" + :view/new-view "Nieuwe weergave" + :view/rename "Hernoemen" + :view/results "Resultaten:" + :view/unlinked-references "Niet-gekoppelde referenties" + + :view.filter/custom-date "Aangepaste datum" + :view.filter/empty "Leeg" + :view.filter/filter "Filter" + :view.filter/from "Van" + :view.filter/is-empty "Is leeg" + :view.filter/is-not-empty "Is niet leeg" + :view.filter/match "Overeenkomst" + :view.filter/match-all-filters "Aan alle filters voldoen" + :view.filter/match-any-filter "Aan een filter voldoen" + :view.filter/operator-after "Na" + :view.filter/operator-before "Voor" + :view.filter/operator-between "Tussen" + :view.filter/operator-date-after "Na datum" + :view.filter/operator-date-before "Voor datum" + :view.filter/operator-is "Is" + :view.filter/operator-is-not "Is niet" + :view.filter/operator-text-contains "Tekst bevat" + :view.filter/operator-text-not-contains "Tekst bevat niet" + :view.filter/or "Of" + :view.filter/relative-1-day-ago "1 dag geleden" + :view.filter/relative-1-month-ago "1 maand geleden" + :view.filter/relative-1-week-ago "1 week geleden" + :view.filter/relative-1-year-ago "1 jaar geleden" + :view.filter/relative-3-days-ago "3 dagen geleden" + :view.filter/relative-3-months-ago "3 maanden geleden" + :view.filter/to "Tot" + :view.filter/type-to-search "Typ om te zoeken" + + :view.table/ascending "Oplopend" + :view.table/columns-visibility "Kolomzichtbaarheid" + :view.table/default-title "{1} knooppunten" + :view.table/delete-sort "Sortering verwijderen" + :view.table/descending "Aflopend" + :view.table/drag-to-reorder "Sleep om te herordenen" + :view.table/group-by "Groeperen op" + :view.table/group-journal-date "Journaaldatum" + :view.table/group-page-created-date "Aanmaakdatum van pagina" + :view.table/group-page-name "Paginanaam" + :view.table/group-page-updated-date "Bijwerkdatum van pagina" + :view.table/live-query-title "Live query ({1})" + :view.table/name-column "Naam" + :view.table/no-group-value "Geen {1}" + :view.table/page "Pagina" + :view.table/pages "Pagina's" + :view.table/pin "Vastmaken" + :view.table/row-number "Rijnummer" + :view.table/select-all "Alles selecteren" + :view.table/select-column "Kolom selecteren" + :view.table/select-order "Volgorde selecteren" + :view.table/select-row "Rij selecteren" + :view.table/selected-count "Geselecteerd: {1}" + :view.table/sort-ascending "Oplopend" + :view.table/sort-descending "Aflopend" + :view.table/sort-groups-by "Groepen sorteren op" + :view.table/sort-groups-order "Groepsvolgorde" + :view.table/total-refs-count "Totaal aantal referenties" + :view.table/unpin "Losmaken" + + :window/close "Venster sluiten" + :window/exit-fullscreen "Volledig scherm verlaten" + :window/maximize "Maximaliseren" + :window/minimize "Minimaliseren" + :window/restore "Herstellen" + + :youtube/embed-first-reminder-mobile "Voeg eerst een YouTube-video in en gebruik vervolgens dit pictogram.\nOnthoud: U kunt een rauwe YouTube-URL op mobiel als ingebedde video plakken." + :youtube/player-not-ready "YouTube-speler is nog niet klaar." + :youtube/timestamps-not-available-mobile "YouTube-tijdstempels zijn op mobiel nog niet beschikbaar." + + :zotero/attachments "Bijlagen" + :zotero/imported-file-warning "Dit is een geïmporteerd Zotero-bestand, stel Zotero-gegevensmap in om het bestand in Logseq te openen." + :zotero/linked-file-warning "Dit is een gekoppeld Zotero-bestand, stel basismap voor gekoppelde Zotero-bijlagen in om het bestand in Logseq te openen." + :zotero/notes "Notities" +} diff --git a/src/resources/dicts/pl.edn b/src/resources/dicts/pl.edn index 94fc6336e6..070202a5f7 100644 --- a/src/resources/dicts/pl.edn +++ b/src/resources/dicts/pl.edn @@ -1,466 +1,1861 @@ -{:help/start "Rozpocznij swoją przygodę z Logseq" - :help/about "O Logseq" - :help/roadmap "Plany rozwoju" - :help/bug "Zgłoś błąd" - :help/feature "Zgłoś zapotrzebowanie na funkcjonalność" - :help/changelog "Log zmian" - :help/blog "Blog Logseq" - :help/docs "Dokumentacja" - :help/privacy "Polityka prywatności" - :help/terms "Warunki użytkowania" - :help/forum-community "Forum dyskusyjne" - :help/shortcuts "Skróty klawiszowe" - :help/shortcuts-triggers "Akcja" - :help/shortcut "Skrót" - :help/slash-autocomplete "Autouzupełnianie poleceń /" - :help/reference-autocomplete "Autouzupełnianie referencji bloku" - :help/block-reference "Referencja bloku" - :help/open-link-in-sidebar "Otwórz link w panelu bocznym" - :help/context-menu "Menu kontekstowe bloku" - :help/markdown-syntax "Składnia Markdown" - :bold "Pogrubienie" - :italics "Pochylenie" - :highlight "Wyróżnij" - :strikethrough "Przekreśl" - :code "Kod" - :right-side-bar/help "Pomoc" - :right-side-bar/switch-theme "Zmień motyw" - :right-side-bar/contents "Treść" - :right-side-bar/page-graph "Graf strony" - :right-side-bar/block-ref "Referencja bloku" - :right-side-bar/graph-view "Widok grafu" - :right-side-bar/flashcards "Fiszki" - :right-side-bar/show-journals "Pokaż dzienniki" - :left-side-bar/journals "Dzienniki" - :left-side-bar/nav-favorites "Ulubione" - :left-side-bar/nav-recent-pages "Ostatnio odwiedzane" - :page/make-public "Oznacz jako publiczną" - :page/make-private "Oznacz jako prywatną" - :page/delete "Usuń stronę" - :page/add-to-favorites "Dodaj do ulubionych" - :page/unfavorite "Usuń z ulubionych" - :block/name "Nazwa strony" - :page/copy-page-url "Kopiuj adres URL strony" - :file/name "Nazwa pliku" - :file/last-modified-at "Ostatnio zmodyfikowany" - :file/no-data "Brak danych" - :file/format-not-supported "Format .{1} nie jest wspierany." - :page/created-at "Utworzony" - :page/updated-at "Zaktualizowany" - :page/backlinks "Linki zwrotne" - :linked-references/filter-search "Szukaj w powiązanych stronach" - :editor/block-search "Szukaj bloku" - :text/image "Obrazek" - :asset/confirm-delete "Jesteś pewien, że chcesz usunąć ten {1}?" - :asset/physical-delete "Usuń ten plik z dysku (operacja nie może zostać cofnięta)" - :editor/copy "Kopiuj" - :editor/cut "Wytnij" - :content/copy-block-ref "Kopiuj referencję bloku" - :content/open-in-sidebar "Otwórz w panelu bocznym" - :content/click-to-edit "Kliknij, aby edytować" - :settings-page/edit-config-edn "Edytuj config.edn" - :settings-page/edit-custom-css "Edytuj custom.css" - :settings-page/edit-export-css "Edytuj export.css" - :settings-page/custom-configuration "Niestandardowa konfiguracja" - :settings-page/custom-theme "Niestandardowy motyw graficzny" - :settings-page/export-theme "Eksportuj motyw graficzny" - :settings-page/show-brackets "Pokaż kwadratowe nawiasy" - :settings-page/spell-checker "Sprawdzanie pisowni" - :settings-page/auto-updater "Automatyczne aktualizacje" - :settings-page/disable-sentry "Wyślij statystyki użycia aplikacji do Logseq" - :settings-page/preferred-outdenting "Logiczne zmniejszanie wcięć" - :settings-page/custom-date-format "Preferowany format daty" - :settings-page/enable-shortcut-tooltip "Włącz podpowiedzi skrótu klawiszowego" - :settings-page/enable-tooltip "Podpowiedzi" - :settings-page/enable-journals "Dzienniki" - :settings-page/enable-all-pages-public "Publikuj wszystkie strony" - :settings-page/home-default-page "Ustaw domyślną stronę startową" - :settings-page/clear-cache "Wyczyść cache" - :settings-page/clear "Wyczyść" - :settings-page/developer-mode "Tryb programisty" - :settings-page/developer-mode-desc "Tryb programisty pomaga kontrybutorom i programistom rozszerzeń lepiej przetestować ich integracje w Logseq." - :settings-page/current-version "Aktualna wersja" - :settings-page/tab-general "Ogólne" - :settings-page/tab-editor "Edytor" - :settings-page/tab-advanced "Zaawansowane" - :settings-page/plugin-system "System pluginów" - :settings-page/enable-flashcards "Fiszki" - :settings-page/network-proxy "Ustawienia proxy" - :settings-page/changelog "Co nowego?" - :settings-page/theme-light "jasny" - :settings-page/theme-dark "ciemny" - :settings-page/theme-system "systemowy" - :settings-page/tab-keymap "Skróty klawiaturowe" - :settings-page/disable-sentry-desc "Logseq nigdy nie zbiera danych Twoich lokalnych grafów i nie sprzedaje twoich danych." - :settings-page/clear-cache-warning "Wyczyszczenie pamięci podręcznej spowoduje usunięcie otwartych grafów. Twoje niezapisane zmiany zostaną utracone." - :yes "Tak" - :cancel "Anuluj" - :close "Zamknij" - :delete "Usuń" - :save "Zapisz" - :type "Typ" - :graph "Graf" - :port "Port" - :import "Importuj" - :export "Eksport" - :export-graph "Eksportuj graf" - :export-page "Eksportuj stronę" - :export-markdown "Eksportuj jako Markdown (brak właściwości bloków)" - :export-public-pages "Eksportuj publiczne strony" - :all-graphs "Wszystkie grafy" - :all-files "Wszystkie pliki" - :all-journals "Wszystkie dzienniki" - :settings "Ustawienia" - :settings-of-plugins "Ustawienia pluginu" - :plugins "Pluginy" - :themes "Motywy graficzne" - :relaunch-confirm-to-work "Aby wprowadzić zmiany, aplikacja musi zostać uruchomiona ponownie. Zrobić to teraz?" - :help-shortcut-title "Kliknij, aby sprawdzić skróty klawiszowe oraz inne porady" - :login "Zaloguj" - :logout "Wyloguj" - :download "Ściągnij" - :language "Język" - :remove-background "Usuń tło" - :help/shortcut-page-title "Skróty klawiszowe" - :plugin/installed "Zainstalowany" - :plugin/not-installed "Nie zainstalowany" - :plugin/installing "Instaluję" - :plugin/install "Zainstaluj" - :plugin/reload "Przeładuj" - :plugin/update "Zaktualizuj" - :plugin/check-update "Sprawdź aktualizację" - :plugin/check-all-updates "Sprawdź wszystkie aktualizacje" - :plugin/refresh-lists "Odśwież listy" - :plugin/enabled "Włączony" - :plugin/disabled "Wyłączony" - :plugin/update-available "Aktualizacja dostępna" - :plugin/updating "Aktualizuję" - :plugin/uninstall "Odinstaluj" - :plugin/downloads "Ściągnięte" - :plugin/stars "Gwiazdki" - :plugin/all "Wszystkie" - :plugin/unpacked "Rozpakowany" - :plugin/delete-alert "Czy na pewno chcesz usunąć plugin [{1}]?" - :plugin/open-settings "Otwórz ustawienia" - :plugin/open-package "Otwórz paczkę" - :plugin/load-unpacked "Załaduj rozpakowany plugin" - :plugin/restart "Uruchom ponownie" - :plugin/unpacked-tips "Wybierz katalog z pluginem" - :plugin/contribute "✨ Napisz i prześlij nowy plugin" - :plugin/custom-js-alert "Wykryto plik custom.js, czy chcesz go wykonać? Ze względów bezpieczeństwa, nie rekomendujemy wykonywania tego pliku, jeżeli nie znasz jego zawartości." +{ + :account/authentication "Uwierzytelnianie" + :account/benefits-desc "Dzięki kontu Logseq możesz korzystać z usług w chmurze, takich jak Logseq Sync, oraz z funkcji alfa/beta." + :account/billing "Płatności" + :account/billing-expired-on-label "Plan Pro wygasł: {1}" + :account/billing-expires-on-label "Plan Pro wygasa: {1}" + :account/billing-next-date-label "Następna data rozliczenia: {1}" + :account/core-features "Dostęp do podstawowych funkcji Logseq" + :account/current-plan "Obecny plan" + :account/delete-account "Usuń konto" + :account/discover-sync-desc "Odkryj możliwości {1}" + :account/early-access-alpha-beta "Wczesny dostęp do funkcji alfa/beta" + :account/first-name "Imię" + :account/free-plan-sync-limit "1 zsynchronizowany graf (do 50MB, tylko notatki)" + :account/last-name "Nazwisko" + :account/manage-plan "Zarządzaj planem" + :account/month "miesiąc" + :account/no-asset-syncing "Brak synchronizacji zasobów" + :account/open-invoices "Otwórz faktury" + :account/plan-free "Darmowy" + :account/plan-free-summary "Zacznij z podstawową synchronizacją" + :account/plan-pro "Pro" + :account/plan-pro-summary "Odblokuj zaawansowaną synchronizację i więcej" + :account/pro-plan-sync-limit "10 zsynchronizowanych grafów (do 5GB każdy)" + :account/profile "Profil" + :account/refresh-token-warning "Odśwież token: wyjątkowy status" + :account/reset-password "Zresetuj hasło" + :account/sign-up "Zarejestruj się" + :account/sync-assets-limit "Synchronizuj zasoby do 100MB na plik" + :account/synced-status "Zsynchronizowany" + :account/unlimited-unsynced-graphs "Nieograniczona liczba niezsynchronizowanych grafów" + :account/upcoming-cloud-features "Nadchodzące funkcje w chmurze, w tym Logseq Publish" + :account/upgrade-plan "Ulepsz plan" + :account/username "Nazwa użytkownika" + :asset/acceptable-file-extensions "Dopuszczalne rozszerzenia plików" + :asset/add-assets "Dodaj zasoby" + :asset/add-directory "Dodaj katalog" + :asset/alias-already-exists "Nazwa aliasu \"{1}\" już istnieje!" + :asset/alias-directories "Aliasy katalogów" + :asset/alias-directory-path-label "Ścieżka katalogu:" + :asset/alias-name-dialog-title "Jaka jest nazwa aliasu dla wybranego katalogu?" + :asset/alias-name-label "Nazwa aliasu:" + :asset/alias-name-placeholder "np. Książki" + :asset/align "Wyrównanie" + :asset/align-center "Wyśrodkuj" + :asset/align-left "Do lewej" + :asset/align-right "Do prawej" + :asset/already-exists "Zasób już istnieje, tytuł: {1}, odnośnik do węzła: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Nie można osadzić rodzica jako własnej właściwości" + :asset/confirm-delete-image "Czy na pewno chcesz usunąć ten obraz?" + :asset/copy "Kopiuj obrazek" + :asset/copy-image-unsupported-extension "Kopiowanie obrazu nie jest obsługiwane dla plików {1}" + :asset/create-local-copy-warning "Tworzenie lokalnego zasobu z zewnętrznego. Adnotacje PDF wymagają lokalnego zasobu, aby działały poprawnie." + :asset/create-title "Utwórz zasób" + :asset/delete "Usuń obrazek" + :asset/downloading "Pobieranie" + :asset/drop-hint "Przeciągnij i upuść pliki tutaj lub kliknij, aby wybrać pliki" + :asset/edit-title "Edytuj zasób" + :asset/external-url-label "Zewnętrzny URL zasobu:" + :asset/file-extension-placeholder "np. mp3" + :asset/maximize "Powiększ obrazek" + :asset/open-in-browser "Otwórz obrazek w przeglądarce" + :asset/physical-delete "Usuń ten plik z dysku (operacja nie może zostać cofnięta)" + :asset/ref-block "Blok referencyjny" + :asset/select-file "Wybierz plik zasobu" + :asset/select-from-disk "Wybierz z dysku" + :asset/selected-directories "Wybrane katalogi:" + :asset/show-file-in-folder "Pokaż plik w folderze" + :asset/size-too-large "Zasób jest zbyt duży" + :asset/syncing "Synchronizacja" + :asset/title-label "Tytuł zasobu:" + :asset/transfer-placeholder "{1} plików..." + :asset/uploading "Wysyłanie" + + :block/click-to-fix-query "Kliknij, aby naprawić zapytanie: {1}" + :block/copy-ref "Kopiuj referencję bloku" + :block/copy-url "Kopiuj URL bloku" + :block/created-label "Utworzono: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' jest przestarzałe. Użyj polecenia '/Math block' zamiast tego." + :block/deprecated-query-syntax "#+BEGIN_QUERY jest przestarzałe. Użyj polecenia '/Advanced Query' zamiast tego." + :block/deprecated-quote "#+BEGIN_QUOTE jest przestarzałe. Użyj polecenia '/Quote' zamiast tego." + :block/empty-url "Pusty URL" + :block/excalidraw-no-longer-supported "Excalidraw nie jest już domyślnie obsługiwany, planujemy wsparcie przez wtyczki." + :block/extraction-error "Błąd ekstrakcji bloku" + :block/hide-query "Ukryj zapytanie" + :block/invalid-hiccup "Nieprawidłowy hiccup" + :block/invalid-link "Nieprawidłowy link" + :block/invalid-url "Nieprawidłowy URL" + :block/large-block-warning "Duży blok nie będzie edytowalny ani przeszukiwalny, aby nie spowalniać aplikacji. Użyj innego edytora do edycji tego bloku." + :block/last-edited-label "Ostatnio edytowano: {1}" + :block/not-found-warning "Nie znaleziono bloku" + :block/open-block-references "Otwórz odniesienia bloków" + :block/practice "Ćwicz" + :block/practice-cards "Ćwicz karty" + :block/ref-nesting-too-deep "Zagnieżdżenie odniesień bloku jest zbyt głębokie" + :block/remove-tag "Usuń tag" + :block/remove-this-tag "Usuń ten tag" + :block/render-error "Błąd renderowania bloku:" + :block/set-query "Ustaw zapytanie" + :block/set-query-label "Ustaw zapytanie:" + :block/sort-order "Kolejność sortowania" + :block/status-history "Historia statusów" + :block/untitled-query "Zapytanie bez tytułu" + + :block.macro/embed-deprecated "{{embed}} jest przestarzałe. Użyj zamiast tego polecenia '/Node embed'." + :block.macro/namespace-deprecated "{{namespace}} jest przestarzałe. Użyj zamiast tego funkcji {1}." + :block.macro/query-deprecated "{{query}} jest przestarzałe. Użyj zamiast tego polecenia '/Query'." + :block.macro/unsupported-name "Nieobsługiwana nazwa makra: {1}" + + :block.reaction/emoji-required-warning "Wymagane emoji" + :block.reaction/unsupported-emoji-warning "Nieobsługiwane emoji reakcji" + + :bug-report/desc "Zgłoś błąd" + :bug-report/title "Zgłoś błąd" + + :bug-report.clipboard/action-desc "Sprawdź schowek" + :bug-report.clipboard/action-title "Inspektor schowka" + :bug-report.clipboard/desc "Jeśli masz problemy z kopiowaniem i wklejaniem, użyj inspektora schowka" + :bug-report.clipboard/title "Schowek" + + :bug-report.inspector/back "Wstecz" + :bug-report.inspector/clipboard-desc "Zawartość schowka" + :bug-report.inspector/copied "Skopiowano do schowka" + :bug-report.inspector/copy "Kopiuj" + :bug-report.inspector/copy-desc "Skopiuj raport diagnostyczny" + :bug-report.inspector/create-issue "Utwórz zgłoszenie" + :bug-report.inspector/create-issue-desc "Możesz teraz zgłosić wynik wklejony do schowka. Wklej wynik do sekcji 'Additional Context' i podaj, skąd skopiowano oryginalną treść. Dziękujemy!" + :bug-report.inspector/desc "Wciśnij {1}, żeby sprawdzić zawartość schowka\nlub kliknij tu, żeby wkleić jeśli używasz komórki..." + :bug-report.inspector/placeholder "Wklej zawartość tutaj" + :bug-report.inspector/tip "Wskazówka: użyj Ctrl+V aby wkleić" + :bug-report.inspector/title "Inspektor schowka" + + :bug-report.issue/action-desc "Przeglądaj znane problemy" + :bug-report.issue/action-title "Zgłoszenia na GitHub" + :bug-report.issue/desc "Sprawdź, czy Twój problem nie został już zgłoszony" + :bug-report.issue/report-link "Zgłoś problem" + :bug-report.issue/title "Znane problemy" + + :class/add-property "Dodaj właściwość tagu" + :class/tag-properties-desc "Właściwości tagu są dziedziczone przez wszystkie węzły używające tego tagu. Na przykład każdy węzeł #Task dziedziczy 'Status' i 'Priority'." + :class/tagged-nodes "Otagowane węzły" + + :class.built-in/asset "Zasób" + :class.built-in/card "Karta" + :class.built-in/cards "Karty" + :class.built-in/code-block "Kod" + :class.built-in/journal "Dziennik" + :class.built-in/math-block "Matematyka" + :class.built-in/page "Strona" + :class.built-in/pdf-annotation "Adnotacja PDF" + :class.built-in/property "Właściwość" + :class.built-in/query "Zapytanie" + :class.built-in/quote-block "Cytat" + :class.built-in/root "Tag główny" + :class.built-in/tag "Tag" + :class.built-in/task "Zadanie" + :class.built-in/template "Szablon" + :class.built-in/whiteboard "Tablica" + + :class.validation/built-in-extends-change "Dziedziczenia wbudowanych elementów nie można zmienić." + :class.validation/cant-add-tag-on-built-in "Nie można dodać tagu do wbudowanego „{1}”." + :class.validation/cant-remove-private-tags "Nie można usunąć prywatnych tagów: {1}." + :class.validation/cant-remove-tag-built-in "Nie można usunąć znacznika z wbudowanym #{1}." + :class.validation/cant-remove-tag-on-built-in "Nie można usunąć znacznika z wbudowanego „{1}”." + :class.validation/cant-set-tag-built-in "Nie można ustawić znacznika z wbudowanym #{1}." + :class.validation/duplicate "Tag '{1}' już istnieje." + :class.validation/extends-cycle "Wykryto cykl w dziedziczeniu." + :class.validation/invalid-extends-type "Nieprawidłowy typ dziedziczenia." + :class.validation/parents-must-be-tags "Rodzice tagów muszą być tagami." + :class.validation/tag-with-non-tag "Nie można ustawić tagu dla wbudowanej strony, który nie jest tagiem „{1}”." + + :cmdk.action/apply-theme "Zastosuj motyw" + :cmdk.action/copy-ref "Kopiuj odniesienie" + :cmdk.action/create "Utwórz" + :cmdk.action/filter "Filtr" + :cmdk.action/open "Otwórz" + :cmdk.action/open-in-sidebar "Otwórz w panelu bocznym" + :cmdk.action/search "Szukaj" + :cmdk.action/trigger "Uruchom" + + :cmdk.create/configure-tag "Skonfiguruj tag" + :cmdk.create/page "Utwórz stronę" + :cmdk.create/tag "Utwórz tag" + + :cmdk.error/no-block-link "W tym bloku nie ma linków." + :cmdk.error/no-page-link "Na tej stronie nie ma linków." + :cmdk.error/no-search-item-link "W tym wyniku wyszukiwania nie ma linków." + + :cmdk.filter/add "Dodaj filtr" + :cmdk.filter/codes "Tylko kod" + :cmdk.filter/commands "Tylko polecenia" + :cmdk.filter/current-page "Tylko bieżąca strona" + :cmdk.filter/files "Tylko pliki" + :cmdk.filter/nodes "Tylko węzły" + :cmdk.filter/only-label "Tylko szukaj:" + :cmdk.filter/themes "Tylko motywy" + + :cmdk.group/codes "Kod" + :cmdk.group/commands "Polecenia" + :cmdk.group/create "Utwórz" + :cmdk.group/current-page "Bieżąca strona" + :cmdk.group/files "Pliki" + :cmdk.group/filters "Filtry" + :cmdk.group/nodes "Węzły" + :cmdk.group/recently-updated "Ostatnio zaktualizowane" + :cmdk.group/themes "Motywy" + + :cmdk.info/configure-tag "Skonfiguruj #{1}" + :cmdk.info/create-page "Utwórz stronę '{1}'" + :cmdk.info/create-tag "Utwórz tag '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Dodaj filtr grafu" + :cmdk.input/default-placeholder "Czego szukasz?" + :cmdk.input/move-blocks-placeholder "Przenieś bloki" + :cmdk.input/type-page-name-placeholder "Wpisz nazwę strony" + + :cmdk.tip/clear-filter "Naciśnij {1}, aby wyczyścić filtr wyszukiwania" + :cmdk.tip/filter-results "Naciśnij {1}, aby filtrować wyniki wyszukiwania" + :cmdk.tip/label "Wskazówka:" + :cmdk.tip/open-sidebar "Naciśnij {1}, aby otworzyć wyszukiwanie w panelu bocznym" + + :collaboration/email-address "Adres e-mail" + :collaboration/invite "Zaproś" + :collaboration/members "Członkowie:" + :collaboration/remove-access "Usuń dostęp" + :collaboration/remove-access-error "Nie udało się usunąć członka" + + :color/blue "Niebieski" + :color/crimson "karmazynowy" + :color/cyan "cyjan" + :color/grass "trawiasty" + :color/gray "Szary" + :color/green "Zielony" + :color/indigo "indygo" + :color/orange "pomarańczowy" + :color/pink "Różowy" + :color/plum "śliwkowy" + :color/purple "Fioletowy" + :color/red "Czerwony" + :color/teal "morski" + :color/tomato "pomidorowy" + :color/violet "fiołkowy" + :color/yellow "Żółty" + + :command.auto-complete/complete "Auto uzupełnianie: Wybierz zaznaczoną opcję" + :command.auto-complete/meta-complete "Meta-autouzupełnianie" + :command.auto-complete/next "Auto uzupełnianie: Wybierz następną opcję" + :command.auto-complete/prev "Auto uzupełnianie: Wybierz poprzednią opcję" + :command.auto-complete/shift-complete "Auto uzupełnianie: Otwórz wybraną opcję w panelu bocznym" + + :command.command-palette/toggle "Paleta poleceń" + + :command.editor/add-property "Dodaj właściwość" + :command.editor/add-property-deadline "Dodaj termin" + :command.editor/add-property-icon "Dodaj ikonę" + :command.editor/add-property-priority "Dodaj priorytet" + :command.editor/add-property-status "Dodaj status" + :command.editor/add-reaction "Dodaj reakcję" + :command.editor/backspace "Usuwanie wstecz" + :command.editor/backward-kill-word "Usuń poprzednie słowo" + :command.editor/backward-word "Przesuń kursor do poprzedniego słowa" + :command.editor/beginning-of-block "Umieść kursor na początku bloku" + :command.editor/bold "Wytłuszczenie" + :command.editor/clear-block "Usuń całą treść bloku" + :command.editor/collapse-block-children "Zwiń" + :command.editor/copy "Kopiuj (kopiuje zaznaczenie lub referencję do bloku)" + :command.editor/copy-embed "Kopiuj kod osadzenia dla obecnego bloku" + :command.editor/copy-page-url "Kopiuj URL strony" + :command.editor/copy-text "Kopiuj zaznaczenie jako tekst" + :command.editor/cut "Wytnij" + :command.editor/cycle-todo "Rotuj stan TODO dla aktualnego bloku" + :command.editor/delete "Usuwanie naprzód" + :command.editor/delete-selection "Usuń zaznaczone bloki" + :command.editor/down "Przesuń kursor w dół / Zaznacz poniższą opcję" + :command.editor/end-of-block "Umieść kursor na końcu bloku" + :command.editor/escape-editing "Wyjście z edycji" + :command.editor/expand-block-children "Rozwiń" + :command.editor/follow-link "Przejdź do linku pod kursorem" + :command.editor/forward-kill-word "Usuń następne słowo" + :command.editor/forward-word "Przesuń kursor do następnego słowa" + :command.editor/highlight "Podświetlenie" + :command.editor/indent "Przesuń blok poziom niżej" + :command.editor/insert-link "Link HTML" + :command.editor/insert-youtube-timestamp "Umieść znacznik czasu filmu YouTube" + :command.editor/italics "Pochylenie" + :command.editor/jump "Przejdź" + :command.editor/kill-line-after "Usuń linię poniżej kursora" + :command.editor/kill-line-before "Usuń linię powyżej kursora" + :command.editor/left "Przesuń kursor w lewo / Rozpocznij edycję na początku bloku" + :command.editor/move-block-down "Przesuń blok poniżej" + :command.editor/move-block-up "Przesuń blok powyżej" + :command.editor/move-blocks "Przenieś bloki" + :command.editor/new-block "Utwórz nowy blok" + :command.editor/new-line "Nowa linia w obecnym bloku" + :command.editor/open-edit "Edytuj zaznaczony blok" + :command.editor/open-link-in-sidebar "Otwórz link w panelu bocznym" + :command.editor/open-selected-blocks-in-sidebar "Otwórz zaznaczone bloki w panelu" + :command.editor/outdent "Przesuń blok poziom wyżej" + :command.editor/paste-text-in-one-block-at-point "Wklej cały tekst jako jeden blok" + :command.editor/quick-add "Szybkie dodawanie" + :command.editor/redo "Ponów" + :command.editor/right "Przesuń kursor w prawo / Rozpocznij edycję na końcu bloku" + :command.editor/select-all-blocks "Zaznacz wszystkie bloki" + :command.editor/select-block-down "Zaznacz blok poniżej" + :command.editor/select-block-up "Zaznacz blok powyżej" + :command.editor/select-down "Zaznacz treść poniżej" + :command.editor/select-parent "Zaznacz blok nadrzędny" + :command.editor/select-up "Zaznacz treść powyżej" + :command.editor/set-tags "Ustaw tagi" + :command.editor/strike-through "Przekreślenie" + :command.editor/toggle-block-children "Pokaż/ukryj bloki podrzędne" + :command.editor/toggle-display-hidden-properties "Pokaż/ukryj ukryte właściwości" + :command.editor/toggle-number-list "Lista numerowana" + :command.editor/toggle-open-blocks "Zwiń / Rozwiń otwarte bloki" + :command.editor/undo "Cofnij" + :command.editor/up "Przesuń kursor do góry / Zaznacz powyższą opcję" + :command.editor/zoom-in "Wejdź do edytowanego bloku lub w przód" + :command.editor/zoom-out "Wyjdź z edytowanego bloku lub wstecz" + + :command.go/all-graphs "Idź do Wszystkich grafów" + :command.go/all-pages "Idź do indeksu wszystkich stron" + :command.go/backward "Wstecz" + :command.go/electron-find-in-page "Znajdź tekst na stronie" + :command.go/electron-jump-to-the-next "Skocz do następnego rezultatu wyszukiwania" + :command.go/electron-jump-to-the-previous "Skocz do poprzedniego rezultatu wyszukiwania" + :command.go/flashcards "Pokaż / Ukryj widok fiszek" + :command.go/forward "Naprzód" + :command.go/graph-view "Idź do widoku grafu" + :command.go/home "Idź do strony głównej" + :command.go/journals "Idź do dzienników" + :command.go/keyboard-shortcuts "Idź do widoku skrótów klawiszowych" + :command.go/next-journal "Idź do następnego dziennika" + :command.go/prev-journal "Idź do poprzedniego dziennika" + :command.go/search "Wyszukiwanie tekstowe" + :command.go/search-in-page "Szukaj na stronie" + :command.go/search-themes "Szukaj motywów" + :command.go/tomorrow "Idź do jutrzejszego dziennika" + + :command.graph/add "Dodaj graf" + :command.graph/db-add "Dodaj do bazy danych" + :command.graph/db-save "Zapisz bazę danych" + :command.graph/export-as-html "Eksportuj publiczne strony grafu jako HTML" + :command.graph/open "Wybierz graf do otwarcia" + :command.graph/remove "Usuń graf" + + :command.misc/copy "Kopiuj" + :command.misc/export-block-data "Eksportuj dane bloku" + :command.misc/export-graph-ontology-data "Eksportuj ontologię grafu" + :command.misc/export-page-data "Eksportuj dane strony" + :command.misc/import-edn-data "Importuj dane EDN" + + :command.page/toggle-favorite "Dodaj / Usuń z ulubionych" + + :command.pdf/close "Zamknij aktualnie otwarty dokument PDF" + :command.pdf/find "PDF: Szukaj tekstu w otwartym dokumencie PDF" + :command.pdf/next-page "Następna strona otwartego dokumentu PDF" + :command.pdf/previous-page "Poprzednia strona otwartego dokumentu PDF" + + :command.publish/open-dialog "Otwórz dialog publikacji" + + :command.search/re-index "Przebuduj index wyszukiwania" + + :command.shell/run "Wykonaj polecenie GIT" + + :command.sidebar/clear "Wyczyść wszystko w panelu bocznym" + :command.sidebar/close-top "Zamyka górny element w prawym panelu" + :command.sidebar/open-today-page "Otwórz dzisiejszy dziennik w panelu bocznym" + + :command.ui/clear-all-notifications "Wyczyść wszystkie powiadomienia" + :command.ui/customize-appearance "Dostosuj wygląd" + :command.ui/goto-plugins "Przejdź do dashboardu pluginów" + :command.ui/highlight-recent-blocks "Podświetl ostatnie bloki" + :command.ui/install-plugin-from-github "Zainstaluj wtyczkę z GitHub" + :command.ui/install-plugins-from-file "Zainstaluj pluginy z plugins.edn" + :command.ui/select-theme-color "Wybierz dostępne kolory motywu" + :command.ui/toggle-brackets "Pokaż / Ukrywaj kwadratowe nawiasy" + :command.ui/toggle-contents "Przełącz Treść w panelu bocznym" + :command.ui/toggle-document-mode "Wyświetl / Ukryj widok dokumentu" + :command.ui/toggle-help "Pokaż / Ukryj pomoc" + :command.ui/toggle-left-sidebar "Pokaż / Ukryj lewy panel" + :command.ui/toggle-right-sidebar "Pokaż / Ukryj prawy panel" + :command.ui/toggle-settings "Wyświetl / Ukryj ustawienia" + :command.ui/toggle-theme "Zmień motyw graficzny na ciemny/jasny" + :command.ui/toggle-wide-mode "Włącz / wyłącz tryb szeroki" + + :command.window/close "Zamknij okno" + + :context-menu/developer-tools "Narzędzia dla programistów" + :context-menu/make-a-flashcard "Utwórz fiszkę" + :context-menu/set-icon "Ustaw ikonę" + :context-menu/toggle-number-list "Przełącz listę numerowaną" + + :date/invalid-date-warning "{1} nie jest prawidłową datą. Spróbuj ponownie" + + :date.nlp/last-friday "Ubiegły piątek" + :date.nlp/last-monday "Ubiegły poniedziałek" + :date.nlp/last-month "Ubiegły miesiąc" + :date.nlp/last-saturday "Ubiegła sobota" + :date.nlp/last-sunday "Ubiegła niedziela" + :date.nlp/last-thursday "Ubiegły czwartek" + :date.nlp/last-tuesday "Ubiegły wtorek" + :date.nlp/last-wednesday "Ubiegła środa" + :date.nlp/last-week "Ubiegły tydzień" + :date.nlp/last-year "Ubiegły rok" + :date.nlp/next-friday "Następny piątek" + :date.nlp/next-monday "Następny poniedziałek" + :date.nlp/next-month "Następny miesiąc" + :date.nlp/next-saturday "Następna sobota" + :date.nlp/next-sunday "Następna niedziela" + :date.nlp/next-thursday "Następny czwartek" + :date.nlp/next-tuesday "Następny wtorek" + :date.nlp/next-wednesday "Następna środa" + :date.nlp/next-week "Następny tydzień" + :date.nlp/next-year "Następny rok" + :date.nlp/this-friday "Ten piątek" + :date.nlp/this-monday "Ten poniedziałek" + :date.nlp/this-month "Ten miesiąc" + :date.nlp/this-saturday "Ta sobota" + :date.nlp/this-sunday "Ta niedziela" + :date.nlp/this-thursday "Ten czwartek" + :date.nlp/this-tuesday "Ten wtorek" + :date.nlp/this-wednesday "Ta środa" + :date.nlp/this-week "Ten tydzień" + :date.nlp/this-year "Ten rok" + :date.nlp/today "Dzisiaj" + :date.nlp/tomorrow "Jutro" + :date.nlp/yesterday "Wczoraj" + + :deeplink/open-block-error "Nie udało się otworzyć linku. ID bloku `{1}` nie istnieje w bieżącym grafie." + :deeplink/open-graph-error "Nie udało się otworzyć grafu. Graf `{1}` nie istnieje." + :deeplink/open-page-error "Nie udało się otworzyć linku. Strona `{1}` nie istnieje w bieżącym grafie." + + :editor/add-content-first-warning "Najpierw dodaj treść." + :editor/auto-heading "Automatyczny nagłówek" + :editor/block-search "Szukaj bloku" + :editor/click-to-edit "Kliknij, aby edytować" + :editor/code-language-placeholder "Wybierz język" + :editor/collapse-block-children "Zwiń bloki podrzędne" + :editor/cut "Wytnij" + :editor/cycle-todo "Przełącz TODO" + :editor/delete-selection "Usuń zaznaczenie" + :editor/display-tag-inline-hint "aby wyświetlać ten tag w treści zamiast na końcu tego węzła." + :editor/expand-block-children "Rozwiń bloki podrzędne" + :editor/heading "Nagłówek {1}" + :editor/moving-blocks-count "Przenoszenie {1} bloków" + :editor/new-page "Nowa strona" + :editor/new-tag "Nowy tag" + :editor/no-block-selected-warning "Nie zaznaczono bloków" + :editor/paste "Wklej" + :editor/reference-node-use-page-ref "Aby odwołać się do węzła, użyj `[[]]`." + :editor/remove-heading "Usuń nagłówek" + :editor/search-for-node "Szukaj węzła" + :editor/search-for-tag "Szukaj tagu" + :editor/search-template-placeholder "Szukaj szablonu" + :editor/template-insert-error "Błąd wstawiania szablonu: {1}" + + :editor.document-mode/new-block-hint "{1} aby utworzyć nowy blok" + :editor.document-mode/title "Tryb dokumentu" + :editor.document-mode/toggle-desc "Kliknij `D` lub wpisz {1}, aby przełączyć tryb dokumentu" + + :editor.quick-add/add-to-today "Dodaj do dzisiejszej strony" + :editor.quick-add/title "Szybkie dodawanie" + + :editor.slash/advanced-query "Zaawansowane zapytanie" + :editor.slash/advanced-query-desc "Utwórz blok zaawansowanego zapytania" + :editor.slash/calculator "Kalkulator" + :editor.slash/calculator-desc "Wstaw kalkulator" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Blok kodu" + :editor.slash/code-block-desc "Wstaw blok kodu" + :editor.slash/current-time "Bieżący czas" + :editor.slash/current-time-desc "Wstaw bieżący czas" + :editor.slash/date-picker "Selektor daty" + :editor.slash/date-picker-desc "Wybierz datę i wstaw ją tutaj" + :editor.slash/embed-html "Osadź HTML" + :editor.slash/embed-twitter-tweet "Osadź tweet z Twittera" + :editor.slash/embed-video-url "Osadź adres URL wideo" + :editor.slash/embed-youtube-timestamp "Osadź znacznik czasu YouTube" + :editor.slash/group-advanced "ZAAWANSOWANE" + :editor.slash/group-basic "PODSTAWOWE" + :editor.slash/group-format "FORMAT" + :editor.slash/group-heading "Nagłówek" + :editor.slash/group-list-type "TYP LISTY" + :editor.slash/group-plugins "WTYCZKI" + :editor.slash/group-priority "PRIORYTET" + :editor.slash/group-task-date "DATA ZADANIA" + :editor.slash/group-task-status "STATUS ZADANIA" + :editor.slash/group-time-and-date "CZAS I DATA" + :editor.slash/heading-label "Nagłówek {1}" + :editor.slash/image-link "Łącze do obrazu" + :editor.slash/image-link-desc "Utwórz łącze HTTP do obrazu" + :editor.slash/link-desc "Utwórz łącze HTTP" + :editor.slash/math-block "Blok matematyczny" + :editor.slash/math-block-desc "Utwórz blok LaTeX" + :editor.slash/no-priority "Brak priorytetu" + :editor.slash/node-embed "Osadź węzeł" + :editor.slash/node-embed-desc "Osadź węzeł tutaj" + :editor.slash/node-reference "Odniesienie węzła" + :editor.slash/node-reference-desc "Utwórz wsteczne łącze do węzła (strona lub blok)" + :editor.slash/normal-text "Zwykły tekst" + :editor.slash/normal-text-desc "Wyczyść nagłówek i ustaw na zwykły tekst" + :editor.slash/number-children "Numeruj dzieci" + :editor.slash/number-list "Lista numerowana" + :editor.slash/priority-desc "Ustaw priorytet na {1}" + :editor.slash/priority-label "Priorytet {1}" + :editor.slash/query-function "Funkcja zapytania" + :editor.slash/query-function-desc "Utwórz funkcję zapytania" + :editor.slash/quote-desc "Utwórz blok cytatu" + :editor.slash/status-desc "Ustaw status na {1}" + :editor.slash/template-desc "Wstaw utworzony szablon tutaj" + :editor.slash/today-desc "Wstaw dzisiejszą datę" + :editor.slash/tomorrow-desc "Wstaw jutrzejszą datę" + :editor.slash/underline "Podkreślenie" + :editor.slash/underline-desc "Utwórz podkreślone formatowanie tekstu" + :editor.slash/upload-asset "Prześlij plik" + :editor.slash/upload-asset-desc "Prześlij typy plików takie jak obraz, PDF, DOCX itp." + :editor.slash/yesterday-desc "Wstaw wczorajszą datę" + + :electron/about "O Logseq" + :electron/add-to-dictionary "Dodaj do słownika" + :electron/block-not-exist "Otwarcie linku nie powiodło się. Identyfikator bloku `{1}` nie istnieje w grafie." + :electron/cancel "Anuluj" + :electron/copy-image "Kopiuj obraz" + :electron/link-open-confirm "Czy na pewno chcesz otworzyć ten link?\n{1}" + :electron/link-open-failed-missing-graph "Nie udało się otworzyć linku. Brak grafu." + :electron/link-open-failed-no-graph "Otwarcie linku nie powiodło się. Nie można dopasować identyfikatora grafu `{1}` do żadnego podłączonego grafu." + :electron/link-open-failed-no-target "Otwarcie linku nie powiodło się. Nie można dopasować `{1}` do żadnego celu." + :electron/look-up "Szukaj zaznaczenia" + :electron/main-exception "[Wyjątek procesu głównego]\n{1}\n{2}" + :electron/new-window "Nowe okno" + :electron/official-docs "Oficjalna dokumentacja" + :electron/ok "OK" + :electron/open-dir-error "Nie udało się otworzyć katalogu: {1}" + :electron/save-image "Zapisz obraz" + :electron/save-image-as "Zapisz obraz jako" + :electron/search-with-google "Szukaj w Google" + :electron/unimplemented-callback "Niezaimplementowana akcja x-callback-url: `{1}`." + :electron/version "Wersja {1}" + :electron/write-file-error "Zapis do pliku {1} nie powiódł się, {2}." + :electron/write-file-error-with-backup "Zapis do pliku {1} nie powiódł się, {2}. Plik kopii zapasowej został zapisany w {3}." + + :encryption/cloud-password-rich (fn [] ["Jeśli zgubisz hasło, żadne dane w chmurze nie będą mogły zostać odszyfrowane. " [:span "Nadal jednak będziesz mieć dostęp do lokalnej wersji swojego grafu."]]) + :encryption/current-password "Bieżące hasło" + :encryption/enter-password "Wprowadź hasło" + :encryption/enter-password-again "Wprowadź hasło ponownie" + :encryption/enter-password-title "Wprowadź hasło" + :encryption/failed-to-force-reset-password "Nie udało się wymusić zresetowania hasła" + :encryption/failed-to-update-password "Nie udało się zaktualizować hasła" + :encryption/fetch-key-pair-error "Pobieranie pary kluczy rsa użytkownika, błąd: {1}" + :encryption/fetching-key-pair "Pobieranie pary kluczy" + :encryption/force-reset-password "Wymuś zresetowanie hasła" + :encryption/force-reset-password-successfully "Hasło wymuszone zresetowane" + :encryption/force-resetting-password "Wymuszanie resetowania" + :encryption/forgot-password-question "Zapomniałeś hasła?" + :encryption/forgot-password-warning "Jeśli zapomnisz hasła, zaszyfrowanych danych nie da się odzyskać." + :encryption/init-key-pair "Inicjalizuj parę kluczy" + :encryption/init-key-pair-error "Błąd pary kluczy początkowych: {1}" + :encryption/password-not-matched "Hasła nie pasują" + :encryption/password-updated-successfully "Hasło zaktualizowane" + :encryption/remember-password-rich (fn [] [[:span "Upewnij się, że "] "pamiętasz ustawione hasło, bo jeśli je zapomnisz, nie będziemy mogli go zresetować ani odzyskać, " [:span "i zalecamy "] "przechowywanie jego bezpiecznej kopii zapasowej."]) + :encryption/reset-password "Resetuj hasło" + :encryption/set-new-password "Ustaw nowe hasło" + :encryption/set-password-title "Ustaw hasło" + :encryption/updating-password "Aktualizowanie hasła" + :encryption/wrong-password "Nieprawidłowe hasło" + + :export/backup-successful "Kopia zapasowa utworzona!" + :export/block-data-copied "Dane bloku skopiowane do schowka" + :export/collecting-assets "Zbieranie zasobów" + :export/copied-to-clipboard "Skopiowano do schowka!" + :export/copy-or-export-as "Kopiuj / Eksportuj jako.." + :export/creating-zip "Tworzenie pliku zip" + :export/db-backup-error "Nie udało się utworzyć kopii zapasowej DB." + :export/db-edn "Eksportuj jako plik EDN" + :export/debug-transit-desc "Eksportuje do pliku .transit w celu wysłania do nas do debugowania. Wszelkie wrażliwe dane zostaną usunięte z wyeksportowanego pliku." + :export/debug-transit-file "Eksportuj plik debug transit" + :export/edn-desc "Eksportuje do czytelnego i edytowalnego pliku .edn. Nie polegaj na tym jako głównej kopii zapasowej." + :export/error-unexpected "Podczas eksportu doszło do nieoczekiwanego błędu. Szczegóły znajdziesz w konsoli JavaScript." + :export/exporting "Eksportowanie" + :export/finalizing "Finalizowanie" + :export/format-text "Tekst" + :export/graph "Eksportuj graf" + :export/graph-ontology-data-copied "Dane ontologii grafu skopiowane do schowka" + :export/indent-style-dashes "myślniki" + :export/indent-style-label "Styl wcięć:" + :export/indent-style-none "bez wcięć" + :export/indent-style-spaces "spacje" + :export/level-lte "poziom <=" + :export/markdown "Eksportuj jako Markdown (bez właściwości bloków)" + :export/newline-after-block "nowa linia po bloku" + :export/no-updates-since-last-export "Brak aktualizacji od ostatniego eksportu." + :export/open-blocks-only "tylko otwarte bloki (pomiń zwinięte dzieci)" + :export/page "Eksportuj stronę" + :export/page-data-copied "Dane strony skopiowane do schowka" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Przygotowywanie pliku zip" + :export/preview-alt "podgląd eksportu" + :export/public-pages "Eksportuj publiczne strony" + :export/remove-emphasis "usuń wyróżnienie" + :export/remove-properties "usuń właściwości" + :export/remove-tags "usuń #tagi" + :export/save-to-file "Zapisz do pliku" + :export/sqlite-db "Eksportuj bazę danych SQLite" + :export/title "Eksport" + :export/transparent-background "Przezroczyste tło" + :export/view-nodes-data-copied "Dane węzłów widoku skopiowane do schowka" + :export/zip "Eksportuj DB SQLite i zasoby" + :export/zip-error "Nie udało się wyeksportować ZIP." + + :export.backup/backup-now "Utwórz kopię zapasową teraz" + :export.backup/cancel "Anuluj kopię zapasową" + :export.backup/enabled-desc "Kopie zapasowe co godzinę są włączone dla tego grafu, {1}." + :export.backup/folder "Folder kopii zapasowych:" + :export.backup/hourly-note "Kopia zapasowa będzie tworzona co godzinę." + :export.backup/open-folder "otwórz folder kopii zapasowych dla tego grafu" + :export.backup/schedule "Zaplanuj kopię zapasową" + :export.backup/set-folder-first "Najpierw ustaw folder kopii zapasowych" + :export.backup/sqlite-desc "Główny sposób tworzenia kopii zapasowej zawartości grafu do pojedynczego pliku .sqlite." + :export.backup/unsupported-desc "Twoja przeglądarka nie obsługuje {{The File System Access API}}, przełącz się na przeglądarkę opartą na Chromium." + :export.backup/zip-desc "Główny sposób tworzenia kopii zapasowej zawartości grafu i zasobów do pliku .zip." + + :file/config-duplicate-keys "Plik „{1}” zawiera zduplikowane klucze. Klucz „{2}” jest przypisywany wielokrotnie." + :file/config-invalid "Plik konfiguracyjny jest nieprawidłowy" + :file/format-not-supported "Format .{1} nie jest wspierany." + :file/label "Plik" + :file/last-modified-at "Ostatnio zmodyfikowany" + :file/name "Nazwa pliku" + :file/no-data "Brak danych" + :file/title "Plik {1}" + + :file.config/deprecation-title "Plik {1} zawiera następujące wycofane funkcje:" + :file.config/error-title "Plik {1} zawiera następujące błędy:" + :file.config/invalid-desc "Upewnij się, że konfiguracja jest ujęta w {}." + :file.config/invalid-title "Plik {1} jest nieprawidłowy." + :file.config/read-failed-desc "Upewnij się, że konfiguracja jest ujęta w {}. Upewnij się również, że znaki '( { [' mają odpowiadające znaki zamknięcia ') } ]'." + :file.config/read-failed-title "Nie udało się odczytać pliku {1}" + + :flashcard/add-query "Dodaj nowe zapytanie" + :flashcard/all-cards "Wszystkie karty" + :flashcard/select-cards "Wybierz karty" + :flashcard/shortcut-tooltip "Skrót: {1}" + + :flashcard.empty/desc "Możesz dodać „{1}” do dowolnego bloku, żeby zmienić go w fiszkę, albo wpisać „/cloze”, żeby dodać luki do uzupełnienia." + :flashcard.empty/title "Witaj w Fiszkach" + + :flashcard.rating/again "Ponownie" + :flashcard.rating/again-desc "Odpowiedź była błędna. To automatycznie oznacza, że zapomnieliśmy tej karty. To luka w pamięci。" + :flashcard.rating/easy "Łatwe" + :flashcard.rating/easy-desc "Odpowiedź była poprawna i przypomnieliśmy ją sobie szybko oraz pewnie, bez wysiłku umysłowego。" + :flashcard.rating/good "Dobrze" + :flashcard.rating/good-desc "Odpowiedź była poprawna, ale wymagała pewnego wysiłku umysłowego, by ją sobie przypomnieć。" + :flashcard.rating/hard "Trudne" + :flashcard.rating/hard-desc "Odpowiedź była poprawna, ale nie byliśmy jej pewni lub przypomnienie sobie jej zajęło zbyt dużo czasu." + + :flashcard.review/finished "Gotowe! 💯" + :flashcard.review/hide-answers "Ukryj odpowiedzi" + :flashcard.review/show-answers "Pokaż odpowiedzi" + :flashcard.review/show-clozes "Pokaż luki" + + :format/bold "Pogrubienie" + :format/code "Kod" + :format/highlight "Podświetlenie" + :format/italics "Kursywa" + :format/strikethrough "Przekreślenie" + + :graph/all-graphs "Wszystkie grafy" + :graph/already-exists-error "Graf '{1}' już istnieje. Spróbuj ponownie z inną nazwą." + :graph/as-png "jako PNG" + :graph/built-in-pages "Wbudowane strony" + :graph/charge-range "Zakres ładunku" + :graph/charge-strength "Siła ładunku" + :graph/click-to-search "Kliknij, aby wyszukać" + :graph/create-db "Utwórz graf DB" + :graph/create-error "Nie udało się utworzyć grafu" + :graph/create-new "Utwórz nowy graf" + :graph/created-before "Utworzono przed" + :graph/creating "Tworzenie grafu" + :graph/delete-local-action "Usuń lokalny graf" + :graph/delete-local-confirm-desc "Czy na pewno chcesz trwale usunąć graf \"{1}\" z Logseq?" + :graph/delete-server-action "Usuń z serwera" + :graph/delete-server-confirm-desc "Czy na pewno chcesz trwale usunąć graf \"{1}\" z naszego serwera?" + :graph/delete-warning "⚠️ Zwróć uwagę, że nie możemy odzyskać tego grafu po jego usunięciu. Upewnij się, że masz kopie zapasowe przed usunięciem." + :graph/diff "Git diff" + :graph/downloading "pobieranie" + :graph/encrypt-data-label "Szyfruj dane grafu" + :graph/excluded-pages "Wykluczone strony" + :graph/forces "Siły" + :graph/gc-success "Czyszczenie grafu zakończone pomyślnie!" + :graph/last-opened-at-label "Ostatnio otwarto: {1}" + :graph/leave-action "Opuść ten graf" + :graph/leave-confirm-desc "Czy na pewno chcesz opuścić ten graf?" + :graph/leave-error "Nie udało się opuścić grafu" + :graph/left "Opuszczono graf" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "link" "linków"))) + :graph/link-distance "Odległość linków" + :graph/local-graphs "Lokalne grafy" + :graph/n-hops-from-selected-nodes "N kroków od wybranych węzłów" + :graph/name-placeholder "nazwa twojego grafu" + :graph/nodes "Węzły" + :graph/orphan-pages "Strony osierocone" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "strona" "stron"))) + :graph/pause-simulation "Wstrzymaj symulację" + :graph/preparing "przygotowywanie" + :graph/refresh-remote-graphs "Odśwież zdalne grafy" + :graph/remote-graphs "Zdalne grafy" + :graph/removed "Usunięto wykres „{1}”" + :graph/removed-and-redirecting "Usunięto wykres „{1}”. Przekierowanie do wykresu „{2}”" + :graph/removed-from-sync "Graf usunięty z synchronizacji" + :graph/reset "Resetuj graf" + :graph/reset-forces "Resetuj siły" + :graph/search "Szukaj" + :graph/shared-graphs "Wspólne grafy" + :graph/updated-switching "Graf zaktualizowany. Przełączanie..." + :graph/use-sync-beta "Użyj Logseq Sync (testy beta)" + :graph/use-sync-label "Użyć Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Nie udało się obliczyć diagnostyki sumy kontrolnej grafu." + :graph.diagnostics/checksum-recomputed-success "Suma kontrolna przeliczona ponownie. Przeliczona: {1}, lokalna: {2}, zdalna: {3}. Pobrano {4}.edn z {5} blokami i atrybutami sumy kontrolnej {6}." + :graph.diagnostics/checksum-unavailable-warning "Nie można obliczyć diagnostyki sumy kontrolnej dla bieżącego grafu." + :graph.diagnostics/client-ops-export-failed-error "Nie udało się wyeksportować Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Eksport Client ops SQLite nie powiódł się: nieprawidłowy typ payloadu {1}." + :graph.diagnostics/client-ops-export-success "Wyeksportowano Client ops SQLite: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Nie znaleziono grafu." + + :graph.page/show-journals "Pokaż dzienniki" + :graph.page/title "Graf strony" + + :graph.switch/add-graph-action "Tak, dodaj nowy graf" + :graph.switch/empty-desc "Brak pasujących grafów. Chcesz dodać nowy?" + :graph.switch/prompt "Przełącz" + :graph.switch/select-prompt "Wybierz graf" + + :graph.validation/config-arweave-gateway-warning "nie jest już obsługiwane." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "nie jest już obsługiwane. Proszę użyć '/' i zgłoś do nas błędy." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "nie jest używany w grafach baz danych, ponieważ istnieje tylko tryb markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Walidacja wykryła {1} nieprawidłowy blok (bloków). Te bloki mogą być wadliwe. Próba naprawy nieprawidłowych bloków. Uruchom walidację ponownie, aby sprawdzić, czy zostały naprawione." + :graph.validation/name-reserved-characters-warning "Nazwa grafu nie może zawierać następujących znaków zastrzeżonych:" + :graph.validation/reserved-character-asterisk "gwiazdka" + :graph.validation/reserved-character-backslash "ukośnik wsteczny" + :graph.validation/reserved-character-colon "dwukropek" + :graph.validation/reserved-character-double-quote "podwójny cudzysłów" + :graph.validation/reserved-character-forward-slash "ukośnik" + :graph.validation/reserved-character-greater-than "większe niż" + :graph.validation/reserved-character-hash "kratka" + :graph.validation/reserved-character-less-than "mniejsze niż" + :graph.validation/reserved-character-pipe "kreska pionowa lub pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "znak zapytania" + :graph.validation/valid "Twój graf jest prawidłowy! {1}" + + :header/go-back "Wstecz" + :header/go-forward "Dalej" + :header/highlight-recent-blocks "Podświetl ostatnie bloki" + :header/highlight-recent-blocks-days-ago "Podświetl ostatnie bloki: {1} dni temu" + :header/more "Więcej" + :header/quit-highlight-recent-blocks "Zakończ podświetlanie ostatnich bloków" + :header/toggle-left-sidebar "Przełącz lewy panel" + + :help/about "O Logseq" + :help/about-title "O programie" + :help/ask-community "Zapytaj społeczność" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Referencja bloku" + :help/blog "Blog Logseq" + :help/bug "Zgłoś błąd na GitHub" + :help/changelog "Dziennik zmian" + :help/community-title "Społeczność" + :help/context-menu "Menu kontekstowe bloku" + :help/context-menu-action "Kliknięcie prawym przyciskiem na punktor" + :help/development-title "Rozwój" + :help/docs "Dokumentacja" + :help/feature "Prośba o funkcję" + :help/forum-community "Społeczność na forum" + :help/handbook "Podręcznik" + :help/learn-more "Dowiedz się więcej" + :help/markdown-syntax "Składnia Markdown" + :help/open-link-in-sidebar "Otwórz link w panelu bocznym" + :help/open-link-in-sidebar-action "Shift + kliknięcie odnośnika" + :help/privacy "Polityka prywatności" + :help/reference-autocomplete "Autouzupełnianie referencji bloku" + :help/release-notes "Informacje o wydaniu" + :help/roadmap "Mapa drogowa" + :help/search "Szukaj" + :help/slash-autocomplete "Autouzupełnianie poleceń /" + :help/start "Rozpocznij swoją przygodę z Logseq" + :help/submit-feedback "Prześlij opinię" + :help/support-forum "Forum wsparcia" + :help/terms "Warunki" + :help/terms-title "Warunki" + :help/usage-title "Użytkowanie" + + :help.handbook/chat-on-discord "Czatuj na Discord" + :help.handbook/chat-on-discord-desc "Zadawaj szybkie pytania, poznawaj innych użytkowników i ucz się nowych metod pracy." + :help.handbook/copy-topic-link "Kopiuj link do tematu" + :help.handbook/current-chapter "Bieżący rozdział" + :help.handbook/help-categories "Kategorie pomocy" + :help.handbook/home "Strona główna" + :help.handbook/link-copied "Link do podręcznika skopiowany!" + :help.handbook/monthly-posts "postów miesięcznie" + :help.handbook/next-chapter "Następny rozdział" + :help.handbook/popular-topics "Popularne tematy" + :help.handbook/prev-chapter "Poprzedni rozdział" + :help.handbook/resources-from "Zasoby z {1}" + :help.handbook/search-placeholder "Szukaj" + :help.handbook/shortcuts-count "{1} skrótów" + :help.handbook/sync "Synchronizacja" + :help.handbook/title "Podręcznik" + :help.handbook/topics "Tematy" + :help.handbook/users-online "użytkowników online" + :help.handbook/visit-the-forum "Odwiedź forum" + :help.handbook/visit-the-forum-desc "Dziel się opinią, proponuj funkcje i prowadź pogłębione rozmowy." + :help.handbook/writing-mode "Tryb pisania (podgląd wkrótce)" + + :help.shortcuts/desc "Pokaż skróty i wskazówki" + :help.shortcuts/label "Skróty klawiszowe" + :help.shortcuts/shortcut-column "Skrót" + :help.shortcuts/title "Skróty klawiszowe" + :help.shortcuts/triggers "Akcja" + + :icon/emojis-count "Emoji ({1})" + :icon/icons-count "Ikony ({1})" + :icon/matched-count "Dopasowano ({1})" + :icon/search-all "Szukaj wszędzie" + :icon/search-emojis "Szukaj emoji" + :icon/search-icons "Szukaj ikon" + :icon/tab-all "Wszystkie" + :icon/tab-emojis "Emoji" + :icon/tab-icons "Ikony" + + :import/all-tags "Importuj wszystkie tagi" + :import/asset-too-large-warning "Pominięto kopiowanie zasobu {1}, ponieważ przekracza limit 100 MB." + :import/assets-import-partial "{1}/{2} zasobów zaimportowano. Szczegóły w konsoli." + :import/assets-imported "{1} zasobów zaimportowano." + :import/assets-skipped "{1} zasobów pominięto. Szczegóły w konsoli." + :import/block-icons-cannot-be-imported "Ikony bloków nie mogą być zaimportowane. Zaimportuj ręcznie w bloku {1}." + :import/cannot-import-block-into-non-block-entity "Nie można zaimportować bloku do encji niebędącej blokiem." + :import/db-edn-desc "Zaimportuj eksport EDN grafu DB do nowego grafu DB" + :import/db-edn-title "EDN do grafu DB" + :import/debug-transit-desc "Zaimportuj plik debug transit do nowego grafu DB" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Domyślne zachowanie grafu DB" + :import/empty-graph-name "Nazwa grafu nie może być pusta." + :import/extract-inline-code-snippets "Wyodrębnij fragmenty kodu jako podblokami" + :import/file-finished "Import zakończony!" + :import/file-to-db-desc "Zaimportuj folder grafu Logseq opartego na plikach do nowego grafu DB" + :import/file-to-db-title "Plik do grafu DB" + :import/graph-name-conflict "Graf o tej nazwie już istnieje. Wybierz inną nazwę!" + :import/graph-name-placeholder "Nazwa grafu" + :import/ignored-assets "{1} zasobów pominięto podczas importu. Szczegóły w konsoli JavaScript." + :import/ignored-files "{1} plików pominięto podczas importu. Szczegóły w konsoli JavaScript." + :import/ignored-properties "{1} właściwości pominięto podczas importu" + :import/ignored-properties-fix "Aby naprawić typ właściwości, zmień wartość na poprawny typ i ponów import" + :import/invalid-blocks-detected "{1} nieprawidłowych bloków wykryto podczas importu. Interakcja może nie działać. Szczegóły w konsoli JavaScript." + :import/invalid-edn-file "Podany plik EDN jest nieprawidłowy. Popraw i spróbuj ponownie." + :import/loading "Importowanie" + :import/logseq-config-missing "Błąd importu: graf Logseq nie zawiera pliku 'logseq/config.edn'." + :import/new-graph-name "Nowa nazwa grafu" + :import/notes "Importuj notatki" + :import/org-files-imported "{1} plików Org zaimportowano jako Markdown. Wsparcie Org zostanie dodane później." + :import/page-icons-cannot-be-imported "Ikony stron nie mogą być zaimportowane. Zaimportuj ręcznie na stronie {1}." + :import/properties-case-insensitive-commas "Nazwy właściwości (bez rozróżniania wielkości liter, oddzielone przecinkami)" + :import/property-classes-placeholder "np. type" + :import/property-import-manually "Ta właściwość musi być zaimportowana ręcznie" + :import/property-parent-classes-placeholder "np. parent" + :import/property-type-mismatch "Wartość właściwości ma typ {1}, nie {2}" + :import/property-value-tag-parents "Importuj rodziców tagów z wartości właściwości" + :import/property-value-tags "Importuj dodatkowe tagi z wartości właściwości" + :import/remove-inline-tags "Usuń tagi inline" + :import/select-edn-or-json "Wybierz plik EDN lub JSON." + :import/specific-tags "Importuj konkretne tagi" + :import/sqlite-and-assets-desc "Zaimportuj plik zip zawierający db.sqlite i folder zasobów" + :import/sqlite-and-assets-title "SQLite + zasoby (.zip)" + :import/submitted-edn-invalid "Podane dane EDN są nieprawidłowe! Popraw i spróbuj ponownie." + :import/successful "Import zakończony pomyślnie!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tagi (bez rozróżniania wielkości liter)" + :import/title "Import" + :import/unexpected-error "Nieoczekiwany błąd: {1}" + :import/zip-import-error "Import zip nie powiódł się: {1}" + :import/zip-missing-db-sqlite "ZIP nie zawiera db.sqlite" + + :journal/add-blocks-to-today-success "Bloki dodane dzisiaj" + :journal/page-cant-convert-warning "Ta strona nie jest stroną dziennika." + :journal/parse-date-to-name-error "Nie udało się przeanalizować nazwy dziennika" + + :journal.default-query/doing "W TRAKCIE" + :journal.default-query/todo "DO ZROBIENIA" + + :keymap/all "Wszystkie" + :keymap/already-bound "Skrót już przypisany" + :keymap/also-used-for-action "Również używany dla {1}" + :keymap/also-used-for-action-in-context "Również używany dla {1} W kontekście {2}" + :keymap/clear "Wyczyść" + :keymap/clear-keystroke-filter "Wyczyść filtr klawiszy" + :keymap/clear-search "Wyczyść wyszukiwanie" + :keymap/custom "Niestandardowe" + :keymap/deactivates-chord "Dezaktywuje" + :keymap/deactivates-chords "Dezaktywuje {1} kombinacji skrótów" + :keymap/disabled "Wyłączone" + :keymap/esc-is-reserved "Esc jest zarezerwowany" + :keymap/hint-cancel "Anuluj" + :keymap/hint-close "Zamknij" + :keymap/hint-reassign "Przypisz ponownie" + :keymap/hint-remove "Usuń" + :keymap/keystroke-filter "Filtr wg naciśnięcia" + :keymap/no-matching-shortcuts "Brak pasujących skrótów" + :keymap/press-a-shortcut "Naciśnij skrót klawiszowy" + :keymap/press-keys-to-filter "Naciśnij klawisze aby filtrować" + :keymap/reassign "Przypisz ponownie" + :keymap/reassign-tooltip "Przypisz ponownie skrót tego działania" + :keymap/reassigned-from "Przypisano ponownie z {1}" + :keymap/refresh-all "Odśwież wszystko" + :keymap/remove-binding "Usuń przypisanie" + :keymap/remove-filter "Usuń filtr" + :keymap/reset "Resetuj" + :keymap/reset-to-default "Resetuj do domyślnych" + :keymap/search-by-keys "Szukaj wg klawiszy" + :keymap/search-placeholder "Szukaj skrótów…" + :keymap/shortcut-added "Skrót dodany" + :keymap/shortcut-removed "Skrót usunięty" + :keymap/toggle-categories-pane "Przełącz panel kategorii" + :keymap/undo "Cofnij" + :keymap/unset "Nie ustawione" + :keymap/used-by-action "Używany przez {1}" + + :library/add-existing-pages "Dodaj istniejące strony do Biblioteki" + :library/add-pages "Dodaj strony" + :library/title "Biblioteka" + + :mobile/camera-access-denied "Dostęp do aparatu jest zablokowany. Włącz go w Ustawieniach > Logseq." + :mobile/microphone-access-denied "Dostęp do mikrofonu jest zablokowany. Włącz go w Ustawieniach > Logseq." + + :mobile.header/actions "Akcje" + :mobile.header/create-graph "Utwórz graf" + :mobile.header/delete-block-confirm-desc "Usunąć ten blok?" + :mobile.header/delete-page-confirm-desc "Usunąć tę stronę?" + + :mobile.intent/file-options "Opcje pliku" + :mobile.intent/open-with-app "Otwórz plik w ulubionej aplikacji" + :mobile.intent/select-option-prompt "Wybierz akcję do wykonania" + :mobile.intent/share "Udostępnij" + + :mobile.log/all "Wszystkie" + :mobile.log/errors-only "Tylko błędy" + :mobile.log/full "Pełny" + :mobile.log/new-first "Najnowsze najpierw" + :mobile.log/old-first "Najstarsze najpierw" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Konto" + :mobile.settings/check-log "Dziennik" + :mobile.settings/discord-community "Społeczność Discord" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Zgłoś błąd" + :mobile.settings/revision "Rewizja" + :mobile.settings/theme "Motyw" + :mobile.settings/version "Wersja" + + :mobile.share/file-import-error "Nie udało się zaimportować pliku" + :mobile.share/media-import-error "Nie udało się zaimportować mediów" + :mobile.share/unsupported-content-warning "Parsowanie bieżącej udostępnionej treści nie jest obsługiwane. Zgłoś poniższe kody na {1}. Wkrótce się tym zajmiemy." + :mobile.share/unsupported-import-type "Import pliku {1} nie jest obsługiwany. Możesz to zgłosić na {2}. Wkrótce się tym zajmiemy." + + :mobile.tab/capture "Przechwytywanie" + :mobile.tab/go-to "Przejdź do" + :mobile.tab/graphs "Grafy" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Kopiuj odniesienie" + :mobile.toolbar/copy-url "Kopiuj URL" + :mobile.toolbar/hide "Ukryj" + :mobile.toolbar/indent "Wcięcie" + :mobile.toolbar/outdent "Cofnij wcięcie" + :mobile.toolbar/photo "Zdjęcie" + :mobile.toolbar/redo "Ponów" + :mobile.toolbar/reference "Odniesienie" + :mobile.toolbar/slash "Ukośnik" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Cofnij" + :mobile.toolbar/unselect "Odznacz" + + :nav/all-files "Wszystkie pliki" + :nav/all-journals "Wszystkie dzienniki" + :nav/appearance "Wygląd" + :nav/assets "Zasoby" + :nav/cannot-go-to-internal-page "Nie można przejść do strony wewnętrznej" + :nav/flashcards "Fiszki" + :nav/graph "Graf" + :nav/graph-view "Widok grafu" + :nav/help "Pomoc" + :nav/home "Strona główna" + :nav/invalid-jump-error "Nieprawidłowy skok" + :nav/journals "Dzienniki" + :nav/plugins "Wtyczki" + :nav/search "Szukaj" + :nav/settings "Ustawienia" + :nav/skip-to-main-content "Pomiń do głównej zawartości" + :nav/tasks "Zadania" + :nav/themes "Motywy" + + :nav.all-pages/label "Wszystkie strony" + :nav.all-pages/title "Wszystkie strony" + + :node/built-in-cant-delete-error "Wbudowanych elementów nie można usunąć." + :node/new "Nowy węzeł" + + :notification/clear-all "Wyczyść wszystkie" + :notification/copied "Skopiowano" + + :onboarding.import/desc "Opis importu" + :onboarding.import/sqlite-desc "Import z bazy danych SQLite" + :onboarding.import/title "Import" + + :onboarding.import-option/desc "Możesz importować dane z innych aplikacji" + :onboarding.import-option/title "Import danych" + + :onboarding.setup/desc "Przestrzeń robocza dla Twojej wiedzy" + :onboarding.setup/title (fn [] ["Witaj w " [:strong "Logseq!"]]) + + :page/add-to-favorites "Dodaj do ulubionych" + :page/added-tag-to-node "Dodano tag „{1}” do „{2}”" + :page/backlinks "Linki zwrotne" + :page/clear "Wyczyść" + :page/clear-local-storage-desc "Spowoduje to usunięcie drobnych preferencji, takich jak preferencja ciemnego/jasnego motywu." + :page/cleared "Wyczyszczono" + :page/contents "Treść" + :page/convert-to-tag "Konwertuj na tag" + :page/copy-url "Kopiuj adres URL strony" + :page/create "Utwórz nową stronę" + :page/created-at "Utworzony" + :page/current-graph-as-sqlite-db "bieżący graf jako baza danych SQLite" + :page/default-query-error "Błąd domyślnego zapytania:" + :page/delete "Usuń stronę" + :page/go-back-home "Wróć na stronę główną" + :page/hide-properties "Ukryj właściwości" + :page/local-storage "pamięć lokalna" + :page/logseq-is-having-a-problem "Logseq ma problem. Żeby przywrócić go do działającego stanu wykonaj po kolei następujące bezpieczne kroki:" + :page/make-private "Oznacz jako prywatną" + :page/make-public "Oznacz jako publiczną" + :page/moved-to-recycle "Węzeł został przeniesiony do Kosza" + :page/name "Nazwa strony" + :page/no-page-found-to-copy "Nie znaleziono strony do skopiowania" + :page/not-found "Nie znaleziono strony" + :page/not-found-desc "Ups! Strona, której szukasz, nie istnieje." + :page/not-found-title "Nie znaleziono strony" + :page/not-found-warning "Nie znaleziono strony" + :page/open-all-graphs-desc "Możesz również przejść do {{All graphs}}, aby przełączyć się na inny graf." + :page/open-issue-desc "Jeśli te kroki rozwiązywania problemów nie pomogły, {{open an issue}}." + :page/open-properties "Otwórz właściwości" + :page/rebuild "Przebuduj" + :page/relaunch "Uruchom ponownie" + :page/relaunch-desc "Zamknij i ponownie otwórz aplikację." + :page/scheduled-and-deadline "Zaplanowane i terminy" + :page/search-index "indeks wyszukiwania" + :page/send-db-for-debugging "Możesz wysłać go na help@logseq.com w celu debugowania." + :page/something-went-wrong "Coś poszło nie tak" + :page/step "Krok {1}" + :page/the-app "aplikacja" + :page/try "Spróbuj" + :page/unfavorite "Usuń z ulubionych" + :page/unknown "Nieznana strona" + :page/updated-at "Zaktualizowany" + + :page.convert/block-parent-not-page "Nie można przekonwertować bloku. Rodzic nie jest stroną." + :page.convert/cant-be-block "Strony „{1}” nie można przekształcić w blok." + :page.convert/cant-be-block-has-children "Strony „{1}” nie można przekształcić w blok, ponieważ zawiera ona strony podrzędne." + :page.convert/cant-be-block-move-first "Strony \"{1}\" nie można zamienić na blok, proszę najpierw przenieść ją na inną stronę." + :page.convert/page-to-tag-action "Zamień \"{1}\" na tag" + :page.convert/page-to-tag-built-in "Wbudowane strony nie mogą być tagami" + :page.convert/page-to-tag-duplicate "Znacznik o nazwie „{1}” już istnieje." + :page.convert/page-to-tag-namespaced "Strony z przestrzenią nazw nie mogą być tagami" + :page.convert/property-value-to-page "Nie można przekonwertować wartości właściwości na stronę." + :page.convert/tag-to-page-action "Konwertuj tag na stronę" + :page.convert/tag-to-page-built-in "Wbudowane tagi nie mogą być stronami" + :page.convert/tag-to-page-confirm-desc "Konwersja tagu na stronę spowoduje także usunięcie jego właściwości oraz samego tagu ze wszystkich węzłów, które są nim oznaczone. Czy chcesz kontynuować?" + :page.convert/tag-to-page-duplicate "Strona o nazwie „{1}” już istnieje." + :page.convert/tag-to-page-has-children "Tag ma elementy podrzędne i nie może być przekonwertowany" + + :page.delete/batch-confirm-title "Czy na pewno chcesz usunąć te strony? Właściwości i tagi zostaną trwale usunięte, a strony trafią do Kosza." + :page.delete/confirm-title "Czy na pewno chcesz usunąć tę stronę?" + :page.delete/permanent-confirm-title "Czy na pewno chcesz trwale usunąć tę stronę?" + :page.delete/success "Strona „{1}” została pomyślnie usunięta!" + :page.delete/total "Łącznie: {1}" + :page.delete/warning "Treść tych stron została usunięta, ale nie udało się ich usunąć: {1}. Więcej szczegółów znajdziesz w konsoli JavaScript." + + :page.validation/cant-set-built-in-tags "Nowa strona nie może ustawić wbudowanych tagów: {1}" + :page.validation/duplicate "Istnieje już inna strona o nazwie „{1}” dla tagów: {2}." + :page.validation/name-blank "Nazwa strony nie może być pusta." + :page.validation/name-no-hash "Nazwa strony nie może zawierać #" + :page.validation/name-no-slash "Nazwa strony nie może zawierać /." + :page.validation/parents-must-be-pages "Rodzice stron muszą być stronami." + + :pdf/annotations-page "Strona adnotacji" + :pdf/area-highlight-shortcut "Zaznaczenie obszaru ({1})" + :pdf/auto-fit "Automatyczne dopasowanie" + :pdf/auto-open-context-menu "Automatycznie otwieraj menu kontekstowe" :pdf/copy-ref "Kopiuj referencję" :pdf/copy-text "Kopiuj tekst" + :pdf/corrupted-file-error "Błąd: {1}\nCzy ten plik .pdf jest uszkodzony?\nSprawdź w zewnętrznej przeglądarce PDF." + :pdf/doc-metadata "Meta dane dokumentu" + :pdf/enter-to-search "Enter, aby wyszukać" + :pdf/find-results "{1} z {2} dopasowań (\"{3}\")" + :pdf/generic-error "Błąd: {1}\n{2}\nSprawdź zasób pliku PDF." + :pdf/highlight-mode "Tryb podświetlania" + :pdf/highlights "Podświetlenia" + :pdf/hl-block-colored "Kolorowa etykieta dla podkreślonego bloku" :pdf/linked-ref "Połączone referencje" + :pdf/load-highlights-file-error "Błąd: nie udało się załadować pliku wyróżnień: \"{1}\". \n{2}" + :pdf/missing-file-error "Błąd: {1}\n Czy to jest prawidłowa ścieżka?" + :pdf/more-settings "Więcej ustawień" + :pdf/no-outlines "Brak konspektu" + :pdf/not-found "Nie znaleziono." + :pdf/open-in-app-window "Otwórz w oknie aplikacji" + :pdf/open-in-external-window "Otwórz w zewnętrznym oknie" + :pdf/outline "Konspekt" + :pdf/page-label "Strona {1}" + :pdf/password-protected-desc "Ten dokument jest chroniony hasłem. Wprowadź hasło:" + :pdf/password-required "Wymagane hasło" + :pdf/search "Szukaj" + :pdf/search-placeholder "szukaj" :pdf/toggle-dashed "Styl kreskowany dla podświetlenia obszaru" + :pdf/viewer "przeglądarka PDF" + :pdf/zoom-in "Powiększ" + :pdf/zoom-out "Pomniejsz" - :updater/new-version-install "Nowa wersja została ściągnięta." - :updater/quit-and-install "Uruchom ponownie, aby zainstalować" + :plugin/all "Wszystkie" + :plugin/auto-update-check "Automatycznie sprawdzaj aktualizacje" + :plugin/auto-update-check-feedback "Automatyczne sprawdzanie aktualizacji: {1}!" + :plugin/check-all-updates "Sprawdź wszystkie aktualizacje" + :plugin/check-update "Sprawdź aktualizację" + :plugin/checked "Sprawdzono" + :plugin/checking-for-updates "Sprawdzanie aktualizacji" + :plugin/contribute "✨ Napisz i prześlij nowy plugin" + :plugin/custom-js-alert "Wykryto plik custom.js, czy chcesz go wykonać? Ze względów bezpieczeństwa, nie rekomendujemy wykonywania tego pliku, jeżeli nie znasz jego zawartości." + :plugin/date-added "Data dodania" + :plugin/delete-alert "Czy na pewno chcesz usunąć plugin [{1}]?" + :plugin/disable-for-performance-feedback "Wtyczka {1} jest wyłączona." + :plugin/disable-now "Wyłącz teraz" + :plugin/disabled "Wyłączony" + :plugin/does-not-support-db "Nie obsługuje grafów DB" + :plugin/downloads "Pobierania" + :plugin/empty "Nic nie znaleziono." + :plugin/enabled "Włączony" + :plugin/existed-package "Istniejący pakiet wtyczek ({1})." + :plugin/fatal-error "Błąd krytyczny: {1}" + :plugin/found-n-updates "{1} aktualizacji znaleziono" + :plugin/found-updates "Znaleziono aktualizacje" + :plugin/install "Zainstaluj" + :plugin/install-error "Instalacja nie powiodła się: {1}\n{2}" + :plugin/installed "Zainstalowany" + :plugin/installed-plugin "Zainstalowana wtyczka: {1}" + :plugin/installing "Instaluję" + :plugin/invalid-github-repo-url "Nieprawidłowy URL repozytorium GitHub" + :plugin/invalid-package "Nieprawidłowy pakiet" + :plugin/invalid-plugins-edn "Nieprawidłowy plugins.edn" + :plugin/list-of-updates "Lista aktualizacji" + :plugin/load-from-web-url "Załaduj z URL" + :plugin/load-plugin-indicator "Ładowanie wtyczki: {1}..." + :plugin/load-unpacked "Załaduj rozpakowany plugin" + :plugin/loading-indicator "Ładowanie" + :plugin/malformed-plugins-edn "Niepoprawny plugins.edn" + :plugin/marketplace "Sklep z wtyczkami" + :plugin/new-registered "Nowa wtyczka zarejestrowana" + :plugin/no-settings-schema "Brak schematu ustawień!" + :plugin/not-installed "Nie zainstalowany" + :plugin/open-logseq-dir "Otwórz folder Logseq" + :plugin/open-package "Otwórz paczkę" + :plugin/open-preferences "Otwórz preferencje" + :plugin/open-settings "Otwórz ustawienia" + :plugin/perf-tip "Ta wtyczka {1} ładuje się zbyt długo, wpływając na czas uruchamiania aplikacji i potencjalnie powodując błędy ładowania innych wtyczek." + :plugin/popular "Popularne" + :plugin/proxy-check-success "Sukces! Stan {1} za {2}ms." + :plugin/readme-empty-warning "Brak treści README" + :plugin/refresh-lists "Odśwież listy" + :plugin/reload "Przeładuj" + :plugin/remote-error "Błąd zdalny: {1}" + :plugin/report-modal-desc "Jeśli jakakolwiek wtyczka jest niedostępna lub uważasz, że zawiera złośliwy kod, wyślij wiadomość e-mail na {1}. Wymień nazwę wtyczki i adres URL jej repozytorium GitHub. Zespół Logseq zwykle odpowiada w ciągu jednego dnia roboczego." + :plugin/report-security "Zgłoś problem bezpieczeństwa" + :plugin/restart "Uruchom ponownie" + :plugin/search-plugin "Szukaj wtyczki" + :plugin/security-warning "Ostrzeżenie bezpieczeństwa" + :plugin/setting-not-handled "#Nieobsługiwane# {1}" + :plugin/settings-schema-error "Błąd schematu ustawień!" + :plugin/stars "Gwiazdki" + :plugin/supports-db "Wsparcie DB" + :plugin/title "Tytuł ({1})" + :plugin/uninstall "Odinstaluj" + :plugin/unpacked "Rozpakowany" + :plugin/unpacked-tips "Wybierz katalog z pluginem" + :plugin/up-to-date "Jest aktualne {1}" + :plugin/update "Zaktualizuj" + :plugin/update-all-selected "Aktualizuj wszystkie zaznaczone" + :plugin/update-all-success "Wszystkie wtyczki zaktualizowane" + :plugin/update-available "Aktualizacja dostępna" + :plugin/update-plugin "Aktualizacja wtyczki: {1} - {2}" + :plugin/updates-downloading "Pobieranie aktualizacji" + :plugin/updating "Aktualizuję" + + :plugin.install-from-file/menu-title "Zainstaluj z pliku plugins.edn" + :plugin.install-from-file/notice "Następujące pluginy zastąpią twoje pluginy:" + :plugin.install-from-file/success "Wszystkie pluginy zainstalowane!" + :plugin.install-from-file/title "Zainstaluj pluginy z pliku plugins.edn" + + :plugin.install-from-web-url/effect-label "efekt" + :plugin.install-from-web-url/repo-url-placeholder "URL repozytorium GitHub" + :plugin.install-from-web-url/supports-note "Adresy URL obsługują zarówno repozytoria GitHub, jak i lokalne serwery deweloperskie. (Na przykład: {1}, {2})" + :plugin.install-from-web-url/theme-label "motyw" + + :plugin.package-config/detach-desc "Usunięcie jedynie odłącza wtyczkę od Logseq i pozostawia folder źródłowy bez zmian." + :plugin.package-config/parse-error "Nie udało się przeanalizować konfiguracji pakietu wtyczki." + :plugin.package-config/remove-error "Nie udało się usunąć uszkodzonej wtyczki." + :plugin.package-config/remove-external-success "Usunięto uszkodzoną wtyczkę z listy wtyczek." + :plugin.package-config/remove-installed-success "Usunięto uszkodzoną wtyczkę \"{1}\"." + + :plugin.proxy/direct "Bezpośredni" + :plugin.proxy/system "System" + :plugin.proxy/test-url "Testuj URL" + :plugin.proxy/testing "Testowanie" + + :plugin.settings/edit-settings-json "Edytuj settings.json" + :plugin.settings/exit-code-mode "Wyjdź z trybu kodu" + :plugin.settings/title "Ustawienia wtyczek" + + :plugin.themes/default-desc "Domyślny {1} motyw Logseq." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} motywy" + :plugin.themes/light-and-dark "jasne & ciemne motywy" + + :profiler/input-fn-placeholder "wpisz nazwę funkcji tutaj" + :profiler/unregister "Wyrejestruj" + + :property/add-choice "Dodaj opcję" + :property/add-choices "Dodaj opcje" + :property/add-description "Dodaj opis" + :property/add-new "Dodaj właściwość" + :property/add-or-change "Dodaj lub zmień właściwość" + :property/available-choices "Dostępne opcje" + :property/change-tooltip "Zmień {1}" + :property/checkbox-state-mapping "Mapowanie stanów pola wyboru" + :property/children-count "Dzieci ({1})" + :property/choices-count "{1} możliwości wyboru" + :property/choose-tag "Wybierz tag" + :property/choose-tags "Wybierz tagi" + :property/clear-value "Wyczyść" + :property/configure "Konfiguruj" + :property/convert-page-to-property "Zamień \"{1}\" na właściwość" + :property/create-error "Nie udało się utworzyć właściwości." + :property/default-value "Wartość domyślna" + :property/delete-from-node "Usuń z węzła" + :property/delete-from-node-confirm "Usunąć tę właściwość z węzła?" + :property/delete-from-tag "Usuń z tagu" + :property/delete-from-tag-confirm "Usunąć tę właściwość z tagu?" + :property/description-placeholder "Wpisz opis" + :property/drag-to-reorder "Przeciągnij aby zmienić kolejność" + :property/existing-values "Istniejące wartości" + :property/go-to-this-property "Przejdź do strony właściwości" + :property/hidden-properties "Ukryte właściwości" + :property/hide-by-default "Ukryj domyślnie" + :property/hide-choice-for-tag "Ukryj opcję dla tagu" + :property/hide-empty-value "Ukryj puste wartości" + :property/hide-for-tag "Ukryj dla #{1}" + :property/hide-hidden-choices "Ukryj ukryte opcje" + :property/map-checked-to "Mapuj zaznaczone na" + :property/map-unchecked-to "Mapuj odznaczone na" + :property/more-settings "Więcej ustawień" + :property/multiple-values "Wiele wartości" + :property/multiple-values-confirm "Włączyć wiele wartości?" + :property/name "Nazwa" + :property/name-placeholder "Nazwa właściwości" + :property/nodes-with-property "Węzły z właściwością" + :property/overdue "Zaległe" + :property/private-built-in-not-usable "Prywatna wbudowana właściwość niedostępna" + :property/select-choice "Wybierz opcję" + :property/select-property-placeholder "Wybierz właściwość" + :property/select-type-placeholder "Wybierz typ właściwości" + :property/self-reference "Odwołanie do siebie" + :property/set-default-choice "Ustaw domyślną opcję" + :property/set-default-value "Ustaw wartość domyślną" + :property/set-icon "Ustaw ikonę" + :property/set-placeholder "Ustaw {1}" + :property/set-property "Ustaw właściwość" + :property/set-tags "Ustaw tagi" + :property/set-value "Ustaw wartość" + :property/show-as-checkbox-on-node "Pokaż jako pole wyboru na węźle" + :property/show-as-checkbox-on-tagged-nodes "Pokaż jako pole wyboru na węzłach z tagiem" + :property/show-hidden-choices "Pokaż ukryte opcje" + :property/skip-choosing-tag "Pomiń wybór tagu" + :property/specify-node-tags "Określ tagi węzła" + :property/title-placeholder "Tytuł" + :property/type "Typ" + :property/type-change-warning "Zmiana typu właściwości czyści niektóre konfiguracje właściwości." + :property/type-checkbox "Pole wyboru" + :property/type-date "Data" + :property/type-datetime "Data/Czas" + :property/type-locked-help "Typ zablokowany" + :property/type-node "Węzeł" + :property/type-number "Liczba" + :property/type-text "Tekst" + :property/type-url "URL" + :property/ui-position "Pozycja w UI" + :property/ui-position-block-below "Pod blokiem" + :property/ui-position-block-left "Po lewej bloku" + :property/ui-position-block-right "Po prawej bloku" + :property/ui-position-properties "Właściwości" + :property/unset-property "Usuń właściwość" + :property/update-success "Zaktualizowano" + + :property.built-in/alias "Alias" + :property.built-in/asset "Zasób" + :property.built-in/asset-align "Wyrównanie zasobu" + :property.built-in/asset-checksum "Suma kontrolna pliku" + :property.built-in/asset-external-file-name "Zewnętrzna nazwa pliku" + :property.built-in/asset-external-url "Zewnętrzny URL" + :property.built-in/asset-height "Wysokość obrazu" + :property.built-in/asset-last-visit-page "Ostatnio odwiedzana strona" + :property.built-in/asset-remote-metadata "Zdalne metadane pliku" + :property.built-in/asset-resize-metadata "Metadane zmiany rozmiaru zasobu" + :property.built-in/asset-size "Rozmiar pliku" + :property.built-in/asset-type "Typ pliku" + :property.built-in/asset-width "Szerokość obrazu" + :property.built-in/background-color "Kolor tła" + :property.built-in/built-in "Wbudowany?" + :property.built-in/checkbox-display-properties "Właściwości wyświetlane jako pole wyboru" + :property.built-in/choice-checkbox-state "Stan pola wyboru opcji" + :property.built-in/choice-classes "Klasy opcji" + :property.built-in/choice-exclusions "Wykluczenia opcji" + :property.built-in/class-bidirectional-property-title "Tytuł właściwości dwukierunkowej" + :property.built-in/class-enable-bidirectional "Włącz właściwości dwukierunkowe" + :property.built-in/class-extends "Rozszerza" + :property.built-in/class-hide-from-node "Ukryj z węzła" + :property.built-in/class-properties "Właściwości tagu" + :property.built-in/classes "Klasy właściwości" + :property.built-in/closed-value-property "Właściwość wartości zamkniętej" + :property.built-in/code-lang "Tryb kodu" + :property.built-in/collapsed "Węzeł zwinięty?" + :property.built-in/created-at "Węzeł utworzony o" + :property.built-in/created-by-ref "Węzeł utworzony przez" + :property.built-in/created-from-property "Utworzono z właściwości" + :property.built-in/deadline "Termin" + :property.built-in/default-value "Wartość domyślna" + :property.built-in/deleted-at "Usunięto o" + :property.built-in/deleted-by-ref "Usunięto przez" + :property.built-in/description "Opis" + :property.built-in/enable-history "Włącz historię właściwości" + :property.built-in/exclude-from-graph-view "Wykluczono z widoku grafu?" + :property.built-in/fsrs-due "Termin" + :property.built-in/fsrs-state "Stan" + :property.built-in/heading "Nagłówek" + :property.built-in/hide "Ukryj tę właściwość lub stronę" + :property.built-in/hide-empty-value "Ukryj pustą wartość" + :property.built-in/history-block "Blok historii" + :property.built-in/history-property "Właściwość historii" + :property.built-in/history-ref-value "Wartość historii" + :property.built-in/history-scalar-value "Wartość skalarna historii" + :property.built-in/icon "Ikona" + :property.built-in/journal-day "Data dziennika" + :property.built-in/journal-title-format "Format tytułu" + :property.built-in/link "Węzeł linkuje do" + :property.built-in/linked-references-excludes "Wykluczone odniesienia" + :property.built-in/linked-references-includes "Uwzględnione odniesienia" + :property.built-in/ls-type "Typ LS" + :property.built-in/node-display-type "Typ wyświetlania węzła" + :property.built-in/order "Kolejność węzła" + :property.built-in/order-list-type "Typ listy" + :property.built-in/page "Strona węzła" + :property.built-in/page-tags "Tagi strony" + :property.built-in/parent "Rodzic węzła" + :property.built-in/priority "Priorytet" + :property.built-in/public "Właściwość publiczna?" + :property.built-in/publish-published-url "Opublikowany URL" + :property.built-in/publishing-public "Publikowanie publiczne?" + :property.built-in/query "Zapytanie" + :property.built-in/reaction-emoji-id "Emoji reakcji" + :property.built-in/reaction-target "Cel reakcji" + :property.built-in/recycle-original-order "Oryginalna kolejność z kosza" + :property.built-in/recycle-original-page "Oryginalna strona z kosza" + :property.built-in/recycle-original-parent "Oryginalny rodzic z kosza" + :property.built-in/refs "Odniesienia węzła" + :property.built-in/repeat-checked-property "Powtarzana sprawdzana właściwość" + :property.built-in/repeat-recur-frequency "Częstotliwość powtarzania" + :property.built-in/repeat-recur-unit "Jednostka powtarzania" + :property.built-in/repeat-repeated "Węzeł się powtarza?" + :property.built-in/repeat-temporal-property "Powtarzana właściwość czasowa" + :property.built-in/scalar-default-value "Domyślna wartość typu niereferencyjnego" + :property.built-in/scheduled "Zaplanowane" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Odniesienie do dużego tytułu bloku w zdalnym magazynie obiektów" + :property.built-in/table-filters "Filtry widoku" + :property.built-in/table-hidden-columns "Ukryte kolumny widoku" + :property.built-in/table-ordered-columns "Uporządkowane kolumny widoku" + :property.built-in/table-pinned-columns "Przypięte kolumny widoku tabeli" + :property.built-in/table-sized-columns "Ustawienia kolumn widoku" + :property.built-in/table-sorting "Sortowanie widoku" + :property.built-in/tags "Tagi" + :property.built-in/template-applied-to "Zastosuj szablon do tagów" + :property.built-in/title "Tytuł węzła" + :property.built-in/type "Typ właściwości" + :property.built-in/ui-position "Pozycja właściwości" + :property.built-in/updated-at "Węzeł zaktualizowany o" + :property.built-in/used-template "Użyty szablon" + :property.built-in/user-avatar "Awatar użytkownika" + :property.built-in/user-email "E-mail użytkownika" + :property.built-in/user-name "Nazwa użytkownika" + :property.built-in/value "Wartość właściwości" + :property.built-in/view-context "Kontekst widoku właściwości" + :property.built-in/view-feature-type "Typ funkcji widoku" + :property.built-in/view-for "Ten widok należy do" + :property.built-in/view-group-by-property "Grupuj widok wg właściwości" + :property.built-in/view-sort-groups-by-property "Sortuj grupy widoku wg" + :property.built-in/view-sort-groups-desc "Sortuj grupy widoku malejąco" + :property.built-in/view-type "Typ widoku" + + :property.choice/already-exists "Opcja już istnieje." + :property.choice/cant-delete-built-in "Wbudowanej opcji nie można usunąć." + :property.choice/invalid "Nieprawidłowy wybór „{1}” dla tej właściwości: {2}" + + :property.color/blue "niebieski" + :property.color/green "zielony" + :property.color/purple "fioletowy" + :property.color/red "czerwony" + :property.color/yellow "żółty" + + :property.priority/high "Wysoki" + :property.priority/low "Niski" + :property.priority/medium "Średni" + :property.priority/urgent "Pilny" + + :property.repeat/date "Data powtarzania" + :property.repeat/datetime "Data i godzina powtarzania" + :property.repeat/every "Co" + :property.repeat/is-label "jest:" + :property.repeat/task "Powtarzaj zadanie" + :property.repeat/when "Kiedy" + + :property.repeat-recur-unit/day "Dzień" + :property.repeat-recur-unit/hour "Godzina" + :property.repeat-recur-unit/minute "Minuta" + :property.repeat-recur-unit/month "Miesiąc" + :property.repeat-recur-unit/week "Tydzień" + :property.repeat-recur-unit/year "Rok" + + :property.status/backlog "Backlog" + :property.status/canceled "Anulowane" + :property.status/doing "W trakcie" + :property.status/done "Gotowe" + :property.status/in-review "W przeglądzie" + :property.status/todo "Do zrobienia" + + :property.validation/cant-convert-to-number "Nie można przekonwertować „{1}” na liczbę." + :property.validation/cant-remove-required "Wymaganej właściwości nie można usunąć." + :property.validation/cant-set-self-value "Nie można ustawić jako własnej wartości właściwości." + :property.validation/duplicate "Właściwość '{1}' już istnieje." + :property.validation/invalid-name "To jest nieprawidłowa nazwa właściwości. Nazwa właściwości nie może zaczynać się od znaków odwołania do strony „#” lub „[[”." + :property.validation/invalid-value "Właściwość „{1}” ma nieprawidłową wartość: {2}" + :property.validation/many-to-one "Nie można przekonwertować właściwości z wieloma wartościami na pojedynczą." + :property.validation/protected "Ta właściwość jest chroniona i nie może być zmieniona." + + :property.view-type/gallery "Widok galerii" + :property.view-type/list "Widok listy" + :property.view-type/table "Widok tabeli" + + :publish/action "Publikuj" + :publish/dialog-desc "Opcjonalnie zabezpiecz tę stronę hasłem. Zostaw puste, aby zapewnić dostęp publiczny." + :publish/dialog-title "Publikuj stronę" + :publish/invalid-page-error "Nieprawidłowa strona" + :publish/password-optional-placeholder "Opcjonalne hasło" + :publish/publish-error "Błąd publikacji" + :publish/published-to "Opublikowano w {1}" + :publish/publishing "Publikowanie..." + :publish/unpublish "Wycofaj publikację" + :publish/unpublish-error "Nie udało się cofnąć publikacji" + :publish/unpublish-missing-page-id "Cofnij publikację: brak ID strony" + :publish/unpublished "Publikacja cofnięta" + + :query/advanced-results "Wyniki zapytania zaawansowanego" + :query/custom-view-error "Błąd widoku niestandardowego: {1}" + :query/error "Błąd zapytania:" + :query/examples-desc "Więcej przykładów znajdziesz w {{Queries documentation}}." + :query/examples-title "Przykłady zapytań:" + :query/results-for "Wyniki dla {1}" + + :query.builder/add-filter-or-operator-placeholder "Dodaj filtr/operator" + :query.builder/between-end-label "Data końcowa" + :query.builder/between-journal-label "między: {1} ~ {2}" + :query.builder/between-start-label "Data początkowa" + :query.builder/created-label "Utworzono" + :query.builder/filter "Filtr" + :query.builder/filter-full-text-search-label "Wyszukiwanie pełnotekstowe" + :query.builder/filter-page-label "Strona" + :query.builder/filter-page-reference-label "Odwołanie do strony" + :query.builder/filter-sample-label "Przykład" + :query.builder/operator-and-label "i" + :query.builder/operator-not-label "nie" + :query.builder/replace-with-label "Zastąp przez:" + :query.builder/search-label "Szukaj: {1}" + :query.builder/show-built-in-properties "Pokaż wbudowane właściwości" + :query.builder/unwrap-operator "Rozpakuj" + :query.builder/updated-label "Zaktualizowano" + :query.builder/wrap-filter-with-label "Owiń ten filtr w:" + + :reference/blocks "Referencja bloku" + :reference/copy "Kopiuj referencję" + :reference/delete "Usuń referencję" + :reference/page-filter "Filtr stron" + :reference/replace-with-embed "Zastąp osadzeniem" + :reference/replace-with-text "Zastąp tekstem" + + :reference.filter/directions "Kierunki filtra" + :reference.filter/excludes "Wykluczone" + :reference.filter/includes "Uwzględnione" + :reference.filter/search-placeholder "Szukaj w powiązanych stronach" + :reference.filter/title "Filtr" + + :search/blank-input "Puste wejście" + :search/full-text-placeholder "Wyszukiwanie pełnotekstowe" + :search/index-progress "Indeksowanie {1}%" + :search/indices-rebuilt-success "Indeksy wyszukiwania zostały pomyślnie przebudowane!" + :search/no-result "Brak wyników" + :search/result-count "{1} wyników" + + :search.find-in-page/input-placeholder "Znajdź na stronie" + :search.find-in-page/match-case "Uwzględniaj wielkość liter" + :search.find-in-page/next-result "Następny wynik" + :search.find-in-page/previous-result "Poprzedni wynik" :select/default-prompt "Wybierz jeden" - :select.graph/prompt "Wybierz graf" - :select.graph/empty-placeholder-description "Brak pasujących grafów. Chcesz dodać nowy?" - :select.graph/add-graph "Tak, dodaj nowy graf" + :select/default-select-multiple "Zaznacz jeden lub wiele" + :select/new-option "+ Nowa opcja: {1}" - :shortcut.category/basics "Podstawy" - :shortcut.category/formatting "Formatowanie" - :shortcut.category/navigating "Nawigacja" - :shortcut.category/block-editing "Edycja bloków (ogólne)" - :shortcut.category/block-command-editing "Komenda edycji bloków" - :shortcut.category/block-selection "Zaznaczanie bloków (wciśnij Esc aby zakończyć)" - :shortcut.category/toggle "Przełącz" - :shortcut.category/others "Pozostałe" + :server/error-notification "[Serwer] {1}" + :server/mcp-url-copied "URL MCP skopiowany" + :server/start "Uruchom" + :server/stop "Zatrzymaj" + :server/title "Serwer HTTP API" - :command.pdf/previous-page "Poprzednia strona otwartego dokumentu PDF" - :command.pdf/next-page "Następna strona otwartego dokumentu PDF" - :command.pdf/close "Zamknij aktualnie otwarty dokument PDF" - :command.auto-complete/complete "Auto uzupełnianie: Wybierz zaznaczoną opcję" - :command.auto-complete/prev "Auto uzupełnianie: Wybierz poprzednią opcję" - :command.auto-complete/next "Auto uzupełnianie: Wybierz następną opcję" - :command.auto-complete/shift-complete "Auto uzupełnianie: Otwórz wybraną opcję w panelu bocznym" - :command.cards/toggle-answers "Karty: pokaż/ukryj odpowiedzi/luki w tekście" - :command.editor/escape-editing "Wyjście z edycji" - :command.editor/backspace "Usuwanie wstecz" - :command.editor/delete "Usuwanie naprzód" - :command.editor/new-block "Utwórz nowy blok" - :command.editor/new-line "Nowa linia w obecnym bloku" - :command.editor/follow-link "Przejdź do linku pod kursorem" - :command.editor/open-link-in-sidebar "Otwórz link w panelu bocznym" - :command.editor/bold "Wytłuszczenie" - :command.editor/italics "Pochylenie" - :command.editor/highlight "Podświetlenie" - :command.editor/strike-through "Przekreślenie" - :command.editor/clear-block "Usuń całą treść bloku" - :command.editor/kill-line-before "Usuń linię powyżej kursora" - :command.editor/copy-embed "Kopiuj kod osadzenia dla obecnego bloku" - :command.editor/kill-line-after "Usuń linię poniżej kursora" - :command.editor/beginning-of-block "Umieść kursor na początku bloku" - :command.editor/end-of-block "Umieść kursor na końcu bloku" - :command.editor/forward-word "Przesuń kursor do następnego słowa" - :command.editor/backward-word "Przesuń kursor do poprzedniego słowa" - :command.editor/forward-kill-word "Usuń następne słowo" - :command.editor/backward-kill-word "Usuń poprzednie słowo" - :command.editor/paste-text-in-one-block-at-point "Wklej cały tekst jako jeden blok" - :command.editor/insert-youtube-timestamp "Umieść znacznik czasu filmu YouTube" - :command.editor/cycle-todo "Rotuj stan TODO dla aktualnego bloku" - :command.editor/up "Przesuń kursor do góry / Zaznacz powyższą opcję" - :command.editor/down "Przesuń kursor w dół / Zaznacz poniższą opcję" - :command.editor/left "Przesuń kursor w lewo / Rozpocznij edycję na początku bloku" - :command.editor/right "Przesuń kursor w prawo / Rozpocznij edycję na końcu bloku" - :command.editor/select-up "Zaznacz treść powyżej" - :command.editor/select-down "Zaznacz treść poniżej" - :command.editor/move-block-up "Przesuń blok powyżej" - :command.editor/move-block-down "Przesuń blok poniżej" - :command.editor/open-edit "Edytuj zaznaczony blok" - :command.editor/select-block-up "Zaznacz blok powyżej" - :command.editor/select-block-down "Zaznacz blok poniżej" - :command.editor/delete-selection "Usuń zaznaczone bloki" - :command.editor/expand-block-children "Rozwiń" - :command.editor/collapse-block-children "Zwiń" - :command.editor/indent "Przesuń blok poziom niżej" - :command.editor/outdent "Przesuń blok poziom wyżej" - :command.editor/copy "Kopiuj (kopiuje zaznaczenie lub referencję do bloku)" - :command.editor/copy-text "Kopiuj zaznaczenie jako tekst" - :command.editor/cut "Wytnij" - :command.editor/undo "Cofnij" - :command.editor/redo "Ponów" - :command.editor/select-all-blocks "Zaznacz wszystkie bloki" - :command.ui/toggle-brackets "Pokaż / Ukrywaj kwadratowe nawiasy" - :command.go/search "Wyszukiwanie tekstowe" - :command.go/journals "Idź do dzienników" - :command.go/backward "Wstecz" - :command.go/forward "Naprzód" - :command.search/re-index "Przebuduj index wyszukiwania" - :command.sidebar/open-today-page "Otwórz dzisiejszy dziennik w panelu bocznym" - :command.sidebar/clear "Wyczyść wszystko w panelu bocznym" - :command.graph/open "Wybierz graf do otwarcia" - :command.graph/remove "Usuń graf" - :command.graph/add "Dodaj graf" - :command.command/run "Wykonaj polecenie GIT" - :command.command/toggle-favorite "Dodaj / Usuń z ulubionych" - :command.go/home "Idź do strony głównej" - :command.go/all-pages "Idź do indeksu wszystkich stron" - :command.go/graph-view "Idź do widoku grafu" - :command.go/keyboard-shortcuts "Idź do widoku skrótów klawiszowych" - :command.go/tomorrow "Idź do jutrzejszego dziennika" - :command.go/next-journal "Idź do następnego dziennika" - :command.go/prev-journal "Idź do poprzedniego dziennika" - :command.go/flashcards "Pokaż / Ukryj widok fiszek" - :command.ui/toggle-document-mode "Wyświetl / Ukryj widok dokumentu" - :command.ui/toggle-settings "Wyświetl / Ukryj ustawienia" - :command.ui/toggle-right-sidebar "Pokaż / Ukryj prawy panel" - :command.ui/toggle-left-sidebar "Pokaż / Ukryj lewy panel" - :command.ui/toggle-help "Pokaż / Ukryj pomoc" - :command.ui/toggle-theme "Zmień motyw graficzny na ciemny/jasny" - :command.editor/toggle-open-blocks "Zwiń / Rozwiń otwarte bloki" - :command.ui/toggle-wide-mode "Włącz / wyłącz tryb szeroki" - :command.ui/goto-plugins "Przejdź do dashboardu pluginów" - :auto-heading "Automatyczne nagłówki" - :export-copied-to-clipboard "Skopiowano do schowka!" - :export-copy-to-clipboard "Skopiuj do schowka" - :export-save-to-file "Zapisz do pliku" - :export-transparent-background "Przezroczyste tło" - :heading "Nagłówek {1}" - :home "Home" - :host "Host" - :importing "Importowanie" - :loading "Wczytywanie..." - :new-page "Nowa strona:" - :remove-heading "Usuń nagłówek" - :toggle-theme "Przełącz motyw" - :untitled "Bez tytułu" - :accessibility/skip-to-main-content "Pomiń do głównej zawartości" - :asset/copy "Kopiuj obrazek" - :asset/delete "Usuń obrazek" - :asset/maximize "Powiększ obrazek" - :asset/open-in-browser "Otwórz obrazek w przeglądarce" - :asset/show-in-folder "Pokaż obrazek w folderze" - :bug-report/clipboard-inspector-title "Inspektor danych schowka" - :bug-report/inspector-page-btn-back "Cofnij" - :bug-report/inspector-page-btn-copy "Kopiuj rezultat" - :bug-report/inspector-page-btn-create-issue "Zgłoś problem" - :bug-report/inspector-page-copy-notif "Skopiowano do schowka!" - :bug-report/inspector-page-desc-1 "Wciśnij Ctrl+V / ⌘+V, żeby sprawdzić zawartość schowka" - :bug-report/inspector-page-desc-2 "lub kliknij tu, żeby wkleić jeśli używasz komórki..." - :bug-report/inspector-page-desc-clipboard "Dane wczytane ze schowka." - :bug-report/inspector-page-desc-copy "Wciśnij Kopiuj, jeśli zgadzasz się na udostępnianie." - :bug-report/inspector-page-desc-create-issue "Teraz możesz zaraportować rezultat wklejony ze schowka. Wklej rezultat do sekcji 'Dodatkowy kontekst' i napisz skąd skopiowałeś oryginalną zawartość. Dzięki!" - :bug-report/inspector-page-placeholder "Kliknij i przytrzymaj, żeby wkleić jeśli pracujesz na komórce" - :bug-report/inspector-page-tip "Coś poszło nie tak? Nie ma problemu, kliknij, żeby wrócić do poprzedniego kroku." - :bug-report/main-desc "Czy mógłbyś nam pomóc zgłaszając raport o błędzie? Naprawimy go tak szybko jak się da." - :bug-report/main-title "Raport błędu" - :bug-report/section-clipboard-btn-desc "Inspekcja i kolekcja danych ze schowka" - :bug-report/section-clipboard-btn-title "Pomocnik schowka" - :bug-report/section-clipboard-desc "Możesz użyć tych przydatnych narzędzi, żeby przesłać nam dodatkowe informacje." - :bug-report/section-clipboard-title "Czy błąd, który napotkałeś jest związany z tymi funkcjonalnościami?" - :bug-report/section-issues-btn-desc "Pomóż nam ulepszyć Logseq!" - :bug-report/section-issues-btn-title "Zgłoś raport o błędzie" - :bug-report/section-issues-desc "Jeśli brak narzędzi, żeby zebrać dodatkowe informacje, zgłoś błąd bezpośrednio." - :bug-report/section-issues-title "Lub..." - :color/blue "Niebieski" - :color/gray "Szary" - :color/green "Zielony" - :color/pink "Różowy" - :color/purple "Fioletowy" - :color/red "Czerwony" - :color/yellow "Żółty" - :command.command-palette/toggle "Szukaj komend" - :command.dev/show-block-ast "(Dev) Pokaż AST bloku" - :command.dev/show-block-data "(Dev) Pokaż dane bloku" - :command.dev/show-page-data "(Dev) Pokaż dane strony" - :command.editor/copy-page-url "Kopiuj URL strony" - :command.editor/insert-link "Link HTML" - :command.editor/select-parent "Zaznacz blok nadrzędny" - :command.editor/toggle-block-children "Rozwiń/zwiń" - :command.editor/toggle-number-list "Przełącz listę numerowaną" - :command.editor/zoom-in "Wejdź do edytowanego bloku lub w przód" - :command.editor/zoom-out "Wyjdź z edytowanego bloku lub wstecz" - :command.go/all-graphs "Idź do Wszystkich grafów" - :command.go/electron-find-in-page "Znajdź tekst na stronie" - :command.go/electron-jump-to-the-next "Skocz do następnego rezultatu wyszukiwania" - :command.go/electron-jump-to-the-previous "Skocz do poprzedniego rezultatu wyszukiwania" - :command.go/search-in-page "Szukaj bloków na stronie" - :command.graph/export-as-html "Eksportuj publiczne strony grafu jako HTML" - :command.misc/copy "Kopiuj" - :command.pdf/find "PDF: Szukaj tekstu w otwartym dokumencie PDF" - :command.sidebar/close-top "Zamyka górny element w prawym panelu" - :command.ui/clear-all-notifications "Wyczyść wszystkie powiadomienia" - :command.ui/install-plugins-from-file "Zainstaluj pluginy z plugins.edn" - :command.ui/select-theme-color "Wybierz dostępne kolory motywu" - :command.ui/toggle-contents "Przełącz Treść w panelu bocznym" - :command.window/close "Zamknij okno" - :content/copy-block-url "Kopiuj URL bloku" - :content/copy-export-as "Kopiuj / Eksportuj jako.." - :content/copy-ref "Kopiuj referencję" - :content/delete-ref "Usuń referencję" - :content/replace-with-embed "Zastąp osadzeniem" - :content/replace-with-text "Zastąp tekstem" - :context-menu/make-a-flashcard "Utwórz fiszkę" - :context-menu/toggle-number-list "Przełącz listę numerowaną" - :dev/show-block-ast "(Dev) Pokaż AST bloku" - :dev/show-block-data "(Dev) Pokaż dane bloku" - :dev/show-page-data "(Dev) Pokaż dane strony" - :editor/collapse-block-children "Zwiń wszystkie bloki" - :editor/cycle-todo "Rotuj stan TODO" - :editor/delete-selection "Usuń zaznaczone bloki" - :editor/expand-block-children "Rozwiń wszystkie bloki" - :flashcards/modal-finished "Gratulacje, przejrzałeś wszystkie fiszki w tym pytaniu, do zobaczenia następnym razem! 💯" - :flashcards/modal-welcome-desc-1 "Możesz dodać \"{1}\" do dowolnego bloku, żeby zmienić go na fiszkę lub wpisz \"/cloze\" żeby dodać luki do wypełnienia." - :flashcards/modal-welcome-title "Czas na nową fiszkę!" - :graph/all-graphs "Wszystkie grafy" - :graph/local-graphs "Grafy lokalne:" - :graph/remote-graphs "Grafy zdalne:" - :handbook/close "Zamknij" - :handbook/help-categories "Kategorie pomocy" - :handbook/home "Strona domowa" - :handbook/popular-topics "Popularne tematy" - :handbook/search "Szukaj" - :handbook/settings "Ustawienia" - :handbook/title "Pomoc" - :handbook/topics "Tematy" - :header/go-back "Wstecz" - :header/go-forward "W przód" - :header/more "Więcej" - :header/search "Szukaj" - :header/toggle-left-sidebar "Przełącz lewy panel" - :help/awesome-logseq "Wspaniały Logseq" - :help/search "Szukaj stron/bloki/komend" - :help/title-about "O Logseq" - :help/title-community "Wspólnota" - :help/title-development "Programowanie" - :help/title-terms "Warunki korzystania" - :help/title-usage "Zasady używania" - :keymap/all "Wszystkie" - :keymap/custom "Własny" - :keymap/disabled "Wyłączone" - :keymap/keystroke-filter "Filtr klawiszy" - :keymap/unset "Przywróć ustawienie" - :left-side-bar/switch "Przełącz na:" - :linked-references/filter-directions "Kliknij, żeby uwzględnić lub kliknij z shiftem, żeby wykluczyć. Kliknij ponownie, żeby usunąć." - :linked-references/filter-excludes "Wyklucza: " - :linked-references/filter-heading "Filtruj" - :linked-references/filter-includes "Uwzględnia: " - :notification/clear-all "Wyczyść wszystkie" - :on-boarding/importing-desc "Logseq może z nimi pracować jeśli są w formacie EDN lub Markdown." - :on-boarding/importing-main-desc "Możesz to zrobić później w aplikacji" - :on-boarding/importing-main-title "Zaimportuj notatki" - :on-boarding/importing-title "Masz notatki, które chcesz zaimportować?" - :on-boarding/main-desc "Najpierw wybierz folder, w którym Logseq będzie zapisywał twoje myśli, pomysły i notatki." - :on-boarding/main-title (fn [] ["Witamy w " [:strong "Logseq!"]]) - :page/logseq-is-having-a-problem "Logseq ma problem. Żeby przywrócić go do działającego stanu wykonaj po kolei następujące bezpieczne kroki:" - :page/something-went-wrong "Coś poszło nie tak" - :page/step "Step (1)" - :page/try "Spróbuj" - :pdf/auto-open-context-menu "Automatycznie otwórz menu kontekstowe dla zaznaczeń" - :pdf/doc-metadata "Meta dane dokumentu" - :pdf/hl-block-colored "Kolorowa etykieta dla podkreślonego bloku" - :plugin/all-updated "Wszystkie aktualne!" - :plugin/auto-check-for-updates "Automatycznie sprawdzaj aktualizacje" - :plugin/checking-for-updates "Sprawdzam aktualizacje pluginów..." - :plugin/found-n-updates "Znaleziono {1} aktualizacji" - :plugin/found-updates "Nowe aktualizacje" - :plugin/installed-plugin "Zainstalowano plugin: {1}" - :plugin/list-of-updates "Aktualizacje pluginów: " - :plugin/marketplace "Marketplace" - :plugin/open-logseq-dir "Otwórz" - :plugin/open-preferences "Otwórz preferencje" - :plugin/remote-error "Zdalny błąd:" - :plugin/search-plugin "Szukaj pluginów" - :plugin/security-warning "Pluginy mają dostęp do twojego grafu, plików lokalnych i mogą nawiązywać połączenia sieciowe. - Mogą też powodować uszkodzenia danych lub ich utratę. Pracujemy nad odpowiednimi regułami dostępu do twoich grafów. - W międzyczasie upewnij się, że wykonujesz regularne kopie zapasowe swoich grafów i instalujesz pluginy tylko kiedy możesz sprawdzić i - zrozumieć ich kod źródłowy." - :plugin/title "Tytuł ({1})" - :plugin/up-to-date "Wszystko jest aktualne {1}" - :plugin/update-all-selected "Aktualizuj zaznaczone" - :plugin/update-plugin "Aktualizuj" - :plugin/updates-downloading "Ściąganie aktualizacji" - :plugin.install-from-file/menu-title "Zainstaluj z pliku plugins.edn" - :plugin.install-from-file/notice "Następujące pluginy zastąpią twoje pluginy:" - :plugin.install-from-file/success "Wszystkie pluginy zainstalowane!" - :plugin.install-from-file/title "Zainstaluj pluginy z pliku plugins.edn" - :right-side-bar/pane-close "Zamknij" - :right-side-bar/pane-close-all "Zamknij wszystkie" - :right-side-bar/pane-close-others "Zamknij inne" - :right-side-bar/pane-collapse "Zwiń" - :right-side-bar/pane-collapse-all "Zwiń wszystkie" - :right-side-bar/pane-collapse-others "Zwiń inne" - :right-side-bar/pane-expand "Rozwiń" - :right-side-bar/pane-expand-all "Rozwiń wszystkie" - :right-side-bar/pane-more "Więcej" - :right-side-bar/pane-open-as-page "Otwórz jako stronę" - :right-side-bar/separator "Separator" - :right-side-bar/toggle-right-sidebar "Przełącz prawy panel" - :search-item/no-result "Brak pasujących rezultatów" - :search-item/page "Strona" - :select/default-select-multiple "Zaznacz jeden lub wiele" - :settings-page/app-updated "Twoja aplikacja jest aktualna 🎉" - :settings-page/auto-chmod "Automatycznie zmień uprawnienia do pliku" - :settings-page/auto-chmod-desc "Wyłącz, żeby zezwolić na edytowanie różnym użytkownikom z uprawnieniami grupy do pliku." - :settings-page/auto-expand-block-refs "Rozwiń referencje bloku automatycznie przy przybliżeniu" - :settings-page/auto-expand-block-refs-tip "Ta opcja kontroluje czy automatycznie rozwinąć referencję bloku przy przybliżaniu." - :settings-page/check-for-updates "Sprawdź aktualizacje" - :settings-page/checking "Sprawdzanie..." - :settings-page/custom-global-configuration "Własna konfiguracja globalna" - :settings-page/edit-global-config-edn "Edytuj globalny config.edn" - :settings-page/login-prompt "Żeby zyskać dostęp do nowych funkcjonalności przed innymi, musisz mieć status Open Collective Sponsor lub Logseq Backer i musisz się zalogować." - :settings-page/native-titlebar "Natywny pasek tytułu" - :settings-page/native-titlebar-desc "Włącza natywny pasek tytułu w Windowsie lub Linuksie" - :settings-page/preferred-outdenting-tip "Lewa strona pokazuje zmniejszenie wcięcia z domyślnymi ustawieniami, a prawa z włączonym logicznym zmniejszeniem wcięć." - :settings-page/preferred-outdenting-tip-more "→ Dowiedz się więcej" - :settings-page/preferred-pasting-file "Preferuj wklejanie pliku" - :settings-page/preferred-pasting-file-hint "Kiedy włączone, wklejanie obrazka z Internetu ściągnie i wstawi obrazek. Kiedy wyłączone, wklei link do obrazka." - :settings-page/revision "Rewizja:" - :settings-page/show-full-blocks "Pokaż wszystkie linie referencji bloku" - :settings-page/tab-account "Konto" - :settings-page/tab-features "Właściwości" - :settings-page/update-available "Znaleziono nowe wydanie" - :settings-page/update-error-1 "⚠️ Oops, coś poszło nie tak!" - :settings-page/update-error-2 "Sprawdź proszę " - :shortcut.category/plugins "Pluginy" - :tips/all-done "Wszystko zrobione!" - :window/close "Zamknij" - :window/exit-fullscreen "Wyjdź z trybu pełnego ekranu" - :window/maximize "Maksymalizuj" - :window/minimize "Minimalizuj" - :window/restore "Przywróć"} + :server.config/auto-start-label "Uruchom automatycznie" + :server.config/port-label "Zakres portów" + :server.config/reset "Resetuj" + :server.config/save-and-apply "Zapisz i zastosuj" + :server.config/title "Konfiguracja serwera" + + :server.status/closed "Zamknięty" + :server.status/closing "Zamykanie" + :server.status/error "Błąd" + :server.status/running "Uruchomiony" + :server.status/starting "Uruchamianie" + :server.status/stopped "Zatrzymany" + + :server.token/add-new "Dodaj nowy token" + :server.token/name-placeholder "Nazwa serwera" + :server.token/regenerate-value "Regeneruj wartość tokena" + :server.token/title "Tokeny autoryzacji" + :server.token/update-success "Tokeny zaktualizowane" + :server.token/value-placeholder "Wartość" + + :settings/account "Konto" + :settings/advanced "Zaawansowane" + :settings/ai "AI" + :settings/collaboration "Współpraca" + :settings/editor "Edytor" + :settings/encryption "Szyfrowanie" + :settings/features "Właściwości" + :settings/general "Ogólne" + :settings/keymap "Skróty klawiszowe" + :settings/plugins "Ustawienia wtyczek" + + :settings.account/storage-usage "{1}GB z {2}GB całkowitej pamięci ({3})" + :settings.account/synced-graphs "{1} z {2} zsynchronizowanych wykresów ({3})" + + :settings.advanced/auto-chmod "Automatyczny chmod" + :settings.advanced/auto-chmod-desc "Automatycznie ustawiaj uprawnienia plików" + :settings.advanced/auto-updater "Automatyczne aktualizacje" + :settings.advanced/developer-mode "Tryb programisty" + :settings.advanced/developer-mode-desc "Tryb programisty pomaga kontrybutorom i programistom rozszerzeń lepiej przetestować ich integracje w Logseq." + :settings.advanced/disable-sentry "Wyślij statystyki użycia aplikacji do Logseq" + :settings.advanced/disable-sentry-desc "Logseq nigdy nie zbiera danych Twoich lokalnych grafów i nie sprzedaje twoich danych." + :settings.advanced/network-proxy "Ustawienia proxy" + + :settings.ai/enable-mcp-server "Włącz serwer MCP" + :settings.ai/enable-mcp-server-desc "Włącz serwer MCP do integracji z AI" + + :settings.editor/auto-expand-block-refs "Automatycznie rozwijaj odniesienia do bloków" + :settings.editor/auto-expand-block-refs-tip "Automatycznie rozwijaj odniesienia do bloków po kliknięciu" + :settings.editor/custom-date-format "Preferowany format daty" + :settings.editor/enable-all-pages-public "Publikuj wszystkie strony" + :settings.editor/enable-shortcut-tooltip "Włącz podpowiedzi skrótu klawiszowego" + :settings.editor/enable-tooltip "Włącz podpowiedzi" + :settings.editor/preferred-outdenting "Logiczne zmniejszanie wcięć" + :settings.editor/preferred-outdenting-tip "Wskazówka dotycząca wcięć" + :settings.editor/preferred-outdenting-tip-more "→ Więcej o wcięciach" + :settings.editor/preferred-pasting-file "Preferuj wklejanie pliku" + :settings.editor/preferred-pasting-file-hint "Wskazówka dotycząca wklejania plików" + :settings.editor/show-brackets "Pokaż kwadratowe nawiasy" + :settings.editor/show-full-blocks "Pokaż wszystkie linie referencji bloku" + :settings.editor/spell-checker "Sprawdzanie pisowni" + :settings.editor/wide-mode "Tryb szeroki" + + :settings.features/enable-flashcards "Włącz fiszki" + :settings.features/enable-journals "Dzienniki" + :settings.features/home-default-page "Ustaw domyślną stronę startową" + :settings.features/home-default-page-update-success "Strona domowa zaktualizowana" + :settings.features/journals-enable-success "Dzienniki włączone" + :settings.features/login-prompt "Żeby zyskać dostęp do nowych funkcjonalności przed innymi, musisz mieć status Open Collective Sponsor lub Logseq Backer i musisz się zalogować." + :settings.features/page-not-found "Strona „{1}” jeszcze nie istnieje. Najpierw utwórz tę stronę, a następnie spróbuj ponownie." + :settings.features/plugin-system "System wtyczek" + + :settings.general/accent-color "Kolor akcentu" + :settings.general/accent-color-alert "Ostrzeżenie o kolorze" + :settings.general/accent-color-logseq "Klasyczny kolor Logseq" + :settings.general/accent-color-none-desc "Anuluj kolor akcentu. Jest to obecnie w fazie beta i jest używane głównie w celu zapewnienia zgodności z niestandardowymi motywami." + :settings.general/changelog "Dziennik zmian" + :settings.general/check-for-updates "Sprawdź aktualizacje" + :settings.general/current-revision-label "Bieżąca rewizja" + :settings.general/current-version "Aktualna wersja" + :settings.general/custom-configuration "Niestandardowa konfiguracja" + :settings.general/custom-global-configuration "Własna konfiguracja globalna" + :settings.general/custom-theme "Niestandardowy motyw graficzny" + :settings.general/edit-config-edn "Edytuj config.edn" + :settings.general/edit-custom-css "Edytuj custom.css" + :settings.general/edit-export-css "Edytuj export.css" + :settings.general/edit-global-config-edn "Edytuj globalny config.edn" + :settings.general/editor-font "Czcionka edytora" + :settings.general/editor-font-set-global "Ustaw jako globalną czcionkę" + :settings.general/export-theme "Eksportuj motyw graficzny" + :settings.general/language "Język" + :settings.general/native-titlebar "Natywny pasek tytułu" + :settings.general/native-titlebar-desc "Użyj natywnego paska tytułu systemu" + :settings.general/refresh-required-feedback "Wymagane odświeżenie" + :settings.general/release-channel "kanał wydań" + :settings.general/revision "Rewizja: {1}" + :settings.general/theme-dark "Ciemny" + :settings.general/theme-light "Jasny" + :settings.general/theme-system "Systemowy" + + :settings.sync-server/clear-success "Wyczyszczono URL serwera synchronizacji. Używany będzie oficjalny Logseq Sync." + :settings.sync-server/reset "Resetuj do domyślnych" + :settings.sync-server/save-success "Zapisano URL serwera synchronizacji." + :settings.sync-server/url "URL serwera synchronizacji" + :settings.sync-server/url-desc "Ustaw niestandardowy adres HTTPS serwera synchronizacji dla synchronizacji hostowanej samodzielnie. Twoje tokeny uwierzytelniające Logseq będą wysyłane na ten serwer, więc używaj tylko zaufanego URL. Pozostaw puste, aby używać oficjalnego Logseq Sync." + :settings.sync-server/url-invalid-error "URL musi zaczynać się od https:// lub http://" + + :shell/input-command-title "Wpisz polecenie" + + :shortcut.category/basics "Podstawy" + :shortcut.category/block-command-editing "Komenda edycji bloków" + :shortcut.category/block-editing "Edycja bloków (ogólne)" + :shortcut.category/block-selection "Zaznaczanie bloków (wciśnij Esc aby zakończyć)" + :shortcut.category/formatting "Formatowanie" + :shortcut.category/navigating "Nawigacja" + :shortcut.category/others "Pozostałe" + :shortcut.category/plugins "Wtyczki" + :shortcut.category/toggle "Przełącz" + + :sidebar.left/favorites "Ulubione" + :sidebar.left/navigations "Nawigacja" + :sidebar.left/recent-pages "Ostatnio odwiedzane" + + :sidebar.right/close "Zamknij panel" + :sidebar.right/close-all "Zamknij wszystkie panele" + :sidebar.right/close-others "Zamknij inne panele" + :sidebar.right/collapse "Zwiń panel" + :sidebar.right/collapse-all "Zwiń wszystkie panele" + :sidebar.right/collapse-others "Zwiń inne panele" + :sidebar.right/expand "Rozwiń panel" + :sidebar.right/expand-all "Rozwiń wszystkie panele" + :sidebar.right/more "Więcej" + :sidebar.right/open "Otwórz w panelu bocznym" + :sidebar.right/open-as-page "Otwórz jako stronę" + :sidebar.right/resize-handle "Separator" + :sidebar.right/toggle "Przełącz prawy panel" + + :storage/invalid-data-writing "Nieprawidłowy zapis danych." + :storage/sqlitedb-error "Błąd SQLiteDB: {1}" + :storage/sqlitedb-import-error "Błąd importu SQLiteDB: {1}" + :storage/sqlitedb-save-error "Błąd zapisu bazy danych SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Blok usunięty {1}" + :storage.recycle/empty "Kosz jest pusty." + :storage.recycle/page-deleted-at "Strona usunięta {1}" + :storage.recycle/readonly "Kosz (tylko do odczytu)" + :storage.recycle/restore "Przywróć" + :storage.recycle/retention-desc "Usunięte strony i bloki pozostają tutaj, dopóki nie zostaną przywrócone lub automatycznie usunięte po 30 dniach." + :storage.recycle/title "Kosz" + + :sync/assets-downloading-count "Pobieranie zasobów ({1})" + :sync/assets-uploading-count "Wysyłanie zasobów ({1})" + :sync/creating-remote-graph "Tworzenie zdalnego grafu..." + :sync/downloading "Pobieranie..." + :sync/downloading-graph "Pobieranie {1} ..." + :sync/graph-count-exceed-limit "Przekroczono limit liczby grafów" + :sync/invitation-sent "Zaproszenie wysłane" + :sync/last-synced-time-label "Ostatnia synchronizacja: {1}" + :sync/more-debug-info "Więcej informacji debugowania" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "oczekujące zmiany lokalne" + :sync/pending-server-changes "oczekujące zmiany serwera" + :sync/something-wrong "Błąd synchronizacji" + :sync/start-sync "Rozpocznij synchronizację" + :sync/storage-exceed-limit "Przekroczono limit pamięci" + :sync/uploading "Przesyłanie..." + :sync/user-doesnt-exist-yet "Użytkownik jeszcze nie istnieje" + + :theme/logseq-default "Domyślny motyw Logseq" + :theme/switch-to "Przełącz na motyw {1}" + + :ui/all-done "Wszystko gotowe" + :ui/apply "Zastosuj" + :ui/cancel "Anuluj" + :ui/close "Zamknij" + :ui/configure "Skonfiguruj" + :ui/confirm "Potwierdź" + :ui/copy "Kopiuj" + :ui/copy-all "Kopiuj wszystko" + :ui/copy-to-clipboard "Kopiuj do schowka" + :ui/create "Utwórz" + :ui/date-natural-language-placeholder "np. Następny tydzień" + :ui/delete "Usuń" + :ui/deleted "Usunięto" + :ui/dont-remind-me-again "Nie przypominaj mi ponownie" + :ui/empty "Puste" + :ui/error "Błąd" + :ui/error-boundary-error "Błąd przechwycony przez UI!\n {1}" + :ui/export "Eksportuj" + :ui/false "Fałsz" + :ui/fix "Napraw!" + :ui/frequently-used "Często używane" + :ui/from "Od: " + :ui/host "Host" + :ui/image "obraz" + :ui/label "Etykieta" + :ui/link "Link" + :ui/load-more "Wczytaj więcej" + :ui/loading "Ładowanie" + :ui/login "Zaloguj się" + :ui/logout "Wyloguj się" + :ui/off "Wyłączone" + :ui/on "Włączone" + :ui/open "Otwórz" + :ui/open-named "Otwórz {1}" + :ui/port "Port" + :ui/refresh "Odśwież" + :ui/relaunch-confirm "Aby zastosować tę zmianę, trzeba ponownie uruchomić aplikację. Uruchomić ponownie teraz?" + :ui/remove-background "Usuń tło" + :ui/reset "Resetuj" + :ui/run "Uruchom" + :ui/save "Zapisz" + :ui/show-less "Pokaż mniej" + :ui/show-more "Pokaż więcej" + :ui/skip "Pomiń" + :ui/submit "Wyślij" + :ui/to "Do: " + :ui/toggle-theme "Przełącz motyw" + :ui/true "Prawda" + :ui/type "Typ" + :ui/untitled "Bez tytułu" + :ui/use-current-time "Użyj bieżącego czasu" + :ui/yes "Tak" + + :updater/checking-for-updates "Sprawdzanie aktualizacji" + :updater/downloading-progress "Pobieranie aktualizacji ({1}%)" + :updater/quit-and-install "Uruchom ponownie i zainstaluj" + :updater/up-to-date "Aplikacja zaktualizowana 🎉" + :updater/update-available "Aktualizacja dostępna" + :updater/update-error "⚠️ Oops, coś poszło nie tak!\nSprawdź proszę {1}." + :updater/update-ready-to-install "Aktualizacja jest gotowa do instalacji" + + :view/add-new-view "Dodaj widok" + :view/all "Wszystkie" + :view/export-edn "Eksportuj EDN" + :view/linked-references "Połączone referencje" + :view/new "Nowy" + :view/new-property "Nowa właściwość" + :view/new-view "Nowy widok" + :view/rename "Zmień nazwę" + :view/results "Wyniki:" + :view/unlinked-references "Niepołączone referencje" + + :view.filter/custom-date "Niestandardowa data" + :view.filter/empty "Puste" + :view.filter/filter "Filtr" + :view.filter/from "Od" + :view.filter/is-empty "Jest puste" + :view.filter/is-not-empty "Nie jest puste" + :view.filter/match "Dopasuj" + :view.filter/match-all-filters "Dopasuj wszystkie filtry" + :view.filter/match-any-filter "Dopasuj dowolny filtr" + :view.filter/operator-after "Po" + :view.filter/operator-before "Przed" + :view.filter/operator-between "Między" + :view.filter/operator-date-after "Data po" + :view.filter/operator-date-before "Data przed" + :view.filter/operator-is "Jest" + :view.filter/operator-is-not "Nie jest" + :view.filter/operator-text-contains "Tekst zawiera" + :view.filter/operator-text-not-contains "Tekst nie zawiera" + :view.filter/or "Lub" + :view.filter/relative-1-day-ago "1 dzień temu" + :view.filter/relative-1-month-ago "1 miesiąc temu" + :view.filter/relative-1-week-ago "1 tydzień temu" + :view.filter/relative-1-year-ago "1 rok temu" + :view.filter/relative-3-days-ago "3 dni temu" + :view.filter/relative-3-months-ago "3 miesiące temu" + :view.filter/to "Do" + :view.filter/type-to-search "Wpisz aby szukać" + + :view.table/ascending "Rosnąco" + :view.table/columns-visibility "Widoczność kolumn" + :view.table/default-title "{1} węzłów" + :view.table/delete-sort "Usuń sortowanie" + :view.table/descending "Malejąco" + :view.table/drag-to-reorder "Przeciągnij aby zmienić kolejność" + :view.table/group-by "Grupuj wg" + :view.table/group-journal-date "Data dziennika" + :view.table/group-page-created-date "Data utworzenia strony" + :view.table/group-page-name "Nazwa strony" + :view.table/group-page-updated-date "Data aktualizacji strony" + :view.table/live-query-title "Zapytanie na żywo ({1})" + :view.table/name-column "Nazwa" + :view.table/no-group-value "Brak {1}" + :view.table/page "Strona" + :view.table/pages "Strony" + :view.table/pin "Przypnij" + :view.table/row-number "Numer wiersza" + :view.table/select-all "Zaznacz wszystko" + :view.table/select-column "Wybierz kolumnę" + :view.table/select-order "Wybierz kolejność" + :view.table/select-row "Wybierz wiersz" + :view.table/selected-count "Wybrano: {1}" + :view.table/sort-ascending "Rosnąco" + :view.table/sort-descending "Malejąco" + :view.table/sort-groups-by "Sortuj grupy wg" + :view.table/sort-groups-order "Kolejność grup" + :view.table/total-refs-count "Łączna liczba odniesień" + :view.table/unpin "Odepnij" + + :window/close "Zamknij okno" + :window/exit-fullscreen "Wyjdź z pełnego ekranu" + :window/maximize "Maksymalizuj" + :window/minimize "Minimalizuj" + :window/restore "Przywróć" + + :youtube/embed-first-reminder-mobile "Najpierw osadź film z YouTube, a następnie użyj tej ikony.\nPamiętaj: możesz wkleić surowy adres URL YouTube jako osadzony film na urządzeniu mobilnym." + :youtube/player-not-ready "Odtwarzacz YouTube nie jest jeszcze gotowy." + :youtube/timestamps-not-available-mobile "Sygnatury czasowe YouTube nie są jeszcze dostępne na urządzeniach mobilnych." + + :zotero/attachments "Załączniki" + :zotero/imported-file-warning "To jest zaimportowany plik Zotero, ustaw katalog danych Zotero, aby otworzyć plik w Logseq." + :zotero/linked-file-warning "To jest powiązany plik Zotero, ustaw katalog bazowy powiązanych załączników Zotero, aby otworzyć plik w Logseq." + :zotero/notes "Notatki" +} diff --git a/src/resources/dicts/pt-br.edn b/src/resources/dicts/pt-br.edn index 0f6934a4ea..b91080b6b1 100644 --- a/src/resources/dicts/pt-br.edn +++ b/src/resources/dicts/pt-br.edn @@ -1,413 +1,262 @@ -{:accessibility/skip-to-main-content "Pular para o conteúdo principal" - :handbook/title "Ajuda" - :handbook/topics "Tópicos" - :handbook/popular-topics "Tópicos populares" - :handbook/help-categories "Categorias de ajuda" - :handbook/search "Pesquisar" - :handbook/home "Página inicial" - :handbook/settings "Configurações" - :handbook/close "Fechar" - :on-boarding/importing-main-title "Importar notas existentes" - :on-boarding/importing-main-desc "Você também pode fazer isso posteriormente no aplicativo." - :on-boarding/importing-title "Você já tem notas que deseja importar?" - :on-boarding/importing-desc "Se elas estiverem em formato EDN ou Markdown, o Logseq pode trabalhar com elas." - :on-boarding/importing-sqlite-desc "Importar uma exportação de DB SQLite do seu grafo Logseq para um novo grafo DB" - :on-boarding/main-title (fn [] ["Bem-vindo ao " [:strong "Logseq!"]]) - :on-boarding/main-desc "Primeiro, você precisa escolher uma pasta onde o Logseq armazenará seus pensamentos, ideias, notas." - :bug-report/main-title "Relatório de bug" - :bug-report/clipboard-inspector-title "Inspetor de dados da área de transferência" - :bug-report/main-desc "Você pode nos ajudar enviando um relatório de bug? Vamos resolver isso o mais rápido possível." - :bug-report/section-clipboard-title "O bug que você encontrou está relacionado a esses recursos?" - :bug-report/section-clipboard-desc "Você pode usar essas ferramentas úteis para nos fornecer informações adicionais." - :bug-report/section-clipboard-btn-title "Auxiliar da área de transferência" - :bug-report/section-clipboard-btn-desc "Inspetar e coletar dados da área de transferência" - :bug-report/section-issues-title "Ou..." - :bug-report/section-issues-desc "Se não houver ferramentas disponíveis para coletar informações adicionais, relate o bug diretamente." - :bug-report/section-issues-btn-title "Enviar um relatório de bug" - :bug-report/section-issues-btn-desc "Ajude a melhorar o Logseq!" - :bug-report/inspector-page-desc-1 "Pressione Ctrl+V / ⌘+V para inspecionar os dados da área de transferência" - :bug-report/inspector-page-desc-2 "ou clique aqui para colar se estiver usando a versão mobile" - :bug-report/inspector-page-placeholder "Pressione e segure aqui para colar se estiver no mobile" - :bug-report/inspector-page-tip "Algum problema? Sem problemas, clique para voltar para o passo anterior." - :bug-report/inspector-page-btn-back "Voltar" - :bug-report/inspector-page-btn-copy "Copiar o resultado" - :bug-report/inspector-page-copy-notif "Copiado para a área de transferência!" - :bug-report/inspector-page-btn-create-issue "Criar uma issue" - :bug-report/inspector-page-desc-clipboard "Aqui estão os dados lidos da área de transferência." - :bug-report/inspector-page-desc-copy "Se for seguro compartilhar, clique no botão de cópia." - :bug-report/inspector-page-desc-create-issue "Agora você pode relatar o resultado colado na sua área de transferência. Cole o resultado na seção 'Contexto Adicional' e indique de onde você copiou o conteúdo original. Obrigado!" - :help/title-usage "Uso" - :help/title-community "Comunidade" - :help/title-development "Desenvolvimento" - :help/title-about "Sobre" - :help/title-terms "Termos" - :help/start "Começando" - :help/about "Sobre o Logseq" - :help/roadmap "Roteiro" - :help/bug "Relatório de bug" - :help/feature "Solicitação de recurso" - :help/changelog "Registro de alterações" - :help/blog "Blog do Logseq" - :help/docs "Documentação" - :help/privacy "Política de privacidade" - :help/terms "Termos" - :help/forum-community "Comunidade do Fórum" - :help/awesome-logseq "Incrível Logseq" - :help/shortcuts "Atalhos de teclado" - :help/shortcuts-triggers "Gatilhos" - :help/shortcut "Atalho" - :help/slash-autocomplete "Barra de preenchimento automático" - :help/reference-autocomplete "Preenchimento automático de referência de página" - :help/block-reference "Referência de bloco" - :help/open-link-in-sidebar "Abrir link na barra lateral" - :search-item/page "Página" - :search-item/no-result "Nenhum resultado correspondente" - :help/context-menu "Bloquear menu de contexto" - :help/markdown-syntax "Sintaxe de Markdown" - :bold "Negrito" - :italics "Itálico" - :highlight "Destaque" - :strikethrough "Tachado" - :code "Código" - :untitled "Sem título" - :right-side-bar/help "Ajuda" - :right-side-bar/switch-theme "Temas" - :right-side-bar/contents "Conteúdo" - :right-side-bar/page-graph "Grafo da página" - :right-side-bar/block-ref "Referências de bloco" - :right-side-bar/graph-view "Visualização de grafo" - :right-side-bar/all-pages "Páginas" - :right-side-bar/flashcards "Flashcards" - :right-side-bar/show-journals "Mostrar diários" - :right-side-bar/separator "Manipulador de redimensionamento da barra lateral direita" - :right-side-bar/toggle-right-sidebar "Alternar barra lateral direita" - :right-side-bar/pane-close "Fechar" - :right-side-bar/pane-close-others "Fechar outros" - :right-side-bar/pane-close-all "Fechar todos" - :right-side-bar/pane-collapse "Recolher" - :right-side-bar/pane-collapse-others "Recolher outros" - :right-side-bar/pane-collapse-all "Recolher todos" - :right-side-bar/pane-expand "Expandir" - :right-side-bar/pane-expand-all "Expandir todos" - :right-side-bar/pane-open-as-page "Abrir como página" - :right-side-bar/pane-more "Mais" - :left-side-bar/switch "Troque para:" - :left-side-bar/journals "Diários" - :left-side-bar/assets "Imagens" - :left-side-bar/tasks "Tarefas" - :left-side-bar/nav-favorites "Favoritos" - :left-side-bar/nav-recent-pages "Recentes" - :page/something-went-wrong "Algo deu errado" - :page/logseq-is-having-a-problem "Logseq está com um problema. Para tentar fazê-lo voltar a funcionar, siga as etapas seguras a seguir:" - :page/step "Etapa {1}" - :page/try "Tentar" - :page/db-delete-confirmation "Você tem certeza que quer deletar essa página?" - :page/make-public "Torná-la pública para publicação" - :page/make-private "Tornar privado" - :page/delete "Excluir página" - :page/add-to-favorites "Adicionar aos Favoritos" - :page/unfavorite "Remover dos favoritos" - :block/name "Nome da página" - :page/copy-page-url "Copiar URL da página" - :page/convert-to-tag "Converter para Tag" - :page/convert-tag-to-page "Converter Tag para Página" - :file/name "Nome do arquivo" - :file/last-modified-at "Última modificação em" - :file/no-data "Sem dados" - :file/format-not-supported "Formato .{1} não é suportado." - :page/created-at "Criado em" - :page/updated-at "Atualizado em" - :page/backlinks "Backlinks" - :linked-references/filter-search "Buscar em páginas vinculadas" - :editor/block-search "Buscar um bloco" - :text/image "Imagem" - :asset/show-in-folder "Mostrar imagem na pasta" - :asset/open-in-browser "Abrir imagem no navegador" - :asset/delete "Excluir imagem" +{ + :account/authentication "Autenticação" + :account/benefits-desc "Com uma conta Logseq, você pode acessar serviços baseados na nuvem como o Logseq Sync e recursos alfa/beta." + :account/billing "Cobrança" + :account/billing-expired-on-label "Plano Pro expirou em: {1}" + :account/billing-expires-on-label "Plano Pro expira em: {1}" + :account/billing-next-date-label "Próxima data de cobrança: {1}" + :account/core-features "Acesso aos recursos principais do Logseq" + :account/current-plan "Plano atual" + :account/delete-account "Excluir conta" + :account/discover-sync-desc "Descubra o poder do {1}" + :account/early-access-alpha-beta "Acesso antecipado a recursos alfa/beta" + :account/first-name "Nome" + :account/free-plan-sync-limit "1 grafo sincronizado (até 50MB, somente notas)" + :account/last-name "Sobrenome" + :account/manage-plan "Gerenciar plano" + :account/month "mês" + :account/no-asset-syncing "Sem sincronização de arquivos" + :account/open-invoices "Abrir faturas" + :account/plan-free "Gratuito" + :account/plan-free-summary "Comece com sincronização básica" + :account/plan-pro "Pro" + :account/plan-pro-summary "Desbloqueie sincronização avançada e mais" + :account/pro-plan-sync-limit "10 grafos sincronizados (até 5GB cada)" + :account/profile "Perfil" + :account/refresh-token-warning "Atualização do token: status excepcional" + :account/reset-password "Redefinir senha" + :account/sign-up "Cadastrar" + :account/sync-assets-limit "Sincronizar arquivos de até 100MB por arquivo" + :account/synced-status "Sincronizado" + :account/unlimited-unsynced-graphs "Grafos não sincronizados ilimitados" + :account/upcoming-cloud-features "Recursos futuros baseados na nuvem, incluindo Logseq Publish" + :account/upgrade-plan "Atualizar plano" + :account/username "Nome de usuário" + + :asset/acceptable-file-extensions "Extensões de arquivo aceitas" + :asset/add-assets "Adicionar arquivos" + :asset/add-directory "Adicionar diretório" + :asset/alias-already-exists "O nome de alias \"{1}\" já existe!" + :asset/alias-directories "Diretórios de alias" + :asset/alias-directory-path-label "Caminho do diretório:" + :asset/alias-name-dialog-title "Qual o nome de alias deste diretório selecionado?" + :asset/alias-name-label "Nome do alias:" + :asset/alias-name-placeholder "ex. Livros" + :asset/align "Alinhamento" + :asset/align-center "Centro" + :asset/align-left "Esquerda" + :asset/align-right "Direita" + :asset/already-exists "O ativo já existe, título: {1}, referência do nó: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Não é possível incorporar o pai como sua própria propriedade" + :asset/confirm-delete-image "Tem certeza de que deseja excluir esta imagem?" :asset/copy "Copiar imagem" + :asset/copy-image-unsupported-extension "Copiar imagem não é compatível com arquivos {1}" + :asset/create-local-copy-warning "Criando um arquivo local a partir de um externo. Anotações em PDF requerem um arquivo local para funcionar corretamente." + :asset/create-title "Criar arquivo" + :asset/delete "Excluir imagem" + :asset/downloading "Baixando" + :asset/drop-hint "Arraste e solte arquivos aqui, ou clique para selecionar" + :asset/edit-title "Editar arquivo" + :asset/external-url-label "URL externa do arquivo:" + :asset/file-extension-placeholder "ex. mp3" :asset/maximize "Maximizar imagem" - :asset/ref-block "Bloco de referência de imagem" - :asset/confirm-delete "Tem certeza de que deseja excluir este {1}?" + :asset/open-in-browser "Abrir imagem no navegador" :asset/physical-delete "Remover também o arquivo (observe que ele não pode ser restaurado)" - :color/gray "Cinza" - :color/red "Vermelho" - :color/yellow "Amarelo" - :color/green "Verde" + :asset/ref-block "Bloco de referência" + :asset/select-file "Selecionar arquivo" + :asset/select-from-disk "Selecionar do disco" + :asset/selected-directories "Diretórios selecionados:" + :asset/show-file-in-folder "Mostrar arquivo na pasta" + :asset/size-too-large "O recurso é muito grande" + :asset/syncing "Sincronizando" + :asset/title-label "Título do arquivo:" + :asset/transfer-placeholder "{1} arquivos..." + :asset/uploading "Enviando" + + :block/click-to-fix-query "Clique para corrigir a consulta: {1}" + :block/copy-ref "Copiar referência de bloco" + :block/copy-url "Copiar URL do bloco" + :block/created-label "Criado em: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' está obsoleto. Use o comando '/Math block' em seu lugar." + :block/deprecated-query-syntax "#+BEGIN_QUERY está obsoleto. Use o comando '/Advanced Query' em seu lugar." + :block/deprecated-quote "#+BEGIN_QUOTE está obsoleto. Use o comando '/Quote' em seu lugar." + :block/empty-url "URL vazia" + :block/excalidraw-no-longer-supported "Excalidraw não é mais suportado por padrão, planejamos suportá-lo através de plugins." + :block/extraction-error "Erro na extração do bloco" + :block/hide-query "Ocultar consulta" + :block/invalid-hiccup "Hiccup inválido" + :block/invalid-link "Link inválido" + :block/invalid-url "URL inválida" + :block/large-block-warning "Blocos grandes não serão editáveis ou pesquisáveis para não deixar o app lento, por favor use outro editor para editar este bloco." + :block/last-edited-label "Última edição: {1}" + :block/not-found-warning "Nenhum bloco encontrado" + :block/open-block-references "Abrir referências do bloco" + :block/practice "Praticar" + :block/practice-cards "Praticar cartões" + :block/ref-nesting-too-deep "Aninhamento de referência de bloco é muito profundo" + :block/remove-tag "Remover tag" + :block/remove-this-tag "Remover esta tag" + :block/render-error "Erro de renderização do bloco:" + :block/set-query "Definir consulta" + :block/set-query-label "Definir consulta:" + :block/sort-order "Ordem de classificação" + :block/status-history "Histórico de status" + :block/untitled-query "Consulta sem título" + + :block.macro/embed-deprecated "{{embed}} está obsoleto. Use o comando '/Node embed' em vez disso." + :block.macro/namespace-deprecated "{{namespace}} está obsoleto. Use o recurso {1} em vez disso." + :block.macro/query-deprecated "{{query}} está obsoleto. Use o comando '/Query' em vez disso." + :block.macro/unsupported-name "Nome de macro não suportado: {1}" + + :block.reaction/emoji-required-warning "Emoji obrigatório" + :block.reaction/unsupported-emoji-warning "Emoji de reação não suportado" + + :bug-report/desc "Você pode nos ajudar enviando um relatório de bug? Vamos resolver isso o mais rápido possível." + :bug-report/title "Relatório de bug" + + :bug-report.clipboard/action-desc "Inspetar e coletar dados da área de transferência" + :bug-report.clipboard/action-title "Auxiliar da área de transferência" + :bug-report.clipboard/desc "Você pode usar essas ferramentas úteis para nos fornecer informações adicionais." + :bug-report.clipboard/title "O bug que você encontrou está relacionado a esses recursos?" + + :bug-report.inspector/back "Voltar" + :bug-report.inspector/clipboard-desc "Aqui estão os dados lidos da área de transferência." + :bug-report.inspector/copied "Copiado para a área de transferência!" + :bug-report.inspector/copy "Copiar o resultado" + :bug-report.inspector/copy-desc "Se for seguro compartilhar, clique no botão de cópia." + :bug-report.inspector/create-issue "Criar uma issue" + :bug-report.inspector/create-issue-desc "Agora você pode relatar o resultado colado na sua área de transferência. Cole o resultado na seção 'Additional Context' e indique de onde você copiou o conteúdo original. Obrigado!" + :bug-report.inspector/desc "Pressione {1} para inspecionar os dados da área de transferência\nou clique aqui para colar se estiver usando a versão mobile" + :bug-report.inspector/placeholder "Pressione e segure aqui para colar se estiver no mobile" + :bug-report.inspector/tip "Algum problema? Sem problemas, clique para voltar para o passo anterior." + :bug-report.inspector/title "Inspetor de dados da área de transferência" + + :bug-report.issue/action-desc "Ajude a melhorar o Logseq!" + :bug-report.issue/action-title "Enviar um relatório de bug" + :bug-report.issue/desc "Se não houver ferramentas disponíveis para coletar informações adicionais, relate o bug diretamente." + :bug-report.issue/report-link "Reportar problema" + :bug-report.issue/title "Ou..." + + :class/add-property "Adicionar propriedade de tag" + :class/tag-properties-desc "As propriedades da tag são herdadas por todos os nós que usam a tag. Por exemplo, cada nó #Task herda 'Status' e 'Priority'." + :class/tagged-nodes "Nós com tag" + + :class.built-in/asset "Arquivo" + :class.built-in/card "Cartão" + :class.built-in/cards "Cartões" + :class.built-in/code-block "Código" + :class.built-in/journal "Diário" + :class.built-in/math-block "Matemática" + :class.built-in/page "Página" + :class.built-in/pdf-annotation "Anotação PDF" + :class.built-in/property "Propriedade" + :class.built-in/query "Consulta" + :class.built-in/quote-block "Citação" + :class.built-in/root "Tag raiz" + :class.built-in/tag "Tag" + :class.built-in/task "Tarefa" + :class.built-in/template "Modelo" + :class.built-in/whiteboard "Quadro branco" + + :class.validation/built-in-extends-change "A herança de elementos integrados não pode ser alterada." + :class.validation/cant-add-tag-on-built-in "Não é possível adicionar tag no \"{1}\" integrado." + :class.validation/cant-remove-private-tags "Não é possível remover tags privadas: {1}." + :class.validation/cant-remove-tag-built-in "Não é possível remover a tag com #{1} integrado." + :class.validation/cant-remove-tag-on-built-in "Não é possível remover a tag no \"{1}\" integrado." + :class.validation/cant-set-tag-built-in "Não é possível definir tag com #{1} integrado." + :class.validation/duplicate "A tag '{1}' já existe." + :class.validation/extends-cycle "Ciclo detectado na relação de herança." + :class.validation/invalid-extends-type "Tipo de herança inválido." + :class.validation/parents-must-be-tags "Os pais de tags devem ser tags." + :class.validation/tag-with-non-tag "Não é possível definir tag com página integrada que não seja uma tag \"{1}\"." + + :cmdk.action/apply-theme "Aplicar tema" + :cmdk.action/copy-ref "Copiar referência" + :cmdk.action/create "Criar" + :cmdk.action/filter "Filtrar" + :cmdk.action/open "Abrir" + :cmdk.action/open-in-sidebar "Abrir na barra lateral" + :cmdk.action/search "Buscar" + :cmdk.action/trigger "Executar" + + :cmdk.create/configure-tag "Configurar tag" + :cmdk.create/page "Criar página" + :cmdk.create/tag "Criar tag" + + :cmdk.error/no-block-link "Este bloco não contém links." + :cmdk.error/no-page-link "Esta página não contém links." + :cmdk.error/no-search-item-link "Este resultado de busca não contém links." + + :cmdk.filter/add "Adicionar filtro" + :cmdk.filter/codes "Somente código" + :cmdk.filter/commands "Somente comandos" + :cmdk.filter/current-page "Somente página atual" + :cmdk.filter/files "Somente arquivos" + :cmdk.filter/nodes "Somente nós" + :cmdk.filter/only-label "Somente busca:" + :cmdk.filter/themes "Somente temas" + + :cmdk.group/codes "Código" + :cmdk.group/commands "Comandos" + :cmdk.group/create "Criar" + :cmdk.group/current-page "Página atual" + :cmdk.group/files "Arquivos" + :cmdk.group/filters "Filtros" + :cmdk.group/nodes "Nós" + :cmdk.group/recently-updated "Atualizados recentemente" + :cmdk.group/themes "Temas" + + :cmdk.info/configure-tag "Configurar #{1}" + :cmdk.info/create-page "Criar a página '{1}'" + :cmdk.info/create-tag "Criar a tag '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Adicionar filtro de grafo" + :cmdk.input/default-placeholder "O que você está procurando?" + :cmdk.input/move-blocks-placeholder "Mover blocos" + :cmdk.input/type-page-name-placeholder "Digite o nome da página" + + :cmdk.tip/clear-filter "Pressione {1} para limpar o filtro de busca" + :cmdk.tip/filter-results "Pressione {1} para filtrar os resultados da busca" + :cmdk.tip/label "Dica:" + :cmdk.tip/open-sidebar "Pressione {1} para abrir a busca na barra lateral" + + :collaboration/email-address "Endereço de e-mail" + :collaboration/invite "Convidar" + :collaboration/members "Membros:" + :collaboration/remove-access "Remover acesso" + :collaboration/remove-access-error "Falha ao remover o membro" + :color/blue "Azul" - :color/purple "Roxo" + :color/crimson "Carmesim" + :color/cyan "Ciano" + :color/grass "Verde-grama" + :color/gray "Cinza" + :color/green "Verde" + :color/indigo "Índigo" + :color/orange "Laranja" :color/pink "Rosa" - :editor/copy "Copiar" - :editor/cut "Recortar" - :editor/expand-block-children "Expandir todos" - :editor/collapse-block-children "Recolher todos" - :editor/delete-selection "Excluir blocos selecionados" - :editor/cycle-todo "Alternar o estado TODO do item atual" - :dev/show-page-data "(Dev) Mostrar dados da página" - :dev/show-block-data "(Dev) Mostrar dados do bloco" - :dev/show-block-ast "(Dev) Mostrar AST do bloco" - :content/copy-export-as "Copiar / Exportar como.." - :content/copy-block-url "Copiar URL do bloco" - :content/copy-block-ref "Copiar referência de bloco" - :content/copy-ref "Copiar esta referência" - :content/delete-ref "Excluir esta referência" - :content/replace-with-text "Substituir por texto" - :content/replace-with-embed "Substituir por incorporação" - :content/open-in-sidebar "Abrir na barra lateral" - :content/click-to-edit "Clique para editar" - :context-menu/make-a-flashcard "Criar um Flashcard" - :context-menu/toggle-number-list "Alternar lista numerada" - :settings-page/ai "IA" - :settings-page/tab-ai "IA" - :settings-page/enable-mcp-server "Servidor MCP" - :settings-page/enable-mcp-server-desc "Habilitar Servidor MCP para permitir comunicação com aplicações locais de IA. O Servidor MCP depende do servidor HTTP API." - :settings-page/edit-config-edn "Editar config.edn" - :settings-page/edit-global-config-edn "Editar config.edn global" - :settings-page/edit-custom-css "Editar custom.css" - :settings-page/edit-export-css "Editar export.css" - :settings-page/custom-configuration "Configuração personalizada" - :settings-page/custom-global-configuration "Configuração global personalizada" - :settings-page/theme-light "Claro" - :settings-page/theme-dark "Escuro" - :settings-page/theme-system "Sistema" - :settings-page/custom-theme "Tema personalizado" - :settings-page/export-theme "Exportar tema" - :settings-page/show-brackets "Mostrar colchetes" - :settings-page/wide-mode "Modo amplo" - :settings-page/editor-font "Fonte" - :settings-page/accent-color "Cor de destaque" - :settings-page/accent-color-alert "Escolher uma cor de destaque pode sobrescrever qualquer tema selecionado." - :settings-page/spell-checker "Verificador ortografo" - :settings-page/auto-updater "Atualização automática" - :settings-page/disable-sentry "Enviar dados de uso e diagnósticos para o Logseq" - :settings-page/disable-sentry-desc "O Logseq nunca coletará o banco de dados do seu grafo local nem venderá seus dados." - :settings-page/preferred-outdenting "Recuo lógico" - :settings-page/preferred-outdenting-tip "O lado esquerdo mostra o recuo com a configuração padrão, e o lado direito mostra o recuo com o recuo lógico ativado " - :settings-page/preferred-outdenting-tip-more "→ Saiba mais" - :settings-page/show-full-blocks "Mostrar todas as linhas de uma referência de bloco" - :settings-page/auto-expand-block-refs "Expandir automaticamente as referências de bloco ao dar zoom" - :settings-page/auto-expand-block-refs-tip "Esta opção controla se as referências de bloco são expandidas automaticamente ao dar zoom." - :settings-page/custom-date-format "Formato de data preferido" - :settings-page/preferred-pasting-file-hint "Quando ativado, colar uma imagem da internet fará o download e inserirá a imagem. Quando desativado, ele colará o link da imagem." - :settings-page/preferred-pasting-file "Preferir colar arquivo" - :settings-page/enable-shortcut-tooltip "Ativar dica de atalho" - :settings-page/enable-tooltip "Dicas de ferramentas" - :settings-page/enable-journals "Diários" - :settings-page/enable-all-pages-public "Todas as páginas públicas ao publicar" - :settings-page/home-default-page "Definir a página inicial padrão" - :settings-page/clear-cache "Limpar cache" - :settings-page/clear "Limpar" - :settings-page/clear-cache-warning "Limpar o cache descartará os grafos abertos. Você perderá as alterações não salvas." - :settings-page/developer-mode "Modo desenvolvedor" - :settings-page/developer-mode-desc "O modo desenvolvedor ajuda os contribuidores e desenvolvedores de extensões a testar suas integrações com o Logseq de maneira mais eficiente." - :settings-page/current-version "Versão atual" - :settings-page/tab-general "Geral" - :settings-page/tab-editor "Editor" - :settings-page/tab-keymap "Mapa de teclas" - :settings-page/tab-account "Conta" - :settings-page/tab-advanced "Avançado" - :settings-page/tab-features "Recursos" - :settings-page/tab-collaboration "Colaboração" - :settings-page/tab-encryption "Criptografia de ponta a ponta" - :settings-page/enable-flashcards "Flashcards" - :settings-page/network-proxy "Proxy de rede" - :settings-page/login-prompt "Para acessar novos recursos antes de qualquer outra pessoa, você deve ser um Patrocinador ou Apoiador do Logseq no Open Collective e, portanto, fazer login primeiro." - :settings-page/native-titlebar "Barra de título nativa" - :settings-page/native-titlebar-desc "Ativa a barra de título da janela nativa no Windows e Linux." - :settings-page/check-for-updates "Verificar atualizações" - :settings-page/checking "Verificando ..." - :settings-page/revision "Revisão: " - :settings-page/changelog "O que há de novo?" - :settings-page/app-updated "Seu aplicativo está atualizado 🎉" - :settings-page/update-available "Nova versão encontrada " - :settings-page/update-error-1 "⚠️ Ops, algo deu errado!" - :settings-page/update-error-2 " Por favor, verifique o " - :settings-page/auto-chmod "Alterar automaticamente as permissões do arquivo" - :settings-page/auto-chmod-desc "Desabilite para permitir edição por vários usuários com permissões concedidas por associação a um grupo." - :yes "Sim" - - :cancel "Cancelar" - :close "Fechar" - :delete "Excluir" - :save "Salvar" - :type "Tipo" - :host "Servidor" - :port "Porta" - :flashcards/modal-welcome-title "Hora de criar um cartão!" - :flashcards/modal-welcome-desc-1 "Você pode adicionar \"{1}\" a qualquer bloco para transformá-lo em um cartão ou acionar \"/cloze\" para adicionar algumas partes ocultas." - :flashcards/modal-finished "Parabéns, você revisou todos os cartões para esta consulta, nos vemos na próxima vez! 💯" - :home "Início" - :new-page "Nova página:" - :new-tag "Nova tag:" - :graph "Grafo" - :graph/all-graphs "Todos os grafos" - :graph/local-graphs "Grafos locais:" - :graph/remote-graphs "Grafos remotos:" - :graph/shared-graphs "Compartilhado por outros:" - :export "Exportar" - :export-graph "Exportar grafo" - :export-page "Exportar página" - :export-markdown "Exportar como Markdown padrão (sem propriedades de bloco)" - :export-public-pages "Exportar páginas públicas" - :export-db-edn "Exportar arquivo EDN" - :export-sqlite-db "Exportar SQLite DB" - :export-zip "Exportar ambos SQLite DB e imagens" - :export-transparent-background "Fundo transparente" - :export-copy-to-clipboard "Copiar para a área de transferência" - :export-copied-to-clipboard "Copiado para a área de transferência!" - :export-save-to-file "Salvar em arquivo" - :all-graphs "Todos os grafos" - :all-pages "Páginas" - :all-pages/table-title (fn [total] (str total (if (= total 1) " Página" " Páginas"))) - :all-pages/failed-to-delete-pages "Essas páginas tiveram seu conteúdo deletado, mas não podem ser deletadas:: {1}. Veja o console do JavaScript para mais detalhes." - :all-files "Todos os arquivos" - :all-journals "Todos os diários" - :settings "Configurações" - :plugins "Plugins" - :themes "Temas" - :appearance "Aparência" - :relaunch-confirm-to-work "Necessita reiniciar o aplicativo para funcionar. Deseja reiniciá-lo agora?" - :import-notes "Importar notas existentes" - :import "Importar" - :importing "Importando" - :help-shortcut-title "Clique para verificar os atalhos e outras dicas" - :loading "Carregando..." - :login "Entrar" - :logout "Sair" - :download "Baixar" - :language "Idioma" - :remove-background "Remover fundo" - :remove-heading "Remover cabeçalho" - :heading "Cabeçalho {1}" - :auto-heading "Cabeçalho automático" - :toggle-theme "Alternar tema" - - :help/shortcut-page-title "Atalhos de teclado" - - :plugin/installed "Instalado" - :plugin/installed-plugin "Plugin instalado: {1}" - :plugin/not-installed "Não instalado" - :plugin/installing "Instalando" - :plugin/install "Instalar" - :plugin/reload "Recarregar" - :plugin/update "Atualizar" - :plugin/update-plugin "Atualizar plugin: {1} - {2}" - :plugin/check-update "Verificar atualização" - :plugin/check-all-updates "Verificar todas as atualizações" - :plugin/found-updates "Novas atualizações" - :plugin/found-n-updates "Encontradas {1} atualizações" - :plugin/update-all-selected "Atualizar todos os selecionados" - :plugin/all-updated "Todos atualizados!" - :plugin/updates-downloading "Baixando atualizações" - :plugin/refresh-lists "Atualizar listas" - :plugin/enabled "Ativado" - :plugin/disabled "Desativado" - :plugin/update-available "Atualização disponível" - :plugin/updating "Atualizando" - :plugin/uninstall "Desinstalar" - :plugin/marketplace "Loja de plugins" - :plugin/stars "Estrelas" - :plugin/title "Título ({1})" - :plugin/all "Todos" - :plugin/unpacked "Descompactado" - :plugin/delete-alert "Tem certeza de que deseja desinstalar o plugin [{1}]?" - :plugin/open-settings "Abrir configurações" - :plugin/open-package "Abrir pacote" - :plugin/report-security "Reportar plugin" - :plugin/load-unpacked "Carregar plugin descompactado" - :plugin/restart "Reiniciar aplicativo" - :plugin/unpacked-tips "Selecione o diretório do plugin" - :plugin/contribute "✨ Escreva e envie um novo plugin" - :plugin/up-to-date "Está atualizado {1}" - :plugin/custom-js-alert "Encontrado o arquivo custom.js, permitir a execução? (Se você não entende o conteúdo deste arquivo, é recomendável não permitir a execução, pois isso tem certos riscos de segurança.)" - :plugin/security-warning "Os plugins podem acessar o seu grafo e os seus arquivos locais, fazer requisições de rede. - Eles também podem causar corrupção ou perda de dados. Estamos trabalhando em regras de acesso adequadas para os seus grafos. - Enquanto isso, certifique-se de fazer backups regulares dos seus grafos e só instale os plugins quando puder ler e - entender o código-fonte." - :plugin/search-plugin "Pesquisar plugins" - :plugin/open-preferences "Abrir Preferências" - :plugin/open-logseq-dir "Abrir" - :plugin/remote-error "Erro remoto: " - :plugin/checking-for-updates "Verificando atualizações de plugins ..." - :plugin/list-of-updates "Atualizações de plugins: " - :plugin/auto-check-for-updates "Verificação automática de atualizações" - :plugin/load-from-web-url "Carregar plugin de URL web" - :plugin.install-from-file/menu-title "Instalar a partir de plugins.edn" - :plugin.install-from-file/title "Instalar plugins a partir de plugins.edn" - :plugin.install-from-file/notice "Os seguintes plugins substituirão os seus plugins:" - :plugin.install-from-file/success "Todos os plugins foram instalados!" - - :pdf/copy-ref "Copiar referência" - :pdf/copy-text "Copiar texto" - :pdf/linked-ref "Referências vinculadas" - :pdf/toggle-dashed "Estilo tracejado para destaque de área" - :pdf/hl-block-colored "Rótulo colorido para destaque de bloco" - :pdf/auto-open-context-menu "Abrir automaticamente o menu de contexto para seleções" - :pdf/doc-metadata "Metadados do documento" - - :updater/new-version-install "Uma nova versão foi baixada." - :updater/quit-and-install "Reiniciar para instalar" - - :tips/all-done "Tudo pronto!" - - :select/default-prompt "Selecionar um" - :select/default-select-multiple "Selecionar um ou vários" - :select.graph/prompt "Selecione um grafo" - :select.graph/empty-placeholder-description "Nenhum grafo correspondente. Deseja adicionar outro?" - :select.graph/add-graph "Sim, adicione outro grafo" - - :notification/clear-all "Limpar tudo" - - :shortcut.category/basics "Noções básicas" - :shortcut.category/formatting "Formatação" - :shortcut.category/navigating "Navegação" - :shortcut.category/block-editing "Edição geral de blocos" - :shortcut.category/block-command-editing "Edição de comando de blocos" - :shortcut.category/block-selection "Seleção de blocos (pressione Esc para sair da seleção)" - :shortcut.category/toggle "Alternar" - :shortcut.category/others "Outros" - :shortcut.category/plugins "Plugins" - - :keymap/all "Todos" - :keymap/disabled "Desabilitar" - :keymap/unset "Desativar" - :keymap/custom "Customizar" - :keymap/keystroke-filter "Filtro de teclas" - :window/minimize "Minimizar" - :window/maximize "Maximizar" - :window/restore "Restaurar" - :window/close "Fechar" - :window/exit-fullscreen "Sair da tela cheia" - - :header/toggle-left-sidebar "Alternar barra lateral esquerda" - :header/search "Produrar" - :header/more "Mais" - :header/go-back "Voltar" - :header/go-forward "Avançar" - - :views.table/default-title (fn [total] (str total (if (<= total 1) " Nodo" " Nodos"))) - :views.table/live-query-title (fn [total] (str "Consulta em tempo real (" total ")")) + :color/plum "Ameixa" + :color/purple "Roxo" + :color/red "Vermelho" + :color/teal "Azul-petróleo" + :color/tomato "Tomate" + :color/violet "Violeta" + :color/yellow "Amarelo" :command.auto-complete/complete "Auto-completar: Escolher item selecionado" + :command.auto-complete/meta-complete "Autocompletar Meta" :command.auto-complete/next "Auto-completar: Selecionar próximo item" :command.auto-complete/prev "Auto-completar: Selecionar item anterior" :command.auto-complete/shift-complete "Auto-completar: Abrir item selecionado na barra lateral" - :command.auto-complete/meta-complete "Auto-completar: Cmd + Enter para escolher o item selecionado" - :command.cards/again "Cartões: novamente" - :command.cards/easy "Cartões: fácil" - :command.cards/good "Cartões: bom" - :command.cards/hard "Cartões: difícil" - :command.cards/toggle-answers "Cartões: mostrar/ocultar respostas/ocultados" - :command.command/run "Executar comando git" - :command.command/toggle-favorite "Adicionar/remover dos favoritos" + :command.command-palette/toggle "Pesquisar comandos" - :command.dev/show-block-ast "(Dev) Mostrar AST do bloco" - :command.dev/show-block-data "(Dev) Mostrar dados do bloco" - :command.dev/replace-graph-with-db-file "(Dev) Substituir grafo pelo seu arquivo db.sqlite" - :command.dev/validate-db "(Dev) Valide o atual grafo" - :command.dev/gc-graph "(Dev) Garbage collect no grafo (remover dados não utilizados no SQLite)" - :command.dev/rtc-start "(Dev) RTC Começar" - :command.dev/rtc-stop "(Dev) RTC Parar" - :command.dev/show-page-data "(Dev) Mostrar dados da página" + + :command.editor/add-property "Adicionar propriedade" + :command.editor/add-property-deadline "Adicionar prazo" + :command.editor/add-property-icon "Adicionar ícone" + :command.editor/add-property-priority "Adicionar prioridade" + :command.editor/add-property-status "Adicionar status" + :command.editor/add-reaction "Adicionar reação" :command.editor/backspace "Backspace / Apagar" :command.editor/backward-kill-word "Excluir uma palavra com backspace" :command.editor/backward-word "Mover cursor para trás da palavra" @@ -415,7 +264,6 @@ :command.editor/bold "Negrito" :command.editor/clear-block "Excluir conteúdo inteiro do bloco" :command.editor/collapse-block-children "Contrair" - :command.editor/toggle-block-children "Alternar expandir/recolher" :command.editor/copy "Copiar (copia seleção ou referência de bloco)" :command.editor/copy-embed "Copiar incorporação de bloco apontando para o bloco atual" :command.editor/copy-page-url "Copiar URL da página" @@ -436,21 +284,22 @@ :command.editor/insert-link "Link de HTML" :command.editor/insert-youtube-timestamp "Inserir timestamp do YouTube" :command.editor/italics "Itálico" + :command.editor/jump "Ir para" :command.editor/kill-line-after "Excluir linha após a posição do cursor" :command.editor/kill-line-before "Excluir linha antes da posição do cursor" :command.editor/left "Mover cursor para a esquerda / Abrir bloco selecionado no início" - :command.editor/move-block-up "Mover bloco para cima" :command.editor/move-block-down "Mover bloco para baixo" + :command.editor/move-block-up "Mover bloco para cima" :command.editor/move-blocks "Mover blocos" :command.editor/new-block "Criar novo bloco" :command.editor/new-line "Nova linha no bloco atual" :command.editor/open-edit "Editar bloco selecionado" - :command.editor/open-selected-blocks-in-sidebar "Abra o(s) bloco(s) selecionado(s) na barra-lateral" :command.editor/open-link-in-sidebar "Abrir link na barra lateral" + :command.editor/open-selected-blocks-in-sidebar "Abrir blocos selecionados na barra lateral" :command.editor/outdent "Diminuir recuo do bloco" :command.editor/paste-text-in-one-block-at-point "Colar texto em um bloco no lugar" + :command.editor/quick-add "Adição rápida" :command.editor/redo "Refazer" - :command.editor/quick-add "Adicionar rapidamente" :command.editor/right "Mover cursor para a direita / Abrir bloco selecionado no final" :command.editor/select-all-blocks "Selecionar todos os blocos" :command.editor/select-block-down "Selecionar bloco abaixo" @@ -458,24 +307,17 @@ :command.editor/select-down "Selecionar conteúdo abaixo" :command.editor/select-parent "Selecionar bloco pai" :command.editor/select-up "Selecionar conteúdo acima" + :command.editor/set-tags "Definir tags" :command.editor/strike-through "Riscar" + :command.editor/toggle-block-children "Mostrar/ocultar filhos do bloco" + :command.editor/toggle-display-hidden-properties "Mostrar/ocultar propriedades ocultas" :command.editor/toggle-number-list "Alternar lista numerada" - :command.editor/add-property "Adicionar propriedade" - :command.editor/set-tags "Definir tags para o(s) bloco(s) selecionado(s)" - :command.editor/add-property-deadline "Adicionar prazo da tarefa ao bloco selecionado" - :command.editor/add-property-status "Adicionar estado da tarefa ao bloco selecionado" - :command.editor/add-property-priority "Adicionar prioridade da tarefa ao bloco selecionado" - :command.editor/add-property-icon "Adicionar ícone" - :command.editor/jump "Pular para uma chave ou valor de propriedade" :command.editor/toggle-open-blocks "Alternar blocos abertos (contrair ou expandir todos os blocos)" :command.editor/undo "Desfazer" :command.editor/up "Mover cursor para cima / Selecionar para cima" :command.editor/zoom-in "Dar zoom no bloco em edição / Avançar caso contrário" :command.editor/zoom-out "Dar zoom out no bloco em edição / Retroceder caso contrário" - :command.misc/export-block-data "Exportar dados EDN do bloco" - :command.misc/export-page-data "Exportar dados EDN da página" - :command.misc/export-graph-ontology-data "Exportar tags e propriedades EDN do grafo" - :command.misc/import-edn-data "Importar dados EDN" + :command.go/all-graphs "Ir para todos os grafos" :command.go/all-pages "Ir para todas as páginas" :command.go/backward "Retroceder" @@ -491,32 +333,49 @@ :command.go/next-journal "Ir para o próximo diário" :command.go/prev-journal "Ir para o diário anterior" :command.go/search "Pesquisar páginas e blocos" - :command.go/search-themes "Pesquisar temas" :command.go/search-in-page "Pesquisar blocos na página" + :command.go/search-themes "Buscar temas" :command.go/tomorrow "Ir para amanhã" + :command.graph/add "Adicionar um grafo" - :command.graph/db-add "Adicionar um grafo DB" - :command.graph/db-save "Salve o atual db para o disco (~/logseq/graphs/seu-atual-grafo)" + :command.graph/db-add "Adicionar ao banco de dados" + :command.graph/db-save "Salvar banco de dados" :command.graph/export-as-html "Exportar páginas de grafos públicos como HTML" :command.graph/open "Selecionar grafo para abrir" :command.graph/remove "Remover um grafo" + :command.misc/copy "Copiar" + :command.misc/export-block-data "Exportar dados do bloco" + :command.misc/export-graph-ontology-data "Exportar dados da ontologia do grafo" + :command.misc/export-page-data "Exportar dados da página" + :command.misc/import-edn-data "Importar dados EDN" + + :command.page/toggle-favorite "Adicionar/remover dos favoritos" + :command.pdf/close "PDF: Fechar documento PDF atual" :command.pdf/find "PDF: Pesquisar texto do documento PDF atual" :command.pdf/next-page "PDF: Próxima página do documento PDF atual" :command.pdf/previous-page "PDF: Página anterior do documento PDF atual" + + :command.publish/open-dialog "Abrir diálogo de publicação" + :command.search/re-index "Reconstruir índice de pesquisa" + + :command.shell/run "Executar comando git" + :command.sidebar/clear "Limpar todos na barra lateral direita" :command.sidebar/close-top "Fechar o item superior na barra lateral direita" :command.sidebar/open-today-page "Abrir a página de hoje na barra lateral direita" + :command.ui/clear-all-notifications "Limpar todas as notificações" + :command.ui/customize-appearance "Personalizar aparência" :command.ui/goto-plugins "Ir para o painel de plugins" + :command.ui/highlight-recent-blocks "Destacar blocos recentes" + :command.ui/install-plugin-from-github "Instalar plugin do GitHub" :command.ui/install-plugins-from-file "Instalar plugins do arquivo plugins.edn" - :command.ui/install-plugin-from-github "Instalar plugin a partir de release do Github" :command.ui/select-theme-color "Selecionar cores de tema disponíveis" :command.ui/toggle-brackets "Alternar se deve exibir colchetes" :command.ui/toggle-contents "Alternar conteúdo na barra lateral" - :command.ui/customize-appearance "Personalizar aparência" :command.ui/toggle-document-mode "Alternar modo de documento" :command.ui/toggle-help "Alternar ajuda" :command.ui/toggle-left-sidebar "Alternar barra lateral esquerda" @@ -524,21 +383,1479 @@ :command.ui/toggle-settings "Alternar configurações" :command.ui/toggle-theme "Alternar entre tema escuro/claro" :command.ui/toggle-wide-mode "Alternar modo amplo" - :command.ui/highlight-recent-blocks "Alternar destaque de blocos recentes" - :command.editor/toggle-display-hidden-properties "Alternar exibição de propriedades ocultas" - :command.window/close "Fechar janela" - :help/search "Pesquisar páginas/blocos/comandos" - :linked-references/filter-directions "Clique para incluir e shift-clique para excluir. Clique novamente para remover." - :linked-references/filter-excludes "Excluir: " - :linked-references/filter-heading "Filtrar" - :linked-references/filter-includes "Incluir: " - ;; Allowed duplicates - start - :settings-of-plugins "Plugins" - :plugin/downloads "Downloads" - :plugin/popular "Popular" - :settings-page/plugin-system "Plugins";; Allowed duplicates - end - ;; Os comandos estão aninhados por enquanto para permanecerem sincronizados com o sistema de atalhos. - ;; Outras linguagens não devem aninhar chaves em :commands - - } + :command.window/close "Fechar janela" + + :context-menu/developer-tools "Ferramentas do desenvolvedor" + :context-menu/make-a-flashcard "Criar um Flashcard" + :context-menu/set-icon "Definir ícone" + :context-menu/toggle-number-list "Alternar lista numerada" + + :date/invalid-date-warning "{1} não é uma data válida. Por favor, tente novamente" + + :date.nlp/last-friday "Sexta passada" + :date.nlp/last-monday "Segunda passada" + :date.nlp/last-month "Mês passado" + :date.nlp/last-saturday "Sábado passado" + :date.nlp/last-sunday "Domingo passado" + :date.nlp/last-thursday "Quinta passada" + :date.nlp/last-tuesday "Terça passada" + :date.nlp/last-wednesday "Quarta passada" + :date.nlp/last-week "Semana passada" + :date.nlp/last-year "Ano passado" + :date.nlp/next-friday "Sexta que vem" + :date.nlp/next-monday "Segunda que vem" + :date.nlp/next-month "Próximo mês" + :date.nlp/next-saturday "Sábado que vem" + :date.nlp/next-sunday "Domingo que vem" + :date.nlp/next-thursday "Quinta que vem" + :date.nlp/next-tuesday "Terça que vem" + :date.nlp/next-wednesday "Quarta que vem" + :date.nlp/next-week "Próxima semana" + :date.nlp/next-year "Próximo ano" + :date.nlp/this-friday "Esta sexta-feira" + :date.nlp/this-monday "Esta segunda-feira" + :date.nlp/this-month "Este mês" + :date.nlp/this-saturday "Este sábado" + :date.nlp/this-sunday "Este domingo" + :date.nlp/this-thursday "Esta quinta-feira" + :date.nlp/this-tuesday "Esta terça-feira" + :date.nlp/this-wednesday "Esta quarta-feira" + :date.nlp/this-week "Esta semana" + :date.nlp/this-year "Este ano" + :date.nlp/today "Hoje" + :date.nlp/tomorrow "Amanhã" + :date.nlp/yesterday "Ontem" + + :deeplink/open-block-error "Não foi possível abrir o link. O ID do bloco `{1}` não existe no grafo atual." + :deeplink/open-graph-error "Não foi possível abrir o grafo. O grafo `{1}` não existe." + :deeplink/open-page-error "Não foi possível abrir o link. A página `{1}` não existe no grafo atual." + + :editor/add-content-first-warning "Por favor, adicione algum conteúdo primeiro." + :editor/auto-heading "Título automático" + :editor/block-search "Buscar um bloco" + :editor/click-to-edit "Clique para editar" + :editor/code-language-placeholder "Escolher linguagem" + :editor/collapse-block-children "Recolher todos" + :editor/cut "Recortar" + :editor/cycle-todo "Alternar o estado TODO do item atual" + :editor/delete-selection "Excluir blocos selecionados" + :editor/display-tag-inline-hint "para exibir esta tag em linha em vez de no final deste nó." + :editor/expand-block-children "Expandir todos" + :editor/heading "Título {1}" + :editor/moving-blocks-count "Movendo {1} blocos" + :editor/new-page "Nova página" + :editor/new-tag "Nova tag" + :editor/no-block-selected-warning "Nenhum bloco selecionado" + :editor/paste "Colar" + :editor/reference-node-use-page-ref "Para referenciar um nó, use `[[]]`." + :editor/remove-heading "Remover título" + :editor/search-for-node "Buscar um nó" + :editor/search-for-tag "Buscar uma tag" + :editor/search-template-placeholder "Pesquisar um modelo" + :editor/template-insert-error "Erro ao inserir modelo: {1}" + + :editor.document-mode/new-block-hint "{1} para criar novo bloco" + :editor.document-mode/title "Modo documento" + :editor.document-mode/toggle-desc "Clique `D` ou digite {1} para alternar o modo documento" + + :editor.quick-add/add-to-today "Adicionar à página de hoje" + :editor.quick-add/title "Adição rápida" + + :editor.slash/advanced-query "Consulta avançada" + :editor.slash/advanced-query-desc "Criar um bloco de consulta avançada" + :editor.slash/calculator "Calculadora" + :editor.slash/calculator-desc "Inserir uma calculadora" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Bloco de código" + :editor.slash/code-block-desc "Inserir bloco de código" + :editor.slash/current-time "Hora atual" + :editor.slash/current-time-desc "Inserir a hora atual" + :editor.slash/date-picker "Seletor de data" + :editor.slash/date-picker-desc "Selecionar uma data e inserir aqui" + :editor.slash/embed-html "Incorporar HTML" + :editor.slash/embed-twitter-tweet "Incorporar tweet do Twitter" + :editor.slash/embed-video-url "Incorporar URL de vídeo" + :editor.slash/embed-youtube-timestamp "Incorporar timestamp do YouTube" + :editor.slash/group-advanced "AVANÇADO" + :editor.slash/group-basic "BÁSICO" + :editor.slash/group-format "FORMATO" + :editor.slash/group-heading "Cabeçalho" + :editor.slash/group-list-type "TIPO DE LISTA" + :editor.slash/group-plugins "PLUGINS" + :editor.slash/group-priority "PRIORIDADE" + :editor.slash/group-task-date "DATA DA TAREFA" + :editor.slash/group-task-status "STATUS DA TAREFA" + :editor.slash/group-time-and-date "HORA E DATA" + :editor.slash/heading-label "Cabeçalho {1}" + :editor.slash/image-link "Link de imagem" + :editor.slash/image-link-desc "Criar um link HTTP para uma imagem" + :editor.slash/link-desc "Criar um link HTTP" + :editor.slash/math-block "Bloco matemático" + :editor.slash/math-block-desc "Criar um bloco LaTeX" + :editor.slash/no-priority "Sem prioridade" + :editor.slash/node-embed "Incorporação de nó" + :editor.slash/node-embed-desc "Incorporar um nó aqui" + :editor.slash/node-reference "Referência de nó" + :editor.slash/node-reference-desc "Criar um backlink para um nó (uma página ou um bloco)" + :editor.slash/normal-text "Texto normal" + :editor.slash/normal-text-desc "Limpar cabeçalho e definir como texto normal" + :editor.slash/number-children "Filhos numerados" + :editor.slash/number-list "Lista numerada" + :editor.slash/priority-desc "Definir prioridade para {1}" + :editor.slash/priority-label "Prioridade {1}" + :editor.slash/query-function "Função de consulta" + :editor.slash/query-function-desc "Criar uma função de consulta" + :editor.slash/quote-desc "Criar um bloco de citação" + :editor.slash/status-desc "Definir status para {1}" + :editor.slash/template-desc "Inserir um modelo criado aqui" + :editor.slash/today-desc "Inserir a data de hoje" + :editor.slash/tomorrow-desc "Inserir a data de amanhã" + :editor.slash/underline "Sublinhado" + :editor.slash/underline-desc "Criar uma decoração de texto sublinhada" + :editor.slash/upload-asset "Enviar um arquivo" + :editor.slash/upload-asset-desc "Enviar tipos de arquivo como imagem, PDF, DOCX, etc." + :editor.slash/yesterday-desc "Inserir a data de ontem" + + :electron/about "Sobre o Logseq" + :electron/add-to-dictionary "Adicionar ao dicionário" + :electron/block-not-exist "Falha ao abrir o link. O ID do bloco `{1}` não existe no grafo." + :electron/cancel "Cancelar" + :electron/copy-image "Copiar imagem" + :electron/link-open-confirm "Tem certeza de que deseja abrir este link?\n{1}" + :electron/link-open-failed-missing-graph "Não foi possível abrir o link. Grafo ausente." + :electron/link-open-failed-no-graph "Falha ao abrir o link. Não foi possível associar o identificador de grafo `{1}` a nenhum grafo vinculado." + :electron/link-open-failed-no-target "Falha ao abrir o link. Não foi possível associar `{1}` a nenhum destino." + :electron/look-up "Pesquisar seleção" + :electron/main-exception "[Exceção do processo principal]\n{1}\n{2}" + :electron/new-window "Nova janela" + :electron/official-docs "Documentação oficial" + :electron/ok "OK" + :electron/open-dir-error "Não foi possível abrir o diretório: {1}" + :electron/save-image "Salvar imagem" + :electron/save-image-as "Salvar imagem como" + :electron/search-with-google "Pesquisar no Google" + :electron/unimplemented-callback "Ação x-callback-url não implementada: `{1}`." + :electron/version "Versão {1}" + :electron/write-file-error "Falha ao gravar o arquivo {1}, {2}." + :electron/write-file-error-with-backup "Falha ao gravar o arquivo {1}, {2}. Um arquivo de backup foi salvo em {3}." + + :encryption/cloud-password-rich (fn [] ["Se você perder sua senha, nenhum dado na nuvem poderá ser descriptografado. " [:span "Mesmo assim, você ainda poderá acessar a versão local do seu grafo."]]) + :encryption/current-password "Senha atual" + :encryption/enter-password "Digite a senha" + :encryption/enter-password-again "Digite a senha novamente" + :encryption/enter-password-title "Digite a senha" + :encryption/failed-to-force-reset-password "Falha na redefinição forçada de senha" + :encryption/failed-to-update-password "Falha ao atualizar a senha" + :encryption/fetch-key-pair-error "Errando o par de chaves rsa do usuário: {1}" + :encryption/fetching-key-pair "Obtendo par de chaves" + :encryption/force-reset-password "Redefinir senha forçosamente" + :encryption/force-reset-password-successfully "Senha redefinida forçosamente com sucesso" + :encryption/force-resetting-password "Redefinição forçada em andamento" + :encryption/forgot-password-question "Esqueceu a senha?" + :encryption/forgot-password-warning "Se você esquecer a senha, os dados criptografados não poderão ser recuperados." + :encryption/init-key-pair "Inicializar par de chaves" + :encryption/init-key-pair-error "Erro no par de chaves de inicialização: {1}" + :encryption/password-not-matched "As senhas não coincidem" + :encryption/password-updated-successfully "Senha atualizada" + :encryption/remember-password-rich (fn [] [[:span "Certifique-se de "] "lembrar a senha que você definiu, porque não poderemos redefini-la nem recuperá-la se você a esquecer, " [:span "e recomendamos que você "] "guarde uma cópia de segurança dela em local seguro."]) + :encryption/reset-password "Redefinir senha" + :encryption/set-new-password "Definir nova senha" + :encryption/set-password-title "Definir senha" + :encryption/updating-password "Atualizando senha" + :encryption/wrong-password "Senha incorreta" + + :export/backup-successful "Backup realizado com sucesso!" + :export/block-data-copied "Dados do bloco copiados para a área de transferência" + :export/collecting-assets "Coletando arquivos" + :export/copied-to-clipboard "Copiado para a área de transferência!" + :export/copy-or-export-as "Copiar / Exportar como.." + :export/creating-zip "Criando zip" + :export/db-backup-error "Falha no backup do banco de dados." + :export/db-edn "Exportar como arquivo EDN" + :export/debug-transit-desc "Exporta para um arquivo .transit para enviar para nós para depuração. Quaisquer dados sensíveis serão removidos no arquivo exportado." + :export/debug-transit-file "Exportar arquivo transit de depuração" + :export/edn-desc "Exporta para um arquivo .edn legível e editável. Não dependa disso como backup principal." + :export/error-unexpected "Ocorreu um erro inesperado durante a exportação. Consulte o console do JavaScript para detalhes." + :export/exporting "Exportando" + :export/finalizing "Finalizando" + :export/format-text "Texto" + :export/graph "Exportar grafo" + :export/graph-ontology-data-copied "Dados da ontologia do grafo copiados para a área de transferência" + :export/indent-style-dashes "traços" + :export/indent-style-label "Estilo de indentação:" + :export/indent-style-none "sem indentação" + :export/indent-style-spaces "espaços" + :export/level-lte "nível <=" + :export/markdown "Exportar como Markdown padrão (sem propriedades de bloco)" + :export/newline-after-block "nova linha após o bloco" + :export/no-updates-since-last-export "Sem atualizações desde a última exportação." + :export/open-blocks-only "somente blocos abertos (ignorar filhos recolhidos)" + :export/page "Exportar página" + :export/page-data-copied "Dados da página copiados para a área de transferência" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Preparando zip" + :export/preview-alt "pré-visualização da exportação" + :export/public-pages "Exportar páginas públicas" + :export/remove-emphasis "remover ênfase" + :export/remove-properties "remover propriedades" + :export/remove-tags "remover #tags" + :export/save-to-file "Salvar em arquivo" + :export/sqlite-db "Exportar banco de dados SQLite" + :export/title "Exportar" + :export/transparent-background "Fundo transparente" + :export/view-nodes-data-copied "Dados dos nós da visualização copiados para a área de transferência" + :export/zip "Exportar banco de dados SQLite e recursos" + :export/zip-error "Falha na exportação do ZIP." + + :export.backup/backup-now "Fazer backup agora" + :export.backup/cancel "Cancelar backup" + :export.backup/enabled-desc "Backups por hora estão habilitados para este grafo, {1}." + :export.backup/folder "Pasta de backup:" + :export.backup/hourly-note "O backup será criado a cada hora." + :export.backup/open-folder "abrir pasta de backups deste grafo" + :export.backup/schedule "Agendar backup" + :export.backup/set-folder-first "Defina a pasta de backup primeiro" + :export.backup/sqlite-desc "Forma principal de fazer backup do conteúdo do grafo em um único arquivo .sqlite." + :export.backup/unsupported-desc "Seu navegador não suporta {{The File System Access API}}, por favor mude para um navegador baseado em Chromium." + :export.backup/zip-desc "Forma principal de fazer backup do conteúdo e arquivos do grafo em um arquivo .zip." + + :file/config-duplicate-keys "O arquivo '{1}' possui chaves duplicadas. A chave '{2}' é atribuída várias vezes." + :file/config-invalid "O arquivo de configuração é inválido" + :file/format-not-supported "Formato .{1} não é suportado." + :file/label "Arquivo" + :file/last-modified-at "Última modificação em" + :file/name "Nome do arquivo" + :file/no-data "Sem dados" + :file/title "Arquivo {1}" + + :file.config/deprecation-title "O arquivo {1} tem as seguintes depreciações:" + :file.config/error-title "O arquivo {1} tem os seguintes erros:" + :file.config/invalid-desc "Certifique-se de que a configuração está envolvida em {}." + :file.config/invalid-title "O arquivo {1} não é válido." + :file.config/read-failed-desc "Certifique-se de que sua configuração está envolvida em {}. Também certifique-se de que os caracteres '( { [' têm seus caracteres de fechamento correspondentes ') } ]'." + :file.config/read-failed-title "Falha ao ler o arquivo {1}" + + :flashcard/add-query "Adicionar nova consulta" + :flashcard/all-cards "Todos os cartões" + :flashcard/select-cards "Selecionar cartões" + :flashcard/shortcut-tooltip "Atalho: {1}" + + :flashcard.empty/desc "Você pode adicionar \"{1}\" a qualquer bloco para transformá-lo em um cartão ou acionar \"/cloze\" para adicionar algumas partes ocultas." + :flashcard.empty/title "Hora de criar um cartão!" + + :flashcard.rating/again "Novamente" + :flashcard.rating/again-desc "Erramos a resposta. Isso significa automaticamente que esquecemos o cartão. É uma falha de memória." + :flashcard.rating/easy "Fácil" + :flashcard.rating/easy-desc "A resposta estava correta e a lembramos com rapidez e confiança, sem esforço mental." + :flashcard.rating/good "Bom" + :flashcard.rating/good-desc "A resposta estava correta, mas exigiu algum esforço mental para lembrá-la." + :flashcard.rating/hard "Difícil" + :flashcard.rating/hard-desc "A resposta estava correta, mas não tínhamos confiança nela ou demoramos muito para lembrá-la." + + :flashcard.review/finished "Parabéns, você revisou todos os cartões para esta consulta, nos vemos na próxima vez! 💯" + :flashcard.review/hide-answers "Ocultar respostas" + :flashcard.review/show-answers "Mostrar respostas" + :flashcard.review/show-clozes "Mostrar lacunas" + + :format/bold "Negrito" + :format/code "Código" + :format/highlight "Realce" + :format/italics "Itálico" + :format/strikethrough "Tachado" + + :graph/all-graphs "Todos os grafos" + :graph/already-exists-error "O grafo '{1}' já existe. Por favor, tente novamente com outro nome." + :graph/as-png "como PNG" + :graph/built-in-pages "Páginas integradas" + :graph/charge-range "Alcance de carga" + :graph/charge-strength "Força de carga" + :graph/click-to-search "Clique para pesquisar" + :graph/create-db "Criar um grafo de BD" + :graph/create-error "Falha ao criar o grafo" + :graph/create-new "Criar um novo grafo" + :graph/created-before "Criado antes de" + :graph/creating "Criando grafo" + :graph/delete-local-action "Excluir grafo local" + :graph/delete-local-confirm-desc "Tem certeza de que deseja excluir permanentemente o gráfico \"{1}\" do Logseq?" + :graph/delete-server-action "Excluir do servidor" + :graph/delete-server-confirm-desc "Tem certeza de que deseja excluir permanentemente o gráfico \"{1}\" do nosso servidor?" + :graph/delete-warning "⚠️ Observe que não podemos recuperar este gráfico após a exclusão. Certifique-se de ter backups antes de excluí-lo." + :graph/diff "Git diff" + :graph/downloading "baixando" + :graph/encrypt-data-label "Criptografar dados do grafo" + :graph/excluded-pages "Páginas excluídas" + :graph/forces "Forças" + :graph/gc-success "Limpeza do grafo realizada com sucesso!" + :graph/last-opened-at-label "Aberto pela última vez: {1}" + :graph/leave-action "Sair deste grafo" + :graph/leave-confirm-desc "Tem certeza de que deseja sair deste gráfico?" + :graph/leave-error "Falha ao sair do grafo" + :graph/left "Grafo abandonado" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "link" "links"))) + :graph/link-distance "Distância do link" + :graph/local-graphs "Grafos locais:" + :graph/n-hops-from-selected-nodes "N saltos dos nós selecionados" + :graph/name-placeholder "nome do seu grafo" + :graph/nodes "Nós" + :graph/orphan-pages "Páginas órfãs" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "página" "páginas"))) + :graph/pause-simulation "Pausar simulação" + :graph/preparing "preparando" + :graph/refresh-remote-graphs "Atualizar grafos remotos" + :graph/remote-graphs "Grafos remotos:" + :graph/removed "Gráfico removido \"{1}\"" + :graph/removed-and-redirecting "Gráfico removido \"{1}\". Redirecionando para o gráfico \"{2}\"" + :graph/removed-from-sync "Grafo removido da sincronização" + :graph/reset "Redefinir grafo" + :graph/reset-forces "Redefinir forças" + :graph/search "Pesquisar" + :graph/shared-graphs "Grafos compartilhados" + :graph/updated-switching "Grafo atualizado. Alternando..." + :graph/use-sync-beta "Usar Logseq Sync (beta)" + :graph/use-sync-label "Usar Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Falha ao calcular os diagnósticos de checksum do grafo." + :graph.diagnostics/checksum-recomputed-success "Checksum recalculado. Recalculado: {1}, local: {2}, remoto: {3}. {4}.edn foi baixado com {5} blocos e atributos de checksum {6}." + :graph.diagnostics/checksum-unavailable-warning "Não foi possível calcular os diagnósticos de checksum do grafo atual." + :graph.diagnostics/client-ops-export-failed-error "Falha ao exportar Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Falha ao exportar Client ops SQLite: tipo de payload inválido {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exportado: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Nenhum grafo encontrado." + + :graph.page/show-journals "Mostrar diários" + :graph.page/title "Grafo da página" + + :graph.switch/add-graph-action "Sim, adicione outro grafo" + :graph.switch/empty-desc "Nenhum grafo correspondente. Deseja adicionar outro?" + :graph.switch/prompt "Troque para:" + :graph.switch/select-prompt "Selecione um grafo" + + :graph.validation/config-arweave-gateway-warning "não é mais suportado." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "não é mais suportado. Por favor, use '/' e relate os bugs." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "não é usado em gráficos DB pois há apenas modo markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "A validação detectou {1} bloco(s) inválido(s). Esses blocos podem ter erros. Tentando corrigir blocos inválidos. Execute a validação novamente para ver se foram corrigidos." + :graph.validation/name-reserved-characters-warning "O nome do grafo não pode conter os seguintes caracteres reservados:" + :graph.validation/reserved-character-asterisk "asterisco" + :graph.validation/reserved-character-backslash "barra invertida" + :graph.validation/reserved-character-colon "dois-pontos" + :graph.validation/reserved-character-double-quote "aspas duplas" + :graph.validation/reserved-character-forward-slash "barra" + :graph.validation/reserved-character-greater-than "maior que" + :graph.validation/reserved-character-hash "cerquilha" + :graph.validation/reserved-character-less-than "menor que" + :graph.validation/reserved-character-pipe "barra vertical ou pipe" + :graph.validation/reserved-character-plus "mais" + :graph.validation/reserved-character-question-mark "ponto de interrogação" + :graph.validation/valid "Seu gráfico é válido! {1}" + + :header/go-back "Voltar" + :header/go-forward "Avançar" + :header/highlight-recent-blocks "Destacar blocos recentes" + :header/highlight-recent-blocks-days-ago "Destacar blocos recentes: há {1} dias" + :header/more "Mais" + :header/quit-highlight-recent-blocks "Sair do destaque de blocos recentes" + :header/toggle-left-sidebar "Alternar barra lateral esquerda" + + :help/about "Sobre o Logseq" + :help/about-title "Sobre" + :help/ask-community "Pergunte à comunidade" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Referência de bloco" + :help/blog "Blog do Logseq" + :help/bug "Relatório de bug" + :help/changelog "Registro de alterações" + :help/community-title "Comunidade" + :help/context-menu "Bloquear menu de contexto" + :help/context-menu-action "Clique com o botão direito no marcador" + :help/development-title "Desenvolvimento" + :help/docs "Documentação" + :help/feature "Solicitação de recurso" + :help/forum-community "Comunidade do Fórum" + :help/handbook "Manual" + :help/learn-more "Saiba mais" + :help/markdown-syntax "Sintaxe de Markdown" + :help/open-link-in-sidebar "Abrir link na barra lateral" + :help/open-link-in-sidebar-action "Shift+clique na referência" + :help/privacy "Política de privacidade" + :help/reference-autocomplete "Preenchimento automático de referência de página" + :help/release-notes "Notas da versão" + :help/roadmap "Roteiro" + :help/search "Pesquisar páginas/blocos/comandos" + :help/slash-autocomplete "Barra de preenchimento automático" + :help/start "Começando" + :help/submit-feedback "Enviar feedback" + :help/support-forum "Fórum de suporte" + :help/terms "Termos" + :help/terms-title "Termos" + :help/usage-title "Uso" + + :help.handbook/chat-on-discord "Converse no Discord" + :help.handbook/chat-on-discord-desc "Faça perguntas rápidas, conheça outros usuários e aprenda novos fluxos de trabalho." + :help.handbook/copy-topic-link "Copiar link do tópico" + :help.handbook/current-chapter "Capítulo atual" + :help.handbook/help-categories "Categorias de ajuda" + :help.handbook/home "Início" + :help.handbook/link-copied "Link do manual copiado!" + :help.handbook/monthly-posts "publicações mensais" + :help.handbook/next-chapter "Próximo capítulo" + :help.handbook/popular-topics "Tópicos populares" + :help.handbook/prev-chapter "Capítulo anterior" + :help.handbook/resources-from "Recursos de {1}" + :help.handbook/search-placeholder "Pesquisar" + :help.handbook/shortcuts-count "{1} atalhos" + :help.handbook/sync "Sincronização" + :help.handbook/title "Ajuda" + :help.handbook/topics "Tópicos" + :help.handbook/users-online "usuários online" + :help.handbook/visit-the-forum "Visite o fórum" + :help.handbook/visit-the-forum-desc "Dê feedback, solicite recursos e tenha conversas aprofundadas." + :help.handbook/writing-mode "Modo de escrita (pré-visualização em breve)" + + :help.shortcuts/desc "Ver atalhos e dicas" + :help.shortcuts/label "Atalhos de teclado" + :help.shortcuts/shortcut-column "Atalho" + :help.shortcuts/title "Atalhos de teclado" + :help.shortcuts/triggers "Gatilhos" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Ícones ({1})" + :icon/matched-count "Correspondências ({1})" + :icon/search-all "Buscar tudo" + :icon/search-emojis "Buscar emojis" + :icon/search-icons "Buscar ícones" + :icon/tab-all "Tudo" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Ícones" + + :import/all-tags "Importar todas as tags" + :import/asset-too-large-warning "A cópia do recurso {1} foi ignorada porque ele excede o limite de 100 MB." + :import/assets-import-partial "{1}/{2} recursos importados. Detalhes no console." + :import/assets-imported "{1} recursos importados." + :import/assets-skipped "{1} recursos ignorados. Detalhes no console." + :import/block-icons-cannot-be-imported "Ícones de blocos não podem ser importados. Importe-os manualmente no bloco {1}." + :import/cannot-import-block-into-non-block-entity "Não é possível importar um bloco em uma entidade que não é bloco." + :import/db-edn-desc "Importar exportação EDN de um grafo DB para um novo grafo DB" + :import/db-edn-title "EDN para grafo DB" + :import/debug-transit-desc "Importar arquivo transit de depuração para um novo grafo DB" + :import/debug-transit-title "Transit de depuração" + :import/default-db-graph-behavior "Comportamento padrão do grafo de banco de dados" + :import/empty-graph-name "O nome do grafo não pode estar vazio." + :import/extract-inline-code-snippets "Extrair trechos de código inline como sub-blocos" + :import/file-finished "Importação concluída!" + :import/file-to-db-desc "Importar uma pasta de grafo Logseq baseado em arquivos para um novo grafo DB" + :import/file-to-db-title "Arquivo para grafo DB" + :import/graph-name-conflict "Já existe um grafo com este nome. Escolha outro nome!" + :import/graph-name-placeholder "Nome do grafo" + :import/ignored-assets "{1} recursos ignorados durante a importação. Detalhes no console JavaScript." + :import/ignored-files "{1} arquivos ignorados durante a importação. Detalhes no console JavaScript." + :import/ignored-properties "{1} propriedades ignoradas durante a importação" + :import/ignored-properties-fix "Para corrigir o tipo de propriedade, altere o valor para o tipo correto e reimporte o grafo" + :import/invalid-blocks-detected "{1} blocos inválidos detectados durante a importação. A interação pode falhar. Detalhes no console JavaScript." + :import/invalid-edn-file "O arquivo EDN fornecido é inválido. Corrija e tente novamente." + :import/loading "Importando" + :import/logseq-config-missing "Erro de importação: o grafo Logseq não possui o arquivo 'logseq/config.edn'." + :import/new-graph-name "Novo nome do grafo" + :import/notes "Importar notas existentes" + :import/org-files-imported "{1} arquivos Org importados como Markdown. O suporte a arquivos Org será adicionado futuramente." + :import/page-icons-cannot-be-imported "Ícones de páginas não podem ser importados. Importe-os manualmente na página {1}." + :import/properties-case-insensitive-commas "Nomes de propriedades (sem distinção de maiúsculas, separados por vírgulas)" + :import/property-classes-placeholder "ex. type" + :import/property-import-manually "Esta propriedade deve ser importada manualmente" + :import/property-parent-classes-placeholder "ex. parent" + :import/property-type-mismatch "O valor da propriedade é do tipo {1}, não {2}" + :import/property-value-tag-parents "Importar pais de tags dos valores de propriedades" + :import/property-value-tags "Importar tags adicionais dos valores de propriedades" + :import/remove-inline-tags "Remover tags inline" + :import/select-edn-or-json "Selecione um arquivo EDN ou JSON." + :import/specific-tags "Importar tags específicas" + :import/sqlite-and-assets-desc "Importar um zip contendo db.sqlite e uma pasta de assets" + :import/sqlite-and-assets-title "SQLite + assets (.zip)" + :import/submitted-edn-invalid "Os dados EDN enviados são inválidos! Corrija e tente novamente." + :import/successful "Importação realizada com sucesso!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tags (sem distinção de maiúsculas)" + :import/title "Importar" + :import/unexpected-error "Erro inesperado: {1}" + :import/zip-import-error "Falha na importação de Zip: {1}" + :import/zip-missing-db-sqlite "O ZIP não contém db.sqlite" + + :journal/add-blocks-to-today-success "Blocos adicionados hoje" + :journal/page-cant-convert-warning "Esta página não é uma página de diário." + :journal/parse-date-to-name-error "Falha ao analisar o nome do diário" + + :journal.default-query/doing "FAZENDO" + :journal.default-query/todo "A FAZER" + + :keymap/all "Todos" + :keymap/already-bound "Atalho já em uso" + :keymap/also-used-for-action "Também usado para {1}" + :keymap/also-used-for-action-in-context "Também usado para {1} No contexto {2}" + :keymap/clear "Limpar" + :keymap/clear-keystroke-filter "Limpar filtro de teclas" + :keymap/clear-search "Limpar pesquisa" + :keymap/custom "Customizar" + :keymap/deactivates-chord "Desativa o atalho" + :keymap/deactivates-chords "Desativa {1} combinações de atalhos" + :keymap/disabled "Desabilitar" + :keymap/esc-is-reserved "Esc é reservado" + :keymap/hint-cancel "Cancelar" + :keymap/hint-close "Fechar" + :keymap/hint-reassign "Reatribuir" + :keymap/hint-remove "Remover" + :keymap/keystroke-filter "Filtro de teclas" + :keymap/no-matching-shortcuts "Nenhum atalho correspondente" + :keymap/press-a-shortcut "Pressione um atalho" + :keymap/press-keys-to-filter "Pressione teclas para filtrar" + :keymap/reassign "Reatribuir" + :keymap/reassign-tooltip "Reatribuir o atalho desta ação" + :keymap/reassigned-from "Reatribuído de {1}" + :keymap/refresh-all "Atualizar tudo" + :keymap/remove-binding "Remover atalho" + :keymap/remove-filter "Remover filtro" + :keymap/reset "Redefinir" + :keymap/reset-to-default "Redefinir para o padrão" + :keymap/search-by-keys "Buscar por teclas" + :keymap/search-placeholder "Buscar atalhos…" + :keymap/shortcut-added "Atalho adicionado" + :keymap/shortcut-removed "Atalho removido" + :keymap/toggle-categories-pane "Alternar painel de categorias" + :keymap/undo "Desfazer" + :keymap/unset "Desativar" + :keymap/used-by-action "Usado por {1}" + + :library/add-existing-pages "Adicionar páginas existentes à Biblioteca" + :library/add-pages "Adicionar páginas" + :library/title "Biblioteca" + + :mobile/camera-access-denied "O acesso à câmera está negado. Ative-o em Configurações > Logseq." + :mobile/microphone-access-denied "O acesso ao microfone está negado. Ative-o em Configurações > Logseq." + + :mobile.header/actions "Ações" + :mobile.header/create-graph "Criar grafo" + :mobile.header/delete-block-confirm-desc "Deseja excluir este bloco?" + :mobile.header/delete-page-confirm-desc "Deseja excluir esta página?" + + :mobile.intent/file-options "Opções de arquivo" + :mobile.intent/open-with-app "Abrir arquivo com seu app favorito" + :mobile.intent/select-option-prompt "Selecione uma opção para executar" + :mobile.intent/share "Compartilhar" + + :mobile.log/all "Todos" + :mobile.log/errors-only "Somente erros" + :mobile.log/full "Completo" + :mobile.log/new-first "Mais recentes primeiro" + :mobile.log/old-first "Mais antigos primeiro" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Conta" + :mobile.settings/check-log "Ver registro" + :mobile.settings/discord-community "Comunidade Discord" + :mobile.settings/forum "Fórum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Reportar bug" + :mobile.settings/revision "Revisão" + :mobile.settings/theme "Tema" + :mobile.settings/version "Versão" + + :mobile.share/file-import-error "Falha ao importar arquivo compartilhado" + :mobile.share/media-import-error "Falha ao importar mídia compartilhada" + :mobile.share/unsupported-content-warning "Não é possível processar o conteúdo compartilhado. Por favor, reporte os seguintes códigos em {1}. Vamos analisar em breve." + :mobile.share/unsupported-import-type "Importação de arquivo {1} não é suportada. Você pode reportar em {2}. Vamos analisar em breve." + + :mobile.tab/capture "Capturar" + :mobile.tab/go-to "Ir para" + :mobile.tab/graphs "Grafos" + + :mobile.toolbar/audio "Áudio" + :mobile.toolbar/copy-ref "Copiar ref" + :mobile.toolbar/copy-url "Copiar url" + :mobile.toolbar/hide "Ocultar" + :mobile.toolbar/indent "Recuar" + :mobile.toolbar/outdent "Desfazer recuo" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Refazer" + :mobile.toolbar/reference "Referência" + :mobile.toolbar/slash "Barra" + :mobile.toolbar/tag "Tag" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Desfazer" + :mobile.toolbar/unselect "Desselecionar" + + :nav/all-files "Todos os arquivos" + :nav/all-journals "Todos os diários" + :nav/appearance "Aparência" + :nav/assets "Imagens" + :nav/cannot-go-to-internal-page "Não é possível navegar para a página interna" + :nav/flashcards "Flashcards" + :nav/graph "Grafo" + :nav/graph-view "Visualização de grafo" + :nav/help "Ajuda" + :nav/home "Início" + :nav/invalid-jump-error "Salto inválido" + :nav/journals "Diários" + :nav/plugins "Plugins" + :nav/search "Produrar" + :nav/settings "Configurações" + :nav/skip-to-main-content "Pular para o conteúdo principal" + :nav/tasks "Tarefas" + :nav/themes "Temas" + + :nav.all-pages/label "Páginas" + :nav.all-pages/title "Todas as páginas" + + :node/built-in-cant-delete-error "Elementos integrados não podem ser excluídos." + :node/new "Novo nó" + + :notification/clear-all "Limpar tudo" + :notification/copied "Copiado" + + :onboarding.import/desc "Se elas estiverem em formato EDN ou Markdown, o Logseq pode trabalhar com elas." + :onboarding.import/sqlite-desc "Importar uma exportação de DB SQLite do seu grafo Logseq para um novo grafo DB" + :onboarding.import/title "Você já tem notas que deseja importar?" + + :onboarding.import-option/desc "Você também pode fazer isso posteriormente no aplicativo." + :onboarding.import-option/title "Importar notas existentes" + + :onboarding.setup/desc "Primeiro, você precisa escolher uma pasta onde o Logseq armazenará seus pensamentos, ideias, notas." + :onboarding.setup/title (fn [] ["Bem-vindo ao " [:strong "Logseq!"]]) + + :page/add-to-favorites "Adicionar aos Favoritos" + :page/added-tag-to-node "Adicionada tag \"{1}\" a \"{2}\"" + :page/backlinks "Backlinks" + :page/clear "Limpar" + :page/clear-local-storage-desc "Isso exclui preferências menores como a preferência de tema claro/escuro." + :page/cleared "Limpo" + :page/contents "Conteúdo" + :page/convert-to-tag "Converter em tag" + :page/copy-url "Copiar URL da página" + :page/create "Criar uma nova página" + :page/created-at "Criado em" + :page/current-graph-as-sqlite-db "grafo atual como banco de dados SQLite" + :page/default-query-error "Falha na consulta padrão:" + :page/delete "Excluir página" + :page/go-back-home "Voltar para o início" + :page/hide-properties "Ocultar propriedades" + :page/local-storage "armazenamento local" + :page/logseq-is-having-a-problem "Logseq está com um problema. Para tentar fazê-lo voltar a funcionar, siga as etapas seguras a seguir:" + :page/make-private "Tornar privado" + :page/make-public "Torná-la pública para publicação" + :page/moved-to-recycle "O nó foi movido para a Lixeira" + :page/name "Nome da página" + :page/no-page-found-to-copy "Nenhuma página encontrada para copiar" + :page/not-found "Página não encontrada" + :page/not-found-desc "Ops! A página que você está procurando não existe." + :page/not-found-title "Página não encontrada" + :page/not-found-warning "Nenhuma página encontrada" + :page/open-all-graphs-desc "Você também pode ir para {{All graphs}} para mudar para outro grafo." + :page/open-issue-desc "Se estes passos de solução de problemas não resolveram seu problema, por favor {{open an issue}}." + :page/open-properties "Abrir propriedades" + :page/rebuild "Reconstruir" + :page/relaunch "Reiniciar" + :page/relaunch-desc "Fechar e reabrir o aplicativo." + :page/scheduled-and-deadline "Agendado e prazo" + :page/search-index "índice de pesquisa" + :page/send-db-for-debugging "Você pode enviá-lo para help@logseq.com para depuração." + :page/something-went-wrong "Algo deu errado" + :page/step "Etapa {1}" + :page/the-app "o aplicativo" + :page/try "Tentar" + :page/unfavorite "Remover dos favoritos" + :page/unknown "Página desconhecida" + :page/updated-at "Atualizado em" + + :page.convert/block-parent-not-page "Não é possível converter o bloco. O pai não é uma página." + :page.convert/cant-be-block "A página \"{1}\" não pode ser convertida em um bloco." + :page.convert/cant-be-block-has-children "A página \"{1}\" não pode ser convertida em um bloco porque possui páginas filhas." + :page.convert/cant-be-block-move-first "A página \"{1}\" não pode ser convertida em um bloco, mova-a primeiro para outra página." + :page.convert/page-to-tag-action "Converter \"{1}\" em tag" + :page.convert/page-to-tag-built-in "Páginas integradas não podem ser tags" + :page.convert/page-to-tag-duplicate "Já existe uma tag com o nome \"{1}\"." + :page.convert/page-to-tag-namespaced "Páginas com namespace não podem ser tags" + :page.convert/property-value-to-page "Não é possível converter o valor da propriedade em página." + :page.convert/tag-to-page-action "Converter tag em página" + :page.convert/tag-to-page-built-in "Tags integradas não podem ser páginas" + :page.convert/tag-to-page-confirm-desc "Converter uma tag em página também remove as propriedades dessa tag e a própria tag de todos os nós marcados com ela. Deseja continuar?" + :page.convert/tag-to-page-duplicate "Já existe uma página com o nome \"{1}\"." + :page.convert/tag-to-page-has-children "A tag possui filhos e não pode ser convertida" + + :page.delete/batch-confirm-title "Tem certeza de que deseja excluir estas páginas? Propriedades e tags serão excluídas permanentemente e as páginas serão movidas para a Lixeira." + :page.delete/confirm-title "Tem certeza de que deseja excluir esta página?" + :page.delete/permanent-confirm-title "Tem certeza de que deseja excluir permanentemente esta página?" + :page.delete/success "A página \"{1}\" foi excluída com sucesso!" + :page.delete/total "Total: {1}" + :page.delete/warning "Estas páginas tiveram seu conteúdo excluído, mas não puderam ser excluídos: {1}. Consulte o console javascript para obter mais detalhes." + + :page.validation/cant-set-built-in-tags "A nova página não pode definir tags integradas: {1}" + :page.validation/duplicate "Já existe outra página chamada \"{1}\" para tags: {2}." + :page.validation/name-blank "O nome da página não pode estar vazio." + :page.validation/name-no-hash "O nome da página não pode conter #" + :page.validation/name-no-slash "O nome da página não pode conter /." + :page.validation/parents-must-be-pages "Os pais de páginas devem ser páginas." + + :pdf/annotations-page "Página de anotações" + :pdf/area-highlight-shortcut "Destaque de área ({1})" + :pdf/auto-fit "Ajuste automático" + :pdf/auto-open-context-menu "Abrir automaticamente o menu de contexto para seleções" + :pdf/copy-ref "Copiar referência" + :pdf/copy-text "Copiar texto" + :pdf/corrupted-file-error "Erro: {1}\nEste arquivo .pdf está corrompido?\nPor favor, confirme com um visualizador de PDF externo." + :pdf/doc-metadata "Metadados do documento" + :pdf/enter-to-search "Enter para pesquisar" + :pdf/find-results "{1} de {2} correspondências (\"{3}\")" + :pdf/generic-error "Erro: {1}\n{2}\nPor favor, confirme com o recurso do arquivo PDF." + :pdf/highlight-mode "Modo de destaque" + :pdf/highlights "Destaques" + :pdf/hl-block-colored "Rótulo colorido para destaque de bloco" + :pdf/linked-ref "Referências vinculadas" + :pdf/load-highlights-file-error "Erro: falha ao carregar o arquivo de destaques: \"{1}\". \n{2}" + :pdf/missing-file-error "Erro: {1}\n Este é o caminho correto?" + :pdf/more-settings "Mais configurações" + :pdf/no-outlines "Sem sumário" + :pdf/not-found "Não encontrado." + :pdf/open-in-app-window "Abrir na janela do app" + :pdf/open-in-external-window "Abrir em janela externa" + :pdf/outline "Sumário" + :pdf/page-label "Página {1}" + :pdf/password-protected-desc "Este documento é protegido por senha. Por favor, insira a senha:" + :pdf/password-required "Senha necessária" + :pdf/search "Pesquisar" + :pdf/search-placeholder "pesquisar" + :pdf/toggle-dashed "Estilo tracejado para destaque de área" + :pdf/viewer "visualizador de PDF" + :pdf/zoom-in "Aumentar zoom" + :pdf/zoom-out "Diminuir zoom" + + :plugin/all "Todos" + :plugin/auto-update-check "Verificação automática de atualizações" + :plugin/auto-update-check-feedback "Verificação automática de atualizações: {1}!" + :plugin/check-all-updates "Verificar todas as atualizações" + :plugin/check-update "Verificar atualização" + :plugin/checked "Verificado" + :plugin/checking-for-updates "Verificando atualizações de plugins ..." + :plugin/contribute "✨ Escreva e envie um novo plugin" + :plugin/custom-js-alert "Encontrado o arquivo custom.js, permitir a execução? (Se você não entende o conteúdo deste arquivo, é recomendável não permitir a execução, pois isso tem certos riscos de segurança.)" + :plugin/date-added "Data de adição" + :plugin/delete-alert "Tem certeza de que deseja desinstalar o plugin [{1}]?" + :plugin/disable-for-performance-feedback "O plugin {1} está desativado." + :plugin/disable-now "Desativar agora" + :plugin/disabled "Desativado" + :plugin/does-not-support-db "Não suporta grafos DB" + :plugin/downloads "Downloads" + :plugin/empty "Nada encontrado." + :plugin/enabled "Ativado" + :plugin/existed-package "Pacote de plugins existente ({1})." + :plugin/fatal-error "Fatal: {1}" + :plugin/found-n-updates "Encontradas {1} atualizações" + :plugin/found-updates "Novas atualizações" + :plugin/install "Instalar" + :plugin/install-error "Falha na instalação: {1}\n{2}" + :plugin/installed "Instalado" + :plugin/installed-plugin "Plugin instalado: {1}" + :plugin/installing "Instalando" + :plugin/invalid-github-repo-url "URL do repositório GitHub inválida" + :plugin/invalid-package "Pacote inválido" + :plugin/invalid-plugins-edn "plugins.edn inválido" + :plugin/list-of-updates "Atualizações de plugins: " + :plugin/load-from-web-url "Carregar de URL web" + :plugin/load-plugin-indicator "Carregar plugin: {1}..." + :plugin/load-unpacked "Carregar plugin descompactado" + :plugin/loading-indicator "CARREGANDO" + :plugin/malformed-plugins-edn "plugins.edn malformado" + :plugin/marketplace "Loja de plugins" + :plugin/new-registered "Novo plugin registrado" + :plugin/no-settings-schema "Sem esquema de configurações!" + :plugin/not-installed "Não instalado" + :plugin/open-logseq-dir "Abrir" + :plugin/open-package "Abrir pacote" + :plugin/open-preferences "Abrir Preferências" + :plugin/open-settings "Abrir configurações" + :plugin/perf-tip "Este plugin {1} demora muito para carregar, afetando o tempo de inicialização do aplicativo e podendo causar falhas no carregamento de outros plugins." + :plugin/popular "Popular" + :plugin/proxy-check-success "Sucesso! Status {1} em {2}ms." + :plugin/readme-empty-warning "Sem conteúdo README" + :plugin/refresh-lists "Atualizar listas" + :plugin/reload "Recarregar" + :plugin/remote-error "Erro remoto: {1}" + :plugin/report-modal-desc "Se algum plugin não estiver disponível ou você achar que contém código malicioso, envie um e-mail para {1}. Mencione o nome do plugin e a URL do seu repositório do GitHub. A equipe do Logseq geralmente responde dentro de um dia útil." + :plugin/report-security "Reportar problema de segurança" + :plugin/restart "Reiniciar aplicativo" + :plugin/search-plugin "Pesquisar plugins" + :plugin/security-warning "Os plugins podem acessar o seu grafo e os seus arquivos locais, fazer requisições de rede.\r\n Eles também podem causar corrupção ou perda de dados. Estamos trabalhando em regras de acesso adequadas para os seus grafos.\r\n Enquanto isso, certifique-se de fazer backups regulares dos seus grafos e só instale os plugins quando puder ler e\r\n entender o código-fonte." + :plugin/setting-not-handled "#Não tratado# {1}" + :plugin/settings-schema-error "Erro no esquema de configurações!" + :plugin/stars "Estrelas" + :plugin/supports-db "Suporte a BD" + :plugin/title "Título ({1})" + :plugin/uninstall "Desinstalar" + :plugin/unpacked "Descompactado" + :plugin/unpacked-tips "Selecione o diretório do plugin" + :plugin/up-to-date "Está atualizado {1}" + :plugin/update "Atualizar" + :plugin/update-all-selected "Atualizar todos os selecionados" + :plugin/update-all-success "Todos atualizados!" + :plugin/update-available "Atualização disponível" + :plugin/update-plugin "Atualizar plugin: {1} - {2}" + :plugin/updates-downloading "Baixando atualizações" + :plugin/updating "Atualizando" + + :plugin.install-from-file/menu-title "Instalar a partir de plugins.edn" + :plugin.install-from-file/notice "Os seguintes plugins substituirão os seus plugins:" + :plugin.install-from-file/success "Todos os plugins foram instalados!" + :plugin.install-from-file/title "Instalar plugins a partir de plugins.edn" + + :plugin.install-from-web-url/effect-label "efeito" + :plugin.install-from-web-url/repo-url-placeholder "URL do repositório GitHub" + :plugin.install-from-web-url/supports-note "As URLs suportam repositórios do GitHub e servidores de desenvolvimento local. (Por exemplo: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Removê-lo apenas desvincula o plugin do Logseq e mantém a pasta de origem intacta." + :plugin.package-config/parse-error "Falha ao analisar a configuração do pacote do plugin." + :plugin.package-config/remove-error "Falha ao remover o plugin corrompido." + :plugin.package-config/remove-external-success "O plugin corrompido foi removido da lista de plugins." + :plugin.package-config/remove-installed-success "Plugin corrompido \"{1}\" removido." + + :plugin.proxy/direct "Direto" + :plugin.proxy/system "Sistema" + :plugin.proxy/test-url "URL de teste" + :plugin.proxy/testing "Testando" + + :plugin.settings/edit-settings-json "Editar settings.json" + :plugin.settings/exit-code-mode "Sair do modo de código" + :plugin.settings/title "Configurações de plugins" + + :plugin.themes/default-desc "Tema padrão do Logseq ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Temas ({1})" + :plugin.themes/light-and-dark "temas claros & escuros" + + :profiler/input-fn-placeholder "insira o nome da função aqui" + :profiler/unregister "Desregistrar" + + :property/add-choice "Adicionar opção" + :property/add-choices "Adicionar opções" + :property/add-description "Adicionar descrição" + :property/add-new "Adicionar propriedade" + :property/add-or-change "Adicionar ou alterar propriedade" + :property/available-choices "Opções disponíveis" + :property/change-tooltip "Alterar {1}" + :property/checkbox-state-mapping "Mapeamento de estado da caixa de seleção" + :property/children-count "Crianças ({1})" + :property/choices-count "{1} escolhas" + :property/choose-tag "Escolher tag" + :property/choose-tags "Escolher tags" + :property/clear-value "Limpar" + :property/configure "Configurar" + :property/convert-page-to-property "Converter \"{1}\" em propriedade" + :property/create-error "Falha ao criar a propriedade." + :property/default-value "Valor padrão" + :property/delete-from-node "Excluir do nó" + :property/delete-from-node-confirm "Deseja excluir esta propriedade do nó?" + :property/delete-from-tag "Excluir da tag" + :property/delete-from-tag-confirm "Deseja excluir esta propriedade da tag?" + :property/description-placeholder "Inserir descrição" + :property/drag-to-reorder "Arraste para reordenar" + :property/existing-values "Valores existentes" + :property/go-to-this-property "Ir para a página da propriedade" + :property/hidden-properties "Propriedades ocultas" + :property/hide-by-default "Ocultar por padrão" + :property/hide-choice-for-tag "Ocultar opção para tag" + :property/hide-empty-value "Ocultar valores vazios" + :property/hide-for-tag "Ocultar para #{1}" + :property/hide-hidden-choices "Ocultar opções ocultas" + :property/map-checked-to "Mapear marcado para" + :property/map-unchecked-to "Mapear desmarcado para" + :property/more-settings "Mais configurações" + :property/multiple-values "Valores múltiplos" + :property/multiple-values-confirm "Habilitar valores múltiplos?" + :property/name "Nome" + :property/name-placeholder "Nome da propriedade" + :property/nodes-with-property "Nós com propriedade" + :property/overdue "Atrasado" + :property/private-built-in-not-usable "Propriedade integrada privada não utilizável" + :property/select-choice "Selecionar opção" + :property/select-property-placeholder "Selecionar uma propriedade" + :property/select-type-placeholder "Selecionar um tipo de propriedade" + :property/self-reference "Autorreferência" + :property/set-default-choice "Definir opção padrão" + :property/set-default-value "Definir valor padrão" + :property/set-icon "Definir ícone" + :property/set-placeholder "Definir {1}" + :property/set-property "Definir propriedade" + :property/set-tags "Definir tags" + :property/set-value "Definir valor" + :property/show-as-checkbox-on-node "Mostrar como caixa de seleção no nó" + :property/show-as-checkbox-on-tagged-nodes "Mostrar como caixa de seleção em nós com tag" + :property/show-hidden-choices "Mostrar opções ocultas" + :property/skip-choosing-tag "Pular escolha de tag" + :property/specify-node-tags "Especificar tags do nó" + :property/title-placeholder "Título" + :property/type "Tipo" + :property/type-change-warning "Alterar o tipo de propriedade limpa algumas configurações da propriedade." + :property/type-checkbox "Caixa de seleção" + :property/type-date "Data" + :property/type-datetime "Data/Hora" + :property/type-locked-help "O tipo está bloqueado" + :property/type-node "Nó" + :property/type-number "Número" + :property/type-text "Texto" + :property/type-url "URL" + :property/ui-position "Posição na UI" + :property/ui-position-block-below "Abaixo do bloco" + :property/ui-position-block-left "À esquerda do bloco" + :property/ui-position-block-right "À direita do bloco" + :property/ui-position-properties "Propriedades" + :property/unset-property "Remover propriedade" + :property/update-success "Atualizado" + + :property.built-in/alias "Alias" + :property.built-in/asset "Arquivo" + :property.built-in/asset-align "Alinhamento do arquivo" + :property.built-in/asset-checksum "Checksum do arquivo" + :property.built-in/asset-external-file-name "Nome do arquivo externo" + :property.built-in/asset-external-url "URL externa" + :property.built-in/asset-height "Altura da imagem" + :property.built-in/asset-last-visit-page "Última página visitada" + :property.built-in/asset-remote-metadata "Metadados remotos do arquivo" + :property.built-in/asset-resize-metadata "Metadados de redimensionamento" + :property.built-in/asset-size "Tamanho do arquivo" + :property.built-in/asset-type "Tipo do arquivo" + :property.built-in/asset-width "Largura da imagem" + :property.built-in/background-color "Cor de fundo" + :property.built-in/built-in "Integrado?" + :property.built-in/checkbox-display-properties "Propriedades exibidas como checkbox" + :property.built-in/choice-checkbox-state "Estado do checkbox da opção" + :property.built-in/choice-classes "Classes da opção" + :property.built-in/choice-exclusions "Exclusões da opção" + :property.built-in/class-bidirectional-property-title "Título da propriedade bidirecional" + :property.built-in/class-enable-bidirectional "Habilitar propriedades bidirecionais" + :property.built-in/class-extends "Estende" + :property.built-in/class-hide-from-node "Ocultar do nó" + :property.built-in/class-properties "Propriedades da tag" + :property.built-in/classes "Classes da propriedade" + :property.built-in/closed-value-property "Propriedade de valor fechado" + :property.built-in/code-lang "Modo de código" + :property.built-in/collapsed "Nó recolhido?" + :property.built-in/created-at "Nó criado em" + :property.built-in/created-by-ref "Nó criado por" + :property.built-in/created-from-property "Criado a partir da propriedade" + :property.built-in/deadline "Prazo" + :property.built-in/default-value "Valor padrão" + :property.built-in/deleted-at "Excluído em" + :property.built-in/deleted-by-ref "Excluído por" + :property.built-in/description "Descrição" + :property.built-in/enable-history "Habilitar histórico da propriedade" + :property.built-in/exclude-from-graph-view "Excluído da visualização do grafo?" + :property.built-in/fsrs-due "Vencimento" + :property.built-in/fsrs-state "Estado" + :property.built-in/heading "Título" + :property.built-in/hide "Ocultar esta propriedade ou página" + :property.built-in/hide-empty-value "Ocultar valor vazio" + :property.built-in/history-block "Bloco de histórico" + :property.built-in/history-property "Propriedade de histórico" + :property.built-in/history-ref-value "Valor de referência do histórico" + :property.built-in/history-scalar-value "Valor escalar do histórico" + :property.built-in/icon "Ícone" + :property.built-in/journal-day "Data do diário" + :property.built-in/journal-title-format "Formato do título" + :property.built-in/link "Nó linka para" + :property.built-in/linked-references-excludes "Referências excluídas" + :property.built-in/linked-references-includes "Referências incluídas" + :property.built-in/ls-type "Tipo LS" + :property.built-in/node-display-type "Tipo de exibição do nó" + :property.built-in/order "Ordem do nó" + :property.built-in/order-list-type "Tipo de lista" + :property.built-in/page "Página do nó" + :property.built-in/page-tags "Tags da página" + :property.built-in/parent "Nó pai" + :property.built-in/priority "Prioridade" + :property.built-in/public "Propriedade pública?" + :property.built-in/publish-published-url "URL publicada" + :property.built-in/publishing-public "Publicação pública?" + :property.built-in/query "Consulta" + :property.built-in/reaction-emoji-id "Emoji de reação" + :property.built-in/reaction-target "Alvo da reação" + :property.built-in/recycle-original-order "Ordem original na lixeira" + :property.built-in/recycle-original-page "Página original na lixeira" + :property.built-in/recycle-original-parent "Pai original na lixeira" + :property.built-in/refs "Referências do nó" + :property.built-in/repeat-checked-property "Propriedade verificada de repetição" + :property.built-in/repeat-recur-frequency "Frequência de recorrência" + :property.built-in/repeat-recur-unit "Unidade de recorrência" + :property.built-in/repeat-repeated "Nó repete?" + :property.built-in/repeat-temporal-property "Propriedade temporal de repetição" + :property.built-in/scalar-default-value "Valor padrão de tipo não referência" + :property.built-in/scheduled "Agendado" + :property.built-in/status "Status" + :property.built-in/sync-large-title-object "Referência ao título de bloco grande armazenado no armazenamento remoto" + :property.built-in/table-filters "Filtros da visualização" + :property.built-in/table-hidden-columns "Colunas ocultas da visualização" + :property.built-in/table-ordered-columns "Colunas ordenadas da visualização" + :property.built-in/table-pinned-columns "Colunas fixadas da tabela" + :property.built-in/table-sized-columns "Configurações de colunas da visualização" + :property.built-in/table-sorting "Ordenação da visualização" + :property.built-in/tags "Tags" + :property.built-in/template-applied-to "Aplicar modelo às tags" + :property.built-in/title "Título do nó" + :property.built-in/type "Tipo de propriedade" + :property.built-in/ui-position "Posição da propriedade" + :property.built-in/updated-at "Nó atualizado em" + :property.built-in/used-template "Modelo utilizado" + :property.built-in/user-avatar "Avatar do usuário" + :property.built-in/user-email "E-mail do usuário" + :property.built-in/user-name "Nome do usuário" + :property.built-in/value "Valor da propriedade" + :property.built-in/view-context "Contexto de visualização da propriedade" + :property.built-in/view-feature-type "Tipo de recurso da visualização" + :property.built-in/view-for "Esta visualização pertence a" + :property.built-in/view-group-by-property "Agrupar visualização por propriedade" + :property.built-in/view-sort-groups-by-property "Ordenar grupos da visualização por" + :property.built-in/view-sort-groups-desc "Ordenar grupos DESC" + :property.built-in/view-type "Tipo de visualização" + + :property.choice/already-exists "A opção já existe." + :property.choice/cant-delete-built-in "A opção integrada não pode ser excluída." + :property.choice/invalid "Escolha \"{1}\" inválida para esta propriedade: {2}" + + :property.color/blue "azul" + :property.color/green "verde" + :property.color/purple "roxo" + :property.color/red "vermelho" + :property.color/yellow "amarelo" + + :property.priority/high "Alta" + :property.priority/low "Baixa" + :property.priority/medium "Média" + :property.priority/urgent "Urgente" + + :property.repeat/date "Data de repetição" + :property.repeat/datetime "Data e hora de repetição" + :property.repeat/every "A cada" + :property.repeat/is-label "é:" + :property.repeat/task "Tarefa de repetição" + :property.repeat/when "Quando" + + :property.repeat-recur-unit/day "Dia" + :property.repeat-recur-unit/hour "Hora" + :property.repeat-recur-unit/minute "Minuto" + :property.repeat-recur-unit/month "Mês" + :property.repeat-recur-unit/week "Semana" + :property.repeat-recur-unit/year "Ano" + + :property.status/backlog "Backlog" + :property.status/canceled "Cancelado" + :property.status/doing "Fazendo" + :property.status/done "Concluído" + :property.status/in-review "Em revisão" + :property.status/todo "A fazer" + + :property.validation/cant-convert-to-number "Não é possível converter \"{1}\" em um número." + :property.validation/cant-remove-required "A propriedade obrigatória não pode ser removida." + :property.validation/cant-set-self-value "Não é possível definir como seu próprio valor de propriedade." + :property.validation/duplicate "A propriedade '{1}' já existe." + :property.validation/invalid-name "Este é um nome de propriedade inválido. Um nome de propriedade não pode começar com caracteres de referência de página '#' ou '[['." + :property.validation/invalid-value "A propriedade \"{1}\" tem valor inválido: {2}" + :property.validation/many-to-one "Não é possível converter uma propriedade de múltiplos valores para valor único." + :property.validation/protected "Esta propriedade é protegida e não pode ser modificada." + + :property.view-type/gallery "Visualização em galeria" + :property.view-type/list "Visualização em lista" + :property.view-type/table "Visualização em tabela" + + :publish/action "Publicar" + :publish/dialog-desc "Opcionalmente proteja esta página com uma senha. Deixe vazio para acesso público." + :publish/dialog-title "Publicar página" + :publish/invalid-page-error "Página inválida" + :publish/password-optional-placeholder "Senha opcional" + :publish/publish-error "Falha na publicação" + :publish/published-to "Publicado em {1}" + :publish/publishing "Publicando..." + :publish/unpublish "Despublicar" + :publish/unpublish-error "Falha ao despublicar" + :publish/unpublish-missing-page-id "Despublicar: ID de página ausente" + :publish/unpublished "Despublicado" + + :query/advanced-results "Resultados da consulta avançada" + :query/custom-view-error "Erro na visualização personalizada: {1}" + :query/error "Erro na consulta:" + :query/examples-desc "Veja mais exemplos em {{Queries documentation}}." + :query/examples-title "Exemplos de consulta:" + :query/results-for "Resultados para {1}" + + :query.builder/add-filter-or-operator-placeholder "Adicionar filtro/operador" + :query.builder/between-end-label "Data final" + :query.builder/between-journal-label "entre: {1} ~ {2}" + :query.builder/between-start-label "Data inicial" + :query.builder/created-label "Criado" + :query.builder/filter "Filtro" + :query.builder/filter-full-text-search-label "Busca de texto completo" + :query.builder/filter-page-label "Página" + :query.builder/filter-page-reference-label "Referência de página" + :query.builder/filter-sample-label "Amostra" + :query.builder/operator-and-label "e" + :query.builder/operator-not-label "não" + :query.builder/replace-with-label "Substituir por:" + :query.builder/search-label "Pesquisar: {1}" + :query.builder/show-built-in-properties "Mostrar propriedades embutidas" + :query.builder/unwrap-operator "Desembrulhar" + :query.builder/updated-label "Atualizado" + :query.builder/wrap-filter-with-label "Envolver este filtro com:" + + :reference/blocks "Referências de bloco" + :reference/copy "Copiar esta referência" + :reference/delete "Excluir esta referência" + :reference/page-filter "Filtro de página" + :reference/replace-with-embed "Substituir por incorporação" + :reference/replace-with-text "Substituir por texto" + + :reference.filter/directions "Clique para incluir e shift-clique para excluir. Clique novamente para remover." + :reference.filter/excludes "Excluir: " + :reference.filter/includes "Incluir: " + :reference.filter/search-placeholder "Buscar em páginas vinculadas" + :reference.filter/title "Filtrar" + + :search/blank-input "Entrada vazia" + :search/full-text-placeholder "Pesquisa de texto completo" + :search/index-progress "Indexando {1}%" + :search/indices-rebuilt-success "Índices de busca reconstruídos com sucesso!" + :search/no-result "Nenhum resultado correspondente" + :search/result-count "{1} resultados" + + :search.find-in-page/input-placeholder "Localizar na página" + :search.find-in-page/match-case "Diferenciar maiúsculas" + :search.find-in-page/next-result "Próximo resultado" + :search.find-in-page/previous-result "Resultado anterior" + + :select/default-prompt "Selecionar um" + :select/default-select-multiple "Selecionar um ou vários" + :select/new-option "+ Nova opção: {1}" + + :server/error-notification "[Servidor] {1}" + :server/mcp-url-copied "URL MCP copiada" + :server/start "Iniciar" + :server/stop "Parar" + :server/title "Servidor de API HTTP" + + :server.config/auto-start-label "Iniciar automaticamente com o aplicativo" + :server.config/port-label "Faixa de portas" + :server.config/reset "Redefinir" + :server.config/save-and-apply "Salvar e aplicar" + :server.config/title "Configurações do servidor" + + :server.status/closed "Fechado" + :server.status/closing "Fechando" + :server.status/error "Erro" + :server.status/running "Em execução" + :server.status/starting "Iniciando" + :server.status/stopped "Parado" + + :server.token/add-new "Adicionar novo token" + :server.token/name-placeholder "Nome do servidor" + :server.token/regenerate-value "Regenerar valor do token" + :server.token/title "Tokens de autorização" + :server.token/update-success "Tokens atualizados" + :server.token/value-placeholder "Valor" + + :settings/account "Conta" + :settings/advanced "Avançado" + :settings/ai "IA" + :settings/collaboration "Colaboração" + :settings/editor "Editor" + :settings/encryption "Criptografia" + :settings/features "Recursos" + :settings/general "Geral" + :settings/keymap "Mapa de teclas" + :settings/plugins "Configurações de plugins" + + :settings.account/storage-usage "{1}GB de {2}GB de armazenamento total ({3})" + :settings.account/synced-graphs "{1} de {2} gráficos sincronizados ({3})" + + :settings.advanced/auto-chmod "Alterar automaticamente as permissões do arquivo" + :settings.advanced/auto-chmod-desc "Desabilite para permitir edição por vários usuários com permissões concedidas por associação a um grupo." + :settings.advanced/auto-updater "Atualização automática" + :settings.advanced/developer-mode "Modo desenvolvedor" + :settings.advanced/developer-mode-desc "O modo desenvolvedor ajuda os contribuidores e desenvolvedores de extensões a testar suas integrações com o Logseq de maneira mais eficiente." + :settings.advanced/disable-sentry "Enviar dados de uso e diagnósticos para o Logseq" + :settings.advanced/disable-sentry-desc "O Logseq nunca coletará o banco de dados do seu grafo local nem venderá seus dados." + :settings.advanced/network-proxy "Proxy de rede" + + :settings.ai/enable-mcp-server "Habilitar servidor MCP" + :settings.ai/enable-mcp-server-desc "Habilitar servidor MCP para integração com IA" + + :settings.editor/auto-expand-block-refs "Expandir automaticamente as referências de bloco ao dar zoom" + :settings.editor/auto-expand-block-refs-tip "Esta opção controla se as referências de bloco são expandidas automaticamente ao dar zoom." + :settings.editor/custom-date-format "Formato de data preferido" + :settings.editor/enable-all-pages-public "Todas as páginas públicas ao publicar" + :settings.editor/enable-shortcut-tooltip "Ativar dica de atalho" + :settings.editor/enable-tooltip "Habilitar dicas" + :settings.editor/preferred-outdenting "Recuo lógico" + :settings.editor/preferred-outdenting-tip "O lado esquerdo mostra o recuo com a configuração padrão, e o lado direito mostra o recuo com o recuo lógico ativado " + :settings.editor/preferred-outdenting-tip-more "→ Saiba mais" + :settings.editor/preferred-pasting-file "Preferir colar arquivo" + :settings.editor/preferred-pasting-file-hint "Quando ativado, colar uma imagem da internet fará o download e inserirá a imagem. Quando desativado, ele colará o link da imagem." + :settings.editor/show-brackets "Mostrar colchetes" + :settings.editor/show-full-blocks "Mostrar todas as linhas de uma referência de bloco" + :settings.editor/spell-checker "Verificador ortografo" + :settings.editor/wide-mode "Modo amplo" + + :settings.features/enable-flashcards "Habilitar flashcards" + :settings.features/enable-journals "Diários" + :settings.features/home-default-page "Definir a página inicial padrão" + :settings.features/home-default-page-update-success "Página inicial padrão atualizada" + :settings.features/journals-enable-success "Diários habilitados" + :settings.features/login-prompt "Para acessar novos recursos antes de qualquer outra pessoa, você deve ser um Patrocinador ou Apoiador do Logseq no Open Collective e, portanto, fazer login primeiro." + :settings.features/page-not-found "A página \"{1}\" ainda não existe. Crie essa página primeiro e tente novamente." + :settings.features/plugin-system "Sistema de plugins" + + :settings.general/accent-color "Cor de destaque" + :settings.general/accent-color-alert "Alerta de cor de destaque" + :settings.general/accent-color-logseq "Cor clássica do Logseq" + :settings.general/accent-color-none-desc "Cancelar cor de destaque. Este recurso está atualmente em fase beta e é usado principalmente para compatibilidade com temas personalizados." + :settings.general/changelog "O que há de novo?" + :settings.general/check-for-updates "Verificar atualizações" + :settings.general/current-revision-label "Revisão atual" + :settings.general/current-version "Versão atual" + :settings.general/custom-configuration "Configuração personalizada" + :settings.general/custom-global-configuration "Configuração global personalizada" + :settings.general/custom-theme "Tema personalizado" + :settings.general/edit-config-edn "Editar config.edn" + :settings.general/edit-custom-css "Editar custom.css" + :settings.general/edit-export-css "Editar export.css" + :settings.general/edit-global-config-edn "Editar config.edn global" + :settings.general/editor-font "Fonte do editor" + :settings.general/editor-font-set-global "Definir como fonte global" + :settings.general/export-theme "Exportar tema" + :settings.general/language "Idioma" + :settings.general/native-titlebar "Barra de título nativa" + :settings.general/native-titlebar-desc "Ativa a barra de título da janela nativa no Windows e Linux." + :settings.general/refresh-required-feedback "Atualização necessária" + :settings.general/release-channel "canal de lançamento" + :settings.general/revision "Revisão: {1}" + :settings.general/theme-dark "Escuro" + :settings.general/theme-light "Claro" + :settings.general/theme-system "Sistema" + + :settings.sync-server/clear-success "A URL do servidor de sincronização foi limpa. Usando o Logseq Sync oficial." + :settings.sync-server/reset "Redefinir para o padrão" + :settings.sync-server/save-success "URL do servidor de sincronização salva." + :settings.sync-server/url "URL do servidor de sincronização" + :settings.sync-server/url-desc "Defina uma URL HTTPS personalizada para um servidor de sincronização self-hosted. Seus tokens de autenticação do Logseq serão enviados para esse servidor, então use apenas uma URL confiável. Deixe em branco para usar o Logseq Sync oficial." + :settings.sync-server/url-invalid-error "A URL deve começar com https:// ou http://" + + :shell/input-command-title "Inserir comando" + + :shortcut.category/basics "Noções básicas" + :shortcut.category/block-command-editing "Edição de comando de blocos" + :shortcut.category/block-editing "Edição geral de blocos" + :shortcut.category/block-selection "Seleção de blocos (pressione Esc para sair da seleção)" + :shortcut.category/formatting "Formatação" + :shortcut.category/navigating "Navegação" + :shortcut.category/others "Outros" + :shortcut.category/plugins "Plugins" + :shortcut.category/toggle "Alternar" + + :sidebar.left/favorites "Favoritos" + :sidebar.left/navigations "Navegação" + :sidebar.left/recent-pages "Recentes" + + :sidebar.right/close "Fechar" + :sidebar.right/close-all "Fechar todos" + :sidebar.right/close-others "Fechar outros" + :sidebar.right/collapse "Recolher" + :sidebar.right/collapse-all "Recolher todos" + :sidebar.right/collapse-others "Recolher outros" + :sidebar.right/expand "Expandir" + :sidebar.right/expand-all "Expandir todos" + :sidebar.right/more "Mais" + :sidebar.right/open "Abrir na barra lateral" + :sidebar.right/open-as-page "Abrir como página" + :sidebar.right/resize-handle "Manipulador de redimensionamento da barra lateral direita" + :sidebar.right/toggle "Alternar barra lateral direita" + + :storage/invalid-data-writing "Gravação de dados inválida." + :storage/sqlitedb-error "Erro SQLiteDB: {1}" + :storage/sqlitedb-import-error "Erro de importação SQLiteDB: {1}" + :storage/sqlitedb-save-error "Erro ao salvar SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Bloco excluído {1}" + :storage.recycle/empty "A lixeira está vazia." + :storage.recycle/page-deleted-at "Página excluída {1}" + :storage.recycle/readonly "Lixeira (somente leitura)" + :storage.recycle/restore "Restaurar" + :storage.recycle/retention-desc "Páginas e blocos excluídos ficam aqui até serem restaurados ou coletados automaticamente após 30 dias." + :storage.recycle/title "Lixeira" + + :sync/assets-downloading-count "Baixando arquivos ({1})" + :sync/assets-uploading-count "Enviando arquivos ({1})" + :sync/creating-remote-graph "Criando grafo remoto..." + :sync/downloading "Baixando..." + :sync/downloading-graph "Baixando {1} ..." + :sync/graph-count-exceed-limit "O número de grafos excede o limite" + :sync/invitation-sent "Convite enviado" + :sync/last-synced-time-label "Última sincronização: {1}" + :sync/more-debug-info "Mais info de depuração" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "alterações locais pendentes" + :sync/pending-server-changes "alterações do servidor pendentes" + :sync/something-wrong "Erro de sincronização" + :sync/start-sync "Iniciar sincronização" + :sync/storage-exceed-limit "O armazenamento excede o limite" + :sync/uploading "Enviando..." + :sync/user-doesnt-exist-yet "O usuário ainda não existe" + + :theme/logseq-default "Tema padrão do Logseq" + :theme/switch-to "Mudar para o tema {1}" + + :ui/all-done "Tudo pronto!" + :ui/apply "Aplicar" + :ui/cancel "Cancelar" + :ui/close "Fechar" + :ui/configure "Configurar" + :ui/confirm "Confirmar" + :ui/copy "Copiar" + :ui/copy-all "Copiar tudo" + :ui/copy-to-clipboard "Copiar para a área de transferência" + :ui/create "Criar" + :ui/date-natural-language-placeholder "ex. Próxima semana" + :ui/delete "Excluir" + :ui/deleted "Excluído" + :ui/dont-remind-me-again "Não me lembrar novamente" + :ui/empty "Vazio" + :ui/error "Erro" + :ui/error-boundary-error "Erro capturado pela UI!\n {1}" + :ui/export "Exportar" + :ui/false "Falso" + :ui/fix "Corrigir!" + :ui/frequently-used "Mais usados" + :ui/from "De: " + :ui/host "Host" + :ui/image "imagem" + :ui/label "Rótulo" + :ui/link "Link" + :ui/load-more "Carregar mais" + :ui/loading "Carregando" + :ui/login "Entrar" + :ui/logout "Sair" + :ui/off "DESLIGADO" + :ui/on "LIGADO" + :ui/open "Abrir" + :ui/open-named "Abrir {1}" + :ui/port "Porta" + :ui/refresh "Atualizar" + :ui/relaunch-confirm "Esta mudança exige reiniciar o aplicativo. Reiniciar agora?" + :ui/remove-background "Remover fundo" + :ui/reset "Redefinir" + :ui/run "Executar" + :ui/save "Salvar" + :ui/show-less "Mostrar menos" + :ui/show-more "Mostrar mais" + :ui/skip "Ignorar" + :ui/submit "Enviar" + :ui/to "Para: " + :ui/toggle-theme "Alternar tema" + :ui/true "Verdadeiro" + :ui/type "Tipo" + :ui/untitled "Sem título" + :ui/use-current-time "Usar hora atual" + :ui/yes "Sim" + + :updater/checking-for-updates "Verificando atualizações" + :updater/downloading-progress "Baixando atualização ({1}%)" + :updater/quit-and-install "Reiniciar e instalar" + :updater/up-to-date "Seu aplicativo está atualizado 🎉" + :updater/update-available "Atualização disponível" + :updater/update-error "⚠️ Ops, algo deu errado!\nPor favor, verifique o {1}." + :updater/update-ready-to-install "A atualização está pronta para instalar" + + :view/add-new-view "Adicionar nova visualização" + :view/all "Todos" + :view/export-edn "Exportar EDN" + :view/linked-references "Referências vinculadas" + :view/new "Novo" + :view/new-property "Nova propriedade" + :view/new-view "Nova visualização" + :view/rename "Renomear" + :view/results "Resultados:" + :view/unlinked-references "Referências não vinculadas" + + :view.filter/custom-date "Data personalizada" + :view.filter/empty "Vazio" + :view.filter/filter "Filtro" + :view.filter/from "De" + :view.filter/is-empty "Está vazio" + :view.filter/is-not-empty "Não está vazio" + :view.filter/match "Correspondência" + :view.filter/match-all-filters "Atender todos os filtros" + :view.filter/match-any-filter "Atender qualquer filtro" + :view.filter/operator-after "Depois de" + :view.filter/operator-before "Antes de" + :view.filter/operator-between "Entre" + :view.filter/operator-date-after "Data depois de" + :view.filter/operator-date-before "Data antes de" + :view.filter/operator-is "É" + :view.filter/operator-is-not "Não é" + :view.filter/operator-text-contains "O texto contém" + :view.filter/operator-text-not-contains "O texto não contém" + :view.filter/or "Ou" + :view.filter/relative-1-day-ago "1 dia atrás" + :view.filter/relative-1-month-ago "1 mês atrás" + :view.filter/relative-1-week-ago "1 semana atrás" + :view.filter/relative-1-year-ago "1 ano atrás" + :view.filter/relative-3-days-ago "3 dias atrás" + :view.filter/relative-3-months-ago "3 meses atrás" + :view.filter/to "Até" + :view.filter/type-to-search "Digite para buscar" + + :view.table/ascending "Ascendente" + :view.table/columns-visibility "Visibilidade das colunas" + :view.table/default-title "{1} nós" + :view.table/delete-sort "Excluir ordenação" + :view.table/descending "Descendente" + :view.table/drag-to-reorder "Arraste para reordenar" + :view.table/group-by "Agrupar por" + :view.table/group-journal-date "Data do diário" + :view.table/group-page-created-date "Data de criação da página" + :view.table/group-page-name "Nome da página" + :view.table/group-page-updated-date "Data de atualização da página" + :view.table/live-query-title "Consulta ao vivo ({1})" + :view.table/name-column "Nome" + :view.table/no-group-value "Sem {1}" + :view.table/page "Página" + :view.table/pages "Páginas" + :view.table/pin "Fixar" + :view.table/row-number "Número da linha" + :view.table/select-all "Selecionar tudo" + :view.table/select-column "Selecionar coluna" + :view.table/select-order "Selecionar ordem" + :view.table/select-row "Selecionar linha" + :view.table/selected-count "Selecionados: {1}" + :view.table/sort-ascending "Ascendente" + :view.table/sort-descending "Descendente" + :view.table/sort-groups-by "Ordenar grupos por" + :view.table/sort-groups-order "Ordem dos grupos" + :view.table/total-refs-count "Total de referências" + :view.table/unpin "Desafixar" + + :window/close "Fechar" + :window/exit-fullscreen "Sair da tela cheia" + :window/maximize "Maximizar" + :window/minimize "Minimizar" + :window/restore "Restaurar" + + :youtube/embed-first-reminder-mobile "Primeiro incorpore um vídeo do YouTube e depois use este ícone.\nLembre-se: você pode colar uma URL bruta do YouTube como vídeo incorporado em dispositivos móveis." + :youtube/player-not-ready "O player do YouTube ainda não está pronto." + :youtube/timestamps-not-available-mobile "Os timestamps do YouTube ainda não estão disponíveis em dispositivos móveis." + + :zotero/attachments "Anexos" + :zotero/imported-file-warning "Este é um arquivo importado do Zotero, defina diretório de dados do Zotero para abrir o arquivo no Logseq." + :zotero/linked-file-warning "Este é um arquivo vinculado do Zotero, defina diretório base dos anexos vinculados do Zotero para abrir o arquivo no Logseq." + :zotero/notes "Notas" +} diff --git a/src/resources/dicts/pt-pt.edn b/src/resources/dicts/pt-pt.edn index ff23885b5c..12dc682d7c 100644 --- a/src/resources/dicts/pt-pt.edn +++ b/src/resources/dicts/pt-pt.edn @@ -1,312 +1,1861 @@ -{:accessibility/skip-to-main-content "Ir para o conteúdo principal" - :help/start "Começar a usar" - :help/about "Sobre o Logseq" - :help/roadmap "Plano de implementação" - :help/bug "Reportar um erro" - :help/feature "Pedir uma funcionalidade" - :help/changelog "Registo de alterações" - :help/blog "Blogue do Logseq" - :help/docs "Documentação" - :help/privacy "Política de privacidade" - :help/terms "Termos" - :help/forum-community "Comunidade do fórum" - :help/shortcuts "Atalhos de Teclado" - :help/shortcuts-triggers "Iniciadores" - :help/shortcut "Atalho" - :help/slash-autocomplete "Autocompletar com barra" - :help/reference-autocomplete "Autocompletar referência de página" - :help/block-reference "Referência de bloco" - :help/open-link-in-sidebar "Abrir ligação na barra lateral" - :search-item/page "Página" - :help/context-menu "Menu de contexto" - :help/markdown-syntax "Sintaxe de Markdown" - :bold "Negrito" - :italics "Itálico" - :highlight "Realçado" - :strikethrough "Rasurado" - :code "Código" - :untitled "Sem título" - :right-side-bar/help "Ajuda" - :right-side-bar/switch-theme "Temas" - :right-side-bar/contents "Conteúdo" - :right-side-bar/page-graph "Grafo da página" - :right-side-bar/block-ref "Referência de bloco" - :right-side-bar/graph-view "Vista do grafo" - :right-side-bar/flashcards "Flashcards" - :right-side-bar/show-journals "Mostrar págs. diárias" - :right-side-bar/separator "Manipulador de redimensionamento da barra lateral direita" - :left-side-bar/journals "Págs. Diárias" - :left-side-bar/nav-favorites "Favoritos" - :left-side-bar/nav-recent-pages "Recente" - :page/something-went-wrong "Algo deu errado" - :page/logseq-is-having-a-problem "Logseq está tendo um problema. Para tentar colocá-lo de volta em um estado de funcionamento, por favor tente os seguintes passos seguros em ordem:" - :page/step "Passo {1}" - :page/try "Tentar" - :page/make-public "Tornar pública para publicação" - :page/make-private "Tornar privada" - :page/delete "Apagar página" - :page/add-to-favorites "Adicionar aos Favoritos" - :page/unfavorite "Remover dos Favoritos" - :block/name "Nome da página" - :page/copy-page-url "Copiar URL da página" - :file/name "Nome do ficheiro" - :file/last-modified-at "Última modificação em" - :file/no-data "Sem dados" - :file/format-not-supported "O formato .{1} não é suportado." - :page/created-at "Criada Em" - :page/updated-at "Atualizada Em" - :linked-references/filter-search "Procurar nas páginas vinculadas" - :editor/block-search "Pesquisar por um bloco" - :text/image "Imagem" - :asset/show-in-folder "Mostrar imagem na pasta" - :asset/open-in-browser "Abrir imagem no navegador" - :asset/delete "Eliminar imagem" +{ + :account/authentication "Autenticação" + :account/benefits-desc "Com uma conta Logseq, pode aceder a serviços baseados na nuvem como o Logseq Sync e funcionalidades alfa/beta." + :account/billing "Faturação" + :account/billing-expired-on-label "O plano Pro expirou em: {1}" + :account/billing-expires-on-label "O plano Pro expira em: {1}" + :account/billing-next-date-label "Próxima data de faturação: {1}" + :account/core-features "Acesso às funcionalidades principais do Logseq" + :account/current-plan "Plano atual" + :account/delete-account "Eliminar conta" + :account/discover-sync-desc "Descubra o poder do {1}" + :account/early-access-alpha-beta "Acesso antecipado a funcionalidades alfa/beta" + :account/first-name "Nome próprio" + :account/free-plan-sync-limit "1 grafo sincronizado (até 50MB, apenas notas)" + :account/last-name "Apelido" + :account/manage-plan "Gerir plano" + :account/month "mês" + :account/no-asset-syncing "Sem sincronização de ficheiros" + :account/open-invoices "Abrir faturas" + :account/plan-free "Gratuito" + :account/plan-free-summary "Comece com sincronização básica" + :account/plan-pro "Pro" + :account/plan-pro-summary "Desbloqueie sincronização avançada e mais" + :account/pro-plan-sync-limit "10 grafos sincronizados (até 5GB cada)" + :account/profile "Perfil" + :account/refresh-token-warning "Atualização do token: status excepcional" + :account/reset-password "Redefinir palavra-passe" + :account/sign-up "Registar" + :account/sync-assets-limit "Sincronizar ficheiros até 100MB por ficheiro" + :account/synced-status "Sincronizado" + :account/unlimited-unsynced-graphs "Grafos não sincronizados ilimitados" + :account/upcoming-cloud-features "Próximas funcionalidades na nuvem, incluindo o Logseq Publish" + :account/upgrade-plan "Atualizar plano" + :account/username "Nome de utilizador" + + :asset/acceptable-file-extensions "Extensões de ficheiro aceites" + :asset/add-assets "Adicionar ficheiros" + :asset/add-directory "Adicionar diretório" + :asset/alias-already-exists "O nome alternativo \"{1}\" já existe!" + :asset/alias-directories "Diretórios com nome alternativo" + :asset/alias-directory-path-label "Caminho do diretório:" + :asset/alias-name-dialog-title "Qual é o nome alternativo deste diretório selecionado?" + :asset/alias-name-label "Nome alternativo:" + :asset/alias-name-placeholder "ex. Livros" + :asset/align "Alinhamento" + :asset/align-center "Centro" + :asset/align-left "Esquerda" + :asset/align-right "Direita" + :asset/already-exists "O ativo já existe, título: {1}, referência do nó: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Não é possível incorporar o pai como sua própria propriedade" + :asset/confirm-delete-image "Tem a certeza de que quer apagar esta imagem?" :asset/copy "Copiar imagem" + :asset/copy-image-unsupported-extension "Copiar imagem não é suportado para ficheiros {1}" + :asset/create-local-copy-warning "A criar um ficheiro local a partir de um externo. As anotações PDF requerem um ficheiro local para funcionar corretamente." + :asset/create-title "Criar ficheiro" + :asset/delete "Eliminar imagem" + :asset/downloading "Transferência em curso" + :asset/drop-hint "Arraste e largue ficheiros aqui, ou clique para selecionar" + :asset/edit-title "Editar ficheiro" + :asset/external-url-label "URL externo do ficheiro:" + :asset/file-extension-placeholder "ex. mp3" :asset/maximize "Expandir imagem" - :asset/confirm-delete "Tem a certeza de que quer apagar este {1}?" + :asset/open-in-browser "Abrir imagem no navegador" :asset/physical-delete "Remover também o ficheiro (note que não pode ser restaurado)" - :color/gray "Cinzento" - :color/red "Vermelho" - :color/yellow "Amarelo" - :color/green "Verde" + :asset/ref-block "Bloco de referência" + :asset/select-file "Selecionar ficheiro" + :asset/select-from-disk "Selecionar do disco" + :asset/selected-directories "Diretórios selecionados:" + :asset/show-file-in-folder "Mostrar ficheiro na pasta" + :asset/size-too-large "O recurso é muito grande" + :asset/syncing "Sincronização em curso" + :asset/title-label "Título do ficheiro:" + :asset/transfer-placeholder "{1} ficheiros..." + :asset/uploading "Envio em curso" + + :block/click-to-fix-query "Clique para corrigir a consulta: {1}" + :block/copy-ref "Copiar referência do bloco" + :block/copy-url "Copiar URL do bloco" + :block/created-label "Criado: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' está obsoleto. Utilize o comando '/Math block' em alternativa." + :block/deprecated-query-syntax "#+BEGIN_QUERY está obsoleto. Utilize o comando '/Advanced Query' em alternativa." + :block/deprecated-quote "#+BEGIN_QUOTE está obsoleto. Utilize o comando '/Quote' em alternativa." + :block/empty-url "URL vazio" + :block/excalidraw-no-longer-supported "O Excalidraw já não é suportado por predefinição. Planeamos suportá-lo através de plugins." + :block/extraction-error "Erro na extração do bloco" + :block/hide-query "Ocultar consulta" + :block/invalid-hiccup "Hiccup inválido" + :block/invalid-link "Ligação inválida" + :block/invalid-url "URL inválido" + :block/large-block-warning "Blocos grandes não serão editáveis nem pesquisáveis para não tornar a aplicação lenta. Por favor, utilize outro editor para editar este bloco." + :block/last-edited-label "Última edição: {1}" + :block/not-found-warning "Nenhum bloco encontrado" + :block/open-block-references "Abrir referências do bloco" + :block/practice "Praticar" + :block/practice-cards "Praticar cartões" + :block/ref-nesting-too-deep "Aninhamento de referências de bloco demasiado profundo" + :block/remove-tag "Remover etiqueta" + :block/remove-this-tag "Remover esta etiqueta" + :block/render-error "Erro de renderização do bloco:" + :block/set-query "Definir consulta" + :block/set-query-label "Definir consulta:" + :block/sort-order "Ordem de ordenação" + :block/status-history "Histórico de estado" + :block/untitled-query "Consulta sem título" + + :block.macro/embed-deprecated "{{embed}} está obsoleto. Utilize o comando '/Node embed' em alternativa." + :block.macro/namespace-deprecated "{{namespace}} está obsoleto. Utilize a funcionalidade {1} em alternativa." + :block.macro/query-deprecated "{{query}} está obsoleto. Utilize o comando '/Query' em alternativa." + :block.macro/unsupported-name "Nome de macro não suportado: {1}" + + :block.reaction/emoji-required-warning "Emoji obrigatório" + :block.reaction/unsupported-emoji-warning "Emoji de reação não suportado" + + :bug-report/desc "Reportar erro" + :bug-report/title "Reportar um erro" + + :bug-report.clipboard/action-desc "Inspecionar área de transferência" + :bug-report.clipboard/action-title "Inspetor da área de transferência" + :bug-report.clipboard/desc "Se tiver problemas com copiar e colar, use o inspetor da área de transferência" + :bug-report.clipboard/title "Área de transferência" + + :bug-report.inspector/back "Voltar" + :bug-report.inspector/clipboard-desc "Conteúdo da área de transferência" + :bug-report.inspector/copied "Copiado para a área de transferência" + :bug-report.inspector/copy "Copiar" + :bug-report.inspector/copy-desc "Copiar o relatório de diagnóstico" + :bug-report.inspector/create-issue "Criar issue" + :bug-report.inspector/create-issue-desc "Agora pode reportar o resultado colado na área de transferência. Cole o resultado na secção 'Additional Context' e indique de onde copiou o conteúdo original. Obrigado!" + :bug-report.inspector/desc "Pressione {1} para inspecionar os dados da área de transferência\nou clique aqui para colar se estiver a usar a versão móvel" + :bug-report.inspector/placeholder "Cole o conteúdo aqui" + :bug-report.inspector/tip "Dica: use Ctrl+V para colar" + :bug-report.inspector/title "Inspetor da área de transferência" + + :bug-report.issue/action-desc "Ver problemas conhecidos" + :bug-report.issue/action-title "Problemas no GitHub" + :bug-report.issue/desc "Verifique se o seu problema já foi reportado" + :bug-report.issue/report-link "Reportar problema" + :bug-report.issue/title "Problemas conhecidos" + + :class/add-property "Adicionar propriedade da etiqueta" + :class/tag-properties-desc "As propriedades da etiqueta são herdadas por todos os nós que usam a etiqueta. Por exemplo, cada nó #Task herda 'Status' e 'Priority'." + :class/tagged-nodes "Nós com etiqueta" + + :class.built-in/asset "Ficheiro" + :class.built-in/card "Cartão" + :class.built-in/cards "Cartões" + :class.built-in/code-block "Código" + :class.built-in/journal "Diário" + :class.built-in/math-block "Matemática" + :class.built-in/page "Página" + :class.built-in/pdf-annotation "Anotação PDF" + :class.built-in/property "Propriedade" + :class.built-in/query "Consulta" + :class.built-in/quote-block "Citação" + :class.built-in/root "Etiqueta raiz" + :class.built-in/tag "Etiqueta" + :class.built-in/task "Tarefa" + :class.built-in/template "Modelo" + :class.built-in/whiteboard "Quadro branco" + + :class.validation/built-in-extends-change "A herança de elementos integrados não pode ser alterada." + :class.validation/cant-add-tag-on-built-in "Não é possível adicionar tag no \"{1}\" integrado." + :class.validation/cant-remove-private-tags "Não é possível remover as etiquetas privadas: {1}." + :class.validation/cant-remove-tag-built-in "Não é possível remover a etiqueta com #{1} integrado." + :class.validation/cant-remove-tag-on-built-in "Não é possível remover a etiqueta no \"{1}\" integrado." + :class.validation/cant-set-tag-built-in "Não é possível definir tag com #{1} integrado." + :class.validation/duplicate "A tag '{1}' já existe." + :class.validation/extends-cycle "Ciclo detectado na relação de herança." + :class.validation/invalid-extends-type "Tipo de herança inválido." + :class.validation/parents-must-be-tags "Os pais de tags devem ser tags." + :class.validation/tag-with-non-tag "Não é possível definir uma etiqueta com uma página integrada que não seja uma etiqueta \"{1}\"." + + :cmdk.action/apply-theme "Aplicar tema" + :cmdk.action/copy-ref "Copiar referência" + :cmdk.action/create "Criar" + :cmdk.action/filter "Filtrar" + :cmdk.action/open "Abrir" + :cmdk.action/open-in-sidebar "Abrir na barra lateral" + :cmdk.action/search "Pesquisar" + :cmdk.action/trigger "Executar" + + :cmdk.create/configure-tag "Configurar tag" + :cmdk.create/page "Criar página" + :cmdk.create/tag "Criar tag" + + :cmdk.error/no-block-link "Este bloco não contém links." + :cmdk.error/no-page-link "Esta página não contém links." + :cmdk.error/no-search-item-link "Este resultado de pesquisa não contém links." + + :cmdk.filter/add "Adicionar filtro" + :cmdk.filter/codes "Apenas código" + :cmdk.filter/commands "Apenas comandos" + :cmdk.filter/current-page "Apenas página atual" + :cmdk.filter/files "Apenas ficheiros" + :cmdk.filter/nodes "Apenas nós" + :cmdk.filter/only-label "Apenas pesquisa:" + :cmdk.filter/themes "Apenas temas" + + :cmdk.group/codes "Código" + :cmdk.group/commands "Comandos" + :cmdk.group/create "Criar" + :cmdk.group/current-page "Página atual" + :cmdk.group/files "Ficheiros" + :cmdk.group/filters "Filtros" + :cmdk.group/nodes "Nós" + :cmdk.group/recently-updated "Atualizados recentemente" + :cmdk.group/themes "Temas" + + :cmdk.info/configure-tag "Configurar #{1}" + :cmdk.info/create-page "Criar a página '{1}'" + :cmdk.info/create-tag "Criar a tag '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Adicionar filtro de grafo" + :cmdk.input/default-placeholder "O que procura?" + :cmdk.input/move-blocks-placeholder "Mover blocos" + :cmdk.input/type-page-name-placeholder "Escreva o nome da página" + + :cmdk.tip/clear-filter "Prima {1} para limpar o filtro de pesquisa" + :cmdk.tip/filter-results "Prima {1} para filtrar os resultados da pesquisa" + :cmdk.tip/label "Sugestão:" + :cmdk.tip/open-sidebar "Prima {1} para abrir a pesquisa na barra lateral" + + :collaboration/email-address "Endereço de e-mail" + :collaboration/invite "Convidar" + :collaboration/members "Membros:" + :collaboration/remove-access "Remover acesso" + :collaboration/remove-access-error "Falha ao remover o membro" + :color/blue "Azul" - :color/purple "Roxo" + :color/crimson "Carmesim" + :color/cyan "Ciano" + :color/grass "Verde-relva" + :color/gray "Cinzento" + :color/green "Verde" + :color/indigo "Índigo" + :color/orange "Laranja" :color/pink "Rosa" - :editor/copy "Copiar" + :color/plum "Ameixa" + :color/purple "Roxo" + :color/red "Vermelho" + :color/teal "Azul-petróleo" + :color/tomato "Tomate" + :color/violet "Violeta" + :color/yellow "Amarelo" + + :command.auto-complete/complete "Autocompletar: Escolha o item selecionado" + :command.auto-complete/meta-complete "Autocompletar Meta" + :command.auto-complete/next "Autocompletar: Selecione o próximo item" + :command.auto-complete/prev "Autocompletar: Selecione o item anterior" + :command.auto-complete/shift-complete "Autocompletar: Abra o item selecionado na barra lateral" + + :command.command-palette/toggle "Alternar paleta de comandos" + + :command.editor/add-property "Adicionar propriedade" + :command.editor/add-property-deadline "Adicionar prazo" + :command.editor/add-property-icon "Adicionar ícone" + :command.editor/add-property-priority "Adicionar prioridade" + :command.editor/add-property-status "Adicionar status" + :command.editor/add-reaction "Adicionar reação" + :command.editor/backspace "Retroceder / Eliminar para atrás" + :command.editor/backward-kill-word "Apagar a palavra anterior" + :command.editor/backward-word "Mover o cursor para a palavra anterior" + :command.editor/beginning-of-block "Mover o cursor para o início do bloco" + :command.editor/bold "Negrito" + :command.editor/clear-block "Apagar conteúdo do bloco" + :command.editor/collapse-block-children "Colapsar" + :command.editor/copy "Copiar" + :command.editor/copy-embed "Copiar uma incorporação do bloco, apontando para o bloco atual" + :command.editor/copy-page-url "Copiar URL da página" + :command.editor/copy-text "Copiar seleção como texto" + :command.editor/cut "Cortar" + :command.editor/cycle-todo "Alternar estado TODO do elemento" + :command.editor/delete "Apagar / Eliminar para a frente" + :command.editor/delete-selection "Eliminar blocos selecionados" + :command.editor/down "Mover cursor para baixo / Selecionar para baixo" + :command.editor/end-of-block "Mover o cursor para o fim do bloco" + :command.editor/escape-editing "Sair da edição" + :command.editor/expand-block-children "Expandir" + :command.editor/follow-link "Seguir ligação sob o cursor" + :command.editor/forward-kill-word "Apagar a próxima palavra" + :command.editor/forward-word "Mover o cursor para a próxima palavra" + :command.editor/highlight "Realçado" + :command.editor/indent "Aumentar avanço de parágrafo" + :command.editor/insert-link "Inserir ligação HTML" + :command.editor/insert-youtube-timestamp "Inserir timestamp do youtube" + :command.editor/italics "Itálico" + :command.editor/jump "Ir para" + :command.editor/kill-line-after "Apagar linha depois do cursor" + :command.editor/kill-line-before "Apagar linha antes do cursor" + :command.editor/left "Mover cursor para a esquerda / Abrir bloco selecionado no início" + :command.editor/move-block-down "Mover bloco para baixo" + :command.editor/move-block-up "Mover bloco para cima" + :command.editor/move-blocks "Mover blocos" + :command.editor/new-block "Criar novo bloco" + :command.editor/new-line "Nova linha no bloco actual" + :command.editor/open-edit "Editar bloco selecionado" + :command.editor/open-link-in-sidebar "Abrir ligação na barra lateral" + :command.editor/open-selected-blocks-in-sidebar "Abrir blocos selecionados na barra lateral" + :command.editor/outdent "Diminuir avanço de parágrafo" + :command.editor/paste-text-in-one-block-at-point "Colar texto em um bloco no ponto" + :command.editor/quick-add "Adição rápida" + :command.editor/redo "Refazer" + :command.editor/right "Mover cursor para a direita / Abrir bloco selecionado no final" + :command.editor/select-all-blocks "Selecionar todos os blocos" + :command.editor/select-block-down "Selecionar bloco abaixo" + :command.editor/select-block-up "Selecionar bloco acima" + :command.editor/select-down "Selecione o conteúdo abaixo" + :command.editor/select-parent "Selecione o bloco pai" + :command.editor/select-up "Selecione o conteúdo acima" + :command.editor/set-tags "Definir tags" + :command.editor/strike-through "Rasurar" + :command.editor/toggle-block-children "Mostrar/ocultar filhos do bloco" + :command.editor/toggle-display-hidden-properties "Mostrar/ocultar propriedades ocultas" + :command.editor/toggle-number-list "Alternar lista numerada" + :command.editor/toggle-open-blocks "Alternar blocos abertos (colapsar ou expandir todos)" + :command.editor/undo "Desfazer" + :command.editor/up "Mover cursor para cima / Selecionar para cima" + :command.editor/zoom-in "Aproximar / Para a frente" + :command.editor/zoom-out "Afastar / Para trás" + + :command.go/all-graphs "Ir a todos os grafos" + :command.go/all-pages "Ir para todas as páginas" + :command.go/backward "Voltar" + :command.go/electron-find-in-page "Procurar texto na página" + :command.go/electron-jump-to-the-next "Ir para a próxima correspondência da sua pesquisa" + :command.go/electron-jump-to-the-previous "Voltar para a correspondência anterior da sua pesquisa" + :command.go/flashcards "Trocar flashcards" + :command.go/forward "Avançar" + :command.go/graph-view "Ir para o grafo" + :command.go/home "Voltar para o Início" + :command.go/journals "Ir para diários" + :command.go/keyboard-shortcuts "Ir para os atalhos do teclado" + :command.go/next-journal "Ir ao proximo jornal" + :command.go/prev-journal "Ir ao jornal anterior" + :command.go/search "Pesquisar no grafo" + :command.go/search-in-page "Pesquisar na página" + :command.go/search-themes "Pesquisar temas" + :command.go/tomorrow "Ir para amanhã" + + :command.graph/add "Adicionar um grafo" + :command.graph/db-add "Adicionar ao banco de dados" + :command.graph/db-save "Guardar banco de dados" + :command.graph/export-as-html "Exportar páginas de gráficos públicos como HTML" + :command.graph/open "Selecionar grafo para abrir" + :command.graph/remove "Remover um grafo" + + :command.misc/copy "Copiar (copiar seleção ou referência do bloco)" + :command.misc/export-block-data "Exportar dados do bloco" + :command.misc/export-graph-ontology-data "Exportar dados da ontologia do grafo" + :command.misc/export-page-data "Exportar dados da página" + :command.misc/import-edn-data "Importar dados EDN" + + :command.page/toggle-favorite "Adicionar aos/remover dos favoritos" + + :command.pdf/close "Fechar visualização do PDF" + :command.pdf/find "PDF: Pesquisar no documento PDF atual" + :command.pdf/next-page "Próxima página do PDF atual" + :command.pdf/previous-page "Página anterior do PDF atual" + + :command.publish/open-dialog "Abrir diálogo de publicação" + + :command.search/re-index "Reconstruir índice de pesquisa" + + :command.shell/run "Execute o comando Git" + + :command.sidebar/clear "Limpar tudo da barra lateral direita" + :command.sidebar/close-top "Fechar item superior na barra lateral direita" + :command.sidebar/open-today-page "Abrir a página de hoje na barra lateral direita" + + :command.ui/clear-all-notifications "Limpar todas as notificações" + :command.ui/customize-appearance "Personalizar aparência" + :command.ui/goto-plugins "Ir para o painel de plugins" + :command.ui/highlight-recent-blocks "Destacar blocos recentes" + :command.ui/install-plugin-from-github "Instalar plugin do GitHub" + :command.ui/install-plugins-from-file "Instalar plugins de plugins.edn" + :command.ui/select-theme-color "Selecionar as cores do tema disponível" + :command.ui/toggle-brackets "Alternar parênteses retos" + :command.ui/toggle-contents "Alternar Conteúdo na barra lateral" + :command.ui/toggle-document-mode "Alternar modo de documento" + :command.ui/toggle-help "Alternar ajuda" + :command.ui/toggle-left-sidebar "Trocar barra lateral esquerda" + :command.ui/toggle-right-sidebar "Alternar barra lateral" + :command.ui/toggle-settings "Alternar Opções" + :command.ui/toggle-theme "Alternar entre tema claro/escuro" + :command.ui/toggle-wide-mode "Alternar modo de ecrã amplo" + + :command.window/close "Fechar janela" + + :context-menu/developer-tools "Ferramentas de programador" + :context-menu/make-a-flashcard "Criar flashcard" + :context-menu/set-icon "Definir ícone" + :context-menu/toggle-number-list "Alternar lista numerada" + + :date/invalid-date-warning "{1} não é uma data válida. Por favor tente novamente" + + :date.nlp/last-friday "Sexta passada" + :date.nlp/last-monday "Segunda passada" + :date.nlp/last-month "Mês passado" + :date.nlp/last-saturday "Sábado passado" + :date.nlp/last-sunday "Domingo passado" + :date.nlp/last-thursday "Quinta passada" + :date.nlp/last-tuesday "Terça passada" + :date.nlp/last-wednesday "Quarta passada" + :date.nlp/last-week "Semana passada" + :date.nlp/last-year "Ano passado" + :date.nlp/next-friday "Sexta próxima" + :date.nlp/next-monday "Segunda próxima" + :date.nlp/next-month "Próximo mês" + :date.nlp/next-saturday "Sábado próximo" + :date.nlp/next-sunday "Domingo próximo" + :date.nlp/next-thursday "Quinta próxima" + :date.nlp/next-tuesday "Terça próxima" + :date.nlp/next-wednesday "Quarta próxima" + :date.nlp/next-week "Próxima semana" + :date.nlp/next-year "Próximo ano" + :date.nlp/this-friday "Esta sexta-feira" + :date.nlp/this-monday "Esta segunda-feira" + :date.nlp/this-month "Este mês" + :date.nlp/this-saturday "Este sábado" + :date.nlp/this-sunday "Este domingo" + :date.nlp/this-thursday "Esta quinta-feira" + :date.nlp/this-tuesday "Esta terça-feira" + :date.nlp/this-wednesday "Esta quarta-feira" + :date.nlp/this-week "Esta semana" + :date.nlp/this-year "Este ano" + :date.nlp/today "Hoje" + :date.nlp/tomorrow "Amanhã" + :date.nlp/yesterday "Ontem" + + :deeplink/open-block-error "Não foi possível abrir o link. O ID do bloco `{1}` não existe no grafo atual." + :deeplink/open-graph-error "Não foi possível abrir o grafo. O grafo `{1}` não existe." + :deeplink/open-page-error "Não foi possível abrir o link. A página `{1}` não existe no grafo atual." + + :editor/add-content-first-warning "Por favor, adicione primeiro algum conteúdo." + :editor/auto-heading "Título automático" + :editor/block-search "Pesquisar por um bloco" + :editor/click-to-edit "Clicar para editar" + :editor/code-language-placeholder "Escolher linguagem" + :editor/collapse-block-children "Recolher filhos do bloco" :editor/cut "Cortar" - :content/copy-export-as "Copiar / Exportar como.." - :content/copy-block-url "Copiar URL do bloco" - :content/copy-block-ref "Copiar referência do bloco" - :content/copy-ref "Copiar esta referência" - :content/delete-ref "Apagar esta referência" - :content/open-in-sidebar "Abrir na barra lateral" - :content/click-to-edit "Clicar para editar" - :settings-page/edit-config-edn "Editar config.edn" - :settings-page/edit-global-config-edn "Editar config.edn global" - :settings-page/edit-custom-css "Editar custom.css" - :settings-page/edit-export-css "Editar export.css" - :settings-page/custom-configuration "Configuração personalizada" - :settings-page/custom-global-configuration "Configuração global personalizada" - :settings-page/custom-theme "Tema personalizado" - :settings-page/export-theme "Exportar tema" - :settings-page/show-brackets "Mostrar parênteses retos" - :settings-page/spell-checker "Verificador ortográfico" - :settings-page/auto-updater "Atualizar automaticamente" - :settings-page/disable-sentry "Enviar dados de utilização e diagnósticos para a Logseq" - :settings-page/disable-sentry-desc "A Logseq nunca irá recolher informações sobre a sua base de dados de grafos local ou vender os seus dados." - :settings-page/preferred-outdenting "Desindentação lógica" - :settings-page/show-full-blocks "Mostrar todas a linhas de uma referência de bloco" - :settings-page/custom-date-format "Formato de data preferido" - :settings-page/preferred-pasting-file "Preferir colar ficheiro" - :settings-page/enable-shortcut-tooltip "Ativar dicas de atalhos" - :settings-page/enable-tooltip "Dicas de contexto" - :settings-page/enable-journals "Páginas Diárias" - :settings-page/enable-all-pages-public "Todas as páginas públicas ao publicar" - :settings-page/home-default-page "Definir a página inicial predefinida" - :settings-page/clear-cache "Limpar cache" - :settings-page/clear "Limpar" - :settings-page/clear-cache-warning "Limpar a cache irá descartar todos os grafos abertos. Perderá as alterações não guardadas." - :settings-page/developer-mode "Modo de desenvolvedor" - :settings-page/developer-mode-desc "O modo de desenvolvedor ajuda os contribuidores e programadores de extensões a testar as suas integrações com o Logseq mais eficientemente." - :settings-page/current-version "Versão atual" - :settings-page/tab-general "Geral" - :settings-page/tab-advanced "Avançado" - :settings-page/tab-features "Funcionalidades" - :settings-page/network-proxy "Proxy de rede" - :settings-page/plugin-system "Plugins" - :settings-page/enable-flashcards "Flashcards" - :settings-page/login-prompt "Para aceder a novas funcionalidades antes de qualquer outra pessoa tem de ser um \"Sponsor\" ou \"Backer\" na Open Collective do Logseq e, portanto, tem de iniciar sessão primeiro." - :yes "Sim" - :cancel "Cancelar" - :close "Fechar" - :delete "Apagar" - :save "Guardar" - :type "Tipo" - :port "Porta" - :graph "Grafo" + :editor/cycle-todo "Alternar TODO" + :editor/delete-selection "Eliminar seleção" + :editor/display-tag-inline-hint "para mostrar esta tag em linha em vez de no fim deste nó." + :editor/expand-block-children "Expandir filhos do bloco" + :editor/heading "Título {1}" + :editor/moving-blocks-count "A mover {1} blocos" + :editor/new-page "Nova página" + :editor/new-tag "Nova etiqueta" + :editor/no-block-selected-warning "Nenhum bloco selecionado" + :editor/paste "Colar" + :editor/reference-node-use-page-ref "Para fazer referência a um nó, utilize `[[]]`." + :editor/remove-heading "Remover título" + :editor/search-for-node "Procurar um nó" + :editor/search-for-tag "Procurar uma tag" + :editor/search-template-placeholder "Pesquisar um modelo" + :editor/template-insert-error "Erro ao inserir modelo: {1}" + + :editor.document-mode/new-block-hint "{1} para criar novo bloco" + :editor.document-mode/title "Modo documento" + :editor.document-mode/toggle-desc "Clique `D` ou escreva {1} para alternar o modo documento" + + :editor.quick-add/add-to-today "Adicionar à página de hoje" + :editor.quick-add/title "Adição rápida" + + :editor.slash/advanced-query "Consulta avançada" + :editor.slash/advanced-query-desc "Criar um bloco de consulta avançada" + :editor.slash/calculator "Calculadora" + :editor.slash/calculator-desc "Inserir uma calculadora" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Bloco de código" + :editor.slash/code-block-desc "Inserir bloco de código" + :editor.slash/current-time "Hora atual" + :editor.slash/current-time-desc "Inserir a hora atual" + :editor.slash/date-picker "Seletor de data" + :editor.slash/date-picker-desc "Selecionar uma data e inserir aqui" + :editor.slash/embed-html "Incorporar HTML" + :editor.slash/embed-twitter-tweet "Incorporar tweet do Twitter" + :editor.slash/embed-video-url "Incorporar URL de vídeo" + :editor.slash/embed-youtube-timestamp "Incorporar timestamp do YouTube" + :editor.slash/group-advanced "AVANÇADO" + :editor.slash/group-basic "BÁSICO" + :editor.slash/group-format "FORMATO" + :editor.slash/group-heading "Título" + :editor.slash/group-list-type "TIPO DE LISTA" + :editor.slash/group-plugins "PLUGINS" + :editor.slash/group-priority "PRIORIDADE" + :editor.slash/group-task-date "DATA DA TAREFA" + :editor.slash/group-task-status "ESTADO DA TAREFA" + :editor.slash/group-time-and-date "HORA E DATA" + :editor.slash/heading-label "Título {1}" + :editor.slash/image-link "Ligação de imagem" + :editor.slash/image-link-desc "Criar uma ligação HTTP para uma imagem" + :editor.slash/link-desc "Criar uma ligação HTTP" + :editor.slash/math-block "Bloco matemático" + :editor.slash/math-block-desc "Criar um bloco LaTeX" + :editor.slash/no-priority "Sem prioridade" + :editor.slash/node-embed "Incorporação de nó" + :editor.slash/node-embed-desc "Incorporar um nó aqui" + :editor.slash/node-reference "Referência de nó" + :editor.slash/node-reference-desc "Criar uma ligação de retorno para um nó (uma página ou um bloco)" + :editor.slash/normal-text "Texto normal" + :editor.slash/normal-text-desc "Limpar título e definir como texto normal" + :editor.slash/number-children "Filhos numerados" + :editor.slash/number-list "Lista numerada" + :editor.slash/priority-desc "Definir prioridade para {1}" + :editor.slash/priority-label "Prioridade {1}" + :editor.slash/query-function "Função de consulta" + :editor.slash/query-function-desc "Criar uma função de consulta" + :editor.slash/quote-desc "Criar um bloco de citação" + :editor.slash/status-desc "Definir estado para {1}" + :editor.slash/template-desc "Inserir um modelo criado aqui" + :editor.slash/today-desc "Inserir a data de hoje" + :editor.slash/tomorrow-desc "Inserir a data de amanhã" + :editor.slash/underline "Sublinhado" + :editor.slash/underline-desc "Criar uma decoração de texto sublinhada" + :editor.slash/upload-asset "Enviar um ficheiro" + :editor.slash/upload-asset-desc "Enviar tipos de ficheiro como imagem, PDF, DOCX, etc." + :editor.slash/yesterday-desc "Inserir a data de ontem" + + :electron/about "Sobre o Logseq" + :electron/add-to-dictionary "Adicionar ao dicionário" + :electron/block-not-exist "Falha ao abrir o link. O ID do bloco `{1}` não existe no grafo." + :electron/cancel "Cancelar" + :electron/copy-image "Copiar imagem" + :electron/link-open-confirm "Tem a certeza de que quer abrir esta ligação?\n{1}" + :electron/link-open-failed-missing-graph "Não foi possível abrir o link. Grafo ausente." + :electron/link-open-failed-no-graph "Falha ao abrir o link. Não foi possível associar o identificador de grafo `{1}` a nenhum grafo ligado." + :electron/link-open-failed-no-target "Falha ao abrir o link. Não foi possível associar `{1}` a nenhum destino." + :electron/look-up "Pesquisar seleção" + :electron/main-exception "[Exceção do processo principal]\n{1}\n{2}" + :electron/new-window "Nova janela" + :electron/official-docs "Documentação oficial" + :electron/ok "OK" + :electron/open-dir-error "Não foi possível abrir o diretório: {1}" + :electron/save-image "Guardar imagem" + :electron/save-image-as "Guardar imagem como" + :electron/search-with-google "Pesquisar no Google" + :electron/unimplemented-callback "Ação x-callback-url não implementada: `{1}`." + :electron/version "Versão {1}" + :electron/write-file-error "Falha ao guardar o ficheiro {1}, {2}." + :electron/write-file-error-with-backup "Falha ao guardar o ficheiro {1}, {2}. Um ficheiro de cópia de segurança foi guardado em {3}." + + :encryption/cloud-password-rich (fn [] ["Se perder a sua palavra-passe, nenhum dos seus dados na nuvem poderá ser decifrado. " [:span "Mesmo assim, continuará a poder aceder à versão local do seu grafo."]]) + :encryption/current-password "Palavra-passe atual" + :encryption/enter-password "Introduza a palavra-passe" + :encryption/enter-password-again "Introduza a palavra-passe novamente" + :encryption/enter-password-title "Introduza a palavra-passe" + :encryption/failed-to-force-reset-password "Falha na reposição forçada da palavra-passe" + :encryption/failed-to-update-password "Falha ao atualizar a palavra-passe" + :encryption/fetch-key-pair-error "Errando o par de chaves rsa do utilizador: {1}" + :encryption/fetching-key-pair "Obtendo par de chaves" + :encryption/force-reset-password "Repor palavra-passe forçosamente" + :encryption/force-reset-password-successfully "Palavra-passe reposta forçosamente com sucesso" + :encryption/force-resetting-password "Reposição forçada em curso" + :encryption/forgot-password-question "Esqueceu a palavra-passe?" + :encryption/forgot-password-warning "Se esquecer a palavra-passe, os dados encriptados não poderão ser recuperados." + :encryption/init-key-pair "Inicializar par de chaves" + :encryption/init-key-pair-error "Erro no par de chaves de arranque: {1}" + :encryption/password-not-matched "As palavras-passe não coincidem" + :encryption/password-updated-successfully "Palavra-passe atualizada" + :encryption/remember-password-rich (fn [] [[:span "Certifique-se de "] "se lembrar da palavra-passe que definiu, porque não a poderemos repor nem recuperar se a esquecer, " [:span "e recomendamos que "] "guarde uma cópia de segurança segura da palavra-passe."]) + :encryption/reset-password "Repor palavra-passe" + :encryption/set-new-password "Definir nova palavra-passe" + :encryption/set-password-title "Definir palavra-passe" + :encryption/updating-password "A atualizar palavra-passe" + :encryption/wrong-password "Palavra-passe incorreta" + + :export/backup-successful "Backup realizado com sucesso!" + :export/block-data-copied "Dados do bloco copiados para a área de transferência" + :export/collecting-assets "A recolher ficheiros" + :export/copied-to-clipboard "Copiado para a área de transferência!" + :export/copy-or-export-as "Copiar / Exportar como.." + :export/creating-zip "A criar zip" + :export/db-backup-error "Falha no backup do banco de dados." + :export/db-edn "Exportar como ficheiro EDN" + :export/debug-transit-desc "Exporta para um ficheiro .transit para nos enviar para depuração. Quaisquer dados sensíveis serão removidos do ficheiro exportado." + :export/debug-transit-file "Exportar ficheiro de depuração transit" + :export/edn-desc "Exporta para um ficheiro .edn legível e editável. Não confie nisto como cópia de segurança principal." + :export/error-unexpected "Ocorreu um erro inesperado durante a exportação. Consulte a consola JavaScript para obter detalhes." + :export/exporting "A exportar" + :export/finalizing "A finalizar" + :export/format-text "Texto" + :export/graph "Exportar grafo" + :export/graph-ontology-data-copied "Dados da ontologia do grafo copiados para a área de transferência" + :export/indent-style-dashes "travessões" + :export/indent-style-label "Estilo de indentação:" + :export/indent-style-none "sem indentação" + :export/indent-style-spaces "espaços" + :export/level-lte "nível <=" + :export/markdown "Exportar como Markdown padrão (sem propriedades de bloco)" + :export/newline-after-block "nova linha após o bloco" + :export/no-updates-since-last-export "Sem atualizações desde a última exportação." + :export/open-blocks-only "apenas blocos abertos (ignorar filhos recolhidos)" + :export/page "Exportar página" + :export/page-data-copied "Dados da página copiados para a área de transferência" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "A preparar zip" + :export/preview-alt "pré-visualização da exportação" + :export/public-pages "Exportar páginas públicas" + :export/remove-emphasis "remover ênfase" + :export/remove-properties "remover propriedades" + :export/remove-tags "remover #etiquetas" + :export/save-to-file "Guardar em ficheiro" + :export/sqlite-db "Exportar banco de dados SQLite" + :export/title "Exportar" + :export/transparent-background "Fundo transparente" + :export/view-nodes-data-copied "Dados dos nós da visualização copiados para a área de transferência" + :export/zip "Exportar banco de dados SQLite e recursos" + :export/zip-error "Falha na exportação do ZIP." + + :export.backup/backup-now "Fazer cópia agora" + :export.backup/cancel "Cancelar cópia de segurança" + :export.backup/enabled-desc "As cópias de segurança horárias estão ativadas para este grafo, {1}." + :export.backup/folder "Pasta de cópias de segurança:" + :export.backup/hourly-note "A cópia de segurança será criada a cada hora." + :export.backup/open-folder "abrir pasta de cópias de segurança deste grafo" + :export.backup/schedule "Agendar cópia de segurança" + :export.backup/set-folder-first "Defina primeiro a pasta de cópias de segurança" + :export.backup/sqlite-desc "Forma principal de criar cópia de segurança do conteúdo do grafo num único ficheiro .sqlite." + :export.backup/unsupported-desc "O seu navegador não suporta {{The File System Access API}}. Por favor, mude para um navegador baseado em Chromium." + :export.backup/zip-desc "Forma principal de criar cópia de segurança do conteúdo e ficheiros do grafo num ficheiro .zip." + + :file/config-duplicate-keys "O ficheiro '{1}' possui chaves duplicadas. A chave '{2}' é atribuída várias vezes." + :file/config-invalid "O ficheiro de configuração é inválido" + :file/format-not-supported "O formato .{1} não é suportado." + :file/label "Ficheiro" + :file/last-modified-at "Última modificação em" + :file/name "Nome do ficheiro" + :file/no-data "Sem dados" + :file/title "Ficheiro {1}" + + :file.config/deprecation-title "O ficheiro {1} tem as seguintes depreciações:" + :file.config/error-title "O ficheiro {1} tem os seguintes erros:" + :file.config/invalid-desc "Certifique-se de que a configuração está envolvida em {}." + :file.config/invalid-title "O ficheiro {1} não é válido." + :file.config/read-failed-desc "Certifique-se de que a sua configuração está envolvida em {}. Certifique-se também de que os caracteres '( { [' têm os seus caracteres de encerramento correspondentes ') } ]'." + :file.config/read-failed-title "Falha ao ler o ficheiro {1}" + + :flashcard/add-query "Adicionar nova consulta" + :flashcard/all-cards "Todos os cartões" + :flashcard/select-cards "Selecionar cartões" + :flashcard/shortcut-tooltip "Atalho: {1}" + + :flashcard.empty/desc "Pode adicionar \"{1}\" a qualquer bloco para o transformar numa carta ou acionar \"/cloze\" para adicionar alguns clozes." + :flashcard.empty/title "Bem-vindo aos Flashcards" + + :flashcard.rating/again "Novamente" + :flashcard.rating/again-desc "Falhámos a resposta. Isto significa automaticamente que nos esquecemos do cartão. É uma falha de memória." + :flashcard.rating/easy "Fácil" + :flashcard.rating/easy-desc "A resposta estava correta e recordámo-la rápida e confiantemente, sem esforço mental." + :flashcard.rating/good "Bom" + :flashcard.rating/good-desc "A resposta estava correta, mas exigiu algum esforço mental para a recordar." + :flashcard.rating/hard "Difícil" + :flashcard.rating/hard-desc "A resposta estava correta, mas não tínhamos confiança nela ou demorámos demasiado tempo a recordá-la." + + :flashcard.review/finished "Concluído! 💯" + :flashcard.review/hide-answers "Ocultar respostas" + :flashcard.review/show-answers "Mostrar respostas" + :flashcard.review/show-clozes "Mostrar lacunas" + + :format/bold "Negrito" + :format/code "Código" + :format/highlight "Realce" + :format/italics "Itálico" + :format/strikethrough "Rasurado" + :graph/all-graphs "Todos os grafos" - :export "Exportar" - :export-graph "Exportar grafo" - :export-page "Exportar página" - :export-markdown "Exportar como Markdown padrão (sem propriedades de bloco)" - :export-public-pages "Exportar páginas públicas" - :all-graphs "Todos os grafos" - :all-files "Todos os ficheiros" - :all-journals "Todas as págs. diárias" - :settings "Definições" - :settings-of-plugins "Plugins" - :plugins "Plugins" - :themes "Temas" - :relaunch-confirm-to-work "A aplicação deve ser reiniciada para que funcione corretamente. Quer reiniciar agora?" - :import "Importar" - :importing "A importar" - :help-shortcut-title "Clique para ver atalhos e outras dicas" - :login "Iniciar sessão" - :logout "Terminar sessão" - :download "Descarregar" - :language "Idioma" - :remove-background "Remover fundo" - :remove-heading "Remover título" - :heading "Título {1}" - :auto-heading "Título automático" + :graph/already-exists-error "O grafo '{1}' já existe. Por favor, tente novamente com outro nome." + :graph/as-png "como PNG" + :graph/built-in-pages "Páginas incorporadas" + :graph/charge-range "Alcance da carga" + :graph/charge-strength "Força da carga" + :graph/click-to-search "Clique para pesquisar" + :graph/create-db "Criar um grafo de BD" + :graph/create-error "Falha ao criar o grafo" + :graph/create-new "Criar um novo grafo" + :graph/created-before "Criado antes de" + :graph/creating "A criar grafo" + :graph/delete-local-action "Eliminar grafo local" + :graph/delete-local-confirm-desc "Tem a certeza de que pretende eliminar permanentemente o gráfico \"{1}\" do Logseq?" + :graph/delete-server-action "Eliminar do servidor" + :graph/delete-server-confirm-desc "Tem a certeza de que pretende eliminar permanentemente o gráfico \"{1}\" do nosso servidor?" + :graph/delete-warning "⚠️ Note que não podemos recuperar este gráfico após a sua eliminação. Certifique-se de que possui cópias de segurança antes de o eliminar." + :graph/diff "Git diff" + :graph/downloading "a transferir" + :graph/encrypt-data-label "Encriptar dados do grafo" + :graph/excluded-pages "Páginas excluídas" + :graph/forces "Forças" + :graph/gc-success "Limpeza do grafo concluída com sucesso!" + :graph/last-opened-at-label "Aberto pela última vez: {1}" + :graph/leave-action "Sair deste grafo" + :graph/leave-confirm-desc "Tem a certeza de que pretende sair deste gráfico?" + :graph/leave-error "Falha ao sair do grafo" + :graph/left "Grafo abandonado" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "ligação" "ligações"))) + :graph/link-distance "Distância da ligação" + :graph/local-graphs "Grafos locais" + :graph/n-hops-from-selected-nodes "N saltos a partir dos nós selecionados" + :graph/name-placeholder "nome do seu grafo" + :graph/nodes "Nós" + :graph/orphan-pages "Páginas órfãs" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "página" "páginas"))) + :graph/pause-simulation "Pausar simulação" + :graph/preparing "a preparar" + :graph/refresh-remote-graphs "Atualizar grafos remotos" + :graph/remote-graphs "Grafos remotos" + :graph/removed "Gráfico removido \"{1}\"" + :graph/removed-and-redirecting "Gráfico removido \"{1}\". Redireccionamento para o gráfico \"{2}\"" + :graph/removed-from-sync "Grafo removido da sincronização" + :graph/reset "Reiniciar grafo" + :graph/reset-forces "Reiniciar forças" + :graph/search "Pesquisar" + :graph/shared-graphs "Grafos compartilhados" + :graph/updated-switching "Grafo atualizado. Alternando..." + :graph/use-sync-beta "Usar Logseq Sync (beta)" + :graph/use-sync-label "Usar Logseq Sync?" - :help/shortcut-page-title "Atalhos de teclado" + :graph.diagnostics/checksum-failed-error "Falha ao calcular os diagnósticos de checksum do grafo." + :graph.diagnostics/checksum-recomputed-success "Checksum recalculado. Recalculado: {1}, local: {2}, remoto: {3}. {4}.edn foi transferido com {5} blocos e atributos de checksum {6}." + :graph.diagnostics/checksum-unavailable-warning "Não foi possível calcular os diagnósticos de checksum do grafo atual." + :graph.diagnostics/client-ops-export-failed-error "Falha ao exportar Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Falha ao exportar Client ops SQLite: tipo de payload inválido {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exportado: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Nenhum grafo encontrado." - :plugin/installed "Instalado" - :plugin/not-installed "Não instalado" - :plugin/installing "A instalar" - :plugin/install "Instalar" - :plugin/reload "Recarregar" - :plugin/update "Atualizar" - :plugin/check-update "Procurar por atualizações" - :plugin/check-all-updates "Procurar por todas as atualizações" - :plugin/refresh-lists "Atualizar listas" - :plugin/enabled "Ativado" - :plugin/disabled "Desativado" - :plugin/update-available "Atualização disponível" - :plugin/updating "A atualizar" - :plugin/uninstall "Desinstalar" - :plugin/marketplace "Mercado" - :plugin/downloads "Downloads" - :plugin/stars "Estrelas" - :plugin/all "Todos" - :plugin/unpacked "Desempacotado" - :plugin/delete-alert "Tem a certeza de quer desinstalar o plugin [{1}]?" - :plugin/open-settings "Abrir definições" - :plugin/open-package "Abrir pacote" - :plugin/load-unpacked "Carregar plugin desempacotado" - :plugin/restart "Reiniciar a aplicação" - :plugin/unpacked-tips "Selecionar a pasta de plugins" - :plugin/contribute "✨ Escreva e submeta um novo plugin" - :plugin/custom-js-alert "Ficheiro custom.js encontrado, quer executá-lo? (Se não compreender o conteúdo do ficheiro, é melhor não executá-lo, pois há certos riscos de segurança ao fazê-lo.)" - :plugin.install-from-file/menu-title "Instalar a partir de plugins.edn" - :plugin.install-from-file/title "Instalar plugins a partir de plugins.edn" - :plugin.install-from-file/notice "Os seguintes plugins irão substituir os seus plugins:" - :plugin.install-from-file/success "Todos os plugins foram instalados!" + :graph.page/show-journals "Mostrar págs. diárias" + :graph.page/title "Grafo da página" + :graph.switch/add-graph-action "Sim, adicionar outro grafo" + :graph.switch/empty-desc "Sem grafos correspondentes. Quer adicionar outro?" + :graph.switch/prompt "Alternar" + :graph.switch/select-prompt "Selecione um grafo" + + :graph.validation/config-arweave-gateway-warning "já não é suportado." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "já não é suportado. Por favor, utilize '/' e reporte os bugs." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "não é utilizado em gráficos DB pois há apenas modo markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "A validação detetou {1} bloco(s) inválido(s). Estes blocos podem ter erros. Tentativa de corrigir blocos inválidos. Execute a validação novamente para ver se foram corrigidos." + :graph.validation/name-reserved-characters-warning "O nome do grafo não pode conter os seguintes caracteres reservados:" + :graph.validation/reserved-character-asterisk "asterisco" + :graph.validation/reserved-character-backslash "barra invertida" + :graph.validation/reserved-character-colon "dois-pontos" + :graph.validation/reserved-character-double-quote "aspas duplas" + :graph.validation/reserved-character-forward-slash "barra" + :graph.validation/reserved-character-greater-than "maior do que" + :graph.validation/reserved-character-hash "cardinal" + :graph.validation/reserved-character-less-than "menor do que" + :graph.validation/reserved-character-pipe "barra vertical ou pipe" + :graph.validation/reserved-character-plus "mais" + :graph.validation/reserved-character-question-mark "ponto de interrogação" + :graph.validation/valid "O seu gráfico é válido! {1}" + + :header/go-back "Voltar" + :header/go-forward "Avançar" + :header/highlight-recent-blocks "Destacar blocos recentes" + :header/highlight-recent-blocks-days-ago "Destacar blocos recentes: há {1} dias" + :header/more "Mais" + :header/quit-highlight-recent-blocks "Sair do destaque de blocos recentes" + :header/toggle-left-sidebar "Alternar barra lateral esquerda" + + :help/about "Sobre o Logseq" + :help/about-title "Sobre" + :help/ask-community "Perguntar à comunidade" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Referência de bloco" + :help/blog "Blogue do Logseq" + :help/bug "Reportar erro no GitHub" + :help/changelog "Registo de alterações" + :help/community-title "Comunidade" + :help/context-menu "Menu de contexto" + :help/context-menu-action "Clique com o botão direito no marcador" + :help/development-title "Desenvolvimento" + :help/docs "Documentação" + :help/feature "Pedido de funcionalidade" + :help/forum-community "Comunidade do fórum" + :help/handbook "Manual" + :help/learn-more "Saber mais" + :help/markdown-syntax "Sintaxe de Markdown" + :help/open-link-in-sidebar "Abrir ligação na barra lateral" + :help/open-link-in-sidebar-action "Shift+clique na referência" + :help/privacy "Política de privacidade" + :help/reference-autocomplete "Autocompletar referência de página" + :help/release-notes "Notas de versão" + :help/roadmap "Roteiro" + :help/search "Pesquisar" + :help/slash-autocomplete "Autocompletar com barra" + :help/start "Começar a usar" + :help/submit-feedback "Enviar feedback" + :help/support-forum "Fórum de suporte" + :help/terms "Termos" + :help/terms-title "Termos" + :help/usage-title "Utilização" + + :help.handbook/chat-on-discord "Conversar no Discord" + :help.handbook/chat-on-discord-desc "Faça perguntas rápidas, conheça outros utilizadores e aprenda novos fluxos de trabalho." + :help.handbook/copy-topic-link "Copiar ligação do tópico" + :help.handbook/current-chapter "Capítulo atual" + :help.handbook/help-categories "Categorias de ajuda" + :help.handbook/home "Início" + :help.handbook/link-copied "Ligação do manual copiada!" + :help.handbook/monthly-posts "publicações mensais" + :help.handbook/next-chapter "Próximo capítulo" + :help.handbook/popular-topics "Tópicos populares" + :help.handbook/prev-chapter "Capítulo anterior" + :help.handbook/resources-from "Recursos de {1}" + :help.handbook/search-placeholder "Pesquisar" + :help.handbook/shortcuts-count "{1} atalhos" + :help.handbook/sync "Sincronização" + :help.handbook/title "Manual" + :help.handbook/topics "Tópicos" + :help.handbook/users-online "utilizadores online" + :help.handbook/visit-the-forum "Visitar o fórum" + :help.handbook/visit-the-forum-desc "Dê feedback, sugira funcionalidades e tenha conversas aprofundadas." + :help.handbook/writing-mode "Modo de escrita (pré-visualização em tempo real)" + + :help.shortcuts/desc "Ver atalhos e dicas" + :help.shortcuts/label "Atalhos de Teclado" + :help.shortcuts/shortcut-column "Atalho" + :help.shortcuts/title "Atalhos de teclado" + :help.shortcuts/triggers "Iniciadores" + + :icon/emojis-count "Emojis ({1})" + :icon/icons-count "Ícones ({1})" + :icon/matched-count "Correspondências ({1})" + :icon/search-all "Pesquisar tudo" + :icon/search-emojis "Pesquisar emojis" + :icon/search-icons "Pesquisar ícones" + :icon/tab-all "Tudo" + :icon/tab-emojis "Emojis" + :icon/tab-icons "Ícones" + + :import/all-tags "Importar todas as tags" + :import/asset-too-large-warning "A cópia do recurso {1} foi ignorada porque excede o limite de 100 MB." + :import/assets-import-partial "{1}/{2} recursos importados. Detalhes no console." + :import/assets-imported "{1} recursos importados." + :import/assets-skipped "{1} recursos ignorados. Detalhes no console." + :import/block-icons-cannot-be-imported "Ícones de blocos não podem ser importados. Importe-os manualmente no bloco {1}." + :import/cannot-import-block-into-non-block-entity "Não é possível importar um bloco em uma entidade que não é bloco." + :import/db-edn-desc "Importar a exportação EDN de um grafo DB para um novo grafo DB" + :import/db-edn-title "EDN para grafo DB" + :import/debug-transit-desc "Importar ficheiro de depuração transit para um novo grafo DB" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Comportamento padrão do grafo de banco de dados" + :import/empty-graph-name "O nome do grafo não pode estar vazio." + :import/extract-inline-code-snippets "Extrair trechos de código inline como sub-blocos" + :import/file-finished "Importação concluída!" + :import/file-to-db-desc "Importar uma pasta de grafo Logseq baseado em ficheiros para um novo grafo DB" + :import/file-to-db-title "Ficheiro para grafo DB" + :import/graph-name-conflict "Já existe um grafo com este nome. Escolha outro nome!" + :import/graph-name-placeholder "Nome do grafo" + :import/ignored-assets "{1} recursos ignorados durante a importação. Detalhes no console JavaScript." + :import/ignored-files "{1} ficheiros ignorados durante a importação. Detalhes no console JavaScript." + :import/ignored-properties "{1} propriedades ignoradas durante a importação" + :import/ignored-properties-fix "Para corrigir o tipo de propriedade, altere o valor para o tipo correto e reimporte o grafo" + :import/invalid-blocks-detected "{1} blocos inválidos detectados durante a importação. A interação pode falhar. Detalhes no console JavaScript." + :import/invalid-edn-file "O ficheiro EDN fornecido é inválido. Corrija e tente novamente." + :import/loading "Importando" + :import/logseq-config-missing "Erro de importação: o grafo Logseq não possui o ficheiro 'logseq/config.edn'." + :import/new-graph-name "Novo nome do grafo" + :import/notes "Importar notas existentes" + :import/org-files-imported "{1} ficheiros Org importados como Markdown. O suporte a ficheiros Org será adicionado futuramente." + :import/page-icons-cannot-be-imported "Ícones de páginas não podem ser importados. Importe-os manualmente na página {1}." + :import/properties-case-insensitive-commas "Nomes de propriedades (sem distinção de maiúsculas, separados por vírgulas)" + :import/property-classes-placeholder "ex. type" + :import/property-import-manually "Esta propriedade deve ser importada manualmente" + :import/property-parent-classes-placeholder "ex. parent" + :import/property-type-mismatch "O valor da propriedade é do tipo {1}, não {2}" + :import/property-value-tag-parents "Importar pais de tags dos valores de propriedades" + :import/property-value-tags "Importar tags adicionais dos valores de propriedades" + :import/remove-inline-tags "Remover tags inline" + :import/select-edn-or-json "Selecione um ficheiro EDN ou JSON." + :import/specific-tags "Importar tags específicas" + :import/sqlite-and-assets-desc "Importar um zip contendo db.sqlite e uma pasta de ficheiros" + :import/sqlite-and-assets-title "SQLite + ficheiros (.zip)" + :import/submitted-edn-invalid "Os dados EDN enviados são inválidos! Corrija e tente novamente." + :import/successful "Importação realizada com sucesso!" + :import/tag-classes-placeholder "Tag1, Tag2" + :import/tags-case-insensitive "Tags (sem distinção de maiúsculas)" + :import/title "Importar" + :import/unexpected-error "Erro inesperado: {1}" + :import/zip-import-error "Falha na importação de Zip: {1}" + :import/zip-missing-db-sqlite "O ZIP não contém db.sqlite" + + :journal/add-blocks-to-today-success "Blocos adicionados hoje" + :journal/page-cant-convert-warning "Esta página não é uma página de diário." + :journal/parse-date-to-name-error "Falha ao analisar o nome do diário" + + :journal.default-query/doing "A FAZER" + :journal.default-query/todo "POR FAZER" + + :keymap/all "Todos" + :keymap/already-bound "Atalho já em uso" + :keymap/also-used-for-action "Também usado para {1}" + :keymap/also-used-for-action-in-context "Também usado para {1} No contexto {2}" + :keymap/clear "Limpar" + :keymap/clear-keystroke-filter "Limpar filtro de teclas" + :keymap/clear-search "Limpar pesquisa" + :keymap/custom "Personalizados" + :keymap/deactivates-chord "Desativa o atalho" + :keymap/deactivates-chords "Desativa {1} combinações de atalhos" + :keymap/disabled "Desativados" + :keymap/esc-is-reserved "Esc é reservado" + :keymap/hint-cancel "Cancelar" + :keymap/hint-close "Fechar" + :keymap/hint-reassign "Reatribuir" + :keymap/hint-remove "Remover" + :keymap/keystroke-filter "Filtrar por tecla" + :keymap/no-matching-shortcuts "Nenhum atalho correspondente" + :keymap/press-a-shortcut "Pressione um atalho" + :keymap/press-keys-to-filter "Pressione teclas para filtrar" + :keymap/reassign "Reatribuir" + :keymap/reassign-tooltip "Reatribuir o atalho desta ação" + :keymap/reassigned-from "Reatribuído de {1}" + :keymap/refresh-all "Atualizar tudo" + :keymap/remove-binding "Remover atalho" + :keymap/remove-filter "Remover filtro" + :keymap/reset "Repor" + :keymap/reset-to-default "Repor para o padrão" + :keymap/search-by-keys "Pesquisar por teclas" + :keymap/search-placeholder "Pesquisar atalhos…" + :keymap/shortcut-added "Atalho adicionado" + :keymap/shortcut-removed "Atalho removido" + :keymap/toggle-categories-pane "Alternar painel de categorias" + :keymap/undo "Anular" + :keymap/unset "Não definido" + :keymap/used-by-action "Usado por {1}" + + :library/add-existing-pages "Adicionar páginas existentes à Biblioteca" + :library/add-pages "Adicionar páginas" + :library/title "Biblioteca" + + :mobile/camera-access-denied "O acesso à câmara está recusado. Ative-o em Definições > Logseq." + :mobile/microphone-access-denied "O acesso ao microfone está recusado. Ative-o em Definições > Logseq." + + :mobile.header/actions "Ações" + :mobile.header/create-graph "Criar grafo" + :mobile.header/delete-block-confirm-desc "Pretende eliminar este bloco?" + :mobile.header/delete-page-confirm-desc "Pretende eliminar esta página?" + + :mobile.intent/file-options "Opções do ficheiro" + :mobile.intent/open-with-app "Abrir ficheiro com a sua aplicação favorita" + :mobile.intent/select-option-prompt "Selecione uma opção para executar" + :mobile.intent/share "Partilhar" + + :mobile.log/all "Todos" + :mobile.log/errors-only "Apenas erros" + :mobile.log/full "Completo" + :mobile.log/new-first "Mais recentes primeiro" + :mobile.log/old-first "Mais antigos primeiro" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Conta" + :mobile.settings/check-log "Ver registro" + :mobile.settings/discord-community "Comunidade Discord" + :mobile.settings/forum "Fórum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Reportar erro" + :mobile.settings/revision "Revisão" + :mobile.settings/theme "Tema" + :mobile.settings/version "Versão" + + :mobile.share/file-import-error "Falha ao importar ficheiro compartilhado" + :mobile.share/media-import-error "Falha ao importar mídia compartilhada" + :mobile.share/unsupported-content-warning "A análise do conteúdo partilhado atual não é suportada. Por favor, reporte os seguintes códigos em {1}. Iremos analisar brevemente." + :mobile.share/unsupported-import-type "A importação de ficheiros {1} não é suportada. Pode reportar em {2}. Iremos analisar brevemente." + + :mobile.tab/capture "Capturar" + :mobile.tab/go-to "Ir para" + :mobile.tab/graphs "Grafos" + + :mobile.toolbar/audio "Áudio" + :mobile.toolbar/copy-ref "Copiar ref" + :mobile.toolbar/copy-url "Copiar url" + :mobile.toolbar/hide "Ocultar" + :mobile.toolbar/indent "Avançar" + :mobile.toolbar/outdent "Diminuir avanço" + :mobile.toolbar/photo "Foto" + :mobile.toolbar/redo "Refazer" + :mobile.toolbar/reference "Referência" + :mobile.toolbar/slash "Barra" + :mobile.toolbar/tag "Etiqueta" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Anular" + :mobile.toolbar/unselect "Desselecionar" + + :nav/all-files "Todos os ficheiros" + :nav/all-journals "Todos os diários" + :nav/appearance "Aparência" + :nav/assets "Recursos" + :nav/cannot-go-to-internal-page "Não é possível navegar para a página interna" + :nav/flashcards "Flashcards" + :nav/graph "Grafo" + :nav/graph-view "Vista do grafo" + :nav/help "Ajuda" + :nav/home "Início" + :nav/invalid-jump-error "Salto inválido" + :nav/journals "Págs. Diárias" + :nav/plugins "Plugins" + :nav/search "Pesquisar" + :nav/settings "Configurações" + :nav/skip-to-main-content "Ir para o conteúdo principal" + :nav/tasks "Tarefas" + :nav/themes "Temas" + + :nav.all-pages/label "Todas as páginas" + :nav.all-pages/title "Todas as páginas" + + :node/built-in-cant-delete-error "Elementos integrados não podem ser eliminados." + :node/new "Novo nó" + + :notification/clear-all "Limpar tudo" + :notification/copied "Copiado" + + :onboarding.import/desc "Descrição da importação" + :onboarding.import/sqlite-desc "Importar de base de dados SQLite" + :onboarding.import/title "Importar" + + :onboarding.import-option/desc "Pode importar os seus dados de outras aplicações" + :onboarding.import-option/title "Importar dados" + + :onboarding.setup/desc "O espaço de trabalho do seu conhecimento" + :onboarding.setup/title (fn [] ["Bem-vindo ao " [:strong "Logseq!"]]) + + :page/add-to-favorites "Adicionar aos Favoritos" + :page/added-tag-to-node "Adicionada a etiqueta \"{1}\" a \"{2}\"" + :page/backlinks "Backlinks" + :page/clear "Limpar" + :page/clear-local-storage-desc "Isto elimina preferências menores como a preferência de tema escuro/claro." + :page/cleared "Limpo" + :page/contents "Conteúdo" + :page/convert-to-tag "Converter em etiqueta" + :page/copy-url "Copiar URL da página" + :page/create "Criar uma nova página" + :page/created-at "Criada Em" + :page/current-graph-as-sqlite-db "grafo atual como base de dados SQLite" + :page/default-query-error "Falha na consulta predefinida:" + :page/delete "Apagar página" + :page/go-back-home "Voltar ao início" + :page/hide-properties "Ocultar propriedades" + :page/local-storage "armazenamento local" + :page/logseq-is-having-a-problem "Logseq está tendo um problema. Para tentar colocá-lo de volta em um estado de funcionamento, por favor tente os seguintes passos seguros em ordem:" + :page/make-private "Tornar privada" + :page/make-public "Tornar pública para publicação" + :page/moved-to-recycle "O nó foi movido para a Reciclagem" + :page/name "Nome da página" + :page/no-page-found-to-copy "Nenhuma página encontrada para copiar" + :page/not-found "Página não encontrada" + :page/not-found-desc "Ups! A página que procura não existe." + :page/not-found-title "Página não encontrada" + :page/not-found-warning "Nenhuma página encontrada" + :page/open-all-graphs-desc "Também pode ir a {{All graphs}} para mudar para outro grafo." + :page/open-issue-desc "Se estes passos de resolução de problemas não resolveram o seu problema, por favor {{open an issue}}." + :page/open-properties "Abrir propriedades" + :page/rebuild "Reconstruir" + :page/relaunch "Reiniciar" + :page/relaunch-desc "Sair e reabrir a aplicação." + :page/scheduled-and-deadline "Agendado e Prazo" + :page/search-index "índice de pesquisa" + :page/send-db-for-debugging "Pode enviá-lo para help@logseq.com para depuração." + :page/something-went-wrong "Algo deu errado" + :page/step "Passo {1}" + :page/the-app "a aplicação" + :page/try "Tentar" + :page/unfavorite "Remover dos Favoritos" + :page/unknown "Página desconhecida" + :page/updated-at "Atualizada Em" + + :page.convert/block-parent-not-page "Não é possível converter o bloco. O pai não é uma página." + :page.convert/cant-be-block "A página \"{1}\" não pode ser convertida num bloco." + :page.convert/cant-be-block-has-children "A página \"{1}\" não pode ser convertida num bloco porque tem páginas filhas." + :page.convert/cant-be-block-move-first "A página \"{1}\" não pode ser convertida num bloco, mova-a primeiro para outra página." + :page.convert/page-to-tag-action "Converter \"{1}\" em etiqueta" + :page.convert/page-to-tag-built-in "Páginas integradas não podem ser tags" + :page.convert/page-to-tag-duplicate "Já existe uma tag com o nome \"{1}\"." + :page.convert/page-to-tag-namespaced "Páginas com namespace não podem ser tags" + :page.convert/property-value-to-page "Não é possível converter o valor da propriedade em página." + :page.convert/tag-to-page-action "Converter etiqueta em página" + :page.convert/tag-to-page-built-in "Tags integradas não podem ser páginas" + :page.convert/tag-to-page-confirm-desc "Converter uma etiqueta em página também remove as propriedades dessa etiqueta e a própria etiqueta de todos os nós marcados com ela. Pretende continuar?" + :page.convert/tag-to-page-duplicate "Já existe uma página com o nome \"{1}\"." + :page.convert/tag-to-page-has-children "A tag possui filhos e não pode ser convertida" + + :page.delete/batch-confirm-title "Tem a certeza de que pretende eliminar estas páginas? As propriedades e tags serão eliminadas permanentemente e as páginas serão movidas para a Reciclagem." + :page.delete/confirm-title "Tem a certeza que pretende eliminar esta página?" + :page.delete/permanent-confirm-title "Tem a certeza de que pretende eliminar permanentemente esta página?" + :page.delete/success "A página \"{1}\" foi eliminada com sucesso!" + :page.delete/total "Total: {1}" + :page.delete/warning "Estas páginas tiveram o seu conteúdo eliminado, mas não puderam ser eliminadas: {1}. Consulte a consola javascript para obter mais detalhes." + + :page.validation/cant-set-built-in-tags "A nova página não consegue definir as tags integradas: {1}" + :page.validation/duplicate "Já existe outra página chamada \"{1}\" para as tags: {2}." + :page.validation/name-blank "O nome da página não pode estar vazio." + :page.validation/name-no-hash "O nome da página não pode conter #" + :page.validation/name-no-slash "O nome da página não pode conter /." + :page.validation/parents-must-be-pages "Os pais de páginas devem ser páginas." + + :pdf/annotations-page "Página de anotações" + :pdf/area-highlight-shortcut "Destaque de área ({1})" + :pdf/auto-fit "Ajuste automático" + :pdf/auto-open-context-menu "Abrir menu de contexto automaticamente" :pdf/copy-ref "Copiar referência" :pdf/copy-text "Copiar texto" - :pdf/linked-ref "Referências ligadas" - :pdf/toggle-dashed "Estilo tracejado para realce de área" - :pdf/hl-block-colored "Rótulo colorido para bloco de destaque" + :pdf/corrupted-file-error "Erro: {1}\nEste ficheiro .pdf está corrompido?\nPor favor, confirme com um visualizador de PDF externo." :pdf/doc-metadata "Metadados do documento" + :pdf/enter-to-search "Enter para pesquisar" + :pdf/find-results "{1} de {2} correspondências (\"{3}\")" + :pdf/generic-error "Erro: {1}\n{2}\nPor favor, confirme com o recurso do ficheiro PDF." + :pdf/highlight-mode "Modo de destaque" + :pdf/highlights "Destaques" + :pdf/hl-block-colored "Rótulo colorido para bloco de destaque" + :pdf/linked-ref "Referências ligadas" + :pdf/load-highlights-file-error "Erro: falha ao carregar o ficheiro de destaques: \"{1}\". \n{2}" + :pdf/missing-file-error "Erro: {1}\n Este é o caminho correto?" + :pdf/more-settings "Mais definições" + :pdf/no-outlines "Sem índice" + :pdf/not-found "Não encontrado." + :pdf/open-in-app-window "Abrir na janela da aplicação" + :pdf/open-in-external-window "Abrir em janela externa" + :pdf/outline "Índice" + :pdf/page-label "Página {1}" + :pdf/password-protected-desc "Este documento está protegido por palavra-passe. Por favor, introduza uma palavra-passe:" + :pdf/password-required "Palavra-passe necessária" + :pdf/search "Pesquisar" + :pdf/search-placeholder "pesquisar" + :pdf/toggle-dashed "Estilo tracejado para realce de área" + :pdf/viewer "visualizador pdf" + :pdf/zoom-in "Ampliar" + :pdf/zoom-out "Reduzir" - :updater/new-version-install "Uma nova versão foi descarregada." - :updater/quit-and-install "Reiniciar para instalar" + :plugin/all "Todos" + :plugin/auto-update-check "Verificar atualizações automaticamente" + :plugin/auto-update-check-feedback "Verificação automática de atualizações: {1}!" + :plugin/check-all-updates "Procurar por todas as atualizações" + :plugin/check-update "Procurar por atualizações" + :plugin/checked "Verificado" + :plugin/checking-for-updates "A verificar atualizações" + :plugin/contribute "✨ Escreva e submeta um novo plugin" + :plugin/custom-js-alert "Ficheiro custom.js encontrado, quer executá-lo? (Se não compreender o conteúdo do ficheiro, é melhor não executá-lo, pois há certos riscos de segurança ao fazê-lo.)" + :plugin/date-added "Data de adição" + :plugin/delete-alert "Tem a certeza de quer desinstalar o plugin [{1}]?" + :plugin/disable-for-performance-feedback "O plugin {1} está desativado." + :plugin/disable-now "Desativar agora" + :plugin/disabled "Desativado" + :plugin/does-not-support-db "Não suporta grafos DB" + :plugin/downloads "Transferências" + :plugin/empty "Nada encontrado." + :plugin/enabled "Ativado" + :plugin/existed-package "Pacote de plugins existente ({1})." + :plugin/fatal-error "Fatal: {1}" + :plugin/found-n-updates "{1} atualizações encontradas" + :plugin/found-updates "Atualizações encontradas" + :plugin/install "Instalar" + :plugin/install-error "Falha na instalação: {1}\n{2}" + :plugin/installed "Instalado" + :plugin/installed-plugin "Plug-in instalado: {1}" + :plugin/installing "A instalar" + :plugin/invalid-github-repo-url "URL do repositório GitHub inválida" + :plugin/invalid-package "Pacote inválido" + :plugin/invalid-plugins-edn "plugins.edn inválido" + :plugin/list-of-updates "Lista de atualizações" + :plugin/load-from-web-url "Carregar de URL web" + :plugin/load-plugin-indicator "Carregar plugin: {1}..." + :plugin/load-unpacked "Carregar plugin desempacotado" + :plugin/loading-indicator "A CARREGAR" + :plugin/malformed-plugins-edn "plugins.edn malformado" + :plugin/marketplace "Mercado" + :plugin/new-registered "Nova extensão registada" + :plugin/no-settings-schema "Sem esquema de definições!" + :plugin/not-installed "Não instalado" + :plugin/open-logseq-dir "Abrir pasta Logseq" + :plugin/open-package "Abrir pacote" + :plugin/open-preferences "Abrir preferências" + :plugin/open-settings "Abrir definições" + :plugin/perf-tip "Este plugin {1} demora demasiado tempo a carregar, afetando o tempo de arranque da aplicação e podendo causar falhas no carregamento de outros plugins." + :plugin/popular "Popular" + :plugin/proxy-check-success "Sucesso! Estado {1} em {2}ms." + :plugin/readme-empty-warning "Sem conteúdo README" + :plugin/refresh-lists "Atualizar listas" + :plugin/reload "Recarregar" + :plugin/remote-error "Erro remoto: {1}" + :plugin/report-modal-desc "Se algum plugin não estiver disponível ou se suspeitar que contém código malicioso, envie um e-mail para {1}. Mencione o nome do plugin e o URL do seu repositório do GitHub. A equipa do Logseq responde normalmente num dia útil." + :plugin/report-security "Reportar problema de segurança" + :plugin/restart "Reiniciar a aplicação" + :plugin/search-plugin "Pesquisar extensão" + :plugin/security-warning "Aviso de segurança" + :plugin/setting-not-handled "#Não Tratado# {1}" + :plugin/settings-schema-error "Erro no esquema de definições!" + :plugin/stars "Estrelas" + :plugin/supports-db "Suporte BD" + :plugin/title "Título ({1})" + :plugin/uninstall "Desinstalar" + :plugin/unpacked "Desempacotado" + :plugin/unpacked-tips "Selecionar a pasta de plugins" + :plugin/up-to-date "Está atualizado {1}" + :plugin/update "Atualizar" + :plugin/update-all-selected "Atualizar todas as selecionadas" + :plugin/update-all-success "Todas as extensões atualizadas" + :plugin/update-available "Atualização disponível" + :plugin/update-plugin "Plug-in de atualização: {1} - {2}" + :plugin/updates-downloading "A transferir atualizações" + :plugin/updating "A atualizar" + + :plugin.install-from-file/menu-title "Instalar a partir de plugins.edn" + :plugin.install-from-file/notice "Os seguintes plugins irão substituir os seus plugins:" + :plugin.install-from-file/success "Todos os plugins foram instalados!" + :plugin.install-from-file/title "Instalar plugins a partir de plugins.edn" + + :plugin.install-from-web-url/effect-label "efeito" + :plugin.install-from-web-url/repo-url-placeholder "URL do repositório GitHub" + :plugin.install-from-web-url/supports-note "Os URLs suportam repositórios do GitHub e servidores de desenvolvimento local. (Por exemplo: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Removê-lo apenas destaca o plugin do Logseq e mantém intacta a pasta de origem." + :plugin.package-config/parse-error "Falha ao analisar a configuração do pacote do plugin." + :plugin.package-config/remove-error "Falha ao remover o plugin corrompido." + :plugin.package-config/remove-external-success "O plugin corrompido foi removido da lista de plugins." + :plugin.package-config/remove-installed-success "Plugin corrompido \"{1}\" removido." + + :plugin.proxy/direct "Direto" + :plugin.proxy/system "Sistema" + :plugin.proxy/test-url "URL de teste" + :plugin.proxy/testing "A testar" + + :plugin.settings/edit-settings-json "Editar settings.json" + :plugin.settings/exit-code-mode "Sair do modo de código" + :plugin.settings/title "Configurações de plugins" + + :plugin.themes/default-desc "Tema predefinido do Logseq ({1})." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "Temas ({1})" + :plugin.themes/light-and-dark "temas claros & escuros" + + :profiler/input-fn-placeholder "introduza o nome da função aqui" + :profiler/unregister "Cancelar registo" + + :property/add-choice "Adicionar opção" + :property/add-choices "Adicionar opções" + :property/add-description "Adicionar descrição" + :property/add-new "Adicionar propriedade" + :property/add-or-change "Adicionar ou alterar propriedade" + :property/available-choices "Opções disponíveis" + :property/change-tooltip "Alterar {1}" + :property/checkbox-state-mapping "Mapeamento de estado da caixa de verificação" + :property/children-count "Crianças ({1})" + :property/choices-count "{1} escolhas" + :property/choose-tag "Escolher tag" + :property/choose-tags "Escolher tags" + :property/clear-value "Limpar" + :property/configure "Configurar" + :property/convert-page-to-property "Converter \"{1}\" em propriedade" + :property/create-error "Falha ao criar a propriedade." + :property/default-value "Valor padrão" + :property/delete-from-node "Eliminar do nó" + :property/delete-from-node-confirm "Pretende eliminar esta propriedade do nó?" + :property/delete-from-tag "Eliminar da tag" + :property/delete-from-tag-confirm "Pretende eliminar esta propriedade da tag?" + :property/description-placeholder "Inserir descrição" + :property/drag-to-reorder "Arraste para reordenar" + :property/existing-values "Valores existentes" + :property/go-to-this-property "Ir para a página da propriedade" + :property/hidden-properties "Propriedades ocultas" + :property/hide-by-default "Ocultar por padrão" + :property/hide-choice-for-tag "Ocultar opção para tag" + :property/hide-empty-value "Ocultar valores vazios" + :property/hide-for-tag "Ocultar para #{1}" + :property/hide-hidden-choices "Ocultar opções ocultas" + :property/map-checked-to "Mapear marcado para" + :property/map-unchecked-to "Mapear desmarcado para" + :property/more-settings "Mais configurações" + :property/multiple-values "Valores múltiplos" + :property/multiple-values-confirm "Habilitar valores múltiplos?" + :property/name "Nome" + :property/name-placeholder "Nome da propriedade" + :property/nodes-with-property "Nós com propriedade" + :property/overdue "Em atraso" + :property/private-built-in-not-usable "Propriedade integrada privada não utilizável" + :property/select-choice "Selecionar opção" + :property/select-property-placeholder "Selecionar uma propriedade" + :property/select-type-placeholder "Selecionar um tipo de propriedade" + :property/self-reference "Autorreferência" + :property/set-default-choice "Definir opção padrão" + :property/set-default-value "Definir valor predefinido" + :property/set-icon "Definir ícone" + :property/set-placeholder "Definir {1}" + :property/set-property "Definir propriedade" + :property/set-tags "Definir etiquetas" + :property/set-value "Definir valor" + :property/show-as-checkbox-on-node "Mostrar como caixa de verificação no nó" + :property/show-as-checkbox-on-tagged-nodes "Mostrar como caixa de verificação em nós com tag" + :property/show-hidden-choices "Mostrar opções ocultas" + :property/skip-choosing-tag "Pular escolha de tag" + :property/specify-node-tags "Especificar tags do nó" + :property/title-placeholder "Título" + :property/type "Tipo" + :property/type-change-warning "Alterar o tipo de propriedade limpa algumas configurações da propriedade." + :property/type-checkbox "Caixa de verificação" + :property/type-date "Data" + :property/type-datetime "Data/Hora" + :property/type-locked-help "O tipo está bloqueado" + :property/type-node "Nó" + :property/type-number "Número" + :property/type-text "Texto" + :property/type-url "URL" + :property/ui-position "Posição na UI" + :property/ui-position-block-below "Abaixo do bloco" + :property/ui-position-block-left "À esquerda do bloco" + :property/ui-position-block-right "À direita do bloco" + :property/ui-position-properties "Propriedades" + :property/unset-property "Remover propriedade" + :property/update-success "Atualizado" + + :property.built-in/alias "Alias" + :property.built-in/asset "Ficheiro" + :property.built-in/asset-align "Alinhamento do ficheiro" + :property.built-in/asset-checksum "Checksum do ficheiro" + :property.built-in/asset-external-file-name "Nome do ficheiro externo" + :property.built-in/asset-external-url "URL externo" + :property.built-in/asset-height "Altura da imagem" + :property.built-in/asset-last-visit-page "Última página visitada" + :property.built-in/asset-remote-metadata "Metadados remotos do ficheiro" + :property.built-in/asset-resize-metadata "Metadados de redimensionamento" + :property.built-in/asset-size "Tamanho do ficheiro" + :property.built-in/asset-type "Tipo de ficheiro" + :property.built-in/asset-width "Largura da imagem" + :property.built-in/background-color "Cor de fundo" + :property.built-in/built-in "Incorporado?" + :property.built-in/checkbox-display-properties "Propriedades apresentadas como caixa de verificação" + :property.built-in/choice-checkbox-state "Estado da caixa de verificação da escolha" + :property.built-in/choice-classes "Classes da escolha" + :property.built-in/choice-exclusions "Exclusões da escolha" + :property.built-in/class-bidirectional-property-title "Título da propriedade bidirecional" + :property.built-in/class-enable-bidirectional "Ativar propriedades bidirecionais" + :property.built-in/class-extends "Estende" + :property.built-in/class-hide-from-node "Ocultar do nó" + :property.built-in/class-properties "Propriedades da etiqueta" + :property.built-in/classes "Classes da propriedade" + :property.built-in/closed-value-property "Propriedade de valor fechado" + :property.built-in/code-lang "Modo de código" + :property.built-in/collapsed "Nó recolhido?" + :property.built-in/created-at "Nó criado em" + :property.built-in/created-by-ref "Nó criado por" + :property.built-in/created-from-property "Criado a partir da propriedade" + :property.built-in/deadline "Prazo" + :property.built-in/default-value "Valor predefinido" + :property.built-in/deleted-at "Eliminado em" + :property.built-in/deleted-by-ref "Eliminado por" + :property.built-in/description "Descrição" + :property.built-in/enable-history "Ativar histórico da propriedade" + :property.built-in/exclude-from-graph-view "Excluído da vista do grafo?" + :property.built-in/fsrs-due "Vencimento" + :property.built-in/fsrs-state "Estado" + :property.built-in/heading "Cabeçalho" + :property.built-in/hide "Ocultar esta propriedade ou página" + :property.built-in/hide-empty-value "Ocultar valor vazio" + :property.built-in/history-block "Bloco de histórico" + :property.built-in/history-property "Propriedade de histórico" + :property.built-in/history-ref-value "Valor do histórico" + :property.built-in/history-scalar-value "Valor escalar do histórico" + :property.built-in/icon "Ícone" + :property.built-in/journal-day "Data do diário" + :property.built-in/journal-title-format "Formato do título" + :property.built-in/link "O nó liga a" + :property.built-in/linked-references-excludes "Referências excluídas" + :property.built-in/linked-references-includes "Referências incluídas" + :property.built-in/ls-type "Tipo LS" + :property.built-in/node-display-type "Tipo de apresentação do nó" + :property.built-in/order "Ordem do nó" + :property.built-in/order-list-type "Tipo de lista" + :property.built-in/page "Página do nó" + :property.built-in/page-tags "Etiquetas da página" + :property.built-in/parent "Nó pai" + :property.built-in/priority "Prioridade" + :property.built-in/public "Propriedade pública?" + :property.built-in/publish-published-url "URL publicado" + :property.built-in/publishing-public "Publicação pública?" + :property.built-in/query "Consulta" + :property.built-in/reaction-emoji-id "Emoji de reação" + :property.built-in/reaction-target "Alvo da reação" + :property.built-in/recycle-original-order "Ordem original na reciclagem" + :property.built-in/recycle-original-page "Página original na reciclagem" + :property.built-in/recycle-original-parent "Pai original na reciclagem" + :property.built-in/refs "Referências do nó" + :property.built-in/repeat-checked-property "Propriedade verificada de repetição" + :property.built-in/repeat-recur-frequency "Frequência de recorrência" + :property.built-in/repeat-recur-unit "Unidade de recorrência" + :property.built-in/repeat-repeated "O nó repete?" + :property.built-in/repeat-temporal-property "Propriedade temporal de repetição" + :property.built-in/scalar-default-value "Valor predefinido de tipo não referencial" + :property.built-in/scheduled "Agendado" + :property.built-in/status "Estado" + :property.built-in/sync-large-title-object "Referência a título de bloco grande armazenado em armazenamento remoto de objetos" + :property.built-in/table-filters "Filtros da vista" + :property.built-in/table-hidden-columns "Colunas ocultas da vista" + :property.built-in/table-ordered-columns "Colunas ordenadas da vista" + :property.built-in/table-pinned-columns "Colunas fixadas da vista de tabela" + :property.built-in/table-sized-columns "Definições de colunas da vista" + :property.built-in/table-sorting "Ordenação da vista" + :property.built-in/tags "Etiquetas" + :property.built-in/template-applied-to "Aplicar modelo às etiquetas" + :property.built-in/title "Título do nó" + :property.built-in/type "Tipo de propriedade" + :property.built-in/ui-position "Posição da propriedade" + :property.built-in/updated-at "Nó atualizado em" + :property.built-in/used-template "Modelo utilizado" + :property.built-in/user-avatar "Avatar do utilizador" + :property.built-in/user-email "E-mail do utilizador" + :property.built-in/user-name "Nome do utilizador" + :property.built-in/value "Valor da propriedade" + :property.built-in/view-context "Contexto da vista da propriedade" + :property.built-in/view-feature-type "Tipo de funcionalidade da vista" + :property.built-in/view-for "Esta vista pertence a" + :property.built-in/view-group-by-property "Agrupar vista por propriedade" + :property.built-in/view-sort-groups-by-property "Ordenar grupos da vista por" + :property.built-in/view-sort-groups-desc "Ordenar grupos da vista DESC" + :property.built-in/view-type "Tipo de vista" + + :property.choice/already-exists "A opção já existe." + :property.choice/cant-delete-built-in "A opção integrada não pode ser eliminada." + :property.choice/invalid "Escolha \"{1}\" inválido para esta propriedade: {2}" + + :property.color/blue "azul" + :property.color/green "verde" + :property.color/purple "roxo" + :property.color/red "vermelho" + :property.color/yellow "amarelo" + + :property.priority/high "Alta" + :property.priority/low "Baixa" + :property.priority/medium "Média" + :property.priority/urgent "Urgente" + + :property.repeat/date "Data de repetição" + :property.repeat/datetime "Data e hora de repetição" + :property.repeat/every "A cada" + :property.repeat/is-label "é:" + :property.repeat/task "Tarefa de repetição" + :property.repeat/when "Quando" + + :property.repeat-recur-unit/day "Dia" + :property.repeat-recur-unit/hour "Hora" + :property.repeat-recur-unit/minute "Minuto" + :property.repeat-recur-unit/month "Mês" + :property.repeat-recur-unit/week "Semana" + :property.repeat-recur-unit/year "Ano" + + :property.status/backlog "Backlog" + :property.status/canceled "Cancelado" + :property.status/doing "Em progresso" + :property.status/done "Concluído" + :property.status/in-review "Em revisão" + :property.status/todo "Por fazer" + + :property.validation/cant-convert-to-number "Não é possível converter \"{1}\" num número." + :property.validation/cant-remove-required "A propriedade obrigatória não pode ser removida." + :property.validation/cant-set-self-value "Não é possível definir como seu próprio valor de propriedade." + :property.validation/duplicate "A propriedade '{1}' já existe." + :property.validation/invalid-name "Este é um nome de propriedade inválido. Um nome de propriedade não pode começar com caracteres de referência de página '#' ou '[['." + :property.validation/invalid-value "A propriedade \"{1}\" tem um valor inválido: {2}" + :property.validation/many-to-one "Não é possível converter uma propriedade de múltiplos valores para valor único." + :property.validation/protected "Esta propriedade é protegida e não pode ser modificada." + + :property.view-type/gallery "Vista de galeria" + :property.view-type/list "Vista de lista" + :property.view-type/table "Vista de tabela" + + :publish/action "Publicar" + :publish/dialog-desc "Proteja opcionalmente esta página com uma palavra-passe. Deixe em branco para acesso público." + :publish/dialog-title "Publicar página" + :publish/invalid-page-error "Página inválida" + :publish/password-optional-placeholder "Palavra-passe opcional" + :publish/publish-error "Falha na publicação" + :publish/published-to "Publicado em {1}" + :publish/publishing "A publicar..." + :publish/unpublish "Despublicar" + :publish/unpublish-error "Falha ao despublicar" + :publish/unpublish-missing-page-id "Despublicar: ID de página ausente" + :publish/unpublished "Despublicado" + + :query/advanced-results "Resultados da consulta avançada" + :query/custom-view-error "Erro na vista personalizada: {1}" + :query/error "Erro na consulta:" + :query/examples-desc "Consulte mais exemplos em {{Queries documentation}}." + :query/examples-title "Exemplos de consultas:" + :query/results-for "Resultados para {1}" + + :query.builder/add-filter-or-operator-placeholder "Adicionar filtro/operador" + :query.builder/between-end-label "Data final" + :query.builder/between-journal-label "entre: {1} ~ {2}" + :query.builder/between-start-label "Data inicial" + :query.builder/created-label "Criado" + :query.builder/filter "Filtro" + :query.builder/filter-full-text-search-label "Pesquisa em texto completo" + :query.builder/filter-page-label "Página" + :query.builder/filter-page-reference-label "Referência de página" + :query.builder/filter-sample-label "Amostra" + :query.builder/operator-and-label "e" + :query.builder/operator-not-label "não" + :query.builder/replace-with-label "Substituir por:" + :query.builder/search-label "Pesquisa: {1}" + :query.builder/show-built-in-properties "Mostrar propriedades incorporadas" + :query.builder/unwrap-operator "Desembrulhar" + :query.builder/updated-label "Atualizado" + :query.builder/wrap-filter-with-label "Embrulhar este filtro com:" + + :reference/blocks "Referência de bloco" + :reference/copy "Copiar esta referência" + :reference/delete "Apagar esta referência" + :reference/page-filter "Filtro de página" + :reference/replace-with-embed "Substituir por incorporação" + :reference/replace-with-text "Substituir por texto" + + :reference.filter/directions "Direções do filtro" + :reference.filter/excludes "Excluídos" + :reference.filter/includes "Incluídos" + :reference.filter/search-placeholder "Procurar nas páginas vinculadas" + :reference.filter/title "Filtrar" + + :search/blank-input "Entrada vazia" + :search/full-text-placeholder "Pesquisa de texto completo" + :search/index-progress "A indexar {1}%" + :search/indices-rebuilt-success "Índices de busca reconstruídos com sucesso!" + :search/no-result "Sem resultados" + :search/result-count "{1} resultados" + + :search.find-in-page/input-placeholder "Encontrar na página" + :search.find-in-page/match-case "Diferenciar maiúsculas" + :search.find-in-page/next-result "Resultado seguinte" + :search.find-in-page/previous-result "Resultado anterior" :select/default-prompt "Selecione um" :select/default-select-multiple "Selecione um ou vários" - :select.graph/prompt "Selecione um grafo" - :select.graph/empty-placeholder-description "Sem grafos correspondentes. Quer adicionar outro?" - :select.graph/add-graph "Sim, adicionar outro grafo" + :select/new-option "+ Nova opção: {1}" - :notification/clear-all "Limpar tudo" + :server/error-notification "[Servidor] {1}" + :server/mcp-url-copied "URL MCP copiada" + :server/start "Iniciar" + :server/stop "Parar" + :server/title "Servidor de API HTTP" - :shortcut.category/formatting "Formatação" - :shortcut.category/basics "Básico" - :shortcut.category/navigating "Navegação" - :shortcut.category/block-editing "Edição geral de blocos" + :server.config/auto-start-label "Iniciar automaticamente com o aplicativo" + :server.config/port-label "Faixa de portas" + :server.config/reset "Repor" + :server.config/save-and-apply "Guardar e aplicar" + :server.config/title "Configurações do servidor" + + :server.status/closed "Fechado" + :server.status/closing "Fechando" + :server.status/error "Erro" + :server.status/running "Em execução" + :server.status/starting "Iniciando" + :server.status/stopped "Parado" + + :server.token/add-new "Adicionar novo token" + :server.token/name-placeholder "Nome do servidor" + :server.token/regenerate-value "Regenerar valor do token" + :server.token/title "Tokens de autorização" + :server.token/update-success "Tokens atualizados" + :server.token/value-placeholder "Valor" + + :settings/account "Conta" + :settings/advanced "Avançado" + :settings/ai "IA" + :settings/collaboration "Colaboração" + :settings/editor "Editor" + :settings/encryption "Encriptação" + :settings/features "Funcionalidades" + :settings/general "Geral" + :settings/keymap "Atalhos" + :settings/plugins "Configurações de plugins" + + :settings.account/storage-usage "{1}GB de {2}GB de armazenamento total ({3})" + :settings.account/synced-graphs "{1} de {2} gráficos sincronizados ({3})" + + :settings.advanced/auto-chmod "Auto chmod" + :settings.advanced/auto-chmod-desc "Definir permissões de ficheiros automaticamente" + :settings.advanced/auto-updater "Atualizar automaticamente" + :settings.advanced/developer-mode "Modo de desenvolvedor" + :settings.advanced/developer-mode-desc "O modo de desenvolvedor ajuda os contribuidores e programadores de extensões a testar as suas integrações com o Logseq mais eficientemente." + :settings.advanced/disable-sentry "Enviar dados de utilização e diagnósticos para a Logseq" + :settings.advanced/disable-sentry-desc "A Logseq nunca irá recolher informações sobre a sua base de dados de grafos local ou vender os seus dados." + :settings.advanced/network-proxy "Proxy de rede" + + :settings.ai/enable-mcp-server "Ativar servidor MCP" + :settings.ai/enable-mcp-server-desc "Ativar servidor MCP para integração com IA" + + :settings.editor/auto-expand-block-refs "Expandir referências de blocos automaticamente" + :settings.editor/auto-expand-block-refs-tip "Expandir referências de blocos automaticamente ao clicar" + :settings.editor/custom-date-format "Formato de data preferido" + :settings.editor/enable-all-pages-public "Todas as páginas públicas ao publicar" + :settings.editor/enable-shortcut-tooltip "Ativar dicas de atalhos" + :settings.editor/enable-tooltip "Ativar dicas" + :settings.editor/preferred-outdenting "Desindentação lógica" + :settings.editor/preferred-outdenting-tip "Dica de recuo preferido" + :settings.editor/preferred-outdenting-tip-more "→ Mais informações sobre recuo" + :settings.editor/preferred-pasting-file "Preferir colar ficheiro" + :settings.editor/preferred-pasting-file-hint "Dica de colagem de ficheiros" + :settings.editor/show-brackets "Mostrar parênteses retos" + :settings.editor/show-full-blocks "Mostrar todas a linhas de uma referência de bloco" + :settings.editor/spell-checker "Verificador ortográfico" + :settings.editor/wide-mode "Modo amplo" + + :settings.features/enable-flashcards "Ativar flashcards" + :settings.features/enable-journals "Páginas Diárias" + :settings.features/home-default-page "Definir a página inicial predefinida" + :settings.features/home-default-page-update-success "Página inicial predefinida atualizada" + :settings.features/journals-enable-success "Diários ativados" + :settings.features/login-prompt "Para aceder a novas funcionalidades antes de qualquer outra pessoa tem de ser um \"Sponsor\" ou \"Backer\" na Open Collective do Logseq e, portanto, tem de iniciar sessão primeiro." + :settings.features/page-not-found "A página \"{1}\" ainda não existe. Crie essa página primeiro e tente novamente." + :settings.features/plugin-system "Sistema de extensões" + + :settings.general/accent-color "Cor de destaque" + :settings.general/accent-color-alert "Alerta de cor de destaque" + :settings.general/accent-color-logseq "Cor clássica do Logseq" + :settings.general/accent-color-none-desc "Cancelar cor de destaque. Esta funcionalidade está atualmente em fase beta e é principalmente utilizada para compatibilidade com temas personalizados." + :settings.general/changelog "Registo de alterações" + :settings.general/check-for-updates "Verificar atualizações" + :settings.general/current-revision-label "Revisão atual" + :settings.general/current-version "Versão atual" + :settings.general/custom-configuration "Configuração personalizada" + :settings.general/custom-global-configuration "Configuração global personalizada" + :settings.general/custom-theme "Tema personalizado" + :settings.general/edit-config-edn "Editar config.edn" + :settings.general/edit-custom-css "Editar custom.css" + :settings.general/edit-export-css "Editar export.css" + :settings.general/edit-global-config-edn "Editar config.edn global" + :settings.general/editor-font "Tipo de letra do editor" + :settings.general/editor-font-set-global "Definir como família de tipos de letra global" + :settings.general/export-theme "Exportar tema" + :settings.general/language "Idioma" + :settings.general/native-titlebar "Barra de título nativa" + :settings.general/native-titlebar-desc "Utilizar a barra de título nativa do sistema" + :settings.general/refresh-required-feedback "Atualização necessária" + :settings.general/release-channel "canal de lançamento" + :settings.general/revision "Revisão: {1}" + :settings.general/theme-dark "Escuro" + :settings.general/theme-light "Claro" + :settings.general/theme-system "Sistema" + + :settings.sync-server/clear-success "A URL do servidor de sincronização foi limpa. Será usado o Logseq Sync oficial." + :settings.sync-server/reset "Repor para o padrão" + :settings.sync-server/save-success "URL do servidor de sincronização guardada." + :settings.sync-server/url "URL do servidor de sincronização" + :settings.sync-server/url-desc "Defina uma URL HTTPS personalizada para um servidor de sincronização alojado por si. Os seus tokens de autenticação do Logseq serão enviados para este servidor, por isso utilize apenas uma URL de confiança. Deixe em branco para usar o Logseq Sync oficial." + :settings.sync-server/url-invalid-error "A URL tem de começar por https:// ou http://" + + :shell/input-command-title "Inserir comando" + + :shortcut.category/basics "Básico" :shortcut.category/block-command-editing "Comandos de edição de blocos" - :shortcut.category/block-selection "Seleção de blocos (premir Esc para sair)" - :shortcut.category/toggle "Alternar" - :shortcut.category/others "Outros" - :command.editor/indent "Aumentar avanço de parágrafo" - :command.editor/outdent "Diminuir avanço de parágrafo" - :command.editor/move-block-up "Mover bloco para cima" - :command.editor/move-block-down "Mover bloco para baixo" - :command.editor/new-block "Criar novo bloco" - :command.editor/new-line "Nova linha no bloco actual" - :command.editor/zoom-in "Aproximar / Para a frente" - :command.editor/zoom-out "Afastar / Para trás" - :command.editor/follow-link "Seguir ligação sob o cursor" - :command.editor/open-link-in-sidebar "Abrir ligação na barra lateral" - :command.editor/expand-block-children "Expandir" - :command.editor/collapse-block-children "Colapsar" - :command.editor/select-block-up "Selecionar bloco acima" - :command.editor/select-block-down "Selecionar bloco abaixo" - :command.editor/select-all-blocks "Selecionar todos os blocos" - :command.ui/toggle-help "Alternar ajuda" - :command.go/search "Pesquisar no grafo" - :command.ui/toggle-document-mode "Alternar modo de documento" - :command.ui/toggle-contents "Alternar Conteúdo na barra lateral" - :command.ui/toggle-theme "Alternar entre tema claro/escuro" - :command.ui/toggle-right-sidebar "Alternar barra lateral" - :command.ui/toggle-settings "Alternar Opções" - :command.go/journals "Ir para diários" - :command.ui/toggle-wide-mode "Alternar modo de ecrã amplo" - :command.ui/toggle-brackets "Alternar parênteses retos" - :command.search/re-index "Reconstruir índice de pesquisa" - :command.editor/bold "Negrito" - :command.editor/italics "Itálico" - :command.editor/insert-link "Inserir ligação html" - :command.editor/highlight "Realçado" - :command.editor/undo "Desfazer" - :command.editor/redo "Refazer" - :command.editor/copy "Copiar" - :command.editor/cut "Cortar" - :command.editor/up "Mover cursor para cima / Selecionar para cima" - :command.editor/down "Mover cursor para baixo / Selecionar para baixo" - :command.editor/left "Mover cursor para a esquerda / Abrir bloco selecionado no início" - :command.editor/right "Mover cursor para a direita / Abrir bloco selecionado no final" - :command.editor/backspace "Retroceder / Eliminar para atrás" - :command.editor/delete "Apagar / Eliminar para a frente" - :command.editor/cycle-todo "Alternar estado TODO do elemento" - :command.editor/clear-block "Apagar conteúdo do bloco" - :command.editor/kill-line-before "Apagar linha antes do cursor" - :command.editor/kill-line-after "Apagar linha depois do cursor" - :command.editor/beginning-of-block "Mover o cursor para o início do bloco" - :command.editor/end-of-block "Mover o cursor para o fim do bloco" - :command.editor/forward-word "Mover o cursor para a próxima palavra" - :command.editor/backward-word "Mover o cursor para a palavra anterior" - :command.editor/forward-kill-word "Apagar a próxima palavra" - :command.editor/backward-kill-word "Apagar a palavra anterior" - :command.editor/open-edit "Editar bloco selecionado" - :command.editor/delete-selection "Eliminar blocos selecionados" - :command.editor/toggle-open-blocks "Alternar blocos abertos (colapsar ou expandir todos)" + :shortcut.category/block-editing "Edição geral de blocos" + :shortcut.category/block-selection "Seleção de blocos (premir Esc para sair)" + :shortcut.category/formatting "Formatação" + :shortcut.category/navigating "Navegação" + :shortcut.category/others "Outros" + :shortcut.category/plugins "Plugins" + :shortcut.category/toggle "Alternar" - :command.auto-complete/complete "Autocompletar: Escolha o item selecionado" - :command.auto-complete/next "Autocompletar: Selecione o próximo item" - :command.auto-complete/prev "Autocompletar: Selecione o item anterior" - :command.auto-complete/shift-complete "Autocompletar: Abra o item selecionado na barra lateral" - :command.cards/toggle-answers "Cartões: mostrar/esconder as respostas/clozes" - :command.command/run "Execute o comando Git" - :command.command/toggle-favorite "Adicionar aos/remover dos favoritos" - :command.editor/select-down "Selecione o conteúdo abaixo" - :command.editor/select-up "Selecione o conteúdo acima" - :command.editor/copy-embed "Copiar uma incorporação do bloco, apontando para o bloco atual" - :command.editor/copy-text "Copiar seleção como texto" - :command.pdf/close "Fechar visualização do PDF" - :command.editor/escape-editing "Sair da edição" - :command.editor/insert-youtube-timestamp "Inserir timestamp do youtube" - :command.editor/paste-text-in-one-block-at-point "Colar texto em um bloco no ponto" - :command.editor/strike-through "Rasurar" - :command.go/all-pages "Ir para todas as páginas" - :command.go/backward "Voltar" - :command.go/flashcards "Trocar flashcards" - :command.go/forward "Avançar" - :command.go/graph-view "Ir para o grafo" - :command.go/home "Voltar para o Início" - :command.go/keyboard-shortcuts "Ir para os atalhos do teclado" - :command.go/next-journal "Ir ao proximo jornal" - :command.go/prev-journal "Ir ao jornal anterior" - :command.go/tomorrow "Ir para amanhã" - :command.graph/add "Adicionar um grafo" - :command.graph/open "Selecionar grafo para abrir" - :command.graph/remove "Remover um grafo" - :command.pdf/next-page "Próxima página do PDF atual" - :command.pdf/previous-page "Página anterior do PDF atual" - :command.sidebar/clear "Limpar tudo da barra lateral direita" - :command.sidebar/open-today-page "Abrir a página de hoje na barra lateral direita" - :command.ui/select-theme-color "Selecionar as cores do tema disponível" - :command.ui/toggle-left-sidebar "Trocar barra lateral esquerda" - :command.misc/copy "Copiar (copiar seleção ou referência do bloco)" - :command.ui/goto-plugins "Ir para o painel de plugins" - :command.go/all-graphs "Ir a todos os grafos" - :command.go/electron-find-in-page "Procurar texto na página" - :command.go/electron-jump-to-the-next "Ir para a próxima correspondência da sua pesquisa" - :command.go/electron-jump-to-the-previous "Voltar para a correspondência anterior da sua pesquisa" - :command.editor/select-parent "Selecione o bloco pai" - :command.graph/export-as-html "Exportar páginas de gráficos públicos como html" - :command.pdf/find "PDF: Pesquisar no documento PDF atual" - :command.sidebar/close-top "Fechar item superior na barra lateral direita" - :command.ui/install-plugins-from-file "Instalar plugins de plugins.edn"} + :sidebar.left/favorites "Favoritos" + :sidebar.left/navigations "Navegações" + :sidebar.left/recent-pages "Recente" + + :sidebar.right/close "Fechar painel" + :sidebar.right/close-all "Fechar todos os painéis" + :sidebar.right/close-others "Fechar outros painéis" + :sidebar.right/collapse "Recolher painel" + :sidebar.right/collapse-all "Recolher todos os painéis" + :sidebar.right/collapse-others "Recolher outros painéis" + :sidebar.right/expand "Expandir painel" + :sidebar.right/expand-all "Expandir todos os painéis" + :sidebar.right/more "Mais opções do painel" + :sidebar.right/open "Abrir na barra lateral" + :sidebar.right/open-as-page "Abrir como página" + :sidebar.right/resize-handle "Manipulador de redimensionamento da barra lateral direita" + :sidebar.right/toggle "Alternar barra lateral direita" + + :storage/invalid-data-writing "Gravação de dados inválida." + :storage/sqlitedb-error "Erro SQLiteDB: {1}" + :storage/sqlitedb-import-error "Erro de importação SQLiteDB: {1}" + :storage/sqlitedb-save-error "Erro ao guardar SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Bloco eliminado {1}" + :storage.recycle/empty "A reciclagem está vazia." + :storage.recycle/page-deleted-at "Página eliminada {1}" + :storage.recycle/readonly "Lixeira (somente leitura)" + :storage.recycle/restore "Restaurar" + :storage.recycle/retention-desc "As páginas e blocos eliminados ficam aqui até serem restaurados ou recolhidos automaticamente após 30 dias." + :storage.recycle/title "Reciclagem" + + :sync/assets-downloading-count "A descarregar ficheiros ({1})" + :sync/assets-uploading-count "A enviar ficheiros ({1})" + :sync/creating-remote-graph "A criar grafo remoto..." + :sync/downloading "A descarregar..." + :sync/downloading-graph "A transferir {1} ..." + :sync/graph-count-exceed-limit "O número de grafos excede o limite" + :sync/invitation-sent "Convite enviado" + :sync/last-synced-time-label "Última sincronização: {1}" + :sync/more-debug-info "Mais info de depuração" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "alterações locais pendentes" + :sync/pending-server-changes "alterações do servidor pendentes" + :sync/something-wrong "Erro de sincronização" + :sync/start-sync "Iniciar sincronização" + :sync/storage-exceed-limit "O armazenamento excede o limite" + :sync/uploading "A enviar..." + :sync/user-doesnt-exist-yet "O usuário ainda não existe" + + :theme/logseq-default "Tema predefinido do Logseq" + :theme/switch-to "Mudar para o tema {1}" + + :ui/all-done "Tudo concluído" + :ui/apply "Aplicar" + :ui/cancel "Cancelar" + :ui/close "Fechar" + :ui/configure "Configurar" + :ui/confirm "Confirmar" + :ui/copy "Copiar" + :ui/copy-all "Copiar tudo" + :ui/copy-to-clipboard "Copiar para a área de transferência" + :ui/create "Criar" + :ui/date-natural-language-placeholder "ex. Próxima semana" + :ui/delete "Eliminar" + :ui/deleted "Eliminado" + :ui/dont-remind-me-again "Não me lembrar novamente" + :ui/empty "Vazio" + :ui/error "Erro" + :ui/error-boundary-error "Erro capturado pela interface!\n {1}" + :ui/export "Exportar" + :ui/false "Falso" + :ui/fix "Corrigir!" + :ui/frequently-used "Utilizados frequentemente" + :ui/from "De: " + :ui/host "Host" + :ui/image "imagem" + :ui/label "Etiqueta" + :ui/link "Ligação" + :ui/load-more "Carregar mais" + :ui/loading "A carregar" + :ui/login "Iniciar sessão" + :ui/logout "Terminar sessão" + :ui/off "DESLIGADO" + :ui/on "LIGADO" + :ui/open "Abrir" + :ui/open-named "Abrir {1}" + :ui/port "Porta" + :ui/refresh "Atualizar" + :ui/relaunch-confirm "Esta alteração requer reiniciar a aplicação. Reiniciar agora?" + :ui/remove-background "Remover fundo" + :ui/reset "Repor" + :ui/run "Executar" + :ui/save "Guardar" + :ui/show-less "Mostrar menos" + :ui/show-more "Mostrar mais" + :ui/skip "Ignorar" + :ui/submit "Enviar" + :ui/to "Para: " + :ui/toggle-theme "Alternar tema" + :ui/true "Verdadeiro" + :ui/type "Tipo" + :ui/untitled "Sem título" + :ui/use-current-time "Usar hora atual" + :ui/yes "Sim" + + :updater/checking-for-updates "A verificar atualizações" + :updater/downloading-progress "A transferir atualização ({1}%)" + :updater/quit-and-install "Reiniciar e instalar" + :updater/up-to-date "Aplicação atualizada 🎉" + :updater/update-available "Atualização disponível" + :updater/update-error "⚠️ Ups, algo correu mal!\nPor favor consulte o {1}." + :updater/update-ready-to-install "A atualização está pronta para instalar" + + :view/add-new-view "Adicionar nova visualização" + :view/all "Todos" + :view/export-edn "Exportar EDN" + :view/linked-references "Referências ligadas" + :view/new "Novo" + :view/new-property "Nova propriedade" + :view/new-view "Nova visualização" + :view/rename "Renomear" + :view/results "Resultados:" + :view/unlinked-references "Referências não ligadas" + + :view.filter/custom-date "Data personalizada" + :view.filter/empty "Vazio" + :view.filter/filter "Filtro" + :view.filter/from "De" + :view.filter/is-empty "Está vazio" + :view.filter/is-not-empty "Não está vazio" + :view.filter/match "Correspondência" + :view.filter/match-all-filters "Atender todos os filtros" + :view.filter/match-any-filter "Atender qualquer filtro" + :view.filter/operator-after "Depois de" + :view.filter/operator-before "Antes de" + :view.filter/operator-between "Entre" + :view.filter/operator-date-after "Data depois de" + :view.filter/operator-date-before "Data antes de" + :view.filter/operator-is "É" + :view.filter/operator-is-not "Não é" + :view.filter/operator-text-contains "O texto contém" + :view.filter/operator-text-not-contains "O texto não contém" + :view.filter/or "Ou" + :view.filter/relative-1-day-ago "1 dia atrás" + :view.filter/relative-1-month-ago "1 mês atrás" + :view.filter/relative-1-week-ago "1 semana atrás" + :view.filter/relative-1-year-ago "1 ano atrás" + :view.filter/relative-3-days-ago "3 dias atrás" + :view.filter/relative-3-months-ago "3 meses atrás" + :view.filter/to "Até" + :view.filter/type-to-search "Escreva para pesquisar" + + :view.table/ascending "Ascendente" + :view.table/columns-visibility "Visibilidade das colunas" + :view.table/default-title "{1} nós" + :view.table/delete-sort "Eliminar ordenação" + :view.table/descending "Descendente" + :view.table/drag-to-reorder "Arraste para reordenar" + :view.table/group-by "Agrupar por" + :view.table/group-journal-date "Data do diário" + :view.table/group-page-created-date "Data de criação da página" + :view.table/group-page-name "Nome da página" + :view.table/group-page-updated-date "Data de atualização da página" + :view.table/live-query-title "Consulta ao vivo ({1})" + :view.table/name-column "Nome" + :view.table/no-group-value "Sem {1}" + :view.table/page "Página" + :view.table/pages "Páginas" + :view.table/pin "Fixar" + :view.table/row-number "Número da linha" + :view.table/select-all "Selecionar tudo" + :view.table/select-column "Selecionar coluna" + :view.table/select-order "Selecionar ordem" + :view.table/select-row "Selecionar linha" + :view.table/selected-count "Selecionados: {1}" + :view.table/sort-ascending "Ascendente" + :view.table/sort-descending "Descendente" + :view.table/sort-groups-by "Ordenar grupos por" + :view.table/sort-groups-order "Ordem dos grupos" + :view.table/total-refs-count "Total de referências" + :view.table/unpin "Soltar" + + :window/close "Fechar janela" + :window/exit-fullscreen "Sair do ecrã inteiro" + :window/maximize "Maximizar" + :window/minimize "Minimizar" + :window/restore "Restaurar" + + :youtube/embed-first-reminder-mobile "Primeiro incorpore um vídeo do YouTube e, em seguida, utilize este ícone.\nLembre-se: pode colar um URL direto do YouTube como vídeo incorporado em dispositivos móveis." + :youtube/player-not-ready "O leitor do YouTube ainda não está pronto." + :youtube/timestamps-not-available-mobile "Os registos de tempo do YouTube ainda não estão disponíveis em dispositivos móveis." + + :zotero/attachments "Anexos" + :zotero/imported-file-warning "Este é um ficheiro importado do Zotero, defina diretório de dados do Zotero para abrir o ficheiro no Logseq." + :zotero/linked-file-warning "Este é um ficheiro ligado do Zotero, defina diretório base dos anexos ligados do Zotero para abrir o ficheiro no Logseq." + :zotero/notes "Notas" +} diff --git a/src/resources/dicts/ru.edn b/src/resources/dicts/ru.edn index 29c3c15f63..a7958eac13 100644 --- a/src/resources/dicts/ru.edn +++ b/src/resources/dicts/ru.edn @@ -1,388 +1,1861 @@ -{:accessibility/skip-to-main-content "Перейти к основному содержимому" - :help/title-usage "Использование" - :help/title-community "Сообщество" - :help/title-development "Разработка" - :help/title-about "О нас" - :help/title-terms "Условия и положения" - :help/start "Начало работы" - :help/about "О Logseq" - :help/roadmap "Дорожная карта" - :help/bug "Сообщить об ошибке" - :help/feature "Предложить улучшение" - :help/changelog "Список изменений" - :help/blog "Блог Logseq" - :help/docs "Документация" - :help/privacy "Политика конфиденциальности" - :help/terms "Условия" - :help/forum-community "Форум сообщества" - :help/awesome-logseq "Потрясающий Logseq" - :help/shortcuts "Сочетания клавиш" - :help/shortcuts-triggers "Действия" - :help/shortcut "Горячие клавиши" - :help/slash-autocomplete "Слэш - автодополнение" - :help/reference-autocomplete "Автодополнение ссылок на страницу" - :help/block-reference "Ссылка на блок" - :help/open-link-in-sidebar "Открыть ссылку на боковой панели" - :search-item/page "Страница" - :help/context-menu "Контекстное меню блока" - :help/markdown-syntax "Markdown синтаксис" - :bold "Жирный" - :italics "Курсив" - :highlight "Выделение" - :strikethrough "Перечёркнутый" - :code "Код" - :untitled "Без названия" - :right-side-bar/help "Справка" - :right-side-bar/switch-theme "Тема" - :right-side-bar/contents "Содержание" - :right-side-bar/page-graph "Граф страницы" - :right-side-bar/block-ref "Ссылка на блок" - :right-side-bar/graph-view "Визуальный граф" - :right-side-bar/flashcards "Карточки" - :right-side-bar/show-journals "Показать журналы" - :right-side-bar/separator "Изменение размера правой боковой панели" - :right-side-bar/toggle-right-sidebar "Переключить правую панель" - :left-side-bar/journals "Журналы" - :left-side-bar/nav-favorites "Избранное" - :left-side-bar/nav-recent-pages "Недавнее" - :page/something-went-wrong "Что-то пошло не так" - :page/logseq-is-having-a-problem "У Logseq возникла проблема. Чтобы попытаться вернуть его в рабочее состояние, пожалуйста, попробуйте выполнить следующие безопасные шаги по порядку:" - :page/step "Шаг {1}" - :page/try "Попробовать" - :page/make-public "Сделать доступной для публикации" - :page/make-private "Сделать приватной" - :page/delete "Удалить страницу" - :page/add-to-favorites "Добавить в Избранное" - :page/unfavorite "Удалить из Избранного" - :block/name "Имя страницы" - :page/copy-page-url "Копировать URL страницы" - :file/name "Имя файла" - :file/last-modified-at "Последнее изменение" - :file/no-data "Нет данных" - :file/format-not-supported "Расширение .{1} не поддерживается." - :page/created-at "Создана" - :page/updated-at "Обновлена" - :page/backlinks "Обратные ссылки" - :linked-references/filter-search "Поиск в связанных страницах" - :editor/block-search "Поиск блока" - :text/image "Изображение" - :asset/show-in-folder "Показать изображение в папке" - :asset/open-in-browser "Открыть изображение в браузере" - :asset/delete "Удалить изображение" - :asset/copy "Копировать изображение" - :asset/maximize "Увеличить изображение" - :asset/confirm-delete "Вы уверены, что хотите удалить {1}?" - :asset/physical-delete "Также удалить файл (обратите внимание, что его нельзя будет восстановить)" - :color/gray "Серый" - :color/red "Красный" - :color/yellow "Желтый" - :color/green "Зеленый" - :color/blue "Синий" - :color/purple "Фиолетовый" - :color/pink "Розовый" - :editor/copy "Копировать" - :editor/cut "Вырезать" - :editor/expand-block-children "Раскрыть всё" - :editor/collapse-block-children "Свернуть всё" - :editor/delete-selection "Удалить выбранные блоки" - :editor/cycle-todo "Сменить статус задачи текущего элемента" - :dev/show-page-data "(Dev) Показать данные страницы" - :dev/show-block-data "(Dev) Показать данные блока" - :dev/show-block-ast "(Dev) Показать AST блока" - :content/copy-export-as "Копировать / Экспортировать как..." - :content/copy-block-url "Копировать URL блока" - :content/copy-block-ref "Копировать ссылку блока" - :content/copy-ref "Копировать ссылку" - :content/delete-ref "Удалить эту ссылку" - :content/replace-with-text "Заменить на текст" - :content/replace-with-embed "Заменить на встраиваемый элемент" - :content/open-in-sidebar "Открыть на боковой панели" - :content/click-to-edit "Нажмите для редактирования" - :context-menu/make-a-flashcard "Создать карточку" - :context-menu/toggle-number-list "Переключить формат нумерованного списка" - :settings-page/edit-config-edn "Редактировать config.edn" - :settings-page/edit-global-config-edn "Редактировать глобальный config.edn" - :settings-page/edit-custom-css "Редактировать custom.css" - :settings-page/edit-export-css "Редактировать export.css" - :settings-page/custom-configuration "Пользовательская конфигурация" - :settings-page/custom-global-configuration "Глобальная пользовательская конфигурация" - :settings-page/custom-theme "Пользовательская тема" - :settings-page/export-theme "Экспорт темы" - :settings-page/show-brackets "Показывать скобки" - :settings-page/spell-checker "Проверка орфографии" - :settings-page/auto-updater "Обновлять автоматически" - :settings-page/disable-sentry "Отправлять данные использования и диагностики в Logseq" - :settings-page/disable-sentry-desc "Logseq никогда не будет собирать вашу локальную базу данных графов или продавать ваши данные" - :settings-page/preferred-outdenting "Логические отступы" - :settings-page/preferred-outdenting-tip "С левой стороны показаны отступы с настройкой по умолчанию, а справа - отступы с включённой настройкой. " - :settings-page/preferred-outdenting-tip-more "→ Узнать больше" - :settings-page/show-full-blocks "Показать все строки в ссылке на блок" - :settings-page/auto-expand-block-refs "Автоматически раскрывать ссылки на блок при увеличении масштаба" - :settings-page/auto-expand-block-refs-tip "Этот параметр определяет, следует ли автоматически раскрывать ссылки на блоки при увеличении масштаба." - :settings-page/custom-date-format "Формат даты" - :settings-page/preferred-pasting-file-hint "Если функция включена, то при вставке изображения из интернета оно будет загружено и вставлено. При отключении будет вставлена ссылка на изображение." - :settings-page/preferred-pasting-file "Предпочтительнее вставлять файл" - :settings-page/enable-shortcut-tooltip "Всплывающие подсказки горячих клавиш" - :settings-page/enable-tooltip "Всплывающие подсказки" - :settings-page/enable-journals "Журналы" - :settings-page/enable-all-pages-public "При публикации все страницы становятся публичными" - :settings-page/home-default-page "Установить домашнюю страницу по умолчанию" - :settings-page/clear-cache "Очистить кэш" - :settings-page/clear "Очистить" - :settings-page/clear-cache-warning "Очистка кэша приведет к удалению открытых графов. Вы потеряете несохраненные изменения." - :settings-page/developer-mode "Режим разработчика" - :settings-page/developer-mode-desc "Режим разработчика помогает людям, участвующим в разработке расширений, более эффективно тестировать свои интеграции с Logseq" - :settings-page/current-version "Версия" - :settings-page/tab-general "Общие" - :settings-page/tab-editor "Редактор" - :settings-page/tab-account "Аккаунт" - :settings-page/tab-advanced "Продвинутые" - :settings-page/tab-features "Функции" - :settings-page/plugin-system "Расширения" - :settings-page/enable-flashcards "Карточки" - :settings-page/network-proxy "Прокси-сервер" - :settings-page/login-prompt "Чтобы получить доступ к новым функциям раньше других, вы должны быть открытым коллективным спонсором или сторонником Logseq и, следовательно, войти в систему первым." - :settings-page/native-titlebar "Встроенная строка заголовка" - :settings-page/native-titlebar-desc "Включить встроенную строку заголовка окна в Windows и Linux." - :settings-page/check-for-updates "Проверить наличие обновлений" - :settings-page/checking "Проверка ..." - :settings-page/revision "Редакция: " - :settings-page/changelog "Что нового?" - :settings-page/app-updated "Приложение обновлено 🎉" - :yes "Да" +{ + :account/authentication "Аутентификация" + :account/benefits-desc "С аккаунтом Logseq вы получаете доступ к облачным сервисам, таким как Logseq Sync, и альфа/бета-функциям." + :account/billing "Оплата" + :account/billing-expired-on-label "Срок действия плана Pro истёк: {1}" + :account/billing-expires-on-label "Срок действия плана Pro истекает: {1}" + :account/billing-next-date-label "Следующая дата оплаты: {1}" + :account/core-features "Доступ к основным функциям Logseq" + :account/current-plan "Текущий план" + :account/delete-account "Удалить аккаунт" + :account/discover-sync-desc "Откройте возможности {1}" + :account/early-access-alpha-beta "Ранний доступ к альфа/бета-функциям" + :account/first-name "Имя" + :account/free-plan-sync-limit "1 синхронизируемый граф (до 50 МБ, только заметки)" + :account/last-name "Фамилия" + :account/manage-plan "Управление планом" + :account/month "месяц" + :account/no-asset-syncing "Без синхронизации файлов" + :account/open-invoices "Открыть счета" + :account/plan-free "Бесплатный" + :account/plan-free-summary "Начните с базовой синхронизации" + :account/plan-pro "Pro" + :account/plan-pro-summary "Расширенная синхронизация и многое другое" + :account/pro-plan-sync-limit "10 синхронизируемых графов (до 5 ГБ каждый)" + :account/profile "Профиль" + :account/refresh-token-warning "Обновление токена: исключительный статус" + :account/reset-password "Сбросить пароль" + :account/sign-up "Регистрация" + :account/sync-assets-limit "Синхронизация файлов до 100 МБ каждый" + :account/synced-status "Синхронизировано" + :account/unlimited-unsynced-graphs "Неограниченное количество несинхронизируемых графов" + :account/upcoming-cloud-features "Будущие облачные функции, включая Logseq Publish" + :account/upgrade-plan "Обновить план" + :account/username "Имя пользователя" - :cancel "Отмена" - :close "Закрыть" - :delete "Удалить" - :save "Сохранить" - :type "Тип" - :host "Хост" - :port "Порт" - :home "Домой" - :new-page "Новая страница:" - :graph "Граф" - :graph/all-graphs "Все графы" - :graph/local-graphs "Локальные графы:" - :graph/remote-graphs "Удаленные(remote) графы:" - :export "Экспорт" - :export-graph "Экспортировать граф" - :export-page "Экспортировать страницу" - :export-markdown "Экспортировать как стандартный Markdown (без свойств блока)" - :export-public-pages "Экспорт публичных страниц" - :all-graphs "Все графы" - :all-files "Все файлы" - :all-journals "Все журналы" - :settings "Настройки" - :settings-of-plugins "Расширения" - :plugins "Расширения" - :themes "Темы" - :relaunch-confirm-to-work "Необходимо перезапустить приложение, чтобы изменения вступили в силу. Перезапустить сейчас?" - :import "Импорт" - :importing "Импортирование" - :help-shortcut-title "Нажмите для просмотра горячих клавиш и других советов" - :loading "Загрузка..." - :login "Вход" - :logout "Выйти" - :download "Скачать" - :language "Язык" - :remove-background "Удалить фон" - :remove-heading "Удалить заголовок" - :heading "Заголовок {1}" - :auto-heading "Автоматический заголовок" - :toggle-theme "Переключить тему" + :asset/acceptable-file-extensions "Допустимые расширения файлов" + :asset/add-assets "Добавить файлы" + :asset/add-directory "Добавить каталог" + :asset/alias-already-exists "Псевдоним \"{1}\" уже существует!" + :asset/alias-directories "Каталоги с псевдонимами" + :asset/alias-directory-path-label "Путь к каталогу:" + :asset/alias-name-dialog-title "Какой псевдоним у выбранного каталога?" + :asset/alias-name-label "Псевдоним:" + :asset/alias-name-placeholder "напр. Книги" + :asset/align "Выравнивание" + :asset/align-center "По центру" + :asset/align-left "По левому краю" + :asset/align-right "По правому краю" + :asset/already-exists "Актив уже существует, название: {1}, ссылка на узел: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Невозможно встроить родителя как собственное свойство" + :asset/confirm-delete-image "Вы уверены, что хотите удалить это изображение?" + :asset/copy "Копировать изображение" + :asset/copy-image-unsupported-extension "Копирование изображения не поддерживается для файлов {1}" + :asset/create-local-copy-warning "Создание локальной копии из внешнего ресурса. Для корректной работы аннотаций PDF необходим локальный файл." + :asset/create-title "Создать ресурс" + :asset/delete "Удалить изображение" + :asset/downloading "Загрузка" + :asset/drop-hint "Перетащите файлы сюда или нажмите для выбора" + :asset/edit-title "Редактировать ресурс" + :asset/external-url-label "Внешний URL ресурса:" + :asset/file-extension-placeholder "напр. mp3" + :asset/maximize "Увеличить изображение" + :asset/open-in-browser "Открыть изображение в браузере" + :asset/physical-delete "Также удалить файл (обратите внимание, что его нельзя будет восстановить)" + :asset/ref-block "Блок-ссылка" + :asset/select-file "Выбрать файл" + :asset/select-from-disk "Выбрать с диска" + :asset/selected-directories "Выбранные каталоги:" + :asset/show-file-in-folder "Показать файл в папке" + :asset/size-too-large "Ресурс слишком большой" + :asset/syncing "Синхронизация" + :asset/title-label "Название ресурса:" + :asset/transfer-placeholder "{1} файлов..." + :asset/uploading "Отправка" - :help/shortcut-page-title "Сочетания клавиш" + :block/click-to-fix-query "Нажмите, чтобы исправить запрос: {1}" + :block/copy-ref "Копировать ссылку блока" + :block/copy-url "Копировать URL блока" + :block/created-label "Создано: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' устарел. Используйте команду '/Math block'." + :block/deprecated-query-syntax "#+BEGIN_QUERY устарел. Используйте команду '/Advanced Query'." + :block/deprecated-quote "#+BEGIN_QUOTE устарел. Используйте команду '/Quote'." + :block/empty-url "Пустой URL" + :block/excalidraw-no-longer-supported "Excalidraw больше не поддерживается по умолчанию, мы планируем поддержку через плагины." + :block/extraction-error "Ошибка извлечения блока" + :block/hide-query "Скрыть запрос" + :block/invalid-hiccup "Невалидный hiccup" + :block/invalid-link "Невалидная ссылка" + :block/invalid-url "Невалидный URL" + :block/large-block-warning "Большой блок не будет доступен для редактирования и поиска, чтобы не замедлять приложение. Используйте другой редактор для этого блока." + :block/last-edited-label "Последнее редактирование: {1}" + :block/not-found-warning "Блок не найден" + :block/open-block-references "Открыть ссылки на блок" + :block/practice "Практика" + :block/practice-cards "Практика карточек" + :block/ref-nesting-too-deep "Слишком глубокая вложенность ссылок на блок" + :block/remove-tag "Удалить тег" + :block/remove-this-tag "Удалить этот тег" + :block/render-error "Ошибка отрисовки блока:" + :block/set-query "Задать запрос" + :block/set-query-label "Задать запрос:" + :block/sort-order "Порядок сортировки" + :block/status-history "История статусов" + :block/untitled-query "Безымянный запрос" - :plugin/installed "Установлено" - :plugin/installed-plugin "Установлено расширение: {1}" - :plugin/not-installed "Не установлено" - :plugin/installing "Установка" - :plugin/install "Установить" - :plugin/reload "Перезагрузить" - :plugin/update "Обновить" - :plugin/update-plugin "Обновлено расширение: {1} - {2}" - :plugin/check-update "Проверить обновления" - :plugin/check-all-updates "Проверить все обновления" - :plugin/found-updates "Новые обновления" - :plugin/found-n-updates "Найдено обновлений: {1}" - :plugin/update-all-selected "Обновить выбранные" - :plugin/all-updated "Все расширения обновлены!" - :plugin/updates-downloading "Загрузка обновлений" - :plugin/refresh-lists "Обновить списки" - :plugin/enabled "Включено" - :plugin/disabled "Отключено" - :plugin/update-available "Доступно обновление" - :plugin/updating "Обновление" - :plugin/uninstall "Удаление" - :plugin/marketplace "Каталог расширений" - :plugin/downloads "Загрузки" - :plugin/stars "Звёзды" - :plugin/title "Название ({1})" - :plugin/all "Все" - :plugin/unpacked "Распаковано" - :plugin/delete-alert "Вы уверены, что хотите удалить расширение [{1}]?" - :plugin/open-settings "Открыть настройки" - :plugin/open-package "Открыть пакет" - :plugin/load-unpacked "Загрузить распакованное расширение" - :plugin/restart "Перезапустить приложение" - :plugin/unpacked-tips "Выбрать папку для расширений" - :plugin/contribute "✨ Написать и отправить новое расширение" - :plugin/up-to-date "Обновлено {1}" - :plugin/custom-js-alert "Найден файл custom.js, выполнить его? (Если вы не понимаете содержание этого файла, рекомендуется не разрешать его выполнение, поскольку оно сопряжено с определенными рисками для безопасности)." - :plugin/security-warning "Расширения могут получать доступ к вашему графу и локальным файлам, а также отправлять сетевые запросы. Кроме того, они могут стать причиной повреждения или потери данных. Мы работаем над наилучшими правилами доступа к вашим графам. Тем не менее, убедитесь, что у вас имеются регулярные резервные копии ваших графов. Старайтесь устанавливать расширения только тогда, когда вы можете прочитать и понять исходный код." - :plugin/search-plugin "Найти расширения" - :plugin/open-preferences "Открыть настройки" - :plugin/open-logseq-dir "Открыть" - :plugin/remote-error "Сетевая ошибка: " - :plugin/checking-for-updates "Проверка обновлений расширения..." - :plugin/list-of-updates "Обновления расширений: " - :plugin.install-from-file/menu-title "Установить из plugins.edn" - :plugin.install-from-file/title "Установить расширения из plugins.edn" - :plugin.install-from-file/notice "Следующие расширения заменят уже установленные:" - :plugin.install-from-file/success "Все расширения установлены!" + :block.macro/embed-deprecated "{{embed}} устарела. Используйте вместо этого команду '/Node embed'." + :block.macro/namespace-deprecated "{{namespace}} устарела. Используйте вместо этого функцию {1}." + :block.macro/query-deprecated "{{query}} устарела. Используйте вместо этого команду '/Query'." + :block.macro/unsupported-name "Неподдерживаемое имя макроса: {1}" - :pdf/copy-ref "Копировать ссылку" - :pdf/copy-text "Копировать текст" - :pdf/linked-ref "Связанные ссылки" - :pdf/toggle-dashed "Пунктирный стиль для выделения области" - :pdf/hl-block-colored "Цветная метка для выделенного блока" - :pdf/doc-metadata "Метаданные документа" + :block.reaction/emoji-required-warning "Требуется эмодзи" + :block.reaction/unsupported-emoji-warning "Неподдерживаемый эмодзи реакции" - :updater/new-version-install "Была загружена новая версия" - :updater/quit-and-install "Перезапустить для установки" + :bug-report/desc "Сообщить об ошибке" + :bug-report/title "Сообщить об ошибке" - :tips/all-done "Всё готово!" + :bug-report.clipboard/action-desc "Проверить буфер обмена" + :bug-report.clipboard/action-title "Инспектор буфера обмена" + :bug-report.clipboard/desc "Если у вас проблемы с копированием и вставкой, используйте инспектор буфера обмена" + :bug-report.clipboard/title "Буфер обмена" - :select/default-prompt "Выберите" - :select/default-select-multiple "Выберите один или несколько" - :select.graph/prompt "Выберите граф" - :select.graph/empty-placeholder-description "Нет подходящих графов. Хотите добавить другой?" - :select.graph/add-graph "Да, добавить другой граф" + :bug-report.inspector/back "Назад" + :bug-report.inspector/clipboard-desc "Содержимое буфера обмена" + :bug-report.inspector/copied "Скопировано в буфер обмена" + :bug-report.inspector/copy "Копировать" + :bug-report.inspector/copy-desc "Скопировать диагностический отчёт" + :bug-report.inspector/create-issue "Создать issue" + :bug-report.inspector/create-issue-desc "Теперь вы можете сообщить о результате, вставленном в буфер обмена. Пожалуйста, вставьте результат в раздел 'Additional Context' и укажите, откуда вы скопировали исходное содержимое. Спасибо!" + :bug-report.inspector/desc "Нажмите {1} для проверки данных буфера обмена\nили нажмите здесь для вставки, если вы используете мобильную версию" + :bug-report.inspector/placeholder "Вставьте содержимое сюда" + :bug-report.inspector/tip "Подсказка: используйте Ctrl+V для вставки" + :bug-report.inspector/title "Инспектор буфера обмена" - :notification/clear-all "Очистить всё" + :bug-report.issue/action-desc "Просмотреть известные проблемы" + :bug-report.issue/action-title "Проблемы на GitHub" + :bug-report.issue/desc "Проверьте, не была ли ваша проблема уже описана" + :bug-report.issue/report-link "Сообщить о проблеме" + :bug-report.issue/title "Известные проблемы" - :shortcut.category/basics "Базовые" - :shortcut.category/formatting "Форматирование" - :shortcut.category/navigating "Навигация" - :shortcut.category/block-editing "Общее редактирование блока" - :shortcut.category/block-command-editing "Команды редактирования блока" - :shortcut.category/block-selection "Выделение блоков (Esc для отмены)" - :shortcut.category/toggle "Переключатели" - :shortcut.category/others "Разное" - :shortcut.category/plugins "Расширения" - :window/minimize "Свернуть" - :window/maximize "Развернуть" - :window/restore "Свернуть в окно" - :window/close "Закрыть" - :window/exit-fullscreen "Выйти из полноэкранного режима" + :class/add-property "Добавить свойство тега" + :class/tag-properties-desc "Свойства тега наследуются всеми узлами, использующими этот тег. Например, каждый узел #Task наследует 'Status' и 'Priority'." + :class/tagged-nodes "Узлы с тегом" - :header/toggle-left-sidebar "Переключить левую панель" - :header/search "Поиск" - :header/more "Больше" - :header/go-back "Назад" - :header/go-forward "Вперёд" - :command.pdf/previous-page "PDF: Предыдущая страница текущего PDF-документа" - :command.pdf/next-page "PDF: Следующая страница текущего PDF-документа" - :command.pdf/close "PDF: Закрыть просмотр текущего PDF-документа" - :command.pdf/find "PDF: Поиск текста в текущем PDF-документе" - :command.auto-complete/complete "Автодополнение: Использовать выбранный элемент" - :command.auto-complete/prev "Автодополнение: Выбрать предыдущий" - :command.auto-complete/next "Автодополнение: Выбрать следующий" - :command.auto-complete/shift-complete "Автодополнение: Открыть выбранный элемент на боковой панели" - :command.cards/toggle-answers "Карточки: показать/скрыть ответы/clozes" - :command.editor/escape-editing "Выйти из режима редактирования" - :command.editor/backspace "Удалить перед курсором" - :command.editor/delete "Удалить после курсора" - :command.editor/new-block "Создать новый блок" - :command.editor/new-line "Новая строка в блоке" - :command.editor/follow-link "Перейти по ссылке под курсором" - :command.editor/open-link-in-sidebar "Открыть ссылку на боковой панели" - :command.editor/bold "Жирный" - :command.editor/italics "Курсив" - :command.editor/highlight "Выделение" - :command.editor/strike-through "Перечёркнутый" - :command.editor/clear-block "Удалить содержимое блока" - :command.editor/kill-line-before "Удалить строку до курсора" - :command.editor/copy-embed "Копировать встраиваемый блок, указывающий на текущий блок" - :command.editor/kill-line-after "Удалить строку после курсора" - :command.editor/beginning-of-block "Переместить курсор в начало блока" - :command.editor/end-of-block "Переместить курсор в конец блока" - :command.editor/forward-word "Переместить курсор на одно слово вперёд" - :command.editor/backward-word "Переместить курсор на одно слово назад" - :command.editor/forward-kill-word "Удалить следующее слово" - :command.editor/backward-kill-word "Удалить предыдущее слово" - :command.editor/paste-text-in-one-block-at-point "Вставить текст в один блок в указанном месте" - :command.editor/insert-youtube-timestamp "Вставить временную метку на Youtube" - :command.editor/cycle-todo "Сменить статус задачи текущего элемента" - :command.editor/up "Переместить курсор вверх / Выбрать вверх" - :command.editor/down "Переместить курсор вниз / Выбрать вниз" - :command.editor/left "Переместить курсор влево / Открыть выбранный блок в начале" - :command.editor/right "Переместить курсор вправо / Открыть выбранный блок в конце" - :command.editor/select-up "Выбрать контент выше" - :command.editor/select-down "Выбрать контент ниже" - :command.editor/move-block-up "Передвинуть блок выше" - :command.editor/move-block-down "Передвинуть блок ниже" - :command.editor/open-edit "Редактировать выбранный блок" - :command.editor/select-block-up "Выбрать блок выше" - :command.editor/select-block-down "Выбрать блок ниже" - :command.editor/delete-selection "Удалить выбранные блоки" - :command.editor/expand-block-children "Раскрыть" - :command.editor/collapse-block-children "Свернуть" - :command.editor/indent "Увеличить отступ блока" - :command.editor/outdent "Уменьшить отступ блока" - :command.editor/copy "Копировать (выделенное либо ссылку на блок)" - :command.editor/copy-text "Копировать как текст" - :command.editor/cut "Вырезать" - :command.editor/undo "Отменить" - :command.editor/redo "Вернуть" - :command.editor/insert-link "HTML ссылка" - :command.editor/select-all-blocks "Выбрать все блоки" - :command.editor/select-parent "Выбрать родительский блок" - :command.editor/zoom-in "Войти в редактируемый блок / Иначе вперёд" - :command.editor/zoom-out "Выйти из редактируемого блока / Иначе назад" - :command.editor/toggle-number-list "Переключить формат нумерованного списка" - :command.ui/toggle-brackets "Переключить отображение скобок" - :command.go/electron-find-in-page "Поиск текста на странице" - :command.go/electron-jump-to-the-next "Перейти к следующему совпадению в строке поиска" - :command.go/electron-jump-to-the-previous "Перейти к предыдущему совпадению в строке поиска" - :command.go/search "Поиск страниц и блоков" - :command.go/journals "Перейти в журналы" - :command.go/backward "Назад" - :command.go/forward "Вперёд" - :command.search/re-index "Переиндексация поиска" - :command.sidebar/open-today-page "Открыть сегодняшнюю страницу на правой боковой панели" - :command.sidebar/close-top "Закрыть верхний элемент на правой боковой панели" - :command.sidebar/clear "Очистить всё на правой боковой панели" - :command.misc/copy "Копировать" - :command.graph/export-as-html "Экспорт публичных страниц графов в формате html" - :command.graph/open "Выберите граф для открытия" - :command.graph/remove "Удалить граф" - :command.graph/add "Добавить граф" - :command.command/run "Выполнить команду git" - :command.go/home "Домой" - :command.go/all-graphs "Перейти ко всем графам" - :command.go/all-pages "Перейти ко всем страницам" - :command.go/graph-view "Перейти к просмотру графа" - :command.go/keyboard-shortcuts "Перейти к горячим клавишам" - :command.go/tomorrow "перейти к завтрашнему дню" - :command.go/next-journal "Перейти к следующему журналу" - :command.go/prev-journal "Перейти к предыдущему журналу" - :command.go/flashcards "Переключить карточки" - :command.ui/toggle-document-mode "Переключить режим документа" - :command.ui/toggle-settings "Переключить параметры" - :command.ui/toggle-right-sidebar "Переключить правую панель" - :command.ui/toggle-left-sidebar "Переключить левую панель" - :command.ui/toggle-help "Переключить помощь" - :command.ui/toggle-theme "Переключение между тёмной/светлой темой" - :command.ui/toggle-contents "Переключить Контент на боковой панели" - :command.command/toggle-favorite "Добавить или удалить из избранного" - :command.editor/copy-page-url "Копировать URL страницы" - :command.ui/toggle-wide-mode "Переключить широкоформатный режим" - :command.ui/select-theme-color "Выбрать доступные цвета темы" - :command.ui/goto-plugins "Перейдите в панель управления расширениями" - :command.ui/install-plugins-from-file "Установить расширения из plugins.edn" - :command.editor/toggle-open-blocks "Переключить открытые блоки (свернуть или развернуть все блоки)" - :command.ui/clear-all-notifications "Очистить все уведомления" - :command.dev/show-block-data "(Dev) Показать данные блока" - :command.dev/show-block-ast "(Dev) Показать AST блока" - :command.dev/show-page-data "(Dev) Показать данные страницы"} + :class.built-in/asset "Ресурс" + :class.built-in/card "Карточка" + :class.built-in/cards "Карточки" + :class.built-in/code-block "Код" + :class.built-in/journal "Журнал" + :class.built-in/math-block "Формула" + :class.built-in/page "Страница" + :class.built-in/pdf-annotation "Аннотация PDF" + :class.built-in/property "Свойство" + :class.built-in/query "Запрос" + :class.built-in/quote-block "Цитата" + :class.built-in/root "Корневой тег" + :class.built-in/tag "Тег" + :class.built-in/task "Задача" + :class.built-in/template "Шаблон" + :class.built-in/whiteboard "Доска" + + :class.validation/built-in-extends-change "Наследование встроенных элементов нельзя изменить." + :class.validation/cant-add-tag-on-built-in "Невозможно добавить тег во встроенный \"{1}\"." + :class.validation/cant-remove-private-tags "Невозможно удалить личные теги: {1}." + :class.validation/cant-remove-tag-built-in "Невозможно удалить тег со встроенным #{1}." + :class.validation/cant-remove-tag-on-built-in "Невозможно удалить тег на встроенном \"{1}\"." + :class.validation/cant-set-tag-built-in "Невозможно установить тег со встроенным #{1}." + :class.validation/duplicate "Тег '{1}' уже существует." + :class.validation/extends-cycle "Обнаружен цикл в наследовании." + :class.validation/invalid-extends-type "Недопустимый тип наследования." + :class.validation/parents-must-be-tags "Родители тегов должны быть тегами." + :class.validation/tag-with-non-tag "Невозможно установить тег для встроенной страницы, которая не является тегом «{1}»." + + :cmdk.action/apply-theme "Применить тему" + :cmdk.action/copy-ref "Копировать ссылку" + :cmdk.action/create "Создать" + :cmdk.action/filter "Фильтр" + :cmdk.action/open "Открыть" + :cmdk.action/open-in-sidebar "Открыть в боковой панели" + :cmdk.action/search "Поиск" + :cmdk.action/trigger "Выполнить" + + :cmdk.create/configure-tag "Настроить тег" + :cmdk.create/page "Создать страницу" + :cmdk.create/tag "Создать тег" + + :cmdk.error/no-block-link "В этом блоке нет ссылок." + :cmdk.error/no-page-link "На этой странице нет ссылок." + :cmdk.error/no-search-item-link "В этом результате поиска нет ссылок." + + :cmdk.filter/add "Добавить фильтр" + :cmdk.filter/codes "Только код" + :cmdk.filter/commands "Только команды" + :cmdk.filter/current-page "Только текущая страница" + :cmdk.filter/files "Только файлы" + :cmdk.filter/nodes "Только узлы" + :cmdk.filter/only-label "Только поиск:" + :cmdk.filter/themes "Только темы" + + :cmdk.group/codes "Код" + :cmdk.group/commands "Команды" + :cmdk.group/create "Создать" + :cmdk.group/current-page "Текущая страница" + :cmdk.group/files "Файлы" + :cmdk.group/filters "Фильтры" + :cmdk.group/nodes "Узлы" + :cmdk.group/recently-updated "Недавно обновлённые" + :cmdk.group/themes "Темы" + + :cmdk.info/configure-tag "Настроить #{1}" + :cmdk.info/create-page "Создать страницу '{1}'" + :cmdk.info/create-tag "Создать тег '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Добавить фильтр графа" + :cmdk.input/default-placeholder "Что вы ищете?" + :cmdk.input/move-blocks-placeholder "Переместить блоки" + :cmdk.input/type-page-name-placeholder "Введите имя страницы" + + :cmdk.tip/clear-filter "Нажмите {1}, чтобы очистить фильтр поиска" + :cmdk.tip/filter-results "Нажмите {1}, чтобы отфильтровать результаты поиска" + :cmdk.tip/label "Подсказка:" + :cmdk.tip/open-sidebar "Нажмите {1}, чтобы открыть поиск в боковой панели" + + :collaboration/email-address "Адрес электронной почты" + :collaboration/invite "Пригласить" + :collaboration/members "Участники:" + :collaboration/remove-access "Отозвать доступ" + :collaboration/remove-access-error "Не удалось удалить участника" + + :color/blue "Синий" + :color/crimson "карминовый" + :color/cyan "циан" + :color/grass "травяной" + :color/gray "Серый" + :color/green "Зеленый" + :color/indigo "индиго" + :color/orange "оранжевый" + :color/pink "Розовый" + :color/plum "сливовый" + :color/purple "Фиолетовый" + :color/red "Красный" + :color/teal "бирюзовый" + :color/tomato "томатный" + :color/violet "фиалковый" + :color/yellow "Желтый" + + :command.auto-complete/complete "Автодополнение: Использовать выбранный элемент" + :command.auto-complete/meta-complete "Мета-автодополнение" + :command.auto-complete/next "Автодополнение: Выбрать следующий" + :command.auto-complete/prev "Автодополнение: Выбрать предыдущий" + :command.auto-complete/shift-complete "Автодополнение: Открыть выбранный элемент на боковой панели" + + :command.command-palette/toggle "Палитра команд" + + :command.editor/add-property "Добавить свойство" + :command.editor/add-property-deadline "Добавить крайний срок" + :command.editor/add-property-icon "Добавить значок" + :command.editor/add-property-priority "Добавить приоритет" + :command.editor/add-property-status "Добавить статус" + :command.editor/add-reaction "Добавить реакцию" + :command.editor/backspace "Удалить перед курсором" + :command.editor/backward-kill-word "Удалить предыдущее слово" + :command.editor/backward-word "Переместить курсор на одно слово назад" + :command.editor/beginning-of-block "Переместить курсор в начало блока" + :command.editor/bold "Жирный" + :command.editor/clear-block "Удалить содержимое блока" + :command.editor/collapse-block-children "Свернуть" + :command.editor/copy "Копировать (выделенное либо ссылку на блок)" + :command.editor/copy-embed "Копировать встраиваемый блок, указывающий на текущий блок" + :command.editor/copy-page-url "Скопировать URL страницы" + :command.editor/copy-text "Копировать как текст" + :command.editor/cut "Вырезать" + :command.editor/cycle-todo "Сменить статус задачи текущего элемента" + :command.editor/delete "Удалить после курсора" + :command.editor/delete-selection "Удалить выбранные блоки" + :command.editor/down "Переместить курсор вниз / Выбрать вниз" + :command.editor/end-of-block "Переместить курсор в конец блока" + :command.editor/escape-editing "Выйти из режима редактирования" + :command.editor/expand-block-children "Раскрыть" + :command.editor/follow-link "Перейти по ссылке под курсором" + :command.editor/forward-kill-word "Удалить следующее слово" + :command.editor/forward-word "Переместить курсор на одно слово вперёд" + :command.editor/highlight "Выделение" + :command.editor/indent "Увеличить отступ блока" + :command.editor/insert-link "HTML ссылка" + :command.editor/insert-youtube-timestamp "Вставить временную метку на Youtube" + :command.editor/italics "Курсив" + :command.editor/jump "Перейти" + :command.editor/kill-line-after "Удалить строку после курсора" + :command.editor/kill-line-before "Удалить строку до курсора" + :command.editor/left "Переместить курсор влево / Открыть выбранный блок в начале" + :command.editor/move-block-down "Передвинуть блок ниже" + :command.editor/move-block-up "Передвинуть блок выше" + :command.editor/move-blocks "Переместить блоки" + :command.editor/new-block "Создать новый блок" + :command.editor/new-line "Новая строка в блоке" + :command.editor/open-edit "Редактировать выбранный блок" + :command.editor/open-link-in-sidebar "Открыть ссылку на боковой панели" + :command.editor/open-selected-blocks-in-sidebar "Открыть выбранные блоки в боковой панели" + :command.editor/outdent "Уменьшить отступ блока" + :command.editor/paste-text-in-one-block-at-point "Вставить текст в один блок в указанном месте" + :command.editor/quick-add "Быстрое добавление" + :command.editor/redo "Вернуть" + :command.editor/right "Переместить курсор вправо / Открыть выбранный блок в конце" + :command.editor/select-all-blocks "Выбрать все блоки" + :command.editor/select-block-down "Выбрать блок ниже" + :command.editor/select-block-up "Выбрать блок выше" + :command.editor/select-down "Выбрать контент ниже" + :command.editor/select-parent "Выбрать родительский блок" + :command.editor/select-up "Выбрать контент выше" + :command.editor/set-tags "Установить теги" + :command.editor/strike-through "Перечёркнутый" + :command.editor/toggle-block-children "Показать/скрыть дочерние блоки" + :command.editor/toggle-display-hidden-properties "Показать/скрыть скрытые свойства" + :command.editor/toggle-number-list "Нумерованный список" + :command.editor/toggle-open-blocks "Переключить открытые блоки (свернуть или развернуть все блоки)" + :command.editor/undo "Отменить" + :command.editor/up "Переместить курсор вверх / Выбрать вверх" + :command.editor/zoom-in "Войти в редактируемый блок / Иначе вперёд" + :command.editor/zoom-out "Выйти из редактируемого блока / Иначе назад" + + :command.go/all-graphs "Перейти ко всем графам" + :command.go/all-pages "Перейти ко всем страницам" + :command.go/backward "Назад" + :command.go/electron-find-in-page "Поиск текста на странице" + :command.go/electron-jump-to-the-next "Перейти к следующему совпадению в строке поиска" + :command.go/electron-jump-to-the-previous "Перейти к предыдущему совпадению в строке поиска" + :command.go/flashcards "Переключить карточки" + :command.go/forward "Вперёд" + :command.go/graph-view "Перейти к просмотру графа" + :command.go/home "Домой" + :command.go/journals "Перейти в журналы" + :command.go/keyboard-shortcuts "Перейти к горячим клавишам" + :command.go/next-journal "Перейти к следующему журналу" + :command.go/prev-journal "Перейти к предыдущему журналу" + :command.go/search "Поиск страниц и блоков" + :command.go/search-in-page "Поиск на странице" + :command.go/search-themes "Поиск тем" + :command.go/tomorrow "перейти к завтрашнему дню" + + :command.graph/add "Добавить граф" + :command.graph/db-add "Добавить в базу данных" + :command.graph/db-save "Сохранить базу данных" + :command.graph/export-as-html "Экспорт публичных страниц графов в формате HTML" + :command.graph/open "Выберите граф для открытия" + :command.graph/remove "Удалить граф" + + :command.misc/copy "Копировать" + :command.misc/export-block-data "Экспорт данных блока" + :command.misc/export-graph-ontology-data "Экспорт онтологии графа" + :command.misc/export-page-data "Экспорт данных страницы" + :command.misc/import-edn-data "Импорт данных EDN" + + :command.page/toggle-favorite "Добавить или удалить из избранного" + + :command.pdf/close "PDF: Закрыть просмотр текущего PDF-документа" + :command.pdf/find "PDF: Поиск текста в текущем PDF-документе" + :command.pdf/next-page "PDF: Следующая страница текущего PDF-документа" + :command.pdf/previous-page "PDF: Предыдущая страница текущего PDF-документа" + + :command.publish/open-dialog "Открыть диалог публикации" + + :command.search/re-index "Переиндексация поиска" + + :command.shell/run "Выполнить команду git" + + :command.sidebar/clear "Очистить всё на правой боковой панели" + :command.sidebar/close-top "Закрыть верхний элемент на правой боковой панели" + :command.sidebar/open-today-page "Открыть сегодняшнюю страницу на правой боковой панели" + + :command.ui/clear-all-notifications "Очистить все уведомления" + :command.ui/customize-appearance "Настроить внешний вид" + :command.ui/goto-plugins "Перейдите в панель управления расширениями" + :command.ui/highlight-recent-blocks "Выделить недавние блоки" + :command.ui/install-plugin-from-github "Установить плагин с GitHub" + :command.ui/install-plugins-from-file "Установить расширения из plugins.edn" + :command.ui/select-theme-color "Выбрать доступные цвета темы" + :command.ui/toggle-brackets "Переключить отображение скобок" + :command.ui/toggle-contents "Переключить Контент на боковой панели" + :command.ui/toggle-document-mode "Переключить режим документа" + :command.ui/toggle-help "Переключить помощь" + :command.ui/toggle-left-sidebar "Переключить левую панель" + :command.ui/toggle-right-sidebar "Переключить правую панель" + :command.ui/toggle-settings "Переключить параметры" + :command.ui/toggle-theme "Переключение между тёмной/светлой темой" + :command.ui/toggle-wide-mode "Переключить широкоформатный режим" + + :command.window/close "Закрыть окно" + + :context-menu/developer-tools "Инструменты разработчика" + :context-menu/make-a-flashcard "Создать карточку" + :context-menu/set-icon "Установить значок" + :context-menu/toggle-number-list "Переключить нумерованный список" + + :date/invalid-date-warning "{1} не является допустимой датой. Пожалуйста, попробуйте еще раз" + + :date.nlp/last-friday "Прошлую пятницу" + :date.nlp/last-monday "Прошлый понедельник" + :date.nlp/last-month "Прошлый месяц" + :date.nlp/last-saturday "Прошлую субботу" + :date.nlp/last-sunday "Прошлое воскресенье" + :date.nlp/last-thursday "Прошлый четверг" + :date.nlp/last-tuesday "Прошлый вторник" + :date.nlp/last-wednesday "Прошлую среду" + :date.nlp/last-week "Прошлую неделю" + :date.nlp/last-year "Прошлый год" + :date.nlp/next-friday "Следующую пятницу" + :date.nlp/next-monday "Следующий понедельник" + :date.nlp/next-month "Следующий месяц" + :date.nlp/next-saturday "Следующую субботу" + :date.nlp/next-sunday "Следующее воскресенье" + :date.nlp/next-thursday "Следующий четверг" + :date.nlp/next-tuesday "Следующий вторник" + :date.nlp/next-wednesday "Следующую среду" + :date.nlp/next-week "Следующую неделю" + :date.nlp/next-year "Следующий год" + :date.nlp/this-friday "Эту пятницу" + :date.nlp/this-monday "Этот понедельник" + :date.nlp/this-month "Этот месяц" + :date.nlp/this-saturday "Эту субботу" + :date.nlp/this-sunday "Это воскресенье" + :date.nlp/this-thursday "Этот четверг" + :date.nlp/this-tuesday "Этот вторник" + :date.nlp/this-wednesday "Эту среду" + :date.nlp/this-week "Эту неделю" + :date.nlp/this-year "Этот год" + :date.nlp/today "Сегодня" + :date.nlp/tomorrow "Завтра" + :date.nlp/yesterday "Вчера" + + :deeplink/open-block-error "Не удалось открыть ссылку. ID блока `{1}` не существует в текущем графе." + :deeplink/open-graph-error "Не удалось открыть граф. Граф `{1}` не существует." + :deeplink/open-page-error "Не удалось открыть ссылку. Страница `{1}` не существует в текущем графе." + + :editor/add-content-first-warning "Сначала добавьте содержимое." + :editor/auto-heading "Автозаголовок" + :editor/block-search "Поиск блока" + :editor/click-to-edit "Нажмите для редактирования" + :editor/code-language-placeholder "Выберите язык" + :editor/collapse-block-children "Свернуть дочерние блоки" + :editor/cut "Вырезать" + :editor/cycle-todo "Переключить TODO" + :editor/delete-selection "Удалить выделение" + :editor/display-tag-inline-hint "чтобы показывать этот тег встроенно, а не в конце этого узла." + :editor/expand-block-children "Развернуть дочерние блоки" + :editor/heading "Заголовок {1}" + :editor/moving-blocks-count "Перемещение {1} блоков" + :editor/new-page "Новая страница" + :editor/new-tag "Новый тег" + :editor/no-block-selected-warning "Нет выбранных блоков" + :editor/paste "Вставить" + :editor/reference-node-use-page-ref "Чтобы ссылаться на узел, используйте `[[]]`." + :editor/remove-heading "Удалить заголовок" + :editor/search-for-node "Искать узел" + :editor/search-for-tag "Искать тег" + :editor/search-template-placeholder "Поиск шаблона" + :editor/template-insert-error "Ошибка вставки шаблона: {1}" + + :editor.document-mode/new-block-hint "{1} для создания нового блока" + :editor.document-mode/title "Режим документа" + :editor.document-mode/toggle-desc "Нажмите `D` или введите {1} для переключения режима документа" + + :editor.quick-add/add-to-today "Добавить на сегодня" + :editor.quick-add/title "Быстрое добавление" + + :editor.slash/advanced-query "Расширенный запрос" + :editor.slash/advanced-query-desc "Создать блок расширенного запроса" + :editor.slash/calculator "Калькулятор" + :editor.slash/calculator-desc "Вставить калькулятор" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Блок кода" + :editor.slash/code-block-desc "Вставить блок кода" + :editor.slash/current-time "Текущее время" + :editor.slash/current-time-desc "Вставить текущее время" + :editor.slash/date-picker "Выбор даты" + :editor.slash/date-picker-desc "Выберите дату и вставьте её" + :editor.slash/embed-html "Вставить HTML" + :editor.slash/embed-twitter-tweet "Вставить твит Twitter" + :editor.slash/embed-video-url "Вставить URL видео" + :editor.slash/embed-youtube-timestamp "Вставить отметку времени YouTube" + :editor.slash/group-advanced "ПРОДВИНУТОЕ" + :editor.slash/group-basic "БАЗОВОЕ" + :editor.slash/group-format "ФОРМАТ" + :editor.slash/group-heading "Заголовок" + :editor.slash/group-list-type "ТИП СПИСКА" + :editor.slash/group-plugins "ПЛАГИНЫ" + :editor.slash/group-priority "ПРИОРИТЕТ" + :editor.slash/group-task-date "ДАТА ЗАДАЧИ" + :editor.slash/group-task-status "СТАТУС ЗАДАЧИ" + :editor.slash/group-time-and-date "ВРЕМЯ И ДАТА" + :editor.slash/heading-label "Заголовок {1}" + :editor.slash/image-link "Ссылка на изображение" + :editor.slash/image-link-desc "Создать HTTP ссылку на изображение" + :editor.slash/link-desc "Создать HTTP ссылку" + :editor.slash/math-block "Математический блок" + :editor.slash/math-block-desc "Создать блок LaTeX" + :editor.slash/no-priority "Без приоритета" + :editor.slash/node-embed "Вставить узел" + :editor.slash/node-embed-desc "Вставить узел здесь" + :editor.slash/node-reference "Ссылка на узел" + :editor.slash/node-reference-desc "Создать обратную ссылку на узел (страница или блок)" + :editor.slash/normal-text "Обычный текст" + :editor.slash/normal-text-desc "Очистить заголовок и установить обычный текст" + :editor.slash/number-children "Нумеровать потомков" + :editor.slash/number-list "Нумерованный список" + :editor.slash/priority-desc "Установить приоритет {1}" + :editor.slash/priority-label "Приоритет {1}" + :editor.slash/query-function "Функция запроса" + :editor.slash/query-function-desc "Создать функцию запроса" + :editor.slash/quote-desc "Создать блок цитаты" + :editor.slash/status-desc "Установить статус {1}" + :editor.slash/template-desc "Вставить созданный шаблон здесь" + :editor.slash/today-desc "Вставить сегодняшнюю дату" + :editor.slash/tomorrow-desc "Вставить завтрашнюю дату" + :editor.slash/underline "Подчеркивание" + :editor.slash/underline-desc "Создать подчеркнутое форматирование текста" + :editor.slash/upload-asset "Загрузить файл" + :editor.slash/upload-asset-desc "Загрузить типы файлов, такие как изображение, PDF, DOCX и т. д." + :editor.slash/yesterday-desc "Вставить вчерашнюю дату" + + :electron/about "О Logseq" + :electron/add-to-dictionary "Добавить в словарь" + :electron/block-not-exist "Не удалось открыть ссылку. Идентификатор блока `{1}` не существует в графе." + :electron/cancel "Отмена" + :electron/copy-image "Копировать изображение" + :electron/link-open-confirm "Вы уверены, что хотите открыть эту ссылку?\n{1}" + :electron/link-open-failed-missing-graph "Не удалось открыть ссылку. Отсутствует граф." + :electron/link-open-failed-no-graph "Не удалось открыть ссылку. Не удалось сопоставить идентификатор графа `{1}` ни с одним подключённым графом." + :electron/link-open-failed-no-target "Не удалось открыть ссылку. Не удалось сопоставить `{1}` ни с одной целью." + :electron/look-up "Искать выделенное" + :electron/main-exception "[Исключение главного процесса]\n{1}\n{2}" + :electron/new-window "Новое окно" + :electron/official-docs "Официальная документация" + :electron/ok "ОК" + :electron/open-dir-error "Не удалось открыть директорию: {1}" + :electron/save-image "Сохранить изображение" + :electron/save-image-as "Сохранить изображение как" + :electron/search-with-google "Искать в Google" + :electron/unimplemented-callback "Нереализованное действие x-callback-url: `{1}`." + :electron/version "Версия {1}" + :electron/write-file-error "Не удалось записать в файл {1}, {2}." + :electron/write-file-error-with-backup "Не удалось записать в файл {1}, {2}. Резервная копия была сохранена в {3}." + + :encryption/cloud-password-rich (fn [] ["Если вы потеряете пароль, данные в облаке нельзя будет расшифровать. " [:span "При этом у вас всё равно останется доступ к локальной версии графа."]]) + :encryption/current-password "Текущий пароль" + :encryption/enter-password "Введите пароль" + :encryption/enter-password-again "Введите пароль ещё раз" + :encryption/enter-password-title "Введите пароль" + :encryption/failed-to-force-reset-password "Не удалось принудительно сбросить пароль" + :encryption/failed-to-update-password "Не удалось обновить пароль" + :encryption/fetch-key-pair-error "Ошибка при получении пользовательской пары ключей rsa: {1}" + :encryption/fetching-key-pair "Получение пары ключей" + :encryption/force-reset-password "Принудительный сброс пароля" + :encryption/force-reset-password-successfully "Пароль принудительно сброшен" + :encryption/force-resetting-password "Принудительный сброс" + :encryption/forgot-password-question "Забыли пароль?" + :encryption/forgot-password-warning "Если вы забудете пароль, зашифрованные данные невозможно будет восстановить." + :encryption/init-key-pair "Инициализировать пару ключей" + :encryption/init-key-pair-error "Ошибка пары ключей инициализации: {1}" + :encryption/password-not-matched "Пароли не совпадают" + :encryption/password-updated-successfully "Пароль обновлён" + :encryption/remember-password-rich (fn [] [[:span "Обязательно "] "запомните установленный пароль: если вы его забудете, мы не сможем его сбросить или восстановить, " [:span "и рекомендуем "] "хранить его безопасную резервную копию."]) + :encryption/reset-password "Сбросить пароль" + :encryption/set-new-password "Установить новый пароль" + :encryption/set-password-title "Установить пароль" + :encryption/updating-password "Обновление пароля" + :encryption/wrong-password "Неверный пароль" + + :export/backup-successful "Резервная копия создана!" + :export/block-data-copied "Данные блока скопированы в буфер обмена" + :export/collecting-assets "Сбор файлов" + :export/copied-to-clipboard "Скопировано в буфер обмена!" + :export/copy-or-export-as "Копировать / Экспортировать как..." + :export/creating-zip "Создание zip" + :export/db-backup-error "Не удалось создать резервную копию БД." + :export/db-edn "Экспортировать как файл EDN" + :export/debug-transit-desc "Экспорт в файл .transit для отправки нам для отладки. Конфиденциальные данные будут удалены из экспортированного файла." + :export/debug-transit-file "Экспортировать отладочный transit-файл" + :export/edn-desc "Экспорт в читаемый и редактируемый файл .edn. Не используйте это как основную резервную копию." + :export/error-unexpected "Непредвиденная ошибка при экспорте. Подробности см. в консоли JavaScript." + :export/exporting "Экспорт" + :export/finalizing "Завершение" + :export/format-text "Текст" + :export/graph "Экспортировать граф" + :export/graph-ontology-data-copied "Данные онтологии графа скопированы в буфер обмена" + :export/indent-style-dashes "тире" + :export/indent-style-label "Стиль отступов:" + :export/indent-style-none "без отступов" + :export/indent-style-spaces "пробелы" + :export/level-lte "уровень <=" + :export/markdown "Экспортировать как Markdown (без свойств блоков)" + :export/newline-after-block "новая строка после блока" + :export/no-updates-since-last-export "Нет обновлений с последнего экспорта." + :export/open-blocks-only "только открытые блоки (пропустить свернутых потомков)" + :export/page "Экспортировать страницу" + :export/page-data-copied "Данные страницы скопированы в буфер обмена" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Подготовка zip" + :export/preview-alt "предпросмотр экспорта" + :export/public-pages "Экспортировать публичные страницы" + :export/remove-emphasis "убрать выделение" + :export/remove-properties "убрать свойства" + :export/remove-tags "убрать #теги" + :export/save-to-file "Сохранить в файл" + :export/sqlite-db "Экспортировать базу данных SQLite" + :export/title "Экспорт" + :export/transparent-background "Прозрачный фон" + :export/view-nodes-data-copied "Данные узлов представления скопированы в буфер обмена" + :export/zip "Экспортировать БД SQLite и ресурсы" + :export/zip-error "Не удалось экспортировать ZIP." + + :export.backup/backup-now "Создать резервную копию" + :export.backup/cancel "Отменить резервное копирование" + :export.backup/enabled-desc "Ежечасное резервное копирование включено для этого графа, {1}." + :export.backup/folder "Папка резервных копий:" + :export.backup/hourly-note "Резервная копия будет создаваться каждый час." + :export.backup/open-folder "открыть папку с резервными копиями этого графа" + :export.backup/schedule "Запланировать резервное копирование" + :export.backup/set-folder-first "Сначала укажите папку для резервных копий" + :export.backup/sqlite-desc "Основной способ резервного копирования содержимого графа в один файл .sqlite." + :export.backup/unsupported-desc "Ваш браузер не поддерживает {{The File System Access API}}, переключитесь на браузер на базе Chromium." + :export.backup/zip-desc "Основной способ резервного копирования содержимого графа и файлов в архив .zip." + + :file/config-duplicate-keys "Файл «{1}» содержит повторяющиеся ключи. Ключ «{2}» назначается несколько раз." + :file/config-invalid "Файл конфигурации недействителен" + :file/format-not-supported "Расширение .{1} не поддерживается." + :file/label "Файл" + :file/last-modified-at "Последнее изменение" + :file/name "Имя файла" + :file/no-data "Нет данных" + :file/title "Файл {1}" + + :file.config/deprecation-title "Файл {1} содержит следующие устаревшие параметры:" + :file.config/error-title "Файл {1} содержит следующие ошибки:" + :file.config/invalid-desc "Убедитесь, что конфигурация заключена в {}." + :file.config/invalid-title "Файл {1} некорректен." + :file.config/read-failed-desc "Убедитесь, что конфигурация заключена в {}. Также убедитесь, что символы '( { [' имеют соответствующие символы закрытия ') } ]'." + :file.config/read-failed-title "Ошибка при чтении файла {1}" + + :flashcard/add-query "Добавить новый запрос" + :flashcard/all-cards "Все карточки" + :flashcard/select-cards "Выбрать карточки" + :flashcard/shortcut-tooltip "Горячая клавиша: {1}" + + :flashcard.empty/desc "Вы можете добавить «{1}» к любому блоку, чтобы превратить его в карточку, или вызвать «/cloze», чтобы добавить пропуски." + :flashcard.empty/title "Добро пожаловать в Карточки" + + :flashcard.rating/again "Снова" + :flashcard.rating/again-desc "Мы ответили неправильно. Это автоматически означает, что мы забыли карточку. Это провал в памяти." + :flashcard.rating/easy "Легко" + :flashcard.rating/easy-desc "Ответ был правильным, и мы вспомнили его быстро и уверенно, без умственного усилия." + :flashcard.rating/good "Хорошо" + :flashcard.rating/good-desc "Ответ был правильным, но потребовалось некоторое умственное усилие, чтобы его вспомнить." + :flashcard.rating/hard "Трудно" + :flashcard.rating/hard-desc "Ответ был правильным, но мы не были в нём уверены или слишком долго его вспоминали." + + :flashcard.review/finished "Готово! 💯" + :flashcard.review/hide-answers "Скрыть ответы" + :flashcard.review/show-answers "Показать ответы" + :flashcard.review/show-clozes "Показать пропуски" + + :format/bold "Полужирный" + :format/code "Код" + :format/highlight "Выделение" + :format/italics "Курсив" + :format/strikethrough "Зачёркнутый" + + :graph/all-graphs "Все графы" + :graph/already-exists-error "Граф «{1}» уже существует. Попробуйте другое имя." + :graph/as-png "как PNG" + :graph/built-in-pages "Встроенные страницы" + :graph/charge-range "Диапазон заряда" + :graph/charge-strength "Сила заряда" + :graph/click-to-search "Нажмите для поиска" + :graph/create-db "Создать граф БД" + :graph/create-error "Не удалось создать граф" + :graph/create-new "Создать новый граф" + :graph/created-before "Создано до" + :graph/creating "Создание графа" + :graph/delete-local-action "Удалить локальный граф" + :graph/delete-local-confirm-desc "Вы уверены, что хотите окончательно удалить граф \"{1}\" из Logseq?" + :graph/delete-server-action "Удалить с сервера" + :graph/delete-server-confirm-desc "Вы уверены, что хотите окончательно удалить граф \"{1}\" с нашего сервера?" + :graph/delete-warning "⚠️ Обратите внимание, что после удаления мы не сможем восстановить этот граф. Перед удалением убедитесь, что у вас есть резервные копии." + :graph/diff "Git diff" + :graph/downloading "загрузка" + :graph/encrypt-data-label "Зашифровать данные графа" + :graph/excluded-pages "Исключённые страницы" + :graph/forces "Силы" + :graph/gc-success "Очистка графа выполнена успешно!" + :graph/last-opened-at-label "Последний раз открыт: {1}" + :graph/leave-action "Покинуть этот граф" + :graph/leave-confirm-desc "Вы уверены, что хотите покинуть этот граф?" + :graph/leave-error "Не удалось покинуть граф" + :graph/left "Граф покинут" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "ссылка" "ссылок"))) + :graph/link-distance "Расстояние связи" + :graph/local-graphs "Локальные графы" + :graph/n-hops-from-selected-nodes "Количество переходов от выбранных узлов" + :graph/name-placeholder "имя вашего графа" + :graph/nodes "Узлы" + :graph/orphan-pages "Изолированные страницы" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "страница" "страниц"))) + :graph/pause-simulation "Приостановить симуляцию" + :graph/preparing "подготовка" + :graph/refresh-remote-graphs "Обновить удалённые графы" + :graph/remote-graphs "Удалённые графы" + :graph/removed "Удален график «{1}»" + :graph/removed-and-redirecting "Удален график «{1}». Перенаправление на график «{2}»" + :graph/removed-from-sync "Граф удалён из синхронизации" + :graph/reset "Сбросить граф" + :graph/reset-forces "Сбросить силы" + :graph/search "Поиск" + :graph/shared-graphs "Общие графы" + :graph/updated-switching "Граф обновлён. Переключение..." + :graph/use-sync-beta "Использовать Logseq Sync (бета-тестирование)" + :graph/use-sync-label "Использовать Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Не удалось вычислить диагностику контрольной суммы графа." + :graph.diagnostics/checksum-recomputed-success "Контрольная сумма пересчитана. Пересчитанная: {1}, локальная: {2}, удалённая: {3}. Загружен файл {4}.edn с {5} блоками и атрибутами контрольной суммы {6}." + :graph.diagnostics/checksum-unavailable-warning "Не удалось вычислить диагностику контрольной суммы для текущего графа." + :graph.diagnostics/client-ops-export-failed-error "Не удалось экспортировать Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Ошибка экспорта Client ops SQLite: недопустимый тип payload {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite экспортирован: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Граф не найден." + + :graph.page/show-journals "Показать журналы" + :graph.page/title "Граф страницы" + + :graph.switch/add-graph-action "Да, добавить другой граф" + :graph.switch/empty-desc "Нет подходящих графов. Хотите добавить другой?" + :graph.switch/prompt "Переключить" + :graph.switch/select-prompt "Выберите граф" + + :graph.validation/config-arweave-gateway-warning "больше не поддерживается." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "больше не поддерживается. Пожалуйста, используйте '/' и сообщайте об ошибках." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "не используется в графах баз данных, так как существует только режим разметки." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Проверка обнаружила {1} недействительный блок (блоки). Эти блоки могут быть ошибочными. Попытка исправления недействительных блоков. Запустите проверку снова, чтобы увидеть, были ли они исправлены." + :graph.validation/name-reserved-characters-warning "Имя графа не может содержать следующие зарезервированные символы:" + :graph.validation/reserved-character-asterisk "звездочка" + :graph.validation/reserved-character-backslash "обратная косая черта" + :graph.validation/reserved-character-colon "двоеточие" + :graph.validation/reserved-character-double-quote "двойная кавычка" + :graph.validation/reserved-character-forward-slash "косая черта" + :graph.validation/reserved-character-greater-than "больше" + :graph.validation/reserved-character-hash "решетка" + :graph.validation/reserved-character-less-than "меньше" + :graph.validation/reserved-character-pipe "вертикальная черта или pipe" + :graph.validation/reserved-character-plus "плюс" + :graph.validation/reserved-character-question-mark "вопросительный знак" + :graph.validation/valid "Ваш граф действителен! {1}" + + :header/go-back "Назад" + :header/go-forward "Вперёд" + :header/highlight-recent-blocks "Подсвечивать недавние блоки" + :header/highlight-recent-blocks-days-ago "Подсвечивать недавние блоки: {1} дн. назад" + :header/more "Ещё" + :header/quit-highlight-recent-blocks "Прекратить подсветку недавних блоков" + :header/toggle-left-sidebar "Переключить левую панель" + + :help/about "О Logseq" + :help/about-title "О программе" + :help/ask-community "Спросить сообщество" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Ссылка на блок" + :help/blog "Блог Logseq" + :help/bug "Сообщить об ошибке на GitHub" + :help/changelog "Журнал изменений" + :help/community-title "Сообщество" + :help/context-menu "Контекстное меню блока" + :help/context-menu-action "Клик правой кнопкой по маркеру" + :help/development-title "Разработка" + :help/docs "Документация" + :help/feature "Запрос функции" + :help/forum-community "Сообщество на форуме" + :help/handbook "Руководство" + :help/learn-more "Подробнее" + :help/markdown-syntax "Markdown синтаксис" + :help/open-link-in-sidebar "Открыть ссылку на боковой панели" + :help/open-link-in-sidebar-action "Shift+клик по ссылке" + :help/privacy "Политика конфиденциальности" + :help/reference-autocomplete "Автодополнение ссылок на страницу" + :help/release-notes "Примечания к выпуску" + :help/roadmap "Дорожная карта" + :help/search "Поиск" + :help/slash-autocomplete "Слэш - автодополнение" + :help/start "Начало работы" + :help/submit-feedback "Отправить отзыв" + :help/support-forum "Форум поддержки" + :help/terms "Условия" + :help/terms-title "Условия" + :help/usage-title "Использование" + + :help.handbook/chat-on-discord "Чат в Discord" + :help.handbook/chat-on-discord-desc "Задавайте быстрые вопросы, знакомьтесь с другими пользователями и изучайте новые рабочие процессы." + :help.handbook/copy-topic-link "Скопировать ссылку на тему" + :help.handbook/current-chapter "Текущая глава" + :help.handbook/help-categories "Категории справки" + :help.handbook/home "Главная" + :help.handbook/link-copied "Ссылка на руководство скопирована!" + :help.handbook/monthly-posts "постов в месяц" + :help.handbook/next-chapter "Следующая глава" + :help.handbook/popular-topics "Популярные темы" + :help.handbook/prev-chapter "Предыдущая глава" + :help.handbook/resources-from "Ресурсы от {1}" + :help.handbook/search-placeholder "Поиск" + :help.handbook/shortcuts-count "{1} горячих клавиш" + :help.handbook/sync "Синхронизация" + :help.handbook/title "Справочник" + :help.handbook/topics "Темы" + :help.handbook/users-online "пользователей онлайн" + :help.handbook/visit-the-forum "Посетить форум" + :help.handbook/visit-the-forum-desc "Оставляйте отзывы, запрашивайте функции и ведите подробные обсуждения." + :help.handbook/writing-mode "Режим письма (предпросмотр по времени)" + + :help.shortcuts/desc "Показать горячие клавиши и подсказки" + :help.shortcuts/label "Сочетания клавиш" + :help.shortcuts/shortcut-column "Горячие клавиши" + :help.shortcuts/title "Сочетания клавиш" + :help.shortcuts/triggers "Действия" + + :icon/emojis-count "Эмодзи ({1})" + :icon/icons-count "Иконки ({1})" + :icon/matched-count "Найдено ({1})" + :icon/search-all "Искать всё" + :icon/search-emojis "Искать эмодзи" + :icon/search-icons "Искать иконки" + :icon/tab-all "Все" + :icon/tab-emojis "Эмодзи" + :icon/tab-icons "Иконки" + + :import/all-tags "Импортировать все теги" + :import/asset-too-large-warning "Копирование ресурса {1} пропущено, потому что он превышает лимит 100 MB." + :import/assets-import-partial "{1}/{2} ресурсов импортировано. Подробности в консоли." + :import/assets-imported "{1} ресурсов импортировано." + :import/assets-skipped "{1} ресурсов пропущено. Подробности в консоли." + :import/block-icons-cannot-be-imported "Значки блоков не могут быть импортированы. Импортируйте вручную в блоке {1}." + :import/cannot-import-block-into-non-block-entity "Невозможно импортировать блок в не-блочную сущность." + :import/db-edn-desc "Импорт EDN-экспорта графа БД в новый граф БД" + :import/db-edn-title "EDN в граф БД" + :import/debug-transit-desc "Импорт отладочного transit-файла в новый граф БД" + :import/debug-transit-title "Отладочный Transit" + :import/default-db-graph-behavior "Поведение графа БД по умолчанию" + :import/empty-graph-name "Имя графа не может быть пустым." + :import/extract-inline-code-snippets "Извлечь инлайн-код как подблоки" + :import/file-finished "Импорт завершён!" + :import/file-to-db-desc "Импорт папки файлового графа Logseq в новый граф БД" + :import/file-to-db-title "Файловый граф в граф БД" + :import/graph-name-conflict "Граф с таким именем уже существует. Выберите другое имя!" + :import/graph-name-placeholder "Имя графа" + :import/ignored-assets "{1} ресурсов пропущено при импорте. Подробности в консоли JavaScript." + :import/ignored-files "{1} файлов пропущено при импорте. Подробности в консоли JavaScript." + :import/ignored-properties "{1} свойств пропущено при импорте" + :import/ignored-properties-fix "Чтобы исправить тип свойства, измените значение на правильный тип и повторите импорт" + :import/invalid-blocks-detected "{1} недопустимых блоков обнаружено при импорте. Взаимодействие может не работать. Подробности в консоли JavaScript." + :import/invalid-edn-file "Предоставленный файл EDN недействителен. Исправьте и повторите." + :import/loading "Импорт" + :import/logseq-config-missing "Ошибка импорта: в графе Logseq нет файла 'logseq/config.edn'." + :import/new-graph-name "Новое имя графа" + :import/notes "Импортировать заметки" + :import/org-files-imported "{1} файлов Org импортировано как Markdown. Поддержка Org будет добавлена позже." + :import/page-icons-cannot-be-imported "Значки страниц не могут быть импортированы. Импортируйте вручную на странице {1}." + :import/properties-case-insensitive-commas "Имена свойств (без учёта регистра, через запятую)" + :import/property-classes-placeholder "напр. type" + :import/property-import-manually "Это свойство нужно импортировать вручную" + :import/property-parent-classes-placeholder "напр. parent" + :import/property-type-mismatch "Значение свойства имеет тип {1}, а не {2}" + :import/property-value-tag-parents "Импортировать родителей тегов из значений свойств" + :import/property-value-tags "Импортировать дополнительные теги из значений свойств" + :import/remove-inline-tags "Удалить инлайн-теги" + :import/select-edn-or-json "Выберите файл EDN или JSON." + :import/specific-tags "Импортировать конкретные теги" + :import/sqlite-and-assets-desc "Импорт zip-архива с db.sqlite и папкой assets" + :import/sqlite-and-assets-title "SQLite + файлы (.zip)" + :import/submitted-edn-invalid "Предоставленные данные EDN недействительны! Исправьте и повторите." + :import/successful "Импорт выполнен успешно!" + :import/tag-classes-placeholder "Тег1, Тег2" + :import/tags-case-insensitive "Теги (без учёта регистра)" + :import/title "Импорт" + :import/unexpected-error "Непредвиденная ошибка: {1}" + :import/zip-import-error "Не удалось импортировать ZIP-файл: {1}" + :import/zip-missing-db-sqlite "ZIP не содержит db.sqlite" + + :journal/add-blocks-to-today-success "Блоков добавлено сегодня" + :journal/page-cant-convert-warning "Эта страница не является страницей дневника." + :journal/parse-date-to-name-error "Не удалось разобрать имя дневника" + + :journal.default-query/doing "В РАБОТЕ" + :journal.default-query/todo "К ВЫПОЛНЕНИЮ" + + :keymap/all "Все" + :keymap/already-bound "Сочетание уже используется" + :keymap/also-used-for-action "Также используется для {1}" + :keymap/also-used-for-action-in-context "Также используется для {1} В контексте {2}" + :keymap/clear "Очистить" + :keymap/clear-keystroke-filter "Очистить фильтр нажатий" + :keymap/clear-search "Очистить поиск" + :keymap/custom "Пользовательские" + :keymap/deactivates-chord "Деактивирует сочетание" + :keymap/deactivates-chords "Деактивирует сочетания клавиш {1}." + :keymap/disabled "Отключённые" + :keymap/esc-is-reserved "Esc зарезервирован" + :keymap/hint-cancel "Отмена" + :keymap/hint-close "Закрыть" + :keymap/hint-reassign "Переназначить" + :keymap/hint-remove "Удалить" + :keymap/keystroke-filter "Фильтр по нажатию" + :keymap/no-matching-shortcuts "Нет соответствующих сочетаний" + :keymap/press-a-shortcut "Нажмите сочетание клавиш" + :keymap/press-keys-to-filter "Нажмите клавиши для фильтра" + :keymap/reassign "Переназначить" + :keymap/reassign-tooltip "Переназначить сочетание этого действия" + :keymap/reassigned-from "Переназначено с {1}" + :keymap/refresh-all "Обновить все" + :keymap/remove-binding "Удалить привязку" + :keymap/remove-filter "Удалить фильтр" + :keymap/reset "Сбросить" + :keymap/reset-to-default "Сбросить по умолчанию" + :keymap/search-by-keys "Поиск по клавишам" + :keymap/search-placeholder "Искать сочетания…" + :keymap/shortcut-added "Сочетание добавлено" + :keymap/shortcut-removed "Сочетание удалено" + :keymap/toggle-categories-pane "Переключить панель категорий" + :keymap/undo "Отмена" + :keymap/unset "Не задано" + :keymap/used-by-action "Используется {1}" + + :library/add-existing-pages "Добавить существующие страницы в Библиотеку" + :library/add-pages "Добавить страницы" + :library/title "Библиотека" + + :mobile/camera-access-denied "Доступ к камере запрещен. Включите его в Настройки > Logseq." + :mobile/microphone-access-denied "Доступ к микрофону запрещен. Включите его в Настройки > Logseq." + + :mobile.header/actions "Действия" + :mobile.header/create-graph "Создать граф" + :mobile.header/delete-block-confirm-desc "Удалить этот блок?" + :mobile.header/delete-page-confirm-desc "Удалить эту страницу?" + + :mobile.intent/file-options "Параметры файла" + :mobile.intent/open-with-app "Открыть файл в другом приложении" + :mobile.intent/select-option-prompt "Выберите действие" + :mobile.intent/share "Поделиться" + + :mobile.log/all "Все" + :mobile.log/errors-only "Только ошибки" + :mobile.log/full "Полный" + :mobile.log/new-first "Сначала новые" + :mobile.log/old-first "Сначала старые" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Аккаунт" + :mobile.settings/check-log "Журнал" + :mobile.settings/discord-community "Сообщество Discord" + :mobile.settings/forum "Форум" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Сообщить об ошибке" + :mobile.settings/revision "Ревизия" + :mobile.settings/theme "Тема" + :mobile.settings/version "Версия" + + :mobile.share/file-import-error "Не удалось импортировать файл" + :mobile.share/media-import-error "Не удалось импортировать медиа" + :mobile.share/unsupported-content-warning "Разбор текущего общего контента не поддерживается. Сообщите следующие коды на {1}. Мы скоро разберёмся." + :mobile.share/unsupported-import-type "Импорт файлов {1} не поддерживается. Вы можете сообщить об этом на {2}. Мы скоро разберёмся." + + :mobile.tab/capture "Захват" + :mobile.tab/go-to "Перейти" + :mobile.tab/graphs "Графы" + + :mobile.toolbar/audio "Аудио" + :mobile.toolbar/copy-ref "Скопировать ссылку" + :mobile.toolbar/copy-url "Скопировать URL" + :mobile.toolbar/hide "Скрыть" + :mobile.toolbar/indent "Отступ" + :mobile.toolbar/outdent "Убрать отступ" + :mobile.toolbar/photo "Фото" + :mobile.toolbar/redo "Повтор" + :mobile.toolbar/reference "Ссылка" + :mobile.toolbar/slash "Косая черта" + :mobile.toolbar/tag "Тег" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Отмена" + :mobile.toolbar/unselect "Снять выделение" + + :nav/all-files "Все файлы" + :nav/all-journals "Все дневники" + :nav/appearance "Внешний вид" + :nav/assets "Ресурсы" + :nav/cannot-go-to-internal-page "Невозможно перейти на внутреннюю страницу" + :nav/flashcards "Карточки" + :nav/graph "Граф" + :nav/graph-view "Визуальный граф" + :nav/help "Справка" + :nav/home "Главная" + :nav/invalid-jump-error "Недопустимый переход" + :nav/journals "Журналы" + :nav/plugins "Плагины" + :nav/search "Поиск" + :nav/settings "Настройки" + :nav/skip-to-main-content "Перейти к основному содержимому" + :nav/tasks "Задачи" + :nav/themes "Темы" + + :nav.all-pages/label "Все страницы" + :nav.all-pages/title "Все страницы" + + :node/built-in-cant-delete-error "Встроенные элементы нельзя удалить." + :node/new "Новый узел" + + :notification/clear-all "Очистить всё" + :notification/copied "Скопировано" + + :onboarding.import/desc "Описание импорта" + :onboarding.import/sqlite-desc "Импорт из базы данных SQLite" + :onboarding.import/title "Импорт" + + :onboarding.import-option/desc "Вы можете импортировать данные из других приложений" + :onboarding.import-option/title "Импорт данных" + + :onboarding.setup/desc "Рабочее пространство для ваших знаний" + :onboarding.setup/title (fn [] ["Добро пожаловать в " [:strong "Logseq!"]]) + + :page/add-to-favorites "Добавить в Избранное" + :page/added-tag-to-node "Добавлен тег «{1}» к «{2}»." + :page/backlinks "Обратные ссылки" + :page/clear "Очистить" + :page/clear-local-storage-desc "Это удаляет незначительные настройки, такие как предпочтение тёмной/светлой темы." + :page/cleared "Очищено" + :page/contents "Содержание" + :page/convert-to-tag "Преобразовать в тег" + :page/copy-url "Копировать URL страницы" + :page/create "Создать новую страницу" + :page/created-at "Создана" + :page/current-graph-as-sqlite-db "текущий граф как SQLite БД" + :page/default-query-error "Ошибка запроса по умолчанию:" + :page/delete "Удалить страницу" + :page/go-back-home "Вернуться на главную" + :page/hide-properties "Скрыть свойства" + :page/local-storage "локальное хранилище" + :page/logseq-is-having-a-problem "У Logseq возникла проблема. Чтобы попытаться вернуть его в рабочее состояние, пожалуйста, попробуйте выполнить следующие безопасные шаги по порядку:" + :page/make-private "Сделать приватной" + :page/make-public "Сделать доступной для публикации" + :page/moved-to-recycle "Узел перемещён в корзину" + :page/name "Имя страницы" + :page/no-page-found-to-copy "Не найдена страница для копирования" + :page/not-found "Страница не найдена" + :page/not-found-desc "К сожалению, запрашиваемая страница не существует." + :page/not-found-title "Страница не найдена" + :page/not-found-warning "Страница не найдена" + :page/open-all-graphs-desc "Вы также можете перейти в {{All graphs}} для переключения на другой граф." + :page/open-issue-desc "Если эти шаги не помогли решить проблему, пожалуйста, {{open an issue}}." + :page/open-properties "Открыть свойства" + :page/rebuild "Пересобрать" + :page/relaunch "Перезапустить" + :page/relaunch-desc "Закрыть и заново открыть приложение." + :page/scheduled-and-deadline "Запланировано и Крайний срок" + :page/search-index "индекс поиска" + :page/send-db-for-debugging "Вы можете отправить его на help@logseq.com для отладки." + :page/something-went-wrong "Что-то пошло не так" + :page/step "Шаг {1}" + :page/the-app "приложение" + :page/try "Попробовать" + :page/unfavorite "Удалить из Избранного" + :page/unknown "Неизвестная страница" + :page/updated-at "Обновлена" + + :page.convert/block-parent-not-page "Невозможно преобразовать блок. Родитель не является страницей." + :page.convert/cant-be-block "Страница «{1}» не может быть преобразована в блок." + :page.convert/cant-be-block-has-children "Страница «{1}» не может быть преобразована в блок, поскольку у нее есть дочерние страницы." + :page.convert/cant-be-block-move-first "Страница «{1}» не может быть преобразована в блок, сначала переместите ее на другую страницу." + :page.convert/page-to-tag-action "Преобразовать \"{1}\" в тег" + :page.convert/page-to-tag-built-in "Встроенные страницы не могут быть тегами" + :page.convert/page-to-tag-duplicate "Тег с именем «{1}» уже существует." + :page.convert/page-to-tag-namespaced "Страницы с пространством имён не могут быть тегами" + :page.convert/property-value-to-page "Невозможно преобразовать значение свойства в страницу." + :page.convert/tag-to-page-action "Преобразовать тег в страницу" + :page.convert/tag-to-page-built-in "Встроенные теги не могут быть страницами" + :page.convert/tag-to-page-confirm-desc "Преобразование тега в страницу также удалит его свойства и сам тег из всех узлов, помеченных этим тегом. Продолжить?" + :page.convert/tag-to-page-duplicate "Страница с названием «{1}» уже существует." + :page.convert/tag-to-page-has-children "Тег имеет дочерние элементы и не может быть преобразован" + + :page.delete/batch-confirm-title "Вы уверены, что хотите удалить эти страницы? Свойства и теги будут удалены навсегда, а страницы будут перемещены в Корзину." + :page.delete/confirm-title "Вы уверены, что хотите удалить эту страницу?" + :page.delete/permanent-confirm-title "Вы уверены, что хотите удалить эту страницу навсегда?" + :page.delete/success "Страница «{1}» успешно удалена!" + :page.delete/total "Всего: {1}" + :page.delete/warning "Содержимое этих страниц было удалено, но удалить их не удалось: {1}. Дополнительную информацию см. в консоли JavaScript." + + :page.validation/cant-set-built-in-tags "На новой странице нельзя устанавливать встроенные теги: {1}" + :page.validation/duplicate "Другая страница с названием «{1}» уже существует для тегов: {2}." + :page.validation/name-blank "Имя страницы не может быть пустым." + :page.validation/name-no-hash "Имя страницы не может содержать #" + :page.validation/name-no-slash "Имя страницы не может содержать /." + :page.validation/parents-must-be-pages "Родители страниц должны быть страницами." + + :pdf/annotations-page "Страница аннотаций" + :pdf/area-highlight-shortcut "Выделение области ({1})" + :pdf/auto-fit "Автомасштаб" + :pdf/auto-open-context-menu "Автоматически открывать контекстное меню" + :pdf/copy-ref "Копировать ссылку" + :pdf/copy-text "Копировать текст" + :pdf/corrupted-file-error "Ошибка: {1}\nФайл .pdf повреждён?\nПроверьте его с помощью внешней программы для просмотра PDF." + :pdf/doc-metadata "Метаданные документа" + :pdf/enter-to-search "Enter для поиска" + :pdf/find-results "{1} из {2} совпадений (\"{3}\")" + :pdf/generic-error "Ошибка: {1}\n{2}\nПроверьте ресурс PDF-файла." + :pdf/highlight-mode "Режим выделения" + :pdf/highlights "Выделения" + :pdf/hl-block-colored "Цветная метка для выделенного блока" + :pdf/linked-ref "Связанные ссылки" + :pdf/load-highlights-file-error "Ошибка: не удалось загрузить файл выделений: \"{1}\". \n{2}" + :pdf/missing-file-error "Ошибка: {1}\n Путь указан верно?" + :pdf/more-settings "Дополнительные настройки" + :pdf/no-outlines "Нет содержания" + :pdf/not-found "Не найдено." + :pdf/open-in-app-window "Открыть в окне приложения" + :pdf/open-in-external-window "Открыть во внешнем окне" + :pdf/outline "Содержание" + :pdf/page-label "Страница {1}" + :pdf/password-protected-desc "Этот документ защищён паролем. Введите пароль:" + :pdf/password-required "Требуется пароль" + :pdf/search "Поиск" + :pdf/search-placeholder "поиск" + :pdf/toggle-dashed "Пунктирный стиль для выделения области" + :pdf/viewer "просмотр PDF" + :pdf/zoom-in "Увеличить" + :pdf/zoom-out "Уменьшить" + + :plugin/all "Все" + :plugin/auto-update-check "Автоматически проверять обновления" + :plugin/auto-update-check-feedback "Автопроверка обновлений: {1}!" + :plugin/check-all-updates "Проверить все обновления" + :plugin/check-update "Проверить обновления" + :plugin/checked "Проверено" + :plugin/checking-for-updates "Проверка обновлений" + :plugin/contribute "✨ Написать и отправить новое расширение" + :plugin/custom-js-alert "Найден файл custom.js, выполнить его? (Если вы не понимаете содержание этого файла, рекомендуется не разрешать его выполнение, поскольку оно сопряжено с определенными рисками для безопасности)." + :plugin/date-added "Дата добавления" + :plugin/delete-alert "Вы уверены, что хотите удалить расширение [{1}]?" + :plugin/disable-for-performance-feedback "Плагин {1} отключён." + :plugin/disable-now "Отключить сейчас" + :plugin/disabled "Отключено" + :plugin/does-not-support-db "Не поддерживает графы БД" + :plugin/downloads "Загрузки" + :plugin/empty "Ничего не найдено." + :plugin/enabled "Включено" + :plugin/existed-package "Существующий пакет плагинов ({1})." + :plugin/fatal-error "Критическая ошибка: {1}" + :plugin/found-n-updates "{1} обновлений найдено" + :plugin/found-updates "Найдены обновления" + :plugin/install "Установить" + :plugin/install-error "Ошибка установки: {1}\n{2}" + :plugin/installed "Установлено" + :plugin/installed-plugin "Установленный плагин: {1}" + :plugin/installing "Установка" + :plugin/invalid-github-repo-url "Недопустимый URL репозитория GitHub" + :plugin/invalid-package "Недопустимый пакет" + :plugin/invalid-plugins-edn "Недопустимый plugins.edn" + :plugin/list-of-updates "Список обновлений" + :plugin/load-from-web-url "Загрузить по URL" + :plugin/load-plugin-indicator "Загрузка плагина: {1}..." + :plugin/load-unpacked "Загрузить распакованное расширение" + :plugin/loading-indicator "Загрузка" + :plugin/malformed-plugins-edn "Некорректный plugins.edn" + :plugin/marketplace "Каталог расширений" + :plugin/new-registered "Новый плагин зарегистрирован" + :plugin/no-settings-schema "Нет схемы настроек!" + :plugin/not-installed "Не установлено" + :plugin/open-logseq-dir "Открыть папку Logseq" + :plugin/open-package "Открыть пакет" + :plugin/open-preferences "Открыть настройки" + :plugin/open-settings "Открыть настройки" + :plugin/perf-tip "Плагин {1} загружается слишком долго, что влияет на время запуска приложения и может помешать загрузке других плагинов." + :plugin/popular "Популярные" + :plugin/proxy-check-success "Успеха! Статус {1} через {2}мс." + :plugin/readme-empty-warning "Нет содержимого README" + :plugin/refresh-lists "Обновить списки" + :plugin/reload "Перезагрузить" + :plugin/remote-error "Удалённая ошибка: {1}" + :plugin/report-modal-desc "Если какой-либо плагин недоступен или вы считаете, что он содержит вредоносный код, отправьте письмо на {1}. Укажите название плагина и URL его репозитория GitHub. Команда Logseq обычно реагирует в течение одного рабочего дня." + :plugin/report-security "Сообщить о проблеме безопасности" + :plugin/restart "Перезапустить приложение" + :plugin/search-plugin "Искать плагин" + :plugin/security-warning "Предупреждение безопасности" + :plugin/setting-not-handled "#Не обработано# {1}" + :plugin/settings-schema-error "Ошибка схемы настроек!" + :plugin/stars "Звёзды" + :plugin/supports-db "Поддержка БД" + :plugin/title "Название ({1})" + :plugin/uninstall "Удаление" + :plugin/unpacked "Распаковано" + :plugin/unpacked-tips "Выбрать папку для расширений" + :plugin/up-to-date "Это актуально {1}" + :plugin/update "Обновить" + :plugin/update-all-selected "Обновить все выбранные" + :plugin/update-all-success "Все плагины обновлены" + :plugin/update-available "Доступно обновление" + :plugin/update-plugin "Обновление плагина: {1} - {2}" + :plugin/updates-downloading "Загрузка обновлений" + :plugin/updating "Обновление" + + :plugin.install-from-file/menu-title "Установить из plugins.edn" + :plugin.install-from-file/notice "Следующие расширения заменят уже установленные:" + :plugin.install-from-file/success "Все расширения установлены!" + :plugin.install-from-file/title "Установить расширения из plugins.edn" + + :plugin.install-from-web-url/effect-label "эффект" + :plugin.install-from-web-url/repo-url-placeholder "URL репозитория GitHub" + :plugin.install-from-web-url/supports-note "URL-адреса поддерживают как репозитории GitHub, так и локальные серверы разработки. (Примеры: {1}, {2})" + :plugin.install-from-web-url/theme-label "тема" + + :plugin.package-config/detach-desc "Удаление только отсоединит плагин от Logseq и оставит исходную папку без изменений." + :plugin.package-config/parse-error "Не удалось разобрать конфигурацию пакета плагина." + :plugin.package-config/remove-error "Не удалось удалить повреждённый плагин." + :plugin.package-config/remove-external-success "Повреждённый плагин удалён из списка плагинов." + :plugin.package-config/remove-installed-success "Повреждённый плагин \"{1}\" удалён." + + :plugin.proxy/direct "Прямое подключение" + :plugin.proxy/system "Система" + :plugin.proxy/test-url "Проверить URL" + :plugin.proxy/testing "Проверка" + + :plugin.settings/edit-settings-json "Редактировать settings.json" + :plugin.settings/exit-code-mode "Выйти из режима кода" + :plugin.settings/title "Настройки плагинов" + + :plugin.themes/default-desc "Стандартная {1} тема Logseq." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} темы" + :plugin.themes/light-and-dark "светлые & тёмные темы" + + :profiler/input-fn-placeholder "введите имя функции" + :profiler/unregister "Отменить регистрацию" + + :property/add-choice "Добавить вариант" + :property/add-choices "Добавить варианты" + :property/add-description "Добавить описание" + :property/add-new "Добавить свойство" + :property/add-or-change "Добавить или изменить свойство" + :property/available-choices "Доступные варианты" + :property/change-tooltip "Изменить {1}" + :property/checkbox-state-mapping "Сопоставление состояний флажка" + :property/children-count "Дети ({1})" + :property/choices-count "{1} вариантов" + :property/choose-tag "Выбрать тег" + :property/choose-tags "Выбрать теги" + :property/clear-value "Очистить" + :property/configure "Настроить" + :property/convert-page-to-property "Преобразовать \"{1}\" в свойство" + :property/create-error "Не удалось создать свойство." + :property/default-value "Значение по умолчанию" + :property/delete-from-node "Удалить из узла" + :property/delete-from-node-confirm "Удалить это свойство из узла?" + :property/delete-from-tag "Удалить из тега" + :property/delete-from-tag-confirm "Удалить это свойство из тега?" + :property/description-placeholder "Введите описание" + :property/drag-to-reorder "Перетащите для изменения порядка" + :property/existing-values "Существующие значения" + :property/go-to-this-property "Перейти к странице свойства" + :property/hidden-properties "Скрытые свойства" + :property/hide-by-default "Скрывать по умолчанию" + :property/hide-choice-for-tag "Скрыть вариант для тега" + :property/hide-empty-value "Скрыть пустые значения" + :property/hide-for-tag "Скрыть для #{1}" + :property/hide-hidden-choices "Скрыть скрытые варианты" + :property/map-checked-to "Сопоставить отмеченное с" + :property/map-unchecked-to "Сопоставить неотмеченное с" + :property/more-settings "Дополнительные настройки" + :property/multiple-values "Множественные значения" + :property/multiple-values-confirm "Включить множественные значения?" + :property/name "Имя" + :property/name-placeholder "Имя свойства" + :property/nodes-with-property "Узлы со свойством" + :property/overdue "Просрочено" + :property/private-built-in-not-usable "Приватное встроенное свойство недоступно" + :property/select-choice "Выбрать вариант" + :property/select-property-placeholder "Выберите свойство" + :property/select-type-placeholder "Выберите тип свойства" + :property/self-reference "Самоссылка" + :property/set-default-choice "Установить вариант по умолчанию" + :property/set-default-value "Задать значение по умолчанию" + :property/set-icon "Установить значок" + :property/set-placeholder "Задать {1}" + :property/set-property "Установить свойство" + :property/set-tags "Установить теги" + :property/set-value "Установить значение" + :property/show-as-checkbox-on-node "Показать как флажок на узле" + :property/show-as-checkbox-on-tagged-nodes "Показать как флажок на узлах с тегом" + :property/show-hidden-choices "Показать скрытые варианты" + :property/skip-choosing-tag "Пропустить выбор тега" + :property/specify-node-tags "Указать теги узла" + :property/title-placeholder "Заголовок" + :property/type "Тип" + :property/type-change-warning "Изменение типа свойства сбрасывает некоторые настройки свойства." + :property/type-checkbox "Флажок" + :property/type-date "Дата" + :property/type-datetime "Дата/Время" + :property/type-locked-help "Тип заблокирован" + :property/type-node "Узел" + :property/type-number "Число" + :property/type-text "Текст" + :property/type-url "URL" + :property/ui-position "Позиция в UI" + :property/ui-position-block-below "Под блоком" + :property/ui-position-block-left "Слева от блока" + :property/ui-position-block-right "Справа от блока" + :property/ui-position-properties "Свойства" + :property/unset-property "Убрать свойство" + :property/update-success "Обновлено" + + :property.built-in/alias "Псевдоним" + :property.built-in/asset "Ресурс" + :property.built-in/asset-align "Выравнивание ресурса" + :property.built-in/asset-checksum "Контрольная сумма файла" + :property.built-in/asset-external-file-name "Внешнее имя файла" + :property.built-in/asset-external-url "Внешний URL" + :property.built-in/asset-height "Высота изображения" + :property.built-in/asset-last-visit-page "Последняя просмотренная страница" + :property.built-in/asset-remote-metadata "Удалённые метаданные файла" + :property.built-in/asset-resize-metadata "Метаданные масштабирования ресурса" + :property.built-in/asset-size "Размер файла" + :property.built-in/asset-type "Тип файла" + :property.built-in/asset-width "Ширина изображения" + :property.built-in/background-color "Цвет фона" + :property.built-in/built-in "Встроенный?" + :property.built-in/checkbox-display-properties "Свойства в виде флажков" + :property.built-in/choice-checkbox-state "Состояние флажка варианта" + :property.built-in/choice-classes "Классы вариантов" + :property.built-in/choice-exclusions "Исключения вариантов" + :property.built-in/class-bidirectional-property-title "Название двунаправленного свойства" + :property.built-in/class-enable-bidirectional "Включить двунаправленные свойства" + :property.built-in/class-extends "Расширяет" + :property.built-in/class-hide-from-node "Скрыть из узла" + :property.built-in/class-properties "Свойства тега" + :property.built-in/classes "Классы свойства" + :property.built-in/closed-value-property "Свойство с закрытым значением" + :property.built-in/code-lang "Режим кода" + :property.built-in/collapsed "Узел свёрнут?" + :property.built-in/created-at "Узел создан" + :property.built-in/created-by-ref "Узел создан пользователем" + :property.built-in/created-from-property "Создано из свойства" + :property.built-in/deadline "Крайний срок" + :property.built-in/default-value "Значение по умолчанию" + :property.built-in/deleted-at "Удалено" + :property.built-in/deleted-by-ref "Удалено пользователем" + :property.built-in/description "Описание" + :property.built-in/enable-history "Включить историю свойства" + :property.built-in/exclude-from-graph-view "Исключить из представления графа?" + :property.built-in/fsrs-due "Срок" + :property.built-in/fsrs-state "Состояние" + :property.built-in/heading "Заголовок" + :property.built-in/hide "Скрыть это свойство или страницу" + :property.built-in/hide-empty-value "Скрыть пустое значение" + :property.built-in/history-block "Блок истории" + :property.built-in/history-property "Свойство истории" + :property.built-in/history-ref-value "Значение истории" + :property.built-in/history-scalar-value "Скалярное значение истории" + :property.built-in/icon "Иконка" + :property.built-in/journal-day "Дата журнала" + :property.built-in/journal-title-format "Формат заголовка" + :property.built-in/link "Узел ссылается на" + :property.built-in/linked-references-excludes "Исключённые ссылки" + :property.built-in/linked-references-includes "Включённые ссылки" + :property.built-in/ls-type "Тип LS" + :property.built-in/node-display-type "Тип отображения узла" + :property.built-in/order "Порядок узла" + :property.built-in/order-list-type "Тип списка" + :property.built-in/page "Страница узла" + :property.built-in/page-tags "Теги страницы" + :property.built-in/parent "Родитель узла" + :property.built-in/priority "Приоритет" + :property.built-in/public "Свойство публичное?" + :property.built-in/publish-published-url "Опубликованный URL" + :property.built-in/publishing-public "Публично для публикации?" + :property.built-in/query "Запрос" + :property.built-in/reaction-emoji-id "Эмодзи реакции" + :property.built-in/reaction-target "Цель реакции" + :property.built-in/recycle-original-order "Исходный порядок в корзине" + :property.built-in/recycle-original-page "Исходная страница в корзине" + :property.built-in/recycle-original-parent "Исходный родитель в корзине" + :property.built-in/refs "Ссылки узла" + :property.built-in/repeat-checked-property "Повторяемое отмеченное свойство" + :property.built-in/repeat-recur-frequency "Частота повторения" + :property.built-in/repeat-recur-unit "Единица повторения" + :property.built-in/repeat-repeated "Узел повторяется?" + :property.built-in/repeat-temporal-property "Повторяемое временное свойство" + :property.built-in/scalar-default-value "Значение по умолчанию нессылочного типа" + :property.built-in/scheduled "Запланировано" + :property.built-in/status "Статус" + :property.built-in/sync-large-title-object "Ссылка на большой заголовок блока в удалённом хранилище" + :property.built-in/table-filters "Фильтры представления" + :property.built-in/table-hidden-columns "Скрытые столбцы представления" + :property.built-in/table-ordered-columns "Порядок столбцов представления" + :property.built-in/table-pinned-columns "Закреплённые столбцы таблицы" + :property.built-in/table-sized-columns "Настройки столбцов представления" + :property.built-in/table-sorting "Сортировка представления" + :property.built-in/tags "Теги" + :property.built-in/template-applied-to "Применить шаблон к тегам" + :property.built-in/title "Заголовок узла" + :property.built-in/type "Тип свойства" + :property.built-in/ui-position "Положение свойства" + :property.built-in/updated-at "Узел обновлён" + :property.built-in/used-template "Использованный шаблон" + :property.built-in/user-avatar "Аватар пользователя" + :property.built-in/user-email "Email пользователя" + :property.built-in/user-name "Имя пользователя" + :property.built-in/value "Значение свойства" + :property.built-in/view-context "Контекст представления свойства" + :property.built-in/view-feature-type "Тип функции представления" + :property.built-in/view-for "Это представление принадлежит" + :property.built-in/view-group-by-property "Группировка представления по свойству" + :property.built-in/view-sort-groups-by-property "Сортировка групп представления по" + :property.built-in/view-sort-groups-desc "Сортировка групп по убыванию" + :property.built-in/view-type "Тип представления" + + :property.choice/already-exists "Вариант уже существует." + :property.choice/cant-delete-built-in "Встроенный вариант нельзя удалить." + :property.choice/invalid "Неверный выбор «{1}» для этого свойства: {2}." + + :property.color/blue "синий" + :property.color/green "зелёный" + :property.color/purple "фиолетовый" + :property.color/red "красный" + :property.color/yellow "жёлтый" + + :property.priority/high "Высокий" + :property.priority/low "Низкий" + :property.priority/medium "Средний" + :property.priority/urgent "Срочный" + + :property.repeat/date "Дата повтора" + :property.repeat/datetime "Дата и время повтора" + :property.repeat/every "Каждый" + :property.repeat/is-label "это:" + :property.repeat/task "Повторяющаяся задача" + :property.repeat/when "Когда" + + :property.repeat-recur-unit/day "День" + :property.repeat-recur-unit/hour "Час" + :property.repeat-recur-unit/minute "Минута" + :property.repeat-recur-unit/month "Месяц" + :property.repeat-recur-unit/week "Неделя" + :property.repeat-recur-unit/year "Год" + + :property.status/backlog "Бэклог" + :property.status/canceled "Отменено" + :property.status/doing "В работе" + :property.status/done "Выполнено" + :property.status/in-review "На проверке" + :property.status/todo "К выполнению" + + :property.validation/cant-convert-to-number "Невозможно преобразовать «{1}» в число." + :property.validation/cant-remove-required "Обязательное свойство нельзя удалить." + :property.validation/cant-set-self-value "Нельзя установить как собственное значение свойства." + :property.validation/duplicate "Свойство '{1}' уже существует." + :property.validation/invalid-name "Это недопустимое имя свойства. Имя свойства не может начинаться с символов ссылки на страницу «#» или «[[»." + :property.validation/invalid-value "Свойство «{1}» имеет недопустимое значение: {2}." + :property.validation/many-to-one "Невозможно преобразовать свойство с множественными значениями в единственное." + :property.validation/protected "Это свойство защищено и не может быть изменено." + + :property.view-type/gallery "Галерея" + :property.view-type/list "Список" + :property.view-type/table "Таблица" + + :publish/action "Опубликовать" + :publish/dialog-desc "При желании защитите эту страницу паролем. Оставьте пустым для публичного доступа." + :publish/dialog-title "Публикация страницы" + :publish/invalid-page-error "Недопустимая страница" + :publish/password-optional-placeholder "Пароль (необязательно)" + :publish/publish-error "Ошибка публикации" + :publish/published-to "Опубликовано в {1}" + :publish/publishing "Публикация..." + :publish/unpublish "Снять с публикации" + :publish/unpublish-error "Не удалось снять публикацию" + :publish/unpublish-missing-page-id "Снять публикацию: отсутствует ID страницы" + :publish/unpublished "Публикация снята" + + :query/advanced-results "Результаты расширенного запроса" + :query/custom-view-error "Ошибка пользовательского представления: {1}" + :query/error "Ошибка запроса:" + :query/examples-desc "Больше примеров в {{Queries documentation}}." + :query/examples-title "Примеры запросов:" + :query/results-for "Результаты для {1}" + + :query.builder/add-filter-or-operator-placeholder "Добавить фильтр/оператор" + :query.builder/between-end-label "Конечная дата" + :query.builder/between-journal-label "между: {1} ~ {2}" + :query.builder/between-start-label "Начальная дата" + :query.builder/created-label "Создано" + :query.builder/filter "Фильтр" + :query.builder/filter-full-text-search-label "Полнотекстовый поиск" + :query.builder/filter-page-label "Страница" + :query.builder/filter-page-reference-label "Ссылка на страницу" + :query.builder/filter-sample-label "Пример" + :query.builder/operator-and-label "и" + :query.builder/operator-not-label "не" + :query.builder/replace-with-label "Заменить на:" + :query.builder/search-label "Поиск: {1}" + :query.builder/show-built-in-properties "Показывать встроенные свойства" + :query.builder/unwrap-operator "Развернуть" + :query.builder/updated-label "Обновлено" + :query.builder/wrap-filter-with-label "Обернуть этот фильтр:" + + :reference/blocks "Ссылка на блок" + :reference/copy "Копировать ссылку" + :reference/delete "Удалить эту ссылку" + :reference/page-filter "Фильтр страниц" + :reference/replace-with-embed "Заменить вставкой" + :reference/replace-with-text "Заменить текстом" + + :reference.filter/directions "Направления фильтра" + :reference.filter/excludes "Исключения" + :reference.filter/includes "Включения" + :reference.filter/search-placeholder "Поиск в связанных страницах" + :reference.filter/title "Фильтр" + + :search/blank-input "Пустой ввод" + :search/full-text-placeholder "Полнотекстовый поиск" + :search/index-progress "Индексация {1}%" + :search/indices-rebuilt-success "Индексы поиска успешно перестроены!" + :search/no-result "Нет результатов" + :search/result-count "{1} результатов" + + :search.find-in-page/input-placeholder "Найти на странице" + :search.find-in-page/match-case "С учётом регистра" + :search.find-in-page/next-result "Следующий результат" + :search.find-in-page/previous-result "Предыдущий результат" + + :select/default-prompt "Выберите" + :select/default-select-multiple "Выберите один или несколько" + :select/new-option "+ Новая опция: {1}" + + :server/error-notification "[Сервер] {1}" + :server/mcp-url-copied "URL MCP скопирован" + :server/start "Запустить" + :server/stop "Остановить" + :server/title "HTTP API сервер" + + :server.config/auto-start-label "Запускать автоматически" + :server.config/port-label "Диапазон портов" + :server.config/reset "Сбросить" + :server.config/save-and-apply "Сохранить и применить" + :server.config/title "Настройки сервера" + + :server.status/closed "Закрыт" + :server.status/closing "Закрытие" + :server.status/error "Ошибка" + :server.status/running "Запущен" + :server.status/starting "Запуск" + :server.status/stopped "Остановлен" + + :server.token/add-new "Добавить новый токен" + :server.token/name-placeholder "Имя сервера" + :server.token/regenerate-value "Пересоздать значение токена" + :server.token/title "Токены авторизации" + :server.token/update-success "Токены обновлены" + :server.token/value-placeholder "Значение" + + :settings/account "Аккаунт" + :settings/advanced "Продвинутые" + :settings/ai "ИИ" + :settings/collaboration "Совместная работа" + :settings/editor "Редактор" + :settings/encryption "Шифрование" + :settings/features "Функции" + :settings/general "Общие" + :settings/keymap "Горячие клавиши" + :settings/plugins "Настройки плагинов" + + :settings.account/storage-usage "{1}ГБ из {2}ГБ общего хранилища ({3})" + :settings.account/synced-graphs "{1} из {2} синхронизированных графиков ({3})" + + :settings.advanced/auto-chmod "Авто chmod" + :settings.advanced/auto-chmod-desc "Автоматически устанавливать права файлов" + :settings.advanced/auto-updater "Обновлять автоматически" + :settings.advanced/developer-mode "Режим разработчика" + :settings.advanced/developer-mode-desc "Режим разработчика помогает людям, участвующим в разработке расширений, более эффективно тестировать свои интеграции с Logseq" + :settings.advanced/disable-sentry "Отправлять данные использования и диагностики в Logseq" + :settings.advanced/disable-sentry-desc "Logseq никогда не будет собирать вашу локальную базу данных графов или продавать ваши данные" + :settings.advanced/network-proxy "Прокси-сервер" + + :settings.ai/enable-mcp-server "Включить сервер MCP" + :settings.ai/enable-mcp-server-desc "Включить сервер MCP для интеграции с ИИ" + + :settings.editor/auto-expand-block-refs "Автораскрытие ссылок на блоки" + :settings.editor/auto-expand-block-refs-tip "Автоматически раскрывать ссылки на блоки при нажатии" + :settings.editor/custom-date-format "Формат даты" + :settings.editor/enable-all-pages-public "При публикации все страницы становятся публичными" + :settings.editor/enable-shortcut-tooltip "Всплывающие подсказки горячих клавиш" + :settings.editor/enable-tooltip "Включить подсказки" + :settings.editor/preferred-outdenting "Логические отступы" + :settings.editor/preferred-outdenting-tip "Подсказка по отступам" + :settings.editor/preferred-outdenting-tip-more "→ Подробнее об отступах" + :settings.editor/preferred-pasting-file "Предпочтительнее вставлять файл" + :settings.editor/preferred-pasting-file-hint "Подсказка по вставке файлов" + :settings.editor/show-brackets "Показывать скобки" + :settings.editor/show-full-blocks "Показать все строки в ссылке на блок" + :settings.editor/spell-checker "Проверка орфографии" + :settings.editor/wide-mode "Широкий режим" + + :settings.features/enable-flashcards "Включить карточки" + :settings.features/enable-journals "Журналы" + :settings.features/home-default-page "Установить домашнюю страницу по умолчанию" + :settings.features/home-default-page-update-success "Домашняя страница обновлена" + :settings.features/journals-enable-success "Дневники включены" + :settings.features/login-prompt "Чтобы получить доступ к новым функциям раньше других, вы должны быть открытым коллективным спонсором или сторонником Logseq и, следовательно, войти в систему первым." + :settings.features/page-not-found "Страница «{1}» пока не существует. Сначала создайте эту страницу, а затем повторите попытку." + :settings.features/plugin-system "Система плагинов" + + :settings.general/accent-color "Акцентный цвет" + :settings.general/accent-color-alert "Предупреждение о цвете" + :settings.general/accent-color-logseq "Классический цвет Logseq" + :settings.general/accent-color-none-desc "Отменить цвет акцента. В настоящее время находится на бета-этапе и в основном используется для совместимости с пользовательскими темами." + :settings.general/changelog "Журнал изменений" + :settings.general/check-for-updates "Проверить обновления" + :settings.general/current-revision-label "Текущая ревизия" + :settings.general/current-version "Версия" + :settings.general/custom-configuration "Пользовательская конфигурация" + :settings.general/custom-global-configuration "Глобальная пользовательская конфигурация" + :settings.general/custom-theme "Пользовательская тема" + :settings.general/edit-config-edn "Редактировать config.edn" + :settings.general/edit-custom-css "Редактировать custom.css" + :settings.general/edit-export-css "Редактировать export.css" + :settings.general/edit-global-config-edn "Редактировать глобальный config.edn" + :settings.general/editor-font "Шрифт редактора" + :settings.general/editor-font-set-global "Установить как глобальный шрифт" + :settings.general/export-theme "Экспорт темы" + :settings.general/language "Язык" + :settings.general/native-titlebar "Нативный заголовок окна" + :settings.general/native-titlebar-desc "Использовать нативный заголовок окна системы" + :settings.general/refresh-required-feedback "Требуется обновление" + :settings.general/release-channel "канал релизов" + :settings.general/revision "Ревизия: {1}" + :settings.general/theme-dark "Тёмная" + :settings.general/theme-light "Светлая" + :settings.general/theme-system "Системная" + + :settings.sync-server/clear-success "URL сервера синхронизации очищен. Будет использован официальный Logseq Sync." + :settings.sync-server/reset "Сбросить по умолчанию" + :settings.sync-server/save-success "URL сервера синхронизации сохранён." + :settings.sync-server/url "URL сервера синхронизации" + :settings.sync-server/url-desc "Укажите пользовательский HTTPS URL сервера синхронизации для self-hosted режима. Ваши токены аутентификации Logseq будут отправляться на этот сервер, поэтому используйте только доверенный URL. Оставьте поле пустым, чтобы использовать официальный Logseq Sync." + :settings.sync-server/url-invalid-error "URL должен начинаться с https:// или http://" + + :shell/input-command-title "Введите команду" + + :shortcut.category/basics "Базовые" + :shortcut.category/block-command-editing "Команды редактирования блока" + :shortcut.category/block-editing "Общее редактирование блока" + :shortcut.category/block-selection "Выделение блоков (Esc для отмены)" + :shortcut.category/formatting "Форматирование" + :shortcut.category/navigating "Навигация" + :shortcut.category/others "Разное" + :shortcut.category/plugins "Плагины" + :shortcut.category/toggle "Переключатели" + + :sidebar.left/favorites "Избранное" + :sidebar.left/navigations "Навигация" + :sidebar.left/recent-pages "Недавнее" + + :sidebar.right/close "Закрыть панель" + :sidebar.right/close-all "Закрыть все панели" + :sidebar.right/close-others "Закрыть другие панели" + :sidebar.right/collapse "Свернуть панель" + :sidebar.right/collapse-all "Свернуть все панели" + :sidebar.right/collapse-others "Свернуть другие панели" + :sidebar.right/expand "Развернуть панель" + :sidebar.right/expand-all "Развернуть все панели" + :sidebar.right/more "Ещё" + :sidebar.right/open "Открыть на боковой панели" + :sidebar.right/open-as-page "Открыть как страницу" + :sidebar.right/resize-handle "Изменение размера правой боковой панели" + :sidebar.right/toggle "Переключить правую панель" + + :storage/invalid-data-writing "Недопустимая запись данных." + :storage/sqlitedb-error "Ошибка SQLiteDB: {1}" + :storage/sqlitedb-import-error "Ошибка импорта SQLiteDB: {1}" + :storage/sqlitedb-save-error "Ошибка сохранения SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Блок удален {1}" + :storage.recycle/empty "Корзина пуста." + :storage.recycle/page-deleted-at "Страница удалена {1}" + :storage.recycle/readonly "Корзина (только чтение)" + :storage.recycle/restore "Восстановить" + :storage.recycle/retention-desc "Удалённые страницы и блоки остаются здесь, пока их не восстановят или они не будут автоматически очищены через 30 дней." + :storage.recycle/title "Корзина" + + :sync/assets-downloading-count "Загрузка активов ({1})" + :sync/assets-uploading-count "Загрузка активов ({1})" + :sync/creating-remote-graph "Создание удалённого графа..." + :sync/downloading "Загрузка..." + :sync/downloading-graph "Загрузка {1} ..." + :sync/graph-count-exceed-limit "Превышен лимит количества графов" + :sync/invitation-sent "Приглашение отправлено" + :sync/last-synced-time-label "Последняя синхронизация: {1}" + :sync/more-debug-info "Больше отладочной информации" + :sync/offline "Офлайн" + :sync/online "Онлайн" + :sync/pending-local-changes "ожидающие локальные изменения" + :sync/pending-server-changes "ожидающие изменения на сервере" + :sync/something-wrong "Ошибка синхронизации" + :sync/start-sync "Запустить синхронизацию" + :sync/storage-exceed-limit "Превышен лимит хранилища" + :sync/uploading "Отправка..." + :sync/user-doesnt-exist-yet "Пользователь ещё не существует" + + :theme/logseq-default "Тема Logseq по умолчанию" + :theme/switch-to "Переключиться на тему {1}" + + :ui/all-done "Всё готово" + :ui/apply "Применить" + :ui/cancel "Отмена" + :ui/close "Закрыть" + :ui/configure "Настроить" + :ui/confirm "Подтвердить" + :ui/copy "Копировать" + :ui/copy-all "Скопировать всё" + :ui/copy-to-clipboard "Копировать в буфер обмена" + :ui/create "Создать" + :ui/date-natural-language-placeholder "напр. На следующей неделе" + :ui/delete "Удалить" + :ui/deleted "Удалено" + :ui/dont-remind-me-again "Больше не напоминать" + :ui/empty "Пусто" + :ui/error "Ошибка" + :ui/error-boundary-error "Ошибка перехвачена интерфейсом!\n {1}" + :ui/export "Экспорт" + :ui/false "Ложь" + :ui/fix "Исправить!" + :ui/frequently-used "Часто используемые" + :ui/from "От: " + :ui/host "Хост" + :ui/image "изображение" + :ui/label "Метка" + :ui/link "Ссылка" + :ui/load-more "Загрузить ещё" + :ui/loading "Загрузка" + :ui/login "Войти" + :ui/logout "Выйти" + :ui/off "Выключено" + :ui/on "Включено" + :ui/open "Открыть" + :ui/open-named "Открыть {1}" + :ui/port "Порт" + :ui/refresh "Обновить" + :ui/relaunch-confirm "Чтобы применить это изменение, нужно перезапустить приложение. Перезапустить сейчас?" + :ui/remove-background "Удалить фон" + :ui/reset "Сбросить" + :ui/run "Запустить" + :ui/save "Сохранить" + :ui/show-less "Показать меньше" + :ui/show-more "Показать больше" + :ui/skip "Пропустить" + :ui/submit "Отправить" + :ui/to "До: " + :ui/toggle-theme "Переключить тему" + :ui/true "Истина" + :ui/type "Тип" + :ui/untitled "Без названия" + :ui/use-current-time "Использовать текущее время" + :ui/yes "Да" + + :updater/checking-for-updates "Проверка обновлений" + :updater/downloading-progress "Загрузка обновления ({1}%)" + :updater/quit-and-install "Перезапустить и установить" + :updater/up-to-date "Приложение обновлено 🎉" + :updater/update-available "Доступно обновление" + :updater/update-error "⚠️ Упс, что-то пошло не так!\nПожалуйста, проверьте {1}." + :updater/update-ready-to-install "Обновление готово к установке" + + :view/add-new-view "Добавить представление" + :view/all "Все" + :view/export-edn "Экспортировать EDN" + :view/linked-references "Связанные ссылки" + :view/new "Новый" + :view/new-property "Новое свойство" + :view/new-view "Новое представление" + :view/rename "Переименовать" + :view/results "Результаты:" + :view/unlinked-references "Несвязанные ссылки" + + :view.filter/custom-date "Пользовательская дата" + :view.filter/empty "Пусто" + :view.filter/filter "Фильтр" + :view.filter/from "От" + :view.filter/is-empty "Пусто" + :view.filter/is-not-empty "Не пусто" + :view.filter/match "Совпадение" + :view.filter/match-all-filters "Соответствовать всем фильтрам" + :view.filter/match-any-filter "Соответствовать любому фильтру" + :view.filter/operator-after "После" + :view.filter/operator-before "До" + :view.filter/operator-between "Между" + :view.filter/operator-date-after "Дата после" + :view.filter/operator-date-before "Дата до" + :view.filter/operator-is "Равно" + :view.filter/operator-is-not "Не равно" + :view.filter/operator-text-contains "Текст содержит" + :view.filter/operator-text-not-contains "Текст не содержит" + :view.filter/or "Или" + :view.filter/relative-1-day-ago "1 день назад" + :view.filter/relative-1-month-ago "1 месяц назад" + :view.filter/relative-1-week-ago "1 неделю назад" + :view.filter/relative-1-year-ago "1 год назад" + :view.filter/relative-3-days-ago "3 дня назад" + :view.filter/relative-3-months-ago "3 месяца назад" + :view.filter/to "До" + :view.filter/type-to-search "Введите для поиска" + + :view.table/ascending "По возрастанию" + :view.table/columns-visibility "Видимость столбцов" + :view.table/default-title "{1} узлов" + :view.table/delete-sort "Удалить сортировку" + :view.table/descending "По убыванию" + :view.table/drag-to-reorder "Перетащите для изменения порядка" + :view.table/group-by "Группировать по" + :view.table/group-journal-date "Дата журнала" + :view.table/group-page-created-date "Дата создания страницы" + :view.table/group-page-name "Название страницы" + :view.table/group-page-updated-date "Дата обновления страницы" + :view.table/live-query-title "Живой запрос ({1})" + :view.table/name-column "Имя" + :view.table/no-group-value "Нет {1}" + :view.table/page "Страница" + :view.table/pages "Страницы" + :view.table/pin "Закрепить" + :view.table/row-number "Номер строки" + :view.table/select-all "Выбрать всё" + :view.table/select-column "Выбрать столбец" + :view.table/select-order "Выбрать порядок" + :view.table/select-row "Выбрать строку" + :view.table/selected-count "Выбрано: {1}" + :view.table/sort-ascending "По возрастанию" + :view.table/sort-descending "По убыванию" + :view.table/sort-groups-by "Сортировать группы по" + :view.table/sort-groups-order "Порядок групп" + :view.table/total-refs-count "Всего ссылок" + :view.table/unpin "Открепить" + + :window/close "Закрыть окно" + :window/exit-fullscreen "Выйти из полноэкранного режима" + :window/maximize "Развернуть" + :window/minimize "Свернуть" + :window/restore "Восстановить" + + :youtube/embed-first-reminder-mobile "Сначала встройте видео YouTube, а затем используйте этот значок.\nПомните: вы можете вставить исходный URL YouTube как встроенное видео на мобильное устройство." + :youtube/player-not-ready "Проигрыватель YouTube еще не готов." + :youtube/timestamps-not-available-mobile "Временные метки YouTube еще не доступны на мобильных устройствах." + + :zotero/attachments "Вложения" + :zotero/imported-file-warning "Это импортированный файл Zotero, укажите каталог данных Zotero, чтобы открыть файл в Logseq." + :zotero/linked-file-warning "Это связанный файл Zotero, укажите базовый каталог связанных вложений Zotero, чтобы открыть файл в Logseq." + :zotero/notes "Заметки" +} diff --git a/src/resources/dicts/sk.edn b/src/resources/dicts/sk.edn index e036723830..bad4a21e51 100644 --- a/src/resources/dicts/sk.edn +++ b/src/resources/dicts/sk.edn @@ -1,457 +1,1861 @@ -{:accessibility/skip-to-main-content "Preskočiť na hlavný obsah" - :handbook/title "Pomoc" - :handbook/topics "Témy" - :handbook/popular-topics "Populárne témy" - :handbook/help-categories "Kategórie pomoci" - :handbook/search "Hľadať" - :handbook/home "Domov" - :handbook/settings "Nastavenia" - :handbook/close "Zavrieť" - :on-boarding/importing-main-title "Import existujúcich poznámok" - :on-boarding/importing-main-desc "Môžete to urobiť aj neskôr v aplikácii." - :on-boarding/importing-title "Už máte poznámky, ktoré chcete importovať?" - :on-boarding/importing-desc "Ak sú vo formáte EDN alebo Markdown, Logseq s nimi môže pracovať." - :on-boarding/main-title (fn [] ["Vitajte v " [:strong "Logseq!"]]) - :on-boarding/main-desc "Najprv musíte vybrať adresár, kde Logseq bude ukladať vaše myšlienky, nápady, poznámky." - :bug-report/main-title "Hlásenie o chybe" - :bug-report/clipboard-inspector-title "Inšpektor údajov zo schránky" - :bug-report/main-desc "Môžete nám pomôcť tým, že podáte správu o chybe? Čo najskôr to vyriešime." - :bug-report/section-clipboard-title "Súvisí chyba, na ktorú ste narazili, s týmito funkciami?" - :bug-report/section-clipboard-desc "Pomocou týchto praktických nástrojov nám môžete poskytnúť ďalšie informácie." - :bug-report/section-clipboard-btn-title "Pomocník schránky" - :bug-report/section-clipboard-btn-desc "Skotrolujte a zbierajte údaje zo schránky" - :bug-report/section-issues-title "Alebo ..." - :bug-report/section-issues-desc "Ak nie sú k dispozícii žiadne nástroje na zhromaždenie ďalších informácií, prosím, nahláste chybu priamo." - :bug-report/section-issues-btn-title "Odoslať hlásenie o chybe" - :bug-report/section-issues-btn-desc "Pomôžte vylepšiť Logseq!" - :bug-report/inspector-page-desc-1 "Stlačením klávesovej skratky Ctrl+V / ⌘+V vložíte dáta zo schránky pre kontrolu" - :bug-report/inspector-page-desc-2 "alebo sem kliknite pre vloženie, ak používate mobilnú verziu" - :bug-report/inspector-page-placeholder "Ak používate mobilné zariadenie, obsah schránky vložíte dlhým stlačením tu" - :bug-report/inspector-page-tip "Niečo nie je v poriadku? Žiadny problém, kliknite na tlačidlo Späť pre návrat na predchádzajúci krok." - :bug-report/inspector-page-btn-back "Späť" - :bug-report/inspector-page-btn-copy "Kopírovať výsledok" - :bug-report/inspector-page-copy-notif "Skopírované do schránky!" - :bug-report/inspector-page-btn-create-issue "Vytvoriť problém" - :bug-report/inspector-page-desc-clipboard "Toto sú údaje prečítané zo schránky." - :bug-report/inspector-page-desc-copy "Ak je ich zdieľanie v poriadku, kliknite na tlačidlo Kopírovať." - :bug-report/inspector-page-desc-create-issue "Teraz môžete nahlásiť výsledok vložený do vašej schránky. Prosím, vložte výsledek do sekcie 'Dodatočný kontext' a uveďte, odkiaľ ste skopírovali pôvodný obsah. Ďakujeme!" - :help/title-usage "Použitie" - :help/title-community "Komunita" - :help/title-development "Vývoj" - :help/title-about "O nás" - :help/title-terms "Podmienky" - :help/start "Začíname" - :help/about "O Logseq" - :help/roadmap "Plán vývoja" - :help/bug "Nahlásiť chybu" - :help/feature "Požadovať novú funkciu" - :help/changelog "Prehľad zmien" - :help/docs "Dokumentácia" - :help/privacy "Zásady ochrany osobných údajov" - :help/terms "Podmienky používania" - :help/forum-community "Komunitné fórum" - :help/shortcuts "Klávesové skratky" - :help/shortcuts-triggers "Akcie" - :help/shortcut "Skratka" - :help/search "Vyhľadať stránky/bloky/príkazy" - :help/slash-autocomplete "Automatické dopĺňanie s lomítkom" - :help/reference-autocomplete "Automatické dopĺňanie referencie na stránku" - :help/block-reference "Referencia na blok" - :help/open-link-in-sidebar "Otvoriť odkaz v bočnom paneli" - :search-item/page "Stránka" - :search-item/no-result "Žiadne zhody" - :help/context-menu "Kontextové menu bloku" - :bold "Tučné" - :italics "Kurzíva" - :highlight "Zvýrazniť" - :strikethrough "Prečiarknuté" - :code "Kód" - :untitled "Bez názvu" - :right-side-bar/help "Pomoc" - :right-side-bar/switch-theme "Motívy" - :right-side-bar/contents "Obsah" - :right-side-bar/page-graph "Graf stránok" - :right-side-bar/block-ref "Referencie bloku" - :right-side-bar/graph-view "Zobrazenie grafu" - :right-side-bar/flashcards "Kartičky" - :right-side-bar/show-journals "Zobraziť denníky" - :right-side-bar/separator "Nástroj na zmenu veľkosti pravého bočného panelu" - :right-side-bar/toggle-right-sidebar "Prepnúť pravý bočný panel" - :right-side-bar/pane-close "Zavrieť" - :right-side-bar/pane-close-others "Zavrieť ostatné" - :right-side-bar/pane-close-all "Zavrieť všetko" - :right-side-bar/pane-collapse "Zbaliť" - :right-side-bar/pane-collapse-others "Zbaliť ostatné" - :right-side-bar/pane-collapse-all "Zbaliť všetko" - :right-side-bar/pane-expand "Rozbaliť" - :right-side-bar/pane-expand-all "Rozbaliť všetko" - :right-side-bar/pane-open-as-page "Otvoriť ako stránku" - :right-side-bar/pane-more "Viac" - :left-side-bar/switch "Prepnúť na:" - :left-side-bar/journals "Denníky" - :left-side-bar/nav-favorites "Obľúbené" - :left-side-bar/nav-recent-pages "Nedávne" - :page/something-went-wrong "Niečo sa pokazilo" - :page/logseq-is-having-a-problem "Logseq má problém. Skúste tieto bezpečné kroky, aby ste ho dostali do funkčného stavu:" - :page/step "Krok {1}" - :page/try "Vyskúšať" - :page/make-public "Označiť stránku ako verejnú" - :page/make-private "Označiť stránku ako súkromnú" - :page/delete "Odstrániť stránku" - :page/add-to-favorites "Pridať do obľúbených" - :page/unfavorite "Odstrániť z obľúbených" - :block/name "Názav stránky" - :page/copy-page-url "Kopírovať adresu stránky" - :file/name "Názov súboru" - :file/last-modified-at "Naposledy upravený" - :file/no-data "Žiadne dáta" - :file/format-not-supported "Formát .{1} nie je podporovaný." - :page/created-at "Vytvorené" - :page/updated-at "Aktualizované" - :page/backlinks "Spätné odkazy" - :linked-references/filter-search "Hľadať v prepojených stránkach" - :editor/block-search "Vyhľadať blok" - :text/image "Obrázok" - :asset/show-in-folder "Zobraziť obrázok v adresári" - :asset/open-in-browser "Zobraziť obrázok v prehliadači" - :asset/delete "Odstrániť obrázok" - :asset/copy "Kopírovať obrázok" - :asset/maximize "Maximalizovať obrázok" - :asset/confirm-delete "Naozaj chcete odstrániť tento {1}?" - :asset/physical-delete "Odstrániť aj súbor (už nebude možné ho obnoviť)" - :color/gray "Šedá" - :color/red "Červená" - :color/yellow "Žltá" - :color/green "Zelená" - :color/blue "Modrá" - :color/purple "Fialová" - :color/pink "Ružová" - :editor/copy "Kopírovať" - :editor/cut "Vystrihnúť" - :editor/expand-block-children "Rozbaliť všetko" - :editor/collapse-block-children "Zbaliť všetko" - :editor/delete-selection "Zmazať vybrané bloky" - :editor/cycle-todo "Prepnúť stav TODO aktuálneho položky" - :dev/show-page-data "(Dev) Zobraziť údaje o stránke" - :dev/show-block-data "(Dev) Zobraziť údaje o bloku" - :dev/show-block-ast "(Dev) Zobraziť AST bloku" - :content/copy-export-as "Kopírovať / Exportovať ako..." - :content/copy-block-url "Kopírovať adresu bloku" - :content/copy-block-ref "Kopírovať referenciu bloku" - :content/copy-ref "Kopírovať túto referenciu" - :content/delete-ref "Zmazať túto referenciu" - :content/replace-with-text "Nahradit textom" - :content/replace-with-embed "Nahradit vložením" - :content/open-in-sidebar "Otvoriť v bočnom paneli" - :content/click-to-edit "Kliknutím upraviť" - :context-menu/make-a-flashcard "Vytvoriť kartičku" - :context-menu/toggle-number-list "Prepnúť číslovaný zoznam" - :settings-page/edit-config-edn "Upraviť config.edn" - :settings-page/edit-global-config-edn "Upraviť globálny config.edn" - :settings-page/edit-custom-css "Upraviť custom.css" - :settings-page/edit-export-css "Upraviť export.css" - :settings-page/custom-configuration "Vlastná konfigurácia" - :settings-page/custom-global-configuration "Vlastná globálna konfigurácia" - :settings-page/theme-light "Svetlý" - :settings-page/theme-dark "Tmavý" - :settings-page/theme-system "Systémový" - :settings-page/custom-theme "Vlastný motív" - :settings-page/export-theme "Exportovať motív" - :settings-page/show-brackets "Zobraziť zátvorky" - :settings-page/spell-checker "Kontrola pravopisu" - :settings-page/auto-updater "Automatická aktualizácia" - :settings-page/disable-sentry "Odoslať údaje o používaní a diagnostiku do Logseq" - :settings-page/disable-sentry-desc "Logseq nebude nikdy zhromažďovať vašu lokálnu databázu grafov ani predávať vaše údaje." - :settings-page/preferred-outdenting "Logické odsadenie" - :settings-page/preferred-outdenting-tip "Ľavá strana ukazuje odsadenie s predvoleným nastavením, a pravá ukazuje odsadenie s logickým odsadením " - :settings-page/preferred-outdenting-tip-more "→ Ďalšie informácie" - :settings-page/show-full-blocks "Zobraziť všetky riadky referencie bloku" - :settings-page/auto-expand-block-refs "Automaticky rozbaliť referencie bloku pri priblížení" - :settings-page/auto-expand-block-refs-tip "Táto možnosť ovplyvňuje, či sa referencie bloku majú automaticky rozbaliť pri priblížení." - :settings-page/custom-date-format "Preferovaný formát dátumu" - :settings-page/preferred-pasting-file-hint "Ak je táto možnosť povolená, vložením obrázka z internetu sa obrázok stiahne a vloží. Ak je vypnutá, vloží sa odkaz na obrázok." - :settings-page/preferred-pasting-file "Uprednostniť vloženie súboru" - :settings-page/enable-shortcut-tooltip "Povoliť nápovedy ku klávesovým skratkám" - :settings-page/enable-tooltip "Povoliť okno s nápovedou" - :settings-page/enable-journals "Denníky" - :settings-page/enable-all-pages-public "Všetky stránky označiť ako verejné" - :settings-page/home-default-page "Nastaviť predvolenú domovskú stránku" - :settings-page/clear-cache "Vymazať vyrovnávaciu pamäť" - :settings-page/clear "Vymazať" - :settings-page/clear-cache-warning "Vymazaním vyrovnávacej pamäte sa vymažú otvorené grafy. Prídete o neuložené zmeny." - :settings-page/developer-mode "Režim pre vývojárov" - :settings-page/developer-mode-desc "Režim pre vývojárov pomáha prispievateľom a vývojárom doplnkov efektívnejšie testovať integráciu s Logseq." - :settings-page/current-version "Aktuálna verzia" - :settings-page/tab-general "Všeobecné" - :settings-page/tab-keymap "Klávesové skratky" - :settings-page/tab-account "Účet" - :settings-page/tab-advanced "Pokročilé" - :settings-page/tab-features "Funkcie" - :settings-page/plugin-system "Doplnky" - :settings-page/enable-flashcards "Kartičky" - :settings-page/network-proxy "Sieťová proxy" - :settings-page/login-prompt "Ak chcete získať prístup k novým funkciám skôr ako ktokoľvek iný, musíte byť sponzorom nadácie Open Collective alebo podporovateľom Logseq, následne sa musíte prihlásiť." - :settings-page/native-titlebar "Natívne záhlavie okna" - :settings-page/native-titlebar-desc "Aktivuje natívne záhlavie okna na systémoch Windows a Linux." - :settings-page/check-for-updates "Skontrolovať aktualizácie" - :settings-page/checking "Kontrola ..." - :settings-page/revision "Revízia: " - :settings-page/changelog "Čo je nové?" - :settings-page/app-updated "Vaša aplikácia je aktuálna 🎉" - :settings-page/update-available "Nájdená nová verzia " - :settings-page/update-error-1 "⚠️ Ups, niečo sa pokazilo!" - :settings-page/update-error-2 " Prosím, pozrite si " +{ + :account/authentication "Autentifikácia" + :account/benefits-desc "S účtom Logseq máte prístup ku cloudovým službám ako Logseq Sync a alfa/beta funkciám." + :account/billing "Fakturácia" + :account/billing-expired-on-label "Pro plán vypršal: {1}" + :account/billing-expires-on-label "Pro plán vyprší: {1}" + :account/billing-next-date-label "Ďalší dátum fakturácie: {1}" + :account/core-features "Prístup k základným funkciám Logseq" + :account/current-plan "Aktuálny plán" + :account/delete-account "Vymazať účet" + :account/discover-sync-desc "Objavte silu {1}" + :account/early-access-alpha-beta "Skorý prístup k alfa/beta funkciám" + :account/first-name "Meno" + :account/free-plan-sync-limit "1 synchronizovaný graf (do 50 MB, iba poznámky)" + :account/last-name "Priezvisko" + :account/manage-plan "Spravovať plán" + :account/month "mesiac" + :account/no-asset-syncing "Bez synchronizácie súborov" + :account/open-invoices "Otvoriť faktúry" + :account/plan-free "Zadarmo" + :account/plan-free-summary "Začnite so základnou synchronizáciou" + :account/plan-pro "Pro" + :account/plan-pro-summary "Odomknite pokročilú synchronizáciu a viac" + :account/pro-plan-sync-limit "10 synchronizovaných grafov (do 5 GB každý)" + :account/profile "Profil" + :account/refresh-token-warning "Obnovit token: výjimečný stav" + :account/reset-password "Obnoviť heslo" + :account/sign-up "Registrácia" + :account/sync-assets-limit "Synchronizácia súborov do 100 MB na súbor" + :account/synced-status "Synchronizované" + :account/unlimited-unsynced-graphs "Neobmedzený počet nesynchronizovaných grafov" + :account/upcoming-cloud-features "Pripravované cloudové funkcie vrátane Logseq Publish" + :account/upgrade-plan "Vylepšiť plán" + :account/username "Používateľské meno" - :settings-page/auto-chmod "Automaticky meniť oprávnenia súborov" - :settings-page/auto-chmod-desc "Zakázať umožňuje editáciu viacerými používateľmi s oprávneniami udelenými členstvom v skupine." - :yes "Áno" + :asset/acceptable-file-extensions "Povolené prípony súborov" + :asset/add-assets "Pridať súbory" + :asset/add-directory "Pridať priečinok" + :asset/alias-already-exists "Alias s názvom \"{1}\" už existuje!" + :asset/alias-directories "Aliasy priečinkov" + :asset/alias-directory-path-label "Cesta k priečinku:" + :asset/alias-name-dialog-title "Aký je alias tohto vybraného priečinka?" + :asset/alias-name-label "Názov aliasu:" + :asset/alias-name-placeholder "napr. Knihy" + :asset/align "Zarovnání" + :asset/align-center "Na střed" + :asset/align-left "Vlevo" + :asset/align-right "Vpravo" + :asset/already-exists "Dielo už existuje, názov: {1}, referencia uzla: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Nemožno vložit rodiče jako vlastní vlastnosť" + :asset/confirm-delete-image "Naozaj chcete odstrániť tento obrázok?" + :asset/copy "Kopírovať obrázok" + :asset/copy-image-unsupported-extension "Kopírovanie obrázka nie je podporované pre súbory {1}" + :asset/create-local-copy-warning "Vytvára sa lokálna kópia externého súboru. Anotácie PDF vyžadujú lokálny súbor na správne fungovanie." + :asset/create-title "Vytvoriť súbor" + :asset/delete "Odstrániť obrázok" + :asset/downloading "Sťahovanie" + :asset/drop-hint "Pretiahnite súbory sem alebo kliknutím vyberte súbory" + :asset/edit-title "Upraviť súbor" + :asset/external-url-label "Externá URL adresa súboru:" + :asset/file-extension-placeholder "napr. mp3" + :asset/maximize "Maximalizovať obrázok" + :asset/open-in-browser "Zobraziť obrázok v prehliadači" + :asset/physical-delete "Odstrániť aj súbor (už nebude možné ho obnoviť)" + :asset/ref-block "Referenční blok" + :asset/select-file "Vybrať súbor" + :asset/select-from-disk "Vybrať z disku" + :asset/selected-directories "Vybrané priečinky:" + :asset/show-file-in-folder "Zobraziť súbor v priečinku" + :asset/size-too-large "Soubor je příliš velký" + :asset/syncing "Synchronizácia" + :asset/title-label "Názov súboru:" + :asset/transfer-placeholder "{1} súborov..." + :asset/uploading "Nahrávanie" - :cancel "Zrušiť" - :close "Zavrieť" - :delete "Odstrániť" - :save "Uložiť" - :type "Typ" - :flashcards/modal-welcome-title "Čas vytvoriť kartu!" - :flashcards/modal-welcome-desc-1 "Môžete pridať \"{1}\" k akémukoľvek bloku, aby ste ho zmenili na kartu alebo spustili \"/cloze\" pre pridanie niektorých clozes." - :flashcards/modal-finished "Gratulujeme, prešli ste všetky karty pre túto otázku, uvidíme sa nabudúce! 💯" - :home "Domov" - :new-page "Nová stránka:" - :graph "Graf" - :graph/all-graphs "Všetky grafy" - :graph/local-graphs "Lokálne grafy:" - :graph/remote-graphs "Vzdialené grafy:" - :export "Exportovať" - :export-graph "Exportovať graf" - :export-page "Exportovať stránku" - :export-markdown "Exportovať ako štandardný Markdown (žiadne vlastnosti bloku)" - :export-public-pages "Exportovať verejné stránky" - :export-transparent-background "Transparentné pozadie" - :export-copy-to-clipboard "Kopírovať do schránky" - :export-copied-to-clipboard "Skopírované do schránky!" - :export-save-to-file "Uložiť do súboru" - :all-graphs "Všetky grafy" - :all-files "Všetky súbory" - :all-journals "Všetky denníky" - :settings "Nastavenia" - :settings-of-plugins "Doplnky" - :plugins "Doplnky" - :themes "Motívy" - :relaunch-confirm-to-work "Aby aplikácia fungovala správne, je potrebné ju reštartovať. Chcete ju reštartovať teraz?" - :import "Importovať" - :importing "Importuje sa" - :help-shortcut-title "Kliknutím zobrazíte skratky a ďalšie tipy" - :loading "Načítava sa ..." - :login "Prihlásiť sa" - :logout "Odhlásiť sa" - :download "Stiahnuť" - :language "Jazyk" - :remove-background "Odstrániť pozadie" - :remove-heading "Odstrániť nadpis" - :heading "Nadpis {1}" - :auto-heading "Automatický nadpis" - :toggle-theme "Prepnúť motív" + :block/click-to-fix-query "Kliknutím opravíte dopyt: {1}" + :block/copy-ref "Kopírovať referenciu bloku" + :block/copy-url "Kopírovať adresu bloku" + :block/created-label "Vytvorené: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' je zastaralé. Použite namiesto toho príkaz '/Math block'." + :block/deprecated-query-syntax "#+BEGIN_QUERY je zastaralé. Použite namiesto toho príkaz '/Advanced Query'." + :block/deprecated-quote "#+BEGIN_QUOTE je zastaralé. Použite namiesto toho príkaz '/Quote'." + :block/empty-url "Prázdna URL" + :block/excalidraw-no-longer-supported "Excalidraw už nie je štandardne podporovaný, plánujeme jeho podporu prostredníctvom pluginov." + :block/extraction-error "Chyba extrakce bloku" + :block/hide-query "Skryť dopyt" + :block/invalid-hiccup "Neplatný hiccup" + :block/invalid-link "Neplatný odkaz" + :block/invalid-url "Neplatná URL" + :block/large-block-warning "Veľký blok nebude editovateľný ani vyhľadateľný, aby nespomaľoval aplikáciu. Prosím, použite iný editor na úpravu tohto bloku." + :block/last-edited-label "Naposledy upravené: {1}" + :block/not-found-warning "Blok nenájdený" + :block/open-block-references "Otvoriť referencie bloku" + :block/practice "Precvičovať" + :block/practice-cards "Precvičovať kartičky" + :block/ref-nesting-too-deep "Vnorenie referencie bloku je príliš hlboké" + :block/remove-tag "Odstrániť tag" + :block/remove-this-tag "Odstrániť tento tag" + :block/render-error "Chyba zobrazenia bloku:" + :block/set-query "Nastaviť dopyt" + :block/set-query-label "Nastaviť dopyt:" + :block/sort-order "Poradie zoradenia" + :block/status-history "História stavov" + :block/untitled-query "Nepomenovaný dopyt" - :help/shortcut-page-title "Klávesové skratky" + :block.macro/embed-deprecated "{{embed}} je zastarané. Miesto toho použite príkaz '/Node embed'." + :block.macro/namespace-deprecated "{{namespace}} je zastarané. Miesto toho použite funkciu {1}." + :block.macro/query-deprecated "{{query}} je zastarané. Miesto toho použite príkaz '/Query'." + :block.macro/unsupported-name "Nepodporovaný názov makra: {1}" - :plugin/installed "Nainštalované" - :plugin/installed-plugin "Inštalovaný doplnok: {1}" - :plugin/not-installed "Nenainštalované" - :plugin/installing "Inštaluje sa" - :plugin/install "Inštalovať" - :plugin/reload "Znova načítať" - :plugin/update "Aktualizovať" - :plugin/update-plugin "Aktualizovať doplnok: {1} - {2}" - :plugin/check-update "Skontrolovať aktualizácie" - :plugin/check-all-updates "Skontrolovať všetky aktualizácie" - :plugin/found-updates "Nové aktualizácie" - :plugin/found-n-updates "Nájdené {1} aktualizácií" - :plugin/update-all-selected "Aktualizovať všetko zvolené" - :plugin/all-updated "Všetko aktualizované!" - :plugin/updates-downloading "Sťahujú sa aktualizácie" - :plugin/refresh-lists "Obnoviť zoznamy" - :plugin/enabled "Povolené" - :plugin/disabled "Zakázané" - :plugin/update-available "S dostupnou aktualizáciou" - :plugin/updating "Aktualizuje sa" - :plugin/uninstall "Odinštalovať" - :plugin/marketplace "Obchod" - :plugin/downloads "Počet stiahnutí" - :plugin/stars "Počet hviezdičiek" - :plugin/title "Názov ({1})" - :plugin/all "Všetky" - :plugin/unpacked "Rozbalené" - :plugin/delete-alert "Naozaj chcete odinštalovať doplnok [{1}]?" - :plugin/open-settings "Otvoriť nastavenia" - :plugin/open-package "Otvoriť balík" - :plugin/load-unpacked "Načítať rozbalený doplnok" - :plugin/restart "Reštartovať aplikáciu" - :plugin/unpacked-tips "Vyberte adresár rozbaleného doplnku" - :plugin/contribute "✨ Vytvorte a odošlite nový doplnok" - :plugin/up-to-date "Je aktuálne {1}" - :plugin/custom-js-alert "Našiel sa súbor custom.js. Chcete ho spustiť? (Ak nerozumiete obsahu tohto súboru, odporúčame jeho spustenie zakázať, pretože môže predstavovať určité bezpečnostné riziká.)" - :plugin/security-warning "Doplňky majú prístup k vášmu grafu a lokálnym súborom, môžu posielať sieťové požiadavky. Tiež môžu spôsobiť poškodenie alebo stratu dát. Pracujeme na správnych pravidlách prístupu k vašim grafom. Zatiaľ sa uistite, že máte pravidelné zálohy svojich grafov a doplnky inštalujte len v prípade, že rozumiete ich zdrojovému kódu." - :plugin/search-plugin "Vyhľadávanie doplnkov" - :plugin/open-preferences "Otvoriť predvoľby" - :plugin/open-logseq-dir "Otvoriť Logseq adresár" - :plugin/remote-error "Vzdialená chyba: " - :plugin/checking-for-updates "Kontrola aktualizácií doplnkov ..." - :plugin/list-of-updates "Aktualizácie doplnkov: " - :plugin/auto-check-for-updates "Automatická kontrola aktualizácií" - :plugin.install-from-file/menu-title "Inštalovať z plugins.edn" - :plugin.install-from-file/title "Inštalovať doplnky z plugins.edn" - :plugin.install-from-file/notice "Nasledujúce doplnky nahradia vaše aktuálne doplnky:" - :plugin.install-from-file/success "Všetky doplnky boli úspešne nainštalované!" - :pdf/copy-ref "Kopírovať referenciu" - :pdf/copy-text "Kopírovať text" - :pdf/linked-ref "Prepojené referencie" - :pdf/toggle-dashed "Prepnúť prerušovaný štýl pre zvýraznenie oblasti" - :pdf/hl-block-colored "Farebný štítok pre zvýraznený blok" - :pdf/auto-open-context-menu "Automaticky otvárať kontextové menu pre výbery" - :pdf/doc-metadata "Metadáta dokumentu" + :block.reaction/emoji-required-warning "Vyžadován emoji" + :block.reaction/unsupported-emoji-warning "Nepodporovaný emoji reakce" - :updater/new-version-install "Bola stiahnutá nová verzia." - :updater/quit-and-install "Reštartovať a nainštalovať" + :bug-report/desc "Nahlásiť chybu" + :bug-report/title "Nahlásiť chybu" - :tips/all-done "Hotovo!" + :bug-report.clipboard/action-desc "Skontrolovať schránku" + :bug-report.clipboard/action-title "Inspektor schránky" + :bug-report.clipboard/desc "Ak máte problémy s kopírováním a vkládáním, použijte inspektor schránky" + :bug-report.clipboard/title "Schránka" - :select/default-prompt "Vybrať jeden" - :select/default-select-multiple "Vybrať jeden alebo viacero" - :select.graph/prompt "Vybrať graf" - :select.graph/empty-placeholder-description "Žiadne zodpovedajúce grafy. Chcete pridať ďalší?" - :select.graph/add-graph "Áno, pridať ďalší graf" + :bug-report.inspector/back "Späť" + :bug-report.inspector/clipboard-desc "Obsah schránky" + :bug-report.inspector/copied "Skopírované do schránky" + :bug-report.inspector/copy "Kopírovať" + :bug-report.inspector/copy-desc "Zkopírovat diagnostickou zprávu" + :bug-report.inspector/create-issue "Vytvoriť hlášení" + :bug-report.inspector/create-issue-desc "Teraz môžete nahlásiť výsledok vložený do schránky. Vložte výsledok do sekcie 'Additional Context' a uveďte, odkiaľ ste skopírovali pôvodný obsah. Ďakujeme!" + :bug-report.inspector/desc "Stlačením klávesovej skratky {1} vložíte dáta zo schránky pre kontrolu\nalebo sem kliknite pre vloženie, ak používate mobilnú verziu" + :bug-report.inspector/placeholder "Vložte obsah sem" + :bug-report.inspector/tip "Tip: použijte Ctrl+V pro vložení" + :bug-report.inspector/title "Inspektor schránky" - :notification/clear-all "Zmazať všetko" + :bug-report.issue/action-desc "Procházet známé problémy" + :bug-report.issue/action-title "Hlášení na GitHubu" + :bug-report.issue/desc "Zkontrolujte, zda váš problém nebyl už nahlášen" + :bug-report.issue/report-link "Nahlásiť problém" + :bug-report.issue/title "Známé problémy" - :shortcut.category/basics "Základy" - :shortcut.category/formatting "Formátovanie" - :shortcut.category/navigating "Navigácia" - :shortcut.category/block-editing "Úprava bloku (všeobecné)" - :shortcut.category/block-command-editing "Príkazy na úpravu bloku" - :shortcut.category/block-selection "Výber bloku (výber ukončíte stlačením klávesy Esc)" - :shortcut.category/toggle "Prepínače" - :shortcut.category/others "Ostatné" - :shortcut.category/plugins "Doplnky" - :keymap/all "Všetky" - :keymap/disabled "Zakázané" - :keymap/unset "Nenastavené" - :keymap/custom "Vlastné" - :keymap/keystroke-filter "Filtrovať klávesové skratky" - :window/minimize "Minimalizovať" - :window/maximize "Maximalizovať" - :window/restore "Obnoviť" - :window/close "Zatvoriť" - :window/exit-fullscreen "Ukončiť režim celého obrazovky" + :class/add-property "Pridať vlastnosť tagu" + :class/tag-properties-desc "Vlastnosti tagu dedia všetky uzly, ktoré tento tag používajú. Napríklad každý uzol #Task dedí 'Status' a 'Priority'." + :class/tagged-nodes "Otagované uzly" - :header/toggle-left-sidebar "Zobraziť/Skryť ľavý bočný panel" - :header/search "Hľadať" - :header/more "Viac" - :header/go-back "Späť" - :header/go-forward "Vpred" - :command.pdf/previous-page "PDF: Predchádzajúca strana aktuálneho PDF dokumentu" - :command.pdf/next-page "PDF: Nasledujúca strana aktuálneho PDF dokumentu" - :command.pdf/close "PDF: Zatvoriť aktuálny PDF dokument" - :command.pdf/find "PDF: Vyhľadať text v aktuálnom PDF dokumente" - :command.auto-complete/complete "Automatické dokončovanie: Potvrdiť vybranú položku" - :command.auto-complete/prev "Automatické dokončovanie: Vybrať predchádzajúcu položku" - :command.auto-complete/next "Automatické dokončovanie: Vybrať ďalšiu položku" - :command.auto-complete/shift-complete "Automatické dokončovanie: Otvoriť vybranú položku na bočnom paneli" - :command.cards/toggle-answers "Karty: Zobraziť/Skryť odpovede" - :command.editor/escape-editing "Zrušiť úpravu" - :command.editor/backspace "Zmazať dozadu" - :command.editor/delete "Zmazať dopredu" - :command.editor/new-block "Vytvoriť nový blok" - :command.editor/new-line "Nový riadok v aktuálnom bloku" - :command.editor/follow-link "Prejsť na odkaz pod kurzorom" - :command.editor/open-link-in-sidebar "Otvoriť odkaz v bočnom paneli" - :command.editor/bold "Tučné" - :command.editor/italics "Kurzíva" - :command.editor/highlight "Zvýrazniť" - :command.editor/strike-through "Prečiarknuť" - :command.editor/clear-block "Odstrániť celý obsah bloku" - :command.editor/kill-line-before "Odstrániť riadok pred pozíciou kurzora" - :command.editor/copy-embed "Kopírovať vložený blok ukazujúci na aktuálny blok" - :command.editor/kill-line-after "Odstrániť riadok za pozíciou kurzora" - :command.editor/beginning-of-block "Presunúť kurzor na začiatok bloku" - :command.editor/end-of-block "Presunúť kurzor na koniec bloku" - :command.editor/forward-word "Posunúť kurzor o slovo dopredu" - :command.editor/backward-word "Presunúť kurzor o slovo dozadu" - :command.editor/forward-kill-word "Vymazať slovo dopredu" - :command.editor/backward-kill-word "Vymazať slovo dozadu" - :command.editor/paste-text-in-one-block-at-point "Prilepiť text do jedného bloku na danom mieste" - :command.editor/insert-youtube-timestamp "Vložiť časovú značku z YouTube" - :command.editor/cycle-todo "Zmeniť stav TODO aktuálnej položky" - :command.editor/up "Posunúť kurzor hore/Vybrať hore" - :command.editor/down "Posunúť kurzor dole/Vybrať dole" - :command.editor/left "Posunúť kurzor doľava/Otvoriť vybraný blok na začiatku" - :command.editor/right "Posunúť kurzor doprava/Otvoriť vybraný blok na konci" - :command.editor/select-up "Vybrať obsah vyššie" - :command.editor/select-down "Vybrať obsah nižšie" - :command.editor/move-block-up "Posunúť blok nahor" - :command.editor/move-block-down "Posunúť blok nadol" - :command.editor/open-edit "Upraviť vybraný blok" - :command.editor/select-block-up "Vybrať blok vyššie" - :command.editor/select-block-down "Vybrať blok nižšie" - :command.editor/delete-selection "Odstrániť vybrané bloky" - :command.editor/expand-block-children "Rozbaliť" - :command.editor/collapse-block-children "Zbaliť" - :command.editor/indent "Odsadiť blok" - :command.editor/outdent "Zrusiť odsadenie bloku" - :command.editor/copy "Kopírovať (skopíruje buď výber alebo referenciu na blok)" - :command.editor/copy-text "Kopírovať výber ako text" - :command.editor/cut "Vystrihnúť" - :command.editor/undo "Späť" - :command.editor/redo "Znova" - :command.editor/insert-link "HTML odkaz" - :command.editor/select-all-blocks "Vybrať všetky bloky" - :command.editor/select-parent "Vybrať rodičovský blok" - :command.editor/zoom-in "Priblížiť upravovaný blok/Inak vpred" - :command.editor/zoom-out "Oddialiť upravaný blok/Inak dozadu" - :command.editor/toggle-number-list "Prepnúť číslovaný zoznam" - :command.ui/toggle-brackets "Prepnúť zobrazenie zátvoriek" - :command.go/electron-find-in-page "Nájsť text na stránke" - :command.go/electron-jump-to-the-next "Preskočiť na ďalšiu zhodu v Paneli hľadania" - :command.go/electron-jump-to-the-previous "Preskočiť na predchádzajúcu zhodu v Paneli hľadania" - :command.go/search "Hľadať stránky a bloky" - :command.go/search-in-page "Hľadať bloky na stránke" - :command.command-palette/toggle "Hľadať príkazy" - :command.go/journals "Prejsť do denníkov" - :command.go/backward "Späť" - :command.go/forward "Vpred" - :command.search/re-index "Obnoviť index vyhľadávania" - :command.sidebar/open-today-page "Otvoriť dnešnú stránku v pravom bočnom paneli" - :command.sidebar/close-top "Zavrieť hornú položku na pravom bočnom paneli" - :command.sidebar/clear "Vymazať všetko na pravom bočnom paneli" - :command.misc/copy "Kopírovať" - :command.graph/export-as-html "Exportovať verejné stránky grafu ako HTML" - :command.graph/open "Vybrať graf na otvorenie" - :command.graph/remove "Odstrániť graf" - :command.graph/add "Pridať graf" - :command.command/run "Spustiť príkaz GIT" - :command.go/home "Prejsť na hlavnú stránku" - :command.go/all-graphs "Prejsť na všetky grafy" - :command.go/all-pages "Prejsť na všetky stránky" - :command.go/graph-view "Prejsť na zobrazenie grafu" - :command.go/keyboard-shortcuts "Prejsť na klávesové skratky" - :command.go/tomorrow "Prejsť na zajtrajší denník" - :command.go/next-journal "Prejsť na ďalší denník" - :command.go/prev-journal "Prejsť na predchádzajúci denník" - :command.go/flashcards "Zobraziť/Skryť kartičky" - :command.ui/toggle-document-mode "Zobraziť/Skryť režim dokumentu" - :command.ui/toggle-settings "Prepnúť nastavenia" - :command.ui/toggle-right-sidebar "Zobraziť/Skryť pravý bočný panel" - :command.ui/toggle-left-sidebar "Zobraziť/Skryť ľavý bočný panel" - :command.ui/toggle-help "Zobraziť/Skryť pomocníka" - :command.ui/toggle-theme "Prepínať medzi tmavým/svetlým motívom" - :command.ui/toggle-contents "Zobraziť/Skryť obsah na bočnom paneli" - :command.command/toggle-favorite "Pridať/Odstrániť z obľúbených" - :command.editor/copy-page-url "Kopírovať URL adresu stránky" - :command.ui/toggle-wide-mode "Prepnúť širokouhlý režim" - :command.ui/select-theme-color "Vybrať dostupné farby motívu" - :command.ui/goto-plugins "Prejsť na zoznam doplnkov" - :command.ui/install-plugins-from-file "Inštalovať doplnky z plugins.edn" - :command.editor/toggle-open-blocks "Prepnúť otvorené bloky (zbaliť alebo rozbaliť všetky bloky)" - :command.ui/clear-all-notifications "Zmazať všetky oznámenia" - :command.dev/show-block-data "(Dev) Zobraziť údaje bloku" - :command.dev/show-block-ast "(Dev) Zobraziť AST bloku" - :command.dev/show-page-data "(Dev) Zobraziť údaje stránky" - :command.window/close "Zavrieť okno"} + :class.built-in/asset "Súbor" + :class.built-in/card "Kartička" + :class.built-in/cards "Kartičky" + :class.built-in/code-block "Kód" + :class.built-in/journal "Denník" + :class.built-in/math-block "Matematika" + :class.built-in/page "Stránka" + :class.built-in/pdf-annotation "PDF anotácia" + :class.built-in/property "Vlastnosť" + :class.built-in/query "Dopyt" + :class.built-in/quote-block "Citát" + :class.built-in/root "Koreňový tag" + :class.built-in/tag "Štítok" + :class.built-in/task "Úloha" + :class.built-in/template "Šablóna" + :class.built-in/whiteboard "Tabuľa" + + :class.validation/built-in-extends-change "Dědičnost vstavaných prvků nemožno změnit." + :class.validation/cant-add-tag-on-built-in "Nie je možné pridať značku k vstavanému „{1}“." + :class.validation/cant-remove-private-tags "Nemožno odstrániť súkromné ​​značky: {1}." + :class.validation/cant-remove-tag-built-in "Nedá sa odstrániť štítok so vstavaným #{1}." + :class.validation/cant-remove-tag-on-built-in "Nie je možné odstrániť značku na vstavanom zariadení „{1}“." + :class.validation/cant-set-tag-built-in "Nedá sa nastaviť štítok so vstavaným #{1}." + :class.validation/duplicate "Štítok '{1}' už existuje." + :class.validation/extends-cycle "Zjištěn cyklus v dědičnosti." + :class.validation/invalid-extends-type "Neplatný typ dědičnosti." + :class.validation/parents-must-be-tags "Rodiče štítkov musí být štítky." + :class.validation/tag-with-non-tag "Nie je možné nastaviť značku so vstavanou stránkou, ktorá nie je značkou „{1}“." + + :cmdk.action/apply-theme "Použiť motív" + :cmdk.action/copy-ref "Kopírovať odkaz" + :cmdk.action/create "Vytvoriť" + :cmdk.action/filter "Filtr" + :cmdk.action/open "Otvoriť" + :cmdk.action/open-in-sidebar "Otvoriť v postranním panelu" + :cmdk.action/search "Hľadať" + :cmdk.action/trigger "Spustiť" + + :cmdk.create/configure-tag "Konfigurovat štítok" + :cmdk.create/page "Vytvoriť stránku" + :cmdk.create/tag "Vytvoriť štítok" + + :cmdk.error/no-block-link "V tomto bloku nejsou žiadne odkazy." + :cmdk.error/no-page-link "Na této stránce nejsou žiadne odkazy." + :cmdk.error/no-search-item-link "V tomto výsledku hledání nejsou žiadne odkazy." + + :cmdk.filter/add "Pridať filtr" + :cmdk.filter/codes "Iba kód" + :cmdk.filter/commands "Iba príkazy" + :cmdk.filter/current-page "Iba aktuálny stránka" + :cmdk.filter/files "Iba súbory" + :cmdk.filter/nodes "Iba uzly" + :cmdk.filter/only-label "Iba hledat:" + :cmdk.filter/themes "Iba motívy" + + :cmdk.group/codes "Kód" + :cmdk.group/commands "Príkazy" + :cmdk.group/create "Vytvoriť" + :cmdk.group/current-page "Aktuálny stránka" + :cmdk.group/files "Súbory" + :cmdk.group/filters "Filtry" + :cmdk.group/nodes "Uzly" + :cmdk.group/recently-updated "Nedávno aktualizované" + :cmdk.group/themes "Motívy" + + :cmdk.info/configure-tag "Konfigurovat #{1}" + :cmdk.info/create-page "Vytvoriť stránku '{1}'" + :cmdk.info/create-tag "Vytvoriť štítok '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Pridať filtr grafu" + :cmdk.input/default-placeholder "Čo hľadáte?" + :cmdk.input/move-blocks-placeholder "Přesunout bloky" + :cmdk.input/type-page-name-placeholder "Zadejte názov stránky" + + :cmdk.tip/clear-filter "Stlačte {1} na vymazanie filtra hľadania" + :cmdk.tip/filter-results "Stlačte {1} na filtrovanie výsledkov hľadania" + :cmdk.tip/label "Tip:" + :cmdk.tip/open-sidebar "Stlačte {1} na otvorenie hľadania v postrannom paneli" + + :collaboration/email-address "E-mailová adresa" + :collaboration/invite "Pozvať" + :collaboration/members "Členovia:" + :collaboration/remove-access "Odobrať prístup" + :collaboration/remove-access-error "Nepodarilo sa odebrat člena" + + :color/blue "Modrá" + :color/crimson "karmínová" + :color/cyan "azúrová" + :color/grass "trávová" + :color/gray "Šedá" + :color/green "Zelená" + :color/indigo "indigová" + :color/orange "oranžová" + :color/pink "Ružová" + :color/plum "slivková" + :color/purple "Fialová" + :color/red "Červená" + :color/teal "modrozelená" + :color/tomato "paradajková" + :color/violet "fialková" + :color/yellow "Žltá" + + :command.auto-complete/complete "Automatické dokončovanie: Potvrdiť vybranú položku" + :command.auto-complete/meta-complete "Meta-automatické dokončení" + :command.auto-complete/next "Automatické dokončovanie: Vybrať ďalšiu položku" + :command.auto-complete/prev "Automatické dokončovanie: Vybrať predchádzajúcu položku" + :command.auto-complete/shift-complete "Automatické dokončovanie: Otvoriť vybranú položku na bočnom paneli" + + :command.command-palette/toggle "Paleta príkazov" + + :command.editor/add-property "Pridať vlastnosť" + :command.editor/add-property-deadline "Pridať termín" + :command.editor/add-property-icon "Pridať ikonu" + :command.editor/add-property-priority "Pridať prioritu" + :command.editor/add-property-status "Pridať stav" + :command.editor/add-reaction "Pridať reakci" + :command.editor/backspace "Zmazať dozadu" + :command.editor/backward-kill-word "Vymazať slovo dozadu" + :command.editor/backward-word "Presunúť kurzor o slovo dozadu" + :command.editor/beginning-of-block "Presunúť kurzor na začiatok bloku" + :command.editor/bold "Tučné" + :command.editor/clear-block "Odstrániť celý obsah bloku" + :command.editor/collapse-block-children "Zbaliť" + :command.editor/copy "Kopírovať (skopíruje buď výber alebo referenciu na blok)" + :command.editor/copy-embed "Kopírovať vložený blok ukazujúci na aktuálny blok" + :command.editor/copy-page-url "Kopírovať URL stránky" + :command.editor/copy-text "Kopírovať výber ako text" + :command.editor/cut "Vystrihnúť" + :command.editor/cycle-todo "Zmeniť stav TODO aktuálnej položky" + :command.editor/delete "Zmazať dopredu" + :command.editor/delete-selection "Odstrániť vybrané bloky" + :command.editor/down "Posunúť kurzor dole/Vybrať dole" + :command.editor/end-of-block "Presunúť kurzor na koniec bloku" + :command.editor/escape-editing "Zrušiť úpravu" + :command.editor/expand-block-children "Rozbaliť" + :command.editor/follow-link "Prejsť na odkaz pod kurzorom" + :command.editor/forward-kill-word "Vymazať slovo dopredu" + :command.editor/forward-word "Posunúť kurzor o slovo dopredu" + :command.editor/highlight "Zvýrazniť" + :command.editor/indent "Odsadiť blok" + :command.editor/insert-link "HTML odkaz" + :command.editor/insert-youtube-timestamp "Vložiť časovú značku z YouTube" + :command.editor/italics "Kurzíva" + :command.editor/jump "Prejsť" + :command.editor/kill-line-after "Odstrániť riadok za pozíciou kurzora" + :command.editor/kill-line-before "Odstrániť riadok pred pozíciou kurzora" + :command.editor/left "Posunúť kurzor doľava/Otvoriť vybraný blok na začiatku" + :command.editor/move-block-down "Posunúť blok nadol" + :command.editor/move-block-up "Posunúť blok nahor" + :command.editor/move-blocks "Přesunout bloky" + :command.editor/new-block "Vytvoriť nový blok" + :command.editor/new-line "Nový riadok v aktuálnom bloku" + :command.editor/open-edit "Upraviť vybraný blok" + :command.editor/open-link-in-sidebar "Otvoriť odkaz v bočnom paneli" + :command.editor/open-selected-blocks-in-sidebar "Otvoriť vybrané bloky v panelu" + :command.editor/outdent "Zrusiť odsadenie bloku" + :command.editor/paste-text-in-one-block-at-point "Prilepiť text do jedného bloku na danom mieste" + :command.editor/quick-add "Rychle přidat" + :command.editor/redo "Znova" + :command.editor/right "Posunúť kurzor doprava/Otvoriť vybraný blok na konci" + :command.editor/select-all-blocks "Vybrať všetky bloky" + :command.editor/select-block-down "Vybrať blok nižšie" + :command.editor/select-block-up "Vybrať blok vyššie" + :command.editor/select-down "Vybrať obsah nižšie" + :command.editor/select-parent "Vybrať rodičovský blok" + :command.editor/select-up "Vybrať obsah vyššie" + :command.editor/set-tags "Nastaviť štítky" + :command.editor/strike-through "Prečiarknuť" + :command.editor/toggle-block-children "Zobraziť/skrýt podriadené bloky" + :command.editor/toggle-display-hidden-properties "Zobraziť/skrýt skryté vlastnosťi" + :command.editor/toggle-number-list "Číslovaný seznam" + :command.editor/toggle-open-blocks "Prepnúť otvorené bloky (zbaliť alebo rozbaliť všetky bloky)" + :command.editor/undo "Späť" + :command.editor/up "Posunúť kurzor hore/Vybrať hore" + :command.editor/zoom-in "Priblížiť upravovaný blok/Inak vpred" + :command.editor/zoom-out "Oddialiť upravaný blok/Inak dozadu" + + :command.go/all-graphs "Prejsť na všetky grafy" + :command.go/all-pages "Prejsť na všetky stránky" + :command.go/backward "Späť" + :command.go/electron-find-in-page "Nájsť text na stránke" + :command.go/electron-jump-to-the-next "Preskočiť na ďalšiu zhodu v Paneli hľadania" + :command.go/electron-jump-to-the-previous "Preskočiť na predchádzajúcu zhodu v Paneli hľadania" + :command.go/flashcards "Zobraziť/Skryť kartičky" + :command.go/forward "Vpred" + :command.go/graph-view "Prejsť na zobrazenie grafu" + :command.go/home "Prejsť na hlavnú stránku" + :command.go/journals "Prejsť do denníkov" + :command.go/keyboard-shortcuts "Prejsť na klávesové skratky" + :command.go/next-journal "Prejsť na ďalší denník" + :command.go/prev-journal "Prejsť na predchádzajúci denník" + :command.go/search "Hľadať stránky a bloky" + :command.go/search-in-page "Hľadať na stránke" + :command.go/search-themes "Hľadať motívy" + :command.go/tomorrow "Prejsť na zajtrajší denník" + + :command.graph/add "Pridať graf" + :command.graph/db-add "Pridať do databáze" + :command.graph/db-save "Uložiť databázi" + :command.graph/export-as-html "Exportovať verejné stránky grafu ako HTML" + :command.graph/open "Vybrať graf na otvorenie" + :command.graph/remove "Odstrániť graf" + + :command.misc/copy "Kopírovať" + :command.misc/export-block-data "Exportovať data bloku" + :command.misc/export-graph-ontology-data "Exportovať ontologii grafu" + :command.misc/export-page-data "Exportovať data stránky" + :command.misc/import-edn-data "Importovať data EDN" + + :command.page/toggle-favorite "Pridať/Odstrániť z obľúbených" + + :command.pdf/close "PDF: Zatvoriť aktuálny PDF dokument" + :command.pdf/find "PDF: Vyhľadať text v aktuálnom PDF dokumente" + :command.pdf/next-page "PDF: Nasledujúca strana aktuálneho PDF dokumentu" + :command.pdf/previous-page "PDF: Predchádzajúca strana aktuálneho PDF dokumentu" + + :command.publish/open-dialog "Otvoriť dialog publikace" + + :command.search/re-index "Obnoviť index vyhľadávania" + + :command.shell/run "Spustiť príkaz GIT" + + :command.sidebar/clear "Vymazať všetko na pravom bočnom paneli" + :command.sidebar/close-top "Zavrieť hornú položku na pravom bočnom paneli" + :command.sidebar/open-today-page "Otvoriť dnešnú stránku v pravom bočnom paneli" + + :command.ui/clear-all-notifications "Vymazat všetky oznámenia" + :command.ui/customize-appearance "Přizpůsobit vzhled" + :command.ui/goto-plugins "Prejsť na zoznam doplnkov" + :command.ui/highlight-recent-blocks "Zvýraznit nedávné bloky" + :command.ui/install-plugin-from-github "Nainstalovat plugin z GitHubu" + :command.ui/install-plugins-from-file "Inštalovať doplnky z plugins.edn" + :command.ui/select-theme-color "Vybrať dostupné farby motívu" + :command.ui/toggle-brackets "Prepnúť zobrazenie zátvoriek" + :command.ui/toggle-contents "Zobraziť/Skryť obsah na bočnom paneli" + :command.ui/toggle-document-mode "Zobraziť/Skryť režim dokumentu" + :command.ui/toggle-help "Zobraziť/Skryť pomocníka" + :command.ui/toggle-left-sidebar "Zobraziť/Skryť ľavý bočný panel" + :command.ui/toggle-right-sidebar "Zobraziť/Skryť pravý bočný panel" + :command.ui/toggle-settings "Prepnúť nastavenia" + :command.ui/toggle-theme "Prepínať medzi tmavým/svetlým motívom" + :command.ui/toggle-wide-mode "Prepnúť širokouhlý režim" + + :command.window/close "Zavrieť okno" + + :context-menu/developer-tools "Vývojárske nástroje" + :context-menu/make-a-flashcard "Vytvoriť kartičku" + :context-menu/set-icon "Nastaviť ikonu" + :context-menu/toggle-number-list "Prepnúť číslovaný seznam" + + :date/invalid-date-warning "{1} nie je platný dátum. Skúste to znova" + + :date.nlp/last-friday "Minulý piatok" + :date.nlp/last-monday "Minulý pondelok" + :date.nlp/last-month "Minulý mesiac" + :date.nlp/last-saturday "Minulú sobotu" + :date.nlp/last-sunday "Minulú nedeľu" + :date.nlp/last-thursday "Minulý štvrtok" + :date.nlp/last-tuesday "Minulý utorok" + :date.nlp/last-wednesday "Minulú stredu" + :date.nlp/last-week "Minulý týždeň" + :date.nlp/last-year "Minulý rok" + :date.nlp/next-friday "Budúci piatok" + :date.nlp/next-monday "Budúci pondelok" + :date.nlp/next-month "Budúci mesiac" + :date.nlp/next-saturday "Budúcu sobotu" + :date.nlp/next-sunday "Budúcu nedeľu" + :date.nlp/next-thursday "Budúci štvrtok" + :date.nlp/next-tuesday "Budúci utorok" + :date.nlp/next-wednesday "Budúcu stredu" + :date.nlp/next-week "Budúci týždeň" + :date.nlp/next-year "Budúci rok" + :date.nlp/this-friday "Tento piatok" + :date.nlp/this-monday "Tento pondelok" + :date.nlp/this-month "Tento mesiac" + :date.nlp/this-saturday "Túto sobotu" + :date.nlp/this-sunday "Túto nedeľu" + :date.nlp/this-thursday "Tento štvrtok" + :date.nlp/this-tuesday "Tento utorok" + :date.nlp/this-wednesday "Túto stredu" + :date.nlp/this-week "Tento týždeň" + :date.nlp/this-year "Tento rok" + :date.nlp/today "Dnes" + :date.nlp/tomorrow "Zajtra" + :date.nlp/yesterday "Včera" + + :deeplink/open-block-error "Nepodarilo sa otevřít odkaz. ID bloku `{1}` neexistuje v aktuálnym grafu." + :deeplink/open-graph-error "Nepodarilo sa otevřít graf. Graf `{1}` neexistuje." + :deeplink/open-page-error "Nepodarilo sa otevřít odkaz. Stránka `{1}` neexistuje v aktuálnym grafu." + + :editor/add-content-first-warning "Prosím, najskôr pridajte nejaký obsah." + :editor/auto-heading "Automatický nadpis" + :editor/block-search "Vyhľadať blok" + :editor/click-to-edit "Kliknutím upraviť" + :editor/code-language-placeholder "Vyberte jazyk" + :editor/collapse-block-children "Zbaliť podriadené bloky" + :editor/cut "Vystrihnúť" + :editor/cycle-todo "Prepnúť TODO" + :editor/delete-selection "Vymazať výběr" + :editor/display-tag-inline-hint "na zobrazenie tejto značky v riadku namiesto na konci tohto uzla." + :editor/expand-block-children "Rozbaliť podriadené bloky" + :editor/heading "Nadpis {1}" + :editor/moving-blocks-count "Presúvanie {1} blokov" + :editor/new-page "Nová stránka" + :editor/new-tag "Nový štítok" + :editor/no-block-selected-warning "Žiadne bloky nevybrány" + :editor/paste "Vložiť" + :editor/reference-node-use-page-ref "Ak chcete odkazovať na uzol, použite `[[]]`." + :editor/remove-heading "Odstrániť nadpis" + :editor/search-for-node "Vyhľadať uzol" + :editor/search-for-tag "Vyhľadať značku" + :editor/search-template-placeholder "Hľadať šablónu" + :editor/template-insert-error "Chyba vloženia šablóny: {1}" + + :editor.document-mode/new-block-hint "{1} na vytvorenie nového bloku" + :editor.document-mode/title "Režim dokumentu" + :editor.document-mode/toggle-desc "Kliknite `D` alebo zadajte {1} na prepnutie režimu dokumentu" + + :editor.quick-add/add-to-today "Pridať na dnešnú stránku" + :editor.quick-add/title "Rýchle pridanie" + + :editor.slash/advanced-query "Pokročilý dopyt" + :editor.slash/advanced-query-desc "Vytvoriť blok pokročilého dopytu" + :editor.slash/calculator "Kalkulačka" + :editor.slash/calculator-desc "Vložiť kalkulačku" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Blok kódu" + :editor.slash/code-block-desc "Vložiť blok kódu" + :editor.slash/current-time "Aktuálny čas" + :editor.slash/current-time-desc "Vložiť aktuálny čas" + :editor.slash/date-picker "Výber dátumu" + :editor.slash/date-picker-desc "Vyberte dátum a vložte ho sem" + :editor.slash/embed-html "Vložiť HTML" + :editor.slash/embed-twitter-tweet "Vložiť tweet z Twitteru" + :editor.slash/embed-video-url "Vložiť URL videa" + :editor.slash/embed-youtube-timestamp "Vložiť časovú značku YouTube" + :editor.slash/group-advanced "POKROČILÉ" + :editor.slash/group-basic "ZÁKLADNÉ" + :editor.slash/group-format "FORMÁT" + :editor.slash/group-heading "Nadpis" + :editor.slash/group-list-type "TYP ZOZNAMU" + :editor.slash/group-plugins "PLUGINY" + :editor.slash/group-priority "PRIORITA" + :editor.slash/group-task-date "DÁTUM ÚLOHY" + :editor.slash/group-task-status "STAV ÚLOHY" + :editor.slash/group-time-and-date "ČAS A DÁTUM" + :editor.slash/heading-label "Nadpis {1}" + :editor.slash/image-link "Odkaz na obrázok" + :editor.slash/image-link-desc "Vytvoriť HTTP odkaz na obrázok" + :editor.slash/link-desc "Vytvoriť HTTP odkaz" + :editor.slash/math-block "Matematický blok" + :editor.slash/math-block-desc "Vytvoriť LaTeX blok" + :editor.slash/no-priority "Bez priority" + :editor.slash/node-embed "Vložiť uzol" + :editor.slash/node-embed-desc "Vložiť uzol sem" + :editor.slash/node-reference "Odkaz na uzol" + :editor.slash/node-reference-desc "Vytvoriť spätný odkaz na uzol (stránka alebo blok)" + :editor.slash/normal-text "Normálny text" + :editor.slash/normal-text-desc "Vymazať nadpis a nastaviť ako normálny text" + :editor.slash/number-children "Číslovať potomkov" + :editor.slash/number-list "Číslovaný zoznam" + :editor.slash/priority-desc "Nastaviť prioritu na {1}" + :editor.slash/priority-label "Priorita {1}" + :editor.slash/query-function "Funkcia dopytu" + :editor.slash/query-function-desc "Vytvoriť funkciu dopytu" + :editor.slash/quote-desc "Vytvoriť blok citátu" + :editor.slash/status-desc "Nastaviť stav na {1}" + :editor.slash/template-desc "Vložiť vytvorenú šablónu sem" + :editor.slash/today-desc "Vložiť dnešný dátum" + :editor.slash/tomorrow-desc "Vložiť zajtrašný dátum" + :editor.slash/underline "Podčiarknutie" + :editor.slash/underline-desc "Vytvoriť podčiarknuté formátovanie textu" + :editor.slash/upload-asset "Nahrať súbor" + :editor.slash/upload-asset-desc "Nahrať typy súborov ako obrázok, PDF, DOCX atď." + :editor.slash/yesterday-desc "Vložiť včerajší dátum" + + :electron/about "O Logseq" + :electron/add-to-dictionary "Pridať do slovníku" + :electron/block-not-exist "Otvorenie odkazu zlyhalo. ID bloku `{1}` v grafe neexistuje." + :electron/cancel "Zrušiť" + :electron/copy-image "Kopírovať obrázok" + :electron/link-open-confirm "Naozaj chcete otvoriť tento odkaz?\n{1}" + :electron/link-open-failed-missing-graph "Nepodarilo sa otevřít odkaz. Chybí graf." + :electron/link-open-failed-no-graph "Otvorenie odkazu zlyhalo. Identifikátor grafu `{1}` sa nepodarilo priradiť k žiadnemu prepojenému grafu." + :electron/link-open-failed-no-target "Otvorenie odkazu zlyhalo. `{1}` sa nepodarilo priradiť k žiadnemu cieľu." + :electron/look-up "Hľadať výber" + :electron/main-exception "[Výnimka hlavného procesu]\n{1}\n{2}" + :electron/new-window "Nové okno" + :electron/official-docs "Oficiální dokumentace" + :electron/ok "OK" + :electron/open-dir-error "Nepodarilo sa otevřít adresář: {1}" + :electron/save-image "Uložiť obrázok" + :electron/save-image-as "Uložiť obrázok jako" + :electron/search-with-google "Hľadať na Google" + :electron/unimplemented-callback "Neimplementovaná akcia x-callback-url: `{1}`." + :electron/version "Verzia {1}" + :electron/write-file-error "Zápis do súboru {1} zlyhal, {2}." + :electron/write-file-error-with-backup "Zápis do súboru {1} zlyhal, {2}. Záložný súbor bol uložený do {3}." + + :encryption/cloud-password-rich (fn [] ["Ak stratíte heslo, žiadne vaše údaje v cloude nebude možné dešifrovať. " [:span "Stále však budete mať prístup k lokálnej verzii svojho grafu."]]) + :encryption/current-password "Aktuálny heslo" + :encryption/enter-password "Zadajte heslo" + :encryption/enter-password-again "Zadajte heslo znova" + :encryption/enter-password-title "Zadejte heslo" + :encryption/failed-to-force-reset-password "Nepodarilo sa vynutit reset hesla" + :encryption/failed-to-update-password "Nepodarilo sa aktualizovat heslo" + :encryption/fetch-key-pair-error "Chyba páru kľúčov rsa používateľa: {1}" + :encryption/fetching-key-pair "Načítání páru klíčů" + :encryption/force-reset-password "Vynutit reset hesla" + :encryption/force-reset-password-successfully "Heslo vynuceně resetováno" + :encryption/force-resetting-password "Vynucený reset" + :encryption/forgot-password-question "Zabudli ste heslo?" + :encryption/forgot-password-warning "Ak zapomenete heslo, šifrovaná data nebude možné obnovit." + :encryption/init-key-pair "Inicializovat pár klíčů" + :encryption/init-key-pair-error "Chyba inicializácie páru kľúčov: {1}" + :encryption/password-not-matched "Hesla sa neshodují" + :encryption/password-updated-successfully "Heslo aktualizováno" + :encryption/remember-password-rich (fn [] [[:span "Nezabudnite si "] "zapamätať heslo, ktoré ste nastavili, pretože ak ho zabudnete, nedokážeme ho resetovať ani obnoviť, " [:span "a odporúčame vám "] "uložiť si jeho bezpečnú zálohu."]) + :encryption/reset-password "Resetovať heslo" + :encryption/set-new-password "Nastaviť nové heslo" + :encryption/set-password-title "Nastaviť heslo" + :encryption/updating-password "Aktualizácie hesla" + :encryption/wrong-password "Nesprávne heslo" + + :export/backup-successful "Záloha vytvorená!" + :export/block-data-copied "Data bloku zkopírována do schránky" + :export/collecting-assets "Zhromažďovanie súborov" + :export/copied-to-clipboard "Skopírované do schránky!" + :export/copy-or-export-as "Kopírovať / Exportovať ako..." + :export/creating-zip "Vytváranie zip súboru" + :export/db-backup-error "Nepodarilo sa vytvořit zálohu DB." + :export/db-edn "Exportovať jako súbor EDN" + :export/debug-transit-desc "Exportuje do súboru .transit na odoslanie nám na ladenie. Citlivé údaje budú z exportovaného súboru odstránené." + :export/debug-transit-file "Exportovať ladiaci transit súbor" + :export/edn-desc "Exportuje do čitateľného a editovateľného súboru .edn. Nespoliehajte sa naň ako na primárnu zálohu." + :export/error-unexpected "Počas exportu došlo k neočakávanej chybe. Podrobnosti nájdete v konzole JavaScript." + :export/exporting "Exportovanie" + :export/finalizing "Dokončovanie" + :export/format-text "Text" + :export/graph "Exportovať graf" + :export/graph-ontology-data-copied "Data ontologie grafu zkopírována do schránky" + :export/indent-style-dashes "pomlčky" + :export/indent-style-label "Štýl odsadenia:" + :export/indent-style-none "bez odsadenia" + :export/indent-style-spaces "medzery" + :export/level-lte "úroveň <=" + :export/markdown "Exportovať jako Markdown (bez vlastnosťí bloků)" + :export/newline-after-block "nový riadok po bloku" + :export/no-updates-since-last-export "Žiadne aktualizácie od posledního exportu." + :export/open-blocks-only "len otvorené bloky (preskočiť zbalených potomkov)" + :export/page "Exportovať stránku" + :export/page-data-copied "Data stránky zkopírována do schránky" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Príprava zip súboru" + :export/preview-alt "náhľad exportu" + :export/public-pages "Exportovať veřejné stránky" + :export/remove-emphasis "odstrániť zvýraznenie" + :export/remove-properties "odstrániť vlastnosti" + :export/remove-tags "odstrániť #štítky" + :export/save-to-file "Uložiť do súboru" + :export/sqlite-db "Exportovať databázi SQLite" + :export/title "Export" + :export/transparent-background "Průhledné pozadí" + :export/view-nodes-data-copied "Data uzlů pohľadu zkopírována do schránky" + :export/zip "Exportovať DB SQLite a súbory" + :export/zip-error "Export ZIP zlyhal." + + :export.backup/backup-now "Zálohovať teraz" + :export.backup/cancel "Zrušiť zálohovanie" + :export.backup/enabled-desc "Hodinové zálohy sú pre tento graf povolené, {1}." + :export.backup/folder "Priečinok zálohy:" + :export.backup/hourly-note "Záloha bude vytvorená každú hodinu." + :export.backup/open-folder "otvoriť priečinok záloh pre tento graf" + :export.backup/schedule "Naplánovať zálohu" + :export.backup/set-folder-first "Najskôr nastavte priečinok zálohy" + :export.backup/sqlite-desc "Hlavný spôsob zálohovania obsahu grafu do jedného súboru .sqlite." + :export.backup/unsupported-desc "Váš prehliadač nepodporuje {{The File System Access API}}, prosím prepnite na prehliadač založený na Chromium." + :export.backup/zip-desc "Hlavný spôsob zálohovania obsahu grafu a súborov do súboru .zip." + + :file/config-duplicate-keys "Súbor '{1}' má duplicitné kľúče. Kľúč '{2}' je priradený viackrát." + :file/config-invalid "Konfigurační súbor je neplatný" + :file/format-not-supported "Formát .{1} nie je podporovaný." + :file/label "Súbor" + :file/last-modified-at "Naposledy upravený" + :file/name "Názov súboru" + :file/no-data "Žiadne dáta" + :file/title "Súbor {1}" + + :file.config/deprecation-title "Súbor {1} obsahuje nasledujúce zastarané funkcie:" + :file.config/error-title "Súbor {1} obsahuje nasledujúce chyby:" + :file.config/invalid-desc "Ujistite sa, že je konfigurácia uzavretá v {}." + :file.config/invalid-title "Súbor {1} nie je platný." + :file.config/read-failed-desc "Ujistite sa, že je konfigurácia uzavretá v {}. Tiež sa ujistite, že znaky '( { [' majú príslušný uzavierací znak ') } ]'." + :file.config/read-failed-title "Čítanie súboru {1} zlyhalo" + + :flashcard/add-query "Pridať nový dopyt" + :flashcard/all-cards "Všetky kartičky" + :flashcard/select-cards "Vybrať kartičky" + :flashcard/shortcut-tooltip "Skratka: {1}" + + :flashcard.empty/desc "Môžete pridať „{1}“ do ľubovoľného bloku, aby ste ho zmenili na kartu, alebo spustiť „/cloze“ a pridať nejaké cloze." + :flashcard.empty/title "Vitajte v Kartičkách" + + :flashcard.rating/again "Znova" + :flashcard.rating/again-desc "Odpoveď bola nesprávna. To automaticky znamená, že sme kartičku zabudli. Je to výpadok pamäti。" + :flashcard.rating/easy "Ľahké" + :flashcard.rating/easy-desc "Odpoveď bola správna a vybavili sme si ju rýchlo a s istotou, bez mentálnej námahy。" + :flashcard.rating/good "Dobré" + :flashcard.rating/good-desc "Odpoveď bola správna, ale vyžadovalo si to určité mentálne úsilie si ju vybaviť。" + :flashcard.rating/hard "Ťažké" + :flashcard.rating/hard-desc "Odpoveď bola správna, ale neboli sme si ňou istí alebo trvalo príliš dlho si ju vybaviť." + + :flashcard.review/finished "Hotovo! 💯" + :flashcard.review/hide-answers "Skryť odpovědi" + :flashcard.review/show-answers "Zobraziť odpovědi" + :flashcard.review/show-clozes "Zobraziť mezery" + + :format/bold "Tučné" + :format/code "Kód" + :format/highlight "Zvýraznenie" + :format/italics "Kurzíva" + :format/strikethrough "Prečiarknutie" + + :graph/all-graphs "Všetky grafy" + :graph/already-exists-error "Graf '{1}' už existuje. Skúste to prosím znova s iným názvom." + :graph/as-png "ako PNG" + :graph/built-in-pages "Vstavané stránky" + :graph/charge-range "Rozsah náboja" + :graph/charge-strength "Sila náboja" + :graph/click-to-search "Kliknutím vyhľadáte" + :graph/create-db "Vytvoriť DB graf" + :graph/create-error "Nepodarilo sa vytvořit graf" + :graph/create-new "Vytvoriť nový graf" + :graph/created-before "Vytvorené pred" + :graph/creating "Vytváranie grafu" + :graph/delete-local-action "Odstrániť lokálny graf" + :graph/delete-local-confirm-desc "Ste si istý, že chcete natrvalo vymazať graf \"{1}\" z Logseq?" + :graph/delete-server-action "Odstrániť zo servera" + :graph/delete-server-confirm-desc "Ste si istý, že chcete natrvalo vymazať graf \"{1}\" z nášho servera?" + :graph/delete-warning "⚠️ Upozorňujeme, že po vymazaní nemôžeme tento graf obnoviť. Pred vymazaním sa ujistite, že máte zálohy." + :graph/diff "Git diff" + :graph/downloading "sťahovanie" + :graph/encrypt-data-label "Zašifrovať údaje grafu" + :graph/excluded-pages "Vylúčené stránky" + :graph/forces "Sily" + :graph/gc-success "Čistenie grafu bolo úspešné!" + :graph/last-opened-at-label "Naposledy otvorené: {1}" + :graph/leave-action "Opustiť tento graf" + :graph/leave-confirm-desc "Ste si istý, že chcete opustiť tento graf?" + :graph/leave-error "Nepodarilo sa opustit graf" + :graph/left "Graf opuštěn" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "odkaz" "odkazov"))) + :graph/link-distance "Vzdialenosť prepojení" + :graph/local-graphs "Lokálne grafy" + :graph/n-hops-from-selected-nodes "Počet skokov od vybraných uzlov" + :graph/name-placeholder "názov vášho grafu" + :graph/nodes "Uzly" + :graph/orphan-pages "Osirotené stránky" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "stránka" "stránok"))) + :graph/pause-simulation "Pozastaviť simuláciu" + :graph/preparing "príprava" + :graph/refresh-remote-graphs "Obnoviť vzdialené grafy" + :graph/remote-graphs "Vzdialené grafy" + :graph/removed "odstránený graf „{1}“" + :graph/removed-and-redirecting "Odstránený graf „{1}“. Prebieha presmerovanie na graf „{2}“" + :graph/removed-from-sync "Graf odstraněn ze synchronizace" + :graph/reset "Resetovať graf" + :graph/reset-forces "Resetovať sily" + :graph/search "Hľadať" + :graph/shared-graphs "Zdieľané grafy" + :graph/updated-switching "Graf aktualizován. Přepínání..." + :graph/use-sync-beta "Použiť Logseq Sync (beta testovanie)" + :graph/use-sync-label "Použiť Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "Výpočet diagnostiky kontrolného súčtu grafu zlyhal." + :graph.diagnostics/checksum-recomputed-success "Kontrolný súčet bol prepočítaný. Prepočítaný: {1}, lokálny: {2}, vzdialený: {3}. Bol stiahnutý súbor {4}.edn s {5} blokmi a atribútmi kontrolného súčtu {6}." + :graph.diagnostics/checksum-unavailable-warning "Nie je možné vypočítať diagnostiku kontrolného súčtu pre aktuálny graf." + :graph.diagnostics/client-ops-export-failed-error "Nepodarilo sa exportovať Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Export Client ops SQLite zlyhal: neplatný typ payloadu {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite exportovaný: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Nenašiel sa žiadny graf." + + :graph.page/show-journals "Zobraziť denníky" + :graph.page/title "Graf stránok" + + :graph.switch/add-graph-action "Áno, pridať ďalší graf" + :graph.switch/empty-desc "Žiadne zodpovedajúce grafy. Chcete pridať ďalší?" + :graph.switch/prompt "Prepnúť" + :graph.switch/select-prompt "Vybrať graf" + + :graph.validation/config-arweave-gateway-warning "už nie je podporované." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "už nie je podporované. Prosím použite '/' a hlaste chyby." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "sa v grafoch databázy nepoužíva, pretože existuje iba režim markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Validácia zistila {1} neplatný blok (bloky). Tieto bloky môžu byť chybné. Pokus o opravu neplatných blokov. Spustite validáciu znovu, aby ste zistili, či boli opravené." + :graph.validation/name-reserved-characters-warning "Názov grafu nesmie obsahovať nasledujúce vyhradené znaky:" + :graph.validation/reserved-character-asterisk "hviezdička" + :graph.validation/reserved-character-backslash "spätné lomítko" + :graph.validation/reserved-character-colon "dvojbodka" + :graph.validation/reserved-character-double-quote "dvojitá úvodzovka" + :graph.validation/reserved-character-forward-slash "lomítko" + :graph.validation/reserved-character-greater-than "väčšie ako" + :graph.validation/reserved-character-hash "mriežka" + :graph.validation/reserved-character-less-than "menšie ako" + :graph.validation/reserved-character-pipe "zvislá čiara alebo pipe" + :graph.validation/reserved-character-plus "plus" + :graph.validation/reserved-character-question-mark "otáznik" + :graph.validation/valid "Váš graf je platný! {1}" + + :header/go-back "Späť" + :header/go-forward "Vpred" + :header/highlight-recent-blocks "Zvýrazniť nedávne bloky" + :header/highlight-recent-blocks-days-ago "Zvýrazniť nedávne bloky: pred {1} dňami" + :header/more "Viac" + :header/quit-highlight-recent-blocks "Ukončiť zvýrazňovanie nedávnych blokov" + :header/toggle-left-sidebar "Prepnúť ľavý panel" + + :help/about "O Logseq" + :help/about-title "O aplikácii" + :help/ask-community "Opýtajte sa komunity" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Referencia na blok" + :help/blog "Blog" + :help/bug "Nahlásiť chybu na GitHube" + :help/changelog "Zoznam zmien" + :help/community-title "Komunita" + :help/context-menu "Kontextové menu bloku" + :help/context-menu-action "Klik pravým tlačidlom na odrážku" + :help/development-title "Vývoj" + :help/docs "Dokumentácia" + :help/feature "Požiadavka na funkciu" + :help/forum-community "Komunita na fóre" + :help/handbook "Príručka" + :help/learn-more "Zistiť viac" + :help/markdown-syntax "Syntax Markdownu" + :help/open-link-in-sidebar "Otvoriť odkaz v bočnom paneli" + :help/open-link-in-sidebar-action "Shift+klik na odkaz" + :help/privacy "Zásady ochrany osobných údajov" + :help/reference-autocomplete "Automatické dopĺňanie referencie na stránku" + :help/release-notes "Poznámky k vydaniu" + :help/roadmap "Plán vývoja" + :help/search "Hľadať" + :help/slash-autocomplete "Automatické dopĺňanie s lomítkom" + :help/start "Začíname" + :help/submit-feedback "Odoslať spätnú väzbu" + :help/support-forum "Fórum podpory" + :help/terms "Podmienky" + :help/terms-title "Podmienky" + :help/usage-title "Používanie" + + :help.handbook/chat-on-discord "Chatujte na Discord" + :help.handbook/chat-on-discord-desc "Pýtajte sa rýchle otázky, spoznajte ďalších používateľov a objavte nové postupy." + :help.handbook/copy-topic-link "Kopírovať odkaz na tému" + :help.handbook/current-chapter "Aktuálna kapitola" + :help.handbook/help-categories "Kategorie nápovědy" + :help.handbook/home "Domov" + :help.handbook/link-copied "Odkaz na príručku skopírovaný!" + :help.handbook/monthly-posts "mesačné príspevky" + :help.handbook/next-chapter "Ďalšia kapitola" + :help.handbook/popular-topics "Populární témata" + :help.handbook/prev-chapter "Predchádzajúca kapitola" + :help.handbook/resources-from "Zdroje od {1}" + :help.handbook/search-placeholder "Hľadať" + :help.handbook/shortcuts-count "{1} skratiek" + :help.handbook/sync "Synchronizácia" + :help.handbook/title "Príručka" + :help.handbook/topics "Témata" + :help.handbook/users-online "používateľov online" + :help.handbook/visit-the-forum "Navštívte fórum" + :help.handbook/visit-the-forum-desc "Dajte spätnú väzbu, žiadajte o funkcie a veďte podrobné diskusie." + :help.handbook/writing-mode "Režim písania (náhľad v čase)" + + :help.shortcuts/desc "Zobraziť skratky a tipy" + :help.shortcuts/label "Klávesové skratky" + :help.shortcuts/shortcut-column "Skratka" + :help.shortcuts/title "Klávesové skratky" + :help.shortcuts/triggers "Akcie" + + :icon/emojis-count "Emoji ({1})" + :icon/icons-count "Ikony ({1})" + :icon/matched-count "Nájdené ({1})" + :icon/search-all "Hľadať všetko" + :icon/search-emojis "Hľadať emoji" + :icon/search-icons "Hľadať ikony" + :icon/tab-all "Všetko" + :icon/tab-emojis "Emoji" + :icon/tab-icons "Ikony" + + :import/all-tags "Importovať všetky štítky" + :import/asset-too-large-warning "Kopírovanie assetu {1} bolo preskočené, pretože presahuje limit 100 MB." + :import/assets-import-partial "{1}/{2} súborů importováno. Podrobnosti v konzole." + :import/assets-imported "{1} súborů importováno." + :import/assets-skipped "{1} súborů přeskočeno. Podrobnosti v konzole." + :import/block-icons-cannot-be-imported "Ikony bloků nemožno importovat. Importujte ručně v bloku {1}." + :import/cannot-import-block-into-non-block-entity "Nemožno importovat blok do entity, která není blokem." + :import/db-edn-desc "Importovať export EDN z DB grafu do nového DB grafu" + :import/db-edn-title "EDN do DB grafu" + :import/debug-transit-desc "Importovať ladiaci transit súbor do nového DB grafu" + :import/debug-transit-title "Ladiaci Transit" + :import/default-db-graph-behavior "Predvolený chování DB grafu" + :import/empty-graph-name "Názov grafu nemôže byť prázdný." + :import/extract-inline-code-snippets "Extrahovat inline kód jako podbloky" + :import/file-finished "Import dokončen!" + :import/file-to-db-desc "Importovať priečinok súborového grafu Logseq do nového DB grafu" + :import/file-to-db-title "Súbory do DB grafu" + :import/graph-name-conflict "Graf s tímto názvem už existuje. Zvolte jiný názov!" + :import/graph-name-placeholder "Názov grafu" + :import/ignored-assets "{1} súborů přeskočeno při importu. Podrobnosti v JavaScript konzole." + :import/ignored-files "{1} súborů přeskočeno při importu. Podrobnosti v JavaScript konzole." + :import/ignored-properties "{1} vlastnosťí přeskočeno při importu" + :import/ignored-properties-fix "Pro opravu typu vlastnosťi změňte hodnotu na správný typ a opakujte import" + :import/invalid-blocks-detected "{1} neplatných bloků zjištěno při importu. Interakce nemusí fungovat. Podrobnosti v JavaScript konzole." + :import/invalid-edn-file "Poskytnutý súbor EDN je neplatný. Opravte a zkuste znovu." + :import/loading "Importovanie" + :import/logseq-config-missing "Chyba importu: graf Logseq neobsahuje súbor 'logseq/config.edn'." + :import/new-graph-name "Nový názov grafu" + :import/notes "Importovať poznámky" + :import/org-files-imported "{1} súborů Org importováno jako Markdown. Podpora Org bude přidána později." + :import/page-icons-cannot-be-imported "Ikony stránok nemožno importovat. Importujte ručně na stránke {1}." + :import/properties-case-insensitive-commas "Názvy vlastnosťí (bez rozlišení velikosti písmen, oddělené čárkami)" + :import/property-classes-placeholder "např. type" + :import/property-import-manually "Túto vlastnosť je třeba importovat ručně" + :import/property-parent-classes-placeholder "např. parent" + :import/property-type-mismatch "Hodnota vlastnosťi je typu {1}, ne {2}" + :import/property-value-tag-parents "Importovať rodiče štítkov z hodnot vlastnosťí" + :import/property-value-tags "Importovať další štítky z hodnot vlastnosťí" + :import/remove-inline-tags "Odstrániť inline štítky" + :import/select-edn-or-json "Vyberte súbor EDN alebo JSON." + :import/specific-tags "Importovať konkrétní štítky" + :import/sqlite-and-assets-desc "Importovať zip obsahujúci db.sqlite a priečinok so súbormi" + :import/sqlite-and-assets-title "SQLite + súbory (.zip)" + :import/submitted-edn-invalid "Poskytnutá data EDN jsou neplatná! Opravte a zkuste znovu." + :import/successful "Import úspešný!" + :import/tag-classes-placeholder "Štítok1, Štítok2" + :import/tags-case-insensitive "Štítky (bez rozlišení velikosti písmen)" + :import/title "Import" + :import/unexpected-error "Neočekávaná chyba: {1}" + :import/zip-import-error "import ZIP zlyhal: {1}" + :import/zip-missing-db-sqlite "ZIP neobsahuje db.sqlite" + + :journal/add-blocks-to-today-success "Bloky přidané dnes" + :journal/page-cant-convert-warning "Táto stránka není stránkou denníka." + :journal/parse-date-to-name-error "Nepodarilo sa analyzovat názov denníka" + + :journal.default-query/doing "PREBIEHA" + :journal.default-query/todo "ÚLOHA" + + :keymap/all "Všetky" + :keymap/already-bound "Zkratka už přiřazena" + :keymap/also-used-for-action "Tiež používáno pro {1}" + :keymap/also-used-for-action-in-context "Tiež používáno pro {1} V kontextu {2}" + :keymap/clear "Vymazat" + :keymap/clear-keystroke-filter "Vymazať filter klávesov" + :keymap/clear-search "Vymazať hľadanie" + :keymap/custom "Vlastní" + :keymap/deactivates-chord "Deaktivuje" + :keymap/deactivates-chords "Deaktivuje {1} kombinácií skratiek" + :keymap/disabled "Zakázané" + :keymap/esc-is-reserved "Esc je rezervován" + :keymap/hint-cancel "Zrušiť" + :keymap/hint-close "Zavrieť" + :keymap/hint-reassign "Priradiť znovu" + :keymap/hint-remove "Odstrániť" + :keymap/keystroke-filter "Filtr podľa stisknutí" + :keymap/no-matching-shortcuts "Žiadne odpovídající skratky" + :keymap/press-a-shortcut "Stiskněte klávesovou zkratku" + :keymap/press-keys-to-filter "Stiskněte klávesy pro filtrování" + :keymap/reassign "Priradiť znovu" + :keymap/reassign-tooltip "Priradiť znovu zkratku této akce" + :keymap/reassigned-from "Přiřazeno znovu z {1}" + :keymap/refresh-all "Obnoviť všetko" + :keymap/remove-binding "Odstrániť priradenie" + :keymap/remove-filter "Odstrániť filter" + :keymap/reset "Resetovať" + :keymap/reset-to-default "Resetovať na predvolený" + :keymap/search-by-keys "Hľadať podľa kláves" + :keymap/search-placeholder "Hľadať skratky…" + :keymap/shortcut-added "Zkratka přidána" + :keymap/shortcut-removed "Zkratka odstraněna" + :keymap/toggle-categories-pane "Prepnúť panel kategórií" + :keymap/undo "Späť" + :keymap/unset "Nenastaveno" + :keymap/used-by-action "Používáno {1}" + + :library/add-existing-pages "Pridať existujúce stránky do Knižnice" + :library/add-pages "Pridať stránky" + :library/title "Knižnica" + + :mobile/camera-access-denied "Prístup fotoaparátu je zamietnutý. Povolte ho v Nastavení > Logseq." + :mobile/microphone-access-denied "Prístup k mikrofónu je zamietnutý. Povolte ho v Nastavení > Logseq." + + :mobile.header/actions "Akce" + :mobile.header/create-graph "Vytvoriť graf" + :mobile.header/delete-block-confirm-desc "Vymazať tento blok?" + :mobile.header/delete-page-confirm-desc "Vymazať túto stránku?" + + :mobile.intent/file-options "Možnosti súboru" + :mobile.intent/open-with-app "Otvoriť súbor vo vašej obľúbenej aplikácii" + :mobile.intent/select-option-prompt "Vyberte akciu na vykonanie" + :mobile.intent/share "Zdieľať" + + :mobile.log/all "Všetky" + :mobile.log/errors-only "Iba chyby" + :mobile.log/full "Plný" + :mobile.log/new-first "Nejnovější první" + :mobile.log/old-first "Nejstarší první" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Účet" + :mobile.settings/check-log "Protokol" + :mobile.settings/discord-community "Komunita Discord" + :mobile.settings/forum "Fórum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Nahlásit chybu" + :mobile.settings/revision "Revize" + :mobile.settings/theme "Motív" + :mobile.settings/version "Verzia" + + :mobile.share/file-import-error "Import súboru zlyhal" + :mobile.share/media-import-error "Import médií zlyhal" + :mobile.share/unsupported-content-warning "Analýza aktuálne zdieľaného obsahu nie je podporovaná. Prosím, nahláste nasledujúce kódy na {1}. Čoskoro sa na to pozrieme." + :mobile.share/unsupported-import-type "Import súboru {1} nie je podporovaný. Môžete to nahlásiť na {2}. Čoskoro sa na to pozrieme." + + :mobile.tab/capture "Zachytit" + :mobile.tab/go-to "Prejsť na" + :mobile.tab/graphs "Grafy" + + :mobile.toolbar/audio "Audio" + :mobile.toolbar/copy-ref "Kopírovať referenciu" + :mobile.toolbar/copy-url "Kopírovať URL" + :mobile.toolbar/hide "Skryť" + :mobile.toolbar/indent "Odsadit" + :mobile.toolbar/outdent "Zmenšit odsazení" + :mobile.toolbar/photo "Fotografie" + :mobile.toolbar/redo "Znovu" + :mobile.toolbar/reference "Odkaz" + :mobile.toolbar/slash "Lomítko" + :mobile.toolbar/tag "Štítok" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Späť" + :mobile.toolbar/unselect "Zrušiť výber" + + :nav/all-files "Všetky súbory" + :nav/all-journals "Všetky denníky" + :nav/appearance "Vzhľad" + :nav/assets "Súbory" + :nav/cannot-go-to-internal-page "Nemožno prejsť na internú stránku" + :nav/flashcards "Kartičky" + :nav/graph "Graf" + :nav/graph-view "Zobrazenie grafu" + :nav/help "Pomoc" + :nav/home "Domov" + :nav/invalid-jump-error "Neplatný skok" + :nav/journals "Denníky" + :nav/plugins "Pluginy" + :nav/search "Hľadať" + :nav/settings "Nastavenia" + :nav/skip-to-main-content "Preskočiť na hlavný obsah" + :nav/tasks "Úlohy" + :nav/themes "Motívy" + + :nav.all-pages/label "Všetky stránky" + :nav.all-pages/title "Všetky stránky" + + :node/built-in-cant-delete-error "Vstavaný prvky nemožno smazat." + :node/new "Nový uzel" + + :notification/clear-all "Zmazať všetko" + :notification/copied "Skopírované" + + :onboarding.import/desc "Popis importu" + :onboarding.import/sqlite-desc "Import z databáze SQLite" + :onboarding.import/title "Import" + + :onboarding.import-option/desc "Můžete importovat data z jiných aplikací" + :onboarding.import-option/title "Import dat" + + :onboarding.setup/desc "Pracovný priestor pre vaše znalosti" + :onboarding.setup/title (fn [] ["Vitajte v " [:strong "Logseq!"]]) + + :page/add-to-favorites "Pridať do obľúbených" + :page/added-tag-to-node "Pridaná značka \"{1}\" k \"{2}\"" + :page/backlinks "Spätné odkazy" + :page/clear "Vyčistiť" + :page/clear-local-storage-desc "Tým sa vymažú menšie predvoľby ako nastavenie tmavej/svetlej témy." + :page/cleared "Vymazané" + :page/contents "Obsah" + :page/convert-to-tag "Previesť na štítok" + :page/copy-url "Kopírovať adresu stránky" + :page/create "Vytvoriť novú stránku" + :page/created-at "Vytvorené" + :page/current-graph-as-sqlite-db "aktuálny graf ako SQLite databáza" + :page/default-query-error "Zlyhanie predvoleného dopytu:" + :page/delete "Odstrániť stránku" + :page/go-back-home "Prejsť domov" + :page/hide-properties "Skryť vlastnosti" + :page/local-storage "lokálne úložisko" + :page/logseq-is-having-a-problem "Logseq má problém. Skúste tieto bezpečné kroky, aby ste ho dostali do funkčného stavu:" + :page/make-private "Označiť stránku ako súkromnú" + :page/make-public "Označiť stránku ako verejnú" + :page/moved-to-recycle "Uzol bol presunutý do Koša" + :page/name "Názov stránky" + :page/no-page-found-to-copy "Nebyla nájdená stránka ke zkopírování" + :page/not-found "Stránka nenájdená" + :page/not-found-desc "Ups! Stránka, ktorú hľadáte, neexistuje." + :page/not-found-title "Stránka nenájdená" + :page/not-found-warning "Stránka nenájdená" + :page/open-all-graphs-desc "Môžete tiež prejsť na {{All graphs}} a prepnúť na iný graf." + :page/open-issue-desc "Ak tieto kroky na riešenie problémov nepomohli, prosím {{open an issue}}." + :page/open-properties "Otvoriť vlastnosti" + :page/rebuild "Prebudovať" + :page/relaunch "Reštartovať" + :page/relaunch-desc "Ukončiť a znovu otvoriť aplikáciu." + :page/scheduled-and-deadline "Naplánované a termíny" + :page/search-index "index vyhľadávania" + :page/send-db-for-debugging "Môžete ho odoslať na help@logseq.com na ladenie." + :page/something-went-wrong "Niečo sa pokazilo" + :page/step "Krok {1}" + :page/the-app "aplikácia" + :page/try "Vyskúšať" + :page/unfavorite "Odstrániť z obľúbených" + :page/unknown "Neznáma stránka" + :page/updated-at "Aktualizované" + + :page.convert/block-parent-not-page "Nemožno převést blok. Rodič není stránka." + :page.convert/cant-be-block "Stránku „{1}“ nemožno skonvertovať na blok." + :page.convert/cant-be-block-has-children "Stránku „{1}“ nie je možné skonvertovať na blok, pretože má potomkov stránky." + :page.convert/cant-be-block-move-first "Stránku „{1}“ nemožno skonvertovať na blok, najskôr ju presuňte na inú stránku." + :page.convert/page-to-tag-action "Previesť \"{1}\" na štítok" + :page.convert/page-to-tag-built-in "Vstavaný stránky nemôžu být štítky" + :page.convert/page-to-tag-duplicate "Značka s názvom \"{1}\" už existuje." + :page.convert/page-to-tag-namespaced "Stránky s jmenným prostorem nemôžu být štítky" + :page.convert/property-value-to-page "Nemožno převést hodnotu vlastnosťi na stránku." + :page.convert/tag-to-page-action "Previesť štítok na stránku" + :page.convert/tag-to-page-built-in "Vstavaný štítky nemôžu být stránkami" + :page.convert/tag-to-page-confirm-desc "Prevod štítku na stránku tiež odstráni jeho vlastnosti a samotný štítok zo všetkých uzlov, ktoré sú ním označené. Chcete pokračovať?" + :page.convert/tag-to-page-duplicate "Stránka s názvom „{1}“ už existuje." + :page.convert/tag-to-page-has-children "Štítok má podriadené prvky a nemožno ho převést" + + :page.delete/batch-confirm-title "Naozaj chcete odstrániť tieto stránky? Vlastnosti a tagy budú natrvalo odstránené a stránky budú presunuté do Koša." + :page.delete/confirm-title "Naozaj chcete odstrániť túto stránku?" + :page.delete/permanent-confirm-title "Naozaj chcete natrvalo odstrániť túto stránku?" + :page.delete/success "Stránka „{1}“ bola úspešne odstránená!" + :page.delete/total "Celkom: {1}" + :page.delete/warning "Obsah týchto stránok bol odstránený, ale nebolo možné ho odstrániť: {1}. Ďalšie podrobnosti nájdete v konzole javascript." + + :page.validation/cant-set-built-in-tags "Nová stránka nemôže nastaviť vstavané značky: {1}" + :page.validation/duplicate "Ďalšia stránka s názvom „{1}“ už existuje pre značky: {2}." + :page.validation/name-blank "Názov stránky nemôže byť prázdný." + :page.validation/name-no-hash "Názov stránky nemôže obsahovat #" + :page.validation/name-no-slash "Názov stránky nemôže obsahovat /." + :page.validation/parents-must-be-pages "Rodiče stránok musí být stránky." + + :pdf/annotations-page "Stránka anotácií" + :pdf/area-highlight-shortcut "Zvýraznenie oblasti ({1})" + :pdf/auto-fit "Automatické prispôsobenie" + :pdf/auto-open-context-menu "Automaticky otevírat kontextové menu" + :pdf/copy-ref "Kopírovať referenciu" + :pdf/copy-text "Kopírovať text" + :pdf/corrupted-file-error "Chyba: {1}\nJe tento súbor .pdf poškodený?\nProsím, overte v externom prehliadači PDF." + :pdf/doc-metadata "Metadáta dokumentu" + :pdf/enter-to-search "Enter na vyhľadávanie" + :pdf/find-results "{1} z {2} zhôd (\"{3}\")" + :pdf/generic-error "Chyba: {1}\n{2}\nProsím, overte zdroj PDF súboru." + :pdf/highlight-mode "Režim zvýrazňovania" + :pdf/highlights "Zvýraznenia" + :pdf/hl-block-colored "Farebný štítok pre zvýraznený blok" + :pdf/linked-ref "Prepojené referencie" + :pdf/load-highlights-file-error "Chyba: zlyhalo načítanie súboru zvýraznení: \"{1}\". \n{2}" + :pdf/missing-file-error "Chyba: {1}\n Je toto správna cesta?" + :pdf/more-settings "Viac nastavení" + :pdf/no-outlines "Žiadne obrysy" + :pdf/not-found "Nenájdené." + :pdf/open-in-app-window "Otvoriť v okne aplikácie" + :pdf/open-in-external-window "Otvoriť v externom okne" + :pdf/outline "Osnova" + :pdf/page-label "Strana {1}" + :pdf/password-protected-desc "Tento dokument je chránený heslom. Prosím, zadajte heslo:" + :pdf/password-required "Vyžaduje sa heslo" + :pdf/search "Hľadať" + :pdf/search-placeholder "hľadať" + :pdf/toggle-dashed "Prepnúť prerušovaný štýl pre zvýraznenie oblasti" + :pdf/viewer "prehliadač PDF" + :pdf/zoom-in "Priblížiť" + :pdf/zoom-out "Oddialiť" + + :plugin/all "Všetky" + :plugin/auto-update-check "Automaticky kontrolovat aktualizácie" + :plugin/auto-update-check-feedback "Automatická kontrola aktualizácií: {1}!" + :plugin/check-all-updates "Skontrolovať všetky aktualizácie" + :plugin/check-update "Skontrolovať aktualizácie" + :plugin/checked "Skontrolované" + :plugin/checking-for-updates "Kontrola aktualizácií" + :plugin/contribute "✨ Vytvorte a odošlite nový doplnok" + :plugin/custom-js-alert "Našiel sa súbor custom.js. Chcete ho spustiť? (Ak nerozumiete obsahu tohto súboru, odporúčame jeho spustenie zakázať, pretože môže predstavovať určité bezpečnostné riziká.)" + :plugin/date-added "Datum přidání" + :plugin/delete-alert "Naozaj chcete odinštalovať doplnok [{1}]?" + :plugin/disable-for-performance-feedback "Plugin {1} bol zakázaný." + :plugin/disable-now "Zakázať teraz" + :plugin/disabled "Zakázané" + :plugin/does-not-support-db "Nepodporuje DB grafy" + :plugin/downloads "Stažení" + :plugin/empty "Nič sa nenašlo." + :plugin/enabled "Povolené" + :plugin/existed-package "Existujúci balík doplnkov ({1})." + :plugin/fatal-error "Fatálna chyba: {1}" + :plugin/found-n-updates "{1} aktualizácií nájdených" + :plugin/found-updates "Nalezeny aktualizácie" + :plugin/install "Inštalovať" + :plugin/install-error "Inštalácia zlyhala: {1}\n{2}" + :plugin/installed "Nainštalované" + :plugin/installed-plugin "Nainštalovaný doplnok: {1}" + :plugin/installing "Inštaluje sa" + :plugin/invalid-github-repo-url "Neplatná URL repozitáře GitHub" + :plugin/invalid-package "Neplatný balíček" + :plugin/invalid-plugins-edn "Neplatný plugins.edn" + :plugin/list-of-updates "Seznam aktualizácií" + :plugin/load-from-web-url "Načítať z URL" + :plugin/load-plugin-indicator "Načítava sa plugin: {1}..." + :plugin/load-unpacked "Načítať rozbalený doplnok" + :plugin/loading-indicator "Načítava sa" + :plugin/malformed-plugins-edn "Chybný plugins.edn" + :plugin/marketplace "Obchod s pluginmi" + :plugin/new-registered "Nový plugin zaregistrován" + :plugin/no-settings-schema "Žiadna schéma nastavení!" + :plugin/not-installed "Nenainštalované" + :plugin/open-logseq-dir "Otvoriť složku Logseq" + :plugin/open-package "Otvoriť balík" + :plugin/open-preferences "Otvoriť předvolby" + :plugin/open-settings "Otvoriť nastavenia" + :plugin/perf-tip "Tento plugin {1} sa načítava príliš dlho, čo ovplyvňuje čas spustenia aplikácie a môže spôsobiť zlyhanie načítania iných pluginov." + :plugin/popular "Populární" + :plugin/proxy-check-success "Úspech! Stav {1} o {2}ms." + :plugin/readme-empty-warning "Žiadny obsah README" + :plugin/refresh-lists "Obnoviť zoznamy" + :plugin/reload "Znova načítať" + :plugin/remote-error "Vzdálená chyba: {1}" + :plugin/report-modal-desc "Ak je nejaký doplnok nedostupný alebo si myslíte, že obsahuje škodlivý kód, pošlite e-mail na {1}. Uveďte názov doplnku a adresu URL jeho úložiska GitHub. Tím Logseq zvyčajne reaguje v priebehu jedného pracovného dňa." + :plugin/report-security "Nahlásit problém bezpečnosti" + :plugin/restart "Reštartovať aplikáciu" + :plugin/search-plugin "Hľadať plugin" + :plugin/security-warning "Bezpečnostní upozornění" + :plugin/setting-not-handled "#Nespracované# {1}" + :plugin/settings-schema-error "Chyba schémy nastavení!" + :plugin/stars "Počet hviezdičiek" + :plugin/supports-db "Podpora DB" + :plugin/title "Názov ({1})" + :plugin/uninstall "Odinštalovať" + :plugin/unpacked "Rozbalené" + :plugin/unpacked-tips "Vyberte adresár rozbaleného doplnku" + :plugin/up-to-date "Je to aktuálne {1}" + :plugin/update "Aktualizovať" + :plugin/update-all-selected "Aktualizovať všetky vybrané" + :plugin/update-all-success "Všetky pluginy aktualizovány" + :plugin/update-available "S dostupnou aktualizáciou" + :plugin/update-plugin "Aktualizačný doplnok: {1} - {2}" + :plugin/updates-downloading "Stahování aktualizácií" + :plugin/updating "Aktualizuje sa" + + :plugin.install-from-file/menu-title "Inštalovať z plugins.edn" + :plugin.install-from-file/notice "Nasledujúce doplnky nahradia vaše aktuálne doplnky:" + :plugin.install-from-file/success "Všetky doplnky boli úspešne nainštalované!" + :plugin.install-from-file/title "Inštalovať doplnky z plugins.edn" + + :plugin.install-from-web-url/effect-label "efekt" + :plugin.install-from-web-url/repo-url-placeholder "URL GitHub repozitára" + :plugin.install-from-web-url/supports-note "Adresy URL podporujú úložiská GitHub aj lokálne vývojové servery. (Príklady: {1}, {2})" + :plugin.install-from-web-url/theme-label "téma" + + :plugin.package-config/detach-desc "Jeho odstránenie plugin iba odpojí od Logseq a ponechá zdrojový priečinok bez zmeny." + :plugin.package-config/parse-error "Nepodarilo sa spracovať konfiguráciu balíka pluginu." + :plugin.package-config/remove-error "Nepodarilo sa odstrániť poškodený plugin." + :plugin.package-config/remove-external-success "Poškodený plugin bol odstránený zo zoznamu pluginov." + :plugin.package-config/remove-installed-success "Poškodený plugin „{1}“ bol odstránený." + + :plugin.proxy/direct "Priame" + :plugin.proxy/system "Systém" + :plugin.proxy/test-url "Otestovať URL" + :plugin.proxy/testing "Testovanie" + + :plugin.settings/edit-settings-json "Upraviť settings.json" + :plugin.settings/exit-code-mode "Ukončiť režim kódu" + :plugin.settings/title "Nastavenia pluginov" + + :plugin.themes/default-desc "Predvolený {1} motív Logseq." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} motívy" + :plugin.themes/light-and-dark "svetlé & tmavé motívy" + + :profiler/input-fn-placeholder "zadajte názov funkcie" + :profiler/unregister "Odregistrovať" + + :property/add-choice "Pridať volbu" + :property/add-choices "Pridať volby" + :property/add-description "Pridať popis" + :property/add-new "Pridať vlastnosť" + :property/add-or-change "Pridať alebo zmeniť vlastnosť" + :property/available-choices "Dostupné volby" + :property/change-tooltip "Zmeniť {1}" + :property/checkbox-state-mapping "Mapování stavů zaškrtávacího pole" + :property/children-count "Deti ({1})" + :property/choices-count "{1} možností" + :property/choose-tag "Vybrať štítok" + :property/choose-tags "Vybrať štítky" + :property/clear-value "Vymazať" + :property/configure "Konfigurovat" + :property/convert-page-to-property "Previesť \"{1}\" na vlastnosť" + :property/create-error "Nepodarilo sa vytvořit vlastnosť." + :property/default-value "Predvolený hodnota" + :property/delete-from-node "Odstrániť z uzlu" + :property/delete-from-node-confirm "Odstrániť túto vlastnosť z uzlu?" + :property/delete-from-tag "Odstrániť ze štítku" + :property/delete-from-tag-confirm "Odstrániť túto vlastnosť ze štítku?" + :property/description-placeholder "Zadejte popis" + :property/drag-to-reorder "Přetáhněte pro změnu pořadí" + :property/existing-values "Existující hodnoty" + :property/go-to-this-property "Prejsť na stránku vlastnosťi" + :property/hidden-properties "Skryté vlastnosti" + :property/hide-by-default "Skryť ve predvoleným nastavenia" + :property/hide-choice-for-tag "Skryť volbu pro štítok" + :property/hide-empty-value "Skryť prázdné hodnoty" + :property/hide-for-tag "Skryť pre #{1}" + :property/hide-hidden-choices "Skryť skryté volby" + :property/map-checked-to "Mapovat zaškrtnuté na" + :property/map-unchecked-to "Mapovat nezaškrtnuté na" + :property/more-settings "Další nastavenia" + :property/multiple-values "Viac hodnot" + :property/multiple-values-confirm "Zapnout více hodnot?" + :property/name "Názov" + :property/name-placeholder "Názov vlastnosťi" + :property/nodes-with-property "Uzly s vlastnosťou" + :property/overdue "Po termíne" + :property/private-built-in-not-usable "Soukromá vstavaná vlastnosť nedostupná" + :property/select-choice "Vybrať volbu" + :property/select-property-placeholder "Vyberte vlastnosť" + :property/select-type-placeholder "Vyberte typ vlastnosti" + :property/self-reference "Vlastná referencia" + :property/set-default-choice "Nastaviť predvolený volbu" + :property/set-default-value "Nastaviť predvolenú hodnotu" + :property/set-icon "Nastaviť ikonu" + :property/set-placeholder "Nastaviť {1}" + :property/set-property "Nastaviť vlastnosť" + :property/set-tags "Nastaviť tagy" + :property/set-value "Nastaviť hodnotu" + :property/show-as-checkbox-on-node "Zobraziť jako zaškrtávací pole na uzlu" + :property/show-as-checkbox-on-tagged-nodes "Zobraziť jako zaškrtávací pole na uzlech sa štítkem" + :property/show-hidden-choices "Zobraziť skryté volby" + :property/skip-choosing-tag "Přeskočit výběr štítku" + :property/specify-node-tags "Určit štítky uzlu" + :property/title-placeholder "Názov" + :property/type "Typ" + :property/type-change-warning "Zmena typu vlastnosti vymaže niektoré konfigurácie vlastnosti." + :property/type-checkbox "Zaškrtávacie pole" + :property/type-date "Dátum" + :property/type-datetime "Datum/Čas" + :property/type-locked-help "Typ zamčen" + :property/type-node "Uzol" + :property/type-number "Číslo" + :property/type-text "Text" + :property/type-url "URL" + :property/ui-position "Pozice v UI" + :property/ui-position-block-below "Pod blokem" + :property/ui-position-block-left "Vlevo od bloku" + :property/ui-position-block-right "Vpravo od bloku" + :property/ui-position-properties "Vlastnosťi" + :property/unset-property "Odstrániť vlastnosť" + :property/update-success "Aktualizováno" + + :property.built-in/alias "Alias" + :property.built-in/asset "Súbor" + :property.built-in/asset-align "Zarovnanie súboru" + :property.built-in/asset-checksum "Kontrolný súčet súboru" + :property.built-in/asset-external-file-name "Názov externého súboru" + :property.built-in/asset-external-url "Externá URL" + :property.built-in/asset-height "Výška obrázka" + :property.built-in/asset-last-visit-page "Posledná navštívená stránka" + :property.built-in/asset-remote-metadata "Vzdialené metadáta súboru" + :property.built-in/asset-resize-metadata "Metadáta zmeny veľkosti súboru" + :property.built-in/asset-size "Veľkosť súboru" + :property.built-in/asset-type "Typ súboru" + :property.built-in/asset-width "Šírka obrázka" + :property.built-in/background-color "Farba pozadia" + :property.built-in/built-in "Vstavaný?" + :property.built-in/checkbox-display-properties "Vlastnosti zobrazené ako zaškrtávacie políčko" + :property.built-in/choice-checkbox-state "Stav zaškrtávacieho políčka voľby" + :property.built-in/choice-classes "Triedy voľby" + :property.built-in/choice-exclusions "Vylúčenia voľby" + :property.built-in/class-bidirectional-property-title "Názov obojsmernej vlastnosti" + :property.built-in/class-enable-bidirectional "Povoliť obojsmerné vlastnosti" + :property.built-in/class-extends "Rozširuje" + :property.built-in/class-hide-from-node "Skryť z uzla" + :property.built-in/class-properties "Vlastnosti tagu" + :property.built-in/classes "Triedy vlastnosti" + :property.built-in/closed-value-property "Vlastnosť uzavretej hodnoty" + :property.built-in/code-lang "Režim kódu" + :property.built-in/collapsed "Uzol zbalený?" + :property.built-in/created-at "Uzol vytvorený" + :property.built-in/created-by-ref "Uzol vytvoril" + :property.built-in/created-from-property "Vytvorené z vlastnosti" + :property.built-in/deadline "Termín" + :property.built-in/default-value "Predvolená hodnota" + :property.built-in/deleted-at "Vymazané" + :property.built-in/deleted-by-ref "Vymazal" + :property.built-in/description "Popis" + :property.built-in/enable-history "Povoliť históriu vlastnosti" + :property.built-in/exclude-from-graph-view "Vylúčené z pohľadu grafu?" + :property.built-in/fsrs-due "Splatné" + :property.built-in/fsrs-state "Stav" + :property.built-in/heading "Nadpis" + :property.built-in/hide "Skryť túto vlastnosť alebo stránku" + :property.built-in/hide-empty-value "Skryť prázdnu hodnotu" + :property.built-in/history-block "Blok histórie" + :property.built-in/history-property "Vlastnosť histórie" + :property.built-in/history-ref-value "Hodnota histórie" + :property.built-in/history-scalar-value "Skalárna hodnota histórie" + :property.built-in/icon "Ikona" + :property.built-in/journal-day "Dátum denníka" + :property.built-in/journal-title-format "Formát názvu" + :property.built-in/link "Uzol odkazuje na" + :property.built-in/linked-references-excludes "Vylúčené referencie" + :property.built-in/linked-references-includes "Zahrnuté referencie" + :property.built-in/ls-type "Typ LS" + :property.built-in/node-display-type "Typ zobrazenia uzla" + :property.built-in/order "Poradie uzla" + :property.built-in/order-list-type "Typ zoznamu" + :property.built-in/page "Stránka uzla" + :property.built-in/page-tags "Tagy stránky" + :property.built-in/parent "Rodič uzla" + :property.built-in/priority "Priorita" + :property.built-in/public "Vlastnosť verejná?" + :property.built-in/publish-published-url "Publikovaná URL" + :property.built-in/publishing-public "Verejné publikovanie?" + :property.built-in/query "Dopyt" + :property.built-in/reaction-emoji-id "Emoji reakcie" + :property.built-in/reaction-target "Cieľ reakcie" + :property.built-in/recycle-original-order "Pôvodné poradie v koši" + :property.built-in/recycle-original-page "Pôvodná stránka v koši" + :property.built-in/recycle-original-parent "Pôvodný rodič v koši" + :property.built-in/refs "Referencie uzla" + :property.built-in/repeat-checked-property "Opakujúca sa kontrolovaná vlastnosť" + :property.built-in/repeat-recur-frequency "Frekvencia opakovania" + :property.built-in/repeat-recur-unit "Jednotka opakovania" + :property.built-in/repeat-repeated "Uzol sa opakuje?" + :property.built-in/repeat-temporal-property "Opakujúca sa časová vlastnosť" + :property.built-in/scalar-default-value "Predvolená hodnota nereferenčného typu" + :property.built-in/scheduled "Naplánované" + :property.built-in/status "Stav" + :property.built-in/sync-large-title-object "Referencia na veľký názov bloku uložený vo vzdialenom úložisku objektov" + :property.built-in/table-filters "Filtre pohľadu" + :property.built-in/table-hidden-columns "Skryté stĺpce pohľadu" + :property.built-in/table-ordered-columns "Zoradené stĺpce pohľadu" + :property.built-in/table-pinned-columns "Pripnuté stĺpce tabuľkového pohľadu" + :property.built-in/table-sized-columns "Nastavenia stĺpcov pohľadu" + :property.built-in/table-sorting "Zoradenie pohľadu" + :property.built-in/tags "Tagy" + :property.built-in/template-applied-to "Použiť šablónu na tagy" + :property.built-in/title "Názov uzla" + :property.built-in/type "Typ vlastnosti" + :property.built-in/ui-position "Pozícia vlastnosti" + :property.built-in/updated-at "Uzol aktualizovaný" + :property.built-in/used-template "Použitá šablóna" + :property.built-in/user-avatar "Avatar používateľa" + :property.built-in/user-email "E-mail používateľa" + :property.built-in/user-name "Meno používateľa" + :property.built-in/value "Hodnota vlastnosti" + :property.built-in/view-context "Kontext pohľadu vlastnosti" + :property.built-in/view-feature-type "Typ funkcie pohľadu" + :property.built-in/view-for "Tento pohľad patrí k" + :property.built-in/view-group-by-property "Zoskupiť pohľad podľa vlastnosti" + :property.built-in/view-sort-groups-by-property "Zoradiť skupiny pohľadu podľa" + :property.built-in/view-sort-groups-desc "Zoradiť skupiny pohľadu zostupne" + :property.built-in/view-type "Typ pohľadu" + + :property.choice/already-exists "Volba už existuje." + :property.choice/cant-delete-built-in "Vestavěnou volbu nemožno smazat." + :property.choice/invalid "Neplatná voľba \"{1}\" pre túto vlastnosť: {2}" + + :property.color/blue "modrá" + :property.color/green "zelená" + :property.color/purple "fialová" + :property.color/red "červená" + :property.color/yellow "žltá" + + :property.priority/high "Vysoká" + :property.priority/low "Nízka" + :property.priority/medium "Stredná" + :property.priority/urgent "Urgentná" + + :property.repeat/date "Dátum opakovania" + :property.repeat/datetime "Dátum a čas opakovania" + :property.repeat/every "Každý" + :property.repeat/is-label "je:" + :property.repeat/task "Opakujúca sa úloha" + :property.repeat/when "Kedy" + + :property.repeat-recur-unit/day "Deň" + :property.repeat-recur-unit/hour "Hodina" + :property.repeat-recur-unit/minute "Minúta" + :property.repeat-recur-unit/month "Mesiac" + :property.repeat-recur-unit/week "Týždeň" + :property.repeat-recur-unit/year "Rok" + + :property.status/backlog "Backlog" + :property.status/canceled "Zrušené" + :property.status/doing "Prebieha" + :property.status/done "Hotové" + :property.status/in-review "V kontrole" + :property.status/todo "Na vykonanie" + + :property.validation/cant-convert-to-number "\"{1}\" sa nedá skonvertovať na číslo." + :property.validation/cant-remove-required "Požadovanou vlastnosť nemožno odstranit." + :property.validation/cant-set-self-value "Nemožno nastavit jako vlastní hodnotu vlastnosťi." + :property.validation/duplicate "Vlastnosť '{1}' už existuje." + :property.validation/invalid-name "Toto je neplatný názov vlastnosti. Názov vlastnosti nemôže začínať znakmi odkazu na stránku '#' alebo '[['." + :property.validation/invalid-value "Vlastnosť \"{1}\" má neplatnú hodnotu: {2}" + :property.validation/many-to-one "Nemožno převést vlastnosť s více hodnotami na jednu." + :property.validation/protected "Táto vlastnosť je chránená a nemožno ji změnit." + + :property.view-type/gallery "Pohľad galérie" + :property.view-type/list "Pohľad zoznamu" + :property.view-type/table "Tabuľkový pohľad" + + :publish/action "Publikovať" + :publish/dialog-desc "Voliteľne chráňte túto stránku heslom. Nechajte prázdne pre verejný prístup." + :publish/dialog-title "Publikovať stránku" + :publish/invalid-page-error "Neplatná stránka" + :publish/password-optional-placeholder "Voliteľné heslo" + :publish/publish-error "Chyba publikace" + :publish/published-to "Publikováno na {1}" + :publish/publishing "Publikovanie..." + :publish/unpublish "Zrušiť publikovanie" + :publish/unpublish-error "Zrušení publikace zlyhalo" + :publish/unpublish-missing-page-id "Zrušiť publikaci: chybí ID stránky" + :publish/unpublished "Publikace zrušena" + + :query/advanced-results "Výsledky rozšíreného dotazu" + :query/custom-view-error "Chyba vlastného pohľadu: {1}" + :query/error "Chyba dopytu:" + :query/examples-desc "Pozrite si ďalšie príklady na {{Queries documentation}}." + :query/examples-title "Príklady dopytov:" + :query/results-for "Výsledky pre {1}" + + :query.builder/add-filter-or-operator-placeholder "Pridať filter/operátor" + :query.builder/between-end-label "Konečný dátum" + :query.builder/between-journal-label "medzi: {1} ~ {2}" + :query.builder/between-start-label "Počiatočný dátum" + :query.builder/created-label "Vytvorené" + :query.builder/filter "Filter" + :query.builder/filter-full-text-search-label "Fulltextové vyhľadávanie" + :query.builder/filter-page-label "Stránka" + :query.builder/filter-page-reference-label "Odkaz na stránku" + :query.builder/filter-sample-label "Príklad" + :query.builder/operator-and-label "a" + :query.builder/operator-not-label "nie" + :query.builder/replace-with-label "Nahradiť s:" + :query.builder/search-label "Hľadať: {1}" + :query.builder/show-built-in-properties "Zobraziť vstavané vlastnosti" + :query.builder/unwrap-operator "Rozbaliť" + :query.builder/updated-label "Aktualizované" + :query.builder/wrap-filter-with-label "Obaliť tento filter s:" + + :reference/blocks "Referencie bloku" + :reference/copy "Kopírovať túto referenciu" + :reference/delete "Zmazať túto referenciu" + :reference/page-filter "Filter stránok" + :reference/replace-with-embed "Nahradiť vložením" + :reference/replace-with-text "Nahradiť textem" + + :reference.filter/directions "Směry filtru" + :reference.filter/excludes "Vyloučené" + :reference.filter/includes "Zahrnuté" + :reference.filter/search-placeholder "Hľadať v prepojených stránkach" + :reference.filter/title "Filtr" + + :search/blank-input "Prázdny vstup" + :search/full-text-placeholder "Fulltextové vyhľadávanie" + :search/index-progress "Indexovanie {1} %" + :search/indices-rebuilt-success "Indexy vyhľadávania boli úspešne znovu vytvorené!" + :search/no-result "Žiadne výsledky" + :search/result-count "{1} výsledkov" + + :search.find-in-page/input-placeholder "Hľadať na stránke" + :search.find-in-page/match-case "Rozlišovať veľkosť písmen" + :search.find-in-page/next-result "Ďalší výsledok" + :search.find-in-page/previous-result "Predchádzajúci výsledok" + + :select/default-prompt "Vybrať jeden" + :select/default-select-multiple "Vybrať jeden alebo viacero" + :select/new-option "+ Nová možnosť: {1}" + + :server/error-notification "[Server] {1}" + :server/mcp-url-copied "URL MCP skopírované" + :server/start "Spustiť" + :server/stop "Zastaviť" + :server/title "HTTP API server" + + :server.config/auto-start-label "Spustiť automaticky" + :server.config/port-label "Rozsah portů" + :server.config/reset "Resetovať" + :server.config/save-and-apply "Uložiť a použiť" + :server.config/title "Konfigurace serveru" + + :server.status/closed "Zavřený" + :server.status/closing "Zavírání" + :server.status/error "Chyba" + :server.status/running "Běží" + :server.status/starting "Spouštění" + :server.status/stopped "Zastavený" + + :server.token/add-new "Pridať nový token" + :server.token/name-placeholder "Názov serveru" + :server.token/regenerate-value "Regenerovat hodnotu tokenu" + :server.token/title "Autorizační tokeny" + :server.token/update-success "Tokeny aktualizovány" + :server.token/value-placeholder "Hodnota" + + :settings/account "Účet" + :settings/advanced "Pokročilé" + :settings/ai "AI" + :settings/collaboration "Spolupráca" + :settings/editor "Editor" + :settings/encryption "Šifrovanie" + :settings/features "Funkcie" + :settings/general "Všeobecné" + :settings/keymap "Klávesové skratky" + :settings/plugins "Nastavenia pluginov" + + :settings.account/storage-usage "{1}GB z celkového úložiska {2}GB ({3})" + :settings.account/synced-graphs "{1} z {2} synchronizovaných grafov ({3})" + + :settings.advanced/auto-chmod "Automatický chmod" + :settings.advanced/auto-chmod-desc "Automaticky nastavovat oprávnění súborů" + :settings.advanced/auto-updater "Automatická aktualizácia" + :settings.advanced/developer-mode "Režim pre vývojárov" + :settings.advanced/developer-mode-desc "Režim pre vývojárov pomáha prispievateľom a vývojárom doplnkov efektívnejšie testovať integráciu s Logseq." + :settings.advanced/disable-sentry "Odoslať údaje o používaní a diagnostiku do Logseq" + :settings.advanced/disable-sentry-desc "Logseq nebude nikdy zhromažďovať vašu lokálnu databázu grafov ani predávať vaše údaje." + :settings.advanced/network-proxy "Sieťová proxy" + + :settings.ai/enable-mcp-server "Zapnúť server MCP" + :settings.ai/enable-mcp-server-desc "Zapnout server MCP pro integraci s AI" + + :settings.editor/auto-expand-block-refs "Automaticky rozbalit odkazy na bloky" + :settings.editor/auto-expand-block-refs-tip "Automaticky rozbalit odkazy na bloky při kliknutí" + :settings.editor/custom-date-format "Preferovaný formát dátumu" + :settings.editor/enable-all-pages-public "Všetky stránky označiť ako verejné" + :settings.editor/enable-shortcut-tooltip "Povoliť nápovedy ku klávesovým skratkám" + :settings.editor/enable-tooltip "Zapnúť nápovedy" + :settings.editor/preferred-outdenting "Logické odsadenie" + :settings.editor/preferred-outdenting-tip "Tip pro odsazení" + :settings.editor/preferred-outdenting-tip-more "→ Viac o odsazení" + :settings.editor/preferred-pasting-file "Uprednostniť vloženie súboru" + :settings.editor/preferred-pasting-file-hint "Tip pro vkládání súborů" + :settings.editor/show-brackets "Zobraziť zátvorky" + :settings.editor/show-full-blocks "Zobraziť všetky riadky referencie bloku" + :settings.editor/spell-checker "Kontrola pravopisu" + :settings.editor/wide-mode "Široký režim" + + :settings.features/enable-flashcards "Zapnúť kartičky" + :settings.features/enable-journals "Denníky" + :settings.features/home-default-page "Nastaviť predvolenú domovskú stránku" + :settings.features/home-default-page-update-success "Domovská stránka aktualizována" + :settings.features/journals-enable-success "Denníky zapnuty" + :settings.features/login-prompt "Ak chcete získať prístup k novým funkciám skôr ako ktokoľvek iný, musíte byť sponzorom nadácie Open Collective alebo podporovateľom Logseq, následne sa musíte prihlásiť." + :settings.features/page-not-found "Stránka „{1}“ zatiaľ neexistuje. Najprv vytvorte túto stránku a potom to skúste znova." + :settings.features/plugin-system "Systém pluginov" + + :settings.general/accent-color "Barva akcentu" + :settings.general/accent-color-alert "Upozornění na barvu" + :settings.general/accent-color-logseq "Klasická farba Logseq" + :settings.general/accent-color-none-desc "Zrušiť farbu akcentu. Toto je v súčasnosti v beta fáze a používa sa najmä pre kompatibilitu s vlastnými motívmi." + :settings.general/changelog "Zoznam zmien" + :settings.general/check-for-updates "Skontrolovať aktualizácie" + :settings.general/current-revision-label "Aktuálny revize" + :settings.general/current-version "Aktuálna verzia" + :settings.general/custom-configuration "Vlastná konfigurácia" + :settings.general/custom-global-configuration "Vlastná globálna konfigurácia" + :settings.general/custom-theme "Vlastný motív" + :settings.general/edit-config-edn "Upraviť config.edn" + :settings.general/edit-custom-css "Upraviť custom.css" + :settings.general/edit-export-css "Upraviť export.css" + :settings.general/edit-global-config-edn "Upraviť globálny config.edn" + :settings.general/editor-font "Písmo editora" + :settings.general/editor-font-set-global "Nastaviť ako globálnu rodinu písma" + :settings.general/export-theme "Exportovať motív" + :settings.general/language "Jazyk" + :settings.general/native-titlebar "Nativní záhlaví" + :settings.general/native-titlebar-desc "Použít nativní záhlaví systému" + :settings.general/refresh-required-feedback "Vyžadováno obnovení" + :settings.general/release-channel "kanál vydania" + :settings.general/revision "Revize: {1}" + :settings.general/theme-dark "Tmavý" + :settings.general/theme-light "Svetlý" + :settings.general/theme-system "Systémový" + + :settings.sync-server/clear-success "URL synchronizačného servera bolo vymazané. Použije sa oficiálny Logseq Sync." + :settings.sync-server/reset "Resetovať na predvolený" + :settings.sync-server/save-success "URL synchronizačného servera bolo uložené." + :settings.sync-server/url "URL synchronizačného servera" + :settings.sync-server/url-desc "Nastavte vlastnú HTTPS URL synchronizačného servera pre self-hosted synchronizáciu. Vaše autentifikačné tokeny Logseq budú odoslané na tento server, preto používajte iba dôveryhodnú URL. Nechajte prázdne pre použitie oficiálneho Logseq Sync." + :settings.sync-server/url-invalid-error "URL musí začínať na https:// alebo http://" + + :shell/input-command-title "Zadajte príkaz" + + :shortcut.category/basics "Základy" + :shortcut.category/block-command-editing "Príkazy na úpravu bloku" + :shortcut.category/block-editing "Úprava bloku (všeobecné)" + :shortcut.category/block-selection "Výber bloku (výber ukončíte stlačením klávesy Esc)" + :shortcut.category/formatting "Formátovanie" + :shortcut.category/navigating "Navigace" + :shortcut.category/others "Ostatné" + :shortcut.category/plugins "Pluginy" + :shortcut.category/toggle "Prepínače" + + :sidebar.left/favorites "Obľúbené" + :sidebar.left/navigations "Navigácia" + :sidebar.left/recent-pages "Nedávne" + + :sidebar.right/close "Zavrieť panel" + :sidebar.right/close-all "Zavrieť všetky panely" + :sidebar.right/close-others "Zavrieť ostatné panely" + :sidebar.right/collapse "Zbaliť panel" + :sidebar.right/collapse-all "Zbaliť všetky panely" + :sidebar.right/collapse-others "Zbaliť ostatné panely" + :sidebar.right/expand "Rozbaliť panel" + :sidebar.right/expand-all "Rozbaliť všetky panely" + :sidebar.right/more "Viac" + :sidebar.right/open "Otvoriť v bočnom paneli" + :sidebar.right/open-as-page "Otvoriť ako stránku" + :sidebar.right/resize-handle "Nástroj na zmenu veľkosti pravého bočného panelu" + :sidebar.right/toggle "Prepnúť pravý panel" + + :storage/invalid-data-writing "Neplatný zápis dat." + :storage/sqlitedb-error "Chyba SQLiteDB: {1}" + :storage/sqlitedb-import-error "Chyba importu SQLiteDB: {1}" + :storage/sqlitedb-save-error "Chyba pri ukladaní SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Blok bol odstránený {1}" + :storage.recycle/empty "Kôš je prázdny." + :storage.recycle/page-deleted-at "Stránka bola odstránená {1}" + :storage.recycle/readonly "Koš (iba pro čtení)" + :storage.recycle/restore "Obnoviť" + :storage.recycle/retention-desc "Odstránené stránky a bloky tu zostanú, kým sa neobnovia alebo nebudú po 30 dňoch automaticky vyčistené." + :storage.recycle/title "Kôš" + + :sync/assets-downloading-count "Sťahovanie majetku ({1})" + :sync/assets-uploading-count "Nahrávanie majetku ({1})" + :sync/creating-remote-graph "Vytvára sa vzdialený graf..." + :sync/downloading "Sťahovanie..." + :sync/downloading-graph "Sťahovanie {1} ..." + :sync/graph-count-exceed-limit "Překročen limit počtu grafů" + :sync/invitation-sent "Pozvánka odeslána" + :sync/last-synced-time-label "Čas poslednej synchronizácie: {1}" + :sync/more-debug-info "Viac ladiacich informácií" + :sync/offline "Offline" + :sync/online "Online" + :sync/pending-local-changes "čakajúce lokálne zmeny" + :sync/pending-server-changes "čakajúce zmeny servera" + :sync/something-wrong "Chyba synchronizace" + :sync/start-sync "Spustiť synchronizáciu" + :sync/storage-exceed-limit "Překročen limit úložiště" + :sync/uploading "Nahrávanie..." + :sync/user-doesnt-exist-yet "Uživatel ešte neexistuje" + + :theme/logseq-default "Predvolený motív Logseq" + :theme/switch-to "Prepnúť na motív {1}" + + :ui/all-done "Všetko hotovo" + :ui/apply "Použiť" + :ui/cancel "Zrušiť" + :ui/close "Zavrieť" + :ui/configure "Konfigurovať" + :ui/confirm "Potvrdiť" + :ui/copy "Kopírovať" + :ui/copy-all "Skopírovať všetko" + :ui/copy-to-clipboard "Kopírovať do schránky" + :ui/create "Vytvoriť" + :ui/date-natural-language-placeholder "napr. Budúci týždeň" + :ui/delete "Vymazať" + :ui/deleted "Odstránené" + :ui/dont-remind-me-again "Už mi nepripomínať" + :ui/empty "Prázdne" + :ui/error "Chyba" + :ui/error-boundary-error "Chyba zachytená v UI!\n {1}" + :ui/export "Exportovať" + :ui/false "Nepravda" + :ui/fix "Opraviť!" + :ui/frequently-used "Často používané" + :ui/from "Od: " + :ui/host "Hostiteľ" + :ui/image "obrázok" + :ui/label "Štítok" + :ui/link "Odkaz" + :ui/load-more "Načítať viac" + :ui/loading "Načítavanie" + :ui/login "Prihlásiť sa" + :ui/logout "Odhlásiť sa" + :ui/off "Vypnuté" + :ui/on "Zapnuté" + :ui/open "Otvoriť" + :ui/open-named "Otvoriť {1}" + :ui/port "Port" + :ui/refresh "Obnoviť" + :ui/relaunch-confirm "Na použitie tejto zmeny je potrebné reštartovať aplikáciu. Reštartovať teraz?" + :ui/remove-background "Odstrániť pozadie" + :ui/reset "Resetovať" + :ui/run "Spustiť" + :ui/save "Uložiť" + :ui/show-less "Zobraziť menej" + :ui/show-more "Zobraziť viac" + :ui/skip "Preskočiť" + :ui/submit "Odoslať" + :ui/to "Do: " + :ui/toggle-theme "Prepnúť motív" + :ui/true "Pravda" + :ui/type "Typ" + :ui/untitled "Bez názvu" + :ui/use-current-time "Použiť aktuálny čas" + :ui/yes "Áno" + + :updater/checking-for-updates "Kontrolujú sa aktualizácie" + :updater/downloading-progress "Sťahuje sa aktualizácia ({1} %)" + :updater/quit-and-install "Reštartovať a nainštalovať" + :updater/up-to-date "Aplikace aktualizována 🎉" + :updater/update-available "Aktualizácia je k dispozícii" + :updater/update-error "⚠️ Ups, niečo sa pokazilo!\nProsím, pozrite si {1}." + :updater/update-ready-to-install "Aktualizácia je pripravená na inštaláciu" + + :view/add-new-view "Pridať pohľad" + :view/all "Všetky" + :view/export-edn "Exportovať EDN" + :view/linked-references "Prepojené referencie" + :view/new "Nový" + :view/new-property "Nová vlastnosť" + :view/new-view "Nový pohľad" + :view/rename "Premenovať" + :view/results "Výsledky:" + :view/unlinked-references "Neprepojené referencie" + + :view.filter/custom-date "Vlastní datum" + :view.filter/empty "Prázdne" + :view.filter/filter "Filter" + :view.filter/from "Od" + :view.filter/is-empty "Je prázdné" + :view.filter/is-not-empty "Není prázdné" + :view.filter/match "Shoda" + :view.filter/match-all-filters "Odpovídá všem filtrům" + :view.filter/match-any-filter "Odpovídá libovolnému filtru" + :view.filter/operator-after "Po" + :view.filter/operator-before "Před" + :view.filter/operator-between "Medzi" + :view.filter/operator-date-after "Datum po" + :view.filter/operator-date-before "Datum před" + :view.filter/operator-is "Je" + :view.filter/operator-is-not "Není" + :view.filter/operator-text-contains "Text obsahuje" + :view.filter/operator-text-not-contains "Text neobsahuje" + :view.filter/or "Alebo" + :view.filter/relative-1-day-ago "Pred 1 dnem" + :view.filter/relative-1-month-ago "Pred 1 měsícem" + :view.filter/relative-1-week-ago "Pred 1 týdnem" + :view.filter/relative-1-year-ago "Pred 1 rokem" + :view.filter/relative-3-days-ago "Pred 3 dny" + :view.filter/relative-3-months-ago "Pred 3 měsíci" + :view.filter/to "Do" + :view.filter/type-to-search "Zadejte pro hledání" + + :view.table/ascending "Vzostupne" + :view.table/columns-visibility "Viditelnost sloupců" + :view.table/default-title "{1} uzlů" + :view.table/delete-sort "Vymazať zoradenie" + :view.table/descending "Zostupne" + :view.table/drag-to-reorder "Přetáhněte pro změnu pořadí" + :view.table/group-by "Seskupit podľa" + :view.table/group-journal-date "Dátum denníka" + :view.table/group-page-created-date "Dátum vytvorenia stránky" + :view.table/group-page-name "Názov stránky" + :view.table/group-page-updated-date "Dátum aktualizácie stránky" + :view.table/live-query-title "Živý dotaz ({1})" + :view.table/name-column "Názov" + :view.table/no-group-value "Žiadne {1}" + :view.table/page "Stránka" + :view.table/pages "Stránky" + :view.table/pin "Připnout" + :view.table/row-number "Číslo řádku" + :view.table/select-all "Vybrať vše" + :view.table/select-column "Vybrať sloupec" + :view.table/select-order "Vybrať pořadí" + :view.table/select-row "Vybrať řádek" + :view.table/selected-count "Vybrané: {1}" + :view.table/sort-ascending "Vzostupne" + :view.table/sort-descending "Zostupne" + :view.table/sort-groups-by "Řadit skupiny podľa" + :view.table/sort-groups-order "Pořadí skupin" + :view.table/total-refs-count "Celkem odkazů" + :view.table/unpin "Odepnout" + + :window/close "Zavrieť okno" + :window/exit-fullscreen "Ukončiť celú obrazovku" + :window/maximize "Maximalizovať" + :window/minimize "Minimalizovať" + :window/restore "Obnoviť" + + :youtube/embed-first-reminder-mobile "Najprv vložte video z YouTube a potom použite túto ikonu.\nPripomenutie: Na mobile môžete vložiť raw YouTube URL ako vložené video." + :youtube/player-not-ready "Prehrávač YouTube ešte nie je pripravený." + :youtube/timestamps-not-available-mobile "Časové pečiatky YouTube ešte nie sú na mobile dostupné." + + :zotero/attachments "Prílohy" + :zotero/imported-file-warning "Toto je importovaný súbor Zotero, nastavte dátový adresár Zotera, aby ste mohli súbor otvoriť v Logseq." + :zotero/linked-file-warning "Toto je prepojený súbor Zotero, nastavte základný adresár prepojených príloh Zotera, aby ste mohli súbor otvoriť v Logseq." + :zotero/notes "Poznámky" +} diff --git a/src/resources/dicts/tr.edn b/src/resources/dicts/tr.edn index 093ca72e79..b295d53dca 100644 --- a/src/resources/dicts/tr.edn +++ b/src/resources/dicts/tr.edn @@ -1,471 +1,1861 @@ -{:accessibility/skip-to-main-content "Ana içeriğe geç" - :handbook/title "Yardım" - :handbook/topics "Konular" - :handbook/popular-topics "Popüler konular" - :handbook/help-categories "Yardım kategorileri" - :handbook/search "Ara" - :handbook/home "Ana sayfa" - :handbook/settings "Ayarlar" - :handbook/close "Kapat" - :on-boarding/importing-main-title "Mevcut notları içeri aktarın" - :on-boarding/importing-main-desc "Bunu daha sonra uygulamayı kullanırken de yapabilirsiniz." - :on-boarding/importing-title "Şu anda içeri aktarmak istediğiniz notlarınız var mı?" - :on-boarding/importing-desc "EDN veya Markdown biçimindelerse, Logseq onlarla çalışabilir." - :on-boarding/main-title (fn [] [[:strong "Logseq'e"] " Hoş Geldiniz!"]) - :on-boarding/main-desc "Öncelikle Logseq'in düşüncelerinizi, fikirlerinizi, notlarınızı saklayacağı bir klasör seçmeniz gerekir." - :bug-report/main-title "Hata raporu" - :bug-report/clipboard-inspector-title "Pano veri denetçisi" - :bug-report/main-desc "Bir hata raporu göndererek bize yardımcı olabilir misiniz? Mümkün olan en kısa sürede çözmeye çalışacağız." - :bug-report/section-clipboard-title "Karşılaştığınız hata bu özelliklerle mi ilgili?" - :bug-report/section-clipboard-desc "Bize ek bilgi vermek için bu kullanışlı araçları kullanabilirsiniz." - :bug-report/section-clipboard-btn-title "Pano yardımcısı" - :bug-report/section-clipboard-btn-desc "Pano verilerini inceleyin ve toplayın" - :bug-report/section-issues-title "Veya..." - :bug-report/section-issues-desc "Ek bilgi toplamak için kullanabileceğiniz herhangi bir araç yoksa, lütfen hatayı doğrudan bildirin." - :bug-report/section-issues-btn-title "Hata raporu gönderin" - :bug-report/section-issues-btn-desc "Logseq'i Daha İyi Hale Getirmeye Yardımcı Olun!" - :bug-report/inspector-page-desc-1 "Pano verilerinizi incelemek için Ctrl+V / ⌘+V tuşlarına basın" - :bug-report/inspector-page-desc-2 "veya mobil sürümü kullanıyorsanız yapıştırmak için buraya dokunun" - :bug-report/inspector-page-placeholder "Mobil cihazdaysanız yapıştırmak için buraya uzun basın" - :bug-report/inspector-page-tip "Ters giden birşey mi var? Sorun değil, önceki adıma geri gitmek için düğmeye basın." - :bug-report/inspector-page-btn-back "Geri git" - :bug-report/inspector-page-btn-copy "Sonucu kopyalayın" - :bug-report/inspector-page-copy-notif "Panoya kopyalandı!" - :bug-report/inspector-page-btn-create-issue "Hata raporu oluştur" - :bug-report/inspector-page-desc-clipboard "İşte panodan okunan veriler." - :bug-report/inspector-page-desc-copy "Bunu paylaşmak uygunsa, kopyala düğmesine basın." - :bug-report/inspector-page-desc-create-issue "Artık panonuza yapıştırılan sonucu bildirebilirsiniz. Lütfen sonucu 'Additional Context' bölümüne yapıştırın ve orijinal içeriği nereden kopyaladığınızı belirtin. Teşekkürler!" - :help/title-usage "Kullanım" - :help/title-community "Topluluk" - :help/title-development "Geliştirme" - :help/title-about "Hakkında" - :help/title-terms "Koşullar" - :help/start "Başlarken" - :help/about "Logseq hakkında" - :help/roadmap "Yol haritası" - :help/bug "Hata raporu" - :help/feature "Özellik istekleri" - :help/changelog "Değişiklik günlüğü" - :help/blog "Logseq blogu" - :help/docs "Belgeler" - :help/privacy "Gizlilik ilkesi" - :help/terms "Koşullar" - :help/forum-community "Forum topluluğu" - :help/awesome-logseq "Awesome Logseq" - :help/shortcuts "Klavye kısayolları" - :help/shortcuts-triggers "Tetikleyiciler" - :help/shortcut "Kısayol" - :help/search "Sayfalarda/bloklarda/komutlarda ara" - :help/slash-autocomplete "Eğik çizgi otomatik tamamlama" - :help/reference-autocomplete "Sayfa referansı otomatik tamamlama" - :help/block-reference "Blok referansı" - :help/open-link-in-sidebar "Bağlantıyı kenar çubuğunda aç" - :search-item/page "Sayfa" - :search-item/no-result "Eşleşen sonuç yok" - :help/context-menu "Blok kısayol menüsü" - :help/markdown-syntax "Markdown sözdizimi" - :bold "Kalın" - :italics "İtalik" - :highlight "Vurgulu" - :strikethrough "Üstü çizili" - :code "Kod" - :untitled "Adsız" - :right-side-bar/help "Yardım" - :right-side-bar/switch-theme "Tema modları" - :right-side-bar/contents "İçindekiler" - :right-side-bar/page-graph "Sayfa grafı" - :right-side-bar/block-ref "Blok referansı" - :right-side-bar/graph-view "Graf görünümü" - :right-side-bar/flashcards "Bilgi kartları" - :right-side-bar/show-journals "Günlükleri Göster" - :right-side-bar/separator "Sağ kenar çubuğu yeniden boyutlandırma işleyicisi" - :right-side-bar/toggle-right-sidebar "Sağ kenar çubuğunu aç/kapat" - :right-side-bar/pane-close "Kapat" - :right-side-bar/pane-close-others "Diğerlerini kapat" - :right-side-bar/pane-close-all "Tümünü kapat" - :right-side-bar/pane-collapse "Daralt" - :right-side-bar/pane-collapse-others "Diğerlerini daralt" - :right-side-bar/pane-collapse-all "Tümünü daralt" - :right-side-bar/pane-expand "Genişlet" - :right-side-bar/pane-expand-all "Tümünü genişlet" - :right-side-bar/pane-open-as-page "Sayfa olarak aç" - :right-side-bar/pane-more "Diğer" - :left-side-bar/switch "Geçiş yap:" - :left-side-bar/journals "Günlük" - :left-side-bar/nav-favorites "Sık kullanılanlar" - :left-side-bar/nav-recent-pages "En son" - :page/something-went-wrong "Bir sorun oluştu" - :page/logseq-is-having-a-problem "Logseq'te bir sorun var. Tekrar çalışır duruma getirmek için lütfen aşağıdaki güvenli adımları sırayla deneyin:" - :page/step "{1}. Adım" - :page/try "Deneyin" - :page/make-public "Yayımlamak için herkese açık hale getir" - :page/make-private "Özel yap" - :page/delete "Sayfayı sil" - :page/add-to-favorites "Sık kullanılanlara ekle" - :page/unfavorite "Sayfayı sık kullanılanlardan kaldır" - :block/name "Sayfa adı" - :page/copy-page-url "Sayfa URL adresini kopyala" - :file/name "Dosya adı" - :file/last-modified-at "Son değiştirilme tarihi" - :file/no-data "Veri yok" - :file/format-not-supported ".{1} biçimi desteklenmiyor." - :page/created-at "Oluşturulma Zamanı" - :page/updated-at "Güncellenme Zamanı" - :page/backlinks "Geri Bağlantılar" - :linked-references/filter-search "Bağlantılı sayfalarda ara" - :linked-references/filter-heading "Filtre" - :linked-references/filter-directions "Dahil etmek için tıklayın, hariç tutmak için Shift tuşunu basılı tutarak tıklayın. Kaldırmak için tekrar tıklayın." - :linked-references/filter-includes "Dahil et: " - :linked-references/filter-excludes "Hariç tut: " - :editor/block-search "Blok ara" - :text/image "Resim" - :asset/show-in-folder "Resmi klasörde göster" - :asset/open-in-browser "Resmi tarayıcıda aç" - :asset/delete "Resmi sil" +{ + :account/authentication "Kimlik Doğrulama" + :account/benefits-desc "Bir Logseq hesabıyla, Logseq Sync ve alfa/beta özellikleri gibi bulut tabanlı hizmetlere erişebilirsiniz." + :account/billing "Faturalandırma" + :account/billing-expired-on-label "Pro plan sona erme tarihi: {1}" + :account/billing-expires-on-label "Pro plan sona erecek: {1}" + :account/billing-next-date-label "Sonraki faturalandırma tarihi: {1}" + :account/core-features "Temel Logseq özelliklerine erişim" + :account/current-plan "Mevcut plan" + :account/delete-account "Hesabı Sil" + :account/discover-sync-desc "{1} gücünü keşfedin" + :account/early-access-alpha-beta "Alfa/beta özelliklerine erken erişim" + :account/first-name "Ad" + :account/free-plan-sync-limit "1 senkronize grafik (50MB'a kadar, yalnızca notlar)" + :account/last-name "Soyad" + :account/manage-plan "Planı yönet" + :account/month "ay" + :account/no-asset-syncing "Dosya senkronizasyonu yok" + :account/open-invoices "Faturaları aç" + :account/plan-free "Ücretsiz" + :account/plan-free-summary "Temel senkronizasyon ile başlayın" + :account/plan-pro "Pro" + :account/plan-pro-summary "Gelişmiş senkronizasyon ve daha fazlası" + :account/pro-plan-sync-limit "10 senkronize grafik (her biri 5GB'a kadar)" + :account/profile "Profil" + :account/refresh-token-warning "Token yenileme: olağanüstü durum" + :account/reset-password "Şifreyi sıfırla" + :account/sign-up "Kaydol" + :account/sync-assets-limit "Dosya başına 100MB'a kadar dosya senkronizasyonu" + :account/synced-status "Senkronize edildi" + :account/unlimited-unsynced-graphs "Sınırsız senkronize edilmemiş grafik" + :account/upcoming-cloud-features "Logseq Publish dahil yakında gelecek bulut tabanlı özellikler" + :account/upgrade-plan "Planı yükselt" + :account/username "Kullanıcı adı" + + :asset/acceptable-file-extensions "Kabul edilen dosya uzantıları" + :asset/add-assets "Dosya ekle" + :asset/add-directory "Dizin ekle" + :asset/alias-already-exists "\"{1}\" takma adı zaten mevcut!" + :asset/alias-directories "Takma ad dizinleri" + :asset/alias-directory-path-label "Dizin yolu:" + :asset/alias-name-dialog-title "Bu seçilen dizinin takma adı ne olsun?" + :asset/alias-name-label "Takma ad:" + :asset/alias-name-placeholder "ör. Kitaplar" + :asset/align "Hizalama" + :asset/align-center "Ortala" + :asset/align-left "Sola" + :asset/align-right "Sağa" + :asset/already-exists "Öğe zaten mevcut, başlık: {1}, düğüm referansı: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Üst öğe kendi özelliği olarak gömülemez" + :asset/confirm-delete-image "Bu görseli silmek istediğinizden emin misiniz?" :asset/copy "Resmi kopyala" + :asset/copy-image-unsupported-extension "Resim kopyalama {1} dosyaları için desteklenmiyor" + :asset/create-local-copy-warning "Harici bir dosyadan yerel dosya oluşturuluyor. PDF açıklamaları düzgün çalışması için yerel dosya gerektirir." + :asset/create-title "Dosya oluştur" + :asset/delete "Resmi sil" + :asset/downloading "İndiriliyor" + :asset/drop-hint "Dosyaları buraya sürükleyip bırakın veya seçmek için tıklayın" + :asset/edit-title "Dosyayı düzenle" + :asset/external-url-label "Harici dosya URL'si:" + :asset/file-extension-placeholder "ör. mp3" :asset/maximize "Resim ekranı kaplasın" - :asset/confirm-delete "Bu resmi silmek istediğinizden emin misiniz?" + :asset/open-in-browser "Resmi tarayıcıda aç" :asset/physical-delete "Dosyayı da kaldırın (geri getirilemeyeceğine dikkat edin)" - :color/gray "Gri" - :color/red "Kırmızı" - :color/yellow "Sarı" - :color/green "Yeşil" + :asset/ref-block "Referans blok" + :asset/select-file "Dosya Seç" + :asset/select-from-disk "Diskten seç" + :asset/selected-directories "Seçilen dizinler:" + :asset/show-file-in-folder "Dosyayı klasörde göster" + :asset/size-too-large "Dosya çok büyük" + :asset/syncing "Senkronize ediliyor" + :asset/title-label "Dosya başlığı:" + :asset/transfer-placeholder "{1} dosya..." + :asset/uploading "Yükleniyor" + + :block/click-to-fix-query "Sorguyu düzeltmek için tıklayın: {1}" + :block/copy-ref "Blok referansını kopyala" + :block/copy-url "Block URL'sini kopyala" + :block/created-label "Oluşturulma: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' kullanımdan kaldırıldı. Bunun yerine '/Math block' komutunu kullanın." + :block/deprecated-query-syntax "#+BEGIN_QUERY kullanımdan kaldırıldı. Bunun yerine '/Advanced Query' komutunu kullanın." + :block/deprecated-quote "#+BEGIN_QUOTE kullanımdan kaldırıldı. Bunun yerine '/Quote' komutunu kullanın." + :block/empty-url "Boş URL" + :block/excalidraw-no-longer-supported "Excalidraw artık varsayılan olarak desteklenmiyor, eklentiler aracılığıyla desteklemeyi planlıyoruz." + :block/extraction-error "Blok çıkarma hatası" + :block/hide-query "Sorguyu gizle" + :block/invalid-hiccup "Geçersiz hiccup" + :block/invalid-link "Geçersiz bağlantı" + :block/invalid-url "Geçersiz URL" + :block/large-block-warning "Büyük blok, uygulamayı yavaşlatmamak için düzenlenemez veya aranamaz olacaktır, lütfen bu bloğu düzenlemek için başka bir editör kullanın." + :block/last-edited-label "Son düzenleme: {1}" + :block/not-found-warning "Blok bulunamadı" + :block/open-block-references "Blok referanslarını aç" + :block/practice "Alıştırma" + :block/practice-cards "Kartlarla alıştırma" + :block/ref-nesting-too-deep "Blok referansı iç içe geçmesi çok derin" + :block/remove-tag "Etiketi kaldır" + :block/remove-this-tag "Bu etiketi kaldır" + :block/render-error "Blok İşleme Hatası:" + :block/set-query "Sorgu ayarla" + :block/set-query-label "Sorgu ayarla:" + :block/sort-order "Sıralama düzeni" + :block/status-history "Durum geçmişi" + :block/untitled-query "Başlıksız sorgu" + + :block.macro/embed-deprecated "{{embed}} kullanımdan kaldırılmıştır. Bunun yerine '/Node embed' komutunu kullanın." + :block.macro/namespace-deprecated "{{namespace}} kullanımdan kaldırılmıştır. Bunun yerine {1} özelliğini kullanın." + :block.macro/query-deprecated "{{query}} kullanımdan kaldırılmıştır. Bunun yerine '/Query' komutunu kullanın." + :block.macro/unsupported-name "Desteklenmeyen makro adı: {1}" + + :block.reaction/emoji-required-warning "Emoji gerekli" + :block.reaction/unsupported-emoji-warning "Desteklenmeyen tepki emojisi" + + :bug-report/desc "Hata bildir" + :bug-report/title "Hata Bildir" + + :bug-report.clipboard/action-desc "Panoyu kontrol et" + :bug-report.clipboard/action-title "Pano Denetleyicisi" + :bug-report.clipboard/desc "Kopyala ve yapıştır sorunları yaşıyorsanız pano denetleyicisini kullanın" + :bug-report.clipboard/title "Pano" + + :bug-report.inspector/back "Geri" + :bug-report.inspector/clipboard-desc "Pano içeriği" + :bug-report.inspector/copied "Panoya kopyalandı" + :bug-report.inspector/copy "Kopyala" + :bug-report.inspector/copy-desc "Tanılama raporunu kopyala" + :bug-report.inspector/create-issue "Sorun oluştur" + :bug-report.inspector/create-issue-desc "Artık panoya yapıştırdığınız sonucu bildirebilirsiniz. Lütfen sonucu 'Additional Context' bölümüne yapıştırın ve özgün içeriği nereden kopyaladığınızı belirtin. Teşekkürler!" + :bug-report.inspector/desc "Pano verilerinizi incelemek için {1} tuşlarına basın\nveya mobil sürümü kullanıyorsanız yapıştırmak için buraya dokunun" + :bug-report.inspector/placeholder "İçeriği buraya yapıştırın" + :bug-report.inspector/tip "İpucu: Yapıştırmak için Ctrl+V kullanın" + :bug-report.inspector/title "Pano Denetleyicisi" + + :bug-report.issue/action-desc "Bilinen sorunlara göz at" + :bug-report.issue/action-title "GitHub Sorunları" + :bug-report.issue/desc "Sorununuzun zaten bildirilip bildirilmediğini kontrol edin" + :bug-report.issue/report-link "Sorun bildir" + :bug-report.issue/title "Bilinen Sorunlar" + + :class/add-property "Etiket özelliği ekle" + :class/tag-properties-desc "Etiket özellikleri, etiketi kullanan tüm düğümlere miras kalır. Örneğin, her #Task düğümü 'Status' ve 'Priority' özelliklerini miras alır." + :class/tagged-nodes "Etiketli düğümler" + + :class.built-in/asset "Dosya" + :class.built-in/card "Kart" + :class.built-in/cards "Kartlar" + :class.built-in/code-block "Kod" + :class.built-in/journal "Günlük" + :class.built-in/math-block "Matematik" + :class.built-in/page "Sayfa" + :class.built-in/pdf-annotation "PDF Açıklama" + :class.built-in/property "Özellik" + :class.built-in/query "Sorgu" + :class.built-in/quote-block "Alıntı" + :class.built-in/root "Kök Etiket" + :class.built-in/tag "Etiket" + :class.built-in/task "Görev" + :class.built-in/template "Şablon" + :class.built-in/whiteboard "Beyaz Tahta" + + :class.validation/built-in-extends-change "Yerleşik öğelerin kalıtımı değiştirilemez." + :class.validation/cant-add-tag-on-built-in "Yerleşik \"{1}\" öğesine etiket eklenemiyor." + :class.validation/cant-remove-private-tags "Özel etiketler kaldırılamıyor: {1}." + :class.validation/cant-remove-tag-built-in "Yerleşik #{1} içeren etiket kaldırılamıyor." + :class.validation/cant-remove-tag-on-built-in "Yerleşik \"{1}\" üzerindeki etiket kaldırılamıyor." + :class.validation/cant-set-tag-built-in "Yerleşik #{1} ile etiket ayarlanamıyor." + :class.validation/duplicate "'{1}' etiketi zaten mevcut." + :class.validation/extends-cycle "Kalıtımda döngü tespit edildi." + :class.validation/invalid-extends-type "Geçersiz kalıtım türü." + :class.validation/parents-must-be-tags "Etiket üst öğeleri etiket olmalıdır." + :class.validation/tag-with-non-tag "\"{1}\" etiketi olmayan yerleşik sayfayla etiket ayarlanamıyor." + + :cmdk.action/apply-theme "Temayı uygula" + :cmdk.action/copy-ref "Referansı kopyala" + :cmdk.action/create "Oluştur" + :cmdk.action/filter "Filtre" + :cmdk.action/open "Aç" + :cmdk.action/open-in-sidebar "Yan panelde aç" + :cmdk.action/search "Ara" + :cmdk.action/trigger "Çalıştır" + + :cmdk.create/configure-tag "Etiketi yapılandır" + :cmdk.create/page "Sayfa oluştur" + :cmdk.create/tag "Etiket oluştur" + + :cmdk.error/no-block-link "Bu blokta bağlantı yok." + :cmdk.error/no-page-link "Bu sayfada bağlantı yok." + :cmdk.error/no-search-item-link "Bu arama sonucunda bağlantı yok." + + :cmdk.filter/add "Filtre ekle" + :cmdk.filter/codes "Yalnızca kod" + :cmdk.filter/commands "Yalnızca komutlar" + :cmdk.filter/current-page "Yalnızca mevcut sayfa" + :cmdk.filter/files "Yalnızca dosyalar" + :cmdk.filter/nodes "Yalnızca düğümler" + :cmdk.filter/only-label "Yalnızca ara:" + :cmdk.filter/themes "Yalnızca temalar" + + :cmdk.group/codes "Kod" + :cmdk.group/commands "Komutlar" + :cmdk.group/create "Oluştur" + :cmdk.group/current-page "Mevcut sayfa" + :cmdk.group/files "Dosyalar" + :cmdk.group/filters "Filtreler" + :cmdk.group/nodes "Düğümler" + :cmdk.group/recently-updated "Son güncellenenler" + :cmdk.group/themes "Temalar" + + :cmdk.info/configure-tag "#{1} yapılandır" + :cmdk.info/create-page "'{1}' sayfası oluştur" + :cmdk.info/create-tag "'{1}' etiketi oluştur" + + :cmdk.input/add-graph-filter-placeholder "Grafik filtresi ekle" + :cmdk.input/default-placeholder "Ne arıyorsunuz?" + :cmdk.input/move-blocks-placeholder "Blokları taşı" + :cmdk.input/type-page-name-placeholder "Sayfa adı yazın" + + :cmdk.tip/clear-filter "{1} tuşuna basarak arama filtresini temizleyin" + :cmdk.tip/filter-results "{1} tuşuna basarak arama sonuçlarını filtreleyin" + :cmdk.tip/label "İpucu:" + :cmdk.tip/open-sidebar "{1} tuşuna basarak aramayı yan panelde açın" + + :collaboration/email-address "E-posta adresi" + :collaboration/invite "Davet et" + :collaboration/members "Üyeler:" + :collaboration/remove-access "Erişimi kaldır" + :collaboration/remove-access-error "Üye kaldırılamadı" + :color/blue "Mavi" - :color/purple "Mor" + :color/crimson "karmen" + :color/cyan "camgöbeği" + :color/grass "çimen yeşili" + :color/gray "Gri" + :color/green "Yeşil" + :color/indigo "çivit mavisi" + :color/orange "turuncu" :color/pink "Pembe" - :editor/copy "Kopyala" + :color/plum "erik moru" + :color/purple "Mor" + :color/red "Kırmızı" + :color/teal "su yeşili" + :color/tomato "domates kırmızısı" + :color/violet "menekşe" + :color/yellow "Sarı" + + :command.auto-complete/complete "Otomatik tamamlama: Seçili öğeyi seç" + :command.auto-complete/meta-complete "Meta otomatik tamamlama" + :command.auto-complete/next "Otomatik tamamlama: Sonraki öğeyi seç" + :command.auto-complete/prev "Otomatik tamamlama: Önceki öğeyi seç" + :command.auto-complete/shift-complete "Otomatik tamamlama: Seçili öğeyi kenar çubuğunda aç" + + :command.command-palette/toggle "Komut paleti" + + :command.editor/add-property "Özellik ekle" + :command.editor/add-property-deadline "Son tarih ekle" + :command.editor/add-property-icon "Simge ekle" + :command.editor/add-property-priority "Öncelik ekle" + :command.editor/add-property-status "Durum ekle" + :command.editor/add-reaction "Tepki ekle" + :command.editor/backspace "Geri tuşu (Backspace) / Geriye doğru sil" + :command.editor/backward-kill-word "Geriye doğru bir kelimeyi sil" + :command.editor/backward-word "İmleci bir kelime geri götür" + :command.editor/beginning-of-block "İmleci bir bloğun başına taşı" + :command.editor/bold "Kalın" + :command.editor/clear-block "Tüm blok içeriğini sil" + :command.editor/collapse-block-children "Daralt" + :command.editor/copy "Kopyala (seçimi veya blok referansını kopyalar)" + :command.editor/copy-embed "Geçerli bloğu işaret eden bir blok eklemesi kopyala" + :command.editor/copy-page-url "Sayfa URL'sini kopyala" + :command.editor/copy-text "Seçimleri metin olarak kopyala" + :command.editor/cut "Kes" + :command.editor/cycle-todo "TODO durumunu değiştir" + :command.editor/delete "Silme tuşu (Delete) / İleriye doğru sil" + :command.editor/delete-selection "Seçili blokları sil" + :command.editor/down "İmleci aşağı taşı / Aşağı seç" + :command.editor/end-of-block "İmleci bir bloğun sonuna taşı" + :command.editor/escape-editing "Düzenlemeden çık" + :command.editor/expand-block-children "Genişlet" + :command.editor/follow-link "İmlecin altındaki bağlantıyı takip et" + :command.editor/forward-kill-word "İleriye doğru bir kelimeyi sil" + :command.editor/forward-word "İmleci bir kelime ileri götür" + :command.editor/highlight "Vurgulu" + :command.editor/indent "Bloğu girintile" + :command.editor/insert-link "HTML Bağlantısı" + :command.editor/insert-youtube-timestamp "Youtube zaman damgası ekle" + :command.editor/italics "İtalik" + :command.editor/jump "Atla" + :command.editor/kill-line-after "İmleç konumundan sonraki satırı sil" + :command.editor/kill-line-before "İmleç konumundan önceki satırı sil" + :command.editor/left "İmleci sola hareket ettir / Seçili bloğu aç ve başına git" + :command.editor/move-block-down "Bloğu aşağı taşı" + :command.editor/move-block-up "Bloğu yukarı taşı" + :command.editor/move-blocks "Blokları taşı" + :command.editor/new-block "Yeni blok oluştur" + :command.editor/new-line "Geçerli blokta yeni satır" + :command.editor/open-edit "Seçili bloğu düzenle" + :command.editor/open-link-in-sidebar "Bağlantıyı kenar çubuğunda aç" + :command.editor/open-selected-blocks-in-sidebar "Seçili blokları panelde aç" + :command.editor/outdent "Blok girintisini azalt" + :command.editor/paste-text-in-one-block-at-point "İmleç konumunda metin olarak yapıştırın" + :command.editor/quick-add "Hızlı ekle" + :command.editor/redo "Yinele" + :command.editor/right "İmleci sağa hareket ettir / Seçili bloğu aç ve sonuna git" + :command.editor/select-all-blocks "Tüm blokları seç" + :command.editor/select-block-down "Aşağıdaki bloğu seçin" + :command.editor/select-block-up "Yukarıdaki bloğu seçin" + :command.editor/select-down "Aşağıdaki içeriği seçin" + :command.editor/select-parent "Üst bloğu seçin" + :command.editor/select-up "Yukarıdaki içeriği seçin" + :command.editor/set-tags "Etiketleri ayarla" + :command.editor/strike-through "Üstü çizili" + :command.editor/toggle-block-children "Alt blokları göster/gizle" + :command.editor/toggle-display-hidden-properties "Gizli özellikleri göster/gizle" + :command.editor/toggle-number-list "Numaralı liste" + :command.editor/toggle-open-blocks "Açık blokları kapat/aç (tüm blokları daralt veya genişlet)" + :command.editor/undo "Geri al" + :command.editor/up "İmleci yukarı taşı / Yukarıyı seç" + :command.editor/zoom-in "Düzenlenen bloğu yakınlaştır / Aksi takdirde ileri git" + :command.editor/zoom-out "Düzenlenen bloğu uzaklaştır / Aksi takdirde geri git" + + :command.go/all-graphs "Bütün graflara git" + :command.go/all-pages "Bütün sayfalara git" + :command.go/backward "Geriye git" + :command.go/electron-find-in-page "Sayfada bul" + :command.go/electron-jump-to-the-next "Aramanız için bir sonraki eşleşmeye atlayın" + :command.go/electron-jump-to-the-previous "Aramanız için bir önceki eşleşmeye atlayın" + :command.go/flashcards "Bilgi kartlarına git" + :command.go/forward "İleriye git" + :command.go/graph-view "Graf görünümüne git" + :command.go/home "Ana sayfaya git" + :command.go/journals "Günlüğe git" + :command.go/keyboard-shortcuts "Klavye kısayollarına git" + :command.go/next-journal "Sonraki günlüğe git" + :command.go/prev-journal "Önceki günlüğe git" + :command.go/search "Sayfalarda ve bloklarda ara" + :command.go/search-in-page "Sayfada ara" + :command.go/search-themes "Tema ara" + :command.go/tomorrow "Yarının günlüğüne git" + + :command.graph/add "Graf ekle" + :command.graph/db-add "Veritabanına ekle" + :command.graph/db-save "Veritabanını kaydet" + :command.graph/export-as-html "Herkese açık graf sayfalarını html olarak dışarı aktar" + :command.graph/open "Açılacak grafı seçin" + :command.graph/remove "Bir grafı kaldır" + + :command.misc/copy "Kopyala" + :command.misc/export-block-data "Blok verilerini dışa aktar" + :command.misc/export-graph-ontology-data "Grafik ontolojisini dışa aktar" + :command.misc/export-page-data "Sayfa verilerini dışa aktar" + :command.misc/import-edn-data "EDN verilerini içe aktar" + + :command.page/toggle-favorite "Sık kullanılanlara ekle/çıkar" + + :command.pdf/close "PDF: Geçerli pdf görüntüleyiciyi kapat" + :command.pdf/find "PDF: Geçerli pdf belgesinde aranacak metin" + :command.pdf/next-page "PDF: Geçerli pdf belgesinin sonraki sayfası" + :command.pdf/previous-page "PDF: Geçerli pdf belgesinin önceki sayfası" + + :command.publish/open-dialog "Yayın diyaloğunu aç" + + :command.search/re-index "Arama dizinini yeniden oluştur" + + :command.shell/run "Git komutunu çalıştır" + + :command.sidebar/clear "Sağ kenar çubuğundaki herşeyi temizle" + :command.sidebar/close-top "Sağ kenar çubuğunun en üst öğesini kapatır" + :command.sidebar/open-today-page "Sağ kenar çubuğunda bugünün sayfasını açın" + + :command.ui/clear-all-notifications "Tüm bildirimleri temizle" + :command.ui/customize-appearance "Görünümü özelleştir" + :command.ui/goto-plugins "Eklentiler panosuna git" + :command.ui/highlight-recent-blocks "Son blokları vurgula" + :command.ui/install-plugin-from-github "GitHub'dan eklenti yükle" + :command.ui/install-plugins-from-file "Eklentileri plugins.edn dosyasından yükleyin" + :command.ui/select-theme-color "Kullanılabilir tema renklerini seçin" + :command.ui/toggle-brackets "Köşeli ayraçların görüntülenip görüntülenmeyeceğini değiştir" + :command.ui/toggle-contents "Kenar çubuğundaki içeriği aç/kapat" + :command.ui/toggle-document-mode "Belge modunu aç/kapat" + :command.ui/toggle-help "Yardımı aç/kapat" + :command.ui/toggle-left-sidebar "Sol kenar çubuğunu aç/kapat" + :command.ui/toggle-right-sidebar "Sağ kenar çubuğunu aç/kapat" + :command.ui/toggle-settings "Ayarları aç/kapat" + :command.ui/toggle-theme "Koyu ve açık tema arasında geçiş yap" + :command.ui/toggle-wide-mode "Geniş modu aç/kapat" + + :command.window/close "Pencereyi kapat" + + :context-menu/developer-tools "Geliştirici araçları" + :context-menu/make-a-flashcard "Bilgi kartı oluştur" + :context-menu/set-icon "Simge ayarla" + :context-menu/toggle-number-list "Numaralı listeyi aç/kapat" + + :date/invalid-date-warning "{1} geçerli bir tarih değil. Lütfen tekrar deneyin" + + :date.nlp/last-friday "Geçen Cuma" + :date.nlp/last-monday "Geçen Pazartesi" + :date.nlp/last-month "Geçen ay" + :date.nlp/last-saturday "Geçen Cumartesi" + :date.nlp/last-sunday "Geçen Pazar" + :date.nlp/last-thursday "Geçen Perşembe" + :date.nlp/last-tuesday "Geçen Salı" + :date.nlp/last-wednesday "Geçen Çarşamba" + :date.nlp/last-week "Geçen hafta" + :date.nlp/last-year "Geçen yıl" + :date.nlp/next-friday "Gelecek Cuma" + :date.nlp/next-monday "Gelecek Pazartesi" + :date.nlp/next-month "Gelecek ay" + :date.nlp/next-saturday "Gelecek Cumartesi" + :date.nlp/next-sunday "Gelecek Pazar" + :date.nlp/next-thursday "Gelecek Perşembe" + :date.nlp/next-tuesday "Gelecek Salı" + :date.nlp/next-wednesday "Gelecek Çarşamba" + :date.nlp/next-week "Gelecek hafta" + :date.nlp/next-year "Gelecek yıl" + :date.nlp/this-friday "Bu Cuma" + :date.nlp/this-monday "Bu Pazartesi" + :date.nlp/this-month "Bu ay" + :date.nlp/this-saturday "Bu Cumartesi" + :date.nlp/this-sunday "Bu Pazar" + :date.nlp/this-thursday "Bu Perşembe" + :date.nlp/this-tuesday "Bu Salı" + :date.nlp/this-wednesday "Bu Çarşamba" + :date.nlp/this-week "Bu hafta" + :date.nlp/this-year "Bu yıl" + :date.nlp/today "Bugün" + :date.nlp/tomorrow "Yarın" + :date.nlp/yesterday "Dün" + + :deeplink/open-block-error "Bağlantı açılamadı. Blok ID'si `{1}` mevcut grafikte yok." + :deeplink/open-graph-error "Grafik açılamadı. `{1}` grafiği mevcut değil." + :deeplink/open-page-error "Bağlantı açılamadı. `{1}` sayfası mevcut grafikte yok." + + :editor/add-content-first-warning "Lütfen önce bir içerik ekleyin." + :editor/auto-heading "Otomatik başlık" + :editor/block-search "Blok ara" + :editor/click-to-edit "Düzenlemek için tıklayın" + :editor/code-language-placeholder "Dil seçin" + :editor/collapse-block-children "Alt blokları daralt" :editor/cut "Kes" - :editor/expand-block-children "Tümünü genişlet" - :editor/collapse-block-children "Tümünü daralt" - :editor/delete-selection "Seçili blokları sil" - :editor/cycle-todo "TODO durumunu değiştir" - :dev/show-page-data "(Dev) Sayfa verisini göster" - :dev/show-block-data "(Dev) Blok verisini göster" - :dev/show-block-ast "(Dev) Blok AST'sini göster" - :content/copy-export-as "Kopyala / Dışarı aktar.." - :content/copy-block-url "Block URL'sini kopyala" - :content/copy-block-ref "Blok referansını kopyala" - :content/copy-ref "Bu referansı kopyala" - :content/delete-ref "Bu referansı sil" - :content/replace-with-text "Metin ile değiştir" - :content/replace-with-embed "Ekleme ile değiştir" - :content/open-in-sidebar "Kenar çubuğunda aç" - :content/click-to-edit "Düzenlemek için tıklayın" - :context-menu/make-a-flashcard "Bilgi Kartı Oluştur" - :context-menu/toggle-number-list "Numaralı liste olarak değiştir" - :settings-page/edit-config-edn "config.edn dosyasını düzenle" - :settings-page/edit-global-config-edn "Genel config.edn dosyasını düzenle" - :settings-page/edit-custom-css "custom.css dosyasını düzenle" - :settings-page/edit-export-css "export.css dosyasını düzenle" - :settings-page/custom-configuration "Özel yapılandırma" - :settings-page/custom-global-configuration "Özel genel yapılandırma" - :settings-page/theme-light "açık" - :settings-page/theme-dark "koyu" - :settings-page/theme-system "sistem" - :settings-page/custom-theme "Özel tema" - :settings-page/export-theme "Temayı dışarı aktar" - :settings-page/show-brackets "Köşeli ayraçları göster" - :settings-page/spell-checker "Yazım denetleyici" - :settings-page/auto-updater "Otomatik güncelleme" - :settings-page/disable-sentry "Kullanım verilerini ve tanılamayı Logseq'e gönderin" - :settings-page/disable-sentry-desc "Logseq asla yerel graf veritabanınızı toplamayacak veya verilerinizi satmayacaktır." - :settings-page/preferred-outdenting "Mantıksal girinti" - :settings-page/preferred-outdenting-tip "Sol taraf varsayılan ayar ile olan girintiyi, sağ taraf ise mantıksal girinti etkinken olan girintiyi gösterir. " - :settings-page/preferred-outdenting-tip-more "→ Daha fazla bilgi edinin" - :settings-page/show-full-blocks "Blok referansındaki tüm satırları göster" - :settings-page/auto-expand-block-refs "Yakınlaştırdığınızda blok referanslarını otomatik olarak genişletin" - :settings-page/auto-expand-block-refs-tip "Bu seçenek, yakınlaştırma yapıldığında blok referanslarının otomatik olarak genişletilip genişletilmeyeceğini kontrol eder." - :settings-page/custom-date-format "Tercih edilen tarih biçimi" - :settings-page/preferred-pasting-file-hint "Etkinleştirildiğinde, internetten bir resim yapıştırmak görüntüyü indirir ve ekler. Devre dışı bırakıldığında sadece resim bağlantısı yapıştırılır." - :settings-page/preferred-pasting-file "Dosya yapıştırmayı tercih et" - :settings-page/enable-shortcut-tooltip "Kısayol araç ipuçlarını etkinleştir" - :settings-page/enable-tooltip "Araç ipuçları" - :settings-page/enable-journals "Günlük" - :settings-page/enable-all-pages-public "Yayımlanan tüm sayfaları herkese açık yap" - :settings-page/home-default-page "Varsayılan ana sayfayı ayarla" - :settings-page/clear-cache "Önbelleği temizle" - :settings-page/clear "Temizle" - :settings-page/clear-cache-warning "Önbelleği temizlemek açık grafları atacaktır. Kaydedilmemiş değişiklikleri kaybedersiniz." - :settings-page/developer-mode "Geliştirici modu" - :settings-page/developer-mode-desc "Geliştirici modu, katkıda bulunanların ve eklenti geliştiricilerinin Logseq ile entegrasyonlarını daha verimli bir şekilde test etmelerine yardımcı olur." - :settings-page/current-version "Geçerli sürüm" - :settings-page/tab-general "Genel" - :settings-page/tab-editor "Düzenleyici" - :settings-page/tab-keymap "Tuş haritası" - :settings-page/tab-account "Hesap" - :settings-page/tab-advanced "Gelişmiş" - :settings-page/tab-features "Özellikler" - :settings-page/plugin-system "Eklentiler" - :settings-page/enable-flashcards "Bilgi kartları" - :settings-page/network-proxy "Ağ ara sunucusu" - :settings-page/login-prompt "Yeni özelliklere herkesten önce erişmek için bir Open Collective Sponsoru veya Logseq'in Destekçisi olmanız ve oturum açmanız gerekir." - :settings-page/native-titlebar "Yerel başlık çubuğu" - :settings-page/native-titlebar-desc "Windows ve Linux'ta yerel pencere başlık çubuğunu etkinleştirir." - :settings-page/check-for-updates "Güncellemeleri kontrol et" - :settings-page/checking "Kontrol ediliyor ..." - :settings-page/revision "Revizyon: " - :settings-page/changelog "Yenilikler nelerdir?" - :settings-page/app-updated "Uygulamanız güncel 🎉" - :settings-page/update-available "Yeni sürüm bulundu: " - :settings-page/update-error-1 "⚠️ Ne yazık ki bir sorun oluştu!" - :settings-page/update-error-2 " Lütfen bu bağlantıyı denetleyin: " - :settings-page/auto-chmod "Dosya izinlerini otomatik olarak değiştir" - :settings-page/auto-chmod-desc "Grup üyeliği tarafından verilen izinlere sahip birden fazla kullanıcının düzenleme yapmasına izin vermek için devre dışı bırakın." - :yes "Evet" + :editor/cycle-todo "TODO geçişi" + :editor/delete-selection "Seçimi sil" + :editor/display-tag-inline-hint "bu etiketi bu düğümün sonunda değil, satır içinde göstermek için." + :editor/expand-block-children "Alt blokları genişlet" + :editor/heading "Başlık {1}" + :editor/moving-blocks-count "{1} blok taşınıyor" + :editor/new-page "Yeni sayfa" + :editor/new-tag "Yeni etiket" + :editor/no-block-selected-warning "Blok seçilmedi" + :editor/paste "Yapıştır" + :editor/reference-node-use-page-ref "Bir düğüme başvurmak için lütfen `[[]]` kullanın." + :editor/remove-heading "Başlığı kaldır" + :editor/search-for-node "Düğüm ara" + :editor/search-for-tag "Bir etiket ara" + :editor/search-template-placeholder "Şablon ara" + :editor/template-insert-error "Şablon ekleme hatası: {1}" + + :editor.document-mode/new-block-hint "Yeni blok oluşturmak için {1}" + :editor.document-mode/title "Belge modu" + :editor.document-mode/toggle-desc "Belge modunu açıp kapatmak için `D`'ye tıklayın veya {1} yazın" + + :editor.quick-add/add-to-today "Bugünkü sayfaya ekle" + :editor.quick-add/title "Hızlı ekleme" + + :editor.slash/advanced-query "Gelişmiş Sorgu" + :editor.slash/advanced-query-desc "Gelişmiş sorgu bloğu oluştur" + :editor.slash/calculator "Hesap Makinesi" + :editor.slash/calculator-desc "Hesap makinesi ekle" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Kod bloğu" + :editor.slash/code-block-desc "Kod bloğu ekle" + :editor.slash/current-time "Geçerli saat" + :editor.slash/current-time-desc "Geçerli saati ekle" + :editor.slash/date-picker "Tarih seçici" + :editor.slash/date-picker-desc "Bir tarih seçin ve buraya ekleyin" + :editor.slash/embed-html "HTML Gömme" + :editor.slash/embed-twitter-tweet "Twitter Tweeti Gömme" + :editor.slash/embed-video-url "Video URL'si Gömme" + :editor.slash/embed-youtube-timestamp "YouTube Zaman Damgası Gömme" + :editor.slash/group-advanced "GELİŞMİŞ" + :editor.slash/group-basic "TEMEL" + :editor.slash/group-format "BİÇİM" + :editor.slash/group-heading "Başlık" + :editor.slash/group-list-type "LİSTE TÜRÜ" + :editor.slash/group-plugins "EKLENTİLER" + :editor.slash/group-priority "ÖNCELİK" + :editor.slash/group-task-date "GÖREV TARİHİ" + :editor.slash/group-task-status "GÖREV DURUMU" + :editor.slash/group-time-and-date "SAAT VE TARİH" + :editor.slash/heading-label "Başlık {1}" + :editor.slash/image-link "Resim bağlantısı" + :editor.slash/image-link-desc "Bir resimine HTTP bağlantısı oluştur" + :editor.slash/link-desc "HTTP bağlantısı oluştur" + :editor.slash/math-block "Matematik bloğu" + :editor.slash/math-block-desc "LaTeX bloğu oluştur" + :editor.slash/no-priority "Öncelik yok" + :editor.slash/node-embed "Düğümü Gömme" + :editor.slash/node-embed-desc "Düğümü buraya gömme" + :editor.slash/node-reference "Düğüm Başvurusu" + :editor.slash/node-reference-desc "Bir düğüme geri bağlantı oluştur (sayfa veya blok)" + :editor.slash/normal-text "Normal metin" + :editor.slash/normal-text-desc "Başlığı temizle ve normal metne ayarla" + :editor.slash/number-children "Çocukları Numaralandır" + :editor.slash/number-list "Numaralı liste" + :editor.slash/priority-desc "Önceliği {1} olarak ayarla" + :editor.slash/priority-label "Öncelik {1}" + :editor.slash/query-function "Sorgu Fonksiyonu" + :editor.slash/query-function-desc "Sorgu fonksiyonu oluştur" + :editor.slash/quote-desc "Alıntı bloğu oluştur" + :editor.slash/status-desc "Durumu {1} olarak ayarla" + :editor.slash/template-desc "Oluşturulan şablonu buraya ekle" + :editor.slash/today-desc "Bugünün tarihini ekle" + :editor.slash/tomorrow-desc "Yarının tarihini ekle" + :editor.slash/underline "Altı çizili" + :editor.slash/underline-desc "Altı çizili metin biçimlendirmesi oluştur" + :editor.slash/upload-asset "Dosya Yükle" + :editor.slash/upload-asset-desc "Resim, PDF, DOCX vb. gibi dosya türlerini yükle" + :editor.slash/yesterday-desc "Dünün tarihini ekle" + + :electron/about "Logseq Hakkında" + :electron/add-to-dictionary "Sözlüğe ekle" + :electron/block-not-exist "Bağlantı açılamadı. Blok kimliği `{1}` grafikte mevcut değil." + :electron/cancel "İptal" + :electron/copy-image "Görüntüyü kopyala" + :electron/link-open-confirm "Bu bağlantıyı açmak istediğinizden emin misiniz?\n{1}" + :electron/link-open-failed-missing-graph "Bağlantı açılamadı. Grafik eksik." + :electron/link-open-failed-no-graph "Bağlantı açılamadı. Grafik kimliği `{1}` bağlı herhangi bir grafikle eşleştirilemedi." + :electron/link-open-failed-no-target "Bağlantı açılamadı. `{1}` herhangi bir hedefle eşleştirilemedi." + :electron/look-up "Seçili metni ara" + :electron/main-exception "[Ana süreç istisnası]\n{1}\n{2}" + :electron/new-window "Yeni pencere" + :electron/official-docs "Resmi belgeler" + :electron/ok "Tamam" + :electron/open-dir-error "Dizin açılamadı: {1}" + :electron/save-image "Görüntüyü kaydet" + :electron/save-image-as "Görüntüyü farklı kaydet" + :electron/search-with-google "Google'da ara" + :electron/unimplemented-callback "Uygulanmamış x-callback-url eylemi: `{1}`." + :electron/version "Sürüm {1}" + :electron/write-file-error "Dosya {1} yazılamadı, {2}." + :electron/write-file-error-with-backup "Dosya {1} yazılamadı, {2}. Bir yedek dosya {3} konumuna kaydedildi." + + :encryption/cloud-password-rich (fn [] ["Parolanızı kaybederseniz, buluttaki verilerinizin hiçbiri çözülemez. " [:span "Yine de grafiğinizin yerel sürümüne erişmeye devam edebilirsiniz."]]) + :encryption/current-password "Mevcut şifre" + :encryption/enter-password "Şifre girin" + :encryption/enter-password-again "Şifreyi tekrar girin" + :encryption/enter-password-title "Şifre girin" + :encryption/failed-to-force-reset-password "Şifre zorla sıfırlanamadı" + :encryption/failed-to-update-password "Şifre güncellenemedi" + :encryption/fetch-key-pair-error "Kullanıcı rsa-anahtar çifti getiriliyor hatası: {1}" + :encryption/fetching-key-pair "Anahtar çifti alınıyor" + :encryption/force-reset-password "Şifreyi zorla sıfırla" + :encryption/force-reset-password-successfully "Şifre zorla sıfırlandı" + :encryption/force-resetting-password "Zorla sıfırlanıyor" + :encryption/forgot-password-question "Şifrenizi mi unuttunuz?" + :encryption/forgot-password-warning "Şifrenizi unutursanız şifrelenmiş veriler kurtarılamaz." + :encryption/init-key-pair "Anahtar çiftini başlat" + :encryption/init-key-pair-error "Anahtar çiftini başlatma hatası: {1}" + :encryption/password-not-matched "Şifreler eşleşmiyor" + :encryption/password-updated-successfully "Şifre güncellendi" + :encryption/remember-password-rich (fn [] [[:span "Lütfen "] "belirlediğiniz parolayı mutlaka hatırlayın; unutursanız onu sıfırlayamaz veya geri getiremeyiz, " [:span "ve size "] "parolanın güvenli bir yedeğini saklamanızı öneririz."]) + :encryption/reset-password "Şifreyi sıfırla" + :encryption/set-new-password "Yeni şifre belirle" + :encryption/set-password-title "Şifre belirle" + :encryption/updating-password "Şifre güncelleniyor" + :encryption/wrong-password "Yanlış şifre" + + :export/backup-successful "Yedek oluşturuldu!" + :export/block-data-copied "Blok verileri panoya kopyalandı" + :export/collecting-assets "Dosyalar toplanıyor" + :export/copied-to-clipboard "Panoya kopyalandı!" + :export/copy-or-export-as "Kopyala / Dışarı aktar.." + :export/creating-zip "Zip oluşturuluyor" + :export/db-backup-error "DB yedeği oluşturulamadı." + :export/db-edn "EDN dosyası olarak dışa aktar" + :export/debug-transit-desc "Hata ayıklama için bize göndermek üzere .transit dosyası olarak dışa aktarır. Hassas veriler dışa aktarılan dosyadan kaldırılacaktır." + :export/debug-transit-file "Hata ayıklama transit dosyasını dışa aktar" + :export/edn-desc "Okunabilir ve düzenlenebilir .edn dosyası olarak dışa aktarır. Bunu birincil yedekleme olarak kullanmayın." + :export/error-unexpected "Dışa aktarma sırasında beklenmeyen bir hata oluştu. Ayrıntılar için JavaScript konsoluna bakın." + :export/exporting "Dışa aktarılıyor" + :export/finalizing "Sonlandırılıyor" + :export/format-text "Metin" + :export/graph "Grafiği dışa aktar" + :export/graph-ontology-data-copied "Grafik ontoloji verileri panoya kopyalandı" + :export/indent-style-dashes "tireler" + :export/indent-style-label "Girinti stili:" + :export/indent-style-none "girintisiz" + :export/indent-style-spaces "boşluklar" + :export/level-lte "seviye <=" + :export/markdown "Markdown olarak dışa aktar (blok özellikleri olmadan)" + :export/newline-after-block "bloktan sonra yeni satır" + :export/no-updates-since-last-export "Son dışa aktarmadan bu yana güncelleme yok." + :export/open-blocks-only "yalnızca açık bloklar (daraltılmış çocukları atla)" + :export/page "Sayfayı dışa aktar" + :export/page-data-copied "Sayfa verileri panoya kopyalandı" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Zip hazırlanıyor" + :export/preview-alt "dışa aktarma önizleme" + :export/public-pages "Herkese açık sayfaları dışa aktar" + :export/remove-emphasis "vurguyu kaldır" + :export/remove-properties "özellikleri kaldır" + :export/remove-tags "#etiketleri kaldır" + :export/save-to-file "Dosyaya kaydet" + :export/sqlite-db "SQLite veritabanını dışa aktar" + :export/title "Dışa Aktar" + :export/transparent-background "Saydam arka plan" + :export/view-nodes-data-copied "Görünüm düğüm verileri panoya kopyalandı" + :export/zip "DB SQLite ve dosyaları dışa aktar" + :export/zip-error "ZIP dışa aktarılamadı." + + :export.backup/backup-now "Şimdi yedekle" + :export.backup/cancel "Yedeklemeyi iptal et" + :export.backup/enabled-desc "Bu grafik için saatlik yedeklemeler etkinleştirildi, {1}." + :export.backup/folder "Yedekleme klasörü:" + :export.backup/hourly-note "Yedekleme her saat oluşturulacak." + :export.backup/open-folder "bu grafik için yedekleme klasörünü aç" + :export.backup/schedule "Yedekleme zamanla" + :export.backup/set-folder-first "Önce yedekleme klasörünü ayarlayın" + :export.backup/sqlite-desc "Grafik içeriğini tek bir .sqlite dosyasına yedeklemenin birincil yolu." + :export.backup/unsupported-desc "Tarayıcınız {{The File System Access API}} desteklemiyor, lütfen Chromium tabanlı bir tarayıcıya geçin." + :export.backup/zip-desc "Grafik içeriğini ve dosyaları bir .zip dosyasına yedeklemenin birincil yolu." + + :file/config-duplicate-keys "'{1}' dosyasında yinelenen anahtarlar var. '{2}' anahtarı birden çok kez atandı." + :file/config-invalid "Yapılandırma dosyası geçersiz" + :file/format-not-supported ".{1} biçimi desteklenmiyor." + :file/label "Dosya" + :file/last-modified-at "Son değiştirilme tarihi" + :file/name "Dosya adı" + :file/no-data "Veri yok" + :file/title "Dosya {1}" + + :file.config/deprecation-title "Dosya {1} aşağıdaki kullanımdan kaldırılan özelliklere sahiptir:" + :file.config/error-title "Dosya {1} aşağıdaki hatalara sahiptir:" + :file.config/invalid-desc "Yapılandırmanın {} içinde kapalı olduğundan emin olun." + :file.config/invalid-title "Dosya {1} geçerli değildir." + :file.config/read-failed-desc "Yapılandırmanın {} içinde kapalı olduğundan emin olun. Ayrıca '( { [' karakterlerinin karşılık gelen kapatma karakterlerine ')}} ]' sahip olduğundan emin olun." + :file.config/read-failed-title "Dosya {1} okunması başarısız oldu" + + :flashcard/add-query "Yeni sorgu ekle" + :flashcard/all-cards "Tüm kartlar" + :flashcard/select-cards "Kart seç" + :flashcard/shortcut-tooltip "Kısayol: {1}" + + :flashcard.empty/desc "Herhangi bir bloğa karta dönüştürmek için \"{1}\" ekleyebilir veya bazı cloze'lar eklemek için \"/cloze\" komutunu tetikleyebilirsiniz." + :flashcard.empty/title "Bilgi Kartlarına Hoş Geldiniz" + + :flashcard.rating/again "Tekrar" + :flashcard.rating/again-desc "Cevabı yanlış verdik. Bu otomatik olarak kartı unuttuğumuz anlamına gelir. Bu bir hafıza kaybıdır。" + :flashcard.rating/easy "Kolay" + :flashcard.rating/easy-desc "Cevap doğruydu ve hiçbir zihinsel çaba olmadan hızlı ve emin şekilde hatırladık。" + :flashcard.rating/good "İyi" + :flashcard.rating/good-desc "Cevap doğruydu ama hatırlamak için biraz zihinsel çaba harcadık。" + :flashcard.rating/hard "Zor" + :flashcard.rating/hard-desc "Cevap doğruydu ama ondan emin değildik ya da hatırlamamız çok uzun sürdü." + + :flashcard.review/finished "Tamamlandı! 💯" + :flashcard.review/hide-answers "Yanıtları gizle" + :flashcard.review/show-answers "Yanıtları göster" + :flashcard.review/show-clozes "Boşlukları göster" + + :format/bold "Kalın" + :format/code "Kod" + :format/highlight "Vurgula" + :format/italics "İtalik" + :format/strikethrough "Üstü çizili" - :cancel "İptal" - :close "Kapat" - :delete "Sil" - :save "Kaydet" - :type "Tür" - :host "Ana Bilgisayar" - :port "Bağlantı Noktası" - :flashcards/modal-welcome-title "Bir kart oluşturma zamanı!" - :flashcards/modal-welcome-desc-1 "Herhangi bir bloğu karta dönüştürmek için \"{1}\" etiketini ekleyebilir veya cümle tamamlama eklemek için \"/cloze\" komutunu kullanabilirsiniz." - :flashcards/modal-finished "Tebrikler, bu sorgu için tüm kartları incelediniz, bir dahaki sefere görüşmek üzere! 💯" - :home "Başlangıç" - :new-page "Yeni sayfa:" - :graph "Graf" :graph/all-graphs "Tüm graflar" - :graph/local-graphs "Yerel graflar:" - :graph/remote-graphs "Uzak graflar:" - :export "Dışarı aktar" - :export-graph "Grafı dışarı aktar" - :export-page "Sayfayı dışarı aktar" - :export-markdown "Standart Markdown olarak dışarı aktar (blok özelliği yok)" - :export-public-pages "Herkese açık sayfaları dışarı aktar" - :export-transparent-background "Saydam arka plan" - :export-copy-to-clipboard "Panoya kopyala" - :export-copied-to-clipboard "Panoya kopyalandı!" - :export-save-to-file "Dosyaya kaydet" - :all-graphs "Tüm graflar" - :all-files "Tüm dosyalar" - :all-journals "Bütün günlükler" - :settings "Ayarlar" - :settings-of-plugins "Eklenti ayarları" - :plugins "Eklentiler" - :themes "Temalar" - :relaunch-confirm-to-work "Çalışması için uygulama yeniden başlatılmalı. Şimdi yeniden başlatmak istiyor musunuz?" - :import "İçeri aktar" - :importing "İçeri aktarılıyor" - :help-shortcut-title "Kısayolları ve diğer ipuçlarını kontrol etmek için tıklayın" - :loading "Yükleniyor..." - :login "Oturum aç" - :logout "Oturumu kapat" - :download "İndir" - :language "Dil" - :remove-background "Arka planı kaldır" - :remove-heading "Başlığı kaldır" - :heading "Başlık {1}" - :auto-heading "Otomatik başlık" - :toggle-theme "Temayı değiştir" + :graph/already-exists-error "'{1}' grafiği zaten mevcut. Lütfen başka bir adla tekrar deneyin." + :graph/as-png "PNG olarak" + :graph/built-in-pages "Yerleşik sayfalar" + :graph/charge-range "Yük Aralığı" + :graph/charge-strength "Yük Gücü" + :graph/click-to-search "Aramak için tıklayın" + :graph/create-db "DB grafı oluştur" + :graph/create-error "Grafik oluşturulamadı" + :graph/create-new "Yeni grafik oluştur" + :graph/created-before "Önce oluşturulan" + :graph/creating "Graf oluşturuluyor" + :graph/delete-local-action "Yerel grafı sil" + :graph/delete-local-confirm-desc "\"{1}\" grafiğini Logseq'den kalıcı olarak silmek istediğinizden emin misiniz?" + :graph/delete-server-action "Sunucudan sil" + :graph/delete-server-confirm-desc "\"{1}\" grafiğini sunucumuzdan kalıcı olarak silmek istediğinizden emin misiniz?" + :graph/delete-warning "⚠️ Silindikten sonra bu grafiği kurtaramayacağımızı unutmayın. Silmeden önce yedekleriniz olduğundan emin olun." + :graph/diff "Git diff" + :graph/downloading "indiriliyor" + :graph/encrypt-data-label "Graf verilerini şifrele" + :graph/excluded-pages "Hariç tutulan sayfalar" + :graph/forces "Kuvvetler" + :graph/gc-success "Grafik temizleme başarılı!" + :graph/last-opened-at-label "Son açılma: {1}" + :graph/leave-action "Bu graftan ayrıl" + :graph/leave-confirm-desc "Bu grafiği terk etmek istediğinizden emin misiniz?" + :graph/leave-error "Grafikten ayrılınamadı" + :graph/left "Grafikten ayrıldı" + :graph/link-count "{1} bağlantı" + :graph/link-distance "Bağlantı Mesafesi" + :graph/local-graphs "Yerel grafikler" + :graph/n-hops-from-selected-nodes "Seçilen düğümlerden N atlama" + :graph/name-placeholder "grafik adınız" + :graph/nodes "Düğümler" + :graph/orphan-pages "Yetim sayfalar" + :graph/page-count "{1} sayfa" + :graph/pause-simulation "Simülasyonu duraklat" + :graph/preparing "hazırlanıyor" + :graph/refresh-remote-graphs "Uzak grafikleri yenile" + :graph/remote-graphs "Uzak grafikler" + :graph/removed "Grafik kaldırıldı \"{1}\"" + :graph/removed-and-redirecting "Grafik \"{1}\" kaldırıldı. \"{2}\" grafiğine yönlendiriliyorsunuz" + :graph/removed-from-sync "Grafik senkronizasyondan kaldırıldı" + :graph/reset "Grafiği Sıfırla" + :graph/reset-forces "Kuvvetleri Sıfırla" + :graph/search "Ara" + :graph/shared-graphs "Paylaşılan grafikler" + :graph/updated-switching "Grafik güncellendi. Geçiş yapılıyor..." + :graph/use-sync-beta "Logseq Sync kullan (beta testi)" + :graph/use-sync-label "Logseq Sync kullanılsın mı?" - :help/shortcut-page-title "Klavye kısayolları" + :graph.diagnostics/checksum-failed-error "Grafik checksum tanılamaları hesaplanamadı." + :graph.diagnostics/checksum-recomputed-success "Checksum yeniden hesaplandı. Yeniden hesaplanan: {1}, yerel: {2}, uzak: {3}. {5} blok ve checksum öznitelikleri {6} ile {4}.edn indirildi." + :graph.diagnostics/checksum-unavailable-warning "Geçerli grafik için checksum tanılamaları hesaplanamıyor." + :graph.diagnostics/client-ops-export-failed-error "Client ops SQLite dışa aktarılamadı." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Client ops SQLite dışa aktarma başarısız: geçersiz payload türü {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite dışa aktarıldı: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Grafik bulunamadı." - :plugin/installed "Yüklü" - :plugin/installed-plugin "Yüklü eklenti: {1}" - :plugin/not-installed "Yüklü olmayan" - :plugin/installing "Yükleniyor" - :plugin/install "Yükle" - :plugin/reload "Yeniden yükle" - :plugin/update "Güncelle" - :plugin/update-plugin "Eklentiyi güncelle: {1} - {2}" - :plugin/check-update "Güncellemeyi denetle" - :plugin/check-all-updates "Tüm güncellemeleri denetle" - :plugin/found-updates "Yeni güncellemeler" - :plugin/found-n-updates "{1} güncelleme bulundu" - :plugin/update-all-selected "Seçilenlerin hepsini güncelle" - :plugin/all-updated "Hepsi güncellendi!" - :plugin/updates-downloading "Güncellemeler indiriliyor" - :plugin/refresh-lists "Listeleri yenile" - :plugin/enabled "Etkin" - :plugin/disabled "Devre dışı" - :plugin/update-available "Güncelleme var" - :plugin/updating "Güncelleniyor" - :plugin/uninstall "Kaldır" - :plugin/marketplace "Market" - :plugin/downloads "İndirilme" - :plugin/stars "Yıldızlar" - :plugin/title "Başlık ({1})" - :plugin/all "Tümü" - :plugin/unpacked "Çıkarılmamış" - :plugin/delete-alert "[{1}] eklentisini kaldırmak istediğinizden emin misiniz?" - :plugin/open-settings "Ayarları aç" - :plugin/open-package "Eklentinin içeriğini aç" - :plugin/load-unpacked "Çıkarılmamış eklentiyi yükle" - :plugin/restart "Uygulamayı Yeniden Başlat" - :plugin/unpacked-tips "Eklenti dizinini seçin" - :plugin/contribute "✨ Yeni eklenti yaz ve gönder" - :plugin/up-to-date "Güncel {1}" - :plugin/custom-js-alert "custom.js dosyası bulundu, çalıştırılmasına izin veriliyor mu? (Bu dosyanın içeriğini anlamadıysanız, belirli güvenlik riskleri olduğu için çalıştırmaya izin vermemeniz önerilir.)" - :plugin/security-warning "Eklentiler grafınıza ve yerel dosyalarınıza erişebilir, ağ istekleri yayınlayabilir. - Ayrıca veri bozulmasına veya kaybına neden olabilirler. Graflarınız için uygun erişim kuralları üzerinde çalışıyoruz. - Bu arada, graflarınızı düzenli olarak yedeklediğinizden emin olun ve eklentileri yalnızca okuyabildiğiniz ve - kaynak kodunu anlayabildiğiniz zaman yükleyin." - :plugin/search-plugin "Eklenti ara" - :plugin/open-preferences "Tercihleri aç" - :plugin/open-logseq-dir "Aç" - :plugin/remote-error "Uzak hata: " - :plugin/checking-for-updates "Eklenti güncellemeleri kontrol ediliyor ..." - :plugin/list-of-updates "Eklenti güncellemeleri: " - :plugin/auto-check-for-updates "Güncellemeleri otomatik kontrol et" - :plugin.install-from-file/menu-title "plugins.edn dosyasından yükle" - :plugin.install-from-file/title "Eklentileri plugins.edn dosyasından yükle" - :plugin.install-from-file/notice "Aşağıdaki eklentiler yüklü olan eklentilerinizin yerini alacak:" - :plugin.install-from-file/success "Tüm eklentiler yüklendi!" + :graph.page/show-journals "Günlükleri Göster" + :graph.page/title "Sayfa grafı" + :graph.switch/add-graph-action "Evet, başka bir graf ekle" + :graph.switch/empty-desc "Eşleşen graf yok. Bir tane daha eklemek ister misin?" + :graph.switch/prompt "Geçiş yap" + :graph.switch/select-prompt "Bir graf seçin" + + :graph.validation/config-arweave-gateway-warning "artık desteklenmiyor." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "artık desteklenmiyor. Lütfen '/' kullanın ve hataları bildirin." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "DB grafiklerinde kullanılmaz çünkü yalnızca markdown modu vardır." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Doğrulama {1} geçersiz blok (bloklarını) algıladı. Bu bloklar hatalı olabilir. Geçersiz blokları düzeltmeyi deneyin. Düzeltilip düzeltilmediğini görmek için doğrulamayı tekrar çalıştırın." + :graph.validation/name-reserved-characters-warning "Grafik adı şu ayrılmış karakterleri içeremez:" + :graph.validation/reserved-character-asterisk "yıldız" + :graph.validation/reserved-character-backslash "ters eğik çizgi" + :graph.validation/reserved-character-colon "iki nokta" + :graph.validation/reserved-character-double-quote "çift tırnak" + :graph.validation/reserved-character-forward-slash "eğik çizgi" + :graph.validation/reserved-character-greater-than "büyüktür" + :graph.validation/reserved-character-hash "kare" + :graph.validation/reserved-character-less-than "küçüktür" + :graph.validation/reserved-character-pipe "dikey çizgi veya pipe" + :graph.validation/reserved-character-plus "artı" + :graph.validation/reserved-character-question-mark "soru işareti" + :graph.validation/valid "Grafiğiniz geçerlidir! {1}" + + :header/go-back "Geri" + :header/go-forward "İleri" + :header/highlight-recent-blocks "Son blokları vurgula" + :header/highlight-recent-blocks-days-ago "Son blokları vurgula: {1} gün önce" + :header/more "Daha fazla" + :header/quit-highlight-recent-blocks "Son blok vurgulamadan çık" + :header/toggle-left-sidebar "Sol paneli aç/kapat" + + :help/about "Logseq hakkında" + :help/about-title "Hakkında" + :help/ask-community "Topluluğa sor" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Blok referansı" + :help/blog "Blog" + :help/bug "GitHub'da hata bildir" + :help/changelog "Değişiklik günlüğü" + :help/community-title "Topluluk" + :help/context-menu "Blok kısayol menüsü" + :help/context-menu-action "Madde işaretine sağ tıkla" + :help/development-title "Geliştirme" + :help/docs "Belgeler" + :help/feature "Özellik isteği" + :help/forum-community "Forum topluluğu" + :help/handbook "El Kitabı" + :help/learn-more "Daha fazla bilgi" + :help/markdown-syntax "Markdown sözdizimi" + :help/open-link-in-sidebar "Bağlantıyı kenar çubuğunda aç" + :help/open-link-in-sidebar-action "Referansa Shift ile tıkla" + :help/privacy "Gizlilik ilkesi" + :help/reference-autocomplete "Sayfa referansı otomatik tamamlama" + :help/release-notes "Sürüm notları" + :help/roadmap "Yol haritası" + :help/search "Ara" + :help/slash-autocomplete "Eğik çizgi otomatik tamamlama" + :help/start "Başlarken" + :help/submit-feedback "Geri bildirim gönder" + :help/support-forum "Destek forumu" + :help/terms "Koşullar" + :help/terms-title "Koşullar" + :help/usage-title "Kullanım" + + :help.handbook/chat-on-discord "Discord'da sohbet edin" + :help.handbook/chat-on-discord-desc "Hızlı sorular sorun, diğer kullanıcılarla tanışın ve yeni iş akışları öğrenin." + :help.handbook/copy-topic-link "Konu bağlantısını kopyala" + :help.handbook/current-chapter "Mevcut bölüm" + :help.handbook/help-categories "Yardım kategorileri" + :help.handbook/home "Ana sayfa" + :help.handbook/link-copied "El kitabı bağlantısı kopyalandı!" + :help.handbook/monthly-posts "aylık gönderi" + :help.handbook/next-chapter "Sonraki bölüm" + :help.handbook/popular-topics "Popüler konular" + :help.handbook/prev-chapter "Önceki bölüm" + :help.handbook/resources-from "{1} kaynakları" + :help.handbook/search-placeholder "Ara" + :help.handbook/shortcuts-count "{1} kısayol" + :help.handbook/sync "Senkronizasyon" + :help.handbook/title "El Kitabı" + :help.handbook/topics "Konular" + :help.handbook/users-online "çevrimiçi kullanıcı" + :help.handbook/visit-the-forum "Forumu ziyaret edin" + :help.handbook/visit-the-forum-desc "Geri bildirim verin, özellik isteyin ve derinlemesine sohbetlere katılın." + :help.handbook/writing-mode "Yazma modu (yakında önizleme)" + + :help.shortcuts/desc "Kısayolları ve ipuçlarını göster" + :help.shortcuts/label "Klavye kısayolları" + :help.shortcuts/shortcut-column "Kısayol" + :help.shortcuts/title "Klavye kısayolları" + :help.shortcuts/triggers "Tetikleyiciler" + + :icon/emojis-count "Emoji ({1})" + :icon/icons-count "Simgeler ({1})" + :icon/matched-count "Eşleşen ({1})" + :icon/search-all "Tümünde ara" + :icon/search-emojis "Emojilerde ara" + :icon/search-icons "Simgelerde ara" + :icon/tab-all "Tümü" + :icon/tab-emojis "Emoji" + :icon/tab-icons "Simgeler" + + :import/all-tags "Tüm etiketleri içe aktar" + :import/asset-too-large-warning "Varlık {1} kopyalanmadı çünkü 100 MB sınırını aşıyor." + :import/assets-import-partial "{1}/{2} dosya içe aktarıldı. Ayrıntılar konsolda." + :import/assets-imported "{1} dosya içe aktarıldı." + :import/assets-skipped "{1} dosya atlandı. Ayrıntılar konsolda." + :import/block-icons-cannot-be-imported "Blok simgeleri içe aktarılamaz. {1} bloğunda elle içe aktarın." + :import/cannot-import-block-into-non-block-entity "Blok olmayan varlığa blok içe aktarılamaz." + :import/db-edn-desc "Bir DB grafiğinin EDN dışa aktarımını yeni bir DB grafiğine içe aktar" + :import/db-edn-title "EDN'den DB grafiğine" + :import/debug-transit-desc "Hata ayıklama transit dosyasını yeni bir DB grafiğine içe aktar" + :import/debug-transit-title "Hata Ayıklama Transit" + :import/default-db-graph-behavior "Varsayılan DB grafik davranışı" + :import/empty-graph-name "Grafik adı boş olamaz." + :import/extract-inline-code-snippets "Satır içi kod parçacıklarını alt blok olarak çıkar" + :import/file-finished "İçe aktarma tamamlandı!" + :import/file-to-db-desc "Dosya tabanlı bir Logseq grafik klasörünü yeni bir DB grafiğine içe aktar" + :import/file-to-db-title "Dosyadan DB grafiğine" + :import/graph-name-conflict "Bu adda bir grafik zaten var. Başka bir ad seçin!" + :import/graph-name-placeholder "Grafik adı" + :import/ignored-assets "{1} dosya içe aktarma sırasında atlandı. Ayrıntılar JavaScript konsolunda." + :import/ignored-files "{1} dosya içe aktarma sırasında atlandı. Ayrıntılar JavaScript konsolunda." + :import/ignored-properties "{1} özellik içe aktarma sırasında atlandı" + :import/ignored-properties-fix "Özellik türünü düzeltmek için değeri doğru türe değiştirip yeniden içe aktarın" + :import/invalid-blocks-detected "{1} geçersiz blok tespit edildi. Etkileşim çalışmayabilir. Ayrıntılar JavaScript konsolunda." + :import/invalid-edn-file "Sağlanan EDN dosyası geçersiz. Düzeltip tekrar deneyin." + :import/loading "İçe aktarılıyor" + :import/logseq-config-missing "İçe aktarma hatası: Logseq grafiği 'logseq/config.edn' dosyası içermiyor." + :import/new-graph-name "Yeni grafik adı" + :import/notes "Notları içe aktar" + :import/org-files-imported "{1} Org dosyası Markdown olarak içe aktarıldı. Org desteği daha sonra eklenecek." + :import/page-icons-cannot-be-imported "Sayfa simgeleri içe aktarılamaz. {1} sayfasında elle içe aktarın." + :import/properties-case-insensitive-commas "Özellik adları (büyük/küçük harf duyarsız, virgülle ayrılmış)" + :import/property-classes-placeholder "örn. type" + :import/property-import-manually "Bu özellik elle içe aktarılmalıdır" + :import/property-parent-classes-placeholder "örn. parent" + :import/property-type-mismatch "Özellik değeri {1} türünde, {2} değil" + :import/property-value-tag-parents "Özellik değerlerinden etiket üst öğelerini içe aktar" + :import/property-value-tags "Özellik değerlerinden ek etiketleri içe aktar" + :import/remove-inline-tags "Satır içi etiketleri kaldır" + :import/select-edn-or-json "Bir EDN veya JSON dosyası seçin." + :import/specific-tags "Belirli etiketleri içe aktar" + :import/sqlite-and-assets-desc "db.sqlite ve assets klasörü içeren bir zip dosyasını içe aktar" + :import/sqlite-and-assets-title "SQLite + dosyalar (.zip)" + :import/submitted-edn-invalid "Sağlanan EDN verileri geçersiz! Düzeltip tekrar deneyin." + :import/successful "İçe aktarma başarılı!" + :import/tag-classes-placeholder "Etiket1, Etiket2" + :import/tags-case-insensitive "Etiketler (büyük/küçük harf duyarsız)" + :import/title "İçe Aktar" + :import/unexpected-error "Beklenmeyen hata: {1}" + :import/zip-import-error "Zip'i içe aktarma başarısız oldu: {1}" + :import/zip-missing-db-sqlite "ZIP dosyası db.sqlite içermiyor" + + :journal/add-blocks-to-today-success "Bugün eklenen bloklar" + :journal/page-cant-convert-warning "Bu sayfa günlük sayfası değil." + :journal/parse-date-to-name-error "Günlük adı ayrıştırılamadı" + + :journal.default-query/doing "YAPILIYOR" + :journal.default-query/todo "YAPILACAK" + + :keymap/all "Tümü" + :keymap/already-bound "Kısayol zaten atanmış" + :keymap/also-used-for-action "Ayrıca şunun için kullanılır {1}" + :keymap/also-used-for-action-in-context "Ayrıca şunun için kullanılır {1} Bağlamda {2}" + :keymap/clear "Temizle" + :keymap/clear-keystroke-filter "Tuş vuruşu filtresini temizle" + :keymap/clear-search "Aramayı temizle" + :keymap/custom "Özel" + :keymap/deactivates-chord "Devre dışı bırakır" + :keymap/deactivates-chords "{1} kısayol kombinasyonunu devre dışı bırakır" + :keymap/disabled "Devre dışı" + :keymap/esc-is-reserved "Esc ayrılmıştır" + :keymap/hint-cancel "İptal" + :keymap/hint-close "Kapat" + :keymap/hint-reassign "Yeniden ata" + :keymap/hint-remove "Kaldır" + :keymap/keystroke-filter "Tuş vuruşu filtresi" + :keymap/no-matching-shortcuts "Eşleşen kısayol yok" + :keymap/press-a-shortcut "Bir kısayol tuşuna basın" + :keymap/press-keys-to-filter "Filtrelemek için tuşlara basın" + :keymap/reassign "Yeniden ata" + :keymap/reassign-tooltip "Bu eylemin kısayolunu yeniden ata" + :keymap/reassigned-from "{1} kaynağından yeniden atandı" + :keymap/refresh-all "Tümünü yenile" + :keymap/remove-binding "Bağlamayı kaldır" + :keymap/remove-filter "Filtreyi kaldır" + :keymap/reset "Sıfırla" + :keymap/reset-to-default "Varsayılana sıfırla" + :keymap/search-by-keys "Tuşlara göre ara" + :keymap/search-placeholder "Kısayol ara…" + :keymap/shortcut-added "Kısayol eklendi" + :keymap/shortcut-removed "Kısayol kaldırıldı" + :keymap/toggle-categories-pane "Kategori panelini aç/kapat" + :keymap/undo "Geri al" + :keymap/unset "Atanmamış" + :keymap/used-by-action "Kullanan {1}" + + :library/add-existing-pages "Mevcut sayfaları Kütüphane'ye ekle" + :library/add-pages "Sayfa ekle" + :library/title "Kütüphane" + + :mobile/camera-access-denied "Kamera erişimi reddedildi. Ayarlar > Logseq'te etkinleştirin." + :mobile/microphone-access-denied "Mikrofon erişimi reddedildi. Ayarlar > Logseq'te etkinleştirin." + + :mobile.header/actions "İşlemler" + :mobile.header/create-graph "Grafik oluştur" + :mobile.header/delete-block-confirm-desc "Bu blok silinsin mi?" + :mobile.header/delete-page-confirm-desc "Bu sayfa silinsin mi?" + + :mobile.intent/file-options "Dosya Seçenekleri" + :mobile.intent/open-with-app "Dosyayı favori uygulamanızla açın" + :mobile.intent/select-option-prompt "Gerçekleştirmek istediğiniz işlemi seçin" + :mobile.intent/share "Paylaş" + + :mobile.log/all "Tümü" + :mobile.log/errors-only "Yalnızca hatalar" + :mobile.log/full "Tam" + :mobile.log/new-first "Yeniler önce" + :mobile.log/old-first "Eskiler önce" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Hesap" + :mobile.settings/check-log "Günlük" + :mobile.settings/discord-community "Discord Topluluğu" + :mobile.settings/forum "Forum" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Hata bildir" + :mobile.settings/revision "Revizyon" + :mobile.settings/theme "Tema" + :mobile.settings/version "Sürüm" + + :mobile.share/file-import-error "Dosya içe aktarılamadı" + :mobile.share/media-import-error "Medya içe aktarılamadı" + :mobile.share/unsupported-content-warning "Mevcut paylaşılan içeriğin ayrıştırılması desteklenmiyor. Lütfen aşağıdaki kodları {1} üzerinde bildirin. En kısa sürede inceleyeceğiz." + :mobile.share/unsupported-import-type "{1} dosyasını içe aktarma desteklenmiyor. Bunu {2} üzerinde bildirebilirsiniz. En kısa sürede inceleyeceğiz." + + :mobile.tab/capture "Yakala" + :mobile.tab/go-to "Git" + :mobile.tab/graphs "Grafikler" + + :mobile.toolbar/audio "Ses" + :mobile.toolbar/copy-ref "Ref kopyala" + :mobile.toolbar/copy-url "URL kopyala" + :mobile.toolbar/hide "Gizle" + :mobile.toolbar/indent "Girintile" + :mobile.toolbar/outdent "Girintiyi azalt" + :mobile.toolbar/photo "Fotoğraf" + :mobile.toolbar/redo "Yinele" + :mobile.toolbar/reference "Referans" + :mobile.toolbar/slash "Eğik çizgi" + :mobile.toolbar/tag "Etiket" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Geri al" + :mobile.toolbar/unselect "Seçimi kaldır" + + :nav/all-files "Tüm dosyalar" + :nav/all-journals "Tüm günlükler" + :nav/appearance "Görünüm" + :nav/assets "Dosyalar" + :nav/cannot-go-to-internal-page "Dahili sayfaya gidilemez" + :nav/flashcards "Bilgi kartları" + :nav/graph "Grafik" + :nav/graph-view "Graf görünümü" + :nav/help "Yardım" + :nav/home "Ana sayfa" + :nav/invalid-jump-error "Geçersiz atlama" + :nav/journals "Günlük" + :nav/plugins "Eklentiler" + :nav/search "Ara" + :nav/settings "Ayarlar" + :nav/skip-to-main-content "Ana içeriğe geç" + :nav/tasks "Görevler" + :nav/themes "Temalar" + + :nav.all-pages/label "Tüm sayfalar" + :nav.all-pages/title "Tüm sayfalar" + + :node/built-in-cant-delete-error "Yerleşik öğeler silinemez." + :node/new "Yeni düğüm" + + :notification/clear-all "Tümünü temizle" + :notification/copied "Kopyalandı" + + :onboarding.import/desc "Notlarınız EDN veya Markdown biçimindeyse, Logseq bunlarla çalışabilir." + :onboarding.import/sqlite-desc "SQLite veritabanından içe aktar" + :onboarding.import/title "İçe aktarmak istediğiniz notlarınız var mı?" + + :onboarding.import-option/desc "Bunu uygulama içinde daha sonra da yapabilirsiniz." + :onboarding.import-option/title "Mevcut notları içe aktar" + + :onboarding.setup/desc "Önce Logseq'in düşüncelerinizi, fikirlerinizi ve notlarınızı depolayacağı bir klasör seçmeniz gerekir." + :onboarding.setup/title (fn [] [[:strong "Logseq"] "'e hoş geldiniz!"]) + + :page/add-to-favorites "Sık kullanılanlara ekle" + :page/added-tag-to-node "\"{1}\" etiketi \"{2}\" öğesine eklendi" + :page/backlinks "Geri bağlantılar" + :page/clear "Temizle" + :page/clear-local-storage-desc "Bu, koyu/açık tema tercihi gibi küçük tercihleri siler." + :page/cleared "Temizlendi" + :page/contents "İçindekiler" + :page/convert-to-tag "Etikete dönüştür" + :page/copy-url "Sayfa URL adresini kopyala" + :page/create "Yeni sayfa oluştur" + :page/created-at "Oluşturulma Zamanı" + :page/current-graph-as-sqlite-db "mevcut grafiği SQLite veritabanı olarak" + :page/default-query-error "Varsayılan sorgu hatası:" + :page/delete "Sayfayı sil" + :page/go-back-home "Ana sayfaya dön" + :page/hide-properties "Özellikleri gizle" + :page/local-storage "yerel depolama" + :page/logseq-is-having-a-problem "Logseq'te bir sorun var. Tekrar çalışır duruma getirmek için lütfen aşağıdaki güvenli adımları sırayla deneyin:" + :page/make-private "Özel yap" + :page/make-public "Yayımlamak için herkese açık hale getir" + :page/moved-to-recycle "Düğüm Geri Dönüşüm'e taşındı" + :page/name "Sayfa adı" + :page/no-page-found-to-copy "Kopyalanacak sayfa bulunamadı" + :page/not-found "Sayfa bulunamadı" + :page/not-found-desc "Üzgünüz! Aradığınız sayfa mevcut değil." + :page/not-found-title "Sayfa Bulunamadı" + :page/not-found-warning "Sayfa bulunamadı" + :page/open-all-graphs-desc "{{All graphs}} sayfasına giderek başka bir grafiğe geçebilirsiniz." + :page/open-issue-desc "Bu sorun giderme adımları sorununuzu çözmediyse, lütfen {{open an issue}}." + :page/open-properties "Özellikleri aç" + :page/rebuild "Yeniden oluştur" + :page/relaunch "Yeniden başlat" + :page/relaunch-desc "Uygulamayı kapatıp yeniden açın." + :page/scheduled-and-deadline "Zamanlanmış ve Son Tarih" + :page/search-index "arama dizini" + :page/send-db-for-debugging "Hata ayıklama için help@logseq.com adresine gönderebilirsiniz." + :page/something-went-wrong "Bir sorun oluştu" + :page/step "{1}. Adım" + :page/the-app "uygulama" + :page/try "Deneyin" + :page/unfavorite "Sayfayı sık kullanılanlardan kaldır" + :page/unknown "Bilinmeyen sayfa" + :page/updated-at "Güncellenme Zamanı" + + :page.convert/block-parent-not-page "Blok dönüştürülemez. Üst öğe sayfa değil." + :page.convert/cant-be-block "\"{1}\" sayfası bir bloğa dönüştürülemez." + :page.convert/cant-be-block-has-children "\"{1}\" sayfası, sayfa alt öğelerine sahip olduğundan bir bloğa dönüştürülemez." + :page.convert/cant-be-block-move-first "\"{1}\" sayfası bir bloğa dönüştürülemez, lütfen önce onu başka bir sayfaya taşıyın." + :page.convert/page-to-tag-action "\"{1}\" sayfasını etikete dönüştür" + :page.convert/page-to-tag-built-in "Yerleşik sayfalar etiket olamaz" + :page.convert/page-to-tag-duplicate "\"{1}\" adında bir etiket zaten mevcut." + :page.convert/page-to-tag-namespaced "Ad alanlı sayfalar etiket olamaz" + :page.convert/property-value-to-page "Özellik değeri sayfaya dönüştürülemez." + :page.convert/tag-to-page-action "Etiketi sayfaya dönüştür" + :page.convert/tag-to-page-built-in "Yerleşik etiketler sayfa olamaz" + :page.convert/tag-to-page-confirm-desc "Bir etiketi sayfaya dönüştürmek, etiket özelliklerini ve bu etiketle işaretlenmiş tüm düğümlerden etiketi de kaldırır. Devam etmek istiyor musunuz?" + :page.convert/tag-to-page-duplicate "\"{1}\" adında bir sayfa zaten mevcut." + :page.convert/tag-to-page-has-children "Etiketin alt öğeleri var ve dönüştürülemez" + + :page.delete/batch-confirm-title "Bu sayfaları silmek istediğinizden emin misiniz? Özellikler ve etiketler kalıcı olarak silinecek ve sayfalar Geri Dönüşüm'e taşınacaktır." + :page.delete/confirm-title "Bu sayfayı silmek istediğinizden emin misiniz?" + :page.delete/permanent-confirm-title "Bu sayfayı kalıcı olarak silmek istediğinizden emin misiniz?" + :page.delete/success "Sayfa \"{1}\" başarıyla silindi!" + :page.delete/total "Toplam: {1}" + :page.delete/warning "Bu sayfaların içeriği silindi ancak silinemedi: {1}. Daha fazla ayrıntı için javascript konsoluna bakın." + + :page.validation/cant-set-built-in-tags "Yeni sayfada yerleşik etiketler ayarlanamıyor: {1}" + :page.validation/duplicate "Etiketler için \"{1}\" adlı başka bir sayfa zaten mevcut: {2}." + :page.validation/name-blank "Sayfa adı boş olamaz." + :page.validation/name-no-hash "Sayfa adı # içeremez" + :page.validation/name-no-slash "Sayfa adı / içeremez." + :page.validation/parents-must-be-pages "Sayfa üst öğeleri sayfa olmalıdır." + + :pdf/annotations-page "Açıklamalar sayfası" + :pdf/area-highlight-shortcut "Alan vurgulama ({1})" + :pdf/auto-fit "Otomatik sığdır" + :pdf/auto-open-context-menu "Bağlam menüsünü otomatik aç" :pdf/copy-ref "Referansı kopyala" :pdf/copy-text "Metni kopyala" - :pdf/linked-ref "Bağlantılı referans" - :pdf/toggle-dashed "Alan vurgusu için çizgili stil" - :pdf/hl-block-colored "Vurgulu blok için renkli etiket" - :pdf/auto-open-context-menu "Seçimler için içerik menüsünü otomatik aç" + :pdf/corrupted-file-error "Hata: {1}\nBu .pdf dosyası bozuk mu?\nLütfen harici bir pdf görüntüleyici ile kontrol edin." :pdf/doc-metadata "Belge meta verileri" + :pdf/enter-to-search "Aramak için Enter" + :pdf/find-results "{2} eşleşmeden {1}. (\"{3}\")" + :pdf/generic-error "Hata: {1}\n{2}\nLütfen pdf dosya kaynağını kontrol edin." + :pdf/highlight-mode "Vurgulama modu" + :pdf/highlights "Vurgulamalar" + :pdf/hl-block-colored "Vurgulu blok için renkli etiket" + :pdf/linked-ref "Bağlantılı referans" + :pdf/load-highlights-file-error "Hata: vurgulama dosyası yüklenemedi: \"{1}\". \n{2}" + :pdf/missing-file-error "Hata: {1}\n Doğru yol bu mu?" + :pdf/more-settings "Daha fazla ayar" + :pdf/no-outlines "Ana hat yok" + :pdf/not-found "Bulunamadı." + :pdf/open-in-app-window "Uygulama penceresinde aç" + :pdf/open-in-external-window "Harici pencerede aç" + :pdf/outline "Ana Hat" + :pdf/page-label "Sayfa {1}" + :pdf/password-protected-desc "Bu belge şifre korumalıdır. Lütfen bir şifre girin:" + :pdf/password-required "Şifre gerekli" + :pdf/search "Ara" + :pdf/search-placeholder "ara" + :pdf/toggle-dashed "Alan vurgusu için çizgili stil" + :pdf/viewer "pdf görüntüleyici" + :pdf/zoom-in "Yakınlaştır" + :pdf/zoom-out "Uzaklaştır" - :updater/new-version-install "Yeni bir sürüm indirildi." - :updater/quit-and-install "Yüklemek için yeniden başlatın" + :plugin/all "Tümü" + :plugin/auto-update-check "Güncellemeleri otomatik kontrol et" + :plugin/auto-update-check-feedback "Otomatik güncelleme denetimi: {1}!" + :plugin/check-all-updates "Tüm güncellemeleri denetle" + :plugin/check-update "Güncellemeyi denetle" + :plugin/checked "Kontrol edildi" + :plugin/checking-for-updates "Güncellemeler kontrol ediliyor" + :plugin/contribute "✨ Yeni eklenti yaz ve gönder" + :plugin/custom-js-alert "custom.js dosyası bulundu, çalıştırılmasına izin veriliyor mu? (Bu dosyanın içeriğini anlamadıysanız, belirli güvenlik riskleri olduğu için çalıştırmaya izin vermemeniz önerilir.)" + :plugin/date-added "Eklenme tarihi" + :plugin/delete-alert "[{1}] eklentisini kaldırmak istediğinizden emin misiniz?" + :plugin/disable-for-performance-feedback "{1} eklentisi devre dışı bırakıldı." + :plugin/disable-now "Şimdi devre dışı bırak" + :plugin/disabled "Devre dışı" + :plugin/does-not-support-db "DB grafiklerini desteklemiyor" + :plugin/downloads "İndirmeler" + :plugin/empty "Hiçbir Şey Bulunamadı." + :plugin/enabled "Etkin" + :plugin/existed-package "Mevcut eklenti paketi ({1})." + :plugin/fatal-error "Kritik hata: {1}" + :plugin/found-n-updates "{1} güncelleme bulundu" + :plugin/found-updates "Güncellemeler bulundu" + :plugin/install "Yükle" + :plugin/install-error "Yükleme başarısız oldu: {1}\n{2}" + :plugin/installed "Yüklü" + :plugin/installed-plugin "Yüklü eklenti: {1}" + :plugin/installing "Yükleniyor" + :plugin/invalid-github-repo-url "Geçersiz GitHub depo URL'si" + :plugin/invalid-package "Geçersiz paket" + :plugin/invalid-plugins-edn "Geçersiz plugins.edn" + :plugin/list-of-updates "Güncelleme listesi" + :plugin/load-from-web-url "URL'den yükle" + :plugin/load-plugin-indicator "Eklenti yükleniyor: {1}..." + :plugin/load-unpacked "Çıkarılmamış eklentiyi yükle" + :plugin/loading-indicator "Yükleniyor" + :plugin/malformed-plugins-edn "Hatalı plugins.edn" + :plugin/marketplace "Eklenti mağazası" + :plugin/new-registered "Yeni eklenti kaydedildi" + :plugin/no-settings-schema "Ayar Şeması Yok!" + :plugin/not-installed "Yüklü olmayan" + :plugin/open-logseq-dir "Logseq klasörünü aç" + :plugin/open-package "Eklentinin içeriğini aç" + :plugin/open-preferences "Tercihleri aç" + :plugin/open-settings "Ayarları aç" + :plugin/perf-tip "Bu eklenti {1} yüklenirken çok uzun sürüyor, uygulama başlangıç süresini etkiliyor ve diğer eklentilerin yüklenmesini engelleyebilir." + :plugin/popular "Popüler" + :plugin/proxy-check-success "Başarı! {2}ms cinsinden durum {1}." + :plugin/readme-empty-warning "README içeriği yok" + :plugin/refresh-lists "Listeleri yenile" + :plugin/reload "Yeniden yükle" + :plugin/remote-error "Uzak hata: {1}" + :plugin/report-modal-desc "Herhangi bir eklenti kullanılamıyorsa veya kötü amaçlı kod içerdiğini düşünüyorsanız, lütfen {1} adresine e-posta gönderin. Eklentinin adını ve GitHub deposunun URL'sini belirtin. Logseq ekibi genellikle bir iş günü içinde yanıt verir." + :plugin/report-security "Güvenlik sorunu bildir" + :plugin/restart "Uygulamayı Yeniden Başlat" + :plugin/search-plugin "Eklenti ara" + :plugin/security-warning "Güvenlik uyarısı" + :plugin/setting-not-handled "#İşlenmedi# {1}" + :plugin/settings-schema-error "Ayar şeması Hatası!" + :plugin/stars "Yıldızlar" + :plugin/supports-db "DB desteği" + :plugin/title "Başlık ({1})" + :plugin/uninstall "Kaldır" + :plugin/unpacked "Çıkarılmamış" + :plugin/unpacked-tips "Eklenti dizinini seçin" + :plugin/up-to-date "Günceldir {1}" + :plugin/update "Güncelle" + :plugin/update-all-selected "Seçilenlerin tümünü güncelle" + :plugin/update-all-success "Tüm eklentiler güncellendi" + :plugin/update-available "Güncelleme var" + :plugin/update-plugin "Eklentiyi güncelle: {1} - {2}" + :plugin/updates-downloading "Güncellemeler indiriliyor" + :plugin/updating "Güncelleniyor" - :tips/all-done "Tamamlandı!" + :plugin.install-from-file/menu-title "plugins.edn dosyasından yükle" + :plugin.install-from-file/notice "Aşağıdaki eklentiler yüklü olan eklentilerinizin yerini alacak:" + :plugin.install-from-file/success "Tüm eklentiler yüklendi!" + :plugin.install-from-file/title "Eklentileri plugins.edn dosyasından yükle" + + :plugin.install-from-web-url/effect-label "efekt" + :plugin.install-from-web-url/repo-url-placeholder "GitHub depo URL'si" + :plugin.install-from-web-url/supports-note "URL'ler hem GitHub depoları hem de yerel geliştirme sunucularını destekler. (Örnekler: {1}, {2})" + :plugin.install-from-web-url/theme-label "tema" + + :plugin.package-config/detach-desc "Kaldırmak, eklentiyi yalnızca Logseq'ten ayırır ve kaynak klasörü olduğu gibi bırakır." + :plugin.package-config/parse-error "Eklenti paket yapılandırması ayrıştırılamadı." + :plugin.package-config/remove-error "Bozuk eklenti kaldırılamadı." + :plugin.package-config/remove-external-success "Bozuk eklenti eklenti listesinden kaldırıldı." + :plugin.package-config/remove-installed-success "Bozuk eklenti \"{1}\" kaldırıldı." + + :plugin.proxy/direct "Doğrudan" + :plugin.proxy/system "Sistem" + :plugin.proxy/test-url "URL'yi test et" + :plugin.proxy/testing "Test ediliyor" + + :plugin.settings/edit-settings-json "settings.json dosyasını düzenle" + :plugin.settings/exit-code-mode "Kod modundan çık" + :plugin.settings/title "Eklenti ayarları" + + :plugin.themes/default-desc "Varsayılan Logseq {1} teması." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} temalar" + :plugin.themes/light-and-dark "açık & koyu temalar" + + :profiler/input-fn-placeholder "fonksiyon adını buraya girin" + :profiler/unregister "Kaydı Sil" + + :property/add-choice "Seçenek ekle" + :property/add-choices "Seçenekler ekle" + :property/add-description "Açıklama ekle" + :property/add-new "Özellik ekle" + :property/add-or-change "Özellik ekle veya değiştir" + :property/available-choices "Mevcut seçenekler" + :property/change-tooltip "{1} değiştir" + :property/checkbox-state-mapping "Onay kutusu durum eşleme" + :property/children-count "Çocuklar ({1})" + :property/choices-count "{1} seçimler" + :property/choose-tag "Etiket seç" + :property/choose-tags "Etiketleri seç" + :property/clear-value "Temizle" + :property/configure "Yapılandır" + :property/convert-page-to-property "\"{1}\" sayfasını özelliğe dönüştür" + :property/create-error "Özellik oluşturulamadı." + :property/default-value "Varsayılan değer" + :property/delete-from-node "Düğümden sil" + :property/delete-from-node-confirm "Bu özellik düğümden silinsin mi?" + :property/delete-from-tag "Etiketten sil" + :property/delete-from-tag-confirm "Bu özellik etiketten silinsin mi?" + :property/description-placeholder "Açıklama girin" + :property/drag-to-reorder "Sıralamak için sürükleyin" + :property/existing-values "Mevcut değerler" + :property/go-to-this-property "Özellik sayfasına git" + :property/hidden-properties "Gizli özellikler" + :property/hide-by-default "Varsayılan olarak gizle" + :property/hide-choice-for-tag "Etiket için seçeneği gizle" + :property/hide-empty-value "Boş değerleri gizle" + :property/hide-for-tag "#{1} için gizle" + :property/hide-hidden-choices "Gizli seçenekleri gizle" + :property/map-checked-to "İşaretliyi eşle" + :property/map-unchecked-to "İşaretsizi eşle" + :property/more-settings "Diğer ayarlar" + :property/multiple-values "Birden fazla değer" + :property/multiple-values-confirm "Birden fazla değer etkinleştirilsin mi?" + :property/name "Ad" + :property/name-placeholder "Özellik adı" + :property/nodes-with-property "Özelliği olan düğümler" + :property/overdue "Gecikmiş" + :property/private-built-in-not-usable "Özel yerleşik özellik kullanılamaz" + :property/select-choice "Seçenek seç" + :property/select-property-placeholder "Bir özellik seçin" + :property/select-type-placeholder "Bir özellik türü seçin" + :property/self-reference "Kendi referansı" + :property/set-default-choice "Varsayılan seçeneği ayarla" + :property/set-default-value "Varsayılan değer ayarla" + :property/set-icon "Simge ayarla" + :property/set-placeholder "{1} ayarla" + :property/set-property "Özelliği ayarla" + :property/set-tags "Etiketleri ayarla" + :property/set-value "Değer ayarla" + :property/show-as-checkbox-on-node "Düğümde onay kutusu olarak göster" + :property/show-as-checkbox-on-tagged-nodes "Etiketli düğümlerde onay kutusu olarak göster" + :property/show-hidden-choices "Gizli seçenekleri göster" + :property/skip-choosing-tag "Etiket seçimini atla" + :property/specify-node-tags "Düğüm etiketlerini belirle" + :property/title-placeholder "Başlık" + :property/type "Tür" + :property/type-change-warning "Özellik türünü değiştirmek bazı özellik yapılandırmalarını temizler." + :property/type-checkbox "Onay kutusu" + :property/type-date "Tarih" + :property/type-datetime "Tarih/Saat" + :property/type-locked-help "Tür kilitli" + :property/type-node "Düğüm" + :property/type-number "Sayı" + :property/type-text "Metin" + :property/type-url "URL" + :property/ui-position "UI konumu" + :property/ui-position-block-below "Bloğun altında" + :property/ui-position-block-left "Bloğun solunda" + :property/ui-position-block-right "Bloğun sağında" + :property/ui-position-properties "Özellikler" + :property/unset-property "Özelliği kaldır" + :property/update-success "Güncellendi" + + :property.built-in/alias "Takma ad" + :property.built-in/asset "Dosya" + :property.built-in/asset-align "Dosya hizalaması" + :property.built-in/asset-checksum "Dosya sağlama toplamı" + :property.built-in/asset-external-file-name "Harici dosya adı" + :property.built-in/asset-external-url "Harici URL" + :property.built-in/asset-height "Görsel yüksekliği" + :property.built-in/asset-last-visit-page "Son ziyaret edilen sayfa" + :property.built-in/asset-remote-metadata "Dosya uzak üst verisi" + :property.built-in/asset-resize-metadata "Dosya yeniden boyutlandırma üst verisi" + :property.built-in/asset-size "Dosya Boyutu" + :property.built-in/asset-type "Dosya Türü" + :property.built-in/asset-width "Görsel genişliği" + :property.built-in/background-color "Arka plan rengi" + :property.built-in/built-in "Yerleşik mi?" + :property.built-in/checkbox-display-properties "Onay kutusu olarak görüntülenen özellikler" + :property.built-in/choice-checkbox-state "Seçenek onay kutusu durumu" + :property.built-in/choice-classes "Seçenek sınıfları" + :property.built-in/choice-exclusions "Seçenek istisnaları" + :property.built-in/class-bidirectional-property-title "Çift yönlü özellik başlığı" + :property.built-in/class-enable-bidirectional "Çift yönlü özellikleri etkinleştir" + :property.built-in/class-extends "Genişletir" + :property.built-in/class-hide-from-node "Düğümden Gizle" + :property.built-in/class-properties "Etiket Özellikleri" + :property.built-in/classes "Özellik sınıfları" + :property.built-in/closed-value-property "Kapalı değer özelliği" + :property.built-in/code-lang "Kod Modu" + :property.built-in/collapsed "Düğüm daraltıldı mı?" + :property.built-in/created-at "Düğüm oluşturulma tarihi" + :property.built-in/created-by-ref "Düğümü oluşturan" + :property.built-in/created-from-property "Özellikten oluşturuldu" + :property.built-in/deadline "Son Tarih" + :property.built-in/default-value "Varsayılan değer" + :property.built-in/deleted-at "Silinme tarihi" + :property.built-in/deleted-by-ref "Silen" + :property.built-in/description "Açıklama" + :property.built-in/enable-history "Özellik geçmişini etkinleştir" + :property.built-in/exclude-from-graph-view "Grafik görünümünden hariç mi?" + :property.built-in/fsrs-due "Bitiş" + :property.built-in/fsrs-state "Durum" + :property.built-in/heading "Başlık" + :property.built-in/hide "Bu özelliği veya sayfayı gizle" + :property.built-in/hide-empty-value "Boş değeri gizle" + :property.built-in/history-block "Geçmiş bloğu" + :property.built-in/history-property "Geçmiş özelliği" + :property.built-in/history-ref-value "Geçmiş değeri" + :property.built-in/history-scalar-value "Geçmiş skaler değeri" + :property.built-in/icon "Simge" + :property.built-in/journal-day "Günlük tarihi" + :property.built-in/journal-title-format "Başlık Biçimi" + :property.built-in/link "Düğüm bağlantı hedefi" + :property.built-in/linked-references-excludes "Hariç tutulan referanslar" + :property.built-in/linked-references-includes "Dahil edilen referanslar" + :property.built-in/ls-type "LS türü" + :property.built-in/node-display-type "Düğüm Görüntüleme Türü" + :property.built-in/order "Düğüm sırası" + :property.built-in/order-list-type "Liste türü" + :property.built-in/page "Düğüm sayfası" + :property.built-in/page-tags "Sayfa Etiketleri" + :property.built-in/parent "Üst düğüm" + :property.built-in/priority "Öncelik" + :property.built-in/public "Özellik herkese açık mı?" + :property.built-in/publish-published-url "Yayınlanan URL" + :property.built-in/publishing-public "Yayınlama Herkese Açık mı?" + :property.built-in/query "Sorgu" + :property.built-in/reaction-emoji-id "Tepki emojisi" + :property.built-in/reaction-target "Tepki hedefi" + :property.built-in/recycle-original-order "Geri dönüşüm orijinal sırası" + :property.built-in/recycle-original-page "Geri dönüşüm orijinal sayfası" + :property.built-in/recycle-original-parent "Geri dönüşüm orijinal üst düğümü" + :property.built-in/refs "Düğüm referansları" + :property.built-in/repeat-checked-property "Tekrar Eden İşaretli Özellik" + :property.built-in/repeat-recur-frequency "Tekrar sıklığı" + :property.built-in/repeat-recur-unit "Tekrar birimi" + :property.built-in/repeat-repeated "Düğüm Tekrar Ediyor mu?" + :property.built-in/repeat-temporal-property "Tekrar Eden Zamansal Özellik" + :property.built-in/scalar-default-value "Referans olmayan tür varsayılan değeri" + :property.built-in/scheduled "Zamanlanmış" + :property.built-in/status "Durum" + :property.built-in/sync-large-title-object "Uzak nesne depolamadaki büyük blok başlığına referans" + :property.built-in/table-filters "Görünüm filtreleri" + :property.built-in/table-hidden-columns "Görünüm gizli sütunları" + :property.built-in/table-ordered-columns "Görünüm sıralı sütunları" + :property.built-in/table-pinned-columns "Tablo görünümü sabitlenmiş sütunları" + :property.built-in/table-sized-columns "Görünüm sütun ayarları" + :property.built-in/table-sorting "Görünüm sıralaması" + :property.built-in/tags "Etiketler" + :property.built-in/template-applied-to "Şablonu etiketlere uygula" + :property.built-in/title "Düğüm başlığı" + :property.built-in/type "Özellik türü" + :property.built-in/ui-position "Özellik konumu" + :property.built-in/updated-at "Düğüm güncelleme tarihi" + :property.built-in/used-template "Kullanılan şablon" + :property.built-in/user-avatar "Kullanıcı Avatarı" + :property.built-in/user-email "Kullanıcı E-postası" + :property.built-in/user-name "Kullanıcı Adı" + :property.built-in/value "Özellik değeri" + :property.built-in/view-context "Özellik görünüm bağlamı" + :property.built-in/view-feature-type "Görünüm Özellik Türü" + :property.built-in/view-for "Bu görünüm şuna aittir" + :property.built-in/view-group-by-property "Görünüm gruplama özelliği" + :property.built-in/view-sort-groups-by-property "Görünüm grupları şuna göre sırala" + :property.built-in/view-sort-groups-desc "Görünüm grupları azalan sırala" + :property.built-in/view-type "Görünüm Türü" + + :property.choice/already-exists "Seçenek zaten mevcut." + :property.choice/cant-delete-built-in "Yerleşik seçenek silinemez." + :property.choice/invalid "Bu özellik için geçersiz \"{1}\" seçimi: {2}" + + :property.color/blue "mavi" + :property.color/green "yeşil" + :property.color/purple "mor" + :property.color/red "kırmızı" + :property.color/yellow "sarı" + + :property.priority/high "Yüksek" + :property.priority/low "Düşük" + :property.priority/medium "Orta" + :property.priority/urgent "Acil" + + :property.repeat/date "Tekrar tarihi" + :property.repeat/datetime "Tekrar tarih ve saat" + :property.repeat/every "Her" + :property.repeat/is-label "şu:" + :property.repeat/task "Tekrar görevi" + :property.repeat/when "Ne zaman" + + :property.repeat-recur-unit/day "Gün" + :property.repeat-recur-unit/hour "Saat" + :property.repeat-recur-unit/minute "Dakika" + :property.repeat-recur-unit/month "Ay" + :property.repeat-recur-unit/week "Hafta" + :property.repeat-recur-unit/year "Yıl" + + :property.status/backlog "Backlog" + :property.status/canceled "İptal Edildi" + :property.status/doing "Yapılıyor" + :property.status/done "Tamamlandı" + :property.status/in-review "İncelemede" + :property.status/todo "Yapılacak" + + :property.validation/cant-convert-to-number "\"{1}\" bir sayıya dönüştürülemiyor." + :property.validation/cant-remove-required "Gerekli özellik kaldırılamaz." + :property.validation/cant-set-self-value "Kendi özellik değeri olarak ayarlanamaz." + :property.validation/duplicate "'{1}' özelliği zaten mevcut." + :property.validation/invalid-name "Bu geçersiz bir özellik adıdır. Bir özellik adı sayfa referans karakterleri '#' veya '[[' ile başlayamaz." + :property.validation/invalid-value "\"{1}\" özelliği geçersiz değere sahip: {2}" + :property.validation/many-to-one "Çoklu değer özelliği tekli değere dönüştürülemez." + :property.validation/protected "Bu özellik korumalıdır ve değiştirilemez." + + :property.view-type/gallery "Galeri Görünümü" + :property.view-type/list "Liste Görünümü" + :property.view-type/table "Tablo Görünümü" + + :publish/action "Yayınla" + :publish/dialog-desc "İsteğe bağlı olarak bu sayfayı bir şifre ile koruyun. Herkese açık erişim için boş bırakın." + :publish/dialog-title "Sayfayı yayınla" + :publish/invalid-page-error "Geçersiz sayfa" + :publish/password-optional-placeholder "İsteğe bağlı şifre" + :publish/publish-error "Yayınlama hatası" + :publish/published-to "{1} konumuna yayınlandı" + :publish/publishing "Yayınlanıyor..." + :publish/unpublish "Yayından kaldır" + :publish/unpublish-error "Yayından kaldırma başarısız" + :publish/unpublish-missing-page-id "Yayından kaldır: sayfa ID'si eksik" + :publish/unpublished "Yayından kaldırıldı" + + :query/advanced-results "Gelişmiş sorgu sonuçları" + :query/custom-view-error "Özel görünüm hatası: {1}" + :query/error "Sorgu hatası:" + :query/examples-desc "Daha fazla örnek için {{Queries documentation}} sayfasına bakın." + :query/examples-title "Sorgu örnekleri:" + :query/results-for "{1} için sonuçlar" + + :query.builder/add-filter-or-operator-placeholder "Filtre/işleç ekle" + :query.builder/between-end-label "Bitiş tarihi" + :query.builder/between-journal-label "arasında: {1} ~ {2}" + :query.builder/between-start-label "Başlangıç tarihi" + :query.builder/created-label "Oluşturulma" + :query.builder/filter "Filtre" + :query.builder/filter-full-text-search-label "Tam metin arama" + :query.builder/filter-page-label "Sayfa" + :query.builder/filter-page-reference-label "Sayfa referansı" + :query.builder/filter-sample-label "Örnek" + :query.builder/operator-and-label "ve" + :query.builder/operator-not-label "değil" + :query.builder/replace-with-label "Şununla değiştir:" + :query.builder/search-label "Arama: {1}" + :query.builder/show-built-in-properties "Yerleşik özellikleri göster" + :query.builder/unwrap-operator "Açma" + :query.builder/updated-label "Güncelleme" + :query.builder/wrap-filter-with-label "Bu filtreyi şununla sar:" + + :reference/blocks "Blok referansı" + :reference/copy "Bu referansı kopyala" + :reference/delete "Bu referansı sil" + :reference/page-filter "Sayfa filtresi" + :reference/replace-with-embed "Gömme ile değiştir" + :reference/replace-with-text "Metin ile değiştir" + + :reference.filter/directions "Filtre yönleri" + :reference.filter/excludes "Hariç tutulanlar" + :reference.filter/includes "Dahil edilenler" + :reference.filter/search-placeholder "Bağlantılı sayfalarda ara" + :reference.filter/title "Filtre" + + :search/blank-input "Boş giriş" + :search/full-text-placeholder "Tam metin araması" + :search/index-progress "Dizinleniyor {1}%" + :search/indices-rebuilt-success "Arama dizinleri başarıyla yeniden oluşturuldu!" + :search/no-result "Sonuç yok" + :search/result-count "{1} sonuç" + + :search.find-in-page/input-placeholder "Sayfada bul" + :search.find-in-page/match-case "Büyük/küçük harf eşleştir" + :search.find-in-page/next-result "Sonraki sonuç" + :search.find-in-page/previous-result "Önceki sonuç" :select/default-prompt "Birini seçin" :select/default-select-multiple "Bir veya daha fazla seçin" - :select.graph/prompt "Bir graf seçin" - :select.graph/empty-placeholder-description "Eşleşen graf yok. Bir tane daha eklemek ister misin?" - :select.graph/add-graph "Evet, başka bir graf ekle" + :select/new-option "+ Yeni seçenek: {1}" - :notification/clear-all "Tümünü temizle" + :server/error-notification "[Sunucu] {1}" + :server/mcp-url-copied "MCP URL'si kopyalandı" + :server/start "Başlat" + :server/stop "Durdur" + :server/title "HTTP API sunucusu" + + :server.config/auto-start-label "Otomatik başlat" + :server.config/port-label "Port aralığı" + :server.config/reset "Sıfırla" + :server.config/save-and-apply "Kaydet ve uygula" + :server.config/title "Sunucu yapılandırması" + + :server.status/closed "Kapalı" + :server.status/closing "Kapanıyor" + :server.status/error "Hata" + :server.status/running "Çalışıyor" + :server.status/starting "Başlatılıyor" + :server.status/stopped "Durduruldu" + + :server.token/add-new "Yeni token ekle" + :server.token/name-placeholder "Sunucu adı" + :server.token/regenerate-value "Token değerini yeniden oluştur" + :server.token/title "Yetkilendirme tokenları" + :server.token/update-success "Tokenlar güncellendi" + :server.token/value-placeholder "Değer" + + :settings/account "Hesap" + :settings/advanced "Gelişmiş" + :settings/ai "AI" + :settings/collaboration "İş birliği" + :settings/editor "Editör" + :settings/encryption "Şifreleme" + :settings/features "Özellikler" + :settings/general "Genel" + :settings/keymap "Kısayollar" + :settings/plugins "Eklenti ayarları" + + :settings.account/storage-usage "{1}GB toplam {2}GB depolama alanı ({3})" + :settings.account/synced-graphs "{1} / {2} senkronize edilmiş grafik ({3})" + + :settings.advanced/auto-chmod "Otomatik chmod" + :settings.advanced/auto-chmod-desc "Dosya izinlerini otomatik olarak ayarla" + :settings.advanced/auto-updater "Otomatik güncelleme" + :settings.advanced/developer-mode "Geliştirici modu" + :settings.advanced/developer-mode-desc "Geliştirici modu, katkıda bulunanların ve eklenti geliştiricilerinin Logseq ile entegrasyonlarını daha verimli bir şekilde test etmelerine yardımcı olur." + :settings.advanced/disable-sentry "Kullanım verilerini ve tanılamayı Logseq'e gönderin" + :settings.advanced/disable-sentry-desc "Logseq asla yerel graf veritabanınızı toplamayacak veya verilerinizi satmayacaktır." + :settings.advanced/network-proxy "Ağ ara sunucusu" + + :settings.ai/enable-mcp-server "MCP sunucusunu etkinleştir" + :settings.ai/enable-mcp-server-desc "AI entegrasyonu için MCP sunucusunu etkinleştir" + + :settings.editor/auto-expand-block-refs "Blok referanslarını otomatik genişlet" + :settings.editor/auto-expand-block-refs-tip "Tıklandığında blok referanslarını otomatik genişlet" + :settings.editor/custom-date-format "Tercih edilen tarih biçimi" + :settings.editor/enable-all-pages-public "Yayımlanan tüm sayfaları herkese açık yap" + :settings.editor/enable-shortcut-tooltip "Kısayol araç ipuçlarını etkinleştir" + :settings.editor/enable-tooltip "İpuçlarını etkinleştir" + :settings.editor/preferred-outdenting "Mantıksal girinti" + :settings.editor/preferred-outdenting-tip "Girinti ipucu" + :settings.editor/preferred-outdenting-tip-more "→ Girinti hakkında daha fazla" + :settings.editor/preferred-pasting-file "Dosya yapıştırmayı tercih et" + :settings.editor/preferred-pasting-file-hint "Dosya yapıştırma ipucu" + :settings.editor/show-brackets "Köşeli ayraçları göster" + :settings.editor/show-full-blocks "Blok referansındaki tüm satırları göster" + :settings.editor/spell-checker "Yazım denetleyici" + :settings.editor/wide-mode "Geniş mod" + + :settings.features/enable-flashcards "Bilgi kartlarını etkinleştir" + :settings.features/enable-journals "Günlük" + :settings.features/home-default-page "Varsayılan ana sayfayı ayarla" + :settings.features/home-default-page-update-success "Ana sayfa güncellendi" + :settings.features/journals-enable-success "Günlükler etkinleştirildi" + :settings.features/login-prompt "Yeni özelliklere herkesten önce erişmek için bir Open Collective Sponsoru veya Logseq'in Destekçisi olmanız ve oturum açmanız gerekir." + :settings.features/page-not-found "\"{1}\" sayfası henüz mevcut değil. Lütfen önce o sayfayı oluşturun ve sonra tekrar deneyin." + :settings.features/plugin-system "Eklenti sistemi" + + :settings.general/accent-color "Vurgu rengi" + :settings.general/accent-color-alert "Renk uyarısı" + :settings.general/accent-color-logseq "Logseq klasik rengi" + :settings.general/accent-color-none-desc "Vurgu rengini iptal edin. Bu şu anda beta aşamasındadır ve esas olarak özel temalarla uyumluluk için kullanılır." + :settings.general/changelog "Değişiklik günlüğü" + :settings.general/check-for-updates "Güncellemeleri kontrol et" + :settings.general/current-revision-label "Mevcut revizyon" + :settings.general/current-version "Geçerli sürüm" + :settings.general/custom-configuration "Özel yapılandırma" + :settings.general/custom-global-configuration "Özel genel yapılandırma" + :settings.general/custom-theme "Özel tema" + :settings.general/edit-config-edn "config.edn dosyasını düzenle" + :settings.general/edit-custom-css "custom.css dosyasını düzenle" + :settings.general/edit-export-css "export.css dosyasını düzenle" + :settings.general/edit-global-config-edn "Genel config.edn dosyasını düzenle" + :settings.general/editor-font "Editör yazı tipi" + :settings.general/editor-font-set-global "Genel yazı tipi ailesi olarak ayarla" + :settings.general/export-theme "Temayı dışarı aktar" + :settings.general/language "Dil" + :settings.general/native-titlebar "Yerel başlık çubuğu" + :settings.general/native-titlebar-desc "Sistem yerel başlık çubuğunu kullan" + :settings.general/refresh-required-feedback "Yenileme gerekli" + :settings.general/release-channel "yayın kanalını" + :settings.general/revision "Revizyon: {1}" + :settings.general/theme-dark "Koyu" + :settings.general/theme-light "Açık" + :settings.general/theme-system "Sistem" + + :settings.sync-server/clear-success "Senkronizasyon sunucusu URL'si temizlendi. Resmî Logseq Sync kullanılacak." + :settings.sync-server/reset "Varsayılana sıfırla" + :settings.sync-server/save-success "Senkronizasyon sunucusu URL'si kaydedildi." + :settings.sync-server/url "Senkronizasyon sunucusu URL'si" + :settings.sync-server/url-desc "Self-hosted senkronizasyon için özel bir HTTPS senkronizasyon sunucusu URL'si ayarlayın. Logseq kimlik doğrulama belirteçleriniz bu sunucuya gönderileceğinden yalnızca güvenilir bir URL kullanın. Resmî Logseq Sync'i kullanmak için boş bırakın." + :settings.sync-server/url-invalid-error "URL https:// veya http:// ile başlamalıdır" + + :shell/input-command-title "Komut girin" :shortcut.category/basics "Temel bilgiler" + :shortcut.category/block-command-editing "Blok düzenleme komutuları" + :shortcut.category/block-editing "Genel blok düzenleme" + :shortcut.category/block-selection "Blok seçimi (seçimden çıkmak için Esc tuşuna basın)" :shortcut.category/formatting "Biçimlendirme" :shortcut.category/navigating "Gezinme" - :shortcut.category/block-editing "Genel blok düzenleme" - :shortcut.category/block-command-editing "Blok düzenleme komutuları" - :shortcut.category/block-selection "Blok seçimi (seçimden çıkmak için Esc tuşuna basın)" - :shortcut.category/toggle "Aç/Kapat" :shortcut.category/others "Diğer" :shortcut.category/plugins "Eklentiler" - :keymap/all "Tümü" - :keymap/disabled "Devre dışı" - :keymap/unset "Ayarlanmadı" - :keymap/custom "Özel" - :keymap/keystroke-filter "Tuş filtresi" - :window/minimize "Simge durumuna küçült" - :window/maximize "Ekranı kapla" - :window/restore "Pencere durumuna dön" - :window/close "Kapat" - :window/exit-fullscreen "Tam ekrandan çık" + :shortcut.category/toggle "Aç/Kapat" - :header/toggle-left-sidebar "Sol kenar çubuğunu aç/kapat" - :header/search "Ara" - :header/more "Diğer" - :header/go-back "Geri git" - :header/go-forward "İleri git" - :command.pdf/previous-page "Pdf: Geçerli pdf belgesinin önceki sayfası" - :command.pdf/next-page "Pdf: Geçerli pdf belgesinin sonraki sayfası" - :command.pdf/close "Pdf: Geçerli pdf görüntüleyiciyi kapat" - :command.pdf/find "Pdf: Geçerli pdf belgesinde aranacak metin" - :command.auto-complete/complete "Otomatik tamamlama: Seçili öğeyi seç" - :command.auto-complete/prev "Otomatik tamamlama: Önceki öğeyi seç" - :command.auto-complete/next "Otomatik tamamlama: Sonraki öğeyi seç" - :command.auto-complete/shift-complete "Otomatik tamamlama: Seçili öğeyi kenar çubuğunda aç" - :command.cards/toggle-answers "Kartlar: cevapları ve cümle tamamlamayı göster/gizle" - :command.editor/escape-editing "Düzenlemeden çık" - :command.editor/backspace "Geri tuşu (Backspace) / Geriye doğru sil" - :command.editor/delete "Silme tuşu (Delete) / İleriye doğru sil" - :command.editor/new-block "Yeni blok oluştur" - :command.editor/new-line "Geçerli blokta yeni satır" - :command.editor/follow-link "İmlecin altındaki bağlantıyı takip et" - :command.editor/open-link-in-sidebar "Bağlantıyı kenar çubuğunda aç" - :command.editor/bold "Kalın" - :command.editor/italics "İtalik" - :command.editor/highlight "Vurgulu" - :command.editor/strike-through "Üstü çizili" - :command.editor/clear-block "Tüm blok içeriğini sil" - :command.editor/kill-line-before "İmleç konumundan önceki satırı sil" - :command.editor/copy-embed "Geçerli bloğu işaret eden bir blok eklemesi kopyala" - :command.editor/kill-line-after "İmleç konumundan sonraki satırı sil" - :command.editor/beginning-of-block "İmleci bir bloğun başına taşı" - :command.editor/end-of-block "İmleci bir bloğun sonuna taşı" - :command.editor/forward-word "İmleci bir kelime ileri götür" - :command.editor/backward-word "İmleci bir kelime geri götür" - :command.editor/forward-kill-word "İleriye doğru bir kelimeyi sil" - :command.editor/backward-kill-word "Geriye doğru bir kelimeyi sil" - :command.editor/paste-text-in-one-block-at-point "İmleç konumunda metin olarak yapıştırın" - :command.editor/insert-youtube-timestamp "Youtube zaman damgası ekle" - :command.editor/cycle-todo "TODO durumunu değiştir" - :command.editor/up "İmleci yukarı taşı / Yukarıyı seç" - :command.editor/down "İmleci aşağı taşı / Aşağı seç" - :command.editor/left "İmleci sola hareket ettir / Seçili bloğu aç ve başına git" - :command.editor/right "İmleci sağa hareket ettir / Seçili bloğu aç ve sonuna git" - :command.editor/select-up "Yukarıdaki içeriği seçin" - :command.editor/select-down "Aşağıdaki içeriği seçin" - :command.editor/move-block-up "Bloğu yukarı taşı" - :command.editor/move-block-down "Bloğu aşağı taşı" - :command.editor/open-edit "Seçili bloğu düzenle" - :command.editor/select-block-up "Yukarıdaki bloğu seçin" - :command.editor/select-block-down "Aşağıdaki bloğu seçin" - :command.editor/delete-selection "Seçili blokları sil" - :command.editor/expand-block-children "Genişlet" - :command.editor/collapse-block-children "Daralt" - :command.editor/toggle-block-children "Genişlet veya daralt" - :command.editor/indent "Bloğu girintile" - :command.editor/outdent "Blok girintisini azalt" - :command.editor/copy "Kopyala (seçimi veya blok referansını kopyalar)" - :command.editor/copy-text "Seçimleri metin olarak kopyala" - :command.editor/cut "Kes" - :command.editor/undo "Geri al" - :command.editor/redo "Yinele" - :command.editor/insert-link "HTML Bağlantısı" - :command.editor/select-all-blocks "Tüm blokları seç" - :command.editor/zoom-in "Düzenlenen bloğu yakınlaştır / Aksi takdirde ileri git" - :command.editor/zoom-out "Düzenlenen bloğu uzaklaştır / Aksi takdirde geri git" - :command.editor/toggle-number-list "Numaralı liste olarak değiştir" - :command.ui/toggle-brackets "Köşeli ayraçların görüntülenip görüntülenmeyeceğini değiştir" - :command.go/electron-find-in-page "Sayfada bul" - :command.go/electron-jump-to-the-next "Aramanız için bir sonraki eşleşmeye atlayın" - :command.go/electron-jump-to-the-previous "Aramanız için bir önceki eşleşmeye atlayın" - :command.go/search "Sayfalarda ve bloklarda ara" - :command.go/search-in-page "Sayfa içindeki blokları ara" - :command.command-palette/toggle "Komutları ara" - :command.go/journals "Günlüğe git" - :command.go/backward "Geriye git" - :command.go/forward "İleriye git" - :command.search/re-index "Arama dizinini yeniden oluştur" - :command.sidebar/open-today-page "Sağ kenar çubuğunda bugünün sayfasını açın" - :command.sidebar/close-top "Sağ kenar çubuğunun en üst öğesini kapatır" - :command.sidebar/clear "Sağ kenar çubuğundaki herşeyi temizle" - :command.misc/copy "Kopyala" - :command.graph/export-as-html "Herkese açık graf sayfalarını html olarak dışarı aktar" - :command.graph/open "Açılacak grafı seçin" - :command.graph/remove "Bir grafı kaldır" - :command.graph/add "Graf ekle" - :command.command/run "Git komutunu çalıştır" - :command.go/home "Ana sayfaya git" - :command.go/all-graphs "Bütün graflara git" - :command.go/all-pages "Bütün sayfalara git" - :command.go/graph-view "Graf görünümüne git" - :command.go/keyboard-shortcuts "Klavye kısayollarına git" - :command.go/tomorrow "Yarının günlüğüne git" - :command.go/next-journal "Sonraki günlüğe git" - :command.go/prev-journal "Önceki günlüğe git" - :command.go/flashcards "Bilgi kartlarına git" - :command.ui/toggle-document-mode "Belge modunu aç/kapat" - :command.ui/toggle-settings "Ayarları aç/kapat" - :command.ui/toggle-right-sidebar "Sağ kenar çubuğunu aç/kapat" - :command.ui/toggle-left-sidebar "Sol kenar çubuğunu aç/kapat" - :command.ui/toggle-help "Yardımı aç/kapat" - :command.ui/toggle-theme "Koyu ve açık tema arasında geçiş yap" - :command.ui/toggle-contents "Kenar çubuğundaki içeriği aç/kapat" - :command.command/toggle-favorite "Sık kullanılanlara ekle/çıkar" - :command.editor/copy-page-url "Sayfa url'sini kopyala" - :command.ui/toggle-wide-mode "Geniş modu aç/kapat" - :command.ui/select-theme-color "Kullanılabilir tema renklerini seçin" - :command.ui/goto-plugins "Eklentiler panosuna git" - :command.ui/install-plugins-from-file "Eklentileri plugins.edn dosyasından yükleyin" - :command.editor/toggle-open-blocks "Açık blokları kapat/aç (tüm blokları daralt veya genişlet)" - :command.ui/clear-all-notifications "Tüm bildirimleri temizle" - :command.editor/select-parent "Üst bloğu seçin" - :command.dev/show-block-data "(Dev) Blok verilerini göster" - :command.dev/show-block-ast "(Dev) Blok AST'sini göster" - :command.dev/show-page-data "(Dev) Sayfa verilerini göster" - :command.window/close "Pencereyi kapat"} + :sidebar.left/favorites "Sık kullanılanlar" + :sidebar.left/navigations "Gezinme" + :sidebar.left/recent-pages "En son" + + :sidebar.right/close "Paneli kapat" + :sidebar.right/close-all "Tüm panelleri kapat" + :sidebar.right/close-others "Diğer panelleri kapat" + :sidebar.right/collapse "Paneli daralt" + :sidebar.right/collapse-all "Tüm panelleri daralt" + :sidebar.right/collapse-others "Diğer panelleri daralt" + :sidebar.right/expand "Paneli genişlet" + :sidebar.right/expand-all "Tüm panelleri genişlet" + :sidebar.right/more "Daha fazla" + :sidebar.right/open "Kenar çubuğunda aç" + :sidebar.right/open-as-page "Sayfa olarak aç" + :sidebar.right/resize-handle "Sağ kenar çubuğu yeniden boyutlandırma işleyicisi" + :sidebar.right/toggle "Sağ paneli aç/kapat" + + :storage/invalid-data-writing "Geçersiz veri yazımı." + :storage/sqlitedb-error "SQLiteDB hatası: {1}" + :storage/sqlitedb-import-error "SQLiteDB içe aktarma hatası: {1}" + :storage/sqlitedb-save-error "SQLiteDB kaydetme hatası: {1}" + + :storage.recycle/block-deleted-at "Blok silindi {1}" + :storage.recycle/empty "Geri Dönüşüm boş." + :storage.recycle/page-deleted-at "Sayfa silindi {1}" + :storage.recycle/readonly "Çöp kutusu (salt okunur)" + :storage.recycle/restore "Geri yükle" + :storage.recycle/retention-desc "Silinen sayfalar ve bloklar, geri yüklenene veya 30 gün sonra otomatik olarak temizlenene kadar burada kalır." + :storage.recycle/title "Geri Dönüşüm" + + :sync/assets-downloading-count "Varlıklar indiriliyor ({1})" + :sync/assets-uploading-count "Varlıklar yükleniyor ({1})" + :sync/creating-remote-graph "Uzak grafik oluşturuluyor..." + :sync/downloading "İndiriliyor..." + :sync/downloading-graph "{1} indiriliyor ..." + :sync/graph-count-exceed-limit "Grafik sayısı sınırı aşıldı" + :sync/invitation-sent "Davet gönderildi" + :sync/last-synced-time-label "Son senkronizasyon zamanı: {1}" + :sync/more-debug-info "Daha fazla hata ayıklama bilgisi" + :sync/offline "Çevrimdışı" + :sync/online "Çevrimiçi" + :sync/pending-local-changes "beklemede olan yerel değişiklikler" + :sync/pending-server-changes "beklemede olan sunucu değişiklikleri" + :sync/something-wrong "Senkronizasyon hatası" + :sync/start-sync "Senkronizasyonu başlat" + :sync/storage-exceed-limit "Depolama sınırı aşıldı" + :sync/uploading "Yükleniyor..." + :sync/user-doesnt-exist-yet "Kullanıcı henüz mevcut değil" + + :theme/logseq-default "Varsayılan Logseq teması" + :theme/switch-to "{1} temasına geç" + + :ui/all-done "Tümü tamamlandı" + :ui/apply "Uygula" + :ui/cancel "İptal" + :ui/close "Kapat" + :ui/configure "Yapılandır" + :ui/confirm "Onayla" + :ui/copy "Kopyala" + :ui/copy-all "Tümünü kopyala" + :ui/copy-to-clipboard "Panoya kopyala" + :ui/create "Oluştur" + :ui/date-natural-language-placeholder "ör. Gelecek hafta" + :ui/delete "Sil" + :ui/deleted "Silindi" + :ui/dont-remind-me-again "Bir daha hatırlatma" + :ui/empty "Boş" + :ui/error "Hata" + :ui/error-boundary-error "Arayüz tarafından yakalanan hata!\n {1}" + :ui/export "Dışa Aktar" + :ui/false "Yanlış" + :ui/fix "Düzelt!" + :ui/frequently-used "Sık kullanılan" + :ui/from "Başlangıç: " + :ui/host "Ana bilgisayar" + :ui/image "görsel" + :ui/label "Etiket" + :ui/link "Bağlantı" + :ui/load-more "Daha fazla yükle" + :ui/loading "Yükleniyor" + :ui/login "Giriş yap" + :ui/logout "Çıkış yap" + :ui/off "Kapalı" + :ui/on "Açık" + :ui/open "Aç" + :ui/open-named "{1} aç" + :ui/port "Port" + :ui/refresh "Yenile" + :ui/relaunch-confirm "Bu değişiklik için uygulamanın yeniden başlatılması gerekiyor. Şimdi yeniden başlatılsın mı?" + :ui/remove-background "Arka planı kaldır" + :ui/reset "Sıfırla" + :ui/run "Çalıştır" + :ui/save "Kaydet" + :ui/show-less "Daha az göster" + :ui/show-more "Daha fazla göster" + :ui/skip "Atla" + :ui/submit "Gönder" + :ui/to "Bitiş: " + :ui/toggle-theme "Temayı değiştir" + :ui/true "Doğru" + :ui/type "Tür" + :ui/untitled "Başlıksız" + :ui/use-current-time "Geçerli saati kullan" + :ui/yes "Evet" + + :updater/checking-for-updates "Güncellemeler denetleniyor" + :updater/downloading-progress "Güncelleme indiriliyor ({1}%)" + :updater/quit-and-install "Yeniden başlat ve yükle" + :updater/up-to-date "Uygulama güncellendi 🎉" + :updater/update-available "Güncelleme mevcut" + :updater/update-error "⚠️ Ne yazık ki bir sorun oluştu!\nLütfen {1} kontrol edin." + :updater/update-ready-to-install "Güncelleme kuruluma hazır" + + :view/add-new-view "Görünüm ekle" + :view/all "Tümü" + :view/export-edn "EDN dışa aktar" + :view/linked-references "Bağlantılı referanslar" + :view/new "Yeni" + :view/new-property "Yeni özellik" + :view/new-view "Yeni görünüm" + :view/rename "Yeniden adlandır" + :view/results "Sonuçlar:" + :view/unlinked-references "Bağlantısız referanslar" + + :view.filter/custom-date "Özel tarih" + :view.filter/empty "Boş" + :view.filter/filter "Filtre" + :view.filter/from "Başlangıç" + :view.filter/is-empty "Boş" + :view.filter/is-not-empty "Boş değil" + :view.filter/match "Eşleşme" + :view.filter/match-all-filters "Tüm filtrelere uy" + :view.filter/match-any-filter "Herhangi bir filtreye uy" + :view.filter/operator-after "Sonra" + :view.filter/operator-before "Önce" + :view.filter/operator-between "Arasında" + :view.filter/operator-date-after "Tarihten sonra" + :view.filter/operator-date-before "Tarihten önce" + :view.filter/operator-is "Eşit" + :view.filter/operator-is-not "Eşit değil" + :view.filter/operator-text-contains "Metin içerir" + :view.filter/operator-text-not-contains "Metin içermez" + :view.filter/or "Veya" + :view.filter/relative-1-day-ago "1 gün önce" + :view.filter/relative-1-month-ago "1 ay önce" + :view.filter/relative-1-week-ago "1 hafta önce" + :view.filter/relative-1-year-ago "1 yıl önce" + :view.filter/relative-3-days-ago "3 gün önce" + :view.filter/relative-3-months-ago "3 ay önce" + :view.filter/to "Bitiş" + :view.filter/type-to-search "Aramak için yazın" + + :view.table/ascending "Artan" + :view.table/columns-visibility "Sütun görünürlüğü" + :view.table/default-title "{1} düğüm" + :view.table/delete-sort "Sıralamayı sil" + :view.table/descending "Azalan" + :view.table/drag-to-reorder "Sıralamak için sürükleyin" + :view.table/group-by "Grupla" + :view.table/group-journal-date "Günlük tarihi" + :view.table/group-page-created-date "Sayfa oluşturulma tarihi" + :view.table/group-page-name "Sayfa adı" + :view.table/group-page-updated-date "Sayfa güncellenme tarihi" + :view.table/live-query-title "Canlı sorgu ({1})" + :view.table/name-column "Ad" + :view.table/no-group-value "{1} yok" + :view.table/page "Sayfa" + :view.table/pages "Sayfalar" + :view.table/pin "Sabitle" + :view.table/row-number "Satır numarası" + :view.table/select-all "Tümünü seç" + :view.table/select-column "Sütun seç" + :view.table/select-order "Sıralama seç" + :view.table/select-row "Satır seç" + :view.table/selected-count "Seçildi: {1}" + :view.table/sort-ascending "Artan" + :view.table/sort-descending "Azalan" + :view.table/sort-groups-by "Grupları sırala" + :view.table/sort-groups-order "Grup sıralaması" + :view.table/total-refs-count "Toplam referans sayısı" + :view.table/unpin "Sabitlemeyi kaldır" + + :window/close "Pencereyi kapat" + :window/exit-fullscreen "Tam ekrandan çık" + :window/maximize "Büyüt" + :window/minimize "Küçült" + :window/restore "Geri yükle" + + :youtube/embed-first-reminder-mobile "Lütfen önce bir YouTube videosu gömün, ardından bu simgeyi kullanın.\nHatırlatma: Mobil cihazda ham YouTube URL'sini gömülü video olarak yapıştırabilirsiniz." + :youtube/player-not-ready "YouTube oynatıcısı henüz hazır değildir." + :youtube/timestamps-not-available-mobile "YouTube zaman damgaları henüz mobil cihazlarda kullanılamıyor." + + :zotero/attachments "Ekler" + :zotero/imported-file-warning "Bu, içe aktarılmış bir Zotero dosyasıdır, dosyayı Logseq'te açmak için Zotero veri dizini ayarlayın." + :zotero/linked-file-warning "Bu, bağlantılı bir Zotero dosyasıdır, dosyayı Logseq'te açmak için Zotero bağlantılı ek temel dizini ayarlayın." + :zotero/notes "Notlar" +} diff --git a/src/resources/dicts/uk.edn b/src/resources/dicts/uk.edn index 265786609a..fcd38e63b7 100644 --- a/src/resources/dicts/uk.edn +++ b/src/resources/dicts/uk.edn @@ -1,339 +1,1861 @@ -{:accessibility/skip-to-main-content "Перейти до головної" - :help/start "Починаємо" - :help/about "Про Logseq" - :help/roadmap "План розробки" - :help/bug "Повідомлення про помилку" - :help/feature "Запит функції" - :help/changelog "Список змін" - :help/blog "Блог Logseq" - :help/docs "Документація" - :help/privacy "Політика приватності" - :help/terms "Умови" - :help/forum-community "Форумна спільнота" - :help/awesome-logseq "Прекрасний Logseq" - :help/shortcuts "Гарячі кнопки" - :help/shortcuts-triggers "Тригер" - :help/shortcut "Ярлик" - :help/slash-autocomplete "Автозаповнення слешу" - :help/reference-autocomplete "Автозаповнення посилання на сторінку" - :help/block-reference "Посилання на блок" - :help/open-link-in-sidebar "Відкрити посилання у бічній панелі" - :search-item/page "Сторінка" - :help/context-menu "Контекстне меню блоку" - :help/markdown-syntax "Синтаксис Markdown" - :bold "Жирний" - :italics "Курсив" - :highlight "Виділення" - :strikethrough "Закреслення" - :code "Код" - :untitled "Без назви" - :right-side-bar/help "Допомога" - :right-side-bar/switch-theme "Режим теми" - :right-side-bar/contents "Зміст" - :right-side-bar/page-graph "Графік сторінки" - :right-side-bar/block-ref "Посилання на блоки" - :right-side-bar/graph-view "Вигляд графіка" - :right-side-bar/flashcards "Флеш-картки" - :right-side-bar/show-journals "Показати журнали" - :right-side-bar/separator "Обробник зміни розміру правої бічної панелі" - :left-side-bar/journals "Журнали" - :left-side-bar/nav-favorites "Обране" - :left-side-bar/nav-recent-pages "Останні" - :page/something-went-wrong "Щось не так" - :page/logseq-is-having-a-problem "У Logseq виникла проблема. Щоб спробувати повернути його до робочого стану, виконайте такі безпечні кроки по порядку:" - :page/step "Крок {1}" - :page/try "Спробувати" - :page/make-public "Зробіти загальнодоступним для публікації" - :page/make-private "Зробити приватним" - :page/delete "Видалити сторінку" - :page/add-to-favorites "Додати до обраного" - :page/unfavorite "Вилучити сторінку з обраного" - :block/name "Назва сторінки" - :page/copy-page-url "Скопіювати URL сторінки" - :file/name "Назва файлу" - :file/last-modified-at "Останнє модифіковано у " - :file/no-data "Немає даних" - :file/format-not-supported "Формат .{1} не підтримується." - :page/created-at "Створенно у" - :page/updated-at "Оновлено у" - :page/backlinks "Зворотні посилання" - :linked-references/filter-search "Пошук на пов’язаних сторінках" - :editor/block-search "Пошук блоку" - :text/image "зображення" - :asset/show-in-folder "Показати зображення у папці" - :asset/open-in-browser "Відкрити зображення у браузері" - :asset/delete "Видалити зображення" +{ + :account/authentication "Автентифікація" + :account/benefits-desc "З обліковим записом Logseq ви можете отримати доступ до хмарних сервісів, таких як Logseq Sync, та функцій альфа/бета-версій." + :account/billing "Оплата" + :account/billing-expired-on-label "Термін дії плану Pro закінчився: {1}" + :account/billing-expires-on-label "Термін дії плану Pro закінчується: {1}" + :account/billing-next-date-label "Наступна дата оплати: {1}" + :account/core-features "Доступ до основних функцій Logseq" + :account/current-plan "Поточний план" + :account/delete-account "Видалити обліковий запис" + :account/discover-sync-desc "Відкрийте можливості {1}" + :account/early-access-alpha-beta "Ранній доступ до функцій альфа/бета-версій" + :account/first-name "Ім'я" + :account/free-plan-sync-limit "1 синхронізований граф (до 50 МБ, лише нотатки)" + :account/last-name "Прізвище" + :account/manage-plan "Керувати планом" + :account/month "місяць" + :account/no-asset-syncing "Без синхронізації файлів" + :account/open-invoices "Відкрити рахунки" + :account/plan-free "Безкоштовний" + :account/plan-free-summary "Почніть з базової синхронізації" + :account/plan-pro "Pro" + :account/plan-pro-summary "Розблокуйте розширену синхронізацію та більше" + :account/pro-plan-sync-limit "10 синхронізованих графів (до 5 ГБ кожен)" + :account/profile "Профіль" + :account/refresh-token-warning "Оновлення токена: исключительный статус" + :account/reset-password "Скинути пароль" + :account/sign-up "Зареєструватися" + :account/sync-assets-limit "Синхронізація файлів до 100 МБ на файл" + :account/synced-status "Синхронізовано" + :account/unlimited-unsynced-graphs "Необмежена кількість несинхронізованих графів" + :account/upcoming-cloud-features "Майбутні хмарні функції, включаючи Logseq Publish" + :account/upgrade-plan "Покращити план" + :account/username "Ім'я користувача" + + :asset/acceptable-file-extensions "Допустимі розширення файлів" + :asset/add-assets "Додати ресурси" + :asset/add-directory "Додати каталог" + :asset/alias-already-exists "Псевдонім \"{1}\" вже існує!" + :asset/alias-directories "Каталоги з псевдонімами" + :asset/alias-directory-path-label "Шлях до каталогу:" + :asset/alias-name-dialog-title "Який псевдонім для цього обраного каталогу?" + :asset/alias-name-label "Псевдонім:" + :asset/alias-name-placeholder "напр. Книги" + :asset/align "Выравнивание" + :asset/align-center "По центру" + :asset/align-left "По левому краю" + :asset/align-right "По правому краю" + :asset/already-exists "Об’єкт уже існує, назва: {1}, посилання на вузол: [[{2}]]" + :asset/cannot-embed-parent-as-own-property "Неможливо встроить родителя как собственное властивість" + :asset/confirm-delete-image "Ви впевнені, що хочете видалити це зображення?" :asset/copy "Копіювати зображення" + :asset/copy-image-unsupported-extension "Копіювання зображення не підтримується для файлів {1}" + :asset/create-local-copy-warning "Створення локального ресурсу із зовнішнього. Анотації PDF потребують локального ресурсу для коректної роботи." + :asset/create-title "Створити ресурс" + :asset/delete "Видалити зображення" + :asset/downloading "Завантаження" + :asset/drop-hint "Перетягніть файли сюди або натисніть для вибору" + :asset/edit-title "Редагувати ресурс" + :asset/external-url-label "Зовнішнє URL ресурсу:" + :asset/file-extension-placeholder "напр. mp3" :asset/maximize "Розгорнути зображення" - :asset/confirm-delete "Ви впевнені, що хочете видалити {1}?" + :asset/open-in-browser "Відкрити зображення у браузері" :asset/physical-delete "Також видаліть файл (зверніть увагу, що його не можна відновити)" - :color/gray "Сірий" - :color/red "Червоний" - :color/yellow "Жовтий" - :color/green "Зелений" + :asset/ref-block "Блок-ссылка" + :asset/select-file "Обрати файл ресурсу" + :asset/select-from-disk "Обрати з диска" + :asset/selected-directories "Обрані каталоги:" + :asset/show-file-in-folder "Показати файл у папці" + :asset/size-too-large "Ресурс слишком большой" + :asset/syncing "Синхронізація" + :asset/title-label "Назва ресурсу:" + :asset/transfer-placeholder "{1} файлів..." + :asset/uploading "Надсилання" + + :block/click-to-fix-query "Натисніть, щоб виправити запит: {1}" + :block/copy-ref "Копіювати посилання блоку" + :block/copy-url "Копіювати URL блоку" + :block/created-label "Створено: {1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' застарів. Використовуйте команду '/Math block' натомість." + :block/deprecated-query-syntax "#+BEGIN_QUERY застарів. Використовуйте команду '/Advanced Query' натомість." + :block/deprecated-quote "#+BEGIN_QUOTE застарів. Використовуйте команду '/Quote' натомість." + :block/empty-url "Порожнє URL" + :block/excalidraw-no-longer-supported "Excalidraw більше не підтримується за замовчуванням, ми плануємо підтримати його через плагіни." + :block/extraction-error "Помилка извлечения блока" + :block/hide-query "Сховати запит" + :block/invalid-hiccup "Некоректний hiccup" + :block/invalid-link "Некоректне посилання" + :block/invalid-url "Некоректне URL" + :block/large-block-warning "Великий блок не буде доступний для редагування чи пошуку, щоб не уповільнювати застосунок. Будь ласка, використовуйте інший редактор для цього блоку." + :block/last-edited-label "Останнє редагування: {1}" + :block/not-found-warning "Блок не знайден" + :block/open-block-references "Відкрити посилання на блок" + :block/practice "Практика" + :block/practice-cards "Практикувати картки" + :block/ref-nesting-too-deep "Занадто глибока вкладеність посилань на блок" + :block/remove-tag "Видалити тег" + :block/remove-this-tag "Видалити цей тег" + :block/render-error "Помилка відображення блоку:" + :block/set-query "Встановити запит" + :block/set-query-label "Встановити запит:" + :block/sort-order "Порядок сортування" + :block/status-history "Історія статусів" + :block/untitled-query "Запит без назви" + + :block.macro/embed-deprecated "{{embed}} застарівший. Натомість використовуйте команду '/Node embed'." + :block.macro/namespace-deprecated "{{namespace}} застарівший. Натомість використовуйте функцію {1}." + :block.macro/query-deprecated "{{query}} застарівший. Натомість використовуйте команду '/Query'." + :block.macro/unsupported-name "Непідтримувана назва макроса: {1}" + + :block.reaction/emoji-required-warning "Требуется эмодзи" + :block.reaction/unsupported-emoji-warning "Неподдерживаемый эмодзи реакции" + + :bug-report/desc "Сообщить об помилці" + :bug-report/title "Сообщить об помилці" + + :bug-report.clipboard/action-desc "Перевірити буфер обмена" + :bug-report.clipboard/action-title "Инспектор буфера обмена" + :bug-report.clipboard/desc "Если у вас проблемы с копированием и вставкой, використуйте инспектор буфера обмена" + :bug-report.clipboard/title "Буфер обмена" + + :bug-report.inspector/back "Назад" + :bug-report.inspector/clipboard-desc "Содержимое буфера обмена" + :bug-report.inspector/copied "Скопійовано в буфер обмена" + :bug-report.inspector/copy "Копіювати" + :bug-report.inspector/copy-desc "Скопіювати диагностический отчёт" + :bug-report.inspector/create-issue "Створити issue" + :bug-report.inspector/create-issue-desc "Тепер ви можете повідомити результат, вставлений до буфера обміну. Будь ласка, вставте результат у розділ 'Additional Context' і вкажіть, звідки ви скопіювали початковий вміст. Дякуємо!" + :bug-report.inspector/desc "Натисніть {1} для перевірки даних буфера обміну\nабо натисніть тут для вставки, якщо ви використовуєте мобільну версію" + :bug-report.inspector/placeholder "Вставьте содержимое сюда" + :bug-report.inspector/tip "Подсказка: використуйте Ctrl+V для вставки" + :bug-report.inspector/title "Инспектор буфера обмена" + + :bug-report.issue/action-desc "Просмотреть известные проблемы" + :bug-report.issue/action-title "Проблемы на GitHub" + :bug-report.issue/desc "Проверьте, не была ли ваша проблема уже описана" + :bug-report.issue/report-link "Повідомити про проблему" + :bug-report.issue/title "Известные проблемы" + + :class/add-property "Додати властивість тега" + :class/tag-properties-desc "Властивості тега успадковуються всіма вузлами, що використовують цей тег. Наприклад, кожен вузол #Task успадковує 'Status' і 'Priority'." + :class/tagged-nodes "Позначені вузли" + + :class.built-in/asset "Ресурс" + :class.built-in/card "Картка" + :class.built-in/cards "Картки" + :class.built-in/code-block "Код" + :class.built-in/journal "Журнал" + :class.built-in/math-block "Математика" + :class.built-in/page "Сторінка" + :class.built-in/pdf-annotation "Анотація PDF" + :class.built-in/property "Властивість" + :class.built-in/query "Запит" + :class.built-in/quote-block "Цитата" + :class.built-in/root "Кореневий тег" + :class.built-in/tag "Тег" + :class.built-in/task "Завдання" + :class.built-in/template "Шаблон" + :class.built-in/whiteboard "Дошка" + + :class.validation/built-in-extends-change "Наследование вбудованых элементов нельзя изменить." + :class.validation/cant-add-tag-on-built-in "Не вдається додати тег до вбудованого \"{1}\"." + :class.validation/cant-remove-private-tags "Неможливо видалити приватні теги: {1}." + :class.validation/cant-remove-tag-built-in "Не вдається видалити тег із вбудованим #{1}." + :class.validation/cant-remove-tag-on-built-in "Не вдається видалити тег на вбудованому \"{1}\"." + :class.validation/cant-set-tag-built-in "Не вдається встановити тег із вбудованим #{1}." + :class.validation/duplicate "Тег '{1}' уже существует." + :class.validation/extends-cycle "Обнаружен цикл в наследовании." + :class.validation/invalid-extends-type "Недійсный тип наследования." + :class.validation/parents-must-be-tags "Родители тегов должны быть тегами." + :class.validation/tag-with-non-tag "Неможливо встановити тег із вбудованою сторінкою, яка не є тегом \"{1}\"." + + :cmdk.action/apply-theme "Застосувати тему" + :cmdk.action/copy-ref "Копіювати ссылку" + :cmdk.action/create "Створити" + :cmdk.action/filter "Фільтр" + :cmdk.action/open "Відкрити" + :cmdk.action/open-in-sidebar "Відкрити в боковой панели" + :cmdk.action/search "Пошук" + :cmdk.action/trigger "Выполнить" + + :cmdk.create/configure-tag "Налаштувати тег" + :cmdk.create/page "Створити сторінку" + :cmdk.create/tag "Створити тег" + + :cmdk.error/no-block-link "В этом блоке нет ссылок." + :cmdk.error/no-page-link "На этой сторіноке нет ссылок." + :cmdk.error/no-search-item-link "В этом результате пошука нет ссылок." + + :cmdk.filter/add "Додати фільтр" + :cmdk.filter/codes "Тільки код" + :cmdk.filter/commands "Тільки команды" + :cmdk.filter/current-page "Тільки текущая сторінка" + :cmdk.filter/files "Тільки файлы" + :cmdk.filter/nodes "Тільки узлы" + :cmdk.filter/only-label "Тільки пошук:" + :cmdk.filter/themes "Тільки темы" + + :cmdk.group/codes "Код" + :cmdk.group/commands "Команды" + :cmdk.group/create "Створити" + :cmdk.group/current-page "Текущая сторінка" + :cmdk.group/files "Файлы" + :cmdk.group/filters "Фільтры" + :cmdk.group/nodes "Узлы" + :cmdk.group/recently-updated "Недавно обновлённые" + :cmdk.group/themes "Теми" + + :cmdk.info/configure-tag "Налаштувати #{1}" + :cmdk.info/create-page "Створити сторіноку '{1}'" + :cmdk.info/create-tag "Створити тег '{1}'" + + :cmdk.input/add-graph-filter-placeholder "Додати фільтр графа" + :cmdk.input/default-placeholder "Что вы ищете?" + :cmdk.input/move-blocks-placeholder "Переміститить блоки" + :cmdk.input/type-page-name-placeholder "Введіть имя сторінки" + + :cmdk.tip/clear-filter "Натисніть {1}, щоб очистити фільтр пошуку" + :cmdk.tip/filter-results "Натисніть {1}, щоб відфільтрувати результати пошуку" + :cmdk.tip/label "Подсказка:" + :cmdk.tip/open-sidebar "Натисніть {1}, щоб відкрити пошук у бічній панелі" + + :collaboration/email-address "Електронна адреса" + :collaboration/invite "Запросити" + :collaboration/members "Учасники:" + :collaboration/remove-access "Скасувати доступ" + :collaboration/remove-access-error "Не удалось видалити участника" + :color/blue "Синій" - :color/purple "Фіолетовий" + :color/crimson "карміновий" + :color/cyan "ціан" + :color/grass "трав'яний" + :color/gray "Сірий" + :color/green "Зелений" + :color/indigo "індіго" + :color/orange "помаранчевий" :color/pink "Рожевий" - :editor/copy "Копіювати" + :color/plum "сливовий" + :color/purple "Фіолетовий" + :color/red "Червоний" + :color/teal "бірюзовий" + :color/tomato "томатний" + :color/violet "фіалковий" + :color/yellow "Жовтий" + + :command.auto-complete/complete "Автозаповнення: підтвердити вибраний елемент" + :command.auto-complete/meta-complete "Мета-автодополнение" + :command.auto-complete/next "Автозаповнення: наступний елемент" + :command.auto-complete/prev "Автозаповнення: попередній елемент" + :command.auto-complete/shift-complete "Автозаповнення: відкрити вибраний елемент на бічній панелі" + + :command.command-palette/toggle "Палітра команд" + + :command.editor/add-property "Додати властивість" + :command.editor/add-property-deadline "Додати крайний срок" + :command.editor/add-property-icon "Додати іконка" + :command.editor/add-property-priority "Додати приоритет" + :command.editor/add-property-status "Додати статус" + :command.editor/add-reaction "Додати реакцию" + :command.editor/backspace "Видалити в зворотному напрямку" + :command.editor/backward-kill-word "Видалити слово назад" + :command.editor/backward-word "Перемістіть курсор на одне слово назад" + :command.editor/beginning-of-block "Перемістіть курсор на початок блоку" + :command.editor/bold "Жирний" + :command.editor/clear-block "Видалити весь вміст блоку" + :command.editor/collapse-block-children "Сховати" + :command.editor/copy "Копіювати (копіює виділення або посилання на блок)" + :command.editor/copy-embed "Скопіювати вставлений блок, вказуючи на поточний блок" + :command.editor/copy-page-url "Скопіювати URL сторінки" + :command.editor/copy-text "Копіювати виділення як текст" + :command.editor/cut "Вирізати" + :command.editor/cycle-todo "Змінити статус TODO для поточного елемента" + :command.editor/delete "Видалити" + :command.editor/delete-selection "Видалити вибрані блоки" + :command.editor/down "Перемістіть курсор вниз/Виберіть вниз" + :command.editor/end-of-block "Перемістіть курсор у кінець блоку" + :command.editor/escape-editing "Скасувати редагування" + :command.editor/expand-block-children "Розкрити" + :command.editor/follow-link "Перейдіть за посиланням" + :command.editor/forward-kill-word "Видалити слово вперед" + :command.editor/forward-word "Перемістіть курсор на одне слово вперед" + :command.editor/highlight "Виділення" + :command.editor/indent "Зсув блоку" + :command.editor/insert-link "HTML посилання" + :command.editor/insert-youtube-timestamp "Вставити мітку часу YouTube" + :command.editor/italics "Курсив" + :command.editor/jump "Перейти" + :command.editor/kill-line-after "Видалити рядок після позиції курсора" + :command.editor/kill-line-before "Видалити рядок перед позицією курсору" + :command.editor/left "Перемістити курсор ліворуч/Відкрити виділений блок на початку" + :command.editor/move-block-down "Перемістити блок вниз" + :command.editor/move-block-up "Перемістити блок нагору" + :command.editor/move-blocks "Переміститить блоки" + :command.editor/new-block "Створити новоий блок" + :command.editor/new-line "Новий рядок у поточному блоці" + :command.editor/open-edit "Редагувати виділений блок" + :command.editor/open-link-in-sidebar "Відкрити посилання на бічній панелі" + :command.editor/open-selected-blocks-in-sidebar "Відкрити вибраніе блоки в боковой панели" + :command.editor/outdent "Скасувати зсув блоку" + :command.editor/paste-text-in-one-block-at-point "Вставити текст в один блок за точкою" + :command.editor/quick-add "Быстрое доданоие" + :command.editor/redo "Повторити" + :command.editor/right "Перемістити курсор вправо/Відкрити вибраний блок у кінці" + :command.editor/select-all-blocks "Вибрати всі блоки" + :command.editor/select-block-down "Вибрати блок нище" + :command.editor/select-block-up "Вибрати блок вище" + :command.editor/select-down "Вибрати вміст нище" + :command.editor/select-parent "Вибрати батьківський блок" + :command.editor/select-up "Вибрати вміст вище" + :command.editor/set-tags "Встановити теги" + :command.editor/strike-through "Закреслений" + :command.editor/toggle-block-children "Показати/сховати дочірние блоки" + :command.editor/toggle-display-hidden-properties "Показати/сховати скрытые властивості" + :command.editor/toggle-number-list "Нумерованный список" + :command.editor/toggle-open-blocks "Згорнути/Розгорнути всі блоки" + :command.editor/undo "Скасувати зміни" + :command.editor/up "Перемістити курсор вгору/Вибрати вгору" + :command.editor/zoom-in "Збільшити" + :command.editor/zoom-out "Зменшити" + + :command.go/all-graphs "Перейти до всіх діаграм" + :command.go/all-pages "Перейти на всі сторінки" + :command.go/backward "Назад" + :command.go/electron-find-in-page "Знайти текст на сторінці" + :command.go/electron-jump-to-the-next "Шукати далі" + :command.go/electron-jump-to-the-previous "Шукати назад" + :command.go/flashcards "Показати/Сховати картки" + :command.go/forward "Вперед" + :command.go/graph-view "Перейти до перегляду графіка" + :command.go/home "Перейти на головну сторінку" + :command.go/journals "Перейти до журналів" + :command.go/keyboard-shortcuts "Перейти до комбінацій клавіш" + :command.go/next-journal "Перейти до наступного журналу" + :command.go/prev-journal "Перейти до попереднього журналу" + :command.go/search "Пошук сторінок і блоків" + :command.go/search-in-page "Пошук на сторіноке" + :command.go/search-themes "Пошук тем" + :command.go/tomorrow "Перейти до завтрашнього щоденника" + + :command.graph/add "Додати графік" + :command.graph/db-add "Додати в базу данных" + :command.graph/db-save "Зберегти базу данных" + :command.graph/export-as-html "Експортувати загальнодоступні сторінки графіків у форматі HTML" + :command.graph/open "Виберіть графік, яку потрібно відкрити" + :command.graph/remove "Видалити графік" + + :command.misc/copy "Копіювати" + :command.misc/export-block-data "Експорт данных блока" + :command.misc/export-graph-ontology-data "Експорт онтологии графа" + :command.misc/export-page-data "Експорт данных сторінки" + :command.misc/import-edn-data "Імпорт данных EDN" + + :command.page/toggle-favorite "Додати/Видалити з вибраного" + + :command.pdf/close "PDF: Закрити поточний документ PDF" + :command.pdf/find "PDF: Пошук тексту в поточному pdf-документі" + :command.pdf/next-page "PDF: Наступна сторінка поточного документа PDF" + :command.pdf/previous-page "PDF: Попередня сторінка поточного документа PDF" + + :command.publish/open-dialog "Відкрити диалог публикации" + + :command.search/re-index "Оновити індекс пошуку" + + :command.shell/run "Виконати команду GIT" + + :command.sidebar/clear "Очистити усе на правій бічній панелі" + :command.sidebar/close-top "Закрити верхній елемент на правій бічній панелі" + :command.sidebar/open-today-page "Відкрити сторінку сьогоднішнього дня на правій бічній панелі" + + :command.ui/clear-all-notifications "Очистити усі сповіщення" + :command.ui/customize-appearance "Налаштувати внешний вид" + :command.ui/goto-plugins "Перейти до списку плагінів" + :command.ui/highlight-recent-blocks "Выделить недавние блоки" + :command.ui/install-plugin-from-github "Встановити плагін с GitHub" + :command.ui/install-plugins-from-file "Встановити плагіни з plugins.edn" + :command.ui/select-theme-color "Вибрати доступні кольори теми" + :command.ui/toggle-brackets "Показати/Сховати квадратні дужки" + :command.ui/toggle-contents "Показати/Приховати вміст бічної панелі" + :command.ui/toggle-document-mode "Показати/Сховати режим документа" + :command.ui/toggle-help "Показати/Сховати помічника" + :command.ui/toggle-left-sidebar "Показати/Сховати ліву бічну панель" + :command.ui/toggle-right-sidebar "Показати/Сховати праву бічну панель" + :command.ui/toggle-settings "Налаштування перемикача" + :command.ui/toggle-theme "Перемикання між темною та світлою темою" + :command.ui/toggle-wide-mode "Перейти у ширококутний режим" + + :command.window/close "Закрити окно" + + :context-menu/developer-tools "Інструменти розробника" + :context-menu/make-a-flashcard "Створити картку" + :context-menu/set-icon "Встановити іконку" + :context-menu/toggle-number-list "Перемкнути нумерований список" + + :date/invalid-date-warning "{1} не є дійсною датою. Спробуйте ще раз" + + :date.nlp/last-friday "Минулу п'ятницю" + :date.nlp/last-monday "Минулого понеділка" + :date.nlp/last-month "Минулого місяця" + :date.nlp/last-saturday "Минулої суботи" + :date.nlp/last-sunday "Минулої неділі" + :date.nlp/last-thursday "Минулого четверга" + :date.nlp/last-tuesday "Минулого вівторка" + :date.nlp/last-wednesday "Минулої середи" + :date.nlp/last-week "Минулого тижня" + :date.nlp/last-year "Минулого року" + :date.nlp/next-friday "Наступну п'ятницю" + :date.nlp/next-monday "Наступного понеділка" + :date.nlp/next-month "Наступного місяця" + :date.nlp/next-saturday "Наступну суботу" + :date.nlp/next-sunday "Наступну неділю" + :date.nlp/next-thursday "Наступного четверга" + :date.nlp/next-tuesday "Наступного вівторка" + :date.nlp/next-wednesday "Наступну середу" + :date.nlp/next-week "Наступного тижня" + :date.nlp/next-year "Наступного року" + :date.nlp/this-friday "Цю п'ятницю" + :date.nlp/this-monday "Цей понеділок" + :date.nlp/this-month "Цього місяця" + :date.nlp/this-saturday "Цю суботу" + :date.nlp/this-sunday "Цю неділю" + :date.nlp/this-thursday "Цей четвер" + :date.nlp/this-tuesday "Цей вівторок" + :date.nlp/this-wednesday "Цю середу" + :date.nlp/this-week "Цього тижня" + :date.nlp/this-year "Цього року" + :date.nlp/today "Сьогодні" + :date.nlp/tomorrow "Завтра" + :date.nlp/yesterday "Вчора" + + :deeplink/open-block-error "Не удалось открыть ссылку. ID блока `{1}` не существует в текущем графе." + :deeplink/open-graph-error "Не удалось открыть граф. Граф `{1}` не существует." + :deeplink/open-page-error "Не удалось открыть ссылку. Сторінка `{1}` не существует в текущем графе." + + :editor/add-content-first-warning "Спочатку додайте вміст." + :editor/auto-heading "Автозаголовок" + :editor/block-search "Пошук блоку" + :editor/click-to-edit "Натисніть для редагування" + :editor/code-language-placeholder "Оберіть мову" + :editor/collapse-block-children "Згорнути дочірні блоки" :editor/cut "Вирізати" - :editor/expand-block-children "Розгорнути все" - :editor/collapse-block-children "Згорнути все" - :editor/delete-selection "Видалити вибрані блоки" - :editor/cycle-todo "Змінити статус TODO для поточного елемента" - :dev/show-page-data "(Dev) Показати дані сторінки" - :dev/show-block-data "(Dev) Показати дані блоку" - :dev/show-block-ast "(Dev) Показати блок AST" - :content/copy-export-as "Копіювати / Експортувати як.." - :content/copy-block-url "Копіювати URL блоку" - :content/copy-block-ref "Копіювати посилання блоку" - :content/copy-ref "Копіювати це посилання" - :content/delete-ref "Видалити це посилання" - :content/replace-with-text "Замінити на текст" - :content/replace-with-embed "Замінити на вбудованний елемент" - :content/open-in-sidebar "Відкрити у боковій панелі" - :content/click-to-edit "Натисніть для редагування" - :context-menu/make-a-flashcard "Зробити Картку" - :context-menu/toggle-number-list "Переключити номерний список" - :settings-page/edit-config-edn "Редагувати config.edn" - :settings-page/edit-global-config-edn "Редагувати глобальний config.edn" - :settings-page/edit-custom-css "Редагувати custom.css" - :settings-page/edit-export-css "Редагувати export.css" - :settings-page/custom-configuration "Користувацька конфігурація" - :settings-page/custom-global-configuration "Користувацька глобальна конфігурація" - :settings-page/custom-theme "Користувацька тема" - :settings-page/export-theme "Експортувати тему" - :settings-page/show-brackets "Показати дужки" - :settings-page/spell-checker "Перевірка правопису" - :settings-page/auto-updater "Авто-оновлювач" - :settings-page/disable-sentry "Надсилати дані про використання та діагностику в Logseq" - :settings-page/disable-sentry-desc "Logseq ніколи не збиратиме вашу локальну базу даних графів і не відправлятиме ваші дані." - :settings-page/preferred-outdenting "Логічне видалення відступів" - :settings-page/show-full-blocks "Показати всі рядки посилання на блок" - :settings-page/auto-expand-block-refs "Автоматично розгортайти посилання на блоки під час збільшення" - :settings-page/custom-date-format "Бажаний формат дати" - :settings-page/preferred-pasting-file "Віддавати перевагу вставці файлу" - :settings-page/enable-shortcut-tooltip "Увімкнути спливаючу підказку" - :settings-page/enable-tooltip "Підказки" - :settings-page/enable-journals "Журнали" - :settings-page/enable-all-pages-public "Усі сторінки є відкритими під час публікації" - :settings-page/home-default-page "Встановити домашню сторінку за умовчанням" - :settings-page/clear-cache "Очистити кеш" - :settings-page/clear "Очистити" - :settings-page/clear-cache-warning "Очищення кешу призведе до видалення відкритих графіків. Ви втратите незбережені зміни." - :settings-page/developer-mode "Режим розробника" - :settings-page/developer-mode-desc "Режим розробника допомагає учасникам і розробникам розширень ефективніше тестувати свою інтеграцію з Logseq." - :settings-page/current-version "Поточна версія" - :settings-page/tab-general "Головна" - :settings-page/tab-editor "Редактор" - :settings-page/tab-advanced "Розширення" - :settings-page/tab-features "Функції" - :settings-page/plugin-system "Плагіни" - :settings-page/enable-flashcards "Картки" - :settings-page/network-proxy "Мережевий проксі" - :settings-page/login-prompt "Щоб отримати доступ до нових функцій раніше за інших, ви повинні бути відкритим колективним спонсором або спонсором Logseq і, отже, спершу увійти." - :yes "Так" + :editor/cycle-todo "Перемкнути TODO" + :editor/delete-selection "Видалити виділення" + :editor/display-tag-inline-hint "щоб показувати цей тег вбудовано, а не в кінці цього вузла." + :editor/expand-block-children "Розгорнути дочірні блоки" + :editor/heading "Заголовок {1}" + :editor/moving-blocks-count "Переміщення {1} блоків" + :editor/new-page "Нова сторінка" + :editor/new-tag "Новий тег" + :editor/no-block-selected-warning "Немає вибраніх блоков" + :editor/paste "Вставити" + :editor/reference-node-use-page-ref "Щоб посилатися на вузол, використовуйте `[[]]`." + :editor/remove-heading "Видалити заголовок" + :editor/search-for-node "Шукати вузол" + :editor/search-for-tag "Шукати тег" + :editor/search-template-placeholder "Пошук шаблону" + :editor/template-insert-error "Помилка вставки шаблону: {1}" + + :editor.document-mode/new-block-hint "{1} для створення нового блоку" + :editor.document-mode/title "Режим документа" + :editor.document-mode/toggle-desc "Натисніть `D` або введіть {1} для перемикання режиму документа" + + :editor.quick-add/add-to-today "Додати на сьогодні" + :editor.quick-add/title "Швидке додавання" + + :editor.slash/advanced-query "Розширений запит" + :editor.slash/advanced-query-desc "Створити блок розширеного запиту" + :editor.slash/calculator "Калькулятор" + :editor.slash/calculator-desc "Вставити калькулятор" + :editor.slash/cloze "Cloze" + :editor.slash/code-block "Блок коду" + :editor.slash/code-block-desc "Вставити блок коду" + :editor.slash/current-time "Поточний час" + :editor.slash/current-time-desc "Вставити поточний час" + :editor.slash/date-picker "Вибір дати" + :editor.slash/date-picker-desc "Виберіть дату й вставте її" + :editor.slash/embed-html "Вставити HTML" + :editor.slash/embed-twitter-tweet "Вставити твіт Twitter" + :editor.slash/embed-video-url "Вставити URL відео" + :editor.slash/embed-youtube-timestamp "Вставити часову мітку YouTube" + :editor.slash/group-advanced "РОЗШИРЕНЕ" + :editor.slash/group-basic "БАЗОВЕ" + :editor.slash/group-format "ФОРМАТ" + :editor.slash/group-heading "Заголовок" + :editor.slash/group-list-type "ТИП СПИСКУ" + :editor.slash/group-plugins "ПЛАГІНИ" + :editor.slash/group-priority "ПРІОРИТЕТ" + :editor.slash/group-task-date "ДАТА ЗАВДАННЯ" + :editor.slash/group-task-status "СТАН ЗАВДАННЯ" + :editor.slash/group-time-and-date "ЧАС І ДАТА" + :editor.slash/heading-label "Заголовок {1}" + :editor.slash/image-link "Посилання на зображення" + :editor.slash/image-link-desc "Створити HTTP посилання на зображення" + :editor.slash/link-desc "Створити HTTP посилання" + :editor.slash/math-block "Математичний блок" + :editor.slash/math-block-desc "Створити блок LaTeX" + :editor.slash/no-priority "Без пріоритету" + :editor.slash/node-embed "Вставити вузол" + :editor.slash/node-embed-desc "Вставити вузол тут" + :editor.slash/node-reference "Посилання на вузол" + :editor.slash/node-reference-desc "Створити зворотне посилання на вузол (сторінка або блок)" + :editor.slash/normal-text "Звичайний текст" + :editor.slash/normal-text-desc "Очистити заголовок і встановити як звичайний текст" + :editor.slash/number-children "Нумерувати дочірні елементи" + :editor.slash/number-list "Нумерований список" + :editor.slash/priority-desc "Встановити пріоритет {1}" + :editor.slash/priority-label "Пріоритет {1}" + :editor.slash/query-function "Функція запиту" + :editor.slash/query-function-desc "Створити функцію запиту" + :editor.slash/quote-desc "Створити блок цитати" + :editor.slash/status-desc "Встановити стан на {1}" + :editor.slash/template-desc "Вставити створений шаблон тут" + :editor.slash/today-desc "Вставити сьогоднішню дату" + :editor.slash/tomorrow-desc "Вставити завтрашню дату" + :editor.slash/underline "Підкреслення" + :editor.slash/underline-desc "Створити підкреслене форматування тексту" + :editor.slash/upload-asset "Завантажити файл" + :editor.slash/upload-asset-desc "Завантажити типи файлів, такі як зображення, PDF, DOCX тощо" + :editor.slash/yesterday-desc "Вставити вчорашню дату" + + :electron/about "Про Logseq" + :electron/add-to-dictionary "Додати в словарь" + :electron/block-not-exist "Не вдалося відкрити посилання. Ідентифікатор блоку `{1}` не існує в графі." + :electron/cancel "Скасувати" + :electron/copy-image "Копіювати зображення" + :electron/link-open-confirm "Ви впевнені, що хочете відкрити це посилання?\n{1}" + :electron/link-open-failed-missing-graph "Не удалось открыть ссылку. Отсутствует граф." + :electron/link-open-failed-no-graph "Не вдалося відкрити посилання. Не вдалося зіставити ідентифікатор графа `{1}` з жодним підключеним графом." + :electron/link-open-failed-no-target "Не вдалося відкрити посилання. Не вдалося зіставити `{1}` з жодною ціллю." + :electron/look-up "Шукати виділене" + :electron/main-exception "[Виняток головного процесу]\n{1}\n{2}" + :electron/new-window "Нове вікно" + :electron/official-docs "Официальная документация" + :electron/ok "ОК" + :electron/open-dir-error "Не удалось открыть директорію: {1}" + :electron/save-image "Зберегти зображення" + :electron/save-image-as "Зберегти зображення как" + :electron/search-with-google "Шукати в Google" + :electron/unimplemented-callback "Нереалізована дія x-callback-url: `{1}`." + :electron/version "Версия {1}" + :electron/write-file-error "Не вдалося записати у файл {1}, {2}." + :electron/write-file-error-with-backup "Не вдалося записати у файл {1}, {2}. Резервну копію було збережено в {3}." + + :encryption/cloud-password-rich (fn [] ["Якщо ви втратите пароль, дані в хмарі неможливо буде розшифрувати. " [:span "Водночас ви й далі матимете доступ до локальної версії свого графа."]]) + :encryption/current-password "Текущий пароль" + :encryption/enter-password "Введіть пароль" + :encryption/enter-password-again "Введіть пароль ще раз" + :encryption/enter-password-title "Введіть пароль" + :encryption/failed-to-force-reset-password "Не удалось принудительно скинути пароль" + :encryption/failed-to-update-password "Не удалось оновити пароль" + :encryption/fetch-key-pair-error "Помилка отримання пари ключів користувача RSA: {1}" + :encryption/fetching-key-pair "Отримання пары ключей" + :encryption/force-reset-password "Принудительный скидання пароля" + :encryption/force-reset-password-successfully "Пароль принудительно сброшен" + :encryption/force-resetting-password "Принудительный скидання" + :encryption/forgot-password-question "Забыли пароль?" + :encryption/forgot-password-warning "Если вы забудете пароль, зашифрованные данные неможливо будет восстановить." + :encryption/init-key-pair "Инициализировать пару ключей" + :encryption/init-key-pair-error "Помилка пари ключів ініціалізації: {1}" + :encryption/password-not-matched "Паролі не збігаються" + :encryption/password-updated-successfully "Пароль обновлён" + :encryption/remember-password-rich (fn [] [[:span "Обов'язково "] "запам'ятайте встановлений пароль: якщо ви його забудете, ми не зможемо його скинути чи відновити, " [:span "і рекомендуємо "] "зберігати його безпечну резервну копію."]) + :encryption/reset-password "Скинути пароль" + :encryption/set-new-password "Встановити новий пароль" + :encryption/set-password-title "Встановити пароль" + :encryption/updating-password "Оновлення пароля" + :encryption/wrong-password "Невірний пароль" + + :export/backup-successful "Резервная копия создана!" + :export/block-data-copied "Данные блока скопированы в буфер обмена" + :export/collecting-assets "Збір ресурсів" + :export/copied-to-clipboard "Скопійовано до буфера обміну!" + :export/copy-or-export-as "Копіювати / Експортувати як.." + :export/creating-zip "Створення zip" + :export/db-backup-error "Не удалось створити резервную копию БД." + :export/db-edn "Експортировать как файл EDN" + :export/debug-transit-desc "Експортує у файл .transit для надсилання нам для налагодження. Будь-які конфіденційні дані будуть видалені з експортованого файлу." + :export/debug-transit-file "Експортувати файл debug transit" + :export/edn-desc "Експортує у читабельний та редагований файл .edn. Не покладайтеся на це як на основну резервну копію." + :export/error-unexpected "Під час експорту сталася непередбачена помилка. Деталі див. у консолі JavaScript." + :export/exporting "Експортування" + :export/finalizing "Завершення" + :export/format-text "Текст" + :export/graph "Експортувати граф" + :export/graph-ontology-data-copied "Данные онтологии графа скопированы в буфер обмена" + :export/indent-style-dashes "тире" + :export/indent-style-label "Стиль відступів:" + :export/indent-style-none "без відступів" + :export/indent-style-spaces "пробіли" + :export/level-lte "рівень <=" + :export/markdown "Експортировать как Markdown (без властивостей блоков)" + :export/newline-after-block "новий рядок після блока" + :export/no-updates-since-last-export "Немає оновлень с последнего експорта." + :export/open-blocks-only "лише відкриті блоки (пропустити згорнутих нащадків)" + :export/page "Експортувати сторінку" + :export/page-data-copied "Данные сторінки скопированы в буфер обмена" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "Підготовка zip" + :export/preview-alt "попередній перегляд експорту" + :export/public-pages "Експортировать публичные сторінки" + :export/remove-emphasis "прибрати виділення" + :export/remove-properties "прибрати властивості" + :export/remove-tags "прибрати #теги" + :export/save-to-file "Зберегти в файл" + :export/sqlite-db "Експортировать базу данных SQLite" + :export/title "Експорт" + :export/transparent-background "Прозрачный фон" + :export/view-nodes-data-copied "Данные узлов представления скопированы в буфер обмена" + :export/zip "Експортировать БД SQLite и ресурсы" + :export/zip-error "Не удалось експортировать ZIP." + + :export.backup/backup-now "Створити резервну копію зараз" + :export.backup/cancel "Скасувати резервне копіювання" + :export.backup/enabled-desc "Щогодинне резервне копіювання увімкнено для цього графа, {1}." + :export.backup/folder "Тека резервних копій:" + :export.backup/hourly-note "Резервна копія буде створюватися щогодини." + :export.backup/open-folder "відкрити теку резервних копій цього графа" + :export.backup/schedule "Запланувати резервне копіювання" + :export.backup/set-folder-first "Спочатку вкажіть теку для резервних копій" + :export.backup/sqlite-desc "Основний спосіб створення резервної копії вмісту графа в один файл .sqlite." + :export.backup/unsupported-desc "Ваш браузер не підтримує {{The File System Access API}}, будь ласка, перейдіть на браузер на основі Chromium." + :export.backup/zip-desc "Основний спосіб створення резервної копії вмісту та ресурсів графа у файл .zip." + + :file/config-duplicate-keys "Файл '{1}' містить повторювані ключі. Ключ \"{2}\" призначається кілька разів." + :file/config-invalid "Файл конфигурации недействителен" + :file/format-not-supported "Формат .{1} не підтримується." + :file/label "Файл" + :file/last-modified-at "Останнє модифіковано у " + :file/name "Назва файлу" + :file/no-data "Немає даних" + :file/title "Файл {1}" + + :file.config/deprecation-title "Файл {1} містить такі застарівші функції:" + :file.config/error-title "Файл {1} містить такі помилки:" + :file.config/invalid-desc "Переконайтесь, що конфігурація укладена в {}." + :file.config/invalid-title "Файл {1} є недійсним." + :file.config/read-failed-desc "Переконайтесь, що конфігурація укладена в {}. Також переконайтесь, що символи '( { [' мають відповідні символи закриття ') } ]'." + :file.config/read-failed-title "Не вдалося прочитати файл {1}" + + :flashcard/add-query "Додати новий запит" + :flashcard/all-cards "Усі картки" + :flashcard/select-cards "Обрати картки" + :flashcard/shortcut-tooltip "Гаряча клавіша: {1}" + + :flashcard.empty/desc "Ви можете додати «{1}» до будь-якого блоку, щоб перетворити його на картку, або активувати «/cloze», щоб додати кілька пропусків." + :flashcard.empty/title "Ласкаво просимо до Карток" + + :flashcard.rating/again "Знову" + :flashcard.rating/again-desc "Ми відповіли неправильно. Це автоматично означає, що ми забули картку. Це провал у пам'яті." + :flashcard.rating/easy "Легко" + :flashcard.rating/easy-desc "Відповідь була правильною, і ми згадали її швидко та впевнено, без розумового зусилля." + :flashcard.rating/good "Добре" + :flashcard.rating/good-desc "Відповідь була правильною, але знадобилося певне розумове зусилля, щоб її згадати." + :flashcard.rating/hard "Важко" + :flashcard.rating/hard-desc "Відповідь була правильною, але ми не були в ній упевнені або занадто довго її згадували." + + :flashcard.review/finished "Готово! 💯" + :flashcard.review/hide-answers "Сховати відповіді" + :flashcard.review/show-answers "Показати відповіді" + :flashcard.review/show-clozes "Показати пропуски" + + :format/bold "Напівжирний" + :format/code "Код" + :format/highlight "Виділення" + :format/italics "Курсив" + :format/strikethrough "Закреслений" - :cancel "Відміна" - :close "Закрити" - :delete "Видалити" - :save "Зберегти" - :type "Тип" - :host "Хост" - :port "Порт" - :graph "Графік" :graph/all-graphs "Всі графіки" - :export "Експортувати" - :export-graph "Експортувати графік" - :export-page "Експортувати сторінку" - :export-markdown "Експортувати як звичайний Markdown (без налаштувань блоків)" - :export-public-pages "Експортувати публічні сторінки" - :all-graphs "Всі графіки" - :all-files "Всі файли" - :all-journals "Всі журнали" - :settings "Налаштування" - :settings-of-plugins "Плагіни" - :plugins "Плагіни" - :themes "Теми" - :relaunch-confirm-to-work "Потрібно перезагрузити застосунок. Хочете перезагрузити зараз?" - :import "Імпорт" - :importing "Імпортування" - :help-shortcut-title "Клацніть, щоб перевірити комбінації і інші підказки" - :login "Увіти" - :logout "Вийти" - :download "Завантажити" - :language "Мова" - :remove-background "Видалити фон" - :remove-heading "Видалити заголовок" - :heading "Заголовок {1}" - :auto-heading "Авто заголовок" + :graph/already-exists-error "Граф '{1}' вже існує. Будь ласка, спробуйте іншу назву." + :graph/as-png "як PNG" + :graph/built-in-pages "Вбудовані сторінки" + :graph/charge-range "Діапазон заряду" + :graph/charge-strength "Сила заряду" + :graph/click-to-search "Натисніть для пошуку" + :graph/create-db "Створити граф БД" + :graph/create-error "Не удалось створити граф" + :graph/create-new "Створити новий граф" + :graph/created-before "Створено до" + :graph/creating "Створення графа" + :graph/delete-local-action "Видалити локальний граф" + :graph/delete-local-confirm-desc "Ви впевнені, що бажаєте остаточно видалити граф \"{1}\" з Logseq?" + :graph/delete-server-action "Видалити з сервера" + :graph/delete-server-confirm-desc "Ви впевнені, що бажаєте остаточно видалити граф \"{1}\" з нашого сервера?" + :graph/delete-warning "⚠️ Зверніть увагу, що ми не можемо відновити цей граф після його видалення. Переконайтесь, що у вас є резервні копії перед видаленням." + :graph/diff "Git diff" + :graph/downloading "завантаження" + :graph/encrypt-data-label "Зашифрувати дані графа" + :graph/excluded-pages "Виключені сторінки" + :graph/forces "Сили" + :graph/gc-success "Очищення графа виконано успішно!" + :graph/last-opened-at-label "Востаннє відкрито: {1}" + :graph/leave-action "Покинути цей граф" + :graph/leave-confirm-desc "Ви впевнені, що бажаєте залишити цей граф?" + :graph/leave-error "Не удалось покинуть граф" + :graph/left "Граф покинут" + :graph/link-count (fn [n] (str n " " (if (= 1 n) "посилання" "посилань"))) + :graph/link-distance "Відстань між зв'язками" + :graph/local-graphs "Локальні графи" + :graph/n-hops-from-selected-nodes "N кроків від обраних вузлів" + :graph/name-placeholder "назва вашого графа" + :graph/nodes "Вузли" + :graph/orphan-pages "Ізольовані сторінки" + :graph/page-count (fn [n] (str n " " (if (= 1 n) "сторінка" "сторінок"))) + :graph/pause-simulation "Призупинити симуляцію" + :graph/preparing "підготовка" + :graph/refresh-remote-graphs "Оновити віддалені графи" + :graph/remote-graphs "Віддалені графи" + :graph/removed "Видалено графік \"{1}\"" + :graph/removed-and-redirecting "Видалено графік \"{1}\". Переспрямування на графік \"{2}\"" + :graph/removed-from-sync "Граф видалено из синхронизации" + :graph/reset "Скинути граф" + :graph/reset-forces "Скинути сили" + :graph/search "Пошук" + :graph/shared-graphs "Спільні графи" + :graph/updated-switching "Граф обновлён. Переключение..." + :graph/use-sync-beta "Використовувати Logseq Sync (бета-тестування)" + :graph/use-sync-label "Використовувати Logseq Sync?" - :help/shortcut-page-title "Кобмінації клавіш" + :graph.diagnostics/checksum-failed-error "Не вдалося обчислити діагностику контрольної суми графа." + :graph.diagnostics/checksum-recomputed-success "Контрольну суму перераховано. Перерахована: {1}, локальна: {2}, віддалена: {3}. Завантажено {4}.edn із {5} блоками та атрибутами контрольної суми {6}." + :graph.diagnostics/checksum-unavailable-warning "Не вдалося обчислити діагностику контрольної суми для поточного графа." + :graph.diagnostics/client-ops-export-failed-error "Не вдалося експортувати Client ops SQLite." + :graph.diagnostics/client-ops-export-invalid-payload-warning "Не вдалося експортувати Client ops SQLite: недійсний тип payload {1}." + :graph.diagnostics/client-ops-export-success "Client ops SQLite експортовано: {1}.sqlite" + :graph.diagnostics/no-graph-warning "Граф не знайдено." - :plugin/installed "Встановленно" - :plugin/not-installed "Не встановленно" - :plugin/installing "Встановлення" - :plugin/install "Встановити" - :plugin/reload "Перезавантажити" - :plugin/update "Оновити" - :plugin/check-update "Перевірити оновлення" - :plugin/check-all-updates "Перевірити всі оновлення" - :plugin/found-updates "Нові оновлення" - :plugin/found-n-updates "Знайдено оновлень {1}" - :plugin/update-all-selected "Оновити всі вибрані" - :plugin/updates-downloading "Завантаження оновлень" - :plugin/refresh-lists "Оновити списки" - :plugin/enabled "Ввімкнено" - :plugin/disabled "Вимкнено" - :plugin/update-available "Доступне оновлення" - :plugin/updating "Оновлення" - :plugin/uninstall "Видалити" - :plugin/marketplace "Маркетплейс" - :plugin/downloads "Завантаження" - :plugin/stars "Оцінка" - :plugin/all "Все" - :plugin/unpacked "Розпаковано" - :plugin/delete-alert "Ви впевнені, що хочете видалити плагін [{1}]?" - :plugin/open-settings "Відкрити налаштування" - :plugin/open-package "Відкрити пакунок" - :plugin/load-unpacked "Завантажити розпакований плагін" - :plugin/restart "Перезапустити додаток" - :plugin/unpacked-tips "Виберіть директорію із плагінами" - :plugin/contribute "✨ Написати і відправити новий плагін" - :plugin/custom-js-alert "Знайденно custom.js файл, це дозволенно до запуску? (Якщо ви не розумієте що знаходитья у файлі, це не рекомедовано до запуску, як може мати певні проблеми із безпекою.)" - :plugin.install-from-file/menu-title "Встановити з plugins.edn" - :plugin.install-from-file/title "Встановити плагіни з plugins.edn" - :plugin.install-from-file/notice "Наступні плагіни замінять ці:" - :plugin.install-from-file/success "Всі плагіни встановлено!" + :graph.page/show-journals "Показати журнали" + :graph.page/title "Графік сторінки" + :graph.switch/add-graph-action "Так, додати інший графік" + :graph.switch/empty-desc "Не знайденно графіків. Чи бажаєте додати один?" + :graph.switch/prompt "Перемкнути" + :graph.switch/select-prompt "Виберіть графік" + + :graph.validation/config-arweave-gateway-warning "більше не підтримується." + :graph.validation/config-block-hidden-properties-warning "is not used in DB graphs as hiding a property is done in its configuration" + :graph.validation/config-default-templates-warning "is replaced by #Template and the `Apply template to tags` property" + :graph.validation/config-editor-command-trigger-warning "більше не підтримується. Використовуйте '/' та повідомляйте про помилки." + :graph.validation/config-favorites-warning "is not stored in config for DB graphs" + :graph.validation/config-feature-enable-block-timestamps-warning "is not used in DB graphs as it is always enabled" + :graph.validation/config-preferred-format-warning "не використовується в графах баз даних, оскільки існує тільки режим markdown." + :graph.validation/config-property-pages-enabled-warning "is not used in DB graphs as all properties have pages" + :graph.validation/config-unused-in-db-graphs-warning "is not used in DB graphs" + :graph.validation/invalid-blocks-detected "Валідація виявила {1} неважний блок (блоків). Ці блоки можуть бути помилковими. Спроба виправити неважні блоки. Повторно запустіть валідацію, щоб побачити, чи були вони виправлені." + :graph.validation/name-reserved-characters-warning "Назва графа не може містити такі зарезервовані символи:" + :graph.validation/reserved-character-asterisk "зірочка" + :graph.validation/reserved-character-backslash "зворотна скісна риска" + :graph.validation/reserved-character-colon "двокрапка" + :graph.validation/reserved-character-double-quote "подвійна лапка" + :graph.validation/reserved-character-forward-slash "скісна риска" + :graph.validation/reserved-character-greater-than "більше" + :graph.validation/reserved-character-hash "решітка" + :graph.validation/reserved-character-less-than "менше" + :graph.validation/reserved-character-pipe "вертикальна риска або pipe" + :graph.validation/reserved-character-plus "плюс" + :graph.validation/reserved-character-question-mark "знак питання" + :graph.validation/valid "Ваш граф є дійсним! {1}" + + :header/go-back "Назад" + :header/go-forward "Вперед" + :header/highlight-recent-blocks "Підсвічувати недавні блоки" + :header/highlight-recent-blocks-days-ago "Підсвічувати недавні блоки: {1} дн. тому" + :header/more "Ще" + :header/quit-highlight-recent-blocks "Вимкнути підсвічування нещодавніх блоків" + :header/toggle-left-sidebar "Перемкнути ліву панель" + + :help/about "Про Logseq" + :help/about-title "Про програму" + :help/ask-community "Запитати спільноту" + :help/awesome-logseq "Awesome Logseq" + :help/block-reference "Посилання на блок" + :help/blog "Блог Logseq" + :help/bug "Повідомити про помилку на GitHub" + :help/changelog "Журнал змін" + :help/community-title "Спільнота" + :help/context-menu "Контекстне меню блоку" + :help/context-menu-action "Клік правою кнопкою по маркеру" + :help/development-title "Розробка" + :help/docs "Документація" + :help/feature "Запит функції" + :help/forum-community "Спільнота на форумі" + :help/handbook "Довідник" + :help/learn-more "Дізнатися більше" + :help/markdown-syntax "Синтаксис Markdown" + :help/open-link-in-sidebar "Відкрити посилання у бічній панелі" + :help/open-link-in-sidebar-action "Shift+клік по посиланню" + :help/privacy "Політика приватності" + :help/reference-autocomplete "Автозаповнення посилання на сторінку" + :help/release-notes "Примітки до випуску" + :help/roadmap "Дорожня карта" + :help/search "Пошук" + :help/slash-autocomplete "Автозаповнення слешу" + :help/start "Починаємо" + :help/submit-feedback "Надіслати відгук" + :help/support-forum "Форум підтримки" + :help/terms "Умови" + :help/terms-title "Умови" + :help/usage-title "Використання" + + :help.handbook/chat-on-discord "Спілкуватися в Discord" + :help.handbook/chat-on-discord-desc "Ставте швидкі запитання, знайомтеся з іншими користувачами та дізнавайтеся про нові робочі процеси." + :help.handbook/copy-topic-link "Копіювати посилання на тему" + :help.handbook/current-chapter "Поточний розділ" + :help.handbook/help-categories "Категорії довідки" + :help.handbook/home "Головна" + :help.handbook/link-copied "Посилання на довідник скопійовано!" + :help.handbook/monthly-posts "публікацій на місяць" + :help.handbook/next-chapter "Наступний розділ" + :help.handbook/popular-topics "Популярні теми" + :help.handbook/prev-chapter "Попередній розділ" + :help.handbook/resources-from "Ресурси від {1}" + :help.handbook/search-placeholder "Пошук" + :help.handbook/shortcuts-count "{1} скорочень" + :help.handbook/sync "Синхронізація" + :help.handbook/title "Довідник" + :help.handbook/topics "Теми" + :help.handbook/users-online "користувачів онлайн" + :help.handbook/visit-the-forum "Відвідати форум" + :help.handbook/visit-the-forum-desc "Залишайте відгуки, пропонуйте функції та ведіть поглиблені обговорення." + :help.handbook/writing-mode "Режим письма (попередній перегляд у часі)" + + :help.shortcuts/desc "Показати комбінації та підказки" + :help.shortcuts/label "Гарячі кнопки" + :help.shortcuts/shortcut-column "Ярлик" + :help.shortcuts/title "Кобмінації клавіш" + :help.shortcuts/triggers "Тригер" + + :icon/emojis-count "Емодзі ({1})" + :icon/icons-count "Іконки ({1})" + :icon/matched-count "Знайдено ({1})" + :icon/search-all "Шукати все" + :icon/search-emojis "Шукати емодзі" + :icon/search-icons "Шукати іконки" + :icon/tab-all "Усі" + :icon/tab-emojis "Емодзі" + :icon/tab-icons "Іконки" + + :import/all-tags "Імпортировать усі теги" + :import/asset-too-large-warning "Копіювання ресурсу {1} пропущено, бо він перевищує ліміт 100 MB." + :import/assets-import-partial "{1}/{2} ресурсов імпортировано. Подробности в консоли." + :import/assets-imported "{1} ресурсов імпортировано." + :import/assets-skipped "{1} ресурсов пропущено. Подробности в консоли." + :import/block-icons-cannot-be-imported "Іконки блоков не могут быть імпортированы. Імпортируйте вручную в блоке {1}." + :import/cannot-import-block-into-non-block-entity "Неможливо імпортировать блок в не-блочную сущность." + :import/db-edn-desc "Імпортувати EDN-експорт графа БД у новий граф БД" + :import/db-edn-title "EDN у граф БД" + :import/debug-transit-desc "Імпортувати файл debug transit у новий граф БД" + :import/debug-transit-title "Debug Transit" + :import/default-db-graph-behavior "Поведение графа БД по умолчанию" + :import/empty-graph-name "Имя графа не может быть пустым." + :import/extract-inline-code-snippets "Извлечь инлайн-код как подблоки" + :import/file-finished "Імпорт завершён!" + :import/file-to-db-desc "Імпортувати файловий граф Logseq у новий граф БД" + :import/file-to-db-title "Файл у граф БД" + :import/graph-name-conflict "Граф с таким именем уже существует. Выберите другое имя!" + :import/graph-name-placeholder "Имя графа" + :import/ignored-assets "{1} ресурсов пропущено при імпорте. Подробности в консоли JavaScript." + :import/ignored-files "{1} файлов пропущено при імпорте. Подробности в консоли JavaScript." + :import/ignored-properties "{1} властивостей пропущено при імпорте" + :import/ignored-properties-fix "Чтобы исправить тип властивості, измените значение на правильный тип и повторите імпорт" + :import/invalid-blocks-detected "{1} недійсных блоков обнаружено при імпорте. Взаимодействие может не работать. Подробности в консоли JavaScript." + :import/invalid-edn-file "Предоставленный файл EDN недействителен. Исправьте и повторите." + :import/loading "Імпорт" + :import/logseq-config-missing "Помилка імпорта: в графе Logseq нет файла 'logseq/config.edn'." + :import/new-graph-name "Новое имя графа" + :import/notes "Імпортировать заметки" + :import/org-files-imported "{1} файлов Org імпортировано как Markdown. Поддержка Org будет доданоа позже." + :import/page-icons-cannot-be-imported "Іконки сторінок не могут быть імпортированы. Імпортируйте вручную на сторіноке {1}." + :import/properties-case-insensitive-commas "Имена властивостей (без учёта регистра, через запятую)" + :import/property-classes-placeholder "напр. type" + :import/property-import-manually "Это властивість нужно імпортировать вручную" + :import/property-parent-classes-placeholder "напр. parent" + :import/property-type-mismatch "Значение властивості имеет тип {1}, а не {2}" + :import/property-value-tag-parents "Імпортировать родителей тегов из значений властивостей" + :import/property-value-tags "Імпортировать дополнительные теги из значений властивостей" + :import/remove-inline-tags "Видалити инлайн-теги" + :import/select-edn-or-json "Выберите файл EDN или JSON." + :import/specific-tags "Імпортировать конкретные теги" + :import/sqlite-and-assets-desc "Імпортувати zip з db.sqlite та текою ресурсів" + :import/sqlite-and-assets-title "SQLite + ресурси (.zip)" + :import/submitted-edn-invalid "Предоставленные данные EDN недействительны! Исправьте и повторите." + :import/successful "Імпорт виконано успішно!" + :import/tag-classes-placeholder "Тег1, Тег2" + :import/tags-case-insensitive "Теги (без учёта регистра)" + :import/title "Імпорт" + :import/unexpected-error "Непредвиденная помилка: {1}" + :import/zip-import-error "Помилка імпорту Zip: {1}" + :import/zip-missing-db-sqlite "ZIP не содержит db.sqlite" + + :journal/add-blocks-to-today-success "Блоков доданоо сегодня" + :journal/page-cant-convert-warning "Эта сторінка не является сторінокей щоденника." + :journal/parse-date-to-name-error "Не удалось разобрать имя щоденника" + + :journal.default-query/doing "ВИКОНУЄТЬСЯ" + :journal.default-query/todo "ЗАВДАННЯ" + + :keymap/all "Усі" + :keymap/already-bound "Сочетание уже використуется" + :keymap/also-used-for-action "Также використуется для {1}" + :keymap/also-used-for-action-in-context "Также використуется для {1} В контексте {2}" + :keymap/clear "Очистити" + :keymap/clear-keystroke-filter "Очистити фільтр клавіш" + :keymap/clear-search "Очистити пошук" + :keymap/custom "Користувацькі" + :keymap/deactivates-chord "Вимикає" + :keymap/deactivates-chords "Вимикає {1} комбінацій скорочень" + :keymap/disabled "Вимкнені" + :keymap/esc-is-reserved "Esc зарезервирован" + :keymap/hint-cancel "Скасувати" + :keymap/hint-close "Закрити" + :keymap/hint-reassign "Переназначить" + :keymap/hint-remove "Видалити" + :keymap/keystroke-filter "Фільтр по нажатию" + :keymap/no-matching-shortcuts "Немає соответствующих сочетаний" + :keymap/press-a-shortcut "Натисніть сочетание клавиш" + :keymap/press-keys-to-filter "Натисніть клавиши для фільтра" + :keymap/reassign "Переназначить" + :keymap/reassign-tooltip "Переназначить сочетание этого дії" + :keymap/reassigned-from "Переназначено с {1}" + :keymap/refresh-all "Оновити все" + :keymap/remove-binding "Видалити призначення" + :keymap/remove-filter "Видалити фільтр" + :keymap/reset "Скинути" + :keymap/reset-to-default "Скинути по умолчанию" + :keymap/search-by-keys "Пошук по клавишам" + :keymap/search-placeholder "Шукати сочетания…" + :keymap/shortcut-added "Сочетание доданоо" + :keymap/shortcut-removed "Сочетание удалено" + :keymap/toggle-categories-pane "Перемкнути панель категорій" + :keymap/undo "Скасувати" + :keymap/unset "Не задано" + :keymap/used-by-action "Використуется {1}" + + :library/add-existing-pages "Додати наявні сторінки до Бібліотеки" + :library/add-pages "Додати сторінки" + :library/title "Бібліотека" + + :mobile/camera-access-denied "Доступ до камери заборонено. Увімкніть його в Параметри > Logseq." + :mobile/microphone-access-denied "Доступ до мікрофона заборонено. Увімкніть його в Параметри > Logseq." + + :mobile.header/actions "Дії" + :mobile.header/create-graph "Створити граф" + :mobile.header/delete-block-confirm-desc "Видалити этот блок?" + :mobile.header/delete-page-confirm-desc "Видалити эту сторіноку?" + + :mobile.intent/file-options "Параметри файлу" + :mobile.intent/open-with-app "Відкрити файл у вашому улюбленому застосунку" + :mobile.intent/select-option-prompt "Оберіть дію" + :mobile.intent/share "Поділитися" + + :mobile.log/all "Все" + :mobile.log/errors-only "Тільки ошибки" + :mobile.log/full "Полный" + :mobile.log/new-first "Сначала новые" + :mobile.log/old-first "Сначала старые" + :mobile.log/ui "UI" + :mobile.log/worker "Worker" + + :mobile.settings/account "Обліковий запис" + :mobile.settings/check-log "Журнал" + :mobile.settings/discord-community "Сообщество Discord" + :mobile.settings/forum "Форум" + :mobile.settings/github "GitHub" + :mobile.settings/report-bug "Сообщить об помилці" + :mobile.settings/revision "Ревизия" + :mobile.settings/theme "Тема" + :mobile.settings/version "Версія" + + :mobile.share/file-import-error "Не удалось імпортировать файл" + :mobile.share/media-import-error "Не удалось імпортировать медиа" + :mobile.share/unsupported-content-warning "Розбір поточного спільного вмісту не підтримується. Будь ласка, повідомте наступні коди на {1}. Ми розглянемо це найближчим часом." + :mobile.share/unsupported-import-type "Імпорт файлу {1} не підтримується. Ви можете повідомити на {2}. Ми розглянемо це найближчим часом." + + :mobile.tab/capture "Захват" + :mobile.tab/go-to "Перейти" + :mobile.tab/graphs "Графи" + + :mobile.toolbar/audio "Аудіо" + :mobile.toolbar/copy-ref "Копіювати посилання" + :mobile.toolbar/copy-url "Копіювати URL" + :mobile.toolbar/hide "Сховати" + :mobile.toolbar/indent "Отступ" + :mobile.toolbar/outdent "Убрать отступ" + :mobile.toolbar/photo "Фото" + :mobile.toolbar/redo "Повтор" + :mobile.toolbar/reference "Ссылка" + :mobile.toolbar/slash "Косая черта" + :mobile.toolbar/tag "Тег" + :mobile.toolbar/todo "TODO" + :mobile.toolbar/undo "Скасувати" + :mobile.toolbar/unselect "Скасувати вибір" + + :nav/all-files "Усі файли" + :nav/all-journals "Усі щоденники" + :nav/appearance "Зовнішній вигляд" + :nav/assets "Ресурси" + :nav/cannot-go-to-internal-page "Неможливо перейти на внутрішню сторінку" + :nav/flashcards "Картки" + :nav/graph "Граф" + :nav/graph-view "Вигляд графіка" + :nav/help "Допомога" + :nav/home "Головна" + :nav/invalid-jump-error "Недійсный переход" + :nav/journals "Журнали" + :nav/plugins "Плагіни" + :nav/search "Пошук" + :nav/settings "Налаштування" + :nav/skip-to-main-content "Перейти до головної" + :nav/tasks "Завдання" + :nav/themes "Теми" + + :nav.all-pages/label "Усі сторінки" + :nav.all-pages/title "Усі сторінки" + + :node/built-in-cant-delete-error "Вбудованые элементы нельзя видалити." + :node/new "Новый узел" + + :notification/clear-all "Очистити все" + :notification/copied "Скопійовано" + + :onboarding.import/desc "Описание імпорта" + :onboarding.import/sqlite-desc "Імпорт из базы данных SQLite" + :onboarding.import/title "Імпорт" + + :onboarding.import-option/desc "Вы можете імпортировать данные из других приложений" + :onboarding.import-option/title "Імпорт данных" + + :onboarding.setup/desc "Робочий простір для ваших знань" + :onboarding.setup/title (fn [] ["Ласкаво просимо до " [:strong "Logseq!"]]) + + :page/add-to-favorites "Додати до обраного" + :page/added-tag-to-node "Додано тег \"{1}\" до \"{2}\"" + :page/backlinks "Зворотні посилання" + :page/clear "Очистити" + :page/clear-local-storage-desc "Це видалить незначні налаштування, як-от вибір темної/світлої теми." + :page/cleared "Очищено" + :page/contents "Зміст" + :page/convert-to-tag "Преобразовать в тег" + :page/copy-url "Скопіювати URL сторінки" + :page/create "Створити нову сторінку" + :page/created-at "Створенно у" + :page/current-graph-as-sqlite-db "поточний граф як базу даних SQLite" + :page/default-query-error "Помилка запиту за замовчуванням:" + :page/delete "Видалити сторінку" + :page/go-back-home "Повернутися на головну" + :page/hide-properties "Сховати властивості" + :page/local-storage "локальне сховище" + :page/logseq-is-having-a-problem "У Logseq виникла проблема. Щоб спробувати повернути його до робочого стану, виконайте такі безпечні кроки по порядку:" + :page/make-private "Зробити приватним" + :page/make-public "Зробіти загальнодоступним для публікації" + :page/moved-to-recycle "Вузол переміщено до Кошика" + :page/name "Назва сторінки" + :page/no-page-found-to-copy "Не знайдена сторінка для копирования" + :page/not-found "Сторінку не знайдено" + :page/not-found-desc "Ой! Сторінка, яку ви шукаєте, не існує." + :page/not-found-title "Сторінку не знайдено" + :page/not-found-warning "Сторінка не знайдена" + :page/open-all-graphs-desc "Ви також можете перейти до {{All graphs}}, щоб перемкнутися на інший граф." + :page/open-issue-desc "Якщо ці кроки з усунення несправностей не допомогли, будь ласка, {{open an issue}}." + :page/open-properties "Відкрити властивості" + :page/rebuild "Перебудувати" + :page/relaunch "Перезапустити" + :page/relaunch-desc "Закрити та відкрити застосунок знову." + :page/scheduled-and-deadline "Заплановано та Крайній термін" + :page/search-index "пошуковий індекс" + :page/send-db-for-debugging "Ви можете надіслати його на help@logseq.com для налагодження." + :page/something-went-wrong "Щось не так" + :page/step "Крок {1}" + :page/the-app "застосунок" + :page/try "Спробувати" + :page/unfavorite "Вилучити сторінку з обраного" + :page/unknown "Невідома сторінка" + :page/updated-at "Оновлено у" + + :page.convert/block-parent-not-page "Неможливо преобразовать блок. Родитель не является сторінокей." + :page.convert/cant-be-block "Сторінку \"{1}\" не можна перетворити на блок." + :page.convert/cant-be-block-has-children "Сторінку \"{1}\" не можна перетворити на блок, оскільки вона має дочірні сторінки." + :page.convert/cant-be-block-move-first "Сторінка \"{1}\" не може бути перетворена на блок, спочатку перемістіть її на іншу сторінку." + :page.convert/page-to-tag-action "Перетворити \"{1}\" на тег" + :page.convert/page-to-tag-built-in "Вбудованые сторінки не могут быть тегами" + :page.convert/page-to-tag-duplicate "Тег із назвою \"{1}\" вже існує." + :page.convert/page-to-tag-namespaced "Сторінки с пространством имён не могут быть тегами" + :page.convert/property-value-to-page "Неможливо преобразовать значение властивості в сторіноку." + :page.convert/tag-to-page-action "Преобразовать тег в сторіноку" + :page.convert/tag-to-page-built-in "Вбудованые теги не могут быть сторінками" + :page.convert/tag-to-page-confirm-desc "Перетворення теґа на сторінку також видалить його властивості та сам теґ з усіх вузлів, позначених ним. Продовжити?" + :page.convert/tag-to-page-duplicate "Сторінка з назвою \"{1}\" вже існує." + :page.convert/tag-to-page-has-children "Тег имеет дочірние элементы и не может быть преобразован" + + :page.delete/batch-confirm-title "Ви впевнені, що хочете видалити ці сторінки? Властивості й теги буде видалено назавжди, а сторінки буде переміщено до Кошика." + :page.delete/confirm-title "Ви впевнені, що хочете видалити цю сторінку?" + :page.delete/permanent-confirm-title "Ви впевнені, що хочете назавжди видалити цю сторінку?" + :page.delete/success "Сторінка \"{1}\" успішно видалена!" + :page.delete/total "Усього: {1}" + :page.delete/warning "Вміст цих сторінок було видалено, але його не вдалося видалити: {1}. Дивіться консоль javascript для отримання додаткової інформації." + + :page.validation/cant-set-built-in-tags "Нова сторінка не може встановити вбудовані теги: {1}" + :page.validation/duplicate "Інша сторінка під назвою \"{1}\" вже існує для тегів: {2}." + :page.validation/name-blank "Имя сторінки не может быть пустым." + :page.validation/name-no-hash "Имя сторінки не может содержать #" + :page.validation/name-no-slash "Имя сторінки не может содержать /." + :page.validation/parents-must-be-pages "Родители сторінок должны быть сторінками." + + :pdf/annotations-page "Сторінка анотацій" + :pdf/area-highlight-shortcut "Виділення області ({1})" + :pdf/auto-fit "Автопідгонка" + :pdf/auto-open-context-menu "Автоматически открывать контекстное меню" :pdf/copy-ref "Скопіювати посилання" :pdf/copy-text "Скопіювати текст" - :pdf/linked-ref "Зв'язані посилання" - :pdf/toggle-dashed "Пунктирний стиль для виділення області" - :pdf/hl-block-colored "Кольорова позначка для виділеного блоку" + :pdf/corrupted-file-error "Помилка: {1}\nЦей файл .pdf пошкоджений?\nБудь ласка, перевірте зовнішнім переглядачем PDF." :pdf/doc-metadata "Метадані документу" + :pdf/enter-to-search "Enter для пошуку" + :pdf/find-results "{1} з {2} збігів (\"{3}\")" + :pdf/generic-error "Помилка: {1}\n{2}\nБудь ласка, перевірте джерело файлу PDF." + :pdf/highlight-mode "Режим виділення" + :pdf/highlights "Виділення" + :pdf/hl-block-colored "Кольорова позначка для виділеного блоку" + :pdf/linked-ref "Зв'язані посилання" + :pdf/load-highlights-file-error "Помилка: не вдалося завантажити файл виділень: \"{1}\". \n{2}" + :pdf/missing-file-error "Помилка: {1}\n Це правильний шлях?" + :pdf/more-settings "Додаткові налаштування" + :pdf/no-outlines "Немає змісту" + :pdf/not-found "Не знайдено." + :pdf/open-in-app-window "Відкрити у вікні застосунку" + :pdf/open-in-external-window "Відкрити у зовнішньому вікні" + :pdf/outline "Зміст" + :pdf/page-label "Сторінка {1}" + :pdf/password-protected-desc "Цей документ захищений паролем. Будь ласка, введіть пароль:" + :pdf/password-required "Потрібен пароль" + :pdf/search "Пошук" + :pdf/search-placeholder "пошук" + :pdf/toggle-dashed "Пунктирний стиль для виділення області" + :pdf/viewer "переглядач PDF" + :pdf/zoom-in "Збільшити" + :pdf/zoom-out "Зменшити" - :updater/new-version-install "Нова версія була завантажена." - :updater/quit-and-install "Перезапустіть щоб встановити" + :plugin/all "Все" + :plugin/auto-update-check "Автоматически проверять обновления" + :plugin/auto-update-check-feedback "Автоперевірка оновлень: {1}!" + :plugin/check-all-updates "Перевірити всі оновлення" + :plugin/check-update "Перевірити оновлення" + :plugin/checked "Перевірено" + :plugin/checking-for-updates "Перевірка оновлень" + :plugin/contribute "✨ Написати і відправити новий плагін" + :plugin/custom-js-alert "Знайденно custom.js файл, це дозволенно до запуску? (Якщо ви не розумієте що знаходитья у файлі, це не рекомедовано до запуску, як може мати певні проблеми із безпекою.)" + :plugin/date-added "Дата доданоия" + :plugin/delete-alert "Ви впевнені, що хочете видалити плагін [{1}]?" + :plugin/disable-for-performance-feedback "Плагін {1} вимкнено." + :plugin/disable-now "Вимкнути зараз" + :plugin/disabled "Вимкнено" + :plugin/does-not-support-db "Не підтримує графи БД" + :plugin/downloads "Завантаження" + :plugin/empty "Нічого не знайдено." + :plugin/enabled "Ввімкнено" + :plugin/existed-package "Існуючий пакет плагінів ({1})." + :plugin/fatal-error "Критична помилка: {1}" + :plugin/found-n-updates "{1} оновлень знайдено" + :plugin/found-updates "Знайдены обновления" + :plugin/install "Встановити" + :plugin/install-error "Установка не вдалась: {1}\n{2}" + :plugin/installed "Встановленно" + :plugin/installed-plugin "Встановлений плагін: {1}" + :plugin/installing "Встановлення" + :plugin/invalid-github-repo-url "Недійсный URL репозитория GitHub" + :plugin/invalid-package "Недійсный пакет" + :plugin/invalid-plugins-edn "Недійсный plugins.edn" + :plugin/list-of-updates "Список оновлень" + :plugin/load-from-web-url "Загрузить по URL" + :plugin/load-plugin-indicator "Завантаження плагіна: {1}..." + :plugin/load-unpacked "Завантажити розпакований плагін" + :plugin/loading-indicator "Завантаження" + :plugin/malformed-plugins-edn "Некорректный plugins.edn" + :plugin/marketplace "Маркетплейс" + :plugin/new-registered "Новый плагін зарегистрирован" + :plugin/no-settings-schema "Немає схеми налаштувань!" + :plugin/not-installed "Не встановленно" + :plugin/open-logseq-dir "Відкрити папку Logseq" + :plugin/open-package "Відкрити пакунок" + :plugin/open-preferences "Відкрити налаштування" + :plugin/open-settings "Відкрити налаштування" + :plugin/perf-tip "Цей плагін {1} завантажується занадто довго, що впливає на час запуску застосунку та може спричинити збій завантаження інших плагінів." + :plugin/popular "Популярні" + :plugin/proxy-check-success "Успіхів! Статус {1} через {2}мс." + :plugin/readme-empty-warning "Немає содержимого README" + :plugin/refresh-lists "Оновити списки" + :plugin/reload "Перезавантажити" + :plugin/remote-error "Віддалена помилка: {1}" + :plugin/report-modal-desc "Якщо якийсь плагін недоступний або ви вважаєте, що він містить шкідливий код, надішліть електронний лист на {1}. Укажіть назву плагіна та URL його репозиторію GitHub. Команда Logseq зазвичай реагує протягом одного робочого дня." + :plugin/report-security "Сообщить о проблеме безопасности" + :plugin/restart "Перезапустити додаток" + :plugin/search-plugin "Шукати плагін" + :plugin/security-warning "Предупреждение безопасности" + :plugin/setting-not-handled "#Не оброблено# {1}" + :plugin/settings-schema-error "Помилка схеми налаштувань!" + :plugin/stars "Оцінка" + :plugin/supports-db "Поддержка БД" + :plugin/title "Назва ({1})" + :plugin/uninstall "Видалити" + :plugin/unpacked "Розпаковано" + :plugin/unpacked-tips "Виберіть директорію із плагінами" + :plugin/up-to-date "Оновлено {1}" + :plugin/update "Оновити" + :plugin/update-all-selected "Оновити усі вибраніе" + :plugin/update-all-success "Усі плагіны обновлены" + :plugin/update-available "Доступне оновлення" + :plugin/update-plugin "Оновити плагін: {1} - {2}" + :plugin/updates-downloading "Завантаження оновлень" + :plugin/updating "Оновлення" + + :plugin.install-from-file/menu-title "Встановити з plugins.edn" + :plugin.install-from-file/notice "Наступні плагіни замінять ці:" + :plugin.install-from-file/success "Всі плагіни встановлено!" + :plugin.install-from-file/title "Встановити плагіни з plugins.edn" + + :plugin.install-from-web-url/effect-label "ефект" + :plugin.install-from-web-url/repo-url-placeholder "URL репозиторію GitHub" + :plugin.install-from-web-url/supports-note "URL-адреси підтримують як репозиторії GitHub, так і локальні сервери розробки. (Приклади: {1}, {2})" + :plugin.install-from-web-url/theme-label "тема" + + :plugin.package-config/detach-desc "Видалення лише від'єднає плагін від Logseq і залишить вихідну теку без змін." + :plugin.package-config/parse-error "Не вдалося розібрати конфігурацію пакета плагіна." + :plugin.package-config/remove-error "Не вдалося видалити пошкоджений плагін." + :plugin.package-config/remove-external-success "Пошкоджений плагін видалено зі списку плагінів." + :plugin.package-config/remove-installed-success "Пошкоджений плагін \"{1}\" видалено." + + :plugin.proxy/direct "Пряме з'єднання" + :plugin.proxy/system "Система" + :plugin.proxy/test-url "Перевірити URL" + :plugin.proxy/testing "Тестування" + + :plugin.settings/edit-settings-json "Редагувати settings.json" + :plugin.settings/exit-code-mode "Вийти з режиму коду" + :plugin.settings/title "Налаштування плагінів" + + :plugin.themes/default-desc "Типова {1} тема Logseq." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} теми" + :plugin.themes/light-and-dark "світлі & темні теми" + + :profiler/input-fn-placeholder "введіть назву функції тут" + :profiler/unregister "Скасувати реєстрацію" + + :property/add-choice "Додати вариант" + :property/add-choices "Додати варианты" + :property/add-description "Додати опис" + :property/add-new "Додати властивість" + :property/add-or-change "Додати або змінити властивість" + :property/available-choices "Доступные варианты" + :property/change-tooltip "Змінити {1}" + :property/checkbox-state-mapping "Сопоставление состояний флажка" + :property/children-count "дітей ({1})" + :property/choices-count "{1} варіантів" + :property/choose-tag "Вибрати тег" + :property/choose-tags "Вибрати теги" + :property/clear-value "Очистити" + :property/configure "Налаштувати" + :property/convert-page-to-property "Перетворити \"{1}\" на властивість" + :property/create-error "Не удалось створити властивість." + :property/default-value "Значение по умолчанию" + :property/delete-from-node "Видалити из узла" + :property/delete-from-node-confirm "Видалити это властивість из узла?" + :property/delete-from-tag "Видалити из тега" + :property/delete-from-tag-confirm "Видалити это властивість из тега?" + :property/description-placeholder "Введіть описание" + :property/drag-to-reorder "Перетащите для изменения порядка" + :property/existing-values "Существующие значения" + :property/go-to-this-property "Перейти к сторіноке властивості" + :property/hidden-properties "Приховані властивості" + :property/hide-by-default "Скрывать по умолчанию" + :property/hide-choice-for-tag "Сховати вариант для тега" + :property/hide-empty-value "Сховати пустые значения" + :property/hide-for-tag "Сховати для #{1}" + :property/hide-hidden-choices "Сховати скрытые варианты" + :property/map-checked-to "Сопоставить отмеченное с" + :property/map-unchecked-to "Сопоставить неотмеченное с" + :property/more-settings "Дополнительные налаштування" + :property/multiple-values "Множественные значения" + :property/multiple-values-confirm "Увімкнути множественные значения?" + :property/name "Назва" + :property/name-placeholder "Имя властивості" + :property/nodes-with-property "Вузли з властивістю" + :property/overdue "Прострочено" + :property/private-built-in-not-usable "Приватное вбудованое властивість недоступно" + :property/select-choice "Вибрати вариант" + :property/select-property-placeholder "Оберіть властивість" + :property/select-type-placeholder "Оберіть тип властивості" + :property/self-reference "Самопосилання" + :property/set-default-choice "Встановити вариант по умолчанию" + :property/set-default-value "Задати значення за замовчуванням" + :property/set-icon "Встановити іконка" + :property/set-placeholder "Встановити {1}" + :property/set-property "Установити властивість" + :property/set-tags "Установити теги" + :property/set-value "Встановити значение" + :property/show-as-checkbox-on-node "Показати как флажок на узле" + :property/show-as-checkbox-on-tagged-nodes "Показати как флажок на узлах с тегом" + :property/show-hidden-choices "Показати скрытые варианты" + :property/skip-choosing-tag "Пропустить выбор тега" + :property/specify-node-tags "Указать теги узла" + :property/title-placeholder "Заголовок" + :property/type "Тип" + :property/type-change-warning "Зміна типу властивості очищає деякі конфігурації властивості." + :property/type-checkbox "Прапорець" + :property/type-date "Дата" + :property/type-datetime "Дата/Время" + :property/type-locked-help "Тип заблокирован" + :property/type-node "Вузол" + :property/type-number "Число" + :property/type-text "Текст" + :property/type-url "URL" + :property/ui-position "Позиция в UI" + :property/ui-position-block-below "Под блоком" + :property/ui-position-block-left "Слева от блока" + :property/ui-position-block-right "Справа от блока" + :property/ui-position-properties "Властивості" + :property/unset-property "Прибрати властивість" + :property/update-success "Обновлено" + + :property.built-in/alias "Псевдонім" + :property.built-in/asset "Ресурс" + :property.built-in/asset-align "Вирівнювання ресурсу" + :property.built-in/asset-checksum "Контрольна сума файлу" + :property.built-in/asset-external-file-name "Зовнішнє ім'я файлу" + :property.built-in/asset-external-url "Зовнішнє URL" + :property.built-in/asset-height "Висота зображення" + :property.built-in/asset-last-visit-page "Остання відвідана сторінка" + :property.built-in/asset-remote-metadata "Віддалені метадані файлу" + :property.built-in/asset-resize-metadata "Метадані зміни розміру ресурсу" + :property.built-in/asset-size "Розмір файлу" + :property.built-in/asset-type "Тип файлу" + :property.built-in/asset-width "Ширина зображення" + :property.built-in/background-color "Колір тла" + :property.built-in/built-in "Вбудований?" + :property.built-in/checkbox-display-properties "Властивості, що відображаються як прапорець" + :property.built-in/choice-checkbox-state "Стан прапорця варіанту" + :property.built-in/choice-classes "Класи варіантів" + :property.built-in/choice-exclusions "Виключення варіантів" + :property.built-in/class-bidirectional-property-title "Назва двонапрямленої властивості" + :property.built-in/class-enable-bidirectional "Увімкнути двонапрямлені властивості" + :property.built-in/class-extends "Розширює" + :property.built-in/class-hide-from-node "Приховати від вузла" + :property.built-in/class-properties "Властивості тегу" + :property.built-in/classes "Класи властивості" + :property.built-in/closed-value-property "Властивість із закритим значенням" + :property.built-in/code-lang "Режим коду" + :property.built-in/collapsed "Вузол згорнутий?" + :property.built-in/created-at "Вузол створено" + :property.built-in/created-by-ref "Вузол створив" + :property.built-in/created-from-property "Створено з властивості" + :property.built-in/deadline "Крайній термін" + :property.built-in/default-value "Значення за замовчуванням" + :property.built-in/deleted-at "Видалено" + :property.built-in/deleted-by-ref "Видалив" + :property.built-in/description "Опис" + :property.built-in/enable-history "Увімкнути історію властивості" + :property.built-in/exclude-from-graph-view "Виключити з перегляду графа?" + :property.built-in/fsrs-due "Термін" + :property.built-in/fsrs-state "Стан" + :property.built-in/heading "Заголовок" + :property.built-in/hide "Приховати цю властивість або сторінку" + :property.built-in/hide-empty-value "Приховати порожнє значення" + :property.built-in/history-block "Блок історії" + :property.built-in/history-property "Властивість історії" + :property.built-in/history-ref-value "Значення історії" + :property.built-in/history-scalar-value "Скалярне значення історії" + :property.built-in/icon "Іконка" + :property.built-in/journal-day "Дата журналу" + :property.built-in/journal-title-format "Формат назви" + :property.built-in/link "Вузол посилається на" + :property.built-in/linked-references-excludes "Виключені посилання" + :property.built-in/linked-references-includes "Включені посилання" + :property.built-in/ls-type "Тип LS" + :property.built-in/node-display-type "Тип відображення вузла" + :property.built-in/order "Порядок вузла" + :property.built-in/order-list-type "Тип списку" + :property.built-in/page "Сторінка вузла" + :property.built-in/page-tags "Теги сторінки" + :property.built-in/parent "Батьківський вузол" + :property.built-in/priority "Пріоритет" + :property.built-in/public "Властивість публічна?" + :property.built-in/publish-published-url "Опубліковане URL" + :property.built-in/publishing-public "Публікація публічна?" + :property.built-in/query "Запит" + :property.built-in/reaction-emoji-id "Емодзі реакції" + :property.built-in/reaction-target "Ціль реакції" + :property.built-in/recycle-original-order "Початковий порядок у кошику" + :property.built-in/recycle-original-page "Початкова сторінка у кошику" + :property.built-in/recycle-original-parent "Початковий батько у кошику" + :property.built-in/refs "Посилання вузла" + :property.built-in/repeat-checked-property "Повторювана перевірена властивість" + :property.built-in/repeat-recur-frequency "Частота повторення" + :property.built-in/repeat-recur-unit "Одиниця повторення" + :property.built-in/repeat-repeated "Вузол повторюється?" + :property.built-in/repeat-temporal-property "Повторювана часова властивість" + :property.built-in/scalar-default-value "Значення за замовчуванням для нереферентного типу" + :property.built-in/scheduled "Заплановано" + :property.built-in/status "Статус" + :property.built-in/sync-large-title-object "Посилання на великий заголовок блоку у віддаленому сховищі об'єктів" + :property.built-in/table-filters "Фільтри перегляду" + :property.built-in/table-hidden-columns "Приховані стовпці перегляду" + :property.built-in/table-ordered-columns "Впорядковані стовпці перегляду" + :property.built-in/table-pinned-columns "Закріплені стовпці табличного перегляду" + :property.built-in/table-sized-columns "Налаштування стовпців перегляду" + :property.built-in/table-sorting "Сортування перегляду" + :property.built-in/tags "Теги" + :property.built-in/template-applied-to "Застосувати шаблон до тегів" + :property.built-in/title "Назва вузла" + :property.built-in/type "Тип властивості" + :property.built-in/ui-position "Позиція властивості" + :property.built-in/updated-at "Вузол оновлено" + :property.built-in/used-template "Використаний шаблон" + :property.built-in/user-avatar "Аватар користувача" + :property.built-in/user-email "Електронна пошта користувача" + :property.built-in/user-name "Ім'я користувача" + :property.built-in/value "Значення властивості" + :property.built-in/view-context "Контекст перегляду властивості" + :property.built-in/view-feature-type "Тип функції перегляду" + :property.built-in/view-for "Цей перегляд належить до" + :property.built-in/view-group-by-property "Групувати перегляд за властивістю" + :property.built-in/view-sort-groups-by-property "Сортувати групи перегляду за" + :property.built-in/view-sort-groups-desc "Сортувати групи перегляду за спаданням" + :property.built-in/view-type "Тип перегляду" + + :property.choice/already-exists "Вариант уже существует." + :property.choice/cant-delete-built-in "Вбудованый вариант нельзя видалити." + :property.choice/invalid "Недійсний вибір \"{1}\" для цієї властивості: {2}" + + :property.color/blue "синій" + :property.color/green "зелений" + :property.color/purple "фіолетовий" + :property.color/red "червоний" + :property.color/yellow "жовтий" + + :property.priority/high "Високий" + :property.priority/low "Низький" + :property.priority/medium "Середній" + :property.priority/urgent "Терміновий" + + :property.repeat/date "Дата повторення" + :property.repeat/datetime "Дата й час повторення" + :property.repeat/every "Кожні" + :property.repeat/is-label "є:" + :property.repeat/task "Повторюване завдання" + :property.repeat/when "Коли" + + :property.repeat-recur-unit/day "День" + :property.repeat-recur-unit/hour "Година" + :property.repeat-recur-unit/minute "Хвилина" + :property.repeat-recur-unit/month "Місяць" + :property.repeat-recur-unit/week "Тиждень" + :property.repeat-recur-unit/year "Рік" + + :property.status/backlog "Беклог" + :property.status/canceled "Скасовано" + :property.status/doing "Виконується" + :property.status/done "Виконано" + :property.status/in-review "На перевірці" + :property.status/todo "До виконання" + + :property.validation/cant-convert-to-number "Не вдається перетворити \"{1}\" на число." + :property.validation/cant-remove-required "Обов'язковое властивість нельзя видалити." + :property.validation/cant-set-self-value "Нельзя встановити как собственное значение властивості." + :property.validation/duplicate "Властивість '{1}' уже существует." + :property.validation/invalid-name "Це недійсна назва властивості. Назва властивості не може починатися з символів посилання на сторінку \"#\" або \"[[\"." + :property.validation/invalid-value "Властивість \"{1}\" має недійсне значення: {2}" + :property.validation/many-to-one "Неможливо преобразовать властивість с множественными значениями в единственное." + :property.validation/protected "Это властивість защищено и не может быть изменено." + + :property.view-type/gallery "Перегляд галереєю" + :property.view-type/list "Перегляд списком" + :property.view-type/table "Перегляд таблицею" + + :publish/action "Опублікувати" + :publish/dialog-desc "За бажанням захистіть цю сторінку паролем. Залиште порожнім для публічного доступу." + :publish/dialog-title "Публікація сторінки" + :publish/invalid-page-error "Недійсная сторінка" + :publish/password-optional-placeholder "Пароль (необов'язково)" + :publish/publish-error "Помилка публикации" + :publish/published-to "Опубликовано в {1}" + :publish/publishing "Публікація..." + :publish/unpublish "Зняти з публікації" + :publish/unpublish-error "Не удалось снять публикацию" + :publish/unpublish-missing-page-id "Снять публикацию: отсутствует ID сторінки" + :publish/unpublished "Публикация снята" + + :query/advanced-results "Результати розширеного запиту" + :query/custom-view-error "Помилка користувацького перегляду: {1}" + :query/error "Помилка запиту:" + :query/examples-desc "Більше прикладів дивіться у {{Queries documentation}}." + :query/examples-title "Приклади запитів:" + :query/results-for "Результати для {1}" + + :query.builder/add-filter-or-operator-placeholder "Додати фільтр/оператор" + :query.builder/between-end-label "Кінцева дата" + :query.builder/between-journal-label "між: {1} ~ {2}" + :query.builder/between-start-label "Початкова дата" + :query.builder/created-label "Створено" + :query.builder/filter "Фільтр" + :query.builder/filter-full-text-search-label "Повнотекстовий пошук" + :query.builder/filter-page-label "Сторінка" + :query.builder/filter-page-reference-label "Посилання на сторінку" + :query.builder/filter-sample-label "Приклад" + :query.builder/operator-and-label "і" + :query.builder/operator-not-label "не" + :query.builder/replace-with-label "Замінити на:" + :query.builder/search-label "Пошук: {1}" + :query.builder/show-built-in-properties "Показувати вбудовані властивості" + :query.builder/unwrap-operator "Розгорнути" + :query.builder/updated-label "Оновлено" + :query.builder/wrap-filter-with-label "Обгорнути цей фільтр:" + + :reference/blocks "Посилання на блоки" + :reference/copy "Копіювати це посилання" + :reference/delete "Видалити це посилання" + :reference/page-filter "Фільтр сторінок" + :reference/replace-with-embed "Замінити вбудованим" + :reference/replace-with-text "Замінити текстом" + + :reference.filter/directions "Направления фільтра" + :reference.filter/excludes "Виключення" + :reference.filter/includes "Включення" + :reference.filter/search-placeholder "Пошук на пов’язаних сторінках" + :reference.filter/title "Фільтр" + + :search/blank-input "Порожнє введення" + :search/full-text-placeholder "Повнотекстовий пошук" + :search/index-progress "Індексація {1}%" + :search/indices-rebuilt-success "Індекси пошуку успішно перебудовані!" + :search/no-result "Немає результатів" + :search/result-count "{1} результатів" + + :search.find-in-page/input-placeholder "Знайти на сторінці" + :search.find-in-page/match-case "З урахуванням регістру" + :search.find-in-page/next-result "Наступний результат" + :search.find-in-page/previous-result "Попередній результат" :select/default-prompt "Виберіть один" :select/default-select-multiple "Виберіть один або кілька" - :select.graph/prompt "Виберіть графік" - :select.graph/empty-placeholder-description "Не знайденно графіків. Чи бажаєте додати один?" - :select.graph/add-graph "Так, додати інший графік" + :select/new-option "+ Нова опція: {1}" - :notification/clear-all "Очистити все" + :server/error-notification "[Сервер] {1}" + :server/mcp-url-copied "URL MCP скопирован" + :server/start "Запустити" + :server/stop "Зупинити" + :server/title "HTTP API сервер" - :shortcut.category/formatting "Форматування" - :shortcut.category/basics "Основи" - :shortcut.category/navigating "Навігація" - :shortcut.category/block-editing "Загальне редагування блоку" - :shortcut.category/block-command-editing "Редагування команди блоку" - :shortcut.category/block-selection "Вибір блоку (натисніть Esc щоб вийти із вибірки)" - :shortcut.category/toggle "Перемкнути" - :shortcut.category/others "Інші" - :command.pdf/previous-page "PDF: Попередня сторінка поточного документа PDF" - :command.pdf/next-page "PDF: Наступна сторінка поточного документа PDF" - :command.pdf/close "PDF: Закрити поточний документ PDF" - :command.pdf/find "PDF: Пошук тексту в поточному pdf-документі" - :command.auto-complete/complete "Автозаповнення: підтвердити вибраний елемент" - :command.auto-complete/prev "Автозаповнення: попередній елемент" - :command.auto-complete/next "Автозаповнення: наступний елемент" - :command.auto-complete/shift-complete "Автозаповнення: відкрити вибраний елемент на бічній панелі" - :command.cards/toggle-answers "Вкладки: Показати/Сховати відповіді" - :command.editor/escape-editing "Скасувати редагування" - :command.editor/backspace "Видалити в зворотному напрямку" - :command.editor/delete "Видалити" - :command.editor/new-block "Створити новоий блок" - :command.editor/new-line "Новий рядок у поточному блоці" - :command.editor/follow-link "Перейдіть за посиланням" - :command.editor/open-link-in-sidebar "Відкрити посилання на бічній панелі" - :command.editor/bold "Жирний" - :command.editor/italics "Курсив" - :command.editor/highlight "Виділення" - :command.editor/strike-through "Закреслений" - :command.editor/clear-block "Видалити весь вміст блоку" - :command.editor/kill-line-before "Видалити рядок перед позицією курсору" - :command.editor/copy-embed "Скопіювати вставлений блок, вказуючи на поточний блок" - :command.editor/kill-line-after "Видалити рядок після позиції курсора" - :command.editor/beginning-of-block "Перемістіть курсор на початок блоку" - :command.editor/end-of-block "Перемістіть курсор у кінець блоку" - :command.editor/forward-word "Перемістіть курсор на одне слово вперед" - :command.editor/backward-word "Перемістіть курсор на одне слово назад" - :command.editor/forward-kill-word "Видалити слово вперед" - :command.editor/backward-kill-word "Видалити слово назад" - :command.editor/paste-text-in-one-block-at-point "Вставити текст в один блок за точкою" - :command.editor/insert-youtube-timestamp "Вставити мітку часу YouTube" - :command.editor/cycle-todo "Змінити статус TODO для поточного елемента" - :command.editor/up "Перемістити курсор вгору/Вибрати вгору" - :command.editor/down "Перемістіть курсор вниз/Виберіть вниз" - :command.editor/left "Перемістити курсор ліворуч/Відкрити виділений блок на початку" - :command.editor/right "Перемістити курсор вправо/Відкрити вибраний блок у кінці" - :command.editor/select-up "Вибрати вміст вище" - :command.editor/select-down "Вибрати вміст нище" - :command.editor/move-block-up "Перемістити блок нагору" - :command.editor/move-block-down "Перемістити блок вниз" - :command.editor/open-edit "Редагувати виділений блок" - :command.editor/select-block-up "Вибрати блок вище" - :command.editor/select-block-down "Вибрати блок нище" - :command.editor/delete-selection "Видалити вибрані блоки" - :command.editor/expand-block-children "Розкрити" - :command.editor/collapse-block-children "Сховати" - :command.editor/indent "Зсув блоку" - :command.editor/outdent "Скасувати зсув блоку" - :command.editor/copy "Копіювати (копіює виділення або посилання на блок)" - :command.editor/copy-text "Копіювати виділення як текст" - :command.editor/cut "Вирізати" - :command.editor/undo "Скасувати зміни" - :command.editor/redo "Повторити" - :command.editor/insert-link "HTML посилання" - :command.editor/select-all-blocks "Вибрати всі блоки" - :command.editor/select-parent "Вибрати батьківський блок" - :command.editor/zoom-in "Збільшити" - :command.editor/zoom-out "Зменшити" - :command.editor/toggle-number-list "Переключити номерний список" - :command.ui/toggle-brackets "Показати/Сховати квадратні дужки" - :command.go/electron-find-in-page "Знайти текст на сторінці" - :command.go/electron-jump-to-the-next "Шукати далі" - :command.go/electron-jump-to-the-previous "Шукати назад" - :command.go/search "Пошук сторінок і блоків" - :command.go/journals "Перейти до журналів" - :command.go/backward "Назад" - :command.go/forward "Вперед" - :command.search/re-index "Оновити індекс пошуку" - :command.sidebar/open-today-page "Відкрити сторінку сьогоднішнього дня на правій бічній панелі" - :command.sidebar/close-top "Закрити верхній елемент на правій бічній панелі" - :command.sidebar/clear "Очистити усе на правій бічній панелі" - :command.misc/copy "Копіювати" - :command.graph/export-as-html "Експортувати загальнодоступні сторінки графіків у форматі HTML" - :command.graph/open "Виберіть графік, яку потрібно відкрити" - :command.graph/remove "Видалити графік" - :command.graph/add "Додати графік" - :command.command/run "Виконати команду GIT" - :command.go/home "Перейти на головну сторінку" - :command.go/all-graphs "Перейти до всіх діаграм" - :command.go/all-pages "Перейти на всі сторінки" - :command.go/graph-view "Перейти до перегляду графіка" - :command.go/keyboard-shortcuts "Перейти до комбінацій клавіш" - :command.go/tomorrow "Перейти до завтрашнього щоденника" - :command.go/next-journal "Перейти до наступного журналу" - :command.go/prev-journal "Перейти до попереднього журналу" - :command.go/flashcards "Показати/Сховати картки" - :command.ui/toggle-document-mode "Показати/Сховати режим документа" - :command.ui/toggle-settings "Налаштування перемикача" - :command.ui/toggle-right-sidebar "Показати/Сховати праву бічну панель" - :command.ui/toggle-left-sidebar "Показати/Сховати ліву бічну панель" - :command.ui/toggle-help "Показати/Сховати помічника" - :command.ui/toggle-theme "Перемикання між темною та світлою темою" - :command.ui/toggle-contents "Показати/Приховати вміст бічної панелі" - ;; :command.ui/open-new-window "Відкрити інше вікно" - :command.command/toggle-favorite "Додати/Видалити з вибраного" - :command.editor/copy-page-url "Копіювати URL-адресу сторінки" - :command.ui/toggle-wide-mode "Перейти у ширококутний режим" - :command.ui/select-theme-color "Вибрати доступні кольори теми" - :command.ui/goto-plugins "Перейти до списку плагінів" - :command.ui/install-plugins-from-file "Встановити плагіни з plugins.edn" - :command.editor/toggle-open-blocks "Згорнути/Розгорнути всі блоки" - :command.ui/clear-all-notifications "Очистити всі сповіщення" - :command.dev/show-block-ast "(Dev) Показати блок AST" - :command.dev/show-block-data "(Dev) Показати дані блоку" - :command.dev/show-page-data "(Dev) Показати дані сторінки"} + :server.config/auto-start-label "Запускать автоматически" + :server.config/port-label "Диапазон портов" + :server.config/reset "Скинути" + :server.config/save-and-apply "Зберегти и застосувати" + :server.config/title "Налаштування сервера" + + :server.status/closed "Закрыт" + :server.status/closing "Закрытие" + :server.status/error "Помилка" + :server.status/running "Запущен" + :server.status/starting "Запуск" + :server.status/stopped "Остановлен" + + :server.token/add-new "Додати новый токен" + :server.token/name-placeholder "Имя сервера" + :server.token/regenerate-value "Перестворити значение токена" + :server.token/title "Токены авторизации" + :server.token/update-success "Токены обновлены" + :server.token/value-placeholder "Значение" + + :settings/account "Обліковий запис" + :settings/advanced "Розширення" + :settings/ai "ШІ" + :settings/collaboration "Спільна робота" + :settings/editor "Редактор" + :settings/encryption "Шифрування" + :settings/features "Функції" + :settings/general "Загальні" + :settings/keymap "Гарячі клавіші" + :settings/plugins "Налаштування плагінів" + + :settings.account/storage-usage "{1}GB із {2}GB загального обсягу пам’яті ({3})" + :settings.account/synced-graphs "{1} з {2} синхронізованих графіків ({3})" + + :settings.advanced/auto-chmod "Авто chmod" + :settings.advanced/auto-chmod-desc "Автоматически устанавливать права файлов" + :settings.advanced/auto-updater "Авто-оновлювач" + :settings.advanced/developer-mode "Режим розробника" + :settings.advanced/developer-mode-desc "Режим розробника допомагає учасникам і розробникам розширень ефективніше тестувати свою інтеграцію з Logseq." + :settings.advanced/disable-sentry "Надсилати дані про використання та діагностику в Logseq" + :settings.advanced/disable-sentry-desc "Logseq ніколи не збиратиме вашу локальну базу даних графів і не відправлятиме ваші дані." + :settings.advanced/network-proxy "Мережевий проксі" + + :settings.ai/enable-mcp-server "Увімкнути сервер MCP" + :settings.ai/enable-mcp-server-desc "Увімкнути сервер MCP для интеграции с ИИ" + + :settings.editor/auto-expand-block-refs "Автораскрытие ссылок на блоки" + :settings.editor/auto-expand-block-refs-tip "Автоматически раскрывать ссылки на блоки при нажатии" + :settings.editor/custom-date-format "Бажаний формат дати" + :settings.editor/enable-all-pages-public "Усі сторінки є відкритими під час публікації" + :settings.editor/enable-shortcut-tooltip "Увімкнути спливаючу підказку" + :settings.editor/enable-tooltip "Увімкнути підказки" + :settings.editor/preferred-outdenting "Логічне видалення відступів" + :settings.editor/preferred-outdenting-tip "Подсказка по отступам" + :settings.editor/preferred-outdenting-tip-more "→ Подробнее об отступах" + :settings.editor/preferred-pasting-file "Віддавати перевагу вставці файлу" + :settings.editor/preferred-pasting-file-hint "Подсказка по вставке файлов" + :settings.editor/show-brackets "Показати дужки" + :settings.editor/show-full-blocks "Показати всі рядки посилання на блок" + :settings.editor/spell-checker "Перевірка правопису" + :settings.editor/wide-mode "Широкий режим" + + :settings.features/enable-flashcards "Увімкнути картки" + :settings.features/enable-journals "Журнали" + :settings.features/home-default-page "Встановити домашню сторінку за умовчанням" + :settings.features/home-default-page-update-success "Домашняя сторінка обновлена" + :settings.features/journals-enable-success "Щоденники увімкнено" + :settings.features/login-prompt "Щоб отримати доступ до нових функцій раніше за інших, ви повинні бути відкритим колективним спонсором або спонсором Logseq і, отже, спершу увійти." + :settings.features/page-not-found "Сторінка \"{1}\" ще не існує. Спочатку створіть цю сторінку, а потім повторіть спробу." + :settings.features/plugin-system "Система плагінів" + + :settings.general/accent-color "Акцентний колір" + :settings.general/accent-color-alert "Предупреждение о цвете" + :settings.general/accent-color-logseq "Класичний колір Logseq" + :settings.general/accent-color-none-desc "Скасувати колір акценту. Зараз це знаходиться на бета-стадії і переважно використовується для сумісності з користувацькими темами." + :settings.general/changelog "Журнал змін" + :settings.general/check-for-updates "Перевірити оновлення" + :settings.general/current-revision-label "Текущая ревизия" + :settings.general/current-version "Поточна версія" + :settings.general/custom-configuration "Користувацька конфігурація" + :settings.general/custom-global-configuration "Користувацька глобальна конфігурація" + :settings.general/custom-theme "Користувацька тема" + :settings.general/edit-config-edn "Редагувати config.edn" + :settings.general/edit-custom-css "Редагувати custom.css" + :settings.general/edit-export-css "Редагувати export.css" + :settings.general/edit-global-config-edn "Редагувати глобальний config.edn" + :settings.general/editor-font "Шрифт редактора" + :settings.general/editor-font-set-global "Встановити як глобальний шрифт" + :settings.general/export-theme "Експортувати тему" + :settings.general/language "Мова" + :settings.general/native-titlebar "Нативный заголовок окна" + :settings.general/native-titlebar-desc "Використовать нативный заголовок окна системы" + :settings.general/refresh-required-feedback "Требуется оновлення" + :settings.general/release-channel "канал релізів" + :settings.general/revision "Ревізія: {1}" + :settings.general/theme-dark "Темна" + :settings.general/theme-light "Світла" + :settings.general/theme-system "Системна" + + :settings.sync-server/clear-success "URL сервера синхронізації очищено. Буде використано офіційний Logseq Sync." + :settings.sync-server/reset "Скинути по умолчанию" + :settings.sync-server/save-success "URL сервера синхронізації збережено." + :settings.sync-server/url "URL сервера синхронізації" + :settings.sync-server/url-desc "Налаштуйте власний HTTPS URL сервера синхронізації для self-hosted режиму. Ваші токени автентифікації Logseq будуть надсилатися на цей сервер, тож використовуйте лише довірений URL. Залиште порожнім, щоб використовувати офіційний Logseq Sync." + :settings.sync-server/url-invalid-error "URL має починатися з https:// або http://" + + :shell/input-command-title "Введіть команду" + + :shortcut.category/basics "Основи" + :shortcut.category/block-command-editing "Редагування команди блоку" + :shortcut.category/block-editing "Загальне редагування блоку" + :shortcut.category/block-selection "Вибір блоку (натисніть Esc щоб вийти із вибірки)" + :shortcut.category/formatting "Форматування" + :shortcut.category/navigating "Навігація" + :shortcut.category/others "Інші" + :shortcut.category/plugins "Плагіни" + :shortcut.category/toggle "Перемкнути" + + :sidebar.left/favorites "Обране" + :sidebar.left/navigations "Навігація" + :sidebar.left/recent-pages "Останні" + + :sidebar.right/close "Закрити панель" + :sidebar.right/close-all "Закрити всі панелі" + :sidebar.right/close-others "Закрити інші панелі" + :sidebar.right/collapse "Згорнути панель" + :sidebar.right/collapse-all "Згорнути всі панелі" + :sidebar.right/collapse-others "Згорнути інші панелі" + :sidebar.right/expand "Розгорнути панель" + :sidebar.right/expand-all "Розгорнути всі панелі" + :sidebar.right/more "Ще" + :sidebar.right/open "Відкрити у боковій панелі" + :sidebar.right/open-as-page "Відкрити як сторінку" + :sidebar.right/resize-handle "Обробник зміни розміру правої бічної панелі" + :sidebar.right/toggle "Перемкнути праву панель" + + :storage/invalid-data-writing "Недійсная запись данных." + :storage/sqlitedb-error "Помилка SQLiteDB: {1}" + :storage/sqlitedb-import-error "Помилка імпорту SQLiteDB: {1}" + :storage/sqlitedb-save-error "Помилка збереження SQLiteDB: {1}" + + :storage.recycle/block-deleted-at "Блок видалено {1}" + :storage.recycle/empty "Кошик порожній." + :storage.recycle/page-deleted-at "Сторінку видалено {1}" + :storage.recycle/readonly "Корзина (тільки чтение)" + :storage.recycle/restore "Відновити" + :storage.recycle/retention-desc "Видалені сторінки та блоки залишаються тут, доки їх не буде відновлено або автоматично очищено через 30 днів." + :storage.recycle/title "Кошик" + + :sync/assets-downloading-count "Завантаження активів ({1})" + :sync/assets-uploading-count "Завантаження активів ({1})" + :sync/creating-remote-graph "Створення віддаленого графа..." + :sync/downloading "Завантаження..." + :sync/downloading-graph "Завантаження {1} ..." + :sync/graph-count-exceed-limit "Превышен лимит количества графов" + :sync/invitation-sent "Приглашение отправлено" + :sync/last-synced-time-label "Час останньої синхронізації: {1}" + :sync/more-debug-info "Більше налагоджувальної інформації" + :sync/offline "Офлайн" + :sync/online "Онлайн" + :sync/pending-local-changes "очікуючі локальні зміни" + :sync/pending-server-changes "очікуючі зміни сервера" + :sync/something-wrong "Помилка синхронизации" + :sync/start-sync "Запустити синхронізацію" + :sync/storage-exceed-limit "Превышен лимит хранилища" + :sync/uploading "Надсилання..." + :sync/user-doesnt-exist-yet "Пользователь ещё не существует" + + :theme/logseq-default "Типова тема Logseq" + :theme/switch-to "Перейти на тему {1}" + + :ui/all-done "Все готово" + :ui/apply "Застосувати" + :ui/cancel "Скасувати" + :ui/close "Закрити" + :ui/configure "Налаштувати" + :ui/confirm "Підтвердити" + :ui/copy "Копіювати" + :ui/copy-all "Скопіювати все" + :ui/copy-to-clipboard "Копіювати до буфера обміну" + :ui/create "Створити" + :ui/date-natural-language-placeholder "напр. Наступного тижня" + :ui/delete "Видалити" + :ui/deleted "Видалено" + :ui/dont-remind-me-again "Більше не нагадувати" + :ui/empty "Порожньо" + :ui/error "Помилка" + :ui/error-boundary-error "Помилка перехоплена інтерфейсом!\n {1}" + :ui/export "Експорт" + :ui/false "Хибно" + :ui/fix "Виправити!" + :ui/frequently-used "Часто використовувані" + :ui/from "Від: " + :ui/host "Хост" + :ui/image "зображення" + :ui/label "Мітка" + :ui/link "Посилання" + :ui/load-more "Завантажити ще" + :ui/loading "Завантаження" + :ui/login "Увійти" + :ui/logout "Вийти" + :ui/off "Вимкнено" + :ui/on "Увімкнено" + :ui/open "Відкрити" + :ui/open-named "Відкрити {1}" + :ui/port "Порт" + :ui/refresh "Оновити" + :ui/relaunch-confirm "Щоб застосувати цю зміну, потрібно перезапустити застосунок. Перезапустити зараз?" + :ui/remove-background "Видалити фон" + :ui/reset "Скинути" + :ui/run "Запустити" + :ui/save "Зберегти" + :ui/show-less "Показати менше" + :ui/show-more "Показати більше" + :ui/skip "Пропустити" + :ui/submit "Надіслати" + :ui/to "До: " + :ui/toggle-theme "Перемкнути тему" + :ui/true "Істинно" + :ui/type "Тип" + :ui/untitled "Без назви" + :ui/use-current-time "Використати поточний час" + :ui/yes "Так" + + :updater/checking-for-updates "Перевірка оновлень" + :updater/downloading-progress "Завантаження оновлення ({1}%)" + :updater/quit-and-install "Перезапустити й встановити" + :updater/up-to-date "Приложение оновлено 🎉" + :updater/update-available "Доступне оновлення" + :updater/update-error "⚠️ Упс, щось пішло не так!\nБудь ласка, перевірте {1}." + :updater/update-ready-to-install "Оновлення готове до встановлення" + + :view/add-new-view "Додати представление" + :view/all "Все" + :view/export-edn "Експортировать EDN" + :view/linked-references "Зв'язані посилання" + :view/new "Новий" + :view/new-property "Новое властивість" + :view/new-view "Новое представление" + :view/rename "Перейменувати" + :view/results "Результати:" + :view/unlinked-references "Незв'язані посилання" + + :view.filter/custom-date "Пользовательская дата" + :view.filter/empty "Порожньо" + :view.filter/filter "Фільтр" + :view.filter/from "От" + :view.filter/is-empty "Порожньо" + :view.filter/is-not-empty "Не порожньо" + :view.filter/match "Совпадение" + :view.filter/match-all-filters "Соответствовать всем фільтрам" + :view.filter/match-any-filter "Соответствовать любому фільтру" + :view.filter/operator-after "После" + :view.filter/operator-before "До" + :view.filter/operator-between "Между" + :view.filter/operator-date-after "Дата после" + :view.filter/operator-date-before "Дата до" + :view.filter/operator-is "Равно" + :view.filter/operator-is-not "Не равно" + :view.filter/operator-text-contains "Текст содержит" + :view.filter/operator-text-not-contains "Текст не содержит" + :view.filter/or "Или" + :view.filter/relative-1-day-ago "1 день назад" + :view.filter/relative-1-month-ago "1 месяц назад" + :view.filter/relative-1-week-ago "1 неделю назад" + :view.filter/relative-1-year-ago "1 год назад" + :view.filter/relative-3-days-ago "3 дня назад" + :view.filter/relative-3-months-ago "3 месяца назад" + :view.filter/to "До" + :view.filter/type-to-search "Введіть для пошука" + + :view.table/ascending "По возрастанию" + :view.table/columns-visibility "Видимость столбцов" + :view.table/default-title "{1} узлов" + :view.table/delete-sort "Видалити сортування" + :view.table/descending "По убыванию" + :view.table/drag-to-reorder "Перетащите для изменения порядка" + :view.table/group-by "Группировать по" + :view.table/group-journal-date "Дата журналу" + :view.table/group-page-created-date "Дата створення сторінки" + :view.table/group-page-name "Назва сторінки" + :view.table/group-page-updated-date "Дата оновлення сторінки" + :view.table/live-query-title "Живой запрос ({1})" + :view.table/name-column "Имя" + :view.table/no-group-value "Немає {1}" + :view.table/page "Сторінка" + :view.table/pages "Сторінки" + :view.table/pin "Закрепить" + :view.table/row-number "Номер строки" + :view.table/select-all "Вибрати всё" + :view.table/select-column "Вибрати столбец" + :view.table/select-order "Вибрати порядок" + :view.table/select-row "Вибрати строку" + :view.table/selected-count "Вибрано: {1}" + :view.table/sort-ascending "По возрастанию" + :view.table/sort-descending "По убыванию" + :view.table/sort-groups-by "Сортировать группы по" + :view.table/sort-groups-order "Порядок групп" + :view.table/total-refs-count "Всего ссылок" + :view.table/unpin "Открепить" + + :window/close "Закрити вікно" + :window/exit-fullscreen "Вийти з повноекранного режиму" + :window/maximize "Розгорнути" + :window/minimize "Згорнути" + :window/restore "Відновити" + + :youtube/embed-first-reminder-mobile "Спочатку вбудуйте відео YouTube, а потім використовуйте цей значок.\nПам'ятайте: ви можете вставити сиру URL-адресу YouTube як вбудоване відео на мобільному пристрої." + :youtube/player-not-ready "Програвач YouTube ще не готовий." + :youtube/timestamps-not-available-mobile "Часові мітки YouTube ще недоступні на мобільних пристроях." + + :zotero/attachments "Вкладення" + :zotero/imported-file-warning "Це імпортований файл Zotero, укажіть каталог даних Zotero, щоб відкрити файл у Logseq." + :zotero/linked-file-warning "Це пов’язаний файл Zotero, укажіть базовий каталог пов’язаних вкладень Zotero, щоб відкрити файл у Logseq." + :zotero/notes "Нотатки" +} diff --git a/src/resources/dicts/zh-cn.edn b/src/resources/dicts/zh-cn.edn index c2510a961e..d5f811daec 100644 --- a/src/resources/dicts/zh-cn.edn +++ b/src/resources/dicts/zh-cn.edn @@ -1,379 +1,1861 @@ -{:accessibility/skip-to-main-content "跳转到主内容" - :bug-report/main-title "BUG 上报" - :bug-report/main-desc "你可以帮助我们提交一个错误报告吗?我们会尽快解决。" - :bug-report/clipboard-inspector-title "剪贴板数据查看器" - :bug-report/section-clipboard-title "你遇到的错误是否与这些功能有关?" - :bug-report/section-clipboard-desc "你可以使用这些便利的工具来提供给我们额外的信息。" - :bug-report/section-clipboard-btn-title "剪贴板助手" - :bug-report/section-clipboard-btn-desc "检查和收集剪贴板数据" - :bug-report/section-issues-title "或..." - :bug-report/section-issues-desc "如果没有可用的工具供您收集额外的信息,请直接报告错误。" - :bug-report/section-issues-btn-title "提交错误报告" - :bug-report/section-issues-btn-desc "帮助改进 Logseq!" - :bug-report/inspector-page-desc-1 "按下 Ctrl+V / ⌘+V 键来检查您的剪贴板数据" - :bug-report/inspector-page-desc-2 "如果您正在使用移动版本,请点击此处粘贴" - :bug-report/inspector-page-placeholder "如果您在手机上,请长按此处进行粘贴" - :bug-report/inspector-page-tip "出了点问题?没关系,点击返回到上一步。" - :bug-report/inspector-page-btn-back "返回" - :bug-report/inspector-page-btn-copy "复制结果" - :bug-report/inspector-page-copy-notif "已复制到剪贴板!" - :bug-report/inspector-page-btn-create-issue "创建一个 issue" - :bug-report/inspector-page-desc-clipboard "这是从剪贴板读取的数据。" - :bug-report/inspector-page-desc-copy "如果可以共享,请点击复制按钮。" - :bug-report/inspector-page-desc-create-issue "现在您可以报告粘贴到剪贴板的结果了。请将结果粘贴到“附加上下文”部分,并说明您从哪里复制了原始内容。谢谢!" +{ + :account/authentication "身份验证" + :account/benefits-desc "使用 Logseq 帐户,您可以访问 Logseq Sync 等云服务和 alpha/beta 功能。" + :account/billing "订阅计费" + :account/billing-expired-on-label "Pro 计划过期时间:{1}" + :account/billing-expires-on-label "Pro 计划到期时间:{1}" + :account/billing-next-date-label "下次计费日期:{1}" + :account/core-features "使用 Logseq 核心功能" + :account/current-plan "当前计划" + :account/delete-account "删除帐户" + :account/discover-sync-desc "探索 {1} 的强大功能" + :account/early-access-alpha-beta "抢先体验 alpha/beta 功能" + :account/first-name "名" + :account/free-plan-sync-limit "1 个同步知识库(最大 50MB,仅笔记)" + :account/last-name "姓" + :account/manage-plan "管理计划" + :account/month "月" + :account/no-asset-syncing "不支持附件同步" + :account/open-invoices "查看发票" + :account/plan-free "免费版" + :account/plan-free-summary "从基本同步开始使用" + :account/plan-pro "专业版" + :account/plan-pro-summary "解锁高级同步和更多功能" + :account/pro-plan-sync-limit "10 个同步知识库(每个最大 5GB)" + :account/profile "个人资料" + :account/refresh-token-warning "刷新令牌时收到异常状态" + :account/reset-password "重置密码" + :account/sign-up "注册" + :account/sync-assets-limit "同步附件单个文件最大 100MB" + :account/synced-status "已同步" + :account/unlimited-unsynced-graphs "不限数量的本地知识库" + :account/upcoming-cloud-features "即将推出的云功能,包括 Logseq Publish" + :account/upgrade-plan "升级计划" + :account/username "用户名" - :help/start "入门" - :help/roadmap "路线图" - :help/about "关于 Logseq" - :help/bug "Bug 反馈" - :help/feature "功能建议" - :help/changelog "更新日志" - :help/blog "Logseq 博客" - :help/docs "文档" - :help/privacy "隐私声明" - :help/terms "服务条款" - :help/shortcuts "快捷键" - :help/shortcuts-triggers "触发" - :help/shortcut "快捷键" - :help/shortcut-page-title "完整快捷键" - :help/slash-autocomplete "Slash 自动提示" - :help/reference-autocomplete "页面引用自动补全" - :help/block-reference "块引用" - :help/open-link-in-sidebar "在侧边栏打开" - :text/image "图片" - :asset/confirm-delete "确定要删除{1}吗?" - :asset/physical-delete "同时删除本地文件(目前不可撤销)" - :search-item/page "页面" - :search-item/no-result "未找到匹配项" - :help/context-menu "右键菜单" - :help/markdown-syntax "Markdown 语法" - :bold "粗体" - :italics "斜体" - :highlight "高亮" - :strikethrough "删除线" - :code "代码" - :untitled "未命名" - :export-public-pages "导出公开页" - :export-transparent-background "透明背景" - :export-copy-to-clipboard "复制到剪贴板" - :export-copied-to-clipboard "已复制到剪贴板" - :export-save-to-file "保存到文件" - :help/awesome-logseq "绝妙的 Logseq" - :help/forum-community "论坛讨论" - :help/title-usage "使用说明" - :help/title-community "社区" - :help/title-development "开发" - :help/title-about "关于" - :help/title-terms "条款" - :linked-references/filter-search "在链接的页面内搜索" - :page/copy-page-url "复制页面 URL" - :plugin/contribute "✨编写和提交新插件" - :right-side-bar/show-journals "显示日记" - :select/default-prompt "请选择" - :select.graph/add-graph "再添加一份图谱" - :select.graph/empty-placeholder-description "没有匹配的图谱。你想再添加一份图谱吗?" - :select.graph/prompt "请选择一份图谱" - :settings-page/edit-export-css "修改导出样式 export.css" - :settings-page/enable-flashcards "记忆卡片" - :settings-page/enable-shortcut-tooltip "启用快捷键提示" - :settings-page/export-theme "导出主题" - :settings-page/check-for-updates "检查更新" - :settings-page/checking "正在检查更新..." - :settings-page/app-updated "应用已是最新版本 🎉" - :settings-page/update-available "发现新版本 " - :right-side-bar/help "帮助" - :right-side-bar/switch-theme "主题模式" - :right-side-bar/contents "目录" - :right-side-bar/page-graph "页面图谱" - :right-side-bar/block-ref "块引用" - :right-side-bar/graph-view "图谱视角" - :right-side-bar/flashcards "记忆卡片" - :right-side-bar/separator "调整右侧边栏大小" - :left-side-bar/switch "切换到:" - :left-side-bar/journals "日志" - :left-side-bar/nav-favorites "收藏页面" - :left-side-bar/nav-recent-pages "最近使用" - :page/make-public "导出 HTML 时发布本页面" - :page/make-private "导出 HTML 时取消发布本页面" - :page/delete "删除本页" - :page/add-to-favorites "添加收藏" - :page/unfavorite "取消收藏" - :block/name "页面名称" - :file/name "文件名" - :file/last-modified-at "最后更改于" - :file/no-data "没有数据" - :page/created-at "创建日期" - :page/updated-at "更新日期" - :page/backlinks "双向链接" - :file/format-not-supported "格式 .{1} 目前不支持。" - :editor/block-search "搜索块" - :editor/delete-selection "删除选定块" - :editor/copy "复制" - :editor/cut "剪切" - :editor/expand-block-children "展开所有子块" - :editor/collapse-block-children "折叠所有子块" - :editor/cycle-todo "切换当前事项的待办状态" - :content/copy-export-as "复制/导出为..." - :context-menu/toggle-number-list "切换编号列表" - :content/copy-block-ref "复制块引用" - :content/open-in-sidebar "在侧边栏打开" - :content/click-to-edit "点击以编辑" - :settings-page/edit-config-edn "编辑 config.edn (当前库)" - :settings-page/edit-custom-css "编辑 custom.css (当前库)" - :settings-page/custom-configuration "自定义配置" - :settings-page/custom-theme "自定义主题" - :settings-page/preferred-outdenting "逻辑缩进" - :settings-page/show-brackets "显示括号 [[]]" - :settings-page/wide-mode "宽屏模式" - :settings-page/editor-font "编辑器字体" - :settings-page/accent-color "高亮色" - :settings-page/accent-color-alert "选择高亮色可能会影响您选择的自定义主题。" - :settings-page/spell-checker "单词拼写检查" - :settings-page/auto-updater "自动更新" - :settings-page/disable-sentry "向 Logseq 提供使用情况和诊断信息" - :settings-page/disable-sentry-desc "Logseq 从来不会收集或出售你的图谱数据。" - :settings-page/custom-date-format "首选日期页面格式" - :settings-page/preferred-pasting-file "保存链接为文件" - :settings-page/auto-expand-block-refs "自动展开聚焦 block 的引用" - :settings-page/enable-tooltip "开启提示框" - :settings-page/enable-journals "开启日记" - :settings-page/enable-all-pages-public "发布所有页面" - :settings-page/native-titlebar "原生标题栏" - :settings-page/native-titlebar-desc "在Windows和Linux上启用系统原生风格的窗口标题栏。" - :settings-page/home-default-page "设置首页默认页面" - :settings-page/clear-cache "清除缓存" - :settings-page/clear "清除" - :settings-page/clear-cache-warning "清除缓存将关闭当前打开的图谱。你将丢失未保存的更改。" - :settings-page/developer-mode "开发者模式" - :settings-page/developer-mode-desc "开发者模式帮助贡献者和扩展开发者更有效地测试他们与 Logseq 的集成。" - :settings-page/current-version "当前版本" - :settings-page/changelog "更新内容" - :settings-page/theme-light "浅色模式" - :settings-page/theme-dark "深色模式" - :settings-page/theme-system "跟随系统" - :settings-page/show-full-blocks "显示块引用的所有行" - :settings-page/tab-general "常规" - :settings-page/tab-editor "编辑器" - :settings-page/tab-keymap "快捷键" - :settings-page/tab-advanced "高级设置" - :settings-page/tab-features "更多功能" - :settings-page/plugin-system "插件系统" - :settings-page/network-proxy "网络代理" - :settings-page/login-prompt "你必须是 Logseq 的 Open Collective Sponsor 或者 Backer 才能提前使用新功能(仍在测试中),因此需要登录。" - :settings-page/custom-global-configuration "自定义全局配置" - :settings-page/edit-global-config-edn "编辑全局 config.edn" - :settings-page/auto-chmod "自动更改文件权限" - :settings-page/auto-chmod-desc "禁用此功能可以允许多个用户在拥有用户组权限的情况下编辑文件。" - :yes "是" - :cancel "取消" - :export-graph "导出图谱" - :export-page "导出当前页面" - :export-markdown "以 Markdown 格式导出" - :graph "图谱" - :graph/all-graphs "所有图谱" - :all-journals "日记" - :export "导出" - :all-graphs "所有图谱" - :all-files "所有文件" - :settings "设置" - :settings-of-plugins "插件设置" - :plugins "插件" - :themes "主题" - :appearance "界面" - :relaunch-confirm-to-work "如果希望立刻生效, 请重启应用。是否现在重启?" - :import "导入" - :importing "导入中" - :help-shortcut-title "点此查看快捷方式和更多有用帮助" - :close "关闭" - :delete "删除" - :save "保存" - :type "类型" - :host "主机" - :port "端口" - :loading "加载中..." - :login "登录" - :logout "登出" - :download "下载" - :language "语言" - :remove-background "去除背景" - :remove-heading "移除 heading" - :auto-heading "自动转为 heading" - :plugin/installed "已安装" - :plugin/not-installed "未安装" - :plugin/installing "安装中" - :plugin/install "安装" - :plugin/reload "重载" - :plugin/update "更新" - :plugin/check-update "检查更新" - :plugin/check-all-updates "一键检查更新" - :plugin/found-updates "有更新" - :plugin/found-n-updates "发现 {1} 个插件待更新" - :plugin/update-all-selected "更新已选插件" - :plugin/updates-downloading "正在下载更新" - :plugin/refresh-lists "刷新插件列表" - :plugin/delete-alert "确定删除插件 [{1}]?" - :plugin/enabled "已开启" - :plugin/disabled "未开启" - :plugin/update-available "待更新" - :plugin/updating "更新中" - :plugin/uninstall "卸载" - :plugin/marketplace "插件市场" - :plugin/downloads "下载量" - :plugin/stars "收藏数" - :plugin/all "全部" - :plugin/unpacked "未打包" - :plugin/open-settings "打开配置项" - :plugin/open-package "打开包目录" - :plugin/load-unpacked "手动载入插件" - :plugin/restart "重启应用" - :plugin/unpacked-tips "用于开发目的或者从本地磁盘载入可信的社区插件。" - :plugin/custom-js-alert "发现 custom.js 自定义脚本,是否允许执行?(如果您对该文件的内容不了解 或 来源不可靠,建议不要允许执行)" - - :plugin/search-plugin "搜索插件" - :plugin/open-preferences "打开插件偏好设置" - :plugin/open-logseq-dir "打开" - :plugin/remote-error "远端错误: " - :plugin/checking-for-updates "正在检查插件更新 ..." - :plugin/list-of-updates "可用的插件更新: " - :plugin/auto-check-for-updates "是否自动检查更新" - :plugin/load-from-web-url "通过URL载入插件" - :plugin.install-from-file/menu-title "从 plugins.edn 安装" - :plugin.install-from-file/title "从 plugins.edn 配置中安装插件" - :plugin.install-from-file/notice "以下插件会替换已安装的插件:" - :plugin.install-from-file/success "插件全部安装完毕!" - - :pdf/copy-ref "复制引用" - :pdf/copy-text "复制文本" - :pdf/linked-ref "转到注解" - :pdf/toggle-dashed "区域选取为虚线" - :pdf/hl-block-colored "颜色标识高亮块" - :pdf/auto-open-context-menu "为选中文本自动打开上下文菜单" - :pdf/doc-metadata "查看文档元数据" - - :asset/open-in-browser "在浏览器打开" - :asset/show-in-folder "在文件夹中显示图片" + :asset/acceptable-file-extensions "可接受的文件扩展名" + :asset/add-assets "添加附件" + :asset/add-directory "添加目录" + :asset/alias-already-exists "别名 \"{1}\" 已存在!" + :asset/alias-directories "别名目录" + :asset/alias-directory-path-label "目录路径:" + :asset/alias-name-dialog-title "为选中的目录设置别名" + :asset/alias-name-label "别名:" + :asset/alias-name-placeholder "例如:Books" + :asset/align "对齐" + :asset/align-center "居中对齐" + :asset/align-left "左对齐" + :asset/align-right "右对齐" + :asset/already-exists "资源已存在,标题:{1},节点引用:[[{2}]]" + :asset/cannot-embed-parent-as-own-property "不能把父块嵌入为它自己的属性" + :asset/confirm-delete-image "确定要删除这张图片吗?" :asset/copy "复制图片" + :asset/copy-image-unsupported-extension "不支持复制 {1} 文件中的图片" + :asset/create-local-copy-warning "正在从外部资源创建本地附件。PDF 批注功能需要本地附件才能正常使用。" + :asset/create-title "创建附件" :asset/delete "删除图片" + :asset/downloading "下载中" + :asset/drop-hint "拖放文件到此处,或点击选择文件" + :asset/edit-title "编辑附件" + :asset/external-url-label "附件外部链接:" + :asset/file-extension-placeholder "例如:mp3" :asset/maximize "最大化显示图片" + :asset/open-in-browser "在浏览器打开" + :asset/physical-delete "同时删除本地文件(目前不可撤销)" :asset/ref-block "资源块引用" + :asset/select-file "选择附件文件" + :asset/select-from-disk "从磁盘选择" + :asset/selected-directories "已选目录:" + :asset/show-file-in-folder "在文件夹中显示文件" + :asset/size-too-large "资源大小不能超过 100M" + :asset/syncing "同步中" + :asset/title-label "附件标题:" + :asset/transfer-placeholder "{1}资源..." + :asset/uploading "上传中" + + :block/click-to-fix-query "点击修复查询:{1}" + :block/copy-ref "复制块引用" + :block/copy-url "复制块 URL" + :block/created-label "创建时间:{1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' 已弃用,请使用 '/Math block' 命令代替。" + :block/deprecated-query-syntax "#+BEGIN_QUERY 已弃用,请使用 '/Advanced Query' 命令代替。" + :block/deprecated-quote "#+BEGIN_QUOTE 已弃用,请使用 '/Quote' 命令代替。" + :block/empty-url "空链接" + :block/excalidraw-no-longer-supported "Excalidraw 默认不再支持,我们计划通过插件支持。" + :block/extraction-error "提取块时发生了意外错误。" + :block/hide-query "隐藏查询" + :block/invalid-hiccup "无效的 hiccup" + :block/invalid-link "无效链接" + :block/invalid-url "无效的 URL" + :block/large-block-warning "大块内容将不可编辑和搜索以避免拖慢应用,请使用其他编辑器编辑此块。" + :block/last-edited-label "最后编辑:{1}" + :block/not-found-warning "未找到块" + :block/open-block-references "打开块引用" + :block/practice "练习" + :block/practice-cards "练习卡片" + :block/ref-nesting-too-deep "块引用嵌套层级过深" + :block/remove-tag "移除标签" + :block/remove-this-tag "移除此标签" + :block/render-error "块渲染错误:" + :block/set-query "设置查询" + :block/set-query-label "设置查询:" + :block/sort-order "排序方式" + :block/status-history "状态历史" + :block/untitled-query "未命名查询" + + :block.macro/embed-deprecated "{{embed}} 已弃用。请改用“/节点嵌入”命令。" + :block.macro/namespace-deprecated "{{namespace}} 已弃用。请改用 {1} 功能。" + :block.macro/query-deprecated "{{query}} 已弃用。请改用“/查询”命令。" + :block.macro/unsupported-name "不支持的宏名称:{1}" + + :block.reaction/emoji-required-warning "请先选择一个表情回应。" + :block.reaction/unsupported-emoji-warning "不支持该表情回应。" + + :bug-report/desc "你可以帮助我们提交一个错误报告吗?我们会尽快解决。" + :bug-report/title "BUG 上报" + + :bug-report.clipboard/action-desc "检查和收集剪贴板数据" + :bug-report.clipboard/action-title "剪贴板助手" + :bug-report.clipboard/desc "你可以使用这些便利的工具来提供给我们额外的信息。" + :bug-report.clipboard/title "你遇到的错误是否与这些功能有关?" + + :bug-report.inspector/back "返回" + :bug-report.inspector/clipboard-desc "这是从剪贴板读取的数据。" + :bug-report.inspector/copied "已复制到剪贴板!" + :bug-report.inspector/copy "复制结果" + :bug-report.inspector/copy-desc "如果可以共享,请点击复制按钮。" + :bug-report.inspector/create-issue "创建一个 issue" + :bug-report.inspector/create-issue-desc "现在你可以报告粘贴到剪贴板的结果了。请将结果粘贴到 “Additional Context” 部分,并说明原始内容是从哪里复制的。谢谢!" + :bug-report.inspector/desc "按下 {1} 键来检查你的剪贴板数据\n如果你正在使用移动版本,请点击此处粘贴" + :bug-report.inspector/placeholder "如果你在手机上,请长按此处进行粘贴" + :bug-report.inspector/tip "出了点问题?没关系,点击返回到上一步。" + :bug-report.inspector/title "剪贴板数据查看器" + + :bug-report.issue/action-desc "帮助改进 Logseq!" + :bug-report.issue/action-title "提交错误报告" + :bug-report.issue/desc "如果没有可用的工具供你收集额外的信息,请直接报告错误。" + :bug-report.issue/report-link "报告问题" + :bug-report.issue/title "或..." + + :class/add-property "添加标签属性" + :class/tag-properties-desc "标签属性会被所有使用该标签的节点继承。例如,每个 #Task 节点都会继承“Status”和“Priority”。" + :class/tagged-nodes "已标记节点" + + :class.built-in/asset "附件" + :class.built-in/card "卡片" + :class.built-in/cards "卡片集" + :class.built-in/code-block "代码" + :class.built-in/journal "日记" + :class.built-in/math-block "数学" + :class.built-in/page "页面" + :class.built-in/pdf-annotation "PDF 批注" + :class.built-in/property "属性" + :class.built-in/query "查询" + :class.built-in/quote-block "引用" + :class.built-in/root "根标签" + :class.built-in/tag "标签" + :class.built-in/task "任务" + :class.built-in/template "模板" + :class.built-in/whiteboard "白板" + + :class.validation/built-in-extends-change "无法修改内置项的继承关系。" + :class.validation/cant-add-tag-on-built-in "无法在内置“{1}”上添加标签。" + :class.validation/cant-remove-private-tags "无法删除私有标签:{1}。" + :class.validation/cant-remove-tag-built-in "无法删除带有内置 #{1} 的标签。" + :class.validation/cant-remove-tag-on-built-in "无法删除内置“{1}”上的标签。" + :class.validation/cant-set-tag-built-in "无法使用内置#{1} 设置标签。" + :class.validation/duplicate "标签“{1}”已存在。" + :class.validation/extends-cycle "继承关系出现循环。" + :class.validation/invalid-extends-type "无效的继承类型。" + :class.validation/parents-must-be-tags "标签的父级必须是标签。" + :class.validation/tag-with-non-tag "无法使用不是标签“{1}”的内置页面设置标签。" + + :cmdk.action/apply-theme "应用主题" + :cmdk.action/copy-ref "复制引用" + :cmdk.action/create "创建" + :cmdk.action/filter "筛选" + :cmdk.action/open "打开" + :cmdk.action/open-in-sidebar "在侧边栏打开" + :cmdk.action/search "搜索" + :cmdk.action/trigger "触发" + + :cmdk.create/configure-tag "配置标签" + :cmdk.create/page "创建页面" + :cmdk.create/tag "创建标签" + + :cmdk.error/no-block-link "此块内容中未找到链接。" + :cmdk.error/no-page-link "此页面属性中未找到链接。" + :cmdk.error/no-search-item-link "此搜索项没有链接。" + + :cmdk.filter/add "添加搜索筛选条件" + :cmdk.filter/codes "仅搜索代码" + :cmdk.filter/commands "仅搜索命令" + :cmdk.filter/current-page "仅搜索当前页面" + :cmdk.filter/files "仅搜索文件" + :cmdk.filter/nodes "仅搜索节点" + :cmdk.filter/only-label "仅搜索:" + :cmdk.filter/themes "仅搜索主题" + + :cmdk.group/codes "代码" + :cmdk.group/commands "命令" + :cmdk.group/create "创建" + :cmdk.group/current-page "当前页面" + :cmdk.group/files "文件" + :cmdk.group/filters "筛选条件" + :cmdk.group/nodes "节点" + :cmdk.group/recently-updated "最近更新" + :cmdk.group/themes "主题" + + :cmdk.info/configure-tag "配置 #{1}" + :cmdk.info/create-page "创建名为“{1}”的页面" + :cmdk.info/create-tag "创建名为“{1}”的标签" + + :cmdk.input/add-graph-filter-placeholder "添加图谱筛选" + :cmdk.input/default-placeholder "你在找什么?" + :cmdk.input/move-blocks-placeholder "移动块到" + :cmdk.input/type-page-name-placeholder "输入要创建的页面名称" + + :cmdk.tip/clear-filter "按 {1} 以清除搜索筛选" + :cmdk.tip/filter-results "按 {1} 以筛选搜索结果" + :cmdk.tip/label "提示:" + :cmdk.tip/open-sidebar "按 {1} 以在侧边栏中打开搜索" + + :collaboration/email-address "邮箱地址" + :collaboration/invite "邀请" + :collaboration/members "成员:" + :collaboration/remove-access "移除访问权限" + :collaboration/remove-access-error "移除成员失败。" + :color/blue "蓝色" + :color/crimson "深红色" + :color/cyan "青色" + :color/grass "草绿色" :color/gray "灰色" :color/green "绿色" + :color/indigo "靛蓝色" + :color/orange "橙色" :color/pink "粉色" + :color/plum "李子色" :color/purple "紫色" :color/red "红色" + :color/teal "蓝绿色" + :color/tomato "番茄色" + :color/violet "紫罗兰色" :color/yellow "黄色" - :updater/new-version-install "新版本已经准备就绪。" - :updater/quit-and-install "现在安装" + :command.auto-complete/complete "自动完成:选择当前项" + :command.auto-complete/meta-complete "元数据补全" + :command.auto-complete/next "自动完成:选择下一项" + :command.auto-complete/prev "自动完成:选择上一项" + :command.auto-complete/shift-complete "自动完成:在侧边栏打开" + + :command.command-palette/toggle "切换命令面板" + + :command.editor/add-property "添加属性" + :command.editor/add-property-deadline "添加截止日期属性" + :command.editor/add-property-icon "添加图标属性" + :command.editor/add-property-priority "添加优先级属性" + :command.editor/add-property-status "添加状态属性" + :command.editor/add-reaction "添加反应" + :command.editor/backspace "向左删除" + :command.editor/backward-kill-word "向前删除一个单词" + :command.editor/backward-word "光标向前移动一个单词" + :command.editor/beginning-of-block "移动光标到块开始位置" + :command.editor/bold "粗体" + :command.editor/clear-block "清除块内容" + :command.editor/collapse-block-children "折叠" + :command.editor/copy "复制" + :command.editor/copy-embed "复制指向当前块的嵌入块" + :command.editor/copy-page-url "复制页面链接" + :command.editor/copy-text "复制选中的文本" + :command.editor/cut "剪切" + :command.editor/cycle-todo "切换TODO状态" + :command.editor/delete "向右删除" + :command.editor/delete-selection "删除选中块" + :command.editor/down "向下移动光标 / 向下选择" + :command.editor/end-of-block "移动光标到块末尾" + :command.editor/escape-editing "转义编辑" + :command.editor/expand-block-children "展开" + :command.editor/follow-link "跟随光标下的链接" + :command.editor/forward-kill-word "向后删除一个单词" + :command.editor/forward-word "光标向后移动一个单词" + :command.editor/highlight "高亮" + :command.editor/indent "缩进块标签" + :command.editor/insert-link "HTML 链接" + :command.editor/insert-youtube-timestamp "插入 Youtube 时间戳" + :command.editor/italics "斜体" + :command.editor/jump "跳转到块" + :command.editor/kill-line-after "删除光标右侧行" + :command.editor/kill-line-before "删除光标左侧行" + :command.editor/left "向左移动光标 / 向左选择" + :command.editor/move-block-down "向下移动块" + :command.editor/move-block-up "向上移动块" + :command.editor/move-blocks "移动块" + :command.editor/new-block "创建块" + :command.editor/new-line "块中新建行" + :command.editor/open-edit "编辑选中块" + :command.editor/open-link-in-sidebar "在侧边栏打开" + :command.editor/open-selected-blocks-in-sidebar "在侧边栏中打开选中的块" + :command.editor/outdent "取消缩进块" + :command.editor/paste-text-in-one-block-at-point "粘贴文本到块的点" + :command.editor/quick-add "快速添加" + :command.editor/redo "重做" + :command.editor/right "向右移动光标 / 向右选择" + :command.editor/select-all-blocks "选择所有块" + :command.editor/select-block-down "选择下方的块" + :command.editor/select-block-up "选择上方的块" + :command.editor/select-down "选择下面内容" + :command.editor/select-parent "选择父块" + :command.editor/select-up "选择上面的内容" + :command.editor/set-tags "设置标签" + :command.editor/strike-through "删除线" + :command.editor/toggle-block-children "切换块子节点折叠状态" + :command.editor/toggle-display-hidden-properties "切换显示隐藏属性" + :command.editor/toggle-number-list "切换有序列表" + :command.editor/toggle-open-blocks "切换折叠/展开所有块(非编辑状态)" + :command.editor/undo "撤销" + :command.editor/up "向上移动光标 / 向上选择" + :command.editor/zoom-in "聚焦" + :command.editor/zoom-out "退出聚焦" + + :command.go/all-graphs "所有图谱" + :command.go/all-pages "全部页面" + :command.go/backward "回退" + :command.go/electron-find-in-page "在当前页面查找文本" + :command.go/electron-jump-to-the-next "跳转到查找栏搜索的下一个匹配项" + :command.go/electron-jump-to-the-previous "跳转到查找栏搜索的上一个匹配项" + :command.go/flashcards "记忆卡片" + :command.go/forward "前进" + :command.go/graph-view "记忆图谱" + :command.go/home "首页" + :command.go/journals "跳转到日记" + :command.go/keyboard-shortcuts "快捷键" + :command.go/next-journal "下一篇日记" + :command.go/prev-journal "上一篇日记" + :command.go/search "搜索页面和块" + :command.go/search-in-page "在页面内搜索" + :command.go/search-themes "搜索主题" + :command.go/tomorrow "明天" + + :command.graph/add "添加图谱" + :command.graph/db-add "数据库:添加图谱" + :command.graph/db-save "数据库:保存图谱" + :command.graph/export-as-html "将公共图谱导出为 HTML" + :command.graph/open "打开图谱" + :command.graph/remove "移除图谱" + + :command.misc/copy "复制" + :command.misc/export-block-data "导出块数据" + :command.misc/export-graph-ontology-data "导出图谱本体数据" + :command.misc/export-page-data "导出页面数据" + :command.misc/import-edn-data "导入 EDN 数据" + + :command.page/toggle-favorite "切换收藏" + + :command.pdf/close "关闭当前PDF文档" + :command.pdf/find "PDF: 查找当前 PDF 文档的文本" + :command.pdf/next-page "下一页PDF文档" + :command.pdf/previous-page "上一页PDF文档" + + :command.publish/open-dialog "打开发布对话框" + + :command.search/re-index "重新建立搜索索引" + + :command.shell/run "运行 Git 命令" + + :command.sidebar/clear "清空侧边栏" + :command.sidebar/close-top "关闭顶部侧边栏面板" + :command.sidebar/open-today-page "在侧边栏打开今日" + + :command.ui/clear-all-notifications "清除所有通知" + :command.ui/customize-appearance "自定义外观" + :command.ui/goto-plugins "插件" + :command.ui/highlight-recent-blocks "高亮最近块" + :command.ui/install-plugin-from-github "从 GitHub 安装插件" + :command.ui/install-plugins-from-file "从文件安装插件" + :command.ui/select-theme-color "选择皮肤颜色" + :command.ui/toggle-brackets "切换是否显示括号" + :command.ui/toggle-contents "打开/关闭目录" + :command.ui/toggle-document-mode "切换文档模式" + :command.ui/toggle-help "显示/关闭帮助" + :command.ui/toggle-left-sidebar "切换左侧边栏" + :command.ui/toggle-right-sidebar "启用/关闭右侧栏" + :command.ui/toggle-settings "显示/关闭设置" + :command.ui/toggle-theme "在暗色/亮色主题之间切换" + :command.ui/toggle-wide-mode "切换宽屏模式" + + :command.window/close "关闭窗口" + + :context-menu/developer-tools "开发者工具" + :context-menu/make-a-flashcard "制作闪卡" + :context-menu/set-icon "设置图标" + :context-menu/toggle-number-list "切换编号列表" + + :date/invalid-date-warning "{1} 不是有效日期。请重试" + + :date.nlp/last-friday "上周五" + :date.nlp/last-monday "上周一" + :date.nlp/last-month "上个月" + :date.nlp/last-saturday "上周六" + :date.nlp/last-sunday "上周日" + :date.nlp/last-thursday "上周四" + :date.nlp/last-tuesday "上周二" + :date.nlp/last-wednesday "上周三" + :date.nlp/last-week "上周" + :date.nlp/last-year "去年" + :date.nlp/next-friday "下周五" + :date.nlp/next-monday "下周一" + :date.nlp/next-month "下个月" + :date.nlp/next-saturday "下周六" + :date.nlp/next-sunday "下周日" + :date.nlp/next-thursday "下周四" + :date.nlp/next-tuesday "下周二" + :date.nlp/next-wednesday "下周三" + :date.nlp/next-week "下周" + :date.nlp/next-year "明年" + :date.nlp/this-friday "本周五" + :date.nlp/this-monday "本周一" + :date.nlp/this-month "本月" + :date.nlp/this-saturday "本周六" + :date.nlp/this-sunday "本周日" + :date.nlp/this-thursday "本周四" + :date.nlp/this-tuesday "本周二" + :date.nlp/this-wednesday "本周三" + :date.nlp/this-week "本周" + :date.nlp/this-year "今年" + :date.nlp/today "今天" + :date.nlp/tomorrow "明天" + :date.nlp/yesterday "昨天" + + :deeplink/open-block-error "打开链接失败。块 ID `{1}` 不存在于当前图谱中。" + :deeplink/open-graph-error "打开图谱失败。图谱 `{1}` 不存在。" + :deeplink/open-page-error "打开链接失败。页面 `{1}` 不存在于当前图谱中。" + + :editor/add-content-first-warning "请先添加一些内容。" + :editor/auto-heading "自动标题" + :editor/block-search "搜索块" + :editor/click-to-edit "点击以编辑" + :editor/code-language-placeholder "选择语言" + :editor/collapse-block-children "折叠所有子块" + :editor/cut "剪切" + :editor/cycle-todo "切换当前事项的待办状态" + :editor/delete-selection "删除选定块" + :editor/display-tag-inline-hint "以内联显示此标签,而不是放在此节点末尾。" + :editor/expand-block-children "展开所有子块" + :editor/heading "标题 {1}" + :editor/moving-blocks-count "正在移动 {1} 个块" + :editor/new-page "新页面" + :editor/new-tag "新标签" + :editor/no-block-selected-warning "当前没有选中任何块,请先选择块。" + :editor/paste "粘贴" + :editor/reference-node-use-page-ref "要引用一个节点,请使用 `[[]]`。" + :editor/remove-heading "移除标题" + :editor/search-for-node "搜索节点" + :editor/search-for-tag "搜索标签" + :editor/search-template-placeholder "搜索模板" + :editor/template-insert-error "模板插入错误:{1}" + + :editor.document-mode/new-block-hint "{1} 创建新块" + :editor.document-mode/title "文档模式" + :editor.document-mode/toggle-desc "按 `D` 键或输入 {1} 切换文档模式" + + :editor.quick-add/add-to-today "添加到今天" + :editor.quick-add/title "快速添加" + + :editor.slash/advanced-query "高级查询" + :editor.slash/advanced-query-desc "创建一个高级查询块" + :editor.slash/calculator "计算器" + :editor.slash/calculator-desc "插入一个计算器" + :editor.slash/cloze "填空" + :editor.slash/code-block "代码块" + :editor.slash/code-block-desc "插入代码块" + :editor.slash/current-time "当前时间" + :editor.slash/current-time-desc "插入当前时间" + :editor.slash/date-picker "日期选择器" + :editor.slash/date-picker-desc "选择一个日期并插入到这里" + :editor.slash/embed-html "嵌入 HTML" + :editor.slash/embed-twitter-tweet "嵌入 Twitter 推文" + :editor.slash/embed-video-url "嵌入视频 URL" + :editor.slash/embed-youtube-timestamp "嵌入 YouTube 时间戳" + :editor.slash/group-advanced "高级" + :editor.slash/group-basic "基础" + :editor.slash/group-format "格式" + :editor.slash/group-heading "标题" + :editor.slash/group-list-type "列表类型" + :editor.slash/group-plugins "插件" + :editor.slash/group-priority "优先级" + :editor.slash/group-task-date "任务日期" + :editor.slash/group-task-status "任务状态" + :editor.slash/group-time-and-date "时间与日期" + :editor.slash/heading-label "标题 {1}" + :editor.slash/image-link "图片链接" + :editor.slash/image-link-desc "创建一个指向图片的 HTTP 链接" + :editor.slash/link-desc "创建一个 HTTP 链接" + :editor.slash/math-block "数学块" + :editor.slash/math-block-desc "创建一个 LaTeX 块" + :editor.slash/no-priority "无优先级" + :editor.slash/node-embed "节点嵌入" + :editor.slash/node-embed-desc "在此处嵌入一个节点" + :editor.slash/node-reference "节点引用" + :editor.slash/node-reference-desc "创建一个指向节点(页面或块)的引用" + :editor.slash/normal-text "正常文本" + :editor.slash/normal-text-desc "清除标题并设为正常文本" + :editor.slash/number-children "为子节点编号" + :editor.slash/number-list "编号列表" + :editor.slash/priority-desc "将优先级设为 {1}" + :editor.slash/priority-label "优先级 {1}" + :editor.slash/query-function "查询函数" + :editor.slash/query-function-desc "创建一个查询函数" + :editor.slash/quote-desc "创建一个引用块" + :editor.slash/status-desc "将状态设为 {1}" + :editor.slash/template-desc "在此处插入一个已创建的模板" + :editor.slash/today-desc "插入今天的日期" + :editor.slash/tomorrow-desc "插入明天的日期" + :editor.slash/underline "下划线" + :editor.slash/underline-desc "创建带下划线的文本样式" + :editor.slash/upload-asset "上传资源" + :editor.slash/upload-asset-desc "上传图片、PDF、DOCX 等类型的文件" + :editor.slash/yesterday-desc "插入昨天的日期" + + :electron/about "关于 Logseq" + :electron/add-to-dictionary "添加到字典" + :electron/block-not-exist "打开链接失败。块 ID `{1}` 在当前图谱中不存在。" + :electron/cancel "取消" + :electron/copy-image "复制图片" + :electron/link-open-confirm "确定要打开此链接吗?\n{1}" + :electron/link-open-failed-missing-graph "打开链接失败。在 `logseq://graph/` 后缺少图谱标识符。" + :electron/link-open-failed-no-graph "打开链接失败。无法将图谱标识符 `{1}` 匹配到任何已关联图谱。" + :electron/link-open-failed-no-target "打开链接失败。无法将 `{1}` 匹配到任何目标。" + :electron/look-up "查找所选内容" + :electron/main-exception "[主进程异常]\n{1}\n{2}" + :electron/new-window "新建窗口" + :electron/official-docs "官方文档" + :electron/ok "确定" + :electron/open-dir-error "打开目录失败:{1}" + :electron/save-image "保存图片" + :electron/save-image-as "图片另存为" + :electron/search-with-google "使用 Google 搜索" + :electron/unimplemented-callback "未实现的 x-callback-url 操作:`{1}`。" + :electron/version "版本 {1}" + :electron/write-file-error "写入文件 {1} 失败,{2}。" + :electron/write-file-error-with-backup "写入文件 {1} 失败,{2}。备份文件已保存到 {3}。" + + :encryption/cloud-password-rich (fn [] ["如果你丢失了密码,云端中的所有数据都将无法解密。" [:span "你仍然可以访问图谱的本地版本。"]]) + :encryption/current-password "当前密码" + :encryption/enter-password "输入密码" + :encryption/enter-password-again "再次输入密码" + :encryption/enter-password-title "输入远程图谱密码" + :encryption/failed-to-force-reset-password "强制重置密码失败。" + :encryption/failed-to-update-password "更新密码失败。" + :encryption/fetch-key-pair-error "获取用户 RSA 密钥对错误:{1}" + :encryption/fetching-key-pair "正在获取用户 RSA 密钥对..." + :encryption/force-reset-password "强制重置密码" + :encryption/force-reset-password-successfully "强制重置密码成功!" + :encryption/force-resetting-password "正在强制重置密码..." + :encryption/forgot-password-question "忘记密码?" + :encryption/forgot-password-warning "如果你忘记了密码,可以强制重置加密密码。但这会让当前存储在服务器上的所有已加密图谱数据永久无法读取。重置后,你需要从客户端重新上传图谱。" + :encryption/init-key-pair "初始化 E2EE 加密密钥对" + :encryption/init-key-pair-error "初始化密钥对错误:{1}" + :encryption/password-not-matched "两次输入的密码不一致" + :encryption/password-updated-successfully "密码更新成功!" + :encryption/remember-password-rich (fn [] [[:span "请务必"] "记住你设置的密码,因为一旦遗忘,我们无法为你重置或找回," [:span "并建议你"] "妥善保存一份安全备份。"]) + :encryption/reset-password "重置密码" + :encryption/set-new-password "设置新密码" + :encryption/set-password-title "为远程图谱设置密码" + :encryption/updating-password "正在更新密码..." + :encryption/wrong-password "密码错误" + + :export/backup-successful "备份成功!" + :export/block-data-copied "已复制块数据!" + :export/collecting-assets "正在收集附件" + :export/copied-to-clipboard "已复制到剪贴板!" + :export/copy-or-export-as "复制/导出为..." + :export/creating-zip "正在创建 zip" + :export/db-backup-error "数据库备份失败,请前往导出并指定备份文件夹。" + :export/db-edn "导出 EDN 文件" + :export/debug-transit-desc "导出为 .transit 文件以供调试。导出文件中的敏感数据将被移除。" + :export/debug-transit-file "导出调试 transit 文件" + :export/edn-desc "导出为可读、可编辑的 .edn 文件。不要将此作为主要备份。" + :export/error-unexpected "导出期间发生意外错误。详情请查看 JavaScript 控制台。" + :export/exporting "正在导出" + :export/finalizing "正在完成" + :export/format-text "文本" + :export/graph "导出图谱" + :export/graph-ontology-data-copied "已复制图谱本体数据!" + :export/indent-style-dashes "短横线" + :export/indent-style-label "缩进样式:" + :export/indent-style-none "无缩进" + :export/indent-style-spaces "空格" + :export/level-lte "层级 <=" + :export/markdown "导出为标准 Markdown(不含块属性)" + :export/newline-after-block "块后换行" + :export/no-updates-since-last-export "自上次导出以来图谱无更新。" + :export/open-blocks-only "仅导出展开的块(跳过折叠的子块)" + :export/page "导出页面" + :export/page-data-copied "已复制页面数据!" + :export/page-ref-text "[[文本]] -> 文本" + :export/preparing-zip "正在准备 zip" + :export/preview-alt "导出预览" + :export/public-pages "导出公开页面" + :export/remove-emphasis "移除强调标记" + :export/remove-properties "移除属性" + :export/remove-tags "移除 #标签" + :export/save-to-file "保存到文件" + :export/sqlite-db "导出 SQLite 数据库" + :export/title "导出" + :export/transparent-background "透明背景" + :export/view-nodes-data-copied "已复制视图节点数据!" + :export/zip "导出 SQLite 数据库和资源" + :export/zip-error "导出 ZIP 失败。" + + :export.backup/backup-now "立即备份" + :export.backup/cancel "取消备份" + :export.backup/enabled-desc "已为此知识库启用每小时备份,{1}。" + :export.backup/folder "备份文件夹:" + :export.backup/hourly-note "备份将每小时创建一次。" + :export.backup/open-folder "打开此知识库的备份文件夹" + :export.backup/schedule "定时备份" + :export.backup/set-folder-first "请先设置备份文件夹" + :export.backup/sqlite-desc "将知识库内容备份为单个 .sqlite 文件的主要方式。" + :export.backup/unsupported-desc "你的浏览器不支持 {{File System Access API}},请切换到基于 Chromium 的浏览器。" + :export.backup/zip-desc "将知识库内容和附件备份为 .zip 文件的主要方式。" + + :file/config-duplicate-keys "文件 '{1}' 存在重复键。键 '{2}' 被赋值了多次。" + :file/config-invalid "文件 'logseq/config.edn' 无效。请重新加载应用以查看错误并修复。" + :file/format-not-supported "格式 .{1} 目前不支持。" + :file/label "文件" + :file/last-modified-at "最后更改于" + :file/name "文件名" + :file/no-data "没有数据" + :file/title "文件 {1}" + + :file.config/deprecation-title "文件 {1} 有以下弃用项:" + :file.config/error-title "文件 {1} 有以下错误:" + :file.config/invalid-desc "请确保配置被 {} 包裹。" + :file.config/invalid-title "文件 {1} 无效。" + :file.config/read-failed-desc "请确保你的配置被 {} 包裹。同时请确保字符 '( { [' 都有对应的闭合字符 ') } ]'。" + :file.config/read-failed-title "读取文件 {1} 失败" + + :flashcard/add-query "添加新查询" + :flashcard/all-cards "全部卡片" + :flashcard/select-cards "选择卡片" + :flashcard/shortcut-tooltip "快捷键:{1}" + + :flashcard.empty/desc "你可以给任意块添加“{1}”将其变为闪卡,或使用“/cloze”添加填空。" + :flashcard.empty/title "来创建一张闪卡吧!" + + :flashcard.rating/again "重来" + :flashcard.rating/again-desc "我们答错了。这通常意味着我们已经忘记了这张卡片,是一次记忆失误。" + :flashcard.rating/easy "简单" + :flashcard.rating/easy-desc "答案是对的,而且我们无需费力就能快速且自信地回忆起来。" + :flashcard.rating/good "良好" + :flashcard.rating/good-desc "答案是对的,但我们花了一些心力才想起来。" + :flashcard.rating/hard "困难" + :flashcard.rating/hard-desc "答案是对的,但我们没有把握,花了太久才想起来。" + + :flashcard.review/finished "恭喜,你已完成本次复习,下次见!💯" + :flashcard.review/hide-answers "隐藏答案" + :flashcard.review/show-answers "显示答案" + :flashcard.review/show-clozes "显示填空" + + :format/bold "粗体" + :format/code "代码" + :format/highlight "高亮" + :format/italics "斜体" + :format/strikethrough "删除线" + + :graph/all-graphs "所有图谱" + :graph/already-exists-error "知识库 '{1}' 已存在。请使用其他名称重试。" + :graph/as-png "导出为 PNG" + :graph/built-in-pages "内置页面" + :graph/charge-range "电荷范围" + :graph/charge-strength "电荷强度" + :graph/click-to-search "点击搜索" + :graph/create-db "创建 DB 图谱" + :graph/create-error "创建图谱失败。" + :graph/create-new "创建新知识库" + :graph/created-before "创建于之前" + :graph/creating "正在创建图谱" + :graph/delete-local-action "删除本地图谱" + :graph/delete-local-confirm-desc "确定要从 Logseq 中永久删除图谱“{1}”吗?" + :graph/delete-server-action "从服务器删除" + :graph/delete-server-confirm-desc "确定要从我们的服务器中永久删除图谱“{1}”吗?" + :graph/delete-warning "⚠️ 请注意,删除后我们无法恢复此图谱。删除前请确认你已做好备份。" + :graph/diff "Git 差异" + :graph/downloading "正在下载" + :graph/encrypt-data-label "加密图谱数据" + :graph/excluded-pages "排除的页面" + :graph/forces "力学" + :graph/gc-success "知识库已成功清理!" + :graph/last-opened-at-label "上次打开于:{1}" + :graph/leave-action "离开此图谱" + :graph/leave-confirm-desc "确定要离开这个图谱吗?" + :graph/leave-error "离开图谱失败。" + :graph/left "已离开图谱。" + :graph/link-count "{1} 条链接" + :graph/link-distance "链接距离" + :graph/local-graphs "本地图谱" + :graph/n-hops-from-selected-nodes "距选中节点 N 跳" + :graph/name-placeholder "你的知识库名称" + :graph/nodes "节点" + :graph/orphan-pages "孤立页面" + :graph/page-count "{1} 个页面" + :graph/pause-simulation "暂停模拟" + :graph/preparing "准备中" + :graph/refresh-remote-graphs "刷新远程知识库" + :graph/remote-graphs "远程图谱" + :graph/removed "已移除图谱“{1}”" + :graph/removed-and-redirecting "已移除图谱“{1}”。正在跳转到图谱“{2}”" + :graph/removed-from-sync "此图谱已从 Logseq Sync 中移除。" + :graph/reset "重置知识库" + :graph/reset-forces "重置力学" + :graph/search "搜索" + :graph/shared-graphs "共享图谱" + :graph/updated-switching "图谱已更新!正在切换到图谱……" + :graph/use-sync-beta "使用 Logseq Sync(Beta 测试)" + :graph/use-sync-label "使用 Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "计算图谱校验和诊断失败。" + :graph.diagnostics/checksum-recomputed-success "已重新计算校验和。重新计算结果:{1},本地:{2},远端:{3}。已下载 {4}.edn,包含 {5} 个 block 和校验和属性 {6}。" + :graph.diagnostics/checksum-unavailable-warning "无法为当前图谱计算校验和诊断。" + :graph.diagnostics/client-ops-export-failed-error "导出客户端操作 SQLite 失败。" + :graph.diagnostics/client-ops-export-invalid-payload-warning "导出客户端操作 SQLite 失败:无效的 payload 类型 {1}。" + :graph.diagnostics/client-ops-export-success "已导出客户端操作 SQLite:{1}.sqlite" + :graph.diagnostics/no-graph-warning "未找到图谱。" + + :graph.page/show-journals "显示日记" + :graph.page/title "页面图谱" + + :graph.switch/add-graph-action "再添加一份图谱" + :graph.switch/empty-desc "没有匹配的图谱。你想再添加一份图谱吗?" + :graph.switch/prompt "切换到:" + :graph.switch/select-prompt "请选择一份图谱" + + :graph.validation/config-arweave-gateway-warning "已不再受支持。" + :graph.validation/config-block-hidden-properties-warning "在 DB 图谱中不会使用,因为隐藏属性需要在其配置中完成。" + :graph.validation/config-default-templates-warning "已被 #Template 和 `Apply template to tags` 属性取代。" + :graph.validation/config-editor-command-trigger-warning "已不再受支持。请改用 '/',并在相关问题上报告 bug。" + :graph.validation/config-favorites-warning "不会存储在 DB 图谱的配置中。" + :graph.validation/config-feature-enable-block-timestamps-warning "在 DB 图谱中不会使用,因为它始终启用。" + :graph.validation/config-preferred-format-warning "在 DB 图谱中不会使用,因为 DB 图谱只有 Markdown 模式。" + :graph.validation/config-property-pages-enabled-warning "在 DB 图谱中不会使用,因为所有属性都有页面。" + :graph.validation/config-unused-in-db-graphs-warning "在 DB 图谱中不会使用。" + :graph.validation/invalid-blocks-detected "验证发现 {1} 个无效块。这些块可能存在问题。正在尝试修复无效块。请再次运行验证以检查它们是否已被修复。" + :graph.validation/name-reserved-characters-warning "知识库名称不能包含以下保留字符:" + :graph.validation/reserved-character-asterisk "星号" + :graph.validation/reserved-character-backslash "反斜杠" + :graph.validation/reserved-character-colon "冒号" + :graph.validation/reserved-character-double-quote "双引号" + :graph.validation/reserved-character-forward-slash "正斜杠" + :graph.validation/reserved-character-greater-than "大于号" + :graph.validation/reserved-character-hash "井号" + :graph.validation/reserved-character-less-than "小于号" + :graph.validation/reserved-character-pipe "竖线或管道符" + :graph.validation/reserved-character-plus "加号" + :graph.validation/reserved-character-question-mark "问号" + :graph.validation/valid "你的图谱有效!{1}" + + :header/go-back "后退" + :header/go-forward "前进" + :header/highlight-recent-blocks "高亮最近的块" + :header/highlight-recent-blocks-days-ago "高亮最近的块:{1} 天前" + :header/more "更多" + :header/quit-highlight-recent-blocks "退出高亮最近块" + :header/toggle-left-sidebar "切换左侧边栏" + + :help/about "关于 Logseq" + :help/about-title "关于" + :help/ask-community "向社区提问" + :help/awesome-logseq "绝妙的 Logseq" + :help/block-reference "块引用" + :help/blog "Logseq 博客" + :help/bug "Bug 反馈" + :help/changelog "更新日志" + :help/community-title "社区" + :help/context-menu "右键菜单" + :help/context-menu-action "右键点击项目符号" + :help/development-title "开发" + :help/docs "文档" + :help/feature "功能建议" + :help/forum-community "论坛讨论" + :help/handbook "手册" + :help/learn-more "了解更多" + :help/markdown-syntax "Markdown 语法" + :help/open-link-in-sidebar "在侧边栏打开" + :help/open-link-in-sidebar-action "Shift+点击引用" + :help/privacy "隐私声明" + :help/reference-autocomplete "页面引用自动补全" + :help/release-notes "更新日志" + :help/roadmap "路线图" + :help/search "搜索页面/块/命令" + :help/slash-autocomplete "Slash 自动提示" + :help/start "入门" + :help/submit-feedback "提交反馈" + :help/support-forum "支持论坛" + :help/terms "服务条款" + :help/terms-title "条款" + :help/usage-title "使用说明" + + :help.handbook/chat-on-discord "在 Discord 上聊天" + :help.handbook/chat-on-discord-desc "快速提问,认识其他用户,学习新工作流。" + :help.handbook/copy-topic-link "复制主题链接" + :help.handbook/current-chapter "当前章节" + :help.handbook/help-categories "帮助分类" + :help.handbook/home "首页" + :help.handbook/link-copied "手册链接已复制!" + :help.handbook/monthly-posts "条月度帖子" + :help.handbook/next-chapter "下一章" + :help.handbook/popular-topics "热门主题" + :help.handbook/prev-chapter "上一章" + :help.handbook/resources-from "来自 {1} 的资源" + :help.handbook/search-placeholder "搜索" + :help.handbook/shortcuts-count "{1} 个快捷键" + :help.handbook/sync "同步" + :help.handbook/title "帮助" + :help.handbook/topics "主题" + :help.handbook/users-online "位在线用户" + :help.handbook/visit-the-forum "访问论坛" + :help.handbook/visit-the-forum-desc "提供反馈,请求功能,进行深入讨论。" + :help.handbook/writing-mode "写作模式(即时预览)" + + :help.shortcuts/desc "查看快捷键与提示" + :help.shortcuts/label "快捷键" + :help.shortcuts/shortcut-column "快捷键" + :help.shortcuts/title "完整快捷键" + :help.shortcuts/triggers "触发" + + :icon/emojis-count "表情符号({1})" + :icon/icons-count "图标({1})" + :icon/matched-count "匹配结果({1})" + :icon/search-all "搜索全部" + :icon/search-emojis "搜索表情符号" + :icon/search-icons "搜索图标" + :icon/tab-all "全部" + :icon/tab-emojis "表情符号" + :icon/tab-icons "图标" + + :import/all-tags "导入所有标签" + :import/asset-too-large-warning "已跳过复制资源 {1},因为它超过了 100 MB 限制。" + :import/assets-import-partial "已导入 {1}/{2} 个资源。详情请查看控制台。" + :import/assets-imported "已导入 {1} 个资源。" + :import/assets-skipped "已跳过 {1} 个资源。详情请查看控制台。" + :import/block-icons-cannot-be-imported "块图标无法导入,请在块 {1} 中手动导入。" + :import/cannot-import-block-into-non-block-entity "无法将块导入到非块实体中。请在其他位置导入。" + :import/db-edn-desc "将 DB 知识库的 EDN 导出导入到新的 DB 知识库" + :import/db-edn-title "EDN 到 DB 知识库" + :import/debug-transit-desc "将调试 transit 文件导入到新的 DB 知识库" + :import/debug-transit-title "调试 Transit" + :import/default-db-graph-behavior "数据库图谱的默认行为" + :import/empty-graph-name "图谱名称不能为空。" + :import/extract-inline-code-snippets "将行内代码片段提取为子块" + :import/file-finished "导入完成!" + :import/file-to-db-desc "将基于文件的 Logseq 知识库文件夹导入到新的 DB 知识库" + :import/file-to-db-title "文件到 DB 知识库" + :import/graph-name-conflict "已存在同名图谱,请指定其他名称!" + :import/graph-name-placeholder "图谱名称" + :import/ignored-assets "导入跳过了 {1} 个资源。详情请查看 JavaScript 控制台。" + :import/ignored-files "导入跳过了 {1} 个文件。详情请查看 JavaScript 控制台。" + :import/ignored-properties "导入跳过了 {1} 个属性" + :import/ignored-properties-fix "要修复属性类型,请将属性值改为正确的类型并重新导入图谱" + :import/invalid-blocks-detected "导入检测到 {1} 个无效块。这些块在交互时可能有问题。详情请查看 JavaScript 控制台。" + :import/invalid-edn-file "所提供的 EDN 文件无效。请修正后重试。" + :import/loading "正在导入" + :import/logseq-config-missing "导入失败:Logseq 图谱中未找到“logseq/config.edn”文件。" + :import/new-graph-name "新图谱名称" + :import/notes "导入已有笔记" + :import/org-files-imported "已将 {1} 个 org 文件导入为 Markdown。后续将添加对 org 文件的支持。" + :import/page-icons-cannot-be-imported "页面图标无法导入,请前往页面 {1} 手动导入。" + :import/properties-case-insensitive-commas "属性名不区分大小写,以逗号分隔" + :import/property-classes-placeholder "例如 type" + :import/property-import-manually "此属性需要手动导入" + :import/property-parent-classes-placeholder "例如 parent" + :import/property-type-mismatch "属性值的类型为 {1},而非 {2}" + :import/property-value-tag-parents "从属性值中导入标签父级" + :import/property-value-tags "从属性值中导入额外标签" + :import/remove-inline-tags "移除行内标签" + :import/select-edn-or-json "请选择一个 EDN 或 JSON 文件。" + :import/specific-tags "导入指定标签" + :import/sqlite-and-assets-desc "导入包含 db.sqlite 和 assets 文件夹的 zip 文件" + :import/sqlite-and-assets-title "SQLite + 附件 (.zip)" + :import/submitted-edn-invalid "提交的 EDN 数据无效!请修正后重试。" + :import/successful "导入成功!" + :import/tag-classes-placeholder "标签1, 标签2" + :import/tags-case-insensitive "标签不区分大小写" + :import/title "导入" + :import/unexpected-error "意外错误:{1}" + :import/zip-import-error "压缩包导入失败:{1}" + :import/zip-missing-db-sqlite "压缩包缺少 db.sqlite。请检查归档结构。" + + :journal/add-blocks-to-today-success "块已添加到今天!" + :journal/page-cant-convert-warning "此页面不是日记页面。" + :journal/parse-date-to-name-error "无法将日期解析为日志页名称。" + + :journal.default-query/doing "进行中" + :journal.default-query/todo "待办" + + :keymap/all "全部" + :keymap/already-bound "快捷键已被占用" + :keymap/also-used-for-action "同时用于{1}" + :keymap/also-used-for-action-in-context "同时用于{1},上下文:{2}" + :keymap/clear "清除" + :keymap/clear-keystroke-filter "清除按键筛选" + :keymap/clear-search "清除搜索" + :keymap/custom "自定义" + :keymap/deactivates-chord "会停用" + :keymap/deactivates-chords "会停用 {1} 个组合快捷键" + :keymap/disabled "已禁用" + :keymap/esc-is-reserved "Esc 为保留键" + :keymap/hint-cancel "取消" + :keymap/hint-close "关闭" + :keymap/hint-reassign "重新分配" + :keymap/hint-remove "移除" + :keymap/keystroke-filter "按键过滤" + :keymap/no-matching-shortcuts "没有匹配的快捷键" + :keymap/press-a-shortcut "按下快捷键" + :keymap/press-keys-to-filter "按下按键以筛选" + :keymap/reassign "重新分配" + :keymap/reassign-tooltip "将其快捷键重新分配给此命令" + :keymap/reassigned-from "已从 {1} 重新分配" + :keymap/refresh-all "全部刷新" + :keymap/remove-binding "移除绑定" + :keymap/remove-filter "移除筛选" + :keymap/reset "重置" + :keymap/reset-to-default "恢复默认值" + :keymap/search-by-keys "按快捷键搜索" + :keymap/search-placeholder "搜索快捷键…" + :keymap/shortcut-added "快捷键已添加" + :keymap/shortcut-removed "快捷键已移除" + :keymap/toggle-categories-pane "切换分类面板" + :keymap/undo "撤销" + :keymap/unset "未设置" + :keymap/used-by-action "被以下命令占用:{1}" + + :library/add-existing-pages "将现有页面添加到页面库" + :library/add-pages "添加页面" + :library/title "页面库" + + :mobile/camera-access-denied "相机访问被拒绝。请在“设置 > Logseq”中启用。" + :mobile/microphone-access-denied "麦克风访问被拒绝。请在“设置 > Logseq”中启用。" + + :mobile.header/actions "操作" + :mobile.header/create-graph "新建图谱" + :mobile.header/delete-block-confirm-desc "确定要删除这个块吗?" + :mobile.header/delete-page-confirm-desc "确定要删除这个页面吗?" + + :mobile.intent/file-options "文件选项" + :mobile.intent/open-with-app "使用其他应用打开文件" + :mobile.intent/select-option-prompt "选择一个操作" + :mobile.intent/share "分享" + + :mobile.log/all "全部" + :mobile.log/errors-only "仅错误" + :mobile.log/full "完整日志" + :mobile.log/new-first "最新记录在前" + :mobile.log/old-first "最早记录在前" + :mobile.log/ui "UI 日志" + :mobile.log/worker "worker 日志" + + :mobile.settings/account "账户" + :mobile.settings/check-log "查看日志" + :mobile.settings/discord-community "Discord 社区" + :mobile.settings/forum "论坛" + :mobile.settings/github "GitHub 仓库" + :mobile.settings/report-bug "报告问题" + :mobile.settings/revision "修订" + :mobile.settings/theme "主题" + :mobile.settings/version "版本" + + :mobile.share/file-import-error "导入共享文件失败。请重试。" + :mobile.share/media-import-error "导入共享媒体失败。请重试。" + :mobile.share/unsupported-content-warning "暂不支持解析当前分享的内容。请将以下代码反馈到 {1},我们会尽快处理。" + :mobile.share/unsupported-import-type "不支持导入 {1} 文件。您可以在 {2} 上反馈,我们会尽快处理。" + + :mobile.tab/capture "捕获" + :mobile.tab/go-to "跳转" + :mobile.tab/graphs "图谱" + + :mobile.toolbar/audio "音频" + :mobile.toolbar/copy-ref "复制引用" + :mobile.toolbar/copy-url "复制链接" + :mobile.toolbar/hide "隐藏" + :mobile.toolbar/indent "缩进" + :mobile.toolbar/outdent "取消缩进" + :mobile.toolbar/photo "照片" + :mobile.toolbar/redo "重做" + :mobile.toolbar/reference "引用" + :mobile.toolbar/slash "斜杠" + :mobile.toolbar/tag "标签" + :mobile.toolbar/todo "待办" + :mobile.toolbar/undo "撤销" + :mobile.toolbar/unselect "取消选择" + + :nav/all-files "所有文件" + :nav/all-journals "所有日志" + :nav/appearance "外观" + :nav/assets "资产" + :nav/cannot-go-to-internal-page "不能跳转到内部页面。" + :nav/flashcards "记忆卡片" + :nav/graph "图谱" + :nav/graph-view "图谱视角" + :nav/help "帮助" + :nav/home "首页" + :nav/invalid-jump-error "无效跳转" + :nav/journals "日志" + :nav/plugins "插件" + :nav/search "搜索" + :nav/settings "设置" + :nav/skip-to-main-content "跳转到主内容" + :nav/tasks "任务" + :nav/themes "主题" + + :nav.all-pages/label "页面" + :nav.all-pages/title "页面" + + :node/built-in-cant-delete-error "无法删除内置项。" + :node/new "新建节点" :notification/clear-all "清除全部通知" + :notification/copied "已复制!" - :shortcut.category/formatting "格式化" - :shortcut.category/basics "基础操作" - :shortcut.category/navigating "移动" - :shortcut.category/block-editing "块编辑基本" + :onboarding.import/desc "如果它们是 EDN 或 Markdown 格式,Logseq 可以使用它们。" + :onboarding.import/sqlite-desc "将你的 Logseq 图谱的 SQLite 数据库导出文件导入到新的数据库图谱中" + :onboarding.import/title "你有想要导入的笔记吗?" + + :onboarding.import-option/desc "你也可以稍后在应用中进行此操作。" + :onboarding.import-option/title "导入已有笔记" + + :onboarding.setup/desc "首先,你需要选择一个文件夹,Logseq 将在其中存储你的想法、创意和笔记。" + :onboarding.setup/title (fn [] ["欢迎使用 " [:strong "Logseq!"]]) + + :page/add-to-favorites "添加收藏" + :page/added-tag-to-node "已将标签“{1}”添加到“{2}”" + :page/backlinks "双向链接" + :page/clear "清除" + :page/clear-local-storage-desc "此操作会删除一些次要的偏好设置,如暗色/亮色主题偏好。" + :page/cleared "已清除!" + :page/contents "目录" + :page/convert-to-tag "转换为标签" + :page/copy-url "复制页面 URL" + :page/create "创建新页面" + :page/created-at "创建日期" + :page/current-graph-as-sqlite-db "当前知识库的 SQLite 数据库" + :page/default-query-error "默认查询失败:" + :page/delete "删除本页" + :page/go-back-home "返回首页" + :page/hide-properties "收起属性" + :page/local-storage "本地存储" + :page/logseq-is-having-a-problem "Logseq 遇到了问题。请按以下安全步骤依次尝试恢复:" + :page/make-private "导出 HTML 时取消发布本页面" + :page/make-public "导出 HTML 时发布本页面" + :page/moved-to-recycle "节点已移至回收站" + :page/name "页面名称" + :page/no-page-found-to-copy "未找到可复制的页面" + :page/not-found "页面未找到" + :page/not-found-desc "抱歉!您查找的页面不存在。" + :page/not-found-title "页面未找到" + :page/not-found-warning "未找到页面" + :page/open-all-graphs-desc "您也可以前往 {{所有知识库}} 切换到另一个知识库。" + :page/open-issue-desc "如果以上故障排除步骤无法解决您的问题,请 {{提交一个 issue}}。" + :page/open-properties "展开属性" + :page/rebuild "重建" + :page/relaunch "重启" + :page/relaunch-desc "退出并重新打开应用。" + :page/scheduled-and-deadline "计划与截止日期" + :page/search-index "搜索索引" + :page/send-db-for-debugging "您可以将其发送至 help@logseq.com 进行调试。" + :page/something-went-wrong "出错了" + :page/step "步骤 {1}" + :page/the-app "应用" + :page/try "尝试" + :page/unfavorite "取消收藏" + :page/unknown "未知页面" + :page/updated-at "更新日期" + + :page.convert/block-parent-not-page "无法转换块,其父级不是页面。" + :page.convert/cant-be-block "页“{1}”无法转换为块。" + :page.convert/cant-be-block-has-children "页“{1}”无法转换为块,因为它具有子页。" + :page.convert/cant-be-block-move-first "页面“{1}”无法转换为块,请先将其移动到其他页面。" + :page.convert/page-to-tag-action "将“{1}”转换为标签" + :page.convert/page-to-tag-built-in "内置页面不能用作标签" + :page.convert/page-to-tag-duplicate "标签“{1}”已存在。" + :page.convert/page-to-tag-namespaced "命名空间页面不能作为标签" + :page.convert/property-value-to-page "无法将属性值转换为页面。" + :page.convert/tag-to-page-action "将标签转换为页面" + :page.convert/tag-to-page-built-in "内置标签不能转换为页面" + :page.convert/tag-to-page-confirm-desc "将标签转换为页面也会移除它的标签属性,并把所有已使用该标签的节点中的该标签一并移除。你确定要继续吗?" + :page.convert/tag-to-page-duplicate "页面“{1}”已存在。" + :page.convert/tag-to-page-has-children "此标签无法转换,因为它仍有子标签。必须先移除或转换所有子标签,才能转换此标签。" + + :page.delete/batch-confirm-title "确定要删除这些页面吗?属性和标签将被永久删除,页面将被移入回收站。" + :page.delete/confirm-title "确认要删除此页面吗?" + :page.delete/permanent-confirm-title "确定要永久删除此页面吗?" + :page.delete/success "页面“{1}”已成功删除!" + :page.delete/total "总计: {1}" + :page.delete/warning "这些页面的内容已删除,但无法删除:{1}。有关更多详细信息,请参阅 JavaScript 控制台。" + + :page.validation/cant-set-built-in-tags "新页面不能设置内置标签:{1}" + :page.validation/duplicate "另一个名为“{1}”的页面已存在,其标签为:{2}。" + :page.validation/name-blank "页面名称不能为空。" + :page.validation/name-no-hash "页面名不能包含 \"#\"。" + :page.validation/name-no-slash "页面名称不能包含 /。" + :page.validation/parents-must-be-pages "页面的父级必须是页面。" + + :pdf/annotations-page "批注页" + :pdf/area-highlight-shortcut "区域高亮({1})" + :pdf/auto-fit "自动适应" + :pdf/auto-open-context-menu "为选中文本自动打开上下文菜单" + :pdf/copy-ref "复制引用" + :pdf/copy-text "复制文本" + :pdf/corrupted-file-error "错误:{1}\n此 .pdf 文件是否已损坏?\n请使用外部 PDF 查看器确认。" + :pdf/doc-metadata "查看文档元数据" + :pdf/enter-to-search "按回车搜索" + :pdf/find-results "{1} / {2} 个匹配(\"{3}\")" + :pdf/generic-error "错误:{1}\n{2}\n请确认 PDF 文件资源。" + :pdf/highlight-mode "高亮模式" + :pdf/highlights "高亮" + :pdf/hl-block-colored "颜色标识高亮块" + :pdf/linked-ref "转到注解" + :pdf/load-highlights-file-error "错误:无法加载高亮文件:“{1}”。\r\n {2}" + :pdf/missing-file-error "错误:{1}\n路径是否正确?" + :pdf/more-settings "更多设置" + :pdf/no-outlines "无大纲" + :pdf/not-found "未找到。" + :pdf/open-in-app-window "在应用窗口中打开" + :pdf/open-in-external-window "在外部窗口中打开" + :pdf/outline "大纲" + :pdf/page-label "第 {1} 页" + :pdf/password-protected-desc "此文档受密码保护,请输入密码:" + :pdf/password-required "需要密码" + :pdf/search "搜索" + :pdf/search-placeholder "搜索" + :pdf/toggle-dashed "区域选取为虚线" + :pdf/viewer "PDF 查看器" + :pdf/zoom-in "放大" + :pdf/zoom-out "缩小" + + :plugin/all "全部" + :plugin/auto-update-check "是否自动检查更新" + :plugin/auto-update-check-feedback "自动检查更新:{1}!" + :plugin/check-all-updates "一键检查更新" + :plugin/check-update "检查更新" + :plugin/checked "已检查" + :plugin/checking-for-updates "正在检查插件更新 ..." + :plugin/contribute "✨编写和提交新插件" + :plugin/custom-js-alert "发现 custom.js 自定义脚本,是否允许执行?(如果你对该文件的内容不了解 或 来源不可靠,建议不要允许执行)" + :plugin/date-added "最新添加" + :plugin/delete-alert "确定删除插件 [{1}]?" + :plugin/disable-for-performance-feedback "插件 {1} 已被禁用。" + :plugin/disable-now "立即禁用" + :plugin/disabled "未开启" + :plugin/does-not-support-db "不支持 DB 知识库" + :plugin/downloads "下载量" + :plugin/empty "未找到任何内容。" + :plugin/enabled "已开启" + :plugin/existed-package "插件包已存在({1})。" + :plugin/fatal-error "致命错误:{1}" + :plugin/found-n-updates "发现 {1} 个插件待更新" + :plugin/found-updates "有更新" + :plugin/install "安装" + :plugin/install-error "安装失败:{1}\r\n {2}" + :plugin/installed "已安装" + :plugin/installed-plugin "已安装插件:{1}" + :plugin/installing "安装中" + :plugin/invalid-github-repo-url "无效的 GitHub 仓库 URL" + :plugin/invalid-package "非法的 Logseq 插件包。" + :plugin/invalid-plugins-edn "提供的 plugins.edn 无效。具体错误请查看 JavaScript 控制台" + :plugin/list-of-updates "可用的插件更新: " + :plugin/load-from-web-url "通过URL载入插件" + :plugin/load-plugin-indicator "加载插件:{1}..." + :plugin/load-unpacked "手动载入插件" + :plugin/loading-indicator "加载中" + :plugin/malformed-plugins-edn "提供的 plugins.edn 格式错误。请检查文件是否为正确的 EDN 语法。" + :plugin/marketplace "插件市场" + :plugin/new-registered "新插件已注册!" + :plugin/no-settings-schema "没有设置模式!" + :plugin/not-installed "未安装" + :plugin/open-logseq-dir "打开" + :plugin/open-package "打开包目录" + :plugin/open-preferences "打开插件偏好设置" + :plugin/open-settings "打开配置项" + :plugin/perf-tip "插件 {1} 加载时间过长,影响应用启动时间,并可能导致其他插件加载失败。" + :plugin/popular "热门" + :plugin/proxy-check-success "成功!状态码 {1},耗时 {2}ms。" + :plugin/readme-empty-warning "没有 README 内容。" + :plugin/refresh-lists "刷新插件列表" + :plugin/reload "重载" + :plugin/remote-error "远端错误:{1}" + :plugin/report-modal-desc "如果某个插件不可用,或者你认为它包含恶意代码,请发送邮件到 {1}。请说明插件名称以及其 GitHub 仓库 URL。Logseq 团队通常会在一个工作日内回复。" + :plugin/report-security "举报插件" + :plugin/restart "重启应用" + :plugin/search-plugin "搜索插件" + :plugin/security-warning "插件可以访问你的图谱和本地文件,请注意安全" + :plugin/setting-not-handled "#未处理# {1}" + :plugin/settings-schema-error "设置模式错误!" + :plugin/stars "收藏数" + :plugin/supports-db "支持 DB 图谱" + :plugin/title "标题({1})" + :plugin/uninstall "卸载" + :plugin/unpacked "未打包" + :plugin/unpacked-tips "用于开发目的或者从本地磁盘载入可信的社区插件。" + :plugin/up-to-date "已是最新版本 {1}" + :plugin/update "更新" + :plugin/update-all-selected "更新已选插件" + :plugin/update-all-success "全部已更新!" + :plugin/update-available "待更新" + :plugin/update-plugin "更新插件:{1} - {2}" + :plugin/updates-downloading "正在下载更新" + :plugin/updating "更新中" + + :plugin.install-from-file/menu-title "从 plugins.edn 安装" + :plugin.install-from-file/notice "以下插件会替换已安装的插件:" + :plugin.install-from-file/success "插件全部安装完毕!" + :plugin.install-from-file/title "从 plugins.edn 配置中安装插件" + + :plugin.install-from-web-url/effect-label "功能" + :plugin.install-from-web-url/repo-url-placeholder "GitHub 仓库链接" + :plugin.install-from-web-url/supports-note "URL 同时支持 GitHub 仓库和本地开发服务器。(例如:{1}、{2})" + :plugin.install-from-web-url/theme-label "主题" + + :plugin.package-config/detach-desc "移除它只会将该插件从 Logseq 中解绑,并保留源文件夹不变。" + :plugin.package-config/parse-error "解析插件包配置失败。" + :plugin.package-config/remove-error "移除损坏的插件失败。" + :plugin.package-config/remove-external-success "已从插件列表中移除损坏的插件。" + :plugin.package-config/remove-installed-success "已移除损坏的插件“{1}”。" + + :plugin.proxy/direct "直连" + :plugin.proxy/system "系统" + :plugin.proxy/test-url "测试 URL" + :plugin.proxy/testing "测试中" + + :plugin.settings/edit-settings-json "编辑 settings.json" + :plugin.settings/exit-code-mode "退出代码模式" + :plugin.settings/title "插件" + + :plugin.themes/default-desc "Logseq 默认主题({1})。" + :plugin.themes/default-name "默认主题({1})" + :plugin.themes/group "{1}" + :plugin.themes/light-and-dark "浅色与深色主题" + + :profiler/input-fn-placeholder "在此输入函数名" + :profiler/unregister "注销" + + :property/add-choice "添加选项" + :property/add-choices "添加选项" + :property/add-description "添加描述" + :property/add-new "添加属性" + :property/add-or-change "添加或更改属性" + :property/available-choices "可用选项" + :property/change-tooltip "修改“{1}”" + :property/checkbox-state-mapping "复选框状态映射" + :property/children-count "子项 ({1})" + :property/choices-count "{1} 个选项" + :property/choose-tag "选择标签" + :property/choose-tags "选择标签" + :property/clear-value "清空" + :property/configure "配置属性" + :property/convert-page-to-property "将“{1}”转换为属性" + :property/create-error "创建属性失败。" + :property/default-value "默认值" + :property/delete-from-node "从节点删除属性" + :property/delete-from-node-confirm "确认要从此节点删除此属性吗?" + :property/delete-from-tag "从标签删除属性" + :property/delete-from-tag-confirm "确认要从此标签删除此属性吗?" + :property/description-placeholder "描述" + :property/drag-to-reorder "拖拽以重新排序" + :property/existing-values "已有值:" + :property/go-to-this-property "跳转到此属性" + :property/hidden-properties "隐藏属性" + :property/hide-by-default "默认隐藏" + :property/hide-choice-for-tag "对此标签隐藏选项" + :property/hide-empty-value "隐藏空值" + :property/hide-for-tag "对 #{1} 隐藏" + :property/hide-hidden-choices "隐藏已隐藏的选项" + :property/map-checked-to "将已勾选映射到" + :property/map-unchecked-to "将未勾选映射到" + :property/more-settings "更多设置" + :property/multiple-values "多值" + :property/multiple-values-confirm "此操作不可撤销,确认要更改此属性为多值吗?" + :property/name "属性名称" + :property/name-placeholder "名称" + :property/nodes-with-property "具有该属性的节点" + :property/overdue "已逾期" + :property/private-built-in-not-usable "这是一个私有内置属性,不能使用。" + :property/select-choice "选择一个选项" + :property/select-property-placeholder "选择一个属性" + :property/select-type-placeholder "选择属性类型" + :property/self-reference "自引用" + :property/set-default-choice "设为默认选项" + :property/set-default-value "设置默认值" + :property/set-icon "设置图标" + :property/set-placeholder "设置“{1}”" + :property/set-property "设置属性" + :property/set-tags "设置标签" + :property/set-value "设置值" + :property/show-as-checkbox-on-node "在节点上显示为复选框" + :property/show-as-checkbox-on-tagged-nodes "在已标记节点上显示为复选框" + :property/show-hidden-choices "显示已隐藏的选项" + :property/skip-choosing-tag "跳过选择标签" + :property/specify-node-tags "指定节点标签" + :property/title-placeholder "标题" + :property/type "属性类型" + :property/type-change-warning "更改属性类型会清除部分属性配置。" + :property/type-checkbox "复选框" + :property/type-date "日期" + :property/type-datetime "日期时间" + :property/type-locked-help "属性类型一旦开始使用便会锁定" + :property/type-node "节点" + :property/type-number "数字" + :property/type-text "文本" + :property/type-url "网址" + :property/ui-position "界面位置" + :property/ui-position-block-below "块的下方" + :property/ui-position-block-left "块的开头" + :property/ui-position-block-right "块的结尾" + :property/ui-position-properties "块属性" + :property/unset-property "移除属性" + :property/update-success "属性已更新!" + + :property.built-in/alias "别名" + :property.built-in/asset "附件" + :property.built-in/asset-align "附件对齐" + :property.built-in/asset-checksum "文件校验和" + :property.built-in/asset-external-file-name "外部文件名" + :property.built-in/asset-external-url "外部 URL" + :property.built-in/asset-height "图片高度" + :property.built-in/asset-last-visit-page "最后访问页" + :property.built-in/asset-remote-metadata "文件远程元数据" + :property.built-in/asset-resize-metadata "附件缩放元数据" + :property.built-in/asset-size "文件大小" + :property.built-in/asset-type "文件类型" + :property.built-in/asset-width "图片宽度" + :property.built-in/background-color "背景颜色" + :property.built-in/built-in "是否内置?" + :property.built-in/checkbox-display-properties "显示为复选框的属性" + :property.built-in/choice-checkbox-state "选项复选框状态" + :property.built-in/choice-classes "选项标签" + :property.built-in/choice-exclusions "排除的选项" + :property.built-in/class-bidirectional-property-title "双向属性标题" + :property.built-in/class-enable-bidirectional "启用双向属性" + :property.built-in/class-extends "继承" + :property.built-in/class-hide-from-node "从节点隐藏" + :property.built-in/class-properties "标签属性" + :property.built-in/classes "属性类" + :property.built-in/closed-value-property "闭合值属性" + :property.built-in/code-lang "代码模式" + :property.built-in/collapsed "节点已折叠?" + :property.built-in/created-at "节点创建于" + :property.built-in/created-by-ref "节点创建者" + :property.built-in/created-from-property "由属性创建" + :property.built-in/deadline "截止日期" + :property.built-in/default-value "默认值" + :property.built-in/deleted-at "删除于" + :property.built-in/deleted-by-ref "删除者" + :property.built-in/description "描述" + :property.built-in/enable-history "启用属性历史" + :property.built-in/exclude-from-graph-view "从图谱视图中排除?" + :property.built-in/fsrs-due "到期" + :property.built-in/fsrs-state "状态" + :property.built-in/heading "标题" + :property.built-in/hide "隐藏此属性或页面" + :property.built-in/hide-empty-value "隐藏空值" + :property.built-in/history-block "历史块" + :property.built-in/history-property "历史属性" + :property.built-in/history-ref-value "历史值" + :property.built-in/history-scalar-value "历史标量值" + :property.built-in/icon "图标" + :property.built-in/journal-day "日记日期" + :property.built-in/journal-title-format "标题格式" + :property.built-in/link "节点链接到" + :property.built-in/linked-references-excludes "排除的引用" + :property.built-in/linked-references-includes "包含的引用" + :property.built-in/ls-type "LS 类型" + :property.built-in/node-display-type "节点显示类型" + :property.built-in/order "节点顺序" + :property.built-in/order-list-type "列表类型" + :property.built-in/page "节点所属页面" + :property.built-in/page-tags "页面标签" + :property.built-in/parent "父节点" + :property.built-in/priority "优先级" + :property.built-in/public "属性是否公开?" + :property.built-in/publish-published-url "已发布 URL" + :property.built-in/publishing-public "发布是否公开?" + :property.built-in/query "查询" + :property.built-in/reaction-emoji-id "表情回应" + :property.built-in/reaction-target "回应目标" + :property.built-in/recycle-original-order "回收站原始顺序" + :property.built-in/recycle-original-page "回收站原始页面" + :property.built-in/recycle-original-parent "回收站原始父节点" + :property.built-in/refs "节点引用" + :property.built-in/repeat-checked-property "重复的选中属性" + :property.built-in/repeat-recur-frequency "重复频率" + :property.built-in/repeat-recur-unit "重复单位" + :property.built-in/repeat-repeated "节点是否重复?" + :property.built-in/repeat-temporal-property "重复的时间属性" + :property.built-in/scalar-default-value "非引用类型默认值" + :property.built-in/scheduled "计划日期" + :property.built-in/status "状态" + :property.built-in/sync-large-title-object "存储在远程对象存储中的大型块标题引用" + :property.built-in/table-filters "视图筛选" + :property.built-in/table-hidden-columns "视图隐藏列" + :property.built-in/table-ordered-columns "视图列排序" + :property.built-in/table-pinned-columns "表格视图固定列" + :property.built-in/table-sized-columns "视图列设置" + :property.built-in/table-sorting "视图排序" + :property.built-in/tags "标签" + :property.built-in/template-applied-to "应用模板到标签" + :property.built-in/title "节点标题" + :property.built-in/type "属性类型" + :property.built-in/ui-position "属性位置" + :property.built-in/updated-at "节点更新于" + :property.built-in/used-template "使用的模板" + :property.built-in/user-avatar "用户头像" + :property.built-in/user-email "用户邮箱" + :property.built-in/user-name "用户名" + :property.built-in/value "属性值" + :property.built-in/view-context "属性视图上下文" + :property.built-in/view-feature-type "视图功能类型" + :property.built-in/view-for "此视图属于" + :property.built-in/view-group-by-property "视图按属性分组" + :property.built-in/view-sort-groups-by-property "视图分组排序依据" + :property.built-in/view-sort-groups-desc "视图分组降序" + :property.built-in/view-type "视图类型" + + :property.choice/already-exists "选项已存在。" + :property.choice/cant-delete-built-in "无法删除内置选项。" + :property.choice/invalid "此属性的选择“{1}”无效:{2}" + + :property.color/blue "蓝色" + :property.color/green "绿色" + :property.color/purple "紫色" + :property.color/red "红色" + :property.color/yellow "黄色" + + :property.priority/high "高" + :property.priority/low "低" + :property.priority/medium "中" + :property.priority/urgent "紧急" + + :property.repeat/date "重复日期" + :property.repeat/datetime "重复日期时间" + :property.repeat/every "每" + :property.repeat/is-label "是:" + :property.repeat/task "重复任务" + :property.repeat/when "当" + + :property.repeat-recur-unit/day "天" + :property.repeat-recur-unit/hour "小时" + :property.repeat-recur-unit/minute "分钟" + :property.repeat-recur-unit/month "月" + :property.repeat-recur-unit/week "周" + :property.repeat-recur-unit/year "年" + + :property.status/backlog "待办列表" + :property.status/canceled "已取消" + :property.status/doing "进行中" + :property.status/done "已完成" + :property.status/in-review "审核中" + :property.status/todo "待办" + + :property.validation/cant-convert-to-number "无法将“{1}”转换为数字。" + :property.validation/cant-remove-required "无法移除必需的属性。" + :property.validation/cant-set-self-value "无法将自身设为属性值。" + :property.validation/duplicate "属性“{1}”已存在。" + :property.validation/invalid-name "这是无效的属性名称。属性名称不能以页面引用字符“#”或“[[”开头。" + :property.validation/invalid-value "属性“{1}”具有无效值:{2}" + :property.validation/many-to-one "无法将多值属性改为单值属性。" + :property.validation/protected "此属性受保护,无法修改。" + + :property.view-type/gallery "画廊视图" + :property.view-type/list "列表视图" + :property.view-type/table "表格视图" + + :publish/action "发布" + :publish/dialog-desc "可选地为此页面设置密码保护。留空则为公开访问。" + :publish/dialog-title "发布页面" + :publish/invalid-page-error "发布失败:页面无效。" + :publish/password-optional-placeholder "可选密码" + :publish/publish-error "发布失败。" + :publish/published-to "发布到:{1}" + :publish/publishing "发布中..." + :publish/unpublish "取消发布" + :publish/unpublish-error "取消发布失败。" + :publish/unpublish-missing-page-id "取消发布失败:缺少页面 ID。" + :publish/unpublished "已取消发布。" + + :query/advanced-results "高级查询结果" + :query/custom-view-error "自定义视图错误:{1}" + :query/error "查询错误:" + :query/examples-desc "在 {{查询文档}} 查看更多示例。" + :query/examples-title "查询示例:" + :query/results-for "{1} 的结果" + + :query.builder/add-filter-or-operator-placeholder "添加过滤器/运算符" + :query.builder/between-end-label "结束日期" + :query.builder/between-journal-label "介于:{1} ~ {2}" + :query.builder/between-start-label "开始日期" + :query.builder/created-label "创建时间" + :query.builder/filter "筛选" + :query.builder/filter-full-text-search-label "全文搜索" + :query.builder/filter-page-label "页面" + :query.builder/filter-page-reference-label "页面引用" + :query.builder/filter-sample-label "采样" + :query.builder/operator-and-label "且" + :query.builder/operator-not-label "非" + :query.builder/replace-with-label "替换为:" + :query.builder/search-label "搜索:{1}" + :query.builder/show-built-in-properties "显示内置属性" + :query.builder/unwrap-operator "展开" + :query.builder/updated-label "更新时间" + :query.builder/wrap-filter-with-label "将此筛选器包裹为:" + + :reference/blocks "块引用" + :reference/copy "复制此引用" + :reference/delete "删除此引用" + :reference/page-filter "页面筛选" + :reference/replace-with-embed "替换为嵌入" + :reference/replace-with-text "替换为文本" + + :reference.filter/directions "点击以包含,Shift+点击以排除,再次点击以移除。" + :reference.filter/excludes "排除:" + :reference.filter/includes "包含:" + :reference.filter/search-placeholder "在链接的页面内搜索" + :reference.filter/title "过滤条件" + + :search/blank-input "空白输入" + :search/full-text-placeholder "全文搜索" + :search/index-progress "正在索引 {1}%" + :search/indices-rebuilt-success "搜索索引已成功重建!" + :search/no-result "未找到匹配项" + :search/result-count "{1} 个结果" + + :search.find-in-page/input-placeholder "在页面中查找" + :search.find-in-page/match-case "区分大小写" + :search.find-in-page/next-result "下一个结果" + :search.find-in-page/previous-result "上一个结果" + + :select/default-prompt "请选择" + :select/default-select-multiple "选择一个或多个" + :select/new-option "+ 新建选项:{1}" + + :server/error-notification "[服务器] {1}" + :server/mcp-url-copied "MCP URL 已复制到剪贴板!" + :server/start "启动服务器" + :server/stop "停止服务器" + :server/title "HTTP API 服务器" + + :server.config/auto-start-label "随应用启动自动启动服务器" + :server.config/port-label "端口(1 ~ 65535)" + :server.config/reset "重置" + :server.config/save-and-apply "保存并应用" + :server.config/title "服务器配置" + + :server.status/closed "已关闭" + :server.status/closing "关闭中" + :server.status/error "错误" + :server.status/running "运行中" + :server.status/starting "启动中" + :server.status/stopped "已停止" + + :server.token/add-new "+ 添加新令牌" + :server.token/name-placeholder "名称" + :server.token/regenerate-value "重新生成令牌值" + :server.token/title "授权令牌" + :server.token/update-success "令牌更新成功!" + :server.token/value-placeholder "值" + + :settings/account "账户" + :settings/advanced "高级" + :settings/ai "AI" + :settings/collaboration "协作" + :settings/editor "编辑器" + :settings/encryption "加密" + :settings/features "更多功能" + :settings/general "常规" + :settings/keymap "快捷键" + :settings/plugins "插件" + + :settings.account/storage-usage "{1}GB / {2}GB 总存储({3})" + :settings.account/synced-graphs "{1}/{2} 个同步图谱({3})" + + :settings.advanced/auto-chmod "自动更改文件权限" + :settings.advanced/auto-chmod-desc "禁用此功能可以允许多个用户在拥有用户组权限的情况下编辑文件。" + :settings.advanced/auto-updater "自动更新" + :settings.advanced/developer-mode "开发者模式" + :settings.advanced/developer-mode-desc "开发者模式帮助贡献者和扩展开发者更有效地测试他们与 Logseq 的集成。" + :settings.advanced/disable-sentry "向 Logseq 提供使用情况和诊断信息" + :settings.advanced/disable-sentry-desc "Logseq 从来不会收集或出售你的图谱数据。" + :settings.advanced/network-proxy "网络代理" + + :settings.ai/enable-mcp-server "MCP 服务器" + :settings.ai/enable-mcp-server-desc "启用 MCP 服务器,允许与本地 AI 应用通信" + + :settings.editor/auto-expand-block-refs "自动展开聚焦块的引用" + :settings.editor/auto-expand-block-refs-tip "此选项控制是否在页面加载时展开块引用" + :settings.editor/custom-date-format "首选日期页面格式" + :settings.editor/enable-all-pages-public "发布所有页面" + :settings.editor/enable-shortcut-tooltip "启用快捷键提示" + :settings.editor/enable-tooltip "开启提示框" + :settings.editor/preferred-outdenting "逻辑缩进" + :settings.editor/preferred-outdenting-tip "左侧显示默认设置的减少缩进效果,右侧显示可选设置的效果" + :settings.editor/preferred-outdenting-tip-more "→ 了解更多" + :settings.editor/preferred-pasting-file "保存链接为文件" + :settings.editor/preferred-pasting-file-hint "启用后,从互联网粘贴图片将自动下载并保存到本地" + :settings.editor/show-brackets "显示括号 [[]]" + :settings.editor/show-full-blocks "显示块引用的所有行" + :settings.editor/spell-checker "单词拼写检查" + :settings.editor/wide-mode "宽屏模式" + + :settings.features/enable-flashcards "记忆卡片" + :settings.features/enable-journals "开启日记" + :settings.features/home-default-page "设置首页默认页面" + :settings.features/home-default-page-update-success "主页默认页面已更新成功!" + :settings.features/journals-enable-success "已启用日志页" + :settings.features/login-prompt "你必须是 Logseq 的 Open Collective Sponsor 或者 Backer 才能提前使用新功能(仍在测试中),因此需要登录。" + :settings.features/page-not-found "页面“{1}”尚不存在。请先创建该页面,然后再试一次。" + :settings.features/plugin-system "插件系统" + + :settings.general/accent-color "高亮色" + :settings.general/accent-color-alert "选择高亮色可能会影响你选择的自定义主题。" + :settings.general/accent-color-logseq "Logseq 经典配色" + :settings.general/accent-color-none-desc "取消强调色。该功能目前仍处于测试阶段,主要用于兼容自定义主题。" + :settings.general/changelog "更新内容" + :settings.general/check-for-updates "检查更新" + :settings.general/current-revision-label "当前修订:" + :settings.general/current-version "当前版本" + :settings.general/custom-configuration "自定义配置" + :settings.general/custom-global-configuration "自定义全局配置" + :settings.general/custom-theme "自定义主题" + :settings.general/edit-config-edn "编辑 config.edn (当前库)" + :settings.general/edit-custom-css "编辑 custom.css (当前库)" + :settings.general/edit-export-css "修改导出样式 export.css" + :settings.general/edit-global-config-edn "编辑全局 config.edn" + :settings.general/editor-font "编辑器字体" + :settings.general/editor-font-set-global "设为全局字体" + :settings.general/export-theme "导出主题" + :settings.general/language "语言" + :settings.general/native-titlebar "原生标题栏" + :settings.general/native-titlebar-desc "在Windows和Linux上启用系统原生风格的窗口标题栏。" + :settings.general/refresh-required-feedback "请刷新应用以使此更改生效" + :settings.general/release-channel "发布渠道" + :settings.general/revision "版本:{1}" + :settings.general/theme-dark "深色模式" + :settings.general/theme-light "浅色模式" + :settings.general/theme-system "跟随系统" + + :settings.sync-server/clear-success "已清除同步服务器 URL。将使用官方 Logseq Sync。" + :settings.sync-server/reset "恢复默认值" + :settings.sync-server/save-success "已保存同步服务器 URL。" + :settings.sync-server/url "同步服务器 URL" + :settings.sync-server/url-desc "为自托管同步设置自定义 HTTPS 同步服务器 URL。你的 Logseq 身份验证令牌会发送到该服务器,因此只应使用可信的 URL。留空则使用官方 Logseq Sync。" + :settings.sync-server/url-invalid-error "URL 必须以 https:// 或 http:// 开头" + + :shell/input-command-title "输入命令" + + :shortcut.category/basics "基础操作" :shortcut.category/block-command-editing "块编辑文本操作" - :shortcut.category/block-selection "块选择操作" - :shortcut.category/toggle "切换" - :shortcut.category/others "其他" - :shortcut.category/plugins "插件" - :keymap/all "全部" - :keymap/disabled "已禁用" - :keymap/unset "未设置" - :keymap/custom "自定义" - :keymap/keystroke-filter "按键过滤" - :command.auto-complete/complete "自动完成:选择当前项" - :command.auto-complete/next "自动完成:选择下一项" - :command.auto-complete/prev "自动完成:选择上一项" - :command.auto-complete/shift-complete "自动完成:在侧边栏打开" - :command.cards/toggle-answers "卡片:显示/隐藏 答案/填空" - :command.command/run "运行 git 命令" - :command.command/toggle-favorite "切换收藏" - :command.editor/copy-embed "复制指向当前块的嵌入块" - :command.editor/copy-text "复制选中的文本" - :command.editor/escape-editing "转义编辑" - :command.editor/insert-youtube-timestamp "插入 Youtube 时间戳" - :command.editor/paste-text-in-one-block-at-point "粘贴文本到块的点" - :command.editor/select-down "选择下面内容" - :command.editor/select-up "选择上面的内容" - :command.editor/strike-through "删除线" - :command.go/all-graphs "所有图谱" - :command.go/all-pages "全部页面" - :command.go/electron-jump-to-the-next "跳转到查找栏搜索的下一个匹配项" - :command.go/electron-jump-to-the-previous "跳转到查找栏搜索的上一个匹配项" - :command.go/flashcards "记忆卡片" - :command.go/graph-view "记忆图谱" - :command.go/home "首页" - :command.go/keyboard-shortcuts "快捷键" - :command.go/next-journal "下一篇日记" - :command.go/prev-journal "上一篇日记" - :command.go/tomorrow "明天" - :command.graph/add "添加图谱" - :command.graph/export-as-html "将公共图谱导出为 html" - :command.graph/open "打开图谱" - :command.graph/remove "移除图谱" - :command.sidebar/open-today-page "在侧边栏打开今日" - :command.ui/goto-plugins "插件" - :command.ui/select-theme-color "选择皮肤颜色" - :command.ui/toggle-left-sidebar "切换左侧边栏" - :command.editor/indent "缩进块标签" - :command.editor/outdent "取消缩进块" - :command.editor/move-block-up "向上移动块" - :command.editor/move-block-down "向下移动块" - :command.editor/new-block "创建块" - :command.editor/new-line "块中新建行" - :command.editor/zoom-in "聚焦" - :command.editor/zoom-out "退出聚焦" - :command.editor/follow-link "跟随光标下的链接" - :command.editor/open-link-in-sidebar "在侧边栏打开" - :command.editor/expand-block-children "展开" - :command.editor/collapse-block-children "折叠" - :command.editor/select-block-up "选择上方的块" - :command.editor/select-block-down "选择下方的块" - :command.editor/select-all-blocks "选择所有块" - :command.pdf/find "Pdf: 查找当前 pdf 文档的文本" - :command.pdf/previous-page "上一页PDF文档" - :command.pdf/next-page "下一页PDF文档" - :command.pdf/close "关闭当前PDF文档" - :command.ui/toggle-help "显示/关闭帮助" - :command.go/search "搜索页面和块" - :command.go/backward "回退" - :command.go/forward "前进" - :command.go/electron-find-in-page "在当前页面查找文本" - :command.ui/toggle-document-mode "切换文档模式" - :command.ui/toggle-contents "打开/关闭目录" - :command.ui/toggle-theme "在暗色/亮色主题之间切换" - :command.ui/toggle-right-sidebar "启用/关闭右侧栏" - :command.ui/toggle-settings "显示/关闭设置" - :command.go/journals "跳转到日记" - :command.ui/toggle-wide-mode "切换宽屏模式" - :command.ui/toggle-brackets "切换是否显示括号" - :command.search/re-index "重新建立搜索索引" - :command.editor/bold "粗体" - :command.editor/italics "斜体" - :command.editor/insert-link "Html 链接" - :command.editor/highlight "高亮" - :command.editor/undo "撤销" - :command.editor/redo "重做" - :command.editor/copy "复制" - :command.editor/cut "剪切" - :command.editor/up "向上移动光标 / 向上选择" - :command.editor/down "向下移动光标 / 向下选择" - :command.editor/left "向左移动光标 / 向左选择" - :command.editor/right "向右移动光标 / 向右选择" - :command.editor/backspace "向左删除" - :command.editor/delete "向右删除" - :command.editor/cycle-todo "切换TODO状态" - :command.editor/clear-block "清除块内容" - :command.editor/kill-line-before "删除光标左侧行" - :command.editor/kill-line-after "删除光标右侧行" - :command.editor/beginning-of-block "移动光标到块开始位置" - :command.editor/end-of-block "移动光标到块末尾" - :command.editor/forward-word "光标向后移动一个单词" - :command.editor/backward-word "光标向前移动一个单词" - :command.editor/forward-kill-word "向后删除一个单词" - :command.editor/backward-kill-word "向前删除一个单词" - :command.editor/open-edit "编辑选中块" - :command.editor/delete-selection "删除选中块" - :command.editor/toggle-open-blocks "切换折叠/展开所有块(非编辑状态)"} + :shortcut.category/block-editing "块编辑基本" + :shortcut.category/block-selection "块选择操作" + :shortcut.category/formatting "格式化" + :shortcut.category/navigating "移动" + :shortcut.category/others "其他" + :shortcut.category/plugins "插件" + :shortcut.category/toggle "切换" + + :sidebar.left/favorites "收藏页面" + :sidebar.left/navigations "导航" + :sidebar.left/recent-pages "最近使用" + + :sidebar.right/close "关闭" + :sidebar.right/close-all "关闭全部" + :sidebar.right/close-others "关闭其他" + :sidebar.right/collapse "折叠" + :sidebar.right/collapse-all "折叠全部" + :sidebar.right/collapse-others "折叠其他" + :sidebar.right/expand "展开" + :sidebar.right/expand-all "展开全部" + :sidebar.right/more "更多" + :sidebar.right/open "在侧边栏打开" + :sidebar.right/open-as-page "以页面形式打开" + :sidebar.right/resize-handle "调整右侧边栏大小" + :sidebar.right/toggle "切换右侧边栏" + + :storage/invalid-data-writing "无效数据写入。" + :storage/sqlitedb-error "SQLiteDB 错误:{1}" + :storage/sqlitedb-import-error "SQLiteDB 导入错误:{1}" + :storage/sqlitedb-save-error "SQLiteDB 保存错误:{1}" + + :storage.recycle/block-deleted-at "块已删除 {1}" + :storage.recycle/empty "回收站为空。" + :storage.recycle/page-deleted-at "页面已删除 {1}" + :storage.recycle/readonly "回收站是只读的。" + :storage.recycle/restore "恢复" + :storage.recycle/retention-desc "已删除的页面和块会保留在此处,直到被恢复或在 30 天后被自动垃圾回收。" + :storage.recycle/title "回收站" + + :sync/assets-downloading-count "正在下载资源({1})" + :sync/assets-uploading-count "正在上传资源({1})" + :sync/creating-remote-graph "正在创建远程图谱..." + :sync/downloading "下载中..." + :sync/downloading-graph "正在下载 {1}……" + :sync/graph-count-exceed-limit "同步图谱数量超出限制" + :sync/invitation-sent "邀请已发送!" + :sync/last-synced-time-label "上次同步时间:{1}" + :sync/more-debug-info "更多调试信息" + :sync/offline "离线" + :sync/online "在线" + :sync/pending-local-changes "待同步的本地更改" + :sync/pending-server-changes "待同步的服务器更改" + :sync/something-wrong "出了点问题,请重试。" + :sync/start-sync "开始同步" + :sync/storage-exceed-limit "同步存储超出限制" + :sync/uploading "上传中..." + :sync/user-doesnt-exist-yet "该用户尚不存在。" + + :theme/logseq-default "Logseq 默认主题" + :theme/switch-to "切换到 {1} 主题" + + :ui/all-done "全部完成!" + :ui/apply "应用" + :ui/cancel "取消" + :ui/close "关闭" + :ui/configure "配置" + :ui/confirm "确认" + :ui/copy "复制" + :ui/copy-all "全部复制" + :ui/copy-to-clipboard "复制到剪贴板" + :ui/create "创建" + :ui/date-natural-language-placeholder "例如:下周" + :ui/delete "删除" + :ui/deleted "已删除" + :ui/dont-remind-me-again "不再提醒" + :ui/empty "空" + :ui/error "错误" + :ui/error-boundary-error "界面捕获到错误!\n {1}" + :ui/export "导出" + :ui/false "否" + :ui/fix "修复" + :ui/frequently-used "常用" + :ui/from "从:" + :ui/host "主机" + :ui/image "图片" + :ui/label "标签" + :ui/link "链接" + :ui/load-more "加载更多" + :ui/loading "加载中..." + :ui/login "登录" + :ui/logout "退出登录" + :ui/off "关闭" + :ui/on "开启" + :ui/open "打开" + :ui/open-named "打开 {1}" + :ui/port "端口" + :ui/refresh "刷新" + :ui/relaunch-confirm "此更改需重启应用,是否立即重启?" + :ui/remove-background "移除背景" + :ui/reset "重置" + :ui/run "运行" + :ui/save "保存" + :ui/show-less "收起" + :ui/show-more "更多" + :ui/skip "跳过" + :ui/submit "提交" + :ui/to "到:" + :ui/toggle-theme "切换主题" + :ui/true "是" + :ui/type "类型" + :ui/untitled "无标题" + :ui/use-current-time "使用当前时间" + :ui/yes "是" + + :updater/checking-for-updates "正在检查更新" + :updater/downloading-progress "正在下载更新({1}%)" + :updater/quit-and-install "重启并安装" + :updater/up-to-date "应用已是最新版本 🎉" + :updater/update-available "发现新版本" + :updater/update-error "⚠️ 哎呀,出了点问题!\n请查看{1}。" + :updater/update-ready-to-install "更新已准备就绪" + + :view/add-new-view "添加新视图" + :view/all "全部" + :view/export-edn "导出 EDN" + :view/linked-references "已链接的引用" + :view/new "新建" + :view/new-property "新建属性" + :view/new-view "新建视图" + :view/rename "重命名" + :view/results "结果:" + :view/unlinked-references "未链接的引用" + + :view.filter/custom-date "自定义日期" + :view.filter/empty "空" + :view.filter/filter "筛选" + :view.filter/from "从" + :view.filter/is-empty "为空" + :view.filter/is-not-empty "不为空" + :view.filter/match "匹配" + :view.filter/match-all-filters "匹配所有筛选条件" + :view.filter/match-any-filter "匹配任一筛选条件" + :view.filter/operator-after "晚于" + :view.filter/operator-before "早于" + :view.filter/operator-between "介于" + :view.filter/operator-date-after "日期晚于" + :view.filter/operator-date-before "日期早于" + :view.filter/operator-is "是" + :view.filter/operator-is-not "不是" + :view.filter/operator-text-contains "包含文本" + :view.filter/operator-text-not-contains "不包含文本" + :view.filter/or "或" + :view.filter/relative-1-day-ago "1 天前" + :view.filter/relative-1-month-ago "1 个月前" + :view.filter/relative-1-week-ago "1 周前" + :view.filter/relative-1-year-ago "1 年前" + :view.filter/relative-3-days-ago "3 天前" + :view.filter/relative-3-months-ago "3 个月前" + :view.filter/to "到" + :view.filter/type-to-search "输入以搜索" + + :view.table/ascending "升序" + :view.table/columns-visibility "列可见性" + :view.table/default-title "{1} 个节点" + :view.table/delete-sort "删除排序" + :view.table/descending "降序" + :view.table/drag-to-reorder "拖放以重新排序" + :view.table/group-by "分组" + :view.table/group-journal-date "日志日期" + :view.table/group-page-created-date "页面创建日期" + :view.table/group-page-name "页面名称" + :view.table/group-page-updated-date "页面更新日期" + :view.table/live-query-title "实时查询({1})" + :view.table/name-column "名称" + :view.table/no-group-value "无 {1}" + :view.table/page "页面" + :view.table/pages "页面" + :view.table/pin "固定" + :view.table/row-number "行号" + :view.table/select-all "全选" + :view.table/select-column "选择" + :view.table/select-order "选择排序" + :view.table/select-row "选择行" + :view.table/selected-count "已选中:{1}" + :view.table/sort-ascending "升序排列" + :view.table/sort-descending "降序排列" + :view.table/sort-groups-by "分组排序依据" + :view.table/sort-groups-order "分组排序方向" + :view.table/total-refs-count "总引用数" + :view.table/unpin "取消固定" + + :window/close "关闭" + :window/exit-fullscreen "退出全屏" + :window/maximize "最大化" + :window/minimize "最小化" + :window/restore "还原" + + :youtube/embed-first-reminder-mobile "请先嵌入一个 YouTube 视频,然后再使用此图标。\r\n 请记住:在移动端,你可以将原始 YouTube URL 直接粘贴为嵌入视频。" + :youtube/player-not-ready "YouTube 播放器尚未准备好。" + :youtube/timestamps-not-available-mobile "移动端暂不支持 YouTube 时间戳。" + + :zotero/attachments "附件" + :zotero/imported-file-warning "这是一个从 Zotero 导入的文件,设置 Zotero 数据目录 后即可在 Logseq 中打开该文件。" + :zotero/linked-file-warning "这是一个 Zotero 链接文件,设置 Zotero 链接附件基础目录 后即可在 Logseq 中打开该文件。" + :zotero/notes "笔记" +} diff --git a/src/resources/dicts/zh-hant.edn b/src/resources/dicts/zh-hant.edn index 420c71ec25..0245bd111c 100644 --- a/src/resources/dicts/zh-hant.edn +++ b/src/resources/dicts/zh-hant.edn @@ -1,232 +1,1861 @@ -{:accessibility/skip-to-main-content "跳轉到主頁面" - :help/start "入門" - :help/about "關於 Logseq" - :help/roadmap "路線圖" - :help/bug "問題回報" - :help/feature "功能建議" - :help/changelog "更新紀錄" - :help/blog "Logseq 部落格" - :help/docs "文件" - :help/privacy "隱私聲明" - :help/terms "服務條款" - :help/forum-community "論壇社群" - :help/awesome-logseq "很棒的 Logseq" - :help/shortcuts "快捷鍵" - :help/shortcuts-triggers "觸發" - :help/shortcut "快捷鍵" - :help/slash-autocomplete "Slash 自動" - :help/reference-autocomplete "頁面引用自動完成" - :help/block-reference "區塊引用" - :help/open-link-in-sidebar "在側邊欄開啟連結r" - :search-item/page "頁面" - :help/context-menu "區塊內容選單" - :help/markdown-syntax "Markdown 格式" - :bold "粗體" - :italics "斜體" - :highlight "高亮" - :strikethrough "刪除線" - :code "程式" - :untitled "無標題文件" - :right-side-bar/help "幫助" - :right-side-bar/switch-theme "主題模式" - :right-side-bar/contents "內容" - :right-side-bar/page-graph "頁面圖表" - :right-side-bar/block-ref "區塊引用" - :right-side-bar/graph-view "圖表顯示" - :right-side-bar/flashcards "卡片" - :right-side-bar/show-journals "顯示日記頁面" - :right-side-bar/separator "右側邊欄調整大小" - :left-side-bar/journals "日記頁面" - :left-side-bar/nav-favorites "我的最愛" - :left-side-bar/nav-recent-pages "最近" - :page/something-went-wrong "出了些問題" - :page/logseq-is-having-a-problem "Logseq 出了些問題。請按照以下安全步驟將其恢復到正常狀態:" - :page/step "步驟 {1}" - :page/try "嘗試" - :page/make-public "將其公開讓所有人均可檢視" - :page/make-private "將其轉為私人" - :page/delete "刪除頁面" - :page/add-to-favorites "加入我的最愛" - :page/unfavorite "從我的最愛移除" - :block/name "頁面名稱" - :page/copy-page-url "複製頁面連結" - :file/name "檔案名稱" - :file/last-modified-at "最後更新於" - :file/no-data "沒有資料" - :file/format-not-supported "目前不支援 .{1} 檔案格式" - :page/created-at "創建於" - :page/updated-at "更新於" - :page/backlinks "反向連結" - :linked-references/filter-search "在已連結頁面搜尋" - :editor/block-search "正在搜尋區塊" - :text/image "圖片" - :asset/show-in-folder "於資料夾顯示圖片" - :asset/open-in-browser "於瀏覽器開啟圖片" - :asset/delete "刪除圖片" +{ + :account/authentication "身份驗證" + :account/benefits-desc "擁有 Logseq 帳戶後,您可以使用雲端服務,如 Logseq Sync 及 alpha/beta 功能。" + :account/billing "帳單" + :account/billing-expired-on-label "Pro 方案已於 {1} 到期" + :account/billing-expires-on-label "Pro 方案將於 {1} 到期" + :account/billing-next-date-label "下次帳單日期:{1}" + :account/core-features "使用 Logseq 核心功能" + :account/current-plan "目前方案" + :account/delete-account "刪除帳戶" + :account/discover-sync-desc "探索 {1} 的強大功能" + :account/early-access-alpha-beta "搶先體驗 alpha/beta 功能" + :account/first-name "名字" + :account/free-plan-sync-limit "1 個同步圖譜(最多 50MB,僅限筆記)" + :account/last-name "姓氏" + :account/manage-plan "管理方案" + :account/month "月" + :account/no-asset-syncing "不支援素材同步" + :account/open-invoices "查看發票" + :account/plan-free "免費版" + :account/plan-free-summary "開始使用基本同步功能" + :account/plan-pro "專業版" + :account/plan-pro-summary "解鎖進階同步及更多功能" + :account/pro-plan-sync-limit "10 個同步圖譜(每個最多 5GB)" + :account/profile "個人資料" + :account/refresh-token-warning "重新整理權杖時收到異常狀態" + :account/reset-password "重設密碼" + :account/sign-up "註冊" + :account/sync-assets-limit "同步素材,每個檔案最多 100MB" + :account/synced-status "已同步" + :account/unlimited-unsynced-graphs "無限制的未同步圖譜" + :account/upcoming-cloud-features "即將推出的雲端功能,包括 Logseq Publish" + :account/upgrade-plan "升級方案" + :account/username "使用者名稱" + + :asset/acceptable-file-extensions "允許的副檔名" + :asset/add-assets "新增素材" + :asset/add-directory "新增目錄" + :asset/alias-already-exists "別名「{1}」已存在!" + :asset/alias-directories "別名目錄" + :asset/alias-directory-path-label "目錄路徑:" + :asset/alias-name-dialog-title "為此選擇的目錄設定別名" + :asset/alias-name-label "別名:" + :asset/alias-name-placeholder "例如 Books" + :asset/align "對齊" + :asset/align-center "置中對齊" + :asset/align-left "靠左對齊" + :asset/align-right "靠右對齊" + :asset/already-exists "資源已存在,標題:{1},節點引用:[[{2}]]" + :asset/cannot-embed-parent-as-own-property "不能把父區塊嵌入成它自己的屬性" + :asset/confirm-delete-image "你確定要刪除這張圖片嗎?" :asset/copy "複製圖片" + :asset/copy-image-unsupported-extension "不支援複製 {1} 檔案中的圖片" + :asset/create-local-copy-warning "正在從外部來源建立本機素材。PDF 註解需要本機素材才能正常運作。" + :asset/create-title "建立素材" + :asset/delete "刪除圖片" + :asset/downloading "正在下載" + :asset/drop-hint "將檔案拖放至此處,或點擊選擇檔案" + :asset/edit-title "編輯素材" + :asset/external-url-label "素材外部網址:" + :asset/file-extension-placeholder "例如 mp3" :asset/maximize "圖片最大化" - :asset/ref-block "資源塊引用" - - :asset/confirm-delete "你確定要刪除 {1} 嗎?" + :asset/open-in-browser "於瀏覽器開啟圖片" :asset/physical-delete "同時刪除原檔案(將無法還原)" - :color/gray "灰色" - :color/red "紅色" - :color/yellow "黃色" - :color/green "綠色" + :asset/ref-block "資源塊引用" + :asset/select-file "選擇素材檔案" + :asset/select-from-disk "從磁碟選擇" + :asset/selected-directories "已選擇的目錄:" + :asset/show-file-in-folder "於資料夾顯示檔案" + :asset/size-too-large "資源大小不能超過 100M" + :asset/syncing "正在同步" + :asset/title-label "素材標題:" + :asset/transfer-placeholder "{1} 個素材..." + :asset/uploading "正在上傳" + + :block/click-to-fix-query "點擊修復查詢:{1}" + :block/copy-ref "複製區塊引用連結" + :block/copy-url "複製區塊 URL" + :block/created-label "建立時間:{1}" + :block/deprecated-latex-export "'#+BEGIN_EXPORT latex' 已棄用。請改用「/Math block」指令。" + :block/deprecated-query-syntax "#+BEGIN_QUERY 已棄用。請改用「/Advanced Query」指令。" + :block/deprecated-quote "#+BEGIN_QUOTE 已棄用。請改用「/Quote」指令。" + :block/empty-url "空白網址" + :block/excalidraw-no-longer-supported "Excalidraw 已不再預設支援,我們計劃透過外掛程式支援。" + :block/extraction-error "擷取區塊時發生未預期錯誤。" + :block/hide-query "隱藏查詢" + :block/invalid-hiccup "無效的 hiccup" + :block/invalid-link "無效的連結" + :block/invalid-url "無效的網址" + :block/large-block-warning "大型區塊將無法編輯或搜尋,以避免拖慢應用程式,請使用其他編輯器編輯此區塊。" + :block/last-edited-label "最後編輯時間:{1}" + :block/not-found-warning "未找到區塊" + :block/open-block-references "開啟區塊引用" + :block/practice "練習" + :block/practice-cards "練習卡片" + :block/ref-nesting-too-deep "區塊引用巢狀層級過深" + :block/remove-tag "移除標籤" + :block/remove-this-tag "移除此標籤" + :block/render-error "區塊渲染錯誤:" + :block/set-query "設定查詢" + :block/set-query-label "設定查詢:" + :block/sort-order "排序方式" + :block/status-history "狀態歷史" + :block/untitled-query "未命名查詢" + + :block.macro/embed-deprecated "{{embed}} 已棄用。請改用 '/Node embed' 命令。" + :block.macro/namespace-deprecated "{{namespace}} 已棄用。請改用 {1} 功能。" + :block.macro/query-deprecated "{{query}} 已棄用。請改用 '/Query' 命令。" + :block.macro/unsupported-name "不支持的巨集名稱:{1}" + + :block.reaction/emoji-required-warning "請先選擇一個表情回應。" + :block.reaction/unsupported-emoji-warning "不支援該表情回應。" + + :bug-report/desc "你可以幫助我們提交一個錯誤報告嗎?我們會盡快解決。" + :bug-report/title "BUG 上報" + + :bug-report.clipboard/action-desc "檢查和收集剪貼簿資料" + :bug-report.clipboard/action-title "剪貼簿助手" + :bug-report.clipboard/desc "你可以使用這些便利的工具來提供給我們額外的資訊。" + :bug-report.clipboard/title "你遇到的錯誤是否與這些功能有關?" + + :bug-report.inspector/back "返回" + :bug-report.inspector/clipboard-desc "這是從剪貼簿讀取的資料。" + :bug-report.inspector/copied "已複製到剪貼簿!" + :bug-report.inspector/copy "複製結果" + :bug-report.inspector/copy-desc "如果可以共享,請點選複製按鈕。" + :bug-report.inspector/create-issue "建立一個 issue" + :bug-report.inspector/create-issue-desc "現在你可以回報貼上到剪貼簿的結果了。請將結果貼上到「Additional Context」部分,並說明原始內容是從哪裡複製的。謝謝!" + :bug-report.inspector/desc "按下 {1} 鍵來檢查你的剪貼簿資料\n如果你正在使用行動版,請點選此處貼上" + :bug-report.inspector/placeholder "如果你在手機上,請長按此處進行貼上" + :bug-report.inspector/tip "出了點問題?沒關係,點選返回到上一步。" + :bug-report.inspector/title "剪貼簿資料檢視器" + + :bug-report.issue/action-desc "幫助改進 Logseq!" + :bug-report.issue/action-title "提交錯誤報告" + :bug-report.issue/desc "如果沒有可用的工具供你收集額外的資訊,請直接報告錯誤。" + :bug-report.issue/report-link "回報問題" + :bug-report.issue/title "或..." + + :class/add-property "新增標籤屬性" + :class/tag-properties-desc "標籤屬性會被所有使用該標籤的節點繼承。例如,每個 #Task 節點都會繼承「Status」與「Priority」。" + :class/tagged-nodes "已加標籤的節點" + + :class.built-in/asset "素材" + :class.built-in/card "卡片" + :class.built-in/cards "卡片集" + :class.built-in/code-block "程式碼" + :class.built-in/journal "日誌" + :class.built-in/math-block "數學" + :class.built-in/page "頁面" + :class.built-in/pdf-annotation "PDF 註解" + :class.built-in/property "屬性" + :class.built-in/query "查詢" + :class.built-in/quote-block "引用" + :class.built-in/root "根標籤" + :class.built-in/tag "標籤" + :class.built-in/task "任務" + :class.built-in/template "範本" + :class.built-in/whiteboard "白板" + + :class.validation/built-in-extends-change "無法修改內建項的繼承關係。" + :class.validation/cant-add-tag-on-built-in "无法在内置“{1}”上添加标签。" + :class.validation/cant-remove-private-tags "無法刪除私有標籤:{1}。" + :class.validation/cant-remove-tag-built-in "无法删除带有内置 #{1} 的标签。" + :class.validation/cant-remove-tag-on-built-in "无法删除内置“{1}”上的标签。" + :class.validation/cant-set-tag-built-in "无法使用内置#{1} 设置标签。" + :class.validation/duplicate "標籤「{1}」已存在。" + :class.validation/extends-cycle "繼承關係出現迴圈。" + :class.validation/invalid-extends-type "無效的繼承型別。" + :class.validation/parents-must-be-tags "標籤的父級必須是標籤。" + :class.validation/tag-with-non-tag "無法使用不是標籤「{1}」的內建頁面設定標籤。" + + :cmdk.action/apply-theme "套用主題" + :cmdk.action/copy-ref "複製引用" + :cmdk.action/create "建立" + :cmdk.action/filter "篩選" + :cmdk.action/open "開啟" + :cmdk.action/open-in-sidebar "在側邊欄開啟" + :cmdk.action/search "搜尋" + :cmdk.action/trigger "觸發" + + :cmdk.create/configure-tag "設定標籤" + :cmdk.create/page "建立頁面" + :cmdk.create/tag "建立標籤" + + :cmdk.error/no-block-link "此塊內容中未找到連結。" + :cmdk.error/no-page-link "此頁面屬性中未找到連結。" + :cmdk.error/no-search-item-link "此搜尋項沒有連結。" + + :cmdk.filter/add "新增" + :cmdk.filter/codes "僅搜尋程式碼" + :cmdk.filter/commands "僅搜尋命令" + :cmdk.filter/current-page "目前頁面" + :cmdk.filter/files "檔案" + :cmdk.filter/nodes "節點" + :cmdk.filter/only-label "僅搜尋:" + :cmdk.filter/themes "僅搜尋主題" + + :cmdk.group/codes "程式碼" + :cmdk.group/commands "命令" + :cmdk.group/create "建立" + :cmdk.group/current-page "當前頁面" + :cmdk.group/files "檔案" + :cmdk.group/filters "篩選條件" + :cmdk.group/nodes "節點" + :cmdk.group/recently-updated "最近更新" + :cmdk.group/themes "主題" + + :cmdk.info/configure-tag "設定 #{1}" + :cmdk.info/create-page "建立名為「{1}」的頁面" + :cmdk.info/create-tag "建立名為「{1}」的標籤" + + :cmdk.input/add-graph-filter-placeholder "新增圖譜篩選" + :cmdk.input/default-placeholder "你在找什麼?" + :cmdk.input/move-blocks-placeholder "移動塊到" + :cmdk.input/type-page-name-placeholder "輸入要建立的頁面名稱" + + :cmdk.tip/clear-filter "按 {1} 以清除搜尋篩選" + :cmdk.tip/filter-results "按 {1} 以篩選搜尋結果" + :cmdk.tip/label "提示:" + :cmdk.tip/open-sidebar "按 {1} 以在側邊欄中開啟搜尋" + + :collaboration/email-address "電子郵件地址" + :collaboration/invite "邀請" + :collaboration/members "成員:" + :collaboration/remove-access "移除存取權限" + :collaboration/remove-access-error "移除成員失敗。" + :color/blue "藍色" - :color/purple "紫色" + :color/crimson "深紅色" + :color/cyan "青色" + :color/grass "草綠色" + :color/gray "灰色" + :color/green "綠色" + :color/indigo "靛藍色" + :color/orange "橙色" :color/pink "粉紅色" - :editor/copy "複製" + :color/plum "李子色" + :color/purple "紫色" + :color/red "紅色" + :color/teal "藍綠色" + :color/tomato "番茄色" + :color/violet "紫羅蘭色" + :color/yellow "黃色" + + :command.auto-complete/complete "自動完成:選擇當前項" + :command.auto-complete/meta-complete "中繼資料補全" + :command.auto-complete/next "自動完成:選擇下一項" + :command.auto-complete/prev "自動完成:選擇上一項" + :command.auto-complete/shift-complete "自動完成:在側邊欄開啟" + + :command.command-palette/toggle "切換指令面板" + + :command.editor/add-property "添加屬性" + :command.editor/add-property-deadline "新增截止日期屬性" + :command.editor/add-property-icon "新增圖示屬性" + :command.editor/add-property-priority "新增優先順序屬性" + :command.editor/add-property-status "新增狀態屬性" + :command.editor/add-reaction "新增反應" + :command.editor/backspace "退格" + :command.editor/backward-kill-word "向前刪除一個單詞" + :command.editor/backward-word "游標向前移動一個單詞" + :command.editor/beginning-of-block "移動游標到塊開始位置" + :command.editor/bold "粗體" + :command.editor/clear-block "清除塊內容" + :command.editor/collapse-block-children "折疊" + :command.editor/copy "複製" + :command.editor/copy-embed "複製指向當前塊的嵌入塊" + :command.editor/copy-page-url "複製頁面連結" + :command.editor/copy-text "複製選中的文字" + :command.editor/cut "剪下" + :command.editor/cycle-todo "切換TODO狀態" + :command.editor/delete "向右刪除" + :command.editor/delete-selection "刪除選取內容" + :command.editor/down "向下移動游標 / 向下選擇" + :command.editor/end-of-block "移動游標到塊末尾" + :command.editor/escape-editing "轉義編輯" + :command.editor/expand-block-children "展開" + :command.editor/follow-link "跟隨光標下的連結" + :command.editor/forward-kill-word "向後刪除一個單詞" + :command.editor/forward-word "游標向後移動一個單詞" + :command.editor/highlight "螢光筆" + :command.editor/indent "縮進塊標簽" + :command.editor/insert-link "插入連結" + :command.editor/insert-youtube-timestamp "插入 YouTube 時間戳" + :command.editor/italics "斜體" + :command.editor/jump "跳轉到塊" + :command.editor/kill-line-after "刪除游標右側行" + :command.editor/kill-line-before "刪除游標左側行" + :command.editor/left "向左移動游標 / 向左選擇" + :command.editor/move-block-down "向下移動塊" + :command.editor/move-block-up "向上移動塊" + :command.editor/move-blocks "移動區塊" + :command.editor/new-block "建立塊" + :command.editor/new-line "塊中新增行" + :command.editor/open-edit "編輯選中塊" + :command.editor/open-link-in-sidebar "在側邊欄開啟" + :command.editor/open-selected-blocks-in-sidebar "在側邊欄中開啟選取的區塊" + :command.editor/outdent "取消縮進塊" + :command.editor/paste-text-in-one-block-at-point "在当前位置貼上為單塊" + :command.editor/quick-add "快速新增" + :command.editor/redo "重做" + :command.editor/right "向右移動游標 / 向右選擇" + :command.editor/select-all-blocks "選擇所有塊" + :command.editor/select-block-down "選擇下方的塊" + :command.editor/select-block-up "選擇上方的塊" + :command.editor/select-down "選擇下面內容" + :command.editor/select-parent "選取父區塊" + :command.editor/select-up "選擇上面的內容" + :command.editor/set-tags "設定標籤" + :command.editor/strike-through "刪除線" + :command.editor/toggle-block-children "切換區塊子節點折疊狀態" + :command.editor/toggle-display-hidden-properties "切換顯示隱藏屬性" + :command.editor/toggle-number-list "切換有序列表" + :command.editor/toggle-open-blocks "切換開啟/折叠所有塊" + :command.editor/undo "復原" + :command.editor/up "向上移動游標 / 向上選擇" + :command.editor/zoom-in "聚焦" + :command.editor/zoom-out "推出聚焦" + + :command.go/all-graphs "前往所有圖譜" + :command.go/all-pages "前往全部頁面" + :command.go/backward "後退" + :command.go/electron-find-in-page "在當前頁面查詢文字" + :command.go/electron-jump-to-the-next "跳轉到查詢欄搜尋的下一個匹配項" + :command.go/electron-jump-to-the-previous "跳轉到查詢欄搜尋的上一個匹配項" + :command.go/flashcards "前往閃卡" + :command.go/forward "前進" + :command.go/graph-view "前往圖譜檢視" + :command.go/home "前往首頁" + :command.go/journals "跳轉到日記" + :command.go/keyboard-shortcuts "鍵盤快速鍵" + :command.go/next-journal "前往下一篇日誌" + :command.go/prev-journal "前往上一篇日誌" + :command.go/search "全文搜尋" + :command.go/search-in-page "在頁面內搜尋" + :command.go/search-themes "搜尋佈景主題" + :command.go/tomorrow "明天" + + :command.graph/add "新增圖譜" + :command.graph/db-add "資料庫:新增圖譜" + :command.graph/db-save "資料庫:儲存圖譜" + :command.graph/export-as-html "將公共圖譜匯出為 HTML" + :command.graph/open "開啟圖譜" + :command.graph/remove "移除圖譜" + + :command.misc/copy "複製" + :command.misc/export-block-data "匯出區塊資料" + :command.misc/export-graph-ontology-data "匯出圖譜本體資料" + :command.misc/export-page-data "匯出頁面資料" + :command.misc/import-edn-data "匯入 EDN 資料" + + :command.page/toggle-favorite "切換收藏" + + :command.pdf/close "關閉 PDF" + :command.pdf/find "PDF: 查詢當前 pdf 檔案的文字" + :command.pdf/next-page "PDF:下一頁" + :command.pdf/previous-page "PDF:上一頁" + + :command.publish/open-dialog "開啟發佈對話方塊" + + :command.search/re-index "重新增立搜尋索引" + + :command.shell/run "執行 git 命令" + + :command.sidebar/clear "清空側邊欄" + :command.sidebar/close-top "關閉頂部側邊欄面板" + :command.sidebar/open-today-page "在側邊欄開啟今日" + + :command.ui/clear-all-notifications "清除所有通知" + :command.ui/customize-appearance "自訂外觀" + :command.ui/goto-plugins "外掛" + :command.ui/highlight-recent-blocks "強調顯示最近區塊" + :command.ui/install-plugin-from-github "從 GitHub 安裝外掛" + :command.ui/install-plugins-from-file "從檔案安裝外掛程式" + :command.ui/select-theme-color "選擇皮膚顏色" + :command.ui/toggle-brackets "切換是否顯示括號" + :command.ui/toggle-contents "開啟/關閉目錄" + :command.ui/toggle-document-mode "切換說明文件模式" + :command.ui/toggle-help "顯示/關閉幫助" + :command.ui/toggle-left-sidebar "切換左側邊欄" + :command.ui/toggle-right-sidebar "啟用/關閉右側欄" + :command.ui/toggle-settings "切換設定" + :command.ui/toggle-theme "“在暗色/亮色主題之間切換”" + :command.ui/toggle-wide-mode "切換寬螢幕模式" + + :command.window/close "關閉視窗" + + :context-menu/developer-tools "開發者工具" + :context-menu/make-a-flashcard "製作閃卡" + :context-menu/set-icon "設定圖示" + :context-menu/toggle-number-list "切換編號列表" + + :date/invalid-date-warning "{1} 不是有效日期。請再試一次" + + :date.nlp/last-friday "上週五" + :date.nlp/last-monday "上週一" + :date.nlp/last-month "上個月" + :date.nlp/last-saturday "上週六" + :date.nlp/last-sunday "上週日" + :date.nlp/last-thursday "上週四" + :date.nlp/last-tuesday "上週二" + :date.nlp/last-wednesday "上週三" + :date.nlp/last-week "上週" + :date.nlp/last-year "去年" + :date.nlp/next-friday "下週五" + :date.nlp/next-monday "下週一" + :date.nlp/next-month "下個月" + :date.nlp/next-saturday "下週六" + :date.nlp/next-sunday "下週日" + :date.nlp/next-thursday "下週四" + :date.nlp/next-tuesday "下週二" + :date.nlp/next-wednesday "下週三" + :date.nlp/next-week "下週" + :date.nlp/next-year "明年" + :date.nlp/this-friday "本週五" + :date.nlp/this-monday "本週一" + :date.nlp/this-month "本月" + :date.nlp/this-saturday "本週六" + :date.nlp/this-sunday "本週日" + :date.nlp/this-thursday "本週四" + :date.nlp/this-tuesday "本週二" + :date.nlp/this-wednesday "本週三" + :date.nlp/this-week "本週" + :date.nlp/this-year "今年" + :date.nlp/today "今天" + :date.nlp/tomorrow "明天" + :date.nlp/yesterday "昨天" + + :deeplink/open-block-error "開啟連結失敗。區塊 ID `{1}` 不存在於目前圖譜中。" + :deeplink/open-graph-error "開啟圖譜失敗。圖譜 `{1}` 不存在。" + :deeplink/open-page-error "開啟連結失敗。頁面 `{1}` 不存在於目前圖譜中。" + + :editor/add-content-first-warning "請先新增一些內容。" + :editor/auto-heading "自動標題" + :editor/block-search "正在搜尋區塊" + :editor/click-to-edit "點擊以編輯" + :editor/code-language-placeholder "選擇語言" + :editor/collapse-block-children "摺疊所有子塊" :editor/cut "剪下" - :content/copy-block-ref "複製區塊引用連結" - :content/open-in-sidebar "在側邊欄中打開" - :content/click-to-edit "點擊以編輯" - :settings-page/edit-config-edn "編輯 config.edn" - :settings-page/edit-global-config-edn "編輯 global config.edn" - :settings-page/edit-custom-css "編輯 custom.css" - :settings-page/edit-export-css "編輯 export.css" - :settings-page/custom-configuration "個人化設定" - :settings-page/custom-global-configuration "個人化全域設定" - :settings-page/custom-theme "個人化主題" - :settings-page/export-theme "匯出主題" - :settings-page/show-brackets "顯示括號" - :settings-page/wide-mode "寬屏模式" - :settings-page/editor-font "編輯器字體" - :settings-page/accent-color "高亮色" - :settings-page/accent-color-alert "選擇高亮色可能會影響您選擇的自訂主題。" - :settings-page/spell-checker "自動拼音核對" - :settings-page/auto-updater "自動更新" - :settings-page/disable-sentry "寄送資料和診斷書給 Logseq" - :settings-page/disable-sentry-desc "Logseq 永遠不會收集您的圖表資料或出售您的數據。" - :settings-page/preferred-outdenting "邏輯化縮排" - :settings-page/show-full-blocks "顯示所有區塊引用列" - :settings-page/custom-date-format "偏好日期格式" - :settings-page/preferred-pasting-file "保存連結為文件" - :settings-page/enable-shortcut-tooltip "啟用快捷鍵提示" - :settings-page/enable-tooltip "啟用提示" - :settings-page/enable-journals "啟用日記頁面" - :settings-page/home-default-page "設定預設首頁" - :settings-page/clear-cache "清除快取資料" - :settings-page/clear "清除" - :settings-page/clear-cache-warning "清除快取將捨棄目前的圖表。未儲存的資料將無法復原。" - :settings-page/developer-mode "開發者模式" - :settings-page/developer-mode-desc "開發者模式可以協助貢獻者及擴充套件開發人員更有效率地測試 Logseq。" - :settings-page/current-version "目前版本" - :settings-page/tab-editor "編輯器" - :settings-page/tab-keymap "快速鍵" - :settings-page/tab-advanced "進階功能" - :settings-page/tab-features "附加功能" - :settings-page/plugin-system "外掛系統" - :settings-page/enable-flashcards "啟用卡片" - :settings-page/network-proxy "網路代理" - :settings-page/login-prompt "你必須是 Logseq 的 Open Collective Sponsor 或 Backer 以使用新功能。(需要登入)" - :yes "是" + :editor/cycle-todo "切換當前事項的待辦狀態" + :editor/delete-selection "刪除選定塊" + :editor/display-tag-inline-hint "以內嵌方式顯示此標籤,而不是放在此節點末尾。" + :editor/expand-block-children "展開所有子塊" + :editor/heading "標題 {1}" + :editor/moving-blocks-count "正在移動 {1} 個區塊" + :editor/new-page "新頁面" + :editor/new-tag "新標籤" + :editor/no-block-selected-warning "目前沒有選取任何區塊,請先選取區塊。" + :editor/paste "貼上" + :editor/reference-node-use-page-ref "要引用節點,請使用 `[[]]`。" + :editor/remove-heading "移除標題" + :editor/search-for-node "搜尋節點" + :editor/search-for-tag "搜尋標籤" + :editor/search-template-placeholder "搜尋範本" + :editor/template-insert-error "範本插入錯誤: {1}" - :cancel "取消" - :close "關閉" - :delete "刪除" - :save "儲存" - :type "種類" - :host "主持" - :port "埠" - :graph "圖表" - :graph/all-graphs "所有圖表" - :export "匯出" - :export-graph "匯出圖表" - :export-page "匯出頁面" - :export-markdown "以標準 Markdown 匯出(將移除區塊屬性)" - :export-public-pages "匯出公開頁面" - :all-graphs "所有圖表" - :all-files "所有資料" - :all-journals "所有日記" - :settings "設定" - :settings-of-plugins "外掛設定" - :plugins "外掛" - :themes "主題" - :appearance "界麵" - :relaunch-confirm-to-work "需要重新啟動應用程式才能使其運作。要現在重新啟動嗎?" - :import "匯入" - :importing "正在匯入" - :help-shortcut-title "點擊查看快捷鍵和其他提示。" - :login "登入" - :logout "登出" - :download "下載" - :language "語言" - :remove-background "移除背景" - :remove-heading "移除標頭" - :heading "標頭 {1}" - :auto-heading "自動寫入標頭" + :editor.document-mode/new-block-hint "{1} 建立新區塊" + :editor.document-mode/title "文件模式" + :editor.document-mode/toggle-desc "點擊 `D` 或輸入 {1} 切換文件模式" - :help/shortcut-page-title "鍵盤快捷鍵" + :editor.quick-add/add-to-today "加入今天" + :editor.quick-add/title "快速新增" - :plugin/installed "已下載" - :plugin/not-installed "尚未下載" - :plugin/installing "下載中" - :plugin/install "下載" - :plugin/reload "重新整理" - :plugin/update "更新" - :plugin/check-update "確認更新" - :plugin/check-all-updates "確認所有更新" - :plugin/refresh-lists "重整列表" - :plugin/enabled "已啟用" - :plugin/disabled "已關閉" - :plugin/update-available "有可用更新" - :plugin/updating "正在更新" - :plugin/uninstall "卸載" - :plugin/marketplace "市集" - :plugin/downloads "下載" - :plugin/stars "星星" - :plugin/all "所有" - :plugin/unpacked "未壓縮的" - :plugin/delete-alert "你確定要卸載外掛 [{1}] 嗎?" - :plugin/open-settings "開啟設定" - :plugin/open-package "開啟封包" - :plugin/load-unpacked "讀取未壓縮的外掛" - :plugin/restart "重新啟動應用程式" - :plugin/unpacked-tips "選擇外掛資料夾" - :plugin/contribute "✨ 貢獻外掛" - :plugin/custom-js-alert "已找到 custom.js ,確定要執行它嗎?(如果您不了解此檔案的內容,建議不要允許執行,因為這具有一定的安全風險。)" - :plugin.install-from-file/menu-title "正在從 plugins.edn 下載" - :plugin.install-from-file/title "正在安裝 plugins.edn 的外掛" - :plugin.install-from-file/notice "以下的外掛將會取代您的其他外掛:" - :plugin.install-from-file/success "所有外掛均已安裝完成。" + :editor.slash/advanced-query "進階查詢" + :editor.slash/advanced-query-desc "建立進階查詢區塊" + :editor.slash/calculator "計算機" + :editor.slash/calculator-desc "插入計算機" + :editor.slash/cloze "填空" + :editor.slash/code-block "程式碼區塊" + :editor.slash/code-block-desc "插入程式碼區塊" + :editor.slash/current-time "目前時間" + :editor.slash/current-time-desc "插入目前時間" + :editor.slash/date-picker "日期選擇器" + :editor.slash/date-picker-desc "選擇日期並插入此處" + :editor.slash/embed-html "嵌入 HTML" + :editor.slash/embed-twitter-tweet "嵌入 Twitter 推文" + :editor.slash/embed-video-url "嵌入視訊 URL" + :editor.slash/embed-youtube-timestamp "嵌入 YouTube 時間戳" + :editor.slash/group-advanced "進階" + :editor.slash/group-basic "基本" + :editor.slash/group-format "格式" + :editor.slash/group-heading "標題" + :editor.slash/group-list-type "清單類型" + :editor.slash/group-plugins "外掛" + :editor.slash/group-priority "優先順序" + :editor.slash/group-task-date "任務日期" + :editor.slash/group-task-status "任務狀態" + :editor.slash/group-time-and-date "時間及日期" + :editor.slash/heading-label "標題 {1}" + :editor.slash/image-link "圖片連結" + :editor.slash/image-link-desc "建立圖片的 HTTP 連結" + :editor.slash/link-desc "建立 HTTP 連結" + :editor.slash/math-block "數學區塊" + :editor.slash/math-block-desc "建立 LaTeX 區塊" + :editor.slash/no-priority "無優先順序" + :editor.slash/node-embed "節點嵌入" + :editor.slash/node-embed-desc "在此嵌入節點" + :editor.slash/node-reference "節點參考" + :editor.slash/node-reference-desc "建立節點的反向連結(頁面或區塊)" + :editor.slash/normal-text "一般文字" + :editor.slash/normal-text-desc "清除標題並設為一般文字" + :editor.slash/number-children "子項編號" + :editor.slash/number-list "編號清單" + :editor.slash/priority-desc "優先順序設為 {1}" + :editor.slash/priority-label "優先順序 {1}" + :editor.slash/query-function "查詢函式" + :editor.slash/query-function-desc "建立查詢函式" + :editor.slash/quote-desc "建立引用區塊" + :editor.slash/status-desc "狀態設為 {1}" + :editor.slash/template-desc "在此插入建立的範本" + :editor.slash/today-desc "插入今天的日期" + :editor.slash/tomorrow-desc "插入明天的日期" + :editor.slash/underline "底線" + :editor.slash/underline-desc "建立底線文字" + :editor.slash/upload-asset "上傳素材" + :editor.slash/upload-asset-desc "上傳圖片、PDF、DOCX 等檔案類型" + :editor.slash/yesterday-desc "插入昨天的日期" - :pdf/copy-ref "複製引用" - :pdf/copy-text "複製文字" - :pdf/linked-ref "已連結的引用" - :pdf/toggle-dashed "使用線條顯示高亮區塊" - :pdf/hl-block-colored "使用有色標籤顯示高亮區塊" - :pdf/auto-open-context-menu "為選中文本自動打開上下文菜單" - :pdf/doc-metadata "metadata 文件" + :electron/about "關於 Logseq" + :electron/add-to-dictionary "新增到字典" + :electron/block-not-exist "開啟連結失敗。區塊 ID `{1}` 在目前圖譜中不存在。" + :electron/cancel "取消" + :electron/copy-image "複製圖片" + :electron/link-open-confirm "確定要開啟此連結嗎?\n{1}" + :electron/link-open-failed-missing-graph "開啟連結失敗。在 `logseq://graph/` 後缺少圖譜識別碼。" + :electron/link-open-failed-no-graph "開啟連結失敗。無法將圖譜識別碼 `{1}` 對應到任何已連結圖譜。" + :electron/link-open-failed-no-target "開啟連結失敗。無法將 `{1}` 對應到任何目標。" + :electron/look-up "查詢所選內容" + :electron/main-exception "[主應用程式異常]\n{1}\n{2}" + :electron/new-window "新增視窗" + :electron/official-docs "官方文件" + :electron/ok "確定" + :electron/open-dir-error "開啟目錄失敗:{1}" + :electron/save-image "儲存圖片" + :electron/save-image-as "圖片另存為" + :electron/search-with-google "使用 Google 搜尋" + :electron/unimplemented-callback "未實作的 x-callback-url 操作:`{1}`。" + :electron/version "版本 {1}" + :electron/write-file-error "寫入檔案 {1} 失敗,{2}。" + :electron/write-file-error-with-backup "寫入檔案 {1} 失敗,{2}。備份檔案已儲存到 {3}。" - :updater/new-version-install "已下載新版本。" - :updater/quit-and-install "重新啟動以安裝。" + :encryption/cloud-password-rich (fn [] ["如果你遺失了密碼,雲端中的所有資料都將無法解密。" [:span "你仍然可以存取圖譜的本機版本。"]]) + :encryption/current-password "目前密碼" + :encryption/enter-password "輸入密碼" + :encryption/enter-password-again "再次輸入密碼" + :encryption/enter-password-title "輸入遠端圖譜密碼" + :encryption/failed-to-force-reset-password "強制重設密碼失敗。" + :encryption/failed-to-update-password "更新密碼失敗。" + :encryption/fetch-key-pair-error "取得使用者 RSA 金鑰對錯誤:{1}" + :encryption/fetching-key-pair "正在取得使用者 RSA 金鑰對..." + :encryption/force-reset-password "強制重設密碼" + :encryption/force-reset-password-successfully "強制重設密碼成功!" + :encryption/force-resetting-password "正在強制重設密碼..." + :encryption/forgot-password-question "忘記密碼?" + :encryption/forgot-password-warning "如果你忘記了密碼,可以強制重設加密密碼。但這會讓目前儲存在伺服器上的所有已加密圖譜資料永久無法讀取。重設後,你需要從用戶端重新上傳圖譜。" + :encryption/init-key-pair "初始化 E2EE 加密金鑰對" + :encryption/init-key-pair-error "初始化金鑰對錯誤:{1}" + :encryption/password-not-matched "兩次輸入的密碼不一致" + :encryption/password-updated-successfully "密碼更新成功!" + :encryption/remember-password-rich (fn [] [[:span "請務必"] "記住你設定的密碼,因為一旦遺失,我們無法替你重設或找回," [:span "並建議你"] "妥善儲存一份安全備份。"]) + :encryption/reset-password "重設密碼" + :encryption/set-new-password "設定新密碼" + :encryption/set-password-title "為遠端圖譜設定密碼" + :encryption/updating-password "正在更新密碼..." + :encryption/wrong-password "密碼錯誤" - :select/default-prompt "請選擇提示" - :select.graph/prompt "請選擇圖表" - :select.graph/empty-placeholder-description "沒有符合的圖表,您要新增另一個嗎?" - :select.graph/add-graph "是,新增圖表" + :export/backup-successful "備份成功!" + :export/block-data-copied "已複製區塊資料!" + :export/collecting-assets "正在收集素材" + :export/copied-to-clipboard "已複製到剪貼簿!" + :export/copy-or-export-as "複製/匯出為..." + :export/creating-zip "正在建立 zip" + :export/db-backup-error "資料庫備份失敗,請前往匯出並指定備份資料夾。" + :export/db-edn "匯出 EDN 檔案" + :export/debug-transit-desc "匯出為 .transit 檔案以供除錯。匯出的檔案會移除所有敏感資料。" + :export/debug-transit-file "匯出除錯 transit 檔案" + :export/edn-desc "匯出為可讀取和編輯的 .edn 檔案。請勿將此作為主要備份方式。" + :export/error-unexpected "匯出期間發生意外錯誤。請查看 JavaScript 控制台以了解詳細信息。" + :export/exporting "正在匯出" + :export/finalizing "正在完成" + :export/format-text "文字" + :export/graph "匯出圖譜" + :export/graph-ontology-data-copied "已複製圖譜本體資料!" + :export/indent-style-dashes "破折號" + :export/indent-style-label "縮排樣式:" + :export/indent-style-none "無縮排" + :export/indent-style-spaces "空格" + :export/level-lte "層級 <=" + :export/markdown "匯出為標準 Markdown(不含塊屬性)" + :export/newline-after-block "區塊後換行" + :export/no-updates-since-last-export "自上次匯出後圖譜沒有更新。" + :export/open-blocks-only "僅限展開區塊 (略過已收合的子項)" + :export/page "匯出頁面" + :export/page-data-copied "已複製頁面資料!" + :export/page-ref-text "[[text]] -> text" + :export/preparing-zip "正在準備 zip" + :export/preview-alt "匯出預覽" + :export/public-pages "匯出公開頁面" + :export/remove-emphasis "移除強調" + :export/remove-properties "移除屬性" + :export/remove-tags "移除 #標籤" + :export/save-to-file "儲存到檔案" + :export/sqlite-db "匯出 SQLite 資料庫" + :export/title "匯出" + :export/transparent-background "透明背景" + :export/view-nodes-data-copied "已複製檢視節點資料!" + :export/zip "匯出 SQLite 資料庫和資源" + :export/zip-error "匯出 ZIP 失敗。" + + :export.backup/backup-now "立即備份" + :export.backup/cancel "取消備份" + :export.backup/enabled-desc "此圖譜已啟用每小時備份,{1}。" + :export.backup/folder "備份資料夾:" + :export.backup/hourly-note "每小時將建立一次備份。" + :export.backup/open-folder "開啟此圖譜的備份資料夾" + :export.backup/schedule "排程備份" + :export.backup/set-folder-first "請先設定備份資料夾" + :export.backup/sqlite-desc "將圖譜內容備份為單一 .sqlite 檔案的主要方式。" + :export.backup/unsupported-desc "您的瀏覽器不支援 {{The File System Access API}},請切換至基於 Chromium 的瀏覽器。" + :export.backup/zip-desc "將圖譜內容和素材備份為 .zip 檔案的主要方式。" + + :file/config-duplicate-keys "檔案 '{1}' 有重複鍵。鍵 '{2}' 被指定了多次。" + :file/config-invalid "檔案 'logseq/config.edn' 無效。請重新載入應用程式以查看錯誤並修正。" + :file/format-not-supported "目前不支援 .{1} 檔案格式" + :file/label "檔案" + :file/last-modified-at "最後更新於" + :file/name "檔案名稱" + :file/no-data "沒有資料" + :file/title "檔案 {1}" + + :file.config/deprecation-title "檔案 {1} 有以下棄用項:" + :file.config/error-title "檔案 {1} 有以下錯誤:" + :file.config/invalid-desc "請確保設定被 {} 包裹。" + :file.config/invalid-title "檔案 {1} 無效。" + :file.config/read-failed-desc "請確保你的設定被 {} 包裹。同時請確保字元 '( { [' 都有對應的閉合字元 ') } ]'。" + :file.config/read-failed-title "讀取檔案 {1} 失敗" + + :flashcard/add-query "新增查詢" + :flashcard/all-cards "全部卡片" + :flashcard/select-cards "選擇卡片" + :flashcard/shortcut-tooltip "快捷鍵:{1}" + + :flashcard.empty/desc "你可以為任意區塊加入「{1}」將其變成閃卡,或使用「/cloze」加入填空。" + :flashcard.empty/title "開始複習" + + :flashcard.rating/again "重來" + :flashcard.rating/again-desc "我們答錯了。這通常表示我們已經忘記了這張卡片,是一次記憶失誤。" + :flashcard.rating/easy "簡單" + :flashcard.rating/easy-desc "答案是對的,而且我們無需費力就能快速且有信心地回想起來。" + :flashcard.rating/good "良好" + :flashcard.rating/good-desc "答案是對的,但我們花了一些心力才想起來。" + :flashcard.rating/hard "困難" + :flashcard.rating/hard-desc "答案是對的,但我們沒有把握,花了太久才想起來。" + + :flashcard.review/finished "恭喜!今天的複習已完成。 💯" + :flashcard.review/hide-answers "隱藏答案" + :flashcard.review/show-answers "顯示答案" + :flashcard.review/show-clozes "顯示填空" + + :format/bold "粗體" + :format/code "程式碼" + :format/highlight "螢光標記" + :format/italics "斜體" + :format/strikethrough "刪除線" + + :graph/all-graphs "所有圖譜" + :graph/already-exists-error "圖譜「{1}」已存在。請使用其他名稱重試。" + :graph/as-png "匯出為 PNG" + :graph/built-in-pages "內建頁面" + :graph/charge-range "電荷範圍" + :graph/charge-strength "電荷強度" + :graph/click-to-search "點擊搜尋" + :graph/create-db "建立 DB 圖譜" + :graph/create-error "建立圖譜失敗。" + :graph/create-new "建立新圖譜" + :graph/created-before "建立於之前" + :graph/creating "正在建立圖譜" + :graph/delete-local-action "刪除本機圖譜" + :graph/delete-local-confirm-desc "您確定要從 Logseq 永久刪除圖譜 \"{1}\" 嗎?" + :graph/delete-server-action "從伺服器刪除" + :graph/delete-server-confirm-desc "您確定要從我們的伺服器永久刪除圖譜 \"{1}\" 嗎?" + :graph/delete-warning "⚠️ 請注意,刪除後無法復原此圖譜。刪除前請確保已備份。" + :graph/diff "Git 差異" + :graph/downloading "正在下載" + :graph/encrypt-data-label "加密圖譜資料" + :graph/excluded-pages "排除的頁面" + :graph/forces "力場" + :graph/gc-success "圖譜清理成功!" + :graph/last-opened-at-label "上次開啟於: {1}" + :graph/leave-action "離開此圖譜" + :graph/leave-confirm-desc "您確定要離開此圖譜嗎?" + :graph/leave-error "離開圖譜失敗。" + :graph/left "已離開圖譜。" + :graph/link-count "{1} 條連結" + :graph/link-distance "連結距離" + :graph/local-graphs "本地圖譜" + :graph/n-hops-from-selected-nodes "距離所選節點 N 步" + :graph/name-placeholder "您的圖譜名稱" + :graph/nodes "節點" + :graph/orphan-pages "孤立頁面" + :graph/page-count "{1} 個頁面" + :graph/pause-simulation "暫停模擬" + :graph/preparing "正在準備" + :graph/refresh-remote-graphs "重新整理遠端圖譜" + :graph/remote-graphs "遠端圖譜" + :graph/removed "已移除圖譜「{1}」" + :graph/removed-and-redirecting "已移除圖譜「{1}」。正在跳轉到圖譜「{2}」" + :graph/removed-from-sync "此圖譜已從 Logseq Sync 中移除。" + :graph/reset "重置圖譜" + :graph/reset-forces "重置力場" + :graph/search "搜尋" + :graph/shared-graphs "共用圖譜" + :graph/updated-switching "圖譜已更新!正在切換到圖譜……" + :graph/use-sync-beta "使用 Logseq Sync (Beta 測試)" + :graph/use-sync-label "使用 Logseq Sync?" + + :graph.diagnostics/checksum-failed-error "計算圖譜 checksum 診斷失敗。" + :graph.diagnostics/checksum-recomputed-success "已重新計算 checksum。重新計算結果:{1},本機:{2},遠端:{3}。已下載 {4}.edn,包含 {5} 個 block 與 checksum 屬性 {6}。" + :graph.diagnostics/checksum-unavailable-warning "無法為目前圖譜計算 checksum 診斷。" + :graph.diagnostics/client-ops-export-failed-error "匯出 Client ops SQLite 失敗。" + :graph.diagnostics/client-ops-export-invalid-payload-warning "匯出 Client ops SQLite 失敗:無效的 payload 類型 {1}。" + :graph.diagnostics/client-ops-export-success "已匯出 Client ops SQLite:{1}.sqlite" + :graph.diagnostics/no-graph-warning "找不到圖譜。" + + :graph.page/show-journals "顯示日記頁面" + :graph.page/title "頁面圖譜" + + :graph.switch/add-graph-action "是,新增圖譜" + :graph.switch/empty-desc "沒有符合的圖譜,你要新增另一個嗎?" + :graph.switch/prompt "切換到:" + :graph.switch/select-prompt "請選擇圖譜" + + :graph.validation/config-arweave-gateway-warning "已不再支援。" + :graph.validation/config-block-hidden-properties-warning "在 DB 圖譜中不會使用,因為隱藏屬性需要在其設定中完成。" + :graph.validation/config-default-templates-warning "已被 #Template 和 `Apply template to tags` 屬性取代。" + :graph.validation/config-editor-command-trigger-warning "已不再支援。請改用 '/',並回報相關 bug。" + :graph.validation/config-favorites-warning "不會儲存在 DB 圖譜的設定中。" + :graph.validation/config-feature-enable-block-timestamps-warning "在 DB 圖譜中不會使用,因為它始終啟用。" + :graph.validation/config-preferred-format-warning "在 DB 圖譜中不會使用,因為 DB 圖譜只有 Markdown 模式。" + :graph.validation/config-property-pages-enabled-warning "在 DB 圖譜中不會使用,因為所有屬性都有頁面。" + :graph.validation/config-unused-in-db-graphs-warning "在 DB 圖譜中不會使用。" + :graph.validation/invalid-blocks-detected "驗證偵測到 {1} 個無效區塊。這些區塊可能有問題。正在嘗試修復無效區塊,請再次執行驗證確認是否已修復。" + :graph.validation/name-reserved-characters-warning "圖譜名稱不能包含以下保留字元:" + :graph.validation/reserved-character-asterisk "星號" + :graph.validation/reserved-character-backslash "反斜線" + :graph.validation/reserved-character-colon "冒號" + :graph.validation/reserved-character-double-quote "雙引號" + :graph.validation/reserved-character-forward-slash "正斜線" + :graph.validation/reserved-character-greater-than "大於號" + :graph.validation/reserved-character-hash "井號" + :graph.validation/reserved-character-less-than "小於號" + :graph.validation/reserved-character-pipe "垂直線或管線符號" + :graph.validation/reserved-character-plus "加號" + :graph.validation/reserved-character-question-mark "問號" + :graph.validation/valid "您的知識庫是有效的!{1}" + + :header/go-back "返回" + :header/go-forward "前進" + :header/highlight-recent-blocks "醒目顯示最近的區塊" + :header/highlight-recent-blocks-days-ago "醒目顯示最近的區塊:{1} 天前" + :header/more "更多" + :header/quit-highlight-recent-blocks "退出醒目標示近期區塊" + :header/toggle-left-sidebar "切換左側邊欄" + + :help/about "關於 Logseq" + :help/about-title "關於" + :help/ask-community "向社群提問" + :help/awesome-logseq "很棒的 Logseq" + :help/block-reference "區塊引用" + :help/blog "Logseq 部落格" + :help/bug "問題回報" + :help/changelog "更新紀錄" + :help/community-title "社群" + :help/context-menu "區塊內容選單" + :help/context-menu-action "右鍵點擊項目符號" + :help/development-title "開發" + :help/docs "說明文件" + :help/feature "功能建議" + :help/forum-community "論壇社群" + :help/handbook "使用手冊" + :help/learn-more "了解更多" + :help/markdown-syntax "Markdown 格式" + :help/open-link-in-sidebar "在側邊欄開啟連結r" + :help/open-link-in-sidebar-action "Shift+點擊引用" + :help/privacy "隱私聲明" + :help/reference-autocomplete "頁面引用自動完成" + :help/release-notes "版本說明" + :help/roadmap "路線圖" + :help/search "搜尋頁面/區塊/指令" + :help/slash-autocomplete "Slash 自動" + :help/start "入門" + :help/submit-feedback "提交意見回饋" + :help/support-forum "支援論壇" + :help/terms "服務條款" + :help/terms-title "條款" + :help/usage-title "使用說明" + + :help.handbook/chat-on-discord "在 Discord 上聊天" + :help.handbook/chat-on-discord-desc "提出問題、結識其他使用者,學習新的工作流程。" + :help.handbook/copy-topic-link "複製主題連結" + :help.handbook/current-chapter "目前章節" + :help.handbook/help-categories "說明分類" + :help.handbook/home "首頁" + :help.handbook/link-copied "已複製手冊連結!" + :help.handbook/monthly-posts "每月貼文" + :help.handbook/next-chapter "下一章節" + :help.handbook/popular-topics "熱門主題" + :help.handbook/prev-chapter "上一章節" + :help.handbook/resources-from "來自 {1} 的資源" + :help.handbook/search-placeholder "搜尋" + :help.handbook/shortcuts-count "{1} 個快捷鍵" + :help.handbook/sync "同步" + :help.handbook/title "說明" + :help.handbook/topics "主題" + :help.handbook/users-online "在線使用者" + :help.handbook/visit-the-forum "造訪論壇" + :help.handbook/visit-the-forum-desc "提供意見回饋、提出功能需求,進行深入討論。" + :help.handbook/writing-mode "寫作模式(即時預覽)" + + :help.shortcuts/desc "查看快捷鍵與提示" + :help.shortcuts/label "快速鍵" + :help.shortcuts/shortcut-column "快速鍵" + :help.shortcuts/title "鍵盤快速鍵" + :help.shortcuts/triggers "觸發" + + :icon/emojis-count "表情符號 ({1})" + :icon/icons-count "圖示 ({1})" + :icon/matched-count "符合 ({1})" + :icon/search-all "搜尋全部" + :icon/search-emojis "搜尋表情符號" + :icon/search-icons "搜尋圖示" + :icon/tab-all "全部" + :icon/tab-emojis "表情符號" + :icon/tab-icons "圖示" + + :import/all-tags "匯入所有標籤" + :import/asset-too-large-warning "已略過複製資源 {1},因為它超過了 100 MB 限制。" + :import/assets-import-partial "已匯入 {1} / {2} 個資源。詳情請查看主控台。" + :import/assets-imported "已匯入 {1} 個資源。" + :import/assets-skipped "已略過 {1} 個資源。詳情請查看主控台。" + :import/block-icons-cannot-be-imported "塊圖示無法匯入,請在塊 {1} 中手動匯入。" + :import/cannot-import-block-into-non-block-entity "不能把區塊匯入到非區塊實體中。請在其他位置匯入該區塊。" + :import/db-edn-desc "將 DB 圖譜的 EDN 匯出匯入至新的 DB 圖譜" + :import/db-edn-title "EDN 至 DB 圖譜" + :import/debug-transit-desc "將除錯 transit 檔案匯入至新的 DB 圖譜" + :import/debug-transit-title "除錯 Transit" + :import/default-db-graph-behavior "資料庫圖譜的預設行為" + :import/empty-graph-name "圖譜名稱不能為空。" + :import/extract-inline-code-snippets "將行內程式碼片段提取為子塊" + :import/file-finished "匯入完成!" + :import/file-to-db-desc "將基於檔案的 Logseq 圖譜資料夾匯入至新的 DB 圖譜" + :import/file-to-db-title "檔案至 DB 圖譜" + :import/graph-name-conflict "已存在同名圖譜,請指定其他名稱!" + :import/graph-name-placeholder "圖譜名稱" + :import/ignored-assets "匯入跳過了 {1} 個資源。詳情請檢視 JavaScript 控制檯。" + :import/ignored-files "匯入跳過了 {1} 個檔案。詳情請檢視 JavaScript 控制檯。" + :import/ignored-properties "匯入跳過了 {1} 個屬性" + :import/ignored-properties-fix "要修復屬性型別,請將屬性值改為正確的型別並重新匯入圖譜" + :import/invalid-blocks-detected "匯入時偵測到 {1} 個無效區塊。這些區塊在互動時可能會有問題。更多資訊請查看 JavaScript 主控台。" + :import/invalid-edn-file "提供的 EDN 檔案不是合法 EDN。請修正後重試。" + :import/loading "正在匯入..." + :import/logseq-config-missing "匯入失敗:Logseq 圖譜中未找到「logseq/config.edn」檔案。" + :import/new-graph-name "新圖譜名稱" + :import/notes "注意事項" + :import/org-files-imported "已將 {1} 個 org 檔案匯入為 Markdown。後續將新增對 org 檔案的支援。" + :import/page-icons-cannot-be-imported "頁面圖示無法匯入,請前往頁面 {1} 手動匯入。" + :import/properties-case-insensitive-commas "屬性名不區分大小寫,以逗號分隔" + :import/property-classes-placeholder "例如 type" + :import/property-import-manually "此屬性需要手動匯入" + :import/property-parent-classes-placeholder "例如 parent" + :import/property-type-mismatch "屬性值的型別為 {1},而非 {2}" + :import/property-value-tag-parents "從屬性值中匯入標籤父級" + :import/property-value-tags "從屬性值中匯入額外標籤" + :import/remove-inline-tags "移除行內標籤" + :import/select-edn-or-json "請選擇一個 EDN 或 JSON 檔案。" + :import/specific-tags "匯入指定標籤" + :import/sqlite-and-assets-desc "匯入包含 db.sqlite 和素材資料夾的 zip 檔案" + :import/sqlite-and-assets-title "SQLite + 素材(.zip)" + :import/submitted-edn-invalid "提交的 EDN 資料無效!請修正後重試。" + :import/successful "匯入成功!" + :import/tag-classes-placeholder "標籤1, 標籤2" + :import/tags-case-insensitive "標籤不區分大小寫" + :import/title "匯入" + :import/unexpected-error "發生未預期錯誤:{1}" + :import/zip-import-error "壓縮檔匯入失敗:{1}" + :import/zip-missing-db-sqlite "壓縮檔缺少 db.sqlite。請檢查封存結構。" + + :journal/add-blocks-to-today-success "區塊已加入今天!" + :journal/page-cant-convert-warning "此頁面不是日記頁面。" + :journal/parse-date-to-name-error "無法將日期解析為日誌頁名稱。" + + :journal.default-query/doing "進行中" + :journal.default-query/todo "待辦" + + :keymap/all "全部" + :keymap/already-bound "快速鍵已被佔用" + :keymap/also-used-for-action "同時用於{1}" + :keymap/also-used-for-action-in-context "同時用於{1},上下文:{2}" + :keymap/clear "清除" + :keymap/clear-keystroke-filter "清除按鍵篩選" + :keymap/clear-search "清除搜尋" + :keymap/custom "自定義" + :keymap/deactivates-chord "會停用" + :keymap/deactivates-chords "會停用 {1} 個組合快速鍵" + :keymap/disabled "已禁用" + :keymap/esc-is-reserved "Esc 為保留鍵" + :keymap/hint-cancel "取消" + :keymap/hint-close "關閉" + :keymap/hint-reassign "重新分配" + :keymap/hint-remove "移除" + :keymap/keystroke-filter "按鍵過濾" + :keymap/no-matching-shortcuts "沒有匹配的快速鍵" + :keymap/press-a-shortcut "按下快速鍵" + :keymap/press-keys-to-filter "按下按鍵以篩選" + :keymap/reassign "重新分配" + :keymap/reassign-tooltip "將其快速鍵重新分配給此命令" + :keymap/reassigned-from "已從 {1} 重新分配" + :keymap/refresh-all "全部重新整理" + :keymap/remove-binding "移除綁定" + :keymap/remove-filter "移除篩選" + :keymap/reset "重置" + :keymap/reset-to-default "還原預設值" + :keymap/search-by-keys "按快速鍵搜尋" + :keymap/search-placeholder "搜尋快速鍵…" + :keymap/shortcut-added "快速鍵已新增" + :keymap/shortcut-removed "快速鍵已移除" + :keymap/toggle-categories-pane "切換分類面板" + :keymap/undo "復原" + :keymap/unset "未設定" + :keymap/used-by-action "被以下命令佔用:{1}" + + :library/add-existing-pages "將現有頁面加入頁面庫" + :library/add-pages "新增頁面" + :library/title "頁面庫" + + :mobile/camera-access-denied "已拒絕相機存取。請在「設定」>「Logseq」中啟用。" + :mobile/microphone-access-denied "已拒絕麥克風存取。請在「設定」>「Logseq」中啟用。" + + :mobile.header/actions "操作" + :mobile.header/create-graph "建立新圖譜" + :mobile.header/delete-block-confirm-desc "確定要刪除這個區塊嗎?" + :mobile.header/delete-page-confirm-desc "確定要刪除這個頁面嗎?" + + :mobile.intent/file-options "檔案選項" + :mobile.intent/open-with-app "使用您喜愛的應用程式開啟檔案" + :mobile.intent/select-option-prompt "選擇要執行的操作" + :mobile.intent/share "分享" + + :mobile.log/all "全部" + :mobile.log/errors-only "僅錯誤" + :mobile.log/full "完整日誌" + :mobile.log/new-first "最新記錄在前" + :mobile.log/old-first "最舊記錄在前" + :mobile.log/ui "UI 日誌" + :mobile.log/worker "worker 日誌" + + :mobile.settings/account "帳戶" + :mobile.settings/check-log "查看日誌" + :mobile.settings/discord-community "Discord 社群" + :mobile.settings/forum "論壇" + :mobile.settings/github "GitHub 倉庫" + :mobile.settings/report-bug "回報問題" + :mobile.settings/revision "修訂" + :mobile.settings/theme "主題" + :mobile.settings/version "版本" + + :mobile.share/file-import-error "匯入分享檔案失敗。請再試一次。" + :mobile.share/media-import-error "匯入分享媒體失敗。請再試一次。" + :mobile.share/unsupported-content-warning "目前不支援解析此分享內容。請在 {1} 上回報以下代碼,我們會盡快處理。" + :mobile.share/unsupported-import-type "不支援匯入 {1} 檔案。您可以在 {2} 上回報,我們會盡快處理。" + + :mobile.tab/capture "捕獲" + :mobile.tab/go-to "前往" + :mobile.tab/graphs "圖譜" + + :mobile.toolbar/audio "音訊" + :mobile.toolbar/copy-ref "複製引用" + :mobile.toolbar/copy-url "複製網址" + :mobile.toolbar/hide "隱藏" + :mobile.toolbar/indent "縮進" + :mobile.toolbar/outdent "取消縮進" + :mobile.toolbar/photo "照片" + :mobile.toolbar/redo "重做" + :mobile.toolbar/reference "引用" + :mobile.toolbar/slash "斜線" + :mobile.toolbar/tag "標籤" + :mobile.toolbar/todo "待辦" + :mobile.toolbar/undo "復原" + :mobile.toolbar/unselect "取消選取" + + :nav/all-files "所有檔案" + :nav/all-journals "所有日誌" + :nav/appearance "外觀" + :nav/assets "資產" + :nav/cannot-go-to-internal-page "不能跳轉到內部頁面。" + :nav/flashcards "卡片" + :nav/graph "圖譜" + :nav/graph-view "圖譜顯示" + :nav/help "幫助" + :nav/home "首頁" + :nav/invalid-jump-error "無效跳轉" + :nav/journals "日記頁面" + :nav/plugins "外掛程式" + :nav/search "搜尋" + :nav/settings "設定" + :nav/skip-to-main-content "跳轉到主頁面" + :nav/tasks "任務" + :nav/themes "佈景主題" + + :nav.all-pages/label "頁面" + :nav.all-pages/title "頁面" + + :node/built-in-cant-delete-error "無法刪除內建項。" + :node/new "新增節點" :notification/clear-all "清除所有通知" + :notification/copied "已複製!" - :command.editor/indent "縮進塊標簽" - :command.editor/outdent "取消縮進塊" - :command.editor/move-block-up "向上移動塊" - :command.editor/move-block-down "向下移動塊" - :command.editor/new-block "創建塊" - :command.editor/new-line "塊中新建行" - :command.editor/zoom-in "聚焦" - :command.editor/zoom-out "推出聚焦" - :command.editor/follow-link "跟隨光標下的鏈接" - :command.editor/open-link-in-sidebar "在側邊欄打開" - :command.editor/expand-block-children "展開" - :command.editor/collapse-block-children "折疊" - :command.editor/select-block-up "選擇上方的塊" - :command.editor/select-block-down "選擇下方的塊" - :command.editor/select-all-blocks "選擇所有塊" - :command.ui/toggle-help "顯示/關閉幫助" - :command.go/search "全文搜索" - :command.ui/toggle-document-mode "切換文檔模式" - :command.ui/toggle-theme "“在暗色/亮色主題之間切換”" - :command.ui/toggle-right-sidebar "啟用/關閉右側欄" - :command.go/journals "跳轉到日記"} + :onboarding.import/desc "如果它們是 EDN 或 Markdown 格式,Logseq 可以使用它們。" + :onboarding.import/sqlite-desc "將你的 Logseq 圖譜的 SQLite 資料庫匯出檔案匯入到新的資料庫圖譜中" + :onboarding.import/title "你有想要匯入的筆記嗎?" + + :onboarding.import-option/desc "你也可以稍後在應用程式中進行此操作。" + :onboarding.import-option/title "匯入已有筆記" + + :onboarding.setup/desc "首先,你需要選擇一個資料夾,Logseq 將在其中儲存你的想法、創意和筆記。" + :onboarding.setup/title (fn [] ["歡迎使用 " [:strong "Logseq!"]]) + + :page/add-to-favorites "加入我的最愛" + :page/added-tag-to-node "已將標籤「{1}」加入到「{2}」" + :page/backlinks "反向連結" + :page/clear "清除" + :page/clear-local-storage-desc "這會刪除一些次要偏好設定,例如深色/淺色佈景主題。" + :page/cleared "已清除!" + :page/contents "內容" + :page/convert-to-tag "轉換為標籤" + :page/copy-url "複製頁面連結" + :page/create "建立新頁面" + :page/created-at "建立於" + :page/current-graph-as-sqlite-db "將目前圖譜匯出為 SQLite 資料庫" + :page/default-query-error "預設查詢失敗:" + :page/delete "刪除頁面" + :page/go-back-home "回到首頁" + :page/hide-properties "收起屬性" + :page/local-storage "本機儲存空間" + :page/logseq-is-having-a-problem "Logseq 出了些問題。請按照以下安全步驟將其還原到正常狀態:" + :page/make-private "將其轉為私人" + :page/make-public "將其公開讓所有人均可檢視" + :page/moved-to-recycle "節點已移至資源回收筒" + :page/name "頁面名稱" + :page/no-page-found-to-copy "找不到可複製的頁面" + :page/not-found "找不到頁面" + :page/not-found-desc "糟糕!您要找的頁面不存在。" + :page/not-found-title "找不到頁面" + :page/not-found-warning "未找到頁面" + :page/open-all-graphs-desc "您也可以前往{{All graphs}}切換至其他圖譜。" + :page/open-issue-desc "如果以上疑難排解步驟仍無法解決問題,請{{open an issue}}。" + :page/open-properties "展開屬性" + :page/rebuild "重建" + :page/relaunch "重新啟動" + :page/relaunch-desc "結束並重新開啟應用程式。" + :page/scheduled-and-deadline "排程與截止日期" + :page/search-index "搜尋索引" + :page/send-db-for-debugging "您可以將其傳送至 help@logseq.com 進行除錯。" + :page/something-went-wrong "出了些問題" + :page/step "步驟 {1}" + :page/the-app "應用程式" + :page/try "嘗試" + :page/unfavorite "從我的最愛移除" + :page/unknown "未知頁面" + :page/updated-at "更新於" + + :page.convert/block-parent-not-page "無法轉換塊,其父級不是頁面。" + :page.convert/cant-be-block "頁「{1}」無法轉換為區塊。" + :page.convert/cant-be-block-has-children "頁「{1}」無法轉換為區塊,因為它有子頁。" + :page.convert/cant-be-block-move-first "頁面「{1}」無法轉換為區塊,請先將其移至其他頁面。" + :page.convert/page-to-tag-action "將 \"{1}\" 轉換為標籤" + :page.convert/page-to-tag-built-in "內建頁面不能用作標籤" + :page.convert/page-to-tag-duplicate "標籤「{1}」已存在。" + :page.convert/page-to-tag-namespaced "命名空間頁面不能作為標籤" + :page.convert/property-value-to-page "無法將屬性值轉換為頁面。" + :page.convert/tag-to-page-action "將標籤轉換為頁面" + :page.convert/tag-to-page-built-in "內建標籤不能轉換為頁面" + :page.convert/tag-to-page-confirm-desc "將標籤轉換為頁面也會移除它的標籤屬性,並把所有已使用該標籤的節點中的該標籤一併移除。你確定要繼續嗎?" + :page.convert/tag-to-page-duplicate "頁面「{1}」已存在。" + :page.convert/tag-to-page-has-children "此標籤無法轉換,因為它仍有子標籤。必須先移除或轉換所有子標籤,才能轉換此標籤。" + + :page.delete/batch-confirm-title "確定要刪除這些頁面嗎?屬性與標籤將被永久刪除,頁面將被移入資源回收筒。" + :page.delete/confirm-title "確認要刪除此頁面嗎?" + :page.delete/permanent-confirm-title "確定要永久刪除此頁面嗎?" + :page.delete/success "頁面「{1}」已成功刪除!" + :page.delete/total "總計: {1}" + :page.delete/warning "這些頁面的內容已刪除,但無法刪除:{1}。有關更多詳細信息,請參閱 JavaScript 控制台。" + + :page.validation/cant-set-built-in-tags "新頁面不能設定內建標籤:{1}" + :page.validation/duplicate "另一个名为“{1}”的页面已存在,其标签为:{2}。" + :page.validation/name-blank "頁面名稱不能為空。" + :page.validation/name-no-hash "頁面名稱不能包含 「#」。" + :page.validation/name-no-slash "頁面名稱不能包含 /。" + :page.validation/parents-must-be-pages "頁面的父級必須是頁面。" + + :pdf/annotations-page "註解頁面" + :pdf/area-highlight-shortcut "區域醒目標示({1})" + :pdf/auto-fit "自動調整" + :pdf/auto-open-context-menu "為選中文字自動開啟內容選單" + :pdf/copy-ref "複製引用" + :pdf/copy-text "複製文字" + :pdf/corrupted-file-error "錯誤:{1}\n此 .pdf 檔案是否已損壞?\n請使用外部 PDF 檢視器確認。" + :pdf/doc-metadata "metadata 檔案" + :pdf/enter-to-search "按 Enter 搜尋" + :pdf/find-results "{2} 個結果中的第 {1} 個(「{3}」)" + :pdf/generic-error "錯誤:{1}\n{2}\n請確認 PDF 檔案資源。" + :pdf/highlight-mode "醒目標示模式" + :pdf/highlights "醒目標示" + :pdf/hl-block-colored "使用有色標籤顯示螢光筆區塊" + :pdf/linked-ref "已連結的引用" + :pdf/load-highlights-file-error "錯誤:無法載入突顯檔案 \"{1}\"。 \n{2}" + :pdf/missing-file-error "錯誤:{1}\n路徑是否正確?" + :pdf/more-settings "更多設定" + :pdf/no-outlines "無大綱" + :pdf/not-found "找不到。" + :pdf/open-in-app-window "在應用程式視窗中開啟" + :pdf/open-in-external-window "在外部視窗中開啟" + :pdf/outline "大綱" + :pdf/page-label "第 {1} 頁" + :pdf/password-protected-desc "此文件受密碼保護。請輸入密碼:" + :pdf/password-required "需要密碼" + :pdf/search "搜尋" + :pdf/search-placeholder "搜尋" + :pdf/toggle-dashed "使用線條顯示螢光筆區塊" + :pdf/viewer "PDF 檢視器" + :pdf/zoom-in "放大" + :pdf/zoom-out "縮小" + + :plugin/all "所有" + :plugin/auto-update-check "是否自動檢查更新" + :plugin/auto-update-check-feedback "自動檢查更新: {1}!" + :plugin/check-all-updates "確認所有更新" + :plugin/check-update "確認更新" + :plugin/checked "已檢查" + :plugin/checking-for-updates "正在檢查外掛更新 ..." + :plugin/contribute "✨ 貢獻外掛" + :plugin/custom-js-alert "已找到 custom.js ,確定要執行它嗎?(如果你不了解此檔案的內容,建議不要允許執行,因為這具有一定的安全風險。)" + :plugin/date-added "最新新增" + :plugin/delete-alert "你確定要解除安裝外掛 [{1}] 嗎?" + :plugin/disable-for-performance-feedback "外掛程式 {1} 已停用。" + :plugin/disable-now "立即停用" + :plugin/disabled "已關閉" + :plugin/does-not-support-db "不支援 DB 圖譜" + :plugin/downloads "下載" + :plugin/empty "找不到任何項目。" + :plugin/enabled "已啟用" + :plugin/existed-package "外掛套件已存在({1})。" + :plugin/fatal-error "致命錯誤: {1}" + :plugin/found-n-updates "發現 {1} 個外掛待更新" + :plugin/found-updates "有更新" + :plugin/install "下載" + :plugin/install-error "安裝失敗:{1}\n{2}" + :plugin/installed "已下載" + :plugin/installed-plugin "已安裝外掛程式:{1}" + :plugin/installing "下載中" + :plugin/invalid-github-repo-url "無效的 GitHub 倉庫 URL" + :plugin/invalid-package "非法的 Logseq 外掛套件。" + :plugin/invalid-plugins-edn "提供的 plugins.edn 無效。具體錯誤請查看 JavaScript 主控台" + :plugin/list-of-updates "可用的外掛更新: " + :plugin/load-from-web-url "透過URL載入外掛" + :plugin/load-plugin-indicator "載入外掛: {1}..." + :plugin/load-unpacked "讀取未壓縮的外掛" + :plugin/loading-indicator "載入中" + :plugin/malformed-plugins-edn "提供的 plugins.edn 格式錯誤。請檢查檔案是否為正確的 EDN 語法。" + :plugin/marketplace "市集" + :plugin/new-registered "新外掛已註冊!" + :plugin/no-settings-schema "沒有設定結構!" + :plugin/not-installed "尚未下載" + :plugin/open-logseq-dir "開啟" + :plugin/open-package "開啟封包" + :plugin/open-preferences "開啟外掛偏好設定" + :plugin/open-settings "開啟設定" + :plugin/perf-tip "外掛程式 {1} 載入時間過長,影響應用程式啟動時間,可能導致其他外掛程式無法載入。" + :plugin/popular "熱門" + :plugin/proxy-check-success "成功!狀態碼 {1},耗時 {2}ms。" + :plugin/readme-empty-warning "沒有 README 內容。" + :plugin/refresh-lists "重整列表" + :plugin/reload "重新整理" + :plugin/remote-error "遠端錯誤:{1}" + :plugin/report-modal-desc "如果任何外掛不可用或您認為其包含惡意程式碼,請寄電子郵件至 {1}。提及外掛名稱及其 GitHub 儲存庫的 URL。Logseq 團隊通常在一個工作日內回應。" + :plugin/report-security "檢舉外掛程式" + :plugin/restart "重新啟動應用程式" + :plugin/search-plugin "搜尋外掛" + :plugin/security-warning "外掛程式可以存取你的圖譜和本機檔案,請注意安全" + :plugin/setting-not-handled "#未處理# {1}" + :plugin/settings-schema-error "設定結構錯誤!" + :plugin/stars "星星" + :plugin/supports-db "支援 DB 圖譜" + :plugin/title "標題({1})" + :plugin/uninstall "解除安裝" + :plugin/unpacked "未壓縮的" + :plugin/unpacked-tips "選擇外掛資料夾" + :plugin/up-to-date "已是最新版本 {1}" + :plugin/update "更新" + :plugin/update-all-selected "更新已選外掛" + :plugin/update-all-success "全部已更新!" + :plugin/update-available "有可用更新" + :plugin/update-plugin "更新外掛程式:{1} - {2}" + :plugin/updates-downloading "正在下載更新" + :plugin/updating "正在更新" + + :plugin.install-from-file/menu-title "從 plugins.edn 安裝" + :plugin.install-from-file/notice "以下的外掛將會取代你的其他外掛:" + :plugin.install-from-file/success "所有外掛均已安裝完成。" + :plugin.install-from-file/title "從 plugins.edn 安裝外掛" + + :plugin.install-from-web-url/effect-label "功能" + :plugin.install-from-web-url/repo-url-placeholder "GitHub 儲存庫網址" + :plugin.install-from-web-url/supports-note "URL 支援 GitHub 儲存庫和本機開發伺服器。(例如:{1}、{2})" + :plugin.install-from-web-url/theme-label "佈景主題" + + :plugin.package-config/detach-desc "移除它只會將外掛從 Logseq 中解除連結,並保留來源資料夾不變。" + :plugin.package-config/parse-error "解析外掛套件設定失敗。" + :plugin.package-config/remove-error "移除損壞的外掛失敗。" + :plugin.package-config/remove-external-success "已從外掛清單中移除損壞的外掛。" + :plugin.package-config/remove-installed-success "已移除損壞的外掛「{1}」。" + + :plugin.proxy/direct "直接連線" + :plugin.proxy/system "系統" + :plugin.proxy/test-url "測試 URL" + :plugin.proxy/testing "測試中" + + :plugin.settings/edit-settings-json "編輯 settings.json" + :plugin.settings/exit-code-mode "退出程式碼模式" + :plugin.settings/title "外掛程式" + + :plugin.themes/default-desc "Logseq 預設 {1} 主題." + :plugin.themes/default-name "Default {1} theme" + :plugin.themes/group "{1} 主題" + :plugin.themes/light-and-dark "亮色與深色主題" + + :profiler/input-fn-placeholder "在此輸入函式名稱" + :profiler/unregister "取消註冊" + + :property/add-choice "新增選項" + :property/add-choices "新增選項" + :property/add-description "新增描述" + :property/add-new "新增屬性" + :property/add-or-change "新增或變更屬性" + :property/available-choices "可用選項" + :property/change-tooltip "變更 {1}" + :property/checkbox-state-mapping "核取方塊狀態對應" + :property/children-count "子項 ({1})" + :property/choices-count "{1} 個選項" + :property/choose-tag "選擇標籤" + :property/choose-tags "選擇標籤" + :property/clear-value "清空" + :property/configure "設定屬性" + :property/convert-page-to-property "將 \"{1}\" 轉換為屬性" + :property/create-error "建立屬性失敗。" + :property/default-value "預設值" + :property/delete-from-node "從節點刪除屬性" + :property/delete-from-node-confirm "確認要從此節點刪除此屬性嗎?" + :property/delete-from-tag "從標籤刪除屬性" + :property/delete-from-tag-confirm "確認要從此標籤刪除此屬性嗎?" + :property/description-placeholder "描述" + :property/drag-to-reorder "拖曳以重新排序" + :property/existing-values "現有值:" + :property/go-to-this-property "跳至此屬性" + :property/hidden-properties "隱藏的屬性" + :property/hide-by-default "預設隱藏" + :property/hide-choice-for-tag "對此標籤隱藏選項" + :property/hide-empty-value "隱藏空值" + :property/hide-for-tag "對 #{1} 隱藏" + :property/hide-hidden-choices "隱藏已隱藏的選項" + :property/map-checked-to "將已勾選對應到" + :property/map-unchecked-to "將未勾選對應到" + :property/more-settings "更多設定" + :property/multiple-values "多值" + :property/multiple-values-confirm "此操作無法復原,確認要將此屬性改為多值嗎?" + :property/name "屬性名稱" + :property/name-placeholder "名稱" + :property/nodes-with-property "具有屬性的節點" + :property/overdue "已逾期" + :property/private-built-in-not-usable "這是私有內建屬性,不能使用。" + :property/select-choice "選擇一個選項" + :property/select-property-placeholder "選擇屬性" + :property/select-type-placeholder "選擇屬性類型" + :property/self-reference "自我引用" + :property/set-default-choice "設為預設選項" + :property/set-default-value "設定預設值" + :property/set-icon "設定圖示" + :property/set-placeholder "設定 {1}" + :property/set-property "設定屬性" + :property/set-tags "設定標籤" + :property/set-value "設定值" + :property/show-as-checkbox-on-node "在節點上顯示為核取方塊" + :property/show-as-checkbox-on-tagged-nodes "在已標記節點上顯示為核取方塊" + :property/show-hidden-choices "顯示已隱藏的選項" + :property/skip-choosing-tag "跳過選擇標籤" + :property/specify-node-tags "指定節點標籤" + :property/title-placeholder "標題" + :property/type "屬性類型" + :property/type-change-warning "變更屬性類型會清除部分屬性配置。" + :property/type-checkbox "核取方塊" + :property/type-date "日期" + :property/type-datetime "日期時間" + :property/type-locked-help "屬性類型一旦開始使用便會鎖定" + :property/type-node "節點" + :property/type-number "數字" + :property/type-text "文字" + :property/type-url "網址" + :property/ui-position "介面位置" + :property/ui-position-block-below "區塊的下方" + :property/ui-position-block-left "區塊的開頭" + :property/ui-position-block-right "區塊的結尾" + :property/ui-position-properties "區塊屬性" + :property/unset-property "移除屬性" + :property/update-success "屬性已更新!" + + :property.built-in/alias "別名" + :property.built-in/asset "素材" + :property.built-in/asset-align "素材對齊" + :property.built-in/asset-checksum "檔案校驗碼" + :property.built-in/asset-external-file-name "外部檔案名稱" + :property.built-in/asset-external-url "外部網址" + :property.built-in/asset-height "圖片高度" + :property.built-in/asset-last-visit-page "最後造訪頁面" + :property.built-in/asset-remote-metadata "檔案遠端中繼資料" + :property.built-in/asset-resize-metadata "素材縮放中繼資料" + :property.built-in/asset-size "檔案大小" + :property.built-in/asset-type "檔案類型" + :property.built-in/asset-width "圖片寬度" + :property.built-in/background-color "背景顏色" + :property.built-in/built-in "是否為內建?" + :property.built-in/checkbox-display-properties "以核取方塊顯示的屬性" + :property.built-in/choice-checkbox-state "選項核取方塊狀態" + :property.built-in/choice-classes "選項分類" + :property.built-in/choice-exclusions "選項排除" + :property.built-in/class-bidirectional-property-title "雙向屬性標題" + :property.built-in/class-enable-bidirectional "啟用雙向屬性" + :property.built-in/class-extends "繼承自" + :property.built-in/class-hide-from-node "從節點隱藏" + :property.built-in/class-properties "標籤屬性" + :property.built-in/classes "屬性分類" + :property.built-in/closed-value-property "封閉值屬性" + :property.built-in/code-lang "程式碼模式" + :property.built-in/collapsed "節點已摺疊?" + :property.built-in/created-at "節點建立時間" + :property.built-in/created-by-ref "節點建立者" + :property.built-in/created-from-property "從屬性建立" + :property.built-in/deadline "截止日期" + :property.built-in/default-value "預設值" + :property.built-in/deleted-at "刪除時間" + :property.built-in/deleted-by-ref "刪除者" + :property.built-in/description "描述" + :property.built-in/enable-history "啟用屬性歷史" + :property.built-in/exclude-from-graph-view "從圖譜檢視排除?" + :property.built-in/fsrs-due "到期" + :property.built-in/fsrs-state "狀態" + :property.built-in/heading "標題" + :property.built-in/hide "隱藏此屬性或頁面" + :property.built-in/hide-empty-value "隱藏空值" + :property.built-in/history-block "歷史區塊" + :property.built-in/history-property "歷史屬性" + :property.built-in/history-ref-value "歷史值" + :property.built-in/history-scalar-value "歷史純量值" + :property.built-in/icon "圖示" + :property.built-in/journal-day "日誌日期" + :property.built-in/journal-title-format "標題格式" + :property.built-in/link "節點連結至" + :property.built-in/linked-references-excludes "排除的引用" + :property.built-in/linked-references-includes "包含的引用" + :property.built-in/ls-type "LS 類型" + :property.built-in/node-display-type "節點顯示類型" + :property.built-in/order "節點順序" + :property.built-in/order-list-type "清單類型" + :property.built-in/page "節點頁面" + :property.built-in/page-tags "頁面標籤" + :property.built-in/parent "父節點" + :property.built-in/priority "優先順序" + :property.built-in/public "屬性是否公開?" + :property.built-in/publish-published-url "已發布的網址" + :property.built-in/publishing-public "發布是否公開?" + :property.built-in/query "查詢" + :property.built-in/reaction-emoji-id "回應表情符號" + :property.built-in/reaction-target "回應目標" + :property.built-in/recycle-original-order "回收原始順序" + :property.built-in/recycle-original-page "回收原始頁面" + :property.built-in/recycle-original-parent "回收原始父節點" + :property.built-in/refs "節點引用" + :property.built-in/repeat-checked-property "重複核取屬性" + :property.built-in/repeat-recur-frequency "重複週期頻率" + :property.built-in/repeat-recur-unit "重複週期單位" + :property.built-in/repeat-repeated "節點是否重複?" + :property.built-in/repeat-temporal-property "重複時間屬性" + :property.built-in/scalar-default-value "非引用類型預設值" + :property.built-in/scheduled "排程" + :property.built-in/status "狀態" + :property.built-in/sync-large-title-object "儲存於遠端物件儲存的大型區塊標題引用" + :property.built-in/table-filters "檢視篩選" + :property.built-in/table-hidden-columns "檢視隱藏欄位" + :property.built-in/table-ordered-columns "檢視排列欄位" + :property.built-in/table-pinned-columns "表格檢視釘選欄位" + :property.built-in/table-sized-columns "檢視欄位設定" + :property.built-in/table-sorting "檢視排序" + :property.built-in/tags "標籤" + :property.built-in/template-applied-to "將範本套用至標籤" + :property.built-in/title "節點標題" + :property.built-in/type "屬性類型" + :property.built-in/ui-position "屬性位置" + :property.built-in/updated-at "節點更新時間" + :property.built-in/used-template "使用的範本" + :property.built-in/user-avatar "使用者頭像" + :property.built-in/user-email "使用者電子郵件" + :property.built-in/user-name "使用者名稱" + :property.built-in/value "屬性值" + :property.built-in/view-context "屬性檢視內容" + :property.built-in/view-feature-type "檢視功能類型" + :property.built-in/view-for "此檢視隸屬於" + :property.built-in/view-group-by-property "檢視群組依據屬性" + :property.built-in/view-sort-groups-by-property "檢視群組排序依據" + :property.built-in/view-sort-groups-desc "檢視群組降序排列" + :property.built-in/view-type "檢視類型" + + :property.choice/already-exists "選項已存在。" + :property.choice/cant-delete-built-in "無法刪除內建選項。" + :property.choice/invalid "此屬性的選擇「{1}」無效:{2}" + + :property.color/blue "藍色" + :property.color/green "綠色" + :property.color/purple "紫色" + :property.color/red "紅色" + :property.color/yellow "黃色" + + :property.priority/high "高" + :property.priority/low "低" + :property.priority/medium "中" + :property.priority/urgent "緊急" + + :property.repeat/date "重複日期" + :property.repeat/datetime "重複日期時間" + :property.repeat/every "每" + :property.repeat/is-label "為:" + :property.repeat/task "重複任務" + :property.repeat/when "當" + + :property.repeat-recur-unit/day "天" + :property.repeat-recur-unit/hour "小時" + :property.repeat-recur-unit/minute "分鐘" + :property.repeat-recur-unit/month "月" + :property.repeat-recur-unit/week "週" + :property.repeat-recur-unit/year "年" + + :property.status/backlog "待處理" + :property.status/canceled "已取消" + :property.status/doing "進行中" + :property.status/done "已完成" + :property.status/in-review "審核中" + :property.status/todo "待辦" + + :property.validation/cant-convert-to-number "無法將「{1}」轉換為數字。" + :property.validation/cant-remove-required "無法移除必需的屬性。" + :property.validation/cant-set-self-value "無法將自身設為屬性值。" + :property.validation/duplicate "屬性「{1}」已存在。" + :property.validation/invalid-name "這是無效的屬性名稱。屬性名稱不能以頁面引用字元“#”或“[[”開頭。" + :property.validation/invalid-value "屬性「{1}」具有無效值:{2}" + :property.validation/many-to-one "無法將多值屬性改為單值屬性。" + :property.validation/protected "此屬性受保護,無法修改。" + + :property.view-type/gallery "圖庫檢視" + :property.view-type/list "清單檢視" + :property.view-type/table "表格檢視" + + :publish/action "發布" + :publish/dialog-desc "可選擇為此頁面加上密碼保護。留空則為公開存取。" + :publish/dialog-title "發布頁面" + :publish/invalid-page-error "發布失敗:頁面無效。" + :publish/password-optional-placeholder "選填密碼" + :publish/publish-error "發布失敗。" + :publish/published-to "發佈到:{1}" + :publish/publishing "發布中..." + :publish/unpublish "取消發布" + :publish/unpublish-error "取消發布失敗。" + :publish/unpublish-missing-page-id "取消發布失敗:缺少頁面 ID。" + :publish/unpublished "已取消發布。" + + :query/advanced-results "進階查詢結果" + :query/custom-view-error "自訂檢視錯誤:{1}" + :query/error "查詢錯誤:" + :query/examples-desc "查看更多範例:{{Queries documentation}}。" + :query/examples-title "查詢範例:" + :query/results-for "{1} 的結果" + + :query.builder/add-filter-or-operator-placeholder "新增篩選器/運算子" + :query.builder/between-end-label "結束日期" + :query.builder/between-journal-label "介於:{1} ~ {2}" + :query.builder/between-start-label "開始日期" + :query.builder/created-label "建立時間" + :query.builder/filter "篩選" + :query.builder/filter-full-text-search-label "全文搜尋" + :query.builder/filter-page-label "頁面" + :query.builder/filter-page-reference-label "頁面引用" + :query.builder/filter-sample-label "取樣" + :query.builder/operator-and-label "且" + :query.builder/operator-not-label "非" + :query.builder/replace-with-label "替換為:" + :query.builder/search-label "搜尋:{1}" + :query.builder/show-built-in-properties "顯示內建屬性" + :query.builder/unwrap-operator "解除包裝" + :query.builder/updated-label "更新時間" + :query.builder/wrap-filter-with-label "以下方式包裝此篩選:" + + :reference/blocks "區塊引用" + :reference/copy "複製此引用" + :reference/delete "刪除此引用" + :reference/page-filter "頁面篩選" + :reference/replace-with-embed "取代為嵌入" + :reference/replace-with-text "取代為文字" + + :reference.filter/directions "點擊以包含,Shift+點擊以排除,再次點擊以移除。" + :reference.filter/excludes "排除:" + :reference.filter/includes "包含:" + :reference.filter/search-placeholder "在已連結頁面搜尋" + :reference.filter/title "篩選條件" + + :search/blank-input "空白輸入" + :search/full-text-placeholder "全文搜尋" + :search/index-progress "正在建立索引 {1}%" + :search/indices-rebuilt-success "搜尋索引已成功重建!" + :search/no-result "未找到匹配項" + :search/result-count "{1} 個結果" + + :search.find-in-page/input-placeholder "在頁面中尋找" + :search.find-in-page/match-case "區分大小寫" + :search.find-in-page/next-result "下一個結果" + :search.find-in-page/previous-result "上一個結果" + + :select/default-prompt "請選擇提示" + :select/default-select-multiple "選擇一個或多個" + :select/new-option "+ 新選項: {1}" + + :server/error-notification "[伺服器] {1}" + :server/mcp-url-copied "MCP URL 已複製到剪貼簿!" + :server/start "啟動伺服器" + :server/stop "停止伺服器" + :server/title "HTTP API 伺服器" + + :server.config/auto-start-label "隨應用程式啟動自動啟動伺服器" + :server.config/port-label "連接埠(1 ~ 65535)" + :server.config/reset "重設" + :server.config/save-and-apply "儲存並套用" + :server.config/title "伺服器設定" + + :server.status/closed "已關閉" + :server.status/closing "關閉中" + :server.status/error "錯誤" + :server.status/running "執行中" + :server.status/starting "啟動中" + :server.status/stopped "已停止" + + :server.token/add-new "+ 新增權杖" + :server.token/name-placeholder "名稱" + :server.token/regenerate-value "重新產生權杖值" + :server.token/title "授權權杖" + :server.token/update-success "權杖更新成功!" + :server.token/value-placeholder "值" + + :settings/account "帳戶" + :settings/advanced "進階功能" + :settings/ai "AI" + :settings/collaboration "協作" + :settings/editor "編輯器" + :settings/encryption "加密" + :settings/features "附加功能" + :settings/general "常規" + :settings/keymap "快速鍵" + :settings/plugins "外掛程式" + + :settings.account/storage-usage "{1}GB / {2}GB 總儲存({3})" + :settings.account/synced-graphs "{1}/{2} 個同步圖譜({3})" + + :settings.advanced/auto-chmod "自動更改檔案許可權" + :settings.advanced/auto-chmod-desc "禁用此功能可以允許多個使用者在擁有使用者組許可權的情況下編輯檔案。" + :settings.advanced/auto-updater "自動更新" + :settings.advanced/developer-mode "開發者模式" + :settings.advanced/developer-mode-desc "開發者模式可以協助貢獻者及擴充套件開發人員更有效率地測試 Logseq。" + :settings.advanced/disable-sentry "寄送資料和診斷書給 Logseq" + :settings.advanced/disable-sentry-desc "Logseq 永遠不會收集你的圖譜資料或出售你的數據。" + :settings.advanced/network-proxy "網路代理" + + :settings.ai/enable-mcp-server "MCP 伺服器" + :settings.ai/enable-mcp-server-desc "啟用 MCP 伺服器,允許與本地 AI 應用程式通訊" + + :settings.editor/auto-expand-block-refs "自動展開聚焦 block 的引用" + :settings.editor/auto-expand-block-refs-tip "此選項控制是否在頁面載入時展開區塊引用" + :settings.editor/custom-date-format "偏好日期格式" + :settings.editor/enable-all-pages-public "釋出所有頁面" + :settings.editor/enable-shortcut-tooltip "啟用快速鍵提示" + :settings.editor/enable-tooltip "啟用提示" + :settings.editor/preferred-outdenting "邏輯化縮排" + :settings.editor/preferred-outdenting-tip "左側顯示預設設定的減少縮排效果,右側顯示可選設定的效果" + :settings.editor/preferred-outdenting-tip-more "→ 瞭解更多" + :settings.editor/preferred-pasting-file "儲存連結為檔案" + :settings.editor/preferred-pasting-file-hint "啟用後,從網際網路貼上圖片將自動下載並儲存到本機" + :settings.editor/show-brackets "顯示括號" + :settings.editor/show-full-blocks "顯示所有區塊引用列" + :settings.editor/spell-checker "自動拼音核對" + :settings.editor/wide-mode "寬屏模式" + + :settings.features/enable-flashcards "啟用卡片" + :settings.features/enable-journals "啟用日記頁面" + :settings.features/home-default-page "設定預設首頁" + :settings.features/home-default-page-update-success "首頁預設頁面已更新成功!" + :settings.features/journals-enable-success "已啟用日誌頁" + :settings.features/login-prompt "你必須是 Logseq 的 Open Collective Sponsor 或 Backer 以使用新功能。(需要登入)" + :settings.features/page-not-found "頁面「{1}」尚不存在。請先建立該頁面,然後再試一次。" + :settings.features/plugin-system "外掛系統" + + :settings.general/accent-color "強調色" + :settings.general/accent-color-alert "選擇強調色可能會影響你選擇的自訂主題。" + :settings.general/accent-color-logseq "Logseq 經典配色" + :settings.general/accent-color-none-desc "取消強調色。此功能目前仍處於測試階段,主要用於相容自訂主題。" + :settings.general/changelog "更新內容" + :settings.general/check-for-updates "檢查更新" + :settings.general/current-revision-label "目前修訂:" + :settings.general/current-version "目前版本" + :settings.general/custom-configuration "個人化設定" + :settings.general/custom-global-configuration "個人化全域設定" + :settings.general/custom-theme "個人化主題" + :settings.general/edit-config-edn "編輯 config.edn" + :settings.general/edit-custom-css "編輯 custom.css" + :settings.general/edit-export-css "編輯 export.css" + :settings.general/edit-global-config-edn "編輯 global config.edn" + :settings.general/editor-font "編輯器字型" + :settings.general/editor-font-set-global "設為全域字型" + :settings.general/export-theme "匯出主題" + :settings.general/language "語言" + :settings.general/native-titlebar "原生標題欄" + :settings.general/native-titlebar-desc "在Windows和Linux上啟用系統原生風格的視窗標題欄。" + :settings.general/refresh-required-feedback "請重新整理應用程式以讓此變更生效" + :settings.general/release-channel "發布渠道" + :settings.general/revision "版本:{1}" + :settings.general/theme-dark "深色模式" + :settings.general/theme-light "淺色模式" + :settings.general/theme-system "跟隨系統" + + :settings.sync-server/clear-success "已清除同步伺服器 URL。將使用官方 Logseq Sync。" + :settings.sync-server/reset "還原預設值" + :settings.sync-server/save-success "已儲存同步伺服器 URL。" + :settings.sync-server/url "同步伺服器 URL" + :settings.sync-server/url-desc "為自架同步設定自訂 HTTPS 同步伺服器 URL。你的 Logseq 驗證權杖會傳送到此伺服器,因此只應使用可信任的 URL。留空則使用官方 Logseq Sync。" + :settings.sync-server/url-invalid-error "URL 必須以 https:// 或 http:// 開頭" + + :shell/input-command-title "輸入指令" + + :shortcut.category/basics "基礎操作" + :shortcut.category/block-command-editing "塊編輯文字操作" + :shortcut.category/block-editing "塊編輯基本" + :shortcut.category/block-selection "塊選擇操作" + :shortcut.category/formatting "格式化" + :shortcut.category/navigating "移動" + :shortcut.category/others "其他" + :shortcut.category/plugins "外掛" + :shortcut.category/toggle "切換" + + :sidebar.left/favorites "我的最愛" + :sidebar.left/navigations "導覽" + :sidebar.left/recent-pages "最近" + + :sidebar.right/close "關閉" + :sidebar.right/close-all "全部關閉" + :sidebar.right/close-others "關閉其他" + :sidebar.right/collapse "折疊" + :sidebar.right/collapse-all "全部折疊" + :sidebar.right/collapse-others "折疊其他" + :sidebar.right/expand "展開" + :sidebar.right/expand-all "全部展開" + :sidebar.right/more "更多" + :sidebar.right/open "在側邊欄中開啟" + :sidebar.right/open-as-page "以頁面形式開啟" + :sidebar.right/resize-handle "右側邊欄調整大小" + :sidebar.right/toggle "切換右側邊欄" + + :storage/invalid-data-writing "無效資料寫入。" + :storage/sqlitedb-error "SQLiteDB 錯誤:{1}" + :storage/sqlitedb-import-error "SQLiteDB 匯入錯誤:{1}" + :storage/sqlitedb-save-error "SQLiteDB 儲存錯誤:{1}" + + :storage.recycle/block-deleted-at "塊已刪除 {1}" + :storage.recycle/empty "資源回收筒是空的。" + :storage.recycle/page-deleted-at "頁面已刪除 {1}" + :storage.recycle/readonly "回收站是唯讀的。" + :storage.recycle/restore "還原" + :storage.recycle/retention-desc "已刪除的頁面與區塊會保留在這裡,直到被還原或在 30 天後自動垃圾回收。" + :storage.recycle/title "資源回收筒" + + :sync/assets-downloading-count "正在下載資產({1})" + :sync/assets-uploading-count "正在上傳資產({1})" + :sync/creating-remote-graph "正在建立遠端圖譜..." + :sync/downloading "下載中..." + :sync/downloading-graph "正在下載 {1} ..." + :sync/graph-count-exceed-limit "同步圖譜數量超出限制" + :sync/invitation-sent "邀請已發送!" + :sync/last-synced-time-label "最後同步時間:{1}" + :sync/more-debug-info "更多除錯資訊" + :sync/offline "離線" + :sync/online "在線" + :sync/pending-local-changes "待定本機變更" + :sync/pending-server-changes "待定伺服器變更" + :sync/something-wrong "出了點問題,請再試一次。" + :sync/start-sync "開始同步" + :sync/storage-exceed-limit "同步儲存超出限制" + :sync/uploading "上傳中..." + :sync/user-doesnt-exist-yet "該使用者尚不存在。" + + :theme/logseq-default "Logseq 預設主題" + :theme/switch-to "切換到 {1} 主題" + + :ui/all-done "全部完成!" + :ui/apply "套用" + :ui/cancel "取消" + :ui/close "關閉" + :ui/configure "設定" + :ui/confirm "確認" + :ui/copy "複製" + :ui/copy-all "全部複製" + :ui/copy-to-clipboard "複製到剪貼簿" + :ui/create "建立" + :ui/date-natural-language-placeholder "例如 下週" + :ui/delete "刪除" + :ui/deleted "已刪除" + :ui/dont-remind-me-again "不再提醒" + :ui/empty "空" + :ui/error "錯誤" + :ui/error-boundary-error "UI 攔截到錯誤!\n {1}" + :ui/export "匯出" + :ui/false "否" + :ui/fix "修復它!" + :ui/frequently-used "常用" + :ui/from "從: " + :ui/host "主機" + :ui/image "圖片" + :ui/label "標籤" + :ui/link "連結" + :ui/load-more "載入更多" + :ui/loading "載入中..." + :ui/login "登入" + :ui/logout "登出" + :ui/off "關" + :ui/on "開" + :ui/open "開啟" + :ui/open-named "開啟 {1}" + :ui/port "連接埠" + :ui/refresh "重新整理" + :ui/relaunch-confirm "此變更需重新啟動應用程式,是否立即重新啟動?" + :ui/remove-background "移除背景" + :ui/reset "重設" + :ui/run "執行" + :ui/save "儲存" + :ui/show-less "顯示較少" + :ui/show-more "顯示更多" + :ui/skip "略過" + :ui/submit "提交" + :ui/to "到: " + :ui/toggle-theme "切換佈景主題" + :ui/true "是" + :ui/type "類型" + :ui/untitled "無標題" + :ui/use-current-time "使用目前時間" + :ui/yes "是" + + :updater/checking-for-updates "正在檢查更新" + :updater/downloading-progress "正在下載更新({1}%)" + :updater/quit-and-install "重新啟動並安裝" + :updater/up-to-date "應用已是最新版本 🎉" + :updater/update-available "發現新版本" + :updater/update-error "⚠️ 哎呀,出了點問題!\n請查看{1}。" + :updater/update-ready-to-install "更新已準備就緒" + + :view/add-new-view "新增新檢視" + :view/all "全部" + :view/export-edn "匯出 EDN" + :view/linked-references "已連結的引用" + :view/new "新增" + :view/new-property "新增屬性" + :view/new-view "新增檢視" + :view/rename "重新命名" + :view/results "結果:" + :view/unlinked-references "未連結的引用" + + :view.filter/custom-date "自訂日期" + :view.filter/empty "空" + :view.filter/filter "篩選" + :view.filter/from "從" + :view.filter/is-empty "為空" + :view.filter/is-not-empty "不為空" + :view.filter/match "匹配" + :view.filter/match-all-filters "匹配全部篩選條件" + :view.filter/match-any-filter "匹配任一篩選條件" + :view.filter/operator-after "晚於" + :view.filter/operator-before "早於" + :view.filter/operator-between "介於" + :view.filter/operator-date-after "日期晚於" + :view.filter/operator-date-before "日期早於" + :view.filter/operator-is "是" + :view.filter/operator-is-not "不是" + :view.filter/operator-text-contains "文字包含" + :view.filter/operator-text-not-contains "文字不包含" + :view.filter/or "或" + :view.filter/relative-1-day-ago "1 天前" + :view.filter/relative-1-month-ago "1 個月前" + :view.filter/relative-1-week-ago "1 週前" + :view.filter/relative-1-year-ago "1 年前" + :view.filter/relative-3-days-ago "3 天前" + :view.filter/relative-3-months-ago "3 個月前" + :view.filter/to "到" + :view.filter/type-to-search "輸入以搜尋" + + :view.table/ascending "升序" + :view.table/columns-visibility "列可見性" + :view.table/default-title "{1} 個節點" + :view.table/delete-sort "刪除排序" + :view.table/descending "降序" + :view.table/drag-to-reorder "拖曳以重新排序" + :view.table/group-by "分組" + :view.table/group-journal-date "日誌日期" + :view.table/group-page-created-date "頁面建立日期" + :view.table/group-page-name "頁面名稱" + :view.table/group-page-updated-date "頁面更新日期" + :view.table/live-query-title "實時查詢({1})" + :view.table/name-column "名稱" + :view.table/no-group-value "無 {1}" + :view.table/page "頁面" + :view.table/pages "頁面" + :view.table/pin "釘選" + :view.table/row-number "列號" + :view.table/select-all "全選" + :view.table/select-column "選擇" + :view.table/select-order "選擇排序" + :view.table/select-row "選取列" + :view.table/selected-count "已選取:{1}" + :view.table/sort-ascending "升冪排序" + :view.table/sort-descending "降冪排序" + :view.table/sort-groups-by "分組排序依據" + :view.table/sort-groups-order "分組排序方向" + :view.table/total-refs-count "總引用數" + :view.table/unpin "取消釘選" + + :window/close "關閉" + :window/exit-fullscreen "離開全螢幕" + :window/maximize "最大化" + :window/minimize "最小化" + :window/restore "還原" + + :youtube/embed-first-reminder-mobile "請先嵌入 YouTube 影片,然後使用此圖示。\n提醒:您可以在行動裝置上貼上原始 YouTube 網址作為嵌入影片。" + :youtube/player-not-ready "YouTube 播放器尚未準備好。" + :youtube/timestamps-not-available-mobile "YouTube 時間戳記在行動裝置上暫不可用。" + + :zotero/attachments "附件" + :zotero/imported-file-warning "這是一個從 Zotero 匯入的檔案,設定 Zotero 資料目錄 後即可在 Logseq 中開啟該檔案。" + :zotero/linked-file-warning "這是一個 Zotero 連結檔案,設定 Zotero 連結附件基底目錄 後即可在 Logseq 中開啟該檔案。" + :zotero/notes "筆記" +} diff --git a/src/test/frontend/components/query_test.cljs b/src/test/frontend/components/query_test.cljs index 4a8ea82c64..e7d326ca7e 100644 --- a/src/test/frontend/components/query_test.cljs +++ b/src/test/frontend/components/query_test.cljs @@ -1,6 +1,7 @@ (ns frontend.components.query-test (:require [cljs.test :refer [deftest is]] - [frontend.components.query :as query])) + [frontend.components.query :as query] + [frontend.state :as state])) (deftest grouped-by-page-result-detection-supports-partial-page-refs (let [result [[{:db/id 42} @@ -8,3 +9,22 @@ (is (true? (#'query/grouped-by-page-result? result true)) "Grouped query results with page refs that only include :db/id should still be recognized") (is (false? (#'query/grouped-by-page-result? result false))))) + +(deftest built-in-custom-query-detection-requires-stable-title-key + (with-redefs [state/sub-config (constantly {:default-queries + {:journals [{:title-key :journal.default-query/doing + :query '[:find ?b] + :inputs [:today]}]}})] + (is (true? (#'query/built-in-custom-query? {:title-key :journal.default-query/doing + :query '[:find ?b] + :inputs [:today]}))) + (is (false? (#'query/built-in-custom-query? {:query '[:find ?b] + :inputs [:today]}))) + (is (false? (#'query/built-in-custom-query? {:title-key :journal.default-query/todo + :query '[:find ?b] + :inputs [:today]}))))) + +(deftest resolve-built-in-query-allows-explicit-built-in-queries + (with-redefs [state/sub-config (constantly {:default-queries {:journals []}})] + (is (true? (#'query/resolve-built-in-query? true {:title "TODO"}))) + (is (false? (#'query/resolve-built-in-query? false {:title "TODO"}))))) diff --git a/src/test/frontend/context/i18n_test.cljs b/src/test/frontend/context/i18n_test.cljs index cfd68594fb..ee17674330 100644 --- a/src/test/frontend/context/i18n_test.cljs +++ b/src/test/frontend/context/i18n_test.cljs @@ -1,31 +1,305 @@ (ns frontend.context.i18n-test - (:require [frontend.context.i18n :as i18n] - [frontend.state :as state] - [cljs.test :refer [deftest is testing use-fixtures]])) + (:require [cljs.test :refer [deftest is testing use-fixtures]] + [frontend.context.i18n :as i18n] + [frontend.state :as state])) -(use-fixtures :once (fn [f] - (f) - (state/set-state! :preferred-language nil))) +(defn- set-language! + [language] + (state/set-preferred-language! language)) -(deftest translations - (testing "ui translations" - (state/set-preferred-language! :en) +(use-fixtures :each + (fn [f] + (state/set-state! :preferred-language nil) + (f) + (state/set-state! :preferred-language nil))) + +(deftest preferred-locale-test + (testing "preferred locale defaults to English and reflects canonicalized state values" + (is (= :en + (i18n/preferred-locale))) + + (set-language! "zh-cn") + (is (= :zh-CN + (i18n/preferred-locale))) + + (set-language! "en-US") + (is (= :en + (i18n/preferred-locale))))) + +(deftest locale-tag-test + (testing "locale tags default to English" + (is (= "en" + (i18n/locale-tag nil)))) + + (testing "locale-tag preserves canonical locale casing" + (is (= "pt-BR" + (i18n/locale-tag :pt-BR))) + (is (= "zh-CN" + (i18n/locale-tag :zh-CN))))) + +(deftest start-test + (testing "start initializes preferred language from the browser locale when missing" + (with-redefs [i18n/fetch-local-language (constantly "pt-br")] + (i18n/start) + (is (= :pt-BR + (i18n/preferred-locale))))) + + (testing "start does not overwrite an existing preferred language" + (set-language! :en) + (with-redefs [i18n/fetch-local-language (constantly "zh-cn")] + (i18n/start) + (is (= :en + (i18n/preferred-locale)))))) + +(deftest t-test + (testing "t translates the current locale" + (set-language! :en) (is (= "About Logseq" (i18n/t :help/about))) - (state/set-preferred-language! :es) + (set-language! :es) (is (= "Acerca de Logseq" (i18n/t :help/about)))) - (testing "command and category translations" - (state/set-preferred-language! :en) - (is (= "Go to journals" - (i18n/t :command.go/journals)) - "Check config/config") - (is (= "Basics" - (i18n/t :shortcut.category/basics)) - "Check config/category") + (testing "t keeps locale-specific punctuation around placeholders" + (set-language! :en) + (is (= "Page \"Inbox\" was deleted successfully!" + (i18n/t :page.delete/success "Inbox"))) - (state/set-preferred-language! :es) - (is (= "Ir a los diarios" - (i18n/t :command.go/journals))))) + (set-language! :zh-CN) + (is (= "页面“Inbox”已成功删除!" + (i18n/t :page.delete/success "Inbox"))) + + (set-language! :zh-Hant) + (is (= "頁面「Inbox」已成功刪除!" + (i18n/t :page.delete/success "Inbox"))))) + +(deftest tt-test + (testing "tt returns the first translated key" + (set-language! :en) + (is (= "About Logseq" + (i18n/tt :missing/key :help/about)))) + + (testing "tt returns nil when every key is missing" + (is (nil? (i18n/tt :missing/one :missing/two))))) + +(deftest interpolate-rich-text-test + (testing "interpolate-rich-text keeps replacement order and preserves missing placeholders" + (is (= ["Reassigned from " + [:span.shortcut-feedback-name "Old action"]] + (i18n/interpolate-rich-text + "Reassigned from {1}" + [[:span.shortcut-feedback-name "Old action"]]))) + + (is (= [[:a {:href "https://example.com"} "https://example.com"] + " に公開しました"] + (i18n/interpolate-rich-text + "{1} に公開しました" + [[:a {:href "https://example.com"} "https://example.com"]]))) + + (is (= ["Published to " + "{2}"] + (i18n/interpolate-rich-text + "Published to {2}" + [[:span "unused"]])))) + + (testing "non-string templates are returned as a single fragment" + (is (= [[:span "inline"]] + (i18n/interpolate-rich-text + [:span "inline"] + []))))) + +(deftest interpolate-rich-text-with-line-breaks-test + (is (= ["Line 1" + [:br] + "Line 2 " + [:a "link"] + "."] + (i18n/interpolate-rich-text + "Line 1\nLine 2 {1}." + [[:a "link"]] + true))) + + (is (= ["first" [:br] [:br] "third"] + (i18n/interpolate-rich-text "first\n\nthird" [] true))) + + (is (= [:<> "Published to " [:a {:href "https://example.com"} "https://example.com"]] + (i18n/interpolate-rich-text-node + "Published to {1}" + [[:a {:href "https://example.com"} "https://example.com"]])))) + +(deftest replace-newlines-with-br-test + (is (= ["first" [:br] [:br] "third"] + (i18n/replace-newlines-with-br "first\n\nthird"))) + (is (= ["first" + [:br] + "second " + [:a "link"] + [:br] + "third"] + (i18n/replace-newlines-with-br ["first\nsecond " [:a "link"] "\nthird"])))) + +(deftest locale-join-rich-text-test + (testing "locale-join-rich-text uses an English comma by default" + (set-language! :en) + (is (= [[:span "synced"] ", " [:span "storage"]] + (i18n/locale-join-rich-text + [[:span "synced"] [:span "storage"]]))) + (is (= [:<> [:span "synced"] ", " [:span "storage"]] + (i18n/locale-join-rich-text-node + [[:span "synced"] [:span "storage"]])))) + + (testing "locale-join-rich-text uses locale-specific separators" + (set-language! :zh-CN) + (is (= [[:span "已同步"] "," [:span "存储空间"]] + (i18n/locale-join-rich-text + [[:span "已同步"] [:span "存储空间"]]))) + + (set-language! :ja) + (is (= [[:span "同期済み"] "、" [:span "保存容量"]] + (i18n/locale-join-rich-text + [[:span "同期済み"] [:span "保存容量"]]))) + + (set-language! :ar) + (is (= [[:span "المزامنة"] "، " [:span "التخزين"]] + (i18n/locale-join-rich-text + [[:span "المزامنة"] [:span "التخزين"]]))))) + +(deftest locale-format-number-test + (let [m 1234.56 + n 1234567.89 + opts {:notation "compact"}] + (set-language! :en) + (is (= "1,234.56" + (i18n/locale-format-number m))) + (is (= "1.2K" + (i18n/locale-format-number m opts))) + (is (= "1,234,567.89" + (i18n/locale-format-number n))) + (is (= "1.2M" + (i18n/locale-format-number n opts))) + + (set-language! :zh-CN) + (is (= "1,234.56" + (i18n/locale-format-number m))) + (is (= "1235" + (i18n/locale-format-number m opts))) + (is (= "1,234,567.89" + (i18n/locale-format-number n))) + (is (= "123万" + (i18n/locale-format-number n opts))))) + +(deftest locale-format-date-test + (let [d (js/Date. 2026 3 5 9 7) + opts {:year "numeric" :month "long" :day "numeric"}] + (set-language! :en) + (is (= "4/5/2026" + (i18n/locale-format-date d {}))) + (is (= "Apr 5, 2026" + (i18n/locale-format-date d))) + (is (= "April 5, 2026" + (i18n/locale-format-date d opts))) + + (set-language! :zh-CN) + (is (= "2026/4/5" + (i18n/locale-format-date d {}))) + (is (= "2026年4月5日" + (i18n/locale-format-date d))) + (is (= "2026年4月5日" + (i18n/locale-format-date d opts))))) + +(deftest locale-format-time-test + (let [d (js/Date. 2026 3 5 9 7)] + (set-language! :en) + (is (= "09:07" + (i18n/locale-format-time d))) + + (set-language! :zh-CN) + (is (= "09:07" + (i18n/locale-format-time d))) + + (set-language! :id) + (is (= "09.07" + (i18n/locale-format-time d))))) + +(deftest interpolate-sentence-test + (testing "plain text with no substitution" + (is (= [:<> "No substitution needed."] + (i18n/interpolate-sentence "No substitution needed.")))) + + (testing "placeholders only replace {1} {2} in order" + (is (= [:<> "Hello Bob, you have 3 unread alerts."] + (i18n/interpolate-sentence + "Hello {1}, you have {2} unread alerts." + :placeholders ["Bob" "3"])))) + + (testing "single placeholder with unused extra placeholders" + (is (= [:<> "Status: active."] + (i18n/interpolate-sentence + "Status: {1}." + :placeholders ["active" "ignored"])))) + + (testing "array links replace all {{text}} in order" + (is (= [:<> + "Click " + [:a {:href "/signup" :target "_blank"} "Sign up"] + " to continue."] + (i18n/interpolate-sentence + "Click {{Sign up}} to continue." + :links [{:href "/signup" :target "_blank"}])))) + + (testing "array links with multiple {{text}} use successive link attrs" + (is (= [:<> + "Check " + [:a {:href "/terms"} "Terms"] + " and " + [:a {:href "/privacy"} "Privacy Policy"] + "."] + (i18n/interpolate-sentence + "Check {{Terms}} and {{Privacy Policy}}." + :links [{:href "/terms"} {:href "/privacy"}])))) + + (testing "hash links replace $key{{text}} by matching keys" + (is (= [:<> + "Visit " + [:a {:href "https://github.com/example" :target "_blank"} "GitHub"] + " to report issues or read " + [:a {:href "https://docs.example.com"} "documentation"] + "."] + (i18n/interpolate-sentence + "Visit $github{{GitHub}} to report issues or read $docs{{documentation}}." + :links {:github {:href "https://github.com/example" :target "_blank"} + :docs {:href "https://docs.example.com"}})))) + + (testing "hash links skip unknown keys gracefully" + (is (= [:<> + "See " + [:a {:href "/faq"} "FAQ"] + "."] + (i18n/interpolate-sentence + "See $faq{{FAQ}}." + :links {:faq {:href "/faq"} :unused {:href "/nowhere"}})))) + + (testing "placeholders applied before link substitution" + (is (= [:<> + "Hello Alice, your browser doesn't support " + [:a {:href "https://example.com/api" :target "_blank"} "The Storage API"] + "."] + (i18n/interpolate-sentence + "Hello {1}, your browser doesn't support {{The Storage API}}." + :placeholders ["Alice"] + :links [{:href "https://example.com/api" :target "_blank"}])))) + + (testing "template with no link markers returns plain text fragment" + (is (= [:<> "Nothing to link here."] + (i18n/interpolate-sentence + "Nothing to link here." + :links [{:href "/somewhere"}])))) + + (testing "empty text segments before link are omitted" + (is (= [:<> + [:a {:href "/start"} "Start here"] + " to begin."] + (i18n/interpolate-sentence + "{{Start here}} to begin." + :links [{:href "/start"}]))))) diff --git a/src/test/frontend/date_test.cljs b/src/test/frontend/date_test.cljs new file mode 100644 index 0000000000..6c8b4c6663 --- /dev/null +++ b/src/test/frontend/date_test.cljs @@ -0,0 +1,158 @@ +(ns frontend.date-test + (:require [cljs.test :refer [deftest is use-fixtures]] + [cljs-time.coerce :as tc] + [cljs-time.core :as t] + [cljs-time.format :as tf] + [cljs-time.local :as tl] + [frontend.date :as date] + [frontend.state :as state])) + +(defn- set-language! + [language] + (state/set-preferred-language! language)) + +(def test-date-time (t/date-time 2026 4 5 12 7 8)) +(def test-date (t/date-time 2026 4 5)) +(def test-js-date (js/Date. 2026 3 5 12 7 8)) + +(use-fixtures :each + (fn [f] + (state/set-state! :preferred-language nil) + (f) + (state/set-state! :preferred-language nil))) + +(deftest nld-parse-test + (let [result (date/nld-parse "April 5, 2026")] + (is (instance? js/Date result)) + (is (= 2026 (.getFullYear result))) + (is (= 3 (.getMonth result))) + (is (= 5 (.getDate result))) + (is (nil? (date/nld-parse nil))))) + +(deftest journal-title-formatters-test + (with-redefs [state/get-date-formatter (constantly "yyyy-MM-dd")] + (let [formatters (date/journal-title-formatters)] + (is (= "yyyy-MM-dd" (first formatters))) + (is (= 1 (count (filter #{"yyyy-MM-dd"} formatters)))) + (is (some #{"MMM do, yyyy"} formatters))))) + +(deftest get-date-time-string-test + (let [default-output (date/get-date-time-string test-date-time)] + (is (re-matches #"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:Z|[+-]\d{2}:\d{2})" + default-output)) + (is (= default-output + (date/get-date-time-string test-date-time + :formatter-str "yyyy-MM-dd'T'HH:mm:ssZZ"))) + (is (= (tf/unparse (tf/formatter "yyyy/MM/dd HH:mm") test-date-time) + (date/get-date-time-string test-date-time + :formatter-str "yyyy/MM/dd HH:mm"))))) + +(deftest get-date-time-string-2-test + (is (= "2026-04-05-12-07-08" + (date/get-date-time-string-2 test-date-time)))) + +(deftest journal-name-test + (with-redefs [state/get-date-formatter (constantly "yyyy/MM/dd")] + (is (= "2026/04/05" + (date/journal-name test-date-time))))) + +(deftest start-of-day-test + (let [result (date/start-of-day test-date-time)] + (is (= 2026 (t/year result))) + (is (= 4 (t/month result))) + (is (= 5 (t/day result))) + (is (= 0 (t/hour result))) + (is (= 0 (t/minute result))) + (is (= 0 (t/second result))))) + +(deftest relative-journal-name-test + (with-redefs [state/get-date-formatter (constantly "yyyy-MM-dd") + tl/local-now (constantly test-date-time) + t/today (constantly test-date)] + (is (= "2026-04-05" (date/today))) + (is (= "Apr 5th, 2026" (date/today-name))) + (is (= "2026-04-06" (date/tomorrow))) + (is (= "2026-04-04" (date/yesterday))))) + +(deftest get-current-time-test + (set-language! :en) + (is (re-matches #"\d{2}:\d{2}" (date/get-current-time))) + + (set-language! :id) + (is (re-matches #"\d{2}\.\d{2}" (date/get-current-time)))) + +(deftest journal-title-parsing-test + (with-redefs [state/get-date-formatter (constantly "yyyy-MM-dd")] + (is (true? (date/valid-journal-title? "2026-04-05"))) + (is (false? (date/valid-journal-title? "not-a-journal"))) + (is (= "20260405" + (date/journal-title-> "2026-04-05" + #(tf/unparse (tf/formatter "yyyyMMdd") %)))) + (is (= "20260405" + (date/journal-title-> "2026/04/05" + #(tf/unparse (tf/formatter "yyyyMMdd") %) + ["yyyy/MM/dd"]))) + (is (nil? (date/journal-title-> " " identity))) + (is (= 20260405 (date/journal-title->int "2026-04-05"))) + (is (= (tc/to-long (tf/parse (tf/formatter "yyyy-MM-dd") "2026-04-05")) + (date/journal-title->long "2026-04-05"))))) + +(deftest journal-day->utc-ms-test + (is (= (tc/to-long (tf/parse (tf/formatter "yyyyMMdd") "20260405")) + (date/journal-day->utc-ms 20260405))) + (is (nil? (date/journal-day->utc-ms nil)))) + +(deftest int->local-time-2-test + (is (= (tf/unparse (tf/formatter "yyyy-MM-dd HH:mm") + (t/to-default-time-zone (tc/from-long (tc/to-long test-date-time)))) + (date/int->local-time-2 (tc/to-long test-date-time))))) + +(deftest parse-iso-test + (let [result (date/parse-iso "2026-04-05T09:07:08.0000Z")] + (is (= 2026 (t/year result))) + (is (= 4 (t/month result))) + (is (= 5 (t/day result))) + (is (= 9 (t/hour result))) + (is (= 7 (t/minute result))) + (is (= 8 (t/second result))))) + +(deftest js-date->journal-title-test + (with-redefs [state/get-date-formatter (constantly "yyyy-MM-dd")] + (is (= "2026-04-05" + (date/js-date->journal-title test-js-date))))) + +(deftest js-date->goog-date-test + (let [goog-date (date/js-date->goog-date test-js-date) + passthrough :already-goog-date] + (is (= 2026 (.getFullYear goog-date))) + (is (= 3 (.getMonth goog-date))) + (is (= 5 (.getDate goog-date))) + (is (= passthrough (date/js-date->goog-date passthrough))))) + +(deftest nlp-pages-i18n-test + ;; All nlp-pages entries must appear in the result + (set-language! :en) + (let [result (date/nlp-pages-i18n)] + (is (= (count date/nlp-pages) (count result))) + (is (every? :block/title result)) + (is (every? :nlp-original-title result)) + ;; :nlp-original-title always stays English regardless of locale + (is (= (set date/nlp-pages) (set (map :nlp-original-title result)))) + ;; English labels equal the original English strings + (is (= "Today" (:block/title (first result)))) + (is (= "Yesterday" (:block/title (nth result 2))))) + + ;; zh-CN labels differ from English + (set-language! :zh-CN) + (let [result (date/nlp-pages-i18n)] + (is (= "今天" (:block/title (first result)))) + (is (= "明天" (:block/title (second result)))) + (is (= "昨天" (:block/title (nth result 2)))) + ;; :nlp-original-title is still English + (is (= "Today" (:nlp-original-title (first result))))) + + ;; extra-opts are merged into every entry + (set-language! :en) + (let [result (date/nlp-pages-i18n :nlp-date? true :page? true)] + (is (every? :nlp-date? result)) + (is (every? :page? result)))) diff --git a/src/test/frontend/handler/common/config_edn_test.cljs b/src/test/frontend/handler/common/config_edn_test.cljs index 7de37aa93a..37d403e70d 100644 --- a/src/test/frontend/handler/common/config_edn_test.cljs +++ b/src/test/frontend/handler/common/config_edn_test.cljs @@ -1,6 +1,7 @@ (ns frontend.handler.common.config-edn-test (:require [clojure.string :as string] [clojure.test :refer [is testing deftest]] + [frontend.context.i18n :as i18n] [frontend.handler.common.config-edn :as config-edn-common-handler] [frontend.handler.notification :as notification] [frontend.schema.handler.global-config :as global-config-schema] @@ -10,19 +11,22 @@ (defn- validation-config-error-for [config-body schema] (let [error-message (atom nil)] - (with-redefs [notification/show! (fn [msg _] (reset! error-message msg)) + (with-redefs [notification/show! (fn [msg & _] (reset! error-message msg)) rfe/href (constantly "")] (is (= false (config-edn-common-handler/validate-config-edn "config.edn" config-body schema))) (str @error-message)))) (defn- deprecation-warnings-for - [config-body] - (let [error-message (atom nil)] - (with-redefs [notification/show! (fn [msg _] (reset! error-message msg)) - rfe/href (constantly "")] - (config-edn-common-handler/detect-deprecations "config.edn" config-body) - (str @error-message)))) + ([config-body] + (deprecation-warnings-for config-body {})) + ([config-body {:keys [translate-fn]}] + (let [error-message (atom nil)] + (with-redefs [notification/show! (fn [msg & _] (reset! error-message msg)) + i18n/t (or translate-fn i18n/t) + rfe/href (constantly "")] + (config-edn-common-handler/detect-deprecations "config.edn" config-body) + (str @error-message))))) (deftest validate-config-edn (testing "Valid cases" @@ -64,5 +68,27 @@ (deprecation-warnings-for "{:editor/command-trigger \",\"}")) "Warning when there is a deprecation") + (is (re-find + #":preferred-format.*translated deprecation" + (deprecation-warnings-for + "{:preferred-format :markdown}" + {:translate-fn (fn [k & _] + (case k + :graph.validation/config-preferred-format-warning + "translated deprecation" + (str "{Missing " k "}")))})) + "File-only config warnings look up translations by stable reason") + + (is (re-find + #":pages-directory.*shared deprecation" + (deprecation-warnings-for + "{:pages-directory \"pages\"}" + {:translate-fn (fn [k & _] + (case k + :graph.validation/config-unused-in-db-graphs-warning + "shared deprecation" + (str "{Missing " k "}")))})) + "Repeated DB-graph warnings reuse the shared translation key") + (is (= "" (deprecation-warnings-for "{}")) "No warning when there is no deprecation")) diff --git a/typos.toml b/typos.toml index 821eb7b898..7f1350dd5f 100644 --- a/typos.toml +++ b/typos.toml @@ -24,4 +24,5 @@ extend-exclude = ["resources/*", "src/test/fixtures/*", "deps/db-sync/test/logseq/db_sync/fixtures/*.edn", "clj-e2e/resources/*", - "deps/common/src/logseq/common/plural.cljs"] + "deps/common/src/logseq/common/plural.cljs", + "packages/ui/src/amplify/lang.ts"]