Compare commits

..

6 Commits
main ... v1.5.2

Author SHA1 Message Date
Veronica Berglyd Olsen
3e77c717a3 Bump version and update changelog and release notes 2021-12-12 17:08:24 +01:00
Veronica Berglyd Olsen
e638262b39 Make the spell check wrapper more robust, solves #933 2021-12-12 16:55:22 +01:00
Veronica Berglyd Olsen
5ca8815046 Backport fix for issue #929 2021-12-12 16:47:43 +01:00
Veronica Berglyd Olsen
208a405200 Bump version and update changelog and release notes 2021-10-23 16:03:32 +02:00
Veronica Berglyd Olsen
7f44e866d2 Fix shift focus to novel tree on Alt+1 when visible 2021-10-23 15:53:28 +02:00
Veronica Berglyd Olsen
a25432fd52 Fix bug in translation source list and restore lost translations 2021-10-23 15:37:26 +02:00
1098 changed files with 87991 additions and 242231 deletions

View File

@@ -1,9 +0,0 @@
# Copy to .env and fill in for dev tooling
# Crowdin Personal Access Token scoped to at least `project.report` (Read only)
# Needed for `qtlimport --credits-since`
CROWDIN_REPORT_READ_TOKEN=
# Path for long-term cached files, like downloaded icon packs
# Used by `icons` unless `--work-dir` is set
CACHE_DIR=

1
.github/CODEOWNERS vendored
View File

@@ -1 +0,0 @@
* @vkbo @saga-soft-bot

View File

@@ -1,63 +0,0 @@
name: Bug Report
description: Report a bug or issue.
title: "[Bug] "
labels: ["bug", "triage"]
type: bug
body:
- type: markdown
attributes:
value: >
Thank you for taking the time to fill out this bug report.
Note that issues without a description will not be considered.
Please also check if an issue already exists on this problem.
- type: textarea
id: description
attributes:
label: Bug Description
description: >
Provide a clear and concise description of what happened.
Include screenshots where relevant.
placeholder: Tell us what you see.
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to Reproduce
description: >
Explain what to do to reproduce the issue.
Include screenshots where relevant.
placeholder: Tell us what to do.
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: What version of UmbraEdit are you running?
placeholder: "e.g. 26.2"
validations:
required: true
- type: input
id: os
attributes:
label: Operating System
description: What operating system are you running?
placeholder: "e.g. Windows 11, macOS 26, Ubuntu 26.04"
validations:
required: true
- type: textarea
id: logs
attributes:
label: Log or Error Output
description: >
If the error dialog popped up, copy/paste the content here.
Or provide relevant log output from the console.
render: shell
validations:
required: false

View File

@@ -1,34 +0,0 @@
name: Suggest Improvement
description: Suggest something that can be improved.
title: "[Improve] "
labels: ["enhancement", "triage"]
type: feature
body:
- type: markdown
attributes:
value: >
Thank you for taking the time to fill out this feature request.
Note that feature requests without a description will not be considered.
Please also check if a request already exists for this feature.
- type: textarea
id: problem
attributes:
label: The Problem
description: >
Explain the problem you're facing.
Include screenshots where relevant.
placeholder: Tell us about the issue.
validations:
required: true
- type: textarea
id: description
attributes:
label: Your Suggestion
description: >
Provide a clear and concise description of what you'd like to see.
Include screenshots where relevant.
placeholder: Tell us what you need.
validations:
required: true

View File

@@ -1,23 +0,0 @@
name: Feature Request
description: Suggest a new feature you'd like added.
title: "[Feat] "
labels: ["enhancement", "triage"]
type: feature
body:
- type: markdown
attributes:
value: >
Thank you for taking the time to fill out this feature request.
Note that feature requests without a description will not be considered.
Please also check if a request already exists for this feature.
- type: textarea
id: description
attributes:
label: Your Suggestion
description: >
Provide a clear and concise description of what you'd like to see.
Include screenshots where relevant.
placeholder: Tell us what you need.
validations:
required: true

16
.github/ISSUE_TEMPLATE/bug-report.md vendored Normal file
View File

@@ -0,0 +1,16 @@
---
name: Bug Report
about: Create a report to help us improve
title: ""
labels: bug
---
**Note**: Issues without a description will not be considered.
Please also check if an issue already exists on this problem.
Please provide a description covering the following points, if applicable:
* A clear and concise description of what the bug is.
* Steps to reproduce the behaviour
* A clear and concise description of what you expected to happen.
* If applicable, add screenshots to help explain your problem.
* If the error dialog popped up, copy/paste the content here.

View File

@@ -1,5 +0,0 @@
blank_issues_enabled: true
contact_links:
- name: GitHub Community Support
url: https://github.com/saga-soft/UmbraEdit/discussions
about: Please ask and answer questions here.

View File

@@ -0,0 +1,15 @@
---
name: Feature Request
about: Suggest an idea for this project
title: ""
labels: enhancement
---
**Note**: Feature requests without a description will not be considered.
Please also check if an issue already exists on this feature.
Please provide a description covering the following points, if applicable:
* A clear and concise description of what the problem is. Ex. I'm always frustrated when ...
* A clear and concise description of what you want to happen.
* A clear and concise description of any alternative solutions or features you've considered.
* If applicable, add screenshots to help explain your request.

View File

@@ -1,19 +1,24 @@
### Summary
<!--
Please check the following before you make a pull request:
### Related Issue(s)
* The branch you are making the pull request from (in your own fork) has a unique and descriptive
name. Do not make a pull request directly from your copy of `main`.
* If you are submitting translation files, only submit the files that you have added translations
to, not the other .ts files that may have been updated in the process.
* Make sure your contribution follows the style guide and other requirements mentioned in the
CONTRIBUTING.md file in the repository.
* Fill in the Summary section below, and if relevant, mention the issue numbers related to the PR.
-->
<!-- i.e. Closes #1234 -->
**Summary:**
### Submitter's Checklist
**Related Issue(s):**
* [ ] I am familiar with, and have followed, the [Contributing Guide](https://github.com/saga-soft/UmbraEdit/blob/main/CONTRIBUTING.md)
* [ ] I am familiar with, and have followed, the [AI Policy](https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md)
### Reviewer's Checklist
**Reviewer's Checklist:**
* [ ] The header of all files contain a reference to the repository license
* [ ] The overall test coverage is increased or remains the same as before
* [ ] All tests are passing
* [ ] All linting checks are passing and the style guide is followed
* [ ] All flake8 checks are passing and the style guide is followed
* [ ] Documentation (as docstrings) is complete and understandable
* [ ] Only files that have been actively changed are committed

View File

@@ -1,26 +0,0 @@
name: Auto-Approve
on:
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review
concurrency:
group: auto-approve-${{ github.event.pull_request.number }}
permissions: {}
jobs:
approve:
name: Approve Owner PRs
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false && github.event.pull_request.user.login == 'vkbo'
steps:
- name: Approve Pull Request
env:
GH_TOKEN: ${{ secrets.SAGA_SOFT_BOT_TOKEN }}
PR_URL: ${{ github.event.pull_request.html_url }}
run: gh pr review "$PR_URL" --approve

View File

@@ -1,30 +0,0 @@
name: Build All
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read
buildLinux-AppImage:
needs: buildAssets
uses: ./.github/workflows/part_appimage.yml
secrets: inherit
permissions:
contents: read
buildLinux-Flatpak:
needs: buildAssets
uses: ./.github/workflows/part_flatpak.yml
secrets: inherit
permissions:
contents: read
buildWin-X64:
needs: buildAssets
uses: ./.github/workflows/part_win_x64.yml
secrets: inherit
permissions:
contents: read

View File

@@ -1,23 +0,0 @@
name: Build Linux Images
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read
buildLinux-AppImage:
needs: buildAssets
uses: ./.github/workflows/part_appimage.yml
secrets: inherit
permissions:
contents: read
buildLinux-Flatpak:
needs: buildAssets
uses: ./.github/workflows/part_flatpak.yml
secrets: inherit
permissions:
contents: read

View File

@@ -1,147 +0,0 @@
name: Build Linux Native
on:
workflow_dispatch:
inputs:
publish:
required: false
description: "Publish to Cloudsmith?"
type: boolean
default: false
build_number:
required: false
description: "Build Number"
type: string
default: "0"
debian12:
required: false
description: "Debian 12 (Bookworm)"
type: boolean
default: true
debian13:
required: false
description: "Debian 13 (Trixie)"
type: boolean
default: true
ubuntu2404:
required: false
description: "Ubuntu 24.04 (Noble)"
type: boolean
default: true
ubuntu2604:
required: false
description: "Ubuntu 26.04 (Resolute)"
type: boolean
default: true
ubuntu2610:
required: false
description: "Ubuntu 26.10 (Stonking)"
type: boolean
default: true
mint22:
required: false
description: "Linux Mint 22 (Wilma)"
type: boolean
default: true
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read
buildAndPublish-Debian12:
name: Debian 12 (Bookworm)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: bookworm
family: debian
image: debian:12
secrets: inherit
if: ${{ inputs.debian12 }}
permissions:
id-token: write
contents: read
buildAndPublish-Debian13:
name: Debian 13 (Trixie)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: trixie
family: debian
image: debian:13
secrets: inherit
if: ${{ inputs.debian13 }}
permissions:
id-token: write
contents: read
buildAndPublish-Ubuntu2404:
name: Ubuntu 24.04 (Noble)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: noble
family: ubuntu
image: ubuntu:24.04
secrets: inherit
if: ${{ inputs.ubuntu2404 }}
permissions:
id-token: write
contents: read
buildAndPublish-Ubuntu2604:
name: Ubuntu 26.04 (Resolute)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: resolute
family: ubuntu
image: ubuntu:26.04
secrets: inherit
if: ${{ inputs.ubuntu2604 }}
permissions:
id-token: write
contents: read
buildAndPublish-Ubuntu2610:
name: Ubuntu 26.10 (Stonking)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: stonking
family: ubuntu
image: ubuntu:26.10
secrets: inherit
if: ${{ inputs.ubuntu2610 }}
permissions:
id-token: write
contents: read
buildAndPublish-Mint22:
name: Linux Mint 22 (Wilma)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: wilma
family: linuxmint
image: linuxmintd/mint22-amd64
secrets: inherit
if: ${{ inputs.mint22 }}
permissions:
id-token: write
contents: read

View File

@@ -1,23 +0,0 @@
name: Build MacOS
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read
buildMac-AMD64:
needs: buildAssets
uses: ./.github/workflows/part_macos_amd64.yml
secrets: inherit
permissions:
contents: read
buildMac-M1:
needs: buildAssets
uses: ./.github/workflows/part_macos_m1.yml
secrets: inherit
permissions:
contents: read

View File

@@ -1,26 +0,0 @@
name: Build PyPI
on:
workflow_dispatch:
inputs:
publish:
required: false
description: "Publish to PyPI?"
type: boolean
default: false
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read
buildAndPublish-PyPI:
name: PyPI Package
needs: buildAssets
uses: ./.github/workflows/part_pypi.yml
with:
publish: ${{ inputs.publish }}
permissions:
id-token: write
contents: read

View File

@@ -1,16 +0,0 @@
name: Build Windows
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read
buildWin-X64:
needs: buildAssets
uses: ./.github/workflows/part_win_x64.yml
secrets: inherit
permissions:
contents: read

View File

@@ -1,47 +0,0 @@
name: Build Windows Launcher
on: workflow_dispatch
jobs:
buildLauncherWin64:
runs-on: windows-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Build Launcher
id: build
run: |
Set-Location setup\windows
.\make.ps1
- name: Upload Unsigned Artifacts
id: upload-unsigned-artifact
uses: actions/upload-artifact@v7
with:
name: launcher
path: setup/windows/UmbraEdit.exe
if-no-files-found: error
retention-days: 14
- name: Submit Signing Request
uses: signpath/github-action-submit-signing-request@v2
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
project-slug: "UmbraEdit"
signing-policy-slug: "release-signing"
artifact-configuration-slug: "launcher"
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
wait-for-completion: true
output-artifact-directory: "."
- name: Upload Signed Artifacts
uses: actions/upload-artifact@v7
with:
name: launcher-signed
path: UmbraEdit.exe
if-no-files-found: error
retention-days: 14

View File

@@ -1,41 +0,0 @@
name: i18n
on:
pull_request:
branches:
- main
- release
paths:
- i18n/*.ts
jobs:
buildI18n:
name: Build i18n
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Python Setup
uses: actions/setup-python@v6
with:
python-version: "3.14"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
sudo apt update
sudo apt install qttools5-dev-tools
- name: Build Assets
run: python pkgutils.py qtlrelease
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: nw-i18n
path: umbraedit/assets/i18n/*.qm
if-no-files-found: error
retention-days: 7

View File

@@ -1,141 +0,0 @@
name: Part AppImage
on: workflow_call
jobs:
buildLinux-AppImage:
# Needs to stay on 22.04 as long as we're using manylinux_2_28
# as libxcb-cursor0 in 22.04 supports glibc >= 2.17
name: Build AppImage
runs-on: ubuntu-22.04
permissions:
contents: read
env:
PYTHON_VERSION: "3.14"
LINUX_TAG: "manylinux_2_28"
LINUX_ARCH: "x86_64"
steps:
- name: Python Setup
uses: actions/setup-python@v6
with:
python-version: "3.14"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install libxcb-cursor0
- name: Install Packages (pip)
run: pip install python-appimage setuptools
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: umbraedit/assets
- name: Build AppImage
id: build
run: |
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$LINUX_ARCH.AppImage
chmod +x appimagetool-$LINUX_ARCH.AppImage
export APPIMAGE_TOOL_EXEC="$(pwd)/appimagetool-$LINUX_ARCH.AppImage"
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
python pkgutils.py build-appimage $LINUX_TAG $LINUX_ARCH $PYTHON_VERSION
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
path: dist_appimage/*.AppImage*
if-no-files-found: error
retention-days: 14
smokeTest:
name: Smoke Test AppImage (${{ matrix.distro }})
needs: buildLinux-AppImage
runs-on: ubuntu-22.04
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- distro: Ubuntu 22.04
image: ubuntu:22.04
- distro: Debian 12
image: debian:12
- distro: Fedora 40
image: fedora:40
- distro: Arch Linux
image: archlinux:latest
- distro: Manjaro
image: manjarolinux/base:latest
container:
image: ${{ matrix.image }}
steps:
- name: Install Runtime Dependencies
run: |
if command -v apt-get >/dev/null 2>&1; then
apt-get update
apt-get install -y ca-certificates libgl1 libxkbcommon0 libegl1 libfontconfig1 libglib2.0-0 libdbus-1-3
elif command -v dnf >/dev/null 2>&1; then
dnf install -y ca-certificates coreutils mesa-libGL mesa-libEGL libxkbcommon fontconfig glib2 dbus-libs
elif command -v pacman >/dev/null 2>&1; then
pacman -Syu --noconfirm --needed ca-certificates coreutils mesa libxkbcommon fontconfig glib2 dbus
fi
- name: Download AppImage Artifact
uses: actions/download-artifact@v8
with:
pattern: UmbraEdit-*-Linux-AppImage
merge-multiple: true
path: appimage-dist
- name: Run AppImage Smoke Test
run: |
set -eu
APPIMAGE_FILE="$(find appimage-dist -maxdepth 1 -name '*.AppImage' | head -n1)"
if [ -z "$APPIMAGE_FILE" ]; then
echo "No AppImage artifact found"
exit 1
fi
chmod +x "$APPIMAGE_FILE"
export QT_QPA_PLATFORM=offscreen
export QT_NO_XDG_DESKTOP_PORTAL=1
export APPIMAGE_EXTRACT_AND_RUN=1
set +e
timeout 25s "$APPIMAGE_FILE" > smoke.log 2>&1
EXIT_CODE=$?
set -e
if [ "$EXIT_CODE" -eq 139 ]; then
echo "AppImage crashed with segmentation fault"
exit 1
fi
if grep -Eiq 'segmentation fault|core dumped' smoke.log; then
echo "Crash signature found in smoke log"
exit 1
fi
if [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 124 ]; then
echo "Unexpected exit code: $EXIT_CODE"
cat smoke.log
exit 1
fi
- name: Upload Smoke Logs
if: always()
uses: actions/upload-artifact@v7
with:
name: appimage-smoke-log-${{ matrix.distro }}
path: smoke.log
if-no-files-found: ignore
retention-days: 14

View File

@@ -1,44 +0,0 @@
name: Part Assets
on:
workflow_call:
jobs:
buildAssets:
name: Build Assets
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
sudo apt-get update
sudo apt-get install -y qttools5-dev-tools latexmk texlive texlive-latex-extra
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.2.0
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group docs
- name: Build Assets
run: |
uv run --no-sync pkgutils.py build-assets
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: nw-assets
path: |
umbraedit/assets/manual*.pdf
umbraedit/assets/sample.zip
umbraedit/assets/i18n/*.qm
if-no-files-found: error
retention-days: 14

View File

@@ -1,82 +0,0 @@
name: Part Debian
on:
workflow_call:
inputs:
publish:
required: false
type: boolean
default: false
build_number:
required: false
type: string
default: "0"
codename:
required: true
type: string
family:
required: true
type: string
image:
required: true
type: string
secrets:
CLOUDSMITH_API_KEY:
required: false
jobs:
buildPackage:
name: Build Debian Package
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
container:
image: ${{ inputs.image }}
steps:
- name: Install Checkout Prerequisites
run: |
apt-get update
apt-get install -y git ca-certificates python3
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Assets Artifact
uses: actions/download-artifact@v8
with:
name: nw-assets
path: umbraedit/assets
- name: Install Native Packages
run: apt-get install -y $(python3 pkgutils.py build-deb-depends ${{ inputs.codename }})
- name: Build Package
run: python3 pkgutils.py build-deb ${{ inputs.codename }} --build ${{ inputs.build_number }} --install-source Cloudsmith
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: nw-deb-${{ inputs.codename }}
path: dist_upload/*
if-no-files-found: error
retention-days: 14
- name: Set up Cloudsmith CLI with OIDC
if: ${{ inputs.publish }}
uses: cloudsmith-io/cloudsmith-cli-action@v3
with:
oidc-namespace: "saga-soft"
oidc-service-slug: "github-actions-lcpr"
verify-auth: true
- name: Publish to Cloudsmith
if: ${{ inputs.publish }}
run: |
CHANNEL="$(python3 pkgutils.py channel)"
REPO="stable"
if [ "$CHANNEL" = "pre" ]; then
REPO="testing"
fi
DEB_FILE="$(find dist_upload -name '*.deb')"
cloudsmith push deb "saga-soft/$REPO/${{ inputs.family }}/${{ inputs.codename }}" "$DEB_FILE" --republish

View File

@@ -1,46 +0,0 @@
name: Part Flatpak
on: workflow_call
jobs:
buildLinux-Flatpak:
runs-on: ubuntu-latest
steps:
- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
- name: Checkout Source
uses: actions/checkout@v7
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.2.0
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group build
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: umbraedit/assets
- name: Build Flatpak
id: build
run: |
echo "BUILD_VERSION=$(uv run pkgutils.py version)" >> $GITHUB_OUTPUT
uv run --no-sync pkgutils.py build-flatpak
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Linux-Flatpak
path: dist_flatpak/*.flatpak*
if-no-files-found: error
retention-days: 14

View File

@@ -1,37 +0,0 @@
name: Part MacOS AMD64
on: workflow_call
jobs:
buildMac-AMD64:
name: Build on MACOS AMD64
runs-on: macos-latest
permissions:
contents: read
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: x86_64
MINICONDA_ARCH: x86_64
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: umbraedit/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v7
with:
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14

View File

@@ -1,37 +0,0 @@
name: Part MacOS M1
on: workflow_call
jobs:
buildMac-M1:
name: Build on MacOS AARCH64
runs-on: macos-latest
permissions:
contents: read
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: aarch64
MINICONDA_ARCH: arm64
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: umbraedit/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v7
with:
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14

View File

@@ -1,66 +0,0 @@
name: Part PyPI
on:
workflow_call:
inputs:
publish:
required: false
type: boolean
default: false
jobs:
buildPackage:
name: Build PyPI Package
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Assets Artifact
uses: actions/download-artifact@v8
with:
name: nw-assets
path: umbraedit/assets
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.2.0
with:
python-version: "3.14"
enable-cache: true
- name: Build Package
run: uv run pkgutils.py build-pypi
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: nw-pypi
path: |
dist_pypi/*.whl
dist_pypi/*.tar.gz
if-no-files-found: error
retention-days: 14
publishPackage:
name: Publish to PyPI
needs: buildPackage
if: ${{ inputs.publish }}
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
contents: read
steps:
- name: Download Package Artifact
uses: actions/download-artifact@v8
with:
name: nw-pypi
path: dist_pypi
- name: Install UV
uses: astral-sh/setup-uv@v10.2.0
- name: Publish Package
run: uv publish dist_pypi/*

View File

@@ -1,64 +0,0 @@
name: Part Windows X64
on: workflow_call
jobs:
buildWin-X64:
name: Build on Windows
runs-on: windows-2022
permissions:
contents: read
steps:
- name: Python Setup
uses: actions/setup-python@v6
with:
python-version: "3.14"
architecture: x64
- name: Install Packages (pip)
run: pip install tzdata
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Assets
uses: actions/download-artifact@v8
with:
name: nw-assets
path: umbraedit/assets
- name: Build Setup Installer
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
python pkgutils.py build-win-exe
- name: Upload Unsigned Artifacts
id: upload-unsigned-artifact
uses: actions/upload-artifact@v7
with:
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
path: dist/*.exe
if-no-files-found: error
retention-days: 14
- name: Submit Signing Request
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
project-slug: "UmbraEdit"
signing-policy-slug: "release-signing "
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
wait-for-completion: true
output-artifact-directory: "dist/"
parameters: |
version: "${{ steps.build.outputs.BUILD_VERSION }}"
- name: Upload Signed Artifacts
uses: actions/upload-artifact@v7
with:
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
path: dist/*.exe
if-no-files-found: error
retention-days: 14

View File

@@ -1,17 +0,0 @@
name: Policy Checks
on:
pull_request:
branches:
- main
- release
jobs:
commitPolicy:
name: Commit Policy
uses: saga-soft/automation/.github/workflows/saga-soft-policy.yml@main
permissions:
contents: read
pull-requests: read
with:
policy-url: https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md

View File

@@ -1,41 +1,31 @@
name: Syntax
name: flake8
on:
push:
branches:
branches:
- main
- release
pull_request:
branches:
- main
- release
jobs:
checkSyntax:
name: Linting and Type Checking
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.2.0
- name: Python Setup
uses: actions/setup-python@v2
with:
enable-cache: true
- name: Install Dependencies
python-version: 3
architecture: x64
- name: Checkout Source
uses: actions/checkout@v2
- name: Install flake8
run: pip install flake8
- name: Syntax Error Check
run: |
uv sync --no-dev --group lint --group test
- name: Ruff Check
run: |
uv run --no-sync ruff --version
uv run --no-sync ruff format --check
uv run --no-sync ruff check --output-format github
- name: Pyright Check
run: |
uv run --no-sync pyright --version
uv run --no-sync pyright
flake8 novelwriter --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 tests --count --select=E9,F63,F7,F82 --show-source --statistics
- name: Coding Style Violations
run: |
flake8 novelwriter --count --max-line-length=99 --ignore E221,E226,E228,E241 --show-source --statistics
flake8 tests --count --max-line-length=99 --ignore E221,E226,E228,E241 --show-source --statistics

41
.github/workflows/test_linux.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Linux
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
testLinux:
strategy:
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install libenchant-dev qttools5-dev-tools
- name: Checkout Source
uses: actions/checkout@v2
- name: Install Dependencies (pip)
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run Build Commands
run: python setup.py qtlrelease sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v1

36
.github/workflows/test_mac.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: macOS
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
testMac:
runs-on: macos-latest
steps:
- name: Python Setup
uses: actions/setup-python@v2
with:
python-version: 3.9
architecture: x64
- name: Install Packages
run: |
brew install enchant
- name: Checkout Source
uses: actions/checkout@v2
- name: Install Dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dev.txt
pip install pyobjc
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v1

31
.github/workflows/test_win.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Windows
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
testWin:
runs-on: windows-latest
steps:
- name: Python Setup
uses: actions/setup-python@v2
with:
python-version: 3.9
architecture: x64
- name: Checkout Source
uses: actions/checkout@v2
- name: Install Dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run Tests
run: |
pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v1

View File

@@ -1,308 +0,0 @@
name: Tests
on:
push:
branches:
- main
- release
pull_request:
branches:
- main
- release
jobs:
testLinux:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.11"
- "3.12"
- "3.13"
- "3.14"
- "3.15"
fail-fast: false
name: Linux Python ${{ matrix.python-version }}
permissions:
contents: read
env:
COVERAGE_FILE: .coverage.py${{ matrix.python-version }}
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
timeout-minutes: 5
run: |
sudo apt update
sudo apt install qttools5-dev-tools
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.2.0
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group test
- name: Build Assets
run: |
uv run --no-sync pkgutils.py qtlrelease
uv run --no-sync pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
uv run --no-sync coverage run -m pytest -v --timeout=60
uv run --no-sync coverage report --skip-covered --show-missing
- name: Upload Coverage Data
uses: actions/upload-artifact@v7
with:
name: coverage-data-py${{ matrix.python-version }}
path: ${{ env.COVERAGE_FILE }}
include-hidden-files: true
retention-days: 1
testMac:
runs-on: macos-latest
name: MacOS Python 3.14
permissions:
contents: read
env:
COVERAGE_FILE: .coverage.mac
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
brew install enchant
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.2.0
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group test
- name: Build Assets
run: |
uv run --no-sync pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
uv run --no-sync coverage run -m pytest -v --timeout=60
uv run --no-sync coverage report --skip-covered --show-missing
- name: Upload Coverage Data
uses: actions/upload-artifact@v7
with:
name: coverage-data-mac
path: ${{ env.COVERAGE_FILE }}
include-hidden-files: true
retention-days: 1
testWin:
runs-on: windows-latest
name: Windows Python 3.14
permissions:
contents: read
env:
COVERAGE_FILE: .coverage.win
defaults:
run:
shell: bash
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.2.0
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group test
- name: Build Assets
run: |
uv run --no-sync pkgutils.py sample
- name: Run Tests
run: |
uv run --no-sync coverage run -m pytest -v --timeout=60
uv run --no-sync coverage report --skip-covered --show-missing
- name: Upload Coverage Data
uses: actions/upload-artifact@v7
with:
name: coverage-data-win
path: ${{ env.COVERAGE_FILE }}
include-hidden-files: true
retention-days: 1
coverageReport:
name: PR Coverage Report
needs:
- testLinux
- testMac
- testWin
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Coverage Data
uses: actions/download-artifact@v8
with:
pattern: coverage-data-*
merge-multiple: true
- name: Install UV
uses: astral-sh/setup-uv@v10.2.0
- name: Combine Coverage Data
run: |
uvx coverage combine
uvx coverage report --skip-covered
- name: Build Comment Body
run: |
{
echo '<!-- coverage-report -->'
echo '### Coverage Report (Linux, macOS, Windows)'
echo
uvx coverage report --skip-covered --show-missing --format=markdown --precision=3
echo
echo "**Total: $(uvx coverage report --format=total --precision=3)%**"
} > coverage-comment.md
- name: Post PR Comment
env:
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
REPO: ${{ github.repository }}
run: |
comment_id=$(gh api "repos/$REPO/issues/$PR_NUMBER/comments" --paginate --jq '.[] | select(.body | startswith("<!-- coverage-report -->")) | .id' | head -n1)
if [ -n "$comment_id" ]; then
gh api --method PATCH "repos/$REPO/issues/comments/$comment_id" -F body=@coverage-comment.md
else
gh pr comment "$PR_NUMBER" --body-file coverage-comment.md
fi
coverageSummary:
name: Action Coverage Report
needs:
- testLinux
- testMac
- testWin
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Coverage Data
uses: actions/download-artifact@v8
with:
pattern: coverage-data-*
merge-multiple: true
- name: Install UV
uses: astral-sh/setup-uv@v10.2.0
- name: Combine Coverage Data
run: |
uvx coverage combine
uvx coverage report --skip-covered
- name: Write Coverage Summary
run: |
{
echo '### Coverage Report (Linux, macOS, Windows)'
echo
uvx coverage report --skip-covered --show-missing --format=markdown --precision=3
echo
echo "**Total: $(uvx coverage report --format=total --precision=3)%**"
} >> "$GITHUB_STEP_SUMMARY"
testUbuntu24:
name: Ubuntu 24.04 & Sys Packages
runs-on: ubuntu-24.04
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
timeout-minutes: 5
run: |
sudo apt update
sudo apt install \
python3-pyqt6 \
python3-pyqt6.qtsvg \
python3-pytest \
python3-pytestqt \
python3-enchant \
python3-pytest-timeout \
qt6-image-formats-plugins
- name: Build Assets
run: |
python3 pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
python3 -m pytest -v --timeout=60
testFedoraLatest:
name: Fedora 44 & Sys Packages
runs-on: ubuntu-latest
container:
image: fedora:44
permissions:
contents: read
steps:
- name: Install System Packages
timeout-minutes: 5
run: |
dnf -y update
dnf -y install \
git \
python3-enchant \
python3-pyqt6 \
python3-pytest \
python3-pytest-qt \
python3-pytest-timeout \
qt6-linguist \
qt6-qtimageformats
- name: Checkout Source
uses: actions/checkout@v7
- name: Run Build Commands
run: |
python pkgutils.py qtlrelease
python pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
python3 -m pytest -v --timeout=60

72
.gitignore vendored
View File

@@ -1,87 +1,53 @@
# Setup/Install
/MANIFEST
/build/
/build_*/
/deploy/
/dist/
/dist_*/
*.spec
*.egg-info
setup.iss
/umbraedit.desktop
/UmbraEdit.pyw
/setup/macos/Info.plist
/setup/windows/build
.flatpak-builder
.venv
.env
/novelwriter.desktop
/novelWriter.pyw
# Translations
/umbraedit/assets/i18n/*.qm
/novelwriter/assets/i18n/*.qm
.qmake.stash
i18n/*.qm
i18n/*.qph
# Documentation
/docs/build/
/docs/source/locales/**/*.mo
/umbraedit/assets/manual*.pdf
.~lock.*
/novelwriter/assets/help/
/novelwriter/assets/manual.pdf
*.qch
*.qhc
# Python
/.python-version
# Python Temp
__pycache__
*.pyc
# Sample Project
/umbraedit/assets/sample.zip
/novelwriter/assets/sample.zip
/sample/cache
/sample/meta
/sample/**/*.bak
/sample/*.lock
/sample/ToC.txt
/sample/manifest.json
/sample/versions
*.bak
*.lock
ToC.txt
# PyTest
/prof/
/htmlcov/
/tests/temp
/tests/_temp
/tests/lipsum/cache
/tests/lipsum/meta
/tests/minimal/cache
/tests/minimal/meta
/tests/oldproj/cache
/.pytest_cache
/pytestdebug.log
# Coverage
/.coverage
/.coveragerc
/coverage.*
# Other
.config
.local
*.patch
# IDE
.vscode
.ruff_cache
.nvimlog
# No AI files
AGENTS.md
CLAUSE.md
GEMINI.md
.claude/
.cursor*
.codex/
.gemini/
# Debug
/debug/
# Clean up accidentally committed files
# Added by B.D. Murphy 2026: exclude files accidentally committed during branding transition
Splh.jpeg
Oldwelcome.webp
.DS_Store
UmbraEdit_Projects/
Inner_Demon_1.2a.docm
requirements.txt
UmbraEdit_deb_Build_Script.txt

25
.readthedocs.yml Normal file
View File

@@ -0,0 +1,25 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/source/conf.py
# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml
# Optionally build your docs in additional formats such as PDF
formats:
- htmlzip
- epub
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: docs/source/requirements.txt

View File

@@ -1,59 +0,0 @@
# AI Policy
This is the AI policy of UmbraEdit and associated projects.
### Code Contributions
We consider code to be creative work, and we have a strong preference for feature contributions designed by actual
humans over the average and mediocre output of agentic and generative AI.
While we do not have a strict No-AI policy, we want to limit its use in this project. In general, we expect any
contributed code to hold up to maintainability and stability standards so that our users can rely on the software for
their creative work. This implies careful review, thorough test coverage, and beta testing of all features before they
reach live users. The requirements on code that isn't shipped to the user are less strict. This includes unit tests and
build tooling.
We recognise that AI tools can be useful in a developer's toolbox, alongside other tools that can edit or add code. In
addition to read-only operations, it is generally fine to use them for boilerplate, fixes, and otherwise editing and
extending existing code. However, you must not contribute fully or predominantly AI-generated features or other
bulk-generated code. This applies especially to core functionality.
In general, so-called vibe coding does not meet our code quality requirements, so this project is not suitable for such
contributions in any case. The licensing implications around generated code are also unclear, as AI models are trained
on material without consent or concern for original licensing.
No AI automation or agentic tools are used anywhere in this project on GitHub. Do not use your AI agents on your
contributions on GitHub either. Commits listed in any way as authored by, signed off by, or assisted by, AI tools are
explicitly not allowed. Pull requests containing such commits will be rejected. You should also not commit AI-specific
files into the code repository. Most of the common ones are in the git ignore file.
### Design Work
No design work generated by AI for UmbraEdit will be accepted. We do not control how third-party work like icon
libraries are created, but any artwork added to the app must be made by actual people.
### Translation Work
This project uses Crowdin to host the translation files for the user interface. Crowdin has a lot of AI integration and
tooling, which we do not use. The Crowdin translation interface provides AI translated suggestions, which the
translators may choose to use. All translations are proofread and approved by speakers of the respective languages.
### Application Features
We do not believe creative writing and generative AI go together. Therefore, there will not be any tooling or features
added to this project that will generate text for you. Language models have a real use case in text analysis that
predates generative AI, and such supportive tools **may** be in scope depending on how intrusive they are.
### Discussions and Comments
Please refrain from using AI to generate or respond to discussions, issues, and pull requests. Especially do not use AI
tools to generate long and verbose issue reports. It is OK to use AI for translations of comments or for accessibility
reasons. All text in the code or posted to this project must be in English.
*Last updated on 2026-10-03.*

View File

@@ -1,146 +0,0 @@
# UmbraEdit - Linux AMD64 Build Guide
UmbraEdit is developed on macOS but builds natively on Linux AMD64 and ARM64.
This guide covers building Linux install packages from source.
## Source Distribution
The source tarball (`umbraedit-2026.11.1.tar.gz`) includes everything needed to
build Linux packages:
```
umbraedit-2026.11.1/
├── pyproject.toml # Project metadata & dependencies
├── UmbraEdit.py # Application entry point
├── pkgutils.py # Packaging utility
├── run_tests.py # Test runner
├── setup/ # Packaging assets
│ ├── data/ # .desktop file, MIME type XML
│ ├── macos/ # macOS-specific packaging
│ └── windows/ # Windows-specific packaging
├── utils/ # Build scripts
│ ├── build_debian.py # .deb package builder
│ ├── build_appimage.py # AppImage builder
│ ├── build_all.py # Multi-platform build orchestrator
│ └── ...
├── umbraedit/ # Application source code
└── tests/ # Test suite
```
## Prerequisites on Linux
### Debian/Ubuntu
```bash
sudo apt-get update
sudo apt-get install \
python3 python3-pip \
python3-pyqt6 python3-pyqt6.qtsvg \
python3-enchant \
qt6-image-formats-plugins qt6-svg-plugins \
dh-python debhelper python3-build python3-setuptools \
python3-pytest python3-pytestqt python3-pytest-timeout \
appimagetool
```
### Fedora/RHEL
```bash
sudo dnf install \
python3 python3-pip \
python3-pyqt6 python3-enchant \
qt6-qtimageformats qt6-qtsvg \
python3-build python3-setuptools \
dpkg rpm-build appimagetool
```
### Arch Linux
```bash
sudo pacman -S \
python python-pip \
python-pyqt6 python-enchant \
qt6-imageformats qt6-svg \
python-build python-setuptools \
dpkg appimagetool
```
## Build Options
### Option 1: Install via Wheel (Simplest)
The pure Python wheel requires no compilation:
```bash
pip install umbraedit-2026.11.1-py3-none-any.whl
umbraedit
```
### Option 2: Install from Source Tarball
```bash
tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1
pip install .
umbraedit
```
### Option 3: Build .deb Package
```bash
tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1
# Build for Ubuntu Noble (24.04)
python3 utils/build_debian.py --distro noble --build 1
# The .deb will be in dist_deb/
sudo dpkg -i dist_deb/umbraedit_*_amd64.deb
```
Available distro targets: `bookworm`, `trixie`, `noble`, `resolute`, `stonking`, `wilma`
### Option 4: Build AppImage
```bash
pip install python-appimage
sudo apt-get install appimagetool
tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1
python3 utils/build_appimage.py --linux ubuntu --arch amd64 --python 3.12
chmod +x dist_appimage/umbraedit-2026.11-amd64.AppImage
./dist_appimage/umbraedit-2026.11-amd64.AppImage
```
### Option 5: Build All Linux Packages
```bash
tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1
python3 utils/build_all.py --platform linux --arch amd64
```
## Project Storage
UmbraEdit projects are stored in plain folders with an `nwProject.nwx` file.
The sample project included in the distribution can be used for testing:
```bash
umbraedit # Opens the welcome dialog
# Select "Sample Project" from the list, or browse to your .nwx file
```
## Version
Current development version: **2026.11.0004**
## License
GPL-3.0-or-later AND Apache-2.0 AND ISC AND MIT
UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen
(novelWriter.io), licenced under the same GPL v3.0 license.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project leader at issues (at) novelwriter.io. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

View File

@@ -1,179 +1,123 @@
# Contributing Guide
See also our [Code of Conduct](https://github.com/saga-soft/UmbraEdit?tab=coc-ov-file#code-of-conduct)
and our [AI Policy](https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md).
When contributing to this repository, please first discuss the change you wish to make via the
issue tracker or the discussions page with the owner of this repository. Especially if it is
regarding new features. If you just want to make a minor correction, like fix a typo or similar,
feel free to just make a pull request directly.
When contributing to this repository, please first discuss the change you wish to make with the
maintainers. For new and complex ideas, it is better to open a discussion before adding a new
feature request. If you just want to make a minor correction, like fix a typo or similar, feel free
to just make a pull request directly.
**The following contributions are welcome:**
The following contributions are welcome:
* Bugfixes for new or existing bugs. Please also report new bugs in the issue tracker even if you
also provide a fix. It makes it easier to keep track of what has been fixed and when and to
populate our changelog.
* Translations made via the [Crowdin project page](https://crowdin.com/project/umbraedit).
* Translations of the documentation. These need to use Sphinx i18n tooling. Please start a
discussion before beginning such work as it requires some coordination.
also provide a fix. It makes it easier to keep track of what has been fixed and when.
* New translations. You can read more about contributing translations
[here](https://github.com/vkbo/novelWriter/blob/main/i18n/README.md).
* Improvements to the documentation. Particularly if the documentation is unclear. Please don't
make any larger changes to the documentation without discussing them with a maintainer first.
make any larger changes to the documentation without discussing if with the maintainer first.
* Adaptations, installation or packaging features targeting specific operating systems.
* Using AI as a coding assistant is fine as long as the code is of good quality and the scope of
change is small, but do not generate large chunks of code. Generated code is not only hard to
maintain, but also poses licensing issues.
**Please do not:**
Please do not:
* Make a pull request that restructures or reformats existing code. If you think some part of the
* Make a pull request that restructures or reformats existing code. If you think some parts of the
code could be improved, please make an issue thread or start a discussion. The same applies to
any text document in the repository.
* Make pull requests with AI generated code. This is not a project suitable for vibe coding.
Outright slop will result in the account being blocked.
## Pull Requests
## Running from Source
This project follows the [OneFlow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow)
model. The `main` branch is the default branch. For general changes, please make a new branch in
your own fork from the current `main` branch. Do not make pull requests from your own `main`
branch.
This project uses [uv](https://docs.astral.sh/uv/) to maintain dependencies. In order to run
UmbraEdit directly from checked out source, simply call from the root folder with:
**Note:** If your contribution is a bugfix for a specific version, please make a bugfix branch from
the tag you want the fix to be applied to, not directly from the `main` branch. This is important.
```bash
uv run umbraedit
```
Also check the following:
To set up a development environment with all needed dependencies, run:
```bash
uv sync
```
Many tasks, like building assets from source, are handled by the `pkgutils.py` helper tool.
This tool requires no dependencies for most commands, so you can either run it directly with
Python, or using `uv run`.
```bash
python pkgutils.py --help
```
The translation files needed at runtime can be built with:
```bash
python pkgutils.py qtlrelease
```
Default icon themes can be updated with:
```bash
python pkgutils.py icons default
```
### Running Tests
* New code must not break any existing tests.
* New code must come with tests that cover the code in full. This includes branch coverage. If the
code has branches that only runs on some OSes, they only need to be covered when test are run on
that OS. The test suite runs on Linux, Windows and MacOS.
* It is ok to use `pragma` comments with `no cover` and `no branch` if the code is not expected to
touch those areas or branches at runtime.
A helper script is provided for running tests. It simplifies coverage reporting and a few other
things. Run the following to see all details:
```bash
uv run run_tests.py --help
```
For instance, this command will run all tests off screen (`-o`), generate a coverage XML report for
your code editor (`-r`), and produce a terminal report with all missing lines and branches (`-l`).
```bash
uv run run_tests.py -orl
```
## Picking the Correct Branch for a Pull Request
Pre-releases are generally made from the `main` branch, and full releases are always made from the
`release` branch. If you are submitting a fix to a current release you must do so from the
`release` branch. If you make such a fix on the `main` branch, **it cannot be included in a patch
release**. This also applies to the documentation for the latest release published on the main
website.
New features are only added in full releases, so a feature pull request must be made to the `main`
branch. However, if the `main` branch is very close to a new full release, pull requests may not be
merged until the release is completed.
This project uses GitHub milestones to plan releases, and only pull requests included in the
current release cycle will be merged to `main`. Milestone tickets are not set in stone and are
often moved to the next milestones.
### Pull Request Check List
Make sure the pull request follows these rules:
* The `main` branch is the default branch. For general changes, please make a new branch in your
own fork from the current `main` branch. Do not make pull requests from your copy of the `main`
branch. The same applies to the `release` branch.
* Make sure your code passes all tests and conforms to the style guide. You can check that the
code generally conforms by running the Python linting tool `flake8` from the root of the project
folder, although it doesn't check everything. The same check is also run on pull requests by the
maintainer.
* Please provide a description of the changes in the pull request under the summary section of the
pull request template, and reference any related issues by providing the issue number. Do not
post links to issue numbers as that breaks the integration. Stating the issue number on the form
`Closes #1234` is enough.
* Do not change the version number. This is done during the release process.
* Make sure the formatting and linting tools have been run locally before the pull request is made.
pull request template, and reference any related issues by providing the issue number.
* Do not change the version number.
* Do not submit files that were not actively changed but have otherwise been modifed. This is
mostly an issue with translation files. The language tool may update all files in the `i18n`
folder.
## Code of Conduct
## Code Style
There is a code of conduct. Please follow it in all your interactions with the project.
This code base uses camelCase convention for function and variable names. This differs from the
common convention of snake_case in Python. The reason for this is that UmbraEdit is built on the
Qt framework, where everything is camelCase.
### Our Pledge
Pretty much everything else regarding formatting is handled by the linter and formatter. This
project uses [ruff](https://docs.astral.sh/ruff/) for linting and formatting and
[pyright](https://github.com/microsoft/pyright) for type checking. The settings for these tools
are defined in `pyproject.toml`, and any submitted code must pass the following three commands:
In the interest of fostering an open and welcoming environment, we as contributors and maintainers
pledge to making participation in our project and our community a harassment-free experience for
everyone, regardless of age, body size, disability, ethnicity, gender identity and expression,
level of experience, nationality, personal appearance, race, religion, or sexual identity and
orientation.
Please see the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) file for the full text.
## Code Style Guide
The source code of novelWriter broadly follows the [PEP8](https://www.python.org/dev/peps/pep-0008)
style guide, but with a few exceptions. Some key points are listed below.
**Line Length:**
* Source code lines can extend to the upper limit of 99 characters allowed by PEP8. 79 characters
is the recommended line length in PEP8, but this is often too restrictive. 99 characters are
acceptable when that is more practical. Readability has priority. Generally, if a code statement
requires multiple lines, the lines should wrap at 79 characters if possible. If wrapping can be
avoided by going to 99, then that is generally preferrable.
* For text files, the text should be wrapped at 99 character. The exception is markdown image tags
and urls which can run past that limit.
**Variable and Function Names**
* PEP8 allows for camelCase for consistency with existing code. The Qt library uses camelCase, so
the Python the source code does too.
* The exception to the above is for constants. They should always be in upper snake case, like PEP8
states.
**Spaces, Indentation and Alignment**
* Only indentation by 4 spaces is allowed.
* No trailing spaces should occur on any line in the source code, including empty lines.
* Ideally, a function should end on the same indention level as it started. Exceptions are allowed
if it makes the code easier to follow.
* Aligning operators and attributes in columns with multiple spaces is not allowed by PEP8. The
rule is relaxed a bit here. Alignment is allowed when populating large dictionaries or setting
many class attributes. It does improve readability in such cases, but should not be overused.
### Linting with `flake8`
A good tool for checking Python code for errors and code style is `flake8`. The documentation is
available [here](https://flake8.pycqa.org/en/latest/).
The `setup.cfg` file in the root of this project has the following settings for `flake8` that
matches the above code style:
```conf
[flake8]
ignore = E221,E226,E228,E241
max-line-length = 99
exclude = docs/*
```
The command line equivalent, with reporting, is:
```bash
uv run ruff check
uv run ruff format
uv run pyright
flake8 . --count --ignore E221,E226,E228,E241 --max-line-length=99 --show-source --statistics
```
### Line Length
Passing this check is required before contributions are merged. This is checked automatically when
you make a pull request. You can run the `flake8` command locally to check beforehand. The full
command will give you a detailed description of the code lines that do not conform to the standard.
* The line length of the source code is enforced by the formatter, and is set to 120 characters.
Docstrings should be wrapped manually at 79 characters for better readability.
* For text files, the text should be wrapped 120 character or less. The exception is Markdown image
tags and URLs which can run past that limit.
Two of the ignored errors are due to the relaxed restriction on column alignment, these are the
E221 and E241 error codes.
### Internationalisation
* All comments and docstrings in the code must be in English.
* All text presented to the user must be wrapped in calls to Qt's translation framework, and the
spelling of this text **must** be British English. US English spelling **is not allowed** for
these strings. A US English translation is provided via the translation framework.
* Commit descriptions and pull requests must also be in English.
### License Headers and Credits
All code should add the license header on the exact format as used in other files. Update the title
as needed, and the copyright line. The year should be the year the code module was first created.
The default is:
```
Copyright (C) <YEAR> <Original Author Name> and UmbraEdit contributors.
```
For major changes to an existing file, don't touch the year, but you can append your name. By major
contributions is meant new code, like added new classes or larger functions, not modifications. Use
common sense since "UmbraEdit contributors" includes most modifications and changes.
```
Copyright (C) <YEAR> <Original Author Name>, <Your Name> and UmbraEdit contributors.
```
Make sure the `CREDITS.md` and `credits_en.htm` files are updated too if appropriate.
The code E226 is ignored becuse it doesn't actually follow the
[PEP8 recommendation](https://www.python.org/dev/peps/pep-0008/#other-recommendations)
of grouping longer equations by operator precedence like `2*a + 3*b` instead of `a * a + 3 * b`.
Generally, don't use spaces around `*`, `/` and `**`, but _do_ use spaces around `+` and `-`.
The same applies to the modulo operator `%`, hence E228 is also ignored.

View File

@@ -1,136 +1,42 @@
# Credits
## Main Developer novelWriter
## Main Developer
* Veronica Berglyd Olsen
* Veronica Berglyd Olsen (@vkbo)
## Main Product Manager / Developer
## Main Contributors
* B.D. Murphy
## Contributors
Larger contributions were made by:
* Early Concept: Marian Lückhof
* Internationalisation: Bruno Meneguello
* Setup and Packaging: Rachel Powers
* Vim Mode: Alexis Dumelie
* UmbraEdit Rebranding and Word DOCX/DOCM Import: B.D. Murphy
For other contributions, see the project's [Contributors](https://github.com/saga-soft/UmbraEdit/graphs/contributors) page.
## Artwork
The artwork on the Welcome dialog was generated with AI by B.D. Murphy. Reading print options through time.
UmbraEdit icon by B.D. Murphy using AI.
* Concept: Marian Lückhof (@Number042)
* Internationalisation: Bruno Meneguello (@bkmeneguello)
## Translations
The default language is English (UK) with English (US) as an option. These are the original
translators for the languages currently available:
* **Catalan:** Jaume Planas (jaumeplanas)
* **Czech:** Tomáš Zmek (perteus)
* **Dutch:** Martijn van der Kleijn (mvdkleijn)
* **French:** Jan Lüdke (jyhelle)
* **German:** Myian (HeyMyian)
* **Italian:** Riccardo Mangili
* **Japanese:** hebekeg
* **Latin American Spanish:** Tommy Marplatt (tmarplatt)
* **Norwegian:** Veronica Berglyd Olsen (vkbo)
* **Polish:** Anna Maria Polak (Nauthiz)
* **Portuguese:** Bruno Meneguello (bkmeneguello)
* **Russian:** Konstantin Tan (k1kimosha)
* **Simplified Chinese:** Qianzhi Long (longqzh)
Additional larger translation contributions:
* **Dutch:** Lise Blok (risingphoenix73)
* **French:** Albert Aribaud (aaribaud)
* **Portuguese:** Oli Maia (olimaia)
Translations of the documentation:
* **French:** Jean-Michel Heras (Karduin)
After the fork to UmbraEdit translations of text in the program are done via AI.
* French: Jan Lüdke (@jyhelle)
* Norwegian: Veronica Berglyd Olsen (@vkbo)
* Portuguese: Bruno Meneguello (@bkmeneguello)
* Simplified Chinese: Qianzhi Long (@longqzh)
## Libraries
The following libraries are dependencies of UmbraEdit:
The following libraries are dependencies of novelWriter:
* **Qt6** by Qt Company
* **PyQt6** by Riverbank Computing
* **Enchant** by Dom Lachowicz
* **PyEnchant** by Dimitri Merejkowsky
* Qt5 by [Qt Company](https://www.qt.io/)
* PyQt5 by [Riverbank Computing](https://www.riverbankcomputing.com/software/pyqt/)
* lxml by [Martijn Faassen](https://lxml.de/)
* Enchant by [Dom Lachowicz](https://abiword.github.io/enchant/)
* PyEnchant by [Dimitri Merejkowsky](https://pyenchant.github.io/pyenchant/)
## Icon Themes
## Assets
The default icon themes are subsets of icons from:
Some of the assets bundled with novelWriter were adapted from the following sources:
* **Fluent UI** by Microsoft (MIT License)
* **Lucide** by Cole Bemis and Lucide Contributors (ISC License)
* **Material Symbols** by Google Inc (Apache 2.0)
## Colour Themes
Colour themes included with UmbraEdit were adapted from the following sources:
* **Aura** themes by Dalton Menezes
* **B2T** themes by Bram de Haan
* **B4T** themes by Bram de Haan
* **Catppuccin** themes by Catppuccin Org
* **Dracula** theme by Zeno Rocha
* **Espresso** theme by Sainnhe Park and Antoine Cotten
* **Everforest** themes by Sainnhe Park
* **Horizon** themes by Jonathan Olaleye
* **New Moon** theme by Tania Rascia
* **Noctis** themes by Liviu Schera and contributors
* **Nord** theme by Sven Greb
* **Owl** themes by Sarah Drasner
* **Primer** themes by GitHub, Inc. and Myian
* **Rosé Pine** themes by Rosé Pine
* **Snazzy Light** theme by Florian Reuschel
* **Solarized** themes by Ethan Schoonover
* **Tango** themes by the Tango Desktop Project
* **Tomorrow** themes by Chris Kempson
Other themes were created for UmbraEdit:
* **Aura Bright** theme by Myian
* **Blue Streak** themes by Veronica Berglyd Olsen
* **Castle** themes by Myian
* **Chalky Soil** theme by Myian
* **Chernozem** theme by Myian
* **Cyberpunk Night** theme by Anders Lemvigh
* **Dark Arts** theme by Myian
* **Floral** themes by Myian
* **Friendly** themes by Myian
* **Full Moon** theme by Myian
* **Jewel Case** themes by Myian
* **LCARS** theme by Veronica Berglyd Olsen
* **Nordlicht** theme by Myian
* **Otium** themes by Myian
* **Paragon** theme by Myian
* **Ruby** themes by Myian
* **Selenium** themes by Myian
* **Sepia** themes by Myian
* **Sultana** themes by Myian
* **Today** themes by Veronica Berglyd Olsen
* **Vivid** themes by Myian
* **Warpgate** theme by Myian
* **Waterlily** themes by Myian
## Fonts
The font used for the main UmbraEdit logo, mimetype and text banners is Pridi.
* **Pridi** by Cadson Demak (Open Font License, Version 1.1)
--> Caladea <--
* Typicons icons by Stephen Hutchings (CC BY-SA 4.0)
* Cantarell font by Dave Crossland (OPEN FONT LICENSE Version 1.1)
* Tomorrow syntax themes by Chris Kempson (MIT License)
* Owl syntax themes by Sarah Drasner (MIT License)
* Solarized themes by Ethan Schoonover, added by @nullbasis (MIT License)
## Special Mentions
Additional thanks to John Blommers who was an early user and who has provided a lot of very useful
Additional thanks to @johnblommers who was an early user and who has provided a lot of very useful
feedback over the years.

View File

@@ -1,28 +1,7 @@
include README.md
include setup.py
include LICENSE.md
include CONTRIBUTING.md
include CREDITS.md
include CHANGELOG.md
include AI_POLICY.md
include pyproject.toml
include UmbraEdit.py
include pkgutils.py
include run_tests.py
include build-linux.sh
include setup/macos/*
include setup/windows/*
include setup/linux/*
include setup/flatpak/*
include setup/data/*
include setup/appimage_launcher.sh
include utils/*.py
include utils/build_*.py
recursive-include docs *
recursive-include i18n *
recursive-exclude *.pyc
recursive-exclude __pycache__
global-exclude .DS_Store
global-exclude .gitkeep
recursive-include setup *
recursive-include novelwriter/assets *
recursive-include sample *.nwx *.nwd

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

209
README.md
View File

@@ -1,73 +1,186 @@
# UmbraEdit
# novelWriter
<img align="left" style="margin: 0 0 4px 0;" src="https://git.umbratools.com/umbragit/UmbraEdit/raw/main/umbraedit/assets/icons/umbraedit.svg">
[![Linux](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml)
[![Windows](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml)
[![macOS](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml)
[![flake8](https://github.com/vkbo/novelWriter/workflows/flake8/badge.svg)](https://github.com/vkbo/novelWriter/actions)
[![codecov](https://codecov.io/gh/vkbo/novelWriter/branch/main/graph/badge.svg)](https://codecov.io/gh/vkbo/novelWriter)
[![docs](https://readthedocs.org/projects/novelwriter/badge/?version=latest)](https://novelwriter.readthedocs.io/en/latest/?badge=latest)
[![release](https://img.shields.io/github/v/release/vkbo/novelwriter)](https://github.com/vkbo/novelWriter/releases)
[![pypi](https://img.shields.io/pypi/v/novelwriter)](https://pypi.org/project/novelWriter)
[![python](https://img.shields.io/pypi/pyversions/novelwriter)](https://pypi.org/project/novelWriter)
UmbraEdit is a plain text editor designed for writing novels assembled from many smaller text
<img align="left" style="margin: 0 16px 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter.png">
novelWriter is a plain text editor designed for writing novels assembled from many smaller text
documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta data syntax
for comments, synopsis, and cross-referencing. It's designed to be a simple text editor that allows
for easy organisation of text and notes, using human readable text files as storage for robustness.
The project format is well suited both for version control software and file synchronisation tools.
UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io) and is
licensed under the same GPL v3.0 license.
The project storage is suitable for version control software, and also well suited for file
synchronisation tools. All text is saved as plain text files with a meta data header. The core
project structure is stored in a single project XML file. Other meta data is primarily saved as
JSON files.
B.D. Murphy is modifying the original using AI to make it part of his Umbratools publishing system.
The full documentation is available on [readthedocs.io](https://novelwriter.readthedocs.io).
The ideas:
1) Write the novel. Make it simple while writing. Formatting is later.
2) Have the entire project together. Not the novel text here and metadata you need somewhere else. All together. 2.a) ePub, paperback (print pdf), audio all start with the same story text, but each needs something different. Put everything into one project ISBN, book blurb, search terms, genere/categories BISAC codes, cover, etc
3) With everything together publishing is simpler
4) The goal is to write (human written) a novel, then use AI to help with everything else. At the end of the process there will be ePub, Paperback/Hard cover, audio versions in 10 languages.
For more details, and how to install and use UmbraEdit, please see the main website and documentation.
This project is a fork of novelWrite. Taking the great start and extending it. I use AI to help.
**Project Links**
* Website: [UmbraEdit](https://umbratools.com/umbraedit)
* Documentation: [UmbraEdit Docs](https://umbratools.com/umbraedit/docs)
This project is a fork of novelWrite. Taking the great start and extending it. I use AI to help._
The full credits are listed in [CREDITS.md](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
## Implementation
UmbraEdit is written in Python and uses Qt6 with PyQt6 Python binding as the UI framework. It
runs on Linux, Windows and MacOS. It can in principle run on any Operating System that also
supports Qt, PyQt and Python.
The application is written in Python 3 (3.6+) using Qt5 and PyQt5 (5.3+). It is developed on Linux,
but should in principle work fine on other operating systems as well as long as dependencies are
met. It is regularly tested on Debian and Ubuntu Linux, Windows, and macOS.
<p align="center">
<img width="80%" src="https://raw.githubusercontent.com/saga-soft/UmbraEdit/main/setup/screenshot.png">
</p>
## Installation
### Ubuntu and Debian
The Releases page has a `.deb` package (from version 1.5rc1 and on) that should install on both
Debian and Ubuntu.
You can also use the novelWriter [PPA](https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter).
For more details, check the [Linux](https://novelwriter.readthedocs.io/en/latest/setup_linux.html)
setup chapter in the documentation.
### Other Operating Systems
For a regular installation, it is recommended that you download one of the minimal zip files from
the [Releases](https://github.com/vkbo/novelWriter/releases) page or the
[novelwriter.io](https://novelwriter.io/) website.
The [documentation](https://novelwriter.readthedocs.io/) has detailed install instructions for
[Linux](https://novelwriter.readthedocs.io/en/latest/setup_linux.html),
[Windows](https://novelwriter.readthedocs.io/en/latest/setup_windows.html), and
[macOS](https://novelwriter.readthedocs.io/en/latest/setup_mac.html).
They are pretty straightforward.
## Project Contributions
Please don't make feature pull requests without first having discussed them with the maintainer.
You can make a feature request in the [issues tracker](https://github.com/saga-soft/UmbraEdit/issues),
or if the idea isn't fully formed, start a [discussion](https://github.com/saga-soft/UmbraEdit/discussions).
Please also don't make pull requests to reformat or rewrite existing code unless there is a very
good reason for doing so. Please do not submit AI generated content.
See our [AI Policy](https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md) for details.
You can make a feature request in the issue tracker, or if the idea isn't fully formed, start a
discussion on the discussion page. Please also don't make pull requests to reformat or rewrite
existing code unless there is a very good reason for doing so.
Fixes and patches are welcome. Contributions related to packaging and installing UmbraEdit will
also be appreciated. Before contributing any code, please read the full
[Contributing Guide](https://github.com/saga-soft/UmbraEdit/blob/main/CONTRIBUTING.md).
Fixes and patches are welcome. Contributions related to packaging and installing novelWriter will
also be appreciated, but please make an issue or a discussion topic first. Before contributing any
code, please read the full [Contributing Guide](https://github.com/vkbo/novelWriter/blob/main/CONTRIBUTING.md).
## Original Credits
New translations are always welcome. Please read the additional
[instructions](https://github.com/vkbo/novelWriter/blob/main/i18n/README.md) for further details.
Project credits are available in [CREDITS.md](https://github.com/saga-soft/novelwriter/blob/main/CREDITS.md).
## Key Features
**Note:** New features and most pre-releases are made on the `main` branch. Full releases are made
from the `release` branch. So if you're submitting a fix to a current release, **including changes
to documentation**, they must be made to the `release` branch.
Some key features of novelWriter are listed below. The
[documentation](https://novelwriter.readthedocs.io) has a lot more information.
### Formatting Codes
## Licence
Although novelWriter is a plain text editor, it uses a Markdown-like syntax to allow for a minimal
set of formatting that is useful for the specific task of writing novels.
This is Open Source software, and UmbraEdit is licensed under GPLv3. See the
| Code | Usage | Description |
|------------|----------|-------------|
| `#` | Prefix | Headings level 1 to 4. |
| `_` | Wrapped | Emphasised (italicised) text. |
| `**` | Wrapped | Strongly emphasised (bold) text. |
| `~~` | Wrapped | Strikethrough text. |
| `%` | Prefix | A comment; does not count towards the word count.<sup>1</sup> |
| `@` | Prefix | The following text is parsed as a keyword/value command for meta data. |
| `>` | Prefix | The paragraph is indented one tab width from the left. |
| `<` | Suffix | The paragraph is indented one tab width from the right. |
| `>>` | Prefix | The paragraph is right-aligned. |
| `<<` | Suffix | The paragraph is left-aligned. |
| `>>`, `<<` | Wrapped | The paragraph is centred. |
<sup>1</sup> If the first word of the comment is `synopsis:`, the comment is indexed and treated as the
synopsis for the section of text where it occurs. These synopsis comments can be used to build an
outline and exported to external documents.
In addition:
* A variety of thin and non-breaking spaces are supported. Some of them depend on the system
running at least Qt 5.9. Earlier versions of Qt will unfortunately strip them out when saving.
* Tabs can be used in the text, and should be properly aligned in both editor and viewer. This can
be used to make simple tables and lists. Note that for HTML exports, most browsers will treat a
tab as a space, so it may not show up like expected. Open Document exports should produce the
expected result.
### Export Formats
The core export formats of novelWriter are Open Document and HTML5. Open Document is an open
standard for office type documents that is supported by most office applications. See
[Open Document > Application Support](https://en.wikipedia.org/wiki/OpenDocument#Application_support)
for more details.
You can also export the entire project as a single novelWriter-flavour document. These can later be
imported again into novelWriter. In addition, printing and export to PDF is offered through the Qt
library, although with limitations to formatting.
### Colour Themes
The editor has syntax highlighting for the features it supports, and includes a set of different
syntax highlighting themes. Optional GUI themes are also available, including dark themes.
### Easy Organising of Project Files
The structure of the project is shown on the left hand side of the main window. Project files are
organised into root folders, indicating what class of file they are. The most important root folder
is the `Novel` folder, which contains all of the files that make up the novel itself. Each root
folder can have subfolders. Subfolders have no impact on the final project structure, they are
there for you to organise your files in whatever way you want.
The editor supports four levels of headings, which determine what level the following text belongs
to. Headings of level one signify a book or partition title. Headings of level two signify the
start of a new chapter. Headings of level three signify the start of a new scene. Headings of level
four can be used internally in each scene to create separate sections.
See the [documentation](https://novelwriter.readthedocs.io) for further details.
### Project Notes
Supporting notes can be added for the story plot, characters, locations, story timeline, etc. These
have their separate root folders and are optional to use.
### Visualisation of Story Elements
The different notes can be assigned tags, which other files can refer back to using `@`-prefixed
meta keywords. This information can be used to display an outline of the story, showing where each
scene connects to the plot, and which characters, etc. occur in them. In addition, the tags
themselves are clickable in the document view pane, and control-clickable in the editor. They make
it possible to quickly navigate between the documents while writing.
## Installing or Running from Source
If you want to run novelWriter directly from the source code, you must run the `novelWriter.py`
file from command line.
Dependencies can generally be installed from PyPi with:
```bash
pip install -r requirements.txt
```
For more details on running or installing from source, see
[Other Setup Methods](https://novelwriter.readthedocs.io/en/latest/setup_other.html).
## Debugging
If you need to debug novelWriter, you must run it from the command line. It takes a few parameters,
which can be listed with the switch `--help`. The `--info`, `--debug` or `--verbose` flags are
particularly useful for increasing logging output for debugging.
## Licenses
This is Open Source software, and novelWriter is licensed under GPLv3. See the
[GNU General Public License website](https://www.gnu.org/licenses/gpl-3.0.en.html) for more
details, or consult the [License](https://github.com/saga-soft/UmbraEdit/blob/main/LICENSE.md)
document. Bundled assets and their licenses are listed in the
[Credits](https://github.com/saga-soft/UmbraEdit/blob/main/CREDITS.md) document.
details, or consult the [LICENSE](https://github.com/vkbo/novelWriter/blob/main/LICENSE.md) file.
Bundled assets and their licenses are listed in
[CREDITS](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
## Screenshots
**novelWriter with default system theme:**
![Screenshot 1](https://raw.githubusercontent.com/vkbo/novelWriter/main/docs/source/images/screenshot_default.png)
**novelWriter with dark theme:**
![Screenshot 2](https://raw.githubusercontent.com/vkbo/novelWriter/main/docs/source/images/screenshot_dark.png)

View File

@@ -1,157 +0,0 @@
# UmbraEdit - Release Process
This document describes the release process for UmbraEdit, including versioning,
platform support, build workflows, and publishing.
## Versioning
UmbraEdit uses a **YYYY/MM.P####** versioning scheme:
| Component | Meaning |
|-----------|---------|
| `YYYY` | Release year (e.g., 2026) |
| `MM` | Release month (e.g., 11) |
| `####` | Patch/build sequence (e.g., 0001) |
Examples:
- `2026.11` - Major monthly release (November 2026)
- `2026.11.0001` - First development build of November 2026
- `2026.11.0002` - Second development build (e.g., new feature)
Git tags follow the format: `v2026.11`, `v2026.11.0001`, etc.
## Supported Platforms
| Platform | Architecture | Package Format | Build Host |
|----------|-------------|----------------|------------|
| Linux | amd64 | .deb, .rpm, AppImage | Linux |
| Linux | arm64 | .deb, .rpm, AppImage | Linux (ARM64) |
| macOS | arm64 | .dmg, .app | macOS (Apple Silicon) |
| macOS | amd64 | .dmg, .app | macOS (Intel) |
| Windows | amd64 | .msi, .exe | Windows |
| Windows | arm64 | .msi, .exe | Windows (ARM64) |
| iOS/iPadOS | arm64 | **NOT SUPPORTED** | N/A |
### iOS/iPadOS Support
UmbraEdit is **not available for iOS/iPadOS**. PyQt6 does not support iOS,
and UmbraEdit requires a full desktop Qt environment with keyboard, mouse,
and file system access. Porting to iOS would require a complete rewrite
using SwiftUI or a different cross-platform framework.
Users on iPad should use UmbraEdit via a VNC/remote desktop connection to a
desktop machine running UmbraEdit, or use a compatible web-based alternative.
## Release Workflow
### 1. Prepare Release
```bash
# Ensure working tree is clean
git status
# Update version in umbraedit/__init__.py
# __version__ = "2026.12.0001"
# Update CHANGELOG.md with new release entry
# Commit and tag
git add -A
git commit -m "release: prepare v2026.12"
git tag -a v2026.12 -m "Release v2026.12"
git push origin main --tags
```
### 2. Build All Platforms
On each target platform, run:
```bash
# Clone the tagged release
git clone https://git.umbratools.com/umbragit/UmbraEdit.git
cd UmbraEdit
git checkout v2026.12
# Build all packages for this platform
python utils/build_all.py --platform <platform> --arch <arch>
```
Available platforms: `linux`, `macos`, `windows`
Available architectures: `amd64`, `arm64`
### 3. Publish
Upload all build artifacts to the release server:
```bash
# Example: upload to Gitea releases
# Files to upload:
# Linux: dist_deb/umbraedit_*.deb, dist_appimage/*.AppImage
# macOS: dist_macos/umbraedit-*.dmg
# Windows: dist_win/umbraedit-*.exe, dist_win/umbraedit-*.msi
# Source: dist/umbraedit-*.tar.gz, dist/umbraedit-*.whl
```
Create a release on Gitea/GitHub and attach all artifacts.
## Build Artifacts
Each platform produces the following artifacts:
### Linux (.deb + AppImage)
| File | Location | Description |
|------|----------|-------------|
| `umbraedit_<version>_amd64.deb` | `dist_deb/` | Debian package |
| `umbraedit-<version>-amd64.AppImage` | `dist_appimage/` | Portable AppImage |
### macOS (.dmg + .app)
| File | Location | Description |
|------|----------|-------------|
| `umbraedit-<version>-arm64.dmg` | `dist_macos/` | macOS disk image |
| `UmbraEdit.app` | inside .dmg | macOS application bundle |
### Windows (.exe + .msi)
| File | Location | Description |
|------|----------|-------------|
| `umbraedit-<version>-amd64.exe` | `dist_win/` | Windows installer |
| `umbraedit-<version>-amd64.msi` | `dist_win/` | Windows MSI installer |
### Source
| File | Location | Description |
|------|----------|-------------|
| `umbraedit-<version>.tar.gz` | `dist/` | Source tarball |
| `umbraedit-<version>-py3-none-any.whl` | `dist/` | Pure Python wheel |
## Build Scripts
| Script | Purpose |
|--------|---------|
| `utils/build_all.py` | Unified build orchestrator for all platforms |
| `utils/build_debian.py` | Debian/Ubuntu .deb package builder |
| `utils/build_appimage.py` | AppImage builder |
| `utils/build_windows.py` | Windows installer builder |
| `setup/macos/build.sh` | macOS .dmg builder |
## Release Checklist
- [ ] Update version in `umbraedit/__init__.py`
- [ ] Update `CHANGELOG.md` with release notes
- [ ] Tag release: `git tag -a vYYYY.MM -m "Release vYYYY.MM"`
- [ ] Push tag: `git push origin vYYYY.MM`
- [ ] Build packages for all platforms
- [ ] Test installation on each platform
- [ ] Create release on Gitea/GitHub
- [ ] Attach all build artifacts
- [ ] Publish release notes
- [ ] Announce release
## Credits
UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen
(novelWriter.io), licenced under the same GPL v3.0 license.
Current development lead: B.D. Murphy

View File

@@ -1,213 +0,0 @@
# UmbraEdit — Project Scan & Structure
Copyright (C) 2026 B.D. Murphy and novelWriter contributors.
Documentation for the UmbraEdit project (renamed from novelWriter).
This document is a structural scan of the **UmbraEdit** codebase. It is intended for developers who want to modify or extend the project.
> UmbraEdit was created by cloning **novelWriter** (vkbo/saga-soft) into this folder and renaming the project to `UmbraEdit`. The full upstream git history is preserved (see §6).
---
## 1. Overview
| Property | Value |
|---|---|
| **Project name** | UmbraEdit |
| **Origin** | Renamed/rebased from [novelWriter](https://github.com/vkbo/novelWriter) (vkbo / saga-soft) |
| **Inherited version** | 26.3b1 (novelWriter v26 series; see `umbraedit/__init__.py`) |
| **Base version** | Based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io), GPL v3.0 |
| **Language** | Python 3.11+ |
| **UI framework** | Qt6 via PyQt6 |
| **Platforms** | Linux, Windows, macOS |
| **Storage model** | Plain-text project files (one document per scene + a project XML), well suited to Git and file-sync tools |
| **Formatting** | Minimal Markdown-like syntax plus a metadata syntax for comments, synopsis, and cross-references |
| **License** | `GPL-3.0-or-later AND Apache-2.0 AND ISC AND MIT` (see `pyproject.toml`, `LICENSE.md`) |
| **Entry point** | `UmbraEdit.py` → `umbraedit:main()` |
**Core idea:** a novel is built from many small plain-text documents organised in a binder/tree, with a composing editor and a compile/export step (DOCX, EPUB, HTML, ODT, Markdown, raw text, QDoc).
---
## 2. Repository layout (top level)
```
UmbraEdit/ <- this folder (was novelWriter2)
├── UmbraEdit.py <- application start script (imports umbraedit, calls main)
├── pyproject.toml <- project metadata, dependencies, ruff/pytest config
├── uv.lock <- dependency lockfile (regenerate if deps change)
├── run_tests.py <- pytest runner wrapper
├── pkgutils.py <- packaging / i18n utility script
├── README.md <- user-facing project page (mechanically renamed to UmbraEdit)
├── LICENSE.md
├── CHANGELOG.md <- historical novelWriter changelog (retains original attribution)
├── CONTRIBUTING.md
├── CREDITS.md
├── AI_POLICY.md
├── .gitignore
├── .env.example
├── docs/ <- Sphinx documentation source
├── i18n/ <- Qt translation sources (ue_XX.ts) — compiled .qm are gitignored
├── sample/ <- sample novel project (.nwx + content)
├── setup/ <- packaging: deb, windows, flatpak, macOS, appimage, icons
├── tests/ <- pytest suite (core, editor, gui, manuscript, models, story, text, tools, …)
├── umbraedit/ <- main Python package (was novelwriter/)
└── utils/ <- build scripts (appimage, debian, flatpak, pypi, windows, assets, docs)
```
**Note:** `AGENTS.md` is gitignored by this project (`.gitignore` line 68). This scan lives in `UMBRAEDIT.md` instead.
---
## 3. Package layout — `umbraedit/`
| Module / package | Responsibility |
|---|---|
| `__init__.py` | Application bootstrap, `__version__`, `main()` entry |
| `config.py` | Runtime configuration, paths, locale/i18n loading (`_ueLangPath`) |
| `constants.py` | Application-wide constants |
| `shared.py` | Shared data / singleton state |
| `enum.py`, `types.py`, `error.py` | Enums, shared types, error handling |
| `splash.py` | Splash screen |
| `guimain.py` | Main window / GUI assembly |
| `core/` | Project model: project, projectdata, projectxml, tree, item, document, storage, sessions, index, indexdata, projectsearch, spellcheck, status, options, coretools |
| `editor/` | The composing editor: editor, editordocument, highlighter, history, hovercard, header/footer, toolbars, viewer, search, completion, vim mode |
| `gui/` | Widgets/views: main menu, novel tree, project tree, sidebar, status bar, item details, search, theme |
| `manuscript/` | Compile/export: manuscript build, document build, settings |
| `models/` | Qt item models: item, novel, outline, search |
| `story/` | Outline/story view, story settings |
| `text/` | Text processing: counting, patterns, formats, autoreplace |
| `tools/` | Dictionaries, lorem ipsum, welcome, writing stats |
| `formats/` | Import/export filters: to/from DOCX, EPUB, HTML, ODT, Markdown, QDoc, raw text, TOML, QDoc |
| `dialogs/` | Preferences, project settings, about, split/merge, labels, links, quotes, word list |
| `extensions/` | Custom widgets: tab widget, switch, progress bars, event filters, etc. |
| `assets/` | Icons, images, themes (`.toml`), i18n project JSON, manual, credits |
---
## 4. How to build and run
### Requirements
- Python ≥ 3.11 (system Python 3.9.6 is **too old** — `match`/`case` syntax requires 3.10+)
- `pyqt6>=6.4`, `pyenchant>=3.3.0`
- macOS only: `pyobjc-framework-Cocoa`
### Run the application
```bash
cd /Volumes/1TB_APL_Storage/UmbraEdit
python3 UmbraEdit.py
# or, with the package on PYTHONPATH:
python3 -c "import umbraedit; umbraedit.main()"
```
### Syntax check (Python 3.11+)
```bash
/Volumes/Dock/worstauthor/.local/bin/python3.11 -m py_compile umbraedit/*.py umbraedit/**/*.py
```
### Tests
```bash
python3 run_tests.py # full pytest suite
python3 run_tests.py -m core # run a test marker group
```
Test configuration lives in `pyproject.toml` (`[tool.pytest.ini_options]`, testpaths=`tests`).
### Linting
The project uses **ruff** (see `[tool.ruff]` in `pyproject.toml`) and **pyright**.
### Packaging
See `setup/` and `utils/`:
- `utils/build_debian.py`, `build_windows.py`, `build_flatpak.py`, `build_appimage.py`, `build_pypi.py`
- `setup/windows/`, `setup/macos/`, `setup/debian/`, `setup/flatpak/`
---
## 5. i18n (translations)
- Translation sources: `i18n/ue_XX.ts` (renamed from `nw_XX.ts`)
- Compiled `.qm` files are **gitignored** (`i18n/*.qm`, `/umbraedit/assets/i18n/*.qm`) and generated at build time
- `umbraedit/config.py` loads `ue_<locale>.qm` from `_ueLangPath` (`umbraedit/assets/i18n`)
- Add a new language: create `i18n/ue_XX.ts` and regenerate the `.qm` with Qt Linguist / `lrelease`
---
## 6. Git system & Gitea publishing
### Current remote state
```
upstream https://github.com/vkbo/novelWriter.git (original novelWriter, preserved as reference)
```
There is **no `origin`** yet.
### What was done in this session
1. Cloned `https://github.com/vkbo/novelWriter.git` into this folder (`novelWriter2`).
2. Renamed the project `novelWriter` → `UmbraEdit` (package `novelwriter` → `umbraedit`, entry `novelWriter.py` → `UmbraEdit.py`, i18n `nw_*.ts` → `ue_*.ts`, packaging files, all imports/docs/tests/workflows).
3. Committed the rename:
- `70d74e675 chore: rename project from novelWriter to UmbraEdit` (474 files, all renames detected by git)
4. Archived the previous UmbraEdit (Rust/Tauri, pre-implementation spec project) preserving its git history:
- `/Volumes/1TB_APL_Storage/Archive/UmbraEdit_archived_20261105/`
5. Working tree is clean; branch is `main`.
### To publish as UmbraEdit on your Gitea server
A Gitea credential is **not** configured in this environment, and the Gitea server URL is not known yet, so `origin` was intentionally left unset. When ready:
```bash
# 1. Create the "UmbraEdit" repository on your Gitea server first
# 2. Add it as origin
git remote add origin <GITEA_URL>/UmbraEdit.git
# 3. Push
git push -u origin main
# 4. (Optional) keep pulling upstream novelWriter improvements
git fetch upstream
git merge upstream/main # or cherry-pick as desired
```
### Project URLs to update
`README.md` and `pyproject.toml` currently carry mechanically-renamed GitHub URLs
(`https://github.com/saga-soft/UmbraEdit`, etc.). Before publishing, replace these
with your Gitee instance URLs, e.g.:
- Repository → `https://<gitea>/<owner>/UmbraEdit`
- Issues → `https://<gitea>/<owner>/UmbraEdit/issues`
- Homepage / Documentation → your UmbraEdit docs site
---
## 7. Extension guidance (adding features)
The codebase is organised by concern, which makes it straightforward to extend:
| To add… | Touch… |
|---|---|
| New editor feature / syntax highlighting | `umbraedit/editor/` (editor, highlighter, history) |
| New project-tree / binder operation | `umbraedit/core/` (tree, project, projectdata, projectxml) |
| New import/export format | `umbraedit/formats/` (add a `toXxx` / `fromXxx` module) |
| New settings / preferences UI | `umbraedit/dialogs/preferences.py`, `umbraedit/config.py` |
| New view / dock panel | `umbraedit/gui/`, `umbraedit/guimain.py` |
| New data model / Qt model | `umbraedit/models/`, `umbraedit/core/item.py` |
| New compile/export target | `umbraedit/manuscript/` + a format module |
| New theme | `umbraedit/assets/themes/*.toml` |
| New translation | `i18n/ue_XX.ts` (§5) |
### Recommended workflow for new features
1. Create a feature branch off `main`: `git checkout -b feature/<name>`
2. Implement + add tests under `tests/` mirroring the source layout
3. Run `python3 run_tests.py` and `ruff` lint
4. Commit on the feature branch, then merge to `main`
5. Never let a week of work sit uncommitted (per project convention)
---
## 8. Files intentionally left as-is
| File | Reason |
|---|---|
| `uv.lock` | Dependency lockfile; still references `novelwriter` — regenerate (`uv lock`) if dependencies change |
| `setup/windows/novelWriter.exe` | Binary executable |
| `umbraedit/assets/images/welcome.webp` | Binary image (may still render "novelWriter" text) |
| `CHANGELOG.md`, `CREDITS.md` | Historical records retaining original novelWriter attribution |
---
*Generated as part of the UmbraEdit project setup. Scan date: 2026-11-05.*

View File

@@ -1,245 +0,0 @@
# UmbraEdit — Toolchain & Dependency Update Plan
Copyright (C) 2026 B.D. Murphy and novelWriter contributors.
Plan for upgrading UmbraEdit (Python/PyQt6) toolchain and dependencies.
**Goal:** Bring UmbraEdit (Python/PyQt6) up to the latest stable versions of its tools and dependencies, starting from the current baseline.
**Baseline (as of 2026-11-05):**
- System Python: 3.9.6 (`/usr/bin/python3`) — **below** the project's `requires-python >=3.11`
- Available runtimes: Python 3.11.15, 3.12.13 (via `uv` in `~/.local/bin`)
- `uv`: 0.11.7 (2026-04-15) — outdated
- PyQt6: not yet installed in the 3.11 environment
- `pyproject.toml` deps: `pyqt6>=6.4`, `pyenchant>=3.3.0`, `pyobjc-framework-Cocoa` (darwin)
- Lockfile: `uv.lock` (references `novelwriter` package name — will need regen)
---
## 1. Target Versions
| Tool | Current | Target | Source |
|---|---|---|---|
| Python runtime | 3.9.6 (system) | 3.12.x (latest 3.12) or 3.13.x | `uv` / python.org |
| PyQt6 | not installed | latest 6.x | PyPI |
| pyenchant | >=3.3.0 | latest 3.x | PyPI |
| pyobjc-framework-Cocoa | pinned by pyproject | latest (macOS only) | PyPI |
| uv | 0.11.7 | latest | github.com/astral-sh/uv |
| ruff | (in `uv.lock`) | latest | PyPI |
| pyright | (in `uv.lock`) | latest | npm/PyPI |
| pytest | (in `uv.lock`) | latest 8.x | PyPI |
| pytest-qt | (in `uv.lock`) | latest | PyPI |
| coverage | (in `uv.lock`) | latest | PyPI |
| Sphinx + theme | (in `uv.lock`) | latest | PyPI |
| setuptools | 82.0.1 | latest | PyPI |
| pip | 26.0.1 | latest | ensure via `uv` |
> Prefer Python **3.12** as the primary target (mature, PyQt6 wheels widely available). Keep **3.11** as a secondary CI matrix entry since `requires-python` is `>=3.11`.
---
## 2. Phased Execution
### Phase 0 — Preparation & Safety
1. Ensure working tree is clean and all changes committed on `main` (already done).
2. Tag the current state as a rollback point:
```bash
git tag umbraedit/pre-toolchain-update
git push origin umbraedit/pre-toolchain-update
```
3. Record current working commands (`python3 UmbraEdit.py`, test runner) so you can compare before/after.
4. Back up `uv.lock` and `pyproject.toml`.
### Phase 1 — Upgrade `uv` and Python runtimes
1. Upgrade `uv` itself:
```bash
uv self upgrade
# or: curl -LsSf https://astral.sh/uv/install.sh | sh
```
2. Install the target Python(s) via `uv` (so they are isolated and reproducible):
```bash
uv python install 3.12
uv python install 3.11 # keep for CI matrix
uv python list
uv python pin 3.12 # sets default for this project (writes .python-version)
```
3. Verify:
```bash
uv run python --version # should report 3.12.x
```
### Phase 2 — Upgrade core runtime dependencies
Create a fresh virtual environment with the target Python and install the project's runtime deps at their latest compatible versions:
```bash
cd /Volumes/1TB_APL_Storage/UmbraEdit
uv venv --python 3.12
uv pip install "pyqt6>=6.4" "pyenchant>=3.3.0"
# macOS only:
uv pip install "pyobjc-framework-Cocoa"
```
Then:
1. Run the app to confirm it starts:
```bash
uv run python UmbraEdit.py
# or, after venv activation:
python UmbraEdit.py
```
2. If `pyqt6` wheels fail on the target Python, fall back to 3.11 or file an issue.
### Phase 3 — Upgrade build / lint / test tooling
Update the dependency groups in `pyproject.toml` (`build`, `docs`, `test`, `lint`) to latest, then sync:
```toml
[dependency-groups]
dev = [
{ include-group = "build" },
{ include-group = "docs" },
{ include-group = "test" },
{ include-group = "lint" },
]
build = ["pyyaml", "tzdata; sys_platform == 'win32'"]
docs = [
"docutils>=0.17.1",
"pygments>=2.7",
"sphinx-book-theme",
"sphinx-copybutton",
"sphinx-design",
"sphinx-favicon",
"sphinx-intl",
"sphinx>=5.0",
]
test = [
"coverage>=7.16.0",
"pytest-qt",
"pytest-timeout",
"pytest>=6.0.0",
"tzdata; sys_platform == 'win32'",
]
lint = ["pyright", "ruff"]
```
Suggested edits:
- Bump `pytest>=6.0.0` → `pytest>=8.0` (check PyPI for latest 8.x)
- Bump `coverage>=7.16.0` → latest
- Bump `sphinx>=5.0` → latest 7.x/8.x
- Keep `ruff` and `pyright` unpinned or with generous lower bounds so `uv lock` resolves latest
Then sync:
```bash
uv lock --upgrade # resolve all groups to latest
uv sync --all-groups # create .venv with everything
```
### Phase 4 — Regenerate `uv.lock`
`uv.lock` currently references the old `novelwriter` package name and is stale.
```bash
uv lock --upgrade
git diff uv.lock # review before committing
```
Commit the regenerated lockfile with the toolchain update.
### Phase 5 — Update `requires-python` and classifiers (optional)
If you want to drop 3.11 and standardize on 3.12+:
```toml
requires-python = ">=3.12"
```
And update classifiers accordingly. Otherwise keep `>=3.11` and test both 3.11 and 3.12 in CI.
### Phase 6 — Update Gitea CI workflows
The `.github/workflows/*.yml` files reference Python setup steps. Update them to:
- Use `actions/setup-python` with `python-version: ["3.11", "3.12"]` (or your Gitea Actions equivalent)
- Install via `uv sync --all-groups` instead of `pip install -e .`
- Run `uv run ruff check`, `uv run pyright`, `uv run pytest`
If your Gitea instance uses Gitea Actions, mirror the same matrix. If not, update the workflows to call `uv` explicitly.
### Phase 7 — Packaging scripts review
The `utils/` build scripts (`build_appimage.py`, `build_debian.py`, `build_flatpak.py`, `build_pypi.py`, `build_windows.py`) and `setup/` packaging may pin Python/Qt versions. Check each for:
- Hardcoded `python3` → should target the new runtime
- `qt_version = "6.11"` in `[tool.novelwriter.build] flatpak` → verify against latest Qt6
- `pyqt6>=6.4` lower bound → keep or raise
### Phase 8 — Validation
1. **Syntax/compile:** `uv run python -m py_compile umbraedit/ tests/ utils/`
2. **Import smoke:** `uv run python -c "import umbraedit; umbraedit.main(['--help'])"`
3. **Lint:** `uv run ruff check .` and `uv run pyright`
4. **Tests:** `uv run pytest` (or `uv run python run_tests.py`)
5. **App launch:** `uv run python UmbraEdit.py` — confirm main window opens
6. **Export formats:** exercise DOCX/EPUB/HTML/ODT export paths if sample data exists
### Phase 9 — Commit & publish
```bash
git add -A
git commit -m "chore: upgrade toolchain to Python 3.12 and latest deps
- Upgrade uv and pin Python 3.12 via .python-version
- Refresh pyproject.toml dependency groups to latest compatible versions
- Regenerate uv.lock
- Update Gitea CI workflows for uv + Python 3.11/3.12 matrix
- Review packaging scripts for hardcoded python/qt versions"
git push origin main
```
---
## 3. Rollback Plan
If anything breaks after the update:
```bash
# Restore previous state
git checkout umbraedit/pre-toolchain-update .
# or reset hard to the tag
git reset --hard umbraedit/pre-toolchain-update
git push origin main --force # only if already pushed and you need to undo
```
Also keep the old system Python 3.9.6 available (do not remove `/usr/bin/python3`), and keep the `upstream` remote pointing at the original novelWriter for reference.
---
## 4. Recommended Command Sequence (copy-paste ready)
```bash
cd /Volumes/1TB_APL_Storage/UmbraEdit
# 0. Tag rollback point
git tag umbraedit/pre-toolchain-update
git push origin umbraedit/pre-toolchain-update
# 1. Upgrade uv and pin Python 3.12
uv self upgrade
uv python install 3.12
uv python pin 3.12
uv run python --version
# 2. Create venv and install runtime deps at latest
uv venv --python 3.12
uv pip install "pyqt6>=6.4" "pyenchant>=3.3.0"
# 3. Smoke-test the app
uv run python UmbraEdit.py
# 4. Sync dev toolchains (lint/test/docs)
uv sync --all-groups
# 5. Regenerate lockfile
uv lock --upgrade
git diff uv.lock | head -100
# 6. Validate
uv run python -m py_compile umbraedit/ tests/ utils/
uv run ruff check .
uv run pytest
```
---
## 5. Notes & Risks
- **PyQt6 on Python 3.13:** Wheels may lag; if 3.13 is required, verify PyQt6 availability first. 3.12 is the safer target.
- **`pyobjc-framework-Cocoa`:** macOS-only; only install/test on darwin.
- **`uv.lock` diff:** Expect a large diff since the lockfile is stale; review that no unexpected major-version jumps occur (especially PyQt6 6.x → 7.x, which would be breaking).
- **CI:** Gitea Actions runners must have `uv` installed, or the workflows must install it as a step.
- **Application still runs on Python 3.9.6?** No — `match`/`case` syntax requires 3.10+, and `requires-python` is `>=3.11`. The system 3.9.6 must not be used to run UmbraEdit.

View File

@@ -1,12 +0,0 @@
#!/bin/zsh
# UmbraEdit Launcher for macOS
# Double-click to launch, or run: ./UmbraEdit.command
#
# Copyright (C) 2026 B.D. Murphy and novelWriter contributors.
# Created: macOS launcher script for UmbraEdit (renamed from novelWriter).
cd "$(dirname "$0")"
# Use the project's uv-managed Python 3.12 virtual environment
export UV_PYTHON_PREFERENCE="only-managed"
exec uv run python UmbraEdit.py "$@"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 736 KiB

View File

@@ -1,15 +0,0 @@
#!/usr/bin/env python3
"""
UmbraEdit - Start Script
==========================
""" # noqa
import os
import sys
os.curdir = os.path.abspath(os.path.dirname(__file__))
if __name__ == "__main__":
import umbraedit
umbraedit.main(sys.argv[1:])

View File

@@ -1,221 +0,0 @@
#!/usr/bin/env bash
#=============================================================================
# UmbraEdit Linux Build Script
# ============================================================================
# Downloads the UmbraEdit source tarball and builds a .deb package and/or
# AppImage for Linux AMD64/ARM64.
#
# Usage:
# chmod +x build-linux.sh
# ./build-linux.sh [--arch amd64|arm64] [--distro ubuntu|debian] [--no-deb]
#
# No git clone required. Downloads the source tarball automatically.
#=============================================================================
set -euo pipefail
#-----------------------------------------------------------------------------
# Configuration
#-----------------------------------------------------------------------------
VERSION="2026.11.5"
RELEASE_VERSION="2026.11.0007"
GITEA_URL="http://192.168.123.18:2222/umbragit/UmbraEdit"
TARBALL_URL="${GITEA_URL}/-/archive/v${RELEASE_VERSION}/umbraedit-${RELEASE_VERSION}.tar.gz"
TARBALL="umbraedit-${RELEASE_VERSION}.tar.gz"
EXTRACTED_DIR="umbraedit-${RELEASE_VERSION}"
ARCH="${1:-amd64}"
DISTRO="${2:-ubuntu}"
BUILD_DEB="${3:-yes}"
echo "============================================================"
echo " UmbraEdit Linux Build Script"
echo "============================================================"
echo ""
echo " Version: ${RELEASE_VERSION}"
echo " Architecture: ${ARCH}"
echo " Distro: ${DISTRO}"
echo " Build .deb: ${BUILD_DEB}"
echo ""
#--------------------------------------------------------------
# Step 1: Check prerequisites
#--------------------------------------------------------------
echo "[1/5] Checking prerequisites..."
MISSING=0
for cmd in curl tar python3; do
if ! command -v "$cmd" &> /dev/null; then
echo " MISSING: $cmd"
MISSING=1
fi
done
if command -v apt-get &> /dev/null; then
PKG_MGR="apt-get"
elif command -v dnf &> /dev/null; then
PKG_MGR="dnf"
elif command -v pacman &> /dev/null; then
PKG_MGR="pacman"
else
PKG_MGR=""
fi
if [ "$PKG_MGR" = "" ]; then
echo ""
echo "ERROR: No supported package manager found (apt-get, dnf, or pacman)"
echo "Please install: python3, python3-pip, python3-pyqt6, python3-enchant,"
echo " dh-python, debhelper, python3-build, appimagetool"
exit 1
fi
echo " Package manager: $PKG_MGR"
echo " Prerequisites OK"
#--------------------------------------------------------------
# Step 2: Install system dependencies
#--------------------------------------------------------------
echo ""
echo "[2/5] Installing system dependencies..."
INSTALL_FAILED=0
if [ "$PKG_MGR" = "apt-get" ]; then
echo " Updating package lists..."
if ! sudo apt-get update 2>&1 | tail -5; then
echo ""
echo "============================================================"
echo " ERROR: apt-get update failed!"
echo "============================================================"
echo ""
echo " One of your package repositories is broken (likely a PPA or"
echo " third-party repo like NVIDIA's)."
echo ""
echo " To fix:"
echo " 1. Check /etc/apt/sources.list and /etc/apt/sources.list.d/"
echo " 2. Remove or disable any repositories that no longer exist"
echo " 3. Run: sudo apt-get update"
echo " 4. Then re-run this script: ./build-linux.sh"
echo ""
exit 1
fi
fi
echo ""
echo "Installing packages..."
install_pkg() {
if [ "$PKG_MGR" = "apt-get" ]; then
sudo apt-get install -y "$@" 2>&1 | tail -3
elif [ "$PKG_MGR" = "dnf" ]; then
sudo dnf install -y "$@" 2>&1 | tail -3
elif [ "$PKG_MGR" = "pacman" ]; then
sudo pacman -Sy --noconfirm "$@" 2>&1 | tail -3
fi
}
echo " Installing: python3 python3-pip python3-pyqt6 python3-enchant"
install_pkg python3 python3-pip python3-pyqt6 python3-enchant 2>&1 | tail -3 || {
echo ""
echo "============================================================"
echo " ERROR: Failed to install core dependencies"
echo "============================================================"
echo ""
echo " Please install manually and re-run:"
echo " sudo apt-get install python3 python3-pip python3-pyqt6 python3-enchant"
echo ""
exit 1
}
echo ""
echo " Installing: dh-python debhelper python3-build appimagetool"
install_pkg dh-python debhelper python3-build appimagetool 2>&1 | tail -3 || {
echo ""
echo "============================================================"
echo " WARNING: Some build tools failed to install"
echo "============================================================"
echo ""
echo " You may need to install these manually:"
echo " sudo apt-get install dh-python debhelper python3-build appimagetool"
echo ""
echo " Continuing anyway..."
}
echo " System dependencies installed"
#--------------------------------------------------------------
# Step 3: Download source tarball
#--------------------------------------------------------------
echo ""
echo "[3/5] Downloading source tarball..."
echo " URL: ${TARBALL_URL}"
if [ -f "$TARBALL" ]; then
echo " Archive already exists, skipping download"
else
curl -L -o "$TARBALL" "$TARBALL_URL"
echo " Downloaded: $(ls -lh "$TARBALL" | awk '{print $5}')"
fi
#--------------------------------------------------------------
# Step 4: Extract source
#--------------------------------------------------------------
echo ""
echo "[4/5] Extracting source..."
rm -rf "$EXTRACTED_DIR"
tar xzf "$TARBALL"
cd "$EXTRACTED_DIR"
echo " Extracted to: $(pwd)"
#--------------------------------------------------------------
# Step 5: Install Python dependencies
#--------------------------------------------------------------
echo ""
echo "[5/5] Installing Python dependencies..."
python3 -m pip install --user --upgrade pip setuptools wheel 2>&1 | tail -1
python3 -m pip install --user pyqt6 pyenchant 2>&1 | tail -1
echo " Python dependencies installed"
#--------------------------------------------------------------
# Step 6: Build packages
#--------------------------------------------------------------
echo ""
echo "[6/6] Building packages..."
# Build .deb (Debian/Ubuntu only)
if [ "$BUILD_DEB" = "yes" ] && [ "$PKG_MGR" = "apt-get" ]; then
echo ""
echo "Building .deb package..."
python3 utils/build_debian.py --distro "$DISTRO" --build 1
echo ""
echo " .deb package: dist_deb/umbraedit_*_${ARCH}.deb"
fi
# Build AppImage
echo ""
echo "Building AppImage..."
python3 utils/build_appimage.py --linux manylinux_2_28 --arch "$ARCH" --python 3.12
echo ""
echo " AppImage: dist_appimage/umbraedit-${RELEASE_VERSION}-${ARCH}.AppImage"
#--------------------------------------------------------------
# Done
#--------------------------------------------------------------
echo ""
echo "============================================================"
echo " Build Complete!"
echo "============================================================"
echo ""
echo "Artifacts:"
ls -la dist_deb/ 2>/dev/null || true
ls -la dist_appimage/ 2>/dev/null || true
echo ""
echo "To run UmbraEdit:"
echo " From AppImage: chmod +x dist_appimage/umbraedit-${RELEASE_VERSION}-${ARCH}.AppImage"
echo " ./dist_appimage/umbraedit-${RELEASE_VERSION}-${ARCH}.AppImage"
echo " From .deb: sudo dpkg -i dist_deb/umbraedit_*_${ARCH}.deb && umbraedit"
echo ""
echo "Source directory: $(pwd)"

22
codecov.yml Normal file
View File

@@ -0,0 +1,22 @@
codecov:
require_ci_to_pass: yes
coverage:
precision: 2
round: nearest
range: "70...95"
status:
project:
default:
threshold: 1%
patch: no
changes: no
parsers:
gcov:
branch_detection:
conditional: yes
loop: yes
method: no
macro: no

View File

@@ -0,0 +1,27 @@
/*
* Custom CSS Rules for Sphinx RTD Theme
*/
.kbd {
background-color: #eeeeee;
border: 1px solid #b4b4b4;
border-radius: 3px;
color: #333333;
display: inline-block;
font-size: 0.85em;
font-weight: 400;
line-height: 1;
padding: 2px 4px;
margin-left: 1px;
margin-right: 1px;
white-space: nowrap;
}
.tight-table td {
white-space: normal !important;
vertical-align: text-top;
}
pre span.go {
color: #333333 !important;
}

View File

@@ -1,14 +0,0 @@
span.guilabel {
font-weight: 400;
}
.nw-sidebar-title {
height: unset;
max-height: unset;
flex-direction: column;
justify-content: center;
gap: .25rem;
font-size: 1.25rem;
font-weight: normal;
text-align: center;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -1,3 +0,0 @@
{% if docstitle %}
<p class="nw-sidebar-title">{{ docstitle }}</p>
{% endif %}

View File

@@ -1,85 +1,118 @@
"""
Configuration file for the Sphinx documentation builder.
Documentation: http://www.sphinx-doc.org/en/master/config
""" # noqa
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
#
# -- Imports -----------------------------------------------------------------
import datetime
import os
import time
import sphinx_rtd_theme # noqa: F401
# -- Project Information -----------------------------------------------------
project = "UmbraEdit"
copyright = f"{datetime.date.today().year}" # noqa: A001
project = "novelWriter"
copyright = "2018–2021, Veronica Berglyd Olsen"
author = "Veronica Berglyd Olsen"
if override_authors := os.environ.get("SPHINX_I18N_AUTHORS"):
author = override_authors
else:
author = "Veronica Berglyd Olsen"
if override_version := os.environ.get("SPHINX_I18N_VERSION"):
release = override_version
else:
initFile = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, "umbraedit", "__init__.py")
with open(initFile, encoding="utf-8") as inFile:
for aLine in inFile:
if aLine.startswith("__version__"):
release = "20" + aLine.split('"')[1].strip()
break
else:
release = "unknown"
version = release.partition("-")[0]
# The short X.Y version
version = "1.5.2"
# The full version, including alpha/beta/rc tags
release = "1.5.2"
# -- General Configuration ---------------------------------------------------
os.environ["TZ"] = "Europe/Oslo"
time.tzset()
needs_sphinx = "5.0"
extensions = ["sphinx_design", "sphinx_copybutton"]
# needs_sphinx = "1.0"
extensions = [
"sphinx_rtd_theme",
]
templates_path = ["_templates"]
source_suffix = {".rst": "restructuredtext"}
source_suffix = ".rst"
master_doc = "index"
today_fmt = "%A, %d %B %Y at %H:%M"
language = "en"
locale_dirs = ["locales/"]
gettext_compact = False
language = None
exclude_patterns = []
pygments_style = None
# -- Options for HTML Output -------------------------------------------------
html_theme = "sphinx_book_theme"
html_title = f"Version {release}"
html_static_path = ["_static"]
html_css_files = ["custom.css"]
html_theme = "sphinx_rtd_theme"
html_logo = "images/novelwriter.png"
html_theme_options = {
"logo": {
"image_light": "_static/umbraedit-light.png",
"image_dark": "_static/umbraedit-dark.png",
},
"show_toc_level": 2,
"show_navbar_depth": 1,
"repository_url": "https://github.com/saga-soft/umbraedit",
"navigation_with_keys": True,
"use_repository_button": True,
"use_issues_button": True,
"pygments_light_style": "tango",
"pygments_dark_style": "dracula",
}
html_sidebars = {
"**": ["navbar-logo", "sidebar-title", "sbt-sidebar-nav"],
# Toc options
"collapse_navigation": True,
"sticky_navigation": True,
"navigation_depth": 3,
"includehidden": True,
"titles_only": False,
"logo_only": True,
}
html_static_path = ["_static"]
html_css_files = [
"css/custom.css",
]
# -- Options for HTMLHelp Output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = "novelWriterDoc"
# -- Options for LaTeX Output ------------------------------------------------
latex_elements = {
"papersize": "a4paper",
"pointsize": "11pt",
"preamble": ("\\usepackage[utf8]{inputenc}\n\\DeclareUnicodeCharacter{2212}{\\textendash}\n"),
"preamble": (
"\\usepackage[utf8]{inputenc}\n"
"\\DeclareUnicodeCharacter{2212}{\\textendash}\n"
),
"figure_align": "htbp",
}
latex_logo = "_static/umbraedit-pdf.png"
latex_documents = [(master_doc, "manual.tex", None, author, "manual")]
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [(
master_doc, "manual.tex", "novelWriter Documentation",
author, "manual"
)]
# -- Options for Man Page Output ---------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(
master_doc, "novelwriter", "novelWriter Documentation", [author], 1
)]
# -- Options for Texinfo Output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [(
master_doc, "novelWriter", "novelWriter Documentation", author,
"novelWriter", "Markdown-like editor for novels.", "Miscellaneous"
)]
# -- Options for EPub Output -------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = project
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
# epub_identifier = ""
# A unique identification for the text.
# epub_uid = ""
# A list of files that should not be packed into the epub file.
epub_exclude_files = ["search.html"]

View File

@@ -1,92 +0,0 @@
.. _docs_features_dialogue:
*********************
Dialogue Highlighting
*********************
Dialogue recognition and colour highlighting is available both while you're writing and in
generated manuscript documents.
The default language settings in UmbraEdit are for English. That includes the dialogue
highlighting settings. But many dialogue styles are supported. You can tune a number of settings
to fit your language and style preferences in the "Text Highlighting" section in **Preferences**.
You can mix and match these settings.
.. figure:: images/fig_dialogue_highlighting.png
The **Text Highlighting** section of **Preferences**.
Quoted Dialogue
===============
By default, dialogue highlighting is enabled for the double quote symbols you have defined in the
**Quotation Style** section of **Preferences**.
.. figure:: images/fig_dialogue_quote_styles.png
The **Quotation Style** section of **Preferences**.
You can change which quote symbols are highlighted by selecting one of "None", "Single", "Double",
or "Both" from the "Highlight dialogue" setting under **Text Highlighting**.
You can also enable or disable the "Allow open-ended dialogue" setting to allow for the style where
multi-paragraph dialogue is not closed until the last paragraph.
.. admonition:: Limitations
Dialogue highlighting for single quotes is difficult to process when the same single quote
symbol is also used for apostrophes. There isn't a good solution to this. Your best option in
the cases where the highlighting is wrong is to insert an alternative apostrophe symbol instead.
See :ref:`docs_more_typographical_symbols_apostrophe` for more details.
Alternative Dialogue
====================
You can use the "Alternative dialogue symbols" setting for custom dialogue wrapper symbols. These
are highlighted in a different colour than regular dialogue.
The intended use case here is if you use an alternative style to distinguish a different style of
communication. The feature idea came from a science fiction series where mind-to-mind communication
used a different quotation style.
Dialogue Line Symbols
=====================
In some languages, a single symbol at the start of a paragraph can indicate that the whole
paragraph is dialogue. For instance, this symbol can be a short dash (en dash).
.. figure:: images/fig_dialogue_line.png
An example of dialogue starting with a short dash.
You can enable this feature by adding the symbols to the "Dialogue line symbols" setting. Multiple
symbols are allowed.
Dialogue with Narrator Break
============================
The dialogue symbol setting will not detect if the dialogue ends in the paragraph. In some styles
there is no way to actually indicate the switch from dialogue to narration; in others there are.
These a narrator break symbols are usually dashes. You can select one of the supported dash symbols
for narrator breaks. These can be used with any of the above dialogue recognition settings.
.. figure:: images/fig_dialogue_narrator_break.png
An example of dialogue starting with a short dash and a long dash narrator break.
Alternating Dialogue and Narration
==================================
The alternating dialogue and narration style is supported with the "Alternating dialogue/narration
symbol" setting. It can be set to one of the supported dashes. This style will switch into dialogue
mode when it first encounters the selected dash in a paragraph, and switch back out when it sees
the next one, and so forth.
.. figure:: images/fig_dialogue_alternating.png
An example of alternating dialogue and narration using a long dash.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

View File

@@ -1,213 +0,0 @@
.. _docs_features_shortcuts:
******************
Keyboard Shortcuts
******************
Most features in UmbraEdit are available as keyboard shortcuts. This is a reference list of those
shortcuts. Most of them are also listed in the application's user interface.
.. note::
On MacOS, replace :kbd:`Ctrl` with :kbd:`Cmd`.
.. note::
Shortcuts marked with (*) are remapped when Vim Mode is enabled and no longer work as listed in
the tables below. See :ref:`docs_features_vim_mode` for more details.
Main Window Shortcuts
=====================
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F1`", "Open the online user manual"
":kbd:`F5`", "Open the **Manuscript Build** tool"
":kbd:`F6`", "Open the **Writing Statistics** tool"
":kbd:`F8`", "Toggle **Focus Mode**"
":kbd:`F9`", "Re-build the project's index"
":kbd:`F11`", "Toggle full screen mode"
":kbd:`Ctrl+,`", "Open the **Preferences** dialog"
":kbd:`Ctrl+E`", "Switch or toggle focus for the editor or viewer"
":kbd:`Ctrl+T`", "Switch or toggle focus for the project tree or novel view"
":kbd:`Ctrl+Q`", "Exit UmbraEdit"
":kbd:`Ctrl+Shift+,`", "Open the **Project Settings** dialog"
":kbd:`Ctrl+Shift+O`", "Open the Welcome dialog to open or create a project"
":kbd:`Ctrl+Shift+S`", "Save the current project"
":kbd:`Ctrl+Shift+T`", "Switch focus to the outline view"
":kbd:`Ctrl+Shift+W`", "Close the current project"
":kbd:`Shift+F1`", "Open the local user manual (PDF) if it is available"
":kbd:`Shift+F8`", "Toggle tree pane visibility"
Project Tree Shortcuts
======================
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F2`", "Edit the label of the selected item"
":kbd:`Return`", "Open the selected document in the editor"
":kbd:`Alt+Up`", "Jump or go to the previous item at same level in the tree"
":kbd:`Alt+Down`", "Jump or go to the next item at same level in the tree"
":kbd:`Alt+Left`", "Jump to the parent item in the tree"
":kbd:`Alt+Right`", "Jump to the first child item in the project tree"
":kbd:`Ctrl+.`", "Open the context menu on the selected item"
":kbd:`Ctrl+L`", "Open the **Quick Links** menu"
":kbd:`Ctrl+N`", "Open the **Create New Item** menu"
":kbd:`Ctrl+O`", "Open the selected document in the editor"
":kbd:`Ctrl+R`", "Open the selected document in the viewer (*)"
":kbd:`Ctrl+Up`", "Move selected item one step up in the tree"
":kbd:`Ctrl+Down`", "Move selected item one step down in the tree"
":kbd:`Ctrl+Shift+Del`", "Move the selected item to Trash"
Document Editor Shortcuts
=========================
Text Search Shortcuts
---------------------
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F3`", "Find the next occurrence of the search word"
":kbd:`Ctrl+F`", "Open search and look for the selected word"
":kbd:`Ctrl+G`", "Find the next occurrence of the search word"
":kbd:`Ctrl+H`", "Open replace and look for the selected word (Mac :kbd:`Cmd+=`)"
":kbd:`Ctrl+Shift+1`", "Replace selected occurrence, and move to the next"
":kbd:`Ctrl+Shift+G`", "Find the previous occurrence of the search word"
":kbd:`Ctrl+Shift+F`", "Open project search and look for the selected word"
":kbd:`Shift+F3`", "Find the previous occurrence of the search word"
Text Formatting Shortcuts
-------------------------
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes"
":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes"
":kbd:`Ctrl+/`", "Toggle comment format for block or selected text"
":kbd:`Ctrl+1`", "Change block format to heading level 1"
":kbd:`Ctrl+2`", "Change block format to heading level 2"
":kbd:`Ctrl+3`", "Change block format to heading level 3"
":kbd:`Ctrl+4`", "Change block format to heading level 4"
":kbd:`Ctrl+5`", "Change block alignment to left-aligned"
":kbd:`Ctrl+6`", "Change block alignment to centred"
":kbd:`Ctrl+7`", "Change block alignment to right-aligned"
":kbd:`Ctrl+8`", "Add a left margin to the block"
":kbd:`Ctrl+9`", "Add a right margin to the block"
":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with bold"
":kbd:`Ctrl+D`", "Format selected text, or word under cursor, with strike through"
":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with italic"
":kbd:`Ctrl+M`", "Highlight selected text, or word under cursor"
":kbd:`Ctrl+Shift+/`", "Remove format for block or selected text"
":kbd:`Ctrl+Shift+D`", "Toggle ignored text format for block or selected text"
Other Editor Shortcuts
----------------------
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F7`", "Re-run the spell checker on the document"
":kbd:`Ctrl+.`", "Open the context menu at the current cursor location"
":kbd:`Ctrl+A`", "Select all text in the document"
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`docs_features_shortcuts_insert`)"
":kbd:`Ctrl+R`", "Open or reload the current document in the viewer (*)"
":kbd:`Ctrl+S`", "Save the current document"
":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position"
":kbd:`Ctrl+W`", "Close the current document"
":kbd:`Ctrl+X`", "Cut selected text to clipboard"
":kbd:`Ctrl+Y`", "Redo latest undo"
":kbd:`Ctrl+Z`", "Undo latest changes"
":kbd:`Ctrl+0`", "Reset zoom"
":kbd:`Ctrl++`", "Zoom in"
":kbd:`Ctrl+=`", "Zoom in"
":kbd:`Ctrl+-`", "Zoom out"
":kbd:`Ctrl+_`", "Zoom out"
":kbd:`Ctrl+Backspace`", "Delete the word before the cursor"
":kbd:`Ctrl+Del`", "Delete the word after the cursor"
":kbd:`Ctrl+F7`", "Toggle spell checking"
":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer"
":kbd:`Ctrl+Shift+Return`", "Open the tag or reference under the cursor in the editor"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
":kbd:`Ctrl+Shift+V`", "Paste text as plain text from clipboard to cursor position"
":kbd:`Ctrl+Left`", "Move to previous word."
":kbd:`Ctrl+Right`", "Move to next word."
":kbd:`Ctrl+Up`", "Move to previous paragraph."
":kbd:`Ctrl+Down`", "Move to next paragraph."
.. _docs_features_shortcuts_insert:
Insert Shortcuts
----------------
A set of insert features are also available through shortcuts, but they require a double
combination of key sequences. The insert feature is activated with :kbd:`Ctrl+K`, followed by
a key or key combination for the inserted content.
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`Ctrl+K`, :kbd:`Space`", "Insert a non-breaking space"
":kbd:`Ctrl+K`, :kbd:`_`", "Insert a long dash (em dash)"
":kbd:`Ctrl+K`, :kbd:`.`", "Insert an ellipsis"
":kbd:`Ctrl+K`, :kbd:`'`", "Insert a modifier apostrophe"
":kbd:`Ctrl+K`, :kbd:`*`", "Insert a bullet symbol"
":kbd:`Ctrl+K`, :kbd:`%`", "Insert a per mille symbol"
":kbd:`Ctrl+K`, :kbd:`~`", "Insert a figure dash (same width as a number)"
":kbd:`Ctrl+K`, :kbd:`−`", "Insert a short dash (en dash)"
":kbd:`Ctrl+K`, :kbd:`1`", "Insert a left single quote"
":kbd:`Ctrl+K`, :kbd:`2`", "Insert a right single quote"
":kbd:`Ctrl+K`, :kbd:`3`", "Insert a left double quote"
":kbd:`Ctrl+K`, :kbd:`4`", "Insert a right double quote"
":kbd:`Ctrl+K`, :kbd:`C`", "Insert a ``@char`` keyword"
":kbd:`Ctrl+K`, :kbd:`E`", "Insert an ``@entity`` keyword"
":kbd:`Ctrl+K`, :kbd:`F`", "Insert a ``@focus`` keyword"
":kbd:`Ctrl+K`, :kbd:`G`", "Insert a ``@tag`` keyword"
":kbd:`Ctrl+K`, :kbd:`H`", "Insert a short description comment"
":kbd:`Ctrl+K`, :kbd:`L`", "Insert a ``@location`` keyword"
":kbd:`Ctrl+K`, :kbd:`M`", "Insert a ``@mention`` keyword"
":kbd:`Ctrl+K`, :kbd:`O`", "Insert an ``@object`` keyword"
":kbd:`Ctrl+K`, :kbd:`P`", "Insert a ``@plot`` keyword"
":kbd:`Ctrl+K`, :kbd:`S`", "Insert a synopsis comment"
":kbd:`Ctrl+K`, :kbd:`T`", "Insert a ``@time`` keyword"
":kbd:`Ctrl+K`, :kbd:`V`", "Insert a ``@pov`` keyword"
":kbd:`Ctrl+K`, :kbd:`X`", "Insert a ``@custom`` keyword"
":kbd:`Ctrl+K`, :kbd:`Ctrl+Space`", "Insert a thin non-breaking space"
":kbd:`Ctrl+K`, :kbd:`Ctrl+_`", "Insert a horizontal bar (quotation dash)"
":kbd:`Ctrl+K`, :kbd:`Ctrl+'`", "Insert a prime"
":kbd:`Ctrl+K`, :kbd:`Ctrl+""`", "Insert a double prime"
":kbd:`Ctrl+K`, :kbd:`Ctrl+*`", "Insert a flower mark (alternative bullet)"
":kbd:`Ctrl+K`, :kbd:`Ctrl+−`", "Insert a hyphen bullet (alternative bullet)"
":kbd:`Ctrl+K`, :kbd:`Ctrl+D`", "Insert a division sign"
":kbd:`Ctrl+K`, :kbd:`Ctrl+O`", "Insert a degree symbol"
":kbd:`Ctrl+K`, :kbd:`Ctrl+X`", "Insert a times sign"
":kbd:`Ctrl+K`, :kbd:`Shift+Space`", "Insert a thin space"
Document Viewer Shortcuts
=========================
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`Alt+Left`", "Move backward in the view history"
":kbd:`Alt+Right`", "Move forward in the view history"
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
":kbd:`Ctrl+0`", "Reset zoom"
":kbd:`Ctrl++`", "Zoom in"
":kbd:`Ctrl+=`", "Zoom in"
":kbd:`Ctrl+-`", "Zoom out"
":kbd:`Ctrl+_`", "Zoom out"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
":kbd:`Ctrl+Shift+R`", "Close the document viewer (*)"

View File

@@ -1,110 +0,0 @@
.. _docs_features_story:
**************
Story Comments
**************
A special set of comment styles allow for annotating your text with structure information. There
are two styles of comments available. They are an extension to regular comments as described in
:ref:`docs_usage_comments`.
.. versionadded:: 2.7
Story Structure Comments
========================
You can annotate story structure by using the ``%Story`` style of comment. To use the feature,
make the first word of a comment ``Story``, followed by a period, a structure term, a colon, a
space and the text for that term.
Usage
-----
The story term can be anything that you want to track in the manuscript. This construct is intended
to make it easier to extract metadata from a work to perform a structural analysis of the story.
There are probably as many ways to examine story structure as there are authors and editors
combined. For this reason the story tag is flexible. You can use any terms you want and track any
aspect of the story that serves your purposes.
An example method has been advanced by Shawn Coyne in *The Story Grid*. This method asserts that a
story is composed of "beats", and that each beat has an inciting incident, a complication, a
crisis, and a resolution. One might capture these elements of a beat where a character overcomes
their fear of giving a speech as:
:bdg-info:`Example`
.. code-block:: md
### Scene
%Synopsis: Carol overcomes her fear of giving a speech.
%Story.incite: Carol is pleased to be invited to a conference to see her boss deliver a keynote.
%Story.complication: Carol's boss calls in sick and asks her to deliver a big speech.
%Story.crisis: Carol has a fear of appearing on stage.
%Story.resolution: Carol engages the help of a coach who helps her overcome her fears and delivers a great speech.
Other analytical models propose tracking a scene's pace, how it affects the mood of the story, or
which element(s) of the story's genre are being satisfied. An author can use this mechanism to
track any element of a scene. Some examples include time of day, how much time passes in the scene,
or even the physical form of a shape-shifting character. If a story involves magic, one could track
which wand a main character has in hand. It's up to the author.
When the story and other scene metadata is extracted into a tabular form, it is possible to get a
comprehensive overview of the story and to identify possible issues. For example, so many
fast-paced scenes without a break that readers might become fatigued or over-stimulated.
Output
------
The story structure comments can be included in the manuscript, and are formatted similarly to
the synopsis comments:
.. figure:: images/fig_story_structure_manuscript.png
A set of story structure comments as shown in the Manuscript tool.
When you export your project data from the Outline View, all story structure terms are added as
columns to the exported file, which can then be opened in the spread sheet software of your choice.
Story Notes
===========
Story notes are similar to story structure comments, but have no predefined meaning. Essentially
they are a generalisation of the story structure comment, and the only point of having this
additional format is to allow you do filter them in and out of your manuscript independently.
You can annotate story notes by using the ``%Note`` style of comment. To use the feature,
make the first word of a comment ``Note``, followed by a period, a term, a colon, a space and the
text for the note.
Usage
-----
These notes are free form, but one intended use case is to add consistency annotations to your text
to remind yourself where you have described something that must be checked against other parts of
your text later on.
:bdg-info:`Example`
.. code-block:: md
### Scene
%Synopsis: Carol overcomes her fear of giving a speech.
%Note.consistency: This is the first time in the story Carol gives a speech.
Output
------
Story notes are included in the manuscript in exactly the same way story structure comments are,
but has a separate inclusion setting in the build settings. They are also included in CSV exports
from the **Outline View**.

View File

@@ -1,126 +0,0 @@
.. _docs_features_vim_mode:
********
Vim Mode
********
.. _Vim: https://www.vim.org/
Vim_ is a keyboard-centric text editor. "Vim mode" refers to another editor implementing the
ability to perform a subset of vim motions. This will allow you to write, select, edit, copy,
paste, navigate, etc, efficiently by using keyboard commands.
Vim is modal. Three such modes have been implemented in UmbraEdit:
- **Normal** mode is the default mode used to navigate text.
- **Insert** mode is where you can write text like in a 'normal' text editor.
- **Visual** mode is for selecting text, with:
- **Visual** mode for per character selection.
- **V-Line** mode for per-line selection.
The vim mode setting is found in the **Features** section of the **Preferences**.
.. note::
Vim mode is an advanced feature. When you enable it, the text editor will behave very
differently than a standard text editor. A label in the footer of the editor will show which of
the vim modes it is in.
Mode Switching
==============
To switch between the various vim modes, these keystrokes implemented:
.. csv-table::
:header: "From Mode", "To Mode", "Keystrokes"
"Normal", "Insert", ":kbd:`i`, :kbd:`I`, :kbd:`a`, :kbd:`A`, :kbd:`o`, :kbd:`O`"
"Insert", "Normal", ":kbd:`Esc`"
"Normal", "Visual", ":kbd:`v`, :kbd:`V`"
"Visual", "V-Line", ":kbd:`V`"
"V-Line", "Visual", ":kbd:`v`"
"Visual", "Normal", ":kbd:`Esc`, :kbd:`v`"
"V-Line", "Normal", ":kbd:`Esc`, :kbd:`V`"
You can exit visual mode back to normal mode by pressing :kbd:`Esc`, but all visual mode commands
that logically "terminate" the visual mode usage will return you to normal mode.
For instance, press :kbd:`V` to enter V-Line mode, extend the selection to the next line with
:kbd:`j`, and press :kbd:`y` to yank (copy). You are now automatically put back in normal mode as
you have completed selecting your text.
Implemented Keystrokes (Vim Motions)
====================================
The table below shows the vim motions currently implemented in UmbraEdit.
.. csv-table::
:header: "Motion", "Mode(s)", "Description"
":kbd:`i`", "Normal → Insert", "Enter insert mode"
":kbd:`I`", "Normal → Insert", "Jump to start of line and enter insert"
":kbd:`v`", "Normal → Visual", "Enter character-wise visual mode"
":kbd:`V`", "Normal → V-Line", "Enter line-wise visual mode"
":kbd:`dd`", "Normal", "Delete (cut) current line"
":kbd:`x`", "Normal", "Delete character under cursor"
":kbd:`w`", "Normal / Visual", "Move to next word start"
":kbd:`b`", "Normal / Visual", "Move to previous word start"
":kbd:`e`", "Normal / Visual", "Move to next word end"
":kbd:`dw`", "Normal", "Delete from cursor to next word start"
":kbd:`de`", "Normal", "Delete from cursor to next word end"
":kbd:`db`", "Normal", "Delete from cursor to previous word start"
":kbd:`d$`", "Normal", "Delete from cursor to end of line"
":kbd:`yw`", "Normal", "Yank (copy) from cursor to next word start"
":kbd:`gg`", "Normal / Visual", "Jump to first line"
":kbd:`G`", "Normal / Visual", "Jump to last line"
":kbd:`yy`", "Normal", "Yank current line"
":kbd:`p`", "Normal", "Paste after current line or cursor"
":kbd:`P`", "Normal", "Paste before current line or at cursor"
":kbd:`o`", "Normal → Insert", "Open new line below and enter insert"
":kbd:`O`", "Normal → Insert", "Open new line above and enter insert"
":kbd:`$`", "Normal / Visual", "Move to end of line"
":kbd:`0`", "Normal / Visual", "Move to start of line"
":kbd:`a`", "Normal → Insert", "Enter insert after cursor"
":kbd:`A`", "Normal → Insert", "Enter insert at end of line"
":kbd:`u`", "Normal", "Undo last change"
":kbd:`Ctrl+R`", "Normal", "Redo last undone change (*)"
":kbd:`zz`", "Normal", "Centre cursor vertically"
":kbd:`h`", "Normal / Visual", "Move left"
":kbd:`j`", "Normal / Visual", "Move down"
":kbd:`k`", "Normal / Visual", "Move up"
":kbd:`l`", "Normal / Visual", "Move right"
":kbd:`d`", "Visual / V-Line", "Delete selection"
":kbd:`x`", "Visual / V-Line", "Delete selection"
":kbd:`y`", "Visual / V-Line", "Yank selection"
.. note::
Shortcuts marked with (*) are remapped when Vim Mode is enabled. These are shortcuts that
usually do other things when Vim Mode is off.
Known Issues
============
* Differing behaviour from vim: :kbd:`j` and :kbd:`k` move by displayed line when a line is
wrapped, like :kbd:`gj` and :kbd:`gk` in vim. All other line commands act on the full line.
* :kbd:`Esc` in normal mode will leave Focus Mode if there is no pending command to cancel.
* Differing behaviour from vim: the :kbd:`e` command behaves a bit differently with regards to the
last character of a word. The behaviour is inconsistent with vim but functional and still logical
to use. The cursor is placed at the end of the word after the last character rather than on the
last character.
.. code-block::
test
^ Cursor placed here in vim
test
^ Cursor placed here in UmbraEdit vim mode
You will only really ever notice this behaviour if you try to combine the :kbd:`e` command with
another. For instance, :kbd:`de` will not delete the last character but delete forward as it
starts one character after the word boundary.

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

View File

@@ -1,92 +1,110 @@
##########
User Guide
##########
#####################
novelWriter |release|
#####################
| **Release Version:** |release|
| **Updated:** |today|
.. only:: html
UmbraEdit is an open source plain text editor designed for writing novels assembled from
individual text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a
meta data syntax for comments, synopsis, and cross-referencing. It is designed to be a simple text
editor that allows for easy organisation of text and notes, using human readable text files as
storage for robustness.
.. image:: https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml/badge.svg?branch=main
:target: https://github.com/vkbo/novelWriter/actions
:alt: Python Tests
.. figure:: images/screenshot_multi.png
:class: dark-light
:align: center
:width: 500
.. image:: https://codecov.io/gh/vkbo/novelWriter/branch/main/graph/badge.svg
:target: https://codecov.io/gh/vkbo/novelWriter
:alt: Code Coverage
.. image:: https://img.shields.io/github/v/release/vkbo/novelwriter
:target: https://github.com/vkbo/novelWriter/releases
:alt: GitHub Release
.. image:: https://img.shields.io/pypi/v/novelwriter
:target: https://pypi.org/project/novelWriter/
:alt: PyPI
.. image:: https://img.shields.io/pypi/pyversions/novelwriter
:target: https://pypi.org/project/novelWriter/
:alt: Python Version
**Last Updated:** |today|
novelWriter is a plain text editor designed for writing novels assembled from many smaller text
documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta data syntax
for comments, synopsis, and cross-referencing. It is designed to be a simple text editor that
allows for easy organisation of text and notes, using human readable text files as storage for
robustness.
The project storage is suitable for version control software, and also well suited for file
synchronisation tools. All text is saved as plain text files with a meta data header. The core
project structure is stored in a single project XML file. Other meta data is primarily saved as
JSON files. See also the :ref:`a_storage` section for more details.
Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run
novelWriter. It runs fine on Linux, Windows and macOS, and users have tested it on other platforms
too. novelWriter can be run directly from the Python source, installed from the pip tool.
You can also download a minimal archive package of novelWriter tailored for your operating system.
This package can be extracted anywhere on your computer, and a setup script can be run to create
the necessary icons and file associations. See the setup instructions for your operating system for
further details.
.. note::
Version 1.5 introduces a few changes that will require you to make a few minor modifications to
some of the headings in your project. It should be fairly quick and straightforward. Please see
the :ref:`a_prjfmt_1_3` section for more details.
**Useful Links**
* Website: https://umbraedit.io
* Documentation: https://docs.umbraedit.io
* Public Releases: https://releases.umbraedit.io
* Internationalisation: https://crowdin.com/project/umbraedit
* Source Code: https://github.com/saga-soft/UmbraEdit
* Source Releases: https://github.com/saga-soft/UmbraEdit/releases
* Issue Tracker: https://github.com/saga-soft/UmbraEdit/issues
* Feature Discussions: https://github.com/saga-soft/UmbraEdit/discussions
* PyPi Project: https://pypi.org/project/UmbraEdit
* Social Media: https://fosstodon.org/@umbraedit
* Website: https://novelwriter.io
* Documentation: https://novelwriter.readthedocs.io
* Source Code: https://github.com/vkbo/novelWriter
* Source Releases: https://github.com/vkbo/novelWriter/releases
* Issue Tracker: https://github.com/vkbo/novelWriter/issues
* Feature Discussions: https://github.com/vkbo/novelWriter/discussions
* PyPi Project: https://pypi.org/project/novelWriter
.. toctree::
:hidden:
:maxdepth: 2
:caption: Introduction
int_introduction
setup_linux
setup_mac
setup_windows
setup_other
self
More Documents <https://umbraedit.io/more/>
.. toctree::
:caption: Getting Started
:hidden:
:maxdepth: 2
:caption: Using novelWriter
usage_interface
usage_format
usage_shortcuts
usage_typography
usage_projectformat
usage/introduction
usage/organising_project
usage/chapters_and_scenes
usage/basic_formatting
usage/comments
usage/tags_and_references
usage/alignment_and_indent
usage/advanced_formatting
usage/front_back_matter
usage/howto
.. toctree::
:caption: The User Interface
:hidden:
:maxdepth: 2
:caption: Organising Your Project
project_overview
project_structure
project_notes
project_export
user_interface/main_window
user_interface/projects
user_interface/editor_viewer
user_interface/split_and_merge
user_interface/manuscript
user_interface/formatting
user_interface/statistics
.. toctree::
:caption: Other Features
:hidden:
:maxdepth: 2
:caption: Under the Hood
features/dialogue
features/story_comments
features/shortcuts
features/vim_mode
tech_storage
tech_tests
.. toctree::
:caption: In-Depth Topics
:hidden:
more/counting
more/typography
more/dictionaries
more/customise
more/handling_errors
more/project_format
Indices and Tables
==================
.. toctree::
:caption: Technical Topics
:hidden:
technical/locations
technical/storage
technical/source
technical/tests
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@@ -0,0 +1,151 @@
.. _a_intro:
************
Introduction
************
novelWriter is a simple, multi-document plain text editor using a markup syntax inspired by
markdown to apply simple formatting to the text. It is designed for writing novels, so the
formatting features are limited.
The idea is to let the user focus on writing instead of spending time messing with the formatting
of headers and text. Therefore you cannot change the look of the text in the editor window.
Instead, you provide formatting tags where they're needed, like for instance which text is a
header, where you want text bolded or italicised, and what alignment you want for paragraphs. The
actual formatting is then added to the text when you run the :guilabel:`Build Novel Project` tool.
A document viewer to the right of the editor can also show a renderred version of any document if
you want to inspect the result, or just want to keep a second document open for reference when
you're writing.
You can split your novel project up into as many individual files as you want to. The files are
glued together when you build the project, in the top-to-bottom order in which they appear in the
project tree. Splitting the project up into chapter and scene files means you can easily reorder
them using the drag and drop feature. More details about how projects are structured is covered in
:ref:`a_struct`.
In addition to novel text documents, the project can contain notes on the various plot elements,
characters, locations, etc, that make up the story. These notes are organised in a set of
category-specific top-level folders referred to as *Root Folders*. Each note can be assigned one or
more tags (one tag is allowed for each heading in the note), and these tags can be referenced from
within the novel documents and other notes.
These tags make it possible to inter-link documents, and you can also generate an overview of the
entire novel project and how the various documents and plot elements are interconnected. The tag
and reference syntax is covered in :ref:`a_proj` and :ref:`a_notes`.
These features are available through special meta keywords described in :ref:`a_struct_tags`.
Syntax highlighting is provided to make it easier to verify that the markdown tags are used
correctly.
An overview of the supported formatting syntax is covered in :ref:`a_ui`.
.. _a_intro_design:
Design Philosophy
=================
The user interface of novelWriter is intended to be as minimalistic as practically possible, while
at the same time provide a complete set of features needed for writing a novel.
.. note::
novelWriter is not intended to be a full office type word processor. It doesn't support images,
links, tables, and other complex structures and objects often needed for such documents.
Formatting is limited to headers, emphasis, text alignment, and a few other simple features.
.. tip::
If you do need to align information in rows and columns in your notes, you can achieve this with
tabs and line breaks. The tab stop width can be specified in :guilabel:`Preferences`.
The main window does not have a toolbar like many other applications do. This reduces clutter, and
since the documents are formatted with style tags, is more or less redundant. However, most
formatting features supported are available through convenient keyboard shortcuts. They are also
available in the main menu so you don't have to look up formatting codes every time you need them.
A full list of shortcuts can be found in the :ref:`a_kb` section.
In addition, novelWriter has a :guilabel:`Focus Mode` where all the user interface elements other
than the document editor itself are hidden away.
The colour scheme of the user interface defaults to that of the host operating system. Some other
light and dark colour themes are provided, and can be enabled in :guilabel:`Preferences` from the
:guilabel:`Tools` menu. A number of syntax highlighting themes are also available in
:guilabel:`Preferences`. A set of icon themes in colour and greyscale are also offered. The icons
are based on the Typicons_ icon set designed by Stephen Hutchings.
The main window is split in two, or optionally three, panels. The left-most panel contains the
project tree and all the documents in your project. The second panel is the document editor. An
optional third panel is a document viewer which can view any document in your project independently
of what is open in the document editor. It is not intended as a preview window, although you can
use it for this. The main purpose of the viewer is for viewing your notes next to your editor
while you're writing.
A second tab is also available on the main window. This is the :guilabel:`Outline` tab where the
entire novel structure can be displayed, with all the tags and references listed. Depending on how
you structure your novel documents, this outline can be quite different from your project tree.
Your project tree lists individual documents, your Outline tree lists the structure of the novel
itself in terms of partitions, chapters and scenes as it appears in the text of those documents.
.. _Typicons: https://github.com/stephenhutchings/typicons.font
.. _a_intro_project:
Project Layout
==============
You are free to organise your project documents as you wish into subfolders, and split the text
between documents in whatever way suits you. All that matters to novelWriter is the linear order
the documents appear at in the project tree (top to bottom). The chapters, scenes and sections of
the novel are determined by the headings within those documents.
The four heading levels (**H1** to **H4**) are treated as follows:
* **H1** is used for the book title, and for partitions.
* **H2** is used for chapter tiles.
* **H3** is used for scene titles – optionally replaced by separators.
* **H4** is for section titles within scenes, if such granularity is needed.
This header level structure is only taken into account for novel documents. For the project notes,
the header levels have no structural meaning, and the user is free to do whatever they want. See
:ref:`a_struct` and :ref:`a_notes` for more details.
.. _a_intro_export:
Project Export
==============
The project can at any time be exported to a range of different formats through the
:guilabel:`Build Novel Project` tool. Natively, novelWriter supports export to Open Document,
HTML5, and various flavours of Markdown.
The HTML5 export format is suitable for conversion by a number of other tools like Pandoc, or for
importing into word processors if the Open Document format isn't suitable. In addition, printing
and printing to PDF is also possible.
You can also export the content of the project to a JSON file. This is useful if you want to write
your own processing script in for instance Python as the entire novel can be read into a Python
dictionary with a couple of lines of code. The JSON file can be populated either with HTML
formatted text, or with the raw text as typed into the novel documents. See :ref:`a_export_options`
for more details.
A number of filter options can be applied to the Build tool, allowing you to export a draft
manuscript, a reference document of notes, an outline based on chapter and scene titles with a
synopsis each, and so on. See :ref:`a_export` for more details on export features and formats.
.. _a_intro_screenshots:
Screenshots
===========
**novelWriter with default system theme:**
.. image:: images/screenshot_default.png
:width: 800
**novelWriter with dark theme:**
.. image:: images/screenshot_dark.png
:width: 800

View File

@@ -1,3 +0,0 @@
[fr]
version = "2.7"
authors = ["Jean-Michel Heras", "Veronica Berglyd Olsen"]

View File

@@ -1,223 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 22:09+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/features/dialogue.rst:5
msgid "Dialogue Highlighting"
msgstr "Mise en évidence du dialogue"
#: ../../source/features/dialogue.rst:7
msgid ""
"Dialogue recognition and colour highlighting is available both while "
"you're writing and in generated manuscript documents."
msgstr ""
"La reconnaissance des dialogues et le surlignage des couleurs sont "
"disponibles à la fois pendant que vous écrivez et dans les documents "
"manuscrits générés."
#: ../../source/features/dialogue.rst:10
msgid ""
"The default language settings in UmbraEdit are for English. That "
"includes the dialogue highlighting settings. But many dialogue styles "
"are supported. You can tune a number of settings to fit your language "
"and style preferences in the \"Text Highlighting\" section in "
"**Preferences**. You can mix and match these settings."
msgstr ""
"Les paramètres linguistiques par défaut de UmbraEdit sont ceux de "
"l'anglais. Cela inclut les paramètres de mise en évidence des dialogues. "
"Mais de nombreux styles de dialogue sont pris en charge. Vous pouvez "
"ajuster un certain nombre de paramètres en fonction de vos préférences "
"linguistiques et stylistiques dans la section « Surlignage du texte » "
"des **Préférences**. Vous pouvez combiner ces paramètres.\n"
"\n"
"Traduit avec DeepL.com (version gratuite)"
#: ../../source/features/dialogue.rst:17
msgid "The **Text Highlighting** section of **Preferences**."
msgstr "La section **Mise en évidence du texte** des **Préférences**."
#: ../../source/features/dialogue.rst:21
msgid "Quoted Dialogue"
msgstr "Dialogue entre guillemets"
#: ../../source/features/dialogue.rst:23
msgid ""
"By default, dialogue highlighting is enabled for the double quote "
"symbols you have defined in the **Quotation Style** section of "
"**Preferences**."
msgstr ""
"Par défaut, la mise en évidence du dialogue est activée pour les "
"symboles de guillemets doubles que vous avez définis dans la section "
"**Style de guillemets** des **Préférences**."
#: ../../source/features/dialogue.rst:28
msgid "The **Quotation Style** section of **Preferences**."
msgstr "La section **Style de guillemets** des **Préférences**."
#: ../../source/features/dialogue.rst:30
msgid ""
"You can change which quote symbols are highlighted by selecting one of "
"\"None\", \"Single\", \"Double\", or \"Both\" from the \"Highlight "
"dialogue\" setting under **Text Highlighting**."
msgstr ""
"Vous pouvez modifier les symboles de guillemets mis en évidence en "
"sélectionnant « Aucun », « Simple », « Double » ou « Les deux » dans le "
"paramètre « Mettre les dialogues en évidence » sous **Surlignage du "
"texte**."
#: ../../source/features/dialogue.rst:33
msgid ""
"You can also enable or disable the \"Allow open-ended dialogue\" setting "
"to allow for the style where multi-paragraph dialogue is not closed "
"until the last paragraph."
msgstr ""
"Vous pouvez également activer ou désactiver le paramètre « Autoriser les "
"dialogues ouverts » pour autoriser le style dans lequel les dialogues à "
"plusieurs paragraphes ne sont pas clos avant le dernier paragraphe."
#: ../../source/features/dialogue.rst:36
msgid "Limitations"
msgstr "Restrictions"
#: ../../source/features/dialogue.rst:38
msgid ""
"Dialogue highlighting for single quotes is difficult to process when the "
"same single quote symbol is also used for apostrophes. There isn't a "
"good solution to this. Your best option in the cases where the "
"highlighting is wrong is to insert an alternative apostrophe symbol "
"instead. See :ref:`docs_more_typographical_symbols_apostrophe` for more "
"details."
msgstr ""
"La mise en évidence du dialogue pour les guillemets simples est "
"difficile à traiter lorsque le même symbole de guillemet simple est "
"également utilisé pour les apostrophes. Il n'existe pas de bonne "
"solution à ce problème. Votre meilleure option dans les cas où la mise "
"en évidence est erronée est d'insérer un symbole d'apostrophe alternatif "
"à la place. Voir :ref:`docs_more_typographical_symbols_apostrophe` pour "
"plus de détails."
#: ../../source/features/dialogue.rst:45
msgid "Alternative Dialogue"
msgstr "Dialogue alternatif"
#: ../../source/features/dialogue.rst:47
msgid ""
"You can use the \"Alternative dialogue symbols\" setting for custom "
"dialogue wrapper symbols. These are highlighted in a different colour "
"than regular dialogue."
msgstr ""
"Vous pouvez utiliser le paramètre « Symboles de dialogue alternatifs » "
"pour les symboles de dialogue personnalisés. Ceux-ci sont mis en "
"évidence dans une couleur différente de celle des dialogues normaux."
#: ../../source/features/dialogue.rst:50
msgid ""
"The intended use case here is if you use an alternative style to "
"distinguish a different style of communication. The feature idea came "
"from a science fiction series where mind-to-mind communication used a "
"different quotation style."
msgstr ""
"Le cas d'utilisation prévu ici est celui où vous utilisez un style "
"alternatif pour distinguer un style de communication différent. L'idée "
"est venue d'une série de science-fiction dans laquelle la communication "
"d'esprit à esprit utilisait un style de citation différent."
#: ../../source/features/dialogue.rst:56
msgid "Dialogue Line Symbols"
msgstr "Symboles des lignes de dialogue"
#: ../../source/features/dialogue.rst:58
msgid ""
"In some languages, a single symbol at the start of a paragraph can "
"indicate that the whole paragraph is dialogue. For instance, this symbol "
"can be a short dash (en dash)."
msgstr ""
"Dans certaines langues, un seul symbole au début d'un paragraphe peut "
"indiquer que tout le paragraphe est un dialogue. Par exemple, ce symbole "
"peut être un tiret demi-cadratin."
#: ../../source/features/dialogue.rst:63
msgid "An example of dialogue starting with a short dash."
msgstr "Exemple de dialogue commençant par un tiret demi-cadratin."
#: ../../source/features/dialogue.rst:65
msgid ""
"You can enable this feature by adding the symbols to the \"Dialogue line "
"symbols\" setting. Multiple symbols are allowed."
msgstr ""
"Vous pouvez activer cette fonction en ajoutant les symboles au paramètre "
"« Symboles de la ligne de dialogue ». Plusieurs symboles sont autorisés."
#: ../../source/features/dialogue.rst:70
msgid "Dialogue with Narrator Break"
msgstr "Dialogue avec incise"
#: ../../source/features/dialogue.rst:72
msgid ""
"The dialogue symbol setting will not detect if the dialogue ends in the "
"paragraph. In some styles there is no way to actually indicate the "
"switch from dialogue to narration; in others there are. These a narrator "
"break symbols are usually dashes. You can select one of the supported "
"dash symbols for narrator breaks. These can be used with any of the "
"above dialogue recognition settings."
msgstr ""
"Le réglage du symbole de dialogue ne détecte pas si le dialogue se "
"termine dans le paragraphe. Dans certains styles, il n'y a aucun moyen "
"d'indiquer le passage du dialogue à la narration ; dans d'autres, il y "
"en a un. Ces symboles de rupture avec le narrateur sont généralement des "
"tirets. Vous pouvez sélectionner l'un des symboles de tirets pris en "
"charge pour les ruptures de narration. Ces symboles peuvent être "
"utilisés avec n'importe lequel des paramètres de reconnaissance de "
"dialogue ci-dessus."
#: ../../source/features/dialogue.rst:79
msgid ""
"An example of dialogue starting with a short dash and a long dash "
"narrator break."
msgstr ""
"Exemple de dialogue commençant par un tiret demi-cadratin, une incise "
"par un tiret cadratin."
#: ../../source/features/dialogue.rst:83
msgid "Alternating Dialogue and Narration"
msgstr "Dialogue et narration alternés"
#: ../../source/features/dialogue.rst:85
msgid ""
"The alternating dialogue and narration style is supported with the "
"\"Alternating dialogue/narration symbol\" setting. It can be set to one "
"of the supported dashes. This style will switch into dialogue mode when "
"it first encounters the selected dash in a paragraph, and switch back "
"out when it sees the next one, and so forth."
msgstr ""
"Le style de dialogue et de narration alternés est pris en charge par le "
"paramètre « Symbole de dialogue/narration alternés ». Il peut être "
"défini sur l'un des tirets pris en charge. Ce style passe en mode "
"dialogue lorsqu'il rencontre pour la première fois le tiret sélectionné "
"dans un paragraphe, et revient en mode dialogue lorsqu'il rencontre le "
"tiret suivant, et ainsi de suite."
#: ../../source/features/dialogue.rst:92
msgid "An example of alternating dialogue and narration using a long dash."
msgstr ""
"Exemple d'alternance de dialogue et de narration à l'aide d'un tiret "
"cadratin."

View File

@@ -1,978 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 22:50+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/features/shortcuts.rst:5
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
#: ../../source/features/shortcuts.rst:7
msgid ""
"Most features in UmbraEdit are available as keyboard shortcuts. This "
"is a reference list of those shortcuts. Most of them are also listed in "
"the application's user interface."
msgstr ""
"La plupart des fonctionnalités de UmbraEdit sont disponibles sous "
"forme de raccourcis clavier. Il s'agit d'une liste de référence de ces "
"raccourcis. La plupart d'entre eux sont également listés dans "
"l'interface utilisateur de l'application."
#: ../../source/features/shortcuts.rst:12
msgid "On MacOS, replace :kbd:`Ctrl` with :kbd:`Cmd`."
msgstr "Sous MacOS, remplacez :kbd:`Ctrl` par :kbd:`Cmd`."
#: ../../source/features/shortcuts.rst:16
msgid "Main Window Shortcuts"
msgstr "Raccourcis de la fenêtre principale"
#: ../../source/features/shortcuts.rst:1
msgid "Shortcut"
msgstr "Raccourci"
#: ../../source/features/shortcuts.rst:1
msgid "Description"
msgstr "Description"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F1`"
msgstr ":kbd:`F1`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the online user manual"
msgstr "Ouvrir le manuel d'utilisation en ligne"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F5`"
msgstr ":kbd:`F5`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the **Build Manuscript** tool"
msgstr "Ouvrir l'outil **Compiler le manuscrit**"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F6`"
msgstr ":kbd:`F6`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the **Writing Statistics** tool"
msgstr "Ouvrir l'outil **Statistiques d'écriture**"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F8`"
msgstr ":kbd:`F8`"
#: ../../source/features/shortcuts.rst:1
msgid "Toggle **Focus Mode**"
msgstr "Basculer **Mode sans distraction**"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F9`"
msgstr ":kbd:`F9`"
#: ../../source/features/shortcuts.rst:1
msgid "Re-build the project's index"
msgstr "Reconstruire l'index du projet"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F11`"
msgstr ":kbd:`F11`"
#: ../../source/features/shortcuts.rst:1
msgid "Toggle full screen mode"
msgstr "Basculer en mode plein écran"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+,`"
msgstr ":kbd:`Ctrl+,`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the **Preferences** dialog"
msgstr "Ouvrir la boîte de dialogue **Préférences**"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+E`"
msgstr ":kbd:`Ctrl+E`"
#: ../../source/features/shortcuts.rst:1
msgid "Switch or toggle focus for the editor or viewer"
msgstr ""
"Changement ou basculement du focus de l'éditeur ou du visualisateur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+T`"
msgstr ":kbd:`Ctrl+T`"
#: ../../source/features/shortcuts.rst:1
msgid "Switch or toggle focus for the project tree or novel view"
msgstr ""
"Changement de focalisation de l'arborescence du projet ou de la vue du "
"roman"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Q`"
msgstr ":kbd:`Ctrl+Q`"
#: ../../source/features/shortcuts.rst:1
msgid "Exit UmbraEdit"
msgstr "Quitter UmbraEdit"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+,`"
msgstr ":kbd:`Ctrl+Maj+,`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the **Project Settings** dialog"
msgstr "Ouvrir la boîte de dialogue **Paramètres du projet**"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+O`"
msgstr ":kbd:`Ctrl+Maj+O`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the Welcome dialog to open or create a project"
msgstr ""
"Ouvrir la boîte de dialogue de bienvenue pour ouvrir ou créer un projet"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+S`"
msgstr ":kbd:`Ctrl+Maj+S`"
#: ../../source/features/shortcuts.rst:1
msgid "Save the current project"
msgstr "Enregistrer le projet en cours"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+T`"
msgstr ":kbd:`Ctrl+Maj+T`"
#: ../../source/features/shortcuts.rst:1
msgid "Switch focus to the outline view"
msgstr "Basculer vers la vue d'ensemble"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+W`"
msgstr ":kbd:`Ctrl+Maj+W`"
#: ../../source/features/shortcuts.rst:1
msgid "Close the current project"
msgstr "Fermer le projet en cours"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Shift+F1`"
msgstr ":kbd:`Maj+F1`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the local user manual (PDF) if it is available"
msgstr "Ouvrir le manuel d'utilisation local (PDF) s'il est disponible"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Shift+F6`"
msgstr ":kbd:`Maj+F6`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the **Project Details** dialog"
msgstr "Ouvrir la boîte de dialogue **Détails du projet**"
#: ../../source/features/shortcuts.rst:41
msgid "Project Tree Shortcuts"
msgstr "Raccourcis de l'arborescence du projet"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F2`"
msgstr ":kbd:`F2`"
#: ../../source/features/shortcuts.rst:1
msgid "Edit the label of the selected item"
msgstr "Modifier le libellé de l'élément sélectionné"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Return`"
msgstr ":kbd:`Retour`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the selected document in the editor"
msgstr "Ouvrir le document sélectionné dans l'éditeur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Alt+Up`"
msgstr ":kbd:`Alt+Haut`"
#: ../../source/features/shortcuts.rst:1
msgid "Jump or go to the previous item at same level in the tree"
msgstr ""
"Sauter ou aller à l'élément précédent au même niveau dans 'l'arborescence"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Alt+Down`"
msgstr ":kbd:`Alt+Bas`"
#: ../../source/features/shortcuts.rst:1
msgid "Jump or go to the next item at same level in the tree"
msgstr ""
"Sauter ou aller à l'élément suivant au même niveau dans l'arborescence"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Alt+Left`"
msgstr ":kbd:`Alt+Gauche`"
#: ../../source/features/shortcuts.rst:1
msgid "Jump to the parent item in the tree"
msgstr "Sauter à l'élément parent dans l'arborescence"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Alt+Right`"
msgstr ":kbd:`Alt+Droite`"
#: ../../source/features/shortcuts.rst:1
msgid "Jump to the first child item in the project tree"
msgstr "Sauter au premier élément enfant dans l'arborescence du projet"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+.`"
msgstr ":kbd:`Ctrl+.`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the context menu on the selected item"
msgstr "Ouvrir le menu contextuel de l'élément sélectionné"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+L`"
msgstr ":kbd:`Ctrl+L`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the **Quick Links** menu"
msgstr "Ouvrir le menu **Liens rapides**"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+N`"
msgstr ":kbd:`Ctrl+N`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the **Create New Item** menu"
msgstr "Ouvrir le menu **Créer un nouvel élément**"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+O`"
msgstr ":kbd:`Ctrl+O`"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+R`"
msgstr ":kbd:`Ctrl+R`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the selected document in the viewer"
msgstr "Ouvrir le document sélectionné dans le visualisateur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Up`"
msgstr ":kbd:`Ctrl+Haut`"
#: ../../source/features/shortcuts.rst:1
msgid "Move selected item one step up in the tree"
msgstr "Déplacer l'élément sélectionné d'un cran dans l'arborescence"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Down`"
msgstr ":kbd:`Ctrl+Bas`"
#: ../../source/features/shortcuts.rst:1
msgid "Move selected item one step down in the tree"
msgstr "Déplacer l'élément sélectionné d'un cran dans l'arborescence"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+Del`"
msgstr ":kbd:`Ctrl+Maj+Suppr`"
#: ../../source/features/shortcuts.rst:1
msgid "Move the selected item to Trash"
msgstr "Déplacer l'élément sélectionné vers la corbeille"
#: ../../source/features/shortcuts.rst:63
msgid "Document Editor Shortcuts"
msgstr "Raccourcis de l'éditeur de documents"
#: ../../source/features/shortcuts.rst:67
msgid "Text Search Shortcuts"
msgstr "Raccourcis de recherche de texte"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F3`"
msgstr ":kbd:`F3`"
#: ../../source/features/shortcuts.rst:1
msgid "Find the next occurrence of the search word"
msgstr "Trouver la prochaine occurrence du mot recherché"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+F`"
msgstr ":kbd:`Ctrl+F`"
#: ../../source/features/shortcuts.rst:1
msgid "Open search and look for the selected word"
msgstr "Ouvrir la recherche et rechercher le mot sélectionné"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+G`"
msgstr ":kbd:`Ctrl+G`"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+H`"
msgstr ":kbd:`Ctrl+H`"
#: ../../source/features/shortcuts.rst:1
msgid "Open replace and look for the selected word (Mac :kbd:`Cmd+=`)"
msgstr ""
"Ouvrir remplacer et rechercher le mot sélectionné (Mac :kbd:`Cmd+=`)"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+1`"
msgstr ":kbd:`Ctrl+Maj+1`"
#: ../../source/features/shortcuts.rst:1
msgid "Replace selected occurrence, and move to the next"
msgstr "Remplacer l'occurrence sélectionnée et passer à la suivante"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+G`"
msgstr ":kbd:`Ctrl+Maj+G`"
#: ../../source/features/shortcuts.rst:1
msgid "Find the previous occurrence of the search word"
msgstr "Trouver l'occurrence précédente du mot recherché"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+F`"
msgstr ":kbd:`Ctrl+Maj+F`"
#: ../../source/features/shortcuts.rst:1
msgid "Open project search and look for the selected word"
msgstr "Ouvrir la recherche de projet et recherchez le mot sélectionné"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Shift+F3`"
msgstr ":kbd:`Maj+F3`"
#: ../../source/features/shortcuts.rst:83
msgid "Text Formatting Shortcuts"
msgstr "Raccourcis de mise en forme du texte"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+'`"
msgstr ":kbd:`Ctrl+'`"
#: ../../source/features/shortcuts.rst:1
msgid "Wrap selected text, or word under cursor, in single quotes"
msgstr ""
"Mettre le texte sélectionné, ou le mot sous le curseur, entre guillemets "
"simples"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+\"`"
msgstr ":kbd:`Ctrl+\"`"
#: ../../source/features/shortcuts.rst:1
msgid "Wrap selected text, or word under cursor, in double quotes"
msgstr ""
"Mettre le texte sélectionné, ou le mot sous le curseur, entre guillemets"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+/`"
msgstr ":kbd:`Ctrl+/`"
#: ../../source/features/shortcuts.rst:1
msgid "Toggle comment format for block or selected text"
msgstr ""
"Modifier le format des commentaires pour le bloc ou le texte sélectionné"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+0`"
msgstr ":kbd:`Ctrl+0`"
#: ../../source/features/shortcuts.rst:1
msgid "Remove format for block or selected text"
msgstr "Supprimer le format d'un bloc ou d'un texte sélectionné"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+1`"
msgstr ":kbd:`Ctrl+1`"
#: ../../source/features/shortcuts.rst:1
msgid "Change block format to heading level 1"
msgstr "Modifier le format du bloc au niveau de titre 1"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+2`"
msgstr ":kbd:`Ctrl+2`"
#: ../../source/features/shortcuts.rst:1
msgid "Change block format to heading level 2"
msgstr "Modifier le format du bloc en titre de niveau 2"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+3`"
msgstr ":kbd:`Ctrl+3`"
#: ../../source/features/shortcuts.rst:1
msgid "Change block format to heading level 3"
msgstr "Modifier le format du bloc en titre de niveau 3"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+4`"
msgstr ":kbd:`Ctrl+4`"
#: ../../source/features/shortcuts.rst:1
msgid "Change block format to heading level 4"
msgstr "Modifier le format du bloc en titre de niveau 4"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+5`"
msgstr ":kbd:`Ctrl+5`"
#: ../../source/features/shortcuts.rst:1
msgid "Change block alignment to left-aligned"
msgstr "Aligner le bloc à gauche"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+6`"
msgstr ":kbd:`Ctrl+6`"
#: ../../source/features/shortcuts.rst:1
msgid "Change block alignment to centred"
msgstr "Aligner le bloc au centre"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+7`"
msgstr ":kbd:`Ctrl+7`"
#: ../../source/features/shortcuts.rst:1
msgid "Change block alignment to right-aligned"
msgstr "Aligner le bloc à droite"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+8`"
msgstr ":kbd:`Ctrl+8`"
#: ../../source/features/shortcuts.rst:1
msgid "Add a left margin to the block"
msgstr "Ajouter une marge gauche au bloc"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+9`"
msgstr ":kbd:`Ctrl+9`"
#: ../../source/features/shortcuts.rst:1
msgid "Add a right margin to the block"
msgstr "Ajouter une marge droite au bloc"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+B`"
msgstr ":kbd:`Ctrl+B`"
#: ../../source/features/shortcuts.rst:1
msgid "Format selected text, or word under cursor, with bold"
msgstr "Formater le texte sélectionné, ou le mot sous le curseur, en gras"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+D`"
msgstr ":kbd:`Ctrl+D`"
#: ../../source/features/shortcuts.rst:1
msgid "Format selected text, or word under cursor, with strike through"
msgstr ""
"Formater le texte sélectionné, ou le mot sous le curseur, en le barrant"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+I`"
msgstr ":kbd:`Ctrl+I`"
#: ../../source/features/shortcuts.rst:1
msgid "Format selected text, or word under cursor, with italic"
msgstr ""
"Formater le texte sélectionné, ou le mot sous le curseur, avec de "
"l'italique"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+/`"
msgstr ":kbd:`Ctrl+Maj+/`"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+D`"
msgstr ":kbd:`Ctrl+Maj+D`"
#: ../../source/features/shortcuts.rst:1
msgid "Toggle ignored text format for block or selected text"
msgstr ""
"Basculer le format de texte ignoré pour le bloc ou le texte sélectionné"
#: ../../source/features/shortcuts.rst:109
msgid "Other Editor Shortcuts"
msgstr "Autres raccourcis de l'éditeur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`F7`"
msgstr ":kbd:`F7`"
#: ../../source/features/shortcuts.rst:1
msgid "Re-run the spell checker on the document"
msgstr "Ré-exécuter le correcteur orthographique sur le document"
#: ../../source/features/shortcuts.rst:1
msgid "Open the context menu at the current cursor location"
msgstr "Ouvrir le menu contextuel à l'emplacement actuel du curseur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+A`"
msgstr ":kbd:`Ctrl+A`"
#: ../../source/features/shortcuts.rst:1
msgid "Select all text in the document"
msgstr "Sélectionner tout le texte dans le document"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+C`"
msgstr ":kbd:`Ctrl+C`"
#: ../../source/features/shortcuts.rst:1
msgid "Copy selected text to clipboard"
msgstr "Copier le texte sélectionné dans le presse-papiers"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`"
msgstr ":kbd:`Ctrl+K`"
#: ../../source/features/shortcuts.rst:1
msgid ""
"Activate the insert commands (see list in :ref:"
"`docs_features_shortcuts_insert`)"
msgstr ""
"Activer les commandes d'insertion (voir la liste dans :ref:"
"`docs_features_shortcuts_insert`)"
#: ../../source/features/shortcuts.rst:1
msgid "Open or reload the current document in the viewer"
msgstr "Ouvrir ou recharger le document en cours dans le visualisateur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+S`"
msgstr ":kbd:`Ctrl+S`"
#: ../../source/features/shortcuts.rst:1
msgid "Save the current document"
msgstr "Enregistrer le document en cours"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+V`"
msgstr ":kbd:`Ctrl+V`"
#: ../../source/features/shortcuts.rst:1
msgid "Paste text from clipboard to cursor position"
msgstr "Coller le texte du presse-papiers à la position du curseur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+W`"
msgstr ":kbd:`Ctrl+W`"
#: ../../source/features/shortcuts.rst:1
msgid "Close the current document"
msgstr "Fermer le document en cours"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+X`"
msgstr ":kbd:`Ctrl+X`"
#: ../../source/features/shortcuts.rst:1
msgid "Cut selected text to clipboard"
msgstr "Couper le texte sélectionné dans le presse-papiers"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Y`"
msgstr ":kbd:`Ctrl+Y`"
#: ../../source/features/shortcuts.rst:1
msgid "Redo latest undo"
msgstr "Rétablir la dernière annulation"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Z`"
msgstr ":kbd:`Ctrl+Z`"
#: ../../source/features/shortcuts.rst:1
msgid "Undo latest changes"
msgstr "Annuler les dernières modifications"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Backspace`"
msgstr ":kbd:`Ctrl+Retour arrière`"
#: ../../source/features/shortcuts.rst:1
msgid "Delete the word before the cursor"
msgstr "Supprimer le mot précédant le curseur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Del`"
msgstr ":kbd:`Ctrl+Suppr`"
#: ../../source/features/shortcuts.rst:1
msgid "Delete the word after the cursor"
msgstr "Supprimer le mot après le curseur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+F7`"
msgstr ":kbd:`Ctrl+F7`"
#: ../../source/features/shortcuts.rst:1
msgid "Toggle spell checking"
msgstr "Vérifier l'orthographe"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Return`"
msgstr ":kbd:`Ctrl+Retour`"
#: ../../source/features/shortcuts.rst:1
msgid "Open the tag or reference under the cursor in the viewer"
msgstr ""
"Ouvrir la balise ou la référence sous le curseur dans le visualiseur"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+A`"
msgstr ":kbd:`Ctrl+Maj+A`"
#: ../../source/features/shortcuts.rst:1
msgid "Select all text in the current paragraph"
msgstr "Sélectionner tout le texte du paragraphe en cours"
#: ../../source/features/shortcuts.rst:136
msgid "Insert Shortcuts"
msgstr "Raccourcis d'insertion"
#: ../../source/features/shortcuts.rst:138
msgid ""
"A set of insert features are also available through shortcuts, but they "
"require a double combination of key sequences. The insert feature is "
"activated with :kbd:`Ctrl+K`, followed by a key or key combination for "
"the inserted content."
msgstr ""
"Un ensemble de fonctions d'insertion sont également disponibles par le "
"biais de raccourcis, mais elles nécessitent une double combinaison de "
"séquences de touches. La fonction d'insertion est activée avec :kbd:"
"`Ctrl+K`, suivi d'une touche ou d'une combinaison de touches pour le "
"contenu inséré."
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Space`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Espace`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a non-breaking space"
msgstr "Insérer un espace insécable"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`_`"
msgstr ":kbd:`Ctrl+K`, :kbd:`_`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a long dash (em dash)"
msgstr "Insérer un tiret long"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`.`"
msgstr ":kbd:`Ctrl+K`, :kbd:`.`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert an ellipsis"
msgstr "Insérer un point de suspension"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`'`"
msgstr ":kbd:`Ctrl+K`, :kbd:`'`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a modifier apostrophe"
msgstr "Insérer une apostrophe"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`*`"
msgstr ":kbd:`Ctrl+K`, :kbd:`*`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a list bullet"
msgstr "Insérer une puce de liste"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`%`"
msgstr ":kbd:`Ctrl+K`, :kbd:`%`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a per mille symbol"
msgstr "Insérer un symbole pour mille"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`~`"
msgstr ":kbd:`Ctrl+K`, :kbd:`~`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a figure dash (same width as a number)"
msgstr "Insérer un tiret (de la même largeur qu'un chiffre)"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`−`"
msgstr ":kbd:`Ctrl+K`, :kbd:`−`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a short dash (en dash)"
msgstr "Insérer un tiret court"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`1`"
msgstr ":kbd:`Ctrl+K`, :kbd:`1`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a left single quote"
msgstr "Insérer un guillemet simple gauche"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`2`"
msgstr ":kbd:`Ctrl+K`, :kbd:`2`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a right single quote"
msgstr "Insérer un guillemet simple à droite"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`3`"
msgstr ":kbd:`Ctrl+K`, :kbd:`3`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a left double quote"
msgstr "Insérer un double guillemet gauche"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`4`"
msgstr ":kbd:`Ctrl+K`, :kbd:`4`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a right double quote"
msgstr "Insérer un double guillemet droit"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`C`"
msgstr ":kbd:`Ctrl+K`, :kbd:`C`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@char`` keyword"
msgstr "Insérer un mot-clé ``@char``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`E`"
msgstr ":kbd:`Ctrl+K`, :kbd:`E`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert an ``@entity`` keyword"
msgstr "Insérer un mot-clé ``@entity``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`F`"
msgstr ":kbd:`Ctrl+K`, :kbd:`F`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@focus`` keyword"
msgstr "Insérer un mot-clé ``@focus``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`G`"
msgstr ":kbd:`Ctrl+K`, :kbd:`G`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@tag`` keyword"
msgstr "Insérer un mot-clé ``@tag``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`H`"
msgstr ":kbd:`Ctrl+K`, :kbd:`H`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a short description comment"
msgstr "Insérer un bref commentaire de description"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`L`"
msgstr ":kbd:`Ctrl+K`, :kbd:`L`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@location`` keyword"
msgstr "Insérer un mot-clé ``@location``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`M`"
msgstr ":kbd:`Ctrl+K`, :kbd:`M`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@mention`` keyword"
msgstr "Insérer un mot-clé ``@mention``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`O`"
msgstr ":kbd:`Ctrl+K`, :kbd:`O`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert an ``@object`` keyword"
msgstr "Insérer un mot-clé ``@object``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`P`"
msgstr ":kbd:`Ctrl+K`, :kbd:`P`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@plot`` keyword"
msgstr "Insérer un mot-clé `@plot``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`S`"
msgstr ":kbd:`Ctrl+K`, :kbd:`S`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a synopsis comment"
msgstr "Insérer un commentaire de synopsis"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`T`"
msgstr ":kbd:`Ctrl+K`, :kbd:`T`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@time`` keyword"
msgstr "Insérer un mot-clé ``@time``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`V`"
msgstr ":kbd:`Ctrl+K`, :kbd:`V`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@pov`` keyword"
msgstr "Insérer un mot-clé ``@pov``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`X`"
msgstr ":kbd:`Ctrl+K`, :kbd:`X`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a ``@custom`` keyword"
msgstr "Insérer un mot-clé ``@custom``"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+Space`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+Espace`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a thin non-breaking space"
msgstr "Insérer un espace fin insécable"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+_`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+_`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a horizontal bar (quotation dash)"
msgstr "Insérer une barre horizontale"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+'`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+'`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a prime"
msgstr "Insérer une prime"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+\"`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+\"`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a double prime"
msgstr "Insérer une double prime"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+*`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+*`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a flower mark (alternative bullet)"
msgstr "Insérer une fleur (puce alternative)"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+−`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+−`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a hyphen bullet (alternative bullet)"
msgstr "Insérer une puce à tiret (puce alternative)"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+D`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+D`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a division sign"
msgstr "Insérer un signe de division"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+O`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+O`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a degree symbol"
msgstr "Insérer un symbole de degré"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+X`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+X`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a times sign"
msgstr "Insert a times sign"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+K`, :kbd:`Shift+Space`"
msgstr ":kbd:`Ctrl+K`, :kbd:`Maj+Espace`"
#: ../../source/features/shortcuts.rst:1
msgid "Insert a thin space"
msgstr "Insérer un espace fin"
#: ../../source/features/shortcuts.rst:183
msgid "Document Viewer Shortcuts"
msgstr "Raccourcis de la fenêtre de visualisation des documents"
#: ../../source/features/shortcuts.rst:1
msgid "Move backward in the view history"
msgstr "Reculer dans l'historique des vues"
#: ../../source/features/shortcuts.rst:1
msgid "Move forward in the view history"
msgstr "Avancer dans l'historique des vues"
#: ../../source/features/shortcuts.rst:1
msgid ":kbd:`Ctrl+Shift+R`"
msgstr ":kbd:`Ctrl+Maj+R`"
#: ../../source/features/shortcuts.rst:1
msgid "Close the document viewer"
msgstr "Fermer l'afficheur de documents"

View File

@@ -1,221 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 22:28+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/features/story_comments.rst:5
msgid "Story Comments"
msgstr "Commentaires sur l'histoire"
#: ../../source/features/story_comments.rst:7
msgid ""
"A special set of comment styles allow for annotating your text with "
"structure information. There are two styles of comments available. They "
"are an extension to regular comments as described in :ref:"
"`docs_usage_comments`."
msgstr ""
"Un ensemble spécial de styles de commentaires permet d'annoter votre "
"texte avec des informations sur la structure. Deux styles de "
"commentaires sont disponibles. Ils sont une extension des commentaires "
"normaux tels que décrits dans :ref:`docs_usage_comments`."
#: ../../source/features/story_comments.rst:15
msgid "Story Structure Comments"
msgstr "Commentaires sur la structure de l'histoire"
#: ../../source/features/story_comments.rst:17
msgid ""
"You can annotate story structure by using the ``%Story`` style of "
"comment. To use the feature, make the first word of a comment ``Story``, "
"followed by a period, a structure term, a colon, a space and the text "
"for that term."
msgstr ""
"Vous pouvez annoter la structure de l'histoire en utilisant le style de "
"commentaire ``%Story``. Pour utiliser cette fonctionnalité, le premier "
"mot du commentaire doit être ``Story``, suivi d'un point, d'un terme de "
"structure, de deux points, d'un espace et du texte correspondant à ce "
"terme."
#: ../../source/features/story_comments.rst:23
#: ../../source/features/story_comments.rst:88
msgid "Usage"
msgstr "Utilisation"
#: ../../source/features/story_comments.rst:25
msgid ""
"The story term can be anything that you want to track in the manuscript. "
"This construct is intended to make it easier to extract metadata from a "
"work to perform a structural analysis of the story."
msgstr ""
"Le terme de l'histoire peut être n'importe quoi que vous voulez suivre "
"dans le manuscrit. Cette construction est destinée à faciliter "
"l'extraction des métadonnées d'une œuvre afin d'effectuer une analyse "
"structurelle de l'histoire."
#: ../../source/features/story_comments.rst:28
msgid ""
"There are probably as many ways to examine story structure as there are "
"authors and editors combined. For this reason the story tag is flexible. "
"You can use any terms you want and track any aspect of the story that "
"serves your purposes."
msgstr ""
"Il y a probablement autant de façons d'examiner la structure d'une "
"histoire qu'il y a d'auteurs et d'éditeurs réunis. C'est la raison pour "
"laquelle l'étiquette « histoire » est flexible. Vous pouvez utiliser les "
"termes de votre choix et suivre tous les aspects de l'histoire qui vous "
"intéressent."
#: ../../source/features/story_comments.rst:32
msgid ""
"An example method has been advanced by Shawn Coyne in *The Story Grid*. "
"This method asserts that a story is composed of \"beats\", and that each "
"beat has an inciting incident, a complication, a crisis, and a "
"resolution. One might capture these elements of a beat where a character "
"overcomes their fear of giving a speech as:"
msgstr ""
"Un exemple de méthode a été proposé par Shawn Coyne dans *The Story "
"Grid*. Cette méthode affirme qu'une histoire est composée de « temps » "
"et que chaque temps comporte un incident déclencheur, une complication, "
"une crise et une résolution. On pourrait saisir les éléments d'un temps "
"où un personnage surmonte sa peur de faire un discours comme suit :"
#: ../../source/features/story_comments.rst:37
#: ../../source/features/story_comments.rst:94
msgid ":bdg-info:`Example`"
msgstr ":bdg-info:`Exemple`"
#: ../../source/features/story_comments.rst:50
msgid ""
"Other analytical models propose tracking a scene's pace, how it affects "
"the mood of the story, or which element(s) of the story's genre are "
"being satisfied. An author can use this mechanism to track any element "
"of a scene. Some examples include time of day, how much time passes in "
"the scene, or even the physical form of a shape-shifting character. If a "
"story involves magic, one could track which wand a main character has in "
"hand. It's up to tha author."
msgstr ""
"D'autres modèles analytiques proposent de suivre le rythme d'une scène, "
"la façon dont il affecte l'ambiance de l'histoire ou les éléments du "
"genre de l'histoire qui sont satisfaits. Un auteur peut utiliser ce "
"mécanisme pour suivre n'importe quel élément d'une scène. Il peut "
"s'agir, par exemple, de l'heure, du temps qui s'écoule dans la scène ou "
"même de la forme physique d'un personnage qui change de forme. Si "
"l'histoire fait appel à la magie, il est possible de savoir quelle "
"baguette le personnage principal tient en main. C'est à l'auteur de "
"décider."
#: ../../source/features/story_comments.rst:56
msgid ""
"When the story and other scene metadata is extracted into a tabular "
"form, it is possible to get a comprehensive overview of the story and to "
"identify possible issues. For example, so many fast-paced scenes without "
"a break that readers might become fatigued or over-stimulated."
msgstr ""
"Lorsque les métadonnées de l'histoire et d'autres scènes sont extraites "
"sous forme de tableau, il est possible d'obtenir une vue d'ensemble de "
"l'histoire et d'identifier les problèmes éventuels. Par exemple, un si "
"grand nombre de scènes au rythme rapide, sans pause, que les lecteurs "
"risquent de se fatiguer ou d'être trop stimulés."
#: ../../source/features/story_comments.rst:62
#: ../../source/features/story_comments.rst:106
msgid "Output"
msgstr "Production"
#: ../../source/features/story_comments.rst:64
msgid ""
"The story structure comments can be included in the manuscript, and are "
"formatted similarly to the synopsis comments:"
msgstr ""
"Les commentaires sur la structure de l'histoire peuvent être inclus dans "
"le manuscrit et sont formatés de la même manière que les commentaires "
"sur le synopsis :"
#: ../../source/features/story_comments.rst:69
msgid "A set of story structure comments as shown in the Manuscript tool."
msgstr ""
"Une série de commentaires sur la structure de l'histoire, tels qu'ils "
"apparaissent dans l'outil Manuscrit."
#: ../../source/features/story_comments.rst:71
msgid ""
"When you export your project data from the Outline View, all story "
"structure terms are added as columns to the exported file, which can "
"then be opened in the spread sheet software of your choice."
msgstr ""
"Lorsque vous exportez les données de votre projet à partir de la vue en "
"plan, tous les termes de la structure du récit sont ajoutés en tant que "
"colonnes au fichier exporté, qui peut ensuite être ouvert dans le "
"logiciel de feuille de calcul de votre choix."
#: ../../source/features/story_comments.rst:76
msgid "Story Notes"
msgstr "Notes sur l'histoire"
#: ../../source/features/story_comments.rst:78
msgid ""
"Story notes are similar to story structure comments, but have no "
"predefined meaning. Essentially they are a generalisation of the story "
"structure comment, and the only point of having this additional format "
"is to allow you do filter them in and out of your manuscript "
"independently."
msgstr ""
"Les notes de récit sont similaires aux commentaires de structure de "
"récit, mais n'ont pas de signification prédéfinie. Il s'agit "
"essentiellement d'une généralisation du commentaire de structure, et le "
"seul intérêt de ce format supplémentaire est de vous permettre de les "
"filtrer dans et hors de votre manuscrit de manière indépendante."
#: ../../source/features/story_comments.rst:82
msgid ""
"You can annotate story notes by using the ``%Note`` style of comment. To "
"use the feature, make the first word of a comment ``Note``, followed by "
"a period, a term, a colon, a space and the text for the note."
msgstr ""
"Vous pouvez annoter les notes d'articles en utilisant le style de "
"commentaire ``%Note``. Pour utiliser cette fonctionnalité, le premier "
"mot du commentaire doit être « Note », suivi d'un point, d'un terme, de "
"deux points, d'un espace et du texte de la note."
#: ../../source/features/story_comments.rst:90
msgid ""
"These notes are free form, but one intended use case is to add "
"consistency annotations to your text to remind yourself where you have "
"described something that must be checked against other parts of your "
"text later on."
msgstr ""
"Ces notes sont libres, mais l'une des utilisations prévues est d'ajouter "
"des annotations de cohérence à votre texte pour vous rappeler où vous "
"avez décrit quelque chose qui doit être vérifié ultérieurement par "
"rapport à d'autres parties de votre texte."
#: ../../source/features/story_comments.rst:108
msgid ""
"Story notes are included in the manuscript in exactly the same way story "
"structure comments are, but has a separate inclusion setting in the "
"build settings. They are also included in CSV exports from the **Outline "
"View**."
msgstr ""
"Les notes de récit sont incluses dans le manuscrit de la même manière "
"que les commentaires sur la structure du récit, mais elles ont un "
"paramètre d'inclusion distinct dans les paramètres de construction. "
"Elles sont également incluses dans les exportations CSV à partir de la "
"**Vue d'ensemble**."

View File

@@ -1,120 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-27 20:56+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/index.rst:32
msgid "More Documents"
msgstr "Plus d'informations"
#: ../../source/index.rst:38
msgid "Getting Started"
msgstr "Pour commencer"
#: ../../source/index.rst:53
msgid "The User Interface"
msgstr "Interface utilisateur"
#: ../../source/index.rst:64
msgid "Other Features"
msgstr "Autres fonctionnalités"
#: ../../source/index.rst:72
msgid "In-Depth Topics"
msgstr "En détail"
#: ../../source/index.rst:82
msgid "Technical Topics"
msgstr "Rubriques techniques"
#: ../../source/index.rst:3
msgid "User Guide"
msgstr "Guide d'utilisation"
#: ../../source/index.rst:5
msgid "**Release Version:** |release|"
msgstr "**Version :** |release|"
#: ../../source/index.rst:6
msgid "**Updated:** |today|"
msgstr "**Mise à jour :** |today|"
#: ../../source/index.rst:8
msgid ""
"UmbraEdit is an open source plain text editor designed for writing "
"novels assembled from individual text documents. It uses a minimal "
"formatting syntax inspired by Markdown, and adds a meta data syntax for "
"comments, synopsis, and cross-referencing. It is designed to be a simple "
"text editor that allows for easy organisation of text and notes, using "
"human readable text files as storage for robustness."
msgstr ""
"UmbraEdit est un éditeur de texte brut open source conçu pour écrire "
"des romans assemblés à partir de documents texte individuels. Il utilise "
"une syntaxe de formatage minimale inspirée de Markdown, et ajoute une "
"syntaxe de métadonnées pour les commentaires, les synopsis et les "
"références croisées. Il est conçu pour être un éditeur de texte simple "
"qui permet d'organiser facilement le texte et les notes, en utilisant des "
"fichiers texte lisibles par l'homme comme stockage pour plus de "
"robustesse."
#: ../../source/index.rst:19
msgid "**Useful Links**"
msgstr "**Liens utiles**"
#: ../../source/index.rst:21
msgid "Website: https://umbraedit.io"
msgstr "Site web : https://umbraedit.io"
#: ../../source/index.rst:22
msgid "Documentation: https://docs.umbraedit.io"
msgstr "Documentation: https://docs.umbraedit.io"
#: ../../source/index.rst:23
msgid "Public Releases: https://releases.umbraedit.io"
msgstr "Public Releases: https://releases.umbraedit.io"
#: ../../source/index.rst:24
msgid "Internationalisation: https://crowdin.com/project/umbraedit"
msgstr "Internationalisation: https://crowdin.com/project/umbraedit"
#: ../../source/index.rst:25
msgid "Source Code: https://github.com/saga-soft/UmbraEdit"
msgstr "Code source : https://github.com/saga-soft/UmbraEdit"
#: ../../source/index.rst:26
msgid "Source Releases: https://github.com/saga-soft/UmbraEdit/releases"
msgstr "Source Releases: https://github.com/saga-soft/UmbraEdit/releases"
#: ../../source/index.rst:27
msgid "Issue Tracker: https://github.com/saga-soft/UmbraEdit/issues"
msgstr "Issue Tracker: https://github.com/saga-soft/UmbraEdit/issues"
#: ../../source/index.rst:28
msgid "Feature Discussions: https://github.com/saga-soft/UmbraEdit/discussions"
msgstr "Feature Discussions: https://github.com/saga-soft/UmbraEdit/discussions"
#: ../../source/index.rst:29
msgid "PyPi Project: https://pypi.org/project/UmbraEdit"
msgstr "PyPi Project: https://pypi.org/project/UmbraEdit"
#: ../../source/index.rst:30
msgid "Social Media: https://fosstodon.org/@umbraedit"
msgstr "Social Media: https://fosstodon.org/@umbraedit"

View File

@@ -1,321 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 23:00+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/more/counting.rst:5
msgid "Word and Text Counts"
msgstr "Décompte des mots et des textes"
#: ../../source/more/counting.rst:7
msgid ""
"This is an overview of how words and other counts of your text are performed. "
"The counting rules should be relatively standard, and are comparable to Libre "
"Office Writer rules."
msgstr ""
"Il s'agit d'une vue d'ensemble de la manière dont les mots et autres comptages "
"de votre texte sont effectués. Les règles de comptage devraient être "
"relativement standard, et sont comparables aux règles de Libre Office Writer."
#: ../../source/more/counting.rst:10
msgid ""
"The counts provided in the app on the raw text are meant to be approximate. For "
"more accurate counts, you need to build your manuscript in the **Manuscript "
"Tool** and check the counts on the generated preview."
msgstr ""
"Les décomptes fournis dans l'application sur le texte brut sont approximatifs. "
"Pour des décomptes plus précis, vous devez compiler votre manuscrit avec "
"**Compiler le manuscrit** et vérifier les décomptes sur l'aperçu généré."
#: ../../source/more/counting.rst:16
msgid "Text Word Counts and Stats"
msgstr "Décompte des mots du texte et statistiques"
#: ../../source/more/counting.rst:18
msgid ""
"These are the rules for the main counts available for for each document in a "
"project."
msgstr ""
"Il s'agit des règles relatives aux principaux décomptes disponibles pour chaque "
"document d'un projet."
#: ../../source/more/counting.rst:20
msgid "For all counts, the following rules apply."
msgstr "Pour tous les décomptes, les règles suivantes s'appliquent."
#: ../../source/more/counting.rst:22 ../../source/more/counting.rst:56
msgid "Short (–) and long (—) dashes are considered word separators."
msgstr ""
"Les tirets demi-cadratin (–) et cadratin (—) sont considérés comme des "
"séparateurs de mots."
#: ../../source/more/counting.rst:23
msgid "Any line starting with ``%`` or ``@`` is ignored."
msgstr "Toute ligne commençant par ``%`` ou ``@`` est ignorée."
#: ../../source/more/counting.rst:24
msgid "Trailing white spaces are ignored, including line breaks."
msgstr ""
"Les espaces blancs de fin de ligne sont ignorés, y compris les sauts de ligne."
#: ../../source/more/counting.rst:25
msgid "Leading ``>`` and trailing ``<`` are ignored with any spaces next to them."
msgstr ""
"Les ``>`` de début et les ``<`` de fin sont ignorés, de même que les espaces "
"qui les accompagnent."
#: ../../source/more/counting.rst:26
msgid ""
"Valid shortcodes and other commands wrapped in brackets ``[]`` are ignored."
msgstr ""
"Les shortcodes valides et les autres commandes entre crochets ``[]`` sont "
"ignorés."
#: ../../source/more/counting.rst:27
msgid "In-line Markdown syntax in text paragraphs is treated as part of the text."
msgstr ""
"La syntaxe Markdown en ligne dans les paragraphes de texte est traitée comme "
"faisant partie du texte."
#: ../../source/more/counting.rst:29
msgid ""
"After the above preparation of the text, the following counts are available."
msgstr "Après la préparation du texte, les chiffres suivants sont disponibles."
#: ../../source/more/counting.rst:31
msgid "**Character Count**"
msgstr "**Décompte des caractères**"
#: ../../source/more/counting.rst:32
msgid ""
"The character count is the sum of characters per line, including leading and in-"
"text white space characters, but excluding trailing white space characters. "
"Shortcodes in the text are not included, but Markdown codes are. Only headings "
"and text are counted."
msgstr ""
"Le nombre de caractères est la somme des caractères par ligne, y compris les "
"caractères d'en-tête et les caractères d'espacement dans le texte, mais pas les "
"caractères d'espacement de fin. Les Shortcodes dans le texte ne sont pas "
"inclus, mais les codes Markdown le sont. Seuls les en-têtes et le texte sont "
"pris en compte."
#: ../../source/more/counting.rst:36
msgid "**Word Count**"
msgstr "**Décompte des mots**"
#: ../../source/more/counting.rst:37
msgid ""
"The words count is the sum of blocks of continuous character per line separated "
"by any number of white space characters or dashes. Only headings and text are "
"counted."
msgstr ""
"Le nombre de mots est la somme des blocs de caractères continus par ligne, "
"séparés par un nombre quelconque de caractères d'espacement ou de tirets. Seuls "
"les titres et le texte sont comptés."
#: ../../source/more/counting.rst:40
msgid "**Paragraph Count**"
msgstr "**Décompte des paragraphes**"
#: ../../source/more/counting.rst:41
msgid ""
"The paragraph count is the number of text blocks separated by one or more empty "
"line. A line consisting only of white spaces is considered empty."
msgstr ""
"Le nombre de paragraphes est le nombre de blocs de texte séparés par une ou "
"plusieurs lignes vides. Une ligne constituée uniquement d'espaces blancs est "
"considérée comme vide."
#: ../../source/more/counting.rst:46
msgid "Manuscript Counts"
msgstr "Décompte du manuscrit"
#: ../../source/more/counting.rst:48
msgid ""
"These are the rules for the counts available for a manuscript in the "
"**Manuscript Tool**. The rules have been tuned to agree with LibreOffice "
"Writer, but will vary slightly depending on the content of your text. "
"LibreOffice Writer also counts the text in the page header, which the "
"**Manuscript Tool** does not."
msgstr ""
"Voici les règles pour les décomptes disponibles pour un manuscrit dans l'outil "
"**Outil Manuscrit**. Les règles ont été ajustées pour correspondre à "
"LibreOffice Writer, mais varieront légèrement en fonction du contenu de votre "
"texte. LibreOffice Writer compte également le texte dans l'en-tête de la page, "
"ce que ne fait pas l'outil **Outil Manuscrit**."
#: ../../source/more/counting.rst:53
msgid ""
"The content of each line is counted after all formatting has been processed, so "
"the result will be more accurate than the counts for text documents elsewhere "
"in the app. The following rules apply:"
msgstr ""
"Le contenu de chaque ligne est compté après le traitement de toutes les mises "
"en forme, de sorte que le résultat sera plus précis que les décomptes pour les "
"documents textuels dans d'autres parties de l'application. Les règles suivantes "
"s'appliquent :"
#: ../../source/more/counting.rst:57
msgid ""
"Leading and trailing white spaces are generally included, but paragraph breaks "
"are not."
msgstr ""
"Les espaces blancs de début et de fin sont généralement inclus, mais les sauts "
"de paragraphe ne le sont pas."
#: ../../source/more/counting.rst:58
msgid "Hard line breaks within paragraph are considered white space characters."
msgstr ""
"Les retours à la ligne dans un paragraphe sont considérés comme des caractères "
"d'espacement."
#: ../../source/more/counting.rst:59
msgid ""
"All formatting codes are ignored, including shortcodes, commands and Markdown."
msgstr ""
"Tous les codes de formatage sont ignorés, y compris les shortcodes, les "
"commandes et Markdown."
#: ../../source/more/counting.rst:60
msgid "Scene and section separators are counted."
msgstr "Les séparateurs de scène et de section sont pris en compte."
#: ../../source/more/counting.rst:61
msgid "Comments and meta data lines are counted after they are formatted."
msgstr ""
"Les lignes de commentaires et de métadonnées sont comptées après leur mise en "
"forme."
#: ../../source/more/counting.rst:62
msgid "Headers are counted after they are formatted with custom formats."
msgstr ""
"Les en-têtes sont comptés après avoir été formatés avec des formats "
"personnalisés."
#: ../../source/more/counting.rst:64
msgid "The following counts are available:"
msgstr "Les décomptes suivants sont disponibles :"
#: ../../source/more/counting.rst:66
msgid "**Headings**"
msgstr "**En-têtes**"
#: ../../source/more/counting.rst:67
msgid "The number of headings in the manuscript."
msgstr "Le nombre d'entêtes dans le manuscrit."
#: ../../source/more/counting.rst:69
msgid "**Paragraphs**"
msgstr "**Paragraphes**"
#: ../../source/more/counting.rst:70
msgid "The number of body text paragraphs in the manuscript."
msgstr "Le nombre de paragraphes dans le manuscrit."
#: ../../source/more/counting.rst:72
msgid "**Words**"
msgstr "**Mots**"
#: ../../source/more/counting.rst:73
msgid ""
"The number of words in the manuscript, including any comments and meta data "
"text."
msgstr ""
"Le nombre de mots du manuscrit, y compris les commentaires et les métadonnées."
#: ../../source/more/counting.rst:75
msgid "**Words in Text**"
msgstr "**Mots dans le texte**"
#: ../../source/more/counting.rst:76
msgid "The number of words in body text paragraphs, excluding all other text."
msgstr "Nombre de mots dans les paragraphes, à l'exclusion de tout autre texte."
#: ../../source/more/counting.rst:78
msgid "**Words in Headings**"
msgstr "**Mots dans les entêtes**"
#: ../../source/more/counting.rst:79
msgid ""
"The number of words in headings, including inserted formatting like chapter "
"numbers, etc."
msgstr ""
"Le nombre de mots dans les entêtes, y compris le formatage inséré comme les "
"numéros de chapitre, etc."
#: ../../source/more/counting.rst:81
msgid "**Characters**"
msgstr "**Caractères**"
#: ../../source/more/counting.rst:82
msgid ""
"The number of characters in all lines, including any comments and meta data "
"text. Paragraph breaks are not counted, but in-paragraph hard line breaks are."
msgstr ""
"Le nombre de caractères de toutes les lignes, y compris les commentaires et le "
"texte des métadonnées. Les sauts de paragraphe ne sont pas comptés, mais les "
"sauts de ligne dans les paragraphes le sont."
#: ../../source/more/counting.rst:85
msgid "**Character in Text**"
msgstr "**Caractères dans le texte**"
#: ../../source/more/counting.rst:86
msgid ""
"The number of characters in body text paragraphs. Paragraph breaks are not "
"counted, but in-paragraph hard line breaks are."
msgstr ""
"Nombre de caractères dans les paragraphes. Les sauts de paragraphe ne sont pas "
"comptés, mais les sauts de ligne dans les paragraphes le sont."
#: ../../source/more/counting.rst:89
msgid "**Characters in Headings**"
msgstr "**Caractères dans les entêtes**"
#: ../../source/more/counting.rst:90
msgid "The number of characters in headings."
msgstr "Le nombre de caractères dans les en-têtes."
#: ../../source/more/counting.rst:92
msgid "**Character in Text, No Spaces**"
msgstr "**Caractères dans le texte, sans les espaces**"
#: ../../source/more/counting.rst:93
msgid ""
"The number of characters in body text paragraphs considered part of a word or "
"punctuation. That is, white space characters are not counted."
msgstr ""
"Le nombre de caractères dans les paragraphes considérés comme faisant partie "
"d'un mot ou d'une ponctuation. En d'autres termes, les caractères d'espacement "
"ne sont pas pris en compte."
#: ../../source/more/counting.rst:96
msgid "**Character in Headings, No Spaces**"
msgstr "**Caractères dans les en-têtes, sans les espaces**"
#: ../../source/more/counting.rst:97
msgid ""
"The number of characters in headings considered part of a word or punctuation. "
"That is, white space characters are not counted."
msgstr ""
"Le nombre de caractères dans les en-têtes considérés comme faisant partie d'un "
"mot ou de la ponctuation. En d'autres termes, les caractères d'espacement ne "
"sont pas pris en compte."

View File

@@ -1,359 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 11:05+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/more/customise.rst:5
msgid "Customisations"
msgstr "Personnalisations"
#: ../../source/more/customise.rst:10
msgid ""
"There are a few ways you can customise UmbraEdit yourself. Currently, "
"you can add new GUI themes, your own syntax themes, and install additional "
"dictionaries."
msgstr ""
"Vous pouvez personnaliser UmbraEdit de plusieurs façons. Actuellement, "
"vous pouvez ajouter de nouveaux thèmes d'interface graphique, vos propres "
"thèmes de syntaxe et installer des dictionnaires supplémentaires."
#: ../../source/more/customise.rst:17
msgid "Spell Check Dictionaries"
msgstr "Dictionnaires de vérification orthographique"
#: ../../source/more/customise.rst:19
msgid ""
"UmbraEdit uses Enchant_ as the spell checking tool. Depending on your "
"operating system, it may or may not load all installed spell check "
"dictionaries automatically."
msgstr ""
"UmbraEdit utilise Enchant_ comme outil de vérification orthographique. "
"Selon votre système d'exploitation, il peut ou non charger automatiquement "
"tous les dictionnaires de vérification orthographique installés."
#: ../../source/more/customise.rst:24
msgid "Linux and MacOS"
msgstr "Linux et MacOS"
#: ../../source/more/customise.rst:26
msgid ""
"On Linux and MacOS, you generally only have to install hunspell, aspell or "
"myspell dictionaries on your system like you do for other applications. "
"See your distro or OS documentation for how to do this. These dictionaries "
"should show up as available spell check languages in UmbraEdit."
msgstr ""
"Sous Linux et MacOS, il vous suffit généralement d'installer les "
"dictionnaires hunspell, aspell ou myspell sur votre système, comme vous le "
"faites pour d'autres applications. Consultez la documentation de votre "
"distro ou de votre système d'exploitation pour savoir comment procéder. "
"Ces dictionnaires devraient apparaître comme des langues de vérification "
"orthographique disponibles dans UmbraEdit."
#: ../../source/more/customise.rst:32
msgid "Windows"
msgstr "Windows"
#: ../../source/more/customise.rst:34
msgid ""
"For Windows, English is included with the installation. For other "
"languages you have to download and add dictionaries yourself."
msgstr ""
"Pour Windows, l'anglais est inclus dans l'installation. Pour les autres "
"langues, vous devez télécharger et ajouter les dictionnaires vous-même."
#: ../../source/more/customise.rst:37
msgid "**Install Tool**"
msgstr "**Outil d'installation**"
#: ../../source/more/customise.rst:39
msgid ""
"A small tool to assist with this can be found under **Tools > Add "
"Dictionaries**. It will import spell checking dictionaries from Free "
"Office or Libre Office extensions. The dictionaries are then installed in "
"the install location for the Enchant library and should thus work for any "
"application that uses Enchant for spell checking."
msgstr ""
"Un petit outil pour vous aider se trouve sous **Outils > Ajouter des "
"dictionnaires**. Il importera des dictionnaires de vérification "
"orthographique à partir des extensions Free Office ou Libre Office. Les "
"dictionnaires sont alors installés dans l'emplacement d'installation de la "
"bibliothèque Enchant et devraient donc fonctionner pour toute application "
"qui utilise Enchant pour la vérification orthographique."
#: ../../source/more/customise.rst:44
msgid "**Manual Install**"
msgstr "**Installation manuelle**"
#: ../../source/more/customise.rst:46
msgid ""
"If you prefer to do this manually or want to use a different source than "
"the ones mentioned above, You need to get compatible dictionary files for "
"your language. You need two files files ending with ``.aff`` and ``.dic``. "
"These files must then be copied to the following location:"
msgstr ""
"Si vous préférez le faire manuellement ou si vous voulez utiliser une "
"source différente de celles mentionnées ci-dessus, vous devez obtenir des "
"fichiers de dictionnaires compatibles avec votre langue. Vous avez besoin "
"de deux fichiers se terminant par ``.aff`` et ``.dic``. Ces fichiers "
"doivent ensuite être copiés à l'emplacement suivant :"
#: ../../source/more/customise.rst:50
msgid "``C:\\Users\\<USER>\\AppData\\Local\\enchant\\hunspell``"
msgstr "``C:\\Users\\<USER>\\AppData\\Local\\enchant\\hunspell``"
#: ../../source/more/customise.rst:52
msgid ""
"This assumes your user profile is stored at ``C:\\Users\\<USER>``. The "
"last one or two folders may not exist, so you may need to create them."
msgstr ""
"Cela suppose que votre profil d'utilisateur est stocké dans ``C:"
"\\Users\\<USER>``. Le dernier ou les deux derniers dossiers peuvent ne pas "
"exister, vous devrez donc les créer."
#: ../../source/more/customise.rst:55
msgid "You can find the various dictionaries on the `Free Desktop`_ website."
msgstr ""
"Vous pouvez trouver les différents dictionnaires sur le site web `Free "
"Desktop`_."
#: ../../source/more/customise.rst:58
msgid ""
"The Free Desktop link points to a repository, and what may look like file "
"links inside the dictionary folder are actually links to web pages. If you "
"right-click and download those, you get HTML files, not dictionaries!"
msgstr ""
"Le lien Free Desktop pointe vers un référentiel, et ce qui peut ressembler "
"à des liens de fichiers à l'intérieur du dossier du dictionnaire sont en "
"fait des liens vers des pages web. Si vous cliquez avec le bouton droit de "
"la souris et que vous les téléchargez, vous obtiendrez des fichiers HTML, "
"pas des dictionnaires !"
#: ../../source/more/customise.rst:62
msgid ""
"In order to download the actual dictionary files, right-click the "
"\"plain\" label at the end of each line and download that."
msgstr ""
"Pour télécharger les fichiers du dictionnaire, cliquez avec le bouton "
"droit de la souris sur l'étiquette « plain » à la fin de chaque ligne et "
"téléchargez-la."
#: ../../source/more/customise.rst:69
msgid "Syntax and GUI Themes"
msgstr "Syntaxe et thèmes de l'interface graphique"
#: ../../source/more/customise.rst:71
msgid ""
"Adding your own GUI and syntax themes is relatively easy, although it "
"requires that you manually edit config files with colour values. The "
"themes are defined by simple plain text config files with meta data and "
"colour settings."
msgstr ""
"L'ajout de vos propres thèmes d'interface graphique et de syntaxe est "
"relativement facile, bien qu'il soit nécessaire d'éditer manuellement les "
"fichiers de configuration avec les valeurs de couleur. Les thèmes sont "
"définis par de simples fichiers de configuration en texte brut contenant "
"des métadonnées et des paramètres de couleur."
#: ../../source/more/customise.rst:75
msgid ""
"In order to make your own versions, first copy one of the existing files "
"to your local computer and modify it as you like."
msgstr ""
"Pour créer vos propres versions, copiez d'abord l'un des fichiers "
"existants sur votre ordinateur local et modifiez-le à votre guise."
#: ../../source/more/customise.rst:78
msgid ""
"The existing syntax themes are stored in `umbraedit/assets/syntax "
"<https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/"
"syntax>`_."
msgstr ""
"Les thèmes syntaxiques existants sont stockés dans `umbraedit/assets/"
"syntax <https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/"
"syntax>`_."
#: ../../source/more/customise.rst:80
msgid ""
"The existing GUI themes are stored in `umbraedit/assets/themes <https://"
"github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/themes>`_."
msgstr ""
"Les thèmes GUI existants sont stockés dans `umbraedit/assets/themes "
"<https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/"
"themes>`_."
#: ../../source/more/customise.rst:82
msgid ""
"The existing icon themes are stored in `umbraedit/assets/icons <https://"
"github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/icons>`_."
msgstr ""
"Les thèmes d'icônes existants sont stockés dans `umbraedit/assets/icons "
"<https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/icons>`_."
#: ../../source/more/customise.rst:85
msgid ""
"Remember to also change the name of your theme by modifying the ``name`` "
"setting at the top of the file, otherwise you may not be able to "
"distinguish them in **Preferences**."
msgstr ""
"N'oubliez pas de changer également le nom de votre thème en modifiant le "
"paramètre ``name`` en haut du fichier, sinon vous ne pourrez pas les "
"distinguer dans les **Préférences**."
#: ../../source/more/customise.rst:88
msgid ""
"For UmbraEdit to be able to locate the custom theme files, you must copy "
"them to the :ref:`docs_technical_locations_data` location in your home or "
"user area. There should be a folder there named ``syntax`` for syntax "
"themes, just ``themes`` for GUI themes, and ``icons`` for icon themes. "
"These folders are created the first time you start UmbraEdit."
msgstr ""
"Pour que UmbraEdit puisse localiser les fichiers de thèmes "
"personnalisés, vous devez les copier dans l'emplacement :ref:"
"`docs_technical_locations_data` dans votre espace personnel ou "
"utilisateur. Il devrait y avoir un dossier nommé ``syntax`` pour les "
"thèmes de syntaxe, juste ``themes`` pour les thèmes GUI, et ``icons`` pour "
"les thèmes d'icônes. Ces dossiers sont créés la première fois que vous "
"démarrez UmbraEdit.\n"
"\n"
"Traduit avec DeepL.com (version gratuite)"
#: ../../source/more/customise.rst:93
msgid ""
"Once the files are copied there, they should show up in **Preferences** "
"with the label you set as ``name`` inside the file."
msgstr ""
"Une fois les fichiers copiés, ils devraient apparaître dans les "
"**Préférences** avec le nom que vous avez défini dans le fichier."
#: ../../source/more/customise.rst:98
msgid ""
"The theme file formats change regularly in new releases. It is up to you "
"to keep custom theme files up to date."
msgstr ""
"Les formats des fichiers de thème changent régulièrement dans les "
"nouvelles versions. C'est à vous qu'il incombe de mettre à jour les "
"fichiers des thèmes personnalisés."
#: ../../source/more/customise.rst:103
msgid "Custom GUI and Icons Theme"
msgstr "Thème d'interface graphique et d'icônes personnalisé"
#: ../../source/more/customise.rst:105
msgid "A GUI theme ``.conf`` file consists of the following settings:"
msgstr ""
"Le fichier ``.conf`` d'un thème GUI est constitué des paramètres suivants :"
#: ../../source/more/customise.rst:159
msgid "In the Main section you must at least define the ``name`` settings."
msgstr ""
"Dans la section Main, vous devez au moins définir les paramètres ``name``."
#: ../../source/more/customise.rst:161
msgid ""
"The Palette values correspond to the Qt enum values for ``QPalette::"
"ColorRole``, see the `Qt documentation <https://doc.qt.io/qt-6/qpalette."
"html#ColorRole-enum>`_ for more details. The colour values are RGB numbers "
"on the format ``r, g, b`` where each is an integer from ``0`` to ``255``. "
"Omitted values are not loaded and will use default values. If the "
"``helptext`` colour is not defined, it is computed as a colour between the "
"``window`` and ``windowtext`` colour. Additional shades of some of the "
"colours are also computed. These are mainly used for 3D effects."
msgstr ""
"Les valeurs de la palette correspondent aux valeurs de l'enum Qt pour "
"``QPalette::ColorRole``, voir la documentation Qt <https://doc.qt.io/qt-6/"
"qpalette.html#ColorRole-enum>`_ pour plus de détails. Les valeurs de "
"couleur sont des nombres RVB au format ``r, g, b`` où chacun est un entier "
"de ``0`` à ``255``. Les valeurs omises ne sont pas chargées et utilisent "
"les valeurs par défaut. Si la couleur ``helptext`` n'est pas définie, elle "
"est calculée comme une couleur comprise entre les couleurs ``window`` et "
"``windowtext``. Des nuances supplémentaires de certaines couleurs sont "
"également calculées. Elles sont principalement utilisées pour les effets "
"3D."
#: ../../source/more/customise.rst:168
msgid "The ``fadedtext`` and ``errortext`` theme colour entries were added."
msgstr ""
"Les entrées de couleur des thèmes ``fadedtext`` et ``errortext`` ont été "
"ajoutées."
#: ../../source/more/customise.rst:171
msgid ""
"The ``icontheme`` setting was dropped as the icon theme is now its own "
"setting. The ``[Icons]`` and ``[Project]`` sections were added, and the "
"``status*`` settings removed."
msgstr ""
"Le paramètre ``icontheme`` a été supprimé car le thème des icônes a "
"maintenant son propre paramètre. Les sections ``[Icons]`` et ``[Project]`` "
"ont été ajoutées, et le paramètre ``status*`` a été supprimé."
#: ../../source/more/customise.rst:177
msgid "Custom Syntax Theme"
msgstr "Syntaxe des thèmes personnalisés"
#: ../../source/more/customise.rst:179
msgid "A syntax theme ``.conf`` file consists of the following settings:"
msgstr ""
"Un fichier ``.conf`` de thème est constitué des paramètres suivants :"
#: ../../source/more/customise.rst:213
msgid ""
"In the Main section, you must define at least the ``name`` setting. The "
"Syntax colour values are RGB(A) numbers of the format ``r, g, b, a`` where "
"each is an integer from ``0`` to ``255``. The fourth value is the alpha "
"channel, which can be omitted."
msgstr ""
"Dans la section Main, vous devez définir au moins le paramètre ``name``. "
"Les valeurs de couleur de la syntaxe sont des nombres RVB(A) du format "
"``r, g, b, a`` où chacun est un entier de ``0`` à ``255``. La quatrième "
"valeur est le canal alpha, qui peut être omis."
#: ../../source/more/customise.rst:217
msgid ""
"Omitted syntax colours default to black, except ``background`` which "
"defaults to white, and ``texthighlight`` which defaults to white with half "
"transparency."
msgstr ""
"Les couleurs omises dans la syntaxe prennent par défaut la couleur noire, "
"à l'exception de ``background`` qui prend par défaut la couleur blanche, "
"et de ``texthighlight`` qui prend par défaut la couleur blanche avec une "
"demi-transparence."
#: ../../source/more/customise.rst:220
msgid "The ``shortcode`` syntax colour entry was added."
msgstr "Le paramètre de couleur ``shortcode`` a été ajouté."
#: ../../source/more/customise.rst:223
msgid "The ``optional`` syntax colour entry was added."
msgstr "Le paramètre de couleur ``optional`` a été ajouté."
#: ../../source/more/customise.rst:226
msgid "The ``texthighlight`` syntax colour entry was added."
msgstr "Le paramètre de couleur ``texthighlight`` a été ajouté."
#: ../../source/more/customise.rst:229
msgid ""
"The ``dialog``, ``altdialog``, ``note`` and ``tag`` syntax colour entries "
"were added. ``straightquotes``, ``doublequotes`` and ``singlequotes`` were "
"removed."
msgstr ""
"Les paramètres de couleur ``dialog``, ``altdialog``, ``note`` et ``tag`` "
"ont été ajoutés. Les paramètres ``guillemets droits``, ``guillemets "
"doubles`` et ``guillemets simples`` ont été supprimés."

View File

@@ -1,159 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 11:11+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/more/handling_errors.rst:5
msgid "Handling Errors"
msgstr "Traitement des erreurs"
#: ../../source/more/handling_errors.rst:7
msgid ""
"In case something goes wrong, UmbraEdit has a few built-in features to "
"reduce the chance your work is lost. In case of a crash, it will also "
"try to save whatever changes you have made before exiting, if this is at "
"all possible."
msgstr ""
"En cas de problème, UmbraEdit dispose de quelques fonctions intégrées "
"pour réduire le risque de perte de votre travail. En cas de panne, il "
"essaiera également d'enregistrer les modifications que vous avez "
"apportées avant de quitter, si cela est possible."
#: ../../source/more/handling_errors.rst:11
msgid ""
"The storage solution is designed to save each text document "
"independently, so only the document you're working on is actually at a "
"risk of losing data in the event of a crash."
msgstr ""
"La solution de stockage est conçue pour sauvegarder chaque document "
"texte indépendamment, de sorte que seul le document sur lequel vous "
"travaillez risque de perdre des données en cas de panne."
#: ../../source/more/handling_errors.rst:18
msgid "Recovered Documents"
msgstr "Documents récupérés"
#: ../../source/more/handling_errors.rst:20
msgid ""
"If UmbraEdit crashes or otherwise exits without saving the project "
"state, or if you're using a file synchronisation tool that runs out of "
"sync, there may be files in the project storage folder that aren't "
"tracked in the core project file. These files, when discovered, are "
"recovered and added back into the project when a project is opened."
msgstr ""
"Si UmbraEdit se plante ou se termine sans sauvegarder l'état du "
"projet, ou si vous utilisez un outil de synchronisation de fichiers qui "
"se désynchronise, il peut y avoir des fichiers dans le dossier de "
"stockage du projet qui ne sont pas suivis dans le fichier de base du "
"projet. Ces fichiers, lorsqu'ils sont découverts, sont récupérés et "
"ajoutés au projet lorsqu'un projet est ouvert."
#: ../../source/more/handling_errors.rst:25
msgid ""
"The discovered files are scanned for metadata that give clues as to "
"where the document may previously have been located in the project. The "
"project loading routine will try to put them back as close as possible "
"to this location, if it still exists. Generally, it will be appended to "
"the end of the folder where it previously was located. If that folder "
"doesn't exist, it will try to add it to the correct root folder type. If "
"it cannot figure out which root folder is correct, the document will be "
"added to the **Novel** root folder. Finally, if a **Novel** does not "
"exist, one will be created."
msgstr ""
"Les fichiers découverts sont analysés à la recherche de métadonnées qui "
"donnent des indices sur l'emplacement antérieur du document dans le "
"projet. La routine de chargement du projet essaiera de les replacer "
"aussi près que possible de cet emplacement, s'il existe toujours. En "
"général, le document sera ajouté à la fin du dossier où il se trouvait "
"auparavant. Si ce dossier n'existe pas, il essaiera de l'ajouter au type "
"de dossier racine correct. S'il ne parvient pas à déterminer quel est le "
"bon dossier racine, le document sera ajouté au dossier racine "
"**Nouveau**. Enfin, si un **Nouveau** n'existe pas, il en sera créé un."
#: ../../source/more/handling_errors.rst:33
msgid ""
"If the title of the document can be recovered, the word \"Recovered:\" "
"will be added as a prefix to indicate that it may need further "
"attention. If the title cannot be determined, the document will be named "
"after its internal key, which is a string of characters and numbers."
msgstr ""
"Si le titre du document peut être récupéré, le mot « Récupéré : » sera "
"ajouté comme préfixe pour indiquer qu'il peut nécessiter une attention "
"supplémentaire. Si le titre ne peut être déterminé, le document sera "
"nommé d'après sa clé interne, qui est une chaîne de caractères et de "
"chiffres."
#: ../../source/more/handling_errors.rst:41
msgid "Project Lockfile"
msgstr "Fichier de verrouillage du projet"
#: ../../source/more/handling_errors.rst:43
msgid ""
"To prevent data loss caused by file conflicts when UmbraEdit projects "
"are synchronised via file synchronisation tools, a project lockfile is "
"written to the project storage folder when a project is open. If you try "
"to open a project that already has such a file present, you will be "
"presented with a warning, and some information about where else "
"UmbraEdit thinks the project is also open. You will be given the "
"option to ignore this warning, and continue opening the project at your "
"own risk."
msgstr ""
"Pour éviter la perte de données causée par des conflits de fichiers "
"lorsque les projets UmbraEdit sont synchronisés via des outils de "
"synchronisation de fichiers, un fichier de verrouillage de projet est "
"écrit dans le dossier de stockage du projet lorsqu'un projet est ouvert. "
"Si vous essayez d'ouvrir un projet dans lequel un tel fichier est déjà "
"présent, vous recevrez un avertissement et des informations sur "
"l'endroit où UmbraEdit pense que le projet est également ouvert. Vous "
"aurez la possibilité d'ignorer cet avertissement et de continuer à "
"ouvrir le projet à vos risques et périls."
#: ../../source/more/handling_errors.rst:52
msgid ""
"If, for some reason, UmbraEdit or your computer crashes, the lock file "
"may remain even if there are no other instances keeping the project "
"open. In such a case it is safe to ignore the lock file warning when re-"
"opening the project."
msgstr ""
"Si, pour une raison quelconque, UmbraEdit ou votre ordinateur tombe en "
"panne, le fichier de verrouillage peut subsister même si aucune autre "
"instance ne maintient le projet ouvert. Dans ce cas, il est prudent "
"d'ignorer l'avertissement relatif au fichier de verrouillage lors de la "
"réouverture du projet."
#: ../../source/more/handling_errors.rst:58
msgid ""
"If you choose to ignore the warning and continue opening the project, "
"and multiple instances of the project are in fact open, you are likely "
"to cause inconsistencies and create diverging project files, potentially "
"resulting in loss of data and orphaned files. You are not likely to lose "
"any actual text unless both instances have the same document open in the "
"editor, and UmbraEdit will try to resolve project inconsistencies the "
"next time you open the project."
msgstr ""
"Si vous choisissez d'ignorer l'avertissement et de continuer à ouvrir le "
"projet, et que plusieurs instances du projet sont en fait ouvertes, vous "
"risquez de provoquer des incohérences et de créer des fichiers de projet "
"divergents, ce qui peut entraîner une perte de données et des fichiers "
"orphelins. Il est peu probable que vous perdiez du texte à moins que les "
"deux instances aient le même document ouvert dans l'éditeur, et "
"UmbraEdit essaiera de résoudre les incohérences du projet la prochaine "
"fois que vous l'ouvrirez."

View File

@@ -1,298 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 11:21+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/more/project_format.rst:5
msgid "Project Format Changes"
msgstr "Modifications du format des projets"
#: ../../source/more/project_format.rst:7
msgid ""
"Most of the changes to the file formats over the history of UmbraEdit "
"have no impact on the user side of things. The project files are "
"generally updated automatically. However, some of the changes require "
"minor actions from the user."
msgstr ""
"La plupart des modifications apportées aux formats de fichiers au cours "
"de l'histoire de UmbraEdit n'ont pas d'impact sur l'utilisateur. Les "
"fichiers de projet sont généralement mis à jour automatiquement. "
"Cependant, certains changements nécessitent des actions mineures de la "
"part de l'utilisateur."
#: ../../source/more/project_format.rst:11
msgid ""
"The key changes in the formats are listed in this chapter, as well as "
"the user actions required, where applicable."
msgstr ""
"Les principales modifications apportées aux formats sont énumérées dans "
"ce chapitre, ainsi que les actions requises de la part de l'utilisateur, "
"le cas échéant."
#: ../../source/more/project_format.rst:14
msgid ""
"A full project file format specification is available under \"More "
"Documents\"."
msgstr ""
"Une spécification complète du format de fichier du projet est disponible "
"sous « Plus d'informations »."
#: ../../source/more/project_format.rst:18
msgid ""
"When you update a project from one format version to the next, the "
"project can no longer be opened by a version of UmbraEdit prior to the "
"version where the new file format was introduced. You will get a "
"notification about any updates to your project file format and will have "
"the option to decline the upgrade."
msgstr ""
"Lorsque vous mettez à jour un projet d'une version de format à la "
"suivante, le projet ne peut plus être ouvert par une version de "
"UmbraEdit antérieure à la version où le nouveau format de fichier a "
"été introduit. Vous recevrez une notification concernant toute mise à "
"jour du format de fichier de votre projet et vous aurez la possibilité "
"de refuser la mise à jour."
#: ../../source/more/project_format.rst:27
msgid "Format 1.5 Changes"
msgstr "Format 1.5 Modifications"
#: ../../source/more/project_format.rst:29
msgid "This project format was introduced in UmbraEdit version 2.0 RC 2."
msgstr ""
"Ce format de projet a été introduit dans la version 2.0 RC 2 de "
"UmbraEdit."
#: ../../source/more/project_format.rst:31
msgid ""
"This is a modification of the 1.4 format. It makes the XML more "
"consistent in that meta data have been moved to their respective section "
"nodes as attributes, and key/value settings now have a consistent "
"format. Logical flags are saved as yes/no instead of Python True/False, "
"and the main heading of the document is now saved to the item rather "
"than in the index. The conversion is done automatically the first time a "
"project is loaded. No user action is required."
msgstr ""
"Il s'agit d'une modification du format 1.4. Il rend le XML plus cohérent "
"en ce sens que les métadonnées ont été déplacées vers leurs nœuds de "
"section respectifs en tant qu'attributs, et que les paramètres clé/"
"valeur ont désormais un format cohérent. Les indicateurs logiques sont "
"sauvegardés sous forme de oui/non au lieu de True/False de Python, et le "
"titre principal du document est désormais sauvegardé dans l'article "
"plutôt que dans l'index. La conversion est effectuée automatiquement "
"lors du premier chargement d'un projet. Aucune action de l'utilisateur "
"n'est nécessaire."
#: ../../source/more/project_format.rst:41
msgid "Format 1.4 Changes"
msgstr "Format 1.4 Modifications"
#: ../../source/more/project_format.rst:43
msgid ""
"This project format was introduced in UmbraEdit version 2.0 RC 1. "
"Since this was a release candidate, it is unlikely that your project "
"uses it, but it may be the case if you've installed a pre-release."
msgstr ""
"Ce format de projet a été introduit dans la version 2.0 RC 1 de "
"UmbraEdit. Comme il s'agissait d'une version candidate, il est peu "
"probable que votre projet l'utilise, mais c'est peut-être le cas si vous "
"avez installé une préversion."
#: ../../source/more/project_format.rst:47
msgid ""
"This format changes the way project items (folders, documents and notes) "
"are stored. It is a more compact format that is simpler and faster to "
"parse, and easier to extend. The conversion is done automatically the "
"first time a project is loaded. No user action is required."
msgstr ""
"Ce format modifie la manière dont les éléments du projet (dossiers, "
"documents et notes) sont stockés. Il s'agit d'un format plus compact, "
"plus simple et plus rapide à analyser, et plus facile à étendre. La "
"conversion se fait automatiquement lors du premier chargement d'un "
"projet. Aucune action de l'utilisateur n'est nécessaire."
#: ../../source/more/project_format.rst:55
msgid "Format 1.3 Changes"
msgstr "Format 1.3 Modifications"
#: ../../source/more/project_format.rst:57
msgid "This project format was introduced in UmbraEdit version 1.5."
msgstr ""
"Ce format de projet a été introduit dans la version 1.5 de UmbraEdit."
#: ../../source/more/project_format.rst:59
msgid ""
"With this format, the number of document layouts was reduced from eight "
"to two. The conversion of document layouts is performed automatically "
"when the project is opened."
msgstr ""
"Avec ce format, le nombre de présentations de documents a été réduit de "
"huit à deux. La conversion des présentations de documents s'effectue "
"automatiquement lors de l'ouverture du projet."
#: ../../source/more/project_format.rst:62
msgid ""
"Due to the reduction of layouts, some features that were previously "
"controlled by these layouts will be lost. These features are instead now "
"controlled by syntax codes, so to recover these features, some minor "
"modification must be made to select documents by the user."
msgstr ""
"En raison de la réduction des présentations, certaines caractéristiques "
"qui étaient auparavant contrôlées par ces présentations seront perdues. "
"Ces fonctionnalités sont désormais contrôlées par des codes syntaxiques. "
"Pour les récupérer, l'utilisateur doit donc apporter quelques "
"modifications mineures aux documents sélectionnés."
#: ../../source/more/project_format.rst:66
msgid ""
"The manual changes the user must make should be very few as they apply "
"to document layouts that should be used only a few places in any given "
"project. These are as follows:"
msgstr ""
"Les modifications manuelles que l'utilisateur doit apporter sont très "
"peu nombreuses car elles s'appliquent à des mises en page de documents "
"qui ne doivent être utilisées qu'à quelques endroits dans un projet "
"donné. Ces modifications sont les suivantes :"
#: ../../source/more/project_format.rst:69
msgid "**Title Pages**"
msgstr "**Pages de titres**"
#: ../../source/more/project_format.rst:71
msgid ""
"The formatting of the level one title on the title page must be changed "
"from ``# Title Text`` to ``#! Title Text`` in order to retain the "
"previous functionality. See :ref:`docs_usage_headings_levels`."
msgstr ""
"Le formatage du titre de niveau 1 sur la page de titre doit être modifié "
"de ``# Title Text`` à ``# ! Title Text`` afin de conserver la "
"fonctionnalité précédente. Voir :ref:`docs_usage_headings_levels`."
#: ../../source/more/project_format.rst:74
msgid ""
"Any text that was previously centred on the page must be manually "
"centred using the text alignment feature. See :ref:"
"`docs_usage_align_indent`."
msgstr ""
"Tout texte qui était précédemment centré sur la page doit être centré "
"manuellement en utilisant la fonction d'alignement du texte. Voir :ref:"
"`docs_usage_align_indent`."
#: ../../source/more/project_format.rst:77
msgid "**Unnumbered Chapters**"
msgstr "**Chapitres non numérotés**"
#: ../../source/more/project_format.rst:79
msgid ""
"Since the specific layout for unnumbered chapters has been dropped, such "
"chapters must all use the ``##! Chapter Name`` formatting code instead "
"of ``## Chapter Name``. This also includes chapters marked by an "
"asterisk: ``## *Chapter Name``, as this feature has also been dropped. "
"See :ref:`docs_usage_headings_levels`."
msgstr ""
"La mise en page spécifique pour les chapitres non numérotés ayant été "
"abandonnée, ces chapitres doivent tous utiliser le code de formatage "
"``# ! Nom du chapitre`` au lieu de `## Nom du chapitre``. Cela inclut "
"également les chapitres marqués d'un astérisque : `## *Nom de "
"chapitre``, car cette fonctionnalité a également été abandonnée. Voir :"
"ref:`docs_usage_headings_levels`."
#: ../../source/more/project_format.rst:84
msgid "**Plain Pages**"
msgstr "**Pages vierges**"
#: ../../source/more/project_format.rst:86
msgid ""
"The layout named \"Plain Page\" has also been removed. The only feature "
"of this layout was that it ensured that the content always started on a "
"fresh page. In the new format, fresh pages can be set anywhere in the "
"text with the ``[new page]`` code. See :ref:"
"`docs_usage_formatting_breaks`."
msgstr ""
"La mise en page appelée « page simple » a également été supprimée. La "
"seule caractéristique de cette mise en page était qu'elle garantissait "
"que le contenu commençait toujours sur une nouvelle page. Dans le "
"nouveau format, les nouvelles pages peuvent être placées n'importe où "
"dans le texte avec le code ``[new page]``. Voir :ref:"
"`docs_usage_formatting_breaks`."
#: ../../source/more/project_format.rst:94
msgid "Format 1.2 Changes"
msgstr "Format 1.2 Modifications"
#: ../../source/more/project_format.rst:96
msgid "This project format was introduced in UmbraEdit version 0.10."
msgstr ""
"Ce format de projet a été introduit dans la version 0.10 de UmbraEdit."
#: ../../source/more/project_format.rst:98
msgid ""
"With this format, the way auto-replace entries were stored in the main "
"project XML file changed. Conversion from this format is done "
"automatically."
msgstr ""
"Avec ce format, la façon dont les entrées de remplacement automatique "
"étaient stockées dans le fichier XML du projet principal a changé. La "
"conversion de ce format se fait automatiquement."
#: ../../source/more/project_format.rst:105
msgid "Format 1.1 Changes"
msgstr "Format 1.1 Modifications"
#: ../../source/more/project_format.rst:107
msgid "This project format was introduced in UmbraEdit version 0.7."
msgstr ""
"Ce format de projet a été introduit dans la version 0.7 de UmbraEdit."
#: ../../source/more/project_format.rst:109
msgid ""
"With this format, the ``content`` folder was introduced in the project "
"storage. Previously, all UmbraEdit documents were saved in a series of "
"folders numbered from ``data_0`` to ``data_f``."
msgstr ""
"Avec ce format, le dossier ``content`` a été introduit dans le stockage "
"du projet. Auparavant, tous les documents de UmbraEdit étaient "
"sauvegardés dans une série de dossiers numérotés de ``data_0`` à "
"``data_f``."
#: ../../source/more/project_format.rst:112
msgid ""
"It also reduces the number of meta data and cache files. These files are "
"automatically deleted if an old project is opened. This was also when "
"the Table of Contents file was introduced. Conversion from this format "
"is done automatically."
msgstr ""
"Il réduit également le nombre de métadonnées et de fichiers de cache. "
"Ces fichiers sont automatiquement supprimés lorsqu'un ancien projet est "
"ouvert. C'est également à cette époque que le fichier de table des "
"matières a été introduit. La conversion de ce format se fait "
"automatiquement."
#: ../../source/more/project_format.rst:120
msgid "Format 1.0 Changes"
msgstr "Format 1.0 Modifications"
#: ../../source/more/project_format.rst:122
msgid ""
"This is the original file format and project structure. It was in use up "
"to version 0.6.3."
msgstr ""
"Il s'agit du format de fichier et de la structure de projet d'origine. "
"Il a été utilisé jusqu'à la version 0.6.3."

View File

@@ -1,267 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 23:17+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/more/typography.rst:5
msgid "Typographical Notes"
msgstr "Notes typographiques"
#: ../../source/more/typography.rst:12
msgid ""
"UmbraEdit has some support for typographical symbols that are not usually "
"easily available in many text editors. This includes for instance the "
"proper unicode quotation marks, dashes, ellipsis, thin spaces, etc. All "
"these symbols are available from the **Insert** menu, and via keyboard "
"shortcuts. See :ref:`docs_features_shortcuts_insert`."
msgstr ""
"UmbraEdit prend en charge certains symboles typographiques qui ne sont "
"généralement pas disponibles dans de nombreux éditeurs de texte. Cela "
"inclut par exemple les guillemets unicode, les tirets, les ellipses, les "
"espaces fins, etc. Tous ces symboles sont disponibles dans le menu "
"**Insérer**, et via des raccourcis clavier. Voir :ref:"
"`docs_features_shortcuts_insert`."
#: ../../source/more/typography.rst:17
msgid ""
"This chapter provides some additional information on how UmbraEdit "
"handles these symbols."
msgstr ""
"Ce chapitre fournit des informations supplémentaires sur la manière dont "
"UmbraEdit gère ces symboles."
#: ../../source/more/typography.rst:21
msgid "Dashes and Ellipsis"
msgstr "Tirets et points de suspension"
#: ../../source/more/typography.rst:23
msgid ""
"With the auto-replace feature enabled (see :ref:`docs_ui_edit_view_auto`), "
"two and three hyphens are converted automatically to short and long dashes, "
"four hyphens to a horizontal bar, and three dots to ellipsis."
msgstr ""
"Lorsque la fonction de remplacement automatique est activée (voir :ref:"
"`docs_ui_edit_view_auto`), les deux et trois traits d'union sont "
"automatiquement convertis en tirets demi-cadratin et cadratin, les quatre "
"traits d'union en barre horizontale et les trois points en points de "
"suspension."
#: ../../source/more/typography.rst:29
msgid ""
"The last auto-replace can always be reverted with the undo command :kbd:"
"`Ctrl+Z`, reverting the text to what you typed before the automatic "
"replacement occurred."
msgstr ""
"Le dernier remplacement automatique peut toujours être annulé avec la "
"commande d'annulation :kbd:`Ctrl+Z`, rétablissant le texte tel qu'il était "
"avant le remplacement automatique."
#: ../../source/more/typography.rst:32
msgid ""
"In addition, \"Figure Dash\" is available. The Figure Dash is a dash that "
"has the same width as the numbers of the same font, for most fonts. It "
"helps to align numbers nicely in columns when you need to use a dash in "
"them."
msgstr ""
"En outre, le « tiret chiffré » est disponible. Il s'agit d'un tiret de la "
"même largeur que les chiffres de la même police, pour la plupart des "
"polices. Il permet de bien aligner les chiffres dans les colonnes lorsque "
"vous devez utiliser un tiret."
#: ../../source/more/typography.rst:38
msgid "Single and Double Quotes"
msgstr "Guillemets simples et doubles"
#: ../../source/more/typography.rst:40
msgid ""
"All the different quotation marks listed on the `Quotation Mark`_ Wikipedia "
"page are available, and can be selected as auto-replaced symbols for "
"straight single and double quote key strokes. The settings can be found in "
"**Preferences**."
msgstr ""
"Tous les différents guillemets listés sur la page Wikipedia `Quotation "
"Mark`_ sont disponibles, et peuvent être sélectionnés comme symboles auto-"
"remplacés pour les touches de guillemets simples et doubles. Les réglages "
"se trouvent dans les **Préférences**."
#: ../../source/more/typography.rst:44
msgid ""
"If your text contains straight single and double quotes, there are two "
"convenience functions in the **Format** menu that can be used to re-format "
"a selected section of text with the correct quote symbols."
msgstr ""
"Si votre texte contient des guillemets simples et doubles, deux fonctions "
"pratiques du menu **Format** permettent de reformater une section de texte "
"sélectionnée avec les symboles de guillemets corrects."
#: ../../source/more/typography.rst:48
msgid ""
"You can enable dialogue recognition and colour highlighting for novel "
"documents. See :ref:`docs_features_dialogue` for more details."
msgstr ""
"Vous pouvez activer la reconnaissance du dialogue et la mise en évidence "
"des couleurs pour les nouveaux documents. Voir :ref:"
"`docs_features_dialogue` pour plus de détails."
#: ../../source/more/typography.rst:53
msgid "Single and Double Prime"
msgstr "Simple et double prime"
#: ../../source/more/typography.rst:55
msgid ""
"Both single and double prime symbols are available in the **Insert** menu. "
"These symbols are the correct symbols to use for unit symbols for feet, "
"inches, minutes, and seconds. The usage of these is described in more "
"detail on the Wikipedia Prime_ page. They look very similar to single and "
"double straight quotes, and may be rendered similarly by the font, but they "
"have different codes. Using these correctly will also prevent the auto-"
"replace and dialogue highlighting features misunderstanding their meaning "
"in the text."
msgstr ""
"Les symboles de prime simple et double sont disponibles dans le menu "
"**Insérer**. Ces symboles sont les symboles corrects à utiliser pour les "
"symboles d'unités pour les pieds, les pouces, les minutes et les secondes. "
"L'utilisation de ces symboles est décrite plus en détail sur la page Prime_ "
"de Wikipedia. Ils ressemblent beaucoup aux guillemets simples et doubles et "
"peuvent être rendus de la même manière par la police, mais ils ont des "
"codes différents. En les utilisant correctement, vous éviterez que les "
"fonctions de remplacement automatique et de mise en évidence des dialogues "
"ne se méprennent sur leur signification dans le texte."
#: ../../source/more/typography.rst:66
msgid "Modifier Letter Apostrophe"
msgstr "Modificateur Lettre Apostrophe"
#: ../../source/more/typography.rst:68
msgid ""
"The auto-replace feature will consider any right-facing single straight "
"quote as a quote symbol, even if it is intended as an apostrophe. This also "
"includes the syntax highlighter, which may assume the first following "
"apostrophe is the closing symbol of a single quoted region of text."
msgstr ""
"La fonction de remplacement automatique considère tout guillemet droit "
"simple orienté vers la droite comme un symbole de guillemet, même s'il "
"s'agit d'une apostrophe. Cela s'applique également à l'outil de mise en "
"évidence de la syntaxe, qui peut supposer que la première apostrophe qui "
"suit est le symbole de fermeture d'une région de texte entre guillemets."
#: ../../source/more/typography.rst:72
msgid ""
"To get around this, an alternative apostrophe is available. It is a special "
"Unicode character that is not categorised as punctuation, but as a "
"modifier. It is usually rendered the same way as the right single quotation "
"marks, depending on the font. There is a Wikipedia article for the "
"`Modifier letter apostrophe`_ with more details."
msgstr ""
"Pour contourner ce problème, il existe une apostrophe alternative. Il "
"s'agit d'un caractère Unicode spécial qui n'est pas considéré comme une "
"ponctuation, mais comme un modificateur. Il est généralement rendu de la "
"même manière que les guillemets simples de droite, en fonction de la police "
"de caractères. Il existe un article de Wikipédia sur la `lettre "
"modificatrice apostrophe`_ avec plus de détails."
#: ../../source/more/typography.rst:79
msgid ""
"On export with the **Build Manuscript** tool, these apostrophes will be "
"replaced automatically with the corresponding right hand single quote "
"symbol as is generally recommended. Therefore it doesn't really matter if "
"you only use them to correct syntax highlighting in some places, and not "
"others."
msgstr ""
"Lors de l'exportation à l'aide de l'outil **Compiler le manuscrit**, ces "
"apostrophes seront automatiquement remplacées par le symbole de guillemet "
"simple de droite correspondant, comme cela est généralement recommandé. Par "
"conséquent, il importe peu que vous les utilisiez uniquement pour corriger "
"la coloration syntaxique à certains endroits, et pas à d'autres."
#: ../../source/more/typography.rst:86
msgid "White Space Symbols"
msgstr "Symboles de l'espace"
#: ../../source/more/typography.rst:88
msgid ""
"A few variations of the regular space character is supported. The correct "
"typographical way to separate a number from its unit is with a `thin "
"space`_. It is usually 2/3 the width of a regular space. For numbers and "
"units, this should in addition be a non-breaking space, that is, the text "
"wrapping should not add a line break on this particular space."
msgstr ""
"Quelques variations du caractère espace régulier sont prises en charge. La "
"manière typographique correcte de séparer un nombre de son unité est "
"d'utiliser une `espace fine`_. Sa largeur est généralement égale aux deux "
"tiers de celle d'une espace normale. Pour les nombres et les unités, il "
"doit en outre s'agir d'un espace insécable, c'est-à-dire que l'habillage du "
"texte ne doit pas ajouter de saut de ligne sur cet espace particulier."
#: ../../source/more/typography.rst:93
msgid "A regular space can also be made into a non-breaking space if needed."
msgstr ""
"Un espace régulier peut également être transformé en espace insécable si "
"nécessaire."
#: ../../source/more/typography.rst:95
msgid ""
"All non-breaking spaces are highlighted with a differently coloured "
"background to make it easier to spot them in the text. The colour will "
"depend on the selected colour theme."
msgstr ""
"Tous les espaces insécables sont mis en évidence par un arrière-plan de "
"couleur différente pour faciliter leur repérage dans le texte. La couleur "
"dépend du thème de couleur sélectionné."
#: ../../source/more/typography.rst:98
msgid ""
"You can insert these spaces in your text using the following keyboard "
"combinations:"
msgstr ""
"Vous pouvez insérer ces espaces dans votre texte en utilisant les "
"combinaisons de clavier suivantes :"
#: ../../source/more/typography.rst:100
msgid "A non-breaking space can be inserted with :kbd:`Ctrl+K`, :kbd:`Space`."
msgstr ""
"Un espace insécable peut être inséré avec :kbd:`Ctrl+K`, :kbd:`Espace`."
#: ../../source/more/typography.rst:101
msgid ""
"Thin spaces are also supported, and can be inserted with :kbd:`Ctrl+K`, :"
"kbd:`Shift+Space`."
msgstr ""
"Les espaces courtes sont également supportés, et peuvent être insérés avec :"
"kbd:`Ctrl+K`, :kbd:`Maj+Espace`."
#: ../../source/more/typography.rst:102
msgid ""
"Non-breaking thin space can be inserted with :kbd:`Ctrl+K`, :kbd:"
"`Ctrl+Space`."
msgstr ""
"Une espace courte insécable peut être insérée avec :kbd:`Ctrl+K`, :kbd:"
"`Ctrl+Espace`."
#: ../../source/more/typography.rst:104
msgid ""
"These are all insert features, and the **Insert** menu has more. The "
"keyboard shortcuts for them are also listed in :ref:"
"`docs_features_shortcuts`."
msgstr ""
"Ce sont toutes des fonctions d'insertion, et le menu **Insérer** en propose "
"d'autres. Les raccourcis clavier sont également listés dans :ref:"
"`docs_features_shortcuts`."

View File

@@ -1,158 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 11:25+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/technical/locations.rst:5
msgid "File Locations"
msgstr "Emplacement des fichiers"
#: ../../source/technical/locations.rst:9
msgid ""
"UmbraEdit will create a few files on your system outside of the "
"application folder itself. These file locations are described in this "
"chapter."
msgstr ""
"UmbraEdit créera quelques fichiers sur votre système en dehors du "
"dossier de l'application elle-même. L'emplacement de ces fichiers est "
"décrit dans ce chapitre."
#: ../../source/technical/locations.rst:16
msgid "Configuration"
msgstr "Configuration"
#: ../../source/technical/locations.rst:18
msgid ""
"The general configuration of UmbraEdit, including everything that is "
"in **Preferences**, is saved in one central configuration file. The "
"location of this file depends on your operating system. The system paths "
"are provided by the Qt QStandardPaths_ class and its ``ConfigLocation`` "
"value."
msgstr ""
"La configuration générale de UmbraEdit, y compris tout ce qui se "
"trouve dans les **Préférences**, est enregistrée dans un fichier de "
"configuration central. L'emplacement de ce fichier dépend de votre "
"système d'exploitation. Les chemins d'accès au système sont fournis par "
"la classe Qt QStandardPaths_ et sa valeur ``ConfigLocation``."
#: ../../source/technical/locations.rst:22
#: ../../source/technical/locations.rst:45
msgid "The standard paths are:"
msgstr "Les chemins standard sont les suivants :"
#: ../../source/technical/locations.rst:24
msgid "Linux: ``~/.config/umbraedit/umbraedit.conf``"
msgstr "Linux : ``~/.config/umbraedit/umbraedit.conf``"
#: ../../source/technical/locations.rst:25
msgid "MacOS: ``~/Library/Preferences/umbraedit/umbraedit.conf``"
msgstr "MacOS: ``~/Library/Preferences/umbraedit/umbraedit.conf``"
#: ../../source/technical/locations.rst:26
msgid ""
"Windows: ``C:\\Users\\<USER>\\AppData\\Local\\umbraedit\\umbraedit."
"conf``"
msgstr ""
"Windows: ``C:\\Users\\<USER>\\AppData\\Local\\umbraedit\\umbraedit."
"conf``"
#: ../../source/technical/locations.rst:28
#: ../../source/technical/locations.rst:51
msgid ""
"Here, ``~`` corresponds to the user's home directory on Linux and MacOS, "
"and ``<USER>`` is the user's username on Windows."
msgstr ""
"Ici, ``~`` correspond au répertoire personnel de l'utilisateur sous "
"Linux et MacOS, et ``<USER>`` est le nom d'utilisateur de l'utilisateur "
"sous Windows."
#: ../../source/technical/locations.rst:32
#: ../../source/technical/locations.rst:55
msgid ""
"These are the standard operating system defined locations. If your "
"system has been set up in a different way, these locations may also be "
"different."
msgstr ""
"Il s'agit des emplacements standard définis par le système "
"d'exploitation. Si votre système a été configuré différemment, ces "
"emplacements peuvent également être différents."
#: ../../source/technical/locations.rst:39
msgid "Application Data"
msgstr "Données d'application"
#: ../../source/technical/locations.rst:41
msgid ""
"UmbraEdit also stores a bit of data that is generated by the user's "
"actions. This includes the list of recent projects form the **Welcome** "
"dialog. Custom themes should also be saved here. The system paths are "
"provided by the Qt QStandardPaths_ class and its ``AppDataLocation`` "
"value."
msgstr ""
"UmbraEdit stocke également un certain nombre de données générées par "
"les actions de l'utilisateur. Cela inclut la liste des projets récents "
"de la boîte de dialogue **Bienvenue**. Les thèmes personnalisés "
"devraient également être sauvegardés ici. Les chemins d'accès au système "
"sont fournis par la classe Qt QStandardPaths_ et sa valeur "
"``AppDataLocation``."
#: ../../source/technical/locations.rst:47
msgid "Linux: ``~/.local/share/umbraedit/``"
msgstr "Linux: ``~/.local/share/umbraedit/``"
#: ../../source/technical/locations.rst:48
msgid "MacOS: ``~/Library/Application Support/umbraedit/``"
msgstr "MacOS: ``~/Library/Application Support/umbraedit/``"
#: ../../source/technical/locations.rst:49
msgid "Windows: ``C:\\Users\\<USER>\\AppData\\Roaming\\umbraedit\\``"
msgstr "Windows: ``C:\\Users\\<USER>\\AppData\\Roaming\\umbraedit\\``"
#: ../../source/technical/locations.rst:58
msgid "The Application Data location also holds several folders:"
msgstr ""
"L'emplacement des données d'application contient également plusieurs "
"dossiers :"
#: ../../source/technical/locations.rst:60
msgid "``cache``"
msgstr "``cache``"
#: ../../source/technical/locations.rst:61
msgid ""
"This folder is used to save the preview data for the **Manuscript "
"Build** tool."
msgstr ""
"Ce dossier est utilisé pour enregistrer les données de prévisualisation "
"pour l'outil **Compilation de manuscrit**."
#: ../../source/technical/locations.rst:63
msgid "``icons``, ``syntax`` and ``themes``"
msgstr "``icons``, ``syntax`` and ``themes``"
#: ../../source/technical/locations.rst:64
msgid ""
"These folders are empty by default, but this is where the user can store "
"custom theme files. See :ref:`docs_more_custom` for more details."
msgstr ""
"Ces dossiers sont vides par défaut, mais c'est là que l'utilisateur peut "
"stocker des fichiers de thèmes personnalisés. Voir :ref:"
"`docs_more_custom` pour plus de détails."

View File

@@ -1,283 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 11:39+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/technical/source.rst:5
msgid "Running from Source"
msgstr "Exécuter depuis la source"
#: ../../source/technical/source.rst:11
msgid ""
"This chapter describes various ways of running UmbraEdit directly from "
"the source code, and how to build the various components like the "
"translation files and documentation."
msgstr ""
"Ce chapitre décrit les différentes façons d'exécuter UmbraEdit "
"directement à partir du code source, et comment construire les "
"différents composants tels que les fichiers de traduction et la "
"documentation."
#: ../../source/technical/source.rst:16
msgid ""
"The text below assumes the command ``python`` corresponds to a Python 3 "
"executable. Python 2 is now deprecated, but on many systems the command "
"``python3`` may be needed instead. Likewise, ``pip`` may need to be "
"replaced with ``pip3``."
msgstr ""
"Le texte ci-dessous suppose que la commande ``python`` correspond à un "
"exécutable Python 3. Python 2 est maintenant déprécié, mais sur de "
"nombreux systèmes, la commande ``python3`` peut être utilisée à la "
"place. De même, ``pip`` peut être remplacé par ``pip3``."
#: ../../source/technical/source.rst:20
msgid ""
"Most of the custom commands for building packages of UmbraEdit, or "
"building assets, are contained in the ``pkgutils.py`` script in the root "
"of the source code. You can list the available commands by running:"
msgstr ""
"La plupart des commandes personnalisées pour construire des paquets de "
"UmbraEdit, ou pour construire des actifs, sont contenues dans le "
"script ``pkgutils.py`` à la racine du code source. Vous pouvez lister "
"les commandes disponibles en lançant :"
#: ../../source/technical/source.rst:32
msgid "Dependencies"
msgstr "Dépendances"
#: ../../source/technical/source.rst:34
msgid ""
"UmbraEdit has been designed to rely on as few dependencies as "
"possible. Only the Python wrapper for the Qt GUI libraries is required. "
"The package for spell checking is optional, but recommended. Everything "
"else is handled with standard Python libraries."
msgstr ""
"UmbraEdit a été conçu pour s'appuyer sur le moins de dépendances "
"possible. Seul le wrapper Python pour les bibliothèques Qt GUI est "
"nécessaire. Le paquetage pour la vérification orthographique est "
"optionnel, mais recommandé. Tout le reste est géré par les bibliothèques "
"Python standard."
#: ../../source/technical/source.rst:38
msgid ""
"The following Python packages are needed to run all features of "
"UmbraEdit:"
msgstr ""
"Les paquets Python suivants sont nécessaires pour exécuter toutes les "
"fonctionnalités de UmbraEdit :"
#: ../../source/technical/source.rst:40
msgid "``PyQt6`` – needed for connecting with the Qt6 libraries."
msgstr "``PyQt6`` - nécessaire pour se connecter aux bibliothèques Qt6."
#: ../../source/technical/source.rst:41
msgid "``PyEnchant`` – needed for spell checking (optional)."
msgstr ""
"``PyEnchant`` - nécessaire pour la vérification orthographique "
"(optionnel)."
#: ../../source/technical/source.rst:43
msgid ""
"If you want spell checking, you must install the ``PyEnchant`` package. "
"The spell check library must be at least 3.0 to work with Windows. On "
"Linux, 2.0 also works fine."
msgstr ""
"Si vous voulez un correcteur orthographique, vous devez installer le "
"paquet ``PyEnchant``. La bibliothèque de vérification orthographique "
"doit être au moins en version 3.0 pour fonctionner sous Windows. Sous "
"Linux, la version 2.0 fonctionne également très bien."
#: ../../source/technical/source.rst:46
msgid ""
"If you install from PyPi, these dependencies should be installed "
"automatically. If you install from source, dependencies can still be "
"installed from PyPi with:"
msgstr ""
"Si vous installez à partir de PyPi, ces dépendances devraient être "
"installées automatiquement. Si vous installez à partir des sources, les "
"dépendances peuvent toujours être installées à partir de PyPi avec :"
#: ../../source/technical/source.rst:55
msgid ""
"On Linux distros, the Qt library is usually split up into multiple "
"packages. In some cases, secondary dependencies may not be installed "
"automatically. For UmbraEdit, the library files for rendering the SVG "
"icons may be left out and needs to be installed manually. This is the "
"case on for instance Arch Linux."
msgstr ""
"Sur les distributions Linux, la bibliothèque Qt est généralement divisée "
"en plusieurs paquets. Dans certains cas, des dépendances secondaires "
"peuvent ne pas être installées automatiquement. Pour UmbraEdit, les "
"fichiers de la bibliothèque pour le rendu des icônes SVG peuvent être "
"omis et doivent être installés manuellement. C'est le cas, par exemple, "
"sous Arch Linux."
#: ../../source/technical/source.rst:64
msgid "Build and Install from Source"
msgstr "Compiler et installer à partir des sources"
#: ../../source/technical/source.rst:66
msgid ""
"If you want to install UmbraEdit directly from the source available on "
"GitHub_, you must first build the package using the Python Packaging "
"Authority's build tool. It can be installed with:"
msgstr ""
"Si vous souhaitez installer UmbraEdit directement à partir des sources "
"disponibles sur GitHub_, vous devez d'abord construire le paquet à "
"l'aide de l'outil de construction de la Python Packaging Authority. Il "
"peut être installé avec :"
#: ../../source/technical/source.rst:73
msgid "On Debian-based systems the tool can also be installed with:"
msgstr ""
"Sur les systèmes basés sur Debian, l'outil peut également être installé "
"avec :"
#: ../../source/technical/source.rst:79
msgid ""
"With the tool installed, run the following command from the root of the "
"UmbraEdit source code:"
msgstr ""
"Une fois l'outil installé, exécutez la commande suivante à partir de la "
"racine du code source de UmbraEdit :"
#: ../../source/technical/source.rst:85
msgid ""
"This should generate a ``.whl`` file in the ``dist/`` folder at your "
"current location. The wheel file can then be installed on your system. "
"Here with example version number 2.0.7, but yours may be different:"
msgstr ""
"Cela devrait générer un fichier ``.whl`` dans le dossier ``dist/`` de "
"votre emplacement actuel. Le fichier wheel peut alors être installé sur "
"votre système. Ici avec l'exemple de la version numéro 2.0.7, mais la "
"vôtre peut être différente :"
#: ../../source/technical/source.rst:97
msgid "Building the Translation Files"
msgstr "Création des fichiers de traduction"
#: ../../source/technical/source.rst:99
msgid ""
"If you installed UmbraEdit from a package, the translation files "
"should be pre-built and included. If you're running UmbraEdit from the "
"source code, you will need to generate the files yourself. The files you "
"need will be written to the ``umbraedit/assets/i18n`` folder, and will "
"have the ``.qm`` file extension."
msgstr ""
"Si vous avez installé UmbraEdit à partir d'un paquetage, les fichiers "
"de traduction devraient être préconstruits et inclus. Si vous exécutez "
"UmbraEdit à partir du code source, vous devrez générer les fichiers "
"vous-même. Les fichiers dont vous avez besoin seront écrits dans le "
"dossier ``umbraedit/assets/i18n``, et auront l'extension ``.qm``."
#: ../../source/technical/source.rst:104
msgid "You can build the ``.qm`` files with:"
msgstr "Vous pouvez construire les fichiers ``.qm`` avec :"
#: ../../source/technical/source.rst:110
msgid ""
"This requires that the Qt Linguist tool is installed on your system. On "
"Ubuntu and Debian, the needed package is called ``qttools5-dev-tools``."
msgstr ""
"Cela nécessite que l'outil Qt Linguist soit installé sur votre système. "
"Sur Ubuntu et Debian, le paquet nécessaire s'appelle ``qttools5-dev-"
"tools``."
#: ../../source/technical/source.rst:115
msgid ""
"If you want to improve UmbraEdit with translation files for another "
"language, or update an existing translation, instructions for how to "
"contribute can be found in the ``README.md`` file in the ``i18n`` folder "
"of the source code."
msgstr ""
"Si vous voulez améliorer UmbraEdit avec des fichiers de traduction "
"pour une autre langue, ou mettre à jour une traduction existante, les "
"instructions pour contribuer peuvent être trouvées dans le fichier "
"``README.md`` dans le dossier ``i18n`` du code source."
#: ../../source/technical/source.rst:123
msgid "Building the Example Project"
msgstr "Construction du projet d'exemple"
#: ../../source/technical/source.rst:125
msgid ""
"In order to be able to create new projects from example files, you need "
"a ``sample.zip`` file in the ``assets`` folder of the source. This file "
"can be built from the ``pkgutils.py`` script by running:"
msgstr ""
"Afin de pouvoir créer de nouveaux projets à partir des fichiers "
"d'exemple, vous avez besoin d'un fichier ``sample.zip`` dans le dossier "
"``assets`` de la source. Ce fichier peut être construit à partir du "
"script ``pkgutils.py`` en exécutant :"
#: ../../source/technical/source.rst:137
msgid "Building the Documentation"
msgstr "Élaboration de la documentation"
#: ../../source/technical/source.rst:139
msgid ""
"A local copy of this documentation can be generated as HTML. This "
"requires installing some Python packages from PyPi:"
msgstr ""
"Une copie locale de cette documentation peut être générée au format "
"HTML. Cela nécessite l'installation de certains paquets Python à partir "
"de PyPi :"
#: ../../source/technical/source.rst:146
msgid ""
"The documentation can then be built from the root folder in the source "
"code by running:"
msgstr ""
"La documentation peut ensuite être créée à partir du dossier racine du "
"code source en lançant le programme :"
#: ../../source/technical/source.rst:152
msgid ""
"If successful, the documentation should be available in the ``docs/build/"
"html`` folder and you can open the ``index.html`` file in your browser."
msgstr ""
"En cas de succès, la documentation devrait être disponible dans le "
"dossier `docs/build/html` et vous pouvez ouvrir le fichier `index.html` "
"dans votre navigateur."
#: ../../source/technical/source.rst:155
msgid ""
"You can also build a PDF manual from the documentation using the "
"``pkgutils.py`` script:"
msgstr ""
"Vous pouvez également créer un manuel PDF à partir de la documentation "
"en utilisant le script ``pkgutils.py`` :"
#: ../../source/technical/source.rst:161
msgid ""
"This will build the English documentation as a PDF using LaTeX. The file "
"will then be copied into the assets folder and made available in the "
"**Help** menu in UmbraEdit. Replace ``en`` with ``all`` to build for "
"all languages. The Sphinx build system has a few extra dependencies when "
"building the PDF. Please check the `Sphinx Docs`_ for more details."
msgstr ""
"Cela permettra de créer la documentation anglaise au format PDF en "
"utilisant LaTeX. Le fichier sera ensuite copié dans le dossier assets et "
"rendu disponible dans le menu **Aide** de UmbraEdit. Remplacez ``en`` "
"par ``all`` pour construire pour toutes les langues. Le système de "
"construction Sphinx a quelques dépendances supplémentaires lors de la "
"construction du PDF. Veuillez consulter la `Docs Sphinx`_ pour plus de "
"détails."

View File

@@ -1,501 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 11:33+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/technical/storage.rst:5
msgid "How Data is Stored"
msgstr "Comment les données sont stockées"
#: ../../source/technical/storage.rst:9
msgid ""
"This chapter contains details of how UmbraEdit stores and handles the "
"project data."
msgstr ""
"Ce chapitre contient des détails sur la manière dont UmbraEdit stocke "
"et gère les données du projet."
#: ../../source/technical/storage.rst:13
msgid "Overview"
msgstr "Présentation générale"
#: ../../source/technical/storage.rst:15
msgid ""
"The files of a UmbraEdit project are stored in a dedicated project "
"folder. The project structure is kept in a file at the root of this "
"folder called ``nwProject.nwx``. All the document files and associated "
"meta data are stored in other folders below the project folder."
msgstr ""
"Les fichiers d'un projet UmbraEdit sont stockés dans un dossier dédié "
"au projet. La structure du projet est conservée dans un fichier à la "
"racine de ce dossier appelé ``nwProject.nwx``. Tous les fichiers de "
"documents et les métadonnées associées sont stockés dans d'autres "
"dossiers sous le dossier du projet."
#: ../../source/technical/storage.rst:19
msgid "This way of storing data was chosen for several reasons."
msgstr ""
"Ce mode de stockage des données a été choisi pour plusieurs raisons."
#: ../../source/technical/storage.rst:21
msgid ""
"Firstly, all the text you add to your project is saved directly to your "
"project folder in separate files. Only the project structure and the "
"text you are currently editing is stored in memory at any given time, "
"which means there is a smaller risk of losing data if the application or "
"your computer crashes."
msgstr ""
"Tout d'abord, tout le texte que vous ajoutez à votre projet est "
"enregistré directement dans le dossier de votre projet, dans des "
"fichiers séparés. Seule la structure du projet et le texte que vous êtes "
"en train d'éditer sont stockés en mémoire à un moment donné, ce qui "
"signifie qu'il y a moins de risque de perdre des données si "
"l'application ou votre ordinateur tombe en panne."
#: ../../source/technical/storage.rst:26
msgid ""
"Secondly, having multiple small files means it is very easy to "
"synchronise them between computers with standard file synchronisation "
"tools."
msgstr ""
"Deuxièmement, le fait d'avoir plusieurs petits fichiers signifie qu'il "
"est très facile de les synchroniser entre ordinateurs à l'aide d'outils "
"de synchronisation de fichiers standard."
#: ../../source/technical/storage.rst:29
msgid ""
"Thirdly, if you use `version control`_ software to track the changes to "
"your project, the file formats used for the files are well suited. All "
"the JSON documents have line breaks and indents as well, which makes it "
"easier to track them with version control software."
msgstr ""
"Troisièmement, si vous utilisez un logiciel de `contrôle de version`_ "
"pour suivre les modifications apportées à votre projet, les formats "
"utilisés pour les fichiers sont bien adaptés. Tous les documents JSON "
"comportent des sauts de ligne et des retraits, ce qui facilite leur "
"suivi avec un logiciel de contrôle de version."
#: ../../source/technical/storage.rst:35
msgid ""
"Since UmbraEdit has to keep track of a bunch of files and folders when "
"a project is open, it may not run well on some virtual file systems. A "
"file or folder must be accessible with exactly the path it was saved or "
"created with. An example where this is not the case is the way Google "
"Drive is mapped on Linux Gnome desktops using gvfs/gio."
msgstr ""
"Comme UmbraEdit doit garder la trace d'un grand nombre de fichiers et "
"de dossiers lorsqu'un projet est ouvert, il peut ne pas fonctionner "
"correctement sur certains systèmes de fichiers virtuels. Un fichier ou "
"un dossier doit être accessible avec exactement le chemin avec lequel il "
"a été sauvegardé ou créé. Un exemple où ce n'est pas le cas est la façon "
"dont Google Drive est mappé sur les bureaux Linux Gnome en utilisant "
"gvfs/gio."
#: ../../source/technical/storage.rst:42
msgid ""
"You should not add additional files to the project folder yourself. Nor "
"should you, as a rule, manually edit files within it. If you really must "
"manually edit the text files, e.g. with some automated task you want to "
"perform, you need to rebuild the Project Index when you open the project "
"again."
msgstr ""
"Vous ne devez pas ajouter vous-même des fichiers supplémentaires au "
"dossier du projet. En règle générale, vous ne devez pas non plus "
"modifier manuellement les fichiers qui s'y trouvent. Si vous devez "
"vraiment modifier manuellement les fichiers texte, par exemple dans le "
"cadre d'une tâche automatisée, vous devez reconstruire l'index du projet "
"lorsque vous ouvrez à nouveau le projet."
#: ../../source/technical/storage.rst:47
msgid ""
"Editing text files in the ``content`` folder is less risky as these are "
"just plain text. Editing the main project XML file, however, may make "
"the project file unreadable and you may crash UmbraEdit and lose "
"project structure information and project settings."
msgstr ""
"L'édition de fichiers texte dans le dossier ``content`` est moins "
"risquée car il s'agit de texte simple. Cependant, éditer le fichier XML "
"du projet principal peut rendre le fichier du projet illisible et vous "
"risquez de planter UmbraEdit et de perdre les informations sur la "
"structure et les paramètres du projet."
#: ../../source/technical/storage.rst:53
msgid "Project Structure"
msgstr "Structure du projet"
#: ../../source/technical/storage.rst:55
msgid ""
"All UmbraEdit files are written with utf-8 encoding. Since Python "
"automatically converts Unix line endings to Windows line endings on "
"Windows systems, UmbraEdit does not make any adaptations to the "
"formatting on Windows systems. This is handled entirely by the Python "
"standard library. Python also handles this when working on the same "
"files on both Windows and Unix-based operating systems."
msgstr ""
"Tous les fichiers UmbraEdit sont écrits avec l'encodage utf-8. Comme "
"Python convertit automatiquement les fins de ligne Unix en fins de ligne "
"Windows sur les systèmes Windows, UmbraEdit ne fait aucune adaptation "
"au formatage sur les systèmes Windows. Ceci est entièrement géré par la "
"bibliothèque standard de Python. Python s'en occupe également lorsqu'il "
"travaille sur les mêmes fichiers sur les systèmes d'exploitation Windows "
"et Unix."
#: ../../source/technical/storage.rst:63
msgid "Main Project File"
msgstr "Fichier principal du projet"
#: ../../source/technical/storage.rst:65
msgid ""
"The project itself requires a dedicated folder for storing its files, "
"where UmbraEdit will create its own \"file system\" where the "
"project's folder and file hierarchy is described in a project XML file. "
"This is the main project file in the project's root folder with the name "
"``nwProject.nwx``. This file also contains all the meta data required "
"for the project (except the index data), and a number of related project "
"settings."
msgstr ""
"Le projet lui-même nécessite un dossier dédié pour stocker ses fichiers, "
"où UmbraEdit créera son propre « système de fichiers » où la "
"hiérarchie des dossiers et des fichiers du projet est décrite dans un "
"fichier XML du projet. C'est le fichier principal du projet dans le "
"dossier racine du projet avec le nom ``nwProject.nwx``. Ce fichier "
"contient également toutes les métadonnées requises pour le projet (à "
"l'exception des données d'index), ainsi qu'un certain nombre de "
"paramètres liés au projet."
#: ../../source/technical/storage.rst:71
msgid ""
"If this file is lost or corrupted, the structure of the project is lost, "
"although not the text itself. It is important to keep this file backed "
"up, either through the built-in backup tool, or your own backup solution."
msgstr ""
"Si ce fichier est perdu ou corrompu, la structure du projet est perdue, "
"mais pas le texte lui-même. Il est important de sauvegarder ce fichier, "
"soit à l'aide de l'outil de sauvegarde intégré, soit à l'aide de votre "
"propre solution de sauvegarde."
#: ../../source/technical/storage.rst:75
msgid ""
"The project XML file is indent-formatted, and is suitable for diff tools "
"and version control since most of the file will stay static, although a "
"timestamp is set in the meta section on line 2, and various meta data "
"entries incremented, on each save."
msgstr ""
"Le fichier XML du projet est formaté en indentation et convient aux "
"outils de comparaison et de contrôle de version, car la majeure partie "
"du fichier reste statique, bien qu'un horodatage soit défini dans la "
"section méta à la ligne 2 et que diverses entrées de données méta soient "
"incrémentées à chaque enregistrement."
#: ../../source/technical/storage.rst:79
msgid ""
"A full project file format specification is available under \"More "
"Documents\"."
msgstr ""
"Une spécification complète du format de fichier du projet est disponible "
"sous « Plus d'informations »."
#: ../../source/technical/storage.rst:83
msgid "Project Documents"
msgstr "Documents de projet"
#: ../../source/technical/storage.rst:85
msgid ""
"All the project documents are saved in a subfolder of the main project "
"folder named ``content``. Each document has a file handle based on a 52 "
"bit random number, represented as a hexadecimal string. The documents "
"are saved with a filename assembled from this handle and the file "
"extension ``.nwd``."
msgstr ""
"Tous les documents du projet sont enregistrés dans un sous-dossier du "
"dossier principal du projet nommé ``content``. Chaque document possède "
"un identifiant de fichier basé sur un nombre aléatoire de 52 bits, "
"représenté sous la forme d'une chaîne hexadécimale. Les documents sont "
"enregistrés avec un nom de fichier assemblé à partir de cet identifiant "
"et de l'extension ``.nwd``."
#: ../../source/technical/storage.rst:90
msgid ""
"If you wish to find the file system location of a document in the "
"project, you can either look it up in the project XML file, select "
"**Show File Details** from the **Document** menu when having the "
"document open in the editor, or look in the ``ToC.txt`` file in the root "
"of the project folder. The ``ToC.txt`` file has a list of all documents "
"in the project, referenced by their label, and where they are saved."
msgstr ""
"Si vous souhaitez trouver l'emplacement du système de fichiers d'un "
"document dans le projet, vous pouvez soit le rechercher dans le fichier "
"XML du projet, soit sélectionner **Afficher les détails du fichier** "
"dans le menu **Document** lorsque le document est ouvert dans l'éditeur, "
"soit rechercher dans le fichier ``ToC.txt`` à la racine du dossier du "
"projet. Le fichier ``ToC.txt`` contient une liste de tous les documents "
"du projet, référencés par leur étiquette, et l'endroit où ils sont "
"sauvegardés."
#: ../../source/technical/storage.rst:96
msgid ""
"The reason for this cryptic file naming is to avoid issues with file "
"naming conventions and restrictions on different operating systems, and "
"also to have a file name that does not depend on what you name the "
"document within the project, or changes it to. This is particularly "
"useful when using a versioning system."
msgstr ""
"La raison de ce nom de fichier cryptique est d'éviter les problèmes liés "
"aux conventions de dénomination des fichiers et aux restrictions sur les "
"différents systèmes d'exploitation, et aussi d'avoir un nom de fichier "
"qui ne dépend pas du nom que vous donnez au document dans le projet, ou "
"des modifications que vous lui apportez. Ceci est particulièrement utile "
"lors de l'utilisation d'un système de gestion des versions."
#: ../../source/technical/storage.rst:101
msgid ""
"Each document file contains a plain text version of the text from the "
"editor. The file can in principle be edited in any text editor, and is "
"suitable for diffing and version control if so desired. Just make sure "
"the file remains in utf-8 encoding, otherwise unicode characters may "
"become mangled when the file is opened in UmbraEdit again."
msgstr ""
"Chaque fichier de document contient une version en texte brut du texte "
"de l'éditeur. Le fichier peut en principe être édité dans n'importe quel "
"éditeur de texte, et convient pour le diffing et le contrôle de version "
"si on le souhaite. Assurez-vous simplement que le fichier reste en "
"encodage utf-8, sinon les caractères unicode risquent d'être altérés "
"lorsque le fichier est ouvert dans UmbraEdit."
#: ../../source/technical/storage.rst:106
msgid ""
"Editing these files is generally not recommended. The reason for this is "
"that the index will not be automatically updated when doing so, which "
"means UmbraEdit doesn't know you've altered the file. If you *do* edit "
"a file in this manner, you should rebuild the index when you next open "
"the project in UmbraEdit."
msgstr ""
"Il est généralement déconseillé de modifier ces fichiers. La raison en "
"est que l'index ne sera pas automatiquement mis à jour, ce qui signifie "
"que UmbraEdit ne sait pas que vous avez modifié le fichier. Si vous "
"modifiez un fichier de cette manière, vous devez reconstruire l'index "
"lorsque vous ouvrez le projet dans UmbraEdit."
#: ../../source/technical/storage.rst:111
#, python-format
msgid ""
"The first lines of the file may contain some meta data starting with the "
"characters ``%%~``. These lines are mainly there to restore some "
"information if the file is lost from the main project file, and the "
"information may be helpful if you do open the file in an external editor "
"as it contains the document label and the document class and layout. The "
"lines can be deleted without any consequences to the rest of the content "
"of the file, and will be added back the next time the document is saved "
"in UmbraEdit."
msgstr ""
"Les premières lignes du fichier peuvent contenir des métadonnées "
"commençant par les caractères ``%%~``. Ces lignes sont principalement là "
"pour restaurer certaines informations si le fichier est perdu dans le "
"fichier principal du projet, et ces informations peuvent être utiles si "
"vous ouvrez le fichier dans un éditeur externe car elles contiennent "
"l'étiquette du document ainsi que la classe et la mise en page du "
"document. Les lignes peuvent être supprimées sans conséquences pour le "
"reste du contenu du fichier, et seront ajoutées la prochaine fois que le "
"document sera sauvegardé dans UmbraEdit."
#: ../../source/technical/storage.rst:120
msgid "The File Saving Process"
msgstr "Le processus d'enregistrement des fichiers"
#: ../../source/technical/storage.rst:122
msgid ""
"When saving the project file, or any of the documents, the data is first "
"saved to a temporary file. If successful, the old data file is then "
"removed, and the temporary file replaces it. This ensures that the "
"previously saved data is only replaced when the new data has been "
"successfully saved to the storage medium."
msgstr ""
"Lors de l'enregistrement du fichier de projet ou de l'un des documents, "
"les données sont d'abord enregistrées dans un fichier temporaire. En cas "
"de succès, l'ancien fichier de données est alors supprimé et remplacé "
"par le fichier temporaire. Cela garantit que les données précédemment "
"enregistrées ne sont remplacées que lorsque les nouvelles données ont "
"été enregistrées avec succès sur le support de stockage."
#: ../../source/technical/storage.rst:129
msgid "Project Meta Data"
msgstr "Métadonnées du projet"
#: ../../source/technical/storage.rst:131
msgid ""
"The project folder contains a subfolder named ``meta``, containing a "
"number of files. The meta folder contains semi-important files. That is, "
"they can be lost with only minor impact to the project. All files in "
"this folder are JSON or JSON Lines files, although some other files may "
"remain from earlier versions of UmbraEdit as they haven't all been "
"JSON files in the past."
msgstr ""
"Le dossier du projet contient un sous-dossier nommé ``meta``, contenant "
"un certain nombre de fichiers. Le dossier meta contient des fichiers "
"semi-importants. C'est-à-dire qu'ils peuvent être perdus avec un impact "
"mineur sur le projet. Tous les fichiers de ce dossier sont des fichiers "
"JSON ou JSON Lines, bien que certains autres fichiers puissent provenir "
"de versions antérieures de UmbraEdit, car ils n'ont pas tous été des "
"fichiers JSON dans le passé."
#: ../../source/technical/storage.rst:136
msgid ""
"If you use version control software on your project, you can exclude "
"this folder, although you may want to track the session log file and the "
"custom words list."
msgstr ""
"Si vous utilisez un logiciel de contrôle de version pour votre projet, "
"vous pouvez exclure ce dossier, même si vous souhaitez suivre le fichier "
"journal de la session et la liste des mots personnalisés."
#: ../../source/technical/storage.rst:141
msgid "The Project Index"
msgstr "L'index des projets"
#: ../../source/technical/storage.rst:143
msgid ""
"Between writing sessions, the project index is saved in a JSON file in "
"``meta/index.json``. This file is not critical. If it is lost, it can be "
"completely rebuilt from within UmbraEdit from the **Tools** menu."
msgstr ""
"Entre les sessions d'écriture, l'index du projet est sauvegardé dans un "
"fichier JSON dans ``meta/index.json``. Ce fichier n'est pas critique. "
"S'il est perdu, il peut être complètement reconstruit à partir de "
"UmbraEdit dans le menu **Outils**."
#: ../../source/technical/storage.rst:147
msgid ""
"The index is maintained and updated whenever a document or note is saved "
"in the editor. It contains all references and tags in documents and "
"notes, as well as the location of all headers in the project, and the "
"word counts within each header section."
msgstr ""
"L'index est maintenu et mis à jour chaque fois qu'un document ou une "
"note est enregistré dans l'éditeur. Il contient toutes les références et "
"les balises des documents et des notes, ainsi que l'emplacement de tous "
"les en-têtes dans le projet et le nombre de mots dans chaque section de "
"l'en-tête."
#: ../../source/technical/storage.rst:151
msgid ""
"The integrity of the index is checked when the file is loaded. It is "
"possible to corrupt the index if the file is manually edited and "
"manipulated, so the check is important to avoid sudden crashes of "
"UmbraEdit. If the file contains errors, UmbraEdit will automatically "
"build it anew. If the check somehow fails and UmbraEdit keeps "
"crashing, you can delete the file manually and rebuild the index. If "
"this too fails, you have likely encountered a bug."
msgstr ""
"L'intégrité de l'index est vérifiée lorsque le fichier est chargé. Il "
"est possible de corrompre l'index si le fichier est édité et manipulé "
"manuellement, c'est pourquoi cette vérification est importante pour "
"éviter les plantages soudains de UmbraEdit. Si le fichier contient des "
"erreurs, UmbraEdit le reconstruira automatiquement. Si la vérification "
"échoue d'une manière ou d'une autre et que UmbraEdit continue à se "
"bloquer, vous pouvez supprimer le fichier manuellement et reconstruire "
"l'index. Si cela échoue également, vous avez probablement rencontré un "
"bogue."
#: ../../source/technical/storage.rst:159
msgid "Build Definitions"
msgstr "Définitions des compilations"
#: ../../source/technical/storage.rst:161
msgid ""
"The build definitions from the **Manuscript Build** tool are kept in the "
"``meta/builds.json`` file. If this file is lost, all custom build "
"definitions are lost too."
msgstr ""
"Les définitions de construction de l'outil **Compilation du manuscrit** "
"sont conservées dans le fichier ``meta/builds.json``. Si ce fichier est "
"perdu, toutes les définitions de construction personnalisées sont "
"également perdues."
#: ../../source/technical/storage.rst:166
msgid "Cached GUI Options"
msgstr "Options de l'interface graphique mises en cache"
#: ../../source/technical/storage.rst:168
msgid ""
"A file named ``meta/options.json`` contains the latest state of various "
"GUI buttons, switches, dialog window sizes, column sizes, etc, from the "
"GUI. These are the GUI settings that are specific to the project. Global "
"GUI settings are stored in the main config file."
msgstr ""
"Un fichier nommé ``meta/options.json`` contient le dernier état des "
"différents boutons de l'interface graphique, des commutateurs, de la "
"taille des fenêtres de dialogue, de la taille des colonnes, etc, de "
"l'interface graphique. Ce sont les paramètres de l'interface graphique "
"qui sont spécifiques au projet. Les paramètres globaux de l'interface "
"graphique sont stockés dans le fichier de configuration principal."
#: ../../source/technical/storage.rst:172
msgid ""
"The file is not critical, but if it is lost, all such GUI options will "
"revert back to their default settings."
msgstr ""
"Le fichier n'est pas critique, mais s'il est perdu, toutes les options "
"de l'interface graphique reviendront à leurs paramètres par défaut."
#: ../../source/technical/storage.rst:177
msgid "Custom Word List"
msgstr "Liste des mots personnalisés"
#: ../../source/technical/storage.rst:179
msgid ""
"A file named ``meta/userdict.json`` contains all the custom words you've "
"added to the project for spell checking purposes. The content of the "
"file can be edited from the **Tools** menu. If you lose this file, all "
"your custom spell check words will be lost too."
msgstr ""
"Un fichier nommé ``meta/userdict.json`` contient tous les mots "
"personnalisés que vous avez ajoutés au projet à des fins de vérification "
"orthographique. Le contenu de ce fichier peut être édité à partir du "
"menu **Outils**. Si vous perdez ce fichier, tous vos mots personnalisés "
"pour la vérification orthographique seront également perdus."
#: ../../source/technical/storage.rst:185
msgid "Session Stats"
msgstr "Statistiques de la session"
#: ../../source/technical/storage.rst:187
msgid ""
"The writing progress is saved in the ``meta/sessions.jsonl`` file. This "
"file records the length and word counts of each writing session on the "
"given project. The file is used by the **Writing Statistics** tool. If "
"this file is lost, the history it contains is also lost, but it has "
"otherwise no impact on the project."
msgstr ""
"La progression de l'écriture est sauvegardée dans le fichier ``meta/"
"sessions.jsonl``. Ce fichier enregistre la durée et le nombre de mots de "
"chaque session d'écriture sur le projet donné. Ce fichier est utilisé "
"par l'outil **Statistiques d'écriture**. Si ce fichier est perdu, "
"l'historique qu'il contient est également perdu, mais cela n'a par "
"ailleurs aucun impact sur le projet."
#: ../../source/technical/storage.rst:192
msgid ""
"Each session is recorded as a JSON object on a single line of the file. "
"Each session record is appended tot he file."
msgstr ""
"Chaque session est enregistrée sous la forme d'un objet JSON sur une "
"seule ligne du fichier. Chaque enregistrement de session est ajouté au "
"fichier."

View File

@@ -1,160 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 11:41+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/technical/tests.rst:5
msgid "Running Tests"
msgstr "Exécution des tests"
#: ../../source/technical/tests.rst:7
msgid ""
"The UmbraEdit source code is well covered by tests. The test framework used "
"for the development is ``pytest`` with the use of an extension for Qt."
msgstr ""
"Le code source de UmbraEdit est bien couvert par des tests. Le cadre de test "
"utilisé pour le développement est ``pytest`` avec l'utilisation d'une extension "
"pour Qt."
#: ../../source/technical/tests.rst:12
msgid "Dependencies"
msgstr "Dépendances"
#: ../../source/technical/tests.rst:14
msgid "The dependencies for running the tests can be installed with:"
msgstr ""
"Les dépendances nécessaires à l'exécution des tests peuvent être installées "
"avec :"
#: ../../source/technical/tests.rst:20
msgid ""
"This will install a couple of extra packages for coverage and test management. "
"The minimum requirement is ``pytest`` and ``pytest-qt``."
msgstr ""
"Cela installera quelques paquets supplémentaires pour la couverture et la "
"gestion des tests. Le minimum requis est ``pytest`` et ``pytest-qt``."
#: ../../source/technical/tests.rst:25
msgid "Simple Test Run"
msgstr "Test simple"
#: ../../source/technical/tests.rst:27
msgid ""
"To run the tests, you simply need to execute the following from the root of the "
"source folder:"
msgstr ""
"Pour exécuter les tests, il suffit d'exécuter ce qui suit à partir de la racine "
"du dossier source :"
#: ../../source/technical/tests.rst:33
msgid ""
"Since several of the tests involve opening up the UmbraEdit GUI, you may want "
"to disable the GUI for the duration of the test run. Moving your mouse while "
"the tests are running may otherwise interfere with the execution of some tests."
msgstr ""
"Puisque plusieurs des tests impliquent l'ouverture de l'interface graphique de "
"UmbraEdit, vous pouvez désactiver l'interface graphique pour la durée de "
"l'exécution du test. Si vous déplacez votre souris pendant que les tests sont "
"en cours d'exécution, vous risquez d'interférer avec l'exécution de certains "
"tests."
#: ../../source/technical/tests.rst:37
msgid ""
"You can disable the renderring of the GUI by setting the flag "
"``QT_QPA_PLATFORM=offscreen``:"
msgstr ""
"Vous pouvez désactiver le rendu de l'interface graphique en définissant le "
"drapeau ``QT_QPA_PLATFORM=offscreen`` :"
#: ../../source/technical/tests.rst:45
msgid "Advanced Options"
msgstr "Options avancées"
#: ../../source/technical/tests.rst:47
msgid ""
"Adding the flag ``-v`` to the ``pytest`` command will increase verbosity of the "
"test execution."
msgstr ""
"L'ajout du drapeau ``-v`` à la commande ``pytest`` augmente la verbosité de "
"l'exécution du test."
#: ../../source/technical/tests.rst:49
msgid "You can also add coverage report generation. For instance to HTML:"
msgstr ""
"Vous pouvez également ajouter la génération de rapports de couverture. Par "
"exemple en HTML :"
#: ../../source/technical/tests.rst:55
msgid "Other useful report formats are ``xml``, and ``term`` for terminal output."
msgstr ""
"D'autres formats de rapport utiles sont ``xml``, et ``term`` pour la sortie "
"terminal."
#: ../../source/technical/tests.rst:57
msgid ""
"You can also run tests per subpackage of UmbraEdit with the ``-m`` command. "
"The available subpackage groups are ``base``, ``core``, and ``gui``. Consider "
"for instance:"
msgstr ""
"Vous pouvez aussi lancer des tests par sous-paquet de UmbraEdit avec la "
"commande ``-m``. Les groupes de sous-paquetages disponibles sont ``base``, "
"``core``, et ``gui``. Prenons un exemple :"
#: ../../source/technical/tests.rst:64
msgid ""
"This will only run the tests of the \"core\" package, that is, all the classes "
"that deal with the project data of a UmbraEdit project. The \"gui\" tests, "
"likewise, will run the tests for the GUI components, and the \"base\" tests "
"cover the bits in-between."
msgstr ""
"Ceci n'exécutera que les tests du paquet « core », c'est-à-dire toutes les "
"classes qui traitent les données d'un projet UmbraEdit. Les tests « gui », de "
"même, exécuteront les tests des composants de l'interface graphique, et les "
"tests « base » couvriront les éléments intermédiaires."
#: ../../source/technical/tests.rst:68
msgid ""
"You can also filter the tests with the ``-k`` switch. The following will do the "
"same as ``-m core``:"
msgstr ""
"Vous pouvez également filtrer les tests avec le commutateur ``-k``. Ce qui suit "
"fera la même chose que ``-m core`` :"
#: ../../source/technical/tests.rst:75
msgid ""
"All tests are named in such a way that you can filter them by adding more bits "
"of the test names. They all start with the word \"test\". Then comes the group: "
"\"Core\", \"Base\", \"Dlg\", \"Tool\", or \"Gui\". Finally comes the name of "
"the class or module, which generally corresponds to a single source code file. "
"For instance, running the following will run all tests for the document editor:"
msgstr ""
"Tous les tests sont nommés de manière à ce que vous puissiez les filtrer en "
"ajoutant d'autres éléments aux noms des tests. Ils commencent tous par le mot « "
"test ». Vient ensuite le groupe : « Core », “Base”, “Dlg”, “Tool” ou “Gui”. "
"Enfin, vient le nom de la classe ou du module, qui correspond généralement à un "
"seul fichier de code source. Par exemple, l'exécution de ce qui suit lancera "
"tous les tests pour l'éditeur de documents :"
#: ../../source/technical/tests.rst:84
msgid "To run a single test, simply add the full test name to the ``-k`` switch."
msgstr ""
"Pour lancer un seul test, il suffit d'ajouter le nom complet du test au "
"commutateur ``-k``."

View File

@@ -1,392 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 16:04+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/advanced_formatting.rst:5
msgid "Advanced Formatting"
msgstr "Mise en forme avancée"
#: ../../source/usage/advanced_formatting.rst:7
msgid ""
"Standard Markdown formatting is somewhat limited, so UmbraEdit has some "
"additional formatting codes for special use cases. These codes are all based "
"on brackets, and some allow an additional value to be set after a colon."
msgstr ""
"Le formatage Markdown standard est quelque peu limité, c'est pourquoi "
"UmbraEdit dispose de quelques codes de formatage supplémentaires pour des "
"cas d'utilisation particuliers. Ces codes sont tous basés sur les crochets, et "
"certains permettent de définir une valeur supplémentaire après les deux points."
#: ../../source/usage/advanced_formatting.rst:11
msgid "This section covers all these formatting codes."
msgstr "Cette section couvre tous ces codes de formatage."
#: ../../source/usage/advanced_formatting.rst:17
msgid "Formatting with Shortcodes"
msgstr "Mise en forme avec les shortcodes"
#: ../../source/usage/advanced_formatting.rst:19
msgid ""
"For basic formatting, like emphasis, you should use the standard Markdown "
"style formatting tags descried in :ref:`docs_usage_basics_emphasis` whenever "
"possible."
msgstr ""
"Pour le formatage de base, comme la mise en valeur, vous devriez utiliser les "
"balises de formatage standard du style Markdown décrites dans :ref:"
"`docs_usage_basics_emphasis` chaque fois que possible."
#: ../../source/usage/advanced_formatting.rst:22
msgid ""
"For additional formatting options, you can use shortcodes. Shortcodes is a "
"form of in-line codes that wrap the section of text to be formatted. "
"Shortcodes can be nested to apply multiple formats to the same piece of text."
msgstr ""
"Pour des options de formatage supplémentaires, vous pouvez utiliser des "
"shortcodes. Les shortcodes sont une forme de codes en ligne qui enveloppent la "
"section de texte à mettre en forme. Les shortcodes peuvent être imbriqués pour "
"appliquer plusieurs formats à la même partie de texte."
#: ../../source/usage/advanced_formatting.rst:26
msgid ""
"These shortcodes are intended for special formatting cases, or more complex "
"cases that cannot be solved with simple Markdown-like formatting codes. "
"Available shortcodes are listed below."
msgstr ""
"Ces shortcodes sont destinés à des cas de formatage spéciaux ou à des cas plus "
"complexes qui ne peuvent pas être résolus avec de simples codes de formatage "
"de type Markdown. Les shortcodes disponibles sont énumérés ci-dessous."
#: ../../source/usage/advanced_formatting.rst:29
msgid "Shortcodes Formats"
msgstr "Formats des shortcodes"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Syntax"
msgstr "Syntaxe"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Description"
msgstr "Description"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[b]text[/b]``"
msgstr "``[b]texte[/b]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Text is displayed as bold text."
msgstr "Le texte est affiché en gras."
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[i]text[/i]``"
msgstr "``[i]texte[/i]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Text is displayed as italicised text."
msgstr "Le texte est affiché en italique."
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[s]text[/s]``"
msgstr "``[s]texte[/s]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Text is displayed as strike through text."
msgstr "Le texte est affiché sous forme de texte barré."
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[u]text[/u]``"
msgstr "``[u]texte[/u]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Text is displayed as underlined text."
msgstr "Le texte est affiché sous forme de texte souligné."
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[m]text[/m]``"
msgstr "``[m]texte[/m]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Text is displayed as highlighted text."
msgstr "Le texte est affiché en surbrillance."
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[sup]text[/sup]``"
msgstr "``[sup]texte[/sup]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Text is displayed as superscript text."
msgstr "Le texte est affiché en exposant."
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[sub]text[/sub]``"
msgstr "``[sub]texte[/sub]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Text is displayed as subscript text."
msgstr "Le texte est affiché en indice."
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[footnote:key]``"
msgstr "``[footnote:clé]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "A reference to a :ref:`footnote comment <docs_usage_comments_footnotes>`."
msgstr ""
"Une référence à un :ref:`commentaire de note de bas de page "
"<docs_usage_comments_footnotes>`."
#: ../../source/usage/advanced_formatting.rst:43
msgid ""
"Unlike Markdown style codes, these can be used anywhere within a paragraph. "
"Even in the middle of a word if you need to. You can also freely combine them "
"to form more complex formatting."
msgstr ""
"Contrairement aux codes de style Markdown, ces codes peuvent être utilisés "
"n'importe où dans un paragraphe. Même au milieu d'un mot si nécessaire. Vous "
"pouvez également les combiner librement pour obtenir une mise en forme plus "
"complexe."
#: ../../source/usage/advanced_formatting.rst:46
msgid ""
"The shortcodes are available from the **Format** menu and in the editor "
"toolbar, which can be activated by clicking the left-most icon button in the "
"editor header."
msgstr ""
"Les shortcodes sont disponibles dans le menu **Format** et dans la barre "
"d'outils de l'éditeur, qui peut être activée en cliquant sur l'icône la plus à "
"gauche dans l'en-tête de l'éditeur."
#: ../../source/usage/advanced_formatting.rst:51
msgid ""
"Shortcodes are not processed until you generate a preview or generate a "
"manuscript document. So there is no highlighting of the text between the "
"formatting markers. There is also no check that your markers make sense. You "
"must ensure that you have both the opening and closing formatting markers "
"where you want them."
msgstr ""
"Les shortcodes ne sont pas traités tant que vous n'avez pas généré un aperçu "
"ou un document manuscrit. Il n'y a donc pas de mise en évidence du texte entre "
"les marqueurs de formatage. Il n'y a pas non plus de vérification de la "
"logique de vos marqueurs. Vous devez vous assurer que les marqueurs de "
"formatage d'ouverture et de fermeture se trouvent à l'endroit voulu."
#: ../../source/usage/advanced_formatting.rst:62
msgid "Vertical Space and Page Breaks"
msgstr "Espace vertical et sauts de page"
#: ../../source/usage/advanced_formatting.rst:64
msgid ""
"You can apply page breaks to partition, chapter and scene headings for novel "
"documents from the **Manuscript Build** tool. If you need to add a page break "
"or additional vertical spacing in other places, there are special codes "
"available for this purpose."
msgstr ""
"Vous pouvez appliquer des sauts de page aux en-têtes de partition, de chapitre "
"et de scène pour les documents de roman à partir de l'outil **Compiler le "
"manuscrit**. Si vous avez besoin d'ajouter un saut de page ou un espacement "
"vertical supplémentaire à d'autres endroits, il existe des codes spéciaux à "
"cet effet."
#: ../../source/usage/advanced_formatting.rst:68
msgid ""
"Adding more than one line break between paragraphs will **not** increase the "
"space between those paragraphs when generating a manuscript document. To add "
"additional space between paragraphs, add the text ``[vspace]`` on a line of "
"its own, and the **Manuscript Build** tool will insert a blank paragraph in "
"its place."
msgstr ""
"L'ajout de plus d'un saut de ligne entre les paragraphes n'augmentera **pas** "
"l'espace entre ces paragraphes lors de la génération d'un document manuscrit. "
"Pour ajouter de l'espace entre les paragraphes, ajoutez le texte ``[vspace]`` "
"sur une ligne distincte, et l'outil **Compilation du manuscrit** insérera un "
"paragraphe vide à sa place."
#: ../../source/usage/advanced_formatting.rst:73
msgid ""
"If you need multiple blank paragraphs just add a colon and a number to the "
"above code. For instance, writing ``[vspace:3]`` will insert three blank "
"paragraphs."
msgstr ""
"Si vous avez besoin de plusieurs paragraphes vides, il suffit d'ajouter deux "
"points et un chiffre au code ci-dessus. Par exemple, en écrivant "
"``[vspace:3]``, vous insérerez trois paragraphes vides."
#: ../../source/usage/advanced_formatting.rst:76
msgid ""
"If you need to add a page break somewhere, put the text ``[new page]`` on a "
"line by itself before the text you wish to start on a new page."
msgstr ""
"Si vous devez ajouter un saut de page quelque part, placez le texte ``[ new "
"page]`` sur une ligne isolée avant le texte que vous souhaitez faire commencer "
"sur une nouvelle page."
#: ../../source/usage/advanced_formatting.rst:81
msgid ""
"The page break code is applied to the text that follows it. It adds a \"page "
"break before\" mark to the text when exporting to HTML or Open Document. This "
"means that a ``[new page]`` code which has no text following it will not "
"result in a page break."
msgstr ""
"Le code de saut de page est appliqué au texte qui le suit. Il ajoute une "
"marque de « saut de page avant » au texte lors de l'exportation vers HTML ou "
"Open Document. Cela signifie qu'un code ``[ new page]`` qui n'est suivi "
"d'aucun texte n'entraînera pas de saut de page."
#: ../../source/usage/advanced_formatting.rst:85
#: ../../source/usage/advanced_formatting.rst:132
msgid ":bdg-info:`Example`"
msgstr ":bdg-info:`Exemple`"
#: ../../source/usage/advanced_formatting.rst:104
msgid "Inserting Word Counts in the Text"
msgstr "Insérer le nombre de mots dans le texte"
#: ../../source/usage/advanced_formatting.rst:106
msgid ""
"The cover page of a manuscript normally has the word count stated on it. Any "
"statistics value collected by UmbraEdit can be inserted into any document "
"using a special shortcode. You can insert the code for any of the available "
"statistics values from the **Insert** menu under **Word/Character Count**."
msgstr ""
"La page de couverture d'un manuscrit indique normalement le nombre de mots. "
"Toute valeur statistique collectée par UmbraEdit peut être insérée dans "
"n'importe quel document à l'aide d'un shortcode spécial. Vous pouvez insérer "
"le code pour n'importe quelle valeur statistique disponible dans le menu "
"**Insérer** sous **Nombre de mots/caractères**."
#: ../../source/usage/advanced_formatting.rst:111
msgid ""
"The value inserted is the actual count for your entire manuscript, so it is "
"not populated until you run the **Manuscript Build** tool. Until then they "
"will show up as \"0\" in the viewer panel."
msgstr ""
"La valeur insérée est le nombre réel pour l'ensemble de votre manuscrit, elle "
"n'est donc pas renseignée tant que vous n'avez pas exécuté l'outil "
"**Compilation du manuscrit**. Jusqu'à ce moment-là, ils apparaîtront sous la "
"forme d'un « 0 » dans le panneau de visualisation."
#: ../../source/usage/advanced_formatting.rst:114
msgid "The available codes are:"
msgstr "Les codes disponibles sont les suivants :"
#: ../../source/usage/advanced_formatting.rst:116
msgid "Stats Shortcodes"
msgstr "Shortcodes de statistiques"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Code"
msgstr "Code"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:allChars]``"
msgstr "``[field:allChars]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Characters"
msgstr "Personnages"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:textChars]``"
msgstr "``[field:textChars]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Characters in Text"
msgstr "Caractères dans un texte"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:titleChars]``"
msgstr "``[field:titleChars]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Characters in Headings"
msgstr "Caractères dans les titres"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:paragraphCount]``"
msgstr "``[field:paragraphCount]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Paragraphs"
msgstr "Paragraphes"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:titleCount]``"
msgstr "``[field:titleCount]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Headings"
msgstr "En-têtes"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:allWordChars]``"
msgstr "``[field:allWordChars]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Characters, No Spaces"
msgstr "Caractères, sans les espaces"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:textWordChars]``"
msgstr "``[field:textWordChars]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Characters in Text, No Spaces"
msgstr "Caractères dans le texte, sans les espaces"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:titleWordChars]``"
msgstr "``[field:titleWordChars]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Characters in Headings, No Spaces"
msgstr "Caractères dans les titres, sans les espaces"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:allWords]``"
msgstr "``[field:allWords]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Words"
msgstr "Mots"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:textWords]``"
msgstr "``[field:textWords]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Words in Text"
msgstr "Mots dans le texte"
#: ../../source/usage/advanced_formatting.rst:1
msgid "``[field:titleWords]``"
msgstr "``[field:titleWords]``"
#: ../../source/usage/advanced_formatting.rst:1
msgid "Words in Headings"
msgstr "Mots dans les entêtes"
#: ../../source/usage/advanced_formatting.rst:134
msgid ""
"This is an example cover page. A similar page is automatically generated when "
"you create a new project."
msgstr ""
"Il s'agit d'un exemple de page de couverture. Une page similaire est "
"automatiquement générée lorsque vous créez un nouveau projet."

View File

@@ -1,185 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 14:45+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/alignment_and_indent.rst:5
msgid "Alignment and Indentation"
msgstr "Alignement et indentation"
#: ../../source/usage/alignment_and_indent.rst:7
msgid ""
"The Markdown standard doesn't have commands for aligning text, so "
"UmbraEdit adds its own syntax for this. It also has syntax for "
"indentation, which is similar to Markdown block quotes."
msgstr ""
"Le standard Markdown n'a pas de commandes pour aligner le texte, donc "
"UmbraEdit ajoute sa propre syntaxe pour cela. Il dispose également "
"d'une syntaxe pour l'indentation, qui est similaire aux guillemets de "
"bloc de Markdown."
#: ../../source/usage/alignment_and_indent.rst:12
msgid "Paragraph Alignment and Indentation"
msgstr "Alignement et indentation des paragraphes"
#: ../../source/usage/alignment_and_indent.rst:14
msgid ""
"All documents have the text by default aligned to the left or justified, "
"depending on your setting in **Preferences**."
msgstr ""
"Le texte de tous les documents est par défaut aligné à gauche ou "
"justifié, selon les paramètres définis dans les **Préférences**."
#: ../../source/usage/alignment_and_indent.rst:17
msgid ""
"You can override the default text alignment on individual paragraphs by "
"specifying alignment tags. These tags are double angle brackets. Either "
"``>>`` or ``<<``. You put them either before or after the paragraph, and "
"they will \"push\" the text towards the edge the brackets point towards. "
"This should be fairly intuitive."
msgstr ""
"Vous pouvez remplacer l'alignement par défaut du texte sur des "
"paragraphes individuels en spécifiant des balises d'alignement. Ces "
"balises sont des doubles chevrons. Il peut s'agir de ``>>`` ou de "
"``<<``. Vous les placez avant ou après le paragraphe, et elles « "
"pousseront » le texte vers le bord vers lequel les crochets pointent. "
"Cela devrait être assez intuitif."
#: ../../source/usage/alignment_and_indent.rst:22
msgid ""
"Indentation uses a similar syntax. But here you use a single ``>`` or "
"``<`` to \"push\" the text away from the edge."
msgstr ""
"L'indentation utilise une syntaxe similaire. Mais ici, vous utilisez un "
"seul ``>`` ou ``<`` pour éloigner le texte du bord."
#: ../../source/usage/alignment_and_indent.rst:25
#: ../../source/usage/alignment_and_indent.rst:52
#: ../../source/usage/alignment_and_indent.rst:69
msgid ":bdg-info:`Example`"
msgstr ":bdg-info:`Exemple`"
#: ../../source/usage/alignment_and_indent.rst:27
msgid "Text Alignment and Indentation"
msgstr "Alignement et indentation du texte"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "Syntax"
msgstr "Syntaxe"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "Description"
msgstr "Description"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "``>> Right aligned text``"
msgstr "``>> Texte aligné à droite``"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "The text paragraph is right-aligned."
msgstr "Le paragraphe est aligné à droite."
#: ../../source/usage/alignment_and_indent.rst:1
msgid "``Left aligned text <<``"
msgstr "``Texte aligné à gauche <<``"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "The text paragraph is left-aligned."
msgstr "Le paragraphe est aligné à gauche."
#: ../../source/usage/alignment_and_indent.rst:1
msgid "``>> Centred text <<``"
msgstr "``>> Texte centré <<``"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "The text paragraph is centred."
msgstr "Le paragraphe est centré."
#: ../../source/usage/alignment_and_indent.rst:1
msgid "``> Left indented text``"
msgstr "``> Texte en retrait à gauche``"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "The text has an increased left margin."
msgstr "Le texte a une marge gauche plus importante."
#: ../../source/usage/alignment_and_indent.rst:1
msgid "``Right indented text <``"
msgstr "``Texte en retrait à droite <``"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "The text has an increased right margin."
msgstr "Le texte a une marge droite plus importante."
#: ../../source/usage/alignment_and_indent.rst:1
msgid "``> Left/right indented text <``"
msgstr "``> Texte indenté gauche/droite <```"
#: ../../source/usage/alignment_and_indent.rst:1
msgid "The text has both margins increased."
msgstr "Les deux marges du texte ont été augmentées."
#: ../../source/usage/alignment_and_indent.rst:41
msgid ""
"The text editor will not show the alignment and indentation live. But "
"the viewer will show them when you open the document there. It will of "
"course also be reflected in the document generated from the **Manuscript "
"Build** tool as long as the format supports paragraph alignment."
msgstr ""
"L'éditeur de texte n'affiche pas l'alignement et l'indentation en "
"direct. Mais l'afficheur les affichera lorsque vous y ouvrirez le "
"document. Ils seront bien sûr également reflétés dans le document généré "
"par l'outil de compilation de manuscrits, à condition que le format "
"prenne en charge l'alignement des paragraphes."
#: ../../source/usage/alignment_and_indent.rst:47
msgid "Alignment with Line Breaks"
msgstr "Alignement avec les sauts de ligne"
#: ../../source/usage/alignment_and_indent.rst:49
msgid ""
"If you have line breaks in the paragraph, the markers for all the lines "
"are combined and used for the entire paragraph. For the following text, "
"all lines will be centred:"
msgstr ""
"Si le paragraphe comporte des retours à la ligne, les marqueurs de "
"toutes les lignes sont combinés et utilisés pour l'ensemble du "
"paragraphe. Pour le texte suivant, toutes les lignes seront centrées :"
#: ../../source/usage/alignment_and_indent.rst:63
msgid "Alignment with First Line Indent"
msgstr "Alignement sur le retrait de la première ligne"
#: ../../source/usage/alignment_and_indent.rst:65
msgid ""
"If you have first line indent enabled in your manuscript build settings, "
"you probably want to disable it for text in verses. Adding any alignment "
"tags will cause the first line indent to be switched off for that "
"paragraph."
msgstr ""
"Si vous avez activé le retrait de première ligne dans les paramètres de "
"compilation de votre Manuscrit, vous voudrez probablement le désactiver "
"pour le texte en vers. L'ajout de balises d'alignement entraînera la "
"désactivation du retrait de première ligne pour ce paragraphe."
#: ../../source/usage/alignment_and_indent.rst:71
msgid "The following text will always be aligned against the left margin:"
msgstr "Le texte suivant sera toujours aligné sur la marge de gauche :"

View File

@@ -1,219 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 10:44+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/basic_formatting.rst:5
msgid "Basic Formatting"
msgstr "Mise en forme de base"
#: ../../source/usage/basic_formatting.rst:9
msgid ""
"The basic text formatting syntax of UmbraEdit is based on Markdown_. "
"It is only a subset of the Markdown syntax though. Lists, images, and "
"links are not supported."
msgstr ""
"La syntaxe de formatage de texte de base de UmbraEdit est basée sur "
"Markdown_. Il ne s'agit toutefois que d'un sous-ensemble de la syntaxe "
"Markdown. Les listes, les images et les liens ne sont pas pris en charge."
#: ../../source/usage/basic_formatting.rst:12
msgid ""
"That said, URLs in the text should automatically be highlighted and "
"become clickable. However, only URLs starting with \"http\" or \"https\" "
"are recognised. In the editor, you must hold down the :kbd:`Ctrl` key "
"when clicking a URL to follow it."
msgstr ""
"Cela dit, les URL dans le texte devraient automatiquement être mis en "
"évidence et devenir cliquables. Cependant, seules les URL commençant par "
"« http » ou « https » sont reconnues. Dans l'éditeur, vous devez "
"maintenir la touche :kbd:`Ctrl` enfoncée lorsque vous cliquez sur une "
"URL pour la suivre."
#: ../../source/usage/basic_formatting.rst:20
msgid "Text Paragraphs"
msgstr "Paragraphes du texte"
#: ../../source/usage/basic_formatting.rst:22
msgid ""
"A text paragraph is indicated by a blank line. That is, you need two "
"line breaks to separate two fragments of text into two paragraphs. "
"Single line breaks are treated as line breaks within a paragraph."
msgstr ""
"Un paragraphe de texte est indiqué par une ligne blanche. En d'autres "
"termes, il faut deux sauts de ligne pour séparer deux fragments de texte "
"en deux paragraphes. Les sauts de ligne simples sont traités comme des "
"sauts de ligne à l'intérieur d'un paragraphe."
#: ../../source/usage/basic_formatting.rst:26
msgid ""
"It is important that you actually follow this rule. You should not, for "
"instance, mimic indented paragraphs manually in the editor. This, and a "
"lot of other formatting options that can be applied to text paragraphs "
"in the :ref:`Manuscript Tool <docs_ui_manuscript>` depend on paragraphs "
"being separated by blank lines."
msgstr ""
"Il est important de respecter cette règle. Vous ne devez pas, par "
"exemple, imiter les paragraphes indentés manuellement dans l'éditeur. "
"Ceci, ainsi que beaucoup d'autres options de formatage qui peuvent être "
"appliquées aux paragraphes de texte dans l'outil :ref:`Manuscript Tool "
"<docs_ui_manuscript>`, dépendent du fait que les paragraphes sont "
"séparés par des lignes vides."
#: ../../source/usage/basic_formatting.rst:31
msgid ":bdg-success:`Correct`"
msgstr ":bdg-success:`Correct`"
#: ../../source/usage/basic_formatting.rst:41
msgid ":bdg-danger:`Incorrect`"
msgstr ":bdg-danger:`Incorrect`"
#: ../../source/usage/basic_formatting.rst:50
msgid ""
"If you do as shown in the \"Incorrect\" example, UmbraEdit will "
"understand this as a single paragraph with two lines."
msgstr ""
"Si vous procédez comme dans l'exemple « Incorrect », UmbraEdit "
"comprendra qu'il s'agit d'un seul paragraphe de deux lignes."
#: ../../source/usage/basic_formatting.rst:57
msgid "Text Emphasis with Markdown"
msgstr "Mise en valeur du texte avec Markdown"
#: ../../source/usage/basic_formatting.rst:59
msgid ""
"A minimal set of Markdown text emphasis styles are supported for text "
"paragraphs."
msgstr ""
"Un ensemble minimal de styles d'accentuation de texte Markdown est pris "
"en charge pour les paragraphes de texte."
#: ../../source/usage/basic_formatting.rst:61
msgid "``_text_``"
msgstr "``_texte_``"
#: ../../source/usage/basic_formatting.rst:62
msgid "The text is rendered as emphasised text (italicised)."
msgstr "Le texte est rendu en italique."
#: ../../source/usage/basic_formatting.rst:64
msgid "``**text**``"
msgstr "``**texte**``"
#: ../../source/usage/basic_formatting.rst:65
msgid "The text is rendered as strongly emphasised text (bold)."
msgstr "Le texte est rendu en gras."
#: ../../source/usage/basic_formatting.rst:67
msgid "``~~text~~``"
msgstr "``~~texte~~``"
#: ../../source/usage/basic_formatting.rst:68
msgid "Strike through text."
msgstr "Barrer le texte."
#: ../../source/usage/basic_formatting.rst:70
msgid ""
"In Markdown guides it is often recommended to differentiate between "
"strong emphasis and emphasis by using ``**`` for strong and ``_`` for "
"emphasis, although Markdown generally also supports ``__`` for strong "
"and ``*`` for emphasis. However, since the differentiation makes the "
"highlighting and conversion significantly simpler and faster, in "
"UmbraEdit this is a rule, not just a recommendation."
msgstr ""
"Dans les guides Markdown, il est souvent recommandé de différencier le "
"gras de l'italique en utilisant ``**`` pour le gras et ``_`` pour "
"l'italique, bien que Markdown supporte également ``__`` pour le gras et "
"``*`` pour l'italique. Cependant, puisque la différenciation rend la "
"mise en évidence et la conversion significativement plus simple et plus "
"rapide, dans UmbraEdit il s'agit d'une règle et non d'une simple "
"recommandation."
#: ../../source/usage/basic_formatting.rst:76
msgid "In addition, the following rules apply:"
msgstr "En outre, les règles suivantes s'appliquent :"
#: ../../source/usage/basic_formatting.rst:78
msgid ""
"The emphasis and strike through formatting tags do not allow spaces "
"between the words and the tag itself. That is, ``**text**`` is valid, "
"``**text **`` is not."
msgstr ""
"Les balises de mise en valeur et de biffage n'autorisent pas les espaces "
"entre les mots et la balise elle-même. Autrement dit, ``**texte**`` est "
"valide, ``**texte **`` ne l'est pas."
#: ../../source/usage/basic_formatting.rst:80
msgid ""
"More generally, the delimiters must be on the outer edge of words. That "
"is, ``some **text in bold** here`` is valid, ``some** text in bold** "
"here`` is not."
msgstr ""
"Plus généralement, les délimiteurs doivent se trouver aux bords des "
"mots. Autrement dit, « certains **textes en gras** ici » sont valides, « "
"certains** textes en gras** ici » ne le sont pas."
#: ../../source/usage/basic_formatting.rst:82
msgid ""
"If using both ``**`` and ``_`` to wrap the same text, the underscore "
"must be the **inner** wrapper. This is due to the underscore also being "
"a valid word character, so if they are on the outside, they violate rule "
"2."
msgstr ""
"Si vous utilisez à la fois ``**`` et ``_`` pour envelopper le même "
"texte, le trait de soulignement doit être à **l'intérieure**. Ceci est "
"dû au fait que le trait de soulignement est également un caractère "
"verbal valide, donc s'il est à l'extérieur, il viole la règle 2."
#: ../../source/usage/basic_formatting.rst:85
msgid ""
"Text emphasis does not span past line breaks. If you need to add "
"emphasis to multiple lines or paragraphs, you must apply it to each of "
"them in turn."
msgstr ""
"L'accentuation du texte ne s'étend pas au-delà des sauts de ligne. Si "
"vous devez ajouter une emphase à plusieurs lignes ou paragraphes, vous "
"devez l'appliquer à chacun d'entre eux à tour de rôle."
#: ../../source/usage/basic_formatting.rst:87
msgid ""
"Text emphasis can only be used in comments and paragraphs. Headings and "
"meta data tags don't allow for formatting, and any formatting markup "
"will be displayed as-is."
msgstr ""
"Cette mise en valeur du texte ne peut être utilisée que dans les "
"commentaires et les paragraphes. Les titres et les balises de "
"métadonnées ne permettent pas la mise en forme, et toute marque de mise "
"en forme sera affichée telle quelle."
#: ../../source/usage/basic_formatting.rst:92
msgid ""
"UmbraEdit supports standard escape syntax for the emphasis markup "
"characters in case the editor misunderstands your intended usage of "
"them. That is, ``\\*``, ``\\_`` and ``\\~`` will generate a plain ``*``, "
"``_`` and ``~``, respectively, without interpreting them as part of the "
"markup."
msgstr ""
"UmbraEdit supporte la syntaxe d'échappement standard pour les "
"caractères d'accentuation au cas où l'éditeur ne comprendrait pas "
"l'usage que vous voulez en faire. C'est-à-dire que ``\\*``, ``\\_`` et "
"``\\~`` généreront respectivement un ``*``, ``_`` et ``~``, sans les "
"interpréter comme faisant partie du balisage."

View File

@@ -1,261 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-29 14:27+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/chapters_and_scenes.rst:5
msgid "Chapters and Scenes"
msgstr "Chapitres et scènes"
#: ../../source/usage/chapters_and_scenes.rst:9
msgid ""
"Since UmbraEdit uses a plain text format, the structure of your novel must "
"follow a certain set of simple rules. For documents in a **Novel** type root "
"folder, it is the heading that determines if the document is a chapter or a "
"scene."
msgstr ""
"Comme UmbraEdit utilise un format de texte brut, la structure de votre "
"roman doit suivre un certain nombre de règles simples. Pour les documents "
"situés dans un dossier racine de type **Roman**, c'est le titre qui détermine "
"s'il s'agit d'un chapitre ou d'une scène."
#: ../../source/usage/chapters_and_scenes.rst:13
msgid ""
"The formatting of headings is based on Markdown_. A heading is indicated by a "
"line starting with one or more ``#`` characters. It accepts up to four of "
"these. You can use multiple headings in the same document, but it is the "
"first heading that determines which icon and information is displayed in the "
"project tree."
msgstr ""
"Le formatage des titres est basé sur Markdown_. Un titre est indiqué par une "
"ligne commençant par un ou plusieurs caractères ``#``. Il en accepte jusqu'à "
"quatre. Vous pouvez utiliser plusieurs titres dans le même document, mais "
"c'est le premier titre qui détermine l'icône et les informations affichées "
"dans l'arborescence du projet."
#: ../../source/usage/chapters_and_scenes.rst:20
msgid ""
"You can use the same heading levels for your notes in the other root folders, "
"but they aren't treated as chapters or scenes, so there you are free to use "
"them as you want."
msgstr ""
"Vous pouvez utiliser les mêmes niveaux de titres pour vos notes dans les "
"autres dossiers racines, mais ils ne sont pas traités comme des chapitres ou "
"des scènes, et vous êtes donc libre de les utiliser comme vous le souhaitez."
#: ../../source/usage/chapters_and_scenes.rst:27
msgid "Heading Levels"
msgstr "Niveaux d'en-tête"
#: ../../source/usage/chapters_and_scenes.rst:31
msgid "An illustration of how heading levels correspond to the novel structure."
msgstr ""
"Illustration de la correspondance entre les niveaux d'en-tête et la structure "
"du roman."
#: ../../source/usage/chapters_and_scenes.rst:33
msgid ""
"Four levels of headings are understood for novel documents. You can pick and "
"choose from these as you want, but if your story has chapters, you should use "
"these headings to indicate them. If you also add scene headings, you have "
"better control of how your scene separators are formatted in your manuscript. "
"The chapter and scenes headings are also displayed in the :ref:`Novel View "
"<docs_ui_main_novel>` and :ref:`Outline View <docs_ui_main_outline>`."
msgstr ""
"Quatre niveaux d'en-têtes sont prévus pour les documents de roman. Vous "
"pouvez les choisir à votre guise, mais si votre histoire comporte des "
"chapitres, vous devez utiliser ces titres pour les indiquer. Si vous ajoutez "
"également des titres de scènes, vous pourrez mieux contrôler la façon dont "
"vos séparateurs de scènes sont formatés dans votre manuscrit. Les titres de "
"chapitres et de scènes sont également affichés dans les vues :ref:`Novel View "
"<docs_ui_main_novel>` et :ref:`Outline View <docs_ui_main_outline>`."
#: ../../source/usage/chapters_and_scenes.rst:39
msgid "``# Title Text``"
msgstr "``# Texte de titre``"
#: ../../source/usage/chapters_and_scenes.rst:40
msgid ""
"This is a heading level one. This heading indicates the start of a new "
"partition. Partitions are for when you want to split your story into \"Part "
"1\", \"Part 2\", etc. You can also choose to use them for splitting the text "
"up into acts, and then hide these headings in your manuscript so that they "
"are not included in the output."
msgstr ""
"Il s'agit d'une en-tête de niveau un. Ce titre indique le début d'une "
"nouvelle partie. Les parties sont utilisées lorsque vous souhaitez diviser "
"votre histoire en « Partie 1 », « Partie 2 », etc. Vous pouvez également "
"choisir de les utiliser pour diviser le texte en actes, puis de masquer ces "
"titres dans votre manuscrit afin qu'ils ne soient pas inclus dans la sortie."
#: ../../source/usage/chapters_and_scenes.rst:45
msgid "``## Chapter Title``"
msgstr "``## Titre de chapitre``"
#: ../../source/usage/chapters_and_scenes.rst:46
msgid ""
"This is a heading level two. This heading indicates the start of a new "
"chapter. Chapter numbers can be inserted automatically when building the "
"manuscript, so you don't have to do this in the title. See :ref:"
"`docs_ui_manuscript_head_numbers` for more details."
msgstr ""
"Il s'agit d'une en-tête de niveau deux. Ce titre indique le début d'un "
"nouveau chapitre. Les numéros de chapitre peuvent être insérés "
"automatiquement lors de la construction du manuscrit, de sorte que vous "
"n'avez pas à le faire dans le titre. Voir :ref:"
"`docs_ui_manuscript_head_numbers` pour plus de détails."
#: ../../source/usage/chapters_and_scenes.rst:50
msgid "``### Scene Title``"
msgstr "``### Titre de scène``"
#: ../../source/usage/chapters_and_scenes.rst:51
msgid ""
"This is a heading level three. This heading indicates the start of a new "
"scene. Scene numbers or scene separators can be inserted automatically when "
"building the manuscript, so you can use the title field as a working title "
"for your scenes if you wish, but you must provide a minimal title."
msgstr ""
"Il s'agit d'une en-tête de niveau trois. Ce titre indique le début d'une "
"nouvelle scène. Des numéros de scène ou des séparateurs de scène peuvent être "
"insérés automatiquement lors de la construction du manuscrit. Vous pouvez "
"donc utiliser le champ titre comme titre de travail pour vos scènes si vous "
"le souhaitez, mais vous devez fournir un titre minimal."
#: ../../source/usage/chapters_and_scenes.rst:56
msgid "``#### Section Title``"
msgstr "``#### Titre de section``"
#: ../../source/usage/chapters_and_scenes.rst:57
msgid ""
"This is a heading level four. This heading indicates the start of a new "
"section. Section titles can be replaced by separators or ignored completely "
"when building the manuscript. The meaning of a section is really whatever you "
"want it to be. You can use it to split your scenes up into chunks, or into "
"separate documents."
msgstr ""
"Il s'agit d'une en-tête de niveau quatre. Ce titre indique le début d'une "
"nouvelle section. Les titres de section peuvent être remplacés par des "
"séparateurs ou ignorés complètement lors de la construction du manuscrit. La "
"signification d'une section est en fait celle que vous voulez lui donner. "
"Vous pouvez l'utiliser pour diviser vos scènes en morceaux ou en documents "
"distincts."
#: ../../source/usage/chapters_and_scenes.rst:62
msgid ""
"For headings level one through three, adding a ``!`` modifies the meaning of "
"the heading. The alternative meaning of the heading is only relevant when you "
"generate your manuscript, but you may want to keep the use cases in mind "
"while writing."
msgstr ""
"Pour les en-têtes de niveau un à trois, l'ajout d'un ``!`` modifie la "
"signification de l'en-tête. La signification alternative de l'en-tête n'est "
"pertinente que lorsque vous générez votre manuscrit, mais vous pouvez garder "
"à l'esprit les cas d'utilisation lors de la rédaction."
#: ../../source/usage/chapters_and_scenes.rst:66
msgid "``#! Title Text``"
msgstr "``#! Texte de titre``"
#: ../../source/usage/chapters_and_scenes.rst:67
msgid ""
"This tells the **Manuscript Build** tool that the level one heading is "
"intended to be used for the novel or notes folder's main title, like for "
"instance the novel title on the cover page. When building the manuscript, "
"this will use a different styling of the title, which you can modify "
"independently from how partition titles are styled. See :ref:"
"`docs_usage_front_back_matter_title` for more details."
msgstr ""
"Cela indique à l'outil **Compiler le manuscrit** que l'en-tête de niveau un "
"est destiné à être utilisé pour le titre principal du roman ou du dossier de "
"notes, comme par exemple le titre du roman sur la page de couverture. Lors de "
"la compilation du manuscrit, l'outil utilisera un style différent pour le "
"titre, que vous pouvez modifier indépendamment de la façon dont les titres "
"des parties sont stylisés. Voir :ref:`docs_usage_front_back_matter_title` "
"pour plus de détails."
#: ../../source/usage/chapters_and_scenes.rst:73
msgid "``##! Chapter Title``"
msgstr "``## ! Titre de chapitre``"
#: ../../source/usage/chapters_and_scenes.rst:74
msgid ""
"This tells the **Manuscript Build** tool to not assign a chapter number to "
"this chapter title if automatic chapter numbers are enabled. Such titles are "
"useful for prologues and epilogues for instance. See :ref:"
"`docs_usage_front_back_matter_unnumbered` for more details."
msgstr ""
"Cette option indique à l'outil **Compilation du manuscrit** de ne pas "
"attribuer de numéro de chapitre à ce titre de chapitre si la numérotation "
"automatique des chapitres est activée. De tels titres sont utiles pour les "
"prologues et les épilogues par exemple. Voir :ref:"
"`docs_usage_front_back_matter_unnumbered` pour plus de détails."
#: ../../source/usage/chapters_and_scenes.rst:78
msgid "``###! Scene Title``"
msgstr "``###! Titre de scène``"
#: ../../source/usage/chapters_and_scenes.rst:79
msgid ""
"This is an alternative scene heading that can be formatted differently in the "
"**Manuscript Build** tool. It is intended for separating \"soft\" and "
"\"hard\" scene breaks. Aside from this, it behaves identically to a regular "
"scene heading. See :ref:`docs_ui_manuscript_head_hard_soft` for more details."
msgstr ""
"Il s'agit d'un titre de scène alternatif qui peut être formaté différemment "
"dans l'outil **Compilation du manuscrit**. Il est destiné à séparer les "
"coupures de scène « douces » et « dures ». A part cela, il se comporte de la "
"même manière qu'un titre de scène normal. Voir :ref:"
"`docs_ui_manuscript_head_hard_soft` pour plus de détails."
#: ../../source/usage/chapters_and_scenes.rst:84
msgid ""
"The formatting of these headings can be customised quite extensively in the :"
"ref:`Manuscript Tool <docs_ui_manuscript>`, which is covered in a separate "
"part of the documentation."
msgstr ""
"Le formatage de ces en-têtes peut être personnalisé de manière assez poussée "
"dans l'outil :ref:`Manuscript Tool <docs_ui_manuscript>`, qui fait l'objet "
"d'une partie distincte de la documentation."
#: ../../source/usage/chapters_and_scenes.rst:90
msgid ""
"The space after the ``#`` or ``!`` character is mandatory. The editor will "
"change colour and font size when the heading is correctly formatted."
msgstr ""
"L'espace après le caractère ``#`` ou ``!`` est obligatoire. L'éditeur "
"changera de couleur et de taille de police lorsque le titre sera correctement "
"formaté."
#: ../../source/usage/chapters_and_scenes.rst:93
msgid ""
"Page breaks can be automatically added before titles, partition, chapter and "
"scene headings from the **Manuscript Build** tool when you build your project "
"to a format that supports page breaks. If you want page breaks in other "
"places, you have to specify them manually. See :ref:"
"`docs_usage_formatting_breaks` for more details."
msgstr ""
"Les sauts de page peuvent être automatiquement ajoutés avant les titres, les "
"parties, les chapitres et les scènes à partir de l'outil **Compilation du "
"manuscrit** lorsque vous créez votre projet dans un format qui prend en "
"charge les sauts de page. Si vous voulez des sauts de page à d'autres "
"endroits, vous devez les spécifier manuellement. Voir :ref:"
"`docs_usage_formatting_breaks` pour plus de détails."

View File

@@ -1,254 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 11:20+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/comments.rst:5
msgid "Comments and Notes"
msgstr "Commentaires et notes"
#: ../../source/usage/comments.rst:7
msgid ""
"You can add comments to your text that are not a part of the story. "
"Regular comments are intended for you to add notes to yourself inside "
"the text, which may be useful when you revise your drafts. However, "
"there are several types of comments you can use."
msgstr ""
"Vous pouvez ajouter à votre texte des commentaires qui ne font pas "
"partie de l'histoire. Les commentaires ordinaires sont destinés à vous "
"permettre d'ajouter des notes à l'intérieur du texte, ce qui peut "
"s'avérer utile lorsque vous révisez vos projets. Cependant, il existe "
"plusieurs types de commentaires que vous pouvez utiliser."
#: ../../source/usage/comments.rst:11
msgid ""
"This section covers the basic comment types. There are a couple of "
"advanced features that use comment syntax too, but they are covered "
"later."
msgstr ""
"Cette section couvre les types de commentaires de base. Il existe "
"quelques fonctions avancées qui utilisent également la syntaxe des "
"commentaires, mais elles sont abordées plus loin."
#: ../../source/usage/comments.rst:18
msgid "Plain Comments"
msgstr "Commentaires simples"
#: ../../source/usage/comments.rst:20
msgid ""
"A plain comment is a line or paragraph that starts with the character "
"``%`` as its first character. You can put them wherever you like in your "
"documents, and you can choose to include or exclude them from your "
"manuscript."
msgstr ""
"Un commentaire simple est une ligne ou un paragraphe qui commence par le "
"caractère ``%``. Vous pouvez les placer où vous le souhaitez dans vos "
"documents, et vous pouvez choisir de les inclure ou de les exclure de "
"votre manuscrit."
#: ../../source/usage/comments.rst:24
msgid ""
"For the most part, UmbraEdit completely ignores these comments. They "
"are not included in your word or character counts either, and are only "
"displayed in the document viewer panel if you enable them."
msgstr ""
"La plupart du temps, UmbraEdit ignore complètement ces commentaires. "
"Ils ne sont pas non plus inclus dans le décompte des mots ou des "
"caractères, et ne sont affichés dans le panneau de visualisation du "
"document que si vous les activez."
#: ../../source/usage/comments.rst:28 ../../source/usage/comments.rst:63
#: ../../source/usage/comments.rst:80 ../../source/usage/comments.rst:128
#: ../../source/usage/comments.rst:156
msgid ":bdg-info:`Example`"
msgstr ":bdg-info:`Exemple`"
#: ../../source/usage/comments.rst:44
msgid "Synopsis or Description Comments"
msgstr "Commentaires Synopsis ou Description"
#: ../../source/usage/comments.rst:46
msgid ""
"A special kind of comments are **Synopsis** and **Short Description** "
"comments. They are different from plain comments in that they can be "
"displayed alongside other information about a scene or a character or "
"other story element described in a note. As with plain comments, they "
"can be included in your manuscript, but they are formatted differently "
"than plain comments."
msgstr ""
"Les commentaires **Synopsis** et **Description courte** constituent un "
"type particulier de commentaires. Ils se distinguent des commentaires "
"ordinaires par le fait qu'ils peuvent être affichés à côté d'autres "
"informations concernant une scène, un personnage ou un autre élément de "
"l'histoire décrit dans une note. Comme les commentaires ordinaires, ils "
"peuvent être inclus dans votre manuscrit, mais leur format est différent "
"de celui des commentaires ordinaires."
#: ../../source/usage/comments.rst:53
msgid ""
"A summary or description comment can be used once, and only once, for "
"each heading as they are considered a description of the content of the "
"text under that heading. If you add two such comments under the same "
"heading, the last one will be used."
msgstr ""
"Un commentaire de résumé ou de description peut être utilisé une fois, "
"et une seule, pour chaque rubrique, car il est considéré comme une "
"description du contenu du texte de cette rubrique. Si vous ajoutez deux "
"commentaires de ce type sous la même rubrique, c'est le dernier qui sera "
"utilisé."
#: ../../source/usage/comments.rst:59
msgid "Synopsis"
msgstr "Synopsis"
#: ../../source/usage/comments.rst:61
msgid ""
"A **Synopsis** comment is intended for adding a summary of your chapters "
"and scenes."
msgstr ""
"Un commentaire **Synopsis** est destiné à ajouter un résumé de vos "
"chapitres et scènes."
#: ../../source/usage/comments.rst:75
msgid "Short Description"
msgstr "Brève description"
#: ../../source/usage/comments.rst:77
msgid ""
"A **Short Description** comment behaves exactly the same as a synopsis "
"comment, but is intended as a description of a story element, like a "
"character."
msgstr ""
"Un commentaire **Brève description** se comporte exactement de la même "
"manière qu'un commentaire de synopsis, mais il est destiné à décrire un "
"élément de l'histoire, tel qu'un personnage."
#: ../../source/usage/comments.rst:100
msgid ""
"The ``%Synopsis:`` and ``%Short:`` comment prefixes are interchangeable, "
"but when you include them in the manuscript, they are labelled based on "
"the prefix, so the latter may make more sense for a Character note than "
"the former."
msgstr ""
"Les préfixes de commentaire ``%Synopsis:`` et ``%Short:`` sont "
"interchangeables, mais lorsque vous les incluez dans le manuscrit, ils "
"sont étiquetés en fonction du préfixe, de sorte que ce dernier peut "
"avoir plus de sens pour une note de caractère que le premier."
#: ../../source/usage/comments.rst:108
msgid "Footnote Comments"
msgstr "Commentaires de note de bas de page"
#: ../../source/usage/comments.rst:110
msgid ""
"Footnotes are added with a shortcode, paired with a matching comment for "
"the actual footnote text. The matching is done with a key that links the "
"two. If you insert a footnote from the **Insert** menu, a unique key is "
"generated for you. Shortcodes in general are covered in more detail in :"
"ref:`docs_usage_formatting_shortcodes`."
msgstr ""
"Les notes de bas de page sont ajoutées à l'aide d'un shortcode, associé "
"à un commentaire correspondant au texte de la note de bas de page. La "
"correspondance est assurée par une clé qui lie les deux. Si vous insérez "
"une note de bas de page à partir du menu **Insérer**, une clé unique est "
"générée pour vous. Les shortcodes en général sont couverts plus en "
"détail dans :ref:`docs_usage_formatting_shortcodes`."
#: ../../source/usage/comments.rst:115
msgid ""
"The insert footnote feature will add the footnote shortcode marker at "
"the position of your cursor in the editor panel, and create the "
"associated footnote comment right after the paragraph. It will then move "
"the cursor there so you can immediately start typing the footnote text."
msgstr ""
"La fonction d'insertion d'une note de bas de page ajoute le marqueur de "
"shortcode de note de bas de page à l'emplacement de votre curseur dans "
"le panneau de l'éditeur et crée le commentaire de note de bas de page "
"associé juste après le paragraphe. Elle déplacera ensuite le curseur à "
"cet endroit afin que vous puissiez immédiatement commencer à taper le "
"texte de la note de bas de page."
#: ../../source/usage/comments.rst:119
msgid ""
"The footnote comment can be anywhere in the document, so if you wish to "
"move them to, say, the bottom of the text, you are free to do so."
msgstr ""
"Le commentaire de la note de bas de page peut se trouver n'importe où "
"dans le document, de sorte que si vous souhaitez le placer, par exemple, "
"au bas du texte, vous êtes libre de le faire."
#: ../../source/usage/comments.rst:122
msgid ""
"Footnote keys are only required to be unique within a document, so if "
"you copy, move or merge text, you must make sure the keys are not "
"duplicated. If you use the automatically generated keys from the "
"**Insert** menu, they are unique among all indexed documents. They are "
"not guaranteed to be unique against footnotes in the **Archive** or "
"**Trash** folder though, but the chance of accidentally generating the "
"same key twice in a project is relatively small."
msgstr ""
"Les clés de notes de bas de page ne doivent être uniques qu'à "
"l'intérieur d'un document. Par conséquent, si vous copiez, déplacez ou "
"fusionnez du texte, vous devez vous assurer que les clés ne sont pas "
"dupliquées. Si vous utilisez les clés générées automatiquement à partir "
"du menu **Insérer**, elles sont uniques parmi tous les documents "
"indexés. Il n'est pas garanti qu'elles soient uniques par rapport aux "
"notes de bas de page du dossier Archives ou Corbeille, mais le risque de "
"générer accidentellement la même clé deux fois dans un projet est "
"relativement faible."
#: ../../source/usage/comments.rst:144
msgid "Ignored Text"
msgstr "Texte ignoré"
#: ../../source/usage/comments.rst:146
msgid ""
"If you want to completely ignore some of the text in your documents, but "
"are not ready to delete it, you can add ``%~`` before the text paragraph "
"or line. This will cause UmbraEdit to skip the text entirely when "
"generating previews or building manuscripts."
msgstr ""
"Si vous souhaitez ignorer complètement une partie du texte dans vos "
"documents, mais que vous n'êtes pas prêt à l'effacer, vous pouvez "
"ajouter ``%~`` devant le paragraphe ou la ligne de texte. Cela permettra "
"à UmbraEdit d'ignorer complètement le texte lors de la génération "
"d'aperçus ou de la construction de manuscrits."
#: ../../source/usage/comments.rst:150
msgid ""
"This is a better way of removing text than converting them to regular "
"comments, as you may want to include regular comments in your previews "
"or draft manuscript."
msgstr ""
"Il s'agit d'un meilleur moyen de supprimer le texte que de le convertir "
"en commentaires normaux, car vous souhaiterez peut-être inclure des "
"commentaires normaux dans vos prévisualisations ou votre projet de "
"manuscrit."
#: ../../source/usage/comments.rst:153
msgid ""
"You can toggle the ignored text feature on and off for a paragraph by "
"pressing :kbd:`Ctrl+Shift+D` on your keyboard with your cursor somewhere "
"in the paragraph."
msgstr ""
"Vous pouvez activer ou désactiver la fonction de texte ignoré pour un "
"paragraphe en appuyant sur :kbd:`Ctrl+Maj+D` sur votre clavier avec "
"votre curseur quelque part dans le paragraphe."

View File

@@ -1,146 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 16:13+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/front_back_matter.rst:5
msgid "Front and Back Matter"
msgstr "Premières et dernières pages"
#: ../../source/usage/front_back_matter.rst:7
msgid ""
"Front and back matter documents are documents that go before and after "
"your main story text. They can include pages like your cover page, "
"content tables, prologues, epilogues, etc. These special pages and "
"sections are supported to some extent by UmbraEdit."
msgstr ""
"Les documents de début et de fin sont des documents qui précèdent et "
"suivent le texte principal de l'histoire. Il peut s'agir de pages comme "
"la page de couverture, de tables des matières, de prologues, "
"d'épilogues, etc. Ces pages et sections spéciales sont prises en charge "
"dans une certaine mesure par UmbraEdit."
#: ../../source/usage/front_back_matter.rst:15
msgid "The Title Page"
msgstr "La page de titre"
#: ../../source/usage/front_back_matter.rst:17
msgid ""
"It is recommended that you add a document at the very top of each "
"**Novel** root folder with the novel title in it. You should modify the "
"level 1 heading format code with an ``!`` in order to render it as a "
"document title that is excluded from any automatic Table of Content in a "
"manuscript build document."
msgstr ""
"Il est recommandé d'ajouter un document au premier niveau de chaque "
"dossier racine **Roman** avec le titre du roman. Vous devez modifier le "
"code de format de l'en-tête de niveau un avec un ``!`` afin de le rendre "
"comme un titre de document qui est exclu de toute table des matières "
"automatique lors de la compilation du manuscrit."
#: ../../source/usage/front_back_matter.rst:22
msgid ""
"You can also add the author name and address above this if this is "
"required by the manuscript format you use, and additional space added "
"before the title."
msgstr ""
"Vous pouvez également ajouter le nom et l'adresse de l'auteur au-dessus "
"de ce titre si le format de manuscrit que vous utilisez l'exige, et "
"ajouter un espace supplémentaire avant le titre."
#: ../../source/usage/front_back_matter.rst:25
#: ../../source/usage/front_back_matter.rst:73
msgid ":bdg-info:`Example`"
msgstr ":bdg-info:`Exemple`"
#: ../../source/usage/front_back_matter.rst:27
msgid ""
"This is the title page UmbraEdit generates automatically for a new "
"project as of version 2.6:"
msgstr ""
"Il s'agit de la page de titre que UmbraEdit génère automatiquement "
"pour un nouveau projet à partir de la version 2.6 :"
#: ../../source/usage/front_back_matter.rst:43
msgid ""
"The title is by default centred on the page. You can add more text to "
"the page as you wish, like for instance the author's name and details."
msgstr ""
"Le titre est par défaut centré sur la page. Vous pouvez ajouter plus de "
"texte à la page si vous le souhaitez, comme par exemple le nom de "
"l'auteur et ses coordonnées."
#: ../../source/usage/front_back_matter.rst:46
msgid ""
"The default title page inserts the word count for text only, but you can "
"add other counts too. See :ref:`docs_usage_formatting_counts` for more "
"details."
msgstr ""
"La page de titre par défaut insère le nombre de mots pour le texte "
"uniquement, mais vous pouvez également ajouter d'autres décomptes. Voir :"
"ref:`docs_usage_formatting_counts` pour plus de détails."
#: ../../source/usage/front_back_matter.rst:53
msgid "Additional Pages"
msgstr "Pages additionnelles"
#: ../../source/usage/front_back_matter.rst:55
msgid ""
"If you want an additional page of text after the title page, starting on "
"a fresh page, you can add ``[new page]`` on a line by itself, and "
"continue the text after it. This will insert a page break before the "
"text. See :ref:`docs_usage_formatting_breaks` for more details."
msgstr ""
"Si vous voulez une page de texte supplémentaire après la page de titre, "
"commençant sur une nouvelle page, vous pouvez ajouter ``[ new page]`` "
"sur une ligne à part, et continuer le texte après elle. Cela insérera un "
"saut de page avant le texte. Voir :ref:`docs_usage_formatting_breaks` "
"pour plus de détails."
#: ../../source/usage/front_back_matter.rst:63
msgid "Unnumbered Chapters"
msgstr "Chapitres non numérotés"
#: ../../source/usage/front_back_matter.rst:65
msgid ""
"If you use the automatic numbering feature for your chapters, but you "
"want to keep some special chapters separate from this, you can add an ``!"
"`` to the level 2 heading formatting code to tell the build tool to skip "
"these chapters when adding numbers."
msgstr ""
"Si vous utilisez la numérotation automatique pour vos chapitres, mais "
"que vous voulez garder certains chapitres spéciaux séparés, vous pouvez "
"ajouter un `!` au code de formatage des titres de niveau deux pour "
"indiquer à l'outil de compilation d'ignorer ces chapitres lors de "
"l'ajout des numéros."
#: ../../source/usage/front_back_matter.rst:69
msgid ""
"Unnumbered chapters are useful for prologue and epilogue chapters, and "
"also for interlude chapters if you use those in your text. There is a "
"separate formatting feature for such chapter titles in the **Manuscript "
"Build** tool. See the :ref:`docs_ui_manuscript` page for more details."
msgstr ""
"Les chapitres non numérotés sont utiles pour les prologues et les "
"épilogues, ainsi que pour les interludes si vous en utilisez dans votre "
"texte. Il existe une fonction de formatage séparée pour ces titres de "
"chapitre dans l'outil **Compilation du manuscrit**. Voir la page :ref:"
"`docs_ui_manuscript` pour plus de détails."

View File

@@ -1,285 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 16:22+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/howto.rst:5
msgid "Tips & Tricks"
msgstr "Trucs et astuces"
#: ../../source/usage/howto.rst:9
msgid ""
"This is a list of hopefully helpful little tips on how to get the most out of "
"UmbraEdit."
msgstr ""
"Il s'agit d'une liste de petits conseils, que nous espérons utiles, sur la "
"façon de tirer le meilleur parti de UmbraEdit."
#: ../../source/usage/howto.rst:12
msgid ""
"This section will be expanded over time. If you would like to have something "
"added, feel free to contribute, or start a discussion on the project's "
"`Discussions Page`_."
msgstr ""
"Cette section sera développée au fil du temps. Si vous souhaitez que quelque "
"chose soit ajouté, n'hésitez pas à contribuer, ou à lancer une discussion sur "
"la `Page des discussions`_ du projet."
#: ../../source/usage/howto.rst:17
msgid "Managing the Project"
msgstr "Gestion du projet"
#: ../../source/usage/howto.rst
msgid "How do I create a project from a template?"
msgstr "Comment créer un projet à partir d'un modèle ?"
#: ../../source/usage/howto.rst:22
msgid ""
"On the Welcome dialog's **Create New Project** form, you can select to "
"\"Prefill Project\" from the content of a different project. This feature is "
"most useful if you copy a project you have dedicated to be a template project. "
"If you have a structure and settings you want to use for every new project, "
"this is the best solution."
msgstr ""
"Dans le formulaire **Créer un nouveau projet** de la boîte de dialogue "
"d'accueil, vous pouvez choisir de « pré-remplir le projet » à partir du contenu "
"d'un autre projet. Cette fonction est particulièrement utile si vous copiez un "
"projet que vous avez dédié à être un projet modèle. Si vous avez une structure "
"et des paramètres que vous souhaitez utiliser pour chaque nouveau projet, c'est "
"la meilleure solution."
#: ../../source/usage/howto.rst
msgid "How do I merge multiple documents into one?"
msgstr "Comment fusionner plusieurs documents en un seul ?"
#: ../../source/usage/howto.rst:30
msgid ""
"If you need to merge a selection of documents in your project into a single "
"document, you can achieve this by first making a new folder for just that "
"purpose, and drag all the documents you want merged into this folder. Then you "
"can right click the folder, select :guilabel:`Transform` and :guilabel:`Merge "
"Documents in Folder`."
msgstr ""
"Si vous avez besoin de fusionner une sélection de documents dans votre projet "
"en un seul document, vous pouvez le faire en créant un nouveau dossier à cet "
"effet, et en faisant glisser tous les documents que vous voulez fusionner dans "
"ce dossier. Ensuite, vous pouvez faire un clic droit sur le dossier, "
"sélectionner :guilabel:`Transformer` et :guilabel:`Fusionner les documents du "
"dossier`."
#: ../../source/usage/howto.rst:35
msgid ""
"In the dialog that pops up, the documents will be in the same order as in the "
"folder, but you can rearrange them here of you wish. See :ref:"
"`docs_ui_split_merge` for more details."
msgstr ""
"Dans la boîte de dialogue qui s'ouvre, les documents seront dans le même ordre "
"que dans le dossier, mais vous pouvez les réorganiser ici si vous le souhaitez. "
"Voir :ref:`docs_ui_split_merge` pour plus de détails."
#: ../../source/usage/howto.rst
msgid "How do I share status or importance labels between projects?"
msgstr ""
"Comment puis-je partager des étiquettes d'état ou d'importance entre les "
"projets ?"
#: ../../source/usage/howto.rst:41
msgid ""
"The status or importance labels you have defined in a project can be exported "
"from **Project Settings** from the respective configuration tabs. You can then "
"import these labels in another project."
msgstr ""
"Les étiquettes d'état ou d'importance que vous avez définies dans un projet "
"peuvent être exportées à partir de **Paramètres du projet** dans les onglets de "
"configuration respectifs. Vous pouvez ensuite importer ces étiquettes dans un "
"autre projet."
#: ../../source/usage/howto.rst:47
msgid "Layout Tricks"
msgstr "Astuces de mise en page"
#: ../../source/usage/howto.rst
msgid "How do I create a table?"
msgstr "Comment créer un tableau ?"
#: ../../source/usage/howto.rst:52
msgid ""
"The formatting tools available in UmbraEdit don't allow for complex "
"structures like tables. However, the editor does render tabs in a similar way "
"that regular word processors do. You can set the width of a tab in "
"**Preferences**."
msgstr ""
"Les outils de formatage disponibles dans UmbraEdit ne permettent pas de créer "
"des structures complexes telles que des tableaux. Cependant, l'éditeur rend les "
"tabulations de la même manière que les traitements de texte classiques. Vous "
"pouvez définir la largeur d'un onglet dans les **Préférences**."
#: ../../source/usage/howto.rst:56
msgid ""
"The tab key should have the same distance in the editor as in the viewer, so "
"you can align text in columns using the tab key, and it should look the same "
"when viewed next to the editor."
msgstr ""
"La touche de tabulation doit avoir la même distance dans l'éditeur que dans "
"l'afficheur, de sorte que vous puissiez aligner du texte en colonnes à l'aide "
"de la touche de tabulation, et que l'aspect soit le même lorsque vous regardez "
"à côté de l'éditeur."
#: ../../source/usage/howto.rst:59
msgid ""
"This is most suitable for your notes, as the result in exported documents "
"cannot be guaranteed to match. Especially if you don't use the same font in "
"your manuscript as in the editor."
msgstr ""
"Cette méthode convient surtout à vos notes, car il n'est pas garanti que le "
"résultat dans les documents exportés corresponde à la réalité. Surtout si vous "
"n'utilisez pas la même police dans votre manuscrit que dans l'éditeur."
#: ../../source/usage/howto.rst
msgid "How do I force a line break when line breaks are ignored in my manuscript?"
msgstr ""
"Comment forcer un saut de ligne lorsque les sauts de ligne sont ignorés dans "
"mon manuscrit ?"
#: ../../source/usage/howto.rst:65
msgid ""
"In the **Manuscript Build Settings** you can choose to ignore line breaks "
"within paragraphs in your text. However, some times you still need those "
"breaks. Like for instance on the cover page where you may need to add your name "
"and address. In such cases, you can add ``[br]`` where you want line breaks. "
"These breaks cannot be ignored by any settings and will always be respected."
msgstr ""
"Dans les **Paramètres de compilation du manuscrit**, vous pouvez choisir "
"d'ignorer les sauts de ligne dans les paragraphes de votre texte. Cependant, "
"ces sauts de ligne sont parfois nécessaires. Comme par exemple sur la page de "
"couverture où vous pouvez avoir besoin d'ajouter votre nom et votre adresse. "
"Dans ce cas, vous pouvez ajouter ``[br]`` à l'endroit où vous souhaitez des "
"sauts de ligne. Ces sauts de ligne ne peuvent être ignorés par aucun paramètre "
"et seront toujours respectés."
#: ../../source/usage/howto.rst
msgid "How do I turn off first line indent for a specific paragraph?"
msgstr ""
"Comment désactiver l'indentation de la première ligne pour un paragraphe "
"spécifique ?"
#: ../../source/usage/howto.rst:75
msgid ""
"If you have first line indent enabled, but have a specific paragraph that you "
"don't want indented, you can disable the indentation by explicitly adding text "
"alignment. For instance by adding ``<<`` to the end to left-align it. Aligned "
"paragraphs are not indented."
msgstr ""
"Si l'indentation de la première ligne est activée, mais qu'un paragraphe "
"spécifique ne doit pas être indenté, vous pouvez désactiver l'indentation en "
"ajoutant explicitement l'alignement du texte. Par exemple, en ajoutant ``<<`` à "
"la fin du paragraphe pour l'aligner à gauche. Les paragraphes alignés ne sont "
"pas indentés."
#: ../../source/usage/howto.rst:79
msgid "See :ref:`docs_usage_align_indent` for more details."
msgstr "Voir :ref:`docs_usage_align_indent` pour plus de détails."
#: ../../source/usage/howto.rst:83
msgid "Organising Your Text"
msgstr "Organiser son texte"
#: ../../source/usage/howto.rst
msgid "How do I add introductory text to chapters?"
msgstr "Comment ajouter un texte d'introduction aux chapitres ?"
#: ../../source/usage/howto.rst:88
msgid ""
"Sometimes chapters have a short preface, like a brief piece of text or a quote "
"to set the stage before the first scene begins."
msgstr ""
"Parfois, les chapitres sont précédés d'une courte préface, comme un court texte "
"ou une citation pour planter le décor avant le début de la première scène."
#: ../../source/usage/howto.rst:91
msgid ""
"If you add separate files for chapters and scenes, the chapter file is the "
"perfect place to add such text. Separating chapter and scene files also allows "
"you to make scene files child documents of the chapter."
msgstr ""
"Si vous ajoutez des fichiers distincts pour les chapitres et les scènes, le "
"fichier de chapitre est l'endroit idéal pour ajouter ce type de texte. La "
"séparation des fichiers de chapitres et de scènes vous permet également de "
"faire des fichiers de scènes des documents enfants du chapitre."
#: ../../source/usage/howto.rst
msgid "How do I distinguishing between soft and hard scene breaks?"
msgstr ""
"Comment faire la distinction entre les ruptures de scènes douces et les "
"ruptures de scènes dures ?"
#: ../../source/usage/howto.rst:98
msgid ""
"Depending on your writing style, you may need to separate between soft and hard "
"scene breaks within chapters. Like for instance if you switch point-of-view "
"character often."
msgstr ""
"En fonction de votre style d'écriture, vous pouvez avoir besoin de faire une "
"distinction entre les ruptures de scènes douces et les ruptures de scènes dures "
"au sein des chapitres. Par exemple, si vous changez souvent de point de vue."
#: ../../source/usage/howto.rst:101
msgid ""
"In such cases you may want to use different scene headings for hard and soft "
"scene breaks. The **Build Manuscript** tool will let you define a different "
"format for scenes using the ``###`` and ``###!`` heading codes when you "
"generate your manuscript. You can for instance add the common \"``* * *``\" for "
"hard breaks and select to hide soft scene breaks, which will just insert an "
"empty paragraph in their place. See :ref:`docs_ui_manuscript_settings` for more "
"details."
msgstr ""
"Dans ce cas, vous pouvez utiliser des titres de scène différents pour les "
"coupures de scène dures et douces. L'outil **Compilation du manuscrit** vous "
"permettra de définir un format différent pour les scènes en utilisant les codes "
"d'en-tête ``###`` et ``###!`` lors de la génération de votre manuscrit. Vous "
"pouvez par exemple ajouter l'habituel « ``* * *`` » pour les coupures dures et "
"choisir de masquer les coupures douces, ce qui aura pour effet d'insérer un "
"paragraphe vide à leur place. Voir :ref:`docs_ui_manuscript_settings` pour plus "
"de détails."
#: ../../source/usage/howto.rst:111
msgid "Other Tools"
msgstr "Autres outils"
#: ../../source/usage/howto.rst
msgid "How do I convert my project to/from the yWriter format?"
msgstr "Comment convertir mon projet au format yWriter ?"
#: ../../source/usage/howto.rst:116
msgid ""
"There is a tool available that lets you convert a `yWriter <http://spacejock."
"com/yWriter7.html>`_ project to a UmbraEdit project, and vice versa."
msgstr ""
"Il existe un outil qui vous permet de convertir un projet `yWriter <http://"
"spacejock.com/yWriter7.html>`_ en un projet UmbraEdit, et vice versa."
#: ../../source/usage/howto.rst:119
msgid ""
"The tool is available at `peter88213.github.io/yw2nw <https://peter88213.github."
"io/yw2nw/>`__"
msgstr ""
"L'outil est disponible à l'adresse `peter88213.github.io/yw2nw <https://"
"peter88213.github.io/yw2nw/>`__"

View File

@@ -1,161 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-27 21:24+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/introduction.rst:5
msgid "Introduction"
msgstr "Introduction"
#: ../../source/usage/introduction.rst:9
msgid ""
"In a nutshell, UmbraEdit is a plain text editor that lets you organise "
"one or more novels and associated notes as many smaller documents. You "
"can at any time generate standard document formats from these plain text "
"documents. Whether it is an outline of your story, a draft, a complete "
"manuscript, or even a collection of your character notes or other notes."
msgstr ""
"En bref, UmbraEdit est un éditeur de texte brut qui vous permet "
"d'organiser un ou plusieurs romans et les notes associées sous la forme "
"de plusieurs petits documents. Vous pouvez à tout moment générer des "
"formats de documents standard à partir de ces documents en texte brut. "
"Qu'il s'agisse d'une ébauche de votre histoire, d'un brouillon, d'un "
"manuscrit complet ou même d'une collection de notes sur les personnages "
"ou d'autres notes."
#: ../../source/usage/introduction.rst:16
msgid "Why Plain Text?"
msgstr "Pourquoi du texte brut ?"
#: ../../source/usage/introduction.rst:18
msgid ""
"The idea is to let you be creative without having to deal with "
"formatting while you are writing, or be distracted by it."
msgstr ""
"L'idée est de vous permettre d'être créatif sans avoir à vous préoccuper "
"de la mise en forme pendant que vous écrivez, ou sans être distrait par "
"elle."
#: ../../source/usage/introduction.rst:21
msgid ""
"Of course, you probably need *some* form of minimal formatting for your "
"text. At the very least you need emphasis. Most people are familiar with "
"adding emphasis using ``_underscores_`` and ``**asterisks**``. This "
"formatting standard comes from Markdown_ and is supported by "
"UmbraEdit. It also uses Markdown formatting for defining document "
"headings, which is how you distinguish between chapters and scenes."
msgstr ""
"Bien entendu, vous avez probablement besoin d'une sorte de mise en forme "
"minimale pour votre texte. Au minimum, vous avez besoin d'une mise en "
"valeur. La plupart des gens sont familiers avec l'ajout d'emphase en "
"utilisant ``_underscores_`` et ``**asterisks**``. Ce standard de "
"formatage vient de Markdown_ et est supporté par UmbraEdit. Il utilise "
"également le formatage Markdown pour définir les titres du document, ce "
"qui permet de faire la distinction entre les chapitres et les scènes."
#: ../../source/usage/introduction.rst:27
msgid ""
"For those special cases where you need more complex formatting, a set of "
"shortcodes are available. To make these codes easier to use, a dropdown "
"button bar is available in the editor panel with standard format "
"buttons. So don't worry. You don't have to learn any of these codes."
msgstr ""
"Pour les cas particuliers où vous avez besoin d'un formatage plus "
"complexe, un ensemble de shortcodes est disponible. Pour faciliter "
"l'utilisation de ces codes, une barre de boutons déroulante est "
"disponible dans le panneau de l'éditeur avec des boutons de formatage "
"standard. Ne vous inquiétez donc pas. Vous n'avez pas besoin d'apprendre "
"ces codes."
#: ../../source/usage/introduction.rst:33
msgid "Adding Meta Data"
msgstr "Ajout de métadonnées"
#: ../../source/usage/introduction.rst:35
msgid ""
"In addition to the body text of your story, UmbraEdit allows you to "
"enter some additional meta data into your text documents to indicate "
"things like which characters are present in a chapter or scene, whose "
"point of view we're seeing, what location the events take place in, and "
"so on."
msgstr ""
"Outre le corps du texte de votre histoire, UmbraEdit vous permet de "
"saisir des métadonnées supplémentaires dans vos documents texte afin "
"d'indiquer les personnages présents dans un chapitre ou une scène, le "
"point de vue de chacun, le lieu où se déroulent les événements, etc."
#: ../../source/usage/introduction.rst:39
msgid ""
"Since the editor is plain text, this is done on special lines of text "
"starting with an ``@`` character. The editor will show an auto-complete "
"menu to help you write these lines. We will talk more about this later."
msgstr ""
"Comme l'éditeur est en texte brut, cela se fait sur des lignes de texte "
"spéciales commençant par le caractère ``@``. L'éditeur affichera un menu "
"d'auto-complétion pour vous aider à écrire ces lignes. Nous en "
"reparlerons plus tard."
#: ../../source/usage/introduction.rst:43
msgid ""
"You can also add your own author's comments in your text, without these "
"comments becoming a part of the story itself. A comment line starts with "
"a ``%`` character. There are different types of comments, and an auto-"
"complete menu can help you here too. More about this later as well."
msgstr ""
"Vous pouvez également ajouter vos propres commentaires d'auteur dans "
"votre texte, sans que ces commentaires fassent partie de l'histoire elle-"
"même. Une ligne de commentaire commence par le caractère ``%``. Il "
"existe différents types de commentaires, et un menu d'auto-complétion "
"peut vous aider ici aussi. Nous y reviendrons plus tard."
#: ../../source/usage/introduction.rst:47
msgid "Limitations"
msgstr "Restrictions"
#: ../../source/usage/introduction.rst:49
msgid ""
"Please keep in mind that UmbraEdit is designed for writing fiction, so "
"the formatting features available are limited to those relevant for this "
"purpose. It is *not* suitable for technical writing. It is also *not* a "
"full-featured Markdown editor."
msgstr ""
"Gardez à l'esprit que UmbraEdit est conçu pour l'écriture de fictions, "
"et que les fonctions de formatage disponibles sont donc limitées à "
"celles qui sont pertinentes à cette fin. Il n'est *pas* adapté à la "
"rédaction technique. Ce n'est pas non plus un éditeur Markdown complet."
#: ../../source/usage/introduction.rst:53
msgid ""
"In addition, UmbraEdit is not intended as a tool for organising "
"research for writing, and therefore lacks formatting features you may "
"need for this purpose. The notes feature in is mainly intended for "
"character profiles and plot outlines. It is recommended to use a proper "
"note-taking tool for research. This is anyway more practical as you may "
"use the same research for multiple projects."
msgstr ""
"En outre, UmbraEdit n'est pas conçu comme un outil d'organisation de "
"la recherche en vue de l'écriture, et ne dispose donc pas des fonctions "
"de formatage dont vous pourriez avoir besoin à cette fin. La fonction de "
"notes est principalement destinée aux profils de personnages et aux "
"grandes lignes de l'intrigue. Il est recommandé d'utiliser un outil de "
"prise de notes approprié pour la recherche. C'est de toute façon plus "
"pratique, car vous pouvez utiliser la même recherche pour plusieurs "
"projets."

View File

@@ -1,538 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 14:11+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/organising_project.rst:5
msgid "Organising Your Project"
msgstr "Organiser votre projet"
#: ../../source/usage/organising_project.rst:7
msgid ""
"Your project is organised into a set of top level folders called \"Root "
"Folders\", which each have specific meaning in the project. Your project "
"documents and notes are stored under these root folders. All the content "
"of your project is available in the **Project Content** panel on the "
"left side of the main window."
msgstr ""
"Votre projet est organisé en un ensemble de dossiers de premier niveau "
"appelés « dossiers racines », qui ont chacun une signification "
"spécifique dans le projet. Les documents et les notes de votre projet "
"sont stockés dans ces dossiers racines. Tout le contenu de votre projet "
"est disponible dans le panneau **Contenu du projet** sur le côté gauche "
"de la fenêtre principale."
#: ../../source/usage/organising_project.rst:14
msgid "The **Project Content** tree populated with example documents."
msgstr ""
"L'arborescence **Contenu du projet** avec des exemples de documents."
#: ../../source/usage/organising_project.rst:16
msgid ""
"Each line in the project tree shows the name of each item, its word "
"count (or alternatively character count), an icon for :ref:"
"`docs_usage_project_active`, and a custom icon for :ref:"
"`docs_usage_project_status` of each item. These latter two are covered "
"alter in this section."
msgstr ""
"Chaque ligne de l'arborescence du projet montre le nom de chaque "
"élément, son nombre de mots (ou de caractères), une icône pour :ref:"
"`docs_usage_project_active`, et une icône personnalisée pour :ref:"
"`docs_usage_project_status` de chaque élément. Ces deux derniers points "
"sont abordés plus loin dans cette section."
#: ../../source/usage/organising_project.rst:20
msgid ""
"You can add, view and edit documents in the project tree by right-"
"clicking on them. Some features are also located in the buttons along "
"the top, next to the **Project Content** label."
msgstr ""
"Vous pouvez ajouter, visualiser et modifier des documents dans "
"l'arborescence du projet en cliquant dessus avec le bouton droit de la "
"souris. Certaines fonctions se trouvent également dans les boutons "
"situés en haut, à côté de l'étiquette **Contenu du projet**."
#: ../../source/usage/organising_project.rst:27
msgid "How Root Folders Work"
msgstr "Fonctionnement des dossiers racines"
#: ../../source/usage/organising_project.rst:29
msgid ""
"Projects are structured into a set of top level folders called \"Root "
"Folders\". They are visible in the project tree at the left side of the "
"main window. Each type of root folder has a distinct icon."
msgstr ""
"Les projets sont structurés en un ensemble de dossiers de premier niveau "
"appelés « dossiers racines ». Ils sont visibles dans l'arborescence du "
"projet, à gauche de la fenêtre principale. Chaque type de dossier racine "
"possède une icône distincte."
#: ../../source/usage/organising_project.rst:32
msgid ""
"The documents that make up your story go into a root folder of type "
"**Novel**. Your notes go into the other root folders. These other root "
"folder types are separated into types depending on what kind of notes go "
"into them. This is not only for organisation. It also matters to how you "
"can reference these notes later. We will come back to this in the :ref:"
"`docs_usage_tags_refs` section."
msgstr ""
"Les documents qui constituent votre histoire sont placés dans un dossier "
"racine de type **roman**. Vos notes sont placées dans les autres "
"dossiers racines. Ces autres types de dossiers racines sont séparés en "
"fonction du type de notes qu'ils contiennent. Il ne s'agit pas seulement "
"d'une question d'organisation. Cela a également une incidence sur la "
"manière dont vous pourrez faire référence à ces notes ultérieurement. "
"Nous y reviendrons dans la section :ref:`docs_usage_tags_refs`."
#: ../../source/usage/organising_project.rst:37
msgid ""
"A new project may not have all of the root folders present, but you can "
"add the ones you want from the project tree tool bar."
msgstr ""
"Un nouveau projet peut ne pas contenir tous les dossiers racines, mais "
"vous pouvez ajouter ceux que vous souhaitez à partir de la barre "
"d'outils de l'arborescence du projet."
#: ../../source/usage/organising_project.rst:40
msgid ""
"The intended usage of each type of root folder is listed below. However, "
"aside from the **Novel** folder, no restrictions are applied by "
"UmbraEdit on what you put in them. You can use them however you want."
msgstr ""
"L'utilisation prévue de chaque type de dossier racine est indiquée ci-"
"dessous. Cependant, à part le dossier **Roman**, aucune restriction "
"n'est appliquée par UmbraEdit sur ce que vous mettez dans ces "
"dossiers. Vous pouvez les utiliser comme bon vous semble."
#: ../../source/usage/organising_project.rst:46
msgid "Root Folder Types"
msgstr "Types de dossiers racines"
#: ../../source/usage/organising_project.rst:48
msgid "**Novel** (Story)"
msgstr "**roman** (histoire)"
#: ../../source/usage/organising_project.rst:49
msgid ""
"This is where you put the documents that are part of your story. You can "
"create multiple Novel folders if you wish, but various parts of the "
"application assumes each Novel folder belong to one novel."
msgstr ""
"C'est là que vous placez les documents qui font partie de votre "
"histoire. Vous pouvez créer plusieurs dossiers Roman si vous le "
"souhaitez, mais plusieurs parties de l'application supposent que chaque "
"dossier Roman appartient à un seul roman."
#: ../../source/usage/organising_project.rst:53
msgid ""
"The Novel folder is somewhat special in that it can contain documents "
"for chapters, scenes and story partitions. How this is indicated is "
"covered in the section :ref:`docs_usage_headings`."
msgstr ""
"Le dossier roman est un peu spécial en ce sens qu'il peut contenir des "
"documents pour les chapitres, les scènes et les parties de l'histoire. "
"La façon dont cela est indiqué est couverte dans la section :ref:"
"`docs_usage_headings`."
#: ../../source/usage/organising_project.rst:56
msgid "**Plot** (Notes)"
msgstr "**Intrigue** (Notes)"
#: ../../source/usage/organising_project.rst:57
msgid ""
"This is where you can keep notes and outlines of your story plots. Such "
"notes can be particularly useful if you have outlines for sub plot. You "
"can make references to these subplots from the scene documents, which "
"makes it easier to track story progress."
msgstr ""
"C'est là que vous pouvez conserver des notes et les grandes lignes des "
"intrigues de votre histoire. Ces notes peuvent être particulièrement "
"utiles si vous avez des plans de sous-intrigues. Vous pouvez faire "
"référence à ces intrigues secondaires à partir des documents de scène, "
"ce qui facilite le suivi de la progression de l'histoire."
#: ../../source/usage/organising_project.rst:61
msgid "**Characters** (Notes)"
msgstr "**Personnages** (Notes)"
#: ../../source/usage/organising_project.rst:62
msgid ""
"Character notes go in this root folder type. For your main characters, "
"you may want to make one document for each character. For smaller "
"characters you can put multiple into the same document. In your chapters "
"and scenes you can reference these character notes as point-of-view or "
"focus characters."
msgstr ""
"Les notes concernant les personnages sont placées dans ce type de "
"dossier racine. Pour vos personnages principaux, vous pouvez créer un "
"document pour chacun d'entre eux. Pour les personnages secondaires, vous "
"pouvez en mettre plusieurs dans le même document. Dans vos chapitres et "
"vos scènes, vous pouvez faire référence à ces notes de personnages en "
"tant que points de vue ou personnages principaux."
#: ../../source/usage/organising_project.rst:67
msgid "**Locations** (Notes)"
msgstr "**Lieux** (Notes)"
#: ../../source/usage/organising_project.rst:68
msgid ""
"The locations where your story takes place can be documented here. This, "
"together with Plot and Characters are the key story elements to track, "
"and to reference from your chapter and scene documents."
msgstr ""
"Les lieux où se déroule votre histoire peuvent être documentés ici. Avec "
"l'intrigue et les personnages, ce sont les éléments clés de l'histoire "
"qu'il faut suivre et auxquels il faut faire référence dans les documents "
"relatifs aux chapitres et aux scènes."
#: ../../source/usage/organising_project.rst:72
msgid "**Timeline** (Notes)"
msgstr "**Ligne de temps** (Notes)"
#: ../../source/usage/organising_project.rst:73
msgid ""
"If the story has multiple plot timelines or jumps in time within the "
"same plot, this folder type can be used to track this."
msgstr ""
"Si l'histoire comporte plusieurs lignes temporelles ou des sauts dans le "
"temps au sein d'une même intrigue, ce type de dossier peut être utilisé "
"pour en assurer le suivi."
#: ../../source/usage/organising_project.rst:76
msgid "**Objects** (Notes)"
msgstr "**Objets** (Notes)"
#: ../../source/usage/organising_project.rst:77
msgid ""
"Important objects in the story, for instance physical objects that "
"change hands often, can be tracked here."
msgstr ""
"Les objets importants de l'histoire, par exemple les objets physiques "
"qui changent souvent de mains, peuvent être suivis ici."
#: ../../source/usage/organising_project.rst:80
msgid "**Entities** (Notes)"
msgstr "**Entités** (Notes)"
#: ../../source/usage/organising_project.rst:81
msgid ""
"Does your plot have many powerful organisations or companies? Or other "
"entities that are part of the plot? They can be organised here."
msgstr ""
"Votre intrigue comporte-t-elle de nombreuses organisations ou "
"entreprises puissantes ? Ou d'autres entités qui font partie de "
"l'intrigue ? Vous pouvez les organiser ici."
#: ../../source/usage/organising_project.rst:84
msgid "**Custom** (Notes)"
msgstr "**Personnalisé** (Notes)"
#: ../../source/usage/organising_project.rst:85
msgid ""
"The custom root folder type can be used for tracking anything else not "
"covered by the above options."
msgstr ""
"Le type de dossier racine personnalisé peut être utilisé pour suivre "
"tout ce qui n'est pas couvert par les options ci-dessus."
#: ../../source/usage/organising_project.rst:88
msgid "**Templates**"
msgstr "Modèles"
#: ../../source/usage/organising_project.rst:89
msgid ""
"Any document added under this root folder will be made available as "
"template options when creating new documents. See :ref:"
"`docs_usage_project_documents_templates` for more details."
msgstr ""
"Tout document ajouté dans ce dossier racine sera disponible en tant "
"qu'options de modèle lors de la création de nouveaux documents. Voir :"
"ref:`docs_usage_project_documents_templates` pour plus de détails."
#: ../../source/usage/organising_project.rst:92
msgid "**Archive**"
msgstr "**Archive**"
#: ../../source/usage/organising_project.rst:93
msgid ""
"If you don't want to delete a document, or put it in the **Trash** "
"folder where it may be deleted, but still want it out of your main "
"project, you can put it in this folder. The contents of the document "
"will be ignored by the scanner that looks for tags, and it will be "
"ignored in any outline view and in your manuscript."
msgstr ""
"Si vous ne voulez pas supprimer un document ou le placer dans le dossier "
"**Poubelle** où il peut être supprimé, mais que vous voulez quand même "
"le retirer de votre projet principal, vous pouvez le placer dans ce "
"dossier. Le contenu du document sera ignoré par le scanner qui recherche "
"les balises, et il sera ignoré dans toute vue d'ensemble et dans votre "
"manuscrit."
#: ../../source/usage/organising_project.rst:98
msgid "**Trash**"
msgstr "**Poubelle**"
#: ../../source/usage/organising_project.rst:99
msgid ""
"This folder behaves like you expect. Anything dropped in here can be "
"deleted permanently from the project, and the content doesn't show up "
"anywhere else in UmbraEdit."
msgstr ""
"Ce dossier se comporte comme vous vous y attendez. Tout ce qui y est "
"déposé peut être supprimé définitivement du projet, et son contenu "
"n'apparaît nulle part ailleurs dans UmbraEdit."
#: ../../source/usage/organising_project.rst:102
msgid ""
"The root folder types are closely tied to the tags and reference system. "
"Each folder type for novel and notes corresponds to one or more "
"categories of tags that can be used to reference the content in them. "
"See :ref:`docs_usage_tags_refs` for more details."
msgstr ""
"Les types de dossiers racine sont étroitement liés au système de balises "
"et de références. Chaque type de dossier pour les romans et les notes "
"correspond à une ou plusieurs catégories de balises qui peuvent être "
"utilisées pour référencer le contenu qu'ils contiennent. Voir :ref:"
"`docs_usage_tags_refs` pour plus de détails."
#: ../../source/usage/organising_project.rst:108
msgid ""
"The root folders have standard names, but you can rename them to "
"whatever you want."
msgstr ""
"Les dossiers racine ont des noms standard, mais vous pouvez les renommer "
"comme vous le souhaitez."
#: ../../source/usage/organising_project.rst:114
msgid "Regular Folders"
msgstr "Dossiers ordinaires"
#: ../../source/usage/organising_project.rst:116
msgid ""
"You can add regular folders anywhere you want in the project. The "
"folders are there purely as a way for you to organise the documents in "
"meaningful sections and to be able to collapse and hide them in the "
"project tree when you're not working on those documents."
msgstr ""
"Vous pouvez ajouter des dossiers ordinaires où vous le souhaitez dans le "
"projet. Les dossiers sont là uniquement pour vous permettre d'organiser "
"les documents en sections significatives et pour pouvoir les réduire et "
"les cacher dans l'arborescence du projet lorsque vous ne travaillez pas "
"sur ces documents."
#: ../../source/usage/organising_project.rst:120
msgid ""
"When UmbraEdit is processing the documents in a project, like for "
"instance when you create a manuscript from it, these folders are "
"ignored. Only the order of the documents themselves matter."
msgstr ""
"Lorsque UmbraEdit traite les documents d'un projet, comme par exemple "
"lorsque vous créez un manuscrit à partir de ce projet, ces dossiers sont "
"ignorés. Seul l'ordre des documents eux-mêmes compte."
#: ../../source/usage/organising_project.rst:127
msgid "Documents"
msgstr "Documents"
#: ../../source/usage/organising_project.rst:129
msgid ""
"You can add documents anywhere you want in your project structure. You "
"can even add documents as child items of other documents, just as if "
"they were folders. This makes it easy to associate a set of scenes with "
"their chapter. You can also do this in your notes, where you for "
"instance may have a hierarchy of your locations."
msgstr ""
"Vous pouvez ajouter des documents où vous le souhaitez dans la structure "
"de votre projet. Vous pouvez même ajouter des documents en tant "
"qu'éléments enfants d'autres documents, comme s'il s'agissait de "
"dossiers. Cela permet d'associer facilement un ensemble de scènes à leur "
"chapitre. Vous pouvez également procéder de la même manière dans vos "
"notes, où vous pouvez par exemple avoir une hiérarchie de vos lieux."
#: ../../source/usage/organising_project.rst:134
msgid ""
"The name on a document in the project tree is not linked to any headings "
"in the document text. Think of the document name as a file name. You can "
"rename a document, or any other item in the project, at any time."
msgstr ""
"Le nom d'un document dans l'arborescence du projet n'est lié à aucun "
"titre dans le texte du document. Considérez le nom du document comme un "
"nom de fichier. Vous pouvez renommer un document, ou tout autre élément "
"du projet, à tout moment."
#: ../../source/usage/organising_project.rst:138
msgid "Documents come in two types:"
msgstr "Les documents sont de deux types :"
#: ../../source/usage/organising_project.rst:140
msgid "**Novel Documents**"
msgstr "**Documents du roman**"
#: ../../source/usage/organising_project.rst:141
msgid ""
"These are the documents that make up your story or novel. They can only "
"be added under a root folder of type **Novel**. You can technically also "
"add them under **Archive**. See :ref:`docs_usage_headings` for more "
"details on how these documents are handled by UmbraEdit."
msgstr ""
"Ce sont les documents qui constituent votre histoire ou votre roman. Ils "
"ne peuvent être ajoutés que dans un dossier racine de type **Roman**. "
"Techniquement, vous pouvez aussi les ajouter dans **Archive**. Voir :ref:"
"`docs_usage_headings` pour plus de détails sur la façon dont ces "
"documents sont gérés par UmbraEdit."
#: ../../source/usage/organising_project.rst:145
msgid "**Project Notes**"
msgstr "*Notes de projet**"
#: ../../source/usage/organising_project.rst:146
msgid ""
"These are the documents where you keep your notes. You can add them "
"anywhere in your project, including under **Novel** type folders. If you "
"do add them there, they are not treated as a part of the story by "
"default."
msgstr ""
"Il s'agit des documents dans lesquels vous conservez vos notes. Vous "
"pouvez les ajouter n'importe où dans votre projet, y compris dans les "
"dossiers de type **Roman**. Si vous les ajoutez à cet endroit, ils ne "
"sont pas traités par défaut comme faisant partie de l'histoire."
#: ../../source/usage/organising_project.rst:150
msgid ""
"You can convert between the two types of documents where both types are "
"allowed. You can also convert folders into documents, which may "
"sometimes be convenient too."
msgstr ""
"Vous pouvez convertir les deux types de documents lorsque les deux types "
"sont autorisés. Vous pouvez également convertir des dossiers en "
"documents, ce qui peut parfois s'avérer pratique."
#: ../../source/usage/organising_project.rst:153
msgid ""
"Another convenient feature is that documents can be split into sub-"
"documents by its headings, or multiple documents merged into one. This "
"is particularly useful if you start out with larger structural "
"documents, like one containing all chapters and scenes in an act, and "
"then split those when you start writing. See :ref:`docs_ui_split_merge` "
"for more details."
msgstr ""
"Une autre caractéristique pratique est que les documents peuvent être "
"divisés en sous-documents par leurs titres, ou que plusieurs documents "
"peuvent être fusionnés en un seul. Ceci est particulièrement utile si "
"vous commencez avec des documents structurels plus importants, comme un "
"document contenant tous les chapitres et scènes d'un acte, et que vous "
"les divisez ensuite lorsque vous commencez à écrire. Voir :ref:"
"`docs_ui_split_merge` pour plus de détails."
#: ../../source/usage/organising_project.rst:162
msgid "Document Templates"
msgstr "Modèles de documents"
#: ../../source/usage/organising_project.rst:164
msgid ""
"If you wish to create template documents to be used when creating new "
"documents, like for instance a character note template, you can add a "
"**Templates** root folder to your project. Any document added to this "
"root folder will show up in the **Add Item** menu in the project tree "
"toolbar. When selected, a new document is created with its content "
"copied from the chosen template."
msgstr ""
"Si vous souhaitez créer des documents modèles à utiliser lors de la "
"création de nouveaux documents, comme par exemple un modèle de note de "
"personnage, vous pouvez ajouter un dossier racine **Modèles** à votre "
"projet.Tout document ajouté à ce dossier racine apparaîtra dans le menu "
"**Ajouter un élément** de la barre d'outils de l'arborescence du projet."
"Lorsqu'il est sélectionné, un nouveau document est créé dont le contenu "
"est copié à partir du modèle choisi."
#: ../../source/usage/organising_project.rst:175
msgid "Active and Inactive Documents"
msgstr "Documents actifs et inactifs"
#: ../../source/usage/organising_project.rst:177
msgid ""
"A document can be set as \"Active\" or \"Inactive\", which alters the "
"icon in the third column of the project tree. These are mostly intended "
"for your convenience as they will indicate whether the document is meant "
"to be included in the manuscript or not. You can think of an inactive "
"status as a whole-document out-take. It allows you to take it out "
"without moving it to **Archive**."
msgstr ""
"Un document peut être défini comme « actif » ou « inactif », ce qui "
"modifie l'icône dans la troisième colonne de l'arborescence du projet. "
"Ces statuts sont principalement destinés à vous faciliter la tâche, car "
"ils indiquent si le document est destiné à être inclus dans le manuscrit "
"ou non. Vous pouvez considérer le statut inactif comme un retrait du "
"document entier. Il vous permet de le retirer sans le déplacer vers "
"**Archives**."
#: ../../source/usage/organising_project.rst:182
msgid ""
"Inactive documents are by default excluded from your manuscript, but you "
"can override this if you wish. See :ref:`docs_ui_manuscript_selection` "
"for more details."
msgstr ""
"Les documents inactifs sont par défaut exclus de votre manuscrit, mais "
"vous pouvez modifier cela si vous le souhaitez. Voir :ref:"
"`docs_ui_manuscript_selection` pour plus de détails."
#: ../../source/usage/organising_project.rst:189
msgid "Importance and Status"
msgstr "Importance et état"
#: ../../source/usage/organising_project.rst:191
msgid ""
"Each document or folder in your project can have either a \"Status\" or "
"\"Importance\" label set. These are labels and icons that you control "
"and define yourself, and UmbraEdit doesn't use them for anything. You "
"can modify these labels in **Project Settings**. See :ref:"
"`docs_ui_projects_settings_status` for more details."
msgstr ""
"Chaque document ou dossier de votre projet peut avoir une étiquette « "
"Statut » ou « Importance ». Ce sont des étiquettes et des icônes que "
"vous contrôlez et définissez vous-même, et UmbraEdit ne les utilise "
"pas pour quoi que ce soit. Vous pouvez modifier ces étiquettes dans "
"**Paramètres du projet**. Voir :ref:`docs_ui_projects_settings_status` "
"pour plus de détails."
#: ../../source/usage/organising_project.rst:196
msgid ""
"The \"Status\" labels are intended to tag a novel document as for "
"instance a draft or as completed, and the \"Importance\" labels are "
"intended to tag character notes, or other project notes, as for instance "
"a main, major, or minor character or story element."
msgstr ""
"Les étiquettes « Statut » sont destinées à étiqueter un document de "
"roman comme étant par exemple un brouillon ou comme étant terminé, et "
"les étiquettes « Importance » sont destinées à étiqueter les notes sur "
"les personnages, ou d'autres notes sur le projet, comme par exemple un "
"personnage principal, majeur ou mineur ou un élément de l'histoire."
#: ../../source/usage/organising_project.rst:200
msgid ""
"Whether a document uses a \"Status\" or \"Importance\" label depends on "
"which root folder it lives in. If it's in a **Novel** type folder, it "
"uses the \"Status\" label, otherwise it uses an \"Importance\" label."
msgstr ""
"L'utilisation d'une étiquette « Statut » ou « Importance » pour un "
"document dépend du dossier racine dans lequel il se trouve. S'il se "
"trouve dans un dossier de type **Roman**, il utilise l'étiquette « "
"Statut », sinon il utilise l'étiquette « Importance »."

View File

@@ -1,548 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 14:07+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/usage/tags_and_references.rst:5
msgid "Tags and References"
msgstr "Étiquettes et références"
#: ../../source/usage/tags_and_references.rst:7
msgid ""
"One of the core features of UmbraEdit is its **Tags and References** "
"system. This is perhaps one of the features that makes UmbraEdit "
"different from other similar applications. It is therefore not always "
"obvious to new users how this is supposed to work."
msgstr ""
"L'une des principales caractéristiques de UmbraEdit est son système "
"d'**Étiquettes et de Références**. C'est peut-être l'une des "
"caractéristiques qui différencie UmbraEdit d'autres applications "
"similaires. Il n'est donc pas toujours évident pour les nouveaux "
"utilisateurs de comprendre comment cela est censé fonctionner."
#: ../../source/usage/tags_and_references.rst:11
msgid ""
"In UmbraEdit there are no forms or tables to fill in to define "
"characters, locations or other elements of your story. Instead, you "
"create documents in one of the root folders for notes. Within these "
"documents you can set **tags**, like for instance for your main "
"character. If you then want to annotate a scene with this character as "
"its point-of-view, you create a **reference** to the tag."
msgstr ""
"Dans UmbraEdit, il n'y a pas de formulaires ou de tableaux à remplir "
"pour définir les personnages, les lieux ou d'autres éléments de votre "
"histoire. Au lieu de cela, vous créez des documents dans l'un des "
"dossiers racine pour les notes. Dans ces documents, vous pouvez définir "
"des **étiquettes**, par exemple pour votre personnage principal. Si vous "
"souhaitez ensuite annoter une scène avec ce personnage comme point de "
"vue, vous créez une **référence** à l'étiquette."
#: ../../source/usage/tags_and_references.rst:19
msgid ""
"If you find the Tags and Reference system difficult to follow just from "
"reading this chapter, you can create a new project in the **Welcome** "
"dialog's New Project form and select \"Create an example project\" from "
"the \"Pre-fill project\" option. The example project contains several "
"examples of tags and references."
msgstr ""
"Si le système d'étiquettes et de références vous semble difficile à "
"suivre à la seule lecture de ce chapitre, vous pouvez créer un nouveau "
"projet dans le formulaire Nouveau projet de la boîte de dialogue "
"**Bienvenue** et sélectionner « Créer un projet d'exemple » dans l'option "
"« Pré-remplir le projet ». Le projet d'exemple contient plusieurs "
"exemples d'étiquettes et de références."
#: ../../source/usage/tags_and_references.rst:28
msgid "How to Use Tags"
msgstr "Comment utiliser les étiquettes"
#: ../../source/usage/tags_and_references.rst:30
msgid ""
"The structure of your UmbraEdit project is inferred from the headings "
"within the documents, not the documents themselves. See :ref:"
"`docs_usage_headings` for more details. Therefore, metadata is also "
"associated with headings, and not the documents themselves."
msgstr ""
"La structure de votre projet UmbraEdit est déduite des titres des "
"documents, et non des documents eux-mêmes. Voir :ref:"
"`docs_usage_headings` pour plus de détails. Par conséquent, les "
"métadonnées sont également associées aux titres, et non aux documents eux-"
"mêmes."
#: ../../source/usage/tags_and_references.rst:34
msgid ""
"A \"tag\" in UmbraEdit is a word or phrase that you define as belonging "
"to a heading. Tags are set by using the ``@tag`` keyword."
msgstr ""
"Une « étiquette » dans UmbraEdit est un mot ou une phrase que vous "
"définissez comme appartenant à une rubrique. Les étiquettes sont définies "
"en utilisant le mot-clé ``@tag``."
#: ../../source/usage/tags_and_references.rst:37
msgid "The basic format of a tag is ``@tag: TagName``."
msgstr "Le format de base d'un tag est ``@tag: NomÉtiquette``."
#: ../../source/usage/tags_and_references.rst:39
msgid "An alternative format of a tag is ``@tag: TagName | Display Name``."
msgstr ""
"Un autre format de balise est ``@tag : NomÉtiquette | Nom Affiché``."
#: ../../source/usage/tags_and_references.rst:41
msgid "``tagName`` (Required)"
msgstr "``NomÉtiquette`` (Requis)"
#: ../../source/usage/tags_and_references.rst:42
msgid ""
"This is a unique identifier of your choosing. It is the value you use "
"later for making references back to the heading in the document. The tag "
"must be unique."
msgstr ""
"Il s'agit d'un identifiant unique de votre choix. C'est la valeur que "
"vous utiliserez plus tard pour faire référence à l'intitulé dans le "
"document. L'étiquette doit être unique."
#: ../../source/usage/tags_and_references.rst:45
msgid "``Display Name`` (Optional)"
msgstr "``Nom Affiché`` (Facultatif)"
#: ../../source/usage/tags_and_references.rst:46
msgid ""
"This is an optional display name used for the tag. When you build your "
"manuscript, you can for instance insert the point-of-view character name "
"directly into chapter titles. By default, the ``tagName`` value is used "
"in such headings, but if you use a shortened format internally in your "
"project, you can use the display name to specify a more suitable format "
"for your chapter title."
msgstr ""
"Il s'agit d'un nom d'affichage facultatif utilisé pour l'étiquette. "
"Lorsque vous construisez votre manuscrit, vous pouvez par exemple insérer "
"le nom du personnage du point de vue directement dans les titres des "
"chapitres. Par défaut, la valeur ``NomÉtiquette`` est utilisée dans ces "
"titres, mais si vous utilisez un format raccourci en interne dans votre "
"projet, vous pouvez utiliser le nom d'affichage pour spécifier un format "
"plus approprié pour votre titre de chapitre."
#: ../../source/usage/tags_and_references.rst:53
msgid ""
"You can only set **one** tag per heading, and the tag has to be unique "
"across **all** documents in the project."
msgstr ""
"Vous ne pouvez définir **qu'une seule** étiquette par en-tête, et "
"l'étiquette doit être unique dans **tous** les documents du projet."
#: ../../source/usage/tags_and_references.rst:56
msgid ""
"After a tag has been defined, it can be referenced in novel documents, or "
"cross-referenced in other notes. Tags will also show up in the **Outline "
"View** and in the **References** panel under the document viewer when a "
"document is open in the viewer. See :ref:`docs_ui_main_outline` and :ref:"
"`docs_ui_edit_view_view_references` for more details."
msgstr ""
"Une fois qu'une étiquette a été définie, elle peut être référencée dans "
"de nouveaux documents ou faire l'objet de références croisées dans "
"d'autres notes. Les étiquettes apparaîtront également dans la **Vue en "
"plan** et dans le panneau **Références** sous l'afficheur de documents "
"lorsqu'un document est ouvert dans l'afficheur. Voir :ref:"
"`docs_ui_main_outline` et :ref:`docs_ui_edit_view_view_references` pour "
"plus de détails."
#: ../../source/usage/tags_and_references.rst:61
msgid ""
"The editor will indicate to you that the keyword is correctly used and "
"that the tag is allowed, that is, the tag is unique, by adding a colour "
"highlighting to it. An invalid tag should have a wiggly line under it, "
"and will not receive the colour that valid tags do."
msgstr ""
"L'éditeur vous indiquera que le mot-clé est correctement utilisé et que "
"l'étiquette est autorisée, c'est-à-dire qu'elle est unique, en la "
"surlignant d'une couleur. Une étiquette non valide doit être soulignée "
"par une ligne ondulée et ne reçoit pas la même couleur que les étiquettes "
"valides."
#: ../../source/usage/tags_and_references.rst:65
msgid ""
"The tag is the only part of notes that UmbraEdit uses. The rest of the "
"document content is there for you to use in whatever way you wish."
msgstr ""
"L'étiquette est la seule partie des notes que UmbraEdit utilise. Le "
"reste du contenu du document peut être utilisé comme bon vous semble."
#: ../../source/usage/tags_and_references.rst:70
msgid ""
"Tags are no longer case sensitive. The tags are by default displayed with "
"the capitalisation you use when defining the tag, but you don't have to "
"use the same capitalisation when referencing it later."
msgstr ""
"Les étiquettes ne sont plus sensibles à la casse. Les étiquettes sont "
"affichées par défaut avec la majuscule utilisée lors de la définition de "
"l'étiquette, mais vous n'êtes pas obligé d'utiliser la même majuscule "
"lorsque vous y faites référence ultérieurement."
#: ../../source/usage/tags_and_references.rst:76
msgid "Tags can have an optional display name for manuscript builds."
msgstr ""
"Les étiquettes peuvent avoir un nom d'affichage facultatif pour la "
"compilation du manuscrit."
#: ../../source/usage/tags_and_references.rst:80
msgid ""
"You can now add tags also to Novel Documents. These can be used for cross-"
"referencing between chapters and scenes, and also from notes if desired."
msgstr ""
"Vous pouvez désormais ajouter des étiquettes aux documents du roman. "
"Celles-ci peuvent être utilisées pour les références croisées entre les "
"chapitres et les scènes, ainsi qu'à partir des notes si vous le souhaitez."
#: ../../source/usage/tags_and_references.rst:83
#: ../../source/usage/tags_and_references.rst:200
msgid ":bdg-info:`Example`"
msgstr ":bdg-info:`Exemple`"
#: ../../source/usage/tags_and_references.rst:85
msgid "Example of a note document for a character with a tag set:"
msgstr ""
"Exemple de document de notes pour un personnage avec un jeu d'étiquettes :"
#: ../../source/usage/tags_and_references.rst:95
msgid ""
"When this is done in a document in a root folder of type **Characters**, "
"the tag is automatically treated as an available character in your "
"project with the value \"Jane\". You will then be able to reference "
"\"Jane\" in any of your other documents using the reference keywords for "
"characters."
msgstr ""
"Lorsque cela est fait dans un document d'un dossier racine de type "
"**Personnages**, l'étiquette est automatiquement traitée comme un "
"personnage disponible dans votre projet avec la valeur « Jane ». Vous "
"pourrez alors faire référence à « Jane » dans n'importe lequel de vos "
"autres documents en utilisant les mots-clés de référence pour les "
"personnages."
#: ../../source/usage/tags_and_references.rst:99
msgid ""
"The character \"Jane\" will also show up in the **Character** tab in the "
"**Reference** panel below the document viewer."
msgstr ""
"Le personnage « Jane » apparaîtra également dans l'onglet **Personnage** "
"du panneau **Référence** situé sous l'afficheur de document."
#: ../../source/usage/tags_and_references.rst:104
msgid ""
"It is the root folder type that defines what category of story elements "
"the tag is indexed under. See :ref:`docs_usage_project_roots` for more "
"details."
msgstr ""
"C'est le type de dossier racine qui définit la catégorie d'éléments de "
"l'histoire sous laquelle l'étiquette est indexée. Voir :ref:"
"`docs_usage_project_roots` pour plus de détails."
#: ../../source/usage/tags_and_references.rst:111
msgid "How to Use References"
msgstr "Comment utiliser les références"
#: ../../source/usage/tags_and_references.rst:113
msgid ""
"Each heading of any level in your project can contain references to tags "
"set in your notes. The references are gathered by the project index and "
"used to generate the **Outline View**, among other things."
msgstr ""
"Chaque titre de n'importe quel niveau de votre projet peut contenir des "
"références à des étiquettes définies dans vos notes. Ces références sont "
"rassemblées par l'index du projet et utilisées pour générer la **Vue "
"d'ensemble**, entre autres choses."
#: ../../source/usage/tags_and_references.rst:117
msgid ""
"References are set with a special keyword, with a list of corresponding "
"tags. The valid keywords are listed below. The format of a reference line "
"is ``@keyword: value1, [value2] ... [valueN]``. All reference keywords "
"allow multiple values."
msgstr ""
"Les références sont définies à l'aide d'un mot-clé spécial, accompagné "
"d'une liste d'étiquettes correspondantes. Les mots-clés valides sont "
"listés ci-dessous. Le format d'une ligne de référence est ``@mot-clé : "
"valeur1, [valeur2] ... [valeurN]``. Tous les mots-clés de référence "
"autorisent des valeurs multiples."
#: ../../source/usage/tags_and_references.rst:121
msgid "``@pov``"
msgstr "``@pov``"
#: ../../source/usage/tags_and_references.rst:122
msgid ""
"The point-of-view character for the current section. The target must be a "
"note tag in a **Character** type root folder."
msgstr ""
"Le personnage de point de vue pour la section en cours. La cible doit "
"être une étiquette note dans un dossier racine de type **Personnages**."
#: ../../source/usage/tags_and_references.rst:125
msgid "``@focus``"
msgstr "``@focus``"
#: ../../source/usage/tags_and_references.rst:126
msgid ""
"The character that has the focus for the current section. This can be "
"used in cases where the focus is not the point-of-view character. The "
"target must be a note tag in a **Character** type root folder."
msgstr ""
"Le personnage qui est au centre de l'attention pour la section en cours. "
"Ceci peut être utilisé dans les cas où le focus n'est pas un personnage "
"de point de vue. La cible doit être une étiquette note dans un dossier "
"racine de type **Personnages**."
#: ../../source/usage/tags_and_references.rst:130
msgid "``@char``"
msgstr "``@char``"
#: ../../source/usage/tags_and_references.rst:131
msgid ""
"For other characters in the current section. The target must be a note "
"tag in a **Character** type root folder. This should not include the "
"point-of-view or focus character if those references are used."
msgstr ""
"Autres personnages de la section courante. La cible doit être une "
"étiquette de note dans un dossier racine de type **Personnages**. Cela ne "
"doit pas inclure le point de vue ou le personnage principal si ces "
"références sont utilisées."
#: ../../source/usage/tags_and_references.rst:135
msgid "``@plot``"
msgstr "``@plot``"
#: ../../source/usage/tags_and_references.rst:136
msgid ""
"The plot or subplot advanced in the current section. The target must be a "
"note tag in a **Plot** type root folder."
msgstr ""
"L'intrigue ou la sous-intrigue développée dans la section en cours. La "
"cible doit être une étiquette note dans un dossier racine de type "
"**Intrigue**."
#: ../../source/usage/tags_and_references.rst:139
msgid "``@time``"
msgstr "``@time``"
#: ../../source/usage/tags_and_references.rst:140
msgid ""
"The timelines touched by the current section. The target must be a note "
"tag in a **Timeline** type root folder."
msgstr ""
"Les lignes de temps concernées par la section en cours. La cible doit "
"être une étiquette note dans un dossier racine de type **Chronologie**."
#: ../../source/usage/tags_and_references.rst:143
msgid "``@location``"
msgstr "``@location``"
#: ../../source/usage/tags_and_references.rst:144
msgid ""
"The location the current section takes place in. The target must be a "
"note tag in a **Locations** type root folder."
msgstr ""
"L'endroit où se déroule la section en cours. La cible doit être une "
"étiquette note dans un dossier racine de type **lieux**."
#: ../../source/usage/tags_and_references.rst:147
msgid "``@object``"
msgstr "``@object``"
#: ../../source/usage/tags_and_references.rst:148
msgid ""
"Objects present in the current section. The target must be a note tag in "
"a **Object** type root folder."
msgstr ""
"Objets présents dans la section courante. La cible doit être une "
"étiquette de note dans un dossier racine de type **Objets**."
#: ../../source/usage/tags_and_references.rst:151
msgid "``@entity``"
msgstr "``@entity``"
#: ../../source/usage/tags_and_references.rst:152
msgid ""
"Entities present in the current section. The target must be a note tag in "
"an **Entities** type root folder."
msgstr ""
"Entités présentes dans la section courante. La cible doit être une "
"étiquette note dans un dossier racine de type **Entités**."
#: ../../source/usage/tags_and_references.rst:155
msgid "``@custom``"
msgstr "``@custom``"
#: ../../source/usage/tags_and_references.rst:156
msgid ""
"Custom references in the current section. The target must be a note tag "
"in a **Custom** type root folder. The custom folder are for any other "
"category of notes you may want to use."
msgstr ""
"Références personnalisées dans la section en cours. La cible doit être "
"une étiquette de note dans un dossier racine de type **personnalisé**. "
"Les dossiers personnalisés sont destinés à toute autre catégorie de notes "
"que vous souhaiteriez utiliser."
#: ../../source/usage/tags_and_references.rst:159
msgid "``@mention``"
msgstr "``@mention``"
#: ../../source/usage/tags_and_references.rst:160
msgid ""
"For anything, anyone or anyplace mentioned, but not present in the "
"current section. It is intended for those cases where you reveal details "
"about a character or place in a scene without otherwise being a part of "
"it. This can be useful when checking for consistency later. Any tag in "
"any root note folder can be listed under ``@mention``."
msgstr ""
"Pour toute chose, toute personne ou tout lieu mentionné, mais non présent "
"dans la section en cours. Il est destiné aux cas où vous révélez des "
"détails sur un personnage ou un lieu dans une scène sans en faire partie. "
"Cela peut s'avérer utile pour vérifier la cohérence ultérieurement. "
"N'importe quel étiquette dans n'importe quel dossier de notes racine peut "
"être listé sous `@mention``."
#: ../../source/usage/tags_and_references.rst:165
msgid "``@story``"
msgstr "``@story``"
#: ../../source/usage/tags_and_references.rst:166
msgid ""
"This is used when referencing a Novel Document, like a scene or chapter, "
"from somewhere else in your project. It is possible to also set tags in "
"documents in a **Novel** type folder, and this is the keyword you use to "
"reference those."
msgstr ""
"Ce mot-clé est utilisé pour référencer un document de roman, comme une "
"scène ou un chapitre, à partir d'un autre endroit de votre projet. Il est "
"également possible de définir des étiquettes dans les documents d'un "
"dossier de type **Roman**, et c'est le mot-clé que vous utilisez pour "
"référencer ces documents."
#: ../../source/usage/tags_and_references.rst:170
msgid ""
"When tags and references are used correctly, it will be indicated by "
"highlight colours in the editor."
msgstr ""
"Lorsque les étiquettes et les références sont utilisés correctement, cela "
"est indiqué par des couleurs en surbrillance dans l'éditeur."
#: ../../source/usage/tags_and_references.rst:175
msgid ""
"The highlighter may be mistaken if the index of defined tags is out of "
"date. If so, press :kbd:`F9` to regenerate it, or select **Rebuild "
"Index** from the **Tools** menu. In general, the index for a document is "
"regenerated when it is saved, so this shouldn't normally be necessary."
msgstr ""
"Le surligneur peut se tromper si l'index des étiquettes définies n'est "
"pas à jour. Si c'est le cas, appuyez sur :kbd:`F9` pour le régénérer, ou "
"sélectionnez **Reconstruire l'index** dans le menu **Outils**. En "
"général, l'index d'un document est régénéré lorsqu'il est sauvegardé, ce "
"qui ne devrait pas être nécessaire."
#: ../../source/usage/tags_and_references.rst:181
msgid ""
"If you add a reference in the editor to a tag that doesn't yet exist, you "
"can right-click it and select **Create Note for Tag**. This will generate "
"a new note automatically in the correct type of root folder, with the new "
"tag defined."
msgstr ""
"Si vous ajoutez une référence dans l'éditeur à une étiquette qui n'existe "
"pas encore, vous pouvez cliquer dessus avec le bouton droit de la souris "
"et sélectionner **Créer une note pour l'étiquette**. Cela générera "
"automatiquement une nouvelle note dans le bon type de dossier racine, "
"avec la nouvelle étiquette définie."
#: ../../source/usage/tags_and_references.rst:185
msgid ""
"One note can also reference another note in the same way novel documents "
"do. When the note is opened in the document viewer, the references become "
"clickable links, making it easier to follow connections in the plot. You "
"can follow links in the document editor by clicking them with the mouse "
"while holding down the :kbd:`Ctrl` key. Clicked links are always opened "
"in the view panel."
msgstr ""
"Une note peut également faire référence à une autre note, de la même "
"manière que les documents de romans. Lorsque la note est ouverte dans "
"l'éditeur de documents, les références deviennent des liens cliquables, "
"ce qui facilite le suivi des connexions dans l'intrigue. Vous pouvez "
"suivre les liens dans l'éditeur de documents en les cliquant avec la "
"souris tout en maintenant la touche :kbd:`Ctrl` enfoncée. Les liens "
"cliqués sont toujours ouverts dans le panneau de visualisation."
#: ../../source/usage/tags_and_references.rst:190
msgid ""
"Your notes don't show up in the **Outline View**, so referencing between "
"notes is only meaningful if you want to be able to click-navigate between "
"them, or of course if you just want to highlight that two notes are "
"related."
msgstr ""
"Vos notes n'apparaissent pas dans la **Vue d'ensemble**, de sorte que les "
"références entre les notes n'ont de sens que si vous souhaitez pouvoir "
"naviguer d'une note à l'autre par un simple clic ou, bien sûr, si vous "
"souhaitez simplement mettre en évidence que deux notes sont liées."
#: ../../source/usage/tags_and_references.rst:196
msgid ""
"If you cross-reference between notes and export your project as an HTML "
"document using the **Manuscript Build** tool, the cross-references become "
"clickable links in the exported HTML document as well."
msgstr ""
"Si vous faites des références croisées entre les notes et que vous "
"exportez votre projet en tant que document HTML à l'aide de l'outil "
"**Compiler le manuscrit**, les références croisées deviennent également "
"des liens cliquables dans le document HTML exporté."
#: ../../source/usage/tags_and_references.rst:202
msgid "Example of a novel document with references to characters and plots:"
msgstr ""
"Exemple de document de roman avec références aux personnages et aux "
"intrigues :"
#: ../../source/usage/tags_and_references.rst:221
msgid "Auto-Completion in the Editor"
msgstr "Autocomplétion dans l'éditeur"
#: ../../source/usage/tags_and_references.rst:223
msgid ""
"An auto-completer context menu will show up automatically in the document "
"editor when you type the character ``@`` on a new line. It will first "
"suggest tag or reference keywords for you to add, and after the ``:`` has "
"been added, suggest references from the list of tags you have already "
"defined."
msgstr ""
"Un menu contextuel d'auto-complétion s'affiche automatiquement dans "
"l'éditeur de document lorsque vous tapez le caractère ``@`` sur une "
"nouvelle ligne. Il vous proposera d'abord des mots-clés d'étiquette ou de "
"référence à ajouter, puis, après l'ajout de ``:``, des références à "
"partir de la liste des étiquettes que vous avez déjà définies."
#: ../../source/usage/tags_and_references.rst:227
msgid ""
"You can use the auto-completer to add multiple references with a ``,`` "
"between them, and even type new ones. Notes for new references can be "
"created by right-clicking on them and selecting **Create Note for Tag** "
"from the menu."
msgstr ""
"Vous pouvez utiliser l'auto-complétion pour ajouter plusieurs références "
"avec un ``,`` entre elles, et même en taper de nouvelles. Les notes pour "
"les nouvelles références peuvent être créées en faisant un clic droit sur "
"celles-ci et en sélectionnant **Créer une note pour l'étiquette** dans le "
"menu."

View File

@@ -1,440 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025
# This file is distributed under the same license as the UmbraEdit
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: UmbraEdit 2.7rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
"PO-Revision-Date: 2025-05-28 17:39+0200\n"
"Last-Translator: \n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#: ../../source/user_interface/editor_viewer.rst:5
msgid "The Editor and Viewer"
msgstr "L'éditeur et l'afficheur"
#: ../../source/user_interface/editor_viewer.rst:9
msgid ""
"This chapter covers in more detail how the document editor and viewer "
"panels work."
msgstr ""
"Ce chapitre décrit plus en détail le fonctionnement de l'éditeur de "
"documents et des panneaux de visualisation."
#: ../../source/user_interface/editor_viewer.rst:15
msgid "Editing a Document"
msgstr "Édition d'un document"
#: ../../source/user_interface/editor_viewer.rst:19
msgid "A screenshot of the Document Editor panel."
msgstr "Capture d'écran du panneau de l'éditeur de documents."
#: ../../source/user_interface/editor_viewer.rst:21
msgid ""
"To edit a document, double-click it in the project tree, press the :kbd:"
"`Return` key while having it selected, or drag and drop it onto the "
"editor panel. This will open the document in the document editor."
msgstr ""
"Pour éditer un document, double-cliquez dessus dans l'arborescence du "
"projet, appuyez sur la touche :kbd:`Return` lorsqu'il est sélectionné, "
"ou faites-le glisser et déposez-le dans le panneau de l'éditeur. Le "
"document s'ouvre alors dans l'éditeur de documents."
#: ../../source/user_interface/editor_viewer.rst:25
msgid ""
"The editor has a maximise button, which toggles the **Focus Mode**, and "
"a close button in the top--right corner. On the top--left side you will "
"find a tools button that opens a toolbar with a few buttons for applying "
"text formatting, a drop down menu for navigating between headings, and a "
"search button to open the search dialog."
msgstr ""
"L'éditeur dispose d'un bouton d'agrandissement, qui permet de basculer "
"en **Mode sans distraction**, et d'un bouton de fermeture dans le coin "
"supérieur droit. En haut à gauche, vous trouverez un bouton « Outils » "
"qui ouvre une barre d'outils avec quelques boutons pour appliquer le "
"formatage du texte, un menu déroulant pour naviguer entre les rubriques, "
"et un bouton « Recherche » pour ouvrir la boîte de dialogue de recherche."
#: ../../source/user_interface/editor_viewer.rst:30
msgid ""
"Both the document editor and viewer will show the label of the currently "
"open document in the header at the top of the edit or view panel. "
"Optionally, the full project path to the document can be shown. This can "
"be set in **Preferences**."
msgstr ""
"L'éditeur de documents et la visualisation affichent l'étiquette du "
"document actuellement ouvert dans l'en-tête en haut du panneau d'édition "
"ou de visualisation. En option, le chemin complet du projet vers le "
"document peut être affiché. Cette option peut être définie dans les "
"**Préférences**."
#: ../../source/user_interface/editor_viewer.rst:36
msgid ""
"Clicking on the document title bar will select the document in the "
"project tree and thus reveal its location there, making it easier to "
"find in a large project."
msgstr ""
"En cliquant sur la barre de titre du document, vous sélectionnez le "
"document dans l'arborescence du projet et révélez ainsi son emplacement, "
"ce qui permet de le retrouver plus facilement dans un projet volumineux."
#: ../../source/user_interface/editor_viewer.rst:39
msgid ""
"Any references in the editor can be opened in the viewer by moving the "
"cursor to the label and pressing :kbd:`Ctrl+Return`. You can also "
"control-click them with your mouse."
msgstr ""
"Toutes les références de l'éditeur peuvent être ouvertes dans "
"l'afficheur en déplaçant le curseur sur l'étiquette et en appuyant sur :"
"kbd:`Ctrl+Return`. Vous pouvez également faire un contrôle-clic avec "
"votre souris."
#: ../../source/user_interface/editor_viewer.rst:44
msgid "Spell Checking"
msgstr "Vérification de l'orthographe"
#: ../../source/user_interface/editor_viewer.rst:46
msgid ""
"A third party library called Enchant is used for spell checking in the "
"editor. The controls for spell checking are found in the **Tools** menu. "
"You can also set spell checking language in **Project Settings**."
msgstr ""
"Une bibliothèque tierce appelée Enchant est utilisée pour la "
"vérification orthographique dans l'éditeur. Les commandes de "
"vérification orthographique se trouvent dans le menu **Outils**. Vous "
"pouvez également définir la langue de la vérification orthographique "
"dans **Paramètres du projet**."
#: ../../source/user_interface/editor_viewer.rst:50
msgid ""
"This spell checking library comes with support for custom words that you "
"can add by selecting \"Add Word to Dictionary\" from the context menu "
"when a word is highlighted by the spell checker as misspelled. The "
"custom words are managed on a per-project basis, and the list of words "
"can be edited from the **Project Word List** tool available from the "
"**Tools** menu."
msgstr ""
"Cette bibliothèque de vérification orthographique prend en charge les "
"mots personnalisés que vous pouvez ajouter en sélectionnant « Ajouter un "
"mot au dictionnaire » dans le menu contextuel lorsqu'un mot est mis en "
"évidence par le vérificateur orthographique comme étant mal "
"orthographié. Les mots personnalisés sont gérés par projet et la liste "
"des mots peut être modifiée à partir de l'outil **Liste de mots du "
"projet** disponible dans le menu **Outils**.\n"
"\n"
"Traduit avec DeepL.com (version gratuite)"
#: ../../source/user_interface/editor_viewer.rst:57
msgid ""
"Generally, spell checking dictionaries are collected from your operating "
"system, but on Windows they are not. See :ref:`docs_more_custom_dict` "
"for how to add spell checking dictionaries on Windows."
msgstr ""
"En général, les dictionnaires de vérification orthographique sont "
"recueillis par votre système d'exploitation, mais ce n'est pas le cas "
"sous Windows. Voir :ref:`docs_more_custom_dict` pour savoir comment "
"ajouter des dictionnaires de vérification orthographique sous Windows."
#: ../../source/user_interface/editor_viewer.rst:63
msgid "Word Counts"
msgstr "Nombre de mots"
#: ../../source/user_interface/editor_viewer.rst:65
msgid ""
"A character, word, and paragraph count is maintained for each document, "
"as well as for each section of a document following a heading. The word "
"count and change of words in the current session is displayed in the "
"footer of any document open in the editor, and all stats are shown in "
"the details panel below the project tree for any document selected in "
"the project or novel trees."
msgstr ""
"Un décompte des caractères, des mots et des paragraphes est maintenu "
"pour chaque document, ainsi que pour chaque section d'un document "
"suivant un titre. Le nombre de mots et le changement de mots dans la "
"session en cours sont affichés dans le pied de page de tout document "
"ouvert dans l'éditeur, et toutes les statistiques sont affichées dans le "
"panneau de détails situé sous l'arborescence du projet pour tout "
"document sélectionné dans l'arborescence du projet ou des romans."
#: ../../source/user_interface/editor_viewer.rst:70
msgid ""
"The word counts are not updated in real time, but run in the background "
"every few seconds for as long as the document is being actively edited."
msgstr ""
"Le décompte des mots n'est pas mis à jour en temps réel, mais s'exécute "
"en arrière-plan toutes les quelques secondes tant que le document est "
"activement édité."
#: ../../source/user_interface/editor_viewer.rst:73
msgid ""
"A total project word count is displayed in the status bar. The total "
"count depends on the sum of the values in the project tree, which again "
"depend on an up to date project index. If the counts seem wrong, a full "
"project word recount can be initiated by rebuilding the project's index. "
"Either from the **Tools** menu, or by pressing :kbd:`F9`."
msgstr ""
"Le nombre total de mots du projet est affiché dans la barre d'état. Le "
"décompte total dépend de la somme des valeurs de l'arborescence du "
"projet, qui dépendent à leur tour d'un index du projet à jour. Si le "
"décompte semble erroné, un recomptage complet des mots du projet peut "
"être lancé en reconstruisant l'index du projet. Soit à partir du menu "
"**Outils**, soit en appuyant sur :kbd:`F9`."
#: ../../source/user_interface/editor_viewer.rst:78
msgid ""
"The rules for how the counts are made is covered in more detail in :ref:"
"`docs_more_counting`."
msgstr ""
"Les règles de comptage sont décrites plus en détail dans :ref:"
"`docs_more_counting`."
#: ../../source/user_interface/editor_viewer.rst:82
msgid ""
"For some languages, character count is the more interesting statistics. "
"You can select to display character count instead of word count in the "
"user interface in **Preferences**."
msgstr ""
"Pour certaines langues, le nombre de caractères est la statistique la "
"plus intéressante. Vous pouvez choisir d'afficher le nombre de "
"caractères plutôt que le nombre de mots dans l'interface utilisateur "
"dans **Préférences**."
#: ../../source/user_interface/editor_viewer.rst:91
msgid "Search & Replace"
msgstr "Rechercher & Remplacer"
#: ../../source/user_interface/editor_viewer.rst:95
msgid "A screenshot of the Document Editor search box."
msgstr ""
"Capture d'écran de la boîte de recherche de l'éditeur de documents."
#: ../../source/user_interface/editor_viewer.rst:97
msgid ""
"The document editor has a search and replace tool that can be activated "
"with :kbd:`Ctrl+F` for search mode or :kbd:`Ctrl+H` for search and "
"replace mode."
msgstr ""
"L'éditeur de documents dispose d'un outil de recherche et de "
"remplacement qui peut être activé avec :kbd:`Ctrl+F` pour le mode "
"recherche ou :kbd:`Ctrl+H` pour le mode recherche et remplacement."
#: ../../source/user_interface/editor_viewer.rst:100
msgid ""
"Pressing :kbd:`Return` while in the search box will search for the next "
"occurrence of the word, and :kbd:`Shift+Return` for the previous. "
"Pressing :kbd:`Return` in the replace box, will replace the highlighted "
"text and move to the next result."
msgstr ""
"En appuyant sur :kbd:`Retour` dans le champ de recherche, on recherche "
"l'occurrence suivante du mot, et :kbd:`Maj+Retour` l'occurrence "
"précédente. En appuyant sur :kbd:`Retour` dans la zone de remplacement, "
"vous remplacerez le texte surligné et passerez au résultat suivant."
#: ../../source/user_interface/editor_viewer.rst:104
msgid ""
"There are a number of settings for the search tool available as toggle "
"switches above the search box. They allow you to search for, in order: "
"matched case only, whole word results only, search using regular "
"expressions, loop search when reaching the end of the document, and move "
"to the next document when reaching the end. There is also a switch that "
"will try to match the case of the word when the replacement is made. "
"That is, it will try to keep the word upper, lower, or capitalised to "
"match the word being replaced."
msgstr ""
"Il existe un certain nombre de paramètres pour l'outil de recherche, "
"disponibles sous forme de commutateurs au-dessus de la boîte de "
"recherche. Ils vous permettent de rechercher, dans l'ordre : la "
"correspondance entre les majuscules et les minuscules, le mot entier "
"uniquement, les expressions régulières, la recherche en boucle lorsque "
"vous atteignez la fin du document et le passage au document suivant "
"lorsque vous atteignez la fin du document. Il existe également un "
"commutateur qui tente de faire correspondre la casse du mot au moment du "
"remplacement. En d'autres termes, il essaiera de conserver le mot en "
"majuscules, en minuscules ou en capitales pour qu'il corresponde au mot "
"remplacé."
#: ../../source/user_interface/editor_viewer.rst:115
msgid "Auto-Replace as You Type"
msgstr "Remplacement automatique au fur et à mesure de la saisie"
#: ../../source/user_interface/editor_viewer.rst:117
msgid ""
"A few auto-replace features are supported by the editor. You can control "
"every aspect of the auto-replace feature from **Preferences**. You can "
"also disable this feature entirely if you wish."
msgstr ""
"Quelques fonctions de remplacement automatique sont prises en charge par "
"l'éditeur. Vous pouvez contrôler tous les aspects de la fonction de "
"remplacement automatique dans les **Préférences**. Vous pouvez également "
"désactiver entièrement cette fonction si vous le souhaitez."
#: ../../source/user_interface/editor_viewer.rst:122
msgid ""
"If you don't like auto-replacement, all symbols inserted by this feature "
"are also available in the :guilabel:`Insert` menu, and via :ref:"
"`docs_features_shortcuts_insert`. You may also be using a `Compose Key`_ "
"setup, which means you may not need the auto-replace feature at all."
msgstr ""
"Si vous n'aimez pas le remplacement automatique, tous les symboles "
"insérés par cette fonctionnalité sont également disponibles dans le "
"menu :guilabel:`Insert`, et via :ref:`docs_features_shortcuts_insert`. "
"Vous pouvez également utiliser une configuration `Compose Key`_, ce qui "
"signifie que vous n'avez pas du tout besoin de la fonctionnalité de "
"remplacement automatique."
#: ../../source/user_interface/editor_viewer.rst:126
msgid ""
"The editor is able to replace two and three hyphens with short and long "
"dashes, four dashes with a horizontal bar, three dots with ellipsis, and "
"replace straight single and double quotes with user-defined quote "
"symbols. It will also try to determine whether to use the opening or "
"closing symbol, although this feature isn't always accurate. Especially "
"distinguishing between closing single quote and apostrophe can be tricky "
"for languages that use the same symbol for these, like English does."
msgstr ""
"L'éditeur est capable de remplacer deux et trois traits d'union par des "
"tirets courts et longs, quatre tirets par une barre horizontale, trois "
"points par une ellipse, et de remplacer les guillemets simples et "
"doubles par des symboles de guillemets définis par l'utilisateur. Il "
"tente également de déterminer s'il convient d'utiliser le symbole "
"d'ouverture ou de fermeture, bien que cette fonction ne soit pas "
"toujours exacte. En particulier, la distinction entre le guillemet "
"simple fermant et l'apostrophe peut s'avérer délicate dans les langues "
"qui utilisent le même symbole pour ces deux types de guillemets, comme "
"c'est le cas en anglais."
#: ../../source/user_interface/editor_viewer.rst:135
msgid ""
"If the auto-replace feature changes a symbol when you did not want it to "
"change, pressing :kbd:`Ctrl+Z` once after the auto-replacement will undo "
"it without undoing the character you typed."
msgstr ""
"Si la fonction de remplacement automatique modifie un symbole alors que "
"vous ne le souhaitiez pas, appuyez sur :kbd:`Ctrl+Z` une fois après le "
"remplacement automatique pour l'annuler sans annuler le caractère que "
"vous avez tapé."
#: ../../source/user_interface/editor_viewer.rst:143
msgid "Viewing a Document"
msgstr "Visualisation d'un document"
#: ../../source/user_interface/editor_viewer.rst:147
msgid "A screenshot of the Document Viewer panel."
msgstr "Capture d'écran de la visualisation de documents."
#: ../../source/user_interface/editor_viewer.rst:149
msgid ""
"Any document in the project tree can also be viewed in parallel in a "
"right hand side document viewer. To view a document, press :kbd:"
"`Ctrl+R`, select **View Document** in the menu or context menu, or drag "
"and drop the document onto the viewer panel. If you have a middle mouse "
"button, middle-clicking on the document will also open it in the viewer."
msgstr ""
"Tout document de l'arborescence du projet peut également être visualisé "
"en parallèle dans une visionneuse de documents sur le côté droit. Pour "
"visualiser un document, appuyez sur :kbd:`Ctrl+R`, sélectionnez "
"**Afficher ce document** dans le menu ou le menu contextuel, ou glissez-"
"déposez le document sur le panneau de visualisation. Si vous disposez "
"d'un bouton du milieu de la souris, un clic du milieu sur le document "
"l'ouvrira également dans l'afficheur."
#: ../../source/user_interface/editor_viewer.rst:154
msgid ""
"The document viewed does not have to be the same document as the one "
"currently being edited. However, If you *are* viewing the same document, "
"pressing :kbd:`Ctrl+R` from the editor will update the document with "
"your latest changes. You can also press the reload button in the top--"
"right corner of the viewer panel, next to the close button, to achieve "
"the same thing."
msgstr ""
"Le document visualisé ne doit pas nécessairement être le même que celui "
"qui est en cours d'édition. Cependant, si vous *voyez* le même document, "
"presser :kbd:`Ctrl+R` depuis l'éditeur mettra à jour le document avec "
"vos dernières modifications. Vous pouvez également appuyer sur le bouton "
"de rechargement dans le coin supérieur droit du panneau de "
"visualisation, à côté du bouton de fermeture, pour obtenir la même chose."
#: ../../source/user_interface/editor_viewer.rst:159
msgid ""
"In the viewer, references become clickable links. Clicking them will "
"replace the content of the viewer with the content of the document the "
"reference points to."
msgstr ""
"Dans l'afficheur, les références deviennent des liens cliquables. En "
"cliquant sur ces liens, le contenu de l'afficheur est remplacé par le "
"contenu du document auquel la référence renvoie."
#: ../../source/user_interface/editor_viewer.rst:162
msgid ""
"The document viewer keeps a history of viewed documents, which you can "
"navigate with the arrow buttons in the top--left corner of the viewer. "
"If your mouse has backward and forward navigation buttons, these can be "
"used as well. They work just like the backward and forward features in a "
"browser. The left-most button is a dropdown menu for quickly navigation "
"between headings in the document. The edit button on the right will open "
"the viewed document in the editor."
msgstr ""
"L'afficheur de documents conserve un historique des documents consultés, "
"que vous pouvez parcourir à l'aide des boutons fléchés situés dans le "
"coin supérieur gauche du visualiseur. Si votre souris possède des "
"boutons de navigation vers l'avant et vers l'arrière, vous pouvez "
"également les utiliser. Ils fonctionnent de la même manière que les "
"fonctions de navigation vers l'avant et vers l'arrière d'un navigateur. "
"Le bouton le plus à gauche est un menu déroulant qui permet de naviguer "
"rapidement entre les rubriques du document. Le bouton d'édition situé à "
"droite permet d'ouvrir le document visualisé dans l'éditeur."
#: ../../source/user_interface/editor_viewer.rst:172
msgid "Document References"
msgstr "Références des documents"
#: ../../source/user_interface/editor_viewer.rst:174
msgid ""
"At the bottom of the viewer panel you will find a **References** panel. "
"(If it is hidden, click the button on the left side of the footer area "
"to reveal it.) This panel contains a References tab with links to all "
"documents referring back to the one you're currently viewing, if any has "
"been defined. If you have created root folders and tags for various "
"story elements like characters and plot points, these will appear as "
"additional tabs in this panel."
msgstr ""
"En bas du panneau de visualisation, vous trouverez un panneau "
"**Références**. (S'il est caché, cliquez sur le bouton situé à gauche du "
"pied de page pour le faire apparaître). Ce panneau contient un onglet "
"Références avec des liens vers tous les documents qui renvoient à celui "
"que vous êtes en train de visualiser, si un tel document a été défini. "
"Si vous avez créé des dossiers racines et des étiquettes pour divers "
"éléments de l'histoire, tels que les personnages et les points de "
"l'intrigue, ceux-ci apparaîtront sous forme d'onglets supplémentaires "
"dans ce panneau."
#: ../../source/user_interface/editor_viewer.rst:182
msgid ""
"The **References** panel relies on an up-to-date project index. The "
"index is maintained automatically. However, if anything is missing, or "
"seems wrong, the index can always be rebuilt by selecting **Rebuild "
"Index** from the **Tools** menu, or by pressing :kbd:`F9`."
msgstr ""
"Le panneau **Références** s'appuie sur un index des projets mis à jour. "
"L'index est maintenu automatiquement. Cependant, si quelque chose manque "
"ou semble erroné, l'index peut toujours être reconstruit en "
"sélectionnant **Rebuild Index** dans le menu **Tools**, ou en pressant :"
"kbd:`F9`."
#: ../../source/user_interface/editor_viewer.rst:188
msgid "The reference panel was redesigned and the additional tabs added."
msgstr ""
"Le panneau de référence a été redessiné et des onglets supplémentaires "
"ont été ajoutés."

Some files were not shown because too many files have changed in this diff Show More